Mollie Payments for WooCommerce - Version 7.3.0

Version Description

  • 02-08-2022 =

  • Feature - Activate Mollie Components by default for new installations

  • Fix - Order note not translated

  • Fix - Gateway surcharge not applying tax

  • Fix - pending SEPA subscription renewal orders remain in "Pending payment" instead of being set to "On-Hold"

  • Fix - PHP warnings when using not Mollie gateway

  • Fix - Order API not processing transactions due to taxes mismatch

  • Fix - Inconsistent order numbers sometimes printing "Bestelling {bestelnummer}"

  • Fix - Link to new my.mollie.com url

  • Fix - Update In3 description

Download this release

Release Info

Developer carmen222
Plugin Icon wp plugin Mollie Payments for WooCommerce
Version 7.3.0
Comparing to
See all releases

Code changes from version 7.2.0 to 7.3.0

languages/mollie-payments-for-woocommerce-nl_BE.mo CHANGED
Binary file
languages/mollie-payments-for-woocommerce-nl_BE_formal.mo CHANGED
Binary file
languages/mollie-payments-for-woocommerce-nl_NL.mo CHANGED
Binary file
languages/mollie-payments-for-woocommerce-nl_NL_formal.mo CHANGED
Binary file
languages/mollie-payments-for-woocommerce.pot CHANGED
@@ -1330,17 +1330,17 @@ msgstr ""
1330
 
1331
  #: build/src/Mollie/WC/Gateway/Abstract.php:2580
1332
  #: src/Mollie/WC/Gateway/Abstract.php:2580
1333
- msgid "A +%1s%2s fee might apply"
1334
  msgstr ""
1335
 
1336
  #: build/src/Mollie/WC/Gateway/Abstract.php:2590
1337
  #: src/Mollie/WC/Gateway/Abstract.php:2590
1338
- msgid "A +%1s%% fee might apply"
1339
  msgstr ""
1340
 
1341
  #: build/src/Mollie/WC/Gateway/Abstract.php:2607
1342
  #: src/Mollie/WC/Gateway/Abstract.php:2607
1343
- msgid "A +%1s%2s + %3s%% fee might apply"
1344
  msgstr ""
1345
 
1346
  #: build/src/Mollie/WC/Gateway/Abstract.php:2646
1330
 
1331
  #: build/src/Mollie/WC/Gateway/Abstract.php:2580
1332
  #: src/Mollie/WC/Gateway/Abstract.php:2580
1333
+ msgid "A + %1s %2s fee might apply"
1334
  msgstr ""
1335
 
1336
  #: build/src/Mollie/WC/Gateway/Abstract.php:2590
1337
  #: src/Mollie/WC/Gateway/Abstract.php:2590
1338
+ msgid "A + %1s%% fee might apply"
1339
  msgstr ""
1340
 
1341
  #: build/src/Mollie/WC/Gateway/Abstract.php:2607
1342
  #: src/Mollie/WC/Gateway/Abstract.php:2607
1343
+ msgid "A + %1s %2s + %3s%% fee might apply"
1344
  msgstr ""
1345
 
1346
  #: build/src/Mollie/WC/Gateway/Abstract.php:2646
mollie-payments-for-woocommerce.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Mollie Payments for WooCommerce
4
  * Plugin URI: https://www.mollie.com
5
  * Description: Accept payments in WooCommerce with the official Mollie plugin
6
- * Version: 7.2.0
7
  * Author: Mollie
8
  * Author URI: https://www.mollie.com
9
  * Requires at least: 5.0
@@ -145,7 +145,7 @@ function initialize()
145
  $properties = PluginProperties::new(__FILE__);
146
  $bootstrap = Package::new($properties);
147
  $modules = [
148
- new ActivationModule(__FILE__),
149
  new LogModule('mollie-payments-for-woocommerce-'),
150
  new NoticeModule(),
151
  new SharedModule(),
@@ -155,7 +155,7 @@ function initialize()
155
  new GatewayModule(),
156
  new VoucherModule(),
157
  new PaymentModule(),
158
- new UninstallModule()
159
  ];
160
  $modules = apply_filters('mollie_wc_plugin_modules', $modules);
161
  $bootstrap->boot(...$modules);
3
  * Plugin Name: Mollie Payments for WooCommerce
4
  * Plugin URI: https://www.mollie.com
5
  * Description: Accept payments in WooCommerce with the official Mollie plugin
6
+ * Version: 7.3.0
7
  * Author: Mollie
8
  * Author URI: https://www.mollie.com
9
  * Requires at least: 5.0
145
  $properties = PluginProperties::new(__FILE__);
146
  $bootstrap = Package::new($properties);
147
  $modules = [
148
+ new ActivationModule(__FILE__, $properties->version()),
149
  new LogModule('mollie-payments-for-woocommerce-'),
150
  new NoticeModule(),
151
  new SharedModule(),
155
  new GatewayModule(),
156
  new VoucherModule(),
157
  new PaymentModule(),
158
+ new UninstallModule(),
159
  ];
160
  $modules = apply_filters('mollie_wc_plugin_modules', $modules);
161
  $bootstrap->boot(...$modules);
public/css/mollie-applepaydirect.min.css CHANGED
@@ -1 +1,23 @@
1
- .buttonDisabled{opacity:.2}.apple-pay-button{display:inline-block;-webkit-appearance:-apple-pay-button;-apple-pay-button-type:checkout}.apple-pay-button-black{-apple-pay-button-style:#000}.apple-pay-button-white{-apple-pay-button-style:#fff}.apple-pay-button-white-with-line{-apple-pay-button-style:white-outline}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .buttonDisabled {
2
+ opacity: 0.2;
3
+ }
4
+
5
+ .apple-pay-button {
6
+ display: inline-block;
7
+ -webkit-appearance: -apple-pay-button;
8
+ -apple-pay-button-type: checkout; /* also: check-out, book, or subscribe */
9
+ }
10
+
11
+ .apple-pay-button-black {
12
+ -apple-pay-button-style: black;
13
+ }
14
+
15
+ .apple-pay-button-white {
16
+ -apple-pay-button-style: white;
17
+ }
18
+
19
+ .apple-pay-button-white-with-line {
20
+ -apple-pay-button-style: white-outline;
21
+ }
22
+
23
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vbW9sbGllLWFwcGxlcGF5ZGlyZWN0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRTtBQUNGOztBQUNBO0VBQ0U7RUFDQTtFQUNBO0FBRUY7O0FBQ0E7RUFDRTtBQUVGOztBQUNBO0VBQ0U7QUFFRjs7QUFDQTtFQUNFO0FBRUYsQyIsImZpbGUiOiJtb2xsaWUtYXBwbGVwYXlkaXJlY3QubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5idXR0b25EaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC4yO1xufVxuLmFwcGxlLXBheS1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogLWFwcGxlLXBheS1idXR0b247XG4gIC1hcHBsZS1wYXktYnV0dG9uLXR5cGU6IGNoZWNrb3V0OyAvKiBhbHNvOiBjaGVjay1vdXQsIGJvb2ssIG9yIHN1YnNjcmliZSAqL1xufVxuXG4uYXBwbGUtcGF5LWJ1dHRvbi1ibGFjayB7XG4gIC1hcHBsZS1wYXktYnV0dG9uLXN0eWxlOiBibGFjaztcbn1cblxuLmFwcGxlLXBheS1idXR0b24td2hpdGUge1xuICAtYXBwbGUtcGF5LWJ1dHRvbi1zdHlsZTogd2hpdGU7XG59XG5cbi5hcHBsZS1wYXktYnV0dG9uLXdoaXRlLXdpdGgtbGluZSB7XG4gIC1hcHBsZS1wYXktYnV0dG9uLXN0eWxlOiB3aGl0ZS1vdXRsaW5lO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/
public/css/mollie-components.min.css CHANGED
@@ -1 +1,53 @@
1
- .mollie-components{display:flex;flex-wrap:wrap}.mollie-components .mollie-component-label{font-weight:400}.mollie-components .mollie-component{width:100%;min-height:34px;background-color:#fff;border-radius:6px;color:#222;transition:all .05s ease;box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 1px 3px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05);border:2px solid transparent}.mollie-components .mollie-component iframe{border-radius:6px;margin:0}.mollie-components .mollie-component.is-invalid{box-shadow:0 1px 1px 0 rgba(255,51,68,.1),0 1px 3px 0 rgba(255,51,68,.1);border-color:#fff0f0}.mollie-components .mollie-component.has-focus{box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 2px 6px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05);border-color:#07f}.mollie-components div{flex-grow:1;width:100%}.mollie-components div+div{display:block;margin-top:.63em}.mollie-components #expiryDate,.mollie-components #verificationCode{max-width:50%}.mollie-components #expiryDate{padding-right:5%}.mollie-components #verificationCode{padding-left:5%}.mollie-components-description svg{display:inline}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .mollie-components {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ }
5
+ .mollie-components .mollie-component-label {
6
+ font-weight: 400;
7
+ }
8
+ .mollie-components .mollie-component {
9
+ width: 100%;
10
+ min-height: 34px;
11
+ background-color: #FFF;
12
+ border-radius: 6px;
13
+ color: #222;
14
+ transition: all 0.05s ease;
15
+ box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.1), 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05);
16
+ border: 2px solid transparent;
17
+ }
18
+ .mollie-components .mollie-component iframe {
19
+ border-radius: 6px;
20
+ margin: 0;
21
+ }
22
+ .mollie-components .mollie-component.is-invalid {
23
+ box-shadow: 0px 1px 1px 0px rgba(255, 51, 68, 0.1), 0px 1px 3px 0px rgba(255, 51, 68, 0.1);
24
+ border-color: #fff0f0;
25
+ }
26
+ .mollie-components .mollie-component.has-focus {
27
+ box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.1), 0px 2px 6px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05);
28
+ border-color: #07f;
29
+ }
30
+ .mollie-components div {
31
+ flex-grow: 1;
32
+ width: 100%;
33
+ }
34
+ .mollie-components div + div {
35
+ display: block;
36
+ margin-top: 0.63em;
37
+ }
38
+ .mollie-components #expiryDate,
39
+ .mollie-components #verificationCode {
40
+ max-width: 50%;
41
+ }
42
+ .mollie-components #expiryDate {
43
+ padding-right: 5%;
44
+ }
45
+ .mollie-components #verificationCode {
46
+ padding-left: 5%;
47
+ }
48
+
49
+ .mollie-components-description svg {
50
+ display: inline;
51
+ }
52
+
53
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vbW9sbGllLWNvbXBvbmVudHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7QUFDRjtBQUNFO0VBQ0U7QUFDSjtBQUVFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtBQUZKO0FBSUk7RUFDRTtFQUNBO0FBRk47QUFLSTtFQUNFO0VBRUE7QUFKTjtBQU9JO0VBQ0U7RUFHQTtBQVBOO0FBV0U7RUFDRTtFQUNBO0FBVEo7QUFZRTtFQUNFO0VBQ0E7QUFWSjtBQWFFOztFQUVFO0FBWEo7QUFjRTtFQUNFO0FBWko7QUFlRTtFQUNFO0FBYko7O0FBa0JFO0VBQ0U7QUFmSixDIiwiZmlsZSI6Im1vbGxpZS1jb21wb25lbnRzLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubW9sbGllLWNvbXBvbmVudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgLm1vbGxpZS1jb21wb25lbnQtbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cblxuICAubW9sbGllLWNvbXBvbmVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMzRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjb2xvcjogIzIyMjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjA1cyBlYXNlO1xuICAgIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSksXG4gICAgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSxcbiAgICAwcHggMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIGlmcmFtZSB7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJi5pcy1pbnZhbGlkIHtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDBweCByZ2JhKDI1NSwgNTEsIDY4LCAwLjEpLFxuICAgICAgMHB4IDFweCAzcHggMHB4IHJnYmEoMjU1LCA1MSwgNjgsIDAuMSk7XG4gICAgICBib3JkZXItY29sb3I6ICNmZmYwZjA7XG4gICAgfVxuXG4gICAgJi5oYXMtZm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSxcbiAgICAgIDBweCAycHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSksXG4gICAgICAwcHggMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICAgIGJvcmRlci1jb2xvcjogIzA3ZjtcbiAgICB9XG4gIH1cblxuICBkaXYge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIGRpdiArIGRpdiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogLjYzZW07XG4gIH1cblxuICAjZXhwaXJ5RGF0ZSxcbiAgI3ZlcmlmaWNhdGlvbkNvZGUge1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG5cbiAgI2V4cGlyeURhdGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDUlO1xuICB9XG5cbiAgI3ZlcmlmaWNhdGlvbkNvZGUge1xuICAgIHBhZGRpbmctbGVmdDogNSU7XG4gIH1cbn1cblxuLm1vbGxpZS1jb21wb25lbnRzLWRlc2NyaXB0aW9uIHtcbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=*/
public/css/mollie-gateway-icons.min.css CHANGED
@@ -1 +1,22 @@
1
- .mollie-gateway-icon{vertical-align:bottom;height:24px}.mollie-gateway-icon svg,label .mollie-gateway-icon{float:right}.mollie_custom_icon{padding:1em}#mol-paypal-settings-icon{margin-left:1em}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .mollie-gateway-icon {
2
+ vertical-align: bottom;
3
+ height: 24px;
4
+ }
5
+
6
+ label .mollie-gateway-icon {
7
+ float: right;
8
+ }
9
+
10
+ .mollie-gateway-icon svg {
11
+ float: right;
12
+ }
13
+
14
+ .mollie_custom_icon {
15
+ padding: 1em;
16
+ }
17
+
18
+ #mol-paypal-settings-icon {
19
+ margin-left: 1em;
20
+ }
21
+
22
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vbW9sbGllLWdhdGV3YXktaWNvbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7QUFDRjs7QUFDQTtFQUNFO0FBRUY7O0FBQUE7RUFDRTtBQUdGOztBQURBO0VBQ0U7QUFJRjs7QUFGQTtFQUNFO0FBS0YsQyIsImZpbGUiOiJtb2xsaWUtZ2F0ZXdheS1pY29ucy5taW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1vbGxpZS1nYXRld2F5LWljb24ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBoZWlnaHQ6IDI0cHg7XG59XG5sYWJlbCAubW9sbGllLWdhdGV3YXktaWNvbntcbiAgZmxvYXQ6cmlnaHQ7XG59XG4ubW9sbGllLWdhdGV3YXktaWNvbiBzdmd7XG4gIGZsb2F0OnJpZ2h0O1xufVxuLm1vbGxpZV9jdXN0b21faWNvbntcbiAgcGFkZGluZzoxZW07XG59XG4jbW9sLXBheXBhbC1zZXR0aW5ncy1pY29ue1xuICBtYXJnaW4tbGVmdDoxZW07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9*/
public/css/unabledButton.min.css CHANGED
@@ -1 +1,5 @@
1
- .buttonDisabled{opacity:.2}
 
 
 
 
1
+ .buttonDisabled {
2
+ opacity: 0.2;
3
+ }
4
+
5
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vdW5hYmxlZEJ1dHRvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0U7QUFDRixDIiwiZmlsZSI6InVuYWJsZWRCdXR0b24ubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5idXR0b25EaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC4yO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/
public/js/advancedSettings.min.js CHANGED
@@ -1 +1,156 @@
1
- !function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/public/js/",n(n.s="ZlrM")}({ZlrM:function(e,t){!function(e){e._;function t(e,t,n){e.setRangeText?n?e.setRangeText(t,e.selectionStart,e.selectionEnd,"end"):e.setRangeText(t,e.value.length,e.value.length,"end"):(e.focus(),document.execCommand("insertText",!1,t)),e.focus()}(0,e.jQuery)(document).ready((function(e){e(".mollie-settings-advanced-payment-desc-label").data("ignore-click","false").on("mousedown",(function(n){var o=document.getElementById("mollie-payments-for-woocommerce_api_payment_description");document.activeElement&&o===document.activeElement&&e(this).on("mouseup.molliesettings",(function(n){e(this).data("ignore-click","true"),e(this).off(".molliesettings");var o=e(this).data("tag");t(document.getElementById("mollie-payments-for-woocommerce_api_payment_description"),o,!0)}));var i=e(this);e(window).on("mouseup.molliesettings drag.molliesettings blur.molliesettings",(function(t){i.off(".molliesettings"),e(window).off(".molliesettings")}))})).on("click",(function(n){if(n.preventDefault(),n.stopImmediatePropagation(),"false"===e(this).data("ignore-click")){var o=e(this).data("tag");t(document.getElementById("mollie-payments-for-woocommerce_api_payment_description"),o,!1)}else e(this).data("ignore-click","false")}))}))}(window)}});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "/public/js/";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./resources/js/advancedSettings.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./resources/js/advancedSettings.js":
90
+ /*!******************************************!*\
91
+ !*** ./resources/js/advancedSettings.js ***!
92
+ \******************************************/
93
+ /*! no static exports found */
94
+ /***/ (function(module, exports) {
95
+
96
+ (function (_ref) {
97
+ var _ = _ref._,
98
+ jQuery = _ref.jQuery;
99
+
100
+ function mollie_settings__insertTextAtCursor(target, text, dontIgnoreSelection) {
101
+ if (target.setRangeText) {
102
+ if (!dontIgnoreSelection) {
103
+ // insert at end
104
+ target.setRangeText(text, target.value.length, target.value.length, "end");
105
+ } else {
106
+ // replace selection
107
+ target.setRangeText(text, target.selectionStart, target.selectionEnd, "end");
108
+ }
109
+ } else {
110
+ target.focus();
111
+ document.execCommand("insertText", false
112
+ /*no UI*/
113
+ , text);
114
+ }
115
+
116
+ target.focus();
117
+ }
118
+
119
+ jQuery(document).ready(function ($) {
120
+ $(".mollie-settings-advanced-payment-desc-label").data("ignore-click", "false").on("mousedown", function (e) {
121
+ var input = document.getElementById("mollie-payments-for-woocommerce_api_payment_description");
122
+
123
+ if (document.activeElement && input === document.activeElement) {
124
+ $(this).on("mouseup.molliesettings", function (e) {
125
+ $(this).data("ignore-click", "true");
126
+ $(this).off(".molliesettings");
127
+ var tag = $(this).data("tag");
128
+ var input = document.getElementById("mollie-payments-for-woocommerce_api_payment_description");
129
+ mollie_settings__insertTextAtCursor(input, tag, true);
130
+ });
131
+ }
132
+
133
+ var $this = $(this);
134
+ $(window).on("mouseup.molliesettings drag.molliesettings blur.molliesettings", function (e) {
135
+ $this.off(".molliesettings");
136
+ $(window).off(".molliesettings");
137
+ });
138
+ }).on("click", function (e) {
139
+ e.preventDefault();
140
+ e.stopImmediatePropagation();
141
+
142
+ if ($(this).data("ignore-click") === "false") {
143
+ var tag = $(this).data("tag");
144
+ var input = document.getElementById("mollie-payments-for-woocommerce_api_payment_description");
145
+ mollie_settings__insertTextAtCursor(input, tag, false);
146
+ } else {
147
+ $(this).data("ignore-click", "false");
148
+ }
149
+ });
150
+ });
151
+ })(window);
152
+
153
+ /***/ })
154
+
155
+ /******/ });
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FkdmFuY2VkU2V0dGluZ3MuanMiXSwibmFtZXMiOlsiXyIsImpRdWVyeSIsIm1vbGxpZV9zZXR0aW5nc19faW5zZXJ0VGV4dEF0Q3Vyc29yIiwidGFyZ2V0IiwidGV4dCIsImRvbnRJZ25vcmVTZWxlY3Rpb24iLCJzZXRSYW5nZVRleHQiLCJ2YWx1ZSIsImxlbmd0aCIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwiZm9jdXMiLCJkb2N1bWVudCIsImV4ZWNDb21tYW5kIiwicmVhZHkiLCIkIiwiZGF0YSIsIm9uIiwiZSIsImlucHV0IiwiZ2V0RWxlbWVudEJ5SWQiLCJhY3RpdmVFbGVtZW50Iiwib2ZmIiwidGFnIiwiJHRoaXMiLCJ3aW5kb3ciLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiJdLCJtYXBwaW5ncyI6IjtRQUFBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBOzs7UUFHQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMENBQTBDLGdDQUFnQztRQUMxRTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLHdEQUF3RCxrQkFBa0I7UUFDMUU7UUFDQSxpREFBaUQsY0FBYztRQUMvRDs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EseUNBQXlDLGlDQUFpQztRQUMxRSxnSEFBZ0gsbUJBQW1CLEVBQUU7UUFDckk7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwyQkFBMkIsMEJBQTBCLEVBQUU7UUFDdkQsaUNBQWlDLGVBQWU7UUFDaEQ7UUFDQTtRQUNBOztRQUVBO1FBQ0Esc0RBQXNE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Q0FBbUMsQ0FBQ2lCLEtBQUQsRUFBUUksR0FBUixFQUFhLEtBQWIsQ0FBbkM7TUFDSCxDQUpELE1BSU87UUFDSFIsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRQyxJQUFSLENBQWEsY0FBYixFQUE2QixPQUE3QjtNQUNIO0lBQ0osQ0E3Qkw7RUErQkgsQ0FoQ0Q7QUFpQ0gsQ0FuREwsRUFzRElTLE1BdERKLEUiLCJmaWxlIjoiYWR2YW5jZWRTZXR0aW5ncy5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9wdWJsaWMvanMvXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBcIi4vcmVzb3VyY2VzL2pzL2FkdmFuY2VkU2V0dGluZ3MuanNcIik7XG4iLCIoXG4gICAgZnVuY3Rpb24gKHtfLCBqUXVlcnkgfSkge1xuXG4gICAgICAgIGZ1bmN0aW9uIG1vbGxpZV9zZXR0aW5nc19faW5zZXJ0VGV4dEF0Q3Vyc29yKHRhcmdldCwgdGV4dCwgZG9udElnbm9yZVNlbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKHRhcmdldC5zZXRSYW5nZVRleHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoICFkb250SWdub3JlU2VsZWN0aW9uICkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpbnNlcnQgYXQgZW5kXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zZXRSYW5nZVRleHQodGV4dCwgdGFyZ2V0LnZhbHVlLmxlbmd0aCwgdGFyZ2V0LnZhbHVlLmxlbmd0aCwgXCJlbmRcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBzZWxlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnNldFJhbmdlVGV4dCh0ZXh0LCB0YXJnZXQuc2VsZWN0aW9uU3RhcnQsIHRhcmdldC5zZWxlY3Rpb25FbmQsIFwiZW5kXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJpbnNlcnRUZXh0XCIsIGZhbHNlIC8qbm8gVUkqLywgdGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YXJnZXQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHtcbiAgICAgICAgICAgICQoXCIubW9sbGllLXNldHRpbmdzLWFkdmFuY2VkLXBheW1lbnQtZGVzYy1sYWJlbFwiKVxuICAgICAgICAgICAgICAgIC5kYXRhKFwiaWdub3JlLWNsaWNrXCIsIFwiZmFsc2VcIilcbiAgICAgICAgICAgICAgICAub24oXCJtb3VzZWRvd25cIiwgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibW9sbGllLXBheW1lbnRzLWZvci13b29jb21tZXJjZV9hcGlfcGF5bWVudF9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGlucHV0ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vbihcIm1vdXNldXAubW9sbGllc2V0dGluZ3NcIiwgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZGF0YShcImlnbm9yZS1jbGlja1wiLCBcInRydWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vZmYoXCIubW9sbGllc2V0dGluZ3NcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnID0gJCh0aGlzKS5kYXRhKFwidGFnXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJtb2xsaWUtcGF5bWVudHMtZm9yLXdvb2NvbW1lcmNlX2FwaV9wYXltZW50X2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbGxpZV9zZXR0aW5nc19faW5zZXJ0VGV4dEF0Q3Vyc29yKGlucHV0LCB0YWcsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGV0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgJCh3aW5kb3cpLm9uKFwibW91c2V1cC5tb2xsaWVzZXR0aW5ncyBkcmFnLm1vbGxpZXNldHRpbmdzIGJsdXIubW9sbGllc2V0dGluZ3NcIiwgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMub2ZmKFwiLm1vbGxpZXNldHRpbmdzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh3aW5kb3cpLm9mZihcIi5tb2xsaWVzZXR0aW5nc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAub24oXCJjbGlja1wiLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCAkKHRoaXMpLmRhdGEoXCJpZ25vcmUtY2xpY2tcIikgPT09IFwiZmFsc2VcIiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9ICQodGhpcykuZGF0YShcInRhZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJtb2xsaWUtcGF5bWVudHMtZm9yLXdvb2NvbW1lcmNlX2FwaV9wYXltZW50X2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9sbGllX3NldHRpbmdzX19pbnNlcnRUZXh0QXRDdXJzb3IoaW5wdXQsIHRhZywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5kYXRhKFwiaWdub3JlLWNsaWNrXCIsIFwiZmFsc2VcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgO1xuICAgICAgICB9KTtcbiAgICB9XG4pXG4oXG4gICAgd2luZG93XG4pXG4iXSwic291cmNlUm9vdCI6IiJ9
public/js/applepay.min.js CHANGED
@@ -1 +1,117 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/public/js/",n(n.s="zZ86")}({zZ86:function(e,t){var n;n=window.ApplePaySession,document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelector(".payment_method_mollie_wc_gateway_applepay"),t=document.querySelector("form.woocommerce-checkout");t&&(n&&n.canMakePayments()?t.insertAdjacentHTML("beforeend",'<input type="hidden" name="mollie_apple_pay_method_allowed" value="1" />'):e&&e.parentNode.removeChild(e))}))}});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "/public/js/";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./resources/js/applepay.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./resources/js/applepay.js":
90
+ /*!**********************************!*\
91
+ !*** ./resources/js/applepay.js ***!
92
+ \**********************************/
93
+ /*! no static exports found */
94
+ /***/ (function(module, exports) {
95
+
96
+ (function (ApplePaySession) {
97
+ document.addEventListener('DOMContentLoaded', function () {
98
+ var applePayMethodElement = document.querySelector('.payment_method_mollie_wc_gateway_applepay');
99
+ var woocommerceCheckoutForm = document.querySelector('form.woocommerce-checkout');
100
+
101
+ if (!woocommerceCheckoutForm) {
102
+ return;
103
+ }
104
+
105
+ if (!ApplePaySession || !ApplePaySession.canMakePayments()) {
106
+ applePayMethodElement && applePayMethodElement.parentNode.removeChild(applePayMethodElement);
107
+ return;
108
+ }
109
+
110
+ woocommerceCheckoutForm.insertAdjacentHTML('beforeend', '<input type="hidden" name="mollie_apple_pay_method_allowed" value="1" />');
111
+ });
112
+ })(window.ApplePaySession);
113
+
114
+ /***/ })
115
+
116
+ /******/ });
117
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FwcGxlcGF5LmpzIl0sIm5hbWVzIjpbIkFwcGxlUGF5U2Vzc2lvbiIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImFwcGxlUGF5TWV0aG9kRWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJ3b29jb21tZXJjZUNoZWNrb3V0Rm9ybSIsImNhbk1ha2VQYXltZW50cyIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsImluc2VydEFkamFjZW50SFRNTCIsIndpbmRvdyJdLCJtYXBwaW5ncyI6IjtRQUFBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBOzs7UUFHQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMENBQTBDLGdDQUFnQztRQUMxRTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLHdEQUF3RCxrQkFBa0I7UUFDMUU7UUFDQSxpREFBaUQsY0FBYztRQUMvRDs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EseUNBQXlDLGlDQUFpQztRQUMxRSxnSEFBZ0gsbUJBQW1CLEVBQUU7UUFDckk7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwyQkFBMkIsMEJBQTBCLEVBQUU7UUFDdkQsaUNBQWlDLGVBQWU7UUFDaEQ7UUFDQTtRQUNBOztRQUVBO1FBQ0Esc0RBQXNELCtEQUErRDs7UUFFckg7UUFDQTs7O1FBR0E7UUFDQTs7Ozs7Ozs7Ozs7O0FDbEZBLENBQUMsVUFBVUEsZUFBVixFQUEyQjtFQUUxQkMsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixrQkFBMUIsRUFBOEMsWUFBWTtJQUN4RCxJQUFJQyxxQkFBcUIsR0FBR0YsUUFBUSxDQUFDRyxhQUFULENBQzFCLDRDQUQwQixDQUE1QjtJQUlBLElBQUlDLHVCQUF1QixHQUFHSixRQUFRLENBQUNHLGFBQVQsQ0FDNUIsMkJBRDRCLENBQTlCOztJQUlBLElBQUksQ0FBQ0MsdUJBQUwsRUFBOEI7TUFDNUI7SUFDRDs7SUFFRCxJQUFJLENBQUNMLGVBQUQsSUFBb0IsQ0FBQ0EsZUFBZSxDQUFDTSxlQUFoQixFQUF6QixFQUE0RDtNQUMxREgscUJBQXFCLElBQ3JCQSxxQkFBcUIsQ0FBQ0ksVUFBdEIsQ0FBaUNDLFdBQWpDLENBQTZDTCxxQkFBN0MsQ0FEQTtNQUVBO0lBQ0Q7O0lBRURFLHVCQUF1QixDQUFDSSxrQkFBeEIsQ0FDRSxXQURGLEVBRUUsMEVBRkY7RUFJRCxDQXZCRDtBQXdCRCxDQTFCRCxFQTBCR0MsTUFBTSxDQUFDVixlQTFCVixFIiwiZmlsZSI6ImFwcGxlcGF5Lm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL3B1YmxpYy9qcy9cIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IFwiLi9yZXNvdXJjZXMvanMvYXBwbGVwYXkuanNcIik7XG4iLCIoZnVuY3Rpb24gKEFwcGxlUGF5U2Vzc2lvbikge1xuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFwcGxlUGF5TWV0aG9kRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnLnBheW1lbnRfbWV0aG9kX21vbGxpZV93Y19nYXRld2F5X2FwcGxlcGF5JyxcbiAgICApXG5cbiAgICB2YXIgd29vY29tbWVyY2VDaGVja291dEZvcm0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJ2Zvcm0ud29vY29tbWVyY2UtY2hlY2tvdXQnLFxuICAgIClcblxuICAgIGlmICghd29vY29tbWVyY2VDaGVja291dEZvcm0pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghQXBwbGVQYXlTZXNzaW9uIHx8ICFBcHBsZVBheVNlc3Npb24uY2FuTWFrZVBheW1lbnRzKCkpIHtcbiAgICAgIGFwcGxlUGF5TWV0aG9kRWxlbWVudCAmJlxuICAgICAgYXBwbGVQYXlNZXRob2RFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYXBwbGVQYXlNZXRob2RFbGVtZW50KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgd29vY29tbWVyY2VDaGVja291dEZvcm0uaW5zZXJ0QWRqYWNlbnRIVE1MKFxuICAgICAgJ2JlZm9yZWVuZCcsXG4gICAgICAnPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwibW9sbGllX2FwcGxlX3BheV9tZXRob2RfYWxsb3dlZFwiIHZhbHVlPVwiMVwiIC8+JyxcbiAgICApXG4gIH0pXG59KSh3aW5kb3cuQXBwbGVQYXlTZXNzaW9uKVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
public/js/applepayButtonBlockComponent.min.js CHANGED
@@ -1 +1,427 @@
1
- !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/public/js/",n(n.s="Ixi8")}({Ixi8:function(e,t,n){"use strict";n.r(t);var o=n("OiFV"),r=n("uXQx"),i=n("nxB1");!function(e){var t=window.mollieApplePayBlockDataCart;if(0!==t.length){var n=t.product,a=n.needShipping,c=void 0===a||a,l=n.subtotal,p=t.shop,s=p.countryCode,u=p.currencyCode,d=void 0===u?"EUR":u,m=p.totalLabel,f=void 0===m?"":m,y=t.buttonMarkup,h=t.ajaxUrl,g=wp.plugins.registerPlugin,_=wc.blocksCheckout.ExperimentalOrderMeta,b=function(e){e.cart,e.extensions;return React.createElement("div",{dangerouslySetInnerHTML:{__html:y}})},v=function(){return React.createElement(_,null,React.createElement(b,null))};g("mollie-applepay-block-button",{render:function(){return React.createElement(v,null)},scope:"woocommerce-checkout"}),setTimeout((function(){if(Object(o.a)()){var e=document.getElementById("woocommerce-process-checkout-nonce").value,t=[],n=[],a="";document.querySelector("#mollie_applepay_button").addEventListener("click",(function(o){var p;(p=new ApplePaySession(3,Object(r.a)(s,d,f,l))).begin(),p.onshippingmethodselected=function(o){var r=this;jQuery.ajax({url:h,method:"POST",data:{action:"mollie_apple_pay_update_shipping_method",shippingMethod:o.shippingMethod,callerPage:"cart",simplifiedContact:t,"woocommerce-process-checkout-nonce":e},complete:function(e,t){},success:function(e,t,a){var c=e.data;n=o.shippingMethod,!1===e.success&&(c.errors=Object(i.a)(c.errors)),r.completeShippingMethodSelection(c)},error:function(e,t,n){console.warn(t,n),p.abort()}})},p.onshippingcontactselected=function(o){var r=this;jQuery.ajax({url:h,method:"POST",data:{action:"mollie_apple_pay_update_shipping_contact",simplifiedContact:o.shippingContact,callerPage:"cart",needShipping:c,"woocommerce-process-checkout-nonce":e},complete:function(e,t){},success:function(e,a,c){var l=e.data;t=o.shippingContact,!1===e.success&&(l.errors=Object(i.a)(l.errors)),l.newShippingMethods&&(n=l.newShippingMethods[0]),r.completeShippingContactSelection(l)},error:function(e,t,n){console.warn(t,n),p.abort()}})},p.onvalidatemerchant=function(t){jQuery.ajax({url:h,method:"POST",data:{action:"mollie_apple_pay_validation",validationUrl:t.validationURL,"woocommerce-process-checkout-nonce":e},complete:function(e,t){},success:function(e,t,n){!0===e.success?p.completeMerchantValidation(JSON.parse(e.data)):(console.warn(e.data),p.abort())},error:function(e,t,n){console.warn(t,n),p.abort()}})},p.onpaymentauthorized=function(t){var o=t.payment,r=o.billingContact,c=o.shippingContact;jQuery.ajax({url:h,method:"POST",data:{action:"mollie_apple_pay_create_order_cart",shippingContact:t.payment.shippingContact,billingContact:t.payment.billingContact,token:t.payment.token,shippingMethod:n,"mollie-payments-for-woocommerce_issuer_applepay":"applepay","woocommerce-process-checkout-nonce":e,billing_first_name:r.givenName||"",billing_last_name:r.familyName||"",billing_company:"",billing_country:r.countryCode||"",billing_address_1:r.addressLines[0]||"",billing_address_2:r.addressLines[1]||"",billing_postcode:r.postalCode||"",billing_city:r.locality||"",billing_state:r.administrativeArea||"",billing_phone:r.phoneNumber||"000000000000",billing_email:c.emailAddress||"",shipping_first_name:c.givenName||"",shipping_last_name:c.familyName||"",shipping_company:"",shipping_country:c.countryCode||"",shipping_address_1:c.addressLines[0]||"",shipping_address_2:c.addressLines[1]||"",shipping_postcode:c.postalCode||"",shipping_city:c.locality||"",shipping_state:c.administrativeArea||"",shipping_phone:c.phoneNumber||"000000000000",shipping_email:c.emailAddress||"",order_comments:"",payment_method:"mollie_wc_gateway_applepay",_wp_http_referer:"/?wc-ajax=update_order_review"},complete:function(e,t){},success:function(e,t,n){var o=e.data;!0===e.success?(a=o.returnUrl,p.completePayment(o.responseToApple),window.location.href=a):(o.errors=Object(i.a)(o.errors),p.completePayment(o))},error:function(e,t,n){console.warn(t,n),p.abort()}})}}))}}),2e3)}}()},OiFV:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var o=function(){var e=window.ApplePaySession,t=document.querySelector("#mollie-applepayDirect-button");if(!(t&&e&&e.canMakePayments()))return!1;var n=document.createElement("button");return n.setAttribute("id","mollie_applepay_button"),n.classList.add("apple-pay-button"),n.classList.add("apple-pay-button-black"),t.appendChild(n),!0}},nxB1:function(e,t,n){"use strict";function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,c=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){l=!0,a=e},f:function(){try{c||null==n.return||n.return()}finally{if(l)throw a}}}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function i(e){var t,n=[],r=o(e);try{for(r.s();!(t=r.n()).done;){var i=t.value,a=i.contactField,c=void 0===a?null:a,l=i.code,p=void 0===l?null:l,s=i.message,u=c?new ApplePayError(p,c,void 0===s?null:s):new ApplePayError(p);n.push(u)}}catch(e){r.e(e)}finally{r.f()}return n}n.d(t,"a",(function(){return i}))},uXQx:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var o=function(e,t,n,o){return{countryCode:e,currencyCode:t,supportedNetworks:["amex","maestro","masterCard","visa","vPay"],merchantCapabilities:["supports3DS"],shippingType:"shipping",requiredBillingContactFields:["postalAddress","email"],requiredShippingContactFields:["postalAddress","email"],total:{label:n,amount:o,type:"final"}}}}});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "/public/js/";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./resources/js/applepayButtonBlockComponent.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./resources/js/applePayError.js":
90
+ /*!***************************************!*\
91
+ !*** ./resources/js/applePayError.js ***!
92
+ \***************************************/
93
+ /*! exports provided: createAppleErrors */
94
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
95
+
96
+ "use strict";
97
+ __webpack_require__.r(__webpack_exports__);
98
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createAppleErrors", function() { return createAppleErrors; });
99
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
100
+
101
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
102
+
103
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
104
+
105
+ function createAppleErrors(errors) {
106
+ var errorList = [];
107
+
108
+ var _iterator = _createForOfIteratorHelper(errors),
109
+ _step;
110
+
111
+ try {
112
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
113
+ var error = _step.value;
114
+ var _error$contactField = error.contactField,
115
+ contactField = _error$contactField === void 0 ? null : _error$contactField,
116
+ _error$code = error.code,
117
+ code = _error$code === void 0 ? null : _error$code,
118
+ _error$message = error.message,
119
+ message = _error$message === void 0 ? null : _error$message;
120
+ var appleError = contactField ? new ApplePayError(code, contactField, message) : new ApplePayError(code);
121
+ errorList.push(appleError);
122
+ }
123
+ } catch (err) {
124
+ _iterator.e(err);
125
+ } finally {
126
+ _iterator.f();
127
+ }
128
+
129
+ return errorList;
130
+ }
131
+
132
+ /***/ }),
133
+
134
+ /***/ "./resources/js/applePayRequest.js":
135
+ /*!*****************************************!*\
136
+ !*** ./resources/js/applePayRequest.js ***!
137
+ \*****************************************/
138
+ /*! exports provided: request */
139
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
140
+
141
+ "use strict";
142
+ __webpack_require__.r(__webpack_exports__);
143
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "request", function() { return request; });
144
+ var request = function request(countryCode, currencyCode, totalLabel, subtotal) {
145
+ return {
146
+ countryCode: countryCode,
147
+ currencyCode: currencyCode,
148
+ supportedNetworks: ['amex', 'maestro', 'masterCard', 'visa', 'vPay'],
149
+ merchantCapabilities: ['supports3DS'],
150
+ shippingType: 'shipping',
151
+ requiredBillingContactFields: ['postalAddress', 'email'],
152
+ requiredShippingContactFields: ['postalAddress', 'email'],
153
+ total: {
154
+ label: totalLabel,
155
+ amount: subtotal,
156
+ type: 'final'
157
+ }
158
+ };
159
+ };
160
+
161
+ /***/ }),
162
+
163
+ /***/ "./resources/js/applepayButtonBlockComponent.js":
164
+ /*!******************************************************!*\
165
+ !*** ./resources/js/applepayButtonBlockComponent.js ***!
166
+ \******************************************************/
167
+ /*! no exports provided */
168
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
169
+
170
+ "use strict";
171
+ __webpack_require__.r(__webpack_exports__);
172
+ /* harmony import */ var _maybeShowApplePayButton_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maybeShowApplePayButton.js */ "./resources/js/maybeShowApplePayButton.js");
173
+ /* harmony import */ var _applePayRequest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applePayRequest */ "./resources/js/applePayRequest.js");
174
+ /* harmony import */ var _applePayError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./applePayError */ "./resources/js/applePayError.js");
175
+
176
+
177
+
178
+
179
+ (function (_ref) {
180
+ var mollieApplePayBlockDataCart = _ref.mollieApplePayBlockDataCart;
181
+
182
+ if (mollieApplePayBlockDataCart.length === 0) {
183
+ return;
184
+ }
185
+
186
+ var _mollieApplePayBlockD = mollieApplePayBlockDataCart.product,
187
+ _mollieApplePayBlockD2 = _mollieApplePayBlockD.needShipping,
188
+ needShipping = _mollieApplePayBlockD2 === void 0 ? true : _mollieApplePayBlockD2,
189
+ subtotal = _mollieApplePayBlockD.subtotal,
190
+ _mollieApplePayBlockD3 = mollieApplePayBlockDataCart.shop,
191
+ countryCode = _mollieApplePayBlockD3.countryCode,
192
+ _mollieApplePayBlockD4 = _mollieApplePayBlockD3.currencyCode,
193
+ currencyCode = _mollieApplePayBlockD4 === void 0 ? 'EUR' : _mollieApplePayBlockD4,
194
+ _mollieApplePayBlockD5 = _mollieApplePayBlockD3.totalLabel,
195
+ totalLabel = _mollieApplePayBlockD5 === void 0 ? '' : _mollieApplePayBlockD5,
196
+ buttonMarkup = mollieApplePayBlockDataCart.buttonMarkup,
197
+ ajaxUrl = mollieApplePayBlockDataCart.ajaxUrl;
198
+ var registerPlugin = wp.plugins.registerPlugin;
199
+ var ExperimentalOrderMeta = wc.blocksCheckout.ExperimentalOrderMeta;
200
+
201
+ var ApplePayButtonComponent = function ApplePayButtonComponent(_ref2) {
202
+ var cart = _ref2.cart,
203
+ extensions = _ref2.extensions;
204
+ return /*#__PURE__*/React.createElement("div", {
205
+ dangerouslySetInnerHTML: {
206
+ __html: buttonMarkup
207
+ }
208
+ });
209
+ };
210
+
211
+ var MollieApplePayButtonCart = function MollieApplePayButtonCart() {
212
+ return /*#__PURE__*/React.createElement(ExperimentalOrderMeta, null, /*#__PURE__*/React.createElement(ApplePayButtonComponent, null));
213
+ };
214
+
215
+ registerPlugin('mollie-applepay-block-button', {
216
+ render: function render() {
217
+ return /*#__PURE__*/React.createElement(MollieApplePayButtonCart, null);
218
+ },
219
+ scope: 'woocommerce-checkout'
220
+ });
221
+ setTimeout(function () {
222
+ if (!Object(_maybeShowApplePayButton_js__WEBPACK_IMPORTED_MODULE_0__["maybeShowButton"])()) {
223
+ return;
224
+ }
225
+
226
+ var nonce = document.getElementById("woocommerce-process-checkout-nonce").value;
227
+ var updatedContactInfo = [];
228
+ var selectedShippingMethod = [];
229
+ var redirectionUrl = '';
230
+
231
+ var applePaySession = function applePaySession() {
232
+ var session = new ApplePaySession(3, Object(_applePayRequest__WEBPACK_IMPORTED_MODULE_1__["request"])(countryCode, currencyCode, totalLabel, subtotal));
233
+ session.begin();
234
+
235
+ session.onshippingmethodselected = function (event) {
236
+ var _this = this;
237
+
238
+ jQuery.ajax({
239
+ url: ajaxUrl,
240
+ method: 'POST',
241
+ data: {
242
+ action: 'mollie_apple_pay_update_shipping_method',
243
+ shippingMethod: event.shippingMethod,
244
+ callerPage: 'cart',
245
+ simplifiedContact: updatedContactInfo,
246
+ 'woocommerce-process-checkout-nonce': nonce
247
+ },
248
+ complete: function complete(jqXHR, textStatus) {},
249
+ success: function success(applePayShippingMethodUpdate, textStatus, jqXHR) {
250
+ var response = applePayShippingMethodUpdate.data;
251
+ selectedShippingMethod = event.shippingMethod;
252
+
253
+ if (applePayShippingMethodUpdate.success === false) {
254
+ response.errors = Object(_applePayError__WEBPACK_IMPORTED_MODULE_2__["createAppleErrors"])(response.errors);
255
+ }
256
+
257
+ _this.completeShippingMethodSelection(response);
258
+ },
259
+ error: function error(jqXHR, textStatus, errorThrown) {
260
+ console.warn(textStatus, errorThrown);
261
+ session.abort();
262
+ }
263
+ });
264
+ };
265
+
266
+ session.onshippingcontactselected = function (event) {
267
+ var _this2 = this;
268
+
269
+ jQuery.ajax({
270
+ url: ajaxUrl,
271
+ method: 'POST',
272
+ data: {
273
+ action: 'mollie_apple_pay_update_shipping_contact',
274
+ simplifiedContact: event.shippingContact,
275
+ callerPage: 'cart',
276
+ needShipping: needShipping,
277
+ 'woocommerce-process-checkout-nonce': nonce
278
+ },
279
+ complete: function complete(jqXHR, textStatus) {},
280
+ success: function success(applePayShippingContactUpdate, textStatus, jqXHR) {
281
+ var response = applePayShippingContactUpdate.data;
282
+ updatedContactInfo = event.shippingContact;
283
+
284
+ if (applePayShippingContactUpdate.success === false) {
285
+ response.errors = Object(_applePayError__WEBPACK_IMPORTED_MODULE_2__["createAppleErrors"])(response.errors);
286
+ }
287
+
288
+ if (response.newShippingMethods) {
289
+ selectedShippingMethod = response.newShippingMethods[0];
290
+ }
291
+
292
+ _this2.completeShippingContactSelection(response);
293
+ },
294
+ error: function error(jqXHR, textStatus, errorThrown) {
295
+ console.warn(textStatus, errorThrown);
296
+ session.abort();
297
+ }
298
+ });
299
+ };
300
+
301
+ session.onvalidatemerchant = function (applePayValidateMerchantEvent) {
302
+ jQuery.ajax({
303
+ url: ajaxUrl,
304
+ method: 'POST',
305
+ data: {
306
+ action: 'mollie_apple_pay_validation',
307
+ validationUrl: applePayValidateMerchantEvent.validationURL,
308
+ 'woocommerce-process-checkout-nonce': nonce
309
+ },
310
+ complete: function complete(jqXHR, textStatus) {},
311
+ success: function success(merchantSession, textStatus, jqXHR) {
312
+ if (merchantSession.success === true) {
313
+ session.completeMerchantValidation(JSON.parse(merchantSession.data));
314
+ } else {
315
+ console.warn(merchantSession.data);
316
+ session.abort();
317
+ }
318
+ },
319
+ error: function error(jqXHR, textStatus, errorThrown) {
320
+ console.warn(textStatus, errorThrown);
321
+ session.abort();
322
+ }
323
+ });
324
+ };
325
+
326
+ session.onpaymentauthorized = function (ApplePayPayment) {
327
+ var _ApplePayPayment$paym = ApplePayPayment.payment,
328
+ billingContact = _ApplePayPayment$paym.billingContact,
329
+ shippingContact = _ApplePayPayment$paym.shippingContact;
330
+ jQuery.ajax({
331
+ url: ajaxUrl,
332
+ method: 'POST',
333
+ data: {
334
+ action: 'mollie_apple_pay_create_order_cart',
335
+ shippingContact: ApplePayPayment.payment.shippingContact,
336
+ billingContact: ApplePayPayment.payment.billingContact,
337
+ token: ApplePayPayment.payment.token,
338
+ shippingMethod: selectedShippingMethod,
339
+ 'mollie-payments-for-woocommerce_issuer_applepay': 'applepay',
340
+ 'woocommerce-process-checkout-nonce': nonce,
341
+ 'billing_first_name': billingContact.givenName || '',
342
+ 'billing_last_name': billingContact.familyName || '',
343
+ 'billing_company': '',
344
+ 'billing_country': billingContact.countryCode || '',
345
+ 'billing_address_1': billingContact.addressLines[0] || '',
346
+ 'billing_address_2': billingContact.addressLines[1] || '',
347
+ 'billing_postcode': billingContact.postalCode || '',
348
+ 'billing_city': billingContact.locality || '',
349
+ 'billing_state': billingContact.administrativeArea || '',
350
+ 'billing_phone': billingContact.phoneNumber || '000000000000',
351
+ 'billing_email': shippingContact.emailAddress || '',
352
+ 'shipping_first_name': shippingContact.givenName || '',
353
+ 'shipping_last_name': shippingContact.familyName || '',
354
+ 'shipping_company': '',
355
+ 'shipping_country': shippingContact.countryCode || '',
356
+ 'shipping_address_1': shippingContact.addressLines[0] || '',
357
+ 'shipping_address_2': shippingContact.addressLines[1] || '',
358
+ 'shipping_postcode': shippingContact.postalCode || '',
359
+ 'shipping_city': shippingContact.locality || '',
360
+ 'shipping_state': shippingContact.administrativeArea || '',
361
+ 'shipping_phone': shippingContact.phoneNumber || '000000000000',
362
+ 'shipping_email': shippingContact.emailAddress || '',
363
+ 'order_comments': '',
364
+ 'payment_method': 'mollie_wc_gateway_applepay',
365
+ '_wp_http_referer': '/?wc-ajax=update_order_review'
366
+ },
367
+ complete: function complete(jqXHR, textStatus) {},
368
+ success: function success(authorizationResult, textStatus, jqXHR) {
369
+ var result = authorizationResult.data;
370
+
371
+ if (authorizationResult.success === true) {
372
+ redirectionUrl = result['returnUrl'];
373
+ session.completePayment(result['responseToApple']);
374
+ window.location.href = redirectionUrl;
375
+ } else {
376
+ result.errors = Object(_applePayError__WEBPACK_IMPORTED_MODULE_2__["createAppleErrors"])(result.errors);
377
+ session.completePayment(result);
378
+ }
379
+ },
380
+ error: function error(jqXHR, textStatus, errorThrown) {
381
+ console.warn(textStatus, errorThrown);
382
+ session.abort();
383
+ }
384
+ });
385
+ };
386
+ };
387
+
388
+ document.querySelector('#mollie_applepay_button').addEventListener('click', function (evt) {
389
+ applePaySession();
390
+ });
391
+ }, 2000);
392
+ })(window);
393
+
394
+ /***/ }),
395
+
396
+ /***/ "./resources/js/maybeShowApplePayButton.js":
397
+ /*!*************************************************!*\
398
+ !*** ./resources/js/maybeShowApplePayButton.js ***!
399
+ \*************************************************/
400
+ /*! exports provided: maybeShowButton */
401
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
402
+
403
+ "use strict";
404
+ __webpack_require__.r(__webpack_exports__);
405
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maybeShowButton", function() { return maybeShowButton; });
406
+ var maybeShowButton = function maybeShowButton() {
407
+ var _window = window,
408
+ ApplePaySession = _window.ApplePaySession;
409
+ var applePayMethodElement = document.querySelector('#mollie-applepayDirect-button');
410
+ var canShowButton = applePayMethodElement && ApplePaySession && ApplePaySession.canMakePayments();
411
+
412
+ if (!canShowButton) {
413
+ return false;
414
+ }
415
+
416
+ var button = document.createElement('button');
417
+ button.setAttribute('id', 'mollie_applepay_button');
418
+ button.classList.add('apple-pay-button');
419
+ button.classList.add('apple-pay-button-black');
420
+ applePayMethodElement.appendChild(button);
421
+ return true;
422
+ };
423
+
424
+ /***/ })
425
+
426
+ /******/ });
427
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FwcGxlUGF5RXJyb3IuanMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FwcGxlUGF5UmVxdWVzdC5qcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYXBwbGVwYXlCdXR0b25CbG9ja0NvbXBvbmVudC5qcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWF5YmVTaG93QXBwbGVQYXlCdXR0b24uanMiXSwibmFtZXMiOlsiY3JlYXRlQXBwbGVFcnJvcnMiLCJlcnJvcnMiLCJlcnJvckxpc3QiLCJlcnJvciIsImNvbnRhY3RGaWVsZCIsImNvZGUiLCJtZXNzYWdlIiwiYXBwbGVFcnJvciIsIkFwcGxlUGF5RXJyb3IiLCJwdXNoIiwicmVxdWVzdCIsImNvdW50cnlDb2RlIiwiY3VycmVuY3lDb2RlIiwidG90YWxMYWJlbCIsInN1YnRvdGFsIiwic3VwcG9ydGVkTmV0d29ya3MiLCJtZXJjaGFudENhcGFiaWxpdGllcyIsInNoaXBwaW5nVHlwZSIsInJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHMiLCJyZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkcyIsInRvdGFsIiwibGFiZWwiLCJhbW91bnQiLCJ0eXBlIiwibW9sbGllQXBwbGVQYXlCbG9ja0RhdGFDYXJ0IiwibGVuZ3RoIiwicHJvZHVjdCIsIm5lZWRTaGlwcGluZyIsInNob3AiLCJidXR0b25NYXJrdXAiLCJhamF4VXJsIiwicmVnaXN0ZXJQbHVnaW4iLCJ3cCIsInBsdWdpbnMiLCJFeHBlcmltZW50YWxPcmRlck1ldGEiLCJ3YyIsImJsb2Nrc0NoZWNrb3V0IiwiQXBwbGVQYXlCdXR0b25Db21wb25lbnQiLCJjYXJ0IiwiZXh0ZW5zaW9ucyIsIl9faHRtbCIsIk1vbGxpZUFwcGxlUGF5QnV0dG9uQ2FydCIsInJlbmRlciIsInNjb3BlIiwic2V0VGltZW91dCIsIm1heWJlU2hvd0J1dHRvbiIsIm5vbmNlIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInZhbHVlIiwidXBkYXRlZENvbnRhY3RJbmZvIiwic2VsZWN0ZWRTaGlwcGluZ01ldGhvZCIsInJlZGlyZWN0aW9uVXJsIiwiYXBwbGVQYXlTZXNzaW9uIiwic2Vzc2lvbiIsIkFwcGxlUGF5U2Vzc2lvbiIsImJlZ2luIiwib25zaGlwcGluZ21ldGhvZHNlbGVjdGVkIiwiZXZlbnQiLCJqUXVlcnkiLCJhamF4IiwidXJsIiwibWV0aG9kIiwiZGF0YSIsImFjdGlvbiIsInNoaXBwaW5nTWV0aG9kIiwiY2FsbGVyUGFnZSIsInNpbXBsaWZpZWRDb250YWN0IiwiY29tcGxldGUiLCJqcVhIUiIsInRleHRTdGF0dXMiLCJzdWNjZXNzIiwiYXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZSIsInJlc3BvbnNlIiwiY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbiIsImVycm9yVGhyb3duIiwiY29uc29sZSIsIndhcm4iLCJhYm9ydCIsIm9uc2hpcHBpbmdjb250YWN0c2VsZWN0ZWQiLCJzaGlwcGluZ0NvbnRhY3QiLCJhcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSIsIm5ld1NoaXBwaW5nTWV0aG9kcyIsImNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uIiwib252YWxpZGF0ZW1lcmNoYW50IiwiYXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQiLCJ2YWxpZGF0aW9uVXJsIiwidmFsaWRhdGlvblVSTCIsIm1lcmNoYW50U2Vzc2lvbiIsImNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uIiwiSlNPTiIsInBhcnNlIiwib25wYXltZW50YXV0aG9yaXplZCIsIkFwcGxlUGF5UGF5bWVudCIsInBheW1lbnQiLCJiaWxsaW5nQ29udGFjdCIsInRva2VuIiwiZ2l2ZW5OYW1lIiwiZmFtaWx5TmFtZSIsImFkZHJlc3NMaW5lcyIsInBvc3RhbENvZGUiLCJsb2NhbGl0eSIsImFkbWluaXN0cmF0aXZlQXJlYSIsInBob25lTnVtYmVyIiwiZW1haWxBZGRyZXNzIiwiYXV0aG9yaXphdGlvblJlc3VsdCIsInJlc3VsdCIsImNvbXBsZXRlUGF5bWVudCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInF1ZXJ5U2VsZWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwiZXZ0IiwiYXBwbGVQYXlNZXRob2RFbGVtZW50IiwiY2FuU2hvd0J1dHRvbiIsImNhbk1ha2VQYXltZW50cyIsImJ1dHRvbiIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJjbGFzc0xpc3QiLCJhZGQiLCJhcHBlbmRDaGlsZCJdLCJtYXBwaW5ncyI6IjtRQUFBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBOzs7UUFHQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMENBQTBDLGdDQUFnQztRQUMxRTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLHdEQUF3RCxrQkFBa0I7UUFDMUU7UUFDQSxpREFBaUQsY0FBYztRQUMvRDs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EseUNBQXlDLGlDQUFpQztRQUMxRSxnSEFBZ0gsbUJBQW1CLEVBQUU7UUFDckk7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwyQkFBMkIsMEJBQTBCLEVBQUU7UUFDdkQsaUNBQWlDLGVBQWU7UUFDaEQ7UUFDQTtRQUNBOztRQUVBO1FBQ0Esc0RBQXNELCtEQUErRDs7UUFFckg7UUFDQTs7O1FBR0E7UUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDbEZPLFNBQVNBLGlCQUFULENBQTJCQyxNQUEzQixFQUFtQztFQUN0QyxJQUFNQyxTQUFTLEdBQUcsRUFBbEI7O0VBRHNDLDJDQUVsQkQsTUFGa0I7RUFBQTs7RUFBQTtJQUV0QyxvREFBNEI7TUFB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QUFQO0VBQ0EsSUFBTTJELHFCQUFxQixHQUFHbkUsUUFBUSxDQUFDZ0UsYUFBVCxDQUMxQiwrQkFEMEIsQ0FBOUI7RUFHQSxJQUFNSSxhQUFhLEdBQUdELHFCQUFxQixJQUFLM0QsZUFBZSxJQUFJQSxlQUFlLENBQUM2RCxlQUFoQixFQUFuRTs7RUFDQSxJQUFJLENBQUNELGFBQUwsRUFBb0I7SUFDaEIsT0FBTyxLQUFQO0VBQ0g7O0VBQ0QsSUFBTUUsTUFBTSxHQUFHdEUsUUFBUSxDQUFDdUUsYUFBVCxDQUF1QixRQUF2QixDQUFmO0VBQ0FELE1BQU0sQ0FBQ0UsWUFBUCxDQUFvQixJQUFwQixFQUEwQix3QkFBMUI7RUFDQUYsTUFBTSxDQUFDRyxTQUFQLENBQWlCQyxHQUFqQixDQUFxQixrQkFBckI7RUFDQUosTUFBTSxDQUFDRyxTQUFQLENBQWlCQyxHQUFqQixDQUFxQix3QkFBckI7RUFDQVAscUJBQXFCLENBQUNRLFdBQXRCLENBQWtDTCxNQUFsQztFQUNBLE9BQU8sSUFBUDtBQUNILENBZk0sQyIsImZpbGUiOiJhcHBsZXBheUJ1dHRvbkJsb2NrQ29tcG9uZW50Lm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL3B1YmxpYy9qcy9cIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IFwiLi9yZXNvdXJjZXMvanMvYXBwbGVwYXlCdXR0b25CbG9ja0NvbXBvbmVudC5qc1wiKTtcbiIsImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcHBsZUVycm9ycyhlcnJvcnMpIHtcbiAgICBjb25zdCBlcnJvckxpc3QgPSBbXVxuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICAgIGNvbnN0IHtjb250YWN0RmllbGQgPSBudWxsLCBjb2RlID0gbnVsbCwgbWVzc2FnZSA9IG51bGx9ID0gZXJyb3JcbiAgICAgICAgY29uc3QgYXBwbGVFcnJvciA9IGNvbnRhY3RGaWVsZCA/IG5ldyBBcHBsZVBheUVycm9yKGNvZGUsIGNvbnRhY3RGaWVsZCwgbWVzc2FnZSkgOiBuZXcgQXBwbGVQYXlFcnJvcihjb2RlKVxuICAgICAgICBlcnJvckxpc3QucHVzaChhcHBsZUVycm9yKVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvckxpc3Rcbn1cbiIsImV4cG9ydCBjb25zdCByZXF1ZXN0ID0gKGNvdW50cnlDb2RlLCBjdXJyZW5jeUNvZGUsIHRvdGFsTGFiZWwsIHN1YnRvdGFsKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY291bnRyeUNvZGU6IGNvdW50cnlDb2RlLFxuICAgICAgICBjdXJyZW5jeUNvZGU6IGN1cnJlbmN5Q29kZSxcbiAgICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsnYW1leCcsICdtYWVzdHJvJywgJ21hc3RlckNhcmQnLCAndmlzYScsICd2UGF5J10sXG4gICAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbJ3N1cHBvcnRzM0RTJ10sXG4gICAgICAgIHNoaXBwaW5nVHlwZTogJ3NoaXBwaW5nJyxcbiAgICAgICAgcmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkczogW1xuICAgICAgICAgICAgJ3Bvc3RhbEFkZHJlc3MnLFxuICAgICAgICAgICAgJ2VtYWlsJ1xuICAgICAgICBdLFxuICAgICAgICByZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkczogW1xuICAgICAgICAgICAgJ3Bvc3RhbEFkZHJlc3MnLFxuICAgICAgICAgICAgJ2VtYWlsJ1xuICAgICAgICBdLFxuICAgICAgICB0b3RhbDoge1xuICAgICAgICAgICAgbGFiZWw6IHRvdGFsTGFiZWwsXG4gICAgICAgICAgICBhbW91bnQ6IHN1YnRvdGFsLFxuICAgICAgICAgICAgdHlwZTogJ2ZpbmFsJ1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiaW1wb3J0IHttYXliZVNob3dCdXR0b259IGZyb20gJy4vbWF5YmVTaG93QXBwbGVQYXlCdXR0b24uanMnO1xuaW1wb3J0IHtyZXF1ZXN0fSBmcm9tIFwiLi9hcHBsZVBheVJlcXVlc3RcIjtcbmltcG9ydCB7Y3JlYXRlQXBwbGVFcnJvcnN9IGZyb20gXCIuL2FwcGxlUGF5RXJyb3JcIjtcblxuKFxuICAgIGZ1bmN0aW9uICh7bW9sbGllQXBwbGVQYXlCbG9ja0RhdGFDYXJ0fSlcbiAgICB7XG4gICAgICAgIGlmIChtb2xsaWVBcHBsZVBheUJsb2NrRGF0YUNhcnQubGVuZ3RoID09PSAwICkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qge3Byb2R1Y3Q6IHtuZWVkU2hpcHBpbmcgPSB0cnVlLCBzdWJ0b3RhbH0sIHNob3A6IHtjb3VudHJ5Q29kZSwgY3VycmVuY3lDb2RlID0gJ0VVUicsIHRvdGFsTGFiZWwgPSAnJ30sIGJ1dHRvbk1hcmt1cCwgYWpheFVybH0gPSBtb2xsaWVBcHBsZVBheUJsb2NrRGF0YUNhcnRcblxuICAgICAgICBjb25zdCB7IHJlZ2lzdGVyUGx1Z2luIH0gPSB3cC5wbHVnaW5zO1xuICAgICAgICBjb25zdCB7IEV4cGVyaW1lbnRhbE9yZGVyTWV0YSB9ID0gd2MuYmxvY2tzQ2hlY2tvdXQ7XG4gICAgICAgIGNvbnN0IEFwcGxlUGF5QnV0dG9uQ29tcG9uZW50ID0gKCB7IGNhcnQsIGV4dGVuc2lvbnMgfSApID0+IHtcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXsge19faHRtbDogYnV0dG9uTWFya3VwfSB9Lz5cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBNb2xsaWVBcHBsZVBheUJ1dHRvbkNhcnQgPSAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gIDxFeHBlcmltZW50YWxPcmRlck1ldGE+XG4gICAgICAgICAgICAgICAgPEFwcGxlUGF5QnV0dG9uQ29tcG9uZW50IC8+XG4gICAgICAgICAgICA8L0V4cGVyaW1lbnRhbE9yZGVyTWV0YT5cbiAgICAgICAgfTtcblxuICAgICAgICByZWdpc3RlclBsdWdpbiggJ21vbGxpZS1hcHBsZXBheS1ibG9jay1idXR0b24nLCB7XG4gICAgICAgICAgICByZW5kZXI6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPE1vbGxpZUFwcGxlUGF5QnV0dG9uQ2FydCAvPjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzY29wZTogJ3dvb2NvbW1lcmNlLWNoZWNrb3V0J1xuICAgICAgICB9ICk7XG5cbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpe1xuICAgICAgICAgICAgaWYoIW1heWJlU2hvd0J1dHRvbigpKXtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5vbmNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ3b29jb21tZXJjZS1wcm9jZXNzLWNoZWNrb3V0LW5vbmNlXCIpLnZhbHVlXG4gICAgICAgICAgICBsZXQgdXBkYXRlZENvbnRhY3RJbmZvID0gW11cbiAgICAgICAgICAgIGxldCBzZWxlY3RlZFNoaXBwaW5nTWV0aG9kID0gW11cbiAgICAgICAgICAgIGxldCByZWRpcmVjdGlvblVybCA9ICcnXG4gICAgICAgICAgICBsZXQgYXBwbGVQYXlTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgQXBwbGVQYXlTZXNzaW9uKDMsIHJlcXVlc3QoY291bnRyeUNvZGUsIGN1cnJlbmN5Q29kZSwgdG90YWxMYWJlbCwgc3VidG90YWwpKVxuICAgICAgICAgICAgICAgIHNlc3Npb24uYmVnaW4oKVxuICAgICAgICAgICAgICAgIHNlc3Npb24ub25zaGlwcGluZ21ldGhvZHNlbGVjdGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGpRdWVyeS5hamF4KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYWpheFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ21vbGxpZV9hcHBsZV9wYXlfdXBkYXRlX3NoaXBwaW5nX21ldGhvZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmdNZXRob2Q6IGV2ZW50LnNoaXBwaW5nTWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlclBhZ2U6ICdjYXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW1wbGlmaWVkQ29udGFjdDogdXBkYXRlZENvbnRhY3RJbmZvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3b29jb21tZXJjZS1wcm9jZXNzLWNoZWNrb3V0LW5vbmNlJzogbm9uY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IChqcVhIUiwgdGV4dFN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChhcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLCB0ZXh0U3RhdHVzLCBqcVhIUikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNwb25zZSA9IGFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkU2hpcHBpbmdNZXRob2QgPSBldmVudC5zaGlwcGluZ01ldGhvZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLnN1Y2Nlc3MgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ycyA9IGNyZWF0ZUFwcGxlRXJyb3JzKHJlc3BvbnNlLmVycm9ycylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKHJlc3BvbnNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiAoanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKHRleHRTdGF0dXMsIGVycm9yVGhyb3duKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uYWJvcnQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2Vzc2lvbi5vbnNoaXBwaW5nY29udGFjdHNlbGVjdGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGpRdWVyeS5hamF4KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYWpheFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ21vbGxpZV9hcHBsZV9wYXlfdXBkYXRlX3NoaXBwaW5nX2NvbnRhY3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbXBsaWZpZWRDb250YWN0OiBldmVudC5zaGlwcGluZ0NvbnRhY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGVyUGFnZTogJ2NhcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRTaGlwcGluZzogbmVlZFNoaXBwaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3b29jb21tZXJjZS1wcm9jZXNzLWNoZWNrb3V0LW5vbmNlJzogbm9uY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IChqcVhIUiwgdGV4dFN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChhcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSwgdGV4dFN0YXR1cywganFYSFIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBhcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5kYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZENvbnRhY3RJbmZvID0gZXZlbnQuc2hpcHBpbmdDb250YWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLnN1Y2Nlc3MgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ycyA9IGNyZWF0ZUFwcGxlRXJyb3JzKHJlc3BvbnNlLmVycm9ycylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm5ld1NoaXBwaW5nTWV0aG9kcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFNoaXBwaW5nTWV0aG9kID0gcmVzcG9uc2UubmV3U2hpcHBpbmdNZXRob2RzWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24ocmVzcG9uc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4odGV4dFN0YXR1cywgZXJyb3JUaHJvd24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5hYm9ydCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXNzaW9uLm9udmFsaWRhdGVtZXJjaGFudCA9IChhcHBsZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGFqYXhVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdtb2xsaWVfYXBwbGVfcGF5X3ZhbGlkYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25Vcmw6IGFwcGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50LnZhbGlkYXRpb25VUkwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dvb2NvbW1lcmNlLXByb2Nlc3MtY2hlY2tvdXQtbm9uY2UnOiBub25jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogKGpxWEhSLCB0ZXh0U3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKG1lcmNoYW50U2Vzc2lvbiwgdGV4dFN0YXR1cywganFYSFIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVyY2hhbnRTZXNzaW9uLnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5jb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihKU09OLnBhcnNlKG1lcmNoYW50U2Vzc2lvbi5kYXRhKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4obWVyY2hhbnRTZXNzaW9uLmRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uYWJvcnQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih0ZXh0U3RhdHVzLCBlcnJvclRocm93bilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLmFib3J0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNlc3Npb24ub25wYXltZW50YXV0aG9yaXplZCA9IChBcHBsZVBheVBheW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge2JpbGxpbmdDb250YWN0LCBzaGlwcGluZ0NvbnRhY3QgfSA9IEFwcGxlUGF5UGF5bWVudC5wYXltZW50XG5cbiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LmFqYXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBhamF4VXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnbW9sbGllX2FwcGxlX3BheV9jcmVhdGVfb3JkZXJfY2FydCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmdDb250YWN0OiBBcHBsZVBheVBheW1lbnQucGF5bWVudC5zaGlwcGluZ0NvbnRhY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlsbGluZ0NvbnRhY3Q6IEFwcGxlUGF5UGF5bWVudC5wYXltZW50LmJpbGxpbmdDb250YWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuOiBBcHBsZVBheVBheW1lbnQucGF5bWVudC50b2tlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlwcGluZ01ldGhvZDogc2VsZWN0ZWRTaGlwcGluZ01ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9sbGllLXBheW1lbnRzLWZvci13b29jb21tZXJjZV9pc3N1ZXJfYXBwbGVwYXknOiAnYXBwbGVwYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3b29jb21tZXJjZS1wcm9jZXNzLWNoZWNrb3V0LW5vbmNlJzogbm9uY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbGxpbmdfZmlyc3RfbmFtZSc6IGJpbGxpbmdDb250YWN0LmdpdmVuTmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19sYXN0X25hbWUnOiBiaWxsaW5nQ29udGFjdC5mYW1pbHlOYW1lIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX2NvbXBhbnknOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19jb3VudHJ5JzogYmlsbGluZ0NvbnRhY3QuY291bnRyeUNvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbGxpbmdfYWRkcmVzc18xJzogYmlsbGluZ0NvbnRhY3QuYWRkcmVzc0xpbmVzWzBdIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX2FkZHJlc3NfMic6IGJpbGxpbmdDb250YWN0LmFkZHJlc3NMaW5lc1sxXSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19wb3N0Y29kZSc6IGJpbGxpbmdDb250YWN0LnBvc3RhbENvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbGxpbmdfY2l0eSc6IGJpbGxpbmdDb250YWN0LmxvY2FsaXR5IHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX3N0YXRlJzogYmlsbGluZ0NvbnRhY3QuYWRtaW5pc3RyYXRpdmVBcmVhIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX3Bob25lJzogYmlsbGluZ0NvbnRhY3QucGhvbmVOdW1iZXIgfHwgJzAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbGxpbmdfZW1haWwnOiBzaGlwcGluZ0NvbnRhY3QuZW1haWxBZGRyZXNzIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGlwcGluZ19maXJzdF9uYW1lJzogc2hpcHBpbmdDb250YWN0LmdpdmVuTmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfbGFzdF9uYW1lJzogc2hpcHBpbmdDb250YWN0LmZhbWlseU5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoaXBwaW5nX2NvbXBhbnknOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfY291bnRyeSc6IHNoaXBwaW5nQ29udGFjdC5jb3VudHJ5Q29kZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfYWRkcmVzc18xJzogc2hpcHBpbmdDb250YWN0LmFkZHJlc3NMaW5lc1swXSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfYWRkcmVzc18yJzogc2hpcHBpbmdDb250YWN0LmFkZHJlc3NMaW5lc1sxXSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfcG9zdGNvZGUnOiBzaGlwcGluZ0NvbnRhY3QucG9zdGFsQ29kZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfY2l0eSc6IHNoaXBwaW5nQ29udGFjdC5sb2NhbGl0eSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfc3RhdGUnOiBzaGlwcGluZ0NvbnRhY3QuYWRtaW5pc3RyYXRpdmVBcmVhIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGlwcGluZ19waG9uZSc6IHNoaXBwaW5nQ29udGFjdC5waG9uZU51bWJlciB8fCAnMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfZW1haWwnOiBzaGlwcGluZ0NvbnRhY3QuZW1haWxBZGRyZXNzIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlcl9jb21tZW50cycgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGF5bWVudF9tZXRob2QnIDogJ21vbGxpZV93Y19nYXRld2F5X2FwcGxlcGF5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX3dwX2h0dHBfcmVmZXJlcicgOiAnLz93Yy1hamF4PXVwZGF0ZV9vcmRlcl9yZXZpZXcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IChqcVhIUiwgdGV4dFN0YXR1cykgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKGF1dGhvcml6YXRpb25SZXN1bHQsIHRleHRTdGF0dXMsIGpxWEhSKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF1dGhvcml6YXRpb25SZXN1bHQuZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRob3JpemF0aW9uUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Rpb25VcmwgPSByZXN1bHRbJ3JldHVyblVybCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlUGF5bWVudChyZXN1bHRbJ3Jlc3BvbnNlVG9BcHBsZSddKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0aW9uVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmVycm9ycyA9IGNyZWF0ZUFwcGxlRXJyb3JzKHJlc3VsdC5lcnJvcnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uY29tcGxldGVQYXltZW50KHJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4odGV4dFN0YXR1cywgZXJyb3JUaHJvd24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5hYm9ydCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtb2xsaWVfYXBwbGVwYXlfYnV0dG9uJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgYXBwbGVQYXlTZXNzaW9uKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sMjAwMCk7XG5cbiAgICB9XG4pXG4oXG4gICAgd2luZG93XG4pXG4iLCJleHBvcnQgY29uc3QgbWF5YmVTaG93QnV0dG9uID0gKCkgPT4ge1xuICAgIGNvbnN0IHtBcHBsZVBheVNlc3Npb259ID0gd2luZG93XG4gICAgY29uc3QgYXBwbGVQYXlNZXRob2RFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJyNtb2xsaWUtYXBwbGVwYXlEaXJlY3QtYnV0dG9uJyxcbiAgICApXG4gICAgY29uc3QgY2FuU2hvd0J1dHRvbiA9IGFwcGxlUGF5TWV0aG9kRWxlbWVudCAmJiAoQXBwbGVQYXlTZXNzaW9uICYmIEFwcGxlUGF5U2Vzc2lvbi5jYW5NYWtlUGF5bWVudHMoKSlcbiAgICBpZiAoIWNhblNob3dCdXR0b24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIGNvbnN0IGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpXG4gICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgnaWQnLCAnbW9sbGllX2FwcGxlcGF5X2J1dHRvbicpXG4gICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2FwcGxlLXBheS1idXR0b24nKVxuICAgIGJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdhcHBsZS1wYXktYnV0dG9uLWJsYWNrJylcbiAgICBhcHBsZVBheU1ldGhvZEVsZW1lbnQuYXBwZW5kQ2hpbGQoYnV0dG9uKVxuICAgIHJldHVybiB0cnVlXG59XG4iXSwic291cmNlUm9vdCI6IiJ9
public/js/applepayDirect.min.js CHANGED
@@ -1 +1,442 @@
1
- !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/public/js/",n(n.s="fmef")}({OiFV:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var o=function(){var e=window.ApplePaySession,t=document.querySelector("#mollie-applepayDirect-button");if(!(t&&e&&e.canMakePayments()))return!1;var n=document.createElement("button");return n.setAttribute("id","mollie_applepay_button"),n.classList.add("apple-pay-button"),n.classList.add("apple-pay-button-black"),t.appendChild(n),!0}},fmef:function(e,t,n){"use strict";n.r(t);var o=n("nxB1"),r=n("OiFV"),i=n("uXQx");!function(e){var t=e._,n=e.mollieApplePayDirectData,a=e.jQuery;if(!t.isEmpty(n)){var c=n.product,l=c.id,p=c.needShipping,s=void 0===p||p,u=c.isVariation,d=void 0!==u&&u,m=c.price,f=n.shop,y=f.countryCode,h=f.currencyCode,_=void 0===h?"EUR":h,g=f.totalLabel,b=void 0===g?"":g,v=n.ajaxUrl;if(l&&m&&y&&v&&Object(r.a)()){var w=document.getElementById("woocommerce-process-checkout-nonce").value,S=l,C=1,j=[],O=[],P="";if(document.querySelector("input.qty").addEventListener("change",(function(e){C=e.currentTarget.value})),d){var A=document.querySelector("#mollie_applepay_button");a(".single_variation_wrap").on("show_variation",(function(e,t){t.variation_id&&(S=t.variation_id),A.disabled=!1,A.classList.remove("buttonDisabled")})),A.disabled=!0,A.classList.add("buttonDisabled")}var x=C*m;document.querySelector("#mollie_applepay_button").addEventListener("click",(function(e){var t;(t=new ApplePaySession(3,Object(i.a)(y,_,b,x))).begin(),s&&(t.onshippingmethodselected=function(e){var n=this;a.ajax({url:v,method:"POST",data:{action:"mollie_apple_pay_update_shipping_method",shippingMethod:e.shippingMethod,productId:S,callerPage:"productDetail",productQuantity:C,simplifiedContact:j,"woocommerce-process-checkout-nonce":w},complete:function(e,t){},success:function(t,r,i){var a=t.data;O=e.shippingMethod,!1===t.success&&(a.errors=Object(o.a)(a.errors)),n.completeShippingMethodSelection(a)},error:function(e,n,o){console.warn(n,o),t.abort()}})},t.onshippingcontactselected=function(e){var n=this;a.ajax({url:v,method:"POST",data:{action:"mollie_apple_pay_update_shipping_contact",productId:S,callerPage:"productDetail",productQuantity:C,simplifiedContact:e.shippingContact,needShipping:s,"woocommerce-process-checkout-nonce":w},complete:function(e,t){},success:function(t,r,i){var a=t.data;j=e.shippingContact,!1===t.success&&(a.errors=Object(o.a)(a.errors)),a.newShippingMethods&&(O=a.newShippingMethods[0]),n.completeShippingContactSelection(a)},error:function(e,n,o){console.warn(n,o),t.abort()}})}),t.onvalidatemerchant=function(e){a.ajax({url:v,method:"POST",data:{action:"mollie_apple_pay_validation",validationUrl:e.validationURL,"woocommerce-process-checkout-nonce":w},complete:function(e,t){},success:function(e,n,o){!0===e.success?t.completeMerchantValidation(JSON.parse(e.data)):(console.warn(e.data),t.abort())},error:function(e,n,o){console.warn(n,o),t.abort()}})},t.onpaymentauthorized=function(e){var n=e.payment,r=n.billingContact,i=n.shippingContact;a.ajax({url:v,method:"POST",data:{action:"mollie_apple_pay_create_order",productId:S,productQuantity:C,shippingContact:e.payment.shippingContact,billingContact:e.payment.billingContact,token:e.payment.token,shippingMethod:O,"mollie-payments-for-woocommerce_issuer_applepay":"applepay","woocommerce-process-checkout-nonce":w,billing_first_name:r.givenName||"",billing_last_name:r.familyName||"",billing_company:"",billing_country:r.countryCode||"",billing_address_1:r.addressLines[0]||"",billing_address_2:r.addressLines[1]||"",billing_postcode:r.postalCode||"",billing_city:r.locality||"",billing_state:r.administrativeArea||"",billing_phone:r.phoneNumber||"000000000000",billing_email:i.emailAddress||"",shipping_first_name:i.givenName||"",shipping_last_name:i.familyName||"",shipping_company:"",shipping_country:i.countryCode||"",shipping_address_1:i.addressLines[0]||"",shipping_address_2:i.addressLines[1]||"",shipping_postcode:i.postalCode||"",shipping_city:i.locality||"",shipping_state:i.administrativeArea||"",shipping_phone:i.phoneNumber||"000000000000",shipping_email:i.emailAddress||"",order_comments:"",payment_method:"mollie_wc_gateway_applepay",_wp_http_referer:"/?wc-ajax=update_order_review"},complete:function(e,t){},success:function(e,n,r){var i=e.data;!0===e.success?(P=i.returnUrl,t.completePayment(i.responseToApple),window.location.href=P):(i.errors=Object(o.a)(i.errors),t.completePayment(i))},error:function(e,n,o){console.warn(n,o),t.abort()}})}}))}}}(window)},nxB1:function(e,t,n){"use strict";function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,c=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){l=!0,a=e},f:function(){try{c||null==n.return||n.return()}finally{if(l)throw a}}}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function i(e){var t,n=[],r=o(e);try{for(r.s();!(t=r.n()).done;){var i=t.value,a=i.contactField,c=void 0===a?null:a,l=i.code,p=void 0===l?null:l,s=i.message,u=c?new ApplePayError(p,c,void 0===s?null:s):new ApplePayError(p);n.push(u)}}catch(e){r.e(e)}finally{r.f()}return n}n.d(t,"a",(function(){return i}))},uXQx:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var o=function(e,t,n,o){return{countryCode:e,currencyCode:t,supportedNetworks:["amex","maestro","masterCard","visa","vPay"],merchantCapabilities:["supports3DS"],shippingType:"shipping",requiredBillingContactFields:["postalAddress","email"],requiredShippingContactFields:["postalAddress","email"],total:{label:n,amount:o,type:"final"}}}}});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "/public/js/";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./resources/js/applepayDirect.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./resources/js/applePayError.js":
90
+ /*!***************************************!*\
91
+ !*** ./resources/js/applePayError.js ***!
92
+ \***************************************/
93
+ /*! exports provided: createAppleErrors */
94
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
95
+
96
+ "use strict";
97
+ __webpack_require__.r(__webpack_exports__);
98
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createAppleErrors", function() { return createAppleErrors; });
99
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
100
+
101
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
102
+
103
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
104
+
105
+ function createAppleErrors(errors) {
106
+ var errorList = [];
107
+
108
+ var _iterator = _createForOfIteratorHelper(errors),
109
+ _step;
110
+
111
+ try {
112
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
113
+ var error = _step.value;
114
+ var _error$contactField = error.contactField,
115
+ contactField = _error$contactField === void 0 ? null : _error$contactField,
116
+ _error$code = error.code,
117
+ code = _error$code === void 0 ? null : _error$code,
118
+ _error$message = error.message,
119
+ message = _error$message === void 0 ? null : _error$message;
120
+ var appleError = contactField ? new ApplePayError(code, contactField, message) : new ApplePayError(code);
121
+ errorList.push(appleError);
122
+ }
123
+ } catch (err) {
124
+ _iterator.e(err);
125
+ } finally {
126
+ _iterator.f();
127
+ }
128
+
129
+ return errorList;
130
+ }
131
+
132
+ /***/ }),
133
+
134
+ /***/ "./resources/js/applePayRequest.js":
135
+ /*!*****************************************!*\
136
+ !*** ./resources/js/applePayRequest.js ***!
137
+ \*****************************************/
138
+ /*! exports provided: request */
139
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
140
+
141
+ "use strict";
142
+ __webpack_require__.r(__webpack_exports__);
143
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "request", function() { return request; });
144
+ var request = function request(countryCode, currencyCode, totalLabel, subtotal) {
145
+ return {
146
+ countryCode: countryCode,
147
+ currencyCode: currencyCode,
148
+ supportedNetworks: ['amex', 'maestro', 'masterCard', 'visa', 'vPay'],
149
+ merchantCapabilities: ['supports3DS'],
150
+ shippingType: 'shipping',
151
+ requiredBillingContactFields: ['postalAddress', 'email'],
152
+ requiredShippingContactFields: ['postalAddress', 'email'],
153
+ total: {
154
+ label: totalLabel,
155
+ amount: subtotal,
156
+ type: 'final'
157
+ }
158
+ };
159
+ };
160
+
161
+ /***/ }),
162
+
163
+ /***/ "./resources/js/applepayDirect.js":
164
+ /*!****************************************!*\
165
+ !*** ./resources/js/applepayDirect.js ***!
166
+ \****************************************/
167
+ /*! no exports provided */
168
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
169
+
170
+ "use strict";
171
+ __webpack_require__.r(__webpack_exports__);
172
+ /* harmony import */ var _applePayError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applePayError.js */ "./resources/js/applePayError.js");
173
+ /* harmony import */ var _maybeShowApplePayButton_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maybeShowApplePayButton.js */ "./resources/js/maybeShowApplePayButton.js");
174
+ /* harmony import */ var _applePayRequest_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./applePayRequest.js */ "./resources/js/applePayRequest.js");
175
+
176
+
177
+
178
+
179
+ (function (_ref) {
180
+ var _ = _ref._,
181
+ mollieApplePayDirectData = _ref.mollieApplePayDirectData,
182
+ jQuery = _ref.jQuery;
183
+
184
+ if (_.isEmpty(mollieApplePayDirectData)) {
185
+ return;
186
+ }
187
+
188
+ var _mollieApplePayDirect = mollieApplePayDirectData.product,
189
+ id = _mollieApplePayDirect.id,
190
+ _mollieApplePayDirect2 = _mollieApplePayDirect.needShipping,
191
+ needShipping = _mollieApplePayDirect2 === void 0 ? true : _mollieApplePayDirect2,
192
+ _mollieApplePayDirect3 = _mollieApplePayDirect.isVariation,
193
+ isVariation = _mollieApplePayDirect3 === void 0 ? false : _mollieApplePayDirect3,
194
+ price = _mollieApplePayDirect.price,
195
+ _mollieApplePayDirect4 = mollieApplePayDirectData.shop,
196
+ countryCode = _mollieApplePayDirect4.countryCode,
197
+ _mollieApplePayDirect5 = _mollieApplePayDirect4.currencyCode,
198
+ currencyCode = _mollieApplePayDirect5 === void 0 ? 'EUR' : _mollieApplePayDirect5,
199
+ _mollieApplePayDirect6 = _mollieApplePayDirect4.totalLabel,
200
+ totalLabel = _mollieApplePayDirect6 === void 0 ? '' : _mollieApplePayDirect6,
201
+ ajaxUrl = mollieApplePayDirectData.ajaxUrl;
202
+
203
+ if (!id || !price || !countryCode || !ajaxUrl) {
204
+ return;
205
+ }
206
+
207
+ if (!Object(_maybeShowApplePayButton_js__WEBPACK_IMPORTED_MODULE_1__["maybeShowButton"])()) {
208
+ return;
209
+ }
210
+
211
+ var nonce = document.getElementById('woocommerce-process-checkout-nonce').value;
212
+ var productId = id;
213
+ var productQuantity = 1;
214
+ var updatedContactInfo = [];
215
+ var selectedShippingMethod = [];
216
+ var redirectionUrl = '';
217
+ document.querySelector('input.qty').addEventListener('change', function (event) {
218
+ productQuantity = event.currentTarget.value;
219
+ });
220
+
221
+ if (isVariation) {
222
+ var appleButton = document.querySelector('#mollie_applepay_button');
223
+ jQuery('.single_variation_wrap').on('show_variation', function (event, variation) {
224
+ // Fired when the user selects all the required dropdowns / attributes
225
+ // and a final variation is selected / shown
226
+ if (variation.variation_id) {
227
+ productId = variation.variation_id;
228
+ }
229
+
230
+ appleButton.disabled = false;
231
+ appleButton.classList.remove("buttonDisabled");
232
+ });
233
+ appleButton.disabled = true;
234
+ appleButton.classList.add("buttonDisabled");
235
+ }
236
+
237
+ var amountWithoutTax = productQuantity * price;
238
+
239
+ var applePaySession = function applePaySession() {
240
+ var session = new ApplePaySession(3, Object(_applePayRequest_js__WEBPACK_IMPORTED_MODULE_2__["request"])(countryCode, currencyCode, totalLabel, amountWithoutTax));
241
+ session.begin();
242
+
243
+ if (needShipping) {
244
+ session.onshippingmethodselected = function (event) {
245
+ var _this = this;
246
+
247
+ jQuery.ajax({
248
+ url: ajaxUrl,
249
+ method: 'POST',
250
+ data: {
251
+ action: 'mollie_apple_pay_update_shipping_method',
252
+ shippingMethod: event.shippingMethod,
253
+ productId: productId,
254
+ callerPage: 'productDetail',
255
+ productQuantity: productQuantity,
256
+ simplifiedContact: updatedContactInfo,
257
+ 'woocommerce-process-checkout-nonce': nonce
258
+ },
259
+ complete: function complete(jqXHR, textStatus) {},
260
+ success: function success(applePayShippingMethodUpdate, textStatus, jqXHR) {
261
+ var response = applePayShippingMethodUpdate.data;
262
+ selectedShippingMethod = event.shippingMethod;
263
+
264
+ if (applePayShippingMethodUpdate.success === false) {
265
+ response.errors = Object(_applePayError_js__WEBPACK_IMPORTED_MODULE_0__["createAppleErrors"])(response.errors);
266
+ }
267
+
268
+ _this.completeShippingMethodSelection(response);
269
+ },
270
+ error: function error(jqXHR, textStatus, errorThrown) {
271
+ console.warn(textStatus, errorThrown);
272
+ session.abort();
273
+ }
274
+ });
275
+ };
276
+
277
+ session.onshippingcontactselected = function (event) {
278
+ var _this2 = this;
279
+
280
+ jQuery.ajax({
281
+ url: ajaxUrl,
282
+ method: 'POST',
283
+ data: {
284
+ action: 'mollie_apple_pay_update_shipping_contact',
285
+ productId: productId,
286
+ callerPage: 'productDetail',
287
+ productQuantity: productQuantity,
288
+ simplifiedContact: event.shippingContact,
289
+ needShipping: needShipping,
290
+ 'woocommerce-process-checkout-nonce': nonce
291
+ },
292
+ complete: function complete(jqXHR, textStatus) {},
293
+ success: function success(applePayShippingContactUpdate, textStatus, jqXHR) {
294
+ var response = applePayShippingContactUpdate.data;
295
+ updatedContactInfo = event.shippingContact;
296
+
297
+ if (applePayShippingContactUpdate.success === false) {
298
+ response.errors = Object(_applePayError_js__WEBPACK_IMPORTED_MODULE_0__["createAppleErrors"])(response.errors);
299
+ }
300
+
301
+ if (response.newShippingMethods) {
302
+ selectedShippingMethod = response.newShippingMethods[0];
303
+ }
304
+
305
+ _this2.completeShippingContactSelection(response);
306
+ },
307
+ error: function error(jqXHR, textStatus, errorThrown) {
308
+ console.warn(textStatus, errorThrown);
309
+ session.abort();
310
+ }
311
+ });
312
+ };
313
+ }
314
+
315
+ session.onvalidatemerchant = function (applePayValidateMerchantEvent) {
316
+ jQuery.ajax({
317
+ url: ajaxUrl,
318
+ method: 'POST',
319
+ data: {
320
+ action: 'mollie_apple_pay_validation',
321
+ validationUrl: applePayValidateMerchantEvent.validationURL,
322
+ 'woocommerce-process-checkout-nonce': nonce
323
+ },
324
+ complete: function complete(jqXHR, textStatus) {},
325
+ success: function success(merchantSession, textStatus, jqXHR) {
326
+ if (merchantSession.success === true) {
327
+ session.completeMerchantValidation(JSON.parse(merchantSession.data));
328
+ } else {
329
+ console.warn(merchantSession.data);
330
+ session.abort();
331
+ }
332
+ },
333
+ error: function error(jqXHR, textStatus, errorThrown) {
334
+ console.warn(textStatus, errorThrown);
335
+ session.abort();
336
+ }
337
+ });
338
+ };
339
+
340
+ session.onpaymentauthorized = function (ApplePayPayment) {
341
+ var _ApplePayPayment$paym = ApplePayPayment.payment,
342
+ billingContact = _ApplePayPayment$paym.billingContact,
343
+ shippingContact = _ApplePayPayment$paym.shippingContact;
344
+ jQuery.ajax({
345
+ url: ajaxUrl,
346
+ method: 'POST',
347
+ data: {
348
+ action: 'mollie_apple_pay_create_order',
349
+ productId: productId,
350
+ productQuantity: productQuantity,
351
+ shippingContact: ApplePayPayment.payment.shippingContact,
352
+ billingContact: ApplePayPayment.payment.billingContact,
353
+ token: ApplePayPayment.payment.token,
354
+ shippingMethod: selectedShippingMethod,
355
+ 'mollie-payments-for-woocommerce_issuer_applepay': 'applepay',
356
+ 'woocommerce-process-checkout-nonce': nonce,
357
+ 'billing_first_name': billingContact.givenName || '',
358
+ 'billing_last_name': billingContact.familyName || '',
359
+ 'billing_company': '',
360
+ 'billing_country': billingContact.countryCode || '',
361
+ 'billing_address_1': billingContact.addressLines[0] || '',
362
+ 'billing_address_2': billingContact.addressLines[1] || '',
363
+ 'billing_postcode': billingContact.postalCode || '',
364
+ 'billing_city': billingContact.locality || '',
365
+ 'billing_state': billingContact.administrativeArea || '',
366
+ 'billing_phone': billingContact.phoneNumber || '000000000000',
367
+ 'billing_email': shippingContact.emailAddress || '',
368
+ 'shipping_first_name': shippingContact.givenName || '',
369
+ 'shipping_last_name': shippingContact.familyName || '',
370
+ 'shipping_company': '',
371
+ 'shipping_country': shippingContact.countryCode || '',
372
+ 'shipping_address_1': shippingContact.addressLines[0] || '',
373
+ 'shipping_address_2': shippingContact.addressLines[1] || '',
374
+ 'shipping_postcode': shippingContact.postalCode || '',
375
+ 'shipping_city': shippingContact.locality || '',
376
+ 'shipping_state': shippingContact.administrativeArea || '',
377
+ 'shipping_phone': shippingContact.phoneNumber || '000000000000',
378
+ 'shipping_email': shippingContact.emailAddress || '',
379
+ 'order_comments': '',
380
+ 'payment_method': 'mollie_wc_gateway_applepay',
381
+ '_wp_http_referer': '/?wc-ajax=update_order_review'
382
+ },
383
+ complete: function complete(jqXHR, textStatus) {},
384
+ success: function success(authorizationResult, textStatus, jqXHR) {
385
+ var result = authorizationResult.data;
386
+
387
+ if (authorizationResult.success === true) {
388
+ redirectionUrl = result['returnUrl'];
389
+ session.completePayment(result['responseToApple']);
390
+ window.location.href = redirectionUrl;
391
+ } else {
392
+ result.errors = Object(_applePayError_js__WEBPACK_IMPORTED_MODULE_0__["createAppleErrors"])(result.errors);
393
+ session.completePayment(result);
394
+ }
395
+ },
396
+ error: function error(jqXHR, textStatus, errorThrown) {
397
+ console.warn(textStatus, errorThrown);
398
+ session.abort();
399
+ }
400
+ });
401
+ };
402
+ };
403
+
404
+ document.querySelector('#mollie_applepay_button').addEventListener('click', function (evt) {
405
+ applePaySession();
406
+ });
407
+ })(window);
408
+
409
+ /***/ }),
410
+
411
+ /***/ "./resources/js/maybeShowApplePayButton.js":
412
+ /*!*************************************************!*\
413
+ !*** ./resources/js/maybeShowApplePayButton.js ***!
414
+ \*************************************************/
415
+ /*! exports provided: maybeShowButton */
416
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
417
+
418
+ "use strict";
419
+ __webpack_require__.r(__webpack_exports__);
420
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maybeShowButton", function() { return maybeShowButton; });
421
+ var maybeShowButton = function maybeShowButton() {
422
+ var _window = window,
423
+ ApplePaySession = _window.ApplePaySession;
424
+ var applePayMethodElement = document.querySelector('#mollie-applepayDirect-button');
425
+ var canShowButton = applePayMethodElement && ApplePaySession && ApplePaySession.canMakePayments();
426
+
427
+ if (!canShowButton) {
428
+ return false;
429
+ }
430
+
431
+ var button = document.createElement('button');
432
+ button.setAttribute('id', 'mollie_applepay_button');
433
+ button.classList.add('apple-pay-button');
434
+ button.classList.add('apple-pay-button-black');
435
+ applePayMethodElement.appendChild(button);
436
+ return true;
437
+ };
438
+
439
+ /***/ })
440
+
441
+ /******/ });
442
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FwcGxlUGF5RXJyb3IuanMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FwcGxlUGF5UmVxdWVzdC5qcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYXBwbGVwYXlEaXJlY3QuanMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL21heWJlU2hvd0FwcGxlUGF5QnV0dG9uLmpzIl0sIm5hbWVzIjpbImNyZWF0ZUFwcGxlRXJyb3JzIiwiZXJyb3JzIiwiZXJyb3JMaXN0IiwiZXJyb3IiLCJjb250YWN0RmllbGQiLCJjb2RlIiwibWVzc2FnZSIsImFwcGxlRXJyb3IiLCJBcHBsZVBheUVycm9yIiwicHVzaCIsInJlcXVlc3QiLCJjb3VudHJ5Q29kZSIsImN1cnJlbmN5Q29kZSIsInRvdGFsTGFiZWwiLCJzdWJ0b3RhbCIsInN1cHBvcnRlZE5ldHdvcmtzIiwibWVyY2hhbnRDYXBhYmlsaXRpZXMiLCJzaGlwcGluZ1R5cGUiLCJyZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzIiwicmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHMiLCJ0b3RhbCIsImxhYmVsIiwiYW1vdW50IiwidHlwZSIsIl8iLCJtb2xsaWVBcHBsZVBheURpcmVjdERhdGEiLCJqUXVlcnkiLCJpc0VtcHR5IiwicHJvZHVjdCIsImlkIiwibmVlZFNoaXBwaW5nIiwiaXNWYXJpYXRpb24iLCJwcmljZSIsInNob3AiLCJhamF4VXJsIiwibWF5YmVTaG93QnV0dG9uIiwibm9uY2UiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwidmFsdWUiLCJwcm9kdWN0SWQiLCJwcm9kdWN0UXVhbnRpdHkiLCJ1cGRhdGVkQ29udGFjdEluZm8iLCJzZWxlY3RlZFNoaXBwaW5nTWV0aG9kIiwicmVkaXJlY3Rpb25VcmwiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwiY3VycmVudFRhcmdldCIsImFwcGxlQnV0dG9uIiwib24iLCJ2YXJpYXRpb24iLCJ2YXJpYXRpb25faWQiLCJkaXNhYmxlZCIsImNsYXNzTGlzdCIsInJlbW92ZSIsImFkZCIsImFtb3VudFdpdGhvdXRUYXgiLCJhcHBsZVBheVNlc3Npb24iLCJzZXNzaW9uIiwiQXBwbGVQYXlTZXNzaW9uIiwiYmVnaW4iLCJvbnNoaXBwaW5nbWV0aG9kc2VsZWN0ZWQiLCJhamF4IiwidXJsIiwibWV0aG9kIiwiZGF0YSIsImFjdGlvbiIsInNoaXBwaW5nTWV0aG9kIiwiY2FsbGVyUGFnZSIsInNpbXBsaWZpZWRDb250YWN0IiwiY29tcGxldGUiLCJqcVhIUiIsInRleHRTdGF0dXMiLCJzdWNjZXNzIiwiYXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZSIsInJlc3BvbnNlIiwiY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbiIsImVycm9yVGhyb3duIiwiY29uc29sZSIsIndhcm4iLCJhYm9ydCIsIm9uc2hpcHBpbmdjb250YWN0c2VsZWN0ZWQiLCJzaGlwcGluZ0NvbnRhY3QiLCJhcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSIsIm5ld1NoaXBwaW5nTWV0aG9kcyIsImNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uIiwib252YWxpZGF0ZW1lcmNoYW50IiwiYXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQiLCJ2YWxpZGF0aW9uVXJsIiwidmFsaWRhdGlvblVSTCIsIm1lcmNoYW50U2Vzc2lvbiIsImNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uIiwiSlNPTiIsInBhcnNlIiwib25wYXltZW50YXV0aG9yaXplZCIsIkFwcGxlUGF5UGF5bWVudCIsInBheW1lbnQiLCJiaWxsaW5nQ29udGFjdCIsInRva2VuIiwiZ2l2ZW5OYW1lIiwiZmFtaWx5TmFtZSIsImFkZHJlc3NMaW5lcyIsInBvc3RhbENvZGUiLCJsb2NhbGl0eSIsImFkbWluaXN0cmF0aXZlQXJlYSIsInBob25lTnVtYmVyIiwiZW1haWxBZGRyZXNzIiwiYXV0aG9yaXphdGlvblJlc3VsdCIsInJlc3VsdCIsImNvbXBsZXRlUGF5bWVudCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsImV2dCIsImFwcGxlUGF5TWV0aG9kRWxlbWVudCIsImNhblNob3dCdXR0b24iLCJjYW5NYWtlUGF5bWVudHMiLCJidXR0b24iLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiYXBwZW5kQ2hpbGQiXSwibWFwcGluZ3MiOiI7UUFBQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7O1FBR0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDBDQUEwQyxnQ0FBZ0M7UUFDMUU7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSx3REFBd0Qsa0JBQWtCO1FBQzFFO1FBQ0EsaURBQWlELGNBQWM7UUFDL0Q7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLHlDQUF5QyxpQ0FBaUM7UUFDMUUsZ0hBQWdILG1CQUFtQixFQUFFO1FBQ3JJO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMkJBQTJCLDBCQUEwQixFQUFFO1FBQ3ZELGlDQUFpQyxlQUFlO1FBQ2hEO1FBQ0E7UUFDQTs7UUFFQTtRQUNBLHNEQUFzRCwrREFBK0Q7O1FBRXJIO1FBQ0E7OztRQUdBO1FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2xGTyxTQUFTQSxpQkFBVCxDQUEyQkMsTUFBM0IsRUFBbUM7RUFDdEMsSUFBTUMsU0FBUyxHQUFHLEVBQWxCOztFQURzQywyQ0FFbEJELE1BRmtCO0VBQUE7O0VBQUE7SUFFdEMsb0RBQTRCO01BQUEsSUFBakJFLEtBQWlCO01BQ3hCLDBCQUEyREEsS0FBM0QsQ0FBT0MsWUFBUDtNQUFBLElBQU9BLFlB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YXBwbGVwYXlEaXJlY3QubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvcHVibGljL2pzL1wiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gXCIuL3Jlc291cmNlcy9qcy9hcHBsZXBheURpcmVjdC5qc1wiKTtcbiIsImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcHBsZUVycm9ycyhlcnJvcnMpIHtcbiAgICBjb25zdCBlcnJvckxpc3QgPSBbXVxuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICAgIGNvbnN0IHtjb250YWN0RmllbGQgPSBudWxsLCBjb2RlID0gbnVsbCwgbWVzc2FnZSA9IG51bGx9ID0gZXJyb3JcbiAgICAgICAgY29uc3QgYXBwbGVFcnJvciA9IGNvbnRhY3RGaWVsZCA/IG5ldyBBcHBsZVBheUVycm9yKGNvZGUsIGNvbnRhY3RGaWVsZCwgbWVzc2FnZSkgOiBuZXcgQXBwbGVQYXlFcnJvcihjb2RlKVxuICAgICAgICBlcnJvckxpc3QucHVzaChhcHBsZUVycm9yKVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvckxpc3Rcbn1cbiIsImV4cG9ydCBjb25zdCByZXF1ZXN0ID0gKGNvdW50cnlDb2RlLCBjdXJyZW5jeUNvZGUsIHRvdGFsTGFiZWwsIHN1YnRvdGFsKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY291bnRyeUNvZGU6IGNvdW50cnlDb2RlLFxuICAgICAgICBjdXJyZW5jeUNvZGU6IGN1cnJlbmN5Q29kZSxcbiAgICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsnYW1leCcsICdtYWVzdHJvJywgJ21hc3RlckNhcmQnLCAndmlzYScsICd2UGF5J10sXG4gICAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbJ3N1cHBvcnRzM0RTJ10sXG4gICAgICAgIHNoaXBwaW5nVHlwZTogJ3NoaXBwaW5nJyxcbiAgICAgICAgcmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkczogW1xuICAgICAgICAgICAgJ3Bvc3RhbEFkZHJlc3MnLFxuICAgICAgICAgICAgJ2VtYWlsJ1xuICAgICAgICBdLFxuICAgICAgICByZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkczogW1xuICAgICAgICAgICAgJ3Bvc3RhbEFkZHJlc3MnLFxuICAgICAgICAgICAgJ2VtYWlsJ1xuICAgICAgICBdLFxuICAgICAgICB0b3RhbDoge1xuICAgICAgICAgICAgbGFiZWw6IHRvdGFsTGFiZWwsXG4gICAgICAgICAgICBhbW91bnQ6IHN1YnRvdGFsLFxuICAgICAgICAgICAgdHlwZTogJ2ZpbmFsJ1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiaW1wb3J0IHtjcmVhdGVBcHBsZUVycm9yc30gZnJvbSAnLi9hcHBsZVBheUVycm9yLmpzJztcbmltcG9ydCB7bWF5YmVTaG93QnV0dG9ufSBmcm9tICcuL21heWJlU2hvd0FwcGxlUGF5QnV0dG9uLmpzJztcbmltcG9ydCB7cmVxdWVzdH0gZnJvbSAnLi9hcHBsZVBheVJlcXVlc3QuanMnO1xuXG4oXG4gICAgZnVuY3Rpb24gKHtfLCBtb2xsaWVBcHBsZVBheURpcmVjdERhdGEsIGpRdWVyeX0pIHtcbiAgICAgICAgaWYgKF8uaXNFbXB0eShtb2xsaWVBcHBsZVBheURpcmVjdERhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtwcm9kdWN0OiB7aWQsIG5lZWRTaGlwcGluZyA9IHRydWUsIGlzVmFyaWF0aW9uID0gZmFsc2UsIHByaWNlfSwgc2hvcDoge2NvdW50cnlDb2RlLCBjdXJyZW5jeUNvZGUgPSAnRVVSJywgdG90YWxMYWJlbCA9ICcnfSwgYWpheFVybH0gPSBtb2xsaWVBcHBsZVBheURpcmVjdERhdGFcblxuICAgICAgICBpZiAoIWlkIHx8ICFwcmljZSB8fCAhY291bnRyeUNvZGUgfHwgIWFqYXhVcmwpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmKCFtYXliZVNob3dCdXR0b24oKSl7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vbmNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dvb2NvbW1lcmNlLXByb2Nlc3MtY2hlY2tvdXQtbm9uY2UnKS52YWx1ZVxuICAgICAgICBsZXQgcHJvZHVjdElkID0gaWRcbiAgICAgICAgbGV0IHByb2R1Y3RRdWFudGl0eSA9IDFcbiAgICAgICAgbGV0IHVwZGF0ZWRDb250YWN0SW5mbyA9IFtdXG4gICAgICAgIGxldCBzZWxlY3RlZFNoaXBwaW5nTWV0aG9kID0gW11cbiAgICAgICAgbGV0IHJlZGlyZWN0aW9uVXJsID0gJydcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQucXR5JykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZXZlbnQgPT4ge1xuICAgICAgICAgICAgcHJvZHVjdFF1YW50aXR5ID0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZVxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChpc1ZhcmlhdGlvbikge1xuICAgICAgICAgICAgbGV0IGFwcGxlQnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21vbGxpZV9hcHBsZXBheV9idXR0b24nKTtcbiAgICAgICAgICAgIGpRdWVyeSgnLnNpbmdsZV92YXJpYXRpb25fd3JhcCcpLm9uKCdzaG93X3ZhcmlhdGlvbicsIGZ1bmN0aW9uIChldmVudCwgdmFyaWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgLy8gRmlyZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGFsbCB0aGUgcmVxdWlyZWQgZHJvcGRvd25zIC8gYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgIC8vIGFuZCBhIGZpbmFsIHZhcmlhdGlvbiBpcyBzZWxlY3RlZCAvIHNob3duXG4gICAgICAgICAgICAgICAgaWYgKHZhcmlhdGlvbi52YXJpYXRpb25faWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdElkID0gdmFyaWF0aW9uLnZhcmlhdGlvbl9pZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcHBsZUJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGFwcGxlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoXCJidXR0b25EaXNhYmxlZFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXBwbGVCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgYXBwbGVCdXR0b24uY2xhc3NMaXN0LmFkZChcImJ1dHRvbkRpc2FibGVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFtb3VudFdpdGhvdXRUYXggPSBwcm9kdWN0UXVhbnRpdHkgKiBwcmljZVxuICAgICAgICBsZXQgYXBwbGVQYXlTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBBcHBsZVBheVNlc3Npb24oMywgcmVxdWVzdChjb3VudHJ5Q29kZSwgY3VycmVuY3lDb2RlLCB0b3RhbExhYmVsLCBhbW91bnRXaXRob3V0VGF4KSlcbiAgICAgICAgICAgIHNlc3Npb24uYmVnaW4oKVxuICAgICAgICAgICAgaWYobmVlZFNoaXBwaW5nKXtcbiAgICAgICAgICAgICAgICBzZXNzaW9uLm9uc2hpcHBpbmdtZXRob2RzZWxlY3RlZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGFqYXhVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdtb2xsaWVfYXBwbGVfcGF5X3VwZGF0ZV9zaGlwcGluZ19tZXRob2QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaXBwaW5nTWV0aG9kOiBldmVudC5zaGlwcGluZ01ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IHByb2R1Y3RJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsZXJQYWdlOiAncHJvZHVjdERldGFpbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdFF1YW50aXR5OiBwcm9kdWN0UXVhbnRpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ltcGxpZmllZENvbnRhY3Q6IHVwZGF0ZWRDb250YWN0SW5mbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd29vY29tbWVyY2UtcHJvY2Vzcy1jaGVja291dC1ub25jZSc6IG5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoanFYSFIsIHRleHRTdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoYXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZSwgdGV4dFN0YXR1cywganFYSFIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBhcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFNoaXBwaW5nTWV0aG9kID0gZXZlbnQuc2hpcHBpbmdNZXRob2RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5zdWNjZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5lcnJvcnMgPSBjcmVhdGVBcHBsZUVycm9ycyhyZXNwb25zZS5lcnJvcnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihyZXNwb25zZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih0ZXh0U3RhdHVzLCBlcnJvclRocm93bilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLmFib3J0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNlc3Npb24ub25zaGlwcGluZ2NvbnRhY3RzZWxlY3RlZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGFqYXhVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdtb2xsaWVfYXBwbGVfcGF5X3VwZGF0ZV9zaGlwcGluZ19jb250YWN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IHByb2R1Y3RJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsZXJQYWdlOiAncHJvZHVjdERldGFpbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdFF1YW50aXR5OiBwcm9kdWN0UXVhbnRpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ltcGxpZmllZENvbnRhY3Q6IGV2ZW50LnNoaXBwaW5nQ29udGFjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkU2hpcHBpbmc6IG5lZWRTaGlwcGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd29vY29tbWVyY2UtcHJvY2Vzcy1jaGVja291dC1ub25jZSc6IG5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoanFYSFIsIHRleHRTdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoYXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUsIHRleHRTdGF0dXMsIGpxWEhSKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRDb250YWN0SW5mbyA9IGV2ZW50LnNoaXBwaW5nQ29udGFjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5zdWNjZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5lcnJvcnMgPSBjcmVhdGVBcHBsZUVycm9ycyhyZXNwb25zZS5lcnJvcnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5uZXdTaGlwcGluZ01ldGhvZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTaGlwcGluZ01ldGhvZCA9IHJlc3BvbnNlLm5ld1NoaXBwaW5nTWV0aG9kc1swXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHJlc3BvbnNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiAoanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKHRleHRTdGF0dXMsIGVycm9yVGhyb3duKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uYWJvcnQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXNzaW9uLm9udmFsaWRhdGVtZXJjaGFudCA9IChhcHBsZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGpRdWVyeS5hamF4KHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBhamF4VXJsLFxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnbW9sbGllX2FwcGxlX3BheV92YWxpZGF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25Vcmw6IGFwcGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50LnZhbGlkYXRpb25VUkwsXG4gICAgICAgICAgICAgICAgICAgICAgICAnd29vY29tbWVyY2UtcHJvY2Vzcy1jaGVja291dC1ub25jZSc6IG5vbmNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogKGpxWEhSLCB0ZXh0U3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChtZXJjaGFudFNlc3Npb24sIHRleHRTdGF0dXMsIGpxWEhSKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVyY2hhbnRTZXNzaW9uLnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKEpTT04ucGFyc2UobWVyY2hhbnRTZXNzaW9uLmRhdGEpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4obWVyY2hhbnRTZXNzaW9uLmRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5hYm9ydCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4odGV4dFN0YXR1cywgZXJyb3JUaHJvd24pXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLmFib3J0KClcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vzc2lvbi5vbnBheW1lbnRhdXRob3JpemVkID0gKEFwcGxlUGF5UGF5bWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtiaWxsaW5nQ29udGFjdCwgc2hpcHBpbmdDb250YWN0IH0gPSBBcHBsZVBheVBheW1lbnQucGF5bWVudFxuXG4gICAgICAgICAgICAgICAgalF1ZXJ5LmFqYXgoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IGFqYXhVcmwsXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdtb2xsaWVfYXBwbGVfcGF5X2NyZWF0ZV9vcmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IHByb2R1Y3RJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RRdWFudGl0eTogcHJvZHVjdFF1YW50aXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmdDb250YWN0OiBBcHBsZVBheVBheW1lbnQucGF5bWVudC5zaGlwcGluZ0NvbnRhY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBiaWxsaW5nQ29udGFjdDogQXBwbGVQYXlQYXltZW50LnBheW1lbnQuYmlsbGluZ0NvbnRhY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b2tlbjogQXBwbGVQYXlQYXltZW50LnBheW1lbnQudG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGlwcGluZ01ldGhvZDogc2VsZWN0ZWRTaGlwcGluZ01ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdtb2xsaWUtcGF5bWVudHMtZm9yLXdvb2NvbW1lcmNlX2lzc3Vlcl9hcHBsZXBheSc6ICdhcHBsZXBheScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnd29vY29tbWVyY2UtcHJvY2Vzcy1jaGVja291dC1ub25jZSc6IG5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbGxpbmdfZmlyc3RfbmFtZSc6ICBiaWxsaW5nQ29udGFjdC5naXZlbk5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19sYXN0X25hbWUnIDogYmlsbGluZ0NvbnRhY3QuZmFtaWx5TmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX2NvbXBhbnknOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX2NvdW50cnknIDogYmlsbGluZ0NvbnRhY3QuY291bnRyeUNvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19hZGRyZXNzXzEnIDogYmlsbGluZ0NvbnRhY3QuYWRkcmVzc0xpbmVzWzBdIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbGxpbmdfYWRkcmVzc18yJyA6IGJpbGxpbmdDb250YWN0LmFkZHJlc3NMaW5lc1sxXSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX3Bvc3Rjb2RlJyA6IGJpbGxpbmdDb250YWN0LnBvc3RhbENvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19jaXR5JzogYmlsbGluZ0NvbnRhY3QubG9jYWxpdHkgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19zdGF0ZScgOiBiaWxsaW5nQ29udGFjdC5hZG1pbmlzdHJhdGl2ZUFyZWEgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19waG9uZScgOiBiaWxsaW5nQ29udGFjdC5waG9uZU51bWJlciB8fCAnMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX2VtYWlsJyA6IHNoaXBwaW5nQ29udGFjdC5lbWFpbEFkZHJlc3MgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfZmlyc3RfbmFtZSc6ICBzaGlwcGluZ0NvbnRhY3QuZ2l2ZW5OYW1lIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NoaXBwaW5nX2xhc3RfbmFtZScgOiBzaGlwcGluZ0NvbnRhY3QuZmFtaWx5TmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzaGlwcGluZ19jb21wYW55JzogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfY291bnRyeScgOiBzaGlwcGluZ0NvbnRhY3QuY291bnRyeUNvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfYWRkcmVzc18xJyA6IHNoaXBwaW5nQ29udGFjdC5hZGRyZXNzTGluZXNbMF0gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfYWRkcmVzc18yJyA6IHNoaXBwaW5nQ29udGFjdC5hZGRyZXNzTGluZXNbMV0gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfcG9zdGNvZGUnIDogc2hpcHBpbmdDb250YWN0LnBvc3RhbENvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfY2l0eSc6IHNoaXBwaW5nQ29udGFjdC5sb2NhbGl0eSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzaGlwcGluZ19zdGF0ZScgOiBzaGlwcGluZ0NvbnRhY3QuYWRtaW5pc3RyYXRpdmVBcmVhIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NoaXBwaW5nX3Bob25lJyA6IHNoaXBwaW5nQ29udGFjdC5waG9uZU51bWJlciB8fCAnMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzaGlwcGluZ19lbWFpbCcgOiBzaGlwcGluZ0NvbnRhY3QuZW1haWxBZGRyZXNzIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyX2NvbW1lbnRzJyA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3BheW1lbnRfbWV0aG9kJyA6ICdtb2xsaWVfd2NfZ2F0ZXdheV9hcHBsZXBheScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnX3dwX2h0dHBfcmVmZXJlcicgOiAnLz93Yy1hamF4PXVwZGF0ZV9vcmRlcl9yZXZpZXcnXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoanFYSFIsIHRleHRTdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKGF1dGhvcml6YXRpb25SZXN1bHQsIHRleHRTdGF0dXMsIGpxWEhSKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXV0aG9yaXphdGlvblJlc3VsdC5kYXRhXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRob3JpemF0aW9uUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGlvblVybCA9IHJlc3VsdFsncmV0dXJuVXJsJ107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5jb21wbGV0ZVBheW1lbnQocmVzdWx0WydyZXNwb25zZVRvQXBwbGUnXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0aW9uVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5lcnJvcnMgPSBjcmVhdGVBcHBsZUVycm9ycyhyZXN1bHQuZXJyb3JzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uY29tcGxldGVQYXltZW50KHJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih0ZXh0U3RhdHVzLCBlcnJvclRocm93bilcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uYWJvcnQoKVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21vbGxpZV9hcHBsZXBheV9idXR0b24nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldnQpID0+IHtcbiAgICAgICAgICAgIGFwcGxlUGF5U2Vzc2lvbigpXG4gICAgICAgIH0pXG4gICAgfVxuKVxuKFxuICAgIHdpbmRvd1xuKVxuIiwiZXhwb3J0IGNvbnN0IG1heWJlU2hvd0J1dHRvbiA9ICgpID0+IHtcbiAgICBjb25zdCB7QXBwbGVQYXlTZXNzaW9ufSA9IHdpbmRvd1xuICAgIGNvbnN0IGFwcGxlUGF5TWV0aG9kRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcjbW9sbGllLWFwcGxlcGF5RGlyZWN0LWJ1dHRvbicsXG4gICAgKVxuICAgIGNvbnN0IGNhblNob3dCdXR0b24gPSBhcHBsZVBheU1ldGhvZEVsZW1lbnQgJiYgKEFwcGxlUGF5U2Vzc2lvbiAmJiBBcHBsZVBheVNlc3Npb24uY2FuTWFrZVBheW1lbnRzKCkpXG4gICAgaWYgKCFjYW5TaG93QnV0dG9uKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKVxuICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2lkJywgJ21vbGxpZV9hcHBsZXBheV9idXR0b24nKVxuICAgIGJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdhcHBsZS1wYXktYnV0dG9uJylcbiAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnYXBwbGUtcGF5LWJ1dHRvbi1ibGFjaycpXG4gICAgYXBwbGVQYXlNZXRob2RFbGVtZW50LmFwcGVuZENoaWxkKGJ1dHRvbilcbiAgICByZXR1cm4gdHJ1ZVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
public/js/applepayDirectCart.min.js CHANGED
@@ -1 +1,414 @@
1
- !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/public/js/",n(n.s="RX5I")}({OiFV:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var o=function(){var e=window.ApplePaySession,t=document.querySelector("#mollie-applepayDirect-button");if(!(t&&e&&e.canMakePayments()))return!1;var n=document.createElement("button");return n.setAttribute("id","mollie_applepay_button"),n.classList.add("apple-pay-button"),n.classList.add("apple-pay-button-black"),t.appendChild(n),!0}},RX5I:function(e,t,n){"use strict";n.r(t);var o=n("nxB1"),r=n("uXQx"),i=n("OiFV");!function(e){var t=e._,n=e.mollieApplePayDirectDataCart,a=e.jQuery;if(!t.isEmpty(n)){var c=n.product,l=c.needShipping,p=void 0===l||l,s=c.subtotal,u=n.shop,d=u.countryCode,m=u.currencyCode,f=void 0===m?"EUR":m,y=u.totalLabel,h=void 0===y?"":y,_=n.ajaxUrl;if(s&&d&&_){var g=document.getElementById("woocommerce-process-checkout-nonce").value,b=[],v=[],w="",S=function(){var e=new ApplePaySession(3,Object(r.a)(d,f,h,s));e.begin(),e.onshippingmethodselected=function(t){var n=this;a.ajax({url:_,method:"POST",data:{action:"mollie_apple_pay_update_shipping_method",shippingMethod:t.shippingMethod,callerPage:"cart",simplifiedContact:b,"woocommerce-process-checkout-nonce":g},complete:function(e,t){},success:function(e,r,i){var a=e.data;v=t.shippingMethod,!1===e.success&&(a.errors=Object(o.a)(a.errors)),n.completeShippingMethodSelection(a)},error:function(t,n,o){console.warn(n,o),e.abort()}})},e.onshippingcontactselected=function(t){var n=this;a.ajax({url:_,method:"POST",data:{action:"mollie_apple_pay_update_shipping_contact",simplifiedContact:t.shippingContact,callerPage:"cart",needShipping:p,"woocommerce-process-checkout-nonce":g},complete:function(e,t){},success:function(e,r,i){var a=e.data;b=t.shippingContact,!1===e.success&&(a.errors=Object(o.a)(a.errors)),a.newShippingMethods&&(v=a.newShippingMethods[0]),n.completeShippingContactSelection(a)},error:function(t,n,o){console.warn(n,o),e.abort()}})},e.onvalidatemerchant=function(t){a.ajax({url:_,method:"POST",data:{action:"mollie_apple_pay_validation",validationUrl:t.validationURL,"woocommerce-process-checkout-nonce":g},complete:function(e,t){},success:function(t,n,o){!0===t.success?e.completeMerchantValidation(JSON.parse(t.data)):(console.warn(t.data),e.abort())},error:function(t,n,o){console.warn(n,o),e.abort()}})},e.onpaymentauthorized=function(t){var n=t.payment,r=n.billingContact,i=n.shippingContact;a.ajax({url:_,method:"POST",data:{action:"mollie_apple_pay_create_order_cart",shippingContact:t.payment.shippingContact,billingContact:t.payment.billingContact,token:t.payment.token,shippingMethod:v,"mollie-payments-for-woocommerce_issuer_applepay":"applepay","woocommerce-process-checkout-nonce":g,billing_first_name:r.givenName||"",billing_last_name:r.familyName||"",billing_company:"",billing_country:r.countryCode||"",billing_address_1:r.addressLines[0]||"",billing_address_2:r.addressLines[1]||"",billing_postcode:r.postalCode||"",billing_city:r.locality||"",billing_state:r.administrativeArea||"",billing_phone:r.phoneNumber||"000000000000",billing_email:i.emailAddress||"",shipping_first_name:i.givenName||"",shipping_last_name:i.familyName||"",shipping_company:"",shipping_country:i.countryCode||"",shipping_address_1:i.addressLines[0]||"",shipping_address_2:i.addressLines[1]||"",shipping_postcode:i.postalCode||"",shipping_city:i.locality||"",shipping_state:i.administrativeArea||"",shipping_phone:i.phoneNumber||"000000000000",shipping_email:i.emailAddress||"",order_comments:"",payment_method:"mollie_wc_gateway_applepay",_wp_http_referer:"/?wc-ajax=update_order_review"},complete:function(e,t){},success:function(t,n,r){var i=t.data;!0===t.success?(w=i.returnUrl,e.completePayment(i.responseToApple),window.location.href=w):(i.errors=Object(o.a)(i.errors),e.completePayment(i))},error:function(t,n,o){console.warn(n,o),e.abort()}})}};Object(i.a)()&&(a(document.body).on("updated_cart_totals",(function(e){Object(i.a)(),document.querySelector("#mollie_applepay_button").addEventListener("click",(function(e){S()}))})),document.querySelector("#mollie_applepay_button").addEventListener("click",(function(e){S()})))}}}(window)},nxB1:function(e,t,n){"use strict";function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,c=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){l=!0,a=e},f:function(){try{c||null==n.return||n.return()}finally{if(l)throw a}}}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function i(e){var t,n=[],r=o(e);try{for(r.s();!(t=r.n()).done;){var i=t.value,a=i.contactField,c=void 0===a?null:a,l=i.code,p=void 0===l?null:l,s=i.message,u=c?new ApplePayError(p,c,void 0===s?null:s):new ApplePayError(p);n.push(u)}}catch(e){r.e(e)}finally{r.f()}return n}n.d(t,"a",(function(){return i}))},uXQx:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var o=function(e,t,n,o){return{countryCode:e,currencyCode:t,supportedNetworks:["amex","maestro","masterCard","visa","vPay"],merchantCapabilities:["supports3DS"],shippingType:"shipping",requiredBillingContactFields:["postalAddress","email"],requiredShippingContactFields:["postalAddress","email"],total:{label:n,amount:o,type:"final"}}}}});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "/public/js/";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./resources/js/applepayDirectCart.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./resources/js/applePayError.js":
90
+ /*!***************************************!*\
91
+ !*** ./resources/js/applePayError.js ***!
92
+ \***************************************/
93
+ /*! exports provided: createAppleErrors */
94
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
95
+
96
+ "use strict";
97
+ __webpack_require__.r(__webpack_exports__);
98
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createAppleErrors", function() { return createAppleErrors; });
99
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
100
+
101
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
102
+
103
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
104
+
105
+ function createAppleErrors(errors) {
106
+ var errorList = [];
107
+
108
+ var _iterator = _createForOfIteratorHelper(errors),
109
+ _step;
110
+
111
+ try {
112
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
113
+ var error = _step.value;
114
+ var _error$contactField = error.contactField,
115
+ contactField = _error$contactField === void 0 ? null : _error$contactField,
116
+ _error$code = error.code,
117
+ code = _error$code === void 0 ? null : _error$code,
118
+ _error$message = error.message,
119
+ message = _error$message === void 0 ? null : _error$message;
120
+ var appleError = contactField ? new ApplePayError(code, contactField, message) : new ApplePayError(code);
121
+ errorList.push(appleError);
122
+ }
123
+ } catch (err) {
124
+ _iterator.e(err);
125
+ } finally {
126
+ _iterator.f();
127
+ }
128
+
129
+ return errorList;
130
+ }
131
+
132
+ /***/ }),
133
+
134
+ /***/ "./resources/js/applePayRequest.js":
135
+ /*!*****************************************!*\
136
+ !*** ./resources/js/applePayRequest.js ***!
137
+ \*****************************************/
138
+ /*! exports provided: request */
139
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
140
+
141
+ "use strict";
142
+ __webpack_require__.r(__webpack_exports__);
143
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "request", function() { return request; });
144
+ var request = function request(countryCode, currencyCode, totalLabel, subtotal) {
145
+ return {
146
+ countryCode: countryCode,
147
+ currencyCode: currencyCode,
148
+ supportedNetworks: ['amex', 'maestro', 'masterCard', 'visa', 'vPay'],
149
+ merchantCapabilities: ['supports3DS'],
150
+ shippingType: 'shipping',
151
+ requiredBillingContactFields: ['postalAddress', 'email'],
152
+ requiredShippingContactFields: ['postalAddress', 'email'],
153
+ total: {
154
+ label: totalLabel,
155
+ amount: subtotal,
156
+ type: 'final'
157
+ }
158
+ };
159
+ };
160
+
161
+ /***/ }),
162
+
163
+ /***/ "./resources/js/applepayDirectCart.js":
164
+ /*!********************************************!*\
165
+ !*** ./resources/js/applepayDirectCart.js ***!
166
+ \********************************************/
167
+ /*! no exports provided */
168
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
169
+
170
+ "use strict";
171
+ __webpack_require__.r(__webpack_exports__);
172
+ /* harmony import */ var _applePayError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applePayError.js */ "./resources/js/applePayError.js");
173
+ /* harmony import */ var _applePayRequest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applePayRequest */ "./resources/js/applePayRequest.js");
174
+ /* harmony import */ var _maybeShowApplePayButton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./maybeShowApplePayButton.js */ "./resources/js/maybeShowApplePayButton.js");
175
+
176
+
177
+
178
+
179
+ (function (_ref) {
180
+ var _ = _ref._,
181
+ mollieApplePayDirectDataCart = _ref.mollieApplePayDirectDataCart,
182
+ jQuery = _ref.jQuery;
183
+
184
+ if (_.isEmpty(mollieApplePayDirectDataCart)) {
185
+ return;
186
+ }
187
+
188
+ var _mollieApplePayDirect = mollieApplePayDirectDataCart.product,
189
+ _mollieApplePayDirect2 = _mollieApplePayDirect.needShipping,
190
+ needShipping = _mollieApplePayDirect2 === void 0 ? true : _mollieApplePayDirect2,
191
+ subtotal = _mollieApplePayDirect.subtotal,
192
+ _mollieApplePayDirect3 = mollieApplePayDirectDataCart.shop,
193
+ countryCode = _mollieApplePayDirect3.countryCode,
194
+ _mollieApplePayDirect4 = _mollieApplePayDirect3.currencyCode,
195
+ currencyCode = _mollieApplePayDirect4 === void 0 ? 'EUR' : _mollieApplePayDirect4,
196
+ _mollieApplePayDirect5 = _mollieApplePayDirect3.totalLabel,
197
+ totalLabel = _mollieApplePayDirect5 === void 0 ? '' : _mollieApplePayDirect5,
198
+ ajaxUrl = mollieApplePayDirectDataCart.ajaxUrl;
199
+
200
+ if (!subtotal || !countryCode || !ajaxUrl) {
201
+ return;
202
+ }
203
+
204
+ var nonce = document.getElementById("woocommerce-process-checkout-nonce").value;
205
+ var updatedContactInfo = [];
206
+ var selectedShippingMethod = [];
207
+ var redirectionUrl = '';
208
+
209
+ var applePaySession = function applePaySession() {
210
+ var session = new ApplePaySession(3, Object(_applePayRequest__WEBPACK_IMPORTED_MODULE_1__["request"])(countryCode, currencyCode, totalLabel, subtotal));
211
+ session.begin();
212
+
213
+ session.onshippingmethodselected = function (event) {
214
+ var _this = this;
215
+
216
+ jQuery.ajax({
217
+ url: ajaxUrl,
218
+ method: 'POST',
219
+ data: {
220
+ action: 'mollie_apple_pay_update_shipping_method',
221
+ shippingMethod: event.shippingMethod,
222
+ callerPage: 'cart',
223
+ simplifiedContact: updatedContactInfo,
224
+ 'woocommerce-process-checkout-nonce': nonce
225
+ },
226
+ complete: function complete(jqXHR, textStatus) {},
227
+ success: function success(applePayShippingMethodUpdate, textStatus, jqXHR) {
228
+ var response = applePayShippingMethodUpdate.data;
229
+ selectedShippingMethod = event.shippingMethod;
230
+
231
+ if (applePayShippingMethodUpdate.success === false) {
232
+ response.errors = Object(_applePayError_js__WEBPACK_IMPORTED_MODULE_0__["createAppleErrors"])(response.errors);
233
+ }
234
+
235
+ _this.completeShippingMethodSelection(response);
236
+ },
237
+ error: function error(jqXHR, textStatus, errorThrown) {
238
+ console.warn(textStatus, errorThrown);
239
+ session.abort();
240
+ }
241
+ });
242
+ };
243
+
244
+ session.onshippingcontactselected = function (event) {
245
+ var _this2 = this;
246
+
247
+ jQuery.ajax({
248
+ url: ajaxUrl,
249
+ method: 'POST',
250
+ data: {
251
+ action: 'mollie_apple_pay_update_shipping_contact',
252
+ simplifiedContact: event.shippingContact,
253
+ callerPage: 'cart',
254
+ needShipping: needShipping,
255
+ 'woocommerce-process-checkout-nonce': nonce
256
+ },
257
+ complete: function complete(jqXHR, textStatus) {},
258
+ success: function success(applePayShippingContactUpdate, textStatus, jqXHR) {
259
+ var response = applePayShippingContactUpdate.data;
260
+ updatedContactInfo = event.shippingContact;
261
+
262
+ if (applePayShippingContactUpdate.success === false) {
263
+ response.errors = Object(_applePayError_js__WEBPACK_IMPORTED_MODULE_0__["createAppleErrors"])(response.errors);
264
+ }
265
+
266
+ if (response.newShippingMethods) {
267
+ selectedShippingMethod = response.newShippingMethods[0];
268
+ }
269
+
270
+ _this2.completeShippingContactSelection(response);
271
+ },
272
+ error: function error(jqXHR, textStatus, errorThrown) {
273
+ console.warn(textStatus, errorThrown);
274
+ session.abort();
275
+ }
276
+ });
277
+ };
278
+
279
+ session.onvalidatemerchant = function (applePayValidateMerchantEvent) {
280
+ jQuery.ajax({
281
+ url: ajaxUrl,
282
+ method: 'POST',
283
+ data: {
284
+ action: 'mollie_apple_pay_validation',
285
+ validationUrl: applePayValidateMerchantEvent.validationURL,
286
+ 'woocommerce-process-checkout-nonce': nonce
287
+ },
288
+ complete: function complete(jqXHR, textStatus) {},
289
+ success: function success(merchantSession, textStatus, jqXHR) {
290
+ if (merchantSession.success === true) {
291
+ session.completeMerchantValidation(JSON.parse(merchantSession.data));
292
+ } else {
293
+ console.warn(merchantSession.data);
294
+ session.abort();
295
+ }
296
+ },
297
+ error: function error(jqXHR, textStatus, errorThrown) {
298
+ console.warn(textStatus, errorThrown);
299
+ session.abort();
300
+ }
301
+ });
302
+ };
303
+
304
+ session.onpaymentauthorized = function (ApplePayPayment) {
305
+ var _ApplePayPayment$paym = ApplePayPayment.payment,
306
+ billingContact = _ApplePayPayment$paym.billingContact,
307
+ shippingContact = _ApplePayPayment$paym.shippingContact;
308
+ jQuery.ajax({
309
+ url: ajaxUrl,
310
+ method: 'POST',
311
+ data: {
312
+ action: 'mollie_apple_pay_create_order_cart',
313
+ shippingContact: ApplePayPayment.payment.shippingContact,
314
+ billingContact: ApplePayPayment.payment.billingContact,
315
+ token: ApplePayPayment.payment.token,
316
+ shippingMethod: selectedShippingMethod,
317
+ 'mollie-payments-for-woocommerce_issuer_applepay': 'applepay',
318
+ 'woocommerce-process-checkout-nonce': nonce,
319
+ 'billing_first_name': billingContact.givenName || '',
320
+ 'billing_last_name': billingContact.familyName || '',
321
+ 'billing_company': '',
322
+ 'billing_country': billingContact.countryCode || '',
323
+ 'billing_address_1': billingContact.addressLines[0] || '',
324
+ 'billing_address_2': billingContact.addressLines[1] || '',
325
+ 'billing_postcode': billingContact.postalCode || '',
326
+ 'billing_city': billingContact.locality || '',
327
+ 'billing_state': billingContact.administrativeArea || '',
328
+ 'billing_phone': billingContact.phoneNumber || '000000000000',
329
+ 'billing_email': shippingContact.emailAddress || '',
330
+ 'shipping_first_name': shippingContact.givenName || '',
331
+ 'shipping_last_name': shippingContact.familyName || '',
332
+ 'shipping_company': '',
333
+ 'shipping_country': shippingContact.countryCode || '',
334
+ 'shipping_address_1': shippingContact.addressLines[0] || '',
335
+ 'shipping_address_2': shippingContact.addressLines[1] || '',
336
+ 'shipping_postcode': shippingContact.postalCode || '',
337
+ 'shipping_city': shippingContact.locality || '',
338
+ 'shipping_state': shippingContact.administrativeArea || '',
339
+ 'shipping_phone': shippingContact.phoneNumber || '000000000000',
340
+ 'shipping_email': shippingContact.emailAddress || '',
341
+ 'order_comments': '',
342
+ 'payment_method': 'mollie_wc_gateway_applepay',
343
+ '_wp_http_referer': '/?wc-ajax=update_order_review'
344
+ },
345
+ complete: function complete(jqXHR, textStatus) {},
346
+ success: function success(authorizationResult, textStatus, jqXHR) {
347
+ var result = authorizationResult.data;
348
+
349
+ if (authorizationResult.success === true) {
350
+ redirectionUrl = result['returnUrl'];
351
+ session.completePayment(result['responseToApple']);
352
+ window.location.href = redirectionUrl;
353
+ } else {
354
+ result.errors = Object(_applePayError_js__WEBPACK_IMPORTED_MODULE_0__["createAppleErrors"])(result.errors);
355
+ session.completePayment(result);
356
+ }
357
+ },
358
+ error: function error(jqXHR, textStatus, errorThrown) {
359
+ console.warn(textStatus, errorThrown);
360
+ session.abort();
361
+ }
362
+ });
363
+ };
364
+ };
365
+
366
+ if (!Object(_maybeShowApplePayButton_js__WEBPACK_IMPORTED_MODULE_2__["maybeShowButton"])()) {
367
+ return;
368
+ }
369
+
370
+ jQuery(document.body).on('updated_cart_totals', function (event) {
371
+ Object(_maybeShowApplePayButton_js__WEBPACK_IMPORTED_MODULE_2__["maybeShowButton"])();
372
+ document.querySelector('#mollie_applepay_button').addEventListener('click', function (evt) {
373
+ applePaySession();
374
+ });
375
+ });
376
+ document.querySelector('#mollie_applepay_button').addEventListener('click', function (evt) {
377
+ applePaySession();
378
+ });
379
+ })(window);
380
+
381
+ /***/ }),
382
+
383
+ /***/ "./resources/js/maybeShowApplePayButton.js":
384
+ /*!*************************************************!*\
385
+ !*** ./resources/js/maybeShowApplePayButton.js ***!
386
+ \*************************************************/
387
+ /*! exports provided: maybeShowButton */
388
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
389
+
390
+ "use strict";
391
+ __webpack_require__.r(__webpack_exports__);
392
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maybeShowButton", function() { return maybeShowButton; });
393
+ var maybeShowButton = function maybeShowButton() {
394
+ var _window = window,
395
+ ApplePaySession = _window.ApplePaySession;
396
+ var applePayMethodElement = document.querySelector('#mollie-applepayDirect-button');
397
+ var canShowButton = applePayMethodElement && ApplePaySession && ApplePaySession.canMakePayments();
398
+
399
+ if (!canShowButton) {
400
+ return false;
401
+ }
402
+
403
+ var button = document.createElement('button');
404
+ button.setAttribute('id', 'mollie_applepay_button');
405
+ button.classList.add('apple-pay-button');
406
+ button.classList.add('apple-pay-button-black');
407
+ applePayMethodElement.appendChild(button);
408
+ return true;
409
+ };
410
+
411
+ /***/ })
412
+
413
+ /******/ });
414
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FwcGxlUGF5RXJyb3IuanMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2FwcGxlUGF5UmVxdWVzdC5qcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYXBwbGVwYXlEaXJlY3RDYXJ0LmpzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9tYXliZVNob3dBcHBsZVBheUJ1dHRvbi5qcyJdLCJuYW1lcyI6WyJjcmVhdGVBcHBsZUVycm9ycyIsImVycm9ycyIsImVycm9yTGlzdCIsImVycm9yIiwiY29udGFjdEZpZWxkIiwiY29kZSIsIm1lc3NhZ2UiLCJhcHBsZUVycm9yIiwiQXBwbGVQYXlFcnJvciIsInB1c2giLCJyZXF1ZXN0IiwiY291bnRyeUNvZGUiLCJjdXJyZW5jeUNvZGUiLCJ0b3RhbExhYmVsIiwic3VidG90YWwiLCJzdXBwb3J0ZWROZXR3b3JrcyIsIm1lcmNoYW50Q2FwYWJpbGl0aWVzIiwic2hpcHBpbmdUeXBlIiwicmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkcyIsInJlcXVpcmVkU2hpcHBpbmdDb250YWN0RmllbGRzIiwidG90YWwiLCJsYWJlbCIsImFtb3VudCIsInR5cGUiLCJfIiwibW9sbGllQXBwbGVQYXlEaXJlY3REYXRhQ2FydCIsImpRdWVyeSIsImlzRW1wdHkiLCJwcm9kdWN0IiwibmVlZFNoaXBwaW5nIiwic2hvcCIsImFqYXhVcmwiLCJub25jZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ2YWx1ZSIsInVwZGF0ZWRDb250YWN0SW5mbyIsInNlbGVjdGVkU2hpcHBpbmdNZXRob2QiLCJyZWRpcmVjdGlvblVybCIsImFwcGxlUGF5U2Vzc2lvbiIsInNlc3Npb24iLCJBcHBsZVBheVNlc3Npb24iLCJiZWdpbiIsIm9uc2hpcHBpbmdtZXRob2RzZWxlY3RlZCIsImV2ZW50IiwiYWpheCIsInVybCIsIm1ldGhvZCIsImRhdGEiLCJhY3Rpb24iLCJzaGlwcGluZ01ldGhvZCIsImNhbGxlclBhZ2UiLCJzaW1wbGlmaWVkQ29udGFjdCIsImNvbXBsZXRlIiwianFYSFIiLCJ0ZXh0U3RhdHVzIiwic3VjY2VzcyIsImFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUiLCJyZXNwb25zZSIsImNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24iLCJlcnJvclRocm93biIsImNvbnNvbGUiLCJ3YXJuIiwiYWJvcnQiLCJvbnNoaXBwaW5nY29udGFjdHNlbGVjdGVkIiwic2hpcHBpbmdDb250YWN0IiwiYXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUiLCJuZXdTaGlwcGluZ01ldGhvZHMiLCJjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbiIsIm9udmFsaWRhdGVtZXJjaGFudCIsImFwcGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50IiwidmFsaWRhdGlvblVybCIsInZhbGlkYXRpb25VUkwiLCJtZXJjaGFudFNlc3Npb24iLCJjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbiIsIkpTT04iLCJwYXJzZSIsIm9ucGF5bWVudGF1dGhvcml6ZWQiLCJBcHBsZVBheVBheW1lbnQiLCJwYXltZW50IiwiYmlsbGluZ0NvbnRhY3QiLCJ0b2tlbiIsImdpdmVuTmFtZSIsImZhbWlseU5hbWUiLCJhZGRyZXNzTGluZXMiLCJwb3N0YWxDb2RlIiwibG9jYWxpdHkiLCJhZG1pbmlzdHJhdGl2ZUFyZWEiLCJwaG9uZU51bWJlciIsImVtYWlsQWRkcmVzcyIsImF1dGhvcml6YXRpb25SZXN1bHQiLCJyZXN1bHQiLCJjb21wbGV0ZVBheW1lbnQiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJtYXliZVNob3dCdXR0b24iLCJib2R5Iiwib24iLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2dCIsImFwcGxlUGF5TWV0aG9kRWxlbWVudCIsImNhblNob3dCdXR0b24iLCJjYW5NYWtlUGF5bWVudHMiLCJidXR0b24iLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiY2xhc3NMaXN0IiwiYWRkIiwiYXBwZW5kQ2hpbGQiXSwibWFwcGluZ3MiOiI7UUFBQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7O1FBR0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDBDQUEwQyxnQ0FBZ0M7UUFDMUU7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSx3REFBd0Qsa0JBQWtCO1FBQzFFO1FBQ0EsaURBQWlELGNBQWM7UUFDL0Q7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLHlDQUF5QyxpQ0FBaUM7UUFDMUUsZ0hBQWdILG1CQUFtQixFQUFFO1FBQ3JJO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMkJBQTJCLDBCQUEwQixFQUFFO1FBQ3ZELGlDQUFpQyxlQUFlO1FBQ2hEO1FBQ0E7UUFDQTs7UUFFQTtRQUNBLHNEQUFzRCwrREFBK0Q7O1FBRXJIO1FBQ0E7OztRQUdBO1FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2xGTyxTQUFTQSxpQkFBVCxDQUEyQkMsTUFBM0IsRUFBbUM7RUFDdEMsSUFBTUMsU0FBUyxHQUFHLEVBQWxCOztFQURzQywyQ0FFbEJELE1BRmtCO0VBQUE7O0VBQUE7SUFFdEMsb0RBQTRCO01BQUEsSUFBakJFLEtBQWlCO01BQ3hCLDBCQUEyREEsS0FBM0QsQ0FBT0MsWUFBUDtNQUFBLElBQU9BLFlBQVAsb0NBQXNCLElBQXRCO01BQUEsa0JBQTJERCxLQUEzRCxDQUE0QkUsSUFBNUI7TUFBQSxJQUE0QkEsSUFBNUIsNEJBQW1DLElBQW5DO01BQUEscUJBQTJERixLQUEzRCxDQUF5Q0csT0FBekM7TUFBQSxJQUF5Q0EsT0FBekMsK0JBQW1ELElB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QUNILENBZk0sQyIsImZpbGUiOiJhcHBsZXBheURpcmVjdENhcnQubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvcHVibGljL2pzL1wiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gXCIuL3Jlc291cmNlcy9qcy9hcHBsZXBheURpcmVjdENhcnQuanNcIik7XG4iLCJleHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwbGVFcnJvcnMoZXJyb3JzKSB7XG4gICAgY29uc3QgZXJyb3JMaXN0ID0gW11cbiAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGVycm9ycykge1xuICAgICAgICBjb25zdCB7Y29udGFjdEZpZWxkID0gbnVsbCwgY29kZSA9IG51bGwsIG1lc3NhZ2UgPSBudWxsfSA9IGVycm9yXG4gICAgICAgIGNvbnN0IGFwcGxlRXJyb3IgPSBjb250YWN0RmllbGQgPyBuZXcgQXBwbGVQYXlFcnJvcihjb2RlLCBjb250YWN0RmllbGQsIG1lc3NhZ2UpIDogbmV3IEFwcGxlUGF5RXJyb3IoY29kZSlcbiAgICAgICAgZXJyb3JMaXN0LnB1c2goYXBwbGVFcnJvcilcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JMaXN0XG59XG4iLCJleHBvcnQgY29uc3QgcmVxdWVzdCA9IChjb3VudHJ5Q29kZSwgY3VycmVuY3lDb2RlLCB0b3RhbExhYmVsLCBzdWJ0b3RhbCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvdW50cnlDb2RlOiBjb3VudHJ5Q29kZSxcbiAgICAgICAgY3VycmVuY3lDb2RlOiBjdXJyZW5jeUNvZGUsXG4gICAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbJ2FtZXgnLCAnbWFlc3RybycsICdtYXN0ZXJDYXJkJywgJ3Zpc2EnLCAndlBheSddLFxuICAgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWydzdXBwb3J0czNEUyddLFxuICAgICAgICBzaGlwcGluZ1R5cGU6ICdzaGlwcGluZycsXG4gICAgICAgIHJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHM6IFtcbiAgICAgICAgICAgICdwb3N0YWxBZGRyZXNzJyxcbiAgICAgICAgICAgICdlbWFpbCdcbiAgICAgICAgXSxcbiAgICAgICAgcmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHM6IFtcbiAgICAgICAgICAgICdwb3N0YWxBZGRyZXNzJyxcbiAgICAgICAgICAgICdlbWFpbCdcbiAgICAgICAgXSxcbiAgICAgICAgdG90YWw6IHtcbiAgICAgICAgICAgIGxhYmVsOiB0b3RhbExhYmVsLFxuICAgICAgICAgICAgYW1vdW50OiBzdWJ0b3RhbCxcbiAgICAgICAgICAgIHR5cGU6ICdmaW5hbCdcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImltcG9ydCB7Y3JlYXRlQXBwbGVFcnJvcnN9IGZyb20gJy4vYXBwbGVQYXlFcnJvci5qcyc7XG5pbXBvcnQge3JlcXVlc3R9IGZyb20gXCIuL2FwcGxlUGF5UmVxdWVzdFwiO1xuaW1wb3J0IHttYXliZVNob3dCdXR0b259IGZyb20gJy4vbWF5YmVTaG93QXBwbGVQYXlCdXR0b24uanMnO1xuXG4oXG4gICAgZnVuY3Rpb24gKHtfLCBtb2xsaWVBcHBsZVBheURpcmVjdERhdGFDYXJ0LCBqUXVlcnl9KSB7XG4gICAgICAgIGlmIChfLmlzRW1wdHkobW9sbGllQXBwbGVQYXlEaXJlY3REYXRhQ2FydCkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHtwcm9kdWN0OiB7bmVlZFNoaXBwaW5nID0gdHJ1ZSwgc3VidG90YWx9LCBzaG9wOiB7Y291bnRyeUNvZGUsIGN1cnJlbmN5Q29kZSA9ICdFVVInLCB0b3RhbExhYmVsID0gJyd9LCBhamF4VXJsfSA9IG1vbGxpZUFwcGxlUGF5RGlyZWN0RGF0YUNhcnRcblxuICAgICAgICBpZiAoIXN1YnRvdGFsIHx8ICFjb3VudHJ5Q29kZSB8fCAhYWpheFVybCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub25jZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwid29vY29tbWVyY2UtcHJvY2Vzcy1jaGVja291dC1ub25jZVwiKS52YWx1ZVxuXG4gICAgICAgIGxldCB1cGRhdGVkQ29udGFjdEluZm8gPSBbXVxuICAgICAgICBsZXQgc2VsZWN0ZWRTaGlwcGluZ01ldGhvZCA9IFtdXG4gICAgICAgIGxldCByZWRpcmVjdGlvblVybCA9ICcnXG4gICAgICAgIGxldCBhcHBsZVBheVNlc3Npb24gPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gbmV3IEFwcGxlUGF5U2Vzc2lvbigzLCByZXF1ZXN0KGNvdW50cnlDb2RlLCBjdXJyZW5jeUNvZGUsIHRvdGFsTGFiZWwsIHN1YnRvdGFsKSlcbiAgICAgICAgICAgIHNlc3Npb24uYmVnaW4oKVxuICAgICAgICAgICAgc2Vzc2lvbi5vbnNoaXBwaW5nbWV0aG9kc2VsZWN0ZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogYWpheFVybCxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ21vbGxpZV9hcHBsZV9wYXlfdXBkYXRlX3NoaXBwaW5nX21ldGhvZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGlwcGluZ01ldGhvZDogZXZlbnQuc2hpcHBpbmdNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsZXJQYWdlOiAnY2FydCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaW1wbGlmaWVkQ29udGFjdDogdXBkYXRlZENvbnRhY3RJbmZvLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3dvb2NvbW1lcmNlLXByb2Nlc3MtY2hlY2tvdXQtbm9uY2UnOiBub25jZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IChqcVhIUiwgdGV4dFN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoYXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZSwgdGV4dFN0YXR1cywganFYSFIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNwb25zZSA9IGFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTaGlwcGluZ01ldGhvZCA9IGV2ZW50LnNoaXBwaW5nTWV0aG9kXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5zdWNjZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ycyA9IGNyZWF0ZUFwcGxlRXJyb3JzKHJlc3BvbnNlLmVycm9ycylcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihyZXNwb25zZSlcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih0ZXh0U3RhdHVzLCBlcnJvclRocm93bilcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uYWJvcnQoKVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXNzaW9uLm9uc2hpcHBpbmdjb250YWN0c2VsZWN0ZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogYWpheFVybCxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ21vbGxpZV9hcHBsZV9wYXlfdXBkYXRlX3NoaXBwaW5nX2NvbnRhY3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2ltcGxpZmllZENvbnRhY3Q6IGV2ZW50LnNoaXBwaW5nQ29udGFjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlclBhZ2U6ICdjYXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRTaGlwcGluZzogbmVlZFNoaXBwaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3dvb2NvbW1lcmNlLXByb2Nlc3MtY2hlY2tvdXQtbm9uY2UnOiBub25jZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IChqcVhIUiwgdGV4dFN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoYXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUsIHRleHRTdGF0dXMsIGpxWEhSKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBhcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5kYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkQ29udGFjdEluZm8gPSBldmVudC5zaGlwcGluZ0NvbnRhY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5zdWNjZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ycyA9IGNyZWF0ZUFwcGxlRXJyb3JzKHJlc3BvbnNlLmVycm9ycylcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5uZXdTaGlwcGluZ01ldGhvZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFNoaXBwaW5nTWV0aG9kID0gcmVzcG9uc2UubmV3U2hpcHBpbmdNZXRob2RzWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHJlc3BvbnNlKVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKHRleHRTdGF0dXMsIGVycm9yVGhyb3duKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5hYm9ydCgpXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlc3Npb24ub252YWxpZGF0ZW1lcmNoYW50ID0gKGFwcGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgalF1ZXJ5LmFqYXgoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IGFqYXhVcmwsXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdtb2xsaWVfYXBwbGVfcGF5X3ZhbGlkYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvblVybDogYXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQudmFsaWRhdGlvblVSTCxcbiAgICAgICAgICAgICAgICAgICAgICAgICd3b29jb21tZXJjZS1wcm9jZXNzLWNoZWNrb3V0LW5vbmNlJzogbm9uY2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoanFYSFIsIHRleHRTdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogKG1lcmNoYW50U2Vzc2lvbiwgdGV4dFN0YXR1cywganFYSFIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXJjaGFudFNlc3Npb24uc3VjY2VzcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oSlNPTi5wYXJzZShtZXJjaGFudFNlc3Npb24uZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihtZXJjaGFudFNlc3Npb24uZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLmFib3J0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih0ZXh0U3RhdHVzLCBlcnJvclRocm93bilcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uYWJvcnQoKVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXNzaW9uLm9ucGF5bWVudGF1dGhvcml6ZWQgPSAoQXBwbGVQYXlQYXltZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge2JpbGxpbmdDb250YWN0LCBzaGlwcGluZ0NvbnRhY3QgfSA9IEFwcGxlUGF5UGF5bWVudC5wYXltZW50XG5cbiAgICAgICAgICAgICAgICBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogYWpheFVybCxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ21vbGxpZV9hcHBsZV9wYXlfY3JlYXRlX29yZGVyX2NhcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmdDb250YWN0OiBBcHBsZVBheVBheW1lbnQucGF5bWVudC5zaGlwcGluZ0NvbnRhY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBiaWxsaW5nQ29udGFjdDogQXBwbGVQYXlQYXltZW50LnBheW1lbnQuYmlsbGluZ0NvbnRhY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b2tlbjogQXBwbGVQYXlQYXltZW50LnBheW1lbnQudG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGlwcGluZ01ldGhvZDogc2VsZWN0ZWRTaGlwcGluZ01ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdtb2xsaWUtcGF5bWVudHMtZm9yLXdvb2NvbW1lcmNlX2lzc3Vlcl9hcHBsZXBheSc6ICdhcHBsZXBheScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnd29vY29tbWVyY2UtcHJvY2Vzcy1jaGVja291dC1ub25jZSc6IG5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbGxpbmdfZmlyc3RfbmFtZSc6IGJpbGxpbmdDb250YWN0LmdpdmVuTmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX2xhc3RfbmFtZSc6IGJpbGxpbmdDb250YWN0LmZhbWlseU5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19jb21wYW55JzogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19jb3VudHJ5JzogYmlsbGluZ0NvbnRhY3QuY291bnRyeUNvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19hZGRyZXNzXzEnOiBiaWxsaW5nQ29udGFjdC5hZGRyZXNzTGluZXNbMF0gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19hZGRyZXNzXzInOiBiaWxsaW5nQ29udGFjdC5hZGRyZXNzTGluZXNbMV0gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19wb3N0Y29kZSc6IGJpbGxpbmdDb250YWN0LnBvc3RhbENvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19jaXR5JzogYmlsbGluZ0NvbnRhY3QubG9jYWxpdHkgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19zdGF0ZSc6IGJpbGxpbmdDb250YWN0LmFkbWluaXN0cmF0aXZlQXJlYSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdiaWxsaW5nX3Bob25lJzogYmlsbGluZ0NvbnRhY3QucGhvbmVOdW1iZXIgfHwgJzAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmlsbGluZ19lbWFpbCc6IHNoaXBwaW5nQ29udGFjdC5lbWFpbEFkZHJlc3MgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfZmlyc3RfbmFtZSc6IHNoaXBwaW5nQ29udGFjdC5naXZlbk5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfbGFzdF9uYW1lJzogc2hpcHBpbmdDb250YWN0LmZhbWlseU5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfY29tcGFueSc6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NoaXBwaW5nX2NvdW50cnknOiBzaGlwcGluZ0NvbnRhY3QuY291bnRyeUNvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfYWRkcmVzc18xJzogc2hpcHBpbmdDb250YWN0LmFkZHJlc3NMaW5lc1swXSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzaGlwcGluZ19hZGRyZXNzXzInOiBzaGlwcGluZ0NvbnRhY3QuYWRkcmVzc0xpbmVzWzFdIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NoaXBwaW5nX3Bvc3Rjb2RlJzogc2hpcHBpbmdDb250YWN0LnBvc3RhbENvZGUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfY2l0eSc6IHNoaXBwaW5nQ29udGFjdC5sb2NhbGl0eSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzaGlwcGluZ19zdGF0ZSc6IHNoaXBwaW5nQ29udGFjdC5hZG1pbmlzdHJhdGl2ZUFyZWEgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfcGhvbmUnOiBzaGlwcGluZ0NvbnRhY3QucGhvbmVOdW1iZXIgfHwgJzAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2hpcHBpbmdfZW1haWwnOiBzaGlwcGluZ0NvbnRhY3QuZW1haWxBZGRyZXNzIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyX2NvbW1lbnRzJyA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3BheW1lbnRfbWV0aG9kJyA6ICdtb2xsaWVfd2NfZ2F0ZXdheV9hcHBsZXBheScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnX3dwX2h0dHBfcmVmZXJlcicgOiAnLz93Yy1hamF4PXVwZGF0ZV9vcmRlcl9yZXZpZXcnXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoanFYSFIsIHRleHRTdGF0dXMpID0+IHtcblxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoYXV0aG9yaXphdGlvblJlc3VsdCwgdGV4dFN0YXR1cywganFYSFIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhdXRob3JpemF0aW9uUmVzdWx0LmRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRob3JpemF0aW9uUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGlvblVybCA9IHJlc3VsdFsncmV0dXJuVXJsJ107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5jb21wbGV0ZVBheW1lbnQocmVzdWx0WydyZXNwb25zZVRvQXBwbGUnXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0aW9uVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5lcnJvcnMgPSBjcmVhdGVBcHBsZUVycm9ycyhyZXN1bHQuZXJyb3JzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uY29tcGxldGVQYXltZW50KHJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih0ZXh0U3RhdHVzLCBlcnJvclRocm93bilcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uYWJvcnQoKVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZighbWF5YmVTaG93QnV0dG9uKCkpe1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBqUXVlcnkoZG9jdW1lbnQuYm9keSkub24oJ3VwZGF0ZWRfY2FydF90b3RhbHMnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIG1heWJlU2hvd0J1dHRvbigpXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbW9sbGllX2FwcGxlcGF5X2J1dHRvbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgIGFwcGxlUGF5U2Vzc2lvbigpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtb2xsaWVfYXBwbGVwYXlfYnV0dG9uJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgICBhcHBsZVBheVNlc3Npb24oKVxuICAgICAgICB9KVxuICAgIH1cblxuKVxuKFxuICAgIHdpbmRvd1xuKVxuXG5cblxuIiwiZXhwb3J0IGNvbnN0IG1heWJlU2hvd0J1dHRvbiA9ICgpID0+IHtcbiAgICBjb25zdCB7QXBwbGVQYXlTZXNzaW9ufSA9IHdpbmRvd1xuICAgIGNvbnN0IGFwcGxlUGF5TWV0aG9kRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcjbW9sbGllLWFwcGxlcGF5RGlyZWN0LWJ1dHRvbicsXG4gICAgKVxuICAgIGNvbnN0IGNhblNob3dCdXR0b24gPSBhcHBsZVBheU1ldGhvZEVsZW1lbnQgJiYgKEFwcGxlUGF5U2Vzc2lvbiAmJiBBcHBsZVBheVNlc3Npb24uY2FuTWFrZVBheW1lbnRzKCkpXG4gICAgaWYgKCFjYW5TaG93QnV0dG9uKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKVxuICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2lkJywgJ21vbGxpZV9hcHBsZXBheV9idXR0b24nKVxuICAgIGJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdhcHBsZS1wYXktYnV0dG9uJylcbiAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnYXBwbGUtcGF5LWJ1dHRvbi1ibGFjaycpXG4gICAgYXBwbGVQYXlNZXRob2RFbGVtZW50LmFwcGVuZENoaWxkKGJ1dHRvbilcbiAgICByZXR1cm4gdHJ1ZVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
public/js/babel-polyfill.min.js CHANGED
@@ -1 +1,10279 @@
1
- !function(t){var n={};function r(e){if(n[e])return n[e].exports;var i=n[e]={i:e,l:!1,exports:{}};return t[e].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=t,r.c=n,r.d=function(t,n,e){r.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,n){if(1&n&&(t=r(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)r.d(e,i,function(n){return t[n]}.bind(null,i));return e},r.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(n,"a",n),n},r.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r.p="/public/js/",r(r.s="55Il")}({"+Xmh":function(t,n,r){r("jm62"),t.exports=r("g3g5").Object.getOwnPropertyDescriptors},"+auO":function(t,n,r){var e=r("XKFU"),i=r("lvtm");e(e.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},"+lvF":function(t,n,r){t.exports=r("VTer")("native-function-to-string",Function.toString)},"+oPb":function(t,n,r){"use strict";r("OGtf")("blink",(function(t){return function(){return t(this,"blink","","")}}))},"+rLv":function(t,n,r){var e=r("dyZX").document;t.exports=e&&e.documentElement},"/8Fb":function(t,n,r){var e=r("XKFU"),i=r("UExd")(!0);e(e.S,"Object",{entries:function(t){return i(t)}})},"/KAi":function(t,n,r){var e=r("XKFU"),i=r("dyZX").isFinite;e(e.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},"/SS/":function(t,n,r){var e=r("XKFU");e(e.S,"Object",{setPrototypeOf:r("i5dc").set})},"/e88":function(t,n){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},"0/R4":function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"0E+W":function(t,n,r){r("elZq")("Array")},"0LDn":function(t,n,r){"use strict";r("OGtf")("italics",(function(t){return function(){return t(this,"i","","")}}))},"0YWM":function(t,n,r){var e=r("EemH"),i=r("OP3Y"),o=r("aagx"),u=r("XKFU"),c=r("0/R4"),a=r("y3w9");u(u.S,"Reflect",{get:function t(n,r){var u,f,s=arguments.length<3?n:arguments[2];return a(n)===s?n[r]:(u=e.f(n,r))?o(u,"value")?u.value:void 0!==u.get?u.get.call(s):void 0:c(f=i(n))?t(f,r,s):void 0}})},"0l/t":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(2);e(e.P+e.F*!r("LyE8")([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},"0mN4":function(t,n,r){"use strict";r("OGtf")("fixed",(function(t){return function(){return t(this,"tt","","")}}))},"0sh+":function(t,n,r){var e=r("quPj"),i=r("vhPU");t.exports=function(t,n,r){if(e(n))throw TypeError("String#"+r+" doesn't accept regex!");return String(i(t))}},"11IZ":function(t,n,r){var e=r("dyZX").parseFloat,i=r("qncB").trim;t.exports=1/e(r("/e88")+"-0")!=-1/0?function(t){var n=i(String(t),3),r=e(n);return 0===r&&"-"==n.charAt(0)?-0:r}:e},"1MBn":function(t,n,r){var e=r("DVgA"),i=r("JiEa"),o=r("UqcF");t.exports=function(t){var n=e(t),r=i.f;if(r)for(var u,c=r(t),a=o.f,f=0;c.length>f;)a.call(t,u=c[f++])&&n.push(u);return n}},"1TsA":function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},"1sa7":function(t,n){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},"25dN":function(t,n,r){var e=r("XKFU");e(e.S,"Object",{is:r("g6HL")})},"2GTP":function(t,n,r){var e=r("eaoh");t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,i){return t.call(n,r,e,i)}}return function(){return t.apply(n,arguments)}}},"2OiF":function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"2Spj":function(t,n,r){var e=r("XKFU");e(e.P,"Function",{bind:r("8MEG")})},"2atp":function(t,n,r){var e=r("XKFU"),i=Math.atanh;e(e.S+e.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},"2faE":function(t,n,r){var e=r("5K7Z"),i=r("eUtF"),o=r("G8Mo"),u=Object.defineProperty;n.f=r("jmDH")?Object.defineProperty:function(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},"3Lyj":function(t,n,r){var e=r("KroJ");t.exports=function(t,n,r){for(var i in n)e(t,i,n[i],r);return t}},"3xty":function(t,n,r){var e=r("XKFU"),i=r("2OiF"),o=r("y3w9"),u=(r("dyZX").Reflect||{}).apply,c=Function.apply;e(e.S+e.F*!r("eeVq")((function(){u((function(){}))})),"Reflect",{apply:function(t,n,r){var e=i(t),a=o(r);return u?u(e,n,a):c.call(e,n,a)}})},"4LiD":function(t,n,r){"use strict";var e=r("dyZX"),i=r("XKFU"),o=r("KroJ"),u=r("3Lyj"),c=r("Z6vF"),a=r("SlkY"),f=r("9gX7"),s=r("0/R4"),l=r("eeVq"),h=r("XMVh"),v=r("fyDq"),p=r("Xbzi");t.exports=function(t,n,r,y,g,d){var x=e[t],m=x,b=g?"set":"add",w=m&&m.prototype,F={},S=function(t){var n=w[t];o(w,t,"delete"==t||"has"==t?function(t){return!(d&&!s(t))&&n.call(this,0===t?0:t)}:"get"==t?function(t){return d&&!s(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,r){return n.call(this,0===t?0:t,r),this})};if("function"==typeof m&&(d||w.forEach&&!l((function(){(new m).entries().next()})))){var E=new m,O=E[b](d?{}:-0,1)!=E,U=l((function(){E.has(1)})),_=h((function(t){new m(t)})),P=!d&&l((function(){for(var t=new m,n=5;n--;)t[b](n,n);return!t.has(-0)}));_||((m=n((function(n,r){f(n,m,t);var e=p(new x,n,m);return null!=r&&a(r,g,e[b],e),e}))).prototype=w,w.constructor=m),(U||P)&&(S("delete"),S("has"),g&&S("get")),(P||O)&&S(b),d&&w.clear&&delete w.clear}else m=y.getConstructor(n,t,g,b),u(m.prototype,r),c.NEED=!0;return v(m,t),F[t]=m,i(i.G+i.W+i.F*(m!=x),F),d||y.setStrong(m,t,g),m}},"4R4u":function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"55Il":function(t,n,r){"use strict";r("g2aq");var e,i=(e=r("VsWn"))&&e.__esModule?e:{default:e};i.default._babelPolyfill&&"undefined"!=typeof console&&console.warn&&console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning."),i.default._babelPolyfill=!0},"5K7Z":function(t,n,r){var e=r("93I4");t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},"5Pf0":function(t,n,r){var e=r("S/j/"),i=r("OP3Y");r("Xtr8")("getPrototypeOf",(function(){return function(t){return i(e(t))}}))},"5T2Y":function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},"694e":function(t,n,r){var e=r("EemH"),i=r("XKFU"),o=r("y3w9");i(i.S,"Reflect",{getOwnPropertyDescriptor:function(t,n){return e.f(o(t),n)}})},"69bn":function(t,n,r){var e=r("y3w9"),i=r("2OiF"),o=r("K0xU")("species");t.exports=function(t,n){var r,u=e(t).constructor;return void 0===u||null==(r=e(u)[o])?n:i(r)}},"6AQ9":function(t,n,r){"use strict";var e=r("XKFU"),i=r("8a7r");e(e.S+e.F*r("eeVq")((function(){function t(){}return!(Array.of.call(t)instanceof t)})),"Array",{of:function(){for(var t=0,n=arguments.length,r=new("function"==typeof this?this:Array)(n);n>t;)i(r,t,arguments[t++]);return r.length=n,r}})},"6FMO":function(t,n,r){var e=r("0/R4"),i=r("EWmC"),o=r("K0xU")("species");t.exports=function(t){var n;return i(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!i(n.prototype)||(n=void 0),e(n)&&null===(n=n[o])&&(n=void 0)),void 0===n?Array:n}},"6VaU":function(t,n,r){"use strict";var e=r("XKFU"),i=r("xF/b"),o=r("S/j/"),u=r("ne8i"),c=r("2OiF"),a=r("zRwo");e(e.P,"Array",{flatMap:function(t){var n,r,e=o(this);return c(t),n=u(e.length),r=a(e,0),i(r,e,e,n,0,1,t,arguments[1]),r}}),r("nGyu")("flatMap")},"7DDg":function(t,n,r){"use strict";if(r("nh4g")){var e=r("LQAc"),i=r("dyZX"),o=r("eeVq"),u=r("XKFU"),c=r("D4iV"),a=r("7Qtz"),f=r("m0Pp"),s=r("9gX7"),l=r("RjD/"),h=r("Mukb"),v=r("3Lyj"),p=r("RYi7"),y=r("ne8i"),g=r("Cfrj"),d=r("d/Gc"),x=r("apmT"),m=r("aagx"),b=r("I8a+"),w=r("0/R4"),F=r("S/j/"),S=r("M6Qj"),E=r("Kuth"),O=r("OP3Y"),U=r("kJMx").f,_=r("J+6e"),P=r("ylqs"),M=r("K0xU"),K=r("CkkT"),j=r("w2a5"),X=r("69bn"),A=r("yt8O"),I=r("hPIQ"),T=r("XMVh"),L=r("elZq"),R=r("Nr18"),N=r("upKx"),k=r("hswa"),D=r("EemH"),V=k.f,C=D.f,q=i.RangeError,Z=i.TypeError,W=i.Uint8Array,G=Array.prototype,Y=a.ArrayBuffer,B=a.DataView,z=K(0),J=K(2),H=K(3),Q=K(4),$=K(5),tt=K(6),nt=j(!0),rt=j(!1),et=A.values,it=A.keys,ot=A.entries,ut=G.lastIndexOf,ct=G.reduce,at=G.reduceRight,ft=G.join,st=G.sort,lt=G.slice,ht=G.toString,vt=G.toLocaleString,pt=M("iterator"),yt=M("toStringTag"),gt=P("typed_constructor"),dt=P("def_constructor"),xt=c.CONSTR,mt=c.TYPED,bt=c.VIEW,wt=K(1,(function(t,n){return Ut(X(t,t[dt]),n)})),Ft=o((function(){return 1===new W(new Uint16Array([1]).buffer)[0]})),St=!!W&&!!W.prototype.set&&o((function(){new W(1).set({})})),Et=function(t,n){var r=p(t);if(r<0||r%n)throw q("Wrong offset!");return r},Ot=function(t){if(w(t)&&mt in t)return t;throw Z(t+" is not a typed array!")},Ut=function(t,n){if(!w(t)||!(gt in t))throw Z("It is not a typed array constructor!");return new t(n)},_t=function(t,n){return Pt(X(t,t[dt]),n)},Pt=function(t,n){for(var r=0,e=n.length,i=Ut(t,e);e>r;)i[r]=n[r++];return i},Mt=function(t,n,r){V(t,n,{get:function(){return this._d[r]}})},Kt=function(t){var n,r,e,i,o,u,c=F(t),a=arguments.length,s=a>1?arguments[1]:void 0,l=void 0!==s,h=_(c);if(null!=h&&!S(h)){for(u=h.call(c),e=[],n=0;!(o=u.next()).done;n++)e.push(o.value);c=e}for(l&&a>2&&(s=f(s,arguments[2],2)),n=0,r=y(c.length),i=Ut(this,r);r>n;n++)i[n]=l?s(c[n],n):c[n];return i},jt=function(){for(var t=0,n=arguments.length,r=Ut(this,n);n>t;)r[t]=arguments[t++];return r},Xt=!!W&&o((function(){vt.call(new W(1))})),At=function(){return vt.apply(Xt?lt.call(Ot(this)):Ot(this),arguments)},It={copyWithin:function(t,n){return N.call(Ot(this),t,n,arguments.length>2?arguments[2]:void 0)},every:function(t){return Q(Ot(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return R.apply(Ot(this),arguments)},filter:function(t){return _t(this,J(Ot(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return $(Ot(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){z(Ot(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return rt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return nt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ft.apply(Ot(this),arguments)},lastIndexOf:function(t){return ut.apply(Ot(this),arguments)},map:function(t){return wt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ct.apply(Ot(this),arguments)},reduceRight:function(t){return at.apply(Ot(this),arguments)},reverse:function(){for(var t,n=Ot(this).length,r=Math.floor(n/2),e=0;e<r;)t=this[e],this[e++]=this[--n],this[n]=t;return this},some:function(t){return H(Ot(this),t,arguments.length>1?arguments[1]:void 0)},sort:function(t){return st.call(Ot(this),t)},subarray:function(t,n){var r=Ot(this),e=r.length,i=d(t,e);return new(X(r,r[dt]))(r.buffer,r.byteOffset+i*r.BYTES_PER_ELEMENT,y((void 0===n?e:d(n,e))-i))}},Tt=function(t,n){return _t(this,lt.call(Ot(this),t,n))},Lt=function(t){Ot(this);var n=Et(arguments[1],1),r=this.length,e=F(t),i=y(e.length),o=0;if(i+n>r)throw q("Wrong length!");for(;o<i;)this[n+o]=e[o++]},Rt={entries:function(){return ot.call(Ot(this))},keys:function(){return it.call(Ot(this))},values:function(){return et.call(Ot(this))}},Nt=function(t,n){return w(t)&&t[mt]&&"symbol"!=typeof n&&n in t&&String(+n)==String(n)},kt=function(t,n){return Nt(t,n=x(n,!0))?l(2,t[n]):C(t,n)},Dt=function(t,n,r){return!(Nt(t,n=x(n,!0))&&w(r)&&m(r,"value"))||m(r,"get")||m(r,"set")||r.configurable||m(r,"writable")&&!r.writable||m(r,"enumerable")&&!r.enumerable?V(t,n,r):(t[n]=r.value,t)};xt||(D.f=kt,k.f=Dt),u(u.S+u.F*!xt,"Object",{getOwnPropertyDescriptor:kt,defineProperty:Dt}),o((function(){ht.call({})}))&&(ht=vt=function(){return ft.call(this)});var Vt=v({},It);v(Vt,Rt),h(Vt,pt,Rt.values),v(Vt,{slice:Tt,set:Lt,constructor:function(){},toString:ht,toLocaleString:At}),Mt(Vt,"buffer","b"),Mt(Vt,"byteOffset","o"),Mt(Vt,"byteLength","l"),Mt(Vt,"length","e"),V(Vt,yt,{get:function(){return this[mt]}}),t.exports=function(t,n,r,a){var f=t+((a=!!a)?"Clamped":"")+"Array",l="get"+t,v="set"+t,p=i[f],d=p||{},x=p&&O(p),m=!p||!c.ABV,F={},S=p&&p.prototype,_=function(t,r){V(t,r,{get:function(){return function(t,r){var e=t._d;return e.v[l](r*n+e.o,Ft)}(this,r)},set:function(t){return function(t,r,e){var i=t._d;a&&(e=(e=Math.round(e))<0?0:e>255?255:255&e),i.v[v](r*n+i.o,e,Ft)}(this,r,t)},enumerable:!0})};m?(p=r((function(t,r,e,i){s(t,p,f,"_d");var o,u,c,a,l=0,v=0;if(w(r)){if(!(r instanceof Y||"ArrayBuffer"==(a=b(r))||"SharedArrayBuffer"==a))return mt in r?Pt(p,r):Kt.call(p,r);o=r,v=Et(e,n);var d=r.byteLength;if(void 0===i){if(d%n)throw q("Wrong length!");if((u=d-v)<0)throw q("Wrong length!")}else if((u=y(i)*n)+v>d)throw q("Wrong length!");c=u/n}else c=g(r),o=new Y(u=c*n);for(h(t,"_d",{b:o,o:v,l:u,e:c,v:new B(o)});l<c;)_(t,l++)})),S=p.prototype=E(Vt),h(S,"constructor",p)):o((function(){p(1)}))&&o((function(){new p(-1)}))&&T((function(t){new p,new p(null),new p(1.5),new p(t)}),!0)||(p=r((function(t,r,e,i){var o;return s(t,p,f),w(r)?r instanceof Y||"ArrayBuffer"==(o=b(r))||"SharedArrayBuffer"==o?void 0!==i?new d(r,Et(e,n),i):void 0!==e?new d(r,Et(e,n)):new d(r):mt in r?Pt(p,r):Kt.call(p,r):new d(g(r))})),z(x!==Function.prototype?U(d).concat(U(x)):U(d),(function(t){t in p||h(p,t,d[t])})),p.prototype=S,e||(S.constructor=p));var P=S[pt],M=!!P&&("values"==P.name||null==P.name),K=Rt.values;h(p,gt,!0),h(S,mt,f),h(S,bt,!0),h(S,dt,p),(a?new p(1)[yt]==f:yt in S)||V(S,yt,{get:function(){return f}}),F[f]=p,u(u.G+u.W+u.F*(p!=d),F),u(u.S,f,{BYTES_PER_ELEMENT:n}),u(u.S+u.F*o((function(){d.of.call(p,1)})),f,{from:Kt,of:jt}),"BYTES_PER_ELEMENT"in S||h(S,"BYTES_PER_ELEMENT",n),u(u.P,f,It),L(f),u(u.P+u.F*St,f,{set:Lt}),u(u.P+u.F*!M,f,Rt),e||S.toString==ht||(S.toString=ht),u(u.P+u.F*o((function(){new p(1).slice()})),f,{slice:Tt}),u(u.P+u.F*(o((function(){return[1,2].toLocaleString()!=new p([1,2]).toLocaleString()}))||!o((function(){S.toLocaleString.call([1,2])}))),f,{toLocaleString:At}),I[f]=M?P:K,e||M||h(S,pt,K)}}else t.exports=function(){}},"7PI8":function(t,n,r){var e=r("Y7ZC");e(e.G,{global:r("5T2Y")})},"7Qtz":function(t,n,r){"use strict";var e=r("dyZX"),i=r("nh4g"),o=r("LQAc"),u=r("D4iV"),c=r("Mukb"),a=r("3Lyj"),f=r("eeVq"),s=r("9gX7"),l=r("RYi7"),h=r("ne8i"),v=r("Cfrj"),p=r("kJMx").f,y=r("hswa").f,g=r("Nr18"),d=r("fyDq"),x=e.ArrayBuffer,m=e.DataView,b=e.Math,w=e.RangeError,F=e.Infinity,S=x,E=b.abs,O=b.pow,U=b.floor,_=b.log,P=b.LN2,M=i?"_b":"buffer",K=i?"_l":"byteLength",j=i?"_o":"byteOffset";function X(t,n,r){var e,i,o,u=new Array(r),c=8*r-n-1,a=(1<<c)-1,f=a>>1,s=23===n?O(2,-24)-O(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for((t=E(t))!=t||t===F?(i=t!=t?1:0,e=a):(e=U(_(t)/P),t*(o=O(2,-e))<1&&(e--,o*=2),(t+=e+f>=1?s/o:s*O(2,1-f))*o>=2&&(e++,o/=2),e+f>=a?(i=0,e=a):e+f>=1?(i=(t*o-1)*O(2,n),e+=f):(i=t*O(2,f-1)*O(2,n),e=0));n>=8;u[l++]=255&i,i/=256,n-=8);for(e=e<<n|i,c+=n;c>0;u[l++]=255&e,e/=256,c-=8);return u[--l]|=128*h,u}function A(t,n,r){var e,i=8*r-n-1,o=(1<<i)-1,u=o>>1,c=i-7,a=r-1,f=t[a--],s=127&f;for(f>>=7;c>0;s=256*s+t[a],a--,c-=8);for(e=s&(1<<-c)-1,s>>=-c,c+=n;c>0;e=256*e+t[a],a--,c-=8);if(0===s)s=1-u;else{if(s===o)return e?NaN:f?-F:F;e+=O(2,n),s-=u}return(f?-1:1)*e*O(2,s-n)}function I(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function T(t){return[255&t]}function L(t){return[255&t,t>>8&255]}function R(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function N(t){return X(t,52,8)}function k(t){return X(t,23,4)}function D(t,n,r){y(t.prototype,n,{get:function(){return this[r]}})}function V(t,n,r,e){var i=v(+r);if(i+n>t[K])throw w("Wrong index!");var o=t[M]._b,u=i+t[j],c=o.slice(u,u+n);return e?c:c.reverse()}function C(t,n,r,e,i,o){var u=v(+r);if(u+n>t[K])throw w("Wrong index!");for(var c=t[M]._b,a=u+t[j],f=e(+i),s=0;s<n;s++)c[a+s]=f[o?s:n-s-1]}if(u.ABV){if(!f((function(){x(1)}))||!f((function(){new x(-1)}))||f((function(){return new x,new x(1.5),new x(NaN),"ArrayBuffer"!=x.name}))){for(var q,Z=(x=function(t){return s(this,x),new S(v(t))}).prototype=S.prototype,W=p(S),G=0;W.length>G;)(q=W[G++])in x||c(x,q,S[q]);o||(Z.constructor=x)}var Y=new m(new x(2)),B=m.prototype.setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||a(m.prototype,{setInt8:function(t,n){B.call(this,t,n<<24>>24)},setUint8:function(t,n){B.call(this,t,n<<24>>24)}},!0)}else x=function(t){s(this,x,"ArrayBuffer");var n=v(t);this._b=g.call(new Array(n),0),this[K]=n},m=function(t,n,r){s(this,m,"DataView"),s(t,x,"DataView");var e=t[K],i=l(n);if(i<0||i>e)throw w("Wrong offset!");if(i+(r=void 0===r?e-i:h(r))>e)throw w("Wrong length!");this[M]=t,this[j]=i,this[K]=r},i&&(D(x,"byteLength","_l"),D(m,"buffer","_b"),D(m,"byteLength","_l"),D(m,"byteOffset","_o")),a(m.prototype,{getInt8:function(t){return V(this,1,t)[0]<<24>>24},getUint8:function(t){return V(this,1,t)[0]},getInt16:function(t){var n=V(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function(t){var n=V(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function(t){return I(V(this,4,t,arguments[1]))},getUint32:function(t){return I(V(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return A(V(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return A(V(this,8,t,arguments[1]),52,8)},setInt8:function(t,n){C(this,1,t,T,n)},setUint8:function(t,n){C(this,1,t,T,n)},setInt16:function(t,n){C(this,2,t,L,n,arguments[2])},setUint16:function(t,n){C(this,2,t,L,n,arguments[2])},setInt32:function(t,n){C(this,4,t,R,n,arguments[2])},setUint32:function(t,n){C(this,4,t,R,n,arguments[2])},setFloat32:function(t,n){C(this,4,t,k,n,arguments[2])},setFloat64:function(t,n){C(this,8,t,N,n,arguments[2])}});d(x,"ArrayBuffer"),d(m,"DataView"),c(m.prototype,u.VIEW,!0),n.ArrayBuffer=x,n.DataView=m},"7VC1":function(t,n,r){"use strict";var e=r("XKFU"),i=r("Lgjv"),o=r("ol8x"),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padEnd:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},"7h0T":function(t,n,r){var e=r("XKFU");e(e.S,"Number",{isNaN:function(t){return t!=t}})},"8+KV":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(0),o=r("LyE8")([].forEach,!0);e(e.P+e.F*!o,"Array",{forEach:function(t){return i(this,t,arguments[1])}})},"84bF":function(t,n,r){"use strict";r("OGtf")("small",(function(t){return function(){return t(this,"small","","")}}))},"8MEG":function(t,n,r){"use strict";var e=r("2OiF"),i=r("0/R4"),o=r("MfQN"),u=[].slice,c={},a=function(t,n,r){if(!(n in c)){for(var e=[],i=0;i<n;i++)e[i]="a["+i+"]";c[n]=Function("F,a","return new F("+e.join(",")+")")}return c[n](t,r)};t.exports=Function.bind||function(t){var n=e(this),r=u.call(arguments,1),c=function(){var e=r.concat(u.call(arguments));return this instanceof c?a(n,e.length,e):o(n,e,t)};return i(n.prototype)&&(c.prototype=n.prototype),c}},"8a7r":function(t,n,r){"use strict";var e=r("hswa"),i=r("RjD/");t.exports=function(t,n,r){n in t?e.f(t,n,i(0,r)):t[n]=r}},"91GP":function(t,n,r){var e=r("XKFU");e(e.S+e.F,"Object",{assign:r("czNK")})},"93I4":function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"9AAn":function(t,n,r){"use strict";var e=r("wmvG"),i=r("s5qY");t.exports=r("4LiD")("Map",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(t){var n=e.getEntry(i(this,"Map"),t);return n&&n.v},set:function(t,n){return e.def(i(this,"Map"),0===t?0:t,n)}},e,!0)},"9P93":function(t,n,r){var e=r("XKFU"),i=Math.imul;e(e.S+e.F*r("eeVq")((function(){return-5!=i(4294967295,5)||2!=i.length})),"Math",{imul:function(t,n){var r=+t,e=+n,i=65535&r,o=65535&e;return 0|i*o+((65535&r>>>16)*o+i*(65535&e>>>16)<<16>>>0)}})},"9VmF":function(t,n,r){"use strict";var e=r("XKFU"),i=r("ne8i"),o=r("0sh+"),u="".startsWith;e(e.P+e.F*r("UUeW")("startsWith"),"String",{startsWith:function(t){var n=o(this,t,"startsWith"),r=i(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),e=String(t);return u?u.call(n,e,r):n.slice(r,r+e.length)===e}})},"9XZr":function(t,n,r){"use strict";var e=r("XKFU"),i=r("Lgjv"),o=r("ol8x"),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padStart:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},"9gX7":function(t,n){t.exports=function(t,n,r,e){if(!(t instanceof n)||void 0!==e&&e in t)throw TypeError(r+": incorrect invocation!");return t}},"9rMk":function(t,n,r){var e=r("XKFU");e(e.S,"Reflect",{has:function(t,n){return n in t}})},A2zW:function(t,n,r){"use strict";var e=r("XKFU"),i=r("RYi7"),o=r("vvmO"),u=r("l0Rn"),c=1..toFixed,a=Math.floor,f=[0,0,0,0,0,0],s="Number.toFixed: incorrect invocation!",l=function(t,n){for(var r=-1,e=n;++r<6;)e+=t*f[r],f[r]=e%1e7,e=a(e/1e7)},h=function(t){for(var n=6,r=0;--n>=0;)r+=f[n],f[n]=a(r/t),r=r%t*1e7},v=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==f[t]){var r=String(f[t]);n=""===n?r:n+u.call("0",7-r.length)+r}return n},p=function(t,n,r){return 0===n?r:n%2==1?p(t,n-1,r*t):p(t*t,n/2,r)};e(e.P+e.F*(!!c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!r("eeVq")((function(){c.call({})}))),"Number",{toFixed:function(t){var n,r,e,c,a=o(this,s),f=i(t),y="",g="0";if(f<0||f>20)throw RangeError(s);if(a!=a)return"NaN";if(a<=-1e21||a>=1e21)return String(a);if(a<0&&(y="-",a=-a),a>1e-21)if(r=(n=function(t){for(var n=0,r=t;r>=4096;)n+=12,r/=4096;for(;r>=2;)n+=1,r/=2;return n}(a*p(2,69,1))-69)<0?a*p(2,-n,1):a/p(2,n,1),r*=4503599627370496,(n=52-n)>0){for(l(0,r),e=f;e>=7;)l(1e7,0),e-=7;for(l(p(10,e,1),0),e=n-1;e>=23;)h(1<<23),e-=23;h(1<<e),l(1,1),h(2),g=v()}else l(0,r),l(1<<-n,0),g=v()+u.call("0",f);return g=f>0?y+((c=g.length)<=f?"0."+u.call("0",f-c)+g:g.slice(0,c-f)+"."+g.slice(c-f)):y+g}})},A5AN:function(t,n,r){"use strict";var e=r("AvRE")(!0);t.exports=function(t,n,r){return n+(r?e(t,n).length:1)}},Afnz:function(t,n,r){"use strict";var e=r("LQAc"),i=r("XKFU"),o=r("KroJ"),u=r("Mukb"),c=r("hPIQ"),a=r("QaDb"),f=r("fyDq"),s=r("OP3Y"),l=r("K0xU")("iterator"),h=!([].keys&&"next"in[].keys()),v=function(){return this};t.exports=function(t,n,r,p,y,g,d){a(r,n,p);var x,m,b,w=function(t){if(!h&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new r(this,t)}}return function(){return new r(this,t)}},F=n+" Iterator",S="values"==y,E=!1,O=t.prototype,U=O[l]||O["@@iterator"]||y&&O[y],_=U||w(y),P=y?S?w("entries"):_:void 0,M="Array"==n&&O.entries||U;if(M&&(b=s(M.call(new t)))!==Object.prototype&&b.next&&(f(b,F,!0),e||"function"==typeof b[l]||u(b,l,v)),S&&U&&"values"!==U.name&&(E=!0,_=function(){return U.call(this)}),e&&!d||!h&&!E&&O[l]||u(O,l,_),c[n]=_,c[F]=v,y)if(x={values:S?_:w("values"),keys:g?_:w("keys"),entries:P},d)for(m in x)m in O||o(O,m,x[m]);else i(i.P+i.F*(h||E),n,x);return x}},AphP:function(t,n,r){"use strict";var e=r("XKFU"),i=r("S/j/"),o=r("apmT");e(e.P+e.F*r("eeVq")((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})),"Date",{toJSON:function(t){var n=i(this),r=o(n);return"number"!=typeof r||isFinite(r)?n.toISOString():null}})},AvRE:function(t,n,r){var e=r("RYi7"),i=r("vhPU");t.exports=function(t){return function(n,r){var o,u,c=String(i(n)),a=e(r),f=c.length;return a<0||a>=f?t?"":void 0:(o=c.charCodeAt(a))<55296||o>56319||a+1===f||(u=c.charCodeAt(a+1))<56320||u>57343?t?c.charAt(a):o:t?c.slice(a,a+2):u-56320+(o-55296<<10)+65536}}},"B+OT":function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},BC7C:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{fround:r("kcoS")})},"BJ/l":function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log1p:r("1sa7")})},BP8U:function(t,n,r){var e=r("XKFU"),i=r("PKUr");e(e.S+e.F*(Number.parseInt!=i),"Number",{parseInt:i})},Btvt:function(t,n,r){"use strict";var e=r("I8a+"),i={};i[r("K0xU")("toStringTag")]="z",i+""!="[object z]"&&r("KroJ")(Object.prototype,"toString",(function(){return"[object "+e(this)+"]"}),!0)},"C/va":function(t,n,r){"use strict";var e=r("y3w9");t.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},CX2u:function(t,n,r){"use strict";var e=r("XKFU"),i=r("g3g5"),o=r("dyZX"),u=r("69bn"),c=r("vKrd");e(e.P+e.R,"Promise",{finally:function(t){var n=u(this,i.Promise||o.Promise),r="function"==typeof t;return this.then(r?function(r){return c(n,t()).then((function(){return r}))}:t,r?function(r){return c(n,t()).then((function(){throw r}))}:t)}})},Cfrj:function(t,n,r){var e=r("RYi7"),i=r("ne8i");t.exports=function(t){if(void 0===t)return 0;var n=e(t),r=i(n);if(n!==r)throw RangeError("Wrong length!");return r}},CkkT:function(t,n,r){var e=r("m0Pp"),i=r("Ymqv"),o=r("S/j/"),u=r("ne8i"),c=r("zRwo");t.exports=function(t,n){var r=1==t,a=2==t,f=3==t,s=4==t,l=6==t,h=5==t||l,v=n||c;return function(n,c,p){for(var y,g,d=o(n),x=i(d),m=e(c,p,3),b=u(x.length),w=0,F=r?v(n,b):a?v(n,0):void 0;b>w;w++)if((h||w in x)&&(g=m(y=x[w],w,d),t))if(r)F[w]=g;else if(g)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:F.push(y)}else if(s)return!1;return l?-1:f||s?s:F}}},CyHz:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{sign:r("lvtm")})},D4iV:function(t,n,r){for(var e,i=r("dyZX"),o=r("Mukb"),u=r("ylqs"),c=u("typed_array"),a=u("view"),f=!(!i.ArrayBuffer||!i.DataView),s=f,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(e=i[h[l++]])?(o(e.prototype,c,!0),o(e.prototype,a,!0)):s=!1;t.exports={ABV:f,CONSTR:s,TYPED:c,VIEW:a}},DNiP:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eyMr");e(e.P+e.F*!r("LyE8")([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},DVgA:function(t,n,r){var e=r("zhAb"),i=r("4R4u");t.exports=Object.keys||function(t){return e(t,i)}},DW2E:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("freeze",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},EK0E:function(t,n,r){"use strict";var e,i=r("dyZX"),o=r("CkkT")(0),u=r("KroJ"),c=r("Z6vF"),a=r("czNK"),f=r("ZD67"),s=r("0/R4"),l=r("s5qY"),h=r("s5qY"),v=!i.ActiveXObject&&"ActiveXObject"in i,p=c.getWeak,y=Object.isExtensible,g=f.ufstore,d=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},x={get:function(t){if(s(t)){var n=p(t);return!0===n?g(l(this,"WeakMap")).get(t):n?n[this._i]:void 0}},set:function(t,n){return f.def(l(this,"WeakMap"),t,n)}},m=t.exports=r("4LiD")("WeakMap",d,x,f,!0,!0);h&&v&&(a((e=f.getConstructor(d,"WeakMap")).prototype,x),c.NEED=!0,o(["delete","has","get","set"],(function(t){var n=m.prototype,r=n[t];u(n,t,(function(n,i){if(s(n)&&!y(n)){this._f||(this._f=new e);var o=this._f[t](n,i);return"set"==t?this:o}return r.call(this,n,i)}))})))},EWmC:function(t,n,r){var e=r("LZWt");t.exports=Array.isArray||function(t){return"Array"==e(t)}},EemH:function(t,n,r){var e=r("UqcF"),i=r("RjD/"),o=r("aCFj"),u=r("apmT"),c=r("aagx"),a=r("xpql"),f=Object.getOwnPropertyDescriptor;n.f=r("nh4g")?f:function(t,n){if(t=o(t),n=u(n,!0),a)try{return f(t,n)}catch(t){}if(c(t,n))return i(!e.f.call(t,n),t[n])}},"Ew+T":function(t,n,r){var e=r("XKFU"),i=r("GZEu");e(e.G+e.B,{setImmediate:i.set,clearImmediate:i.clear})},FDph:function(t,n,r){r("Z2Ku"),t.exports=r("g3g5").Array.includes},FEjr:function(t,n,r){"use strict";r("OGtf")("strike",(function(t){return function(){return t(this,"strike","","")}}))},FJW5:function(t,n,r){var e=r("hswa"),i=r("y3w9"),o=r("DVgA");t.exports=r("nh4g")?Object.defineProperties:function(t,n){i(t);for(var r,u=o(n),c=u.length,a=0;c>a;)e.f(t,r=u[a++],n[r]);return t}},FLlr:function(t,n,r){var e=r("XKFU");e(e.P,"String",{repeat:r("l0Rn")})},Faw5:function(t,n,r){r("7DDg")("Int16",2,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},FlsD:function(t,n,r){var e=r("0/R4");r("Xtr8")("isExtensible",(function(t){return function(n){return!!e(n)&&(!t||t(n))}}))},FxUG:function(t,n,r){r("R5XZ"),r("Ew+T"),r("rGqo"),t.exports=r("g3g5")},G8Mo:function(t,n,r){var e=r("93I4");t.exports=function(t,n){if(!e(t))return t;var r,i;if(n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!e(i=r.call(t)))return i;if(!n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},GNAe:function(t,n,r){var e=r("XKFU"),i=r("PKUr");e(e.G+e.F*(parseInt!=i),{parseInt:i})},GZEu:function(t,n,r){var e,i,o,u=r("m0Pp"),c=r("MfQN"),a=r("+rLv"),f=r("Iw71"),s=r("dyZX"),l=s.process,h=s.setImmediate,v=s.clearImmediate,p=s.MessageChannel,y=s.Dispatch,g=0,d={},x=function(){var t=+this;if(d.hasOwnProperty(t)){var n=d[t];delete d[t],n()}},m=function(t){x.call(t.data)};h&&v||(h=function(t){for(var n=[],r=1;arguments.length>r;)n.push(arguments[r++]);return d[++g]=function(){c("function"==typeof t?t:Function(t),n)},e(g),g},v=function(t){delete d[t]},"process"==r("LZWt")(l)?e=function(t){l.nextTick(u(x,t,1))}:y&&y.now?e=function(t){y.now(u(x,t,1))}:p?(o=(i=new p).port2,i.port1.onmessage=m,e=u(o.postMessage,o,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts?(e=function(t){s.postMessage(t+"","*")},s.addEventListener("message",m,!1)):e="onreadystatechange"in f("script")?function(t){a.appendChild(f("script")).onreadystatechange=function(){a.removeChild(this),x.call(t)}}:function(t){setTimeout(u(x,t,1),0)}),t.exports={set:h,clear:v}},H6hf:function(t,n,r){var e=r("y3w9");t.exports=function(t,n,r,i){try{return i?n(e(r)[0],r[1]):n(r)}catch(n){var o=t.return;throw void 0!==o&&e(o.call(t)),n}}},"HAE/":function(t,n,r){var e=r("XKFU");e(e.S+e.F*!r("nh4g"),"Object",{defineProperty:r("hswa").f})},HEwt:function(t,n,r){"use strict";var e=r("m0Pp"),i=r("XKFU"),o=r("S/j/"),u=r("H6hf"),c=r("M6Qj"),a=r("ne8i"),f=r("8a7r"),s=r("J+6e");i(i.S+i.F*!r("XMVh")((function(t){Array.from(t)})),"Array",{from:function(t){var n,r,i,l,h=o(t),v="function"==typeof this?this:Array,p=arguments.length,y=p>1?arguments[1]:void 0,g=void 0!==y,d=0,x=s(h);if(g&&(y=e(y,p>2?arguments[2]:void 0,2)),null==x||v==Array&&c(x))for(r=new v(n=a(h.length));n>d;d++)f(r,d,g?y(h[d],d):h[d]);else for(l=x.call(h),r=new v;!(i=l.next()).done;d++)f(r,d,g?u(l,y,[i.value,d],!0):i.value);return r.length=d,r}})},Hsns:function(t,n,r){var e=r("93I4"),i=r("5T2Y").document,o=e(i)&&e(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},I5cv:function(t,n,r){var e=r("XKFU"),i=r("Kuth"),o=r("2OiF"),u=r("y3w9"),c=r("0/R4"),a=r("eeVq"),f=r("8MEG"),s=(r("dyZX").Reflect||{}).construct,l=a((function(){function t(){}return!(s((function(){}),[],t)instanceof t)})),h=!a((function(){s((function(){}))}));e(e.S+e.F*(l||h),"Reflect",{construct:function(t,n){o(t),u(n);var r=arguments.length<3?t:o(arguments[2]);if(h&&!l)return s(t,n,r);if(t==r){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var e=[null];return e.push.apply(e,n),new(f.apply(t,e))}var a=r.prototype,v=i(c(a)?a:Object.prototype),p=Function.apply.call(t,v,n);return c(p)?p:v}})},I74W:function(t,n,r){"use strict";r("qncB")("trimLeft",(function(t){return function(){return t(this,1)}}),"trimStart")},I78e:function(t,n,r){"use strict";var e=r("XKFU"),i=r("+rLv"),o=r("LZWt"),u=r("d/Gc"),c=r("ne8i"),a=[].slice;e(e.P+e.F*r("eeVq")((function(){i&&a.call(i)})),"Array",{slice:function(t,n){var r=c(this.length),e=o(this);if(n=void 0===n?r:n,"Array"==e)return a.call(this,t,n);for(var i=u(t,r),f=u(n,r),s=c(f-i),l=new Array(s),h=0;h<s;h++)l[h]="String"==e?this.charAt(i+h):this[i+h];return l}})},"I8a+":function(t,n,r){var e=r("LZWt"),i=r("K0xU")("toStringTag"),o="Arguments"==e(function(){return arguments}());t.exports=function(t){var n,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),i))?r:o?e(n):"Object"==(u=e(n))&&"function"==typeof n.callee?"Arguments":u}},INYr:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(6),o="findIndex",u=!0;o in[]&&Array(1)[o]((function(){u=!1})),e(e.P+e.F*u,"Array",{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r("nGyu")(o)},"IU+Z":function(t,n,r){"use strict";r("sMXx");var e=r("KroJ"),i=r("Mukb"),o=r("eeVq"),u=r("vhPU"),c=r("K0xU"),a=r("Ugos"),f=c("species"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),l=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var r="ab".split(t);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();t.exports=function(t,n,r){var h=c(t),v=!o((function(){var n={};return n[h]=function(){return 7},7!=""[t](n)})),p=v?!o((function(){var n=!1,r=/a/;return r.exec=function(){return n=!0,null},"split"===t&&(r.constructor={},r.constructor[f]=function(){return r}),r[h](""),!n})):void 0;if(!v||!p||"replace"===t&&!s||"split"===t&&!l){var y=/./[h],g=r(u,h,""[t],(function(t,n,r,e,i){return n.exec===a?v&&!i?{done:!0,value:y.call(n,r,e)}:{done:!0,value:t.call(r,n,e)}:{done:!1}})),d=g[0],x=g[1];e(String.prototype,t,d),i(RegExp.prototype,h,2==n?function(t,n){return x.call(t,this,n)}:function(t){return x.call(t,this)})}}},IXt9:function(t,n,r){"use strict";var e=r("0/R4"),i=r("OP3Y"),o=r("K0xU")("hasInstance"),u=Function.prototype;o in u||r("hswa").f(u,o,{value:function(t){if("function"!=typeof this||!e(t))return!1;if(!e(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},IlFx:function(t,n,r){var e=r("XKFU"),i=r("y3w9"),o=Object.isExtensible;e(e.S,"Reflect",{isExtensible:function(t){return i(t),!o||o(t)}})},Iw71:function(t,n,r){var e=r("0/R4"),i=r("dyZX").document,o=e(i)&&e(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},Izvi:function(t,n,r){r("I74W"),t.exports=r("g3g5").String.trimLeft},"J+6e":function(t,n,r){var e=r("I8a+"),i=r("K0xU")("iterator"),o=r("hPIQ");t.exports=r("g3g5").getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[e(t)]}},JCqj:function(t,n,r){"use strict";r("OGtf")("sup",(function(t){return function(){return t(this,"sup","","")}}))},JbTB:function(t,n,r){r("/8Fb"),t.exports=r("g3g5").Object.entries},Jcmo:function(t,n,r){var e=r("XKFU"),i=Math.exp;e(e.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},JduL:function(t,n,r){r("Xtr8")("getOwnPropertyNames",(function(){return r("e7yV").f}))},"Ji/l":function(t,n,r){var e=r("XKFU");e(e.G+e.W+e.F*!r("D4iV").ABV,{DataView:r("7Qtz").DataView})},JiEa:function(t,n){n.f=Object.getOwnPropertySymbols},K0xU:function(t,n,r){var e=r("VTer")("wks"),i=r("ylqs"),o=r("dyZX").Symbol,u="function"==typeof o;(t.exports=function(t){return e[t]||(e[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=e},KKXr:function(t,n,r){"use strict";var e=r("quPj"),i=r("y3w9"),o=r("69bn"),u=r("A5AN"),c=r("ne8i"),a=r("Xxuz"),f=r("Ugos"),s=r("eeVq"),l=Math.min,h=[].push,v="length",p=!s((function(){RegExp(4294967295,"y")}));r("IU+Z")("split",2,(function(t,n,r,s){var y;return y="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1)[v]||2!="ab".split(/(?:ab)*/)[v]||4!=".".split(/(.?)(.?)/)[v]||".".split(/()()/)[v]>1||"".split(/.?/)[v]?function(t,n){var i=String(this);if(void 0===t&&0===n)return[];if(!e(t))return r.call(i,t,n);for(var o,u,c,a=[],s=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),l=0,p=void 0===n?4294967295:n>>>0,y=new RegExp(t.source,s+"g");(o=f.call(y,i))&&!((u=y.lastIndex)>l&&(a.push(i.slice(l,o.index)),o[v]>1&&o.index<i[v]&&h.apply(a,o.slice(1)),c=o[0][v],l=u,a[v]>=p));)y.lastIndex===o.index&&y.lastIndex++;return l===i[v]?!c&&y.test("")||a.push(""):a.push(i.slice(l)),a[v]>p?a.slice(0,p):a}:"0".split(void 0,0)[v]?function(t,n){return void 0===t&&0===n?[]:r.call(this,t,n)}:r,[function(r,e){var i=t(this),o=null==r?void 0:r[n];return void 0!==o?o.call(r,i,e):y.call(String(i),r,e)},function(t,n){var e=s(y,t,this,n,y!==r);if(e.done)return e.value;var f=i(t),h=String(this),v=o(f,RegExp),g=f.unicode,d=(f.ignoreCase?"i":"")+(f.multiline?"m":"")+(f.unicode?"u":"")+(p?"y":"g"),x=new v(p?f:"^(?:"+f.source+")",d),m=void 0===n?4294967295:n>>>0;if(0===m)return[];if(0===h.length)return null===a(x,h)?[h]:[];for(var b=0,w=0,F=[];w<h.length;){x.lastIndex=p?w:0;var S,E=a(x,p?h:h.slice(w));if(null===E||(S=l(c(x.lastIndex+(p?0:w)),h.length))===b)w=u(h,w,g);else{if(F.push(h.slice(b,w)),F.length===m)return F;for(var O=1;O<=E.length-1;O++)if(F.push(E[O]),F.length===m)return F;w=b=S}}return F.push(h.slice(b)),F}]}))},KUxP:function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},KroJ:function(t,n,r){var e=r("dyZX"),i=r("Mukb"),o=r("aagx"),u=r("ylqs")("src"),c=r("+lvF"),a=(""+c).split("toString");r("g3g5").inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,r,c){var f="function"==typeof r;f&&(o(r,"name")||i(r,"name",n)),t[n]!==r&&(f&&(o(r,u)||i(r,u,t[n]?""+t[n]:a.join(String(n)))),t===e?t[n]=r:c?t[n]?t[n]=r:i(t,n,r):(delete t[n],i(t,n,r)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[u]||c.call(this)}))},Kuth:function(t,n,r){var e=r("y3w9"),i=r("FJW5"),o=r("4R4u"),u=r("YTvA")("IE_PROTO"),c=function(){},a=function(){var t,n=r("Iw71")("iframe"),e=o.length;for(n.style.display="none",r("+rLv").appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),a=t.F;e--;)delete a.prototype[o[e]];return a()};t.exports=Object.create||function(t,n){var r;return null!==t?(c.prototype=e(t),r=new c,c.prototype=null,r[u]=t):r=a(),void 0===n?r:i(r,n)}},L9s1:function(t,n,r){"use strict";var e=r("XKFU"),i=r("0sh+");e(e.P+e.F*r("UUeW")("includes"),"String",{includes:function(t){return!!~i(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},LK8F:function(t,n,r){var e=r("XKFU");e(e.S,"Array",{isArray:r("EWmC")})},LQAc:function(t,n){t.exports=!1},LTTk:function(t,n,r){var e=r("XKFU"),i=r("OP3Y"),o=r("y3w9");e(e.S,"Reflect",{getPrototypeOf:function(t){return i(o(t))}})},LVwc:function(t,n){var r=Math.expm1;t.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:r},LZWt:function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},Lgjv:function(t,n,r){var e=r("ne8i"),i=r("l0Rn"),o=r("vhPU");t.exports=function(t,n,r,u){var c=String(o(t)),a=c.length,f=void 0===r?" ":String(r),s=e(n);if(s<=a||""==f)return c;var l=s-a,h=i.call(f,Math.ceil(l/f.length));return h.length>l&&(h=h.slice(0,l)),u?h+c:c+h}},Ljet:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},LyE8:function(t,n,r){"use strict";var e=r("eeVq");t.exports=function(t,n){return!!t&&e((function(){n?t.call(null,(function(){}),1):t.call(null)}))}},M6Qj:function(t,n,r){var e=r("hPIQ"),i=r("K0xU")("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(e.Array===t||o[i]===t)}},MfQN:function(t,n){t.exports=function(t,n,r){var e=void 0===r;switch(n.length){case 0:return e?t():t.call(r);case 1:return e?t(n[0]):t.call(r,n[0]);case 2:return e?t(n[0],n[1]):t.call(r,n[0],n[1]);case 3:return e?t(n[0],n[1],n[2]):t.call(r,n[0],n[1],n[2]);case 4:return e?t(n[0],n[1],n[2],n[3]):t.call(r,n[0],n[1],n[2],n[3])}return t.apply(r,n)}},MtdB:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},Mukb:function(t,n,r){var e=r("hswa"),i=r("RjD/");t.exports=r("nh4g")?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},N8g3:function(t,n,r){n.f=r("K0xU")},NO8f:function(t,n,r){r("7DDg")("Uint8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},NegM:function(t,n,r){var e=r("2faE"),i=r("rr1i");t.exports=r("jmDH")?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},Nr18:function(t,n,r){"use strict";var e=r("S/j/"),i=r("d/Gc"),o=r("ne8i");t.exports=function(t){for(var n=e(this),r=o(n.length),u=arguments.length,c=i(u>1?arguments[1]:void 0,r),a=u>2?arguments[2]:void 0,f=void 0===a?r:i(a,r);f>c;)n[c++]=t;return n}},Nz9U:function(t,n,r){"use strict";var e=r("XKFU"),i=r("aCFj"),o=[].join;e(e.P+e.F*(r("Ymqv")!=Object||!r("LyE8")(o)),"Array",{join:function(t){return o.call(i(this),void 0===t?",":t)}})},OEbY:function(t,n,r){r("nh4g")&&"g"!=/./g.flags&&r("hswa").f(RegExp.prototype,"flags",{configurable:!0,get:r("C/va")})},OG14:function(t,n,r){"use strict";var e=r("y3w9"),i=r("g6HL"),o=r("Xxuz");r("IU+Z")("search",1,(function(t,n,r,u){return[function(r){var e=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=u(r,t,this);if(n.done)return n.value;var c=e(t),a=String(this),f=c.lastIndex;i(f,0)||(c.lastIndex=0);var s=o(c,a);return i(c.lastIndex,f)||(c.lastIndex=f),null===s?-1:s.index}]}))},OGtf:function(t,n,r){var e=r("XKFU"),i=r("eeVq"),o=r("vhPU"),u=/"/g,c=function(t,n,r,e){var i=String(o(t)),c="<"+n;return""!==r&&(c+=" "+r+'="'+String(e).replace(u,"&quot;")+'"'),c+">"+i+"</"+n+">"};t.exports=function(t,n){var r={};r[t]=n(c),e(e.P+e.F*i((function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3})),"String",r)}},OP3Y:function(t,n,r){var e=r("aagx"),i=r("S/j/"),o=r("YTvA")("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),e(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},OnI7:function(t,n,r){var e=r("dyZX"),i=r("g3g5"),o=r("LQAc"),u=r("N8g3"),c=r("hswa").f;t.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:e.Symbol||{});"_"==t.charAt(0)||t in n||c(n,t,{value:u.f(t)})}},Oyvg:function(t,n,r){var e=r("dyZX"),i=r("Xbzi"),o=r("hswa").f,u=r("kJMx").f,c=r("quPj"),a=r("C/va"),f=e.RegExp,s=f,l=f.prototype,h=/a/g,v=/a/g,p=new f(h)!==h;if(r("nh4g")&&(!p||r("eeVq")((function(){return v[r("K0xU")("match")]=!1,f(h)!=h||f(v)==v||"/a/i"!=f(h,"i")})))){f=function(t,n){var r=this instanceof f,e=c(t),o=void 0===n;return!r&&e&&t.constructor===f&&o?t:i(p?new s(e&&!o?t.source:t,n):s((e=t instanceof f)?t.source:t,e&&o?a.call(t):n),r?this:l,f)};for(var y=function(t){t in f||o(f,t,{configurable:!0,get:function(){return s[t]},set:function(n){s[t]=n}})},g=u(s),d=0;g.length>d;)y(g[d++]);l.constructor=f,f.prototype=l,r("KroJ")(e,"RegExp",f)}r("elZq")("RegExp")},PKUr:function(t,n,r){var e=r("dyZX").parseInt,i=r("qncB").trim,o=r("/e88"),u=/^[-+]?0[xX]/;t.exports=8!==e(o+"08")||22!==e(o+"0x16")?function(t,n){var r=i(String(t),3);return e(r,n>>>0||(u.test(r)?16:10))}:e},QNwp:function(t,n,r){r("7VC1"),t.exports=r("g3g5").String.padEnd},QaDb:function(t,n,r){"use strict";var e=r("Kuth"),i=r("RjD/"),o=r("fyDq"),u={};r("Mukb")(u,r("K0xU")("iterator"),(function(){return this})),t.exports=function(t,n,r){t.prototype=e(u,{next:i(1,r)}),o(t,n+" Iterator")}},R5XZ:function(t,n,r){var e=r("dyZX"),i=r("XKFU"),o=r("ol8x"),u=[].slice,c=/MSIE .\./.test(o),a=function(t){return function(n,r){var e=arguments.length>2,i=!!e&&u.call(arguments,2);return t(e?function(){("function"==typeof n?n:Function(n)).apply(this,i)}:n,r)}};i(i.G+i.B+i.F*c,{setTimeout:a(e.setTimeout),setInterval:a(e.setInterval)})},RW0V:function(t,n,r){var e=r("S/j/"),i=r("DVgA");r("Xtr8")("keys",(function(){return function(t){return i(e(t))}}))},RYi7:function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},"RjD/":function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},"S/j/":function(t,n,r){var e=r("vhPU");t.exports=function(t){return Object(e(t))}},SMB2:function(t,n,r){"use strict";r("OGtf")("bold",(function(t){return function(){return t(this,"b","","")}}))},SPin:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eyMr");e(e.P+e.F*!r("LyE8")([].reduceRight,!0),"Array",{reduceRight:function(t){return i(this,t,arguments.length,arguments[1],!0)}})},SRfc:function(t,n,r){"use strict";var e=r("y3w9"),i=r("ne8i"),o=r("A5AN"),u=r("Xxuz");r("IU+Z")("match",1,(function(t,n,r,c){return[function(r){var e=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=c(r,t,this);if(n.done)return n.value;var a=e(t),f=String(this);if(!a.global)return u(a,f);var s=a.unicode;a.lastIndex=0;for(var l,h=[],v=0;null!==(l=u(a,f));){var p=String(l[0]);h[v]=p,""===p&&(a.lastIndex=o(f,i(a.lastIndex),s)),v++}return 0===v?null:h}]}))},SlkY:function(t,n,r){var e=r("m0Pp"),i=r("H6hf"),o=r("M6Qj"),u=r("y3w9"),c=r("ne8i"),a=r("J+6e"),f={},s={};(n=t.exports=function(t,n,r,l,h){var v,p,y,g,d=h?function(){return t}:a(t),x=e(r,l,n?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(o(d)){for(v=c(t.length);v>m;m++)if((g=n?x(u(p=t[m])[0],p[1]):x(t[m]))===f||g===s)return g}else for(y=d.call(t);!(p=y.next()).done;)if((g=i(y,x,p.value,n))===f||g===s)return g}).BREAK=f,n.RETURN=s},T39b:function(t,n,r){"use strict";var e=r("wmvG"),i=r("s5qY");t.exports=r("4LiD")("Set",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return e.def(i(this,"Set"),t=0===t?0:t,t)}},e)},TIpR:function(t,n,r){"use strict";r("VRzm"),r("CX2u"),t.exports=r("g3g5").Promise.finally},Tdpu:function(t,n,r){r("7DDg")("Float64",8,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},Tze0:function(t,n,r){"use strict";r("qncB")("trim",(function(t){return function(){return t(this,3)}}))},U2t9:function(t,n,r){var e=r("XKFU"),i=Math.asinh;e(e.S+e.F*!(i&&1/i(0)>0),"Math",{asinh:function t(n){return isFinite(n=+n)&&0!=n?n<0?-t(-n):Math.log(n+Math.sqrt(n*n+1)):n}})},UExd:function(t,n,r){var e=r("nh4g"),i=r("DVgA"),o=r("aCFj"),u=r("UqcF").f;t.exports=function(t){return function(n){for(var r,c=o(n),a=i(c),f=a.length,s=0,l=[];f>s;)r=a[s++],e&&!u.call(c,r)||l.push(t?[r,c[r]]:c[r]);return l}}},UUeW:function(t,n,r){var e=r("K0xU")("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(t){}}return!0}},Ugos:function(t,n,r){"use strict";var e,i,o=r("C/va"),u=RegExp.prototype.exec,c=String.prototype.replace,a=u,f=(e=/a/,i=/b*/g,u.call(e,"a"),u.call(i,"a"),0!==e.lastIndex||0!==i.lastIndex),s=void 0!==/()??/.exec("")[1];(f||s)&&(a=function(t){var n,r,e,i,a=this;return s&&(r=new RegExp("^"+a.source+"$(?!\\s)",o.call(a))),f&&(n=a.lastIndex),e=u.call(a,t),f&&e&&(a.lastIndex=a.global?e.index+e[0].length:n),s&&e&&e.length>1&&c.call(e[0],r,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(e[i]=void 0)})),e}),t.exports=a},UqcF:function(t,n){n.f={}.propertyIsEnumerable},"V+eJ":function(t,n,r){"use strict";var e=r("XKFU"),i=r("w2a5")(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!r("LyE8")(o)),"Array",{indexOf:function(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},"V/DX":function(t,n,r){var e=r("0/R4");r("Xtr8")("isSealed",(function(t){return function(n){return!e(n)||!!t&&t(n)}}))},VKir:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eeVq"),o=r("vvmO"),u=1..toPrecision;e(e.P+e.F*(i((function(){return"1"!==u.call(1,void 0)}))||!i((function(){u.call({})}))),"Number",{toPrecision:function(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},VRzm:function(t,n,r){"use strict";var e,i,o,u,c=r("LQAc"),a=r("dyZX"),f=r("m0Pp"),s=r("I8a+"),l=r("XKFU"),h=r("0/R4"),v=r("2OiF"),p=r("9gX7"),y=r("SlkY"),g=r("69bn"),d=r("GZEu").set,x=r("gHnn")(),m=r("pbhE"),b=r("nICZ"),w=r("ol8x"),F=r("vKrd"),S=a.TypeError,E=a.process,O=E&&E.versions,U=O&&O.v8||"",_=a.Promise,P="process"==s(E),M=function(){},K=i=m.f,j=!!function(){try{var t=_.resolve(1),n=(t.constructor={})[r("K0xU")("species")]=function(t){t(M,M)};return(P||"function"==typeof PromiseRejectionEvent)&&t.then(M)instanceof n&&0!==U.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(t){}}(),X=function(t){var n;return!(!h(t)||"function"!=typeof(n=t.then))&&n},A=function(t,n){if(!t._n){t._n=!0;var r=t._c;x((function(){for(var e=t._v,i=1==t._s,o=0,u=function(n){var r,o,u,c=i?n.ok:n.fail,a=n.resolve,f=n.reject,s=n.domain;try{c?(i||(2==t._h&&L(t),t._h=1),!0===c?r=e:(s&&s.enter(),r=c(e),s&&(s.exit(),u=!0)),r===n.promise?f(S("Promise-chain cycle")):(o=X(r))?o.call(r,a,f):a(r)):f(e)}catch(t){s&&!u&&s.exit(),f(t)}};r.length>o;)u(r[o++]);t._c=[],t._n=!1,n&&!t._h&&I(t)}))}},I=function(t){d.call(a,(function(){var n,r,e,i=t._v,o=T(t);if(o&&(n=b((function(){P?E.emit("unhandledRejection",i,t):(r=a.onunhandledrejection)?r({promise:t,reason:i}):(e=a.console)&&e.error&&e.error("Unhandled promise rejection",i)})),t._h=P||T(t)?2:1),t._a=void 0,o&&n.e)throw n.v}))},T=function(t){return 1!==t._h&&0===(t._a||t._c).length},L=function(t){d.call(a,(function(){var n;P?E.emit("rejectionHandled",t):(n=a.onrejectionhandled)&&n({promise:t,reason:t._v})}))},R=function(t){var n=this;n._d||(n._d=!0,(n=n._w||n)._v=t,n._s=2,n._a||(n._a=n._c.slice()),A(n,!0))},N=function(t){var n,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===t)throw S("Promise can't be resolved itself");(n=X(t))?x((function(){var e={_w:r,_d:!1};try{n.call(t,f(N,e,1),f(R,e,1))}catch(t){R.call(e,t)}})):(r._v=t,r._s=1,A(r,!1))}catch(t){R.call({_w:r,_d:!1},t)}}};j||(_=function(t){p(this,_,"Promise","_h"),v(t),e.call(this);try{t(f(N,this,1),f(R,this,1))}catch(t){R.call(this,t)}},(e=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r("3Lyj")(_.prototype,{then:function(t,n){var r=K(g(this,_));return r.ok="function"!=typeof t||t,r.fail="function"==typeof n&&n,r.domain=P?E.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&A(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new e;this.promise=t,this.resolve=f(N,t,1),this.reject=f(R,t,1)},m.f=K=function(t){return t===_||t===u?new o(t):i(t)}),l(l.G+l.W+l.F*!j,{Promise:_}),r("fyDq")(_,"Promise"),r("elZq")("Promise"),u=r("g3g5").Promise,l(l.S+l.F*!j,"Promise",{reject:function(t){var n=K(this);return(0,n.reject)(t),n.promise}}),l(l.S+l.F*(c||!j),"Promise",{resolve:function(t){return F(c&&this===u?_:this,t)}}),l(l.S+l.F*!(j&&r("XMVh")((function(t){_.all(t).catch(M)}))),"Promise",{all:function(t){var n=this,r=K(n),e=r.resolve,i=r.reject,o=b((function(){var r=[],o=0,u=1;y(t,!1,(function(t){var c=o++,a=!1;r.push(void 0),u++,n.resolve(t).then((function(t){a||(a=!0,r[c]=t,--u||e(r))}),i)})),--u||e(r)}));return o.e&&i(o.v),r.promise},race:function(t){var n=this,r=K(n),e=r.reject,i=b((function(){y(t,!1,(function(t){n.resolve(t).then(r.resolve,e)}))}));return i.e&&e(i.v),r.promise}})},VTer:function(t,n,r){var e=r("g3g5"),i=r("dyZX"),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,n){return o[t]||(o[t]=void 0!==n?n:{})})("versions",[]).push({version:e.version,mode:r("LQAc")?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},Vd3H:function(t,n,r){"use strict";var e=r("XKFU"),i=r("2OiF"),o=r("S/j/"),u=r("eeVq"),c=[].sort,a=[1,2,3];e(e.P+e.F*(u((function(){a.sort(void 0)}))||!u((function(){a.sort(null)}))||!r("LyE8")(c)),"Array",{sort:function(t){return void 0===t?c.call(o(this)):c.call(o(this),i(t))}})},VpUO:function(t,n,r){var e=r("XKFU"),i=r("d/Gc"),o=String.fromCharCode,u=String.fromCodePoint;e(e.S+e.F*(!!u&&1!=u.length),"String",{fromCodePoint:function(t){for(var n,r=[],e=arguments.length,u=0;e>u;){if(n=+arguments[u++],i(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(n<65536?o(n):o(55296+((n-=65536)>>10),n%1024+56320))}return r.join("")}})},VsWn:function(t,n,r){r("7PI8"),t.exports=r("WEpk").global},W9dy:function(t,n,r){r("ioFf"),r("hHhE"),r("HAE/"),r("WLL4"),r("mYba"),r("5Pf0"),r("RW0V"),r("JduL"),r("DW2E"),r("z2o2"),r("mura"),r("Zshi"),r("V/DX"),r("FlsD"),r("91GP"),r("25dN"),r("/SS/"),r("Btvt"),r("2Spj"),r("f3/d"),r("IXt9"),r("GNAe"),r("tyy+"),r("xfY5"),r("A2zW"),r("VKir"),r("Ljet"),r("/KAi"),r("fN96"),r("7h0T"),r("sbF8"),r("h/M4"),r("knhD"),r("XfKG"),r("BP8U"),r("fyVe"),r("U2t9"),r("2atp"),r("+auO"),r("MtdB"),r("Jcmo"),r("nzyx"),r("BC7C"),r("x8ZO"),r("9P93"),r("eHKK"),r("BJ/l"),r("pp/T"),r("CyHz"),r("bBoP"),r("x8Yj"),r("hLT2"),r("VpUO"),r("eI33"),r("Tze0"),r("XfO3"),r("oDIu"),r("rvZc"),r("L9s1"),r("FLlr"),r("9VmF"),r("hEkN"),r("nIY7"),r("+oPb"),r("SMB2"),r("0mN4"),r("bDcW"),r("nsiH"),r("0LDn"),r("tUrg"),r("84bF"),r("FEjr"),r("Zz4T"),r("JCqj"),r("eM6i"),r("AphP"),r("jqX0"),r("h7Nl"),r("yM4b"),r("LK8F"),r("HEwt"),r("6AQ9"),r("Nz9U"),r("I78e"),r("Vd3H"),r("8+KV"),r("bWfx"),r("0l/t"),r("dZ+Y"),r("YJVH"),r("DNiP"),r("SPin"),r("V+eJ"),r("mGWK"),r("dE+T"),r("bHtr"),r("dRSK"),r("INYr"),r("0E+W"),r("yt8O"),r("Oyvg"),r("sMXx"),r("a1Th"),r("OEbY"),r("SRfc"),r("pIFo"),r("OG14"),r("KKXr"),r("VRzm"),r("9AAn"),r("T39b"),r("EK0E"),r("wCsR"),r("xm80"),r("Ji/l"),r("sFw1"),r("NO8f"),r("aqI/"),r("Faw5"),r("r1bV"),r("tuSo"),r("nCnK"),r("Y9lz"),r("Tdpu"),r("3xty"),r("I5cv"),r("iMoV"),r("uhZd"),r("f/aN"),r("0YWM"),r("694e"),r("LTTk"),r("9rMk"),r("IlFx"),r("xpiv"),r("oZ/O"),r("klPD"),r("knU9"),t.exports=r("g3g5")},WEpk:function(t,n){var r=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=r)},WLL4:function(t,n,r){var e=r("XKFU");e(e.S+e.F*!r("nh4g"),"Object",{defineProperties:r("FJW5")})},XKFU:function(t,n,r){var e=r("dyZX"),i=r("g3g5"),o=r("Mukb"),u=r("KroJ"),c=r("m0Pp"),a=function(t,n,r){var f,s,l,h,v=t&a.F,p=t&a.G,y=t&a.S,g=t&a.P,d=t&a.B,x=p?e:y?e[n]||(e[n]={}):(e[n]||{}).prototype,m=p?i:i[n]||(i[n]={}),b=m.prototype||(m.prototype={});for(f in p&&(r=n),r)l=((s=!v&&x&&void 0!==x[f])?x:r)[f],h=d&&s?c(l,e):g&&"function"==typeof l?c(Function.call,l):l,x&&u(x,f,l,t&a.U),m[f]!=l&&o(m,f,h),g&&b[f]!=l&&(b[f]=l)};e.core=i,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},XMVh:function(t,n,r){var e=r("K0xU")("iterator"),i=!1;try{var o=[7][e]();o.return=function(){i=!0},Array.from(o,(function(){throw 2}))}catch(t){}t.exports=function(t,n){if(!n&&!i)return!1;var r=!1;try{var o=[7],u=o[e]();u.next=function(){return{done:r=!0}},o[e]=function(){return u},t(o)}catch(t){}return r}},Xbzi:function(t,n,r){var e=r("0/R4"),i=r("i5dc").set;t.exports=function(t,n,r){var o,u=n.constructor;return u!==r&&"function"==typeof u&&(o=u.prototype)!==r.prototype&&e(o)&&i&&i(t,o),t}},XfKG:function(t,n,r){var e=r("XKFU"),i=r("11IZ");e(e.S+e.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},XfO3:function(t,n,r){"use strict";var e=r("AvRE")(!0);r("Afnz")(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})}))},Xtr8:function(t,n,r){var e=r("XKFU"),i=r("g3g5"),o=r("eeVq");t.exports=function(t,n){var r=(i.Object||{})[t]||Object[t],u={};u[t]=n(r),e(e.S+e.F*o((function(){r(1)})),"Object",u)}},Xxuz:function(t,n,r){"use strict";var e=r("I8a+"),i=RegExp.prototype.exec;t.exports=function(t,n){var r=t.exec;if("function"==typeof r){var o=r.call(t,n);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==e(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,n)}},Y7ZC:function(t,n,r){var e=r("5T2Y"),i=r("WEpk"),o=r("2GTP"),u=r("NegM"),c=r("B+OT"),a=function(t,n,r){var f,s,l,h=t&a.F,v=t&a.G,p=t&a.S,y=t&a.P,g=t&a.B,d=t&a.W,x=v?i:i[n]||(i[n]={}),m=x.prototype,b=v?e:p?e[n]:(e[n]||{}).prototype;for(f in v&&(r=n),r)(s=!h&&b&&void 0!==b[f])&&c(x,f)||(l=s?b[f]:r[f],x[f]=v&&"function"!=typeof b[f]?r[f]:g&&s?o(l,e):d&&b[f]==l?function(t){var n=function(n,r,e){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(n);case 2:return new t(n,r)}return new t(n,r,e)}return t.apply(this,arguments)};return n.prototype=t.prototype,n}(l):y&&"function"==typeof l?o(Function.call,l):l,y&&((x.virtual||(x.virtual={}))[f]=l,t&a.R&&m&&!m[f]&&u(m,f,l)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},Y9lz:function(t,n,r){r("7DDg")("Float32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},YJVH:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(4);e(e.P+e.F*!r("LyE8")([].every,!0),"Array",{every:function(t){return i(this,t,arguments[1])}})},YTvA:function(t,n,r){var e=r("VTer")("keys"),i=r("ylqs");t.exports=function(t){return e[t]||(e[t]=i(t))}},Ymqv:function(t,n,r){var e=r("LZWt");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},Yp8f:function(t,n,r){r("6VaU"),t.exports=r("g3g5").Array.flatMap},Z2Ku:function(t,n,r){"use strict";var e=r("XKFU"),i=r("w2a5")(!0);e(e.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r("nGyu")("includes")},Z6vF:function(t,n,r){var e=r("ylqs")("meta"),i=r("0/R4"),o=r("aagx"),u=r("hswa").f,c=0,a=Object.isExtensible||function(){return!0},f=!r("eeVq")((function(){return a(Object.preventExtensions({}))})),s=function(t){u(t,e,{value:{i:"O"+ ++c,w:{}}})},l=t.exports={KEY:e,NEED:!1,fastKey:function(t,n){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,e)){if(!a(t))return"F";if(!n)return"E";s(t)}return t[e].i},getWeak:function(t,n){if(!o(t,e)){if(!a(t))return!0;if(!n)return!1;s(t)}return t[e].w},onFreeze:function(t){return f&&l.NEED&&a(t)&&!o(t,e)&&s(t),t}}},ZD67:function(t,n,r){"use strict";var e=r("3Lyj"),i=r("Z6vF").getWeak,o=r("y3w9"),u=r("0/R4"),c=r("9gX7"),a=r("SlkY"),f=r("CkkT"),s=r("aagx"),l=r("s5qY"),h=f(5),v=f(6),p=0,y=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},d=function(t,n){return h(t.a,(function(t){return t[0]===n}))};g.prototype={get:function(t){var n=d(this,t);if(n)return n[1]},has:function(t){return!!d(this,t)},set:function(t,n){var r=d(this,t);r?r[1]=n:this.a.push([t,n])},delete:function(t){var n=v(this.a,(function(n){return n[0]===t}));return~n&&this.a.splice(n,1),!!~n}},t.exports={getConstructor:function(t,n,r,o){var f=t((function(t,e){c(t,f,n,"_i"),t._t=n,t._i=p++,t._l=void 0,null!=e&&a(e,r,t[o],t)}));return e(f.prototype,{delete:function(t){if(!u(t))return!1;var r=i(t);return!0===r?y(l(this,n)).delete(t):r&&s(r,this._i)&&delete r[this._i]},has:function(t){if(!u(t))return!1;var r=i(t);return!0===r?y(l(this,n)).has(t):r&&s(r,this._i)}}),f},def:function(t,n,r){var e=i(o(n),!0);return!0===e?y(t).set(n,r):e[t._i]=r,t},ufstore:y}},Zshi:function(t,n,r){var e=r("0/R4");r("Xtr8")("isFrozen",(function(t){return function(n){return!e(n)||!!t&&t(n)}}))},Zz4T:function(t,n,r){"use strict";r("OGtf")("sub",(function(t){return function(){return t(this,"sub","","")}}))},a1Th:function(t,n,r){"use strict";r("OEbY");var e=r("y3w9"),i=r("C/va"),o=r("nh4g"),u=/./.toString,c=function(t){r("KroJ")(RegExp.prototype,"toString",t,!0)};r("eeVq")((function(){return"/a/b"!=u.call({source:"a",flags:"b"})}))?c((function(){var t=e(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)})):"toString"!=u.name&&c((function(){return u.call(this)}))},aCFj:function(t,n,r){var e=r("Ymqv"),i=r("vhPU");t.exports=function(t){return e(i(t))}},aagx:function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},apmT:function(t,n,r){var e=r("0/R4");t.exports=function(t,n){if(!e(t))return t;var r,i;if(n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!e(i=r.call(t)))return i;if(!n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},"aqI/":function(t,n,r){r("7DDg")("Uint8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}),!0)},bBoP:function(t,n,r){var e=r("XKFU"),i=r("LVwc"),o=Math.exp;e(e.S+e.F*r("eeVq")((function(){return-2e-17!=!Math.sinh(-2e-17)})),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},bDcW:function(t,n,r){"use strict";r("OGtf")("fontcolor",(function(t){return function(n){return t(this,"font","color",n)}}))},bHtr:function(t,n,r){var e=r("XKFU");e(e.P,"Array",{fill:r("Nr18")}),r("nGyu")("fill")},bWfx:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(1);e(e.P+e.F*!r("LyE8")([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},czNK:function(t,n,r){"use strict";var e=r("nh4g"),i=r("DVgA"),o=r("JiEa"),u=r("UqcF"),c=r("S/j/"),a=r("Ymqv"),f=Object.assign;t.exports=!f||r("eeVq")((function(){var t={},n={},r=Symbol(),e="abcdefghijklmnopqrst";return t[r]=7,e.split("").forEach((function(t){n[t]=t})),7!=f({},t)[r]||Object.keys(f({},n)).join("")!=e}))?function(t,n){for(var r=c(t),f=arguments.length,s=1,l=o.f,h=u.f;f>s;)for(var v,p=a(arguments[s++]),y=l?i(p).concat(l(p)):i(p),g=y.length,d=0;g>d;)v=y[d++],e&&!h.call(p,v)||(r[v]=p[v]);return r}:f},"d/Gc":function(t,n,r){var e=r("RYi7"),i=Math.max,o=Math.min;t.exports=function(t,n){return(t=e(t))<0?i(t+n,0):o(t,n)}},"dE+T":function(t,n,r){var e=r("XKFU");e(e.P,"Array",{copyWithin:r("upKx")}),r("nGyu")("copyWithin")},dRSK:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(5),o=!0;"find"in[]&&Array(1).find((function(){o=!1})),e(e.P+e.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r("nGyu")("find")},"dZ+Y":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(3);e(e.P+e.F*!r("LyE8")([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},dyZX:function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},e7yV:function(t,n,r){var e=r("aCFj"),i=r("kJMx").f,o={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return u&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return u.slice()}}(t):i(e(t))}},eHKK:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},eI33:function(t,n,r){var e=r("XKFU"),i=r("aCFj"),o=r("ne8i");e(e.S,"String",{raw:function(t){for(var n=i(t.raw),r=o(n.length),e=arguments.length,u=[],c=0;r>c;)u.push(String(n[c++])),c<e&&u.push(String(arguments[c]));return u.join("")}})},eM6i:function(t,n,r){var e=r("XKFU");e(e.S,"Date",{now:function(){return(new Date).getTime()}})},eUtF:function(t,n,r){t.exports=!r("jmDH")&&!r("KUxP")((function(){return 7!=Object.defineProperty(r("Hsns")("div"),"a",{get:function(){return 7}}).a}))},eaoh:function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},eeVq:function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},elZq:function(t,n,r){"use strict";var e=r("dyZX"),i=r("hswa"),o=r("nh4g"),u=r("K0xU")("species");t.exports=function(t){var n=e[t];o&&n&&!n[u]&&i.f(n,u,{configurable:!0,get:function(){return this}})}},eyMr:function(t,n,r){var e=r("2OiF"),i=r("S/j/"),o=r("Ymqv"),u=r("ne8i");t.exports=function(t,n,r,c,a){e(n);var f=i(t),s=o(f),l=u(f.length),h=a?l-1:0,v=a?-1:1;if(r<2)for(;;){if(h in s){c=s[h],h+=v;break}if(h+=v,a?h<0:l<=h)throw TypeError("Reduce of empty array with no initial value")}for(;a?h>=0:l>h;h+=v)h in s&&(c=n(c,s[h],h,f));return c}},"f/aN":function(t,n,r){"use strict";var e=r("XKFU"),i=r("y3w9"),o=function(t){this._t=i(t),this._i=0;var n,r=this._k=[];for(n in t)r.push(n)};r("QaDb")(o,"Object",(function(){var t,n=this._k;do{if(this._i>=n.length)return{value:void 0,done:!0}}while(!((t=n[this._i++])in this._t));return{value:t,done:!1}})),e(e.S,"Reflect",{enumerate:function(t){return new o(t)}})},"f3/d":function(t,n,r){var e=r("hswa").f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||r("nh4g")&&e(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},fA63:function(t,n,r){"use strict";r("qncB")("trimRight",(function(t){return function(){return t(this,2)}}),"trimEnd")},fN96:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{isInteger:r("nBIS")})},fyDq:function(t,n,r){var e=r("hswa").f,i=r("aagx"),o=r("K0xU")("toStringTag");t.exports=function(t,n,r){t&&!i(t=r?t:t.prototype,o)&&e(t,o,{configurable:!0,value:n})}},fyVe:function(t,n,r){var e=r("XKFU"),i=r("1sa7"),o=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},g2aq:function(t,n,r){"use strict";r("W9dy"),r("FDph"),r("Yp8f"),r("wYy3"),r("QNwp"),r("Izvi"),r("ln0Z"),r("wDwx"),r("+Xmh"),r("zFFn"),r("JbTB"),r("TIpR"),r("FxUG"),r("ls82")},g3g5:function(t,n){var r=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=r)},g4EE:function(t,n,r){"use strict";var e=r("y3w9"),i=r("apmT");t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(e(this),"number"!=t)}},g6HL:function(t,n){t.exports=Object.is||function(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}},gHnn:function(t,n,r){var e=r("dyZX"),i=r("GZEu").set,o=e.MutationObserver||e.WebKitMutationObserver,u=e.process,c=e.Promise,a="process"==r("LZWt")(u);t.exports=function(){var t,n,r,f=function(){var e,i;for(a&&(e=u.domain)&&e.exit();t;){i=t.fn,t=t.next;try{i()}catch(e){throw t?r():n=void 0,e}}n=void 0,e&&e.enter()};if(a)r=function(){u.nextTick(f)};else if(!o||e.navigator&&e.navigator.standalone)if(c&&c.resolve){var s=c.resolve(void 0);r=function(){s.then(f)}}else r=function(){i.call(e,f)};else{var l=!0,h=document.createTextNode("");new o(f).observe(h,{characterData:!0}),r=function(){h.data=l=!l}}return function(e){var i={fn:e,next:void 0};n&&(n.next=i),t||(t=i,r()),n=i}}},"h/M4":function(t,n,r){var e=r("XKFU");e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},h7Nl:function(t,n,r){var e=Date.prototype,i=e.toString,o=e.getTime;new Date(NaN)+""!="Invalid Date"&&r("KroJ")(e,"toString",(function(){var t=o.call(this);return t==t?i.call(this):"Invalid Date"}))},hEkN:function(t,n,r){"use strict";r("OGtf")("anchor",(function(t){return function(n){return t(this,"a","name",n)}}))},hHhE:function(t,n,r){var e=r("XKFU");e(e.S,"Object",{create:r("Kuth")})},hLT2:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},hPIQ:function(t,n){t.exports={}},hhXQ:function(t,n,r){var e=r("XKFU"),i=r("UExd")(!1);e(e.S,"Object",{values:function(t){return i(t)}})},hswa:function(t,n,r){var e=r("y3w9"),i=r("xpql"),o=r("apmT"),u=Object.defineProperty;n.f=r("nh4g")?Object.defineProperty:function(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},i5dc:function(t,n,r){var e=r("0/R4"),i=r("y3w9"),o=function(t,n){if(i(t),!e(n)&&null!==n)throw TypeError(n+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,e){try{(e=r("m0Pp")(Function.call,r("EemH").f(Object.prototype,"__proto__").set,2))(t,[]),n=!(t instanceof Array)}catch(t){n=!0}return function(t,r){return o(t,r),n?t.__proto__=r:e(t,r),t}}({},!1):void 0),check:o}},iMoV:function(t,n,r){var e=r("hswa"),i=r("XKFU"),o=r("y3w9"),u=r("apmT");i(i.S+i.F*r("eeVq")((function(){Reflect.defineProperty(e.f({},1,{value:1}),1,{value:2})})),"Reflect",{defineProperty:function(t,n,r){o(t),n=u(n,!0),o(r);try{return e.f(t,n,r),!0}catch(t){return!1}}})},ioFf:function(t,n,r){"use strict";var e=r("dyZX"),i=r("aagx"),o=r("nh4g"),u=r("XKFU"),c=r("KroJ"),a=r("Z6vF").KEY,f=r("eeVq"),s=r("VTer"),l=r("fyDq"),h=r("ylqs"),v=r("K0xU"),p=r("N8g3"),y=r("OnI7"),g=r("1MBn"),d=r("EWmC"),x=r("y3w9"),m=r("0/R4"),b=r("S/j/"),w=r("aCFj"),F=r("apmT"),S=r("RjD/"),E=r("Kuth"),O=r("e7yV"),U=r("EemH"),_=r("JiEa"),P=r("hswa"),M=r("DVgA"),K=U.f,j=P.f,X=O.f,A=e.Symbol,I=e.JSON,T=I&&I.stringify,L=v("_hidden"),R=v("toPrimitive"),N={}.propertyIsEnumerable,k=s("symbol-registry"),D=s("symbols"),V=s("op-symbols"),C=Object.prototype,q="function"==typeof A&&!!_.f,Z=e.QObject,W=!Z||!Z.prototype||!Z.prototype.findChild,G=o&&f((function(){return 7!=E(j({},"a",{get:function(){return j(this,"a",{value:7}).a}})).a}))?function(t,n,r){var e=K(C,n);e&&delete C[n],j(t,n,r),e&&t!==C&&j(C,n,e)}:j,Y=function(t){var n=D[t]=E(A.prototype);return n._k=t,n},B=q&&"symbol"==typeof A.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof A},z=function(t,n,r){return t===C&&z(V,n,r),x(t),n=F(n,!0),x(r),i(D,n)?(r.enumerable?(i(t,L)&&t[L][n]&&(t[L][n]=!1),r=E(r,{enumerable:S(0,!1)})):(i(t,L)||j(t,L,S(1,{})),t[L][n]=!0),G(t,n,r)):j(t,n,r)},J=function(t,n){x(t);for(var r,e=g(n=w(n)),i=0,o=e.length;o>i;)z(t,r=e[i++],n[r]);return t},H=function(t){var n=N.call(this,t=F(t,!0));return!(this===C&&i(D,t)&&!i(V,t))&&(!(n||!i(this,t)||!i(D,t)||i(this,L)&&this[L][t])||n)},Q=function(t,n){if(t=w(t),n=F(n,!0),t!==C||!i(D,n)||i(V,n)){var r=K(t,n);return!r||!i(D,n)||i(t,L)&&t[L][n]||(r.enumerable=!0),r}},$=function(t){for(var n,r=X(w(t)),e=[],o=0;r.length>o;)i(D,n=r[o++])||n==L||n==a||e.push(n);return e},tt=function(t){for(var n,r=t===C,e=X(r?V:w(t)),o=[],u=0;e.length>u;)!i(D,n=e[u++])||r&&!i(C,n)||o.push(D[n]);return o};q||(c((A=function(){if(this instanceof A)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),n=function(r){this===C&&n.call(V,r),i(this,L)&&i(this[L],t)&&(this[L][t]=!1),G(this,t,S(1,r))};return o&&W&&G(C,t,{configurable:!0,set:n}),Y(t)}).prototype,"toString",(function(){return this._k})),U.f=Q,P.f=z,r("kJMx").f=O.f=$,r("UqcF").f=H,_.f=tt,o&&!r("LQAc")&&c(C,"propertyIsEnumerable",H,!0),p.f=function(t){return Y(v(t))}),u(u.G+u.W+u.F*!q,{Symbol:A});for(var nt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;nt.length>rt;)v(nt[rt++]);for(var et=M(v.store),it=0;et.length>it;)y(et[it++]);u(u.S+u.F*!q,"Symbol",{for:function(t){return i(k,t+="")?k[t]:k[t]=A(t)},keyFor:function(t){if(!B(t))throw TypeError(t+" is not a symbol!");for(var n in k)if(k[n]===t)return n},useSetter:function(){W=!0},useSimple:function(){W=!1}}),u(u.S+u.F*!q,"Object",{create:function(t,n){return void 0===n?E(t):J(E(t),n)},defineProperty:z,defineProperties:J,getOwnPropertyDescriptor:Q,getOwnPropertyNames:$,getOwnPropertySymbols:tt});var ot=f((function(){_.f(1)}));u(u.S+u.F*ot,"Object",{getOwnPropertySymbols:function(t){return _.f(b(t))}}),I&&u(u.S+u.F*(!q||f((function(){var t=A();return"[null]"!=T([t])||"{}"!=T({a:t})||"{}"!=T(Object(t))}))),"JSON",{stringify:function(t){for(var n,r,e=[t],i=1;arguments.length>i;)e.push(arguments[i++]);if(r=n=e[1],(m(n)||void 0!==t)&&!B(t))return d(n)||(n=function(t,n){if("function"==typeof r&&(n=r.call(this,t,n)),!B(n))return n}),e[1]=n,T.apply(I,e)}}),A.prototype[R]||r("Mukb")(A.prototype,R,A.prototype.valueOf),l(A,"Symbol"),l(Math,"Math",!0),l(e.JSON,"JSON",!0)},jm62:function(t,n,r){var e=r("XKFU"),i=r("mQtv"),o=r("aCFj"),u=r("EemH"),c=r("8a7r");e(e.S,"Object",{getOwnPropertyDescriptors:function(t){for(var n,r,e=o(t),a=u.f,f=i(e),s={},l=0;f.length>l;)void 0!==(r=a(e,n=f[l++]))&&c(s,n,r);return s}})},jmDH:function(t,n,r){t.exports=!r("KUxP")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},jqX0:function(t,n,r){var e=r("XKFU"),i=r("jtBr");e(e.P+e.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},jtBr:function(t,n,r){"use strict";var e=r("eeVq"),i=Date.prototype.getTime,o=Date.prototype.toISOString,u=function(t){return t>9?t:"0"+t};t.exports=e((function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-50000000000001))}))||!e((function(){o.call(new Date(NaN))}))?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=n<0?"-":n>9999?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+u(t.getUTCMonth()+1)+"-"+u(t.getUTCDate())+"T"+u(t.getUTCHours())+":"+u(t.getUTCMinutes())+":"+u(t.getUTCSeconds())+"."+(r>99?r:"0"+u(r))+"Z"}:o},kJMx:function(t,n,r){var e=r("zhAb"),i=r("4R4u").concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return e(t,i)}},kcoS:function(t,n,r){var e=r("lvtm"),i=Math.pow,o=i(2,-52),u=i(2,-23),c=i(2,127)*(2-u),a=i(2,-126);t.exports=Math.fround||function(t){var n,r,i=Math.abs(t),f=e(t);return i<a?f*(i/a/u+1/o-1/o)*a*u:(r=(n=(1+u/o)*i)-(n-i))>c||r!=r?f*(1/0):f*r}},klPD:function(t,n,r){var e=r("hswa"),i=r("EemH"),o=r("OP3Y"),u=r("aagx"),c=r("XKFU"),a=r("RjD/"),f=r("y3w9"),s=r("0/R4");c(c.S,"Reflect",{set:function t(n,r,c){var l,h,v=arguments.length<4?n:arguments[3],p=i.f(f(n),r);if(!p){if(s(h=o(n)))return t(h,r,c,v);p=a(0)}if(u(p,"value")){if(!1===p.writable||!s(v))return!1;if(l=i.f(v,r)){if(l.get||l.set||!1===l.writable)return!1;l.value=c,e.f(v,r,l)}else e.f(v,r,a(0,c));return!0}return void 0!==p.set&&(p.set.call(v,c),!0)}})},knU9:function(t,n,r){var e=r("XKFU"),i=r("i5dc");i&&e(e.S,"Reflect",{setPrototypeOf:function(t,n){i.check(t,n);try{return i.set(t,n),!0}catch(t){return!1}}})},knhD:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},l0Rn:function(t,n,r){"use strict";var e=r("RYi7"),i=r("vhPU");t.exports=function(t){var n=String(i(this)),r="",o=e(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(n+=n))1&o&&(r+=n);return r}},ln0Z:function(t,n,r){r("fA63"),t.exports=r("g3g5").String.trimRight},ls82:function(t,n,r){var e=function(t){"use strict";var n=Object.prototype,r=n.hasOwnProperty,e="function"==typeof Symbol?Symbol:{},i=e.iterator||"@@iterator",o=e.asyncIterator||"@@asyncIterator",u=e.toStringTag||"@@toStringTag";function c(t,n,r){return Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[n]}try{c({},"")}catch(t){c=function(t,n,r){return t[n]=r}}function a(t,n,r,e){var i=n&&n.prototype instanceof l?n:l,o=Object.create(i.prototype),u=new S(e||[]);return o._invoke=function(t,n,r){var e="suspendedStart";return function(i,o){if("executing"===e)throw new Error("Generator is already running");if("completed"===e){if("throw"===i)throw o;return O()}for(r.method=i,r.arg=o;;){var u=r.delegate;if(u){var c=b(u,r);if(c){if(c===s)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===e)throw e="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);e="executing";var a=f(t,n,r);if("normal"===a.type){if(e=r.done?"completed":"suspendedYield",a.arg===s)continue;return{value:a.arg,done:r.done}}"throw"===a.type&&(e="completed",r.method="throw",r.arg=a.arg)}}}(t,r,u),o}function f(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=a;var s={};function l(){}function h(){}function v(){}var p={};c(p,i,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(E([])));g&&g!==n&&r.call(g,i)&&(p=g);var d=v.prototype=l.prototype=Object.create(p);function x(t){["next","throw","return"].forEach((function(n){c(t,n,(function(t){return this._invoke(n,t)}))}))}function m(t,n){var e;this._invoke=function(i,o){function u(){return new n((function(e,u){!function e(i,o,u,c){var a=f(t[i],t,o);if("throw"!==a.type){var s=a.arg,l=s.value;return l&&"object"==typeof l&&r.call(l,"__await")?n.resolve(l.__await).then((function(t){e("next",t,u,c)}),(function(t){e("throw",t,u,c)})):n.resolve(l).then((function(t){s.value=t,u(s)}),(function(t){return e("throw",t,u,c)}))}c(a.arg)}(i,o,e,u)}))}return e=e?e.then(u,u):u()}}function b(t,n){var r=t.iterator[n.method];if(void 0===r){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=void 0,b(t,n),"throw"===n.method))return s;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return s}var e=f(r,t.iterator,n.arg);if("throw"===e.type)return n.method="throw",n.arg=e.arg,n.delegate=null,s;var i=e.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,s):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,s)}function w(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function F(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(w,this),this.reset(!0)}function E(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var e=-1,o=function n(){for(;++e<t.length;)if(r.call(t,e))return n.value=t[e],n.done=!1,n;return n.value=void 0,n.done=!0,n};return o.next=o}}return{next:O}}function O(){return{value:void 0,done:!0}}return h.prototype=v,c(d,"constructor",v),c(v,"constructor",h),h.displayName=c(v,u,"GeneratorFunction"),t.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===h||"GeneratorFunction"===(n.displayName||n.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,c(t,u,"GeneratorFunction")),t.prototype=Object.create(d),t},t.awrap=function(t){return{__await:t}},x(m.prototype),c(m.prototype,o,(function(){return this})),t.AsyncIterator=m,t.async=function(n,r,e,i,o){void 0===o&&(o=Promise);var u=new m(a(n,r,e,i),o);return t.isGeneratorFunction(r)?u:u.next().then((function(t){return t.done?t.value:u.next()}))},x(d),c(d,u,"Generator"),c(d,i,(function(){return this})),c(d,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var n=[];for(var r in t)n.push(r);return n.reverse(),function r(){for(;n.length;){var e=n.pop();if(e in t)return r.value=e,r.done=!1,r}return r.done=!0,r}},t.values=E,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(F),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function e(r,e){return u.type="throw",u.arg=t,n.next=r,e&&(n.method="next",n.arg=void 0),!!e}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],u=o.completion;if("root"===o.tryLoc)return e("end");if(o.tryLoc<=this.prev){var c=r.call(o,"catchLoc"),a=r.call(o,"finallyLoc");if(c&&a){if(this.prev<o.catchLoc)return e(o.catchLoc,!0);if(this.prev<o.finallyLoc)return e(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return e(o.catchLoc,!0)}else{if(!a)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return e(o.finallyLoc)}}}},abrupt:function(t,n){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=n&&n<=o.finallyLoc&&(o=null);var u=o?o.completion:{};return u.type=t,u.arg=n,o?(this.method="next",this.next=o.finallyLoc,s):this.complete(u)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),s},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),F(r),s}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var i=e.arg;F(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=e}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}},lvtm:function(t,n){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},m0Pp:function(t,n,r){var e=r("2OiF");t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,i){return t.call(n,r,e,i)}}return function(){return t.apply(n,arguments)}}},mGWK:function(t,n,r){"use strict";var e=r("XKFU"),i=r("aCFj"),o=r("RYi7"),u=r("ne8i"),c=[].lastIndexOf,a=!!c&&1/[1].lastIndexOf(1,-0)<0;e(e.P+e.F*(a||!r("LyE8")(c)),"Array",{lastIndexOf:function(t){if(a)return c.apply(this,arguments)||0;var n=i(this),r=u(n.length),e=r-1;for(arguments.length>1&&(e=Math.min(e,o(arguments[1]))),e<0&&(e=r+e);e>=0;e--)if(e in n&&n[e]===t)return e||0;return-1}})},mQtv:function(t,n,r){var e=r("kJMx"),i=r("JiEa"),o=r("y3w9"),u=r("dyZX").Reflect;t.exports=u&&u.ownKeys||function(t){var n=e.f(o(t)),r=i.f;return r?n.concat(r(t)):n}},mYba:function(t,n,r){var e=r("aCFj"),i=r("EemH").f;r("Xtr8")("getOwnPropertyDescriptor",(function(){return function(t,n){return i(e(t),n)}}))},mura:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("preventExtensions",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},nBIS:function(t,n,r){var e=r("0/R4"),i=Math.floor;t.exports=function(t){return!e(t)&&isFinite(t)&&i(t)===t}},nCnK:function(t,n,r){r("7DDg")("Uint32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},nGyu:function(t,n,r){var e=r("K0xU")("unscopables"),i=Array.prototype;null==i[e]&&r("Mukb")(i,e,{}),t.exports=function(t){i[e][t]=!0}},nICZ:function(t,n){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},nIY7:function(t,n,r){"use strict";r("OGtf")("big",(function(t){return function(){return t(this,"big","","")}}))},ne8i:function(t,n,r){var e=r("RYi7"),i=Math.min;t.exports=function(t){return t>0?i(e(t),9007199254740991):0}},nh4g:function(t,n,r){t.exports=!r("eeVq")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},nsiH:function(t,n,r){"use strict";r("OGtf")("fontsize",(function(t){return function(n){return t(this,"font","size",n)}}))},nzyx:function(t,n,r){var e=r("XKFU"),i=r("LVwc");e(e.S+e.F*(i!=Math.expm1),"Math",{expm1:i})},oDIu:function(t,n,r){"use strict";var e=r("XKFU"),i=r("AvRE")(!1);e(e.P,"String",{codePointAt:function(t){return i(this,t)}})},"oZ/O":function(t,n,r){var e=r("XKFU"),i=r("y3w9"),o=Object.preventExtensions;e(e.S,"Reflect",{preventExtensions:function(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},ol8x:function(t,n,r){var e=r("dyZX").navigator;t.exports=e&&e.userAgent||""},pIFo:function(t,n,r){"use strict";var e=r("y3w9"),i=r("S/j/"),o=r("ne8i"),u=r("RYi7"),c=r("A5AN"),a=r("Xxuz"),f=Math.max,s=Math.min,l=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,v=/\$([$&`']|\d\d?)/g;r("IU+Z")("replace",2,(function(t,n,r,p){return[function(e,i){var o=t(this),u=null==e?void 0:e[n];return void 0!==u?u.call(e,o,i):r.call(String(o),e,i)},function(t,n){var i=p(r,t,this,n);if(i.done)return i.value;var l=e(t),h=String(this),v="function"==typeof n;v||(n=String(n));var g=l.global;if(g){var d=l.unicode;l.lastIndex=0}for(var x=[];;){var m=a(l,h);if(null===m)break;if(x.push(m),!g)break;""===String(m[0])&&(l.lastIndex=c(h,o(l.lastIndex),d))}for(var b,w="",F=0,S=0;S<x.length;S++){m=x[S];for(var E=String(m[0]),O=f(s(u(m.index),h.length),0),U=[],_=1;_<m.length;_++)U.push(void 0===(b=m[_])?b:String(b));var P=m.groups;if(v){var M=[E].concat(U,O,h);void 0!==P&&M.push(P);var K=String(n.apply(void 0,M))}else K=y(E,h,O,U,P,n);O>=F&&(w+=h.slice(F,O)+K,F=O+E.length)}return w+h.slice(F)}];function y(t,n,e,o,u,c){var a=e+t.length,f=o.length,s=v;return void 0!==u&&(u=i(u),s=h),r.call(c,s,(function(r,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,e);case"'":return n.slice(a);case"<":c=u[i.slice(1,-1)];break;default:var s=+i;if(0===s)return r;if(s>f){var h=l(s/10);return 0===h?r:h<=f?void 0===o[h-1]?i.charAt(1):o[h-1]+i.charAt(1):r}c=o[s-1]}return void 0===c?"":c}))}}))},pbhE:function(t,n,r){"use strict";var e=r("2OiF");function i(t){var n,r;this.promise=new t((function(t,e){if(void 0!==n||void 0!==r)throw TypeError("Bad Promise constructor");n=t,r=e})),this.resolve=e(n),this.reject=e(r)}t.exports.f=function(t){return new i(t)}},"pp/T":function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},qncB:function(t,n,r){var e=r("XKFU"),i=r("vhPU"),o=r("eeVq"),u=r("/e88"),c="["+u+"]",a=RegExp("^"+c+c+"*"),f=RegExp(c+c+"*$"),s=function(t,n,r){var i={},c=o((function(){return!!u[t]()||"​…"!="​…"[t]()})),a=i[t]=c?n(l):u[t];r&&(i[r]=a),e(e.P+e.F*c,"String",i)},l=s.trim=function(t,n){return t=String(i(t)),1&n&&(t=t.replace(a,"")),2&n&&(t=t.replace(f,"")),t};t.exports=s},quPj:function(t,n,r){var e=r("0/R4"),i=r("LZWt"),o=r("K0xU")("match");t.exports=function(t){var n;return e(t)&&(void 0!==(n=t[o])?!!n:"RegExp"==i(t))}},r1bV:function(t,n,r){r("7DDg")("Uint16",2,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},rE2o:function(t,n,r){r("OnI7")("asyncIterator")},rGqo:function(t,n,r){for(var e=r("yt8O"),i=r("DVgA"),o=r("KroJ"),u=r("dyZX"),c=r("Mukb"),a=r("hPIQ"),f=r("K0xU"),s=f("iterator"),l=f("toStringTag"),h=a.Array,v={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},p=i(v),y=0;y<p.length;y++){var g,d=p[y],x=v[d],m=u[d],b=m&&m.prototype;if(b&&(b[s]||c(b,s,h),b[l]||c(b,l,d),a[d]=h,x))for(g in e)b[g]||o(b,g,e[g],!0)}},rr1i:function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},rvZc:function(t,n,r){"use strict";var e=r("XKFU"),i=r("ne8i"),o=r("0sh+"),u="".endsWith;e(e.P+e.F*r("UUeW")("endsWith"),"String",{endsWith:function(t){var n=o(this,t,"endsWith"),r=arguments.length>1?arguments[1]:void 0,e=i(n.length),c=void 0===r?e:Math.min(i(r),e),a=String(t);return u?u.call(n,a,c):n.slice(c-a.length,c)===a}})},s5qY:function(t,n,r){var e=r("0/R4");t.exports=function(t,n){if(!e(t)||t._t!==n)throw TypeError("Incompatible receiver, "+n+" required!");return t}},sFw1:function(t,n,r){r("7DDg")("Int8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},sMXx:function(t,n,r){"use strict";var e=r("Ugos");r("XKFU")({target:"RegExp",proto:!0,forced:e!==/./.exec},{exec:e})},sbF8:function(t,n,r){var e=r("XKFU"),i=r("nBIS"),o=Math.abs;e(e.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},tUrg:function(t,n,r){"use strict";r("OGtf")("link",(function(t){return function(n){return t(this,"a","href",n)}}))},tuSo:function(t,n,r){r("7DDg")("Int32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},"tyy+":function(t,n,r){var e=r("XKFU"),i=r("11IZ");e(e.G+e.F*(parseFloat!=i),{parseFloat:i})},uhZd:function(t,n,r){var e=r("XKFU"),i=r("EemH").f,o=r("y3w9");e(e.S,"Reflect",{deleteProperty:function(t,n){var r=i(o(t),n);return!(r&&!r.configurable)&&delete t[n]}})},upKx:function(t,n,r){"use strict";var e=r("S/j/"),i=r("d/Gc"),o=r("ne8i");t.exports=[].copyWithin||function(t,n){var r=e(this),u=o(r.length),c=i(t,u),a=i(n,u),f=arguments.length>2?arguments[2]:void 0,s=Math.min((void 0===f?u:i(f,u))-a,u-c),l=1;for(a<c&&c<a+s&&(l=-1,a+=s-1,c+=s-1);s-- >0;)a in r?r[c]=r[a]:delete r[c],c+=l,a+=l;return r}},vKrd:function(t,n,r){var e=r("y3w9"),i=r("0/R4"),o=r("pbhE");t.exports=function(t,n){if(e(t),i(n)&&n.constructor===t)return n;var r=o.f(t);return(0,r.resolve)(n),r.promise}},vhPU:function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},vvmO:function(t,n,r){var e=r("LZWt");t.exports=function(t,n){if("number"!=typeof t&&"Number"!=e(t))throw TypeError(n);return+t}},w2a5:function(t,n,r){var e=r("aCFj"),i=r("ne8i"),o=r("d/Gc");t.exports=function(t){return function(n,r,u){var c,a=e(n),f=i(a.length),s=o(u,f);if(t&&r!=r){for(;f>s;)if((c=a[s++])!=c)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===r)return t||s||0;return!t&&-1}}},wCsR:function(t,n,r){"use strict";var e=r("ZD67"),i=r("s5qY");r("4LiD")("WeakSet",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return e.def(i(this,"WeakSet"),t,!0)}},e,!1,!0)},wDwx:function(t,n,r){r("rE2o"),t.exports=r("N8g3").f("asyncIterator")},wYy3:function(t,n,r){r("9XZr"),t.exports=r("g3g5").String.padStart},wmvG:function(t,n,r){"use strict";var e=r("hswa").f,i=r("Kuth"),o=r("3Lyj"),u=r("m0Pp"),c=r("9gX7"),a=r("SlkY"),f=r("Afnz"),s=r("1TsA"),l=r("elZq"),h=r("nh4g"),v=r("Z6vF").fastKey,p=r("s5qY"),y=h?"_s":"size",g=function(t,n){var r,e=v(n);if("F"!==e)return t._i[e];for(r=t._f;r;r=r.n)if(r.k==n)return r};t.exports={getConstructor:function(t,n,r,f){var s=t((function(t,e){c(t,s,n,"_i"),t._t=n,t._i=i(null),t._f=void 0,t._l=void 0,t[y]=0,null!=e&&a(e,r,t[f],t)}));return o(s.prototype,{clear:function(){for(var t=p(this,n),r=t._i,e=t._f;e;e=e.n)e.r=!0,e.p&&(e.p=e.p.n=void 0),delete r[e.i];t._f=t._l=void 0,t[y]=0},delete:function(t){var r=p(this,n),e=g(r,t);if(e){var i=e.n,o=e.p;delete r._i[e.i],e.r=!0,o&&(o.n=i),i&&(i.p=o),r._f==e&&(r._f=i),r._l==e&&(r._l=o),r[y]--}return!!e},forEach:function(t){p(this,n);for(var r,e=u(t,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(e(r.v,r.k,this);r&&r.r;)r=r.p},has:function(t){return!!g(p(this,n),t)}}),h&&e(s.prototype,"size",{get:function(){return p(this,n)[y]}}),s},def:function(t,n,r){var e,i,o=g(t,n);return o?o.v=r:(t._l=o={i:i=v(n,!0),k:n,v:r,p:e=t._l,n:void 0,r:!1},t._f||(t._f=o),e&&(e.n=o),t[y]++,"F"!==i&&(t._i[i]=o)),t},getEntry:g,setStrong:function(t,n,r){f(t,n,(function(t,r){this._t=p(t,n),this._k=r,this._l=void 0}),(function(){for(var t=this._k,n=this._l;n&&n.r;)n=n.p;return this._t&&(this._l=n=n?n.n:this._t._f)?s(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(this._t=void 0,s(1))}),r?"entries":"values",!r,!0),l(n)}}},x8Yj:function(t,n,r){var e=r("XKFU"),i=r("LVwc"),o=Math.exp;e(e.S,"Math",{tanh:function(t){var n=i(t=+t),r=i(-t);return n==1/0?1:r==1/0?-1:(n-r)/(o(t)+o(-t))}})},x8ZO:function(t,n,r){var e=r("XKFU"),i=Math.abs;e(e.S,"Math",{hypot:function(t,n){for(var r,e,o=0,u=0,c=arguments.length,a=0;u<c;)a<(r=i(arguments[u++]))?(o=o*(e=a/r)*e+1,a=r):o+=r>0?(e=r/a)*e:r;return a===1/0?1/0:a*Math.sqrt(o)}})},"xF/b":function(t,n,r){"use strict";var e=r("EWmC"),i=r("0/R4"),o=r("ne8i"),u=r("m0Pp"),c=r("K0xU")("isConcatSpreadable");t.exports=function t(n,r,a,f,s,l,h,v){for(var p,y,g=s,d=0,x=!!h&&u(h,v,3);d<f;){if(d in a){if(p=x?x(a[d],d,r):a[d],y=!1,i(p)&&(y=void 0!==(y=p[c])?!!y:e(p)),y&&l>0)g=t(n,r,p,o(p.length),g,l-1)-1;else{if(g>=9007199254740991)throw TypeError();n[g]=p}g++}d++}return g}},xfY5:function(t,n,r){"use strict";var e=r("dyZX"),i=r("aagx"),o=r("LZWt"),u=r("Xbzi"),c=r("apmT"),a=r("eeVq"),f=r("kJMx").f,s=r("EemH").f,l=r("hswa").f,h=r("qncB").trim,v=e.Number,p=v,y=v.prototype,g="Number"==o(r("Kuth")(y)),d="trim"in String.prototype,x=function(t){var n=c(t,!1);if("string"==typeof n&&n.length>2){var r,e,i,o=(n=d?n.trim():h(n,3)).charCodeAt(0);if(43===o||45===o){if(88===(r=n.charCodeAt(2))||120===r)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:e=2,i=49;break;case 79:case 111:e=8,i=55;break;default:return+n}for(var u,a=n.slice(2),f=0,s=a.length;f<s;f++)if((u=a.charCodeAt(f))<48||u>i)return NaN;return parseInt(a,e)}}return+n};if(!v(" 0o1")||!v("0b1")||v("+0x1")){v=function(t){var n=arguments.length<1?0:t,r=this;return r instanceof v&&(g?a((function(){y.valueOf.call(r)})):"Number"!=o(r))?u(new p(x(n)),r,v):x(n)};for(var m,b=r("nh4g")?f(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;b.length>w;w++)i(p,m=b[w])&&!i(v,m)&&l(v,m,s(p,m));v.prototype=y,y.constructor=v,r("KroJ")(e,"Number",v)}},xm80:function(t,n,r){"use strict";var e=r("XKFU"),i=r("D4iV"),o=r("7Qtz"),u=r("y3w9"),c=r("d/Gc"),a=r("ne8i"),f=r("0/R4"),s=r("dyZX").ArrayBuffer,l=r("69bn"),h=o.ArrayBuffer,v=o.DataView,p=i.ABV&&s.isView,y=h.prototype.slice,g=i.VIEW;e(e.G+e.W+e.F*(s!==h),{ArrayBuffer:h}),e(e.S+e.F*!i.CONSTR,"ArrayBuffer",{isView:function(t){return p&&p(t)||f(t)&&g in t}}),e(e.P+e.U+e.F*r("eeVq")((function(){return!new h(2).slice(1,void 0).byteLength})),"ArrayBuffer",{slice:function(t,n){if(void 0!==y&&void 0===n)return y.call(u(this),t);for(var r=u(this).byteLength,e=c(t,r),i=c(void 0===n?r:n,r),o=new(l(this,h))(a(i-e)),f=new v(this),s=new v(o),p=0;e<i;)s.setUint8(p++,f.getUint8(e++));return o}}),r("elZq")("ArrayBuffer")},xpiv:function(t,n,r){var e=r("XKFU");e(e.S,"Reflect",{ownKeys:r("mQtv")})},xpql:function(t,n,r){t.exports=!r("nh4g")&&!r("eeVq")((function(){return 7!=Object.defineProperty(r("Iw71")("div"),"a",{get:function(){return 7}}).a}))},y3w9:function(t,n,r){var e=r("0/R4");t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},yM4b:function(t,n,r){var e=r("K0xU")("toPrimitive"),i=Date.prototype;e in i||r("Mukb")(i,e,r("g4EE"))},ylqs:function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+e).toString(36))}},yt8O:function(t,n,r){"use strict";var e=r("nGyu"),i=r("1TsA"),o=r("hPIQ"),u=r("aCFj");t.exports=r("Afnz")(Array,"Array",(function(t,n){this._t=u(t),this._i=0,this._k=n}),(function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):i(0,"keys"==n?r:"values"==n?t[r]:[r,t[r]])}),"values"),o.Arguments=o.Array,e("keys"),e("values"),e("entries")},z2o2:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("seal",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},zFFn:function(t,n,r){r("hhXQ"),t.exports=r("g3g5").Object.values},zRwo:function(t,n,r){var e=r("6FMO");t.exports=function(t,n){return new(e(t))(n)}},zhAb:function(t,n,r){var e=r("aagx"),i=r("aCFj"),o=r("w2a5")(!1),u=r("YTvA")("IE_PROTO");t.exports=function(t,n){var r,c=i(t),a=0,f=[];for(r in c)r!=u&&e(c,r)&&f.push(r);for(;n.length>a;)e(c,r=n[a++])&&(~o(f,r)||f.push(r));return f}}});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "/public/js/";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./node_modules/@babel/polyfill/lib/index.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./node_modules/@babel/polyfill/lib/index.js":
90
+ /*!***************************************************!*\
91
+ !*** ./node_modules/@babel/polyfill/lib/index.js ***!
92
+ \***************************************************/
93
+ /*! no static exports found */
94
+ /***/ (function(module, exports, __webpack_require__) {
95
+
96
+ "use strict";
97
+
98
+
99
+ __webpack_require__(/*! ./noConflict */ "./node_modules/@babel/polyfill/lib/noConflict.js");
100
+
101
+ var _global = _interopRequireDefault(__webpack_require__(/*! core-js/library/fn/global */ "./node_modules/core-js/library/fn/global.js"));
102
+
103
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
104
+
105
+ if (_global["default"]._babelPolyfill && typeof console !== "undefined" && console.warn) {
106
+ console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended " + "and may have consequences if different versions of the polyfills are applied sequentially. " + "If you do need to load the polyfill more than once, use @babel/polyfill/noConflict " + "instead to bypass the warning.");
107
+ }
108
+
109
+ _global["default"]._babelPolyfill = true;
110
+
111
+ /***/ }),
112
+
113
+ /***/ "./node_modules/@babel/polyfill/lib/noConflict.js":
114
+ /*!********************************************************!*\
115
+ !*** ./node_modules/@babel/polyfill/lib/noConflict.js ***!
116
+ \********************************************************/
117
+ /*! no static exports found */
118
+ /***/ (function(module, exports, __webpack_require__) {
119
+
120
+ "use strict";
121
+
122
+
123
+ __webpack_require__(/*! core-js/es6 */ "./node_modules/core-js/es6/index.js");
124
+
125
+ __webpack_require__(/*! core-js/fn/array/includes */ "./node_modules/core-js/fn/array/includes.js");
126
+
127
+ __webpack_require__(/*! core-js/fn/array/flat-map */ "./node_modules/core-js/fn/array/flat-map.js");
128
+
129
+ __webpack_require__(/*! core-js/fn/string/pad-start */ "./node_modules/core-js/fn/string/pad-start.js");
130
+
131
+ __webpack_require__(/*! core-js/fn/string/pad-end */ "./node_modules/core-js/fn/string/pad-end.js");
132
+
133
+ __webpack_require__(/*! core-js/fn/string/trim-start */ "./node_modules/core-js/fn/string/trim-start.js");
134
+
135
+ __webpack_require__(/*! core-js/fn/string/trim-end */ "./node_modules/core-js/fn/string/trim-end.js");
136
+
137
+ __webpack_require__(/*! core-js/fn/symbol/async-iterator */ "./node_modules/core-js/fn/symbol/async-iterator.js");
138
+
139
+ __webpack_require__(/*! core-js/fn/object/get-own-property-descriptors */ "./node_modules/core-js/fn/object/get-own-property-descriptors.js");
140
+
141
+ __webpack_require__(/*! core-js/fn/object/values */ "./node_modules/core-js/fn/object/values.js");
142
+
143
+ __webpack_require__(/*! core-js/fn/object/entries */ "./node_modules/core-js/fn/object/entries.js");
144
+
145
+ __webpack_require__(/*! core-js/fn/promise/finally */ "./node_modules/core-js/fn/promise/finally.js");
146
+
147
+ __webpack_require__(/*! core-js/web */ "./node_modules/core-js/web/index.js");
148
+
149
+ __webpack_require__(/*! regenerator-runtime/runtime */ "./node_modules/regenerator-runtime/runtime.js");
150
+
151
+ /***/ }),
152
+
153
+ /***/ "./node_modules/core-js/es6/index.js":
154
+ /*!*******************************************!*\
155
+ !*** ./node_modules/core-js/es6/index.js ***!
156
+ \*******************************************/
157
+ /*! no static exports found */
158
+ /***/ (function(module, exports, __webpack_require__) {
159
+
160
+ __webpack_require__(/*! ../modules/es6.symbol */ "./node_modules/core-js/modules/es6.symbol.js");
161
+ __webpack_require__(/*! ../modules/es6.object.create */ "./node_modules/core-js/modules/es6.object.create.js");
162
+ __webpack_require__(/*! ../modules/es6.object.define-property */ "./node_modules/core-js/modules/es6.object.define-property.js");
163
+ __webpack_require__(/*! ../modules/es6.object.define-properties */ "./node_modules/core-js/modules/es6.object.define-properties.js");
164
+ __webpack_require__(/*! ../modules/es6.object.get-own-property-descriptor */ "./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js");
165
+ __webpack_require__(/*! ../modules/es6.object.get-prototype-of */ "./node_modules/core-js/modules/es6.object.get-prototype-of.js");
166
+ __webpack_require__(/*! ../modules/es6.object.keys */ "./node_modules/core-js/modules/es6.object.keys.js");
167
+ __webpack_require__(/*! ../modules/es6.object.get-own-property-names */ "./node_modules/core-js/modules/es6.object.get-own-property-names.js");
168
+ __webpack_require__(/*! ../modules/es6.object.freeze */ "./node_modules/core-js/modules/es6.object.freeze.js");
169
+ __webpack_require__(/*! ../modules/es6.object.seal */ "./node_modules/core-js/modules/es6.object.seal.js");
170
+ __webpack_require__(/*! ../modules/es6.object.prevent-extensions */ "./node_modules/core-js/modules/es6.object.prevent-extensions.js");
171
+ __webpack_require__(/*! ../modules/es6.object.is-frozen */ "./node_modules/core-js/modules/es6.object.is-frozen.js");
172
+ __webpack_require__(/*! ../modules/es6.object.is-sealed */ "./node_modules/core-js/modules/es6.object.is-sealed.js");
173
+ __webpack_require__(/*! ../modules/es6.object.is-extensible */ "./node_modules/core-js/modules/es6.object.is-extensible.js");
174
+ __webpack_require__(/*! ../modules/es6.object.assign */ "./node_modules/core-js/modules/es6.object.assign.js");
175
+ __webpack_require__(/*! ../modules/es6.object.is */ "./node_modules/core-js/modules/es6.object.is.js");
176
+ __webpack_require__(/*! ../modules/es6.object.set-prototype-of */ "./node_modules/core-js/modules/es6.object.set-prototype-of.js");
177
+ __webpack_require__(/*! ../modules/es6.object.to-string */ "./node_modules/core-js/modules/es6.object.to-string.js");
178
+ __webpack_require__(/*! ../modules/es6.function.bind */ "./node_modules/core-js/modules/es6.function.bind.js");
179
+ __webpack_require__(/*! ../modules/es6.function.name */ "./node_modules/core-js/modules/es6.function.name.js");
180
+ __webpack_require__(/*! ../modules/es6.function.has-instance */ "./node_modules/core-js/modules/es6.function.has-instance.js");
181
+ __webpack_require__(/*! ../modules/es6.parse-int */ "./node_modules/core-js/modules/es6.parse-int.js");
182
+ __webpack_require__(/*! ../modules/es6.parse-float */ "./node_modules/core-js/modules/es6.parse-float.js");
183
+ __webpack_require__(/*! ../modules/es6.number.constructor */ "./node_modules/core-js/modules/es6.number.constructor.js");
184
+ __webpack_require__(/*! ../modules/es6.number.to-fixed */ "./node_modules/core-js/modules/es6.number.to-fixed.js");
185
+ __webpack_require__(/*! ../modules/es6.number.to-precision */ "./node_modules/core-js/modules/es6.number.to-precision.js");
186
+ __webpack_require__(/*! ../modules/es6.number.epsilon */ "./node_modules/core-js/modules/es6.number.epsilon.js");
187
+ __webpack_require__(/*! ../modules/es6.number.is-finite */ "./node_modules/core-js/modules/es6.number.is-finite.js");
188
+ __webpack_require__(/*! ../modules/es6.number.is-integer */ "./node_modules/core-js/modules/es6.number.is-integer.js");
189
+ __webpack_require__(/*! ../modules/es6.number.is-nan */ "./node_modules/core-js/modules/es6.number.is-nan.js");
190
+ __webpack_require__(/*! ../modules/es6.number.is-safe-integer */ "./node_modules/core-js/modules/es6.number.is-safe-integer.js");
191
+ __webpack_require__(/*! ../modules/es6.number.max-safe-integer */ "./node_modules/core-js/modules/es6.number.max-safe-integer.js");
192
+ __webpack_require__(/*! ../modules/es6.number.min-safe-integer */ "./node_modules/core-js/modules/es6.number.min-safe-integer.js");
193
+ __webpack_require__(/*! ../modules/es6.number.parse-float */ "./node_modules/core-js/modules/es6.number.parse-float.js");
194
+ __webpack_require__(/*! ../modules/es6.number.parse-int */ "./node_modules/core-js/modules/es6.number.parse-int.js");
195
+ __webpack_require__(/*! ../modules/es6.math.acosh */ "./node_modules/core-js/modules/es6.math.acosh.js");
196
+ __webpack_require__(/*! ../modules/es6.math.asinh */ "./node_modules/core-js/modules/es6.math.asinh.js");
197
+ __webpack_require__(/*! ../modules/es6.math.atanh */ "./node_modules/core-js/modules/es6.math.atanh.js");
198
+ __webpack_require__(/*! ../modules/es6.math.cbrt */ "./node_modules/core-js/modules/es6.math.cbrt.js");
199
+ __webpack_require__(/*! ../modules/es6.math.clz32 */ "./node_modules/core-js/modules/es6.math.clz32.js");
200
+ __webpack_require__(/*! ../modules/es6.math.cosh */ "./node_modules/core-js/modules/es6.math.cosh.js");
201
+ __webpack_require__(/*! ../modules/es6.math.expm1 */ "./node_modules/core-js/modules/es6.math.expm1.js");
202
+ __webpack_require__(/*! ../modules/es6.math.fround */ "./node_modules/core-js/modules/es6.math.fround.js");
203
+ __webpack_require__(/*! ../modules/es6.math.hypot */ "./node_modules/core-js/modules/es6.math.hypot.js");
204
+ __webpack_require__(/*! ../modules/es6.math.imul */ "./node_modules/core-js/modules/es6.math.imul.js");
205
+ __webpack_require__(/*! ../modules/es6.math.log10 */ "./node_modules/core-js/modules/es6.math.log10.js");
206
+ __webpack_require__(/*! ../modules/es6.math.log1p */ "./node_modules/core-js/modules/es6.math.log1p.js");
207
+ __webpack_require__(/*! ../modules/es6.math.log2 */ "./node_modules/core-js/modules/es6.math.log2.js");
208
+ __webpack_require__(/*! ../modules/es6.math.sign */ "./node_modules/core-js/modules/es6.math.sign.js");
209
+ __webpack_require__(/*! ../modules/es6.math.sinh */ "./node_modules/core-js/modules/es6.math.sinh.js");
210
+ __webpack_require__(/*! ../modules/es6.math.tanh */ "./node_modules/core-js/modules/es6.math.tanh.js");
211
+ __webpack_require__(/*! ../modules/es6.math.trunc */ "./node_modules/core-js/modules/es6.math.trunc.js");
212
+ __webpack_require__(/*! ../modules/es6.string.from-code-point */ "./node_modules/core-js/modules/es6.string.from-code-point.js");
213
+ __webpack_require__(/*! ../modules/es6.string.raw */ "./node_modules/core-js/modules/es6.string.raw.js");
214
+ __webpack_require__(/*! ../modules/es6.string.trim */ "./node_modules/core-js/modules/es6.string.trim.js");
215
+ __webpack_require__(/*! ../modules/es6.string.iterator */ "./node_modules/core-js/modules/es6.string.iterator.js");
216
+ __webpack_require__(/*! ../modules/es6.string.code-point-at */ "./node_modules/core-js/modules/es6.string.code-point-at.js");
217
+ __webpack_require__(/*! ../modules/es6.string.ends-with */ "./node_modules/core-js/modules/es6.string.ends-with.js");
218
+ __webpack_require__(/*! ../modules/es6.string.includes */ "./node_modules/core-js/modules/es6.string.includes.js");
219
+ __webpack_require__(/*! ../modules/es6.string.repeat */ "./node_modules/core-js/modules/es6.string.repeat.js");
220
+ __webpack_require__(/*! ../modules/es6.string.starts-with */ "./node_modules/core-js/modules/es6.string.starts-with.js");
221
+ __webpack_require__(/*! ../modules/es6.string.anchor */ "./node_modules/core-js/modules/es6.string.anchor.js");
222
+ __webpack_require__(/*! ../modules/es6.string.big */ "./node_modules/core-js/modules/es6.string.big.js");
223
+ __webpack_require__(/*! ../modules/es6.string.blink */ "./node_modules/core-js/modules/es6.string.blink.js");
224
+ __webpack_require__(/*! ../modules/es6.string.bold */ "./node_modules/core-js/modules/es6.string.bold.js");
225
+ __webpack_require__(/*! ../modules/es6.string.fixed */ "./node_modules/core-js/modules/es6.string.fixed.js");
226
+ __webpack_require__(/*! ../modules/es6.string.fontcolor */ "./node_modules/core-js/modules/es6.string.fontcolor.js");
227
+ __webpack_require__(/*! ../modules/es6.string.fontsize */ "./node_modules/core-js/modules/es6.string.fontsize.js");
228
+ __webpack_require__(/*! ../modules/es6.string.italics */ "./node_modules/core-js/modules/es6.string.italics.js");
229
+ __webpack_require__(/*! ../modules/es6.string.link */ "./node_modules/core-js/modules/es6.string.link.js");
230
+ __webpack_require__(/*! ../modules/es6.string.small */ "./node_modules/core-js/modules/es6.string.small.js");
231
+ __webpack_require__(/*! ../modules/es6.string.strike */ "./node_modules/core-js/modules/es6.string.strike.js");
232
+ __webpack_require__(/*! ../modules/es6.string.sub */ "./node_modules/core-js/modules/es6.string.sub.js");
233
+ __webpack_require__(/*! ../modules/es6.string.sup */ "./node_modules/core-js/modules/es6.string.sup.js");
234
+ __webpack_require__(/*! ../modules/es6.date.now */ "./node_modules/core-js/modules/es6.date.now.js");
235
+ __webpack_require__(/*! ../modules/es6.date.to-json */ "./node_modules/core-js/modules/es6.date.to-json.js");
236
+ __webpack_require__(/*! ../modules/es6.date.to-iso-string */ "./node_modules/core-js/modules/es6.date.to-iso-string.js");
237
+ __webpack_require__(/*! ../modules/es6.date.to-string */ "./node_modules/core-js/modules/es6.date.to-string.js");
238
+ __webpack_require__(/*! ../modules/es6.date.to-primitive */ "./node_modules/core-js/modules/es6.date.to-primitive.js");
239
+ __webpack_require__(/*! ../modules/es6.array.is-array */ "./node_modules/core-js/modules/es6.array.is-array.js");
240
+ __webpack_require__(/*! ../modules/es6.array.from */ "./node_modules/core-js/modules/es6.array.from.js");
241
+ __webpack_require__(/*! ../modules/es6.array.of */ "./node_modules/core-js/modules/es6.array.of.js");
242
+ __webpack_require__(/*! ../modules/es6.array.join */ "./node_modules/core-js/modules/es6.array.join.js");
243
+ __webpack_require__(/*! ../modules/es6.array.slice */ "./node_modules/core-js/modules/es6.array.slice.js");
244
+ __webpack_require__(/*! ../modules/es6.array.sort */ "./node_modules/core-js/modules/es6.array.sort.js");
245
+ __webpack_require__(/*! ../modules/es6.array.for-each */ "./node_modules/core-js/modules/es6.array.for-each.js");
246
+ __webpack_require__(/*! ../modules/es6.array.map */ "./node_modules/core-js/modules/es6.array.map.js");
247
+ __webpack_require__(/*! ../modules/es6.array.filter */ "./node_modules/core-js/modules/es6.array.filter.js");
248
+ __webpack_require__(/*! ../modules/es6.array.some */ "./node_modules/core-js/modules/es6.array.some.js");
249
+ __webpack_require__(/*! ../modules/es6.array.every */ "./node_modules/core-js/modules/es6.array.every.js");
250
+ __webpack_require__(/*! ../modules/es6.array.reduce */ "./node_modules/core-js/modules/es6.array.reduce.js");
251
+ __webpack_require__(/*! ../modules/es6.array.reduce-right */ "./node_modules/core-js/modules/es6.array.reduce-right.js");
252
+ __webpack_require__(/*! ../modules/es6.array.index-of */ "./node_modules/core-js/modules/es6.array.index-of.js");
253
+ __webpack_require__(/*! ../modules/es6.array.last-index-of */ "./node_modules/core-js/modules/es6.array.last-index-of.js");
254
+ __webpack_require__(/*! ../modules/es6.array.copy-within */ "./node_modules/core-js/modules/es6.array.copy-within.js");
255
+ __webpack_require__(/*! ../modules/es6.array.fill */ "./node_modules/core-js/modules/es6.array.fill.js");
256
+ __webpack_require__(/*! ../modules/es6.array.find */ "./node_modules/core-js/modules/es6.array.find.js");
257
+ __webpack_require__(/*! ../modules/es6.array.find-index */ "./node_modules/core-js/modules/es6.array.find-index.js");
258
+ __webpack_require__(/*! ../modules/es6.array.species */ "./node_modules/core-js/modules/es6.array.species.js");
259
+ __webpack_require__(/*! ../modules/es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js");
260
+ __webpack_require__(/*! ../modules/es6.regexp.constructor */ "./node_modules/core-js/modules/es6.regexp.constructor.js");
261
+ __webpack_require__(/*! ../modules/es6.regexp.exec */ "./node_modules/core-js/modules/es6.regexp.exec.js");
262
+ __webpack_require__(/*! ../modules/es6.regexp.to-string */ "./node_modules/core-js/modules/es6.regexp.to-string.js");
263
+ __webpack_require__(/*! ../modules/es6.regexp.flags */ "./node_modules/core-js/modules/es6.regexp.flags.js");
264
+ __webpack_require__(/*! ../modules/es6.regexp.match */ "./node_modules/core-js/modules/es6.regexp.match.js");
265
+ __webpack_require__(/*! ../modules/es6.regexp.replace */ "./node_modules/core-js/modules/es6.regexp.replace.js");
266
+ __webpack_require__(/*! ../modules/es6.regexp.search */ "./node_modules/core-js/modules/es6.regexp.search.js");
267
+ __webpack_require__(/*! ../modules/es6.regexp.split */ "./node_modules/core-js/modules/es6.regexp.split.js");
268
+ __webpack_require__(/*! ../modules/es6.promise */ "./node_modules/core-js/modules/es6.promise.js");
269
+ __webpack_require__(/*! ../modules/es6.map */ "./node_modules/core-js/modules/es6.map.js");
270
+ __webpack_require__(/*! ../modules/es6.set */ "./node_modules/core-js/modules/es6.set.js");
271
+ __webpack_require__(/*! ../modules/es6.weak-map */ "./node_modules/core-js/modules/es6.weak-map.js");
272
+ __webpack_require__(/*! ../modules/es6.weak-set */ "./node_modules/core-js/modules/es6.weak-set.js");
273
+ __webpack_require__(/*! ../modules/es6.typed.array-buffer */ "./node_modules/core-js/modules/es6.typed.array-buffer.js");
274
+ __webpack_require__(/*! ../modules/es6.typed.data-view */ "./node_modules/core-js/modules/es6.typed.data-view.js");
275
+ __webpack_require__(/*! ../modules/es6.typed.int8-array */ "./node_modules/core-js/modules/es6.typed.int8-array.js");
276
+ __webpack_require__(/*! ../modules/es6.typed.uint8-array */ "./node_modules/core-js/modules/es6.typed.uint8-array.js");
277
+ __webpack_require__(/*! ../modules/es6.typed.uint8-clamped-array */ "./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js");
278
+ __webpack_require__(/*! ../modules/es6.typed.int16-array */ "./node_modules/core-js/modules/es6.typed.int16-array.js");
279
+ __webpack_require__(/*! ../modules/es6.typed.uint16-array */ "./node_modules/core-js/modules/es6.typed.uint16-array.js");
280
+ __webpack_require__(/*! ../modules/es6.typed.int32-array */ "./node_modules/core-js/modules/es6.typed.int32-array.js");
281
+ __webpack_require__(/*! ../modules/es6.typed.uint32-array */ "./node_modules/core-js/modules/es6.typed.uint32-array.js");
282
+ __webpack_require__(/*! ../modules/es6.typed.float32-array */ "./node_modules/core-js/modules/es6.typed.float32-array.js");
283
+ __webpack_require__(/*! ../modules/es6.typed.float64-array */ "./node_modules/core-js/modules/es6.typed.float64-array.js");
284
+ __webpack_require__(/*! ../modules/es6.reflect.apply */ "./node_modules/core-js/modules/es6.reflect.apply.js");
285
+ __webpack_require__(/*! ../modules/es6.reflect.construct */ "./node_modules/core-js/modules/es6.reflect.construct.js");
286
+ __webpack_require__(/*! ../modules/es6.reflect.define-property */ "./node_modules/core-js/modules/es6.reflect.define-property.js");
287
+ __webpack_require__(/*! ../modules/es6.reflect.delete-property */ "./node_modules/core-js/modules/es6.reflect.delete-property.js");
288
+ __webpack_require__(/*! ../modules/es6.reflect.enumerate */ "./node_modules/core-js/modules/es6.reflect.enumerate.js");
289
+ __webpack_require__(/*! ../modules/es6.reflect.get */ "./node_modules/core-js/modules/es6.reflect.get.js");
290
+ __webpack_require__(/*! ../modules/es6.reflect.get-own-property-descriptor */ "./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js");
291
+ __webpack_require__(/*! ../modules/es6.reflect.get-prototype-of */ "./node_modules/core-js/modules/es6.reflect.get-prototype-of.js");
292
+ __webpack_require__(/*! ../modules/es6.reflect.has */ "./node_modules/core-js/modules/es6.reflect.has.js");
293
+ __webpack_require__(/*! ../modules/es6.reflect.is-extensible */ "./node_modules/core-js/modules/es6.reflect.is-extensible.js");
294
+ __webpack_require__(/*! ../modules/es6.reflect.own-keys */ "./node_modules/core-js/modules/es6.reflect.own-keys.js");
295
+ __webpack_require__(/*! ../modules/es6.reflect.prevent-extensions */ "./node_modules/core-js/modules/es6.reflect.prevent-extensions.js");
296
+ __webpack_require__(/*! ../modules/es6.reflect.set */ "./node_modules/core-js/modules/es6.reflect.set.js");
297
+ __webpack_require__(/*! ../modules/es6.reflect.set-prototype-of */ "./node_modules/core-js/modules/es6.reflect.set-prototype-of.js");
298
+ module.exports = __webpack_require__(/*! ../modules/_core */ "./node_modules/core-js/modules/_core.js");
299
+
300
+
301
+ /***/ }),
302
+
303
+ /***/ "./node_modules/core-js/fn/array/flat-map.js":
304
+ /*!***************************************************!*\
305
+ !*** ./node_modules/core-js/fn/array/flat-map.js ***!
306
+ \***************************************************/
307
+ /*! no static exports found */
308
+ /***/ (function(module, exports, __webpack_require__) {
309
+
310
+ __webpack_require__(/*! ../../modules/es7.array.flat-map */ "./node_modules/core-js/modules/es7.array.flat-map.js");
311
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Array.flatMap;
312
+
313
+
314
+ /***/ }),
315
+
316
+ /***/ "./node_modules/core-js/fn/array/includes.js":
317
+ /*!***************************************************!*\
318
+ !*** ./node_modules/core-js/fn/array/includes.js ***!
319
+ \***************************************************/
320
+ /*! no static exports found */
321
+ /***/ (function(module, exports, __webpack_require__) {
322
+
323
+ __webpack_require__(/*! ../../modules/es7.array.includes */ "./node_modules/core-js/modules/es7.array.includes.js");
324
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Array.includes;
325
+
326
+
327
+ /***/ }),
328
+
329
+ /***/ "./node_modules/core-js/fn/object/entries.js":
330
+ /*!***************************************************!*\
331
+ !*** ./node_modules/core-js/fn/object/entries.js ***!
332
+ \***************************************************/
333
+ /*! no static exports found */
334
+ /***/ (function(module, exports, __webpack_require__) {
335
+
336
+ __webpack_require__(/*! ../../modules/es7.object.entries */ "./node_modules/core-js/modules/es7.object.entries.js");
337
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Object.entries;
338
+
339
+
340
+ /***/ }),
341
+
342
+ /***/ "./node_modules/core-js/fn/object/get-own-property-descriptors.js":
343
+ /*!************************************************************************!*\
344
+ !*** ./node_modules/core-js/fn/object/get-own-property-descriptors.js ***!
345
+ \************************************************************************/
346
+ /*! no static exports found */
347
+ /***/ (function(module, exports, __webpack_require__) {
348
+
349
+ __webpack_require__(/*! ../../modules/es7.object.get-own-property-descriptors */ "./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js");
350
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Object.getOwnPropertyDescriptors;
351
+
352
+
353
+ /***/ }),
354
+
355
+ /***/ "./node_modules/core-js/fn/object/values.js":
356
+ /*!**************************************************!*\
357
+ !*** ./node_modules/core-js/fn/object/values.js ***!
358
+ \**************************************************/
359
+ /*! no static exports found */
360
+ /***/ (function(module, exports, __webpack_require__) {
361
+
362
+ __webpack_require__(/*! ../../modules/es7.object.values */ "./node_modules/core-js/modules/es7.object.values.js");
363
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Object.values;
364
+
365
+
366
+ /***/ }),
367
+
368
+ /***/ "./node_modules/core-js/fn/promise/finally.js":
369
+ /*!****************************************************!*\
370
+ !*** ./node_modules/core-js/fn/promise/finally.js ***!
371
+ \****************************************************/
372
+ /*! no static exports found */
373
+ /***/ (function(module, exports, __webpack_require__) {
374
+
375
+ "use strict";
376
+
377
+ __webpack_require__(/*! ../../modules/es6.promise */ "./node_modules/core-js/modules/es6.promise.js");
378
+ __webpack_require__(/*! ../../modules/es7.promise.finally */ "./node_modules/core-js/modules/es7.promise.finally.js");
379
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Promise['finally'];
380
+
381
+
382
+ /***/ }),
383
+
384
+ /***/ "./node_modules/core-js/fn/string/pad-end.js":
385
+ /*!***************************************************!*\
386
+ !*** ./node_modules/core-js/fn/string/pad-end.js ***!
387
+ \***************************************************/
388
+ /*! no static exports found */
389
+ /***/ (function(module, exports, __webpack_require__) {
390
+
391
+ __webpack_require__(/*! ../../modules/es7.string.pad-end */ "./node_modules/core-js/modules/es7.string.pad-end.js");
392
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").String.padEnd;
393
+
394
+
395
+ /***/ }),
396
+
397
+ /***/ "./node_modules/core-js/fn/string/pad-start.js":
398
+ /*!*****************************************************!*\
399
+ !*** ./node_modules/core-js/fn/string/pad-start.js ***!
400
+ \*****************************************************/
401
+ /*! no static exports found */
402
+ /***/ (function(module, exports, __webpack_require__) {
403
+
404
+ __webpack_require__(/*! ../../modules/es7.string.pad-start */ "./node_modules/core-js/modules/es7.string.pad-start.js");
405
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").String.padStart;
406
+
407
+
408
+ /***/ }),
409
+
410
+ /***/ "./node_modules/core-js/fn/string/trim-end.js":
411
+ /*!****************************************************!*\
412
+ !*** ./node_modules/core-js/fn/string/trim-end.js ***!
413
+ \****************************************************/
414
+ /*! no static exports found */
415
+ /***/ (function(module, exports, __webpack_require__) {
416
+
417
+ __webpack_require__(/*! ../../modules/es7.string.trim-right */ "./node_modules/core-js/modules/es7.string.trim-right.js");
418
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").String.trimRight;
419
+
420
+
421
+ /***/ }),
422
+
423
+ /***/ "./node_modules/core-js/fn/string/trim-start.js":
424
+ /*!******************************************************!*\
425
+ !*** ./node_modules/core-js/fn/string/trim-start.js ***!
426
+ \******************************************************/
427
+ /*! no static exports found */
428
+ /***/ (function(module, exports, __webpack_require__) {
429
+
430
+ __webpack_require__(/*! ../../modules/es7.string.trim-left */ "./node_modules/core-js/modules/es7.string.trim-left.js");
431
+ module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").String.trimLeft;
432
+
433
+
434
+ /***/ }),
435
+
436
+ /***/ "./node_modules/core-js/fn/symbol/async-iterator.js":
437
+ /*!**********************************************************!*\
438
+ !*** ./node_modules/core-js/fn/symbol/async-iterator.js ***!
439
+ \**********************************************************/
440
+ /*! no static exports found */
441
+ /***/ (function(module, exports, __webpack_require__) {
442
+
443
+ __webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "./node_modules/core-js/modules/es7.symbol.async-iterator.js");
444
+ module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "./node_modules/core-js/modules/_wks-ext.js").f('asyncIterator');
445
+
446
+
447
+ /***/ }),
448
+
449
+ /***/ "./node_modules/core-js/library/fn/global.js":
450
+ /*!***************************************************!*\
451
+ !*** ./node_modules/core-js/library/fn/global.js ***!
452
+ \***************************************************/
453
+ /*! no static exports found */
454
+ /***/ (function(module, exports, __webpack_require__) {
455
+
456
+ __webpack_require__(/*! ../modules/es7.global */ "./node_modules/core-js/library/modules/es7.global.js");
457
+ module.exports = __webpack_require__(/*! ../modules/_core */ "./node_modules/core-js/library/modules/_core.js").global;
458
+
459
+
460
+ /***/ }),
461
+
462
+ /***/ "./node_modules/core-js/library/modules/_a-function.js":
463
+ /*!*************************************************************!*\
464
+ !*** ./node_modules/core-js/library/modules/_a-function.js ***!
465
+ \*************************************************************/
466
+ /*! no static exports found */
467
+ /***/ (function(module, exports) {
468
+
469
+ module.exports = function (it) {
470
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
471
+ return it;
472
+ };
473
+
474
+
475
+ /***/ }),
476
+
477
+ /***/ "./node_modules/core-js/library/modules/_an-object.js":
478
+ /*!************************************************************!*\
479
+ !*** ./node_modules/core-js/library/modules/_an-object.js ***!
480
+ \************************************************************/
481
+ /*! no static exports found */
482
+ /***/ (function(module, exports, __webpack_require__) {
483
+
484
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/library/modules/_is-object.js");
485
+ module.exports = function (it) {
486
+ if (!isObject(it)) throw TypeError(it + ' is not an object!');
487
+ return it;
488
+ };
489
+
490
+
491
+ /***/ }),
492
+
493
+ /***/ "./node_modules/core-js/library/modules/_core.js":
494
+ /*!*******************************************************!*\
495
+ !*** ./node_modules/core-js/library/modules/_core.js ***!
496
+ \*******************************************************/
497
+ /*! no static exports found */
498
+ /***/ (function(module, exports) {
499
+
500
+ var core = module.exports = { version: '2.6.12' };
501
+ if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
502
+
503
+
504
+ /***/ }),
505
+
506
+ /***/ "./node_modules/core-js/library/modules/_ctx.js":
507
+ /*!******************************************************!*\
508
+ !*** ./node_modules/core-js/library/modules/_ctx.js ***!
509
+ \******************************************************/
510
+ /*! no static exports found */
511
+ /***/ (function(module, exports, __webpack_require__) {
512
+
513
+ // optional / simple context binding
514
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/library/modules/_a-function.js");
515
+ module.exports = function (fn, that, length) {
516
+ aFunction(fn);
517
+ if (that === undefined) return fn;
518
+ switch (length) {
519
+ case 1: return function (a) {
520
+ return fn.call(that, a);
521
+ };
522
+ case 2: return function (a, b) {
523
+ return fn.call(that, a, b);
524
+ };
525
+ case 3: return function (a, b, c) {
526
+ return fn.call(that, a, b, c);
527
+ };
528
+ }
529
+ return function (/* ...args */) {
530
+ return fn.apply(that, arguments);
531
+ };
532
+ };
533
+
534
+
535
+ /***/ }),
536
+
537
+ /***/ "./node_modules/core-js/library/modules/_descriptors.js":
538
+ /*!**************************************************************!*\
539
+ !*** ./node_modules/core-js/library/modules/_descriptors.js ***!
540
+ \**************************************************************/
541
+ /*! no static exports found */
542
+ /***/ (function(module, exports, __webpack_require__) {
543
+
544
+ // Thank's IE8 for his funny defineProperty
545
+ module.exports = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/library/modules/_fails.js")(function () {
546
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
547
+ });
548
+
549
+
550
+ /***/ }),
551
+
552
+ /***/ "./node_modules/core-js/library/modules/_dom-create.js":
553
+ /*!*************************************************************!*\
554
+ !*** ./node_modules/core-js/library/modules/_dom-create.js ***!
555
+ \*************************************************************/
556
+ /*! no static exports found */
557
+ /***/ (function(module, exports, __webpack_require__) {
558
+
559
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/library/modules/_is-object.js");
560
+ var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/library/modules/_global.js").document;
561
+ // typeof document.createElement is 'object' in old IE
562
+ var is = isObject(document) && isObject(document.createElement);
563
+ module.exports = function (it) {
564
+ return is ? document.createElement(it) : {};
565
+ };
566
+
567
+
568
+ /***/ }),
569
+
570
+ /***/ "./node_modules/core-js/library/modules/_export.js":
571
+ /*!*********************************************************!*\
572
+ !*** ./node_modules/core-js/library/modules/_export.js ***!
573
+ \*********************************************************/
574
+ /*! no static exports found */
575
+ /***/ (function(module, exports, __webpack_require__) {
576
+
577
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/library/modules/_global.js");
578
+ var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/library/modules/_core.js");
579
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/library/modules/_ctx.js");
580
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/library/modules/_hide.js");
581
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/library/modules/_has.js");
582
+ var PROTOTYPE = 'prototype';
583
+
584
+ var $export = function (type, name, source) {
585
+ var IS_FORCED = type & $export.F;
586
+ var IS_GLOBAL = type & $export.G;
587
+ var IS_STATIC = type & $export.S;
588
+ var IS_PROTO = type & $export.P;
589
+ var IS_BIND = type & $export.B;
590
+ var IS_WRAP = type & $export.W;
591
+ var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
592
+ var expProto = exports[PROTOTYPE];
593
+ var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
594
+ var key, own, out;
595
+ if (IS_GLOBAL) source = name;
596
+ for (key in source) {
597
+ // contains in native
598
+ own = !IS_FORCED && target && target[key] !== undefined;
599
+ if (own && has(exports, key)) continue;
600
+ // export native or passed
601
+ out = own ? target[key] : source[key];
602
+ // prevent global pollution for namespaces
603
+ exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
604
+ // bind timers to global for call from export context
605
+ : IS_BIND && own ? ctx(out, global)
606
+ // wrap global constructors for prevent change them in library
607
+ : IS_WRAP && target[key] == out ? (function (C) {
608
+ var F = function (a, b, c) {
609
+ if (this instanceof C) {
610
+ switch (arguments.length) {
611
+ case 0: return new C();
612
+ case 1: return new C(a);
613
+ case 2: return new C(a, b);
614
+ } return new C(a, b, c);
615
+ } return C.apply(this, arguments);
616
+ };
617
+ F[PROTOTYPE] = C[PROTOTYPE];
618
+ return F;
619
+ // make static versions for prototype methods
620
+ })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
621
+ // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
622
+ if (IS_PROTO) {
623
+ (exports.virtual || (exports.virtual = {}))[key] = out;
624
+ // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
625
+ if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
626
+ }
627
+ }
628
+ };
629
+ // type bitmap
630
+ $export.F = 1; // forced
631
+ $export.G = 2; // global
632
+ $export.S = 4; // static
633
+ $export.P = 8; // proto
634
+ $export.B = 16; // bind
635
+ $export.W = 32; // wrap
636
+ $export.U = 64; // safe
637
+ $export.R = 128; // real proto method for `library`
638
+ module.exports = $export;
639
+
640
+
641
+ /***/ }),
642
+
643
+ /***/ "./node_modules/core-js/library/modules/_fails.js":
644
+ /*!********************************************************!*\
645
+ !*** ./node_modules/core-js/library/modules/_fails.js ***!
646
+ \********************************************************/
647
+ /*! no static exports found */
648
+ /***/ (function(module, exports) {
649
+
650
+ module.exports = function (exec) {
651
+ try {
652
+ return !!exec();
653
+ } catch (e) {
654
+ return true;
655
+ }
656
+ };
657
+
658
+
659
+ /***/ }),
660
+
661
+ /***/ "./node_modules/core-js/library/modules/_global.js":
662
+ /*!*********************************************************!*\
663
+ !*** ./node_modules/core-js/library/modules/_global.js ***!
664
+ \*********************************************************/
665
+ /*! no static exports found */
666
+ /***/ (function(module, exports) {
667
+
668
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
669
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
670
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
671
+ // eslint-disable-next-line no-new-func
672
+ : Function('return this')();
673
+ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
674
+
675
+
676
+ /***/ }),
677
+
678
+ /***/ "./node_modules/core-js/library/modules/_has.js":
679
+ /*!******************************************************!*\
680
+ !*** ./node_modules/core-js/library/modules/_has.js ***!
681
+ \******************************************************/
682
+ /*! no static exports found */
683
+ /***/ (function(module, exports) {
684
+
685
+ var hasOwnProperty = {}.hasOwnProperty;
686
+ module.exports = function (it, key) {
687
+ return hasOwnProperty.call(it, key);
688
+ };
689
+
690
+
691
+ /***/ }),
692
+
693
+ /***/ "./node_modules/core-js/library/modules/_hide.js":
694
+ /*!*******************************************************!*\
695
+ !*** ./node_modules/core-js/library/modules/_hide.js ***!
696
+ \*******************************************************/
697
+ /*! no static exports found */
698
+ /***/ (function(module, exports, __webpack_require__) {
699
+
700
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/library/modules/_object-dp.js");
701
+ var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/library/modules/_property-desc.js");
702
+ module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) {
703
+ return dP.f(object, key, createDesc(1, value));
704
+ } : function (object, key, value) {
705
+ object[key] = value;
706
+ return object;
707
+ };
708
+
709
+
710
+ /***/ }),
711
+
712
+ /***/ "./node_modules/core-js/library/modules/_ie8-dom-define.js":
713
+ /*!*****************************************************************!*\
714
+ !*** ./node_modules/core-js/library/modules/_ie8-dom-define.js ***!
715
+ \*****************************************************************/
716
+ /*! no static exports found */
717
+ /***/ (function(module, exports, __webpack_require__) {
718
+
719
+ module.exports = !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/library/modules/_fails.js")(function () {
720
+ return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
721
+ });
722
+
723
+
724
+ /***/ }),
725
+
726
+ /***/ "./node_modules/core-js/library/modules/_is-object.js":
727
+ /*!************************************************************!*\
728
+ !*** ./node_modules/core-js/library/modules/_is-object.js ***!
729
+ \************************************************************/
730
+ /*! no static exports found */
731
+ /***/ (function(module, exports) {
732
+
733
+ module.exports = function (it) {
734
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
735
+ };
736
+
737
+
738
+ /***/ }),
739
+
740
+ /***/ "./node_modules/core-js/library/modules/_object-dp.js":
741
+ /*!************************************************************!*\
742
+ !*** ./node_modules/core-js/library/modules/_object-dp.js ***!
743
+ \************************************************************/
744
+ /*! no static exports found */
745
+ /***/ (function(module, exports, __webpack_require__) {
746
+
747
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/library/modules/_an-object.js");
748
+ var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/library/modules/_ie8-dom-define.js");
749
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/library/modules/_to-primitive.js");
750
+ var dP = Object.defineProperty;
751
+
752
+ exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
753
+ anObject(O);
754
+ P = toPrimitive(P, true);
755
+ anObject(Attributes);
756
+ if (IE8_DOM_DEFINE) try {
757
+ return dP(O, P, Attributes);
758
+ } catch (e) { /* empty */ }
759
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
760
+ if ('value' in Attributes) O[P] = Attributes.value;
761
+ return O;
762
+ };
763
+
764
+
765
+ /***/ }),
766
+
767
+ /***/ "./node_modules/core-js/library/modules/_property-desc.js":
768
+ /*!****************************************************************!*\
769
+ !*** ./node_modules/core-js/library/modules/_property-desc.js ***!
770
+ \****************************************************************/
771
+ /*! no static exports found */
772
+ /***/ (function(module, exports) {
773
+
774
+ module.exports = function (bitmap, value) {
775
+ return {
776
+ enumerable: !(bitmap & 1),
777
+ configurable: !(bitmap & 2),
778
+ writable: !(bitmap & 4),
779
+ value: value
780
+ };
781
+ };
782
+
783
+
784
+ /***/ }),
785
+
786
+ /***/ "./node_modules/core-js/library/modules/_to-primitive.js":
787
+ /*!***************************************************************!*\
788
+ !*** ./node_modules/core-js/library/modules/_to-primitive.js ***!
789
+ \***************************************************************/
790
+ /*! no static exports found */
791
+ /***/ (function(module, exports, __webpack_require__) {
792
+
793
+ // 7.1.1 ToPrimitive(input [, PreferredType])
794
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/library/modules/_is-object.js");
795
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
796
+ // and the second argument - flag - preferred type is a string
797
+ module.exports = function (it, S) {
798
+ if (!isObject(it)) return it;
799
+ var fn, val;
800
+ if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
801
+ if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
802
+ if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
803
+ throw TypeError("Can't convert object to primitive value");
804
+ };
805
+
806
+
807
+ /***/ }),
808
+
809
+ /***/ "./node_modules/core-js/library/modules/es7.global.js":
810
+ /*!************************************************************!*\
811
+ !*** ./node_modules/core-js/library/modules/es7.global.js ***!
812
+ \************************************************************/
813
+ /*! no static exports found */
814
+ /***/ (function(module, exports, __webpack_require__) {
815
+
816
+ // https://github.com/tc39/proposal-global
817
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/library/modules/_export.js");
818
+
819
+ $export($export.G, { global: __webpack_require__(/*! ./_global */ "./node_modules/core-js/library/modules/_global.js") });
820
+
821
+
822
+ /***/ }),
823
+
824
+ /***/ "./node_modules/core-js/modules/_a-function.js":
825
+ /*!*****************************************************!*\
826
+ !*** ./node_modules/core-js/modules/_a-function.js ***!
827
+ \*****************************************************/
828
+ /*! no static exports found */
829
+ /***/ (function(module, exports) {
830
+
831
+ module.exports = function (it) {
832
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
833
+ return it;
834
+ };
835
+
836
+
837
+ /***/ }),
838
+
839
+ /***/ "./node_modules/core-js/modules/_a-number-value.js":
840
+ /*!*********************************************************!*\
841
+ !*** ./node_modules/core-js/modules/_a-number-value.js ***!
842
+ \*********************************************************/
843
+ /*! no static exports found */
844
+ /***/ (function(module, exports, __webpack_require__) {
845
+
846
+ var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js");
847
+ module.exports = function (it, msg) {
848
+ if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);
849
+ return +it;
850
+ };
851
+
852
+
853
+ /***/ }),
854
+
855
+ /***/ "./node_modules/core-js/modules/_add-to-unscopables.js":
856
+ /*!*************************************************************!*\
857
+ !*** ./node_modules/core-js/modules/_add-to-unscopables.js ***!
858
+ \*************************************************************/
859
+ /*! no static exports found */
860
+ /***/ (function(module, exports, __webpack_require__) {
861
+
862
+ // 22.1.3.31 Array.prototype[@@unscopables]
863
+ var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('unscopables');
864
+ var ArrayProto = Array.prototype;
865
+ if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {});
866
+ module.exports = function (key) {
867
+ ArrayProto[UNSCOPABLES][key] = true;
868
+ };
869
+
870
+
871
+ /***/ }),
872
+
873
+ /***/ "./node_modules/core-js/modules/_advance-string-index.js":
874
+ /*!***************************************************************!*\
875
+ !*** ./node_modules/core-js/modules/_advance-string-index.js ***!
876
+ \***************************************************************/
877
+ /*! no static exports found */
878
+ /***/ (function(module, exports, __webpack_require__) {
879
+
880
+ "use strict";
881
+
882
+ var at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(true);
883
+
884
+ // `AdvanceStringIndex` abstract operation
885
+ // https://tc39.github.io/ecma262/#sec-advancestringindex
886
+ module.exports = function (S, index, unicode) {
887
+ return index + (unicode ? at(S, index).length : 1);
888
+ };
889
+
890
+
891
+ /***/ }),
892
+
893
+ /***/ "./node_modules/core-js/modules/_an-instance.js":
894
+ /*!******************************************************!*\
895
+ !*** ./node_modules/core-js/modules/_an-instance.js ***!
896
+ \******************************************************/
897
+ /*! no static exports found */
898
+ /***/ (function(module, exports) {
899
+
900
+ module.exports = function (it, Constructor, name, forbiddenField) {
901
+ if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
902
+ throw TypeError(name + ': incorrect invocation!');
903
+ } return it;
904
+ };
905
+
906
+
907
+ /***/ }),
908
+
909
+ /***/ "./node_modules/core-js/modules/_an-object.js":
910
+ /*!****************************************************!*\
911
+ !*** ./node_modules/core-js/modules/_an-object.js ***!
912
+ \****************************************************/
913
+ /*! no static exports found */
914
+ /***/ (function(module, exports, __webpack_require__) {
915
+
916
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
917
+ module.exports = function (it) {
918
+ if (!isObject(it)) throw TypeError(it + ' is not an object!');
919
+ return it;
920
+ };
921
+
922
+
923
+ /***/ }),
924
+
925
+ /***/ "./node_modules/core-js/modules/_array-copy-within.js":
926
+ /*!************************************************************!*\
927
+ !*** ./node_modules/core-js/modules/_array-copy-within.js ***!
928
+ \************************************************************/
929
+ /*! no static exports found */
930
+ /***/ (function(module, exports, __webpack_require__) {
931
+
932
+ "use strict";
933
+ // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
934
+
935
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
936
+ var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js");
937
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
938
+
939
+ module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
940
+ var O = toObject(this);
941
+ var len = toLength(O.length);
942
+ var to = toAbsoluteIndex(target, len);
943
+ var from = toAbsoluteIndex(start, len);
944
+ var end = arguments.length > 2 ? arguments[2] : undefined;
945
+ var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
946
+ var inc = 1;
947
+ if (from < to && to < from + count) {
948
+ inc = -1;
949
+ from += count - 1;
950
+ to += count - 1;
951
+ }
952
+ while (count-- > 0) {
953
+ if (from in O) O[to] = O[from];
954
+ else delete O[to];
955
+ to += inc;
956
+ from += inc;
957
+ } return O;
958
+ };
959
+
960
+
961
+ /***/ }),
962
+
963
+ /***/ "./node_modules/core-js/modules/_array-fill.js":
964
+ /*!*****************************************************!*\
965
+ !*** ./node_modules/core-js/modules/_array-fill.js ***!
966
+ \*****************************************************/
967
+ /*! no static exports found */
968
+ /***/ (function(module, exports, __webpack_require__) {
969
+
970
+ "use strict";
971
+ // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
972
+
973
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
974
+ var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js");
975
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
976
+ module.exports = function fill(value /* , start = 0, end = @length */) {
977
+ var O = toObject(this);
978
+ var length = toLength(O.length);
979
+ var aLen = arguments.length;
980
+ var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
981
+ var end = aLen > 2 ? arguments[2] : undefined;
982
+ var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
983
+ while (endPos > index) O[index++] = value;
984
+ return O;
985
+ };
986
+
987
+
988
+ /***/ }),
989
+
990
+ /***/ "./node_modules/core-js/modules/_array-includes.js":
991
+ /*!*********************************************************!*\
992
+ !*** ./node_modules/core-js/modules/_array-includes.js ***!
993
+ \*********************************************************/
994
+ /*! no static exports found */
995
+ /***/ (function(module, exports, __webpack_require__) {
996
+
997
+ // false -> Array#indexOf
998
+ // true -> Array#includes
999
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
1000
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
1001
+ var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js");
1002
+ module.exports = function (IS_INCLUDES) {
1003
+ return function ($this, el, fromIndex) {
1004
+ var O = toIObject($this);
1005
+ var length = toLength(O.length);
1006
+ var index = toAbsoluteIndex(fromIndex, length);
1007
+ var value;
1008
+ // Array#includes uses SameValueZero equality algorithm
1009
+ // eslint-disable-next-line no-self-compare
1010
+ if (IS_INCLUDES && el != el) while (length > index) {
1011
+ value = O[index++];
1012
+ // eslint-disable-next-line no-self-compare
1013
+ if (value != value) return true;
1014
+ // Array#indexOf ignores holes, Array#includes - not
1015
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
1016
+ if (O[index] === el) return IS_INCLUDES || index || 0;
1017
+ } return !IS_INCLUDES && -1;
1018
+ };
1019
+ };
1020
+
1021
+
1022
+ /***/ }),
1023
+
1024
+ /***/ "./node_modules/core-js/modules/_array-methods.js":
1025
+ /*!********************************************************!*\
1026
+ !*** ./node_modules/core-js/modules/_array-methods.js ***!
1027
+ \********************************************************/
1028
+ /*! no static exports found */
1029
+ /***/ (function(module, exports, __webpack_require__) {
1030
+
1031
+ // 0 -> Array#forEach
1032
+ // 1 -> Array#map
1033
+ // 2 -> Array#filter
1034
+ // 3 -> Array#some
1035
+ // 4 -> Array#every
1036
+ // 5 -> Array#find
1037
+ // 6 -> Array#findIndex
1038
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
1039
+ var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js");
1040
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
1041
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
1042
+ var asc = __webpack_require__(/*! ./_array-species-create */ "./node_modules/core-js/modules/_array-species-create.js");
1043
+ module.exports = function (TYPE, $create) {
1044
+ var IS_MAP = TYPE == 1;
1045
+ var IS_FILTER = TYPE == 2;
1046
+ var IS_SOME = TYPE == 3;
1047
+ var IS_EVERY = TYPE == 4;
1048
+ var IS_FIND_INDEX = TYPE == 6;
1049
+ var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
1050
+ var create = $create || asc;
1051
+ return function ($this, callbackfn, that) {
1052
+ var O = toObject($this);
1053
+ var self = IObject(O);
1054
+ var f = ctx(callbackfn, that, 3);
1055
+ var length = toLength(self.length);
1056
+ var index = 0;
1057
+ var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
1058
+ var val, res;
1059
+ for (;length > index; index++) if (NO_HOLES || index in self) {
1060
+ val = self[index];
1061
+ res = f(val, index, O);
1062
+ if (TYPE) {
1063
+ if (IS_MAP) result[index] = res; // map
1064
+ else if (res) switch (TYPE) {
1065
+ case 3: return true; // some
1066
+ case 5: return val; // find
1067
+ case 6: return index; // findIndex
1068
+ case 2: result.push(val); // filter
1069
+ } else if (IS_EVERY) return false; // every
1070
+ }
1071
+ }
1072
+ return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
1073
+ };
1074
+ };
1075
+
1076
+
1077
+ /***/ }),
1078
+
1079
+ /***/ "./node_modules/core-js/modules/_array-reduce.js":
1080
+ /*!*******************************************************!*\
1081
+ !*** ./node_modules/core-js/modules/_array-reduce.js ***!
1082
+ \*******************************************************/
1083
+ /*! no static exports found */
1084
+ /***/ (function(module, exports, __webpack_require__) {
1085
+
1086
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
1087
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
1088
+ var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js");
1089
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
1090
+
1091
+ module.exports = function (that, callbackfn, aLen, memo, isRight) {
1092
+ aFunction(callbackfn);
1093
+ var O = toObject(that);
1094
+ var self = IObject(O);
1095
+ var length = toLength(O.length);
1096
+ var index = isRight ? length - 1 : 0;
1097
+ var i = isRight ? -1 : 1;
1098
+ if (aLen < 2) for (;;) {
1099
+ if (index in self) {
1100
+ memo = self[index];
1101
+ index += i;
1102
+ break;
1103
+ }
1104
+ index += i;
1105
+ if (isRight ? index < 0 : length <= index) {
1106
+ throw TypeError('Reduce of empty array with no initial value');
1107
+ }
1108
+ }
1109
+ for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {
1110
+ memo = callbackfn(memo, self[index], index, O);
1111
+ }
1112
+ return memo;
1113
+ };
1114
+
1115
+
1116
+ /***/ }),
1117
+
1118
+ /***/ "./node_modules/core-js/modules/_array-species-constructor.js":
1119
+ /*!********************************************************************!*\
1120
+ !*** ./node_modules/core-js/modules/_array-species-constructor.js ***!
1121
+ \********************************************************************/
1122
+ /*! no static exports found */
1123
+ /***/ (function(module, exports, __webpack_require__) {
1124
+
1125
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
1126
+ var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js");
1127
+ var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species');
1128
+
1129
+ module.exports = function (original) {
1130
+ var C;
1131
+ if (isArray(original)) {
1132
+ C = original.constructor;
1133
+ // cross-realm fallback
1134
+ if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
1135
+ if (isObject(C)) {
1136
+ C = C[SPECIES];
1137
+ if (C === null) C = undefined;
1138
+ }
1139
+ } return C === undefined ? Array : C;
1140
+ };
1141
+
1142
+
1143
+ /***/ }),
1144
+
1145
+ /***/ "./node_modules/core-js/modules/_array-species-create.js":
1146
+ /*!***************************************************************!*\
1147
+ !*** ./node_modules/core-js/modules/_array-species-create.js ***!
1148
+ \***************************************************************/
1149
+ /*! no static exports found */
1150
+ /***/ (function(module, exports, __webpack_require__) {
1151
+
1152
+ // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
1153
+ var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "./node_modules/core-js/modules/_array-species-constructor.js");
1154
+
1155
+ module.exports = function (original, length) {
1156
+ return new (speciesConstructor(original))(length);
1157
+ };
1158
+
1159
+
1160
+ /***/ }),
1161
+
1162
+ /***/ "./node_modules/core-js/modules/_bind.js":
1163
+ /*!***********************************************!*\
1164
+ !*** ./node_modules/core-js/modules/_bind.js ***!
1165
+ \***********************************************/
1166
+ /*! no static exports found */
1167
+ /***/ (function(module, exports, __webpack_require__) {
1168
+
1169
+ "use strict";
1170
+
1171
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
1172
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
1173
+ var invoke = __webpack_require__(/*! ./_invoke */ "./node_modules/core-js/modules/_invoke.js");
1174
+ var arraySlice = [].slice;
1175
+ var factories = {};
1176
+
1177
+ var construct = function (F, len, args) {
1178
+ if (!(len in factories)) {
1179
+ for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
1180
+ // eslint-disable-next-line no-new-func
1181
+ factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
1182
+ } return factories[len](F, args);
1183
+ };
1184
+
1185
+ module.exports = Function.bind || function bind(that /* , ...args */) {
1186
+ var fn = aFunction(this);
1187
+ var partArgs = arraySlice.call(arguments, 1);
1188
+ var bound = function (/* args... */) {
1189
+ var args = partArgs.concat(arraySlice.call(arguments));
1190
+ return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
1191
+ };
1192
+ if (isObject(fn.prototype)) bound.prototype = fn.prototype;
1193
+ return bound;
1194
+ };
1195
+
1196
+
1197
+ /***/ }),
1198
+
1199
+ /***/ "./node_modules/core-js/modules/_classof.js":
1200
+ /*!**************************************************!*\
1201
+ !*** ./node_modules/core-js/modules/_classof.js ***!
1202
+ \**************************************************/
1203
+ /*! no static exports found */
1204
+ /***/ (function(module, exports, __webpack_require__) {
1205
+
1206
+ // getting tag from 19.1.3.6 Object.prototype.toString()
1207
+ var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js");
1208
+ var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag');
1209
+ // ES3 wrong here
1210
+ var ARG = cof(function () { return arguments; }()) == 'Arguments';
1211
+
1212
+ // fallback for IE11 Script Access Denied error
1213
+ var tryGet = function (it, key) {
1214
+ try {
1215
+ return it[key];
1216
+ } catch (e) { /* empty */ }
1217
+ };
1218
+
1219
+ module.exports = function (it) {
1220
+ var O, T, B;
1221
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
1222
+ // @@toStringTag case
1223
+ : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
1224
+ // builtinTag case
1225
+ : ARG ? cof(O)
1226
+ // ES3 arguments fallback
1227
+ : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
1228
+ };
1229
+
1230
+
1231
+ /***/ }),
1232
+
1233
+ /***/ "./node_modules/core-js/modules/_cof.js":
1234
+ /*!**********************************************!*\
1235
+ !*** ./node_modules/core-js/modules/_cof.js ***!
1236
+ \**********************************************/
1237
+ /*! no static exports found */
1238
+ /***/ (function(module, exports) {
1239
+
1240
+ var toString = {}.toString;
1241
+
1242
+ module.exports = function (it) {
1243
+ return toString.call(it).slice(8, -1);
1244
+ };
1245
+
1246
+
1247
+ /***/ }),
1248
+
1249
+ /***/ "./node_modules/core-js/modules/_collection-strong.js":
1250
+ /*!************************************************************!*\
1251
+ !*** ./node_modules/core-js/modules/_collection-strong.js ***!
1252
+ \************************************************************/
1253
+ /*! no static exports found */
1254
+ /***/ (function(module, exports, __webpack_require__) {
1255
+
1256
+ "use strict";
1257
+
1258
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f;
1259
+ var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js");
1260
+ var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js");
1261
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
1262
+ var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js");
1263
+ var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js");
1264
+ var $iterDefine = __webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js");
1265
+ var step = __webpack_require__(/*! ./_iter-step */ "./node_modules/core-js/modules/_iter-step.js");
1266
+ var setSpecies = __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js");
1267
+ var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js");
1268
+ var fastKey = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").fastKey;
1269
+ var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js");
1270
+ var SIZE = DESCRIPTORS ? '_s' : 'size';
1271
+
1272
+ var getEntry = function (that, key) {
1273
+ // fast case
1274
+ var index = fastKey(key);
1275
+ var entry;
1276
+ if (index !== 'F') return that._i[index];
1277
+ // frozen object case
1278
+ for (entry = that._f; entry; entry = entry.n) {
1279
+ if (entry.k == key) return entry;
1280
+ }
1281
+ };
1282
+
1283
+ module.exports = {
1284
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
1285
+ var C = wrapper(function (that, iterable) {
1286
+ anInstance(that, C, NAME, '_i');
1287
+ that._t = NAME; // collection type
1288
+ that._i = create(null); // index
1289
+ that._f = undefined; // first entry
1290
+ that._l = undefined; // last entry
1291
+ that[SIZE] = 0; // size
1292
+ if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
1293
+ });
1294
+ redefineAll(C.prototype, {
1295
+ // 23.1.3.1 Map.prototype.clear()
1296
+ // 23.2.3.2 Set.prototype.clear()
1297
+ clear: function clear() {
1298
+ for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
1299
+ entry.r = true;
1300
+ if (entry.p) entry.p = entry.p.n = undefined;
1301
+ delete data[entry.i];
1302
+ }
1303
+ that._f = that._l = undefined;
1304
+ that[SIZE] = 0;
1305
+ },
1306
+ // 23.1.3.3 Map.prototype.delete(key)
1307
+ // 23.2.3.4 Set.prototype.delete(value)
1308
+ 'delete': function (key) {
1309
+ var that = validate(this, NAME);
1310
+ var entry = getEntry(that, key);
1311
+ if (entry) {
1312
+ var next = entry.n;
1313
+ var prev = entry.p;
1314
+ delete that._i[entry.i];
1315
+ entry.r = true;
1316
+ if (prev) prev.n = next;
1317
+ if (next) next.p = prev;
1318
+ if (that._f == entry) that._f = next;
1319
+ if (that._l == entry) that._l = prev;
1320
+ that[SIZE]--;
1321
+ } return !!entry;
1322
+ },
1323
+ // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
1324
+ // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
1325
+ forEach: function forEach(callbackfn /* , that = undefined */) {
1326
+ validate(this, NAME);
1327
+ var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
1328
+ var entry;
1329
+ while (entry = entry ? entry.n : this._f) {
1330
+ f(entry.v, entry.k, this);
1331
+ // revert to the last existing entry
1332
+ while (entry && entry.r) entry = entry.p;
1333
+ }
1334
+ },
1335
+ // 23.1.3.7 Map.prototype.has(key)
1336
+ // 23.2.3.7 Set.prototype.has(value)
1337
+ has: function has(key) {
1338
+ return !!getEntry(validate(this, NAME), key);
1339
+ }
1340
+ });
1341
+ if (DESCRIPTORS) dP(C.prototype, 'size', {
1342
+ get: function () {
1343
+ return validate(this, NAME)[SIZE];
1344
+ }
1345
+ });
1346
+ return C;
1347
+ },
1348
+ def: function (that, key, value) {
1349
+ var entry = getEntry(that, key);
1350
+ var prev, index;
1351
+ // change existing entry
1352
+ if (entry) {
1353
+ entry.v = value;
1354
+ // create new entry
1355
+ } else {
1356
+ that._l = entry = {
1357
+ i: index = fastKey(key, true), // <- index
1358
+ k: key, // <- key
1359
+ v: value, // <- value
1360
+ p: prev = that._l, // <- previous entry
1361
+ n: undefined, // <- next entry
1362
+ r: false // <- removed
1363
+ };
1364
+ if (!that._f) that._f = entry;
1365
+ if (prev) prev.n = entry;
1366
+ that[SIZE]++;
1367
+ // add to index
1368
+ if (index !== 'F') that._i[index] = entry;
1369
+ } return that;
1370
+ },
1371
+ getEntry: getEntry,
1372
+ setStrong: function (C, NAME, IS_MAP) {
1373
+ // add .keys, .values, .entries, [@@iterator]
1374
+ // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
1375
+ $iterDefine(C, NAME, function (iterated, kind) {
1376
+ this._t = validate(iterated, NAME); // target
1377
+ this._k = kind; // kind
1378
+ this._l = undefined; // previous
1379
+ }, function () {
1380
+ var that = this;
1381
+ var kind = that._k;
1382
+ var entry = that._l;
1383
+ // revert to the last existing entry
1384
+ while (entry && entry.r) entry = entry.p;
1385
+ // get next entry
1386
+ if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
1387
+ // or finish the iteration
1388
+ that._t = undefined;
1389
+ return step(1);
1390
+ }
1391
+ // return step by kind
1392
+ if (kind == 'keys') return step(0, entry.k);
1393
+ if (kind == 'values') return step(0, entry.v);
1394
+ return step(0, [entry.k, entry.v]);
1395
+ }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
1396
+
1397
+ // add [@@species], 23.1.2.2, 23.2.2.2
1398
+ setSpecies(NAME);
1399
+ }
1400
+ };
1401
+
1402
+
1403
+ /***/ }),
1404
+
1405
+ /***/ "./node_modules/core-js/modules/_collection-weak.js":
1406
+ /*!**********************************************************!*\
1407
+ !*** ./node_modules/core-js/modules/_collection-weak.js ***!
1408
+ \**********************************************************/
1409
+ /*! no static exports found */
1410
+ /***/ (function(module, exports, __webpack_require__) {
1411
+
1412
+ "use strict";
1413
+
1414
+ var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js");
1415
+ var getWeak = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").getWeak;
1416
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
1417
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
1418
+ var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js");
1419
+ var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js");
1420
+ var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js");
1421
+ var $has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
1422
+ var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js");
1423
+ var arrayFind = createArrayMethod(5);
1424
+ var arrayFindIndex = createArrayMethod(6);
1425
+ var id = 0;
1426
+
1427
+ // fallback for uncaught frozen keys
1428
+ var uncaughtFrozenStore = function (that) {
1429
+ return that._l || (that._l = new UncaughtFrozenStore());
1430
+ };
1431
+ var UncaughtFrozenStore = function () {
1432
+ this.a = [];
1433
+ };
1434
+ var findUncaughtFrozen = function (store, key) {
1435
+ return arrayFind(store.a, function (it) {
1436
+ return it[0] === key;
1437
+ });
1438
+ };
1439
+ UncaughtFrozenStore.prototype = {
1440
+ get: function (key) {
1441
+ var entry = findUncaughtFrozen(this, key);
1442
+ if (entry) return entry[1];
1443
+ },
1444
+ has: function (key) {
1445
+ return !!findUncaughtFrozen(this, key);
1446
+ },
1447
+ set: function (key, value) {
1448
+ var entry = findUncaughtFrozen(this, key);
1449
+ if (entry) entry[1] = value;
1450
+ else this.a.push([key, value]);
1451
+ },
1452
+ 'delete': function (key) {
1453
+ var index = arrayFindIndex(this.a, function (it) {
1454
+ return it[0] === key;
1455
+ });
1456
+ if (~index) this.a.splice(index, 1);
1457
+ return !!~index;
1458
+ }
1459
+ };
1460
+
1461
+ module.exports = {
1462
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
1463
+ var C = wrapper(function (that, iterable) {
1464
+ anInstance(that, C, NAME, '_i');
1465
+ that._t = NAME; // collection type
1466
+ that._i = id++; // collection id
1467
+ that._l = undefined; // leak store for uncaught frozen objects
1468
+ if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
1469
+ });
1470
+ redefineAll(C.prototype, {
1471
+ // 23.3.3.2 WeakMap.prototype.delete(key)
1472
+ // 23.4.3.3 WeakSet.prototype.delete(value)
1473
+ 'delete': function (key) {
1474
+ if (!isObject(key)) return false;
1475
+ var data = getWeak(key);
1476
+ if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
1477
+ return data && $has(data, this._i) && delete data[this._i];
1478
+ },
1479
+ // 23.3.3.4 WeakMap.prototype.has(key)
1480
+ // 23.4.3.4 WeakSet.prototype.has(value)
1481
+ has: function has(key) {
1482
+ if (!isObject(key)) return false;
1483
+ var data = getWeak(key);
1484
+ if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
1485
+ return data && $has(data, this._i);
1486
+ }
1487
+ });
1488
+ return C;
1489
+ },
1490
+ def: function (that, key, value) {
1491
+ var data = getWeak(anObject(key), true);
1492
+ if (data === true) uncaughtFrozenStore(that).set(key, value);
1493
+ else data[that._i] = value;
1494
+ return that;
1495
+ },
1496
+ ufstore: uncaughtFrozenStore
1497
+ };
1498
+
1499
+
1500
+ /***/ }),
1501
+
1502
+ /***/ "./node_modules/core-js/modules/_collection.js":
1503
+ /*!*****************************************************!*\
1504
+ !*** ./node_modules/core-js/modules/_collection.js ***!
1505
+ \*****************************************************/
1506
+ /*! no static exports found */
1507
+ /***/ (function(module, exports, __webpack_require__) {
1508
+
1509
+ "use strict";
1510
+
1511
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
1512
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
1513
+ var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js");
1514
+ var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js");
1515
+ var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js");
1516
+ var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js");
1517
+ var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js");
1518
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
1519
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
1520
+ var $iterDetect = __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js");
1521
+ var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js");
1522
+ var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js");
1523
+
1524
+ module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
1525
+ var Base = global[NAME];
1526
+ var C = Base;
1527
+ var ADDER = IS_MAP ? 'set' : 'add';
1528
+ var proto = C && C.prototype;
1529
+ var O = {};
1530
+ var fixMethod = function (KEY) {
1531
+ var fn = proto[KEY];
1532
+ redefine(proto, KEY,
1533
+ KEY == 'delete' ? function (a) {
1534
+ return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
1535
+ } : KEY == 'has' ? function has(a) {
1536
+ return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
1537
+ } : KEY == 'get' ? function get(a) {
1538
+ return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
1539
+ } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
1540
+ : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
1541
+ );
1542
+ };
1543
+ if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
1544
+ new C().entries().next();
1545
+ }))) {
1546
+ // create collection constructor
1547
+ C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
1548
+ redefineAll(C.prototype, methods);
1549
+ meta.NEED = true;
1550
+ } else {
1551
+ var instance = new C();
1552
+ // early implementations not supports chaining
1553
+ var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
1554
+ // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
1555
+ var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });
1556
+ // most early implementations doesn't supports iterables, most modern - not close it correctly
1557
+ var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
1558
+ // for early implementations -0 and +0 not the same
1559
+ var BUGGY_ZERO = !IS_WEAK && fails(function () {
1560
+ // V8 ~ Chromium 42- fails only with 5+ elements
1561
+ var $instance = new C();
1562
+ var index = 5;
1563
+ while (index--) $instance[ADDER](index, index);
1564
+ return !$instance.has(-0);
1565
+ });
1566
+ if (!ACCEPT_ITERABLES) {
1567
+ C = wrapper(function (target, iterable) {
1568
+ anInstance(target, C, NAME);
1569
+ var that = inheritIfRequired(new Base(), target, C);
1570
+ if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
1571
+ return that;
1572
+ });
1573
+ C.prototype = proto;
1574
+ proto.constructor = C;
1575
+ }
1576
+ if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
1577
+ fixMethod('delete');
1578
+ fixMethod('has');
1579
+ IS_MAP && fixMethod('get');
1580
+ }
1581
+ if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
1582
+ // weak collections should not contains .clear method
1583
+ if (IS_WEAK && proto.clear) delete proto.clear;
1584
+ }
1585
+
1586
+ setToStringTag(C, NAME);
1587
+
1588
+ O[NAME] = C;
1589
+ $export($export.G + $export.W + $export.F * (C != Base), O);
1590
+
1591
+ if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
1592
+
1593
+ return C;
1594
+ };
1595
+
1596
+
1597
+ /***/ }),
1598
+
1599
+ /***/ "./node_modules/core-js/modules/_core.js":
1600
+ /*!***********************************************!*\
1601
+ !*** ./node_modules/core-js/modules/_core.js ***!
1602
+ \***********************************************/
1603
+ /*! no static exports found */
1604
+ /***/ (function(module, exports) {
1605
+
1606
+ var core = module.exports = { version: '2.6.12' };
1607
+ if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
1608
+
1609
+
1610
+ /***/ }),
1611
+
1612
+ /***/ "./node_modules/core-js/modules/_create-property.js":
1613
+ /*!**********************************************************!*\
1614
+ !*** ./node_modules/core-js/modules/_create-property.js ***!
1615
+ \**********************************************************/
1616
+ /*! no static exports found */
1617
+ /***/ (function(module, exports, __webpack_require__) {
1618
+
1619
+ "use strict";
1620
+
1621
+ var $defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js");
1622
+ var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js");
1623
+
1624
+ module.exports = function (object, index, value) {
1625
+ if (index in object) $defineProperty.f(object, index, createDesc(0, value));
1626
+ else object[index] = value;
1627
+ };
1628
+
1629
+
1630
+ /***/ }),
1631
+
1632
+ /***/ "./node_modules/core-js/modules/_ctx.js":
1633
+ /*!**********************************************!*\
1634
+ !*** ./node_modules/core-js/modules/_ctx.js ***!
1635
+ \**********************************************/
1636
+ /*! no static exports found */
1637
+ /***/ (function(module, exports, __webpack_require__) {
1638
+
1639
+ // optional / simple context binding
1640
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
1641
+ module.exports = function (fn, that, length) {
1642
+ aFunction(fn);
1643
+ if (that === undefined) return fn;
1644
+ switch (length) {
1645
+ case 1: return function (a) {
1646
+ return fn.call(that, a);
1647
+ };
1648
+ case 2: return function (a, b) {
1649
+ return fn.call(that, a, b);
1650
+ };
1651
+ case 3: return function (a, b, c) {
1652
+ return fn.call(that, a, b, c);
1653
+ };
1654
+ }
1655
+ return function (/* ...args */) {
1656
+ return fn.apply(that, arguments);
1657
+ };
1658
+ };
1659
+
1660
+
1661
+ /***/ }),
1662
+
1663
+ /***/ "./node_modules/core-js/modules/_date-to-iso-string.js":
1664
+ /*!*************************************************************!*\
1665
+ !*** ./node_modules/core-js/modules/_date-to-iso-string.js ***!
1666
+ \*************************************************************/
1667
+ /*! no static exports found */
1668
+ /***/ (function(module, exports, __webpack_require__) {
1669
+
1670
+ "use strict";
1671
+
1672
+ // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
1673
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
1674
+ var getTime = Date.prototype.getTime;
1675
+ var $toISOString = Date.prototype.toISOString;
1676
+
1677
+ var lz = function (num) {
1678
+ return num > 9 ? num : '0' + num;
1679
+ };
1680
+
1681
+ // PhantomJS / old WebKit has a broken implementations
1682
+ module.exports = (fails(function () {
1683
+ return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
1684
+ }) || !fails(function () {
1685
+ $toISOString.call(new Date(NaN));
1686
+ })) ? function toISOString() {
1687
+ if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
1688
+ var d = this;
1689
+ var y = d.getUTCFullYear();
1690
+ var m = d.getUTCMilliseconds();
1691
+ var s = y < 0 ? '-' : y > 9999 ? '+' : '';
1692
+ return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
1693
+ '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
1694
+ 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
1695
+ ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
1696
+ } : $toISOString;
1697
+
1698
+
1699
+ /***/ }),
1700
+
1701
+ /***/ "./node_modules/core-js/modules/_date-to-primitive.js":
1702
+ /*!************************************************************!*\
1703
+ !*** ./node_modules/core-js/modules/_date-to-primitive.js ***!
1704
+ \************************************************************/
1705
+ /*! no static exports found */
1706
+ /***/ (function(module, exports, __webpack_require__) {
1707
+
1708
+ "use strict";
1709
+
1710
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
1711
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js");
1712
+ var NUMBER = 'number';
1713
+
1714
+ module.exports = function (hint) {
1715
+ if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');
1716
+ return toPrimitive(anObject(this), hint != NUMBER);
1717
+ };
1718
+
1719
+
1720
+ /***/ }),
1721
+
1722
+ /***/ "./node_modules/core-js/modules/_defined.js":
1723
+ /*!**************************************************!*\
1724
+ !*** ./node_modules/core-js/modules/_defined.js ***!
1725
+ \**************************************************/
1726
+ /*! no static exports found */
1727
+ /***/ (function(module, exports) {
1728
+
1729
+ // 7.2.1 RequireObjectCoercible(argument)
1730
+ module.exports = function (it) {
1731
+ if (it == undefined) throw TypeError("Can't call method on " + it);
1732
+ return it;
1733
+ };
1734
+
1735
+
1736
+ /***/ }),
1737
+
1738
+ /***/ "./node_modules/core-js/modules/_descriptors.js":
1739
+ /*!******************************************************!*\
1740
+ !*** ./node_modules/core-js/modules/_descriptors.js ***!
1741
+ \******************************************************/
1742
+ /*! no static exports found */
1743
+ /***/ (function(module, exports, __webpack_require__) {
1744
+
1745
+ // Thank's IE8 for his funny defineProperty
1746
+ module.exports = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
1747
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
1748
+ });
1749
+
1750
+
1751
+ /***/ }),
1752
+
1753
+ /***/ "./node_modules/core-js/modules/_dom-create.js":
1754
+ /*!*****************************************************!*\
1755
+ !*** ./node_modules/core-js/modules/_dom-create.js ***!
1756
+ \*****************************************************/
1757
+ /*! no static exports found */
1758
+ /***/ (function(module, exports, __webpack_require__) {
1759
+
1760
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
1761
+ var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").document;
1762
+ // typeof document.createElement is 'object' in old IE
1763
+ var is = isObject(document) && isObject(document.createElement);
1764
+ module.exports = function (it) {
1765
+ return is ? document.createElement(it) : {};
1766
+ };
1767
+
1768
+
1769
+ /***/ }),
1770
+
1771
+ /***/ "./node_modules/core-js/modules/_enum-bug-keys.js":
1772
+ /*!********************************************************!*\
1773
+ !*** ./node_modules/core-js/modules/_enum-bug-keys.js ***!
1774
+ \********************************************************/
1775
+ /*! no static exports found */
1776
+ /***/ (function(module, exports) {
1777
+
1778
+ // IE 8- don't enum bug keys
1779
+ module.exports = (
1780
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
1781
+ ).split(',');
1782
+
1783
+
1784
+ /***/ }),
1785
+
1786
+ /***/ "./node_modules/core-js/modules/_enum-keys.js":
1787
+ /*!****************************************************!*\
1788
+ !*** ./node_modules/core-js/modules/_enum-keys.js ***!
1789
+ \****************************************************/
1790
+ /*! no static exports found */
1791
+ /***/ (function(module, exports, __webpack_require__) {
1792
+
1793
+ // all enumerable object keys, includes symbols
1794
+ var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js");
1795
+ var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js");
1796
+ var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js");
1797
+ module.exports = function (it) {
1798
+ var result = getKeys(it);
1799
+ var getSymbols = gOPS.f;
1800
+ if (getSymbols) {
1801
+ var symbols = getSymbols(it);
1802
+ var isEnum = pIE.f;
1803
+ var i = 0;
1804
+ var key;
1805
+ while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
1806
+ } return result;
1807
+ };
1808
+
1809
+
1810
+ /***/ }),
1811
+
1812
+ /***/ "./node_modules/core-js/modules/_export.js":
1813
+ /*!*************************************************!*\
1814
+ !*** ./node_modules/core-js/modules/_export.js ***!
1815
+ \*************************************************/
1816
+ /*! no static exports found */
1817
+ /***/ (function(module, exports, __webpack_require__) {
1818
+
1819
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
1820
+ var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js");
1821
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js");
1822
+ var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js");
1823
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
1824
+ var PROTOTYPE = 'prototype';
1825
+
1826
+ var $export = function (type, name, source) {
1827
+ var IS_FORCED = type & $export.F;
1828
+ var IS_GLOBAL = type & $export.G;
1829
+ var IS_STATIC = type & $export.S;
1830
+ var IS_PROTO = type & $export.P;
1831
+ var IS_BIND = type & $export.B;
1832
+ var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
1833
+ var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
1834
+ var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
1835
+ var key, own, out, exp;
1836
+ if (IS_GLOBAL) source = name;
1837
+ for (key in source) {
1838
+ // contains in native
1839
+ own = !IS_FORCED && target && target[key] !== undefined;
1840
+ // export native or passed
1841
+ out = (own ? target : source)[key];
1842
+ // bind timers to global for call from export context
1843
+ exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
1844
+ // extend global
1845
+ if (target) redefine(target, key, out, type & $export.U);
1846
+ // export
1847
+ if (exports[key] != out) hide(exports, key, exp);
1848
+ if (IS_PROTO && expProto[key] != out) expProto[key] = out;
1849
+ }
1850
+ };
1851
+ global.core = core;
1852
+ // type bitmap
1853
+ $export.F = 1; // forced
1854
+ $export.G = 2; // global
1855
+ $export.S = 4; // static
1856
+ $export.P = 8; // proto
1857
+ $export.B = 16; // bind
1858
+ $export.W = 32; // wrap
1859
+ $export.U = 64; // safe
1860
+ $export.R = 128; // real proto method for `library`
1861
+ module.exports = $export;
1862
+
1863
+
1864
+ /***/ }),
1865
+
1866
+ /***/ "./node_modules/core-js/modules/_fails-is-regexp.js":
1867
+ /*!**********************************************************!*\
1868
+ !*** ./node_modules/core-js/modules/_fails-is-regexp.js ***!
1869
+ \**********************************************************/
1870
+ /*! no static exports found */
1871
+ /***/ (function(module, exports, __webpack_require__) {
1872
+
1873
+ var MATCH = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match');
1874
+ module.exports = function (KEY) {
1875
+ var re = /./;
1876
+ try {
1877
+ '/./'[KEY](re);
1878
+ } catch (e) {
1879
+ try {
1880
+ re[MATCH] = false;
1881
+ return !'/./'[KEY](re);
1882
+ } catch (f) { /* empty */ }
1883
+ } return true;
1884
+ };
1885
+
1886
+
1887
+ /***/ }),
1888
+
1889
+ /***/ "./node_modules/core-js/modules/_fails.js":
1890
+ /*!************************************************!*\
1891
+ !*** ./node_modules/core-js/modules/_fails.js ***!
1892
+ \************************************************/
1893
+ /*! no static exports found */
1894
+ /***/ (function(module, exports) {
1895
+
1896
+ module.exports = function (exec) {
1897
+ try {
1898
+ return !!exec();
1899
+ } catch (e) {
1900
+ return true;
1901
+ }
1902
+ };
1903
+
1904
+
1905
+ /***/ }),
1906
+
1907
+ /***/ "./node_modules/core-js/modules/_fix-re-wks.js":
1908
+ /*!*****************************************************!*\
1909
+ !*** ./node_modules/core-js/modules/_fix-re-wks.js ***!
1910
+ \*****************************************************/
1911
+ /*! no static exports found */
1912
+ /***/ (function(module, exports, __webpack_require__) {
1913
+
1914
+ "use strict";
1915
+
1916
+ __webpack_require__(/*! ./es6.regexp.exec */ "./node_modules/core-js/modules/es6.regexp.exec.js");
1917
+ var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js");
1918
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js");
1919
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
1920
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
1921
+ var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js");
1922
+ var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "./node_modules/core-js/modules/_regexp-exec.js");
1923
+
1924
+ var SPECIES = wks('species');
1925
+
1926
+ var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
1927
+ // #replace needs built-in support for named groups.
1928
+ // #match works fine because it just return the exec results, even if it has
1929
+ // a "grops" property.
1930
+ var re = /./;
1931
+ re.exec = function () {
1932
+ var result = [];
1933
+ result.groups = { a: '7' };
1934
+ return result;
1935
+ };
1936
+ return ''.replace(re, '$<a>') !== '7';
1937
+ });
1938
+
1939
+ var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
1940
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
1941
+ var re = /(?:)/;
1942
+ var originalExec = re.exec;
1943
+ re.exec = function () { return originalExec.apply(this, arguments); };
1944
+ var result = 'ab'.split(re);
1945
+ return result.length === 2 && result[0] === 'a' && result[1] === 'b';
1946
+ })();
1947
+
1948
+ module.exports = function (KEY, length, exec) {
1949
+ var SYMBOL = wks(KEY);
1950
+
1951
+ var DELEGATES_TO_SYMBOL = !fails(function () {
1952
+ // String methods call symbol-named RegEp methods
1953
+ var O = {};
1954
+ O[SYMBOL] = function () { return 7; };
1955
+ return ''[KEY](O) != 7;
1956
+ });
1957
+
1958
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {
1959
+ // Symbol-named RegExp methods call .exec
1960
+ var execCalled = false;
1961
+ var re = /a/;
1962
+ re.exec = function () { execCalled = true; return null; };
1963
+ if (KEY === 'split') {
1964
+ // RegExp[@@split] doesn't call the regex's exec method, but first creates
1965
+ // a new one. We need to return the patched regex when creating the new one.
1966
+ re.constructor = {};
1967
+ re.constructor[SPECIES] = function () { return re; };
1968
+ }
1969
+ re[SYMBOL]('');
1970
+ return !execCalled;
1971
+ }) : undefined;
1972
+
1973
+ if (
1974
+ !DELEGATES_TO_SYMBOL ||
1975
+ !DELEGATES_TO_EXEC ||
1976
+ (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
1977
+ (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
1978
+ ) {
1979
+ var nativeRegExpMethod = /./[SYMBOL];
1980
+ var fns = exec(
1981
+ defined,
1982
+ SYMBOL,
1983
+ ''[KEY],
1984
+ function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
1985
+ if (regexp.exec === regexpExec) {
1986
+ if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
1987
+ // The native String method already delegates to @@method (this
1988
+ // polyfilled function), leasing to infinite recursion.
1989
+ // We avoid it by directly calling the native @@method method.
1990
+ return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
1991
+ }
1992
+ return { done: true, value: nativeMethod.call(str, regexp, arg2) };
1993
+ }
1994
+ return { done: false };
1995
+ }
1996
+ );
1997
+ var strfn = fns[0];
1998
+ var rxfn = fns[1];
1999
+
2000
+ redefine(String.prototype, KEY, strfn);
2001
+ hide(RegExp.prototype, SYMBOL, length == 2
2002
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
2003
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
2004
+ ? function (string, arg) { return rxfn.call(string, this, arg); }
2005
+ // 21.2.5.6 RegExp.prototype[@@match](string)
2006
+ // 21.2.5.9 RegExp.prototype[@@search](string)
2007
+ : function (string) { return rxfn.call(string, this); }
2008
+ );
2009
+ }
2010
+ };
2011
+
2012
+
2013
+ /***/ }),
2014
+
2015
+ /***/ "./node_modules/core-js/modules/_flags.js":
2016
+ /*!************************************************!*\
2017
+ !*** ./node_modules/core-js/modules/_flags.js ***!
2018
+ \************************************************/
2019
+ /*! no static exports found */
2020
+ /***/ (function(module, exports, __webpack_require__) {
2021
+
2022
+ "use strict";
2023
+
2024
+ // 21.2.5.3 get RegExp.prototype.flags
2025
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
2026
+ module.exports = function () {
2027
+ var that = anObject(this);
2028
+ var result = '';
2029
+ if (that.global) result += 'g';
2030
+ if (that.ignoreCase) result += 'i';
2031
+ if (that.multiline) result += 'm';
2032
+ if (that.unicode) result += 'u';
2033
+ if (that.sticky) result += 'y';
2034
+ return result;
2035
+ };
2036
+
2037
+
2038
+ /***/ }),
2039
+
2040
+ /***/ "./node_modules/core-js/modules/_flatten-into-array.js":
2041
+ /*!*************************************************************!*\
2042
+ !*** ./node_modules/core-js/modules/_flatten-into-array.js ***!
2043
+ \*************************************************************/
2044
+ /*! no static exports found */
2045
+ /***/ (function(module, exports, __webpack_require__) {
2046
+
2047
+ "use strict";
2048
+
2049
+ // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
2050
+ var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js");
2051
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
2052
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
2053
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
2054
+ var IS_CONCAT_SPREADABLE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('isConcatSpreadable');
2055
+
2056
+ function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {
2057
+ var targetIndex = start;
2058
+ var sourceIndex = 0;
2059
+ var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;
2060
+ var element, spreadable;
2061
+
2062
+ while (sourceIndex < sourceLen) {
2063
+ if (sourceIndex in source) {
2064
+ element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
2065
+
2066
+ spreadable = false;
2067
+ if (isObject(element)) {
2068
+ spreadable = element[IS_CONCAT_SPREADABLE];
2069
+ spreadable = spreadable !== undefined ? !!spreadable : isArray(element);
2070
+ }
2071
+
2072
+ if (spreadable && depth > 0) {
2073
+ targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
2074
+ } else {
2075
+ if (targetIndex >= 0x1fffffffffffff) throw TypeError();
2076
+ target[targetIndex] = element;
2077
+ }
2078
+
2079
+ targetIndex++;
2080
+ }
2081
+ sourceIndex++;
2082
+ }
2083
+ return targetIndex;
2084
+ }
2085
+
2086
+ module.exports = flattenIntoArray;
2087
+
2088
+
2089
+ /***/ }),
2090
+
2091
+ /***/ "./node_modules/core-js/modules/_for-of.js":
2092
+ /*!*************************************************!*\
2093
+ !*** ./node_modules/core-js/modules/_for-of.js ***!
2094
+ \*************************************************/
2095
+ /*! no static exports found */
2096
+ /***/ (function(module, exports, __webpack_require__) {
2097
+
2098
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
2099
+ var call = __webpack_require__(/*! ./_iter-call */ "./node_modules/core-js/modules/_iter-call.js");
2100
+ var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js");
2101
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
2102
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
2103
+ var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js");
2104
+ var BREAK = {};
2105
+ var RETURN = {};
2106
+ var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
2107
+ var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
2108
+ var f = ctx(fn, that, entries ? 2 : 1);
2109
+ var index = 0;
2110
+ var length, step, iterator, result;
2111
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
2112
+ // fast case for arrays with default iterator
2113
+ if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
2114
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
2115
+ if (result === BREAK || result === RETURN) return result;
2116
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
2117
+ result = call(iterator, f, step.value, entries);
2118
+ if (result === BREAK || result === RETURN) return result;
2119
+ }
2120
+ };
2121
+ exports.BREAK = BREAK;
2122
+ exports.RETURN = RETURN;
2123
+
2124
+
2125
+ /***/ }),
2126
+
2127
+ /***/ "./node_modules/core-js/modules/_function-to-string.js":
2128
+ /*!*************************************************************!*\
2129
+ !*** ./node_modules/core-js/modules/_function-to-string.js ***!
2130
+ \*************************************************************/
2131
+ /*! no static exports found */
2132
+ /***/ (function(module, exports, __webpack_require__) {
2133
+
2134
+ module.exports = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString);
2135
+
2136
+
2137
+ /***/ }),
2138
+
2139
+ /***/ "./node_modules/core-js/modules/_global.js":
2140
+ /*!*************************************************!*\
2141
+ !*** ./node_modules/core-js/modules/_global.js ***!
2142
+ \*************************************************/
2143
+ /*! no static exports found */
2144
+ /***/ (function(module, exports) {
2145
+
2146
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
2147
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
2148
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
2149
+ // eslint-disable-next-line no-new-func
2150
+ : Function('return this')();
2151
+ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
2152
+
2153
+
2154
+ /***/ }),
2155
+
2156
+ /***/ "./node_modules/core-js/modules/_has.js":
2157
+ /*!**********************************************!*\
2158
+ !*** ./node_modules/core-js/modules/_has.js ***!
2159
+ \**********************************************/
2160
+ /*! no static exports found */
2161
+ /***/ (function(module, exports) {
2162
+
2163
+ var hasOwnProperty = {}.hasOwnProperty;
2164
+ module.exports = function (it, key) {
2165
+ return hasOwnProperty.call(it, key);
2166
+ };
2167
+
2168
+
2169
+ /***/ }),
2170
+
2171
+ /***/ "./node_modules/core-js/modules/_hide.js":
2172
+ /*!***********************************************!*\
2173
+ !*** ./node_modules/core-js/modules/_hide.js ***!
2174
+ \***********************************************/
2175
+ /*! no static exports found */
2176
+ /***/ (function(module, exports, __webpack_require__) {
2177
+
2178
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js");
2179
+ var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js");
2180
+ module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) {
2181
+ return dP.f(object, key, createDesc(1, value));
2182
+ } : function (object, key, value) {
2183
+ object[key] = value;
2184
+ return object;
2185
+ };
2186
+
2187
+
2188
+ /***/ }),
2189
+
2190
+ /***/ "./node_modules/core-js/modules/_html.js":
2191
+ /*!***********************************************!*\
2192
+ !*** ./node_modules/core-js/modules/_html.js ***!
2193
+ \***********************************************/
2194
+ /*! no static exports found */
2195
+ /***/ (function(module, exports, __webpack_require__) {
2196
+
2197
+ var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").document;
2198
+ module.exports = document && document.documentElement;
2199
+
2200
+
2201
+ /***/ }),
2202
+
2203
+ /***/ "./node_modules/core-js/modules/_ie8-dom-define.js":
2204
+ /*!*********************************************************!*\
2205
+ !*** ./node_modules/core-js/modules/_ie8-dom-define.js ***!
2206
+ \*********************************************************/
2207
+ /*! no static exports found */
2208
+ /***/ (function(module, exports, __webpack_require__) {
2209
+
2210
+ module.exports = !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
2211
+ return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
2212
+ });
2213
+
2214
+
2215
+ /***/ }),
2216
+
2217
+ /***/ "./node_modules/core-js/modules/_inherit-if-required.js":
2218
+ /*!**************************************************************!*\
2219
+ !*** ./node_modules/core-js/modules/_inherit-if-required.js ***!
2220
+ \**************************************************************/
2221
+ /*! no static exports found */
2222
+ /***/ (function(module, exports, __webpack_require__) {
2223
+
2224
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
2225
+ var setPrototypeOf = __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js").set;
2226
+ module.exports = function (that, target, C) {
2227
+ var S = target.constructor;
2228
+ var P;
2229
+ if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
2230
+ setPrototypeOf(that, P);
2231
+ } return that;
2232
+ };
2233
+
2234
+
2235
+ /***/ }),
2236
+
2237
+ /***/ "./node_modules/core-js/modules/_invoke.js":
2238
+ /*!*************************************************!*\
2239
+ !*** ./node_modules/core-js/modules/_invoke.js ***!
2240
+ \*************************************************/
2241
+ /*! no static exports found */
2242
+ /***/ (function(module, exports) {
2243
+
2244
+ // fast apply, http://jsperf.lnkit.com/fast-apply/5
2245
+ module.exports = function (fn, args, that) {
2246
+ var un = that === undefined;
2247
+ switch (args.length) {
2248
+ case 0: return un ? fn()
2249
+ : fn.call(that);
2250
+ case 1: return un ? fn(args[0])
2251
+ : fn.call(that, args[0]);
2252
+ case 2: return un ? fn(args[0], args[1])
2253
+ : fn.call(that, args[0], args[1]);
2254
+ case 3: return un ? fn(args[0], args[1], args[2])
2255
+ : fn.call(that, args[0], args[1], args[2]);
2256
+ case 4: return un ? fn(args[0], args[1], args[2], args[3])
2257
+ : fn.call(that, args[0], args[1], args[2], args[3]);
2258
+ } return fn.apply(that, args);
2259
+ };
2260
+
2261
+
2262
+ /***/ }),
2263
+
2264
+ /***/ "./node_modules/core-js/modules/_iobject.js":
2265
+ /*!**************************************************!*\
2266
+ !*** ./node_modules/core-js/modules/_iobject.js ***!
2267
+ \**************************************************/
2268
+ /*! no static exports found */
2269
+ /***/ (function(module, exports, __webpack_require__) {
2270
+
2271
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
2272
+ var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js");
2273
+ // eslint-disable-next-line no-prototype-builtins
2274
+ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
2275
+ return cof(it) == 'String' ? it.split('') : Object(it);
2276
+ };
2277
+
2278
+
2279
+ /***/ }),
2280
+
2281
+ /***/ "./node_modules/core-js/modules/_is-array-iter.js":
2282
+ /*!********************************************************!*\
2283
+ !*** ./node_modules/core-js/modules/_is-array-iter.js ***!
2284
+ \********************************************************/
2285
+ /*! no static exports found */
2286
+ /***/ (function(module, exports, __webpack_require__) {
2287
+
2288
+ // check on default Array iterator
2289
+ var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js");
2290
+ var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator');
2291
+ var ArrayProto = Array.prototype;
2292
+
2293
+ module.exports = function (it) {
2294
+ return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
2295
+ };
2296
+
2297
+
2298
+ /***/ }),
2299
+
2300
+ /***/ "./node_modules/core-js/modules/_is-array.js":
2301
+ /*!***************************************************!*\
2302
+ !*** ./node_modules/core-js/modules/_is-array.js ***!
2303
+ \***************************************************/
2304
+ /*! no static exports found */
2305
+ /***/ (function(module, exports, __webpack_require__) {
2306
+
2307
+ // 7.2.2 IsArray(argument)
2308
+ var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js");
2309
+ module.exports = Array.isArray || function isArray(arg) {
2310
+ return cof(arg) == 'Array';
2311
+ };
2312
+
2313
+
2314
+ /***/ }),
2315
+
2316
+ /***/ "./node_modules/core-js/modules/_is-integer.js":
2317
+ /*!*****************************************************!*\
2318
+ !*** ./node_modules/core-js/modules/_is-integer.js ***!
2319
+ \*****************************************************/
2320
+ /*! no static exports found */
2321
+ /***/ (function(module, exports, __webpack_require__) {
2322
+
2323
+ // 20.1.2.3 Number.isInteger(number)
2324
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
2325
+ var floor = Math.floor;
2326
+ module.exports = function isInteger(it) {
2327
+ return !isObject(it) && isFinite(it) && floor(it) === it;
2328
+ };
2329
+
2330
+
2331
+ /***/ }),
2332
+
2333
+ /***/ "./node_modules/core-js/modules/_is-object.js":
2334
+ /*!****************************************************!*\
2335
+ !*** ./node_modules/core-js/modules/_is-object.js ***!
2336
+ \****************************************************/
2337
+ /*! no static exports found */
2338
+ /***/ (function(module, exports) {
2339
+
2340
+ module.exports = function (it) {
2341
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
2342
+ };
2343
+
2344
+
2345
+ /***/ }),
2346
+
2347
+ /***/ "./node_modules/core-js/modules/_is-regexp.js":
2348
+ /*!****************************************************!*\
2349
+ !*** ./node_modules/core-js/modules/_is-regexp.js ***!
2350
+ \****************************************************/
2351
+ /*! no static exports found */
2352
+ /***/ (function(module, exports, __webpack_require__) {
2353
+
2354
+ // 7.2.8 IsRegExp(argument)
2355
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
2356
+ var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js");
2357
+ var MATCH = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match');
2358
+ module.exports = function (it) {
2359
+ var isRegExp;
2360
+ return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
2361
+ };
2362
+
2363
+
2364
+ /***/ }),
2365
+
2366
+ /***/ "./node_modules/core-js/modules/_iter-call.js":
2367
+ /*!****************************************************!*\
2368
+ !*** ./node_modules/core-js/modules/_iter-call.js ***!
2369
+ \****************************************************/
2370
+ /*! no static exports found */
2371
+ /***/ (function(module, exports, __webpack_require__) {
2372
+
2373
+ // call something on iterator step with safe closing on error
2374
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
2375
+ module.exports = function (iterator, fn, value, entries) {
2376
+ try {
2377
+ return entries ? fn(anObject(value)[0], value[1]) : fn(value);
2378
+ // 7.4.6 IteratorClose(iterator, completion)
2379
+ } catch (e) {
2380
+ var ret = iterator['return'];
2381
+ if (ret !== undefined) anObject(ret.call(iterator));
2382
+ throw e;
2383
+ }
2384
+ };
2385
+
2386
+
2387
+ /***/ }),
2388
+
2389
+ /***/ "./node_modules/core-js/modules/_iter-create.js":
2390
+ /*!******************************************************!*\
2391
+ !*** ./node_modules/core-js/modules/_iter-create.js ***!
2392
+ \******************************************************/
2393
+ /*! no static exports found */
2394
+ /***/ (function(module, exports, __webpack_require__) {
2395
+
2396
+ "use strict";
2397
+
2398
+ var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js");
2399
+ var descriptor = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js");
2400
+ var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js");
2401
+ var IteratorPrototype = {};
2402
+
2403
+ // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
2404
+ __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'), function () { return this; });
2405
+
2406
+ module.exports = function (Constructor, NAME, next) {
2407
+ Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
2408
+ setToStringTag(Constructor, NAME + ' Iterator');
2409
+ };
2410
+
2411
+
2412
+ /***/ }),
2413
+
2414
+ /***/ "./node_modules/core-js/modules/_iter-define.js":
2415
+ /*!******************************************************!*\
2416
+ !*** ./node_modules/core-js/modules/_iter-define.js ***!
2417
+ \******************************************************/
2418
+ /*! no static exports found */
2419
+ /***/ (function(module, exports, __webpack_require__) {
2420
+
2421
+ "use strict";
2422
+
2423
+ var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js");
2424
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
2425
+ var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js");
2426
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js");
2427
+ var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js");
2428
+ var $iterCreate = __webpack_require__(/*! ./_iter-create */ "./node_modules/core-js/modules/_iter-create.js");
2429
+ var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js");
2430
+ var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js");
2431
+ var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator');
2432
+ var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
2433
+ var FF_ITERATOR = '@@iterator';
2434
+ var KEYS = 'keys';
2435
+ var VALUES = 'values';
2436
+
2437
+ var returnThis = function () { return this; };
2438
+
2439
+ module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
2440
+ $iterCreate(Constructor, NAME, next);
2441
+ var getMethod = function (kind) {
2442
+ if (!BUGGY && kind in proto) return proto[kind];
2443
+ switch (kind) {
2444
+ case KEYS: return function keys() { return new Constructor(this, kind); };
2445
+ case VALUES: return function values() { return new Constructor(this, kind); };
2446
+ } return function entries() { return new Constructor(this, kind); };
2447
+ };
2448
+ var TAG = NAME + ' Iterator';
2449
+ var DEF_VALUES = DEFAULT == VALUES;
2450
+ var VALUES_BUG = false;
2451
+ var proto = Base.prototype;
2452
+ var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
2453
+ var $default = $native || getMethod(DEFAULT);
2454
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
2455
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
2456
+ var methods, key, IteratorPrototype;
2457
+ // Fix native
2458
+ if ($anyNative) {
2459
+ IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
2460
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
2461
+ // Set @@toStringTag to native iterators
2462
+ setToStringTag(IteratorPrototype, TAG, true);
2463
+ // fix for some old engines
2464
+ if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
2465
+ }
2466
+ }
2467
+ // fix Array#{values, @@iterator}.name in V8 / FF
2468
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
2469
+ VALUES_BUG = true;
2470
+ $default = function values() { return $native.call(this); };
2471
+ }
2472
+ // Define iterator
2473
+ if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
2474
+ hide(proto, ITERATOR, $default);
2475
+ }
2476
+ // Plug for library
2477
+ Iterators[NAME] = $default;
2478
+ Iterators[TAG] = returnThis;
2479
+ if (DEFAULT) {
2480
+ methods = {
2481
+ values: DEF_VALUES ? $default : getMethod(VALUES),
2482
+ keys: IS_SET ? $default : getMethod(KEYS),
2483
+ entries: $entries
2484
+ };
2485
+ if (FORCED) for (key in methods) {
2486
+ if (!(key in proto)) redefine(proto, key, methods[key]);
2487
+ } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
2488
+ }
2489
+ return methods;
2490
+ };
2491
+
2492
+
2493
+ /***/ }),
2494
+
2495
+ /***/ "./node_modules/core-js/modules/_iter-detect.js":
2496
+ /*!******************************************************!*\
2497
+ !*** ./node_modules/core-js/modules/_iter-detect.js ***!
2498
+ \******************************************************/
2499
+ /*! no static exports found */
2500
+ /***/ (function(module, exports, __webpack_require__) {
2501
+
2502
+ var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator');
2503
+ var SAFE_CLOSING = false;
2504
+
2505
+ try {
2506
+ var riter = [7][ITERATOR]();
2507
+ riter['return'] = function () { SAFE_CLOSING = true; };
2508
+ // eslint-disable-next-line no-throw-literal
2509
+ Array.from(riter, function () { throw 2; });
2510
+ } catch (e) { /* empty */ }
2511
+
2512
+ module.exports = function (exec, skipClosing) {
2513
+ if (!skipClosing && !SAFE_CLOSING) return false;
2514
+ var safe = false;
2515
+ try {
2516
+ var arr = [7];
2517
+ var iter = arr[ITERATOR]();
2518
+ iter.next = function () { return { done: safe = true }; };
2519
+ arr[ITERATOR] = function () { return iter; };
2520
+ exec(arr);
2521
+ } catch (e) { /* empty */ }
2522
+ return safe;
2523
+ };
2524
+
2525
+
2526
+ /***/ }),
2527
+
2528
+ /***/ "./node_modules/core-js/modules/_iter-step.js":
2529
+ /*!****************************************************!*\
2530
+ !*** ./node_modules/core-js/modules/_iter-step.js ***!
2531
+ \****************************************************/
2532
+ /*! no static exports found */
2533
+ /***/ (function(module, exports) {
2534
+
2535
+ module.exports = function (done, value) {
2536
+ return { value: value, done: !!done };
2537
+ };
2538
+
2539
+
2540
+ /***/ }),
2541
+
2542
+ /***/ "./node_modules/core-js/modules/_iterators.js":
2543
+ /*!****************************************************!*\
2544
+ !*** ./node_modules/core-js/modules/_iterators.js ***!
2545
+ \****************************************************/
2546
+ /*! no static exports found */
2547
+ /***/ (function(module, exports) {
2548
+
2549
+ module.exports = {};
2550
+
2551
+
2552
+ /***/ }),
2553
+
2554
+ /***/ "./node_modules/core-js/modules/_library.js":
2555
+ /*!**************************************************!*\
2556
+ !*** ./node_modules/core-js/modules/_library.js ***!
2557
+ \**************************************************/
2558
+ /*! no static exports found */
2559
+ /***/ (function(module, exports) {
2560
+
2561
+ module.exports = false;
2562
+
2563
+
2564
+ /***/ }),
2565
+
2566
+ /***/ "./node_modules/core-js/modules/_math-expm1.js":
2567
+ /*!*****************************************************!*\
2568
+ !*** ./node_modules/core-js/modules/_math-expm1.js ***!
2569
+ \*****************************************************/
2570
+ /*! no static exports found */
2571
+ /***/ (function(module, exports) {
2572
+
2573
+ // 20.2.2.14 Math.expm1(x)
2574
+ var $expm1 = Math.expm1;
2575
+ module.exports = (!$expm1
2576
+ // Old FF bug
2577
+ || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
2578
+ // Tor Browser bug
2579
+ || $expm1(-2e-17) != -2e-17
2580
+ ) ? function expm1(x) {
2581
+ return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
2582
+ } : $expm1;
2583
+
2584
+
2585
+ /***/ }),
2586
+
2587
+ /***/ "./node_modules/core-js/modules/_math-fround.js":
2588
+ /*!******************************************************!*\
2589
+ !*** ./node_modules/core-js/modules/_math-fround.js ***!
2590
+ \******************************************************/
2591
+ /*! no static exports found */
2592
+ /***/ (function(module, exports, __webpack_require__) {
2593
+
2594
+ // 20.2.2.16 Math.fround(x)
2595
+ var sign = __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js");
2596
+ var pow = Math.pow;
2597
+ var EPSILON = pow(2, -52);
2598
+ var EPSILON32 = pow(2, -23);
2599
+ var MAX32 = pow(2, 127) * (2 - EPSILON32);
2600
+ var MIN32 = pow(2, -126);
2601
+
2602
+ var roundTiesToEven = function (n) {
2603
+ return n + 1 / EPSILON - 1 / EPSILON;
2604
+ };
2605
+
2606
+ module.exports = Math.fround || function fround(x) {
2607
+ var $abs = Math.abs(x);
2608
+ var $sign = sign(x);
2609
+ var a, result;
2610
+ if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
2611
+ a = (1 + EPSILON32 / EPSILON) * $abs;
2612
+ result = a - (a - $abs);
2613
+ // eslint-disable-next-line no-self-compare
2614
+ if (result > MAX32 || result != result) return $sign * Infinity;
2615
+ return $sign * result;
2616
+ };
2617
+
2618
+
2619
+ /***/ }),
2620
+
2621
+ /***/ "./node_modules/core-js/modules/_math-log1p.js":
2622
+ /*!*****************************************************!*\
2623
+ !*** ./node_modules/core-js/modules/_math-log1p.js ***!
2624
+ \*****************************************************/
2625
+ /*! no static exports found */
2626
+ /***/ (function(module, exports) {
2627
+
2628
+ // 20.2.2.20 Math.log1p(x)
2629
+ module.exports = Math.log1p || function log1p(x) {
2630
+ return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
2631
+ };
2632
+
2633
+
2634
+ /***/ }),
2635
+
2636
+ /***/ "./node_modules/core-js/modules/_math-sign.js":
2637
+ /*!****************************************************!*\
2638
+ !*** ./node_modules/core-js/modules/_math-sign.js ***!
2639
+ \****************************************************/
2640
+ /*! no static exports found */
2641
+ /***/ (function(module, exports) {
2642
+
2643
+ // 20.2.2.28 Math.sign(x)
2644
+ module.exports = Math.sign || function sign(x) {
2645
+ // eslint-disable-next-line no-self-compare
2646
+ return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
2647
+ };
2648
+
2649
+
2650
+ /***/ }),
2651
+
2652
+ /***/ "./node_modules/core-js/modules/_meta.js":
2653
+ /*!***********************************************!*\
2654
+ !*** ./node_modules/core-js/modules/_meta.js ***!
2655
+ \***********************************************/
2656
+ /*! no static exports found */
2657
+ /***/ (function(module, exports, __webpack_require__) {
2658
+
2659
+ var META = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js")('meta');
2660
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
2661
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
2662
+ var setDesc = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f;
2663
+ var id = 0;
2664
+ var isExtensible = Object.isExtensible || function () {
2665
+ return true;
2666
+ };
2667
+ var FREEZE = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
2668
+ return isExtensible(Object.preventExtensions({}));
2669
+ });
2670
+ var setMeta = function (it) {
2671
+ setDesc(it, META, { value: {
2672
+ i: 'O' + ++id, // object ID
2673
+ w: {} // weak collections IDs
2674
+ } });
2675
+ };
2676
+ var fastKey = function (it, create) {
2677
+ // return primitive with prefix
2678
+ if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
2679
+ if (!has(it, META)) {
2680
+ // can't set metadata to uncaught frozen object
2681
+ if (!isExtensible(it)) return 'F';
2682
+ // not necessary to add metadata
2683
+ if (!create) return 'E';
2684
+ // add missing metadata
2685
+ setMeta(it);
2686
+ // return object ID
2687
+ } return it[META].i;
2688
+ };
2689
+ var getWeak = function (it, create) {
2690
+ if (!has(it, META)) {
2691
+ // can't set metadata to uncaught frozen object
2692
+ if (!isExtensible(it)) return true;
2693
+ // not necessary to add metadata
2694
+ if (!create) return false;
2695
+ // add missing metadata
2696
+ setMeta(it);
2697
+ // return hash weak collections IDs
2698
+ } return it[META].w;
2699
+ };
2700
+ // add metadata on freeze-family methods calling
2701
+ var onFreeze = function (it) {
2702
+ if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
2703
+ return it;
2704
+ };
2705
+ var meta = module.exports = {
2706
+ KEY: META,
2707
+ NEED: false,
2708
+ fastKey: fastKey,
2709
+ getWeak: getWeak,
2710
+ onFreeze: onFreeze
2711
+ };
2712
+
2713
+
2714
+ /***/ }),
2715
+
2716
+ /***/ "./node_modules/core-js/modules/_microtask.js":
2717
+ /*!****************************************************!*\
2718
+ !*** ./node_modules/core-js/modules/_microtask.js ***!
2719
+ \****************************************************/
2720
+ /*! no static exports found */
2721
+ /***/ (function(module, exports, __webpack_require__) {
2722
+
2723
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
2724
+ var macrotask = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js").set;
2725
+ var Observer = global.MutationObserver || global.WebKitMutationObserver;
2726
+ var process = global.process;
2727
+ var Promise = global.Promise;
2728
+ var isNode = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js")(process) == 'process';
2729
+
2730
+ module.exports = function () {
2731
+ var head, last, notify;
2732
+
2733
+ var flush = function () {
2734
+ var parent, fn;
2735
+ if (isNode && (parent = process.domain)) parent.exit();
2736
+ while (head) {
2737
+ fn = head.fn;
2738
+ head = head.next;
2739
+ try {
2740
+ fn();
2741
+ } catch (e) {
2742
+ if (head) notify();
2743
+ else last = undefined;
2744
+ throw e;
2745
+ }
2746
+ } last = undefined;
2747
+ if (parent) parent.enter();
2748
+ };
2749
+
2750
+ // Node.js
2751
+ if (isNode) {
2752
+ notify = function () {
2753
+ process.nextTick(flush);
2754
+ };
2755
+ // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
2756
+ } else if (Observer && !(global.navigator && global.navigator.standalone)) {
2757
+ var toggle = true;
2758
+ var node = document.createTextNode('');
2759
+ new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
2760
+ notify = function () {
2761
+ node.data = toggle = !toggle;
2762
+ };
2763
+ // environments with maybe non-completely correct, but existent Promise
2764
+ } else if (Promise && Promise.resolve) {
2765
+ // Promise.resolve without an argument throws an error in LG WebOS 2
2766
+ var promise = Promise.resolve(undefined);
2767
+ notify = function () {
2768
+ promise.then(flush);
2769
+ };
2770
+ // for other environments - macrotask based on:
2771
+ // - setImmediate
2772
+ // - MessageChannel
2773
+ // - window.postMessag
2774
+ // - onreadystatechange
2775
+ // - setTimeout
2776
+ } else {
2777
+ notify = function () {
2778
+ // strange IE + webpack dev server bug - use .call(global)
2779
+ macrotask.call(global, flush);
2780
+ };
2781
+ }
2782
+
2783
+ return function (fn) {
2784
+ var task = { fn: fn, next: undefined };
2785
+ if (last) last.next = task;
2786
+ if (!head) {
2787
+ head = task;
2788
+ notify();
2789
+ } last = task;
2790
+ };
2791
+ };
2792
+
2793
+
2794
+ /***/ }),
2795
+
2796
+ /***/ "./node_modules/core-js/modules/_new-promise-capability.js":
2797
+ /*!*****************************************************************!*\
2798
+ !*** ./node_modules/core-js/modules/_new-promise-capability.js ***!
2799
+ \*****************************************************************/
2800
+ /*! no static exports found */
2801
+ /***/ (function(module, exports, __webpack_require__) {
2802
+
2803
+ "use strict";
2804
+
2805
+ // 25.4.1.5 NewPromiseCapability(C)
2806
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
2807
+
2808
+ function PromiseCapability(C) {
2809
+ var resolve, reject;
2810
+ this.promise = new C(function ($$resolve, $$reject) {
2811
+ if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
2812
+ resolve = $$resolve;
2813
+ reject = $$reject;
2814
+ });
2815
+ this.resolve = aFunction(resolve);
2816
+ this.reject = aFunction(reject);
2817
+ }
2818
+
2819
+ module.exports.f = function (C) {
2820
+ return new PromiseCapability(C);
2821
+ };
2822
+
2823
+
2824
+ /***/ }),
2825
+
2826
+ /***/ "./node_modules/core-js/modules/_object-assign.js":
2827
+ /*!********************************************************!*\
2828
+ !*** ./node_modules/core-js/modules/_object-assign.js ***!
2829
+ \********************************************************/
2830
+ /*! no static exports found */
2831
+ /***/ (function(module, exports, __webpack_require__) {
2832
+
2833
+ "use strict";
2834
+
2835
+ // 19.1.2.1 Object.assign(target, source, ...)
2836
+ var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js");
2837
+ var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js");
2838
+ var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js");
2839
+ var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js");
2840
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
2841
+ var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js");
2842
+ var $assign = Object.assign;
2843
+
2844
+ // should work with symbols and should have deterministic property order (V8 bug)
2845
+ module.exports = !$assign || __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
2846
+ var A = {};
2847
+ var B = {};
2848
+ // eslint-disable-next-line no-undef
2849
+ var S = Symbol();
2850
+ var K = 'abcdefghijklmnopqrst';
2851
+ A[S] = 7;
2852
+ K.split('').forEach(function (k) { B[k] = k; });
2853
+ return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
2854
+ }) ? function assign(target, source) { // eslint-disable-line no-unused-vars
2855
+ var T = toObject(target);
2856
+ var aLen = arguments.length;
2857
+ var index = 1;
2858
+ var getSymbols = gOPS.f;
2859
+ var isEnum = pIE.f;
2860
+ while (aLen > index) {
2861
+ var S = IObject(arguments[index++]);
2862
+ var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
2863
+ var length = keys.length;
2864
+ var j = 0;
2865
+ var key;
2866
+ while (length > j) {
2867
+ key = keys[j++];
2868
+ if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
2869
+ }
2870
+ } return T;
2871
+ } : $assign;
2872
+
2873
+
2874
+ /***/ }),
2875
+
2876
+ /***/ "./node_modules/core-js/modules/_object-create.js":
2877
+ /*!********************************************************!*\
2878
+ !*** ./node_modules/core-js/modules/_object-create.js ***!
2879
+ \********************************************************/
2880
+ /*! no static exports found */
2881
+ /***/ (function(module, exports, __webpack_require__) {
2882
+
2883
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
2884
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
2885
+ var dPs = __webpack_require__(/*! ./_object-dps */ "./node_modules/core-js/modules/_object-dps.js");
2886
+ var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js");
2887
+ var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
2888
+ var Empty = function () { /* empty */ };
2889
+ var PROTOTYPE = 'prototype';
2890
+
2891
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
2892
+ var createDict = function () {
2893
+ // Thrash, waste and sodomy: IE GC bug
2894
+ var iframe = __webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js")('iframe');
2895
+ var i = enumBugKeys.length;
2896
+ var lt = '<';
2897
+ var gt = '>';
2898
+ var iframeDocument;
2899
+ iframe.style.display = 'none';
2900
+ __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js").appendChild(iframe);
2901
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
2902
+ // createDict = iframe.contentWindow.Object;
2903
+ // html.removeChild(iframe);
2904
+ iframeDocument = iframe.contentWindow.document;
2905
+ iframeDocument.open();
2906
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
2907
+ iframeDocument.close();
2908
+ createDict = iframeDocument.F;
2909
+ while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
2910
+ return createDict();
2911
+ };
2912
+
2913
+ module.exports = Object.create || function create(O, Properties) {
2914
+ var result;
2915
+ if (O !== null) {
2916
+ Empty[PROTOTYPE] = anObject(O);
2917
+ result = new Empty();
2918
+ Empty[PROTOTYPE] = null;
2919
+ // add "__proto__" for Object.getPrototypeOf polyfill
2920
+ result[IE_PROTO] = O;
2921
+ } else result = createDict();
2922
+ return Properties === undefined ? result : dPs(result, Properties);
2923
+ };
2924
+
2925
+
2926
+ /***/ }),
2927
+
2928
+ /***/ "./node_modules/core-js/modules/_object-dp.js":
2929
+ /*!****************************************************!*\
2930
+ !*** ./node_modules/core-js/modules/_object-dp.js ***!
2931
+ \****************************************************/
2932
+ /*! no static exports found */
2933
+ /***/ (function(module, exports, __webpack_require__) {
2934
+
2935
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
2936
+ var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/modules/_ie8-dom-define.js");
2937
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js");
2938
+ var dP = Object.defineProperty;
2939
+
2940
+ exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
2941
+ anObject(O);
2942
+ P = toPrimitive(P, true);
2943
+ anObject(Attributes);
2944
+ if (IE8_DOM_DEFINE) try {
2945
+ return dP(O, P, Attributes);
2946
+ } catch (e) { /* empty */ }
2947
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
2948
+ if ('value' in Attributes) O[P] = Attributes.value;
2949
+ return O;
2950
+ };
2951
+
2952
+
2953
+ /***/ }),
2954
+
2955
+ /***/ "./node_modules/core-js/modules/_object-dps.js":
2956
+ /*!*****************************************************!*\
2957
+ !*** ./node_modules/core-js/modules/_object-dps.js ***!
2958
+ \*****************************************************/
2959
+ /*! no static exports found */
2960
+ /***/ (function(module, exports, __webpack_require__) {
2961
+
2962
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js");
2963
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
2964
+ var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js");
2965
+
2966
+ module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
2967
+ anObject(O);
2968
+ var keys = getKeys(Properties);
2969
+ var length = keys.length;
2970
+ var i = 0;
2971
+ var P;
2972
+ while (length > i) dP.f(O, P = keys[i++], Properties[P]);
2973
+ return O;
2974
+ };
2975
+
2976
+
2977
+ /***/ }),
2978
+
2979
+ /***/ "./node_modules/core-js/modules/_object-gopd.js":
2980
+ /*!******************************************************!*\
2981
+ !*** ./node_modules/core-js/modules/_object-gopd.js ***!
2982
+ \******************************************************/
2983
+ /*! no static exports found */
2984
+ /***/ (function(module, exports, __webpack_require__) {
2985
+
2986
+ var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js");
2987
+ var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js");
2988
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
2989
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js");
2990
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
2991
+ var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/modules/_ie8-dom-define.js");
2992
+ var gOPD = Object.getOwnPropertyDescriptor;
2993
+
2994
+ exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
2995
+ O = toIObject(O);
2996
+ P = toPrimitive(P, true);
2997
+ if (IE8_DOM_DEFINE) try {
2998
+ return gOPD(O, P);
2999
+ } catch (e) { /* empty */ }
3000
+ if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
3001
+ };
3002
+
3003
+
3004
+ /***/ }),
3005
+
3006
+ /***/ "./node_modules/core-js/modules/_object-gopn-ext.js":
3007
+ /*!**********************************************************!*\
3008
+ !*** ./node_modules/core-js/modules/_object-gopn-ext.js ***!
3009
+ \**********************************************************/
3010
+ /*! no static exports found */
3011
+ /***/ (function(module, exports, __webpack_require__) {
3012
+
3013
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
3014
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
3015
+ var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f;
3016
+ var toString = {}.toString;
3017
+
3018
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
3019
+ ? Object.getOwnPropertyNames(window) : [];
3020
+
3021
+ var getWindowNames = function (it) {
3022
+ try {
3023
+ return gOPN(it);
3024
+ } catch (e) {
3025
+ return windowNames.slice();
3026
+ }
3027
+ };
3028
+
3029
+ module.exports.f = function getOwnPropertyNames(it) {
3030
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
3031
+ };
3032
+
3033
+
3034
+ /***/ }),
3035
+
3036
+ /***/ "./node_modules/core-js/modules/_object-gopn.js":
3037
+ /*!******************************************************!*\
3038
+ !*** ./node_modules/core-js/modules/_object-gopn.js ***!
3039
+ \******************************************************/
3040
+ /*! no static exports found */
3041
+ /***/ (function(module, exports, __webpack_require__) {
3042
+
3043
+ // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
3044
+ var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/core-js/modules/_object-keys-internal.js");
3045
+ var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js").concat('length', 'prototype');
3046
+
3047
+ exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
3048
+ return $keys(O, hiddenKeys);
3049
+ };
3050
+
3051
+
3052
+ /***/ }),
3053
+
3054
+ /***/ "./node_modules/core-js/modules/_object-gops.js":
3055
+ /*!******************************************************!*\
3056
+ !*** ./node_modules/core-js/modules/_object-gops.js ***!
3057
+ \******************************************************/
3058
+ /*! no static exports found */
3059
+ /***/ (function(module, exports) {
3060
+
3061
+ exports.f = Object.getOwnPropertySymbols;
3062
+
3063
+
3064
+ /***/ }),
3065
+
3066
+ /***/ "./node_modules/core-js/modules/_object-gpo.js":
3067
+ /*!*****************************************************!*\
3068
+ !*** ./node_modules/core-js/modules/_object-gpo.js ***!
3069
+ \*****************************************************/
3070
+ /*! no static exports found */
3071
+ /***/ (function(module, exports, __webpack_require__) {
3072
+
3073
+ // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
3074
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
3075
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
3076
+ var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
3077
+ var ObjectProto = Object.prototype;
3078
+
3079
+ module.exports = Object.getPrototypeOf || function (O) {
3080
+ O = toObject(O);
3081
+ if (has(O, IE_PROTO)) return O[IE_PROTO];
3082
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
3083
+ return O.constructor.prototype;
3084
+ } return O instanceof Object ? ObjectProto : null;
3085
+ };
3086
+
3087
+
3088
+ /***/ }),
3089
+
3090
+ /***/ "./node_modules/core-js/modules/_object-keys-internal.js":
3091
+ /*!***************************************************************!*\
3092
+ !*** ./node_modules/core-js/modules/_object-keys-internal.js ***!
3093
+ \***************************************************************/
3094
+ /*! no static exports found */
3095
+ /***/ (function(module, exports, __webpack_require__) {
3096
+
3097
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
3098
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
3099
+ var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(false);
3100
+ var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
3101
+
3102
+ module.exports = function (object, names) {
3103
+ var O = toIObject(object);
3104
+ var i = 0;
3105
+ var result = [];
3106
+ var key;
3107
+ for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
3108
+ // Don't enum bug & hidden keys
3109
+ while (names.length > i) if (has(O, key = names[i++])) {
3110
+ ~arrayIndexOf(result, key) || result.push(key);
3111
+ }
3112
+ return result;
3113
+ };
3114
+
3115
+
3116
+ /***/ }),
3117
+
3118
+ /***/ "./node_modules/core-js/modules/_object-keys.js":
3119
+ /*!******************************************************!*\
3120
+ !*** ./node_modules/core-js/modules/_object-keys.js ***!
3121
+ \******************************************************/
3122
+ /*! no static exports found */
3123
+ /***/ (function(module, exports, __webpack_require__) {
3124
+
3125
+ // 19.1.2.14 / 15.2.3.14 Object.keys(O)
3126
+ var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/core-js/modules/_object-keys-internal.js");
3127
+ var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js");
3128
+
3129
+ module.exports = Object.keys || function keys(O) {
3130
+ return $keys(O, enumBugKeys);
3131
+ };
3132
+
3133
+
3134
+ /***/ }),
3135
+
3136
+ /***/ "./node_modules/core-js/modules/_object-pie.js":
3137
+ /*!*****************************************************!*\
3138
+ !*** ./node_modules/core-js/modules/_object-pie.js ***!
3139
+ \*****************************************************/
3140
+ /*! no static exports found */
3141
+ /***/ (function(module, exports) {
3142
+
3143
+ exports.f = {}.propertyIsEnumerable;
3144
+
3145
+
3146
+ /***/ }),
3147
+
3148
+ /***/ "./node_modules/core-js/modules/_object-sap.js":
3149
+ /*!*****************************************************!*\
3150
+ !*** ./node_modules/core-js/modules/_object-sap.js ***!
3151
+ \*****************************************************/
3152
+ /*! no static exports found */
3153
+ /***/ (function(module, exports, __webpack_require__) {
3154
+
3155
+ // most Object methods by ES6 should accept primitives
3156
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
3157
+ var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js");
3158
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
3159
+ module.exports = function (KEY, exec) {
3160
+ var fn = (core.Object || {})[KEY] || Object[KEY];
3161
+ var exp = {};
3162
+ exp[KEY] = exec(fn);
3163
+ $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
3164
+ };
3165
+
3166
+
3167
+ /***/ }),
3168
+
3169
+ /***/ "./node_modules/core-js/modules/_object-to-array.js":
3170
+ /*!**********************************************************!*\
3171
+ !*** ./node_modules/core-js/modules/_object-to-array.js ***!
3172
+ \**********************************************************/
3173
+ /*! no static exports found */
3174
+ /***/ (function(module, exports, __webpack_require__) {
3175
+
3176
+ var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js");
3177
+ var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js");
3178
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
3179
+ var isEnum = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js").f;
3180
+ module.exports = function (isEntries) {
3181
+ return function (it) {
3182
+ var O = toIObject(it);
3183
+ var keys = getKeys(O);
3184
+ var length = keys.length;
3185
+ var i = 0;
3186
+ var result = [];
3187
+ var key;
3188
+ while (length > i) {
3189
+ key = keys[i++];
3190
+ if (!DESCRIPTORS || isEnum.call(O, key)) {
3191
+ result.push(isEntries ? [key, O[key]] : O[key]);
3192
+ }
3193
+ }
3194
+ return result;
3195
+ };
3196
+ };
3197
+
3198
+
3199
+ /***/ }),
3200
+
3201
+ /***/ "./node_modules/core-js/modules/_own-keys.js":
3202
+ /*!***************************************************!*\
3203
+ !*** ./node_modules/core-js/modules/_own-keys.js ***!
3204
+ \***************************************************/
3205
+ /*! no static exports found */
3206
+ /***/ (function(module, exports, __webpack_require__) {
3207
+
3208
+ // all object keys, includes non-enumerable and symbols
3209
+ var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js");
3210
+ var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js");
3211
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
3212
+ var Reflect = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect;
3213
+ module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
3214
+ var keys = gOPN.f(anObject(it));
3215
+ var getSymbols = gOPS.f;
3216
+ return getSymbols ? keys.concat(getSymbols(it)) : keys;
3217
+ };
3218
+
3219
+
3220
+ /***/ }),
3221
+
3222
+ /***/ "./node_modules/core-js/modules/_parse-float.js":
3223
+ /*!******************************************************!*\
3224
+ !*** ./node_modules/core-js/modules/_parse-float.js ***!
3225
+ \******************************************************/
3226
+ /*! no static exports found */
3227
+ /***/ (function(module, exports, __webpack_require__) {
3228
+
3229
+ var $parseFloat = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").parseFloat;
3230
+ var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim;
3231
+
3232
+ module.exports = 1 / $parseFloat(__webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js") + '-0') !== -Infinity ? function parseFloat(str) {
3233
+ var string = $trim(String(str), 3);
3234
+ var result = $parseFloat(string);
3235
+ return result === 0 && string.charAt(0) == '-' ? -0 : result;
3236
+ } : $parseFloat;
3237
+
3238
+
3239
+ /***/ }),
3240
+
3241
+ /***/ "./node_modules/core-js/modules/_parse-int.js":
3242
+ /*!****************************************************!*\
3243
+ !*** ./node_modules/core-js/modules/_parse-int.js ***!
3244
+ \****************************************************/
3245
+ /*! no static exports found */
3246
+ /***/ (function(module, exports, __webpack_require__) {
3247
+
3248
+ var $parseInt = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").parseInt;
3249
+ var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim;
3250
+ var ws = __webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js");
3251
+ var hex = /^[-+]?0[xX]/;
3252
+
3253
+ module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {
3254
+ var string = $trim(String(str), 3);
3255
+ return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
3256
+ } : $parseInt;
3257
+
3258
+
3259
+ /***/ }),
3260
+
3261
+ /***/ "./node_modules/core-js/modules/_perform.js":
3262
+ /*!**************************************************!*\
3263
+ !*** ./node_modules/core-js/modules/_perform.js ***!
3264
+ \**************************************************/
3265
+ /*! no static exports found */
3266
+ /***/ (function(module, exports) {
3267
+
3268
+ module.exports = function (exec) {
3269
+ try {
3270
+ return { e: false, v: exec() };
3271
+ } catch (e) {
3272
+ return { e: true, v: e };
3273
+ }
3274
+ };
3275
+
3276
+
3277
+ /***/ }),
3278
+
3279
+ /***/ "./node_modules/core-js/modules/_promise-resolve.js":
3280
+ /*!**********************************************************!*\
3281
+ !*** ./node_modules/core-js/modules/_promise-resolve.js ***!
3282
+ \**********************************************************/
3283
+ /*! no static exports found */
3284
+ /***/ (function(module, exports, __webpack_require__) {
3285
+
3286
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
3287
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
3288
+ var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "./node_modules/core-js/modules/_new-promise-capability.js");
3289
+
3290
+ module.exports = function (C, x) {
3291
+ anObject(C);
3292
+ if (isObject(x) && x.constructor === C) return x;
3293
+ var promiseCapability = newPromiseCapability.f(C);
3294
+ var resolve = promiseCapability.resolve;
3295
+ resolve(x);
3296
+ return promiseCapability.promise;
3297
+ };
3298
+
3299
+
3300
+ /***/ }),
3301
+
3302
+ /***/ "./node_modules/core-js/modules/_property-desc.js":
3303
+ /*!********************************************************!*\
3304
+ !*** ./node_modules/core-js/modules/_property-desc.js ***!
3305
+ \********************************************************/
3306
+ /*! no static exports found */
3307
+ /***/ (function(module, exports) {
3308
+
3309
+ module.exports = function (bitmap, value) {
3310
+ return {
3311
+ enumerable: !(bitmap & 1),
3312
+ configurable: !(bitmap & 2),
3313
+ writable: !(bitmap & 4),
3314
+ value: value
3315
+ };
3316
+ };
3317
+
3318
+
3319
+ /***/ }),
3320
+
3321
+ /***/ "./node_modules/core-js/modules/_redefine-all.js":
3322
+ /*!*******************************************************!*\
3323
+ !*** ./node_modules/core-js/modules/_redefine-all.js ***!
3324
+ \*******************************************************/
3325
+ /*! no static exports found */
3326
+ /***/ (function(module, exports, __webpack_require__) {
3327
+
3328
+ var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js");
3329
+ module.exports = function (target, src, safe) {
3330
+ for (var key in src) redefine(target, key, src[key], safe);
3331
+ return target;
3332
+ };
3333
+
3334
+
3335
+ /***/ }),
3336
+
3337
+ /***/ "./node_modules/core-js/modules/_redefine.js":
3338
+ /*!***************************************************!*\
3339
+ !*** ./node_modules/core-js/modules/_redefine.js ***!
3340
+ \***************************************************/
3341
+ /*! no static exports found */
3342
+ /***/ (function(module, exports, __webpack_require__) {
3343
+
3344
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
3345
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js");
3346
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
3347
+ var SRC = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js")('src');
3348
+ var $toString = __webpack_require__(/*! ./_function-to-string */ "./node_modules/core-js/modules/_function-to-string.js");
3349
+ var TO_STRING = 'toString';
3350
+ var TPL = ('' + $toString).split(TO_STRING);
3351
+
3352
+ __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js").inspectSource = function (it) {
3353
+ return $toString.call(it);
3354
+ };
3355
+
3356
+ (module.exports = function (O, key, val, safe) {
3357
+ var isFunction = typeof val == 'function';
3358
+ if (isFunction) has(val, 'name') || hide(val, 'name', key);
3359
+ if (O[key] === val) return;
3360
+ if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
3361
+ if (O === global) {
3362
+ O[key] = val;
3363
+ } else if (!safe) {
3364
+ delete O[key];
3365
+ hide(O, key, val);
3366
+ } else if (O[key]) {
3367
+ O[key] = val;
3368
+ } else {
3369
+ hide(O, key, val);
3370
+ }
3371
+ // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
3372
+ })(Function.prototype, TO_STRING, function toString() {
3373
+ return typeof this == 'function' && this[SRC] || $toString.call(this);
3374
+ });
3375
+
3376
+
3377
+ /***/ }),
3378
+
3379
+ /***/ "./node_modules/core-js/modules/_regexp-exec-abstract.js":
3380
+ /*!***************************************************************!*\
3381
+ !*** ./node_modules/core-js/modules/_regexp-exec-abstract.js ***!
3382
+ \***************************************************************/
3383
+ /*! no static exports found */
3384
+ /***/ (function(module, exports, __webpack_require__) {
3385
+
3386
+ "use strict";
3387
+
3388
+
3389
+ var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js");
3390
+ var builtinExec = RegExp.prototype.exec;
3391
+
3392
+ // `RegExpExec` abstract operation
3393
+ // https://tc39.github.io/ecma262/#sec-regexpexec
3394
+ module.exports = function (R, S) {
3395
+ var exec = R.exec;
3396
+ if (typeof exec === 'function') {
3397
+ var result = exec.call(R, S);
3398
+ if (typeof result !== 'object') {
3399
+ throw new TypeError('RegExp exec method returned something other than an Object or null');
3400
+ }
3401
+ return result;
3402
+ }
3403
+ if (classof(R) !== 'RegExp') {
3404
+ throw new TypeError('RegExp#exec called on incompatible receiver');
3405
+ }
3406
+ return builtinExec.call(R, S);
3407
+ };
3408
+
3409
+
3410
+ /***/ }),
3411
+
3412
+ /***/ "./node_modules/core-js/modules/_regexp-exec.js":
3413
+ /*!******************************************************!*\
3414
+ !*** ./node_modules/core-js/modules/_regexp-exec.js ***!
3415
+ \******************************************************/
3416
+ /*! no static exports found */
3417
+ /***/ (function(module, exports, __webpack_require__) {
3418
+
3419
+ "use strict";
3420
+
3421
+
3422
+ var regexpFlags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js");
3423
+
3424
+ var nativeExec = RegExp.prototype.exec;
3425
+ // This always refers to the native implementation, because the
3426
+ // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
3427
+ // which loads this file before patching the method.
3428
+ var nativeReplace = String.prototype.replace;
3429
+
3430
+ var patchedExec = nativeExec;
3431
+
3432
+ var LAST_INDEX = 'lastIndex';
3433
+
3434
+ var UPDATES_LAST_INDEX_WRONG = (function () {
3435
+ var re1 = /a/,
3436
+ re2 = /b*/g;
3437
+ nativeExec.call(re1, 'a');
3438
+ nativeExec.call(re2, 'a');
3439
+ return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
3440
+ })();
3441
+
3442
+ // nonparticipating capturing group, copied from es5-shim's String#split patch.
3443
+ var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
3444
+
3445
+ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
3446
+
3447
+ if (PATCH) {
3448
+ patchedExec = function exec(str) {
3449
+ var re = this;
3450
+ var lastIndex, reCopy, match, i;
3451
+
3452
+ if (NPCG_INCLUDED) {
3453
+ reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
3454
+ }
3455
+ if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];
3456
+
3457
+ match = nativeExec.call(re, str);
3458
+
3459
+ if (UPDATES_LAST_INDEX_WRONG && match) {
3460
+ re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
3461
+ }
3462
+ if (NPCG_INCLUDED && match && match.length > 1) {
3463
+ // Fix browsers whose `exec` methods don't consistently return `undefined`
3464
+ // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
3465
+ // eslint-disable-next-line no-loop-func
3466
+ nativeReplace.call(match[0], reCopy, function () {
3467
+ for (i = 1; i < arguments.length - 2; i++) {
3468
+ if (arguments[i] === undefined) match[i] = undefined;
3469
+ }
3470
+ });
3471
+ }
3472
+
3473
+ return match;
3474
+ };
3475
+ }
3476
+
3477
+ module.exports = patchedExec;
3478
+
3479
+
3480
+ /***/ }),
3481
+
3482
+ /***/ "./node_modules/core-js/modules/_same-value.js":
3483
+ /*!*****************************************************!*\
3484
+ !*** ./node_modules/core-js/modules/_same-value.js ***!
3485
+ \*****************************************************/
3486
+ /*! no static exports found */
3487
+ /***/ (function(module, exports) {
3488
+
3489
+ // 7.2.9 SameValue(x, y)
3490
+ module.exports = Object.is || function is(x, y) {
3491
+ // eslint-disable-next-line no-self-compare
3492
+ return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
3493
+ };
3494
+
3495
+
3496
+ /***/ }),
3497
+
3498
+ /***/ "./node_modules/core-js/modules/_set-proto.js":
3499
+ /*!****************************************************!*\
3500
+ !*** ./node_modules/core-js/modules/_set-proto.js ***!
3501
+ \****************************************************/
3502
+ /*! no static exports found */
3503
+ /***/ (function(module, exports, __webpack_require__) {
3504
+
3505
+ // Works with __proto__ only. Old v8 can't work with null proto objects.
3506
+ /* eslint-disable no-proto */
3507
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
3508
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
3509
+ var check = function (O, proto) {
3510
+ anObject(O);
3511
+ if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
3512
+ };
3513
+ module.exports = {
3514
+ set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
3515
+ function (test, buggy, set) {
3516
+ try {
3517
+ set = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
3518
+ set(test, []);
3519
+ buggy = !(test instanceof Array);
3520
+ } catch (e) { buggy = true; }
3521
+ return function setPrototypeOf(O, proto) {
3522
+ check(O, proto);
3523
+ if (buggy) O.__proto__ = proto;
3524
+ else set(O, proto);
3525
+ return O;
3526
+ };
3527
+ }({}, false) : undefined),
3528
+ check: check
3529
+ };
3530
+
3531
+
3532
+ /***/ }),
3533
+
3534
+ /***/ "./node_modules/core-js/modules/_set-species.js":
3535
+ /*!******************************************************!*\
3536
+ !*** ./node_modules/core-js/modules/_set-species.js ***!
3537
+ \******************************************************/
3538
+ /*! no static exports found */
3539
+ /***/ (function(module, exports, __webpack_require__) {
3540
+
3541
+ "use strict";
3542
+
3543
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
3544
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js");
3545
+ var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js");
3546
+ var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species');
3547
+
3548
+ module.exports = function (KEY) {
3549
+ var C = global[KEY];
3550
+ if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
3551
+ configurable: true,
3552
+ get: function () { return this; }
3553
+ });
3554
+ };
3555
+
3556
+
3557
+ /***/ }),
3558
+
3559
+ /***/ "./node_modules/core-js/modules/_set-to-string-tag.js":
3560
+ /*!************************************************************!*\
3561
+ !*** ./node_modules/core-js/modules/_set-to-string-tag.js ***!
3562
+ \************************************************************/
3563
+ /*! no static exports found */
3564
+ /***/ (function(module, exports, __webpack_require__) {
3565
+
3566
+ var def = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f;
3567
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
3568
+ var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag');
3569
+
3570
+ module.exports = function (it, tag, stat) {
3571
+ if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
3572
+ };
3573
+
3574
+
3575
+ /***/ }),
3576
+
3577
+ /***/ "./node_modules/core-js/modules/_shared-key.js":
3578
+ /*!*****************************************************!*\
3579
+ !*** ./node_modules/core-js/modules/_shared-key.js ***!
3580
+ \*****************************************************/
3581
+ /*! no static exports found */
3582
+ /***/ (function(module, exports, __webpack_require__) {
3583
+
3584
+ var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('keys');
3585
+ var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js");
3586
+ module.exports = function (key) {
3587
+ return shared[key] || (shared[key] = uid(key));
3588
+ };
3589
+
3590
+
3591
+ /***/ }),
3592
+
3593
+ /***/ "./node_modules/core-js/modules/_shared.js":
3594
+ /*!*************************************************!*\
3595
+ !*** ./node_modules/core-js/modules/_shared.js ***!
3596
+ \*************************************************/
3597
+ /*! no static exports found */
3598
+ /***/ (function(module, exports, __webpack_require__) {
3599
+
3600
+ var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js");
3601
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
3602
+ var SHARED = '__core-js_shared__';
3603
+ var store = global[SHARED] || (global[SHARED] = {});
3604
+
3605
+ (module.exports = function (key, value) {
3606
+ return store[key] || (store[key] = value !== undefined ? value : {});
3607
+ })('versions', []).push({
3608
+ version: core.version,
3609
+ mode: __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js") ? 'pure' : 'global',
3610
+ copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
3611
+ });
3612
+
3613
+
3614
+ /***/ }),
3615
+
3616
+ /***/ "./node_modules/core-js/modules/_species-constructor.js":
3617
+ /*!**************************************************************!*\
3618
+ !*** ./node_modules/core-js/modules/_species-constructor.js ***!
3619
+ \**************************************************************/
3620
+ /*! no static exports found */
3621
+ /***/ (function(module, exports, __webpack_require__) {
3622
+
3623
+ // 7.3.20 SpeciesConstructor(O, defaultConstructor)
3624
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
3625
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
3626
+ var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species');
3627
+ module.exports = function (O, D) {
3628
+ var C = anObject(O).constructor;
3629
+ var S;
3630
+ return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
3631
+ };
3632
+
3633
+
3634
+ /***/ }),
3635
+
3636
+ /***/ "./node_modules/core-js/modules/_strict-method.js":
3637
+ /*!********************************************************!*\
3638
+ !*** ./node_modules/core-js/modules/_strict-method.js ***!
3639
+ \********************************************************/
3640
+ /*! no static exports found */
3641
+ /***/ (function(module, exports, __webpack_require__) {
3642
+
3643
+ "use strict";
3644
+
3645
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
3646
+
3647
+ module.exports = function (method, arg) {
3648
+ return !!method && fails(function () {
3649
+ // eslint-disable-next-line no-useless-call
3650
+ arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
3651
+ });
3652
+ };
3653
+
3654
+
3655
+ /***/ }),
3656
+
3657
+ /***/ "./node_modules/core-js/modules/_string-at.js":
3658
+ /*!****************************************************!*\
3659
+ !*** ./node_modules/core-js/modules/_string-at.js ***!
3660
+ \****************************************************/
3661
+ /*! no static exports found */
3662
+ /***/ (function(module, exports, __webpack_require__) {
3663
+
3664
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
3665
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
3666
+ // true -> String#at
3667
+ // false -> String#codePointAt
3668
+ module.exports = function (TO_STRING) {
3669
+ return function (that, pos) {
3670
+ var s = String(defined(that));
3671
+ var i = toInteger(pos);
3672
+ var l = s.length;
3673
+ var a, b;
3674
+ if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
3675
+ a = s.charCodeAt(i);
3676
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
3677
+ ? TO_STRING ? s.charAt(i) : a
3678
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
3679
+ };
3680
+ };
3681
+
3682
+
3683
+ /***/ }),
3684
+
3685
+ /***/ "./node_modules/core-js/modules/_string-context.js":
3686
+ /*!*********************************************************!*\
3687
+ !*** ./node_modules/core-js/modules/_string-context.js ***!
3688
+ \*********************************************************/
3689
+ /*! no static exports found */
3690
+ /***/ (function(module, exports, __webpack_require__) {
3691
+
3692
+ // helper for String#{startsWith, endsWith, includes}
3693
+ var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js");
3694
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
3695
+
3696
+ module.exports = function (that, searchString, NAME) {
3697
+ if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
3698
+ return String(defined(that));
3699
+ };
3700
+
3701
+
3702
+ /***/ }),
3703
+
3704
+ /***/ "./node_modules/core-js/modules/_string-html.js":
3705
+ /*!******************************************************!*\
3706
+ !*** ./node_modules/core-js/modules/_string-html.js ***!
3707
+ \******************************************************/
3708
+ /*! no static exports found */
3709
+ /***/ (function(module, exports, __webpack_require__) {
3710
+
3711
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
3712
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
3713
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
3714
+ var quot = /"/g;
3715
+ // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
3716
+ var createHTML = function (string, tag, attribute, value) {
3717
+ var S = String(defined(string));
3718
+ var p1 = '<' + tag;
3719
+ if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
3720
+ return p1 + '>' + S + '</' + tag + '>';
3721
+ };
3722
+ module.exports = function (NAME, exec) {
3723
+ var O = {};
3724
+ O[NAME] = exec(createHTML);
3725
+ $export($export.P + $export.F * fails(function () {
3726
+ var test = ''[NAME]('"');
3727
+ return test !== test.toLowerCase() || test.split('"').length > 3;
3728
+ }), 'String', O);
3729
+ };
3730
+
3731
+
3732
+ /***/ }),
3733
+
3734
+ /***/ "./node_modules/core-js/modules/_string-pad.js":
3735
+ /*!*****************************************************!*\
3736
+ !*** ./node_modules/core-js/modules/_string-pad.js ***!
3737
+ \*****************************************************/
3738
+ /*! no static exports found */
3739
+ /***/ (function(module, exports, __webpack_require__) {
3740
+
3741
+ // https://github.com/tc39/proposal-string-pad-start-end
3742
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
3743
+ var repeat = __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js");
3744
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
3745
+
3746
+ module.exports = function (that, maxLength, fillString, left) {
3747
+ var S = String(defined(that));
3748
+ var stringLength = S.length;
3749
+ var fillStr = fillString === undefined ? ' ' : String(fillString);
3750
+ var intMaxLength = toLength(maxLength);
3751
+ if (intMaxLength <= stringLength || fillStr == '') return S;
3752
+ var fillLen = intMaxLength - stringLength;
3753
+ var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
3754
+ if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
3755
+ return left ? stringFiller + S : S + stringFiller;
3756
+ };
3757
+
3758
+
3759
+ /***/ }),
3760
+
3761
+ /***/ "./node_modules/core-js/modules/_string-repeat.js":
3762
+ /*!********************************************************!*\
3763
+ !*** ./node_modules/core-js/modules/_string-repeat.js ***!
3764
+ \********************************************************/
3765
+ /*! no static exports found */
3766
+ /***/ (function(module, exports, __webpack_require__) {
3767
+
3768
+ "use strict";
3769
+
3770
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
3771
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
3772
+
3773
+ module.exports = function repeat(count) {
3774
+ var str = String(defined(this));
3775
+ var res = '';
3776
+ var n = toInteger(count);
3777
+ if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
3778
+ for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;
3779
+ return res;
3780
+ };
3781
+
3782
+
3783
+ /***/ }),
3784
+
3785
+ /***/ "./node_modules/core-js/modules/_string-trim.js":
3786
+ /*!******************************************************!*\
3787
+ !*** ./node_modules/core-js/modules/_string-trim.js ***!
3788
+ \******************************************************/
3789
+ /*! no static exports found */
3790
+ /***/ (function(module, exports, __webpack_require__) {
3791
+
3792
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
3793
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
3794
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
3795
+ var spaces = __webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js");
3796
+ var space = '[' + spaces + ']';
3797
+ var non = '\u200b\u0085';
3798
+ var ltrim = RegExp('^' + space + space + '*');
3799
+ var rtrim = RegExp(space + space + '*$');
3800
+
3801
+ var exporter = function (KEY, exec, ALIAS) {
3802
+ var exp = {};
3803
+ var FORCE = fails(function () {
3804
+ return !!spaces[KEY]() || non[KEY]() != non;
3805
+ });
3806
+ var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
3807
+ if (ALIAS) exp[ALIAS] = fn;
3808
+ $export($export.P + $export.F * FORCE, 'String', exp);
3809
+ };
3810
+
3811
+ // 1 -> String#trimLeft
3812
+ // 2 -> String#trimRight
3813
+ // 3 -> String#trim
3814
+ var trim = exporter.trim = function (string, TYPE) {
3815
+ string = String(defined(string));
3816
+ if (TYPE & 1) string = string.replace(ltrim, '');
3817
+ if (TYPE & 2) string = string.replace(rtrim, '');
3818
+ return string;
3819
+ };
3820
+
3821
+ module.exports = exporter;
3822
+
3823
+
3824
+ /***/ }),
3825
+
3826
+ /***/ "./node_modules/core-js/modules/_string-ws.js":
3827
+ /*!****************************************************!*\
3828
+ !*** ./node_modules/core-js/modules/_string-ws.js ***!
3829
+ \****************************************************/
3830
+ /*! no static exports found */
3831
+ /***/ (function(module, exports) {
3832
+
3833
+ module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
3834
+ '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
3835
+
3836
+
3837
+ /***/ }),
3838
+
3839
+ /***/ "./node_modules/core-js/modules/_task.js":
3840
+ /*!***********************************************!*\
3841
+ !*** ./node_modules/core-js/modules/_task.js ***!
3842
+ \***********************************************/
3843
+ /*! no static exports found */
3844
+ /***/ (function(module, exports, __webpack_require__) {
3845
+
3846
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
3847
+ var invoke = __webpack_require__(/*! ./_invoke */ "./node_modules/core-js/modules/_invoke.js");
3848
+ var html = __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js");
3849
+ var cel = __webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js");
3850
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
3851
+ var process = global.process;
3852
+ var setTask = global.setImmediate;
3853
+ var clearTask = global.clearImmediate;
3854
+ var MessageChannel = global.MessageChannel;
3855
+ var Dispatch = global.Dispatch;
3856
+ var counter = 0;
3857
+ var queue = {};
3858
+ var ONREADYSTATECHANGE = 'onreadystatechange';
3859
+ var defer, channel, port;
3860
+ var run = function () {
3861
+ var id = +this;
3862
+ // eslint-disable-next-line no-prototype-builtins
3863
+ if (queue.hasOwnProperty(id)) {
3864
+ var fn = queue[id];
3865
+ delete queue[id];
3866
+ fn();
3867
+ }
3868
+ };
3869
+ var listener = function (event) {
3870
+ run.call(event.data);
3871
+ };
3872
+ // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
3873
+ if (!setTask || !clearTask) {
3874
+ setTask = function setImmediate(fn) {
3875
+ var args = [];
3876
+ var i = 1;
3877
+ while (arguments.length > i) args.push(arguments[i++]);
3878
+ queue[++counter] = function () {
3879
+ // eslint-disable-next-line no-new-func
3880
+ invoke(typeof fn == 'function' ? fn : Function(fn), args);
3881
+ };
3882
+ defer(counter);
3883
+ return counter;
3884
+ };
3885
+ clearTask = function clearImmediate(id) {
3886
+ delete queue[id];
3887
+ };
3888
+ // Node.js 0.8-
3889
+ if (__webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js")(process) == 'process') {
3890
+ defer = function (id) {
3891
+ process.nextTick(ctx(run, id, 1));
3892
+ };
3893
+ // Sphere (JS game engine) Dispatch API
3894
+ } else if (Dispatch && Dispatch.now) {
3895
+ defer = function (id) {
3896
+ Dispatch.now(ctx(run, id, 1));
3897
+ };
3898
+ // Browsers with MessageChannel, includes WebWorkers
3899
+ } else if (MessageChannel) {
3900
+ channel = new MessageChannel();
3901
+ port = channel.port2;
3902
+ channel.port1.onmessage = listener;
3903
+ defer = ctx(port.postMessage, port, 1);
3904
+ // Browsers with postMessage, skip WebWorkers
3905
+ // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
3906
+ } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
3907
+ defer = function (id) {
3908
+ global.postMessage(id + '', '*');
3909
+ };
3910
+ global.addEventListener('message', listener, false);
3911
+ // IE8-
3912
+ } else if (ONREADYSTATECHANGE in cel('script')) {
3913
+ defer = function (id) {
3914
+ html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
3915
+ html.removeChild(this);
3916
+ run.call(id);
3917
+ };
3918
+ };
3919
+ // Rest old browsers
3920
+ } else {
3921
+ defer = function (id) {
3922
+ setTimeout(ctx(run, id, 1), 0);
3923
+ };
3924
+ }
3925
+ }
3926
+ module.exports = {
3927
+ set: setTask,
3928
+ clear: clearTask
3929
+ };
3930
+
3931
+
3932
+ /***/ }),
3933
+
3934
+ /***/ "./node_modules/core-js/modules/_to-absolute-index.js":
3935
+ /*!************************************************************!*\
3936
+ !*** ./node_modules/core-js/modules/_to-absolute-index.js ***!
3937
+ \************************************************************/
3938
+ /*! no static exports found */
3939
+ /***/ (function(module, exports, __webpack_require__) {
3940
+
3941
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
3942
+ var max = Math.max;
3943
+ var min = Math.min;
3944
+ module.exports = function (index, length) {
3945
+ index = toInteger(index);
3946
+ return index < 0 ? max(index + length, 0) : min(index, length);
3947
+ };
3948
+
3949
+
3950
+ /***/ }),
3951
+
3952
+ /***/ "./node_modules/core-js/modules/_to-index.js":
3953
+ /*!***************************************************!*\
3954
+ !*** ./node_modules/core-js/modules/_to-index.js ***!
3955
+ \***************************************************/
3956
+ /*! no static exports found */
3957
+ /***/ (function(module, exports, __webpack_require__) {
3958
+
3959
+ // https://tc39.github.io/ecma262/#sec-toindex
3960
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
3961
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
3962
+ module.exports = function (it) {
3963
+ if (it === undefined) return 0;
3964
+ var number = toInteger(it);
3965
+ var length = toLength(number);
3966
+ if (number !== length) throw RangeError('Wrong length!');
3967
+ return length;
3968
+ };
3969
+
3970
+
3971
+ /***/ }),
3972
+
3973
+ /***/ "./node_modules/core-js/modules/_to-integer.js":
3974
+ /*!*****************************************************!*\
3975
+ !*** ./node_modules/core-js/modules/_to-integer.js ***!
3976
+ \*****************************************************/
3977
+ /*! no static exports found */
3978
+ /***/ (function(module, exports) {
3979
+
3980
+ // 7.1.4 ToInteger
3981
+ var ceil = Math.ceil;
3982
+ var floor = Math.floor;
3983
+ module.exports = function (it) {
3984
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
3985
+ };
3986
+
3987
+
3988
+ /***/ }),
3989
+
3990
+ /***/ "./node_modules/core-js/modules/_to-iobject.js":
3991
+ /*!*****************************************************!*\
3992
+ !*** ./node_modules/core-js/modules/_to-iobject.js ***!
3993
+ \*****************************************************/
3994
+ /*! no static exports found */
3995
+ /***/ (function(module, exports, __webpack_require__) {
3996
+
3997
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
3998
+ var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js");
3999
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
4000
+ module.exports = function (it) {
4001
+ return IObject(defined(it));
4002
+ };
4003
+
4004
+
4005
+ /***/ }),
4006
+
4007
+ /***/ "./node_modules/core-js/modules/_to-length.js":
4008
+ /*!****************************************************!*\
4009
+ !*** ./node_modules/core-js/modules/_to-length.js ***!
4010
+ \****************************************************/
4011
+ /*! no static exports found */
4012
+ /***/ (function(module, exports, __webpack_require__) {
4013
+
4014
+ // 7.1.15 ToLength
4015
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
4016
+ var min = Math.min;
4017
+ module.exports = function (it) {
4018
+ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
4019
+ };
4020
+
4021
+
4022
+ /***/ }),
4023
+
4024
+ /***/ "./node_modules/core-js/modules/_to-object.js":
4025
+ /*!****************************************************!*\
4026
+ !*** ./node_modules/core-js/modules/_to-object.js ***!
4027
+ \****************************************************/
4028
+ /*! no static exports found */
4029
+ /***/ (function(module, exports, __webpack_require__) {
4030
+
4031
+ // 7.1.13 ToObject(argument)
4032
+ var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js");
4033
+ module.exports = function (it) {
4034
+ return Object(defined(it));
4035
+ };
4036
+
4037
+
4038
+ /***/ }),
4039
+
4040
+ /***/ "./node_modules/core-js/modules/_to-primitive.js":
4041
+ /*!*******************************************************!*\
4042
+ !*** ./node_modules/core-js/modules/_to-primitive.js ***!
4043
+ \*******************************************************/
4044
+ /*! no static exports found */
4045
+ /***/ (function(module, exports, __webpack_require__) {
4046
+
4047
+ // 7.1.1 ToPrimitive(input [, PreferredType])
4048
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
4049
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
4050
+ // and the second argument - flag - preferred type is a string
4051
+ module.exports = function (it, S) {
4052
+ if (!isObject(it)) return it;
4053
+ var fn, val;
4054
+ if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
4055
+ if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
4056
+ if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
4057
+ throw TypeError("Can't convert object to primitive value");
4058
+ };
4059
+
4060
+
4061
+ /***/ }),
4062
+
4063
+ /***/ "./node_modules/core-js/modules/_typed-array.js":
4064
+ /*!******************************************************!*\
4065
+ !*** ./node_modules/core-js/modules/_typed-array.js ***!
4066
+ \******************************************************/
4067
+ /*! no static exports found */
4068
+ /***/ (function(module, exports, __webpack_require__) {
4069
+
4070
+ "use strict";
4071
+
4072
+ if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js")) {
4073
+ var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js");
4074
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
4075
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
4076
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
4077
+ var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js");
4078
+ var $buffer = __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js");
4079
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
4080
+ var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js");
4081
+ var propertyDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js");
4082
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js");
4083
+ var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js");
4084
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
4085
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
4086
+ var toIndex = __webpack_require__(/*! ./_to-index */ "./node_modules/core-js/modules/_to-index.js");
4087
+ var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js");
4088
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js");
4089
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
4090
+ var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js");
4091
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
4092
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
4093
+ var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js");
4094
+ var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js");
4095
+ var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js");
4096
+ var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f;
4097
+ var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js");
4098
+ var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js");
4099
+ var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js");
4100
+ var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js");
4101
+ var createArrayIncludes = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js");
4102
+ var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js");
4103
+ var ArrayIterators = __webpack_require__(/*! ./es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js");
4104
+ var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js");
4105
+ var $iterDetect = __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js");
4106
+ var setSpecies = __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js");
4107
+ var arrayFill = __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js");
4108
+ var arrayCopyWithin = __webpack_require__(/*! ./_array-copy-within */ "./node_modules/core-js/modules/_array-copy-within.js");
4109
+ var $DP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js");
4110
+ var $GOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js");
4111
+ var dP = $DP.f;
4112
+ var gOPD = $GOPD.f;
4113
+ var RangeError = global.RangeError;
4114
+ var TypeError = global.TypeError;
4115
+ var Uint8Array = global.Uint8Array;
4116
+ var ARRAY_BUFFER = 'ArrayBuffer';
4117
+ var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;
4118
+ var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
4119
+ var PROTOTYPE = 'prototype';
4120
+ var ArrayProto = Array[PROTOTYPE];
4121
+ var $ArrayBuffer = $buffer.ArrayBuffer;
4122
+ var $DataView = $buffer.DataView;
4123
+ var arrayForEach = createArrayMethod(0);
4124
+ var arrayFilter = createArrayMethod(2);
4125
+ var arraySome = createArrayMethod(3);
4126
+ var arrayEvery = createArrayMethod(4);
4127
+ var arrayFind = createArrayMethod(5);
4128
+ var arrayFindIndex = createArrayMethod(6);
4129
+ var arrayIncludes = createArrayIncludes(true);
4130
+ var arrayIndexOf = createArrayIncludes(false);
4131
+ var arrayValues = ArrayIterators.values;
4132
+ var arrayKeys = ArrayIterators.keys;
4133
+ var arrayEntries = ArrayIterators.entries;
4134
+ var arrayLastIndexOf = ArrayProto.lastIndexOf;
4135
+ var arrayReduce = ArrayProto.reduce;
4136
+ var arrayReduceRight = ArrayProto.reduceRight;
4137
+ var arrayJoin = ArrayProto.join;
4138
+ var arraySort = ArrayProto.sort;
4139
+ var arraySlice = ArrayProto.slice;
4140
+ var arrayToString = ArrayProto.toString;
4141
+ var arrayToLocaleString = ArrayProto.toLocaleString;
4142
+ var ITERATOR = wks('iterator');
4143
+ var TAG = wks('toStringTag');
4144
+ var TYPED_CONSTRUCTOR = uid('typed_constructor');
4145
+ var DEF_CONSTRUCTOR = uid('def_constructor');
4146
+ var ALL_CONSTRUCTORS = $typed.CONSTR;
4147
+ var TYPED_ARRAY = $typed.TYPED;
4148
+ var VIEW = $typed.VIEW;
4149
+ var WRONG_LENGTH = 'Wrong length!';
4150
+
4151
+ var $map = createArrayMethod(1, function (O, length) {
4152
+ return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
4153
+ });
4154
+
4155
+ var LITTLE_ENDIAN = fails(function () {
4156
+ // eslint-disable-next-line no-undef
4157
+ return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
4158
+ });
4159
+
4160
+ var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {
4161
+ new Uint8Array(1).set({});
4162
+ });
4163
+
4164
+ var toOffset = function (it, BYTES) {
4165
+ var offset = toInteger(it);
4166
+ if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');
4167
+ return offset;
4168
+ };
4169
+
4170
+ var validate = function (it) {
4171
+ if (isObject(it) && TYPED_ARRAY in it) return it;
4172
+ throw TypeError(it + ' is not a typed array!');
4173
+ };
4174
+
4175
+ var allocate = function (C, length) {
4176
+ if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {
4177
+ throw TypeError('It is not a typed array constructor!');
4178
+ } return new C(length);
4179
+ };
4180
+
4181
+ var speciesFromList = function (O, list) {
4182
+ return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
4183
+ };
4184
+
4185
+ var fromList = function (C, list) {
4186
+ var index = 0;
4187
+ var length = list.length;
4188
+ var result = allocate(C, length);
4189
+ while (length > index) result[index] = list[index++];
4190
+ return result;
4191
+ };
4192
+
4193
+ var addGetter = function (it, key, internal) {
4194
+ dP(it, key, { get: function () { return this._d[internal]; } });
4195
+ };
4196
+
4197
+ var $from = function from(source /* , mapfn, thisArg */) {
4198
+ var O = toObject(source);
4199
+ var aLen = arguments.length;
4200
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
4201
+ var mapping = mapfn !== undefined;
4202
+ var iterFn = getIterFn(O);
4203
+ var i, length, values, result, step, iterator;
4204
+ if (iterFn != undefined && !isArrayIter(iterFn)) {
4205
+ for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {
4206
+ values.push(step.value);
4207
+ } O = values;
4208
+ }
4209
+ if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);
4210
+ for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {
4211
+ result[i] = mapping ? mapfn(O[i], i) : O[i];
4212
+ }
4213
+ return result;
4214
+ };
4215
+
4216
+ var $of = function of(/* ...items */) {
4217
+ var index = 0;
4218
+ var length = arguments.length;
4219
+ var result = allocate(this, length);
4220
+ while (length > index) result[index] = arguments[index++];
4221
+ return result;
4222
+ };
4223
+
4224
+ // iOS Safari 6.x fails here
4225
+ var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });
4226
+
4227
+ var $toLocaleString = function toLocaleString() {
4228
+ return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
4229
+ };
4230
+
4231
+ var proto = {
4232
+ copyWithin: function copyWithin(target, start /* , end */) {
4233
+ return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
4234
+ },
4235
+ every: function every(callbackfn /* , thisArg */) {
4236
+ return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4237
+ },
4238
+ fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars
4239
+ return arrayFill.apply(validate(this), arguments);
4240
+ },
4241
+ filter: function filter(callbackfn /* , thisArg */) {
4242
+ return speciesFromList(this, arrayFilter(validate(this), callbackfn,
4243
+ arguments.length > 1 ? arguments[1] : undefined));
4244
+ },
4245
+ find: function find(predicate /* , thisArg */) {
4246
+ return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
4247
+ },
4248
+ findIndex: function findIndex(predicate /* , thisArg */) {
4249
+ return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
4250
+ },
4251
+ forEach: function forEach(callbackfn /* , thisArg */) {
4252
+ arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4253
+ },
4254
+ indexOf: function indexOf(searchElement /* , fromIndex */) {
4255
+ return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
4256
+ },
4257
+ includes: function includes(searchElement /* , fromIndex */) {
4258
+ return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
4259
+ },
4260
+ join: function join(separator) { // eslint-disable-line no-unused-vars
4261
+ return arrayJoin.apply(validate(this), arguments);
4262
+ },
4263
+ lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars
4264
+ return arrayLastIndexOf.apply(validate(this), arguments);
4265
+ },
4266
+ map: function map(mapfn /* , thisArg */) {
4267
+ return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
4268
+ },
4269
+ reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
4270
+ return arrayReduce.apply(validate(this), arguments);
4271
+ },
4272
+ reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
4273
+ return arrayReduceRight.apply(validate(this), arguments);
4274
+ },
4275
+ reverse: function reverse() {
4276
+ var that = this;
4277
+ var length = validate(that).length;
4278
+ var middle = Math.floor(length / 2);
4279
+ var index = 0;
4280
+ var value;
4281
+ while (index < middle) {
4282
+ value = that[index];
4283
+ that[index++] = that[--length];
4284
+ that[length] = value;
4285
+ } return that;
4286
+ },
4287
+ some: function some(callbackfn /* , thisArg */) {
4288
+ return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4289
+ },
4290
+ sort: function sort(comparefn) {
4291
+ return arraySort.call(validate(this), comparefn);
4292
+ },
4293
+ subarray: function subarray(begin, end) {
4294
+ var O = validate(this);
4295
+ var length = O.length;
4296
+ var $begin = toAbsoluteIndex(begin, length);
4297
+ return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
4298
+ O.buffer,
4299
+ O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
4300
+ toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)
4301
+ );
4302
+ }
4303
+ };
4304
+
4305
+ var $slice = function slice(start, end) {
4306
+ return speciesFromList(this, arraySlice.call(validate(this), start, end));
4307
+ };
4308
+
4309
+ var $set = function set(arrayLike /* , offset */) {
4310
+ validate(this);
4311
+ var offset = toOffset(arguments[1], 1);
4312
+ var length = this.length;
4313
+ var src = toObject(arrayLike);
4314
+ var len = toLength(src.length);
4315
+ var index = 0;
4316
+ if (len + offset > length) throw RangeError(WRONG_LENGTH);
4317
+ while (index < len) this[offset + index] = src[index++];
4318
+ };
4319
+
4320
+ var $iterators = {
4321
+ entries: function entries() {
4322
+ return arrayEntries.call(validate(this));
4323
+ },
4324
+ keys: function keys() {
4325
+ return arrayKeys.call(validate(this));
4326
+ },
4327
+ values: function values() {
4328
+ return arrayValues.call(validate(this));
4329
+ }
4330
+ };
4331
+
4332
+ var isTAIndex = function (target, key) {
4333
+ return isObject(target)
4334
+ && target[TYPED_ARRAY]
4335
+ && typeof key != 'symbol'
4336
+ && key in target
4337
+ && String(+key) == String(key);
4338
+ };
4339
+ var $getDesc = function getOwnPropertyDescriptor(target, key) {
4340
+ return isTAIndex(target, key = toPrimitive(key, true))
4341
+ ? propertyDesc(2, target[key])
4342
+ : gOPD(target, key);
4343
+ };
4344
+ var $setDesc = function defineProperty(target, key, desc) {
4345
+ if (isTAIndex(target, key = toPrimitive(key, true))
4346
+ && isObject(desc)
4347
+ && has(desc, 'value')
4348
+ && !has(desc, 'get')
4349
+ && !has(desc, 'set')
4350
+ // TODO: add validation descriptor w/o calling accessors
4351
+ && !desc.configurable
4352
+ && (!has(desc, 'writable') || desc.writable)
4353
+ && (!has(desc, 'enumerable') || desc.enumerable)
4354
+ ) {
4355
+ target[key] = desc.value;
4356
+ return target;
4357
+ } return dP(target, key, desc);
4358
+ };
4359
+
4360
+ if (!ALL_CONSTRUCTORS) {
4361
+ $GOPD.f = $getDesc;
4362
+ $DP.f = $setDesc;
4363
+ }
4364
+
4365
+ $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
4366
+ getOwnPropertyDescriptor: $getDesc,
4367
+ defineProperty: $setDesc
4368
+ });
4369
+
4370
+ if (fails(function () { arrayToString.call({}); })) {
4371
+ arrayToString = arrayToLocaleString = function toString() {
4372
+ return arrayJoin.call(this);
4373
+ };
4374
+ }
4375
+
4376
+ var $TypedArrayPrototype$ = redefineAll({}, proto);
4377
+ redefineAll($TypedArrayPrototype$, $iterators);
4378
+ hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
4379
+ redefineAll($TypedArrayPrototype$, {
4380
+ slice: $slice,
4381
+ set: $set,
4382
+ constructor: function () { /* noop */ },
4383
+ toString: arrayToString,
4384
+ toLocaleString: $toLocaleString
4385
+ });
4386
+ addGetter($TypedArrayPrototype$, 'buffer', 'b');
4387
+ addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
4388
+ addGetter($TypedArrayPrototype$, 'byteLength', 'l');
4389
+ addGetter($TypedArrayPrototype$, 'length', 'e');
4390
+ dP($TypedArrayPrototype$, TAG, {
4391
+ get: function () { return this[TYPED_ARRAY]; }
4392
+ });
4393
+
4394
+ // eslint-disable-next-line max-statements
4395
+ module.exports = function (KEY, BYTES, wrapper, CLAMPED) {
4396
+ CLAMPED = !!CLAMPED;
4397
+ var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';
4398
+ var GETTER = 'get' + KEY;
4399
+ var SETTER = 'set' + KEY;
4400
+ var TypedArray = global[NAME];
4401
+ var Base = TypedArray || {};
4402
+ var TAC = TypedArray && getPrototypeOf(TypedArray);
4403
+ var FORCED = !TypedArray || !$typed.ABV;
4404
+ var O = {};
4405
+ var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
4406
+ var getter = function (that, index) {
4407
+ var data = that._d;
4408
+ return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
4409
+ };
4410
+ var setter = function (that, index, value) {
4411
+ var data = that._d;
4412
+ if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
4413
+ data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
4414
+ };
4415
+ var addElement = function (that, index) {
4416
+ dP(that, index, {
4417
+ get: function () {
4418
+ return getter(this, index);
4419
+ },
4420
+ set: function (value) {
4421
+ return setter(this, index, value);
4422
+ },
4423
+ enumerable: true
4424
+ });
4425
+ };
4426
+ if (FORCED) {
4427
+ TypedArray = wrapper(function (that, data, $offset, $length) {
4428
+ anInstance(that, TypedArray, NAME, '_d');
4429
+ var index = 0;
4430
+ var offset = 0;
4431
+ var buffer, byteLength, length, klass;
4432
+ if (!isObject(data)) {
4433
+ length = toIndex(data);
4434
+ byteLength = length * BYTES;
4435
+ buffer = new $ArrayBuffer(byteLength);
4436
+ } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
4437
+ buffer = data;
4438
+ offset = toOffset($offset, BYTES);
4439
+ var $len = data.byteLength;
4440
+ if ($length === undefined) {
4441
+ if ($len % BYTES) throw RangeError(WRONG_LENGTH);
4442
+ byteLength = $len - offset;
4443
+ if (byteLength < 0) throw RangeError(WRONG_LENGTH);
4444
+ } else {
4445
+ byteLength = toLength($length) * BYTES;
4446
+ if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);
4447
+ }
4448
+ length = byteLength / BYTES;
4449
+ } else if (TYPED_ARRAY in data) {
4450
+ return fromList(TypedArray, data);
4451
+ } else {
4452
+ return $from.call(TypedArray, data);
4453
+ }
4454
+ hide(that, '_d', {
4455
+ b: buffer,
4456
+ o: offset,
4457
+ l: byteLength,
4458
+ e: length,
4459
+ v: new $DataView(buffer)
4460
+ });
4461
+ while (index < length) addElement(that, index++);
4462
+ });
4463
+ TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
4464
+ hide(TypedArrayPrototype, 'constructor', TypedArray);
4465
+ } else if (!fails(function () {
4466
+ TypedArray(1);
4467
+ }) || !fails(function () {
4468
+ new TypedArray(-1); // eslint-disable-line no-new
4469
+ }) || !$iterDetect(function (iter) {
4470
+ new TypedArray(); // eslint-disable-line no-new
4471
+ new TypedArray(null); // eslint-disable-line no-new
4472
+ new TypedArray(1.5); // eslint-disable-line no-new
4473
+ new TypedArray(iter); // eslint-disable-line no-new
4474
+ }, true)) {
4475
+ TypedArray = wrapper(function (that, data, $offset, $length) {
4476
+ anInstance(that, TypedArray, NAME);
4477
+ var klass;
4478
+ // `ws` module bug, temporarily remove validation length for Uint8Array
4479
+ // https://github.com/websockets/ws/pull/645
4480
+ if (!isObject(data)) return new Base(toIndex(data));
4481
+ if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
4482
+ return $length !== undefined
4483
+ ? new Base(data, toOffset($offset, BYTES), $length)
4484
+ : $offset !== undefined
4485
+ ? new Base(data, toOffset($offset, BYTES))
4486
+ : new Base(data);
4487
+ }
4488
+ if (TYPED_ARRAY in data) return fromList(TypedArray, data);
4489
+ return $from.call(TypedArray, data);
4490
+ });
4491
+ arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {
4492
+ if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);
4493
+ });
4494
+ TypedArray[PROTOTYPE] = TypedArrayPrototype;
4495
+ if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;
4496
+ }
4497
+ var $nativeIterator = TypedArrayPrototype[ITERATOR];
4498
+ var CORRECT_ITER_NAME = !!$nativeIterator
4499
+ && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);
4500
+ var $iterator = $iterators.values;
4501
+ hide(TypedArray, TYPED_CONSTRUCTOR, true);
4502
+ hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
4503
+ hide(TypedArrayPrototype, VIEW, true);
4504
+ hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
4505
+
4506
+ if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {
4507
+ dP(TypedArrayPrototype, TAG, {
4508
+ get: function () { return NAME; }
4509
+ });
4510
+ }
4511
+
4512
+ O[NAME] = TypedArray;
4513
+
4514
+ $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
4515
+
4516
+ $export($export.S, NAME, {
4517
+ BYTES_PER_ELEMENT: BYTES
4518
+ });
4519
+
4520
+ $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {
4521
+ from: $from,
4522
+ of: $of
4523
+ });
4524
+
4525
+ if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
4526
+
4527
+ $export($export.P, NAME, proto);
4528
+
4529
+ setSpecies(NAME);
4530
+
4531
+ $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });
4532
+
4533
+ $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
4534
+
4535
+ if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;
4536
+
4537
+ $export($export.P + $export.F * fails(function () {
4538
+ new TypedArray(1).slice();
4539
+ }), NAME, { slice: $slice });
4540
+
4541
+ $export($export.P + $export.F * (fails(function () {
4542
+ return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();
4543
+ }) || !fails(function () {
4544
+ TypedArrayPrototype.toLocaleString.call([1, 2]);
4545
+ })), NAME, { toLocaleString: $toLocaleString });
4546
+
4547
+ Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
4548
+ if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);
4549
+ };
4550
+ } else module.exports = function () { /* empty */ };
4551
+
4552
+
4553
+ /***/ }),
4554
+
4555
+ /***/ "./node_modules/core-js/modules/_typed-buffer.js":
4556
+ /*!*******************************************************!*\
4557
+ !*** ./node_modules/core-js/modules/_typed-buffer.js ***!
4558
+ \*******************************************************/
4559
+ /*! no static exports found */
4560
+ /***/ (function(module, exports, __webpack_require__) {
4561
+
4562
+ "use strict";
4563
+
4564
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
4565
+ var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js");
4566
+ var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js");
4567
+ var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js");
4568
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js");
4569
+ var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js");
4570
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
4571
+ var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js");
4572
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
4573
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
4574
+ var toIndex = __webpack_require__(/*! ./_to-index */ "./node_modules/core-js/modules/_to-index.js");
4575
+ var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f;
4576
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f;
4577
+ var arrayFill = __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js");
4578
+ var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js");
4579
+ var ARRAY_BUFFER = 'ArrayBuffer';
4580
+ var DATA_VIEW = 'DataView';
4581
+ var PROTOTYPE = 'prototype';
4582
+ var WRONG_LENGTH = 'Wrong length!';
4583
+ var WRONG_INDEX = 'Wrong index!';
4584
+ var $ArrayBuffer = global[ARRAY_BUFFER];
4585
+ var $DataView = global[DATA_VIEW];
4586
+ var Math = global.Math;
4587
+ var RangeError = global.RangeError;
4588
+ // eslint-disable-next-line no-shadow-restricted-names
4589
+ var Infinity = global.Infinity;
4590
+ var BaseBuffer = $ArrayBuffer;
4591
+ var abs = Math.abs;
4592
+ var pow = Math.pow;
4593
+ var floor = Math.floor;
4594
+ var log = Math.log;
4595
+ var LN2 = Math.LN2;
4596
+ var BUFFER = 'buffer';
4597
+ var BYTE_LENGTH = 'byteLength';
4598
+ var BYTE_OFFSET = 'byteOffset';
4599
+ var $BUFFER = DESCRIPTORS ? '_b' : BUFFER;
4600
+ var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;
4601
+ var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
4602
+
4603
+ // IEEE754 conversions based on https://github.com/feross/ieee754
4604
+ function packIEEE754(value, mLen, nBytes) {
4605
+ var buffer = new Array(nBytes);
4606
+ var eLen = nBytes * 8 - mLen - 1;
4607
+ var eMax = (1 << eLen) - 1;
4608
+ var eBias = eMax >> 1;
4609
+ var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;
4610
+ var i = 0;
4611
+ var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
4612
+ var e, m, c;
4613
+ value = abs(value);
4614
+ // eslint-disable-next-line no-self-compare
4615
+ if (value != value || value === Infinity) {
4616
+ // eslint-disable-next-line no-self-compare
4617
+ m = value != value ? 1 : 0;
4618
+ e = eMax;
4619
+ } else {
4620
+ e = floor(log(value) / LN2);
4621
+ if (value * (c = pow(2, -e)) < 1) {
4622
+ e--;
4623
+ c *= 2;
4624
+ }
4625
+ if (e + eBias >= 1) {
4626
+ value += rt / c;
4627
+ } else {
4628
+ value += rt * pow(2, 1 - eBias);
4629
+ }
4630
+ if (value * c >= 2) {
4631
+ e++;
4632
+ c /= 2;
4633
+ }
4634
+ if (e + eBias >= eMax) {
4635
+ m = 0;
4636
+ e = eMax;
4637
+ } else if (e + eBias >= 1) {
4638
+ m = (value * c - 1) * pow(2, mLen);
4639
+ e = e + eBias;
4640
+ } else {
4641
+ m = value * pow(2, eBias - 1) * pow(2, mLen);
4642
+ e = 0;
4643
+ }
4644
+ }
4645
+ for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
4646
+ e = e << mLen | m;
4647
+ eLen += mLen;
4648
+ for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
4649
+ buffer[--i] |= s * 128;
4650
+ return buffer;
4651
+ }
4652
+ function unpackIEEE754(buffer, mLen, nBytes) {
4653
+ var eLen = nBytes * 8 - mLen - 1;
4654
+ var eMax = (1 << eLen) - 1;
4655
+ var eBias = eMax >> 1;
4656
+ var nBits = eLen - 7;
4657
+ var i = nBytes - 1;
4658
+ var s = buffer[i--];
4659
+ var e = s & 127;
4660
+ var m;
4661
+ s >>= 7;
4662
+ for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
4663
+ m = e & (1 << -nBits) - 1;
4664
+ e >>= -nBits;
4665
+ nBits += mLen;
4666
+ for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
4667
+ if (e === 0) {
4668
+ e = 1 - eBias;
4669
+ } else if (e === eMax) {
4670
+ return m ? NaN : s ? -Infinity : Infinity;
4671
+ } else {
4672
+ m = m + pow(2, mLen);
4673
+ e = e - eBias;
4674
+ } return (s ? -1 : 1) * m * pow(2, e - mLen);
4675
+ }
4676
+
4677
+ function unpackI32(bytes) {
4678
+ return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
4679
+ }
4680
+ function packI8(it) {
4681
+ return [it & 0xff];
4682
+ }
4683
+ function packI16(it) {
4684
+ return [it & 0xff, it >> 8 & 0xff];
4685
+ }
4686
+ function packI32(it) {
4687
+ return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
4688
+ }
4689
+ function packF64(it) {
4690
+ return packIEEE754(it, 52, 8);
4691
+ }
4692
+ function packF32(it) {
4693
+ return packIEEE754(it, 23, 4);
4694
+ }
4695
+
4696
+ function addGetter(C, key, internal) {
4697
+ dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });
4698
+ }
4699
+
4700
+ function get(view, bytes, index, isLittleEndian) {
4701
+ var numIndex = +index;
4702
+ var intIndex = toIndex(numIndex);
4703
+ if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
4704
+ var store = view[$BUFFER]._b;
4705
+ var start = intIndex + view[$OFFSET];
4706
+ var pack = store.slice(start, start + bytes);
4707
+ return isLittleEndian ? pack : pack.reverse();
4708
+ }
4709
+ function set(view, bytes, index, conversion, value, isLittleEndian) {
4710
+ var numIndex = +index;
4711
+ var intIndex = toIndex(numIndex);
4712
+ if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
4713
+ var store = view[$BUFFER]._b;
4714
+ var start = intIndex + view[$OFFSET];
4715
+ var pack = conversion(+value);
4716
+ for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
4717
+ }
4718
+
4719
+ if (!$typed.ABV) {
4720
+ $ArrayBuffer = function ArrayBuffer(length) {
4721
+ anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
4722
+ var byteLength = toIndex(length);
4723
+ this._b = arrayFill.call(new Array(byteLength), 0);
4724
+ this[$LENGTH] = byteLength;
4725
+ };
4726
+
4727
+ $DataView = function DataView(buffer, byteOffset, byteLength) {
4728
+ anInstance(this, $DataView, DATA_VIEW);
4729
+ anInstance(buffer, $ArrayBuffer, DATA_VIEW);
4730
+ var bufferLength = buffer[$LENGTH];
4731
+ var offset = toInteger(byteOffset);
4732
+ if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');
4733
+ byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
4734
+ if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
4735
+ this[$BUFFER] = buffer;
4736
+ this[$OFFSET] = offset;
4737
+ this[$LENGTH] = byteLength;
4738
+ };
4739
+
4740
+ if (DESCRIPTORS) {
4741
+ addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
4742
+ addGetter($DataView, BUFFER, '_b');
4743
+ addGetter($DataView, BYTE_LENGTH, '_l');
4744
+ addGetter($DataView, BYTE_OFFSET, '_o');
4745
+ }
4746
+
4747
+ redefineAll($DataView[PROTOTYPE], {
4748
+ getInt8: function getInt8(byteOffset) {
4749
+ return get(this, 1, byteOffset)[0] << 24 >> 24;
4750
+ },
4751
+ getUint8: function getUint8(byteOffset) {
4752
+ return get(this, 1, byteOffset)[0];
4753
+ },
4754
+ getInt16: function getInt16(byteOffset /* , littleEndian */) {
4755
+ var bytes = get(this, 2, byteOffset, arguments[1]);
4756
+ return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
4757
+ },
4758
+ getUint16: function getUint16(byteOffset /* , littleEndian */) {
4759
+ var bytes = get(this, 2, byteOffset, arguments[1]);
4760
+ return bytes[1] << 8 | bytes[0];
4761
+ },
4762
+ getInt32: function getInt32(byteOffset /* , littleEndian */) {
4763
+ return unpackI32(get(this, 4, byteOffset, arguments[1]));
4764
+ },
4765
+ getUint32: function getUint32(byteOffset /* , littleEndian */) {
4766
+ return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
4767
+ },
4768
+ getFloat32: function getFloat32(byteOffset /* , littleEndian */) {
4769
+ return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
4770
+ },
4771
+ getFloat64: function getFloat64(byteOffset /* , littleEndian */) {
4772
+ return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
4773
+ },
4774
+ setInt8: function setInt8(byteOffset, value) {
4775
+ set(this, 1, byteOffset, packI8, value);
4776
+ },
4777
+ setUint8: function setUint8(byteOffset, value) {
4778
+ set(this, 1, byteOffset, packI8, value);
4779
+ },
4780
+ setInt16: function setInt16(byteOffset, value /* , littleEndian */) {
4781
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
4782
+ },
4783
+ setUint16: function setUint16(byteOffset, value /* , littleEndian */) {
4784
+ set(this, 2, byteOffset, packI16, value, arguments[2]);
4785
+ },
4786
+ setInt32: function setInt32(byteOffset, value /* , littleEndian */) {
4787
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
4788
+ },
4789
+ setUint32: function setUint32(byteOffset, value /* , littleEndian */) {
4790
+ set(this, 4, byteOffset, packI32, value, arguments[2]);
4791
+ },
4792
+ setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {
4793
+ set(this, 4, byteOffset, packF32, value, arguments[2]);
4794
+ },
4795
+ setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {
4796
+ set(this, 8, byteOffset, packF64, value, arguments[2]);
4797
+ }
4798
+ });
4799
+ } else {
4800
+ if (!fails(function () {
4801
+ $ArrayBuffer(1);
4802
+ }) || !fails(function () {
4803
+ new $ArrayBuffer(-1); // eslint-disable-line no-new
4804
+ }) || fails(function () {
4805
+ new $ArrayBuffer(); // eslint-disable-line no-new
4806
+ new $ArrayBuffer(1.5); // eslint-disable-line no-new
4807
+ new $ArrayBuffer(NaN); // eslint-disable-line no-new
4808
+ return $ArrayBuffer.name != ARRAY_BUFFER;
4809
+ })) {
4810
+ $ArrayBuffer = function ArrayBuffer(length) {
4811
+ anInstance(this, $ArrayBuffer);
4812
+ return new BaseBuffer(toIndex(length));
4813
+ };
4814
+ var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
4815
+ for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {
4816
+ if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);
4817
+ }
4818
+ if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;
4819
+ }
4820
+ // iOS Safari 7.x bug
4821
+ var view = new $DataView(new $ArrayBuffer(2));
4822
+ var $setInt8 = $DataView[PROTOTYPE].setInt8;
4823
+ view.setInt8(0, 2147483648);
4824
+ view.setInt8(1, 2147483649);
4825
+ if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {
4826
+ setInt8: function setInt8(byteOffset, value) {
4827
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
4828
+ },
4829
+ setUint8: function setUint8(byteOffset, value) {
4830
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
4831
+ }
4832
+ }, true);
4833
+ }
4834
+ setToStringTag($ArrayBuffer, ARRAY_BUFFER);
4835
+ setToStringTag($DataView, DATA_VIEW);
4836
+ hide($DataView[PROTOTYPE], $typed.VIEW, true);
4837
+ exports[ARRAY_BUFFER] = $ArrayBuffer;
4838
+ exports[DATA_VIEW] = $DataView;
4839
+
4840
+
4841
+ /***/ }),
4842
+
4843
+ /***/ "./node_modules/core-js/modules/_typed.js":
4844
+ /*!************************************************!*\
4845
+ !*** ./node_modules/core-js/modules/_typed.js ***!
4846
+ \************************************************/
4847
+ /*! no static exports found */
4848
+ /***/ (function(module, exports, __webpack_require__) {
4849
+
4850
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
4851
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js");
4852
+ var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js");
4853
+ var TYPED = uid('typed_array');
4854
+ var VIEW = uid('view');
4855
+ var ABV = !!(global.ArrayBuffer && global.DataView);
4856
+ var CONSTR = ABV;
4857
+ var i = 0;
4858
+ var l = 9;
4859
+ var Typed;
4860
+
4861
+ var TypedArrayConstructors = (
4862
+ 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
4863
+ ).split(',');
4864
+
4865
+ while (i < l) {
4866
+ if (Typed = global[TypedArrayConstructors[i++]]) {
4867
+ hide(Typed.prototype, TYPED, true);
4868
+ hide(Typed.prototype, VIEW, true);
4869
+ } else CONSTR = false;
4870
+ }
4871
+
4872
+ module.exports = {
4873
+ ABV: ABV,
4874
+ CONSTR: CONSTR,
4875
+ TYPED: TYPED,
4876
+ VIEW: VIEW
4877
+ };
4878
+
4879
+
4880
+ /***/ }),
4881
+
4882
+ /***/ "./node_modules/core-js/modules/_uid.js":
4883
+ /*!**********************************************!*\
4884
+ !*** ./node_modules/core-js/modules/_uid.js ***!
4885
+ \**********************************************/
4886
+ /*! no static exports found */
4887
+ /***/ (function(module, exports) {
4888
+
4889
+ var id = 0;
4890
+ var px = Math.random();
4891
+ module.exports = function (key) {
4892
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
4893
+ };
4894
+
4895
+
4896
+ /***/ }),
4897
+
4898
+ /***/ "./node_modules/core-js/modules/_user-agent.js":
4899
+ /*!*****************************************************!*\
4900
+ !*** ./node_modules/core-js/modules/_user-agent.js ***!
4901
+ \*****************************************************/
4902
+ /*! no static exports found */
4903
+ /***/ (function(module, exports, __webpack_require__) {
4904
+
4905
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
4906
+ var navigator = global.navigator;
4907
+
4908
+ module.exports = navigator && navigator.userAgent || '';
4909
+
4910
+
4911
+ /***/ }),
4912
+
4913
+ /***/ "./node_modules/core-js/modules/_validate-collection.js":
4914
+ /*!**************************************************************!*\
4915
+ !*** ./node_modules/core-js/modules/_validate-collection.js ***!
4916
+ \**************************************************************/
4917
+ /*! no static exports found */
4918
+ /***/ (function(module, exports, __webpack_require__) {
4919
+
4920
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
4921
+ module.exports = function (it, TYPE) {
4922
+ if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
4923
+ return it;
4924
+ };
4925
+
4926
+
4927
+ /***/ }),
4928
+
4929
+ /***/ "./node_modules/core-js/modules/_wks-define.js":
4930
+ /*!*****************************************************!*\
4931
+ !*** ./node_modules/core-js/modules/_wks-define.js ***!
4932
+ \*****************************************************/
4933
+ /*! no static exports found */
4934
+ /***/ (function(module, exports, __webpack_require__) {
4935
+
4936
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
4937
+ var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js");
4938
+ var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js");
4939
+ var wksExt = __webpack_require__(/*! ./_wks-ext */ "./node_modules/core-js/modules/_wks-ext.js");
4940
+ var defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f;
4941
+ module.exports = function (name) {
4942
+ var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
4943
+ if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
4944
+ };
4945
+
4946
+
4947
+ /***/ }),
4948
+
4949
+ /***/ "./node_modules/core-js/modules/_wks-ext.js":
4950
+ /*!**************************************************!*\
4951
+ !*** ./node_modules/core-js/modules/_wks-ext.js ***!
4952
+ \**************************************************/
4953
+ /*! no static exports found */
4954
+ /***/ (function(module, exports, __webpack_require__) {
4955
+
4956
+ exports.f = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js");
4957
+
4958
+
4959
+ /***/ }),
4960
+
4961
+ /***/ "./node_modules/core-js/modules/_wks.js":
4962
+ /*!**********************************************!*\
4963
+ !*** ./node_modules/core-js/modules/_wks.js ***!
4964
+ \**********************************************/
4965
+ /*! no static exports found */
4966
+ /***/ (function(module, exports, __webpack_require__) {
4967
+
4968
+ var store = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('wks');
4969
+ var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js");
4970
+ var Symbol = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Symbol;
4971
+ var USE_SYMBOL = typeof Symbol == 'function';
4972
+
4973
+ var $exports = module.exports = function (name) {
4974
+ return store[name] || (store[name] =
4975
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
4976
+ };
4977
+
4978
+ $exports.store = store;
4979
+
4980
+
4981
+ /***/ }),
4982
+
4983
+ /***/ "./node_modules/core-js/modules/core.get-iterator-method.js":
4984
+ /*!******************************************************************!*\
4985
+ !*** ./node_modules/core-js/modules/core.get-iterator-method.js ***!
4986
+ \******************************************************************/
4987
+ /*! no static exports found */
4988
+ /***/ (function(module, exports, __webpack_require__) {
4989
+
4990
+ var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js");
4991
+ var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator');
4992
+ var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js");
4993
+ module.exports = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js").getIteratorMethod = function (it) {
4994
+ if (it != undefined) return it[ITERATOR]
4995
+ || it['@@iterator']
4996
+ || Iterators[classof(it)];
4997
+ };
4998
+
4999
+
5000
+ /***/ }),
5001
+
5002
+ /***/ "./node_modules/core-js/modules/es6.array.copy-within.js":
5003
+ /*!***************************************************************!*\
5004
+ !*** ./node_modules/core-js/modules/es6.array.copy-within.js ***!
5005
+ \***************************************************************/
5006
+ /*! no static exports found */
5007
+ /***/ (function(module, exports, __webpack_require__) {
5008
+
5009
+ // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
5010
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5011
+
5012
+ $export($export.P, 'Array', { copyWithin: __webpack_require__(/*! ./_array-copy-within */ "./node_modules/core-js/modules/_array-copy-within.js") });
5013
+
5014
+ __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('copyWithin');
5015
+
5016
+
5017
+ /***/ }),
5018
+
5019
+ /***/ "./node_modules/core-js/modules/es6.array.every.js":
5020
+ /*!*********************************************************!*\
5021
+ !*** ./node_modules/core-js/modules/es6.array.every.js ***!
5022
+ \*********************************************************/
5023
+ /*! no static exports found */
5024
+ /***/ (function(module, exports, __webpack_require__) {
5025
+
5026
+ "use strict";
5027
+
5028
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5029
+ var $every = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(4);
5030
+
5031
+ $export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].every, true), 'Array', {
5032
+ // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
5033
+ every: function every(callbackfn /* , thisArg */) {
5034
+ return $every(this, callbackfn, arguments[1]);
5035
+ }
5036
+ });
5037
+
5038
+
5039
+ /***/ }),
5040
+
5041
+ /***/ "./node_modules/core-js/modules/es6.array.fill.js":
5042
+ /*!********************************************************!*\
5043
+ !*** ./node_modules/core-js/modules/es6.array.fill.js ***!
5044
+ \********************************************************/
5045
+ /*! no static exports found */
5046
+ /***/ (function(module, exports, __webpack_require__) {
5047
+
5048
+ // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
5049
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5050
+
5051
+ $export($export.P, 'Array', { fill: __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js") });
5052
+
5053
+ __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('fill');
5054
+
5055
+
5056
+ /***/ }),
5057
+
5058
+ /***/ "./node_modules/core-js/modules/es6.array.filter.js":
5059
+ /*!**********************************************************!*\
5060
+ !*** ./node_modules/core-js/modules/es6.array.filter.js ***!
5061
+ \**********************************************************/
5062
+ /*! no static exports found */
5063
+ /***/ (function(module, exports, __webpack_require__) {
5064
+
5065
+ "use strict";
5066
+
5067
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5068
+ var $filter = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(2);
5069
+
5070
+ $export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].filter, true), 'Array', {
5071
+ // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
5072
+ filter: function filter(callbackfn /* , thisArg */) {
5073
+ return $filter(this, callbackfn, arguments[1]);
5074
+ }
5075
+ });
5076
+
5077
+
5078
+ /***/ }),
5079
+
5080
+ /***/ "./node_modules/core-js/modules/es6.array.find-index.js":
5081
+ /*!**************************************************************!*\
5082
+ !*** ./node_modules/core-js/modules/es6.array.find-index.js ***!
5083
+ \**************************************************************/
5084
+ /*! no static exports found */
5085
+ /***/ (function(module, exports, __webpack_require__) {
5086
+
5087
+ "use strict";
5088
+
5089
+ // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
5090
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5091
+ var $find = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(6);
5092
+ var KEY = 'findIndex';
5093
+ var forced = true;
5094
+ // Shouldn't skip holes
5095
+ if (KEY in []) Array(1)[KEY](function () { forced = false; });
5096
+ $export($export.P + $export.F * forced, 'Array', {
5097
+ findIndex: function findIndex(callbackfn /* , that = undefined */) {
5098
+ return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
5099
+ }
5100
+ });
5101
+ __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")(KEY);
5102
+
5103
+
5104
+ /***/ }),
5105
+
5106
+ /***/ "./node_modules/core-js/modules/es6.array.find.js":
5107
+ /*!********************************************************!*\
5108
+ !*** ./node_modules/core-js/modules/es6.array.find.js ***!
5109
+ \********************************************************/
5110
+ /*! no static exports found */
5111
+ /***/ (function(module, exports, __webpack_require__) {
5112
+
5113
+ "use strict";
5114
+
5115
+ // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
5116
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5117
+ var $find = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(5);
5118
+ var KEY = 'find';
5119
+ var forced = true;
5120
+ // Shouldn't skip holes
5121
+ if (KEY in []) Array(1)[KEY](function () { forced = false; });
5122
+ $export($export.P + $export.F * forced, 'Array', {
5123
+ find: function find(callbackfn /* , that = undefined */) {
5124
+ return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
5125
+ }
5126
+ });
5127
+ __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")(KEY);
5128
+
5129
+
5130
+ /***/ }),
5131
+
5132
+ /***/ "./node_modules/core-js/modules/es6.array.for-each.js":
5133
+ /*!************************************************************!*\
5134
+ !*** ./node_modules/core-js/modules/es6.array.for-each.js ***!
5135
+ \************************************************************/
5136
+ /*! no static exports found */
5137
+ /***/ (function(module, exports, __webpack_require__) {
5138
+
5139
+ "use strict";
5140
+
5141
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5142
+ var $forEach = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(0);
5143
+ var STRICT = __webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].forEach, true);
5144
+
5145
+ $export($export.P + $export.F * !STRICT, 'Array', {
5146
+ // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
5147
+ forEach: function forEach(callbackfn /* , thisArg */) {
5148
+ return $forEach(this, callbackfn, arguments[1]);
5149
+ }
5150
+ });
5151
+
5152
+
5153
+ /***/ }),
5154
+
5155
+ /***/ "./node_modules/core-js/modules/es6.array.from.js":
5156
+ /*!********************************************************!*\
5157
+ !*** ./node_modules/core-js/modules/es6.array.from.js ***!
5158
+ \********************************************************/
5159
+ /*! no static exports found */
5160
+ /***/ (function(module, exports, __webpack_require__) {
5161
+
5162
+ "use strict";
5163
+
5164
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
5165
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5166
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
5167
+ var call = __webpack_require__(/*! ./_iter-call */ "./node_modules/core-js/modules/_iter-call.js");
5168
+ var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js");
5169
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
5170
+ var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js");
5171
+ var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js");
5172
+
5173
+ $export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', {
5174
+ // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
5175
+ from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
5176
+ var O = toObject(arrayLike);
5177
+ var C = typeof this == 'function' ? this : Array;
5178
+ var aLen = arguments.length;
5179
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
5180
+ var mapping = mapfn !== undefined;
5181
+ var index = 0;
5182
+ var iterFn = getIterFn(O);
5183
+ var length, result, step, iterator;
5184
+ if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
5185
+ // if object isn't iterable or it's array with default iterator - use simple case
5186
+ if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
5187
+ for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
5188
+ createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
5189
+ }
5190
+ } else {
5191
+ length = toLength(O.length);
5192
+ for (result = new C(length); length > index; index++) {
5193
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
5194
+ }
5195
+ }
5196
+ result.length = index;
5197
+ return result;
5198
+ }
5199
+ });
5200
+
5201
+
5202
+ /***/ }),
5203
+
5204
+ /***/ "./node_modules/core-js/modules/es6.array.index-of.js":
5205
+ /*!************************************************************!*\
5206
+ !*** ./node_modules/core-js/modules/es6.array.index-of.js ***!
5207
+ \************************************************************/
5208
+ /*! no static exports found */
5209
+ /***/ (function(module, exports, __webpack_require__) {
5210
+
5211
+ "use strict";
5212
+
5213
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5214
+ var $indexOf = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(false);
5215
+ var $native = [].indexOf;
5216
+ var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
5217
+
5218
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($native)), 'Array', {
5219
+ // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
5220
+ indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
5221
+ return NEGATIVE_ZERO
5222
+ // convert -0 to +0
5223
+ ? $native.apply(this, arguments) || 0
5224
+ : $indexOf(this, searchElement, arguments[1]);
5225
+ }
5226
+ });
5227
+
5228
+
5229
+ /***/ }),
5230
+
5231
+ /***/ "./node_modules/core-js/modules/es6.array.is-array.js":
5232
+ /*!************************************************************!*\
5233
+ !*** ./node_modules/core-js/modules/es6.array.is-array.js ***!
5234
+ \************************************************************/
5235
+ /*! no static exports found */
5236
+ /***/ (function(module, exports, __webpack_require__) {
5237
+
5238
+ // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
5239
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5240
+
5241
+ $export($export.S, 'Array', { isArray: __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js") });
5242
+
5243
+
5244
+ /***/ }),
5245
+
5246
+ /***/ "./node_modules/core-js/modules/es6.array.iterator.js":
5247
+ /*!************************************************************!*\
5248
+ !*** ./node_modules/core-js/modules/es6.array.iterator.js ***!
5249
+ \************************************************************/
5250
+ /*! no static exports found */
5251
+ /***/ (function(module, exports, __webpack_require__) {
5252
+
5253
+ "use strict";
5254
+
5255
+ var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js");
5256
+ var step = __webpack_require__(/*! ./_iter-step */ "./node_modules/core-js/modules/_iter-step.js");
5257
+ var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js");
5258
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
5259
+
5260
+ // 22.1.3.4 Array.prototype.entries()
5261
+ // 22.1.3.13 Array.prototype.keys()
5262
+ // 22.1.3.29 Array.prototype.values()
5263
+ // 22.1.3.30 Array.prototype[@@iterator]()
5264
+ module.exports = __webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
5265
+ this._t = toIObject(iterated); // target
5266
+ this._i = 0; // next index
5267
+ this._k = kind; // kind
5268
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
5269
+ }, function () {
5270
+ var O = this._t;
5271
+ var kind = this._k;
5272
+ var index = this._i++;
5273
+ if (!O || index >= O.length) {
5274
+ this._t = undefined;
5275
+ return step(1);
5276
+ }
5277
+ if (kind == 'keys') return step(0, index);
5278
+ if (kind == 'values') return step(0, O[index]);
5279
+ return step(0, [index, O[index]]);
5280
+ }, 'values');
5281
+
5282
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
5283
+ Iterators.Arguments = Iterators.Array;
5284
+
5285
+ addToUnscopables('keys');
5286
+ addToUnscopables('values');
5287
+ addToUnscopables('entries');
5288
+
5289
+
5290
+ /***/ }),
5291
+
5292
+ /***/ "./node_modules/core-js/modules/es6.array.join.js":
5293
+ /*!********************************************************!*\
5294
+ !*** ./node_modules/core-js/modules/es6.array.join.js ***!
5295
+ \********************************************************/
5296
+ /*! no static exports found */
5297
+ /***/ (function(module, exports, __webpack_require__) {
5298
+
5299
+ "use strict";
5300
+
5301
+ // 22.1.3.13 Array.prototype.join(separator)
5302
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5303
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
5304
+ var arrayJoin = [].join;
5305
+
5306
+ // fallback for not array-like strings
5307
+ $export($export.P + $export.F * (__webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js") != Object || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")(arrayJoin)), 'Array', {
5308
+ join: function join(separator) {
5309
+ return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
5310
+ }
5311
+ });
5312
+
5313
+
5314
+ /***/ }),
5315
+
5316
+ /***/ "./node_modules/core-js/modules/es6.array.last-index-of.js":
5317
+ /*!*****************************************************************!*\
5318
+ !*** ./node_modules/core-js/modules/es6.array.last-index-of.js ***!
5319
+ \*****************************************************************/
5320
+ /*! no static exports found */
5321
+ /***/ (function(module, exports, __webpack_require__) {
5322
+
5323
+ "use strict";
5324
+
5325
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5326
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
5327
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
5328
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
5329
+ var $native = [].lastIndexOf;
5330
+ var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
5331
+
5332
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($native)), 'Array', {
5333
+ // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
5334
+ lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
5335
+ // convert -0 to +0
5336
+ if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;
5337
+ var O = toIObject(this);
5338
+ var length = toLength(O.length);
5339
+ var index = length - 1;
5340
+ if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));
5341
+ if (index < 0) index = length + index;
5342
+ for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;
5343
+ return -1;
5344
+ }
5345
+ });
5346
+
5347
+
5348
+ /***/ }),
5349
+
5350
+ /***/ "./node_modules/core-js/modules/es6.array.map.js":
5351
+ /*!*******************************************************!*\
5352
+ !*** ./node_modules/core-js/modules/es6.array.map.js ***!
5353
+ \*******************************************************/
5354
+ /*! no static exports found */
5355
+ /***/ (function(module, exports, __webpack_require__) {
5356
+
5357
+ "use strict";
5358
+
5359
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5360
+ var $map = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(1);
5361
+
5362
+ $export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', {
5363
+ // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
5364
+ map: function map(callbackfn /* , thisArg */) {
5365
+ return $map(this, callbackfn, arguments[1]);
5366
+ }
5367
+ });
5368
+
5369
+
5370
+ /***/ }),
5371
+
5372
+ /***/ "./node_modules/core-js/modules/es6.array.of.js":
5373
+ /*!******************************************************!*\
5374
+ !*** ./node_modules/core-js/modules/es6.array.of.js ***!
5375
+ \******************************************************/
5376
+ /*! no static exports found */
5377
+ /***/ (function(module, exports, __webpack_require__) {
5378
+
5379
+ "use strict";
5380
+
5381
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5382
+ var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js");
5383
+
5384
+ // WebKit Array.of isn't generic
5385
+ $export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
5386
+ function F() { /* empty */ }
5387
+ return !(Array.of.call(F) instanceof F);
5388
+ }), 'Array', {
5389
+ // 22.1.2.3 Array.of( ...items)
5390
+ of: function of(/* ...args */) {
5391
+ var index = 0;
5392
+ var aLen = arguments.length;
5393
+ var result = new (typeof this == 'function' ? this : Array)(aLen);
5394
+ while (aLen > index) createProperty(result, index, arguments[index++]);
5395
+ result.length = aLen;
5396
+ return result;
5397
+ }
5398
+ });
5399
+
5400
+
5401
+ /***/ }),
5402
+
5403
+ /***/ "./node_modules/core-js/modules/es6.array.reduce-right.js":
5404
+ /*!****************************************************************!*\
5405
+ !*** ./node_modules/core-js/modules/es6.array.reduce-right.js ***!
5406
+ \****************************************************************/
5407
+ /*! no static exports found */
5408
+ /***/ (function(module, exports, __webpack_require__) {
5409
+
5410
+ "use strict";
5411
+
5412
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5413
+ var $reduce = __webpack_require__(/*! ./_array-reduce */ "./node_modules/core-js/modules/_array-reduce.js");
5414
+
5415
+ $export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].reduceRight, true), 'Array', {
5416
+ // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
5417
+ reduceRight: function reduceRight(callbackfn /* , initialValue */) {
5418
+ return $reduce(this, callbackfn, arguments.length, arguments[1], true);
5419
+ }
5420
+ });
5421
+
5422
+
5423
+ /***/ }),
5424
+
5425
+ /***/ "./node_modules/core-js/modules/es6.array.reduce.js":
5426
+ /*!**********************************************************!*\
5427
+ !*** ./node_modules/core-js/modules/es6.array.reduce.js ***!
5428
+ \**********************************************************/
5429
+ /*! no static exports found */
5430
+ /***/ (function(module, exports, __webpack_require__) {
5431
+
5432
+ "use strict";
5433
+
5434
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5435
+ var $reduce = __webpack_require__(/*! ./_array-reduce */ "./node_modules/core-js/modules/_array-reduce.js");
5436
+
5437
+ $export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].reduce, true), 'Array', {
5438
+ // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
5439
+ reduce: function reduce(callbackfn /* , initialValue */) {
5440
+ return $reduce(this, callbackfn, arguments.length, arguments[1], false);
5441
+ }
5442
+ });
5443
+
5444
+
5445
+ /***/ }),
5446
+
5447
+ /***/ "./node_modules/core-js/modules/es6.array.slice.js":
5448
+ /*!*********************************************************!*\
5449
+ !*** ./node_modules/core-js/modules/es6.array.slice.js ***!
5450
+ \*********************************************************/
5451
+ /*! no static exports found */
5452
+ /***/ (function(module, exports, __webpack_require__) {
5453
+
5454
+ "use strict";
5455
+
5456
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5457
+ var html = __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js");
5458
+ var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js");
5459
+ var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js");
5460
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
5461
+ var arraySlice = [].slice;
5462
+
5463
+ // fallback for not array-like ES3 strings and DOM objects
5464
+ $export($export.P + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
5465
+ if (html) arraySlice.call(html);
5466
+ }), 'Array', {
5467
+ slice: function slice(begin, end) {
5468
+ var len = toLength(this.length);
5469
+ var klass = cof(this);
5470
+ end = end === undefined ? len : end;
5471
+ if (klass == 'Array') return arraySlice.call(this, begin, end);
5472
+ var start = toAbsoluteIndex(begin, len);
5473
+ var upTo = toAbsoluteIndex(end, len);
5474
+ var size = toLength(upTo - start);
5475
+ var cloned = new Array(size);
5476
+ var i = 0;
5477
+ for (; i < size; i++) cloned[i] = klass == 'String'
5478
+ ? this.charAt(start + i)
5479
+ : this[start + i];
5480
+ return cloned;
5481
+ }
5482
+ });
5483
+
5484
+
5485
+ /***/ }),
5486
+
5487
+ /***/ "./node_modules/core-js/modules/es6.array.some.js":
5488
+ /*!********************************************************!*\
5489
+ !*** ./node_modules/core-js/modules/es6.array.some.js ***!
5490
+ \********************************************************/
5491
+ /*! no static exports found */
5492
+ /***/ (function(module, exports, __webpack_require__) {
5493
+
5494
+ "use strict";
5495
+
5496
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5497
+ var $some = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(3);
5498
+
5499
+ $export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].some, true), 'Array', {
5500
+ // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
5501
+ some: function some(callbackfn /* , thisArg */) {
5502
+ return $some(this, callbackfn, arguments[1]);
5503
+ }
5504
+ });
5505
+
5506
+
5507
+ /***/ }),
5508
+
5509
+ /***/ "./node_modules/core-js/modules/es6.array.sort.js":
5510
+ /*!********************************************************!*\
5511
+ !*** ./node_modules/core-js/modules/es6.array.sort.js ***!
5512
+ \********************************************************/
5513
+ /*! no static exports found */
5514
+ /***/ (function(module, exports, __webpack_require__) {
5515
+
5516
+ "use strict";
5517
+
5518
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5519
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
5520
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
5521
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
5522
+ var $sort = [].sort;
5523
+ var test = [1, 2, 3];
5524
+
5525
+ $export($export.P + $export.F * (fails(function () {
5526
+ // IE8-
5527
+ test.sort(undefined);
5528
+ }) || !fails(function () {
5529
+ // V8 bug
5530
+ test.sort(null);
5531
+ // Old WebKit
5532
+ }) || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($sort)), 'Array', {
5533
+ // 22.1.3.25 Array.prototype.sort(comparefn)
5534
+ sort: function sort(comparefn) {
5535
+ return comparefn === undefined
5536
+ ? $sort.call(toObject(this))
5537
+ : $sort.call(toObject(this), aFunction(comparefn));
5538
+ }
5539
+ });
5540
+
5541
+
5542
+ /***/ }),
5543
+
5544
+ /***/ "./node_modules/core-js/modules/es6.array.species.js":
5545
+ /*!***********************************************************!*\
5546
+ !*** ./node_modules/core-js/modules/es6.array.species.js ***!
5547
+ \***********************************************************/
5548
+ /*! no static exports found */
5549
+ /***/ (function(module, exports, __webpack_require__) {
5550
+
5551
+ __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")('Array');
5552
+
5553
+
5554
+ /***/ }),
5555
+
5556
+ /***/ "./node_modules/core-js/modules/es6.date.now.js":
5557
+ /*!******************************************************!*\
5558
+ !*** ./node_modules/core-js/modules/es6.date.now.js ***!
5559
+ \******************************************************/
5560
+ /*! no static exports found */
5561
+ /***/ (function(module, exports, __webpack_require__) {
5562
+
5563
+ // 20.3.3.1 / 15.9.4.4 Date.now()
5564
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5565
+
5566
+ $export($export.S, 'Date', { now: function () { return new Date().getTime(); } });
5567
+
5568
+
5569
+ /***/ }),
5570
+
5571
+ /***/ "./node_modules/core-js/modules/es6.date.to-iso-string.js":
5572
+ /*!****************************************************************!*\
5573
+ !*** ./node_modules/core-js/modules/es6.date.to-iso-string.js ***!
5574
+ \****************************************************************/
5575
+ /*! no static exports found */
5576
+ /***/ (function(module, exports, __webpack_require__) {
5577
+
5578
+ // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
5579
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5580
+ var toISOString = __webpack_require__(/*! ./_date-to-iso-string */ "./node_modules/core-js/modules/_date-to-iso-string.js");
5581
+
5582
+ // PhantomJS / old WebKit has a broken implementations
5583
+ $export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {
5584
+ toISOString: toISOString
5585
+ });
5586
+
5587
+
5588
+ /***/ }),
5589
+
5590
+ /***/ "./node_modules/core-js/modules/es6.date.to-json.js":
5591
+ /*!**********************************************************!*\
5592
+ !*** ./node_modules/core-js/modules/es6.date.to-json.js ***!
5593
+ \**********************************************************/
5594
+ /*! no static exports found */
5595
+ /***/ (function(module, exports, __webpack_require__) {
5596
+
5597
+ "use strict";
5598
+
5599
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5600
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
5601
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js");
5602
+
5603
+ $export($export.P + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
5604
+ return new Date(NaN).toJSON() !== null
5605
+ || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;
5606
+ }), 'Date', {
5607
+ // eslint-disable-next-line no-unused-vars
5608
+ toJSON: function toJSON(key) {
5609
+ var O = toObject(this);
5610
+ var pv = toPrimitive(O);
5611
+ return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
5612
+ }
5613
+ });
5614
+
5615
+
5616
+ /***/ }),
5617
+
5618
+ /***/ "./node_modules/core-js/modules/es6.date.to-primitive.js":
5619
+ /*!***************************************************************!*\
5620
+ !*** ./node_modules/core-js/modules/es6.date.to-primitive.js ***!
5621
+ \***************************************************************/
5622
+ /*! no static exports found */
5623
+ /***/ (function(module, exports, __webpack_require__) {
5624
+
5625
+ var TO_PRIMITIVE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toPrimitive');
5626
+ var proto = Date.prototype;
5627
+
5628
+ if (!(TO_PRIMITIVE in proto)) __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(proto, TO_PRIMITIVE, __webpack_require__(/*! ./_date-to-primitive */ "./node_modules/core-js/modules/_date-to-primitive.js"));
5629
+
5630
+
5631
+ /***/ }),
5632
+
5633
+ /***/ "./node_modules/core-js/modules/es6.date.to-string.js":
5634
+ /*!************************************************************!*\
5635
+ !*** ./node_modules/core-js/modules/es6.date.to-string.js ***!
5636
+ \************************************************************/
5637
+ /*! no static exports found */
5638
+ /***/ (function(module, exports, __webpack_require__) {
5639
+
5640
+ var DateProto = Date.prototype;
5641
+ var INVALID_DATE = 'Invalid Date';
5642
+ var TO_STRING = 'toString';
5643
+ var $toString = DateProto[TO_STRING];
5644
+ var getTime = DateProto.getTime;
5645
+ if (new Date(NaN) + '' != INVALID_DATE) {
5646
+ __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(DateProto, TO_STRING, function toString() {
5647
+ var value = getTime.call(this);
5648
+ // eslint-disable-next-line no-self-compare
5649
+ return value === value ? $toString.call(this) : INVALID_DATE;
5650
+ });
5651
+ }
5652
+
5653
+
5654
+ /***/ }),
5655
+
5656
+ /***/ "./node_modules/core-js/modules/es6.function.bind.js":
5657
+ /*!***********************************************************!*\
5658
+ !*** ./node_modules/core-js/modules/es6.function.bind.js ***!
5659
+ \***********************************************************/
5660
+ /*! no static exports found */
5661
+ /***/ (function(module, exports, __webpack_require__) {
5662
+
5663
+ // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
5664
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5665
+
5666
+ $export($export.P, 'Function', { bind: __webpack_require__(/*! ./_bind */ "./node_modules/core-js/modules/_bind.js") });
5667
+
5668
+
5669
+ /***/ }),
5670
+
5671
+ /***/ "./node_modules/core-js/modules/es6.function.has-instance.js":
5672
+ /*!*******************************************************************!*\
5673
+ !*** ./node_modules/core-js/modules/es6.function.has-instance.js ***!
5674
+ \*******************************************************************/
5675
+ /*! no static exports found */
5676
+ /***/ (function(module, exports, __webpack_require__) {
5677
+
5678
+ "use strict";
5679
+
5680
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
5681
+ var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js");
5682
+ var HAS_INSTANCE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('hasInstance');
5683
+ var FunctionProto = Function.prototype;
5684
+ // 19.2.3.6 Function.prototype[@@hasInstance](V)
5685
+ if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f(FunctionProto, HAS_INSTANCE, { value: function (O) {
5686
+ if (typeof this != 'function' || !isObject(O)) return false;
5687
+ if (!isObject(this.prototype)) return O instanceof this;
5688
+ // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
5689
+ while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
5690
+ return false;
5691
+ } });
5692
+
5693
+
5694
+ /***/ }),
5695
+
5696
+ /***/ "./node_modules/core-js/modules/es6.function.name.js":
5697
+ /*!***********************************************************!*\
5698
+ !*** ./node_modules/core-js/modules/es6.function.name.js ***!
5699
+ \***********************************************************/
5700
+ /*! no static exports found */
5701
+ /***/ (function(module, exports, __webpack_require__) {
5702
+
5703
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f;
5704
+ var FProto = Function.prototype;
5705
+ var nameRE = /^\s*function ([^ (]*)/;
5706
+ var NAME = 'name';
5707
+
5708
+ // 19.2.4.2 name
5709
+ NAME in FProto || __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && dP(FProto, NAME, {
5710
+ configurable: true,
5711
+ get: function () {
5712
+ try {
5713
+ return ('' + this).match(nameRE)[1];
5714
+ } catch (e) {
5715
+ return '';
5716
+ }
5717
+ }
5718
+ });
5719
+
5720
+
5721
+ /***/ }),
5722
+
5723
+ /***/ "./node_modules/core-js/modules/es6.map.js":
5724
+ /*!*************************************************!*\
5725
+ !*** ./node_modules/core-js/modules/es6.map.js ***!
5726
+ \*************************************************/
5727
+ /*! no static exports found */
5728
+ /***/ (function(module, exports, __webpack_require__) {
5729
+
5730
+ "use strict";
5731
+
5732
+ var strong = __webpack_require__(/*! ./_collection-strong */ "./node_modules/core-js/modules/_collection-strong.js");
5733
+ var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js");
5734
+ var MAP = 'Map';
5735
+
5736
+ // 23.1 Map Objects
5737
+ module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(MAP, function (get) {
5738
+ return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
5739
+ }, {
5740
+ // 23.1.3.6 Map.prototype.get(key)
5741
+ get: function get(key) {
5742
+ var entry = strong.getEntry(validate(this, MAP), key);
5743
+ return entry && entry.v;
5744
+ },
5745
+ // 23.1.3.9 Map.prototype.set(key, value)
5746
+ set: function set(key, value) {
5747
+ return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
5748
+ }
5749
+ }, strong, true);
5750
+
5751
+
5752
+ /***/ }),
5753
+
5754
+ /***/ "./node_modules/core-js/modules/es6.math.acosh.js":
5755
+ /*!********************************************************!*\
5756
+ !*** ./node_modules/core-js/modules/es6.math.acosh.js ***!
5757
+ \********************************************************/
5758
+ /*! no static exports found */
5759
+ /***/ (function(module, exports, __webpack_require__) {
5760
+
5761
+ // 20.2.2.3 Math.acosh(x)
5762
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5763
+ var log1p = __webpack_require__(/*! ./_math-log1p */ "./node_modules/core-js/modules/_math-log1p.js");
5764
+ var sqrt = Math.sqrt;
5765
+ var $acosh = Math.acosh;
5766
+
5767
+ $export($export.S + $export.F * !($acosh
5768
+ // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
5769
+ && Math.floor($acosh(Number.MAX_VALUE)) == 710
5770
+ // Tor Browser bug: Math.acosh(Infinity) -> NaN
5771
+ && $acosh(Infinity) == Infinity
5772
+ ), 'Math', {
5773
+ acosh: function acosh(x) {
5774
+ return (x = +x) < 1 ? NaN : x > 94906265.62425156
5775
+ ? Math.log(x) + Math.LN2
5776
+ : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
5777
+ }
5778
+ });
5779
+
5780
+
5781
+ /***/ }),
5782
+
5783
+ /***/ "./node_modules/core-js/modules/es6.math.asinh.js":
5784
+ /*!********************************************************!*\
5785
+ !*** ./node_modules/core-js/modules/es6.math.asinh.js ***!
5786
+ \********************************************************/
5787
+ /*! no static exports found */
5788
+ /***/ (function(module, exports, __webpack_require__) {
5789
+
5790
+ // 20.2.2.5 Math.asinh(x)
5791
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5792
+ var $asinh = Math.asinh;
5793
+
5794
+ function asinh(x) {
5795
+ return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
5796
+ }
5797
+
5798
+ // Tor Browser bug: Math.asinh(0) -> -0
5799
+ $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });
5800
+
5801
+
5802
+ /***/ }),
5803
+
5804
+ /***/ "./node_modules/core-js/modules/es6.math.atanh.js":
5805
+ /*!********************************************************!*\
5806
+ !*** ./node_modules/core-js/modules/es6.math.atanh.js ***!
5807
+ \********************************************************/
5808
+ /*! no static exports found */
5809
+ /***/ (function(module, exports, __webpack_require__) {
5810
+
5811
+ // 20.2.2.7 Math.atanh(x)
5812
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5813
+ var $atanh = Math.atanh;
5814
+
5815
+ // Tor Browser bug: Math.atanh(-0) -> 0
5816
+ $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
5817
+ atanh: function atanh(x) {
5818
+ return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
5819
+ }
5820
+ });
5821
+
5822
+
5823
+ /***/ }),
5824
+
5825
+ /***/ "./node_modules/core-js/modules/es6.math.cbrt.js":
5826
+ /*!*******************************************************!*\
5827
+ !*** ./node_modules/core-js/modules/es6.math.cbrt.js ***!
5828
+ \*******************************************************/
5829
+ /*! no static exports found */
5830
+ /***/ (function(module, exports, __webpack_require__) {
5831
+
5832
+ // 20.2.2.9 Math.cbrt(x)
5833
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5834
+ var sign = __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js");
5835
+
5836
+ $export($export.S, 'Math', {
5837
+ cbrt: function cbrt(x) {
5838
+ return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
5839
+ }
5840
+ });
5841
+
5842
+
5843
+ /***/ }),
5844
+
5845
+ /***/ "./node_modules/core-js/modules/es6.math.clz32.js":
5846
+ /*!********************************************************!*\
5847
+ !*** ./node_modules/core-js/modules/es6.math.clz32.js ***!
5848
+ \********************************************************/
5849
+ /*! no static exports found */
5850
+ /***/ (function(module, exports, __webpack_require__) {
5851
+
5852
+ // 20.2.2.11 Math.clz32(x)
5853
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5854
+
5855
+ $export($export.S, 'Math', {
5856
+ clz32: function clz32(x) {
5857
+ return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
5858
+ }
5859
+ });
5860
+
5861
+
5862
+ /***/ }),
5863
+
5864
+ /***/ "./node_modules/core-js/modules/es6.math.cosh.js":
5865
+ /*!*******************************************************!*\
5866
+ !*** ./node_modules/core-js/modules/es6.math.cosh.js ***!
5867
+ \*******************************************************/
5868
+ /*! no static exports found */
5869
+ /***/ (function(module, exports, __webpack_require__) {
5870
+
5871
+ // 20.2.2.12 Math.cosh(x)
5872
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5873
+ var exp = Math.exp;
5874
+
5875
+ $export($export.S, 'Math', {
5876
+ cosh: function cosh(x) {
5877
+ return (exp(x = +x) + exp(-x)) / 2;
5878
+ }
5879
+ });
5880
+
5881
+
5882
+ /***/ }),
5883
+
5884
+ /***/ "./node_modules/core-js/modules/es6.math.expm1.js":
5885
+ /*!********************************************************!*\
5886
+ !*** ./node_modules/core-js/modules/es6.math.expm1.js ***!
5887
+ \********************************************************/
5888
+ /*! no static exports found */
5889
+ /***/ (function(module, exports, __webpack_require__) {
5890
+
5891
+ // 20.2.2.14 Math.expm1(x)
5892
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5893
+ var $expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js");
5894
+
5895
+ $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });
5896
+
5897
+
5898
+ /***/ }),
5899
+
5900
+ /***/ "./node_modules/core-js/modules/es6.math.fround.js":
5901
+ /*!*********************************************************!*\
5902
+ !*** ./node_modules/core-js/modules/es6.math.fround.js ***!
5903
+ \*********************************************************/
5904
+ /*! no static exports found */
5905
+ /***/ (function(module, exports, __webpack_require__) {
5906
+
5907
+ // 20.2.2.16 Math.fround(x)
5908
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5909
+
5910
+ $export($export.S, 'Math', { fround: __webpack_require__(/*! ./_math-fround */ "./node_modules/core-js/modules/_math-fround.js") });
5911
+
5912
+
5913
+ /***/ }),
5914
+
5915
+ /***/ "./node_modules/core-js/modules/es6.math.hypot.js":
5916
+ /*!********************************************************!*\
5917
+ !*** ./node_modules/core-js/modules/es6.math.hypot.js ***!
5918
+ \********************************************************/
5919
+ /*! no static exports found */
5920
+ /***/ (function(module, exports, __webpack_require__) {
5921
+
5922
+ // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
5923
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5924
+ var abs = Math.abs;
5925
+
5926
+ $export($export.S, 'Math', {
5927
+ hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
5928
+ var sum = 0;
5929
+ var i = 0;
5930
+ var aLen = arguments.length;
5931
+ var larg = 0;
5932
+ var arg, div;
5933
+ while (i < aLen) {
5934
+ arg = abs(arguments[i++]);
5935
+ if (larg < arg) {
5936
+ div = larg / arg;
5937
+ sum = sum * div * div + 1;
5938
+ larg = arg;
5939
+ } else if (arg > 0) {
5940
+ div = arg / larg;
5941
+ sum += div * div;
5942
+ } else sum += arg;
5943
+ }
5944
+ return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
5945
+ }
5946
+ });
5947
+
5948
+
5949
+ /***/ }),
5950
+
5951
+ /***/ "./node_modules/core-js/modules/es6.math.imul.js":
5952
+ /*!*******************************************************!*\
5953
+ !*** ./node_modules/core-js/modules/es6.math.imul.js ***!
5954
+ \*******************************************************/
5955
+ /*! no static exports found */
5956
+ /***/ (function(module, exports, __webpack_require__) {
5957
+
5958
+ // 20.2.2.18 Math.imul(x, y)
5959
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5960
+ var $imul = Math.imul;
5961
+
5962
+ // some WebKit versions fails with big numbers, some has wrong arity
5963
+ $export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
5964
+ return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
5965
+ }), 'Math', {
5966
+ imul: function imul(x, y) {
5967
+ var UINT16 = 0xffff;
5968
+ var xn = +x;
5969
+ var yn = +y;
5970
+ var xl = UINT16 & xn;
5971
+ var yl = UINT16 & yn;
5972
+ return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
5973
+ }
5974
+ });
5975
+
5976
+
5977
+ /***/ }),
5978
+
5979
+ /***/ "./node_modules/core-js/modules/es6.math.log10.js":
5980
+ /*!********************************************************!*\
5981
+ !*** ./node_modules/core-js/modules/es6.math.log10.js ***!
5982
+ \********************************************************/
5983
+ /*! no static exports found */
5984
+ /***/ (function(module, exports, __webpack_require__) {
5985
+
5986
+ // 20.2.2.21 Math.log10(x)
5987
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
5988
+
5989
+ $export($export.S, 'Math', {
5990
+ log10: function log10(x) {
5991
+ return Math.log(x) * Math.LOG10E;
5992
+ }
5993
+ });
5994
+
5995
+
5996
+ /***/ }),
5997
+
5998
+ /***/ "./node_modules/core-js/modules/es6.math.log1p.js":
5999
+ /*!********************************************************!*\
6000
+ !*** ./node_modules/core-js/modules/es6.math.log1p.js ***!
6001
+ \********************************************************/
6002
+ /*! no static exports found */
6003
+ /***/ (function(module, exports, __webpack_require__) {
6004
+
6005
+ // 20.2.2.20 Math.log1p(x)
6006
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6007
+
6008
+ $export($export.S, 'Math', { log1p: __webpack_require__(/*! ./_math-log1p */ "./node_modules/core-js/modules/_math-log1p.js") });
6009
+
6010
+
6011
+ /***/ }),
6012
+
6013
+ /***/ "./node_modules/core-js/modules/es6.math.log2.js":
6014
+ /*!*******************************************************!*\
6015
+ !*** ./node_modules/core-js/modules/es6.math.log2.js ***!
6016
+ \*******************************************************/
6017
+ /*! no static exports found */
6018
+ /***/ (function(module, exports, __webpack_require__) {
6019
+
6020
+ // 20.2.2.22 Math.log2(x)
6021
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6022
+
6023
+ $export($export.S, 'Math', {
6024
+ log2: function log2(x) {
6025
+ return Math.log(x) / Math.LN2;
6026
+ }
6027
+ });
6028
+
6029
+
6030
+ /***/ }),
6031
+
6032
+ /***/ "./node_modules/core-js/modules/es6.math.sign.js":
6033
+ /*!*******************************************************!*\
6034
+ !*** ./node_modules/core-js/modules/es6.math.sign.js ***!
6035
+ \*******************************************************/
6036
+ /*! no static exports found */
6037
+ /***/ (function(module, exports, __webpack_require__) {
6038
+
6039
+ // 20.2.2.28 Math.sign(x)
6040
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6041
+
6042
+ $export($export.S, 'Math', { sign: __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js") });
6043
+
6044
+
6045
+ /***/ }),
6046
+
6047
+ /***/ "./node_modules/core-js/modules/es6.math.sinh.js":
6048
+ /*!*******************************************************!*\
6049
+ !*** ./node_modules/core-js/modules/es6.math.sinh.js ***!
6050
+ \*******************************************************/
6051
+ /*! no static exports found */
6052
+ /***/ (function(module, exports, __webpack_require__) {
6053
+
6054
+ // 20.2.2.30 Math.sinh(x)
6055
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6056
+ var expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js");
6057
+ var exp = Math.exp;
6058
+
6059
+ // V8 near Chromium 38 has a problem with very small numbers
6060
+ $export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
6061
+ return !Math.sinh(-2e-17) != -2e-17;
6062
+ }), 'Math', {
6063
+ sinh: function sinh(x) {
6064
+ return Math.abs(x = +x) < 1
6065
+ ? (expm1(x) - expm1(-x)) / 2
6066
+ : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
6067
+ }
6068
+ });
6069
+
6070
+
6071
+ /***/ }),
6072
+
6073
+ /***/ "./node_modules/core-js/modules/es6.math.tanh.js":
6074
+ /*!*******************************************************!*\
6075
+ !*** ./node_modules/core-js/modules/es6.math.tanh.js ***!
6076
+ \*******************************************************/
6077
+ /*! no static exports found */
6078
+ /***/ (function(module, exports, __webpack_require__) {
6079
+
6080
+ // 20.2.2.33 Math.tanh(x)
6081
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6082
+ var expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js");
6083
+ var exp = Math.exp;
6084
+
6085
+ $export($export.S, 'Math', {
6086
+ tanh: function tanh(x) {
6087
+ var a = expm1(x = +x);
6088
+ var b = expm1(-x);
6089
+ return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
6090
+ }
6091
+ });
6092
+
6093
+
6094
+ /***/ }),
6095
+
6096
+ /***/ "./node_modules/core-js/modules/es6.math.trunc.js":
6097
+ /*!********************************************************!*\
6098
+ !*** ./node_modules/core-js/modules/es6.math.trunc.js ***!
6099
+ \********************************************************/
6100
+ /*! no static exports found */
6101
+ /***/ (function(module, exports, __webpack_require__) {
6102
+
6103
+ // 20.2.2.34 Math.trunc(x)
6104
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6105
+
6106
+ $export($export.S, 'Math', {
6107
+ trunc: function trunc(it) {
6108
+ return (it > 0 ? Math.floor : Math.ceil)(it);
6109
+ }
6110
+ });
6111
+
6112
+
6113
+ /***/ }),
6114
+
6115
+ /***/ "./node_modules/core-js/modules/es6.number.constructor.js":
6116
+ /*!****************************************************************!*\
6117
+ !*** ./node_modules/core-js/modules/es6.number.constructor.js ***!
6118
+ \****************************************************************/
6119
+ /*! no static exports found */
6120
+ /***/ (function(module, exports, __webpack_require__) {
6121
+
6122
+ "use strict";
6123
+
6124
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
6125
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
6126
+ var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js");
6127
+ var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js");
6128
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js");
6129
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
6130
+ var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f;
6131
+ var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f;
6132
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f;
6133
+ var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim;
6134
+ var NUMBER = 'Number';
6135
+ var $Number = global[NUMBER];
6136
+ var Base = $Number;
6137
+ var proto = $Number.prototype;
6138
+ // Opera ~12 has broken Object#toString
6139
+ var BROKEN_COF = cof(__webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js")(proto)) == NUMBER;
6140
+ var TRIM = 'trim' in String.prototype;
6141
+
6142
+ // 7.1.3 ToNumber(argument)
6143
+ var toNumber = function (argument) {
6144
+ var it = toPrimitive(argument, false);
6145
+ if (typeof it == 'string' && it.length > 2) {
6146
+ it = TRIM ? it.trim() : $trim(it, 3);
6147
+ var first = it.charCodeAt(0);
6148
+ var third, radix, maxCode;
6149
+ if (first === 43 || first === 45) {
6150
+ third = it.charCodeAt(2);
6151
+ if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
6152
+ } else if (first === 48) {
6153
+ switch (it.charCodeAt(1)) {
6154
+ case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
6155
+ case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
6156
+ default: return +it;
6157
+ }
6158
+ for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {
6159
+ code = digits.charCodeAt(i);
6160
+ // parseInt parses a string to a first unavailable symbol
6161
+ // but ToNumber should return NaN if a string contains unavailable symbols
6162
+ if (code < 48 || code > maxCode) return NaN;
6163
+ } return parseInt(digits, radix);
6164
+ }
6165
+ } return +it;
6166
+ };
6167
+
6168
+ if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {
6169
+ $Number = function Number(value) {
6170
+ var it = arguments.length < 1 ? 0 : value;
6171
+ var that = this;
6172
+ return that instanceof $Number
6173
+ // check on 1..constructor(foo) case
6174
+ && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)
6175
+ ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
6176
+ };
6177
+ for (var keys = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? gOPN(Base) : (
6178
+ // ES3:
6179
+ 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
6180
+ // ES6 (in case, if modules with ES6 Number statics required before):
6181
+ 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
6182
+ 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
6183
+ ).split(','), j = 0, key; keys.length > j; j++) {
6184
+ if (has(Base, key = keys[j]) && !has($Number, key)) {
6185
+ dP($Number, key, gOPD(Base, key));
6186
+ }
6187
+ }
6188
+ $Number.prototype = proto;
6189
+ proto.constructor = $Number;
6190
+ __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(global, NUMBER, $Number);
6191
+ }
6192
+
6193
+
6194
+ /***/ }),
6195
+
6196
+ /***/ "./node_modules/core-js/modules/es6.number.epsilon.js":
6197
+ /*!************************************************************!*\
6198
+ !*** ./node_modules/core-js/modules/es6.number.epsilon.js ***!
6199
+ \************************************************************/
6200
+ /*! no static exports found */
6201
+ /***/ (function(module, exports, __webpack_require__) {
6202
+
6203
+ // 20.1.2.1 Number.EPSILON
6204
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6205
+
6206
+ $export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });
6207
+
6208
+
6209
+ /***/ }),
6210
+
6211
+ /***/ "./node_modules/core-js/modules/es6.number.is-finite.js":
6212
+ /*!**************************************************************!*\
6213
+ !*** ./node_modules/core-js/modules/es6.number.is-finite.js ***!
6214
+ \**************************************************************/
6215
+ /*! no static exports found */
6216
+ /***/ (function(module, exports, __webpack_require__) {
6217
+
6218
+ // 20.1.2.2 Number.isFinite(number)
6219
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6220
+ var _isFinite = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").isFinite;
6221
+
6222
+ $export($export.S, 'Number', {
6223
+ isFinite: function isFinite(it) {
6224
+ return typeof it == 'number' && _isFinite(it);
6225
+ }
6226
+ });
6227
+
6228
+
6229
+ /***/ }),
6230
+
6231
+ /***/ "./node_modules/core-js/modules/es6.number.is-integer.js":
6232
+ /*!***************************************************************!*\
6233
+ !*** ./node_modules/core-js/modules/es6.number.is-integer.js ***!
6234
+ \***************************************************************/
6235
+ /*! no static exports found */
6236
+ /***/ (function(module, exports, __webpack_require__) {
6237
+
6238
+ // 20.1.2.3 Number.isInteger(number)
6239
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6240
+
6241
+ $export($export.S, 'Number', { isInteger: __webpack_require__(/*! ./_is-integer */ "./node_modules/core-js/modules/_is-integer.js") });
6242
+
6243
+
6244
+ /***/ }),
6245
+
6246
+ /***/ "./node_modules/core-js/modules/es6.number.is-nan.js":
6247
+ /*!***********************************************************!*\
6248
+ !*** ./node_modules/core-js/modules/es6.number.is-nan.js ***!
6249
+ \***********************************************************/
6250
+ /*! no static exports found */
6251
+ /***/ (function(module, exports, __webpack_require__) {
6252
+
6253
+ // 20.1.2.4 Number.isNaN(number)
6254
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6255
+
6256
+ $export($export.S, 'Number', {
6257
+ isNaN: function isNaN(number) {
6258
+ // eslint-disable-next-line no-self-compare
6259
+ return number != number;
6260
+ }
6261
+ });
6262
+
6263
+
6264
+ /***/ }),
6265
+
6266
+ /***/ "./node_modules/core-js/modules/es6.number.is-safe-integer.js":
6267
+ /*!********************************************************************!*\
6268
+ !*** ./node_modules/core-js/modules/es6.number.is-safe-integer.js ***!
6269
+ \********************************************************************/
6270
+ /*! no static exports found */
6271
+ /***/ (function(module, exports, __webpack_require__) {
6272
+
6273
+ // 20.1.2.5 Number.isSafeInteger(number)
6274
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6275
+ var isInteger = __webpack_require__(/*! ./_is-integer */ "./node_modules/core-js/modules/_is-integer.js");
6276
+ var abs = Math.abs;
6277
+
6278
+ $export($export.S, 'Number', {
6279
+ isSafeInteger: function isSafeInteger(number) {
6280
+ return isInteger(number) && abs(number) <= 0x1fffffffffffff;
6281
+ }
6282
+ });
6283
+
6284
+
6285
+ /***/ }),
6286
+
6287
+ /***/ "./node_modules/core-js/modules/es6.number.max-safe-integer.js":
6288
+ /*!*********************************************************************!*\
6289
+ !*** ./node_modules/core-js/modules/es6.number.max-safe-integer.js ***!
6290
+ \*********************************************************************/
6291
+ /*! no static exports found */
6292
+ /***/ (function(module, exports, __webpack_require__) {
6293
+
6294
+ // 20.1.2.6 Number.MAX_SAFE_INTEGER
6295
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6296
+
6297
+ $export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });
6298
+
6299
+
6300
+ /***/ }),
6301
+
6302
+ /***/ "./node_modules/core-js/modules/es6.number.min-safe-integer.js":
6303
+ /*!*********************************************************************!*\
6304
+ !*** ./node_modules/core-js/modules/es6.number.min-safe-integer.js ***!
6305
+ \*********************************************************************/
6306
+ /*! no static exports found */
6307
+ /***/ (function(module, exports, __webpack_require__) {
6308
+
6309
+ // 20.1.2.10 Number.MIN_SAFE_INTEGER
6310
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6311
+
6312
+ $export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });
6313
+
6314
+
6315
+ /***/ }),
6316
+
6317
+ /***/ "./node_modules/core-js/modules/es6.number.parse-float.js":
6318
+ /*!****************************************************************!*\
6319
+ !*** ./node_modules/core-js/modules/es6.number.parse-float.js ***!
6320
+ \****************************************************************/
6321
+ /*! no static exports found */
6322
+ /***/ (function(module, exports, __webpack_require__) {
6323
+
6324
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6325
+ var $parseFloat = __webpack_require__(/*! ./_parse-float */ "./node_modules/core-js/modules/_parse-float.js");
6326
+ // 20.1.2.12 Number.parseFloat(string)
6327
+ $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });
6328
+
6329
+
6330
+ /***/ }),
6331
+
6332
+ /***/ "./node_modules/core-js/modules/es6.number.parse-int.js":
6333
+ /*!**************************************************************!*\
6334
+ !*** ./node_modules/core-js/modules/es6.number.parse-int.js ***!
6335
+ \**************************************************************/
6336
+ /*! no static exports found */
6337
+ /***/ (function(module, exports, __webpack_require__) {
6338
+
6339
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6340
+ var $parseInt = __webpack_require__(/*! ./_parse-int */ "./node_modules/core-js/modules/_parse-int.js");
6341
+ // 20.1.2.13 Number.parseInt(string, radix)
6342
+ $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });
6343
+
6344
+
6345
+ /***/ }),
6346
+
6347
+ /***/ "./node_modules/core-js/modules/es6.number.to-fixed.js":
6348
+ /*!*************************************************************!*\
6349
+ !*** ./node_modules/core-js/modules/es6.number.to-fixed.js ***!
6350
+ \*************************************************************/
6351
+ /*! no static exports found */
6352
+ /***/ (function(module, exports, __webpack_require__) {
6353
+
6354
+ "use strict";
6355
+
6356
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6357
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
6358
+ var aNumberValue = __webpack_require__(/*! ./_a-number-value */ "./node_modules/core-js/modules/_a-number-value.js");
6359
+ var repeat = __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js");
6360
+ var $toFixed = 1.0.toFixed;
6361
+ var floor = Math.floor;
6362
+ var data = [0, 0, 0, 0, 0, 0];
6363
+ var ERROR = 'Number.toFixed: incorrect invocation!';
6364
+ var ZERO = '0';
6365
+
6366
+ var multiply = function (n, c) {
6367
+ var i = -1;
6368
+ var c2 = c;
6369
+ while (++i < 6) {
6370
+ c2 += n * data[i];
6371
+ data[i] = c2 % 1e7;
6372
+ c2 = floor(c2 / 1e7);
6373
+ }
6374
+ };
6375
+ var divide = function (n) {
6376
+ var i = 6;
6377
+ var c = 0;
6378
+ while (--i >= 0) {
6379
+ c += data[i];
6380
+ data[i] = floor(c / n);
6381
+ c = (c % n) * 1e7;
6382
+ }
6383
+ };
6384
+ var numToString = function () {
6385
+ var i = 6;
6386
+ var s = '';
6387
+ while (--i >= 0) {
6388
+ if (s !== '' || i === 0 || data[i] !== 0) {
6389
+ var t = String(data[i]);
6390
+ s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
6391
+ }
6392
+ } return s;
6393
+ };
6394
+ var pow = function (x, n, acc) {
6395
+ return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
6396
+ };
6397
+ var log = function (x) {
6398
+ var n = 0;
6399
+ var x2 = x;
6400
+ while (x2 >= 4096) {
6401
+ n += 12;
6402
+ x2 /= 4096;
6403
+ }
6404
+ while (x2 >= 2) {
6405
+ n += 1;
6406
+ x2 /= 2;
6407
+ } return n;
6408
+ };
6409
+
6410
+ $export($export.P + $export.F * (!!$toFixed && (
6411
+ 0.00008.toFixed(3) !== '0.000' ||
6412
+ 0.9.toFixed(0) !== '1' ||
6413
+ 1.255.toFixed(2) !== '1.25' ||
6414
+ 1000000000000000128.0.toFixed(0) !== '1000000000000000128'
6415
+ ) || !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
6416
+ // V8 ~ Android 4.3-
6417
+ $toFixed.call({});
6418
+ })), 'Number', {
6419
+ toFixed: function toFixed(fractionDigits) {
6420
+ var x = aNumberValue(this, ERROR);
6421
+ var f = toInteger(fractionDigits);
6422
+ var s = '';
6423
+ var m = ZERO;
6424
+ var e, z, j, k;
6425
+ if (f < 0 || f > 20) throw RangeError(ERROR);
6426
+ // eslint-disable-next-line no-self-compare
6427
+ if (x != x) return 'NaN';
6428
+ if (x <= -1e21 || x >= 1e21) return String(x);
6429
+ if (x < 0) {
6430
+ s = '-';
6431
+ x = -x;
6432
+ }
6433
+ if (x > 1e-21) {
6434
+ e = log(x * pow(2, 69, 1)) - 69;
6435
+ z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
6436
+ z *= 0x10000000000000;
6437
+ e = 52 - e;
6438
+ if (e > 0) {
6439
+ multiply(0, z);
6440
+ j = f;
6441
+ while (j >= 7) {
6442
+ multiply(1e7, 0);
6443
+ j -= 7;
6444
+ }
6445
+ multiply(pow(10, j, 1), 0);
6446
+ j = e - 1;
6447
+ while (j >= 23) {
6448
+ divide(1 << 23);
6449
+ j -= 23;
6450
+ }
6451
+ divide(1 << j);
6452
+ multiply(1, 1);
6453
+ divide(2);
6454
+ m = numToString();
6455
+ } else {
6456
+ multiply(0, z);
6457
+ multiply(1 << -e, 0);
6458
+ m = numToString() + repeat.call(ZERO, f);
6459
+ }
6460
+ }
6461
+ if (f > 0) {
6462
+ k = m.length;
6463
+ m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
6464
+ } else {
6465
+ m = s + m;
6466
+ } return m;
6467
+ }
6468
+ });
6469
+
6470
+
6471
+ /***/ }),
6472
+
6473
+ /***/ "./node_modules/core-js/modules/es6.number.to-precision.js":
6474
+ /*!*****************************************************************!*\
6475
+ !*** ./node_modules/core-js/modules/es6.number.to-precision.js ***!
6476
+ \*****************************************************************/
6477
+ /*! no static exports found */
6478
+ /***/ (function(module, exports, __webpack_require__) {
6479
+
6480
+ "use strict";
6481
+
6482
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6483
+ var $fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
6484
+ var aNumberValue = __webpack_require__(/*! ./_a-number-value */ "./node_modules/core-js/modules/_a-number-value.js");
6485
+ var $toPrecision = 1.0.toPrecision;
6486
+
6487
+ $export($export.P + $export.F * ($fails(function () {
6488
+ // IE7-
6489
+ return $toPrecision.call(1, undefined) !== '1';
6490
+ }) || !$fails(function () {
6491
+ // V8 ~ Android 4.3-
6492
+ $toPrecision.call({});
6493
+ })), 'Number', {
6494
+ toPrecision: function toPrecision(precision) {
6495
+ var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
6496
+ return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
6497
+ }
6498
+ });
6499
+
6500
+
6501
+ /***/ }),
6502
+
6503
+ /***/ "./node_modules/core-js/modules/es6.object.assign.js":
6504
+ /*!***********************************************************!*\
6505
+ !*** ./node_modules/core-js/modules/es6.object.assign.js ***!
6506
+ \***********************************************************/
6507
+ /*! no static exports found */
6508
+ /***/ (function(module, exports, __webpack_require__) {
6509
+
6510
+ // 19.1.3.1 Object.assign(target, source)
6511
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6512
+
6513
+ $export($export.S + $export.F, 'Object', { assign: __webpack_require__(/*! ./_object-assign */ "./node_modules/core-js/modules/_object-assign.js") });
6514
+
6515
+
6516
+ /***/ }),
6517
+
6518
+ /***/ "./node_modules/core-js/modules/es6.object.create.js":
6519
+ /*!***********************************************************!*\
6520
+ !*** ./node_modules/core-js/modules/es6.object.create.js ***!
6521
+ \***********************************************************/
6522
+ /*! no static exports found */
6523
+ /***/ (function(module, exports, __webpack_require__) {
6524
+
6525
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6526
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
6527
+ $export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js") });
6528
+
6529
+
6530
+ /***/ }),
6531
+
6532
+ /***/ "./node_modules/core-js/modules/es6.object.define-properties.js":
6533
+ /*!**********************************************************************!*\
6534
+ !*** ./node_modules/core-js/modules/es6.object.define-properties.js ***!
6535
+ \**********************************************************************/
6536
+ /*! no static exports found */
6537
+ /***/ (function(module, exports, __webpack_require__) {
6538
+
6539
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6540
+ // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
6541
+ $export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"), 'Object', { defineProperties: __webpack_require__(/*! ./_object-dps */ "./node_modules/core-js/modules/_object-dps.js") });
6542
+
6543
+
6544
+ /***/ }),
6545
+
6546
+ /***/ "./node_modules/core-js/modules/es6.object.define-property.js":
6547
+ /*!********************************************************************!*\
6548
+ !*** ./node_modules/core-js/modules/es6.object.define-property.js ***!
6549
+ \********************************************************************/
6550
+ /*! no static exports found */
6551
+ /***/ (function(module, exports, __webpack_require__) {
6552
+
6553
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6554
+ // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
6555
+ $export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f });
6556
+
6557
+
6558
+ /***/ }),
6559
+
6560
+ /***/ "./node_modules/core-js/modules/es6.object.freeze.js":
6561
+ /*!***********************************************************!*\
6562
+ !*** ./node_modules/core-js/modules/es6.object.freeze.js ***!
6563
+ \***********************************************************/
6564
+ /*! no static exports found */
6565
+ /***/ (function(module, exports, __webpack_require__) {
6566
+
6567
+ // 19.1.2.5 Object.freeze(O)
6568
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
6569
+ var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze;
6570
+
6571
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('freeze', function ($freeze) {
6572
+ return function freeze(it) {
6573
+ return $freeze && isObject(it) ? $freeze(meta(it)) : it;
6574
+ };
6575
+ });
6576
+
6577
+
6578
+ /***/ }),
6579
+
6580
+ /***/ "./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js":
6581
+ /*!********************************************************************************!*\
6582
+ !*** ./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js ***!
6583
+ \********************************************************************************/
6584
+ /*! no static exports found */
6585
+ /***/ (function(module, exports, __webpack_require__) {
6586
+
6587
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
6588
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
6589
+ var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f;
6590
+
6591
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getOwnPropertyDescriptor', function () {
6592
+ return function getOwnPropertyDescriptor(it, key) {
6593
+ return $getOwnPropertyDescriptor(toIObject(it), key);
6594
+ };
6595
+ });
6596
+
6597
+
6598
+ /***/ }),
6599
+
6600
+ /***/ "./node_modules/core-js/modules/es6.object.get-own-property-names.js":
6601
+ /*!***************************************************************************!*\
6602
+ !*** ./node_modules/core-js/modules/es6.object.get-own-property-names.js ***!
6603
+ \***************************************************************************/
6604
+ /*! no static exports found */
6605
+ /***/ (function(module, exports, __webpack_require__) {
6606
+
6607
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
6608
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getOwnPropertyNames', function () {
6609
+ return __webpack_require__(/*! ./_object-gopn-ext */ "./node_modules/core-js/modules/_object-gopn-ext.js").f;
6610
+ });
6611
+
6612
+
6613
+ /***/ }),
6614
+
6615
+ /***/ "./node_modules/core-js/modules/es6.object.get-prototype-of.js":
6616
+ /*!*********************************************************************!*\
6617
+ !*** ./node_modules/core-js/modules/es6.object.get-prototype-of.js ***!
6618
+ \*********************************************************************/
6619
+ /*! no static exports found */
6620
+ /***/ (function(module, exports, __webpack_require__) {
6621
+
6622
+ // 19.1.2.9 Object.getPrototypeOf(O)
6623
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
6624
+ var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js");
6625
+
6626
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getPrototypeOf', function () {
6627
+ return function getPrototypeOf(it) {
6628
+ return $getPrototypeOf(toObject(it));
6629
+ };
6630
+ });
6631
+
6632
+
6633
+ /***/ }),
6634
+
6635
+ /***/ "./node_modules/core-js/modules/es6.object.is-extensible.js":
6636
+ /*!******************************************************************!*\
6637
+ !*** ./node_modules/core-js/modules/es6.object.is-extensible.js ***!
6638
+ \******************************************************************/
6639
+ /*! no static exports found */
6640
+ /***/ (function(module, exports, __webpack_require__) {
6641
+
6642
+ // 19.1.2.11 Object.isExtensible(O)
6643
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
6644
+
6645
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isExtensible', function ($isExtensible) {
6646
+ return function isExtensible(it) {
6647
+ return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
6648
+ };
6649
+ });
6650
+
6651
+
6652
+ /***/ }),
6653
+
6654
+ /***/ "./node_modules/core-js/modules/es6.object.is-frozen.js":
6655
+ /*!**************************************************************!*\
6656
+ !*** ./node_modules/core-js/modules/es6.object.is-frozen.js ***!
6657
+ \**************************************************************/
6658
+ /*! no static exports found */
6659
+ /***/ (function(module, exports, __webpack_require__) {
6660
+
6661
+ // 19.1.2.12 Object.isFrozen(O)
6662
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
6663
+
6664
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isFrozen', function ($isFrozen) {
6665
+ return function isFrozen(it) {
6666
+ return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
6667
+ };
6668
+ });
6669
+
6670
+
6671
+ /***/ }),
6672
+
6673
+ /***/ "./node_modules/core-js/modules/es6.object.is-sealed.js":
6674
+ /*!**************************************************************!*\
6675
+ !*** ./node_modules/core-js/modules/es6.object.is-sealed.js ***!
6676
+ \**************************************************************/
6677
+ /*! no static exports found */
6678
+ /***/ (function(module, exports, __webpack_require__) {
6679
+
6680
+ // 19.1.2.13 Object.isSealed(O)
6681
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
6682
+
6683
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isSealed', function ($isSealed) {
6684
+ return function isSealed(it) {
6685
+ return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
6686
+ };
6687
+ });
6688
+
6689
+
6690
+ /***/ }),
6691
+
6692
+ /***/ "./node_modules/core-js/modules/es6.object.is.js":
6693
+ /*!*******************************************************!*\
6694
+ !*** ./node_modules/core-js/modules/es6.object.is.js ***!
6695
+ \*******************************************************/
6696
+ /*! no static exports found */
6697
+ /***/ (function(module, exports, __webpack_require__) {
6698
+
6699
+ // 19.1.3.10 Object.is(value1, value2)
6700
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6701
+ $export($export.S, 'Object', { is: __webpack_require__(/*! ./_same-value */ "./node_modules/core-js/modules/_same-value.js") });
6702
+
6703
+
6704
+ /***/ }),
6705
+
6706
+ /***/ "./node_modules/core-js/modules/es6.object.keys.js":
6707
+ /*!*********************************************************!*\
6708
+ !*** ./node_modules/core-js/modules/es6.object.keys.js ***!
6709
+ \*********************************************************/
6710
+ /*! no static exports found */
6711
+ /***/ (function(module, exports, __webpack_require__) {
6712
+
6713
+ // 19.1.2.14 Object.keys(O)
6714
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
6715
+ var $keys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js");
6716
+
6717
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('keys', function () {
6718
+ return function keys(it) {
6719
+ return $keys(toObject(it));
6720
+ };
6721
+ });
6722
+
6723
+
6724
+ /***/ }),
6725
+
6726
+ /***/ "./node_modules/core-js/modules/es6.object.prevent-extensions.js":
6727
+ /*!***********************************************************************!*\
6728
+ !*** ./node_modules/core-js/modules/es6.object.prevent-extensions.js ***!
6729
+ \***********************************************************************/
6730
+ /*! no static exports found */
6731
+ /***/ (function(module, exports, __webpack_require__) {
6732
+
6733
+ // 19.1.2.15 Object.preventExtensions(O)
6734
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
6735
+ var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze;
6736
+
6737
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('preventExtensions', function ($preventExtensions) {
6738
+ return function preventExtensions(it) {
6739
+ return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
6740
+ };
6741
+ });
6742
+
6743
+
6744
+ /***/ }),
6745
+
6746
+ /***/ "./node_modules/core-js/modules/es6.object.seal.js":
6747
+ /*!*********************************************************!*\
6748
+ !*** ./node_modules/core-js/modules/es6.object.seal.js ***!
6749
+ \*********************************************************/
6750
+ /*! no static exports found */
6751
+ /***/ (function(module, exports, __webpack_require__) {
6752
+
6753
+ // 19.1.2.17 Object.seal(O)
6754
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
6755
+ var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze;
6756
+
6757
+ __webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('seal', function ($seal) {
6758
+ return function seal(it) {
6759
+ return $seal && isObject(it) ? $seal(meta(it)) : it;
6760
+ };
6761
+ });
6762
+
6763
+
6764
+ /***/ }),
6765
+
6766
+ /***/ "./node_modules/core-js/modules/es6.object.set-prototype-of.js":
6767
+ /*!*********************************************************************!*\
6768
+ !*** ./node_modules/core-js/modules/es6.object.set-prototype-of.js ***!
6769
+ \*********************************************************************/
6770
+ /*! no static exports found */
6771
+ /***/ (function(module, exports, __webpack_require__) {
6772
+
6773
+ // 19.1.3.19 Object.setPrototypeOf(O, proto)
6774
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6775
+ $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js").set });
6776
+
6777
+
6778
+ /***/ }),
6779
+
6780
+ /***/ "./node_modules/core-js/modules/es6.object.to-string.js":
6781
+ /*!**************************************************************!*\
6782
+ !*** ./node_modules/core-js/modules/es6.object.to-string.js ***!
6783
+ \**************************************************************/
6784
+ /*! no static exports found */
6785
+ /***/ (function(module, exports, __webpack_require__) {
6786
+
6787
+ "use strict";
6788
+
6789
+ // 19.1.3.6 Object.prototype.toString()
6790
+ var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js");
6791
+ var test = {};
6792
+ test[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z';
6793
+ if (test + '' != '[object z]') {
6794
+ __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() {
6795
+ return '[object ' + classof(this) + ']';
6796
+ }, true);
6797
+ }
6798
+
6799
+
6800
+ /***/ }),
6801
+
6802
+ /***/ "./node_modules/core-js/modules/es6.parse-float.js":
6803
+ /*!*********************************************************!*\
6804
+ !*** ./node_modules/core-js/modules/es6.parse-float.js ***!
6805
+ \*********************************************************/
6806
+ /*! no static exports found */
6807
+ /***/ (function(module, exports, __webpack_require__) {
6808
+
6809
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6810
+ var $parseFloat = __webpack_require__(/*! ./_parse-float */ "./node_modules/core-js/modules/_parse-float.js");
6811
+ // 18.2.4 parseFloat(string)
6812
+ $export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });
6813
+
6814
+
6815
+ /***/ }),
6816
+
6817
+ /***/ "./node_modules/core-js/modules/es6.parse-int.js":
6818
+ /*!*******************************************************!*\
6819
+ !*** ./node_modules/core-js/modules/es6.parse-int.js ***!
6820
+ \*******************************************************/
6821
+ /*! no static exports found */
6822
+ /***/ (function(module, exports, __webpack_require__) {
6823
+
6824
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6825
+ var $parseInt = __webpack_require__(/*! ./_parse-int */ "./node_modules/core-js/modules/_parse-int.js");
6826
+ // 18.2.5 parseInt(string, radix)
6827
+ $export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });
6828
+
6829
+
6830
+ /***/ }),
6831
+
6832
+ /***/ "./node_modules/core-js/modules/es6.promise.js":
6833
+ /*!*****************************************************!*\
6834
+ !*** ./node_modules/core-js/modules/es6.promise.js ***!
6835
+ \*****************************************************/
6836
+ /*! no static exports found */
6837
+ /***/ (function(module, exports, __webpack_require__) {
6838
+
6839
+ "use strict";
6840
+
6841
+ var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js");
6842
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
6843
+ var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js");
6844
+ var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js");
6845
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
6846
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
6847
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
6848
+ var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js");
6849
+ var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js");
6850
+ var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js");
6851
+ var task = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js").set;
6852
+ var microtask = __webpack_require__(/*! ./_microtask */ "./node_modules/core-js/modules/_microtask.js")();
6853
+ var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "./node_modules/core-js/modules/_new-promise-capability.js");
6854
+ var perform = __webpack_require__(/*! ./_perform */ "./node_modules/core-js/modules/_perform.js");
6855
+ var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js");
6856
+ var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "./node_modules/core-js/modules/_promise-resolve.js");
6857
+ var PROMISE = 'Promise';
6858
+ var TypeError = global.TypeError;
6859
+ var process = global.process;
6860
+ var versions = process && process.versions;
6861
+ var v8 = versions && versions.v8 || '';
6862
+ var $Promise = global[PROMISE];
6863
+ var isNode = classof(process) == 'process';
6864
+ var empty = function () { /* empty */ };
6865
+ var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
6866
+ var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
6867
+
6868
+ var USE_NATIVE = !!function () {
6869
+ try {
6870
+ // correct subclassing with @@species support
6871
+ var promise = $Promise.resolve(1);
6872
+ var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species')] = function (exec) {
6873
+ exec(empty, empty);
6874
+ };
6875
+ // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
6876
+ return (isNode || typeof PromiseRejectionEvent == 'function')
6877
+ && promise.then(empty) instanceof FakePromise
6878
+ // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
6879
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
6880
+ // we can't detect it synchronously, so just check versions
6881
+ && v8.indexOf('6.6') !== 0
6882
+ && userAgent.indexOf('Chrome/66') === -1;
6883
+ } catch (e) { /* empty */ }
6884
+ }();
6885
+
6886
+ // helpers
6887
+ var isThenable = function (it) {
6888
+ var then;
6889
+ return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
6890
+ };
6891
+ var notify = function (promise, isReject) {
6892
+ if (promise._n) return;
6893
+ promise._n = true;
6894
+ var chain = promise._c;
6895
+ microtask(function () {
6896
+ var value = promise._v;
6897
+ var ok = promise._s == 1;
6898
+ var i = 0;
6899
+ var run = function (reaction) {
6900
+ var handler = ok ? reaction.ok : reaction.fail;
6901
+ var resolve = reaction.resolve;
6902
+ var reject = reaction.reject;
6903
+ var domain = reaction.domain;
6904
+ var result, then, exited;
6905
+ try {
6906
+ if (handler) {
6907
+ if (!ok) {
6908
+ if (promise._h == 2) onHandleUnhandled(promise);
6909
+ promise._h = 1;
6910
+ }
6911
+ if (handler === true) result = value;
6912
+ else {
6913
+ if (domain) domain.enter();
6914
+ result = handler(value); // may throw
6915
+ if (domain) {
6916
+ domain.exit();
6917
+ exited = true;
6918
+ }
6919
+ }
6920
+ if (result === reaction.promise) {
6921
+ reject(TypeError('Promise-chain cycle'));
6922
+ } else if (then = isThenable(result)) {
6923
+ then.call(result, resolve, reject);
6924
+ } else resolve(result);
6925
+ } else reject(value);
6926
+ } catch (e) {
6927
+ if (domain && !exited) domain.exit();
6928
+ reject(e);
6929
+ }
6930
+ };
6931
+ while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
6932
+ promise._c = [];
6933
+ promise._n = false;
6934
+ if (isReject && !promise._h) onUnhandled(promise);
6935
+ });
6936
+ };
6937
+ var onUnhandled = function (promise) {
6938
+ task.call(global, function () {
6939
+ var value = promise._v;
6940
+ var unhandled = isUnhandled(promise);
6941
+ var result, handler, console;
6942
+ if (unhandled) {
6943
+ result = perform(function () {
6944
+ if (isNode) {
6945
+ process.emit('unhandledRejection', value, promise);
6946
+ } else if (handler = global.onunhandledrejection) {
6947
+ handler({ promise: promise, reason: value });
6948
+ } else if ((console = global.console) && console.error) {
6949
+ console.error('Unhandled promise rejection', value);
6950
+ }
6951
+ });
6952
+ // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
6953
+ promise._h = isNode || isUnhandled(promise) ? 2 : 1;
6954
+ } promise._a = undefined;
6955
+ if (unhandled && result.e) throw result.v;
6956
+ });
6957
+ };
6958
+ var isUnhandled = function (promise) {
6959
+ return promise._h !== 1 && (promise._a || promise._c).length === 0;
6960
+ };
6961
+ var onHandleUnhandled = function (promise) {
6962
+ task.call(global, function () {
6963
+ var handler;
6964
+ if (isNode) {
6965
+ process.emit('rejectionHandled', promise);
6966
+ } else if (handler = global.onrejectionhandled) {
6967
+ handler({ promise: promise, reason: promise._v });
6968
+ }
6969
+ });
6970
+ };
6971
+ var $reject = function (value) {
6972
+ var promise = this;
6973
+ if (promise._d) return;
6974
+ promise._d = true;
6975
+ promise = promise._w || promise; // unwrap
6976
+ promise._v = value;
6977
+ promise._s = 2;
6978
+ if (!promise._a) promise._a = promise._c.slice();
6979
+ notify(promise, true);
6980
+ };
6981
+ var $resolve = function (value) {
6982
+ var promise = this;
6983
+ var then;
6984
+ if (promise._d) return;
6985
+ promise._d = true;
6986
+ promise = promise._w || promise; // unwrap
6987
+ try {
6988
+ if (promise === value) throw TypeError("Promise can't be resolved itself");
6989
+ if (then = isThenable(value)) {
6990
+ microtask(function () {
6991
+ var wrapper = { _w: promise, _d: false }; // wrap
6992
+ try {
6993
+ then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
6994
+ } catch (e) {
6995
+ $reject.call(wrapper, e);
6996
+ }
6997
+ });
6998
+ } else {
6999
+ promise._v = value;
7000
+ promise._s = 1;
7001
+ notify(promise, false);
7002
+ }
7003
+ } catch (e) {
7004
+ $reject.call({ _w: promise, _d: false }, e); // wrap
7005
+ }
7006
+ };
7007
+
7008
+ // constructor polyfill
7009
+ if (!USE_NATIVE) {
7010
+ // 25.4.3.1 Promise(executor)
7011
+ $Promise = function Promise(executor) {
7012
+ anInstance(this, $Promise, PROMISE, '_h');
7013
+ aFunction(executor);
7014
+ Internal.call(this);
7015
+ try {
7016
+ executor(ctx($resolve, this, 1), ctx($reject, this, 1));
7017
+ } catch (err) {
7018
+ $reject.call(this, err);
7019
+ }
7020
+ };
7021
+ // eslint-disable-next-line no-unused-vars
7022
+ Internal = function Promise(executor) {
7023
+ this._c = []; // <- awaiting reactions
7024
+ this._a = undefined; // <- checked in isUnhandled reactions
7025
+ this._s = 0; // <- state
7026
+ this._d = false; // <- done
7027
+ this._v = undefined; // <- value
7028
+ this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
7029
+ this._n = false; // <- notify
7030
+ };
7031
+ Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js")($Promise.prototype, {
7032
+ // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
7033
+ then: function then(onFulfilled, onRejected) {
7034
+ var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
7035
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
7036
+ reaction.fail = typeof onRejected == 'function' && onRejected;
7037
+ reaction.domain = isNode ? process.domain : undefined;
7038
+ this._c.push(reaction);
7039
+ if (this._a) this._a.push(reaction);
7040
+ if (this._s) notify(this, false);
7041
+ return reaction.promise;
7042
+ },
7043
+ // 25.4.5.1 Promise.prototype.catch(onRejected)
7044
+ 'catch': function (onRejected) {
7045
+ return this.then(undefined, onRejected);
7046
+ }
7047
+ });
7048
+ OwnPromiseCapability = function () {
7049
+ var promise = new Internal();
7050
+ this.promise = promise;
7051
+ this.resolve = ctx($resolve, promise, 1);
7052
+ this.reject = ctx($reject, promise, 1);
7053
+ };
7054
+ newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
7055
+ return C === $Promise || C === Wrapper
7056
+ ? new OwnPromiseCapability(C)
7057
+ : newGenericPromiseCapability(C);
7058
+ };
7059
+ }
7060
+
7061
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
7062
+ __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js")($Promise, PROMISE);
7063
+ __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")(PROMISE);
7064
+ Wrapper = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js")[PROMISE];
7065
+
7066
+ // statics
7067
+ $export($export.S + $export.F * !USE_NATIVE, PROMISE, {
7068
+ // 25.4.4.5 Promise.reject(r)
7069
+ reject: function reject(r) {
7070
+ var capability = newPromiseCapability(this);
7071
+ var $$reject = capability.reject;
7072
+ $$reject(r);
7073
+ return capability.promise;
7074
+ }
7075
+ });
7076
+ $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
7077
+ // 25.4.4.6 Promise.resolve(x)
7078
+ resolve: function resolve(x) {
7079
+ return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
7080
+ }
7081
+ });
7082
+ $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js")(function (iter) {
7083
+ $Promise.all(iter)['catch'](empty);
7084
+ })), PROMISE, {
7085
+ // 25.4.4.1 Promise.all(iterable)
7086
+ all: function all(iterable) {
7087
+ var C = this;
7088
+ var capability = newPromiseCapability(C);
7089
+ var resolve = capability.resolve;
7090
+ var reject = capability.reject;
7091
+ var result = perform(function () {
7092
+ var values = [];
7093
+ var index = 0;
7094
+ var remaining = 1;
7095
+ forOf(iterable, false, function (promise) {
7096
+ var $index = index++;
7097
+ var alreadyCalled = false;
7098
+ values.push(undefined);
7099
+ remaining++;
7100
+ C.resolve(promise).then(function (value) {
7101
+ if (alreadyCalled) return;
7102
+ alreadyCalled = true;
7103
+ values[$index] = value;
7104
+ --remaining || resolve(values);
7105
+ }, reject);
7106
+ });
7107
+ --remaining || resolve(values);
7108
+ });
7109
+ if (result.e) reject(result.v);
7110
+ return capability.promise;
7111
+ },
7112
+ // 25.4.4.4 Promise.race(iterable)
7113
+ race: function race(iterable) {
7114
+ var C = this;
7115
+ var capability = newPromiseCapability(C);
7116
+ var reject = capability.reject;
7117
+ var result = perform(function () {
7118
+ forOf(iterable, false, function (promise) {
7119
+ C.resolve(promise).then(capability.resolve, reject);
7120
+ });
7121
+ });
7122
+ if (result.e) reject(result.v);
7123
+ return capability.promise;
7124
+ }
7125
+ });
7126
+
7127
+
7128
+ /***/ }),
7129
+
7130
+ /***/ "./node_modules/core-js/modules/es6.reflect.apply.js":
7131
+ /*!***********************************************************!*\
7132
+ !*** ./node_modules/core-js/modules/es6.reflect.apply.js ***!
7133
+ \***********************************************************/
7134
+ /*! no static exports found */
7135
+ /***/ (function(module, exports, __webpack_require__) {
7136
+
7137
+ // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
7138
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7139
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
7140
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7141
+ var rApply = (__webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect || {}).apply;
7142
+ var fApply = Function.apply;
7143
+ // MS Edge argumentsList argument is optional
7144
+ $export($export.S + $export.F * !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
7145
+ rApply(function () { /* empty */ });
7146
+ }), 'Reflect', {
7147
+ apply: function apply(target, thisArgument, argumentsList) {
7148
+ var T = aFunction(target);
7149
+ var L = anObject(argumentsList);
7150
+ return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
7151
+ }
7152
+ });
7153
+
7154
+
7155
+ /***/ }),
7156
+
7157
+ /***/ "./node_modules/core-js/modules/es6.reflect.construct.js":
7158
+ /*!***************************************************************!*\
7159
+ !*** ./node_modules/core-js/modules/es6.reflect.construct.js ***!
7160
+ \***************************************************************/
7161
+ /*! no static exports found */
7162
+ /***/ (function(module, exports, __webpack_require__) {
7163
+
7164
+ // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
7165
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7166
+ var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js");
7167
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
7168
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7169
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
7170
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
7171
+ var bind = __webpack_require__(/*! ./_bind */ "./node_modules/core-js/modules/_bind.js");
7172
+ var rConstruct = (__webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect || {}).construct;
7173
+
7174
+ // MS Edge supports only 2 arguments and argumentsList argument is optional
7175
+ // FF Nightly sets third argument as `new.target`, but does not create `this` from it
7176
+ var NEW_TARGET_BUG = fails(function () {
7177
+ function F() { /* empty */ }
7178
+ return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
7179
+ });
7180
+ var ARGS_BUG = !fails(function () {
7181
+ rConstruct(function () { /* empty */ });
7182
+ });
7183
+
7184
+ $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
7185
+ construct: function construct(Target, args /* , newTarget */) {
7186
+ aFunction(Target);
7187
+ anObject(args);
7188
+ var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
7189
+ if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
7190
+ if (Target == newTarget) {
7191
+ // w/o altered newTarget, optimization for 0-4 arguments
7192
+ switch (args.length) {
7193
+ case 0: return new Target();
7194
+ case 1: return new Target(args[0]);
7195
+ case 2: return new Target(args[0], args[1]);
7196
+ case 3: return new Target(args[0], args[1], args[2]);
7197
+ case 4: return new Target(args[0], args[1], args[2], args[3]);
7198
+ }
7199
+ // w/o altered newTarget, lot of arguments case
7200
+ var $args = [null];
7201
+ $args.push.apply($args, args);
7202
+ return new (bind.apply(Target, $args))();
7203
+ }
7204
+ // with altered newTarget, not support built-in constructors
7205
+ var proto = newTarget.prototype;
7206
+ var instance = create(isObject(proto) ? proto : Object.prototype);
7207
+ var result = Function.apply.call(Target, instance, args);
7208
+ return isObject(result) ? result : instance;
7209
+ }
7210
+ });
7211
+
7212
+
7213
+ /***/ }),
7214
+
7215
+ /***/ "./node_modules/core-js/modules/es6.reflect.define-property.js":
7216
+ /*!*********************************************************************!*\
7217
+ !*** ./node_modules/core-js/modules/es6.reflect.define-property.js ***!
7218
+ \*********************************************************************/
7219
+ /*! no static exports found */
7220
+ /***/ (function(module, exports, __webpack_require__) {
7221
+
7222
+ // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
7223
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js");
7224
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7225
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7226
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js");
7227
+
7228
+ // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
7229
+ $export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
7230
+ // eslint-disable-next-line no-undef
7231
+ Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });
7232
+ }), 'Reflect', {
7233
+ defineProperty: function defineProperty(target, propertyKey, attributes) {
7234
+ anObject(target);
7235
+ propertyKey = toPrimitive(propertyKey, true);
7236
+ anObject(attributes);
7237
+ try {
7238
+ dP.f(target, propertyKey, attributes);
7239
+ return true;
7240
+ } catch (e) {
7241
+ return false;
7242
+ }
7243
+ }
7244
+ });
7245
+
7246
+
7247
+ /***/ }),
7248
+
7249
+ /***/ "./node_modules/core-js/modules/es6.reflect.delete-property.js":
7250
+ /*!*********************************************************************!*\
7251
+ !*** ./node_modules/core-js/modules/es6.reflect.delete-property.js ***!
7252
+ \*********************************************************************/
7253
+ /*! no static exports found */
7254
+ /***/ (function(module, exports, __webpack_require__) {
7255
+
7256
+ // 26.1.4 Reflect.deleteProperty(target, propertyKey)
7257
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7258
+ var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f;
7259
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7260
+
7261
+ $export($export.S, 'Reflect', {
7262
+ deleteProperty: function deleteProperty(target, propertyKey) {
7263
+ var desc = gOPD(anObject(target), propertyKey);
7264
+ return desc && !desc.configurable ? false : delete target[propertyKey];
7265
+ }
7266
+ });
7267
+
7268
+
7269
+ /***/ }),
7270
+
7271
+ /***/ "./node_modules/core-js/modules/es6.reflect.enumerate.js":
7272
+ /*!***************************************************************!*\
7273
+ !*** ./node_modules/core-js/modules/es6.reflect.enumerate.js ***!
7274
+ \***************************************************************/
7275
+ /*! no static exports found */
7276
+ /***/ (function(module, exports, __webpack_require__) {
7277
+
7278
+ "use strict";
7279
+
7280
+ // 26.1.5 Reflect.enumerate(target)
7281
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7282
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7283
+ var Enumerate = function (iterated) {
7284
+ this._t = anObject(iterated); // target
7285
+ this._i = 0; // next index
7286
+ var keys = this._k = []; // keys
7287
+ var key;
7288
+ for (key in iterated) keys.push(key);
7289
+ };
7290
+ __webpack_require__(/*! ./_iter-create */ "./node_modules/core-js/modules/_iter-create.js")(Enumerate, 'Object', function () {
7291
+ var that = this;
7292
+ var keys = that._k;
7293
+ var key;
7294
+ do {
7295
+ if (that._i >= keys.length) return { value: undefined, done: true };
7296
+ } while (!((key = keys[that._i++]) in that._t));
7297
+ return { value: key, done: false };
7298
+ });
7299
+
7300
+ $export($export.S, 'Reflect', {
7301
+ enumerate: function enumerate(target) {
7302
+ return new Enumerate(target);
7303
+ }
7304
+ });
7305
+
7306
+
7307
+ /***/ }),
7308
+
7309
+ /***/ "./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js":
7310
+ /*!*********************************************************************************!*\
7311
+ !*** ./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js ***!
7312
+ \*********************************************************************************/
7313
+ /*! no static exports found */
7314
+ /***/ (function(module, exports, __webpack_require__) {
7315
+
7316
+ // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
7317
+ var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js");
7318
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7319
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7320
+
7321
+ $export($export.S, 'Reflect', {
7322
+ getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
7323
+ return gOPD.f(anObject(target), propertyKey);
7324
+ }
7325
+ });
7326
+
7327
+
7328
+ /***/ }),
7329
+
7330
+ /***/ "./node_modules/core-js/modules/es6.reflect.get-prototype-of.js":
7331
+ /*!**********************************************************************!*\
7332
+ !*** ./node_modules/core-js/modules/es6.reflect.get-prototype-of.js ***!
7333
+ \**********************************************************************/
7334
+ /*! no static exports found */
7335
+ /***/ (function(module, exports, __webpack_require__) {
7336
+
7337
+ // 26.1.8 Reflect.getPrototypeOf(target)
7338
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7339
+ var getProto = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js");
7340
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7341
+
7342
+ $export($export.S, 'Reflect', {
7343
+ getPrototypeOf: function getPrototypeOf(target) {
7344
+ return getProto(anObject(target));
7345
+ }
7346
+ });
7347
+
7348
+
7349
+ /***/ }),
7350
+
7351
+ /***/ "./node_modules/core-js/modules/es6.reflect.get.js":
7352
+ /*!*********************************************************!*\
7353
+ !*** ./node_modules/core-js/modules/es6.reflect.get.js ***!
7354
+ \*********************************************************/
7355
+ /*! no static exports found */
7356
+ /***/ (function(module, exports, __webpack_require__) {
7357
+
7358
+ // 26.1.6 Reflect.get(target, propertyKey [, receiver])
7359
+ var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js");
7360
+ var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js");
7361
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
7362
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7363
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
7364
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7365
+
7366
+ function get(target, propertyKey /* , receiver */) {
7367
+ var receiver = arguments.length < 3 ? target : arguments[2];
7368
+ var desc, proto;
7369
+ if (anObject(target) === receiver) return target[propertyKey];
7370
+ if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')
7371
+ ? desc.value
7372
+ : desc.get !== undefined
7373
+ ? desc.get.call(receiver)
7374
+ : undefined;
7375
+ if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
7376
+ }
7377
+
7378
+ $export($export.S, 'Reflect', { get: get });
7379
+
7380
+
7381
+ /***/ }),
7382
+
7383
+ /***/ "./node_modules/core-js/modules/es6.reflect.has.js":
7384
+ /*!*********************************************************!*\
7385
+ !*** ./node_modules/core-js/modules/es6.reflect.has.js ***!
7386
+ \*********************************************************/
7387
+ /*! no static exports found */
7388
+ /***/ (function(module, exports, __webpack_require__) {
7389
+
7390
+ // 26.1.9 Reflect.has(target, propertyKey)
7391
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7392
+
7393
+ $export($export.S, 'Reflect', {
7394
+ has: function has(target, propertyKey) {
7395
+ return propertyKey in target;
7396
+ }
7397
+ });
7398
+
7399
+
7400
+ /***/ }),
7401
+
7402
+ /***/ "./node_modules/core-js/modules/es6.reflect.is-extensible.js":
7403
+ /*!*******************************************************************!*\
7404
+ !*** ./node_modules/core-js/modules/es6.reflect.is-extensible.js ***!
7405
+ \*******************************************************************/
7406
+ /*! no static exports found */
7407
+ /***/ (function(module, exports, __webpack_require__) {
7408
+
7409
+ // 26.1.10 Reflect.isExtensible(target)
7410
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7411
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7412
+ var $isExtensible = Object.isExtensible;
7413
+
7414
+ $export($export.S, 'Reflect', {
7415
+ isExtensible: function isExtensible(target) {
7416
+ anObject(target);
7417
+ return $isExtensible ? $isExtensible(target) : true;
7418
+ }
7419
+ });
7420
+
7421
+
7422
+ /***/ }),
7423
+
7424
+ /***/ "./node_modules/core-js/modules/es6.reflect.own-keys.js":
7425
+ /*!**************************************************************!*\
7426
+ !*** ./node_modules/core-js/modules/es6.reflect.own-keys.js ***!
7427
+ \**************************************************************/
7428
+ /*! no static exports found */
7429
+ /***/ (function(module, exports, __webpack_require__) {
7430
+
7431
+ // 26.1.11 Reflect.ownKeys(target)
7432
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7433
+
7434
+ $export($export.S, 'Reflect', { ownKeys: __webpack_require__(/*! ./_own-keys */ "./node_modules/core-js/modules/_own-keys.js") });
7435
+
7436
+
7437
+ /***/ }),
7438
+
7439
+ /***/ "./node_modules/core-js/modules/es6.reflect.prevent-extensions.js":
7440
+ /*!************************************************************************!*\
7441
+ !*** ./node_modules/core-js/modules/es6.reflect.prevent-extensions.js ***!
7442
+ \************************************************************************/
7443
+ /*! no static exports found */
7444
+ /***/ (function(module, exports, __webpack_require__) {
7445
+
7446
+ // 26.1.12 Reflect.preventExtensions(target)
7447
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7448
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7449
+ var $preventExtensions = Object.preventExtensions;
7450
+
7451
+ $export($export.S, 'Reflect', {
7452
+ preventExtensions: function preventExtensions(target) {
7453
+ anObject(target);
7454
+ try {
7455
+ if ($preventExtensions) $preventExtensions(target);
7456
+ return true;
7457
+ } catch (e) {
7458
+ return false;
7459
+ }
7460
+ }
7461
+ });
7462
+
7463
+
7464
+ /***/ }),
7465
+
7466
+ /***/ "./node_modules/core-js/modules/es6.reflect.set-prototype-of.js":
7467
+ /*!**********************************************************************!*\
7468
+ !*** ./node_modules/core-js/modules/es6.reflect.set-prototype-of.js ***!
7469
+ \**********************************************************************/
7470
+ /*! no static exports found */
7471
+ /***/ (function(module, exports, __webpack_require__) {
7472
+
7473
+ // 26.1.14 Reflect.setPrototypeOf(target, proto)
7474
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7475
+ var setProto = __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js");
7476
+
7477
+ if (setProto) $export($export.S, 'Reflect', {
7478
+ setPrototypeOf: function setPrototypeOf(target, proto) {
7479
+ setProto.check(target, proto);
7480
+ try {
7481
+ setProto.set(target, proto);
7482
+ return true;
7483
+ } catch (e) {
7484
+ return false;
7485
+ }
7486
+ }
7487
+ });
7488
+
7489
+
7490
+ /***/ }),
7491
+
7492
+ /***/ "./node_modules/core-js/modules/es6.reflect.set.js":
7493
+ /*!*********************************************************!*\
7494
+ !*** ./node_modules/core-js/modules/es6.reflect.set.js ***!
7495
+ \*********************************************************/
7496
+ /*! no static exports found */
7497
+ /***/ (function(module, exports, __webpack_require__) {
7498
+
7499
+ // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
7500
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js");
7501
+ var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js");
7502
+ var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js");
7503
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
7504
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
7505
+ var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js");
7506
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7507
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
7508
+
7509
+ function set(target, propertyKey, V /* , receiver */) {
7510
+ var receiver = arguments.length < 4 ? target : arguments[3];
7511
+ var ownDesc = gOPD.f(anObject(target), propertyKey);
7512
+ var existingDescriptor, proto;
7513
+ if (!ownDesc) {
7514
+ if (isObject(proto = getPrototypeOf(target))) {
7515
+ return set(proto, propertyKey, V, receiver);
7516
+ }
7517
+ ownDesc = createDesc(0);
7518
+ }
7519
+ if (has(ownDesc, 'value')) {
7520
+ if (ownDesc.writable === false || !isObject(receiver)) return false;
7521
+ if (existingDescriptor = gOPD.f(receiver, propertyKey)) {
7522
+ if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
7523
+ existingDescriptor.value = V;
7524
+ dP.f(receiver, propertyKey, existingDescriptor);
7525
+ } else dP.f(receiver, propertyKey, createDesc(0, V));
7526
+ return true;
7527
+ }
7528
+ return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
7529
+ }
7530
+
7531
+ $export($export.S, 'Reflect', { set: set });
7532
+
7533
+
7534
+ /***/ }),
7535
+
7536
+ /***/ "./node_modules/core-js/modules/es6.regexp.constructor.js":
7537
+ /*!****************************************************************!*\
7538
+ !*** ./node_modules/core-js/modules/es6.regexp.constructor.js ***!
7539
+ \****************************************************************/
7540
+ /*! no static exports found */
7541
+ /***/ (function(module, exports, __webpack_require__) {
7542
+
7543
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
7544
+ var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js");
7545
+ var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f;
7546
+ var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f;
7547
+ var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js");
7548
+ var $flags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js");
7549
+ var $RegExp = global.RegExp;
7550
+ var Base = $RegExp;
7551
+ var proto = $RegExp.prototype;
7552
+ var re1 = /a/g;
7553
+ var re2 = /a/g;
7554
+ // "new" creates a new object, old webkit buggy here
7555
+ var CORRECT_NEW = new $RegExp(re1) !== re1;
7556
+
7557
+ if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && (!CORRECT_NEW || __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
7558
+ re2[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match')] = false;
7559
+ // RegExp constructor can alter flags and IsRegExp works correct with @@match
7560
+ return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
7561
+ }))) {
7562
+ $RegExp = function RegExp(p, f) {
7563
+ var tiRE = this instanceof $RegExp;
7564
+ var piRE = isRegExp(p);
7565
+ var fiU = f === undefined;
7566
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
7567
+ : inheritIfRequired(CORRECT_NEW
7568
+ ? new Base(piRE && !fiU ? p.source : p, f)
7569
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
7570
+ , tiRE ? this : proto, $RegExp);
7571
+ };
7572
+ var proxy = function (key) {
7573
+ key in $RegExp || dP($RegExp, key, {
7574
+ configurable: true,
7575
+ get: function () { return Base[key]; },
7576
+ set: function (it) { Base[key] = it; }
7577
+ });
7578
+ };
7579
+ for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
7580
+ proto.constructor = $RegExp;
7581
+ $RegExp.prototype = proto;
7582
+ __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(global, 'RegExp', $RegExp);
7583
+ }
7584
+
7585
+ __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")('RegExp');
7586
+
7587
+
7588
+ /***/ }),
7589
+
7590
+ /***/ "./node_modules/core-js/modules/es6.regexp.exec.js":
7591
+ /*!*********************************************************!*\
7592
+ !*** ./node_modules/core-js/modules/es6.regexp.exec.js ***!
7593
+ \*********************************************************/
7594
+ /*! no static exports found */
7595
+ /***/ (function(module, exports, __webpack_require__) {
7596
+
7597
+ "use strict";
7598
+
7599
+ var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "./node_modules/core-js/modules/_regexp-exec.js");
7600
+ __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js")({
7601
+ target: 'RegExp',
7602
+ proto: true,
7603
+ forced: regexpExec !== /./.exec
7604
+ }, {
7605
+ exec: regexpExec
7606
+ });
7607
+
7608
+
7609
+ /***/ }),
7610
+
7611
+ /***/ "./node_modules/core-js/modules/es6.regexp.flags.js":
7612
+ /*!**********************************************************!*\
7613
+ !*** ./node_modules/core-js/modules/es6.regexp.flags.js ***!
7614
+ \**********************************************************/
7615
+ /*! no static exports found */
7616
+ /***/ (function(module, exports, __webpack_require__) {
7617
+
7618
+ // 21.2.5.3 get RegExp.prototype.flags()
7619
+ if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && /./g.flags != 'g') __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f(RegExp.prototype, 'flags', {
7620
+ configurable: true,
7621
+ get: __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js")
7622
+ });
7623
+
7624
+
7625
+ /***/ }),
7626
+
7627
+ /***/ "./node_modules/core-js/modules/es6.regexp.match.js":
7628
+ /*!**********************************************************!*\
7629
+ !*** ./node_modules/core-js/modules/es6.regexp.match.js ***!
7630
+ \**********************************************************/
7631
+ /*! no static exports found */
7632
+ /***/ (function(module, exports, __webpack_require__) {
7633
+
7634
+ "use strict";
7635
+
7636
+
7637
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7638
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
7639
+ var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "./node_modules/core-js/modules/_advance-string-index.js");
7640
+ var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "./node_modules/core-js/modules/_regexp-exec-abstract.js");
7641
+
7642
+ // @@match logic
7643
+ __webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('match', 1, function (defined, MATCH, $match, maybeCallNative) {
7644
+ return [
7645
+ // `String.prototype.match` method
7646
+ // https://tc39.github.io/ecma262/#sec-string.prototype.match
7647
+ function match(regexp) {
7648
+ var O = defined(this);
7649
+ var fn = regexp == undefined ? undefined : regexp[MATCH];
7650
+ return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
7651
+ },
7652
+ // `RegExp.prototype[@@match]` method
7653
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match
7654
+ function (regexp) {
7655
+ var res = maybeCallNative($match, regexp, this);
7656
+ if (res.done) return res.value;
7657
+ var rx = anObject(regexp);
7658
+ var S = String(this);
7659
+ if (!rx.global) return regExpExec(rx, S);
7660
+ var fullUnicode = rx.unicode;
7661
+ rx.lastIndex = 0;
7662
+ var A = [];
7663
+ var n = 0;
7664
+ var result;
7665
+ while ((result = regExpExec(rx, S)) !== null) {
7666
+ var matchStr = String(result[0]);
7667
+ A[n] = matchStr;
7668
+ if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
7669
+ n++;
7670
+ }
7671
+ return n === 0 ? null : A;
7672
+ }
7673
+ ];
7674
+ });
7675
+
7676
+
7677
+ /***/ }),
7678
+
7679
+ /***/ "./node_modules/core-js/modules/es6.regexp.replace.js":
7680
+ /*!************************************************************!*\
7681
+ !*** ./node_modules/core-js/modules/es6.regexp.replace.js ***!
7682
+ \************************************************************/
7683
+ /*! no static exports found */
7684
+ /***/ (function(module, exports, __webpack_require__) {
7685
+
7686
+ "use strict";
7687
+
7688
+
7689
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7690
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
7691
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
7692
+ var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js");
7693
+ var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "./node_modules/core-js/modules/_advance-string-index.js");
7694
+ var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "./node_modules/core-js/modules/_regexp-exec-abstract.js");
7695
+ var max = Math.max;
7696
+ var min = Math.min;
7697
+ var floor = Math.floor;
7698
+ var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
7699
+ var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
7700
+
7701
+ var maybeToString = function (it) {
7702
+ return it === undefined ? it : String(it);
7703
+ };
7704
+
7705
+ // @@replace logic
7706
+ __webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
7707
+ return [
7708
+ // `String.prototype.replace` method
7709
+ // https://tc39.github.io/ecma262/#sec-string.prototype.replace
7710
+ function replace(searchValue, replaceValue) {
7711
+ var O = defined(this);
7712
+ var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
7713
+ return fn !== undefined
7714
+ ? fn.call(searchValue, O, replaceValue)
7715
+ : $replace.call(String(O), searchValue, replaceValue);
7716
+ },
7717
+ // `RegExp.prototype[@@replace]` method
7718
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
7719
+ function (regexp, replaceValue) {
7720
+ var res = maybeCallNative($replace, regexp, this, replaceValue);
7721
+ if (res.done) return res.value;
7722
+
7723
+ var rx = anObject(regexp);
7724
+ var S = String(this);
7725
+ var functionalReplace = typeof replaceValue === 'function';
7726
+ if (!functionalReplace) replaceValue = String(replaceValue);
7727
+ var global = rx.global;
7728
+ if (global) {
7729
+ var fullUnicode = rx.unicode;
7730
+ rx.lastIndex = 0;
7731
+ }
7732
+ var results = [];
7733
+ while (true) {
7734
+ var result = regExpExec(rx, S);
7735
+ if (result === null) break;
7736
+ results.push(result);
7737
+ if (!global) break;
7738
+ var matchStr = String(result[0]);
7739
+ if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
7740
+ }
7741
+ var accumulatedResult = '';
7742
+ var nextSourcePosition = 0;
7743
+ for (var i = 0; i < results.length; i++) {
7744
+ result = results[i];
7745
+ var matched = String(result[0]);
7746
+ var position = max(min(toInteger(result.index), S.length), 0);
7747
+ var captures = [];
7748
+ // NOTE: This is equivalent to
7749
+ // captures = result.slice(1).map(maybeToString)
7750
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
7751
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
7752
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
7753
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
7754
+ var namedCaptures = result.groups;
7755
+ if (functionalReplace) {
7756
+ var replacerArgs = [matched].concat(captures, position, S);
7757
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
7758
+ var replacement = String(replaceValue.apply(undefined, replacerArgs));
7759
+ } else {
7760
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
7761
+ }
7762
+ if (position >= nextSourcePosition) {
7763
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
7764
+ nextSourcePosition = position + matched.length;
7765
+ }
7766
+ }
7767
+ return accumulatedResult + S.slice(nextSourcePosition);
7768
+ }
7769
+ ];
7770
+
7771
+ // https://tc39.github.io/ecma262/#sec-getsubstitution
7772
+ function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
7773
+ var tailPos = position + matched.length;
7774
+ var m = captures.length;
7775
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
7776
+ if (namedCaptures !== undefined) {
7777
+ namedCaptures = toObject(namedCaptures);
7778
+ symbols = SUBSTITUTION_SYMBOLS;
7779
+ }
7780
+ return $replace.call(replacement, symbols, function (match, ch) {
7781
+ var capture;
7782
+ switch (ch.charAt(0)) {
7783
+ case '$': return '$';
7784
+ case '&': return matched;
7785
+ case '`': return str.slice(0, position);
7786
+ case "'": return str.slice(tailPos);
7787
+ case '<':
7788
+ capture = namedCaptures[ch.slice(1, -1)];
7789
+ break;
7790
+ default: // \d\d?
7791
+ var n = +ch;
7792
+ if (n === 0) return match;
7793
+ if (n > m) {
7794
+ var f = floor(n / 10);
7795
+ if (f === 0) return match;
7796
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
7797
+ return match;
7798
+ }
7799
+ capture = captures[n - 1];
7800
+ }
7801
+ return capture === undefined ? '' : capture;
7802
+ });
7803
+ }
7804
+ });
7805
+
7806
+
7807
+ /***/ }),
7808
+
7809
+ /***/ "./node_modules/core-js/modules/es6.regexp.search.js":
7810
+ /*!***********************************************************!*\
7811
+ !*** ./node_modules/core-js/modules/es6.regexp.search.js ***!
7812
+ \***********************************************************/
7813
+ /*! no static exports found */
7814
+ /***/ (function(module, exports, __webpack_require__) {
7815
+
7816
+ "use strict";
7817
+
7818
+
7819
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7820
+ var sameValue = __webpack_require__(/*! ./_same-value */ "./node_modules/core-js/modules/_same-value.js");
7821
+ var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "./node_modules/core-js/modules/_regexp-exec-abstract.js");
7822
+
7823
+ // @@search logic
7824
+ __webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('search', 1, function (defined, SEARCH, $search, maybeCallNative) {
7825
+ return [
7826
+ // `String.prototype.search` method
7827
+ // https://tc39.github.io/ecma262/#sec-string.prototype.search
7828
+ function search(regexp) {
7829
+ var O = defined(this);
7830
+ var fn = regexp == undefined ? undefined : regexp[SEARCH];
7831
+ return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
7832
+ },
7833
+ // `RegExp.prototype[@@search]` method
7834
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search
7835
+ function (regexp) {
7836
+ var res = maybeCallNative($search, regexp, this);
7837
+ if (res.done) return res.value;
7838
+ var rx = anObject(regexp);
7839
+ var S = String(this);
7840
+ var previousLastIndex = rx.lastIndex;
7841
+ if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
7842
+ var result = regExpExec(rx, S);
7843
+ if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
7844
+ return result === null ? -1 : result.index;
7845
+ }
7846
+ ];
7847
+ });
7848
+
7849
+
7850
+ /***/ }),
7851
+
7852
+ /***/ "./node_modules/core-js/modules/es6.regexp.split.js":
7853
+ /*!**********************************************************!*\
7854
+ !*** ./node_modules/core-js/modules/es6.regexp.split.js ***!
7855
+ \**********************************************************/
7856
+ /*! no static exports found */
7857
+ /***/ (function(module, exports, __webpack_require__) {
7858
+
7859
+ "use strict";
7860
+
7861
+
7862
+ var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js");
7863
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
7864
+ var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js");
7865
+ var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "./node_modules/core-js/modules/_advance-string-index.js");
7866
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
7867
+ var callRegExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "./node_modules/core-js/modules/_regexp-exec-abstract.js");
7868
+ var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "./node_modules/core-js/modules/_regexp-exec.js");
7869
+ var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
7870
+ var $min = Math.min;
7871
+ var $push = [].push;
7872
+ var $SPLIT = 'split';
7873
+ var LENGTH = 'length';
7874
+ var LAST_INDEX = 'lastIndex';
7875
+ var MAX_UINT32 = 0xffffffff;
7876
+
7877
+ // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
7878
+ var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });
7879
+
7880
+ // @@split logic
7881
+ __webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
7882
+ var internalSplit;
7883
+ if (
7884
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
7885
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
7886
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
7887
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
7888
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
7889
+ ''[$SPLIT](/.?/)[LENGTH]
7890
+ ) {
7891
+ // based on es5-shim implementation, need to rework it
7892
+ internalSplit = function (separator, limit) {
7893
+ var string = String(this);
7894
+ if (separator === undefined && limit === 0) return [];
7895
+ // If `separator` is not a regex, use native split
7896
+ if (!isRegExp(separator)) return $split.call(string, separator, limit);
7897
+ var output = [];
7898
+ var flags = (separator.ignoreCase ? 'i' : '') +
7899
+ (separator.multiline ? 'm' : '') +
7900
+ (separator.unicode ? 'u' : '') +
7901
+ (separator.sticky ? 'y' : '');
7902
+ var lastLastIndex = 0;
7903
+ var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
7904
+ // Make `global` and avoid `lastIndex` issues by working with a copy
7905
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
7906
+ var match, lastIndex, lastLength;
7907
+ while (match = regexpExec.call(separatorCopy, string)) {
7908
+ lastIndex = separatorCopy[LAST_INDEX];
7909
+ if (lastIndex > lastLastIndex) {
7910
+ output.push(string.slice(lastLastIndex, match.index));
7911
+ if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
7912
+ lastLength = match[0][LENGTH];
7913
+ lastLastIndex = lastIndex;
7914
+ if (output[LENGTH] >= splitLimit) break;
7915
+ }
7916
+ if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
7917
+ }
7918
+ if (lastLastIndex === string[LENGTH]) {
7919
+ if (lastLength || !separatorCopy.test('')) output.push('');
7920
+ } else output.push(string.slice(lastLastIndex));
7921
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
7922
+ };
7923
+ // Chakra, V8
7924
+ } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
7925
+ internalSplit = function (separator, limit) {
7926
+ return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
7927
+ };
7928
+ } else {
7929
+ internalSplit = $split;
7930
+ }
7931
+
7932
+ return [
7933
+ // `String.prototype.split` method
7934
+ // https://tc39.github.io/ecma262/#sec-string.prototype.split
7935
+ function split(separator, limit) {
7936
+ var O = defined(this);
7937
+ var splitter = separator == undefined ? undefined : separator[SPLIT];
7938
+ return splitter !== undefined
7939
+ ? splitter.call(separator, O, limit)
7940
+ : internalSplit.call(String(O), separator, limit);
7941
+ },
7942
+ // `RegExp.prototype[@@split]` method
7943
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
7944
+ //
7945
+ // NOTE: This cannot be properly polyfilled in engines that don't support
7946
+ // the 'y' flag.
7947
+ function (regexp, limit) {
7948
+ var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
7949
+ if (res.done) return res.value;
7950
+
7951
+ var rx = anObject(regexp);
7952
+ var S = String(this);
7953
+ var C = speciesConstructor(rx, RegExp);
7954
+
7955
+ var unicodeMatching = rx.unicode;
7956
+ var flags = (rx.ignoreCase ? 'i' : '') +
7957
+ (rx.multiline ? 'm' : '') +
7958
+ (rx.unicode ? 'u' : '') +
7959
+ (SUPPORTS_Y ? 'y' : 'g');
7960
+
7961
+ // ^(? + rx + ) is needed, in combination with some S slicing, to
7962
+ // simulate the 'y' flag.
7963
+ var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
7964
+ var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
7965
+ if (lim === 0) return [];
7966
+ if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
7967
+ var p = 0;
7968
+ var q = 0;
7969
+ var A = [];
7970
+ while (q < S.length) {
7971
+ splitter.lastIndex = SUPPORTS_Y ? q : 0;
7972
+ var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
7973
+ var e;
7974
+ if (
7975
+ z === null ||
7976
+ (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
7977
+ ) {
7978
+ q = advanceStringIndex(S, q, unicodeMatching);
7979
+ } else {
7980
+ A.push(S.slice(p, q));
7981
+ if (A.length === lim) return A;
7982
+ for (var i = 1; i <= z.length - 1; i++) {
7983
+ A.push(z[i]);
7984
+ if (A.length === lim) return A;
7985
+ }
7986
+ q = p = e;
7987
+ }
7988
+ }
7989
+ A.push(S.slice(p));
7990
+ return A;
7991
+ }
7992
+ ];
7993
+ });
7994
+
7995
+
7996
+ /***/ }),
7997
+
7998
+ /***/ "./node_modules/core-js/modules/es6.regexp.to-string.js":
7999
+ /*!**************************************************************!*\
8000
+ !*** ./node_modules/core-js/modules/es6.regexp.to-string.js ***!
8001
+ \**************************************************************/
8002
+ /*! no static exports found */
8003
+ /***/ (function(module, exports, __webpack_require__) {
8004
+
8005
+ "use strict";
8006
+
8007
+ __webpack_require__(/*! ./es6.regexp.flags */ "./node_modules/core-js/modules/es6.regexp.flags.js");
8008
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
8009
+ var $flags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js");
8010
+ var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js");
8011
+ var TO_STRING = 'toString';
8012
+ var $toString = /./[TO_STRING];
8013
+
8014
+ var define = function (fn) {
8015
+ __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(RegExp.prototype, TO_STRING, fn, true);
8016
+ };
8017
+
8018
+ // 21.2.5.14 RegExp.prototype.toString()
8019
+ if (__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
8020
+ define(function toString() {
8021
+ var R = anObject(this);
8022
+ return '/'.concat(R.source, '/',
8023
+ 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
8024
+ });
8025
+ // FF44- RegExp#toString has a wrong name
8026
+ } else if ($toString.name != TO_STRING) {
8027
+ define(function toString() {
8028
+ return $toString.call(this);
8029
+ });
8030
+ }
8031
+
8032
+
8033
+ /***/ }),
8034
+
8035
+ /***/ "./node_modules/core-js/modules/es6.set.js":
8036
+ /*!*************************************************!*\
8037
+ !*** ./node_modules/core-js/modules/es6.set.js ***!
8038
+ \*************************************************/
8039
+ /*! no static exports found */
8040
+ /***/ (function(module, exports, __webpack_require__) {
8041
+
8042
+ "use strict";
8043
+
8044
+ var strong = __webpack_require__(/*! ./_collection-strong */ "./node_modules/core-js/modules/_collection-strong.js");
8045
+ var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js");
8046
+ var SET = 'Set';
8047
+
8048
+ // 23.2 Set Objects
8049
+ module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(SET, function (get) {
8050
+ return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
8051
+ }, {
8052
+ // 23.2.3.1 Set.prototype.add(value)
8053
+ add: function add(value) {
8054
+ return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);
8055
+ }
8056
+ }, strong);
8057
+
8058
+
8059
+ /***/ }),
8060
+
8061
+ /***/ "./node_modules/core-js/modules/es6.string.anchor.js":
8062
+ /*!***********************************************************!*\
8063
+ !*** ./node_modules/core-js/modules/es6.string.anchor.js ***!
8064
+ \***********************************************************/
8065
+ /*! no static exports found */
8066
+ /***/ (function(module, exports, __webpack_require__) {
8067
+
8068
+ "use strict";
8069
+
8070
+ // B.2.3.2 String.prototype.anchor(name)
8071
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('anchor', function (createHTML) {
8072
+ return function anchor(name) {
8073
+ return createHTML(this, 'a', 'name', name);
8074
+ };
8075
+ });
8076
+
8077
+
8078
+ /***/ }),
8079
+
8080
+ /***/ "./node_modules/core-js/modules/es6.string.big.js":
8081
+ /*!********************************************************!*\
8082
+ !*** ./node_modules/core-js/modules/es6.string.big.js ***!
8083
+ \********************************************************/
8084
+ /*! no static exports found */
8085
+ /***/ (function(module, exports, __webpack_require__) {
8086
+
8087
+ "use strict";
8088
+
8089
+ // B.2.3.3 String.prototype.big()
8090
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('big', function (createHTML) {
8091
+ return function big() {
8092
+ return createHTML(this, 'big', '', '');
8093
+ };
8094
+ });
8095
+
8096
+
8097
+ /***/ }),
8098
+
8099
+ /***/ "./node_modules/core-js/modules/es6.string.blink.js":
8100
+ /*!**********************************************************!*\
8101
+ !*** ./node_modules/core-js/modules/es6.string.blink.js ***!
8102
+ \**********************************************************/
8103
+ /*! no static exports found */
8104
+ /***/ (function(module, exports, __webpack_require__) {
8105
+
8106
+ "use strict";
8107
+
8108
+ // B.2.3.4 String.prototype.blink()
8109
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('blink', function (createHTML) {
8110
+ return function blink() {
8111
+ return createHTML(this, 'blink', '', '');
8112
+ };
8113
+ });
8114
+
8115
+
8116
+ /***/ }),
8117
+
8118
+ /***/ "./node_modules/core-js/modules/es6.string.bold.js":
8119
+ /*!*********************************************************!*\
8120
+ !*** ./node_modules/core-js/modules/es6.string.bold.js ***!
8121
+ \*********************************************************/
8122
+ /*! no static exports found */
8123
+ /***/ (function(module, exports, __webpack_require__) {
8124
+
8125
+ "use strict";
8126
+
8127
+ // B.2.3.5 String.prototype.bold()
8128
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('bold', function (createHTML) {
8129
+ return function bold() {
8130
+ return createHTML(this, 'b', '', '');
8131
+ };
8132
+ });
8133
+
8134
+
8135
+ /***/ }),
8136
+
8137
+ /***/ "./node_modules/core-js/modules/es6.string.code-point-at.js":
8138
+ /*!******************************************************************!*\
8139
+ !*** ./node_modules/core-js/modules/es6.string.code-point-at.js ***!
8140
+ \******************************************************************/
8141
+ /*! no static exports found */
8142
+ /***/ (function(module, exports, __webpack_require__) {
8143
+
8144
+ "use strict";
8145
+
8146
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8147
+ var $at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(false);
8148
+ $export($export.P, 'String', {
8149
+ // 21.1.3.3 String.prototype.codePointAt(pos)
8150
+ codePointAt: function codePointAt(pos) {
8151
+ return $at(this, pos);
8152
+ }
8153
+ });
8154
+
8155
+
8156
+ /***/ }),
8157
+
8158
+ /***/ "./node_modules/core-js/modules/es6.string.ends-with.js":
8159
+ /*!**************************************************************!*\
8160
+ !*** ./node_modules/core-js/modules/es6.string.ends-with.js ***!
8161
+ \**************************************************************/
8162
+ /*! no static exports found */
8163
+ /***/ (function(module, exports, __webpack_require__) {
8164
+
8165
+ "use strict";
8166
+ // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
8167
+
8168
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8169
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
8170
+ var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js");
8171
+ var ENDS_WITH = 'endsWith';
8172
+ var $endsWith = ''[ENDS_WITH];
8173
+
8174
+ $export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(ENDS_WITH), 'String', {
8175
+ endsWith: function endsWith(searchString /* , endPosition = @length */) {
8176
+ var that = context(this, searchString, ENDS_WITH);
8177
+ var endPosition = arguments.length > 1 ? arguments[1] : undefined;
8178
+ var len = toLength(that.length);
8179
+ var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
8180
+ var search = String(searchString);
8181
+ return $endsWith
8182
+ ? $endsWith.call(that, search, end)
8183
+ : that.slice(end - search.length, end) === search;
8184
+ }
8185
+ });
8186
+
8187
+
8188
+ /***/ }),
8189
+
8190
+ /***/ "./node_modules/core-js/modules/es6.string.fixed.js":
8191
+ /*!**********************************************************!*\
8192
+ !*** ./node_modules/core-js/modules/es6.string.fixed.js ***!
8193
+ \**********************************************************/
8194
+ /*! no static exports found */
8195
+ /***/ (function(module, exports, __webpack_require__) {
8196
+
8197
+ "use strict";
8198
+
8199
+ // B.2.3.6 String.prototype.fixed()
8200
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fixed', function (createHTML) {
8201
+ return function fixed() {
8202
+ return createHTML(this, 'tt', '', '');
8203
+ };
8204
+ });
8205
+
8206
+
8207
+ /***/ }),
8208
+
8209
+ /***/ "./node_modules/core-js/modules/es6.string.fontcolor.js":
8210
+ /*!**************************************************************!*\
8211
+ !*** ./node_modules/core-js/modules/es6.string.fontcolor.js ***!
8212
+ \**************************************************************/
8213
+ /*! no static exports found */
8214
+ /***/ (function(module, exports, __webpack_require__) {
8215
+
8216
+ "use strict";
8217
+
8218
+ // B.2.3.7 String.prototype.fontcolor(color)
8219
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fontcolor', function (createHTML) {
8220
+ return function fontcolor(color) {
8221
+ return createHTML(this, 'font', 'color', color);
8222
+ };
8223
+ });
8224
+
8225
+
8226
+ /***/ }),
8227
+
8228
+ /***/ "./node_modules/core-js/modules/es6.string.fontsize.js":
8229
+ /*!*************************************************************!*\
8230
+ !*** ./node_modules/core-js/modules/es6.string.fontsize.js ***!
8231
+ \*************************************************************/
8232
+ /*! no static exports found */
8233
+ /***/ (function(module, exports, __webpack_require__) {
8234
+
8235
+ "use strict";
8236
+
8237
+ // B.2.3.8 String.prototype.fontsize(size)
8238
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fontsize', function (createHTML) {
8239
+ return function fontsize(size) {
8240
+ return createHTML(this, 'font', 'size', size);
8241
+ };
8242
+ });
8243
+
8244
+
8245
+ /***/ }),
8246
+
8247
+ /***/ "./node_modules/core-js/modules/es6.string.from-code-point.js":
8248
+ /*!********************************************************************!*\
8249
+ !*** ./node_modules/core-js/modules/es6.string.from-code-point.js ***!
8250
+ \********************************************************************/
8251
+ /*! no static exports found */
8252
+ /***/ (function(module, exports, __webpack_require__) {
8253
+
8254
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8255
+ var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js");
8256
+ var fromCharCode = String.fromCharCode;
8257
+ var $fromCodePoint = String.fromCodePoint;
8258
+
8259
+ // length should be 1, old FF problem
8260
+ $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
8261
+ // 21.1.2.2 String.fromCodePoint(...codePoints)
8262
+ fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
8263
+ var res = [];
8264
+ var aLen = arguments.length;
8265
+ var i = 0;
8266
+ var code;
8267
+ while (aLen > i) {
8268
+ code = +arguments[i++];
8269
+ if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
8270
+ res.push(code < 0x10000
8271
+ ? fromCharCode(code)
8272
+ : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
8273
+ );
8274
+ } return res.join('');
8275
+ }
8276
+ });
8277
+
8278
+
8279
+ /***/ }),
8280
+
8281
+ /***/ "./node_modules/core-js/modules/es6.string.includes.js":
8282
+ /*!*************************************************************!*\
8283
+ !*** ./node_modules/core-js/modules/es6.string.includes.js ***!
8284
+ \*************************************************************/
8285
+ /*! no static exports found */
8286
+ /***/ (function(module, exports, __webpack_require__) {
8287
+
8288
+ "use strict";
8289
+ // 21.1.3.7 String.prototype.includes(searchString, position = 0)
8290
+
8291
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8292
+ var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js");
8293
+ var INCLUDES = 'includes';
8294
+
8295
+ $export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(INCLUDES), 'String', {
8296
+ includes: function includes(searchString /* , position = 0 */) {
8297
+ return !!~context(this, searchString, INCLUDES)
8298
+ .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
8299
+ }
8300
+ });
8301
+
8302
+
8303
+ /***/ }),
8304
+
8305
+ /***/ "./node_modules/core-js/modules/es6.string.italics.js":
8306
+ /*!************************************************************!*\
8307
+ !*** ./node_modules/core-js/modules/es6.string.italics.js ***!
8308
+ \************************************************************/
8309
+ /*! no static exports found */
8310
+ /***/ (function(module, exports, __webpack_require__) {
8311
+
8312
+ "use strict";
8313
+
8314
+ // B.2.3.9 String.prototype.italics()
8315
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('italics', function (createHTML) {
8316
+ return function italics() {
8317
+ return createHTML(this, 'i', '', '');
8318
+ };
8319
+ });
8320
+
8321
+
8322
+ /***/ }),
8323
+
8324
+ /***/ "./node_modules/core-js/modules/es6.string.iterator.js":
8325
+ /*!*************************************************************!*\
8326
+ !*** ./node_modules/core-js/modules/es6.string.iterator.js ***!
8327
+ \*************************************************************/
8328
+ /*! no static exports found */
8329
+ /***/ (function(module, exports, __webpack_require__) {
8330
+
8331
+ "use strict";
8332
+
8333
+ var $at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(true);
8334
+
8335
+ // 21.1.3.27 String.prototype[@@iterator]()
8336
+ __webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js")(String, 'String', function (iterated) {
8337
+ this._t = String(iterated); // target
8338
+ this._i = 0; // next index
8339
+ // 21.1.5.2.1 %StringIteratorPrototype%.next()
8340
+ }, function () {
8341
+ var O = this._t;
8342
+ var index = this._i;
8343
+ var point;
8344
+ if (index >= O.length) return { value: undefined, done: true };
8345
+ point = $at(O, index);
8346
+ this._i += point.length;
8347
+ return { value: point, done: false };
8348
+ });
8349
+
8350
+
8351
+ /***/ }),
8352
+
8353
+ /***/ "./node_modules/core-js/modules/es6.string.link.js":
8354
+ /*!*********************************************************!*\
8355
+ !*** ./node_modules/core-js/modules/es6.string.link.js ***!
8356
+ \*********************************************************/
8357
+ /*! no static exports found */
8358
+ /***/ (function(module, exports, __webpack_require__) {
8359
+
8360
+ "use strict";
8361
+
8362
+ // B.2.3.10 String.prototype.link(url)
8363
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('link', function (createHTML) {
8364
+ return function link(url) {
8365
+ return createHTML(this, 'a', 'href', url);
8366
+ };
8367
+ });
8368
+
8369
+
8370
+ /***/ }),
8371
+
8372
+ /***/ "./node_modules/core-js/modules/es6.string.raw.js":
8373
+ /*!********************************************************!*\
8374
+ !*** ./node_modules/core-js/modules/es6.string.raw.js ***!
8375
+ \********************************************************/
8376
+ /*! no static exports found */
8377
+ /***/ (function(module, exports, __webpack_require__) {
8378
+
8379
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8380
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
8381
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
8382
+
8383
+ $export($export.S, 'String', {
8384
+ // 21.1.2.4 String.raw(callSite, ...substitutions)
8385
+ raw: function raw(callSite) {
8386
+ var tpl = toIObject(callSite.raw);
8387
+ var len = toLength(tpl.length);
8388
+ var aLen = arguments.length;
8389
+ var res = [];
8390
+ var i = 0;
8391
+ while (len > i) {
8392
+ res.push(String(tpl[i++]));
8393
+ if (i < aLen) res.push(String(arguments[i]));
8394
+ } return res.join('');
8395
+ }
8396
+ });
8397
+
8398
+
8399
+ /***/ }),
8400
+
8401
+ /***/ "./node_modules/core-js/modules/es6.string.repeat.js":
8402
+ /*!***********************************************************!*\
8403
+ !*** ./node_modules/core-js/modules/es6.string.repeat.js ***!
8404
+ \***********************************************************/
8405
+ /*! no static exports found */
8406
+ /***/ (function(module, exports, __webpack_require__) {
8407
+
8408
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8409
+
8410
+ $export($export.P, 'String', {
8411
+ // 21.1.3.13 String.prototype.repeat(count)
8412
+ repeat: __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js")
8413
+ });
8414
+
8415
+
8416
+ /***/ }),
8417
+
8418
+ /***/ "./node_modules/core-js/modules/es6.string.small.js":
8419
+ /*!**********************************************************!*\
8420
+ !*** ./node_modules/core-js/modules/es6.string.small.js ***!
8421
+ \**********************************************************/
8422
+ /*! no static exports found */
8423
+ /***/ (function(module, exports, __webpack_require__) {
8424
+
8425
+ "use strict";
8426
+
8427
+ // B.2.3.11 String.prototype.small()
8428
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('small', function (createHTML) {
8429
+ return function small() {
8430
+ return createHTML(this, 'small', '', '');
8431
+ };
8432
+ });
8433
+
8434
+
8435
+ /***/ }),
8436
+
8437
+ /***/ "./node_modules/core-js/modules/es6.string.starts-with.js":
8438
+ /*!****************************************************************!*\
8439
+ !*** ./node_modules/core-js/modules/es6.string.starts-with.js ***!
8440
+ \****************************************************************/
8441
+ /*! no static exports found */
8442
+ /***/ (function(module, exports, __webpack_require__) {
8443
+
8444
+ "use strict";
8445
+ // 21.1.3.18 String.prototype.startsWith(searchString [, position ])
8446
+
8447
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8448
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
8449
+ var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js");
8450
+ var STARTS_WITH = 'startsWith';
8451
+ var $startsWith = ''[STARTS_WITH];
8452
+
8453
+ $export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(STARTS_WITH), 'String', {
8454
+ startsWith: function startsWith(searchString /* , position = 0 */) {
8455
+ var that = context(this, searchString, STARTS_WITH);
8456
+ var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
8457
+ var search = String(searchString);
8458
+ return $startsWith
8459
+ ? $startsWith.call(that, search, index)
8460
+ : that.slice(index, index + search.length) === search;
8461
+ }
8462
+ });
8463
+
8464
+
8465
+ /***/ }),
8466
+
8467
+ /***/ "./node_modules/core-js/modules/es6.string.strike.js":
8468
+ /*!***********************************************************!*\
8469
+ !*** ./node_modules/core-js/modules/es6.string.strike.js ***!
8470
+ \***********************************************************/
8471
+ /*! no static exports found */
8472
+ /***/ (function(module, exports, __webpack_require__) {
8473
+
8474
+ "use strict";
8475
+
8476
+ // B.2.3.12 String.prototype.strike()
8477
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('strike', function (createHTML) {
8478
+ return function strike() {
8479
+ return createHTML(this, 'strike', '', '');
8480
+ };
8481
+ });
8482
+
8483
+
8484
+ /***/ }),
8485
+
8486
+ /***/ "./node_modules/core-js/modules/es6.string.sub.js":
8487
+ /*!********************************************************!*\
8488
+ !*** ./node_modules/core-js/modules/es6.string.sub.js ***!
8489
+ \********************************************************/
8490
+ /*! no static exports found */
8491
+ /***/ (function(module, exports, __webpack_require__) {
8492
+
8493
+ "use strict";
8494
+
8495
+ // B.2.3.13 String.prototype.sub()
8496
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('sub', function (createHTML) {
8497
+ return function sub() {
8498
+ return createHTML(this, 'sub', '', '');
8499
+ };
8500
+ });
8501
+
8502
+
8503
+ /***/ }),
8504
+
8505
+ /***/ "./node_modules/core-js/modules/es6.string.sup.js":
8506
+ /*!********************************************************!*\
8507
+ !*** ./node_modules/core-js/modules/es6.string.sup.js ***!
8508
+ \********************************************************/
8509
+ /*! no static exports found */
8510
+ /***/ (function(module, exports, __webpack_require__) {
8511
+
8512
+ "use strict";
8513
+
8514
+ // B.2.3.14 String.prototype.sup()
8515
+ __webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('sup', function (createHTML) {
8516
+ return function sup() {
8517
+ return createHTML(this, 'sup', '', '');
8518
+ };
8519
+ });
8520
+
8521
+
8522
+ /***/ }),
8523
+
8524
+ /***/ "./node_modules/core-js/modules/es6.string.trim.js":
8525
+ /*!*********************************************************!*\
8526
+ !*** ./node_modules/core-js/modules/es6.string.trim.js ***!
8527
+ \*********************************************************/
8528
+ /*! no static exports found */
8529
+ /***/ (function(module, exports, __webpack_require__) {
8530
+
8531
+ "use strict";
8532
+
8533
+ // 21.1.3.25 String.prototype.trim()
8534
+ __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js")('trim', function ($trim) {
8535
+ return function trim() {
8536
+ return $trim(this, 3);
8537
+ };
8538
+ });
8539
+
8540
+
8541
+ /***/ }),
8542
+
8543
+ /***/ "./node_modules/core-js/modules/es6.symbol.js":
8544
+ /*!****************************************************!*\
8545
+ !*** ./node_modules/core-js/modules/es6.symbol.js ***!
8546
+ \****************************************************/
8547
+ /*! no static exports found */
8548
+ /***/ (function(module, exports, __webpack_require__) {
8549
+
8550
+ "use strict";
8551
+
8552
+ // ECMAScript 6 symbols shim
8553
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
8554
+ var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js");
8555
+ var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js");
8556
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8557
+ var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js");
8558
+ var META = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").KEY;
8559
+ var $fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js");
8560
+ var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js");
8561
+ var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js");
8562
+ var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js");
8563
+ var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js");
8564
+ var wksExt = __webpack_require__(/*! ./_wks-ext */ "./node_modules/core-js/modules/_wks-ext.js");
8565
+ var wksDefine = __webpack_require__(/*! ./_wks-define */ "./node_modules/core-js/modules/_wks-define.js");
8566
+ var enumKeys = __webpack_require__(/*! ./_enum-keys */ "./node_modules/core-js/modules/_enum-keys.js");
8567
+ var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js");
8568
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
8569
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
8570
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
8571
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
8572
+ var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js");
8573
+ var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js");
8574
+ var _create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js");
8575
+ var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "./node_modules/core-js/modules/_object-gopn-ext.js");
8576
+ var $GOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js");
8577
+ var $GOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js");
8578
+ var $DP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js");
8579
+ var $keys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js");
8580
+ var gOPD = $GOPD.f;
8581
+ var dP = $DP.f;
8582
+ var gOPN = gOPNExt.f;
8583
+ var $Symbol = global.Symbol;
8584
+ var $JSON = global.JSON;
8585
+ var _stringify = $JSON && $JSON.stringify;
8586
+ var PROTOTYPE = 'prototype';
8587
+ var HIDDEN = wks('_hidden');
8588
+ var TO_PRIMITIVE = wks('toPrimitive');
8589
+ var isEnum = {}.propertyIsEnumerable;
8590
+ var SymbolRegistry = shared('symbol-registry');
8591
+ var AllSymbols = shared('symbols');
8592
+ var OPSymbols = shared('op-symbols');
8593
+ var ObjectProto = Object[PROTOTYPE];
8594
+ var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
8595
+ var QObject = global.QObject;
8596
+ // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
8597
+ var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
8598
+
8599
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
8600
+ var setSymbolDesc = DESCRIPTORS && $fails(function () {
8601
+ return _create(dP({}, 'a', {
8602
+ get: function () { return dP(this, 'a', { value: 7 }).a; }
8603
+ })).a != 7;
8604
+ }) ? function (it, key, D) {
8605
+ var protoDesc = gOPD(ObjectProto, key);
8606
+ if (protoDesc) delete ObjectProto[key];
8607
+ dP(it, key, D);
8608
+ if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
8609
+ } : dP;
8610
+
8611
+ var wrap = function (tag) {
8612
+ var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
8613
+ sym._k = tag;
8614
+ return sym;
8615
+ };
8616
+
8617
+ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
8618
+ return typeof it == 'symbol';
8619
+ } : function (it) {
8620
+ return it instanceof $Symbol;
8621
+ };
8622
+
8623
+ var $defineProperty = function defineProperty(it, key, D) {
8624
+ if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
8625
+ anObject(it);
8626
+ key = toPrimitive(key, true);
8627
+ anObject(D);
8628
+ if (has(AllSymbols, key)) {
8629
+ if (!D.enumerable) {
8630
+ if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
8631
+ it[HIDDEN][key] = true;
8632
+ } else {
8633
+ if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
8634
+ D = _create(D, { enumerable: createDesc(0, false) });
8635
+ } return setSymbolDesc(it, key, D);
8636
+ } return dP(it, key, D);
8637
+ };
8638
+ var $defineProperties = function defineProperties(it, P) {
8639
+ anObject(it);
8640
+ var keys = enumKeys(P = toIObject(P));
8641
+ var i = 0;
8642
+ var l = keys.length;
8643
+ var key;
8644
+ while (l > i) $defineProperty(it, key = keys[i++], P[key]);
8645
+ return it;
8646
+ };
8647
+ var $create = function create(it, P) {
8648
+ return P === undefined ? _create(it) : $defineProperties(_create(it), P);
8649
+ };
8650
+ var $propertyIsEnumerable = function propertyIsEnumerable(key) {
8651
+ var E = isEnum.call(this, key = toPrimitive(key, true));
8652
+ if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
8653
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
8654
+ };
8655
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
8656
+ it = toIObject(it);
8657
+ key = toPrimitive(key, true);
8658
+ if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
8659
+ var D = gOPD(it, key);
8660
+ if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
8661
+ return D;
8662
+ };
8663
+ var $getOwnPropertyNames = function getOwnPropertyNames(it) {
8664
+ var names = gOPN(toIObject(it));
8665
+ var result = [];
8666
+ var i = 0;
8667
+ var key;
8668
+ while (names.length > i) {
8669
+ if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
8670
+ } return result;
8671
+ };
8672
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
8673
+ var IS_OP = it === ObjectProto;
8674
+ var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
8675
+ var result = [];
8676
+ var i = 0;
8677
+ var key;
8678
+ while (names.length > i) {
8679
+ if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
8680
+ } return result;
8681
+ };
8682
+
8683
+ // 19.4.1.1 Symbol([description])
8684
+ if (!USE_NATIVE) {
8685
+ $Symbol = function Symbol() {
8686
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
8687
+ var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
8688
+ var $set = function (value) {
8689
+ if (this === ObjectProto) $set.call(OPSymbols, value);
8690
+ if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
8691
+ setSymbolDesc(this, tag, createDesc(1, value));
8692
+ };
8693
+ if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
8694
+ return wrap(tag);
8695
+ };
8696
+ redefine($Symbol[PROTOTYPE], 'toString', function toString() {
8697
+ return this._k;
8698
+ });
8699
+
8700
+ $GOPD.f = $getOwnPropertyDescriptor;
8701
+ $DP.f = $defineProperty;
8702
+ __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames;
8703
+ __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js").f = $propertyIsEnumerable;
8704
+ $GOPS.f = $getOwnPropertySymbols;
8705
+
8706
+ if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js")) {
8707
+ redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
8708
+ }
8709
+
8710
+ wksExt.f = function (name) {
8711
+ return wrap(wks(name));
8712
+ };
8713
+ }
8714
+
8715
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
8716
+
8717
+ for (var es6Symbols = (
8718
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
8719
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
8720
+ ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
8721
+
8722
+ for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
8723
+
8724
+ $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
8725
+ // 19.4.2.1 Symbol.for(key)
8726
+ 'for': function (key) {
8727
+ return has(SymbolRegistry, key += '')
8728
+ ? SymbolRegistry[key]
8729
+ : SymbolRegistry[key] = $Symbol(key);
8730
+ },
8731
+ // 19.4.2.5 Symbol.keyFor(sym)
8732
+ keyFor: function keyFor(sym) {
8733
+ if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
8734
+ for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
8735
+ },
8736
+ useSetter: function () { setter = true; },
8737
+ useSimple: function () { setter = false; }
8738
+ });
8739
+
8740
+ $export($export.S + $export.F * !USE_NATIVE, 'Object', {
8741
+ // 19.1.2.2 Object.create(O [, Properties])
8742
+ create: $create,
8743
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
8744
+ defineProperty: $defineProperty,
8745
+ // 19.1.2.3 Object.defineProperties(O, Properties)
8746
+ defineProperties: $defineProperties,
8747
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
8748
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
8749
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
8750
+ getOwnPropertyNames: $getOwnPropertyNames,
8751
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
8752
+ getOwnPropertySymbols: $getOwnPropertySymbols
8753
+ });
8754
+
8755
+ // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
8756
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3443
8757
+ var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });
8758
+
8759
+ $export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
8760
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
8761
+ return $GOPS.f(toObject(it));
8762
+ }
8763
+ });
8764
+
8765
+ // 24.3.2 JSON.stringify(value [, replacer [, space]])
8766
+ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
8767
+ var S = $Symbol();
8768
+ // MS Edge converts symbol values to JSON as {}
8769
+ // WebKit converts symbol values to JSON as null
8770
+ // V8 throws on boxed symbols
8771
+ return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
8772
+ })), 'JSON', {
8773
+ stringify: function stringify(it) {
8774
+ var args = [it];
8775
+ var i = 1;
8776
+ var replacer, $replacer;
8777
+ while (arguments.length > i) args.push(arguments[i++]);
8778
+ $replacer = replacer = args[1];
8779
+ if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
8780
+ if (!isArray(replacer)) replacer = function (key, value) {
8781
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
8782
+ if (!isSymbol(value)) return value;
8783
+ };
8784
+ args[1] = replacer;
8785
+ return _stringify.apply($JSON, args);
8786
+ }
8787
+ });
8788
+
8789
+ // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
8790
+ $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
8791
+ // 19.4.3.5 Symbol.prototype[@@toStringTag]
8792
+ setToStringTag($Symbol, 'Symbol');
8793
+ // 20.2.1.9 Math[@@toStringTag]
8794
+ setToStringTag(Math, 'Math', true);
8795
+ // 24.3.3 JSON[@@toStringTag]
8796
+ setToStringTag(global.JSON, 'JSON', true);
8797
+
8798
+
8799
+ /***/ }),
8800
+
8801
+ /***/ "./node_modules/core-js/modules/es6.typed.array-buffer.js":
8802
+ /*!****************************************************************!*\
8803
+ !*** ./node_modules/core-js/modules/es6.typed.array-buffer.js ***!
8804
+ \****************************************************************/
8805
+ /*! no static exports found */
8806
+ /***/ (function(module, exports, __webpack_require__) {
8807
+
8808
+ "use strict";
8809
+
8810
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8811
+ var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js");
8812
+ var buffer = __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js");
8813
+ var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js");
8814
+ var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js");
8815
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
8816
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
8817
+ var ArrayBuffer = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").ArrayBuffer;
8818
+ var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js");
8819
+ var $ArrayBuffer = buffer.ArrayBuffer;
8820
+ var $DataView = buffer.DataView;
8821
+ var $isView = $typed.ABV && ArrayBuffer.isView;
8822
+ var $slice = $ArrayBuffer.prototype.slice;
8823
+ var VIEW = $typed.VIEW;
8824
+ var ARRAY_BUFFER = 'ArrayBuffer';
8825
+
8826
+ $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });
8827
+
8828
+ $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
8829
+ // 24.1.3.1 ArrayBuffer.isView(arg)
8830
+ isView: function isView(it) {
8831
+ return $isView && $isView(it) || isObject(it) && VIEW in it;
8832
+ }
8833
+ });
8834
+
8835
+ $export($export.P + $export.U + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () {
8836
+ return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
8837
+ }), ARRAY_BUFFER, {
8838
+ // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
8839
+ slice: function slice(start, end) {
8840
+ if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix
8841
+ var len = anObject(this).byteLength;
8842
+ var first = toAbsoluteIndex(start, len);
8843
+ var fin = toAbsoluteIndex(end === undefined ? len : end, len);
8844
+ var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));
8845
+ var viewS = new $DataView(this);
8846
+ var viewT = new $DataView(result);
8847
+ var index = 0;
8848
+ while (first < fin) {
8849
+ viewT.setUint8(index++, viewS.getUint8(first++));
8850
+ } return result;
8851
+ }
8852
+ });
8853
+
8854
+ __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")(ARRAY_BUFFER);
8855
+
8856
+
8857
+ /***/ }),
8858
+
8859
+ /***/ "./node_modules/core-js/modules/es6.typed.data-view.js":
8860
+ /*!*************************************************************!*\
8861
+ !*** ./node_modules/core-js/modules/es6.typed.data-view.js ***!
8862
+ \*************************************************************/
8863
+ /*! no static exports found */
8864
+ /***/ (function(module, exports, __webpack_require__) {
8865
+
8866
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
8867
+ $export($export.G + $export.W + $export.F * !__webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js").ABV, {
8868
+ DataView: __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js").DataView
8869
+ });
8870
+
8871
+
8872
+ /***/ }),
8873
+
8874
+ /***/ "./node_modules/core-js/modules/es6.typed.float32-array.js":
8875
+ /*!*****************************************************************!*\
8876
+ !*** ./node_modules/core-js/modules/es6.typed.float32-array.js ***!
8877
+ \*****************************************************************/
8878
+ /*! no static exports found */
8879
+ /***/ (function(module, exports, __webpack_require__) {
8880
+
8881
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Float32', 4, function (init) {
8882
+ return function Float32Array(data, byteOffset, length) {
8883
+ return init(this, data, byteOffset, length);
8884
+ };
8885
+ });
8886
+
8887
+
8888
+ /***/ }),
8889
+
8890
+ /***/ "./node_modules/core-js/modules/es6.typed.float64-array.js":
8891
+ /*!*****************************************************************!*\
8892
+ !*** ./node_modules/core-js/modules/es6.typed.float64-array.js ***!
8893
+ \*****************************************************************/
8894
+ /*! no static exports found */
8895
+ /***/ (function(module, exports, __webpack_require__) {
8896
+
8897
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Float64', 8, function (init) {
8898
+ return function Float64Array(data, byteOffset, length) {
8899
+ return init(this, data, byteOffset, length);
8900
+ };
8901
+ });
8902
+
8903
+
8904
+ /***/ }),
8905
+
8906
+ /***/ "./node_modules/core-js/modules/es6.typed.int16-array.js":
8907
+ /*!***************************************************************!*\
8908
+ !*** ./node_modules/core-js/modules/es6.typed.int16-array.js ***!
8909
+ \***************************************************************/
8910
+ /*! no static exports found */
8911
+ /***/ (function(module, exports, __webpack_require__) {
8912
+
8913
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int16', 2, function (init) {
8914
+ return function Int16Array(data, byteOffset, length) {
8915
+ return init(this, data, byteOffset, length);
8916
+ };
8917
+ });
8918
+
8919
+
8920
+ /***/ }),
8921
+
8922
+ /***/ "./node_modules/core-js/modules/es6.typed.int32-array.js":
8923
+ /*!***************************************************************!*\
8924
+ !*** ./node_modules/core-js/modules/es6.typed.int32-array.js ***!
8925
+ \***************************************************************/
8926
+ /*! no static exports found */
8927
+ /***/ (function(module, exports, __webpack_require__) {
8928
+
8929
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int32', 4, function (init) {
8930
+ return function Int32Array(data, byteOffset, length) {
8931
+ return init(this, data, byteOffset, length);
8932
+ };
8933
+ });
8934
+
8935
+
8936
+ /***/ }),
8937
+
8938
+ /***/ "./node_modules/core-js/modules/es6.typed.int8-array.js":
8939
+ /*!**************************************************************!*\
8940
+ !*** ./node_modules/core-js/modules/es6.typed.int8-array.js ***!
8941
+ \**************************************************************/
8942
+ /*! no static exports found */
8943
+ /***/ (function(module, exports, __webpack_require__) {
8944
+
8945
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int8', 1, function (init) {
8946
+ return function Int8Array(data, byteOffset, length) {
8947
+ return init(this, data, byteOffset, length);
8948
+ };
8949
+ });
8950
+
8951
+
8952
+ /***/ }),
8953
+
8954
+ /***/ "./node_modules/core-js/modules/es6.typed.uint16-array.js":
8955
+ /*!****************************************************************!*\
8956
+ !*** ./node_modules/core-js/modules/es6.typed.uint16-array.js ***!
8957
+ \****************************************************************/
8958
+ /*! no static exports found */
8959
+ /***/ (function(module, exports, __webpack_require__) {
8960
+
8961
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint16', 2, function (init) {
8962
+ return function Uint16Array(data, byteOffset, length) {
8963
+ return init(this, data, byteOffset, length);
8964
+ };
8965
+ });
8966
+
8967
+
8968
+ /***/ }),
8969
+
8970
+ /***/ "./node_modules/core-js/modules/es6.typed.uint32-array.js":
8971
+ /*!****************************************************************!*\
8972
+ !*** ./node_modules/core-js/modules/es6.typed.uint32-array.js ***!
8973
+ \****************************************************************/
8974
+ /*! no static exports found */
8975
+ /***/ (function(module, exports, __webpack_require__) {
8976
+
8977
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint32', 4, function (init) {
8978
+ return function Uint32Array(data, byteOffset, length) {
8979
+ return init(this, data, byteOffset, length);
8980
+ };
8981
+ });
8982
+
8983
+
8984
+ /***/ }),
8985
+
8986
+ /***/ "./node_modules/core-js/modules/es6.typed.uint8-array.js":
8987
+ /*!***************************************************************!*\
8988
+ !*** ./node_modules/core-js/modules/es6.typed.uint8-array.js ***!
8989
+ \***************************************************************/
8990
+ /*! no static exports found */
8991
+ /***/ (function(module, exports, __webpack_require__) {
8992
+
8993
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint8', 1, function (init) {
8994
+ return function Uint8Array(data, byteOffset, length) {
8995
+ return init(this, data, byteOffset, length);
8996
+ };
8997
+ });
8998
+
8999
+
9000
+ /***/ }),
9001
+
9002
+ /***/ "./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js":
9003
+ /*!***********************************************************************!*\
9004
+ !*** ./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js ***!
9005
+ \***********************************************************************/
9006
+ /*! no static exports found */
9007
+ /***/ (function(module, exports, __webpack_require__) {
9008
+
9009
+ __webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint8', 1, function (init) {
9010
+ return function Uint8ClampedArray(data, byteOffset, length) {
9011
+ return init(this, data, byteOffset, length);
9012
+ };
9013
+ }, true);
9014
+
9015
+
9016
+ /***/ }),
9017
+
9018
+ /***/ "./node_modules/core-js/modules/es6.weak-map.js":
9019
+ /*!******************************************************!*\
9020
+ !*** ./node_modules/core-js/modules/es6.weak-map.js ***!
9021
+ \******************************************************/
9022
+ /*! no static exports found */
9023
+ /***/ (function(module, exports, __webpack_require__) {
9024
+
9025
+ "use strict";
9026
+
9027
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
9028
+ var each = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(0);
9029
+ var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js");
9030
+ var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js");
9031
+ var assign = __webpack_require__(/*! ./_object-assign */ "./node_modules/core-js/modules/_object-assign.js");
9032
+ var weak = __webpack_require__(/*! ./_collection-weak */ "./node_modules/core-js/modules/_collection-weak.js");
9033
+ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js");
9034
+ var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js");
9035
+ var NATIVE_WEAK_MAP = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js");
9036
+ var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
9037
+ var WEAK_MAP = 'WeakMap';
9038
+ var getWeak = meta.getWeak;
9039
+ var isExtensible = Object.isExtensible;
9040
+ var uncaughtFrozenStore = weak.ufstore;
9041
+ var InternalMap;
9042
+
9043
+ var wrapper = function (get) {
9044
+ return function WeakMap() {
9045
+ return get(this, arguments.length > 0 ? arguments[0] : undefined);
9046
+ };
9047
+ };
9048
+
9049
+ var methods = {
9050
+ // 23.3.3.3 WeakMap.prototype.get(key)
9051
+ get: function get(key) {
9052
+ if (isObject(key)) {
9053
+ var data = getWeak(key);
9054
+ if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
9055
+ return data ? data[this._i] : undefined;
9056
+ }
9057
+ },
9058
+ // 23.3.3.5 WeakMap.prototype.set(key, value)
9059
+ set: function set(key, value) {
9060
+ return weak.def(validate(this, WEAK_MAP), key, value);
9061
+ }
9062
+ };
9063
+
9064
+ // 23.3 WeakMap Objects
9065
+ var $WeakMap = module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(WEAK_MAP, wrapper, methods, weak, true, true);
9066
+
9067
+ // IE11 WeakMap frozen keys fix
9068
+ if (NATIVE_WEAK_MAP && IS_IE11) {
9069
+ InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
9070
+ assign(InternalMap.prototype, methods);
9071
+ meta.NEED = true;
9072
+ each(['delete', 'has', 'get', 'set'], function (key) {
9073
+ var proto = $WeakMap.prototype;
9074
+ var method = proto[key];
9075
+ redefine(proto, key, function (a, b) {
9076
+ // store frozen objects on internal weakmap shim
9077
+ if (isObject(a) && !isExtensible(a)) {
9078
+ if (!this._f) this._f = new InternalMap();
9079
+ var result = this._f[key](a, b);
9080
+ return key == 'set' ? this : result;
9081
+ // store all the rest on native weakmap
9082
+ } return method.call(this, a, b);
9083
+ });
9084
+ });
9085
+ }
9086
+
9087
+
9088
+ /***/ }),
9089
+
9090
+ /***/ "./node_modules/core-js/modules/es6.weak-set.js":
9091
+ /*!******************************************************!*\
9092
+ !*** ./node_modules/core-js/modules/es6.weak-set.js ***!
9093
+ \******************************************************/
9094
+ /*! no static exports found */
9095
+ /***/ (function(module, exports, __webpack_require__) {
9096
+
9097
+ "use strict";
9098
+
9099
+ var weak = __webpack_require__(/*! ./_collection-weak */ "./node_modules/core-js/modules/_collection-weak.js");
9100
+ var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js");
9101
+ var WEAK_SET = 'WeakSet';
9102
+
9103
+ // 23.4 WeakSet Objects
9104
+ __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(WEAK_SET, function (get) {
9105
+ return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
9106
+ }, {
9107
+ // 23.4.3.1 WeakSet.prototype.add(value)
9108
+ add: function add(value) {
9109
+ return weak.def(validate(this, WEAK_SET), value, true);
9110
+ }
9111
+ }, weak, false, true);
9112
+
9113
+
9114
+ /***/ }),
9115
+
9116
+ /***/ "./node_modules/core-js/modules/es7.array.flat-map.js":
9117
+ /*!************************************************************!*\
9118
+ !*** ./node_modules/core-js/modules/es7.array.flat-map.js ***!
9119
+ \************************************************************/
9120
+ /*! no static exports found */
9121
+ /***/ (function(module, exports, __webpack_require__) {
9122
+
9123
+ "use strict";
9124
+
9125
+ // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap
9126
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9127
+ var flattenIntoArray = __webpack_require__(/*! ./_flatten-into-array */ "./node_modules/core-js/modules/_flatten-into-array.js");
9128
+ var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js");
9129
+ var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js");
9130
+ var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js");
9131
+ var arraySpeciesCreate = __webpack_require__(/*! ./_array-species-create */ "./node_modules/core-js/modules/_array-species-create.js");
9132
+
9133
+ $export($export.P, 'Array', {
9134
+ flatMap: function flatMap(callbackfn /* , thisArg */) {
9135
+ var O = toObject(this);
9136
+ var sourceLen, A;
9137
+ aFunction(callbackfn);
9138
+ sourceLen = toLength(O.length);
9139
+ A = arraySpeciesCreate(O, 0);
9140
+ flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);
9141
+ return A;
9142
+ }
9143
+ });
9144
+
9145
+ __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('flatMap');
9146
+
9147
+
9148
+ /***/ }),
9149
+
9150
+ /***/ "./node_modules/core-js/modules/es7.array.includes.js":
9151
+ /*!************************************************************!*\
9152
+ !*** ./node_modules/core-js/modules/es7.array.includes.js ***!
9153
+ \************************************************************/
9154
+ /*! no static exports found */
9155
+ /***/ (function(module, exports, __webpack_require__) {
9156
+
9157
+ "use strict";
9158
+
9159
+ // https://github.com/tc39/Array.prototype.includes
9160
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9161
+ var $includes = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(true);
9162
+
9163
+ $export($export.P, 'Array', {
9164
+ includes: function includes(el /* , fromIndex = 0 */) {
9165
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
9166
+ }
9167
+ });
9168
+
9169
+ __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('includes');
9170
+
9171
+
9172
+ /***/ }),
9173
+
9174
+ /***/ "./node_modules/core-js/modules/es7.object.entries.js":
9175
+ /*!************************************************************!*\
9176
+ !*** ./node_modules/core-js/modules/es7.object.entries.js ***!
9177
+ \************************************************************/
9178
+ /*! no static exports found */
9179
+ /***/ (function(module, exports, __webpack_require__) {
9180
+
9181
+ // https://github.com/tc39/proposal-object-values-entries
9182
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9183
+ var $entries = __webpack_require__(/*! ./_object-to-array */ "./node_modules/core-js/modules/_object-to-array.js")(true);
9184
+
9185
+ $export($export.S, 'Object', {
9186
+ entries: function entries(it) {
9187
+ return $entries(it);
9188
+ }
9189
+ });
9190
+
9191
+
9192
+ /***/ }),
9193
+
9194
+ /***/ "./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js":
9195
+ /*!*********************************************************************************!*\
9196
+ !*** ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js ***!
9197
+ \*********************************************************************************/
9198
+ /*! no static exports found */
9199
+ /***/ (function(module, exports, __webpack_require__) {
9200
+
9201
+ // https://github.com/tc39/proposal-object-getownpropertydescriptors
9202
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9203
+ var ownKeys = __webpack_require__(/*! ./_own-keys */ "./node_modules/core-js/modules/_own-keys.js");
9204
+ var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js");
9205
+ var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js");
9206
+ var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js");
9207
+
9208
+ $export($export.S, 'Object', {
9209
+ getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
9210
+ var O = toIObject(object);
9211
+ var getDesc = gOPD.f;
9212
+ var keys = ownKeys(O);
9213
+ var result = {};
9214
+ var i = 0;
9215
+ var key, desc;
9216
+ while (keys.length > i) {
9217
+ desc = getDesc(O, key = keys[i++]);
9218
+ if (desc !== undefined) createProperty(result, key, desc);
9219
+ }
9220
+ return result;
9221
+ }
9222
+ });
9223
+
9224
+
9225
+ /***/ }),
9226
+
9227
+ /***/ "./node_modules/core-js/modules/es7.object.values.js":
9228
+ /*!***********************************************************!*\
9229
+ !*** ./node_modules/core-js/modules/es7.object.values.js ***!
9230
+ \***********************************************************/
9231
+ /*! no static exports found */
9232
+ /***/ (function(module, exports, __webpack_require__) {
9233
+
9234
+ // https://github.com/tc39/proposal-object-values-entries
9235
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9236
+ var $values = __webpack_require__(/*! ./_object-to-array */ "./node_modules/core-js/modules/_object-to-array.js")(false);
9237
+
9238
+ $export($export.S, 'Object', {
9239
+ values: function values(it) {
9240
+ return $values(it);
9241
+ }
9242
+ });
9243
+
9244
+
9245
+ /***/ }),
9246
+
9247
+ /***/ "./node_modules/core-js/modules/es7.promise.finally.js":
9248
+ /*!*************************************************************!*\
9249
+ !*** ./node_modules/core-js/modules/es7.promise.finally.js ***!
9250
+ \*************************************************************/
9251
+ /*! no static exports found */
9252
+ /***/ (function(module, exports, __webpack_require__) {
9253
+
9254
+ "use strict";
9255
+ // https://github.com/tc39/proposal-promise-finally
9256
+
9257
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9258
+ var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js");
9259
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
9260
+ var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js");
9261
+ var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "./node_modules/core-js/modules/_promise-resolve.js");
9262
+
9263
+ $export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
9264
+ var C = speciesConstructor(this, core.Promise || global.Promise);
9265
+ var isFunction = typeof onFinally == 'function';
9266
+ return this.then(
9267
+ isFunction ? function (x) {
9268
+ return promiseResolve(C, onFinally()).then(function () { return x; });
9269
+ } : onFinally,
9270
+ isFunction ? function (e) {
9271
+ return promiseResolve(C, onFinally()).then(function () { throw e; });
9272
+ } : onFinally
9273
+ );
9274
+ } });
9275
+
9276
+
9277
+ /***/ }),
9278
+
9279
+ /***/ "./node_modules/core-js/modules/es7.string.pad-end.js":
9280
+ /*!************************************************************!*\
9281
+ !*** ./node_modules/core-js/modules/es7.string.pad-end.js ***!
9282
+ \************************************************************/
9283
+ /*! no static exports found */
9284
+ /***/ (function(module, exports, __webpack_require__) {
9285
+
9286
+ "use strict";
9287
+
9288
+ // https://github.com/tc39/proposal-string-pad-start-end
9289
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9290
+ var $pad = __webpack_require__(/*! ./_string-pad */ "./node_modules/core-js/modules/_string-pad.js");
9291
+ var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js");
9292
+
9293
+ // https://github.com/zloirock/core-js/issues/280
9294
+ var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
9295
+
9296
+ $export($export.P + $export.F * WEBKIT_BUG, 'String', {
9297
+ padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
9298
+ return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
9299
+ }
9300
+ });
9301
+
9302
+
9303
+ /***/ }),
9304
+
9305
+ /***/ "./node_modules/core-js/modules/es7.string.pad-start.js":
9306
+ /*!**************************************************************!*\
9307
+ !*** ./node_modules/core-js/modules/es7.string.pad-start.js ***!
9308
+ \**************************************************************/
9309
+ /*! no static exports found */
9310
+ /***/ (function(module, exports, __webpack_require__) {
9311
+
9312
+ "use strict";
9313
+
9314
+ // https://github.com/tc39/proposal-string-pad-start-end
9315
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9316
+ var $pad = __webpack_require__(/*! ./_string-pad */ "./node_modules/core-js/modules/_string-pad.js");
9317
+ var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js");
9318
+
9319
+ // https://github.com/zloirock/core-js/issues/280
9320
+ var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
9321
+
9322
+ $export($export.P + $export.F * WEBKIT_BUG, 'String', {
9323
+ padStart: function padStart(maxLength /* , fillString = ' ' */) {
9324
+ return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
9325
+ }
9326
+ });
9327
+
9328
+
9329
+ /***/ }),
9330
+
9331
+ /***/ "./node_modules/core-js/modules/es7.string.trim-left.js":
9332
+ /*!**************************************************************!*\
9333
+ !*** ./node_modules/core-js/modules/es7.string.trim-left.js ***!
9334
+ \**************************************************************/
9335
+ /*! no static exports found */
9336
+ /***/ (function(module, exports, __webpack_require__) {
9337
+
9338
+ "use strict";
9339
+
9340
+ // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
9341
+ __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js")('trimLeft', function ($trim) {
9342
+ return function trimLeft() {
9343
+ return $trim(this, 1);
9344
+ };
9345
+ }, 'trimStart');
9346
+
9347
+
9348
+ /***/ }),
9349
+
9350
+ /***/ "./node_modules/core-js/modules/es7.string.trim-right.js":
9351
+ /*!***************************************************************!*\
9352
+ !*** ./node_modules/core-js/modules/es7.string.trim-right.js ***!
9353
+ \***************************************************************/
9354
+ /*! no static exports found */
9355
+ /***/ (function(module, exports, __webpack_require__) {
9356
+
9357
+ "use strict";
9358
+
9359
+ // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
9360
+ __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js")('trimRight', function ($trim) {
9361
+ return function trimRight() {
9362
+ return $trim(this, 2);
9363
+ };
9364
+ }, 'trimEnd');
9365
+
9366
+
9367
+ /***/ }),
9368
+
9369
+ /***/ "./node_modules/core-js/modules/es7.symbol.async-iterator.js":
9370
+ /*!*******************************************************************!*\
9371
+ !*** ./node_modules/core-js/modules/es7.symbol.async-iterator.js ***!
9372
+ \*******************************************************************/
9373
+ /*! no static exports found */
9374
+ /***/ (function(module, exports, __webpack_require__) {
9375
+
9376
+ __webpack_require__(/*! ./_wks-define */ "./node_modules/core-js/modules/_wks-define.js")('asyncIterator');
9377
+
9378
+
9379
+ /***/ }),
9380
+
9381
+ /***/ "./node_modules/core-js/modules/web.dom.iterable.js":
9382
+ /*!**********************************************************!*\
9383
+ !*** ./node_modules/core-js/modules/web.dom.iterable.js ***!
9384
+ \**********************************************************/
9385
+ /*! no static exports found */
9386
+ /***/ (function(module, exports, __webpack_require__) {
9387
+
9388
+ var $iterators = __webpack_require__(/*! ./es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js");
9389
+ var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js");
9390
+ var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js");
9391
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
9392
+ var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js");
9393
+ var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js");
9394
+ var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js");
9395
+ var ITERATOR = wks('iterator');
9396
+ var TO_STRING_TAG = wks('toStringTag');
9397
+ var ArrayValues = Iterators.Array;
9398
+
9399
+ var DOMIterables = {
9400
+ CSSRuleList: true, // TODO: Not spec compliant, should be false.
9401
+ CSSStyleDeclaration: false,
9402
+ CSSValueList: false,
9403
+ ClientRectList: false,
9404
+ DOMRectList: false,
9405
+ DOMStringList: false,
9406
+ DOMTokenList: true,
9407
+ DataTransferItemList: false,
9408
+ FileList: false,
9409
+ HTMLAllCollection: false,
9410
+ HTMLCollection: false,
9411
+ HTMLFormElement: false,
9412
+ HTMLSelectElement: false,
9413
+ MediaList: true, // TODO: Not spec compliant, should be false.
9414
+ MimeTypeArray: false,
9415
+ NamedNodeMap: false,
9416
+ NodeList: true,
9417
+ PaintRequestList: false,
9418
+ Plugin: false,
9419
+ PluginArray: false,
9420
+ SVGLengthList: false,
9421
+ SVGNumberList: false,
9422
+ SVGPathSegList: false,
9423
+ SVGPointList: false,
9424
+ SVGStringList: false,
9425
+ SVGTransformList: false,
9426
+ SourceBufferList: false,
9427
+ StyleSheetList: true, // TODO: Not spec compliant, should be false.
9428
+ TextTrackCueList: false,
9429
+ TextTrackList: false,
9430
+ TouchList: false
9431
+ };
9432
+
9433
+ for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
9434
+ var NAME = collections[i];
9435
+ var explicit = DOMIterables[NAME];
9436
+ var Collection = global[NAME];
9437
+ var proto = Collection && Collection.prototype;
9438
+ var key;
9439
+ if (proto) {
9440
+ if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
9441
+ if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
9442
+ Iterators[NAME] = ArrayValues;
9443
+ if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
9444
+ }
9445
+ }
9446
+
9447
+
9448
+ /***/ }),
9449
+
9450
+ /***/ "./node_modules/core-js/modules/web.immediate.js":
9451
+ /*!*******************************************************!*\
9452
+ !*** ./node_modules/core-js/modules/web.immediate.js ***!
9453
+ \*******************************************************/
9454
+ /*! no static exports found */
9455
+ /***/ (function(module, exports, __webpack_require__) {
9456
+
9457
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9458
+ var $task = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js");
9459
+ $export($export.G + $export.B, {
9460
+ setImmediate: $task.set,
9461
+ clearImmediate: $task.clear
9462
+ });
9463
+
9464
+
9465
+ /***/ }),
9466
+
9467
+ /***/ "./node_modules/core-js/modules/web.timers.js":
9468
+ /*!****************************************************!*\
9469
+ !*** ./node_modules/core-js/modules/web.timers.js ***!
9470
+ \****************************************************/
9471
+ /*! no static exports found */
9472
+ /***/ (function(module, exports, __webpack_require__) {
9473
+
9474
+ // ie9- setTimeout & setInterval additional parameters fix
9475
+ var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js");
9476
+ var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js");
9477
+ var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js");
9478
+ var slice = [].slice;
9479
+ var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
9480
+ var wrap = function (set) {
9481
+ return function (fn, time /* , ...args */) {
9482
+ var boundArgs = arguments.length > 2;
9483
+ var args = boundArgs ? slice.call(arguments, 2) : false;
9484
+ return set(boundArgs ? function () {
9485
+ // eslint-disable-next-line no-new-func
9486
+ (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);
9487
+ } : fn, time);
9488
+ };
9489
+ };
9490
+ $export($export.G + $export.B + $export.F * MSIE, {
9491
+ setTimeout: wrap(global.setTimeout),
9492
+ setInterval: wrap(global.setInterval)
9493
+ });
9494
+
9495
+
9496
+ /***/ }),
9497
+
9498
+ /***/ "./node_modules/core-js/web/index.js":
9499
+ /*!*******************************************!*\
9500
+ !*** ./node_modules/core-js/web/index.js ***!
9501
+ \*******************************************/
9502
+ /*! no static exports found */
9503
+ /***/ (function(module, exports, __webpack_require__) {
9504
+
9505
+ __webpack_require__(/*! ../modules/web.timers */ "./node_modules/core-js/modules/web.timers.js");
9506
+ __webpack_require__(/*! ../modules/web.immediate */ "./node_modules/core-js/modules/web.immediate.js");
9507
+ __webpack_require__(/*! ../modules/web.dom.iterable */ "./node_modules/core-js/modules/web.dom.iterable.js");
9508
+ module.exports = __webpack_require__(/*! ../modules/_core */ "./node_modules/core-js/modules/_core.js");
9509
+
9510
+
9511
+ /***/ }),
9512
+
9513
+ /***/ "./node_modules/regenerator-runtime/runtime.js":
9514
+ /*!*****************************************************!*\
9515
+ !*** ./node_modules/regenerator-runtime/runtime.js ***!
9516
+ \*****************************************************/
9517
+ /*! no static exports found */
9518
+ /***/ (function(module, exports, __webpack_require__) {
9519
+
9520
+ /**
9521
+ * Copyright (c) 2014-present, Facebook, Inc.
9522
+ *
9523
+ * This source code is licensed under the MIT license found in the
9524
+ * LICENSE file in the root directory of this source tree.
9525
+ */
9526
+
9527
+ var runtime = (function (exports) {
9528
+ "use strict";
9529
+
9530
+ var Op = Object.prototype;
9531
+ var hasOwn = Op.hasOwnProperty;
9532
+ var undefined; // More compressible than void 0.
9533
+ var $Symbol = typeof Symbol === "function" ? Symbol : {};
9534
+ var iteratorSymbol = $Symbol.iterator || "@@iterator";
9535
+ var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
9536
+ var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
9537
+
9538
+ function define(obj, key, value) {
9539
+ Object.defineProperty(obj, key, {
9540
+ value: value,
9541
+ enumerable: true,
9542
+ configurable: true,
9543
+ writable: true
9544
+ });
9545
+ return obj[key];
9546
+ }
9547
+ try {
9548
+ // IE 8 has a broken Object.defineProperty that only works on DOM objects.
9549
+ define({}, "");
9550
+ } catch (err) {
9551
+ define = function(obj, key, value) {
9552
+ return obj[key] = value;
9553
+ };
9554
+ }
9555
+
9556
+ function wrap(innerFn, outerFn, self, tryLocsList) {
9557
+ // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
9558
+ var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
9559
+ var generator = Object.create(protoGenerator.prototype);
9560
+ var context = new Context(tryLocsList || []);
9561
+
9562
+ // The ._invoke method unifies the implementations of the .next,
9563
+ // .throw, and .return methods.
9564
+ generator._invoke = makeInvokeMethod(innerFn, self, context);
9565
+
9566
+ return generator;
9567
+ }
9568
+ exports.wrap = wrap;
9569
+
9570
+ // Try/catch helper to minimize deoptimizations. Returns a completion
9571
+ // record like context.tryEntries[i].completion. This interface could
9572
+ // have been (and was previously) designed to take a closure to be
9573
+ // invoked without arguments, but in all the cases we care about we
9574
+ // already have an existing method we want to call, so there's no need
9575
+ // to create a new function object. We can even get away with assuming
9576
+ // the method takes exactly one argument, since that happens to be true
9577
+ // in every case, so we don't have to touch the arguments object. The
9578
+ // only additional allocation required is the completion record, which
9579
+ // has a stable shape and so hopefully should be cheap to allocate.
9580
+ function tryCatch(fn, obj, arg) {
9581
+ try {
9582
+ return { type: "normal", arg: fn.call(obj, arg) };
9583
+ } catch (err) {
9584
+ return { type: "throw", arg: err };
9585
+ }
9586
+ }
9587
+
9588
+ var GenStateSuspendedStart = "suspendedStart";
9589
+ var GenStateSuspendedYield = "suspendedYield";
9590
+ var GenStateExecuting = "executing";
9591
+ var GenStateCompleted = "completed";
9592
+
9593
+ // Returning this object from the innerFn has the same effect as
9594
+ // breaking out of the dispatch switch statement.
9595
+ var ContinueSentinel = {};
9596
+
9597
+ // Dummy constructor functions that we use as the .constructor and
9598
+ // .constructor.prototype properties for functions that return Generator
9599
+ // objects. For full spec compliance, you may wish to configure your
9600
+ // minifier not to mangle the names of these two functions.
9601
+ function Generator() {}
9602
+ function GeneratorFunction() {}
9603
+ function GeneratorFunctionPrototype() {}
9604
+
9605
+ // This is a polyfill for %IteratorPrototype% for environments that
9606
+ // don't natively support it.
9607
+ var IteratorPrototype = {};
9608
+ define(IteratorPrototype, iteratorSymbol, function () {
9609
+ return this;
9610
+ });
9611
+
9612
+ var getProto = Object.getPrototypeOf;
9613
+ var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
9614
+ if (NativeIteratorPrototype &&
9615
+ NativeIteratorPrototype !== Op &&
9616
+ hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
9617
+ // This environment has a native %IteratorPrototype%; use it instead
9618
+ // of the polyfill.
9619
+ IteratorPrototype = NativeIteratorPrototype;
9620
+ }
9621
+
9622
+ var Gp = GeneratorFunctionPrototype.prototype =
9623
+ Generator.prototype = Object.create(IteratorPrototype);
9624
+ GeneratorFunction.prototype = GeneratorFunctionPrototype;
9625
+ define(Gp, "constructor", GeneratorFunctionPrototype);
9626
+ define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
9627
+ GeneratorFunction.displayName = define(
9628
+ GeneratorFunctionPrototype,
9629
+ toStringTagSymbol,
9630
+ "GeneratorFunction"
9631
+ );
9632
+
9633
+ // Helper for defining the .next, .throw, and .return methods of the
9634
+ // Iterator interface in terms of a single ._invoke method.
9635
+ function defineIteratorMethods(prototype) {
9636
+ ["next", "throw", "return"].forEach(function(method) {
9637
+ define(prototype, method, function(arg) {
9638
+ return this._invoke(method, arg);
9639
+ });
9640
+ });
9641
+ }
9642
+
9643
+ exports.isGeneratorFunction = function(genFun) {
9644
+ var ctor = typeof genFun === "function" && genFun.constructor;
9645
+ return ctor
9646
+ ? ctor === GeneratorFunction ||
9647
+ // For the native GeneratorFunction constructor, the best we can
9648
+ // do is to check its .name property.
9649
+ (ctor.displayName || ctor.name) === "GeneratorFunction"
9650
+ : false;
9651
+ };
9652
+
9653
+ exports.mark = function(genFun) {
9654
+ if (Object.setPrototypeOf) {
9655
+ Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
9656
+ } else {
9657
+ genFun.__proto__ = GeneratorFunctionPrototype;
9658
+ define(genFun, toStringTagSymbol, "GeneratorFunction");
9659
+ }
9660
+ genFun.prototype = Object.create(Gp);
9661
+ return genFun;
9662
+ };
9663
+
9664
+ // Within the body of any async function, `await x` is transformed to
9665
+ // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
9666
+ // `hasOwn.call(value, "__await")` to determine if the yielded value is
9667
+ // meant to be awaited.
9668
+ exports.awrap = function(arg) {
9669
+ return { __await: arg };
9670
+ };
9671
+
9672
+ function AsyncIterator(generator, PromiseImpl) {
9673
+ function invoke(method, arg, resolve, reject) {
9674
+ var record = tryCatch(generator[method], generator, arg);
9675
+ if (record.type === "throw") {
9676
+ reject(record.arg);
9677
+ } else {
9678
+ var result = record.arg;
9679
+ var value = result.value;
9680
+ if (value &&
9681
+ typeof value === "object" &&
9682
+ hasOwn.call(value, "__await")) {
9683
+ return PromiseImpl.resolve(value.__await).then(function(value) {
9684
+ invoke("next", value, resolve, reject);
9685
+ }, function(err) {
9686
+ invoke("throw", err, resolve, reject);
9687
+ });
9688
+ }
9689
+
9690
+ return PromiseImpl.resolve(value).then(function(unwrapped) {
9691
+ // When a yielded Promise is resolved, its final value becomes
9692
+ // the .value of the Promise<{value,done}> result for the
9693
+ // current iteration.
9694
+ result.value = unwrapped;
9695
+ resolve(result);
9696
+ }, function(error) {
9697
+ // If a rejected Promise was yielded, throw the rejection back
9698
+ // into the async generator function so it can be handled there.
9699
+ return invoke("throw", error, resolve, reject);
9700
+ });
9701
+ }
9702
+ }
9703
+
9704
+ var previousPromise;
9705
+
9706
+ function enqueue(method, arg) {
9707
+ function callInvokeWithMethodAndArg() {
9708
+ return new PromiseImpl(function(resolve, reject) {
9709
+ invoke(method, arg, resolve, reject);
9710
+ });
9711
+ }
9712
+
9713
+ return previousPromise =
9714
+ // If enqueue has been called before, then we want to wait until
9715
+ // all previous Promises have been resolved before calling invoke,
9716
+ // so that results are always delivered in the correct order. If
9717
+ // enqueue has not been called before, then it is important to
9718
+ // call invoke immediately, without waiting on a callback to fire,
9719
+ // so that the async generator function has the opportunity to do
9720
+ // any necessary setup in a predictable way. This predictability
9721
+ // is why the Promise constructor synchronously invokes its
9722
+ // executor callback, and why async functions synchronously
9723
+ // execute code before the first await. Since we implement simple
9724
+ // async functions in terms of async generators, it is especially
9725
+ // important to get this right, even though it requires care.
9726
+ previousPromise ? previousPromise.then(
9727
+ callInvokeWithMethodAndArg,
9728
+ // Avoid propagating failures to Promises returned by later
9729
+ // invocations of the iterator.
9730
+ callInvokeWithMethodAndArg
9731
+ ) : callInvokeWithMethodAndArg();
9732
+ }
9733
+
9734
+ // Define the unified helper method that is used to implement .next,
9735
+ // .throw, and .return (see defineIteratorMethods).
9736
+ this._invoke = enqueue;
9737
+ }
9738
+
9739
+ defineIteratorMethods(AsyncIterator.prototype);
9740
+ define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
9741
+ return this;
9742
+ });
9743
+ exports.AsyncIterator = AsyncIterator;
9744
+
9745
+ // Note that simple async functions are implemented on top of
9746
+ // AsyncIterator objects; they just return a Promise for the value of
9747
+ // the final result produced by the iterator.
9748
+ exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
9749
+ if (PromiseImpl === void 0) PromiseImpl = Promise;
9750
+
9751
+ var iter = new AsyncIterator(
9752
+ wrap(innerFn, outerFn, self, tryLocsList),
9753
+ PromiseImpl
9754
+ );
9755
+
9756
+ return exports.isGeneratorFunction(outerFn)
9757
+ ? iter // If outerFn is a generator, return the full iterator.
9758
+ : iter.next().then(function(result) {
9759
+ return result.done ? result.value : iter.next();
9760
+ });
9761
+ };
9762
+
9763
+ function makeInvokeMethod(innerFn, self, context) {
9764
+ var state = GenStateSuspendedStart;
9765
+
9766
+ return function invoke(method, arg) {
9767
+ if (state === GenStateExecuting) {
9768
+ throw new Error("Generator is already running");
9769
+ }
9770
+
9771
+ if (state === GenStateCompleted) {
9772
+ if (method === "throw") {
9773
+ throw arg;
9774
+ }
9775
+
9776
+ // Be forgiving, per 25.3.3.3.3 of the spec:
9777
+ // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
9778
+ return doneResult();
9779
+ }
9780
+
9781
+ context.method = method;
9782
+ context.arg = arg;
9783
+
9784
+ while (true) {
9785
+ var delegate = context.delegate;
9786
+ if (delegate) {
9787
+ var delegateResult = maybeInvokeDelegate(delegate, context);
9788
+ if (delegateResult) {
9789
+ if (delegateResult === ContinueSentinel) continue;
9790
+ return delegateResult;
9791
+ }
9792
+ }
9793
+
9794
+ if (context.method === "next") {
9795
+ // Setting context._sent for legacy support of Babel's
9796
+ // function.sent implementation.
9797
+ context.sent = context._sent = context.arg;
9798
+
9799
+ } else if (context.method === "throw") {
9800
+ if (state === GenStateSuspendedStart) {
9801
+ state = GenStateCompleted;
9802
+ throw context.arg;
9803
+ }
9804
+
9805
+ context.dispatchException(context.arg);
9806
+
9807
+ } else if (context.method === "return") {
9808
+ context.abrupt("return", context.arg);
9809
+ }
9810
+
9811
+ state = GenStateExecuting;
9812
+
9813
+ var record = tryCatch(innerFn, self, context);
9814
+ if (record.type === "normal") {
9815
+ // If an exception is thrown from innerFn, we leave state ===
9816
+ // GenStateExecuting and loop back for another invocation.
9817
+ state = context.done
9818
+ ? GenStateCompleted
9819
+ : GenStateSuspendedYield;
9820
+
9821
+ if (record.arg === ContinueSentinel) {
9822
+ continue;
9823
+ }
9824
+
9825
+ return {
9826
+ value: record.arg,
9827
+ done: context.done
9828
+ };
9829
+
9830
+ } else if (record.type === "throw") {
9831
+ state = GenStateCompleted;
9832
+ // Dispatch the exception by looping back around to the
9833
+ // context.dispatchException(context.arg) call above.
9834
+ context.method = "throw";
9835
+ context.arg = record.arg;
9836
+ }
9837
+ }
9838
+ };
9839
+ }
9840
+
9841
+ // Call delegate.iterator[context.method](context.arg) and handle the
9842
+ // result, either by returning a { value, done } result from the
9843
+ // delegate iterator, or by modifying context.method and context.arg,
9844
+ // setting context.delegate to null, and returning the ContinueSentinel.
9845
+ function maybeInvokeDelegate(delegate, context) {
9846
+ var method = delegate.iterator[context.method];
9847
+ if (method === undefined) {
9848
+ // A .throw or .return when the delegate iterator has no .throw
9849
+ // method always terminates the yield* loop.
9850
+ context.delegate = null;
9851
+
9852
+ if (context.method === "throw") {
9853
+ // Note: ["return"] must be used for ES3 parsing compatibility.
9854
+ if (delegate.iterator["return"]) {
9855
+ // If the delegate iterator has a return method, give it a
9856
+ // chance to clean up.
9857
+ context.method = "return";
9858
+ context.arg = undefined;
9859
+ maybeInvokeDelegate(delegate, context);
9860
+
9861
+ if (context.method === "throw") {
9862
+ // If maybeInvokeDelegate(context) changed context.method from
9863
+ // "return" to "throw", let that override the TypeError below.
9864
+ return ContinueSentinel;
9865
+ }
9866
+ }
9867
+
9868
+ context.method = "throw";
9869
+ context.arg = new TypeError(
9870
+ "The iterator does not provide a 'throw' method");
9871
+ }
9872
+
9873
+ return ContinueSentinel;
9874
+ }
9875
+
9876
+ var record = tryCatch(method, delegate.iterator, context.arg);
9877
+
9878
+ if (record.type === "throw") {
9879
+ context.method = "throw";
9880
+ context.arg = record.arg;
9881
+ context.delegate = null;
9882
+ return ContinueSentinel;
9883
+ }
9884
+
9885
+ var info = record.arg;
9886
+
9887
+ if (! info) {
9888
+ context.method = "throw";
9889
+ context.arg = new TypeError("iterator result is not an object");
9890
+ context.delegate = null;
9891
+ return ContinueSentinel;
9892
+ }
9893
+
9894
+ if (info.done) {
9895
+ // Assign the result of the finished delegate to the temporary
9896
+ // variable specified by delegate.resultName (see delegateYield).
9897
+ context[delegate.resultName] = info.value;
9898
+
9899
+ // Resume execution at the desired location (see delegateYield).
9900
+ context.next = delegate.nextLoc;
9901
+
9902
+ // If context.method was "throw" but the delegate handled the
9903
+ // exception, let the outer generator proceed normally. If
9904
+ // context.method was "next", forget context.arg since it has been
9905
+ // "consumed" by the delegate iterator. If context.method was
9906
+ // "return", allow the original .return call to continue in the
9907
+ // outer generator.
9908
+ if (context.method !== "return") {
9909
+ context.method = "next";
9910
+ context.arg = undefined;
9911
+ }
9912
+
9913
+ } else {
9914
+ // Re-yield the result returned by the delegate method.
9915
+ return info;
9916
+ }
9917
+
9918
+ // The delegate iterator is finished, so forget it and continue with
9919
+ // the outer generator.
9920
+ context.delegate = null;
9921
+ return ContinueSentinel;
9922
+ }
9923
+
9924
+ // Define Generator.prototype.{next,throw,return} in terms of the
9925
+ // unified ._invoke helper method.
9926
+ defineIteratorMethods(Gp);
9927
+
9928
+ define(Gp, toStringTagSymbol, "Generator");
9929
+
9930
+ // A Generator should always return itself as the iterator object when the
9931
+ // @@iterator function is called on it. Some browsers' implementations of the
9932
+ // iterator prototype chain incorrectly implement this, causing the Generator
9933
+ // object to not be returned from this call. This ensures that doesn't happen.
9934
+ // See https://github.com/facebook/regenerator/issues/274 for more details.
9935
+ define(Gp, iteratorSymbol, function() {
9936
+ return this;
9937
+ });
9938
+
9939
+ define(Gp, "toString", function() {
9940
+ return "[object Generator]";
9941
+ });
9942
+
9943
+ function pushTryEntry(locs) {
9944
+ var entry = { tryLoc: locs[0] };
9945
+
9946
+ if (1 in locs) {
9947
+ entry.catchLoc = locs[1];
9948
+ }
9949
+
9950
+ if (2 in locs) {
9951
+ entry.finallyLoc = locs[2];
9952
+ entry.afterLoc = locs[3];
9953
+ }
9954
+
9955
+ this.tryEntries.push(entry);
9956
+ }
9957
+
9958
+ function resetTryEntry(entry) {
9959
+ var record = entry.completion || {};
9960
+ record.type = "normal";
9961
+ delete record.arg;
9962
+ entry.completion = record;
9963
+ }
9964
+
9965
+ function Context(tryLocsList) {
9966
+ // The root entry object (effectively a try statement without a catch
9967
+ // or a finally block) gives us a place to store values thrown from
9968
+ // locations where there is no enclosing try statement.
9969
+ this.tryEntries = [{ tryLoc: "root" }];
9970
+ tryLocsList.forEach(pushTryEntry, this);
9971
+ this.reset(true);
9972
+ }
9973
+
9974
+ exports.keys = function(object) {
9975
+ var keys = [];
9976
+ for (var key in object) {
9977
+ keys.push(key);
9978
+ }
9979
+ keys.reverse();
9980
+
9981
+ // Rather than returning an object with a next method, we keep
9982
+ // things simple and return the next function itself.
9983
+ return function next() {
9984
+ while (keys.length) {
9985
+ var key = keys.pop();
9986
+ if (key in object) {
9987
+ next.value = key;
9988
+ next.done = false;
9989
+ return next;
9990
+ }
9991
+ }
9992
+
9993
+ // To avoid creating an additional object, we just hang the .value
9994
+ // and .done properties off the next function object itself. This
9995
+ // also ensures that the minifier will not anonymize the function.
9996
+ next.done = true;
9997
+ return next;
9998
+ };
9999
+ };
10000
+
10001
+ function values(iterable) {
10002
+ if (iterable) {
10003
+ var iteratorMethod = iterable[iteratorSymbol];
10004
+ if (iteratorMethod) {
10005
+ return iteratorMethod.call(iterable);
10006
+ }
10007
+
10008
+ if (typeof iterable.next === "function") {
10009
+ return iterable;
10010
+ }
10011
+
10012
+ if (!isNaN(iterable.length)) {
10013
+ var i = -1, next = function next() {
10014
+ while (++i < iterable.length) {
10015
+ if (hasOwn.call(iterable, i)) {
10016
+ next.value = iterable[i];
10017
+ next.done = false;
10018
+ return next;
10019
+ }
10020
+ }
10021
+
10022
+ next.value = undefined;
10023
+ next.done = true;
10024
+
10025
+ return next;
10026
+ };
10027
+
10028
+ return next.next = next;
10029
+ }
10030
+ }
10031
+
10032
+ // Return an iterator with no values.
10033
+ return { next: doneResult };
10034
+ }
10035
+ exports.values = values;
10036
+
10037
+ function doneResult() {
10038
+ return { value: undefined, done: true };
10039
+ }
10040
+
10041
+ Context.prototype = {
10042
+ constructor: Context,
10043
+
10044
+ reset: function(skipTempReset) {
10045
+ this.prev = 0;
10046
+ this.next = 0;
10047
+ // Resetting context._sent for legacy support of Babel's
10048
+ // function.sent implementation.
10049
+ this.sent = this._sent = undefined;
10050
+ this.done = false;
10051
+ this.delegate = null;
10052
+
10053
+ this.method = "next";
10054
+ this.arg = undefined;
10055
+
10056
+ this.tryEntries.forEach(resetTryEntry);
10057
+
10058
+ if (!skipTempReset) {
10059
+ for (var name in this) {
10060
+ // Not sure about the optimal order of these conditions:
10061
+ if (name.charAt(0) === "t" &&
10062
+ hasOwn.call(this, name) &&
10063
+ !isNaN(+name.slice(1))) {
10064
+ this[name] = undefined;
10065
+ }
10066
+ }
10067
+ }
10068
+ },
10069
+
10070
+ stop: function() {
10071
+ this.done = true;
10072
+
10073
+ var rootEntry = this.tryEntries[0];
10074
+ var rootRecord = rootEntry.completion;
10075
+ if (rootRecord.type === "throw") {
10076
+ throw rootRecord.arg;
10077
+ }
10078
+
10079
+ return this.rval;
10080
+ },
10081
+
10082
+ dispatchException: function(exception) {
10083
+ if (this.done) {
10084
+ throw exception;
10085
+ }
10086
+
10087
+ var context = this;
10088
+ function handle(loc, caught) {
10089
+ record.type = "throw";
10090
+ record.arg = exception;
10091
+ context.next = loc;
10092
+
10093
+ if (caught) {
10094
+ // If the dispatched exception was caught by a catch block,
10095
+ // then let that catch block handle the exception normally.
10096
+ context.method = "next";
10097
+ context.arg = undefined;
10098
+ }
10099
+
10100
+ return !! caught;
10101
+ }
10102
+
10103
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
10104
+ var entry = this.tryEntries[i];
10105
+ var record = entry.completion;
10106
+
10107
+ if (entry.tryLoc === "root") {
10108
+ // Exception thrown outside of any try block that could handle
10109
+ // it, so set the completion value of the entire function to
10110
+ // throw the exception.
10111
+ return handle("end");
10112
+ }
10113
+
10114
+ if (entry.tryLoc <= this.prev) {
10115
+ var hasCatch = hasOwn.call(entry, "catchLoc");
10116
+ var hasFinally = hasOwn.call(entry, "finallyLoc");
10117
+
10118
+ if (hasCatch && hasFinally) {
10119
+ if (this.prev < entry.catchLoc) {
10120
+ return handle(entry.catchLoc, true);
10121
+ } else if (this.prev < entry.finallyLoc) {
10122
+ return handle(entry.finallyLoc);
10123
+ }
10124
+
10125
+ } else if (hasCatch) {
10126
+ if (this.prev < entry.catchLoc) {
10127
+ return handle(entry.catchLoc, true);
10128
+ }
10129
+
10130
+ } else if (hasFinally) {
10131
+ if (this.prev < entry.finallyLoc) {
10132
+ return handle(entry.finallyLoc);
10133
+ }
10134
+
10135
+ } else {
10136
+ throw new Error("try statement without catch or finally");
10137
+ }
10138
+ }
10139
+ }
10140
+ },
10141
+
10142
+ abrupt: function(type, arg) {
10143
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
10144
+ var entry = this.tryEntries[i];
10145
+ if (entry.tryLoc <= this.prev &&
10146
+ hasOwn.call(entry, "finallyLoc") &&
10147
+ this.prev < entry.finallyLoc) {
10148
+ var finallyEntry = entry;
10149
+ break;
10150
+ }
10151
+ }
10152
+
10153
+ if (finallyEntry &&
10154
+ (type === "break" ||
10155
+ type === "continue") &&
10156
+ finallyEntry.tryLoc <= arg &&
10157
+ arg <= finallyEntry.finallyLoc) {
10158
+ // Ignore the finally entry if control is not jumping to a
10159
+ // location outside the try/catch block.
10160
+ finallyEntry = null;
10161
+ }
10162
+
10163
+ var record = finallyEntry ? finallyEntry.completion : {};
10164
+ record.type = type;
10165
+ record.arg = arg;
10166
+
10167
+ if (finallyEntry) {
10168
+ this.method = "next";
10169
+ this.next = finallyEntry.finallyLoc;
10170
+ return ContinueSentinel;
10171
+ }
10172
+
10173
+ return this.complete(record);
10174
+ },
10175
+
10176
+ complete: function(record, afterLoc) {
10177
+ if (record.type === "throw") {
10178
+ throw record.arg;
10179
+ }
10180
+
10181
+ if (record.type === "break" ||
10182
+ record.type === "continue") {
10183
+ this.next = record.arg;
10184
+ } else if (record.type === "return") {
10185
+ this.rval = this.arg = record.arg;
10186
+ this.method = "return";
10187
+ this.next = "end";
10188
+ } else if (record.type === "normal" && afterLoc) {
10189
+ this.next = afterLoc;
10190
+ }
10191
+
10192
+ return ContinueSentinel;
10193
+ },
10194
+
10195
+ finish: function(finallyLoc) {
10196
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
10197
+ var entry = this.tryEntries[i];
10198
+ if (entry.finallyLoc === finallyLoc) {
10199
+ this.complete(entry.completion, entry.afterLoc);
10200
+ resetTryEntry(entry);
10201
+ return ContinueSentinel;
10202
+ }
10203
+ }
10204
+ },
10205
+
10206
+ "catch": function(tryLoc) {
10207
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
10208
+ var entry = this.tryEntries[i];
10209
+ if (entry.tryLoc === tryLoc) {
10210
+ var record = entry.completion;
10211
+ if (record.type === "throw") {
10212
+ var thrown = record.arg;
10213
+ resetTryEntry(entry);
10214
+ }
10215
+ return thrown;
10216
+ }
10217
+ }
10218
+
10219
+ // The context.catch method must only be called with a location
10220
+ // argument that corresponds to a known catch block.
10221
+ throw new Error("illegal catch attempt");
10222
+ },
10223
+
10224
+ delegateYield: function(iterable, resultName, nextLoc) {
10225
+ this.delegate = {
10226
+ iterator: values(iterable),
10227
+ resultName: resultName,
10228
+ nextLoc: nextLoc
10229
+ };
10230
+
10231
+ if (this.method === "next") {
10232
+ // Deliberately forget the last sent value so that we don't
10233
+ // accidentally pass it on to the delegate.
10234
+ this.arg = undefined;
10235
+ }
10236
+
10237
+ return ContinueSentinel;
10238
+ }
10239
+ };
10240
+
10241
+ // Regardless of whether this script is executing as a CommonJS module
10242
+ // or not, return the runtime object so that we can declare the variable
10243
+ // regeneratorRuntime in the outer scope, which allows this module to be
10244
+ // injected easily by `bin/regenerator --include-runtime script.js`.
10245
+ return exports;
10246
+
10247
+ }(
10248
+ // If this script is executing as a CommonJS module, use module.exports
10249
+ // as the regeneratorRuntime namespace. Otherwise create a new empty
10250
+ // object. Either way, the resulting object will be used to initialize
10251
+ // the regeneratorRuntime variable at the top of this file.
10252
+ true ? module.exports : undefined
10253
+ ));
10254
+
10255
+ try {
10256
+ regeneratorRuntime = runtime;
10257
+ } catch (accidentalStrictMode) {
10258
+ // This module should not be running in strict mode, so the above
10259
+ // assignment should always work unless something is misconfigured. Just
10260
+ // in case runtime.js accidentally runs in strict mode, in modern engines
10261
+ // we can explicitly access globalThis. In older engines we can escape
10262
+ // strict mode using a global Function call. This could conceivably fail
10263
+ // if a Content Security Policy forbids using Function, but in that case
10264
+ // the proper solution is to fix the accidental strict mode problem. If
10265
+ // you've misconfigured your bundler to force strict mode and applied a
10266
+ // CSP to forbid Function, and you're not willing to fix either of those
10267
+ // problems, please detail your unique predicament in a GitHub issue.
10268
+ if (typeof globalThis === "object") {
10269
+ globalThis.regeneratorRuntime = runtime;
10270
+ } else {
10271
+ Function("r", "regeneratorRuntime = r")(runtime);
10272
+ }
10273
+ }
10274
+
10275
+
10276
+ /***/ })
10277
+
10278
+ /******/ });
10279
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9wb2x5ZmlsbC9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9wb2x5ZmlsbC9saWIvbm9Db25mbGljdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9lczYvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vYXJyYXkvZmxhdC1tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vYXJyYXkvaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vb2JqZWN0L2VudHJpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vb2JqZWN0L2dldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vb2JqZWN0L3ZhbHVlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9wcm9taXNlL2ZpbmFsbHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vc3RyaW5nL3BhZC1lbmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vc3RyaW5nL3BhZC1zdGFydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9zdHJpbmcvdHJpbS1lbmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vc3RyaW5nL3RyaW0tc3RhcnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvZm4vc3ltYm9sL2FzeW5jLWl0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vZ2xvYmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYS1mdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FuLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jdHguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19leHBvcnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19mYWlscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hpZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNy5nbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYS1mdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hLW51bWJlci12YWx1ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hZGQtdG8tdW5zY29wYWJsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYWR2YW5jZS1zdHJpbmctaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYW4taW5zdGFuY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYW4tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LWNvcHktd2l0aGluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LWZpbGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktbWV0aG9kcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hcnJheS1yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19iaW5kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NsYXNzb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fY29mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NvbGxlY3Rpb24tc3Ryb25nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NvbGxlY3Rpb24td2Vhay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jb2xsZWN0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2N0eC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kYXRlLXRvLWlzby1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZGF0ZS10by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kb20tY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZW51bS1rZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2V4cG9ydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mYWlscy1pcy1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZmFpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZml4LXJlLXdrcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mbGFncy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mbGF0dGVuLWludG8tYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZm9yLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2Z1bmN0aW9uLXRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19nbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faGFzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2hpZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faHRtbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pbmhlcml0LWlmLXJlcXVpcmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2ludm9rZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLWFycmF5LWl0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pcy1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtcmVnZXhwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2l0ZXItY2FsbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLWRldGVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLXN0ZXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlcmF0b3JzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2xpYnJhcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fbWF0aC1leHBtMS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19tYXRoLWZyb3VuZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19tYXRoLWxvZzFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX21hdGgtc2lnbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19tZXRhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX21pY3JvdGFzay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19uZXctcHJvbWlzZS1jYXBhYmlsaXR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZHAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWRwcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZ29wZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZ29wbi1leHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWdvcG4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWdvcHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWdwby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3Qta2V5cy1pbnRlcm5hbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3Qta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtcGllLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1zYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LXRvLWFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX293bi1rZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3BhcnNlLWZsb2F0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3BhcnNlLWludC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19wZXJmb3JtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3Byb21pc2UtcmVzb2x2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19wcm9wZXJ0eS1kZXNjLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3JlZGVmaW5lLWFsbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19yZWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19yZWdleHAtZXhlYy1hYnN0cmFjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19yZWdleHAtZXhlYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zYW1lLXZhbHVlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NldC1wcm90by5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zZXQtc3BlY2llcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zZXQtdG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zaGFyZWQta2V5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NoYXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zcGVjaWVzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3N0cmljdC1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc3RyaW5nLWF0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3N0cmluZy1jb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3N0cmluZy1odG1sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3N0cmluZy1wYWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc3RyaW5nLXJlcGVhdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpbmctdHJpbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpbmctd3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdGFzay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWlvYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8tbGVuZ3RoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdHlwZWQtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdHlwZWQtYnVmZmVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3R5cGVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3VpZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL191c2VyLWFnZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3ZhbGlkYXRlLWNvbGxlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fd2tzLWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL193a3MtZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3drcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5jb3B5LXdpdGhpbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5ldmVyeS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5maWxsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5LmZpbHRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5maW5kLWluZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5LmZpbmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkuZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkuZnJvbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5pbmRleC1vZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5qb2luLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5Lmxhc3QtaW5kZXgtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkubWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5Lm9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5LnJlZHVjZS1yaWdodC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkuc29tZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5zb3J0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5LnNwZWNpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuZGF0ZS5ub3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuZGF0ZS50by1pc28tc3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmRhdGUudG8tanNvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5kYXRlLnRvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5kYXRlLnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5mdW5jdGlvbi5iaW5kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmZ1bmN0aW9uLmhhcy1pbnN0YW5jZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5mdW5jdGlvbi5uYW1lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm1hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5tYXRoLmFjb3NoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm1hdGguYXNpbmguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubWF0aC5hdGFuaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5tYXRoLmNicnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubWF0aC5jbHozMi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5tYXRoLmNvc2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubWF0aC5leHBtMS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5tYXRoLmZyb3VuZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5tYXRoLmh5cG90LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm1hdGguaW11bC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5tYXRoLmxvZzEwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm1hdGgubG9nMXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubWF0aC5sb2cyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm1hdGguc2lnbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5tYXRoLnNpbmguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubWF0aC50YW5oLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm1hdGgudHJ1bmMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubnVtYmVyLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci5lcHNpbG9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci5pcy1maW5pdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubnVtYmVyLmlzLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubnVtYmVyLmlzLW5hbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5udW1iZXIuaXMtc2FmZS1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci5tYXgtc2FmZS1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci5taW4tc2FmZS1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci5wYXJzZS1mbG9hdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5udW1iZXIucGFyc2UtaW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci50by1maXhlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5udW1iZXIudG8tcHJlY2lzaW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QuZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QuZnJlZXplLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmdldC1vd24tcHJvcGVydHktbmFtZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmdldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmlzLWV4dGVuc2libGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmlzLWZyb3plbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QuaXMtc2VhbGVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5pcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3Qua2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QucHJldmVudC1leHRlbnNpb25zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5zZWFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucGFyc2UtZmxvYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucGFyc2UtaW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnByb21pc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVmbGVjdC5hcHBseS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWZsZWN0LmNvbnN0cnVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWZsZWN0LmRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWZsZWN0LmRlbGV0ZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWZsZWN0LmVudW1lcmF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWZsZWN0LmdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWZsZWN0LmdldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVmbGVjdC5nZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVmbGVjdC5oYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVmbGVjdC5pcy1leHRlbnNpYmxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZmxlY3Qub3duLWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVmbGVjdC5wcmV2ZW50LWV4dGVuc2lvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVmbGVjdC5zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZmxlY3Quc2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuZXhlYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuZmxhZ3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVnZXhwLm1hdGNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5yZXBsYWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5zZWFyY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVnZXhwLnNwbGl0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy5hbmNob3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLmJpZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuYmxpbmsuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLmJvbGQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLmNvZGUtcG9pbnQtYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLmVuZHMtd2l0aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuZml4ZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLmZvbnRjb2xvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuZm9udHNpemUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLmZyb20tY29kZS1wb2ludC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLml0YWxpY3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLml0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy5saW5rLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy5yYXcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLnJlcGVhdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuc21hbGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLnN0YXJ0cy13aXRoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy5zdHJpa2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLnN1Yi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuc3VwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy50cmltLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN5bWJvbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi50eXBlZC5hcnJheS1idWZmZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYudHlwZWQuZGF0YS12aWV3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnR5cGVkLmZsb2F0MzItYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYudHlwZWQuZmxvYXQ2NC1hcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi50eXBlZC5pbnQxNi1hcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi50eXBlZC5pbnQzMi1hcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi50eXBlZC5pbnQ4LWFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnR5cGVkLnVpbnQxNi1hcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi50eXBlZC51aW50MzItYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYudHlwZWQudWludDgtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYudHlwZWQudWludDgtY2xhbXBlZC1hcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi53ZWFrLW1hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi53ZWFrLXNldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5hcnJheS5mbGF0LW1hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5hcnJheS5pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5vYmplY3QuZW50cmllcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5vYmplY3QudmFsdWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM3LnByb21pc2UuZmluYWxseS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5zdHJpbmcucGFkLWVuZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5zdHJpbmcucGFkLXN0YXJ0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM3LnN0cmluZy50cmltLWxlZnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczcuc3RyaW5nLnRyaW0tcmlnaHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5pbW1lZGlhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy93ZWIudGltZXJzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL3dlYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7UUFBQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7O1FBR0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDBDQUEwQyxnQ0FBZ0M7UUFDMUU7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSx3REFBd0Qsa0JBQWtCO1FBQzFFO1FBQ0EsaURBQWlELGNBQWM7UUFDL0Q7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLHlDQUF5QyxpQ0FBaUM7UUFDMUUsZ0hBQWdILG1CQUFtQixFQUFFO1FBQ3JJO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMkJBQTJCLDBCQUEwQixFQUFFO1FBQ3ZELGlDQUFpQyxlQUFlO1FBQ2hEO1FBQ0E7UUFDQTs7UUFFQTtRQUNBLHNEQUFzRCwrREFBK0Q7O1FBRXJIO1FBQ0E7OztRQUdBO1FBQ0E7Ozs7Ozs7Ozs7Ozs7QUNsRmE7O0FBRWIsbUJBQU8sQ0FBQyxzRUFBYzs7QUFFdEIscUNBQXFDLG1CQUFPLENBQUMsOEVBQTJCOztBQUV4RSxzQ0FBc0MsdUNBQXVDLGtCQUFrQjs7QUFFL0Y7QUFDQTtBQUNBOztBQUVBLHlDOzs7Ozs7Ozs7Ozs7QUNaYTs7QUFFYixtQkFBTyxDQUFDLHdEQUFhOztBQUVyQixtQkFBTyxDQUFDLDhFQUEyQjs7QUFFbkMsbUJBQU8sQ0FBQyw4RUFBMkI7O0FBRW5DLG1CQUFPLENBQUMsa0ZBQTZCOztBQUVyQyxtQkFBTyxDQUFDLDhFQUEyQjs7QUFFbkMsbUJBQU8sQ0FBQyxvRkFBOEI7O0FBRXRDLG1CQUFPLENBQUMsZ0ZBQTRCOztBQUVwQyxtQkFBTyxDQUFDLDRGQUFrQzs7QUFFMUMsbUJBQU8sQ0FBQyx3SEFBZ0Q7O0FBRXhELG1CQUFPLENBQUMsNEVBQTBCOztBQUVsQyxtQkFBTyxDQUFDLDhFQUEyQjs7QUFFbkMsbUJBQU8sQ0FBQyxnRkFBNEI7O0FBRXBDLG1CQUFPLENBQUMsd0RBQWE7O0FBRXJCLG1CQUFPLENBQUMsa0ZBQTZCLEU7Ozs7Ozs7Ozs7O0FDNUJyQyxtQkFBTyxDQUFDLDJFQUF1QjtBQUMvQixtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLDJHQUF1QztBQUMvQyxtQkFBTyxDQUFDLCtHQUF5QztBQUNqRCxtQkFBTyxDQUFDLG1JQUFtRDtBQUMzRCxtQkFBTyxDQUFDLDZHQUF3QztBQUNoRCxtQkFBTyxDQUFDLHFGQUE0QjtBQUNwQyxtQkFBTyxDQUFDLHlIQUE4QztBQUN0RCxtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLHFGQUE0QjtBQUNwQyxtQkFBTyxDQUFDLGlIQUEwQztBQUNsRCxtQkFBTyxDQUFDLCtGQUFpQztBQUN6QyxtQkFBTyxDQUFDLCtGQUFpQztBQUN6QyxtQkFBTyxDQUFDLHVHQUFxQztBQUM3QyxtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLDZHQUF3QztBQUNoRCxtQkFBTyxDQUFDLCtGQUFpQztBQUN6QyxtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLHlHQUFzQztBQUM5QyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLHFGQUE0QjtBQUNwQyxtQkFBTyxDQUFDLG1HQUFtQztBQUMzQyxtQkFBTyxDQUFDLDZGQUFnQztBQUN4QyxtQkFBTyxDQUFDLHFHQUFvQztBQUM1QyxtQkFBTyxDQUFDLDJGQUErQjtBQUN2QyxtQkFBTyxDQUFDLCtGQUFpQztBQUN6QyxtQkFBTyxDQUFDLGlHQUFrQztBQUMxQyxtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLDJHQUF1QztBQUMvQyxtQkFBTyxDQUFDLDZHQUF3QztBQUNoRCxtQkFBTyxDQUFDLDZHQUF3QztBQUNoRCxtQkFBTyxDQUFDLG1HQUFtQztBQUMzQyxtQkFBTyxDQUFDLCtGQUFpQztBQUN6QyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLHFGQUE0QjtBQUNwQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLGlGQUEwQjtBQUNsQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLDJHQUF1QztBQUMvQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLHFGQUE0QjtBQUNwQyxtQkFBTyxDQUFDLDZGQUFnQztBQUN4QyxtQkFBTyxDQUFDLHVHQUFxQztBQUM3QyxtQkFBTyxDQUFDLCtGQUFpQztBQUN6QyxtQkFBTyxDQUFDLDZGQUFnQztBQUN4QyxtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLG1HQUFtQztBQUMzQyxtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLHVGQUE2QjtBQUNyQyxtQkFBTyxDQUFDLHFGQUE0QjtBQUNwQyxtQkFBTyxDQUFDLHVGQUE2QjtBQUNyQyxtQkFBTyxDQUFDLCtGQUFpQztBQUN6QyxtQkFBTyxDQUFDLDZGQUFnQztBQUN4QyxtQkFBTyxDQUFDLDJGQUErQjtBQUN2QyxtQkFBTyxDQUFDLHFGQUE0QjtBQUNwQyxtQkFBTyxDQUFDLHVGQUE2QjtBQUNyQyxtQkFBTyxDQUFDLHlGQUE4QjtBQUN0QyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFBTyxDQUFDLCtFQUF5QjtBQUNqQyxtQkFBTyxDQUFDLHVGQUE2QjtBQUNyQyxtQkFBTyxDQUFDLG1HQUFtQztBQUMzQyxtQkFBTyxDQUFDLDJGQUErQjtBQUN2QyxtQkFBTyxDQUFDLGlHQUFrQztBQUMxQyxtQkFBTyxDQUFDLDJGQUErQjtBQUN2QyxtQkFBTyxDQUFDLG1GQUEyQjtBQUNuQyxtQkFB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LHdDQUF3QyxXQUFXO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsU0FBUztBQUNUO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0MsY0FBYztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQ0FBaUMsa0JBQWtCO0FBQ25EO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsaUJBQWlCOztBQUVqQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsaUJBQWlCO0FBQ3pDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSw4Q0FBOEMsUUFBUTtBQUN0RDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7O0FBRUEsV0FBVztBQUNYO0FBQ0E7QUFDQTs7QUFFQSxXQUFXO0FBQ1g7QUFDQTtBQUNBOztBQUVBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSw4Q0FBOEMsUUFBUTtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLDhDQUE4QyxRQUFRO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLDhDQUE4QyxRQUFRO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxLQUEwQixvQkFBb0IsU0FBRTtBQUNsRDs7QUFFQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EiLCJmaWxlIjoiYmFiZWwtcG9seWZpbGwubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvcHVibGljL2pzL1wiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gXCIuL25vZGVfbW9kdWxlcy9AYmFiZWwvcG9seWZpbGwvbGliL2luZGV4LmpzXCIpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnJlcXVpcmUoXCIuL25vQ29uZmxpY3RcIik7XG5cbnZhciBfZ2xvYmFsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL2dsb2JhbFwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5pZiAoX2dsb2JhbFtcImRlZmF1bHRcIl0uX2JhYmVsUG9seWZpbGwgJiYgdHlwZW9mIGNvbnNvbGUgIT09IFwidW5kZWZpbmVkXCIgJiYgY29uc29sZS53YXJuKSB7XG4gIGNvbnNvbGUud2FybihcIkBiYWJlbC9wb2x5ZmlsbCBpcyBsb2FkZWQgbW9yZSB0aGFuIG9uY2Ugb24gdGhpcyBwYWdlLiBUaGlzIGlzIHByb2JhYmx5IG5vdCBkZXNpcmFibGUvaW50ZW5kZWQgXCIgKyBcImFuZCBtYXkgaGF2ZSBjb25zZXF1ZW5jZXMgaWYgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBwb2x5ZmlsbHMgYXJlIGFwcGxpZWQgc2VxdWVudGlhbGx5LiBcIiArIFwiSWYgeW91IGRvIG5lZWQgdG8gbG9hZCB0aGUgcG9seWZpbGwgbW9yZSB0aGFuIG9uY2UsIHVzZSBAYmFiZWwvcG9seWZpbGwvbm9Db25mbGljdCBcIiArIFwiaW5zdGVhZCB0byBieXBhc3MgdGhlIHdhcm5pbmcuXCIpO1xufVxuXG5fZ2xvYmFsW1wiZGVmYXVsdFwiXS5fYmFiZWxQb2x5ZmlsbCA9IHRydWU7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnJlcXVpcmUoXCJjb3JlLWpzL2VzNlwiKTtcblxucmVxdWlyZShcImNvcmUtanMvZm4vYXJyYXkvaW5jbHVkZXNcIik7XG5cbnJlcXVpcmUoXCJjb3JlLWpzL2ZuL2FycmF5L2ZsYXQtbWFwXCIpO1xuXG5yZXF1aXJlKFwiY29yZS1qcy9mbi9zdHJpbmcvcGFkLXN0YXJ0XCIpO1xuXG5yZXF1aXJlKFwiY29yZS1qcy9mbi9zdHJpbmcvcGFkLWVuZFwiKTtcblxucmVxdWlyZShcImNvcmUtanMvZm4vc3RyaW5nL3RyaW0tc3RhcnRcIik7XG5cbnJlcXVpcmUoXCJjb3JlLWpzL2ZuL3N0cmluZy90cmltLWVuZFwiKTtcblxucmVxdWlyZShcImNvcmUtanMvZm4vc3ltYm9sL2FzeW5jLWl0ZXJhdG9yXCIpO1xuXG5yZXF1aXJlKFwiY29yZS1qcy9mbi9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yc1wiKTtcblxucmVxdWlyZShcImNvcmUtanMvZm4vb2JqZWN0L3ZhbHVlc1wiKTtcblxucmVxdWlyZShcImNvcmUtanMvZm4vb2JqZWN0L2VudHJpZXNcIik7XG5cbnJlcXVpcmUoXCJjb3JlLWpzL2ZuL3Byb21pc2UvZmluYWxseVwiKTtcblxucmVxdWlyZShcImNvcmUtanMvd2ViXCIpO1xuXG5yZXF1aXJlKFwicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lXCIpOyIsInJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN5bWJvbCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LmRlZmluZS1wcm9wZXJ0eScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LmRlZmluZS1wcm9wZXJ0aWVzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5vYmplY3QuZ2V0LXByb3RvdHlwZS1vZicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LmtleXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtb3duLXByb3BlcnR5LW5hbWVzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5vYmplY3QuZnJlZXplJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5vYmplY3Quc2VhbCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LnByZXZlbnQtZXh0ZW5zaW9ucycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LmlzLWZyb3plbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LmlzLXNlYWxlZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LmlzLWV4dGVuc2libGUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24nKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm9iamVjdC5pcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYub2JqZWN0LnNldC1wcm90b3R5cGUtb2YnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm9iamVjdC50by1zdHJpbmcnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LmZ1bmN0aW9uLmJpbmQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LmZ1bmN0aW9uLm5hbWUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LmZ1bmN0aW9uLmhhcy1pbnN0YW5jZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucGFyc2UtaW50Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5wYXJzZS1mbG9hdCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubnVtYmVyLmNvbnN0cnVjdG9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5udW1iZXIudG8tZml4ZWQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm51bWJlci50by1wcmVjaXNpb24nKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm51bWJlci5lcHNpbG9uJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5udW1iZXIuaXMtZmluaXRlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5udW1iZXIuaXMtaW50ZWdlcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubnVtYmVyLmlzLW5hbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubnVtYmVyLmlzLXNhZmUtaW50ZWdlcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubnVtYmVyLm1heC1zYWZlLWludGVnZXInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm51bWJlci5taW4tc2FmZS1pbnRlZ2VyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5udW1iZXIucGFyc2UtZmxvYXQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm51bWJlci5wYXJzZS1pbnQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm1hdGguYWNvc2gnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm1hdGguYXNpbmgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm1hdGguYXRhbmgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm1hdGguY2JydCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubWF0aC5jbHozMicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubWF0aC5jb3NoJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5tYXRoLmV4cG0xJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5tYXRoLmZyb3VuZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubWF0aC5oeXBvdCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubWF0aC5pbXVsJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5tYXRoLmxvZzEwJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5tYXRoLmxvZzFwJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5tYXRoLmxvZzInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm1hdGguc2lnbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYubWF0aC5zaW5oJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5tYXRoLnRhbmgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2Lm1hdGgudHJ1bmMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy5mcm9tLWNvZGUtcG9pbnQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy5yYXcnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy50cmltJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy5jb2RlLXBvaW50LWF0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuZW5kcy13aXRoJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuaW5jbHVkZXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy5yZXBlYXQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy5zdGFydHMtd2l0aCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuc3RyaW5nLmFuY2hvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuc3RyaW5nLmJpZycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuc3RyaW5nLmJsaW5rJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuYm9sZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuc3RyaW5nLmZpeGVkJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuZm9udGNvbG9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuZm9udHNpemUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGFsaWNzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcubGluaycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuc3RyaW5nLnNtYWxsJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuc3RyaWtlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuc3ViJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5zdHJpbmcuc3VwJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5kYXRlLm5vdycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuZGF0ZS50by1qc29uJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5kYXRlLnRvLWlzby1zdHJpbmcnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LmRhdGUudG8tc3RyaW5nJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5kYXRlLnRvLXByaW1pdGl2ZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuaXMtYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LmFycmF5LmZyb20nKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LmFycmF5Lm9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5hcnJheS5qb2luJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5hcnJheS5zbGljZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuc29ydCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuZm9yLWVhY2gnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LmFycmF5Lm1hcCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuZmlsdGVyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5hcnJheS5zb21lJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5hcnJheS5ldmVyeScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkucmVkdWNlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5hcnJheS5yZWR1Y2UtcmlnaHQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LmFycmF5LmluZGV4LW9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5hcnJheS5sYXN0LWluZGV4LW9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5hcnJheS5jb3B5LXdpdGhpbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuZmlsbCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuZmluZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuZmluZC1pbmRleCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuc3BlY2llcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuYXJyYXkuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZ2V4cC5jb25zdHJ1Y3RvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVnZXhwLmV4ZWMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZ2V4cC50by1zdHJpbmcnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZ2V4cC5mbGFncycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVnZXhwLm1hdGNoJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5yZWdleHAucmVwbGFjZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVnZXhwLnNlYXJjaCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVnZXhwLnNwbGl0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5wcm9taXNlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5tYXAnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnNldCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYud2Vhay1tYXAnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LndlYWstc2V0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi50eXBlZC5hcnJheS1idWZmZXInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnR5cGVkLmRhdGEtdmlldycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYudHlwZWQuaW50OC1hcnJheScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYudHlwZWQudWludDgtYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnR5cGVkLnVpbnQ4LWNsYW1wZWQtYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnR5cGVkLmludDE2LWFycmF5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi50eXBlZC51aW50MTYtYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnR5cGVkLmludDMyLWFycmF5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi50eXBlZC51aW50MzItYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnR5cGVkLmZsb2F0MzItYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnR5cGVkLmZsb2F0NjQtYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZmxlY3QuYXBwbHknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZmxlY3QuY29uc3RydWN0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5yZWZsZWN0LmRlZmluZS1wcm9wZXJ0eScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVmbGVjdC5kZWxldGUtcHJvcGVydHknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZmxlY3QuZW51bWVyYXRlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5yZWZsZWN0LmdldCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVmbGVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZmxlY3QuZ2V0LXByb3RvdHlwZS1vZicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVmbGVjdC5oYXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZmxlY3QuaXMtZXh0ZW5zaWJsZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVmbGVjdC5vd24ta2V5cycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYucmVmbGVjdC5wcmV2ZW50LWV4dGVuc2lvbnMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnJlZmxlY3Quc2V0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzNi5yZWZsZWN0LnNldC1wcm90b3R5cGUtb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vbW9kdWxlcy9fY29yZScpO1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuYXJyYXkuZmxhdC1tYXAnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLkFycmF5LmZsYXRNYXA7XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5hcnJheS5pbmNsdWRlcycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuQXJyYXkuaW5jbHVkZXM7XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5vYmplY3QuZW50cmllcycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LmVudHJpZXM7XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9ycycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5vYmplY3QudmFsdWVzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3QudmFsdWVzO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYucHJvbWlzZScpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcucHJvbWlzZS5maW5hbGx5Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5Qcm9taXNlWydmaW5hbGx5J107XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zdHJpbmcucGFkLWVuZCcpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuU3RyaW5nLnBhZEVuZDtcbiIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM3LnN0cmluZy5wYWQtc3RhcnQnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLlN0cmluZy5wYWRTdGFydDtcbiIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM3LnN0cmluZy50cmltLXJpZ2h0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5TdHJpbmcudHJpbVJpZ2h0O1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuc3RyaW5nLnRyaW0tbGVmdCcpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuU3RyaW5nLnRyaW1MZWZ0O1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX3drcy1leHQnKS5mKCdhc3luY0l0ZXJhdG9yJyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzNy5nbG9iYWwnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vbW9kdWxlcy9fY29yZScpLmdsb2JhbDtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuMTInIH07XG5pZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwiLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuICBhRnVuY3Rpb24oZm4pO1xuICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZm47XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwiLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbnZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkge1xuICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcbiAgdmFyIElTX0dMT0JBTCA9IHR5cGUgJiAkZXhwb3J0Lkc7XG4gIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TO1xuICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuICB2YXIgSVNfQklORCA9IHR5cGUgJiAkZXhwb3J0LkI7XG4gIHZhciBJU19XUkFQID0gdHlwZSAmICRleHBvcnQuVztcbiAgdmFyIGV4cG9ydHMgPSBJU19HTE9CQUwgPyBjb3JlIDogY29yZVtuYW1lXSB8fCAoY29yZVtuYW1lXSA9IHt9KTtcbiAgdmFyIGV4cFByb3RvID0gZXhwb3J0c1tQUk9UT1RZUEVdO1xuICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gZ2xvYmFsIDogSVNfU1RBVElDID8gZ2xvYmFsW25hbWVdIDogKGdsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcbiAgdmFyIGtleSwgb3duLCBvdXQ7XG4gIGlmIChJU19HTE9CQUwpIHNvdXJjZSA9IG5hbWU7XG4gIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG4gICAgaWYgKG93biAmJiBoYXMoZXhwb3J0cywga2V5KSkgY29udGludWU7XG4gICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBwYXNzZWRcbiAgICBvdXQgPSBvd24gPyB0YXJnZXRba2V5XSA6IHNvdXJjZVtrZXldO1xuICAgIC8vIHByZXZlbnQgZ2xvYmFsIHBvbGx1dGlvbiBmb3IgbmFtZXNwYWNlc1xuICAgIGV4cG9ydHNba2V5XSA9IElTX0dMT0JBTCAmJiB0eXBlb2YgdGFyZ2V0W2tleV0gIT0gJ2Z1bmN0aW9uJyA/IHNvdXJjZVtrZXldXG4gICAgLy8gYmluZCB0aW1lcnMgdG8gZ2xvYmFsIGZvciBjYWxsIGZyb20gZXhwb3J0IGNvbnRleHRcbiAgICA6IElTX0JJTkQgJiYgb3duID8gY3R4KG91dCwgZ2xvYmFsKVxuICAgIC8vIHdyYXAgZ2xvYmFsIGNvbnN0cnVjdG9ycyBmb3IgcHJldmVudCBjaGFuZ2UgdGhlbSBpbiBsaWJyYXJ5XG4gICAgOiBJU19XUkFQICYmIHRhcmdldFtrZXldID09IG91dCA/IChmdW5jdGlvbiAoQykge1xuICAgICAgdmFyIEYgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIEMpIHtcbiAgICAgICAgICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBDKCk7XG4gICAgICAgICAgICBjYXNlIDE6IHJldHVybiBuZXcgQyhhKTtcbiAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDKGEsIGIpO1xuICAgICAgICAgIH0gcmV0dXJuIG5ldyBDKGEsIGIsIGMpO1xuICAgICAgICB9IHJldHVybiBDLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgICAgRltQUk9UT1RZUEVdID0gQ1tQUk9UT1RZUEVdO1xuICAgICAgcmV0dXJuIEY7XG4gICAgLy8gbWFrZSBzdGF0aWMgdmVyc2lvbnMgZm9yIHByb3RvdHlwZSBtZXRob2RzXG4gICAgfSkob3V0KSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IGN0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5tZXRob2RzLiVOQU1FJVxuICAgIGlmIChJU19QUk9UTykge1xuICAgICAgKGV4cG9ydHMudmlydHVhbCB8fCAoZXhwb3J0cy52aXJ0dWFsID0ge30pKVtrZXldID0gb3V0O1xuICAgICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLnByb3RvdHlwZS4lTkFNRSVcbiAgICAgIGlmICh0eXBlICYgJGV4cG9ydC5SICYmIGV4cFByb3RvICYmICFleHBQcm90b1trZXldKSBoaWRlKGV4cFByb3RvLCBrZXksIG91dCk7XG4gICAgfVxuICB9XG59O1xuLy8gdHlwZSBiaXRtYXBcbiRleHBvcnQuRiA9IDE7ICAgLy8gZm9yY2VkXG4kZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuJGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWNcbiRleHBvcnQuUCA9IDg7ICAgLy8gcHJvdG9cbiRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuJGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwXG4kZXhwb3J0LlUgPSA2NDsgIC8vIHNhZmVcbiRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxubW9kdWxlLmV4cG9ydHMgPSAkZXhwb3J0O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcbiIsInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xufTtcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBkUChPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwiLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFMpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtZ2xvYmFsXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuRywgeyBnbG9iYWw6IHJlcXVpcmUoJy4vX2dsb2JhbCcpIH0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uIScpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwidmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIG1zZykge1xuICBpZiAodHlwZW9mIGl0ICE9ICdudW1iZXInICYmIGNvZihpdCkgIT0gJ051bWJlcicpIHRocm93IFR5cGVFcnJvcihtc2cpO1xuICByZXR1cm4gK2l0O1xufTtcbiIsIi8vIDIyLjEuMy4zMSBBcnJheS5wcm90b3R5cGVbQEB1bnNjb3BhYmxlc11cbnZhciBVTlNDT1BBQkxFUyA9IHJlcXVpcmUoJy4vX3drcycpKCd1bnNjb3BhYmxlcycpO1xudmFyIEFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG5pZiAoQXJyYXlQcm90b1tVTlNDT1BBQkxFU10gPT0gdW5kZWZpbmVkKSByZXF1aXJlKCcuL19oaWRlJykoQXJyYXlQcm90bywgVU5TQ09QQUJMRVMsIHt9KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICBBcnJheVByb3RvW1VOU0NPUEFCTEVTXVtrZXldID0gdHJ1ZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuIC8vIGBBZHZhbmNlU3RyaW5nSW5kZXhgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYWR2YW5jZXN0cmluZ2luZGV4XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChTLCBpbmRleCwgdW5pY29kZSkge1xuICByZXR1cm4gaW5kZXggKyAodW5pY29kZSA/IGF0KFMsIGluZGV4KS5sZW5ndGggOiAxKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgQ29uc3RydWN0b3IsIG5hbWUsIGZvcmJpZGRlbkZpZWxkKSB7XG4gIGlmICghKGl0IGluc3RhbmNlb2YgQ29uc3RydWN0b3IpIHx8IChmb3JiaWRkZW5GaWVsZCAhPT0gdW5kZWZpbmVkICYmIGZvcmJpZGRlbkZpZWxkIGluIGl0KSkge1xuICAgIHRocm93IFR5cGVFcnJvcihuYW1lICsgJzogaW5jb3JyZWN0IGludm9jYXRpb24hJyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIDIyLjEuMy4zIEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluKHRhcmdldCwgc3RhcnQsIGVuZCA9IHRoaXMubGVuZ3RoKVxuJ3VzZSBzdHJpY3QnO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFtdLmNvcHlXaXRoaW4gfHwgZnVuY3Rpb24gY29weVdpdGhpbih0YXJnZXQgLyogPSAwICovLCBzdGFydCAvKiA9IDAsIGVuZCA9IEBsZW5ndGggKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdCh0aGlzKTtcbiAgdmFyIGxlbiA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgdmFyIHRvID0gdG9BYnNvbHV0ZUluZGV4KHRhcmdldCwgbGVuKTtcbiAgdmFyIGZyb20gPSB0b0Fic29sdXRlSW5kZXgoc3RhcnQsIGxlbik7XG4gIHZhciBlbmQgPSBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZDtcbiAgdmFyIGNvdW50ID0gTWF0aC5taW4oKGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuIDogdG9BYnNvbHV0ZUluZGV4KGVuZCwgbGVuKSkgLSBmcm9tLCBsZW4gLSB0byk7XG4gIHZhciBpbmMgPSAxO1xuICBpZiAoZnJvbSA8IHRvICYmIHRvIDwgZnJvbSArIGNvdW50KSB7XG4gICAgaW5jID0gLTE7XG4gICAgZnJvbSArPSBjb3VudCAtIDE7XG4gICAgdG8gKz0gY291bnQgLSAxO1xuICB9XG4gIHdoaWxlIChjb3VudC0tID4gMCkge1xuICAgIGlmIChmcm9tIGluIE8pIE9bdG9dID0gT1tmcm9tXTtcbiAgICBlbHNlIGRlbGV0ZSBPW3RvXTtcbiAgICB0byArPSBpbmM7XG4gICAgZnJvbSArPSBpbmM7XG4gIH0gcmV0dXJuIE87XG59O1xuIiwiLy8gMjIuMS4zLjYgQXJyYXkucHJvdG90eXBlLmZpbGwodmFsdWUsIHN0YXJ0ID0gMCwgZW5kID0gdGhpcy5sZW5ndGgpXG4ndXNlIHN0cmljdCc7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZpbGwodmFsdWUgLyogLCBzdGFydCA9IDAsIGVuZCA9IEBsZW5ndGggKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdCh0aGlzKTtcbiAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoYUxlbiA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIGxlbmd0aCk7XG4gIHZhciBlbmQgPSBhTGVuID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZDtcbiAgdmFyIGVuZFBvcyA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogdG9BYnNvbHV0ZUluZGV4KGVuZCwgbGVuZ3RoKTtcbiAgd2hpbGUgKGVuZFBvcyA+IGluZGV4KSBPW2luZGV4KytdID0gdmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsIi8vIGZhbHNlIC0+IEFycmF5I2luZGV4T2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwiLy8gMCAtPiBBcnJheSNmb3JFYWNoXG4vLyAxIC0+IEFycmF5I21hcFxuLy8gMiAtPiBBcnJheSNmaWx0ZXJcbi8vIDMgLT4gQXJyYXkjc29tZVxuLy8gNCAtPiBBcnJheSNldmVyeVxuLy8gNSAtPiBBcnJheSNmaW5kXG4vLyA2IC0+IEFycmF5I2ZpbmRJbmRleFxudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGFzYyA9IHJlcXVpcmUoJy4vX2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUWVBFLCAkY3JlYXRlKSB7XG4gIHZhciBJU19NQVAgPSBUWVBFID09IDE7XG4gIHZhciBJU19GSUxURVIgPSBUWVBFID09IDI7XG4gIHZhciBJU19TT01FID0gVFlQRSA9PSAzO1xuICB2YXIgSVNfRVZFUlkgPSBUWVBFID09IDQ7XG4gIHZhciBJU19GSU5EX0lOREVYID0gVFlQRSA9PSA2O1xuICB2YXIgTk9fSE9MRVMgPSBUWVBFID09IDUgfHwgSVNfRklORF9JTkRFWDtcbiAgdmFyIGNyZWF0ZSA9ICRjcmVhdGUgfHwgYXNjO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0KSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCgkdGhpcyk7XG4gICAgdmFyIHNlbGYgPSBJT2JqZWN0KE8pO1xuICAgIHZhciBmID0gY3R4KGNhbGxiYWNrZm4sIHRoYXQsIDMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChzZWxmLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgcmVzdWx0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsLCByZXM7XG4gICAgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChOT19IT0xFUyB8fCBpbmRleCBpbiBzZWxmKSB7XG4gICAgICB2YWwgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlcyA9IGYodmFsLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSByZXN1bHRbaW5kZXhdID0gcmVzOyAgIC8vIG1hcFxuICAgICAgICBlbHNlIGlmIChyZXMpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIHRydWU7ICAgICAgICAgICAgIC8vIHNvbWVcbiAgICAgICAgICBjYXNlIDU6IHJldHVybiB2YWw7ICAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgLy8gZmluZEluZGV4XG4gICAgICAgICAgY2FzZSAyOiByZXN1bHQucHVzaCh2YWwpOyAgICAgICAgLy8gZmlsdGVyXG4gICAgICAgIH0gZWxzZSBpZiAoSVNfRVZFUlkpIHJldHVybiBmYWxzZTsgLy8gZXZlcnlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIElTX0ZJTkRfSU5ERVggPyAtMSA6IElTX1NPTUUgfHwgSVNfRVZFUlkgPyBJU19FVkVSWSA6IHJlc3VsdDtcbiAgfTtcbn07XG4iLCJ2YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0aGF0LCBjYWxsYmFja2ZuLCBhTGVuLCBtZW1vLCBpc1JpZ2h0KSB7XG4gIGFGdW5jdGlvbihjYWxsYmFja2ZuKTtcbiAgdmFyIE8gPSB0b09iamVjdCh0aGF0KTtcbiAgdmFyIHNlbGYgPSBJT2JqZWN0KE8pO1xuICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICB2YXIgaW5kZXggPSBpc1JpZ2h0ID8gbGVuZ3RoIC0gMSA6IDA7XG4gIHZhciBpID0gaXNSaWdodCA/IC0xIDogMTtcbiAgaWYgKGFMZW4gPCAyKSBmb3IgKDs7KSB7XG4gICAgaWYgKGluZGV4IGluIHNlbGYpIHtcbiAgICAgIG1lbW8gPSBzZWxmW2luZGV4XTtcbiAgICAgIGluZGV4ICs9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaW5kZXggKz0gaTtcbiAgICBpZiAoaXNSaWdodCA/IGluZGV4IDwgMCA6IGxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlJyk7XG4gICAgfVxuICB9XG4gIGZvciAoO2lzUmlnaHQgPyBpbmRleCA+PSAwIDogbGVuZ3RoID4gaW5kZXg7IGluZGV4ICs9IGkpIGlmIChpbmRleCBpbiBzZWxmKSB7XG4gICAgbWVtbyA9IGNhbGxiYWNrZm4obWVtbywgc2VsZltpbmRleF0sIGluZGV4LCBPKTtcbiAgfVxuICByZXR1cm4gbWVtbztcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9faXMtYXJyYXknKTtcbnZhciBTUEVDSUVTID0gcmVxdWlyZSgnLi9fd2tzJykoJ3NwZWNpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWwpIHtcbiAgdmFyIEM7XG4gIGlmIChpc0FycmF5KG9yaWdpbmFsKSkge1xuICAgIEMgPSBvcmlnaW5hbC5jb25zdHJ1Y3RvcjtcbiAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgIGlmICh0eXBlb2YgQyA9PSAnZnVuY3Rpb24nICYmIChDID09PSBBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGlzT2JqZWN0KEMpKSB7XG4gICAgICBDID0gQ1tTUEVDSUVTXTtcbiAgICAgIGlmIChDID09PSBudWxsKSBDID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSByZXR1cm4gQyA9PT0gdW5kZWZpbmVkID8gQXJyYXkgOiBDO1xufTtcbiIsIi8vIDkuNC4yLjMgQXJyYXlTcGVjaWVzQ3JlYXRlKG9yaWdpbmFsQXJyYXksIGxlbmd0aClcbnZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuL19hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsLCBsZW5ndGgpIHtcbiAgcmV0dXJuIG5ldyAoc3BlY2llc0NvbnN0cnVjdG9yKG9yaWdpbmFsKSkobGVuZ3RoKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgaW52b2tlID0gcmVxdWlyZSgnLi9faW52b2tlJyk7XG52YXIgYXJyYXlTbGljZSA9IFtdLnNsaWNlO1xudmFyIGZhY3RvcmllcyA9IHt9O1xuXG52YXIgY29uc3RydWN0ID0gZnVuY3Rpb24gKEYsIGxlbiwgYXJncykge1xuICBpZiAoIShsZW4gaW4gZmFjdG9yaWVzKSkge1xuICAgIGZvciAodmFyIG4gPSBbXSwgaSA9IDA7IGkgPCBsZW47IGkrKykgbltpXSA9ICdhWycgKyBpICsgJ10nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICAgIGZhY3Rvcmllc1tsZW5dID0gRnVuY3Rpb24oJ0YsYScsICdyZXR1cm4gbmV3IEYoJyArIG4uam9pbignLCcpICsgJyknKTtcbiAgfSByZXR1cm4gZmFjdG9yaWVzW2xlbl0oRiwgYXJncyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEZ1bmN0aW9uLmJpbmQgfHwgZnVuY3Rpb24gYmluZCh0aGF0IC8qICwgLi4uYXJncyAqLykge1xuICB2YXIgZm4gPSBhRnVuY3Rpb24odGhpcyk7XG4gIHZhciBwYXJ0QXJncyA9IGFycmF5U2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICB2YXIgYm91bmQgPSBmdW5jdGlvbiAoLyogYXJncy4uLiAqLykge1xuICAgIHZhciBhcmdzID0gcGFydEFyZ3MuY29uY2F0KGFycmF5U2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGJvdW5kID8gY29uc3RydWN0KGZuLCBhcmdzLmxlbmd0aCwgYXJncykgOiBpbnZva2UoZm4sIGFyZ3MsIHRoYXQpO1xuICB9O1xuICBpZiAoaXNPYmplY3QoZm4ucHJvdG90eXBlKSkgYm91bmQucHJvdG90eXBlID0gZm4ucHJvdG90eXBlO1xuICByZXR1cm4gYm91bmQ7XG59O1xuIiwiLy8gZ2V0dGluZyB0YWcgZnJvbSAxOS4xLjMuNiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbnZhciBUQUcgPSByZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKTtcbi8vIEVTMyB3cm9uZyBoZXJlXG52YXIgQVJHID0gY29mKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA9PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCBULCBCO1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAoVCA9IHRyeUdldChPID0gT2JqZWN0KGl0KSwgVEFHKSkgPT0gJ3N0cmluZycgPyBUXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBBUkcgPyBjb2YoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAoQiA9IGNvZihPKSkgPT0gJ09iamVjdCcgJiYgdHlwZW9mIE8uY2FsbGVlID09ICdmdW5jdGlvbicgPyAnQXJndW1lbnRzJyA6IEI7XG59O1xuIiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgcmVkZWZpbmVBbGwgPSByZXF1aXJlKCcuL19yZWRlZmluZS1hbGwnKTtcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi9fYW4taW5zdGFuY2UnKTtcbnZhciBmb3JPZiA9IHJlcXVpcmUoJy4vX2Zvci1vZicpO1xudmFyICRpdGVyRGVmaW5lID0gcmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKTtcbnZhciBzdGVwID0gcmVxdWlyZSgnLi9faXRlci1zdGVwJyk7XG52YXIgc2V0U3BlY2llcyA9IHJlcXVpcmUoJy4vX3NldC1zcGVjaWVzJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpO1xudmFyIGZhc3RLZXkgPSByZXF1aXJlKCcuL19tZXRhJykuZmFzdEtleTtcbnZhciB2YWxpZGF0ZSA9IHJlcXVpcmUoJy4vX3ZhbGlkYXRlLWNvbGxlY3Rpb24nKTtcbnZhciBTSVpFID0gREVTQ1JJUFRPUlMgPyAnX3MnIDogJ3NpemUnO1xuXG52YXIgZ2V0RW50cnkgPSBmdW5jdGlvbiAodGhhdCwga2V5KSB7XG4gIC8vIGZhc3QgY2FzZVxuICB2YXIgaW5kZXggPSBmYXN0S2V5KGtleSk7XG4gIHZhciBlbnRyeTtcbiAgaWYgKGluZGV4ICE9PSAnRicpIHJldHVybiB0aGF0Ll9pW2luZGV4XTtcbiAgLy8gZnJvemVuIG9iamVjdCBjYXNlXG4gIGZvciAoZW50cnkgPSB0aGF0Ll9mOyBlbnRyeTsgZW50cnkgPSBlbnRyeS5uKSB7XG4gICAgaWYgKGVudHJ5LmsgPT0ga2V5KSByZXR1cm4gZW50cnk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBnZXRDb25zdHJ1Y3RvcjogZnVuY3Rpb24gKHdyYXBwZXIsIE5BTUUsIElTX01BUCwgQURERVIpIHtcbiAgICB2YXIgQyA9IHdyYXBwZXIoZnVuY3Rpb24gKHRoYXQsIGl0ZXJhYmxlKSB7XG4gICAgICBhbkluc3RhbmNlKHRoYXQsIEMsIE5BTUUsICdfaScpO1xuICAgICAgdGhhdC5fdCA9IE5BTUU7ICAgICAgICAgLy8gY29sbGVjdGlvbiB0eXBlXG4gICAgICB0aGF0Ll9pID0gY3JlYXRlKG51bGwpOyAvLyBpbmRleFxuICAgICAgdGhhdC5fZiA9IHVuZGVmaW5lZDsgICAgLy8gZmlyc3QgZW50cnlcbiAgICAgIHRoYXQuX2wgPSB1bmRlZmluZWQ7ICAgIC8vIGxhc3QgZW50cnlcbiAgICAgIHRoYXRbU0laRV0gPSAwOyAgICAgICAgIC8vIHNpemVcbiAgICAgIGlmIChpdGVyYWJsZSAhPSB1bmRlZmluZWQpIGZvck9mKGl0ZXJhYmxlLCBJU19NQVAsIHRoYXRbQURERVJdLCB0aGF0KTtcbiAgICB9KTtcbiAgICByZWRlZmluZUFsbChDLnByb3RvdHlwZSwge1xuICAgICAgLy8gMjMuMS4zLjEgTWFwLnByb3RvdHlwZS5jbGVhcigpXG4gICAgICAvLyAyMy4yLjMuMiBTZXQucHJvdG90eXBlLmNsZWFyKClcbiAgICAgIGNsZWFyOiBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgZm9yICh2YXIgdGhhdCA9IHZhbGlkYXRlKHRoaXMsIE5BTUUpLCBkYXRhID0gdGhhdC5faSwgZW50cnkgPSB0aGF0Ll9mOyBlbnRyeTsgZW50cnkgPSBlbnRyeS5uKSB7XG4gICAgICAgICAgZW50cnkuciA9IHRydWU7XG4gICAgICAgICAgaWYgKGVudHJ5LnApIGVudHJ5LnAgPSBlbnRyeS5wLm4gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgZGVsZXRlIGRhdGFbZW50cnkuaV07XG4gICAgICAgIH1cbiAgICAgICAgdGhhdC5fZiA9IHRoYXQuX2wgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoYXRbU0laRV0gPSAwO1xuICAgICAgfSxcbiAgICAgIC8vIDIzLjEuMy4zIE1hcC5wcm90b3R5cGUuZGVsZXRlKGtleSlcbiAgICAgIC8vIDIzLjIuMy40IFNldC5wcm90b3R5cGUuZGVsZXRlKHZhbHVlKVxuICAgICAgJ2RlbGV0ZSc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHRoYXQgPSB2YWxpZGF0ZSh0aGlzLCBOQU1FKTtcbiAgICAgICAgdmFyIGVudHJ5ID0gZ2V0RW50cnkodGhhdCwga2V5KTtcbiAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgdmFyIG5leHQgPSBlbnRyeS5uO1xuICAgICAgICAgIHZhciBwcmV2ID0gZW50cnkucDtcbiAgICAgICAgICBkZWxldGUgdGhhdC5faVtlbnRyeS5pXTtcbiAgICAgICAgICBlbnRyeS5yID0gdHJ1ZTtcbiAgICAgICAgICBpZiAocHJldikgcHJldi5uID0gbmV4dDtcbiAgICAgICAgICBpZiAobmV4dCkgbmV4dC5wID0gcHJldjtcbiAgICAgICAgICBpZiAodGhhdC5fZiA9PSBlbnRyeSkgdGhhdC5fZiA9IG5leHQ7XG4gICAgICAgICAgaWYgKHRoYXQuX2wgPT0gZW50cnkpIHRoYXQuX2wgPSBwcmV2O1xuICAgICAgICAgIHRoYXRbU0laRV0tLTtcbiAgICAgICAgfSByZXR1cm4gISFlbnRyeTtcbiAgICAgIH0sXG4gICAgICAvLyAyMy4yLjMuNiBTZXQucHJvdG90eXBlLmZvckVhY2goY2FsbGJhY2tmbiwgdGhpc0FyZyA9IHVuZGVmaW5lZClcbiAgICAgIC8vIDIzLjEuMy41IE1hcC5wcm90b3R5cGUuZm9yRWFjaChjYWxsYmFja2ZuLCB0aGlzQXJnID0gdW5kZWZpbmVkKVxuICAgICAgZm9yRWFjaDogZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFja2ZuIC8qICwgdGhhdCA9IHVuZGVmaW5lZCAqLykge1xuICAgICAgICB2YWxpZGF0ZSh0aGlzLCBOQU1FKTtcbiAgICAgICAgdmFyIGYgPSBjdHgoY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIDMpO1xuICAgICAgICB2YXIgZW50cnk7XG4gICAgICAgIHdoaWxlIChlbnRyeSA9IGVudHJ5ID8gZW50cnkubiA6IHRoaXMuX2YpIHtcbiAgICAgICAgICBmKGVudHJ5LnYsIGVudHJ5LmssIHRoaXMpO1xuICAgICAgICAgIC8vIHJldmVydCB0byB0aGUgbGFzdCBleGlzdGluZyBlbnRyeVxuICAgICAgICAgIHdoaWxlIChlbnRyeSAmJiBlbnRyeS5yKSBlbnRyeSA9IGVudHJ5LnA7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyAyMy4xLjMuNyBNYXAucHJvdG90eXBlLmhhcyhrZXkpXG4gICAgICAvLyAyMy4yLjMuNyBTZXQucHJvdG90eXBlLmhhcyh2YWx1ZSlcbiAgICAgIGhhczogZnVuY3Rpb24gaGFzKGtleSkge1xuICAgICAgICByZXR1cm4gISFnZXRFbnRyeSh2YWxpZGF0ZSh0aGlzLCBOQU1FKSwga2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoREVTQ1JJUFRPUlMpIGRQKEMucHJvdG90eXBlLCAnc2l6ZScsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUodGhpcywgTkFNRSlbU0laRV07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIEM7XG4gIH0sXG4gIGRlZjogZnVuY3Rpb24gKHRoYXQsIGtleSwgdmFsdWUpIHtcbiAgICB2YXIgZW50cnkgPSBnZXRFbnRyeSh0aGF0LCBrZXkpO1xuICAgIHZhciBwcmV2LCBpbmRleDtcbiAgICAvLyBjaGFuZ2UgZXhpc3RpbmcgZW50cnlcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgIGVudHJ5LnYgPSB2YWx1ZTtcbiAgICAvLyBjcmVhdGUgbmV3IGVudHJ5XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoYXQuX2wgPSBlbnRyeSA9IHtcbiAgICAgICAgaTogaW5kZXggPSBmYXN0S2V5KGtleSwgdHJ1ZSksIC8vIDwtIGluZGV4XG4gICAgICAgIGs6IGtleSwgICAgICAgICAgICAgICAgICAgICAgICAvLyA8LSBrZXlcbiAgICAgICAgdjogdmFsdWUsICAgICAgICAgICAgICAgICAgICAgIC8vIDwtIHZhbHVlXG4gICAgICAgIHA6IHByZXYgPSB0aGF0Ll9sLCAgICAgICAgICAgICAvLyA8LSBwcmV2aW91cyBlbnRyeVxuICAgICAgICBuOiB1bmRlZmluZWQsICAgICAgICAgICAgICAgICAgLy8gPC0gbmV4dCBlbnRyeVxuICAgICAgICByOiBmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgLy8gPC0gcmVtb3ZlZFxuICAgICAgfTtcbiAgICAgIGlmICghdGhhdC5fZikgdGhhdC5fZiA9IGVudHJ5O1xuICAgICAgaWYgKHByZXYpIHByZXYubiA9IGVudHJ5O1xuICAgICAgdGhhdFtTSVpFXSsrO1xuICAgICAgLy8gYWRkIHRvIGluZGV4XG4gICAgICBpZiAoaW5kZXggIT09ICdGJykgdGhhdC5faVtpbmRleF0gPSBlbnRyeTtcbiAgICB9IHJldHVybiB0aGF0O1xuICB9LFxuICBnZXRFbnRyeTogZ2V0RW50cnksXG4gIHNldFN0cm9uZzogZnVuY3Rpb24gKEMsIE5BTUUsIElTX01BUCkge1xuICAgIC8vIGFkZCAua2V5cywgLnZhbHVlcywgLmVudHJpZXMsIFtAQGl0ZXJhdG9yXVxuICAgIC8vIDIzLjEuMy40LCAyMy4xLjMuOCwgMjMuMS4zLjExLCAyMy4xLjMuMTIsIDIzLjIuMy41LCAyMy4yLjMuOCwgMjMuMi4zLjEwLCAyMy4yLjMuMTFcbiAgICAkaXRlckRlZmluZShDLCBOQU1FLCBmdW5jdGlvbiAoaXRlcmF0ZWQsIGtpbmQpIHtcbiAgICAgIHRoaXMuX3QgPSB2YWxpZGF0ZShpdGVyYXRlZCwgTkFNRSk7IC8vIHRhcmdldFxuICAgICAgdGhpcy5fayA9IGtpbmQ7ICAgICAgICAgICAgICAgICAgICAgLy8ga2luZFxuICAgICAgdGhpcy5fbCA9IHVuZGVmaW5lZDsgICAgICAgICAgICAgICAgLy8gcHJldmlvdXNcbiAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICB2YXIga2luZCA9IHRoYXQuX2s7XG4gICAgICB2YXIgZW50cnkgPSB0aGF0Ll9sO1xuICAgICAgLy8gcmV2ZXJ0IHRvIHRoZSBsYXN0IGV4aXN0aW5nIGVudHJ5XG4gICAgICB3aGlsZSAoZW50cnkgJiYgZW50cnkucikgZW50cnkgPSBlbnRyeS5wO1xuICAgICAgLy8gZ2V0IG5leHQgZW50cnlcbiAgICAgIGlmICghdGhhdC5fdCB8fCAhKHRoYXQuX2wgPSBlbnRyeSA9IGVudHJ5ID8gZW50cnkubiA6IHRoYXQuX3QuX2YpKSB7XG4gICAgICAgIC8vIG9yIGZpbmlzaCB0aGUgaXRlcmF0aW9uXG4gICAgICAgIHRoYXQuX3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBzdGVwKDEpO1xuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIHN0ZXAgYnkga2luZFxuICAgICAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4gc3RlcCgwLCBlbnRyeS5rKTtcbiAgICAgIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4gc3RlcCgwLCBlbnRyeS52KTtcbiAgICAgIHJldHVybiBzdGVwKDAsIFtlbnRyeS5rLCBlbnRyeS52XSk7XG4gICAgfSwgSVNfTUFQID8gJ2VudHJpZXMnIDogJ3ZhbHVlcycsICFJU19NQVAsIHRydWUpO1xuXG4gICAgLy8gYWRkIFtAQHNwZWNpZXNdLCAyMy4xLjIuMiwgMjMuMi4yLjJcbiAgICBzZXRTcGVjaWVzKE5BTUUpO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHJlZGVmaW5lQWxsID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUtYWxsJyk7XG52YXIgZ2V0V2VhayA9IHJlcXVpcmUoJy4vX21ldGEnKS5nZXRXZWFrO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi9fYW4taW5zdGFuY2UnKTtcbnZhciBmb3JPZiA9IHJlcXVpcmUoJy4vX2Zvci1vZicpO1xudmFyIGNyZWF0ZUFycmF5TWV0aG9kID0gcmVxdWlyZSgnLi9fYXJyYXktbWV0aG9kcycpO1xudmFyICRoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciB2YWxpZGF0ZSA9IHJlcXVpcmUoJy4vX3ZhbGlkYXRlLWNvbGxlY3Rpb24nKTtcbnZhciBhcnJheUZpbmQgPSBjcmVhdGVBcnJheU1ldGhvZCg1KTtcbnZhciBhcnJheUZpbmRJbmRleCA9IGNyZWF0ZUFycmF5TWV0aG9kKDYpO1xudmFyIGlkID0gMDtcblxuLy8gZmFsbGJhY2sgZm9yIHVuY2F1Z2h0IGZyb3plbiBrZXlzXG52YXIgdW5jYXVnaHRGcm96ZW5TdG9yZSA9IGZ1bmN0aW9uICh0aGF0KSB7XG4gIHJldHVybiB0aGF0Ll9sIHx8ICh0aGF0Ll9sID0gbmV3IFVuY2F1Z2h0RnJvemVuU3RvcmUoKSk7XG59O1xudmFyIFVuY2F1Z2h0RnJvemVuU3RvcmUgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuYSA9IFtdO1xufTtcbnZhciBmaW5kVW5jYXVnaHRGcm96ZW4gPSBmdW5jdGlvbiAoc3RvcmUsIGtleSkge1xuICByZXR1cm4gYXJyYXlGaW5kKHN0b3JlLmEsIGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBpdFswXSA9PT0ga2V5O1xuICB9KTtcbn07XG5VbmNhdWdodEZyb3plblN0b3JlLnByb3RvdHlwZSA9IHtcbiAgZ2V0OiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIGVudHJ5ID0gZmluZFVuY2F1Z2h0RnJvemVuKHRoaXMsIGtleSk7XG4gICAgaWYgKGVudHJ5KSByZXR1cm4gZW50cnlbMV07XG4gIH0sXG4gIGhhczogZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiAhIWZpbmRVbmNhdWdodEZyb3plbih0aGlzLCBrZXkpO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgdmFyIGVudHJ5ID0gZmluZFVuY2F1Z2h0RnJvemVuKHRoaXMsIGtleSk7XG4gICAgaWYgKGVudHJ5KSBlbnRyeVsxXSA9IHZhbHVlO1xuICAgIGVsc2UgdGhpcy5hLnB1c2goW2tleSwgdmFsdWVdKTtcbiAgfSxcbiAgJ2RlbGV0ZSc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB2YXIgaW5kZXggPSBhcnJheUZpbmRJbmRleCh0aGlzLmEsIGZ1bmN0aW9uIChpdCkge1xuICAgICAgcmV0dXJuIGl0WzBdID09PSBrZXk7XG4gICAgfSk7XG4gICAgaWYgKH5pbmRleCkgdGhpcy5hLnNwbGljZShpbmRleCwgMSk7XG4gICAgcmV0dXJuICEhfmluZGV4O1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ2V0Q29uc3RydWN0b3I6IGZ1bmN0aW9uICh3cmFwcGVyLCBOQU1FLCBJU19NQVAsIEFEREVSKSB7XG4gICAgdmFyIEMgPSB3cmFwcGVyKGZ1bmN0aW9uICh0aGF0LCBpdGVyYWJsZSkge1xuICAgICAgYW5JbnN0YW5jZSh0aGF0LCBDLCBOQU1FLCAnX2knKTtcbiAgICAgIHRoYXQuX3QgPSBOQU1FOyAgICAgIC8vIGNvbGxlY3Rpb24gdHlwZVxuICAgICAgdGhhdC5faSA9IGlkKys7ICAgICAgLy8gY29sbGVjdGlvbiBpZFxuICAgICAgdGhhdC5fbCA9IHVuZGVmaW5lZDsgLy8gbGVhayBzdG9yZSBmb3IgdW5jYXVnaHQgZnJvemVuIG9iamVjdHNcbiAgICAgIGlmIChpdGVyYWJsZSAhPSB1bmRlZmluZWQpIGZvck9mKGl0ZXJhYmxlLCBJU19NQVAsIHRoYXRbQURERVJdLCB0aGF0KTtcbiAgICB9KTtcbiAgICByZWRlZmluZUFsbChDLnByb3RvdHlwZSwge1xuICAgICAgLy8gMjMuMy4zLjIgV2Vha01hcC5wcm90b3R5cGUuZGVsZXRlKGtleSlcbiAgICAgIC8vIDIzLjQuMy4zIFdlYWtTZXQucHJvdG90eXBlLmRlbGV0ZSh2YWx1ZSlcbiAgICAgICdkZWxldGUnOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGlmICghaXNPYmplY3Qoa2V5KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICB2YXIgZGF0YSA9IGdldFdlYWsoa2V5KTtcbiAgICAgICAgaWYgKGRhdGEgPT09IHRydWUpIHJldHVybiB1bmNhdWdodEZyb3plblN0b3JlKHZhbGlkYXRlKHRoaXMsIE5BTUUpKVsnZGVsZXRlJ10oa2V5KTtcbiAgICAgICAgcmV0dXJuIGRhdGEgJiYgJGhhcyhkYXRhLCB0aGlzLl9pKSAmJiBkZWxldGUgZGF0YVt0aGlzLl9pXTtcbiAgICAgIH0sXG4gICAgICAvLyAyMy4zLjMuNCBXZWFrTWFwLnByb3RvdHlwZS5oYXMoa2V5KVxuICAgICAgLy8gMjMuNC4zLjQgV2Vha1NldC5wcm90b3R5cGUuaGFzKHZhbHVlKVxuICAgICAgaGFzOiBmdW5jdGlvbiBoYXMoa2V5KSB7XG4gICAgICAgIGlmICghaXNPYmplY3Qoa2V5KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICB2YXIgZGF0YSA9IGdldFdlYWsoa2V5KTtcbiAgICAgICAgaWYgKGRhdGEgPT09IHRydWUpIHJldHVybiB1bmNhdWdodEZyb3plblN0b3JlKHZhbGlkYXRlKHRoaXMsIE5BTUUpKS5oYXMoa2V5KTtcbiAgICAgICAgcmV0dXJuIGRhdGEgJiYgJGhhcyhkYXRhLCB0aGlzLl9pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gQztcbiAgfSxcbiAgZGVmOiBmdW5jdGlvbiAodGhhdCwga2V5LCB2YWx1ZSkge1xuICAgIHZhciBkYXRhID0gZ2V0V2Vhayhhbk9iamVjdChrZXkpLCB0cnVlKTtcbiAgICBpZiAoZGF0YSA9PT0gdHJ1ZSkgdW5jYXVnaHRGcm96ZW5TdG9yZSh0aGF0KS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgZWxzZSBkYXRhW3RoYXQuX2ldID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoYXQ7XG4gIH0sXG4gIHVmc3RvcmU6IHVuY2F1Z2h0RnJvemVuU3RvcmVcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciByZWRlZmluZUFsbCA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lLWFsbCcpO1xudmFyIG1ldGEgPSByZXF1aXJlKCcuL19tZXRhJyk7XG52YXIgZm9yT2YgPSByZXF1aXJlKCcuL19mb3Itb2YnKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi9fYW4taW5zdGFuY2UnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciAkaXRlckRldGVjdCA9IHJlcXVpcmUoJy4vX2l0ZXItZGV0ZWN0Jyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIGluaGVyaXRJZlJlcXVpcmVkID0gcmVxdWlyZSgnLi9faW5oZXJpdC1pZi1yZXF1aXJlZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChOQU1FLCB3cmFwcGVyLCBtZXRob2RzLCBjb21tb24sIElTX01BUCwgSVNfV0VBSykge1xuICB2YXIgQmFzZSA9IGdsb2JhbFtOQU1FXTtcbiAgdmFyIEMgPSBCYXNlO1xuICB2YXIgQURERVIgPSBJU19NQVAgPyAnc2V0JyA6ICdhZGQnO1xuICB2YXIgcHJvdG8gPSBDICYmIEMucHJvdG90eXBlO1xuICB2YXIgTyA9IHt9O1xuICB2YXIgZml4TWV0aG9kID0gZnVuY3Rpb24gKEtFWSkge1xuICAgIHZhciBmbiA9IHByb3RvW0tFWV07XG4gICAgcmVkZWZpbmUocHJvdG8sIEtFWSxcbiAgICAgIEtFWSA9PSAnZGVsZXRlJyA/IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgIHJldHVybiBJU19XRUFLICYmICFpc09iamVjdChhKSA/IGZhbHNlIDogZm4uY2FsbCh0aGlzLCBhID09PSAwID8gMCA6IGEpO1xuICAgICAgfSA6IEtFWSA9PSAnaGFzJyA/IGZ1bmN0aW9uIGhhcyhhKSB7XG4gICAgICAgIHJldHVybiBJU19XRUFLICYmICFpc09iamVjdChhKSA/IGZhbHNlIDogZm4uY2FsbCh0aGlzLCBhID09PSAwID8gMCA6IGEpO1xuICAgICAgfSA6IEtFWSA9PSAnZ2V0JyA/IGZ1bmN0aW9uIGdldChhKSB7XG4gICAgICAgIHJldHVybiBJU19XRUFLICYmICFpc09iamVjdChhKSA/IHVuZGVmaW5lZCA6IGZuLmNhbGwodGhpcywgYSA9PT0gMCA/IDAgOiBhKTtcbiAgICAgIH0gOiBLRVkgPT0gJ2FkZCcgPyBmdW5jdGlvbiBhZGQoYSkgeyBmbi5jYWxsKHRoaXMsIGEgPT09IDAgPyAwIDogYSk7IHJldHVybiB0aGlzOyB9XG4gICAgICAgIDogZnVuY3Rpb24gc2V0KGEsIGIpIHsgZm4uY2FsbCh0aGlzLCBhID09PSAwID8gMCA6IGEsIGIpOyByZXR1cm4gdGhpczsgfVxuICAgICk7XG4gIH07XG4gIGlmICh0eXBlb2YgQyAhPSAnZnVuY3Rpb24nIHx8ICEoSVNfV0VBSyB8fCBwcm90by5mb3JFYWNoICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgbmV3IEMoKS5lbnRyaWVzKCkubmV4dCgpO1xuICB9KSkpIHtcbiAgICAvLyBjcmVhdGUgY29sbGVjdGlvbiBjb25zdHJ1Y3RvclxuICAgIEMgPSBjb21tb24uZ2V0Q29uc3RydWN0b3Iod3JhcHBlciwgTkFNRSwgSVNfTUFQLCBBRERFUik7XG4gICAgcmVkZWZpbmVBbGwoQy5wcm90b3R5cGUsIG1ldGhvZHMpO1xuICAgIG1ldGEuTkVFRCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGluc3RhbmNlID0gbmV3IEMoKTtcbiAgICAvLyBlYXJseSBpbXBsZW1lbnRhdGlvbnMgbm90IHN1cHBvcnRzIGNoYWluaW5nXG4gICAgdmFyIEhBU05UX0NIQUlOSU5HID0gaW5zdGFuY2VbQURERVJdKElTX1dFQUsgPyB7fSA6IC0wLCAxKSAhPSBpbnN0YW5jZTtcbiAgICAvLyBWOCB+ICBDaHJvbWl1bSA0MC0gd2Vhay1jb2xsZWN0aW9ucyB0aHJvd3Mgb24gcHJpbWl0aXZlcywgYnV0IHNob3VsZCByZXR1cm4gZmFsc2VcbiAgICB2YXIgVEhST1dTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IGluc3RhbmNlLmhhcygxKTsgfSk7XG4gICAgLy8gbW9zdCBlYXJseSBpbXBsZW1lbnRhdGlvbnMgZG9lc24ndCBzdXBwb3J0cyBpdGVyYWJsZXMsIG1vc3QgbW9kZXJuIC0gbm90IGNsb3NlIGl0IGNvcnJlY3RseVxuICAgIHZhciBBQ0NFUFRfSVRFUkFCTEVTID0gJGl0ZXJEZXRlY3QoZnVuY3Rpb24gKGl0ZXIpIHsgbmV3IEMoaXRlcik7IH0pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ld1xuICAgIC8vIGZvciBlYXJseSBpbXBsZW1lbnRhdGlvbnMgLTAgYW5kICswIG5vdCB0aGUgc2FtZVxuICAgIHZhciBCVUdHWV9aRVJPID0gIUlTX1dFQUsgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgICAgLy8gVjggfiBDaHJvbWl1bSA0Mi0gZmFpbHMgb25seSB3aXRoIDUrIGVsZW1lbnRzXG4gICAgICB2YXIgJGluc3RhbmNlID0gbmV3IEMoKTtcbiAgICAgIHZhciBpbmRleCA9IDU7XG4gICAgICB3aGlsZSAoaW5kZXgtLSkgJGluc3RhbmNlW0FEREVSXShpbmRleCwgaW5kZXgpO1xuICAgICAgcmV0dXJuICEkaW5zdGFuY2UuaGFzKC0wKTtcbiAgICB9KTtcbiAgICBpZiAoIUFDQ0VQVF9JVEVSQUJMRVMpIHtcbiAgICAgIEMgPSB3cmFwcGVyKGZ1bmN0aW9uICh0YXJnZXQsIGl0ZXJhYmxlKSB7XG4gICAgICAgIGFuSW5zdGFuY2UodGFyZ2V0LCBDLCBOQU1FKTtcbiAgICAgICAgdmFyIHRoYXQgPSBpbmhlcml0SWZSZXF1aXJlZChuZXcgQmFzZSgpLCB0YXJnZXQsIEMpO1xuICAgICAgICBpZiAoaXRlcmFibGUgIT0gdW5kZWZpbmVkKSBmb3JPZihpdGVyYWJsZSwgSVNfTUFQLCB0aGF0W0FEREVSXSwgdGhhdCk7XG4gICAgICAgIHJldHVybiB0aGF0O1xuICAgICAgfSk7XG4gICAgICBDLnByb3RvdHlwZSA9IHByb3RvO1xuICAgICAgcHJvdG8uY29uc3RydWN0b3IgPSBDO1xuICAgIH1cbiAgICBpZiAoVEhST1dTX09OX1BSSU1JVElWRVMgfHwgQlVHR1lfWkVSTykge1xuICAgICAgZml4TWV0aG9kKCdkZWxldGUnKTtcbiAgICAgIGZpeE1ldGhvZCgnaGFzJyk7XG4gICAgICBJU19NQVAgJiYgZml4TWV0aG9kKCdnZXQnKTtcbiAgICB9XG4gICAgaWYgKEJVR0dZX1pFUk8gfHwgSEFTTlRfQ0hBSU5JTkcpIGZpeE1ldGhvZChBRERFUik7XG4gICAgLy8gd2VhayBjb2xsZWN0aW9ucyBzaG91bGQgbm90IGNvbnRhaW5zIC5jbGVhciBtZXRob2RcbiAgICBpZiAoSVNfV0VBSyAmJiBwcm90by5jbGVhcikgZGVsZXRlIHByb3RvLmNsZWFyO1xuICB9XG5cbiAgc2V0VG9TdHJpbmdUYWcoQywgTkFNRSk7XG5cbiAgT1tOQU1FXSA9IEM7XG4gICRleHBvcnQoJGV4cG9ydC5HICsgJGV4cG9ydC5XICsgJGV4cG9ydC5GICogKEMgIT0gQmFzZSksIE8pO1xuXG4gIGlmICghSVNfV0VBSykgY29tbW9uLnNldFN0cm9uZyhDLCBOQU1FLCBJU19NQVApO1xuXG4gIHJldHVybiBDO1xufTtcbiIsInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuMTInIH07XG5pZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwgaW5kZXgsIHZhbHVlKSB7XG4gIGlmIChpbmRleCBpbiBvYmplY3QpICRkZWZpbmVQcm9wZXJ0eS5mKG9iamVjdCwgaW5kZXgsIGNyZWF0ZURlc2MoMCwgdmFsdWUpKTtcbiAgZWxzZSBvYmplY3RbaW5kZXhdID0gdmFsdWU7XG59O1xuIiwiLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuICBhRnVuY3Rpb24oZm4pO1xuICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZm47XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gMjAuMy40LjM2IC8gMTUuOS41LjQzIERhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nKClcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgZ2V0VGltZSA9IERhdGUucHJvdG90eXBlLmdldFRpbWU7XG52YXIgJHRvSVNPU3RyaW5nID0gRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmc7XG5cbnZhciBseiA9IGZ1bmN0aW9uIChudW0pIHtcbiAgcmV0dXJuIG51bSA+IDkgPyBudW0gOiAnMCcgKyBudW07XG59O1xuXG4vLyBQaGFudG9tSlMgLyBvbGQgV2ViS2l0IGhhcyBhIGJyb2tlbiBpbXBsZW1lbnRhdGlvbnNcbm1vZHVsZS5leHBvcnRzID0gKGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICR0b0lTT1N0cmluZy5jYWxsKG5ldyBEYXRlKC01ZTEzIC0gMSkpICE9ICcwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVonO1xufSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgJHRvSVNPU3RyaW5nLmNhbGwobmV3IERhdGUoTmFOKSk7XG59KSkgPyBmdW5jdGlvbiB0b0lTT1N0cmluZygpIHtcbiAgaWYgKCFpc0Zpbml0ZShnZXRUaW1lLmNhbGwodGhpcykpKSB0aHJvdyBSYW5nZUVycm9yKCdJbnZhbGlkIHRpbWUgdmFsdWUnKTtcbiAgdmFyIGQgPSB0aGlzO1xuICB2YXIgeSA9IGQuZ2V0VVRDRnVsbFllYXIoKTtcbiAgdmFyIG0gPSBkLmdldFVUQ01pbGxpc2Vjb25kcygpO1xuICB2YXIgcyA9IHkgPCAwID8gJy0nIDogeSA+IDk5OTkgPyAnKycgOiAnJztcbiAgcmV0dXJuIHMgKyAoJzAwMDAwJyArIE1hdGguYWJzKHkpKS5zbGljZShzID8gLTYgOiAtNCkgK1xuICAgICctJyArIGx6KGQuZ2V0VVRDTW9udGgoKSArIDEpICsgJy0nICsgbHooZC5nZXRVVENEYXRlKCkpICtcbiAgICAnVCcgKyBseihkLmdldFVUQ0hvdXJzKCkpICsgJzonICsgbHooZC5nZXRVVENNaW51dGVzKCkpICtcbiAgICAnOicgKyBseihkLmdldFVUQ1NlY29uZHMoKSkgKyAnLicgKyAobSA+IDk5ID8gbSA6ICcwJyArIGx6KG0pKSArICdaJztcbn0gOiAkdG9JU09TdHJpbmc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIE5VTUJFUiA9ICdudW1iZXInO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChoaW50KSB7XG4gIGlmIChoaW50ICE9PSAnc3RyaW5nJyAmJiBoaW50ICE9PSBOVU1CRVIgJiYgaGludCAhPT0gJ2RlZmF1bHQnKSB0aHJvdyBUeXBlRXJyb3IoJ0luY29ycmVjdCBoaW50Jyk7XG4gIHJldHVybiB0b1ByaW1pdGl2ZShhbk9iamVjdCh0aGlzKSwgaGludCAhPSBOVU1CRVIpO1xufTtcbiIsIi8vIDcuMi4xIFJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPT0gdW5kZWZpbmVkKSB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgXCIgKyBpdCk7XG4gIHJldHVybiBpdDtcbn07XG4iLCIvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBpcyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuIiwiLy8gSUUgOC0gZG9uJ3QgZW51bSBidWcga2V5c1xubW9kdWxlLmV4cG9ydHMgPSAoXG4gICdjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5nLHRvU3RyaW5nLHZhbHVlT2YnXG4pLnNwbGl0KCcsJyk7XG4iLCIvLyBhbGwgZW51bWVyYWJsZSBvYmplY3Qga2V5cywgaW5jbHVkZXMgc3ltYm9sc1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIGdPUFMgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpO1xudmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciByZXN1bHQgPSBnZXRLZXlzKGl0KTtcbiAgdmFyIGdldFN5bWJvbHMgPSBnT1BTLmY7XG4gIGlmIChnZXRTeW1ib2xzKSB7XG4gICAgdmFyIHN5bWJvbHMgPSBnZXRTeW1ib2xzKGl0KTtcbiAgICB2YXIgaXNFbnVtID0gcElFLmY7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKHN5bWJvbHMubGVuZ3RoID4gaSkgaWYgKGlzRW51bS5jYWxsKGl0LCBrZXkgPSBzeW1ib2xzW2krK10pKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbnZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkge1xuICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcbiAgdmFyIElTX0dMT0JBTCA9IHR5cGUgJiAkZXhwb3J0Lkc7XG4gIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TO1xuICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuICB2YXIgSVNfQklORCA9IHR5cGUgJiAkZXhwb3J0LkI7XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gfHwgKGdsb2JhbFtuYW1lXSA9IHt9KSA6IChnbG9iYWxbbmFtZV0gfHwge30pW1BST1RPVFlQRV07XG4gIHZhciBleHBvcnRzID0gSVNfR0xPQkFMID8gY29yZSA6IGNvcmVbbmFtZV0gfHwgKGNvcmVbbmFtZV0gPSB7fSk7XG4gIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXSB8fCAoZXhwb3J0c1tQUk9UT1RZUEVdID0ge30pO1xuICB2YXIga2V5LCBvd24sIG91dCwgZXhwO1xuICBpZiAoSVNfR0xPQkFMKSBzb3VyY2UgPSBuYW1lO1xuICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcbiAgICBvd24gPSAhSVNfRk9SQ0VEICYmIHRhcmdldCAmJiB0YXJnZXRba2V5XSAhPT0gdW5kZWZpbmVkO1xuICAgIC8vIGV4cG9ydCBuYXRpdmUgb3IgcGFzc2VkXG4gICAgb3V0ID0gKG93biA/IHRhcmdldCA6IHNvdXJjZSlba2V5XTtcbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIGV4cCA9IElTX0JJTkQgJiYgb3duID8gY3R4KG91dCwgZ2xvYmFsKSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IGN0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuICAgIC8vIGV4dGVuZCBnbG9iYWxcbiAgICBpZiAodGFyZ2V0KSByZWRlZmluZSh0YXJnZXQsIGtleSwgb3V0LCB0eXBlICYgJGV4cG9ydC5VKTtcbiAgICAvLyBleHBvcnRcbiAgICBpZiAoZXhwb3J0c1trZXldICE9IG91dCkgaGlkZShleHBvcnRzLCBrZXksIGV4cCk7XG4gICAgaWYgKElTX1BST1RPICYmIGV4cFByb3RvW2tleV0gIT0gb3V0KSBleHBQcm90b1trZXldID0gb3V0O1xuICB9XG59O1xuZ2xvYmFsLmNvcmUgPSBjb3JlO1xuLy8gdHlwZSBiaXRtYXBcbiRleHBvcnQuRiA9IDE7ICAgLy8gZm9yY2VkXG4kZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuJGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWNcbiRleHBvcnQuUCA9IDg7ICAgLy8gcHJvdG9cbiRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuJGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwXG4kZXhwb3J0LlUgPSA2NDsgIC8vIHNhZmVcbiRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxubW9kdWxlLmV4cG9ydHMgPSAkZXhwb3J0O1xuIiwidmFyIE1BVENIID0gcmVxdWlyZSgnLi9fd2tzJykoJ21hdGNoJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVkpIHtcbiAgdmFyIHJlID0gLy4vO1xuICB0cnkge1xuICAgICcvLi8nW0tFWV0ocmUpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlW01BVENIXSA9IGZhbHNlO1xuICAgICAgcmV0dXJuICEnLy4vJ1tLRVldKHJlKTtcbiAgICB9IGNhdGNoIChmKSB7IC8qIGVtcHR5ICovIH1cbiAgfSByZXR1cm4gdHJ1ZTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuL2VzNi5yZWdleHAuZXhlYycpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xudmFyIHdrcyA9IHJlcXVpcmUoJy4vX3drcycpO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYycpO1xuXG52YXIgU1BFQ0lFUyA9IHdrcygnc3BlY2llcycpO1xuXG52YXIgUkVQTEFDRV9TVVBQT1JUU19OQU1FRF9HUk9VUFMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyAjcmVwbGFjZSBuZWVkcyBidWlsdC1pbiBzdXBwb3J0IGZvciBuYW1lZCBncm91cHMuXG4gIC8vICNtYXRjaCB3b3JrcyBmaW5lIGJlY2F1c2UgaXQganVzdCByZXR1cm4gdGhlIGV4ZWMgcmVzdWx0cywgZXZlbiBpZiBpdCBoYXNcbiAgLy8gYSBcImdyb3BzXCIgcHJvcGVydHkuXG4gIHZhciByZSA9IC8uLztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgcmVzdWx0Lmdyb3VwcyA9IHsgYTogJzcnIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgcmV0dXJuICcnLnJlcGxhY2UocmUsICckPGE+JykgIT09ICc3Jztcbn0pO1xuXG52YXIgU1BMSVRfV09SS1NfV0lUSF9PVkVSV1JJVFRFTl9FWEVDID0gKGZ1bmN0aW9uICgpIHtcbiAgLy8gQ2hyb21lIDUxIGhhcyBhIGJ1Z2d5IFwic3BsaXRcIiBpbXBsZW1lbnRhdGlvbiB3aGVuIFJlZ0V4cCNleGVjICE9PSBuYXRpdmVFeGVjXG4gIHZhciByZSA9IC8oPzopLztcbiAgdmFyIG9yaWdpbmFsRXhlYyA9IHJlLmV4ZWM7XG4gIHJlLmV4ZWMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBvcmlnaW5hbEV4ZWMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfTtcbiAgdmFyIHJlc3VsdCA9ICdhYicuc3BsaXQocmUpO1xuICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA9PT0gMiAmJiByZXN1bHRbMF0gPT09ICdhJyAmJiByZXN1bHRbMV0gPT09ICdiJztcbn0pKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEtFWSwgbGVuZ3RoLCBleGVjKSB7XG4gIHZhciBTWU1CT0wgPSB3a3MoS0VZKTtcblxuICB2YXIgREVMRUdBVEVTX1RPX1NZTUJPTCA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3RyaW5nIG1ldGhvZHMgY2FsbCBzeW1ib2wtbmFtZWQgUmVnRXAgbWV0aG9kc1xuICAgIHZhciBPID0ge307XG4gICAgT1tTWU1CT0xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfTtcbiAgICByZXR1cm4gJydbS0VZXShPKSAhPSA3O1xuICB9KTtcblxuICB2YXIgREVMRUdBVEVTX1RPX0VYRUMgPSBERUxFR0FURVNfVE9fU1lNQk9MID8gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBTeW1ib2wtbmFtZWQgUmVnRXhwIG1ldGhvZHMgY2FsbCAuZXhlY1xuICAgIHZhciBleGVjQ2FsbGVkID0gZmFsc2U7XG4gICAgdmFyIHJlID0gL2EvO1xuICAgIHJlLmV4ZWMgPSBmdW5jdGlvbiAoKSB7IGV4ZWNDYWxsZWQgPSB0cnVlOyByZXR1cm4gbnVsbDsgfTtcbiAgICBpZiAoS0VZID09PSAnc3BsaXQnKSB7XG4gICAgICAvLyBSZWdFeHBbQEBzcGxpdF0gZG9lc24ndCBjYWxsIHRoZSByZWdleCdzIGV4ZWMgbWV0aG9kLCBidXQgZmlyc3QgY3JlYXRlc1xuICAgICAgLy8gYSBuZXcgb25lLiBXZSBuZWVkIHRvIHJldHVybiB0aGUgcGF0Y2hlZCByZWdleCB3aGVuIGNyZWF0aW5nIHRoZSBuZXcgb25lLlxuICAgICAgcmUuY29uc3RydWN0b3IgPSB7fTtcbiAgICAgIHJlLmNvbnN0cnVjdG9yW1NQRUNJRVNdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gcmU7IH07XG4gICAgfVxuICAgIHJlW1NZTUJPTF0oJycpO1xuICAgIHJldHVybiAhZXhlY0NhbGxlZDtcbiAgfSkgOiB1bmRlZmluZWQ7XG5cbiAgaWYgKFxuICAgICFERUxFR0FURVNfVE9fU1lNQk9MIHx8XG4gICAgIURFTEVHQVRFU19UT19FWEVDIHx8XG4gICAgKEtFWSA9PT0gJ3JlcGxhY2UnICYmICFSRVBMQUNFX1NVUFBPUlRTX05BTUVEX0dST1VQUykgfHxcbiAgICAoS0VZID09PSAnc3BsaXQnICYmICFTUExJVF9XT1JLU19XSVRIX09WRVJXUklUVEVOX0VYRUMpXG4gICkge1xuICAgIHZhciBuYXRpdmVSZWdFeHBNZXRob2QgPSAvLi9bU1lNQk9MXTtcbiAgICB2YXIgZm5zID0gZXhlYyhcbiAgICAgIGRlZmluZWQsXG4gICAgICBTWU1CT0wsXG4gICAgICAnJ1tLRVldLFxuICAgICAgZnVuY3Rpb24gbWF5YmVDYWxsTmF0aXZlKG5hdGl2ZU1ldGhvZCwgcmVnZXhwLCBzdHIsIGFyZzIsIGZvcmNlU3RyaW5nTWV0aG9kKSB7XG4gICAgICAgIGlmIChyZWdleHAuZXhlYyA9PT0gcmVnZXhwRXhlYykge1xuICAgICAgICAgIGlmIChERUxFR0FURVNfVE9fU1lNQk9MICYmICFmb3JjZVN0cmluZ01ldGhvZCkge1xuICAgICAgICAgICAgLy8gVGhlIG5hdGl2ZSBTdHJpbmcgbWV0aG9kIGFscmVhZHkgZGVsZWdhdGVzIHRvIEBAbWV0aG9kICh0aGlzXG4gICAgICAgICAgICAvLyBwb2x5ZmlsbGVkIGZ1bmN0aW9uKSwgbGVhc2luZyB0byBpbmZpbml0ZSByZWN1cnNpb24uXG4gICAgICAgICAgICAvLyBXZSBhdm9pZCBpdCBieSBkaXJlY3RseSBjYWxsaW5nIHRoZSBuYXRpdmUgQEBtZXRob2QgbWV0aG9kLlxuICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG5hdGl2ZVJlZ0V4cE1ldGhvZC5jYWxsKHJlZ2V4cCwgc3RyLCBhcmcyKSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbmF0aXZlTWV0aG9kLmNhbGwoc3RyLCByZWdleHAsIGFyZzIpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UgfTtcbiAgICAgIH1cbiAgICApO1xuICAgIHZhciBzdHJmbiA9IGZuc1swXTtcbiAgICB2YXIgcnhmbiA9IGZuc1sxXTtcblxuICAgIHJlZGVmaW5lKFN0cmluZy5wcm90b3R5cGUsIEtFWSwgc3RyZm4pO1xuICAgIGhpZGUoUmVnRXhwLnByb3RvdHlwZSwgU1lNQk9MLCBsZW5ndGggPT0gMlxuICAgICAgLy8gMjEuMi41LjggUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdKHN0cmluZywgcmVwbGFjZVZhbHVlKVxuICAgICAgLy8gMjEuMi41LjExIFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF0oc3RyaW5nLCBsaW1pdClcbiAgICAgID8gZnVuY3Rpb24gKHN0cmluZywgYXJnKSB7IHJldHVybiByeGZuLmNhbGwoc3RyaW5nLCB0aGlzLCBhcmcpOyB9XG4gICAgICAvLyAyMS4yLjUuNiBSZWdFeHAucHJvdG90eXBlW0BAbWF0Y2hdKHN0cmluZylcbiAgICAgIC8vIDIxLjIuNS45IFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdKHN0cmluZylcbiAgICAgIDogZnVuY3Rpb24gKHN0cmluZykgeyByZXR1cm4gcnhmbi5jYWxsKHN0cmluZywgdGhpcyk7IH1cbiAgICApO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gMjEuMi41LjMgZ2V0IFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3NcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB0aGF0ID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgaWYgKHRoYXQuZ2xvYmFsKSByZXN1bHQgKz0gJ2cnO1xuICBpZiAodGhhdC5pZ25vcmVDYXNlKSByZXN1bHQgKz0gJ2knO1xuICBpZiAodGhhdC5tdWx0aWxpbmUpIHJlc3VsdCArPSAnbSc7XG4gIGlmICh0aGF0LnVuaWNvZGUpIHJlc3VsdCArPSAndSc7XG4gIGlmICh0aGF0LnN0aWNreSkgcmVzdWx0ICs9ICd5JztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL3Byb3Bvc2FsLWZsYXRNYXAvI3NlYy1GbGF0dGVuSW50b0FycmF5XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vX2lzLWFycmF5Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIElTX0NPTkNBVF9TUFJFQURBQkxFID0gcmVxdWlyZSgnLi9fd2tzJykoJ2lzQ29uY2F0U3ByZWFkYWJsZScpO1xuXG5mdW5jdGlvbiBmbGF0dGVuSW50b0FycmF5KHRhcmdldCwgb3JpZ2luYWwsIHNvdXJjZSwgc291cmNlTGVuLCBzdGFydCwgZGVwdGgsIG1hcHBlciwgdGhpc0FyZykge1xuICB2YXIgdGFyZ2V0SW5kZXggPSBzdGFydDtcbiAgdmFyIHNvdXJjZUluZGV4ID0gMDtcbiAgdmFyIG1hcEZuID0gbWFwcGVyID8gY3R4KG1hcHBlciwgdGhpc0FyZywgMykgOiBmYWxzZTtcbiAgdmFyIGVsZW1lbnQsIHNwcmVhZGFibGU7XG5cbiAgd2hpbGUgKHNvdXJjZUluZGV4IDwgc291cmNlTGVuKSB7XG4gICAgaWYgKHNvdXJjZUluZGV4IGluIHNvdXJjZSkge1xuICAgICAgZWxlbWVudCA9IG1hcEZuID8gbWFwRm4oc291cmNlW3NvdXJjZUluZGV4XSwgc291cmNlSW5kZXgsIG9yaWdpbmFsKSA6IHNvdXJjZVtzb3VyY2VJbmRleF07XG5cbiAgICAgIHNwcmVhZGFibGUgPSBmYWxzZTtcbiAgICAgIGlmIChpc09iamVjdChlbGVtZW50KSkge1xuICAgICAgICBzcHJlYWRhYmxlID0gZWxlbWVudFtJU19DT05DQVRfU1BSRUFEQUJMRV07XG4gICAgICAgIHNwcmVhZGFibGUgPSBzcHJlYWRhYmxlICE9PSB1bmRlZmluZWQgPyAhIXNwcmVhZGFibGUgOiBpc0FycmF5KGVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3ByZWFkYWJsZSAmJiBkZXB0aCA+IDApIHtcbiAgICAgICAgdGFyZ2V0SW5kZXggPSBmbGF0dGVuSW50b0FycmF5KHRhcmdldCwgb3JpZ2luYWwsIGVsZW1lbnQsIHRvTGVuZ3RoKGVsZW1lbnQubGVuZ3RoKSwgdGFyZ2V0SW5kZXgsIGRlcHRoIC0gMSkgLSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRhcmdldEluZGV4ID49IDB4MWZmZmZmZmZmZmZmZmYpIHRocm93IFR5cGVFcnJvcigpO1xuICAgICAgICB0YXJnZXRbdGFyZ2V0SW5kZXhdID0gZWxlbWVudDtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0SW5kZXgrKztcbiAgICB9XG4gICAgc291cmNlSW5kZXgrKztcbiAgfVxuICByZXR1cm4gdGFyZ2V0SW5kZXg7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmxhdHRlbkludG9BcnJheTtcbiIsInZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi9faXRlci1jYWxsJyk7XG52YXIgaXNBcnJheUl0ZXIgPSByZXF1aXJlKCcuL19pcy1hcnJheS1pdGVyJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGdldEl0ZXJGbiA9IHJlcXVpcmUoJy4vY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG52YXIgQlJFQUsgPSB7fTtcbnZhciBSRVRVUk4gPSB7fTtcbnZhciBleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmFibGUsIGVudHJpZXMsIGZuLCB0aGF0LCBJVEVSQVRPUikge1xuICB2YXIgaXRlckZuID0gSVRFUkFUT1IgPyBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyYWJsZTsgfSA6IGdldEl0ZXJGbihpdGVyYWJsZSk7XG4gIHZhciBmID0gY3R4KGZuLCB0aGF0LCBlbnRyaWVzID8gMiA6IDEpO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgbGVuZ3RoLCBzdGVwLCBpdGVyYXRvciwgcmVzdWx0O1xuICBpZiAodHlwZW9mIGl0ZXJGbiAhPSAnZnVuY3Rpb24nKSB0aHJvdyBUeXBlRXJyb3IoaXRlcmFibGUgKyAnIGlzIG5vdCBpdGVyYWJsZSEnKTtcbiAgLy8gZmFzdCBjYXNlIGZvciBhcnJheXMgd2l0aCBkZWZhdWx0IGl0ZXJhdG9yXG4gIGlmIChpc0FycmF5SXRlcihpdGVyRm4pKSBmb3IgKGxlbmd0aCA9IHRvTGVuZ3RoKGl0ZXJhYmxlLmxlbmd0aCk7IGxlbmd0aCA+IGluZGV4OyBpbmRleCsrKSB7XG4gICAgcmVzdWx0ID0gZW50cmllcyA/IGYoYW5PYmplY3Qoc3RlcCA9IGl0ZXJhYmxlW2luZGV4XSlbMF0sIHN0ZXBbMV0pIDogZihpdGVyYWJsZVtpbmRleF0pO1xuICAgIGlmIChyZXN1bHQgPT09IEJSRUFLIHx8IHJlc3VsdCA9PT0gUkVUVVJOKSByZXR1cm4gcmVzdWx0O1xuICB9IGVsc2UgZm9yIChpdGVyYXRvciA9IGl0ZXJGbi5jYWxsKGl0ZXJhYmxlKTsgIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lOykge1xuICAgIHJlc3VsdCA9IGNhbGwoaXRlcmF0b3IsIGYsIHN0ZXAudmFsdWUsIGVudHJpZXMpO1xuICAgIGlmIChyZXN1bHQgPT09IEJSRUFLIHx8IHJlc3VsdCA9PT0gUkVUVVJOKSByZXR1cm4gcmVzdWx0O1xuICB9XG59O1xuZXhwb3J0cy5CUkVBSyA9IEJSRUFLO1xuZXhwb3J0cy5SRVRVUk4gPSBSRVRVUk47XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCduYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nJywgRnVuY3Rpb24udG9TdHJpbmcpO1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcbiIsInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsInZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xubW9kdWxlLmV4cG9ydHMgPSBkb2N1bWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4iLCJtb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2RpdicpLCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19zZXQtcHJvdG8nKS5zZXQ7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0aGF0LCB0YXJnZXQsIEMpIHtcbiAgdmFyIFMgPSB0YXJnZXQuY29uc3RydWN0b3I7XG4gIHZhciBQO1xuICBpZiAoUyAhPT0gQyAmJiB0eXBlb2YgUyA9PSAnZnVuY3Rpb24nICYmIChQID0gUy5wcm90b3R5cGUpICE9PSBDLnByb3RvdHlwZSAmJiBpc09iamVjdChQKSAmJiBzZXRQcm90b3R5cGVPZikge1xuICAgIHNldFByb3RvdHlwZU9mKHRoYXQsIFApO1xuICB9IHJldHVybiB0aGF0O1xufTtcbiIsIi8vIGZhc3QgYXBwbHksIGh0dHA6Ly9qc3BlcmYubG5raXQuY29tL2Zhc3QtYXBwbHkvNVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4sIGFyZ3MsIHRoYXQpIHtcbiAgdmFyIHVuID0gdGhhdCA9PT0gdW5kZWZpbmVkO1xuICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgY2FzZSAwOiByZXR1cm4gdW4gPyBmbigpXG4gICAgICAgICAgICAgICAgICAgICAgOiBmbi5jYWxsKHRoYXQpO1xuICAgIGNhc2UgMTogcmV0dXJuIHVuID8gZm4oYXJnc1swXSlcbiAgICAgICAgICAgICAgICAgICAgICA6IGZuLmNhbGwodGhhdCwgYXJnc1swXSk7XG4gICAgY2FzZSAyOiByZXR1cm4gdW4gPyBmbihhcmdzWzBdLCBhcmdzWzFdKVxuICAgICAgICAgICAgICAgICAgICAgIDogZm4uY2FsbCh0aGF0LCBhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICBjYXNlIDM6IHJldHVybiB1biA/IGZuKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pXG4gICAgICAgICAgICAgICAgICAgICAgOiBmbi5jYWxsKHRoYXQsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgIGNhc2UgNDogcmV0dXJuIHVuID8gZm4oYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSlcbiAgICAgICAgICAgICAgICAgICAgICA6IGZuLmNhbGwodGhhdCwgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSk7XG4gIH0gcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3MpO1xufTtcbiIsIi8vIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgYW5kIG5vbi1lbnVtZXJhYmxlIG9sZCBWOCBzdHJpbmdzXG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdCgneicpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApID8gT2JqZWN0IDogZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBjb2YoaXQpID09ICdTdHJpbmcnID8gaXQuc3BsaXQoJycpIDogT2JqZWN0KGl0KTtcbn07XG4iLCIvLyBjaGVjayBvbiBkZWZhdWx0IEFycmF5IGl0ZXJhdG9yXG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBBcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgIT09IHVuZGVmaW5lZCAmJiAoSXRlcmF0b3JzLkFycmF5ID09PSBpdCB8fCBBcnJheVByb3RvW0lURVJBVE9SXSA9PT0gaXQpO1xufTtcbiIsIi8vIDcuMi4yIElzQXJyYXkoYXJndW1lbnQpXG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG5tb2R1bGUuZXhwb3J0cyA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gaXNBcnJheShhcmcpIHtcbiAgcmV0dXJuIGNvZihhcmcpID09ICdBcnJheSc7XG59O1xuIiwiLy8gMjAuMS4yLjMgTnVtYmVyLmlzSW50ZWdlcihudW1iZXIpXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGlzSW50ZWdlcihpdCkge1xuICByZXR1cm4gIWlzT2JqZWN0KGl0KSAmJiBpc0Zpbml0ZShpdCkgJiYgZmxvb3IoaXQpID09PSBpdDtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xufTtcbiIsIi8vIDcuMi44IElzUmVnRXhwKGFyZ3VtZW50KVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgTUFUQ0ggPSByZXF1aXJlKCcuL193a3MnKSgnbWF0Y2gnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBpc1JlZ0V4cDtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiAoKGlzUmVnRXhwID0gaXRbTUFUQ0hdKSAhPT0gdW5kZWZpbmVkID8gISFpc1JlZ0V4cCA6IGNvZihpdCkgPT0gJ1JlZ0V4cCcpO1xufTtcbiIsIi8vIGNhbGwgc29tZXRoaW5nIG9uIGl0ZXJhdG9yIHN0ZXAgd2l0aCBzYWZlIGNsb3Npbmcgb24gZXJyb3JcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgZW50cmllcykge1xuICB0cnkge1xuICAgIHJldHVybiBlbnRyaWVzID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB2YXIgcmV0ID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICAgIGlmIChyZXQgIT09IHVuZGVmaW5lZCkgYW5PYmplY3QocmV0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTElCUkFSWSA9IHJlcXVpcmUoJy4vX2xpYnJhcnknKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgJGl0ZXJDcmVhdGUgPSByZXF1aXJlKCcuL19pdGVyLWNyZWF0ZScpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEJVR0dZID0gIShbXS5rZXlzICYmICduZXh0JyBpbiBbXS5rZXlzKCkpOyAvLyBTYWZhcmkgaGFzIGJ1Z2d5IGl0ZXJhdG9ycyB3L28gYG5leHRgXG52YXIgRkZfSVRFUkFUT1IgPSAnQEBpdGVyYXRvcic7XG52YXIgS0VZUyA9ICdrZXlzJztcbnZhciBWQUxVRVMgPSAndmFsdWVzJztcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChCYXNlLCBOQU1FLCBDb25zdHJ1Y3RvciwgbmV4dCwgREVGQVVMVCwgSVNfU0VULCBGT1JDRUQpIHtcbiAgJGl0ZXJDcmVhdGUoQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpO1xuICB2YXIgZ2V0TWV0aG9kID0gZnVuY3Rpb24gKGtpbmQpIHtcbiAgICBpZiAoIUJVR0dZICYmIGtpbmQgaW4gcHJvdG8pIHJldHVybiBwcm90b1traW5kXTtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgIGNhc2UgS0VZUzogcmV0dXJuIGZ1bmN0aW9uIGtleXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICB9IHJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICB9O1xuICB2YXIgVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgREVGX1ZBTFVFUyA9IERFRkFVTFQgPT0gVkFMVUVTO1xuICB2YXIgVkFMVUVTX0JVRyA9IGZhbHNlO1xuICB2YXIgcHJvdG8gPSBCYXNlLnByb3RvdHlwZTtcbiAgdmFyICRuYXRpdmUgPSBwcm90b1tJVEVSQVRPUl0gfHwgcHJvdG9bRkZfSVRFUkFUT1JdIHx8IERFRkFVTFQgJiYgcHJvdG9bREVGQVVMVF07XG4gIHZhciAkZGVmYXVsdCA9ICRuYXRpdmUgfHwgZ2V0TWV0aG9kKERFRkFVTFQpO1xuICB2YXIgJGVudHJpZXMgPSBERUZBVUxUID8gIURFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZCgnZW50cmllcycpIDogdW5kZWZpbmVkO1xuICB2YXIgJGFueU5hdGl2ZSA9IE5BTUUgPT0gJ0FycmF5JyA/IHByb3RvLmVudHJpZXMgfHwgJG5hdGl2ZSA6ICRuYXRpdmU7XG4gIHZhciBtZXRob2RzLCBrZXksIEl0ZXJhdG9yUHJvdG90eXBlO1xuICAvLyBGaXggbmF0aXZlXG4gIGlmICgkYW55TmF0aXZlKSB7XG4gICAgSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZigkYW55TmF0aXZlLmNhbGwobmV3IEJhc2UoKSkpO1xuICAgIGlmIChJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSAmJiBJdGVyYXRvclByb3RvdHlwZS5uZXh0KSB7XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvclByb3RvdHlwZSwgVEFHLCB0cnVlKTtcbiAgICAgIC8vIGZpeCBmb3Igc29tZSBvbGQgZW5naW5lc1xuICAgICAgaWYgKCFMSUJSQVJZICYmIHR5cGVvZiBJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0gIT0gJ2Z1bmN0aW9uJykgaGlkZShJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgIH1cbiAgfVxuICAvLyBmaXggQXJyYXkje3ZhbHVlcywgQEBpdGVyYXRvcn0ubmFtZSBpbiBWOCAvIEZGXG4gIGlmIChERUZfVkFMVUVTICYmICRuYXRpdmUgJiYgJG5hdGl2ZS5uYW1lICE9PSBWQUxVRVMpIHtcbiAgICBWQUxVRVNfQlVHID0gdHJ1ZTtcbiAgICAkZGVmYXVsdCA9IGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuICRuYXRpdmUuY2FsbCh0aGlzKTsgfTtcbiAgfVxuICAvLyBEZWZpbmUgaXRlcmF0b3JcbiAgaWYgKCghTElCUkFSWSB8fCBGT1JDRUQpICYmIChCVUdHWSB8fCBWQUxVRVNfQlVHIHx8ICFwcm90b1tJVEVSQVRPUl0pKSB7XG4gICAgaGlkZShwcm90bywgSVRFUkFUT1IsICRkZWZhdWx0KTtcbiAgfVxuICAvLyBQbHVnIGZvciBsaWJyYXJ5XG4gIEl0ZXJhdG9yc1tOQU1FXSA9ICRkZWZhdWx0O1xuICBJdGVyYXRvcnNbVEFHXSA9IHJldHVyblRoaXM7XG4gIGlmIChERUZBVUxUKSB7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKFZBTFVFUyksXG4gICAgICBrZXlzOiBJU19TRVQgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChLRVlTKSxcbiAgICAgIGVudHJpZXM6ICRlbnRyaWVzXG4gICAgfTtcbiAgICBpZiAoRk9SQ0VEKSBmb3IgKGtleSBpbiBtZXRob2RzKSB7XG4gICAgICBpZiAoIShrZXkgaW4gcHJvdG8pKSByZWRlZmluZShwcm90bywga2V5LCBtZXRob2RzW2tleV0pO1xuICAgIH0gZWxzZSAkZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIChCVUdHWSB8fCBWQUxVRVNfQlVHKSwgTkFNRSwgbWV0aG9kcyk7XG4gIH1cbiAgcmV0dXJuIG1ldGhvZHM7XG59O1xuIiwidmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciByaXRlciA9IFs3XVtJVEVSQVRPUl0oKTtcbiAgcml0ZXJbJ3JldHVybiddID0gZnVuY3Rpb24gKCkgeyBTQUZFX0NMT1NJTkcgPSB0cnVlOyB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBBcnJheS5mcm9tKHJpdGVyLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIHNraXBDbG9zaW5nKSB7XG4gIGlmICghc2tpcENsb3NpbmcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB2YXIgc2FmZSA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBbN107XG4gICAgdmFyIGl0ZXIgPSBhcnJbSVRFUkFUT1JdKCk7XG4gICAgaXRlci5uZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4geyBkb25lOiBzYWZlID0gdHJ1ZSB9OyB9O1xuICAgIGFycltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyOyB9O1xuICAgIGV4ZWMoYXJyKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBzYWZlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRvbmUsIHZhbHVlKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZmFsc2U7XG4iLCIvLyAyMC4yLjIuMTQgTWF0aC5leHBtMSh4KVxudmFyICRleHBtMSA9IE1hdGguZXhwbTE7XG5tb2R1bGUuZXhwb3J0cyA9ICghJGV4cG0xXG4gIC8vIE9sZCBGRiBidWdcbiAgfHwgJGV4cG0xKDEwKSA+IDIyMDI1LjQ2NTc5NDgwNjcxOSB8fCAkZXhwbTEoMTApIDwgMjIwMjUuNDY1Nzk0ODA2NzE2NTE2OFxuICAvLyBUb3IgQnJvd3NlciBidWdcbiAgfHwgJGV4cG0xKC0yZS0xNykgIT0gLTJlLTE3XG4pID8gZnVuY3Rpb24gZXhwbTEoeCkge1xuICByZXR1cm4gKHggPSAreCkgPT0gMCA/IHggOiB4ID4gLTFlLTYgJiYgeCA8IDFlLTYgPyB4ICsgeCAqIHggLyAyIDogTWF0aC5leHAoeCkgLSAxO1xufSA6ICRleHBtMTtcbiIsIi8vIDIwLjIuMi4xNiBNYXRoLmZyb3VuZCh4KVxudmFyIHNpZ24gPSByZXF1aXJlKCcuL19tYXRoLXNpZ24nKTtcbnZhciBwb3cgPSBNYXRoLnBvdztcbnZhciBFUFNJTE9OID0gcG93KDIsIC01Mik7XG52YXIgRVBTSUxPTjMyID0gcG93KDIsIC0yMyk7XG52YXIgTUFYMzIgPSBwb3coMiwgMTI3KSAqICgyIC0gRVBTSUxPTjMyKTtcbnZhciBNSU4zMiA9IHBvdygyLCAtMTI2KTtcblxudmFyIHJvdW5kVGllc1RvRXZlbiA9IGZ1bmN0aW9uIChuKSB7XG4gIHJldHVybiBuICsgMSAvIEVQU0lMT04gLSAxIC8gRVBTSUxPTjtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTWF0aC5mcm91bmQgfHwgZnVuY3Rpb24gZnJvdW5kKHgpIHtcbiAgdmFyICRhYnMgPSBNYXRoLmFicyh4KTtcbiAgdmFyICRzaWduID0gc2lnbih4KTtcbiAgdmFyIGEsIHJlc3VsdDtcbiAgaWYgKCRhYnMgPCBNSU4zMikgcmV0dXJuICRzaWduICogcm91bmRUaWVzVG9FdmVuKCRhYnMgLyBNSU4zMiAvIEVQU0lMT04zMikgKiBNSU4zMiAqIEVQU0lMT04zMjtcbiAgYSA9ICgxICsgRVBTSUxPTjMyIC8gRVBTSUxPTikgKiAkYWJzO1xuICByZXN1bHQgPSBhIC0gKGEgLSAkYWJzKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICBpZiAocmVzdWx0ID4gTUFYMzIgfHwgcmVzdWx0ICE9IHJlc3VsdCkgcmV0dXJuICRzaWduICogSW5maW5pdHk7XG4gIHJldHVybiAkc2lnbiAqIHJlc3VsdDtcbn07XG4iLCIvLyAyMC4yLjIuMjAgTWF0aC5sb2cxcCh4KVxubW9kdWxlLmV4cG9ydHMgPSBNYXRoLmxvZzFwIHx8IGZ1bmN0aW9uIGxvZzFwKHgpIHtcbiAgcmV0dXJuICh4ID0gK3gpID4gLTFlLTggJiYgeCA8IDFlLTggPyB4IC0geCAqIHggLyAyIDogTWF0aC5sb2coMSArIHgpO1xufTtcbiIsIi8vIDIwLjIuMi4yOCBNYXRoLnNpZ24oeClcbm1vZHVsZS5leHBvcnRzID0gTWF0aC5zaWduIHx8IGZ1bmN0aW9uIHNpZ24oeCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gIHJldHVybiAoeCA9ICt4KSA9PSAwIHx8IHggIT0geCA/IHggOiB4IDwgMCA/IC0xIDogMTtcbn07XG4iLCJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgbWFjcm90YXNrID0gcmVxdWlyZSgnLi9fdGFzaycpLnNldDtcbnZhciBPYnNlcnZlciA9IGdsb2JhbC5NdXRhdGlvbk9ic2VydmVyIHx8IGdsb2JhbC5XZWJLaXRNdXRhdGlvbk9ic2VydmVyO1xudmFyIHByb2Nlc3MgPSBnbG9iYWwucHJvY2VzcztcbnZhciBQcm9taXNlID0gZ2xvYmFsLlByb21pc2U7XG52YXIgaXNOb2RlID0gcmVxdWlyZSgnLi9fY29mJykocHJvY2VzcykgPT0gJ3Byb2Nlc3MnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhlYWQsIGxhc3QsIG5vdGlmeTtcblxuICB2YXIgZmx1c2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHBhcmVudCwgZm47XG4gICAgaWYgKGlzTm9kZSAmJiAocGFyZW50ID0gcHJvY2Vzcy5kb21haW4pKSBwYXJlbnQuZXhpdCgpO1xuICAgIHdoaWxlIChoZWFkKSB7XG4gICAgICBmbiA9IGhlYWQuZm47XG4gICAgICBoZWFkID0gaGVhZC5uZXh0O1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm4oKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKGhlYWQpIG5vdGlmeSgpO1xuICAgICAgICBlbHNlIGxhc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfSBsYXN0ID0gdW5kZWZpbmVkO1xuICAgIGlmIChwYXJlbnQpIHBhcmVudC5lbnRlcigpO1xuICB9O1xuXG4gIC8vIE5vZGUuanNcbiAgaWYgKGlzTm9kZSkge1xuICAgIG5vdGlmeSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soZmx1c2gpO1xuICAgIH07XG4gIC8vIGJyb3dzZXJzIHdpdGggTXV0YXRpb25PYnNlcnZlciwgZXhjZXB0IGlPUyBTYWZhcmkgLSBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMzM5XG4gIH0gZWxzZSBpZiAoT2JzZXJ2ZXIgJiYgIShnbG9iYWwubmF2aWdhdG9yICYmIGdsb2JhbC5uYXZpZ2F0b3Iuc3RhbmRhbG9uZSkpIHtcbiAgICB2YXIgdG9nZ2xlID0gdHJ1ZTtcbiAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKTtcbiAgICBuZXcgT2JzZXJ2ZXIoZmx1c2gpLm9ic2VydmUobm9kZSwgeyBjaGFyYWN0ZXJEYXRhOiB0cnVlIH0pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ld1xuICAgIG5vdGlmeSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vZGUuZGF0YSA9IHRvZ2dsZSA9ICF0b2dnbGU7XG4gICAgfTtcbiAgLy8gZW52aXJvbm1lbnRzIHdpdGggbWF5YmUgbm9uLWNvbXBsZXRlbHkgY29ycmVjdCwgYnV0IGV4aXN0ZW50IFByb21pc2VcbiAgfSBlbHNlIGlmIChQcm9taXNlICYmIFByb21pc2UucmVzb2x2ZSkge1xuICAgIC8vIFByb21pc2UucmVzb2x2ZSB3aXRob3V0IGFuIGFyZ3VtZW50IHRocm93cyBhbiBlcnJvciBpbiBMRyBXZWJPUyAyXG4gICAgdmFyIHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICBub3RpZnkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9taXNlLnRoZW4oZmx1c2gpO1xuICAgIH07XG4gIC8vIGZvciBvdGhlciBlbnZpcm9ubWVudHMgLSBtYWNyb3Rhc2sgYmFzZWQgb246XG4gIC8vIC0gc2V0SW1tZWRpYXRlXG4gIC8vIC0gTWVzc2FnZUNoYW5uZWxcbiAgLy8gLSB3aW5kb3cucG9zdE1lc3NhZ1xuICAvLyAtIG9ucmVhZHlzdGF0ZWNoYW5nZVxuICAvLyAtIHNldFRpbWVvdXRcbiAgfSBlbHNlIHtcbiAgICBub3RpZnkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBzdHJhbmdlIElFICsgd2VicGFjayBkZXYgc2VydmVyIGJ1ZyAtIHVzZSAuY2FsbChnbG9iYWwpXG4gICAgICBtYWNyb3Rhc2suY2FsbChnbG9iYWwsIGZsdXNoKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChmbikge1xuICAgIHZhciB0YXNrID0geyBmbjogZm4sIG5leHQ6IHVuZGVmaW5lZCB9O1xuICAgIGlmIChsYXN0KSBsYXN0Lm5leHQgPSB0YXNrO1xuICAgIGlmICghaGVhZCkge1xuICAgICAgaGVhZCA9IHRhc2s7XG4gICAgICBub3RpZnkoKTtcbiAgICB9IGxhc3QgPSB0YXNrO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIDI1LjQuMS41IE5ld1Byb21pc2VDYXBhYmlsaXR5KEMpXG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xuXG5mdW5jdGlvbiBQcm9taXNlQ2FwYWJpbGl0eShDKSB7XG4gIHZhciByZXNvbHZlLCByZWplY3Q7XG4gIHRoaXMucHJvbWlzZSA9IG5ldyBDKGZ1bmN0aW9uICgkJHJlc29sdmUsICQkcmVqZWN0KSB7XG4gICAgaWYgKHJlc29sdmUgIT09IHVuZGVmaW5lZCB8fCByZWplY3QgIT09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKCdCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvcicpO1xuICAgIHJlc29sdmUgPSAkJHJlc29sdmU7XG4gICAgcmVqZWN0ID0gJCRyZWplY3Q7XG4gIH0pO1xuICB0aGlzLnJlc29sdmUgPSBhRnVuY3Rpb24ocmVzb2x2ZSk7XG4gIHRoaXMucmVqZWN0ID0gYUZ1bmN0aW9uKHJlamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzLmYgPSBmdW5jdGlvbiAoQykge1xuICByZXR1cm4gbmV3IFByb21pc2VDYXBhYmlsaXR5KEMpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIDE5LjEuMi4xIE9iamVjdC5hc3NpZ24odGFyZ2V0LCBzb3VyY2UsIC4uLilcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciAkYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLy8gc2hvdWxkIHdvcmsgd2l0aCBzeW1ib2xzIGFuZCBzaG91bGQgaGF2ZSBkZXRlcm1pbmlzdGljIHByb3BlcnR5IG9yZGVyIChWOCBidWcpXG5tb2R1bGUuZXhwb3J0cyA9ICEkYXNzaWduIHx8IHJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICB2YXIgQSA9IHt9O1xuICB2YXIgQiA9IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgdmFyIFMgPSBTeW1ib2woKTtcbiAgdmFyIEsgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3QnO1xuICBBW1NdID0gNztcbiAgSy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAoaykgeyBCW2tdID0gazsgfSk7XG4gIHJldHVybiAkYXNzaWduKHt9LCBBKVtTXSAhPSA3IHx8IE9iamVjdC5rZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBLO1xufSkgPyBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCBzb3VyY2UpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICB2YXIgVCA9IHRvT2JqZWN0KHRhcmdldCk7XG4gIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMTtcbiAgdmFyIGdldFN5bWJvbHMgPSBnT1BTLmY7XG4gIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgd2hpbGUgKGFMZW4gPiBpbmRleCkge1xuICAgIHZhciBTID0gSU9iamVjdChhcmd1bWVudHNbaW5kZXgrK10pO1xuICAgIHZhciBrZXlzID0gZ2V0U3ltYm9scyA/IGdldEtleXMoUykuY29uY2F0KGdldFN5bWJvbHMoUykpIDogZ2V0S2V5cyhTKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGogPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGopIHtcbiAgICAgIGtleSA9IGtleXNbaisrXTtcbiAgICAgIGlmICghREVTQ1JJUFRPUlMgfHwgaXNFbnVtLmNhbGwoUywga2V5KSkgVFtrZXldID0gU1trZXldO1xuICAgIH1cbiAgfSByZXR1cm4gVDtcbn0gOiAkYXNzaWduO1xuIiwiLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBkUHMgPSByZXF1aXJlKCcuL19vYmplY3QtZHBzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgRW1wdHkgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBjcmVhdGVEaWN0ID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gcmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdpZnJhbWUnKTtcbiAgdmFyIGkgPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHZhciBsdCA9ICc8JztcbiAgdmFyIGd0ID0gJz4nO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICByZXF1aXJlKCcuL19odG1sJykuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lLnNyYyA9ICdqYXZhc2NyaXB0Oic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2NyaXB0LXVybFxuICAvLyBjcmVhdGVEaWN0ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuT2JqZWN0O1xuICAvLyBodG1sLnJlbW92ZUNoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUobHQgKyAnc2NyaXB0JyArIGd0ICsgJ2RvY3VtZW50LkY9T2JqZWN0JyArIGx0ICsgJy9zY3JpcHQnICsgZ3QpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICBjcmVhdGVEaWN0ID0gaWZyYW1lRG9jdW1lbnQuRjtcbiAgd2hpbGUgKGktLSkgZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tpXV07XG4gIHJldHVybiBjcmVhdGVEaWN0KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5KCk7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gY3JlYXRlRGljdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZFBzKHJlc3VsdCwgUHJvcGVydGllcyk7XG59O1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyA9IGdldEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGkgPSAwO1xuICB2YXIgUDtcbiAgd2hpbGUgKGxlbmd0aCA+IGkpIGRQLmYoTywgUCA9IGtleXNbaSsrXSwgUHJvcGVydGllc1tQXSk7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBwSUUgPSByZXF1aXJlKCcuL19vYmplY3QtcGllJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgZ09QRCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBnT1BEIDogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApIHtcbiAgTyA9IHRvSU9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGdPUEQoTywgUCk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoaGFzKE8sIFApKSByZXR1cm4gY3JlYXRlRGVzYyghcElFLmYuY2FsbChPLCBQKSwgT1tQXSk7XG59O1xuIiwiLy8gZmFsbGJhY2sgZm9yIElFMTEgYnVnZ3kgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgd2l0aCBpZnJhbWUgYW5kIHdpbmRvd1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBnT1BOID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4nKS5mO1xudmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbnZhciB3aW5kb3dOYW1lcyA9IHR5cGVvZiB3aW5kb3cgPT0gJ29iamVjdCcgJiYgd2luZG93ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzXG4gID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KSA6IFtdO1xuXG52YXIgZ2V0V2luZG93TmFtZXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZ09QTihpdCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gd2luZG93TmFtZXMuc2xpY2UoKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMuZiA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoaXQpIHtcbiAgcmV0dXJuIHdpbmRvd05hbWVzICYmIHRvU3RyaW5nLmNhbGwoaXQpID09ICdbb2JqZWN0IFdpbmRvd10nID8gZ2V0V2luZG93TmFtZXMoaXQpIDogZ09QTih0b0lPYmplY3QoaXQpKTtcbn07XG4iLCIvLyAxOS4xLjIuNyAvIDE1LjIuMy40IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJykuY29uY2F0KCdsZW5ndGgnLCAncHJvdG90eXBlJyk7XG5cbmV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoTykge1xuICByZXR1cm4gJGtleXMoTywgaGlkZGVuS2V5cyk7XG59O1xuIiwiZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiIsIi8vIDE5LjEuMi45IC8gMTUuMi4zLjIgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIChPKSB7XG4gIE8gPSB0b09iamVjdChPKTtcbiAgaWYgKGhhcyhPLCBJRV9QUk9UTykpIHJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYgKHR5cGVvZiBPLmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgTyBpbnN0YW5jZW9mIE8uY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIE8gaW5zdGFuY2VvZiBPYmplY3QgPyBPYmplY3RQcm90byA6IG51bGw7XG59O1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIvLyAxOS4xLjIuMTQgLyAxNS4yLjMuMTQgT2JqZWN0LmtleXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwiZXhwb3J0cy5mID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCIvLyBtb3N0IE9iamVjdCBtZXRob2RzIGJ5IEVTNiBzaG91bGQgYWNjZXB0IHByaW1pdGl2ZXNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVksIGV4ZWMpIHtcbiAgdmFyIGZuID0gKGNvcmUuT2JqZWN0IHx8IHt9KVtLRVldIHx8IE9iamVjdFtLRVldO1xuICB2YXIgZXhwID0ge307XG4gIGV4cFtLRVldID0gZXhlYyhmbik7XG4gICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogZmFpbHMoZnVuY3Rpb24gKCkgeyBmbigxKTsgfSksICdPYmplY3QnLCBleHApO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGlzRW51bSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKS5mO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXNFbnRyaWVzKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoaXQpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdChpdCk7XG4gICAgdmFyIGtleXMgPSBnZXRLZXlzKE8pO1xuICAgIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGkpIHtcbiAgICAgIGtleSA9IGtleXNbaSsrXTtcbiAgICAgIGlmICghREVTQ1JJUFRPUlMgfHwgaXNFbnVtLmNhbGwoTywga2V5KSkge1xuICAgICAgICByZXN1bHQucHVzaChpc0VudHJpZXMgPyBba2V5LCBPW2tleV1dIDogT1trZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn07XG4iLCIvLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBSZWZsZWN0ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuUmVmbGVjdDtcbm1vZHVsZS5leHBvcnRzID0gUmVmbGVjdCAmJiBSZWZsZWN0Lm93bktleXMgfHwgZnVuY3Rpb24gb3duS2V5cyhpdCkge1xuICB2YXIga2V5cyA9IGdPUE4uZihhbk9iamVjdChpdCkpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgcmV0dXJuIGdldFN5bWJvbHMgPyBrZXlzLmNvbmNhdChnZXRTeW1ib2xzKGl0KSkgOiBrZXlzO1xufTtcbiIsInZhciAkcGFyc2VGbG9hdCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLnBhcnNlRmxvYXQ7XG52YXIgJHRyaW0gPSByZXF1aXJlKCcuL19zdHJpbmctdHJpbScpLnRyaW07XG5cbm1vZHVsZS5leHBvcnRzID0gMSAvICRwYXJzZUZsb2F0KHJlcXVpcmUoJy4vX3N0cmluZy13cycpICsgJy0wJykgIT09IC1JbmZpbml0eSA/IGZ1bmN0aW9uIHBhcnNlRmxvYXQoc3RyKSB7XG4gIHZhciBzdHJpbmcgPSAkdHJpbShTdHJpbmcoc3RyKSwgMyk7XG4gIHZhciByZXN1bHQgPSAkcGFyc2VGbG9hdChzdHJpbmcpO1xuICByZXR1cm4gcmVzdWx0ID09PSAwICYmIHN0cmluZy5jaGFyQXQoMCkgPT0gJy0nID8gLTAgOiByZXN1bHQ7XG59IDogJHBhcnNlRmxvYXQ7XG4iLCJ2YXIgJHBhcnNlSW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykucGFyc2VJbnQ7XG52YXIgJHRyaW0gPSByZXF1aXJlKCcuL19zdHJpbmctdHJpbScpLnRyaW07XG52YXIgd3MgPSByZXF1aXJlKCcuL19zdHJpbmctd3MnKTtcbnZhciBoZXggPSAvXlstK10/MFt4WF0vO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICRwYXJzZUludCh3cyArICcwOCcpICE9PSA4IHx8ICRwYXJzZUludCh3cyArICcweDE2JykgIT09IDIyID8gZnVuY3Rpb24gcGFyc2VJbnQoc3RyLCByYWRpeCkge1xuICB2YXIgc3RyaW5nID0gJHRyaW0oU3RyaW5nKHN0ciksIDMpO1xuICByZXR1cm4gJHBhcnNlSW50KHN0cmluZywgKHJhZGl4ID4+PiAwKSB8fCAoaGV4LnRlc3Qoc3RyaW5nKSA/IDE2IDogMTApKTtcbn0gOiAkcGFyc2VJbnQ7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHsgZTogZmFsc2UsIHY6IGV4ZWMoKSB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHsgZTogdHJ1ZSwgdjogZSB9O1xuICB9XG59O1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBuZXdQcm9taXNlQ2FwYWJpbGl0eSA9IHJlcXVpcmUoJy4vX25ldy1wcm9taXNlLWNhcGFiaWxpdHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQywgeCkge1xuICBhbk9iamVjdChDKTtcbiAgaWYgKGlzT2JqZWN0KHgpICYmIHguY29uc3RydWN0b3IgPT09IEMpIHJldHVybiB4O1xuICB2YXIgcHJvbWlzZUNhcGFiaWxpdHkgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eS5mKEMpO1xuICB2YXIgcmVzb2x2ZSA9IHByb21pc2VDYXBhYmlsaXR5LnJlc29sdmU7XG4gIHJlc29sdmUoeCk7XG4gIHJldHVybiBwcm9taXNlQ2FwYWJpbGl0eS5wcm9taXNlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcbiAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcbiAgICB2YWx1ZTogdmFsdWVcbiAgfTtcbn07XG4iLCJ2YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBzcmMsIHNhZmUpIHtcbiAgZm9yICh2YXIga2V5IGluIHNyYykgcmVkZWZpbmUodGFyZ2V0LCBrZXksIHNyY1trZXldLCBzYWZlKTtcbiAgcmV0dXJuIHRhcmdldDtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBTUkMgPSByZXF1aXJlKCcuL191aWQnKSgnc3JjJyk7XG52YXIgJHRvU3RyaW5nID0gcmVxdWlyZSgnLi9fZnVuY3Rpb24tdG8tc3RyaW5nJyk7XG52YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcbnZhciBUUEwgPSAoJycgKyAkdG9TdHJpbmcpLnNwbGl0KFRPX1NUUklORyk7XG5cbnJlcXVpcmUoJy4vX2NvcmUnKS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiAkdG9TdHJpbmcuY2FsbChpdCk7XG59O1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWwsIHNhZmUpIHtcbiAgdmFyIGlzRnVuY3Rpb24gPSB0eXBlb2YgdmFsID09ICdmdW5jdGlvbic7XG4gIGlmIChpc0Z1bmN0aW9uKSBoYXModmFsLCAnbmFtZScpIHx8IGhpZGUodmFsLCAnbmFtZScsIGtleSk7XG4gIGlmIChPW2tleV0gPT09IHZhbCkgcmV0dXJuO1xuICBpZiAoaXNGdW5jdGlvbikgaGFzKHZhbCwgU1JDKSB8fCBoaWRlKHZhbCwgU1JDLCBPW2tleV0gPyAnJyArIE9ba2V5XSA6IFRQTC5qb2luKFN0cmluZyhrZXkpKSk7XG4gIGlmIChPID09PSBnbG9iYWwpIHtcbiAgICBPW2tleV0gPSB2YWw7XG4gIH0gZWxzZSBpZiAoIXNhZmUpIHtcbiAgICBkZWxldGUgT1trZXldO1xuICAgIGhpZGUoTywga2V5LCB2YWwpO1xuICB9IGVsc2UgaWYgKE9ba2V5XSkge1xuICAgIE9ba2V5XSA9IHZhbDtcbiAgfSBlbHNlIHtcbiAgICBoaWRlKE8sIGtleSwgdmFsKTtcbiAgfVxuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG59KShGdW5jdGlvbi5wcm90b3R5cGUsIFRPX1NUUklORywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIHRoaXNbU1JDXSB8fCAkdG9TdHJpbmcuY2FsbCh0aGlzKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4vX2NsYXNzb2YnKTtcbnZhciBidWlsdGluRXhlYyA9IFJlZ0V4cC5wcm90b3R5cGUuZXhlYztcblxuIC8vIGBSZWdFeHBFeGVjYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZ2V4cGV4ZWNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFIsIFMpIHtcbiAgdmFyIGV4ZWMgPSBSLmV4ZWM7XG4gIGlmICh0eXBlb2YgZXhlYyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciByZXN1bHQgPSBleGVjLmNhbGwoUiwgUyk7XG4gICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZWdFeHAgZXhlYyBtZXRob2QgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gT2JqZWN0IG9yIG51bGwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoY2xhc3NvZihSKSAhPT0gJ1JlZ0V4cCcpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRpYmxlIHJlY2VpdmVyJyk7XG4gIH1cbiAgcmV0dXJuIGJ1aWx0aW5FeGVjLmNhbGwoUiwgUyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVnZXhwRmxhZ3MgPSByZXF1aXJlKCcuL19mbGFncycpO1xuXG52YXIgbmF0aXZlRXhlYyA9IFJlZ0V4cC5wcm90b3R5cGUuZXhlYztcbi8vIFRoaXMgYWx3YXlzIHJlZmVycyB0byB0aGUgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBiZWNhdXNlIHRoZVxuLy8gU3RyaW5nI3JlcGxhY2UgcG9seWZpbGwgdXNlcyAuL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMuanMsXG4vLyB3aGljaCBsb2FkcyB0aGlzIGZpbGUgYmVmb3JlIHBhdGNoaW5nIHRoZSBtZXRob2QuXG52YXIgbmF0aXZlUmVwbGFjZSA9IFN0cmluZy5wcm90b3R5cGUucmVwbGFjZTtcblxudmFyIHBhdGNoZWRFeGVjID0gbmF0aXZlRXhlYztcblxudmFyIExBU1RfSU5ERVggPSAnbGFzdEluZGV4JztcblxudmFyIFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciByZTEgPSAvYS8sXG4gICAgICByZTIgPSAvYiovZztcbiAgbmF0aXZlRXhlYy5jYWxsKHJlMSwgJ2EnKTtcbiAgbmF0aXZlRXhlYy5jYWxsKHJlMiwgJ2EnKTtcbiAgcmV0dXJuIHJlMVtMQVNUX0lOREVYXSAhPT0gMCB8fCByZTJbTEFTVF9JTkRFWF0gIT09IDA7XG59KSgpO1xuXG4vLyBub25wYXJ0aWNpcGF0aW5nIGNhcHR1cmluZyBncm91cCwgY29waWVkIGZyb20gZXM1LXNoaW0ncyBTdHJpbmcjc3BsaXQgcGF0Y2guXG52YXIgTlBDR19JTkNMVURFRCA9IC8oKT8/Ly5leGVjKCcnKVsxXSAhPT0gdW5kZWZpbmVkO1xuXG52YXIgUEFUQ0ggPSBVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcgfHwgTlBDR19JTkNMVURFRDtcblxuaWYgKFBBVENIKSB7XG4gIHBhdGNoZWRFeGVjID0gZnVuY3Rpb24gZXhlYyhzdHIpIHtcbiAgICB2YXIgcmUgPSB0aGlzO1xuICAgIHZhciBsYXN0SW5kZXgsIHJlQ29weSwgbWF0Y2gsIGk7XG5cbiAgICBpZiAoTlBDR19JTkNMVURFRCkge1xuICAgICAgcmVDb3B5ID0gbmV3IFJlZ0V4cCgnXicgKyByZS5zb3VyY2UgKyAnJCg/IVxcXFxzKScsIHJlZ2V4cEZsYWdzLmNhbGwocmUpKTtcbiAgICB9XG4gICAgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORykgbGFzdEluZGV4ID0gcmVbTEFTVF9JTkRFWF07XG5cbiAgICBtYXRjaCA9IG5hdGl2ZUV4ZWMuY2FsbChyZSwgc3RyKTtcblxuICAgIGlmIChVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcgJiYgbWF0Y2gpIHtcbiAgICAgIHJlW0xBU1RfSU5ERVhdID0gcmUuZ2xvYmFsID8gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGggOiBsYXN0SW5kZXg7XG4gICAgfVxuICAgIGlmIChOUENHX0lOQ0xVREVEICYmIG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIEZpeCBicm93c2VycyB3aG9zZSBgZXhlY2AgbWV0aG9kcyBkb24ndCBjb25zaXN0ZW50bHkgcmV0dXJuIGB1bmRlZmluZWRgXG4gICAgICAvLyBmb3IgTlBDRywgbGlrZSBJRTguIE5PVEU6IFRoaXMgZG9lc24nIHdvcmsgZm9yIC8oLj8pPy9cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1sb29wLWZ1bmNcbiAgICAgIG5hdGl2ZVJlcGxhY2UuY2FsbChtYXRjaFswXSwgcmVDb3B5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMjsgaSsrKSB7XG4gICAgICAgICAgaWYgKGFyZ3VtZW50c1tpXSA9PT0gdW5kZWZpbmVkKSBtYXRjaFtpXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGNoZWRFeGVjO1xuIiwiLy8gNy4yLjkgU2FtZVZhbHVlKHgsIHkpXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5pcyB8fCBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgcmV0dXJuIHggPT09IHkgPyB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geSA6IHggIT0geCAmJiB5ICE9IHk7XG59O1xuIiwiLy8gV29ya3Mgd2l0aCBfX3Byb3RvX18gb25seS4gT2xkIHY4IGNhbid0IHdvcmsgd2l0aCBudWxsIHByb3RvIG9iamVjdHMuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBjaGVjayA9IGZ1bmN0aW9uIChPLCBwcm90bykge1xuICBhbk9iamVjdChPKTtcbiAgaWYgKCFpc09iamVjdChwcm90bykgJiYgcHJvdG8gIT09IG51bGwpIHRocm93IFR5cGVFcnJvcihwcm90byArIFwiOiBjYW4ndCBzZXQgYXMgcHJvdG90eXBlIVwiKTtcbn07XG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgKCdfX3Byb3RvX18nIGluIHt9ID8gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIGZ1bmN0aW9uICh0ZXN0LCBidWdneSwgc2V0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzZXQgPSByZXF1aXJlKCcuL19jdHgnKShGdW5jdGlvbi5jYWxsLCByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpLmYoT2JqZWN0LnByb3RvdHlwZSwgJ19fcHJvdG9fXycpLnNldCwgMik7XG4gICAgICAgIHNldCh0ZXN0LCBbXSk7XG4gICAgICAgIGJ1Z2d5ID0gISh0ZXN0IGluc3RhbmNlb2YgQXJyYXkpO1xuICAgICAgfSBjYXRjaCAoZSkgeyBidWdneSA9IHRydWU7IH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgICAgICBjaGVjayhPLCBwcm90byk7XG4gICAgICAgIGlmIChidWdneSkgTy5fX3Byb3RvX18gPSBwcm90bztcbiAgICAgICAgZWxzZSBzZXQoTywgcHJvdG8pO1xuICAgICAgICByZXR1cm4gTztcbiAgICAgIH07XG4gICAgfSh7fSwgZmFsc2UpIDogdW5kZWZpbmVkKSxcbiAgY2hlY2s6IGNoZWNrXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpO1xudmFyIFNQRUNJRVMgPSByZXF1aXJlKCcuL193a3MnKSgnc3BlY2llcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVkpIHtcbiAgdmFyIEMgPSBnbG9iYWxbS0VZXTtcbiAgaWYgKERFU0NSSVBUT1JTICYmIEMgJiYgIUNbU1BFQ0lFU10pIGRQLmYoQywgU1BFQ0lFUywge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH1cbiAgfSk7XG59O1xuIiwidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcbiIsInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAyMCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwiLy8gNy4zLjIwIFNwZWNpZXNDb25zdHJ1Y3RvcihPLCBkZWZhdWx0Q29uc3RydWN0b3IpXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG52YXIgU1BFQ0lFUyA9IHJlcXVpcmUoJy4vX3drcycpKCdzcGVjaWVzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBEKSB7XG4gIHZhciBDID0gYW5PYmplY3QoTykuY29uc3RydWN0b3I7XG4gIHZhciBTO1xuICByZXR1cm4gQyA9PT0gdW5kZWZpbmVkIHx8IChTID0gYW5PYmplY3QoQylbU1BFQ0lFU10pID09IHVuZGVmaW5lZCA/IEQgOiBhRnVuY3Rpb24oUyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobWV0aG9kLCBhcmcpIHtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsXG4gICAgYXJnID8gbWV0aG9kLmNhbGwobnVsbCwgZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAxKSA6IG1ldGhvZC5jYWxsKG51bGwpO1xuICB9KTtcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG4vLyB0cnVlICAtPiBTdHJpbmcjYXRcbi8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoVE9fU1RSSU5HKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGhhdCwgcG9zKSB7XG4gICAgdmFyIHMgPSBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7XG4gICAgdmFyIGkgPSB0b0ludGVnZXIocG9zKTtcbiAgICB2YXIgbCA9IHMubGVuZ3RoO1xuICAgIHZhciBhLCBiO1xuICAgIGlmIChpIDwgMCB8fCBpID49IGwpIHJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDtcbiAgICBhID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG4gICAgICA/IFRPX1NUUklORyA/IHMuY2hhckF0KGkpIDogYVxuICAgICAgOiBUT19TVFJJTkcgPyBzLnNsaWNlKGksIGkgKyAyKSA6IChhIC0gMHhkODAwIDw8IDEwKSArIChiIC0gMHhkYzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuIiwiLy8gaGVscGVyIGZvciBTdHJpbmcje3N0YXJ0c1dpdGgsIGVuZHNXaXRoLCBpbmNsdWRlc31cbnZhciBpc1JlZ0V4cCA9IHJlcXVpcmUoJy4vX2lzLXJlZ2V4cCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRoYXQsIHNlYXJjaFN0cmluZywgTkFNRSkge1xuICBpZiAoaXNSZWdFeHAoc2VhcmNoU3RyaW5nKSkgdGhyb3cgVHlwZUVycm9yKCdTdHJpbmcjJyArIE5BTUUgKyBcIiBkb2Vzbid0IGFjY2VwdCByZWdleCFcIik7XG4gIHJldHVybiBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7XG59O1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbnZhciBxdW90ID0gL1wiL2c7XG4vLyBCLjIuMy4yLjEgQ3JlYXRlSFRNTChzdHJpbmcsIHRhZywgYXR0cmlidXRlLCB2YWx1ZSlcbnZhciBjcmVhdGVIVE1MID0gZnVuY3Rpb24gKHN0cmluZywgdGFnLCBhdHRyaWJ1dGUsIHZhbHVlKSB7XG4gIHZhciBTID0gU3RyaW5nKGRlZmluZWQoc3RyaW5nKSk7XG4gIHZhciBwMSA9ICc8JyArIHRhZztcbiAgaWYgKGF0dHJpYnV0ZSAhPT0gJycpIHAxICs9ICcgJyArIGF0dHJpYnV0ZSArICc9XCInICsgU3RyaW5nKHZhbHVlKS5yZXBsYWNlKHF1b3QsICcmcXVvdDsnKSArICdcIic7XG4gIHJldHVybiBwMSArICc+JyArIFMgKyAnPC8nICsgdGFnICsgJz4nO1xufTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE5BTUUsIGV4ZWMpIHtcbiAgdmFyIE8gPSB7fTtcbiAgT1tOQU1FXSA9IGV4ZWMoY3JlYXRlSFRNTCk7XG4gICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHZhciB0ZXN0ID0gJydbTkFNRV0oJ1wiJyk7XG4gICAgcmV0dXJuIHRlc3QgIT09IHRlc3QudG9Mb3dlckNhc2UoKSB8fCB0ZXN0LnNwbGl0KCdcIicpLmxlbmd0aCA+IDM7XG4gIH0pLCAnU3RyaW5nJywgTyk7XG59O1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtc3RyaW5nLXBhZC1zdGFydC1lbmRcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIHJlcGVhdCA9IHJlcXVpcmUoJy4vX3N0cmluZy1yZXBlYXQnKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0aGF0LCBtYXhMZW5ndGgsIGZpbGxTdHJpbmcsIGxlZnQpIHtcbiAgdmFyIFMgPSBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7XG4gIHZhciBzdHJpbmdMZW5ndGggPSBTLmxlbmd0aDtcbiAgdmFyIGZpbGxTdHIgPSBmaWxsU3RyaW5nID09PSB1bmRlZmluZWQgPyAnICcgOiBTdHJpbmcoZmlsbFN0cmluZyk7XG4gIHZhciBpbnRNYXhMZW5ndGggPSB0b0xlbmd0aChtYXhMZW5ndGgpO1xuICBpZiAoaW50TWF4TGVuZ3RoIDw9IHN0cmluZ0xlbmd0aCB8fCBmaWxsU3RyID09ICcnKSByZXR1cm4gUztcbiAgdmFyIGZpbGxMZW4gPSBpbnRNYXhMZW5ndGggLSBzdHJpbmdMZW5ndGg7XG4gIHZhciBzdHJpbmdGaWxsZXIgPSByZXBlYXQuY2FsbChmaWxsU3RyLCBNYXRoLmNlaWwoZmlsbExlbiAvIGZpbGxTdHIubGVuZ3RoKSk7XG4gIGlmIChzdHJpbmdGaWxsZXIubGVuZ3RoID4gZmlsbExlbikgc3RyaW5nRmlsbGVyID0gc3RyaW5nRmlsbGVyLnNsaWNlKDAsIGZpbGxMZW4pO1xuICByZXR1cm4gbGVmdCA/IHN0cmluZ0ZpbGxlciArIFMgOiBTICsgc3RyaW5nRmlsbGVyO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiByZXBlYXQoY291bnQpIHtcbiAgdmFyIHN0ciA9IFN0cmluZyhkZWZpbmVkKHRoaXMpKTtcbiAgdmFyIHJlcyA9ICcnO1xuICB2YXIgbiA9IHRvSW50ZWdlcihjb3VudCk7XG4gIGlmIChuIDwgMCB8fCBuID09IEluZmluaXR5KSB0aHJvdyBSYW5nZUVycm9yKFwiQ291bnQgY2FuJ3QgYmUgbmVnYXRpdmVcIik7XG4gIGZvciAoO24gPiAwOyAobiA+Pj49IDEpICYmIChzdHIgKz0gc3RyKSkgaWYgKG4gJiAxKSByZXMgKz0gc3RyO1xuICByZXR1cm4gcmVzO1xufTtcbiIsInZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgc3BhY2VzID0gcmVxdWlyZSgnLi9fc3RyaW5nLXdzJyk7XG52YXIgc3BhY2UgPSAnWycgKyBzcGFjZXMgKyAnXSc7XG52YXIgbm9uID0gJ1xcdTIwMGJcXHUwMDg1JztcbnZhciBsdHJpbSA9IFJlZ0V4cCgnXicgKyBzcGFjZSArIHNwYWNlICsgJyonKTtcbnZhciBydHJpbSA9IFJlZ0V4cChzcGFjZSArIHNwYWNlICsgJyokJyk7XG5cbnZhciBleHBvcnRlciA9IGZ1bmN0aW9uIChLRVksIGV4ZWMsIEFMSUFTKSB7XG4gIHZhciBleHAgPSB7fTtcbiAgdmFyIEZPUkNFID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhIXNwYWNlc1tLRVldKCkgfHwgbm9uW0tFWV0oKSAhPSBub247XG4gIH0pO1xuICB2YXIgZm4gPSBleHBbS0VZXSA9IEZPUkNFID8gZXhlYyh0cmltKSA6IHNwYWNlc1tLRVldO1xuICBpZiAoQUxJQVMpIGV4cFtBTElBU10gPSBmbjtcbiAgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiBGT1JDRSwgJ1N0cmluZycsIGV4cCk7XG59O1xuXG4vLyAxIC0+IFN0cmluZyN0cmltTGVmdFxuLy8gMiAtPiBTdHJpbmcjdHJpbVJpZ2h0XG4vLyAzIC0+IFN0cmluZyN0cmltXG52YXIgdHJpbSA9IGV4cG9ydGVyLnRyaW0gPSBmdW5jdGlvbiAoc3RyaW5nLCBUWVBFKSB7XG4gIHN0cmluZyA9IFN0cmluZyhkZWZpbmVkKHN0cmluZykpO1xuICBpZiAoVFlQRSAmIDEpIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKGx0cmltLCAnJyk7XG4gIGlmIChUWVBFICYgMikgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UocnRyaW0sICcnKTtcbiAgcmV0dXJuIHN0cmluZztcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0ZXI7XG4iLCJtb2R1bGUuZXhwb3J0cyA9ICdcXHgwOVxceDBBXFx4MEJcXHgwQ1xceDBEXFx4MjBcXHhBMFxcdTE2ODBcXHUxODBFXFx1MjAwMFxcdTIwMDFcXHUyMDAyXFx1MjAwMycgK1xuICAnXFx1MjAwNFxcdTIwMDVcXHUyMDA2XFx1MjAwN1xcdTIwMDhcXHUyMDA5XFx1MjAwQVxcdTIwMkZcXHUyMDVGXFx1MzAwMFxcdTIwMjhcXHUyMDI5XFx1RkVGRic7XG4iLCJ2YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgaW52b2tlID0gcmVxdWlyZSgnLi9faW52b2tlJyk7XG52YXIgaHRtbCA9IHJlcXVpcmUoJy4vX2h0bWwnKTtcbnZhciBjZWwgPSByZXF1aXJlKCcuL19kb20tY3JlYXRlJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgcHJvY2VzcyA9IGdsb2JhbC5wcm9jZXNzO1xudmFyIHNldFRhc2sgPSBnbG9iYWwuc2V0SW1tZWRpYXRlO1xudmFyIGNsZWFyVGFzayA9IGdsb2JhbC5jbGVhckltbWVkaWF0ZTtcbnZhciBNZXNzYWdlQ2hhbm5lbCA9IGdsb2JhbC5NZXNzYWdlQ2hhbm5lbDtcbnZhciBEaXNwYXRjaCA9IGdsb2JhbC5EaXNwYXRjaDtcbnZhciBjb3VudGVyID0gMDtcbnZhciBxdWV1ZSA9IHt9O1xudmFyIE9OUkVBRFlTVEFURUNIQU5HRSA9ICdvbnJlYWR5c3RhdGVjaGFuZ2UnO1xudmFyIGRlZmVyLCBjaGFubmVsLCBwb3J0O1xudmFyIHJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGlkID0gK3RoaXM7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgaWYgKHF1ZXVlLmhhc093blByb3BlcnR5KGlkKSkge1xuICAgIHZhciBmbiA9IHF1ZXVlW2lkXTtcbiAgICBkZWxldGUgcXVldWVbaWRdO1xuICAgIGZuKCk7XG4gIH1cbn07XG52YXIgbGlzdGVuZXIgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgcnVuLmNhbGwoZXZlbnQuZGF0YSk7XG59O1xuLy8gTm9kZS5qcyAwLjkrICYgSUUxMCsgaGFzIHNldEltbWVkaWF0ZSwgb3RoZXJ3aXNlOlxuaWYgKCFzZXRUYXNrIHx8ICFjbGVhclRhc2spIHtcbiAgc2V0VGFzayA9IGZ1bmN0aW9uIHNldEltbWVkaWF0ZShmbikge1xuICAgIHZhciBhcmdzID0gW107XG4gICAgdmFyIGkgPSAxO1xuICAgIHdoaWxlIChhcmd1bWVudHMubGVuZ3RoID4gaSkgYXJncy5wdXNoKGFyZ3VtZW50c1tpKytdKTtcbiAgICBxdWV1ZVsrK2NvdW50ZXJdID0gZnVuY3Rpb24gKCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG4gICAgICBpbnZva2UodHlwZW9mIGZuID09ICdmdW5jdGlvbicgPyBmbiA6IEZ1bmN0aW9uKGZuKSwgYXJncyk7XG4gICAgfTtcbiAgICBkZWZlcihjb3VudGVyKTtcbiAgICByZXR1cm4gY291bnRlcjtcbiAgfTtcbiAgY2xlYXJUYXNrID0gZnVuY3Rpb24gY2xlYXJJbW1lZGlhdGUoaWQpIHtcbiAgICBkZWxldGUgcXVldWVbaWRdO1xuICB9O1xuICAvLyBOb2RlLmpzIDAuOC1cbiAgaWYgKHJlcXVpcmUoJy4vX2NvZicpKHByb2Nlc3MpID09ICdwcm9jZXNzJykge1xuICAgIGRlZmVyID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICBwcm9jZXNzLm5leHRUaWNrKGN0eChydW4sIGlkLCAxKSk7XG4gICAgfTtcbiAgLy8gU3BoZXJlIChKUyBnYW1lIGVuZ2luZSkgRGlzcGF0Y2ggQVBJXG4gIH0gZWxzZSBpZiAoRGlzcGF0Y2ggJiYgRGlzcGF0Y2gubm93KSB7XG4gICAgZGVmZXIgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgIERpc3BhdGNoLm5vdyhjdHgocnVuLCBpZCwgMSkpO1xuICAgIH07XG4gIC8vIEJyb3dzZXJzIHdpdGggTWVzc2FnZUNoYW5uZWwsIGluY2x1ZGVzIFdlYldvcmtlcnNcbiAgfSBlbHNlIGlmIChNZXNzYWdlQ2hhbm5lbCkge1xuICAgIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgICBwb3J0ID0gY2hhbm5lbC5wb3J0MjtcbiAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGxpc3RlbmVyO1xuICAgIGRlZmVyID0gY3R4KHBvcnQucG9zdE1lc3NhZ2UsIHBvcnQsIDEpO1xuICAvLyBCcm93c2VycyB3aXRoIHBvc3RNZXNzYWdlLCBza2lwIFdlYldvcmtlcnNcbiAgLy8gSUU4IGhhcyBwb3N0TWVzc2FnZSwgYnV0IGl0J3Mgc3luYyAmIHR5cGVvZiBpdHMgcG9zdE1lc3NhZ2UgaXMgJ29iamVjdCdcbiAgfSBlbHNlIGlmIChnbG9iYWwuYWRkRXZlbnRMaXN0ZW5lciAmJiB0eXBlb2YgcG9zdE1lc3NhZ2UgPT0gJ2Z1bmN0aW9uJyAmJiAhZ2xvYmFsLmltcG9ydFNjcmlwdHMpIHtcbiAgICBkZWZlciA9IGZ1bmN0aW9uIChpZCkge1xuICAgICAgZ2xvYmFsLnBvc3RNZXNzYWdlKGlkICsgJycsICcqJyk7XG4gICAgfTtcbiAgICBnbG9iYWwuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGxpc3RlbmVyLCBmYWxzZSk7XG4gIC8vIElFOC1cbiAgfSBlbHNlIGlmIChPTlJFQURZU1RBVEVDSEFOR0UgaW4gY2VsKCdzY3JpcHQnKSkge1xuICAgIGRlZmVyID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICBodG1sLmFwcGVuZENoaWxkKGNlbCgnc2NyaXB0JykpW09OUkVBRFlTVEFURUNIQU5HRV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGh0bWwucmVtb3ZlQ2hpbGQodGhpcyk7XG4gICAgICAgIHJ1bi5jYWxsKGlkKTtcbiAgICAgIH07XG4gICAgfTtcbiAgLy8gUmVzdCBvbGQgYnJvd3NlcnNcbiAgfSBlbHNlIHtcbiAgICBkZWZlciA9IGZ1bmN0aW9uIChpZCkge1xuICAgICAgc2V0VGltZW91dChjdHgocnVuLCBpZCwgMSksIDApO1xuICAgIH07XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IHNldFRhc2ssXG4gIGNsZWFyOiBjbGVhclRhc2tcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuICBpbmRleCA9IHRvSW50ZWdlcihpbmRleCk7XG4gIHJldHVybiBpbmRleCA8IDAgPyBtYXgoaW5kZXggKyBsZW5ndGgsIDApIDogbWluKGluZGV4LCBsZW5ndGgpO1xufTtcbiIsIi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRvaW5kZXhcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gMDtcbiAgdmFyIG51bWJlciA9IHRvSW50ZWdlcihpdCk7XG4gIHZhciBsZW5ndGggPSB0b0xlbmd0aChudW1iZXIpO1xuICBpZiAobnVtYmVyICE9PSBsZW5ndGgpIHRocm93IFJhbmdlRXJyb3IoJ1dyb25nIGxlbmd0aCEnKTtcbiAgcmV0dXJuIGxlbmd0aDtcbn07XG4iLCIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcbiIsIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG4iLCIvLyA3LjEuMTUgVG9MZW5ndGhcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPiAwID8gbWluKHRvSW50ZWdlcihpdCksIDB4MWZmZmZmZmZmZmZmZmYpIDogMDsgLy8gcG93KDIsIDUzKSAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsIi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudClcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIE9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwiLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFMpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuaWYgKHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykpIHtcbiAgdmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG4gIHZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbiAgdmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbiAgdmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbiAgdmFyICR0eXBlZCA9IHJlcXVpcmUoJy4vX3R5cGVkJyk7XG4gIHZhciAkYnVmZmVyID0gcmVxdWlyZSgnLi9fdHlwZWQtYnVmZmVyJyk7XG4gIHZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbiAgdmFyIGFuSW5zdGFuY2UgPSByZXF1aXJlKCcuL19hbi1pbnN0YW5jZScpO1xuICB2YXIgcHJvcGVydHlEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xuICB2YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbiAgdmFyIHJlZGVmaW5lQWxsID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUtYWxsJyk7XG4gIHZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG4gIHZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xuICB2YXIgdG9JbmRleCA9IHJlcXVpcmUoJy4vX3RvLWluZGV4Jyk7XG4gIHZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xuICB2YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbiAgdmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xuICB2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4vX2NsYXNzb2YnKTtcbiAgdmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4gIHZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xuICB2YXIgaXNBcnJheUl0ZXIgPSByZXF1aXJlKCcuL19pcy1hcnJheS1pdGVyJyk7XG4gIHZhciBjcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG4gIHZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcbiAgdmFyIGdPUE4gPSByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmY7XG4gIHZhciBnZXRJdGVyRm4gPSByZXF1aXJlKCcuL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuICB2YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG4gIHZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcbiAgdmFyIGNyZWF0ZUFycmF5TWV0aG9kID0gcmVxdWlyZSgnLi9fYXJyYXktbWV0aG9kcycpO1xuICB2YXIgY3JlYXRlQXJyYXlJbmNsdWRlcyA9IHJlcXVpcmUoJy4vX2FycmF5LWluY2x1ZGVzJyk7XG4gIHZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuL19zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG4gIHZhciBBcnJheUl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vZXM2LmFycmF5Lml0ZXJhdG9yJyk7XG4gIHZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbiAgdmFyICRpdGVyRGV0ZWN0ID0gcmVxdWlyZSgnLi9faXRlci1kZXRlY3QnKTtcbiAgdmFyIHNldFNwZWNpZXMgPSByZXF1aXJlKCcuL19zZXQtc3BlY2llcycpO1xuICB2YXIgYXJyYXlGaWxsID0gcmVxdWlyZSgnLi9fYXJyYXktZmlsbCcpO1xuICB2YXIgYXJyYXlDb3B5V2l0aGluID0gcmVxdWlyZSgnLi9fYXJyYXktY29weS13aXRoaW4nKTtcbiAgdmFyICREUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xuICB2YXIgJEdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpO1xuICB2YXIgZFAgPSAkRFAuZjtcbiAgdmFyIGdPUEQgPSAkR09QRC5mO1xuICB2YXIgUmFuZ2VFcnJvciA9IGdsb2JhbC5SYW5nZUVycm9yO1xuICB2YXIgVHlwZUVycm9yID0gZ2xvYmFsLlR5cGVFcnJvcjtcbiAgdmFyIFVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheTtcbiAgdmFyIEFSUkFZX0JVRkZFUiA9ICdBcnJheUJ1ZmZlcic7XG4gIHZhciBTSEFSRURfQlVGRkVSID0gJ1NoYXJlZCcgKyBBUlJBWV9CVUZGRVI7XG4gIHZhciBCWVRFU19QRVJfRUxFTUVOVCA9ICdCWVRFU19QRVJfRUxFTUVOVCc7XG4gIHZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbiAgdmFyIEFycmF5UHJvdG8gPSBBcnJheVtQUk9UT1RZUEVdO1xuICB2YXIgJEFycmF5QnVmZmVyID0gJGJ1ZmZlci5BcnJheUJ1ZmZlcjtcbiAgdmFyICREYXRhVmlldyA9ICRidWZmZXIuRGF0YVZpZXc7XG4gIHZhciBhcnJheUZvckVhY2ggPSBjcmVhdGVBcnJheU1ldGhvZCgwKTtcbiAgdmFyIGFycmF5RmlsdGVyID0gY3JlYXRlQXJyYXlNZXRob2QoMik7XG4gIHZhciBhcnJheVNvbWUgPSBjcmVhdGVBcnJheU1ldGhvZCgzKTtcbiAgdmFyIGFycmF5RXZlcnkgPSBjcmVhdGVBcnJheU1ldGhvZCg0KTtcbiAgdmFyIGFycmF5RmluZCA9IGNyZWF0ZUFycmF5TWV0aG9kKDUpO1xuICB2YXIgYXJyYXlGaW5kSW5kZXggPSBjcmVhdGVBcnJheU1ldGhvZCg2KTtcbiAgdmFyIGFycmF5SW5jbHVkZXMgPSBjcmVhdGVBcnJheUluY2x1ZGVzKHRydWUpO1xuICB2YXIgYXJyYXlJbmRleE9mID0gY3JlYXRlQXJyYXlJbmNsdWRlcyhmYWxzZSk7XG4gIHZhciBhcnJheVZhbHVlcyA9IEFycmF5SXRlcmF0b3JzLnZhbHVlcztcbiAgdmFyIGFycmF5S2V5cyA9IEFycmF5SXRlcmF0b3JzLmtleXM7XG4gIHZhciBhcnJheUVudHJpZXMgPSBBcnJheUl0ZXJhdG9ycy5lbnRyaWVzO1xuICB2YXIgYXJyYXlMYXN0SW5kZXhPZiA9IEFycmF5UHJvdG8ubGFzdEluZGV4T2Y7XG4gIHZhciBhcnJheVJlZHVjZSA9IEFycmF5UHJvdG8ucmVkdWNlO1xuICB2YXIgYXJyYXlSZWR1Y2VSaWdodCA9IEFycmF5UHJvdG8ucmVkdWNlUmlnaHQ7XG4gIHZhciBhcnJheUpvaW4gPSBBcnJheVByb3RvLmpvaW47XG4gIHZhciBhcnJheVNvcnQgPSBBcnJheVByb3RvLnNvcnQ7XG4gIHZhciBhcnJheVNsaWNlID0gQXJyYXlQcm90by5zbGljZTtcbiAgdmFyIGFycmF5VG9TdHJpbmcgPSBBcnJheVByb3RvLnRvU3RyaW5nO1xuICB2YXIgYXJyYXlUb0xvY2FsZVN0cmluZyA9IEFycmF5UHJvdG8udG9Mb2NhbGVTdHJpbmc7XG4gIHZhciBJVEVSQVRPUiA9IHdrcygnaXRlcmF0b3InKTtcbiAgdmFyIFRBRyA9IHdrcygndG9TdHJpbmdUYWcnKTtcbiAgdmFyIFRZUEVEX0NPTlNUUlVDVE9SID0gdWlkKCd0eXBlZF9jb25zdHJ1Y3RvcicpO1xuICB2YXIgREVGX0NPTlNUUlVDVE9SID0gdWlkKCdkZWZfY29uc3RydWN0b3InKTtcbiAgdmFyIEFMTF9DT05TVFJVQ1RPUlMgPSAkdHlwZWQuQ09OU1RSO1xuICB2YXIgVFlQRURfQVJSQVkgPSAkdHlwZWQuVFlQRUQ7XG4gIHZhciBWSUVXID0gJHR5cGVkLlZJRVc7XG4gIHZhciBXUk9OR19MRU5HVEggPSAnV3JvbmcgbGVuZ3RoISc7XG5cbiAgdmFyICRtYXAgPSBjcmVhdGVBcnJheU1ldGhvZCgxLCBmdW5jdGlvbiAoTywgbGVuZ3RoKSB7XG4gICAgcmV0dXJuIGFsbG9jYXRlKHNwZWNpZXNDb25zdHJ1Y3RvcihPLCBPW0RFRl9DT05TVFJVQ1RPUl0pLCBsZW5ndGgpO1xuICB9KTtcblxuICB2YXIgTElUVExFX0VORElBTiA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkobmV3IFVpbnQxNkFycmF5KFsxXSkuYnVmZmVyKVswXSA9PT0gMTtcbiAgfSk7XG5cbiAgdmFyIEZPUkNFRF9TRVQgPSAhIVVpbnQ4QXJyYXkgJiYgISFVaW50OEFycmF5W1BST1RPVFlQRV0uc2V0ICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICBuZXcgVWludDhBcnJheSgxKS5zZXQoe30pO1xuICB9KTtcblxuICB2YXIgdG9PZmZzZXQgPSBmdW5jdGlvbiAoaXQsIEJZVEVTKSB7XG4gICAgdmFyIG9mZnNldCA9IHRvSW50ZWdlcihpdCk7XG4gICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ICUgQllURVMpIHRocm93IFJhbmdlRXJyb3IoJ1dyb25nIG9mZnNldCEnKTtcbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9O1xuXG4gIHZhciB2YWxpZGF0ZSA9IGZ1bmN0aW9uIChpdCkge1xuICAgIGlmIChpc09iamVjdChpdCkgJiYgVFlQRURfQVJSQVkgaW4gaXQpIHJldHVybiBpdDtcbiAgICB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIHR5cGVkIGFycmF5IScpO1xuICB9O1xuXG4gIHZhciBhbGxvY2F0ZSA9IGZ1bmN0aW9uIChDLCBsZW5ndGgpIHtcbiAgICBpZiAoIShpc09iamVjdChDKSAmJiBUWVBFRF9DT05TVFJVQ1RPUiBpbiBDKSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdJdCBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciEnKTtcbiAgICB9IHJldHVybiBuZXcgQyhsZW5ndGgpO1xuICB9O1xuXG4gIHZhciBzcGVjaWVzRnJvbUxpc3QgPSBmdW5jdGlvbiAoTywgbGlzdCkge1xuICAgIHJldHVybiBmcm9tTGlzdChzcGVjaWVzQ29uc3RydWN0b3IoTywgT1tERUZfQ09OU1RSVUNUT1JdKSwgbGlzdCk7XG4gIH07XG5cbiAgdmFyIGZyb21MaXN0ID0gZnVuY3Rpb24gKEMsIGxpc3QpIHtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBsZW5ndGggPSBsaXN0Lmxlbmd0aDtcbiAgICB2YXIgcmVzdWx0ID0gYWxsb2NhdGUoQywgbGVuZ3RoKTtcbiAgICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHJlc3VsdFtpbmRleF0gPSBsaXN0W2luZGV4KytdO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgdmFyIGFkZEdldHRlciA9IGZ1bmN0aW9uIChpdCwga2V5LCBpbnRlcm5hbCkge1xuICAgIGRQKGl0LCBrZXksIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9kW2ludGVybmFsXTsgfSB9KTtcbiAgfTtcblxuICB2YXIgJGZyb20gPSBmdW5jdGlvbiBmcm9tKHNvdXJjZSAvKiAsIG1hcGZuLCB0aGlzQXJnICovKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdChzb3VyY2UpO1xuICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgbWFwZm4gPSBhTGVuID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgbWFwcGluZyA9IG1hcGZuICE9PSB1bmRlZmluZWQ7XG4gICAgdmFyIGl0ZXJGbiA9IGdldEl0ZXJGbihPKTtcbiAgICB2YXIgaSwgbGVuZ3RoLCB2YWx1ZXMsIHJlc3VsdCwgc3RlcCwgaXRlcmF0b3I7XG4gICAgaWYgKGl0ZXJGbiAhPSB1bmRlZmluZWQgJiYgIWlzQXJyYXlJdGVyKGl0ZXJGbikpIHtcbiAgICAgIGZvciAoaXRlcmF0b3IgPSBpdGVyRm4uY2FsbChPKSwgdmFsdWVzID0gW10sIGkgPSAwOyAhKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmU7IGkrKykge1xuICAgICAgICB2YWx1ZXMucHVzaChzdGVwLnZhbHVlKTtcbiAgICAgIH0gTyA9IHZhbHVlcztcbiAgICB9XG4gICAgaWYgKG1hcHBpbmcgJiYgYUxlbiA+IDIpIG1hcGZuID0gY3R4KG1hcGZuLCBhcmd1bWVudHNbMl0sIDIpO1xuICAgIGZvciAoaSA9IDAsIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKSwgcmVzdWx0ID0gYWxsb2NhdGUodGhpcywgbGVuZ3RoKTsgbGVuZ3RoID4gaTsgaSsrKSB7XG4gICAgICByZXN1bHRbaV0gPSBtYXBwaW5nID8gbWFwZm4oT1tpXSwgaSkgOiBPW2ldO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIHZhciAkb2YgPSBmdW5jdGlvbiBvZigvKiAuLi5pdGVtcyAqLykge1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIHJlc3VsdCA9IGFsbG9jYXRlKHRoaXMsIGxlbmd0aCk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSByZXN1bHRbaW5kZXhdID0gYXJndW1lbnRzW2luZGV4KytdO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgLy8gaU9TIFNhZmFyaSA2LnggZmFpbHMgaGVyZVxuICB2YXIgVE9fTE9DQUxFX0JVRyA9ICEhVWludDhBcnJheSAmJiBmYWlscyhmdW5jdGlvbiAoKSB7IGFycmF5VG9Mb2NhbGVTdHJpbmcuY2FsbChuZXcgVWludDhBcnJheSgxKSk7IH0pO1xuXG4gIHZhciAkdG9Mb2NhbGVTdHJpbmcgPSBmdW5jdGlvbiB0b0xvY2FsZVN0cmluZygpIHtcbiAgICByZXR1cm4gYXJyYXlUb0xvY2FsZVN0cmluZy5hcHBseShUT19MT0NBTEVfQlVHID8gYXJyYXlTbGljZS5jYWxsKHZhbGlkYXRlKHRoaXMpKSA6IHZhbGlkYXRlKHRoaXMpLCBhcmd1bWVudHMpO1xuICB9O1xuXG4gIHZhciBwcm90byA9IHtcbiAgICBjb3B5V2l0aGluOiBmdW5jdGlvbiBjb3B5V2l0aGluKHRhcmdldCwgc3RhcnQgLyogLCBlbmQgKi8pIHtcbiAgICAgIHJldHVybiBhcnJheUNvcHlXaXRoaW4uY2FsbCh2YWxpZGF0ZSh0aGlzKSwgdGFyZ2V0LCBzdGFydCwgYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgZXZlcnk6IGZ1bmN0aW9uIGV2ZXJ5KGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgICByZXR1cm4gYXJyYXlFdmVyeSh2YWxpZGF0ZSh0aGlzKSwgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgZmlsbDogZnVuY3Rpb24gZmlsbCh2YWx1ZSAvKiAsIHN0YXJ0LCBlbmQgKi8pIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgICAgcmV0dXJuIGFycmF5RmlsbC5hcHBseSh2YWxpZGF0ZSh0aGlzKSwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIGZpbHRlcjogZnVuY3Rpb24gZmlsdGVyKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgICByZXR1cm4gc3BlY2llc0Zyb21MaXN0KHRoaXMsIGFycmF5RmlsdGVyKHZhbGlkYXRlKHRoaXMpLCBjYWxsYmFja2ZuLFxuICAgICAgICBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCkpO1xuICAgIH0sXG4gICAgZmluZDogZnVuY3Rpb24gZmluZChwcmVkaWNhdGUgLyogLCB0aGlzQXJnICovKSB7XG4gICAgICByZXR1cm4gYXJyYXlGaW5kKHZhbGlkYXRlKHRoaXMpLCBwcmVkaWNhdGUsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgICB9LFxuICAgIGZpbmRJbmRleDogZnVuY3Rpb24gZmluZEluZGV4KHByZWRpY2F0ZSAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICAgIHJldHVybiBhcnJheUZpbmRJbmRleCh2YWxpZGF0ZSh0aGlzKSwgcHJlZGljYXRlLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gICAgfSxcbiAgICBmb3JFYWNoOiBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgICBhcnJheUZvckVhY2godmFsaWRhdGUodGhpcyksIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgICB9LFxuICAgIGluZGV4T2Y6IGZ1bmN0aW9uIGluZGV4T2Yoc2VhcmNoRWxlbWVudCAvKiAsIGZyb21JbmRleCAqLykge1xuICAgICAgcmV0dXJuIGFycmF5SW5kZXhPZih2YWxpZGF0ZSh0aGlzKSwgc2VhcmNoRWxlbWVudCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgaW5jbHVkZXM6IGZ1bmN0aW9uIGluY2x1ZGVzKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggKi8pIHtcbiAgICAgIHJldHVybiBhcnJheUluY2x1ZGVzKHZhbGlkYXRlKHRoaXMpLCBzZWFyY2hFbGVtZW50LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gICAgfSxcbiAgICBqb2luOiBmdW5jdGlvbiBqb2luKHNlcGFyYXRvcikgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICByZXR1cm4gYXJyYXlKb2luLmFwcGx5KHZhbGlkYXRlKHRoaXMpLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgbGFzdEluZGV4T2Y6IGZ1bmN0aW9uIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggKi8pIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgICAgcmV0dXJuIGFycmF5TGFzdEluZGV4T2YuYXBwbHkodmFsaWRhdGUodGhpcyksIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBtYXA6IGZ1bmN0aW9uIG1hcChtYXBmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICAgIHJldHVybiAkbWFwKHZhbGlkYXRlKHRoaXMpLCBtYXBmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgcmVkdWNlOiBmdW5jdGlvbiByZWR1Y2UoY2FsbGJhY2tmbiAvKiAsIGluaXRpYWxWYWx1ZSAqLykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICByZXR1cm4gYXJyYXlSZWR1Y2UuYXBwbHkodmFsaWRhdGUodGhpcyksIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICByZWR1Y2VSaWdodDogZnVuY3Rpb24gcmVkdWNlUmlnaHQoY2FsbGJhY2tmbiAvKiAsIGluaXRpYWxWYWx1ZSAqLykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICByZXR1cm4gYXJyYXlSZWR1Y2VSaWdodC5hcHBseSh2YWxpZGF0ZSh0aGlzKSwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIHJldmVyc2U6IGZ1bmN0aW9uIHJldmVyc2UoKSB7XG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICB2YXIgbGVuZ3RoID0gdmFsaWRhdGUodGhhdCkubGVuZ3RoO1xuICAgICAgdmFyIG1pZGRsZSA9IE1hdGguZmxvb3IobGVuZ3RoIC8gMik7XG4gICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgdmFyIHZhbHVlO1xuICAgICAgd2hpbGUgKGluZGV4IDwgbWlkZGxlKSB7XG4gICAgICAgIHZhbHVlID0gdGhhdFtpbmRleF07XG4gICAgICAgIHRoYXRbaW5kZXgrK10gPSB0aGF0Wy0tbGVuZ3RoXTtcbiAgICAgICAgdGhhdFtsZW5ndGhdID0gdmFsdWU7XG4gICAgICB9IHJldHVybiB0aGF0O1xuICAgIH0sXG4gICAgc29tZTogZnVuY3Rpb24gc29tZShjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgICAgcmV0dXJuIGFycmF5U29tZSh2YWxpZGF0ZSh0aGlzKSwgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgc29ydDogZnVuY3Rpb24gc29ydChjb21wYXJlZm4pIHtcbiAgICAgIHJldHVybiBhcnJheVNvcnQuY2FsbCh2YWxpZGF0ZSh0aGlzKSwgY29tcGFyZWZuKTtcbiAgICB9LFxuICAgIHN1YmFycmF5OiBmdW5jdGlvbiBzdWJhcnJheShiZWdpbiwgZW5kKSB7XG4gICAgICB2YXIgTyA9IHZhbGlkYXRlKHRoaXMpO1xuICAgICAgdmFyIGxlbmd0aCA9IE8ubGVuZ3RoO1xuICAgICAgdmFyICRiZWdpbiA9IHRvQWJzb2x1dGVJbmRleChiZWdpbiwgbGVuZ3RoKTtcbiAgICAgIHJldHVybiBuZXcgKHNwZWNpZXNDb25zdHJ1Y3RvcihPLCBPW0RFRl9DT05TVFJVQ1RPUl0pKShcbiAgICAgICAgTy5idWZmZXIsXG4gICAgICAgIE8uYnl0ZU9mZnNldCArICRiZWdpbiAqIE8uQllURVNfUEVSX0VMRU1FTlQsXG4gICAgICAgIHRvTGVuZ3RoKChlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IHRvQWJzb2x1dGVJbmRleChlbmQsIGxlbmd0aCkpIC0gJGJlZ2luKVxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgdmFyICRzbGljZSA9IGZ1bmN0aW9uIHNsaWNlKHN0YXJ0LCBlbmQpIHtcbiAgICByZXR1cm4gc3BlY2llc0Zyb21MaXN0KHRoaXMsIGFycmF5U2xpY2UuY2FsbCh2YWxpZGF0ZSh0aGlzKSwgc3RhcnQsIGVuZCkpO1xuICB9O1xuXG4gIHZhciAkc2V0ID0gZnVuY3Rpb24gc2V0KGFycmF5TGlrZSAvKiAsIG9mZnNldCAqLykge1xuICAgIHZhbGlkYXRlKHRoaXMpO1xuICAgIHZhciBvZmZzZXQgPSB0b09mZnNldChhcmd1bWVudHNbMV0sIDEpO1xuICAgIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICB2YXIgc3JjID0gdG9PYmplY3QoYXJyYXlMaWtlKTtcbiAgICB2YXIgbGVuID0gdG9MZW5ndGgoc3JjLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICBpZiAobGVuICsgb2Zmc2V0ID4gbGVuZ3RoKSB0aHJvdyBSYW5nZUVycm9yKFdST05HX0xFTkdUSCk7XG4gICAgd2hpbGUgKGluZGV4IDwgbGVuKSB0aGlzW29mZnNldCArIGluZGV4XSA9IHNyY1tpbmRleCsrXTtcbiAgfTtcblxuICB2YXIgJGl0ZXJhdG9ycyA9IHtcbiAgICBlbnRyaWVzOiBmdW5jdGlvbiBlbnRyaWVzKCkge1xuICAgICAgcmV0dXJuIGFycmF5RW50cmllcy5jYWxsKHZhbGlkYXRlKHRoaXMpKTtcbiAgICB9LFxuICAgIGtleXM6IGZ1bmN0aW9uIGtleXMoKSB7XG4gICAgICByZXR1cm4gYXJyYXlLZXlzLmNhbGwodmFsaWRhdGUodGhpcykpO1xuICAgIH0sXG4gICAgdmFsdWVzOiBmdW5jdGlvbiB2YWx1ZXMoKSB7XG4gICAgICByZXR1cm4gYXJyYXlWYWx1ZXMuY2FsbCh2YWxpZGF0ZSh0aGlzKSk7XG4gICAgfVxuICB9O1xuXG4gIHZhciBpc1RBSW5kZXggPSBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHtcbiAgICByZXR1cm4gaXNPYmplY3QodGFyZ2V0KVxuICAgICAgJiYgdGFyZ2V0W1RZUEVEX0FSUkFZXVxuICAgICAgJiYgdHlwZW9mIGtleSAhPSAnc3ltYm9sJ1xuICAgICAgJiYga2V5IGluIHRhcmdldFxuICAgICAgJiYgU3RyaW5nKCtrZXkpID09IFN0cmluZyhrZXkpO1xuICB9O1xuICB2YXIgJGdldERlc2MgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIHtcbiAgICByZXR1cm4gaXNUQUluZGV4KHRhcmdldCwga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKSlcbiAgICAgID8gcHJvcGVydHlEZXNjKDIsIHRhcmdldFtrZXldKVxuICAgICAgOiBnT1BEKHRhcmdldCwga2V5KTtcbiAgfTtcbiAgdmFyICRzZXREZXNjID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICBpZiAoaXNUQUluZGV4KHRhcmdldCwga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKSlcbiAgICAgICYmIGlzT2JqZWN0KGRlc2MpXG4gICAgICAmJiBoYXMoZGVzYywgJ3ZhbHVlJylcbiAgICAgICYmICFoYXMoZGVzYywgJ2dldCcpXG4gICAgICAmJiAhaGFzKGRlc2MsICdzZXQnKVxuICAgICAgLy8gVE9ETzogYWRkIHZhbGlkYXRpb24gZGVzY3JpcHRvciB3L28gY2FsbGluZyBhY2Nlc3NvcnNcbiAgICAgICYmICFkZXNjLmNvbmZpZ3VyYWJsZVxuICAgICAgJiYgKCFoYXMoZGVzYywgJ3dyaXRhYmxlJykgfHwgZGVzYy53cml0YWJsZSlcbiAgICAgICYmICghaGFzKGRlc2MsICdlbnVtZXJhYmxlJykgfHwgZGVzYy5lbnVtZXJhYmxlKVxuICAgICkge1xuICAgICAgdGFyZ2V0W2tleV0gPSBkZXNjLnZhbHVlO1xuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9IHJldHVybiBkUCh0YXJnZXQsIGtleSwgZGVzYyk7XG4gIH07XG5cbiAgaWYgKCFBTExfQ09OU1RSVUNUT1JTKSB7XG4gICAgJEdPUEQuZiA9ICRnZXREZXNjO1xuICAgICREUC5mID0gJHNldERlc2M7XG4gIH1cblxuICAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFBTExfQ09OU1RSVUNUT1JTLCAnT2JqZWN0Jywge1xuICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogJGdldERlc2MsXG4gICAgZGVmaW5lUHJvcGVydHk6ICRzZXREZXNjXG4gIH0pO1xuXG4gIGlmIChmYWlscyhmdW5jdGlvbiAoKSB7IGFycmF5VG9TdHJpbmcuY2FsbCh7fSk7IH0pKSB7XG4gICAgYXJyYXlUb1N0cmluZyA9IGFycmF5VG9Mb2NhbGVTdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiBhcnJheUpvaW4uY2FsbCh0aGlzKTtcbiAgICB9O1xuICB9XG5cbiAgdmFyICRUeXBlZEFycmF5UHJvdG90eXBlJCA9IHJlZGVmaW5lQWxsKHt9LCBwcm90byk7XG4gIHJlZGVmaW5lQWxsKCRUeXBlZEFycmF5UHJvdG90eXBlJCwgJGl0ZXJhdG9ycyk7XG4gIGhpZGUoJFR5cGVkQXJyYXlQcm90b3R5cGUkLCBJVEVSQVRPUiwgJGl0ZXJhdG9ycy52YWx1ZXMpO1xuICByZWRlZmluZUFsbCgkVHlwZWRBcnJheVByb3RvdHlwZSQsIHtcbiAgICBzbGljZTogJHNsaWNlLFxuICAgIHNldDogJHNldCxcbiAgICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gKCkgeyAvKiBub29wICovIH0sXG4gICAgdG9TdHJpbmc6IGFycmF5VG9TdHJpbmcsXG4gICAgdG9Mb2NhbGVTdHJpbmc6ICR0b0xvY2FsZVN0cmluZ1xuICB9KTtcbiAgYWRkR2V0dGVyKCRUeXBlZEFycmF5UHJvdG90eXBlJCwgJ2J1ZmZlcicsICdiJyk7XG4gIGFkZEdldHRlcigkVHlwZWRBcnJheVByb3RvdHlwZSQsICdieXRlT2Zmc2V0JywgJ28nKTtcbiAgYWRkR2V0dGVyKCRUeXBlZEFycmF5UHJvdG90eXBlJCwgJ2J5dGVMZW5ndGgnLCAnbCcpO1xuICBhZGRHZXR0ZXIoJFR5cGVkQXJyYXlQcm90b3R5cGUkLCAnbGVuZ3RoJywgJ2UnKTtcbiAgZFAoJFR5cGVkQXJyYXlQcm90b3R5cGUkLCBUQUcsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXNbVFlQRURfQVJSQVldOyB9XG4gIH0pO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtc3RhdGVtZW50c1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVksIEJZVEVTLCB3cmFwcGVyLCBDTEFNUEVEKSB7XG4gICAgQ0xBTVBFRCA9ICEhQ0xBTVBFRDtcbiAgICB2YXIgTkFNRSA9IEtFWSArIChDTEFNUEVEID8gJ0NsYW1wZWQnIDogJycpICsgJ0FycmF5JztcbiAgICB2YXIgR0VUVEVSID0gJ2dldCcgKyBLRVk7XG4gICAgdmFyIFNFVFRFUiA9ICdzZXQnICsgS0VZO1xuICAgIHZhciBUeXBlZEFycmF5ID0gZ2xvYmFsW05BTUVdO1xuICAgIHZhciBCYXNlID0gVHlwZWRBcnJheSB8fCB7fTtcbiAgICB2YXIgVEFDID0gVHlwZWRBcnJheSAmJiBnZXRQcm90b3R5cGVPZihUeXBlZEFycmF5KTtcbiAgICB2YXIgRk9SQ0VEID0gIVR5cGVkQXJyYXkgfHwgISR0eXBlZC5BQlY7XG4gICAgdmFyIE8gPSB7fTtcbiAgICB2YXIgVHlwZWRBcnJheVByb3RvdHlwZSA9IFR5cGVkQXJyYXkgJiYgVHlwZWRBcnJheVtQUk9UT1RZUEVdO1xuICAgIHZhciBnZXR0ZXIgPSBmdW5jdGlvbiAodGhhdCwgaW5kZXgpIHtcbiAgICAgIHZhciBkYXRhID0gdGhhdC5fZDtcbiAgICAgIHJldHVybiBkYXRhLnZbR0VUVEVSXShpbmRleCAqIEJZVEVTICsgZGF0YS5vLCBMSVRUTEVfRU5ESUFOKTtcbiAgICB9O1xuICAgIHZhciBzZXR0ZXIgPSBmdW5jdGlvbiAodGhhdCwgaW5kZXgsIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoYXQuX2Q7XG4gICAgICBpZiAoQ0xBTVBFRCkgdmFsdWUgPSAodmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlKSkgPCAwID8gMCA6IHZhbHVlID4gMHhmZiA/IDB4ZmYgOiB2YWx1ZSAmIDB4ZmY7XG4gICAgICBkYXRhLnZbU0VUVEVSXShpbmRleCAqIEJZVEVTICsgZGF0YS5vLCB2YWx1ZSwgTElUVExFX0VORElBTik7XG4gICAgfTtcbiAgICB2YXIgYWRkRWxlbWVudCA9IGZ1bmN0aW9uICh0aGF0LCBpbmRleCkge1xuICAgICAgZFAodGhhdCwgaW5kZXgsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGdldHRlcih0aGlzLCBpbmRleCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHNldHRlcih0aGlzLCBpbmRleCwgdmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIHtcbiAgICAgIFR5cGVkQXJyYXkgPSB3cmFwcGVyKGZ1bmN0aW9uICh0aGF0LCBkYXRhLCAkb2Zmc2V0LCAkbGVuZ3RoKSB7XG4gICAgICAgIGFuSW5zdGFuY2UodGhhdCwgVHlwZWRBcnJheSwgTkFNRSwgJ19kJyk7XG4gICAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICAgIHZhciBvZmZzZXQgPSAwO1xuICAgICAgICB2YXIgYnVmZmVyLCBieXRlTGVuZ3RoLCBsZW5ndGgsIGtsYXNzO1xuICAgICAgICBpZiAoIWlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICAgICAgbGVuZ3RoID0gdG9JbmRleChkYXRhKTtcbiAgICAgICAgICBieXRlTGVuZ3RoID0gbGVuZ3RoICogQllURVM7XG4gICAgICAgICAgYnVmZmVyID0gbmV3ICRBcnJheUJ1ZmZlcihieXRlTGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgJEFycmF5QnVmZmVyIHx8IChrbGFzcyA9IGNsYXNzb2YoZGF0YSkpID09IEFSUkFZX0JVRkZFUiB8fCBrbGFzcyA9PSBTSEFSRURfQlVGRkVSKSB7XG4gICAgICAgICAgYnVmZmVyID0gZGF0YTtcbiAgICAgICAgICBvZmZzZXQgPSB0b09mZnNldCgkb2Zmc2V0LCBCWVRFUyk7XG4gICAgICAgICAgdmFyICRsZW4gPSBkYXRhLmJ5dGVMZW5ndGg7XG4gICAgICAgICAgaWYgKCRsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKCRsZW4gJSBCWVRFUykgdGhyb3cgUmFuZ2VFcnJvcihXUk9OR19MRU5HVEgpO1xuICAgICAgICAgICAgYnl0ZUxlbmd0aCA9ICRsZW4gLSBvZmZzZXQ7XG4gICAgICAgICAgICBpZiAoYnl0ZUxlbmd0aCA8IDApIHRocm93IFJhbmdlRXJyb3IoV1JPTkdfTEVOR1RIKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYnl0ZUxlbmd0aCA9IHRvTGVuZ3RoKCRsZW5ndGgpICogQllURVM7XG4gICAgICAgICAgICBpZiAoYnl0ZUxlbmd0aCArIG9mZnNldCA+ICRsZW4pIHRocm93IFJhbmdlRXJyb3IoV1JPTkdfTEVOR1RIKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGVuZ3RoID0gYnl0ZUxlbmd0aCAvIEJZVEVTO1xuICAgICAgICB9IGVsc2UgaWYgKFRZUEVEX0FSUkFZIGluIGRhdGEpIHtcbiAgICAgICAgICByZXR1cm4gZnJvbUxpc3QoVHlwZWRBcnJheSwgZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICRmcm9tLmNhbGwoVHlwZWRBcnJheSwgZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgaGlkZSh0aGF0LCAnX2QnLCB7XG4gICAgICAgICAgYjogYnVmZmVyLFxuICAgICAgICAgIG86IG9mZnNldCxcbiAgICAgICAgICBsOiBieXRlTGVuZ3RoLFxuICAgICAgICAgIGU6IGxlbmd0aCxcbiAgICAgICAgICB2OiBuZXcgJERhdGFWaWV3KGJ1ZmZlcilcbiAgICAgICAgfSk7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkgYWRkRWxlbWVudCh0aGF0LCBpbmRleCsrKTtcbiAgICAgIH0pO1xuICAgICAgVHlwZWRBcnJheVByb3RvdHlwZSA9IFR5cGVkQXJyYXlbUFJPVE9UWVBFXSA9IGNyZWF0ZSgkVHlwZWRBcnJheVByb3RvdHlwZSQpO1xuICAgICAgaGlkZShUeXBlZEFycmF5UHJvdG90eXBlLCAnY29uc3RydWN0b3InLCBUeXBlZEFycmF5KTtcbiAgICB9IGVsc2UgaWYgKCFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgICBUeXBlZEFycmF5KDEpO1xuICAgIH0pIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgICBuZXcgVHlwZWRBcnJheSgtMSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3XG4gICAgfSkgfHwgISRpdGVyRGV0ZWN0KGZ1bmN0aW9uIChpdGVyKSB7XG4gICAgICBuZXcgVHlwZWRBcnJheSgpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ld1xuICAgICAgbmV3IFR5cGVkQXJyYXkobnVsbCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3XG4gICAgICBuZXcgVHlwZWRBcnJheSgxLjUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ld1xuICAgICAgbmV3IFR5cGVkQXJyYXkoaXRlcik7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3XG4gICAgfSwgdHJ1ZSkpIHtcbiAgICAgIFR5cGVkQXJyYXkgPSB3cmFwcGVyKGZ1bmN0aW9uICh0aGF0LCBkYXRhLCAkb2Zmc2V0LCAkbGVuZ3RoKSB7XG4gICAgICAgIGFuSW5zdGFuY2UodGhhdCwgVHlwZWRBcnJheSwgTkFNRSk7XG4gICAgICAgIHZhciBrbGFzcztcbiAgICAgICAgLy8gYHdzYCBtb2R1bGUgYnVnLCB0ZW1wb3JhcmlseSByZW1vdmUgdmFsaWRhdGlvbiBsZW5ndGggZm9yIFVpbnQ4QXJyYXlcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnNvY2tldHMvd3MvcHVsbC82NDVcbiAgICAgICAgaWYgKCFpc09iamVjdChkYXRhKSkgcmV0dXJuIG5ldyBCYXNlKHRvSW5kZXgoZGF0YSkpO1xuICAgICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mICRBcnJheUJ1ZmZlciB8fCAoa2xhc3MgPSBjbGFzc29mKGRhdGEpKSA9PSBBUlJBWV9CVUZGRVIgfHwga2xhc3MgPT0gU0hBUkVEX0JVRkZFUikge1xuICAgICAgICAgIHJldHVybiAkbGVuZ3RoICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gbmV3IEJhc2UoZGF0YSwgdG9PZmZzZXQoJG9mZnNldCwgQllURVMpLCAkbGVuZ3RoKVxuICAgICAgICAgICAgOiAkb2Zmc2V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBuZXcgQmFzZShkYXRhLCB0b09mZnNldCgkb2Zmc2V0LCBCWVRFUykpXG4gICAgICAgICAgICAgIDogbmV3IEJhc2UoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFRZUEVEX0FSUkFZIGluIGRhdGEpIHJldHVybiBmcm9tTGlzdChUeXBlZEFycmF5LCBkYXRhKTtcbiAgICAgICAgcmV0dXJuICRmcm9tLmNhbGwoVHlwZWRBcnJheSwgZGF0YSk7XG4gICAgICB9KTtcbiAgICAgIGFycmF5Rm9yRWFjaChUQUMgIT09IEZ1bmN0aW9uLnByb3RvdHlwZSA/IGdPUE4oQmFzZSkuY29uY2F0KGdPUE4oVEFDKSkgOiBnT1BOKEJhc2UpLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGlmICghKGtleSBpbiBUeXBlZEFycmF5KSkgaGlkZShUeXBlZEFycmF5LCBrZXksIEJhc2Vba2V5XSk7XG4gICAgICB9KTtcbiAgICAgIFR5cGVkQXJyYXlbUFJPVE9UWVBFXSA9IFR5cGVkQXJyYXlQcm90b3R5cGU7XG4gICAgICBpZiAoIUxJQlJBUlkpIFR5cGVkQXJyYXlQcm90b3R5cGUuY29uc3RydWN0b3IgPSBUeXBlZEFycmF5O1xuICAgIH1cbiAgICB2YXIgJG5hdGl2ZUl0ZXJhdG9yID0gVHlwZWRBcnJheVByb3RvdHlwZVtJVEVSQVRPUl07XG4gICAgdmFyIENPUlJFQ1RfSVRFUl9OQU1FID0gISEkbmF0aXZlSXRlcmF0b3JcbiAgICAgICYmICgkbmF0aXZlSXRlcmF0b3IubmFtZSA9PSAndmFsdWVzJyB8fCAkbmF0aXZlSXRlcmF0b3IubmFtZSA9PSB1bmRlZmluZWQpO1xuICAgIHZhciAkaXRlcmF0b3IgPSAkaXRlcmF0b3JzLnZhbHVlcztcbiAgICBoaWRlKFR5cGVkQXJyYXksIFRZUEVEX0NPTlNUUlVDVE9SLCB0cnVlKTtcbiAgICBoaWRlKFR5cGVkQXJyYXlQcm90b3R5cGUsIFRZUEVEX0FSUkFZLCBOQU1FKTtcbiAgICBoaWRlKFR5cGVkQXJyYXlQcm90b3R5cGUsIFZJRVcsIHRydWUpO1xuICAgIGhpZGUoVHlwZWRBcnJheVByb3RvdHlwZSwgREVGX0NPTlNUUlVDVE9SLCBUeXBlZEFycmF5KTtcblxuICAgIGlmIChDTEFNUEVEID8gbmV3IFR5cGVkQXJyYXkoMSlbVEFHXSAhPSBOQU1FIDogIShUQUcgaW4gVHlwZWRBcnJheVByb3RvdHlwZSkpIHtcbiAgICAgIGRQKFR5cGVkQXJyYXlQcm90b3R5cGUsIFRBRywge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE5BTUU7IH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIE9bTkFNRV0gPSBUeXBlZEFycmF5O1xuXG4gICAgJGV4cG9ydCgkZXhwb3J0LkcgKyAkZXhwb3J0LlcgKyAkZXhwb3J0LkYgKiAoVHlwZWRBcnJheSAhPSBCYXNlKSwgTyk7XG5cbiAgICAkZXhwb3J0KCRleHBvcnQuUywgTkFNRSwge1xuICAgICAgQllURVNfUEVSX0VMRU1FTlQ6IEJZVEVTXG4gICAgfSk7XG5cbiAgICAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqIGZhaWxzKGZ1bmN0aW9uICgpIHsgQmFzZS5vZi5jYWxsKFR5cGVkQXJyYXksIDEpOyB9KSwgTkFNRSwge1xuICAgICAgZnJvbTogJGZyb20sXG4gICAgICBvZjogJG9mXG4gICAgfSk7XG5cbiAgICBpZiAoIShCWVRFU19QRVJfRUxFTUVOVCBpbiBUeXBlZEFycmF5UHJvdG90eXBlKSkgaGlkZShUeXBlZEFycmF5UHJvdG90eXBlLCBCWVRFU19QRVJfRUxFTUVOVCwgQllURVMpO1xuXG4gICAgJGV4cG9ydCgkZXhwb3J0LlAsIE5BTUUsIHByb3RvKTtcblxuICAgIHNldFNwZWNpZXMoTkFNRSk7XG5cbiAgICAkZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIEZPUkNFRF9TRVQsIE5BTUUsIHsgc2V0OiAkc2V0IH0pO1xuXG4gICAgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAhQ09SUkVDVF9JVEVSX05BTUUsIE5BTUUsICRpdGVyYXRvcnMpO1xuXG4gICAgaWYgKCFMSUJSQVJZICYmIFR5cGVkQXJyYXlQcm90b3R5cGUudG9TdHJpbmcgIT0gYXJyYXlUb1N0cmluZykgVHlwZWRBcnJheVByb3RvdHlwZS50b1N0cmluZyA9IGFycmF5VG9TdHJpbmc7XG5cbiAgICAkZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5ldyBUeXBlZEFycmF5KDEpLnNsaWNlKCk7XG4gICAgfSksIE5BTUUsIHsgc2xpY2U6ICRzbGljZSB9KTtcblxuICAgICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBbMSwgMl0udG9Mb2NhbGVTdHJpbmcoKSAhPSBuZXcgVHlwZWRBcnJheShbMSwgMl0pLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgfSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAgIFR5cGVkQXJyYXlQcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcuY2FsbChbMSwgMl0pO1xuICAgIH0pKSwgTkFNRSwgeyB0b0xvY2FsZVN0cmluZzogJHRvTG9jYWxlU3RyaW5nIH0pO1xuXG4gICAgSXRlcmF0b3JzW05BTUVdID0gQ09SUkVDVF9JVEVSX05BTUUgPyAkbmF0aXZlSXRlcmF0b3IgOiAkaXRlcmF0b3I7XG4gICAgaWYgKCFMSUJSQVJZICYmICFDT1JSRUNUX0lURVJfTkFNRSkgaGlkZShUeXBlZEFycmF5UHJvdG90eXBlLCBJVEVSQVRPUiwgJGl0ZXJhdG9yKTtcbiAgfTtcbn0gZWxzZSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyk7XG52YXIgTElCUkFSWSA9IHJlcXVpcmUoJy4vX2xpYnJhcnknKTtcbnZhciAkdHlwZWQgPSByZXF1aXJlKCcuL190eXBlZCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgcmVkZWZpbmVBbGwgPSByZXF1aXJlKCcuL19yZWRlZmluZS1hbGwnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgYW5JbnN0YW5jZSA9IHJlcXVpcmUoJy4vX2FuLWluc3RhbmNlJyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgdG9JbmRleCA9IHJlcXVpcmUoJy4vX3RvLWluZGV4Jyk7XG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJykuZjtcbnZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgYXJyYXlGaWxsID0gcmVxdWlyZSgnLi9fYXJyYXktZmlsbCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBBUlJBWV9CVUZGRVIgPSAnQXJyYXlCdWZmZXInO1xudmFyIERBVEFfVklFVyA9ICdEYXRhVmlldyc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgV1JPTkdfTEVOR1RIID0gJ1dyb25nIGxlbmd0aCEnO1xudmFyIFdST05HX0lOREVYID0gJ1dyb25nIGluZGV4ISc7XG52YXIgJEFycmF5QnVmZmVyID0gZ2xvYmFsW0FSUkFZX0JVRkZFUl07XG52YXIgJERhdGFWaWV3ID0gZ2xvYmFsW0RBVEFfVklFV107XG52YXIgTWF0aCA9IGdsb2JhbC5NYXRoO1xudmFyIFJhbmdlRXJyb3IgPSBnbG9iYWwuUmFuZ2VFcnJvcjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3ctcmVzdHJpY3RlZC1uYW1lc1xudmFyIEluZmluaXR5ID0gZ2xvYmFsLkluZmluaXR5O1xudmFyIEJhc2VCdWZmZXIgPSAkQXJyYXlCdWZmZXI7XG52YXIgYWJzID0gTWF0aC5hYnM7XG52YXIgcG93ID0gTWF0aC5wb3c7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xudmFyIGxvZyA9IE1hdGgubG9nO1xudmFyIExOMiA9IE1hdGguTE4yO1xudmFyIEJVRkZFUiA9ICdidWZmZXInO1xudmFyIEJZVEVfTEVOR1RIID0gJ2J5dGVMZW5ndGgnO1xudmFyIEJZVEVfT0ZGU0VUID0gJ2J5dGVPZmZzZXQnO1xudmFyICRCVUZGRVIgPSBERVNDUklQVE9SUyA/ICdfYicgOiBCVUZGRVI7XG52YXIgJExFTkdUSCA9IERFU0NSSVBUT1JTID8gJ19sJyA6IEJZVEVfTEVOR1RIO1xudmFyICRPRkZTRVQgPSBERVNDUklQVE9SUyA/ICdfbycgOiBCWVRFX09GRlNFVDtcblxuLy8gSUVFRTc1NCBjb252ZXJzaW9ucyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2llZWU3NTRcbmZ1bmN0aW9uIHBhY2tJRUVFNzU0KHZhbHVlLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheShuQnl0ZXMpO1xuICB2YXIgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMTtcbiAgdmFyIGVNYXggPSAoMSA8PCBlTGVuKSAtIDE7XG4gIHZhciBlQmlhcyA9IGVNYXggPj4gMTtcbiAgdmFyIHJ0ID0gbUxlbiA9PT0gMjMgPyBwb3coMiwgLTI0KSAtIHBvdygyLCAtNzcpIDogMDtcbiAgdmFyIGkgPSAwO1xuICB2YXIgcyA9IHZhbHVlIDwgMCB8fCB2YWx1ZSA9PT0gMCAmJiAxIC8gdmFsdWUgPCAwID8gMSA6IDA7XG4gIHZhciBlLCBtLCBjO1xuICB2YWx1ZSA9IGFicyh2YWx1ZSk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgaWYgKHZhbHVlICE9IHZhbHVlIHx8IHZhbHVlID09PSBJbmZpbml0eSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICBtID0gdmFsdWUgIT0gdmFsdWUgPyAxIDogMDtcbiAgICBlID0gZU1heDtcbiAgfSBlbHNlIHtcbiAgICBlID0gZmxvb3IobG9nKHZhbHVlKSAvIExOMik7XG4gICAgaWYgKHZhbHVlICogKGMgPSBwb3coMiwgLWUpKSA8IDEpIHtcbiAgICAgIGUtLTtcbiAgICAgIGMgKj0gMjtcbiAgICB9XG4gICAgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICB2YWx1ZSArPSBydCAvIGM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlICs9IHJ0ICogcG93KDIsIDEgLSBlQmlhcyk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAqIGMgPj0gMikge1xuICAgICAgZSsrO1xuICAgICAgYyAvPSAyO1xuICAgIH1cbiAgICBpZiAoZSArIGVCaWFzID49IGVNYXgpIHtcbiAgICAgIG0gPSAwO1xuICAgICAgZSA9IGVNYXg7XG4gICAgfSBlbHNlIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgbSA9ICh2YWx1ZSAqIGMgLSAxKSAqIHBvdygyLCBtTGVuKTtcbiAgICAgIGUgPSBlICsgZUJpYXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIG0gPSB2YWx1ZSAqIHBvdygyLCBlQmlhcyAtIDEpICogcG93KDIsIG1MZW4pO1xuICAgICAgZSA9IDA7XG4gICAgfVxuICB9XG4gIGZvciAoOyBtTGVuID49IDg7IGJ1ZmZlcltpKytdID0gbSAmIDI1NSwgbSAvPSAyNTYsIG1MZW4gLT0gOCk7XG4gIGUgPSBlIDw8IG1MZW4gfCBtO1xuICBlTGVuICs9IG1MZW47XG4gIGZvciAoOyBlTGVuID4gMDsgYnVmZmVyW2krK10gPSBlICYgMjU1LCBlIC89IDI1NiwgZUxlbiAtPSA4KTtcbiAgYnVmZmVyWy0taV0gfD0gcyAqIDEyODtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbmZ1bmN0aW9uIHVucGFja0lFRUU3NTQoYnVmZmVyLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGVMZW4gPSBuQnl0ZXMgKiA4IC0gbUxlbiAtIDE7XG4gIHZhciBlTWF4ID0gKDEgPDwgZUxlbikgLSAxO1xuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDE7XG4gIHZhciBuQml0cyA9IGVMZW4gLSA3O1xuICB2YXIgaSA9IG5CeXRlcyAtIDE7XG4gIHZhciBzID0gYnVmZmVyW2ktLV07XG4gIHZhciBlID0gcyAmIDEyNztcbiAgdmFyIG07XG4gIHMgPj49IDc7XG4gIGZvciAoOyBuQml0cyA+IDA7IGUgPSBlICogMjU2ICsgYnVmZmVyW2ldLCBpLS0sIG5CaXRzIC09IDgpO1xuICBtID0gZSAmICgxIDw8IC1uQml0cykgLSAxO1xuICBlID4+PSAtbkJpdHM7XG4gIG5CaXRzICs9IG1MZW47XG4gIGZvciAoOyBuQml0cyA+IDA7IG0gPSBtICogMjU2ICsgYnVmZmVyW2ldLCBpLS0sIG5CaXRzIC09IDgpO1xuICBpZiAoZSA9PT0gMCkge1xuICAgIGUgPSAxIC0gZUJpYXM7XG4gIH0gZWxzZSBpZiAoZSA9PT0gZU1heCkge1xuICAgIHJldHVybiBtID8gTmFOIDogcyA/IC1JbmZpbml0eSA6IEluZmluaXR5O1xuICB9IGVsc2Uge1xuICAgIG0gPSBtICsgcG93KDIsIG1MZW4pO1xuICAgIGUgPSBlIC0gZUJpYXM7XG4gIH0gcmV0dXJuIChzID8gLTEgOiAxKSAqIG0gKiBwb3coMiwgZSAtIG1MZW4pO1xufVxuXG5mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpIHtcbiAgcmV0dXJuIGJ5dGVzWzNdIDw8IDI0IHwgYnl0ZXNbMl0gPDwgMTYgfCBieXRlc1sxXSA8PCA4IHwgYnl0ZXNbMF07XG59XG5mdW5jdGlvbiBwYWNrSTgoaXQpIHtcbiAgcmV0dXJuIFtpdCAmIDB4ZmZdO1xufVxuZnVuY3Rpb24gcGFja0kxNihpdCkge1xuICByZXR1cm4gW2l0ICYgMHhmZiwgaXQgPj4gOCAmIDB4ZmZdO1xufVxuZnVuY3Rpb24gcGFja0kzMihpdCkge1xuICByZXR1cm4gW2l0ICYgMHhmZiwgaXQgPj4gOCAmIDB4ZmYsIGl0ID4+IDE2ICYgMHhmZiwgaXQgPj4gMjQgJiAweGZmXTtcbn1cbmZ1bmN0aW9uIHBhY2tGNjQoaXQpIHtcbiAgcmV0dXJuIHBhY2tJRUVFNzU0KGl0LCA1MiwgOCk7XG59XG5mdW5jdGlvbiBwYWNrRjMyKGl0KSB7XG4gIHJldHVybiBwYWNrSUVFRTc1NChpdCwgMjMsIDQpO1xufVxuXG5mdW5jdGlvbiBhZGRHZXR0ZXIoQywga2V5LCBpbnRlcm5hbCkge1xuICBkUChDW1BST1RPVFlQRV0sIGtleSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXNbaW50ZXJuYWxdOyB9IH0pO1xufVxuXG5mdW5jdGlvbiBnZXQodmlldywgYnl0ZXMsIGluZGV4LCBpc0xpdHRsZUVuZGlhbikge1xuICB2YXIgbnVtSW5kZXggPSAraW5kZXg7XG4gIHZhciBpbnRJbmRleCA9IHRvSW5kZXgobnVtSW5kZXgpO1xuICBpZiAoaW50SW5kZXggKyBieXRlcyA+IHZpZXdbJExFTkdUSF0pIHRocm93IFJhbmdlRXJyb3IoV1JPTkdfSU5ERVgpO1xuICB2YXIgc3RvcmUgPSB2aWV3WyRCVUZGRVJdLl9iO1xuICB2YXIgc3RhcnQgPSBpbnRJbmRleCArIHZpZXdbJE9GRlNFVF07XG4gIHZhciBwYWNrID0gc3RvcmUuc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgYnl0ZXMpO1xuICByZXR1cm4gaXNMaXR0bGVFbmRpYW4gPyBwYWNrIDogcGFjay5yZXZlcnNlKCk7XG59XG5mdW5jdGlvbiBzZXQodmlldywgYnl0ZXMsIGluZGV4LCBjb252ZXJzaW9uLCB2YWx1ZSwgaXNMaXR0bGVFbmRpYW4pIHtcbiAgdmFyIG51bUluZGV4ID0gK2luZGV4O1xuICB2YXIgaW50SW5kZXggPSB0b0luZGV4KG51bUluZGV4KTtcbiAgaWYgKGludEluZGV4ICsgYnl0ZXMgPiB2aWV3WyRMRU5HVEhdKSB0aHJvdyBSYW5nZUVycm9yKFdST05HX0lOREVYKTtcbiAgdmFyIHN0b3JlID0gdmlld1skQlVGRkVSXS5fYjtcbiAgdmFyIHN0YXJ0ID0gaW50SW5kZXggKyB2aWV3WyRPRkZTRVRdO1xuICB2YXIgcGFjayA9IGNvbnZlcnNpb24oK3ZhbHVlKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlczsgaSsrKSBzdG9yZVtzdGFydCArIGldID0gcGFja1tpc0xpdHRsZUVuZGlhbiA/IGkgOiBieXRlcyAtIGkgLSAxXTtcbn1cblxuaWYgKCEkdHlwZWQuQUJWKSB7XG4gICRBcnJheUJ1ZmZlciA9IGZ1bmN0aW9uIEFycmF5QnVmZmVyKGxlbmd0aCkge1xuICAgIGFuSW5zdGFuY2UodGhpcywgJEFycmF5QnVmZmVyLCBBUlJBWV9CVUZGRVIpO1xuICAgIHZhciBieXRlTGVuZ3RoID0gdG9JbmRleChsZW5ndGgpO1xuICAgIHRoaXMuX2IgPSBhcnJheUZpbGwuY2FsbChuZXcgQXJyYXkoYnl0ZUxlbmd0aCksIDApO1xuICAgIHRoaXNbJExFTkdUSF0gPSBieXRlTGVuZ3RoO1xuICB9O1xuXG4gICREYXRhVmlldyA9IGZ1bmN0aW9uIERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkge1xuICAgIGFuSW5zdGFuY2UodGhpcywgJERhdGFWaWV3LCBEQVRBX1ZJRVcpO1xuICAgIGFuSW5zdGFuY2UoYnVmZmVyLCAkQXJyYXlCdWZmZXIsIERBVEFfVklFVyk7XG4gICAgdmFyIGJ1ZmZlckxlbmd0aCA9IGJ1ZmZlclskTEVOR1RIXTtcbiAgICB2YXIgb2Zmc2V0ID0gdG9JbnRlZ2VyKGJ5dGVPZmZzZXQpO1xuICAgIGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+IGJ1ZmZlckxlbmd0aCkgdGhyb3cgUmFuZ2VFcnJvcignV3Jvbmcgb2Zmc2V0IScpO1xuICAgIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoID09PSB1bmRlZmluZWQgPyBidWZmZXJMZW5ndGggLSBvZmZzZXQgOiB0b0xlbmd0aChieXRlTGVuZ3RoKTtcbiAgICBpZiAob2Zmc2V0ICsgYnl0ZUxlbmd0aCA+IGJ1ZmZlckxlbmd0aCkgdGhyb3cgUmFuZ2VFcnJvcihXUk9OR19MRU5HVEgpO1xuICAgIHRoaXNbJEJVRkZFUl0gPSBidWZmZXI7XG4gICAgdGhpc1skT0ZGU0VUXSA9IG9mZnNldDtcbiAgICB0aGlzWyRMRU5HVEhdID0gYnl0ZUxlbmd0aDtcbiAgfTtcblxuICBpZiAoREVTQ1JJUFRPUlMpIHtcbiAgICBhZGRHZXR0ZXIoJEFycmF5QnVmZmVyLCBCWVRFX0xFTkdUSCwgJ19sJyk7XG4gICAgYWRkR2V0dGVyKCREYXRhVmlldywgQlVGRkVSLCAnX2InKTtcbiAgICBhZGRHZXR0ZXIoJERhdGFWaWV3LCBCWVRFX0xFTkdUSCwgJ19sJyk7XG4gICAgYWRkR2V0dGVyKCREYXRhVmlldywgQllURV9PRkZTRVQsICdfbycpO1xuICB9XG5cbiAgcmVkZWZpbmVBbGwoJERhdGFWaWV3W1BST1RPVFlQRV0sIHtcbiAgICBnZXRJbnQ4OiBmdW5jdGlvbiBnZXRJbnQ4KGJ5dGVPZmZzZXQpIHtcbiAgICAgIHJldHVybiBnZXQodGhpcywgMSwgYnl0ZU9mZnNldClbMF0gPDwgMjQgPj4gMjQ7XG4gICAgfSxcbiAgICBnZXRVaW50ODogZnVuY3Rpb24gZ2V0VWludDgoYnl0ZU9mZnNldCkge1xuICAgICAgcmV0dXJuIGdldCh0aGlzLCAxLCBieXRlT2Zmc2V0KVswXTtcbiAgICB9LFxuICAgIGdldEludDE2OiBmdW5jdGlvbiBnZXRJbnQxNihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICB2YXIgYnl0ZXMgPSBnZXQodGhpcywgMiwgYnl0ZU9mZnNldCwgYXJndW1lbnRzWzFdKTtcbiAgICAgIHJldHVybiAoYnl0ZXNbMV0gPDwgOCB8IGJ5dGVzWzBdKSA8PCAxNiA+PiAxNjtcbiAgICB9LFxuICAgIGdldFVpbnQxNjogZnVuY3Rpb24gZ2V0VWludDE2KGJ5dGVPZmZzZXQgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHZhciBieXRlcyA9IGdldCh0aGlzLCAyLCBieXRlT2Zmc2V0LCBhcmd1bWVudHNbMV0pO1xuICAgICAgcmV0dXJuIGJ5dGVzWzFdIDw8IDggfCBieXRlc1swXTtcbiAgICB9LFxuICAgIGdldEludDMyOiBmdW5jdGlvbiBnZXRJbnQzMihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICByZXR1cm4gdW5wYWNrSTMyKGdldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBhcmd1bWVudHNbMV0pKTtcbiAgICB9LFxuICAgIGdldFVpbnQzMjogZnVuY3Rpb24gZ2V0VWludDMyKGJ5dGVPZmZzZXQgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHJldHVybiB1bnBhY2tJMzIoZ2V0KHRoaXMsIDQsIGJ5dGVPZmZzZXQsIGFyZ3VtZW50c1sxXSkpID4+PiAwO1xuICAgIH0sXG4gICAgZ2V0RmxvYXQzMjogZnVuY3Rpb24gZ2V0RmxvYXQzMihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICByZXR1cm4gdW5wYWNrSUVFRTc1NChnZXQodGhpcywgNCwgYnl0ZU9mZnNldCwgYXJndW1lbnRzWzFdKSwgMjMsIDQpO1xuICAgIH0sXG4gICAgZ2V0RmxvYXQ2NDogZnVuY3Rpb24gZ2V0RmxvYXQ2NChieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICByZXR1cm4gdW5wYWNrSUVFRTc1NChnZXQodGhpcywgOCwgYnl0ZU9mZnNldCwgYXJndW1lbnRzWzFdKSwgNTIsIDgpO1xuICAgIH0sXG4gICAgc2V0SW50ODogZnVuY3Rpb24gc2V0SW50OChieXRlT2Zmc2V0LCB2YWx1ZSkge1xuICAgICAgc2V0KHRoaXMsIDEsIGJ5dGVPZmZzZXQsIHBhY2tJOCwgdmFsdWUpO1xuICAgIH0sXG4gICAgc2V0VWludDg6IGZ1bmN0aW9uIHNldFVpbnQ4KGJ5dGVPZmZzZXQsIHZhbHVlKSB7XG4gICAgICBzZXQodGhpcywgMSwgYnl0ZU9mZnNldCwgcGFja0k4LCB2YWx1ZSk7XG4gICAgfSxcbiAgICBzZXRJbnQxNjogZnVuY3Rpb24gc2V0SW50MTYoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCAyLCBieXRlT2Zmc2V0LCBwYWNrSTE2LCB2YWx1ZSwgYXJndW1lbnRzWzJdKTtcbiAgICB9LFxuICAgIHNldFVpbnQxNjogZnVuY3Rpb24gc2V0VWludDE2KGJ5dGVPZmZzZXQsIHZhbHVlIC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICBzZXQodGhpcywgMiwgYnl0ZU9mZnNldCwgcGFja0kxNiwgdmFsdWUsIGFyZ3VtZW50c1syXSk7XG4gICAgfSxcbiAgICBzZXRJbnQzMjogZnVuY3Rpb24gc2V0SW50MzIoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBwYWNrSTMyLCB2YWx1ZSwgYXJndW1lbnRzWzJdKTtcbiAgICB9LFxuICAgIHNldFVpbnQzMjogZnVuY3Rpb24gc2V0VWludDMyKGJ5dGVPZmZzZXQsIHZhbHVlIC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICBzZXQodGhpcywgNCwgYnl0ZU9mZnNldCwgcGFja0kzMiwgdmFsdWUsIGFyZ3VtZW50c1syXSk7XG4gICAgfSxcbiAgICBzZXRGbG9hdDMyOiBmdW5jdGlvbiBzZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIHZhbHVlIC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICBzZXQodGhpcywgNCwgYnl0ZU9mZnNldCwgcGFja0YzMiwgdmFsdWUsIGFyZ3VtZW50c1syXSk7XG4gICAgfSxcbiAgICBzZXRGbG9hdDY0OiBmdW5jdGlvbiBzZXRGbG9hdDY0KGJ5dGVPZmZzZXQsIHZhbHVlIC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICBzZXQodGhpcywgOCwgYnl0ZU9mZnNldCwgcGFja0Y2NCwgdmFsdWUsIGFyZ3VtZW50c1syXSk7XG4gICAgfVxuICB9KTtcbn0gZWxzZSB7XG4gIGlmICghZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgICRBcnJheUJ1ZmZlcigxKTtcbiAgfSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICBuZXcgJEFycmF5QnVmZmVyKC0xKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXdcbiAgfSkgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIG5ldyAkQXJyYXlCdWZmZXIoKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXdcbiAgICBuZXcgJEFycmF5QnVmZmVyKDEuNSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3XG4gICAgbmV3ICRBcnJheUJ1ZmZlcihOYU4pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ld1xuICAgIHJldHVybiAkQXJyYXlCdWZmZXIubmFtZSAhPSBBUlJBWV9CVUZGRVI7XG4gIH0pKSB7XG4gICAgJEFycmF5QnVmZmVyID0gZnVuY3Rpb24gQXJyYXlCdWZmZXIobGVuZ3RoKSB7XG4gICAgICBhbkluc3RhbmNlKHRoaXMsICRBcnJheUJ1ZmZlcik7XG4gICAgICByZXR1cm4gbmV3IEJhc2VCdWZmZXIodG9JbmRleChsZW5ndGgpKTtcbiAgICB9O1xuICAgIHZhciBBcnJheUJ1ZmZlclByb3RvID0gJEFycmF5QnVmZmVyW1BST1RPVFlQRV0gPSBCYXNlQnVmZmVyW1BST1RPVFlQRV07XG4gICAgZm9yICh2YXIga2V5cyA9IGdPUE4oQmFzZUJ1ZmZlciksIGogPSAwLCBrZXk7IGtleXMubGVuZ3RoID4gajspIHtcbiAgICAgIGlmICghKChrZXkgPSBrZXlzW2orK10pIGluICRBcnJheUJ1ZmZlcikpIGhpZGUoJEFycmF5QnVmZmVyLCBrZXksIEJhc2VCdWZmZXJba2V5XSk7XG4gICAgfVxuICAgIGlmICghTElCUkFSWSkgQXJyYXlCdWZmZXJQcm90by5jb25zdHJ1Y3RvciA9ICRBcnJheUJ1ZmZlcjtcbiAgfVxuICAvLyBpT1MgU2FmYXJpIDcueCBidWdcbiAgdmFyIHZpZXcgPSBuZXcgJERhdGFWaWV3KG5ldyAkQXJyYXlCdWZmZXIoMikpO1xuICB2YXIgJHNldEludDggPSAkRGF0YVZpZXdbUFJPVE9UWVBFXS5zZXRJbnQ4O1xuICB2aWV3LnNldEludDgoMCwgMjE0NzQ4MzY0OCk7XG4gIHZpZXcuc2V0SW50OCgxLCAyMTQ3NDgzNjQ5KTtcbiAgaWYgKHZpZXcuZ2V0SW50OCgwKSB8fCAhdmlldy5nZXRJbnQ4KDEpKSByZWRlZmluZUFsbCgkRGF0YVZpZXdbUFJPVE9UWVBFXSwge1xuICAgIHNldEludDg6IGZ1bmN0aW9uIHNldEludDgoYnl0ZU9mZnNldCwgdmFsdWUpIHtcbiAgICAgICRzZXRJbnQ4LmNhbGwodGhpcywgYnl0ZU9mZnNldCwgdmFsdWUgPDwgMjQgPj4gMjQpO1xuICAgIH0sXG4gICAgc2V0VWludDg6IGZ1bmN0aW9uIHNldFVpbnQ4KGJ5dGVPZmZzZXQsIHZhbHVlKSB7XG4gICAgICAkc2V0SW50OC5jYWxsKHRoaXMsIGJ5dGVPZmZzZXQsIHZhbHVlIDw8IDI0ID4+IDI0KTtcbiAgICB9XG4gIH0sIHRydWUpO1xufVxuc2V0VG9TdHJpbmdUYWcoJEFycmF5QnVmZmVyLCBBUlJBWV9CVUZGRVIpO1xuc2V0VG9TdHJpbmdUYWcoJERhdGFWaWV3LCBEQVRBX1ZJRVcpO1xuaGlkZSgkRGF0YVZpZXdbUFJPVE9UWVBFXSwgJHR5cGVkLlZJRVcsIHRydWUpO1xuZXhwb3J0c1tBUlJBWV9CVUZGRVJdID0gJEFycmF5QnVmZmVyO1xuZXhwb3J0c1tEQVRBX1ZJRVddID0gJERhdGFWaWV3O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgVFlQRUQgPSB1aWQoJ3R5cGVkX2FycmF5Jyk7XG52YXIgVklFVyA9IHVpZCgndmlldycpO1xudmFyIEFCViA9ICEhKGdsb2JhbC5BcnJheUJ1ZmZlciAmJiBnbG9iYWwuRGF0YVZpZXcpO1xudmFyIENPTlNUUiA9IEFCVjtcbnZhciBpID0gMDtcbnZhciBsID0gOTtcbnZhciBUeXBlZDtcblxudmFyIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnMgPSAoXG4gICdJbnQ4QXJyYXksVWludDhBcnJheSxVaW50OENsYW1wZWRBcnJheSxJbnQxNkFycmF5LFVpbnQxNkFycmF5LEludDMyQXJyYXksVWludDMyQXJyYXksRmxvYXQzMkFycmF5LEZsb2F0NjRBcnJheSdcbikuc3BsaXQoJywnKTtcblxud2hpbGUgKGkgPCBsKSB7XG4gIGlmIChUeXBlZCA9IGdsb2JhbFtUeXBlZEFycmF5Q29uc3RydWN0b3JzW2krK11dKSB7XG4gICAgaGlkZShUeXBlZC5wcm90b3R5cGUsIFRZUEVELCB0cnVlKTtcbiAgICBoaWRlKFR5cGVkLnByb3RvdHlwZSwgVklFVywgdHJ1ZSk7XG4gIH0gZWxzZSBDT05TVFIgPSBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIEFCVjogQUJWLFxuICBDT05TVFI6IENPTlNUUixcbiAgVFlQRUQ6IFRZUEVELFxuICBWSUVXOiBWSUVXXG59O1xuIiwidmFyIGlkID0gMDtcbnZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgbmF2aWdhdG9yID0gZ2xvYmFsLm5hdmlnYXRvcjtcblxubW9kdWxlLmV4cG9ydHMgPSBuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCB8fCAnJztcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFRZUEUpIHtcbiAgaWYgKCFpc09iamVjdChpdCkgfHwgaXQuX3QgIT09IFRZUEUpIHRocm93IFR5cGVFcnJvcignSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAnICsgVFlQRSArICcgcmVxdWlyZWQhJyk7XG4gIHJldHVybiBpdDtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciAkU3ltYm9sID0gY29yZS5TeW1ib2wgfHwgKGNvcmUuU3ltYm9sID0gTElCUkFSWSA/IHt9IDogZ2xvYmFsLlN5bWJvbCB8fCB7fSk7XG4gIGlmIChuYW1lLmNoYXJBdCgwKSAhPSAnXycgJiYgIShuYW1lIGluICRTeW1ib2wpKSBkZWZpbmVQcm9wZXJ0eSgkU3ltYm9sLCBuYW1lLCB7IHZhbHVlOiB3a3NFeHQuZihuYW1lKSB9KTtcbn07XG4iLCJleHBvcnRzLmYgPSByZXF1aXJlKCcuL193a3MnKTtcbiIsInZhciBzdG9yZSA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCd3a3MnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5TeW1ib2w7XG52YXIgVVNFX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT0gJ2Z1bmN0aW9uJztcblxudmFyICRleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gc3RvcmVbbmFtZV0gfHwgKHN0b3JlW25hbWVdID1cbiAgICBVU0VfU1lNQk9MICYmIFN5bWJvbFtuYW1lXSB8fCAoVVNFX1NZTUJPTCA/IFN5bWJvbCA6IHVpZCkoJ1N5bWJvbC4nICsgbmFtZSkpO1xufTtcblxuJGV4cG9ydHMuc3RvcmUgPSBzdG9yZTtcbiIsInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2NvcmUnKS5nZXRJdGVyYXRvck1ldGhvZCA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgIT0gdW5kZWZpbmVkKSByZXR1cm4gaXRbSVRFUkFUT1JdXG4gICAgfHwgaXRbJ0BAaXRlcmF0b3InXVxuICAgIHx8IEl0ZXJhdG9yc1tjbGFzc29mKGl0KV07XG59O1xuIiwiLy8gMjIuMS4zLjMgQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4odGFyZ2V0LCBzdGFydCwgZW5kID0gdGhpcy5sZW5ndGgpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUCwgJ0FycmF5JywgeyBjb3B5V2l0aGluOiByZXF1aXJlKCcuL19hcnJheS1jb3B5LXdpdGhpbicpIH0pO1xuXG5yZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKSgnY29weVdpdGhpbicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkZXZlcnkgPSByZXF1aXJlKCcuL19hcnJheS1tZXRob2RzJykoNCk7XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX3N0cmljdC1tZXRob2QnKShbXS5ldmVyeSwgdHJ1ZSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjUgLyAxNS40LjQuMTYgQXJyYXkucHJvdG90eXBlLmV2ZXJ5KGNhbGxiYWNrZm4gWywgdGhpc0FyZ10pXG4gIGV2ZXJ5OiBmdW5jdGlvbiBldmVyeShjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZXZlcnkodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzWzFdKTtcbiAgfVxufSk7XG4iLCIvLyAyMi4xLjMuNiBBcnJheS5wcm90b3R5cGUuZmlsbCh2YWx1ZSwgc3RhcnQgPSAwLCBlbmQgPSB0aGlzLmxlbmd0aClcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5QLCAnQXJyYXknLCB7IGZpbGw6IHJlcXVpcmUoJy4vX2FycmF5LWZpbGwnKSB9KTtcblxucmVxdWlyZSgnLi9fYWRkLXRvLXVuc2NvcGFibGVzJykoJ2ZpbGwnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGZpbHRlciA9IHJlcXVpcmUoJy4vX2FycmF5LW1ldGhvZHMnKSgyKTtcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAhcmVxdWlyZSgnLi9fc3RyaWN0LW1ldGhvZCcpKFtdLmZpbHRlciwgdHJ1ZSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjcgLyAxNS40LjQuMjAgQXJyYXkucHJvdG90eXBlLmZpbHRlcihjYWxsYmFja2ZuIFssIHRoaXNBcmddKVxuICBmaWx0ZXI6IGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZmlsdGVyKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50c1sxXSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gMjIuMS4zLjkgQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleChwcmVkaWNhdGUsIHRoaXNBcmcgPSB1bmRlZmluZWQpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyICRmaW5kID0gcmVxdWlyZSgnLi9fYXJyYXktbWV0aG9kcycpKDYpO1xudmFyIEtFWSA9ICdmaW5kSW5kZXgnO1xudmFyIGZvcmNlZCA9IHRydWU7XG4vLyBTaG91bGRuJ3Qgc2tpcCBob2xlc1xuaWYgKEtFWSBpbiBbXSkgQXJyYXkoMSlbS0VZXShmdW5jdGlvbiAoKSB7IGZvcmNlZCA9IGZhbHNlOyB9KTtcbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogZm9yY2VkLCAnQXJyYXknLCB7XG4gIGZpbmRJbmRleDogZnVuY3Rpb24gZmluZEluZGV4KGNhbGxiYWNrZm4gLyogLCB0aGF0ID0gdW5kZWZpbmVkICovKSB7XG4gICAgcmV0dXJuICRmaW5kKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG5yZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKShLRVkpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gMjIuMS4zLjggQXJyYXkucHJvdG90eXBlLmZpbmQocHJlZGljYXRlLCB0aGlzQXJnID0gdW5kZWZpbmVkKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkZmluZCA9IHJlcXVpcmUoJy4vX2FycmF5LW1ldGhvZHMnKSg1KTtcbnZhciBLRVkgPSAnZmluZCc7XG52YXIgZm9yY2VkID0gdHJ1ZTtcbi8vIFNob3VsZG4ndCBza2lwIGhvbGVzXG5pZiAoS0VZIGluIFtdKSBBcnJheSgxKVtLRVldKGZ1bmN0aW9uICgpIHsgZm9yY2VkID0gZmFsc2U7IH0pO1xuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiBmb3JjZWQsICdBcnJheScsIHtcbiAgZmluZDogZnVuY3Rpb24gZmluZChjYWxsYmFja2ZuIC8qICwgdGhhdCA9IHVuZGVmaW5lZCAqLykge1xuICAgIHJldHVybiAkZmluZCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xucmVxdWlyZSgnLi9fYWRkLXRvLXVuc2NvcGFibGVzJykoS0VZKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGZvckVhY2ggPSByZXF1aXJlKCcuL19hcnJheS1tZXRob2RzJykoMCk7XG52YXIgU1RSSUNUID0gcmVxdWlyZSgnLi9fc3RyaWN0LW1ldGhvZCcpKFtdLmZvckVhY2gsIHRydWUpO1xuXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqICFTVFJJQ1QsICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjEwIC8gMTUuNC40LjE4IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKGNhbGxiYWNrZm4gWywgdGhpc0FyZ10pXG4gIGZvckVhY2g6IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICByZXR1cm4gJGZvckVhY2godGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzWzFdKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4vX2l0ZXItY2FsbCcpO1xudmFyIGlzQXJyYXlJdGVyID0gcmVxdWlyZSgnLi9faXMtYXJyYXktaXRlcicpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuL19jcmVhdGUtcHJvcGVydHknKTtcbnZhciBnZXRJdGVyRm4gPSByZXF1aXJlKCcuL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19pdGVyLWRldGVjdCcpKGZ1bmN0aW9uIChpdGVyKSB7IEFycmF5LmZyb20oaXRlcik7IH0pLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMi4xIEFycmF5LmZyb20oYXJyYXlMaWtlLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZClcbiAgZnJvbTogZnVuY3Rpb24gZnJvbShhcnJheUxpa2UgLyogLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZCAqLykge1xuICAgIHZhciBPID0gdG9PYmplY3QoYXJyYXlMaWtlKTtcbiAgICB2YXIgQyA9IHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgPyB0aGlzIDogQXJyYXk7XG4gICAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBtYXBmbiA9IGFMZW4gPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICAgIHZhciBtYXBwaW5nID0gbWFwZm4gIT09IHVuZGVmaW5lZDtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBpdGVyRm4gPSBnZXRJdGVyRm4oTyk7XG4gICAgdmFyIGxlbmd0aCwgcmVzdWx0LCBzdGVwLCBpdGVyYXRvcjtcbiAgICBpZiAobWFwcGluZykgbWFwZm4gPSBjdHgobWFwZm4sIGFMZW4gPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkLCAyKTtcbiAgICAvLyBpZiBvYmplY3QgaXNuJ3QgaXRlcmFibGUgb3IgaXQncyBhcnJheSB3aXRoIGRlZmF1bHQgaXRlcmF0b3IgLSB1c2Ugc2ltcGxlIGNhc2VcbiAgICBpZiAoaXRlckZuICE9IHVuZGVmaW5lZCAmJiAhKEMgPT0gQXJyYXkgJiYgaXNBcnJheUl0ZXIoaXRlckZuKSkpIHtcbiAgICAgIGZvciAoaXRlcmF0b3IgPSBpdGVyRm4uY2FsbChPKSwgcmVzdWx0ID0gbmV3IEMoKTsgIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lOyBpbmRleCsrKSB7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBjYWxsKGl0ZXJhdG9yLCBtYXBmbiwgW3N0ZXAudmFsdWUsIGluZGV4XSwgdHJ1ZSkgOiBzdGVwLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgICAgZm9yIChyZXN1bHQgPSBuZXcgQyhsZW5ndGgpOyBsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgICBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGluZGV4LCBtYXBwaW5nID8gbWFwZm4oT1tpbmRleF0sIGluZGV4KSA6IE9baW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0Lmxlbmd0aCA9IGluZGV4O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkaW5kZXhPZiA9IHJlcXVpcmUoJy4vX2FycmF5LWluY2x1ZGVzJykoZmFsc2UpO1xudmFyICRuYXRpdmUgPSBbXS5pbmRleE9mO1xudmFyIE5FR0FUSVZFX1pFUk8gPSAhISRuYXRpdmUgJiYgMSAvIFsxXS5pbmRleE9mKDEsIC0wKSA8IDA7XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKE5FR0FUSVZFX1pFUk8gfHwgIXJlcXVpcmUoJy4vX3N0cmljdC1tZXRob2QnKSgkbmF0aXZlKSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjExIC8gMTUuNC40LjE0IEFycmF5LnByb3RvdHlwZS5pbmRleE9mKHNlYXJjaEVsZW1lbnQgWywgZnJvbUluZGV4XSlcbiAgaW5kZXhPZjogZnVuY3Rpb24gaW5kZXhPZihzZWFyY2hFbGVtZW50IC8qICwgZnJvbUluZGV4ID0gMCAqLykge1xuICAgIHJldHVybiBORUdBVElWRV9aRVJPXG4gICAgICAvLyBjb252ZXJ0IC0wIHRvICswXG4gICAgICA/ICRuYXRpdmUuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCAwXG4gICAgICA6ICRpbmRleE9mKHRoaXMsIHNlYXJjaEVsZW1lbnQsIGFyZ3VtZW50c1sxXSk7XG4gIH1cbn0pO1xuIiwiLy8gMjIuMS4yLjIgLyAxNS40LjMuMiBBcnJheS5pc0FycmF5KGFyZylcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnQXJyYXknLCB7IGlzQXJyYXk6IHJlcXVpcmUoJy4vX2lzLWFycmF5JykgfSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYWRkVG9VbnNjb3BhYmxlcyA9IHJlcXVpcmUoJy4vX2FkZC10by11bnNjb3BhYmxlcycpO1xudmFyIHN0ZXAgPSByZXF1aXJlKCcuL19pdGVyLXN0ZXAnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG5cbi8vIDIyLjEuMy40IEFycmF5LnByb3RvdHlwZS5lbnRyaWVzKClcbi8vIDIyLjEuMy4xMyBBcnJheS5wcm90b3R5cGUua2V5cygpXG4vLyAyMi4xLjMuMjkgQXJyYXkucHJvdG90eXBlLnZhbHVlcygpXG4vLyAyMi4xLjMuMzAgQXJyYXkucHJvdG90eXBlW0BAaXRlcmF0b3JdKClcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShBcnJheSwgJ0FycmF5JywgZnVuY3Rpb24gKGl0ZXJhdGVkLCBraW5kKSB7XG4gIHRoaXMuX3QgPSB0b0lPYmplY3QoaXRlcmF0ZWQpOyAvLyB0YXJnZXRcbiAgdGhpcy5faSA9IDA7ICAgICAgICAgICAgICAgICAgIC8vIG5leHQgaW5kZXhcbiAgdGhpcy5fayA9IGtpbmQ7ICAgICAgICAgICAgICAgIC8vIGtpbmRcbi8vIDIyLjEuNS4yLjEgJUFycmF5SXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBraW5kID0gdGhpcy5faztcbiAgdmFyIGluZGV4ID0gdGhpcy5faSsrO1xuICBpZiAoIU8gfHwgaW5kZXggPj0gTy5sZW5ndGgpIHtcbiAgICB0aGlzLl90ID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiBzdGVwKDEpO1xuICB9XG4gIGlmIChraW5kID09ICdrZXlzJykgcmV0dXJuIHN0ZXAoMCwgaW5kZXgpO1xuICBpZiAoa2luZCA9PSAndmFsdWVzJykgcmV0dXJuIHN0ZXAoMCwgT1tpbmRleF0pO1xuICByZXR1cm4gc3RlcCgwLCBbaW5kZXgsIE9baW5kZXhdXSk7XG59LCAndmFsdWVzJyk7XG5cbi8vIGFyZ3VtZW50c0xpc3RbQEBpdGVyYXRvcl0gaXMgJUFycmF5UHJvdG9fdmFsdWVzJSAoOS40LjQuNiwgOS40LjQuNylcbkl0ZXJhdG9ycy5Bcmd1bWVudHMgPSBJdGVyYXRvcnMuQXJyYXk7XG5cbmFkZFRvVW5zY29wYWJsZXMoJ2tleXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ3ZhbHVlcycpO1xuYWRkVG9VbnNjb3BhYmxlcygnZW50cmllcycpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gMjIuMS4zLjEzIEFycmF5LnByb3RvdHlwZS5qb2luKHNlcGFyYXRvcilcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGFycmF5Sm9pbiA9IFtdLmpvaW47XG5cbi8vIGZhbGxiYWNrIGZvciBub3QgYXJyYXktbGlrZSBzdHJpbmdzXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIChyZXF1aXJlKCcuL19pb2JqZWN0JykgIT0gT2JqZWN0IHx8ICFyZXF1aXJlKCcuL19zdHJpY3QtbWV0aG9kJykoYXJyYXlKb2luKSksICdBcnJheScsIHtcbiAgam9pbjogZnVuY3Rpb24gam9pbihzZXBhcmF0b3IpIHtcbiAgICByZXR1cm4gYXJyYXlKb2luLmNhbGwodG9JT2JqZWN0KHRoaXMpLCBzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/ICcsJyA6IHNlcGFyYXRvcik7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgJG5hdGl2ZSA9IFtdLmxhc3RJbmRleE9mO1xudmFyIE5FR0FUSVZFX1pFUk8gPSAhISRuYXRpdmUgJiYgMSAvIFsxXS5sYXN0SW5kZXhPZigxLCAtMCkgPCAwO1xuXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIChORUdBVElWRV9aRVJPIHx8ICFyZXF1aXJlKCcuL19zdHJpY3QtbWV0aG9kJykoJG5hdGl2ZSkpLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMy4xNCAvIDE1LjQuNC4xNSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2Yoc2VhcmNoRWxlbWVudCBbLCBmcm9tSW5kZXhdKVxuICBsYXN0SW5kZXhPZjogZnVuY3Rpb24gbGFzdEluZGV4T2Yoc2VhcmNoRWxlbWVudCAvKiAsIGZyb21JbmRleCA9IEBbKi0xXSAqLykge1xuICAgIC8vIGNvbnZlcnQgLTAgdG8gKzBcbiAgICBpZiAoTkVHQVRJVkVfWkVSTykgcmV0dXJuICRuYXRpdmUuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCAwO1xuICAgIHZhciBPID0gdG9JT2JqZWN0KHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIGluZGV4ID0gTWF0aC5taW4oaW5kZXgsIHRvSW50ZWdlcihhcmd1bWVudHNbMV0pKTtcbiAgICBpZiAoaW5kZXggPCAwKSBpbmRleCA9IGxlbmd0aCArIGluZGV4O1xuICAgIGZvciAoO2luZGV4ID49IDA7IGluZGV4LS0pIGlmIChpbmRleCBpbiBPKSBpZiAoT1tpbmRleF0gPT09IHNlYXJjaEVsZW1lbnQpIHJldHVybiBpbmRleCB8fCAwO1xuICAgIHJldHVybiAtMTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyICRtYXAgPSByZXF1aXJlKCcuL19hcnJheS1tZXRob2RzJykoMSk7XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX3N0cmljdC1tZXRob2QnKShbXS5tYXAsIHRydWUpLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMy4xNSAvIDE1LjQuNC4xOSBBcnJheS5wcm90b3R5cGUubWFwKGNhbGxiYWNrZm4gWywgdGhpc0FyZ10pXG4gIG1hcDogZnVuY3Rpb24gbWFwKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgcmV0dXJuICRtYXAodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzWzFdKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fY3JlYXRlLXByb3BlcnR5Jyk7XG5cbi8vIFdlYktpdCBBcnJheS5vZiBpc24ndCBnZW5lcmljXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqIHJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBGKCkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiAhKEFycmF5Lm9mLmNhbGwoRikgaW5zdGFuY2VvZiBGKTtcbn0pLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMi4zIEFycmF5Lm9mKCAuLi5pdGVtcylcbiAgb2Y6IGZ1bmN0aW9uIG9mKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgcmVzdWx0ID0gbmV3ICh0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nID8gdGhpcyA6IEFycmF5KShhTGVuKTtcbiAgICB3aGlsZSAoYUxlbiA+IGluZGV4KSBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGluZGV4LCBhcmd1bWVudHNbaW5kZXgrK10pO1xuICAgIHJlc3VsdC5sZW5ndGggPSBhTGVuO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkcmVkdWNlID0gcmVxdWlyZSgnLi9fYXJyYXktcmVkdWNlJyk7XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX3N0cmljdC1tZXRob2QnKShbXS5yZWR1Y2VSaWdodCwgdHJ1ZSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjE5IC8gMTUuNC40LjIyIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodChjYWxsYmFja2ZuIFssIGluaXRpYWxWYWx1ZV0pXG4gIHJlZHVjZVJpZ2h0OiBmdW5jdGlvbiByZWR1Y2VSaWdodChjYWxsYmFja2ZuIC8qICwgaW5pdGlhbFZhbHVlICovKSB7XG4gICAgcmV0dXJuICRyZWR1Y2UodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCwgYXJndW1lbnRzWzFdLCB0cnVlKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyICRyZWR1Y2UgPSByZXF1aXJlKCcuL19hcnJheS1yZWR1Y2UnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAhcmVxdWlyZSgnLi9fc3RyaWN0LW1ldGhvZCcpKFtdLnJlZHVjZSwgdHJ1ZSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjE4IC8gMTUuNC40LjIxIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UoY2FsbGJhY2tmbiBbLCBpbml0aWFsVmFsdWVdKVxuICByZWR1Y2U6IGZ1bmN0aW9uIHJlZHVjZShjYWxsYmFja2ZuIC8qICwgaW5pdGlhbFZhbHVlICovKSB7XG4gICAgcmV0dXJuICRyZWR1Y2UodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCwgYXJndW1lbnRzWzFdLCBmYWxzZSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi9faHRtbCcpO1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4vX3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciBhcnJheVNsaWNlID0gW10uc2xpY2U7XG5cbi8vIGZhbGxiYWNrIGZvciBub3QgYXJyYXktbGlrZSBFUzMgc3RyaW5ncyBhbmQgRE9NIG9iamVjdHNcbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIGlmIChodG1sKSBhcnJheVNsaWNlLmNhbGwoaHRtbCk7XG59KSwgJ0FycmF5Jywge1xuICBzbGljZTogZnVuY3Rpb24gc2xpY2UoYmVnaW4sIGVuZCkge1xuICAgIHZhciBsZW4gPSB0b0xlbmd0aCh0aGlzLmxlbmd0aCk7XG4gICAgdmFyIGtsYXNzID0gY29mKHRoaXMpO1xuICAgIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuIDogZW5kO1xuICAgIGlmIChrbGFzcyA9PSAnQXJyYXknKSByZXR1cm4gYXJyYXlTbGljZS5jYWxsKHRoaXMsIGJlZ2luLCBlbmQpO1xuICAgIHZhciBzdGFydCA9IHRvQWJzb2x1dGVJbmRleChiZWdpbiwgbGVuKTtcbiAgICB2YXIgdXBUbyA9IHRvQWJzb2x1dGVJbmRleChlbmQsIGxlbik7XG4gICAgdmFyIHNpemUgPSB0b0xlbmd0aCh1cFRvIC0gc3RhcnQpO1xuICAgIHZhciBjbG9uZWQgPSBuZXcgQXJyYXkoc2l6ZSk7XG4gICAgdmFyIGkgPSAwO1xuICAgIGZvciAoOyBpIDwgc2l6ZTsgaSsrKSBjbG9uZWRbaV0gPSBrbGFzcyA9PSAnU3RyaW5nJ1xuICAgICAgPyB0aGlzLmNoYXJBdChzdGFydCArIGkpXG4gICAgICA6IHRoaXNbc3RhcnQgKyBpXTtcbiAgICByZXR1cm4gY2xvbmVkO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJHNvbWUgPSByZXF1aXJlKCcuL19hcnJheS1tZXRob2RzJykoMyk7XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX3N0cmljdC1tZXRob2QnKShbXS5zb21lLCB0cnVlKSwgJ0FycmF5Jywge1xuICAvLyAyMi4xLjMuMjMgLyAxNS40LjQuMTcgQXJyYXkucHJvdG90eXBlLnNvbWUoY2FsbGJhY2tmbiBbLCB0aGlzQXJnXSlcbiAgc29tZTogZnVuY3Rpb24gc29tZShjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkc29tZSh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHNbMV0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyICRzb3J0ID0gW10uc29ydDtcbnZhciB0ZXN0ID0gWzEsIDIsIDNdO1xuXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIChmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIElFOC1cbiAgdGVzdC5zb3J0KHVuZGVmaW5lZCk7XG59KSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBWOCBidWdcbiAgdGVzdC5zb3J0KG51bGwpO1xuICAvLyBPbGQgV2ViS2l0XG59KSB8fCAhcmVxdWlyZSgnLi9fc3RyaWN0LW1ldGhvZCcpKCRzb3J0KSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjI1IEFycmF5LnByb3RvdHlwZS5zb3J0KGNvbXBhcmVmbilcbiAgc29ydDogZnVuY3Rpb24gc29ydChjb21wYXJlZm4pIHtcbiAgICByZXR1cm4gY29tcGFyZWZuID09PSB1bmRlZmluZWRcbiAgICAgID8gJHNvcnQuY2FsbCh0b09iamVjdCh0aGlzKSlcbiAgICAgIDogJHNvcnQuY2FsbCh0b09iamVjdCh0aGlzKSwgYUZ1bmN0aW9uKGNvbXBhcmVmbikpO1xuICB9XG59KTtcbiIsInJlcXVpcmUoJy4vX3NldC1zcGVjaWVzJykoJ0FycmF5Jyk7XG4iLCIvLyAyMC4zLjMuMSAvIDE1LjkuNC40IERhdGUubm93KClcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnRGF0ZScsIHsgbm93OiBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgRGF0ZSgpLmdldFRpbWUoKTsgfSB9KTtcbiIsIi8vIDIwLjMuNC4zNiAvIDE1LjkuNS40MyBEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZygpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHRvSVNPU3RyaW5nID0gcmVxdWlyZSgnLi9fZGF0ZS10by1pc28tc3RyaW5nJyk7XG5cbi8vIFBoYW50b21KUyAvIG9sZCBXZWJLaXQgaGFzIGEgYnJva2VuIGltcGxlbWVudGF0aW9uc1xuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcgIT09IHRvSVNPU3RyaW5nKSwgJ0RhdGUnLCB7XG4gIHRvSVNPU3RyaW5nOiB0b0lTT1N0cmluZ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiByZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIG5ldyBEYXRlKE5hTikudG9KU09OKCkgIT09IG51bGxcbiAgICB8fCBEYXRlLnByb3RvdHlwZS50b0pTT04uY2FsbCh7IHRvSVNPU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9IH0pICE9PSAxO1xufSksICdEYXRlJywge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgdG9KU09OOiBmdW5jdGlvbiB0b0pTT04oa2V5KSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCh0aGlzKTtcbiAgICB2YXIgcHYgPSB0b1ByaW1pdGl2ZShPKTtcbiAgICByZXR1cm4gdHlwZW9mIHB2ID09ICdudW1iZXInICYmICFpc0Zpbml0ZShwdikgPyBudWxsIDogTy50b0lTT1N0cmluZygpO1xuICB9XG59KTtcbiIsInZhciBUT19QUklNSVRJVkUgPSByZXF1aXJlKCcuL193a3MnKSgndG9QcmltaXRpdmUnKTtcbnZhciBwcm90byA9IERhdGUucHJvdG90eXBlO1xuXG5pZiAoIShUT19QUklNSVRJVkUgaW4gcHJvdG8pKSByZXF1aXJlKCcuL19oaWRlJykocHJvdG8sIFRPX1BSSU1JVElWRSwgcmVxdWlyZSgnLi9fZGF0ZS10by1wcmltaXRpdmUnKSk7XG4iLCJ2YXIgRGF0ZVByb3RvID0gRGF0ZS5wcm90b3R5cGU7XG52YXIgSU5WQUxJRF9EQVRFID0gJ0ludmFsaWQgRGF0ZSc7XG52YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcbnZhciAkdG9TdHJpbmcgPSBEYXRlUHJvdG9bVE9fU1RSSU5HXTtcbnZhciBnZXRUaW1lID0gRGF0ZVByb3RvLmdldFRpbWU7XG5pZiAobmV3IERhdGUoTmFOKSArICcnICE9IElOVkFMSURfREFURSkge1xuICByZXF1aXJlKCcuL19yZWRlZmluZScpKERhdGVQcm90bywgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICB2YXIgdmFsdWUgPSBnZXRUaW1lLmNhbGwodGhpcyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyAkdG9TdHJpbmcuY2FsbCh0aGlzKSA6IElOVkFMSURfREFURTtcbiAgfSk7XG59XG4iLCIvLyAxOS4yLjMuMiAvIDE1LjMuNC41IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kKHRoaXNBcmcsIGFyZ3MuLi4pXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUCwgJ0Z1bmN0aW9uJywgeyBiaW5kOiByZXF1aXJlKCcuL19iaW5kJykgfSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcbnZhciBIQVNfSU5TVEFOQ0UgPSByZXF1aXJlKCcuL193a3MnKSgnaGFzSW5zdGFuY2UnKTtcbnZhciBGdW5jdGlvblByb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuLy8gMTkuMi4zLjYgRnVuY3Rpb24ucHJvdG90eXBlW0BAaGFzSW5zdGFuY2VdKFYpXG5pZiAoIShIQVNfSU5TVEFOQ0UgaW4gRnVuY3Rpb25Qcm90bykpIHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmYoRnVuY3Rpb25Qcm90bywgSEFTX0lOU1RBTkNFLCB7IHZhbHVlOiBmdW5jdGlvbiAoTykge1xuICBpZiAodHlwZW9mIHRoaXMgIT0gJ2Z1bmN0aW9uJyB8fCAhaXNPYmplY3QoTykpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFpc09iamVjdCh0aGlzLnByb3RvdHlwZSkpIHJldHVybiBPIGluc3RhbmNlb2YgdGhpcztcbiAgLy8gZm9yIGVudmlyb25tZW50IHcvbyBuYXRpdmUgYEBAaGFzSW5zdGFuY2VgIGxvZ2ljIGVub3VnaCBgaW5zdGFuY2VvZmAsIGJ1dCBhZGQgdGhpczpcbiAgd2hpbGUgKE8gPSBnZXRQcm90b3R5cGVPZihPKSkgaWYgKHRoaXMucHJvdG90eXBlID09PSBPKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIGZhbHNlO1xufSB9KTtcbiIsInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgRlByb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlO1xudmFyIG5hbWVSRSA9IC9eXFxzKmZ1bmN0aW9uIChbXiAoXSopLztcbnZhciBOQU1FID0gJ25hbWUnO1xuXG4vLyAxOS4yLjQuMiBuYW1lXG5OQU1FIGluIEZQcm90byB8fCByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmIGRQKEZQcm90bywgTkFNRSwge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKCcnICsgdGhpcykubWF0Y2gobmFtZVJFKVsxXTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBzdHJvbmcgPSByZXF1aXJlKCcuL19jb2xsZWN0aW9uLXN0cm9uZycpO1xudmFyIHZhbGlkYXRlID0gcmVxdWlyZSgnLi9fdmFsaWRhdGUtY29sbGVjdGlvbicpO1xudmFyIE1BUCA9ICdNYXAnO1xuXG4vLyAyMy4xIE1hcCBPYmplY3RzXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2NvbGxlY3Rpb24nKShNQVAsIGZ1bmN0aW9uIChnZXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIE1hcCgpIHsgcmV0dXJuIGdldCh0aGlzLCBhcmd1bWVudHMubGVuZ3RoID4gMCA/IGFyZ3VtZW50c1swXSA6IHVuZGVmaW5lZCk7IH07XG59LCB7XG4gIC8vIDIzLjEuMy42IE1hcC5wcm90b3R5cGUuZ2V0KGtleSlcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoa2V5KSB7XG4gICAgdmFyIGVudHJ5ID0gc3Ryb25nLmdldEVudHJ5KHZhbGlkYXRlKHRoaXMsIE1BUCksIGtleSk7XG4gICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5LnY7XG4gIH0sXG4gIC8vIDIzLjEuMy45IE1hcC5wcm90b3R5cGUuc2V0KGtleSwgdmFsdWUpXG4gIHNldDogZnVuY3Rpb24gc2V0KGtleSwgdmFsdWUpIHtcbiAgICByZXR1cm4gc3Ryb25nLmRlZih2YWxpZGF0ZSh0aGlzLCBNQVApLCBrZXkgPT09IDAgPyAwIDoga2V5LCB2YWx1ZSk7XG4gIH1cbn0sIHN0cm9uZywgdHJ1ZSk7XG4iLCIvLyAyMC4yLjIuMyBNYXRoLmFjb3NoKHgpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGxvZzFwID0gcmVxdWlyZSgnLi9fbWF0aC1sb2cxcCcpO1xudmFyIHNxcnQgPSBNYXRoLnNxcnQ7XG52YXIgJGFjb3NoID0gTWF0aC5hY29zaDtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhKCRhY29zaFxuICAvLyBWOCBidWc6IGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zNTA5XG4gICYmIE1hdGguZmxvb3IoJGFjb3NoKE51bWJlci5NQVhfVkFMVUUpKSA9PSA3MTBcbiAgLy8gVG9yIEJyb3dzZXIgYnVnOiBNYXRoLmFjb3NoKEluZmluaXR5KSAtPiBOYU5cbiAgJiYgJGFjb3NoKEluZmluaXR5KSA9PSBJbmZpbml0eVxuKSwgJ01hdGgnLCB7XG4gIGFjb3NoOiBmdW5jdGlvbiBhY29zaCh4KSB7XG4gICAgcmV0dXJuICh4ID0gK3gpIDwgMSA/IE5hTiA6IHggPiA5NDkwNjI2NS42MjQyNTE1NlxuICAgICAgPyBNYXRoLmxvZyh4KSArIE1hdGguTE4yXG4gICAgICA6IGxvZzFwKHggLSAxICsgc3FydCh4IC0gMSkgKiBzcXJ0KHggKyAxKSk7XG4gIH1cbn0pO1xuIiwiLy8gMjAuMi4yLjUgTWF0aC5hc2luaCh4KVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkYXNpbmggPSBNYXRoLmFzaW5oO1xuXG5mdW5jdGlvbiBhc2luaCh4KSB7XG4gIHJldHVybiAhaXNGaW5pdGUoeCA9ICt4KSB8fCB4ID09IDAgPyB4IDogeCA8IDAgPyAtYXNpbmgoLXgpIDogTWF0aC5sb2coeCArIE1hdGguc3FydCh4ICogeCArIDEpKTtcbn1cblxuLy8gVG9yIEJyb3dzZXIgYnVnOiBNYXRoLmFzaW5oKDApIC0+IC0wXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICEoJGFzaW5oICYmIDEgLyAkYXNpbmgoMCkgPiAwKSwgJ01hdGgnLCB7IGFzaW5oOiBhc2luaCB9KTtcbiIsIi8vIDIwLjIuMi43IE1hdGguYXRhbmgoeClcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGF0YW5oID0gTWF0aC5hdGFuaDtcblxuLy8gVG9yIEJyb3dzZXIgYnVnOiBNYXRoLmF0YW5oKC0wKSAtPiAwXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICEoJGF0YW5oICYmIDEgLyAkYXRhbmgoLTApIDwgMCksICdNYXRoJywge1xuICBhdGFuaDogZnVuY3Rpb24gYXRhbmgoeCkge1xuICAgIHJldHVybiAoeCA9ICt4KSA9PSAwID8geCA6IE1hdGgubG9nKCgxICsgeCkgLyAoMSAtIHgpKSAvIDI7XG4gIH1cbn0pO1xuIiwiLy8gMjAuMi4yLjkgTWF0aC5jYnJ0KHgpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHNpZ24gPSByZXF1aXJlKCcuL19tYXRoLXNpZ24nKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdNYXRoJywge1xuICBjYnJ0OiBmdW5jdGlvbiBjYnJ0KHgpIHtcbiAgICByZXR1cm4gc2lnbih4ID0gK3gpICogTWF0aC5wb3coTWF0aC5hYnMoeCksIDEgLyAzKTtcbiAgfVxufSk7XG4iLCIvLyAyMC4yLjIuMTEgTWF0aC5jbHozMih4KVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdNYXRoJywge1xuICBjbHozMjogZnVuY3Rpb24gY2x6MzIoeCkge1xuICAgIHJldHVybiAoeCA+Pj49IDApID8gMzEgLSBNYXRoLmZsb29yKE1hdGgubG9nKHggKyAwLjUpICogTWF0aC5MT0cyRSkgOiAzMjtcbiAgfVxufSk7XG4iLCIvLyAyMC4yLjIuMTIgTWF0aC5jb3NoKHgpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGV4cCA9IE1hdGguZXhwO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ01hdGgnLCB7XG4gIGNvc2g6IGZ1bmN0aW9uIGNvc2goeCkge1xuICAgIHJldHVybiAoZXhwKHggPSAreCkgKyBleHAoLXgpKSAvIDI7XG4gIH1cbn0pO1xuIiwiLy8gMjAuMi4yLjE0IE1hdGguZXhwbTEoeClcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGV4cG0xID0gcmVxdWlyZSgnLi9fbWF0aC1leHBtMScpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICgkZXhwbTEgIT0gTWF0aC5leHBtMSksICdNYXRoJywgeyBleHBtMTogJGV4cG0xIH0pO1xuIiwiLy8gMjAuMi4yLjE2IE1hdGguZnJvdW5kKHgpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ01hdGgnLCB7IGZyb3VuZDogcmVxdWlyZSgnLi9fbWF0aC1mcm91bmQnKSB9KTtcbiIsIi8vIDIwLjIuMi4xNyBNYXRoLmh5cG90KFt2YWx1ZTFbLCB2YWx1ZTJbLCDigKYgXV1dKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBhYnMgPSBNYXRoLmFicztcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdNYXRoJywge1xuICBoeXBvdDogZnVuY3Rpb24gaHlwb3QodmFsdWUxLCB2YWx1ZTIpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHZhciBzdW0gPSAwO1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGxhcmcgPSAwO1xuICAgIHZhciBhcmcsIGRpdjtcbiAgICB3aGlsZSAoaSA8IGFMZW4pIHtcbiAgICAgIGFyZyA9IGFicyhhcmd1bWVudHNbaSsrXSk7XG4gICAgICBpZiAobGFyZyA8IGFyZykge1xuICAgICAgICBkaXYgPSBsYXJnIC8gYXJnO1xuICAgICAgICBzdW0gPSBzdW0gKiBkaXYgKiBkaXYgKyAxO1xuICAgICAgICBsYXJnID0gYXJnO1xuICAgICAgfSBlbHNlIGlmIChhcmcgPiAwKSB7XG4gICAgICAgIGRpdiA9IGFyZyAvIGxhcmc7XG4gICAgICAgIHN1bSArPSBkaXYgKiBkaXY7XG4gICAgICB9IGVsc2Ugc3VtICs9IGFyZztcbiAgICB9XG4gICAgcmV0dXJuIGxhcmcgPT09IEluZmluaXR5ID8gSW5maW5pdHkgOiBsYXJnICogTWF0aC5zcXJ0KHN1bSk7XG4gIH1cbn0pO1xuIiwiLy8gMjAuMi4yLjE4IE1hdGguaW11bCh4LCB5KVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkaW11bCA9IE1hdGguaW11bDtcblxuLy8gc29tZSBXZWJLaXQgdmVyc2lvbnMgZmFpbHMgd2l0aCBiaWcgbnVtYmVycywgc29tZSBoYXMgd3JvbmcgYXJpdHlcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAkaW11bCgweGZmZmZmZmZmLCA1KSAhPSAtNSB8fCAkaW11bC5sZW5ndGggIT0gMjtcbn0pLCAnTWF0aCcsIHtcbiAgaW11bDogZnVuY3Rpb24gaW11bCh4LCB5KSB7XG4gICAgdmFyIFVJTlQxNiA9IDB4ZmZmZjtcbiAgICB2YXIgeG4gPSAreDtcbiAgICB2YXIgeW4gPSAreTtcbiAgICB2YXIgeGwgPSBVSU5UMTYgJiB4bjtcbiAgICB2YXIgeWwgPSBVSU5UMTYgJiB5bjtcbiAgICByZXR1cm4gMCB8IHhsICogeWwgKyAoKFVJTlQxNiAmIHhuID4+PiAxNikgKiB5bCArIHhsICogKFVJTlQxNiAmIHluID4+PiAxNikgPDwgMTYgPj4+IDApO1xuICB9XG59KTtcbiIsIi8vIDIwLjIuMi4yMSBNYXRoLmxvZzEwKHgpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ01hdGgnLCB7XG4gIGxvZzEwOiBmdW5jdGlvbiBsb2cxMCh4KSB7XG4gICAgcmV0dXJuIE1hdGgubG9nKHgpICogTWF0aC5MT0cxMEU7XG4gIH1cbn0pO1xuIiwiLy8gMjAuMi4yLjIwIE1hdGgubG9nMXAoeClcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnTWF0aCcsIHsgbG9nMXA6IHJlcXVpcmUoJy4vX21hdGgtbG9nMXAnKSB9KTtcbiIsIi8vIDIwLjIuMi4yMiBNYXRoLmxvZzIoeClcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnTWF0aCcsIHtcbiAgbG9nMjogZnVuY3Rpb24gbG9nMih4KSB7XG4gICAgcmV0dXJuIE1hdGgubG9nKHgpIC8gTWF0aC5MTjI7XG4gIH1cbn0pO1xuIiwiLy8gMjAuMi4yLjI4IE1hdGguc2lnbih4KVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdNYXRoJywgeyBzaWduOiByZXF1aXJlKCcuL19tYXRoLXNpZ24nKSB9KTtcbiIsIi8vIDIwLjIuMi4zMCBNYXRoLnNpbmgoeClcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgZXhwbTEgPSByZXF1aXJlKCcuL19tYXRoLWV4cG0xJyk7XG52YXIgZXhwID0gTWF0aC5leHA7XG5cbi8vIFY4IG5lYXIgQ2hyb21pdW0gMzggaGFzIGEgcHJvYmxlbSB3aXRoIHZlcnkgc21hbGwgbnVtYmVyc1xuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiByZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICFNYXRoLnNpbmgoLTJlLTE3KSAhPSAtMmUtMTc7XG59KSwgJ01hdGgnLCB7XG4gIHNpbmg6IGZ1bmN0aW9uIHNpbmgoeCkge1xuICAgIHJldHVybiBNYXRoLmFicyh4ID0gK3gpIDwgMVxuICAgICAgPyAoZXhwbTEoeCkgLSBleHBtMSgteCkpIC8gMlxuICAgICAgOiAoZXhwKHggLSAxKSAtIGV4cCgteCAtIDEpKSAqIChNYXRoLkUgLyAyKTtcbiAgfVxufSk7XG4iLCIvLyAyMC4yLjIuMzMgTWF0aC50YW5oKHgpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGV4cG0xID0gcmVxdWlyZSgnLi9fbWF0aC1leHBtMScpO1xudmFyIGV4cCA9IE1hdGguZXhwO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ01hdGgnLCB7XG4gIHRhbmg6IGZ1bmN0aW9uIHRhbmgoeCkge1xuICAgIHZhciBhID0gZXhwbTEoeCA9ICt4KTtcbiAgICB2YXIgYiA9IGV4cG0xKC14KTtcbiAgICByZXR1cm4gYSA9PSBJbmZpbml0eSA/IDEgOiBiID09IEluZmluaXR5ID8gLTEgOiAoYSAtIGIpIC8gKGV4cCh4KSArIGV4cCgteCkpO1xuICB9XG59KTtcbiIsIi8vIDIwLjIuMi4zNCBNYXRoLnRydW5jKHgpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ01hdGgnLCB7XG4gIHRydW5jOiBmdW5jdGlvbiB0cnVuYyhpdCkge1xuICAgIHJldHVybiAoaXQgPiAwID8gTWF0aC5mbG9vciA6IE1hdGguY2VpbCkoaXQpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4vX2luaGVyaXQtaWYtcmVxdWlyZWQnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciBnT1BOID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4nKS5mO1xudmFyIGdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpLmY7XG52YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mO1xudmFyICR0cmltID0gcmVxdWlyZSgnLi9fc3RyaW5nLXRyaW0nKS50cmltO1xudmFyIE5VTUJFUiA9ICdOdW1iZXInO1xudmFyICROdW1iZXIgPSBnbG9iYWxbTlVNQkVSXTtcbnZhciBCYXNlID0gJE51bWJlcjtcbnZhciBwcm90byA9ICROdW1iZXIucHJvdG90eXBlO1xuLy8gT3BlcmEgfjEyIGhhcyBicm9rZW4gT2JqZWN0I3RvU3RyaW5nXG52YXIgQlJPS0VOX0NPRiA9IGNvZihyZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykocHJvdG8pKSA9PSBOVU1CRVI7XG52YXIgVFJJTSA9ICd0cmltJyBpbiBTdHJpbmcucHJvdG90eXBlO1xuXG4vLyA3LjEuMyBUb051bWJlcihhcmd1bWVudClcbnZhciB0b051bWJlciA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB2YXIgaXQgPSB0b1ByaW1pdGl2ZShhcmd1bWVudCwgZmFsc2UpO1xuICBpZiAodHlwZW9mIGl0ID09ICdzdHJpbmcnICYmIGl0Lmxlbmd0aCA+IDIpIHtcbiAgICBpdCA9IFRSSU0gPyBpdC50cmltKCkgOiAkdHJpbShpdCwgMyk7XG4gICAgdmFyIGZpcnN0ID0gaXQuY2hhckNvZGVBdCgwKTtcbiAgICB2YXIgdGhpcmQsIHJhZGl4LCBtYXhDb2RlO1xuICAgIGlmIChmaXJzdCA9PT0gNDMgfHwgZmlyc3QgPT09IDQ1KSB7XG4gICAgICB0aGlyZCA9IGl0LmNoYXJDb2RlQXQoMik7XG4gICAgICBpZiAodGhpcmQgPT09IDg4IHx8IHRoaXJkID09PSAxMjApIHJldHVybiBOYU47IC8vIE51bWJlcignKzB4MScpIHNob3VsZCBiZSBOYU4sIG9sZCBWOCBmaXhcbiAgICB9IGVsc2UgaWYgKGZpcnN0ID09PSA0OCkge1xuICAgICAgc3dpdGNoIChpdC5jaGFyQ29kZUF0KDEpKSB7XG4gICAgICAgIGNhc2UgNjY6IGNhc2UgOTg6IHJhZGl4ID0gMjsgbWF4Q29kZSA9IDQ5OyBicmVhazsgLy8gZmFzdCBlcXVhbCAvXjBiWzAxXSskL2lcbiAgICAgICAgY2FzZSA3OTogY2FzZSAxMTE6IHJhZGl4ID0gODsgbWF4Q29kZSA9IDU1OyBicmVhazsgLy8gZmFzdCBlcXVhbCAvXjBvWzAtN10rJC9pXG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiAraXQ7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBkaWdpdHMgPSBpdC5zbGljZSgyKSwgaSA9IDAsIGwgPSBkaWdpdHMubGVuZ3RoLCBjb2RlOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGNvZGUgPSBkaWdpdHMuY2hhckNvZGVBdChpKTtcbiAgICAgICAgLy8gcGFyc2VJbnQgcGFyc2VzIGEgc3RyaW5nIHRvIGEgZmlyc3QgdW5hdmFpbGFibGUgc3ltYm9sXG4gICAgICAgIC8vIGJ1dCBUb051bWJlciBzaG91bGQgcmV0dXJuIE5hTiBpZiBhIHN0cmluZyBjb250YWlucyB1bmF2YWlsYWJsZSBzeW1ib2xzXG4gICAgICAgIGlmIChjb2RlIDwgNDggfHwgY29kZSA+IG1heENvZGUpIHJldHVybiBOYU47XG4gICAgICB9IHJldHVybiBwYXJzZUludChkaWdpdHMsIHJhZGl4KTtcbiAgICB9XG4gIH0gcmV0dXJuICtpdDtcbn07XG5cbmlmICghJE51bWJlcignIDBvMScpIHx8ICEkTnVtYmVyKCcwYjEnKSB8fCAkTnVtYmVyKCcrMHgxJykpIHtcbiAgJE51bWJlciA9IGZ1bmN0aW9uIE51bWJlcih2YWx1ZSkge1xuICAgIHZhciBpdCA9IGFyZ3VtZW50cy5sZW5ndGggPCAxID8gMCA6IHZhbHVlO1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICByZXR1cm4gdGhhdCBpbnN0YW5jZW9mICROdW1iZXJcbiAgICAgIC8vIGNoZWNrIG9uIDEuLmNvbnN0cnVjdG9yKGZvbykgY2FzZVxuICAgICAgJiYgKEJST0tFTl9DT0YgPyBmYWlscyhmdW5jdGlvbiAoKSB7IHByb3RvLnZhbHVlT2YuY2FsbCh0aGF0KTsgfSkgOiBjb2YodGhhdCkgIT0gTlVNQkVSKVxuICAgICAgICA/IGluaGVyaXRJZlJlcXVpcmVkKG5ldyBCYXNlKHRvTnVtYmVyKGl0KSksIHRoYXQsICROdW1iZXIpIDogdG9OdW1iZXIoaXQpO1xuICB9O1xuICBmb3IgKHZhciBrZXlzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGdPUE4oQmFzZSkgOiAoXG4gICAgLy8gRVMzOlxuICAgICdNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElWRV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSwnICtcbiAgICAvLyBFUzYgKGluIGNhc2UsIGlmIG1vZHVsZXMgd2l0aCBFUzYgTnVtYmVyIHN0YXRpY3MgcmVxdWlyZWQgYmVmb3JlKTpcbiAgICAnRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLCcgK1xuICAgICdNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJbnQsaXNJbnRlZ2VyJ1xuICApLnNwbGl0KCcsJyksIGogPSAwLCBrZXk7IGtleXMubGVuZ3RoID4gajsgaisrKSB7XG4gICAgaWYgKGhhcyhCYXNlLCBrZXkgPSBrZXlzW2pdKSAmJiAhaGFzKCROdW1iZXIsIGtleSkpIHtcbiAgICAgIGRQKCROdW1iZXIsIGtleSwgZ09QRChCYXNlLCBrZXkpKTtcbiAgICB9XG4gIH1cbiAgJE51bWJlci5wcm90b3R5cGUgPSBwcm90bztcbiAgcHJvdG8uY29uc3RydWN0b3IgPSAkTnVtYmVyO1xuICByZXF1aXJlKCcuL19yZWRlZmluZScpKGdsb2JhbCwgTlVNQkVSLCAkTnVtYmVyKTtcbn1cbiIsIi8vIDIwLjEuMi4xIE51bWJlci5FUFNJTE9OXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ051bWJlcicsIHsgRVBTSUxPTjogTWF0aC5wb3coMiwgLTUyKSB9KTtcbiIsIi8vIDIwLjEuMi4yIE51bWJlci5pc0Zpbml0ZShudW1iZXIpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIF9pc0Zpbml0ZSA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmlzRmluaXRlO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ051bWJlcicsIHtcbiAgaXNGaW5pdGU6IGZ1bmN0aW9uIGlzRmluaXRlKGl0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpdCA9PSAnbnVtYmVyJyAmJiBfaXNGaW5pdGUoaXQpO1xuICB9XG59KTtcbiIsIi8vIDIwLjEuMi4zIE51bWJlci5pc0ludGVnZXIobnVtYmVyKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdOdW1iZXInLCB7IGlzSW50ZWdlcjogcmVxdWlyZSgnLi9faXMtaW50ZWdlcicpIH0pO1xuIiwiLy8gMjAuMS4yLjQgTnVtYmVyLmlzTmFOKG51bWJlcilcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnTnVtYmVyJywge1xuICBpc05hTjogZnVuY3Rpb24gaXNOYU4obnVtYmVyKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIHJldHVybiBudW1iZXIgIT0gbnVtYmVyO1xuICB9XG59KTtcbiIsIi8vIDIwLjEuMi41IE51bWJlci5pc1NhZmVJbnRlZ2VyKG51bWJlcilcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgaXNJbnRlZ2VyID0gcmVxdWlyZSgnLi9faXMtaW50ZWdlcicpO1xudmFyIGFicyA9IE1hdGguYWJzO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ051bWJlcicsIHtcbiAgaXNTYWZlSW50ZWdlcjogZnVuY3Rpb24gaXNTYWZlSW50ZWdlcihudW1iZXIpIHtcbiAgICByZXR1cm4gaXNJbnRlZ2VyKG51bWJlcikgJiYgYWJzKG51bWJlcikgPD0gMHgxZmZmZmZmZmZmZmZmZjtcbiAgfVxufSk7XG4iLCIvLyAyMC4xLjIuNiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdOdW1iZXInLCB7IE1BWF9TQUZFX0lOVEVHRVI6IDB4MWZmZmZmZmZmZmZmZmYgfSk7XG4iLCIvLyAyMC4xLjIuMTAgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVJcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnTnVtYmVyJywgeyBNSU5fU0FGRV9JTlRFR0VSOiAtMHgxZmZmZmZmZmZmZmZmZiB9KTtcbiIsInZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJHBhcnNlRmxvYXQgPSByZXF1aXJlKCcuL19wYXJzZS1mbG9hdCcpO1xuLy8gMjAuMS4yLjEyIE51bWJlci5wYXJzZUZsb2F0KHN0cmluZylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogKE51bWJlci5wYXJzZUZsb2F0ICE9ICRwYXJzZUZsb2F0KSwgJ051bWJlcicsIHsgcGFyc2VGbG9hdDogJHBhcnNlRmxvYXQgfSk7XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyICRwYXJzZUludCA9IHJlcXVpcmUoJy4vX3BhcnNlLWludCcpO1xuLy8gMjAuMS4yLjEzIE51bWJlci5wYXJzZUludChzdHJpbmcsIHJhZGl4KVxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAoTnVtYmVyLnBhcnNlSW50ICE9ICRwYXJzZUludCksICdOdW1iZXInLCB7IHBhcnNlSW50OiAkcGFyc2VJbnQgfSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBhTnVtYmVyVmFsdWUgPSByZXF1aXJlKCcuL19hLW51bWJlci12YWx1ZScpO1xudmFyIHJlcGVhdCA9IHJlcXVpcmUoJy4vX3N0cmluZy1yZXBlYXQnKTtcbnZhciAkdG9GaXhlZCA9IDEuMC50b0ZpeGVkO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbnZhciBkYXRhID0gWzAsIDAsIDAsIDAsIDAsIDBdO1xudmFyIEVSUk9SID0gJ051bWJlci50b0ZpeGVkOiBpbmNvcnJlY3QgaW52b2NhdGlvbiEnO1xudmFyIFpFUk8gPSAnMCc7XG5cbnZhciBtdWx0aXBseSA9IGZ1bmN0aW9uIChuLCBjKSB7XG4gIHZhciBpID0gLTE7XG4gIHZhciBjMiA9IGM7XG4gIHdoaWxlICgrK2kgPCA2KSB7XG4gICAgYzIgKz0gbiAqIGRhdGFbaV07XG4gICAgZGF0YVtpXSA9IGMyICUgMWU3O1xuICAgIGMyID0gZmxvb3IoYzIgLyAxZTcpO1xuICB9XG59O1xudmFyIGRpdmlkZSA9IGZ1bmN0aW9uIChuKSB7XG4gIHZhciBpID0gNjtcbiAgdmFyIGMgPSAwO1xuICB3aGlsZSAoLS1pID49IDApIHtcbiAgICBjICs9IGRhdGFbaV07XG4gICAgZGF0YVtpXSA9IGZsb29yKGMgLyBuKTtcbiAgICBjID0gKGMgJSBuKSAqIDFlNztcbiAgfVxufTtcbnZhciBudW1Ub1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGkgPSA2O1xuICB2YXIgcyA9ICcnO1xuICB3aGlsZSAoLS1pID49IDApIHtcbiAgICBpZiAocyAhPT0gJycgfHwgaSA9PT0gMCB8fCBkYXRhW2ldICE9PSAwKSB7XG4gICAgICB2YXIgdCA9IFN0cmluZyhkYXRhW2ldKTtcbiAgICAgIHMgPSBzID09PSAnJyA/IHQgOiBzICsgcmVwZWF0LmNhbGwoWkVSTywgNyAtIHQubGVuZ3RoKSArIHQ7XG4gICAgfVxuICB9IHJldHVybiBzO1xufTtcbnZhciBwb3cgPSBmdW5jdGlvbiAoeCwgbiwgYWNjKSB7XG4gIHJldHVybiBuID09PSAwID8gYWNjIDogbiAlIDIgPT09IDEgPyBwb3coeCwgbiAtIDEsIGFjYyAqIHgpIDogcG93KHggKiB4LCBuIC8gMiwgYWNjKTtcbn07XG52YXIgbG9nID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIG4gPSAwO1xuICB2YXIgeDIgPSB4O1xuICB3aGlsZSAoeDIgPj0gNDA5Nikge1xuICAgIG4gKz0gMTI7XG4gICAgeDIgLz0gNDA5NjtcbiAgfVxuICB3aGlsZSAoeDIgPj0gMikge1xuICAgIG4gKz0gMTtcbiAgICB4MiAvPSAyO1xuICB9IHJldHVybiBuO1xufTtcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoISEkdG9GaXhlZCAmJiAoXG4gIDAuMDAwMDgudG9GaXhlZCgzKSAhPT0gJzAuMDAwJyB8fFxuICAwLjkudG9GaXhlZCgwKSAhPT0gJzEnIHx8XG4gIDEuMjU1LnRvRml4ZWQoMikgIT09ICcxLjI1JyB8fFxuICAxMDAwMDAwMDAwMDAwMDAwMTI4LjAudG9GaXhlZCgwKSAhPT0gJzEwMDAwMDAwMDAwMDAwMDAxMjgnXG4pIHx8ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgLy8gVjggfiBBbmRyb2lkIDQuMy1cbiAgJHRvRml4ZWQuY2FsbCh7fSk7XG59KSksICdOdW1iZXInLCB7XG4gIHRvRml4ZWQ6IGZ1bmN0aW9uIHRvRml4ZWQoZnJhY3Rpb25EaWdpdHMpIHtcbiAgICB2YXIgeCA9IGFOdW1iZXJWYWx1ZSh0aGlzLCBFUlJPUik7XG4gICAgdmFyIGYgPSB0b0ludGVnZXIoZnJhY3Rpb25EaWdpdHMpO1xuICAgIHZhciBzID0gJyc7XG4gICAgdmFyIG0gPSBaRVJPO1xuICAgIHZhciBlLCB6LCBqLCBrO1xuICAgIGlmIChmIDwgMCB8fCBmID4gMjApIHRocm93IFJhbmdlRXJyb3IoRVJST1IpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICBpZiAoeCAhPSB4KSByZXR1cm4gJ05hTic7XG4gICAgaWYgKHggPD0gLTFlMjEgfHwgeCA+PSAxZTIxKSByZXR1cm4gU3RyaW5nKHgpO1xuICAgIGlmICh4IDwgMCkge1xuICAgICAgcyA9ICctJztcbiAgICAgIHggPSAteDtcbiAgICB9XG4gICAgaWYgKHggPiAxZS0yMSkge1xuICAgICAgZSA9IGxvZyh4ICogcG93KDIsIDY5LCAxKSkgLSA2OTtcbiAgICAgIHogPSBlIDwgMCA/IHggKiBwb3coMiwgLWUsIDEpIDogeCAvIHBvdygyLCBlLCAxKTtcbiAgICAgIHogKj0gMHgxMDAwMDAwMDAwMDAwMDtcbiAgICAgIGUgPSA1MiAtIGU7XG4gICAgICBpZiAoZSA+IDApIHtcbiAgICAgICAgbXVsdGlwbHkoMCwgeik7XG4gICAgICAgIGogPSBmO1xuICAgICAgICB3aGlsZSAoaiA+PSA3KSB7XG4gICAgICAgICAgbXVsdGlwbHkoMWU3LCAwKTtcbiAgICAgICAgICBqIC09IDc7XG4gICAgICAgIH1cbiAgICAgICAgbXVsdGlwbHkocG93KDEwLCBqLCAxKSwgMCk7XG4gICAgICAgIGogPSBlIC0gMTtcbiAgICAgICAgd2hpbGUgKGogPj0gMjMpIHtcbiAgICAgICAgICBkaXZpZGUoMSA8PCAyMyk7XG4gICAgICAgICAgaiAtPSAyMztcbiAgICAgICAgfVxuICAgICAgICBkaXZpZGUoMSA8PCBqKTtcbiAgICAgICAgbXVsdGlwbHkoMSwgMSk7XG4gICAgICAgIGRpdmlkZSgyKTtcbiAgICAgICAgbSA9IG51bVRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtdWx0aXBseSgwLCB6KTtcbiAgICAgICAgbXVsdGlwbHkoMSA8PCAtZSwgMCk7XG4gICAgICAgIG0gPSBudW1Ub1N0cmluZygpICsgcmVwZWF0LmNhbGwoWkVSTywgZik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmID4gMCkge1xuICAgICAgayA9IG0ubGVuZ3RoO1xuICAgICAgbSA9IHMgKyAoayA8PSBmID8gJzAuJyArIHJlcGVhdC5jYWxsKFpFUk8sIGYgLSBrKSArIG0gOiBtLnNsaWNlKDAsIGsgLSBmKSArICcuJyArIG0uc2xpY2UoayAtIGYpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbSA9IHMgKyBtO1xuICAgIH0gcmV0dXJuIG07XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyIGFOdW1iZXJWYWx1ZSA9IHJlcXVpcmUoJy4vX2EtbnVtYmVyLXZhbHVlJyk7XG52YXIgJHRvUHJlY2lzaW9uID0gMS4wLnRvUHJlY2lzaW9uO1xuXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqICgkZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBJRTctXG4gIHJldHVybiAkdG9QcmVjaXNpb24uY2FsbCgxLCB1bmRlZmluZWQpICE9PSAnMSc7XG59KSB8fCAhJGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gVjggfiBBbmRyb2lkIDQuMy1cbiAgJHRvUHJlY2lzaW9uLmNhbGwoe30pO1xufSkpLCAnTnVtYmVyJywge1xuICB0b1ByZWNpc2lvbjogZnVuY3Rpb24gdG9QcmVjaXNpb24ocHJlY2lzaW9uKSB7XG4gICAgdmFyIHRoYXQgPSBhTnVtYmVyVmFsdWUodGhpcywgJ051bWJlciN0b1ByZWNpc2lvbjogaW5jb3JyZWN0IGludm9jYXRpb24hJyk7XG4gICAgcmV0dXJuIHByZWNpc2lvbiA9PT0gdW5kZWZpbmVkID8gJHRvUHJlY2lzaW9uLmNhbGwodGhhdCkgOiAkdG9QcmVjaXNpb24uY2FsbCh0aGF0LCBwcmVjaXNpb24pO1xuICB9XG59KTtcbiIsIi8vIDE5LjEuMy4xIE9iamVjdC5hc3NpZ24odGFyZ2V0LCBzb3VyY2UpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiwgJ09iamVjdCcsIHsgYXNzaWduOiByZXF1aXJlKCcuL19vYmplY3QtYXNzaWduJykgfSk7XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgY3JlYXRlOiByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykgfSk7XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjMgLyAxNS4yLjMuNyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKVxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSwgJ09iamVjdCcsIHsgZGVmaW5lUHJvcGVydGllczogcmVxdWlyZSgnLi9fb2JqZWN0LWRwcycpIH0pO1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbi8vIDE5LjEuMi40IC8gMTUuMi4zLjYgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpLCAnT2JqZWN0JywgeyBkZWZpbmVQcm9wZXJ0eTogcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZiB9KTtcbiIsIi8vIDE5LjEuMi41IE9iamVjdC5mcmVlemUoTylcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIG1ldGEgPSByZXF1aXJlKCcuL19tZXRhJykub25GcmVlemU7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgnZnJlZXplJywgZnVuY3Rpb24gKCRmcmVlemUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGZyZWV6ZShpdCkge1xuICAgIHJldHVybiAkZnJlZXplICYmIGlzT2JqZWN0KGl0KSA/ICRmcmVlemUobWV0YShpdCkpIDogaXQ7XG4gIH07XG59KTtcbiIsIi8vIDE5LjEuMi42IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUClcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZjtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRvSU9iamVjdChpdCksIGtleSk7XG4gIH07XG59KTtcbiIsIi8vIDE5LjEuMi43IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG5yZXF1aXJlKCcuL19vYmplY3Qtc2FwJykoJ2dldE93blByb3BlcnR5TmFtZXMnLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiByZXF1aXJlKCcuL19vYmplY3QtZ29wbi1leHQnKS5mO1xufSk7XG4iLCIvLyAxOS4xLjIuOSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTylcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyICRnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdnZXRQcm90b3R5cGVPZicsIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGdldFByb3RvdHlwZU9mKGl0KSB7XG4gICAgcmV0dXJuICRnZXRQcm90b3R5cGVPZih0b09iamVjdChpdCkpO1xuICB9O1xufSk7XG4iLCIvLyAxOS4xLjIuMTEgT2JqZWN0LmlzRXh0ZW5zaWJsZShPKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgnaXNFeHRlbnNpYmxlJywgZnVuY3Rpb24gKCRpc0V4dGVuc2libGUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGlzRXh0ZW5zaWJsZShpdCkge1xuICAgIHJldHVybiBpc09iamVjdChpdCkgPyAkaXNFeHRlbnNpYmxlID8gJGlzRXh0ZW5zaWJsZShpdCkgOiB0cnVlIDogZmFsc2U7XG4gIH07XG59KTtcbiIsIi8vIDE5LjEuMi4xMiBPYmplY3QuaXNGcm96ZW4oTylcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xuXG5yZXF1aXJlKCcuL19vYmplY3Qtc2FwJykoJ2lzRnJvemVuJywgZnVuY3Rpb24gKCRpc0Zyb3plbikge1xuICByZXR1cm4gZnVuY3Rpb24gaXNGcm96ZW4oaXQpIHtcbiAgICByZXR1cm4gaXNPYmplY3QoaXQpID8gJGlzRnJvemVuID8gJGlzRnJvemVuKGl0KSA6IGZhbHNlIDogdHJ1ZTtcbiAgfTtcbn0pO1xuIiwiLy8gMTkuMS4yLjEzIE9iamVjdC5pc1NlYWxlZChPKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgnaXNTZWFsZWQnLCBmdW5jdGlvbiAoJGlzU2VhbGVkKSB7XG4gIHJldHVybiBmdW5jdGlvbiBpc1NlYWxlZChpdCkge1xuICAgIHJldHVybiBpc09iamVjdChpdCkgPyAkaXNTZWFsZWQgPyAkaXNTZWFsZWQoaXQpIDogZmFsc2UgOiB0cnVlO1xuICB9O1xufSk7XG4iLCIvLyAxOS4xLjMuMTAgT2JqZWN0LmlzKHZhbHVlMSwgdmFsdWUyKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbiRleHBvcnQoJGV4cG9ydC5TLCAnT2JqZWN0JywgeyBpczogcmVxdWlyZSgnLi9fc2FtZS12YWx1ZScpIH0pO1xuIiwiLy8gMTkuMS4yLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgna2V5cycsIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGtleXMoaXQpIHtcbiAgICByZXR1cm4gJGtleXModG9PYmplY3QoaXQpKTtcbiAgfTtcbn0pO1xuIiwiLy8gMTkuMS4yLjE1IE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhPKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgbWV0YSA9IHJlcXVpcmUoJy4vX21ldGEnKS5vbkZyZWV6ZTtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdwcmV2ZW50RXh0ZW5zaW9ucycsIGZ1bmN0aW9uICgkcHJldmVudEV4dGVuc2lvbnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHByZXZlbnRFeHRlbnNpb25zKGl0KSB7XG4gICAgcmV0dXJuICRwcmV2ZW50RXh0ZW5zaW9ucyAmJiBpc09iamVjdChpdCkgPyAkcHJldmVudEV4dGVuc2lvbnMobWV0YShpdCkpIDogaXQ7XG4gIH07XG59KTtcbiIsIi8vIDE5LjEuMi4xNyBPYmplY3Quc2VhbChPKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgbWV0YSA9IHJlcXVpcmUoJy4vX21ldGEnKS5vbkZyZWV6ZTtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdzZWFsJywgZnVuY3Rpb24gKCRzZWFsKSB7XG4gIHJldHVybiBmdW5jdGlvbiBzZWFsKGl0KSB7XG4gICAgcmV0dXJuICRzZWFsICYmIGlzT2JqZWN0KGl0KSA/ICRzZWFsKG1ldGEoaXQpKSA6IGl0O1xuICB9O1xufSk7XG4iLCIvLyAxOS4xLjMuMTkgT2JqZWN0LnNldFByb3RvdHlwZU9mKE8sIHByb3RvKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbiRleHBvcnQoJGV4cG9ydC5TLCAnT2JqZWN0JywgeyBzZXRQcm90b3R5cGVPZjogcmVxdWlyZSgnLi9fc2V0LXByb3RvJykuc2V0IH0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gMTkuMS4zLjYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpXG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4vX2NsYXNzb2YnKTtcbnZhciB0ZXN0ID0ge307XG50ZXN0W3JlcXVpcmUoJy4vX3drcycpKCd0b1N0cmluZ1RhZycpXSA9ICd6JztcbmlmICh0ZXN0ICsgJycgIT0gJ1tvYmplY3Qgel0nKSB7XG4gIHJlcXVpcmUoJy4vX3JlZGVmaW5lJykoT2JqZWN0LnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuICdbb2JqZWN0ICcgKyBjbGFzc29mKHRoaXMpICsgJ10nO1xuICB9LCB0cnVlKTtcbn1cbiIsInZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJHBhcnNlRmxvYXQgPSByZXF1aXJlKCcuL19wYXJzZS1mbG9hdCcpO1xuLy8gMTguMi40IHBhcnNlRmxvYXQoc3RyaW5nKVxuJGV4cG9ydCgkZXhwb3J0LkcgKyAkZXhwb3J0LkYgKiAocGFyc2VGbG9hdCAhPSAkcGFyc2VGbG9hdCksIHsgcGFyc2VGbG9hdDogJHBhcnNlRmxvYXQgfSk7XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyICRwYXJzZUludCA9IHJlcXVpcmUoJy4vX3BhcnNlLWludCcpO1xuLy8gMTguMi41IHBhcnNlSW50KHN0cmluZywgcmFkaXgpXG4kZXhwb3J0KCRleHBvcnQuRyArICRleHBvcnQuRiAqIChwYXJzZUludCAhPSAkcGFyc2VJbnQpLCB7IHBhcnNlSW50OiAkcGFyc2VJbnQgfSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTElCUkFSWSA9IHJlcXVpcmUoJy4vX2xpYnJhcnknKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi9fYW4taW5zdGFuY2UnKTtcbnZhciBmb3JPZiA9IHJlcXVpcmUoJy4vX2Zvci1vZicpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4vX3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciB0YXNrID0gcmVxdWlyZSgnLi9fdGFzaycpLnNldDtcbnZhciBtaWNyb3Rhc2sgPSByZXF1aXJlKCcuL19taWNyb3Rhc2snKSgpO1xudmFyIG5ld1Byb21pc2VDYXBhYmlsaXR5TW9kdWxlID0gcmVxdWlyZSgnLi9fbmV3LXByb21pc2UtY2FwYWJpbGl0eScpO1xudmFyIHBlcmZvcm0gPSByZXF1aXJlKCcuL19wZXJmb3JtJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi9fdXNlci1hZ2VudCcpO1xudmFyIHByb21pc2VSZXNvbHZlID0gcmVxdWlyZSgnLi9fcHJvbWlzZS1yZXNvbHZlJyk7XG52YXIgUFJPTUlTRSA9ICdQcm9taXNlJztcbnZhciBUeXBlRXJyb3IgPSBnbG9iYWwuVHlwZUVycm9yO1xudmFyIHByb2Nlc3MgPSBnbG9iYWwucHJvY2VzcztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucztcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4IHx8ICcnO1xudmFyICRQcm9taXNlID0gZ2xvYmFsW1BST01JU0VdO1xudmFyIGlzTm9kZSA9IGNsYXNzb2YocHJvY2VzcykgPT0gJ3Byb2Nlc3MnO1xudmFyIGVtcHR5ID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xudmFyIEludGVybmFsLCBuZXdHZW5lcmljUHJvbWlzZUNhcGFiaWxpdHksIE93blByb21pc2VDYXBhYmlsaXR5LCBXcmFwcGVyO1xudmFyIG5ld1Byb21pc2VDYXBhYmlsaXR5ID0gbmV3R2VuZXJpY1Byb21pc2VDYXBhYmlsaXR5ID0gbmV3UHJvbWlzZUNhcGFiaWxpdHlNb2R1bGUuZjtcblxudmFyIFVTRV9OQVRJVkUgPSAhIWZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICAvLyBjb3JyZWN0IHN1YmNsYXNzaW5nIHdpdGggQEBzcGVjaWVzIHN1cHBvcnRcbiAgICB2YXIgcHJvbWlzZSA9ICRQcm9taXNlLnJlc29sdmUoMSk7XG4gICAgdmFyIEZha2VQcm9taXNlID0gKHByb21pc2UuY29uc3RydWN0b3IgPSB7fSlbcmVxdWlyZSgnLi9fd2tzJykoJ3NwZWNpZXMnKV0gPSBmdW5jdGlvbiAoZXhlYykge1xuICAgICAgZXhlYyhlbXB0eSwgZW1wdHkpO1xuICAgIH07XG4gICAgLy8gdW5oYW5kbGVkIHJlamVjdGlvbnMgdHJhY2tpbmcgc3VwcG9ydCwgTm9kZUpTIFByb21pc2Ugd2l0aG91dCBpdCBmYWlscyBAQHNwZWNpZXMgdGVzdFxuICAgIHJldHVybiAoaXNOb2RlIHx8IHR5cGVvZiBQcm9taXNlUmVqZWN0aW9uRXZlbnQgPT0gJ2Z1bmN0aW9uJylcbiAgICAgICYmIHByb21pc2UudGhlbihlbXB0eSkgaW5zdGFuY2VvZiBGYWtlUHJvbWlzZVxuICAgICAgLy8gdjggNi42IChOb2RlIDEwIGFuZCBDaHJvbWUgNjYpIGhhdmUgYSBidWcgd2l0aCByZXNvbHZpbmcgY3VzdG9tIHRoZW5hYmxlc1xuICAgICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODMwNTY1XG4gICAgICAvLyB3ZSBjYW4ndCBkZXRlY3QgaXQgc3luY2hyb25vdXNseSwgc28ganVzdCBjaGVjayB2ZXJzaW9uc1xuICAgICAgJiYgdjguaW5kZXhPZignNi42JykgIT09IDBcbiAgICAgICYmIHVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUvNjYnKSA9PT0gLTE7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxufSgpO1xuXG4vLyBoZWxwZXJzXG52YXIgaXNUaGVuYWJsZSA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgdGhlbjtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiB0eXBlb2YgKHRoZW4gPSBpdC50aGVuKSA9PSAnZnVuY3Rpb24nID8gdGhlbiA6IGZhbHNlO1xufTtcbnZhciBub3RpZnkgPSBmdW5jdGlvbiAocHJvbWlzZSwgaXNSZWplY3QpIHtcbiAgaWYgKHByb21pc2UuX24pIHJldHVybjtcbiAgcHJvbWlzZS5fbiA9IHRydWU7XG4gIHZhciBjaGFpbiA9IHByb21pc2UuX2M7XG4gIG1pY3JvdGFzayhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZhbHVlID0gcHJvbWlzZS5fdjtcbiAgICB2YXIgb2sgPSBwcm9taXNlLl9zID09IDE7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBydW4gPSBmdW5jdGlvbiAocmVhY3Rpb24pIHtcbiAgICAgIHZhciBoYW5kbGVyID0gb2sgPyByZWFjdGlvbi5vayA6IHJlYWN0aW9uLmZhaWw7XG4gICAgICB2YXIgcmVzb2x2ZSA9IHJlYWN0aW9uLnJlc29sdmU7XG4gICAgICB2YXIgcmVqZWN0ID0gcmVhY3Rpb24ucmVqZWN0O1xuICAgICAgdmFyIGRvbWFpbiA9IHJlYWN0aW9uLmRvbWFpbjtcbiAgICAgIHZhciByZXN1bHQsIHRoZW4sIGV4aXRlZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChoYW5kbGVyKSB7XG4gICAgICAgICAgaWYgKCFvaykge1xuICAgICAgICAgICAgaWYgKHByb21pc2UuX2ggPT0gMikgb25IYW5kbGVVbmhhbmRsZWQocHJvbWlzZSk7XG4gICAgICAgICAgICBwcm9taXNlLl9oID0gMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhbmRsZXIgPT09IHRydWUpIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRvbWFpbikgZG9tYWluLmVudGVyKCk7XG4gICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVyKHZhbHVlKTsgLy8gbWF5IHRocm93XG4gICAgICAgICAgICBpZiAoZG9tYWluKSB7XG4gICAgICAgICAgICAgIGRvbWFpbi5leGl0KCk7XG4gICAgICAgICAgICAgIGV4aXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHJlYWN0aW9uLnByb21pc2UpIHtcbiAgICAgICAgICAgIHJlamVjdChUeXBlRXJyb3IoJ1Byb21pc2UtY2hhaW4gY3ljbGUnKSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGVuID0gaXNUaGVuYWJsZShyZXN1bHQpKSB7XG4gICAgICAgICAgICB0aGVuLmNhbGwocmVzdWx0LCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgIH0gZWxzZSByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSByZWplY3QodmFsdWUpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoZG9tYWluICYmICFleGl0ZWQpIGRvbWFpbi5leGl0KCk7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHdoaWxlIChjaGFpbi5sZW5ndGggPiBpKSBydW4oY2hhaW5baSsrXSk7IC8vIHZhcmlhYmxlIGxlbmd0aCAtIGNhbid0IHVzZSBmb3JFYWNoXG4gICAgcHJvbWlzZS5fYyA9IFtdO1xuICAgIHByb21pc2UuX24gPSBmYWxzZTtcbiAgICBpZiAoaXNSZWplY3QgJiYgIXByb21pc2UuX2gpIG9uVW5oYW5kbGVkKHByb21pc2UpO1xuICB9KTtcbn07XG52YXIgb25VbmhhbmRsZWQgPSBmdW5jdGlvbiAocHJvbWlzZSkge1xuICB0YXNrLmNhbGwoZ2xvYmFsLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZhbHVlID0gcHJvbWlzZS5fdjtcbiAgICB2YXIgdW5oYW5kbGVkID0gaXNVbmhhbmRsZWQocHJvbWlzZSk7XG4gICAgdmFyIHJlc3VsdCwgaGFuZGxlciwgY29uc29sZTtcbiAgICBpZiAodW5oYW5kbGVkKSB7XG4gICAgICByZXN1bHQgPSBwZXJmb3JtKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGlzTm9kZSkge1xuICAgICAgICAgIHByb2Nlc3MuZW1pdCgndW5oYW5kbGVkUmVqZWN0aW9uJywgdmFsdWUsIHByb21pc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKGhhbmRsZXIgPSBnbG9iYWwub251bmhhbmRsZWRyZWplY3Rpb24pIHtcbiAgICAgICAgICBoYW5kbGVyKHsgcHJvbWlzZTogcHJvbWlzZSwgcmVhc29uOiB2YWx1ZSB9KTtcbiAgICAgICAgfSBlbHNlIGlmICgoY29uc29sZSA9IGdsb2JhbC5jb25zb2xlKSAmJiBjb25zb2xlLmVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uJywgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vIEJyb3dzZXJzIHNob3VsZCBub3QgdHJpZ2dlciBgcmVqZWN0aW9uSGFuZGxlZGAgZXZlbnQgaWYgaXQgd2FzIGhhbmRsZWQgaGVyZSwgTm9kZUpTIC0gc2hvdWxkXG4gICAgICBwcm9taXNlLl9oID0gaXNOb2RlIHx8IGlzVW5oYW5kbGVkKHByb21pc2UpID8gMiA6IDE7XG4gICAgfSBwcm9taXNlLl9hID0gdW5kZWZpbmVkO1xuICAgIGlmICh1bmhhbmRsZWQgJiYgcmVzdWx0LmUpIHRocm93IHJlc3VsdC52O1xuICB9KTtcbn07XG52YXIgaXNVbmhhbmRsZWQgPSBmdW5jdGlvbiAocHJvbWlzZSkge1xuICByZXR1cm4gcHJvbWlzZS5faCAhPT0gMSAmJiAocHJvbWlzZS5fYSB8fCBwcm9taXNlLl9jKS5sZW5ndGggPT09IDA7XG59O1xudmFyIG9uSGFuZGxlVW5oYW5kbGVkID0gZnVuY3Rpb24gKHByb21pc2UpIHtcbiAgdGFzay5jYWxsKGdsb2JhbCwgZnVuY3Rpb24gKCkge1xuICAgIHZhciBoYW5kbGVyO1xuICAgIGlmIChpc05vZGUpIHtcbiAgICAgIHByb2Nlc3MuZW1pdCgncmVqZWN0aW9uSGFuZGxlZCcsIHByb21pc2UpO1xuICAgIH0gZWxzZSBpZiAoaGFuZGxlciA9IGdsb2JhbC5vbnJlamVjdGlvbmhhbmRsZWQpIHtcbiAgICAgIGhhbmRsZXIoeyBwcm9taXNlOiBwcm9taXNlLCByZWFzb246IHByb21pc2UuX3YgfSk7XG4gICAgfVxuICB9KTtcbn07XG52YXIgJHJlamVjdCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICB2YXIgcHJvbWlzZSA9IHRoaXM7XG4gIGlmIChwcm9taXNlLl9kKSByZXR1cm47XG4gIHByb21pc2UuX2QgPSB0cnVlO1xuICBwcm9taXNlID0gcHJvbWlzZS5fdyB8fCBwcm9taXNlOyAvLyB1bndyYXBcbiAgcHJvbWlzZS5fdiA9IHZhbHVlO1xuICBwcm9taXNlLl9zID0gMjtcbiAgaWYgKCFwcm9taXNlLl9hKSBwcm9taXNlLl9hID0gcHJvbWlzZS5fYy5zbGljZSgpO1xuICBub3RpZnkocHJvbWlzZSwgdHJ1ZSk7XG59O1xudmFyICRyZXNvbHZlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIHZhciBwcm9taXNlID0gdGhpcztcbiAgdmFyIHRoZW47XG4gIGlmIChwcm9taXNlLl9kKSByZXR1cm47XG4gIHByb21pc2UuX2QgPSB0cnVlO1xuICBwcm9taXNlID0gcHJvbWlzZS5fdyB8fCBwcm9taXNlOyAvLyB1bndyYXBcbiAgdHJ5IHtcbiAgICBpZiAocHJvbWlzZSA9PT0gdmFsdWUpIHRocm93IFR5cGVFcnJvcihcIlByb21pc2UgY2FuJ3QgYmUgcmVzb2x2ZWQgaXRzZWxmXCIpO1xuICAgIGlmICh0aGVuID0gaXNUaGVuYWJsZSh2YWx1ZSkpIHtcbiAgICAgIG1pY3JvdGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB3cmFwcGVyID0geyBfdzogcHJvbWlzZSwgX2Q6IGZhbHNlIH07IC8vIHdyYXBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGVuLmNhbGwodmFsdWUsIGN0eCgkcmVzb2x2ZSwgd3JhcHBlciwgMSksIGN0eCgkcmVqZWN0LCB3cmFwcGVyLCAxKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAkcmVqZWN0LmNhbGwod3JhcHBlciwgZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9taXNlLl92ID0gdmFsdWU7XG4gICAgICBwcm9taXNlLl9zID0gMTtcbiAgICAgIG5vdGlmeShwcm9taXNlLCBmYWxzZSk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgJHJlamVjdC5jYWxsKHsgX3c6IHByb21pc2UsIF9kOiBmYWxzZSB9LCBlKTsgLy8gd3JhcFxuICB9XG59O1xuXG4vLyBjb25zdHJ1Y3RvciBwb2x5ZmlsbFxuaWYgKCFVU0VfTkFUSVZFKSB7XG4gIC8vIDI1LjQuMy4xIFByb21pc2UoZXhlY3V0b3IpXG4gICRQcm9taXNlID0gZnVuY3Rpb24gUHJvbWlzZShleGVjdXRvcikge1xuICAgIGFuSW5zdGFuY2UodGhpcywgJFByb21pc2UsIFBST01JU0UsICdfaCcpO1xuICAgIGFGdW5jdGlvbihleGVjdXRvcik7XG4gICAgSW50ZXJuYWwuY2FsbCh0aGlzKTtcbiAgICB0cnkge1xuICAgICAgZXhlY3V0b3IoY3R4KCRyZXNvbHZlLCB0aGlzLCAxKSwgY3R4KCRyZWplY3QsIHRoaXMsIDEpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICRyZWplY3QuY2FsbCh0aGlzLCBlcnIpO1xuICAgIH1cbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIEludGVybmFsID0gZnVuY3Rpb24gUHJvbWlzZShleGVjdXRvcikge1xuICAgIHRoaXMuX2MgPSBbXTsgICAgICAgICAgICAgLy8gPC0gYXdhaXRpbmcgcmVhY3Rpb25zXG4gICAgdGhpcy5fYSA9IHVuZGVmaW5lZDsgICAgICAvLyA8LSBjaGVja2VkIGluIGlzVW5oYW5kbGVkIHJlYWN0aW9uc1xuICAgIHRoaXMuX3MgPSAwOyAgICAgICAgICAgICAgLy8gPC0gc3RhdGVcbiAgICB0aGlzLl9kID0gZmFsc2U7ICAgICAgICAgIC8vIDwtIGRvbmVcbiAgICB0aGlzLl92ID0gdW5kZWZpbmVkOyAgICAgIC8vIDwtIHZhbHVlXG4gICAgdGhpcy5faCA9IDA7ICAgICAgICAgICAgICAvLyA8LSByZWplY3Rpb24gc3RhdGUsIDAgLSBkZWZhdWx0LCAxIC0gaGFuZGxlZCwgMiAtIHVuaGFuZGxlZFxuICAgIHRoaXMuX24gPSBmYWxzZTsgICAgICAgICAgLy8gPC0gbm90aWZ5XG4gIH07XG4gIEludGVybmFsLnByb3RvdHlwZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lLWFsbCcpKCRQcm9taXNlLnByb3RvdHlwZSwge1xuICAgIC8vIDI1LjQuNS4zIFByb21pc2UucHJvdG90eXBlLnRoZW4ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpXG4gICAgdGhlbjogZnVuY3Rpb24gdGhlbihvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCkge1xuICAgICAgdmFyIHJlYWN0aW9uID0gbmV3UHJvbWlzZUNhcGFiaWxpdHkoc3BlY2llc0NvbnN0cnVjdG9yKHRoaXMsICRQcm9taXNlKSk7XG4gICAgICByZWFjdGlvbi5vayA9IHR5cGVvZiBvbkZ1bGZpbGxlZCA9PSAnZnVuY3Rpb24nID8gb25GdWxmaWxsZWQgOiB0cnVlO1xuICAgICAgcmVhY3Rpb24uZmFpbCA9IHR5cGVvZiBvblJlamVjdGVkID09ICdmdW5jdGlvbicgJiYgb25SZWplY3RlZDtcbiAgICAgIHJlYWN0aW9uLmRvbWFpbiA9IGlzTm9kZSA/IHByb2Nlc3MuZG9tYWluIDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5fYy5wdXNoKHJlYWN0aW9uKTtcbiAgICAgIGlmICh0aGlzLl9hKSB0aGlzLl9hLnB1c2gocmVhY3Rpb24pO1xuICAgICAgaWYgKHRoaXMuX3MpIG5vdGlmeSh0aGlzLCBmYWxzZSk7XG4gICAgICByZXR1cm4gcmVhY3Rpb24ucHJvbWlzZTtcbiAgICB9LFxuICAgIC8vIDI1LjQuNS4xIFByb21pc2UucHJvdG90eXBlLmNhdGNoKG9uUmVqZWN0ZWQpXG4gICAgJ2NhdGNoJzogZnVuY3Rpb24gKG9uUmVqZWN0ZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnRoZW4odW5kZWZpbmVkLCBvblJlamVjdGVkKTtcbiAgICB9XG4gIH0pO1xuICBPd25Qcm9taXNlQ2FwYWJpbGl0eSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBJbnRlcm5hbCgpO1xuICAgIHRoaXMucHJvbWlzZSA9IHByb21pc2U7XG4gICAgdGhpcy5yZXNvbHZlID0gY3R4KCRyZXNvbHZlLCBwcm9taXNlLCAxKTtcbiAgICB0aGlzLnJlamVjdCA9IGN0eCgkcmVqZWN0LCBwcm9taXNlLCAxKTtcbiAgfTtcbiAgbmV3UHJvbWlzZUNhcGFiaWxpdHlNb2R1bGUuZiA9IG5ld1Byb21pc2VDYXBhYmlsaXR5ID0gZnVuY3Rpb24gKEMpIHtcbiAgICByZXR1cm4gQyA9PT0gJFByb21pc2UgfHwgQyA9PT0gV3JhcHBlclxuICAgICAgPyBuZXcgT3duUHJvbWlzZUNhcGFiaWxpdHkoQylcbiAgICAgIDogbmV3R2VuZXJpY1Byb21pc2VDYXBhYmlsaXR5KEMpO1xuICB9O1xufVxuXG4kZXhwb3J0KCRleHBvcnQuRyArICRleHBvcnQuVyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCB7IFByb21pc2U6ICRQcm9taXNlIH0pO1xucmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKSgkUHJvbWlzZSwgUFJPTUlTRSk7XG5yZXF1aXJlKCcuL19zZXQtc3BlY2llcycpKFBST01JU0UpO1xuV3JhcHBlciA9IHJlcXVpcmUoJy4vX2NvcmUnKVtQUk9NSVNFXTtcblxuLy8gc3RhdGljc1xuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgUFJPTUlTRSwge1xuICAvLyAyNS40LjQuNSBQcm9taXNlLnJlamVjdChyKVxuICByZWplY3Q6IGZ1bmN0aW9uIHJlamVjdChyKSB7XG4gICAgdmFyIGNhcGFiaWxpdHkgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eSh0aGlzKTtcbiAgICB2YXIgJCRyZWplY3QgPSBjYXBhYmlsaXR5LnJlamVjdDtcbiAgICAkJHJlamVjdChyKTtcbiAgICByZXR1cm4gY2FwYWJpbGl0eS5wcm9taXNlO1xuICB9XG59KTtcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogKExJQlJBUlkgfHwgIVVTRV9OQVRJVkUpLCBQUk9NSVNFLCB7XG4gIC8vIDI1LjQuNC42IFByb21pc2UucmVzb2x2ZSh4KVxuICByZXNvbHZlOiBmdW5jdGlvbiByZXNvbHZlKHgpIHtcbiAgICByZXR1cm4gcHJvbWlzZVJlc29sdmUoTElCUkFSWSAmJiB0aGlzID09PSBXcmFwcGVyID8gJFByb21pc2UgOiB0aGlzLCB4KTtcbiAgfVxufSk7XG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICEoVVNFX05BVElWRSAmJiByZXF1aXJlKCcuL19pdGVyLWRldGVjdCcpKGZ1bmN0aW9uIChpdGVyKSB7XG4gICRQcm9taXNlLmFsbChpdGVyKVsnY2F0Y2gnXShlbXB0eSk7XG59KSksIFBST01JU0UsIHtcbiAgLy8gMjUuNC40LjEgUHJvbWlzZS5hbGwoaXRlcmFibGUpXG4gIGFsbDogZnVuY3Rpb24gYWxsKGl0ZXJhYmxlKSB7XG4gICAgdmFyIEMgPSB0aGlzO1xuICAgIHZhciBjYXBhYmlsaXR5ID0gbmV3UHJvbWlzZUNhcGFiaWxpdHkoQyk7XG4gICAgdmFyIHJlc29sdmUgPSBjYXBhYmlsaXR5LnJlc29sdmU7XG4gICAgdmFyIHJlamVjdCA9IGNhcGFiaWxpdHkucmVqZWN0O1xuICAgIHZhciByZXN1bHQgPSBwZXJmb3JtKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB2YWx1ZXMgPSBbXTtcbiAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICB2YXIgcmVtYWluaW5nID0gMTtcbiAgICAgIGZvck9mKGl0ZXJhYmxlLCBmYWxzZSwgZnVuY3Rpb24gKHByb21pc2UpIHtcbiAgICAgICAgdmFyICRpbmRleCA9IGluZGV4Kys7XG4gICAgICAgIHZhciBhbHJlYWR5Q2FsbGVkID0gZmFsc2U7XG4gICAgICAgIHZhbHVlcy5wdXNoKHVuZGVmaW5lZCk7XG4gICAgICAgIHJlbWFpbmluZysrO1xuICAgICAgICBDLnJlc29sdmUocHJvbWlzZSkudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICBpZiAoYWxyZWFkeUNhbGxlZCkgcmV0dXJuO1xuICAgICAgICAgIGFscmVhZHlDYWxsZWQgPSB0cnVlO1xuICAgICAgICAgIHZhbHVlc1skaW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgLS1yZW1haW5pbmcgfHwgcmVzb2x2ZSh2YWx1ZXMpO1xuICAgICAgICB9LCByZWplY3QpO1xuICAgICAgfSk7XG4gICAgICAtLXJlbWFpbmluZyB8fCByZXNvbHZlKHZhbHVlcyk7XG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5lKSByZWplY3QocmVzdWx0LnYpO1xuICAgIHJldHVybiBjYXBhYmlsaXR5LnByb21pc2U7XG4gIH0sXG4gIC8vIDI1LjQuNC40IFByb21pc2UucmFjZShpdGVyYWJsZSlcbiAgcmFjZTogZnVuY3Rpb24gcmFjZShpdGVyYWJsZSkge1xuICAgIHZhciBDID0gdGhpcztcbiAgICB2YXIgY2FwYWJpbGl0eSA9IG5ld1Byb21pc2VDYXBhYmlsaXR5KEMpO1xuICAgIHZhciByZWplY3QgPSBjYXBhYmlsaXR5LnJlamVjdDtcbiAgICB2YXIgcmVzdWx0ID0gcGVyZm9ybShmdW5jdGlvbiAoKSB7XG4gICAgICBmb3JPZihpdGVyYWJsZSwgZmFsc2UsIGZ1bmN0aW9uIChwcm9taXNlKSB7XG4gICAgICAgIEMucmVzb2x2ZShwcm9taXNlKS50aGVuKGNhcGFiaWxpdHkucmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGlmIChyZXN1bHQuZSkgcmVqZWN0KHJlc3VsdC52KTtcbiAgICByZXR1cm4gY2FwYWJpbGl0eS5wcm9taXNlO1xuICB9XG59KTtcbiIsIi8vIDI2LjEuMSBSZWZsZWN0LmFwcGx5KHRhcmdldCwgdGhpc0FyZ3VtZW50LCBhcmd1bWVudHNMaXN0KVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciByQXBwbHkgPSAocmVxdWlyZSgnLi9fZ2xvYmFsJykuUmVmbGVjdCB8fCB7fSkuYXBwbHk7XG52YXIgZkFwcGx5ID0gRnVuY3Rpb24uYXBwbHk7XG4vLyBNUyBFZGdlIGFyZ3VtZW50c0xpc3QgYXJndW1lbnQgaXMgb3B0aW9uYWxcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByQXBwbHkoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9KTtcbn0pLCAnUmVmbGVjdCcsIHtcbiAgYXBwbHk6IGZ1bmN0aW9uIGFwcGx5KHRhcmdldCwgdGhpc0FyZ3VtZW50LCBhcmd1bWVudHNMaXN0KSB7XG4gICAgdmFyIFQgPSBhRnVuY3Rpb24odGFyZ2V0KTtcbiAgICB2YXIgTCA9IGFuT2JqZWN0KGFyZ3VtZW50c0xpc3QpO1xuICAgIHJldHVybiByQXBwbHkgPyByQXBwbHkoVCwgdGhpc0FyZ3VtZW50LCBMKSA6IGZBcHBseS5jYWxsKFQsIHRoaXNBcmd1bWVudCwgTCk7XG4gIH1cbn0pO1xuIiwiLy8gMjYuMS4yIFJlZmxlY3QuY29uc3RydWN0KHRhcmdldCwgYXJndW1lbnRzTGlzdCBbLCBuZXdUYXJnZXRdKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4vX2JpbmQnKTtcbnZhciByQ29uc3RydWN0ID0gKHJlcXVpcmUoJy4vX2dsb2JhbCcpLlJlZmxlY3QgfHwge30pLmNvbnN0cnVjdDtcblxuLy8gTVMgRWRnZSBzdXBwb3J0cyBvbmx5IDIgYXJndW1lbnRzIGFuZCBhcmd1bWVudHNMaXN0IGFyZ3VtZW50IGlzIG9wdGlvbmFsXG4vLyBGRiBOaWdodGx5IHNldHMgdGhpcmQgYXJndW1lbnQgYXMgYG5ldy50YXJnZXRgLCBidXQgZG9lcyBub3QgY3JlYXRlIGB0aGlzYCBmcm9tIGl0XG52YXIgTkVXX1RBUkdFVF9CVUcgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEYoKSB7IC8qIGVtcHR5ICovIH1cbiAgcmV0dXJuICEockNvbnN0cnVjdChmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0sIFtdLCBGKSBpbnN0YW5jZW9mIEYpO1xufSk7XG52YXIgQVJHU19CVUcgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICByQ29uc3RydWN0KGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSk7XG59KTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAoTkVXX1RBUkdFVF9CVUcgfHwgQVJHU19CVUcpLCAnUmVmbGVjdCcsIHtcbiAgY29uc3RydWN0OiBmdW5jdGlvbiBjb25zdHJ1Y3QoVGFyZ2V0LCBhcmdzIC8qICwgbmV3VGFyZ2V0ICovKSB7XG4gICAgYUZ1bmN0aW9uKFRhcmdldCk7XG4gICAgYW5PYmplY3QoYXJncyk7XG4gICAgdmFyIG5ld1RhcmdldCA9IGFyZ3VtZW50cy5sZW5ndGggPCAzID8gVGFyZ2V0IDogYUZ1bmN0aW9uKGFyZ3VtZW50c1syXSk7XG4gICAgaWYgKEFSR1NfQlVHICYmICFORVdfVEFSR0VUX0JVRykgcmV0dXJuIHJDb25zdHJ1Y3QoVGFyZ2V0LCBhcmdzLCBuZXdUYXJnZXQpO1xuICAgIGlmIChUYXJnZXQgPT0gbmV3VGFyZ2V0KSB7XG4gICAgICAvLyB3L28gYWx0ZXJlZCBuZXdUYXJnZXQsIG9wdGltaXphdGlvbiBmb3IgMC00IGFyZ3VtZW50c1xuICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDA6IHJldHVybiBuZXcgVGFyZ2V0KCk7XG4gICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBUYXJnZXQoYXJnc1swXSk7XG4gICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBUYXJnZXQoYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgICAgIGNhc2UgMzogcmV0dXJuIG5ldyBUYXJnZXQoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICAgIGNhc2UgNDogcmV0dXJuIG5ldyBUYXJnZXQoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSk7XG4gICAgICB9XG4gICAgICAvLyB3L28gYWx0ZXJlZCBuZXdUYXJnZXQsIGxvdCBvZiBhcmd1bWVudHMgY2FzZVxuICAgICAgdmFyICRhcmdzID0gW251bGxdO1xuICAgICAgJGFyZ3MucHVzaC5hcHBseSgkYXJncywgYXJncyk7XG4gICAgICByZXR1cm4gbmV3IChiaW5kLmFwcGx5KFRhcmdldCwgJGFyZ3MpKSgpO1xuICAgIH1cbiAgICAvLyB3aXRoIGFsdGVyZWQgbmV3VGFyZ2V0LCBub3Qgc3VwcG9ydCBidWlsdC1pbiBjb25zdHJ1Y3RvcnNcbiAgICB2YXIgcHJvdG8gPSBuZXdUYXJnZXQucHJvdG90eXBlO1xuICAgIHZhciBpbnN0YW5jZSA9IGNyZWF0ZShpc09iamVjdChwcm90bykgPyBwcm90byA6IE9iamVjdC5wcm90b3R5cGUpO1xuICAgIHZhciByZXN1bHQgPSBGdW5jdGlvbi5hcHBseS5jYWxsKFRhcmdldCwgaW5zdGFuY2UsIGFyZ3MpO1xuICAgIHJldHVybiBpc09iamVjdChyZXN1bHQpID8gcmVzdWx0IDogaW5zdGFuY2U7XG4gIH1cbn0pO1xuIiwiLy8gMjYuMS4zIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eUtleSwgYXR0cmlidXRlcylcbnZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG5cbi8vIE1TIEVkZ2UgaGFzIGJyb2tlbiBSZWZsZWN0LmRlZmluZVByb3BlcnR5IC0gdGhyb3dpbmcgaW5zdGVhZCBvZiByZXR1cm5pbmcgZmFsc2VcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBSZWZsZWN0LmRlZmluZVByb3BlcnR5KGRQLmYoe30sIDEsIHsgdmFsdWU6IDEgfSksIDEsIHsgdmFsdWU6IDIgfSk7XG59KSwgJ1JlZmxlY3QnLCB7XG4gIGRlZmluZVByb3BlcnR5OiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5S2V5LCBhdHRyaWJ1dGVzKSB7XG4gICAgYW5PYmplY3QodGFyZ2V0KTtcbiAgICBwcm9wZXJ0eUtleSA9IHRvUHJpbWl0aXZlKHByb3BlcnR5S2V5LCB0cnVlKTtcbiAgICBhbk9iamVjdChhdHRyaWJ1dGVzKTtcbiAgICB0cnkge1xuICAgICAgZFAuZih0YXJnZXQsIHByb3BlcnR5S2V5LCBhdHRyaWJ1dGVzKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn0pO1xuIiwiLy8gMjYuMS40IFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eUtleSlcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgZ09QRCA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZjtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ1JlZmxlY3QnLCB7XG4gIGRlbGV0ZVByb3BlcnR5OiBmdW5jdGlvbiBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgdmFyIGRlc2MgPSBnT1BEKGFuT2JqZWN0KHRhcmdldCksIHByb3BlcnR5S2V5KTtcbiAgICByZXR1cm4gZGVzYyAmJiAhZGVzYy5jb25maWd1cmFibGUgPyBmYWxzZSA6IGRlbGV0ZSB0YXJnZXRbcHJvcGVydHlLZXldO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIDI2LjEuNSBSZWZsZWN0LmVudW1lcmF0ZSh0YXJnZXQpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgRW51bWVyYXRlID0gZnVuY3Rpb24gKGl0ZXJhdGVkKSB7XG4gIHRoaXMuX3QgPSBhbk9iamVjdChpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4gIHZhciBrZXlzID0gdGhpcy5fayA9IFtdOyAgICAgIC8vIGtleXNcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gaXRlcmF0ZWQpIGtleXMucHVzaChrZXkpO1xufTtcbnJlcXVpcmUoJy4vX2l0ZXItY3JlYXRlJykoRW51bWVyYXRlLCAnT2JqZWN0JywgZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IHRoaXM7XG4gIHZhciBrZXlzID0gdGhhdC5faztcbiAgdmFyIGtleTtcbiAgZG8ge1xuICAgIGlmICh0aGF0Ll9pID49IGtleXMubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH0gd2hpbGUgKCEoKGtleSA9IGtleXNbdGhhdC5faSsrXSkgaW4gdGhhdC5fdCkpO1xuICByZXR1cm4geyB2YWx1ZToga2V5LCBkb25lOiBmYWxzZSB9O1xufSk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnUmVmbGVjdCcsIHtcbiAgZW51bWVyYXRlOiBmdW5jdGlvbiBlbnVtZXJhdGUodGFyZ2V0KSB7XG4gICAgcmV0dXJuIG5ldyBFbnVtZXJhdGUodGFyZ2V0KTtcbiAgfVxufSk7XG4iLCIvLyAyNi4xLjcgUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBwcm9wZXJ0eUtleSlcbnZhciBnT1BEID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdSZWZsZWN0Jywge1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgcmV0dXJuIGdPUEQuZihhbk9iamVjdCh0YXJnZXQpLCBwcm9wZXJ0eUtleSk7XG4gIH1cbn0pO1xuIiwiLy8gMjYuMS44IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBnZXRQcm90byA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ1JlZmxlY3QnLCB7XG4gIGdldFByb3RvdHlwZU9mOiBmdW5jdGlvbiBnZXRQcm90b3R5cGVPZih0YXJnZXQpIHtcbiAgICByZXR1cm4gZ2V0UHJvdG8oYW5PYmplY3QodGFyZ2V0KSk7XG4gIH1cbn0pO1xuIiwiLy8gMjYuMS42IFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcGVydHlLZXkgWywgcmVjZWl2ZXJdKVxudmFyIGdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdwbycpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG5cbmZ1bmN0aW9uIGdldCh0YXJnZXQsIHByb3BlcnR5S2V5IC8qICwgcmVjZWl2ZXIgKi8pIHtcbiAgdmFyIHJlY2VpdmVyID0gYXJndW1lbnRzLmxlbmd0aCA8IDMgPyB0YXJnZXQgOiBhcmd1bWVudHNbMl07XG4gIHZhciBkZXNjLCBwcm90bztcbiAgaWYgKGFuT2JqZWN0KHRhcmdldCkgPT09IHJlY2VpdmVyKSByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5S2V5XTtcbiAgaWYgKGRlc2MgPSBnT1BELmYodGFyZ2V0LCBwcm9wZXJ0eUtleSkpIHJldHVybiBoYXMoZGVzYywgJ3ZhbHVlJylcbiAgICA/IGRlc2MudmFsdWVcbiAgICA6IGRlc2MuZ2V0ICE9PSB1bmRlZmluZWRcbiAgICAgID8gZGVzYy5nZXQuY2FsbChyZWNlaXZlcilcbiAgICAgIDogdW5kZWZpbmVkO1xuICBpZiAoaXNPYmplY3QocHJvdG8gPSBnZXRQcm90b3R5cGVPZih0YXJnZXQpKSkgcmV0dXJuIGdldChwcm90bywgcHJvcGVydHlLZXksIHJlY2VpdmVyKTtcbn1cblxuJGV4cG9ydCgkZXhwb3J0LlMsICdSZWZsZWN0JywgeyBnZXQ6IGdldCB9KTtcbiIsIi8vIDI2LjEuOSBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3BlcnR5S2V5KVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdSZWZsZWN0Jywge1xuICBoYXM6IGZ1bmN0aW9uIGhhcyh0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgcmV0dXJuIHByb3BlcnR5S2V5IGluIHRhcmdldDtcbiAgfVxufSk7XG4iLCIvLyAyNi4xLjEwIFJlZmxlY3QuaXNFeHRlbnNpYmxlKHRhcmdldClcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciAkaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdSZWZsZWN0Jywge1xuICBpc0V4dGVuc2libGU6IGZ1bmN0aW9uIGlzRXh0ZW5zaWJsZSh0YXJnZXQpIHtcbiAgICBhbk9iamVjdCh0YXJnZXQpO1xuICAgIHJldHVybiAkaXNFeHRlbnNpYmxlID8gJGlzRXh0ZW5zaWJsZSh0YXJnZXQpIDogdHJ1ZTtcbiAgfVxufSk7XG4iLCIvLyAyNi4xLjExIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ1JlZmxlY3QnLCB7IG93bktleXM6IHJlcXVpcmUoJy4vX293bi1rZXlzJykgfSk7XG4iLCIvLyAyNi4xLjEyIFJlZmxlY3QucHJldmVudEV4dGVuc2lvbnModGFyZ2V0KVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyICRwcmV2ZW50RXh0ZW5zaW9ucyA9IE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucztcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdSZWZsZWN0Jywge1xuICBwcmV2ZW50RXh0ZW5zaW9uczogZnVuY3Rpb24gcHJldmVudEV4dGVuc2lvbnModGFyZ2V0KSB7XG4gICAgYW5PYmplY3QodGFyZ2V0KTtcbiAgICB0cnkge1xuICAgICAgaWYgKCRwcmV2ZW50RXh0ZW5zaW9ucykgJHByZXZlbnRFeHRlbnNpb25zKHRhcmdldCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59KTtcbiIsIi8vIDI2LjEuMTQgUmVmbGVjdC5zZXRQcm90b3R5cGVPZih0YXJnZXQsIHByb3RvKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBzZXRQcm90byA9IHJlcXVpcmUoJy4vX3NldC1wcm90bycpO1xuXG5pZiAoc2V0UHJvdG8pICRleHBvcnQoJGV4cG9ydC5TLCAnUmVmbGVjdCcsIHtcbiAgc2V0UHJvdG90eXBlT2Y6IGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKHRhcmdldCwgcHJvdG8pIHtcbiAgICBzZXRQcm90by5jaGVjayh0YXJnZXQsIHByb3RvKTtcbiAgICB0cnkge1xuICAgICAgc2V0UHJvdG8uc2V0KHRhcmdldCwgcHJvdG8pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufSk7XG4iLCIvLyAyNi4xLjEzIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcGVydHlLZXksIFYgWywgcmVjZWl2ZXJdKVxudmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgZ09QRCA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xuXG5mdW5jdGlvbiBzZXQodGFyZ2V0LCBwcm9wZXJ0eUtleSwgViAvKiAsIHJlY2VpdmVyICovKSB7XG4gIHZhciByZWNlaXZlciA9IGFyZ3VtZW50cy5sZW5ndGggPCA0ID8gdGFyZ2V0IDogYXJndW1lbnRzWzNdO1xuICB2YXIgb3duRGVzYyA9IGdPUEQuZihhbk9iamVjdCh0YXJnZXQpLCBwcm9wZXJ0eUtleSk7XG4gIHZhciBleGlzdGluZ0Rlc2NyaXB0b3IsIHByb3RvO1xuICBpZiAoIW93bkRlc2MpIHtcbiAgICBpZiAoaXNPYmplY3QocHJvdG8gPSBnZXRQcm90b3R5cGVPZih0YXJnZXQpKSkge1xuICAgICAgcmV0dXJuIHNldChwcm90bywgcHJvcGVydHlLZXksIFYsIHJlY2VpdmVyKTtcbiAgICB9XG4gICAgb3duRGVzYyA9IGNyZWF0ZURlc2MoMCk7XG4gIH1cbiAgaWYgKGhhcyhvd25EZXNjLCAndmFsdWUnKSkge1xuICAgIGlmIChvd25EZXNjLndyaXRhYmxlID09PSBmYWxzZSB8fCAhaXNPYmplY3QocmVjZWl2ZXIpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGV4aXN0aW5nRGVzY3JpcHRvciA9IGdPUEQuZihyZWNlaXZlciwgcHJvcGVydHlLZXkpKSB7XG4gICAgICBpZiAoZXhpc3RpbmdEZXNjcmlwdG9yLmdldCB8fCBleGlzdGluZ0Rlc2NyaXB0b3Iuc2V0IHx8IGV4aXN0aW5nRGVzY3JpcHRvci53cml0YWJsZSA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcbiAgICAgIGV4aXN0aW5nRGVzY3JpcHRvci52YWx1ZSA9IFY7XG4gICAgICBkUC5mKHJlY2VpdmVyLCBwcm9wZXJ0eUtleSwgZXhpc3RpbmdEZXNjcmlwdG9yKTtcbiAgICB9IGVsc2UgZFAuZihyZWNlaXZlciwgcHJvcGVydHlLZXksIGNyZWF0ZURlc2MoMCwgVikpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBvd25EZXNjLnNldCA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiAob3duRGVzYy5zZXQuY2FsbChyZWNlaXZlciwgViksIHRydWUpO1xufVxuXG4kZXhwb3J0KCRleHBvcnQuUywgJ1JlZmxlY3QnLCB7IHNldDogc2V0IH0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGluaGVyaXRJZlJlcXVpcmVkID0gcmVxdWlyZSgnLi9faW5oZXJpdC1pZi1yZXF1aXJlZCcpO1xudmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBnT1BOID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4nKS5mO1xudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi9faXMtcmVnZXhwJyk7XG52YXIgJGZsYWdzID0gcmVxdWlyZSgnLi9fZmxhZ3MnKTtcbnZhciAkUmVnRXhwID0gZ2xvYmFsLlJlZ0V4cDtcbnZhciBCYXNlID0gJFJlZ0V4cDtcbnZhciBwcm90byA9ICRSZWdFeHAucHJvdG90eXBlO1xudmFyIHJlMSA9IC9hL2c7XG52YXIgcmUyID0gL2EvZztcbi8vIFwibmV3XCIgY3JlYXRlcyBhIG5ldyBvYmplY3QsIG9sZCB3ZWJraXQgYnVnZ3kgaGVyZVxudmFyIENPUlJFQ1RfTkVXID0gbmV3ICRSZWdFeHAocmUxKSAhPT0gcmUxO1xuXG5pZiAocmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAoIUNPUlJFQ1RfTkVXIHx8IHJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZTJbcmVxdWlyZSgnLi9fd2tzJykoJ21hdGNoJyldID0gZmFsc2U7XG4gIC8vIFJlZ0V4cCBjb25zdHJ1Y3RvciBjYW4gYWx0ZXIgZmxhZ3MgYW5kIElzUmVnRXhwIHdvcmtzIGNvcnJlY3Qgd2l0aCBAQG1hdGNoXG4gIHJldHVybiAkUmVnRXhwKHJlMSkgIT0gcmUxIHx8ICRSZWdFeHAocmUyKSA9PSByZTIgfHwgJFJlZ0V4cChyZTEsICdpJykgIT0gJy9hL2knO1xufSkpKSB7XG4gICRSZWdFeHAgPSBmdW5jdGlvbiBSZWdFeHAocCwgZikge1xuICAgIHZhciB0aVJFID0gdGhpcyBpbnN0YW5jZW9mICRSZWdFeHA7XG4gICAgdmFyIHBpUkUgPSBpc1JlZ0V4cChwKTtcbiAgICB2YXIgZmlVID0gZiA9PT0gdW5kZWZpbmVkO1xuICAgIHJldHVybiAhdGlSRSAmJiBwaVJFICYmIHAuY29uc3RydWN0b3IgPT09ICRSZWdFeHAgJiYgZmlVID8gcFxuICAgICAgOiBpbmhlcml0SWZSZXF1aXJlZChDT1JSRUNUX05FV1xuICAgICAgICA/IG5ldyBCYXNlKHBpUkUgJiYgIWZpVSA/IHAuc291cmNlIDogcCwgZilcbiAgICAgICAgOiBCYXNlKChwaVJFID0gcCBpbnN0YW5jZW9mICRSZWdFeHApID8gcC5zb3VyY2UgOiBwLCBwaVJFICYmIGZpVSA/ICRmbGFncy5jYWxsKHApIDogZilcbiAgICAgICwgdGlSRSA/IHRoaXMgOiBwcm90bywgJFJlZ0V4cCk7XG4gIH07XG4gIHZhciBwcm94eSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICBrZXkgaW4gJFJlZ0V4cCB8fCBkUCgkUmVnRXhwLCBrZXksIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gQmFzZVtrZXldOyB9LFxuICAgICAgc2V0OiBmdW5jdGlvbiAoaXQpIHsgQmFzZVtrZXldID0gaXQ7IH1cbiAgICB9KTtcbiAgfTtcbiAgZm9yICh2YXIga2V5cyA9IGdPUE4oQmFzZSksIGkgPSAwOyBrZXlzLmxlbmd0aCA+IGk7KSBwcm94eShrZXlzW2krK10pO1xuICBwcm90by5jb25zdHJ1Y3RvciA9ICRSZWdFeHA7XG4gICRSZWdFeHAucHJvdG90eXBlID0gcHJvdG87XG4gIHJlcXVpcmUoJy4vX3JlZGVmaW5lJykoZ2xvYmFsLCAnUmVnRXhwJywgJFJlZ0V4cCk7XG59XG5cbnJlcXVpcmUoJy4vX3NldC1zcGVjaWVzJykoJ1JlZ0V4cCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYycpO1xucmVxdWlyZSgnLi9fZXhwb3J0Jykoe1xuICB0YXJnZXQ6ICdSZWdFeHAnLFxuICBwcm90bzogdHJ1ZSxcbiAgZm9yY2VkOiByZWdleHBFeGVjICE9PSAvLi8uZXhlY1xufSwge1xuICBleGVjOiByZWdleHBFeGVjXG59KTtcbiIsIi8vIDIxLjIuNS4zIGdldCBSZWdFeHAucHJvdG90eXBlLmZsYWdzKClcbmlmIChyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmIC8uL2cuZmxhZ3MgIT0gJ2cnKSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mKFJlZ0V4cC5wcm90b3R5cGUsICdmbGFncycsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBnZXQ6IHJlcXVpcmUoJy4vX2ZsYWdzJylcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGFkdmFuY2VTdHJpbmdJbmRleCA9IHJlcXVpcmUoJy4vX2FkdmFuY2Utc3RyaW5nLWluZGV4Jyk7XG52YXIgcmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4vX3JlZ2V4cC1leGVjLWFic3RyYWN0Jyk7XG5cbi8vIEBAbWF0Y2ggbG9naWNcbnJlcXVpcmUoJy4vX2ZpeC1yZS13a3MnKSgnbWF0Y2gnLCAxLCBmdW5jdGlvbiAoZGVmaW5lZCwgTUFUQ0gsICRtYXRjaCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUubWF0Y2hgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUubWF0Y2hcbiAgICBmdW5jdGlvbiBtYXRjaChyZWdleHApIHtcbiAgICAgIHZhciBPID0gZGVmaW5lZCh0aGlzKTtcbiAgICAgIHZhciBmbiA9IHJlZ2V4cCA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiByZWdleHBbTUFUQ0hdO1xuICAgICAgcmV0dXJuIGZuICE9PSB1bmRlZmluZWQgPyBmbi5jYWxsKHJlZ2V4cCwgTykgOiBuZXcgUmVnRXhwKHJlZ2V4cClbTUFUQ0hdKFN0cmluZyhPKSk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQG1hdGNoXWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQG1hdGNoXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCkge1xuICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZSgkbWF0Y2gsIHJlZ2V4cCwgdGhpcyk7XG4gICAgICBpZiAocmVzLmRvbmUpIHJldHVybiByZXMudmFsdWU7XG4gICAgICB2YXIgcnggPSBhbk9iamVjdChyZWdleHApO1xuICAgICAgdmFyIFMgPSBTdHJpbmcodGhpcyk7XG4gICAgICBpZiAoIXJ4Lmdsb2JhbCkgcmV0dXJuIHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgdmFyIGZ1bGxVbmljb2RlID0gcngudW5pY29kZTtcbiAgICAgIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgdmFyIG4gPSAwO1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIHdoaWxlICgocmVzdWx0ID0gcmVnRXhwRXhlYyhyeCwgUykpICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBtYXRjaFN0ciA9IFN0cmluZyhyZXN1bHRbMF0pO1xuICAgICAgICBBW25dID0gbWF0Y2hTdHI7XG4gICAgICAgIGlmIChtYXRjaFN0ciA9PT0gJycpIHJ4Lmxhc3RJbmRleCA9IGFkdmFuY2VTdHJpbmdJbmRleChTLCB0b0xlbmd0aChyeC5sYXN0SW5kZXgpLCBmdWxsVW5pY29kZSk7XG4gICAgICAgIG4rKztcbiAgICAgIH1cbiAgICAgIHJldHVybiBuID09PSAwID8gbnVsbCA6IEE7XG4gICAgfVxuICBdO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi9fYWR2YW5jZS1zdHJpbmctaW5kZXgnKTtcbnZhciByZWdFeHBFeGVjID0gcmVxdWlyZSgnLi9fcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgU1VCU1RJVFVUSU9OX1NZTUJPTFMgPSAvXFwkKFskJmAnXXxcXGRcXGQ/fDxbXj5dKj4pL2c7XG52YXIgU1VCU1RJVFVUSU9OX1NZTUJPTFNfTk9fTkFNRUQgPSAvXFwkKFskJmAnXXxcXGRcXGQ/KS9nO1xuXG52YXIgbWF5YmVUb1N0cmluZyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/IGl0IDogU3RyaW5nKGl0KTtcbn07XG5cbi8vIEBAcmVwbGFjZSBsb2dpY1xucmVxdWlyZSgnLi9fZml4LXJlLXdrcycpKCdyZXBsYWNlJywgMiwgZnVuY3Rpb24gKGRlZmluZWQsIFJFUExBQ0UsICRyZXBsYWNlLCBtYXliZUNhbGxOYXRpdmUpIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnJlcGxhY2VcbiAgICBmdW5jdGlvbiByZXBsYWNlKHNlYXJjaFZhbHVlLCByZXBsYWNlVmFsdWUpIHtcbiAgICAgIHZhciBPID0gZGVmaW5lZCh0aGlzKTtcbiAgICAgIHZhciBmbiA9IHNlYXJjaFZhbHVlID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHNlYXJjaFZhbHVlW1JFUExBQ0VdO1xuICAgICAgcmV0dXJuIGZuICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBmbi5jYWxsKHNlYXJjaFZhbHVlLCBPLCByZXBsYWNlVmFsdWUpXG4gICAgICAgIDogJHJlcGxhY2UuY2FsbChTdHJpbmcoTyksIHNlYXJjaFZhbHVlLCByZXBsYWNlVmFsdWUpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEByZXBsYWNlXWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJlcGxhY2VcbiAgICBmdW5jdGlvbiAocmVnZXhwLCByZXBsYWNlVmFsdWUpIHtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUoJHJlcGxhY2UsIHJlZ2V4cCwgdGhpcywgcmVwbGFjZVZhbHVlKTtcbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuICAgICAgdmFyIGZ1bmN0aW9uYWxSZXBsYWNlID0gdHlwZW9mIHJlcGxhY2VWYWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgIGlmICghZnVuY3Rpb25hbFJlcGxhY2UpIHJlcGxhY2VWYWx1ZSA9IFN0cmluZyhyZXBsYWNlVmFsdWUpO1xuICAgICAgdmFyIGdsb2JhbCA9IHJ4Lmdsb2JhbDtcbiAgICAgIGlmIChnbG9iYWwpIHtcbiAgICAgICAgdmFyIGZ1bGxVbmljb2RlID0gcngudW5pY29kZTtcbiAgICAgICAgcngubGFzdEluZGV4ID0gMDtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHRzID0gW107XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gcmVnRXhwRXhlYyhyeCwgUyk7XG4gICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpIGJyZWFrO1xuICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgaWYgKCFnbG9iYWwpIGJyZWFrO1xuICAgICAgICB2YXIgbWF0Y2hTdHIgPSBTdHJpbmcocmVzdWx0WzBdKTtcbiAgICAgICAgaWYgKG1hdGNoU3RyID09PSAnJykgcngubGFzdEluZGV4ID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHRvTGVuZ3RoKHJ4Lmxhc3RJbmRleCksIGZ1bGxVbmljb2RlKTtcbiAgICAgIH1cbiAgICAgIHZhciBhY2N1bXVsYXRlZFJlc3VsdCA9ICcnO1xuICAgICAgdmFyIG5leHRTb3VyY2VQb3NpdGlvbiA9IDA7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0c1tpXTtcbiAgICAgICAgdmFyIG1hdGNoZWQgPSBTdHJpbmcocmVzdWx0WzBdKTtcbiAgICAgICAgdmFyIHBvc2l0aW9uID0gbWF4KG1pbih0b0ludGVnZXIocmVzdWx0LmluZGV4KSwgUy5sZW5ndGgpLCAwKTtcbiAgICAgICAgdmFyIGNhcHR1cmVzID0gW107XG4gICAgICAgIC8vIE5PVEU6IFRoaXMgaXMgZXF1aXZhbGVudCB0b1xuICAgICAgICAvLyAgIGNhcHR1cmVzID0gcmVzdWx0LnNsaWNlKDEpLm1hcChtYXliZVRvU3RyaW5nKVxuICAgICAgICAvLyBidXQgZm9yIHNvbWUgcmVhc29uIGBuYXRpdmVTbGljZS5jYWxsKHJlc3VsdCwgMSwgcmVzdWx0Lmxlbmd0aClgIChjYWxsZWQgaW5cbiAgICAgICAgLy8gdGhlIHNsaWNlIHBvbHlmaWxsIHdoZW4gc2xpY2luZyBuYXRpdmUgYXJyYXlzKSBcImRvZXNuJ3Qgd29ya1wiIGluIHNhZmFyaSA5IGFuZFxuICAgICAgICAvLyBjYXVzZXMgYSBjcmFzaCAoaHR0cHM6Ly9wYXN0ZWJpbi5jb20vTjIxUXplUUEpIHdoZW4gdHJ5aW5nIHRvIGRlYnVnIGl0LlxuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHJlc3VsdC5sZW5ndGg7IGorKykgY2FwdHVyZXMucHVzaChtYXliZVRvU3RyaW5nKHJlc3VsdFtqXSkpO1xuICAgICAgICB2YXIgbmFtZWRDYXB0dXJlcyA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkge1xuICAgICAgICAgIHZhciByZXBsYWNlckFyZ3MgPSBbbWF0Y2hlZF0uY29uY2F0KGNhcHR1cmVzLCBwb3NpdGlvbiwgUyk7XG4gICAgICAgICAgaWYgKG5hbWVkQ2FwdHVyZXMgIT09IHVuZGVmaW5lZCkgcmVwbGFjZXJBcmdzLnB1c2gobmFtZWRDYXB0dXJlcyk7XG4gICAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gU3RyaW5nKHJlcGxhY2VWYWx1ZS5hcHBseSh1bmRlZmluZWQsIHJlcGxhY2VyQXJncykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcGxhY2VtZW50ID0gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIFMsIHBvc2l0aW9uLCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZVZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zaXRpb24gPj0gbmV4dFNvdXJjZVBvc2l0aW9uKSB7XG4gICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgKz0gUy5zbGljZShuZXh0U291cmNlUG9zaXRpb24sIHBvc2l0aW9uKSArIHJlcGxhY2VtZW50O1xuICAgICAgICAgIG5leHRTb3VyY2VQb3NpdGlvbiA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bXVsYXRlZFJlc3VsdCArIFMuc2xpY2UobmV4dFNvdXJjZVBvc2l0aW9uKTtcbiAgICB9XG4gIF07XG5cbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1nZXRzdWJzdGl0dXRpb25cbiAgZnVuY3Rpb24gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIHN0ciwgcG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlbWVudCkge1xuICAgIHZhciB0YWlsUG9zID0gcG9zaXRpb24gKyBtYXRjaGVkLmxlbmd0aDtcbiAgICB2YXIgbSA9IGNhcHR1cmVzLmxlbmd0aDtcbiAgICB2YXIgc3ltYm9scyA9IFNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEO1xuICAgIGlmIChuYW1lZENhcHR1cmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG5hbWVkQ2FwdHVyZXMgPSB0b09iamVjdChuYW1lZENhcHR1cmVzKTtcbiAgICAgIHN5bWJvbHMgPSBTVUJTVElUVVRJT05fU1lNQk9MUztcbiAgICB9XG4gICAgcmV0dXJuICRyZXBsYWNlLmNhbGwocmVwbGFjZW1lbnQsIHN5bWJvbHMsIGZ1bmN0aW9uIChtYXRjaCwgY2gpIHtcbiAgICAgIHZhciBjYXB0dXJlO1xuICAgICAgc3dpdGNoIChjaC5jaGFyQXQoMCkpIHtcbiAgICAgICAgY2FzZSAnJCc6IHJldHVybiAnJCc7XG4gICAgICAgIGNhc2UgJyYnOiByZXR1cm4gbWF0Y2hlZDtcbiAgICAgICAgY2FzZSAnYCc6IHJldHVybiBzdHIuc2xpY2UoMCwgcG9zaXRpb24pO1xuICAgICAgICBjYXNlIFwiJ1wiOiByZXR1cm4gc3RyLnNsaWNlKHRhaWxQb3MpO1xuICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgICBjYXB0dXJlID0gbmFtZWRDYXB0dXJlc1tjaC5zbGljZSgxLCAtMSldO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OiAvLyBcXGRcXGQ/XG4gICAgICAgICAgdmFyIG4gPSArY2g7XG4gICAgICAgICAgaWYgKG4gPT09IDApIHJldHVybiBtYXRjaDtcbiAgICAgICAgICBpZiAobiA+IG0pIHtcbiAgICAgICAgICAgIHZhciBmID0gZmxvb3IobiAvIDEwKTtcbiAgICAgICAgICAgIGlmIChmID09PSAwKSByZXR1cm4gbWF0Y2g7XG4gICAgICAgICAgICBpZiAoZiA8PSBtKSByZXR1cm4gY2FwdHVyZXNbZiAtIDFdID09PSB1bmRlZmluZWQgPyBjaC5jaGFyQXQoMSkgOiBjYXB0dXJlc1tmIC0gMV0gKyBjaC5jaGFyQXQoMSk7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhcHR1cmUgPSBjYXB0dXJlc1tuIC0gMV07XG4gICAgICB9XG4gICAgICByZXR1cm4gY2FwdHVyZSA9PT0gdW5kZWZpbmVkID8gJycgOiBjYXB0dXJlO1xuICAgIH0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgc2FtZVZhbHVlID0gcmVxdWlyZSgnLi9fc2FtZS12YWx1ZScpO1xudmFyIHJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xuXG4vLyBAQHNlYXJjaCBsb2dpY1xucmVxdWlyZSgnLi9fZml4LXJlLXdrcycpKCdzZWFyY2gnLCAxLCBmdW5jdGlvbiAoZGVmaW5lZCwgU0VBUkNILCAkc2VhcmNoLCBtYXliZUNhbGxOYXRpdmUpIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5zZWFyY2hgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuc2VhcmNoXG4gICAgZnVuY3Rpb24gc2VhcmNoKHJlZ2V4cCkge1xuICAgICAgdmFyIE8gPSBkZWZpbmVkKHRoaXMpO1xuICAgICAgdmFyIGZuID0gcmVnZXhwID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHJlZ2V4cFtTRUFSQ0hdO1xuICAgICAgcmV0dXJuIGZuICE9PSB1bmRlZmluZWQgPyBmbi5jYWxsKHJlZ2V4cCwgTykgOiBuZXcgUmVnRXhwKHJlZ2V4cClbU0VBUkNIXShTdHJpbmcoTykpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLUBAc2VhcmNoXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCkge1xuICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZSgkc2VhcmNoLCByZWdleHAsIHRoaXMpO1xuICAgICAgaWYgKHJlcy5kb25lKSByZXR1cm4gcmVzLnZhbHVlO1xuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuICAgICAgdmFyIHByZXZpb3VzTGFzdEluZGV4ID0gcngubGFzdEluZGV4O1xuICAgICAgaWYgKCFzYW1lVmFsdWUocHJldmlvdXNMYXN0SW5kZXgsIDApKSByeC5sYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHJlc3VsdCA9IHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgaWYgKCFzYW1lVmFsdWUocngubGFzdEluZGV4LCBwcmV2aW91c0xhc3RJbmRleCkpIHJ4Lmxhc3RJbmRleCA9IHByZXZpb3VzTGFzdEluZGV4O1xuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gbnVsbCA/IC0xIDogcmVzdWx0LmluZGV4O1xuICAgIH1cbiAgXTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaXNSZWdFeHAgPSByZXF1aXJlKCcuL19pcy1yZWdleHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4vX3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciBhZHZhbmNlU3RyaW5nSW5kZXggPSByZXF1aXJlKCcuL19hZHZhbmNlLXN0cmluZy1pbmRleCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgY2FsbFJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciAkbWluID0gTWF0aC5taW47XG52YXIgJHB1c2ggPSBbXS5wdXNoO1xudmFyICRTUExJVCA9ICdzcGxpdCc7XG52YXIgTEVOR1RIID0gJ2xlbmd0aCc7XG52YXIgTEFTVF9JTkRFWCA9ICdsYXN0SW5kZXgnO1xudmFyIE1BWF9VSU5UMzIgPSAweGZmZmZmZmZmO1xuXG4vLyBiYWJlbC1taW5pZnkgdHJhbnNwaWxlcyBSZWdFeHAoJ3gnLCAneScpIC0+IC94L3kgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxudmFyIFNVUFBPUlRTX1kgPSAhZmFpbHMoZnVuY3Rpb24gKCkgeyBSZWdFeHAoTUFYX1VJTlQzMiwgJ3knKTsgfSk7XG5cbi8vIEBAc3BsaXQgbG9naWNcbnJlcXVpcmUoJy4vX2ZpeC1yZS13a3MnKSgnc3BsaXQnLCAyLCBmdW5jdGlvbiAoZGVmaW5lZCwgU1BMSVQsICRzcGxpdCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHZhciBpbnRlcm5hbFNwbGl0O1xuICBpZiAoXG4gICAgJ2FiYmMnWyRTUExJVF0oLyhiKSovKVsxXSA9PSAnYycgfHxcbiAgICAndGVzdCdbJFNQTElUXSgvKD86KS8sIC0xKVtMRU5HVEhdICE9IDQgfHxcbiAgICAnYWInWyRTUExJVF0oLyg/OmFiKSovKVtMRU5HVEhdICE9IDIgfHxcbiAgICAnLidbJFNQTElUXSgvKC4/KSguPykvKVtMRU5HVEhdICE9IDQgfHxcbiAgICAnLidbJFNQTElUXSgvKCkoKS8pW0xFTkdUSF0gPiAxIHx8XG4gICAgJydbJFNQTElUXSgvLj8vKVtMRU5HVEhdXG4gICkge1xuICAgIC8vIGJhc2VkIG9uIGVzNS1zaGltIGltcGxlbWVudGF0aW9uLCBuZWVkIHRvIHJld29yayBpdFxuICAgIGludGVybmFsU3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgdmFyIHN0cmluZyA9IFN0cmluZyh0aGlzKTtcbiAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCAmJiBsaW1pdCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgLy8gSWYgYHNlcGFyYXRvcmAgaXMgbm90IGEgcmVnZXgsIHVzZSBuYXRpdmUgc3BsaXRcbiAgICAgIGlmICghaXNSZWdFeHAoc2VwYXJhdG9yKSkgcmV0dXJuICRzcGxpdC5jYWxsKHN0cmluZywgc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgICB2YXIgb3V0cHV0ID0gW107XG4gICAgICB2YXIgZmxhZ3MgPSAoc2VwYXJhdG9yLmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci5tdWx0aWxpbmUgPyAnbScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci51bmljb2RlID8gJ3UnIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChzZXBhcmF0b3Iuc3RpY2t5ID8gJ3knIDogJycpO1xuICAgICAgdmFyIGxhc3RMYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHNwbGl0TGltaXQgPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgLy8gTWFrZSBgZ2xvYmFsYCBhbmQgYXZvaWQgYGxhc3RJbmRleGAgaXNzdWVzIGJ5IHdvcmtpbmcgd2l0aCBhIGNvcHlcbiAgICAgIHZhciBzZXBhcmF0b3JDb3B5ID0gbmV3IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCBmbGFncyArICdnJyk7XG4gICAgICB2YXIgbWF0Y2gsIGxhc3RJbmRleCwgbGFzdExlbmd0aDtcbiAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4cEV4ZWMuY2FsbChzZXBhcmF0b3JDb3B5LCBzdHJpbmcpKSB7XG4gICAgICAgIGxhc3RJbmRleCA9IHNlcGFyYXRvckNvcHlbTEFTVF9JTkRFWF07XG4gICAgICAgIGlmIChsYXN0SW5kZXggPiBsYXN0TGFzdEluZGV4KSB7XG4gICAgICAgICAgb3V0cHV0LnB1c2goc3RyaW5nLnNsaWNlKGxhc3RMYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgaWYgKG1hdGNoW0xFTkdUSF0gPiAxICYmIG1hdGNoLmluZGV4IDwgc3RyaW5nW0xFTkdUSF0pICRwdXNoLmFwcGx5KG91dHB1dCwgbWF0Y2guc2xpY2UoMSkpO1xuICAgICAgICAgIGxhc3RMZW5ndGggPSBtYXRjaFswXVtMRU5HVEhdO1xuICAgICAgICAgIGxhc3RMYXN0SW5kZXggPSBsYXN0SW5kZXg7XG4gICAgICAgICAgaWYgKG91dHB1dFtMRU5HVEhdID49IHNwbGl0TGltaXQpIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXBhcmF0b3JDb3B5W0xBU1RfSU5ERVhdID09PSBtYXRjaC5pbmRleCkgc2VwYXJhdG9yQ29weVtMQVNUX0lOREVYXSsrOyAvLyBBdm9pZCBhbiBpbmZpbml0ZSBsb29wXG4gICAgICB9XG4gICAgICBpZiAobGFzdExhc3RJbmRleCA9PT0gc3RyaW5nW0xFTkdUSF0pIHtcbiAgICAgICAgaWYgKGxhc3RMZW5ndGggfHwgIXNlcGFyYXRvckNvcHkudGVzdCgnJykpIG91dHB1dC5wdXNoKCcnKTtcbiAgICAgIH0gZWxzZSBvdXRwdXQucHVzaChzdHJpbmcuc2xpY2UobGFzdExhc3RJbmRleCkpO1xuICAgICAgcmV0dXJuIG91dHB1dFtMRU5HVEhdID4gc3BsaXRMaW1pdCA/IG91dHB1dC5zbGljZSgwLCBzcGxpdExpbWl0KSA6IG91dHB1dDtcbiAgICB9O1xuICAvLyBDaGFrcmEsIFY4XG4gIH0gZWxzZSBpZiAoJzAnWyRTUExJVF0odW5kZWZpbmVkLCAwKVtMRU5HVEhdKSB7XG4gICAgaW50ZXJuYWxTcGxpdCA9IGZ1bmN0aW9uIChzZXBhcmF0b3IsIGxpbWl0KSB7XG4gICAgICByZXR1cm4gc2VwYXJhdG9yID09PSB1bmRlZmluZWQgJiYgbGltaXQgPT09IDAgPyBbXSA6ICRzcGxpdC5jYWxsKHRoaXMsIHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgaW50ZXJuYWxTcGxpdCA9ICRzcGxpdDtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUuc3BsaXRgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuc3BsaXRcbiAgICBmdW5jdGlvbiBzcGxpdChzZXBhcmF0b3IsIGxpbWl0KSB7XG4gICAgICB2YXIgTyA9IGRlZmluZWQodGhpcyk7XG4gICAgICB2YXIgc3BsaXR0ZXIgPSBzZXBhcmF0b3IgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc2VwYXJhdG9yW1NQTElUXTtcbiAgICAgIHJldHVybiBzcGxpdHRlciAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gc3BsaXR0ZXIuY2FsbChzZXBhcmF0b3IsIE8sIGxpbWl0KVxuICAgICAgICA6IGludGVybmFsU3BsaXQuY2FsbChTdHJpbmcoTyksIHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzcGxpdFxuICAgIC8vXG4gICAgLy8gTk9URTogVGhpcyBjYW5ub3QgYmUgcHJvcGVybHkgcG9seWZpbGxlZCBpbiBlbmdpbmVzIHRoYXQgZG9uJ3Qgc3VwcG9ydFxuICAgIC8vIHRoZSAneScgZmxhZy5cbiAgICBmdW5jdGlvbiAocmVnZXhwLCBsaW1pdCkge1xuICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZShpbnRlcm5hbFNwbGl0LCByZWdleHAsIHRoaXMsIGxpbWl0LCBpbnRlcm5hbFNwbGl0ICE9PSAkc3BsaXQpO1xuICAgICAgaWYgKHJlcy5kb25lKSByZXR1cm4gcmVzLnZhbHVlO1xuXG4gICAgICB2YXIgcnggPSBhbk9iamVjdChyZWdleHApO1xuICAgICAgdmFyIFMgPSBTdHJpbmcodGhpcyk7XG4gICAgICB2YXIgQyA9IHNwZWNpZXNDb25zdHJ1Y3RvcihyeCwgUmVnRXhwKTtcblxuICAgICAgdmFyIHVuaWNvZGVNYXRjaGluZyA9IHJ4LnVuaWNvZGU7XG4gICAgICB2YXIgZmxhZ3MgPSAocnguaWdub3JlQ2FzZSA/ICdpJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAocngubXVsdGlsaW5lID8gJ20nIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChyeC51bmljb2RlID8gJ3UnIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChTVVBQT1JUU19ZID8gJ3knIDogJ2cnKTtcblxuICAgICAgLy8gXig/ICsgcnggKyApIGlzIG5lZWRlZCwgaW4gY29tYmluYXRpb24gd2l0aCBzb21lIFMgc2xpY2luZywgdG9cbiAgICAgIC8vIHNpbXVsYXRlIHRoZSAneScgZmxhZy5cbiAgICAgIHZhciBzcGxpdHRlciA9IG5ldyBDKFNVUFBPUlRTX1kgPyByeCA6ICdeKD86JyArIHJ4LnNvdXJjZSArICcpJywgZmxhZ3MpO1xuICAgICAgdmFyIGxpbSA9IGxpbWl0ID09PSB1bmRlZmluZWQgPyBNQVhfVUlOVDMyIDogbGltaXQgPj4+IDA7XG4gICAgICBpZiAobGltID09PSAwKSByZXR1cm4gW107XG4gICAgICBpZiAoUy5sZW5ndGggPT09IDApIHJldHVybiBjYWxsUmVnRXhwRXhlYyhzcGxpdHRlciwgUykgPT09IG51bGwgPyBbU10gOiBbXTtcbiAgICAgIHZhciBwID0gMDtcbiAgICAgIHZhciBxID0gMDtcbiAgICAgIHZhciBBID0gW107XG4gICAgICB3aGlsZSAocSA8IFMubGVuZ3RoKSB7XG4gICAgICAgIHNwbGl0dGVyLmxhc3RJbmRleCA9IFNVUFBPUlRTX1kgPyBxIDogMDtcbiAgICAgICAgdmFyIHogPSBjYWxsUmVnRXhwRXhlYyhzcGxpdHRlciwgU1VQUE9SVFNfWSA/IFMgOiBTLnNsaWNlKHEpKTtcbiAgICAgICAgdmFyIGU7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB6ID09PSBudWxsIHx8XG4gICAgICAgICAgKGUgPSAkbWluKHRvTGVuZ3RoKHNwbGl0dGVyLmxhc3RJbmRleCArIChTVVBQT1JUU19ZID8gMCA6IHEpKSwgUy5sZW5ndGgpKSA9PT0gcFxuICAgICAgICApIHtcbiAgICAgICAgICBxID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHEsIHVuaWNvZGVNYXRjaGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgQS5wdXNoKFMuc2xpY2UocCwgcSkpO1xuICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSB6Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgQS5wdXNoKHpbaV0pO1xuICAgICAgICAgICAgaWYgKEEubGVuZ3RoID09PSBsaW0pIHJldHVybiBBO1xuICAgICAgICAgIH1cbiAgICAgICAgICBxID0gcCA9IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEEucHVzaChTLnNsaWNlKHApKTtcbiAgICAgIHJldHVybiBBO1xuICAgIH1cbiAgXTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi9lczYucmVnZXhwLmZsYWdzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciAkZmxhZ3MgPSByZXF1aXJlKCcuL19mbGFncycpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKTtcbnZhciBUT19TVFJJTkcgPSAndG9TdHJpbmcnO1xudmFyICR0b1N0cmluZyA9IC8uL1tUT19TVFJJTkddO1xuXG52YXIgZGVmaW5lID0gZnVuY3Rpb24gKGZuKSB7XG4gIHJlcXVpcmUoJy4vX3JlZGVmaW5lJykoUmVnRXhwLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmbiwgdHJ1ZSk7XG59O1xuXG4vLyAyMS4yLjUuMTQgUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZygpXG5pZiAocmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7IHJldHVybiAkdG9TdHJpbmcuY2FsbCh7IHNvdXJjZTogJ2EnLCBmbGFnczogJ2InIH0pICE9ICcvYS9iJzsgfSkpIHtcbiAgZGVmaW5lKGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHZhciBSID0gYW5PYmplY3QodGhpcyk7XG4gICAgcmV0dXJuICcvJy5jb25jYXQoUi5zb3VyY2UsICcvJyxcbiAgICAgICdmbGFncycgaW4gUiA/IFIuZmxhZ3MgOiAhREVTQ1JJUFRPUlMgJiYgUiBpbnN0YW5jZW9mIFJlZ0V4cCA/ICRmbGFncy5jYWxsKFIpIDogdW5kZWZpbmVkKTtcbiAgfSk7XG4vLyBGRjQ0LSBSZWdFeHAjdG9TdHJpbmcgaGFzIGEgd3JvbmcgbmFtZVxufSBlbHNlIGlmICgkdG9TdHJpbmcubmFtZSAhPSBUT19TVFJJTkcpIHtcbiAgZGVmaW5lKGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAkdG9TdHJpbmcuY2FsbCh0aGlzKTtcbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgc3Ryb25nID0gcmVxdWlyZSgnLi9fY29sbGVjdGlvbi1zdHJvbmcnKTtcbnZhciB2YWxpZGF0ZSA9IHJlcXVpcmUoJy4vX3ZhbGlkYXRlLWNvbGxlY3Rpb24nKTtcbnZhciBTRVQgPSAnU2V0JztcblxuLy8gMjMuMiBTZXQgT2JqZWN0c1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19jb2xsZWN0aW9uJykoU0VULCBmdW5jdGlvbiAoZ2V0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBTZXQoKSB7IHJldHVybiBnZXQodGhpcywgYXJndW1lbnRzLmxlbmd0aCA+IDAgPyBhcmd1bWVudHNbMF0gOiB1bmRlZmluZWQpOyB9O1xufSwge1xuICAvLyAyMy4yLjMuMSBTZXQucHJvdG90eXBlLmFkZCh2YWx1ZSlcbiAgYWRkOiBmdW5jdGlvbiBhZGQodmFsdWUpIHtcbiAgICByZXR1cm4gc3Ryb25nLmRlZih2YWxpZGF0ZSh0aGlzLCBTRVQpLCB2YWx1ZSA9IHZhbHVlID09PSAwID8gMCA6IHZhbHVlLCB2YWx1ZSk7XG4gIH1cbn0sIHN0cm9uZyk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBCLjIuMy4yIFN0cmluZy5wcm90b3R5cGUuYW5jaG9yKG5hbWUpXG5yZXF1aXJlKCcuL19zdHJpbmctaHRtbCcpKCdhbmNob3InLCBmdW5jdGlvbiAoY3JlYXRlSFRNTCkge1xuICByZXR1cm4gZnVuY3Rpb24gYW5jaG9yKG5hbWUpIHtcbiAgICByZXR1cm4gY3JlYXRlSFRNTCh0aGlzLCAnYScsICduYW1lJywgbmFtZSk7XG4gIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIEIuMi4zLjMgU3RyaW5nLnByb3RvdHlwZS5iaWcoKVxucmVxdWlyZSgnLi9fc3RyaW5nLWh0bWwnKSgnYmlnJywgZnVuY3Rpb24gKGNyZWF0ZUhUTUwpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJpZygpIHtcbiAgICByZXR1cm4gY3JlYXRlSFRNTCh0aGlzLCAnYmlnJywgJycsICcnKTtcbiAgfTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gQi4yLjMuNCBTdHJpbmcucHJvdG90eXBlLmJsaW5rKClcbnJlcXVpcmUoJy4vX3N0cmluZy1odG1sJykoJ2JsaW5rJywgZnVuY3Rpb24gKGNyZWF0ZUhUTUwpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJsaW5rKCkge1xuICAgIHJldHVybiBjcmVhdGVIVE1MKHRoaXMsICdibGluaycsICcnLCAnJyk7XG4gIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIEIuMi4zLjUgU3RyaW5nLnByb3RvdHlwZS5ib2xkKClcbnJlcXVpcmUoJy4vX3N0cmluZy1odG1sJykoJ2JvbGQnLCBmdW5jdGlvbiAoY3JlYXRlSFRNTCkge1xuICByZXR1cm4gZnVuY3Rpb24gYm9sZCgpIHtcbiAgICByZXR1cm4gY3JlYXRlSFRNTCh0aGlzLCAnYicsICcnLCAnJyk7XG4gIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGF0ID0gcmVxdWlyZSgnLi9fc3RyaW5nLWF0JykoZmFsc2UpO1xuJGV4cG9ydCgkZXhwb3J0LlAsICdTdHJpbmcnLCB7XG4gIC8vIDIxLjEuMy4zIFN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXQocG9zKVxuICBjb2RlUG9pbnRBdDogZnVuY3Rpb24gY29kZVBvaW50QXQocG9zKSB7XG4gICAgcmV0dXJuICRhdCh0aGlzLCBwb3MpO1xuICB9XG59KTtcbiIsIi8vIDIxLjEuMy42IFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGgoc2VhcmNoU3RyaW5nIFssIGVuZFBvc2l0aW9uXSlcbid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciBjb250ZXh0ID0gcmVxdWlyZSgnLi9fc3RyaW5nLWNvbnRleHQnKTtcbnZhciBFTkRTX1dJVEggPSAnZW5kc1dpdGgnO1xudmFyICRlbmRzV2l0aCA9ICcnW0VORFNfV0lUSF07XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogcmVxdWlyZSgnLi9fZmFpbHMtaXMtcmVnZXhwJykoRU5EU19XSVRIKSwgJ1N0cmluZycsIHtcbiAgZW5kc1dpdGg6IGZ1bmN0aW9uIGVuZHNXaXRoKHNlYXJjaFN0cmluZyAvKiAsIGVuZFBvc2l0aW9uID0gQGxlbmd0aCAqLykge1xuICAgIHZhciB0aGF0ID0gY29udGV4dCh0aGlzLCBzZWFyY2hTdHJpbmcsIEVORFNfV0lUSCk7XG4gICAgdmFyIGVuZFBvc2l0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gICAgdmFyIGxlbiA9IHRvTGVuZ3RoKHRoYXQubGVuZ3RoKTtcbiAgICB2YXIgZW5kID0gZW5kUG9zaXRpb24gPT09IHVuZGVmaW5lZCA/IGxlbiA6IE1hdGgubWluKHRvTGVuZ3RoKGVuZFBvc2l0aW9uKSwgbGVuKTtcbiAgICB2YXIgc2VhcmNoID0gU3RyaW5nKHNlYXJjaFN0cmluZyk7XG4gICAgcmV0dXJuICRlbmRzV2l0aFxuICAgICAgPyAkZW5kc1dpdGguY2FsbCh0aGF0LCBzZWFyY2gsIGVuZClcbiAgICAgIDogdGhhdC5zbGljZShlbmQgLSBzZWFyY2gubGVuZ3RoLCBlbmQpID09PSBzZWFyY2g7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gQi4yLjMuNiBTdHJpbmcucHJvdG90eXBlLmZpeGVkKClcbnJlcXVpcmUoJy4vX3N0cmluZy1odG1sJykoJ2ZpeGVkJywgZnVuY3Rpb24gKGNyZWF0ZUhUTUwpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGZpeGVkKCkge1xuICAgIHJldHVybiBjcmVhdGVIVE1MKHRoaXMsICd0dCcsICcnLCAnJyk7XG4gIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIEIuMi4zLjcgU3RyaW5nLnByb3RvdHlwZS5mb250Y29sb3IoY29sb3IpXG5yZXF1aXJlKCcuL19zdHJpbmctaHRtbCcpKCdmb250Y29sb3InLCBmdW5jdGlvbiAoY3JlYXRlSFRNTCkge1xuICByZXR1cm4gZnVuY3Rpb24gZm9udGNvbG9yKGNvbG9yKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUTUwodGhpcywgJ2ZvbnQnLCAnY29sb3InLCBjb2xvcik7XG4gIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIEIuMi4zLjggU3RyaW5nLnByb3RvdHlwZS5mb250c2l6ZShzaXplKVxucmVxdWlyZSgnLi9fc3RyaW5nLWh0bWwnKSgnZm9udHNpemUnLCBmdW5jdGlvbiAoY3JlYXRlSFRNTCkge1xuICByZXR1cm4gZnVuY3Rpb24gZm9udHNpemUoc2l6ZSkge1xuICAgIHJldHVybiBjcmVhdGVIVE1MKHRoaXMsICdmb250JywgJ3NpemUnLCBzaXplKTtcbiAgfTtcbn0pO1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG52YXIgJGZyb21Db2RlUG9pbnQgPSBTdHJpbmcuZnJvbUNvZGVQb2ludDtcblxuLy8gbGVuZ3RoIHNob3VsZCBiZSAxLCBvbGQgRkYgcHJvYmxlbVxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAoISEkZnJvbUNvZGVQb2ludCAmJiAkZnJvbUNvZGVQb2ludC5sZW5ndGggIT0gMSksICdTdHJpbmcnLCB7XG4gIC8vIDIxLjEuMi4yIFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmNvZGVQb2ludHMpXG4gIGZyb21Db2RlUG9pbnQ6IGZ1bmN0aW9uIGZyb21Db2RlUG9pbnQoeCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGNvZGU7XG4gICAgd2hpbGUgKGFMZW4gPiBpKSB7XG4gICAgICBjb2RlID0gK2FyZ3VtZW50c1tpKytdO1xuICAgICAgaWYgKHRvQWJzb2x1dGVJbmRleChjb2RlLCAweDEwZmZmZikgIT09IGNvZGUpIHRocm93IFJhbmdlRXJyb3IoY29kZSArICcgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCcpO1xuICAgICAgcmVzLnB1c2goY29kZSA8IDB4MTAwMDBcbiAgICAgICAgPyBmcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgICAgOiBmcm9tQ2hhckNvZGUoKChjb2RlIC09IDB4MTAwMDApID4+IDEwKSArIDB4ZDgwMCwgY29kZSAlIDB4NDAwICsgMHhkYzAwKVxuICAgICAgKTtcbiAgICB9IHJldHVybiByZXMuam9pbignJyk7XG4gIH1cbn0pO1xuIiwiLy8gMjEuMS4zLjcgU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcsIHBvc2l0aW9uID0gMClcbid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgY29udGV4dCA9IHJlcXVpcmUoJy4vX3N0cmluZy1jb250ZXh0Jyk7XG52YXIgSU5DTFVERVMgPSAnaW5jbHVkZXMnO1xuXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIHJlcXVpcmUoJy4vX2ZhaWxzLWlzLXJlZ2V4cCcpKElOQ0xVREVTKSwgJ1N0cmluZycsIHtcbiAgaW5jbHVkZXM6IGZ1bmN0aW9uIGluY2x1ZGVzKHNlYXJjaFN0cmluZyAvKiAsIHBvc2l0aW9uID0gMCAqLykge1xuICAgIHJldHVybiAhIX5jb250ZXh0KHRoaXM