@volcengine/veplayer 1.9.2 → 1.10.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +207 -10
- package/index.min.js +2 -2
- package/package.json +1 -1
- package/plugin/dash.js +2 -2
package/plugin/dash.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
// Built @
|
|
2
|
-
!function(e,U){"object"==typeof exports&&"undefined"!=typeof module?module.exports=U(require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.regexp.to-string.js"),require("xgplayer"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.search.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.typed-array.of.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.typed-array.uint8-array.js"),require("core-js/modules/es.typed-array.copy-within.js"),require("core-js/modules/es.typed-array.every.js"),require("core-js/modules/es.typed-array.fill.js"),require("core-js/modules/es.typed-array.filter.js"),require("core-js/modules/es.typed-array.find.js"),require("core-js/modules/es.typed-array.find-index.js"),require("core-js/modules/es.typed-array.for-each.js"),require("core-js/modules/es.typed-array.includes.js"),require("core-js/modules/es.typed-array.index-of.js"),require("core-js/modules/es.typed-array.iterator.js"),require("core-js/modules/es.typed-array.join.js"),require("core-js/modules/es.typed-array.last-index-of.js"),require("core-js/modules/es.typed-array.map.js"),require("core-js/modules/es.typed-array.reduce.js"),require("core-js/modules/es.typed-array.reduce-right.js"),require("core-js/modules/es.typed-array.reverse.js"),require("core-js/modules/es.typed-array.set.js"),require("core-js/modules/es.typed-array.slice.js"),require("core-js/modules/es.typed-array.some.js"),require("core-js/modules/es.typed-array.sort.js"),require("core-js/modules/es.typed-array.subarray.js"),require("core-js/modules/es.typed-array.to-locale-string.js"),require("core-js/modules/es.typed-array.to-string.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.array-buffer.constructor.js"),require("core-js/modules/es.string.replace.js"),require("core-js/modules/es.array.join.js"),require("core-js/modules/es.number.constructor.js"),require("core-js/modules/es.number.to-fixed.js"),require("core-js/modules/es.promise.finally.js"),require("core-js/modules/es.string.match.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.array.sort.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.map.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js"),require("core-js/modules/es.typed-array.int32-array.js"),require("core-js/modules/es.array.splice.js"),require("core-js/modules/es.object.values.js"),require("core-js/modules/es.string.split.js"),require("core-js/modules/web.url.js"),require("core-js/modules/web.url-search-params.js"),require("core-js/modules/es.string.includes.js"),require("core-js/modules/es.number.is-nan.js"),require("core-js/modules/es.string.repeat.js"),require("core-js/modules/es.array.find.js")):"function"==typeof define&&define.amd?define(["core-js/modules/es.array.slice.js","core-js/modules/es.array.map.js","core-js/modules/es.array.concat.js","core-js/modules/es.object.assign.js","core-js/modules/es.object.to-string.js","core-js/modules/web.dom-collections.for-each.js","core-js/modules/es.object.keys.js","core-js/modules/es.regexp.to-string.js","xgplayer","core-js/modules/es.regexp.exec.js","core-js/modules/es.string.search.js","core-js/modules/es.array.includes.js","core-js/modules/es.typed-array.of.js","core-js/modules/es.array.iterator.js","core-js/modules/es.typed-array.uint8-array.js","core-js/modules/es.typed-array.copy-within.js","core-js/modules/es.typed-array.every.js","core-js/modules/es.typed-array.fill.js","core-js/modules/es.typed-array.filter.js","core-js/modules/es.typed-array.find.js","core-js/modules/es.typed-array.find-index.js","core-js/modules/es.typed-array.for-each.js","core-js/modules/es.typed-array.includes.js","core-js/modules/es.typed-array.index-of.js","core-js/modules/es.typed-array.iterator.js","core-js/modules/es.typed-array.join.js","core-js/modules/es.typed-array.last-index-of.js","core-js/modules/es.typed-array.map.js","core-js/modules/es.typed-array.reduce.js","core-js/modules/es.typed-array.reduce-right.js","core-js/modules/es.typed-array.reverse.js","core-js/modules/es.typed-array.set.js","core-js/modules/es.typed-array.slice.js","core-js/modules/es.typed-array.some.js","core-js/modules/es.typed-array.sort.js","core-js/modules/es.typed-array.subarray.js","core-js/modules/es.typed-array.to-locale-string.js","core-js/modules/es.typed-array.to-string.js","core-js/modules/es.promise.js","core-js/modules/es.array-buffer.constructor.js","core-js/modules/es.string.replace.js","core-js/modules/es.array.join.js","core-js/modules/es.number.constructor.js","core-js/modules/es.number.to-fixed.js","core-js/modules/es.promise.finally.js","core-js/modules/es.string.match.js","core-js/modules/es.string.iterator.js","core-js/modules/web.dom-collections.iterator.js","core-js/modules/es.array.sort.js","core-js/modules/es.array.filter.js","core-js/modules/es.function.name.js","core-js/modules/es.map.js","core-js/modules/esnext.map.delete-all.js","core-js/modules/esnext.map.every.js","core-js/modules/esnext.map.filter.js","core-js/modules/esnext.map.find.js","core-js/modules/esnext.map.find-key.js","core-js/modules/esnext.map.includes.js","core-js/modules/esnext.map.key-of.js","core-js/modules/esnext.map.map-keys.js","core-js/modules/esnext.map.map-values.js","core-js/modules/esnext.map.merge.js","core-js/modules/esnext.map.reduce.js","core-js/modules/esnext.map.some.js","core-js/modules/esnext.map.update.js","core-js/modules/es.typed-array.int32-array.js","core-js/modules/es.array.splice.js","core-js/modules/es.object.values.js","core-js/modules/es.string.split.js","core-js/modules/web.url.js","core-js/modules/web.url-search-params.js","core-js/modules/es.string.includes.js","core-js/modules/es.number.is-nan.js","core-js/modules/es.string.repeat.js","core-js/modules/es.array.find.js"],U):(e="undefined"!=typeof globalThis?globalThis:e||self).DashPlugin=U(null,null,null,null,null,null,null,null,e.Player)}(this,(function(e,U,t,n,F,Q,l,i,d){"use strict";function r(e,U){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);U&&(n=n.filter((function(U){return Object.getOwnPropertyDescriptor(e,U).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var U=1;U<arguments.length;U++){var t=null!=arguments[U]?arguments[U]:{};U%2?r(Object(t),!0).forEach((function(U){u(e,U,t[U])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(U){Object.defineProperty(e,U,Object.getOwnPropertyDescriptor(t,U))}))}return e}function o(){o=function(){return e};var e={},U=Object.prototype,t=U.hasOwnProperty,n=Object.defineProperty||function(e,U,t){e[U]=t.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",l=F.asyncIterator||"@@asyncIterator",i=F.toStringTag||"@@toStringTag";function d(e,U,t){return Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[U]}try{d({},"")}catch(b){d=function(e,U,t){return e[U]=t}}function r(e,U,t,F){var Q=U&&U.prototype instanceof s?U:s,l=Object.create(Q.prototype),i=new k(F||[]);return n(l,"_invoke",{value:p(e,t,i)}),l}function a(e,U,t){try{return{type:"normal",arg:e.call(U,t)}}catch(b){return{type:"throw",arg:b}}}e.wrap=r;var B={};function s(){}function R(){}function c(){}var V={};d(V,Q,(function(){return this}));var h=Object.getPrototypeOf,u=h&&h(h(y([])));u&&u!==U&&t.call(u,Q)&&(V=u);var Z=c.prototype=s.prototype=Object.create(V);function S(e){["next","throw","return"].forEach((function(U){d(e,U,(function(e){return this._invoke(U,e)}))}))}function J(e,U){function F(n,Q,l,i){var d=a(e[n],e,Q);if("throw"!==d.type){var r=d.arg,o=r.value;return o&&"object"==typeof o&&t.call(o,"__await")?U.resolve(o.__await).then((function(e){F("next",e,l,i)}),(function(e){F("throw",e,l,i)})):U.resolve(o).then((function(e){r.value=e,l(r)}),(function(e){return F("throw",e,l,i)}))}i(d.arg)}var Q;n(this,"_invoke",{value:function(e,t){function n(){return new U((function(U,n){F(e,t,U,n)}))}return Q=Q?Q.then(n,n):n()}})}function p(e,U,t){var n="suspendedStart";return function(F,Q){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(t.method=F,t.arg=Q;;){var l=t.delegate;if(l){var i=W(l,t);if(i){if(i===B)continue;return i}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var d=a(e,U,t);if("normal"===d.type){if(n=t.done?"completed":"suspendedYield",d.arg===B)continue;return{value:d.arg,done:t.done}}"throw"===d.type&&(n="completed",t.method="throw",t.arg=d.arg)}}}function W(e,U){var t=U.method,n=e.iterator[t];if(void 0===n)return U.delegate=null,"throw"===t&&e.iterator.return&&(U.method="return",U.arg=void 0,W(e,U),"throw"===U.method)||"return"!==t&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+t+"' method")),B;var F=a(n,e.iterator,U.arg);if("throw"===F.type)return U.method="throw",U.arg=F.arg,U.delegate=null,B;var Q=F.arg;return Q?Q.done?(U[e.resultName]=Q.value,U.next=e.nextLoc,"return"!==U.method&&(U.method="next",U.arg=void 0),U.delegate=null,B):Q:(U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,B)}function m(e){var U={tryLoc:e[0]};1 in e&&(U.catchLoc=e[1]),2 in e&&(U.finallyLoc=e[2],U.afterLoc=e[3]),this.tryEntries.push(U)}function E(e){var U=e.completion||{};U.type="normal",delete U.arg,e.completion=U}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function y(e){if(e){var U=e[Q];if(U)return U.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,F=function U(){for(;++n<e.length;)if(t.call(e,n))return U.value=e[n],U.done=!1,U;return U.value=void 0,U.done=!0,U};return F.next=F}}return{next:N}}function N(){return{value:void 0,done:!0}}return R.prototype=c,n(Z,"constructor",{value:c,configurable:!0}),n(c,"constructor",{value:R,configurable:!0}),R.displayName=d(c,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var U="function"==typeof e&&e.constructor;return!!U&&(U===R||"GeneratorFunction"===(U.displayName||U.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,d(e,i,"GeneratorFunction")),e.prototype=Object.create(Z),e},e.awrap=function(e){return{__await:e}},S(J.prototype),d(J.prototype,l,(function(){return this})),e.AsyncIterator=J,e.async=function(U,t,n,F,Q){void 0===Q&&(Q=Promise);var l=new J(r(U,t,n,F),Q);return e.isGeneratorFunction(t)?l:l.next().then((function(e){return e.done?e.value:l.next()}))},S(Z),d(Z,i,"Generator"),d(Z,Q,(function(){return this})),d(Z,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var U=Object(e),t=[];for(var n in U)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in U)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=y,k.prototype={constructor:k,reset:function(e){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(E),!e)for(var U in this)"t"===U.charAt(0)&&t.call(this,U)&&!isNaN(+U.slice(1))&&(this[U]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var U=this;function n(t,n){return l.type="throw",l.arg=e,U.next=t,n&&(U.method="next",U.arg=void 0),!!n}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],l=Q.completion;if("root"===Q.tryLoc)return n("end");if(Q.tryLoc<=this.prev){var i=t.call(Q,"catchLoc"),d=t.call(Q,"finallyLoc");if(i&&d){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}else if(i){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}}}},abrupt:function(e,U){for(var n=this.tryEntries.length-1;n>=0;--n){var F=this.tryEntries[n];if(F.tryLoc<=this.prev&&t.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=U&&U<=Q.finallyLoc&&(Q=null);var l=Q?Q.completion:{};return l.type=e,l.arg=U,Q?(this.method="next",this.next=Q.finallyLoc,B):this.complete(l)},complete:function(e,U){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&U&&(this.next=U),B},finish:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),E(t),B}},catch:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var F=n.arg;E(t)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,U,t){return this.delegate={iterator:y(e),resultName:U,nextLoc:t},"next"===this.method&&(this.arg=void 0),B}},e}function B(e){return(B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,U,t,n,F,Q,l){try{var i=e[Q](l),d=i.value}catch(r){return void t(r)}i.done?U(d):Promise.resolve(d).then(n,F)}function R(e){return function(){var U=this,t=arguments;return new Promise((function(n,F){var Q=e.apply(U,t);function l(e){s(Q,n,F,l,i,"next",e)}function i(e){s(Q,n,F,l,i,"throw",e)}l(void 0)}))}}function c(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function V(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,b(n.key),n)}}function h(e,U,t){return U&&V(e.prototype,U),t&&V(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function u(e,U,t){return(U=b(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function Z(e,U){if("function"!=typeof U&&null!==U)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(U&&U.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),U&&J(e,U)}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function J(e,U){return(J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,U){return e.__proto__=U,e})(e,U)}function p(e,U){if(null==e)return{};var t,n,F=function(e,U){if(null==e)return{};var t,n,F={},Q=Object.keys(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||(F[t]=e[t]);return F}(e,U);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(F[t]=e[t])}return F}function W(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){var U=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,n=S(e);if(U){var F=S(this).constructor;t=Reflect.construct(n,arguments,F)}else t=n.apply(this,arguments);return function(e,U){if(U&&("object"==typeof U||"function"==typeof U))return U;if(void 0!==U)throw new TypeError("Derived constructors may only return object or undefined");return W(e)}(this,t)}}function E(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,U){if(e){if("string"==typeof e)return y(e,U);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?y(e,U):void 0}}function y(e,U){(null==U||U>e.length)&&(U=e.length);for(var t=0,n=new Array(U);t<U;t++)n[t]=e[t];return n}function N(e,U){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=k(e))||U&&e&&"number"==typeof e.length){t&&(e=t);var n=0,F=function(){};return{s:F,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(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 Q,l=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return l=e.done,e},e:function(e){i=!0,Q=e},f:function(){try{l||null==t.return||t.return()}finally{if(i)throw Q}}}}function b(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}var f=function(){function e(){c(this,e)}return h(e,null,[{key:"install",value:function(){if(window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame,!window.requestAnimationFrame){var e=Date.now();window.requestAnimationFrame=function(U){var t=Date.now(),n=Math.max(16.7-(t-e),0),F=setTimeout(U,n);return e=t+n,F}}window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}}]),e}(),v=function(){function e(){c(this,e),this.fps=0,this.isStoped=!0,this.ticks=[],this.isSupport=!0,this.maxFps=0,this.step=this._step.bind(this),this.rafId=null}return h(e,[{key:"_step",value:function(e){var U=this.ticks;if(U.unshift(e),U.length>10){var t=U.pop();t&&(this.fps=Math.floor(1e4/(e-t)),this.updateFpsInfo())}this.isStoped||(this.rafId=window.requestAnimationFrame(this.step))}},{key:"updateFpsInfo",value:function(){this.fps>this.maxFps&&(this.maxFps=this.fps)}},{key:"start",value:function(){void 0!==window.requestAnimationFrame&&(this.isStoped=!1,this.rafId=window.requestAnimationFrame(this.step))}},{key:"stop",value:function(){window.cancelAnimationFrame(this.rafId),this.isStoped=!0}}],[{key:"install",value:function(){f.install()}}]),e}(),T=function(){function e(){c(this,e),this.timeID=null,this.func=null}return h(e,[{key:"repeat",value:function(e,U){this.timeID=1,this.repeatInterval(e,U)}},{key:"repeatInterval",value:function(e,U){var t=this;this.timeID&&(null===this.func&&(this.func=e),this.func===e&&(this.timeID&&clearTimeout(this.timeID),this.timeID=null,this.timeID=setTimeout((function(){e(),t.repeatInterval(e,U)}),U)))}},{key:"clear",value:function(){clearTimeout(this.timeID),this.timeID=null}}]),e}(),C=D&&!function(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(U){return!0}}();function D(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}var g={length:C?localStorage.length:0,clear:function(e){try{for(var U=localStorage.length-1;U>=0;U--){var t=localStorage.key(U);0===t.indexOf(e)&&localStorage.removeItem(t)}}catch(n){}},getItem:function(e){try{return localStorage.getItem(e)}catch(U){return null}},key:function(e){try{return localStorage.key(e)}catch(U){return null}},setItem:function(e,U){try{localStorage.setItem(e,U)}catch(t){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(U){}},isSupport:C},X=function(){function e(){var U,t;c(this,e);var n=new Promise((function(e,n){U=e,t=n}));return n.resolve=U,n.reject=t,n}return h(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),x=function(){function e(){c(this,e)}return h(e,null,[{key:"parse",value:function(U){var t=e.parseXmlString(U);return null!==t?e.parseDOMChildren(t):null}},{key:"parseXmlString",value:function(e){if(void 0===e)return null;var U,t=new window.DOMParser;try{(U=t.parseFromString(e,"text/xml")).getElementsByTagNameNS("*","parsererror").length>0&&(U=null)}catch(n){U=null}return U}},{key:"parseDOMChildren",value:function(U,t){if(U.nodeType===Node.DOCUMENT_NODE){for(var n={},F=U.childNodes,Q=0;Q<F.length;Q++){var l=F[Q];l.nodeType===Node.ELEMENT_NODE&&(n=e.parseDOMChildren(l))}return n}if(U.nodeType===Node.ELEMENT_NODE){for(var i={__cnt:0},d=[],r=U.childNodes,a=0;a<r.length;a++){var o=r[a],B=e.getNodeLocalName(o);if(o.nodeType!==Node.COMMENT_NODE){var s="".concat(t,".").concat(B);if(i.__cnt++,null==i[B]){var R=e.parseDOMChildren(o,s);if("#text"!==B||/[^\s]/.test(R)){var c={};c[B]=R,d.push(c)}i[B]=R,e.toArrayAccessForm(i,B)}else{null!=i[B]&&(i[B]instanceof Array||(i[B]=[i[B]],e.toArrayAccessForm(i,B,s)));var V=e.parseDOMChildren(o,s);if("#text"!==B||/[^\s]/.test(V)){var h={};h[B]=V,d.push(h)}i[B][i[B].length]=V}}}for(var u=0;u<U.attributes.length;u++){var Z=U.attributes[u];i.__cnt++;var S=Z.value;i[Z.name]=S}var J=U.prefix;return null!=J&&""!==J&&(i.__cnt++,i.__prefix=J),null!=i["#text"]&&(i.__text=i["#text"],i.__text instanceof Array&&(i.__text=i.__text.join("\n")),delete i["#text"],delete i["#text_asArray"]),null!=i["#cdata-section"]&&(i.__cdata=i["#cdata-section"],delete i["#cdata-section"],delete i["#cdata-section_asArray"]),1===i.__cnt&&null!=i.__text?i=i.__text:1===i.__cnt&&null!=i.__cdata&&(i=i.__cdata),delete i.__cnt,i}if(U.nodeType===Node.TEXT_NODE||U.nodeType===Node.CDATA_SECTION_NODE)return U.nodeValue}},{key:"getNodeLocalName",value:function(e){var U=e.localName;return null==U&&(U=e.baseName),null!=U&&""!==U||(U=e.nodeName),U}},{key:"toArrayAccessForm",value:function(e,U){e[U]instanceof Array||(e[U]=[e[U]])}}]),e}();function L(e,U){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);U&&(n=n.filter((function(U){return Object.getOwnPropertyDescriptor(e,U).enumerable}))),t.push.apply(t,n)}return t}function G(e){for(var U=1;U<arguments.length;U++){var t=null!=arguments[U]?arguments[U]:{};U%2?L(Object(t),!0).forEach((function(U){H(e,U,t[U])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):L(Object(t)).forEach((function(U){Object.defineProperty(e,U,Object.getOwnPropertyDescriptor(t,U))}))}return e}function I(){I=function(){return e};var e={},U=Object.prototype,t=U.hasOwnProperty,n=Object.defineProperty||function(e,U,t){e[U]=t.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",l=F.asyncIterator||"@@asyncIterator",i=F.toStringTag||"@@toStringTag";function d(e,U,t){return Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[U]}try{d({},"")}catch(N){d=function(e,U,t){return e[U]=t}}function r(e,U,t,F){var Q=U&&U.prototype instanceof B?U:B,l=Object.create(Q.prototype),i=new E(F||[]);return n(l,"_invoke",{value:J(e,t,i)}),l}function a(e,U,t){try{return{type:"normal",arg:e.call(U,t)}}catch(N){return{type:"throw",arg:N}}}e.wrap=r;var o={};function B(){}function s(){}function R(){}var c={};d(c,Q,(function(){return this}));var V=Object.getPrototypeOf,h=V&&V(V(k([])));h&&h!==U&&t.call(h,Q)&&(c=h);var u=R.prototype=B.prototype=Object.create(c);function Z(e){["next","throw","return"].forEach((function(U){d(e,U,(function(e){return this._invoke(U,e)}))}))}function S(e,U){function F(n,Q,l,i){var d=a(e[n],e,Q);if("throw"!==d.type){var r=d.arg,o=r.value;return o&&"object"==typeof o&&t.call(o,"__await")?U.resolve(o.__await).then((function(e){F("next",e,l,i)}),(function(e){F("throw",e,l,i)})):U.resolve(o).then((function(e){r.value=e,l(r)}),(function(e){return F("throw",e,l,i)}))}i(d.arg)}var Q;n(this,"_invoke",{value:function(e,t){function n(){return new U((function(U,n){F(e,t,U,n)}))}return Q=Q?Q.then(n,n):n()}})}function J(e,U,t){var n="suspendedStart";return function(F,Q){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(t.method=F,t.arg=Q;;){var l=t.delegate;if(l){var i=p(l,t);if(i){if(i===o)continue;return i}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var d=a(e,U,t);if("normal"===d.type){if(n=t.done?"completed":"suspendedYield",d.arg===o)continue;return{value:d.arg,done:t.done}}"throw"===d.type&&(n="completed",t.method="throw",t.arg=d.arg)}}}function p(e,U){var t=U.method,n=e.iterator[t];if(void 0===n)return U.delegate=null,"throw"===t&&e.iterator.return&&(U.method="return",U.arg=void 0,p(e,U),"throw"===U.method)||"return"!==t&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+t+"' method")),o;var F=a(n,e.iterator,U.arg);if("throw"===F.type)return U.method="throw",U.arg=F.arg,U.delegate=null,o;var Q=F.arg;return Q?Q.done?(U[e.resultName]=Q.value,U.next=e.nextLoc,"return"!==U.method&&(U.method="next",U.arg=void 0),U.delegate=null,o):Q:(U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,o)}function W(e){var U={tryLoc:e[0]};1 in e&&(U.catchLoc=e[1]),2 in e&&(U.finallyLoc=e[2],U.afterLoc=e[3]),this.tryEntries.push(U)}function m(e){var U=e.completion||{};U.type="normal",delete U.arg,e.completion=U}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function k(e){if(e){var U=e[Q];if(U)return U.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,F=function U(){for(;++n<e.length;)if(t.call(e,n))return U.value=e[n],U.done=!1,U;return U.value=void 0,U.done=!0,U};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return s.prototype=R,n(u,"constructor",{value:R,configurable:!0}),n(R,"constructor",{value:s,configurable:!0}),s.displayName=d(R,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var U="function"==typeof e&&e.constructor;return!!U&&(U===s||"GeneratorFunction"===(U.displayName||U.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,d(e,i,"GeneratorFunction")),e.prototype=Object.create(u),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),d(S.prototype,l,(function(){return this})),e.AsyncIterator=S,e.async=function(U,t,n,F,Q){void 0===Q&&(Q=Promise);var l=new S(r(U,t,n,F),Q);return e.isGeneratorFunction(t)?l:l.next().then((function(e){return e.done?e.value:l.next()}))},Z(u),d(u,i,"Generator"),d(u,Q,(function(){return this})),d(u,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var U=Object(e),t=[];for(var n in U)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in U)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=k,E.prototype={constructor:E,reset:function(e){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(m),!e)for(var U in this)"t"===U.charAt(0)&&t.call(this,U)&&!isNaN(+U.slice(1))&&(this[U]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var U=this;function n(t,n){return l.type="throw",l.arg=e,U.next=t,n&&(U.method="next",U.arg=void 0),!!n}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],l=Q.completion;if("root"===Q.tryLoc)return n("end");if(Q.tryLoc<=this.prev){var i=t.call(Q,"catchLoc"),d=t.call(Q,"finallyLoc");if(i&&d){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}else if(i){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}}}},abrupt:function(e,U){for(var n=this.tryEntries.length-1;n>=0;--n){var F=this.tryEntries[n];if(F.tryLoc<=this.prev&&t.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=U&&U<=Q.finallyLoc&&(Q=null);var l=Q?Q.completion:{};return l.type=e,l.arg=U,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(l)},complete:function(e,U){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&U&&(this.next=U),o},finish:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),m(t),o}},catch:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var F=n.arg;m(t)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,U,t){return this.delegate={iterator:k(e),resultName:U,nextLoc:t},"next"===this.method&&(this.arg=void 0),o}},e}function M(e){return(M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Y(e,U,t,n,F,Q,l){try{var i=e[Q](l),d=i.value}catch(r){return void t(r)}i.done?U(d):Promise.resolve(d).then(n,F)}function w(e){return function(){var U=this,t=arguments;return new Promise((function(n,F){var Q=e.apply(U,t);function l(e){Y(Q,n,F,l,i,"next",e)}function i(e){Y(Q,n,F,l,i,"throw",e)}l(void 0)}))}}function K(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function j(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,le(n.key),n)}}function _(e,U,t){return U&&j(e.prototype,U),t&&j(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function H(e,U,t){return(U=le(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function z(e,U){if("function"!=typeof U&&null!==U)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(U&&U.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),U&&P(e,U)}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function P(e,U){return(P=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,U){return e.__proto__=U,e})(e,U)}function A(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function q(e,U,t){return(q=A()?Reflect.construct.bind():function(e,U,t){var n=[null];n.push.apply(n,U);var F=new(Function.bind.apply(e,n));return t&&P(F,t.prototype),F}).apply(null,arguments)}function $(e){var U="function"==typeof Map?new Map:void 0;return $=function(e){if(null===e||(t=e,-1===Function.toString.call(t).indexOf("[native code]")))return e;var t;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==U){if(U.has(e))return U.get(e);U.set(e,n)}function n(){return q(e,arguments,O(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),P(n,e)},$(e)}function ee(e,U){if(null==e)return{};var t,n,F=function(e,U){if(null==e)return{};var t,n,F={},Q=Object.keys(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||(F[t]=e[t]);return F}(e,U);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(F[t]=e[t])}return F}function Ue(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function te(e){var U=A();return function(){var t,n=O(e);if(U){var F=O(this).constructor;t=Reflect.construct(n,arguments,F)}else t=n.apply(this,arguments);return function(e,U){if(U&&("object"==typeof U||"function"==typeof U))return U;if(void 0!==U)throw new TypeError("Derived constructors may only return object or undefined");return Ue(e)}(this,t)}}function ne(){return ne="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,U,t){var n=function(e,U){for(;!Object.prototype.hasOwnProperty.call(e,U)&&null!==(e=O(e)););return e}(e,U);if(n){var F=Object.getOwnPropertyDescriptor(n,U);return F.get?F.get.call(arguments.length<3?e:t):F.value}},ne.apply(this,arguments)}function Fe(e,U){(null==U||U>e.length)&&(U=e.length);for(var t=0,n=new Array(U);t<U;t++)n[t]=e[t];return n}function Qe(e,U){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,U){if(e){if("string"==typeof e)return Fe(e,U);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Fe(e,U):void 0}}(e))||U&&e&&"number"==typeof e.length){t&&(e=t);var n=0,F=function(){};return{s:F,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(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 Q,l=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return l=e.done,e},e:function(e){i=!0,Q=e},f:function(){try{l||null==t.return||t.return()}finally{if(i)throw Q}}}}function le(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}function ie(){var e,U,t=new Promise((function(t,n){e=t,U=n}));return t.used=!1,t.resolve=function(){return t.used=!0,e.apply(void 0,arguments)},t.reject=function(){return t.used=!0,U.apply(void 0,arguments)},t}function de(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}var re,ae=function(){function e(){K(this,e)}return _(e,null,[{key:"start",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6||1===e.length&&e.start(0)<0?0:e.start(0):0}},{key:"end",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6?0:e.end(e.length-1):0}},{key:"get",value:function(e){if(e)try{return e.buffered}catch(U){}}},{key:"buffers",value:function(e,U){if(!e||!e.length)return[];for(var t=[],n=0,F=e.length;n<F;n++){var Q=t.length;if(Q&&U){var l=t[Q-1],i=l[1];if(e.start(n)-i<=U){var d=e.end(n);d>i&&(l[1]=d)}else t.push([e.start(n),e.end(n)])}else t.push([e.start(n),e.end(n)])}return t}},{key:"totalLength",value:function(e){return e&&e.length?e.reduce((function(e,U){return e+(U[1]-U[0])}),0):0}},{key:"info",value:function(U){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!U||!U.length)return{start:0,end:0,buffers:[]};for(var F=0,Q=0,l=0,i=0,d=0,r=0,a=0,o=e.buffers(U,n),B=0,s=o.length;B<s;B++){var R=o[B];if(t+n>=R[0]&&t<=R[1])F=R[0],Q=R[1],l=B;else{if(t+n<R[0]){i=R[0],d=R[1];break}t+n>R[1]&&(r=R[0],a=R[1])}}return{start:F,end:Q,index:l,buffers:o,nextStart:i,nextEnd:d,prevStart:r,prevEnd:a,currentTime:t,behind:t-F,remaining:Q?Q-t:0,length:e.totalLength&&e.totalLength(o)}}}]),e}(),oe="manifest",Be="network",se="network_timeout",Re="network_forbidden",ce="network_notfound",Ve="network_range_not_satisfiable",he="demux",ue="remux",Ze="media",Se="drm",Je="other",pe="runtime",We={FLV:"FLV",HLS:"HLS",MP4:"MP4",FMP4:"FMP4",MSE_ADD_SB:"MSE_ADD_SB",MSE_APPEND_BUFFER:"MSE_APPEND_BUFFER",MSE_OTHER:"MSE_OTHER",MSE_FULL:"MSE_FULL",OPTION:"OPTION",DASH:"DASH",LICENSE:"LICENSE",CUSTOM_LICENSE:"CUSTOM_LICENSE",MSE_HIJACK:"MSE_HIJACK",EME_HIJACK:"EME_HIJACK",SIDX:"SIDX",NO_CANPLAY_ERROR:"NO_CANPLAY_ERROR",BUFFERBREAK_ERROR:"BUFFERBREAK_ERROR",WAITING_TIMEOUT_ERROR:"WAITING_TIMEOUT_ERROR",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_CODEC_NOT_SUPPORTED:"MEDIA_ERR_CODEC_NOT_SUPPORTED",MEDIA_ERR_URL_EMPTY:"MEDIA_ERR_URL_EMPTY"},me=(H(re={},oe,{HLS:1100,DASH:1200}),H(re,Be,2100),H(re,se,2101),H(re,Re,2103),H(re,ce,2104),H(re,Ve,2116),H(re,he,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),H(re,ue,{FMP4:4100,MP4:4200}),H(re,Ze,{MEDIA_ERR_ABORTED:5101,MEDIA_ERR_NETWORK:5102,MEDIA_ERR_DECODE:5103,MEDIA_ERR_SRC_NOT_SUPPORTED:5104,MEDIA_ERR_CODEC_NOT_SUPPORTED:5105,MEDIA_ERR_URL_EMPTY:5106,MSE_ADD_SB:5200,MSE_APPEND_BUFFER:5201,MSE_OTHER:5202,MSE_FULL:5203,MSE_HIJACK:5204,EME_HIJACK:5301}),H(re,Se,{LICENSE:7100,CUSTOM_LICENSE:7200}),H(re,Je,8e3),H(re,pe,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),re),Ee=function(e){z(t,e);var U=te(t);function t(e,n,F,Q,l){var i;return K(this,t),(i=U.call(this,l||(null==F?void 0:F.message))).errorType=e===se?Be:e,i.originError=F,i.ext=Q,i.errorCode=me[e][n]||me[e],i.errorMessage=i.message,i.errorCode||(i.errorType=Je,i.errorCode=me[i.errorType]),i}return _(t,null,[{key:"create",value:function(e,U,n,F,Q){return e instanceof t?e:(e instanceof Error&&(n=e,e=""),e||(e=Je),new t(e,U,n,F,Q))}},{key:"network",value:function(e){var U;return new t(null!=e&&e.isTimeout?se:Be,null,e instanceof Error?e:null,{url:null==e?void 0:e.url,response:null==e?void 0:e.response,httpCode:null==e||null===(U=e.response)||void 0===U?void 0:U.status})}}]),t}($(Error)),ke="undefined"!=typeof window,ye={DEBUG:1,LOG:2,WARN:3,ERROR:4},Ne=["Boolean","Number","String","Undefined","Null","Date","Object"],be=function(){function e(U,t){K(this,e),this.name=U||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==t?void 0:t.logCacheLevel)||3,this.logMaxSize=(null==t?void 0:t.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return _(e,[{key:"debug",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[ye.DEBUG].concat(n)),e.disabled||(U=console).debug.apply(U,[this._prefix,fe()].concat(n))}},{key:"log",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[ye.LOG].concat(n)),e.disabled||(U=console).log.apply(U,[this._prefix,fe()].concat(n))}},{key:"warn",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[ye.WARN].concat(n)),e.disabled||(U=console).warn.apply(U,[this._prefix,fe()].concat(n))}},{key:"error",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[ye.ERROR].concat(n)),e.disabled||(U=console).error.apply(U,[this._prefix,fe()].concat(n))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var U="";try{for(var t=arguments.length,n=new Array(t>1?t-1:0),F=1;F<t;F++)n[F-1]=arguments[F];var Q=n.map((function(e){return Te(e)}));U=this._prefix+fe()+JSON.stringify(Q)}catch(i){return}if(e>=this.logCacheLevel&&(this.logSize+=U.length,this.logTextArray.push(U)),this.logSize>this.logMaxSize){var l=this.logTextArray.shift();this.logSize-=l.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var U;e.disabled||(console.group(this._prefix),(U=console).table.apply(U,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function fe(){return(new Date).toLocaleString()}function ve(e){if("object"!==M(e))return e;var U=Object.prototype.toString.call(e).slice(8,-1);switch(U){case"Array":case"Uint8Array":case"ArrayBuffer":return U+"["+e.length+"]";case"Object":return"{}";default:return U}}function Te(e,U,t){t||(t=1),U||(U=2);var n={};if(!e||"object"!==M(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!Ne.includes(F))return F;if(!(t>U)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(t===U?n[Q]=ve(e[Q]):"object"===M(e[Q])?n[Q]=Te(e[Q],U,t+1):n[Q]=e[Q]);return n}}H(be,"disabled",!0);var Ce=function(){try{return ke?window.MediaSource:null}catch(e){}}(),De="appendBuffer",ge="removeBuffer",Xe="updateDuration",xe=function(){function e(U,t){var n=this;K(this,e),H(this,"media",null),H(this,"mediaSource",null),H(this,"_openPromise",ie()),H(this,"_queue",Object.create(null)),H(this,"_sourceBuffer",Object.create(null)),H(this,"_mseFullFlag",{}),H(this,"_st",0),H(this,"_opst",0),H(this,"_logger",null),H(this,"_config",null),H(this,"_url",null),H(this,"_onSBUpdateEnd",(function(e){var U=n._queue[e];if(U){var t=U[0];if((null==t?void 0:t.opName)!==Xe&&U.shift(),t){var F=de()-n._opst;n._logger.debug("UpdateEnd",t.opName,F,t.context),t.promise.resolve({name:t.opName,context:t.context,costtime:F}),n._startQueue(e)}}})),H(this,"_onSBUpdateError",(function(e,U){var t=n._queue[e];if(t){var F=t[0];F&&(n._logger.error("UpdateError",e,F.opName,F.context),F.promise.reject(new Ee(Ze,We.MSE_APPEND_BUFFER,U)))}})),this._config=Object.assign(e.getDefaultConfig(),t),U&&this.bindMedia(U),this._logger=new be("MSE"),this._config.openLog&&be.enable()}var U,t,n;return _(e,[{key:"isOpened",get:function(){var e;return"open"===(null===(e=this.mediaSource)||void 0===e?void 0:e.readyState)}},{key:"url",get:function(){return this._url}},{key:"duration",get:function(){var e;return(null===(e=this.mediaSource)||void 0===e?void 0:e.duration)||-1}},{key:"isEnded",get:function(){return!!this.mediaSource&&"ended"===this.mediaSource.readyState}},{key:"isFull",value:function(U){return U?this._mseFullFlag[U]:this._mseFullFlag[e.VIDEO]}},{key:"updateDuration",value:function(e){var U=this,t=this.mediaSource&&this.mediaSource.duration>e;if(this.mediaSource&&this.mediaSource.duration>e){var n=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{n=Math.max(U.bufferEnd(e)||0,n)}catch(t){}})),e<n)return Promise.resolve()}return this._enqueueBlockingOp((function(){U.isEnded?U._logger.debug("[debug mse] setDuration ended"):U.mediaSource&&(U.mediaSource.duration=e,U._logger.debug("[debug mse] setDuration"))}),Xe,{isReduceDuration:t})}},{key:"open",value:function(){var e=this;if(this._openPromise.used&&!this.isOpened&&this.mediaSource){var U=this.mediaSource;U.addEventListener("sourceopen",(function t(){var n=de()-e._st;e._logger.debug("MSE OPEN",n),U.removeEventListener("sourceopen",t),e._openPromise.resolve({costtime:n})})),this._openPromise=ie()}return this._openPromise}},{key:"bindMedia",value:(n=w(I().mark((function e(U){var t,n,F=this;return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.mediaSource&&!this.media){e.next=3;break}return e.next=3,this.unbindMedia();case 3:if(U&&Ce){e.next=5;break}throw new Error("Param media or MediaSource does not exist");case 5:return this.media=U,t=this.mediaSource=new Ce,this._st=de(),n=function e(){var n=de()-F._st;F._logger.debug("MSE OPEN"),t.removeEventListener("sourceopen",e),URL.revokeObjectURL(U.src),F._openPromise.resolve({costtime:n})},t.addEventListener("sourceopen",n),this._url=URL.createObjectURL(t),U.src=this._url,e.abrupt("return",this._openPromise);case 13:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"unbindMedia",value:(t=w(I().mark((function e(){var U,t,n,F=this;return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._openPromise.used||this._openPromise.resolve(),U=this.mediaSource){if(Object.keys(this._queue).forEach((function(e){var U=F._queue[e];U&&U.forEach((function(e){return e.promise.resolve}))})),t=!!this.media&&this.media.readyState>=1,n="open"===U.readyState,t&&n)try{U.endOfStream()}catch(Q){}Object.keys(this._sourceBuffer).forEach((function(e){try{U.removeSourceBuffer(F._sourceBuffer[e])}catch(Q){}}))}if(this.media){this.media.removeAttribute("src");try{this.media.load()}catch(Q){}this.media=null}this.mediaSource=null,this._openPromise=ie(),this._queue=Object.create(null),this._sourceBuffer=Object.create(null);case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"createSource",value:function(e,U){if(!this._sourceBuffer[e]&&this.mediaSource){var t;try{t=this._sourceBuffer[e]=this.mediaSource.addSourceBuffer(U)}catch(n){throw new Ee(Ze,We.MSE_ADD_SB,n)}t.mimeType=U,t.addEventListener("updateend",this._onSBUpdateEnd.bind(this,e)),t.addEventListener("error",this._onSBUpdateError.bind(this,e))}}},{key:"changeType",value:function(e,U){var t=this,n=this._sourceBuffer[e];return this.mediaSource&&n&&n.mimeType!==U?"function"!=typeof n.changeType?Promise.reject():this._enqueueOp(e,(function(){n.changeType(U),n.mimeType=U,t._onSBUpdateEnd(e)}),"changeType",{mimeType:U}):Promise.resolve()}},{key:"createOrChangeSource",value:function(e,U){return this.createSource(e,U),this.changeType(e,U)}},{key:"append",value:function(e,U,t){var n=this;return U&&U.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var F;n.mediaSource&&!n.media.error&&(n._logger.debug("MSE APPEND START",t),n._opst=de(),null===(F=n._sourceBuffer[e])||void 0===F||F.appendBuffer(U))}),De,t):Promise.resolve()}},{key:"remove",value:function(e,U,t,n){var F=this,Q=!1;return this._mseFullFlag[e]&&(Q=!0),this._enqueueOp(e,(function(){if(F.mediaSource&&!F.media.error){var Q=F._sourceBuffer[e];U>=t||!Q?F._onSBUpdateEnd(e):(F._opst=de(),F._logger.debug("MSE REMOVE START",e,U,t,n),Q.remove(U,t))}}),ge,n,Q)}},{key:"clearBuffer",value:function(e,U){var t,n=this;return Object.keys(this._sourceBuffer).forEach((function(F){t=n._enqueueOp(F,(function(){if(n.mediaSource&&!n.media.error){var t=n._sourceBuffer[F];n._logger.debug("MSE clearBuffer START",F,e,U),t.remove(e,U)}}),ge)})),t||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,U=this;return Object.keys(this._sourceBuffer).forEach((function(t){e=U._enqueueOp(t,(function(){if(U.mediaSource&&!U.media.error){var e=U._sourceBuffer[t];U._logger.debug("MSE clearAllBuffer START",t),e.remove(0,ae.end(ae.get(e)))}}))})),e}},{key:"clearOpQueues",value:function(e,U){var t;this._logger.debug("MSE clearOpQueue START");var n=this._queue[e];if(U&&n)this._queue[e]=[];else if(n&&n[e]&&!(n.length<5)){var F=[];n.forEach((function(e){e.context&&e.context.isinit&&F.push(e)})),this._queue[e]=n.slice(0,2),F.length>0&&(t=this._queue[e]).push.apply(t,F)}}},{key:"endOfStream",value:function(e){var U=this;return this.mediaSource&&"open"===this.mediaSource.readyState?this._enqueueBlockingOp((function(){var t=U.mediaSource;t&&"open"===t.readyState&&(U._logger.debug("MSE endOfStream START"),e?t.endOfStream(e):t.endOfStream())}),"endOfStream"):Promise.resolve()}},{key:"setLiveSeekableRange",value:function(e,U){var t=this.mediaSource;e<0||U<e||null==t||!t.setLiveSeekableRange||"open"!==t.readyState||t.setLiveSeekableRange(e,U)}},{key:"getSourceBuffer",value:function(e){return this._sourceBuffer[e]}},{key:"buffered",value:function(e){return ae.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return ae.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return ae.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,U,t,n,F){var Q=this;if(!this.mediaSource)return Promise.resolve();var l=this._queue[e]=this._queue[e]||[],i={exec:U,promise:ie(),opName:t,context:n};return F?(l.splice(0,0,i),this._mseFullFlag[e]=!1,this._startQueue(e)):l.push(i),this.isOpened||this.isEnded?1===l.length&&this._startQueue(e):this._openPromise.then((function(){1===l.length&&Q._startQueue(e)})),i.promise}},{key:"_enqueueBlockingOp",value:(U=w(I().mark((function e(U,t,n){var F,Q,l=this;return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.mediaSource){e.next=2;break}return e.abrupt("return",Promise.resolve());case 2:if((F=Object.keys(this._sourceBuffer)).length){e.next=5;break}return e.abrupt("return",U());case 5:return Q=[],F.forEach((function(e){var U=l._queue[e],F=ie();Q.push(F),U.push({exec:function(){F.resolve()},promise:F,opName:t,context:n}),1===U.length&&l._startQueue(e)})),e.abrupt("return",Promise.all(Q).then((function(){try{return U()}finally{F.forEach((function(e){var U=l._queue[e],t=l._sourceBuffer[e];null==U||U.shift(),t&&t.updating||l._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return U.apply(this,arguments)})},{key:"_startQueue",value:function(e){var U=this._queue[e];if(U){var t=U[0];if(t&&!this._mseFullFlag[e])try{t.exec()}catch(n){n&&n.message&&n.message.indexOf("SourceBuffer is full")>=0?(this._mseFullFlag[e]=!0,this._logger.error("[MSE error], context,",t.context," ,name,",t.opName,",err,SourceBuffer is full"),t.promise.reject(new Ee(Ze,We.MSE_FULL,n))):(this._logger.error(n),t.promise.reject(new Ee(Ze,We.MSE_OTHER,n)),U.shift(),this._startQueue(e))}}}},{key:"setTimeoffset",value:function(e,U,t){var n=this;return this._enqueueOp(e,(function(){U<0&&(U+=.001),n._sourceBuffer[e].timestampOffset=U,n._onSBUpdateEnd(e)}),"setTimeoffset",t)}},{key:"abort",value:function(e,U){var t=this;return this.isOpened?this._enqueueOp(e,(function(){t._sourceBuffer[e].abort(),t._onSBUpdateEnd(e)}),"abort",U):Promise.resolve()}}],[{key:"getDefaultConfig",value:function(){return{openLog:!1}}},{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"';if(!Ce)return!1;try{return Ce.isTypeSupported(e)}catch(U){return this._logger.error(e,U),!1}}}]),e}();H(xe,"VIDEO","video"),H(xe,"AUDIO","audio");var Le="fetch",Ge="xhr",Ie="arraybuffer",Me="text",Ye="json",we=function(e){z(t,e);var U=te(t);function t(e,n,F,Q){var l;return K(this,t),H(Ue(l=U.call(this,Q)),"retryCount",0),H(Ue(l),"isTimeout",!1),H(Ue(l),"loaderType",Le),H(Ue(l),"startTime",0),H(Ue(l),"endTime",0),H(Ue(l),"options",{}),l.url=e,l.request=n,l.response=F,l}return _(t)}($(Error)),Ke=Object.prototype.toString;function je(e){if("[object Object]"!==Ke.call(e))return!1;var U=Object.getPrototypeOf(e);return null===U||U===Object.prototype}function _e(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var U="bytes="+e[0]+"-";return e[1]&&(U+=e[1]),U}}function He(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ze(e,U){if(e){if(!U)return e;var t,n=Object.keys(U).map((function(e){if(null!=(t=U[e]))return Array.isArray(t)?e+="[]":t=[t],t.map((function(U){var t;return t=U,"[object Date]"===Ke.call(t)?U=U.toISOString():function(e){return null!==e&&"object"===M(e)}(U)&&(U=JSON.stringify(U)),"".concat(He(e),"=").concat(He(U))})).join("&")})).filter(Boolean).join("&");if(n){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}}function Oe(e,U,t,n,F,Q,l,i,d,r,a){return F=null!=F?parseFloat(F):null,n=parseInt(n||"0",10),Number.isNaN(n)&&(n=0),{data:e,done:U,options:{range:d,vid:r,index:i,contentLength:n,age:F,startTime:Q,firstByteTime:l,endTime:Date.now(),priOptions:a},response:t}}function Pe(e,U){return Math.round(8*e*1e3/U/1024)}var Ae="error",qe="real_time_speed",$e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function eU(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var UU={exports:{}};!function(e){var U=Object.prototype.hasOwnProperty,t="~";function n(){}function F(e,U,t){this.fn=e,this.context=U,this.once=t||!1}function Q(e,U,n,Q,l){if("function"!=typeof n)throw new TypeError("The listener must be a function");var i=new F(n,Q||e,l),d=t?t+U:U;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],i]:e._events[d].push(i):(e._events[d]=i,e._eventsCount++),e}function l(e,U){0==--e._eventsCount?e._events=new n:delete e._events[U]}function i(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(t=!1)),i.prototype.eventNames=function(){var e,n,F=[];if(0===this._eventsCount)return F;for(n in e=this._events)U.call(e,n)&&F.push(t?n.slice(1):n);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},i.prototype.listeners=function(e){var U=t?t+e:e,n=this._events[U];if(!n)return[];if(n.fn)return[n.fn];for(var F=0,Q=n.length,l=new Array(Q);F<Q;F++)l[F]=n[F].fn;return l},i.prototype.listenerCount=function(e){var U=t?t+e:e,n=this._events[U];return n?n.fn?1:n.length:0},i.prototype.emit=function(e,U,n,F,Q,l){var i=t?t+e:e;if(!this._events[i])return!1;var d,r,a=this._events[i],o=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),o){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,U),!0;case 3:return a.fn.call(a.context,U,n),!0;case 4:return a.fn.call(a.context,U,n,F),!0;case 5:return a.fn.call(a.context,U,n,F,Q),!0;case 6:return a.fn.call(a.context,U,n,F,Q,l),!0}for(r=1,d=new Array(o-1);r<o;r++)d[r-1]=arguments[r];a.fn.apply(a.context,d)}else{var B,s=a.length;for(r=0;r<s;r++)switch(a[r].once&&this.removeListener(e,a[r].fn,void 0,!0),o){case 1:a[r].fn.call(a[r].context);break;case 2:a[r].fn.call(a[r].context,U);break;case 3:a[r].fn.call(a[r].context,U,n);break;case 4:a[r].fn.call(a[r].context,U,n,F);break;default:if(!d)for(B=1,d=new Array(o-1);B<o;B++)d[B-1]=arguments[B];a[r].fn.apply(a[r].context,d)}}return!0},i.prototype.on=function(e,U,t){return Q(this,e,U,t,!1)},i.prototype.once=function(e,U,t){return Q(this,e,U,t,!0)},i.prototype.removeListener=function(e,U,n,F){var Q=t?t+e:e;if(!this._events[Q])return this;if(!U)return l(this,Q),this;var i=this._events[Q];if(i.fn)i.fn!==U||F&&!i.once||n&&i.context!==n||l(this,Q);else{for(var d=0,r=[],a=i.length;d<a;d++)(i[d].fn!==U||F&&!i[d].once||n&&i[d].context!==n)&&r.push(i[d]);r.length?this._events[Q]=1===r.length?r[0]:r:l(this,Q)}return this},i.prototype.removeAllListeners=function(e){var U;return e?(U=t?t+e:e,this._events[U]&&l(this,U)):(this._events=new n,this._eventsCount=0),this},i.prototype.off=i.prototype.removeListener,i.prototype.addListener=i.prototype.on,i.prefixed=t,i.EventEmitter=i,e.exports=i}(UU);var tU=eU(UU.exports),nU=2097152,FU=function(e){z(n,e);var U,t=te(n);function n(){var e;return K(this,n),H(Ue(e=t.call(this)),"_abortController",null),H(Ue(e),"_timeoutTimer",null),H(Ue(e),"_reader",null),H(Ue(e),"_response",null),H(Ue(e),"_aborted",!1),H(Ue(e),"_index",-1),H(Ue(e),"_range",null),H(Ue(e),"_receivedLength",0),H(Ue(e),"_running",!1),H(Ue(e),"_logger",null),H(Ue(e),"_vid",""),H(Ue(e),"_onProcessMinLen",0),H(Ue(e),"_onCancel",null),H(Ue(e),"_priOptions",null),e}return _(n,[{key:"load",value:function(e){var U,t=this,n=e.url,F=e.vid,Q=e.timeout,l=e.responseType,i=e.onProgress,d=e.index,r=e.onTimeout,a=e.onCancel,o=e.range,B=e.transformResponse,s=e.request,R=e.params,c=e.logger,V=e.method,h=e.headers,u=e.body,Z=e.mode,S=e.credentials,J=e.cache,p=e.redirect,W=e.referrer,m=e.referrerPolicy,E=e.onProcessMinLen,k=e.priOptions;this._logger=c,this._aborted=!1,this._onProcessMinLen=E,this._onCancel=a,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=d,this._range=o||[0,0],this._vid=F||n,this._priOptions=k||{};var y={method:V,headers:h,body:u,mode:Z,credentials:S,cache:J,redirect:p,referrer:W,referrerPolicy:m,signal:null===(U=this._abortController)||void 0===U?void 0:U.signal},N=!1;clearTimeout(this._timeoutTimer),n=ze(n,R);var b=_e(o);b&&(h=s?s.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&h instanceof Headers?h.append("Range",b):h.Range=b),Q&&(this._timeoutTimer=setTimeout((function(){if(N=!0,t.cancel(),r){var e=new we(n,y,null,"timeout");e.isTimeout=!0,r(e,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})}}),Q));var f=Date.now();return this._logger.debug("[fetch load start], index,",d,",range,",o),new Promise((function(e,U){fetch(s||n,s?void 0:y).then(function(){var F=w(I().mark((function F(Q){var r,a,s,R;return I().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(t._timeoutTimer),t._response=Q,!t._aborted&&t._running){F.next=4;break}return F.abrupt("return");case 4:if(B&&(Q=B(Q,n)||Q),Q.ok){F.next=7;break}throw new we(n,y,Q,"bad network response");case 7:if(r=Date.now(),l!==Me){F.next=15;break}return F.next=11,Q.text();case 11:a=F.sent,t._running=!1,F.next=37;break;case 15:if(l!==Ye){F.next=22;break}return F.next=18,Q.json();case 18:a=F.sent,t._running=!1,F.next=37;break;case 22:if(!i){F.next=29;break}return t.resolve=e,t.reject=U,t._loadChunk(Q,i,f,r),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:a=F.sent,a=new Uint8Array(a),t._running=!1,s=Date.now()-f,R=Pe(a.byteLength,s),t.emit(qe,{speed:R,len:a.byteLength,time:s,vid:t._vid,index:t._index,range:t._range,priOptions:t._priOptions});case 37:t._logger.debug("[fetch load end], index,",d,",range,",o),e(Oe(a,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),f,r,d,o,t._vid,t._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(t._timeoutTimer),t._running=!1,t._aborted&&!N||((e=e instanceof we?e:new we(n,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=f,e.endTime=Date.now(),e.isTimeout=N,e.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},U(e))}))}))}},{key:"cancel",value:(U=w(I().mark((function e(){return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(U){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return U.apply(this,arguments)})},{key:"_loadChunk",value:function(e,U,t,n){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new we(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(nU),this._writeIdx=0);var l,i,d,r=this._reader=e.body.getReader(),a=function(){var Q=w(I().mark((function Q(){var o,B,s,R,c,V,h,u;return I().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return i=Date.now(),Q.prev=1,Q.next=4,r.read();case 4:l=Q.sent,d=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),d=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(B=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,s=B+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,U(void 0,!1,{range:[s,s],vid:F._vid,index:F._index,startTime:i,endTime:d,st:t,firstByteTime:n,priOptions:F._priOptions},e),Q.abrupt("return");case 19:R=l.value?l.value.byteLength:0,F._receivedLength+=R,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",s,", end,",B+F._receivedLength,", done,",l.done),F._onProcessMinLen>0?F._writeIdx+R>=F._onProcessMinLen||l.done?((c=new Uint8Array(F._writeIdx+R)).set(F._cache.slice(0,F._writeIdx),0),R>0&&c.set(l.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",l.done,",len,",c.byteLength,", writeIdx,",F._writeIdx)):R>0&&F._writeIdx+R<nU?(F._cache.set(l.value,F._writeIdx),F._writeIdx+=R,F._logger.debug("【fetchLoader,onProgress cache】,len,",R,", writeIdx,",F._writeIdx)):R>0&&(V=new Uint8Array(F._writeIdx+R+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+R+2048,", datalen,",R,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),R>0&&V.set(l.value,F._writeIdx),F._writeIdx+=R,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",R,", writeIdx,",F._writeIdx)):c=l.value,(c&&c.byteLength>0||l.done)&&U(c,l.done,{range:[F._range[0]+F._receivedLength-(c?c.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:i,endTime:d,st:t,firstByteTime:n,priOptions:F._priOptions},e),l.done?(h=Date.now()-t,u=Pe(F._receivedLength,h),F.emit(qe,{speed:u,len:F._receivedLength,time:h,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",l.done),F.resolve(Oe(l,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),t,n,F._index,F._range,F._vid,F._priOptions))):a();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();a()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),n}(tU);var QU=function(e){z(t,e);var U=te(t);function t(){var e;return K(this,t),H(Ue(e=U.call(this)),"_xhr",null),H(Ue(e),"_aborted",!1),H(Ue(e),"_timeoutTimer",null),H(Ue(e),"_range",null),H(Ue(e),"_receivedLength",0),H(Ue(e),"_url",null),H(Ue(e),"_onProgress",null),H(Ue(e),"_index",-1),H(Ue(e),"_headers",null),H(Ue(e),"_currentChunkSizeKB",384),H(Ue(e),"_timeout",null),H(Ue(e),"_xhr",null),H(Ue(e),"_withCredentials",null),H(Ue(e),"_startTime",-1),H(Ue(e),"_loadCompleteResolve",null),H(Ue(e),"_loadCompleteReject",null),H(Ue(e),"_runing",!1),H(Ue(e),"_logger",!1),H(Ue(e),"_vid",""),H(Ue(e),"_responseType",void 0),H(Ue(e),"_credentials",void 0),H(Ue(e),"_method",void 0),H(Ue(e),"_transformResponse",void 0),H(Ue(e),"_firstRtt",void 0),H(Ue(e),"_onCancel",null),H(Ue(e),"_priOptions",null),e}return _(t,[{key:"load",value:function(e){var U=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=ze(e.url,e.params);var t=Date.now();return new Promise((function(e,t){U._loadCompleteResolve=e,U._loadCompleteReject=t,U._startLoad()})).catch((function(e){if(clearTimeout(U._timeoutTimer),U._runing=!1,!U._aborted)throw(e=e instanceof we?e:new we(U._url,U._request)).startTime=t,e.endTime=Date.now(),e.options={index:U._index,vid:U._vid,priOptions:U._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===Ie&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var U=1024*this._currentChunkSizeKB,t=this._range[0]+this._receivedLength,n=this._range[1];U<this._range[1]-t&&(n=t+U),e=[t,n],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var U=this;try{this._startTime=Date.now();var t=this._xhr=new XMLHttpRequest;t.open(this._method||"GET",this._url,!0),t.responseType=this._responseType,this._timeout&&(t.timeout=this._timeout),t.withCredentials=this._withCredentials,t.onload=this._onLoad.bind(this),t.onreadystatechange=this._onReadyStatechange.bind(this),t.onerror=function(e){var t,n,F;U._running=!1;var Q=new we(U._url,U._request,null==e||null===(t=e.currentTarget)||void 0===t?void 0:t.response,"xhr.onerror.status:"+(null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions},U._loadCompleteReject(Q)},t.ontimeout=function(e){U.cancel();var t=new we(U._url,U._request,{status:408},"timeout");U._onTimeout&&(t.isTimeout=!0,U._onTimeout(t,{index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions})),t.options={index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions},U._loadCompleteReject(t)};var n=this._headers||{},F=_e(e);F&&(n.Range=F),n&&Object.keys(n).forEach((function(e){t.setRequestHeader(e,n[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),t.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var U,t=e.target.status;if(t<200||t>299){var n=new we(this._url,null,G(G({},e.target.response),{},{status:t}),"bad response,status:"+t);return n.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(n)}var F,Q=null,l=!1,i=(null===(U=this._range)||void 0===U?void 0:U.length)>0?this._range[0]:0;if(this._responseType===Ie){var d,r=new Uint8Array(e.target.response);if(F=i+this._receivedLength,r&&r.byteLength>0){this._receivedLength+=r.byteLength;var a=Date.now()-this._startTime,o=Pe(this._receivedLength,a);this.emit(qe,{speed:o,len:this._receivedLength,time:a,vid:this._vid,index:this._index,range:[F,i+this._receivedLength],priOptions:this._priOptions})}Q=r,l=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",i+this._receivedLength,",dataLen,",r?r.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",l)}else l=!0,Q=e.target.response;var B={ok:t>=200&&t<300,status:t,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(B=this._transformResponse(B,this._url)||B),this._onProgress&&this._onProgress(Q,l,{index:this._index,vid:this._vid,range:[F,i+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},B),l?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(Oe(this._onProgress?null:Q,l,B,B.headers["content-length"],B.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,ne(O(t.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var U,t={},n=Qe(e.getAllResponseHeaders().trim().split("\r\n"));try{for(n.s();!(U=n.n()).done;){var F=U.value.split(": ");t[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){n.e(Q)}finally{n.f()}return t}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),t}(tU),lU=["retry","retryDelay","onRetryError","transformError"],iU=function(){function e(U,t){K(this,e),this.promise=ie(),this.alive=!!t.onProgress,!t.logger&&(t.logger=new be("Loader")),this._loaderType=U,this._loader=U===Le&&window.fetch?new FU:new QU,this._config=t,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=t.retryCheckFunc,this._logger=t.logger}var U;return _(e,[{key:"exec",value:function(){var e=this,U=this._config,t=U.retry,n=U.retryDelay,F=U.onRetryError,Q=U.transformError,l=ee(U,lU),i=function(){var U=w(I().mark((function U(){var d,r,a;return I().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return U.prev=0,U.next=3,e._loader.load(l);case 3:d=U.sent,e.promise.resolve(d),U.next=27;break;case 7:if(U.prev=7,U.t0=U.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",U.t0),!e._canceled){U.next=13;break}return U.abrupt("return");case 13:if(U.t0.loaderType=e._loaderType,U.t0.retryCount=e._retryCount,r=U.t0,Q&&(r=Q(r)||r),F&&e._retryCount>0&&F(r,e._retryCount,{index:l.index,vid:l.vid,range:l.range,priOptions:l.priOptions}),e._retryCount++,a=!0,e._retryCheckFunc&&(a=e._retryCheckFunc(U.t0)),!(a&&e._retryCount<=t)){U.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",l.range),e._retryTimer=setTimeout(i,n),U.abrupt("return");case 26:e.promise.reject(r);case 27:case"end":return U.stop()}}),U,null,[[0,7]])})));return function(){return U.apply(this,arguments)}}();return i(),this.promise}},{key:"cancel",value:(U=w(I().mark((function e(){return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function dU(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(U){return setTimeout(U,e)}))}var rU=function(e){z(n,e);var U,t=te(n);function n(e){var U;return K(this,n),H(Ue(U=t.call(this,e)),"type",Le),H(Ue(U),"_queue",[]),H(Ue(U),"_alive",[]),H(Ue(U),"_currentTask",null),H(Ue(U),"_config",void 0),U._config=function(e){return G({loaderType:Le,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:Me,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}(e),U._config.loaderType!==Ge&&FU.isSupported()||(U.type=Ge),U.log=e.logger,U}return _(n,[{key:"isFetch",value:function(){return this.type===Le}},{key:"load",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?t=e:t.url=e||t.url||this._config.url,(t=Object.assign({},this._config,t)).params&&(t.params=Object.assign({},t.params)),t.headers&&je(t.headers)&&(t.headers=Object.assign({},t.headers)),t.body&&je(t.body)&&(t.body=Object.assign({},t.body)),t.transformRequest&&(t=t.transformRequest(t)||t),t.logger=this.log;var n=new iU(this.type,t);return n.loader.on(qe,(function(e){U.emit(qe,e)})),this._queue.push(n),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),n.promise}},{key:"cancel",value:(U=w(I().mark((function e(){var U;return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&U.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(U);case 6:return e.next=8,dU();case 8:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var U=this._currentTask.exec().catch((function(e){}));U&&"function"==typeof U.finally&&U.finally((function(){var U,t;null!==(U=e._currentTask)&&void 0!==U&&U.alive&&(null===(t=e._alive)||void 0===t?void 0:t.length)>0&&(e._alive=e._alive.filter((function(U){return U&&U!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return FU.isSupported()}}]),n}(tU),aU="undefined"!=typeof window&&(window.location.search.indexOf("log=true")>-1||!!g.getItem("abrdebug")||!!g.getItem("playerlog"));var oU=new be("Logger",{logCacheLevel:ye.DEBUG});aU&&be.enable();var BU={},sU=["abr"],RU=function(e){sU.includes(e)?BU[e]=aU?function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];(U=console).log.apply(U,["[".concat(e,"]"),(new Date).toLocaleString()].concat(n))}:function(){}:BU[e]=function(){for(var U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];oU.log.apply(oU,["[".concat(e,"]")].concat(t))}};for(var cU in{log:"log",network:"network",abr:"abr",encrypt:"encrypt",segment:"segment",definition:"definition",content:"content",mse:"mse",media:"media",time:"time",preload:"preload",gap:"gap"})RU(cU);function VU(){return oU}var hU=BU,uU=1e3,ZU=6e3,SU="danger_d_speed",JU={"x-cache":"x_cache","x-response-sinfo":"server_ip"},pU={"360p":.45,"480p":.75,"720p":1.6,"1080p":5,"2k":7.5,"4k":12.5},WU="player_start",mU="wasm_start",EU="wasm_ready",kU="init_finished",yU="core_start",NU="start_play",bU="error_handler",fU="next_finished",vU=0,TU=1,CU=2,DU="media_exception",gU="task_request_error",XU=1,xU={MAIN:"0",BACK:"1"},LU={INIT:"init",ERR:"error"},GU="currentDashType",IU="cdn",MU="pcdn";function YU(){var e=window.navigator.userAgent,U=e.indexOf("MSIE "),t=e.indexOf("Trident/");return U>0||t>0}function wU(){return window.navigator.userAgent.toLowerCase().indexOf("qqbrowser")>-1}function KU(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function jU(){return navigator.userAgent.indexOf("Edge")>0}function _U(){var e,U=KU(),t=YU(),n=(e=window.navigator.userAgent,!(window.location.search.indexOf("firefox_dash=true")>-1||g.getItem("firefox_dash"))&&e.toLowerCase().indexOf("firefox")>-1),F=jU();return U||t||n||F}function HU(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":B(WebAssembly))&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(U){console.log(U)}return!1}function zU(){var e=window.MediaSource=window.MediaSource||window.WebKitMediaSource;return e&&"function"==typeof e.isTypeSupported}var OU=['video/mp4; codecs="av01.0.01M.08,mp4a.40.5"'];function PU(e){if(!zU())return!1;for(var U=0;U<e.length;U++){var t=e[U];if(MediaSource.isTypeSupported(t))return!0}return!1}function AU(){return!!navigator.requestMediaKeySystemAccess&&!_U()}var qU=Object.freeze({__proto__:null,AV1MimeTypes:OU,checkWebAssemblySupport:HU,getDrmServerUrl:function(e){return new Promise((function(U){HU()&&zU()&&navigator.requestMediaKeySystemAccess||U(void 0);KU();var t=navigator.userAgent.toLowerCase().indexOf("chrome")>-1,n=jU();t&&!wU()?navigator.requestMediaKeySystemAccess("com.widevine.alpha",[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'}]}]).then((function(){U("https://".concat(e,"/video/drm/v1/widevine?aid=32&kid="))}),(function(){U(void 0)})):U(n?"https://".concat(e,"/video/drm/v1/playready?aid=32&kid="):void 0)}))},isAV1Supported:function(){return PU(OU)},isCodecSupported:PU,isEMESupported:AU,isEncryptSupported:function(){return HU()&&zU()&&!YU()&&!wU()},isSupported:function(){return HU()&&zU()&&!YU()}}),$U={};function et(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}$U.ArrayBufferToString=function(e){for(var U="",t=new Uint8Array(e),n=0;n<t.length;n++)U+=String.fromCharCode(t[n]);return U},$U.StringToArrayBuffer=function(e){for(var U=new ArrayBuffer(e.length),t=new Uint8Array(U),n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return U},$U.Base64ToHex=function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(U){for(var n=[],F=0;F<t.length;F++)n.push(t.charCodeAt(F));return new Uint8Array(n).buffer}for(var Q="",l=0;l<t.length;l++)Q+="0".concat(t.charCodeAt(l).toString(16)).substr(-2);return Q},$U.HexToBase64=function(e){for(var U="",t=0;t<e.length;t+=2)U+=String.fromCharCode(parseInt(e.substr(t,2),16));return window.btoa(U).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")},$U.padStart=function(e,U,t){for(var n=String(t),F=U>>0,Q=Math.ceil(F/n.length),l=[],i=String(e);Q--;)l.push(n);return l.join("").substring(0,F-i.length)+i},$U.durationConvert=function(e){var U=0,t=0,n=0;return(e=e.slice(e.indexOf("PT")+2)).indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(U=parseFloat(e.slice(0,e.indexOf("H"))),t=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M"))),n=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")<0?(U=parseFloat(e.slice(0,e.indexOf("H"))),t=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M")))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(t=parseFloat(e.slice(0,e.indexOf("M"))),n=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")<0&&e.indexOf("S")>-1?(U=parseFloat(e.slice(0,e.indexOf("H"))),n=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("S")))):e.indexOf("H")<0&&e.indexOf("M")<0&&e.indexOf("S")>-1?n=parseFloat(e.slice(0,e.indexOf("S"))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")<0&&(t=parseFloat(e.slice(0,e.indexOf("M")))),3600*U+60*t+n},$U.preFixInterge=function(e,U){return(Array(U).join(0)+e).slice(-U)},$U.toHex=function(){for(var e=[],U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];return t.forEach((function(U){e.push($U.padStart(Number(U).toString(16),2,0))})),e},$U.sum=function(){for(var e=0,U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];return t.forEach((function(U){e+=U})),e},$U.toUTF8=function(e){for(var U=encodeURIComponent(e),t=unescape(U),n=new Uint8Array(t.length),F=0;F<t.length;++F)n[F]=t.charCodeAt(F);return n.buffer},$U.fromHex=function(e){for(var U=new Uint8Array(e.length/2),t=0;t<e.length;t+=2)U[t/2]=parseInt(e.substr(t,2),16);return U},$U.fromCharCode=function(e){for(var U="",t=0;t<e.length;t+=16e3){var n=e.subarray(t,t+16e3);U+=String.fromCharCode.apply(null,n)}return U},$U.toBase64=function(e,U){var t=$U.fromCharCode(e);U=void 0===U||U;var n=window.btoa(t).replace(/\+/g,"-").replace(/\//g,"_");return U?n:n.replace(/=*$/,"")},$U.str2hex=function(e){if(""===e)return"";for(var U=[],t=0;t<e.length;t++)U.push(e.charCodeAt(t));return U},$U.bufferToString=function(e){return"0".concat(Number(e).toString(16)).slice(-2).toUpperCase()},$U.stringToBuffer=function(e){for(var U=[],t=0;t<e.length;t+=2)U.push(parseInt(e[t]+e[t+1],16));return new Uint8Array(U)},$U.round=function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Number(e.toFixed(U))},$U.isSogou=function(){return window.navigator.userAgent.toLowerCase().indexOf("metasr")>-1},$U.isEdge=function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("edge")>-1||e.indexOf("edg/")>-1},$U.offInDestroy=function(e,U,t,n){e.once(n,(function F(){e.off(U,t),e.off(n,F)}))},$U.on=function(e,U,t,n){if(n)e.on(U,t),$U.offInDestroy(e,U,t,n);else{e.on(U,(function n(F){t(F),e.off(U,n)}))}},$U.once=function(e,U,t,n){if(n)e.once(U,t),$U.offInDestroy(e,U,t,n);else{e.once(U,(function n(F){t(F),e.off(U,n)}))}},$U.promisePolyfill=function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var U=function(U){return Promise.resolve(e()).then(U)};return this.then((function(e){return U((function(){return e}))}),(function(e){return U((function(){return Promise.reject(e)}))}))}}.finally)},$U.transformHeaders=function(e,U){var t=Object.assign({},e);return Object.keys(U).forEach((function(n){var F=U[n];e&&e[n]&&(t[F]=e[n],delete t[n])})),t},$U.generateUniqueKey=function(e){var U=e.vid,t=e.start,n=e.end,F=e.mediaType,Q=e.definition,l=e.codecType,i=e.format;return t=t||0,n=n||0,l=l||"h264",i=i||"dash",U&&F?Q?"".concat(U,"#").concat(F,"#").concat(Q,"#").concat(t,"#").concat(n,"#").concat(l,"#").concat(i):"".concat(U,"#").concat(F,"#").concat(t,"#").concat(n,"#").concat(l,"#").concat(i):null},$U.getDefinition=function(e){if(!e)return null;var U=e.split("#");return U.length>2?U[2]:null},$U.exchangeListUrl=function(e){if(e&&0!==e.length)for(var U=0;U<e.length;U++)$U.exchangeUrl(e[U])},$U.exchangeUrl=function(e){if(e&&e.main_url&&e.backup_url_1){var U=e.main_url,t=e.backup_url_1,n=U.split("?");2===n.length&&-1===t.indexOf("?")?(e.main_url="".concat(t,"?").concat(n[1]),e.backup_url_1=n[0]):(e.main_url=t,e.backup_url_1=U)}},$U.validateFragment=function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(e instanceof ArrayBuffer){try{var t=new Uint8Array(e,4,4),n=String.fromCharCode.apply(null,t);if(2===U.length){var F=U[1]-U[0]+1;if(!(e.byteLength===F))return}if("moof"!==n&&"styp"!==n&&"ftyp"!==n)return!1}catch(Q){return!1}return!0}return!1},$U.validateUrlRange=function(e,U){if((e=e||[]).length>0&&U)for(var t=0;t<e.length;t++){var n=e[t];if(/([0-9.\-A-Za-z]+)/.test(n)&&U.indexOf(n)>-1)return!0}return!1},$U.nowTime=function(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}},$U.getBitrateItem=function(e,U,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=U,Q=$U.getSelectorList(e,t);return F.getSuitableBitrate?F.getSuitableBitrate(Q,n):F.bitRateAdapter.select(Q)},$U.getSelectorList=function(e,U){for(var t=e.dynamic_video_list,n=[],F=0;F<t.length;F++){var Q=t[F];n.push({bitrate:Q.bitrate,definition:Q.definition,duration:U})}return n},$U.typeof=et,$U.getHostFromUrl=function(e){if("String"!==et(e)||!e)return"";var U=e.split("/"),t="";return U.length>3&&U[2]&&(t=U[2]),t};var Ut=$U,tt="PRELOAD_NEXT",nt="PRELOAD_SEG_DONE",Ft="PREPARE",Qt="IDLE",lt="FINISH",it={VIDEO:0,AUDIO:1,MIXED:2},dt=1,rt=0,at=1,ot=function(e){Z(t,e);var U=m(t);function t(e,n,F,Q,l){var i;c(this,t),(i=U.call(this)).state=Ft,i.options=e||{},i.logger=e.logger||function(){},i._preloadManager=n,i.player=n.player;var d=F.handlers,r=F.predictInst,a=F.readyPromise;return i._predictInst=r,i._handlers=d,i._predictInstReadyPromise=a,i._toLoadList=[],i.retryCount=0,i._cachedHandler=Q,i._cachedDataHandler=l,i.cnt=0,i}return h(t,[{key:"start",value:function(){var e=this,U=new X;return this._handlers.start(this.options).then((function(t){t.onObtain().then((function(n){e._predictInstReadyPromise.then((function(){e._predictInst.updateMediaInfos(n);var F=e._predictInst.preloadPredict(e.options),Q=e._predictInst.cachedData;e._cachedDataHandler(Object.assign({vid:e.options.vid},{data:Q}));var l=Object.assign(F,e.options);t.onTransform(l).then((function(t){e._toLoadList=t,U.resolve(t)}))}))}))})).catch((function(){U.reject(new Error("preload unit start error"))})),U}},{key:"preloadSeg",value:function(){var e=this;if(0===this._toLoadList.length)return this.state=lt,void this.emit(nt,!0);this.state="PRELOADING";var U=this._toLoadList.shift();this._handlers.onRequest(U,(function(t){var n=Object.assign({},U.extData,t);e._cachedHandler(n)})).then((function(){e.state=Qt,e.emit(nt)})).catch((function(){e.requestError(),e.emit(nt,!1)}))}},{key:"requestError",value:function(){this.retryCount++,this.state=Qt,this.retryCount>=10&&(this.state=lt),this.emit("ONE_STEP_DONE"),this.logger("preload request error")}},{key:"cancelLoading",value:function(){this._toLoadList=[]}},{key:"destroy",value:function(){this.removeAllListeners()}}]),t}(tU);var Bt=function(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}();function st(e,U){U&&e.then((function(e){U(null,e)}),(function(e){U(e)}))}function Rt(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var ct={},Vt="readonly",ht="readwrite";function ut(e){var U=ct[e.name],t={};t.promise=new Promise((function(e,U){t.resolve=e,t.reject=U})),U.deferredOperations.push(t),U.dbReady?U.dbReady=U.dbReady.then((function(){return t.promise})):U.dbReady=t.promise}function Zt(e,U){return new Promise((function(t,n){if(ct[e.name]=ct[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!U)return t(e.db);ut(e),e.db.close()}var F=[e.name];U&&F.push(e.version);var Q=null==Bt?void 0:Bt.open.apply(Bt,F);U&&(Q.onupgradeneeded=function(U){var t=Q.result;try{t.createObjectStore(e.storeName)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'.concat(e.name,'" has been upgraded from version ').concat(U.oldVersion," to\n version ").concat(U.newVersion,', but the storage "').concat(e.storeName,'" already exists.'))}}),Q.onerror=function(e){e.preventDefault(),n(Q.error)},Q.onsuccess=function(){t(Q.result),function(e){var U=ct[e.name].deferredOperations.pop();if(U)U.resolve(),U.promise}(e)}}))}function St(e){return Zt(e,!1)}function Jt(e){return Zt(e,!0)}function pt(e,U){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),n=e.version<e.db.version,F=e.version>e.db.version;if(n&&(e.version!==U&&console.warn('The database "'.concat(e.name,"\" can't be downgraded from version ").concat(e.db.version," to\n version ").concat(e.version,".")),e.version=e.db.version),F||t){if(t){var Q=e.db.version+1;Q>e.version&&(e.version=Q)}return!0}return!1}function Wt(e){ut(e);for(var U=ct[e.name],t=U.forages,n=0;n<t.length;n++){var F=t[n];F._dbInfo.db&&(F._dbInfo.db.close(),F._dbInfo.db=null)}return e.db=null,St(e).then((function(U){return e.db=U,pt(e)?Jt(e):U})).then((function(n){e.db=U.db=n;for(var F=0;F<t.length;F++)t[F]._dbInfo.db=n})).catch((function(U){throw function(e,U){var t=ct[e.name].deferredOperations.pop();if(t)t.reject(U),t.promise}(e,U),U}))}function mt(e,U,t,n){void 0===n&&(n=1);try{var F=e.db.transaction(e.storeName,U);t(null,F)}catch(Q){if(n>0&&(!e.db||"InvalidStateError"===Q.name||"NotFoundError"===Q.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===Q.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),Jt(e)})).then((function(){return Wt(e).then((function(){mt(e,U,t,n-1)}))})).catch(t);t(Q)}}var Et=function(){function e(){c(this,e)}return h(e,[{key:"ready",value:function(){return this._ready}},{key:"_initStorage",value:function(e){var U=this;U._defaultConfig=e;var t={db:null,name:"",version:""};if(e)for(var n in e)t[n]=e[n];var F=ct[t.name];F||(F={forages:[],db:null,dbReady:null,deferredOperations:[]},ct[t.name]=F),F.forages.push(U),U._initReady||(U._initReady=U.ready,U._ready=U._fullyReady);var Q=[];function l(){return Promise.resolve()}for(var i=0;i<F.forages.length;i++){var d=F.forages[i];d!==U&&Q.push(d._initReady().catch(l))}var r=F.forages.slice(0);return U._ready=Promise.all(Q).then((function(){return t.db=F.db,St(t)})).then((function(e){return t.db=e,pt(t,U._defaultConfig.version)?Jt(t):e})).then((function(e){t.db=F.db=e,U._dbInfo=t;for(var n=0;n<r.length;n++){var Q=r[n];Q!==U&&(Q._dbInfo.db=t.db,Q._dbInfo.version=t.version)}})),U._ready}},{key:"probeSupport",get:function(){return function(){try{if(null==Bt||!Bt.open)return!1;var e=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),U="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||U)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(t){return!1}}()}},{key:"getItem",value:function(e,U){var t=this;e=Rt(e);var n=new Promise((function(U,n){t.ready().then((function(){mt(t._dbInfo,Vt,(function(F,Q){if(F)return n(F);try{var l=Q.objectStore(t._dbInfo.storeName).get(e);l.onsuccess=function(){var e=l.result;void 0===e&&(e=null),U(e)},l.onerror=function(){n(l.error)}}catch(i){n(i)}}))})).catch(n)}));return st(n,U),n}},{key:"setItem",value:function(e,U,t){var n=this;e=Rt(e);var F=new Promise((function(t,F){n.ready().then((function(){return n._dbInfo,U})).then((function(U){mt(n._dbInfo,ht,(function(Q,l){if(Q)return F(Q);try{var i=l.objectStore(n._dbInfo.storeName);null===U&&(U=void 0);var d=i.put(U,e);l.oncomplete=function(){void 0===U&&(U=null),t(U)},l.onabort=l.onerror=function(){var e=d.error?d.error:d.transaction.error;F(e)}}catch(r){F(r)}}))})).catch(F)}));return st(F,t),F}},{key:"removeItem",value:function(e,U){var t=this;e=Rt(e);var n=new Promise((function(U,n){t.ready().then((function(){mt(t._dbInfo,ht,(function(F,Q){if(F)return n(F);try{var l=Q.objectStore(t._dbInfo.storeName).delete(e);Q.oncomplete=function(){U()},Q.onerror=function(){n(l.error)},Q.onabort=function(){var e=l.error?l.error:l.transaction.error;n(e)}}catch(i){n(i)}}))})).catch(n)}));return st(n,U),n}},{key:"clear",value:function(e){var U=this,t=new Promise((function(e,t){U.ready().then((function(){mt(U._dbInfo,ht,(function(n,F){if(n)return t(n);try{var Q=F.objectStore(U._dbInfo.storeName).clear();F.oncomplete=function(){e()},F.onabort=F.onerror=function(){var e=Q.error?Q.error:Q.transaction.error;t(e)}}catch(l){t(l)}}))})).catch(t)}));return st(t,e),t}},{key:"length",value:function(e){var U=this,t=new Promise((function(e,t){U.ready().then((function(){mt(U._dbInfo,Vt,(function(n,F){if(n)return t(n);try{var Q=F.objectStore(U._dbInfo.storeName).count();Q.onsuccess=function(){e(Q.result)},Q.onerror=function(){t(Q.error)}}catch(l){t(l)}}))})).catch(t)}));return st(t,e),t}},{key:"all",value:function(e){var U=this,t=new Promise((function(e,t){U.ready().then((function(){mt(U._dbInfo,Vt,(function(n,F){if(n)return t(n);try{var Q=F.objectStore(U._dbInfo.storeName).openCursor(),l=[];Q.onsuccess=function(){var U=Q.result;U?(l.push({key:U.key,value:U.value}),U.continue()):e(l)},Q.onerror=function(){t(Q.error)}}catch(i){t(i)}}))})).catch(t)}));return st(t,e),t}},{key:"_fullyReady",value:function(e){var U=this,t=U._initReady().then((function(){var e=ct[U._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return function(e,U,t){"function"==typeof U&&e.then(U),"function"==typeof t&&e.catch(t)}(t,e,e),t}}]),e}(),kt=function(){function e(){c(this,e)}return h(e,[{key:"_initStorage",value:function(e){var U=e.name,t=e.storeName,n="".concat(U,"_").concat(t);return this.key=n,window[n]&&"object"===B(window[n])||(window[n]={}),this.store=window[n],Promise.resolve()}},{key:"getItem",value:function(e,U){var t=this.store[e];return void 0===t&&(t=null),this._internalPromise(U,t)}},{key:"setItem",value:function(e,U,t){return this.store[e]=U,this._internalPromise(t)}},{key:"removeItem",value:function(e,U){return delete this.store[e],this._internalPromise(U)}},{key:"clear",value:function(e){return this.store={},window[this.key]={},this._internalPromise(e)}},{key:"length",value:function(e){var U=Object.keys(this.store).length;return this._internalPromise(e,U)}},{key:"_internalPromise",value:function(e,U){var t=U?Promise.resolve(U):Promise.resolve();return st(t,e),t}},{key:"all",value:function(e){for(var U=[],t=Object.keys(this.store),n=0;n<t.length;n++){var F=t[n];U.push({key:F,value:this.store[F]})}return this._internalPromise(e,U)}},{key:"probeSupport",value:function(){return!0}}]),e}(),yt={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},Nt="__PRE_CACHE__KEYS",bt=function(){function e(U,t){c(this,e);var n=t===dt?kt:Et;this._driver=new n,this._driver._initStorage(yt).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!U||U<=0?200:U,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new X,this.init()}return h(e,[{key:"getCachedKeysFromLocal",value:function(){var e=g.getItem(Nt);if(e)for(var U=e.split("|"),t=0;t<U.length;t++){var n=U[t],F=this._getCacheKeyInfos(n),Q=F.time,l=F.cachedKey;this._allCachedKeys[l]=1,this._allCachedTimeKeys[l]=Q}}},{key:"_getCacheKeyInfos",value:function(e){var U,t=e.split("$");return 2===t.length&&(U=t[0],e=t[1]),{time:U,cachedKey:e}}},{key:"writeCachedKeysToLocal",value:function(e){var U=[];this._allCachedKeys={},this._allCachedTimeKeys={};for(var t=0;t<e.length;t++){var n=e[t].key,F=this._getCacheKeyInfos(n),Q=F.time,l=F.cachedKey;this._allCachedKeys[l]=1,this._allCachedTimeKeys[l]=Q,U.push(n)}var i=U.join("|");g.setItem(Nt,i)}},{key:"init",value:function(){var e=this;this._driver.setItem("test","test").then((function(){})).catch((function(){e._hasIdbForbidden=!0})).finally((function(){e._driver.removeItem("test").catch((function(){})),e._hasIdbForbidden&&(e._driver=new kt,e._driver._initStorage(yt)),e._getAll(),e._readyPromise.resolve()}))}},{key:"_getAll",value:function(){var e=this;this._driver.all().then((function(U){e._cachedLength=U.length;var t=U.length-e._maxCache,n=U;if(t>0){var F=U.slice(0,t);n=U.slice(t);for(var Q=0;Q<F.length;Q++)e.removeItem(F[Q].key).then((function(){}))}e.writeCachedKeysToLocal(n)})).catch((function(){}))}},{key:"getItem",value:function(e,U){if(!this.hasItem(e))return Promise.resolve(!1);var t=this._getTimeKey(e).timeKey;return this._driver.getItem(t,U)}},{key:"setItem",value:function(e,U,t){var n=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var F=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=F;var Q=this._genTimeKey(e,F);return t=t?function(){n._getAll(),t()}:function(){n._getAll()},this._driver.setItem(Q,U,t)}},{key:"_getTimeKey",value:function(e){var U=this._allCachedTimeKeys[e],t=e;return U&&(t=this._genTimeKey(e,U)),{timeKey:t,time:U}}},{key:"_genTimeKey",value:function(e,U){return"".concat(U).concat("$").concat(e)}},{key:"removeItem",value:function(e,U){var t=this._getTimeKey(e).timeKey,n=this._driver.removeItem(t,U);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],n}},{key:"hasItem",value:function(e){return!!this._allCachedKeys[e]}},{key:"clear",value:function(e){return this._driver.clear(e)}},{key:"length",value:function(e){return this._driver.length(e)}},{key:"setMaxCache",value:function(e){"number"==typeof e&&e>0&&(this._maxCache=e)}}]),e}(),ft=function(e){Z(t,e);var U=m(t);function t(e,n){var F,Q=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return c(this,t),(F=U.call(this))._preloadDataList=[],F._currentPreloadInst=null,F.autoPreload=e.autoPreload||!1,F._autoCheck=e.autoCheck||{enable:!1,interval:1e3},F._onPreloadNext=F.onPreloadNextReady.bind(W(F)),F.on(tt,F._onPreloadNext),F._preloaderConfigs={},F.update(e,n,Q),F._cacheInst=new bt(e.preloadMaxCacheCount,e.preloadCacheType),F._preloadCacheProgress={},F._ptag_=!0,F._cachedDatas={},F._taskIntervalId=null,F}return h(t,[{key:"startCheckTask",value:function(){var e=this,U=this._autoCheck,t=this._preloadDataList;(this._taskIntervalId&&(window.clearTimeout(this._taskIntervalId),this._taskIntervalId=null),0!==t.length)&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=window.setTimeout((function(){e.startCheckTask()}),U.interval||1e3))}},{key:"stopCheckTask",value:function(){this._taskIntervalId&&(window.clearTimeout(this._taskIntervalId),this._taskIntervalId=null)}},{key:"_checkIfCanPreload",value:function(){if(null==this._currentPreloadInst&&this._preloadDataList.length>0){var e=this._preloadDataList[0].data;if(e.payload){var U=this._getPreloaderKey(e),t=this._preloaderConfigs[U];if(null!=t&&t.handlers){var n=t.handlers.checkIfCanPreload;return n?n(e):(this.stopCheckTask(),!1)}return console.warn("need to set vtype, no preloader",e),this.stopCheckTask(),!1}}return!1}},{key:"_getPreloaderKey",value:function(e){return e.vtype?e.vtype:"DEFAULT"}},{key:"update",value:function(e,U,t){if(!t)throw new Error("PreloaderManager predictInst is null");var n=this._getPreloaderKey(e);this._preloaderConfigs[n]={predictInst:t,readyPromise:t.init(e),handlers:U}}},{key:"cachedDatas",get:function(){return this._cachedDatas}},{key:"onCacheSegment",value:function(e){var U=e.vid,t=e.format,n=e.cacheKey,F=e.total,Q=e.loaded,l=e.isInitSegment,i=e.mediaType,d=this.getProgressCacheKey(U,t,i),r=this._preloadCacheProgress[d];r||(r=this._preloadCacheProgress[d]={}),r[n]={total:F,loaded:Q,isInitSegment:l}}},{key:"onCachePredict",value:function(e){var U=e.vid,t=e.data;U&&t&&(this._cachedDatas[U]=t)}},{key:"getProgressCacheKey",value:function(e,U,t){return"".concat(e,"-").concat(U,"-").concat(t)}},{key:"onPreloadNextReady",value:function(){this.onPreloadNext()}},{key:"onPreloadSegDone",value:function(){this.autoPreload&&this.emit(tt)}},{key:"onPreloadNext",value:function(){var e=this;if(null==this._currentPreloadInst&&this._preloadDataList.length>0){if(this._preloadDataList.length>0){var U=this._preloadDataList.shift(),t=null==U?void 0:U.data;if(null!=t&&t.payload){var n=this._getPreloaderKey(t),F=this._preloaderConfigs[n];if(!F)return void console.warn("need to set vtype, no preloader",t);this._currentPreloadInst=new ot(t,this,F,(function(U){e.onCacheSegment(U)}),(function(U){e.onCachePredict(U)})),this._currentPreloadInst.on(nt,this.onPreloadSegDone.bind(this)),this._currentPreloadInst.start().then((function(){e._currentPreloadInst.preloadSeg()})).catch((function(){e._currentPreloadInst=null}))}}}else null!=this._currentPreloadInst&&(this._currentPreloadInst.state===Qt?this._currentPreloadInst.preloadSeg():this._currentPreloadInst.state===lt?(this._currentPreloadInst.destroy(),this._currentPreloadInst=null):this._currentPreloadInst.state===Ft&&(this._currentPreloadInst.cnt++,this._currentPreloadInst.cnt>2&&(this._currentPreloadInst.destroy(),this._currentPreloadInst=null)))}},{key:"addDashPreloader",value:function(e){e.data&&(this._preloadDataList.push(e),this.sort(this._preloadDataList),this.autoPreload&&this.emit(tt),this._autoCheck.enable&&!this._taskIntervalId&&this.startCheckTask())}},{key:"_addDashPreloader",value:function(e){e.data&&this._preloadDataList.push(e)}},{key:"addDashPreloaderList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.sort(e);for(var U=0;U<e.length;U++)this._addDashPreloader(e[U]);this._autoCheck.enable&&!this._taskIntervalId&&this.startCheckTask()}},{key:"sort",value:function(e){e.sort((function(e,U){return void 0===e.order&&void 0===e.order||"number"==typeof e.order&&"number"==typeof U.order&&e.order<U.order?-1:1}))}},{key:"destroy",value:function(){this.off(tt,this._onPreloadNext)}},{key:"cancelLoading",value:function(){this._currentPreloadInst&&(this._currentPreloadInst.cancelLoading(),this._currentPreloadInst=null),this._preloadDataList=[]}},{key:"preloadCacheProgress",value:function(e){var U=e.vid,t=e.format,n=e.mediaType,F=e.prelaodType,Q=e.bitrate,l=e.set_duration,i=e.set_size,d=e.media_type,r=e.start_time,a=this.getProgressCacheKey(U,t,n),o=this._preloadCacheProgress[a];if(o){for(var B=Object.values(o),s=0,R=0,c=0,V=0,h=0,u=0;u<B.length;u++){var Z=B[u];Z.isInitSegment&&(s=Z.total,c=Z.loaded,V=Z.loaded===Z.total?rt:at),R+=Z.total,h+=Z.loaded}return{media_type:d,preload_type:F,stream_bitrate:Q,header_size:s,content_total_size:R,start_time:r||-1,state_info:{set_duration:l,set_size:i,current_header_download_size:c,current_content_download_size:h,header_download_state:V,content_download_state:h===R?rt:at}}}return null}},{key:"getPreloadTaskInfos",value:function(){}},{key:"getItem",value:function(e,U){return this._cacheInst.getItem(e,U)}},{key:"setItem",value:function(e,U,t){return this._cacheInst.setItem(e,U,t)}},{key:"removeItem",value:function(e,U){return this.removeItem(e,U)}}],[{key:"getInstance",value:function(e,U){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,F=t.GLOBAL_KEY+(e.globalKey?e.globalKey:""),Q=window[F];if(null!=Q&&Q._ptag_)return Q.update(e,U,n),Q;var l=new t(e,U,n);return window[F]=l,l}}]),t}(tU),vt=ft;vt.GLOBAL_KEY="__preloadcontext__";var Tt,Ct,Dt=vt,gt=function(e){Z(t,e);var U=m(t);function t(e){var n;return c(this,t),(n=U.call(this)).options=e,n.promisePolyfill(),n.before(),n.check(),n._preloadManager=Dt.getInstance(e,n.handlers,n.predictInst),n.loadingTasks=[],n}return h(t,[{key:"promisePolyfill",value:function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var U=function(U){return Promise.resolve(e()).then(U)};return this.then((function(e){return U((function(){return e}))}),(function(e){return U((function(){return Promise.reject(e)}))}))}}.finally)}},{key:"before",value:function(){throw new Error("need")}},{key:"check",value:function(){if(!this.handlers)throw new Error("handlers null");if(!this.handlers.start||!this.handlers.onRequest)throw new Error("handlers callback null");if(!this.predictInst)throw new Error("predictInst null");if(!this.predictInst.__p__)throw new Error("predictInst need extends predictbase")}},{key:"preloadNext",value:function(){this._preloadManager.emit(tt)}},{key:"preloadManager",get:function(){return this._preloadManager}},{key:"start",value:function(){throw new Error("start need implment, return Promise")}},{key:"cancelLoading",value:function(){for(var e=0;e<this.loadingTasks.length;e++)try{var U=this.loadingTasks[e];"function"==typeof U.cancel&&U.cancel()}catch(t){}this.loadingTasks=[],this._preloadManager.cancelLoading()}},{key:"addTasker",value:function(e){this.loadingTasks.push(e)}},{key:"removeTasker",value:function(e){var U=this;setTimeout((function(){for(var t=U.loadingTasks.length-1;t>-1;t--)if(U.loadingTasks[t]===e){U.loadingTasks.splice(t,1);break}}))}},{key:"addDashPreloader",value:function(e){this._preloadManager.addDashPreloader(e)}},{key:"addDashPreloaderList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this._preloadManager.addDashPreloaderList(e)}}]),t}(tU),Xt=function(){function e(){c(this,e),this.bandwidth2item={},this._mediaInfos=void 0,this.__p__=!0}return h(e,[{key:"init",value:function(){throw new Error("init func not implement, return promise")}},{key:"preloadPredict",value:function(e){throw new Error("preloadPredict error: ".concat(e))}},{key:"updateMediaInfos",value:function(e){if(this._mediaInfos=e,this.bandwidth2item={},this.dynamic_video=e.dynamic_video_list,this.dynamic_video.length>0)for(var U=0;U<this.dynamic_video.length;U++){var t=this.dynamic_video[U],n=(null==t?void 0:t.bitrate)||(null==t?void 0:t.bandwidth);this.bandwidth2item[n]=t}}},{key:"getIdx",value:function(e,U){var t=0;return e.forEach((function(e,n){e.definition===U&&(t=n)})),t}},{key:"cachedData",get:function(){return null}}]),e}(),xt={MP4:"MP4",DASH:"DASH",HLS:"HLS"},Lt={exports:{}},Gt={exports:{}},It=function(e){return null!=e},Mt=It,Yt={object:!0,function:!0,undefined:!0},wt=function(e){return!!Mt(e)&&hasOwnProperty.call(Yt,typeof e)},Kt=function(e){if(!wt(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(U){return!1}},jt=function(e){if("function"!=typeof e)return!1;if(!hasOwnProperty.call(e,"length"))return!1;try{if("number"!=typeof e.length)return!1;if("function"!=typeof e.call)return!1;if("function"!=typeof e.apply)return!1}catch(U){return!1}return!Kt(e)},_t=/^\s*class[\s{/}]/,Ht=Function.prototype.toString;var zt,Ot,Pt,At,qt,$t,en,Un,tn=function(e){return null!=e};function nn(){return At?Pt:(At=1,Pt=(Ct?Tt:(Ct=1,Tt=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}))()?Object.keys:function(){if(Ot)return zt;Ot=1;var e=tn,U=Object.keys;return zt=function(t){return U(e(t)?Object(t):t)}}())}var Fn,Qn,ln,dn,rn="function"==typeof(Qn=Object.assign)&&(Qn(Fn={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),Fn.foo+Fn.bar+Fn.trzy==="razdwatrzy")?Object.assign:function(){if(Un)return en;Un=1;var e=nn(),U=function(){if($t)return qt;$t=1;var e=tn;return qt=function(U){if(!e(U))throw new TypeError("Cannot use null or undefined");return U}}(),t=Math.max;return en=function(n,F){var Q,l,i,d=t(arguments.length,2);for(n=Object(U(n)),i=function(e){try{n[e]=F[e]}catch(U){Q||(Q=U)}},l=1;l<d;++l)e(F=arguments[l]).forEach(i);if(void 0!==Q)throw Q;return n},en}(),an=tn,on=Array.prototype.forEach,Bn=Object.create,sn="razdwatrzy";var Rn="function"==typeof sn.contains&&!0===sn.contains("dwa")&&!1===sn.contains("foo")?String.prototype.contains:function(){if(dn)return ln;dn=1;var e=String.prototype.indexOf;return ln=function(U){return e.call(this,U,arguments[1])>-1},ln}(),cn=It,Vn=function(e){return!!jt(e)&&!_t.test(Ht.call(e))},hn=rn,un=function(e){var U=Bn(null);return on.call(arguments,(function(e){an(e)&&function(e,U){var t;for(t in e)U[t]=e[t]}(Object(e),U)})),U},Zn=Rn,Sn=Gt.exports=function(e,U){var t,n,F,Q,l;return arguments.length<2||"string"!=typeof e?(Q=U,U=e,e=null):Q=arguments[2],cn(e)?(t=Zn.call(e,"c"),n=Zn.call(e,"e"),F=Zn.call(e,"w")):(t=F=!0,n=!1),l={value:U,configurable:t,enumerable:n,writable:F},Q?hn(un(Q),l):l};Sn.gs=function(e,U,t){var n,F,Q,l;return"string"!=typeof e?(Q=t,t=U,U=e,e=null):Q=arguments[3],cn(U)?Vn(U)?cn(t)?Vn(t)||(Q=t,t=void 0):t=void 0:(Q=U,U=t=void 0):U=void 0,cn(e)?(n=Zn.call(e,"c"),F=Zn.call(e,"e")):(n=!0,F=!1),l={get:U,set:t,configurable:n,enumerable:F},Q?hn(un(Q),l):l};var Jn,pn,Wn,mn,En,kn,yn,Nn,bn,fn,vn,Tn,Cn,Dn,gn,Xn,xn,Ln,Gn=Gt.exports;Jn=Lt,pn=Lt.exports,fn=Gn,vn=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},Tn=Function.prototype.apply,Cn=Function.prototype.call,Dn=Object.create,gn=Object.defineProperty,Xn=Object.defineProperties,xn=Object.prototype.hasOwnProperty,Ln={configurable:!0,enumerable:!1,writable:!0},mn=function(e,U){var t,n;return vn(U),n=this,Wn.call(this,e,t=function(){En.call(n,e,t),Tn.call(U,this,arguments)}),t.__eeOnceListener__=U,this},kn=function(e){var U,t,n,F,Q;if(xn.call(this,"__ee__")&&(F=this.__ee__[e]))if("object"==typeof F){for(t=arguments.length,Q=new Array(t-1),U=1;U<t;++U)Q[U-1]=arguments[U];for(F=F.slice(),U=0;n=F[U];++U)Tn.call(n,this,Q)}else switch(arguments.length){case 1:Cn.call(F,this);break;case 2:Cn.call(F,this,arguments[1]);break;case 3:Cn.call(F,this,arguments[1],arguments[2]);break;default:for(t=arguments.length,Q=new Array(t-1),U=1;U<t;++U)Q[U-1]=arguments[U];Tn.call(F,this,Q)}},yn={on:Wn=function(e,U){var t;return vn(U),xn.call(this,"__ee__")?t=this.__ee__:(t=Ln.value=Dn(null),gn(this,"__ee__",Ln),Ln.value=null),t[e]?"object"==typeof t[e]?t[e].push(U):t[e]=[t[e],U]:t[e]=U,this},once:mn,off:En=function(e,U){var t,n,F,Q;if(vn(U),!xn.call(this,"__ee__"))return this;if(!(t=this.__ee__)[e])return this;if("object"==typeof(n=t[e]))for(Q=0;F=n[Q];++Q)F!==U&&F.__eeOnceListener__!==U||(2===n.length?t[e]=n[Q?0:1]:n.splice(Q,1));else n!==U&&n.__eeOnceListener__!==U||delete t[e];return this},emit:kn},Nn={on:fn(Wn),once:fn(mn),off:fn(En),emit:fn(kn)},bn=Xn({},Nn),Jn.exports=pn=function(e){return null==e?Dn(bn):Xn(Object(e),Nn)},pn.methods=yn;var In=eU(Lt.exports),Mn=h((function e(U,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};c(this,e);var F="number"==typeof t?t:void 0;n.playerVersion="3.5.23",this.errorType=U,this.errorCode=F||me[U][t]||me[U],this.ext=n}));Mn.DUR_PARSE_ERROR=9201,Mn.SEG_PARSE_ERROR=9202,Mn.INIT_SEGMENT_ERROR=9203,Mn.MPD_INIT_ERROR=9204,Mn.SEGMENT_CONTENT_ERROR=9205;var Yn,wn=Mn,Kn=h((function e(U,t,n,F,Q,l){c(this,e),this.type=U,this.codecs=t,this.visualEntryBox=n,this.configurationBox=F,this.types=Q,this.logCodeType=l})),jn="avc",_n="av1",Hn="hevc",zn="bytevc1",On=(u(Yn={},jn,new Kn("avc","avc1.64001E","avc1","avcC",["h264"],"h264")),u(Yn,_n,new Kn("av1","av01.0.08M.08","av01","av1C",["av1"],"av1")),u(Yn,Hn,new Kn("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),u(Yn,zn,new Kn("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),Yn);function Pn(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function An(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,eF(n.key),n)}}function qn(e,U,t){return U&&An(e.prototype,U),t&&An(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function $n(e,U,t){return(U=eF(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function eF(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}var UF="video",tF="audio",nF="avc",FF="hevc",QF="aac",lF="g7110a",iF="g7110m",dF=function(){function e(){Pn(this,e),$n(this,"id",1),$n(this,"type",UF),$n(this,"codecType",nF),$n(this,"pid",-1),$n(this,"hvcC",void 0),$n(this,"codec",""),$n(this,"timescale",0),$n(this,"formatTimescale",0),$n(this,"sequenceNumber",0),$n(this,"baseMediaDecodeTime",0),$n(this,"baseDts",0),$n(this,"duration",0),$n(this,"warnings",[]),$n(this,"samples",[]),$n(this,"pps",[]),$n(this,"sps",[]),$n(this,"vps",[]),$n(this,"fpsNum",0),$n(this,"fpsDen",0),$n(this,"sarRatio",[]),$n(this,"width",0),$n(this,"height",0),$n(this,"nalUnitSize",4),$n(this,"present",!1),$n(this,"isVideoEncryption",!1),$n(this,"isAudioEncryption",!1),$n(this,"isVideo",!0),$n(this,"kid",null),$n(this,"pssh",null),$n(this,"ext",void 0)}return qn(e,[{key:"reset",value:function(){this.sequenceNumber=this.width=this.height=this.fpsDen=this.fpsNum=this.duration=this.baseMediaDecodeTime=this.timescale=0,this.codec="",this.present=!1,this.pid=-1,this.pps=[],this.sps=[],this.vps=[],this.sarRatio=[],this.samples=[],this.warnings=[],this.hvcC=null}},{key:"exist",value:function(){return!!(this.pps.length&&this.sps.length&&this.codec)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isVideoEncryption}}]),e}(),rF=function(){function e(){Pn(this,e),$n(this,"id",2),$n(this,"type",tF),$n(this,"codecType",QF),$n(this,"pid",-1),$n(this,"codec",""),$n(this,"sequenceNumber",0),$n(this,"sampleDuration",0),$n(this,"timescale",0),$n(this,"formatTimescale",0),$n(this,"baseMediaDecodeTime",0),$n(this,"duration",0),$n(this,"warnings",[]),$n(this,"samples",[]),$n(this,"baseDts",0),$n(this,"sampleSize",16),$n(this,"sampleRate",0),$n(this,"channelCount",0),$n(this,"objectType",0),$n(this,"sampleRateIndex",0),$n(this,"config",[]),$n(this,"present",!1),$n(this,"isVideoEncryption",!1),$n(this,"isAudioEncryption",!1),$n(this,"kid",null),$n(this,"ext",void 0)}return qn(e,[{key:"reset",value:function(){this.sequenceNumber=0,this.timescale=0,this.sampleDuration=0,this.sampleRate=0,this.channelCount=0,this.baseMediaDecodeTime=0,this.present=!1,this.pid=-1,this.codec="",this.samples=[],this.config=[],this.warnings=[]}},{key:"exist",value:function(){return!!(this.sampleRate&&this.channelCount&&this.codec&&this.codecType===QF)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}}]),e}(),aF="undefined"!=typeof window,oF=aF&&navigator.userAgent.toLocaleLowerCase(),BF=aF&&oF.includes("firefox"),sF=aF&&oF.includes("android"),RF=function(){function e(){Pn(this,e)}return qn(e,null,[{key:"getRateIndexByRate",value:function(U){return e.FREQ.indexOf(U)}},{key:"parseADTS",value:function(U,t){for(var n=U.length,F=0;F+2<n&&(255!==U[F]||240!=(246&U[F+1]));)F++;if(!(F>=n)){var Q=F,l=[],i=(60&U[F+2])>>>2,d=e.FREQ[i];if(!d)throw new Error("Invalid sampling index: ".concat(i));for(var r,a,o=1+((192&U[F+2])>>>6),B=(1&U[F+2])<<2|(192&U[F+3])>>>6,s=e._getConfig(i,B,o),R=s.config,c=s.codec,V=0,h=e.getFrameDuration(d);F+7<n;)if(255===U[F]&&240==(246&U[F+1])){if(n-F<(a=(3&U[F+3])<<11|U[F+4]<<3|(224&U[F+5])>>5))break;r=2*(1&~U[F+1]),l.push({pts:t+V*h,data:U.subarray(F+7+r,F+a)}),V++,F+=a}else F++;return{skip:Q,remaining:F>=n?void 0:U.subarray(F),frames:l,samplingFrequencyIndex:i,sampleRate:d,objectType:o,channelCount:B,codec:c,config:R,originCodec:"mp4a.40.".concat(o)}}}},{key:"parseAudioSpecificConfig",value:function(U){if(U.length){var t=U[0]>>>3,n=(7&U[0])<<1|U[1]>>>7,F=(120&U[1])>>>3,Q=e.FREQ[n];if(Q){var l=e._getConfig(n,F,t);return{samplingFrequencyIndex:n,sampleRate:Q,objectType:t,channelCount:F,config:l.config,codec:l.codec,originCodec:"mp4a.40.".concat(t)}}}}},{key:"getFrameDuration",value:function(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}},{key:"_getConfig",value:function(e,U,t){var n,F,Q=[];return BF?e>=6?(n=5,F=e-3):(n=2,F=e):sF?(n=2,F=e):(n=2===t||5===t?t:5,F=e,e>=6?F=e-3:1===U&&(n=2,F=e)),Q[0]=n<<3,Q[0]|=(14&e)>>1,Q[1]=(1&e)<<7,Q[1]|=U<<3,5===n&&(Q[1]|=(14&F)>>1,Q[2]=(1&F)<<7,Q[2]|=8,Q[3]=0),{config:Q,codec:"mp4a.40.".concat(n)}}},{key:"getSilentFrame",value:function(e,U){if("mp4a.40.2"===e){if(1===U)return new Uint8Array([0,200,0,128,35,128]);if(2===U)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===U)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===U)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===U)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===U)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===U)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===U)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===U)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}]),e}();$n(RF,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var cF=Math.pow(2,32);function VF(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[U]<<8)+(e[U+1]||0)}function hF(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[U]<<24>>>0)+(e[U+1]<<16)+(e[U+2]<<8)+(e[U+3]||0)}function uF(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return hF(e,U)*cF+hF(e,U+4)}var ZF=function(){function e(){Pn(this,e)}return qn(e,null,[{key:"findBox",value:function(U,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,F=[];if(!U)return F;for(var Q=0,l="",i=0;U.length>7;){if(Q=hF(U),l=String.fromCharCode.apply(null,U.subarray(4,8)),i=8,1===Q?(Q=uF(U,8),i+=8):Q||(Q=U.length),!t[0]||l===t[0]){var d=U.subarray(0,Q);if(!(t.length<2))return e.findBox(d.subarray(i),t.slice(1),n+i);F.push({start:n,size:Q,headerSize:i,type:l,data:d})}n+=Q,U=U.subarray(Q)}return F}},{key:"tfhd",value:function(e){return WF(e,!0,(function(e,U){e.trackId=hF(U);var t=4,n=1&e.flags,F=2&e.flags,Q=8&e.flags,l=16&e.flags,i=32&e.flags;n&&(t+=4,e.baseDataOffset=hF(U,t),t+=4),F&&(e.sampleDescriptionIndex=hF(U,t),t+=4),Q&&(e.defaultSampleDuration=hF(U,t),t+=4),l&&(e.defaultSampleSize=hF(U,t),t+=4),i&&(e.defaultSampleFlags=hF(U,t))}))}},{key:"sidx",value:function(e){return WF(e,!0,(function(e,U){var t=0;e.reference_ID=hF(U,t),t+=4,e.timescale=hF(U,t),t+=4,0===e.version?(e.earliest_presentation_time=hF(U,t),t+=4,e.first_offset=hF(U,t),t+=4):(e.earliest_presentation_time=uF(U,t),t+=8,e.first_offset=uF(U,t),t+=8),t+=2,e.references=[];var n=VF(U,t);t+=2;for(var F=0;F<n;F++){var Q={};e.references.push(Q);var l=hF(U,t);t+=4,Q.reference_type=l>>31&1,Q.referenced_size=2147483647&l,Q.subsegment_duration=hF(U,t),l=hF(U,t+=4),t+=4,Q.starts_with_SAP=l>>31&1,Q.SAP_type=l>>28&7,Q.SAP_delta_time=268435455&l}}))}},{key:"moov",value:function(U){return WF(U,!1,(function(U,t,n){U.mvhd=e.mvhd(e.findBox(t,["mvhd"],n)[0]),U.trak=e.findBox(t,["trak"],n).map((function(U){return e.trak(U)})),U.pssh=e.pssh(e.findBox(t,["pssh"],n)[0])}))}},{key:"mvhd",value:function(e){return WF(e,!0,(function(e,U){var t=0;1===e.version?(e.timescale=hF(U,16),e.duration=uF(U,20),t+=28):(e.timescale=hF(U,8),e.duration=hF(U,12),t+=16),e.nextTrackId=hF(U,t+76)}))}},{key:"trak",value:function(U){return WF(U,!1,(function(U,t,n){U.tkhd=e.tkhd(e.findBox(t,["tkhd"],n)[0]),U.mdia=e.mdia(e.findBox(t,["mdia"],n)[0])}))}},{key:"tkhd",value:function(e){return WF(e,!0,(function(e,U){var t=0;1===e.version?(e.trackId=hF(U,16),e.duration=uF(U,24),t+=32):(e.trackId=hF(U,8),e.duration=hF(U,16),t+=20),e.width=hF(U,t+52),e.height=hF(U,t+56)}))}},{key:"mdia",value:function(U){return WF(U,!1,(function(U,t,n){U.mdhd=e.mdhd(e.findBox(t,["mdhd"],n)[0]),U.hdlr=e.hdlr(e.findBox(t,["hdlr"],n)[0]),U.minf=e.minf(e.findBox(t,["minf"],n)[0])}))}},{key:"mdhd",value:function(e){return WF(e,!0,(function(e,U){var t=0;1===e.version?(e.timescale=hF(U,16),e.duration=uF(U,20),t+=28):(e.timescale=hF(U,8),e.duration=hF(U,12),t+=16);var n=VF(U,t);e.language=String.fromCharCode(96+(n>>10&31),96+(n>>5&31),96+(31&n))}))}},{key:"hdlr",value:function(e){return WF(e,!0,(function(e,U){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,U.subarray(4,8)))}))}},{key:"minf",value:function(U){return WF(U,!1,(function(U,t,n){U.vmhd=e.vmhd(e.findBox(t,["vmhd"],n)[0]),U.smhd=e.smhd(e.findBox(t,["smhd"],n)[0]),U.stbl=e.stbl(e.findBox(t,["stbl"],n)[0])}))}},{key:"vmhd",value:function(e){return WF(e,!0,(function(e,U){e.graphicsmode=VF(U),e.opcolor=[VF(U,2),VF(U,4),VF(U,6)]}))}},{key:"smhd",value:function(e){return WF(e,!0,(function(e,U){e.balance=VF(U)}))}},{key:"stbl",value:function(U){return WF(U,!1,(function(U,t,n){var F,Q,l;U.stsd=e.stsd(e.findBox(t,["stsd"],n)[0]),U.stts=e.stts(e.findBox(t,["stts"],n)[0]),U.ctts=e.ctts(e.findBox(t,["ctts"],n)[0]),U.stsc=e.stsc(e.findBox(t,["stsc"],n)[0]),U.stsz=e.stsz(e.findBox(t,["stsz"],n)[0]),U.stco=e.stco(e.findBox(t,["stco"],n)[0]),U.stco||(U.co64=e.co64(e.findBox(t,["co64"],n)[0]),U.stco=U.co64);var i=null===(F=U.stsd.entries[0])||void 0===F||null===(Q=F.sinf)||void 0===Q||null===(l=Q.schi)||void 0===l?void 0:l.tenc.default_IV_size;U.stss=e.stss(e.findBox(t,["stss"],n)[0]),U.senc=e.senc(e.findBox(t,["senc"],n)[0],i)}))}},{key:"senc",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return WF(e,!0,(function(e,t){var n=0,F=hF(t,n);n+=4,e.samples=[];for(var Q=0;Q<F;Q++){for(var l={InitializationVector:[]},i=0;i<U;i++)l.InitializationVector[i]=t[n+i];if(n+=U,2&e.flags){l.subsamples=[];var d=VF(t,n);n+=2;for(var r=0;r<d;r++){var a={};a.BytesOfClearData=VF(t,n),n+=2,a.BytesOfProtectedData=hF(t,n),n+=4,l.subsamples.push(a)}}e.samples.push(l)}}))}},{key:"pssh",value:function(e){return WF(e,!0,(function(e,U){for(var t=[],n=[],F=0,Q=0;Q<16;Q++)n.push(mF(U[F+Q]));if(F+=16,e.version>0){var l=hF(U,F);F+=4;for(var i=0;i<(""+l).length;i++)for(var d=0;d<16;d++){var r=U[F];F+=1,t.push(mF(r))}}var a=hF(U,F);e.data_size=a,F+=4,e.kid=t,e.system_id=n,e.buffer=U}))}},{key:"stsd",value:function(U){return WF(U,!0,(function(U,t,n){U.entryCount=hF(t),U.entries=e.findBox(t.subarray(4),[],n+4).map((function(U){switch(U.type){case"avc1":case"avc2":case"avc3":case"avc4":return e.avc1(U);case"hvc1":case"hev1":return e.hvc1(U);case"mp4a":return e.mp4a(U);case"alaw":case"ulaw":return e.alaw(U);case"enca":return WF(U,!1,(function(U,t,n){U.channelCount=VF(t,16),U.samplesize=VF(t,18),U.sampleRate=hF(t,24)/65536,t=t.subarray(28),U.sinf=e.sinf(e.findBox(t,["sinf"],n)[0]),U.esds=e.esds(e.findBox(t,["esds"],n)[0])}));case"encv":return WF(U,!1,(function(U,t,n){U.width=VF(t,24),U.height=VF(t,26),U.horizresolution=hF(t,28),U.vertresolution=hF(t,32),t=t.subarray(78),U.sinf=e.sinf(e.findBox(t,["sinf"],n)[0]),U.avcC=e.avcC(e.findBox(t,["avcC"],n)[0]),U.hvcC=e.hvcC(e.findBox(t,["hvcC"],n)[0]),U.pasp=e.pasp(e.findBox(t,["pasp"],n)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return WF(e,!1,(function(e,U){var t=6;e.default_IsEncrypted=U[t],t+=1,e.default_IV_size=U[t],t+=1,e.default_KID=[];for(var n=0;n<16;n++)e.default_KID.push(mF(U[t])),t+=1}))}},{key:"schi",value:function(U){return WF(U,!1,(function(U,t,n){U.tenc=e.tenc(e.findBox(t,["tenc"],n)[0])}))}},{key:"sinf",value:function(U){return WF(U,!1,(function(U,t,n){U.schi=e.schi(e.findBox(t,["schi"],n)[0]),U.frma=e.frma(e.findBox(t,["frma"],n)[0])}))}},{key:"frma",value:function(e){return WF(e,!1,(function(e,U){e.data_format="";for(var t=0;t<4;t++)e.data_format+=String.fromCharCode(U[t])}))}},{key:"avc1",value:function(U){return WF(U,!1,(function(U,t,n){var F=JF(U,t),Q=t.subarray(F);n+=F,U.avcC=e.avcC(e.findBox(Q,["avcC"],n)[0]),U.pasp=e.pasp(e.findBox(Q,["pasp"],n)[0])}))}},{key:"avcC",value:function(e){return WF(e,!1,(function(e,U){e.configurationVersion=U[0],e.AVCProfileIndication=U[1],e.profileCompatibility=U[2],e.AVCLevelIndication=U[3],e.codec=function(e){for(var U,t="avc1.",n=0;n<3;n++)(U=e[n].toString(16)).length<2&&(U="0".concat(U)),t+=U;return t}([U[1],U[2],U[3]]),e.lengthSizeMinusOne=3&U[4],e.spsLength=31&U[5],e.sps=[];for(var t=6,n=0;n<e.spsLength;n++){var F=VF(U,t);t+=2,e.sps.push(U.subarray(t,t+F)),t+=F}e.ppsLength=U[t],t+=1,e.pps=[];for(var Q=0;Q<e.ppsLength;Q++){var l=VF(U,t);t+=2,e.pps.push(U.subarray(t,t+=l)),t+=l}}))}},{key:"hvc1",value:function(U){return WF(U,!1,(function(U,t,n){var F=JF(U,t),Q=t.subarray(F);n+=F,U.hvcC=e.hvcC(e.findBox(Q,["hvcC"],n)[0]),U.pasp=e.pasp(e.findBox(Q,["pasp"],n)[0])}))}},{key:"hvcC",value:function(e){return WF(e,!1,(function(U,t){U.data=e.data,U.codec="hev1.1.6.L93.B0",U.configurationVersion=t[0];var n=t[1];U.generalProfileSpace=n>>6,U.generalTierFlag=(32&n)>>5,U.generalProfileIdc=31&n,U.generalProfileCompatibility=hF(t,2),U.generalConstraintIndicatorFlags=t.subarray(6,12),U.generalLevelIdc=t[12],U.avgFrameRate=VF(t,19),U.numOfArrays=t[22],U.vps=[],U.sps=[],U.pps=[];for(var F=23,Q=0,l=0,i=0,d=0;d<U.numOfArrays;d++){Q=63&t[F],l=VF(t,F+1),F+=3;for(var r,a=[],o=0;o<l;o++)i=VF(t,F),F+=2,a.push(t.subarray(F,F+i)),F+=i;if(32===Q)(r=U.vps).push.apply(r,a);else if(33===Q){var B;(B=U.sps).push.apply(B,a)}else if(34===Q){var s;(s=U.pps).push.apply(s,a)}}}))}},{key:"pasp",value:function(e){return WF(e,!1,(function(e,U){e.hSpacing=hF(U),e.vSpacing=hF(U,4)}))}},{key:"mp4a",value:function(U){return WF(U,!1,(function(U,t,n){var F=pF(U,t);U.esds=e.esds(e.findBox(t.subarray(F),["esds"],n+F)[0])}))}},{key:"esds",value:function(e){return WF(e,!0,(function(e,U){e.codec="mp4a.";for(var t=0,n=0,F=0,Q=0;U.length;){for(Q=U[t=0],n=U[t+1],t+=2;128&n;)F=(127&n)<<7,n=U[t],t+=1;if(F+=127&n,3===Q)U=U.subarray(t+3);else{if(4!==Q){if(5===Q){var l=e.config=U.subarray(t,t+F),i=(248&l[0])>>3;return 31===i&&l.length>=2&&(i=32+((7&l[0])<<3)+((224&l[1])>>5)),e.objectType=i,e.codec+=i.toString(16),void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}return void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}e.codec+=(U[t].toString(16)+".").padStart(3,"0"),U=U.subarray(t+13)}}}))}},{key:"alaw",value:function(e){return WF(e,!1,(function(e,U){pF(e,U)}))}},{key:"stts",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push({count:hF(U,F),delta:hF(U,F+4)}),F+=8;e.entryCount=t,e.entries=n}))}},{key:"ctts",value:function(e){return WF(e,!0,(function(e,U){var t=hF(U),n=[],F=4;if(1===e.version)for(var Q=0;Q<t;Q++)n.push({count:hF(U,F),offset:hF(U,F+4)}),F+=8;else for(var l=0;l<t;l++)n.push({count:hF(U,F),offset:-(1+~hF(U,F+4))}),F+=8;e.entryCount=t,e.entries=n}))}},{key:"stsc",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push({firstChunk:hF(U,F),samplesPerChunk:hF(U,F+4),sampleDescriptionIndex:hF(U,F+8)}),F+=12;e.entryCount=t,e.entries=n}))}},{key:"stsz",value:function(e){return WF(e,!0,(function(e,U){var t=hF(U),n=hF(U,4),F=[];if(!t)for(var Q=8,l=0;l<n;l++)F.push(hF(U,Q)),Q+=4;e.sampleSize=t,e.sampleCount=n,e.entrySizes=F}))}},{key:"stco",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push(hF(U,F)),F+=4;e.entryCount=t,e.entries=n}))}},{key:"co64",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push(uF(U,F)),F+=8;e.entryCount=t,e.entries=n}))}},{key:"stss",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push(hF(U,F)),F+=4;e.entryCount=t,e.entries=n}))}},{key:"moof",value:function(U){return WF(U,!1,(function(U,t,n){U.mfhd=e.mfhd(e.findBox(t,["mfhd"],n)[0]),U.traf=e.findBox(t,["traf"],n).map((function(U){return e.traf(U)}))}))}},{key:"mfhd",value:function(e){return WF(e,!0,(function(e,U){e.sequenceNumber=hF(U)}))}},{key:"traf",value:function(U){return WF(U,!1,(function(U,t,n){U.tfhd=e.tfhd(e.findBox(t,["tfhd"],n)[0]),U.tfdt=e.tfdt(e.findBox(t,["tfdt"],n)[0]),U.trun=e.trun(e.findBox(t,["trun"],n)[0])}))}},{key:"trun",value:function(e){return WF(e,!0,(function(e,U){var t=e.version,n=e.flags,F=U.length,Q=e.sampleCount=hF(U),l=4;if(F>l&&1&n&&(e.dataOffset=-(1+~hF(U,l)),l+=4),F>l&&4&n&&(e.firstSampleFlags=hF(U,l),l+=4),e.samples=[],F>l)for(var i,d=0;d<Q;d++)i={},256&n&&(i.duration=hF(U,l),l+=4),512&n&&(i.size=hF(U,l),l+=4),1024&n&&(i.flags=hF(U,l),l+=4),2048&n&&(i.cts=t?-(1+~hF(U,l+4)):hF(U,l),l+=4),e.samples.push(i)}))}},{key:"tfdt",value:function(e){return WF(e,!0,(function(e,U){1===e.version?e.baseMediaDecodeTime=uF(U):e.baseMediaDecodeTime=hF(U)}))}},{key:"probe",value:function(U){return!!e.findBox(U,["ftyp"])}},{key:"parseSampleFlags",value:function(e){return{isLeading:(12&e[0])>>>2,dependsOn:3&e[0],isDependedOn:(192&e[1])>>>6,hasRedundancy:(48&e[1])>>>4,paddingValue:(14&e[1])>>>1,isNonSyncSample:1&e[1],degradationPriority:e[2]<<8|e[3]}}},{key:"moovToTrack",value:function(e,U,t){var n,F,Q=e.trak;if(Q&&Q.length){var l=Q.find((function(e){var U,t;return"vide"===(null===(U=e.mdia)||void 0===U||null===(t=U.hdlr)||void 0===t?void 0:t.handlerType)})),i=Q.find((function(e){var U,t;return"soun"===(null===(U=e.mdia)||void 0===U||null===(t=U.hdlr)||void 0===t?void 0:t.handlerType)}));if(l&&U){var d,r,a,o,B,s,R,c=U,V=null===(d=l.tkhd)||void 0===d?void 0:d.trackId;null!=V&&(c.id=l.tkhd.trackId),c.tkhdDuration=l.tkhd.duration,c.mvhdDurtion=e.mvhd.duration,c.mvhdTimecale=e.mvhd.timescale,c.timescale=c.formatTimescale=l.mdia.mdhd.timescale,c.duration=l.mdia.mdhd.duration||c.mvhdDurtion/c.mvhdTimecale*c.timescale;var h,u,Z,S,J,p,W,m,E=l.mdia.minf.stbl.stsd.entries[0];if(c.width=E.width,c.height=E.height,E.pasp&&(c.sarRatio=[E.pasp.hSpacing,E.pasp.vSpacing]),E.hvcC)c.codecType=FF,c.codec=E.hvcC.codec,c.vps=E.hvcC.vps,c.sps=E.hvcC.sps,c.pps=E.hvcC.pps,c.hvcC=E.hvcC.data;else{if(!E.avcC)throw new Error("unknown video stsd entry");c.codec=E.avcC.codec,c.sps=E.avcC.sps,c.pps=E.avcC.pps}if(c.present=!0,c.ext={},c.ext.stss=null===(r=l.mdia)||void 0===r||null===(a=r.minf)||void 0===a||null===(o=a.stbl)||void 0===o?void 0:o.stss,c.ext.ctts=null===(B=l.mdia)||void 0===B||null===(s=B.minf)||void 0===s||null===(R=s.stbl)||void 0===R?void 0:R.ctts,E&&"encv"===E.type)c.isVideoEncryption=!0,E.default_KID=null===(h=E.sinf)||void 0===h||null===(u=h.schi)||void 0===u?void 0:u.tenc.default_KID,E.default_IsEncrypted=null===(Z=E.sinf)||void 0===Z||null===(S=Z.schi)||void 0===S?void 0:S.tenc.default_IsEncrypted,E.default_IV_size=null===(J=E.sinf)||void 0===J||null===(p=J.schi)||void 0===p?void 0:p.tenc.default_IV_size,c.videoSenc=l.mdia.minf.stbl.senc&&l.mdia.minf.stbl.senc.samples,E.data_format=null===(W=E.sinf)||void 0===W||null===(m=W.frma)||void 0===m?void 0:m.data_format,c.useEME=e.useEME,c.kidValue=e.kidValue,c.pssh=e.pssh,c.encv=E}if(i&&t){var k,y,N,b,f,v,T,C,D,g=t,X=null===(k=i.tkhd)||void 0===k?void 0:k.trackId;null!=X&&(g.id=i.tkhd.trackId),g.tkhdDuration=i.tkhd.duration,g.mvhdDurtion=e.mvhd.duration,g.mvhdTimecale=e.mvhd.timescale,g.timescale=g.formatTimescale=i.mdia.mdhd.timescale,g.duration=i.mdia.mdhd.duration||g.mvhdDurtion/g.mvhdTimecale*g.timescale;var x,L,G,I,M,Y,w,K,j=i.mdia.minf.stbl.stsd.entries[0];switch(g.sampleSize=j.sampleSize,g.sampleRate=j.sampleRate,g.channelCount=j.channelCount,g.present=!0,j.type){case"alaw":g.codecType=g.codec=lF,g.sampleRate=8e3;break;case"ulaw":g.codecType=g.codec=iF,g.sampleRate=8e3;break;default:g.sampleDuration=RF.getFrameDuration(g.sampleRate,g.timescale),g.sampleRateIndex=RF.getRateIndexByRate(g.sampleRate),g.objectType=(null===(n=j.esds)||void 0===n?void 0:n.objectType)||2,j.esds&&(g.config=Array.from(j.esds.config)),g.codec=(null===(F=j.esds)||void 0===F?void 0:F.codec)||"mp4a.40.2"}if(g.sampleDuration=RF.getFrameDuration(g.sampleRate,g.timescale),g.objectType=(null===(y=j.esds)||void 0===y?void 0:y.objectType)||2,j.esds&&(j.esds.config?g.config=Array.from(j.esds.config):console.warn("esds config is null")),g.codec=(null===(N=j.esds)||void 0===N?void 0:N.codec)||"mp4a.40.2",g.sampleRateIndex=RF.getRateIndexByRate(g.sampleRate),g.ext={},g.ext.stss=null===(b=i.mdia)||void 0===b||null===(f=b.minf)||void 0===f||null===(v=f.stbl)||void 0===v?void 0:v.stss,g.ext.ctts=null===(T=i.mdia)||void 0===T||null===(C=T.minf)||void 0===C||null===(D=C.stbl)||void 0===D?void 0:D.ctts,g.present=!0,j&&"enca"===j.type)g.isAudioEncryption=!0,j.data_format=null===(x=j.sinf)||void 0===x||null===(L=x.frma)||void 0===L?void 0:L.data_format,j.default_KID=null===(G=j.sinf)||void 0===G||null===(I=G.schi)||void 0===I?void 0:I.tenc.default_KID,j.default_IsEncrypted=null===(M=j.sinf)||void 0===M||null===(Y=M.schi)||void 0===Y?void 0:Y.tenc.default_IsEncrypted,j.default_IV_size=null===(w=j.sinf)||void 0===w||null===(K=w.schi)||void 0===K?void 0:K.tenc.default_IV_size,g.audioSenc=i.mdia.minf.stbl.senc&&i.mdia.minf.stbl.senc.samples,g.useEME=e.useEME,g.kidValue=e.kidValue,g.enca=j}if(t&&(t.isVideoEncryption=!!U&&U.isVideoEncryption),U&&(U.isAudioEncryption=!!t&&t.isAudioEncryption),null!=U&&U.encv||null!=t&&t.enca){var _,H,z=null==U||null===(_=U.encv)||void 0===_?void 0:_.default_KID,O=null==t||null===(H=t.enca)||void 0===H?void 0:H.default_KID,P=z||O?(z||O).join(""):null;U&&(U.kid=P),t&&(t.kid=P)}return U&&(U.flags=3841),t&&(t.flags=1793),{videoTrack:U,audioTrack:t}}}},{key:"evaluateDefaultDuration",value:function(e,U,t){var n,F=null==U||null===(n=U.samples)||void 0===n?void 0:n.length;return F?1024*F/U.timescale*e.timescale/t:1024}},{key:"moofToSamples",value:function(U,t,n){var F={};return U.mfhd&&(t&&(t.sequenceNumber=U.mfhd.sequenceNumber),n&&(n.sequenceNumber=U.mfhd.sequenceNumber)),U.traf.forEach((function(U){var Q=U.tfhd,l=U.tfdt,i=U.trun;if(Q&&i){l&&(t&&t.id===Q.trackId&&(t.baseMediaDecodeTime=l.baseMediaDecodeTime),n&&n.id===Q.trackId&&(n.baseMediaDecodeTime=l.baseMediaDecodeTime));var d=Q.defaultSampleSize||0,r=Q.defaultSampleDuration||e.evaluateDefaultDuration(t,n,i.samples.length||i.sampleCount),a=i.dataOffset||0,o=0,B=-1;if(!i.samples.length&&i.sampleCount){F[Q.trackId]=[];for(var s=0;s<i.sampleCount;s++)F[Q.trackId].push({offset:a,dts:o,duration:r,size:d}),o+=r,a+=d}else F[Q.trackId]=i.samples.map((function(e,U){return(e={offset:a,dts:o,pts:o+(e.cts||0),duration:e.duration||r,size:e.size||d,gopId:B,keyframe:0===U||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(B++,e.gopId=B),o+=e.duration,a+=e.size,e}))}})),F}},{key:"moovToSamples",value:function(e){var U=e.trak;if(U&&U.length){var t=U.find((function(e){var U,t;return"vide"===(null===(U=e.mdia)||void 0===U||null===(t=U.hdlr)||void 0===t?void 0:t.handlerType)})),n=U.find((function(e){var U,t;return"soun"===(null===(U=e.mdia)||void 0===U||null===(t=U.hdlr)||void 0===t?void 0:t.handlerType)}));if(t||n){var F,Q;if(t){var l,i,d=null===(l=t.mdia)||void 0===l||null===(i=l.minf)||void 0===i?void 0:i.stbl;if(!d)return;var r=d.stts,a=d.stsc,o=d.stsz,B=d.stco,s=d.stss,R=d.ctts;if(!(r&&a&&o&&B&&s))return;F=SF(r,a,o,B,R,s)}if(n){var c,V,h,u=null===(c=n.mdia)||void 0===c||null===(V=c.minf)||void 0===V?void 0:V.stbl;if(!u)return;var Z=null===(h=n.mdia.mdhd)||void 0===h?void 0:h.timescale,S=u.stts,J=u.stsc,p=u.stsz,W=u.stco;if(!(Z&&S&&J&&p&&W))return;Q=SF(S,J,p,W)}return{videoSamples:F,audioSamples:Q}}}}}]),e}();function SF(e,U,t,n,F,Q){var l,i,d,r=[],a=null==F?void 0:F.entries,o=U.entries,B=n.entries,s=t.entrySizes,R=null==Q?void 0:Q.entries;R&&(l={},R.forEach((function(e){l[e-1]=!0}))),a&&(i=[],a.forEach((function(e){for(var U=e.count,t=e.offset,n=0;n<U;n++)i.push(t)})));var c=-1,V=0,h=0,u=0,Z=0,S=0,J=o[0].samplesPerChunk,p=o[1]?o[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var U=e.count,n=e.delta,F=0;F<U;F++)d={dts:V,duration:n,size:s[h]||t.sampleSize,offset:B[u]+S,index:h},R&&(d.keyframe=l[h],d.keyframe&&c++,d.gopId=c),i&&h<i.length&&(d.pts=d.dts+i[h]),r.push(d),V+=n,++h<J?S+=d.size:(u++,S=0,u>=p&&(Z++,p=o[Z+1]?o[Z+1].firstChunk-1:1/0),J+=o[Z].samplesPerChunk)})),r}function JF(e,U){return e.dataReferenceIndex=VF(U,6),e.width=VF(U,24),e.height=VF(U,26),e.horizresolution=hF(U,28),e.vertresolution=hF(U,32),e.frameCount=VF(U,40),e.depth=VF(U,74),78}function pF(e,U){return e.dataReferenceIndex=VF(U,6),e.channelCount=VF(U,16),e.sampleSize=VF(U,18),e.sampleRate=hF(U,24)/65536,28}function WF(e,U,t){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var n={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return U&&(n.version=e.data[e.headerSize],n.flags=function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[U]<<16)+(e[U+1]<<8)+(e[U+2]||0)}(e.data,e.headerSize+1),n.headerSize+=4),t(n,e.data.subarray(n.headerSize),n.start+n.headerSize),n}}var mF=function(){for(var e=[],U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];return t.forEach((function(U){e.push(function(e,U,t){for(var n=String(t),F=U>>0,Q=Math.ceil(F/n.length),l=[],i=String(e);Q--;)l.push(n);return l.join("").substring(0,F-i.length)+i}(Number(U).toString(16),2,0))})),e[0]};function EF(e,U,t,n){return e[U]?n?n(e[U]):e[U]:t}var kF=function(){function e(U){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;c(this,e),In(this),this.url=U,this.options=t,this.dash=n,this.mediaList={video:[],audio:[]},this.retryMax=10,this.retry=0,this.type="live",this.isEnd=!1,this.duration=0,this.videoCodecType=null,this.videoCodecs=null,this.hasSync=!1,this._readyPromise=new X}var U;return h(e,[{key:"readyPromise",get:function(){return this._readyPromise}},{key:"calcVideoCodeType",value:function(e,U){if(e||U){var t=null;U?t=U.split(".")[0]:e&&(t=e.split(".")[0]);for(var n=Object.keys(On),F=0;F<n.length;F++){var Q=n[F],l=On[Q];if(l.types.concat(l.visualEntryBox).indexOf(t)>-1){this.videoCodecType=Q,this.videoCodecs=l.codecs;break}}hU.log("mpd dataType:",e,"codecs:",U,"cal type:",this.videoCodecType,"videoCodecs",this.videoCodecs),this.videoCodecType||(this.videoCodecType=jn,this.videoCodecs=On[jn].codecs,console.warn("calcVideoCodeType default")),this.dash&&this.dash._pluginInst&&this.dash._pluginInst.setCodeInfo(this.videoCodecType)}}},{key:"fetch",value:(U=R(o().mark((function U(t){var n,F,Q,l,i,d,r,a;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return n=this,F={TYPE:"LIVE",ENDLIST:""},Q=[],U.prev=3,l=new rU({}),U.next=7,l.load(t);case 7:if(i=U.sent,!(d=i.data)){U.next=21;break}if(r=e.parseMPD(d)){U.next=13;break}throw new Error("parse mpd error");case 13:return this._parseMeta(F,r),this._parseSegments(r,t),["video","audio"].forEach((function(e){n.mediaList[e].length>0&&(n.mediaList[e].selectedIdx="video"===e&&n.dash.selectedIdx||0,n.mediaList[e].sort((function(U,t){return"video"===e?t.height-U.height:t.bandwidth-U.bandwidth})))})),0===n.mediaList.video.length&&0===n.mediaList.audio.length&&setTimeout((function(){n.dash.player&&n.dash.player.emit("NO_MEDIALIST",{dynamic_type:"segment_template"})})),U.abrupt("return",{meta:F,segments:Q});case 21:throw n.dash.emit("error",new wn(oe,We.DASH,{url:t,message:"mpd parse error"})),new Error("MPD_PARSE_ERROR");case 23:U.next=29;break;case 25:throw U.prev=25,U.t0=U.catch(3),n.dash.emit("error",new wn(pe,wn.MPD_INIT_ERROR,{httpCode:null===(a=U.t0.response)||void 0===a?void 0:a.status,url:t,message:null===U.t0||void 0===U.t0?void 0:U.t0.message})),new Error(U.t0);case 29:case"end":return U.stop()}}),U,this,[[3,25]])}))),function(e){return U.apply(this,arguments)})},{key:"_parseMeta",value:function(e,U){"static"===U.type&&(e.TYPE="VOD"),U.minBufferTime&&(e.minBufferTime=Ut.durationConvert(U.minBufferTime)),U.maxSegmentDuration&&(e.maxSegmentDuration=Ut.durationConvert(U.maxSegmentDuration)),U.mediaPresentationDuration&&(this.duration=Ut.durationConvert(U.mediaPresentationDuration));var t=U.Period[0];!this.duration&&t&&t.duration&&(this.duration=Ut.durationConvert(t.duration)),e.duration=this.duration}},{key:"_parseST",value:function(e,U,t,n,F){for(var Q=parseFloat(e.timescale),l=parseFloat(e.duration),i=Math.round(l/Q),d=parseInt(e.startNumber,10),r=d+Math.ceil(this.duration/i)-1,a=d;a<=r;a++){var o=i*(a-d),B=i*(a-d+1);a===r&&(i=this.duration-i*(r-d),B=this.duration),U.push({idx:a,start:Math.round(o),end:Math.round(B),url:n+e.media.replace("$RepresentationID$",t).replace("$Number%04d$",Ut.preFixInterge(a,4)),downloaded:0,segmentDuration:i,height:F})}}},{key:"_getVideoSegments",value:function(e){var U,t,n,F=e.bandwidth,Q=e.id,l=e.baseURL,i=e.initSegment,d=e.mediaSegments,r=e.mimeType,a=e.codecs,o=e.width,B=e.height,s=e.frameRate,R=e.sar,c=e.startWithSAP,V=e.timescale,h=e.duration,u=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_video_list)for(var Z=0;Z<this.options.dynamic_video.dynamic_video_list.length;Z++){var S=this.options.dynamic_video.dynamic_video_list[Z];S.bitrate===F&&(U=S.size,t=S.definition,n=S.file_id)}this.mediaList.video.push({id:Q,baseURL:l,initSegment:l+i.replace("$RepresentationID$",Q),inited:!1,mediaSegments:d,mimeType:r,codecs:a,width:o,height:B,size:U,frameRate:s,sar:R,startWithSAP:c,bandwidth:F,timescale:V,duration:h,encrypted:u,definition:t,fileId:n})}},{key:"_getAudioSegments",value:function(e){var U,t=e.bandwidth,n=e.id,F=e.baseURL,Q=e.initSegment,l=e.mediaSegments,i=e.mimeType,d=e.codecs,r=e.startWithSAP,a=e.timescale,o=e.duration,B=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_audio_list)for(var s=0;s<this.options.dynamic_video.dynamic_audio_list.length;s++)this.options.dynamic_video.dynamic_audio_list[s].bitrate===t&&(U=this.options.dynamic_video.dynamic_audio_list[s].size);this.mediaList.audio.push({id:n,baseURL:F,initSegment:F+Q.replace("$RepresentationID$",n),inited:!1,mediaSegments:l,mimeType:i,codecs:d,startWithSAP:r,bandwidth:t,size:U,timescale:a,duration:o,encrypted:B})}},{key:"_parseSegments",value:function(e,U){var t=this,n=[],F="";e.BaseURL&&(F=e.BaseURL[0]);var Q=e.Period[0];Q.AdaptationSet&&Q.AdaptationSet.length>1&&Q.AdaptationSet.forEach((function(e){var Q="video/mp4",l="avc1.64001E",i="640",d="360",r="25",a="1:1",o="1",B="588633";e.mimeType&&("video/mp4"===(Q=e.mimeType)?(l=e.codecs,i=parseFloat(e.width),d=parseFloat(e.height),r=parseFloat(e.frameRate),a=e.sar,o=e.startWithSAP,B=parseFloat(e.bandwidth),t.calcVideoCodeType(null,l)):"audio/mp4"===Q&&(l=e.codecs,o=e.startWithSAP,B=parseFloat(e.bandwidth))),e.Representation.forEach((function(s){n.indexOf(s.id)>-1&&(s.id=(parseInt(n[n.length-1],10)+1).toString()),n.push(s.id);var R,c="",V=[],h=0,u=U.slice(0,U.lastIndexOf("/")+1)+F;"video/mp4"===(Q=EF(s,"mimeType",Q))?(s.codecs&&(l=s.codecs,t.calcVideoCodeType(null,l)),i=EF(s,"width",i,parseFloat),d=EF(s,"height",d,parseFloat),r=EF(s,"frameRate",r,parseFloat),a=EF(s,"sar",a)):"audio/mp4"===Q&&(l=EF(s,"codecs",l)),o=EF(s,"startWithSAP",o),B=EF(s,"bandwidth",B,parseFloat),s.BaseURL&&s.BaseURL.length>0&&(u+=s.BaseURL[0]),e.SegmentTemplate&&e.SegmentTemplate.length>0&&(R=e.SegmentTemplate[0]),s.SegmentTemplate&&s.SegmentTemplate.length>0&&(R=s.SegmentTemplate[0]);var Z=!1;(e.ContentProtection||s.ContentProtection)&&(Z=!0),R&&(c=R.initialization,h=parseFloat(R.duration),t._parseST(R,V,s.id,u,d)),B=parseInt(B),"video/mp4"===Q?t._getVideoSegments({id:s.id,bandwidth:B,baseURL:u,initSegment:c,mediaSegments:V,mimeType:Q,codecs:l,width:i,height:d,frameRate:r,sar:a,startWithSAP:o,timescale:0,duration:h,encrypted:Z}):"audio/mp4"===Q&&t._getAudioSegments({id:s.id,baseURL:u,bandwidth:B,initSegment:c,mediaSegments:V,mimeType:Q,codecs:l,startWithSAP:o,timescale:0,duration:h,encrypted:Z})}))}))}},{key:"init",value:function(){var e=this,U=e.options;if(U.dynamic_video.dynamic_type&&"segment_template"!==U.dynamic_video.dynamic_type){e.dashType="segment_base";var t=0;U.duration;var n=U.dynamic_video;["dynamic_video_list","dynamic_audio_list"].forEach((function(F){var Q="dynamic_audio_list"===F;n[F].forEach((function(n){var l=parseInt(n.init_range.split("-")[0],10),i=parseInt(n.init_range.split("-")[1],10),d=parseInt(n.index_range.split("-")[0],10),r=parseInt(n.index_range.split("-")[1],10);Q||e.calcVideoCodeType(n.codec_type),e.mediaList["dynamic_audio_list"===F?"audio":"video"].push({id:("dynamic_audio_list"===F?0:t++).toString(),baseURL:n.main_url,initSegment:n.main_url,initSegmentRange:[l,i],sidxRange:[d,r],inited:!1,hasSidx:!1,mediaSegments:[],mimeType:Q?"audio/mp4":"video/mp4",codecs:Q?"mp4a.40.2":n.codec_type&&n.codec_type.indexOf("h265")>-1?"hev1.1.6.L93.B0":e.videoCodecs,width:n.vwidth,height:n.vheight,bandwidth:parseInt(n.bitrate),avg_bitrate:n.avg_bitrate,size:n.size,timescale:-1,duration:U.duration,encrypted:n.encrypt,kid:n.kid,definition:n.definition,sidxRes:void 0,fileId:n.file_id})}))})),e.type="vod",["video","audio"].forEach((function(U){e.mediaList[U].length>0&&(e.mediaList[U].selectedIdx="video"===U&&e.dash.selectedIdx||0,"video"===U&&e.mediaList[U].sort((function(e,t){return"video"===U?t.height-e.height:t.bandwidth-e.bandwidth})))})),0===e.mediaList.video.length&&0===e.mediaList.audio.length&&e.dash&&e.dash.player&&setTimeout((function(){e.dash.player.emit("NO_MEDIALIST",{dynamic_type:"segment_base"})})),e.emit("ready"),e._readyPromise.resolve()}else e.dashType="segment_template",e.fetch(U.dynamic_video.main_url).then((function(U){e.type=U.meta.TYPE.toLocaleLowerCase(),e.emit("ready"),e._readyPromise.resolve()}),(function(){["video","audio"].forEach((function(U){e.mediaList[U]=[]})),e.retry++,e.retry,e.retryMax}))}},{key:"getSidx",value:function(e){var U,t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"video",F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,Q=arguments.length>3?arguments[3]:void 0,l=this.mediaList[n][F],i=l.sidxRange[1];try{var d=e instanceof ArrayBuffer?e:e.buffer,r=new Uint8Array(d);if("sidx"!==String.fromCharCode.apply(null,r.subarray(4,8)))throw hU.log("mpd sdix parse err"),new Error;var a=(U=ZF.sidx(ZF.findBox(new Uint8Array(d),[])[0])).timescale,o=[],B=0,s=0,R=i+1,c=R-1;U.references.forEach((function(e,U){s+=e.subsegment_duration,c+=e.referenced_size,o.push({idx:U+1,url:l.initSegment,start:Math.round(B/a),end:Math.round(s/a),startRaw:B/a,endRaw:s/a,range:[R,c],downloaded:0,segmentDuration:Math.round(e.subsegment_duration/a),reference_type:e.reference_type,starts_with_SAP:e.starts_with_SAP,SAP_type:e.SAP_type,SAP_delta_time:e.SAP_delta_time,codecType:t.videoCodecType||"h264"}),B=s+1,R=c+1})),o[0].startTime_=0,l.mediaDuration=0,o.forEach((function(e,U){l.mediaDuration+=e.segmentDuration,U>0&&(e.startTime_=o[U-1].startTime_+o[U-1].segmentDuration),U===o.length-1&&Q&&(e.end=Q)})),l.hasSidx=!0,l.mediaSegments=o,l.timescale=a,l.sidxRes=e}catch(V){throw new wn(he,We.SIDX,{line:398,handle:"[MPD] getSidx",message:"mpd segment base Parse getSidx error"})}}},{key:"checkInBuffered",value:function(e,U,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=arguments.length>4?arguments[4]:void 0,Q=arguments.length>5?arguments[5]:void 0;if(0===e.length)return!1;var l=this._inBufferd(U,F,e,n),i=this._inBufferd(t,Q,e,n);return!(!l.in||!i.in||l.index!==i.index)}},{key:"_inBufferd",value:function(e,U,t){for(var n=0;n<t.length;n++){var F=Ut.round(t[n].start),Q=Ut.round(t[n].end);if(F<=e&&e<=Q)return{index:n,in:!0};if(F<=U&&U<=Q)return{index:n,in:!0}}return{in:!1}}},{key:"_doSyncAV",value:function(){var e=this.mediaList;if(!this.hasSync){var U=!1;if(e.video.length<1&&(U=!0),e.audio.length<1&&(U=!0),!U){var t=this.mediaList.video[this.mediaList.video.selectedIdx].mediaSegments,n=this.mediaList.audio[this.mediaList.audio.selectedIdx].mediaSegments,F=Math.min(t.length,n.length);if(F>0){var Q=n[F-1],l=t[F-1];Q&&(Q.incomplete=!0),l&&(l.incomplete=!0)}}this.hasSync=!0}}},{key:"syncAV",value:function(){this.hasSync=!1}},{key:"_getBuffered",value:function(e){var U,t,n,F,Q,l=this.dash.mse;if(!l)return[];"[object Function]"===Object.prototype.toString.call(l.buffered)?U=this.dash.mse.buffered(e):U="video"===e?null===(t=l.timeline)||void 0===t||null===(n=t.videoRender)||void 0===n?void 0:n.buffered:null===(F=l.timeline)||void 0===F||null===(Q=F.audioRender)||void 0===Q?void 0:Q.buffered;if(!U||0===U.length)return[];for(var i=[],d=0;d<U.length;d++)i.push({start:U.start(d),end:U.end(d)});return i}},{key:"seek",value:function(e,U){var t=this,n=this;this._doSyncAV();var F={};return new Promise((function(Q,l){"vod"===t.type||void 0!==e?(["video","audio"].forEach((function(t){if(n.mediaList[t].length<1)return!0;var Q=n._getBuffered(t),l=n.mediaList[t][n.mediaList[t].selectedIdx].mediaSegments;"video"===t&&hU.log("seek",t,"idx",n.mediaList[t].selectedIdx),F[t]=l.filter((function(F,l){if(F.downloaded===CU){if(n.checkInBuffered(Q,F.start,F.end,0,F.startRaw,F.endRaw))return!1;if(F.incomplete)return!1;hU.log("".concat(t," ").concat(l," start:").concat(F.start," end:").concat(F.end," segment downloaded set false")),F.downloaded=vU}var i=F.start<=e&&e<=F.end;if(F.downloaded===vU){if(i)return!0;if(U>0&&F.start>=U&&F.end<=e)return!n.checkInBuffered(Q,F.start,F.end,0,F.startRaw,F.endRaw)}return!1}))})),Q(F)):l("media error2")}))}},{key:"clearBuffer",value:function(e,U,t){hU.log("mpd clearBuffer ".concat(t," start:").concat(e," end:").concat(U));var n=this,F=t?[t]:["video","audio"];"vod"===n.type&&F.forEach((function(t){if(n.mediaList[t].length>0){var F=n.mediaList[t][n.mediaList[t].selectedIdx],Q=[];F.mediaSegments.forEach((function(t,n){t.end<e||t.start>U||(t.downloaded=vU,Q.push(n))}));var l=Q.length>0?Q[0]:void 0,i=Q.length>1?Q[Q.length-1]:l;hU.log("".concat(t," start:").concat(e," end:").concat(U,",\n startId:").concat(l," , endId:").concat(i,", segment downloaded set false"))}}))}},{key:"isLastSegmentAndAppend",value:function(e,U){if(!this.mediaList[e])return!0;var t=U-1,n=this.mediaList[e].selectedIdx,F=this.mediaList[e][n].mediaSegments;return!!F&&(this._isSegmentAppend(F[t])&&F.length-1===t)}},{key:"_isSegmentAppend",value:function(e){return e.downloaded===CU||e.incomplete}},{key:"isSegmentAppendFromIdx",value:function(e,U){if(!this.mediaList[e])return!0;for(var t=0,n=this.mediaList[e].selectedIdx,F=this.mediaList[e][n].mediaSegments||[],Q=0;Q<F.length;Q++)if(F[Q].start<=U&&U<=F[Q].end){t=Q;break}F&&U>=F[F.length-1].end&&(t=F.length-1);var l=!0;if(F){for(var i=t;t<F.length&&F[i];i++)if(!this._isSegmentAppend(F[i])){l=!1;break}}else l=!1;return l}}],[{key:"parseMPD",value:function(e){var U;if("string"==typeof e&&(U=e),e instanceof ArrayBuffer){var t=new Uint8Array(e);U=String.fromCharCode.apply(null,t)}if(!U)return null;var n=performance.now();return U=U.replace(/<(\/)?(\w+:)+(\w+)/g,"<$1$3"),hU.log("MPD cost",performance.now()-n),x.parse(U)}}]),e}(),yF=kF;function NF(e){if(window.Headers&&e instanceof Headers){var U,t={},n=N(e);try{for(n.s();!(U=n.n()).done;){var F=U.value;t[F[0]]=F[1]}}catch(Q){n.e(Q)}finally{n.f()}return t}return e}var bF={loaderCount:2,loaderType:Le,onProcessMinLen:5120,enableDynamicMinLen:!0};function fF(e,U){if(e.length>0)for(var t=0,n=!0,F=0;F<e.length;F++){var Q=e[F];if(Q>U){n=!1;break}if((t+=Q)/e.length>U&&(n=!1),!n)return!1}return!0}var vF=0,TF=function(){function e(U,t){var n=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";c(this,e),In(this),this._config=Object.assign({},bF,a({responseType:"arraybuffer"},U)),this._loaderCount=this._config.loaderCount||1,this._loaderType=this._config.loaderType||Le,this._enableDynamicMinLen=this._config.enableDynamicMinLen,this._preloadManager=t,U.openLog&&be.enable(),this._videoLoaders=[],this._audioLoaders=[],this._videoIdx=0,this._audioIdx=0;for(var Q=0;Q<this._loaderCount;Q++){var l=new be("".concat(F,"VideoLoader_").concat(Q),this._config.vid),i=new be("".concat(F,"AudioLoader_").concat(Q),this._config.vid),d=new rU(a(a({},this._config),{},{logger:l,loaderType:this._loaderType})),r=new rU(a(a({},this._config),{},{logger:i,loaderType:this._loaderType}));this._videoLoaders.push(d),this._audioLoaders.push(r),this._videoSpeeds=[],d.on(qe,(function(e){vF=e.speed,n._cacheSpeed(e)})),r.on(qe,(function(e){vF=e.speed,n._cacheSpeed(e)})),this._videoReqCosts=[]}this._isSupportUrlRange="fetch"===this._loaderType}var U,t,n;return h(e,[{key:"isSupportedProgress",value:function(){return 1===this._loaderCount&&"fetch"===this._loaderType}},{key:"_addCost",value:function(e){this._videoReqCosts.push(e),this._videoReqCosts.length>3&&this._videoReqCosts.shift()}},{key:"_addVideoSpeed",value:function(e){this._videoSpeeds.push(e),this._videoSpeeds.length>3&&this._videoSpeeds.shift()}},{key:"checkProgressSatisfied",value:function(e){var U=!1;if(navigator.connection&&navigator.connection.downlink){U=!0;var t=1e6*navigator.connection.downlink;return!(5*e/t>4)}if(!fF(this._videoReqCosts,4))return!1;var n=this._videoSpeeds.map((function(U){return 1e3*U*5/e}));if(!fF(n,4))return!1;if(!U&&0===n.length)try{try{var F=parseFloat(g.getItem(SU))||0;if(0===F||1e3*F*5/e>4)return!1}catch(Q){}}catch(Q){}return!0}},{key:"_cacheSpeed",value:function(U){var t,n=U.speed;e.historySpeed.length>=20&&e.historySpeed.shift(),e.historySpeed.push(n),this.emit(qe,{speed:n,type:(null==U||null===(t=U.priOptions)||void 0===t?void 0:t.type)||IU})}},{key:"load",value:(n=R(o().mark((function e(U,t,n,F){var Q,l,i,d,r,B,s,R,c,V,h,u,Z,S,J,p,W,m,E,k,y,N,b,f=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Q=f.length>4&&void 0!==f[4]&&f[4],l=f.length>5&&void 0!==f[5]?f[5]:null,i=f.length>6&&void 0!==f[6]?f[6]:null,d=f.length>7&&void 0!==f[7]?f[7]:null,r=f.length>8&&void 0!==f[8]?f[8]:null,B=F.cacheKey||Ut.generateUniqueKey(F),s={start:F.start,end:F.end,bandwidth:F.bandwidth||F.bitrate,sequence:F.idx,fps:F.fps,mediaType:U,selectedIdx:F.selectedIdx,definition:F.definition},R=this._config.onProcessMinLen,this._enableDynamicMinLen&&s.bandwidth&&l&&(c=0===F.start?.5:1,R=Math.floor(s.bandwidth*c/8)),!this._preloadManager){e.next=16;break}return e.next=12,this._preloadManager.getItem(B);case 12:if(!((V=e.sent)&&V.res instanceof ArrayBuffer)){e.next=16;break}return l&&l(V.res,!0,{range:n},null,F),e.abrupt("return",{res:V.res,headers:V.headers,status:V.status,fromCache:!0,selectedIdx:F.selectedIdx,extData:s,cacheKey:B});case 16:if(h=F.isPCDN,u=!l||this._isSupportUrlRange,Z=u&&(this._config.useUrlRange||F.useUrlRange||!1)&&!h,S=t,Z&&n&&n.length>1&&(S="".concat(t+(t.split("?")[1]?"&":"?"),"range=").concat(n[0],"-").concat(n[1])),n&&0!==n.length&&!Z||(n=void 0),J=performance.now(),hU.log("load res start:",JSON.stringify(F),"startTime",J,"userUrlRange",Z,"onProgress",!!l,"onProcessMinLen",R),e.prev=24,p=this._getLoader(U)){e.next=28;break}return e.abrupt("return");case 28:return W=this._config.headers||{},e.next=31,p.load(S,{range:n,onProgress:l,selectedIdx:F.selectedIdx,sequence:F.idx,initSegment:F.initSegment,onProcessMinLen:R,onCancel:i,timeout:d,onTimeout:r,headers:h?Object.assign({},W,{"X-Origin-Server-Host":F.cdnHost}):W,priOptions:{type:h?MU:IU}});case 31:if(m=e.sent){e.next=34;break}return e.abrupt("return",null);case 34:return hU.log("load res finish: ",F,"cost time",performance.now()-J,"ms"),"video"===U&&this._addCost((performance.now()-J)/1e3),E=m.data,k=m.response,y={res:E instanceof Uint8Array?E.buffer:E,headers:NF(k.headers),status:k.status},Q&&this._preloadManager.setItem(B,y).catch((function(){})),e.abrupt("return",a(a({},y),{},{extData:s,selectedIdx:F.selectedIdx,cacheKey:B,isPCDN:h}));case 42:return e.prev=42,e.t0=e.catch(24),hU.log("loader error",{msg:e.t0.message}),e.abrupt("return",{res:"error",status:null===(N=e.t0.response)||void 0===N?void 0:N.status,header:NF(null===(b=e.t0.response)||void 0===b?void 0:b.headers),cacheKey:B,error:e.t0,isPCDN:h,url:S,bitrate:s.bandwidth});case 46:case"end":return e.stop()}}),e,this,[[24,42]])}))),function(e,U,t,F){return n.apply(this,arguments)})},{key:"_getLoader",value:function(e){if("video"===e){var U=this._videoLoaders[this._videoIdx];return this._videoIdx++,this._videoIdx>=this._videoLoaders.length&&(this._videoIdx=0),U}var t=this._audioLoaders[this._audioIdx];return this._audioIdx++,this._audioIdx>=this._audioLoaders.length&&(this._audioIdx=0),t}},{key:"cancel",value:(t=R(o().mark((function e(U){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!U){e.next=6;break}return t="video"===U?this._videoLoaders:this._audioLoaders,e.next=4,this.cancelLoaders(t);case 4:e.next=10;break;case 6:return e.next=8,this.cancelLoaders(this._audioLoaders);case 8:return e.next=10,this.cancelLoaders(this._videoLoaders);case 10:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"cancelLoaders",value:(U=R(o().mark((function e(U){var t,n,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=N(U),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return F=n.value,e.next=7,F.cancel();case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[1,11,14,17]])}))),function(e){return U.apply(this,arguments)})},{key:"destroy",value:function(){this.cancel();for(var e=0;e<this._videoLoaders.length;e++){var U=this._videoLoaders[e];U&&U.removeAllListeners();var t=this._audioLoaders[e];t&&t.removeAllListeners()}this._audioLoaders=[],this._videoLoaders=[]}}],[{key:"currentSpeed",get:function(){return vF}},{key:"historyAvspeed",get:function(){var U=e.historySpeed.reduce((function(e,U){return e+U}),0);return 0===e.historySpeed.length?0:U/e.historySpeed.length}}]),e}();TF.historySpeed=[];var CF="danger_d_speed";var DF=function(){function e(U,t,n,F){var Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};c(this,e),this.bitrate=t,this.segment_duration=F||5e3,this.logger=Q.logger,this.openLog=Q.openLog,this.cdnHost=U.cdnHost,this._loadedPromise=new X,this._wasmPromise=new X,this.config=U,this.autoBitrateOpts=U.autoBitrateOpts||{},this.stall_penalty=this.autoBitrateOpts.stall_penalty||11,this.switch_penalty=this.autoBitrateOpts.switch_penalty||4,this.interval=this.autoBitrateOpts.interval||1e3;var l=U.progressTimer||1e3,i=this.autoBitrateOpts.startInterval||l;this.initInterval=.8*i,this._prealodMethod=U.preloadmethod||0,this._videoWidth=0,this._videoHeight=0,this._hasDeviceInfoChanged=!0,this._maxDefinition=this.autoBitrateOpts.maxDefinition||null,this._underflowDefinition=this.autoBitrateOpts.underflowDefinition||null,this.updateMediaInfos(n,!1)}return h(e,[{key:"onLoadWasm",value:function(){var e=this,U=this.module={onRuntimeInitialized:function(){e._wasmPromise.resolve()}};return(0,this.autoBitrateOpts.module)(U),this._wasmPromise}},{key:"updateMediaInfos",value:function(e){var U=this,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._heightToDefitionConfig=new Map,this._bitrateToDefitionConfig=new Map,this._definitionToDefitionConfig=new Map,e?(this.mediaInfos=e,this.mediaInfos.dynamic_video_list.forEach((function(e){U._heightToDefitionConfig.set(e.vheight,e),U._bitrateToDefitionConfig.set(e.bitrate,e),U._definitionToDefitionConfig.set(e.definition,e)})),this._maxDefinition&&(this._defaultMaxBitrate=this._getBitrate(this._maxDefinition)),this._underflowDefinition&&(this._underflowBitrate=this._getBitrate(this._underflowDefinition))):t&&console.error("baseAbr mediaInfos null")}},{key:"_getBitrate",value:function(e){var U;return(null===(U=this._definitionToDefitionConfig.get(e))||void 0===U?void 0:U.bitrate)||-1}},{key:"parseMPD",value:function(){if(this.setDebugModel(this.openLog),this.mediaInfos){this.logger("mediaInfos",this.mediaInfos);try{for(var e=[],U=this.mediaInfos.dynamic_video_list,t=0;t<U.length;t++){var n=U[t];e.push({stream_id:"s".concat(t),bandwidth:n.bitrate||n.bandwidth,width:n.vwidth||n.width,height:n.vheight||n.height,codec:n.codecs||n.codec_type||"h264",frame_rate:Number(n.fps)||-1,segment_duration:this.segment_duration})}var F={v_adaptation:e},Q=JSON.stringify(F);this.module.ccall("parseMPD","null",["string"],[Q])}catch(l){}}else console.warn("mediaInfos is null")}},{key:"_getDefautSpeed",value:function(e){var U=0,t=window.navigator.connection;if(t&&t.downlink)U=1024*navigator.connection.downlink/8,this.logger("initSpeed connect",U);else try{U=parseFloat(g.getItem(CF))||0,this.logger("initSpeed connect",U)}catch(n){}return 0===U&&(U=e&&e.historyAvspeed||0,this.logger("initSpeed history",U)),U}},{key:"setDebugModel",value:function(e){this.module._setDebugModel(e)}},{key:"updateBitrate",value:function(e){this.bitrate=e}},{key:"_updatePreloadSupplier",value:function(e,U){this.module._updatePreloadSupplier(e,U)}},{key:"updatePreloadSupplier",value:function(e){var U=this._getDefautSpeed();this._updatePreloadSupplier(U,e)}},{key:"getPreloadBitrate",value:function(){var e,U=null,t=[];try{this.logger("preloadMethod",this._prealodMethod),e=this.module._getPreloadBitrate(this._prealodMethod);for(var n=0;n<5;n++)t.push(this.module.HEAP32[e/Int32Array.BYTES_PER_ELEMENT+n]);var F={bitrate:t[0],pduration:t[1],preloadType:t[2],size:t[3],mediaType:t[4]};return this.logger("getPreloadBitrate",F),F}catch(Q){U=null,console.log("getPreloadBitrate",Q)}finally{this.module._free(e)}return U}},{key:"_updateDeviceInfo",value:function(e){try{if(this._hasDeviceInfoChanged){var U=window.devicePixelRatio||1;this.module._updateDeviceInfo(this._videoWidth||Number(this.config.width),this._videoHeight||Number(this.config.height),U,e||-1)}this._hasDeviceInfoChanged=!1}catch(t){console.log("_updateDeviceInfo")}}},{key:"preload",value:function(e){this.parseMPD(),this.updatePreloadSupplier(e),this._updateDeviceInfo(-1);var U=window.devicePixelRatio||1;return this.logger("baseAbr updateDeviceInfo width",this._videoWidth||Number(this.config.width),"height",this._videoHeight||Number(this.config.height),"dpr",U),this.getPreloadBitrate()}}]),e}();DF.SPPED_CACHE=CF;var gF="ABR_CHANGE_A",XF="UPDATE_AUTO_DESC",xF="ABR_START_PROGRESS",LF="MAX_BUFFER_CHANGE",GF="ABR_LIMIT_BITRATE",IF="__auto__",MF=0,YF=1,wF=-1,KF=0,jF=1,_F={PLAYBACK_BITRATE:"avg_play_bitrate",DOWNLOAD_BITRATE:"avg_download_bitrate",DOWNLOAD_NETWORK_SPEED:"avg_download_speed",PREDICT_NETWORK_SPEED:"avg_predict_speed",BUFFER_LENGTH:"avg_buffer_length",QOE:"avg_qoe"},HF=function(e){Z(t,e);var U=m(t);function t(e,n,F,Q,l){var i,d=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{logger:function(){},openLog:!1};c(this,t),(i=U.call(this,n,F,Q,l,d)).player=e,i.timerId=0,i.isOpenAutoDefi=!!i.autoBitrateOpts.isOpenAutoDefi,i._maxDefinition=i.autoBitrateOpts.maxDefinition||null,i.onPlayrateChange=i._onPlayrateChange.bind(W(i)),i.onPlay=i._onPlay.bind(W(i)),i._stop=i.stop.bind(W(i)),i._bufferRange=new Map,i._sortedBufferRange=[],i._lastCheckResolutionStamp=0,i._currentDefinition=null,i._isSeeking=!1,i._waitingStartTime=0,i._stallCount=0,i._seekState=MF,i._stallState=KF,i._videoCurrentTime=0,i._maxBitrate=-1,i.listeners=[{evt:"playbackrateChange",handler:i.onPlayrateChange},{evt:"ended",handler:i._stop},{evt:"error",handler:i._stop},{evt:"timeupdate",handler:i._onTimeUpdate.bind(W(i))},{evt:"addVideoBufferEnd",handler:i._bufferRangeUpdate.bind(W(i))},{evt:"canplay",handler:i._updateAutoDesc.bind(W(i))},{evt:"play",handler:i._onplayStart.bind(W(i))},{evt:LF,handler:i._onMaxBufferChange.bind(W(i))},{evt:"seeking",handler:i._onSeeking.bind(W(i))},{evt:"seeked",handler:i._onSeekEnd.bind(W(i))},{evt:"waiting",handler:i._onWaiting.bind(W(i))},{evt:"playing",handler:i._onPlaying.bind(W(i))}],i._hasStart=!1,i.listeners.forEach((function(e){var U=e.evt,t=e.handler;i.player.on(U,t)})),i._isPaused=!1,i._hasAddFrament=!1,i._eventInfo={local_time_ms:0,internet_speed:0,buffer_length:0,last_bitrate:0,now_bitrate:0,play_speed:1},i._bitrateSet=[],i._generalInfo={},i._currentInAbr=!1,i._hasCalcTimelineLog=!1,i._abr_play_info={start_play_time_ms:0,is_hint:0,playback_info:{internet_speed_record:[],play_bitrate_record:[],buffer_length_record:[],play_speed_record:[],qoe_record:[],qoe_a_record:[],qoe_b_record:[],qoe_c_record:[]}},i._abrMethod=i.autoBitrateOpts.method||0,i.logger("abr: constructor"),i._loopInterval=i.initInterval,i._tickCount=0,i._fps=30,v.install(),i.startTime=performance.now(),i.logger("time abr",(new Date).getTime()),i._maxCacheTimeVideo=i.config.preloadTime||5,i._maxCacheTimeAudio=i._maxCacheTimeVideo,i._prevDefinitionItem=null,i._currentItem=null,i._switchCount=0,i._switchBitrate=0,i._avgStatItems={};for(var r=Object.keys(_F),a=0;a<r.length;a++){var o=r[a],B=_F[o];i._avgStatItems[B]=new zF}return i._qoeArgs=[0,0,0,0],i._abrUsed=-1,i._abrAlwaysOn=1,i._prelaodInfo=null,i._hasLogStartInfo=!1,i._hasExecuteAbrAlgo=!1,i._lastExecuteTimeInMs=0,i}return h(t,[{key:"init",value:function(e){return this._mediaList=e,this.isOpenAutoDefi?this.onLoadWasm():this._wasmPromise.resolve(),this._wasmPromise}},{key:"execute",value:function(){return this.listenSize(),this.initFps(),this.onWinElemSizeChange(),this.onPlay()}},{key:"_onSeeking",value:function(){this._isSeeking=!0,this.player.currentTime<this._videoCurrentTime?this._seekState=wF:this._seekState=YF,this.logger("seekState",this._seekState)}},{key:"_onSeekEnd",value:function(){this._isSeeking=!1}},{key:"_onWaiting",value:function(){var e=this;if(!(this._isSeeking||this._waitingStartTime>0)){for(var U=this.player.video.buffered,t=this.player.currentTime,n=!1,F=0;F<U.length;F++){var Q=U.start(F),l=U.end(F);if(Q<=t&&t<l-1&&this.player.readyState<HTMLVideoElement.HAVE_ENOUGH_DATA){n=!0;break}}n&&(this._defaultMaxBitrate||this._underflowBitrate)&&(this.player.emit(GF),this._underflowBitrate>0&&(this._maxBitrate=this._underflowBitrate)),this._waitingStartTime=(new Date).getTime(),this._stallId=setTimeout((function(){clearTimeout(e._stallId),e._stallCount++,e._stallState=jF}),200)}}},{key:"_onPlaying",value:function(){this._waitingStartTime=0,this._stallState=KF,clearTimeout(this._stallId)}},{key:"initFps",value:function(){this.fpsDetection=new v,this.fpsDetection.start(),this._fps=this.fpsDetection.fps,this._hasDeviceInfoChanged=!0}},{key:"listenSize",value:function(){var e,U,t,n;this.mediaElem=this.player.video,this._onWinSizeChange=(e=this.onWinElemSizeChange.bind(this),U=1e3,t=!1,function(){for(var F=this,Q=arguments.length,l=new Array(Q),i=0;i<Q;i++)l[i]=arguments[i];var d=l,r=t&&!n;clearTimeout(n),n=setTimeout((function(){n=null,t||e.apply(F,d)}),U),r&&e.apply(F,d)}),window.addEventListener("resize",this._onWinSizeChange)}},{key:"onWinElemSizeChange",value:function(){if(this.mediaElem){var e=this.mediaElem.getBoundingClientRect();this._videoWidth=Math.floor(e.width),this._videoHeight=Math.floor(e.height),this._hasDeviceInfoChanged=!0}}},{key:"_onMaxBufferChange",value:function(e){var U=e.videoCacheTime,t=e.audioCacheTime;this._maxCacheTimeAudio=t,this._maxCacheTimeVideo=U}},{key:"_onTimeUpdate",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._sortedBufferRange&&0!==this._sortedBufferRange.length&&this._currentInAbr){this._videoCurrentTime=this.player.currentTime;var t=Date.now();if(!(t-this._lastCheckResolutionStamp<1e3&&0!==this._lastCheckResolutionStamp)||U){this._lastCheckResolutionStamp=t;for(var n=this.player.currentTime,F=0,Q=this._sortedBufferRange.length-1,l=null;F<=Q;){var i=Math.floor(F+(Q-F)/2),d=this._sortedBufferRange[i];if(n<d.start)Q=i-1;else{if(!(n>=d.end)){l=d;break}F=i+1}}if(l){var r=this._bitrateToDefitionConfig.get(l.bandwidth),a=r&&r.definition;if(this._currentDefinition===a&&!U||!a)return void(a||this.logger("error defintion, mpd配置与接口配置不一致"));this._currentDefinition=a,this._prevDefinitionItem=this._currentItem,this._currentFps=r.fps,this._currentItem=r,this._emitAutoDescChange(a,!1,this._currentFps,r)}}}}},{key:"_emitAutoDescChange",value:function(e,U,t,n){this.player.emit(XF,{definition:e,reset:U,fps:t,item:n,pre_item:this._prevDefinitionItem})}},{key:"_onplayStart",value:function(){this._hasStart=!0,this.logger("onplaystart")}},{key:"_updateAutoDesc",value:function(){var e=this;this._currentInAbr&&this._currentDefinition&&(this._updateId=setTimeout((function(){clearTimeout(e._updateId),e._emitAutoDescChange(e._currentDefinition,!1,e._currentFps,e._currentItem)}),0))}},{key:"_bufferRangeUpdate",value:function(e){if(void 0!==e.start){null===this._currentItem&&this._onTimeUpdate(null,!0);var U=e.start;this._hasAddFrament=!0,this._bufferRange.set(U,e);var t=E(this._bufferRange.values());this._sortedBufferRange=t.sort((function(e,U){return e.start-U.start})),this.avgStat(_F.DOWNLOAD_BITRATE,e.bandwidth)}}},{key:"_onPlayrateChange",value:function(){this.module&&this.updateBufferInfo()}},{key:"_onPlay",value:function(){var e=this;if(!this.isOpenAutoDefi)return this.logger("onPlay"),0;var U=0;try{this.logger("abr: loadeddata"),this.updateSwitchInfo(),this.parseMPD(),this.updateDeviceInfo();var n=t.getIsPlayAutoDefi(this.autoBitrateOpts);if(this.isOpenAutoDefi&&n){this._abrUsed=1;var F=this._getDefautSpeed(this.player);U=this._loopAbr(F),this.start(),this.logger("time abr start prgress",(new Date).getTime()),this.logger("time abr costTime",performance.now()-this.startTime),this.logger("abr onplay"),this.startTimer=setTimeout((function(){e._loopInterval=e.interval,clearTimeout(e.startTimer),e.logger("interval change")}),5e3)}}catch(Q){this.logger("abr: loadeddata error",Q),this.logger("time abr costTime err",performance.now()-this.startTime)}return U}},{key:"start",value:function(){if(this.logger("abr: start"),this._isPaused=!1,!this._hasCalcTimelineLog){var e=1===Math.floor(100*Math.random());this._abr_play_info.is_hint=e?1:0}this._hasCalcTimelineLog=!0,this._loop()}},{key:"_loop",value:function(){var e=this;this._isPaused||(clearTimeout(this.timerId),this.timerId=setTimeout((function(){if(!e.player.paused||!e.player.config.autoplay&&!e._hasStart){var U=e._hasAddFrament?void 0:e._getDefautSpeed(e.player);e._loopAbr(U)}e._loop()}),this._loopInterval))}},{key:"updateDeviceInfo",value:function(){try{if(this.fpsDetection){var e=this.fpsDetection.fps;e!==this._fps&&(this._fps=e,this._hasDeviceInfoChanged=!0)}this._updateDeviceInfo(this._fps)}catch(U){}}},{key:"updateBufferInfo",value:function(e){var U=this.player.playbackRate,t=this.bufferLength,n=e||Math.floor(this.player.downloadSpeed);this._tickCount<5&&0===n&&(n=this._getDefautSpeed(this.player),this.logger("initSpeed fix"));var F=-1===this._maxBitrate?this._defaultMaxBitrate:this._maxBitrate;return this.logger("maxCacheTimeAudio:",this._maxCacheTimeAudio,"maxCacheVideoTime",this._maxCacheTimeVideo,"seekState",this._seekState,"stallState",this._stallState,"maxBitrate",F),this.module._updateBufferInfo(U,this._maxCacheTimeAudio,this._maxCacheTimeVideo,t,t,n,this._seekState,this.player.currentTime,this._stallState,F),this._seekState=MF,this._eventInfo={internet_speed:n,buffer_length:t,last_bitrate:this.bitrate,play_speed:U},this.logger("playRate:",U,"buff:",t,"downloadSpeed:",n),{buffer:t,downloadSpeed:n}}},{key:"updateSwitchInfo",value:function(){var e=(new Date).getTime();this._openTimeMs=e,this._abr_play_info.start_play_time_ms=e;var U,t,n=this.player.config.preloadTime||50,F=(t=(U=e).toString(16)).length<=8?{high:0,low:U}:{high:parseInt(t.substr(0,t.length-8),16),low:parseInt(t.substr(t.length-8),16)},Q=this.autoBitrateOpts.noStallCheckTime||5,l=this.openLog;this.logger("openTime:",e,"this.logger",l),this.module._updateSwitchInfo(F.low,F.high,Q,l,this.stall_penalty,this.switch_penalty);var i=this._mediaList.video,d=i.map((function(e){var U=e.bandwidth,t=e.bitrate;return U||t}));this._bitrateSet=d.map((function(e,U){return{bitrate:e,codecs:i[U].codecs||i[U].codec_type}})),this._generalInfo={max_cache_time:n,bitrate_set:this._bitrateSet,segment_duration:this.segment_duration,preload_info:{},startup_info:{}}}},{key:"updatePreloadCacheInfo",value:function(e){try{this._prelaodInfo=e,this.logger("update preloadInfo",e),e&&e.item_num!==e.items.length&&(this.logger("preloadInfo invalid"),this._prelaodInfo=null)}catch(U){this.logger("updatePreloadCacheInfo",U),this._prelaodInfo=null}}},{key:"updatePreloadLogInfo",value:function(e){this._generalInfo.preload_info=e||{}}},{key:"_updatePreloadInfo",value:function(){try{var e=this.player.getPreloadInfos();if(e){var U=e.preloadInfo,t=e.abr;this.updatePreloadLogInfo(U),t&&this.updatePreloadCacheInfo(U)}if(this.logger("_updatePreloadInfo preloadinfos",e),null!=this._prelaodInfo){var n=JSON.stringify(this._prelaodInfo);this.module.ccall("updatePreloadInfo","null",["string"],[n])}else this.logger("_updatePreloadInfo preloadinfo null, no preload")}catch(F){this.logger("_updatePreloadInfo err",F)}}},{key:"_loopAbr",value:function(e){var U;this._tickCount++;var t=[];try{this.updateDeviceInfo();var n=this.updateBufferInfo(e),F=n.downloadSpeed,Q=n.buffer;U=this.module._getPredictedBitrate(this.bitrate,this._abrMethod);for(var l=0;l<7;l++)t.push(this.module.HEAP32[U/Int32Array.BYTES_PER_ELEMENT+l]);var i=t[0],d=1===t[1];this._eventInfo.now_bitrate=i,this._eventInfo.local_time_ms=(new Date).getTime();var r=0;if(i!==this.bitrate&&0!==i){var a=this.bitrate;r=Math.abs(a-i);for(var o=[],B=this.player.video.buffered,s=0;s<B.length;s++)o.push({start:B.start(s),end:B.end(s)});var R=this._videoWidth||Number(this.config.width),c=this._videoHeight||Number(this.config.height),V=(new Date).getTime(),h={speed:"".concat(F," KB/s"),buffer_length:"".concat(Q," s"),video_pos:this.player.currentTime,all_buffers:o,seek_state:this._seekState,stall_state:this._stallState,screen_width:R,screen_height:c,dpr:window&&window.devicePixelRatio,playbackRate:this.player.playbackRate,bitrateSet:this._bitrateSet,abrMethod:this._abrMethod,delta:this._hasExecuteAbrAlgo?V-this._lastExecuteTimeInMs:0};this._lastExecuteTimeInMs=V,this._hasExecuteAbrAlgo=!0,this.player.emit(gF,this.bitrate,i,d,JSON.stringify(h)),this.logger("abr loop predicte:",i,"willStall:",d,"switchBitrate",r,"cur",a),this.bitrate=i}this._hasLogStartInfo||(this._hasLogStartInfo=!0,this._generalInfo.startup_info={predict_bitrate:i,download_speed:F,screen_width:this._videoWidth||Number(this.config.width),screen_height:this._videoHeight||Number(this.config.height),device_pixel_ratio:window&&window.devicePixelRatio,screen_fps:this._fps,startup_method:this._abrMethod}),this.player.emit("ABR_LOOP"),this.onAbrLoop(F,t[2],r,t.slice(3))}catch(u){this.logger("abr error",u),console.log("error",u)}finally{this.module._free(U)}return this.bitrate}},{key:"stop",value:function(){!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&(this._abrAlwaysOn=-1),clearTimeout(this.timerId),this._isPaused=!0,this.logger("abr: stop")}},{key:"destroy",value:function(){var e=this;this._stop(),this.listeners.forEach((function(U){var t=U.evt,n=U.handler;e.player.off(t,n)})),this.player=null,this._heightToDefitionConfig=null,this._bitrateToDefitionConfig=null,this._bufferRange=null,this._sortedBufferRange=null,this.module=null,clearTimeout(this._stallId),clearTimeout(this._updateId),clearTimeout(this.startTimer),window.removeEventListener("resize",this._onWinSizeChange),this.fpsDetection&&this.fpsDetection.stop(),this._maxBitrate=-1,this.player=null}},{key:"eventInfo",get:function(){return this._eventInfo}},{key:"generalInfo",get:function(){return this._generalInfo}},{key:"bufferLength",get:function(){var e=this.player.getBufferedRange(),U=this.player.video.currentTime,t=e[1]-Math.max(e[0],U);return t=Math.max(0,t).toFixed(2),parseFloat(t)}},{key:"downloadSpeed",get:function(){return Math.floor(this.player.downloadSpeed)}},{key:"nowBitrate",get:function(){return this.bitrate}},{key:"openTimeMs",get:function(){return this._openTimeMs}},{key:"isCurrentInAbr",get:function(){return this._currentInAbr},set:function(e){this._currentInAbr=e}},{key:"onAbrLoop",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(this._qoeArgs=n,this._currentItem&&this.avgStat(_F.PLAYBACK_BITRATE,this._currentItem.bitrate),this.avgStat(_F.DOWNLOAD_NETWORK_SPEED,1e3*e*8),this.avgStat(_F.PREDICT_NETWORK_SPEED,U),this.avgStat(_F.BUFFER_LENGTH,this.bufferLength),this.avgStat(_F.QOE,this.getQoeRelValue(0)),t>0&&(this._switchCount++,this._switchBitrate+=t),this._abr_play_info.is_hint){var F=this,Q=((new Date).getTime()-this.openTimeMs)/1e3;Q=parseFloat(Q.toFixed(2)),this._abr_play_info.playback_info.internet_speed_record.push([Q,F.downloadSpeed]),this._abr_play_info.playback_info.play_bitrate_record.push([Q,F.nowBitrate]),this._abr_play_info.playback_info.buffer_length_record.push([Q,F.bufferLength]),this._abr_play_info.playback_info.play_speed_record.push([Q,this.player.playbackRate]),this._abr_play_info.playback_info.qoe_record.push([Q,this.getQoeRelValue(0)]),this._abr_play_info.playback_info.qoe_a_record.push([Q,this.getQoeRelValue(1)]),this._abr_play_info.playback_info.qoe_b_record.push([Q,this.getQoeRelValue(2)]),this._abr_play_info.playback_info.qoe_c_record.push([Q,this.getQoeRelValue(3)])}}},{key:"getQoeRelValue",value:function(e){return this._qoeArgs[e]/100}},{key:"avgStat",value:function(e,U){var t=this._avgStatItems[e];t&&t.add(U)}},{key:"getAbrPlayInfo",value:function(){return this._abr_play_info}},{key:"updateAbrMethod",value:function(e){this._abrMethod=e}},{key:"getAbrMethod",value:function(){return this._abrMethod}},{key:"getAbrVVStats",value:function(){for(var e={},U=Object.keys(_F),t=0;t<U.length;t++){var n=U[t],F=_F[n],Q=this._avgStatItems[F];e[F]=Q.avg()}return e.switch_counts=this._switchCount,e.avg_switch_bitrate=0===this._switchCount?0:this._switchBitrate/this._switchCount,e.abr_qoe=this.getQoeRelValue(0),e.abr_qoe_a=this.getQoeRelValue(1),e.abr_qoe_b=this.getQoeRelValue(2),e.abr_qoe_c=this.getQoeRelValue(3),e.abr_method=this._abrMethod,e.abr_used=this._abrUsed,e.abr_always_on=this._abrAlwaysOn,this.logger("abrVVStats",e),e}}],[{key:"getIsPlayAutoDefi",value:function(e){return!!e.isPlayAutoDefi}}]),t}(DF),zF=function(){function e(){c(this,e),this.total=0,this.count=0}return h(e,[{key:"add",value:function(e){this.total+=e,this.count++}},{key:"avg",value:function(){if(0===this.count)return 0;var e=this.total/this.count;return Math.floor(e)}}]),e}(),OF=it,PF=function(e){Z(t,e);var U=m(t);function t(e,n,F,Q){var l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};return c(this,t),U.call(this,e,n,F,Q,l)}return h(t,[{key:"init",value:function(){return this.onLoadWasm()}},{key:"preloadPredict",value:function(){return this.preload(OF.VIDEO)}}]),t}(DF),AF=function(e){Z(t,e);var U=m(t);function t(e){var n;return c(this,t),(n=U.call(this)).loggerConfig=e,n._isWasmSupport=HU(),n}return h(t,[{key:"init",value:function(e){var U=e.autoBitrateOpts||{},t=U.module;return this.isOpenAbr=U.isOpenAutoDefi,this.isOpenAbr&&!t&&(console.warn("if open abr, need [module], abr open change to close"),this.isOpenAbr=!1),this._isWasmSupport&&t&&this.isOpenAbr?(this._abrPreloadInst=new PF(e,0,null,5,this.loggerConfig),this._abrPreloadInst.init()):Promise.resolve()}},{key:"preloadPredict",value:function(e){var U=this._mediaInfos,t=0,n=0;if(this._isWasmSupport&&this.isOpenAbr&&(e.useAbr||void 0===e.useAbr)){this._abrPreloadInst.updateMediaInfos(this._mediaInfos);var F=this._abrPreloadPredict();t=F.videoIdx,n=F.time}else t=this.getIdx(U.dynamic_video_list,e.defaultDefinition),this._cachedData=null;var Q=U.dynamic_video_list[t]||U.dynamic_video_list[0];return{bandwidth:Q.bitrate||Q.bandwidth,executeTime:n}}},{key:"_abrPreloadPredict",value:function(){var e=this._abrPreloadInst.preloadPredict();this._cachedData=e;var U=e.bitrate,t=0,n=this.bandwidth2item[U];if(n){var F=n.definition;t=this.getIdx(this._mediaInfos.dynamic_video_list,F)}return{videoIdx:t,time:e.pduration}}},{key:"cachedData",get:function(){return this._cachedData}}]),t}(Xt);function qF(e){e.duration=e.dashOpts.Data.Duration,e.dashOpts.dynamic_video=e.dashOpts.Data,e.dashOpts.dynamic_video.dynamic_video_list=[],e.dashOpts.dynamic_video.dynamic_audio_list=[],e.dashOpts.dynamic_video.dynamic_type=e.dashOpts.Data.AdaptiveInfo.AdaptiveType,e.dashOpts.dynamic_video.main_url=e.dashOpts.Data.AdaptiveInfo.MainPlayUrl;for(var U=0;U<e.dashOpts.Data.PlayInfoList.length;U++){var t=e.dashOpts.Data.PlayInfoList[U],n={backup_url_1:t.BackupPlayUrl,bitrate:e.dashOpts.Data.VideoID?t.Bitrate:1e3*t.Bitrate,check_info:t.CheckInfo,codec_type:t.Codec,definition:t.Definition,encrypt:!(!t.PlayAuth||!t.PlayAuthID&&!t.PlayAuthId),file_hash:t.FileHash||t.Md5,file_id:t.FileID,index_range:t.IndexRange,init_range:t.InitRange,kid:t.PlayAuthID||t.PlayAuthId,logo_type:t.Logo||t.LogoType,main_url:t.MainPlayUrl,preload_interval:t.PreloadInterval,preload_max_step:t.PreloadMaxStep,preload_min_step:t.PreloadMinStep,preload_size:t.PreloadSize,quality:t.Quality,size:t.Size,spade_a:t.PlayAuth,vheight:t.Height,vtype:t.Format,vwidth:t.Width};"video"===t.MediaType||"video"===t.FileType?e.dashOpts.dynamic_video.dynamic_video_list.push(n):"audio"!==t.MediaType&&"audio"!==t.FileType||e.dashOpts.dynamic_video.dynamic_audio_list.push(n)}}var $F=null,eQ=function(e){Z(n,e);var U,t=m(n);function n(e,U,F){var Q;return c(this,n),U.vtype=xt.DASH,(Q=t.call(this,U)).player=e,Q.logger=F||function(){},Q.loader=new TF({loaderCount:1,loaderType:Ge},Q.preloadManager,"preloader"),Q}return h(n,[{key:"before",value:function(){var e=this;this.handlers={start:function(U){return e.start(U)},onRequest:function(U,t){var n=U.url,F=U.range,Q=U.extData;return e.getData(n,F,Q,t)}},this.loggerConfig={logger:function(){},openLog:!1};try{!!localStorage.getItem("abrdebug")&&(this.loggerConfig.logger=console.log,this.loggerConfig.openLog=!0)}catch(U){}this.predictInst=new AF(this.loggerConfig)}},{key:"start",value:function(e){var U=this,t=new X,F=e.payload;if("TOP"===e.playInfoType){var Q={dashOpts:e.payload};qF(Q),F=Q.dashOpts.dynamic_video}F.dynamic_video_list&&F.dynamic_video_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate})),F.dynamic_audio_list&&F.dynamic_audio_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate}));var l=new yF("anytext",{dynamic_video:F},this),i={mediaInfos:{dynamic_video_list:[],dynamic_audio_list:[]},onObtain:function(){var e=new X;return e.resolve(i.mediaInfos),e},onTransform:function(t){var Q=new X;if(n.BitRateAdapter){var i=U.getUserSelectDefinition(),d=Ut.getSelectorList(F,e.duration),r=n.BitRateAdapter.getSuitableBitrate(d,i);U.logger("[xgplayer-encrypt] preloader getSuitableBitrate",r,"userSelectDefinition",i),r&&(t.bandwidth=r.bitrate)}var a=l.mediaList.video||[],o=l.mediaList.audio||[],B=e.vid;if("segment_template"===l.dashType)U._calRequests(l,t,Q,e,!0);else{var s=[];if(o&&o.length>0){var R=U.makeInitBaseSegemntRequest(l,e.duration,"audio",0,void 0,B);s.push(R)}if(a&&a.length>0){var c=U._calVideoItemIdx(a,t.bandwidth)||0,V=a[c].definition,h=U.makeInitBaseSegemntRequest(l,e.duration,"video",c,V,B);s.push(h)}Promise.all(s).then((function(){U._calRequests(l,t,Q,e)})).catch((function(e){console.warn&&console.warn("catch no reqeuset",e),Q.resolve([])}))}return Q}};return l.once("ready",(function(){i.type=l.type,i.mediaInfos.dynamic_video_list=l.mediaList.video||[],i.mediaInfos.dynamic_audio_list=l.mediaList.audio||[],t.resolve(i)})),l.init(),t}},{key:"_calRequests",value:function(e,U,t,n){var F=arguments.length>4&&void 0!==arguments[4]&&arguments[4],Q=[],l=U.bandwidth,i=U.time,d=U.executeTime,r=e.mediaList.video||[],a=e.mediaList.audio||[],o=n.vid;if(a&&a.length>0){a[0].codec_type=e.videoCodecType;var B=this._calUrls(a[0],i,d,"audio",o,null,F);Q=Q.concat(B)}if(r&&r.length>0){var s=r[this._calVideoItemIdx(r,l)||0];s.codec_type=e.videoCodecType;var R=this._calUrls(s,i,d,"video",o,s.definition,F);Q=Q.concat(R)}0===Q.length&&console.warn&&console.warn("no reqeusts from preloader"),t.resolve(Q)}},{key:"_calUrls",value:function(e,U,t,n,F,Q){var l=[];if(e){var i=e;arguments.length>6&&void 0!==arguments[6]&&arguments[6]&&l.push({url:i.initSegment,range:i.initSegmentRange||[],extData:{cacheKey:Ut.generateUniqueKey({vid:F,mediaType:n,codecType:i.codec_type,format:"dash",bitrate:i.bandwidth||i.bitrate}),vid:F,format:"dash",isInitSegment:!0,mediaType:n,useUrlRange:Ut.validateUrlRange(this.options.url_range_domains,i.initSegment)}});var d=e.mediaSegments,r=d[this._calStartEnd(d,U,t)];l.push({url:r.url,range:r.range||[],extData:{cacheKey:Ut.generateUniqueKey({vid:F,mediaType:n,codecType:i.codec_type,format:"dash",start:r.start,end:r.end,definition:Q,bitrate:i.bandwidth||i.bitrate}),vid:F,format:"dash",isInitSegment:!1,mediaType:n,useUrlRange:Ut.validateUrlRange(this.options.url_range_domains,r.url)}})}return l}},{key:"_calStartEnd",value:function(e,U){for(var t=-1,n=0;n<e.length;n++){var F=e[n],Q=U||0;if(F.start>=Q&&Q<F.end){t=n;break}}return-1===t&&(t=0),t}},{key:"_calVideoItemIdx",value:function(e,U){for(var t=0;t<e.length;t++){var n=e[t];if(n&&n.bandwidth===U)return t}return null}},{key:"getData",value:(U=R(o().mark((function e(U){var t,n,F,Q,l,i,d,r=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>1&&void 0!==r[1]?r[1]:[],n=r.length>2&&void 0!==r[2]?r[2]:{},F=r.length>3?r[3]:void 0,e.prev=3,e.next=6,this.loader.load(n.mediaType,U,t,n,!0);case 6:return Q=e.sent,l=Q.res,i=Q.headers,d=Q.cacheKey,F&&F({total:l.byteLength,loaded:l.byteLength,cacheKey:d||n.cacheKey}),e.abrupt("return",{res:l,headers:i});case 14:return e.prev=14,e.t0=e.catch(3),console.log("preload get data error",e.t0),e.abrupt("return",{res:null});case 18:case"end":return e.stop()}}),e,this,[[3,14]])}))),function(e){return U.apply(this,arguments)})},{key:"makeInitBaseSegemntRequest",value:function(e,U,t,n,F,Q){var l=this,i=new X,d=e.mediaList[t][n],r=[d.initSegmentRange[0],d.sidxRange[1]],a=d.initSegment,o={mediaType:t,vid:Q,definition:F,useUrlRange:Ut.validateUrlRange(this.options.url_range_domains,a),timeout:-1,isInitSegment:!0,bitrate:d.bandwidth||d.bitrate,codecType:e.videoCodecType||"h264"};return this.getData(a,r,o,(function(e){var U=Object.assign({},e,{vid:Q,mediaType:t,isInitSegment:!0,format:"dash"});l._preloadManager.onCacheSegment(U)}),-1).then((function(F){var Q=F.res;Q&&"error"!==Q?l.handleInitData(Q,r,d.sidxRange).then((function(F){F.sidxSegmentRes&&e.getSidx(F.sidxSegmentRes,t,n,U),Ut.validateFragment(F.initSegmentRes,r)?i.resolve(F.initSegmentRes):(i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0}),l.logger("initSegmentRequest 分片校验失败"))})).catch((function(e){i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0}),l.logger("initSegmentRequest error",e)})):i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0})})).catch((function(e){i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0}),l.logger("initSegmentRequest error",e)})),i}},{key:"handleInitData",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new X;if(e instanceof ArrayBuffer){var F=0===U.length?e:e.slice(U[0],U[1]+1),Q=null===t?null:e.slice(t[0],t[1]+1);n.resolve({initSegmentRes:F,sidxSegmentRes:Q})}else;return n}},{key:"checkIfExistInList",value:function(e){for(var U=this._preloadManager._preloadDataList,t=0;t<U.length;t++)if(e===U[t].data.vid)return!0;return!1}},{key:"addPreloader",value:function(e,U){if(e.data){e.data.vtype||(e.data.vtype=xt.DASH);var t=e.data.vid,n=this.checkIfExistInList(t);this.logger("[Preloader-Dash] addPreloader checkIfExistInList",t,n),U&&t===U||n||this.addDashPreloader(e)}}},{key:"addPreloaderList",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],U=arguments.length>1?arguments[1]:void 0,t=0;t<e.length;t++)this.addPreloader(e[t],U)}},{key:"setUserSelectDefinition",value:function(e){this._preloadManager&&(this._preloadManager.userDefinition=e)}},{key:"getUserSelectDefinition",value:function(){return this._preloadManager.userDefinition||null}}],[{key:"BitRateAdapter",get:function(){return $F},set:function(e){$F=e}}]),n}(gt);eQ.encryptUtils=qU;var UQ=tn,tQ={function:!0,object:!0},nQ=function(e){return UQ(e)&&tQ[typeof e]||!1},FQ=function(e){if(!nQ(e))throw new TypeError(e+" is not an Object");return e},QQ=Object.prototype.hasOwnProperty,lQ=function(e){var U,t=arguments[1];if(FQ(e),void 0===t)QQ.call(e,"__ee__")&&delete e.__ee__;else{if(!(U=QQ.call(e,"__ee__")&&e.__ee__))return;U[t]&&delete U[t]}},iQ=eU(lQ),dQ={exports:{}};!function(e,U){!function(e){var U="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==$e?$e:"undefined"!=typeof self?self:{};function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var n=function(e){return e&&e.Math==Math&&e},F=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof U&&U)||function(){return this}()||Function("return this")(),Q={},l=function(e){try{return!!e()}catch(Vh){return!0}},i=!l((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),d={},r={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,o=a&&!r.call({1:2},1);d.f=o?function(e){var U=a(this,e);return!!U&&U.enumerable}:r;var B=function(e,U){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:U}},s={}.toString,R=function(e){return s.call(e).slice(8,-1)},c=R,V="".split,h=l((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==c(e)?V.call(e,""):Object(e)}:Object,u=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Z=h,S=u,J=function(e){return Z(S(e))},p=function(e){return"object"==typeof e?null!==e:"function"==typeof e},W=p,m=function(e,U){if(!W(e))return e;var t,n;if(U&&"function"==typeof(t=e.toString)&&!W(n=t.call(e)))return n;if("function"==typeof(t=e.valueOf)&&!W(n=t.call(e)))return n;if(!U&&"function"==typeof(t=e.toString)&&!W(n=t.call(e)))return n;throw TypeError("Can't convert object to primitive value")},E=u,k=function(e){return Object(E(e))},y=k,N={}.hasOwnProperty,b=function(e,U){return N.call(y(e),U)},f=p,v=F.document,T=f(v)&&f(v.createElement),C=function(e){return T?v.createElement(e):{}},D=C,g=!i&&!l((function(){return 7!=Object.defineProperty(D("div"),"a",{get:function(){return 7}}).a})),X=i,x=d,L=B,G=J,I=m,M=b,Y=g,w=Object.getOwnPropertyDescriptor;Q.f=X?w:function(e,U){if(e=G(e),U=I(U,!0),Y)try{return w(e,U)}catch(t){}if(M(e,U))return L(!x.f.call(e,U),e[U])};var K={},j=p,_=function(e){if(!j(e))throw TypeError(String(e)+" is not an object");return e},H=i,z=g,O=_,P=m,A=Object.defineProperty;K.f=H?A:function(e,U,t){if(O(e),U=P(U,!0),O(t),z)try{return A(e,U,t)}catch(n){}if("get"in t||"set"in t)throw TypeError("Accessors not supported");return"value"in t&&(e[U]=t.value),e};var q=K,$=B,ee=i?function(e,U,t){return q.f(e,U,$(1,t))}:function(e,U,t){return e[U]=t,e},Ue={exports:{}},te=F,ne=ee,Fe=function(e,U){try{ne(te,e,U)}catch(t){te[e]=U}return U},Qe=Fe,le="__core-js_shared__",ie=F[le]||Qe(le,{}),de=ie,re=Function.toString;"function"!=typeof de.inspectSource&&(de.inspectSource=function(e){return re.call(e)});var ae=de.inspectSource,oe=ae,Be=F.WeakMap,se="function"==typeof Be&&/native code/.test(oe(Be)),Re={exports:{}},ce=ie;(Re.exports=function(e,U){return ce[e]||(ce[e]=void 0!==U?U:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var Ve,he,ue,Ze=Re.exports,Se=0,Je=Math.random(),pe=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Se+Je).toString(36)},We=pe,me=Ze("keys"),Ee=function(e){return me[e]||(me[e]=We(e))},ke={},ye=se,Ne=p,be=ee,fe=b,ve=ie,Te=Ee,Ce=ke,De="Object already initialized",ge=F.WeakMap;if(ye||ve.state){var Xe=ve.state||(ve.state=new ge),xe=Xe.get,Le=Xe.has,Ge=Xe.set;Ve=function(e,U){if(Le.call(Xe,e))throw new TypeError(De);return U.facade=e,Ge.call(Xe,e,U),U},he=function(e){return xe.call(Xe,e)||{}},ue=function(e){return Le.call(Xe,e)}}else{var Ie=Te("state");Ce[Ie]=!0,Ve=function(e,U){if(fe(e,Ie))throw new TypeError(De);return U.facade=e,be(e,Ie,U),U},he=function(e){return fe(e,Ie)?e[Ie]:{}},ue=function(e){return fe(e,Ie)}}var Me={set:Ve,get:he,has:ue,enforce:function(e){return ue(e)?he(e):Ve(e,{})},getterFor:function(e){return function(U){var t;if(!Ne(U)||(t=he(U)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return t}}},Ye=F,we=ee,Ke=b,je=Fe,_e=ae,He=Me.get,ze=Me.enforce,Oe=String(String).split("String");(Ue.exports=function(e,U,t,n){var F,Q=!!n&&!!n.unsafe,l=!!n&&!!n.enumerable,i=!!n&&!!n.noTargetGet;"function"==typeof t&&("string"!=typeof U||Ke(t,"name")||we(t,"name",U),(F=ze(t)).source||(F.source=Oe.join("string"==typeof U?U:""))),e!==Ye?(Q?!i&&e[U]&&(l=!0):delete e[U],l?e[U]=t:we(e,U,t)):l?e[U]=t:je(U,t)})(Function.prototype,"toString",(function(){return"function"==typeof this&&He(this).source||_e(this)}));var Pe=Ue.exports,Ae=F,qe=F,eU=function(e){return"function"==typeof e?e:void 0},UU=function(e,U){return arguments.length<2?eU(Ae[e])||eU(qe[e]):Ae[e]&&Ae[e][U]||qe[e]&&qe[e][U]},tU={},nU=Math.ceil,FU=Math.floor,QU=function(e){return isNaN(e=+e)?0:(e>0?FU:nU)(e)},lU=QU,iU=Math.min,dU=function(e){return e>0?iU(lU(e),9007199254740991):0},rU=QU,aU=Math.max,oU=Math.min,BU=function(e,U){var t=rU(e);return t<0?aU(t+U,0):oU(t,U)},sU=J,RU=dU,cU=BU,VU=function(e){return function(U,t,n){var F,Q=sU(U),l=RU(Q.length),i=cU(n,l);if(e&&t!=t){for(;l>i;)if((F=Q[i++])!=F)return!0}else for(;l>i;i++)if((e||i in Q)&&Q[i]===t)return e||i||0;return!e&&-1}},hU={includes:VU(!0),indexOf:VU(!1)},uU=b,ZU=J,SU=hU.indexOf,JU=ke,pU=function(e,U){var t,n=ZU(e),F=0,Q=[];for(t in n)!uU(JU,t)&&uU(n,t)&&Q.push(t);for(;U.length>F;)uU(n,t=U[F++])&&(~SU(Q,t)||Q.push(t));return Q},WU=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],mU=pU,EU=WU.concat("length","prototype");tU.f=Object.getOwnPropertyNames||function(e){return mU(e,EU)};var kU={};kU.f=Object.getOwnPropertySymbols;var yU=tU,NU=kU,bU=_,fU=UU("Reflect","ownKeys")||function(e){var U=yU.f(bU(e)),t=NU.f;return t?U.concat(t(e)):U},vU=b,TU=fU,CU=Q,DU=K,gU=l,XU=/#|\.prototype\./,xU=function(e,U){var t=GU[LU(e)];return t==MU||t!=IU&&("function"==typeof U?gU(U):!!U)},LU=xU.normalize=function(e){return String(e).replace(XU,".").toLowerCase()},GU=xU.data={},IU=xU.NATIVE="N",MU=xU.POLYFILL="P",YU=xU,wU=F,KU=Q.f,jU=ee,_U=Pe,HU=Fe,zU=function(e,U){for(var t=TU(U),n=DU.f,F=CU.f,Q=0;Q<t.length;Q++){var l=t[Q];vU(e,l)||n(e,l,F(U,l))}},OU=YU,PU=function(e,U){var t,n,F,Q,l,i=e.target,d=e.global,r=e.stat;if(t=d?wU:r?wU[i]||HU(i,{}):(wU[i]||{}).prototype)for(n in U){if(Q=U[n],F=e.noTargetGet?(l=KU(t,n))&&l.value:t[n],!OU(d?n:i+(r?".":"#")+n,e.forced)&&void 0!==F){if(typeof Q==typeof F)continue;zU(Q,F)}(e.sham||F&&F.sham)&&jU(Q,"sham",!0),_U(t,n,Q,e)}};function AU(){AU=function(){return e};var e={},U=Object.prototype,t=U.hasOwnProperty,n=Object.defineProperty||function(e,U,t){e[U]=t.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",l=F.asyncIterator||"@@asyncIterator",i=F.toStringTag||"@@toStringTag";function d(e,U,t){return Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[U]}try{d({},"")}catch(N){d=function(e,U,t){return e[U]=t}}function r(e,U,t,F){var Q=U&&U.prototype instanceof B?U:B,l=Object.create(Q.prototype),i=new E(F||[]);return n(l,"_invoke",{value:J(e,t,i)}),l}function a(e,U,t){try{return{type:"normal",arg:e.call(U,t)}}catch(N){return{type:"throw",arg:N}}}e.wrap=r;var o={};function B(){}function s(){}function R(){}var c={};d(c,Q,(function(){return this}));var V=Object.getPrototypeOf,h=V&&V(V(k([])));h&&h!==U&&t.call(h,Q)&&(c=h);var u=R.prototype=B.prototype=Object.create(c);function Z(e){["next","throw","return"].forEach((function(U){d(e,U,(function(e){return this._invoke(U,e)}))}))}function S(e,U){function F(n,Q,l,i){var d=a(e[n],e,Q);if("throw"!==d.type){var r=d.arg,o=r.value;return o&&"object"==typeof o&&t.call(o,"__await")?U.resolve(o.__await).then((function(e){F("next",e,l,i)}),(function(e){F("throw",e,l,i)})):U.resolve(o).then((function(e){r.value=e,l(r)}),(function(e){return F("throw",e,l,i)}))}i(d.arg)}var Q;n(this,"_invoke",{value:function(e,t){function n(){return new U((function(U,n){F(e,t,U,n)}))}return Q=Q?Q.then(n,n):n()}})}function J(e,U,t){var n="suspendedStart";return function(F,Q){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(t.method=F,t.arg=Q;;){var l=t.delegate;if(l){var i=p(l,t);if(i){if(i===o)continue;return i}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var d=a(e,U,t);if("normal"===d.type){if(n=t.done?"completed":"suspendedYield",d.arg===o)continue;return{value:d.arg,done:t.done}}"throw"===d.type&&(n="completed",t.method="throw",t.arg=d.arg)}}}function p(e,U){var t=U.method,n=e.iterator[t];if(void 0===n)return U.delegate=null,"throw"===t&&e.iterator.return&&(U.method="return",U.arg=void 0,p(e,U),"throw"===U.method)||"return"!==t&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+t+"' method")),o;var F=a(n,e.iterator,U.arg);if("throw"===F.type)return U.method="throw",U.arg=F.arg,U.delegate=null,o;var Q=F.arg;return Q?Q.done?(U[e.resultName]=Q.value,U.next=e.nextLoc,"return"!==U.method&&(U.method="next",U.arg=void 0),U.delegate=null,o):Q:(U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,o)}function W(e){var U={tryLoc:e[0]};1 in e&&(U.catchLoc=e[1]),2 in e&&(U.finallyLoc=e[2],U.afterLoc=e[3]),this.tryEntries.push(U)}function m(e){var U=e.completion||{};U.type="normal",delete U.arg,e.completion=U}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function k(e){if(e){var U=e[Q];if(U)return U.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,F=function U(){for(;++n<e.length;)if(t.call(e,n))return U.value=e[n],U.done=!1,U;return U.value=void 0,U.done=!0,U};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return s.prototype=R,n(u,"constructor",{value:R,configurable:!0}),n(R,"constructor",{value:s,configurable:!0}),s.displayName=d(R,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var U="function"==typeof e&&e.constructor;return!!U&&(U===s||"GeneratorFunction"===(U.displayName||U.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,d(e,i,"GeneratorFunction")),e.prototype=Object.create(u),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),d(S.prototype,l,(function(){return this})),e.AsyncIterator=S,e.async=function(U,t,n,F,Q){void 0===Q&&(Q=Promise);var l=new S(r(U,t,n,F),Q);return e.isGeneratorFunction(t)?l:l.next().then((function(e){return e.done?e.value:l.next()}))},Z(u),d(u,i,"Generator"),d(u,Q,(function(){return this})),d(u,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var U=Object(e),t=[];for(var n in U)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in U)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=k,E.prototype={constructor:E,reset:function(e){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(m),!e)for(var U in this)"t"===U.charAt(0)&&t.call(this,U)&&!isNaN(+U.slice(1))&&(this[U]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var U=this;function n(t,n){return l.type="throw",l.arg=e,U.next=t,n&&(U.method="next",U.arg=void 0),!!n}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],l=Q.completion;if("root"===Q.tryLoc)return n("end");if(Q.tryLoc<=this.prev){var i=t.call(Q,"catchLoc"),d=t.call(Q,"finallyLoc");if(i&&d){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}else if(i){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}}}},abrupt:function(e,U){for(var n=this.tryEntries.length-1;n>=0;--n){var F=this.tryEntries[n];if(F.tryLoc<=this.prev&&t.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=U&&U<=Q.finallyLoc&&(Q=null);var l=Q?Q.completion:{};return l.type=e,l.arg=U,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(l)},complete:function(e,U){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&U&&(this.next=U),o},finish:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),m(t),o}},catch:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var F=n.arg;m(t)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,U,t){return this.delegate={iterator:k(e),resultName:U,nextLoc:t},"next"===this.method&&(this.arg=void 0),o}},e}function qU(e){return(qU="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $U(e,U,t,n,F,Q,l){try{var i=e[Q](l),d=i.value}catch(r){return void t(r)}i.done?U(d):Promise.resolve(d).then(n,F)}function et(e){return function(){var U=this,t=arguments;return new Promise((function(n,F){var Q=e.apply(U,t);function l(e){$U(Q,n,F,l,i,"next",e)}function i(e){$U(Q,n,F,l,i,"throw",e)}l(void 0)}))}}function Ut(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function tt(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,at(n.key),n)}}function nt(e,U,t){return U&&tt(e.prototype,U),t&&tt(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ft(e,U,t){return(U=at(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function Qt(e,U){if("function"!=typeof U&&null!==U)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(U&&U.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),U&&it(e,U)}function lt(e){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function it(e,U){return(it=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,U){return e.__proto__=U,e})(e,U)}function dt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rt(e){var U=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,n=lt(e);if(U){var F=lt(this).constructor;t=Reflect.construct(n,arguments,F)}else t=n.apply(this,arguments);return function(e,U){if(U&&("object"==typeof U||"function"==typeof U))return U;if(void 0!==U)throw new TypeError("Derived constructors may only return object or undefined");return dt(e)}(this,t)}}function at(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}PU({global:!0},{globalThis:F});var ot,Bt,st=UU("navigator","userAgent")||"",Rt=st,ct=F.process,Vt=ct&&ct.versions,ht=Vt&&Vt.v8;ht?Bt=(ot=ht.split("."))[0]<4?1:ot[0]+ot[1]:Rt&&(!(ot=Rt.match(/Edge\/(\d+)/))||ot[1]>=74)&&(ot=Rt.match(/Chrome\/(\d+)/))&&(Bt=ot[1]);var ut,Zt=Bt&&+Bt,St=Zt,Jt=l,pt=!!Object.getOwnPropertySymbols&&!Jt((function(){return!String(Symbol())||!Symbol.sham&&St&&St<41})),Wt=pt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,mt=F,Et=b,kt=pe,yt=pt,Nt=Wt,bt=Ze("wks"),ft=mt.Symbol,vt=Nt?ft:ft&&ft.withoutSetter||kt,Tt=function(e){return Et(bt,e)&&(yt||"string"==typeof bt[e])||(yt&&Et(ft,e)?bt[e]=ft[e]:bt[e]=vt("Symbol."+e)),bt[e]},Ct=pU,Dt=WU,gt=Object.keys||function(e){return Ct(e,Dt)},Xt=K,xt=_,Lt=gt,Gt=i?Object.defineProperties:function(e,U){xt(e);for(var t,n=Lt(U),F=n.length,Q=0;F>Q;)Xt.f(e,t=n[Q++],U[t]);return e},It=UU("document","documentElement"),Mt=_,Yt=Gt,wt=WU,Kt=ke,jt=It,_t=C,Ht="prototype",zt="script",Ot=Ee("IE_PROTO"),Pt=function(){},At=function(e){return"<"+zt+">"+e+"</"+zt+">"},qt=function(){try{ut=document.domain&&new ActiveXObject("htmlfile")}catch(F){}var e,U,t;qt=ut?function(e){e.write(At("")),e.close();var U=e.parentWindow.Object;return e=null,U}(ut):(U=_t("iframe"),t="java"+zt+":",U.style.display="none",jt.appendChild(U),U.src=String(t),(e=U.contentWindow.document).open(),e.write(At("document.F=Object")),e.close(),e.F);for(var n=wt.length;n--;)delete qt[Ht][wt[n]];return qt()};Kt[Ot]=!0;var $t=Object.create||function(e,U){var t;return null!==e?(Pt[Ht]=Mt(e),t=new Pt,Pt[Ht]=null,t[Ot]=e):t=qt(),void 0===U?t:Yt(t,U)},en=$t,Un=K,tn=Tt("unscopables"),nn=Array.prototype;null==nn[tn]&&Un.f(nn,tn,{configurable:!0,value:en(null)});var Fn,Qn,ln,dn={},rn=!l((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),an=b,on=k,Bn=rn,sn=Ee("IE_PROTO"),Rn=Object.prototype,cn=Bn?Object.getPrototypeOf:function(e){return e=on(e),an(e,sn)?e[sn]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?Rn:null},Vn=l,hn=cn,un=ee,Zn=b,Sn=Tt("iterator"),Jn=!1;[].keys&&("next"in(ln=[].keys())?(Qn=hn(hn(ln)))!==Object.prototype&&(Fn=Qn):Jn=!0),(null==Fn||Vn((function(){var e={};return Fn[Sn].call(e)!==e})))&&(Fn={}),Zn(Fn,Sn)||un(Fn,Sn,(function(){return this}));var pn={IteratorPrototype:Fn,BUGGY_SAFARI_ITERATORS:Jn},Wn=K.f,mn=b,En=Tt("toStringTag"),kn=function(e,U,t){e&&!mn(e=t?e:e.prototype,En)&&Wn(e,En,{configurable:!0,value:U})},yn=pn.IteratorPrototype,Nn=$t,bn=B,fn=kn,vn=dn,Tn=function(){return this},Cn=p,Dn=_,gn=function(e){if(!Cn(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},Xn=Object.setPrototypeOf||("__proto__"in{}?function(){var e,U=!1,t={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(t,[]),U=t instanceof Array}catch(n){}return function(t,n){return Dn(t),gn(n),U?e.call(t,n):t.__proto__=n,t}}():void 0),xn=PU,Ln=function(e,U,t){var n=U+" Iterator";return e.prototype=Nn(yn,{next:bn(1,t)}),fn(e,n,!1),vn[n]=Tn,e},Gn=cn,In=Xn,Mn=kn,Yn=ee,wn=Pe,Kn=dn,jn=pn.IteratorPrototype,_n=pn.BUGGY_SAFARI_ITERATORS,Hn=Tt("iterator"),zn="keys",On="values",Pn="entries",An=function(){return this},qn=function(e,U,t,n,F,Q,l){Ln(t,U,n);var i,d,r,a=function(e){if(e===F&&c)return c;if(!_n&&e in s)return s[e];switch(e){case zn:case On:case Pn:return function(){return new t(this,e)}}return function(){return new t(this)}},o=U+" Iterator",B=!1,s=e.prototype,R=s[Hn]||s["@@iterator"]||F&&s[F],c=!_n&&R||a(F),V="Array"==U&&s.entries||R;if(V&&(i=Gn(V.call(new e)),jn!==Object.prototype&&i.next&&(Gn(i)!==jn&&(In?In(i,jn):"function"!=typeof i[Hn]&&Yn(i,Hn,An)),Mn(i,o,!0))),F==On&&R&&R.name!==On&&(B=!0,c=function(){return R.call(this)}),s[Hn]!==c&&Yn(s,Hn,c),Kn[U]=c,F)if(d={values:a(On),keys:Q?c:a(zn),entries:a(Pn)},l)for(r in d)(_n||B||!(r in s))&&wn(s,r,d[r]);else xn({target:U,proto:!0,forced:_n||B},d);return d},$n=J,eF=function(e){nn[tn][e]=!0},UF=dn,tF=Me,nF=qn,FF="Array Iterator",QF=tF.set,lF=tF.getterFor(FF),iF=nF(Array,"Array",(function(e,U){QF(this,{type:FF,target:$n(e),index:0,kind:U})}),(function(){var e=lF(this),U=e.target,t=e.kind,n=e.index++;return!U||n>=U.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==t?{value:n,done:!1}:"values"==t?{value:U[n],done:!1}:{value:[n,U[n]],done:!1}}),"values");UF.Arguments=UF.Array,eF("keys"),eF("values"),eF("entries");var dF={exports:{}},rF=!l((function(){return Object.isExtensible(Object.preventExtensions({}))})),aF=ke,oF=p,BF=b,sF=K.f,RF=rF,cF=pe("meta"),VF=0,hF=Object.isExtensible||function(){return!0},uF=function(e){sF(e,cF,{value:{objectID:"O"+ ++VF,weakData:{}}})},ZF=dF.exports={REQUIRED:!1,fastKey:function(e,U){if(!oF(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!BF(e,cF)){if(!hF(e))return"F";if(!U)return"E";uF(e)}return e[cF].objectID},getWeakData:function(e,U){if(!BF(e,cF)){if(!hF(e))return!0;if(!U)return!1;uF(e)}return e[cF].weakData},onFreeze:function(e){return RF&&ZF.REQUIRED&&hF(e)&&!BF(e,cF)&&uF(e),e}};aF[cF]=!0;var SF=dF.exports,JF=dn,pF=Tt("iterator"),WF=Array.prototype,mF=function(e){return void 0!==e&&(JF.Array===e||WF[pF]===e)},EF=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},kF=EF,yF=function(e,U,t){if(kF(e),void 0===U)return e;switch(t){case 0:return function(){return e.call(U)};case 1:return function(t){return e.call(U,t)};case 2:return function(t,n){return e.call(U,t,n)};case 3:return function(t,n,F){return e.call(U,t,n,F)}}return function(){return e.apply(U,arguments)}},NF={};NF[Tt("toStringTag")]="z";var bF="[object z]"===String(NF),fF=bF,vF=R,TF=Tt("toStringTag"),CF="Arguments"==vF(function(){return arguments}()),DF=fF?vF:function(e){var U,t,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,U){try{return e[U]}catch(t){}}(U=Object(e),TF))?t:CF?vF(U):"Object"==(n=vF(U))&&"function"==typeof U.callee?"Arguments":n},gF=DF,XF=dn,xF=Tt("iterator"),LF=function(e){if(null!=e)return e[xF]||e["@@iterator"]||XF[gF(e)]},GF=_,IF=_,MF=mF,YF=dU,wF=yF,KF=LF,jF=function(e){var U=e.return;if(void 0!==U)return GF(U.call(e)).value},_F=function(e,U){this.stopped=e,this.result=U},HF=function(e,U,t){var n,F,Q,l,i,d,r,a=t&&t.that,o=!(!t||!t.AS_ENTRIES),B=!(!t||!t.IS_ITERATOR),s=!(!t||!t.INTERRUPTED),R=wF(U,a,1+o+s),c=function(e){return n&&jF(n),new _F(!0,e)},V=function(e){return o?(IF(e),s?R(e[0],e[1],c):R(e[0],e[1])):s?R(e,c):R(e)};if(B)n=e;else{if("function"!=typeof(F=KF(e)))throw TypeError("Target is not iterable");if(MF(F)){for(Q=0,l=YF(e.length);l>Q;Q++)if((i=V(e[Q]))&&i instanceof _F)return i;return new _F(!1)}n=F.call(e)}for(d=n.next;!(r=d.call(n)).done;){try{i=V(r.value)}catch(h){throw jF(n),h}if("object"==typeof i&&i&&i instanceof _F)return i}return new _F(!1)},zF=function(e,U,t){if(!(e instanceof U))throw TypeError("Incorrect "+(t?t+" ":"")+"invocation");return e},OF=Tt("iterator"),PF=!1;try{var AF=0,qF={next:function(){return{done:!!AF++}},return:function(){PF=!0}};qF[OF]=function(){return this},Array.from(qF,(function(){throw 2}))}catch(mu){}var $F=function(e,U){if(!U&&!PF)return!1;var t=!1;try{var n={};n[OF]=function(){return{next:function(){return{done:t=!0}}}},e(n)}catch(mu){}return t},eQ=p,UQ=Xn,tQ=function(e,U,t){var n,F;return UQ&&"function"==typeof(n=U.constructor)&&n!==t&&eQ(F=n.prototype)&&F!==t.prototype&&UQ(e,F),e},nQ=PU,FQ=F,QQ=YU,lQ=Pe,iQ=SF,dQ=HF,rQ=zF,aQ=p,oQ=l,BQ=$F,sQ=kn,RQ=tQ,cQ=Pe,VQ=function(e,U,t){for(var n in U)cQ(e,n,U[n],t);return e},hQ=UU,uQ=K,ZQ=i,SQ=Tt("species"),JQ=function(e){var U=hQ(e),t=uQ.f;ZQ&&U&&!U[SQ]&&t(U,SQ,{configurable:!0,get:function(){return this}})},pQ=K.f,WQ=$t,mQ=VQ,EQ=yF,kQ=zF,yQ=HF,NQ=qn,bQ=JQ,fQ=i,vQ=SF.fastKey,TQ=Me.set,CQ=Me.getterFor,DQ={getConstructor:function(e,U,t,n){var F=e((function(e,Q){kQ(e,F,U),TQ(e,{type:U,index:WQ(null),first:void 0,last:void 0,size:0}),fQ||(e.size=0),null!=Q&&yQ(Q,e[n],{that:e,AS_ENTRIES:t})})),Q=CQ(U),l=function(e,U,t){var n,F,l=Q(e),d=i(e,U);return d?d.value=t:(l.last=d={index:F=vQ(U,!0),key:U,value:t,previous:n=l.last,next:void 0,removed:!1},l.first||(l.first=d),n&&(n.next=d),fQ?l.size++:e.size++,"F"!==F&&(l.index[F]=d)),e},i=function(e,U){var t,n=Q(e),F=vQ(U);if("F"!==F)return n.index[F];for(t=n.first;t;t=t.next)if(t.key==U)return t};return mQ(F.prototype,{clear:function(){for(var e=Q(this),U=e.index,t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=void 0),delete U[t.index],t=t.next;e.first=e.last=void 0,fQ?e.size=0:this.size=0},delete:function(e){var U=this,t=Q(U),n=i(U,e);if(n){var F=n.next,l=n.previous;delete t.index[n.index],n.removed=!0,l&&(l.next=F),F&&(F.previous=l),t.first==n&&(t.first=F),t.last==n&&(t.last=l),fQ?t.size--:U.size--}return!!n},forEach:function(e){for(var U,t=Q(this),n=EQ(e,arguments.length>1?arguments[1]:void 0,3);U=U?U.next:t.first;)for(n(U.value,U.key,this);U&&U.removed;)U=U.previous},has:function(e){return!!i(this,e)}}),mQ(F.prototype,t?{get:function(e){var U=i(this,e);return U&&U.value},set:function(e,U){return l(this,0===e?0:e,U)}}:{add:function(e){return l(this,e=0===e?0:e,e)}}),fQ&&pQ(F.prototype,"size",{get:function(){return Q(this).size}}),F},setStrong:function(e,U,t){var n=U+" Iterator",F=CQ(U),Q=CQ(n);NQ(e,U,(function(e,U){TQ(this,{type:n,target:e,state:F(e),kind:U,last:void 0})}),(function(){for(var e=Q(this),U=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?"keys"==U?{value:t.key,done:!1}:"values"==U?{value:t.value,done:!1}:{value:[t.key,t.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),t?"entries":"values",!t,!0),bQ(U)}};!function(e,U,t){var n=-1!==e.indexOf("Map"),F=-1!==e.indexOf("Weak"),Q=n?"set":"add",l=FQ[e],i=l&&l.prototype,d=l,r={},a=function(e){var U=i[e];lQ(i,e,"add"==e?function(e){return U.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(F&&!aQ(e))&&U.call(this,0===e?0:e)}:"get"==e?function(e){return F&&!aQ(e)?void 0:U.call(this,0===e?0:e)}:"has"==e?function(e){return!(F&&!aQ(e))&&U.call(this,0===e?0:e)}:function(e,t){return U.call(this,0===e?0:e,t),this})};if(QQ(e,"function"!=typeof l||!(F||i.forEach&&!oQ((function(){(new l).entries().next()})))))d=t.getConstructor(U,e,n,Q),iQ.REQUIRED=!0;else if(QQ(e,!0)){var o=new d,B=o[Q](F?{}:-0,1)!=o,s=oQ((function(){o.has(1)})),R=BQ((function(e){new l(e)})),c=!F&&oQ((function(){for(var e=new l,U=5;U--;)e[Q](U,U);return!e.has(-0)}));R||((d=U((function(U,t){rQ(U,d,e);var F=RQ(new l,U,d);return null!=t&&dQ(t,F[Q],{that:F,AS_ENTRIES:n}),F}))).prototype=i,i.constructor=d),(s||c)&&(a("delete"),a("has"),n&&a("get")),(c||B)&&a(Q),F&&i.clear&&delete i.clear}r[e]=d,nQ({global:!0,forced:d!=l},r),sQ(d,e),F||t.setStrong(d,e,n)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),DQ);var gQ=DF,XQ=bF?{}.toString:function(){return"[object "+gQ(this)+"]"};bF||Pe(Object.prototype,"toString",XQ,{unsafe:!0});var xQ=QU,LQ=u,GQ=function(e){return function(U,t){var n,F,Q=String(LQ(U)),l=xQ(t),i=Q.length;return l<0||l>=i?e?"":void 0:(n=Q.charCodeAt(l))<55296||n>56319||l+1===i||(F=Q.charCodeAt(l+1))<56320||F>57343?e?Q.charAt(l):n:e?Q.slice(l,l+2):F-56320+(n-55296<<10)+65536}},IQ={codeAt:GQ(!1),charAt:GQ(!0)},MQ=IQ.charAt,YQ=Me,wQ=qn,KQ="String Iterator",jQ=YQ.set,_Q=YQ.getterFor(KQ);wQ(String,"String",(function(e){jQ(this,{type:KQ,string:String(e),index:0})}),(function(){var e,U=_Q(this),t=U.string,n=U.index;return n>=t.length?{value:void 0,done:!0}:(e=MQ(t,n),U.index+=e.length,{value:e,done:!1})}));var HQ=_,zQ=EF,OQ=function(){for(var e,U=HQ(this),t=zQ(U.delete),n=!0,F=0,Q=arguments.length;F<Q;F++)e=t.call(U,arguments[F]),n=n&&e;return!!n};PU({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return OQ.apply(this,arguments)}});var PQ=function(e){return Map.prototype.entries.call(e)},AQ=_,qQ=yF,$Q=PQ,el=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var U=AQ(this),t=$Q(U),n=qQ(e,arguments.length>1?arguments[1]:void 0,3);return!el(t,(function(e,t,F){if(!n(t,e,U))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Ul=_,tl=EF,nl=Tt("species"),Fl=function(e,U){var t,n=Ul(e).constructor;return void 0===n||null==(t=Ul(n)[nl])?U:tl(t)},Ql=UU,ll=_,il=EF,dl=yF,rl=Fl,al=PQ,ol=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var U=ll(this),t=al(U),n=dl(e,arguments.length>1?arguments[1]:void 0,3),F=new(rl(U,Ql("Map"))),Q=il(F.set);return ol(t,(function(e,t){n(t,e,U)&&Q.call(F,e,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Bl=_,sl=yF,Rl=PQ,cl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var U=Bl(this),t=Rl(U),n=sl(e,arguments.length>1?arguments[1]:void 0,3);return cl(t,(function(e,t,F){if(n(t,e,U))return F(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Vl=_,hl=yF,ul=PQ,Zl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var U=Vl(this),t=ul(U),n=hl(e,arguments.length>1?arguments[1]:void 0,3);return Zl(t,(function(e,t,F){if(n(t,e,U))return F(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Sl=_,Jl=PQ,pl=function(e,U){return e===U||e!=e&&U!=U},Wl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return Wl(Jl(Sl(this)),(function(U,t,n){if(pl(t,e))return n()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var ml=_,El=PQ,kl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return kl(El(ml(this)),(function(U,t,n){if(t===e)return n(U)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var yl=UU,Nl=_,bl=EF,fl=yF,vl=Fl,Tl=PQ,Cl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var U=Nl(this),t=Tl(U),n=fl(e,arguments.length>1?arguments[1]:void 0,3),F=new(vl(U,yl("Map"))),Q=bl(F.set);return Cl(t,(function(e,t){Q.call(F,n(t,e,U),t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Dl=UU,gl=_,Xl=EF,xl=yF,Ll=Fl,Gl=PQ,Il=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var U=gl(this),t=Gl(U),n=xl(e,arguments.length>1?arguments[1]:void 0,3),F=new(Ll(U,Dl("Map"))),Q=Xl(F.set);return Il(t,(function(e,t){Q.call(F,e,n(t,e,U))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Ml=_,Yl=EF,wl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var U=Ml(this),t=Yl(U.set),n=0;n<arguments.length;)wl(arguments[n++],t,{that:U,AS_ENTRIES:!0});return U}});var Kl=_,jl=EF,_l=PQ,Hl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var U=Kl(this),t=_l(U),n=arguments.length<2,F=n?void 0:arguments[1];if(jl(e),Hl(t,(function(t,Q){n?(n=!1,F=Q):F=e(F,Q,t,U)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),n)throw TypeError("Reduce of empty map with no initial value");return F}});var zl=_,Ol=yF,Pl=PQ,Al=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var U=zl(this),t=Pl(U),n=Ol(e,arguments.length>1?arguments[1]:void 0,3);return Al(t,(function(e,t,F){if(n(t,e,U))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var ql=_,$l=EF;PU({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,U){var t=ql(this),n=arguments.length;$l(U);var F=t.has(e);if(!F&&n<3)throw TypeError("Updating absent value");var Q=F?t.get(e):$l(n>2?arguments[2]:void 0)(e,t);return t.set(e,U(Q,e,t)),t}});var ei={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Ui=F,ti=ei,ni=iF,Fi=ee,Qi=Tt,li=Qi("iterator"),ii=Qi("toStringTag"),di=ni.values;for(var ri in ti){var ai=Ui[ri],oi=ai&&ai.prototype;if(oi){if(oi[li]!==di)try{Fi(oi,li,di)}catch(mu){oi[li]=di}if(oi[ii]||Fi(oi,ii,ri),ti[ri])for(var Bi in ni)if(oi[Bi]!==ni[Bi])try{Fi(oi,Bi,ni[Bi])}catch(mu){oi[Bi]=ni[Bi]}}}var si=R,Ri=Array.isArray||function(e){return"Array"==si(e)},ci=p,Vi=Ri,hi=Tt("species"),ui=function(e,U){var t;return Vi(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!Vi(t.prototype)?ci(t)&&null===(t=t[hi])&&(t=void 0):t=void 0),new(void 0===t?Array:t)(0===U?0:U)},Zi=yF,Si=h,Ji=k,pi=dU,Wi=ui,mi=[].push,Ei=function(e){var U=1==e,t=2==e,n=3==e,F=4==e,Q=6==e,l=7==e,i=5==e||Q;return function(d,r,a,o){for(var B,s,R=Ji(d),c=Si(R),V=Zi(r,a,3),h=pi(c.length),u=0,Z=o||Wi,S=U?Z(d,h):t||l?Z(d,0):void 0;h>u;u++)if((i||u in c)&&(s=V(B=c[u],u,R),e))if(U)S[u]=s;else if(s)switch(e){case 3:return!0;case 5:return B;case 6:return u;case 2:mi.call(S,B)}else switch(e){case 4:return!1;case 7:mi.call(S,B)}return Q?-1:n||F?F:S}},ki={forEach:Ei(0),map:Ei(1),filter:Ei(2),some:Ei(3),every:Ei(4),find:Ei(5),findIndex:Ei(6),filterOut:Ei(7)},yi=l,Ni=Zt,bi=Tt("species"),fi=function(e){return Ni>=51||!yi((function(){var U=[];return(U.constructor={})[bi]=function(){return{foo:1}},1!==U[e](Boolean).foo}))},vi=ki.map;PU({target:"Array",proto:!0,forced:!fi("map")},{map:function(e){return vi(this,e,arguments.length>1?arguments[1]:void 0)}});var Ti=k,Ci=gt;PU({target:"Object",stat:!0,forced:l((function(){Ci(1)}))},{keys:function(e){return Ci(Ti(e))}});var Di=m,gi=K,Xi=B,xi=function(e,U,t){var n=Di(U);n in e?gi.f(e,n,Xi(0,t)):e[n]=t},Li=PU,Gi=l,Ii=Ri,Mi=p,Yi=k,wi=dU,Ki=xi,ji=ui,_i=fi,Hi=Zt,zi=Tt("isConcatSpreadable"),Oi=9007199254740991,Pi="Maximum allowed index exceeded",Ai=Hi>=51||!Gi((function(){var e=[];return e[zi]=!1,e.concat()[0]!==e})),qi=_i("concat"),$i=function(e){if(!Mi(e))return!1;var U=e[zi];return void 0!==U?!!U:Ii(e)};Li({target:"Array",proto:!0,forced:!Ai||!qi},{concat:function(e){var U,t,n,F,Q,l=Yi(this),i=ji(l,0),d=0;for(U=-1,n=arguments.length;U<n;U++)if($i(Q=-1===U?l:arguments[U])){if(d+(F=wi(Q.length))>Oi)throw TypeError(Pi);for(t=0;t<F;t++,d++)t in Q&&Ki(i,d,Q[t])}else{if(d>=Oi)throw TypeError(Pi);Ki(i,d++,Q)}return i.length=d,i}});var ed,Ud,td,nd=F.Promise,Fd=/(?:iphone|ipod|ipad).*applewebkit/i.test(st),Qd="process"==R(F.process),ld=F,id=l,dd=yF,rd=It,ad=C,od=Fd,Bd=Qd,sd=ld.location,Rd=ld.setImmediate,cd=ld.clearImmediate,Vd=ld.process,hd=ld.MessageChannel,ud=ld.Dispatch,Zd=0,Sd={},Jd="onreadystatechange",pd=function(e){if(Sd.hasOwnProperty(e)){var U=Sd[e];delete Sd[e],U()}},Wd=function(e){return function(){pd(e)}},md=function(e){pd(e.data)},Ed=function(e){ld.postMessage(e+"",sd.protocol+"//"+sd.host)};Rd&&cd||(Rd=function(e){for(var U=[],t=1;arguments.length>t;)U.push(arguments[t++]);return Sd[++Zd]=function(){("function"==typeof e?e:Function(e)).apply(void 0,U)},ed(Zd),Zd},cd=function(e){delete Sd[e]},Bd?ed=function(e){Vd.nextTick(Wd(e))}:ud&&ud.now?ed=function(e){ud.now(Wd(e))}:hd&&!od?(td=(Ud=new hd).port2,Ud.port1.onmessage=md,ed=dd(td.postMessage,td,1)):ld.addEventListener&&"function"==typeof postMessage&&!ld.importScripts&&sd&&"file:"!==sd.protocol&&!id(Ed)?(ed=Ed,ld.addEventListener("message",md,!1)):ed=Jd in ad("script")?function(e){rd.appendChild(ad("script"))[Jd]=function(){rd.removeChild(this),pd(e)}}:function(e){setTimeout(Wd(e),0)});var kd,yd,Nd,bd,fd,vd,Td,Cd,Dd={set:Rd,clear:cd},gd=/web0s(?!.*chrome)/i.test(st),Xd=F,xd=Q.f,Ld=Dd.set,Gd=Fd,Id=gd,Md=Qd,Yd=Xd.MutationObserver||Xd.WebKitMutationObserver,wd=Xd.document,Kd=Xd.process,jd=Xd.Promise,_d=xd(Xd,"queueMicrotask"),Hd=_d&&_d.value;Hd||(kd=function(){var e,U;for(Md&&(e=Kd.domain)&&e.exit();yd;){U=yd.fn,yd=yd.next;try{U()}catch(mu){throw yd?bd():Nd=void 0,mu}}Nd=void 0,e&&e.enter()},Gd||Md||Id||!Yd||!wd?jd&&jd.resolve?((Td=jd.resolve(void 0)).constructor=jd,Cd=Td.then,bd=function(){Cd.call(Td,kd)}):bd=Md?function(){Kd.nextTick(kd)}:function(){Ld.call(Xd,kd)}:(fd=!0,vd=wd.createTextNode(""),new Yd(kd).observe(vd,{characterData:!0}),bd=function(){vd.data=fd=!fd}));var zd=Hd||function(e){var U={fn:e,next:void 0};Nd&&(Nd.next=U),yd||(yd=U,bd()),Nd=U},Od={},Pd=EF,Ad=function(e){var U,t;this.promise=new e((function(e,n){if(void 0!==U||void 0!==t)throw TypeError("Bad Promise constructor");U=e,t=n})),this.resolve=Pd(U),this.reject=Pd(t)};Od.f=function(e){return new Ad(e)};var qd,$d,er,Ur,tr=_,nr=p,Fr=Od,Qr=F,lr="object"==typeof window,ir=PU,dr=F,rr=UU,ar=nd,or=Pe,Br=VQ,sr=Xn,Rr=kn,cr=JQ,Vr=p,hr=EF,ur=zF,Zr=ae,Sr=HF,Jr=$F,pr=Fl,Wr=Dd.set,mr=zd,Er=function(e,U){if(tr(e),nr(U)&&U.constructor===e)return U;var t=Fr.f(e);return(0,t.resolve)(U),t.promise},kr=function(e,U){var t=Qr.console;t&&t.error&&(1===arguments.length?t.error(e):t.error(e,U))},yr=Od,Nr=function(e){try{return{error:!1,value:e()}}catch(mu){return{error:!0,value:mu}}},br=Me,fr=YU,vr=lr,Tr=Qd,Cr=Zt,Dr=Tt("species"),gr="Promise",Xr=br.get,xr=br.set,Lr=br.getterFor(gr),Gr=ar&&ar.prototype,Ir=ar,Mr=Gr,Yr=dr.TypeError,wr=dr.document,Kr=dr.process,jr=yr.f,_r=jr,Hr=!!(wr&&wr.createEvent&&dr.dispatchEvent),zr="function"==typeof PromiseRejectionEvent,Or="unhandledrejection",Pr=!1,Ar=fr(gr,(function(){var e=Zr(Ir)!==String(Ir);if(!e&&66===Cr)return!0;if(Cr>=51&&/native code/.test(Ir))return!1;var U=new Ir((function(e){e(1)})),t=function(e){e((function(){}),(function(){}))};return(U.constructor={})[Dr]=t,!(Pr=U.then((function(){}))instanceof t)||!e&&vr&&!zr})),qr=Ar||!Jr((function(e){Ir.all(e).catch((function(){}))})),$r=function(e){var U;return!(!Vr(e)||"function"!=typeof(U=e.then))&&U},ea=function(e,U){if(!e.notified){e.notified=!0;var t=e.reactions;mr((function(){for(var n=e.value,F=1==e.state,Q=0;t.length>Q;){var l,i,d,r=t[Q++],a=F?r.ok:r.fail,o=r.resolve,B=r.reject,s=r.domain;try{a?(F||(2===e.rejection&&Fa(e),e.rejection=1),!0===a?l=n:(s&&s.enter(),l=a(n),s&&(s.exit(),d=!0)),l===r.promise?B(Yr("Promise-chain cycle")):(i=$r(l))?i.call(l,o,B):o(l)):B(n)}catch(mu){s&&!d&&s.exit(),B(mu)}}e.reactions=[],e.notified=!1,U&&!e.rejection&&ta(e)}))}},Ua=function(e,U,t){var n,F;Hr?((n=wr.createEvent("Event")).promise=U,n.reason=t,n.initEvent(e,!1,!0),dr.dispatchEvent(n)):n={promise:U,reason:t},!zr&&(F=dr["on"+e])?F(n):e===Or&&kr("Unhandled promise rejection",t)},ta=function(e){Wr.call(dr,(function(){var U,t=e.facade,n=e.value;if(na(e)&&(U=Nr((function(){Tr?Kr.emit("unhandledRejection",n,t):Ua(Or,t,n)})),e.rejection=Tr||na(e)?2:1,U.error))throw U.value}))},na=function(e){return 1!==e.rejection&&!e.parent},Fa=function(e){Wr.call(dr,(function(){var U=e.facade;Tr?Kr.emit("rejectionHandled",U):Ua("rejectionhandled",U,e.value)}))},Qa=function(e,U,t){return function(n){e(U,n,t)}},la=function(e,U,t){e.done||(e.done=!0,t&&(e=t),e.value=U,e.state=2,ea(e,!0))},ia=function(e,U,t){if(!e.done){e.done=!0,t&&(e=t);try{if(e.facade===U)throw Yr("Promise can't be resolved itself");var n=$r(U);n?mr((function(){var t={done:!1};try{n.call(U,Qa(ia,t,e),Qa(la,t,e))}catch(mu){la(t,mu,e)}})):(e.value=U,e.state=1,ea(e,!1))}catch(mu){la({done:!1},mu,e)}}};if(Ar&&(Mr=(Ir=function(e){ur(this,Ir,gr),hr(e),qd.call(this);var U=Xr(this);try{e(Qa(ia,U),Qa(la,U))}catch(mu){la(U,mu)}}).prototype,(qd=function(e){xr(this,{type:gr,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Br(Mr,{then:function(e,U){var t=Lr(this),n=jr(pr(this,Ir));return n.ok="function"!=typeof e||e,n.fail="function"==typeof U&&U,n.domain=Tr?Kr.domain:void 0,t.parent=!0,t.reactions.push(n),0!=t.state&&ea(t,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),$d=function(){var e=new qd,U=Xr(e);this.promise=e,this.resolve=Qa(ia,U),this.reject=Qa(la,U)},yr.f=jr=function(e){return e===Ir||e===er?new $d(e):_r(e)},"function"==typeof ar&&Gr!==Object.prototype)){Ur=Gr.then,Pr||(or(Gr,"then",(function(e,U){var t=this;return new Ir((function(e,U){Ur.call(t,e,U)})).then(e,U)}),{unsafe:!0}),or(Gr,"catch",Mr.catch,{unsafe:!0}));try{delete Gr.constructor}catch(mu){}sr&&sr(Gr,Mr)}ir({global:!0,wrap:!0,forced:Ar},{Promise:Ir}),Rr(Ir,gr,!1),cr(gr),er=rr(gr),ir({target:gr,stat:!0,forced:Ar},{reject:function(e){var U=jr(this);return U.reject.call(void 0,e),U.promise}}),ir({target:gr,stat:!0,forced:Ar},{resolve:function(e){return Er(this,e)}}),ir({target:gr,stat:!0,forced:qr},{all:function(e){var U=this,t=jr(U),n=t.resolve,F=t.reject,Q=Nr((function(){var t=hr(U.resolve),Q=[],l=0,i=1;Sr(e,(function(e){var d=l++,r=!1;Q.push(void 0),i++,t.call(U,e).then((function(e){r||(r=!0,Q[d]=e,--i||n(Q))}),F)})),--i||n(Q)}));return Q.error&&F(Q.value),t.promise},race:function(e){var U=this,t=jr(U),n=t.reject,F=Nr((function(){var F=hr(U.resolve);Sr(e,(function(e){F.call(U,e).then(t.resolve,n)}))}));return F.error&&n(F.value),t.promise}});var da,ra="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,aa=ra,oa=i,Ba=F,sa=p,Ra=b,ca=DF,Va=ee,ha=Pe,ua=K.f,Za=cn,Sa=Xn,Ja=Tt,pa=pe,Wa=Ba.Int8Array,ma=Wa&&Wa.prototype,Ea=Ba.Uint8ClampedArray,ka=Ea&&Ea.prototype,ya=Wa&&Za(Wa),Na=ma&&Za(ma),ba=Object.prototype,fa=ba.isPrototypeOf,va=Ja("toStringTag"),Ta=pa("TYPED_ARRAY_TAG"),Ca=aa&&!!Sa&&"Opera"!==ca(Ba.opera),Da=!1,ga={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Xa={BigInt64Array:8,BigUint64Array:8},xa=function(e){if(!sa(e))return!1;var U=ca(e);return Ra(ga,U)||Ra(Xa,U)};for(da in ga)Ba[da]||(Ca=!1);if((!Ca||"function"!=typeof ya||ya===Function.prototype)&&(ya=function(){throw TypeError("Incorrect invocation")},Ca))for(da in ga)Ba[da]&&Sa(Ba[da],ya);if((!Ca||!Na||Na===ba)&&(Na=ya.prototype,Ca))for(da in ga)Ba[da]&&Sa(Ba[da].prototype,Na);if(Ca&&Za(ka)!==Na&&Sa(ka,Na),oa&&!Ra(Na,va))for(da in Da=!0,ua(Na,va,{get:function(){return sa(this)?this[Ta]:void 0}}),ga)Ba[da]&&Va(Ba[da],Ta,da);var La={NATIVE_ARRAY_BUFFER_VIEWS:Ca,TYPED_ARRAY_TAG:Da&&Ta,aTypedArray:function(e){if(xa(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Sa){if(fa.call(ya,e))return e}else for(var U in ga)if(Ra(ga,da)){var t=Ba[U];if(t&&(e===t||fa.call(t,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,U,t){if(oa){if(t)for(var n in ga){var F=Ba[n];if(F&&Ra(F.prototype,e))try{delete F.prototype[e]}catch(mu){}}Na[e]&&!t||ha(Na,e,t?U:Ca&&ma[e]||U)}},exportTypedArrayStaticMethod:function(e,U,t){var n,F;if(oa){if(Sa){if(t)for(n in ga)if((F=Ba[n])&&Ra(F,e))try{delete F[e]}catch(mu){}if(ya[e]&&!t)return;try{return ha(ya,e,t?U:Ca&&ya[e]||U)}catch(mu){}}for(n in ga)!(F=Ba[n])||F[e]&&!t||ha(F,e,U)}},isView:function(e){if(!sa(e))return!1;var U=ca(e);return"DataView"===U||Ra(ga,U)||Ra(Xa,U)},isTypedArray:xa,TypedArray:ya,TypedArrayPrototype:Na},Ga=F,Ia=l,Ma=$F,Ya=La.NATIVE_ARRAY_BUFFER_VIEWS,wa=Ga.ArrayBuffer,Ka=Ga.Int8Array,ja=!Ya||!Ia((function(){Ka(1)}))||!Ia((function(){new Ka(-1)}))||!Ma((function(e){new Ka,new Ka(null),new Ka(1.5),new Ka(e)}),!0)||Ia((function(){return 1!==new Ka(new wa(2),1,void 0).length})),_a=La.aTypedArrayConstructor;(0,La.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,U=arguments.length,t=new(_a(this))(U);U>e;)t[e]=arguments[e++];return t}),ja);var Ha={exports:{}},za=QU,Oa=dU,Pa=function(e){if(void 0===e)return 0;var U=za(e),t=Oa(U);if(U!==t)throw RangeError("Wrong length or index");return t},Aa=Math.abs,qa=Math.pow,$a=Math.floor,eo=Math.log,Uo=Math.LN2,to=k,no=BU,Fo=dU,Qo=function(e){for(var U=to(this),t=Fo(U.length),n=arguments.length,F=no(n>1?arguments[1]:void 0,t),Q=n>2?arguments[2]:void 0,l=void 0===Q?t:no(Q,t);l>F;)U[F++]=e;return U},lo=F,io=i,ro=ra,ao=ee,oo=VQ,Bo=l,so=zF,Ro=QU,co=dU,Vo=Pa,ho={pack:function(e,U,t){var n,F,Q,l=new Array(t),i=8*t-U-1,d=(1<<i)-1,r=d>>1,a=23===U?qa(2,-24)-qa(2,-77):0,o=e<0||0===e&&1/e<0?1:0,B=0;for((e=Aa(e))!=e||e===1/0?(F=e!=e?1:0,n=d):(n=$a(eo(e)/Uo),e*(Q=qa(2,-n))<1&&(n--,Q*=2),(e+=n+r>=1?a/Q:a*qa(2,1-r))*Q>=2&&(n++,Q/=2),n+r>=d?(F=0,n=d):n+r>=1?(F=(e*Q-1)*qa(2,U),n+=r):(F=e*qa(2,r-1)*qa(2,U),n=0));U>=8;l[B++]=255&F,F/=256,U-=8);for(n=n<<U|F,i+=U;i>0;l[B++]=255&n,n/=256,i-=8);return l[--B]|=128*o,l},unpack:function(e,U){var t,n=e.length,F=8*n-U-1,Q=(1<<F)-1,l=Q>>1,i=F-7,d=n-1,r=e[d--],a=127&r;for(r>>=7;i>0;a=256*a+e[d],d--,i-=8);for(t=a&(1<<-i)-1,a>>=-i,i+=U;i>0;t=256*t+e[d],d--,i-=8);if(0===a)a=1-l;else{if(a===Q)return t?NaN:r?-1/0:1/0;t+=qa(2,U),a-=l}return(r?-1:1)*t*qa(2,a-U)}},uo=cn,Zo=Xn,So=tU.f,Jo=K.f,po=Qo,Wo=kn,mo=Me.get,Eo=Me.set,ko="ArrayBuffer",yo="DataView",No="prototype",bo="Wrong index",fo=lo[ko],vo=fo,To=lo[yo],Co=To&&To[No],Do=Object.prototype,go=lo.RangeError,Xo=ho.pack,xo=ho.unpack,Lo=function(e){return[255&e]},Go=function(e){return[255&e,e>>8&255]},Io=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Mo=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Yo=function(e){return Xo(e,23,4)},wo=function(e){return Xo(e,52,8)},Ko=function(e,U){Jo(e[No],U,{get:function(){return mo(this)[U]}})},jo=function(e,U,t,n){var F=Vo(t),Q=mo(e);if(F+U>Q.byteLength)throw go(bo);var l=mo(Q.buffer).bytes,i=F+Q.byteOffset,d=l.slice(i,i+U);return n?d:d.reverse()},_o=function(e,U,t,n,F,Q){var l=Vo(t),i=mo(e);if(l+U>i.byteLength)throw go(bo);for(var d=mo(i.buffer).bytes,r=l+i.byteOffset,a=n(+F),o=0;o<U;o++)d[r+o]=a[Q?o:U-o-1]};if(ro){if(!Bo((function(){fo(1)}))||!Bo((function(){new fo(-1)}))||Bo((function(){return new fo,new fo(1.5),new fo(NaN),fo.name!=ko}))){for(var Ho,zo=(vo=function(e){return so(this,vo),new fo(Vo(e))})[No]=fo[No],Oo=So(fo),Po=0;Oo.length>Po;)(Ho=Oo[Po++])in vo||ao(vo,Ho,fo[Ho]);zo.constructor=vo}Zo&&uo(Co)!==Do&&Zo(Co,Do);var Ao=new To(new vo(2)),qo=Co.setInt8;Ao.setInt8(0,2147483648),Ao.setInt8(1,2147483649),!Ao.getInt8(0)&&Ao.getInt8(1)||oo(Co,{setInt8:function(e,U){qo.call(this,e,U<<24>>24)},setUint8:function(e,U){qo.call(this,e,U<<24>>24)}},{unsafe:!0})}else vo=function(e){so(this,vo,ko);var U=Vo(e);Eo(this,{bytes:po.call(new Array(U),0),byteLength:U}),io||(this.byteLength=U)},To=function(e,U,t){so(this,To,yo),so(e,vo,yo);var n=mo(e).byteLength,F=Ro(U);if(F<0||F>n)throw go("Wrong offset");if(F+(t=void 0===t?n-F:co(t))>n)throw go("Wrong length");Eo(this,{buffer:e,byteLength:t,byteOffset:F}),io||(this.buffer=e,this.byteLength=t,this.byteOffset=F)},io&&(Ko(vo,"byteLength"),Ko(To,"buffer"),Ko(To,"byteLength"),Ko(To,"byteOffset")),oo(To[No],{getInt8:function(e){return jo(this,1,e)[0]<<24>>24},getUint8:function(e){return jo(this,1,e)[0]},getInt16:function(e){var U=jo(this,2,e,arguments.length>1?arguments[1]:void 0);return(U[1]<<8|U[0])<<16>>16},getUint16:function(e){var U=jo(this,2,e,arguments.length>1?arguments[1]:void 0);return U[1]<<8|U[0]},getInt32:function(e){return Mo(jo(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Mo(jo(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return xo(jo(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return xo(jo(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,U){_o(this,1,e,Lo,U)},setUint8:function(e,U){_o(this,1,e,Lo,U)},setInt16:function(e,U){_o(this,2,e,Go,U,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,U){_o(this,2,e,Go,U,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,U){_o(this,4,e,Io,U,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,U){_o(this,4,e,Io,U,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,U){_o(this,4,e,Yo,U,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,U){_o(this,8,e,wo,U,arguments.length>2?arguments[2]:void 0)}});Wo(vo,ko),Wo(To,yo);var $o={ArrayBuffer:vo,DataView:To},eB=QU,UB=function(e){var U=eB(e);if(U<0)throw RangeError("The argument can't be less than 0");return U},tB=function(e,U){var t=UB(e);if(t%U)throw RangeError("Wrong offset");return t},nB=k,FB=dU,QB=LF,lB=mF,iB=yF,dB=La.aTypedArrayConstructor,rB=PU,aB=F,oB=i,BB=ja,sB=La,RB=$o,cB=zF,VB=B,hB=ee,uB=dU,ZB=Pa,SB=tB,JB=m,pB=b,WB=DF,mB=p,EB=$t,kB=Xn,yB=tU.f,NB=function(e){var U,t,n,F,Q,l,i=nB(e),d=arguments.length,r=d>1?arguments[1]:void 0,a=void 0!==r,o=QB(i);if(null!=o&&!lB(o))for(l=(Q=o.call(i)).next,i=[];!(F=l.call(Q)).done;)i.push(F.value);for(a&&d>2&&(r=iB(r,arguments[2],2)),t=FB(i.length),n=new(dB(this))(t),U=0;t>U;U++)n[U]=a?r(i[U],U):i[U];return n},bB=ki.forEach,fB=JQ,vB=K,TB=Q,CB=tQ,DB=Me.get,gB=Me.set,XB=vB.f,xB=TB.f,LB=Math.round,GB=aB.RangeError,IB=RB.ArrayBuffer,MB=RB.DataView,YB=sB.NATIVE_ARRAY_BUFFER_VIEWS,wB=sB.TYPED_ARRAY_TAG,KB=sB.TypedArray,jB=sB.TypedArrayPrototype,_B=sB.aTypedArrayConstructor,HB=sB.isTypedArray,zB="BYTES_PER_ELEMENT",OB="Wrong length",PB=function(e,U){for(var t=0,n=U.length,F=new(_B(e))(n);n>t;)F[t]=U[t++];return F},AB=function(e,U){XB(e,U,{get:function(){return DB(this)[U]}})},qB=function(e){var U;return e instanceof IB||"ArrayBuffer"==(U=WB(e))||"SharedArrayBuffer"==U},$B=function(e,U){return HB(e)&&"symbol"!=typeof U&&U in e&&String(+U)==String(U)},es=function(e,U){return $B(e,U=JB(U,!0))?VB(2,e[U]):xB(e,U)},Us=function(e,U,t){return!($B(e,U=JB(U,!0))&&mB(t)&&pB(t,"value"))||pB(t,"get")||pB(t,"set")||t.configurable||pB(t,"writable")&&!t.writable||pB(t,"enumerable")&&!t.enumerable?XB(e,U,t):(e[U]=t.value,e)};oB?(YB||(TB.f=es,vB.f=Us,AB(jB,"buffer"),AB(jB,"byteOffset"),AB(jB,"byteLength"),AB(jB,"length")),rB({target:"Object",stat:!0,forced:!YB},{getOwnPropertyDescriptor:es,defineProperty:Us}),Ha.exports=function(e,U,t){var n=e.match(/\d+$/)[0]/8,F=e+(t?"Clamped":"")+"Array",Q="get"+e,l="set"+e,i=aB[F],d=i,r=d&&d.prototype,a={},o=function(e,U){XB(e,U,{get:function(){return e=U,(t=DB(this)).view[Q](e*n+t.byteOffset,!0);var e,t},set:function(e){return F=U,Q=e,i=DB(this),t&&(Q=(Q=LB(Q))<0?0:Q>255?255:255&Q),void i.view[l](F*n+i.byteOffset,Q,!0);var F,Q,i},enumerable:!0})};YB?BB&&(d=U((function(e,U,t,Q){return cB(e,d,F),CB(mB(U)?qB(U)?void 0!==Q?new i(U,SB(t,n),Q):void 0!==t?new i(U,SB(t,n)):new i(U):HB(U)?PB(d,U):NB.call(d,U):new i(ZB(U)),e,d)})),kB&&kB(d,KB),bB(yB(i),(function(e){e in d||hB(d,e,i[e])})),d.prototype=r):(d=U((function(e,U,t,Q){cB(e,d,F);var l,i,r,a=0,B=0;if(mB(U)){if(!qB(U))return HB(U)?PB(d,U):NB.call(d,U);l=U,B=SB(t,n);var s=U.byteLength;if(void 0===Q){if(s%n)throw GB(OB);if((i=s-B)<0)throw GB(OB)}else if((i=uB(Q)*n)+B>s)throw GB(OB);r=i/n}else r=ZB(U),l=new IB(i=r*n);for(gB(e,{buffer:l,byteOffset:B,byteLength:i,length:r,view:new MB(l)});a<r;)o(e,a++)})),kB&&kB(d,KB),r=d.prototype=EB(jB)),r.constructor!==d&&hB(r,"constructor",d),wB&&hB(r,wB,F),a[F]=d,rB({global:!0,forced:d!=i,sham:!YB},a),zB in d||hB(d,zB,n),zB in r||hB(r,zB,n),fB(F)}):Ha.exports=function(){};var ts=Ha.exports;ts("Uint8",(function(e){return function(U,t,n){return e(this,U,t,n)}}));var ns=k,Fs=BU,Qs=dU,ls=Math.min,is=[].copyWithin||function(e,U){var t=ns(this),n=Qs(t.length),F=Fs(e,n),Q=Fs(U,n),l=arguments.length>2?arguments[2]:void 0,i=ls((void 0===l?n:Fs(l,n))-Q,n-F),d=1;for(Q<F&&F<Q+i&&(d=-1,Q+=i-1,F+=i-1);i-- >0;)Q in t?t[F]=t[Q]:delete t[F],F+=d,Q+=d;return t},ds=is,rs=La.aTypedArray;(0,La.exportTypedArrayMethod)("copyWithin",(function(e,U){return ds.call(rs(this),e,U,arguments.length>2?arguments[2]:void 0)}));var as=ki.every,os=La.aTypedArray;(0,La.exportTypedArrayMethod)("every",(function(e){return as(os(this),e,arguments.length>1?arguments[1]:void 0)}));var Bs=Qo,ss=La.aTypedArray;(0,La.exportTypedArrayMethod)("fill",(function(e){return Bs.apply(ss(this),arguments)}));var Rs=La.aTypedArrayConstructor,cs=Fl,Vs=ki.filter,hs=function(e,U){for(var t=cs(e,e.constructor),n=0,F=U.length,Q=new(Rs(t))(F);F>n;)Q[n]=U[n++];return Q},us=La.aTypedArray;(0,La.exportTypedArrayMethod)("filter",(function(e){var U=Vs(us(this),e,arguments.length>1?arguments[1]:void 0);return hs(this,U)}));var Zs=ki.find,Ss=La.aTypedArray;(0,La.exportTypedArrayMethod)("find",(function(e){return Zs(Ss(this),e,arguments.length>1?arguments[1]:void 0)}));var Js=ki.findIndex,ps=La.aTypedArray;(0,La.exportTypedArrayMethod)("findIndex",(function(e){return Js(ps(this),e,arguments.length>1?arguments[1]:void 0)}));var Ws=ki.forEach,ms=La.aTypedArray;(0,La.exportTypedArrayMethod)("forEach",(function(e){Ws(ms(this),e,arguments.length>1?arguments[1]:void 0)}));var Es=hU.includes,ks=La.aTypedArray;(0,La.exportTypedArrayMethod)("includes",(function(e){return Es(ks(this),e,arguments.length>1?arguments[1]:void 0)}));var ys=hU.indexOf,Ns=La.aTypedArray;(0,La.exportTypedArrayMethod)("indexOf",(function(e){return ys(Ns(this),e,arguments.length>1?arguments[1]:void 0)}));var bs=F,fs=La,vs=iF,Ts=Tt("iterator"),Cs=bs.Uint8Array,Ds=vs.values,gs=vs.keys,Xs=vs.entries,xs=fs.aTypedArray,Ls=fs.exportTypedArrayMethod,Gs=Cs&&Cs.prototype[Ts],Is=!!Gs&&("values"==Gs.name||null==Gs.name),Ms=function(){return Ds.call(xs(this))};Ls("entries",(function(){return Xs.call(xs(this))})),Ls("keys",(function(){return gs.call(xs(this))})),Ls("values",Ms,!Is),Ls(Ts,Ms,!Is);var Ys=La.aTypedArray,ws=[].join;(0,La.exportTypedArrayMethod)("join",(function(e){return ws.apply(Ys(this),arguments)}));var Ks=l,js=function(e,U){var t=[][e];return!!t&&Ks((function(){t.call(null,U||function(){throw 1},1)}))},_s=J,Hs=QU,zs=dU,Os=js,Ps=Math.min,As=[].lastIndexOf,qs=!!As&&1/[1].lastIndexOf(1,-0)<0,$s=Os("lastIndexOf"),eR=qs||!$s?function(e){if(qs)return As.apply(this,arguments)||0;var U=_s(this),t=zs(U.length),n=t-1;for(arguments.length>1&&(n=Ps(n,Hs(arguments[1]))),n<0&&(n=t+n);n>=0;n--)if(n in U&&U[n]===e)return n||0;return-1}:As,UR=eR,tR=La.aTypedArray;(0,La.exportTypedArrayMethod)("lastIndexOf",(function(e){return UR.apply(tR(this),arguments)}));var nR=ki.map,FR=Fl,QR=La.aTypedArray,lR=La.aTypedArrayConstructor;(0,La.exportTypedArrayMethod)("map",(function(e){return nR(QR(this),e,arguments.length>1?arguments[1]:void 0,(function(e,U){return new(lR(FR(e,e.constructor)))(U)}))}));var iR=EF,dR=k,rR=h,aR=dU,oR=function(e){return function(U,t,n,F){iR(t);var Q=dR(U),l=rR(Q),i=aR(Q.length),d=e?i-1:0,r=e?-1:1;if(n<2)for(;;){if(d in l){F=l[d],d+=r;break}if(d+=r,e?d<0:i<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:i>d;d+=r)d in l&&(F=t(F,l[d],d,Q));return F}},BR={left:oR(!1),right:oR(!0)},sR=BR.left,RR=La.aTypedArray;(0,La.exportTypedArrayMethod)("reduce",(function(e){return sR(RR(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var cR=BR.right,VR=La.aTypedArray;(0,La.exportTypedArrayMethod)("reduceRight",(function(e){return cR(VR(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var hR=La.aTypedArray,uR=La.exportTypedArrayMethod,ZR=Math.floor;uR("reverse",(function(){for(var e,U=this,t=hR(U).length,n=ZR(t/2),F=0;F<n;)e=U[F],U[F++]=U[--t],U[t]=e;return U}));var SR=dU,JR=tB,pR=k,WR=La.aTypedArray;(0,La.exportTypedArrayMethod)("set",(function(e){WR(this);var U=JR(arguments.length>1?arguments[1]:void 0,1),t=this.length,n=pR(e),F=SR(n.length),Q=0;if(F+U>t)throw RangeError("Wrong length");for(;Q<F;)this[U+Q]=n[Q++]}),l((function(){new Int8Array(1).set({})})));var mR=Fl,ER=La.aTypedArray,kR=La.aTypedArrayConstructor,yR=[].slice;(0,La.exportTypedArrayMethod)("slice",(function(e,U){for(var t=yR.call(ER(this),e,U),n=mR(this,this.constructor),F=0,Q=t.length,l=new(kR(n))(Q);Q>F;)l[F]=t[F++];return l}),l((function(){new Int8Array(1).slice()})));var NR=ki.some,bR=La.aTypedArray;(0,La.exportTypedArrayMethod)("some",(function(e){return NR(bR(this),e,arguments.length>1?arguments[1]:void 0)}));var fR=La.aTypedArray,vR=[].sort;(0,La.exportTypedArrayMethod)("sort",(function(e){return vR.call(fR(this),e)}));var TR=dU,CR=BU,DR=Fl,gR=La.aTypedArray;(0,La.exportTypedArrayMethod)("subarray",(function(e,U){var t=gR(this),n=t.length,F=CR(e,n);return new(DR(t,t.constructor))(t.buffer,t.byteOffset+F*t.BYTES_PER_ELEMENT,TR((void 0===U?n:CR(U,n))-F))}));var XR=La,xR=l,LR=F.Int8Array,GR=XR.aTypedArray,IR=XR.exportTypedArrayMethod,MR=[].toLocaleString,YR=[].slice,wR=!!LR&&xR((function(){MR.call(new LR(1))}));IR("toLocaleString",(function(){return MR.apply(wR?YR.call(GR(this)):GR(this),arguments)}),xR((function(){return[1,2].toLocaleString()!=new LR([1,2]).toLocaleString()}))||!xR((function(){LR.prototype.toLocaleString.call([1,2])})));var KR=La.exportTypedArrayMethod,jR=l,_R=F.Uint8Array,HR=_R&&_R.prototype||{},zR=[].toString,OR=[].join;jR((function(){zR.call({})}))&&(zR=function(){return OR.call(this)});var PR=HR.toString!=zR;KR("toString",zR,PR);var AR=function(){function e(){var U,t;Ut(this,e);var n=new Promise((function(e,n){U=e,t=n}));return n.resolve=function(e){U(e),n.state="fulfilled"},n.reject=function(e){t(e),n.state="rejected",n.isBreak="DESTROYED"===e},n.state="pending",n}return nt(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),qR=PU,$R=J,ec=[].join,Uc=h!=Object,tc=js("join",",");qR({target:"Array",proto:!0,forced:Uc||!tc},{join:function(e){return ec.call($R(this),void 0===e?",":e)}});var nc,Fc=nt((function e(){var U=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=U.url,n=U.method,F=void 0===n?"GET":n,Q=U.type,l=void 0===Q?"arraybuffer":Q,i=U.data,d=void 0===i?{}:i;return Ut(this,e),new Promise((function(e,U){var n=new window.XMLHttpRequest,Q=F.toUpperCase(),i=[];if(Object.keys(d).map((function(e){i.push("k=".concat(d[e]))})),"GET"===Q){var r="";r=t.indexOf("?")<0?"".concat(t,"?").concat(i.join("&")):(null==i?void 0:i.length)>0?"".concat(t,"&").concat(i.join("&")):t,n.open(Q,r),l&&(n.responseType=l),n.send()}else{if("POST"!==Q)throw new Error("xhr ".concat(Q," is not supported"));n.open(Q,t,!0),l&&(n.responseType=l),n.setRequestHeader("Content-Type","application/json"),n.send(JSON.stringify(d))}n.onload=function(){200===n.status||206===n.status?e(n):U(n)},n.onerror=function(){U(n)}}))})),Qc=Fc;!function(e,U,t){function n(e,U){var t=parseInt(e.slice(U,U+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(U+2,U+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(U+2,U+6),16)])}var F,Q=0,l=[],i=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var d=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)l.push(parseInt(e.slice(F,F+2),16));var a=r+40,o=parseInt(e.slice(a,a+4),16);for(a+=4,F=0;F<o;++F){var B=n(e,a);a+=2*B[0];for(var s="",R=0;R<B[1];++R){var c=n(e,a);s+=String.fromCharCode(Q^c[1]),a+=2*c[0]}i.push(s)}U.p=null,function e(U,t,n,F,Q){var d,r,a,o,B,s=-1,R=[],c=null,V=[t];for(r=Math.min(t.length,n),a=0;a<r;++a)V.push(t[a]);V.p=F;for(var h=[];;)try{switch(l[U++]){case 33:R[++s]=null;break;case 34:d=l[U++],R[++s]=d<<24>>24;break;case 7:d=(l[U]<<8)+l[U+1],U+=2,R[++s]=d<<16>>16;break;case 29:d=((d=((d=l[U++])<<8)+l[U++])<<8)+l[U++],R[++s]=(d<<8)+l[U++];break;case 62:d=(l[U]<<8)+l[U+1],U+=2,R[++s]=i[d];break;case 76:R[++s]=void 0;break;case 53:R[++s]={};break;case 75:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],a=R[s--],R[s][r]=a;break;case 60:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;R[++s]=o[a];break;case 31:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],R[s]=R[s][r];break;case 32:r=R[s--],R[s]=R[s][r];break;case 63:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;o[a]=R[s--];break;case 30:r=R[s--],a=R[s--],o=R[s--],a[r]=o;break;case 74:for(r=l[U++],a=l[U++],o=V,o=V;r>0;--r)o=o.p;R[++s]=o,R[++s]=a;break;case 21:r=R[s--],R[s]+=r;break;case 58:r=R[s--],R[s]-=r;break;case 12:r=R[s--],R[s]%=r;break;case 10:r=R[s--],o=(a=R[s--])[r]++,R[++s]=o;break;case 2:r=R[s--],o=(a=R[s--])[r]--,R[++s]=o;break;case 1:r=R[s--],R[s]=R[s]===r;break;case 68:r=R[s--],R[s]=R[s]!==r;break;case 51:r=R[s--],R[s]=R[s]<r;break;case 6:r=R[s--],R[s]=R[s]<=r;break;case 16:r=R[s--],R[s]=R[s]>r;break;case 0:r=R[s--],R[s]=R[s]>=r;break;case 50:r=R[s--],R[s]=R[s]&r;break;case 67:r=R[s--],R[s]=R[s]^r;break;case 52:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,R[s]?--s:U+=d;break;case 45:r=R[s--],(a=R[s--])[r]=R[s];break;case 3:d=l[U++],r=R[s--],(a=function e(){var U=e._v;return(0,e._u)(U[0],arguments,U[1],U[2],this)})._v=[r,d,V],a._u=e,R[++s]=a;break;case 22:d=l[U++],r=R[s--],(o=[a=function e(){var U=e._v;return(0,e._u)(U[0],arguments,U[1],U[2],this)}]).p=V,a._v=[r,d,o],a._u=e,R[++s]=a;break;case 56:for(r=R[s--],a=null;o=h.pop();)if(2===o[0]||3===o[0]){a=o;break}if(a)U=a[2],a[0]=0,h.push(a);else{if(!c)return r;U=c[1],Q=c[2],V=c[3],h=c[4],R[++s]=r,c=c[0]}break;case 44:s-=d=l[U++],a=R.slice(s+1,s+d+1),r=R[s--],o=R[s--],r._u===e?(r=r._v,c=[c,U,Q,V,h],U=r[0],null==o&&(o=function(){return this}()),Q=o,(V=[a].concat(a)).length=Math.min(r[1],d)+1,V.p=r[2],h=[]):(B=r.apply(o,a),R[++s]=B);break;case 55:for(d=l[U++],o=[void 0],B=d;B>0;--B)o[B]=R[s--];a=R[s--],B=new(r=Function.bind.apply(a,o)),R[++s]=B;break;case 46:U+=2+(d=(d=(l[U]<<8)+l[U+1])<<16>>16);break;case 42:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,(r=R[s--])||(U+=d);break;case 39:--s;break;case 18:r=R[s],R[++s]=r;break;default:throw new Error("ioe")}}catch(u){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;c;){for(r=c[4];d=r.pop();)if(d[0])break e;c=c[0]}if(!c)throw u;U=c[1],Q=c[2],V=c[3],h=c[4],c=c[0]}1===(r=d[0])?(U=d[2],d[0]=0,h.push(d),R[++s]=u):2===r?(U=d[2],d[0]=0,h.push(d)):(U=d[3],d[0]=2,h.push(d),R[++s]=u)}}(d,[],0,U,t)}("504B010177739c88000003618b9f70750000039f3c00013e0000003400073c00013e0001062a00183c0001121f000222002c013e0000121f000222002c013a383c00013e0003003400073c00013e0004062a001b3c0001121f000222002c013e0003121f000222002c013a220a15380700ff383c0001220020121f00022c003c0001220120121f00022c00433c0001220220121f00022c00433e0000121f000222002c013a3f00033c00023c00033a22013a3f00043c03003c000437013f00053c03003c000337013f00063c00034a00072d273c00072200102a004e3c00013c00023c00033a22023a20121f00022c003c00013c00023c00033a22013a20121f00022c00433c00013c00023c00073a20121f00022c00433c00063c00033c00073a1e4a000702272effa922004a00072d273c00073c0004332a00193c00013c0007220115203c00053c00071e4a00070a272effdd353c00054b00053c00044b00063c00064b00073c00034b00083822003f000222004a00022d273c00012200442a00173c00013c000122013a324a00012d274a00020a272effe03c0002383c0001121f00022c00213c02033c00022c01153c0003153f00043c0301121f00093c00040700ff322c013822553f00030700fa3f000422003f000622004a00062d273c00063c0002332a007d3c000622020c2201012a00273c00033c00013c000620121f00022c00433f00053c00013c000620121f00022c003f00032e00243c00043c00013c000620121f00022c00433f00053c00013c000620121f00022c003f0004213c02043c0301121f00093c00052c013c000622152c033c00013c00061e4a00060a272eff793c000138213c02023c00012c013f00023c00021f000a3f00033c00023f0004213c01023c00043c00032c023f00053c00051f00053f00063c00051f00063f00073c00051f00083f0008213c01053c00063c00072c023f0006213c01013c00062200202c013f00083c00073c00083a22013a3f00093c02003c000922011537013f000a3c02003c000822011537013f000b3e000b3c000a3c00091e22003c000b3c00081e22003f000c22004a000c2d273c000c3c0009332a00193c00063c000c220115203c000a3c000c1e4a000c0a272effdd22004a000c2d273c000c3c0008332a001e3c00063c00073c00083a3c000c15203c000b3c000c1e4a000c0a272effd83c000a121f000c3e000b2c01381d0000025703013f01031d0000000016013f00011d0000005f16023f00021d0000015a16013f00031d0000018a16033f00041d000001b516023f00054c38000d013f01360a6c676e7d4c606b6a4e7b016e01750a6c6061796a7d7b446a760a6c6061796a7d7b436a610d6c6061796a7d7b426a7b67606b09626a7b67606b436a610c697d60624c676e7d4c606b6a06636a61687b67000465606661",{0:Array,1:String,get 2(){return atob},get 3(){return nc},set 3(e){nc=e}},void 0);var lc=null;function ic(e,U,t){var n=new AR;return new Qc({type:"json",method:"POST",url:t,data:{drm_type:"22",license_request:[{vid:e,kids:[].concat(U)}]}}).then((function(t){var F=null==t?void 0:t.response;if("string"==typeof F&&(F=JSON.parse(F)),F){var Q=F.play_licenses[e][U];n.resolve(Q)}else console.error("getSecretKeyByKid end, vid,",e,",kid",U,"response null"),n.reject()})).catch((function(){console.error("getSecretKeyByKid end, vid,",e,",kid",U,"catch"),n.reject()})),n}function dc(){return function(e,U,t){function n(e,U){var t=parseInt(e.slice(U,U+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(U+2,U+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(U+2,U+6),16)])}var F,Q=0,l=[],i=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var d=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)l.push(parseInt(e.slice(F,F+2),16));var a=r+40,o=parseInt(e.slice(a,a+4),16);for(a+=4,F=0;F<o;++F){var B=n(e,a);a+=2*B[0];for(var s="",R=0;R<B[1];++R){var c=n(e,a);s+=String.fromCharCode(Q^c[1]),a+=2*c[0]}i.push(s)}return U.p=null,function e(U,t,n,F,Q){var d,r,a,o,B,s=-1,R=[],c=null,V=[t];for(r=Math.min(t.length,n),a=0;a<r;++a)V.push(t[a]);V.p=F;for(var h=[];;)try{switch(l[U++]){case 33:R[++s]=null;break;case 34:d=l[U++],R[++s]=d<<24>>24;break;case 29:d=((d=((d=l[U++])<<8)+l[U++])<<8)+l[U++],R[++s]=(d<<8)+l[U++];break;case 62:d=(l[U]<<8)+l[U+1],U+=2,R[++s]=i[d];break;case 76:R[++s]=void 0;break;case 53:R[++s]={};break;case 75:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],a=R[s--],R[s][r]=a;break;case 60:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;R[++s]=o[a];break;case 31:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],R[s]=R[s][r];break;case 32:r=R[s--],R[s]=R[s][r];break;case 63:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;o[a]=R[s--];break;case 70:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],a=R[s--],o=R[s--],a[r]=o;break;case 30:r=R[s--],a=R[s--],o=R[s--],a[r]=o;break;case 68:r=R[s--],R[s]=R[s]!==r;break;case 16:r=R[s--],R[s]=R[s]>r;break;case 52:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,R[s]?--s:U+=d;break;case 3:d=l[U++],r=R[s--],(a=function e(){var U=e._v;return(0,e._u)(U[0],arguments,U[1],U[2],this)})._v=[r,d,V],a._u=e,R[++s]=a;break;case 56:for(r=R[s--],a=null;o=h.pop();)if(2===o[0]||3===o[0]){a=o;break}if(a)U=a[2],a[0]=0,h.push(a);else{if(!c)return r;U=c[1],Q=c[2],V=c[3],h=c[4],R[++s]=r,c=c[0]}break;case 44:s-=d=l[U++],a=R.slice(s+1,s+d+1),r=R[s--],o=R[s--],r._u===e?(r=r._v,c=[c,U,Q,V,h],U=r[0],null==o&&(o=function(){return this}()),Q=o,(V=[a].concat(a)).length=Math.min(r[1],d)+1,V.p=r[2],h=[]):(B=r.apply(o,a),R[++s]=B);break;case 55:for(d=l[U++],o=[void 0],B=d;B>0;--B)o[B]=R[s--];a=R[s--],B=new(r=Function.bind.apply(a,o)),R[++s]=B;break;case 46:U+=2+(d=(d=(l[U]<<8)+l[U+1])<<16>>16);break;case 42:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,(r=R[s--])||(U+=d);break;case 39:--s;break;case 18:r=R[s],R[++s]=r;break;default:throw new Error("ioe")}}catch(u){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;c;){for(r=c[4];d=r.pop();)if(d[0])break e;c=c[0]}if(!c)throw u;U=c[1],Q=c[2],V=c[3],h=c[4],c=c[0]}1===(r=d[0])?(U=d[2],d[0]=0,h.push(d),R[++s]=u):2===r?(U=d[2],d[0]=0,h.push(d)):(U=d[3],d[0]=2,h.push(d),R[++s]=u)}}(d,[],0,U,t)}("504B010177739c880000003f8b9f707500000142213c02013c00012c013f000235354b00023f00033c00023c00031f00023c01031e3c0105121f00033c00032c01274c383c0105121f00083c00012c01274c383c01031f00002200103400083c01032200204c442a00093c01032200202e00033e00013f00013c01031f00002201102a00093c01032201202e00014c3f00023c01031f00002202102a00093c01032202202e00014c3f00033c01031f00002203102a00093c01032203202e00014c3f00043c010037003f00053c00022a0047213c01013c00022c013f00063c00032a002535354b00023f00073c00063c00071f00023c00031e3c0005121f00033c00072c01272e000d3c0005121f00033c00062c01272e0039213c01023c00013c00033c00042c033f00083e00043c00084600053c0008121f00061d0000000003012c01121f00071d0000003003012c01273c000538000906636a61687b6700096c636a6e7d446a767c077d6a7c6063796a0e7d6a7e7a6a7c7b5f7d6062667c6a02666b047b676a61056c6e7b6c67067d6a656a6c7b",{get 0(){return AR},get 1(){return nc},get 2(){return ic},3:arguments},this)}function rc(e){var U;if(null===lc)try{lc=localStorage&&!!localStorage.getItem("secretkeylog")}catch(Q){}for(var t=arguments.length,n=new Array(t>1?t-1:0),F=1;F<t;F++)n[F-1]=arguments[F];lc&&console.log&&(U=console).log.apply(U,["[XGSecretkey]",e].concat(n))}var ac={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(e){this.toString=function(){return"CORRUPT: "+this.message},this.message=e},invalid:function(e){this.toString=function(){return"INVALID: "+this.message},this.message=e},bug:function(e){this.toString=function(){return"BUG: "+this.message},this.message=e},notReady:function(e){this.toString=function(){return"NOT READY: "+this.message},this.message=e}}};ac.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var U,t,n,F,Q,l=this._tables[0][4],i=this._tables[1],d=e.length,r=1;if(4!==d&&6!==d&&8!==d)throw new ac.exception.invalid("invalid aes key size");for(this._key=[F=e.slice(0),Q=[]],U=d;U<4*d+28;U++)n=F[U-1],(U%d==0||8===d&&U%d==4)&&(n=l[n>>>24]<<24^l[n>>16&255]<<16^l[n>>8&255]<<8^l[255&n],U%d==0&&(n=n<<8^n>>>24^r<<24,r=r<<1^283*(r>>7))),F[U]=F[U-d]^n;for(t=0;U;t++,U--)n=F[3&t?U:U-4],Q[t]=U<=4||t<4?n:i[0][l[n>>>24]]^i[1][l[n>>16&255]]^i[2][l[n>>8&255]]^i[3][l[255&n]]},ac.cipher.aes.prototype={encrypt:function(e){return this._crypt(e,0)},decrypt:function(e){return this._crypt(e,1)},_tables:[[[],[],[],[],[]],[[],[],[],[],[]]],_precompute:function(){var e,U,t,n,F,Q,l,i,d=this._tables[0],r=this._tables[1],a=d[4],o=r[4],B=[],s=[];for(e=0;e<256;e++)s[(B[e]=e<<1^283*(e>>7))^e]=e;for(U=t=0;!a[U];U^=n||1,t=s[t]||1)for(Q=(Q=t^t<<1^t<<2^t<<3^t<<4)>>8^255&Q^99,a[U]=Q,o[Q]=U,i=16843009*B[F=B[n=B[U]]]^65537*F^257*n^16843008*U,l=257*B[Q]^16843008*Q,e=0;e<4;e++)d[e][U]=l=l<<24^l>>>8,r[e][Q]=i=i<<24^i>>>8;for(e=0;e<5;e++)d[e]=d[e].slice(0),r[e]=r[e].slice(0)},_crypt:function(e,U){if(4!==e.length)throw new ac.exception.invalid("invalid aes block size");var t,n,F,Q,l=this._key[U],i=e[0]^l[0],d=e[U?3:1]^l[1],r=e[2]^l[2],a=e[U?1:3]^l[3],o=l.length/4-2,B=4,s=[0,0,0,0],R=this._tables[U],c=R[0],V=R[1],h=R[2],u=R[3],Z=R[4];for(Q=0;Q<o;Q++)t=c[i>>>24]^V[d>>16&255]^h[r>>8&255]^u[255&a]^l[B],n=c[d>>>24]^V[r>>16&255]^h[a>>8&255]^u[255&i]^l[B+1],F=c[r>>>24]^V[a>>16&255]^h[i>>8&255]^u[255&d]^l[B+2],a=c[a>>>24]^V[i>>16&255]^h[d>>8&255]^u[255&r]^l[B+3],B+=4,i=t,d=n,r=F;for(Q=0;Q<4;Q++)s[U?3&-Q:Q]=Z[i>>>24]<<24^Z[d>>16&255]<<16^Z[r>>8&255]<<8^Z[255&a]^l[B++],t=i,i=d,d=r,r=a,a=t;return s}},ac.bitArray={bitSlice:function(e,U,t){return e=ac.bitArray._shiftRight(e.slice(U/32),32-(31&U)).slice(1),void 0===t?e:ac.bitArray.clamp(e,t-U)},extract:function(e,U,t){var n=Math.floor(-U-t&31);return(-32&(U+t-1^U)?e[U/32|0]<<32-n^e[U/32+1|0]>>>n:e[U/32|0]>>>n)&(1<<t)-1},concat:function(e,U){if(0===e.length||0===U.length)return e.concat(U);var t=e[e.length-1],n=ac.bitArray.getPartial(t);return 32===n?e.concat(U):ac.bitArray._shiftRight(U,n,0|t,e.slice(0,e.length-1))},bitLength:function(e){var U,t=e.length;return 0===t?0:(U=e[t-1],32*(t-1)+ac.bitArray.getPartial(U))},clamp:function(e,U){if(32*e.length<U)return e;var t=(e=e.slice(0,Math.ceil(U/32))).length;return U&=31,t>0&&U&&(e[t-1]=ac.bitArray.partial(U,e[t-1]&2147483648>>U-1,1)),e},partial:function(e,U,t){return 32===e?U:(t?0|U:U<<32-e)+1099511627776*e},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(e,U){if(ac.bitArray.bitLength(e)!==ac.bitArray.bitLength(U))return!1;var t,n=0;for(t=0;t<e.length;t++)n|=e[t]^U[t];return 0===n},_shiftRight:function(e,U,t,n){var F,Q,l;for(void 0===n&&(n=[]);U>=32;U-=32)n.push(t),t=0;if(0===U)return n.concat(e);for(F=0;F<e.length;F++)n.push(t|e[F]>>>U),t=e[F]<<32-U;return Q=e.length?e[e.length-1]:0,l=ac.bitArray.getPartial(Q),n.push(ac.bitArray.partial(U+l&31,U+l>32?t:n.pop(),1)),n},_xor4:function(e,U){return[e[0]^U[0],e[1]^U[1],e[2]^U[2],e[3]^U[3]]},byteswapM:function(e){var U,t;for(U=0;U<e.length;++U)t=e[U],e[U]=t>>>24|t>>>8&65280|(65280&t)<<8|t<<24;return e}},ac.codec.utf8String={fromBits:function(e){var U,t,n="",F=ac.bitArray.bitLength(e);for(U=0;U<F/8;U++)0==(3&U)&&(t=e[U/4]),n+=String.fromCharCode(t>>>8>>>8>>>8),t<<=8;return decodeURIComponent(escape(n))},toBits:function(e){e=unescape(encodeURIComponent(e));var U,t=[],n=0;for(U=0;U<e.length;U++)n=n<<8|e.charCodeAt(U),3==(3&U)&&(t.push(n),n=0);return 3&U&&t.push(ac.bitArray.partial(8*(3&U),n)),t}},ac.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,U,t){var n,F="",Q=0,l=ac.codec.base64._chars,i=0,d=ac.bitArray.bitLength(e);for(t&&(l=l.substr(0,62)+"-_"),n=0;6*F.length<d;)F+=l.charAt((i^e[n]>>>Q)>>>26),Q<6?(i=e[n]<<6-Q,Q+=26,n++):(i<<=6,Q-=6);for(;3&F.length&&!U;)F+="=";return F},toBits:function(e,U){e=e.replace(/\s|=/g,"");var t,n,F=[],Q=0,l=ac.codec.base64._chars,i=0;for(U&&(l=l.substr(0,62)+"-_"),t=0;t<e.length;t++){if((n=l.indexOf(e.charAt(t)))<0)throw new ac.exception.invalid("this isn't base64!");Q>26?(Q-=26,F.push(i^n>>>Q),i=n<<32-Q):i^=n<<32-(Q+=6)}return 56&Q&&F.push(ac.bitArray.partial(56&Q,i,1)),F}},ac.codec.base64url={fromBits:function(e){return ac.codec.base64.fromBits(e,1,1)},toBits:function(e){return ac.codec.base64.toBits(e,1)}},ac.mode.gcm={name:"gcm",encrypt:function(e,U,t,n,F){var Q,l=U.slice(0),i=ac.bitArray;return F=F||128,n=n||[],Q=ac.mode.gcm._ctrMode(!0,e,l,n,t,F),i.concat(Q.data,Q.tag)},decrypt:function(e,U,t,n,F){var Q,l,i=U.slice(0),d=ac.bitArray,r=d.bitLength(i);if(n=n||[],(F=F||128)<=r?(l=d.bitSlice(i,r-F),i=d.bitSlice(i,0,r-F)):(l=i,i=[]),Q=ac.mode.gcm._ctrMode(!1,e,i,n,t,F),!d.equal(Q.tag,l))throw new ac.exception.corrupt("gcm: tag doesn't match");return Q.data},_galoisMultiply:function(e,U){var t,n,F,Q,l,i=ac.bitArray._xor4;for(F=[0,0,0,0],Q=U.slice(0),t=0;t<128;t++){for(0!=(e[Math.floor(t/32)]&1<<31-t%32)&&(F=i(F,Q)),l=0!=(1&Q[3]),n=3;n>0;n--)Q[n]=Q[n]>>>1|(1&Q[n-1])<<31;Q[0]=Q[0]>>>1,l&&(Q[0]=Q[0]^225<<24)}return F},_ghash:function(e,U,t){var n,F,Q=t.length;for(n=U.slice(0),F=0;F<Q;F+=4)n[0]^=4294967295&t[F],n[1]^=4294967295&t[F+1],n[2]^=4294967295&t[F+2],n[3]^=4294967295&t[F+3],n=ac.mode.gcm._galoisMultiply(n,e);return n},_ctrMode:function(e,U,t,n,F,Q){var l,i,d,r,a,o,B,s,R,c,V,h,u=ac.bitArray;for(R=t.length,c=u.bitLength(t),V=u.bitLength(n),h=u.bitLength(F),l=U.encrypt([0,0,0,0]),96===h?(i=F.slice(0),i=u.concat(i,[1])):(i=ac.mode.gcm._ghash(l,[0,0,0,0],F),i=ac.mode.gcm._ghash(l,i,[0,0,Math.floor(h/4294967296),4294967295&h])),d=ac.mode.gcm._ghash(l,[0,0,0,0],n),o=i.slice(0),B=d.slice(0),e||(B=ac.mode.gcm._ghash(l,d,t)),a=0;a<R;a+=4)o[3]++,r=U.encrypt(o),t[a]^=r[0],t[a+1]^=r[1],t[a+2]^=r[2],t[a+3]^=r[3];return t=u.clamp(t,c),e&&(B=ac.mode.gcm._ghash(l,d,t)),s=[Math.floor(V/4294967296),4294967295&V,Math.floor(c/4294967296),4294967295&c],B=ac.mode.gcm._ghash(l,B,s),r=U.encrypt(i),B[0]^=r[0],B[1]^=r[1],B[2]^=r[2],B[3]^=r[3],{tag:u.bitSlice(B,0,Q),data:t}}};var oc=_,Bc=function(){var e=oc(this),U="";return e.global&&(U+="g"),e.ignoreCase&&(U+="i"),e.multiline&&(U+="m"),e.dotAll&&(U+="s"),e.unicode&&(U+="u"),e.sticky&&(U+="y"),U},sc={},Rc=l;function cc(e,U){return RegExp(e,U)}sc.UNSUPPORTED_Y=Rc((function(){var e=cc("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),sc.BROKEN_CARET=Rc((function(){var e=cc("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var Vc,hc,uc=Bc,Zc=sc,Sc=Ze,Jc=RegExp.prototype.exec,pc=Sc("native-string-replace",String.prototype.replace),Wc=Jc,mc=(Vc=/a/,hc=/b*/g,Jc.call(Vc,"a"),Jc.call(hc,"a"),0!==Vc.lastIndex||0!==hc.lastIndex),Ec=Zc.UNSUPPORTED_Y||Zc.BROKEN_CARET,kc=void 0!==/()??/.exec("")[1];(mc||kc||Ec)&&(Wc=function(e){var U,t,n,F,Q=this,l=Ec&&Q.sticky,i=uc.call(Q),d=Q.source,r=0,a=e;return l&&(-1===(i=i.replace("y","")).indexOf("g")&&(i+="g"),a=String(e).slice(Q.lastIndex),Q.lastIndex>0&&(!Q.multiline||Q.multiline&&"\n"!==e[Q.lastIndex-1])&&(d="(?: "+d+")",a=" "+a,r++),t=new RegExp("^(?:"+d+")",i)),kc&&(t=new RegExp("^"+d+"$(?!\\s)",i)),mc&&(U=Q.lastIndex),n=Jc.call(l?t:Q,a),l?n?(n.input=n.input.slice(r),n[0]=n[0].slice(r),n.index=Q.lastIndex,Q.lastIndex+=n[0].length):Q.lastIndex=0:mc&&n&&(Q.lastIndex=Q.global?n.index+n[0].length:U),kc&&n&&n.length>1&&pc.call(n[0],t,(function(){for(F=1;F<arguments.length-2;F++)void 0===arguments[F]&&(n[F]=void 0)})),n});var yc=Wc;PU({target:"RegExp",proto:!0,forced:/./.exec!==yc},{exec:yc});var Nc=Pe,bc=yc,fc=l,vc=Tt,Tc=ee,Cc=vc("species"),Dc=RegExp.prototype,gc=!fc((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),Xc="$0"==="a".replace(/./,"$0"),xc=vc("replace"),Lc=!!/./[xc]&&""===/./[xc]("a","$0"),Gc=!fc((function(){var e=/(?:)/,U=e.exec;e.exec=function(){return U.apply(this,arguments)};var t="ab".split(e);return 2!==t.length||"a"!==t[0]||"b"!==t[1]})),Ic=function(e,U,t,n){var F=vc(e),Q=!fc((function(){var U={};return U[F]=function(){return 7},7!=""[e](U)})),l=Q&&!fc((function(){var U=!1,t=/a/;return"split"===e&&((t={}).constructor={},t.constructor[Cc]=function(){return t},t.flags="",t[F]=/./[F]),t.exec=function(){return U=!0,null},t[F](""),!U}));if(!Q||!l||"replace"===e&&(!gc||!Xc||Lc)||"split"===e&&!Gc){var i=/./[F],d=t(F,""[e],(function(e,U,t,n,F){var l=U.exec;return l===bc||l===Dc.exec?Q&&!F?{done:!0,value:i.call(U,t,n)}:{done:!0,value:e.call(t,U,n)}:{done:!1}}),{REPLACE_KEEPS_$0:Xc,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Lc}),r=d[0],a=d[1];Nc(String.prototype,e,r),Nc(Dc,F,2==U?function(e,U){return a.call(e,this,U)}:function(e){return a.call(e,this)})}n&&Tc(Dc[F],"sham",!0)},Mc=IQ.charAt,Yc=function(e,U,t){return U+(t?Mc(e,U).length:1)},wc=k,Kc=Math.floor,jc="".replace,_c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Hc=/\$([$&'`]|\d{1,2})/g,zc=R,Oc=yc,Pc=function(e,U){var t=e.exec;if("function"==typeof t){var n=t.call(e,U);if("object"!=typeof n)throw TypeError("RegExp exec method returned something other than an Object or null");return n}if("RegExp"!==zc(e))throw TypeError("RegExp#exec called on incompatible receiver");return Oc.call(e,U)},Ac=Ic,qc=_,$c=dU,eV=QU,UV=u,tV=Yc,nV=function(e,U,t,n,F,Q){var l=t+e.length,i=n.length,d=Hc;return void 0!==F&&(F=wc(F),d=_c),jc.call(Q,d,(function(Q,d){var r;switch(d.charAt(0)){case"$":return"$";case"&":return e;case"`":return U.slice(0,t);case"'":return U.slice(l);case"<":r=F[d.slice(1,-1)];break;default:var a=+d;if(0===a)return Q;if(a>i){var o=Kc(a/10);return 0===o?Q:o<=i?void 0===n[o-1]?d.charAt(1):n[o-1]+d.charAt(1):Q}r=n[a-1]}return void 0===r?"":r}))},FV=Pc,QV=Math.max,lV=Math.min;Ac("replace",2,(function(e,U,t,n){var F=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,Q=n.REPLACE_KEEPS_$0,l=F?"$":"$0";return[function(t,n){var F=UV(this),Q=null==t?void 0:t[e];return void 0!==Q?Q.call(t,F,n):U.call(String(F),t,n)},function(e,n){if(!F&&Q||"string"==typeof n&&-1===n.indexOf(l)){var i=t(U,e,this,n);if(i.done)return i.value}var d=qc(e),r=String(this),a="function"==typeof n;a||(n=String(n));var o=d.global;if(o){var B=d.unicode;d.lastIndex=0}for(var s=[];;){var R=FV(d,r);if(null===R)break;if(s.push(R),!o)break;""===String(R[0])&&(d.lastIndex=tV(r,$c(d.lastIndex),B))}for(var c,V="",h=0,u=0;u<s.length;u++){R=s[u];for(var Z=String(R[0]),S=QV(lV(eV(R.index),r.length),0),J=[],p=1;p<R.length;p++)J.push(void 0===(c=R[p])?c:String(c));var W=R.groups;if(a){var m=[Z].concat(J,S,r);void 0!==W&&m.push(W);var E=String(n.apply(void 0,m))}else E=nV(Z,r,S,J,W,n);S>=h&&(V+=r.slice(h,S)+E,h=S+Z.length)}return V+r.slice(h)}]}));var iV=Pe,dV=_,rV=l,aV=Bc,oV="toString",BV=RegExp.prototype,sV=BV[oV],RV=rV((function(){return"/a/b"!=sV.call({source:"a",flags:"b"})})),cV=sV.name!=oV;(RV||cV)&&iV(RegExp.prototype,oV,(function(){var e=dV(this),U=String(e.source),t=e.flags;return"/"+U+"/"+String(void 0===t&&e instanceof RegExp&&!("flags"in BV)?aV.call(e):t)}),{unsafe:!0});var VV=PU,hV=p,uV=Ri,ZV=BU,SV=dU,JV=J,pV=xi,WV=Tt,mV=fi("slice"),EV=WV("species"),kV=[].slice,yV=Math.max;VV({target:"Array",proto:!0,forced:!mV},{slice:function(e,U){var t,n,F,Q=JV(this),l=SV(Q.length),i=ZV(e,l),d=ZV(void 0===U?l:U,l);if(uV(Q)&&("function"!=typeof(t=Q.constructor)||t!==Array&&!uV(t.prototype)?hV(t)&&null===(t=t[EV])&&(t=void 0):t=void 0,t===Array||void 0===t))return kV.call(Q,i,d);for(n=new(void 0===t?Array:t)(yV(d-i,0)),F=0;i<d;i++,F++)i in Q&&pV(n,F,Q[i]);return n.length=F,n}});var NV=JQ,bV="ArrayBuffer",fV=$o[bV];PU({global:!0,forced:F[bV]!==fV},{ArrayBuffer:fV}),NV(bV);var vV=u,TV="[\t\n\v\f\r \u2028\u2029\ufeff]",CV=RegExp("^"+TV+TV+"*"),DV=RegExp(TV+TV+"*$"),gV=function(e){return function(U){var t=String(vV(U));return 1&e&&(t=t.replace(CV,"")),2&e&&(t=t.replace(DV,"")),t}},XV={start:gV(1),end:gV(2),trim:gV(3)},xV=i,LV=F,GV=YU,IV=Pe,MV=b,YV=R,wV=tQ,KV=m,jV=l,_V=$t,HV=tU.f,zV=Q.f,OV=K.f,PV=XV.trim,AV="Number",qV=LV[AV],$V=qV.prototype,eh=YV(_V($V))==AV,Uh=function(e){var U,t,n,F,Q,l,i,d,r=KV(e,!1);if("string"==typeof r&&r.length>2)if(43===(U=(r=PV(r)).charCodeAt(0))||45===U){if(88===(t=r.charCodeAt(2))||120===t)return NaN}else if(48===U){switch(r.charCodeAt(1)){case 66:case 98:n=2,F=49;break;case 79:case 111:n=8,F=55;break;default:return+r}for(l=(Q=r.slice(2)).length,i=0;i<l;i++)if((d=Q.charCodeAt(i))<48||d>F)return NaN;return parseInt(Q,n)}return+r};if(GV(AV,!qV(" 0o1")||!qV("0b1")||qV("+0x1"))){for(var th,nh=function(e){var U=arguments.length<1?0:e,t=this;return t instanceof nh&&(eh?jV((function(){$V.valueOf.call(t)})):YV(t)!=AV)?wV(new qV(Uh(U)),t,nh):Uh(U)},Fh=xV?HV(qV):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),Qh=0;Fh.length>Qh;Qh++)MV(qV,th=Fh[Qh])&&!MV(nh,th)&&OV(nh,th,zV(qV,th));nh.prototype=$V,$V.constructor=nh,IV(LV,AV,nh)}var lh=_,ih=dU,dh=u,rh=Yc,ah=Pc;Ic("match",1,(function(e,U,t){return[function(U){var t=dh(this),n=null==U?void 0:U[e];return void 0!==n?n.call(U,t):new RegExp(U)[e](String(t))},function(e){var n=t(U,e,this);if(n.done)return n.value;var F=lh(e),Q=String(this);if(!F.global)return ah(F,Q);var l=F.unicode;F.lastIndex=0;for(var i,d=[],r=0;null!==(i=ah(F,Q));){var a=String(i[0]);d[r]=a,""===a&&(F.lastIndex=rh(Q,ih(F.lastIndex),l)),r++}return 0===r?null:d}]}));var oh,Bh,sh,Rh,ch,Vh,hh={str2hex:function(e){if(""===e)return"";for(var U=[],t=0;t<e.length;t++)U.push(e.charCodeAt(t));return U},Base64ToHex:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(U){for(var n=[],F=0;F<t.length;F++)n.push(t.charCodeAt(F));return new Uint8Array(n).buffer}for(var Q="",l=0;l<t.length;l++)Q+="0".concat(t.charCodeAt(l).toString(16)).substr(-2);return Q},checkUnionInfoExpired:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;if(0===U.indexOf(e)){var n=parseInt(Zh(U.slice(e.length))),F=(new Date).getTime()-n;if(F>0&&F<=1e3*t)return!0;console.error("UnionInfo timestamp expire!!!")}else console.error("unionID and UnionInfo not match!!!");return!1},getUnionInfo:function(){return"".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").concat(uh((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var U=new ArrayBuffer(e.length),t=new Uint8Array(U),n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return U},ArrayBufferToString:function(e){var U=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var t,n=0;n<e.length;n++)t=e[n],U.push(String.fromCharCode(t));return U.join("")},isBase64:function(e){return/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/.test(e)},fromHex:function(e){for(var U=new Uint8Array(e.length/2),t=0;t<e.length;t+=2)U[t/2]=window.parseInt(e.substr(t,2),16);return U},fromCharCode:function(e){for(var U="",t=0;t<e.length;t+=16e3){var n=e.subarray(t,t+16e3);U+=String.fromCharCode.apply(null,n)}return U},toBase64:function(e,U){var t=hh.fromCharCode(e);U=void 0===U||U;var n=window.btoa(t).replace(/\+/g,"-").replace(/\//g,"_");return U?n:n.replace(/=*$/,"")},toUTF8:function(e){for(var U=encodeURIComponent(e),t=unescape(U),n=new Uint8Array(t.length),F=0;F<t.length;++F)n[F]=t.charCodeAt(F);return n.buffer}},uh=(oh="vodTimestampSalt",Bh=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},sh=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},Rh=function(e){return Bh(oh).reduce((function(e,U){return e^U}),e)},function(e){return e.split("").map(Bh).map(Rh).map(sh).join("")}),Zh=(ch="vodTimestampSalt",Vh=function(e){return(U=ch,U.split("").map((function(e){return e.charCodeAt(0)}))).reduce((function(e,U){return e^U}),e);var U},function(e){return e.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})).map(Vh).map((function(e){return String.fromCharCode(e)})).join("")}),Sh=hh;function Jh(e,U){return ph.apply(this,arguments)}function ph(){return(ph=et(AU().mark((function e(U,t){var n,F,Q,l,i;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.iv,F=t.tagLength,Q=t.data,l=null,U=Sh.StringToArrayBuffer(U),Q=Sh.Base64ToHex(Q,!0),e.prev=4,e.next=7,crypto.subtle.importKey("raw",U,"AES-GCM",!0,["encrypt","decrypt"]);case 7:i=e.sent,e.next=13;break;case 10:throw e.prev=10,e.t0=e.catch(4),new Error("importKey: ".concat((null===e.t0||void 0===e.t0?void 0:e.t0.message)||e.t0));case 13:return e.prev=13,e.next=16,crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(n),tagLength:F},i,Q);case 16:l=e.sent,e.next=30;break;case 19:if(e.prev=19,e.t1=e.catch(13),"OperationError"!==String(e.t1)){e.next=25;break}throw new Error("Wrong Password.");case 25:if("InvalidAccessError"!==String(e.t1)){e.next=29;break}throw new Error("Invalid Key");case 29:throw e.t1;case 30:return e.abrupt("return",new TextDecoder("utf-8").decode(l));case 31:case"end":return e.stop()}}),e,null,[[4,10],[13,19]])})))).apply(this,arguments)}function Wh(e,U){return mh.apply(this,arguments)}function mh(){return(mh=et(AU().mark((function e(U,t){var n,F,Q,l,i,d,r;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.iv,F=t.tagLength,Q=t.data,l=btoa(Sh.ArrayBufferToString(n)),i=ac.codec.base64.toBits(l),d=ac.codec.utf8String.toBits(U),r=new ac.cipher.aes(d),e.abrupt("return",ac.codec.utf8String.fromBits(ac.mode.gcm.decrypt(r,ac.codec.base64.toBits(Q),i,[],F)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Eh,kh={webCryptoDecrypt:Jh,decrypt:(Eh=et(AU().mark((function e(U,t){var n,F;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof t&&(t=JSON.parse(t)),!t.enableSoftwareAES&&null!==(n=crypto)&&void 0!==n&&n.subtle){e.next=7;break}return e.next=4,Wh(U,t);case 4:F=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,Jh(U,t);case 10:F=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,Wh(U,t);case 17:F=e.sent;case 18:return e.abrupt("return",F);case 19:case"end":return e.stop()}}),e,null,[[7,13]])}))),function(e,U){return Eh.apply(this,arguments)})},yh={exports:{}};yh.exports=function(e){var U=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function t(e,U){var t=e[0],n=e[1],F=e[2],Q=e[3];n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&F|~n&Q)+U[0]-680876936|0)<<7|t>>>25)+n|0)&n|~t&F)+U[1]-389564586|0)<<12|Q>>>20)+t|0)&t|~Q&n)+U[2]+606105819|0)<<17|F>>>15)+Q|0)&Q|~F&t)+U[3]-1044525330|0)<<22|n>>>10)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&F|~n&Q)+U[4]-176418897|0)<<7|t>>>25)+n|0)&n|~t&F)+U[5]+1200080426|0)<<12|Q>>>20)+t|0)&t|~Q&n)+U[6]-1473231341|0)<<17|F>>>15)+Q|0)&Q|~F&t)+U[7]-45705983|0)<<22|n>>>10)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&F|~n&Q)+U[8]+1770035416|0)<<7|t>>>25)+n|0)&n|~t&F)+U[9]-1958414417|0)<<12|Q>>>20)+t|0)&t|~Q&n)+U[10]-42063|0)<<17|F>>>15)+Q|0)&Q|~F&t)+U[11]-1990404162|0)<<22|n>>>10)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&F|~n&Q)+U[12]+1804603682|0)<<7|t>>>25)+n|0)&n|~t&F)+U[13]-40341101|0)<<12|Q>>>20)+t|0)&t|~Q&n)+U[14]-1502002290|0)<<17|F>>>15)+Q|0)&Q|~F&t)+U[15]+1236535329|0)<<22|n>>>10)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&Q|F&~Q)+U[1]-165796510|0)<<5|t>>>27)+n|0)&F|n&~F)+U[6]-1069501632|0)<<9|Q>>>23)+t|0)&n|t&~n)+U[11]+643717713|0)<<14|F>>>18)+Q|0)&t|Q&~t)+U[0]-373897302|0)<<20|n>>>12)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&Q|F&~Q)+U[5]-701558691|0)<<5|t>>>27)+n|0)&F|n&~F)+U[10]+38016083|0)<<9|Q>>>23)+t|0)&n|t&~n)+U[15]-660478335|0)<<14|F>>>18)+Q|0)&t|Q&~t)+U[4]-405537848|0)<<20|n>>>12)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&Q|F&~Q)+U[9]+568446438|0)<<5|t>>>27)+n|0)&F|n&~F)+U[14]-1019803690|0)<<9|Q>>>23)+t|0)&n|t&~n)+U[3]-187363961|0)<<14|F>>>18)+Q|0)&t|Q&~t)+U[8]+1163531501|0)<<20|n>>>12)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&Q|F&~Q)+U[13]-1444681467|0)<<5|t>>>27)+n|0)&F|n&~F)+U[2]-51403784|0)<<9|Q>>>23)+t|0)&n|t&~n)+U[7]+1735328473|0)<<14|F>>>18)+Q|0)&t|Q&~t)+U[12]-1926607734|0)<<20|n>>>12)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n^F^Q)+U[5]-378558|0)<<4|t>>>28)+n|0)^n^F)+U[8]-2022574463|0)<<11|Q>>>21)+t|0)^t^n)+U[11]+1839030562|0)<<16|F>>>16)+Q|0)^Q^t)+U[14]-35309556|0)<<23|n>>>9)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n^F^Q)+U[1]-1530992060|0)<<4|t>>>28)+n|0)^n^F)+U[4]+1272893353|0)<<11|Q>>>21)+t|0)^t^n)+U[7]-155497632|0)<<16|F>>>16)+Q|0)^Q^t)+U[10]-1094730640|0)<<23|n>>>9)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n^F^Q)+U[13]+681279174|0)<<4|t>>>28)+n|0)^n^F)+U[0]-358537222|0)<<11|Q>>>21)+t|0)^t^n)+U[3]-722521979|0)<<16|F>>>16)+Q|0)^Q^t)+U[6]+76029189|0)<<23|n>>>9)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n^F^Q)+U[9]-640364487|0)<<4|t>>>28)+n|0)^n^F)+U[12]-421815835|0)<<11|Q>>>21)+t|0)^t^n)+U[15]+530742520|0)<<16|F>>>16)+Q|0)^Q^t)+U[2]-995338651|0)<<23|n>>>9)+F|0,n=((n+=((Q=((Q+=(n^((t=((t+=(F^(n|~Q))+U[0]-198630844|0)<<6|t>>>26)+n|0)|~F))+U[7]+1126891415|0)<<10|Q>>>22)+t|0)^((F=((F+=(t^(Q|~n))+U[14]-1416354905|0)<<15|F>>>17)+Q|0)|~t))+U[5]-57434055|0)<<21|n>>>11)+F|0,n=((n+=((Q=((Q+=(n^((t=((t+=(F^(n|~Q))+U[12]+1700485571|0)<<6|t>>>26)+n|0)|~F))+U[3]-1894986606|0)<<10|Q>>>22)+t|0)^((F=((F+=(t^(Q|~n))+U[10]-1051523|0)<<15|F>>>17)+Q|0)|~t))+U[1]-2054922799|0)<<21|n>>>11)+F|0,n=((n+=((Q=((Q+=(n^((t=((t+=(F^(n|~Q))+U[8]+1873313359|0)<<6|t>>>26)+n|0)|~F))+U[15]-30611744|0)<<10|Q>>>22)+t|0)^((F=((F+=(t^(Q|~n))+U[6]-1560198380|0)<<15|F>>>17)+Q|0)|~t))+U[13]+1309151649|0)<<21|n>>>11)+F|0,n=((n+=((Q=((Q+=(n^((t=((t+=(F^(n|~Q))+U[4]-145523070|0)<<6|t>>>26)+n|0)|~F))+U[11]-1120210379|0)<<10|Q>>>22)+t|0)^((F=((F+=(t^(Q|~n))+U[2]+718787259|0)<<15|F>>>17)+Q|0)|~t))+U[9]-343485551|0)<<21|n>>>11)+F|0,e[0]=t+e[0]|0,e[1]=n+e[1]|0,e[2]=F+e[2]|0,e[3]=Q+e[3]|0}function n(e){var U,t=[];for(U=0;U<64;U+=4)t[U>>2]=e.charCodeAt(U)+(e.charCodeAt(U+1)<<8)+(e.charCodeAt(U+2)<<16)+(e.charCodeAt(U+3)<<24);return t}function F(e){var U,t=[];for(U=0;U<64;U+=4)t[U>>2]=e[U]+(e[U+1]<<8)+(e[U+2]<<16)+(e[U+3]<<24);return t}function Q(e){var U,F,Q,l,i,d,r=e.length,a=[1732584193,-271733879,-1732584194,271733878];for(U=64;U<=r;U+=64)t(a,n(e.substring(U-64,U)));for(F=(e=e.substring(U-64)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],U=0;U<F;U+=1)Q[U>>2]|=e.charCodeAt(U)<<(U%4<<3);if(Q[U>>2]|=128<<(U%4<<3),U>55)for(t(a,Q),U=0;U<16;U+=1)Q[U]=0;return l=(l=8*r).toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(l[2],16),d=parseInt(l[1],16)||0,Q[14]=i,Q[15]=d,t(a,Q),a}function l(e){var U,n,Q,l,i,d,r=e.length,a=[1732584193,-271733879,-1732584194,271733878];for(U=64;U<=r;U+=64)t(a,F(e.subarray(U-64,U)));for(n=(e=U-64<r?e.subarray(U-64):new Uint8Array(0)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],U=0;U<n;U+=1)Q[U>>2]|=e[U]<<(U%4<<3);if(Q[U>>2]|=128<<(U%4<<3),U>55)for(t(a,Q),U=0;U<16;U+=1)Q[U]=0;return l=(l=8*r).toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(l[2],16),d=parseInt(l[1],16)||0,Q[14]=i,Q[15]=d,t(a,Q),a}function i(e){var t,n="";for(t=0;t<4;t+=1)n+=U[e>>8*t+4&15]+U[e>>8*t&15];return n}function d(e){var U;for(U=0;U<e.length;U+=1)e[U]=i(e[U]);return e.join("")}function r(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function a(e,U){var t,n=e.length,F=new ArrayBuffer(n),Q=new Uint8Array(F);for(t=0;t<n;t+=1)Q[t]=e.charCodeAt(t);return U?Q:F}function o(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function B(e,U,t){var n=new Uint8Array(e.byteLength+U.byteLength);return n.set(new Uint8Array(e)),n.set(new Uint8Array(U),e.byteLength),t?n:n.buffer}function s(e){var U,t=[],n=e.length;for(U=0;U<n-1;U+=2)t.push(parseInt(e.substr(U,2),16));return String.fromCharCode.apply(String,t)}function R(){this.reset()}return d(Q("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function U(e,U){return(e=0|e||0)<0?Math.max(e+U,0):Math.min(e,U)}ArrayBuffer.prototype.slice=function(t,n){var F,Q,l,i,d=this.byteLength,r=U(t,d),a=d;return n!==e&&(a=U(n,d)),r>a?new ArrayBuffer(0):(F=a-r,Q=new ArrayBuffer(F),l=new Uint8Array(Q),i=new Uint8Array(this,r,F),l.set(i),Q)}}(),R.prototype.append=function(e){return this.appendBinary(r(e)),this},R.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var U,F=this._buff.length;for(U=64;U<=F;U+=64)t(this._hash,n(this._buff.substring(U-64,U)));return this._buff=this._buff.substring(U-64),this},R.prototype.end=function(e){var U,t,n=this._buff,F=n.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(U=0;U<F;U+=1)Q[U>>2]|=n.charCodeAt(U)<<(U%4<<3);return this._finish(Q,F),t=d(this._hash),e&&(t=s(t)),this.reset(),t},R.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},R.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},R.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},R.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},R.prototype._finish=function(e,U){var n,F,Q,l=U;if(e[l>>2]|=128<<(l%4<<3),l>55)for(t(this._hash,e),l=0;l<16;l+=1)e[l]=0;n=(n=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),F=parseInt(n[2],16),Q=parseInt(n[1],16)||0,e[14]=F,e[15]=Q,t(this._hash,e)},R.hash=function(e,U){return R.hashBinary(r(e),U)},R.hashBinary=function(e,U){var t=d(Q(e));return U?s(t):t},R.ArrayBuffer=function(){this.reset()},R.ArrayBuffer.prototype.append=function(e){var U,n=B(this._buff.buffer,e,!0),Q=n.length;for(this._length+=e.byteLength,U=64;U<=Q;U+=64)t(this._hash,F(n.subarray(U-64,U)));return this._buff=U-64<Q?new Uint8Array(n.buffer.slice(U-64)):new Uint8Array(0),this},R.ArrayBuffer.prototype.end=function(e){var U,t,n=this._buff,F=n.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(U=0;U<F;U+=1)Q[U>>2]|=n[U]<<(U%4<<3);return this._finish(Q,F),t=d(this._hash),e&&(t=s(t)),this.reset(),t},R.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},R.ArrayBuffer.prototype.getState=function(){var e=R.prototype.getState.call(this);return e.buff=o(e.buff),e},R.ArrayBuffer.prototype.setState=function(e){return e.buff=a(e.buff,!0),R.prototype.setState.call(this,e)},R.ArrayBuffer.prototype.destroy=R.prototype.destroy,R.ArrayBuffer.prototype._finish=R.prototype._finish,R.ArrayBuffer.hash=function(e,U){var t=d(l(new Uint8Array(e)));return U?s(t):t},R}();var Nh=t(yh.exports),bh=new Uint8Array([91,104,69,75,156,171,238,71,202,4,244,5]).buffer;function fh(e,U){return vh.apply(this,arguments)}function vh(){return(vh=et(AU().mark((function e(U,t){var n,F;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Nh.hash(t),e.next=3,kh.decrypt(n,{data:U,iv:bh,tagLength:128});case 3:return F=e.sent,e.abrupt("return",F);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Th=ki.forEach,Ch=js("forEach")?[].forEach:function(e){return Th(this,e,arguments.length>1?arguments[1]:void 0)},Dh=F,gh=ei,Xh=Ch,xh=ee;for(var Lh in gh){var Gh=Dh[Lh],Ih=Gh&&Gh.prototype;if(Ih&&Ih.forEach!==Xh)try{xh(Ih,"forEach",Xh)}catch(mu){Ih.forEach=Xh}}ts("Uint16",(function(e){return function(U,t,n){return e(this,U,t,n)}}));var Mh={exports:{}};!function(e){var U=Object.prototype.hasOwnProperty,t="~";function n(){}function F(e,U,t){this.fn=e,this.context=U,this.once=t||!1}function Q(e,U,n,Q,l){if("function"!=typeof n)throw new TypeError("The listener must be a function");var i=new F(n,Q||e,l),d=t?t+U:U;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],i]:e._events[d].push(i):(e._events[d]=i,e._eventsCount++),e}function l(e,U){0==--e._eventsCount?e._events=new n:delete e._events[U]}function i(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(t=!1)),i.prototype.eventNames=function(){var e,n,F=[];if(0===this._eventsCount)return F;for(n in e=this._events)U.call(e,n)&&F.push(t?n.slice(1):n);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},i.prototype.listeners=function(e){var U=t?t+e:e,n=this._events[U];if(!n)return[];if(n.fn)return[n.fn];for(var F=0,Q=n.length,l=new Array(Q);F<Q;F++)l[F]=n[F].fn;return l},i.prototype.listenerCount=function(e){var U=t?t+e:e,n=this._events[U];return n?n.fn?1:n.length:0},i.prototype.emit=function(e,U,n,F,Q,l){var i=t?t+e:e;if(!this._events[i])return!1;var d,r,a=this._events[i],o=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),o){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,U),!0;case 3:return a.fn.call(a.context,U,n),!0;case 4:return a.fn.call(a.context,U,n,F),!0;case 5:return a.fn.call(a.context,U,n,F,Q),!0;case 6:return a.fn.call(a.context,U,n,F,Q,l),!0}for(r=1,d=new Array(o-1);r<o;r++)d[r-1]=arguments[r];a.fn.apply(a.context,d)}else{var B,s=a.length;for(r=0;r<s;r++)switch(a[r].once&&this.removeListener(e,a[r].fn,void 0,!0),o){case 1:a[r].fn.call(a[r].context);break;case 2:a[r].fn.call(a[r].context,U);break;case 3:a[r].fn.call(a[r].context,U,n);break;case 4:a[r].fn.call(a[r].context,U,n,F);break;default:if(!d)for(B=1,d=new Array(o-1);B<o;B++)d[B-1]=arguments[B];a[r].fn.apply(a[r].context,d)}}return!0},i.prototype.on=function(e,U,t){return Q(this,e,U,t,!1)},i.prototype.once=function(e,U,t){return Q(this,e,U,t,!0)},i.prototype.removeListener=function(e,U,n,F){var Q=t?t+e:e;if(!this._events[Q])return this;if(!U)return l(this,Q),this;var i=this._events[Q];if(i.fn)i.fn!==U||F&&!i.once||n&&i.context!==n||l(this,Q);else{for(var d=0,r=[],a=i.length;d<a;d++)(i[d].fn!==U||F&&!i[d].once||n&&i[d].context!==n)&&r.push(i[d]);r.length?this._events[Q]=1===r.length?r[0]:r:l(this,Q)}return this},i.prototype.removeAllListeners=function(e){var U;return e?(U=t?t+e:e,this._events[U]&&l(this,U)):(this._events=new n,this._eventsCount=0),this},i.prototype.off=i.prototype.removeListener,i.prototype.addListener=i.prototype.on,i.prefixed=t,i.EventEmitter=i,e.exports=i}(Mh);var Yh=t(Mh.exports),wh="kid",Kh={ERROR:"error",ENCRYPTED:"encrypted",CDM_LICENSE_SUCCESS:"CDM_LICENSE_SUCCESS",CDM_LICENSE_ERROR:"CDM_LICENSE_ERROR"},jh=function(e){Qt(t,e);var U=rt(t);function t(e){var n;return Ut(this,t),Ft(dt(n=U.call(this)),"encryptHandle",(function(e){var U,t,F,Q=dt(n).video,l=dt(n);"org.w3.clearkey"===n.KEYSYSTEM_TYPE?(U="keyids",t=JSON.stringify({kids:["0123456789abcdef0123456789abcdef"]}),F=new Uint8Array(Sh.toUTF8(t))):"com.widevine.alpha"===n.KEYSYSTEM_TYPE?(U="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,0,67,112,115,115,104,0,0,0,0,237,239,139,169,121,214,74,206,163,200,39,220,213,29,33,237,0,0,0,35,8,1,18,16,51,51,51,51,51,51,51,51,51,51,51,51,0,0,0,0,26,10,105,110,116,101,114,116,114,117,115,116,34,1,42])):"com.microsoft.playready"===n.KEYSYSTEM_TYPE&&(U="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,2,38,112,115,115,104,0,0,0,0,154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149,0,0,2,6,6,2,0,0,1,0,1,0,252,1,60,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,32,0,120,0,109,0,108,0,110,0,115,0,61,0,34,0,104,0,116,0,116,0,112,0,58,0,47,0,47,0,115,0,99,0,104,0,101,0,109,0,97,0,115,0,46,0,109,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,99,0,111,0,109,0,47,0,68,0,82,0,77,0,47,0,50,0,48,0,48,0,55,0,47,0,48,0,51,0,47,0,80,0,108,0,97,0,121,0,82,0,101,0,97,0,100,0,121,0,72,0,101,0,97,0,100,0,101,0,114,0,34,0,32,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,61,0,34,0,52,0,46,0,48,0,46,0,48,0,46,0,48,0,34,0,62,0,60,0,68,0,65,0,84,0,65,0,62,0,60,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,49,0,54,0,60,0,47,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,60,0,65,0,76,0,71,0,73,0,68,0,62,0,65,0,69,0,83,0,67,0,84,0,82,0,60,0,47,0,65,0,76,0,71,0,73,0,68,0,62,0,60,0,47,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,73,0,68,0,62,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,65,0,65,0,65,0,65,0,65,0,65,0,61,0,61,0,60,0,47,0,75,0,73,0,68,0,62,0,60,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,65,0,49,0,53,0,66,0,89,0,87,0,68,0,52,0,113,0,115,0,73,0,61,0,60,0,47,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,60,0,47,0,68,0,65,0,84,0,65,0,62,0,60,0,47,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,62,0])),l.EnsureMediaKeysCreated(Q,l.KEYSYSTEM_TYPE,l.options).then((function(){var e=Q.mediaKeys.createSession();return Q.sessions.push(e),"org.w3.clearkey"===l.KEYSYSTEM_TYPE?e.addEventListener("message",l.updateSessionFunc(l.keys)):("com.widevine.alpha"===l.KEYSYSTEM_TYPE||"com.microsoft.playready"===l.KEYSYSTEM_TYPE)&&e.addEventListener("message",l.licenseRequestReady.bind(l)),e.generateRequest(U,F.buffer)}),(function(){return l.bail(" failed to ensure MediaKeys on HTMLMediaElement")})).then((function(){}),(function(){return l.bail(" Failed to generate request.")}))})),n.KEYSYSTEM_TYPE="",n.keys={},n.updateDrm(e),n.options=[],n.ensurePromise=void 0,n.kid=wh,n.video=null,n.licenseStep=0,n.on(Kh.ENCRYPTED,n.encryptHandle),n}return nt(t,[{key:"updateDrm",value:function(e,U){null!=e&&e.clearKeys&&(this.KEYSYSTEM_TYPE="org.w3.clearkey",this.keys=e.clearKeys),null!=e&&e.clearKeys?this.KEYSYSTEM_TYPE="org.w3.clearkey":null!=e&&e.widevine?(this.KEYSYSTEM_TYPE="com.widevine.alpha",this.keys=e.widevine):null!=e&&e.playready&&(this.KEYSYSTEM_TYPE="com.microsoft.playready",this.keys=e.playready),U&&(this.kid=U)}},{key:"updateKid",value:function(e){this.kid===wh&&this.keys[this.kid]&&(this.keys[e]=this.keys[this.kid],delete this.keys[wh]),this.kid=e}},{key:"setOptions",value:function(){this.options=[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'},{contentType:'video/mp4; codecs="hev1.1.6.L120.90"'},{contentType:'video/webm; codecs="vp8"'}]}]}},{key:"bail",value:function(e){console.error("[EME]",e),this.emit(Kh.ERROR,e)}},{key:"updateSessionFunc",value:function(e){var U=this;return function(t){var n=[],F=[];Object.keys(e).forEach((function(U){var t=e[U],Q=Sh.fromHex(U),l=Sh.fromHex(t),i={kty:"oct",kid:Sh.toBase64(Q,!1),k:Sh.toBase64(l,!1)};n.push(i),F.push(i.kid)}));var Q={keys:n},l=JSON.stringify(Q);t.target.update(Sh.StringToArrayBuffer(l)).then((function(){}),(function(){return U.bail(" MediaKeySession update failed")}))}}},{key:"keysChange",value:function(){}},{key:"EnsureMediaKeysCreated",value:function(e,U,t){var n=this;return this.ensurePromise||(this.ensurePromise=navigator.requestMediaKeySystemAccess(U,t).then((function(e){return e.createMediaKeys()}),(function(){return n.bail(" Failed to request key system access.")})).then((function(U){return e.setMediaKeys(U)}),(function(){return n.bail(" failed to create MediaKeys object")}))),this.ensurePromise}},{key:"setupEME",value:function(e){this.video=e,e.sessions=[]}},{key:"parseServerResponse",value:function(e){var U="https://schemas.xmlsoap.org/soap/envelope/";if(window.DOMParser){var t=this.uintToString(e),n=(new window.DOMParser).parseFromString(t,"text/xml"),F=n?n.getElementsByTagNameNS(U,"Envelope")[0]:null,Q=F?F.getElementsByTagNameNS(U,"Body")[0]:null;if(Q&&Q.getElementsByTagNameNS(U,"Fault")[0])return null}return e}},{key:"uintToString",value:function(e){var U=String.fromCharCode.apply(null,new Uint8Array(e));return decodeURIComponent(escape(U))}},{key:"licenseRequestReady",value:function(e){var U=this,t=new XMLHttpRequest;t.open("GET",this.keys.serverURL),t.onreadystatechange=function(){if(4===t.readyState){var n=e.message,F=t.response;"com.microsoft.playready"===U.KEYSYSTEM_TYPE&&(F=JSON.parse(t.response),F="".concat(F.licenseAcquisitionUrl,"?ExpressPlayToken=").concat(F.token));var Q=new XMLHttpRequest;Q.keySession=e.target,Q.responseType="arraybuffer",Q.withCredentials=!1,Q.open("POST",String(F)),"com.microsoft.playready"===U.KEYSYSTEM_TYPE&&Q.setRequestHeader("Content-type","text/xml"),Q.onreadystatechange=function(){if(4===Q.readyState){if(200!==Q.status)return void U.emit(Kh.CDM_LICENSE_ERROR,{data:U.licenseStep});var e;U.emit(Kh.CDM_LICENSE_SUCCESS,{data:U.licenseStep}),U.licenseStep++,e="com.microsoft.playready"===U.KEYSYSTEM_TYPE?U.parseServerResponse(Q.response):new Uint8Array(Q.response),Q.keySession.update(e).catch(console.error.bind(console,"update() failed"))}},Q.send(U.getLicenseRequestFromMessage(n))}},t.send()}},{key:"getLicenseRequestFromMessage",value:function(e){if("com.microsoft.playready"===this.KEYSYSTEM_TYPE){var U=null,t=new DOMParser,n=new Uint16Array(e),F=String.fromCharCode.apply(null,n),Q=t.parseFromString(F,"application/xml");if(!Q.getElementsByTagName("PlayReadyKeyMessage")[0])return e;var l=Q.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;return l&&(U=window.atob(l)),U}return new Uint8Array(e)}},{key:"destroy",value:function(){this.removeAllListeners(),this.video=null}}]),t}(Yh),_h="volcvui",Hh=new Map,zh=function(e){Qt(n,e);var U,t=rt(n);function n(e){var U;return Ut(this,n),Ft(dt(U=t.call(this)),"EMEError",(function(e){U.emit(Kh.ERROR,e)})),Ft(dt(U),"encryptHandle",(function(){var e;null===(e=U.eme)||void 0===e||e.emit(Kh.ENCRYPTED)})),U.config=n.defaultConfig,U.updateConfig(e),U.config.isEncrypt=!!(U.config.kid||U.config.drm||U.config.secretKey||U.config.drmKeyToken||U.config.keyValue||U.config.drm),U.on(Kh.ENCRYPTED,U.encryptHandle),U}return nt(n,[{key:"updateConfig",value:function(e){var U=this;Object.keys(e).map((function(t){void 0!==e[t]&&null!==e[t]&&void 0!==U.config[t]&&(U.config[t]=e[t])})),this.log("set config",JSON.stringify(this.config))}},{key:"setupEME",value:function(e){this.eme&&this.eme.setupEME(e)}},{key:"setOptions",value:function(e){this.eme&&this.eme.setOptions(e)}},{key:"getSecretKeyByToken",value:function(e,U,t){var n=this,F=this.config,Q=e||F.kid,l=U||F.playDomain;l.indexOf("//")<0&&(l="//".concat(l));var i=t||F.drmKeyToken,d=Sh.isBase64(i)?window.atob(i):i,r="".concat(l,"?").concat(d,"&PlayAuthIds=").concat(Q,"&ssl=true");d.indexOf("DrmType=")<0&&(r+="&DrmType=".concat(F.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",F.vid,r);var a=new AR;return new Qc({type:"json",method:"GET",url:r}).then((function(e){var U,t,Q=e.response;if("string"==typeof Q&&(Q=JSON.parse(Q)),Q&&null!==(U=Q)&&void 0!==U&&U.Result&&(null===(t=Q.Result.PlayAuthInfoList)||void 0===t?void 0:t.length)>0){var l=Q.Result.PlayAuthInfoList[0].PlayAuthContent;n.log("getSecretKeyByToken end, vid,",F.vid,",res,",JSON.stringify(Q)),a.resolve(l)}})).catch((function(e){a.reject(e)})),a}},{key:"getLicense",value:function(){var e=this,U=this.config,t=U.vid,n=U.kid,F=U.getLicenseUrl,Q=new AR;return Promise.resolve().then(et(AU().mark((function U(){var l,i,d,r,a,o,B,s,R,c,V,h;return AU().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return l={method:"getLicense",success:!1},U.next=3,e._tryGetSecretKeyByToken(l,Q);case 3:if(i=e.config,d=i.secretKey,r=i.keyValue,!(n||d||r||e.config.drm)){U.next=39;break}if(U.prev=5,a=e.config.drm||r,!(d||n&&F)){U.next=11;break}return U.next=10,dc(t,d,n,F);case 10:a=U.sent;case 11:if(o=a&&a.clearKeys?a.clearKeys[n]:a,s=e.config,R=s.sessionId,c=s.useUnionInfoDRM,V=s.keyTokenExpiredDuration,h=Hh.get(R),!o&&(o=e.config.keyValue),!c||!Sh.checkUnionInfoExpired(h.unionID,h.unionInfo,V)){U.next=25;break}return U.next=19,fh(o,h.unionInfo);case 19:B=U.sent,U.next=23;break;case 22:throw new Error('The "transformUnionKey" should be provided in configuration as a function');case 23:U.next=26;break;case 25:B=o;case 26:a&&a.clearKeys&&(a.clearKeys[n]=B,l.drm=a),l.keyValue=B,l.success=!0,Q.resolve(l),U.next=37;break;case 32:U.prev=32,U.t0=U.catch(5),l.success=!1,l.error=U.t0,Q.reject(l);case 37:U.next=41;break;case 39:l.success=!0,Q.resolve(l);case 41:case"end":return U.stop()}}),U,null,[[5,32]])})))),Q}},{key:"_tryGetSecretKeyByToken",value:(U=et(AU().mark((function e(U,t){var n,F,Q,l;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.config,F=n.kid,Q=n.drmKeyToken,l=n.playDomain,!(F&&Q&&l)){e.next=13;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(F,l,Q);case 5:this.config.secretKey=e.sent,e.next=13;break;case 8:e.prev=8,e.t0=e.catch(2),U.success=!1,U.error=e.t0,t.reject(U);case 13:case"end":return e.stop()}}),e,this,[[2,8]])}))),function(e,t){return U.apply(this,arguments)})},{key:"updateKid",value:function(e){this.eme&&this.eme.updateKid(e)}},{key:"getLicenseSecret",value:function(){var e=this,U=this.config,t=U.vid,n=U.kid,F=U.getLicenseUrl,Q=U.useEME,l=U.keyValue;if(this.config.useEME&&!this.eme){this.eme=new jh,this.eme.on(Kh.ERROR,this.EMEError),this.eme.on(Kh.CDM_LICENSE_SUCCESS,(function(U){e.emit(Kh.CDM_LICENSE_SUCCESS,U)})),this.eme.on(Kh.CDM_LICENSE_ERROR,(function(U){e.emit(Kh.CDM_LICENSE_ERROR,U)}));var i=this.config.intertrustServerURL;if(n&&i){var d=Ft({},window.navigator.userAgent.toLocaleLowerCase().indexOf("chrome")>-1?"widevine":"playready",{serverURL:i+n});return this.eme.updateDrm(d),Promise.resolve()}}var r=new AR;return Promise.resolve().then(et(AU().mark((function U(){var i,d,a,o,B,s,R,c,V;return AU().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return i={method:"getLicense",success:!1},U.next=3,e._tryGetSecretKeyByToken(i,r);case 3:if((d=e.config.secretKey)||l){U.next=8;break}return U.next=7,ic(t,n,F);case 7:d=U.sent;case 8:if(Q&&(d&&(d=nc(d)),l&&(d=l)),U.prev=9,a=e.config,o=a.sessionId,B=a.useUnionInfoDRM,s=a.keyTokenExpiredDuration,R=Hh.get(o),!B||!Sh.checkUnionInfoExpired(R.unionID,R.unionInfo,s)){U.next=18;break}if(!Q){U.next=17;break}return U.next=16,fh(d,R.unionInfo);case 16:d=U.sent;case 17:i.decryptKey=Sh.StringToArrayBuffer(Nh.hash(R.unionInfo));case 18:Q?((c={clearKeys:{}}).clearKeys[V=n||wh]=d,e.eme.updateDrm(c,V),i.secretKey=null):i.secretKey=d,i.success=!0,r.resolve(i),U.next=28;break;case 23:U.prev=23,U.t0=U.catch(9),i.success=!1,i.error=U.t0,r.reject(i);case 28:case"end":return U.stop()}}),U,null,[[9,23]])})))),r}},{key:"destroy",value:function(){this.removeAllListeners(),this.eme&&(this.eme.destroy(),this.eme=null)}},{key:"log",value:function(e){for(var U=arguments.length,t=new Array(U>1?U-1:0),n=1;n<U;n++)t[n-1]=arguments[n];rc.apply(void 0,[e].concat(t))}},{key:"getSecretKey",value:function(){var e=this.config,U=e.vid,t=e.kid,n=e.getLicenseUrl,F=e.drmKeyToken,Q=e.playDomain,l=e.secretKey;return n&&t?ic(U,t,n):F&&t&&Q?this.getSecretKeyByToken(t,Q,F):l||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function(){var e=this.config,U=e.vid,t=e.kid,n=e.getLicenseUrl;return dc(U,e.secretKey,t,n)}}],[{key:"pluginName",get:function(){return"XGSecretKey"}},{key:"defaultConfig",get:function(){return{keyValue:null,kid:null,getLicenseUrl:"",secretKey:null,drm:null,vid:"",useUnionInfoDRM:!1,transformUnionKey:null,drmKeyToken:null,keyTokenExpiredDuration:null,playDomain:null,sessionId:_h,useEME:!0,intertrustServerURL:null}}},{key:"updateUnionInfo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_h,t=Sh.getUnionInfo(e);return Hh.set(U,{unionID:e,unionInfo:t}),t}}]),n}(Yh);zh.isWebAssemblySupported=function(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":qU(WebAssembly))&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(Vh){}return!1};var Oh,Ph,Ah=p,qh=R,$h=Tt("match"),eu=i,Uu=F,tu=YU,nu=tQ,Fu=K.f,Qu=tU.f,lu=function(e){var U;return Ah(e)&&(void 0!==(U=e[$h])?!!U:"RegExp"==qh(e))},iu=Bc,du=sc,ru=Pe,au=l,ou=Me.enforce,Bu=JQ,su=Tt("match"),Ru=Uu.RegExp,cu=Ru.prototype,Vu=/a/g,hu=/a/g,uu=new Ru(Vu)!==Vu,Zu=du.UNSUPPORTED_Y;if(eu&&tu("RegExp",!uu||Zu||au((function(){return hu[su]=!1,Ru(Vu)!=Vu||Ru(hu)==hu||"/a/i"!=Ru(Vu,"i")})))){for(var Su=function(e,U){var t,n=this instanceof Su,F=lu(e),Q=void 0===U;if(!n&&F&&e.constructor===Su&&Q)return e;uu?F&&!Q&&(e=e.source):e instanceof Su&&(Q&&(U=iu.call(e)),e=e.source),Zu&&(t=!!U&&U.indexOf("y")>-1)&&(U=U.replace(/y/g,""));var l=nu(uu?new Ru(e,U):Ru(e,U),n?this:cu,Su);return Zu&&t&&(ou(l).sticky=!0),l},Ju=function(e){e in Su||Fu(Su,e,{configurable:!0,get:function(){return Ru[e]},set:function(U){Ru[e]=U}})},pu=Qu(Ru),Wu=0;pu.length>Wu;)Ju(pu[Wu++]);cu.constructor=Su,Su.prototype=cu,ru(Uu,"RegExp",Su)}Bu("RegExp"),e.isNativeFunction=void 0,e.checkMSEValid=void 0,e.checkEMEValid=void 0,function(e,U,t){function n(e,U){var t=parseInt(e.slice(U,U+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(U+2,U+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(U+2,U+6),16)])}var F,Q=0,l=[],i=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var d=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)l.push(parseInt(e.slice(F,F+2),16));var a=r+40,o=parseInt(e.slice(a,a+4),16);for(a+=4,F=0;F<o;++F){var B=n(e,a);a+=2*B[0];for(var s="",R=0;R<B[1];++R){var c=n(e,a);s+=String.fromCharCode(Q^c[1]),a+=2*c[0]}i.push(s)}U.p=null,function e(U,t,n,F,Q){var d,r,a,o,B,s=-1,R=[],c=null,V=[t];for(r=Math.min(t.length,n),a=0;a<r;++a)V.push(t[a]);V.p=F;for(var h=[];;)try{switch(l[U++]){case 69:R[++s]=!0;break;case 71:R[++s]=!1;break;case 33:R[++s]=null;break;case 34:d=l[U++],R[++s]=d<<24>>24;break;case 29:d=((d=((d=l[U++])<<8)+l[U++])<<8)+l[U++],R[++s]=(d<<8)+l[U++];break;case 62:d=(l[U]<<8)+l[U+1],U+=2,R[++s]=i[d];break;case 76:R[++s]=void 0;break;case 61:d=(l[U]<<8)+l[U+1],U+=2,s=s-d+1,r=R.slice(s,s+d),R[s]=r;break;case 60:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;R[++s]=o[a];break;case 31:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],R[s]=R[s][r];break;case 63:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;o[a]=R[s--];break;case 1:r=R[s--],R[s]=R[s]===r;break;case 68:r=R[s--],R[s]=R[s]!==r;break;case 52:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,R[s]?--s:U+=d;break;case 72:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,R[s]?U+=d:--s;break;case 43:R[s]=typeof R[s];break;case 3:d=l[U++],r=R[s--],(a=function e(){var U=e._v;return(0,e._u)(U[0],arguments,U[1],U[2],this)})._v=[r,d,V],a._u=e,R[++s]=a;break;case 56:for(r=R[s--],a=null;o=h.pop();)if(2===o[0]||3===o[0]){a=o;break}if(a)U=a[2],a[0]=0,h.push(a);else{if(!c)return r;U=c[1],Q=c[2],V=c[3],h=c[4],R[++s]=r,c=c[0]}break;case 44:s-=d=l[U++],a=R.slice(s+1,s+d+1),r=R[s--],o=R[s--],r._u===e?(r=r._v,c=[c,U,Q,V,h],U=r[0],null==o&&(o=function(){return this}()),Q=o,(V=[a].concat(a)).length=Math.min(r[1],d)+1,V.p=r[2],h=[]):(B=r.apply(o,a),R[++s]=B);break;case 55:for(d=l[U++],o=[void 0],B=d;B>0;--B)o[B]=R[s--];a=R[s--],B=new(r=Function.bind.apply(a,o)),R[++s]=B;break;case 46:U+=2+(d=(d=(l[U]<<8)+l[U+1])<<16>>16);break;case 42:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,(r=R[s--])||(U+=d);break;case 39:--s;break;case 18:r=R[s],R[++s]=r;break;default:throw new Error("ioe")}}catch(u){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;c;){for(r=c[4];d=r.pop();)if(d[0])break e;c=c[0]}if(!c)throw u;U=c[1],Q=c[2],V=c[3],h=c[4],c=c[0]}1===(r=d[0])?(U=d[2],d[0]=0,h.push(d),R[++s]=u):2===r?(U=d[2],d[0]=0,h.push(d)):(U=d[3],d[0]=2,h.push(d),R[++s]=u)}}(d,[],0,U,t)}("504B010177739c88000001908b9f7075000001dc453f00023c0202121f00023c00012c012a00193c0001121f00031d0000009d03023c00022c023f00022e006d213c02033e0004121f0005213c02043c01012c01121f00063c02033e00073e000837023e00092c02121f00063c02033e000a3e000837023e000b2c023e000c2c022c013f00033c00012b3e000d012a00183c0003121f000e3c0102121f000f3c00012c012c012e0001473f00023c0002383c0001340009213c03073c00022c01383c02051f00104800063c02051f0011383c02051f001238213c02082c003f0001213c02092c003f0002473f00033c00013400033c00022a00623d00003f00043c00022a00203c0004121f00133c00022c01273c0004121f00133c00021f00001f00142c01273c00012a00203c0004121f00133c00012c01273c0004121f00133c00011f00001f00152c0127213c02073c00042c012a0004453f00033c0003383d00003f00013c02062b3e0016443400033c02062a00133c0001121f00133c02061f00001f00172c01273c00011f00182200012a0004452e0009213c02073c00012c01381d0000000003013f01071d000000ad03003f01081d000000bd03003f01091d000000c403003f010a1d0000014c03003f010b3c01001f00001f00013f00013c01011f00001f00013f00024c380019097f7d607b607b767f6a087b605c7b7d66616807667c4e7d7d6e76067d6a6b7a6c6a0151066c60616c6e7b077d6a7f636e6c6a145421252430512b74722726735453525320535352016803532b292f7b605c7b7d6661687327697a616c7b666061262125302730325353532726732f69607d2f2124302730325353535226052b3e212530012b08697a616c7b666061047b6a7c7b046c6e63630b426a6b666e5c607a7d6c6a11586a6d44667b426a6b666e5c607a7d6c6a0c5c607a7d6c6a4d7a69696a7d047f7a7c670c6e7f7f6a616b4d7a69696a7d0f6e6b6b5c607a7d6c6a4d7a69696a7d097a616b6a6966616a6b067a7f6b6e7b6a06636a61687b67",{0:Object,1:Function,2:Array,3:RegExp,4:String,get 5(){return self},get 6(){return"undefined"!=typeof MediaKeySession?MediaKeySession:void 0},get 7(){return e.isNativeFunction},set 7(U){e.isNativeFunction=U},get 8(){return Oh},set 8(e){Oh=e},get 9(){return Ph},set 9(e){Ph=e},get 10(){return e.checkMSEValid},set 10(U){e.checkMSEValid=U},get 11(){return e.checkEMEValid},set 11(U){e.checkEMEValid=U}},void 0),e.EVENT_EME=Kh,e.TRANSFORM_IV=bh,e.XGSecretKey=zh,e.aes4js=kh,e.transformUnionKey=fh,e.util=Sh}(U)}(0,dQ.exports);var rQ=dQ.exports,aQ=function(){function e(U,t,n,F){var Q=this;c(this,e),this.config=e.getDefaultConfig(),Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=n,this.player=U,this.updateBitrate(t)}return h(e,[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getAdaptLoadDuration",value:function(){var e=this.player,U=this.config;if(!U.rangeControl)return-1;var t=(null==e?void 0:e.bufferedPoint)||null,n=t&&t.end?t.end-e.currentTime:0;return Math.max(U.rangeMaxDuration-n,U.rangeMinDuration)}},{key:"getAdaptCacheBuffer",value:function(){var e=this.player,U=this.config,t=this.bitrate;if(!U.targetCacheControl)return-1;var n=U.estPlayTime,F=n;U.estPTcontrol&&(F=Math.min(n,this.duration-((null==e?void 0:e.currentTime)||0)));var Q=1024*(null==e?void 0:e.avgSpeed)||0,l=Math.max(U.safeFactor*Q,U.minBandwidth);e&&e.avgSpeed&&(l=U.safeFactor*Q);var i=t>0?Math.floor((1-l/t)*F):0;return i=U.minDangerThreshold+Math.max(i,0),Math.min(Math.max(U.cacheSafeFactor*i,U.minTargetCacheDur),U.maxTargetCacheDur)}}],[{key:"getDefaultConfig",value:function(){return{rangeMaxDuration:15,rangeMinDuration:5,rangeMinSize:409600,safeFactor:.1,cacheSafeFactor:3,minDangerThreshold:5,estPlayTime:12,minBandwidth:1e6,estPTcontrol:!1,minTargetCacheDur:30,maxTargetCacheDur:60,targetCacheControl:!1,rangeControl:!1}}}]),e}();function oQ(e,U){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);U&&(n=n.filter((function(U){return Object.getOwnPropertyDescriptor(e,U).enumerable}))),t.push.apply(t,n)}return t}function BQ(e){for(var U=1;U<arguments.length;U++){var t=null!=arguments[U]?arguments[U]:{};U%2?oQ(Object(t),!0).forEach((function(U){SQ(e,U,t[U])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):oQ(Object(t)).forEach((function(U){Object.defineProperty(e,U,Object.getOwnPropertyDescriptor(t,U))}))}return e}function sQ(){sQ=function(){return e};var e={},U=Object.prototype,t=U.hasOwnProperty,n=Object.defineProperty||function(e,U,t){e[U]=t.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",l=F.asyncIterator||"@@asyncIterator",i=F.toStringTag||"@@toStringTag";function d(e,U,t){return Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[U]}try{d({},"")}catch(N){d=function(e,U,t){return e[U]=t}}function r(e,U,t,F){var Q=U&&U.prototype instanceof B?U:B,l=Object.create(Q.prototype),i=new E(F||[]);return n(l,"_invoke",{value:J(e,t,i)}),l}function a(e,U,t){try{return{type:"normal",arg:e.call(U,t)}}catch(N){return{type:"throw",arg:N}}}e.wrap=r;var o={};function B(){}function s(){}function R(){}var c={};d(c,Q,(function(){return this}));var V=Object.getPrototypeOf,h=V&&V(V(k([])));h&&h!==U&&t.call(h,Q)&&(c=h);var u=R.prototype=B.prototype=Object.create(c);function Z(e){["next","throw","return"].forEach((function(U){d(e,U,(function(e){return this._invoke(U,e)}))}))}function S(e,U){function F(n,Q,l,i){var d=a(e[n],e,Q);if("throw"!==d.type){var r=d.arg,o=r.value;return o&&"object"==typeof o&&t.call(o,"__await")?U.resolve(o.__await).then((function(e){F("next",e,l,i)}),(function(e){F("throw",e,l,i)})):U.resolve(o).then((function(e){r.value=e,l(r)}),(function(e){return F("throw",e,l,i)}))}i(d.arg)}var Q;n(this,"_invoke",{value:function(e,t){function n(){return new U((function(U,n){F(e,t,U,n)}))}return Q=Q?Q.then(n,n):n()}})}function J(e,U,t){var n="suspendedStart";return function(F,Q){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(t.method=F,t.arg=Q;;){var l=t.delegate;if(l){var i=p(l,t);if(i){if(i===o)continue;return i}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var d=a(e,U,t);if("normal"===d.type){if(n=t.done?"completed":"suspendedYield",d.arg===o)continue;return{value:d.arg,done:t.done}}"throw"===d.type&&(n="completed",t.method="throw",t.arg=d.arg)}}}function p(e,U){var t=U.method,n=e.iterator[t];if(void 0===n)return U.delegate=null,"throw"===t&&e.iterator.return&&(U.method="return",U.arg=void 0,p(e,U),"throw"===U.method)||"return"!==t&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+t+"' method")),o;var F=a(n,e.iterator,U.arg);if("throw"===F.type)return U.method="throw",U.arg=F.arg,U.delegate=null,o;var Q=F.arg;return Q?Q.done?(U[e.resultName]=Q.value,U.next=e.nextLoc,"return"!==U.method&&(U.method="next",U.arg=void 0),U.delegate=null,o):Q:(U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,o)}function W(e){var U={tryLoc:e[0]};1 in e&&(U.catchLoc=e[1]),2 in e&&(U.finallyLoc=e[2],U.afterLoc=e[3]),this.tryEntries.push(U)}function m(e){var U=e.completion||{};U.type="normal",delete U.arg,e.completion=U}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function k(e){if(e){var U=e[Q];if(U)return U.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,F=function U(){for(;++n<e.length;)if(t.call(e,n))return U.value=e[n],U.done=!1,U;return U.value=void 0,U.done=!0,U};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return s.prototype=R,n(u,"constructor",{value:R,configurable:!0}),n(R,"constructor",{value:s,configurable:!0}),s.displayName=d(R,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var U="function"==typeof e&&e.constructor;return!!U&&(U===s||"GeneratorFunction"===(U.displayName||U.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,d(e,i,"GeneratorFunction")),e.prototype=Object.create(u),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),d(S.prototype,l,(function(){return this})),e.AsyncIterator=S,e.async=function(U,t,n,F,Q){void 0===Q&&(Q=Promise);var l=new S(r(U,t,n,F),Q);return e.isGeneratorFunction(t)?l:l.next().then((function(e){return e.done?e.value:l.next()}))},Z(u),d(u,i,"Generator"),d(u,Q,(function(){return this})),d(u,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var U=Object(e),t=[];for(var n in U)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in U)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=k,E.prototype={constructor:E,reset:function(e){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(m),!e)for(var U in this)"t"===U.charAt(0)&&t.call(this,U)&&!isNaN(+U.slice(1))&&(this[U]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var U=this;function n(t,n){return l.type="throw",l.arg=e,U.next=t,n&&(U.method="next",U.arg=void 0),!!n}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],l=Q.completion;if("root"===Q.tryLoc)return n("end");if(Q.tryLoc<=this.prev){var i=t.call(Q,"catchLoc"),d=t.call(Q,"finallyLoc");if(i&&d){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}else if(i){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}}}},abrupt:function(e,U){for(var n=this.tryEntries.length-1;n>=0;--n){var F=this.tryEntries[n];if(F.tryLoc<=this.prev&&t.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=U&&U<=Q.finallyLoc&&(Q=null);var l=Q?Q.completion:{};return l.type=e,l.arg=U,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(l)},complete:function(e,U){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&U&&(this.next=U),o},finish:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),m(t),o}},catch:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var F=n.arg;m(t)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,U,t){return this.delegate={iterator:k(e),resultName:U,nextLoc:t},"next"===this.method&&(this.arg=void 0),o}},e}function RQ(e){return(RQ="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cQ(e,U,t,n,F,Q,l){try{var i=e[Q](l),d=i.value}catch(r){return void t(r)}i.done?U(d):Promise.resolve(d).then(n,F)}function VQ(e){return function(){var U=this,t=arguments;return new Promise((function(n,F){var Q=e.apply(U,t);function l(e){cQ(Q,n,F,l,i,"next",e)}function i(e){cQ(Q,n,F,l,i,"throw",e)}l(void 0)}))}}function hQ(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function uQ(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,CQ(n.key),n)}}function ZQ(e,U,t){return U&&uQ(e.prototype,U),t&&uQ(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function SQ(e,U,t){return(U=CQ(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function JQ(e,U){if("function"!=typeof U&&null!==U)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(U&&U.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),U&&WQ(e,U)}function pQ(e){return(pQ=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function WQ(e,U){return(WQ=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,U){return e.__proto__=U,e})(e,U)}function mQ(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function EQ(e,U,t){return(EQ=mQ()?Reflect.construct.bind():function(e,U,t){var n=[null];n.push.apply(n,U);var F=new(Function.bind.apply(e,n));return t&&WQ(F,t.prototype),F}).apply(null,arguments)}function kQ(e){var U="function"==typeof Map?new Map:void 0;return kQ=function(e){if(null===e||(t=e,-1===Function.toString.call(t).indexOf("[native code]")))return e;var t;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==U){if(U.has(e))return U.get(e);U.set(e,n)}function n(){return EQ(e,arguments,pQ(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),WQ(n,e)},kQ(e)}function yQ(e,U){if(null==e)return{};var t,n,F=function(e,U){if(null==e)return{};var t,n,F={},Q=Object.keys(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||(F[t]=e[t]);return F}(e,U);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(F[t]=e[t])}return F}function NQ(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function bQ(e){var U=mQ();return function(){var t,n=pQ(e);if(U){var F=pQ(this).constructor;t=Reflect.construct(n,arguments,F)}else t=n.apply(this,arguments);return function(e,U){if(U&&("object"==typeof U||"function"==typeof U))return U;if(void 0!==U)throw new TypeError("Derived constructors may only return object or undefined");return NQ(e)}(this,t)}}function fQ(){return fQ="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,U,t){var n=function(e,U){for(;!Object.prototype.hasOwnProperty.call(e,U)&&null!==(e=pQ(e)););return e}(e,U);if(n){var F=Object.getOwnPropertyDescriptor(n,U);return F.get?F.get.call(arguments.length<3?e:t):F.value}},fQ.apply(this,arguments)}function vQ(e,U){(null==U||U>e.length)&&(U=e.length);for(var t=0,n=new Array(U);t<U;t++)n[t]=e[t];return n}function TQ(e,U){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,U){if(e){if("string"==typeof e)return vQ(e,U);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?vQ(e,U):void 0}}(e))||U&&e&&"number"==typeof e.length){t&&(e=t);var n=0,F=function(){};return{s:F,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(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 Q,l=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return l=e.done,e},e:function(e){i=!0,Q=e},f:function(){try{l||null==t.return||t.return()}finally{if(i)throw Q}}}}function CQ(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}function DQ(){var e,U,t=new Promise((function(t,n){e=t,U=n}));return t.used=!1,t.resolve=function(){return t.used=!0,e.apply(void 0,arguments)},t.reject=function(){return t.used=!0,U.apply(void 0,arguments)},t}var gQ={DEBUG:1,LOG:2,WARN:3,ERROR:4},XQ=["Boolean","Number","String","Undefined","Null","Date","Object"],xQ=function(){function e(U,t){hQ(this,e),this.name=U||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==t?void 0:t.logCacheLevel)||3,this.logMaxSize=(null==t?void 0:t.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return ZQ(e,[{key:"debug",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[gQ.DEBUG].concat(n)),e.disabled||(U=console).debug.apply(U,[this._prefix,LQ()].concat(n))}},{key:"log",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[gQ.LOG].concat(n)),e.disabled||(U=console).log.apply(U,[this._prefix,LQ()].concat(n))}},{key:"warn",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[gQ.WARN].concat(n)),e.disabled||(U=console).warn.apply(U,[this._prefix,LQ()].concat(n))}},{key:"error",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[gQ.ERROR].concat(n)),e.disabled||(U=console).error.apply(U,[this._prefix,LQ()].concat(n))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var U="";try{for(var t=arguments.length,n=new Array(t>1?t-1:0),F=1;F<t;F++)n[F-1]=arguments[F];var Q=n.map((function(e){return IQ(e)}));U=this._prefix+LQ()+JSON.stringify(Q)}catch(i){return}if(e>=this.logCacheLevel&&(this.logSize+=U.length,this.logTextArray.push(U)),this.logSize>this.logMaxSize){var l=this.logTextArray.shift();this.logSize-=l.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var U;e.disabled||(console.group(this._prefix),(U=console).table.apply(U,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function LQ(){return(new Date).toLocaleString()}function GQ(e){if("object"!==RQ(e))return e;var U=Object.prototype.toString.call(e).slice(8,-1);switch(U){case"Array":case"Uint8Array":case"ArrayBuffer":return U+"["+e.length+"]";case"Object":return"{}";default:return U}}function IQ(e,U,t){t||(t=1),U||(U=2);var n={};if(!e||"object"!==RQ(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!XQ.includes(F))return F;if(!(t>U)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(t===U?n[Q]=GQ(e[Q]):"object"===RQ(e[Q])?n[Q]=IQ(e[Q],U,t+1):n[Q]=e[Q]);return n}}SQ(xQ,"disabled",!0);var MQ="fetch",YQ="xhr",wQ="arraybuffer",KQ="text",jQ="json",_Q=function(e){JQ(t,e);var U=bQ(t);function t(e,n,F,Q){var l;return hQ(this,t),SQ(NQ(l=U.call(this,Q)),"retryCount",0),SQ(NQ(l),"isTimeout",!1),SQ(NQ(l),"loaderType",MQ),SQ(NQ(l),"startTime",0),SQ(NQ(l),"endTime",0),SQ(NQ(l),"options",{}),l.url=e,l.request=n,l.response=F,l}return ZQ(t)}(kQ(Error)),HQ=Object.prototype.toString;function zQ(e){if("[object Object]"!==HQ.call(e))return!1;var U=Object.getPrototypeOf(e);return null===U||U===Object.prototype}function OQ(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var U="bytes="+e[0]+"-";return e[1]&&(U+=e[1]),U}}function PQ(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function AQ(e,U){if(e){if(!U)return e;var t,n=Object.keys(U).map((function(e){if(null!=(t=U[e]))return Array.isArray(t)?e+="[]":t=[t],t.map((function(U){var t;return t=U,"[object Date]"===HQ.call(t)?U=U.toISOString():function(e){return null!==e&&"object"===RQ(e)}(U)&&(U=JSON.stringify(U)),"".concat(PQ(e),"=").concat(PQ(U))})).join("&")})).filter(Boolean).join("&");if(n){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}}function qQ(e,U,t,n,F,Q,l,i,d,r,a){return F=null!=F?parseFloat(F):null,n=parseInt(n||"0",10),Number.isNaN(n)&&(n=0),{data:e,done:U,options:{range:d,vid:r,index:i,contentLength:n,age:F,startTime:Q,firstByteTime:l,endTime:Date.now(),priOptions:a},response:t}}function $Q(e,U){return Math.round(8*e*1e3/U/1024)}var el="real_time_speed",Ul=2097152,tl=function(e){JQ(n,e);var U,t=bQ(n);function n(){var e;return hQ(this,n),SQ(NQ(e=t.call(this)),"_abortController",null),SQ(NQ(e),"_timeoutTimer",null),SQ(NQ(e),"_reader",null),SQ(NQ(e),"_response",null),SQ(NQ(e),"_aborted",!1),SQ(NQ(e),"_index",-1),SQ(NQ(e),"_range",null),SQ(NQ(e),"_receivedLength",0),SQ(NQ(e),"_running",!1),SQ(NQ(e),"_logger",null),SQ(NQ(e),"_vid",""),SQ(NQ(e),"_onProcessMinLen",0),SQ(NQ(e),"_onCancel",null),SQ(NQ(e),"_priOptions",null),e}return ZQ(n,[{key:"load",value:function(e){var U,t=this,n=e.url,F=e.vid,Q=e.timeout,l=e.responseType,i=e.onProgress,d=e.index,r=e.onTimeout,a=e.onCancel,o=e.range,B=e.transformResponse,s=e.request,R=e.params,c=e.logger,V=e.method,h=e.headers,u=e.body,Z=e.mode,S=e.credentials,J=e.cache,p=e.redirect,W=e.referrer,m=e.referrerPolicy,E=e.onProcessMinLen,k=e.priOptions;this._logger=c,this._aborted=!1,this._onProcessMinLen=E,this._onCancel=a,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=d,this._range=o||[0,0],this._vid=F||n,this._priOptions=k||{};var y={method:V,headers:h,body:u,mode:Z,credentials:S,cache:J,redirect:p,referrer:W,referrerPolicy:m,signal:null===(U=this._abortController)||void 0===U?void 0:U.signal},N=!1;clearTimeout(this._timeoutTimer),n=AQ(n,R);var b=OQ(o);b&&(h=s?s.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&h instanceof Headers?h.append("Range",b):h.Range=b),Q&&(this._timeoutTimer=setTimeout((function(){if(N=!0,t.cancel(),r){var e=new _Q(n,y,null,"timeout");e.isTimeout=!0,r(e,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})}}),Q));var f=Date.now();return this._logger.debug("[fetch load start], index,",d,",range,",o),new Promise((function(e,U){fetch(s||n,s?void 0:y).then(function(){var F=VQ(sQ().mark((function F(Q){var r,a,s,R;return sQ().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(t._timeoutTimer),t._response=Q,!t._aborted&&t._running){F.next=4;break}return F.abrupt("return");case 4:if(B&&(Q=B(Q,n)||Q),Q.ok){F.next=7;break}throw new _Q(n,y,Q,"bad network response");case 7:if(r=Date.now(),l!==KQ){F.next=15;break}return F.next=11,Q.text();case 11:a=F.sent,t._running=!1,F.next=37;break;case 15:if(l!==jQ){F.next=22;break}return F.next=18,Q.json();case 18:a=F.sent,t._running=!1,F.next=37;break;case 22:if(!i){F.next=29;break}return t.resolve=e,t.reject=U,t._loadChunk(Q,i,f,r),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:a=F.sent,a=new Uint8Array(a),t._running=!1,s=Date.now()-f,R=$Q(a.byteLength,s),t.emit(el,{speed:R,len:a.byteLength,time:s,vid:t._vid,index:t._index,range:t._range,priOptions:t._priOptions});case 37:t._logger.debug("[fetch load end], index,",d,",range,",o),e(qQ(a,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),f,r,d,o,t._vid,t._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(t._timeoutTimer),t._running=!1,t._aborted&&!N||((e=e instanceof _Q?e:new _Q(n,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=f,e.endTime=Date.now(),e.isTimeout=N,e.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},U(e))}))}))}},{key:"cancel",value:(U=VQ(sQ().mark((function e(){return sQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(U){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return U.apply(this,arguments)})},{key:"_loadChunk",value:function(e,U,t,n){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new _Q(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(Ul),this._writeIdx=0);var l,i,d,r=this._reader=e.body.getReader(),a=function(){var Q=VQ(sQ().mark((function Q(){var o,B,s,R,c,V,h,u;return sQ().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return i=Date.now(),Q.prev=1,Q.next=4,r.read();case 4:l=Q.sent,d=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),d=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(B=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,s=B+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,U(void 0,!1,{range:[s,s],vid:F._vid,index:F._index,startTime:i,endTime:d,st:t,firstByteTime:n,priOptions:F._priOptions},e),Q.abrupt("return");case 19:R=l.value?l.value.byteLength:0,F._receivedLength+=R,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",s,", end,",B+F._receivedLength,", done,",l.done),F._onProcessMinLen>0?F._writeIdx+R>=F._onProcessMinLen||l.done?((c=new Uint8Array(F._writeIdx+R)).set(F._cache.slice(0,F._writeIdx),0),R>0&&c.set(l.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",l.done,",len,",c.byteLength,", writeIdx,",F._writeIdx)):R>0&&F._writeIdx+R<Ul?(F._cache.set(l.value,F._writeIdx),F._writeIdx+=R,F._logger.debug("【fetchLoader,onProgress cache】,len,",R,", writeIdx,",F._writeIdx)):R>0&&(V=new Uint8Array(F._writeIdx+R+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+R+2048,", datalen,",R,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),R>0&&V.set(l.value,F._writeIdx),F._writeIdx+=R,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",R,", writeIdx,",F._writeIdx)):c=l.value,(c&&c.byteLength>0||l.done)&&U(c,l.done,{range:[F._range[0]+F._receivedLength-(c?c.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:i,endTime:d,st:t,firstByteTime:n,priOptions:F._priOptions},e),l.done?(h=Date.now()-t,u=$Q(F._receivedLength,h),F.emit(el,{speed:u,len:F._receivedLength,time:h,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",l.done),F.resolve(qQ(l,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),t,n,F._index,F._range,F._vid,F._priOptions))):a();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();a()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),n}(tU);var nl=function(e){JQ(t,e);var U=bQ(t);function t(){var e;return hQ(this,t),SQ(NQ(e=U.call(this)),"_xhr",null),SQ(NQ(e),"_aborted",!1),SQ(NQ(e),"_timeoutTimer",null),SQ(NQ(e),"_range",null),SQ(NQ(e),"_receivedLength",0),SQ(NQ(e),"_url",null),SQ(NQ(e),"_onProgress",null),SQ(NQ(e),"_index",-1),SQ(NQ(e),"_headers",null),SQ(NQ(e),"_currentChunkSizeKB",384),SQ(NQ(e),"_timeout",null),SQ(NQ(e),"_xhr",null),SQ(NQ(e),"_withCredentials",null),SQ(NQ(e),"_startTime",-1),SQ(NQ(e),"_loadCompleteResolve",null),SQ(NQ(e),"_loadCompleteReject",null),SQ(NQ(e),"_runing",!1),SQ(NQ(e),"_logger",!1),SQ(NQ(e),"_vid",""),SQ(NQ(e),"_responseType",void 0),SQ(NQ(e),"_credentials",void 0),SQ(NQ(e),"_method",void 0),SQ(NQ(e),"_transformResponse",void 0),SQ(NQ(e),"_firstRtt",void 0),SQ(NQ(e),"_onCancel",null),SQ(NQ(e),"_priOptions",null),e}return ZQ(t,[{key:"load",value:function(e){var U=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=AQ(e.url,e.params);var t=Date.now();return new Promise((function(e,t){U._loadCompleteResolve=e,U._loadCompleteReject=t,U._startLoad()})).catch((function(e){if(clearTimeout(U._timeoutTimer),U._runing=!1,!U._aborted)throw(e=e instanceof _Q?e:new _Q(U._url,U._request)).startTime=t,e.endTime=Date.now(),e.options={index:U._index,vid:U._vid,priOptions:U._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===wQ&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var U=1024*this._currentChunkSizeKB,t=this._range[0]+this._receivedLength,n=this._range[1];U<this._range[1]-t&&(n=t+U),e=[t,n],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var U=this;try{this._startTime=Date.now();var t=this._xhr=new XMLHttpRequest;t.open(this._method||"GET",this._url,!0),t.responseType=this._responseType,this._timeout&&(t.timeout=this._timeout),t.withCredentials=this._withCredentials,t.onload=this._onLoad.bind(this),t.onreadystatechange=this._onReadyStatechange.bind(this),t.onerror=function(e){var t,n,F;U._running=!1;var Q=new _Q(U._url,U._request,null==e||null===(t=e.currentTarget)||void 0===t?void 0:t.response,"xhr.onerror.status:"+(null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions},U._loadCompleteReject(Q)},t.ontimeout=function(e){U.cancel();var t=new _Q(U._url,U._request,{status:408},"timeout");U._onTimeout&&(t.isTimeout=!0,U._onTimeout(t,{index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions})),t.options={index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions},U._loadCompleteReject(t)};var n=this._headers||{},F=OQ(e);F&&(n.Range=F),n&&Object.keys(n).forEach((function(e){t.setRequestHeader(e,n[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),t.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var U,t=e.target.status;if(t<200||t>299){var n=new _Q(this._url,null,BQ(BQ({},e.target.response),{},{status:t}),"bad response,status:"+t);return n.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(n)}var F,Q=null,l=!1,i=(null===(U=this._range)||void 0===U?void 0:U.length)>0?this._range[0]:0;if(this._responseType===wQ){var d,r=new Uint8Array(e.target.response);if(F=i+this._receivedLength,r&&r.byteLength>0){this._receivedLength+=r.byteLength;var a=Date.now()-this._startTime,o=$Q(this._receivedLength,a);this.emit(el,{speed:o,len:this._receivedLength,time:a,vid:this._vid,index:this._index,range:[F,i+this._receivedLength],priOptions:this._priOptions})}Q=r,l=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",i+this._receivedLength,",dataLen,",r?r.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",l)}else l=!0,Q=e.target.response;var B={ok:t>=200&&t<300,status:t,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(B=this._transformResponse(B,this._url)||B),this._onProgress&&this._onProgress(Q,l,{index:this._index,vid:this._vid,range:[F,i+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},B),l?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(qQ(this._onProgress?null:Q,l,B,B.headers["content-length"],B.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,fQ(pQ(t.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var U,t={},n=TQ(e.getAllResponseHeaders().trim().split("\r\n"));try{for(n.s();!(U=n.n()).done;){var F=U.value.split(": ");t[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){n.e(Q)}finally{n.f()}return t}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),t}(tU),Fl=["retry","retryDelay","onRetryError","transformError"],Ql=function(){function e(U,t){hQ(this,e),this.promise=DQ(),this.alive=!!t.onProgress,!t.logger&&(t.logger=new xQ("Loader")),this._loaderType=U,this._loader=U===MQ&&window.fetch?new tl:new nl,this._config=t,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=t.retryCheckFunc,this._logger=t.logger}var U;return ZQ(e,[{key:"exec",value:function(){var e=this,U=this._config,t=U.retry,n=U.retryDelay,F=U.onRetryError,Q=U.transformError,l=yQ(U,Fl),i=function(){var U=VQ(sQ().mark((function U(){var d,r,a;return sQ().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return U.prev=0,U.next=3,e._loader.load(l);case 3:d=U.sent,e.promise.resolve(d),U.next=27;break;case 7:if(U.prev=7,U.t0=U.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",U.t0),!e._canceled){U.next=13;break}return U.abrupt("return");case 13:if(U.t0.loaderType=e._loaderType,U.t0.retryCount=e._retryCount,r=U.t0,Q&&(r=Q(r)||r),F&&e._retryCount>0&&F(r,e._retryCount,{index:l.index,vid:l.vid,range:l.range,priOptions:l.priOptions}),e._retryCount++,a=!0,e._retryCheckFunc&&(a=e._retryCheckFunc(U.t0)),!(a&&e._retryCount<=t)){U.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",l.range),e._retryTimer=setTimeout(i,n),U.abrupt("return");case 26:e.promise.reject(r);case 27:case"end":return U.stop()}}),U,null,[[0,7]])})));return function(){return U.apply(this,arguments)}}();return i(),this.promise}},{key:"cancel",value:(U=VQ(sQ().mark((function e(){return sQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function ll(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(U){return setTimeout(U,e)}))}var il=function(e){JQ(n,e);var U,t=bQ(n);function n(e){var U;return hQ(this,n),SQ(NQ(U=t.call(this,e)),"type",MQ),SQ(NQ(U),"_queue",[]),SQ(NQ(U),"_alive",[]),SQ(NQ(U),"_currentTask",null),SQ(NQ(U),"_config",void 0),U._config=function(e){return BQ({loaderType:MQ,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:KQ,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}(e),U._config.loaderType!==YQ&&tl.isSupported()||(U.type=YQ),U.log=e.logger,U}return ZQ(n,[{key:"isFetch",value:function(){return this.type===MQ}},{key:"load",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?t=e:t.url=e||t.url||this._config.url,(t=Object.assign({},this._config,t)).params&&(t.params=Object.assign({},t.params)),t.headers&&zQ(t.headers)&&(t.headers=Object.assign({},t.headers)),t.body&&zQ(t.body)&&(t.body=Object.assign({},t.body)),t.transformRequest&&(t=t.transformRequest(t)||t),t.logger=this.log;var n=new Ql(this.type,t);return n.loader.on(el,(function(e){U.emit(el,e)})),this._queue.push(n),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),n.promise}},{key:"cancel",value:(U=VQ(sQ().mark((function e(){var U;return sQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&U.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(U);case 6:return e.next=8,ll();case 8:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var U=this._currentTask.exec().catch((function(e){}));U&&"function"==typeof U.finally&&U.finally((function(){var U,t;null!==(U=e._currentTask)&&void 0!==U&&U.alive&&(null===(t=e._alive)||void 0===t?void 0:t.length)>0&&(e._alive=e._alive.filter((function(U){return U&&U!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return tl.isSupported()}}]),n}(tU),dl=function(){function e(U,t,n,F){var Q=this;c(this,e),this.config=e.getDefaultConfig(),Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=n,this.player=U,this.updateBitrate(t),this.curPCDNInBuffer=this.config.maxPCDNInBuffer,this.curPCDNOutBuffer=this.config.maxPCDNOutBuffer,this.PCDNChangeCnt=0}return h(e,[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getPCDNInBuffer",value:function(){var e=this.config,U=this.player,t=this.bitrate;if(!e.PCDNBufferControl)return null;var n=e.estPlayTime,F=n;e.estPTcontrol&&(F=Math.min(n,Math.max(0,this.duration-((null==U?void 0:U.currentTime)||0))));var Q=e.safePCDNInFactor,l=e.minBandwidth,i=e.maxPCDNInBuffer,d=e.minPCDNInBuffer,r=Q*Math.max(1024*(null==U?void 0:U.avgSpeedPCDN)||0,l),a=t>0?(1-r/t)*F:0;return this.curPCDNInBuffer=Math.min(i,Math.max(d,a)),this.curPCDNInBuffer}},{key:"getPCDNOutBuffer",value:function(){var e=this.config,U=this.player,t=this.bitrate;if(!e.PCDNBufferControl)return null;var n=e.estPlayTime,F=n;e.estPTcontrol&&(F=Math.min(n,Math.max(0,this.duration-((null==U?void 0:U.currentTime)||0))));var Q=e.safePCDNOutFactor,l=e.minBandwidth,i=e.maxPCDNOutBuffer,d=e.minPCDNOutBuffer,r=Q*Math.max(1024*(null==U?void 0:U.avgSpeedPCDN)||0,l),a=t>0?(1-r/t)*F:0;return this.curPCDNOutBuffer=Math.min(i,Math.max(d,a)),this.curPCDNOutBuffer}},{key:"getPCDNChangeCnt",value:function(){var e=this.config,U=e.PCDNCntControl,t=e.alpha,n=this.curPCDNInBuffer,F=this.player,Q=(null==F?void 0:F.bufferedPoint)||null,l=Q&&Q.end?Q.end-F.currentTime:0;U?l>n+(this.PCDNChangeCnt-1)*t&&this.PCDNChangeCnt++:l>=n&&this.PCDNChangeCnt<2&&this.PCDNChangeCnt++;return this.PCDNChangeCnt}}],[{key:"getDefaultConfig",value:function(){return{PCDNBufferControl:!1,PCDNCntControl:!1,estPTcontrol:!1,minPCDNInBuffer:8,maxPCDNInBuffer:12,minPCDNOutBuffer:3,maxPCDNOutBuffer:6,safePCDNInFactor:.1,safePCDNOutFactor:.4,alpha:.5,estPlayTime:12,minBandwidth:1e6}}}]),e}(),rl=new Map,al=function(){function e(U,t,n,F){var Q,l,i=this;c(this,e),this.options=e.getDefaultConfig(),Object.keys(U).map((function(e){void 0!==U[e]&&null!==U[e]&&(i.options[e]=U[e])})),this.options.productConfig&&this.options.productConfig.app_id||console.error("productConfig must has"),this.loader=new il(this.options),this.resetTrackeArgs(),this._lastFileInfo=null,this.lastfetchNodeTime=-1,this._lastRetFileKey=null,this._minUpdateNodeStep=this.options.ErrorTimeStep,null!==(Q=this.options)&&void 0!==Q&&null!==(l=Q.adaptPCDNConfig)&&void 0!==l&&l.PCDNBufferControl&&(this.pcdnAdapt=new dl(t,n,F,this.options.adaptPCDNConfig))}var U,t;return h(e,[{key:"isOpenAdaptPCDN",get:function(){return!!this.pcdnAdapt}},{key:"curPCDNInBuffer",get:function(){return this.pcdnAdapt.curPCDNInBuffer}},{key:"getPCDNInBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNInBuffer()}},{key:"curPCDNOutBuffer",get:function(){return this.pcdnAdapt.curPCDNOutBuffer}},{key:"getPCDNOutBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNOutBuffer()}},{key:"curPCDNChangeCnt",get:function(){return this.pcdnAdapt.PCDNChangeCnt}},{key:"getPCDNChangeCnt",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNChangeCnt()}},{key:"resetTrackeArgs",value:function(e){this.trackeArgs={fid:null,trace_id:null,req_times:(null==e?void 0:e.req_times)||0,resp_times:(null==e?void 0:e.resp_times)||0,token:null,node_num:this.options.node_num,client_info:this.options.client_info}}},{key:"getPCDNNode",value:function(e,U,t){var n,F=Bl(U),Q=rl.get(ol(e,F)),l=new DQ;return null==Q||!Q.nodes||(null==Q||null===(n=Q.nodes)||void 0===n?void 0:n.length)<1?this.fetchPCDNNode(null,null,t).then((function(e){l.resolve(e)})).catch((function(e){l.reject(e)})):(Q.fromCache=!0,l.resolve(Q)),l}},{key:"removePCDNNode",value:function(e,U,t){var n=Bl(U),F=rl.get(ol(e,n)),Q=null==F?void 0:F.nodes;Q&&(t?F.nodes=Q.filter((function(e){return e&&t.indexOf(e.url)<0})):Q.shift(),rl.set(ol(e,n),F)),Q&&Q.length||this.fetchPCDNNode().then().catch((function(){}))}},{key:"fetchPCDNNode",value:(t=R(o().mark((function U(t,n,F){var Q,l,i,d,r,a,B,s,R,c,V,h,u,Z,S,J,p;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:if(Q=new DQ,n){U.next=5;break}n=this._lastFileInfo,U.next=13;break;case 5:if(n.byterate=Bl(n.bitrate),!((null==(i=rl.get(ol(n.vid,n.byterate)))||null===(l=i.nodes)||void 0===l?void 0:l.length)>0)){U.next=11;break}return i.fromCache=!0,Q.resolve(i),U.abrupt("return",Q);case 11:delete n.bitrate,this._lastFileInfo=n;case 13:if(n){U.next=16;break}return Q.resolve(null),U.abrupt("return",Q);case 16:if(d=!1,r=ol(n.vid,n.byterate),this._lastRetFileKey!==r&&(this.resetTrackeArgs(),d=!0),!(Date.now()-this.lastfetchNodeTime<this._minUpdateNodeStep)||d){U.next=22;break}return Q.resolve(null),U.abrupt("return",Q);case 22:if(this.lastfetchNodeTime=Date.now(),this._lastRetFileKey=r,n.sfid?n.version=1:n.vid&&(n.version=2),this.options.withReferer&&(n.with_referer=this.options.withReferer),a=Object.assign(this.options.productConfig,{file_info:n},this.trackeArgs,{req_id:F}),B=JSON.stringify(a),!(this.trackeArgs.req_times>=this.options.maxCnt)){U.next=31;break}return Q.resolve(null),U.abrupt("return",Q);case 31:return this.loader||(this.loader=new il(this.options)),this.trackeArgs.req_times+=1,U.prev=33,e.pcdn_tracker_request_cnt++,U.next=37,this.loader.load(t||this.options.trackerUrl,{body:B});case 37:s=U.sent,R=null,s&&(this.trackeArgs.resp_times+=1,V=8*n.byterate,s.done&&null!==(c=s.data)&&void 0!==c&&c.Result?(h=s.data.Result,(R=h.nodes)&&R.length>0?e.pcdn_tracker_success_cnt++:this._minUpdateNodeStep=this.options.NULLNodeTimeStep,R.map((function(e){e.vid=n.vid,e.bitrate=V})),u=h.fid,Z=h.trace_id,S=h.req_id,J={nodes:R,fid:u,vid:n.vid,trace_id:Z,req_id:S,bitrate:V},p=ol(n.vid,n.byterate),rl.set(p,J),this.trackeArgs.fid=h.fid,this.trackeArgs.trace_id=h.trace_id,this.trackeArgs.token=h.token,Q.resolve(J)):(this._minUpdateNodeStep=this.options.ErrorTimeStep,Q.reject(s))),U.next=47;break;case 42:U.prev=42,U.t0=U.catch(33),this._minUpdateNodeStep=this.options.ErrorTimeStep,console.warn("tracker catch ERR,",U.t0),Q.reject(U.t0);case 47:return U.abrupt("return",Q);case 48:case"end":return U.stop()}}),U,this,[[33,42]])}))),function(e,U,n){return t.apply(this,arguments)})}],[{key:"pluginName",get:function(){return"PCDN"}},{key:"pcdnReqCnt",get:function(){var U=e.pcdn_tracker_request_cnt,t=e.pcdn_tracker_success_cnt;return e.pcdn_tracker_request_cnt=0,e.pcdn_tracker_success_cnt=0,{pcdn_tracker_request_cnt:U,pcdn_tracker_failed_cnt:U-t}}},{key:"getDefaultConfig",value:function(){return{trackerUrl:"",loaderType:MQ,responseType:jQ,mode:"cors",method:"POST",retry:0,retryDelay:3e3,timeout:5e3,node_num:5,client_info:null,maxCnt:30,withReferer:0,NULLNodeTimeStep:6e4,ErrorTimeStep:15e3}}},{key:"gainPCDNNode",value:(U=R(o().mark((function U(t,n,F,Q){var l,i,d,r,a,B,s,R,c;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return l=e.getDefaultConfig(),Object.keys(n).map((function(e){void 0!==n[e]&&null!==n[e]&&(l[e]=n[e])})),Q&&Q.app_id||console.error("productConfig must has"),i=new DQ,F?(F.byterate=Bl(F.bitrate),delete F.bitrate):i.reject("video fileInfo need set"),d=Object.assign(Q,{file_info:F},{node_num:(null==n?void 0:n.node_num)||3}),r=JSON.stringify(d),a=new il(l),U.prev=8,e.pcdn_tracker_request_cnt++,U.next=12,a.load(t,{body:r});case 12:(c=U.sent).done&&(null===(B=c.data)||void 0===B||null===(s=B.Result)||void 0===s||null===(R=s.nodes)||void 0===R?void 0:R.length)>0&&e.pcdn_tracker_success_cnt++,i.resolve(c),U.next=20;break;case 17:U.prev=17,U.t0=U.catch(8),i.reject((null===U.t0||void 0===U.t0?void 0:U.t0.message)||"get pcdnNode error");case 20:return U.abrupt("return",i);case 21:case"end":return U.stop()}}),U,null,[[8,17]])}))),function(e,t,n,F){return U.apply(this,arguments)})}]),e}();function ol(e,U){return"".concat(e,"-").concat(U)}function Bl(e){return Math.floor(e/8)}u(al,"pcdn_tracker_request_cnt",0),u(al,"pcdn_tracker_success_cnt",0);var sl=["app_id","trackerUrl","sid","task_type"],Rl="close",cl="open",Vl="forbidden",hl=1,ul=0,Zl=1;function Sl(e){return/^http(s)?:\/\/.+/.test(e)}var Jl=function(){function e(U,t,n,F){c(this,e),u(this,"_pcdn",null),u(this,"_pcdnConfig",null),u(this,"_pcdnTraceInfo",null),u(this,"_pcdnNodes",null),u(this,"_openPcdn",!1),u(this,"_cachedPcdn",{}),u(this,"_PCDNState",Rl),u(this,"_retryInfo",{}),u(this,"_bitrate2file",{}),u(this,"pcdn_download_request_cnt",0),u(this,"pcdn_download_failed_cnt",0),u(this,"_PCDNSwitchCnt",0),u(this,"pcdn_tracker_failed_cnt",0),u(this,"pcdn_tracker_request_cnt",0),u(this,"_pcdnVVStat",{try_req_node:0,req_node_succ:0,has_ret_node:0,conn_req_num:0,conn_fail_num:0,conn_jump_num:0,pSCCancelCnt:0}),this._pcdnConfig=U,this._isOpenPCDN=t,this._duration=n,this._vid=F}var U,t,n,F;return h(e,[{key:"getPCDNReqId",value:function(e){var U=e.uri||this._vid;return this._getPCDNReqIdBitrate(U,e.bitrate)}},{key:"_getPCDNReqIdBitrate",value:function(e,U){return e.slice(-20)+U}},{key:"checkPCND",value:(F=R(o().mark((function e(U){var t,n,F,Q,l,i,d,r,B,s,R,c,V,h,u,Z,S,J;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._vid){e.next=3;break}return console&&console.warn("PCDN service need vid, vid is undefiend, pass vid by dashplugin"),e.abrupt("return");case 3:if(!((null===(t=this._pcdnConfig)||void 0===t?void 0:t.openPCDN)&&this._isOpenPCDN&&this._duration>=this._pcdnConfig.minDuration&&U)){e.next=37;break}if(n=U.bitrate,!(F=this._cachedPcdn[n])){e.next=12;break}if(Q=F.pcdnNodeList,l=F.pcdnTraceInfo,!(Q&&Q.length>0&&l)){e.next=12;break}return this._pcdnTraceInfo=l,e.abrupt("return");case 12:return Sl(i=U.main_url)||(d=document.location.protocol,i=d+i),r=this._pcdnConfig,B=r.app_id,s=r.trackerUrl,R=r.sid,c=r.task_type,V=p(r,sl),h={vid:this._vid,cdn_url:i,file_type:"dash",sfid:U.file_id,bitrate:U.bitrate,duration:Math.floor(this._duration||0),size:U.size},this._bitrate2file[U.bitrate]=U.file_id,this._pcdn?(hU.log("resetTrackeArgs"),this._pcdn.resetTrackeArgs()):this._pcdn=new al(a({productConfig:{app_id:B,sid:R,task_type:c||Zl},trackerUrl:s},V)),e.prev=18,Z=this.getPCDNReqId(U),e.next=22,this._pcdn.fetchPCDNNode(null,h,Z);case 22:if(S=e.sent,J=this.getPCDNReqId(U),null==S||!S.req_id||J===S.req_id){e.next=27;break}return hU.log("fetchPCDNNode is not match curDefinition reqId",Z,", pcdnRet.req_id",S.req_id),e.abrupt("return");case 27:hU.log("checkPCND execute"),this._updateNodeList(S,n),this._pcdnVVStat.try_req_node+=1,this._pcdnVVStat.req_node_succ+=1,this._pcdnVVStat.has_ret_node+=(null==S||null===(u=S.nodes)||void 0===u?void 0:u.length)>0?1:0,e.next=37;break;case 34:e.prev=34,e.t0=e.catch(18),this._pcdnVVStat.try_req_node+=1;case 37:case"end":return e.stop()}}),e,this,[[18,34]])}))),function(e){return F.apply(this,arguments)})},{key:"setSetRetryInfo",value:function(e){var U=Ut.getHostFromUrl(e);this._retryInfo[U]=!0}},{key:"_updateNodeList",value:function(e,U){var t=this;if(e&&e.nodes){var n,F={pcdnNodeList:e.nodes.filter((function(e){if(!Object.prototype.hasOwnProperty.call(t._retryInfo,Ut.getHostFromUrl(null==e?void 0:e.url)))return e})),pcdnTraceInfo:{uri:e.vid,fid:e.fid,trace_id:e.trace_id}},Q=this._bitrate2file[U];null!==(n=e.fid)&&void 0!==n&&n.includes(Q)?(this._cachedPcdn[U]=F,this._pcdnTraceInfo=F.pcdnTraceInfo,hU.log("_updateNodeList",JSON.stringify(this._cachedPcdn))):hU.log("_updateNodeList not file not match cachedFileid",Q,"pcdnRet")}}},{key:"isUpdateNode",value:function(e){var U=this._getNodeListByBitrate(e);return!U||!U.length}},{key:"selectedPCDN",value:function(e,U){if(this._PCDNState!==Vl&&!e){var t;if(this.isUsePCDN(U)){this._isUseCDN=!1;var n=this._getNodeListByBitrate(U);n&&(t=n[0].url,this._lastPCDNUrl!==t&&(this._lastPCDNUrl=t,this._pcdnVVStat.conn_req_num+=1),this.pcdn_download_request_cnt++)}else this._isUseCDN||(this._PCDNSwitchCnt++,this._pcdnVVStat.conn_jump_num+=1,this._PCDNSwitchCnt>=this._pcdnConfig.switchPCDNMaxCnt&&this.updatePCDNState(Vl)),this._isUseCDN=!0;return t}this._isUseCDN=!0}},{key:"isUsePCDN",value:function(e){var U=this._getNodeListByBitrate(e);return this._PCDNState===cl&&U&&U.length>0}},{key:"_getNodeListByBitrate",value:function(e){var U=this._cachedPcdn[e];return U?U.pcdnNodeList:null}},{key:"isOpenPCDN",value:function(e,U,t){var n=this._pcdnConfig;n&&(e>=(n.enterMinBuffer||n.minBuffer)+2*(this._PCDNSwitchCnt||0)?(this.updatePCDNState(cl),this.isUpdateNode(U)&&this.getPCDNNode(U)):e<(n.outMaxBuffer||n.minBuffer-2)&&this.updatePCDNState(Rl,t))}},{key:"updatePCDNState",value:(n=R(o().mark((function e(U,t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U!==Vl){e.next=4;break}this._PCDNState=U,e.next=13;break;case 4:if(this._PCDNState===Vl||this._PCDNState===U){e.next=13;break}if(this._isUseCDN||U!==Rl||this._PCDNState===Rl){e.next=12;break}return this._PCDNState=U,e.next=9,t();case 9:this._pcdnVVStat.pSCCancelCnt++,e.next=13;break;case 12:this._PCDNState=U;case 13:case"end":return e.stop()}}),e,this)}))),function(e,U){return n.apply(this,arguments)})},{key:"getPCDNNode",value:(t=R(o().mark((function e(U){var t,n,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pcdn){e.next=2;break}return e.abrupt("return",null);case 2:return e.prev=2,t=this._getPCDNReqIdBitrate(this._vid,U),e.next=6,this._pcdn.getPCDNNode(this._vid,U);case 6:if(n=e.sent,F=this._getPCDNReqIdBitrate(this._vid,U),null==n||!n.req_id||F===n.req_id){e.next=11;break}return hU.log("getPCDNNode is not match curDefinition reqId",t,", pcdnRet.req_id",n.req_id),e.abrupt("return");case 11:n&&this._updateNodeList(n,U),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(2),console.log("err",e.t0);case 17:case"end":return e.stop()}}),e,this,[[2,14]])}))),function(e){return t.apply(this,arguments)})},{key:"removePCDNNode",value:(U=R(o().mark((function e(U,t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pcdn){e.next=2;break}return e.abrupt("return",null);case 2:this.pcdn_download_failed_cnt++,this._pcdnVVStat.conn_fail_num++,this._cachedPcdn[U]=null,this._pcdn.removePCDNNode(this._vid,U,t);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return U.apply(this,arguments)})},{key:"pcdnReqCnt",get:function(){var e=al.pcdnReqCnt;return{pcdn_download_request_cnt:this.pcdn_download_request_cnt,pcdn_download_failed_cnt:this.pcdn_download_failed_cnt,pcdn_tracker_request_cnt:e.pcdn_tracker_request_cnt,pcdn_tracker_failed_cnt:e.pcdn_tracker_failed_cnt}}},{key:"pcdnVVStat",get:function(){var e;return Object.assign({},this._pcdnVVStat,{is_try_open:1,trace_id:null===(e=this._pcdnTraceInfo)||void 0===e?void 0:e.trace_id})}}]),e}(),pl=function(){function e(U,t,n,F){c(this,e),F&&(this.adaptRange=new aQ(U,t,n,F),this.adaptRangeRes=[])}return h(e,[{key:"updateBitrate",value:function(e){var U;null===(U=this.adaptRange)||void 0===U||U.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){var U,t=null===(U=this.adaptRange)||void 0===U?void 0:U.getAdaptCacheBuffer();return!Number.isNaN(t)&&t||(t=e),t}}]),e}(),Wl=rQ.EVENT_EME.CDM_LICENSE_ERROR,ml=rQ.EVENT_EME.CDM_LICENSE_SUCCESS,El=function(){function e(U,t,n){var F,Q,l=this;c(this,e),In(this),this._pluginInst=t,this.__dash__=n;var i=t.config,d=t.player,r=t._kernal;this.kernal=r,this.mse=void 0,this.config=i,this.player=d,this.url=U,this.inited=!1,this.loadingTasks=[],this.keyValue=void 0,this.dynamic_video=this.config.dashOpts.dynamic_video,this.useEME=this.config.useEME,this.intertrustServerURL=this.config.intertrustServerURL,this.taskErrorList=[],this.defaultDefinition=this.config.defaultDefinition,this.selectedIdx=0,this.getLicenseUrl=this.config.getLicenseUrl,this.egleIds={},this.first_segment_request={video:{request:!1,ext:{fromCache:!1}},audio:{request:!1,ext:{fromCache:!1}}},this.segment_request={video:[],audio:[]};var a=this.config,o=a.loader,B=a.reqOptions;this.loader=new TF(Object.assign({openLog:aU},o,B),this._pluginInst.preloadManager),this.loader.on(qe,(function(e){l.player.emit(qe,e)})),this._vTrack=null,this._aTrack=null,this._onLoadingItems=[],this._videoEncryption=!1,this._audioEncryption=!1;var s=this.config.duration||this.config.dashOpts.video_duration,R="segment_base"===(null===(F=this.config.dashOpts)||void 0===F||null===(Q=F.dynamic_video)||void 0===Q?void 0:Q.dynamic_type);this._vid=i.vid,this._pcdnScv=new Jl(i.pcdnConfig,R,s,i.vid),this._dynamicBufferService=new pl(this.player,0,s,this.config.adaptRange)}var U,t,n,F,Q,l;return h(e,[{key:"updateDynamicBufferServiceBitrate",value:function(e){this._dynamicBufferService.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){return this._dynamicBufferService.getAdaptCacheBuffer(e)}},{key:"getData",value:(l=R(o().mark((function e(U){var t,n,F,Q,l,i,d,r,a,B,s,R,c,V,h,u,Z,S,J,p=this,W=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=W.length>1&&void 0!==W[1]?W[1]:[],n=W.length>2?W[2]:void 0,Q=W.length>4&&void 0!==W[4]&&W[4],l=W.length>5&&void 0!==W[5]?W[5]:null,i=W.length>6&&void 0!==W[6]?W[6]:null,d=W.length>7&&void 0!==W[7]?W[7]:null,r=W.length>8&&void 0!==W[8]?W[8]:null,a=(F=W.length>3&&void 0!==W[3]?W[3]:{}).isPCDN,B=a?hl:ul,e.next=12,this.loader.load(n,U,t,F,Q,l?function(e,U,Q,i){e&&e.byteLength&&p._emitPrfDataSizeEvent(B,e.byteLength,n,t,F),l(e,U,Q,i,F)}:null,i,d,r);case 12:if(!((s=e.sent)&&s.res instanceof ArrayBuffer)){e.next=19;break}return R=s.res,c=s.headers,V=s.status,h=s.fromCache,u=s.cacheKey,h?this.emitPreloadHit(u):this._emitPrfDataSizeEvent(B,s.res.byteLength,n,t,F),e.abrupt("return",{res:R,headers:c,status:V,fromCache:h});case 19:s&&"error"===s.res&&this.player&&this.player.emit("source_error",{host:Ut.getHostFromUrl(null==s?void 0:s.url),src:null==s?void 0:s.url,errorCode:(null==s?void 0:s.status)||"networkError",message:null==s||null===(Z=s.error)||void 0===Z?void 0:Z.message,range:t,headers:null==s?void 0:s.header,error:{msg:null==s||null===(S=s.error)||void 0===S?void 0:S.message,stack:null==s||null===(J=s.error)||void 0===J?void 0:J.stack}});case 20:return e.abrupt("return",s);case 21:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"_emitPrfDataSizeEvent",value:function(e,U,t,n,F){var Q,l;e===ul?null===(Q=this.player)||void 0===Q||Q.emit("prf_data_size",{vid:this._vid,task_type:1,cdn_size:U,mediaType:t,range:JSON.stringify(n),fileid:F.fileId,definition:F.definition}):null===(l=this.player)||void 0===l||l.emit("prf_data_size",{vid:this._vid,task_type:1,pcdn_size:U,mediaType:t,range:JSON.stringify(n),fileid:F.fileId,definition:F.definition})}},{key:"_getCryptInfos",value:function(){var e="",U="";if(this.dynamic_video.dynamic_video_list&&this.dynamic_video.dynamic_video_list.length>0){for(var t=0;t<this.dynamic_video.dynamic_video_list.length;t++)if(this.dynamic_video.dynamic_video_list[t].kid){e=this.dynamic_video.dynamic_video_list[t].kid,U=this.dynamic_video.dynamic_video_list[t].spade_a,this._videoEncryption=!0;break}}else if(this.dynamic_video.dynamic_audio_list)for(var n=0;n<this.dynamic_video.dynamic_audio_list.length;n++)if(this.dynamic_video.dynamic_audio_list[n].kid){e=this.dynamic_video.dynamic_audio_list[n].kid,U=this.dynamic_video.dynamic_audio_list[n].spade_a,this._audioEncryption=!0;break}return{keyId:e,spade_a:U}}},{key:"init",value:(Q=R(o().mark((function e(U){var t,n,F,Q,l,i,d,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._hasDestroyed){e.next=2;break}return e.abrupt("return");case 2:if(this._initStartMs=Date.now(),this.kernal.setNodeTime("initdash","newplayer_start"),t=this._getCryptInfos(),n=t.keyId,F=t.spade_a,(Q=this).config.usePlaySpade&&(Q.config.secretKey=F),l=Q.config,i=l.secretKey,d=l.drmKeyToken,r=l.playDomain,!(n||i||d&&r)){e.next=18;break}return e.prev=10,e.next=13,this._initSecret(n);case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(10),console.log("err",e.t0);case 18:return e.abrupt("return",Q.initDash(U));case 19:case"end":return e.stop()}}),e,this,[[10,15]])}))),function(e){return Q.apply(this,arguments)})},{key:"_handleIncompleSegment",value:function(e,U){var t=this;e.incomplete=!0,t.__dash__&&(t.__dash__._minDuration=Math.min(U,t.__dash__._minDuration))}},{key:"_initSecret",value:function(e){var U=this,t=new X,n=this.config,F=n.secretKey,Q=n.drmKeyToken,l=n.playDomain,i=n.useUnionInfoDRM,d=n.keyTokenExpiredDuration,r=n.sessionId,a=new rQ.XGSecretKey({kid:e,getLicenseUrl:this.getLicenseUrl,secretKey:F,vid:this.config.vid||"",useUnionInfoDRM:i,drmKeyToken:Q||this.config.keyToken,keyTokenExpiredDuration:d,playDomain:l,sessionId:r,useEME:this.useEME,intertrustServerURL:this.config.intertrustServerURL});return this._secret=a,a.getLicenseSecret().then((function(e){if(!U._pluginInst)return hU.log("getLicense callback destroy"),void t.reject("getLicense callback destroy");U.config.dashOpts&&U.useEME?(U._initEME(),null==a||a.setOptions(),null==a||a.setupEME(U.player.video)):(U.__dash__.crypto&&U.__dash__.crypto.updateValue(e),U.keyValue=!0),hU.encrypt("getLicense resolve"),t.resolve()})).catch((function(e){hU.log("DRM_ERROR",e),t.reject("catch error"),void 0!==e.status&&U.emit("error",new wn(Se,We.CUSTOM_LICENSE,{url:U.getLicenseUrl,httpCode:e.status,message:"CUSTOM_LICENSE_ERROR"}))})),t}},{key:"_initEME",value:function(){var e=this;if(!rQ.checkEMEValid())return this.player.errorHandler(new wn(Ze,We.EME_HIJACK,{message:"EME API被劫持"})),void this.__dash__.destroy();this._secret.on(Wl,(function(U){e.player&&e.player.emit("log",a({type:"oneevent",end_type:Wl,ua:navigator.userAgent},U)),hU.log("EME CDM_LICENSE_ERROR"),e.player.errorHandler(new wn(Se,We.LICENSE,{message:"DRM接口失败"}))})),this._secret.on(ml,(function(U){e.player&&e.player.emit("log",a({type:"oneevent",end_type:ml,ua:navigator.userAgent},U)),hU.log("EME CDM_LICENSE_SUCCESS")}))}},{key:"_initDefaultDefinition",value:function(){var e=this,U=this,t=this.mpd.mediaList.video,n=U.config?U.config.defaultDefinition:null,F=this._pluginInst.getPreloadStat(),Q=!1;if(F.video){var l=Object.keys(F.video)[0],i=Ut.getDefinition(l);i&&(n=i,Q=!0)}var d=this.player.config.userSelectDefinition&&this.config.focusUserDefinition;if(d&&(n!==this.player.config.userSelectDefinition&&Q&&(Q=!1),n=this.player.config.userSelectDefinition),this._pluginInst.bitRateAdapter&&!Q&&!d){var r=this.player?this.player.config.userSelectDefinition:null,a=Ut.getBitrateItem(U.config.dashOpts.dynamic_video,this._pluginInst.bitRateAdapter,U.config.duration,r);hU.log("[xgplayer-encrypt] onReady",U.config.vid,"item",a),a&&(n=a.definition)}hU.log("[xgplayer-encrypt] onReady",U.config.vid,"video definition",n);var o=!1;n&&t.forEach((function(U,F){U.definition===n&&(e.config.defaultDefinition=n,t.selectedIdx=F,o=!0)})),o||(t.selectedIdx=0)}},{key:"_initMSE",value:function(){var e,U,t=this,n=Date.now(),F=this.mpd.mediaList.audio,Q=this.mpd.mediaList.video,l={};if(this._hasAudio&&(l[xe.AUDIO]={mimeType:"audio/mp4",codec:'audio/mp4; codecs="'.concat(F[F.selectedIdx].codecs,'"')}),this._hasVideo&&(l[xe.VIDEO]={mimeType:"video/mp4",codec:'video/mp4; codecs="'.concat(Q[Q.selectedIdx].codecs,'"')}),this._hasVideo&&this._pluginInst.softVideo){var i=this.player.video;i.setPlayMode&&i.setPlayMode("VOD"),(e=i).url=URL.createObjectURL(new Blob),U=Promise.resolve()}else{if(this._secret&&!rQ.checkMSEValid())return void this.player.errorHandler(new wn(Ze,We.MSE_HIJACK,{message:"MSE被劫持"}));(U=(e=new xe(void 0,{openLog:aU})).bindMedia(this.player.video)).then((function(){if(t._pluginInst){t.kernal.setNodeTime("initmse_sbopendone"),t._pluginInst.info({msg:"mse init success",name:"mseInit",startMs:n,profile:!0});try{for(var U=Object.keys(l),F=0;F<U.length;F++){var Q=U[F];e.createSource(Q,l[Q].codec)}}catch(i){hU.log("MSE MSE_MEDIA_TYPES_NOT_SUPPORTED",JSON.stringify({msg:i.message})),t&&t.player&&t.player.errorHandler(new wn(Ze,We.MSE_ADD_SB,{line:329,message:"mse init fail"})),hU.log("mse init error",i,"player destroyed ? ",!(t&&t.player))}}else hU.log("open promise ready destroy")})).catch((function(e){console.log("openPromise catch",e)}))}return this.mse=e,U}},{key:"_addBuffer",value:function(e){var U=this,t=this,n=-1,F=this.mpd.mediaList.video,Q=this.mpd.mediaList.audio,l=[];(t.config&&t.config.dashOpts.audioOnly?["audio"]:["video","audio"]).forEach((function(F){var Q=U.mpd.mediaList[F];if(!(Q.length<1)&&Q[Q.selectedIdx]&&Q[Q.selectedIdx].mimeType){n++;var i=e[n];if(!i.initSegmentRes)return hU.log("initSegment null, task request error, stop"),void t.emit("error",new wn(pe,wn.SEG_PARSE_ERROR,{message:"wrapperData.initSegmentRes is null"}));t.__dash__&&l.push(t.__dash__._appendInitSegment(F,i,Q.selectedIdx))}})),Promise.all(l).then((function(){U.kernal.setNodeTime("metaready_initsegend"),t.inited=!0;var e=F.selectedIdx,n=Q.selectedIdx;(U._hasVideo&&(F[e].encrypted||F[e].kid)||U._hasAudio&&(Q[n].encrypted||Q[n].kid))&&t._secret&&t._secret.emit(rQ.EVENT_EME.ENCRYPTED),"vod"===t.type&&(t.seek(0,0),t.emit("start_play"))})).catch((function(e){t.player.errorHandler(new wn(Ze,We.MSE_APPEND_BUFFER,{line:329,message:"mse append error ".concat(e.message?e.message:e)}))}))}},{key:"initDash",value:(F=R(o().mark((function e(U){var t,n;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pluginInst){e.next=3;break}return hU.log("dash.js init dash destroy"),e.abrupt("return");case 3:return this._pluginInst.info({msg:"dash init",data:"dash init",startMs:this._initStartMs,profile:!0}),this.kernal.setNodeTime("initdashdone","initdash"),t=this,this.kernal.setNodeTime("initmpd"),n=new yF(U,t.config.dashOpts,t),t.mpd=n,n.init(),e.next=12,n.readyPromise;case 12:return this._onMPDReady(n),e.abrupt("return",this.mse);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"_onMPDReady",value:function(e){var U=this,t=Date.now();if(this._pluginInst){hU.log("mpd ready"),this.kernal.setNodeTime("initmpddone"),this._pluginInst.info({msg:"mpd ready",name:"mpd ready",startMs:t,profile:!0}),this.type=e.type;var n=e.mediaList.video,F=e.mediaList.audio;this._initDefaultDefinition(),this.kernal.setNodeTime("initmse_sbopen");var Q=!!(n.length>0&&n[n.selectedIdx])&&this.config&&!this.config.dashOpts.audioOnly,l=!!(F.length>0&&F[F.selectedIdx]);this._hasVideo=Q,this._hasAudio=l;var i=this._initMSE();if(i){var d=[],r=this.config?this.config.dashOpts.audioOnly:null;this.config&&!r&&n&&n.length>0&&n[n.selectedIdx]&&n[n.selectedIdx].initSegment&&d.push(this.__dash__._makeInitSegemntRequestWithRetry("video",n.selectedIdx,!0)),F[F.selectedIdx]&&F[F.selectedIdx].initSegment&&d.push(this.__dash__._makeInitSegemntRequestWithRetry("audio",F.selectedIdx,!0)),Promise.all(d).then((function(e){i.then((function(){U._addBuffer(e)}))})).catch((function(e){U&&U.player&&U.player.errorHandler(e),hU.log("appendInitPromise error",e,"player destroyed ? ",!(U&&U.player))}))}}else hU.log("mpd ready destroy")}},{key:"seek",value:(n=R(o().mark((function e(U,t){var n,F,Q,l,i,d,r,a,B,s=this,R=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=R.length>2&&void 0!==R[2]&&R[2],F=this,e.next=4,this.mpd.seek(U,t);case 4:if(Q=e.sent,l=F.mpd.mediaList.video,i=F.mpd.mediaList.audio,d=!!(l.length>0&&l[l.selectedIdx]),r=!!(i.length>0&&i[i.selectedIdx]),!(d&&r&&2*l[l.selectedIdx].mediaDuration<i[i.selectedIdx].mediaDuration)){e.next=12;break}return F.emit("error",new wn(pe,wn.DUR_PARSE_ERROR,{message:"the video.mediaDuration not match audio.mediaDuration"})),e.abrupt("return");case 12:a={},(B=["video","audio"]).forEach((function(e){Q[e]&&Q[e].length>0&&(a[e]=[],Q[e].forEach((function(U){var t=U.idx,n=U.start,F=U.end,Q=U.downloaded,l=U.range;a[e].push({idx:t,start:n,end:F,downloaded:Q,range:l})})))})),hU.log("seekResult: time",U,"currentTime",t,JSON.stringify(a)),(F.config.dashOpts&&F.config.dashOpts.audioOnly?["audio"]:B).forEach((function(e){Q[e]&&Q[e].length>0&&Q[e].every((function(U){if(U.downloaded===CU||U.downloaded===TU)return!0;U.downloaded=TU;var t=s._videoEncryption||s._audioEncryption,Q=!t||t&&s.useEME,l=F.config.useProgressiveAppend&&!s._pluginInst.softVideo&&Q&&s.loader.isSupportedProgress(),i=0===U.start||n;F._addToList(U);var d=function(){F.updateItemState(U,!1),hU.log("onCancel",U),F._removeFromList(U)},r=F.mpd.mediaList[e],a=r[r.selectedIdx],o=l&&i&&s.loader.checkProgressSatisfied(a.bandwidth||a.bitrate);return i&&hU.log("progressDownloaded match, config p ".concat(F.config.useProgressiveAppend,", \n progressDownloaded ").concat(l,", encEnableProgress :").concat(Q)),o&&0===U.start&&("video"===e?F._pluginInst.pvStartup=!0:F._pluginInst.paStartup=!0),o?(hU.log("progressDownloaded, mediaType:".concat(e,",\n start:").concat(U.start,", bitrate:").concat(a.bandwidth||a.bitrate)),F.makeSegmentRequest(e,U,(function(t,n,Q,l,i){var d=Q.range||[U.start,U.end];i.range=d,F.appendSegment(e,t,U,{},i,!1,n),n&&F._removeFromList(U)}),d).catch((function(e){F._onRequestFail(e,U)}))):F.makeSegmentRequest(e,U,null,d).then((function(t){var n=t.res,Q=t.headers,l=t.extData;hU.log("append ".concat(e," ").concat(U.start," ").concat(U.end)),F.appendSegment(e,n,U,Q||{},l,!0,!0),F._removeFromList(U)})).catch((function(e){F._onRequestFail(e,U)})),!0}))}));case 17:case"end":return e.stop()}}),e,this)}))),function(e,U){return n.apply(this,arguments)})},{key:"_onRequestFail",value:function(e,U){var t,n;(this.updateItemState(U),this._removeFromList(U),e.isPCDN)&&(null===(t=this._pcdnScv)||void 0===t||t.setSetRetryInfo(e.url),null===(n=this._pcdnScv)||void 0===n||n.removePCDNNode(e.bitrate,e.url))}},{key:"_addToList",value:function(e){this._onLoadingItems&&this._onLoadingItems.push(e)}},{key:"_removeFromList",value:function(e){if(this._onLoadingItems)for(var U=this._onLoadingItems.length-1;U>-1;U--)this._onLoadingItems[U]===e&&this._onLoadingItems.splice(U,1)}},{key:"makeSegmentRequest",value:function(e,U){var t=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,Q=this,l=new X;void 0===U.range&&(U.range=[]);var i=this.first_segment_request[e],d=!i.request;d&&(this.first_segment_request[e].request=!0);var r=this.segment_request[e];"video"===e&&hU.network("http get video start: ".concat(U.start,", end: ").concat(U.end," ,range: ").concat(U.range)),Q.player&&Q.__dash__._checkUrlRange(U.url);var a={limitSizeM:1/0,segment_resolution:"",isVideo:"video"===e,ratio:Q.config.segmentRatio||7.5,vid:Q.config.vid,mediaType:e,start:U.start,end:U.end,useUrlRange:Q.config.useUrlRange},o=1/0,B=Q.mpd.mediaList[e],s=B[B.selectedIdx],R=U.url,c=!1;if("video"===e){try{var V=s.definition||Q.__dash__.bandwidth2item[s.bandwidth].definition;if(o=pU[V.toLowerCase()],a.segment_resolution=V.toLowerCase(),a.definition=a.segment_resolution,U.definition=V,this._pcdnScv){var h=this._pcdnScv.selectedPCDN(!1,s.bandwidth),u=null==h?void 0:h.includes(s.fileId);h&&!u&&(this._pcdnScv.removePCDNNode(s.bandwidth),hU.log("PCDNURL remove, url,",h,"fileid",s.fileId)),u&&h&&(c=!0,(!this._cdnHost||R.indexOf(this._cdnHost)<0)&&(this._cdnHost=Ut.getHostFromUrl(R)),this._cdnHost||(this._cdnHost=Ut.getHostFromUrl(R)),a.cdnHost=this._cdnHost,R=h,hU.log("PCDNURL",R))}this.setCurrentHost(R)}catch(S){o=1/0}a.limitSizeM=o}a.bitrate=s.bandwidth||s.bitrate,a.idx=s.idx,a.isPCDN=c,a.fileId=s.fileId,d&&(i.task=Ut.nowTime());var Z=this.config.timeout;return this.getData(R,U.range,e,a,!1,n,F,Z,(function(){Q.updateItemState(U,!1),hU.log("onTimeout",U),Q._removeFromList(U)})).then((function(F){if(t._pluginInst)if(F){var o=F.res,B=F.fromCache,s=o instanceof ArrayBuffer;if(d&&(i.taskfinish=Ut.nowTime(),i.ext.fromCache=B,i.ext.mediaType=e,i.ext.definition=a.definition,s?i.ext.byteLength=o.byteLength:o.done||(i.ext.error=o)),!s)if(!(o&&o.done)){for(var R=!1,c=0;c<r.length;c++){var V=r[c];if(V.definition===U.definition&&V.start===U.start){R=!0,V.count++,t.player&&t.player.emit(gU,t.segment_request);break}}R||(r.push({mediaType:e,definition:U.definition,start:U.start,response:F,count:1,end:U.end}),t.player&&t.player.emit(gU,t.segment_request))}if(o instanceof ArrayBuffer)l.resolve({res:o,headers:null,extData:{status:F.status,segment_resolution:a.segment_resolution}}),Q.mseLog("task loadsucc",U,e);else if(!(206===F.status||200===F.status)){var h;if(Q.mseLog("task loaderror",U,e),n&&t.__dash__.abort("video"===e?xe.VIDEO:xe.AUDIO),403===F.status)null==Q||Q.__dash__.clearProgressTimer(),null==Q||null===(h=Q._pluginInst)||void 0===h||h.emitExpireEvent({url:U.url,response:F});l.reject(F)}}else console.log("response err"),l.reject(new Error("request error"))})),l}},{key:"setCurrentHost",value:function(e){this._pluginInst.loadURL=e}},{key:"reportMonitorEvent",value:function(e,U,t,n,F){var Q=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},l=this,i=l.getReportData(t,n,F,Q),d=F.eagleid;if(d){if(!this.egleIds||this.egleIds[d])return;this.egleIds[d]=1}l.player&&l.player.emit("log",{type:"oneevent",end_type:e,cdnUrl:U,ext:i})}},{key:"getReportData",value:function(e,U,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=Ut.transformHeaders(t,JU);return Object.assign({},{start:e||-1,end:U||-1},F,n)}},{key:"reportMenuEvent",value:function(e,U,t,n){var F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},Q=this._pluginInst.player,l=this.getReportData(U,t,n,F);l.url=e,Q.emit("menusegment",l)}},{key:"appendSegment",value:function(e,U,t,n,F){var Q=arguments.length>5&&void 0!==arguments[5]&&arguments[5],l=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],i=this;if(!this._hasDestroyed&&i.mpd&&U){var d,r=F.status,a=F.segment_resolution,o=i.mpd.mediaList[e],B=o.selectedIdx,s=0,R=-1,c=t.realUrl||t.url;if(Q&&(U instanceof ArrayBuffer||U instanceof Uint8Array))try{R=U.byteLength;var V=new Uint8Array(U,4,4),h=String.fromCharCode.apply(null,V);if("moof"!==h&&"styp"!==h&&(hU.media("segment content error",t,n),s=1,i.reportMonitorEvent(DU,c,t.range[0],t.range[1],n,{segment_size:U.byteLength,status:r,segment_resolution:a,box_type:h,step:s,segment_origin_size:R})),"ftyp"===h&&200===r&&2===t.range.length){s=2;var u=t.range[0];U=U.slice(u,t.range[1]+1),"moof"!==(h=String.fromCharCode.apply(null,U))&&"styp"!==h&&(i.emit("error",new wn(pe,wn.SEGMENT_CONTENT_ERROR,{message:"boxType is ".concat(h,", range:").concat(JSON.stringify(t.range),", url:").concat(c,", respHeaders:").concat(JSON.stringify(n),", isPCDN:").concat(F.isPCDN)})),i.reportMonitorEvent(DU,c,t.range[0],t.range[1],n,{segment_size:U.byteLength,status:r,segment_resolution:a,box_type:h,step:s,segment_origin_size:R}))}}catch(S){i.reportMonitorEvent(DU,c,t.range[0],t.range[1],n,{segment_size:U.byteLength,status:r,segment_resolution:a,step:s,box_type:"error",segment_origin_size:R}),hU.media("segment content catch",t,S)}i.reportMenuEvent(c,t.range[0],t.range[1],n,{segment_size:U.byteLength,status:r,segment_resolution:a});var Z=this._pluginInst.softVideo;if(i.keyValue||Z)(Z||i.__dash__.dashVideoEncrypted||i.__dash__.dashAudioEncrypted)&&!1===i.useEME&&i.__dash__.crypto?(d=performance.now(),i.mseLog("decryptBody start",t,e),i.__dash__.crypto.decryptBody(U,"video"===e,!Z).then((function(U){var n=U.data,F=U.id,Q=U.headerId;if(n.res||Z){var r=n.res,a=n.videoTrack,s=n.audioTrack,R=performance.now();if(i.encryptTotalAll||(i.encryptTotalAll=0),i.encryptTotalAll+=R-d,hU.encrypt("encryptTotalAll:".concat(i.encryptTotalAll)),"video"===e&&(i.encryptTotal||(i.encryptTotal=0),i.encryptTotal+=R-d,hU.encrypt("encryptVideo:".concat(i.encryptTotal)),F<Q))return i.updateItemState(t),void console.warn("decrytbody discard, id:".concat(F,", headerId:").concat(Q,",\n index:").concat(B,", url:").concat(t.url,", start:").concat(t.start));i.doAppendSegment(e,o,r,t,B,null,l,a,s)}else i.updateItemState(t)}))):i.doAppendSegment(e,o,U,t,B,F.range,l);else i.doAppendSegment(e,o,U,t,B,F.range,l)}}},{key:"doAppendSegment",value:function(e,U,t,n,F,Q,l,i,d){var r=this;if(!this._hasDestroyed){var o=this,B={start:n.start,end:n.end,index:F,bandwidth:U[U.selectedIdx].bandwidth,fps:U[U.selectedIdx].fps,mediaType:e,sequence:n.idx};if(e===xe.VIDEO&&-1!==this.__dash__.curVideoInitSegmentIdx&&F!==this.__dash__.curVideoInitSegmentIdx)return this.updateItemState(n),void hU.log("init 与 segment不匹配, curVideoInitSegmentIdx",this.__dash__.curVideoInitSegmentIdx,"selectedIdx",F);this.appendBuffer(e,new Uint8Array(t),JSON.stringify(a({range:Q},B)),i,d).then((function(){if(o.player)if(l&&0===t.byteLength)r.emptyAction(e,{}).then((function(){l&&o.updateItemState(n,!0),"video"===e&&o.player.emit("addVideoBufferEnd",B)}));else{if(r.mseLog("appendBuffer success",n,e,Q),l){o.updateItemState(n,!0);var U=o.mpd._getBuffered(e);hU.log("fixbuffer: mediaType",e,"buffered",JSON.stringify(U),"item.start",n.start,"item.end",n.end);for(var F=!0,i=0;i<U.length;i++){var d=U[i].start,a=U[i].end;n.start>=d-.5&&n.end<=a+.5&&(F=!1)}if(F){var s=o.mse.getSourceBuffer(e);hU.log("fixbuffer: buffer Miss",!!s),s&&(o.mse.abort(e),o.mse.remove(e,n.start,n.end),o.updateItemState(n,!1))}}"video"===e&&o.player.emit("addVideoBufferEnd",B);var R=o.mse,c=o.mpd;if(R&&B.start>=0&&l&&!r._pluginInst.softVideo){var V=R.buffered(e);if(0===V.length)return;var h=V.end(V.length-1),u=c.mediaList[e][B.index].mediaSegments[B.sequence-1];u.incomplete&&(o._handleIncompleSegment(u,h),hU.log("extData",B))}var Z=c.isLastSegmentAndAppend(e,n.idx),S=e===xe.AUDIO?xe.VIDEO:xe.AUDIO,J=c.isLastSegmentAndAppend(S,n.idx);Z&&J&&(hU.log("append check endofStream"),R.endOfStream());var p=c.isSegmentAppendFromIdx(xe.VIDEO,o.player.currentTime),W=c.isSegmentAppendFromIdx(xe.AUDIO,o.player.currentTime);p&&W&&(R.endOfStream(),hU.log("append all endofstream"));var m=o.player.buffered;if(m.length>0){var E=m.start(m.length-1),k=m.end(m.length-1);o.player.currentTime>E&&Math.abs(k-o.player.duration)<.5&&(hU.log("append buffer match endofstream"),R.endOfStream())}}else hU.log("appendBuffer destroy return")})).catch((function(e){hU.log("append buffer catch",e);var U=e&&e.errorCode===me[Ze][We.MSE_FULL];U||o.updateItemState(n,!1),U&&o.__dash__&&o.__dash__.clearBuffer(),e&&e.errorCode&&o.player&&o.player.emit(new wn(Ze,e.errorCode,{line:800,message:"append buffer".concat(e.message)}))}))}}},{key:"appendBuffer",value:function(e,U,t,n,F){var Q=this;return this._pluginInst.softVideo?(this._hasVideo&&"video"===e&&(this._vTrack=new dF,Object.keys(n).forEach((function(e){Q._vTrack[e]=n[e]}))),this._hasAudio&&"audio"===e&&(this._aTrack=new rF,Object.keys(F).forEach((function(e){Q._aTrack[e]=F[e]}))),this.mse.appendBuffer(this._vTrack,this._aTrack),Promise.resolve()):this.mse.append(e,new Uint8Array(U),t)}},{key:"changeType",value:function(e,U){var t="";t=e===xe.VIDEO?'video/mp4; codecs="'.concat(U,'"'):'audio/mp4; codecs="'.concat(U,'"'),this.mse.changeType&&this.mse.changeType(e,t)}},{key:"emptyAction",value:function(e,U){var t=this.mse;return t._enqueueOp(e,(function(){t._onSBUpdateEnd(e)}),"emptyAction",U)}},{key:"abortLoadingTasks",value:(t=R(o().mark((function e(){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.loader.cancel();case 2:if(this._onLoadingItems)for(U=0;U<this._onLoadingItems.length;U++)this.updateItemState(this._onLoadingItems[U],!1);hU.log("dash abortLoadingTasks"),this._onLoadingItems=[];case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"updateItemState",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=[];e.length>0?t=e:t.push(e),t.forEach((function(e){e.downloaded=U?CU:vU}))}},{key:"mseLog",value:function(e,U,t,n){hU.mse("type-".concat(t,"-start-").concat(U.start,"-end-").concat(U.end,"-").concat(e,",range:").concat(JSON.stringify(n||U.range)))}},{key:"emitPreloadHit",value:function(e){hU.preload("emit preloadhit",e),this.player&&this.player.emit("log",{type:"onetemp",action:"append",data:{preload_hit:"".concat(e,"|")}})}},{key:"destroy",value:function(){var e;this.loader.cancel(),iQ(this.loader),null===(e=this._secret)||void 0===e||e.destroy(),this._hasDestroyed=!0}},{key:"clearFailedSegment",value:function(){this.segment_request={video:[],audio:[]},this.player&&this.player.emit(gU,this.segment_request)}},{key:"checkPCND",value:(U=R(o().mark((function e(){var U,t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,U=this._pluginInst.currentDefitionFromPlayer,t=U.item,e.next=5,this._pcdnScv.checkPCND(t);case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("error",e.t0);case 10:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(){return U.apply(this,arguments)})},{key:"isOpenPCDN",value:function(e){var U=this;if(this._pcdnScv){var t=this._pluginInst.currentDefitionFromPlayer.item.bitrate,n=e-this.player.currentTime;this._pcdnScv.isOpenPCDN(n,t,R(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,U.abortLoadingTasks();case 2:case"end":return e.stop()}}),e)}))))}}},{key:"pcdnReqCnt",value:function(){return this._pcdnScv.pcdnReqCnt||{}}},{key:"pcdnVVStat",value:function(){return this._pcdnScv.pcdnVVStat||{}}}]),e}(),kl=El,yl="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBBPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sZz1mdW5jdGlvbihBKXt0cnl7cmV0dXJuISFBKCl9Y2F0Y2goZyl7cmV0dXJuITB9fSxJPXt9LnRvU3RyaW5nLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEkuY2FsbChBKS5zbGljZSg4LC0xKX0sUT1CLEM9IiIuc3BsaXQsRT1nKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09UShBKT9DLmNhbGwoQSwiIik6T2JqZWN0KEEpfTpPYmplY3QsaT1mdW5jdGlvbihBKXtpZihudWxsPT1BKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitBKTtyZXR1cm4gQX0sdD1FLG89aSxlPWZ1bmN0aW9uKEEpe3JldHVybiB0KG8oQSkpfSxuPWZ1bmN0aW9uKEEpe3JldHVybiBBJiZBLk1hdGg9PU1hdGgmJkF9LHI9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBBJiZBKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhPXtleHBvcnRzOnt9fSxzPSFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYz17fSxoPWZ1bmN0aW9uKEEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgQT9udWxsIT09QToiZnVuY3Rpb24iPT10eXBlb2YgQX0sRD1oLHk9ci5kb2N1bWVudCxmPUQoeSkmJkQoeS5jcmVhdGVFbGVtZW50KSx3PWZ1bmN0aW9uKEEpe3JldHVybiBmP3kuY3JlYXRlRWxlbWVudChBKTp7fX0sdT13LEY9IXMmJiFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkodSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLEc9aCxkPWZ1bmN0aW9uKEEpe2lmKCFHKEEpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoQSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIEF9LFI9aCxsPWZ1bmN0aW9uKEEsZyl7aWYoIVIoQSkpcmV0dXJuIEE7dmFyIEksQjtpZihnJiYiZnVuY3Rpb24iPT10eXBlb2YoST1BLnRvU3RyaW5nKSYmIVIoQj1JLmNhbGwoQSkpKXJldHVybiBCO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihJPUEudmFsdWVPZikmJiFSKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjtpZighZyYmImZ1bmN0aW9uIj09dHlwZW9mKEk9QS50b1N0cmluZykmJiFSKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxrPXMsVT1GLFM9ZCxOPWwsTT1PYmplY3QuZGVmaW5lUHJvcGVydHk7Yy5mPWs/TTpmdW5jdGlvbihBLGcsSSl7aWYoUyhBKSxnPU4oZywhMCksUyhJKSxVKXRyeXtyZXR1cm4gTShBLGcsSSl9Y2F0Y2goQil7fWlmKCJnZXQiaW4gSXx8InNldCJpbiBJKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSSYmKEFbZ109SS52YWx1ZSksQX07dmFyIFk9ZnVuY3Rpb24oQSxnKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmQSksY29uZmlndXJhYmxlOiEoMiZBKSx3cml0YWJsZTohKDQmQSksdmFsdWU6Z319LEg9YyxwPVksSj1zP2Z1bmN0aW9uKEEsZyxJKXtyZXR1cm4gSC5mKEEsZyxwKDEsSSkpfTpmdW5jdGlvbihBLGcsSSl7cmV0dXJuIEFbZ109SSxBfSxMPXIsdj1KLEs9ZnVuY3Rpb24oQSxnKXt0cnl7dihMLEEsZyl9Y2F0Y2goSSl7TFtBXT1nfXJldHVybiBnfSx4PUsscT0iX19jb3JlLWpzX3NoYXJlZF9fIixtPXJbcV18fHgocSx7fSksYj1tOyhhLmV4cG9ydHM9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYltBXXx8KGJbQV09dm9pZCAwIT09Zz9nOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMTIuMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSk7dmFyIFQsaixaPWEuZXhwb3J0cyxPPWksVz1mdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KE8oQSkpfSxWPVcsWD17fS5oYXNPd25Qcm9wZXJ0eSxQPWZ1bmN0aW9uKEEsZyl7cmV0dXJuIFguY2FsbChWKEEpLGcpfSx6PTAsXz1NYXRoLnJhbmRvbSgpLCQ9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiK1N0cmluZyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrKCsreitfKS50b1N0cmluZygzNil9LEFBPXIsZ0E9cixJQT1mdW5jdGlvbihBKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQT9BOnZvaWQgMH0sQkE9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0lBKEFBW0FdKXx8SUEoZ0FbQV0pOkFBW0FdJiZBQVtBXVtnXXx8Z0FbQV0mJmdBW0FdW2ddfSxRQT1CQSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLENBPVFBLEVBPXIucHJvY2VzcyxpQT1FQSYmRUEudmVyc2lvbnMsdEE9aUEmJmlBLnY4O3RBP2o9KFQ9dEEuc3BsaXQoIi4iKSlbMF08ND8xOlRbMF0rVFsxXTpDQSYmKCEoVD1DQS5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fFRbMV0+PTc0KSYmKFQ9Q0EubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihqPVRbMV0pO3ZhciBvQSxlQT1qJiYraixuQT1lQSxyQT1nLGFBPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXJBKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfHwhU3ltYm9sLnNoYW0mJm5BJiZuQTw0MX0pKSxzQT1hQSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixjQT1yLGhBPVAsREE9JCx5QT1hQSxmQT1zQSx3QT1aKCJ3a3MiKSx1QT1jQS5TeW1ib2wsRkE9ZkE/dUE6dUEmJnVBLndpdGhvdXRTZXR0ZXJ8fERBLEdBPWZ1bmN0aW9uKEEpe3JldHVybiBoQSh3QSxBKSYmKHlBfHwic3RyaW5nIj09dHlwZW9mIHdBW0FdKXx8KHlBJiZoQSh1QSxBKT93QVtBXT11QVtBXTp3QVtBXT1GQSgiU3ltYm9sLiIrQSkpLHdBW0FdfSxkQT1NYXRoLmNlaWwsUkE9TWF0aC5mbG9vcixsQT1mdW5jdGlvbihBKXtyZXR1cm4gaXNOYU4oQT0rQSk/MDooQT4wP1JBOmRBKShBKX0sa0E9bEEsVUE9TWF0aC5taW4sU0E9ZnVuY3Rpb24oQSl7cmV0dXJuIEE+MD9VQShrQShBKSw5MDA3MTk5MjU0NzQwOTkxKTowfSxOQT1sQSxNQT1NYXRoLm1heCxZQT1NYXRoLm1pbixIQT1mdW5jdGlvbihBLGcpe3ZhciBJPU5BKEEpO3JldHVybiBJPDA/TUEoSStnLDApOllBKEksZyl9LHBBPWUsSkE9U0EsTEE9SEEsdkE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPXBBKGcpLEU9SkEoQy5sZW5ndGgpLGk9TEEoQixFKTtpZihBJiZJIT1JKXtmb3IoO0U+aTspaWYoKFE9Q1tpKytdKSE9USlyZXR1cm4hMH1lbHNlIGZvcig7RT5pO2krKylpZigoQXx8aSBpbiBDKSYmQ1tpXT09PUkpcmV0dXJuIEF8fGl8fDA7cmV0dXJuIUEmJi0xfX0sS0E9e2luY2x1ZGVzOnZBKCEwKSxpbmRleE9mOnZBKCExKX0seEE9e30scUE9UCxtQT1lLGJBPUtBLmluZGV4T2YsVEE9eEEsakE9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPW1BKEEpLFE9MCxDPVtdO2ZvcihJIGluIEIpIXFBKFRBLEkpJiZxQShCLEkpJiZDLnB1c2goSSk7Zm9yKDtnLmxlbmd0aD5ROylxQShCLEk9Z1tRKytdKSYmKH5iQShDLEkpfHxDLnB1c2goSSkpO3JldHVybiBDfSxaQT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLE9BPWpBLFdBPVpBLFZBPU9iamVjdC5rZXlzfHxmdW5jdGlvbihBKXtyZXR1cm4gT0EoQSxXQSl9LFhBPWMsUEE9ZCx6QT1WQSxfQT1zP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZyl7UEEoQSk7Zm9yKHZhciBJLEI9ekEoZyksUT1CLmxlbmd0aCxDPTA7UT5DOylYQS5mKEEsST1CW0MrK10sZ1tJXSk7cmV0dXJuIEF9LCRBPUJBKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLEFnPSQsZ2c9Wigia2V5cyIpLElnPWZ1bmN0aW9uKEEpe3JldHVybiBnZ1tBXXx8KGdnW0FdPUFnKEEpKX0sQmc9ZCxRZz1fQSxDZz1aQSxFZz14QSxpZz0kQSx0Zz13LG9nPSJwcm90b3R5cGUiLGVnPSJzY3JpcHQiLG5nPUlnKCJJRV9QUk9UTyIpLHJnPWZ1bmN0aW9uKCl7fSxhZz1mdW5jdGlvbihBKXtyZXR1cm4iPCIrZWcrIj4iK0ErIjwvIitlZysiPiJ9LHNnPWZ1bmN0aW9uKCl7dHJ5e29BPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goUSl7fXZhciBBLGcsSTtzZz1vQT9mdW5jdGlvbihBKXtBLndyaXRlKGFnKCIiKSksQS5jbG9zZSgpO3ZhciBnPUEucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gQT1udWxsLGd9KG9BKTooZz10ZygiaWZyYW1lIiksST0iamF2YSIrZWcrIjoiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsaWcuYXBwZW5kQ2hpbGQoZyksZy5zcmM9U3RyaW5nKEkpLChBPWcuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEEud3JpdGUoYWcoImRvY3VtZW50LkY9T2JqZWN0IikpLEEuY2xvc2UoKSxBLkYpO2Zvcih2YXIgQj1DZy5sZW5ndGg7Qi0tOylkZWxldGUgc2dbb2ddW0NnW0JdXTtyZXR1cm4gc2coKX07RWdbbmddPSEwO3ZhciBjZz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihBLGcpe3ZhciBJO3JldHVybiBudWxsIT09QT8ocmdbb2ddPUJnKEEpLEk9bmV3IHJnLHJnW29nXT1udWxsLElbbmddPUEpOkk9c2coKSx2b2lkIDA9PT1nP0k6UWcoSSxnKX0saGc9Y2csRGc9Yyx5Zz1HQSgidW5zY29wYWJsZXMiKSxmZz1BcnJheS5wcm90b3R5cGU7bnVsbD09ZmdbeWddJiZEZy5mKGZnLHlnLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aGcobnVsbCl9KTt2YXIgd2c9ZnVuY3Rpb24oQSl7ZmdbeWddW0FdPSEwfSx1Zz17fSxGZz1tLEdnPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiBGZy5pbnNwZWN0U291cmNlJiYoRmcuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gR2cuY2FsbChBKX0pO3ZhciBkZyxSZyxsZyxrZz1GZy5pbnNwZWN0U291cmNlLFVnPWtnLFNnPXIuV2Vha01hcCxOZz0iZnVuY3Rpb24iPT10eXBlb2YgU2cmJi9uYXRpdmUgY29kZS8udGVzdChVZyhTZykpLE1nPWgsWWc9SixIZz1QLHBnPW0sSmc9SWcsTGc9eEEsdmc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixLZz1yLldlYWtNYXA7aWYoTmd8fHBnLnN0YXRlKXt2YXIgeGc9cGcuc3RhdGV8fChwZy5zdGF0ZT1uZXcgS2cpLHFnPXhnLmdldCxtZz14Zy5oYXMsYmc9eGcuc2V0O2RnPWZ1bmN0aW9uKEEsZyl7aWYobWcuY2FsbCh4ZyxBKSl0aHJvdyBuZXcgVHlwZUVycm9yKHZnKTtyZXR1cm4gZy5mYWNhZGU9QSxiZy5jYWxsKHhnLEEsZyksZ30sUmc9ZnVuY3Rpb24oQSl7cmV0dXJuIHFnLmNhbGwoeGcsQSl8fHt9fSxsZz1mdW5jdGlvbihBKXtyZXR1cm4gbWcuY2FsbCh4ZyxBKX19ZWxzZXt2YXIgVGc9SmcoInN0YXRlIik7TGdbVGddPSEwLGRnPWZ1bmN0aW9uKEEsZyl7aWYoSGcoQSxUZykpdGhyb3cgbmV3IFR5cGVFcnJvcih2Zyk7cmV0dXJuIGcuZmFjYWRlPUEsWWcoQSxUZyxnKSxnfSxSZz1mdW5jdGlvbihBKXtyZXR1cm4gSGcoQSxUZyk/QVtUZ106e319LGxnPWZ1bmN0aW9uKEEpe3JldHVybiBIZyhBLFRnKX19dmFyIGpnPXtzZXQ6ZGcsZ2V0OlJnLGhhczpsZyxlbmZvcmNlOmZ1bmN0aW9uKEEpe3JldHVybiBsZyhBKT9SZyhBKTpkZyhBLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgSTtpZighTWcoZyl8fChJPVJnKGcpKS50eXBlIT09QSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitBKyIgcmVxdWlyZWQiKTtyZXR1cm4gSX19fSxaZz17fSxPZz17fSxXZz17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxWZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFhnPVZnJiYhV2cuY2FsbCh7MToyfSwxKTtPZy5mPVhnP2Z1bmN0aW9uKEEpe3ZhciBnPVZnKHRoaXMsQSk7cmV0dXJuISFnJiZnLmVudW1lcmFibGV9OldnO3ZhciBQZz1zLHpnPU9nLF9nPVksJGc9ZSxBST1sLGdJPVAsSUk9RixCST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1pnLmY9UGc/Qkk6ZnVuY3Rpb24oQSxnKXtpZihBPSRnKEEpLGc9QUkoZywhMCksSUkpdHJ5e3JldHVybiBCSShBLGcpfWNhdGNoKEkpe31pZihnSShBLGcpKXJldHVybiBfZyghemcuZi5jYWxsKEEsZyksQVtnXSl9O3ZhciBRST17ZXhwb3J0czp7fX0sQ0k9cixFST1KLGlJPVAsdEk9SyxvST1rZyxlST1qZy5nZXQsbkk9amcuZW5mb3JjZSxyST1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFFJLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFEsQz0hIUImJiEhQi51bnNhZmUsRT0hIUImJiEhQi5lbnVtZXJhYmxlLGk9ISFCJiYhIUIubm9UYXJnZXRHZXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEkmJigic3RyaW5nIiE9dHlwZW9mIGd8fGlJKEksIm5hbWUiKXx8RUkoSSwibmFtZSIsZyksKFE9bkkoSSkpLnNvdXJjZXx8KFEuc291cmNlPXJJLmpvaW4oInN0cmluZyI9PXR5cGVvZiBnP2c6IiIpKSksQSE9PUNJPyhDPyFpJiZBW2ddJiYoRT0hMCk6ZGVsZXRlIEFbZ10sRT9BW2ddPUk6RUkoQSxnLEkpKTpFP0FbZ109STp0SShnLEkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJmVJKHRoaXMpLnNvdXJjZXx8b0kodGhpcyl9KSk7dmFyIGFJPVFJLmV4cG9ydHMsc0k9e30sY0k9akEsaEk9WkEuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtzSS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gY0koQSxoSSl9O3ZhciBEST17fTtESS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIHlJLGZJLHdJLHVJPXNJLEZJPURJLEdJPWQsZEk9QkEoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBnPXVJLmYoR0koQSkpLEk9RkkuZjtyZXR1cm4gST9nLmNvbmNhdChJKEEpKTpnfSxSST1QLGxJPWRJLGtJPVpnLFVJPWMsU0k9ZyxOST0vI3xcLnByb3RvdHlwZVwuLyxNST1mdW5jdGlvbihBLGcpe3ZhciBJPUhJW1lJKEEpXTtyZXR1cm4gST09Skl8fEkhPXBJJiYoImZ1bmN0aW9uIj09dHlwZW9mIGc/U0koZyk6ISFnKX0sWUk9TUkubm9ybWFsaXplPWZ1bmN0aW9uKEEpe3JldHVybiBTdHJpbmcoQSkucmVwbGFjZShOSSwiLiIpLnRvTG93ZXJDYXNlKCl9LEhJPU1JLmRhdGE9e30scEk9TUkuTkFUSVZFPSJOIixKST1NSS5QT0xZRklMTD0iUCIsTEk9TUksdkk9cixLST1aZy5mLHhJPUoscUk9YUksbUk9SyxiST1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1sSShnKSxCPVVJLmYsUT1rSS5mLEM9MDtDPEkubGVuZ3RoO0MrKyl7dmFyIEU9SVtDXTtSSShBLEUpfHxCKEEsRSxRKGcsRSkpfX0sVEk9TEksakk9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGk9QS50YXJnZXQsdD1BLmdsb2JhbCxvPUEuc3RhdDtpZihJPXQ/dkk6bz92SVtpXXx8bUkoaSx7fSk6KHZJW2ldfHx7fSkucHJvdG90eXBlKWZvcihCIGluIGcpe2lmKEM9Z1tCXSxRPUEubm9UYXJnZXRHZXQ/KEU9S0koSSxCKSkmJkUudmFsdWU6SVtCXSwhVEkodD9COmkrKG8/Ii4iOiIjIikrQixBLmZvcmNlZCkmJnZvaWQgMCE9PVEpe2lmKHR5cGVvZiBDPT10eXBlb2YgUSljb250aW51ZTtiSShDLFEpfShBLnNoYW18fFEmJlEuc2hhbSkmJnhJKEMsInNoYW0iLCEwKSxxSShJLEIsQyxBKX19LFpJPSFnKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpLE9JPVAsV0k9VyxWST1aSSxYST1JZygiSUVfUFJPVE8iKSxQST1PYmplY3QucHJvdG90eXBlLHpJPVZJP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gQT1XSShBKSxPSShBLFhJKT9BW1hJXToiZnVuY3Rpb24iPT10eXBlb2YgQS5jb25zdHJ1Y3RvciYmQSBpbnN0YW5jZW9mIEEuY29uc3RydWN0b3I/QS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6QSBpbnN0YW5jZW9mIE9iamVjdD9QSTpudWxsfSxfST1nLCRJPXpJLEFCPUosZ0I9UCxJQj1HQSgiaXRlcmF0b3IiKSxCQj0hMTtbXS5rZXlzJiYoIm5leHQiaW4od0k9W10ua2V5cygpKT8oZkk9JEkoJEkod0kpKSkhPT1PYmplY3QucHJvdG90eXBlJiYoeUk9ZkkpOkJCPSEwKSwobnVsbD09eUl8fF9JKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiB5SVtJQl0uY2FsbChBKSE9PUF9KSkpJiYoeUk9e30pLGdCKHlJLElCKXx8QUIoeUksSUIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFFCPXtJdGVyYXRvclByb3RvdHlwZTp5SSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOkJCfSxDQj1jLmYsRUI9UCxpQj1HQSgidG9TdHJpbmdUYWciKSx0Qj1mdW5jdGlvbihBLGcsSSl7QSYmIUVCKEE9ST9BOkEucHJvdG90eXBlLGlCKSYmQ0IoQSxpQix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmd9KX0sb0I9UUIuSXRlcmF0b3JQcm90b3R5cGUsZUI9Y2csbkI9WSxyQj10QixhQj11ZyxzQj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjQj1oLGhCPWQsREI9ZnVuY3Rpb24oQSl7aWYoIWNCKEEpJiZudWxsIT09QSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyhBKSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIEF9LHlCPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGc9ITEsST17fTt0cnl7KEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLmNhbGwoSSxbXSksZz1JIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQil7fXJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBoQihJKSxEQihCKSxnP0EuY2FsbChJLEIpOkkuX19wcm90b19fPUIsSX19KCk6dm9pZCAwKSxmQj1qSSx3Qj1mdW5jdGlvbihBLGcsSSl7dmFyIEI9ZysiIEl0ZXJhdG9yIjtyZXR1cm4gQS5wcm90b3R5cGU9ZUIob0Ise25leHQ6bkIoMSxJKX0pLHJCKEEsQiwhMSksYUJbQl09c0IsQX0sdUI9ekksRkI9eUIsR0I9dEIsZEI9SixSQj1hSSxsQj11ZyxrQj1RQi5JdGVyYXRvclByb3RvdHlwZSxVQj1RQi5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFNCPUdBKCJpdGVyYXRvciIpLE5CPSJrZXlzIixNQj0idmFsdWVzIixZQj0iZW50cmllcyIsSEI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scEI9ZSxKQj13ZyxMQj11Zyx2Qj1qZyxLQj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt3QihJLGcsQik7dmFyIGksdCxvLGU9ZnVuY3Rpb24oQSl7aWYoQT09PVEmJmMpcmV0dXJuIGM7aWYoIVVCJiZBIGluIGEpcmV0dXJuIGFbQV07c3dpdGNoKEEpe2Nhc2UgTkI6Y2FzZSBNQjpjYXNlIFlCOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLEEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcyl9fSxuPWcrIiBJdGVyYXRvciIscj0hMSxhPUEucHJvdG90eXBlLHM9YVtTQl18fGFbIkBAaXRlcmF0b3IiXXx8USYmYVtRXSxjPSFVQiYmc3x8ZShRKSxoPSJBcnJheSI9PWcmJmEuZW50cmllc3x8cztpZihoJiYoaT11QihoLmNhbGwobmV3IEEpKSxrQiE9PU9iamVjdC5wcm90b3R5cGUmJmkubmV4dCYmKHVCKGkpIT09a0ImJihGQj9GQihpLGtCKToiZnVuY3Rpb24iIT10eXBlb2YgaVtTQl0mJmRCKGksU0IsSEIpKSxHQihpLG4sITApKSksUT09TUImJnMmJnMubmFtZSE9PU1CJiYocj0hMCxjPWZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0pLGFbU0JdIT09YyYmZEIoYSxTQixjKSxsQltnXT1jLFEpaWYodD17dmFsdWVzOmUoTUIpLGtleXM6Qz9jOmUoTkIpLGVudHJpZXM6ZShZQil9LEUpZm9yKG8gaW4gdCkoVUJ8fHJ8fCEobyBpbiBhKSkmJlJCKGEsbyx0W29dKTtlbHNlIGZCKHt0YXJnZXQ6Zyxwcm90bzohMCxmb3JjZWQ6VUJ8fHJ9LHQpO3JldHVybiB0fSx4Qj0iQXJyYXkgSXRlcmF0b3IiLHFCPXZCLnNldCxtQj12Qi5nZXR0ZXJGb3IoeEIpLGJCPUtCKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKEEsZyl7cUIodGhpcyx7dHlwZTp4Qix0YXJnZXQ6cEIoQSksaW5kZXg6MCxraW5kOmd9KX0pLChmdW5jdGlvbigpe3ZhciBBPW1CKHRoaXMpLGc9QS50YXJnZXQsST1BLmtpbmQsQj1BLmluZGV4Kys7cmV0dXJuIWd8fEI+PWcubGVuZ3RoPyhBLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1JP3t2YWx1ZTpCLGRvbmU6ITF9OiJ2YWx1ZXMiPT1JP3t2YWx1ZTpnW0JdLGRvbmU6ITF9Ont2YWx1ZTpbQixnW0JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKTtMQi5Bcmd1bWVudHM9TEIuQXJyYXksSkIoImtleXMiKSxKQigidmFsdWVzIiksSkIoImVudHJpZXMiKTt2YXIgVEI9e307VEJbR0EoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgakI9IltvYmplY3Qgel0iPT09U3RyaW5nKFRCKSxaQj1qQixPQj1CLFdCPUdBKCJ0b1N0cmluZ1RhZyIpLFZCPSJBcmd1bWVudHMiPT1PQihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLFhCPVpCP09COmZ1bmN0aW9uKEEpe3ZhciBnLEksQjtyZXR1cm4gdm9pZCAwPT09QT8iVW5kZWZpbmVkIjpudWxsPT09QT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihJPWZ1bmN0aW9uKEEsZyl7dHJ5e3JldHVybiBBW2ddfWNhdGNoKEkpe319KGc9T2JqZWN0KEEpLFdCKSk/STpWQj9PQihnKToiT2JqZWN0Ij09KEI9T0IoZykpJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jYWxsZWU/IkFyZ3VtZW50cyI6Qn0sUEI9WEIsekI9akI/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK1BCKHRoaXMpKyJdIn07akJ8fGFJKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIix6Qix7dW5zYWZlOiEwfSk7dmFyIF9CPXtleHBvcnRzOnt9fSwkQj1HQSgiaXRlcmF0b3IiKSxBUT0hMTt0cnl7dmFyIGdRPTAsSVE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWdRKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtBUT0hMH19O0lRWyRCXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKElRLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2goQnkpe312YXIgQlEsUVE9ZnVuY3Rpb24oQSxnKXtpZighZyYmIUFRKXJldHVybiExO3ZhciBJPSExO3RyeXt2YXIgQj17fTtCWyRCXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ST0hMH19fX0sQShCKX1jYXRjaChCeSl7fXJldHVybiBJfSxDUT0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3LEVRPUNRLGlRPXMsdFE9cixvUT1oLGVRPVAsblE9WEIsclE9SixhUT1hSSxzUT1jLmYsY1E9ekksaFE9eUIsRFE9R0EseVE9JCxmUT10US5JbnQ4QXJyYXksd1E9ZlEmJmZRLnByb3RvdHlwZSx1UT10US5VaW50OENsYW1wZWRBcnJheSxGUT11USYmdVEucHJvdG90eXBlLEdRPWZRJiZjUShmUSksZFE9d1EmJmNRKHdRKSxSUT1PYmplY3QucHJvdG90eXBlLGxRPVJRLmlzUHJvdG90eXBlT2Ysa1E9RFEoInRvU3RyaW5nVGFnIiksVVE9eVEoIlRZUEVEX0FSUkFZX1RBRyIpLFNRPUVRJiYhIWhRJiYiT3BlcmEiIT09blEodFEub3BlcmEpLE5RPSExLE1RPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sWVE9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fSxIUT1mdW5jdGlvbihBKXtpZighb1EoQSkpcmV0dXJuITE7dmFyIGc9blEoQSk7cmV0dXJuIGVRKE1RLGcpfHxlUShZUSxnKX07Zm9yKEJRIGluIE1RKXRRW0JRXXx8KFNRPSExKTtpZigoIVNRfHwiZnVuY3Rpb24iIT10eXBlb2YgR1F8fEdRPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEdRPWZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxTUSkpZm9yKEJRIGluIE1RKXRRW0JRXSYmaFEodFFbQlFdLEdRKTtpZigoIVNRfHwhZFF8fGRRPT09UlEpJiYoZFE9R1EucHJvdG90eXBlLFNRKSlmb3IoQlEgaW4gTVEpdFFbQlFdJiZoUSh0UVtCUV0ucHJvdG90eXBlLGRRKTtpZihTUSYmY1EoRlEpIT09ZFEmJmhRKEZRLGRRKSxpUSYmIWVRKGRRLGtRKSlmb3IoQlEgaW4gTlE9ITAsc1EoZFEsa1Ese2dldDpmdW5jdGlvbigpe3JldHVybiBvUSh0aGlzKT90aGlzW1VRXTp2b2lkIDB9fSksTVEpdFFbQlFdJiZyUSh0UVtCUV0sVVEsQlEpO3ZhciBwUT17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpTUSxUWVBFRF9BUlJBWV9UQUc6TlEmJlVRLGFUeXBlZEFycmF5OmZ1bmN0aW9uKEEpe2lmKEhRKEEpKXJldHVybiBBO3Rocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGFUeXBlZEFycmF5Q29uc3RydWN0b3I6ZnVuY3Rpb24oQSl7aWYoaFEpe2lmKGxRLmNhbGwoR1EsQSkpcmV0dXJuIEF9ZWxzZSBmb3IodmFyIGcgaW4gTVEpaWYoZVEoTVEsQlEpKXt2YXIgST10UVtnXTtpZihJJiYoQT09PUl8fGxRLmNhbGwoSSxBKSkpcmV0dXJuIEF9dGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbihBLGcsSSl7aWYoaVEpe2lmKEkpZm9yKHZhciBCIGluIE1RKXt2YXIgUT10UVtCXTtpZihRJiZlUShRLnByb3RvdHlwZSxBKSl0cnl7ZGVsZXRlIFEucHJvdG90eXBlW0FdfWNhdGNoKEJ5KXt9fWRRW0FdJiYhSXx8YVEoZFEsQSxJP2c6U1EmJndRW0FdfHxnKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aWYoaVEpe2lmKGhRKXtpZihJKWZvcihCIGluIE1RKWlmKChRPXRRW0JdKSYmZVEoUSxBKSl0cnl7ZGVsZXRlIFFbQV19Y2F0Y2goQnkpe31pZihHUVtBXSYmIUkpcmV0dXJuO3RyeXtyZXR1cm4gYVEoR1EsQSxJP2c6U1EmJkdRW0FdfHxnKX1jYXRjaChCeSl7fX1mb3IoQiBpbiBNUSkhKFE9dFFbQl0pfHxRW0FdJiYhSXx8YVEoUSxBLGcpfX0saXNWaWV3OmZ1bmN0aW9uKEEpe2lmKCFvUShBKSlyZXR1cm4hMTt2YXIgZz1uUShBKTtyZXR1cm4iRGF0YVZpZXciPT09Z3x8ZVEoTVEsZyl8fGVRKFlRLGcpfSxpc1R5cGVkQXJyYXk6SFEsVHlwZWRBcnJheTpHUSxUeXBlZEFycmF5UHJvdG90eXBlOmRRfSxKUT1yLExRPWcsdlE9UVEsS1E9cFEuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyx4UT1KUS5BcnJheUJ1ZmZlcixxUT1KUS5JbnQ4QXJyYXksbVE9IUtRfHwhTFEoKGZ1bmN0aW9uKCl7cVEoMSl9KSl8fCFMUSgoZnVuY3Rpb24oKXtuZXcgcVEoLTEpfSkpfHwhdlEoKGZ1bmN0aW9uKEEpe25ldyBxUSxuZXcgcVEobnVsbCksbmV3IHFRKDEuNSksbmV3IHFRKEEpfSksITApfHxMUSgoZnVuY3Rpb24oKXtyZXR1cm4gMSE9PW5ldyBxUShuZXcgeFEoMiksMSx2b2lkIDApLmxlbmd0aH0pKSxiUT1hSSxUUT1mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCIGluIGcpYlEoQSxCLGdbQl0sSSk7cmV0dXJuIEF9LGpRPWZ1bmN0aW9uKEEsZyxJKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhJP0krIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiBBfSxaUT1sQSxPUT1TQSxXUT1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBnPVpRKEEpLEk9T1EoZyk7aWYoZyE9PUkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIG9yIGluZGV4Iik7cmV0dXJuIEl9LFZRPU1hdGguYWJzLFhRPU1hdGgucG93LFBRPU1hdGguZmxvb3IselE9TWF0aC5sb2csX1E9TWF0aC5MTjIsJFE9VyxBQz1IQSxnQz1TQSxJQz1mdW5jdGlvbihBKXtmb3IodmFyIGc9JFEodGhpcyksST1nQyhnLmxlbmd0aCksQj1hcmd1bWVudHMubGVuZ3RoLFE9QUMoQj4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsSSksQz1CPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxFPXZvaWQgMD09PUM/STpBQyhDLEkpO0U+UTspZ1tRKytdPUE7cmV0dXJuIGd9LEJDPXIsUUM9cyxDQz1DUSxFQz1KLGlDPVRRLHRDPWcsb0M9alEsZUM9bEEsbkM9U0EsckM9V1EsYUM9e3BhY2s6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFEsQyxFPW5ldyBBcnJheShJKSxpPTgqSS1nLTEsdD0oMTw8aSktMSxvPXQ+PjEsZT0yMz09PWc/WFEoMiwtMjQpLVhRKDIsLTc3KTowLG49QTwwfHwwPT09QSYmMS9BPDA/MTowLHI9MDtmb3IoKEE9VlEoQSkpIT1BfHxBPT09MS8wPyhRPUEhPUE/MTowLEI9dCk6KEI9UFEoelEoQSkvX1EpLEEqKEM9WFEoMiwtQikpPDEmJihCLS0sQyo9MiksKEErPUIrbz49MT9lL0M6ZSpYUSgyLDEtbykpKkM+PTImJihCKyssQy89MiksQitvPj10PyhRPTAsQj10KTpCK28+PTE/KFE9KEEqQy0xKSpYUSgyLGcpLEIrPW8pOihRPUEqWFEoMixvLTEpKlhRKDIsZyksQj0wKSk7Zz49ODtFW3IrK109MjU1JlEsUS89MjU2LGctPTgpO2ZvcihCPUI8PGd8USxpKz1nO2k+MDtFW3IrK109MjU1JkIsQi89MjU2LGktPTgpO3JldHVybiBFWy0tcl18PTEyOCpuLEV9LHVucGFjazpmdW5jdGlvbihBLGcpe3ZhciBJLEI9QS5sZW5ndGgsUT04KkItZy0xLEM9KDE8PFEpLTEsRT1DPj4xLGk9US03LHQ9Qi0xLG89QVt0LS1dLGU9MTI3Jm87Zm9yKG8+Pj03O2k+MDtlPTI1NiplK0FbdF0sdC0tLGktPTgpO2ZvcihJPWUmKDE8PC1pKS0xLGU+Pj0taSxpKz1nO2k+MDtJPTI1NipJK0FbdF0sdC0tLGktPTgpO2lmKDA9PT1lKWU9MS1FO2Vsc2V7aWYoZT09PUMpcmV0dXJuIEk/TmFOOm8/LTEvMDoxLzA7SSs9WFEoMixnKSxlLT1FfXJldHVybihvPy0xOjEpKkkqWFEoMixlLWcpfX0sc0M9ekksY0M9eUIsaEM9c0kuZixEQz1jLmYseUM9SUMsZkM9dEIsd0M9amcuZ2V0LHVDPWpnLnNldCxGQz0iQXJyYXlCdWZmZXIiLEdDPSJEYXRhVmlldyIsZEM9InByb3RvdHlwZSIsUkM9Ildyb25nIGluZGV4IixsQz1CQ1tGQ10sa0M9bEMsVUM9QkNbR0NdLFNDPVVDJiZVQ1tkQ10sTkM9T2JqZWN0LnByb3RvdHlwZSxNQz1CQy5SYW5nZUVycm9yLFlDPWFDLnBhY2ssSEM9YUMudW5wYWNrLHBDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQV19LEpDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NV19LExDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NSxBPj4xNiYyNTUsQT4+MjQmMjU1XX0sdkM9ZnVuY3Rpb24oQSl7cmV0dXJuIEFbM108PDI0fEFbMl08PDE2fEFbMV08PDh8QVswXX0sS0M9ZnVuY3Rpb24oQSl7cmV0dXJuIFlDKEEsMjMsNCl9LHhDPWZ1bmN0aW9uKEEpe3JldHVybiBZQyhBLDUyLDgpfSxxQz1mdW5jdGlvbihBLGcpe0RDKEFbZENdLGcse2dldDpmdW5jdGlvbigpe3JldHVybiB3Qyh0aGlzKVtnXX19KX0sbUM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ckMoSSksQz13QyhBKTtpZihRK2c+Qy5ieXRlTGVuZ3RoKXRocm93IE1DKFJDKTt2YXIgRT13QyhDLmJ1ZmZlcikuYnl0ZXMsaT1RK0MuYnl0ZU9mZnNldCx0PUUuc2xpY2UoaSxpK2cpO3JldHVybiBCP3Q6dC5yZXZlcnNlKCl9LGJDPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1yQyhJKSxpPXdDKEEpO2lmKEUrZz5pLmJ5dGVMZW5ndGgpdGhyb3cgTUMoUkMpO2Zvcih2YXIgdD13QyhpLmJ1ZmZlcikuYnl0ZXMsbz1FK2kuYnl0ZU9mZnNldCxlPUIoK1EpLG49MDtuPGc7bisrKXRbbytuXT1lW0M/bjpnLW4tMV19O2lmKENDKXtpZighdEMoKGZ1bmN0aW9uKCl7bEMoMSl9KSl8fCF0QygoZnVuY3Rpb24oKXtuZXcgbEMoLTEpfSkpfHx0QygoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxDLG5ldyBsQygxLjUpLG5ldyBsQyhOYU4pLGxDLm5hbWUhPUZDfSkpKXtmb3IodmFyIFRDLGpDPShrQz1mdW5jdGlvbihBKXtyZXR1cm4gb0ModGhpcyxrQyksbmV3IGxDKHJDKEEpKX0pW2RDXT1sQ1tkQ10sWkM9aEMobEMpLE9DPTA7WkMubGVuZ3RoPk9DOykoVEM9WkNbT0MrK10paW4ga0N8fEVDKGtDLFRDLGxDW1RDXSk7akMuY29uc3RydWN0b3I9a0N9Y0MmJnNDKFNDKSE9PU5DJiZjQyhTQyxOQyk7dmFyIFdDPW5ldyBVQyhuZXcga0MoMikpLFZDPVNDLnNldEludDg7V0Muc2V0SW50OCgwLDIxNDc0ODM2NDgpLFdDLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhV0MuZ2V0SW50OCgwKSYmV0MuZ2V0SW50OCgxKXx8aUMoU0Mse3NldEludDg6ZnVuY3Rpb24oQSxnKXtWQy5jYWxsKHRoaXMsQSxnPDwyND4+MjQpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe1ZDLmNhbGwodGhpcyxBLGc8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBrQz1mdW5jdGlvbihBKXtvQyh0aGlzLGtDLEZDKTt2YXIgZz1yQyhBKTt1Qyh0aGlzLHtieXRlczp5Qy5jYWxsKG5ldyBBcnJheShnKSwwKSxieXRlTGVuZ3RoOmd9KSxRQ3x8KHRoaXMuYnl0ZUxlbmd0aD1nKX0sVUM9ZnVuY3Rpb24oQSxnLEkpe29DKHRoaXMsVUMsR0MpLG9DKEEsa0MsR0MpO3ZhciBCPXdDKEEpLmJ5dGVMZW5ndGgsUT1lQyhnKTtpZihRPDB8fFE+Qil0aHJvdyBNQygiV3Jvbmcgb2Zmc2V0Iik7aWYoUSsoST12b2lkIDA9PT1JP0ItUTpuQyhJKSk+Qil0aHJvdyBNQygiV3JvbmcgbGVuZ3RoIik7dUModGhpcyx7YnVmZmVyOkEsYnl0ZUxlbmd0aDpJLGJ5dGVPZmZzZXQ6UX0pLFFDfHwodGhpcy5idWZmZXI9QSx0aGlzLmJ5dGVMZW5ndGg9SSx0aGlzLmJ5dGVPZmZzZXQ9USl9LFFDJiYocUMoa0MsImJ5dGVMZW5ndGgiKSxxQyhVQywiYnVmZmVyIikscUMoVUMsImJ5dGVMZW5ndGgiKSxxQyhVQywiYnl0ZU9mZnNldCIpKSxpQyhVQ1tkQ10se2dldEludDg6ZnVuY3Rpb24oQSl7cmV0dXJuIG1DKHRoaXMsMSxBKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihBKXtyZXR1cm4gbUModGhpcywxLEEpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbihBKXt2YXIgZz1tQyh0aGlzLDIsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuKGdbMV08PDh8Z1swXSk8PDE2Pj4xNn0sZ2V0VWludDE2OmZ1bmN0aW9uKEEpe3ZhciBnPW1DKHRoaXMsMixBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZ1sxXTw8OHxnWzBdfSxnZXRJbnQzMjpmdW5jdGlvbihBKXtyZXR1cm4gdkMobUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKX0sZ2V0VWludDMyOmZ1bmN0aW9uKEEpe3JldHVybiB2QyhtQyh0aGlzLDQsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihBKXtyZXR1cm4gSEMobUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDIzKX0sZ2V0RmxvYXQ2NDpmdW5jdGlvbihBKXtyZXR1cm4gSEMobUModGhpcyw4LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDUyKX0sc2V0SW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRJbnQxNjpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMixBLEpDLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRVaW50MTY6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDIsQSxKQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxMQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDMyOmZ1bmN0aW9uKEEsZyl7YkModGhpcyw0LEEsTEMsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxLQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihBLGcpe2JDKHRoaXMsOCxBLHhDLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfX0pO2ZDKGtDLEZDKSxmQyhVQyxHQyk7dmFyIFhDPXtBcnJheUJ1ZmZlcjprQyxEYXRhVmlldzpVQ30sUEM9bEEsekM9ZnVuY3Rpb24oQSl7dmFyIGc9UEMoQSk7aWYoZzwwKXRocm93IFJhbmdlRXJyb3IoIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMCIpO3JldHVybiBnfSxfQz1mdW5jdGlvbihBLGcpe3ZhciBJPXpDKEEpO2lmKEklZyl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBvZmZzZXQiKTtyZXR1cm4gSX0sJEM9WEIsQUU9dWcsZ0U9R0EoIml0ZXJhdG9yIiksSUU9ZnVuY3Rpb24oQSl7aWYobnVsbCE9QSlyZXR1cm4gQVtnRV18fEFbIkBAaXRlcmF0b3IiXXx8QUVbJEMoQSldfSxCRT11ZyxRRT1HQSgiaXRlcmF0b3IiKSxDRT1BcnJheS5wcm90b3R5cGUsRUU9ZnVuY3Rpb24oQSl7cmV0dXJuIHZvaWQgMCE9PUEmJihCRS5BcnJheT09PUF8fENFW1FFXT09PUEpfSxpRT1mdW5jdGlvbihBKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKEEpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gQX0sdEU9aUUsb0U9ZnVuY3Rpb24oQSxnLEkpe2lmKHRFKEEpLHZvaWQgMD09PWcpcmV0dXJuIEE7c3dpdGNoKEkpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5jYWxsKGcpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBBLmNhbGwoZyxJKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBBLmNhbGwoZyxJLEIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKEksQixRKXtyZXR1cm4gQS5jYWxsKGcsSSxCLFEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShnLGFyZ3VtZW50cyl9fSxlRT1XLG5FPVNBLHJFPUlFLGFFPUVFLHNFPW9FLGNFPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsaEU9QixERT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihBKXtyZXR1cm4iQXJyYXkiPT1oRShBKX0seUU9aCxmRT1ERSx3RT1HQSgic3BlY2llcyIpLHVFPWZ1bmN0aW9uKEEsZyl7dmFyIEk7cmV0dXJuIGZFKEEpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKEk9QS5jb25zdHJ1Y3Rvcil8fEkhPT1BcnJheSYmIWZFKEkucHJvdG90eXBlKT95RShJKSYmbnVsbD09PShJPUlbd0VdKSYmKEk9dm9pZCAwKTpJPXZvaWQgMCksbmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoMD09PWc/MDpnKX0sRkU9b0UsR0U9RSxkRT1XLFJFPVNBLGxFPXVFLGtFPVtdLnB1c2gsVUU9ZnVuY3Rpb24oQSl7dmFyIGc9MT09QSxJPTI9PUEsQj0zPT1BLFE9ND09QSxDPTY9PUEsRT03PT1BLGk9NT09QXx8QztyZXR1cm4gZnVuY3Rpb24odCxvLGUsbil7Zm9yKHZhciByLGEscz1kRSh0KSxjPUdFKHMpLGg9RkUobyxlLDMpLEQ9UkUoYy5sZW5ndGgpLHk9MCxmPW58fGxFLHc9Zz9mKHQsRCk6SXx8RT9mKHQsMCk6dm9pZCAwO0Q+eTt5KyspaWYoKGl8fHkgaW4gYykmJihhPWgocj1jW3ldLHkscyksQSkpaWYoZyl3W3ldPWE7ZWxzZSBpZihhKXN3aXRjaChBKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiByO2Nhc2UgNjpyZXR1cm4geTtjYXNlIDI6a0UuY2FsbCh3LHIpfWVsc2Ugc3dpdGNoKEEpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6a0UuY2FsbCh3LHIpfXJldHVybiBDPy0xOkJ8fFE/UTp3fX0sU0U9e2ZvckVhY2g6VUUoMCksbWFwOlVFKDEpLGZpbHRlcjpVRSgyKSxzb21lOlVFKDMpLGV2ZXJ5OlVFKDQpLGZpbmQ6VUUoNSksZmluZEluZGV4OlVFKDYpLGZpbHRlck91dDpVRSg3KX0sTkU9QkEsTUU9YyxZRT1zLEhFPUdBKCJzcGVjaWVzIikscEU9ZnVuY3Rpb24oQSl7dmFyIGc9TkUoQSksST1NRS5mO1lFJiZnJiYhZ1tIRV0mJkkoZyxIRSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxKRT1oLExFPXlCLHZFPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRO3JldHVybiBMRSYmImZ1bmN0aW9uIj09dHlwZW9mKEI9Zy5jb25zdHJ1Y3RvcikmJkIhPT1JJiZKRShRPUIucHJvdG90eXBlKSYmUSE9PUkucHJvdG90eXBlJiZMRShBLFEpLEF9LEtFPWpJLHhFPXIscUU9cyxtRT1tUSxiRT1wUSxURT1YQyxqRT1qUSxaRT1ZLE9FPUosV0U9U0EsVkU9V1EsWEU9X0MsUEU9bCx6RT1QLF9FPVhCLCRFPWgsQWk9Y2csZ2k9eUIsSWk9c0kuZixCaT1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEUsaT1lRShBKSx0PWFyZ3VtZW50cy5sZW5ndGgsbz10PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxlPXZvaWQgMCE9PW8sbj1yRShpKTtpZihudWxsIT1uJiYhYUUobikpZm9yKEU9KEM9bi5jYWxsKGkpKS5uZXh0LGk9W107IShRPUUuY2FsbChDKSkuZG9uZTspaS5wdXNoKFEudmFsdWUpO2ZvcihlJiZ0PjImJihvPXNFKG8sYXJndW1lbnRzWzJdLDIpKSxJPW5FKGkubGVuZ3RoKSxCPW5ldyhjRSh0aGlzKSkoSSksZz0wO0k+ZztnKyspQltnXT1lP28oaVtnXSxnKTppW2ddO3JldHVybiBCfSxRaT1TRS5mb3JFYWNoLENpPXBFLEVpPWMsaWk9WmcsdGk9dkUsb2k9amcuZ2V0LGVpPWpnLnNldCxuaT1FaS5mLHJpPWlpLmYsYWk9TWF0aC5yb3VuZCxzaT14RS5SYW5nZUVycm9yLGNpPVRFLkFycmF5QnVmZmVyLGhpPVRFLkRhdGFWaWV3LERpPWJFLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MseWk9YkUuVFlQRURfQVJSQVlfVEFHLGZpPWJFLlR5cGVkQXJyYXksd2k9YkUuVHlwZWRBcnJheVByb3RvdHlwZSx1aT1iRS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLEZpPWJFLmlzVHlwZWRBcnJheSxHaT0iQllURVNfUEVSX0VMRU1FTlQiLGRpPSJXcm9uZyBsZW5ndGgiLFJpPWZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTAsQj1nLmxlbmd0aCxRPW5ldyh1aShBKSkoQik7Qj5JOylRW0ldPWdbSSsrXTtyZXR1cm4gUX0sbGk9ZnVuY3Rpb24oQSxnKXtuaShBLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBvaSh0aGlzKVtnXX19KX0sa2k9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuIEEgaW5zdGFuY2VvZiBjaXx8IkFycmF5QnVmZmVyIj09KGc9X0UoQSkpfHwiU2hhcmVkQXJyYXlCdWZmZXIiPT1nfSxVaT1mdW5jdGlvbihBLGcpe3JldHVybiBGaShBKSYmInN5bWJvbCIhPXR5cGVvZiBnJiZnIGluIEEmJlN0cmluZygrZyk9PVN0cmluZyhnKX0sU2k9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gVWkoQSxnPVBFKGcsITApKT9aRSgyLEFbZ10pOnJpKEEsZyl9LE5pPWZ1bmN0aW9uKEEsZyxJKXtyZXR1cm4hKFVpKEEsZz1QRShnLCEwKSkmJiRFKEkpJiZ6RShJLCJ2YWx1ZSIpKXx8ekUoSSwiZ2V0Iil8fHpFKEksInNldCIpfHxJLmNvbmZpZ3VyYWJsZXx8ekUoSSwid3JpdGFibGUiKSYmIUkud3JpdGFibGV8fHpFKEksImVudW1lcmFibGUiKSYmIUkuZW51bWVyYWJsZT9uaShBLGcsSSk6KEFbZ109SS52YWx1ZSxBKX07cUU/KERpfHwoaWkuZj1TaSxFaS5mPU5pLGxpKHdpLCJidWZmZXIiKSxsaSh3aSwiYnl0ZU9mZnNldCIpLGxpKHdpLCJieXRlTGVuZ3RoIiksbGkod2ksImxlbmd0aCIpKSxLRSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFEaX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpTaSxkZWZpbmVQcm9wZXJ0eTpOaX0pLF9CLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPUEubWF0Y2goL1xkKyQvKVswXS84LFE9QSsoST8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsQz0iZ2V0IitBLEU9InNldCIrQSxpPXhFW1FdLHQ9aSxvPXQmJnQucHJvdG90eXBlLGU9e30sbj1mdW5jdGlvbihBLGcpe25pKEEsZyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKEEsZyl7dmFyIEk9b2koQSk7cmV0dXJuIEkudmlld1tDXShnKkIrSS5ieXRlT2Zmc2V0LCEwKX0odGhpcyxnKX0sc2V0OmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihBLGcsUSl7dmFyIEM9b2koQSk7SSYmKFE9KFE9YWkoUSkpPDA/MDpRPjI1NT8yNTU6MjU1JlEpLEMudmlld1tFXShnKkIrQy5ieXRlT2Zmc2V0LFEsITApfSh0aGlzLGcsQSl9LGVudW1lcmFibGU6ITB9KX07RGk/bUUmJih0PWcoKGZ1bmN0aW9uKEEsZyxJLEMpe3JldHVybiBqRShBLHQsUSksdGkoJEUoZyk/a2koZyk/dm9pZCAwIT09Qz9uZXcgaShnLFhFKEksQiksQyk6dm9pZCAwIT09ST9uZXcgaShnLFhFKEksQikpOm5ldyBpKGcpOkZpKGcpP1JpKHQsZyk6QmkuY2FsbCh0LGcpOm5ldyBpKFZFKGcpKSxBLHQpfSkpLGdpJiZnaSh0LGZpKSxRaShJaShpKSwoZnVuY3Rpb24oQSl7QSBpbiB0fHxPRSh0LEEsaVtBXSl9KSksdC5wcm90b3R5cGU9byk6KHQ9ZygoZnVuY3Rpb24oQSxnLEksQyl7akUoQSx0LFEpO3ZhciBFLGksbyxlPTAscj0wO2lmKCRFKGcpKXtpZigha2koZykpcmV0dXJuIEZpKGcpP1JpKHQsZyk6QmkuY2FsbCh0LGcpO0U9ZyxyPVhFKEksQik7dmFyIGE9Zy5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PUMpe2lmKGElQil0aHJvdyBzaShkaSk7aWYoKGk9YS1yKTwwKXRocm93IHNpKGRpKX1lbHNlIGlmKChpPVdFKEMpKkIpK3I+YSl0aHJvdyBzaShkaSk7bz1pL0J9ZWxzZSBvPVZFKGcpLEU9bmV3IGNpKGk9bypCKTtmb3IoZWkoQSx7YnVmZmVyOkUsYnl0ZU9mZnNldDpyLGJ5dGVMZW5ndGg6aSxsZW5ndGg6byx2aWV3Om5ldyBoaShFKX0pO2U8bzspbihBLGUrKyl9KSksZ2kmJmdpKHQsZmkpLG89dC5wcm90b3R5cGU9QWkod2kpKSxvLmNvbnN0cnVjdG9yIT09dCYmT0UobywiY29uc3RydWN0b3IiLHQpLHlpJiZPRShvLHlpLFEpLGVbUV09dCxLRSh7Z2xvYmFsOiEwLGZvcmNlZDp0IT1pLHNoYW06IURpfSxlKSxHaSBpbiB0fHxPRSh0LEdpLEIpLEdpIGluIG98fE9FKG8sR2ksQiksQ2koUSl9KTpfQi5leHBvcnRzPWZ1bmN0aW9uKCl7fTt2YXIgTWk9X0IuZXhwb3J0cztNaSgiVWludDgiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKTt2YXIgWWk9VyxIaT1IQSxwaT1TQSxKaT1NYXRoLm1pbixMaT1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbihBLGcpe3ZhciBJPVlpKHRoaXMpLEI9cGkoSS5sZW5ndGgpLFE9SGkoQSxCKSxDPUhpKGcsQiksRT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxpPUppKCh2b2lkIDA9PT1FP0I6SGkoRSxCKSktQyxCLVEpLHQ9MTtmb3IoQzxRJiZRPEMraSYmKHQ9LTEsQys9aS0xLFErPWktMSk7aS0tID4wOylDIGluIEk/SVtRXT1JW0NdOmRlbGV0ZSBJW1FdLFErPXQsQys9dDtyZXR1cm4gSX0sdmk9TGksS2k9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImNvcHlXaXRoaW4iLChmdW5jdGlvbihBLGcpe3JldHVybiB2aS5jYWxsKEtpKHRoaXMpLEEsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSk7dmFyIHhpPVNFLmV2ZXJ5LHFpPXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJldmVyeSIsKGZ1bmN0aW9uKEEpe3JldHVybiB4aShxaSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgbWk9SUMsYmk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbGwiLChmdW5jdGlvbihBKXtyZXR1cm4gbWkuYXBwbHkoYmkodGhpcyksYXJndW1lbnRzKX0pKTt2YXIgVGk9ZCxqaT1pRSxaaT1HQSgic3BlY2llcyIpLE9pPWZ1bmN0aW9uKEEsZyl7dmFyIEksQj1UaShBKS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09Qnx8bnVsbD09KEk9VGkoQilbWmldKT9nOmppKEkpfSxXaT1wUS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLFZpPU9pLFhpPVNFLmZpbHRlcixQaT1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1WaShBLEEuY29uc3RydWN0b3IpLEI9MCxRPWcubGVuZ3RoLEM9bmV3KFdpKEkpKShRKTtRPkI7KUNbQl09Z1tCKytdO3JldHVybiBDfSx6aT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsdGVyIiwoZnVuY3Rpb24oQSl7dmFyIGc9WGkoemkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIFBpKHRoaXMsZyl9KSk7dmFyIF9pPVNFLmZpbmQsJGk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbmQiLChmdW5jdGlvbihBKXtyZXR1cm4gX2koJGkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIEF0PVNFLmZpbmRJbmRleCxndD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZEluZGV4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIEF0KGd0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBJdD1TRS5mb3JFYWNoLEJ0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmb3JFYWNoIiwoZnVuY3Rpb24oQSl7SXQoQnQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIFF0PUtBLmluY2x1ZGVzLEN0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJpbmNsdWRlcyIsKGZ1bmN0aW9uKEEpe3JldHVybiBRdChDdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgRXQ9S0EuaW5kZXhPZixpdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiaW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBFdChpdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgdHQ9cixvdD1wUSxldD1iQixudD1HQSgiaXRlcmF0b3IiKSxydD10dC5VaW50OEFycmF5LGF0PWV0LnZhbHVlcyxzdD1ldC5rZXlzLGN0PWV0LmVudHJpZXMsaHQ9b3QuYVR5cGVkQXJyYXksRHQ9b3QuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCx5dD1ydCYmcnQucHJvdG90eXBlW250XSxmdD0hIXl0JiYoInZhbHVlcyI9PXl0Lm5hbWV8fG51bGw9PXl0Lm5hbWUpLHd0PWZ1bmN0aW9uKCl7cmV0dXJuIGF0LmNhbGwoaHQodGhpcykpfTtEdCgiZW50cmllcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN0LmNhbGwoaHQodGhpcykpfSkpLER0KCJrZXlzIiwoZnVuY3Rpb24oKXtyZXR1cm4gc3QuY2FsbChodCh0aGlzKSl9KSksRHQoInZhbHVlcyIsd3QsIWZ0KSxEdChudCx3dCwhZnQpO3ZhciB1dD1wUS5hVHlwZWRBcnJheSxGdD1bXS5qb2luOygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJqb2luIiwoZnVuY3Rpb24oQSl7cmV0dXJuIEZ0LmFwcGx5KHV0KHRoaXMpLGFyZ3VtZW50cyl9KSk7dmFyIEd0PWcsZHQ9ZnVuY3Rpb24oQSxnKXt2YXIgST1bXVtBXTtyZXR1cm4hIUkmJkd0KChmdW5jdGlvbigpe0kuY2FsbChudWxsLGd8fGZ1bmN0aW9uKCl7dGhyb3cgMX0sMSl9KSl9LFJ0PWUsbHQ9bEEsa3Q9U0EsVXQ9ZHQsU3Q9TWF0aC5taW4sTnQ9W10ubGFzdEluZGV4T2YsTXQ9ISFOdCYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxZdD1VdCgibGFzdEluZGV4T2YiKSxIdD1NdHx8IVl0P2Z1bmN0aW9uKEEpe2lmKE10KXJldHVybiBOdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGc9UnQodGhpcyksST1rdChnLmxlbmd0aCksQj1JLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKEI9U3QoQixsdChhcmd1bWVudHNbMV0pKSksQjwwJiYoQj1JK0IpO0I+PTA7Qi0tKWlmKEIgaW4gZyYmZ1tCXT09PUEpcmV0dXJuIEJ8fDA7cmV0dXJuLTF9Ok50LHB0PUh0LEp0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJsYXN0SW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBwdC5hcHBseShKdCh0aGlzKSxhcmd1bWVudHMpfSkpO3ZhciBMdD1TRS5tYXAsdnQ9T2ksS3Q9cFEuYVR5cGVkQXJyYXkseHQ9cFEuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgibWFwIiwoZnVuY3Rpb24oQSl7cmV0dXJuIEx0KEt0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyh4dCh2dChBLEEuY29uc3RydWN0b3IpKSkoZyl9KSl9KSk7dmFyIHF0PWlFLG10PVcsYnQ9RSxUdD1TQSxqdD1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIsUSl7cXQoSSk7dmFyIEM9bXQoZyksRT1idChDKSxpPVR0KEMubGVuZ3RoKSx0PUE/aS0xOjAsbz1BPy0xOjE7aWYoQjwyKWZvcig7Oyl7aWYodCBpbiBFKXtRPUVbdF0sdCs9bzticmVha31pZih0Kz1vLEE/dDwwOmk8PXQpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtBP3Q+PTA6aT50O3QrPW8pdCBpbiBFJiYoUT1JKFEsRVt0XSx0LEMpKTtyZXR1cm4gUX19LFp0PXtsZWZ0Omp0KCExKSxyaWdodDpqdCghMCl9LE90PVp0LmxlZnQsV3Q9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInJlZHVjZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBPdChXdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBWdD1adC5yaWdodCxYdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgicmVkdWNlUmlnaHQiLChmdW5jdGlvbihBKXtyZXR1cm4gVnQoWHQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgUHQ9cFEuYVR5cGVkQXJyYXksenQ9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxfdD1NYXRoLmZsb29yO3p0KCJyZXZlcnNlIiwoZnVuY3Rpb24oKXtmb3IodmFyIEEsZz10aGlzLEk9UHQoZykubGVuZ3RoLEI9X3QoSS8yKSxRPTA7UTxCOylBPWdbUV0sZ1tRKytdPWdbLS1JXSxnW0ldPUE7cmV0dXJuIGd9KSk7dmFyICR0PVNBLEFvPV9DLGdvPVcsSW89cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNldCIsKGZ1bmN0aW9uKEEpe0lvKHRoaXMpO3ZhciBnPUFvKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDEpLEk9dGhpcy5sZW5ndGgsQj1nbyhBKSxRPSR0KEIubGVuZ3RoKSxDPTA7aWYoUStnPkkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIik7Zm9yKDtDPFE7KXRoaXNbZytDXT1CW0MrK119KSxnKChmdW5jdGlvbigpe25ldyBJbnQ4QXJyYXkoMSkuc2V0KHt9KX0pKSk7dmFyIEJvPU9pLFFvPXBRLmFUeXBlZEFycmF5LENvPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsRW89W10uc2xpY2U7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNsaWNlIiwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9RW8uY2FsbChRbyh0aGlzKSxBLGcpLEI9Qm8odGhpcyx0aGlzLmNvbnN0cnVjdG9yKSxRPTAsQz1JLmxlbmd0aCxFPW5ldyhDbyhCKSkoQyk7Qz5ROylFW1FdPUlbUSsrXTtyZXR1cm4gRX0pLGcoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpKTt2YXIgaW89U0Uuc29tZSx0bz1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29tZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBpbyh0byh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgb289cFEuYVR5cGVkQXJyYXksZW89W10uc29ydDsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29ydCIsKGZ1bmN0aW9uKEEpe3JldHVybiBlby5jYWxsKG9vKHRoaXMpLEEpfSkpO3ZhciBubz1TQSxybz1IQSxhbz1PaSxzbz1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic3ViYXJyYXkiLChmdW5jdGlvbihBLGcpe3ZhciBJPXNvKHRoaXMpLEI9SS5sZW5ndGgsUT1ybyhBLEIpO3JldHVybiBuZXcoYW8oSSxJLmNvbnN0cnVjdG9yKSkoSS5idWZmZXIsSS5ieXRlT2Zmc2V0K1EqSS5CWVRFU19QRVJfRUxFTUVOVCxubygodm9pZCAwPT09Zz9COnJvKGcsQikpLVEpKX0pKTt2YXIgY289cFEsaG89ZyxEbz1yLkludDhBcnJheSx5bz1jby5hVHlwZWRBcnJheSxmbz1jby5leHBvcnRUeXBlZEFycmF5TWV0aG9kLHdvPVtdLnRvTG9jYWxlU3RyaW5nLHVvPVtdLnNsaWNlLEZvPSEhRG8mJmhvKChmdW5jdGlvbigpe3dvLmNhbGwobmV3IERvKDEpKX0pKTtmbygidG9Mb2NhbGVTdHJpbmciLChmdW5jdGlvbigpe3JldHVybiB3by5hcHBseShGbz91by5jYWxsKHlvKHRoaXMpKTp5byh0aGlzKSxhcmd1bWVudHMpfSksaG8oKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IERvKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhaG8oKGZ1bmN0aW9uKCl7RG8ucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpKTt2YXIgR289cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxSbz1nLGxvPXIuVWludDhBcnJheSxrbz1sbyYmbG8ucHJvdG90eXBlfHx7fSxVbz1bXS50b1N0cmluZyxTbz1bXS5qb2luO1JvKChmdW5jdGlvbigpe1VvLmNhbGwoe30pfSkpJiYoVW89ZnVuY3Rpb24oKXtyZXR1cm4gU28uY2FsbCh0aGlzKX0pO3ZhciBObz1rby50b1N0cmluZyE9VW87R28oInRvU3RyaW5nIixVbyxObyk7dmFyIE1vPVNFLmZvckVhY2gsWW89ZHQoImZvckVhY2giKT9bXS5mb3JFYWNoOmZ1bmN0aW9uKEEpe3JldHVybiBNbyh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSxIbz1yLHBvPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfSxKbz1ZbyxMbz1KO2Zvcih2YXIgdm8gaW4gcG8pe3ZhciBLbz1Ib1t2b10seG89S28mJktvLnByb3RvdHlwZTtpZih4byYmeG8uZm9yRWFjaCE9PUpvKXRyeXtMbyh4bywiZm9yRWFjaCIsSm8pfWNhdGNoKEJ5KXt4by5mb3JFYWNoPUpvfX12YXIgcW89cyxtbz1nLGJvPVZBLFRvPURJLGpvPU9nLFpvPVcsT289RSxXbz1PYmplY3QuYXNzaWduLFZvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxYbz0hV298fG1vKChmdW5jdGlvbigpe2lmKHFvJiYxIT09V28oe2I6MX0sV28oVm8oe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1ZvKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIEE9e30sZz17fSxJPVN5bWJvbCgpLEI9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gQVtJXT03LEIuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKEEpe2dbQV09QX0pKSw3IT1Xbyh7fSxBKVtJXXx8Ym8oV28oe30sZykpLmpvaW4oIiIpIT1CfSkpP2Z1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVpvKEEpLEI9YXJndW1lbnRzLmxlbmd0aCxRPTEsQz1Uby5mLEU9am8uZjtCPlE7KWZvcih2YXIgaSx0PU9vKGFyZ3VtZW50c1tRKytdKSxvPUM/Ym8odCkuY29uY2F0KEModCkpOmJvKHQpLGU9by5sZW5ndGgsbj0wO2U+bjspaT1vW24rK10scW8mJiFFLmNhbGwodCxpKXx8KElbaV09dFtpXSk7cmV0dXJuIEl9OldvLFBvPVhvO2pJKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PVBvfSx7YXNzaWduOlBvfSk7dmFyIHpvPWwsX289Yywkbz1ZLEFlPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQj16byhnKTtCIGluIEE/X28uZihBLEIsJG8oMCxJKSk6QVtCXT1JfSxnZT1nLEllPWVBLEJlPUdBKCJzcGVjaWVzIiksUWU9ZnVuY3Rpb24oQSl7cmV0dXJuIEllPj01MXx8IWdlKChmdW5jdGlvbigpe3ZhciBnPVtdO3JldHVybihnLmNvbnN0cnVjdG9yPXt9KVtCZV09ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09Z1tBXShCb29sZWFuKS5mb299KSl9LENlPWpJLEVlPWgsaWU9REUsdGU9SEEsb2U9U0EsZWU9ZSxuZT1BZSxyZT1HQSxhZT1RZSgic2xpY2UiKSxzZT1yZSgic3BlY2llcyIpLGNlPVtdLnNsaWNlLGhlPU1hdGgubWF4O2Z1bmN0aW9uIERlKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24geWUoQSxnKXtmb3IodmFyIEk9MDtJPGcubGVuZ3RoO0krKyl7dmFyIEI9Z1tJXTtCLmVudW1lcmFibGU9Qi5lbnVtZXJhYmxlfHwhMSxCLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gQiYmKEIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLFJlKEIua2V5KSxCKX19ZnVuY3Rpb24gZmUoQSxnLEkpe3JldHVybiBnJiZ5ZShBLnByb3RvdHlwZSxnKSxJJiZ5ZShBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gd2UoQSxnLEkpe3JldHVybihnPVJlKGcpKWluIEE/T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsZyx7dmFsdWU6SSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOkFbZ109SSxBfWZ1bmN0aW9uIHVlKEEsZyl7cmV0dXJuIGZ1bmN0aW9uKEEpe2lmKEFycmF5LmlzQXJyYXkoQSkpcmV0dXJuIEF9KEEpfHxmdW5jdGlvbihBLGcpe3ZhciBJPW51bGw9PUE/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmQVtTeW1ib2wuaXRlcmF0b3JdfHxBWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9SSl7dmFyIEIsUSxDLEUsaT1bXSx0PSEwLG89ITE7dHJ5e2lmKEM9KEk9SS5jYWxsKEEpKS5uZXh0LDA9PT1nKXtpZihPYmplY3QoSSkhPT1JKXJldHVybjt0PSExfWVsc2UgZm9yKDshKHQ9KEI9Qy5jYWxsKEkpKS5kb25lKSYmKGkucHVzaChCLnZhbHVlKSxpLmxlbmd0aCE9PWcpO3Q9ITApO31jYXRjaChlKXtvPSEwLFE9ZX1maW5hbGx5e3RyeXtpZighdCYmbnVsbCE9SS5yZXR1cm4mJihFPUkucmV0dXJuKCksT2JqZWN0KEUpIT09RSkpcmV0dXJufWZpbmFsbHl7aWYobyl0aHJvdyBRfX1yZXR1cm4gaX19KEEsZyl8fEdlKEEsZyl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBGZShBKXtyZXR1cm4gZnVuY3Rpb24oQSl7aWYoQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gZGUoQSl9KEEpfHxmdW5jdGlvbihBKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9QVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1BWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oQSl9KEEpfHxHZShBKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBHZShBLGcpe2lmKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgQSlyZXR1cm4gZGUoQSxnKTt2YXIgST1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1JJiZBLmNvbnN0cnVjdG9yJiYoST1BLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09SXx8IlNldCI9PT1JP0FycmF5LmZyb20oQSk6IkFyZ3VtZW50cyI9PT1JfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChJKT9kZShBLGcpOnZvaWQgMH19ZnVuY3Rpb24gZGUoQSxnKXsobnVsbD09Z3x8Zz5BLmxlbmd0aCkmJihnPUEubGVuZ3RoKTtmb3IodmFyIEk9MCxCPW5ldyBBcnJheShnKTtJPGc7SSsrKUJbSV09QVtJXTtyZXR1cm4gQn1mdW5jdGlvbiBSZShBKXt2YXIgZz1mdW5jdGlvbihBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpcmV0dXJuIEE7dmFyIEk9QVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PUkpe3ZhciBCPUkuY2FsbChBLGd8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXJldHVybiBCO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09Zz9TdHJpbmc6TnVtYmVyKShBKX0oQSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBnP2c6U3RyaW5nKGcpfUNlKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IWFlfSx7c2xpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQz1lZSh0aGlzKSxFPW9lKEMubGVuZ3RoKSxpPXRlKEEsRSksdD10ZSh2b2lkIDA9PT1nP0U6ZyxFKTtpZihpZShDKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihJPUMuY29uc3RydWN0b3IpfHxJIT09QXJyYXkmJiFpZShJLnByb3RvdHlwZSk/RWUoSSkmJm51bGw9PT0oST1JW3NlXSkmJihJPXZvaWQgMCk6ST12b2lkIDAsST09PUFycmF5fHx2b2lkIDA9PT1JKSlyZXR1cm4gY2UuY2FsbChDLGksdCk7Zm9yKEI9bmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoaGUodC1pLDApKSxRPTA7aTx0O2krKyxRKyspaSBpbiBDJiZuZShCLFEsQ1tpXSk7cmV0dXJuIEIubGVuZ3RoPVEsQn19KTt2YXIgbGU9InZpZGVvIixrZT0iYXVkaW8iLFVlPSJtZXRhZGF0YSIsU2U9ImF2YyIsTmU9ImhldmMiLE1lPSJhYWMiLFllPSJnNzExMGEiLEhlPSJnNzExMG0iLHBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSksd2UodGhpcywiaWQiLDEpLHdlKHRoaXMsInR5cGUiLGxlKSx3ZSh0aGlzLCJjb2RlY1R5cGUiLFNlKSx3ZSh0aGlzLCJwaWQiLC0xKSx3ZSh0aGlzLCJodmNDIix2b2lkIDApLHdlKHRoaXMsImNvZGVjIiwiIiksd2UodGhpcywidGltZXNjYWxlIiwwKSx3ZSh0aGlzLCJmb3JtYXRUaW1lc2NhbGUiLDApLHdlKHRoaXMsInNlcXVlbmNlTnVtYmVyIiwwKSx3ZSh0aGlzLCJiYXNlTWVkaWFEZWNvZGVUaW1lIiwwKSx3ZSh0aGlzLCJiYXNlRHRzIiwwKSx3ZSh0aGlzLCJkdXJhdGlvbiIsMCksd2UodGhpcywid2FybmluZ3MiLFtdKSx3ZSh0aGlzLCJzYW1wbGVzIixbXSksd2UodGhpcywicHBzIixbXSksd2UodGhpcywic3BzIixbXSksd2UodGhpcywidnBzIixbXSksd2UodGhpcywiZnBzTnVtIiwwKSx3ZSh0aGlzLCJmcHNEZW4iLDApLHdlKHRoaXMsInNhclJhdGlvIixbXSksd2UodGhpcywid2lkdGgiLDApLHdlKHRoaXMsImhlaWdodCIsMCksd2UodGhpcywibmFsVW5pdFNpemUiLDQpLHdlKHRoaXMsInByZXNlbnQiLCExKSx3ZSh0aGlzLCJpc1ZpZGVvRW5jcnlwdGlvbiIsITEpLHdlKHRoaXMsImlzQXVkaW9FbmNyeXB0aW9uIiwhMSksd2UodGhpcywiaXNWaWRlbyIsITApLHdlKHRoaXMsImtpZCIsbnVsbCksd2UodGhpcywicHNzaCIsbnVsbCksd2UodGhpcywiZXh0Iix2b2lkIDApfXJldHVybiBmZShBLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlcXVlbmNlTnVtYmVyPXRoaXMud2lkdGg9dGhpcy5oZWlnaHQ9dGhpcy5mcHNEZW49dGhpcy5mcHNOdW09dGhpcy5kdXJhdGlvbj10aGlzLmJhc2VNZWRpYURlY29kZVRpbWU9dGhpcy50aW1lc2NhbGU9MCx0aGlzLmNvZGVjPSIiLHRoaXMucHJlc2VudD0hMSx0aGlzLnBpZD0tMSx0aGlzLnBwcz1bXSx0aGlzLnNwcz1bXSx0aGlzLnZwcz1bXSx0aGlzLnNhclJhdGlvPVtdLHRoaXMuc2FtcGxlcz1bXSx0aGlzLndhcm5pbmdzPVtdLHRoaXMuaHZjQz1udWxsfX0se2tleToiZXhpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5wcHMubGVuZ3RoJiZ0aGlzLnNwcy5sZW5ndGgmJnRoaXMuY29kZWMpfX0se2tleToiaGFzU2FtcGxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5zYW1wbGVzLmxlbmd0aH19LHtrZXk6ImlzRW5jcnlwdGlvbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWaWRlb0VuY3J5cHRpb259fV0pLEF9KCksSmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7RGUodGhpcyxBKSx3ZSh0aGlzLCJpZCIsMiksd2UodGhpcywidHlwZSIsa2UpLHdlKHRoaXMsImNvZGVjVHlwZSIsTWUpLHdlKHRoaXMsInBpZCIsLTEpLHdlKHRoaXMsImNvZGVjIiwiIiksd2UodGhpcywic2VxdWVuY2VOdW1iZXIiLDApLHdlKHRoaXMsInNhbXBsZUR1cmF0aW9uIiwwKSx3ZSh0aGlzLCJ0aW1lc2NhbGUiLDApLHdlKHRoaXMsImZvcm1hdFRpbWVzY2FsZSIsMCksd2UodGhpcywiYmFzZU1lZGlhRGVjb2RlVGltZSIsMCksd2UodGhpcywiZHVyYXRpb24iLDApLHdlKHRoaXMsIndhcm5pbmdzIixbXSksd2UodGhpcywic2FtcGxlcyIsW10pLHdlKHRoaXMsImJhc2VEdHMiLDApLHdlKHRoaXMsInNhbXBsZVNpemUiLDE2KSx3ZSh0aGlzLCJzYW1wbGVSYXRlIiwwKSx3ZSh0aGlzLCJjaGFubmVsQ291bnQiLDApLHdlKHRoaXMsIm9iamVjdFR5cGUiLDApLHdlKHRoaXMsInNhbXBsZVJhdGVJbmRleCIsMCksd2UodGhpcywiY29uZmlnIixbXSksd2UodGhpcywicHJlc2VudCIsITEpLHdlKHRoaXMsImlzVmlkZW9FbmNyeXB0aW9uIiwhMSksd2UodGhpcywiaXNBdWRpb0VuY3J5cHRpb24iLCExKSx3ZSh0aGlzLCJraWQiLG51bGwpLHdlKHRoaXMsImV4dCIsdm9pZCAwKX1yZXR1cm4gZmUoQSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wLHRoaXMudGltZXNjYWxlPTAsdGhpcy5zYW1wbGVEdXJhdGlvbj0wLHRoaXMuc2FtcGxlUmF0ZT0wLHRoaXMuY2hhbm5lbENvdW50PTAsdGhpcy5iYXNlTWVkaWFEZWNvZGVUaW1lPTAsdGhpcy5wcmVzZW50PSExLHRoaXMucGlkPS0xLHRoaXMuY29kZWM9IiIsdGhpcy5zYW1wbGVzPVtdLHRoaXMuY29uZmlnPVtdLHRoaXMud2FybmluZ3M9W119fSx7a2V5OiJleGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hISh0aGlzLnNhbXBsZVJhdGUmJnRoaXMuY2hhbm5lbENvdW50JiZ0aGlzLmNvZGVjJiZ0aGlzLmNvZGVjVHlwZT09PU1lKX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2FtcGxlcy5sZW5ndGh9fSx7a2V5OiJpc0VuY3J5cHRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQXVkaW9FbmNyeXB0aW9ufX1dKSxBfSgpLExlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEksQil7RGUodGhpcyxBKSx3ZSh0aGlzLCJmbGFnIix7fSksd2UodGhpcywia2V5ZnJhbWUiLCExKSx3ZSh0aGlzLCJnb3BJZCIsMCksd2UodGhpcywiZHVyYXRpb24iLDApLHdlKHRoaXMsInNpemUiLDApLHdlKHRoaXMsInVuaXRzIixbXSksd2UodGhpcywiY2hyb21hRm9ybWF0Iiw0MjApLHRoaXMub3JpZ2luUHRzPXRoaXMucHRzPWcsdGhpcy5vcmlnaW5EdHM9dGhpcy5kdHM9SSxCJiYodGhpcy51bml0cz1CKX1yZXR1cm4gZmUoQSxbe2tleToiY3RzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdHMtdGhpcy5kdHN9fSx7a2V5OiJzZXRUb0tleWZyYW1lIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMua2V5ZnJhbWU9ITAsdGhpcy5mbGFnLmRlcGVuZHNPbj0yLHRoaXMuZmxhZy5pc05vblN5bmNTYW1wbGU9MH19XSksQX0oKSx2ZT1mZSgoZnVuY3Rpb24gQShnLEksQixRKXtEZSh0aGlzLEEpLHdlKHRoaXMsImR1cmF0aW9uIiwxMDI0KSx3ZSh0aGlzLCJmbGFnIix7ZGVwZW5kc09uOjIsaXNOb25TeW5jU2FtcGxlOjB9KSx3ZSh0aGlzLCJrZXlmcmFtZSIsITApLHRoaXMub3JpZ2luUHRzPXRoaXMucHRzPXRoaXMuZHRzPWcsdGhpcy5kYXRhPUksdGhpcy5zaXplPUkuYnl0ZUxlbmd0aCx0aGlzLnNhbXBsZU9mZnNldD1RLEImJih0aGlzLmR1cmF0aW9uPUIpfSkpLEtlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSksd2UodGhpcywiaWQiLDMpLHdlKHRoaXMsInR5cGUiLFVlKSx3ZSh0aGlzLCJ0aW1lc2NhbGUiLDApLHdlKHRoaXMsImZsdlNjcmlwdFNhbXBsZXMiLFtdKSx3ZSh0aGlzLCJzZWlTYW1wbGVzIixbXSl9cmV0dXJuIGZlKEEsW3trZXk6ImV4aXN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuZmx2U2NyaXB0U2FtcGxlcy5sZW5ndGgmJiF0aGlzLnNlaVNhbXBsZXMubGVuZ3RofHwhdGhpcy50aW1lc2NhbGUpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50aW1lc2NhbGU9MCx0aGlzLmZsdlNjcmlwdFNhbXBsZXM9W10sdGhpcy5zZWlTYW1wbGVzPVtdfX0se2tleToiaGFzU2FtcGxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuZmx2U2NyaXB0U2FtcGxlcy5sZW5ndGgmJiF0aGlzLnNlaVNhbXBsZXMubGVuZ3RoKX19XSksQX0oKSx4ZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyxxZT14ZSYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvY2FsZUxvd2VyQ2FzZSgpLG1lPXhlJiZxZS5pbmNsdWRlcygiZmlyZWZveCIpLGJlPXhlJiZxZS5pbmNsdWRlcygiYW5kcm9pZCIpLFRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSl9cmV0dXJuIGZlKEEsbnVsbCxbe2tleToiZ2V0UmF0ZUluZGV4QnlSYXRlIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5GUkVRLmluZGV4T2YoZyl9fSx7a2V5OiJwYXJzZUFEVFMiLHZhbHVlOmZ1bmN0aW9uKGcsSSl7Zm9yKHZhciBCPWcubGVuZ3RoLFE9MDtRKzI8QiYmKDI1NSE9PWdbUV18fDI0MCE9KDI0NiZnW1ErMV0pKTspUSsrO2lmKCEoUT49Qikpe3ZhciBDPVEsRT1bXSxpPSg2MCZnW1ErMl0pPj4+Mix0PUEuRlJFUVtpXTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2FtcGxpbmcgaW5kZXg6ICIuY29uY2F0KGkpKTtmb3IodmFyIG8sZSxuPTErKCgxOTImZ1tRKzJdKT4+PjYpLHI9KDEmZ1tRKzJdKTw8MnwoMTkyJmdbUSszXSk+Pj42LGE9QS5fZ2V0Q29uZmlnKGkscixuKSxzPWEuY29uZmlnLGM9YS5jb2RlYyxoPTAsRD1BLmdldEZyYW1lRHVyYXRpb24odCk7USs3PEI7KWlmKDI1NT09PWdbUV0mJjI0MD09KDI0NiZnW1ErMV0pKXtpZihCLVE8KGU9KDMmZ1tRKzNdKTw8MTF8Z1tRKzRdPDwzfCgyMjQmZ1tRKzVdKT4+NSkpYnJlYWs7bz0yKigxJn5nW1ErMV0pLEUucHVzaCh7cHRzOkkraCpELGRhdGE6Zy5zdWJhcnJheShRKzcrbyxRK2UpfSksaCsrLFErPWV9ZWxzZSBRKys7cmV0dXJue3NraXA6QyxyZW1haW5pbmc6UT49Qj92b2lkIDA6Zy5zdWJhcnJheShRKSxmcmFtZXM6RSxzYW1wbGluZ0ZyZXF1ZW5jeUluZGV4Omksc2FtcGxlUmF0ZTp0LG9iamVjdFR5cGU6bixjaGFubmVsQ291bnQ6cixjb2RlYzpjLGNvbmZpZzpzLG9yaWdpbkNvZGVjOiJtcDRhLjQwLiIuY29uY2F0KG4pfX19fSx7a2V5OiJwYXJzZUF1ZGlvU3BlY2lmaWNDb25maWciLHZhbHVlOmZ1bmN0aW9uKGcpe2lmKGcubGVuZ3RoKXt2YXIgST1nWzBdPj4+MyxCPSg3JmdbMF0pPDwxfGdbMV0+Pj43LFE9KDEyMCZnWzFdKT4+PjMsQz1BLkZSRVFbQl07aWYoQyl7dmFyIEU9QS5fZ2V0Q29uZmlnKEIsUSxJKTtyZXR1cm57c2FtcGxpbmdGcmVxdWVuY3lJbmRleDpCLHNhbXBsZVJhdGU6QyxvYmplY3RUeXBlOkksY2hhbm5lbENvdW50OlEsY29uZmlnOkUuY29uZmlnLGNvZGVjOkUuY29kZWMsb3JpZ2luQ29kZWM6Im1wNGEuNDAuIi5jb25jYXQoSSl9fX19fSx7a2V5OiJnZXRGcmFtZUR1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gMTAyNCooYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNCkvQX19LHtrZXk6Il9nZXRDb25maWciLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEM9W107cmV0dXJuIG1lP0E+PTY/KEI9NSxRPUEtMyk6KEI9MixRPUEpOmJlPyhCPTIsUT1BKTooQj0yPT09SXx8NT09PUk/STo1LFE9QSxBPj02P1E9QS0zOjE9PT1nJiYoQj0yLFE9QSkpLENbMF09Qjw8MyxDWzBdfD0oMTQmQSk+PjEsQ1sxXT0oMSZBKTw8NyxDWzFdfD1nPDwzLDU9PT1CJiYoQ1sxXXw9KDE0JlEpPj4xLENbMl09KDEmUSk8PDcsQ1syXXw9OCxDWzNdPTApLHtjb25maWc6Qyxjb2RlYzoibXA0YS40MC4iLmNvbmNhdChCKX19fSx7a2V5OiJnZXRTaWxlbnRGcmFtZSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtpZigibXA0YS40MC4yIj09PUEpe2lmKDE9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzUsMTI4XSk7aWYoMj09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFszMywwLDczLDE0NCwyLDI1LDAsMzUsMTI4XSk7aWYoMz09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFswLDIwMCwwLDEyOCwzMiwxMzIsMSwzOCw2NCw4LDEwMCwwLDE0Ml0pO2lmKDQ9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMjgsNDQsMTI4LDgsMiw1Nl0pO2lmKDU9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMzAsNDgsNCwxNTMsMCwzMywxNDQsMiw1Nl0pO2lmKDY9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMzAsNDgsNCwxNTMsMCwzMywxNDQsMiwwLDE3OCwwLDMyLDgsMjI0XSl9ZWxzZXtpZigxPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw3OCwyMzAsMTI4LDE4Niw4LDAsMCwwLDI4LDYsMjQxLDE5MywxMCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5NF0pO2lmKDI9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMSw2NCwzNCwxMjgsMTYzLDk0LDIzMCwxMjgsMTg2LDgsMCwwLDAsMCwxNDksMCw2LDI0MSwxNjEsMTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTRdKTtpZigzPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw5NCwyMzAsMTI4LDE4Niw4LDAsMCwwLDAsMTQ5LDAsNiwyNDEsMTYxLDEwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDk0XSl9fX1dKSxBfSgpO2Z1bmN0aW9uIGplKCl7Zm9yKHZhciBBPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoQSksST0wO0k8QTtJKyspZ1tJXT1hcmd1bWVudHNbSV07Zz1nLmZpbHRlcihCb29sZWFuKTt2YXIgQj1uZXcgVWludDhBcnJheShnLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KEEsUSksUSs9QS5ieXRlTGVuZ3RofSkpLEJ9d2UoVGUsIkZSRVEiLFs5NmUzLDg4MjAwLDY0ZTMsNDhlMyw0NDEwMCwzMmUzLDI0ZTMsMjIwNTAsMTZlMywxMmUzLDExMDI1LDhlMyw3MzUwXSk7dmFyIFplPU1hdGgucG93KDIsMzIpO2Z1bmN0aW9uIE9lKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDw4KSsoQVtnKzFdfHwwKX1mdW5jdGlvbiBXZShBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4oQVtnXTw8MjQ+Pj4wKSsoQVtnKzFdPDwxNikrKEFbZysyXTw8OCkrKEFbZyszXXx8MCl9ZnVuY3Rpb24gVmUoQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIFdlKEEsZykqWmUrV2UoQSxnKzQpfWZ1bmN0aW9uIFhlKEEpe3ZhciBnPSIiO2lmKEEuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zys9ZnVuY3Rpb24oQSl7cmV0dXJuKCIwIitOdW1iZXIoQSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikudG9VcHBlckNhc2UoKX0oQSl9KSksZy5sZW5ndGg8PTMyKWZvcih2YXIgST0zMi1nLmxlbmd0aCxCPTA7QjxJO0IrKylnKz0iMCI7cmV0dXJuIGd9ZnVuY3Rpb24gUGUoQSl7aWYoIUFycmF5LmlzQXJyYXkoQSkpe2Zvcih2YXIgZz1bXSxJPSIiLEI9MDtCPEEubGVuZ3RoO0IrKylCJTImJihJPUFbQi0xXStBW0JdLGcucHVzaChwYXJzZUludChJLDE2KSksST0iIik7cmV0dXJuIGd9cmV0dXJuIEEubWFwKChmdW5jdGlvbihBKXtyZXR1cm4gcGFyc2VJbnQoQSwxNil9KSl9dmFyIHplPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSl9cmV0dXJuIGZlKEEsbnVsbCxbe2tleToiZmluZEJveCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPVtdO2lmKCFnKXJldHVybiBRO2Zvcih2YXIgQz0wLEU9IiIsaT0wO2cubGVuZ3RoPjc7KXtpZihDPVdlKGcpLEU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSksaT04LDE9PT1DPyhDPVZlKGcsOCksaSs9OCk6Q3x8KEM9Zy5sZW5ndGgpLCFJWzBdfHxFPT09SVswXSl7dmFyIHQ9Zy5zdWJhcnJheSgwLEMpO2lmKCEoSS5sZW5ndGg8MikpcmV0dXJuIEEuZmluZEJveCh0LnN1YmFycmF5KGkpLEkuc2xpY2UoMSksQitpKTtRLnB1c2goe3N0YXJ0OkIsc2l6ZTpDLGhlYWRlclNpemU6aSx0eXBlOkUsZGF0YTp0fSl9Qis9QyxnPWcuc3ViYXJyYXkoQyl9cmV0dXJuIFF9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLnRyYWNrSWQ9V2UoZyk7dmFyIEk9NCxCPTEmQS5mbGFncyxRPTImQS5mbGFncyxDPTgmQS5mbGFncyxFPTE2JkEuZmxhZ3MsaT0zMiZBLmZsYWdzO0ImJihJKz00LEEuYmFzZURhdGFPZmZzZXQ9V2UoZyxJKSxJKz00KSxRJiYoQS5zYW1wbGVEZXNjcmlwdGlvbkluZGV4PVdlKGcsSSksSSs9NCksQyYmKEEuZGVmYXVsdFNhbXBsZUR1cmF0aW9uPVdlKGcsSSksSSs9NCksRSYmKEEuZGVmYXVsdFNhbXBsZVNpemU9V2UoZyxJKSxJKz00KSxpJiYoQS5kZWZhdWx0U2FtcGxlRmxhZ3M9V2UoZyxJKSl9KSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wO0EucmVmZXJlbmNlX0lEPVdlKGcsSSksSSs9NCxBLnRpbWVzY2FsZT1XZShnLEkpLEkrPTQsMD09PUEudmVyc2lvbj8oQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1XZShnLEkpLEkrPTQsQS5maXJzdF9vZmZzZXQ9V2UoZyxJKSxJKz00KTooQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1WZShnLEkpLEkrPTgsQS5maXJzdF9vZmZzZXQ9VmUoZyxJKSxJKz04KSxJKz0yLEEucmVmZXJlbmNlcz1bXTt2YXIgQj1PZShnLEkpO0krPTI7Zm9yKHZhciBRPTA7UTxCO1ErKyl7dmFyIEM9e307QS5yZWZlcmVuY2VzLnB1c2goQyk7dmFyIEU9V2UoZyxJKTtJKz00LEMucmVmZXJlbmNlX3R5cGU9RT4+MzEmMSxDLnJlZmVyZW5jZWRfc2l6ZT0yMTQ3NDgzNjQ3JkUsQy5zdWJzZWdtZW50X2R1cmF0aW9uPVdlKGcsSSksRT1XZShnLEkrPTQpLEkrPTQsQy5zdGFydHNfd2l0aF9TQVA9RT4+MzEmMSxDLlNBUF90eXBlPUU+PjI4JjcsQy5TQVBfZGVsdGFfdGltZT0yNjg0MzU0NTUmRX19KSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZ24oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubXZoZD1BLm12aGQoQS5maW5kQm94KEksWyJtdmhkIl0sQilbMF0pLGcudHJhaz1BLmZpbmRCb3goSSxbInRyYWsiXSxCKS5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSksZy5wc3NoPUEucHNzaChBLmZpbmRCb3goSSxbInBzc2giXSxCKVswXSl9KSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudGltZXNjYWxlPVdlKGcsMTYpLEEuZHVyYXRpb249VmUoZywyMCksSSs9MjgpOihBLnRpbWVzY2FsZT1XZShnLDgpLEEuZHVyYXRpb249V2UoZywxMiksSSs9MTYpLEEubmV4dFRyYWNrSWQ9V2UoZyxJKzc2KX0pKX19LHtrZXk6InRyYWsiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7Zy50a2hkPUEudGtoZChBLmZpbmRCb3goSSxbInRraGQiXSxCKVswXSksZy5tZGlhPUEubWRpYShBLmZpbmRCb3goSSxbIm1kaWEiXSxCKVswXSl9KSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudHJhY2tJZD1XZShnLDE2KSxBLmR1cmF0aW9uPVZlKGcsMjQpLEkrPTMyKTooQS50cmFja0lkPVdlKGcsOCksQS5kdXJhdGlvbj1XZShnLDE2KSxJKz0yMCksQS53aWR0aD1XZShnLEkrNTIpLEEuaGVpZ2h0PVdlKGcsSSs1Nil9KSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZ24oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubWRoZD1BLm1kaGQoQS5maW5kQm94KEksWyJtZGhkIl0sQilbMF0pLGcuaGRscj1BLmhkbHIoQS5maW5kQm94KEksWyJoZGxyIl0sQilbMF0pLGcubWluZj1BLm1pbmYoQS5maW5kQm94KEksWyJtaW5mIl0sQilbMF0pfSkpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9MDsxPT09QS52ZXJzaW9uPyhBLnRpbWVzY2FsZT1XZShnLDE2KSxBLmR1cmF0aW9uPVZlKGcsMjApLEkrPTI4KTooQS50aW1lc2NhbGU9V2UoZyw4KSxBLmR1cmF0aW9uPVdlKGcsMTIpLEkrPTE2KTt2YXIgQj1PZShnLEkpO0EubGFuZ3VhZ2U9U3RyaW5nLmZyb21DaGFyQ29kZSg5NisoQj4+MTAmMzEpLDk2KyhCPj41JjMxKSw5NisoMzEmQikpfSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7MD09PUEudmVyc2lvbiYmKEEuaGFuZGxlclR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSkpfSkpfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnZtaGQ9QS52bWhkKEEuZmluZEJveChJLFsidm1oZCJdLEIpWzBdKSxnLnNtaGQ9QS5zbWhkKEEuZmluZEJveChJLFsic21oZCJdLEIpWzBdKSxnLnN0Ymw9QS5zdGJsKEEuZmluZEJveChJLFsic3RibCJdLEIpWzBdKX0pKX19LHtrZXk6InZtaGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBnbihBLCEwLChmdW5jdGlvbihBLGcpe0EuZ3JhcGhpY3Ntb2RlPU9lKGcpLEEub3Bjb2xvcj1bT2UoZywyKSxPZShnLDQpLE9lKGcsNildfSkpfX0se2tleToic21oZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5iYWxhbmNlPU9lKGcpfSkpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDLEU7Zy5zdHNkPUEuc3RzZChBLmZpbmRCb3goSSxbInN0c2QiXSxCKVswXSksZy5zdHRzPUEuc3R0cyhBLmZpbmRCb3goSSxbInN0dHMiXSxCKVswXSksZy5jdHRzPUEuY3R0cyhBLmZpbmRCb3goSSxbImN0dHMiXSxCKVswXSksZy5zdHNjPUEuc3RzYyhBLmZpbmRCb3goSSxbInN0c2MiXSxCKVswXSksZy5zdHN6PUEuc3RzeihBLmZpbmRCb3goSSxbInN0c3oiXSxCKVswXSksZy5zdGNvPUEuc3RjbyhBLmZpbmRCb3goSSxbInN0Y28iXSxCKVswXSksZy5zdGNvfHwoZy5jbzY0PUEuY282NChBLmZpbmRCb3goSSxbImNvNjQiXSxCKVswXSksZy5zdGNvPWcuY282NCk7dmFyIGk9bnVsbD09PShRPWcuc3RzZC5lbnRyaWVzWzBdKXx8dm9pZCAwPT09UXx8bnVsbD09PShDPVEuc2luZil8fHZvaWQgMD09PUN8fG51bGw9PT0oRT1DLnNjaGkpfHx2b2lkIDA9PT1FP3ZvaWQgMDpFLnRlbmMuZGVmYXVsdF9JVl9zaXplO2cuc3Rzcz1BLnN0c3MoQS5maW5kQm94KEksWyJzdHNzIl0sQilbMF0pLGcuc2VuYz1BLnNlbmMoQS5maW5kQm94KEksWyJzZW5jIl0sQilbMF0saSl9KSl9fSx7a2V5OiJzZW5jIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxJKXt2YXIgQj0wLFE9V2UoSSxCKTtCKz00LEEuc2FtcGxlcz1bXTtmb3IodmFyIEM9MDtDPFE7QysrKXtmb3IodmFyIEU9e0luaXRpYWxpemF0aW9uVmVjdG9yOltdfSxpPTA7aTxnO2krKylFLkluaXRpYWxpemF0aW9uVmVjdG9yW2ldPUlbQitpXTtpZihCKz1nLDImQS5mbGFncyl7RS5zdWJzYW1wbGVzPVtdO3ZhciB0PU9lKEksQik7Qis9Mjtmb3IodmFyIG89MDtvPHQ7bysrKXt2YXIgZT17fTtlLkJ5dGVzT2ZDbGVhckRhdGE9T2UoSSxCKSxCKz0yLGUuQnl0ZXNPZlByb3RlY3RlZERhdGE9V2UoSSxCKSxCKz00LEUuc3Vic2FtcGxlcy5wdXNoKGUpfX1BLnNhbXBsZXMucHVzaChFKX19KSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9W10sQj1bXSxRPTAsQz0wO0M8MTY7QysrKUIucHVzaChJbihnW1ErQ10pKTtpZihRKz0xNixBLnZlcnNpb24+MCl7dmFyIEU9V2UoZyxRKTtRKz00O2Zvcih2YXIgaT0wO2k8KCIiK0UpLmxlbmd0aDtpKyspZm9yKHZhciB0PTA7dDwxNjt0Kyspe3ZhciBvPWdbUV07USs9MSxJLnB1c2goSW4obykpfX12YXIgZT1XZShnLFEpO0EuZGF0YV9zaXplPWUsUSs9NCxBLmtpZD1JLEEuc3lzdGVtX2lkPUIsQS5idWZmZXI9Z30pKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCEwLChmdW5jdGlvbihnLEksQil7Zy5lbnRyeUNvdW50PVdlKEkpLGcuZW50cmllcz1BLmZpbmRCb3goSS5zdWJhcnJheSg0KSxbXSxCKzQpLm1hcCgoZnVuY3Rpb24oZyl7c3dpdGNoKGcudHlwZSl7Y2FzZSJhdmMxIjpjYXNlImF2YzIiOmNhc2UiYXZjMyI6Y2FzZSJhdmM0IjpyZXR1cm4gQS5hdmMxKGcpO2Nhc2UiaHZjMSI6Y2FzZSJoZXYxIjpyZXR1cm4gQS5odmMxKGcpO2Nhc2UibXA0YSI6cmV0dXJuIEEubXA0YShnKTtjYXNlImFsYXciOmNhc2UidWxhdyI6cmV0dXJuIEEuYWxhdyhnKTtjYXNlImVuY2EiOnJldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7Zy5jaGFubmVsQ291bnQ9T2UoSSwxNiksZy5zYW1wbGVzaXplPU9lKEksMTgpLGcuc2FtcGxlUmF0ZT1XZShJLDI0KS82NTUzNixJPUkuc3ViYXJyYXkoMjgpLGcuc2luZj1BLnNpbmYoQS5maW5kQm94KEksWyJzaW5mIl0sQilbMF0pLGcuZXNkcz1BLmVzZHMoQS5maW5kQm94KEksWyJlc2RzIl0sQilbMF0pfSkpO2Nhc2UiZW5jdiI6cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLndpZHRoPU9lKEksMjQpLGcuaGVpZ2h0PU9lKEksMjYpLGcuaG9yaXpyZXNvbHV0aW9uPVdlKEksMjgpLGcudmVydHJlc29sdXRpb249V2UoSSwzMiksST1JLnN1YmFycmF5KDc4KSxnLnNpbmY9QS5zaW5mKEEuZmluZEJveChJLFsic2luZiJdLEIpWzBdKSxnLmF2Y0M9QS5hdmNDKEEuZmluZEJveChJLFsiYXZjQyJdLEIpWzBdKSxnLmh2Y0M9QS5odmNDKEEuZmluZEJveChJLFsiaHZjQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChJLFsicGFzcCJdLEIpWzBdKX0pKX19KSkuZmlsdGVyKEJvb2xlYW4pfSkpfX0se2tleToidGVuYyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITEsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9NjtBLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9Z1tJXSxJKz0xLEEuZGVmYXVsdF9JVl9zaXplPWdbSV0sSSs9MSxBLmRlZmF1bHRfS0lEPVtdO2Zvcih2YXIgQj0wO0I8MTY7QisrKUEuZGVmYXVsdF9LSUQucHVzaChJbihnW0ldKSksSSs9MX0pKX19LHtrZXk6InNjaGkiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7Zy50ZW5jPUEudGVuYyhBLmZpbmRCb3goSSxbInRlbmMiXSxCKVswXSl9KSl9fSx7a2V5OiJzaW5mIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZ24oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cuc2NoaT1BLnNjaGkoQS5maW5kQm94KEksWyJzY2hpIl0sQilbMF0pLGcuZnJtYT1BLmZybWEoQS5maW5kQm94KEksWyJmcm1hIl0sQilbMF0pfSkpfX0se2tleToiZnJtYSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITEsKGZ1bmN0aW9uKEEsZyl7QS5kYXRhX2Zvcm1hdD0iIjtmb3IodmFyIEk9MDtJPDQ7SSsrKUEuZGF0YV9mb3JtYXQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZ1tJXSl9KSl9fSx7a2V5OiJhdmMxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZ24oZywhMSwoZnVuY3Rpb24oZyxJLEIpe3ZhciBRPSRlKGcsSSksQz1JLnN1YmFycmF5KFEpO0IrPVEsZy5hdmNDPUEuYXZjQyhBLmZpbmRCb3goQyxbImF2Y0MiXSxCKVswXSksZy5wYXNwPUEucGFzcChBLmZpbmRCb3goQyxbInBhc3AiXSxCKVswXSl9KSl9fSx7a2V5OiJhdmNDIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmNvbmZpZ3VyYXRpb25WZXJzaW9uPWdbMF0sQS5BVkNQcm9maWxlSW5kaWNhdGlvbj1nWzFdLEEucHJvZmlsZUNvbXBhdGliaWxpdHk9Z1syXSxBLkFWQ0xldmVsSW5kaWNhdGlvbj1nWzNdLEEuY29kZWM9ZnVuY3Rpb24oQSl7Zm9yKHZhciBnLEk9ImF2YzEuIixCPTA7QjwzO0IrKykoZz1BW0JdLnRvU3RyaW5nKDE2KSkubGVuZ3RoPDImJihnPSIwIi5jb25jYXQoZykpLEkrPWc7cmV0dXJuIEl9KFtnWzFdLGdbMl0sZ1szXV0pLEEubGVuZ3RoU2l6ZU1pbnVzT25lPTMmZ1s0XSxBLnNwc0xlbmd0aD0zMSZnWzVdLEEuc3BzPVtdO2Zvcih2YXIgST02LEI9MDtCPEEuc3BzTGVuZ3RoO0IrKyl7dmFyIFE9T2UoZyxJKTtJKz0yLEEuc3BzLnB1c2goZy5zdWJhcnJheShJLEkrUSkpLEkrPVF9QS5wcHNMZW5ndGg9Z1tJXSxJKz0xLEEucHBzPVtdO2Zvcih2YXIgQz0wO0M8QS5wcHNMZW5ndGg7QysrKXt2YXIgRT1PZShnLEkpO0krPTIsQS5wcHMucHVzaChnLnN1YmFycmF5KEksSSs9RSkpLEkrPUV9fSkpfX0se2tleToiaHZjMSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUT0kZShnLEkpLEM9SS5zdWJhcnJheShRKTtCKz1RLGcuaHZjQz1BLmh2Y0MoQS5maW5kQm94KEMsWyJodmNDIl0sQilbMF0pLGcucGFzcD1BLnBhc3AoQS5maW5kQm94KEMsWyJwYXNwIl0sQilbMF0pfSkpfX0se2tleToiaHZjQyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITEsKGZ1bmN0aW9uKGcsSSl7Zy5kYXRhPUEuZGF0YSxnLmNvZGVjPSJoZXYxLjEuNi5MOTMuQjAiLGcuY29uZmlndXJhdGlvblZlcnNpb249SVswXTt2YXIgQj1JWzFdO2cuZ2VuZXJhbFByb2ZpbGVTcGFjZT1CPj42LGcuZ2VuZXJhbFRpZXJGbGFnPSgzMiZCKT4+NSxnLmdlbmVyYWxQcm9maWxlSWRjPTMxJkIsZy5nZW5lcmFsUHJvZmlsZUNvbXBhdGliaWxpdHk9V2UoSSwyKSxnLmdlbmVyYWxDb25zdHJhaW50SW5kaWNhdG9yRmxhZ3M9SS5zdWJhcnJheSg2LDEyKSxnLmdlbmVyYWxMZXZlbElkYz1JWzEyXSxnLmF2Z0ZyYW1lUmF0ZT1PZShJLDE5KSxnLm51bU9mQXJyYXlzPUlbMjJdLGcudnBzPVtdLGcuc3BzPVtdLGcucHBzPVtdO2Zvcih2YXIgUT0yMyxDPTAsRT0wLGk9MCx0PTA7dDxnLm51bU9mQXJyYXlzO3QrKyl7Qz02MyZJW1FdLEU9T2UoSSxRKzEpLFErPTM7Zm9yKHZhciBvLGU9W10sbj0wO248RTtuKyspaT1PZShJLFEpLFErPTIsZS5wdXNoKEkuc3ViYXJyYXkoUSxRK2kpKSxRKz1pO2lmKDMyPT09Qykobz1nLnZwcykucHVzaC5hcHBseShvLGUpO2Vsc2UgaWYoMzM9PT1DKXt2YXIgcjsocj1nLnNwcykucHVzaC5hcHBseShyLGUpfWVsc2UgaWYoMzQ9PT1DKXt2YXIgYTsoYT1nLnBwcykucHVzaC5hcHBseShhLGUpfX19KSl9fSx7a2V5OiJwYXNwIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmhTcGFjaW5nPVdlKGcpLEEudlNwYWNpbmc9V2UoZyw0KX0pKX19LHtrZXk6Im1wNGEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9QW4oZyxJKTtnLmVzZHM9QS5lc2RzKEEuZmluZEJveChJLnN1YmFycmF5KFEpLFsiZXNkcyJdLEIrUSlbMF0pfSkpfX0se2tleToiZXNkcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5jb2RlYz0ibXA0YS4iO2Zvcih2YXIgST0wLEI9MCxRPTAsQz0wO2cubGVuZ3RoOyl7Zm9yKEM9Z1tJPTBdLEI9Z1tJKzFdLEkrPTI7MTI4JkI7KVE9KDEyNyZCKTw8NyxCPWdbSV0sSSs9MTtpZihRKz0xMjcmQiwzPT09QylnPWcuc3ViYXJyYXkoSSszKTtlbHNle2lmKDQhPT1DKXtpZig1PT09Qyl7dmFyIEU9QS5jb25maWc9Zy5zdWJhcnJheShJLEkrUSksaT0oMjQ4JkVbMF0pPj4zO3JldHVybiAzMT09PWkmJkUubGVuZ3RoPj0yJiYoaT0zMisoKDcmRVswXSk8PDMpKygoMjI0JkVbMV0pPj41KSksQS5vYmplY3RUeXBlPWksQS5jb2RlYys9aS50b1N0cmluZygxNiksdm9pZCgiLiI9PT1BLmNvZGVjW0EuY29kZWMubGVuZ3RoLTFdJiYoQS5jb2RlYz1BLmNvZGVjLnN1YnN0cmluZygwLEEuY29kZWMubGVuZ3RoLTEpKSl9cmV0dXJuIHZvaWQoIi4iPT09QS5jb2RlY1tBLmNvZGVjLmxlbmd0aC0xXSYmKEEuY29kZWM9QS5jb2RlYy5zdWJzdHJpbmcoMCxBLmNvZGVjLmxlbmd0aC0xKSkpfUEuY29kZWMrPShnW0ldLnRvU3RyaW5nKDE2KSsiLiIpLnBhZFN0YXJ0KDMsIjAiKSxnPWcuc3ViYXJyYXkoSSsxMyl9fX0pKX19LHtrZXk6ImFsYXciLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBnbihBLCExLChmdW5jdGlvbihBLGcpe0FuKEEsZyl9KSl9fSx7a2V5OiJzdHRzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9V2UoZyksQj1bXSxRPTQsQz0wO0M8STtDKyspQi5wdXNoKHtjb3VudDpXZShnLFEpLGRlbHRhOldlKGcsUSs0KX0pLFErPTg7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJjdHRzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST1XZShnKSxCPVtdLFE9NDtpZigxPT09QS52ZXJzaW9uKWZvcih2YXIgQz0wO0M8STtDKyspQi5wdXNoKHtjb3VudDpXZShnLFEpLG9mZnNldDpXZShnLFErNCl9KSxRKz04O2Vsc2UgZm9yKHZhciBFPTA7RTxJO0UrKylCLnB1c2goe2NvdW50OldlKGcsUSksb2Zmc2V0Oi0oMSt+V2UoZyxRKzQpKX0pLFErPTg7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJzdHNjIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9V2UoZyksQj1bXSxRPTQsQz0wO0M8STtDKyspQi5wdXNoKHtmaXJzdENodW5rOldlKGcsUSksc2FtcGxlc1BlckNodW5rOldlKGcsUSs0KSxzYW1wbGVEZXNjcmlwdGlvbkluZGV4OldlKGcsUSs4KX0pLFErPTEyO0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9V2UoZyksQj1XZShnLDQpLFE9W107aWYoIUkpZm9yKHZhciBDPTgsRT0wO0U8QjtFKyspUS5wdXNoKFdlKGcsQykpLEMrPTQ7QS5zYW1wbGVTaXplPUksQS5zYW1wbGVDb3VudD1CLEEuZW50cnlTaXplcz1RfSkpfX0se2tleToic3RjbyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVdlKGcpLEI9W10sUT00LEM9MDtDPEk7QysrKUIucHVzaChXZShnLFEpKSxRKz00O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToiY282NCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVdlKGcpLEI9W10sUT00LEM9MDtDPEk7QysrKUIucHVzaChWZShnLFEpKSxRKz04O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVdlKGcpLEI9W10sUT00LEM9MDtDPEk7QysrKUIucHVzaChXZShnLFEpKSxRKz00O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToibW9vZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLm1maGQ9QS5tZmhkKEEuZmluZEJveChJLFsibWZoZCJdLEIpWzBdKSxnLnRyYWY9QS5maW5kQm94KEksWyJ0cmFmIl0sQikubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFmKGcpfSkpfSkpfX0se2tleToibWZoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5zZXF1ZW5jZU51bWJlcj1XZShnKX0pKX19LHtrZXk6InRyYWYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7Zy50ZmhkPUEudGZoZChBLmZpbmRCb3goSSxbInRmaGQiXSxCKVswXSksZy50ZmR0PUEudGZkdChBLmZpbmRCb3goSSxbInRmZHQiXSxCKVswXSksZy50cnVuPUEudHJ1bihBLmZpbmRCb3goSSxbInRydW4iXSxCKVswXSl9KSl9fSx7a2V5OiJ0cnVuIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST1BLnZlcnNpb24sQj1BLmZsYWdzLFE9Zy5sZW5ndGgsQz1BLnNhbXBsZUNvdW50PVdlKGcpLEU9NDtpZihRPkUmJjEmQiYmKEEuZGF0YU9mZnNldD0tKDErfldlKGcsRSkpLEUrPTQpLFE+RSYmNCZCJiYoQS5maXJzdFNhbXBsZUZsYWdzPVdlKGcsRSksRSs9NCksQS5zYW1wbGVzPVtdLFE+RSlmb3IodmFyIGksdD0wO3Q8Qzt0KyspaT17fSwyNTYmQiYmKGkuZHVyYXRpb249V2UoZyxFKSxFKz00KSw1MTImQiYmKGkuc2l6ZT1XZShnLEUpLEUrPTQpLDEwMjQmQiYmKGkuZmxhZ3M9V2UoZyxFKSxFKz00KSwyMDQ4JkImJihpLmN0cz1JPy0oMSt+V2UoZyxFKzQpKTpXZShnLEUpLEUrPTQpLEEuc2FtcGxlcy5wdXNoKGkpfSkpfX0se2tleToidGZkdCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7MT09PUEudmVyc2lvbj9BLmJhc2VNZWRpYURlY29kZVRpbWU9VmUoZyk6QS5iYXNlTWVkaWFEZWNvZGVUaW1lPVdlKGcpfSkpfX0se2tleToicHJvYmUiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiEhQS5maW5kQm94KGcsWyJmdHlwIl0pfX0se2tleToicGFyc2VTYW1wbGVGbGFncyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJue2lzTGVhZGluZzooMTImQVswXSk+Pj4yLGRlcGVuZHNPbjozJkFbMF0saXNEZXBlbmRlZE9uOigxOTImQVsxXSk+Pj42LGhhc1JlZHVuZGFuY3k6KDQ4JkFbMV0pPj4+NCxwYWRkaW5nVmFsdWU6KDE0JkFbMV0pPj4+MSxpc05vblN5bmNTYW1wbGU6MSZBWzFdLGRlZ3JhZGF0aW9uUHJpb3JpdHk6QVsyXTw8OHxBWzNdfX19LHtrZXk6Im1vb3ZUb1RyYWNrIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDPUEudHJhaztpZihDJiZDLmxlbmd0aCl7dmFyIEU9Qy5maW5kKChmdW5jdGlvbihBKXt2YXIgZyxJO3JldHVybiJ2aWRlIj09PShudWxsPT09KGc9QS5tZGlhKXx8dm9pZCAwPT09Z3x8bnVsbD09PShJPWcuaGRscil8fHZvaWQgMD09PUk/dm9pZCAwOkkuaGFuZGxlclR5cGUpfSkpLGk9Qy5maW5kKChmdW5jdGlvbihBKXt2YXIgZyxJO3JldHVybiJzb3VuIj09PShudWxsPT09KGc9QS5tZGlhKXx8dm9pZCAwPT09Z3x8bnVsbD09PShJPWcuaGRscil8fHZvaWQgMD09PUk/dm9pZCAwOkkuaGFuZGxlclR5cGUpfSkpO2lmKEUmJmcpe3ZhciB0LG8sZSxuLHIsYSxzLGM9ZyxoPW51bGw9PT0odD1FLnRraGQpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnRyYWNrSWQ7bnVsbCE9aCYmKGMuaWQ9RS50a2hkLnRyYWNrSWQpLGMudGtoZER1cmF0aW9uPUUudGtoZC5kdXJhdGlvbixjLm12aGREdXJ0aW9uPUEubXZoZC5kdXJhdGlvbixjLm12aGRUaW1lY2FsZT1BLm12aGQudGltZXNjYWxlLGMudGltZXNjYWxlPWMuZm9ybWF0VGltZXNjYWxlPUUubWRpYS5tZGhkLnRpbWVzY2FsZSxjLmR1cmF0aW9uPUUubWRpYS5tZGhkLmR1cmF0aW9ufHxjLm12aGREdXJ0aW9uL2MubXZoZFRpbWVjYWxlKmMudGltZXNjYWxlO3ZhciBELHksZix3LHUsRixHLGQsUj1FLm1kaWEubWluZi5zdGJsLnN0c2QuZW50cmllc1swXTtpZihjLndpZHRoPVIud2lkdGgsYy5oZWlnaHQ9Ui5oZWlnaHQsUi5wYXNwJiYoYy5zYXJSYXRpbz1bUi5wYXNwLmhTcGFjaW5nLFIucGFzcC52U3BhY2luZ10pLFIuaHZjQyljLmNvZGVjVHlwZT1OZSxjLmNvZGVjPVIuaHZjQy5jb2RlYyxjLnZwcz1SLmh2Y0MudnBzLGMuc3BzPVIuaHZjQy5zcHMsYy5wcHM9Ui5odmNDLnBwcyxjLmh2Y0M9Ui5odmNDLmRhdGE7ZWxzZXtpZighUi5hdmNDKXRocm93IG5ldyBFcnJvcigidW5rbm93biB2aWRlbyBzdHNkIGVudHJ5Iik7Yy5jb2RlYz1SLmF2Y0MuY29kZWMsYy5zcHM9Ui5hdmNDLnNwcyxjLnBwcz1SLmF2Y0MucHBzfWlmKGMucHJlc2VudD0hMCxjLmV4dD17fSxjLmV4dC5zdHNzPW51bGw9PT0obz1FLm1kaWEpfHx2b2lkIDA9PT1vfHxudWxsPT09KGU9by5taW5mKXx8dm9pZCAwPT09ZXx8bnVsbD09PShuPWUuc3RibCl8fHZvaWQgMD09PW4/dm9pZCAwOm4uc3RzcyxjLmV4dC5jdHRzPW51bGw9PT0ocj1FLm1kaWEpfHx2b2lkIDA9PT1yfHxudWxsPT09KGE9ci5taW5mKXx8dm9pZCAwPT09YXx8bnVsbD09PShzPWEuc3RibCl8fHZvaWQgMD09PXM/dm9pZCAwOnMuY3R0cyxSJiYiZW5jdiI9PT1SLnR5cGUpYy5pc1ZpZGVvRW5jcnlwdGlvbj0hMCxSLmRlZmF1bHRfS0lEPW51bGw9PT0oRD1SLnNpbmYpfHx2b2lkIDA9PT1EfHxudWxsPT09KHk9RC5zY2hpKXx8dm9pZCAwPT09eT92b2lkIDA6eS50ZW5jLmRlZmF1bHRfS0lELFIuZGVmYXVsdF9Jc0VuY3J5cHRlZD1udWxsPT09KGY9Ui5zaW5mKXx8dm9pZCAwPT09Znx8bnVsbD09PSh3PWYuc2NoaSl8fHZvaWQgMD09PXc/dm9pZCAwOncudGVuYy5kZWZhdWx0X0lzRW5jcnlwdGVkLFIuZGVmYXVsdF9JVl9zaXplPW51bGw9PT0odT1SLnNpbmYpfHx2b2lkIDA9PT11fHxudWxsPT09KEY9dS5zY2hpKXx8dm9pZCAwPT09Rj92b2lkIDA6Ri50ZW5jLmRlZmF1bHRfSVZfc2l6ZSxjLnZpZGVvU2VuYz1FLm1kaWEubWluZi5zdGJsLnNlbmMmJkUubWRpYS5taW5mLnN0Ymwuc2VuYy5zYW1wbGVzLFIuZGF0YV9mb3JtYXQ9bnVsbD09PShHPVIuc2luZil8fHZvaWQgMD09PUd8fG51bGw9PT0oZD1HLmZybWEpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLmRhdGFfZm9ybWF0LGMudXNlRU1FPUEudXNlRU1FLGMua2lkVmFsdWU9QS5raWRWYWx1ZSxjLnBzc2g9QS5wc3NoLGMuZW5jdj1SfWlmKGkmJkkpe3ZhciBsLGssVSxTLE4sTSxZLEgscCxKPUksTD1udWxsPT09KGw9aS50a2hkKXx8dm9pZCAwPT09bD92b2lkIDA6bC50cmFja0lkO251bGwhPUwmJihKLmlkPWkudGtoZC50cmFja0lkKSxKLnRraGREdXJhdGlvbj1pLnRraGQuZHVyYXRpb24sSi5tdmhkRHVydGlvbj1BLm12aGQuZHVyYXRpb24sSi5tdmhkVGltZWNhbGU9QS5tdmhkLnRpbWVzY2FsZSxKLnRpbWVzY2FsZT1KLmZvcm1hdFRpbWVzY2FsZT1pLm1kaWEubWRoZC50aW1lc2NhbGUsSi5kdXJhdGlvbj1pLm1kaWEubWRoZC5kdXJhdGlvbnx8Si5tdmhkRHVydGlvbi9KLm12aGRUaW1lY2FsZSpKLnRpbWVzY2FsZTt2YXIgdixLLHgscSxtLGIsVCxqLFo9aS5tZGlhLm1pbmYuc3RibC5zdHNkLmVudHJpZXNbMF07c3dpdGNoKEouc2FtcGxlU2l6ZT1aLnNhbXBsZVNpemUsSi5zYW1wbGVSYXRlPVouc2FtcGxlUmF0ZSxKLmNoYW5uZWxDb3VudD1aLmNoYW5uZWxDb3VudCxKLnByZXNlbnQ9ITAsWi50eXBlKXtjYXNlImFsYXciOkouY29kZWNUeXBlPUouY29kZWM9WWUsSi5zYW1wbGVSYXRlPThlMzticmVhaztjYXNlInVsYXciOkouY29kZWNUeXBlPUouY29kZWM9SGUsSi5zYW1wbGVSYXRlPThlMzticmVhaztkZWZhdWx0Okouc2FtcGxlRHVyYXRpb249VGUuZ2V0RnJhbWVEdXJhdGlvbihKLnNhbXBsZVJhdGUsSi50aW1lc2NhbGUpLEouc2FtcGxlUmF0ZUluZGV4PVRlLmdldFJhdGVJbmRleEJ5UmF0ZShKLnNhbXBsZVJhdGUpLEoub2JqZWN0VHlwZT0obnVsbD09PShCPVouZXNkcyl8fHZvaWQgMD09PUI/dm9pZCAwOkIub2JqZWN0VHlwZSl8fDIsWi5lc2RzJiYoSi5jb25maWc9QXJyYXkuZnJvbShaLmVzZHMuY29uZmlnKSksSi5jb2RlYz0obnVsbD09PShRPVouZXNkcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEuY29kZWMpfHwibXA0YS40MC4yIn1pZihKLnNhbXBsZUR1cmF0aW9uPVRlLmdldEZyYW1lRHVyYXRpb24oSi5zYW1wbGVSYXRlLEoudGltZXNjYWxlKSxKLm9iamVjdFR5cGU9KG51bGw9PT0oaz1aLmVzZHMpfHx2b2lkIDA9PT1rP3ZvaWQgMDprLm9iamVjdFR5cGUpfHwyLFouZXNkcyYmKFouZXNkcy5jb25maWc/Si5jb25maWc9QXJyYXkuZnJvbShaLmVzZHMuY29uZmlnKTpjb25zb2xlLndhcm4oImVzZHMgY29uZmlnIGlzIG51bGwiKSksSi5jb2RlYz0obnVsbD09PShVPVouZXNkcyl8fHZvaWQgMD09PVU/dm9pZCAwOlUuY29kZWMpfHwibXA0YS40MC4yIixKLnNhbXBsZVJhdGVJbmRleD1UZS5nZXRSYXRlSW5kZXhCeVJhdGUoSi5zYW1wbGVSYXRlKSxKLmV4dD17fSxKLmV4dC5zdHNzPW51bGw9PT0oUz1pLm1kaWEpfHx2b2lkIDA9PT1TfHxudWxsPT09KE49Uy5taW5mKXx8dm9pZCAwPT09Tnx8bnVsbD09PShNPU4uc3RibCl8fHZvaWQgMD09PU0/dm9pZCAwOk0uc3RzcyxKLmV4dC5jdHRzPW51bGw9PT0oWT1pLm1kaWEpfHx2b2lkIDA9PT1ZfHxudWxsPT09KEg9WS5taW5mKXx8dm9pZCAwPT09SHx8bnVsbD09PShwPUguc3RibCl8fHZvaWQgMD09PXA/dm9pZCAwOnAuY3R0cyxKLnByZXNlbnQ9ITAsWiYmImVuY2EiPT09Wi50eXBlKUouaXNBdWRpb0VuY3J5cHRpb249ITAsWi5kYXRhX2Zvcm1hdD1udWxsPT09KHY9Wi5zaW5mKXx8dm9pZCAwPT09dnx8bnVsbD09PShLPXYuZnJtYSl8fHZvaWQgMD09PUs/dm9pZCAwOksuZGF0YV9mb3JtYXQsWi5kZWZhdWx0X0tJRD1udWxsPT09KHg9Wi5zaW5mKXx8dm9pZCAwPT09eHx8bnVsbD09PShxPXguc2NoaSl8fHZvaWQgMD09PXE/dm9pZCAwOnEudGVuYy5kZWZhdWx0X0tJRCxaLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9bnVsbD09PShtPVouc2luZil8fHZvaWQgMD09PW18fG51bGw9PT0oYj1tLnNjaGkpfHx2b2lkIDA9PT1iP3ZvaWQgMDpiLnRlbmMuZGVmYXVsdF9Jc0VuY3J5cHRlZCxaLmRlZmF1bHRfSVZfc2l6ZT1udWxsPT09KFQ9Wi5zaW5mKXx8dm9pZCAwPT09VHx8bnVsbD09PShqPVQuc2NoaSl8fHZvaWQgMD09PWo/dm9pZCAwOmoudGVuYy5kZWZhdWx0X0lWX3NpemUsSi5hdWRpb1NlbmM9aS5tZGlhLm1pbmYuc3RibC5zZW5jJiZpLm1kaWEubWluZi5zdGJsLnNlbmMuc2FtcGxlcyxKLnVzZUVNRT1BLnVzZUVNRSxKLmtpZFZhbHVlPUEua2lkVmFsdWUsSi5lbmNhPVp9aWYoSSYmKEkuaXNWaWRlb0VuY3J5cHRpb249ISFnJiZnLmlzVmlkZW9FbmNyeXB0aW9uKSxnJiYoZy5pc0F1ZGlvRW5jcnlwdGlvbj0hIUkmJkkuaXNBdWRpb0VuY3J5cHRpb24pLG51bGwhPWcmJmcuZW5jdnx8bnVsbCE9SSYmSS5lbmNhKXt2YXIgTyxXLFY9bnVsbD09Z3x8bnVsbD09PShPPWcuZW5jdil8fHZvaWQgMD09PU8/dm9pZCAwOk8uZGVmYXVsdF9LSUQsWD1udWxsPT1JfHxudWxsPT09KFc9SS5lbmNhKXx8dm9pZCAwPT09Vz92b2lkIDA6Vy5kZWZhdWx0X0tJRCxQPVZ8fFg/KFZ8fFgpLmpvaW4oIiIpOm51bGw7ZyYmKGcua2lkPVApLEkmJihJLmtpZD1QKX1yZXR1cm4gZyYmKGcuZmxhZ3M9Mzg0MSksSSYmKEkuZmxhZ3M9MTc5Mykse3ZpZGVvVHJhY2s6ZyxhdWRpb1RyYWNrOkl9fX19LHtrZXk6ImV2YWx1YXRlRGVmYXVsdER1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUT1udWxsPT1nfHxudWxsPT09KEI9Zy5zYW1wbGVzKXx8dm9pZCAwPT09Qj92b2lkIDA6Qi5sZW5ndGg7cmV0dXJuIFE/MTAyNCpRL2cudGltZXNjYWxlKkEudGltZXNjYWxlL0k6MTAyNH19LHtrZXk6Im1vb2ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUT17fTtyZXR1cm4gZy5tZmhkJiYoSSYmKEkuc2VxdWVuY2VOdW1iZXI9Zy5tZmhkLnNlcXVlbmNlTnVtYmVyKSxCJiYoQi5zZXF1ZW5jZU51bWJlcj1nLm1maGQuc2VxdWVuY2VOdW1iZXIpKSxnLnRyYWYuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEM9Zy50ZmhkLEU9Zy50ZmR0LGk9Zy50cnVuO2lmKEMmJmkpe0UmJihJJiZJLmlkPT09Qy50cmFja0lkJiYoSS5iYXNlTWVkaWFEZWNvZGVUaW1lPUUuYmFzZU1lZGlhRGVjb2RlVGltZSksQiYmQi5pZD09PUMudHJhY2tJZCYmKEIuYmFzZU1lZGlhRGVjb2RlVGltZT1FLmJhc2VNZWRpYURlY29kZVRpbWUpKTt2YXIgdD1DLmRlZmF1bHRTYW1wbGVTaXplfHwwLG89Qy5kZWZhdWx0U2FtcGxlRHVyYXRpb258fEEuZXZhbHVhdGVEZWZhdWx0RHVyYXRpb24oSSxCLGkuc2FtcGxlcy5sZW5ndGh8fGkuc2FtcGxlQ291bnQpLGU9aS5kYXRhT2Zmc2V0fHwwLG49MCxyPS0xO2lmKCFpLnNhbXBsZXMubGVuZ3RoJiZpLnNhbXBsZUNvdW50KXtRW0MudHJhY2tJZF09W107Zm9yKHZhciBhPTA7YTxpLnNhbXBsZUNvdW50O2ErKylRW0MudHJhY2tJZF0ucHVzaCh7b2Zmc2V0OmUsZHRzOm4sZHVyYXRpb246byxzaXplOnR9KSxuKz1vLGUrPXR9ZWxzZSBRW0MudHJhY2tJZF09aS5zYW1wbGVzLm1hcCgoZnVuY3Rpb24oQSxnKXtyZXR1cm4oQT17b2Zmc2V0OmUsZHRzOm4scHRzOm4rKEEuY3RzfHwwKSxkdXJhdGlvbjpBLmR1cmF0aW9ufHxvLHNpemU6QS5zaXplfHx0LGdvcElkOnIsa2V5ZnJhbWU6MD09PWd8fG51bGwhPT1BLmZsYWdzJiZ2b2lkIDAhPT1BLmZsYWdzJiYoNjU1MzYmQS5mbGFncyk+Pj4wIT02NTUzNn0pLmtleWZyYW1lJiYocisrLEEuZ29wSWQ9ciksbis9QS5kdXJhdGlvbixlKz1BLnNpemUsQX0pKX19KSksUX19LHtrZXk6Im1vb3ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPUEudHJhaztpZihnJiZnLmxlbmd0aCl7dmFyIEk9Zy5maW5kKChmdW5jdGlvbihBKXt2YXIgZyxJO3JldHVybiJ2aWRlIj09PShudWxsPT09KGc9QS5tZGlhKXx8dm9pZCAwPT09Z3x8bnVsbD09PShJPWcuaGRscil8fHZvaWQgMD09PUk/dm9pZCAwOkkuaGFuZGxlclR5cGUpfSkpLEI9Zy5maW5kKChmdW5jdGlvbihBKXt2YXIgZyxJO3JldHVybiJzb3VuIj09PShudWxsPT09KGc9QS5tZGlhKXx8dm9pZCAwPT09Z3x8bnVsbD09PShJPWcuaGRscil8fHZvaWQgMD09PUk/dm9pZCAwOkkuaGFuZGxlclR5cGUpfSkpO2lmKEl8fEIpe3ZhciBRLEM7aWYoSSl7dmFyIEUsaSx0PW51bGw9PT0oRT1JLm1kaWEpfHx2b2lkIDA9PT1FfHxudWxsPT09KGk9RS5taW5mKXx8dm9pZCAwPT09aT92b2lkIDA6aS5zdGJsO2lmKCF0KXJldHVybjt2YXIgbz10LnN0dHMsZT10LnN0c2Msbj10LnN0c3oscj10LnN0Y28sYT10LnN0c3Mscz10LmN0dHM7aWYoIShvJiZlJiZuJiZyJiZhKSlyZXR1cm47UT1fZShvLGUsbixyLHMsYSl9aWYoQil7dmFyIGMsaCxELHk9bnVsbD09PShjPUIubWRpYSl8fHZvaWQgMD09PWN8fG51bGw9PT0oaD1jLm1pbmYpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLnN0Ymw7aWYoIXkpcmV0dXJuO3ZhciBmPW51bGw9PT0oRD1CLm1kaWEubWRoZCl8fHZvaWQgMD09PUQ/dm9pZCAwOkQudGltZXNjYWxlLHc9eS5zdHRzLHU9eS5zdHNjLEY9eS5zdHN6LEc9eS5zdGNvO2lmKCEoZiYmdyYmdSYmRiYmRykpcmV0dXJuO0M9X2Uodyx1LEYsRyl9cmV0dXJue3ZpZGVvU2FtcGxlczpRLGF1ZGlvU2FtcGxlczpDfX19fX1dKSxBfSgpO2Z1bmN0aW9uIF9lKEEsZyxJLEIsUSxDKXt2YXIgRSxpLHQsbz1bXSxlPW51bGw9PVE/dm9pZCAwOlEuZW50cmllcyxuPWcuZW50cmllcyxyPUIuZW50cmllcyxhPUkuZW50cnlTaXplcyxzPW51bGw9PUM/dm9pZCAwOkMuZW50cmllcztzJiYoRT17fSxzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0VbQS0xXT0hMH0pKSksZSYmKGk9W10sZS5mb3JFYWNoKChmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5jb3VudCxJPUEub2Zmc2V0LEI9MDtCPGc7QisrKWkucHVzaChJKX0pKSk7dmFyIGM9LTEsaD0wLEQ9MCx5PTAsZj0wLHc9MCx1PW5bMF0uc2FtcGxlc1BlckNodW5rLEY9blsxXT9uWzFdLmZpcnN0Q2h1bmstMToxLzA7cmV0dXJuIEEuZW50cmllcy5mb3JFYWNoKChmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5jb3VudCxCPUEuZGVsdGEsUT0wO1E8ZztRKyspdD17ZHRzOmgsZHVyYXRpb246QixzaXplOmFbRF18fEkuc2FtcGxlU2l6ZSxvZmZzZXQ6clt5XSt3LGluZGV4OkR9LHMmJih0LmtleWZyYW1lPUVbRF0sdC5rZXlmcmFtZSYmYysrLHQuZ29wSWQ9YyksaSYmRDxpLmxlbmd0aCYmKHQucHRzPXQuZHRzK2lbRF0pLG8ucHVzaCh0KSxoKz1CLCsrRDx1P3crPXQuc2l6ZTooeSsrLHc9MCx5Pj1GJiYoZisrLEY9bltmKzFdP25bZisxXS5maXJzdENodW5rLTE6MS8wKSx1Kz1uW2ZdLnNhbXBsZXNQZXJDaHVuayl9KSksb31mdW5jdGlvbiAkZShBLGcpe3JldHVybiBBLmRhdGFSZWZlcmVuY2VJbmRleD1PZShnLDYpLEEud2lkdGg9T2UoZywyNCksQS5oZWlnaHQ9T2UoZywyNiksQS5ob3JpenJlc29sdXRpb249V2UoZywyOCksQS52ZXJ0cmVzb2x1dGlvbj1XZShnLDMyKSxBLmZyYW1lQ291bnQ9T2UoZyw0MCksQS5kZXB0aD1PZShnLDc0KSw3OH1mdW5jdGlvbiBBbihBLGcpe3JldHVybiBBLmRhdGFSZWZlcmVuY2VJbmRleD1PZShnLDYpLEEuY2hhbm5lbENvdW50PU9lKGcsMTYpLEEuc2FtcGxlU2l6ZT1PZShnLDE4KSxBLnNhbXBsZVJhdGU9V2UoZywyNCkvNjU1MzYsMjh9ZnVuY3Rpb24gZ24oQSxnLEkpe2lmKEEpe2lmKEEuc2l6ZSE9PUEuZGF0YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJib3ggIi5jb25jYXQoQS50eXBlLCIgc2l6ZSAhPT0gZGF0YS5sZW5ndGgiKSk7dmFyIEI9e3N0YXJ0OkEuc3RhcnQsc2l6ZTpBLnNpemUsaGVhZGVyU2l6ZTpBLmhlYWRlclNpemUsdHlwZTpBLnR5cGV9O3JldHVybiBnJiYoQi52ZXJzaW9uPUEuZGF0YVtBLmhlYWRlclNpemVdLEIuZmxhZ3M9ZnVuY3Rpb24oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuKEFbZ108PDE2KSsoQVtnKzFdPDw4KSsoQVtnKzJdfHwwKX0oQS5kYXRhLEEuaGVhZGVyU2l6ZSsxKSxCLmhlYWRlclNpemUrPTQpLEkoQixBLmRhdGEuc3ViYXJyYXkoQi5oZWFkZXJTaXplKSxCLnN0YXJ0K0IuaGVhZGVyU2l6ZSksQn19dmFyIEluPWZ1bmN0aW9uKCl7Zm9yKHZhciBBPVtdLGc9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShnKSxCPTA7QjxnO0IrKylJW0JdPWFyZ3VtZW50c1tCXTtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihnKXtBLnB1c2goZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1TdHJpbmcoSSksUT1nPj4wLEM9TWF0aC5jZWlsKFEvQi5sZW5ndGgpLEU9W10saT1TdHJpbmcoQSk7Qy0tOylFLnB1c2goQik7cmV0dXJuIEUuam9pbigiIikuc3Vic3RyaW5nKDAsUS1pLmxlbmd0aCkraX0oTnVtYmVyKGcpLnRvU3RyaW5nKDE2KSwyLDApKX0pKSxBWzBdfSxCbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe0RlKHRoaXMsQSksdGhpcy52aWRlb1RyYWNrPWd8fG5ldyBwZSx0aGlzLmF1ZGlvVHJhY2s9SXx8bmV3IEplLHRoaXMubWV0YWRhdGFUcmFjaz1CfHxuZXcgS2V9cmV0dXJuIGZlKEEsW3trZXk6ImRlbXV4Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMudmlkZW9UcmFjayxCPXRoaXMuYXVkaW9UcmFjayxRPUkuZXhpc3QoKSxDPUIuZXhpc3QoKTtpZihJLnNhbXBsZXM9W10sQi5zYW1wbGVzPVtdLGcpe2lmKCFDKXt2YXIgRT16ZS5maW5kQm94KGcsWyJtb292Il0pWzBdO2lmKCFFKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIG1vb3YgYm94Iik7emUubW9vdlRvVHJhY2soemUubW9vdihFKSxudWxsLEIpfXZhciBpPXplLmZpbmRCb3goZyxbIm1vb2YiXSlbMF07aWYoaSl7dmFyIHQ9emUubW9vZlRvU2FtcGxlcyh6ZS5tb29mKGkpLG51bGwsQilbQi5pZF0sbz1CLmJhc2VNZWRpYURlY29kZVRpbWU7aWYodCl7dmFyIGU9aS5zdGFydDt0Lm1hcCgoZnVuY3Rpb24oQSl7QS5vZmZzZXQrPWU7dmFyIEk9Zy5zdWJhcnJheShBLm9mZnNldCxBLm9mZnNldCtBLnNpemUpO0Iuc2FtcGxlcy5wdXNoKG5ldyB2ZShBLmR0cytvLEksQS5kdXJhdGlvbikpfSkpfX19aWYoQSl7aWYoIVEmJiFDKXt2YXIgbj16ZS5maW5kQm94KEEsWyJtb292Il0pWzBdO2lmKCFuKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIG1vb3YgYm94Iik7emUubW9vdlRvVHJhY2soemUubW9vdihuKSxJLEIpfXZhciByPXplLmZpbmRCb3goQSxbIm1vb2YiXSlbMF07aWYocil7dmFyIGEscz16ZS5tb29mVG9TYW1wbGVzKHplLm1vb2YociksSSxCKSxjPUkuYmFzZU1lZGlhRGVjb2RlVGltZSxoPUIuYmFzZU1lZGlhRGVjb2RlVGltZSxEPXIuc3RhcnQ7T2JqZWN0LmtleXMocykuZm9yRWFjaCgoZnVuY3Rpb24oZyl7SS5pZD09Zz9zW2ddLm1hcCgoZnVuY3Rpb24oZyl7Zy5vZmZzZXQrPUQ7dmFyIEI9bmV3IExlKChnLnB0c3x8Zy5kdHMpK2MsZy5kdHMrYyk7Qi5kdXJhdGlvbj1nLmR1cmF0aW9uLEIuZ29wSWQ9Zy5nb3BJZCxnLmtleWZyYW1lJiZCLnNldFRvS2V5ZnJhbWUoKTt2YXIgUT1BLnN1YmFycmF5KGcub2Zmc2V0LGcub2Zmc2V0K2cuc2l6ZSk7Qi5kYXRhPVE7Zm9yKHZhciBDPTAsRT1RLmxlbmd0aC0xO0M8RTspYT1XZShRLEMpLEMrPTQsQi51bml0cy5wdXNoKFEuc3ViYXJyYXkoQyxDK2EpKSxDKz1hO0kuc2FtcGxlcy5wdXNoKEIpfSkpOkIuaWQ9PWcmJnNbZ10ubWFwKChmdW5jdGlvbihnKXtnLm9mZnNldCs9RDt2YXIgST1BLnN1YmFycmF5KGcub2Zmc2V0LGcub2Zmc2V0K2cuc2l6ZSk7Qi5zYW1wbGVzLnB1c2gobmV3IHZlKGcuZHRzK2gsSSxnLmR1cmF0aW9uKSl9KSl9KSl9fXJldHVybnt2aWRlb1RyYWNrOkksYXVkaW9UcmFjazpCLG1ldGFkYXRhVHJhY2s6dGhpcy5tZXRhZGF0YVRyYWNrfX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmlkZW9UcmFjay5yZXNldCgpLHRoaXMuYXVkaW9UcmFjay5yZXNldCgpLHRoaXMubWV0YWRhdGFUcmFjay5yZXNldCgpfX1dLFt7a2V5OiJwcm9iZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHplLnByb2JlKEEpfX1dKSxBfSgpO3ZhciBRbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtEZSh0aGlzLEEpLHRoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5KDApfXJldHVybiBmZShBLFt7a2V5OiJ3cml0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIEE9dGhpcyxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07SS5mb3JFYWNoKChmdW5jdGlvbihnKXtnP0EuYnVmZmVyPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZz0wLEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJPjE/SS0xOjApLFE9MTtRPEk7USsrKUJbUS0xXT1hcmd1bWVudHNbUV07Qi5mb3JFYWNoKChmdW5jdGlvbihBKXtnKz1BLmxlbmd0aH0pKTt2YXIgQz1uZXcgQShnKSxFPTA7cmV0dXJuIEIuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qy5zZXQoQSxFKSxFKz1BLmxlbmd0aH0pKSxDfShVaW50OEFycmF5LEEuYnVmZmVyLGcpOndpbmRvdy5jb25zb2xlLndhcm4oZyl9KSl9fV0sW3trZXk6IndyaXRlVWludDE2Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0E+PjgmMjU1LDI1NSZBXSl9fSx7a2V5OiJ3cml0ZVVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdKX19XSksQX0oKSxDbj1NYXRoLnBvdygyLDMyKS0xLEVuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSl9cmV0dXJuIGZlKEEsbnVsbCxbe2tleToiYm94Iix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShnPjE/Zy0xOjApLEI9MTtCPGc7QisrKUlbQi0xXT1hcmd1bWVudHNbQl07dmFyIFE9OCsoST1JLmZpbHRlcihCb29sZWFuKSkucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBK2cuYnl0ZUxlbmd0aH0pLDApLEM9bmV3IFVpbnQ4QXJyYXkoUSk7Q1swXT1RPj4yNCYyNTUsQ1sxXT1RPj4xNiYyNTUsQ1syXT1RPj44JjI1NSxDWzNdPTI1NSZRLEMuc2V0KEEsNCk7dmFyIEU9ODtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihBKXtDLnNldChBLEUpLEUrPUEuYnl0ZUxlbmd0aH0pKSxDfX0se2tleToiZnR5cCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZmluZCgoZnVuY3Rpb24oQSl7cmV0dXJuIEEudHlwZT09PWxlJiZBLmNvZGVjVHlwZT09PU5lfSkpP0EuRlRZUEhFVjE6QS5GVFlQQVZDMX19LHtrZXk6ImluaXRTZWdtZW50Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gamUoQS5mdHlwKGcpLEEubW9vdihnKSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMSwwLDAsMF0uY29uY2F0KFsxNiwxMTksMjM5LDIzNiwxOTIsMTc4LDc3LDIsMTcyLDIyNyw2MCwzMCw4MiwyMjYsMjUxLDc1XSxbMCwwLDAsMV0sUGUoZy5raWQpLFswLDAsMCwwXSkpO3JldHVybiBBLmJveChBLnR5cGVzLnBzc2gsSSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtpZihnWzBdLnVzZUVNRSYmKGdbMF0uZW5jdnx8Z1swXS5lbmNhKSl7Z1swXS5wc3NofHwoZ1swXS5wc3NoPXtraWQ6Z1swXS5raWR9KTt2YXIgST10aGlzLnBzc2goZ1swXS5wc3NoKTtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLm12aGREdXJ0aW9ufHxnWzBdLmR1cmF0aW9uLGdbMF0ubXZoZFRpbWVjYWxlfHxnWzBdLnRpbWVzY2FsZSksQS5tdmV4KGcpXS5jb25jYXQoRmUoZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSkpLFtJXSkpfXJldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb3YsQS5tdmhkKGdbMF0ubXZoZER1cnRpb258fGdbMF0uZHVyYXRpb24sZ1swXS5tdmhkVGltZWNhbGV8fGdbMF0udGltZXNjYWxlKV0uY29uY2F0KEZlKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFrKGcpfSkpKSxbQS5tdmV4KGcpXSkpfX0se2tleToibXZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tdmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwxLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSkpfX0se2tleToidHJhayIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLnRraGREdXJhdGlvbnx8MCxnLndpZHRoLGcuaGVpZ2h0KSxBLm1kaWEoZykpfX0se2tleToidGtoZCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTowO3JldHVybiBBLmJveChBLnR5cGVzLnRraGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDcsMCwwLDAsMCwwLDAsMCwwLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMCxRPj44JjI1NSwyNTUmUSwwLDBdKSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmYoZykpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsODUsMTk2LDAsMF0pKX19LHtrZXk6ImhkbHIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLmhkbHIsQS5IRExSX1RZUEVTW2ddKX19LHtrZXk6Im1pbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1pbmYsZy50eXBlPT09bGU/QS5WTUhEOkEuU01IRCxBLkRJTkYsQS5zdGJsKGcpKX19LHtrZXk6InN0YmwiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPVtdO3JldHVybiBnJiZnLmV4dCYmZy5leHQuc3RzcyYmSS5wdXNoKEEuc3RzcyhnLmV4dC5zdHNzLmVudHJpZXMpKSxBLmJveChBLnR5cGVzLnN0YmwsQS5zdHNkKGcpLEEuU1RUUyxJWzBdLEEuU1RTQyxBLlNUU1osQS5TVENPKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJO3JldHVybiBJPSJhdWRpbyI9PT1nLnR5cGU/Zy51c2VFTUUmJmcuZW5jYT9BLmVuY2EoZyk6QS5tcDRhKGcpOmcudXNlRU1FJiZnLmVuY3Y/QS5lbmN2KGcpOkEuYXZjMWhldjEoZyksQS5ib3goQS50eXBlcy5zdHNkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDFdKSxJKX19LHtrZXk6ImVuY2EiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuZW5jYS5jaGFubmVsQ291bnQsQj1nLmVuY2Euc2FtcGxlUmF0ZSxRPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsSSwwLDE2LDAsMCwwLDAsQj4+OCYyNTUsMjU1JkIsMCwwXSksQz1BLmVzZHMoZy5jb25maWcpLEU9QS5zaW5mKGcuZW5jYSk7cmV0dXJuIEEuYm94KEEudHlwZXMuZW5jYSxRLEMsRSl9fSx7a2V5OiJlbmN2Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgSSxCLFE9Zy5zcHMubGVuZ3RoPjA/Zy5zcHNbMF06W10sQz1nLnBwcy5sZW5ndGg+MD9nLnBwc1swXTpbXSxFPWcud2lkdGgsaT1nLmhlaWdodCx0PWcuc2FyUmF0aW9bMF0sbz1nLnNhclJhdGlvWzFdLGU9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLEU+PjgmMjU1LDI1NSZFLGk+PjgmMjU1LDI1NSZpLDAsNzIsMCwwLDAsNzIsMCwwLDAsMCwwLDAsMCwxLDE4LDEwMCw5NywxMDUsMTA4LDEyMSwxMDksMTExLDExNiwxMDUsMTExLDExMCw0NywxMDQsMTA4LDExNSw0NiwxMDYsMTE1LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwxNywxN10pLG49bmV3IFVpbnQ4QXJyYXkoKEk9KEI9WzEsUVsxXSxRWzJdLFFbM10sMjU1LDIyNSxRLmxlbmd0aD4+PjgmMjU1LDI1NSZRLmxlbmd0aF0pLmNvbmNhdC5hcHBseShCLEZlKFEpKS5jb25jYXQoWzEsQy5sZW5ndGg+Pj44JjI1NSwyNTUmQy5sZW5ndGhdKSkuY29uY2F0LmFwcGx5KEksRmUoQykpKSxyPW5ldyBVaW50OEFycmF5KFswLDAsODgsNTcsMCwxNSwyMDAsMTkyLDAsNCw4Niw3Ml0pLGE9QS5zaW5mKGcuZW5jdikscz1uZXcgVWludDhBcnJheShbdD4+MjQsdD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LG8+PjI0LG8+PjE2JjI1NSxvPj44JjI1NSwyNTUmb10pO3JldHVybiBBLmJveChBLnR5cGVzLmVuY3YsZSxBLmJveChBLnR5cGVzLmF2Y0MsbiksQS5ib3goQS50eXBlcy5idHJ0LHIpLGEsQS5ib3goQS50eXBlcy5wYXNwLHMpKX19LHtrZXk6InNjaGkiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBVaW50OEFycmF5KFtdKSxCPUEudGVuYyhnKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zY2hpLEksQil9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMjU1JmcuZGVmYXVsdF9Jc0VuY3J5cHRlZCwyNTUmZy5kZWZhdWx0X0lWX3NpemVdLmNvbmNhdChQZShnLmRlZmF1bHRfS0lEKSkpO3JldHVybiBBLmJveChBLnR5cGVzLnRlbmMsSSl9fSx7a2V5OiJzaW5mIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbXSksQj1uZXcgVWludDhBcnJheShbZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDApLGcuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgxKSxnLmRhdGFfZm9ybWF0LmNoYXJDb2RlQXQoMiksZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDMpXSksUT1uZXcgVWludDhBcnJheShbMCwwLDAsMCw5OSwxMDEsMTEwLDk5LDAsMSwwLDBdKSxDPUEuc2NoaShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zaW5mLEksQS5ib3goQS50eXBlcy5mcm1hLEIpLEEuYm94KEEudHlwZXMuc2NobSxRKSxDKX19LHtrZXk6ImF2YzFoZXYxIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmNvZGVjVHlwZT09PU5lLEI9ST9BLnR5cGVzLmh2YzE6QS50eXBlcy5hdmMxLFE9ST9BLmh2Y0MoZyk6QS5hdmNDKGcpLEM9W25ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxnLndpZHRoPj44JjI1NSwyNTUmZy53aWR0aCxnLmhlaWdodD4+OCYyNTUsMjU1JmcuaGVpZ2h0LDAsNzIsMCwwLDAsNzIsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDE3LDE3XSksUV07cmV0dXJuIEk/Qy5wdXNoKEEuYm94KEEudHlwZXMuZmllbCxuZXcgVWludDhBcnJheShbMSwwXSkpKTpnLnNhclJhdGlvJiZnLnNhclJhdGlvLmxlbmd0aD4xJiZDLnB1c2goQS5wYXNwKGcuc2FyUmF0aW8pKSxBLmJveC5hcHBseShBLFtCXS5jb25jYXQoQykpfX0se2tleToiYXZjQyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQixRLEM9W10sRT1bXTtyZXR1cm4gZy5zcHMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7UT1BLmJ5dGVMZW5ndGgsQy5wdXNoKFE+Pj44JjI1NSksQy5wdXNoKDI1NSZRKSxDLnB1c2guYXBwbHkoQyxGZShBKSl9KSksZy5wcHMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7UT1BLmJ5dGVMZW5ndGgsRS5wdXNoKFE+Pj44JjI1NSksRS5wdXNoKDI1NSZRKSxFLnB1c2guYXBwbHkoRSxGZShBKSl9KSksQS5ib3goQS50eXBlcy5hdmNDLG5ldyBVaW50OEFycmF5KChJPShCPVsxLENbM10sQ1s0XSxDWzVdLDI1NSwyMjR8Zy5zcHMubGVuZ3RoXSkuY29uY2F0LmFwcGx5KEIsQykuY29uY2F0KFtnLnBwcy5sZW5ndGhdKSkuY29uY2F0LmFwcGx5KEksRSkpKX19LHtrZXk6Imh2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuaHZjQztpZihJIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEkgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBJO3ZhciBCLFE9Zy52cHMsQz1nLnNwcyxFPWcucHBzO2lmKEkpe3ZhciBpPUkuZ2VuZXJhbFByb2ZpbGVDb21wYXRpYmlsaXR5RmxhZ3MsdD1JLmdlbmVyYWxDb25zdHJhaW50SW5kaWNhdG9yRmxhZ3Msbz0oUS5sZW5ndGgmJjEpKyhDLmxlbmd0aCYmMSkrKEUubGVuZ3RoJiYxKTtCPVsxLEkuZ2VuZXJhbFByb2ZpbGVTcGFjZTw8NnxJLmdlbmVyYWxUaWVyRmxhZzw8NXxJLmdlbmVyYWxQcm9maWxlSWRjLGk+Pj4yNCxpPj4+MTYsaT4+PjgsaSx0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSxJLmdlbmVyYWxMZXZlbElkYywyNDAsMCwyNTIsMjUyfEkuY2hyb21hRm9ybWF0SWRjLDI0OHxJLmJpdERlcHRoTHVtYU1pbnVzOCwyNDh8SS5iaXREZXB0aENocm9tYU1pbnVzOCwwLDAsSS5udW1UZW1wb3JhbExheWVyczw8M3xJLnRlbXBvcmFsSWROZXN0ZWQ8PDJ8MyxvXTt2YXIgZT1mdW5jdGlvbihBKXt2YXIgZztCLnB1c2goQS5sZW5ndGg+PjgsQS5sZW5ndGgpLChnPUIpLnB1c2guYXBwbHkoZyxGZShBKSl9O1EubGVuZ3RoJiYoQi5wdXNoKDE2MCwwLFEubGVuZ3RoKSxRLmZvckVhY2goZSkpLEMubGVuZ3RoJiYoQi5wdXNoKDE2MSwwLEMubGVuZ3RoKSxDLmZvckVhY2goZSkpLEUubGVuZ3RoJiYoQi5wdXNoKDE2MiwwLEUubGVuZ3RoKSxFLmZvckVhY2goZSkpfWVsc2UgQj1bMSwxLDk2LDAsMCwwLDE0NCwwLDAsMCwwLDAsOTMsMjQwLDAsMjUyLDI1MywyNDgsMjQ4LDAsMCwxNSwzLDE2MCwwLDEsMCwyNCw2NCwxLDEyLDEsMjU1LDI1NSwxLDk2LDAsMCwzLDAsMTQ0LDAsMCwzLDAsMCwzLDAsOTMsMTUzLDE1Miw5LDE2MSwwLDEsMCw0NSw2NiwxLDEsMSw5NiwwLDAsMywwLDE0NCwwLDAsMywwLDAsMywwLDkzLDE2MCwyLDEyOCwxMjgsNDUsMjIsODksMTUzLDE2NCwxNDcsNDMsMTU0LDEyOCwxMjgsMTI4LDEzMCwwLDAsMywwLDIsMCwwLDMsMCw1MCwxNiwxNjIsMCwxLDAsNyw2OCwxLDE5MywxMTQsMTgwLDk4LDY0XTtyZXR1cm4gQS5ib3goQS50eXBlcy5odmNDLG5ldyBVaW50OEFycmF5KEIpKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPXVlKGcsMiksQj1JWzBdLFE9SVsxXTtyZXR1cm4gQS5ib3goQS50eXBlcy5wYXNwLG5ldyBVaW50OEFycmF5KFtCPj4yNCxCPj4xNiYyNTUsQj4+OCYyNTUsMjU1JkIsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubXA0YSxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLGcuY2hhbm5lbENvdW50LDAsMTYsMCwwLDAsMCxnLnNhbXBsZVJhdGU+PjgmMjU1LDI1NSZnLnNhbXBsZVJhdGUsMCwwXSksZy5jb25maWcubGVuZ3RoP0EuZXNkcyhnLmNvbmZpZyk6dm9pZCAwKX19LHtrZXk6ImVzZHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoO3JldHVybiBBLmJveChBLnR5cGVzLmVzZHMsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMywyMytJLDAsMCwwLDQsMTUrSSw2NCwyMSwwLDYsMCwwLDAsMjE4LDE5MiwwLDAsMjE4LDE5Miw1XS5jb25jYXQoW0ldKS5jb25jYXQoZykuY29uY2F0KFs2LDEsMl0pKSl9fSx7a2V5OiJtdmV4Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tdmV4XS5jb25jYXQoRmUoZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyZXgoZy5pZCl9KSkpKSl9fSx7a2V5OiJ0cmV4Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmV4LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwxXSkpfX0se2tleToidHJleDEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLnRyZXgsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLDAsMCwwLDEsMCwwLDIsMCwwLDAsMCwwLDAsMSwwLDBdKSl9fSx7a2V5OiJ0cmV4MiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJleCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMSwwLDAsNCwwLDAsMCwwLDAsMiwwLDAsMF0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb2YsQS5tZmhkKGdbMF0uc2FtcGxlcz9nWzBdLnNhbXBsZXNbMF0uZ29wSWQ6MCldLmNvbmNhdChGZShnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKSkpKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1maGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSkpfX0se2tleToidHJhZiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9QS50ZmhkKGcuaWQpLEI9QS50ZmR0KGcsZy5iYXNlTWVkaWFEZWNvZGVUaW1lKSxRPTA7aWYoZy5pc1ZpZGVvJiZnLnZpZGVvU2VuYyYmZy52aWRlb1NlbmMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7USs9OCxBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihRKz0yLFErPTYqQS5zdWJzYW1wbGVzLmxlbmd0aCl9KSksZy52aWRlb1NlbmNMZW5ndGg9USxnLnVzZUVNRSYmKGcuaXNWaWRlb0VuY3J5cHRpb258fGcuaXNBdWRpb0VuY3J5cHRpb24pKXtpZihnLmlzVmlkZW9FbmNyeXB0aW9uKXtpZihnLmlzVmlkZW8pe3ZhciBDPUEuc2FpeihnKSxFPUEuc2FpbyhnKSxpPUEudHJ1bjEoZyksdD1BLnNlbmMoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsQyxFLGksdCl9aWYoZy5pc0F1ZGlvRW5jcnlwdGlvbil7dmFyIG89QS5zYmdwKCksZT1BLnNhaXooZyksbj1BLnNhaW8oZykscj1BLnNlbmMoZyksYT1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLG8sZSxuLHIsYSl9dmFyIHM9QS5zYmdwKCksYz1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLHMsYyl9aWYoZy5pc1ZpZGVvKXt2YXIgaD1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLGgpfXZhciBEPUEuc2JncCgpLHk9QS5zYWl6KGcpLGY9QS5zYWlvKGcpLHc9QS5zZW5jKGcpLHU9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixELHksZix3LHUpfXZhciBGPUEuc2R0cChnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixGLEEudHJ1bihnLnNhbXBsZXMsRi5ieXRlTGVuZ3RoKzc2KSl9fSx7a2V5OiJzZHRwIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgUW47cmV0dXJuIGcuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKG5ldyBVaW50OEFycmF5KGcuaXNWaWRlbz9bQS5rZXlmcmFtZT8zMjoxNl06WzE2XSkpfSkpLEEuYm94KEEudHlwZXMuc2R0cCx0aGlzLmV4dGVuc2lvbigwLDApLEkuYnVmZmVyKX19LHtrZXk6InRydW4xIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgUW4sQj1Rbi53cml0ZVVpbnQzMihnLnNhbXBsZXMubGVuZ3RoKSxRPW51bGw7aWYoZy5pc1ZpZGVvKXt2YXIgQz1nLnZpZGVvU2VuY0xlbmd0aDtRPVFuLndyaXRlVWludDMyKDE2Kmcuc2FtcGxlcy5sZW5ndGgrQysxNDkpLCFnLmlzVmlkZW9FbmNyeXB0aW9uJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoUT1Rbi53cml0ZVVpbnQzMigxNipnLnNhbXBsZXMubGVuZ3RoKzkyKSl9ZWxzZXt2YXIgRT0xMipnLnNhbXBsZXMubGVuZ3RoKzEyNDtnLmlzQXVkaW9FbmNyeXB0aW9uJiYoRT0xMipnLnNhbXBsZXMubGVuZ3RoKzgqZy5hdWRpb1NlbmMubGVuZ3RoKzE3NyksUT1Rbi53cml0ZVVpbnQzMihFKX1yZXR1cm4gZy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0kud3JpdGUoUW4ud3JpdGVVaW50MzIoQS5kdXJhdGlvbikpLEkud3JpdGUoUW4ud3JpdGVVaW50MzIoQS5zaXplKSksSS53cml0ZShRbi53cml0ZVVpbnQzMihBLmtleWZyYW1lPzMzNTU0NDMyOjY1NTM2KSksZy5pc1ZpZGVvJiZJLndyaXRlKFFuLndyaXRlVWludDMyKEEuY3RzP0EuY3RzOjApKX0pKSxBLmJveChBLnR5cGVzLnRydW4sdGhpcy5leHRlbnNpb24oMCxnLmZsYWdzKSxCLFEsSS5idWZmZXIpfX0se2tleToic2VuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFFuLEI9Zy5zYW1wbGVzLmxlbmd0aCxRPWcuaXNWaWRlbz8xNjo4LEM9Zy5pc1ZpZGVvPzI6MCxFPVtdLGk9MDtyZXR1cm4gZy5pc1ZpZGVvPyhFPWcudmlkZW9TZW5jLGk9Zy52aWRlb1NlbmNMZW5ndGgpOkU9Zy5hdWRpb1NlbmMsaT1pfHxRKkIsSS53cml0ZShRbi53cml0ZVVpbnQzMigxNitpKSxBLnR5cGVzLnNlbmMsdGhpcy5leHRlbnNpb24oMCxDKSksSS53cml0ZShRbi53cml0ZVVpbnQzMihCKSksRS5mb3JFYWNoKChmdW5jdGlvbihBKXtmb3IodmFyIGc9MDtnPEEuSW5pdGlhbGl6YXRpb25WZWN0b3IubGVuZ3RoO2crKylJLndyaXRlKG5ldyBVaW50OEFycmF5KFtBLkluaXRpYWxpemF0aW9uVmVjdG9yW2ddXSkpO0Euc3Vic2FtcGxlcyYmQS5zdWJzYW1wbGVzLmxlbmd0aCYmKEkud3JpdGUoUW4ud3JpdGVVaW50MTYoQS5zdWJzYW1wbGVzLmxlbmd0aCkpLEEuc3Vic2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKFFuLndyaXRlVWludDE2KEEuQnl0ZXNPZkNsZWFyRGF0YSkpLEkud3JpdGUoUW4ud3JpdGVVaW50MzIoQS5CeXRlc09mUHJvdGVjdGVkRGF0YSkpfSkpKX0pKSxJLmJ1ZmZlcn19LHtrZXk6InNhaW8iLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPTEyKmcuc2FtcGxlcy5sZW5ndGgrMTQxOyFnLmlzVmlkZW8mJmcuaXNBdWRpb0VuY3J5cHRpb24mJihJPTE0OSk7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoWzEsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYWlvLEIpfX0se2tleToic2FpeiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5zYW1wbGVzLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDE2LEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYWl6LEIpfX0se2tleToic2JncCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZz1uZXcgVWludDhBcnJheShbMTE0LDExMSwxMDgsMTA4LDAsMCwwLDEsMCwwLDEsMjUsMCwwLDAsMV0pO3JldHVybiBBLmJveChBLnR5cGVzLnNiZ3AsdGhpcy5leHRlbnNpb24oMCwwKSxnKX19LHtrZXk6ImV4dGVuc2lvbiIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0EsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSl9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50ZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRmZHQiLHZhbHVlOmZ1bmN0aW9uKGcsSSl7dmFyIEI9TWF0aC5mbG9vcihJLyhDbisxKSksUT1NYXRoLmZsb29yKEklKENuKzEpKTtyZXR1cm4gZy51c2VFTUUmJihnLmlzVmlkZW9FbmNyeXB0aW9ufHxnLmlzQXVkaW9FbmNyeXB0aW9uKT9BLmJveChBLnR5cGVzLnRmZHQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpOkEuYm94KEEudHlwZXMudGZkdCxuZXcgVWludDhBcnJheShbMSwwLDAsMCxCPj4yNCxCPj4xNiYyNTUsQj4+OCYyNTUsMjU1JkIsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1nLmxlbmd0aCxRPTEyKzE2KkI7SSs9OCtRO3ZhciBDPW5ldyBVaW50OEFycmF5KFEpO0Muc2V0KFswLDAsMTUsMSxCPj4+MjQmMjU1LEI+Pj4xNiYyNTUsQj4+PjgmMjU1LDI1NSZCLEk+Pj4yNCYyNTUsST4+PjE2JjI1NSxJPj4+OCYyNTUsMjU1JkldLDApO2Zvcih2YXIgRT0wO0U8QjtFKyspe3ZhciBpPWdbRV0sdD1pLmR1cmF0aW9uLG89aS5zaXplLGU9aS5mbGFnLG49dm9pZCAwPT09ZT97fTplLHI9aS5jdHMsYT12b2lkIDA9PT1yPzA6cjtDLnNldChbdD4+PjI0JjI1NSx0Pj4+MTYmMjU1LHQ+Pj44JjI1NSwyNTUmdCxvPj4+MjQmMjU1LG8+Pj4xNiYyNTUsbz4+PjgmMjU1LDI1NSZvLG4uaXNMZWFkaW5nPDwyfChudWxsPT09bi5kZXBlbmRzT258fHZvaWQgMD09PW4uZGVwZW5kc09uPzE6bi5kZXBlbmRzT24pLG4uaXNEZXBlbmRlZE9uPDw2fG4uaGFzUmVkdW5kYW5jeTw8NHxuLnBhZGRpbmdWYWx1ZTw8MXwobnVsbD09PW4uaXNOb25TeW5jU2FtcGxlfHx2b2lkIDA9PT1uLmlzTm9uU3luY1NhbXBsZT8xOm4uaXNOb25TeW5jU2FtcGxlKSw2MTQ0MCZuLmRlZ3JhZGF0aW9uUHJpb3JpdHksMTUmbi5kZWdyYWRhdGlvblByaW9yaXR5LGE+Pj4yNCYyNTUsYT4+PjE2JjI1NSxhPj4+OCYyNTUsMjU1JmFdLDEyKzE2KkUpfXJldHVybiBBLmJveChBLnR5cGVzLnRydW4sQyl9fSx7a2V5OiJtb292TVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLmR1cmF0aW9uLGdbMF0udGltZXNjYWxlKV0uY29uY2F0KEZlKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFja01QNChnKX0pKSkpKX19LHtrZXk6InRyYWNrTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFrLEEudGtoZChnLmlkLGcuZHVyYXRpb24sZy53aWR0aCxnLmhlaWdodCksQS5tZGlhTVA0KGcpKX19LHtrZXk6Im1kaWFNUDQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kaWEsQS5tZGhkKGcuZHVyYXRpb24sZy50aW1lc2NhbGUpLEEuaGRscihnLnR5cGUpLEEubWluZk1QNChnKSl9fSx7a2V5OiJtaW5mTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5taW5mLGcudHlwZT09PWxlP0EuVk1IRDpBLlNNSEQsQS5ESU5GLEEuc3RibE1QNChnKSl9fSx7a2V5OiJzdGJsTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmV4dCxCPVtBLnN0c2QoZyksQS5zdHRzKEkuc3R0cyksQS5zdHNjKEkuc3RzYyksQS5zdHN6KEkuc3RzeiksQS5zdGNvKEkuc3RjbyldO3JldHVybiBJLnN0c3MubGVuZ3RoJiZCLnB1c2goQS5zdHNzKEkuc3RzcykpLEkuY3R0cy5sZW5ndGgmJkIucHVzaChBLmN0dHMoSS5jdHRzKSksQS5ib3guYXBwbHkoQSxbQS50eXBlcy5zdGJsXS5jb25jYXQoQikpfX0se2tleToic3R0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg4KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZz1BLnZhbHVlLEk9QS5jb3VudDtCLnNldChbST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10sUSksUSs9OH0pKSxBLmJveChBLnR5cGVzLnN0dHMsamUobmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSgxMipJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS5maXJzdENodW5rLEk9QS5zYW1wbGVzUGVyQ2h1bmssQz1BLnNhbXBsZURlc2NJbmRleDtCLnNldChbZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxDPj4yNCxDPj4xNiYyNTUsQz4+OCYyNTUsMjU1JkNdLFEpLFErPTEyfSkpLEEuYm94KEEudHlwZXMuc3RzYyxqZShuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHN6Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDQqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdLFEpLFErPTR9KSksQS5ib3goQS50eXBlcy5zdHN6LGplKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RjbyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RjbyxqZShuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHNzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDQqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdLFEpLFErPTR9KSksQS5ib3goQS50eXBlcy5zdHNzLGplKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoOCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS52YWx1ZSxJPUEuY291bnQ7Qi5zZXQoW0k+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddLFEpLFErPTh9KSksQS5ib3goQS50eXBlcy5jdHRzLGplKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0eXAiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEEuYm94KEEudHlwZXMuc3R5cCxuZXcgVWludDhBcnJheShbMTA5LDExNSwxMDAsMTA0LDAsMCwwLDAsMTA5LDExNSwxMDAsMTA0LDEwOSwxMTUsMTA1LDEyMF0pKX19LHtrZXk6InNpZHgiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcudGltZXNjYWxlLEI9Zy5zYW1wbGVzWzBdLmR1cmF0aW9uLFE9QipnLnNhbXBsZXMubGVuZ3RoLEM9Zy5zYW1wbGVzWzBdLnNhbXBsZU9mZnNldCpCLEU9ODtnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7RSs9QS5zaXplfSkpO3ZhciBpPTA7aWYoZy5pc1ZpZGVvKXt2YXIgdCxvPTA7Zy52aWRlb1NlbmMmJih0PWcudmlkZW9TZW5jKSxnLmlzVmlkZW8mJnQuZm9yRWFjaCgoZnVuY3Rpb24oQSl7bys9OCxBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihvKz0yLG8rPTYqQS5zdWJzYW1wbGVzLmxlbmd0aCl9KSksZy52aWRlb1NlbmNMZW5ndGg9byxpPUUrMTQxKzE2Kmcuc2FtcGxlcy5sZW5ndGgrbyxnLnVzZUVNRSYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmIWcuaXNWaWRlb0VuY3J5cHRpb24mJihpPUUrMTYqZy5zYW1wbGVzLmxlbmd0aCs4NCl9ZWxzZSBpPUUrMTE2KzEyKmcuc2FtcGxlcy5sZW5ndGgsZy51c2VFTUUmJmcuaXNBdWRpb0VuY3J5cHRpb24mJihpPUUrMTY5KzEyKmcuc2FtcGxlcy5sZW5ndGgrOCpnLmF1ZGlvU2VuYy5sZW5ndGgpO3ZhciBlPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDI1NSZnLmlkLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksQz4+MjQmMjU1LEM+PjE2JjI1NSxDPj44JjI1NSwyNTUmQywwLDAsMCwwLDAsMCwwLDEsMCxpPj4xNiYyNTUsaT4+OCYyNTUsMjU1JmksUT4+MjQmMjU1LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUSwxNDQsMCwwLDBdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zaWR4LGUpfX0se2tleToibWRhdCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWRhdCxnKX19XSksQX0oKTt3ZShFbiwidHlwZXMiLFsiYXZjMSIsImF2Y0MiLCJodmMxIiwiaHZjQyIsImRpbmYiLCJkcmVmIiwiZXNkcyIsImZ0eXAiLCJoZGxyIiwibWRhdCIsIm1kaGQiLCJtZGlhIiwibWZoZCIsIm1pbmYiLCJtb29mIiwibW9vdiIsIm1wNGEiLCJtdmV4IiwibXZoZCIsInBhc3AiLCJzdGJsIiwic3RjbyIsInN0c2MiLCJzdHNkIiwic3RzeiIsInN0dHMiLCJ0ZmR0IiwidGZoZCIsInRyYWYiLCJ0cmFrIiwidHJleCIsInRraGQiLCJ2bWhkIiwic21oZCIsImN0dHMiLCJzdHNzIiwic3R5cCIsInBzc2giLCJzaWR4Iiwic2JncCIsInNhaXoiLCJzYWlvIiwic2VuYyIsInRydW4iLCJlbmN2IiwiZW5jYSIsInNpbmYiLCJidHJ0IiwiZnJtYSIsInRlbmMiLCJzY2htIiwic2NoaSIsIm1laGQiLCJmaWVsIiwic2R0cCJdLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQVtnXT1bZy5jaGFyQ29kZUF0KDApLGcuY2hhckNvZGVBdCgxKSxnLmNoYXJDb2RlQXQoMiksZy5jaGFyQ29kZUF0KDMpXSxBfSksT2JqZWN0LmNyZWF0ZShudWxsKSkpLHdlKEVuLCJIRExSX1RZUEVTIix7dmlkZW86bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwxMTgsMTA1LDEwMCwxMDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODYsMTA1LDEwMCwxMDEsMTExLDcyLDk3LDExMCwxMDAsMTA4LDEwMSwxMTQsMF0pLGF1ZGlvOm5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMTE1LDExMSwxMTcsMTEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgzLDExMSwxMTcsMTEwLDEwMCw3Miw5NywxMTAsMTAwLDEwOCwxMDEsMTE0LDBdKX0pLHdlKEVuLCJGVFlQQVZDMSIsRW4uYm94KEVuLnR5cGVzLmZ0eXAsbmV3IFVpbnQ4QXJyYXkoWzEwNSwxMTUsMTExLDEwOSwwLDAsMCwxLDEwNSwxMTUsMTExLDEwOSw5NywxMTgsOTksNDldKSkpLHdlKEVuLCJGVFlQSEVWMSIsRW4uYm94KEVuLnR5cGVzLmZ0eXAsbmV3IFVpbnQ4QXJyYXkoWzEwNSwxMTUsMTExLDEwOSwwLDAsMCwxLDEwNSwxMTUsMTExLDEwOSwxMDQsMTAxLDExOCw0OV0pKSksd2UoRW4sIkRJTkYiLEVuLmJveChFbi50eXBlcy5kaW5mLEVuLmJveChFbi50eXBlcy5kcmVmLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMTIsMTE3LDExNCwxMDgsMzIsMCwwLDAsMV0pKSkpLHdlKEVuLCJWTUhEIixFbi5ib3goRW4udHlwZXMudm1oZCxuZXcgVWludDhBcnJheShbMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDBdKSkpLHdlKEVuLCJTTUhEIixFbi5ib3goRW4udHlwZXMuc21oZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwXSkpKSx3ZShFbiwiU3RibFRhYmxlIixuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwXSkpLHdlKEVuLCJTVFRTIixFbi5ib3goRW4udHlwZXMuc3R0cyxFbi5TdGJsVGFibGUpKSx3ZShFbiwiU1RTQyIsRW4uYm94KEVuLnR5cGVzLnN0c2MsRW4uU3RibFRhYmxlKSksd2UoRW4sIlNUU1oiLEVuLmJveChFbi50eXBlcy5zdHN6LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pKSksd2UoRW4sIlNUQ08iLEVuLmJveChFbi50eXBlcy5zdGNvLEVuLlN0YmxUYWJsZSkpO3ZhciB0bj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJKXtEZSh0aGlzLEEpLHRoaXMubmFtZT1nfHwiIix0aGlzLl9wcmVmaXg9IlsiLmNvbmNhdCh0aGlzLm5hbWUsIl0iKSxBLmRpc2FibGVkPUl9cmV0dXJuIGZlKEEsW3trZXk6ImRlYnVnIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO2lmKCFBLmRpc2FibGVkKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJKSxRPTA7UTxJO1ErKylCW1FdPWFyZ3VtZW50c1tRXTsoZz1jb25zb2xlKS5kZWJ1Zy5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToibG9nIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO2lmKCFBLmRpc2FibGVkKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJKSxRPTA7UTxJO1ErKylCW1FdPWFyZ3VtZW50c1tRXTsoZz1jb25zb2xlKS5sb2cuYXBwbHkoZyxbdGhpcy5fcHJlZml4XS5jb25jYXQoQikpfX19LHtrZXk6Indhcm4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLndhcm4uYXBwbHkoZyxbdGhpcy5fcHJlZml4XS5jb25jYXQoQikpfX19LHtrZXk6ImVycm9yIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO2lmKCFBLmRpc2FibGVkKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJKSxRPTA7UTxJO1ErKylCW1FdPWFyZ3VtZW50c1tRXTsoZz1jb25zb2xlKS5lcnJvci5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToidGFibGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7QS5kaXNhYmxlZHx8KGNvbnNvbGUuZ3JvdXAodGhpcy5fcHJlZml4KSwoZz1jb25zb2xlKS50YWJsZS5hcHBseShnLGFyZ3VtZW50cyksY29uc29sZS5ncm91cEVuZCgpKX19XSxbe2tleToiZW5hYmxlIix2YWx1ZTpmdW5jdGlvbigpe0EuZGlzYWJsZWQ9ITF9fSx7a2V5OiJkaXNhYmxlIix2YWx1ZTpmdW5jdGlvbigpe0EuZGlzYWJsZWQ9ITB9fV0pLEF9KCk7d2UodG4sImRpc2FibGVkIiwhMCk7dmFyIG9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEksQil7RGUodGhpcyxBKSx0aGlzLnZpZGVvVHJhY2s9Zyx0aGlzLmF1ZGlvVHJhY2s9STt2YXIgUT0vQ2hyb21lXC8oW14uXSspLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpO3RoaXMuZm9yY2VGaXJzdElEUj1RJiZOdW1iZXIoUVsxXSk8NTAsdGhpcy5sb2c9bmV3IHRuKCJGTVA0UmVtdXhlciIsIUJ8fCFCLm9wZW5Mb2d8fCFCLm9wZW5Mb2cpfXJldHVybiBmZShBLFt7a2V5OiJyZW11eCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQSxnLEksQixRLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxFPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPXRoaXMudmlkZW9UcmFjayx0PXRoaXMuYXVkaW9UcmFjayxvPWkuZXhpc3QoKSxlPXQuZXhpc3QoKSxuPVtdO3JldHVybiBDJiYoRSYmRS5pbml0TWVyZ2U/KG8mJm4ucHVzaCh0aGlzLnZpZGVvVHJhY2spLGUmJm4ucHVzaCh0aGlzLmF1ZGlvVHJhY2spLEk9RW4uaW5pdFNlZ21lbnQobikpOihvJiYoQT1Fbi5pbml0U2VnbWVudChbdGhpcy52aWRlb1RyYWNrXSkpLGUmJihnPUVuLmluaXRTZWdtZW50KFt0aGlzLmF1ZGlvVHJhY2tdKSkpKSxvJiZpLmhhc1NhbXBsZSgpJiYoQj10aGlzLl9yZW11eFZpZGVvKCkpLGUmJnQuaGFzU2FtcGxlKCkmJihRPXRoaXMuX3JlbXV4QXVkaW8oKSksaS5zYW1wbGVzPVtdLHQuc2FtcGxlcz1bXSx7aW5pdFNlZ21lbnQ6SSx2aWRlb0luaXRTZWdtZW50OkEsYXVkaW9Jbml0U2VnbWVudDpnLHZpZGVvU2VnbWVudDpCLGF1ZGlvU2VnbWVudDpRfX19LHtrZXk6Il9yZW11eFZpZGVvIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMudmlkZW9UcmFjazt0aGlzLmZvcmNlRmlyc3RJRFImJihBLnNhbXBsZXNbMF0uZmxhZz17ZGVwZW5kc09uOjIsaXNOb25TeW5jU2FtcGxlOjB9KTt2YXIgZz1BLnNhbXBsZXMsST0wO2cuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SSs9QS51bml0cy5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCksSSs9NCpBLnVuaXRzLmxlbmd0aH0pKTtmb3IodmFyIEIsUT1uZXcgVWludDhBcnJheShJKSxDPW5ldyBEYXRhVmlldyhRLmJ1ZmZlciksRT1mdW5jdGlvbihBLEkpe0k9Z1tpXTt2YXIgRT0wO0kudW5pdHMuZm9yRWFjaCgoZnVuY3Rpb24oZyl7Qy5zZXRVaW50MzIoQSxnLmJ5dGVMZW5ndGgpLEErPTQsUS5zZXQoZyxBKSxBKz1nLmJ5dGVMZW5ndGgsRSs9NCtnLmJ5dGVMZW5ndGh9KSksSS5zaXplPUUsbz1BLEI9SX0saT0wLHQ9Zy5sZW5ndGgsbz0wO2k8dDtpKyspRShvLEIpO3ZhciBlPUVuLm1kYXQoUSk7cmV0dXJuIGplKEVuLm1vb2YoW0FdKSxlKX19LHtrZXk6Il9yZW11eEF1ZGlvIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuYXVkaW9UcmFjayxnPW5ldyBVaW50OEFycmF5KEEuc2FtcGxlcy5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5zaXplfSksMCkpO0Euc2FtcGxlcy5yZWR1Y2UoKGZ1bmN0aW9uKEEsSSl7cmV0dXJuIGcuc2V0KEkuZGF0YSxBKSxBK0kuc2l6ZX0pLDApO3ZhciBJPUVuLm1kYXQoZyk7cmV0dXJuIGplKEVuLm1vb2YoW0FdKSxJKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmlkZW9UcmFjay5yZXNldCgpLHRoaXMuYXVkaW9UcmFjay5yZXNldCgpfX1dKSxBfSgpO2Z1bmN0aW9uIGVuKEEpe3JldHVybihlbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEF9OmZ1bmN0aW9uKEEpe3JldHVybiBBJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZBLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZBIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgQX0pKEEpfWZ1bmN0aW9uIG5uKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gcm4oQSxnKXtmb3IodmFyIEk9MDtJPGcubGVuZ3RoO0krKyl7dmFyIEI9Z1tJXTtCLmVudW1lcmFibGU9Qi5lbnVtZXJhYmxlfHwhMSxCLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gQiYmKEIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLChRPUIua2V5LEM9dm9pZCAwLCJzeW1ib2wiPT10eXBlb2YoQz1mdW5jdGlvbihBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpcmV0dXJuIEE7dmFyIEk9QVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PUkpe3ZhciBCPUkuY2FsbChBLGd8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXJldHVybiBCO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09Zz9TdHJpbmc6TnVtYmVyKShBKX0oUSwic3RyaW5nIikpP0M6U3RyaW5nKEMpKSxCKX12YXIgUSxDfWZ1bmN0aW9uIGFuKEEsZyxJKXtyZXR1cm4gZyYmcm4oQS5wcm90b3R5cGUsZyksSSYmcm4oQSxJKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxBfWZ1bmN0aW9uIHNuKEEsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOkEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmhuKEEsZyl9ZnVuY3Rpb24gY24oQSl7cmV0dXJuKGNuPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKEEpe3JldHVybiBBLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKEEpfSkoQSl9ZnVuY3Rpb24gaG4oQSxnKXtyZXR1cm4oaG49T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gQS5fX3Byb3RvX189ZyxBfSkoQSxnKX1mdW5jdGlvbiBEbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChBKXtyZXR1cm4hMX19ZnVuY3Rpb24geW4oQSxnLEkpe3JldHVybih5bj1EbigpP1JlZmxlY3QuY29uc3RydWN0LmJpbmQoKTpmdW5jdGlvbihBLGcsSSl7dmFyIEI9W251bGxdO0IucHVzaC5hcHBseShCLGcpO3ZhciBRPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KEEsQikpO3JldHVybiBJJiZobihRLEkucHJvdG90eXBlKSxRfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGZuKEEsZyl7aWYoZyYmKCJvYmplY3QiPT10eXBlb2YgZ3x8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24oQSl7aWYodm9pZCAwPT09QSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBBfShBKX1mdW5jdGlvbiB3bihBKXt2YXIgZz1EbigpO3JldHVybiBmdW5jdGlvbigpe3ZhciBJLEI9Y24oQSk7aWYoZyl7dmFyIFE9Y24odGhpcykuY29uc3RydWN0b3I7ST1SZWZsZWN0LmNvbnN0cnVjdChCLGFyZ3VtZW50cyxRKX1lbHNlIEk9Qi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZuKHRoaXMsSSl9fWZ1bmN0aW9uIHVuKCl7cmV0dXJuIHVuPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1mdW5jdGlvbihBLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChBLGcpJiZudWxsIT09KEE9Y24oQSkpOyk7cmV0dXJuIEF9KEEsZyk7aWYoQil7dmFyIFE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihCLGcpO3JldHVybiBRLmdldD9RLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9BOkkpOlEudmFsdWV9fSx1bi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIEZuPXBFLEduPSJBcnJheUJ1ZmZlciIsZG49WENbR25dO2pJKHtnbG9iYWw6ITAsZm9yY2VkOnJbR25dIT09ZG59LHtBcnJheUJ1ZmZlcjpkbn0pLEZuKEduKSxNaSgiSW50OCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJVaW50OCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSksITApLE1pKCJJbnQxNiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJVaW50MTYiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiSW50MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiVWludDMyIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIkZsb2F0MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiRmxvYXQ2NCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpO3ZhciBSbj1kLGxuPWZ1bmN0aW9uKCl7dmFyIEE9Um4odGhpcyksZz0iIjtyZXR1cm4gQS5nbG9iYWwmJihnKz0iZyIpLEEuaWdub3JlQ2FzZSYmKGcrPSJpIiksQS5tdWx0aWxpbmUmJihnKz0ibSIpLEEuZG90QWxsJiYoZys9InMiKSxBLnVuaWNvZGUmJihnKz0idSIpLEEuc3RpY2t5JiYoZys9InkiKSxnfSxrbj1hSSxVbj1kLFNuPWcsTm49bG4sTW49InRvU3RyaW5nIixZbj1SZWdFeHAucHJvdG90eXBlLEhuPVluW01uXSxwbj1TbigoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPUhuLmNhbGwoe3NvdXJjZToiYSIsZmxhZ3M6ImIifSl9KSksSm49SG4ubmFtZSE9TW47KHBufHxKbikmJmtuKFJlZ0V4cC5wcm90b3R5cGUsTW4sKGZ1bmN0aW9uKCl7dmFyIEE9VW4odGhpcyksZz1TdHJpbmcoQS5zb3VyY2UpLEk9QS5mbGFncztyZXR1cm4iLyIrZysiLyIrU3RyaW5nKHZvaWQgMD09PUkmJkEgaW5zdGFuY2VvZiBSZWdFeHAmJiEoImZsYWdzImluIFluKT9Obi5jYWxsKEEpOkkpfSkse3Vuc2FmZTohMH0pO3ZhciBMbj1qSSx2bj1lLEtuPVtdLmpvaW4seG49RSE9T2JqZWN0LHFuPWR0KCJqb2luIiwiLCIpO0xuKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6eG58fCFxbn0se2pvaW46ZnVuY3Rpb24oQSl7cmV0dXJuIEtuLmNhbGwodm4odGhpcyksdm9pZCAwPT09QT8iLCI6QSl9fSk7dmFyIG1uPWpJLGJuPWcsVG49REUsam49aCxabj1XLE9uPVNBLFduPUFlLFZuPXVFLFhuPVFlLFBuPWVBLHpuPUdBKCJpc0NvbmNhdFNwcmVhZGFibGUiKSxfbj05MDA3MTk5MjU0NzQwOTkxLCRuPSJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiLEFyPVBuPj01MXx8IWJuKChmdW5jdGlvbigpe3ZhciBBPVtdO3JldHVybiBBW3puXT0hMSxBLmNvbmNhdCgpWzBdIT09QX0pKSxncj1YbigiY29uY2F0IiksSXI9ZnVuY3Rpb24oQSl7aWYoIWpuKEEpKXJldHVybiExO3ZhciBnPUFbem5dO3JldHVybiB2b2lkIDAhPT1nPyEhZzpUbihBKX07bW4oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohQXJ8fCFncn0se2NvbmNhdDpmdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEU9Wm4odGhpcyksaT1WbihFLDApLHQ9MDtmb3IoZz0tMSxCPWFyZ3VtZW50cy5sZW5ndGg7ZzxCO2crKylpZihJcihDPS0xPT09Zz9FOmFyZ3VtZW50c1tnXSkpe2lmKHQrKFE9T24oQy5sZW5ndGgpKT5fbil0aHJvdyBUeXBlRXJyb3IoJG4pO2ZvcihJPTA7STxRO0krKyx0KyspSSBpbiBDJiZXbihpLHQsQ1tJXSl9ZWxzZXtpZih0Pj1fbil0aHJvdyBUeXBlRXJyb3IoJG4pO1duKGksdCsrLEMpfXJldHVybiBpLmxlbmd0aD10LGl9fSk7dmFyIEJyPWpJLFFyPUhBLENyPWxBLEVyPVNBLGlyPVcsdHI9dUUsb3I9QWUsZXI9UWUoInNwbGljZSIpLG5yPU1hdGgubWF4LHJyPU1hdGgubWluO0JyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IWVyfSx7c3BsaWNlOmZ1bmN0aW9uKEEsZyl7dmFyIEksQixRLEMsRSxpLHQ9aXIodGhpcyksbz1Fcih0Lmxlbmd0aCksZT1RcihBLG8pLG49YXJndW1lbnRzLmxlbmd0aDtpZigwPT09bj9JPUI9MDoxPT09bj8oST0wLEI9by1lKTooST1uLTIsQj1ycihucihDcihnKSwwKSxvLWUpKSxvK0ktQj45MDA3MTk5MjU0NzQwOTkxKXRocm93IFR5cGVFcnJvcigiTWF4aW11bSBhbGxvd2VkIGxlbmd0aCBleGNlZWRlZCIpO2ZvcihRPXRyKHQsQiksQz0wO0M8QjtDKyspKEU9ZStDKWluIHQmJm9yKFEsQyx0W0VdKTtpZihRLmxlbmd0aD1CLEk8Qil7Zm9yKEM9ZTtDPG8tQjtDKyspaT1DK0ksKEU9QytCKWluIHQ/dFtpXT10W0VdOmRlbGV0ZSB0W2ldO2ZvcihDPW87Qz5vLUIrSTtDLS0pZGVsZXRlIHRbQy0xXX1lbHNlIGlmKEk+Qilmb3IoQz1vLUI7Qz5lO0MtLSlpPUMrSS0xLChFPUMrQi0xKWluIHQ/dFtpXT10W0VdOmRlbGV0ZSB0W2ldO2ZvcihDPTA7QzxJO0MrKyl0W0MrZV09YXJndW1lbnRzW0MrMl07cmV0dXJuIHQubGVuZ3RoPW8tQitJLFF9fSk7Zm9yKHZhciBhcj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtubih0aGlzLEEpfXJldHVybiBhbihBLFt7a2V5OiJtaXhJbiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcyxBKX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPW5ldyB0aGlzLmNvbnN0cnVjdG9yO3JldHVybiBPYmplY3QuYXNzaWduKEEsdGhpcyksQX19XSxbe2tleToiY3JlYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEEpLEk9MDtJPEE7SSsrKWdbSV09YXJndW1lbnRzW0ldO3JldHVybiB5bih0aGlzLGcpfX1dKSxBfSgpLHNyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3ZhciBBLEI9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdLFE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjQqQi5sZW5ndGg7bm4odGhpcyxJKSxBPWcuY2FsbCh0aGlzKTt2YXIgQz1CO2lmKEMgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKEM9bmV3IFVpbnQ4QXJyYXkoQykpLChDIGluc3RhbmNlb2YgSW50OEFycmF5fHxDIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fEMgaW5zdGFuY2VvZiBJbnQxNkFycmF5fHxDIGluc3RhbmNlb2YgVWludDE2QXJyYXl8fEMgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHxDIGluc3RhbmNlb2YgVWludDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpJiYoQz1uZXcgVWludDhBcnJheShDLmJ1ZmZlcixDLmJ5dGVPZmZzZXQsQy5ieXRlTGVuZ3RoKSksQyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2Zvcih2YXIgRT1DLmJ5dGVMZW5ndGgsaT1bXSx0PTA7dDxFO3QrPTEpaVt0Pj4+Ml18PUNbdF08PDI0LXQlNCo4O0Eud29yZHM9aSxBLnNpZ0J5dGVzPUV9ZWxzZSBBLndvcmRzPUIsQS5zaWdCeXRlcz1RO3JldHVybiBBfXJldHVybiBhbihJLFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4oYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmNyKS5zdHJpbmdpZnkodGhpcyl9fSx7a2V5OiJjb25jYXQiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMud29yZHMsST1BLndvcmRzLEI9dGhpcy5zaWdCeXRlcyxRPUEuc2lnQnl0ZXM7aWYodGhpcy5jbGFtcCgpLEIlNClmb3IodmFyIEM9MDtDPFE7Qys9MSl7dmFyIEU9SVtDPj4+Ml0+Pj4yNC1DJTQqOCYyNTU7Z1tCK0M+Pj4yXXw9RTw8MjQtKEIrQyklNCo4fWVsc2UgZm9yKHZhciBpPTA7aTxRO2krPTQpZ1tCK2k+Pj4yXT1JW2k+Pj4yXTtyZXR1cm4gdGhpcy5zaWdCeXRlcys9USx0aGlzfX0se2tleToiY2xhbXAiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy53b3JkcyxnPXRoaXMuc2lnQnl0ZXM7QVtnPj4+Ml0mPTQyOTQ5NjcyOTU8PDMyLWclNCo4LEEubGVuZ3RoPU1hdGguY2VpbChnLzQpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dW4oY24oSS5wcm90b3R5cGUpLCJjbG9uZSIsdGhpcykuY2FsbCh0aGlzKTtyZXR1cm4gQS53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLEF9fV0sW3trZXk6InJhbmRvbSIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnLEI9W10sUT1mdW5jdGlvbihBKXt2YXIgZz1BLEk9OTg3NjU0MzIxLEI9NDI5NDk2NzI5NTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgQT0oKEk9MzY5NjkqKDY1NTM1JkkpKyhJPj4xNikmQik8PDE2KSsoZz0xOGUzKig2NTUzNSZnKSsoZz4+MTYpJkIpJkI7cmV0dXJuIEEvPTQyOTQ5NjcyOTYsKEErPS41KSooTWF0aC5yYW5kb20oKT4uNT8xOi0xKX19LEM9MDtDPEE7Qys9NCl7dmFyIEU9USg0Mjk0OTY3Mjk2KihnfHxNYXRoLnJhbmRvbSgpKSk7Zz05ODc2NTQwNzEqRSgpLEIucHVzaCg0Mjk0OTY3Mjk2KkUoKXwwKX1yZXR1cm4gbmV3IEkoQixBKX19XSksSX0oYXIpLGNyPXtzdHJpbmdpZnk6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEud29yZHMsST1BLnNpZ0J5dGVzLEI9W10sUT0wO1E8STtRKz0xKXt2YXIgQz1nW1E+Pj4yXT4+PjI0LVElNCo4JjI1NTtCLnB1c2goKEM+Pj40KS50b1N0cmluZygxNikpLEIucHVzaCgoMTUmQykudG9TdHJpbmcoMTYpKX1yZXR1cm4gQi5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEubGVuZ3RoLEk9W10sQj0wO0I8ZztCKz0yKUlbQj4+PjNdfD1wYXJzZUludChBLnN1YnN0cihCLDIpLDE2KTw8MjQtQiU4KjQ7cmV0dXJuIG5ldyBzcihJLGcvMil9fSxocj1mdW5jdGlvbihBKXtmb3IodmFyIGc9QS5sZW5ndGgsST1bXSxCPTA7QjxnO0IrPTEpSVtCPj4+Ml18PSgyNTUmQS5jaGFyQ29kZUF0KEIpKTw8MjQtQiU0Kjg7cmV0dXJuIG5ldyBzcihJLGcpfSxEcj1mdW5jdGlvbihBKXtyZXR1cm4gaHIodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEEpKSl9LHlyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3ZhciBBO3JldHVybiBubih0aGlzLEkpLChBPWcuY2FsbCh0aGlzKSkuX21pbkJ1ZmZlclNpemU9MCxBfXJldHVybiBhbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9kYXRhPW5ldyBzcix0aGlzLl9uRGF0YUJ5dGVzPTB9fSx7a2V5OiJfYXBwZW5kIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BOyJzdHJpbmciPT10eXBlb2YgZyYmKGc9RHIoZykpLHRoaXMuX2RhdGEuY29uY2F0KGcpLHRoaXMuX25EYXRhQnl0ZXMrPWcuc2lnQnl0ZXN9fSx7a2V5OiJfcHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGcsST10aGlzLl9kYXRhLEI9dGhpcy5ibG9ja1NpemUsUT1JLndvcmRzLEM9SS5zaWdCeXRlcyxFPUMvKDQqQiksaT0oRT1BP01hdGguY2VpbChFKTpNYXRoLm1heCgoMHxFKS10aGlzLl9taW5CdWZmZXJTaXplLDApKSpCLHQ9TWF0aC5taW4oNCppLEMpO2lmKGkpe2Zvcih2YXIgbz0wO288aTtvKz1CKXRoaXMuX2RvUHJvY2Vzc0Jsb2NrKFEsbyk7Zz1RLnNwbGljZSgwLGkpLEkuc2lnQnl0ZXMtPXR9cmV0dXJuIG5ldyBzcihnLHQpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dW4oY24oSS5wcm90b3R5cGUpLCJjbG9uZSIsdGhpcykuY2FsbCh0aGlzKTtyZXR1cm4gQS5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksQX19XSksSX0oYXIpLGZyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSShBKXt2YXIgQjtyZXR1cm4gbm4odGhpcyxJKSwoQj1nLmNhbGwodGhpcykpLmJsb2NrU2l6ZT0xNixCLmNmZz1PYmplY3QuYXNzaWduKG5ldyBhcixBKSxCLnJlc2V0KCksQn1yZXR1cm4gYW4oSSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dW4oY24oSS5wcm90b3R5cGUpLCJyZXNldCIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLl9hcHBlbmQoQSksdGhpcy5fcHJvY2VzcygpLHRoaXN9fSx7a2V5OiJmaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJnRoaXMuX2FwcGVuZChBKSx0aGlzLl9kb0ZpbmFsaXplKCl9fV0sW3trZXk6Il9jcmVhdGVIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEkpe3JldHVybiBuZXcgQShJKS5maW5hbGl6ZShnKX19fSx7a2V5OiJfY3JlYXRlSG1hY0hlbHBlciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7cmV0dXJuIG5ldyB3cihBLEkpLmZpbmFsaXplKGcpfX19XSksSX0oeXIpLHdyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSShBLEIpe3ZhciBRO25uKHRoaXMsSSksUT1nLmNhbGwodGhpcyk7dmFyIEM9bmV3IEE7US5faGFzaGVyPUM7dmFyIEU9Qjsic3RyaW5nIj09dHlwZW9mIEUmJihFPURyKEUpKTt2YXIgaT1DLmJsb2NrU2l6ZSx0PTQqaTtFLnNpZ0J5dGVzPnQmJihFPUMuZmluYWxpemUoQikpLEUuY2xhbXAoKTt2YXIgbz1FLmNsb25lKCk7US5fb0tleT1vO3ZhciBlPUUuY2xvbmUoKTtRLl9pS2V5PWU7Zm9yKHZhciBuPW8ud29yZHMscj1lLndvcmRzLGE9MDthPGk7YSs9MSluW2FdXj0xNTQ5NTU2ODI4LHJbYV1ePTkwOTUyMjQ4NjtyZXR1cm4gby5zaWdCeXRlcz10LGUuc2lnQnl0ZXM9dCxRLnJlc2V0KCksUX1yZXR1cm4gYW4oSSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5faGFzaGVyO0EucmVzZXQoKSxBLnVwZGF0ZSh0aGlzLl9pS2V5KX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2hhc2hlci51cGRhdGUoQSksdGhpc319LHtrZXk6ImZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz10aGlzLl9oYXNoZXIsST1nLmZpbmFsaXplKEEpO3JldHVybiBnLnJlc2V0KCksZy5maW5hbGl6ZSh0aGlzLl9vS2V5LmNsb25lKCkuY29uY2F0KEkpKX19XSksSX0oYXIpLHVyPXtzdHJpbmdpZnk6ZnVuY3Rpb24oQSl7dmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj10aGlzLl9tYXA7QS5jbGFtcCgpO2Zvcih2YXIgUT1bXSxDPTA7QzxJO0MrPTMpZm9yKHZhciBFPShnW0M+Pj4yXT4+PjI0LUMlNCo4JjI1NSk8PDE2fChnW0MrMT4+PjJdPj4+MjQtKEMrMSklNCo4JjI1NSk8PDh8Z1tDKzI+Pj4yXT4+PjI0LShDKzIpJTQqOCYyNTUsaT0wO2k8NCYmQysuNzUqaTxJO2krPTEpUS5wdXNoKEIuY2hhckF0KEU+Pj42KigzLWkpJjYzKSk7dmFyIHQ9Qi5jaGFyQXQoNjQpO2lmKHQpZm9yKDtRLmxlbmd0aCU0OylRLnB1c2godCk7cmV0dXJuIFEuam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKEEpe3ZhciBnPUEubGVuZ3RoLEk9dGhpcy5fbWFwLEI9dGhpcy5fcmV2ZXJzZU1hcDtpZighQil7dGhpcy5fcmV2ZXJzZU1hcD1bXSxCPXRoaXMuX3JldmVyc2VNYXA7Zm9yKHZhciBRPTA7UTxJLmxlbmd0aDtRKz0xKUJbSS5jaGFyQ29kZUF0KFEpXT1RfXZhciBDPUkuY2hhckF0KDY0KTtpZihDKXt2YXIgRT1BLmluZGV4T2YoQyk7LTEhPT1FJiYoZz1FKX1yZXR1cm4gZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1bXSxRPTAsQz0wO0M8ZztDKz0xKWlmKEMlNCl7dmFyIEU9SVtBLmNoYXJDb2RlQXQoQy0xKV08PEMlNCoyfElbQS5jaGFyQ29kZUF0KEMpXT4+PjYtQyU0KjI7QltRPj4+Ml18PUU8PDI0LVElNCo4LFErPTF9cmV0dXJuIHNyLmNyZWF0ZShCLFEpfShBLGcsQil9LF9tYXA6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89In0sRnI9W10sR3I9MDtHcjw2NDtHcis9MSlGcltHcl09NDI5NDk2NzI5NipNYXRoLmFicyhNYXRoLnNpbihHcisxKSl8MDt2YXIgZHI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZyZJfH5nJkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sUnI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZyZCfEkmfkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sbHI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZ15JXkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sa3I9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoSV4oZ3x+QikpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sVXI9ZnVuY3Rpb24oQSl7c24oSSxBKTt2YXIgZz13bihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIG5uKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGFuKEksW3trZXk6Il9kb1Jlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IHNyKFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzhdKX19LHtrZXk6Il9kb1Byb2Nlc3NCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9QSxCPTA7QjwxNjtCKz0xKXt2YXIgUT1nK0IsQz1BW1FdO0lbUV09MTY3MTE5MzUmKEM8PDh8Qz4+PjI0KXw0Mjc4MjU1MzYwJihDPDwyNHxDPj4+OCl9dmFyIEU9dGhpcy5faGFzaC53b3JkcyxpPUlbZyswXSx0PUlbZysxXSxvPUlbZysyXSxlPUlbZyszXSxuPUlbZys0XSxyPUlbZys1XSxhPUlbZys2XSxzPUlbZys3XSxjPUlbZys4XSxoPUlbZys5XSxEPUlbZysxMF0seT1JW2crMTFdLGY9SVtnKzEyXSx3PUlbZysxM10sdT1JW2crMTRdLEY9SVtnKzE1XSxHPUVbMF0sZD1FWzFdLFI9RVsyXSxsPUVbM107Rz1kcihHLGQsUixsLGksNyxGclswXSksbD1kcihsLEcsZCxSLHQsMTIsRnJbMV0pLFI9ZHIoUixsLEcsZCxvLDE3LEZyWzJdKSxkPWRyKGQsUixsLEcsZSwyMixGclszXSksRz1kcihHLGQsUixsLG4sNyxGcls0XSksbD1kcihsLEcsZCxSLHIsMTIsRnJbNV0pLFI9ZHIoUixsLEcsZCxhLDE3LEZyWzZdKSxkPWRyKGQsUixsLEcscywyMixGcls3XSksRz1kcihHLGQsUixsLGMsNyxGcls4XSksbD1kcihsLEcsZCxSLGgsMTIsRnJbOV0pLFI9ZHIoUixsLEcsZCxELDE3LEZyWzEwXSksZD1kcihkLFIsbCxHLHksMjIsRnJbMTFdKSxHPWRyKEcsZCxSLGwsZiw3LEZyWzEyXSksbD1kcihsLEcsZCxSLHcsMTIsRnJbMTNdKSxSPWRyKFIsbCxHLGQsdSwxNyxGclsxNF0pLGQ9ZHIoZCxSLGwsRyxGLDIyLEZyWzE1XSksRz1ScihHLGQsUixsLHQsNSxGclsxNl0pLGw9UnIobCxHLGQsUixhLDksRnJbMTddKSxSPVJyKFIsbCxHLGQseSwxNCxGclsxOF0pLGQ9UnIoZCxSLGwsRyxpLDIwLEZyWzE5XSksRz1ScihHLGQsUixsLHIsNSxGclsyMF0pLGw9UnIobCxHLGQsUixELDksRnJbMjFdKSxSPVJyKFIsbCxHLGQsRiwxNCxGclsyMl0pLGQ9UnIoZCxSLGwsRyxuLDIwLEZyWzIzXSksRz1ScihHLGQsUixsLGgsNSxGclsyNF0pLGw9UnIobCxHLGQsUix1LDksRnJbMjVdKSxSPVJyKFIsbCxHLGQsZSwxNCxGclsyNl0pLGQ9UnIoZCxSLGwsRyxjLDIwLEZyWzI3XSksRz1ScihHLGQsUixsLHcsNSxGclsyOF0pLGw9UnIobCxHLGQsUixvLDksRnJbMjldKSxSPVJyKFIsbCxHLGQscywxNCxGclszMF0pLGQ9UnIoZCxSLGwsRyxmLDIwLEZyWzMxXSksRz1scihHLGQsUixsLHIsNCxGclszMl0pLGw9bHIobCxHLGQsUixjLDExLEZyWzMzXSksUj1scihSLGwsRyxkLHksMTYsRnJbMzRdKSxkPWxyKGQsUixsLEcsdSwyMyxGclszNV0pLEc9bHIoRyxkLFIsbCx0LDQsRnJbMzZdKSxsPWxyKGwsRyxkLFIsbiwxMSxGclszN10pLFI9bHIoUixsLEcsZCxzLDE2LEZyWzM4XSksZD1scihkLFIsbCxHLEQsMjMsRnJbMzldKSxHPWxyKEcsZCxSLGwsdyw0LEZyWzQwXSksbD1scihsLEcsZCxSLGksMTEsRnJbNDFdKSxSPWxyKFIsbCxHLGQsZSwxNixGcls0Ml0pLGQ9bHIoZCxSLGwsRyxhLDIzLEZyWzQzXSksRz1scihHLGQsUixsLGgsNCxGcls0NF0pLGw9bHIobCxHLGQsUixmLDExLEZyWzQ1XSksUj1scihSLGwsRyxkLEYsMTYsRnJbNDZdKSxkPWxyKGQsUixsLEcsbywyMyxGcls0N10pLEc9a3IoRyxkLFIsbCxpLDYsRnJbNDhdKSxsPWtyKGwsRyxkLFIscywxMCxGcls0OV0pLFI9a3IoUixsLEcsZCx1LDE1LEZyWzUwXSksZD1rcihkLFIsbCxHLHIsMjEsRnJbNTFdKSxHPWtyKEcsZCxSLGwsZiw2LEZyWzUyXSksbD1rcihsLEcsZCxSLGUsMTAsRnJbNTNdKSxSPWtyKFIsbCxHLGQsRCwxNSxGcls1NF0pLGQ9a3IoZCxSLGwsRyx0LDIxLEZyWzU1XSksRz1rcihHLGQsUixsLGMsNixGcls1Nl0pLGw9a3IobCxHLGQsUixGLDEwLEZyWzU3XSksUj1rcihSLGwsRyxkLGEsMTUsRnJbNThdKSxkPWtyKGQsUixsLEcsdywyMSxGcls1OV0pLEc9a3IoRyxkLFIsbCxuLDYsRnJbNjBdKSxsPWtyKGwsRyxkLFIseSwxMCxGcls2MV0pLFI9a3IoUixsLEcsZCxvLDE1LEZyWzYyXSksZD1rcihkLFIsbCxHLGgsMjEsRnJbNjNdKSxFWzBdPUVbMF0rR3wwLEVbMV09RVsxXStkfDAsRVsyXT1FWzJdK1J8MCxFWzNdPUVbM10rbHwwfX0se2tleToiX2RvRmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5fZGF0YSxnPUEud29yZHMsST04KnRoaXMuX25EYXRhQnl0ZXMsQj04KkEuc2lnQnl0ZXM7Z1tCPj4+NV18PTEyODw8MjQtQiUzMjt2YXIgUT1NYXRoLmZsb29yKEkvNDI5NDk2NzI5NiksQz1JO2dbMTUrKEIrNjQ+Pj45PDw0KV09MTY3MTE5MzUmKFE8PDh8UT4+PjI0KXw0Mjc4MjU1MzYwJihRPDwyNHxRPj4+OCksZ1sxNCsoQis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoQzw8OHxDPj4+MjQpfDQyNzgyNTUzNjAmKEM8PDI0fEM+Pj44KSxBLnNpZ0J5dGVzPTQqKGcubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIEU9dGhpcy5faGFzaCxpPUUud29yZHMsdD0wO3Q8NDt0Kz0xKXt2YXIgbz1pW3RdO2lbdF09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9cmV0dXJuIEV9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT11bihjbihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLl9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSxBfX1dKSxJfShmcik7ZnIuX2NyZWF0ZUhlbHBlcihVciksZnIuX2NyZWF0ZUhtYWNIZWxwZXIoVXIpO3ZhciBTcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoQSl7dmFyIEI7cmV0dXJuIG5uKHRoaXMsSSksKEI9Zy5jYWxsKHRoaXMpKS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgYXIse2tleVNpemU6NCxoYXNoZXI6VXIsaXRlcmF0aW9uczoxfSxBKSxCfXJldHVybiBhbihJLFt7a2V5OiJjb21wdXRlIix2YWx1ZTpmdW5jdGlvbihBLGcpe2Zvcih2YXIgSSxCPXRoaXMuY2ZnLFE9Qi5oYXNoZXIuY3JlYXRlKCksQz1zci5jcmVhdGUoKSxFPUMud29yZHMsaT1CLmtleVNpemUsdD1CLml0ZXJhdGlvbnM7RS5sZW5ndGg8aTspe0kmJlEudXBkYXRlKEkpLEk9US51cGRhdGUoQSkuZmluYWxpemUoZyksUS5yZXNldCgpO2Zvcih2YXIgbz0xO288dDtvKz0xKUk9US5maW5hbGl6ZShJKSxRLnJlc2V0KCk7Qy5jb25jYXQoSSl9cmV0dXJuIEMuc2lnQnl0ZXM9NCppLEN9fV0pLEl9KGFyKSxOcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoQSxCLFEpe3ZhciBDO3JldHVybiBubih0aGlzLEkpLChDPWcuY2FsbCh0aGlzKSkuY2ZnPU9iamVjdC5hc3NpZ24obmV3IGFyLFEpLEMuX3hmb3JtTW9kZT1BLEMuX2tleT1CLEMucmVzZXQoKSxDfXJldHVybiBhbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt1bihjbihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX19LHtrZXk6InByb2Nlc3MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLl9hcHBlbmQoQSksdGhpcy5fcHJvY2VzcygpfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBBJiZ0aGlzLl9hcHBlbmQoQSksdGhpcy5fZG9GaW5hbGl6ZSgpfX1dLFt7a2V5OiJjcmVhdGVFbmNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0VOQ19YRk9STV9NT0RFLEEsZyl9fSx7a2V5OiJjcmVhdGVEZWNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0RFQ19YRk9STV9NT0RFLEEsZyl9fSx7a2V5OiJfY3JlYXRlSGVscGVyIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1mdW5jdGlvbihBKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEE/cXI6S3J9O3JldHVybntlbmNyeXB0OmZ1bmN0aW9uKEksQixRKXtyZXR1cm4gZyhCKS5lbmNyeXB0KEEsSSxCLFEpfSxkZWNyeXB0OmZ1bmN0aW9uKEksQixRKXtyZXR1cm4gZyhCKS5kZWNyeXB0KEEsSSxCLFEpfX19fV0pLEl9KHlyKTtOci5fRU5DX1hGT1JNX01PREU9MSxOci5fREVDX1hGT1JNX01PREU9MixOci5rZXlTaXplPTQsTnIuaXZTaXplPTQ7dmFyIE1yPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSShBLEIpe3ZhciBRO3JldHVybiBubih0aGlzLEkpLChRPWcuY2FsbCh0aGlzKSkuX2NpcGhlcj1BLFEuX2l2PUIsUX1yZXR1cm4gYW4oSSxudWxsLFt7a2V5OiJjcmVhdGVFbmNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZShBLGcpfX0se2tleToiY3JlYXRlRGVjcnlwdG9yIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiB0aGlzLkRlY3J5cHRvci5jcmVhdGUoQSxnKX19XSksSX0oYXIpO2Z1bmN0aW9uIFlyKEEsZyxJKXt2YXIgQixRPUEsQz10aGlzLl9pdjtDPyhCPUMsdGhpcy5faXY9dm9pZCAwKTpCPXRoaXMuX3ByZXZCbG9jaztmb3IodmFyIEU9MDtFPEk7RSs9MSlRW2crRV1ePUJbRV19dmFyIEhyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiBubih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBhbihJKX0oTXIpO0hyLkVuY3J5cHRvcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4gbm4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYW4oSSxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMuX2NpcGhlcixCPUkuYmxvY2tTaXplO1lyLmNhbGwodGhpcyxBLGcsQiksSS5lbmNyeXB0QmxvY2soQSxnKSx0aGlzLl9wcmV2QmxvY2s9QS5zbGljZShnLGcrQil9fV0pLEl9KEhyKSxIci5EZWNyeXB0b3I9ZnVuY3Rpb24oQSl7c24oSSxBKTt2YXIgZz13bihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIG5uKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGFuKEksW3trZXk6InByb2Nlc3NCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST10aGlzLl9jaXBoZXIsQj1JLmJsb2NrU2l6ZSxRPUEuc2xpY2UoZyxnK0IpO0kuZGVjcnlwdEJsb2NrKEEsZyksWXIuY2FsbCh0aGlzLEEsZyxCKSx0aGlzLl9wcmV2QmxvY2s9UX19XSksSX0oSHIpO3ZhciBwcj17cGFkOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTQqZyxCPUktQS5zaWdCeXRlcyVJLFE9Qjw8MjR8Qjw8MTZ8Qjw8OHxCLEM9W10sRT0wO0U8QjtFKz00KUMucHVzaChRKTt2YXIgaT1zci5jcmVhdGUoQyxCKTtBLmNvbmNhdChpKX0sdW5wYWQ6ZnVuY3Rpb24oQSl7dmFyIGc9QSxJPTI1NSZnLndvcmRzW2cuc2lnQnl0ZXMtMT4+PjJdO2cuc2lnQnl0ZXMtPUl9fSxKcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoQSxCLFEpe3ZhciBDO3JldHVybiBubih0aGlzLEkpLChDPWcuY2FsbCh0aGlzLEEsQixPYmplY3QuYXNzaWduKHttb2RlOkhyLHBhZGRpbmc6cHJ9LFEpKSkuYmxvY2tTaXplPTQsQ31yZXR1cm4gYW4oSSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7dW4oY24oSS5wcm90b3R5cGUpLCJyZXNldCIsdGhpcykuY2FsbCh0aGlzKTt2YXIgZz10aGlzLmNmZyxCPWcuaXYsUT1nLm1vZGU7dGhpcy5feGZvcm1Nb2RlPT09dGhpcy5jb25zdHJ1Y3Rvci5fRU5DX1hGT1JNX01PREU/QT1RLmNyZWF0ZUVuY3J5cHRvcjooQT1RLmNyZWF0ZURlY3J5cHRvcix0aGlzLl9taW5CdWZmZXJTaXplPTEpLHRoaXMuX21vZGU9QS5jYWxsKFEsdGhpcyxCJiZCLndvcmRzKSx0aGlzLl9tb2RlLl9fY3JlYXRvcj1BfX0se2tleToiX2RvUHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3RoaXMuX21vZGUucHJvY2Vzc0Jsb2NrKEEsZyl9fSx7a2V5OiJfZG9GaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQSxnPXRoaXMuY2ZnLnBhZGRpbmc7cmV0dXJuIHRoaXMuX3hmb3JtTW9kZT09PXRoaXMuY29uc3RydWN0b3IuX0VOQ19YRk9STV9NT0RFPyhnLnBhZCh0aGlzLl9kYXRhLHRoaXMuYmxvY2tTaXplKSxBPXRoaXMuX3Byb2Nlc3MoITApKTooQT10aGlzLl9wcm9jZXNzKCEwKSxnLnVucGFkKEEpKSxBfX1dKSxJfShOciksTHI9ZnVuY3Rpb24oQSl7c24oSSxBKTt2YXIgZz13bihJKTtmdW5jdGlvbiBJKEEpe3ZhciBCO3JldHVybiBubih0aGlzLEkpLChCPWcuY2FsbCh0aGlzKSkubWl4SW4oQSksQn1yZXR1cm4gYW4oSSxbe2tleToidG9TdHJpbmciLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybihBfHx0aGlzLmZvcm1hdHRlcikuc3RyaW5naWZ5KHRoaXMpfX1dKSxJfShhciksdnI9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXt2YXIgZz1BLmNpcGhlcnRleHQsST1BLnNhbHQ7cmV0dXJuKEk/c3IuY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQoSSkuY29uY2F0KGcpOmcpLnRvU3RyaW5nKHVyKX0scGFyc2U6ZnVuY3Rpb24oQSl7dmFyIGcsST11ci5wYXJzZShBKSxCPUkud29yZHM7cmV0dXJuIDEzOTg4OTM2ODQ9PT1CWzBdJiYxNzAxMDc2ODMxPT09QlsxXSYmKGc9c3IuY3JlYXRlKEIuc2xpY2UoMiw0KSksQi5zcGxpY2UoMCw0KSxJLnNpZ0J5dGVzLT0xNiksTHIuY3JlYXRlKHtjaXBoZXJ0ZXh0Okksc2FsdDpnfSl9fSxLcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4gbm4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYW4oSSxudWxsLFt7a2V5OiJlbmNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1PYmplY3QuYXNzaWduKG5ldyBhcix0aGlzLmNmZyxCKSxDPUEuY3JlYXRlRW5jcnlwdG9yKEksUSksRT1DLmZpbmFsaXplKGcpLGk9Qy5jZmc7cmV0dXJuIExyLmNyZWF0ZSh7Y2lwaGVydGV4dDpFLGtleTpJLGl2OmkuaXYsYWxnb3JpdGhtOkEsbW9kZTppLm1vZGUscGFkZGluZzppLnBhZGRpbmcsYmxvY2tTaXplOkMuYmxvY2tTaXplLGZvcm1hdHRlcjpRLmZvcm1hdH0pfX0se2tleToiZGVjcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ZyxDPU9iamVjdC5hc3NpZ24obmV3IGFyLHRoaXMuY2ZnLEIpO3JldHVybiBRPXRoaXMuX3BhcnNlKFEsQy5mb3JtYXQpLEEuY3JlYXRlRGVjcnlwdG9yKEksQykuZmluYWxpemUoUS5jaXBoZXJ0ZXh0KX19LHtrZXk6Il9wYXJzZSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEE/Zy5wYXJzZShBLHRoaXMpOkF9fV0pLEl9KGFyKTtLci5jZmc9T2JqZWN0LmFzc2lnbihuZXcgYXIse2Zvcm1hdDp2cn0pO3ZhciB4cj17ZXhlY3V0ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1CO1F8fChRPXNyLnJhbmRvbSg4KSk7dmFyIEM9U3IuY3JlYXRlKHtrZXlTaXplOmcrSX0pLmNvbXB1dGUoQSxRKSxFPXNyLmNyZWF0ZShDLndvcmRzLnNsaWNlKGcpLDQqSSk7cmV0dXJuIEMuc2lnQnl0ZXM9NCpnLExyLmNyZWF0ZSh7a2V5OkMsaXY6RSxzYWx0OlF9KX19LHFyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiBubih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBhbihJLG51bGwsW3trZXk6ImVuY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPU9iamVjdC5hc3NpZ24obmV3IGFyLHRoaXMuY2ZnLEIpLEM9US5rZGYuZXhlY3V0ZShJLEEua2V5U2l6ZSxBLml2U2l6ZSk7US5pdj1DLml2O3ZhciBFPUtyLmVuY3J5cHQuY2FsbCh0aGlzLEEsZyxDLmtleSxRKTtyZXR1cm4gRS5taXhJbihDKSxFfX0se2tleToiZGVjcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ZyxDPU9iamVjdC5hc3NpZ24obmV3IGFyLHRoaXMuY2ZnLEIpO1E9dGhpcy5fcGFyc2UoUSxDLmZvcm1hdCk7dmFyIEU9Qy5rZGYuZXhlY3V0ZShJLEEua2V5U2l6ZSxBLml2U2l6ZSxRLnNhbHQpO3JldHVybiBDLml2PUUuaXYsS3IuZGVjcnlwdC5jYWxsKHRoaXMsQSxRLEUua2V5LEMpfX1dKSxJfShLcik7cXIuY2ZnPU9iamVjdC5hc3NpZ24oS3IuY2ZnLHtrZGY6eHJ9KTtmb3IodmFyIG1yPVtdLGJyPVtdLFRyPVtdLGpyPVtdLFpyPVtdLE9yPVtdLFdyPVtdLFZyPVtdLFhyPVtdLFByPVtdLHpyPVtdLF9yPTA7X3I8MjU2O19yKz0xKXpyW19yXT1fcjwxMjg/X3I8PDE6X3I8PDFeMjgzO2Zvcih2YXIgJHI9MCxBYT0wLGdhPTA7Z2E8MjU2O2dhKz0xKXt2YXIgSWE9QWFeQWE8PDFeQWE8PDJeQWE8PDNeQWE8PDQ7SWE9SWE+Pj44XjI1NSZJYV45OSxtclskcl09SWEsYnJbSWFdPSRyO3ZhciBCYT16clskcl0sUWE9enJbQmFdLENhPXpyW1FhXSxFYT0yNTcqenJbSWFdXjE2ODQzMDA4KklhO1RyWyRyXT1FYTw8MjR8RWE+Pj44LGpyWyRyXT1FYTw8MTZ8RWE+Pj4xNixaclskcl09RWE8PDh8RWE+Pj4yNCxPclskcl09RWEsRWE9MTY4NDMwMDkqQ2FeNjU1MzcqUWFeMjU3KkJhXjE2ODQzMDA4KiRyLFdyW0lhXT1FYTw8MjR8RWE+Pj44LFZyW0lhXT1FYTw8MTZ8RWE+Pj4xNixYcltJYV09RWE8PDh8RWE+Pj4yNCxQcltJYV09RWEsJHI/KCRyPUJhXnpyW3pyW3pyW0NhXkJhXV1dLEFhXj16clt6cltBYV1dKTokcj1BYT0xfXZhciBpYT1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sdGE9ZnVuY3Rpb24oQSl7c24oSSxBKTt2YXIgZz13bihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIG5uKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGFuKEksW3trZXk6Il9kb1Jlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBO2lmKCF0aGlzLl9uUm91bmRzfHx0aGlzLl9rZXlQcmlvclJlc2V0IT09dGhpcy5fa2V5KXt0aGlzLl9rZXlQcmlvclJlc2V0PXRoaXMuX2tleTt2YXIgZz10aGlzLl9rZXlQcmlvclJlc2V0LEk9Zy53b3JkcyxCPWcuc2lnQnl0ZXMvNDt0aGlzLl9uUm91bmRzPUIrNjt2YXIgUT00Kih0aGlzLl9uUm91bmRzKzEpO3RoaXMuX2tleVNjaGVkdWxlPVtdO2Zvcih2YXIgQz10aGlzLl9rZXlTY2hlZHVsZSxFPTA7RTxRO0UrPTEpRTxCP0NbRV09SVtFXTooQT1DW0UtMV0sRSVCP0I+NiYmRSVCPT00JiYoQT1tcltBPj4+MjRdPDwyNHxtcltBPj4+MTYmMjU1XTw8MTZ8bXJbQT4+PjgmMjU1XTw8OHxtclsyNTUmQV0pOihBPW1yWyhBPUE8PDh8QT4+PjI0KT4+PjI0XTw8MjR8bXJbQT4+PjE2JjI1NV08PDE2fG1yW0E+Pj44JjI1NV08PDh8bXJbMjU1JkFdLEFePWlhW0UvQnwwXTw8MjQpLENbRV09Q1tFLUJdXkEpO3RoaXMuX2ludktleVNjaGVkdWxlPVtdO2Zvcih2YXIgaT10aGlzLl9pbnZLZXlTY2hlZHVsZSx0PTA7dDxRO3QrPTEpe3ZhciBvPVEtdDtBPXQlND9DW29dOkNbby00XSxpW3RdPXQ8NHx8bzw9ND9BOldyW21yW0E+Pj4yNF1dXlZyW21yW0E+Pj4xNiYyNTVdXV5YclttcltBPj4+OCYyNTVdXV5QclttclsyNTUmQV1dfX19fSx7a2V5OiJlbmNyeXB0QmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dGhpcy5fZG9DcnlwdEJsb2NrKEEsZyx0aGlzLl9rZXlTY2hlZHVsZSxUcixqcixacixPcixtcil9fSx7a2V5OiJkZWNyeXB0QmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9QSxCPUlbZysxXTtJW2crMV09SVtnKzNdLElbZyszXT1CLHRoaXMuX2RvQ3J5cHRCbG9jayhJLGcsdGhpcy5faW52S2V5U2NoZWR1bGUsV3IsVnIsWHIsUHIsYnIpLEI9SVtnKzFdLElbZysxXT1JW2crM10sSVtnKzNdPUJ9fSx7a2V5OiJfZG9DcnlwdEJsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCLFEsQyxFLGkpe2Zvcih2YXIgdD1BLG89dGhpcy5fblJvdW5kcyxlPXRbZ11eSVswXSxuPXRbZysxXV5JWzFdLHI9dFtnKzJdXklbMl0sYT10W2crM11eSVszXSxzPTQsYz0xO2M8bztjKz0xKXt2YXIgaD1CW2U+Pj4yNF1eUVtuPj4+MTYmMjU1XV5DW3I+Pj44JjI1NV1eRVsyNTUmYV1eSVtzXTtzKz0xO3ZhciBEPUJbbj4+PjI0XV5RW3I+Pj4xNiYyNTVdXkNbYT4+PjgmMjU1XV5FWzI1NSZlXV5JW3NdO3MrPTE7dmFyIHk9QltyPj4+MjRdXlFbYT4+PjE2JjI1NV1eQ1tlPj4+OCYyNTVdXkVbMjU1Jm5dXklbc107cys9MTt2YXIgZj1CW2E+Pj4yNF1eUVtlPj4+MTYmMjU1XV5DW24+Pj44JjI1NV1eRVsyNTUmcl1eSVtzXTtzKz0xLGU9aCxuPUQscj15LGE9Zn12YXIgdz0oaVtlPj4+MjRdPDwyNHxpW24+Pj4xNiYyNTVdPDwxNnxpW3I+Pj44JjI1NV08PDh8aVsyNTUmYV0pXklbc107cys9MTt2YXIgdT0oaVtuPj4+MjRdPDwyNHxpW3I+Pj4xNiYyNTVdPDwxNnxpW2E+Pj44JjI1NV08PDh8aVsyNTUmZV0pXklbc107cys9MTt2YXIgRj0oaVtyPj4+MjRdPDwyNHxpW2E+Pj4xNiYyNTVdPDwxNnxpW2U+Pj44JjI1NV08PDh8aVsyNTUmbl0pXklbc107cys9MTt2YXIgRz0oaVthPj4+MjRdPDwyNHxpW2U+Pj4xNiYyNTVdPDwxNnxpW24+Pj44JjI1NV08PDh8aVsyNTUmcl0pXklbc107cys9MSx0W2ddPXcsdFtnKzFdPXUsdFtnKzJdPUYsdFtnKzNdPUd9fV0pLEl9KEpyKTt0YS5rZXlTaXplPTg7dmFyIG9hPUpyLl9jcmVhdGVIZWxwZXIodGEpLGVhPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiBubih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBhbihJKX0oTXIpO2VhLkVuY3J5cHRvcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4gbm4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYW4oSSxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPUEsQj10aGlzLl9jaXBoZXIsUT1CLmJsb2NrU2l6ZSxDPXRoaXMuX2l2LEU9dGhpcy5fY291bnRlcjtDJiYodGhpcy5fY291bnRlcj1DLnNsaWNlKDApLEU9dGhpcy5fY291bnRlcix0aGlzLl9pdj12b2lkIDApO3ZhciBpPUUuc2xpY2UoMCk7Qi5lbmNyeXB0QmxvY2soaSwwKSxFW1EtMV09RVtRLTFdKzF8MDtmb3IodmFyIHQ9MDt0PFE7dCs9MSlJW2crdF1ePWlbdF19fV0pLEl9KGVhKSxlYS5EZWNyeXB0b3I9ZWEuRW5jcnlwdG9yO3ZhciBuYT17cGFkOmZ1bmN0aW9uKCl7fSx1bnBhZDpmdW5jdGlvbigpe319LHJhPXtkZWNyeXB0V29yZEFycmF5OmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1jci5wYXJzZShnKSxRPWNyLnBhcnNlKFhlKEkpKSxDPXNyLmNyZWF0ZShuZXcgVWludDhBcnJheShBKSksRT1vYS5kZWNyeXB0KExyLmNyZWF0ZSh7Y2lwaGVydGV4dDpDfSksQix7aXY6USxtb2RlOmVhLHBhZGRpbmc6bmF9KTtyZXR1cm4gcmEud29yZEFycmF5VG9VaW50OEFycmF5KEUpfSx3b3JkQXJyYXlUb1VpbnQ4QXJyYXk6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuc2lnQnl0ZXMsST1BLndvcmRzLEI9bmV3IFVpbnQ4QXJyYXkoZyksUT0wLEM9MDtRIT09Zzspe3ZhciBFPUlbQysrXTtpZihCW1ErK109KDQyNzgxOTAwODAmRSk+Pj4yNCxRPT09ZylicmVhaztpZihCW1ErK109KDE2NzExNjgwJkUpPj4+MTYsUT09PWcpYnJlYWs7aWYoQltRKytdPSg2NTI4MCZFKT4+PjgsUT09PWcpYnJlYWs7QltRKytdPTI1NSZFfXJldHVybiBCfSxkZWNvZGVyQUVTQ1RSRGF0YTpmdW5jdGlvbihBLGcsSSl7aWYoQS52aWRlb1NlbmMpe3ZhciBCPUEua2lkVmFsdWUsUT1BLnZpZGVvU2VuYztBLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oZyxDKXt2YXIgRT1RW0NdLGk9Zy5kYXRhLHQ9W10sbz1bXSxlPUUuSW5pdGlhbGl6YXRpb25WZWN0b3I7aWYoRS5zdWJzYW1wbGVzJiZFLnN1YnNhbXBsZXMubGVuZ3RoKUUuc3Vic2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZz1BLkJ5dGVzT2ZDbGVhckRhdGErQS5CeXRlc09mUHJvdGVjdGVkRGF0YSxJPWkuc2xpY2UoMCxnKTt0LnB1c2goSS5zbGljZSgwLEEuQnl0ZXNPZkNsZWFyRGF0YSkpLG8ucHVzaChJLnNsaWNlKEEuQnl0ZXNPZkNsZWFyRGF0YSkpLGk9aS5zbGljZShnKX0pKTtlbHNle3ZhciBuPWcuc2l6ZTt0LnB1c2goaS5zbGljZSgwLDApKSxvLnB1c2goaS5zbGljZSgwLG4pKSxpPWkuc2xpY2Uobil9dmFyIHI9bmV3IFFuO3Iud3JpdGUuYXBwbHkocixvKTt2YXIgYT1JP0koci5idWZmZXIsQixlKTpyYS5kZWNyeXB0V29yZEFycmF5KHIuYnVmZmVyLEIsZSkscz1uZXcgUW47dC5mb3JFYWNoKChmdW5jdGlvbihBLGcpe3ZhciBJPW9bZ10ubGVuZ3RoLEI9YS5zbGljZSgwLEkpO3Mud3JpdGUoQSkscy53cml0ZShCKSxhPWEuc2xpY2UoSSl9KSksQS5zYW1wbGVzW0NdLmRhdGE9cy5idWZmZXJ9KSl9aWYoZy5hdWRpb1NlbmMpe3ZhciBDPWcua2lkVmFsdWUsRT1nLmF1ZGlvU2VuYztnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSxCKXt2YXIgUT1FW0JdLGk9ST9JKEEuZGF0YSxDLFEuSW5pdGlhbGl6YXRpb25WZWN0b3IpOnJhLmRlY3J5cHRXb3JkQXJyYXkoQS5kYXRhLEMsUS5Jbml0aWFsaXphdGlvblZlY3Rvcik7Zy5zYW1wbGVzW0JdLmRhdGE9aX0pKX19fSxhYT1pLHNhPSJbXHRcblx2XGZcciDCoOGagOKAgOKAgeKAguKAg+KAhOKAheKAhuKAh+KAiOKAieKAiuKAr+KBn+OAgFx1MjAyOFx1MjAyOVx1ZmVmZl0iLGNhPVJlZ0V4cCgiXiIrc2Erc2ErIioiKSxoYT1SZWdFeHAoc2Erc2ErIiokIiksRGE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcpe3ZhciBJPVN0cmluZyhhYShnKSk7cmV0dXJuIDEmQSYmKEk9SS5yZXBsYWNlKGNhLCIiKSksMiZBJiYoST1JLnJlcGxhY2UoaGEsIiIpKSxJfX0seWE9e3N0YXJ0OkRhKDEpLGVuZDpEYSgyKSx0cmltOkRhKDMpfSxmYT1zLHdhPXIsdWE9TEksRmE9YUksR2E9UCxkYT1CLFJhPXZFLGxhPWwsa2E9ZyxVYT1jZyxTYT1zSS5mLE5hPVpnLmYsTWE9Yy5mLFlhPXlhLnRyaW0sSGE9Ik51bWJlciIscGE9d2FbSGFdLEphPXBhLnByb3RvdHlwZSxMYT1kYShVYShKYSkpPT1IYSx2YT1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEUsaSx0LG89bGEoQSwhMSk7aWYoInN0cmluZyI9PXR5cGVvZiBvJiZvLmxlbmd0aD4yKWlmKDQzPT09KGc9KG89WWEobykpLmNoYXJDb2RlQXQoMCkpfHw0NT09PWcpe2lmKDg4PT09KEk9by5jaGFyQ29kZUF0KDIpKXx8MTIwPT09SSlyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1nKXtzd2l0Y2goby5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6Qj0yLFE9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpCPTgsUT01NTticmVhaztkZWZhdWx0OnJldHVybitvfWZvcihFPShDPW8uc2xpY2UoMikpLmxlbmd0aCxpPTA7aTxFO2krKylpZigodD1DLmNoYXJDb2RlQXQoaSkpPDQ4fHx0PlEpcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoQyxCKX1yZXR1cm4rb307aWYodWEoSGEsIXBhKCIgMG8xIil8fCFwYSgiMGIxIil8fHBhKCIrMHgxIikpKXtmb3IodmFyIEthLHhhPWZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg8MT8wOkEsST10aGlzO3JldHVybiBJIGluc3RhbmNlb2YgeGEmJihMYT9rYSgoZnVuY3Rpb24oKXtKYS52YWx1ZU9mLmNhbGwoSSl9KSk6ZGEoSSkhPUhhKT9SYShuZXcgcGEodmEoZykpLEkseGEpOnZhKGcpfSxxYT1mYT9TYShwYSk6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJbnQsaXNJbnRlZ2VyLGZyb21TdHJpbmcscmFuZ2UiLnNwbGl0KCIsIiksbWE9MDtxYS5sZW5ndGg+bWE7bWErKylHYShwYSxLYT1xYVttYV0pJiYhR2EoeGEsS2EpJiZNYSh4YSxLYSxOYShwYSxLYSkpO3hhLnByb3RvdHlwZT1KYSxKYS5jb25zdHJ1Y3Rvcj14YSxGYSh3YSxIYSx4YSl9dmFyIGJhLFRhLGphLFphPXIuUHJvbWlzZSxPYT1kLFdhPWQsVmE9RUUsWGE9U0EsUGE9b0UsemE9SUUsX2E9ZnVuY3Rpb24oQSl7dmFyIGc9QS5yZXR1cm47aWYodm9pZCAwIT09ZylyZXR1cm4gT2EoZy5jYWxsKEEpKS52YWx1ZX0sJGE9ZnVuY3Rpb24oQSxnKXt0aGlzLnN0b3BwZWQ9QSx0aGlzLnJlc3VsdD1nfSxBcz0vKD86aXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChRQSksZ3M9InByb2Nlc3MiPT1CKHIucHJvY2VzcyksSXM9cixCcz1nLFFzPW9FLENzPSRBLEVzPXcsaXM9QXMsdHM9Z3Msb3M9SXMubG9jYXRpb24sZXM9SXMuc2V0SW1tZWRpYXRlLG5zPUlzLmNsZWFySW1tZWRpYXRlLHJzPUlzLnByb2Nlc3MsYXM9SXMuTWVzc2FnZUNoYW5uZWwsc3M9SXMuRGlzcGF0Y2gsY3M9MCxocz17fSxEcz0ib25yZWFkeXN0YXRlY2hhbmdlIix5cz1mdW5jdGlvbihBKXtpZihocy5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIGc9aHNbQV07ZGVsZXRlIGhzW0FdLGcoKX19LGZzPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe3lzKEEpfX0sd3M9ZnVuY3Rpb24oQSl7eXMoQS5kYXRhKX0sdXM9ZnVuY3Rpb24oQSl7SXMucG9zdE1lc3NhZ2UoQSsiIixvcy5wcm90b2NvbCsiLy8iK29zLmhvc3QpfTtlcyYmbnN8fChlcz1mdW5jdGlvbihBKXtmb3IodmFyIGc9W10sST0xO2FyZ3VtZW50cy5sZW5ndGg+STspZy5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gaHNbKytjc109ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIEE/QTpGdW5jdGlvbihBKSkuYXBwbHkodm9pZCAwLGcpfSxiYShjcyksY3N9LG5zPWZ1bmN0aW9uKEEpe2RlbGV0ZSBoc1tBXX0sdHM/YmE9ZnVuY3Rpb24oQSl7cnMubmV4dFRpY2soZnMoQSkpfTpzcyYmc3Mubm93P2JhPWZ1bmN0aW9uKEEpe3NzLm5vdyhmcyhBKSl9OmFzJiYhaXM/KGphPShUYT1uZXcgYXMpLnBvcnQyLFRhLnBvcnQxLm9ubWVzc2FnZT13cyxiYT1RcyhqYS5wb3N0TWVzc2FnZSxqYSwxKSk6SXMuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBvc3RNZXNzYWdlJiYhSXMuaW1wb3J0U2NyaXB0cyYmb3MmJiJmaWxlOiIhPT1vcy5wcm90b2NvbCYmIUJzKHVzKT8oYmE9dXMsSXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsd3MsITEpKTpiYT1EcyBpbiBFcygic2NyaXB0Iik/ZnVuY3Rpb24oQSl7Q3MuYXBwZW5kQ2hpbGQoRXMoInNjcmlwdCIpKVtEc109ZnVuY3Rpb24oKXtDcy5yZW1vdmVDaGlsZCh0aGlzKSx5cyhBKX19OmZ1bmN0aW9uKEEpe3NldFRpbWVvdXQoZnMoQSksMCl9KTt2YXIgRnMsR3MsZHMsUnMsbHMsa3MsVXMsU3MsTnM9e3NldDplcyxjbGVhcjpuc30sTXM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChRQSksWXM9cixIcz1aZy5mLHBzPU5zLnNldCxKcz1BcyxMcz1Ncyx2cz1ncyxLcz1Zcy5NdXRhdGlvbk9ic2VydmVyfHxZcy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLHhzPVlzLmRvY3VtZW50LHFzPVlzLnByb2Nlc3MsbXM9WXMuUHJvbWlzZSxicz1IcyhZcywicXVldWVNaWNyb3Rhc2siKSxUcz1icyYmYnMudmFsdWU7VHN8fChGcz1mdW5jdGlvbigpe3ZhciBBLGc7Zm9yKHZzJiYoQT1xcy5kb21haW4pJiZBLmV4aXQoKTtHczspe2c9R3MuZm4sR3M9R3MubmV4dDt0cnl7ZygpfWNhdGNoKEJ5KXt0aHJvdyBHcz9ScygpOmRzPXZvaWQgMCxCeX19ZHM9dm9pZCAwLEEmJkEuZW50ZXIoKX0sSnN8fHZzfHxMc3x8IUtzfHwheHM/bXMmJm1zLnJlc29sdmU/KChVcz1tcy5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPW1zLFNzPVVzLnRoZW4sUnM9ZnVuY3Rpb24oKXtTcy5jYWxsKFVzLEZzKX0pOlJzPXZzP2Z1bmN0aW9uKCl7cXMubmV4dFRpY2soRnMpfTpmdW5jdGlvbigpe3BzLmNhbGwoWXMsRnMpfToobHM9ITAsa3M9eHMuY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBLcyhGcykub2JzZXJ2ZShrcyx7Y2hhcmFjdGVyRGF0YTohMH0pLFJzPWZ1bmN0aW9uKCl7a3MuZGF0YT1scz0hbHN9KSk7dmFyIGpzPVRzfHxmdW5jdGlvbihBKXt2YXIgZz17Zm46QSxuZXh0OnZvaWQgMH07ZHMmJihkcy5uZXh0PWcpLEdzfHwoR3M9ZyxScygpKSxkcz1nfSxacz17fSxPcz1pRSxXcz1mdW5jdGlvbihBKXt2YXIgZyxJO3RoaXMucHJvbWlzZT1uZXcgQSgoZnVuY3Rpb24oQSxCKXtpZih2b2lkIDAhPT1nfHx2b2lkIDAhPT1JKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtnPUEsST1CfSkpLHRoaXMucmVzb2x2ZT1PcyhnKSx0aGlzLnJlamVjdD1PcyhJKX07WnMuZj1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IFdzKEEpfTt2YXIgVnMsWHMsUHMsenMsX3M9ZCwkcz1oLEFjPVpzLGdjPXIsSWM9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3csQmM9akksUWM9cixDYz1CQSxFYz1aYSxpYz1hSSx0Yz1UUSxvYz15QixlYz10QixuYz1wRSxyYz1oLGFjPWlFLHNjPWpRLGNjPWtnLGhjPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEMsRSxpLHQsbyxlPUkmJkkudGhhdCxuPSEoIUl8fCFJLkFTX0VOVFJJRVMpLHI9ISghSXx8IUkuSVNfSVRFUkFUT1IpLGE9ISghSXx8IUkuSU5URVJSVVBURUQpLHM9UGEoZyxlLDErbithKSxjPWZ1bmN0aW9uKEEpe3JldHVybiBCJiZfYShCKSxuZXcgJGEoITAsQSl9LGg9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/KFdhKEEpLGE/cyhBWzBdLEFbMV0sYyk6cyhBWzBdLEFbMV0pKTphP3MoQSxjKTpzKEEpfTtpZihyKUI9QTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihRPXphKEEpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihWYShRKSl7Zm9yKEM9MCxFPVhhKEEubGVuZ3RoKTtFPkM7QysrKWlmKChpPWgoQVtDXSkpJiZpIGluc3RhbmNlb2YgJGEpcmV0dXJuIGk7cmV0dXJuIG5ldyAkYSghMSl9Qj1RLmNhbGwoQSl9Zm9yKHQ9Qi5uZXh0OyEobz10LmNhbGwoQikpLmRvbmU7KXt0cnl7aT1oKG8udmFsdWUpfWNhdGNoKEJ5KXt0aHJvdyBfYShCKSxCeX1pZigib2JqZWN0Ij09dHlwZW9mIGkmJmkmJmkgaW5zdGFuY2VvZiAkYSlyZXR1cm4gaX1yZXR1cm4gbmV3ICRhKCExKX0sRGM9UVEseWM9T2ksZmM9TnMuc2V0LHdjPWpzLHVjPWZ1bmN0aW9uKEEsZyl7aWYoX3MoQSksJHMoZykmJmcuY29uc3RydWN0b3I9PT1BKXJldHVybiBnO3ZhciBJPUFjLmYoQSk7cmV0dXJuKDAsSS5yZXNvbHZlKShnKSxJLnByb21pc2V9LEZjPWZ1bmN0aW9uKEEsZyl7dmFyIEk9Z2MuY29uc29sZTtJJiZJLmVycm9yJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/SS5lcnJvcihBKTpJLmVycm9yKEEsZykpfSxHYz1acyxkYz1mdW5jdGlvbihBKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOkEoKX19Y2F0Y2goQnkpe3JldHVybntlcnJvcjohMCx2YWx1ZTpCeX19fSxSYz1qZyxsYz1MSSxrYz1JYyxVYz1ncyxTYz1lQSxOYz1HQSgic3BlY2llcyIpLE1jPSJQcm9taXNlIixZYz1SYy5nZXQsSGM9UmMuc2V0LHBjPVJjLmdldHRlckZvcihNYyksSmM9RWMmJkVjLnByb3RvdHlwZSxMYz1FYyx2Yz1KYyxLYz1RYy5UeXBlRXJyb3IseGM9UWMuZG9jdW1lbnQscWM9UWMucHJvY2VzcyxtYz1HYy5mLGJjPW1jLFRjPSEhKHhjJiZ4Yy5jcmVhdGVFdmVudCYmUWMuZGlzcGF0Y2hFdmVudCksamM9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxaYz0idW5oYW5kbGVkcmVqZWN0aW9uIixPYz0hMSxXYz1sYyhNYywoZnVuY3Rpb24oKXt2YXIgQT1jYyhMYykhPT1TdHJpbmcoTGMpO2lmKCFBJiY2Nj09PVNjKXJldHVybiEwO2lmKFNjPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KExjKSlyZXR1cm4hMTt2YXIgZz1uZXcgTGMoKGZ1bmN0aW9uKEEpe0EoMSl9KSksST1mdW5jdGlvbihBKXtBKChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pKX07cmV0dXJuKGcuY29uc3RydWN0b3I9e30pW05jXT1JLCEoT2M9Zy50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgSSl8fCFBJiZrYyYmIWpjfSkpLFZjPVdjfHwhRGMoKGZ1bmN0aW9uKEEpe0xjLmFsbChBKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksWGM9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuISghcmMoQSl8fCJmdW5jdGlvbiIhPXR5cGVvZihnPUEudGhlbikpJiZnfSxQYz1mdW5jdGlvbihBLGcpe2lmKCFBLm5vdGlmaWVkKXtBLm5vdGlmaWVkPSEwO3ZhciBJPUEucmVhY3Rpb25zO3djKChmdW5jdGlvbigpe2Zvcih2YXIgQj1BLnZhbHVlLFE9MT09QS5zdGF0ZSxDPTA7SS5sZW5ndGg+Qzspe3ZhciBFLGksdCxvPUlbQysrXSxlPVE/by5vazpvLmZhaWwsbj1vLnJlc29sdmUscj1vLnJlamVjdCxhPW8uZG9tYWluO3RyeXtlPyhRfHwoMj09PUEucmVqZWN0aW9uJiZBaChBKSxBLnJlamVjdGlvbj0xKSwhMD09PWU/RT1COihhJiZhLmVudGVyKCksRT1lKEIpLGEmJihhLmV4aXQoKSx0PSEwKSksRT09PW8ucHJvbWlzZT9yKEtjKCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOihpPVhjKEUpKT9pLmNhbGwoRSxuLHIpOm4oRSkpOnIoQil9Y2F0Y2goQnkpe2EmJiF0JiZhLmV4aXQoKSxyKEJ5KX19QS5yZWFjdGlvbnM9W10sQS5ub3RpZmllZD0hMSxnJiYhQS5yZWplY3Rpb24mJl9jKEEpfSkpfX0semM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7VGM/KChCPXhjLmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWcsQi5yZWFzb249SSxCLmluaXRFdmVudChBLCExLCEwKSxRYy5kaXNwYXRjaEV2ZW50KEIpKTpCPXtwcm9taXNlOmcscmVhc29uOkl9LCFqYyYmKFE9UWNbIm9uIitBXSk/UShCKTpBPT09WmMmJkZjKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLEkpfSxfYz1mdW5jdGlvbihBKXtmYy5jYWxsKFFjLChmdW5jdGlvbigpe3ZhciBnLEk9QS5mYWNhZGUsQj1BLnZhbHVlO2lmKCRjKEEpJiYoZz1kYygoZnVuY3Rpb24oKXtVYz9xYy5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLEIsSSk6emMoWmMsSSxCKX0pKSxBLnJlamVjdGlvbj1VY3x8JGMoQSk/MjoxLGcuZXJyb3IpKXRocm93IGcudmFsdWV9KSl9LCRjPWZ1bmN0aW9uKEEpe3JldHVybiAxIT09QS5yZWplY3Rpb24mJiFBLnBhcmVudH0sQWg9ZnVuY3Rpb24oQSl7ZmMuY2FsbChRYywoZnVuY3Rpb24oKXt2YXIgZz1BLmZhY2FkZTtVYz9xYy5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixnKTp6YygicmVqZWN0aW9uaGFuZGxlZCIsZyxBLnZhbHVlKX0pKX0sZ2g9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBmdW5jdGlvbihCKXtBKGcsQixJKX19LEloPWZ1bmN0aW9uKEEsZyxJKXtBLmRvbmV8fChBLmRvbmU9ITAsSSYmKEE9SSksQS52YWx1ZT1nLEEuc3RhdGU9MixQYyhBLCEwKSl9LEJoPWZ1bmN0aW9uKEEsZyxJKXtpZighQS5kb25lKXtBLmRvbmU9ITAsSSYmKEE9SSk7dHJ5e2lmKEEuZmFjYWRlPT09Zyl0aHJvdyBLYygiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgQj1YYyhnKTtCP3djKChmdW5jdGlvbigpe3ZhciBJPXtkb25lOiExfTt0cnl7Qi5jYWxsKGcsZ2goQmgsSSxBKSxnaChJaCxJLEEpKX1jYXRjaChCeSl7SWgoSSxCeSxBKX19KSk6KEEudmFsdWU9ZyxBLnN0YXRlPTEsUGMoQSwhMSkpfWNhdGNoKEJ5KXtJaCh7ZG9uZTohMX0sQnksQSl9fX07aWYoV2MmJih2Yz0oTGM9ZnVuY3Rpb24oQSl7c2ModGhpcyxMYyxNYyksYWMoQSksVnMuY2FsbCh0aGlzKTt2YXIgZz1ZYyh0aGlzKTt0cnl7QShnaChCaCxnKSxnaChJaCxnKSl9Y2F0Y2goQnkpe0loKGcsQnkpfX0pLnByb3RvdHlwZSwoVnM9ZnVuY3Rpb24oQSl7SGModGhpcyx7dHlwZTpNYyxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9dGModmMse3RoZW46ZnVuY3Rpb24oQSxnKXt2YXIgST1wYyh0aGlzKSxCPW1jKHljKHRoaXMsTGMpKTtyZXR1cm4gQi5vaz0iZnVuY3Rpb24iIT10eXBlb2YgQXx8QSxCLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcsQi5kb21haW49VWM/cWMuZG9tYWluOnZvaWQgMCxJLnBhcmVudD0hMCxJLnJlYWN0aW9ucy5wdXNoKEIpLDAhPUkuc3RhdGUmJlBjKEksITEpLEIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsQSl9fSksWHM9ZnVuY3Rpb24oKXt2YXIgQT1uZXcgVnMsZz1ZYyhBKTt0aGlzLnByb21pc2U9QSx0aGlzLnJlc29sdmU9Z2goQmgsZyksdGhpcy5yZWplY3Q9Z2goSWgsZyl9LEdjLmY9bWM9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT1MY3x8QT09PVBzP25ldyBYcyhBKTpiYyhBKX0sImZ1bmN0aW9uIj09dHlwZW9mIEVjJiZKYyE9PU9iamVjdC5wcm90b3R5cGUpKXt6cz1KYy50aGVuLE9jfHwoaWMoSmMsInRoZW4iLChmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXM7cmV0dXJuIG5ldyBMYygoZnVuY3Rpb24oQSxnKXt6cy5jYWxsKEksQSxnKX0pKS50aGVuKEEsZyl9KSx7dW5zYWZlOiEwfSksaWMoSmMsImNhdGNoIix2Yy5jYXRjaCx7dW5zYWZlOiEwfSkpO3RyeXtkZWxldGUgSmMuY29uc3RydWN0b3J9Y2F0Y2goQnkpe31vYyYmb2MoSmMsdmMpfUJjKHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6V2N9LHtQcm9taXNlOkxjfSksZWMoTGMsTWMsITEpLG5jKE1jKSxQcz1DYyhNYyksQmMoe3RhcmdldDpNYyxzdGF0OiEwLGZvcmNlZDpXY30se3JlamVjdDpmdW5jdGlvbihBKXt2YXIgZz1tYyh0aGlzKTtyZXR1cm4gZy5yZWplY3QuY2FsbCh2b2lkIDAsQSksZy5wcm9taXNlfX0pLEJjKHt0YXJnZXQ6TWMsc3RhdDohMCxmb3JjZWQ6V2N9LHtyZXNvbHZlOmZ1bmN0aW9uKEEpe3JldHVybiB1Yyh0aGlzLEEpfX0pLEJjKHt0YXJnZXQ6TWMsc3RhdDohMCxmb3JjZWQ6VmN9LHthbGw6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcyxJPW1jKGcpLEI9SS5yZXNvbHZlLFE9SS5yZWplY3QsQz1kYygoZnVuY3Rpb24oKXt2YXIgST1hYyhnLnJlc29sdmUpLEM9W10sRT0wLGk9MTtoYyhBLChmdW5jdGlvbihBKXt2YXIgdD1FKyssbz0hMTtDLnB1c2godm9pZCAwKSxpKyssSS5jYWxsKGcsQSkudGhlbigoZnVuY3Rpb24oQSl7b3x8KG89ITAsQ1t0XT1BLC0taXx8QihDKSl9KSxRKX0pKSwtLWl8fEIoQyl9KSk7cmV0dXJuIEMuZXJyb3ImJlEoQy52YWx1ZSksSS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMsST1tYyhnKSxCPUkucmVqZWN0LFE9ZGMoKGZ1bmN0aW9uKCl7dmFyIFE9YWMoZy5yZXNvbHZlKTtoYyhBLChmdW5jdGlvbihBKXtRLmNhbGwoZyxBKS50aGVuKEkucmVzb2x2ZSxCKX0pKX0pKTtyZXR1cm4gUS5lcnJvciYmQihRLnZhbHVlKSxJLnByb21pc2V9fSk7dmFyIFFoPXt9LENoPWc7ZnVuY3Rpb24gRWgoQSxnKXtyZXR1cm4gUmVnRXhwKEEsZyl9UWguVU5TVVBQT1JURURfWT1DaCgoZnVuY3Rpb24oKXt2YXIgQT1FaCgiYSIsInkiKTtyZXR1cm4gQS5sYXN0SW5kZXg9MixudWxsIT1BLmV4ZWMoImFiY2QiKX0pKSxRaC5CUk9LRU5fQ0FSRVQ9Q2goKGZ1bmN0aW9uKCl7dmFyIEE9RWgoIl5yIiwiZ3kiKTtyZXR1cm4gQS5sYXN0SW5kZXg9MixudWxsIT1BLmV4ZWMoInN0ciIpfSkpO3ZhciBpaCx0aCxvaD1sbixlaD1RaCxuaD1aLHJoPVJlZ0V4cC5wcm90b3R5cGUuZXhlYyxhaD1uaCgibmF0aXZlLXN0cmluZy1yZXBsYWNlIixTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLHNoPXJoLGNoPShpaD0vYS8sdGg9L2IqL2cscmguY2FsbChpaCwiYSIpLHJoLmNhbGwodGgsImEiKSwwIT09aWgubGFzdEluZGV4fHwwIT09dGgubGFzdEluZGV4KSxoaD1laC5VTlNVUFBPUlRFRF9ZfHxlaC5CUk9LRU5fQ0FSRVQsRGg9dm9pZCAwIT09LygpPz8vLmV4ZWMoIiIpWzFdOyhjaHx8RGh8fGhoKSYmKHNoPWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEM9dGhpcyxFPWhoJiZDLnN0aWNreSxpPW9oLmNhbGwoQyksdD1DLnNvdXJjZSxvPTAsZT1BO3JldHVybiBFJiYoLTE9PT0oaT1pLnJlcGxhY2UoInkiLCIiKSkuaW5kZXhPZigiZyIpJiYoaSs9ImciKSxlPVN0cmluZyhBKS5zbGljZShDLmxhc3RJbmRleCksQy5sYXN0SW5kZXg+MCYmKCFDLm11bHRpbGluZXx8Qy5tdWx0aWxpbmUmJiJcbiIhPT1BW0MubGFzdEluZGV4LTFdKSYmKHQ9Iig/OiAiK3QrIikiLGU9IiAiK2UsbysrKSxJPW5ldyBSZWdFeHAoIl4oPzoiK3QrIikiLGkpKSxEaCYmKEk9bmV3IFJlZ0V4cCgiXiIrdCsiJCg/IVxccykiLGkpKSxjaCYmKGc9Qy5sYXN0SW5kZXgpLEI9cmguY2FsbChFP0k6QyxlKSxFP0I/KEIuaW5wdXQ9Qi5pbnB1dC5zbGljZShvKSxCWzBdPUJbMF0uc2xpY2UobyksQi5pbmRleD1DLmxhc3RJbmRleCxDLmxhc3RJbmRleCs9QlswXS5sZW5ndGgpOkMubGFzdEluZGV4PTA6Y2gmJkImJihDLmxhc3RJbmRleD1DLmdsb2JhbD9CLmluZGV4K0JbMF0ubGVuZ3RoOmcpLERoJiZCJiZCLmxlbmd0aD4xJiZhaC5jYWxsKEJbMF0sSSwoZnVuY3Rpb24oKXtmb3IoUT0xO1E8YXJndW1lbnRzLmxlbmd0aC0yO1ErKyl2b2lkIDA9PT1hcmd1bWVudHNbUV0mJihCW1FdPXZvaWQgMCl9KSksQn0pO3ZhciB5aD1zaDtqSSh7dGFyZ2V0OiJSZWdFeHAiLHByb3RvOiEwLGZvcmNlZDovLi8uZXhlYyE9PXlofSx7ZXhlYzp5aH0pO3ZhciBmaD1hSSx3aD15aCx1aD1nLEZoPUdBLEdoPUosZGg9RmgoInNwZWNpZXMiKSxSaD1SZWdFeHAucHJvdG90eXBlLGxoPSF1aCgoZnVuY3Rpb24oKXt2YXIgQT0vLi87cmV0dXJuIEEuZXhlYz1mdW5jdGlvbigpe3ZhciBBPVtdO3JldHVybiBBLmdyb3Vwcz17YToiNyJ9LEF9LCI3IiE9PSIiLnJlcGxhY2UoQSwiJDxhPiIpfSkpLGtoPSIkMCI9PT0iYSIucmVwbGFjZSgvLi8sIiQwIiksVWg9RmgoInJlcGxhY2UiKSxTaD0hIS8uL1tVaF0mJiIiPT09Ly4vW1VoXSgiYSIsIiQwIiksTmg9IXVoKChmdW5jdGlvbigpe3ZhciBBPS8oPzopLyxnPUEuZXhlYztBLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBJPSJhYiIuc3BsaXQoQSk7cmV0dXJuIDIhPT1JLmxlbmd0aHx8ImEiIT09SVswXXx8ImIiIT09SVsxXX0pKSxNaD1sQSxZaD1pLEhoPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEkpe3ZhciBCLFEsQz1TdHJpbmcoWWgoZykpLEU9TWgoSSksaT1DLmxlbmd0aDtyZXR1cm4gRTwwfHxFPj1pP0E/IiI6dm9pZCAwOihCPUMuY2hhckNvZGVBdChFKSk8NTUyOTZ8fEI+NTYzMTl8fEUrMT09PWl8fChRPUMuY2hhckNvZGVBdChFKzEpKTw1NjMyMHx8UT41NzM0Mz9BP0MuY2hhckF0KEUpOkI6QT9DLnNsaWNlKEUsRSsyKTpRLTU2MzIwKyhCLTU1Mjk2PDwxMCkrNjU1MzZ9fSxwaD17Y29kZUF0OkhoKCExKSxjaGFyQXQ6SGgoITApfS5jaGFyQXQsSmg9VyxMaD1NYXRoLmZsb29yLHZoPSIiLnJlcGxhY2UsS2g9L1wkKFskJidgXXxcZHsxLDJ9fDxbXj5dKj4pL2cseGg9L1wkKFskJidgXXxcZHsxLDJ9KS9nLHFoPUIsbWg9eWgsYmg9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9RmgoQSksQz0hdWgoKGZ1bmN0aW9uKCl7dmFyIGc9e307cmV0dXJuIGdbUV09ZnVuY3Rpb24oKXtyZXR1cm4gN30sNyE9IiJbQV0oZyl9KSksRT1DJiYhdWgoKGZ1bmN0aW9uKCl7dmFyIGc9ITEsST0vYS87cmV0dXJuInNwbGl0Ij09PUEmJigoST17fSkuY29uc3RydWN0b3I9e30sSS5jb25zdHJ1Y3RvcltkaF09ZnVuY3Rpb24oKXtyZXR1cm4gSX0sSS5mbGFncz0iIixJW1FdPS8uL1tRXSksSS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGc9ITAsbnVsbH0sSVtRXSgiIiksIWd9KSk7aWYoIUN8fCFFfHwicmVwbGFjZSI9PT1BJiYoIWxofHwha2h8fFNoKXx8InNwbGl0Ij09PUEmJiFOaCl7dmFyIGk9Ly4vW1FdLHQ9SShRLCIiW0FdLChmdW5jdGlvbihBLGcsSSxCLFEpe3ZhciBFPWcuZXhlYztyZXR1cm4gRT09PXdofHxFPT09UmguZXhlYz9DJiYhUT97ZG9uZTohMCx2YWx1ZTppLmNhbGwoZyxJLEIpfTp7ZG9uZTohMCx2YWx1ZTpBLmNhbGwoSSxnLEIpfTp7ZG9uZTohMX19KSx7UkVQTEFDRV9LRUVQU18kMDpraCxSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRTpTaH0pLG89dFswXSxlPXRbMV07ZmgoU3RyaW5nLnByb3RvdHlwZSxBLG8pLGZoKFJoLFEsMj09Zz9mdW5jdGlvbihBLGcpe3JldHVybiBlLmNhbGwoQSx0aGlzLGcpfTpmdW5jdGlvbihBKXtyZXR1cm4gZS5jYWxsKEEsdGhpcyl9KX1CJiZHaChSaFtRXSwic2hhbSIsITApfSxUaD1kLGpoPVNBLFpoPWxBLE9oPWksV2g9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBnKyhJP3BoKEEsZykubGVuZ3RoOjEpfSxWaD1mdW5jdGlvbihBLGcsSSxCLFEsQyl7dmFyIEU9SStBLmxlbmd0aCxpPUIubGVuZ3RoLHQ9eGg7cmV0dXJuIHZvaWQgMCE9PVEmJihRPUpoKFEpLHQ9S2gpLHZoLmNhbGwoQyx0LChmdW5jdGlvbihDLHQpe3ZhciBvO3N3aXRjaCh0LmNoYXJBdCgwKSl7Y2FzZSIkIjpyZXR1cm4iJCI7Y2FzZSImIjpyZXR1cm4gQTtjYXNlImAiOnJldHVybiBnLnNsaWNlKDAsSSk7Y2FzZSInIjpyZXR1cm4gZy5zbGljZShFKTtjYXNlIjwiOm89UVt0LnNsaWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBlPSt0O2lmKDA9PT1lKXJldHVybiBDO2lmKGU+aSl7dmFyIG49TGgoZS8xMCk7cmV0dXJuIDA9PT1uP0M6bjw9aT92b2lkIDA9PT1CW24tMV0/dC5jaGFyQXQoMSk6QltuLTFdK3QuY2hhckF0KDEpOkN9bz1CW2UtMV19cmV0dXJuIHZvaWQgMD09PW8/IiI6b30pKX0sWGg9ZnVuY3Rpb24oQSxnKXt2YXIgST1BLmV4ZWM7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEkpe3ZhciBCPUkuY2FsbChBLGcpO2lmKCJvYmplY3QiIT10eXBlb2YgQil0aHJvdyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3JldHVybiBCfWlmKCJSZWdFeHAiIT09cWgoQSkpdGhyb3cgVHlwZUVycm9yKCJSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRpYmxlIHJlY2VpdmVyIik7cmV0dXJuIG1oLmNhbGwoQSxnKX0sUGg9TWF0aC5tYXgsemg9TWF0aC5taW47YmgoInJlcGxhY2UiLDIsKGZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPUIuUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUsQz1CLlJFUExBQ0VfS0VFUFNfJDAsRT1RPyIkIjoiJDAiO3JldHVybltmdW5jdGlvbihJLEIpe3ZhciBRPU9oKHRoaXMpLEM9bnVsbD09ST92b2lkIDA6SVtBXTtyZXR1cm4gdm9pZCAwIT09Qz9DLmNhbGwoSSxRLEIpOmcuY2FsbChTdHJpbmcoUSksSSxCKX0sZnVuY3Rpb24oQSxCKXtpZighUSYmQ3x8InN0cmluZyI9PXR5cGVvZiBCJiYtMT09PUIuaW5kZXhPZihFKSl7dmFyIGk9SShnLEEsdGhpcyxCKTtpZihpLmRvbmUpcmV0dXJuIGkudmFsdWV9dmFyIHQ9VGgoQSksbz1TdHJpbmcodGhpcyksZT0iZnVuY3Rpb24iPT10eXBlb2YgQjtlfHwoQj1TdHJpbmcoQikpO3ZhciBuPXQuZ2xvYmFsO2lmKG4pe3ZhciByPXQudW5pY29kZTt0Lmxhc3RJbmRleD0wfWZvcih2YXIgYT1bXTs7KXt2YXIgcz1YaCh0LG8pO2lmKG51bGw9PT1zKWJyZWFrO2lmKGEucHVzaChzKSwhbilicmVhazsiIj09PVN0cmluZyhzWzBdKSYmKHQubGFzdEluZGV4PVdoKG8samgodC5sYXN0SW5kZXgpLHIpKX1mb3IodmFyIGMsaD0iIixEPTAseT0wO3k8YS5sZW5ndGg7eSsrKXtzPWFbeV07Zm9yKHZhciBmPVN0cmluZyhzWzBdKSx3PVBoKHpoKFpoKHMuaW5kZXgpLG8ubGVuZ3RoKSwwKSx1PVtdLEY9MTtGPHMubGVuZ3RoO0YrKyl1LnB1c2godm9pZCAwPT09KGM9c1tGXSk/YzpTdHJpbmcoYykpO3ZhciBHPXMuZ3JvdXBzO2lmKGUpe3ZhciBkPVtmXS5jb25jYXQodSx3LG8pO3ZvaWQgMCE9PUcmJmQucHVzaChHKTt2YXIgUj1TdHJpbmcoQi5hcHBseSh2b2lkIDAsZCkpfWVsc2UgUj1WaChmLG8sdyx1LEcsQik7dz49RCYmKGgrPW8uc2xpY2UoRCx3KStSLEQ9dytmLmxlbmd0aCl9cmV0dXJuIGgrby5zbGljZShEKX1dfSkpO3ZhciBfaCwkaD1oLEFEPUIsZ0Q9R0EoIm1hdGNoIiksSUQ9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuICRoKEEpJiYodm9pZCAwIT09KGc9QVtnRF0pPyEhZzoiUmVnRXhwIj09QUQoQSkpfSxCRD1JRCxRRD1mdW5jdGlvbihBKXtpZihCRChBKSl0aHJvdyBUeXBlRXJyb3IoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3JldHVybiBBfSxDRD1HQSgibWF0Y2giKSxFRD1mdW5jdGlvbihBKXt2YXIgZz0vLi87dHJ5eyIvLi8iW0FdKGcpfWNhdGNoKEkpe3RyeXtyZXR1cm4gZ1tDRF09ITEsIi8uLyJbQV0oZyl9Y2F0Y2goQil7fX1yZXR1cm4hMX0saUQ9akksdEQ9WmcuZixvRD1TQSxlRD1RRCxuRD1pLHJEPUVELGFEPSIiLnN0YXJ0c1dpdGgsc0Q9TWF0aC5taW4sY0Q9ckQoInN0YXJ0c1dpdGgiKTtpRCh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohIShjRHx8KF9oPXREKFN0cmluZy5wcm90b3R5cGUsInN0YXJ0c1dpdGgiKSwhX2h8fF9oLndyaXRhYmxlKSkmJiFjRH0se3N0YXJ0c1dpdGg6ZnVuY3Rpb24oQSl7dmFyIGc9U3RyaW5nKG5EKHRoaXMpKTtlRChBKTt2YXIgST1vRChzRChhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnLmxlbmd0aCkpLEI9U3RyaW5nKEEpO3JldHVybiBhRD9hRC5jYWxsKGcsQixJKTpnLnNsaWNlKEksSStCLmxlbmd0aCk9PT1CfX0pO3ZhciBoRD13ZztqSSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHtjb3B5V2l0aGluOkxpfSksaEQoImNvcHlXaXRoaW4iKTt2YXIgREQ9cyx5RD1yLGZEPUxJLHdEPXZFLHVEPWMuZixGRD1zSS5mLEdEPUlELGREPWxuLFJEPVFoLGxEPWFJLGtEPWcsVUQ9amcuZW5mb3JjZSxTRD1wRSxORD1HQSgibWF0Y2giKSxNRD15RC5SZWdFeHAsWUQ9TUQucHJvdG90eXBlLEhEPS9hL2cscEQ9L2EvZyxKRD1uZXcgTUQoSEQpIT09SEQsTEQ9UkQuVU5TVVBQT1JURURfWTtpZihERCYmZkQoIlJlZ0V4cCIsIUpEfHxMRHx8a0QoKGZ1bmN0aW9uKCl7cmV0dXJuIHBEW05EXT0hMSxNRChIRCkhPUhEfHxNRChwRCk9PXBEfHwiL2EvaSIhPU1EKEhELCJpIil9KSkpKXtmb3IodmFyIHZEPWZ1bmN0aW9uKEEsZyl7dmFyIEksQj10aGlzIGluc3RhbmNlb2YgdkQsUT1HRChBKSxDPXZvaWQgMD09PWc7aWYoIUImJlEmJkEuY29uc3RydWN0b3I9PT12RCYmQylyZXR1cm4gQTtKRD9RJiYhQyYmKEE9QS5zb3VyY2UpOkEgaW5zdGFuY2VvZiB2RCYmKEMmJihnPWRELmNhbGwoQSkpLEE9QS5zb3VyY2UpLExEJiYoST0hIWcmJmcuaW5kZXhPZigieSIpPi0xKSYmKGc9Zy5yZXBsYWNlKC95L2csIiIpKTt2YXIgRT13RChKRD9uZXcgTUQoQSxnKTpNRChBLGcpLEI/dGhpczpZRCx2RCk7TEQmJkkmJihVRChFKS5zdGlja3k9ITApO3JldHVybiBFfSxLRD1mdW5jdGlvbihBKXtBIGluIHZEfHx1RCh2RCxBLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1EW0FdfSxzZXQ6ZnVuY3Rpb24oZyl7TURbQV09Z319KX0seEQ9RkQoTUQpLHFEPTA7eEQubGVuZ3RoPnFEOylLRCh4RFtxRCsrXSk7WUQuY29uc3RydWN0b3I9dkQsdkQucHJvdG90eXBlPVlELGxEKHlELCJSZWdFeHAiLHZEKX1TRCgiUmVnRXhwIik7dmFyIG1EPUtBLmluY2x1ZGVzLGJEPXdnO2pJKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2luY2x1ZGVzOmZ1bmN0aW9uKEEpe3JldHVybiBtRCh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGJEKCJpbmNsdWRlcyIpO3ZhciBURD1RRCxqRD1pO2pJKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFFRCgiaW5jbHVkZXMiKX0se2luY2x1ZGVzOmZ1bmN0aW9uKEEpe3JldHVybiEhflN0cmluZyhqRCh0aGlzKSkuaW5kZXhPZihURChBKSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7dmFyIFpELE9EPUE9PmZ1bmN0aW9uKEEsZyl7aWYoZy5zdGFydHNXaXRoKCJkYXRhOiIpKXt2YXIgSSxCPWcucmVwbGFjZSgvXmRhdGE6Lio/YmFzZTY0LC8sIiIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBCdWZmZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBCdWZmZXIuZnJvbSlJPUJ1ZmZlci5mcm9tKEIsImJhc2U2NCIpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGF0b2IpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZGVjb2RlIGJhc2U2NC1lbmNvZGVkIGRhdGEgVVJMLCBCdWZmZXIgYW5kIGF0b2IgYXJlIG5vdCBzdXBwb3J0ZWQiKTt2YXIgUT1hdG9iKEIpO0k9bmV3IFVpbnQ4QXJyYXkoUS5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8US5sZW5ndGg7QysrKUlbQ109US5jaGFyQ29kZUF0KEMpfXJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShJLEEpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBLmluc3RhbmNlfSkpfXZhciBFPXZvaWQgMCxpPXZvaWQgMDtyZXR1cm4gZmV0Y2goZykudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIGk9KEU9ZykuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpfHwiIiwiaW5zdGFudGlhdGVTdHJlYW1pbmciaW4gV2ViQXNzZW1ibHkmJmkuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vd2FzbSIpP1dlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKEUsQSk6RS5hcnJheUJ1ZmZlcigpfSkpLnRoZW4oKGZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZyxBKTpnfSkpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBLmluc3RhbmNlfSkpfShBLCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LEFHRnpiUUVBQUFBQi9BSXVZQUYvQVg5Z0FYOEFZQUovZndGL1lBSi9md0JnQTM5L2Z3Ri9ZQVovZjM5L2YzOEJmMkFGZjM5L2YzOEJmMkFEZjM5L0FHQUVmMzkvZndCZ0JuOS9mMzkvZndCZ0JYOS9mMzkvQUdBRWYzOS9md0YvWUFoL2YzOS9mMzkvZndGL1lBZC9mMzkvZjM5L0FYOWdCWDkrZm41K0FHQUFBR0FIZjM5L2YzOS9md0JnQkg5L2YzOEJmbUFGZjM5L2YzNEJmMkFFZjM1K2Z3QmdBbjkrQUdBRmYzOStmMzhBWUFBQmYyQUtmMzkvZjM5L2YzOS9md0YvWUF4L2YzOS9mMzkvZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUE5L2YzOS9mMzkvZjM5L2YzOS9mMzhBWUFwL2YzOS9mMzkvZjM5L0FHQUxmMzkvZjM5L2YzOS9mMzhCZjJBR2YzeC9mMzkvQVg5Z0IzOS9mMzkvZm40QmYyQUdmMzkvZjM1K0FYOWdCWDkvZjM5OEFYOWdBbjk4QUdBRWZuNStmZ0YvWUFKK2Z3Ri9ZQUorZmdGOFlBRi9BWHhnQTM1K2ZnRi9ZQU4vZjM4QmZHQURmMzkvQVgxZ0JIOS9mMzRCZm1BQ2ZIOEJmR0FEZjM5K0FHQUNmbjRCZldBQ2YzOEJmZ0l4Q0FGaEFXRUFEd0ZoQVdJQUJnRmhBV01BQWdGaEFXUUFBZ0ZoQVdVQUFBRmhBV1lBQkFGaEFXY0FCd0ZoQVdnQUFBUERCTUVFQWdBQUFnTUFBUU1CQUFBQUF3TVdEdzRBQUFFREFRUUFBUUFBQVFBQUFnTUNBZ2NPQmdnS0V3TUNBQU1EQUFJREFBTURBQTRDQkFRQUF3UUFCQUFFQUFBQUF3TURBd1FBQUFFQ0ZBSUhCUU1HQmdzQ0FDRUFBZ0FNREFVSUFnY0FBd01EQXdBQUNBQUlBQUFBQUFNQ0FnTURBaUlUQUFBRUF3SUFBd0FBQndJQ0FCY0FBQmNBSXdNQUF3QUJBQUVIQWdjSUFBTUNBQUlLQXdJQkJBTUhBQUlEQUFBREVBUVFBd0lOQWcwTEFnc0FBQUFDRkFBQUNBQUpCd2dDQndNQ0NnQUJCQVlCQUFNREFBUVlDZ1FZQ2dnUkFnQUVKQTRsSmdBQkFRQUtEd0lBQVFBSEF4UUJCQWdDQ2hrQUJ3Y1pBQUVEQndJREFRSVdBUUlLQUFBSUFBQUdEQWNBQVFFREFRQUFCd01CQVFBRUdoc2FHd0FDQUFBQ0F4d0RBZ0FBQVFjREhBTURBZ0lEQ1FvSkNRb0pDUUFRQkFjUUFnVUVDQ2NvRVFzRkN4RURDd2NDQUFjUktRQUxBQUVDQWdJQUJ3QUdLZ0lBQWdRckxDMElEZzRUQWc0QkFnSUFBQUFEQndNSEF3TUJBQUFDQXdJQUFBSUJBQUlBQVFFRUJBQUFCQWdWQkFFQkFBRUJBQWtKQ1FvS0NnZ0lDQVFQQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUF3TURBd01EQUFBQkFRWU1EQVlNREFBR0FBWU1EQUVHQmdRTEJBSUVBZ0VHQkFzRUFnUUNDd3NMQkFFQkFRRUpDUVVlQlI0TkRRME5EUTBNQlFVRkJRVU1CUVVGQlFVR0h5QVNCaElHQmdZZklBY1NCaElHQmdjRkJRVUZCUVVGQlFVSkJRVUZCUVVGQlFVRkJBZ0dCQWdHQUFRREhRa0VDQUVCQUFFQUNBRVZBZ0lBQUFFQkFBQUJBQUVCQUFRSEFYQUJ3UUxCQWdVR0FRRXdnSUFDQmdnQmZ3RkJrTmNCQ3djNURBRnBBZ0FCYWdEbUFRRnJBQmtCYkFBUUFXMEE1d0lCYmdDekJBRnZBTEVFQVhBQW5RUUJjUUNUQkFGeUFMQUJBWE1BalFRQmRBRUFDY2NFQVFCQkFRdkFBc1lFclFUQUFiMEJqQU93QVlzRGlnT0pBMDlQaUFPSEE0WUQ1d0dGQStjQnVnR0RBOGdFeHdUa0FmVUN4UVRFQkxnQjR3SERCTUVFd2dUQUJORUJ1Z1M3QkxrRXZnUzlCTHdFZm8wRGpBSGlBYmdFdHdTMkJMVUU0UUcwQkxJRXNBU3ZCSzRFRU1vQjZBUG1BN2tEdHdPMUE3TURzUU92QTYwRHF3T3BBNmNEcFFPakE2RURud09TQXVrRDV3T01BdG9EMlFQWUE5Y0QxZ092QXRVRDFBUFRBNWNDMFFQUUE4OER6Z1BOQTAvTUE4c0RoUUxFQThJRHdRUEFBNzREdkFPRUFzTUR2d1NPQTc4RHZRTzdBMndnSU9VRDVBUGpBK0lENFFQZ0E5OEQzZ092QXQwRDNBUGJBeUNLQW9vQ3pBRytBYjRCMGdPK0FTREtBOGtEekFGUFQ4Z0Rod0lneHdQR0E4d0JUMC9GQTRjQ2JDQ3NCS3NFcWdSc0lLa0VxQVNuQkNDbUJLVUVwQVNqQk1VQ3hRS2lCS0VFb0FTZkJKNEVJSndFbXdTYUJKa0V2Z0srQXBnRWx3U1dCSlVFbEFRZ2tnU1JCSkFFandTT0JJd0Vpd1NLQkNDSkJJZ0Vod1NHQklVRWhBU0RCSUlFYkNDNEFvRUVnQVQvQS80RC9RUDhBN29EdGdPeUE2WURvZ091QTZvRGJDQzRBdnNEK2dQNUEvZ0Q5d1AyQTdnRHRBT3dBNlFEb0FPc0E2Z0R5UUdCQXZVRHlRR0JBdlFESUtzQnF3RnJhMnV0QWs5cWFpQ3JBYXNCYTJ0cnJRSlBhbW9ncWdHcUFXdXBBYWtCckFKUGFtb2dxZ0dxQVd1cEFha0JyQUpQYW1vZzh3UHlBeUR4QS9BRElPOEQ3Z01nN1FQc0F5Q1lBdXNEc0FFZ21BTHFBN0FCYkowRG5BTnNJTW9CeWdHYkE1SURsUU9hQXlDVEE1WURtUU1nbEFPWEE1Z0RiQ0NSQTVBRG5nT1BBd3JpMWdmQkJBY0FJQUFnQVhnTEZBQWdBQkExQkVBZ0FDZ0NCQThMSUFBdEFBc0xIUUVCZnlBQUVEVUVRQ0FBS0FJQUlRRWdBQkI5R2lBQkVCQUxJQUFMQ1FBZ0FCQU5JQUZxQzlJQkFRUi9Ba0FnQVNBQUVBa2lBMHNFUUNNQVFSQnJJZ0lrQUNBQklBTnJJZ01FUUNBQUVCTWhCQ0FBRUFraUFTQURhaUVGSUFNZ0JDQUJhMHNFUUNBQUlBUWdCU0FFYXlBQklBRVF5QUVMSUFFZ0FCQU5JZ1JxSUFOQkFCRDJBU0FBSUFVUWVDQUNRUUE2QUE4Z0JDQUZhaUFDUVE5cUVEUUxEQUVMSXdCQkVHc2lBaVFBQWtBZ0FCQTFCRUFnQUNnQ0FDRURJQUpCQURvQUR5QUJJQU5xSUFKQkQyb1FOQ0FBSUFFUU9Rd0JDeUFDUVFBNkFBNGdBQ0FCYWlBQ1FRNXFFRFFnQUNBQkVEb0xDeUFDUVJCcUpBQUxFUUFnQUJBMUJFQWdBQ2dDQUE4TElBQUxDZ0FnQUNnQ0FCQ2pBUXNNQUNBQUlBRkJIR29RandJTHpBd0JCMzhDUUNBQVJRMEFJQUJCQ0dzaUF5QUFRUVJyS0FJQUlnRkJlSEVpQUdvaEJRSkFJQUZCQVhFTkFDQUJRUU54UlEwQklBTWdBeWdDQUNJQmF5SURRZGlCQVNnQ0FFa05BU0FBSUFGcUlRQWdBMEhjZ1FFb0FnQkhCRUFnQVVIL0FVMEVRQ0FES0FJSUlnSWdBVUVEZGlJRVFRTjBRZkNCQVdwR0dpQUNJQU1vQWd3aUFVWUVRRUhJZ1FGQnlJRUJLQUlBUVg0Z0JIZHhOZ0lBREFNTElBSWdBVFlDRENBQklBSTJBZ2dNQWdzZ0F5Z0NHQ0VHQWtBZ0F5QURLQUlNSWdGSEJFQWdBeWdDQ0NJQ0lBRTJBZ3dnQVNBQ05nSUlEQUVMQWtBZ0EwRVVhaUlDS0FJQUlnUU5BQ0FEUVJCcUlnSW9BZ0FpQkEwQVFRQWhBUXdCQ3dOQUlBSWhCeUFFSWdGQkZHb2lBaWdDQUNJRURRQWdBVUVRYWlFQ0lBRW9BaEFpQkEwQUN5QUhRUUEyQWdBTElBWkZEUUVDUUNBRElBTW9BaHdpQWtFQ2RFSDRnd0ZxSWdRb0FnQkdCRUFnQkNBQk5nSUFJQUVOQVVITWdRRkJ6SUVCS0FJQVFYNGdBbmR4TmdJQURBTUxJQVpCRUVFVUlBWW9BaEFnQTBZYmFpQUJOZ0lBSUFGRkRRSUxJQUVnQmpZQ0dDQURLQUlRSWdJRVFDQUJJQUkyQWhBZ0FpQUJOZ0lZQ3lBREtBSVVJZ0pGRFFFZ0FTQUNOZ0lVSUFJZ0FUWUNHQXdCQ3lBRktBSUVJZ0ZCQTNGQkEwY05BRUhRZ1FFZ0FEWUNBQ0FGSUFGQmZuRTJBZ1FnQXlBQVFRRnlOZ0lFSUFBZ0Eyb2dBRFlDQUE4TElBTWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQ0FCUVFKeFJRUkFJQVZCNElFQktBSUFSZ1JBUWVDQkFTQUROZ0lBUWRTQkFVSFVnUUVvQWdBZ0FHb2lBRFlDQUNBRElBQkJBWEkyQWdRZ0EwSGNnUUVvQWdCSERRTkIwSUVCUVFBMkFnQkIzSUVCUVFBMkFnQVBDeUFGUWR5QkFTZ0NBRVlFUUVIY2dRRWdBellDQUVIUWdRRkIwSUVCS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBQWdBMm9nQURZQ0FBOExJQUZCZUhFZ0FHb2hBQUpBSUFGQi93Rk5CRUFnQlNnQ0NDSUNJQUZCQTNZaUJFRURkRUh3Z1FGcVJob2dBaUFGS0FJTUlnRkdCRUJCeUlFQlFjaUJBU2dDQUVGK0lBUjNjVFlDQUF3Q0N5QUNJQUUyQWd3Z0FTQUNOZ0lJREFFTElBVW9BaGdoQmdKQUlBVWdCU2dDRENJQlJ3UkFJQVVvQWdnaUFrSFlnUUVvQWdCSkdpQUNJQUUyQWd3Z0FTQUNOZ0lJREFFTEFrQWdCVUVVYWlJQ0tBSUFJZ1FOQUNBRlFSQnFJZ0lvQWdBaUJBMEFRUUFoQVF3QkN3TkFJQUloQnlBRUlnRkJGR29pQWlnQ0FDSUVEUUFnQVVFUWFpRUNJQUVvQWhBaUJBMEFDeUFIUVFBMkFnQUxJQVpGRFFBQ1FDQUZJQVVvQWh3aUFrRUNkRUg0Z3dGcUlnUW9BZ0JHQkVBZ0JDQUJOZ0lBSUFFTkFVSE1nUUZCeklFQktBSUFRWDRnQW5keE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnSUVRQ0FCSUFJMkFoQWdBaUFCTmdJWUN5QUZLQUlVSWdKRkRRQWdBU0FDTmdJVUlBSWdBVFlDR0FzZ0F5QUFRUUZ5TmdJRUlBQWdBMm9nQURZQ0FDQURRZHlCQVNnQ0FFY05BVUhRZ1FFZ0FEWUNBQThMSUFVZ0FVRitjVFlDQkNBRElBQkJBWEkyQWdRZ0FDQURhaUFBTmdJQUN5QUFRZjhCVFFSQUlBQkJBM1lpQVVFRGRFSHdnUUZxSVFBQ2YwSElnUUVvQWdBaUFrRUJJQUYwSWdGeFJRUkFRY2lCQVNBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFpQUFJQU0yQWdnZ0FpQUROZ0lNSUFNZ0FEWUNEQ0FESUFJMkFnZ1BDMEVmSVFJZ0EwSUFOd0lRSUFCQi8vLy9CMDBFUUNBQVFRaDJJZ0VnQVVHQS9qOXFRUkIyUVFoeElnRjBJZ0lnQWtHQTRCOXFRUkIyUVFSeElnSjBJZ1FnQkVHQWdBOXFRUkIyUVFKeElnUjBRUTkySUFFZ0FuSWdCSEpySWdGQkFYUWdBQ0FCUVJWcWRrRUJjWEpCSEdvaEFnc2dBeUFDTmdJY0lBSkJBblJCK0lNQmFpRUJBa0FDUUFKQVFjeUJBU2dDQUNJRVFRRWdBblFpQjNGRkJFQkJ6SUVCSUFRZ0IzSTJBZ0FnQVNBRE5nSUFJQU1nQVRZQ0dBd0JDeUFBUVFCQkdTQUNRUUYyYXlBQ1FSOUdHM1FoQWlBQktBSUFJUUVEUUNBQklnUW9BZ1JCZUhFZ0FFWU5BaUFDUVIxMklRRWdBa0VCZENFQ0lBUWdBVUVFY1dvaUIwRVFhaWdDQUNJQkRRQUxJQWNnQXpZQ0VDQURJQVEyQWhnTElBTWdBellDRENBRElBTTJBZ2dNQVFzZ0JDZ0NDQ0lBSUFNMkFnd2dCQ0FETmdJSUlBTkJBRFlDR0NBRElBUTJBZ3dnQXlBQU5nSUlDMEhvZ1FGQjZJRUJLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xKQUVCZnlNQVFSQnJJZ0VrQUNBQVFnQTNBZ0FnQUVFQU5nSUlJQUZCRUdva0FDQUFDNHNDQWdOL0FuNENRQ0FBS1FOd0lnUlFSU0FFSUFBcEEzZ2dBQ2dDQkNJQklBQW9BaXdpQW11c2ZDSUZWM0ZGQkVBakFFRVFheUlDSkFCQmZ5RUJBa0FnQUJEcUFRMEFJQUFnQWtFUGFrRUJJQUFvQWlBUkJBQkJBVWNOQUNBQ0xRQVBJUUVMSUFKQkVHb2tBQ0FCSWdOQkFFNE5BU0FBS0FJRUlRRWdBQ2dDTENFQ0N5QUFRbjgzQTNBZ0FDQUJOZ0pvSUFBZ0JTQUNJQUZyckh3M0EzaEJmdzhMSUFWQ0FYd2hCU0FBS0FJRUlRRWdBQ2dDQ0NFQ0FrQWdBQ2tEY0NJRVVBMEFJQVFnQlgwaUJDQUNJQUZyckZrTkFDQUJJQVNuYWlFQ0N5QUFJQUkyQW1nZ0FDQUZJQUFvQWl3aUFDQUJhNng4TndONElBQWdBVThFUUNBQlFRRnJJQU02QUFBTElBTUxHUUVCZjBFS0lRRWdBQkExQkg4Z0FCQjlRUUZyQlNBQkN3dmpBUUVHZnlBQkVOSUNJUU1qQUVFUWF5SUZKQUFDUUNBRElBQWlCQkRPQVNJQVRRUkFJQVFRRFNJR0lRSWdBeUlBQkg4Q1FDQUJJQUpHRFFBZ0FpQUJheUFBUVFKMFR3UkFJQUJGRFFFRFFDQUNJQUVvQWdBMkFnQWdBa0VFYWlFQ0lBRkJCR29oQVNBQVFRRnJJZ0FOQUFzTUFRc2dBRVVOQUFOQUlBSWdBRUVCYXlJQVFRSjBJZ2RxSUFFZ0Iyb29BZ0EyQWdBZ0FBMEFDd3RCQUFVZ0Fnc2FJQVZCQURZQ0RDQUdJQU5CQW5ScUlBVkJER29RTXlBRUlBTVFlQXdCQ3lBRUlBQWdBeUFBYXlBRUVBa2lBRUVBSUFBZ0F5QUJFUE1CQ3lBRlFSQnFKQUFMY3dFRGZ5QUJFSjRCSVFJakFFRVFheUlFSkFBQ1FDQUNJQUFRRXlJRFRRUkFJQUFRRFNFRElBSUVRQ0FESUFFZ0FoRHJBUXNnQkVFQU9nQVBJQUlnQTJvZ0JFRVBhaEEwSUFBZ0FoQjREQUVMSUFBZ0F5QUNJQU5ySUFBUUNTSUFRUUFnQUNBQ0lBRVE5d0VMSUFSQkVHb2tBQXZ0QWdFRWZ3SkFRY3lJQVMwQUFFRUJjUTBBUWN5SUFSQWtSUTBBSXdCQklHc2lBaVFBQWtBQ1FBTkFJQUpCQ0dvZ0FFRUNkR29DZjBFQklBQjBRZi8vLy84SGNTSURRUUZ5UlFSQUlBQkJBblFvQWdBTUFRc2dBRUdhSGtHV0h5QURHeERlQWdzaUF6WUNBQ0FEUVg5SEJFQWdBRUVCYWlJQVFRWkdEUUlNQVFzTERBRUxRUUFRM1FKRkJFQkJ1QzBoQVNBQ1FRaHFRYmd0RUo4QlJRMEJRZEF0SVFFZ0FrRUlha0hRTFJDZkFVVU5BVUVBSVFCQm9JY0JMUUFBUlFSQUEwQWdBRUVDZEVId2hnRnFJQUJCbGg4UTNnSTJBZ0FnQUVFQmFpSUFRUVpIRFFBTFFhQ0hBVUVCT2dBQVFZaUhBVUh3aGdFb0FnQTJBZ0FMUWZDR0FTRUJJQUpCQ0dwQjhJWUJFSjhCUlEwQlFZaUhBU0VCSUFKQkNHcEJpSWNCRUo4QlJRMEJRUmdRR1NJQlJRMEJDeUFCSUFJcEF3ZzNBZ0FnQVNBQ0tRTVlOd0lRSUFFZ0Fpa0RFRGNDQ0FzZ0FrRWdhaVFBUWNpSUFTQUJOZ0lBUWN5SUFSQWpDMEhJaUFFb0FnQUxCUUFRQUFBTDN3b0NCWDhQZmlNQVFlQUFheUlGSkFBZ0JFTC8vLy8vLy84L2d5SU5RZytHSUFOQ01ZaUVJUTRnQWlBRWhVS0FnSUNBZ0lDQWdJQi9neUVLSUFKQy8vLy8vLy8vUDRNaUMwSWdpQ0VQSUExQ0VZZ2hFQ0FFUWpDSXAwSC8vd0Z4SVFjQ1FBSkFJQUpDTUlpblFmLy9BWEVpQ1VFQmEwSDkvd0ZOQkVBZ0IwRUJhMEgrL3dGSkRRRUxJQUZRSUFKQy8vLy8vLy8vLy8vL0FJTWlERUtBZ0lDQWdJREEvLzhBVkNBTVFvQ0FnSUNBZ01ELy93QlJHMFVFUUNBQ1FvQ0FnSUNBZ0NDRUlRb01BZ3NnQTFBZ0JFTC8vLy8vLy8vLy8vOEFneUlDUW9DQWdJQ0FnTUQvL3dCVUlBSkNnSUNBZ0lDQXdQLy9BRkViUlFSQUlBUkNnSUNBZ0lDQUlJUWhDaUFESVFFTUFnc2dBU0FNUW9DQWdJQ0FnTUQvL3dDRmhGQUVRQ0FDSUFPRVVBUkFRb0NBZ0lDQWdPRC8vd0FoQ2tJQUlRRU1Bd3NnQ2tLQWdJQ0FnSURBLy84QWhDRUtRZ0FoQVF3Q0N5QURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFJQUVnRElRaEFrSUFJUUVnQWxBRVFFS0FnSUNBZ0lEZy8vOEFJUW9NQXdzZ0NrS0FnSUNBZ0lEQS8vOEFoQ0VLREFJTElBRWdESVJRQkVCQ0FDRUJEQUlMSUFJZ0E0UlFCRUJDQUNFQkRBSUxJQXhDLy8vLy8vLy9QMWdFUUNBRlFkQUFhaUFCSUFzZ0FTQUxJQXRRSWdZYmVTQUdRUVowclh5bklnWkJEMnNRTDBFUUlBWnJJUVlnQlNrRFdDSUxRaUNJSVE4Z0JTa0RVQ0VCQ3lBQ1F2Ly8vLy8vL3o5V0RRQWdCVUZBYXlBRElBMGdBeUFOSUExUUlnZ2JlU0FJUVFaMHJYeW5JZ2hCRDJzUUx5QUdJQWhyUVJCcUlRWWdCU2tEU0NJQ1FnK0dJQVVwQTBBaUEwSXhpSVFoRGlBQ1FoR0lJUkFMSUFOQ0Q0WkNnSUQrL3crRElnSWdBVUlnaUNJRWZpSVNJQU5DRVloQy8vLy8vdytESWd3Z0FVTC8vLy8vRDRNaUFYNThJaEZDSUlZaURTQUJJQUorZkNJRElBMVVyU0FDSUF0Qy8vLy8vdytESWd0K0loVWdCQ0FNZm53aUV5QU9Rdi8vLy84UGd5SU5JQUYrZkNJVUlCRWdFbFN0UWlDR0lCRkNJSWlFZkNJUklBSWdEMEtBZ0FTRUlnNStJaFlnQ3lBTWZud2lEeUFFSUExK2ZDSVNJQkJDLy8vLy93ZURRb0NBZ0lBSWhDSUNJQUYrZkNJUVFpQ0dmQ0lYZkNFQklBY2dDV29nQm1wQi8vOEFheUVHQWtBZ0N5QU5maUlZSUF3Z0RuNThJZ3dnR0ZTdElBd2dBaUFFZm53aUJDQU1WSzE4SUFJZ0RuNThJQVFnQkNBVElCVlVyU0FUSUJSV3JYeDhJZ1JXclh3Z0FpQUxmaUlMSUEwZ0RuNThJZ0lnQzFTdFFpQ0dJQUpDSUlpRWZDQUVJQUpDSUlaOElnSWdCRlN0ZkNBQ0lBSWdFQ0FTVkswZ0R5QVdWSzBnRHlBU1ZxMThmRUlnaGlBUVFpQ0loSHdpQWxhdGZDQUNJQUlnRVNBVVZLMGdFU0FYVnExOGZDSUNWcTE4SWdSQ2dJQ0FnSUNBd0FDRFVFVUVRQ0FHUVFGcUlRWU1BUXNnQTBJL2lDRUxJQVJDQVlZZ0FrSS9pSVFoQkNBQ1FnR0dJQUZDUDRpRUlRSWdBMElCaGlFRElBc2dBVUlCaG9RaEFRc2dCa0gvL3dGT0JFQWdDa0tBZ0lDQWdJREEvLzhBaENFS1FnQWhBUXdCQ3dKK0lBWkJBRXdFUUVFQklBWnJJZ2RCZ0FGUEJFQkNBQ0VCREFNTElBVkJNR29nQXlBQklBWkIvd0JxSWdZUUx5QUZRU0JxSUFJZ0JDQUdFQzhnQlVFUWFpQURJQUVnQnhCOElBVWdBaUFFSUFjUWZDQUZLUU13SUFVcEF6aUVRZ0JTclNBRktRTWdJQVVwQXhDRWhDRURJQVVwQXlnZ0JTa0RHSVFoQVNBRktRTUFJUUlnQlNrRENBd0JDeUFFUXYvLy8vLy8veitESUFhdFFqQ0doQXNnQ29RaENpQURVQ0FCUWdCWklBRkNnSUNBZ0lDQWdJQ0FmMUViUlFSQUlBb2dBa0lCZkNJQklBSlVyWHdoQ2d3QkN5QURJQUZDZ0lDQWdJQ0FnSUNBZjRXRVVFVUVRQ0FDSVFFTUFRc2dDaUFDSUFKQ0FZTjhJZ0VnQWxTdGZDRUtDeUFBSUFFM0F3QWdBQ0FLTndNSUlBVkI0QUJxSkFBTGdDNEJDMzhqQUVFUWF5SUxKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQnlJRUJLQUlBSWdaQkVDQUFRUXRxUVhoeElBQkJDMGtiSWdkQkEzWWlBbllpQVVFRGNRUkFJQUZCZjNOQkFYRWdBbW9pQTBFRGRDSUJRZmlCQVdvb0FnQWlCRUVJYWlFQUFrQWdCQ2dDQ0NJQ0lBRkI4SUVCYWlJQlJnUkFRY2lCQVNBR1FYNGdBM2R4TmdJQURBRUxJQUlnQVRZQ0RDQUJJQUkyQWdnTElBUWdBMEVEZENJQlFRTnlOZ0lFSUFFZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFREF3TElBZEIwSUVCS0FJQUlncE5EUUVnQVFSQUFrQkJBaUFDZENJQVFRQWdBR3R5SUFFZ0FuUnhJZ0JCQUNBQWEzRkJBV3NpQUNBQVFReDJRUkJ4SWdKMklnRkJCWFpCQ0hFaUFDQUNjaUFCSUFCMklnRkJBblpCQkhFaUFISWdBU0FBZGlJQlFRRjJRUUp4SWdCeUlBRWdBSFlpQVVFQmRrRUJjU0lBY2lBQklBQjJhaUlEUVFOMElnQkIrSUVCYWlnQ0FDSUVLQUlJSWdFZ0FFSHdnUUZxSWdCR0JFQkJ5SUVCSUFaQmZpQURkM0VpQmpZQ0FBd0JDeUFCSUFBMkFnd2dBQ0FCTmdJSUN5QUVRUWhxSVFBZ0JDQUhRUU55TmdJRUlBUWdCMm9pQWlBRFFRTjBJZ0VnQjJzaUEwRUJjallDQkNBQklBUnFJQU0yQWdBZ0NnUkFJQXBCQTNZaUFVRURkRUh3Z1FGcUlRVkIzSUVCS0FJQUlRUUNmeUFHUVFFZ0FYUWlBWEZGQkVCQnlJRUJJQUVnQm5JMkFnQWdCUXdCQ3lBRktBSUlDeUVCSUFVZ0JEWUNDQ0FCSUFRMkFnd2dCQ0FGTmdJTUlBUWdBVFlDQ0F0QjNJRUJJQUkyQWdCQjBJRUJJQU0yQWdBTURBdEJ6SUVCS0FJQUlnbEZEUUVnQ1VFQUlBbHJjVUVCYXlJQUlBQkJESFpCRUhFaUFuWWlBVUVGZGtFSWNTSUFJQUp5SUFFZ0FIWWlBVUVDZGtFRWNTSUFjaUFCSUFCMklnRkJBWFpCQW5FaUFISWdBU0FBZGlJQlFRRjJRUUZ4SWdCeUlBRWdBSFpxUVFKMFFmaURBV29vQWdBaUFTZ0NCRUY0Y1NBSGF5RURJQUVoQWdOQUFrQWdBaWdDRUNJQVJRUkFJQUlvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FIYXlJQ0lBTWdBaUFEU1NJQ0d5RURJQUFnQVNBQ0d5RUJJQUFoQWd3QkN3c2dBU2dDR0NFSUlBRWdBU2dDRENJRVJ3UkFJQUVvQWdnaUFFSFlnUUVvQWdCSkdpQUFJQVEyQWd3Z0JDQUFOZ0lJREFzTElBRkJGR29pQWlnQ0FDSUFSUVJBSUFFb0FoQWlBRVVOQXlBQlFSQnFJUUlMQTBBZ0FpRUZJQUFpQkVFVWFpSUNLQUlBSWdBTkFDQUVRUkJxSVFJZ0JDZ0NFQ0lBRFFBTElBVkJBRFlDQUF3S0MwRi9JUWNnQUVHL2Ywc05BQ0FBUVF0cUlnQkJlSEVoQjBITWdRRW9BZ0FpQ1VVTkFFRUFJQWRySVFNQ1FBSkFBa0FDZjBFQUlBZEJnQUpKRFFBYVFSOGdCMEgvLy84SFN3MEFHaUFBUVFoMklnQWdBRUdBL2o5cVFSQjJRUWh4SWdKMElnQWdBRUdBNEI5cVFSQjJRUVJ4SWdGMElnQWdBRUdBZ0E5cVFSQjJRUUp4SWdCMFFROTJJQUVnQW5JZ0FISnJJZ0JCQVhRZ0J5QUFRUlZxZGtFQmNYSkJIR29MSWdaQkFuUkIrSU1CYWlnQ0FDSUNSUVJBUVFBaEFBd0JDMEVBSVFBZ0IwRUFRUmtnQmtFQmRtc2dCa0VmUmh0MElRRURRQUpBSUFJb0FnUkJlSEVnQjJzaUJTQURUdzBBSUFJaEJDQUZJZ01OQUVFQUlRTWdBaUVBREFNTElBQWdBaWdDRkNJRklBVWdBaUFCUVIxMlFRUnhhaWdDRUNJQ1Joc2dBQ0FGR3lFQUlBRkJBWFFoQVNBQ0RRQUxDeUFBSUFSeVJRUkFRUUFoQkVFQ0lBWjBJZ0JCQUNBQWEzSWdDWEVpQUVVTkF5QUFRUUFnQUd0eFFRRnJJZ0FnQUVFTWRrRVFjU0lDZGlJQlFRVjJRUWh4SWdBZ0FuSWdBU0FBZGlJQlFRSjJRUVJ4SWdCeUlBRWdBSFlpQVVFQmRrRUNjU0lBY2lBQklBQjJJZ0ZCQVhaQkFYRWlBSElnQVNBQWRtcEJBblJCK0lNQmFpZ0NBQ0VBQ3lBQVJRMEJDd05BSUFBb0FnUkJlSEVnQjJzaUFTQURTU0VDSUFFZ0F5QUNHeUVESUFBZ0JDQUNHeUVFSUFBb0FoQWlBUVIvSUFFRklBQW9BaFFMSWdBTkFBc0xJQVJGRFFBZ0EwSFFnUUVvQWdBZ0IydFBEUUFnQkNnQ0dDRUdJQVFnQkNnQ0RDSUJSd1JBSUFRb0FnZ2lBRUhZZ1FFb0FnQkpHaUFBSUFFMkFnd2dBU0FBTmdJSURBa0xJQVJCRkdvaUFpZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFJTEEwQWdBaUVGSUFBaUFVRVVhaUlDS0FJQUlnQU5BQ0FCUVJCcUlRSWdBU2dDRUNJQURRQUxJQVZCQURZQ0FBd0lDeUFIUWRDQkFTZ0NBQ0lDVFFSQVFkeUJBU2dDQUNFREFrQWdBaUFIYXlJQlFSQlBCRUJCMElFQklBRTJBZ0JCM0lFQklBTWdCMm9pQURZQ0FDQUFJQUZCQVhJMkFnUWdBaUFEYWlBQk5nSUFJQU1nQjBFRGNqWUNCQXdCQzBIY2dRRkJBRFlDQUVIUWdRRkJBRFlDQUNBRElBSkJBM0kyQWdRZ0FpQURhaUlBSUFBb0FnUkJBWEkyQWdRTElBTkJDR29oQUF3S0N5QUhRZFNCQVNnQ0FDSUlTUVJBUWRTQkFTQUlJQWRySWdFMkFnQkI0SUVCUWVDQkFTZ0NBQ0lDSUFkcUlnQTJBZ0FnQUNBQlFRRnlOZ0lFSUFJZ0IwRURjallDQkNBQ1FRaHFJUUFNQ2d0QkFDRUFJQWRCTDJvaUNRSi9RYUNGQVNnQ0FBUkFRYWlGQVNnQ0FBd0JDMEdzaFFGQ2Z6Y0NBRUdraFFGQ2dLQ0FnSUNBQkRjQ0FFR2doUUVnQzBFTWFrRndjVUhZcXRXcUJYTTJBZ0JCdElVQlFRQTJBZ0JCaElVQlFRQTJBZ0JCZ0NBTElnRnFJZ1pCQUNBQmF5SUZjU0lDSUFkTkRRbEJnSVVCS0FJQUlnUUVRRUg0aEFFb0FnQWlBeUFDYWlJQklBTk5JQUVnQkV0eURRb0xRWVNGQVMwQUFFRUVjUTBFQWtBQ1FFSGdnUUVvQWdBaUF3UkFRWWlGQVNFQUEwQWdBeUFBS0FJQUlnRlBCRUFnQVNBQUtBSUVhaUFEU3cwREN5QUFLQUlJSWdBTkFBc0xRUUFRY2lJQlFYOUdEUVVnQWlFR1FhU0ZBU2dDQUNJRFFRRnJJZ0FnQVhFRVFDQUNJQUZySUFBZ0FXcEJBQ0FEYTNGcUlRWUxJQVlnQjAwZ0JrSCsvLy8vQjB0eURRVkJnSVVCS0FJQUlnUUVRRUg0aEFFb0FnQWlBeUFHYWlJQUlBTk5JQUFnQkV0eURRWUxJQVlRY2lJQUlBRkhEUUVNQndzZ0JpQUlheUFGY1NJR1FmNy8vLzhIU3cwRUlBWVFjaUlCSUFBb0FnQWdBQ2dDQkdwR0RRTWdBU0VBQ3lBQVFYOUdJQWRCTUdvZ0JrMXlSUVJBUWFpRkFTZ0NBQ0lCSUFrZ0JtdHFRUUFnQVd0eElnRkIvdi8vL3dkTEJFQWdBQ0VCREFjTElBRVFja0YvUndSQUlBRWdCbW9oQmlBQUlRRU1Cd3RCQUNBR2F4QnlHZ3dFQ3lBQUlnRkJmMGNOQlF3REMwRUFJUVFNQnd0QkFDRUJEQVVMSUFGQmYwY05BZ3RCaElVQlFZU0ZBU2dDQUVFRWNqWUNBQXNnQWtIKy8vLy9CMHNOQVNBQ0VISWlBVUYvUmtFQUVISWlBRUYvUm5JZ0FDQUJUWElOQVNBQUlBRnJJZ1lnQjBFb2FrME5BUXRCK0lRQlFmaUVBU2dDQUNBR2FpSUFOZ0lBUWZ5RUFTZ0NBQ0FBU1FSQVFmeUVBU0FBTmdJQUN3SkFBa0FDUUVIZ2dRRW9BZ0FpQlFSQVFZaUZBU0VBQTBBZ0FTQUFLQUlBSWdNZ0FDZ0NCQ0lDYWtZTkFpQUFLQUlJSWdBTkFBc01BZ3RCMklFQktBSUFJZ0JCQUNBQUlBRk5HMFVFUUVIWWdRRWdBVFlDQUF0QkFDRUFRWXlGQVNBR05nSUFRWWlGQVNBQk5nSUFRZWlCQVVGL05nSUFRZXlCQVVHZ2hRRW9BZ0EyQWdCQmxJVUJRUUEyQWdBRFFDQUFRUU4wSWdOQitJRUJhaUFEUWZDQkFXb2lBallDQUNBRFFmeUJBV29nQWpZQ0FDQUFRUUZxSWdCQklFY05BQXRCMUlFQklBWkJLR3NpQTBGNElBRnJRUWR4UVFBZ0FVRUlha0VIY1JzaUFHc2lBallDQUVIZ2dRRWdBQ0FCYWlJQU5nSUFJQUFnQWtFQmNqWUNCQ0FCSUFOcVFTZzJBZ1JCNUlFQlFiQ0ZBU2dDQURZQ0FBd0NDeUFBTFFBTVFRaHhJQU1nQlV0eUlBRWdCVTF5RFFBZ0FDQUNJQVpxTmdJRVFlQ0JBU0FGUVhnZ0JXdEJCM0ZCQUNBRlFRaHFRUWR4R3lJQWFpSUNOZ0lBUWRTQkFVSFVnUUVvQWdBZ0Jtb2lBU0FBYXlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FCSUFWcVFTZzJBZ1JCNUlFQlFiQ0ZBU2dDQURZQ0FBd0JDMEhZZ1FFb0FnQWdBVXNFUUVIWWdRRWdBVFlDQUFzZ0FTQUdhaUVDUVlpRkFTRUFBa0FDUUFKQUFrQUNRQUpBQTBBZ0FpQUFLQUlBUndSQUlBQW9BZ2dpQUEwQkRBSUxDeUFBTFFBTVFRaHhSUTBCQzBHSWhRRWhBQU5BSUFVZ0FDZ0NBQ0lDVHdSQUlBSWdBQ2dDQkdvaUJDQUZTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUUyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUZCZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViYWlJSklBZEJBM0kyQWdRZ0FrRjRJQUpyUVFkeFFRQWdBa0VJYWtFSGNSdHFJZ1lnQnlBSmFpSUlheUVDSUFVZ0JrWUVRRUhnZ1FFZ0NEWUNBRUhVZ1FGQjFJRUJLQUlBSUFKcUlnQTJBZ0FnQ0NBQVFRRnlOZ0lFREFNTElBWkIzSUVCS0FJQVJnUkFRZHlCQVNBSU5nSUFRZENCQVVIUWdRRW9BZ0FnQW1vaUFEWUNBQ0FJSUFCQkFYSTJBZ1FnQUNBSWFpQUFOZ0lBREFNTElBWW9BZ1FpQUVFRGNVRUJSZ1JBSUFCQmVIRWhCUUpBSUFCQi93Rk5CRUFnQmlnQ0NDSURJQUJCQTNZaUFFRURkRUh3Z1FGcVJob2dBeUFHS0FJTUlnRkdCRUJCeUlFQlFjaUJBU2dDQUVGK0lBQjNjVFlDQUF3Q0N5QURJQUUyQWd3Z0FTQUROZ0lJREFFTElBWW9BaGdoQndKQUlBWWdCaWdDRENJQlJ3UkFJQVlvQWdnaUFDQUJOZ0lNSUFFZ0FEWUNDQXdCQ3dKQUlBWkJGR29pQUNnQ0FDSUREUUFnQmtFUWFpSUFLQUlBSWdNTkFFRUFJUUVNQVFzRFFDQUFJUVFnQXlJQlFSUnFJZ0FvQWdBaUF3MEFJQUZCRUdvaEFDQUJLQUlRSWdNTkFBc2dCRUVBTmdJQUN5QUhSUTBBQWtBZ0JpQUdLQUljSWdOQkFuUkIrSU1CYWlJQUtBSUFSZ1JBSUFBZ0FUWUNBQ0FCRFFGQnpJRUJRY3lCQVNnQ0FFRitJQU4zY1RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFaR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFjMkFoZ2dCaWdDRUNJQUJFQWdBU0FBTmdJUUlBQWdBVFlDR0FzZ0JpZ0NGQ0lBUlEwQUlBRWdBRFlDRkNBQUlBRTJBaGdMSUFVZ0Jtb2hCaUFDSUFWcUlRSUxJQVlnQmlnQ0JFRitjVFlDQkNBSUlBSkJBWEkyQWdRZ0FpQUlhaUFDTmdJQUlBSkIvd0ZOQkVBZ0FrRURkaUlBUVFOMFFmQ0JBV29oQWdKL1FjaUJBU2dDQUNJQlFRRWdBSFFpQUhGRkJFQkJ5SUVCSUFBZ0FYSTJBZ0FnQWd3QkN5QUNLQUlJQ3lFQUlBSWdDRFlDQ0NBQUlBZzJBZ3dnQ0NBQ05nSU1JQWdnQURZQ0NBd0RDMEVmSVFBZ0FrSC8vLzhIVFFSQUlBSkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBM1FpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQURjaUFBY21zaUFFRUJkQ0FDSUFCQkZXcDJRUUZ4Y2tFY2FpRUFDeUFJSUFBMkFod2dDRUlBTndJUUlBQkJBblJCK0lNQmFpRUVBa0JCeklFQktBSUFJZ05CQVNBQWRDSUJjVVVFUUVITWdRRWdBU0FEY2pZQ0FDQUVJQWcyQWdBZ0NDQUVOZ0lZREFFTElBSkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQVFvQWdBaEFRTkFJQUVpQXlnQ0JFRjRjU0FDUmcwRElBQkJIWFloQVNBQVFRRjBJUUFnQXlBQlFRUnhhaUlFS0FJUUlnRU5BQXNnQkNBSU5nSVFJQWdnQXpZQ0dBc2dDQ0FJTmdJTUlBZ2dDRFlDQ0F3Q0MwSFVnUUVnQmtFb2F5SURRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlBYXlJQ05nSUFRZUNCQVNBQUlBRnFJZ0EyQWdBZ0FDQUNRUUZ5TmdJRUlBRWdBMnBCS0RZQ0JFSGtnUUZCc0lVQktBSUFOZ0lBSUFVZ0JFRW5JQVJyUVFkeFFRQWdCRUVuYTBFSGNSdHFRUzlySWdBZ0FDQUZRUkJxU1JzaUFrRWJOZ0lFSUFKQmtJVUJLUUlBTndJUUlBSkJpSVVCS1FJQU53SUlRWkNGQVNBQ1FRaHFOZ0lBUVl5RkFTQUdOZ0lBUVlpRkFTQUJOZ0lBUVpTRkFVRUFOZ0lBSUFKQkdHb2hBQU5BSUFCQkJ6WUNCQ0FBUVFocUlRRWdBRUVFYWlFQUlBRWdCRWtOQUFzZ0FpQUZSZzBESUFJZ0FpZ0NCRUYrY1RZQ0JDQUZJQUlnQldzaUJFRUJjallDQkNBQ0lBUTJBZ0FnQkVIL0FVMEVRQ0FFUVFOMklnQkJBM1JCOElFQmFpRUNBbjlCeUlFQktBSUFJZ0ZCQVNBQWRDSUFjVVVFUUVISWdRRWdBQ0FCY2pZQ0FDQUNEQUVMSUFJb0FnZ0xJUUFnQWlBRk5nSUlJQUFnQlRZQ0RDQUZJQUkyQWd3Z0JTQUFOZ0lJREFRTFFSOGhBQ0FGUWdBM0FoQWdCRUgvLy84SFRRUkFJQVJCQ0hZaUFDQUFRWUQrUDJwQkVIWkJDSEVpQW5RaUFDQUFRWURnSDJwQkVIWkJCSEVpQVhRaUFDQUFRWUNBRDJwQkVIWkJBbkVpQUhSQkQzWWdBU0FDY2lBQWNtc2lBRUVCZENBRUlBQkJGV3AyUVFGeGNrRWNhaUVBQ3lBRklBQTJBaHdnQUVFQ2RFSDRnd0ZxSVFNQ1FFSE1nUUVvQWdBaUFrRUJJQUIwSWdGeFJRUkFRY3lCQVNBQklBSnlOZ0lBSUFNZ0JUWUNBQ0FGSUFNMkFoZ01BUXNnQkVFQVFSa2dBRUVCZG1zZ0FFRWZSaHQwSVFBZ0F5Z0NBQ0VCQTBBZ0FTSUNLQUlFUVhoeElBUkdEUVFnQUVFZGRpRUJJQUJCQVhRaEFDQUNJQUZCQkhGcUlnTW9BaEFpQVEwQUN5QURJQVUyQWhBZ0JTQUNOZ0lZQ3lBRklBVTJBZ3dnQlNBRk5nSUlEQU1MSUFNb0FnZ2lBQ0FJTmdJTUlBTWdDRFlDQ0NBSVFRQTJBaGdnQ0NBRE5nSU1JQWdnQURZQ0NBc2dDVUVJYWlFQURBVUxJQUlvQWdnaUFDQUZOZ0lNSUFJZ0JUWUNDQ0FGUVFBMkFoZ2dCU0FDTmdJTUlBVWdBRFlDQ0F0QjFJRUJLQUlBSWdBZ0IwME5BRUhVZ1FFZ0FDQUhheUlCTmdJQVFlQ0JBVUhnZ1FFb0FnQWlBaUFIYWlJQU5nSUFJQUFnQVVFQmNqWUNCQ0FDSUFkQkEzSTJBZ1FnQWtFSWFpRUFEQU1MUWNTQkFVRXdOZ0lBUVFBaEFBd0NDd0pBSUFaRkRRQUNRQ0FFS0FJY0lnSkJBblJCK0lNQmFpSUFLQUlBSUFSR0JFQWdBQ0FCTmdJQUlBRU5BVUhNZ1FFZ0NVRitJQUozY1NJSk5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JFWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FFS0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QUVLQUlVSWdCRkRRQWdBU0FBTmdJVUlBQWdBVFlDR0FzQ1FDQURRUTlOQkVBZ0JDQURJQWRxSWdCQkEzSTJBZ1FnQUNBRWFpSUFJQUFvQWdSQkFYSTJBZ1FNQVFzZ0JDQUhRUU55TmdJRUlBUWdCMm9pQlNBRFFRRnlOZ0lFSUFNZ0JXb2dBellDQUNBRFFmOEJUUVJBSUFOQkEzWWlBRUVEZEVId2dRRnFJUUlDZjBISWdRRW9BZ0FpQVVFQklBQjBJZ0J4UlFSQVFjaUJBU0FBSUFGeU5nSUFJQUlNQVFzZ0FpZ0NDQXNoQUNBQ0lBVTJBZ2dnQUNBRk5nSU1JQVVnQWpZQ0RDQUZJQUEyQWdnTUFRdEJIeUVBSUFOQi8vLy9CMDBFUUNBRFFRaDJJZ0FnQUVHQS9qOXFRUkIyUVFoeElnSjBJZ0FnQUVHQTRCOXFRUkIyUVFSeElnRjBJZ0FnQUVHQWdBOXFRUkIyUVFKeElnQjBRUTkySUFFZ0FuSWdBSEpySWdCQkFYUWdBeUFBUVJWcWRrRUJjWEpCSEdvaEFBc2dCU0FBTmdJY0lBVkNBRGNDRUNBQVFRSjBRZmlEQVdvaEFRSkFBa0FnQ1VFQklBQjBJZ0p4UlFSQVFjeUJBU0FDSUFseU5nSUFJQUVnQlRZQ0FBd0JDeUFEUVFCQkdTQUFRUUYyYXlBQVFSOUdHM1FoQUNBQktBSUFJUWNEUUNBSElnRW9BZ1JCZUhFZ0EwWU5BaUFBUVIxMklRSWdBRUVCZENFQUlBRWdBa0VFY1dvaUFpZ0NFQ0lIRFFBTElBSWdCVFlDRUFzZ0JTQUJOZ0lZSUFVZ0JUWUNEQ0FGSUFVMkFnZ01BUXNnQVNnQ0NDSUFJQVUyQWd3Z0FTQUZOZ0lJSUFWQkFEWUNHQ0FGSUFFMkFnd2dCU0FBTmdJSUN5QUVRUWhxSVFBTUFRc0NRQ0FJUlEwQUFrQWdBU2dDSENJQ1FRSjBRZmlEQVdvaUFDZ0NBQ0FCUmdSQUlBQWdCRFlDQUNBRURRRkJ6SUVCSUFsQmZpQUNkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FCUmh0cUlBUTJBZ0FnQkVVTkFRc2dCQ0FJTmdJWUlBRW9BaEFpQUFSQUlBUWdBRFlDRUNBQUlBUTJBaGdMSUFFb0FoUWlBRVVOQUNBRUlBQTJBaFFnQUNBRU5nSVlDd0pBSUFOQkQwMEVRQ0FCSUFNZ0Iyb2lBRUVEY2pZQ0JDQUFJQUZxSWdBZ0FDZ0NCRUVCY2pZQ0JBd0JDeUFCSUFkQkEzSTJBZ1FnQVNBSGFpSUNJQU5CQVhJMkFnUWdBaUFEYWlBRE5nSUFJQW9FUUNBS1FRTjJJZ0JCQTNSQjhJRUJhaUVGUWR5QkFTZ0NBQ0VFQW45QkFTQUFkQ0lBSUFaeFJRUkFRY2lCQVNBQUlBWnlOZ0lBSUFVTUFRc2dCU2dDQ0FzaEFDQUZJQVEyQWdnZ0FDQUVOZ0lNSUFRZ0JUWUNEQ0FFSUFBMkFnZ0xRZHlCQVNBQ05nSUFRZENCQVNBRE5nSUFDeUFCUVFocUlRQUxJQXRCRUdva0FDQUFDNmNCQVFSL0l3QkJJR3NpQVNRQUlBRkJBRFlDRENBQlFUYzJBZ2dnQVNBQktRTUlOd01BSUFGQkVHb2lBeUFCS1FJQU53SUVJQU1nQURZQ0FDTUFRUkJySWdJa0FDQUFLQUlBUVg5SEJFQWdBa0VJYWlJRUlBTVFlaG9nQWlBRUVIb2FBMEFnQUNnQ0FFRUJSZzBBQ3lBQUtBSUFSUVJBSUFCQkFUWUNBQ0FDUVRnUkFRQWdBRUYvTmdJQUN3c2dBa0VRYWlRQUlBQW9BZ1FoQUNBQlFTQnFKQUFnQUVFQmF3c2JBQ0FBUVFBMkFnUWdBRUhJL0FBMkFnQWdBRUdJMWdBMkFnQUxtQVlCQ1g4akFFRVFheUlJSkFBZ0FCRE5BU01BUVJCcklnSWtBQ0FDSUFBMkFnd2dDRUVJYWlJRklBSkJER29RTXlBQ1FSQnFKQUJCb0pVQkVGQWdBVTBFUUFKQVFhQ1ZBUkJRSWdJZ0FVRUJhaUlBU1FSQUl3QkJJR3NpQ1NRQUFrQWdBQ0FDYXlJR1FhQ1ZBUkJES0FJQVFhU1ZBU2dDQUd0QkFuVk5CRUFnQmhDV0Fnd0JDMEdnbFFFUWRDRUhJQWxCQ0dvaEFnSi9RYUNWQVJCUUlBWnFJUVFqQUVFUWF5SUFKQUFnQUNBRU5nSU1JQVFRZ0FJaUEwMEVRRUdnbFFFUWN5SUVJQU5CQVhaSkJFQWdBQ0FFUVFGME5nSUlJQUJCQ0dvZ0FFRU1haEIyS0FJQUlRTUxJQUJCRUdva0FDQUREQUVMRUJjQUN5RUFRYUNWQVJCUUlRcEJBQ0VESXdCQkVHc2lCQ1FBSUFSQkFEWUNEQ0FDUVF4cUlBUkJER29nQnhDTEFpQUFCRUFnQWlnQ0VDQUFFUDhCSVFNTElBSWdBellDQUNBQ0lBTWdDa0VDZEdvaUJ6WUNDQ0FDSUFjMkFnUWdBaENFQVNBRElBQkJBblJxTmdJQUlBUkJFR29rQUNNQVFSQnJJZ0FrQUNBQUlBSW9BZ2cyQWdBZ0FpZ0NDQ0VESUFBZ0FrRUlhallDQ0NBQUlBTWdCa0VDZEdvMkFnUWdBQ2dDQUNFREEwQWdBQ2dDQkNBRFJ3UkFJQUlvQWhBZ0FDZ0NBQkQ5QVNBQUlBQW9BZ0JCQkdvaUF6WUNBQXdCQ3dzZ0FDZ0NDQ0FBS0FJQU5nSUFJQUJCRUdva0FFR2dsUUVRa0FKQm9KVUJFSFJCb0pVQktBSUFRYVNWQVNnQ0FDQUNRUVJxSWdBUWhnSkJvSlVCSUFBUWRVR2tsUUVnQWtFSWFoQjFRYUNWQVJCRElBSVFoQUVRZFNBQ0lBSW9BZ1EyQWdCQm9KVUJFRkFRL2dFZ0FpZ0NCQ0VBQTBBZ0FDQUNLQUlJUndSQUlBSW9BaEFhSUFJZ0FpZ0NDRUVFYXpZQ0NBd0JDd3NnQWlnQ0FBUkFJQUlvQWhBZ0FpZ0NBQ0FDRUlRQktBSUFJQUlvQWdCclFRSjFFUHNCQ3dzZ0NVRWdhaVFBREFFTElBQWdBa2tFUUVHZ2xRRW9BZ0FnQUVFQ2RHb2hBRUdnbFFFUVVDRUNRYUNWQVNBQUVQb0JRYUNWQVNBQ0VKUUNDd3NMUWFDVkFTQUJFSGNvQWdBRVFFR2dsUUVnQVJCM0tBSUFFS01CQ3lBRkVLY0JJUUJCb0pVQklBRVFkeUFBTmdJQUlBVW9BZ0FoQUNBRlFRQTJBZ0FnQUFSQUlBQVFvd0VMSUFoQkVHb2tBQXNJQUNBQVFRQVFKd3N2QVFGL0l3QkJFR3NpQXlRQUlBTWdBVFlDRENBQUlBTkJER29RTXlBQVFRUnFJQUlRTXlBRFFSQnFKQUFnQUFzUUFDQUFLQUlBRVB3Q1FSaDBRUmgxQ3dZQUlBQVFFQXNLQUNBQUtBSUFFUGNDQ3cwQUlBQW9BZ0FRK3dJYUlBQUxTd0VDZnlNQVFSQnJJZ0VrQUNBQklBQVE4UUVoQUNNQVFSQnJJZ0lrQUNBQ1FRaHFJQUFvQWdRUWVpZ0NBRUVCT2dBQUlBQW9BZ2hCQVRvQUFDQUNRUkJxSkFBZ0FVRVFhaVFBQzNjQkEzOGpBRUVRYXlJQ0pBQWdBaUFBRVBFQklRQWpBRUVRYXlJREpBQWdBMEVJYWlBQUtBSUVFSG9vQWdBdEFBQkZCRUFDZndKQUlBQW9BZ2dpQUMwQUFDSUJRUUZIQkg4Z0FVRUNjUTBCSUFCQkFqb0FBRUVCQlVFQUN3d0JDeEFYQUFzaEFRc2dBMEVRYWlRQUlBSkJFR29rQUNBQkN3MEFJQUFvQWdBUTlnSWFJQUFMQ1FBZ0FDQUJFUDBDQ3lRQkFYOGdBQ2dDQUNFQ0lBQWdBVFlDQUNBQ0JFQWdBaUFBRUpVQktBSUFFUUVBQ3dzSkFDQUFJQUVRK0FJTEVRQWdBQ0FCSUFBb0FnQW9BaHdSQWdBTHZ3RUJBMzhnQUMwQUFFRWdjVVVFUUFKQUlBRWhBd0pBSUFJZ0FDSUJLQUlRSWdBRWZ5QUFCU0FCRU9nQkRRRWdBU2dDRUFzZ0FTZ0NGQ0lGYTBzRVFDQUJJQU1nQWlBQktBSWtFUVFBR2d3Q0N3SkFJQUVvQWxCQkFFZ05BQ0FDSVFBRFFDQUFJZ1JGRFFFZ0F5QUVRUUZySWdCcUxRQUFRUXBIRFFBTElBRWdBeUFFSUFFb0FpUVJCQUFnQkVrTkFTQURJQVJxSVFNZ0FpQUVheUVDSUFFb0FoUWhCUXNnQlNBRElBSVFRaG9nQVNBQktBSVVJQUpxTmdJVUN3c0xDM1VCQVg0Z0FDQUJJQVIrSUFJZ0EzNThJQU5DSUlnaUFpQUJRaUNJSWdSK2ZDQURRdi8vLy84UGd5SURJQUZDLy8vLy93K0RJZ0YrSWdWQ0lJZ2dBeUFFZm53aUEwSWdpSHdnQVNBQ2ZpQURRdi8vLy84UGczd2lBVUlnaUh3M0F3Z2dBQ0FGUXYvLy8vOFBneUFCUWlDR2hEY0RBQXREQVFGL0l3QkJFR3NpQlNRQUlBVWdBallDRENBRklBUTJBZ2dnQlNBRlFReHFFRkloQWlBQUlBRWdBeUFGS0FJSUVMVUJJUUFnQWhCUklBVkJFR29rQUNBQUM2RUJBUUovQWtBZ0FCQUpSU0FDSUFGclFRVkljZzBBSUFFZ0FoQ3NBU0FDUVFScklRUWdBQkFOSWdJZ0FCQUphaUVGQWtBRFFBSkFJQUlzQUFBaEFDQUJJQVJQRFFBZ0FFRUFUQ0FBUWY4QVRuSkZCRUFnQVNnQ0FDQUNMQUFBUncwREN5QUJRUVJxSVFFZ0FpQUZJQUpyUVFGS2FpRUNEQUVMQ3lBQVFRQk1JQUJCL3dCT2NnMEJJQUlzQUFBZ0JDZ0NBRUVCYTBzTkFRc2dBMEVFTmdJQUN3dHRBUUYvSXdCQmdBSnJJZ1VrQUNBRVFZREFCSEVnQWlBRFRISkZCRUFnQlNBQlFmOEJjU0FDSUFOcklnSkJnQUlnQWtHQUFra2lBUnNRUmhvZ0FVVUVRQU5BSUFBZ0JVR0FBaEFxSUFKQmdBSnJJZ0pCL3dGTERRQUxDeUFBSUFVZ0FoQXFDeUFGUVlBQ2FpUUFDMUFCQVg0Q1FDQURRY0FBY1FSQUlBRWdBMEZBYXEyR0lRSkNBQ0VCREFFTElBTkZEUUFnQWlBRHJTSUVoaUFCUWNBQUlBTnJyWWlFSVFJZ0FTQUVoaUVCQ3lBQUlBRTNBd0FnQUNBQ053TUlDMVVCQW44akFFRVFheUlDSkFBZ0FCQTFCRUFnQUNnQ0FDRURJQUFRZlJvZ0F4QVFDeUFBSUFFb0FnZzJBZ2dnQUNBQktRSUFOd0lBSUFGQkFCQTZJQUpCQURvQUR5QUJJQUpCRDJvUU5DQUNRUkJxSkFBTERBQWdBQ0FCRVAwQ1FRRnpDd29BSUFCQjlJZ0JFR1VMREFBZ0FDQUJLQUlBTmdJQUN3d0FJQUFnQVMwQUFEb0FBQXNLQUNBQUxRQUxRUWQyQ3d3QUlBQWdBUkQ0QWtFQmN3c1JBQ0FBSUFFZ0FTZ0NBQ2dDRkJFREFBc1BBQ0FBSUFBb0FnQW9BaEFSQUFBTENRQWdBQ0FCTmdJRUN3a0FJQUFnQVRvQUN3c0tBQ0FBUWV5SUFSQmxDOUVKQWdSL0JINGpBRUh3QUdzaUJTUUFJQVJDLy8vLy8vLy8vLy8vQUlNaENnSkFBa0FnQVVJQmZTSUxRbjlSSUFKQy8vLy8vLy8vLy8vL0FJTWlDU0FCSUF0V3JYeENBWDBpQzBMLy8vLy8vLysvLy84QVZpQUxRdi8vLy8vLy83Ly8vd0JSRzBVRVFDQURRZ0Y5SWd0Q2YxSWdDaUFESUF0V3JYeENBWDBpQzBMLy8vLy8vLysvLy84QVZDQUxRdi8vLy8vLy83Ly8vd0JSR3cwQkN5QUJVQ0FKUW9DQWdJQ0FnTUQvL3dCVUlBbENnSUNBZ0lDQXdQLy9BRkViUlFSQUlBSkNnSUNBZ0lDQUlJUWhCQ0FCSVFNTUFnc2dBMUFnQ2tLQWdJQ0FnSURBLy84QVZDQUtRb0NBZ0lDQWdNRC8vd0JSRzBVRVFDQUVRb0NBZ0lDQWdDQ0VJUVFNQWdzZ0FTQUpRb0NBZ0lDQWdNRC8vd0NGaEZBRVFFS0FnSUNBZ0lEZy8vOEFJQUlnQVNBRGhTQUNJQVNGUW9DQWdJQ0FnSUNBZ0grRmhGQWlCaHNoQkVJQUlBRWdCaHNoQXd3Q0N5QURJQXBDZ0lDQWdJQ0F3UC8vQUlXRVVBMEJJQUVnQ1lSUUJFQWdBeUFLaEVJQVVnMENJQUVnQTRNaEF5QUNJQVNESVFRTUFnc2dBeUFLaEZCRkRRQWdBU0VESUFJaEJBd0JDeUFESUFFZ0FTQURWQ0FKSUFwVUlBa2dDbEViSWdjYklRb2dCQ0FDSUFjYklndEMvLy8vLy8vL1A0TWhDU0FDSUFRZ0J4c2lBa0l3aUtkQi8vOEJjU0VJSUF0Q01JaW5RZi8vQVhFaUJrVUVRQ0FGUWVBQWFpQUtJQWtnQ2lBSklBbFFJZ1liZVNBR1FRWjByWHluSWdaQkQyc1FMeUFGS1FOb0lRa2dCU2tEWUNFS1FSQWdCbXNoQmdzZ0FTQURJQWNiSVFNZ0FrTC8vLy8vLy84L2d5RUVJQWhGQkVBZ0JVSFFBR29nQXlBRUlBTWdCQ0FFVUNJSEcza2dCMEVHZEsxOHB5SUhRUTlyRUM5QkVDQUhheUVJSUFVcEExZ2hCQ0FGS1FOUUlRTUxJQVJDQTRZZ0EwSTlpSVJDZ0lDQWdJQ0FnQVNFSVFRZ0NVSURoaUFLUWoySWhDRUpJQUlnQzRVaERBSitJQU5DQTRZaUFTQUdJQWhySWdkRkRRQWFJQWRCL3dCTEJFQkNBQ0VFUWdFTUFRc2dCVUZBYXlBQklBUkJnQUVnQjJzUUx5QUZRVEJxSUFFZ0JDQUhFSHdnQlNrRE9DRUVJQVVwQXpBZ0JTa0RRQ0FGS1FOSWhFSUFVcTJFQ3lFQ0lBbENnSUNBZ0lDQWdBU0VJUWtnQ2tJRGhpRURBa0FnREVJQVV3UkFJQU1nQW4waUFTQUpJQVI5SUFJZ0ExYXRmU0lFaEZBRVFFSUFJUU5DQUNFRURBTUxJQVJDLy8vLy8vLy8vd05XRFFFZ0JVRWdhaUFCSUFRZ0FTQUVJQVJRSWdjYmVTQUhRUVowclh5blFReHJJZ2NRTHlBR0lBZHJJUVlnQlNrREtDRUVJQVVwQXlBaEFRd0JDeUFDSUFOOElnRWdBbFN0SUFRZ0NYeDhJZ1JDZ0lDQWdJQ0FnQWlEVUEwQUlBRkNBWU1nQkVJL2hpQUJRZ0dJaElRaEFTQUdRUUZxSVFZZ0JFSUJpQ0VFQ3lBTFFvQ0FnSUNBZ0lDQWdIK0RJUUlnQmtILy93Rk9CRUFnQWtLQWdJQ0FnSURBLy84QWhDRUVRZ0FoQXd3QkMwRUFJUWNDUUNBR1FRQktCRUFnQmlFSERBRUxJQVZCRUdvZ0FTQUVJQVpCL3dCcUVDOGdCU0FCSUFSQkFTQUdheEI4SUFVcEF3QWdCU2tERUNBRktRTVloRUlBVXEyRUlRRWdCU2tEQ0NFRUN5QUJwMEVIY1NJR1FRUkxyU0FFUWoyR0lBRkNBNGlFSWdGOElnTWdBVlN0SUFSQ0E0aEMvLy8vLy8vL1A0TWdCNjFDTUlhRUlBS0VmQ0VFQWtBZ0JrRUVSZ1JBSUFRZ0EwSUJneUlCSUFOOElnTWdBVlN0ZkNFRURBRUxJQVpGRFFFTEN5QUFJQU0zQXdBZ0FDQUVOd01JSUFWQjhBQnFKQUFMRVFBZ0FDQUJJQUFvQWdBb0Fpd1JBZ0FMTFFBZ0FrVUVRQ0FBS0FJRUlBRW9BZ1JHRHdzZ0FDQUJSZ1JBUVFFUEN5QUFLQUlFSUFFb0FnUVF0Z0ZGQzJNQUlBSW9BZ1JCc0FGeElnSkJJRVlFUUNBQkR3c0NRQ0FDUVJCSERRQUNRQUpBSUFBdEFBQWlBa0VyYXc0REFBRUFBUXNnQUVFQmFnOExJQUpCTUVjZ0FTQUFhMEVDU0hJTkFDQUFMUUFCUVNCeVFmZ0FSdzBBSUFCQkFtb2hBQXNnQUFzbUFRRi9Jd0JCRUdzaUFTUUFJQUZCQ0dvZ0FCQU5FSG9vQWdBaEFDQUJRUkJxSkFBZ0FBdCtBZ0ovQVg0akFFRVFheUlESkFBZ0FBSitJQUZGQkVCQ0FBd0JDeUFESUFFZ0FVRWZkU0lDYWlBQ2N5SUNyVUlBSUFKbklnSkIwUUJxRUM4Z0F5a0RDRUtBZ0lDQWdJREFBSVZCbm9BQklBSnJyVUl3aG53Z0FVR0FnSUNBZUhHdFFpQ0doQ0VFSUFNcEF3QUxOd01BSUFBZ0JEY0RDQ0FEUVJCcUpBQUxnd1FCQTM4Z0FrR0FCRThFUUNBQUlBRWdBaEFGR2lBQUR3c2dBQ0FDYWlFREFrQWdBQ0FCYzBFRGNVVUVRQUpBSUFCQkEzRkZCRUFnQUNFQ0RBRUxJQUpCQUV3RVFDQUFJUUlNQVFzZ0FDRUNBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSkJBM0ZGRFFFZ0FpQURTUTBBQ3dzQ1FDQURRWHh4SWdSQndBQkpEUUFnQWlBRVFVQnFJZ1ZMRFFBRFFDQUNJQUVvQWdBMkFnQWdBaUFCS0FJRU5nSUVJQUlnQVNnQ0NEWUNDQ0FDSUFFb0FndzJBZ3dnQWlBQktBSVFOZ0lRSUFJZ0FTZ0NGRFlDRkNBQ0lBRW9BaGcyQWhnZ0FpQUJLQUljTmdJY0lBSWdBU2dDSURZQ0lDQUNJQUVvQWlRMkFpUWdBaUFCS0FJb05nSW9JQUlnQVNnQ0xEWUNMQ0FDSUFFb0FqQTJBakFnQWlBQktBSTBOZ0kwSUFJZ0FTZ0NPRFlDT0NBQ0lBRW9BancyQWp3Z0FVRkFheUVCSUFKQlFHc2lBaUFGVFEwQUN3c2dBaUFFVHcwQkEwQWdBaUFCS0FJQU5nSUFJQUZCQkdvaEFTQUNRUVJxSWdJZ0JFa05BQXNNQVFzZ0EwRUVTUVJBSUFBaEFnd0JDeUFBSUFOQkJHc2lCRXNFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUlnQVMwQUFUb0FBU0FDSUFFdEFBSTZBQUlnQWlBQkxRQURPZ0FESUFGQkJHb2hBU0FDUVFScUlnSWdCRTBOQUFzTElBSWdBMGtFUUFOQUlBSWdBUzBBQURvQUFDQUJRUUZxSVFFZ0FrRUJhaUlDSUFOSERRQUxDeUFBQ3djQUlBQkJDR29MSndFQmZ5QUNRUUJPQkg4Z0FDZ0NDQ0FDUWY4QmNVRUJkR292QVFBZ0FYRkJBRWNGSUFNTEN3b0FJQUJCTUd0QkNra0w4Z0lDQW44QmZnSkFJQUpGRFFBZ0FDQUJPZ0FBSUFBZ0Ftb2lBMEVCYXlBQk9nQUFJQUpCQTBrTkFDQUFJQUU2QUFJZ0FDQUJPZ0FCSUFOQkEyc2dBVG9BQUNBRFFRSnJJQUU2QUFBZ0FrRUhTUTBBSUFBZ0FUb0FBeUFEUVFScklBRTZBQUFnQWtFSlNRMEFJQUJCQUNBQWEwRURjU0lFYWlJRElBRkIvd0Z4UVlHQ2hBaHNJZ0UyQWdBZ0F5QUNJQVJyUVh4eElnUnFJZ0pCQkdzZ0FUWUNBQ0FFUVFsSkRRQWdBeUFCTmdJSUlBTWdBVFlDQkNBQ1FRaHJJQUUyQWdBZ0FrRU1heUFCTmdJQUlBUkJHVWtOQUNBRElBRTJBaGdnQXlBQk5nSVVJQU1nQVRZQ0VDQURJQUUyQWd3Z0FrRVFheUFCTmdJQUlBSkJGR3NnQVRZQ0FDQUNRUmhySUFFMkFnQWdBa0VjYXlBQk5nSUFJQVFnQTBFRWNVRVljaUlFYXlJQ1FTQkpEUUFnQWExQ2dZQ0FnQkIrSVFVZ0F5QUVhaUVCQTBBZ0FTQUZOd01ZSUFFZ0JUY0RFQ0FCSUFVM0F3Z2dBU0FGTndNQUlBRkJJR29oQVNBQ1FTQnJJZ0pCSDBzTkFBc0xJQUFMTndFQ2Z5TUFRUkJySWdJa0FBTkFJQUZCQTBjRVFDQUFJQUZCQW5ScVFRQTJBZ0FnQVVFQmFpRUJEQUVMQ3lBQ1FSQnFKQUFnQUFzUEFDQUFJQUFvQWdBb0Fnd1JBQUFMQndBZ0FCQUpSUXNSQUNBQUlBRWdBU2dDQUNnQ0hCRURBQXNSQUNBQUlBRWdBU2dDQUNnQ0dCRURBQXNRQUNBQUlBRkJnSUNBZ0hoeU5nSUlDd2tBSUFBZ0FUWUNBQXNUQUNBQUlBRWdBaUFBS0FJQUtBSU1FUVFBQ3dRQVFRQUxFQUFnQUNnQ0JDQUFLQUlBYTBFQ2RRc1NBQ0FBS0FJQUlnQUVRQ0FBRU5BQ0dnc0xFUUFnQUNBQktBSUFFTkFDTmdJQUlBQUxRUUVCZnlBQUlBRTNBM0FnQUNBQUtBSXNJQUFvQWdRaUFtdXNOd040SUFBZ0FWQWdBQ2dDQ0NJQUlBSnJyQ0FCVjNJRWZ5QUFCU0FDSUFHbmFnczJBbWdMSWdFQmZ5TUFRUkJySWdJa0FDQUFJQUVnQVJDZUFSRDFBU0FDUVJCcUpBQWdBQXNRQUNBQ0JFQWdBQ0FCSUFJUVFob0xDNTBCQVFSL0l3QkJFR3NpQnlRQUFrQWdBRVVOQUNBRUtBSU1JUVlnQWlBQmF5SUlRUUJLQkVBZ0FDQUJJQWdRZnlBSVJ3MEJDeUFHSUFNZ0FXc2lBV3RCQUNBQklBWklHeUlCUVFCS0JFQWdBQ0FISUFFZ0JSRHZBU0lGRUEwZ0FSQi9JUVlnQlJBS0dpQUJJQVpIRFFFTElBTWdBbXNpQVVFQVNnUkFJQUFnQWlBQkVIOGdBVWNOQVFzZ0JCRHVBU0FBSVFrTElBZEJFR29rQUNBSkMxVUJBbjhqQUVFUWF5SUNKQUFnQUJBMUJFQWdBQ2dDQUNFRElBQVFmUm9nQXhBUUN5QUFJQUVvQWdnMkFnZ2dBQ0FCS1FJQU53SUFJQUZCQUJBNklBSkJBRFlDRENBQklBSkJER29RTXlBQ1FSQnFKQUFMdkFFQkEzOGpBRUVRYXlJRkpBQWdCU0FCTmdJSVFRQWhBVUVHSVFZQ1FBSkFJQUFnQlVFSWFoQW9EUUJCQkNFR0lBTkJnQkFnQUJBaElnY1FUa1VOQUNBRElBY1Fod0VoQVFOQUFrQWdBQkFsR2lBQlFUQnJJUUVnQUNBRlFRaHFFRFpGSUFSQkFraHlEUUFnQTBHQUVDQUFFQ0VpQmhCT1JRMERJQVJCQVdzaEJDQURJQVlRaHdFZ0FVRUtiR29oQVF3QkN3dEJBaUVHSUFBZ0JVRUlhaEFvUlEwQkN5QUNJQUlvQWdBZ0JuSTJBZ0FMSUFWQkVHb2tBQ0FCQzd3QkFRTi9Jd0JCRUdzaUJTUUFJQVVnQVRZQ0NFRUFJUUZCQmlFR0FrQUNRQ0FBSUFWQkNHb1FKZzBBUVFRaEJpQURRWUFRSUFBUUh5SUhFRVJGRFFBZ0F5QUhFSWdCSVFFRFFBSkFJQUFRSWhvZ0FVRXdheUVCSUFBZ0JVRUlhaEF4UlNBRVFRSkljZzBBSUFOQmdCQWdBQkFmSWdZUVJFVU5BeUFFUVFGcklRUWdBeUFHRUlnQklBRkJDbXhxSVFFTUFRc0xRUUloQmlBQUlBVkJDR29RSmtVTkFRc2dBaUFDS0FJQUlBWnlOZ0lBQ3lBRlFSQnFKQUFnQVF1YUFRRURmeU1BUVJCcklnUWtBQ0FFSUFFMkFnd2dCQ0FETmdJSUlBUWdCRUVNYWhCU0lRWWdCQ2dDQ0NFREl3QkJFR3NpQVNRQUlBRWdBellDRENBQklBTTJBZ2hCZnlFRkFrQkJBRUVBSUFJZ0F4QzFBU0lEUVFCSURRQWdBQ0FEUVFGcUlnTVFHU0lBTmdJQUlBQkZEUUFnQUNBRElBSWdBU2dDREJDMUFTRUZDeUFCUVJCcUpBQWdCU0VBSUFZUVVTQUVRUkJxSkFBZ0FBc05BQ0FBS0FJQUlBRW9BZ0JIQ3k0QUFrQWdBQ2dDQkVIS0FIRWlBQVJBSUFCQndBQkdCRUJCQ0E4TElBQkJDRWNOQVVFUUR3dEJBQThMUVFvTCtRRUNBMzRDZnlNQVFSQnJJZ1VrQUFKK0lBRzlJZ05DLy8vLy8vLy8vLy8vQUlNaUFrS0FnSUNBZ0lDQUNIMUMvLy8vLy8vLy8rLy9BRmdFUUNBQ1FqeUdJUVFnQWtJRWlFS0FnSUNBZ0lDQWdEeDhEQUVMSUFKQ2dJQ0FnSUNBZ1BqL0FGb0VRQ0FEUWp5R0lRUWdBMElFaUVLQWdJQ0FnSURBLy84QWhBd0JDeUFDVUFSQVFnQU1BUXNnQlNBQ1FnQWdBNmRuUVNCcUlBSkNJSWluWnlBQ1FvQ0FnSUFRVkJzaUJrRXhhaEF2SUFVcEF3QWhCQ0FGS1FNSVFvQ0FnSUNBZ01BQWhVR00rQUFnQm11dFFqQ0doQXNoQWlBQUlBUTNBd0FnQUNBQ0lBTkNnSUNBZ0lDQWdJQ0FmNE9FTndNSUlBVkJFR29rQUFzSUFDQUFRZjhCY1FzSEFDQUFJQUZHQ3pNQkFYOGdBRUVCSUFBYklRQUNRQU5BSUFBUUdTSUJEUUZCaUpjQktBSUFJZ0VFUUNBQkVROEFEQUVMQ3hBQUFBc2dBUXZFQXdFRGZ5TUFRU0JySWdna0FDQUlJQUkyQWhBZ0NDQUJOZ0lZSUFoQkNHb2lBU0FERUE4Z0FSQTdJUWtnQVJBT0lBUkJBRFlDQUVFQUlRSUNRQU5BSUFZZ0IwWWdBbklOQVFKQUlBaEJHR29nQ0VFUWFoQW9EUUFDUUNBSklBWW9BZ0FRaHdGQkpVWUVRQ0FHUVFScUlnSWdCMFlOQWtFQUlRb0NmeUFKSUFJb0FnQVFod0VpQVVIRkFFWWdBVUgvQVhGQk1FWnlSUVJBSUFZaEFpQUJEQUVMSUFaQkNHb2dCMFlOQXlBQklRb2dDU0FHS0FJSUVJY0JDeUVCSUFnZ0FDQUlLQUlZSUFnb0FoQWdBeUFFSUFVZ0FTQUtJQUFvQWdBb0FpUVJEQUEyQWhnZ0FrRUlhaUVHREFFTElBbEJnTUFBSUFZb0FnQVFUZ1JBQTBBQ1FDQUhJQVpCQkdvaUJrWUVRQ0FISVFZTUFRc2dDVUdBd0FBZ0JpZ0NBQkJPRFFFTEN3TkFJQWhCR0dvZ0NFRVFhaEEyUlEwQ0lBbEJnTUFBSUFoQkdHb1FJUkJPUlEwQ0lBaEJHR29RSlJvTUFBc0FDeUFKSUFoQkdHb1FJUkFwSUFrZ0JpZ0NBQkFwUmdSQUlBWkJCR29oQmlBSVFSaHFFQ1VhREFFTElBUkJCRFlDQUFzZ0JDZ0NBQ0VDREFFTEN5QUVRUVEyQWdBTElBaEJHR29nQ0VFUWFoQW9CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUlLQUlZSVFBZ0NFRWdhaVFBSUFBTHhnTUJBMzhqQUVFZ2F5SUlKQUFnQ0NBQ05nSVFJQWdnQVRZQ0dDQUlRUWhxSWdFZ0F4QVBJQUVRTWlFSklBRVFEaUFFUVFBMkFnQkJBQ0VDQWtBRFFDQUdJQWRHSUFKeURRRUNRQ0FJUVJocUlBaEJFR29RSmcwQUFrQWdDU0FHTEFBQUVJZ0JRU1ZHQkVBZ0JrRUJhaUlDSUFkR0RRSkJBQ0VLQW44Z0NTQUNMQUFBRUlnQklnRkJ4UUJHSUFGQi93RnhRVEJHY2tVRVFDQUdJUUlnQVF3QkN5QUdRUUpxSUFkR0RRTWdBU0VLSUFrZ0Jpd0FBaENJQVFzaEFTQUlJQUFnQ0NnQ0dDQUlLQUlRSUFNZ0JDQUZJQUVnQ2lBQUtBSUFLQUlrRVF3QU5nSVlJQUpCQW1vaEJnd0JDeUFKUVlEQUFDQUdMQUFBRUVRRVFBTkFBa0FnQnlBR1FRRnFJZ1pHQkVBZ0J5RUdEQUVMSUFsQmdNQUFJQVlzQUFBUVJBMEJDd3NEUUNBSVFSaHFJQWhCRUdvUU1VVU5BaUFKUVlEQUFDQUlRUmhxRUI4UVJFVU5BaUFJUVJocUVDSWFEQUFMQUFzZ0NTQUlRUmhxRUI4UXN3RWdDU0FHTEFBQUVMTUJSZ1JBSUFaQkFXb2hCaUFJUVJocUVDSWFEQUVMSUFSQkJEWUNBQXNnQkNnQ0FDRUNEQUVMQ3lBRVFRUTJBZ0FMSUFoQkdHb2dDRUVRYWhBbUJFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBSUtBSVlJUUFnQ0VFZ2FpUUFJQUFMcWdFQkJIOGpBRUVRYXlJSUpBQUNRQ0FBUlEwQUlBUW9BZ3doQmlBQ0lBRnJJZ2RCQUVvRVFDQUFJQUVnQjBFQ2RTSUhFSDhnQjBjTkFRc2dCaUFESUFGclFRSjFJZ0ZyUVFBZ0FTQUdTQnNpQVVFQVNnUkFJQUFnQ0NBQklBVVF1Z0lpQlJBTklBRVFmeUVHSUFVUUNob2dBU0FHUncwQkN5QURJQUpySWdGQkFFb0VRQ0FBSUFJZ0FVRUNkU0lCRUg4Z0FVY05BUXNnQkJEdUFTQUFJUWtMSUFoQkVHb2tBQ0FKQ3hZQUlBQWdBU0FDSUFNZ0FDZ0NBQ2dDTUJFTEFCb0xRZ0VCZnlBQUtBSUFJUUlnQVJBYUlRQWdBa0VJYWlJQkVGQWdBRXNFZnlBQklBQVFkeWdDQUVFQVJ3VkJBQXRGQkVBUUZ3QUxJQUpCQ0dvZ0FCQjNLQUlBQ3pZQUlBSUVmeUFDQkVBRFFDQUFJQUVvQWdBMkFnQWdBRUVFYWlFQUlBRkJCR29oQVNBQ1FRRnJJZ0lOQUFzTFFRQUZJQUFMR2dzUEFDQUFJQUFvQWdBb0FpUVJBQUFMRVFBZ0FDQUJJQUVvQWdBb0FpQVJBd0FMRVFBZ0FDQUJJQUVvQWdBb0Fpd1JBd0FMREFBZ0FFR0Nob0FnTmdBQUN3Y0FJQUFRRVJvTEJBQWdBQXN1QVFGL0l3QkJFR3NpQVNRQUlBRkJDR29nQUJBTklBQVFDVUVDZEdvUWVpZ0NBQ0VBSUFGQkVHb2tBQ0FBQzZvQkFRRi9Ba0FnQTBHQUVIRkZEUUFnQWtVZ0EwSEtBSEVpQkVFSVJpQUVRY0FBUm5KeURRQWdBRUVyT2dBQUlBQkJBV29oQUFzZ0EwR0FCSEVFUUNBQVFTTTZBQUFnQUVFQmFpRUFDd05BSUFFdEFBQWlCQVJBSUFBZ0JEb0FBQ0FBUVFGcUlRQWdBVUVCYWlFQkRBRUxDeUFBQW45Qjd3QWdBMEhLQUhFaUFVSEFBRVlOQUJwQjJBQkIrQUFnQTBHQWdBRnhHeUFCUVFoR0RRQWFRZVFBUWZVQUlBSWJDem9BQUFzckFRRi9Jd0JCRUdzaUFTUUFJQUZCQ0dvZ0FCQU5JQUFRQ1dvUWVpZ0NBQ0VBSUFGQkVHb2tBQ0FBQ3hZQUlBQWdBU0FDSUFNZ0FDZ0NBQ2dDSUJFTEFCb0xFQUFnQUVFZ1JpQUFRUWxyUVFWSmNndFNBUUovUWVDQUFTZ0NBQ0lCSUFCQkEycEJmSEVpQW1vaEFBSkFJQUpCQUNBQUlBRk5HdzBBSUFBL0FFRVFkRXNFUUNBQUVBUkZEUUVMUWVDQUFTQUFOZ0lBSUFFUEMwSEVnUUZCTURZQ0FFRi9DeElBSUFBUVF5Z0NBQ0FBS0FJQWEwRUNkUXNIQUNBQVFSQnFDelVCQVg4akFFRVFheUlDSkFBZ0FpQUFLQUlBTmdJTUlBQWdBU2dDQURZQ0FDQUJJQUpCREdvb0FnQTJBZ0FnQWtFUWFpUUFDeVFCQW44akFFRVFheUlDSkFBZ0FDQUJFSUlDSVFNZ0FrRVFhaVFBSUFFZ0FDQURHd3NOQUNBQUtBSUFJQUZCQW5ScUN4WUFJQUFRTlFSQUlBQWdBUkE1RHdzZ0FDQUJFRG9MTEFBQ1FDQUFJQUZHRFFBRFFDQUFJQUZCQVdzaUFVOE5BU0FBSUFFUXNBSWdBRUVCYWlFQURBQUxBQXNMQ3dBZ0FDQUJOZ0lBSUFBTDJ3RUNBWDhDZmtFQklRUUNRQ0FBUWdCU0lBRkMvLy8vLy8vLy8vLy9BSU1pQlVLQWdJQ0FnSURBLy84QVZpQUZRb0NBZ0lDQWdNRC8vd0JSR3cwQUlBSkNBRklnQTBMLy8vLy8vLy8vLy84QWd5SUdRb0NBZ0lDQWdNRC8vd0JXSUFaQ2dJQ0FnSUNBd1AvL0FGRWJEUUFnQUNBQ2hDQUZJQWFFaEZBRVFFRUFEd3NnQVNBRGcwSUFXUVJBUVg4aEJDQUFJQUpVSUFFZ0ExTWdBU0FEVVJzTkFTQUFJQUtGSUFFZ0E0V0VRZ0JTRHd0QmZ5RUVJQUFnQWxZZ0FTQURWU0FCSUFOUkd3MEFJQUFnQW9VZ0FTQURoWVJDQUZJaEJBc2dCQXRRQVFGK0FrQWdBMEhBQUhFRVFDQUNJQU5CUUdxdGlDRUJRZ0FoQWd3QkN5QURSUTBBSUFKQndBQWdBMnV0aGlBQklBT3RJZ1NJaENFQklBSWdCSWdoQWdzZ0FDQUJOd01BSUFBZ0FqY0RDQXNPQUNBQUtBSUlRZi8vLy84SGNRc0tBQ0FBRU9FQkdpQUFDeE1BSUFBZ0FTQUNJQUFvQWdBb0FqQVJCQUFMSmdBZ0FDQUFLQUlZUlNBQUtBSVFJQUZ5Y2lJQk5nSVFJQUFvQWhRZ0FYRUVRQkFYQUFzTENRQWdBQ0FCRVB3QkN5UUFJQUJCQWs4RWZ5QUFRUVJxUVh4eElnQWdBRUVCYXlJQUlBQkJBa1liQlVFQkN3dVZBUUVGZnlNQVFSQnJJZ1VrQUNBQkVOSUNJUUlqQUVFUWF5SURKQUFDUUNBQ1FlLy8vLzhEVFFSQUFrQWdBa0VCVFFSQUlBQWdBaEE2SUFBaEJBd0JDeUFBSUFBZ0FoQ0NBVUVCYWlJR0VJRUJJZ1FRVFNBQUlBWVFUQ0FBSUFJUU9Rc2dCQ0FCSUFJUVppQURRUUEyQWd3Z0JDQUNRUUowYWlBRFFReHFFRE1nQTBFUWFpUUFEQUVMRUJjQUN5QUZRUkJxSkFBTEJ3QWdBRUVNYWdzUEFDQUFFRU1vQWdBZ0FDZ0NBR3NMeEFFQkJuOGpBRUVRYXlJRUpBQWdBQkNWQVNnQ0FDRUZBbjhnQWlnQ0FDQUFLQUlBYXlJRFFmLy8vLzhIU1FSQUlBTkJBWFFNQVF0QmZ3c2lBMEVFSUFNYklRTWdBU2dDQUNFR0lBQW9BZ0FoQnlBRlFUWkdCSDlCQUFVZ0FDZ0NBQXNnQXhDZEFTSUlCRUFnQlVFMlJ3UkFJQUFRcHdFYUN5QUVRVFUyQWdRZ0FDQUVRUWhxSUFnZ0JFRUVhaEFlSWdVUXBBSWdCUkFkSUFFZ0FDZ0NBQ0FHSUFkcmFqWUNBQ0FDSUFBb0FnQWdBMEY4Y1dvMkFnQWdCRUVRYWlRQUR3c1FGd0FMRXdBZ0FDQUJRUUFnQUNnQ0FDZ0NOQkVFQUFzVEFDQUFJQUZCQUNBQUtBSUFLQUlrRVFRQUN3MEFJQUFvQWdRZ0FDZ0NBR3NMOGdJQkFuOGpBRUVRYXlJS0pBQWdDaUFBTmdJTUFrQUNRQUpBSUFNb0FnQWdBa2NOQUVFcklRc2dBQ0FKS0FKZ1J3UkFRUzBoQ3lBSktBSmtJQUJIRFFFTElBTWdBa0VCYWpZQ0FDQUNJQXM2QUFBTUFRc2dCaEFKUlNBQUlBVkhja1VFUUVFQUlRQWdDQ2dDQUNJQklBZHJRWjhCU2cwQ0lBUW9BZ0FoQUNBSUlBRkJCR28yQWdBZ0FTQUFOZ0lBREFFTFFYOGhBQ0FKSUFsQjZBQnFJQXBCREdvUTBnRWdDV3NpQmtIY0FFb05BU0FHUVFKMUlRVUNRQUpBQWtBZ0FVRUlhdzREQUFJQUFRc2dBU0FGU2cwQkRBTUxJQUZCRUVjZ0JrSFlBRWh5RFFBZ0F5Z0NBQ0lCSUFKR0lBRWdBbXRCQWtweURRSWdBVUVCYXkwQUFFRXdSdzBDUVFBaEFDQUVRUUEyQWdBZ0F5QUJRUUZxTmdJQUlBRWdCVUhRMEFCcUxRQUFPZ0FBREFJTElBTWdBeWdDQUNJQVFRRnFOZ0lBSUFBZ0JVSFEwQUJxTFFBQU9nQUFJQVFnQkNnQ0FFRUJhallDQUVFQUlRQU1BUXRCQUNFQUlBUkJBRFlDQUFzZ0NrRVFhaVFBSUFBTENnQWdBRUdraVFFUVpRdERBUUYvSUFCQm5DWW9BZ0FpQVRZQ0FDQUFJQUZCREdzb0FnQnFRYndtS0FJQU5nSUFJQUJCd0NZb0FnQTJBZ2dnQUVFTWFoRFJBUm9nQUVGQWF4QitHaUFBQys0Q0FRTi9Jd0JCRUdzaUNpUUFJQW9nQURvQUR3SkFBa0FDUUNBREtBSUFJQUpIRFFCQkt5RUxJQUJCL3dGeElnd2dDUzBBR0VjRVFFRXRJUXNnQ1MwQUdTQU1SdzBCQ3lBRElBSkJBV28yQWdBZ0FpQUxPZ0FBREFFTElBWVFDVVVnQUNBRlIzSkZCRUJCQUNFQUlBZ29BZ0FpQVNBSGEwR2ZBVW9OQWlBRUtBSUFJUUFnQ0NBQlFRUnFOZ0lBSUFFZ0FEWUNBQXdCQzBGL0lRQWdDU0FKUVJwcUlBcEJEMm9RMVFFZ0NXc2lCVUVYU2cwQkFrQUNRQUpBSUFGQkNHc09Bd0FDQUFFTElBRWdCVW9OQVF3REN5QUJRUkJISUFWQkZraHlEUUFnQXlnQ0FDSUJJQUpHSUFFZ0FtdEJBa3B5RFFJZ0FVRUJheTBBQUVFd1J3MENRUUFoQUNBRVFRQTJBZ0FnQXlBQlFRRnFOZ0lBSUFFZ0JVSFEwQUJxTFFBQU9nQUFEQUlMSUFNZ0F5Z0NBQ0lBUVFGcU5nSUFJQUFnQlVIUTBBQnFMUUFBT2dBQUlBUWdCQ2dDQUVFQmFqWUNBRUVBSVFBTUFRdEJBQ0VBSUFSQkFEWUNBQXNnQ2tFUWFpUUFJQUFMQ2dBZ0FFR2NpUUVRWlF1REFRSURmd0YrQWtBZ0FFS0FnSUNBRUZRRVFDQUFJUVVNQVFzRFFDQUJRUUZySWdFZ0FDQUFRZ3FBSWdWQ0NuNTlwMEV3Y2pvQUFDQUFRdi8vLy8rZkFWWWhBaUFGSVFBZ0FnMEFDd3NnQmFjaUFnUkFBMEFnQVVFQmF5SUJJQUlnQWtFS2JpSURRUXBzYTBFd2Nqb0FBQ0FDUVFsTElRUWdBeUVDSUFRTkFBc0xJQUVMWXdJQmZ3RitJd0JCRUdzaUFpUUFJQUFDZmlBQlJRUkFRZ0FNQVFzZ0FpQUJyVUlBSUFGbklnRkIwUUJxRUM4Z0Fpa0RDRUtBZ0lDQWdJREFBSVZCbm9BQklBRnJyVUl3aG53aEF5QUNLUU1BQ3pjREFDQUFJQU0zQXdnZ0FrRVFhaVFBQ3lRQUlBQkJDMDhFZnlBQVFSQnFRWEJ4SWdBZ0FFRUJheUlBSUFCQkMwWWJCVUVLQ3dzcEFDQUFJQUZCQ0hSQmdJRDhCM0VnQVVFWWRISWdBVUVJZGtHQS9nTnhJQUZCR0haeWNqWUFBQXNwQUNBQUtBQUFJZ0JCR0hRZ0FFRUlkRUdBZ1B3SGNYSWdBRUVJZGtHQS9nTnhJQUJCR0haeWNnc1BBQ0FBSUFBb0FnQkJCR28yQWdBTEJ3QWdBRUVFYWdzUEFDQUFJQUFvQWdCQkFXbzJBZ0FMTndFQ2Z5TUFRUkJySWdNa0FDQURRUWhxSWdRZ0FSQVBJQUlnQkJDTEFTSUJFRGcyQWdBZ0FDQUJFRGNnQkJBT0lBTkJFR29rQUFzMUFRSi9Jd0JCRUdzaUFpUUFJQUpCQ0dvaUF5QUFFQThnQXhBN1FkRFFBRUhxMEFBZ0FSQmtJQU1RRGlBQ1FSQnFKQUFnQVFzM0FRSi9Jd0JCRUdzaUF5UUFJQU5CQ0dvaUJDQUJFQThnQWlBRUVJNEJJZ0VRT0RvQUFDQUFJQUVRTnlBRUVBNGdBMEVRYWlRQUN4Y0FJQUFnQXpZQ0VDQUFJQUkyQWd3Z0FDQUJOZ0lJQ3dvQUlBQkJHSFJCR0hVTFFnQWdBQ0FBS0FJQUlBRW9BZ0J6TmdJQUlBQWdBQ2dDQkNBQktBSUVjellDQkNBQUlBQW9BZ2dnQVNnQ0NITTJBZ2dnQUNBQUtBSU1JQUVvQWd4ek5nSU1DNXdJQVF0L0lBQkZCRUFnQVJBWkR3c2dBVUZBVHdSQVFjU0JBVUV3TmdJQVFRQVBDd0ovUVJBZ0FVRUxha0Y0Y1NBQlFRdEpHeUVHSUFCQkNHc2lCU2dDQkNJSlFYaHhJUVFDUUNBSlFRTnhSUVJBUVFBZ0JrR0FBa2tOQWhvZ0JrRUVhaUFFVFFSQUlBVWhBaUFFSUFaclFhaUZBU2dDQUVFQmRFME5BZ3RCQUF3Q0N5QUVJQVZxSVFjQ1FDQUVJQVpQQkVBZ0JDQUdheUlEUVJCSkRRRWdCU0FKUVFGeElBWnlRUUp5TmdJRUlBVWdCbW9pQWlBRFFRTnlOZ0lFSUFjZ0J5Z0NCRUVCY2pZQ0JDQUNJQU1RN0FFTUFRc2dCMEhnZ1FFb0FnQkdCRUJCMUlFQktBSUFJQVJxSWdRZ0JrME5BaUFGSUFsQkFYRWdCbkpCQW5JMkFnUWdCU0FHYWlJRElBUWdCbXNpQWtFQmNqWUNCRUhVZ1FFZ0FqWUNBRUhnZ1FFZ0F6WUNBQXdCQ3lBSFFkeUJBU2dDQUVZRVFFSFFnUUVvQWdBZ0JHb2lBeUFHU1EwQ0FrQWdBeUFHYXlJQ1FSQlBCRUFnQlNBSlFRRnhJQVp5UVFKeU5nSUVJQVVnQm1vaUJDQUNRUUZ5TmdJRUlBTWdCV29pQXlBQ05nSUFJQU1nQXlnQ0JFRitjVFlDQkF3QkN5QUZJQWxCQVhFZ0EzSkJBbkkyQWdRZ0F5QUZhaUlDSUFJb0FnUkJBWEkyQWdSQkFDRUNRUUFoQkF0QjNJRUJJQVEyQWdCQjBJRUJJQUkyQWdBTUFRc2dCeWdDQkNJRFFRSnhEUUVnQTBGNGNTQUVhaUlLSUFaSkRRRWdDaUFHYXlFTUFrQWdBMEgvQVUwRVFDQUhLQUlJSWdRZ0EwRURkaUlDUVFOMFFmQ0JBV3BHR2lBRUlBY29BZ3dpQTBZRVFFSElnUUZCeUlFQktBSUFRWDRnQW5keE5nSUFEQUlMSUFRZ0F6WUNEQ0FESUFRMkFnZ01BUXNnQnlnQ0dDRUxBa0FnQnlBSEtBSU1JZ2hIQkVBZ0J5Z0NDQ0lDUWRpQkFTZ0NBRWthSUFJZ0NEWUNEQ0FJSUFJMkFnZ01BUXNDUUNBSFFSUnFJZ1FvQWdBaUFnMEFJQWRCRUdvaUJDZ0NBQ0lDRFFCQkFDRUlEQUVMQTBBZ0JDRURJQUlpQ0VFVWFpSUVLQUlBSWdJTkFDQUlRUkJxSVFRZ0NDZ0NFQ0lDRFFBTElBTkJBRFlDQUFzZ0MwVU5BQUpBSUFjZ0J5Z0NIQ0lEUVFKMFFmaURBV29pQWlnQ0FFWUVRQ0FDSUFnMkFnQWdDQTBCUWN5QkFVSE1nUUVvQWdCQmZpQURkM0UyQWdBTUFnc2dDMEVRUVJRZ0N5Z0NFQ0FIUmh0cUlBZzJBZ0FnQ0VVTkFRc2dDQ0FMTmdJWUlBY29BaEFpQWdSQUlBZ2dBallDRUNBQ0lBZzJBaGdMSUFjb0FoUWlBa1VOQUNBSUlBSTJBaFFnQWlBSU5nSVlDeUFNUVE5TkJFQWdCU0FKUVFGeElBcHlRUUp5TmdJRUlBVWdDbW9pQWlBQ0tBSUVRUUZ5TmdJRURBRUxJQVVnQ1VFQmNTQUdja0VDY2pZQ0JDQUZJQVpxSWdNZ0RFRURjallDQkNBRklBcHFJZ0lnQWlnQ0JFRUJjallDQkNBRElBd1E3QUVMSUFVaEFnc2dBZ3NpQWdSQUlBSkJDR29QQ3lBQkVCa2lCVVVFUUVFQUR3c2dCU0FBUVh4QmVDQUFRUVJyS0FJQUlnSkJBM0ViSUFKQmVIRnFJZ0lnQVNBQklBSkxHeEJDR2lBQUVCQWdCUXQvQVFOL0lBQWhBUUpBSUFCQkEzRUVRQU5BSUFFdEFBQkZEUUlnQVVFQmFpSUJRUU54RFFBTEN3TkFJQUVpQWtFRWFpRUJJQUlvQWdBaUEwRi9jeUFEUVlHQ2hBaHJjVUdBZ1lLRWVIRkZEUUFMSUFOQi93RnhSUVJBSUFJZ0FHc1BDd05BSUFJdEFBRWhBeUFDUVFGcUlnRWhBaUFERFFBTEN5QUJJQUJyQzMwQkEzOUJHQ0VDQWtBQ1FDQUFJQUZ5UVFOeERRQURRQ0FBS0FJQUlBRW9BZ0JIRFFFZ0FVRUVhaUVCSUFCQkJHb2hBQ0FDUVFScklnSkJBMHNOQUFzZ0FrVU5BUXNEUUNBQUxRQUFJZ01nQVMwQUFDSUVSZ1JBSUFGQkFXb2hBU0FBUVFGcUlRQWdBa0VCYXlJQ0RRRU1BZ3NMSUFNZ0JHc1BDMEVBQzBrQkFuOGdBQ2dDQkNJR1FRaDFJUVVnQmtFQmNRUkFJQUlvQWdBZ0JSREVBU0VGQ3lBQUtBSUFJZ0FnQVNBQ0lBVnFJQU5CQWlBR1FRSnhHeUFFSUFBb0FnQW9BaGdSQ2dBTHRnRUJBMzhqQUVFUWF5SURKQUFnQXlBQk9nQVBBa0FDUUFKQUFrQWdBQkExQkVBZ0FCQjlJUUVnQUNnQ0JDSUVJQUZCQVdzaUFrWU5BUXdEQzBFS0lRUkJDaUVDSUFBdEFBc2lBVUVLUncwQkN5QUFJQUpCQVNBQ0lBSVF5QUVnQkNFQklBQVFOUTBCQ3lBQUlRSWdBQ0FCUVFGcUVEb01BUXNnQUNnQ0FDRUNJQUFnQkVFQmFoQTVJQVFoQVFzZ0FTQUNhaUlBSUFOQkQyb1FOQ0FEUVFBNkFBNGdBRUVCYWlBRFFRNXFFRFFnQTBFUWFpUUFDeVFCQW44akFFRVFheUlDSkFBZ0FTQUFFSUlDSVFNZ0FrRVFhaVFBSUFFZ0FDQURHd3NkQUNBQVFRUnFFSkVDUVg5R0JFQWdBQ0FBS0FJQUtBSUlFUUVBQ3dza0FDQUFFUGdCSVFBZ0FSRDRBU0FBYXlJQkJFQWdBaUFBSUFFUTZ3RUxJQUVnQW1vTEVRQWdBQ0FCSUFFb0FnQW9BaWdSQXdBTHF5d0JFWDhnQUNnQzhBRWhFaUFBS0FJRUlBRW9BQVFpQkVFWWRDQUVRUWgwUVlDQS9BZHhjaUFFUVFoMlFZRCtBM0VnQkVFWWRuSnljeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFZZ0FDZ0NDQ0FCS0FBSUlnVkJHSFFnQlVFSWRFR0FnUHdIY1hJZ0JVRUlka0dBL2dOeElBVkJHSFp5Y25NaUJVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUlJQUFvQWd3Z0FTZ0FEQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSnpJZ05CL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQnlBRlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRa2dBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VLSUFBb0FnQWdBU2dBQUNJQlFSaDBJQUZCQ0hSQmdJRDhCM0Z5SUFGQkNIWkJnUDREY1NBQlFSaDJjbkp6SWdGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEN5QURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEaUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVE4Z0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVFJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRVNBQUtBSVVJQXNnQ2lBSklBUkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VKSUFBb0FoZ2dEaUFOSUF3Z0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUZRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUW9nQUNnQ0hDQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDeUFGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVF3Z0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU5JQUFvQWhBZ0J5QUlJQVlnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRWWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VJSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEJ5QUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NKQ0FHSUEwZ0RDQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1JCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBQUtBSW9JQTRnQnlBSUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VJSUFBb0Fpd2dFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFTUlBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hEU0FBS0FJZ0lBc2dDaUFKSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUFVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUpJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ2lBQlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRc2dCRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VPSUFGQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaER5QUVRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUkFnQlVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFUklBQW9BalFnQ1NBTklBd2dCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFrZ0FDZ0NPQ0FPSUFzZ0NpQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1ZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQUtBSThJQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQUNnQ01DQUhJQWdnQmlBQlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hCaUFEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFnZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUhJQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRGlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlROGdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VRSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEVTQUFLQUpFSUFZZ0RTQU1JQVJCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFR0lBQW9Ba2dnRGlBSElBZ2dCVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFnZ0FDZ0NUQ0FSSUJBZ0R5QURRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ05CL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQnlBRlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRd2dBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VOSUFBb0FrQWdDeUFLSUFrZ0FVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUJRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWtnQTBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFS0lBRkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDeUFFUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVE0Z0FVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRVBJQVJCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRUNBRlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlSRWdBQ2dDVkNBSklBMGdEQ0FFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdSQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaENTQUFLQUpZSUE0Z0N5QUtJQVZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQlVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFS0lBQW9BbHdnRVNBUUlBOGdBMEVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFzZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRU1JQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRFNBQUtBSlFJQWNnQ0NBR0lBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VHSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaENDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUWNnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQW1RZ0JpQU5JQXdnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRWWdBQ2dDYUNBT0lBY2dDQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENDQUFLQUpzSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFSElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0FDZ0NZQ0FMSUFvZ0NTQUJRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ0ZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ1NBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRb2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VMSUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FKMElBa2dEU0FNSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUpJQUFvQW5nZ0RpQUxJQW9nQlVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBQ2dDZkNBUklCQWdEeUFEUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdOQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEN5QUZRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBQW9BbkFnQnlBSUlBWWdBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlCUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFZZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUhJQUZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRGlBRVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlROGdBVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VRSUFSQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEVTQUZRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUk1nQUNnQ2hBRWdCaUFOSUF3Z0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUdRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQUFvQW9BQklBc2dDaUFKSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUNFRVdka0g4QjNGQmdBaHFLQUlBY3lBQUtBS0lBU0FQSUE0Z0J5QUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ2RCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFBb0Fvd0JJQk1nRVNBUUlBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDSE1nQUNnQ2tBRnpJUUVnQjBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NBR1FSWjJRZndIY1VHQUNHb29BZ0J6SUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBaEIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBaHpJQUFvQXBRQmN5RUVJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQjBFV2RrSDhCM0ZCZ0FocUtBSUFjeUFJUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJY3lBR1FmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUtZQVhNaEJRSi9JQWhCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjeUFHUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJY3lBSFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUtjQVhNaUF5QVNRUXRJRFFBYUlBUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDQ0FGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFjZ0EwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUpJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQXFRQklBc2dDaUFHSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJrRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUFLQUtnQVNBSklBY2dDQ0FCUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdoQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQUNnQ3FBRWdEaUFOSUF3Z0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUhRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUljeUFBS0FLc0FTQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBaHpJQUFvQXJBQmN5RUJJQWRCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQmtFV2RrSDhCM0ZCZ0FocUtBSUFjeUFEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJY3lBSVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUswQVhNaEJDQURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQWRCRm5aQi9BZHhRWUFJYWlnQ0FITWdDRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQmtIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0N1QUZ6SVFVZ0NFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQURRUloyUWZ3SGNVR0FDR29vQWdCeklBWkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWRCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0Fyd0JjeUlESUJKQkRVZ05BQm9nQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hCeUFEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0N4QUVnQ3lBS0lBWWdCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlHUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFBb0FzQUJJQWtnQnlBSUlBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlDRUVXZGtIOEIzRkJnQWhxS0FJQWN5QUFLQUxJQVNBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdkQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBQW9Bc3dCSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0MwQUZ6SVFFZ0IwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUdRUloyUWZ3SGNVR0FDR29vQWdCeklBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWhCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0F0UUJjeUVFSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0IwRVdka0g4QjNGQmdBaHFLQUlBY3lBSVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSWN5QUdRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FMWUFYTWhCU0FJUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQmtFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDM0FGekN5RURJQUlnQUNBU1FRUjBhaUlBS0FJQUlBTkIvd0Z4UVFKMFFZQUlhaTBBQVNBQlFSWjJRZndIY1VHQUNHb29BZ0JCQ0hSQmdJQ0FlSEVnQkVFT2RrSDhCM0ZCZ0FocUxRQUNRUkIwY2lBRlFRWjJRZndIY1VHQUNHb3RBQUZCQ0hSeWNuTWlFa0VZZENBU1FRaDBRWUNBL0FkeGNpQVNRUWgyUVlEK0EzRWdFa0VZZG5KeU5nQUFJQUlnQUNnQ0JDQUJRZjhCY1VFQ2RFR0FDR290QUFFZ0JFRVdka0g4QjNGQmdBaHFLQUlBUVFoMFFZQ0FnSGh4SUFWQkRuWkIvQWR4UVlBSWFpMEFBa0VRZEhJZ0EwRUdka0g4QjNGQmdBaHFMUUFCUVFoMGNuSnpJaEpCR0hRZ0VrRUlkRUdBZ1B3SGNYSWdFa0VJZGtHQS9nTnhJQkpCR0haeWNqWUFCQ0FDSUFBb0FnZ2dCRUgvQVhGQkFuUkJnQWhxTFFBQklBVkJGblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBRFFRNTJRZndIY1VHQUNHb3RBQUpCRUhSeUlBRkJCblpCL0FkeFFZQUlhaTBBQVVFSWRISnljeUlTUVJoMElCSkJDSFJCZ0lEOEIzRnlJQkpCQ0haQmdQNERjU0FTUVJoMmNuSTJBQWdnQWlBQUtBSU1JQVZCL3dGeFFRSjBRWUFJYWkwQUFTQURRUloyUWZ3SGNVR0FDR29vQWdCQkNIUkJnSUNBZUhFZ0FVRU9ka0g4QjNGQmdBaHFMUUFDUVJCMGNpQUVRUVoyUWZ3SGNVR0FDR290QUFGQkNIUnljbk1pQUVFWWRDQUFRUWgwUVlDQS9BZHhjaUFBUVFoMlFZRCtBM0VnQUVFWWRuSnlOZ0FNQ3hRQkFYOGdBQ2dDQUNFQklBQkJBRFlDQUNBQkN3NEFJQUFnQVNnQ0FEWUNBQ0FBQ3djQUlBQVFSeG9MQ0FCQi8vLy8vd2NMQlFCQi93QUxLd0FDUUNBQUlBRkdEUUFEUUNBQUlBRkJCR3NpQVU4TkFTQUFJQUVRZFNBQVFRUnFJUUFNQUFzQUN3dlVBd0VJZnlNQVFSQnJJZ29rQUNBR0VEc2hDeUFLSUFZUWl3RWlCaEEzQWtBZ0NoQkpCRUFnQ3lBQUlBSWdBeEJrSUFVZ0F5QUNJQUJyUVFKMGFpSUdOZ0lBREFFTElBVWdBellDQUFKQUFrQWdBQ0lJTFFBQUlnZEJLMnNPQXdBQkFBRUxJQXNnQjBFWWRFRVlkUkE5SVFnZ0JTQUZLQUlBSWdkQkJHbzJBZ0FnQnlBSU5nSUFJQUJCQVdvaENBc0NRQ0FDSUFoclFRSklEUUFnQ0MwQUFFRXdSdzBBSUFndEFBRkJJSEpCK0FCSERRQWdDMEV3RUQwaEJ5QUZJQVVvQWdBaUNVRUVhallDQUNBSklBYzJBZ0FnQ3lBSUxBQUJFRDBoQnlBRklBVW9BZ0FpQ1VFRWFqWUNBQ0FKSUFjMkFnQWdDRUVDYWlFSUN5QUlJQUlRZVVFQUlRa2dCaEE0SVF4QkFDRUhJQWdoQmdOL0lBSWdCazBFZnlBRElBZ2dBR3RCQW5ScUlBVW9BZ0FRckFFZ0JTZ0NBQVVDUUNBS0lBY1FDeTBBQUVVTkFDQUpJQW9nQnhBTExBQUFSdzBBSUFVZ0JTZ0NBQ0lKUVFScU5nSUFJQWtnRERZQ0FDQUhJQWNnQ2hBSlFRRnJTV29oQjBFQUlRa0xJQXNnQml3QUFCQTlJUTBnQlNBRktBSUFJZzVCQkdvMkFnQWdEaUFOTmdJQUlBWkJBV29oQmlBSlFRRnFJUWtNQVFzTElRWUxJQVFnQmlBRElBRWdBR3RCQW5ScUlBRWdBa1liTmdJQUlBb1FDaG9nQ2tFUWFpUUFDOUFCQVFKL0lBSkJnQkJ4QkVBZ0FFRXJPZ0FBSUFCQkFXb2hBQXNnQWtHQUNIRUVRQ0FBUVNNNkFBQWdBRUVCYWlFQUN5QUNRWVFDY1NJRFFZUUNSd1JBSUFCQnJ0UUFPd0FBSUFCQkFtb2hBQXNnQWtHQWdBRnhJUUlEUUNBQkxRQUFJZ1FFUUNBQUlBUTZBQUFnQUVFQmFpRUFJQUZCQVdvaEFRd0JDd3NnQUFKL0FrQWdBMEdBQWtjRVFDQURRUVJIRFFGQnhnQkI1Z0FnQWhzTUFndEJ4UUJCNVFBZ0Foc01BUXRCd1FCQjRRQWdBaHNnQTBHRUFrWU5BQnBCeHdCQjV3QWdBaHNMT2dBQUlBTkJoQUpIQzhvREFRaC9Jd0JCRUdzaUNpUUFJQVlRTWlFTElBb2dCaENPQVNJR0VEY0NRQ0FLRUVrRVFDQUxJQUFnQWlBREVIQWdCU0FESUFJZ0FHdHFJZ1kyQWdBTUFRc2dCU0FETmdJQUFrQUNRQ0FBSWdndEFBQWlCMEVyYXc0REFBRUFBUXNnQ3lBSFFSaDBRUmgxRUNraENDQUZJQVVvQWdBaUIwRUJhallDQUNBSElBZzZBQUFnQUVFQmFpRUlDd0pBSUFJZ0NHdEJBa2dOQUNBSUxRQUFRVEJIRFFBZ0NDMEFBVUVnY2tINEFFY05BQ0FMUVRBUUtTRUhJQVVnQlNnQ0FDSUpRUUZxTmdJQUlBa2dCem9BQUNBTElBZ3NBQUVRS1NFSElBVWdCU2dDQUNJSlFRRnFOZ0lBSUFrZ0J6b0FBQ0FJUVFKcUlRZ0xJQWdnQWhCNVFRQWhDU0FHRURnaERFRUFJUWNnQ0NFR0EzOGdBaUFHVFFSL0lBTWdDQ0FBYTJvZ0JTZ0NBQkI1SUFVb0FnQUZBa0FnQ2lBSEVBc3RBQUJGRFFBZ0NTQUtJQWNRQ3l3QUFFY05BQ0FGSUFVb0FnQWlDVUVCYWpZQ0FDQUpJQXc2QUFBZ0J5QUhJQW9RQ1VFQmEwbHFJUWRCQUNFSkN5QUxJQVlzQUFBUUtTRU5JQVVnQlNnQ0FDSU9RUUZxTmdJQUlBNGdEVG9BQUNBR1FRRnFJUVlnQ1VFQmFpRUpEQUVMQ3lFR0N5QUVJQVlnQXlBQklBQnJhaUFCSUFKR0d6WUNBQ0FLRUFvYUlBcEJFR29rQUFzREFBRUxEQUFnQUJBTklBRkJBblJxQzZvRUFRdC9Jd0JCZ0FGcklnb2tBQ0FLSUFFMkFuZ2dBaUFERU1zQ0lRZ2dDa0UxTmdJUUlBcEJDR3BCQUNBS1FSQnFJZ2tRSGlFUUFrQWdDRUhsQUU4RVFDQUlFQmtpQ1VVTkFTQVFJQWtRSndzZ0NTRUhJQUloQVFOQUlBRWdBMFlFUUFOQUFrQWdBQ0FLUWZnQWFoQTJRUUFnQ0J0RkJFQWdBQ0FLUWZnQWFoQW9CRUFnQlNBRktBSUFRUUp5TmdJQUN3d0JDeUFBRUNFaERpQUdSUVJBSUFRZ0RoQXBJUTRMSUF4QkFXb2hEVUVBSVE4Z0NTRUhJQUloQVFOQUlBRWdBMFlFUUNBTklRd2dEMFVOQXlBQUVDVWFJQWtoQnlBQ0lRRWdDQ0FMYWtFQ1NRMERBMEFnQVNBRFJnUkFEQVVGQWtBZ0J5MEFBRUVDUncwQUlBRVFDU0FOUmcwQUlBZEJBRG9BQUNBTFFRRnJJUXNMSUFkQkFXb2hCeUFCUVF4cUlRRU1BUXNBQ3dBRkFrQWdCeTBBQUVFQlJ3MEFJQUVnREJDeEFTZ0NBQ0VSQWtBZ0JnUi9JQkVGSUFRZ0VSQXBDeUFPUmdSQVFRRWhEeUFCRUFrZ0RVY05BaUFIUVFJNkFBQWdDMEVCYWlFTERBRUxJQWRCQURvQUFBc2dDRUVCYXlFSUN5QUhRUUZxSVFjZ0FVRU1haUVCREFFTEFBc0FDd3NDUUFKQUEwQWdBaUFEUmcwQklBa3RBQUJCQWtjRVFDQUpRUUZxSVFrZ0FrRU1haUVDREFFTEN5QUNJUU1NQVFzZ0JTQUZLQUlBUVFSeU5nSUFDeUFRRUIwZ0NrR0FBV29rQUNBRER3VUNRQ0FCRUVsRkJFQWdCMEVCT2dBQURBRUxJQWRCQWpvQUFDQUxRUUZxSVFzZ0NFRUJheUVJQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUN4QVhBQXNSQUNBQUlBRWdBQ2dDQUNnQ0RCRUNBQXV6QkFFTGZ5TUFRWUFCYXlJS0pBQWdDaUFCTmdKNElBSWdBeERMQWlFSUlBcEJOVFlDRUNBS1FRaHFRUUFnQ2tFUWFpSUpFQjRoRUFKQUlBaEI1UUJQQkVBZ0NCQVpJZ2xGRFFFZ0VDQUpFQ2NMSUFraEJ5QUNJUUVEUUNBQklBTkdCRUFEUUFKQUlBQWdDa0g0QUdvUU1VRUFJQWdiUlFSQUlBQWdDa0g0QUdvUUpnUkFJQVVnQlNnQ0FFRUNjallDQUFzTUFRc2dBQkFmSVE0Z0JrVUVRQ0FFSUE0UXN3RWhEZ3NnREVFQmFpRU5RUUFoRHlBSklRY2dBaUVCQTBBZ0FTQURSZ1JBSUEwaERDQVBSUTBESUFBUUlob2dDU0VISUFJaEFTQUlJQXRxUVFKSkRRTURRQ0FCSUFOR0JFQU1CUVVDUUNBSExRQUFRUUpIRFFBZ0FSQUpJQTFHRFFBZ0IwRUFPZ0FBSUF0QkFXc2hDd3NnQjBFQmFpRUhJQUZCREdvaEFRd0JDd0FMQUFVQ1FDQUhMUUFBUVFGSERRQWdBU0FNRUFzc0FBQWhFUUpBSUE1Qi93RnhJQVlFZnlBUkJTQUVJQkVRc3dFTFFmOEJjVVlFUUVFQklROGdBUkFKSUExSERRSWdCMEVDT2dBQUlBdEJBV29oQ3d3QkN5QUhRUUE2QUFBTElBaEJBV3NoQ0FzZ0IwRUJhaUVISUFGQkRHb2hBUXdCQ3dBTEFBc0xBa0FDUUFOQUlBSWdBMFlOQVNBSkxRQUFRUUpIQkVBZ0NVRUJhaUVKSUFKQkRHb2hBZ3dCQ3dzZ0FpRUREQUVMSUFVZ0JTZ0NBRUVFY2pZQ0FBc2dFQkFkSUFwQmdBRnFKQUFnQXc4RkFrQWdBUkJKUlFSQUlBZEJBVG9BQUF3QkN5QUhRUUk2QUFBZ0MwRUJhaUVMSUFoQkFXc2hDQXNnQjBFQmFpRUhJQUZCREdvaEFRd0JDd0FMQUFzUUZ3QUw1UU1CQTM4akFFR2dBV3NpQkNRQVFYOGhCU0FFSUFGQkFXdEJBQ0FCR3pZQ2xBRWdCQ0FBSUFSQm5nRnFJQUViSWdZMkFwQUJJQVJCQUVHUUFSQkdJZ0JCZnpZQ1RDQUFRVFEyQWlRZ0FFRi9OZ0pRSUFBZ0FFR2ZBV28yQWl3Z0FDQUFRWkFCYWpZQ1ZBSkFJQUZCQUVnRVFFSEVnUUZCUFRZQ0FBd0JDeUFHUVFBNkFBQkJBQ0VFSXdCQjBBRnJJZ0VrQUNBQklBTTJBc3dCSUFGQm9BRnFJZ05CQUVFb0VFWWFJQUVnQVNnQ3pBRTJBc2dCQWtCQkFDQUNJQUZCeUFGcUlBRkIwQUJxSUFNUTJnSkJBRWdFUUVGL0lRSU1BUXNnQUNnQ1RFRUFUaUVGSUFBb0FnQWhBeUFBS0FKSVFRQk1CRUFnQUNBRFFWOXhOZ0lBQ3dKL0FrQUNRQ0FBS0FJd1JRUkFJQUJCMEFBMkFqQWdBRUVBTmdJY0lBQkNBRGNERUNBQUtBSXNJUVFnQUNBQk5nSXNEQUVMSUFBb0FoQU5BUXRCZnlBQUVPZ0JEUUVhQ3lBQUlBSWdBVUhJQVdvZ0FVSFFBR29nQVVHZ0FXb1EyZ0lMSVFJZ0JBUkFJQUJCQUVFQUlBQW9BaVFSQkFBYUlBQkJBRFlDTUNBQUlBUTJBaXdnQUVFQU5nSWNJQUJCQURZQ0VDQUFLQUlVSVFRZ0FFRUFOZ0lVSUFKQmZ5QUVHeUVDQ3lBQUlBQW9BZ0FpQkNBRFFTQnhjallDQUVGL0lBSWdCRUVnY1JzaEFpQUZSUTBBQ3lBQlFkQUJhaVFBSUFJaEJRc2dBRUdnQVdva0FDQUZDMG9CQW44Q1FDQUFMUUFBSWdKRklBSWdBUzBBQUNJRFIzSU5BQU5BSUFFdEFBRWhBeUFBTFFBQklnSkZEUUVnQVVFQmFpRUJJQUJCQVdvaEFDQUNJQU5HRFFBTEN5QUNJQU5yQytRQ0FRWi9Jd0JCRUdzaUJ5UUFJQU5CNElZQklBTWJJZ1VvQWdBaEF3SkFBa0FDUUNBQlJRUkFJQU1OQVF3REMwRitJUVFnQWtVTkFpQUFJQWRCREdvZ0FCc2hCZ0pBSUFNRVFDQUNJUUFNQVFzZ0FTMEFBQ0lBUVJoMFFSaDFJZ05CQUU0RVFDQUdJQUEyQWdBZ0EwRUFSeUVFREFRTElBRXNBQUFoQUVISWhnRW9BZ0FvQWdCRkJFQWdCaUFBUWYrL0EzRTJBZ0JCQVNFRURBUUxJQUJCL3dGeFFjSUJheUlBUVRKTERRRWdBRUVDZEVHd0syb29BZ0FoQXlBQ1FRRnJJZ0JGRFFJZ0FVRUJhaUVCQ3lBQkxRQUFJZ2hCQTNZaUNVRVFheUFEUVJwMUlBbHFja0VIU3cwQUEwQWdBRUVCYXlFQUlBaEJnQUZySUFOQkJuUnlJZ05CQUU0RVFDQUZRUUEyQWdBZ0JpQUROZ0lBSUFJZ0FHc2hCQXdFQ3lBQVJRMENJQUZCQVdvaUFTMEFBQ0lJUWNBQmNVR0FBVVlOQUFzTElBVkJBRFlDQUVIRWdRRkJHVFlDQUVGL0lRUU1BUXNnQlNBRE5nSUFDeUFIUVJCcUpBQWdCQXNNQUNBQVFReHFFSDRhSUFBTENBQWdBQ2dDRUVVTERBQWdBRUVJYWhCK0dpQUFDeWdCQW44akFFRVFheUlDSkFBZ0FTZ0NBQ0FBS0FJQVNDRURJQUpCRUdva0FDQUJJQUFnQXhzTEVBQWdBQ0FCTndNSUlBQkNBRGNEQUFzVEFDQUFRYXdmTmdJQUlBQkJCR29RRGlBQUN3UUFRUUVMcmdFQkJIOGpBRUVRYXlJRkpBQWdBU0VFSUFKQkVFOEVRQ0FDUVFSMklRY0RRQ0FESUFRUW5BRWdBeUFBSUFVUXV3SWdBeUFGS1FNSU53QUlJQU1nQlNrREFEY0FBQ0FFUVJCcUlRUWdCa0VCYWlJR0lBZEhEUUFMQ3lBRUlBRWdBbW9pQVVrRVFDQUZJQVFnQVNBRWF5SUNFRUlpQVNBQ2FrRUFRUkFnQW1zUVJob2dBeUFCRUp3QklBTWdBQ0FCRUxzQ0lBTWdBU2tEQ0RjQUNDQURJQUVwQXdBM0FBQUxJQVZCRUdva0FBc3JBUUYvSUFCQjdQOEFOZ0lBQWtBZ0FDZ0NCRUVNYXlJQlFRaHFFSkVDUVFCT0RRQWdBUkFRQ3lBQUMwc0JBbjhnQUNnQ0JDSUhRUWgxSVFZZ0IwRUJjUVJBSUFNb0FnQWdCaERFQVNFR0N5QUFLQUlBSWdBZ0FTQUNJQU1nQm1vZ0JFRUNJQWRCQW5FYklBVWdBQ2dDQUNnQ0ZCRUpBQXNnQUFKQUlBQW9BZ1FnQVVjTkFDQUFLQUljUVFGR0RRQWdBQ0FDTmdJY0N3dWFBUUFnQUVFQk9nQTFBa0FnQUNnQ0JDQUNSdzBBSUFCQkFUb0FOQUpBSUFBb0FoQWlBa1VFUUNBQVFRRTJBaVFnQUNBRE5nSVlJQUFnQVRZQ0VDQUFLQUl3UVFGSERRSWdBMEVCUmcwQkRBSUxJQUVnQWtZRVFDQUFLQUlZSWdKQkFrWUVRQ0FBSUFNMkFoZ2dBeUVDQ3lBQUtBSXdRUUZIRFFJZ0FrRUJSZzBCREFJTElBQWdBQ2dDSkVFQmFqWUNKQXNnQUVFQk9nQTJDd3NLQUNBQUlBRnFLQUlBQzEwQkFYOGdBQ2dDRUNJRFJRUkFJQUJCQVRZQ0pDQUFJQUkyQWhnZ0FDQUJOZ0lRRHdzQ1FDQUJJQU5HQkVBZ0FDZ0NHRUVDUncwQklBQWdBallDR0E4TElBQkJBVG9BTmlBQVFRSTJBaGdnQUNBQUtBSWtRUUZxTmdJa0N3dTVBUUVEZnlNQVFSQnJJZ01rQUNBRElBRTJBZ3dDUUFKQUFrQUNRQ0FBRURVRVFDQUFFSDBoQVNBQUtBSUVJZ1FnQVVFQmF5SUNSZzBCREFNTFFRRWhCRUVCSVFJZ0FDMEFDeUlCUVFGSERRRUxJQUFnQWtFQklBSWdBaER5QVNBRUlRRWdBQkExRFFFTElBQWhBaUFBSUFGQkFXb1FPZ3dCQ3lBQUtBSUFJUUlnQUNBRVFRRnFFRGtnQkNFQkN5QUNJQUZCQW5ScUlnQWdBMEVNYWhBeklBTkJBRFlDQ0NBQVFRUnFJQU5CQ0dvUU15QURRUkJxSkFBTEdnQWdBQ0FCSUFFb0FnQkJER3NvQWdCcUtBSVlOZ0lBSUFBTHJ3RUJBMzhqQUVFUWF5SUZKQUFnQWtGdklnWWdBV3ROQkVBZ0FCQU5JUWNDZnlBQklBWkJBWFpCRUd0SkJFQWdCU0FCUVFGME5nSUlJQVVnQVNBQ2FqWUNEQ0FGUVF4cUlBVkJDR29RZGlnQ0FCQ1JBUXdCQ3lBR1FRRnJDMEVCYWlJR0VHQWhBaUFFQkVBZ0FpQUhJQVFRVlFzZ0F5QUVheUlEQkVBZ0FpQUVhaUFFSUFkcUlBTVFWUXNnQVVFS1J3UkFJQWNRRUFzZ0FDQUNFRTBnQUNBR0VFd2dCVUVRYWlRQUR3c1FGd0FMRndBZ0FDZ0NDQkFXUndSQUlBQW9BZ2dRMHdJTElBQUxBd0FCQ3pnQkFYOGpBRUVRYXlJREpBQWdBeUFDTmdJTUlBTkJDR29nQTBFTWFoQlNJUUlnQUNBQkVOb0JJUUFnQWhCUklBTkJFR29rQUNBQUN3c0FJQVFnQWpZQ0FFRURDdzhBSUFBZ0FDZ0NCRUVCYWpZQ0JBc1pBUUYvUVFFaEFTQUFFRFVFZnlBQUVIMUJBV3NGSUFFTEN3a0FJQUJCQURZQ0FBdVRBUUVFZnlNQVFSQnJJZ01rQUFKQUlBRVFOVVVFUUNBQUlBRW9BZ2cyQWdnZ0FDQUJLUUlBTndJQURBRUxJQUVvQWdBaEJBSkFBa0FDUUNBQktBSUVJZ0pCQ2swRVFDQUFJUUVnQUNBQ0VEb01BUXNnQWtGdlN3MEJJQUFnQWhDUkFVRUJhaUlGRUdBaUFSQk5JQUFnQlJCTUlBQWdBaEE1Q3lBQklBUWdBa0VCYWhCVkRBRUxFQmNBQ3dzZ0EwRVFhaVFBQ3hvQUlBQkJwQ0UyQWdBZ0FFRWdhaEFLR2lBQUVMMEJHaUFBQ3pFQUlBSW9BZ0FoQWdOQUFrQWdBQ0FCUndSL0lBQW9BZ0FnQWtjTkFTQUFCU0FCQ3c4TElBQkJCR29oQUF3QUN3QUwrUU1CQVg4akFFRVFheUlNSkFBZ0RDQUFOZ0lNQWtBQ1FDQUFJQVZHQkVBZ0FTMEFBRVVOQVVFQUlRQWdBVUVBT2dBQUlBUWdCQ2dDQUNJQlFRRnFOZ0lBSUFGQkxqb0FBQ0FIRUFsRkRRSWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQWlBSklBRkJCR28yQWdBZ0FTQUNOZ0lBREFJTEFrQWdBQ0FHUncwQUlBY1FDVVVOQUNBQkxRQUFSUTBCUVFBaEFDQUpLQUlBSWdFZ0NHdEJud0ZLRFFJZ0NpZ0NBQ0VBSUFrZ0FVRUVhallDQUNBQklBQTJBZ0JCQUNFQUlBcEJBRFlDQUF3Q0MwRi9JUUFnQ3lBTFFZQUJhaUFNUVF4cUVOSUJJQXRySWdWQi9BQktEUUVnQlVFQ2RVSFEwQUJxTFFBQUlRWUNRQUpBSUFWQmUzRWlBRUhZQUVjRVFDQUFRZUFBUncwQklBTWdCQ2dDQUNJQlJ3UkFRWDhoQUNBQlFRRnJMUUFBUWQ4QWNTQUNMUUFBUWY4QWNVY05CUXNnQkNBQlFRRnFOZ0lBSUFFZ0Jqb0FBRUVBSVFBTUJBc2dBa0hRQURvQUFBd0JDeUFDTEFBQUlnQWdCa0hmQUhGSERRQWdBaUFBUVlBQmNqb0FBQ0FCTFFBQVJRMEFJQUZCQURvQUFDQUhFQWxGRFFBZ0NTZ0NBQ0lBSUFoclFaOEJTZzBBSUFvb0FnQWhBU0FKSUFCQkJHbzJBZ0FnQUNBQk5nSUFDeUFFSUFRb0FnQWlBRUVCYWpZQ0FDQUFJQVk2QUFCQkFDRUFJQVZCMUFCS0RRRWdDaUFLS0FJQVFRRnFOZ0lBREFFTFFYOGhBQXNnREVFUWFpUUFJQUFMVUFFQ2Z5TUFRUkJySWdZa0FDQUdRUWhxSWdVZ0FSQVBJQVVRTzBIUTBBQkI4TkFBSUFJUVpDQURJQVVRaXdFaUFSQklOZ0lBSUFRZ0FSQTROZ0lBSUFBZ0FSQTNJQVVRRGlBR1FSQnFKQUFMTVFBZ0FpMEFBQ0VDQTBBQ1FDQUFJQUZIQkg4Z0FDMEFBQ0FDUncwQklBQUZJQUVMRHdzZ0FFRUJhaUVBREFBTEFBdnRBd0VCZnlNQVFSQnJJZ3drQUNBTUlBQTZBQThDUUFKQUlBQWdCVVlFUUNBQkxRQUFSUTBCUVFBaEFDQUJRUUE2QUFBZ0JDQUVLQUlBSWdGQkFXbzJBZ0FnQVVFdU9nQUFJQWNRQ1VVTkFpQUpLQUlBSWdFZ0NHdEJud0ZLRFFJZ0NpZ0NBQ0VDSUFrZ0FVRUVhallDQUNBQklBSTJBZ0FNQWdzQ1FDQUFJQVpIRFFBZ0J4QUpSUTBBSUFFdEFBQkZEUUZCQUNFQUlBa29BZ0FpQVNBSWEwR2ZBVW9OQWlBS0tBSUFJUUFnQ1NBQlFRUnFOZ0lBSUFFZ0FEWUNBRUVBSVFBZ0NrRUFOZ0lBREFJTFFYOGhBQ0FMSUF0QklHb2dERUVQYWhEVkFTQUxheUlGUVI5S0RRRWdCVUhRMEFCcUxRQUFJUVlDUUFKQUFrQUNRQ0FGUVg1eFFSWnJEZ01CQWdBQ0N5QURJQVFvQWdBaUFVY0VRQ0FCUVFGckxRQUFRZDhBY1NBQ0xRQUFRZjhBY1VjTkJRc2dCQ0FCUVFGcU5nSUFJQUVnQmpvQUFFRUFJUUFNQkFzZ0FrSFFBRG9BQUF3QkN5QUNMQUFBSWdBZ0JrSGZBSEZIRFFBZ0FpQUFRWUFCY2pvQUFDQUJMUUFBUlEwQUlBRkJBRG9BQUNBSEVBbEZEUUFnQ1NnQ0FDSUFJQWhyUVo4QlNnMEFJQW9vQWdBaEFTQUpJQUJCQkdvMkFnQWdBQ0FCTmdJQUN5QUVJQVFvQWdBaUFFRUJhallDQUNBQUlBWTZBQUJCQUNFQUlBVkJGVW9OQVNBS0lBb29BZ0JCQVdvMkFnQU1BUXRCZnlFQUN5QU1RUkJxSkFBZ0FBdFFBUUovSXdCQkVHc2lCaVFBSUFaQkNHb2lCU0FCRUE4Z0JSQXlRZERRQUVIdzBBQWdBaEJ3SUFNZ0JSQ09BU0lCRUVnNkFBQWdCQ0FCRURnNkFBQWdBQ0FCRURjZ0JSQU9JQVpCRUdva0FBdCtBZ0ovQW40akFFR2dBV3NpQkNRQUlBUWdBVFlDUENBRUlBRTJBaFFnQkVGL05nSVlJQVJCRUdvaUJVSUFFRk1nQkNBRklBTkJBUkRqQWlBRUtRTUlJUVlnQkNrREFDRUhJQUlFUUNBQ0lBRWdCQ2dDRkNBRUtBS0lBV29nQkNnQ1BHdHFOZ0lBQ3lBQUlBYzNBd0FnQUNBR053TUlJQVJCb0FGcUpBQUxEUUFnQUNBQklBSkNmeERQQWd1SkFnQUNRQ0FBQkg4Z0FVSC9BRTBOQVFKQVFjaUdBU2dDQUNnQ0FFVUVRQ0FCUVlCL2NVR0F2d05HRFFNTUFRc2dBVUgvRDAwRVFDQUFJQUZCUDNGQmdBRnlPZ0FCSUFBZ0FVRUdka0hBQVhJNkFBQkJBZzhMSUFGQmdFQnhRWURBQTBjZ0FVR0FzQU5QY1VVRVFDQUFJQUZCUDNGQmdBRnlPZ0FDSUFBZ0FVRU1ka0hnQVhJNkFBQWdBQ0FCUVFaMlFUOXhRWUFCY2pvQUFVRUREd3NnQVVHQWdBUnJRZi8vUDAwRVFDQUFJQUZCUDNGQmdBRnlPZ0FESUFBZ0FVRVNka0h3QVhJNkFBQWdBQ0FCUVFaMlFUOXhRWUFCY2pvQUFpQUFJQUZCREhaQlAzRkJnQUZ5T2dBQlFRUVBDd3RCeElFQlFSazJBZ0JCZndWQkFRc1BDeUFBSUFFNkFBQkJBUXVUQXdFSmZ3Si9Ba0FnQUNJQ1FRTnhCRUFEUUNBQ0xRQUFJZ0ZGSUFGQlBVWnlEUUlnQWtFQmFpSUNRUU54RFFBTEN3SkFJQUlvQWdBaUFVRi9jeUFCUVlHQ2hBaHJjVUdBZ1lLRWVIRU5BQU5BSUFGQnZmcjA2UU56SWdGQmYzTWdBVUdCZ29RSWEzRkJnSUdDaEhoeERRRWdBaWdDQkNFQklBSkJCR29oQWlBQlFZR0NoQWhySUFGQmYzTnhRWUNCZ29SNGNVVU5BQXNMQTBBZ0FpSUJMUUFBSWdNRVFDQUJRUUZxSVFJZ0EwRTlSdzBCQ3dzZ0FRd0JDeUFDQ3lBQWF5SUZSUVJBUVFBUEN3SkFJQUFnQldvdEFBQU5BRUhraGdFb0FnQWlCRVVOQUNBRUtBSUFJZ0ZGRFFBRFFBSkFBbjhnQUNFQ1FRQWhCa0VBSUFVaUIwVU5BQm9DUUNBQ0xRQUFJZ05GRFFBRFFBSkFJQUV0QUFBaUNFVU5BQ0FIUVFGcklnZEZJQU1nQ0VkeURRQWdBVUVCYWlFQklBSXRBQUVoQXlBQ1FRRnFJUUlnQXcwQkRBSUxDeUFESVFZTElBWkIvd0Z4SUFFdEFBQnJDMFVFUUNBRUtBSUFJQVZxSWdJdEFBQkJQVVlOQVFzZ0JDZ0NCQ0VCSUFSQkJHb2hCQ0FCRFFFTUFnc0xJQUpCQVdvaENRc2dDUXZoQVFFQ2Z5QUNRUUJISVFNQ1FBSkFBa0FnQUVFRGNVVWdBa1Z5RFFBZ0FVSC9BWEVoQkFOQUlBQXRBQUFnQkVZTkFpQUNRUUZySWdKQkFFY2hBeUFBUVFGcUlnQkJBM0ZGRFFFZ0FnMEFDd3NnQTBVTkFRc0NRQ0FBTFFBQUlBRkIvd0Z4UmlBQ1FRUkpjZzBBSUFGQi93RnhRWUdDaEFoc0lRTURRQ0FBS0FJQUlBTnpJZ1JCZjNNZ0JFR0Jnb1FJYTNGQmdJR0NoSGh4RFFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN3c2dBa1VOQUNBQlFmOEJjU0VCQTBBZ0FTQUFMUUFBUmdSQUlBQVBDeUFBUVFGcUlRQWdBa0VCYXlJQ0RRQUxDMEVBQzljREFnSitBbjhqQUVFZ2F5SUVKQUFDUUNBQlF2Ly8vLy8vLy8vLy93Q0RJZ05DZ0lDQWdJQ0F3SUE4ZlNBRFFvQ0FnSUNBZ01EL3d3QjlWQVJBSUFGQ0JJWWdBRUk4aUlRaEF5QUFRdi8vLy8vLy8vLy9ENE1pQUVLQmdJQ0FnSUNBZ0FoYUJFQWdBMEtCZ0lDQWdJQ0FnTUFBZkNFQ0RBSUxJQU5DZ0lDQWdJQ0FnSUJBZlNFQ0lBQkNnSUNBZ0lDQWdJQUloVUlBVWcwQklBSWdBMElCZzN3aEFnd0JDeUFBVUNBRFFvQ0FnSUNBZ01ELy93QlVJQU5DZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQUZDQklZZ0FFSThpSVJDLy8vLy8vLy8vd09EUW9DQWdJQ0FnSUQ4L3dDRUlRSU1BUXRDZ0lDQWdJQ0FnUGovQUNFQ0lBTkMvLy8vLy8vL3YvL0RBRllOQUVJQUlRSWdBMEl3aUtjaUJVR1I5d0JKRFFBZ0JFRVFhaUFBSUFGQy8vLy8vLy8vUDROQ2dJQ0FnSUNBd0FDRUlnSWdCVUdCOXdCckVDOGdCQ0FBSUFKQmdmZ0FJQVZyRUh3Z0JDa0RDRUlFaGlBRUtRTUFJZ0JDUElpRUlRSWdCQ2tERUNBRUtRTVloRUlBVXEwZ0FFTC8vLy8vLy8vLy93K0RoQ0lBUW9HQWdJQ0FnSUNBQ0ZvRVFDQUNRZ0Y4SVFJTUFRc2dBRUtBZ0lDQWdJQ0FnQWlGUWdCU0RRQWdBa0lCZ3lBQ2ZDRUNDeUFFUVNCcUpBQWdBaUFCUW9DQWdJQ0FnSUNBZ0grRGhMOExSQUVCZnlNQVFSQnJJZ1VrQUNBRklBRWdBaUFESUFSQ2dJQ0FnSUNBZ0lDQWY0VVFQQ0FGS1FNQUlRRWdBQ0FGS1FNSU53TUlJQUFnQVRjREFDQUZRUkJxSkFBTHFRRUJBWHhFQUFBQUFBQUE4RDhoQVFKQUlBQkJnQWhPQkVCRUFBQUFBQUFBNEg4aEFTQUFRZjhQU0FSQUlBQkIvd2RySVFBTUFndEVBQUFBQUFBQThIOGhBU0FBUWYwWElBQkIvUmRJRzBIK0Qyc2hBQXdCQ3lBQVFZRjRTZzBBUkFBQUFBQUFBR0FESVFFZ0FFRzRjRW9FUUNBQVFja0hhaUVBREFFTFJBQUFBQUFBQUFBQUlRRWdBRUh3YUNBQVFmQm9TaHRCa2c5cUlRQUxJQUVnQUVIL0IycXRRalNHdjZJTHhBRUNBWDhDZmtGL0lRTUNRQ0FBUWdCU0lBRkMvLy8vLy8vLy8vLy9BSU1pQkVLQWdJQ0FnSURBLy84QVZpQUVRb0NBZ0lDQWdNRC8vd0JSR3cwQVFRQWdBa0wvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBQ0FFSUFXRWhGQUVRRUVBRHdzZ0FTQUNnMElBV1FSQVFRQWdBU0FDVXlBQklBSlJHdzBCSUFBZ0FTQUNoWVJDQUZJUEN5QUFRZ0JTSUFFZ0FsVWdBU0FDVVJzTkFDQUFJQUVnQW9XRVFnQlNJUU1MSUFNTGFRRUNmeUFBUWF3b05nSUFJQUFvQWlnaEFRTkFJQUVFUUVFQUlBQWdBVUVCYXlJQlFRSjBJZ0lnQUNnQ0pHb29BZ0FnQUNnQ0lDQUNhaWdDQUJFSEFBd0JDd3NnQUVFY2FoQU9JQUFvQWlBUUVDQUFLQUlrRUJBZ0FDZ0NNQkFRSUFBb0Fqd1FFQ0FBQ3drQUlBQVFqQUVRRUFzSkFDQUFFTGdCRUJBTERBQWdBRUVFYWhCK0dpQUFDLzh2QVJGL0l3QkJJR3NpRXlRQUFuOUI5QUVRR1NJSUJIOENRQ0FJSWdZZ0FDQUJRUU4wRUlRRElnQkJBRXdOQUNBQVFRSjBJUThEUUNBR0lCRkJBblFpQjJvaUFTZ0NBQ0VLSUFFZ0JpQVBRUUowSWhCcUlnRW9BZ0EyQWdBZ0FTQUtOZ0lBSUFZZ0IwRUVjbW9pQVNnQ0FDRUtJQUVnQmlBUVFRUnlhaUlCS0FJQU5nSUFJQUVnQ2pZQ0FDQUdJQWRCQ0hKcUlnRW9BZ0FoQ2lBQklBWWdFRUVJY21vaUFTZ0NBRFlDQUNBQklBbzJBZ0FnQmlBSFFReHlhaUlCS0FJQUlRb2dBU0FHSUJCQkRISnFJZ0VvQWdBMkFnQWdBU0FLTmdJQUlCRkJCR29pRVNBUFFRUnJJZzlJRFFBTFFRRWhFU0FBUVFGTURRQURRQ0FHUVJCcUlRWkJBQ0VQQTBBZ0JpQVBRUUowYWlJQklBRW9BZ0FpQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUVoyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQUZCRm5aQi9BZHhRWUFJYWlnQ0FFRUdka0g4QjNGQmdCQnFLQUlBY3lBQlFRWjJRZndIY1VHQUNHb29BZ0JCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFGQi93RnhRUUowUVlBSWFpZ0NBRUVHZGtIOEIzRkJnQkJxS0FJQVFSZ1FDSE0yQWdBZ0QwRUJhaUlQUVFSSERRQUxJQkZCQVdvaUVTQUFSdzBBQ3dzZ0FFRUFTQVJBSUFnUUVFRUFEQUlMSUFnZ0FEWUM4QUVnQ0FWQkFBc0xJZ0FFZnlBVElBSXBBQUEzQXhBZ0V5QUNLUUFJTndNWUlBUkJFRThFUUNBRVFRUjJJUlZCQUNFQkEwQWdFeUFES1FBQU53TUFJQk1nQXlrQUNEY0RDQ0FBS0FMd0FTRVVJQUFvQWd3Z0F5Z0FEQ0lDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSnpJZzlCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRWlBQUtBSUlJQU1vQUFnaUFrRVlkQ0FDUVFoMFFZQ0EvQWR4Y2lBQ1FRaDJRWUQrQTNFZ0FrRVlkbkp5Y3lJUlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRNGdBQ2dDQkNBREtBQUVJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNuTWlCMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VKSUFBb0FnQWdBeWdBQUNJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkp6SWd0QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVDQVBRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUW9nRVVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFR0lBZEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hDQ0FMUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFRZ0QwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUNJQkZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnRDBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFIUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBTFFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUljY3lJTVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlROGdBQ2dDR0NBQ0lBUWdDQ0FSUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWcxQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQUFLQUlVSUFZZ0NpQVFJQWRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQlVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBQW9BaEFnQ1NBT0lCSWdDMEVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlMUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJBZ0RFRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUtJQTFCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQmlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlRZ2dDMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VFSUF4Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEFpQU5RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQXhCRm5aQi9BZHhRWUFRYWlnQ0FITWdCVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQzBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NMSE1pREVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFU0lBQW9BaWdnQWlBRUlBZ2dEVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlOUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVE0Z0FDZ0NKQ0FHSUFvZ0VDQUZRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1ZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQ1NBQUtBSWdJQWNnRVNBUElBdEJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlDMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUF4QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU5RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBdEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FNUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQU1RUloyUWZ3SGNVR0FFR29vQWdCeklBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQXRCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FqeHpJZ3hCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRHlBQUtBSTRJQUlnQkNBSUlBMUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlEVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VSSUFBb0FqUWdCaUFLSUJBZ0JVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQUNnQ01DQUpJQTRnRWlBTFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklndEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FNUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQVZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBTFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdERUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUExQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0RFRVdka0g4QjNGQmdCQnFLQUlBY3lBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUxRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FKTWN5SU1RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUklnQUNnQ1NDQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnMUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hEaUFBS0FKRUlBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUJVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUpJQUFvQWtBZ0J5QVJJQThnQzBFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdERUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUExQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQUZRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQzBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBeEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFOUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUF4QkZuWkIvQWR4UVlBUWFpZ0NBSE1nQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0MwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDWEhNaURFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQUFvQWxnZ0FpQUVJQWdnRFVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlSRWdBQ2dDVkNBR0lBb2dFQ0FGUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJ5QUFLQUpRSUFrZ0RpQVNJQXRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQzBFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBeEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFOUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQXRCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBTVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FNUVJaMlFmd0hjVUdBRUdvb0FnQnpJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUF0Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BbXh6SWd4QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVpQUFLQUpvSUFJZ0JDQUlJQTFCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pRFVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFT0lBQW9BbVFnQmlBS0lCQWdCVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlGUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFrZ0FDZ0NZQ0FISUJFZ0R5QUxRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ3RCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRUNBTVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRb2dEVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VHSUFWQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaENDQUxRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUVFnREVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFQ0lBMUJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dERUVXZGtIOEIzRkJnQkJxS0FJQWN5QUZRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFMUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBSjhjeUlNUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVE4Z0FDZ0NlQ0FDSUFRZ0NDQU5RUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZzFCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoRVNBQUtBSjBJQVlnQ2lBUUlBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VISUFBb0FuQWdDU0FPSUJJZ0MwRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SU9RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUkFnREVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFS0lBMUIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCaUFGUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVFnZ0RrRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUVJQXhCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQWlBTlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBeEJGblpCL0FkeFFZQVFhaWdDQUhNZ0JVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdEa0gvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ2pBRnpJZ2xCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnQUNnQ2dBRWdCeUFSSUE4Z0RrRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUhRUloyUWZ3SGNVR0FFR29vQWdCeklBQW9Bb2dCSUFJZ0JDQUlJQTFCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQkVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0FDZ0NoQUVnQmlBS0lCQWdCVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlDUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS1FBWE1oQlNBSFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBSkJGblpCL0FkeFFZQVFhaWdDQUhNZ0NVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdCRUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ2xBRnpJUklnQWtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBRVFSWjJRZndIY1VHQUVHb29BZ0J6SUFkQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBbEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXBnQmN5RU9BbjhnQkVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBSlFSWjJRZndIY1VHQUVHb29BZ0J6SUFKQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBZEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXB3QmN5SUpJQlJCQzBnTkFCb2dDVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VQSUE1QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQVNRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBbEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFPUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0VrRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBSlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEa0VPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FKUVJaMlFmd0hjVUdBRUdvb0FnQnpJQkpCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcXdCY3lJSlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBQW9BcUFCSUFjZ0VTQVBJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQjBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFBS0FLb0FTQUNJQVFnQ0NBT1FSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnUkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQUFvQXFRQklBWWdDaUFRSUJKQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUFrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDc0FGeklRVWdCMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FDUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWxCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFSQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BclFCY3lFU0lBSkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dCRUVXZGtIOEIzRkJnQkJxS0FJQWN5QUhRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBSzRBWE1oRGlBRVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBbEJGblpCL0FkeFFZQVFhaWdDQUhNZ0FrRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdCMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ3ZBRnpJZ2tnRkVFTlNBMEFHaUFKUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVE4Z0RrRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRVJJQkpCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQnlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdDVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUE1Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQVNRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBbEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFPUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFsQkZuWkIvQWR4UVlBUWFpZ0NBSE1nRWtFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0JVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDekFGeklnbEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dBQ2dDd0FFZ0J5QVJJQThnQlVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJSFFSWjJRZndIY1VHQUVHb29BZ0J6SUFBb0FzZ0JJQUlnQkNBSUlBNUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCRUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQUNnQ3hBRWdCaUFLSUJBZ0VrRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUNRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FMUUFYTWhCU0FIUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFKQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQ1VFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0JFSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDMUFGeklSSWdBa0VPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FFUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWRCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFsQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BdGdCY3lFT0lBUkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dDVUVXZGtIOEIzRkJnQkJxS0FJQWN5QUNRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBTGNBWE1MSVFnZ0F5QUFJQlJCQkhScUlnUW9BZ0FnRWtIL0FYRkJnQmhxTFFBQUlBaEJFSFpCL3dGeFFZQVlhaTBBQUVFUWRDQUZRUmgyUVlBWWFpMEFBRUVZZEhJZ0RrRUlka0gvQVhGQmdCaHFMUUFBUVFoMGNuSnpJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNqWUFBQ0FESUFRb0FnUWdEa0gvQVhGQmdCaHFMUUFBSUFWQkVIWkIvd0Z4UVlBWWFpMEFBRUVRZENBU1FSaDJRWUFZYWkwQUFFRVlkSElnQ0VFSWRrSC9BWEZCZ0JocUxRQUFRUWgwY25KeklnSkJHSFFnQWtFSWRFR0FnUHdIY1hJZ0FrRUlka0dBL2dOeElBSkJHSFp5Y2pZQUJDQURJQVFvQWdnZ0NFSC9BWEZCZ0JocUxRQUFJQkpCRUhaQi93RnhRWUFZYWkwQUFFRVFkQ0FPUVJoMlFZQVlhaTBBQUVFWWRISWdCVUVJZGtIL0FYRkJnQmhxTFFBQVFRaDBjbkp6SWdKQkdIUWdBa0VJZEVHQWdQd0hjWElnQWtFSWRrR0EvZ054SUFKQkdIWnljallBQ0NBRElBUW9BZ3dnQlVIL0FYRkJnQmhxTFFBQUlBNUJFSFpCL3dGeFFZQVlhaTBBQUVFUWRDQUlRUmgyUVlBWWFpMEFBRUVZZEhJZ0VrRUlka0gvQVhGQmdCaHFMUUFBUVFoMGNuSnpJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNqWUFERUVBSVFJRFFDQUNJQU5xSWdRZ0JDMEFBQ0FUUVJCcUlBSnFMUUFBY3pvQUFDQUNRUUZxSWdKQkVFY05BQXNnRXlBVEtRTUlOd01ZSUJNZ0V5a0RBRGNERUNBRFFSQnFJUU1nQVVFQmFpSUJJQlZIRFFBTEN5QUFFQkJCQUFWQmZ3c2FJQk5CSUdva0FBdVdBUUVDZnlNQVFSQnJJZ0FrQUFKQUlBQkJER29nQUVFSWFoQUREUUJCNUlZQklBQW9BZ3hCQW5SQkJHb1FHU0lCTmdJQUlBRkZEUUFnQUNnQ0NCQVpJZ0VFUUVIa2hnRW9BZ0FnQUNnQ0RFRUNkR3BCQURZQ0FFSGtoZ0VvQWdBZ0FSQUNSUTBCQzBIa2hnRkJBRFlDQUFzZ0FFRVFhaVFBUWJpQkFVR3ZIaEJVR2tISWhnRkIySVVCTmdJQVFZQ0dBVUVxTmdJQUN3UUFRWDhMV1FFQmZ5QUFJQUFvQWtnaUFVRUJheUFCY2pZQ1NDQUFLQUlBSWdGQkNIRUVRQ0FBSUFGQklISTJBZ0JCZnc4TElBQkNBRGNDQkNBQUlBQW9BaXdpQVRZQ0hDQUFJQUUyQWhRZ0FDQUJJQUFvQWpCcU5nSVFRUUFMRkFBZ0FFRU1haUlBSUFBUWt3RkJBV29Ra2dFTGZBRUNmeUFBSUFBb0FrZ2lBVUVCYXlBQmNqWUNTQ0FBS0FJVUlBQW9BaHhIQkVBZ0FFRUFRUUFnQUNnQ0pCRUVBQm9MSUFCQkFEWUNIQ0FBUWdBM0F4QWdBQ2dDQUNJQlFRUnhCRUFnQUNBQlFTQnlOZ0lBUVg4UEN5QUFJQUFvQWl3Z0FDZ0NNR29pQWpZQ0NDQUFJQUkyQWdRZ0FVRWJkRUVmZFF2VkFnRUNmd0pBSUFBZ0FVWU5BQ0FCSUFBZ0Ftb2lCR3RCQUNBQ1FRRjBhMDBFUUNBQUlBRWdBaEJDR2c4TElBQWdBWE5CQTNFaEF3SkFBa0FnQUNBQlNRUkFJQU1OQWlBQVFRTnhSUTBCQTBBZ0FrVU5CQ0FBSUFFdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdzaEFpQUFRUUZxSWdCQkEzRU5BQXNNQVFzQ1FDQUREUUFnQkVFRGNRUkFBMEFnQWtVTkJTQUFJQUpCQVdzaUFtb2lBeUFCSUFKcUxRQUFPZ0FBSUFOQkEzRU5BQXNMSUFKQkEwME5BQU5BSUFBZ0FrRUVheUlDYWlBQklBSnFLQUlBTmdJQUlBSkJBMHNOQUFzTElBSkZEUUlEUUNBQUlBSkJBV3NpQW1vZ0FTQUNhaTBBQURvQUFDQUNEUUFMREFJTElBSkJBMDBOQUFOQUlBQWdBU2dDQURZQ0FDQUJRUVJxSVFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN3c2dBa1VOQUFOQUlBQWdBUzBBQURvQUFDQUFRUUZxSVFBZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzTGl3d0JCbjhnQUNBQmFpRUZBa0FDUUNBQUtBSUVJZ0pCQVhFTkFDQUNRUU54UlEwQklBQW9BZ0FpQWlBQmFpRUJBa0FnQUNBQ2F5SUFRZHlCQVNnQ0FFY0VRQ0FDUWY4QlRRUkFJQUFvQWdnaUJDQUNRUU4ySWdKQkEzUkI4SUVCYWtZYUlBQW9BZ3dpQXlBRVJ3MENRY2lCQVVISWdRRW9BZ0JCZmlBQ2QzRTJBZ0FNQXdzZ0FDZ0NHQ0VHQWtBZ0FDQUFLQUlNSWdOSEJFQWdBQ2dDQ0NJQ1FkaUJBU2dDQUVrYUlBSWdBellDRENBRElBSTJBZ2dNQVFzQ1FDQUFRUlJxSWdJb0FnQWlCQTBBSUFCQkVHb2lBaWdDQUNJRURRQkJBQ0VEREFFTEEwQWdBaUVISUFRaUEwRVVhaUlDS0FJQUlnUU5BQ0FEUVJCcUlRSWdBeWdDRUNJRURRQUxJQWRCQURZQ0FBc2dCa1VOQWdKQUlBQWdBQ2dDSENJRVFRSjBRZmlEQVdvaUFpZ0NBRVlFUUNBQ0lBTTJBZ0FnQXcwQlFjeUJBVUhNZ1FFb0FnQkJmaUFFZDNFMkFnQU1CQXNnQmtFUVFSUWdCaWdDRUNBQVJodHFJQU0yQWdBZ0EwVU5Bd3NnQXlBR05nSVlJQUFvQWhBaUFnUkFJQU1nQWpZQ0VDQUNJQU0yQWhnTElBQW9BaFFpQWtVTkFpQURJQUkyQWhRZ0FpQUROZ0lZREFJTElBVW9BZ1FpQWtFRGNVRURSdzBCUWRDQkFTQUJOZ0lBSUFVZ0FrRitjVFlDQkNBQUlBRkJBWEkyQWdRZ0JTQUJOZ0lBRHdzZ0JDQUROZ0lNSUFNZ0JEWUNDQXNDUUNBRktBSUVJZ0pCQW5GRkJFQWdCVUhnZ1FFb0FnQkdCRUJCNElFQklBQTJBZ0JCMUlFQlFkU0JBU2dDQUNBQmFpSUJOZ0lBSUFBZ0FVRUJjallDQkNBQVFkeUJBU2dDQUVjTkEwSFFnUUZCQURZQ0FFSGNnUUZCQURZQ0FBOExJQVZCM0lFQktBSUFSZ1JBUWR5QkFTQUFOZ0lBUWRDQkFVSFFnUUVvQWdBZ0FXb2lBVFlDQUNBQUlBRkJBWEkyQWdRZ0FDQUJhaUFCTmdJQUR3c2dBa0Y0Y1NBQmFpRUJBa0FnQWtIL0FVMEVRQ0FGS0FJSUlnUWdBa0VEZGlJQ1FRTjBRZkNCQVdwR0dpQUVJQVVvQWd3aUEwWUVRRUhJZ1FGQnlJRUJLQUlBUVg0Z0FuZHhOZ0lBREFJTElBUWdBellDRENBRElBUTJBZ2dNQVFzZ0JTZ0NHQ0VHQWtBZ0JTQUZLQUlNSWdOSEJFQWdCU2dDQ0NJQ1FkaUJBU2dDQUVrYUlBSWdBellDRENBRElBSTJBZ2dNQVFzQ1FDQUZRUlJxSWdRb0FnQWlBZzBBSUFWQkVHb2lCQ2dDQUNJQ0RRQkJBQ0VEREFFTEEwQWdCQ0VISUFJaUEwRVVhaUlFS0FJQUlnSU5BQ0FEUVJCcUlRUWdBeWdDRUNJQ0RRQUxJQWRCQURZQ0FBc2dCa1VOQUFKQUlBVWdCU2dDSENJRVFRSjBRZmlEQVdvaUFpZ0NBRVlFUUNBQ0lBTTJBZ0FnQXcwQlFjeUJBVUhNZ1FFb0FnQkJmaUFFZDNFMkFnQU1BZ3NnQmtFUVFSUWdCaWdDRUNBRlJodHFJQU0yQWdBZ0EwVU5BUXNnQXlBR05nSVlJQVVvQWhBaUFnUkFJQU1nQWpZQ0VDQUNJQU0yQWhnTElBVW9BaFFpQWtVTkFDQURJQUkyQWhRZ0FpQUROZ0lZQ3lBQUlBRkJBWEkyQWdRZ0FDQUJhaUFCTmdJQUlBQkIzSUVCS0FJQVJ3MEJRZENCQVNBQk5nSUFEd3NnQlNBQ1FYNXhOZ0lFSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBTElBRkIvd0ZOQkVBZ0FVRURkaUlDUVFOMFFmQ0JBV29oQVFKL1FjaUJBU2dDQUNJRFFRRWdBblFpQW5GRkJFQkJ5SUVCSUFJZ0EzSTJBZ0FnQVF3QkN5QUJLQUlJQ3lFQ0lBRWdBRFlDQ0NBQ0lBQTJBZ3dnQUNBQk5nSU1JQUFnQWpZQ0NBOExRUjhoQWlBQVFnQTNBaEFnQVVILy8vOEhUUVJBSUFGQkNIWWlBaUFDUVlEK1AycEJFSFpCQ0hFaUJIUWlBaUFDUVlEZ0gycEJFSFpCQkhFaUEzUWlBaUFDUVlDQUQycEJFSFpCQW5FaUFuUkJEM1lnQXlBRWNpQUNjbXNpQWtFQmRDQUJJQUpCRldwMlFRRnhja0VjYWlFQ0N5QUFJQUkyQWh3Z0FrRUNkRUg0Z3dGcUlRY0NRQUpBUWN5QkFTZ0NBQ0lFUVFFZ0FuUWlBM0ZGQkVCQnpJRUJJQU1nQkhJMkFnQWdCeUFBTmdJQUlBQWdCellDR0F3QkN5QUJRUUJCR1NBQ1FRRjJheUFDUVI5R0czUWhBaUFIS0FJQUlRTURRQ0FESWdRb0FnUkJlSEVnQVVZTkFpQUNRUjEySVFNZ0FrRUJkQ0VDSUFRZ0EwRUVjV29pQjBFUWFpZ0NBQ0lERFFBTElBY2dBRFlDRUNBQUlBUTJBaGdMSUFBZ0FEWUNEQ0FBSUFBMkFnZ1BDeUFFS0FJSUlnRWdBRFlDRENBRUlBQTJBZ2dnQUVFQU5nSVlJQUFnQkRZQ0RDQUFJQUUyQWdnTEMyUUFJQUFnQVVJb2hrS0FnSUNBZ0lEQS93Q0RJQUZDT0lhRUlBRkNHSVpDZ0lDQWdJRGdQNE1nQVVJSWhrS0FnSUNBOEIrRGhJUWdBVUlJaUVLQWdJRDRENE1nQVVJWWlFS0FnUHdIZzRRZ0FVSW9pRUtBL2dPRElBRkNPSWlFaElRM0FBQUxEd0FnQUNnQ0RCb2dBRUVBTmdJTUM0Y0JBUVIvSXdCQkVHc2lCU1FBSXdCQkVHc2lBeVFBQWtBZ0FVRnZUUVJBQWtBZ0FVRUtUUVJBSUFBZ0FSQTZJQUFoQkF3QkN5QUFJQUVRa1FGQkFXb2lCaEJnSWdRUVRTQUFJQVlRVENBQUlBRVFPUXNnQkNBQklBSVE5Z0VnQTBFQU9nQVBJQUVnQkdvZ0EwRVBhaEEwSUFOQkVHb2tBQXdCQ3hBWEFBc2dCVUVRYWlRQUlBQUxWUUVDZnlBQUtBSUVJUVFDZjBFQUlBSkZEUUFhSUFSQkNIVWlCU0FFUVFGeFJRMEFHaUFDS0FJQUlBVVF4QUVMSVFVZ0FDZ0NBQ0lBSUFFZ0FpQUZhaUFEUVFJZ0JFRUNjUnNnQUNnQ0FDZ0NIQkVJQUFzakFDQUFRUUEyQWd3Z0FDQUJOZ0lFSUFBZ0FUWUNBQ0FBSUFGQkFXbzJBZ2dnQUF1N0FRRURmeU1BUVJCcklnVWtBQ0FDUWUvLy8vOERJZ1lnQVd0TkJFQWdBQkFOSVFjZ0FBSi9JQUVnQmtFQmRrRVFhMGtFUUNBRklBRkJBWFEyQWdnZ0JTQUJJQUpxTmdJTUlBVkJER29nQlVFSWFoQjJLQUlBRUlJQkRBRUxJQVpCQVdzTFFRRnFJZ1lRZ1FFaEFpQUVCRUFnQWlBSElBUVFaZ3NnQXlBRWF5SURCRUFnQkVFQ2RDSUVJQUpxSUFRZ0Iyb2dBeEJtQ3lBQlFRRkhCRUFnQnhBUUN5QUFJQUlRVFNBQUlBWVFUQ0FGUVJCcUpBQVBDeEFYQUF1RUFnRURmeU1BUVJCcklnZ2tBQ0FDUWUvLy8vOERJZ2tnQVVGL2MycE5CRUFnQUJBTklRb2dBQUovSUFFZ0NVRUJka0VRYTBrRVFDQUlJQUZCQVhRMkFnZ2dDQ0FCSUFKcU5nSU1JQWhCREdvZ0NFRUlhaEIyS0FJQUVJSUJEQUVMSUFsQkFXc0xRUUZxSWdrUWdRRWhBaUFFQkVBZ0FpQUtJQVFRWmdzZ0JnUkFJQVJCQW5RZ0Ftb2dCeUFHRUdZTElBTWdCQ0FGYW1zaUF3UkFJQVJCQW5RaUJ5QUNhaUFHUVFKMGFpQUhJQXBxSUFWQkFuUnFJQU1RWmdzZ0FVRUJSd1JBSUFvUUVBc2dBQ0FDRUUwZ0FDQUpFRXdnQUNBRUlBWnFJQU5xSWdBUU9TQUlRUUEyQWdRZ0FpQUFRUUowYWlBSVFRUnFFRE1nQ0VFUWFpUUFEd3NRRndBTFdBRURmMEc0Z1FFUURTRURRYmlCQVJBSklRRWpBRUVRYXlJQ0pBQWdBaUFBT2dBUFFYOGhBQ0FCQkVBZ0FRUi9JQU1nQWl3QUR4QmVJQUVRM0FFRlFRQUxJZ0FnQTJ0QmZ5QUFHeUVBQ3lBQ1FSQnFKQUFnQUF0d0FRTi9Jd0JCRUdzaUF5UUFJQUpCYjAwRVFBSkFJQUpCQ2swRVFDQUFJQUlRT2lBQUlRUU1BUXNnQUNBQ0VKRUJRUUZxSWdVUVlDSUVFRTBnQUNBRkVFd2dBQ0FDRURrTElBUWdBU0FDRUZVZ0EwRUFPZ0FQSUFJZ0JHb2dBMEVQYWhBMElBTkJFR29rQUE4TEVCY0FDeElBSUFFRVFDQUFJQUlRWGlBQkVFWWFDd3ZzQVFFRGZ5TUFRUkJySWdna0FDQUNRVzhpQ1NBQlFYOXphazBFUUNBQUVBMGhDZ0ovSUFFZ0NVRUJka0VRYTBrRVFDQUlJQUZCQVhRMkFnZ2dDQ0FCSUFKcU5nSU1JQWhCREdvZ0NFRUlhaEIyS0FJQUVKRUJEQUVMSUFsQkFXc0xRUUZxSWdrUVlDRUNJQVFFUUNBQ0lBb2dCQkJWQ3lBR0JFQWdBaUFFYWlBSElBWVFWUXNnQXlBRUlBVnFheUlEQkVBZ0FpQUVhaUFHYWlBRUlBcHFJQVZxSUFNUVZRc2dBVUVLUndSQUlBb1FFQXNnQUNBQ0VFMGdBQ0FKRUV3Z0FDQUVJQVpxSUFOcUlnQVFPU0FJUVFBNkFBY2dBQ0FDYWlBSVFRZHFFRFFnQ0VFUWFpUUFEd3NRRndBTEpBRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnZ2dBU2dDQ0NFQUlBRkJFR29rQUNBQUN3a0FJQUFRRmpZQ0FBc3JBUUYvSUFBb0FnUWhBZ05BSUFFZ0FrY0VRQ0FBRUhRYUlBSkJCR3NoQWd3QkN3c2dBQ0FCTmdJRUN5b0FJd0JCRUdzaUFpUUFBa0FnQUNBQlJnUkFJQUJCQURvQWVBd0JDeUFCRUJBTElBSkJFR29rQUFzY0FDQUJRZi8vLy84RFN3UkFRZmdjRUtnQ0FBc2dBVUVDZEJCZ0N3a0FJQUZCQURZQ0FBczJBRUdnbFFFb0FnQWFRYUNWQVNnQ0FFR2dsUUVRYzBFQ2RHb2FRYUNWQVNnQ0FFR2dsUUVRYzBFQ2RHb2FRYUNWQVNnQ0FCb0xQUUVCZnlNQVFSQnJJZ0lrQUFKQUlBQXRBSGdnQVVFZVMzSkZCRUFnQUVFQk9nQjREQUVMSUFKQkNHb2dBUkQ4QVNFQUN5QUNRUkJxSkFBZ0FBdEZBUUovSXdCQkVHc2lBQ1FBUWFDVkFSQjBHaUFBUWYvLy8vOEROZ0lNSUFCQi8vLy8vd2MyQWdnZ0FFRU1haUFBUVFocUVLSUJLQUlBSVFFZ0FFRVFhaVFBSUFFTENRQWdBQkRKQVJBUUN3MEFJQUFvQWdBZ0FTZ0NBRWtMeUFFQkJIOGpBRUVnYXlJRkpBQWdCU0FCS1FBQU53TVFJQVVnQVNrQUNEY0RHQUpBSUFOQkVFa0VRQ0FDSVFFTUFRc2dBMEVFZGlFSElBSWhBUU5BSUFBZ0JVRVFhaUlJSUFRUXBnRWdCQ0FCRUp3QklBUkJFR29oQkNBQlFSQnFJUUVnQ0JEcEFTQUdRUUZxSWdZZ0IwY05BQXNMSUFJZ0Eyb2dBV3NpQWdSQUlBQWdCVUVRYWlBRkVLWUJRUUFoQmdOQUlBUWdCU0FHYWkwQUFDQUJMUUFBY3pvQUFDQUVRUUZxSVFRZ0FVRUJhaUVCSUFaQkFXb2lCaUFDUncwQUN3c2dCVUVnYWlRQUN4VUFJQUJCNk5NQU5nSUFJQUJCRUdvUUNob2dBQXNWQUNBQVFjRFRBRFlDQUNBQVFReHFFQW9hSUFBTEp3QWdBeUFES0FJQUlBSWdBV3NpQUdzaUFqWUNBQ0FBUVFCS0JFQWdBaUFCSUFBUVFob0xDd1FBUVFRTFFBRUNmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2dBVUVJYWlBQlFReHFFRkloQUVFRVFRRkJ5SVlCS0FJQUtBSUFHeUVDSUFBUVVTQUJRUkJxSkFBZ0FnczhBUUYvSXdCQkVHc2lCU1FBSUFVZ0JEWUNEQ0FGUVFocUlBVkJER29RVWlFRUlBQWdBU0FDSUFNUXR3RWhBQ0FFRUZFZ0JVRVFhaVFBSUFBTEVnQWdCQ0FDTmdJQUlBY2dCVFlDQUVFREN4QUFJQUFnQVJEUEFTQUFJQUkyQWdRTEtBRUJmeUFBUWR6U0FEWUNBQUpBSUFBb0FnZ2lBVVVOQUNBQUxRQU1SUTBBSUFFUUVBc2dBQXNQQUNBQUtBSUFJQUFvQWdRMkFnUUw1QWtCQVg4Q1FFSGtpQUV0QUFCQkFYRU5BRUhraUFFUUpFVU5BQUpBUWRpSUFTMEFBRUVCY1EwQVFkaUlBUkFrUlEwQVFaaVZBUkFiUVppVkFVSEkwZ0EyQWdBakFFRVFheUlCSkFCQm9KVUJRZ0EzQXdBZ0FVRUFOZ0lNUWFpVkFTQUJRUXhxRU04QlFhaVdBVUVBT2dBQUlBRkJFR29rQUJDQUFrRWVTUVJBRUJjQUMwR2dsUUZCb0pVQkVIUkJIaEQvQVNJQk5nSUFRYVNWQVNBQk5nSUFRYUNWQVJCRElBRkIrQUJxTmdJQVFRQVEvZ0ZCSGhDV0FrR3dsZ0ZCbWg0UVZCcEJvSlVCRUZBaEFVR2dsUUVRbFFKQm9KVUJJQUVRbEFKQjRKSUJFQnRCNEpJQlFmVGNBRFlDQUVIZ2tnRkJxSWNCRUJvUUhFSG9rZ0VRRzBIb2tnRkJsTjBBTmdJQVFlaVNBVUd3aHdFUUdoQWNRZkNTQVJBYlFmeVNBVUVBT2dBQVFmaVNBVUVBTmdJQVFmQ1NBVUhjMGdBMkFnQkIrSklCUWFBeUtBSUFOZ0lBUWZDU0FVSDBpQUVRR2hBY1FZQ1RBUkFiUVlDVEFVSEExZ0EyQWdCQmdKTUJRZXlJQVJBYUVCeEJpSk1CRUJ0QmlKTUJRZFRYQURZQ0FFR0lrd0ZCL0lnQkVCb1FIRUdRa3dFUUcwR1Frd0ZCa05NQU5nSUFRWmlUQVJBV05nSUFRWkNUQVVHRWlRRVFHaEFjUWFDVEFSQWJRYUNUQVVIbzJBQTJBZ0JCb0pNQlFZeUpBUkFhRUJ4QnFKTUJFQnRCcUpNQlFkelpBRFlDQUVHb2t3RkJsSWtCRUJvUUhFR3drd0VRRzBHNGt3RkJydGdBT3dFQVFiQ1RBVUhBMHdBMkFnQkJ2Sk1CRUJFYVFiQ1RBVUdjaVFFUUdoQWNRY2lUQVJBYlFkQ1RBVUt1Z0lDQXdBVTNBZ0JCeUpNQlFlalRBRFlDQUVIWWt3RVFFUnBCeUpNQlFhU0pBUkFhRUJ4QjZKTUJFQnRCNkpNQlFiVGRBRFlDQUVIb2t3RkJ1SWNCRUJvUUhFSHdrd0VRRzBId2t3RkJxTjhBTmdJQVFmQ1RBVUhBaHdFUUdoQWNRZmlUQVJBYlFmaVRBVUg4NEFBMkFnQkIrSk1CUWNpSEFSQWFFQnhCZ0pRQkVCdEJnSlFCUWVUaUFEWUNBRUdBbEFGQjBJY0JFQm9RSEVHSWxBRVFHMEdJbEFGQnZPb0FOZ0lBUVlpVUFVSDRod0VRR2hBY1FaQ1VBUkFiUVpDVUFVSFE2d0EyQWdCQmtKUUJRWUNJQVJBYUVCeEJtSlFCRUJ0Qm1KUUJRY1RzQURZQ0FFR1lsQUZCaUlnQkVCb1FIRUdnbEFFUUcwR2dsQUZCdU8wQU5nSUFRYUNVQVVHUWlBRVFHaEFjUWFpVUFSQWJRYWlVQVVHczdnQTJBZ0JCcUpRQlFaaUlBUkFhRUJ4QnNKUUJFQnRCc0pRQlFkRHZBRFlDQUVHd2xBRkJvSWdCRUJvUUhFRzRsQUVRRzBHNGxBRkI5UEFBTmdJQVFiaVVBVUdvaUFFUUdoQWNRY0NVQVJBYlFjQ1VBVUdZOGdBMkFnQkJ3SlFCUWJDSUFSQWFFQnhCeUpRQkVCdEIwSlFCUVlEOEFEWUNBRUhJbEFGQnJPUUFOZ0lBUWRDVUFVSGM1QUEyQWdCQnlKUUJRZGlIQVJBYUVCeEIySlFCRUJ0QjRKUUJRYVQ4QURZQ0FFSFlsQUZCdE9ZQU5nSUFRZUNVQVVIazVnQTJBZ0JCMkpRQlFlQ0hBUkFhRUJ4QjZKUUJFQnRCOEpRQkVQa0JRZWlVQVVHZzZBQTJBZ0JCNkpRQlFlaUhBUkFhRUJ4QitKUUJFQnRCZ0pVQkVQa0JRZmlVQVVHODZRQTJBZ0JCK0pRQlFmQ0hBUkFhRUJ4QmlKVUJFQnRCaUpVQlFienpBRFlDQUVHSWxRRkJ1SWdCRUJvUUhFR1FsUUVRRzBHUWxRRkJ0UFFBTmdJQVFaQ1ZBVUhBaUFFUUdoQWNRZENJQVVHWWxRRTJBZ0JCMUlnQlFkQ0lBVFlDQUVIWWlBRVFJd3RCM0lnQlFkU0lBU2dDQUJDUEFrSGdpQUZCM0lnQk5nSUFRZVNJQVJBakN5QUFRZUNJQVNnQ0FDZ0NBQ0lBTmdJQUlBQVF6UUVMRXdBZ0FDQUJLQUlBSWdBMkFnQWdBQkROQVFzeUFDQUFLQUlBR2lBQUtBSUFJQUFRYzBFQ2RHb2FJQUFvQWdBZ0FCQlFRUUowYWhvZ0FDZ0NBQ0FBRUhOQkFuUnFHZ3NUQUNBQUlBQW9BZ0JCQVdzaUFEWUNBQ0FBQzI4QkFuOGdBRUhJMGdBMkFnQWdBRUVJYWlFQkEwQWdBUkJRSUFKTEJFQWdBU0FDRUhjb0FnQUVRQ0FCSUFJUWR5Z0NBQkNqQVFzZ0FrRUJhaUVDREFFTEN5QUFRWmdCYWhBS0dpQUJFSkFDSUFFb0FnQUVRQ0FCRUpVQ0lBRVFkQ0FCS0FJQUlBRVFjeEQ3QVFzZ0FBc01BQ0FCSUFJdEFBQTZBQUFMS2dBZ0FDZ0NBQm9nQUNnQ0FDQUFFSE5CQW5ScUdpQUFLQUlBR2lBQUtBSUFJQUFRVUVFQ2RHb2FDd3dBSUFBZ0FDZ0NBQkQ2QVF0eUFRTi9Jd0JCRUdzaUFTUUFJQUZCb0pVQk5nSUFJQUZCcEpVQktBSUFJZ0kyQWdRZ0FTQUNJQUJCQW5ScU5nSUlJQUVpQXlnQ0JDRUFJQU1vQWdnaEFnTkFJQUFnQWtZRVFDQURFSTBDSUFGQkVHb2tBQVZCb0pVQkVIUWdBQkQ5QVNBRElBQkJCR29pQURZQ0JBd0JDd3NMSUFBZ0FFR1Ewd0EyQWdBZ0FDZ0NDQkFXUndSQUlBQW9BZ2dRMHdJTElBQUxCQUJCZnd2aUJRRUtmeU1BUVJCckloTWtBQ0FDSUFBMkFnQWdBMEdBQkhFaEZTQUhRUUowSVJZRFFDQVVRUVJHQkVBZ0RSQUpRUUZMQkVBZ0V5QU5FRUEyQWdnZ0FpQVRRUWhxUVFFUW5nSWdEUkJ0SUFJb0FnQVFwQUUyQWdBTElBTkJzQUZ4SWdOQkVFY0VRQ0FCSUFOQklFWUVmeUFDS0FJQUJTQUFDellDQUFzZ0UwRVFhaVFBQlFKQUFrQUNRQUpBQWtBQ1FDQUlJQlJxTEFBQURnVUFBUU1DQkFVTElBRWdBaWdDQURZQ0FBd0VDeUFCSUFJb0FnQTJBZ0FnQmtFZ0VEMGhCeUFDSUFJb0FnQWlEMEVFYWpZQ0FDQVBJQWMyQWdBTUF3c2dEUkJKRFFJZ0RVRUFFTEVCS0FJQUlRY2dBaUFDS0FJQUlnOUJCR28yQWdBZ0R5QUhOZ0lBREFJTElBd1FTU0FWUlhJTkFTQUNJQXdRUUNBTUVHMGdBaWdDQUJDa0FUWUNBQXdCQ3lBQ0tBSUFJUmNnQkNBV2FpSUVJUWNEUUFKQUlBVWdCMDBOQUNBR1FZQVFJQWNvQWdBUVRrVU5BQ0FIUVFScUlRY01BUXNMSUE0aUQwRUFTZ1JBQTBBZ0QwRUFUQ0FFSUFkUGNrVUVRQ0FIUVFScklnY29BZ0FoRUNBQ0lBSW9BZ0FpRVVFRWFqWUNBQ0FSSUJBMkFnQWdEMEVCYXlFUERBRUxDeUFQUVFCTUJIOUJBQVVnQmtFd0VEMExJUkVEUUNBQ0lBSW9BZ0FpRUVFRWFqWUNBQ0FQUVFCS0JFQWdFQ0FSTmdJQUlBOUJBV3NoRHd3QkN3c2dFQ0FKTmdJQUN3SkFJQVFnQjBZRVFDQUdRVEFRUFNFUElBSWdBaWdDQUNJUVFRUnFJZ2MyQWdBZ0VDQVBOZ0lBREFFTElBc1FTUVIvUVg4RklBdEJBQkFMTEFBQUN5RVFRUUFoRDBFQUlSSURRQ0FFSUFkSEJFQUNRQ0FQSUJCSEJFQWdEeUVSREFFTElBSWdBaWdDQUNJUVFRUnFOZ0lBSUJBZ0NqWUNBRUVBSVJFZ0N4QUpJQkpCQVdvaUVrMEVRQ0FQSVJBTUFRc2dDeUFTRUFzdEFBQkIvd0JHQkVCQmZ5RVFEQUVMSUFzZ0VoQUxMQUFBSVJBTElBZEJCR3NpQnlnQ0FDRVBJQUlnQWlnQ0FDSVlRUVJxTmdJQUlCZ2dEellDQUNBUlFRRnFJUThNQVFzTElBSW9BZ0FoQndzZ0Z5QUhFS3dCQ3lBVVFRRnFJUlFNQVFzTEM2VUNBUUYvSXdCQkVHc2lDaVFBSUFrQ2Z5QUFCRUFnQWhDZ0FpRUFBa0FnQVFSQUlBb2dBQkJwSUFNZ0NpZ0NBRFlBQUNBS0lBQVFhQXdCQ3lBS0lBQVFwUUVnQXlBS0tBSUFOZ0FBSUFvZ0FCQktDeUFJSUFvUVZ5QUtFQW9hSUFRZ0FCQklOZ0lBSUFVZ0FCQTROZ0lBSUFvZ0FCQTNJQVlnQ2hBd0lBb1FDaG9nQ2lBQUVFc2dCeUFLRUZjZ0NoQUtHaUFBRUdjTUFRc2dBaENmQWlFQUFrQWdBUVJBSUFvZ0FCQnBJQU1nQ2lnQ0FEWUFBQ0FLSUFBUWFBd0JDeUFLSUFBUXBRRWdBeUFLS0FJQU5nQUFJQW9nQUJCS0N5QUlJQW9RVnlBS0VBb2FJQVFnQUJCSU5nSUFJQVVnQUJBNE5nSUFJQW9nQUJBM0lBWWdDaEF3SUFvUUNob2dDaUFBRUVzZ0J5QUtFRmNnQ2hBS0dpQUFFR2NMTmdJQUlBcEJFR29rQUF2VUJRRUtmeU1BUVJCckloUWtBQ0FDSUFBMkFnQWdBMEdBQkhFaEZnTkFJQlZCQkVZRVFDQU5FQWxCQVVzRVFDQVVJQTBRUURZQ0NDQUNJQlJCQ0dwQkFSQ2xBaUFORUc4Z0FpZ0NBQkNrQVRZQ0FBc2dBMEd3QVhFaUEwRVFSd1JBSUFFZ0EwRWdSZ1IvSUFJb0FnQUZJQUFMTmdJQUN5QVVRUkJxSkFBUEN3SkFBa0FDUUFKQUFrQUNRQ0FJSUJWcUxBQUFEZ1VBQVFNQ0JBVUxJQUVnQWlnQ0FEWUNBQXdFQ3lBQklBSW9BZ0EyQWdBZ0JrRWdFQ2toRHlBQ0lBSW9BZ0FpRUVFQmFqWUNBQ0FRSUE4NkFBQU1Bd3NnRFJCSkRRSWdEVUVBRUFzdEFBQWhEeUFDSUFJb0FnQWlFRUVCYWpZQ0FDQVFJQTg2QUFBTUFnc2dEQkJKSUJaRmNnMEJJQUlnREJCQUlBd1FieUFDS0FJQUVLUUJOZ0lBREFFTElBSW9BZ0FoRnlBRUlBZHFJZ1FoRVFOQUFrQWdCU0FSVFEwQUlBWkJnQkFnRVN3QUFCQkVSUTBBSUJGQkFXb2hFUXdCQ3dzZ0RpSVBRUUJLQkVBRFFDQVBRUUJNSUFRZ0VVOXlSUVJBSUJGQkFXc2lFUzBBQUNFUUlBSWdBaWdDQUNJU1FRRnFOZ0lBSUJJZ0VEb0FBQ0FQUVFGcklROE1BUXNMSUE5QkFFd0VmMEVBQlNBR1FUQVFLUXNoRWdOQUlBSWdBaWdDQUNJUVFRRnFOZ0lBSUE5QkFFb0VRQ0FRSUJJNkFBQWdEMEVCYXlFUERBRUxDeUFRSUFrNkFBQUxBa0FnQkNBUlJnUkFJQVpCTUJBcElROGdBaUFDS0FJQUloQkJBV28yQWdBZ0VDQVBPZ0FBREFFTElBc1FTUVIvUVg4RklBdEJBQkFMTEFBQUN5RVFRUUFoRDBFQUlSTURRQ0FFSUJGR0RRRUNRQ0FQSUJCSEJFQWdEeUVTREFFTElBSWdBaWdDQUNJUVFRRnFOZ0lBSUJBZ0Nqb0FBRUVBSVJJZ0N4QUpJQk5CQVdvaUUwMEVRQ0FQSVJBTUFRc2dDeUFURUFzdEFBQkIvd0JHQkVCQmZ5RVFEQUVMSUFzZ0V4QUxMQUFBSVJBTElCRkJBV3NpRVMwQUFDRVBJQUlnQWlnQ0FDSVlRUUZxTmdJQUlCZ2dEem9BQUNBU1FRRnFJUThNQUFzQUN5QVhJQUlvQWdBUWVRc2dGVUVCYWlFVkRBQUxBQXVsQWdFQmZ5TUFRUkJySWdva0FDQUpBbjhnQUFSQUlBSVFwd0loQUFKQUlBRUVRQ0FLSUFBUWFTQURJQW9vQWdBMkFBQWdDaUFBRUdnTUFRc2dDaUFBRUtVQklBTWdDaWdDQURZQUFDQUtJQUFRU2dzZ0NDQUtFREFnQ2hBS0dpQUVJQUFRU0RvQUFDQUZJQUFRT0RvQUFDQUtJQUFRTnlBR0lBb1FNQ0FLRUFvYUlBb2dBQkJMSUFjZ0NoQXdJQW9RQ2hvZ0FCQm5EQUVMSUFJUXBnSWhBQUpBSUFFRVFDQUtJQUFRYVNBRElBb29BZ0EyQUFBZ0NpQUFFR2dNQVFzZ0NpQUFFS1VCSUFNZ0NpZ0NBRFlBQUNBS0lBQVFTZ3NnQ0NBS0VEQWdDaEFLR2lBRUlBQVFTRG9BQUNBRklBQVFPRG9BQUNBS0lBQVFOeUFHSUFvUU1DQUtFQW9hSUFvZ0FCQkxJQWNnQ2hBd0lBb1FDaG9nQUJCbkN6WUNBQ0FLUVJCcUpBQUxDQUFnQUNnQ0FFVUxOd0VCZnlNQVFSQnJJZ0lrQUNBQ0lBQW9BZ0EyQWdnZ0FpQUNLQUlJSUFGQkFuUnFOZ0lJSUFJb0FnZ2hBQ0FDUVJCcUpBQWdBQXNLQUNBQVFZaUlBUkJsQ3dvQUlBQkJrSWdCRUdVTENRQWdBQ0FCRUs0Q0N4OEJBWDhnQVNnQ0FCRDJBaUVDSUFBZ0FTZ0NBRFlDQkNBQUlBSTJBZ0FMOFE4QkNuOGpBRUd3QkdzaUN5UUFJQXNnQ2pZQ3BBUWdDeUFCTmdLb0JDQUxRVFkyQW1BZ0N5QUxRWWdCYWlBTFFaQUJhaUFMUWVBQWFpSUJFQjRpRHlnQ0FDSUtOZ0tFQVNBTElBcEJrQU5xTmdLQUFTQUJFQkVoRVNBTFFkQUFhaEJISVE0Z0MwRkFheEJISVF3Z0MwRXdhaEJISVEwZ0MwRWdhaEJISVJBakFFRVFheUlCSkFBZ0N3Si9JQUlFUUNBQklBTVFvQUlpQWhCcElBc2dBU2dDQURZQWVDQUJJQUlRYUNBTklBRVFWeUFCRUFvYUlBRWdBaEJLSUF3Z0FSQlhJQUVRQ2hvZ0N5QUNFRWcyQW5RZ0N5QUNFRGcyQW5BZ0FTQUNFRGNnRVNBQkVEQWdBUkFLR2lBQklBSVFTeUFPSUFFUVZ5QUJFQW9hSUFJUVp3d0JDeUFCSUFNUW53SWlBaEJwSUFzZ0FTZ0NBRFlBZUNBQklBSVFhQ0FOSUFFUVZ5QUJFQW9hSUFFZ0FoQktJQXdnQVJCWElBRVFDaG9nQ3lBQ0VFZzJBblFnQ3lBQ0VEZzJBbkFnQVNBQ0VEY2dFU0FCRURBZ0FSQUtHaUFCSUFJUVN5QU9JQUVRVnlBQkVBb2FJQUlRWndzMkFod2dBVUVRYWlRQUlBa2dDQ2dDQURZQ0FDQUVRWUFFY1NJU1FRbDJJUk5CQUNFQlFRQWhBZ05BSUFJaENnSkFBa0FDUUFKQUlBRkJCRVlOQUNBQUlBdEJxQVJxRURaRkRRQkJBQ0VFQWtBQ1FBSkFBa0FDUUFKQUlBdEIrQUJxSUFGcUxBQUFEZ1VCQUFRREJRa0xJQUZCQTBZTkJ5QUhRWURBQUNBQUVDRVFUZ1JBSUF0QkVHb2dBQkNpQWlBUUlBc29BaEFReGdFTUFnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0dDeUFCUVFOR0RRWUxBMEFnQUNBTFFhZ0VhaEEyUlEwR0lBZEJnTUFBSUFBUUlSQk9SUTBHSUF0QkVHb2dBQkNpQWlBUUlBc29BaEFReGdFTUFBc0FDeUFNRUFsQkFDQU5FQWxyUmcwRUFrQWdEQkFKQkVBZ0RSQUpEUUVMSUF3UUNTRURJQUFRSVNFQ0lBTUVRQ0FNRUEwb0FnQWdBa1lFUUNBQUVDVWFJQXdnQ2lBTUVBbEJBVXNiSVFJTUNBc2dCa0VCT2dBQURBWUxJQUlnRFJBTktBSUFSdzBGSUFBUUpSb2dCa0VCT2dBQUlBMGdDaUFORUFsQkFVc2JJUUlNQmdzZ0FCQWhJQXdRRFNnQ0FFWUVRQ0FBRUNVYUlBd2dDaUFNRUFsQkFVc2JJUUlNQmdzZ0FCQWhJQTBRRFNnQ0FFWUVRQ0FBRUNVYUlBWkJBVG9BQUNBTklBb2dEUkFKUVFGTEd5RUNEQVlMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQXdzZ0NpQUJRUUpKY2tVRVFFRUFJUUlnRXlBQlFRSkdJQXN0QUh0QkFFZHhja1VOQlFzZ0N5QU9FRUEyQWdnZ0MwRVFhaUFMUVFocUVLZ0JJUUlDUUNBQlJRMEFJQUVnQzJvdEFIZEJBVXNOQUFOQUFrQWdDeUFPRUcwMkFnZ2dBaUFMUVFocUVGdEZEUUFnQjBHQXdBQWdBaWdDQUNnQ0FCQk9SUTBBSUFJUWxBRU1BUXNMSUFzZ0RoQkFOZ0lJSUFJb0FnQWdDeWdDQ0d0QkFuVWlBaUFRRUFsTkJFQWdDeUFRRUcwMkFnZ2dDMEVJYWtFQUlBSnJFSjRDSVFNZ0VCQnRJUVFnRGhCQUlSUWpBRUVnYXlJQ0pBQWdBaUFFTmdJUUlBSWdBellDR0NBQ0lCUTJBZ2dEUUFKQUlBSkJHR29nQWtFUWFoQmJJZ05GRFFBZ0FpZ0NHQ2dDQUNBQ0tBSUlLQUlBUncwQUlBSkJHR29RbEFFZ0FrRUlhaENVQVF3QkN3c2dBa0VnYWlRQUlBTkJBWE1OQVFzZ0N5QU9FRUEyQWdBZ0MwRUlhaUFMRUtnQkdpQUxJQXNvQWdnMkFoQUxJQXNnQ3lnQ0VEWUNDQU5BQWtBZ0N5QU9FRzAyQWdBZ0MwRUlhaUFMRUZ0RkRRQWdBQ0FMUWFnRWFoQTJSUTBBSUFBUUlTQUxLQUlJS0FJQVJ3MEFJQUFRSlJvZ0MwRUlhaENVQVF3QkN3c2dFa1VOQXlBTElBNFFiVFlDQUNBTFFRaHFJQXNRVzBVTkF5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBSUxBMEFDUUNBQUlBdEJxQVJxRURaRkRRQUNmeUFIUVlBUUlBQVFJU0lDRUU0RVFDQUpLQUlBSWdNZ0N5Z0NwQVJHQkVBZ0NDQUpJQXRCcEFScUVJWUJJQWtvQWdBaEF3c2dDU0FEUVFScU5nSUFJQU1nQWpZQ0FDQUVRUUZxREFFTElCRVFDVVVnQkVWeURRRWdBaUFMS0FKd1J3MEJJQXNvQW9RQklnSWdDeWdDZ0FGR0JFQWdEeUFMUVlRQmFpQUxRWUFCYWhDR0FTQUxLQUtFQVNFQ0N5QUxJQUpCQkdvMkFvUUJJQUlnQkRZQ0FFRUFDeUVFSUFBUUpSb01BUXNMSUFSRklBc29Bb1FCSWdJZ0R5Z0NBRVp5UlFSQUlBc29Bb0FCSUFKR0JFQWdEeUFMUVlRQmFpQUxRWUFCYWhDR0FTQUxLQUtFQVNFQ0N5QUxJQUpCQkdvMkFvUUJJQUlnQkRZQ0FBc0NRQ0FMS0FJY1FRQk1EUUFDUUNBQUlBdEJxQVJxRUNoRkJFQWdBQkFoSUFzb0FuUkdEUUVMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQXdzRFFDQUFFQ1VhSUFzb0FoeEJBRXdOQVFKQUlBQWdDMEdvQkdvUUtFVUVRQ0FIUVlBUUlBQVFJUkJPRFFFTElBVWdCU2dDQUVFRWNqWUNBRUVBSVFBTUJBc2dDU2dDQUNBTEtBS2tCRVlFUUNBSUlBa2dDMEdrQkdvUWhnRUxJQUFRSVNFQ0lBa2dDU2dDQUNJRFFRUnFOZ0lBSUFNZ0FqWUNBQ0FMSUFzb0FoeEJBV3MyQWh3TUFBc0FDeUFLSVFJZ0NDZ0NBQ0FKS0FJQVJ3MERJQVVnQlNnQ0FFRUVjallDQUVFQUlRQU1BUXNDUUNBS1JRMEFRUUVoQkFOQUlBb1FDU0FFVFEwQkFrQWdBQ0FMUWFnRWFoQW9SUVJBSUFBUUlTQUtJQVFRc1FFb0FnQkdEUUVMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQXdzZ0FCQWxHaUFFUVFGcUlRUU1BQXNBQzBFQklRQWdEeWdDQUNBTEtBS0VBVVlOQUVFQUlRQWdDMEVBTmdJUUlCRWdEeWdDQUNBTEtBS0VBU0FMUVJCcUVDMGdDeWdDRUFSQUlBVWdCU2dDQUVFRWNqWUNBQXdCQzBFQklRQUxJQkFRQ2hvZ0RSQUtHaUFNRUFvYUlBNFFDaG9nRVJBS0dpQVBFQjBnQzBHd0JHb2tBQ0FBRHdzZ0NpRUNDeUFCUVFGcUlRRU1BQXNBQ3g4QUlBQWdBUkNuQVJBbklBRVFsUUVvQWdBaEFTQUFFSlVCSUFFMkFnQUxOQUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQW9BZ0EyQWdnZ0FpQUNLQUlJSUFGcU5nSUlJQUlvQWdnaEFDQUNRUkJxSkFBZ0FBc0tBQ0FBUWZpSEFSQmxDd29BSUFCQmdJZ0JFR1VMWWdFRGYwRUlFQWNpQVVIQS93QTJBZ0FnQVVIcy93QTJBZ0FnQUJDZUFTSUNRUTFxRUdBaUEwRUFOZ0lJSUFNZ0FqWUNCQ0FESUFJMkFnQWdBU0FEUVF4cUlBQWdBa0VCYWhCQ05nSUVJQUZCbklBQk5nSUFJQUZCdklBQlFRTVFCZ0FMd1FFQkJuOGpBRUVRYXlJRUpBQWdBQkNWQVNnQ0FDRUZBbjhnQWlnQ0FDQUFLQUlBYXlJRFFmLy8vLzhIU1FSQUlBTkJBWFFNQVF0QmZ3c2lBMEVCSUFNYklRTWdBU2dDQUNFR0lBQW9BZ0FoQnlBRlFUWkdCSDlCQUFVZ0FDZ0NBQXNnQXhDZEFTSUlCRUFnQlVFMlJ3UkFJQUFRcHdFYUN5QUVRVFUyQWdRZ0FDQUVRUWhxSUFnZ0JFRUVhaEFlSWdVUXBBSWdCUkFkSUFFZ0FDZ0NBQ0FHSUFkcmFqWUNBQ0FDSUFNZ0FDZ0NBR28yQWdBZ0JFRVFhaVFBRHdzUUZ3QUxKUUVCZnlBQktBSUFFUHNDUVJoMFFSaDFJUUlnQUNBQktBSUFOZ0lFSUFBZ0Fqb0FBQXVmRUFFS2Z5TUFRYkFFYXlJTEpBQWdDeUFLTmdLa0JDQUxJQUUyQXFnRUlBdEJOallDYUNBTElBdEJpQUZxSUF0QmtBRnFJQXRCNkFCcUlnRVFIaUlQS0FJQUlnbzJBb1FCSUFzZ0NrR1FBMm8yQW9BQklBRVFFU0VSSUF0QjJBQnFFQkVoRGlBTFFjZ0FhaEFSSVF3Z0MwRTRhaEFSSVEwZ0MwRW9haEFSSVJBakFFRVFheUlCSkFBZ0N3Si9JQUlFUUNBQklBTVFwd0lpQWhCcElBc2dBU2dDQURZQWVDQUJJQUlRYUNBTklBRVFNQ0FCRUFvYUlBRWdBaEJLSUF3Z0FSQXdJQUVRQ2hvZ0N5QUNFRWc2QUhjZ0N5QUNFRGc2QUhZZ0FTQUNFRGNnRVNBQkVEQWdBUkFLR2lBQklBSVFTeUFPSUFFUU1DQUJFQW9hSUFJUVp3d0JDeUFCSUFNUXBnSWlBaEJwSUFzZ0FTZ0NBRFlBZUNBQklBSVFhQ0FOSUFFUU1DQUJFQW9hSUFFZ0FoQktJQXdnQVJBd0lBRVFDaG9nQ3lBQ0VFZzZBSGNnQ3lBQ0VEZzZBSFlnQVNBQ0VEY2dFU0FCRURBZ0FSQUtHaUFCSUFJUVN5QU9JQUVRTUNBQkVBb2FJQUlRWndzMkFpUWdBVUVRYWlRQUlBa2dDQ2dDQURZQ0FDQUVRWUFFY1NJU1FRbDJJUk5CQUNFQlFRQWhBZ05BSUFJaENnSkFBa0FDUUFKQUlBRkJCRVlOQUNBQUlBdEJxQVJxRURGRkRRQkJBQ0VFQWtBQ1FBSkFBa0FDUUFKQUlBdEIrQUJxSUFGcUxBQUFEZ1VCQUFRREJRa0xJQUZCQTBZTkJ5QUhRWURBQUNBQUVCOFFSQVJBSUF0QkdHb2dBQkNxQWlBUUlBc3NBQmdRb1FFTUFnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0dDeUFCUVFOR0RRWUxBMEFnQUNBTFFhZ0VhaEF4UlEwR0lBZEJnTUFBSUFBUUh4QkVSUTBHSUF0QkdHb2dBQkNxQWlBUUlBc3NBQmdRb1FFTUFBc0FDeUFNRUFsQkFDQU5FQWxyUmcwRUFrQWdEQkFKQkVBZ0RSQUpEUUVMSUF3UUNTRURJQUFRSHlFQ0lBTUVRQ0FNUVFBUUN5MEFBQ0FDUWY4QmNVWUVRQ0FBRUNJYUlBd2dDaUFNRUFsQkFVc2JJUUlNQ0FzZ0JrRUJPZ0FBREFZTElBMUJBQkFMTFFBQUlBSkIvd0Z4UncwRklBQVFJaG9nQmtFQk9nQUFJQTBnQ2lBTkVBbEJBVXNiSVFJTUJnc2dBQkFmUWY4QmNTQU1RUUFRQ3kwQUFFWUVRQ0FBRUNJYUlBd2dDaUFNRUFsQkFVc2JJUUlNQmdzZ0FCQWZRZjhCY1NBTlFRQVFDeTBBQUVZRVFDQUFFQ0lhSUFaQkFUb0FBQ0FOSUFvZ0RSQUpRUUZMR3lFQ0RBWUxJQVVnQlNnQ0FFRUVjallDQUVFQUlRQU1Bd3NnQ2lBQlFRSkpja1VFUUVFQUlRSWdFeUFCUVFKR0lBc3RBSHRCQUVkeGNrVU5CUXNnQ3lBT0VFQTJBaEFnQzBFWWFpQUxRUkJxRUtnQklRSUNRQ0FCUlEwQUlBRWdDMm90QUhkQkFVc05BQU5BQWtBZ0N5QU9FRzgyQWhBZ0FpQUxRUkJxRUZ0RkRRQWdCMEdBd0FBZ0FpZ0NBQ3dBQUJCRVJRMEFJQUlRbGdFTUFRc0xJQXNnRGhCQU5nSVFJQUlvQWdBZ0N5Z0NFR3NpQWlBUUVBbE5CRUFnQ3lBUUVHODJBaEFnQzBFUWFrRUFJQUpyRUtVQ0lRTWdFQkJ2SVFRZ0RoQkFJUlFqQUVFZ2F5SUNKQUFnQWlBRU5nSVFJQUlnQXpZQ0dDQUNJQlEyQWdnRFFBSkFJQUpCR0dvZ0FrRVFhaEJiSWdORkRRQWdBaWdDR0MwQUFDQUNLQUlJTFFBQVJ3MEFJQUpCR0dvUWxnRWdBa0VJYWhDV0FRd0JDd3NnQWtFZ2FpUUFJQU5CQVhNTkFRc2dDeUFPRUVBMkFnZ2dDMEVRYWlBTFFRaHFFS2dCR2lBTElBc29BaEEyQWhnTElBc2dDeWdDR0RZQ0VBTkFBa0FnQ3lBT0VHODJBZ2dnQzBFUWFpQUxRUWhxRUZ0RkRRQWdBQ0FMUWFnRWFoQXhSUTBBSUFBUUgwSC9BWEVnQ3lnQ0VDMEFBRWNOQUNBQUVDSWFJQXRCRUdvUWxnRU1BUXNMSUJKRkRRTWdDeUFPRUc4MkFnZ2dDMEVRYWlBTFFRaHFFRnRGRFFNZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3Q0N3TkFBa0FnQUNBTFFhZ0VhaEF4UlEwQUFuOGdCMEdBRUNBQUVCOGlBaEJFQkVBZ0NTZ0NBQ0lESUFzb0FxUUVSZ1JBSUFnZ0NTQUxRYVFFYWhDcEFpQUpLQUlBSVFNTElBa2dBMEVCYWpZQ0FDQURJQUk2QUFBZ0JFRUJhZ3dCQ3lBUkVBbEZJQVJGY2cwQklBc3RBSFlnQWtIL0FYRkhEUUVnQ3lnQ2hBRWlBaUFMS0FLQUFVWUVRQ0FQSUF0QmhBRnFJQXRCZ0FGcUVJWUJJQXNvQW9RQklRSUxJQXNnQWtFRWFqWUNoQUVnQWlBRU5nSUFRUUFMSVFRZ0FCQWlHZ3dCQ3dzZ0JFVWdDeWdDaEFFaUFpQVBLQUlBUm5KRkJFQWdDeWdDZ0FFZ0FrWUVRQ0FQSUF0QmhBRnFJQXRCZ0FGcUVJWUJJQXNvQW9RQklRSUxJQXNnQWtFRWFqWUNoQUVnQWlBRU5nSUFDd0pBSUFzb0FpUkJBRXdOQUFKQUlBQWdDMEdvQkdvUUprVUVRQ0FBRUI5Qi93RnhJQXN0QUhkR0RRRUxJQVVnQlNnQ0FFRUVjallDQUVFQUlRQU1Bd3NEUUNBQUVDSWFJQXNvQWlSQkFFd05BUUpBSUFBZ0MwR29CR29RSmtVRVFDQUhRWUFRSUFBUUh4QkVEUUVMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQkFzZ0NTZ0NBQ0FMS0FLa0JFWUVRQ0FJSUFrZ0MwR2tCR29RcVFJTElBQVFIeUVDSUFrZ0NTZ0NBQ0lEUVFGcU5nSUFJQU1nQWpvQUFDQUxJQXNvQWlSQkFXczJBaVFNQUFzQUN5QUtJUUlnQ0NnQ0FDQUpLQUlBUncwRElBVWdCU2dDQUVFRWNqWUNBRUVBSVFBTUFRc0NRQ0FLUlEwQVFRRWhCQU5BSUFvUUNTQUVUUTBCQWtBZ0FDQUxRYWdFYWhBbVJRUkFJQUFRSDBIL0FYRWdDaUFFRUFzdEFBQkdEUUVMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQXdzZ0FCQWlHaUFFUVFGcUlRUU1BQXNBQzBFQklRQWdEeWdDQUNBTEtBS0VBVVlOQUVFQUlRQWdDMEVBTmdJWUlCRWdEeWdDQUNBTEtBS0VBU0FMUVJocUVDMGdDeWdDR0FSQUlBVWdCU2dDQUVFRWNqWUNBQXdCQzBFQklRQUxJQkFRQ2hvZ0RSQUtHaUFNRUFvYUlBNFFDaG9nRVJBS0dpQVBFQjBnQzBHd0JHb2tBQ0FBRHdzZ0NpRUNDeUFCUVFGcUlRRU1BQXNBQ3d3QUlBQkJBVUV0RUxvQ0dnc01BQ0FBUVFGQkxSRHZBUm9MQ2dBZ0FTQUFhMEVDZFFzRUFDQUJDelVCQVg4akFFRVFheUlDSkFBZ0FpQUFMUUFBT2dBUElBQWdBUzBBQURvQUFDQUJJQUpCRDJvdEFBQTZBQUFnQWtFUWFpUUFDMlFCQVg4akFFRVFheUlHSkFBZ0JrRUFPZ0FQSUFZZ0JUb0FEaUFHSUFRNkFBMGdCa0VsT2dBTUlBVUVRQ0FHUVExcUlBWkJEbW9Rc0FJTElBSWdBU0FCSUFJb0FnQVE2Z0lnQmtFTWFpQURJQUFvQWdBUUFTQUJhallDQUNBR1FSQnFKQUFMUVFBZ0FTQUNJQU1nQkVFRUVGZ2hBU0FETFFBQVFRUnhSUVJBSUFBZ0FVSFFEMm9nQVVIc0Rtb2dBU0FCUWVRQVNCc2dBVUhGQUVnYlFld09hellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0JCRUFBQ0lBSUFCQm9BSnFJQVVnQkVFQUVMSUJJQUJySWdCQm53Sk1CRUFnQVNBQVFReHRRUXh2TmdJQUN3dEFBQ0FDSUFNZ0FFRUlhaUFBS0FJSUtBSUFFUUFBSWdBZ0FFR29BV29nQlNBRVFRQVFzZ0VnQUdzaUFFR25BVXdFUUNBQklBQkJERzFCQjI4MkFnQUxDMEVBSUFFZ0FpQURJQVJCQkJCWklRRWdBeTBBQUVFRWNVVUVRQ0FBSUFGQjBBOXFJQUZCN0E1cUlBRWdBVUhrQUVnYklBRkJ4UUJJRzBIc0RtczJBZ0FMQzBBQUlBSWdBeUFBUVFocUlBQW9BZ2dvQWdRUkFBQWlBQ0FBUWFBQ2FpQUZJQVJCQUJDMEFTQUFheUlBUVo4Q1RBUkFJQUVnQUVFTWJVRU1iellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0FCRUFBQ0lBSUFCQnFBRnFJQVVnQkVFQUVMUUJJQUJySWdCQnB3Rk1CRUFnQVNBQVFReHRRUWR2TmdJQUN3c0VBRUVDQzY4RkFRcC9Jd0JCRUdzaUNTUUFJQVlRT3lFS0lBa2dCaENMQVNJTkVEY2dCU0FETmdJQUFrQUNRQ0FBSWdjdEFBQWlCa0VyYXc0REFBRUFBUXNnQ2lBR1FSaDBRUmgxRUQwaEJpQUZJQVVvQWdBaUIwRUVhallDQUNBSElBWTJBZ0FnQUVFQmFpRUhDd0pBQWtBZ0FpQUhJZ1pyUVFGTURRQWdCeTBBQUVFd1J3MEFJQWN0QUFGQklISkIrQUJIRFFBZ0NrRXdFRDBoQmlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFZMkFnQWdDaUFITEFBQkVEMGhCaUFGSUFVb0FnQWlDRUVFYWpZQ0FDQUlJQVkyQWdBZ0IwRUNhaUlISVFZRFFDQUNJQVpORFFJZ0Jpd0FBQkFXRU5ZQ1JRMENJQVpCQVdvaEJnd0FDd0FMQTBBZ0FpQUdUUTBCSUFZc0FBQWhDQkFXR2lBSUVFVkZEUUVnQmtFQmFpRUdEQUFMQUFzQ1FDQUpFRWtFUUNBS0lBY2dCaUFGS0FJQUVHUWdCU0FGS0FJQUlBWWdCMnRCQW5ScU5nSUFEQUVMSUFjZ0JoQjVJQTBRT0NFT0lBY2hDQU5BSUFZZ0NFMEVRQ0FESUFjZ0FHdEJBblJxSUFVb0FnQVFyQUVGQWtBZ0NTQUxFQXNzQUFCQkFFd05BQ0FNSUFrZ0N4QUxMQUFBUncwQUlBVWdCU2dDQUNJTVFRUnFOZ0lBSUF3Z0RqWUNBQ0FMSUFzZ0NSQUpRUUZyU1dvaEMwRUFJUXdMSUFvZ0NDd0FBQkE5SVE4Z0JTQUZLQUlBSWhCQkJHbzJBZ0FnRUNBUE5nSUFJQWhCQVdvaENDQU1RUUZxSVF3TUFRc0xDd0pBQWtBRFFDQUNJQVpORFFFZ0JpMEFBQ0lIUVM1SEJFQWdDaUFIUVJoMFFSaDFFRDBoQnlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFjMkFnQWdCa0VCYWlFR0RBRUxDeUFORUVnaEJ5QUZJQVVvQWdBaUMwRUVhaUlJTmdJQUlBc2dCellDQUNBR1FRRnFJUVlNQVFzZ0JTZ0NBQ0VJQ3lBS0lBWWdBaUFJRUdRZ0JTQUZLQUlBSUFJZ0JtdEJBblJxSWdVMkFnQWdCQ0FGSUFNZ0FTQUFhMEVDZEdvZ0FTQUNSaHMyQWdBZ0NSQUtHaUFKUVJCcUpBQUx1QUVCQlg4akFFRVFheUlISkFBakFFRVFheUlGSkFBQ1FDQUJRZS8vLy84RFRRUkFBa0FnQVVFQlRRUkFJQUFnQVJBNklBQWhCZ3dCQ3lBQUlBQWdBUkNDQVVFQmFpSURFSUVCSWdZUVRTQUFJQU1RVENBQUlBRVFPUXNnQmlFRUlBRWlBd1IvSUFNRVFBTkFJQVFnQWpZQ0FDQUVRUVJxSVFRZ0EwRUJheUlERFFBTEMwRUFCU0FFQ3hvZ0JVRUFOZ0lNSUFZZ0FVRUNkR29nQlVFTWFoQXpJQVZCRUdva0FBd0JDeEFYQUFzZ0IwRVFhaVFBSUFBTDhnRUJCWDhqQUVFUWF5SURKQUFnQWtJQU53QUFJQUpDQURjQUNDQURJQUVwQUFnM0F3Z2dBeUFCS1FBQU53TUFBMEFnQUNBRmFpRUdRUUFoQVFOQUlBWXRBQUJCQnlBQmEzWkJBWEVFUUNBQ0lBTVFuQUVMSUFNdEFBOGhCeUFEUVF4cUlnUWdBeTBBQzBFZmRDQUVFSk1CUVFGMmNoQ1NBU0FEUVFocUlnUWdBeTBBQjBFZmRDQUVFSk1CUVFGMmNoQ1NBU0FEUVFScUlnUWdBeTBBQTBFZmRDQUVFSk1CUVFGMmNoQ1NBU0FESUFNUWt3RkJBWFlRa2dFZ0IwRUJjUVJBSUFNZ0F5MEFBRUhoQVhNNkFBQUxJQUZCQVdvaUFVRUlSdzBBQ3lBRlFRRnFJZ1ZCRUVjTkFBc2dBMEVRYWlRQUM1a0ZBUXAvSXdCQkVHc2lDU1FBSUFZUU1pRUtJQWtnQmhDT0FTSU5FRGNnQlNBRE5nSUFBa0FDUUNBQUlnY3RBQUFpQmtFcmF3NERBQUVBQVFzZ0NpQUdRUmgwUVJoMUVDa2hCaUFGSUFVb0FnQWlCMEVCYWpZQ0FDQUhJQVk2QUFBZ0FFRUJhaUVIQ3dKQUFrQWdBaUFISWdaclFRRk1EUUFnQnkwQUFFRXdSdzBBSUFjdEFBRkJJSEpCK0FCSERRQWdDa0V3RUNraEJpQUZJQVVvQWdBaUNFRUJhallDQUNBSUlBWTZBQUFnQ2lBSExBQUJFQ2toQmlBRklBVW9BZ0FpQ0VFQmFqWUNBQ0FJSUFZNkFBQWdCMEVDYWlJSElRWURRQ0FDSUFaTkRRSWdCaXdBQUJBV0VOWUNSUTBDSUFaQkFXb2hCZ3dBQ3dBTEEwQWdBaUFHVFEwQklBWXNBQUFoQ0JBV0dpQUlFRVZGRFFFZ0JrRUJhaUVHREFBTEFBc0NRQ0FKRUVrRVFDQUtJQWNnQmlBRktBSUFFSEFnQlNBRktBSUFJQVlnQjJ0cU5nSUFEQUVMSUFjZ0JoQjVJQTBRT0NFT0lBY2hDQU5BSUFZZ0NFMEVRQ0FESUFjZ0FHdHFJQVVvQWdBUWVRVUNRQ0FKSUF3UUN5d0FBRUVBVEEwQUlBc2dDU0FNRUFzc0FBQkhEUUFnQlNBRktBSUFJZ3RCQVdvMkFnQWdDeUFPT2dBQUlBd2dEQ0FKRUFsQkFXdEphaUVNUVFBaEN3c2dDaUFJTEFBQUVDa2hEeUFGSUFVb0FnQWlFRUVCYWpZQ0FDQVFJQTg2QUFBZ0NFRUJhaUVJSUF0QkFXb2hDd3dCQ3dzTEEwQUNRQ0FDSUFaTEJFQWdCaTBBQUNJSFFTNUhEUUVnRFJCSUlRY2dCU0FGS0FJQUlnaEJBV28yQWdBZ0NDQUhPZ0FBSUFaQkFXb2hCZ3NnQ2lBR0lBSWdCU2dDQUJCd0lBVWdCU2dDQUNBQ0lBWnJhaUlGTmdJQUlBUWdCU0FESUFFZ0FHdHFJQUVnQWtZYk5nSUFJQWtRQ2hvZ0NVRVFhaVFBRHdzZ0NpQUhRUmgwUVJoMUVDa2hCeUFGSUFVb0FnQWlDRUVCYWpZQ0FDQUlJQWM2QUFBZ0JrRUJhaUVHREFBTEFBczJBUUovUWZRQkVCa2lBZ1IvSUFJZ0FDQUJRUU4wRUlRRElnQkJBRWdFUUNBQ0VCQkJBQThMSUFJZ0FEWUM4QUVnQWdVZ0F3c0xuUU1CQW44akFFSGdBbXNpQUNRQUlBQWdBallDMEFJZ0FDQUJOZ0xZQWlBREVGd2hCaUFESUFCQjRBRnFFSmdCSVFjZ0FFSFFBV29nQXlBQVFjd0NhaENYQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUWRnQ2FpQUFRZEFDYWhBMlJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFSFlBbW9RSVNBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBS0FMTUFpQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0J4Q0tBUTBBSUFCQjJBSnFFQ1VhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLOEFTQUVJQVlReEFJMkFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUWRnQ2FpQUFRZEFDYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBTFlBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUhnQW1va0FDQUNDMElCQVg4akFFRVFheUlESkFBZ0F5QUJOZ0lNSUFNZ0FqWUNDQ0FESUFOQkRHb1FVaUVCSUFCQjh4c2dBeWdDQ0JEZkFpRUFJQUVRVVNBRFFSQnFKQUFnQUF1eEFnSUVmZ1YvSXdCQklHc2lDQ1FBQWtBQ1FBSkFJQUVnQWtjRVFFSEVnUUVvQWdBaERFSEVnUUZCQURZQ0FDTUFRUkJySWdra0FCQVdHaU1BUVJCcklnb2tBQ01BUVJCcklnc2tBQ0FMSUFFZ0NFRWNha0VDRU5nQklBc3BBd0FoQkNBS0lBc3BBd2czQXdnZ0NpQUVOd01BSUF0QkVHb2tBQ0FLS1FNQUlRUWdDU0FLS1FNSU53TUlJQWtnQkRjREFDQUtRUkJxSkFBZ0NTa0RBQ0VFSUFnZ0NTa0RDRGNERUNBSUlBUTNBd2dnQ1VFUWFpUUFJQWdwQXhBaEJDQUlLUU1JSVFWQnhJRUJLQUlBSWdGRkRRRWdDQ2dDSENBQ1J3MENJQVVoQmlBRUlRY2dBVUhFQUVjTkF3d0NDeUFEUVFRMkFnQU1BZ3RCeElFQklBdzJBZ0FnQ0NnQ0hDQUNSZzBCQ3lBRFFRUTJBZ0FnQmlFRklBY2hCQXNnQUNBRk53TUFJQUFnQkRjRENDQUlRU0JxSkFBTHRnRUNBbndEZnlNQVFSQnJJZ1VrQUFKQUFrQUNRQ0FBSUFGSEJFQkJ4SUVCS0FJQUlRZEJ4SUVCUVFBMkFnQVFGaG9qQUVFUWF5SUdKQUFnQmlBQUlBVkJER3BCQVJEWUFTQUdLUU1BSUFZcEF3Z1EzUUVoQXlBR1FSQnFKQUJCeElFQktBSUFJZ0JGRFFFZ0JTZ0NEQ0FCUncwQ0lBTWhCQ0FBUWNRQVJ3MEREQUlMSUFKQkJEWUNBQXdDQzBIRWdRRWdCellDQUNBRktBSU1JQUZHRFFFTElBSkJCRFlDQUNBRUlRTUxJQVZCRUdva0FDQURDN1lCQWdKOUEzOGpBRUVRYXlJRkpBQUNRQUpBQWtBZ0FDQUJSd1JBUWNTQkFTZ0NBQ0VIUWNTQkFVRUFOZ0lBRUJZYUl3QkJFR3NpQmlRQUlBWWdBQ0FGUVF4cVFRQVEyQUVnQmlrREFDQUdLUU1JRU9FQ0lRTWdCa0VRYWlRQVFjU0JBU2dDQUNJQVJRMEJJQVVvQWd3Z0FVY05BaUFESVFRZ0FFSEVBRWNOQXd3Q0N5QUNRUVEyQWdBTUFndEJ4SUVCSUFjMkFnQWdCU2dDRENBQlJnMEJDeUFDUVFRMkFnQWdCQ0VEQ3lBRlFSQnFKQUFnQXd2R0FRSURmd0YrSXdCQkVHc2lCQ1FBQW40Q1FBSkFJQUFnQVVjRVFBSkFBa0FnQUMwQUFDSUZRUzFIRFFBZ0FFRUJhaUlBSUFGSERRQU1BUXRCeElFQktBSUFJUVpCeElFQlFRQTJBZ0FnQUNBRVFReHFJQU1RRmhEWkFTRUhBa0JCeElFQktBSUFJZ0FFUUNBRUtBSU1JQUZIRFFFZ0FFSEVBRVlOQkF3RkMwSEVnUUVnQmpZQ0FDQUVLQUlNSUFGR0RRUUxDd3NnQWtFRU5nSUFRZ0FNQWdzZ0FrRUVOZ0lBUW44TUFRdENBQ0FIZlNBSElBVkJMVVliQ3lFSElBUkJFR29rQUNBSEM5Y0JBZ04vQVg0akFFRVFheUlFSkFBQ2Z3SkFBa0FDUUNBQUlBRkhCRUFDUUFKQUlBQXRBQUFpQlVFdFJ3MEFJQUJCQVdvaUFDQUJSdzBBREFFTFFjU0JBU2dDQUNFR1FjU0JBVUVBTmdJQUlBQWdCRUVNYWlBREVCWVEyUUVoQndKQVFjU0JBU2dDQUNJQUJFQWdCQ2dDRENBQlJ3MEJJQUJCeEFCR0RRVU1CQXRCeElFQklBWTJBZ0FnQkNnQ0RDQUJSZzBEQ3dzTElBSkJCRFlDQUVFQURBTUxJQWRDLy8vLy93OVlEUUVMSUFKQkJEWUNBRUYvREFFTFFRQWdCNmNpQUdzZ0FDQUZRUzFHR3dzaEFDQUVRUkJxSkFBZ0FBdVNBd0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFNUVhDRUdJQUJCMEFGcUlBTWdBRUgvQVdvUW1RRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFR0lBbW9nQUVHQUFtb1FNVVVOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCaUFKcUVCOGdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDd0Evd0VnQUVIUUFXb2dBRUVRYWlBQVFReHFRZERRQUJDTkFRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4QUkyQWdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M5d0JBZ04vQVg0akFFRVFheUlFSkFBQ2Z3SkFBa0FDUUNBQUlBRkhCRUFDUUFKQUlBQXRBQUFpQlVFdFJ3MEFJQUJCQVdvaUFDQUJSdzBBREFFTFFjU0JBU2dDQUNFR1FjU0JBVUVBTmdJQUlBQWdCRUVNYWlBREVCWVEyUUVoQndKQVFjU0JBU2dDQUNJQUJFQWdCQ2dDRENBQlJ3MEJJQUJCeEFCR0RRVU1CQXRCeElFQklBWTJBZ0FnQkNnQ0RDQUJSZzBEQ3dzTElBSkJCRFlDQUVFQURBTUxJQWRDLy84RFdBMEJDeUFDUVFRMkFnQkIvLzhEREFFTFFRQWdCNmNpQUdzZ0FDQUZRUzFHR3dzaEFDQUVRUkJxSkFBZ0FFSC8vd054QzdZQkFnRitBbjhqQUVFUWF5SUZKQUFDUUFKQUlBQWdBVWNFUUVIRWdRRW9BZ0FoQmtIRWdRRkJBRFlDQUNBQUlBVkJER29nQXhBV0VNNENJUVFDUUVIRWdRRW9BZ0FpQUFSQUlBVW9BZ3dnQVVjTkFTQUFRY1FBUmcwRERBUUxRY1NCQVNBR05nSUFJQVVvQWd3Z0FVWU5Bd3NMSUFKQkJEWUNBRUlBSVFRTUFRc2dBa0VFTmdJQUlBUkNBRlVFUUVMLy8vLy8vLy8vLy84QUlRUU1BUXRDZ0lDQWdJQ0FnSUNBZnlFRUN5QUZRUkJxSkFBZ0JBdjBBUUVKZnlBQkVBMGhCQ0FCRUFraEJ5TUFRU0JySWdFa0FBSkFJQUZCR0dvZ0FCQ0FBeUlJTFFBQVJRMEFJQUZCQ0dvZ0FCREhBU0VKSUFBZ0FDZ0NBRUVNYXlnQ0FHb2lCU2dDQkNFS0FrQkJmeUFGSWdJb0Frd1FYMFVFUUNBQ0tBSk1JUUlNQVFzZ0FnSi9Jd0JCRUdzaUF5UUFJQU5CQ0dvaUJpQUNFQThnQmhBeVFTQVFLU0VDSUFZUURpQURRUkJxSkFBZ0FnczJBa3dMSUFKQkdIUkJHSFVoQWlBQklBa29BZ0FnQkNBRUlBZHFJZ01nQkNBS1FiQUJjVUVnUmhzZ0F5QUZJQUlRVmpZQ0VDQUJLQUlRRFFBZ0FDQUFLQUlBUVF4cktBSUFha0VGRUlBQkN5QUlFUDRDSUFGQklHb2tBQXZEQVFJQ2Z3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUlBQWdBVWNFUUVIRWdRRW9BZ0FoQlVIRWdRRkJBRFlDQUNBQUlBUkJER29nQXhBV0VNNENJUVlDUUVIRWdRRW9BZ0FpQUFSQUlBUW9BZ3dnQVVjTkFTQUFRY1FBUmcwRURBTUxRY1NCQVNBRk5nSUFJQVFvQWd3Z0FVWU5BZ3NMSUFKQkJEWUNBRUVBREFJTElBWkNnSUNBZ0hoVElBWkMvLy8vL3dkVmNnMEFJQWFuREFFTElBSkJCRFlDQUVILy8vLy9CeUFHUWdCVkRRQWFRWUNBZ0lCNEN5RUFJQVJCRUdva0FDQUFDMVFCQW44akFFRVFheUlESkFBZ0EwRUNOZ0lNSUFJZ0FSQUpJZ1JMQkVBUUZ3QUxJQUVRRFNFQklBTWdCQ0FDYXpZQ0JDQUFJQUVnQW1vZ0EwRU1haUFEUVFScUVLSUJLQUlBRVBVQklBTkJFR29rQUFzS0FDQUJJQUJyUVF4dEN4Z0FJQUFnQUNnQ0FFRU1heWdDQUdwQkFoRUFBQm9nQUF1VUFRRUVmeU1BUVJCcklnVWtBQ0FCSUFJUW9RSWlCRUh2Ly8vL0EwMEVRQUpBSUFSQkFVMEVRQ0FBSUFRUU9pQUFJUU1NQVFzZ0FDQUFJQVFRZ2dGQkFXb2lCaENCQVNJREVFMGdBQ0FHRUV3Z0FDQUVFRGtMQTBBZ0FTQUNSd1JBSUFNZ0FSQXpJQU5CQkdvaEF5QUJRUVJxSVFFTUFRc0xJQVZCQURZQ0RDQURJQVZCREdvUU15QUZRUkJxSkFBUEN4QVhBQXNXQUNBQUlBRWdBa0tBZ0lDQWdJQ0FnSUIvRU04Q0M1SUVBZ2QvQkg0akFFRVFheUlJSkFBQ1FBSkFBa0FnQWtFa1RBUkFJQUF0QUFBaUJRMEJJQUFoQkF3Q0MwSEVnUUZCSERZQ0FFSUFJUU1NQWdzZ0FDRUVBa0FEUUNBRlFSaDBRUmgxRUhGRkRRRWdCQzBBQVNFRklBUkJBV29oQkNBRkRRQUxEQUVMQWtBZ0JDMEFBQ0lGUVN0ckRnTUFBUUFCQzBGL1FRQWdCVUV0UmhzaEJ5QUVRUUZxSVFRTEFuOENRQ0FDUVc5eERRQWdCQzBBQUVFd1J3MEFRUUVoQ1NBRUxRQUJRZDhCY1VIWUFFWUVRQ0FFUVFKcUlRUkJFQXdDQ3lBRVFRRnFJUVFnQWtFSUlBSWJEQUVMSUFKQkNpQUNHd3NpQ3F3aERFRUFJUUlEUUFKQVFWQWhCUUpBSUFRc0FBQWlCa0V3YTBIL0FYRkJDa2tOQUVHcGZ5RUZJQVpCNFFCclFmOEJjVUVhU1EwQVFVa2hCU0FHUWNFQWEwSC9BWEZCR1VzTkFRc2dCU0FHYWlJR0lBcE9EUUFnQ0NBTVFnQWdDMElBRUN0QkFTRUZBa0FnQ0NrRENFSUFVZzBBSUFzZ0RINGlEU0FHckNJT1FuK0ZWZzBBSUEwZ0Rud2hDMEVCSVFrZ0FpRUZDeUFFUVFGcUlRUWdCU0VDREFFTEN5QUJCRUFnQVNBRUlBQWdDUnMyQWdBTEFrQUNRQ0FDQkVCQnhJRUJRY1FBTmdJQUlBZEJBQ0FEUWdHRElneFFHeUVISUFNaEN3d0JDeUFESUF0V0RRRWdBMElCZ3lFTUN5QU1weUFIY2tVRVFFSEVnUUZCeEFBMkFnQWdBMElCZlNFRERBSUxJQU1nQzFvTkFFSEVnUUZCeEFBMkFnQU1BUXNnQ3lBSHJDSURoU0FEZlNFREN5QUlRUkJxSkFBZ0F3c3hBUUYvUWNpR0FTZ0NBQ0VCSUFBRVFFSEloZ0ZCMklVQklBQWdBRUYvUmhzMkFnQUxRWDhnQVNBQlFkaUZBVVliQzYwSUFRVi9JQUVvQWdBaEJBSkFBa0FDUUFKQUFrQUNRQUpBQW44Q1FBSkFBa0FDUUNBRFJRMEFJQU1vQWdBaUJrVU5BQ0FBUlFSQUlBSWhBd3dEQ3lBRFFRQTJBZ0FnQWlFRERBRUxBa0JCeUlZQktBSUFLQUlBUlFSQUlBQkZEUUVnQWtVTkRDQUNJUVlEUUNBRUxBQUFJZ01FUUNBQUlBTkIvNzhEY1RZQ0FDQUFRUVJxSVFBZ0JFRUJhaUVFSUFaQkFXc2lCZzBCREE0TEN5QUFRUUEyQWdBZ0FVRUFOZ0lBSUFJZ0Jtc1BDeUFDSVFNZ0FFVU5Bd3dGQ3lBRUVKNEJEd3RCQVNFRkRBTUxRUUFNQVF0QkFRc2hCUU5BSUFWRkJFQWdCQzBBQUVFRGRpSUZRUkJySUFaQkduVWdCV3B5UVFkTERRTUNmeUFFUVFGcUlnVWdCa0dBZ0lBUWNVVU5BQm9nQlMwQUFFSEFBWEZCZ0FGSEJFQWdCRUVCYXlFRURBY0xJQVJCQW1vaUJTQUdRWUNBSUhGRkRRQWFJQVV0QUFCQndBRnhRWUFCUndSQUlBUkJBV3NoQkF3SEN5QUVRUU5xQ3lFRUlBTkJBV3NoQTBFQklRVU1BUXNEUUFKQUlBUkJBM0VnQkMwQUFDSUdRUUZyUWY0QVMzSU5BQ0FFS0FJQUlnWkJnWUtFQ0dzZ0JuSkJnSUdDaEhoeERRQURRQ0FEUVFScklRTWdCQ2dDQkNFR0lBUkJCR29oQkNBR0lBWkJnWUtFQ0d0eVFZQ0Jnb1I0Y1VVTkFBc0xJQVpCL3dGeElnVkJBV3RCL2dCTkJFQWdBMEVCYXlFRElBUkJBV29oQkF3QkN3c2dCVUhDQVdzaUJVRXlTdzBESUFSQkFXb2hCQ0FGUVFKMFFiQXJhaWdDQUNFR1FRQWhCUXdBQ3dBTEEwQWdCVVVFUUNBRFJRMEhBMEFDUUFKQUFrQWdCQzBBQUNJRlFRRnJJZ2RCL2dCTEJFQWdCU0VHREFFTElBUkJBM0VnQTBFRlNYSU5BUUpBQTBBZ0JDZ0NBQ0lHUVlHQ2hBaHJJQVp5UVlDQmdvUjRjUTBCSUFBZ0JrSC9BWEUyQWdBZ0FDQUVMUUFCTmdJRUlBQWdCQzBBQWpZQ0NDQUFJQVF0QUFNMkFnd2dBRUVRYWlFQUlBUkJCR29oQkNBRFFRUnJJZ05CQkVzTkFBc2dCQzBBQUNFR0N5QUdRZjhCY1NJRlFRRnJJUWNMSUFkQi9nQkxEUUVMSUFBZ0JUWUNBQ0FBUVFScUlRQWdCRUVCYWlFRUlBTkJBV3NpQXcwQkRBa0xDeUFGUWNJQmF5SUZRVEpMRFFNZ0JFRUJhaUVFSUFWQkFuUkJzQ3RxS0FJQUlRWkJBU0VGREFFTElBUXRBQUFpQlVFRGRpSUhRUkJySUFjZ0JrRWFkV3B5UVFkTERRRUNRQUpBQW44Z0JFRUJhaUlISUFWQmdBRnJJQVpCQm5SeUlnVkJBRTROQUJvZ0J5MEFBRUdBQVdzaUIwRS9TdzBCSUFSQkFtb2lDQ0FISUFWQkJuUnlJZ1ZCQUU0TkFCb2dDQzBBQUVHQUFXc2lCMEUvU3cwQklBY2dCVUVHZEhJaEJTQUVRUU5xQ3lFRUlBQWdCVFlDQUNBRFFRRnJJUU1nQUVFRWFpRUFEQUVMUWNTQkFVRVpOZ0lBSUFSQkFXc2hCQXdGQzBFQUlRVU1BQXNBQ3lBRVFRRnJJUVFnQmcwQklBUXRBQUFoQmdzZ0JrSC9BWEVOQUNBQUJFQWdBRUVBTmdJQUlBRkJBRFlDQUFzZ0FpQURhdzhMUWNTQkFVRVpOZ0lBSUFCRkRRRUxJQUVnQkRZQ0FBdEJmdzhMSUFFZ0JEWUNBQ0FDQ3lNQkFuOGdBQ0VCQTBBZ0FTSUNRUVJxSVFFZ0FpZ0NBQTBBQ3lBQ0lBQnJRUUoxQ3c0QUlBQVEzUUlFUUNBQUVCQUxDeXdCQVg4akFFRVFheUlDSkFBZ0FpQUJOZ0lNSUFCQjVBQkI3aHdnQVJDMUFTRUFJQUpCRUdva0FDQUFDeWtCQVg4akFFRVFheUlDSkFBZ0FpQUJOZ0lNSUFCQjlCd2dBUkRmQWlFQUlBSkJFR29rQUNBQUN4WUFJQUFRUlVFQVJ5QUFRU0J5UWVFQWEwRUdTWElMNWdJQkJIOGdBRUZBYXlJRFFhd29OZ0lBSUFOQjVDRTJBZ0FnQUVIc0pUWUNBQ0FEUVpRbU5nSUFJQUJCZ0NZMkFnZ2dBRUdrSmlnQ0FDSUJOZ0lBSUFBZ0FVRU1heWdDQUdwQnFDWW9BZ0EyQWdBZ0FFRUFOZ0lFSUFBZ0FDZ0NBRUVNYXlnQ0FHb2lBa0VBTmdJVUlBSWdBRUVNYWlJQk5nSVlJQUpCQURZQ0RDQUNRb0tnZ0lEZ0FEY0NCQ0FDSUFGRk5nSVFJQUpCSUdwQkFFRW9FRVlhSUFKQkhHb1FqZ0lnQWtFQU5nSklJQUpCZnpZQ1RDQUFRUWhxSWdKQnJDWW9BZ0FpQkRZQ0FDQUNJQVJCREdzb0FnQnFRYkFtS0FJQU5nSUFJQUJCb0NZb0FnQWlBallDQUNBQUlBSkJER3NvQWdCcVFiUW1LQUlBTmdJQUlBQkJ1Q1lvQWdBMkFnZ2dBRUhzSlRZQ0FDQURRWlFtTmdJQUlBQkJnQ1kyQWdnZ0FVR3NIellDQUNBQlFRUnFFSTRDSUFGQ0FEY0NHQ0FCUWdBM0FoQWdBVUlBTndJSUlBRkJwQ0UyQWdBZ0FVRWdhaEFSR2lBQlFSZzJBakFnQVVFQU5nSXNJQUFMdkFJQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FCUVFsckRoSUFDQWtLQ0FrQkFnTUVDZ2tLQ2dnSkJRWUhDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUVvQWdBMkFnQVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUV5QVFBM0F3QVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUV6QVFBM0F3QVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUV3QUFBM0F3QVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUV4QUFBM0F3QVBDeUFDSUFJb0FnQkJCMnBCZUhFaUFVRUlhallDQUNBQUlBRXJBd0E1QXdBUEN5QUFJQUpCTXhFREFBc1BDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUUwQWdBM0F3QVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUUxQWdBM0F3QVBDeUFDSUFJb0FnQkJCMnBCZUhFaUFVRUlhallDQUNBQUlBRXBBd0EzQXdBTGF3RUVmeUFBS0FJQUxBQUFFRVZGQkVCQkFBOExBMEFnQUNnQ0FDRURRWDhoQVNBQ1FjeVpzK1lBVFFSQVFYOGdBeXdBQUVFd2F5SUVJQUpCQ213aUFXb2dCRUgvLy8vL0J5QUJhMG9iSVFFTElBQWdBMEVCYWpZQ0FDQUJJUUlnQXl3QUFSQkZEUUFMSUFFTDlCSUNFWDhCZmlNQVFkQUFheUlGSkFBZ0JTQUJOZ0pNSUFWQk4yb2hGQ0FGUVRocUlSQkJBQ0VCQWtBQ1FBSkFBa0FEUUNBQlFmLy8vLzhISUF0clNnMEJJQUVnQzJvaEN5QUZLQUpNSWdvaEFRSkFBa0FDUUNBS0xRQUFJZ2tFUUFOQUFrQUNRQ0FKUWY4QmNTSUdSUVJBSUFFaENRd0JDeUFHUVNWSERRRWdBU0VKQTBBZ0FTMEFBVUVsUncwQklBVWdBVUVDYWlJR05nSk1JQWxCQVdvaENTQUJMUUFDSVFnZ0JpRUJJQWhCSlVZTkFBc0xJQWtnQ21zaUFVSC8vLy8vQnlBTGF5SVZTZzBISUFBRVFDQUFJQW9nQVJBcUN5QUJEUVpCZnlFT1FRRWhCaUFGS0FKTUxBQUJFRVVoQVNBRktBSk1JUWdDUUNBQlJRMEFJQWd0QUFKQkpFY05BQ0FJTEFBQlFUQnJJUTVCQVNFU1FRTWhCZ3NnQlNBR0lBaHFJZ0UyQWt4QkFDRU1Ba0FnQVN3QUFDSVJRU0JySWdoQkgwc0VRQ0FCSVFZTUFRc2dBU0VHUVFFZ0NIUWlCMEdKMFFSeFJRMEFBMEFnQlNBQlFRRnFJZ1kyQWt3Z0J5QU1jaUVNSUFFc0FBRWlFVUVnYXlJSVFTQlBEUUVnQmlFQlFRRWdDSFFpQjBHSjBRUnhEUUFMQ3dKQUlCRkJLa1lFUUNBRkFuOENRQ0FHTEFBQkVFVkZEUUFnQlNnQ1RDSUJMUUFDUVNSSERRQWdBU3dBQVVFQ2RDQUVha0hBQVd0QkNqWUNBQ0FCTEFBQlFRTjBJQU5xUVlBRGF5Z0NBQ0VOUVFFaEVpQUJRUU5xREFFTElCSU5Ca0VBSVJKQkFDRU5JQUFFUUNBQ0lBSW9BZ0FpQVVFRWFqWUNBQ0FCS0FJQUlRMExJQVVvQWt4QkFXb0xJZ0UyQWt3Z0RVRUFUZzBCUVFBZ0RXc2hEU0FNUVlEQUFISWhEQXdCQ3lBRlFjd0FhaERaQWlJTlFRQklEUWdnQlNnQ1RDRUJDMEVBSVFaQmZ5RUhBbjlCQUNBQkxRQUFRUzVIRFFBYUlBRXRBQUZCS2tZRVFDQUZBbjhDUUNBQkxBQUNFRVZGRFFBZ0JTZ0NUQ0lCTFFBRFFTUkhEUUFnQVN3QUFrRUNkQ0FFYWtIQUFXdEJDallDQUNBQkxBQUNRUU4wSUFOcVFZQURheWdDQUNFSElBRkJCR29NQVFzZ0VnMEdJQUFFZnlBQ0lBSW9BZ0FpQVVFRWFqWUNBQ0FCS0FJQUJVRUFDeUVISUFVb0FreEJBbW9MSWdFMkFrd2dCMEYvYzBFZmRnd0JDeUFGSUFGQkFXbzJBa3dnQlVITUFHb1EyUUloQnlBRktBSk1JUUZCQVFzaEV3TkFJQVloRDBFY0lRa2dBU3dBQUVIQkFHdEJPVXNOQ1NBRklBRkJBV29pRVRZQ1RDQUJMQUFBSVFZZ0VTRUJJQVlnRDBFNmJHcEIveTFxTFFBQUlnWkJBV3RCQ0VrTkFBc0NRQUpBSUFaQkcwY0VRQ0FHUlEwTElBNUJBRTRFUUNBRUlBNUJBblJxSUFZMkFnQWdCU0FESUE1QkEzUnFLUU1BTndOQURBSUxJQUJGRFFnZ0JVRkFheUFHSUFJUTJBSWdCU2dDVENFUkRBSUxJQTVCQUU0TkNndEJBQ0VCSUFCRkRRY0xJQXhCLy85N2NTSUlJQXdnREVHQXdBQnhHeUVHUVFBaERFSHZHaUVPSUJBaENRSkFBa0FDUUFKL0FrQUNRQUpBQWtBQ2Z3SkFBa0FDUUFKQUFrQUNRQUpBSUJGQkFXc3NBQUFpQVVGZmNTQUJJQUZCRDNGQkEwWWJJQUVnRHhzaUFVSFlBR3NPSVFRVUZCUVVGQlFVRkE0VUR3WU9EZzRVQmhRVUZCUUNCUU1VRkFrVUFSUVVCQUFMQWtBZ0FVSEJBR3NPQnc0VUN4UU9EZzRBQ3lBQlFkTUFSZzBKREJNTElBVXBBMEFoRmtIdkdnd0ZDMEVBSVFFQ1FBSkFBa0FDUUFKQUFrQUNRQ0FQUWY4QmNRNElBQUVDQXdRYUJRWWFDeUFGS0FKQUlBczJBZ0FNR1FzZ0JTZ0NRQ0FMTmdJQURCZ0xJQVVvQWtBZ0M2dzNBd0FNRndzZ0JTZ0NRQ0FMT3dFQURCWUxJQVVvQWtBZ0N6b0FBQXdWQ3lBRktBSkFJQXMyQWdBTUZBc2dCU2dDUUNBTHJEY0RBQXdUQ3lBSFFRZ2dCMEVJU3hzaEJ5QUdRUWh5SVFaQitBQWhBUXNnRUNFSUlBRkJJSEVoRHlBRktRTkFJaFpRUlFSQUEwQWdDRUVCYXlJSUlCYW5RUTl4UVpBeWFpMEFBQ0FQY2pvQUFDQVdRZzlXSVFvZ0ZrSUVpQ0VXSUFvTkFBc0xJQWdoQ2lBR1FRaHhSU0FGS1FOQVVISU5BeUFCUVFSMlFlOGFhaUVPUVFJaERBd0RDeUFRSVFFZ0JTa0RRQ0lXVUVVRVFBTkFJQUZCQVdzaUFTQVdwMEVIY1VFd2Nqb0FBQ0FXUWdkV0lRZ2dGa0lEaUNFV0lBZ05BQXNMSUFFaENpQUdRUWh4UlEwQ0lBY2dFQ0FLYXlJQlFRRnFJQUVnQjBnYklRY01BZ3NnQlNrRFFDSVdRZ0JUQkVBZ0JVSUFJQlo5SWhZM0EwQkJBU0VNUWU4YURBRUxJQVpCZ0JCeEJFQkJBU0VNUWZBYURBRUxRZkVhUWU4YUlBWkJBWEVpREJzTElRNGdGaUFRRUk4QklRb0xJQk5CQUNBSFFRQklHdzBPSUFaQi8vOTdjU0FHSUJNYklRWWdCU2tEUUNJV1FnQlNJQWR5UlFSQUlCQWhDa0VBSVFjTURBc2dCeUFXVUNBUUlBcHJhaUlCSUFFZ0IwZ2JJUWNNQ3dzZ0JTZ0NRQ0lCUWZJZUlBRWJJZ29pQ1VFQVFmLy8vLzhISUFjZ0IwRUFTQnNpQmhEY0FTSUJJQWxySUFZZ0FSc2lBU0FLYWlFSklBZEJBRTRFUUNBSUlRWWdBU0VIREFzTElBZ2hCaUFCSVFjZ0NTMEFBQTBOREFvTElBY0VRQ0FGS0FKQURBSUxRUUFoQVNBQVFTQWdEVUVBSUFZUUxnd0NDeUFGUVFBMkFnd2dCU0FGS1FOQVBnSUlJQVVnQlVFSWFpSUJOZ0pBUVg4aEJ5QUJDeUVKUVFBaEFRSkFBMEFnQ1NnQ0FDSUlSUTBCSUFWQkJHb2dDQkRjQWlJS1FRQklJZ2dnQ2lBSElBRnJTM0pGQkVBZ0NVRUVhaUVKSUFjZ0FTQUthaUlCU3cwQkRBSUxDeUFJRFEwTFFUMGhDU0FCUVFCSURRc2dBRUVnSUEwZ0FTQUdFQzRnQVVVRVFFRUFJUUVNQVF0QkFDRUhJQVVvQWtBaENRTkFJQWtvQWdBaUNFVU5BU0FGUVFScUlBZ1EzQUlpQ0NBSGFpSUhJQUZMRFFFZ0FDQUZRUVJxSUFnUUtpQUpRUVJxSVFrZ0FTQUhTdzBBQ3dzZ0FFRWdJQTBnQVNBR1FZREFBSE1RTGlBTklBRWdBU0FOU0JzaEFRd0lDeUFUUVFBZ0IwRUFTQnNOQ0VFOUlRa2dBQ0FGS3dOQUlBMGdCeUFHSUFGQk1oRWRBQ0lCUVFCT0RRY01DUXNnQlNBRktRTkFQQUEzUVFFaEJ5QVVJUW9nQ0NFR0RBUUxJQVVnQVVFQmFpSUdOZ0pNSUFFdEFBRWhDU0FHSVFFTUFBc0FDeUFBRFFjZ0VrVU5Ba0VCSVFFRFFDQUVJQUZCQW5ScUtBSUFJZ0FFUUNBRElBRkJBM1JxSUFBZ0FoRFlBa0VCSVFzZ0FVRUJhaUlCUVFwSERRRU1DUXNMUVFFaEN5QUJRUXBQRFFjRFFDQUVJQUZCQW5ScUtBSUFEUUVnQVVFQmFpSUJRUXBIRFFBTERBY0xRUndoQ1F3RUN5QUpJQXBySWc4Z0J5QUhJQTlJR3lJSVFmLy8vLzhISUF4clNnMENRVDBoQ1NBSUlBeHFJZ2NnRFNBSElBMUtHeUlCSUJWS0RRTWdBRUVnSUFFZ0J5QUdFQzRnQUNBT0lBd1FLaUFBUVRBZ0FTQUhJQVpCZ0lBRWN4QXVJQUJCTUNBSUlBOUJBQkF1SUFBZ0NpQVBFQ29nQUVFZ0lBRWdCeUFHUVlEQUFITVFMZ3dCQ3d0QkFDRUxEQU1MUVQwaENRdEJ4SUVCSUFrMkFnQUxRWDhoQ3dzZ0JVSFFBR29rQUNBTEMzOENBWDhCZmlBQXZTSURRalNJcDBIL0QzRWlBa0gvRDBjRWZDQUNSUVJBSUFFZ0FFUUFBQUFBQUFBQUFHRUVmMEVBQlNBQVJBQUFBQUFBQVBCRG9pQUJFTnNDSVFBZ0FTZ0NBRUZBYWdzMkFnQWdBQThMSUFFZ0FrSCtCMnMyQWdBZ0EwTC8vLy8vLy8vL2g0Qi9nMEtBZ0lDQWdJQ0E4RCtFdndVZ0FBc0xFZ0FnQUVVRVFFRUFEd3NnQUNBQkVOb0JDeVVBSUFCQkFFY2dBRUc0TFVkeElBQkIwQzFIY1NBQVFmQ0dBVWR4SUFCQmlJY0JSM0VMNkFJQkEzOENRQ0FCTFFBQURRQkJpaDRRMndFaUFRUkFJQUV0QUFBTkFRc2dBRUVNYkVId0xXb1Eyd0VpQVFSQUlBRXRBQUFOQVF0QmtSNFEyd0VpQVFSQUlBRXRBQUFOQVF0QnB4NGhBUXNDUUFOQUlBRWdBbW90QUFBaUJFVWdCRUV2Um5KRkJFQkJGeUVFSUFKQkFXb2lBa0VYUncwQkRBSUxDeUFDSVFRTFFhY2VJUU1DUUFKQUFrQUNRQUpBSUFFdEFBQWlBa0V1UmcwQUlBRWdCR290QUFBTkFDQUJJUU1nQWtIREFFY05BUXNnQXkwQUFVVU5BUXNnQTBHbkhoQzJBVVVOQUNBRFFmRWRFTFlCRFFFTElBQkZCRUJCbEMwaEFpQURMUUFCUVM1R0RRSUxRUUFQQzBFQUlRRkI3SVlCS0FJQUlnSUVRQU5BSUFNZ0FrRUlhaEMyQVVVTkFpQUNLQUlnSWdJTkFBc0xRU1FRR1NJQ0JFQWdBa0dVTFNrQ0FEY0NBQ0FDUVFocUlnRWdBeUFFRUVJYUlBRWdCR3BCQURvQUFDQUNRZXlHQVNnQ0FEWUNJRUhzaGdFZ0FqWUNBQ0FDSVFFTElBRkJsQzBnQUNBQmNoc2hBZ3NnQWd1TkhnSVBmd1YrSXdCQmtBRnJJZ1FrQUNBRVFRQkJrQUVRUmlJRFFYODJBa3dnQXlBQU5nSXNJQU5CTVRZQ0lDQURJQUEyQWxRZ0FTRUVJQUloRGlNQVFiQUNheUlHSkFBZ0F5Z0NUQm9DUUFKQUFrQUNRQ0FES0FJRURRQWdBeERxQVJvZ0F5Z0NCQTBBREFFTElBUXRBQUFpQUVVTkFnSkFBMEFDUUFKQUlBQkIvd0Z4RUhFRVFBTkFJQVFpQUVFQmFpRUVJQUF0QUFFUWNRMEFDeUFEUWdBUVV3TkFBbjhnQXlnQ0JDSUJJQU1vQW1oSEJFQWdBeUFCUVFGcU5nSUVJQUV0QUFBTUFRc2dBeEFTQ3hCeERRQUxJQU1vQWdRaEJDQURLUU53UWdCWkJFQWdBeUFFUVFGcklnUTJBZ1FMSUFRZ0F5Z0NMR3VzSUFNcEEzZ2dGSHg4SVJRTUFRc0Nmd0pBQWtBZ0JDMEFBRUVsUmdSQUlBUXRBQUVpQUVFcVJnMEJJQUJCSlVjTkFnc2dBMElBRUZNQ1FDQUVMUUFBUVNWR0JFQURRQUovSUFNb0FnUWlBQ0FES0FKb1J3UkFJQU1nQUVFQmFqWUNCQ0FBTFFBQURBRUxJQU1RRWdzaUFCQnhEUUFMSUFSQkFXb2hCQXdCQ3lBREtBSUVJZ0FnQXlnQ2FFY0VRQ0FESUFCQkFXbzJBZ1FnQUMwQUFDRUFEQUVMSUFNUUVpRUFDeUFFTFFBQUlBQkhCRUFnQXlrRGNFSUFXUVJBSUFNZ0F5Z0NCRUVCYXpZQ0JBc2dBRUVBVGcwS1FRQWhEQ0FOUlEwSURBb0xJQU1vQWdRZ0F5Z0NMR3VzSUFNcEEzZ2dGSHg4SVJRZ0JDRUFEQU1MUVFBaEFpQUVRUUpxREFFTEFrQWdBQkJGUlEwQUlBUXRBQUpCSkVjTkFDQUVMUUFCUVRCcklRQWpBRUVRYXlJQklBNDJBZ3dnQVNBT0lBQkJBblJCQkd0QkFDQUFRUUZMRzJvaUFFRUVhallDQ0NBQUtBSUFJUUlnQkVFRGFnd0JDeUFPS0FJQUlRSWdEa0VFYWlFT0lBUkJBV29MSVFCQkFDRU1RUUFoQkNBQUxRQUFFRVVFUUFOQUlBQXRBQUFnQkVFS2JHcEJNR3NoQkNBQUxRQUJJUUVnQUVFQmFpRUFJQUVRUlEwQUN3c2dBQzBBQUNJRlFlMEFSd1IvSUFBRlFRQWhDU0FDUVFCSElRd2dBQzBBQVNFRlFRQWhDaUFBUVFGcUN5SUJRUUZxSVFCQkF5RUhBa0FDUUFKQUFrQUNRQUpBSUFWQndRQnJEam9FQ1FRSkJBUUVDUWtKQ1FNSkNRa0pDUWtFQ1FrSkNRUUpDUVFKQ1FrSkNRUUpCQVFFQkFRQUJBVUpBUWtFQkFRSkNRUUNCQWtKQkFrQ0NRc2dBVUVDYWlBQUlBRXRBQUZCNkFCR0lnRWJJUUJCZmtGL0lBRWJJUWNNQkFzZ0FVRUNhaUFBSUFFdEFBRkI3QUJHSWdFYklRQkJBMEVCSUFFYklRY01Bd3RCQVNFSERBSUxRUUloQnd3QkMwRUFJUWNnQVNFQUMwRUJJQWNnQUMwQUFDSUJRUzl4UVFOR0lnVWJJUThDUUNBQlFTQnlJQUVnQlJzaUMwSGJBRVlOQUFKQUlBdEI3Z0JIQkVBZ0MwSGpBRWNOQVNBRVFRRWdCRUVCU2hzaEJBd0NDeUFDSUE4Z0ZCRGdBZ3dDQ3lBRFFnQVFVd05BQW44Z0F5Z0NCQ0lCSUFNb0FtaEhCRUFnQXlBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQXhBU0N4QnhEUUFMSUFNb0FnUWhBU0FES1FOd1FnQlpCRUFnQXlBQlFRRnJJZ0UyQWdRTElBRWdBeWdDTEd1c0lBTXBBM2dnRkh4OElSUUxJQU1nQkt3aUVoQlRBa0FnQXlnQ0JDSUJJQU1vQW1oSEJFQWdBeUFCUVFGcU5nSUVEQUVMSUFNUUVrRUFTQTBFQ3lBREtRTndRZ0JaQkVBZ0F5QURLQUlFUVFGck5nSUVDMEVRSVFFQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQzBIWUFHc09JUVlMQ3dJTEN3c0xDd0VMQWdRQkFRRUxCUXNMQ3dzTEF3WUxDd0lMQkFzTEJnQUxJQXRCd1FCcklnRkJCa3RCQVNBQmRFSHhBSEZGY2cwS0N5QUdRUWhxSUFNZ0QwRUFFT01DSUFNcEEzaENBQ0FES0FJRUlBTW9BaXhyckgxUkRROGdBa1VOQ1NBR0tRTVFJUklnQmlrRENDRVRJQThPQXdVR0J3a0xJQXRCN3dGeFFlTUFSZ1JBSUFaQklHcEJmMEdCQWhCR0dpQUdRUUE2QUNBZ0MwSHpBRWNOQ0NBR1FRQTZBRUVnQmtFQU9nQXVJQVpCQURZQktnd0lDeUFHUVNCcUlBQXRBQUVpQVVIZUFFWWlCVUdCQWhCR0dpQUdRUUE2QUNBZ0FFRUNhaUFBUVFGcUlBVWJJUWdDZndKQUFrQWdBRUVDUVFFZ0JSdHFMUUFBSWdCQkxVY0VRQ0FBUWQwQVJnMEJJQUZCM2dCSElRY2dDQXdEQ3lBR0lBRkIzZ0JISWdjNkFFNE1BUXNnQmlBQlFkNEFSeUlIT2dCK0N5QUlRUUZxQ3lFQUEwQUNRQ0FBTFFBQUlnRkJMVWNFUUNBQlJRMFBJQUZCM1FCSERRRU1DZ3RCTFNFQklBQXRBQUVpQlVVZ0JVSGRBRVp5RFFBZ0FFRUJhaUVJQWtBZ0JTQUFRUUZyTFFBQUlnQk5CRUFnQlNFQkRBRUxBMEFnQUVFQmFpSUFJQVpCSUdwcUlBYzZBQUFnQUNBSUxRQUFJZ0ZKRFFBTEN5QUlJUUFMSUFFZ0Jtb2dCem9BSVNBQVFRRnFJUUFNQUFzQUMwRUlJUUVNQWd0QkNpRUJEQUVMUVFBaEFRdENBQ0VTUVFBaEJVRUFJUWhCQUNFSEl3QkJFR3NpRUNRQUFrQWdBVUVCUnlBQlFTUk5jVVVFUUVIRWdRRkJIRFlDQUF3QkN3TkFBbjhnQXlnQ0JDSUVJQU1vQW1oSEJFQWdBeUFFUVFGcU5nSUVJQVF0QUFBTUFRc2dBeEFTQ3lJRUVIRU5BQXNDUUFKQUlBUkJLMnNPQXdBQkFBRUxRWDlCQUNBRVFTMUdHeUVISUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQUlRUU1BUXNnQXhBU0lRUUxBa0FDUUFKQUFrQWdBVUZ2Y1NBRVFUQkhja1VFUUFKL0lBTW9BZ1FpQkNBREtBSm9Sd1JBSUFNZ0JFRUJhallDQkNBRUxRQUFEQUVMSUFNUUVnc2lCRUZmY1VIWUFFWUVRRUVRSVFFQ2Z5QURLQUlFSWdRZ0F5Z0NhRWNFUUNBRElBUkJBV28yQWdRZ0JDMEFBQXdCQ3lBREVCSUxJZ1JCb1NscUxRQUFRUkJKRFFNZ0F5a0RjRUlBV1FSQUlBTWdBeWdDQkVFQmF6WUNCQXNnQTBJQUVGTU1CZ3NnQVEwQlFRZ2hBUXdDQ3lBQlFRb2dBUnNpQVNBRVFhRXBhaTBBQUVzTkFDQURLUU53UWdCWkJFQWdBeUFES0FJRVFRRnJOZ0lFQ3lBRFFnQVFVMEhFZ1FGQkhEWUNBQXdFQ3lBQlFRcEhEUUFnQkVFd2F5SUZRUWxOQkVCQkFDRUJBMEFnQVVFS2JDQUZhaUlCUVptejVzd0JTUUovSUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQURBRUxJQU1RRWdzaUJFRXdheUlGUVFsTmNRMEFDeUFCclNFU0N3SkFJQVZCQ1VzTkFDQVNRZ3ArSVJNZ0JhMGhGUU5BQW44Z0F5Z0NCQ0lCSUFNb0FtaEhCRUFnQXlBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQXhBU0N5SUVRVEJySWdWQkNVc2dFeUFWZkNJU1FwcXo1c3lacytiTUdWcHlEUUVnRWtJS2ZpSVRJQVd0SWhWQ2Y0VllEUUFMUVFvaEFRd0NDMEVLSVFFZ0JVRUpUUTBCREFJTElBRWdBVUVCYTNFRVFDQUVRYUVwYWkwQUFDSUlJQUZKQkVBRFFDQUJJQVZzSUFocUlnVkJ4K1B4T0VrQ2Z5QURLQUlFSWdRZ0F5Z0NhRWNFUUNBRElBUkJBV28yQWdRZ0JDMEFBQXdCQ3lBREVCSUxJZ1JCb1NscUxRQUFJZ2dnQVVseERRQUxJQVd0SVJJTElBRWdDRTBOQVNBQnJTRVRBMEFnRWlBVGZpSVZJQWl0UXY4Qmd5SVdRbitGVmcwQ0lCVWdGbndoRWlBQkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUWFFcGFpMEFBQ0lJVFEwQ0lCQWdFMElBSUJKQ0FCQXJJQkFwQXdoUURRQUxEQUVMSUFGQkYyeEJCWFpCQjNGQm9TdHFMQUFBSVJFZ0JFR2hLV290QUFBaUJTQUJTUVJBQTBBZ0NDQVJkQ0FGY2lJSVFZQ0FnTUFBU1FKL0lBTW9BZ1FpQkNBREtBSm9Sd1JBSUFNZ0JFRUJhallDQkNBRUxRQUFEQUVMSUFNUUVnc2lCRUdoS1dvdEFBQWlCU0FCU1hFTkFBc2dDSzBoRWdzZ0FTQUZUUTBBUW44Z0VhMGlFNGdpRlNBU1ZBMEFBMEFnQmExQy93R0RJQklnRTRhRUlSSWdBUUovSUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQURBRUxJQU1RRWdzaUJFR2hLV290QUFBaUJVME5BU0FTSUJWWURRQUxDeUFCSUFSQm9TbHFMUUFBVFEwQUEwQWdBUUovSUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQURBRUxJQU1RRWd0Qm9TbHFMUUFBU3cwQUMwSEVnUUZCeEFBMkFnQkJBQ0VIUW44aEVnc2dBeWtEY0VJQVdRUkFJQU1nQXlnQ0JFRUJhellDQkF0QkFDQVNRbjlSSUFkQkFYSWJCRUJCeElFQlFjUUFOZ0lBUW40aEVnd0JDeUFTSUFlc0loT0ZJQk45SVJJTElCQkJFR29rQUNBREtRTjRRZ0FnQXlnQ0JDQURLQUlzYTZ4OVVRMEtJQUpGSUF0QjhBQkhja1VFUUNBQ0lCSStBZ0FNQlFzZ0FpQVBJQklRNEFJTUJBc2dBaUFUSUJJUTRRSTRBZ0FNQXdzZ0FpQVRJQklRM1FFNUF3QU1BZ3NnQWlBVE53TUFJQUlnRWpjRENBd0JDeUFFUVFGcVFSOGdDMEhqQUVZaUJSc2hCd0pBQWtBZ0QwRUJSeUlJUlFSQUlBSWhBU0FNQkVBZ0IwRUNkQkFaSWdGRkRRWUxJQVpDQURjRHFBSkJBQ0VFQTBBZ0FTRUtBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTElnRWdCbW90QUNGRkRRTWdCaUFCT2dBYklBWkJIR29nQmtFYmFrRUJJQVpCcUFKcUVMY0JJZ0ZCZmtZTkFFRUFJUWtnQVVGL1JnMEpJQW9FUUNBS0lBUkJBblJxSUFZb0FodzJBZ0FnQkVFQmFpRUVDeUFNSUFRZ0IwWnhSUTBBQ3lBS0lBZEJBWFJCQVhJaUIwRUNkQkNkQVNJQkRRQUxEQWNMSUF3RVFFRUFJUVFnQnhBWklnRkZEUVVEUUNBQklRa0RRQUovSUFNb0FnUWlBU0FES0FKb1J3UkFJQU1nQVVFQmFqWUNCQ0FCTFFBQURBRUxJQU1RRWdzaUFTQUdhaTBBSVVVRVFFRUFJUW9NQlFzZ0JDQUphaUFCT2dBQUlBUkJBV29pQkNBSFJ3MEFDMEVBSVFvZ0NTQUhRUUYwUVFGeUlnY1FuUUVpQVEwQUN3d0hDMEVBSVFRZ0FnUkFBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTElnRWdCbW90QUNFRVFDQUNJQVJxSUFFNkFBQWdCRUVCYWlFRURBRUZRUUFoQ2lBQ0lRa01CQXNBQ3dBTEEwQUNmeUFES0FJRUlnRWdBeWdDYUVjRVFDQURJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QURFQklMSUFacUxRQWhEUUFMUVFBaENVRUFJUW9NQVF0QkFDRUpJQVpCcUFKcUJIOGdCaWdDcUFJRlFRQUxEUVVMSUFNb0FnUWhBU0FES1FOd1FnQlpCRUFnQXlBQlFRRnJJZ0UyQWdRTElBTXBBM2dnQVNBREtBSXNhNng4SWhOUUlBdEI0d0JHSUJJZ0UxSnhjZzBHQWtBZ0RFVU5BQ0FJUlFSQUlBSWdDallDQUF3QkN5QUNJQWsyQWdBTElBVU5BQ0FLQkVBZ0NpQUVRUUowYWtFQU5nSUFDeUFKUlFSQVFRQWhDUXdCQ3lBRUlBbHFRUUE2QUFBTElBTW9BZ1FnQXlnQ0xHdXNJQU1wQTNnZ0ZIeDhJUlFnRFNBQ1FRQkhhaUVOQ3lBQVFRRnFJUVFnQUMwQUFTSUFEUUVNQlFzTFFRQWhDVUVBSVFvTElBME5BUXRCZnlFTkN5QU1SUTBBSUFrUUVDQUtFQkFMSUFaQnNBSnFKQUFnRFNFQUlBTkJrQUZxSkFBZ0FBdERBQUpBSUFCRkRRQUNRQUpBQWtBQ1FDQUJRUUpxRGdZQUFRSUNCQU1FQ3lBQUlBSThBQUFQQ3lBQUlBSTlBUUFQQ3lBQUlBSStBZ0FQQ3lBQUlBSTNBd0FMQzdRREFnTi9BWDRqQUVFZ2F5SURKQUFDUUNBQlF2Ly8vLy8vLy8vLy93Q0RJZ1ZDZ0lDQWdJQ0F3TUEvZlNBRlFvQ0FnSUNBZ01DL3dBQjlWQVJBSUFGQ0dZaW5JUVFnQUZBZ0FVTC8vLzhQZ3lJRlFvQ0FnQWhVSUFWQ2dJQ0FDRkViUlFSQUlBUkJnWUNBZ0FScUlRSU1BZ3NnQkVHQWdJQ0FCR29oQWlBQUlBVkNnSUNBQ0lXRVFnQlNEUUVnQWlBRVFRRnhhaUVDREFFTElBQlFJQVZDZ0lDQWdJQ0F3UC8vQUZRZ0JVS0FnSUNBZ0lEQS8vOEFVUnRGQkVBZ0FVSVppS2RCLy8vL0FYRkJnSUNBL2dkeUlRSU1BUXRCZ0lDQS9BY2hBaUFGUXYvLy8vLy8vNysvd0FCV0RRQkJBQ0VDSUFWQ01JaW5JZ1JCa2Y0QVNRMEFJQU5CRUdvZ0FDQUJRdi8vLy8vLy96K0RRb0NBZ0lDQWdNQUFoQ0lGSUFSQmdmNEFheEF2SUFNZ0FDQUZRWUgvQUNBRWF4QjhJQU1wQXdnaUFFSVppS2NoQWlBREtRTUFJQU1wQXhBZ0F5a0RHSVJDQUZLdGhDSUZVQ0FBUXYvLy93K0RJZ0JDZ0lDQUNGUWdBRUtBZ0lBSVVSdEZCRUFnQWtFQmFpRUNEQUVMSUFVZ0FFS0FnSUFJaFlSQ0FGSU5BQ0FDUVFGeElBSnFJUUlMSUFOQklHb2tBQ0FDSUFGQ0lJaW5RWUNBZ0lCNGNYSytDNEVFQWdOL0FYNENRQUpBQWtBQ2Z5QUFLQUlFSWdJZ0FDZ0NhRWNFUUNBQUlBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQUVCSUxJZ05CSzJzT0F3RUFBUUFMSUFOQk1Hc2hBUXdCQ3lBRFFTMUdJUVFDUUNBQlJRSi9JQUFvQWdRaUFpQUFLQUpvUndSQUlBQWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBQVFFZ3NpQWtFd2F5SUJRUXBKY2cwQUlBQXBBM0JDQUZNTkFDQUFJQUFvQWdSQkFXczJBZ1FMSUFJaEF3c0NRQ0FCUVFwSkJFQkJBQ0VDQTBBZ0F5QUNRUXBzYWlFQkFuOGdBQ2dDQkNJQ0lBQW9BbWhIQkVBZ0FDQUNRUUZxTmdJRUlBSXRBQUFNQVFzZ0FCQVNDeUVESUFGQk1Hc2hBaUFDUWN5WnMrWUFTQ0FEUVRCcklnRkJDVTF4RFFBTElBS3NJUVVDUUNBQlFRcFBEUUFEUUNBRHJTQUZRZ3ArZkVJd2ZTRUZBbjhnQUNnQ0JDSUJJQUFvQW1oSEJFQWdBQ0FCUVFGcU5nSUVJQUV0QUFBTUFRc2dBQkFTQ3lJRFFUQnJJZ0ZCQ1VzTkFTQUZRcTZQaGRmSHd1dWpBVk1OQUFzTElBRkJDa2tFUUFOQUFuOGdBQ2dDQkNJQklBQW9BbWhIQkVBZ0FDQUJRUUZxTmdJRUlBRXRBQUFNQVFzZ0FCQVNDMEV3YTBFS1NRMEFDd3NnQUNrRGNFSUFXUVJBSUFBZ0FDZ0NCRUVCYXpZQ0JBdENBQ0FGZlNBRklBUWJJUVVNQVF0Q2dJQ0FnSUNBZ0lDQWZ5RUZJQUFwQTNCQ0FGTU5BQ0FBSUFBb0FnUkJBV3MyQWdSQ2dJQ0FnSUNBZ0lDQWZ3OExJQVVMb0RJREVIOEhmZ0Y4SXdCQk1Hc2lEQ1FBQWtBZ0FrRUNUUVJBSUFKQkFuUWlBa0dNS1dvb0FnQWhEeUFDUVlBcGFpZ0NBQ0VPQTBBQ2Z5QUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQkVCSUxJZ0lRY1EwQUMwRUJJUVlDUUFKQUlBSkJLMnNPQXdBQkFBRUxRWDlCQVNBQ1FTMUdHeUVHSUFFb0FnUWlBaUFCS0FKb1J3UkFJQUVnQWtFQmFqWUNCQ0FDTFFBQUlRSU1BUXNnQVJBU0lRSUxBa0FDUUFOQUlBVkJpaHBxTEFBQUlBSkJJSEpHQkVBQ1FDQUZRUVpMRFFBZ0FTZ0NCQ0lDSUFFb0FtaEhCRUFnQVNBQ1FRRnFOZ0lFSUFJdEFBQWhBZ3dCQ3lBQkVCSWhBZ3NnQlVFQmFpSUZRUWhIRFFFTUFnc0xJQVZCQTBjRVFDQUZRUWhHRFFFZ0EwVWdCVUVFU1hJTkFpQUZRUWhHRFFFTElBRXBBM0FpRkVJQVdRUkFJQUVnQVNnQ0JFRUJhellDQkFzZ0EwVWdCVUVFU1hJTkFDQVVRZ0JUSVFJRFFDQUNSUVJBSUFFZ0FTZ0NCRUVCYXpZQ0JBc2dCVUVCYXlJRlFRTkxEUUFMQzBJQUlSUWpBRUVRYXlJQ0pBQUNmaUFHc2tNQUFJQi9sTHdpQTBILy8vLy9CM0VpQVVHQWdJQUVhMEgvLy8vM0IwMEVRQ0FCclVJWmhrS0FnSUNBZ0lDQXdEOThEQUVMSUFPdFFobUdRb0NBZ0lDQWdNRC8vd0NFSUFGQmdJQ0EvQWRQRFFBYVFnQWdBVVVOQUJvZ0FpQUJyVUlBSUFGbklnRkIwUUJxRUM4Z0Fpa0RBQ0VVSUFJcEF3aENnSUNBZ0lDQXdBQ0ZRWW4vQUNBQmE2MUNNSWFFQ3lFVklBd2dGRGNEQUNBTUlCVWdBMEdBZ0lDQWVIR3RRaUNHaERjRENDQUNRUkJxSkFBZ0RDa0RDQ0VVSUF3cEF3QWhGUXdDQ3dKQUFrQUNRQ0FGRFFCQkFDRUZBMEFnQlVISEhHb3NBQUFnQWtFZ2NrY05BUUpBSUFWQkFVc05BQ0FCS0FJRUlnSWdBU2dDYUVjRVFDQUJJQUpCQVdvMkFnUWdBaTBBQUNFQ0RBRUxJQUVRRWlFQ0N5QUZRUUZxSWdWQkEwY05BQXNNQVFzQ1FBSkFJQVVPQkFBQkFRSUJDd0pBSUFKQk1FY05BQUovSUFFb0FnUWlCU0FCS0FKb1J3UkFJQUVnQlVFQmFqWUNCQ0FGTFFBQURBRUxJQUVRRWd0QlgzRkIyQUJHQkVBakFFR3dBMnNpQWlRQUFuOGdBU2dDQkNJRklBRW9BbWhIQkVBZ0FTQUZRUUZxTmdJRUlBVXRBQUFNQVFzZ0FSQVNDeUVGQWtBQ2Z3TkFJQVZCTUVjRVFBSkFJQVZCTGtjTkJDQUJLQUlFSWdVZ0FTZ0NhRVlOQUNBQklBVkJBV28yQWdRZ0JTMEFBQXdEQ3dVZ0FTZ0NCQ0lGSUFFb0FtaEhCSDlCQVNFS0lBRWdCVUVCYWpZQ0JDQUZMUUFBQlVFQklRb2dBUkFTQ3lFRkRBRUxDeUFCRUJJTElRVkJBU0VFSUFWQk1FY05BQU5BSUJkQ0FYMGhGd0ovSUFFb0FnUWlCU0FCS0FKb1J3UkFJQUVnQlVFQmFqWUNCQ0FGTFFBQURBRUxJQUVRRWdzaUJVRXdSZzBBQzBFQklRb0xRb0NBZ0lDQWdNRC9QeUVWQWtBRFFBSkFJQVZCSUhJaEN3SkFBa0FnQlVFd2F5SUlRUXBKRFFBZ0JVRXVSeUFMUWVFQWEwRUdUM0VOQkNBRlFTNUhEUUFnQkEwQ1FRRWhCQ0FVSVJjTUFRc2dDMEhYQUdzZ0NDQUZRVGxLR3lFRkFrQWdGRUlIVndSQUlBVWdDVUVFZEdvaENRd0JDeUFVUWh4WEJFQWdBa0V3YWlBRkVFRWdBa0VnYWlBWklCVkNBRUtBZ0lDQWdJREEvVDhRR0NBQ1FSQnFJQUlwQXlBaUdTQUNLUU1vSWhVZ0Fpa0RNQ0FDS1FNNEVCZ2dBaUFXSUJnZ0Fpa0RFQ0FDS1FNWUVEd2dBaWtEQ0NFWUlBSXBBd0FoRmd3QkN5QUZSU0FIY2cwQUlBSkIwQUJxSUJrZ0ZVSUFRb0NBZ0lDQWdJRC9QeEFZSUFKQlFHc2dGaUFZSUFJcEExQWdBaWtEV0JBOElBSXBBMGdoR0VFQklRY2dBaWtEUUNFV0N5QVVRZ0Y4SVJSQkFTRUtDeUFCS0FJRUlnVWdBU2dDYUVjRWZ5QUJJQVZCQVdvMkFnUWdCUzBBQUFVZ0FSQVNDeUVGREFFTEMwRXVJUVVMQW40Z0NrVUVRQUpBQWtBZ0FTa0RjRUlBV1FSQUlBRWdBU2dDQkNJRlFRRnJOZ0lFSUFORkRRRWdBU0FGUVFKck5nSUVJQVJGRFFJZ0FTQUZRUU5yTmdJRURBSUxJQU1OQVFzZ0FVSUFFRk1MSUFKQjRBQnFJQWEzUkFBQUFBQUFBQUFBb2hCZElBSXBBMkFoRmlBQ0tRTm9EQUVMSUJSQ0IxY0VRQ0FVSVJVRFFDQUpRUVIwSVFrZ0ZVSUJmQ0lWUWdoU0RRQUxDd0pBQWtBQ1FDQUZRVjl4UWRBQVJnUkFJQUVnQXhEaUFpSVZRb0NBZ0lDQWdJQ0FnSDlTRFFNZ0F3UkFJQUVwQTNCQ0FGa05BZ3dEQzBJQUlSWWdBVUlBRUZOQ0FBd0VDMElBSVJVZ0FTa0RjRUlBVXcwQ0N5QUJJQUVvQWdSQkFXczJBZ1FMUWdBaEZRc2dDVVVFUUNBQ1FmQUFhaUFHdDBRQUFBQUFBQUFBQUtJUVhTQUNLUU53SVJZZ0Fpa0RlQXdCQ3lBWElCUWdCQnRDQW9ZZ0ZYeENJSDBpRkVFQUlBOXJyVlVFUUVIRWdRRkJ4QUEyQWdBZ0FrR2dBV29nQmhCQklBSkJrQUZxSUFJcEE2QUJJQUlwQTZnQlFuOUMvLy8vLy8vL3YvLy9BQkFZSUFKQmdBRnFJQUlwQTVBQklBSXBBNWdCUW45Qy8vLy8vLy8vdi8vL0FCQVlJQUlwQTRBQklSWWdBaWtEaUFFTUFRc2dEMEhpQVd1c0lCUlhCRUFnQ1VFQVRnUkFBMEFnQWtHZ0Eyb2dGaUFZUWdCQ2dJQ0FnSUNBd1ArL2Z4QThJQllnR0VLQWdJQ0FnSUNBL3o4UTRBRWhBU0FDUVpBRGFpQVdJQmdnRmlBQ0tRT2dBeUFCUVFCSUlnTWJJQmdnQWlrRHFBTWdBeHNRUENBVVFnRjlJUlFnQWlrRG1BTWhHQ0FDS1FPUUF5RVdJQWxCQVhRZ0FVRUFUbklpQ1VFQVRnMEFDd3NDZmlBVUlBK3NmVUlnZkNJVnB5SUJRUUFnQVVFQVNoc2dEaUFWSUE2dFV4c2lBVUh4QUU0RVFDQUNRWUFEYWlBR0VFRWdBaWtEaUFNaEZ5QUNLUU9BQXlFWlFnQU1BUXNnQWtIZ0FtcEJrQUVnQVdzUTN3RVFYU0FDUWRBQ2FpQUdFRUVnQWtId0Ftb2dBaWtENEFJZ0Fpa0Q2QUlnQWlrRDBBSWlHU0FDS1FQWUFpSVhFT2dDSUFJcEEvZ0NJUm9nQWlrRDhBSUxJUlVnQWtIQUFtb2dDU0FKUVFGeFJTQVdJQmhDQUVJQUVIdEJBRWNnQVVFZ1NIRnhJZ0ZxRUpBQklBSkJzQUpxSUJrZ0Z5QUNLUVBBQWlBQ0tRUElBaEFZSUFKQmtBSnFJQUlwQTdBQ0lBSXBBN2dDSUJVZ0doQThJQUpCb0FKcVFnQWdGaUFCRzBJQUlCZ2dBUnNnR1NBWEVCZ2dBa0dBQW1vZ0Fpa0RvQUlnQWlrRHFBSWdBaWtEa0FJZ0Fpa0RtQUlRUENBQ1FmQUJhaUFDS1FPQUFpQUNLUU9JQWlBVklCb1EzZ0VnQWlrRDhBRWlGU0FDS1FQNEFTSVhRZ0JDQUJCN1JRUkFRY1NCQVVIRUFEWUNBQXNnQWtIZ0FXb2dGU0FYSUJTbkVPWUNJQUlwQStBQklSWWdBaWtENkFFTUFRdEJ4SUVCUWNRQU5nSUFJQUpCMEFGcUlBWVFRU0FDUWNBQmFpQUNLUVBRQVNBQ0tRUFlBVUlBUW9DQWdJQ0FnTUFBRUJnZ0FrR3dBV29nQWlrRHdBRWdBaWtEeUFGQ0FFS0FnSUNBZ0lEQUFCQVlJQUlwQTdBQklSWWdBaWtEdUFFTElSUWdEQ0FXTndNUUlBd2dGRGNER0NBQ1FiQURhaVFBSUF3cEF4Z2hGQ0FNS1FNUUlSVU1CZ3NnQVNrRGNFSUFVdzBBSUFFZ0FTZ0NCRUVCYXpZQ0JBc2dBU0VGSUFZaENTQURJUXBCQUNFR1FRQWhBeU1BUVpER0FHc2lCQ1FBUVFBZ0RpQVBhaUlTYXlFVEFrQUNmd05BSUFKQk1FY0VRQUpBSUFKQkxrY05CQ0FGS0FJRUlnRWdCU2dDYUVZTkFDQUZJQUZCQVdvMkFnUWdBUzBBQUF3REN3VWdCU2dDQkNJQklBVW9BbWhIQkg5QkFTRUdJQVVnQVVFQmFqWUNCQ0FCTFFBQUJVRUJJUVlnQlJBU0N5RUNEQUVMQ3lBRkVCSUxJUUpCQVNFSElBSkJNRWNOQUFOQUlCUkNBWDBoRkFKL0lBVW9BZ1FpQVNBRktBSm9Sd1JBSUFVZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFVUUVnc2lBa0V3UmcwQUMwRUJJUVlMSUFSQkFEWUNrQVlDZmdKQUFrQUNRQUpBQWtBZ0FrRXVSaUlCUlNBQ1FUQnJJZ2hCQ1V0eFJRUkFBMEFDUUNBQlFRRnhCRUFnQjBVRVFDQVZJUlJCQVNFSERBSUxJQVpGSVFFTUJBc2dGVUlCZkNFVklBTkIvQTlNQkVBZ0RTQVZweUFDUVRCR0d5RU5JQVJCa0FacUlBTkJBblJxSWdFZ0N3Ui9JQUlnQVNnQ0FFRUtiR3BCTUdzRklBZ0xOZ0lBUVFFaEJrRUFJQXRCQVdvaUFTQUJRUWxHSWdFYklRc2dBU0FEYWlFRERBRUxJQUpCTUVZTkFDQUVJQVFvQW9CR1FRRnlOZ0tBUmtIY2p3RWhEUXNDZnlBRktBSUVJZ0VnQlNnQ2FFY0VRQ0FGSUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFGRUJJTElnSkJMa1lpQVNBQ1FUQnJJZ2hCQ2tseURRQUxDeUFVSUJVZ0J4c2hGQ0FHUlNBQ1FWOXhRY1VBUjNKRkJFQUNRQ0FGSUFvUTRnSWlGa0tBZ0lDQWdJQ0FnSUIvVWcwQUlBcEZEUVZDQUNFV0lBVXBBM0JDQUZNTkFDQUZJQVVvQWdSQkFXczJBZ1FMSUFaRkRRTWdGQ0FXZkNFVURBVUxJQVpGSVFFZ0FrRUFTQTBCQ3lBRktRTndRZ0JURFFBZ0JTQUZLQUlFUVFGck5nSUVDeUFCUlEwQ0MwSEVnUUZCSERZQ0FBdENBQ0VWSUFWQ0FCQlRRZ0FNQVFzZ0JDZ0NrQVlpQVVVRVFDQUVJQW0zUkFBQUFBQUFBQUFBb2hCZElBUXBBd0FoRlNBRUtRTUlEQUVMSUJRZ0ZWSWdGVUlKVlhJZ0RrRWVURUVBSUFFZ0RuWWJja1VFUUNBRVFUQnFJQWtRUVNBRVFTQnFJQUVRa0FFZ0JFRVFhaUFFS1FNd0lBUXBBemdnQkNrRElDQUVLUU1vRUJnZ0JDa0RFQ0VWSUFRcEF4Z01BUXNnRDBGK2JhMGdGRk1FUUVIRWdRRkJ4QUEyQWdBZ0JFSGdBR29nQ1JCQklBUkIwQUJxSUFRcEEyQWdCQ2tEYUVKL1F2Ly8vLy8vLzcvLy93QVFHQ0FFUVVCcklBUXBBMUFnQkNrRFdFSi9Rdi8vLy8vLy83Ly8vd0FRR0NBRUtRTkFJUlVnQkNrRFNBd0JDeUFQUWVJQmE2d2dGRlVFUUVIRWdRRkJ4QUEyQWdBZ0JFR1FBV29nQ1JCQklBUkJnQUZxSUFRcEE1QUJJQVFwQTVnQlFnQkNnSUNBZ0lDQXdBQVFHQ0FFUWZBQWFpQUVLUU9BQVNBRUtRT0lBVUlBUW9DQWdJQ0FnTUFBRUJnZ0JDa0RjQ0VWSUFRcEEzZ01BUXNnQ3dSQUlBdEJDRXdFUUNBRVFaQUdhaUFEUVFKMGFpSUJLQUlBSVFVRFFDQUZRUXBzSVFVZ0MwRUJhaUlMUVFsSERRQUxJQUVnQlRZQ0FBc2dBMEVCYWlFREN3SkFJQTBnRktjaUIwb2dEVUVKVG5JZ0IwRVJTbklOQUNBSFFRbEdCRUFnQkVIQUFXb2dDUkJCSUFSQnNBRnFJQVFvQXBBR0VKQUJJQVJCb0FGcUlBUXBBOEFCSUFRcEE4Z0JJQVFwQTdBQklBUXBBN2dCRUJnZ0JDa0RvQUVoRlNBRUtRT29BUXdDQ3lBSFFRaE1CRUFnQkVHUUFtb2dDUkJCSUFSQmdBSnFJQVFvQXBBR0VKQUJJQVJCOEFGcUlBUXBBNUFDSUFRcEE1Z0NJQVFwQTRBQ0lBUXBBNGdDRUJnZ0JFSGdBV3BCQUNBSGEwRUNkRUdBS1dvb0FnQVFRU0FFUWRBQmFpQUVLUVB3QVNBRUtRUDRBU0FFS1FQZ0FTQUVLUVBvQVJEbEFpQUVLUVBRQVNFVklBUXBBOWdCREFJTElBNGdCMEY5YkdwQkcyb2lBVUVlVEVFQUlBUW9BcEFHSWdJZ0FYWWJEUUFnQkVIZ0Ftb2dDUkJCSUFSQjBBSnFJQUlRa0FFZ0JFSEFBbW9nQkNrRDRBSWdCQ2tENkFJZ0JDa0QwQUlnQkNrRDJBSVFHQ0FFUWJBQ2FpQUhRUUowUWJnb2FpZ0NBQkJCSUFSQm9BSnFJQVFwQThBQ0lBUXBBOGdDSUFRcEE3QUNJQVFwQTdnQ0VCZ2dCQ2tEb0FJaEZTQUVLUU9vQWd3QkN3TkFJQVJCa0FacUlBTWlBa0VCYXlJRFFRSjBhaWdDQUVVTkFBdEJBQ0VMQWtBZ0IwRUpieUlCUlFSQVFRQWhBUXdCQ3lBQklBRkJDV29nQjBFQVRoc2hBd0pBSUFKRkJFQkJBQ0VCUVFBaEFnd0JDMEdBbE92Y0EwRUFJQU5yUVFKMFFZQXBhaWdDQUNJR2JTRUtRUUFoQ0VFQUlRVkJBQ0VCQTBBZ0JFR1FCbW9nQlVFQ2RHb2lEU0FJSUEwb0FnQWlEU0FHYmlJUWFpSUlOZ0lBSUFGQkFXcEIvdzl4SUFFZ0NFVWdBU0FGUm5FaUNCc2hBU0FIUVFscklBY2dDQnNoQnlBS0lBMGdCaUFRYkd0c0lRZ2dCVUVCYWlJRklBSkhEUUFMSUFoRkRRQWdCRUdRQm1vZ0FrRUNkR29nQ0RZQ0FDQUNRUUZxSVFJTElBY2dBMnRCQ1dvaEJ3c0RRQUpBSUFkQkpFNEVRQ0FIUVNSSERRRWdCRUdRQm1vZ0FVRUNkR29vQWdCQjBlbjVCRThOQVFzZ0FrSC9EMm9oQmtFQUlRZ0RRQ0FJclNBRVFaQUdhaUFHUWY4UGNTSURRUUowYWlJR05RSUFRaDJHZkNJVVFvR1U2OXdEVkFSL1FRQUZJQlFnRkVLQWxPdmNBNEFpRlVLQWxPdmNBMzU5SVJRZ0ZhY0xJUWdnQmlBVXB5SUdOZ0lBSUFJZ0FpQUNJQU1nQmhzZ0FTQURSaHNnQXlBQ1FRRnJRZjhQY1VjYklRSWdBMEVCYXlFR0lBRWdBMGNOQUFzZ0MwRWRheUVMSUFoRkRRRWdBaUFCUVFGclFmOFBjU0lCUmdSQUlBUkJrQVpxSWdNZ0FrSCtEMnBCL3c5eFFRSjBhaUlHSUFZb0FnQWdBa0VCYTBIL0QzRWlBa0VDZENBRGFpZ0NBSEkyQWdBTElBZEJDV29oQnlBRVFaQUdhaUFCUVFKMGFpQUlOZ0lBREFFTEN3SkFBMEFnQWtFQmFrSC9EM0VoQXlBRVFaQUdhaUFDUVFGclFmOFBjVUVDZEdvaENBTkFJQUVoQmtFQUlRVUNRQUpBQTBBQ1FDQUZJQVpxUWY4UGNTSUJJQUpHRFFBZ0JFR1FCbW9nQVVFQ2RHb29BZ0FpQVNBRlFRSjBRZEFvYWlnQ0FDSUtTUTBBSUFFZ0Nrc05BaUFGUVFGcUlnVkJCRWNOQVFzTElBZEJKRWNOQUVJQUlSUkJBQ0VGUWdBaEZRTkFJQUlnQlNBR2FrSC9EM0VpQVVZRVFDQUNRUUZxUWY4UGNTSUNRUUowSUFScVFRQTJBb3dHQ3lBRVFZQUdhaUFVSUJWQ0FFS0FnSUNBNVpxM2pzQUFFQmdnQkVId0JXb2dCRUdRQm1vZ0FVRUNkR29vQWdBUWtBRWdCRUhnQldvZ0JDa0RnQVlnQkNrRGlBWWdCQ2tEOEFVZ0JDa0QrQVVRUENBRUtRUG9CU0VWSUFRcEErQUZJUlFnQlVFQmFpSUZRUVJIRFFBTElBUkIwQVZxSUFrUVFTQUVRY0FGYWlBVUlCVWdCQ2tEMEFVZ0JDa0QyQVVRR0NBRUtRUElCU0VWUWdBaEZDQUVLUVBBQlNFV0lBdEI4UUJxSWdjZ0Qyc2lBMEVBSUFOQkFFb2JJQTRnQXlBT1NDSUZHeUlCUWZBQVRBMEJEQVFMUVFsQkFTQUhRUzFLR3lJS0lBdHFJUXNnQmlBQ0lnRkdEUUZCZ0pUcjNBTWdDblloRFVGL0lBcDBRWDl6SVJCQkFDRUZJQVloQVFOQUlBUkJrQVpxSUFaQkFuUnFJaEVnQlNBUktBSUFJaEVnQ25acUlnVTJBZ0FnQVVFQmFrSC9EM0VnQVNBRlJTQUJJQVpHY1NJRkd5RUJJQWRCQ1dzZ0J5QUZHeUVISUJBZ0VYRWdEV3doQlNBR1FRRnFRZjhQY1NJR0lBSkhEUUFMSUFWRkRRRWdBU0FEUndSQUlBUkJrQVpxSUFKQkFuUnFJQVUyQWdBZ0F5RUNEQU1MSUFnZ0NDZ0NBRUVCY2pZQ0FDQURJUUVNQVFzTEN5QUVRWkFGYWtIaEFTQUJheERmQVJCZElBUkJzQVZxSUFRcEE1QUZJQVFwQTVnRklCWWdGUkRvQWlBRUtRTzRCU0VaSUFRcEE3QUZJUmdnQkVHQUJXcEI4UUFnQVdzUTN3RVFYU0FFUWFBRmFpQVdJQlVnQkNrRGdBVWdCQ2tEaUFVUTVBSWdCRUh3QkdvZ0ZpQVZJQVFwQTZBRkloUWdCQ2tEcUFVaUZ4RGVBU0FFUWVBRWFpQVlJQmtnQkNrRDhBUWdCQ2tEK0FRUVBDQUVLUVBvQkNFVklBUXBBK0FFSVJZTEFrQWdCa0VFYWtIL0QzRWlDaUFDUmcwQUFrQWdCRUdRQm1vZ0NrRUNkR29vQWdBaUNrSC95Ylh1QVUwRVFDQUtSU0FHUVFWcVFmOFBjU0FDUm5FTkFTQUVRZkFEYWlBSnQwUUFBQUFBQUFEUVA2SVFYU0FFUWVBRGFpQVVJQmNnQkNrRDhBTWdCQ2tEK0FNUVBDQUVLUVBvQXlFWElBUXBBK0FESVJRTUFRc2dDa0dBeXJYdUFVY0VRQ0FFUWRBRWFpQUp0MFFBQUFBQUFBRG9QNklRWFNBRVFjQUVhaUFVSUJjZ0JDa0QwQVFnQkNrRDJBUVFQQ0FFS1FQSUJDRVhJQVFwQThBRUlSUU1BUXNnQ2JjaEd5QUNJQVpCQldwQi93OXhSZ1JBSUFSQmtBUnFJQnRFQUFBQUFBQUE0RCtpRUYwZ0JFR0FCR29nRkNBWElBUXBBNUFFSUFRcEE1Z0VFRHdnQkNrRGlBUWhGeUFFS1FPQUJDRVVEQUVMSUFSQnNBUnFJQnRFQUFBQUFBQUE2RCtpRUYwZ0JFR2dCR29nRkNBWElBUXBBN0FFSUFRcEE3Z0VFRHdnQkNrRHFBUWhGeUFFS1FPZ0JDRVVDeUFCUWU4QVNnMEFJQVJCMEFOcUlCUWdGMElBUW9DQWdJQ0FnTUQvUHhEa0FpQUVLUVBRQXlBRUtRUFlBMElBUWdBUWV3MEFJQVJCd0FOcUlCUWdGMElBUW9DQWdJQ0FnTUQvUHhBOElBUXBBOGdESVJjZ0JDa0R3QU1oRkFzZ0JFR3dBMm9nRmlBVklCUWdGeEE4SUFSQm9BTnFJQVFwQTdBRElBUXBBN2dESUJnZ0dSRGVBU0FFS1FPb0F5RVZJQVFwQTZBRElSWUNRRUYrSUJKcklBZEIvLy8vL3dkeFRnMEFJQVFnRlVMLy8vLy8vLy8vLy84QWd6Y0RtQU1nQkNBV053T1FBeUFFUVlBRGFpQVdJQlZDQUVLQWdJQ0FnSUNBL3o4UUdDQUVLUU9RQXlJWUlBUXBBNWdESWhsQ2dJQ0FnSUNBZ0xqQUFCRGdBU0VDSUJVZ0JDa0RpQU1nQWtFQVNDSUdHeUVWSUJZZ0JDa0RnQU1nQmhzaEZpQVRJQXNnQWtFQVRtb2lDMEh1QUdwT0JFQWdCU0FGSUFFZ0EwZHhJQmdnR1VLQWdJQ0FnSUNBdU1BQUVPQUJRUUJJRzBFQlJ3MEJJQlFnRjBJQVFnQVFlMFVOQVF0QnhJRUJRY1FBTmdJQUN5QUVRZkFDYWlBV0lCVWdDeERtQWlBRUtRUHdBaUVWSUFRcEEvZ0NDeUVVSUF3Z0ZUY0RJQ0FNSUJRM0F5Z2dCRUdReGdCcUpBQWdEQ2tES0NFVUlBd3BBeUFoRlF3RUN5QUJLUU53UWdCWkJFQWdBU0FCS0FJRVFRRnJOZ0lFQ3d3QkN3SkFBbjhnQVNnQ0JDSUNJQUVvQW1oSEJFQWdBU0FDUVFGcU5nSUVJQUl0QUFBTUFRc2dBUkFTQzBFb1JnUkFRUUVoQlF3QkMwS0FnSUNBZ0lEZy8vOEFJUlFnQVNrRGNFSUFVdzBESUFFZ0FTZ0NCRUVCYXpZQ0JBd0RDd05BQW44Z0FTZ0NCQ0lDSUFFb0FtaEhCRUFnQVNBQ1FRRnFOZ0lFSUFJdEFBQU1BUXNnQVJBU0N5SUNRVEJyUVFwSklBSkJ3UUJyUVJwSmNpQUNRZDhBUm5KRklBSkI0UUJyUVJwUGNVVUVRQ0FGUVFGcUlRVU1BUXNMUW9DQWdJQ0FnT0QvL3dBaEZDQUNRU2xHRFFJZ0FTa0RjQ0lYUWdCWkJFQWdBU0FCS0FJRVFRRnJOZ0lFQ3dKQUlBTUVRQ0FGRFFFTUJBc01BUXNEUUNBRlFRRnJJUVVnRjBJQVdRUkFJQUVnQVNnQ0JFRUJhellDQkFzZ0JRMEFDd3dDQzBIRWdRRkJIRFlDQUNBQlFnQVFVd3RDQUNFVUN5QUFJQlUzQXdBZ0FDQVVOd01JSUF4Qk1Hb2tBQXZLQmdJRWZ3TitJd0JCZ0FGcklnVWtBQUpBQWtBQ1FDQURJQVJDQUVJQUVIdEZEUUFDZnlBRVF2Ly8vLy8vL3orRElRa0NmeUFFUWpDSXAwSC8vd0Z4SWdaQi8vOEJSd1JBUVFRZ0JnMEJHa0VDUVFNZ0F5QUpoRkFiREFJTElBTWdDWVJRQ3d0RkRRQWdBa0l3aUtjaUNFSC8vd0Z4SWdaQi8vOEJSdzBCQ3lBRlFSQnFJQUVnQWlBRElBUVFHQ0FGSUFVcEF4QWlBU0FGS1FNWUlnSWdBU0FDRU9VQ0lBVXBBd2doQWlBRktRTUFJUVFNQVFzZ0FTQUNRdi8vLy8vLy96K0RJQWF0UWpDR2hDSUtJQU1nQkVMLy8vLy8vLzgvZ3lBRVFqQ0lwMEgvL3dGeElnZXRRakNHaENJSkVIdEJBRXdFUUNBQklBb2dBeUFKRUhzRVFDQUJJUVFNQWdzZ0JVSHdBR29nQVNBQ1FnQkNBQkFZSUFVcEEzZ2hBaUFGS1FOd0lRUU1BUXNnQmdSK0lBRUZJQVZCNEFCcUlBRWdDa0lBUW9DQWdJQ0FnTUM3d0FBUUdDQUZLUU5vSWdwQ01JaW5RZmdBYXlFR0lBVXBBMkFMSVFRZ0IwVUVRQ0FGUWRBQWFpQURJQWxDQUVLQWdJQ0FnSURBdThBQUVCZ2dCU2tEV0NJSlFqQ0lwMEg0QUdzaEJ5QUZLUU5RSVFNTElBbEMvLy8vLy8vL1A0TkNnSUNBZ0lDQXdBQ0VJUWtnQ2tMLy8vLy8vLzgvZzBLQWdJQ0FnSURBQUlRaENpQUdJQWRLQkVBRFFBSitJQW9nQ1gwZ0F5QUVWcTE5SWd0Q0FGa0VRQ0FMSUFRZ0EzMGlCSVJRQkVBZ0JVRWdhaUFCSUFKQ0FFSUFFQmdnQlNrREtDRUNJQVVwQXlBaEJBd0ZDeUFMUWdHR0lBUkNQNGlFREFFTElBcENBWVlnQkVJL2lJUUxJUW9nQkVJQmhpRUVJQVpCQVdzaUJpQUhTZzBBQ3lBSElRWUxBa0FnQ2lBSmZTQURJQVJXclgwaUNVSUFVd1JBSUFvaENRd0JDeUFKSUFRZ0EzMGlCSVJDQUZJTkFDQUZRVEJxSUFFZ0FrSUFRZ0FRR0NBRktRTTRJUUlnQlNrRE1DRUVEQUVMSUFsQy8vLy8vLy8vUDFnRVFBTkFJQVJDUDRnaEFTQUdRUUZySVFZZ0JFSUJoaUVFSUFFZ0NVSUJob1FpQ1VLQWdJQ0FnSURBQUZRTkFBc0xJQWhCZ0lBQ2NTRUhJQVpCQUV3RVFDQUZRVUJySUFRZ0NVTC8vLy8vLy84L2d5QUdRZmdBYWlBSGNxMUNNSWFFUWdCQ2dJQ0FnSUNBd01NL0VCZ2dCU2tEU0NFQ0lBVXBBMEFoQkF3QkN5QUpRdi8vLy8vLy96K0RJQVlnQjNLdFFqQ0doQ0VDQ3lBQUlBUTNBd0FnQUNBQ053TUlJQVZCZ0FGcUpBQUxxZzhDQlg4T2ZpTUFRZEFDYXlJRkpBQWdCRUwvLy8vLy8vOC9neUVMSUFKQy8vLy8vLy8vUDRNaENpQUNJQVNGUW9DQWdJQ0FnSUNBZ0grRElRMGdCRUl3aUtkQi8vOEJjU0VJQWtBQ1FDQUNRakNJcDBILy93RnhJZ2xCQVd0Qi9mOEJUUVJBSUFoQkFXdEIvdjhCU1EwQkN5QUJVQ0FDUXYvLy8vLy8vLy8vL3dDRElneENnSUNBZ0lDQXdQLy9BRlFnREVLQWdJQ0FnSURBLy84QVVSdEZCRUFnQWtLQWdJQ0FnSUFnaENFTkRBSUxJQU5RSUFSQy8vLy8vLy8vLy8vL0FJTWlBa0tBZ0lDQWdJREEvLzhBVkNBQ1FvQ0FnSUNBZ01ELy93QlJHMFVFUUNBRVFvQ0FnSUNBZ0NDRUlRMGdBeUVCREFJTElBRWdERUtBZ0lDQWdJREEvLzhBaFlSUUJFQWdBeUFDUW9DQWdJQ0FnTUQvL3dDRmhGQUVRRUlBSVFGQ2dJQ0FnSUNBNFAvL0FDRU5EQU1MSUExQ2dJQ0FnSUNBd1AvL0FJUWhEVUlBSVFFTUFnc2dBeUFDUW9DQWdJQ0FnTUQvL3dDRmhGQUVRRUlBSVFFTUFnc2dBU0FNaEZBRVFFS0FnSUNBZ0lEZy8vOEFJQTBnQWlBRGhGQWJJUTFDQUNFQkRBSUxJQUlnQTRSUUJFQWdEVUtBZ0lDQWdJREEvLzhBaENFTlFnQWhBUXdDQ3lBTVF2Ly8vLy8vL3o5WUJFQWdCVUhBQW1vZ0FTQUtJQUVnQ2lBS1VDSUdHM2tnQmtFR2RLMThweUlHUVE5ckVDOUJFQ0FHYXlFR0lBVXBBOGdDSVFvZ0JTa0R3QUloQVFzZ0FrTC8vLy8vLy84L1ZnMEFJQVZCc0FKcUlBTWdDeUFESUFzZ0MxQWlCeHQ1SUFkQkJuU3RmS2NpQjBFUGF4QXZJQVlnQjJwQkVHc2hCaUFGS1FPNEFpRUxJQVVwQTdBQ0lRTUxJQVZCb0FKcUlBdENnSUNBZ0lDQXdBQ0VJaEpDRDRZZ0EwSXhpSVFpQWtJQVFvQ0FnSUN3NXJ5QzlRQWdBbjBpQkVJQUVDc2dCVUdRQW1wQ0FDQUZLUU9vQW4xQ0FDQUVRZ0FRS3lBRlFZQUNhaUFGS1FPWUFrSUJoaUFGS1FPUUFrSS9pSVFpQkVJQUlBSkNBQkFySUFWQjhBRnFJQVJDQUVJQUlBVXBBNGdDZlVJQUVDc2dCVUhnQVdvZ0JTa0QrQUZDQVlZZ0JTa0Q4QUZDUDRpRUlnUkNBQ0FDUWdBUUt5QUZRZEFCYWlBRVFnQkNBQ0FGS1FQb0FYMUNBQkFySUFWQndBRnFJQVVwQTlnQlFnR0dJQVVwQTlBQlFqK0loQ0lFUWdBZ0FrSUFFQ3NnQlVHd0FXb2dCRUlBUWdBZ0JTa0R5QUY5UWdBUUt5QUZRYUFCYWlBQ1FnQWdCU2tEdUFGQ0FZWWdCU2tEc0FGQ1A0aUVRZ0Y5SWdKQ0FCQXJJQVZCa0FGcUlBTkNENFpDQUNBQ1FnQVFLeUFGUWZBQWFpQUNRZ0JDQUNBRktRT29BU0FGS1FPZ0FTSU1JQVVwQTVnQmZDSUVJQXhVclh3Z0JFSUJWcTE4ZlVJQUVDc2dCVUdBQVdwQ0FTQUVmVUlBSUFKQ0FCQXJJQVlnQ1NBSWEyb2hCZ0ovSUFVcEEzQWlFMElCaGlJT0lBVXBBNGdCSWc5Q0FZWWdCU2tEZ0FGQ1A0aUVmQ0lRUXVmc0FIMGlGRUlnaUNJQ0lBcENnSUNBZ0lDQXdBQ0VJaFZDSDRoQy8vLy8vdytESWdSK0loRWdBVUlCaGlJTVFpQ0lJZ3NnRUNBVVZxMGdEaUFRVnEwZ0JTa0RlRUlCaGlBVFFqK0loQ0FQUWorSWZIeDhRZ0Y5SWhOQ0lJZ2lFSDU4SWc0Z0VWU3RJQTRnRGlBVFF2Ly8vLzhQZ3lJVElBRkNQNGdpRmlBS1FnR0doRUwvLy8vL0Q0TWlDbjU4SWc1V3JYd2dCQ0FRZm53Z0JDQVRmaUlSSUFvZ0VINThJZzhnRVZTdFFpQ0dJQTlDSUlpRWZDQU9JQTRnRDBJZ2hud2lEbGF0ZkNBT0lBNGdGRUwvLy8vL0Q0TWlGQ0FLZmlJUklBSWdDMzU4SWc4Z0VWU3RJQThnRHlBVElBeEMvdi8vL3crREloRitmQ0lQVnExOGZDSU9WcTE4SUE0Z0JDQVVmaUlYSUJBZ0VYNThJZ1FnQWlBS2Zud2lDaUFMSUJOK2ZDSVFRaUNJSUFvZ0VGYXRJQVFnRjFTdElBUWdDbGF0Zkh4Q0lJYUVmQ0lFSUE1VXJYd2dCQ0FQSUFJZ0VYNGlBaUFMSUJSK2ZDSUxRaUNJSUFJZ0MxYXRRaUNHaEh3aUFpQVBWSzBnQWlBUVFpQ0dmQ0FDVksxOGZDSUNJQVJVclh3aUJFTC8vLy8vLy8vL0FGZ0VRQ0FWUWdHR0lCYUVJUlVnQlVIUUFHb2dBaUFFSUFNZ0VoQXJJQUZDTVlZZ0JTa0RXSDBnQlNrRFVDSUJRZ0JTclgwaENrSUFJQUY5SVFzZ0JrSCsvd0JxREFFTElBVkI0QUJxSUFSQ1A0WWdBa0lCaUlRaUFpQUVRZ0dJSWdRZ0F5QVNFQ3NnQVVJd2hpQUZLUU5vZlNBRktRTmdJZ3hDQUZLdGZTRUtRZ0FnREgwaEN5QUJJUXdnQmtILy93QnFDeUlHUWYvL0FVNEVRQ0FOUW9DQWdJQ0FnTUQvL3dDRUlRMUNBQ0VCREFFTEFuNGdCa0VBU2dSQUlBcENBWVlnQzBJL2lJUWhDaUFFUXYvLy8vLy8veitESUFhdFFqQ0doQ0VNSUF0Q0FZWU1BUXNnQmtHUGYwd0VRRUlBSVFFTUFnc2dCVUZBYXlBQ0lBUkJBU0FHYXhCOElBVkJNR29nRENBVklBWkI4QUJxRUM4Z0JVRWdhaUFESUJJZ0JTa0RRQ0lDSUFVcEEwZ2lEQkFySUFVcEF6Z2dCU2tES0VJQmhpQUZLUU1nSWdGQ1A0aUVmU0FGS1FNd0lnUWdBVUlCaGlJQlZLMTlJUW9nQkNBQmZRc2hCQ0FGUVJCcUlBTWdFa0lEUWdBUUt5QUZJQU1nRWtJRlFnQVFLeUFNSUFJZ0FpQURJQUpDQVlNaUFTQUVmQ0lEVkNBS0lBRWdBMWF0ZkNJQklCSldJQUVnRWxFYnJYd2lBbGF0ZkNJRUlBSWdBaUFFUW9DQWdJQ0FnTUQvL3dCVUlBTWdCU2tERUZZZ0FTQUZLUU1ZSWdSV0lBRWdCRkViY2ExOElnSldyWHdpQkNBQ0lBUkNnSUNBZ0lDQXdQLy9BRlFnQXlBRktRTUFWaUFCSUFVcEF3Z2lBMVlnQVNBRFVSdHhyWHdpQVNBQ1ZLMThJQTJFSVEwTElBQWdBVGNEQUNBQUlBMDNBd2dnQlVIUUFtb2tBQXUvQWdFQmZ5TUFRZEFBYXlJRUpBQUNRQ0FEUVlDQUFVNEVRQ0FFUVNCcUlBRWdBa0lBUW9DQWdJQ0FnSUQvL3dBUUdDQUVLUU1vSVFJZ0JDa0RJQ0VCSUFOQi8vOEJTQVJBSUFOQi8vOEFheUVEREFJTElBUkJFR29nQVNBQ1FnQkNnSUNBZ0lDQWdQLy9BQkFZSUFOQi9mOENJQU5CL2Y4Q1NCdEIvdjhCYXlFRElBUXBBeGdoQWlBRUtRTVFJUUVNQVFzZ0EwR0JnSDlLRFFBZ0JFRkFheUFCSUFKQ0FFS0FnSUNBZ0lDQU9SQVlJQVFwQTBnaEFpQUVLUU5BSVFFZ0EwSDBnSDVLQkVBZ0EwR04vd0JxSVFNTUFRc2dCRUV3YWlBQklBSkNBRUtBZ0lDQWdJQ0FPUkFZSUFOQjZJRjlJQU5CNklGOVNodEJtdjRCYWlFRElBUXBBemdoQWlBRUtRTXdJUUVMSUFRZ0FTQUNRZ0FnQTBILy93QnFyVUl3aGhBWUlBQWdCQ2tEQ0RjRENDQUFJQVFwQXdBM0F3QWdCRUhRQUdva0FBdXBEd0VNZnlNQVFVQnFJZ0lrQUNBQ1FRQTJBaFFnQWtFQU5nSVFJQUpCQURZQ0RDQUNRUUEyQWdnZ0FpQUNRUlJxTmdJWUlBSWdBa0VRYWpZQ0hDQUNLQUlZR2lBQ0lBSkJER28yQWlBZ0FpZ0NIQm9nQWlBQ1FRaHFOZ0lrSUFJb0FpQWFJQUlvQWlRYUl3QkJFR3NpQlNRQUlBSWdBQzBBQWlBQUxRQUJJQUF0QUFCemMwRVlkRUVZZFNJRFFUQnJJZ2MyQWdnZ0FrRXZJQU5ySUFGeFFRRjBJQUVnQjNOcklnTkJmbk1nQTBFQmRFRjhjV3BCQVdvaUF6WUNEQ0FDSUFNUUdUWUNGQ0FDSUFJb0FnZ2lCQkFaTmdJUUlBRkJmM01oQmdOQVFadVI0UDBISVFNRFFBSkFBa0FDUUNBRFFaeVZ1NWNFVEFSQUlBTkJscEhIaDN0R0RRRWdBMEhObjZuSWUwWU5BeUFEUWREYzZ1QitSdzBFSUFJb0FoUWdCU2dDREdvZ0FDQUZLQUlNSWdOQkFYUkJBbkVnQTBFQmMyb2lCMm90QUFBNkFBQkJuWlc3bHdRaEF3d0VDeUFEUVoyVnU1Y0VSZzBCSUFOQjllL2c0QVpHQkVCQkFDRUhRWjJWdTVjRUlRTU1CQXNnQTBHYmtlRDlCMGNOQXlBRklBUTJBZ2hCbHBISGgzdEI5ZS9nNEFZZ0JTZ0NDRUVBU2hzaEF3d0RDeUFCSUFJb0FnZ2lBMnNpQkVGOWN5QUVRUUYwSWdoQmVuRnFJQUJxTFFBQklRa2dBaWdDRUNBRElBVW9BZ2dpQ2tGL2MzRkJBWFFnQXlBS2MydHFJQUFnQlNnQ0NDSURRWDl6SUFGeElBTWdCbkZyYWkwQUFDQUlRWDF5SUFSQkFYTnFJQUJxTFFBQklBbHpjem9BQUNBRktBSUlRUUZySVFRTUF3c2dCU0FITmdJTVFkRGM2dUIrUWMyZnFjaDdJQUlvQWd3Z0JTZ0NERW9iSVFNTUFRc0xDeUFGUVJCcUpBQWdBaWdDRkNFSUlBSW9BZ3doQ2tFQUlRZEJBQ0VBUVFBaENVRUFJUUVqQUVFUWF5SUVKQUJCMVFBaEEwSDZBU0VGUWNtSnE0a0RJUVlEUUFKQUFrQUNRQUpBSUFaQnc5cTZtSDlNQkVBZ0JrR2trcmZLZWtZTkFTQUdRWnZjN0o5N1JnMENJQVpCNllpaHpudEhEUVVnQkVFUWFpUUFEQVFMSUFaQnhOcTZtSDlHRFFJZ0JrRzByS2F4QlVjRVFDQUdRY21KcTRrRFJ3MEZJQVFnQnpZQ0NDQUVJQVU2QUE0Z0JDQURPZ0FQUWJTc3ByRUZRZW1Jb2M1N0lBUW9BZ2dnQ2tnYklRWU1CUXRCcEpLM3lucEJtOXpzbjNzZ0JDZ0NDRUVDYjBFQlJoc2hCZ3dFQ3lBSUlBUW9BZ2hxTFFBQUlnQWdCQzBBRDNNaENVSEUycnFZZnlFR0lBUXRBQTRoQVF3REN5QUlJQVFvQWdocUxRQUFJZ0VnQkMwQURuTWhDVUhFMnJxWWZ5RUdJQVF0QUE4aEFBd0NDeUFKUVJoMFFSaDFJUXdnQkNnQ0NDRUdRUUFoQnlNQVFSQnJJUU1EUUVISHFQaVdmQ0VGQWtBRFFDQUZRY0d4KzRON1JnMEJJQVZCb3MvNjRRRkhCRUFnQlVISHFQaVdmRWNOQVNBRElBWTJBZ3dnQXlBSE5nSUlRYUxQK3VFQlFjR3grNE43SUFNb0Fnd2JJUVVNQVFzTElBTW9BZ3dnQXlnQ0RFRUJhM0VoQmlBREtBSUlRUUZxSVFjTUFRc0xJQU1vQWdnaUF5QU1RZjhCY1NJRmNrRUJkQ0FESUFWemF5SURRUlZ5UVFGMElBTkJGWE5yUVJoMFFSaDFJUU1nQ0NBRUtBSUlhaUFET2dBQUlBUW9BZ2hCQVdvaEIwSEppYXVKQXlFR0lBRWhCU0FBSVFNTUFRc0xRUUFoQXlNQVFSQnJJZ0VnQWlnQ0ZDd0FBRFlDQ0NBQklBRW9BZ2hCTDBvNkFBNGdBU0FCS0FJSVFUcElPZ0FQUWNESjlaUi9JUUFEUUFKQUFrQUNRQ0FBUWIvSjlaUi9UQVJBSUFCQnM2dnUwSGxHRFFJZ0FFR2d5cTczZmtZTkFTQUFRYjdrOFlKL1J3MEVJQUVvQWdnaUFFRXdjeUFBUVFGMFFaOEJjbXBCQVdvaEEwR0FrY2lQQkNFQURBUUxJQUJCZ0pISWp3UkdEUUlnQUVHRXVaWHBBVVlFUUVIL0FTRURRWUNSeUk4RUlRQU1CQXNnQUVIQXlmV1VmMGNOQTBHKzVQR0NmMEdneXE3M2ZpQUJMUUFQUVFGeEcwR2d5cTczZmlBQkxRQU9RUUZ4R3lFQURBTUxRYk9yN3RCNVFZUzVsZWtCSUFFb0FnaEIrd0JJRzBHRXVaWHBBU0FCS0FJSVFlQUFTaHNoQUF3Q0N5QUJLQUlJSWdCQm5nRnpJQUJCQVhSQlBIRnFRUXRxSVFOQmdKSElqd1FoQUF3QkN3c2dBaUFEUVJoMFFSaDFJZ0EyQWdnZ0FpQUNLQUlNSWdFZ0FFRi9jM0VnQUNBQlFYOXpjV3NpQVVGK2NpQUJRWDV4YWtFQmFqWUNLQ0FDSUFFUUdUWUNMQ0FDSUFCQkFYUkJBbkVnQUVFQmMyb1FHVFlDTUNBQ0tBSW9JQUlvQWl4cVFRQTZBQUFnQWlnQ0NDQUNLQUl3YWtFQU9nQUFBMEJCd3VUNTkzc2hBQU5BSUFJb0FnZ2hBUUpBQWtBRFFDQUFRY0hrK2ZkN1RBUkFJQUJCNVlhcW5YaEdEUU1nQUVHYnJkdkFlVVlOQWlBQVFjR1h1SjU2UncwQklBSWdBVFlDTkNBQ0lBczJBanhCbTYzYndIbEI1WWFxblhnZ0FpZ0NOQ0FDS0FJOFNoc2hBQXdCQ3lBQVFkYlU5TjhEUmdSQVFRQWhDMEhCbDdpZWVpRUFEQVFMSUFCQnhOYmJ1UUpIQkVBZ0FFSEM1UG4zZTBjTkFTQUNJQTAyQWpoQnhOYmJ1UUpCMXRUMDN3TWdBaWdDS0NBQ0tBSTRTaHNoQUF3QkN3c2dBaWdDTENBQ0tBSTRhaUFDS0FJNElnQkJBWFJCQW5FZ0FFRUJjMm9pRFNBQ0tBSVVhaTBBQURvQUFBd0RDeUFDS0FJd0lBSW9BanhxSUFJb0FoUWdBaWdDRENJQUlBSW9BalFpQVVGL2MzRWdBU0FBUVg5emNXc2lBQ0FDS0FJOElnRnlRUUYwSUFBZ0FYTnJhaTBBQURvQUFDQUNLQUk4SWdCQmZuTWdBRUVCZEVFQ2NtcEJBV29oQzBIQmw3aWVlaUVBREFFTEN3c2dBaWdDRkJBUUlBSW9BaEFRRUNBQ0tBSWtHaUFDS0FJZ0dpQUNLQUljR2lBQ0tBSVlHaUFDS0FJc0lRQWdBa0ZBYXlRQUlBQUxOUUFnQUNBQk53TUFJQUFnQWtMLy8vLy8vLzgvZ3lBRVFqQ0lwMEdBZ0FKeElBSkNNSWluUWYvL0FYRnlyVUl3aG9RM0F3Z0xMQUFnQUNnQ0FCb2dBQ2dDQUNBQUVJVUJhaG9nQUNnQ0FDQUFFSWtCYWhvZ0FDZ0NBQ0FBRUlVQmFob0xCd0FnQVNBQWF3c0pBQ0FBSUFFUTZnSUxLd0VCZnlBQUtBSUFJZ0VFUUNBQkVQY0NRWDhRWDBVRVFDQUFLQUlBUlE4TElBQkJBRFlDQUF0QkFRc3JBUUYvSUFBb0FnQWlBUVJBSUFFUS9BSkJmeEJmUlFSQUlBQW9BZ0JGRHdzZ0FFRUFOZ0lBQzBFQkN3MEFRUUFnQUNBQVFYOFFYeHNMNVFRQkIzOGdBQ2dDQkNBQUVFTW9BZ0JIQkVBakFFRVFheUlDSkFBZ0FpQUFOZ0lBSUFJZ0FDZ0NCQ0lETmdJRUlBSWdBMEVCYWpZQ0NDQUFFRU1nQWlnQ0JDQUJFSk1DSUFJZ0FpZ0NCRUVCYWpZQ0JDQUNFSTBDSUFKQkVHb2tBQThMSXdCQklHc2lCeVFBSUFBUVF5SUlBbjhnQjBFSWFpRUNBbjhnQUJDSkFVRUJhaUVHSXdCQkVHc2lCU1FBSUFVZ0JqWUNEQ01BUVJCcklnUWtBQ0FBRUVNYUlBUkJmellDRENBRVFmLy8vLzhITmdJSUlBUkJER29nQkVFSWFoQ2lBU2dDQUNFRElBUkJFR29rQUNBRElBWlBCRUFnQUJDRkFTSUVJQU5CQVhaSkJFQWdCU0FFUVFGME5nSUlJQVZCQ0dvZ0JVRU1haEIyS0FJQUlRTUxJQVZCRUdva0FDQUREQUVMUWFjYkVLZ0NBQXNoQlNBQUVJa0JJUVpCQUNFREl3QkJFR3NpQkNRQUlBUkJBRFlDRENBQ1FReHFJQVJCREdvZ0NCQ0xBaUFGQkVBZ0FpZ0NFQm9nQlJCZ0lRTUxJQUlnQXpZQ0FDQUNJQU1nQm1vaUJqWUNDQ0FDSUFZMkFnUWdBaENFQVNBRElBVnFOZ0lBSUFSQkVHb2tBQ0FDS0FJSUN5QUJFSk1DSUFJZ0FpZ0NDRUVCYWpZQ0NDQUFFT2tDSUFBUVF5QUFLQUlBSUFBb0FnUWdBa0VFYWlJQkVJWUNJQUFnQVJCMUlBQkJCR29nQWtFSWFoQjFJQUFRUXlBQ0VJUUJFSFVnQWlBQ0tBSUVOZ0lBSUFBUWlRRWFJQUFvQWdBYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBZ0FCQ0ZBV29hSUFBb0FnQWFJQUlvQWdRaUFDQUNLQUlJUndSQUEwQWdBaWdDRUJvZ0FpQUNLQUlJUVFGck5nSUlJQUlvQWdnZ0FFY05BQXNMSUFJb0FnQUVRQ0FDS0FJUUdpQUNLQUlBSVFBZ0FoQ0VBU2dDQUNBQ0tBSUFheG9nQUJBUUN5QUhRU0JxSkFBTGpRRUJCSDhqQUVFUWF5SUZKQUFnQVNBQ0VPc0NJZ1JCYjAwRVFBSkFJQVJCQ2swRVFDQUFJQVFRT2lBQUlRTU1BUXNnQUNBRUVKRUJRUUZxSWdZUVlDSURFRTBnQUNBR0VFd2dBQ0FFRURrTEEwQWdBU0FDUndSQUlBTWdBUkEwSUFOQkFXb2hBeUFCUVFGcUlRRU1BUXNMSUFWQkFEb0FEeUFESUFWQkQyb1FOQ0FGUVJCcUpBQVBDeEFYQUFzUEFDQUFJQUFvQWhnZ0FXbzJBaGdMRndBZ0FDQUNOZ0ljSUFBZ0FUWUNGQ0FBSUFFMkFoZ0xWZ0VDZndKQUlBQW9BZ0FpQWtVTkFBSi9JQUlvQWhnaUF5QUNLQUljUmdSQUlBSWdBU0FDS0FJQUtBSTBFUUlBREFFTElBSWdBMEVFYWpZQ0dDQURJQUUyQWdBZ0FRdEJmeEJmUlEwQUlBQkJBRFlDQUFzTEpnRUJmd0pBSUFBb0FnQWlBa1VOQUNBQ0lBRVErZ0pCZnhCZlJRMEFJQUJCQURZQ0FBc0xDUUFnQUJEa0FSQVFDekVCQVg4Z0FDZ0NEQ0lCSUFBb0FoQkdCRUFnQUNBQUtBSUFLQUlvRVFBQUR3c2dBQ0FCUVFScU5nSU1JQUVvQWdBTEp3RUJmeUFBS0FJTUlnRWdBQ2dDRUVZRVFDQUFJQUFvQWdBb0FpUVJBQUFQQ3lBQktBSUFDeEFBSUFBUTdBSWdBUkRzQW5OQkFYTUxpd1FCQm44akFFRWdheUlDSkFBZ0FrRUFOZ0ljSXdCQklHc2lCQ1FBSUFKQkdHb2lCa0VBT2dBQUlBQWdBQ2dDQUVFTWF5Z0NBR29RdVFFaEJTQUFJQUFvQWdCQkRHc29BZ0JxSVFNQ1FDQUZCRUFnQXlnQ1NBUkFJQUFnQUNnQ0FFRU1heWdDQUdvb0FrZ1FnZ01MQWtBZ0FDQUFLQUlBUVF4cktBSUFhaWdDQkVHQUlIRkZEUUFnQkVFWWFpSURJQUFnQUNnQ0FFRU1heWdDQUdvUUR5QURFREloQnlBREVBNGdCRUVRYWlBQUVNY0JJUU1nQkVFSWFoQ0JBeUVGQTBBQ1FDQURJQVVRTVVVTkFDQUhRWURBQUNBREVCOFFSRVVOQUNBREVDSWFEQUVMQ3lBRElBVVFKa1VOQUNBQUlBQW9BZ0JCREdzb0FnQnFRUVlRZ0FFTElBWWdBQ0FBS0FJQVFReHJLQUlBYWhDNUFUb0FBQXdCQ3lBRFFRUVFnQUVMSUFSQklHb2tBQ0FHTFFBQUJFQWdBa0VRYWlJRUlBQWdBQ2dDQUVFTWF5Z0NBR29RRHlBRVFiaUhBUkJsSVFNZ0FrRUlhaUFBRU1jQklRWWdBaENCQXlFRklBTWdCaWdDQUNBRktBSUFJQUFnQUNnQ0FFRU1heWdDQUdvZ0FrRWNhaUFDUVJScUlBTW9BZ0FvQWhBUkJRQWFJQVFRRGlBQkFuOGdBaWdDRkVHQWdJQ0FlRWdFUUNBQ0lBSW9BaHhCQkhJMkFoeEJnSUNBZ0hnTUFRc2dBaWdDRkVILy8vLy9CMG9FUUNBQ0lBSW9BaHhCQkhJMkFoeEIvLy8vL3djTUFRc2dBaWdDRkFzMkFnQWdBQ0FBS0FJQVFReHJLQUlBYWlBQ0tBSWNFSUFCQ3lBQ1FTQnFKQUFMT3dFQmZ5QUFLQUlZSWdJZ0FDZ0NIRVlFUUNBQUlBRVFYaUFBS0FJQUtBSTBFUUlBRHdzZ0FDQUNRUUZxTmdJWUlBSWdBVG9BQUNBQkVGNExNd0VCZnlBQUtBSU1JZ0VnQUNnQ0VFWUVRQ0FBSUFBb0FnQW9BaWdSQUFBUEN5QUFJQUZCQVdvMkFnd2dBU3dBQUJCZUN5a0JBWDhnQUNnQ0RDSUJJQUFvQWhCR0JFQWdBQ0FBS0FJQUtBSWtFUUFBRHdzZ0FTd0FBQkJlQ3hBQUlBQVE3UUlnQVJEdEFuTkJBWE1MalFFQkFYOENRQ0FBS0FJRUlnRWdBU2dDQUVFTWF5Z0NBR29vQWhoRkRRQWdBQ2dDQkNJQklBRW9BZ0JCREdzb0FnQnFFTGtCUlEwQUlBQW9BZ1FpQVNBQktBSUFRUXhyS0FJQWFpZ0NCRUdBd0FCeFJRMEFJQUFvQWdRaUFTQUJLQUlBUVF4cktBSUFhaWdDR0JEL0FrRi9SdzBBSUFBb0FnUWlBQ0FBS0FJQVFReHJLQUlBYWtFQkVJQUJDd3NQQUNBQUlBQW9BZ0FvQWhnUkFBQUxWUUFnQUNBQk5nSUVJQUJCQURvQUFDQUJJQUVvQWdCQkRHc29BZ0JxRUxrQkJFQWdBU0FCS0FJQVFReHJLQUlBYWlnQ1NBUkFJQUVnQVNnQ0FFRU1heWdDQUdvb0FrZ1FnZ01MSUFCQkFUb0FBQXNnQUFzTEFDQUFRUUEyQWdBZ0FBdHVBUUovSXdCQkVHc2lBU1FBSUFBZ0FDZ0NBRUVNYXlnQ0FHb29BaGdFUUFKQUlBRkJDR29nQUJDQUF5SUNMUUFBUlEwQUlBQWdBQ2dDQUVFTWF5Z0NBR29vQWhnUS93SkJmMGNOQUNBQUlBQW9BZ0JCREdzb0FnQnFRUUVRZ0FFTElBSVEvZ0lMSUFGQkVHb2tBQXNKQUNBQUVMb0JFQkFMeGdnQkJuOGdBQ0FCS0FBQUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y2lJRk5nSUFJQUFnQVNnQUJDSURRUmgwSUFOQkNIUkJnSUQ4QjNGeUlBTkJDSFpCZ1A0RGNTQURRUmgyY25JaUJqWUNCQ0FBSUFFb0FBZ2lBMEVZZENBRFFRaDBRWUNBL0FkeGNpQURRUWgyUVlEK0EzRWdBMEVZZG5KeUlnYzJBZ2dnQUNBQktBQU1JZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNpSUVOZ0lNQWtBZ0FrR0FBVVlFUUVFQUlRTURRQ0FBSUFSQkZuWkIvQWR4UVlBSWFpMEFBU0FFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDSFJCZ0lDQWVIRWdCWE1nQkVFR2RrSDhCM0ZCZ0FocUxRQUNRUkIwY3lBRVFmOEJjVUVDZEVHQUNHb3RBQUZCQ0hSemN5QURRWUFhYWkwQUFFRVlkSE1pQlRZQ0VDQUFJQVVnQm5NaUJqWUNGQ0FBSUFZZ0IzTWlCellDR0NBQUlBUWdCM01pQkRZQ0hDQUFRUkJxSVFCQkNpRUJJQU5CQVdvaUEwRUtSdzBBQ3d3QkN5QUFJQUVvQUJBaUEwRVlkQ0FEUVFoMFFZQ0EvQWR4Y2lBRFFRaDJRWUQrQTNFZ0EwRVlkbkp5TmdJUUlBQWdBU2dBRkNJRFFSaDBJQU5CQ0hSQmdJRDhCM0Z5SUFOQkNIWkJnUDREY1NBRFFSaDJjbklpQXpZQ0ZDQUNRY0FCUmdSQVFRQWhBUU5BSUFBZ0EwRVdka0g4QjNGQmdBaHFMUUFCSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FGY3lBRFFRWjJRZndIY1VHQUNHb3RBQUpCRUhSeklBTkIvd0Z4UVFKMFFZQUlhaTBBQVVFSWRITnpJQUZCZ0JwcUxRQUFRUmgwY3lJRk5nSVlJQUFnQlNBR2N5SUdOZ0ljSUFBZ0JpQUhjeUlITmdJZ0lBQWdCQ0FIY3lJRU5nSWtJQUZCQjBZRVFFRU1Ed1VnQUNBQUtBSVFJQVJ6SWdJMkFpZ2dBQ0FDSUFOeklnTTJBaXdnQVVFQmFpRUJJQUJCR0dvaEFBd0JDd0FMQUFzZ0FDQUJLQUFZSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljallDR0NBQUlBRW9BQndpQVVFWWRDQUJRUWgwUVlDQS9BZHhjaUFCUVFoMlFZRCtBM0VnQVVFWWRuSnlJZ00yQWh4QmZ5RUJJQUpCZ0FKSERRQkJBQ0VDUVE0aEFRTkFJQUFnQTBFV2RrSDhCM0ZCZ0FocUxRQUJJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUZjeUFEUVFaMlFmd0hjVUdBQ0dvdEFBSkJFSFJ6SUFOQi93RnhRUUowUVlBSWFpMEFBVUVJZEhOeklBSkJnQnBxTFFBQVFSaDBjeUlGTmdJZ0lBQWdCU0FHY3lJR05nSWtJQUFnQmlBSGN5SUhOZ0lvSUFBZ0JDQUhjeUlFTmdJc0lBSkJCa1lOQVNBQUlBUkIvd0Z4UVFKMFFZQUlhaTBBQVNBQUtBSVFJQVJCRm5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNYTWdCRUVPZGtIOEIzRkJnQWhxTFFBQ1FSQjBjeUFFUVFaMlFmd0hjVUdBQ0dvdEFBRkJDSFJ6Y3lJSU5nSXdJQUFnQ0NBQUtBSVVjeUlJTmdJMElBQWdBQ2dDR0NBSWN5SUlOZ0k0SUFBZ0F5QUljeUlETmdJOElBSkJBV29oQWlBQVFTQnFJUUFNQUFzQUN5QUJDNjBCQVFSL0l3QkJFR3NpQlNRQUEwQUNRQ0FDSUFSTURRQWdBQ2dDR0NJRElBQW9BaHdpQms4RVFDQUFJQUVzQUFBUVhpQUFLQUlBS0FJMEVRSUFRWDlHRFFFZ0JFRUJhaUVFSUFGQkFXb2hBUVVnQlNBR0lBTnJOZ0lNSUFVZ0FpQUVhellDQ0NBRlFReHFJQVZCQ0dvUXV3RWhBeUFBS0FJWUlBRWdBeWdDQUNJREVGVWdBQ0FESUFBb0FoaHFOZ0lZSUFNZ0JHb2hCQ0FCSUFOcUlRRUxEQUVMQ3lBRlFSQnFKQUFnQkFzdUFDQUFJQUFvQWdBb0FpUVJBQUJCZjBZRVFFRi9Ed3NnQUNBQUtBSU1JZ0JCQVdvMkFnd2dBQ3dBQUJCZUN3UUFRWDhMdndFQkJIOGpBRUVRYXlJRUpBQURRQUpBSUFJZ0JVd05BQUpBSUFBb0Fnd2lBeUFBS0FJUUlnWkpCRUFnQkVILy8vLy9CellDRENBRUlBWWdBMnMyQWdnZ0JDQUNJQVZyTmdJRUlBUkJER29nQkVFSWFpQUVRUVJxRUxzQkVMc0JJUU1nQVNBQUtBSU1JQU1vQWdBaUF4QlZJQUFnQUNnQ0RDQURhallDREF3QkN5QUFJQUFvQWdBb0FpZ1JBQUFpQTBGL1JnMEJJQUVnQXhDYkFUb0FBRUVCSVFNTElBRWdBMm9oQVNBRElBVnFJUVVNQVFzTElBUkJFR29rQUNBRkN3a0FJQUJDZnhDOEFRc0pBQ0FBUW44UXZBRUxCQUFnQUFzSkFDQUFFTDBCRUJBTENBQWdBQkIrRUJBTEJ3QWdBQ2dDREFzTUFDQUFFTUFCR2lBQUVCQUxDUUFnQUJEQUFSQVFDd1VBUWY0YkN4c0FJQUFnQVNnQ0NDQUZFRDRFUUNBQklBSWdBeUFFRU1NQkN3czRBQ0FBSUFFb0FnZ2dCUkErQkVBZ0FTQUNJQU1nQkJEREFROExJQUFvQWdnaUFDQUJJQUlnQXlBRUlBVWdBQ2dDQUNnQ0ZCRUpBQXVXQWdFR2Z5QUFJQUVvQWdnZ0JSQStCRUFnQVNBQ0lBTWdCQkREQVE4TElBRXRBRFVoQnlBQUtBSU1JUVlnQVVFQU9nQTFJQUV0QURRaENDQUJRUUE2QURRZ0FFRVFhaUlKSUFFZ0FpQURJQVFnQlJEQkFTQUhJQUV0QURVaUNuSWhCeUFJSUFFdEFEUWlDM0loQ0FKQUlBWkJBa2dOQUNBSklBWkJBM1JxSVFrZ0FFRVlhaUVHQTBBZ0FTMEFOZzBCQWtBZ0N3UkFJQUVvQWhoQkFVWU5BeUFBTFFBSVFRSnhEUUVNQXdzZ0NrVU5BQ0FBTFFBSVFRRnhSUTBDQ3lBQlFRQTdBVFFnQmlBQklBSWdBeUFFSUFVUXdRRWdBUzBBTlNJS0lBZHlJUWNnQVMwQU5DSUxJQWh5SVFnZ0JrRUlhaUlHSUFsSkRRQUxDeUFCSUFkQi93RnhRUUJIT2dBMUlBRWdDRUgvQVhGQkFFYzZBRFFMa2dFQUlBQWdBU2dDQ0NBRUVENEVRQ0FCSUFJZ0F4RENBUThMQWtBZ0FDQUJLQUlBSUFRUVBrVU5BQUpBSUFJZ0FTZ0NFRWNFUUNBQktBSVVJQUpIRFFFTElBTkJBVWNOQVNBQlFRRTJBaUFQQ3lBQklBSTJBaFFnQVNBRE5nSWdJQUVnQVNnQ0tFRUJhallDS0FKQUlBRW9BaVJCQVVjTkFDQUJLQUlZUVFKSERRQWdBVUVCT2dBMkN5QUJRUVEyQWl3TEMvTUJBQ0FBSUFFb0FnZ2dCQkErQkVBZ0FTQUNJQU1Rd2dFUEN3SkFJQUFnQVNnQ0FDQUVFRDRFUUFKQUlBSWdBU2dDRUVjRVFDQUJLQUlVSUFKSERRRUxJQU5CQVVjTkFpQUJRUUUyQWlBUEN5QUJJQU0yQWlBQ1FDQUJLQUlzUVFSR0RRQWdBVUVBT3dFMElBQW9BZ2dpQUNBQklBSWdBa0VCSUFRZ0FDZ0NBQ2dDRkJFSkFDQUJMUUExQkVBZ0FVRUROZ0lzSUFFdEFEUkZEUUVNQXdzZ0FVRUVOZ0lzQ3lBQklBSTJBaFFnQVNBQktBSW9RUUZxTmdJb0lBRW9BaVJCQVVjTkFTQUJLQUlZUVFKSERRRWdBVUVCT2dBMkR3c2dBQ2dDQ0NJQUlBRWdBaUFESUFRZ0FDZ0NBQ2dDR0JFS0FBc0xuUVFCQTM4Z0FDQUJLQUlJSUFRUVBnUkFJQUVnQWlBREVNSUJEd3NDUUNBQUlBRW9BZ0FnQkJBK0JFQUNRQ0FDSUFFb0FoQkhCRUFnQVNnQ0ZDQUNSdzBCQ3lBRFFRRkhEUUlnQVVFQk5nSWdEd3NnQVNBRE5nSWdJQUVvQWl4QkJFY0VRQ0FBUVJCcUlnVWdBQ2dDREVFRGRHb2hCMEVBSVFNZ0FRSi9Ba0FEUUFKQUlBVWdCMDhOQUNBQlFRQTdBVFFnQlNBQklBSWdBa0VCSUFRUXdRRWdBUzBBTmcwQUFrQWdBUzBBTlVVTkFDQUJMUUEwQkVCQkFTRURJQUVvQWhoQkFVWU5CRUVCSVFZZ0FDMEFDRUVDY1EwQkRBUUxRUUVoQmlBQUxRQUlRUUZ4UlEwREN5QUZRUWhxSVFVTUFRc0xRUVFnQmtVTkFSb0xRUU1MTmdJc0lBTkJBWEVOQWdzZ0FTQUNOZ0lVSUFFZ0FTZ0NLRUVCYWpZQ0tDQUJLQUlrUVFGSERRRWdBU2dDR0VFQ1J3MEJJQUZCQVRvQU5nOExJQUFvQWd3aEJTQUFRUkJxSWdZZ0FTQUNJQU1nQkJDZ0FTQUZRUUpJRFFBZ0JpQUZRUU4wYWlFR0lBQkJHR29oQlFKQUlBQW9BZ2dpQUVFQ2NVVUVRQ0FCS0FJa1FRRkhEUUVMQTBBZ0FTMEFOZzBDSUFVZ0FTQUNJQU1nQkJDZ0FTQUZRUWhxSWdVZ0Jra05BQXNNQVFzZ0FFRUJjVVVFUUFOQUlBRXRBRFlOQWlBQktBSWtRUUZHRFFJZ0JTQUJJQUlnQXlBRUVLQUJJQVZCQ0dvaUJTQUdTUTBBREFJTEFBc0RRQ0FCTFFBMkRRRWdBU2dDSkVFQlJnUkFJQUVvQWhoQkFVWU5BZ3NnQlNBQklBSWdBeUFFRUtBQklBVkJDR29pQlNBR1NRMEFDd3NMYndFQ2Z5QUFJQUVvQWdoQkFCQStCRUFnQVNBQ0lBTVF4UUVQQ3lBQUtBSU1JUVFnQUVFUWFpSUZJQUVnQWlBREVQQUJBa0FnQkVFQ1NBMEFJQVVnQkVFRGRHb2hCQ0FBUVJocUlRQURRQ0FBSUFFZ0FpQURFUEFCSUFFdEFEWU5BU0FBUVFocUlnQWdCRWtOQUFzTEN6SUFJQUFnQVNnQ0NFRUFFRDRFUUNBQklBSWdBeERGQVE4TElBQW9BZ2dpQUNBQklBSWdBeUFBS0FJQUtBSWNFUWdBQ3hrQUlBQWdBU2dDQ0VFQUVENEVRQ0FCSUFJZ0F4REZBUXNMdWdNQkJYOGpBRUZBYWlJRUpBQUNmMEVCSUFBZ0FVRUFFRDROQUJwQkFDQUJSUTBBR2lNQVFVQnFJZ01rQUNBQktBSUFJZ1ZCQkdzb0FnQWhCaUFGUVFocktBSUFJUWNnQTBFQU5nSVVJQU5CblAwQU5nSVFJQU1nQVRZQ0RDQURRY3o5QURZQ0NFRUFJUVVnQTBFWWFrRUFRU2NRUmhvZ0FTQUhhaUVCQWtBZ0JrSE0vUUJCQUJBK0JFQWdBMEVCTmdJNElBWWdBMEVJYWlBQklBRkJBVUVBSUFZb0FnQW9BaFFSQ1FBZ0FVRUFJQU1vQWlCQkFVWWJJUVVNQVFzZ0JpQURRUWhxSUFGQkFVRUFJQVlvQWdBb0FoZ1JDZ0FDUUFKQUlBTW9BaXdPQWdBQkFnc2dBeWdDSEVFQUlBTW9BaWhCQVVZYlFRQWdBeWdDSkVFQlJodEJBQ0FES0FJd1FRRkdHeUVGREFFTElBTW9BaUJCQVVjRVFDQURLQUl3RFFFZ0F5Z0NKRUVCUncwQklBTW9BaWhCQVVjTkFRc2dBeWdDR0NFRkN5QURRVUJySkFCQkFDQUZJZ0ZGRFFBYUlBUkJDR29pQTBFRWNrRUFRVFFRUmhvZ0JFRUJOZ0k0SUFSQmZ6WUNGQ0FFSUFBMkFoQWdCQ0FCTmdJSUlBRWdBeUFDS0FJQVFRRWdBU2dDQUNnQ0hCRUlBQ0FFS0FJZ0lnQkJBVVlFUUNBQ0lBUW9BaGcyQWdBTElBQkJBVVlMSVFBZ0JFRkFheVFBSUFBTEJRQVFGd0FMQXdBQUN3Y0FJQUFvQWdRTENRQkJ6SW9CRUFvYUN5OEFBa0JCMklvQkxRQUFRUUZ4RFFCQjJJb0JFQ1JGRFFCQnpJb0JRZERWQUJDREFVSFlpZ0VRSXd0QnpJb0JDd2tBUWJ5S0FSQUtHZ3N1QUFKQVFjaUtBUzBBQUVFQmNRMEFRY2lLQVJBa1JRMEFRYnlLQVVIcUd4QlVHa0hJaWdFUUl3dEJ2SW9CQ3drQVFheUtBUkFLR2dzdkFBSkFRYmlLQVMwQUFFRUJjUTBBUWJpS0FSQWtSUTBBUWF5S0FVSDgxQUFRZ3dGQnVJb0JFQ01MUWF5S0FRc0pBRUdjaWdFUUNob0xMZ0FDUUVHb2lnRXRBQUJCQVhFTkFFR29pZ0VRSkVVTkFFR2NpZ0ZCM0IwUVZCcEJxSW9CRUNNTFFaeUtBUXNKQUVHTWlnRVFDaG9MTHdBQ1FFR1lpZ0V0QUFCQkFYRU5BRUdZaWdFUUpFVU5BRUdNaWdGQjJOUUFFSU1CUVppS0FSQWpDMEdNaWdFTENRQkIvSWtCRUFvYUN5NEFBa0JCaUlvQkxRQUFRUUZ4RFFCQmlJb0JFQ1JGRFFCQi9Ja0JRZmNkRUZRYVFZaUtBUkFqQzBIOGlRRUxDUUJCN0lrQkVBb2FDeThBQWtCQitJa0JMUUFBUVFGeERRQkIrSWtCRUNSRkRRQkI3SWtCUWJUVUFCQ0RBVUg0aVFFUUl3dEI3SWtCQ3drQVFkeUpBUkFLR2dzdUFBSkFRZWlKQVMwQUFFRUJjUTBBUWVpSkFSQWtSUTBBUWR5SkFVSG1HaEJVR2tIb2lRRVFJd3RCM0lrQkN4c0FRZGlTQVNFQUEwQWdBRUVNYXhBS0lnQkJ3SklCUncwQUN3dDlBQUpBUWRpSkFTMEFBRUVCY1EwQVFkaUpBUkFrUlEwQUFrQkIySklCTFFBQVFRRnhEUUJCMkpJQkVDUkZEUUJCd0pJQklRQURRQ0FBRUVkQkRHb2lBRUhZa2dGSERRQUxRZGlTQVJBakMwSEFrZ0ZCNFBzQUVCUkJ6SklCUWV6N0FCQVVRZFNKQVVIQWtnRTJBZ0JCMklrQkVDTUxRZFNKQVNnQ0FBc2JBRUc0a2dFaEFBTkFJQUJCREdzUUNpSUFRYUNTQVVjTkFBc0xld0FDUUVIUWlRRXRBQUJCQVhFTkFFSFFpUUVRSkVVTkFBSkFRYmlTQVMwQUFFRUJjUTBBUWJpU0FSQWtSUTBBUWFDU0FTRUFBMEFnQUJBUlFReHFJZ0JCdUpJQlJ3MEFDMEc0a2dFUUl3dEJvSklCUVljZUVCVkJySklCUVlRZUVCVkJ6SWtCUWFDU0FUWUNBRUhRaVFFUUl3dEJ6SWtCS0FJQUN4c0FRWkNTQVNFQUEwQWdBRUVNYXhBS0lnQkI4SThCUncwQUN3dlpBZ0FDUUVISWlRRXRBQUJCQVhFTkFFSElpUUVRSkVVTkFBSkFRWkNTQVMwQUFFRUJjUTBBUVpDU0FSQWtSUTBBUWZDUEFTRUFBMEFnQUJCSFFReHFJZ0JCa0pJQlJ3MEFDMEdRa2dFUUl3dEI4SThCUWRqM0FCQVVRZnlQQVVINDl3QVFGRUdJa0FGQm5QZ0FFQlJCbEpBQlFiVDRBQkFVUWFDUUFVSE0rQUFRRkVHc2tBRkIzUGdBRUJSQnVKQUJRZkQ0QUJBVVFjU1FBVUdFK1FBUUZFSFFrQUZCb1BrQUVCUkIzSkFCUWNqNUFCQVVRZWlRQVVIbytRQVFGRUgwa0FGQmpQb0FFQlJCZ0pFQlFiRDZBQkFVUVl5UkFVSEErZ0FRRkVHWWtRRkIwUG9BRUJSQnBKRUJRZUQ2QUJBVVFiQ1JBVUhNK0FBUUZFRzhrUUZCOFBvQUVCUkJ5SkVCUVlEN0FCQVVRZFNSQVVHUSt3QVFGRUhna1FGQm9Qc0FFQlJCN0pFQlFiRDdBQkFVUWZpUkFVSEErd0FRRkVHRWtnRkIwUHNBRUJSQnhJa0JRZkNQQVRZQ0FFSElpUUVRSXd0QnhJa0JLQUlBQ3hzQVFlQ1BBU0VBQTBBZ0FFRU1heEFLSWdCQndJMEJSdzBBQ3d2QkFnQUNRRUhBaVFFdEFBQkJBWEVOQUVIQWlRRVFKRVVOQUFKQVFlQ1BBUzBBQUVFQmNRMEFRZUNQQVJBa1JRMEFRY0NOQVNFQUEwQWdBQkFSUVF4cUlnQkI0SThCUncwQUMwSGdqd0VRSXd0QndJMEJRWndhRUJWQnpJMEJRWk1hRUJWQjJJMEJRZUFjRUJWQjVJMEJRZFljRUJWQjhJMEJRZUlhRUJWQi9JMEJRY3NkRUJWQmlJNEJRYVFhRUJWQmxJNEJRWlFiRUJWQm9JNEJRYjhiRUJWQnJJNEJRYTRiRUJWQnVJNEJRYlliRUJWQnhJNEJRY2tiRUJWQjBJNEJRY3NjRUJWQjNJNEJRZGdkRUJWQjZJNEJRZUliRUJWQjlJNEJRYU1iRUJWQmdJOEJRZUlhRUJWQmpJOEJRZm9iRUJWQm1JOEJRYzhjRUJWQnBJOEJRZVljRUJWQnNJOEJRZVliRUJWQnZJOEJRWnNiRUJWQnlJOEJRWXdiRUJWQjFJOEJRZFFkRUJWQnZJa0JRY0NOQVRZQ0FFSEFpUUVRSXd0QnZJa0JLQUlBQ3hzQVFiaU5BU0VBQTBBZ0FFRU1heEFLSWdCQmtJd0JSdzBBQ3d2MUFRQUNRRUc0aVFFdEFBQkJBWEVOQUVHNGlRRVFKRVVOQUFKQVFiaU5BUzBBQUVFQmNRMEFRYmlOQVJBa1JRMEFRWkNNQVNFQUEwQWdBQkJIUVF4cUlnQkJ1STBCUncwQUMwRzRqUUVRSXd0QmtJd0JRWVQxQUJBVVFaeU1BVUdnOVFBUUZFR29qQUZCdlBVQUVCUkJ0SXdCUWR6MUFCQVVRY0NNQVVHRTlnQVFGRUhNakFGQnFQWUFFQlJCMkl3QlFjVDJBQkFVUWVTTUFVSG85Z0FRRkVId2pBRkIrUFlBRUJSQi9Jd0JRWWozQUJBVVFZaU5BVUdZOXdBUUZFR1VqUUZCcVBjQUVCUkJvSTBCUWJqM0FCQVVRYXlOQVVISTl3QVFGRUcwaVFGQmtJd0JOZ0lBUWJpSkFSQWpDMEcwaVFFb0FnQUxHd0JCaUl3QklRQURRQ0FBUVF4ckVBb2lBRUhnaWdGSERRQUxDK2NCQUFKQVFiQ0pBUzBBQUVFQmNRMEFRYkNKQVJBa1JRMEFBa0JCaUl3QkxRQUFRUUZ4RFFCQmlJd0JFQ1JGRFFCQjRJb0JJUUFEUUNBQUVCRkJER29pQUVHSWpBRkhEUUFMUVlpTUFSQWpDMEhnaWdGQnpSb1FGVUhzaWdGQjFCb1FGVUg0aWdGQnNob1FGVUdFaXdGQnVob1FGVUdRaXdGQnFSb1FGVUdjaXdGQjJ4b1FGVUdvaXdGQnhCb1FGVUcwaXdGQjloc1FGVUhBaXdGQnd4d1FGVUhNaXdGQndSMFFGVUhZaXdGQjBCMFFGVUhraXdGQmtCc1FGVUh3aXdGQjNCd1FGVUg4aXdGQm54c1FGVUdzaVFGQjRJb0JOZ0lBUWJDSkFSQWpDMEdzaVFFb0FnQUxDd0FnQUVHYzFBQVFnd0VMQ2dBZ0FFSEZIUkJVR2dzTEFDQUFRWWpVQUJDREFRc0tBQ0FBUWJ3ZEVGUWFDd3dBSUFBZ0FVRVFhaERRQVFzTUFDQUFJQUZCREdvUTBBRUxCd0FnQUN3QUNRc0hBQ0FBTEFBSUN3a0FJQUFRaEFJUUVBc0pBQ0FBRUlVQ0VCQUw1Z01CQlg4Z0FpRUFBMEFDUUNBRUlBaE5JQUFnQTA5eURRQWdBQ3dBQUNJR1FmOEJjU0VCQWtBZ0JrRUFUZ1JBUVFFaEJpQUJRZi8vd3dCTkRRRU1BZ3NnQVVIQ0FVa05BU0FCUWQ4QlRRUkFJQU1nQUd0QkFrZ05BaUFBTFFBQklnVkJ3QUZ4UVlBQlJ3MENRUUloQmlBRlFUOXhJQUZCQm5SQndBOXhja0gvLzhNQVRRMEJEQUlMQWtBQ1FDQUJRZThCVFFSQUlBTWdBR3RCQTBnTkJDQUFMUUFDSVFjZ0FDMEFBU0VGSUFGQjdRRkdEUUVnQVVIZ0FVWUVRQ0FGUWVBQmNVR2dBVVlOQXd3RkN5QUZRY0FCY1VHQUFVY05CQXdDQ3lBRElBQnJRUVJJSUFGQjlBRkxjZzBESUFBdEFBTWhCeUFBTFFBQ0lRa2dBQzBBQVNFRkFrQUNRQUpBQWtBZ0FVSHdBV3NPQlFBQ0FnSUJBZ3NnQlVId0FHcEIvd0Z4UVRCSkRRSU1CZ3NnQlVId0FYRkJnQUZHRFFFTUJRc2dCVUhBQVhGQmdBRkhEUVFMSUFsQndBRnhRWUFCUnlBSFFjQUJjVUdBQVVkeURRTkJCQ0VHSUFkQlAzRWdDVUVHZEVIQUgzRWdBVUVTZEVHQWdQQUFjU0FGUVQ5eFFReDBjbkp5UWYvL3d3QkxEUU1NQWdzZ0JVSGdBWEZCZ0FGSERRSUxJQWRCd0FGeFFZQUJSdzBCUVFNaEJpQUhRVDl4SUFGQkRIUkJnT0FEY1NBRlFUOXhRUVowY25KQi8vL0RBRXNOQVFzZ0NFRUJhaUVJSUFBZ0Jtb2hBQXdCQ3dzZ0FDQUNhd3ZpQkFFRmZ5TUFRUkJySWdBa0FDQUFJQUkyQWd3Z0FDQUZOZ0lJQW44Z0FDQUNOZ0lNSUFBZ0JUWUNDQUpBQWtBRFFBSkFJQUFvQWd3aUFpQURUdzBBSUFBb0FnZ2lEQ0FHVHcwQUlBSXNBQUFpQlVIL0FYRWhBUUpBSUFWQkFFNEVRQ0FCUWYvL3d3Qk5CRUJCQVNFRkRBSUxRUUlNQmd0QkFpRUtJQUZCd2dGSkRRTWdBVUhmQVUwRVFDQURJQUpyUVFKSURRVWdBaTBBQVNJSVFjQUJjVUdBQVVjTkJFRUNJUVVnQ0VFL2NTQUJRUVowUWNBUGNYSWlBVUgvLzhNQVRRMEJEQVFMSUFGQjd3Rk5CRUFnQXlBQ2EwRURTQTBGSUFJdEFBSWhDU0FDTFFBQklRZ0NRQUpBSUFGQjdRRkhCRUFnQVVIZ0FVY05BU0FJUWVBQmNVR2dBVVlOQWd3SEN5QUlRZUFCY1VHQUFVWU5BUXdHQ3lBSVFjQUJjVUdBQVVjTkJRc2dDVUhBQVhGQmdBRkhEUVJCQXlFRklBbEJQM0VnQVVFTWRFR0E0QU54SUFoQlAzRkJCblJ5Y2lJQlFmLy93d0JORFFFTUJBc2dBVUgwQVVzTkF5QURJQUpyUVFSSURRUWdBaTBBQXlFSklBSXRBQUloQ3lBQ0xRQUJJUWdDUUFKQUFrQUNRQ0FCUWZBQmF3NEZBQUlDQWdFQ0N5QUlRZkFBYWtIL0FYRkJNRWtOQWd3R0N5QUlRZkFCY1VHQUFVWU5BUXdGQ3lBSVFjQUJjVUdBQVVjTkJBc2dDMEhBQVhGQmdBRkhJQWxCd0FGeFFZQUJSM0lOQTBFRUlRVWdDVUUvY1NBTFFRWjBRY0FmY1NBQlFSSjBRWUNBOEFCeElBaEJQM0ZCREhSeWNuSWlBVUgvLzhNQVN3MERDeUFNSUFFMkFnQWdBQ0FDSUFWcU5nSU1JQUFnQUNnQ0NFRUVhallDQ0F3QkN3c2dBaUFEU1NFS0N5QUtEQUVMUVFFTElRRWdCQ0FBS0FJTU5nSUFJQWNnQUNnQ0NEWUNBQ0FBUVJCcUpBQWdBUXVPQkFBakFFRVFheUlBSkFBZ0FDQUNOZ0lNSUFBZ0JUWUNDQUovSUFBZ0FqWUNEQ0FBSUFVMkFnZ2dBQ2dDRENFQkFrQURRQ0FCSUFOUEJFQkJBQ0VDREFJTFFRSWhBaUFCS0FJQUlnRkJnSEJ4UVlDd0EwWWdBVUgvLzhNQVMzSU5BUUpBQWtBZ0FVSC9BRTBFUUVFQklRSWdCaUFBS0FJSUlnVnJRUUJNRFFRZ0FDQUZRUUZxTmdJSUlBVWdBVG9BQUF3QkN5QUJRZjhQVFFSQUlBWWdBQ2dDQ0NJQ2EwRUNTQTBDSUFBZ0FrRUJhallDQ0NBQ0lBRkJCblpCd0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0JpQUFLQUlJSWdKcklRVWdBVUgvL3dOTkJFQWdCVUVEU0EwQ0lBQWdBa0VCYWpZQ0NDQUNJQUZCREhaQjRBRnlPZ0FBSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQVVFR2RrRS9jVUdBQVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRVDl4UVlBQmNqb0FBQXdCQ3lBRlFRUklEUUVnQUNBQ1FRRnFOZ0lJSUFJZ0FVRVNka0h3QVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRUXgyUVQ5eFFZQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFMSUFBZ0FDZ0NERUVFYWlJQk5nSU1EQUVMQzBFQkRBRUxJQUlMSVFFZ0JDQUFLQUlNTmdJQUlBY2dBQ2dDQ0RZQ0FDQUFRUkJxSkFBZ0FRdnVBd0VFZnlBQ0lRQURRQUpBSUFRZ0JrMGdBQ0FEVDNJTkFDQUFMUUFBSWdGQi8vL0RBRXNOQUFKL0lBQkJBV29nQVVFWWRFRVlkVUVBVGcwQUdpQUJRY0lCU1EwQklBRkIzd0ZOQkVBZ0F5QUFhMEVDU0EwQ0lBQXRBQUVpQlVIQUFYRkJnQUZISUFWQlAzRWdBVUVHZEVIQUQzRnlRZi8vd3dCTGNnMENJQUJCQW1vTUFRc0NRQUpBSUFGQjd3Rk5CRUFnQXlBQWEwRURTQTBFSUFBdEFBSWhCeUFBTFFBQklRVWdBVUh0QVVZTkFTQUJRZUFCUmdSQUlBVkI0QUZ4UWFBQlJnMEREQVVMSUFWQndBRnhRWUFCUncwRURBSUxJQU1nQUd0QkJFZ2dBVUgwQVV0eUlBUWdCbXRCQWtseURRTWdBQzBBQXlFSElBQXRBQUloQ0NBQUxRQUJJUVVDUUFKQUFrQUNRQ0FCUWZBQmF3NEZBQUlDQWdFQ0N5QUZRZkFBYWtIL0FYRkJNRWtOQWd3R0N5QUZRZkFCY1VHQUFVWU5BUXdGQ3lBRlFjQUJjVUdBQVVjTkJBc2dDRUhBQVhGQmdBRkhJQWRCd0FGeFFZQUJSM0lnQjBFL2NTQUlRUVowUWNBZmNTQUJRUkowUVlDQThBQnhJQVZCUDNGQkRIUnljbkpCLy8vREFFdHlEUU1nQmtFQmFpRUdJQUJCQkdvTUFnc2dCVUhnQVhGQmdBRkhEUUlMSUFkQndBRnhRWUFCUnlBSFFUOXhJQUZCREhSQmdPQURjU0FGUVQ5eFFRWjBjbkpCLy8vREFFdHlEUUVnQUVFRGFnc2hBQ0FHUVFGcUlRWU1BUXNMSUFBZ0Ftc0wwd1VCQkg4akFFRVFheUlBSkFBZ0FDQUNOZ0lNSUFBZ0JUWUNDQUovSUFBZ0FqWUNEQ0FBSUFVMkFnZ0NRQUpBQWtBRFFBSkFJQUFvQWd3aUFTQURUdzBBSUFBb0FnZ2lCU0FHVHcwQVFRSWhDaUFCTFFBQUlnSkIvLy9EQUVzTkJDQUFBbjhnQWtFWWRFRVlkVUVBVGdSQUlBVWdBanNCQUNBQlFRRnFEQUVMSUFKQndnRkpEUVVnQWtIZkFVMEVRQ0FESUFGclFRSklEUVVnQVMwQUFTSUlRY0FCY1VHQUFVY05CQ0FJUVQ5eElBSkJCblJCd0E5eGNpSUNRZi8vd3dCTERRUWdCU0FDT3dFQUlBRkJBbW9NQVFzZ0FrSHZBVTBFUUNBRElBRnJRUU5JRFFVZ0FTMEFBaUVKSUFFdEFBRWhDQUpBQWtBZ0FrSHRBVWNFUUNBQ1FlQUJSdzBCSUFoQjRBRnhRYUFCUmcwQ0RBY0xJQWhCNEFGeFFZQUJSZzBCREFZTElBaEJ3QUZ4UVlBQlJ3MEZDeUFKUWNBQmNVR0FBVWNOQkNBSlFUOXhJQWhCUDNGQkJuUWdBa0VNZEhKeUlnSkIvLzhEY1VILy84TUFTdzBFSUFVZ0Fqc0JBQ0FCUVFOcURBRUxJQUpCOUFGTERRVkJBU0VLSUFNZ0FXdEJCRWdOQXlBQkxRQURJUWtnQVMwQUFpRUlJQUV0QUFFaEFRSkFBa0FDUUFKQUlBSkI4QUZyRGdVQUFnSUNBUUlMSUFGQjhBQnFRZjhCY1VFd1R3MElEQUlMSUFGQjhBRnhRWUFCUncwSERBRUxJQUZCd0FGeFFZQUJSdzBHQ3lBSVFjQUJjVUdBQVVjZ0NVSEFBWEZCZ0FGSGNnMEZJQVlnQld0QkJFZ05BMEVDSVFvZ0NVRS9jU0lKSUFoQkJuUWlDMEhBSDNFZ0FVRU1kRUdBNEE5eElBSkJCM0VpQWtFU2RISnlja0gvLzhNQVN3MERJQVVnQ0VFRWRrRURjU0FCUVFKMElnRkJ3QUZ4SUFKQkNIUnlJQUZCUEhGeWNrSEEvd0JxUVlDd0EzSTdBUUFnQUNBRlFRSnFOZ0lJSUFVZ0MwSEFCM0VnQ1hKQmdMZ0RjanNCQWlBQUtBSU1RUVJxQ3pZQ0RDQUFJQUFvQWdoQkFtbzJBZ2dNQVFzTElBRWdBMGtoQ2dzZ0Nnd0NDMEVCREFFTFFRSUxJUUVnQkNBQUtBSU1OZ0lBSUFjZ0FDZ0NDRFlDQUNBQVFSQnFKQUFnQVF2NkJRRUJmeU1BUVJCcklnQWtBQ0FBSUFJMkFnd2dBQ0FGTmdJSUFuOGdBQ0FDTmdJTUlBQWdCVFlDQ0NBQUtBSU1JUUlDUUFKQUEwQWdBaUFEVHdSQVFRQWhCUXdEQzBFQ0lRVWdBaThCQUNJQlFmLy93d0JMRFFJQ1FBSkFJQUZCL3dCTkJFQkJBU0VGSUFZZ0FDZ0NDQ0lDYTBFQVRBMEZJQUFnQWtFQmFqWUNDQ0FDSUFFNkFBQU1BUXNnQVVIL0QwMEVRQ0FHSUFBb0FnZ2lBbXRCQWtnTkJDQUFJQUpCQVdvMkFnZ2dBaUFCUVFaMlFjQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQlAzRkJnQUZ5T2dBQURBRUxJQUZCLzY4RFRRUkFJQVlnQUNnQ0NDSUNhMEVEU0EwRUlBQWdBa0VCYWpZQ0NDQUNJQUZCREhaQjRBRnlPZ0FBSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQVVFR2RrRS9jVUdBQVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRVDl4UVlBQmNqb0FBQXdCQ3lBQlFmKzNBMDBFUUVFQklRVWdBeUFDYTBFRVNBMEZJQUl2QVFJaUNFR0ErQU54UVlDNEEwY05BaUFHSUFBb0FnaHJRUVJJRFFVZ0NFSC9CM0VnQVVFS2RFR0ErQU54SUFGQndBZHhJZ1ZCQ25SeWNrR0FnQVJxUWYvL3d3QkxEUUlnQUNBQ1FRSnFOZ0lNSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQlVFR2RrRUJhaUlDUVFKMlFmQUJjam9BQUNBQUlBQW9BZ2dpQlVFQmFqWUNDQ0FGSUFKQkJIUkJNSEVnQVVFQ2RrRVBjWEpCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdDRUVHZGtFUGNTQUJRUVIwUVRCeGNrR0FBWEk2QUFBZ0FDQUFLQUlJSWdGQkFXbzJBZ2dnQVNBSVFUOXhRWUFCY2pvQUFBd0JDeUFCUVlEQUEwa05CQ0FHSUFBb0FnZ2lBbXRCQTBnTkF5QUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFMSUFBZ0FDZ0NERUVDYWlJQ05nSU1EQUVMQzBFQ0RBSUxRUUVNQVFzZ0JRc2hBU0FFSUFBb0FndzJBZ0FnQnlBQUtBSUlOZ0lBSUFCQkVHb2tBQ0FCQ3hVQUlBQW9BZ2dpQUVVRVFFRUJEd3NnQUJDSUFndVFBUUVHZndOQUFrQWdBaUFEUmlBRUlBaE5jZzBBUVFFaEJ5QUFLQUlJSVFVakFFRVFheUlHSkFBZ0JpQUZOZ0lNSUFaQkNHb2dCa0VNYWhCU0lRcEJBQ0FDSUFNZ0Ftc2dBVUdraHdFZ0FSc1F0d0VoQlNBS0VGRWdCa0VRYWlRQUFrQUNRQ0FGUVFKcURnTUNBZ0VBQ3lBRklRY0xJQWhCQVdvaENDQUhJQWxxSVFrZ0FpQUhhaUVDREFFTEN5QUpDMllCQTM4Z0FDZ0NDQ0VDSXdCQkVHc2lBU1FBSUFFZ0FqWUNEQ0FCUVFocUlBRkJER29RVWlFQ0l3QkJFR3NpQXlRQUlBTkJFR29rQUVFQUlRTWdBaEJSSUFGQkVHb2tBQ0FEQkg5QmZ3VWdBQ2dDQ0NJQVJRUkFRUUVQQ3lBQUVJZ0NRUUZHQ3d1U0FRRUJmeU1BUVJCcklnVWtBQ0FFSUFJMkFnQUNmMEVDSUFWQkRHcEJBQ0FBS0FJSUVNc0JJZ0JCQVdwQkFra05BQnBCQVNBQVFRRnJJZ0VnQXlBRUtBSUFhMHNOQUJvZ0JVRU1haUVDQTM4Z0FRUi9JQUl0QUFBaEFDQUVJQVFvQWdBaUEwRUJhallDQUNBRElBQTZBQUFnQVVFQmF5RUJJQUpCQVdvaEFnd0JCVUVBQ3dzTElRSWdCVUVRYWlRQUlBSUx5d1lCREg4akFFRVFheUlSSkFBZ0FpRUlBMEFDUUNBRElBaEdCRUFnQXlFSURBRUxJQWd0QUFCRkRRQWdDRUVCYWlFSURBRUxDeUFISUFVMkFnQWdCQ0FDTmdJQUEwQUNRQUovQWtBZ0FpQURSaUFGSUFaR2NnMEFJQkVnQVNrQ0FEY0RDQ0FBS0FJSUlRa2pBRUVRYXlJUUpBQWdFQ0FKTmdJTUlCQkJDR29nRUVFTWFoQlNJUk1nQ0NBQ2F5RU5RUUFoQ2lNQVFaQUlheUlMSkFBZ0N5QUVLQUlBSWc0MkFnd2dCU0FMUVJCcUlBVWJJUThDUUFKQUFrQWdEa1VnQmlBRmEwRUNkVUdBQWlBRkd5SU1SWElOQUFOQUlBMUJBbllpQ1NBTVNTQU5RWU1CVFhFTkFpQVBJQXRCREdvZ0RDQUpJQWtnREU4YklBRVEwUUlpRWtGL1JnUkFRWDhoQ2tFQUlRd2dDeWdDRENFT0RBSUxJQXhCQUNBU0lBOGdDMEVRYWtZYklnbHJJUXdnRHlBSlFRSjBhaUVQSUEwZ0Rtb2dDeWdDRENJT2EwRUFJQTRiSVEwZ0NpQVNhaUVLSUE1RkRRRWdEQTBBQ3dzZ0RrVU5BUXNnREVVZ0RVVnlEUUFnQ2lFSkEwQUNRQUpBSUE4Z0RpQU5JQUVRdHdFaUNrRUNha0VDVFFSQUFrQUNRQ0FLUVFGcURnSUdBQUVMSUF0QkFEWUNEQXdDQ3lBQlFRQTJBZ0FNQVFzZ0N5QUxLQUlNSUFwcUlnNDJBZ3dnQ1VFQmFpRUpJQXhCQVdzaURBMEJDeUFKSVFvTUFnc2dEMEVFYWlFUElBMGdDbXNoRFNBSklRb2dEUTBBQ3dzZ0JRUkFJQVFnQ3lnQ0REWUNBQXNnQzBHUUNHb2tBQ0FLSVFrZ0V4QlJJQkJCRUdva0FBSkFBa0FDUUFKQUlBbEJmMFlFUUFOQUFrQWdCeUFGTmdJQUlBSWdCQ2dDQUVZTkFFRUJJUVlDUUFKQUFrQWdCU0FDSUFnZ0Ftc2dFVUVJYWlBQUtBSUlFSWtDSWdGQkFtb09Bd2dBQWdFTElBUWdBallDQUF3RkN5QUJJUVlMSUFJZ0Jtb2hBaUFIS0FJQVFRUnFJUVVNQVFzTElBUWdBallDQUF3RkN5QUhJQWNvQWdBZ0NVRUNkR29pQlRZQ0FDQUZJQVpHRFFNZ0JDZ0NBQ0VDSUFNZ0NFWUVRQ0FESVFnTUNBc2dCU0FDUVFFZ0FTQUFLQUlJRUlrQ1JRMEJDMEVDREFRTElBY2dCeWdDQUVFRWFqWUNBQ0FFSUFRb0FnQkJBV29pQWpZQ0FDQUNJUWdEUUNBRElBaEdCRUFnQXlFSURBWUxJQWd0QUFCRkRRVWdDRUVCYWlFSURBQUxBQXNnQkNBQ05nSUFRUUVNQWdzZ0JDZ0NBQ0VDQ3lBQ0lBTkhDeUVBSUJGQkVHb2tBQ0FBRHdzZ0J5Z0NBQ0VGREFBTEFBdXpCUUVNZnlNQVFSQnJJZzBrQUNBQ0lRZ0RRQUpBSUFNZ0NFWUVRQ0FESVFnTUFRc2dDQ2dDQUVVTkFDQUlRUVJxSVFnTUFRc0xJQWNnQlRZQ0FDQUVJQUkyQWdBRFFBSkFBa0FnQWlBRFJpQUZJQVpHY2dSL0lBSUZJQTBnQVNrQ0FEY0RDRUVCSVJBZ0FDZ0NDQ0VKSXdCQkVHc2lEaVFBSUE0Z0NUWUNEQ0FPUVFocUlBNUJER29RVWlFVElBWWdCU0lKYXlFS1FRQWhEeU1BUVJCckloRWtBQUpBSUFRb0FnQWlDMFVnQ0NBQ2EwRUNkU0lTUlhJTkFDQUtRUUFnQ1JzaENnTkFJQkZCREdvZ0NTQUtRUVJKR3lBTEtBSUFFTm9CSWd4QmYwWUVRRUYvSVE4TUFnc2dDUVIvSUFwQkEwMEVRQ0FLSUF4SkRRTWdDU0FSUVF4cUlBd1FRaG9MSUFvZ0RHc2hDaUFKSUF4cUJVRUFDeUVKSUFzb0FnQkZCRUJCQUNFTERBSUxJQXdnRDJvaER5QUxRUVJxSVFzZ0VrRUJheUlTRFFBTEN5QUpCRUFnQkNBTE5nSUFDeUFSUVJCcUpBQWdEeUVKSUJNUVVTQU9RUkJxSkFBQ1FBSkFBa0FDUUFKQUlBbEJBV29PQWdBR0FRc2dCeUFGTmdJQUEwQUNRQ0FDSUFRb0FnQkdEUUFnQlNBQ0tBSUFJQUFvQWdnUXl3RWlBVUYvUmcwQUlBY2dCeWdDQUNBQmFpSUZOZ0lBSUFKQkJHb2hBZ3dCQ3dzZ0JDQUNOZ0lBREFFTElBY2dCeWdDQUNBSmFpSUZOZ0lBSUFVZ0JrWU5BaUFESUFoR0JFQWdCQ2dDQUNFQ0lBTWhDQXdIQ3lBTlFRUnFRUUFnQUNnQ0NCRExBU0lJUVg5SERRRUxRUUloRUF3REN5QU5RUVJxSVFJZ0JpQUhLQUlBYXlBSVNRMENBMEFnQ0FSQUlBSXRBQUFoQlNBSElBY29BZ0FpQ1VFQmFqWUNBQ0FKSUFVNkFBQWdDRUVCYXlFSUlBSkJBV29oQWd3QkN3c2dCQ0FFS0FJQVFRUnFJZ0kyQWdBZ0FpRUlBMEFnQXlBSVJnUkFJQU1oQ0F3RkN5QUlLQUlBUlEwRUlBaEJCR29oQ0F3QUN3QUxJQVFvQWdBTElBTkhJUkFMSUExQkVHb2tBQ0FRRHdzZ0J5Z0NBQ0VGREFBTEFBc0pBQ0FBRUpjQ0VCQUxOd0FqQUVFUWF5SUFKQUFnQUNBRU5nSU1JQUFnQXlBQ2F6WUNDQ0FBUVF4cUlBQkJDR29Rb2dFb0FnQWhBU0FBUVJCcUpBQWdBUXMwQUFOQUlBRWdBa1pGQkVBZ0JDQUJMQUFBSWdBZ0F5QUFRUUJPR3pvQUFDQUVRUUZxSVFRZ0FVRUJhaUVCREFFTEN5QUNDd3dBSUFFZ0FpQUJRUUJPR3dzcUFBTkFJQUVnQWtaRkJFQWdBeUFCTFFBQU9nQUFJQU5CQVdvaEF5QUJRUUZxSVFFTUFRc0xJQUlMUUFBRFFDQUJJQUpIQkVBZ0FTQUJMQUFBSWdCQkFFNEVmMEhBeEFBb0FnQWdBU3dBQUVFQ2RHb29BZ0FGSUFBTE9nQUFJQUZCQVdvaEFRd0JDd3NnQWdzbkFDQUJRUUJPQkg5QndNUUFLQUlBSUFGQi93RnhRUUowYWlnQ0FBVWdBUXRCR0hSQkdIVUxQd0FEUUNBQklBSkhCRUFnQVNBQkxBQUFJZ0JCQUU0RWYwR3dPQ2dDQUNBQkxBQUFRUUowYWlnQ0FBVWdBQXM2QUFBZ0FVRUJhaUVCREFFTEN5QUNDeVlBSUFGQkFFNEVmMEd3T0NnQ0FDQUJRZjhCY1VFQ2RHb29BZ0FGSUFFTFFSaDBRUmgxQ3drQUlBQVFqQUlRRUFzMUFBTkFJQUVnQWtaRkJFQWdCQ0FCS0FJQUlnQWdBeUFBUVlBQlNSczZBQUFnQkVFQmFpRUVJQUZCQkdvaEFRd0JDd3NnQWdzVEFDQUJJQUlnQVVHQUFVa2JRUmgwUVJoMUN5b0FBMEFnQVNBQ1JrVUVRQ0FESUFFc0FBQTJBZ0FnQTBFRWFpRURJQUZCQVdvaEFRd0JDd3NnQWd0QkFBTkFJQUVnQWtjRVFDQUJJQUVvQWdBaUFFSC9BRTBFZjBIQXhBQW9BZ0FnQVNnQ0FFRUNkR29vQWdBRklBQUxOZ0lBSUFGQkJHb2hBUXdCQ3dzZ0Fnc2VBQ0FCUWY4QVRRUi9RY0RFQUNnQ0FDQUJRUUowYWlnQ0FBVWdBUXNMUUFBRFFDQUJJQUpIQkVBZ0FTQUJLQUlBSWdCQi93Qk5CSDlCc0Rnb0FnQWdBU2dDQUVFQ2RHb29BZ0FGSUFBTE5nSUFJQUZCQkdvaEFRd0JDd3NnQWdzZEFDQUJRZjhBVFFSL1FiQTRLQUlBSUFGQkFuUnFLQUlBQlNBQkN3dEVBQUpBQTBBZ0FpQURSZzBCQWtBZ0FpZ0NBRUgvQUVzTkFFR2dNaWdDQUNBQ0tBSUFRUUYwYWk4QkFDQUJjVVVOQUNBQ1FRUnFJUUlNQVFzTElBSWhBd3NnQXd0REFBTkFBa0FnQWlBRFJ3Ui9JQUlvQWdCQi93QkxEUUZCb0RJb0FnQWdBaWdDQUVFQmRHb3ZBUUFnQVhGRkRRRWdBZ1VnQXdzUEN5QUNRUVJxSVFJTUFBc0FDMFVBQTBBZ0FTQUNSd1JBSUFNZ0FTZ0NBRUgvQUUwRWYwR2dNaWdDQUNBQktBSUFRUUYwYWk4QkFBVkJBQXM3QVFBZ0EwRUNhaUVESUFGQkJHb2hBUXdCQ3dzZ0Fnc2pBQ0FDUWY4QVRRUi9RYUF5S0FJQUlBSkJBWFJxTHdFQUlBRnhRUUJIQlVFQUN3dEFBUUovSUFBb0FnQW9BZ0FpQUNnQ0FDQUFLQUlJSWdKQkFYVnFJUUVnQUNnQ0JDRUFJQUVnQWtFQmNRUi9JQUVvQWdBZ0FHb29BZ0FGSUFBTEVRRUFDdzhBSUFBZ0FDZ0NBQ2dDQkJFQkFBc2ZBQ0FBQW45QjZJZ0JRZWlJQVNnQ0FFRUJhaUlBTmdJQUlBQUxOZ0lFQ3drQUlBQVFrZ0lRRUF1WUFRQWpBRUVRYXlJREpBQUNRQ0FGRURWRkJFQWdBQ0FGS0FJSU5nSUlJQUFnQlNrQ0FEY0NBQXdCQ3lBRktBSUFJUVFDUUFKQUFrQWdCU2dDQkNJQ1FRRk5CRUFnQUNFQklBQWdBaEE2REFFTElBSkI3Ly8vL3dOTERRRWdBQ0FBSUFJUWdnRkJBV29pQlJDQkFTSUJFRTBnQUNBRkVFd2dBQ0FDRURrTElBRWdCQ0FDUVFGcUVHWU1BUXNRRndBTEN5QURRUkJxSkFBTENRQWdBQ0FGRU5BQkM0WURBUWgvSXdCQjhBTnJJZ0FrQUNBQVFlZ0RhaUlHSUFNUUR5QUdFRHNoQ2lBRkVBa0VRQ0FGUVFBUXNRRW9BZ0FnQ2tFdEVEMUdJUXNMSUFJZ0N5QUFRZWdEYWlBQVFlQURhaUFBUWR3RGFpQUFRZGdEYWlBQVFjZ0RhaEFSSWd3Z0FFRzRBMm9RUnlJR0lBQkJxQU5xRUVjaUJ5QUFRYVFEYWhDYUFpQUFRVFUyQWhBZ0FFRUlha0VBSUFCQkVHb2lBaEFlSVFnQ1FBSi9JQVVRQ1NBQUtBS2tBMG9FUUNBRkVBa2hDU0FBS0FLa0F5RU5JQWNRQ1NBSklBMXJRUUYwYWlBR0VBbHFJQUFvQXFRRGFrRUJhZ3dCQ3lBSEVBa2dCaEFKYWlBQUtBS2tBMnBCQW1vTElnbEI1UUJKRFFBZ0NDQUpRUUowRUJrUUp5QUlLQUlBSWdJTkFCQVhBQXNnQWlBQVFRUnFJQUFnQXlnQ0JDQUZFQTBnQlJBTklBVVFDVUVDZEdvZ0NpQUxJQUJCNEFOcUlBQW9BdHdESUFBb0F0Z0RJQXdnQmlBSElBQW9BcVFERUprQ0lBRWdBaUFBS0FJRUlBQW9BZ0FnQXlBRUVHTWhBU0FJRUIwZ0J4QUtHaUFHRUFvYUlBd1FDaG9nQUVIb0Eyb1FEaUFBUWZBRGFpUUFJQUVMdXdRQkMzOGpBRUd3Q0dzaUFDUUFJQUFnQlRjREVDQUFJQVkzQXhnZ0FDQUFRY0FIYWlJSE5nSzhCeUFISUFCQkVHb1ExQUloQnlBQVFUVTJBcUFFSUFCQm1BUnFRUUFnQUVHZ0JHb2lDUkFlSVE0Z0FFRTFOZ0tnQkNBQVFaQUVha0VBSUFrUUhpRUtBa0FnQjBIa0FFOEVRQkFXSVFjZ0FDQUZOd01BSUFBZ0JqY0RDQ0FBUWJ3SGFpQUhRZTRjSUFBUVdpSUhRWDlHRFFFZ0RpQUFLQUs4QnhBbklBb2dCMEVDZEJBWkVDY2dDaENkQWcwQklBb29BZ0FoQ1FzZ0FFR0lCR29pQ0NBREVBOGdDQkE3SWhFZ0FDZ0N2QWNpQ0NBSElBaHFJQWtRWkNBSFFRQktCRUFnQUNnQ3ZBY3RBQUJCTFVZaER3c2dBaUFQSUFCQmlBUnFJQUJCZ0FScUlBQkIvQU5xSUFCQitBTnFJQUJCNkFOcUVCRWlFQ0FBUWRnRGFoQkhJZ2dnQUVISUEyb1FSeUlMSUFCQnhBTnFFSm9DSUFCQk5UWUNNQ0FBUVNocVFRQWdBRUV3YWlJQ0VCNGhEQUovSUFBb0FzUURJZzBnQjBnRVFDQUxFQWtnQnlBTmEwRUJkR29nQ0JBSmFpQUFLQUxFQTJwQkFXb01BUXNnQ3hBSklBZ1FDV29nQUNnQ3hBTnFRUUpxQ3lJTlFlVUFUd1JBSUF3Z0RVRUNkQkFaRUNjZ0RDZ0NBQ0lDUlEwQkN5QUNJQUJCSkdvZ0FFRWdhaUFES0FJRUlBa2dDU0FIUVFKMGFpQVJJQThnQUVHQUJHb2dBQ2dDL0FNZ0FDZ0MrQU1nRUNBSUlBc2dBQ2dDeEFNUW1RSWdBU0FDSUFBb0FpUWdBQ2dDSUNBRElBUVFZeUVCSUF3UUhTQUxFQW9hSUFnUUNob2dFQkFLR2lBQVFZZ0VhaEFPSUFvUUhTQU9FQjBnQUVHd0NHb2tBQ0FCRHdzUUZ3QUwvZ0lCQ0g4akFFSEFBV3NpQUNRQUlBQkJ1QUZxSWdZZ0F4QVBJQVlRTWlFS0lBVVFDUVJBSUFWQkFCQUxMUUFBSUFwQkxSQXBRZjhCY1VZaEN3c2dBaUFMSUFCQnVBRnFJQUJCc0FGcUlBQkJyd0ZxSUFCQnJnRnFJQUJCb0FGcUVCRWlEQ0FBUVpBQmFoQVJJZ1lnQUVHQUFXb1FFU0lISUFCQi9BQnFFSndDSUFCQk5UWUNFQ0FBUVFocVFRQWdBRUVRYWlJQ0VCNGhDQUpBQW44Z0JSQUpJQUFvQW54S0JFQWdCUkFKSVFrZ0FDZ0NmQ0VOSUFjUUNTQUpJQTFyUVFGMGFpQUdFQWxxSUFBb0FueHFRUUZxREFFTElBY1FDU0FHRUFscUlBQW9BbnhxUVFKcUN5SUpRZVVBU1EwQUlBZ2dDUkFaRUNjZ0NDZ0NBQ0lDRFFBUUZ3QUxJQUlnQUVFRWFpQUFJQU1vQWdRZ0JSQU5JQVVRRFNBRkVBbHFJQW9nQ3lBQVFiQUJhaUFBTEFDdkFTQUFMQUN1QVNBTUlBWWdCeUFBS0FKOEVKc0NJQUVnQWlBQUtBSUVJQUFvQWdBZ0F5QUVFRlloQVNBSUVCMGdCeEFLR2lBR0VBb2FJQXdRQ2hvZ0FFRzRBV29RRGlBQVFjQUJhaVFBSUFFTHNnUUJDMzhqQUVIUUEyc2lBQ1FBSUFBZ0JUY0RFQ0FBSUFZM0F4Z2dBQ0FBUWVBQ2FpSUhOZ0xjQWlBSElBQkJFR29RMUFJaEJ5QUFRVFUyQXZBQklBQkI2QUZxUVFBZ0FFSHdBV29pQ1JBZUlRNGdBRUUxTmdMd0FTQUFRZUFCYWtFQUlBa1FIaUVLQWtBZ0IwSGtBRThFUUJBV0lRY2dBQ0FGTndNQUlBQWdCamNEQ0NBQVFkd0NhaUFIUWU0Y0lBQVFXaUlIUVg5R0RRRWdEaUFBS0FMY0FoQW5JQW9nQnhBWkVDY2dDaENkQWcwQklBb29BZ0FoQ1FzZ0FFSFlBV29pQ0NBREVBOGdDQkF5SWhFZ0FDZ0MzQUlpQ0NBSElBaHFJQWtRY0NBSFFRQktCRUFnQUNnQzNBSXRBQUJCTFVZaER3c2dBaUFQSUFCQjJBRnFJQUJCMEFGcUlBQkJ6d0ZxSUFCQnpnRnFJQUJCd0FGcUVCRWlFQ0FBUWJBQmFoQVJJZ2dnQUVHZ0FXb1FFU0lMSUFCQm5BRnFFSndDSUFCQk5UWUNNQ0FBUVNocVFRQWdBRUV3YWlJQ0VCNGhEQUovSUFBb0Fwd0JJZzBnQjBnRVFDQUxFQWtnQnlBTmEwRUJkR29nQ0JBSmFpQUFLQUtjQVdwQkFXb01BUXNnQ3hBSklBZ1FDV29nQUNnQ25BRnFRUUpxQ3lJTlFlVUFUd1JBSUF3Z0RSQVpFQ2NnRENnQ0FDSUNSUTBCQ3lBQ0lBQkJKR29nQUVFZ2FpQURLQUlFSUFrZ0J5QUphaUFSSUE4Z0FFSFFBV29nQUN3QXp3RWdBQ3dBemdFZ0VDQUlJQXNnQUNnQ25BRVFtd0lnQVNBQ0lBQW9BaVFnQUNnQ0lDQURJQVFRVmlFQklBd1FIU0FMRUFvYUlBZ1FDaG9nRUJBS0dpQUFRZGdCYWhBT0lBb1FIU0FPRUIwZ0FFSFFBMm9rQUNBQkR3c1FGd0FMcHdVQkEzOGpBRUhBQTJzaUFDUUFJQUFnQWpZQ3NBTWdBQ0FCTmdLNEF5QUFRVFkyQWhRZ0FFRVlhaUFBUVNCcUlBQkJGR29pQnhBZUlRa2dBRUVRYWlJQklBUVFEeUFCRURzaENDQUFRUUE2QUE4Z0FFRzRBMm9nQWlBRElBRWdCQ2dDQkNBRklBQkJEMm9nQ0NBSklBY2dBRUd3QTJvUW93SUVRQ01BUVJCcklnRWtBQUpBSUFZUU5RUkFJQVlvQWdBaEFpQUJRUUEyQWd3Z0FpQUJRUXhxRURNZ0JrRUFFRGtNQVFzZ0FVRUFOZ0lJSUFZZ0FVRUlhaEF6SUFaQkFCQTZDeUFCUVJCcUpBQWdBQzBBRHdSQUlBWWdDRUV0RUQwUXhnRUxJQWhCTUJBOUlRRWdDU2dDQUNFRUlBQW9BaFFpQ0VFRWF5RUNBMEFDUUNBQ0lBUk5EUUFnQkNnQ0FDQUJSdzBBSUFSQkJHb2hCQXdCQ3dzakFFRVFheUlCSkFBZ0JoQUpJUUlnQmhET0FTRURBa0FnQkNBSUVLRUNJZ2RGRFFBZ0JoQU5JQVJOQkg4Z0JDQUdFQTBnQmhBSlFRSjBhazBGUVFBTFJRUkFJQWNnQXlBQ2Ewc0VRQ0FHSUFNZ0FpQUhhaUFEYXlBQ0lBSVE4Z0VMSUFZUURTQUNRUUowYWlFREEwQWdCQ0FJUndSQUlBTWdCQkF6SUFSQkJHb2hCQ0FEUVFScUlRTU1BUXNMSUFGQkFEWUNBQ0FESUFFUU15QUdJQUlnQjJvUWVBd0JDeU1BUVJCcklnSWtBQ0FCSUFRZ0NCRE5BaUFDUVJCcUpBQWdBUkFOSVFnZ0FSQUpJUUlqQUVFUWF5SUVKQUFDUUNBQ0lBWVF6Z0VpQnlBR0VBa2lBMnROQkVBZ0FrVU5BU0FHRUEwaUJ5QURRUUowYWlBSUlBSVFaaUFHSUFJZ0Eyb2lBaEI0SUFSQkFEWUNEQ0FISUFKQkFuUnFJQVJCREdvUU13d0JDeUFHSUFjZ0FpQURhaUFIYXlBRElBTkJBQ0FDSUFnUTh3RUxJQVJCRUdva0FDQUJFQW9hQ3lBQlFSQnFKQUFMSUFCQnVBTnFJQUJCc0FOcUVDZ0VRQ0FGSUFVb0FnQkJBbkkyQWdBTElBQW9BcmdESVFFZ0FFRVFhaEFPSUFrUUhTQUFRY0FEYWlRQUlBRUwxd01CQW44akFFSHdCR3NpQUNRQUlBQWdBallDNEFRZ0FDQUJOZ0xvQkNBQVFUWTJBaEFnQUVISUFXb2dBRUhRQVdvZ0FFRVFhaEFlSVFFZ0FFSEFBV29pQnlBRUVBOGdCeEE3SVFnZ0FFRUFPZ0MvQVFKQUlBQkI2QVJxSUFJZ0F5QUhJQVFvQWdRZ0JTQUFRYjhCYWlBSUlBRWdBRUhFQVdvZ0FFSGdCR29Rb3dKRkRRQWdBRUdqSGlnQUFEWUF0d0VnQUVHY0hpa0FBRGNEc0FFZ0NDQUFRYkFCYWlBQVFib0JhaUFBUVlBQmFoQmtJQUJCTlRZQ0VDQUFRUWhxUVFBZ0FFRVFhaUlDRUI0aEF3SkFJQUFvQXNRQklBRW9BZ0JyUVlrRFRnUkFJQU1nQUNnQ3hBRWdBU2dDQUd0QkFuVkJBbW9RR1JBbklBTW9BZ0JGRFFFZ0F5Z0NBQ0VDQ3lBQUxRQy9BUVJBSUFKQkxUb0FBQ0FDUVFGcUlRSUxJQUVvQWdBaEJBTkFJQUFvQXNRQklBUk5CRUFDUUNBQ1FRQTZBQUFnQUNBR05nSUFJQUJCRUdvZ0FCRFZBa0VCUncwQUlBTVFIUXdFQ3dVZ0FpQUFRYkFCYWlBQVFZQUJhaUlISUFkQktHb2dCQkRTQVNBSGEwRUNkV290QUFBNkFBQWdBa0VCYWlFQ0lBUkJCR29oQkF3QkN3c1FGd0FMRUJjQUN5QUFRZWdFYWlBQVFlQUVhaEFvQkVBZ0JTQUZLQUlBUVFKeU5nSUFDeUFBS0FMb0JDRUNJQUJCd0FGcUVBNGdBUkFkSUFCQjhBUnFKQUFnQWd1a0JRRURmeU1BUWFBQmF5SUFKQUFnQUNBQ05nS1FBU0FBSUFFMkFwZ0JJQUJCTmpZQ0ZDQUFRUmhxSUFCQklHb2dBRUVVYWlJSEVCNGhDU0FBUVJCcUlnRWdCQkFQSUFFUU1pRUlJQUJCQURvQUR5QUFRWmdCYWlBQ0lBTWdBU0FFS0FJRUlBVWdBRUVQYWlBSUlBa2dCeUFBUVlRQmFoQ3JBZ1JBSXdCQkVHc2lBU1FBQWtBZ0JoQTFCRUFnQmlnQ0FDRUNJQUZCQURvQUR5QUNJQUZCRDJvUU5DQUdRUUFRT1F3QkN5QUJRUUE2QUE0Z0JpQUJRUTVxRURRZ0JrRUFFRG9MSUFGQkVHb2tBQ0FBTFFBUEJFQWdCaUFJUVMwUUtSQ2hBUXNnQ0VFd0VDa2hBU0FKS0FJQUlRUWdBQ2dDRkNJSVFRRnJJUUlnQVVIL0FYRWhBUU5BQWtBZ0FpQUVUUTBBSUFRdEFBQWdBVWNOQUNBRVFRRnFJUVFNQVFzTEl3QkJFR3NpQVNRQUlBWVFDU0VDSUFZUUV5RURBa0FnQkNBSUVPc0NJZ2RGRFFBZ0JoQU5JQVJOQkg4Z0JDQUdFQTBnQmhBSmFrMEZRUUFMUlFSQUlBY2dBeUFDYTBzRVFDQUdJQU1nQWlBSGFpQURheUFDSUFJUXlBRUxJQVlRRFNBQ2FpRURBMEFnQkNBSVJ3UkFJQU1nQkJBMElBUkJBV29oQkNBRFFRRnFJUU1NQVFzTElBRkJBRG9BRHlBRElBRkJEMm9RTkNBR0lBSWdCMm9RZUF3QkN5TUFRUkJySWdJa0FDQUJJQVFnQ0JEd0FpQUNRUkJxSkFBZ0FSQU5JUWdnQVJBSklRSWpBRUVRYXlJRUpBQUNRQ0FDSUFZUUV5SUhJQVlRQ1NJRGEwMEVRQ0FDUlEwQklBWVFEU0lISUFOcUlBZ2dBaEJWSUFZZ0FpQURhaUlDRUhnZ0JFRUFPZ0FQSUFJZ0Iyb2dCRUVQYWhBMERBRUxJQVlnQnlBQ0lBTnFJQWRySUFNZ0EwRUFJQUlnQ0JEM0FRc2dCRUVRYWlRQUlBRVFDaG9MSUFGQkVHb2tBQXNnQUVHWUFXb2dBRUdRQVdvUUpnUkFJQVVnQlNnQ0FFRUNjallDQUFzZ0FDZ0NtQUVoQVNBQVFSQnFFQTRnQ1JBZElBQkJvQUZxSkFBZ0FRdk5Bd0VDZnlNQVFhQUNheUlBSkFBZ0FDQUNOZ0tRQWlBQUlBRTJBcGdDSUFCQk5qWUNFQ0FBUVpnQmFpQUFRYUFCYWlBQVFSQnFFQjRoQVNBQVFaQUJhaUlISUFRUUR5QUhFREloQ0NBQVFRQTZBSThCQWtBZ0FFR1lBbW9nQWlBRElBY2dCQ2dDQkNBRklBQkJqd0ZxSUFnZ0FTQUFRWlFCYWlBQVFZUUNhaENyQWtVTkFDQUFRYU1lS0FBQU5nQ0hBU0FBUVp3ZUtRQUFOd09BQVNBSUlBQkJnQUZxSUFCQmlnRnFJQUJCOWdCcUVIQWdBRUUxTmdJUUlBQkJDR3BCQUNBQVFSQnFJZ0lRSGlFREFrQWdBQ2dDbEFFZ0FTZ0NBR3RCNHdCT0JFQWdBeUFBS0FLVUFTQUJLQUlBYTBFQ2FoQVpFQ2NnQXlnQ0FFVU5BU0FES0FJQUlRSUxJQUF0QUk4QkJFQWdBa0V0T2dBQUlBSkJBV29oQWdzZ0FTZ0NBQ0VFQTBBZ0FDZ0NsQUVnQkUwRVFBSkFJQUpCQURvQUFDQUFJQVkyQWdBZ0FFRVFhaUFBRU5VQ1FRRkhEUUFnQXhBZERBUUxCU0FDSUFCQjlnQnFJZ2NnQjBFS2FpQUVFTlVCSUFCcklBQnFMUUFLT2dBQUlBSkJBV29oQWlBRVFRRnFJUVFNQVFzTEVCY0FDeEFYQUFzZ0FFR1lBbW9nQUVHUUFtb1FKZ1JBSUFVZ0JTZ0NBRUVDY2pZQ0FBc2dBQ2dDbUFJaEFpQUFRWkFCYWhBT0lBRVFIU0FBUWFBQ2FpUUFJQUlMbUFJQkFuOGpBRUdnQTJzaUNDUUFJQWdnQ0VHZ0Eyb2lBellDRENNQVFaQUJheUlISkFBZ0J5QUhRWVFCYWpZQ0hDQUFRUWhxSUFkQklHb2lBaUFIUVJ4cUlBUWdCU0FHRUxFQ0lBZENBRGNERUNBSElBSTJBZ3dnQ0VFUWFpSUNJQWdvQWd3UXJnSWhCQ0FBS0FJSUlRVWpBRUVRYXlJQUpBQWdBQ0FGTmdJTUlBQkJDR29nQUVFTWFoQlNJUVVnQWlBSFFReHFJQVFnQjBFUWFoRFJBaUVFSUFVUVVTQUFRUkJxSkFBZ0JFRi9SZ1JBRUJjQUN5QUlJQUlnQkVFQ2RHbzJBZ3dnQjBHUUFXb2tBQ0FJS0FJTUlRUWpBRUVRYXlJQUpBQWdBQ0FCTmdJSUEwQWdBaUFFUndSQUlBQkJDR29nQWlnQ0FCRHpBaUFDUVFScUlRSU1BUXNMSUFBb0FnZ2hBU0FBUVJCcUpBQWdBeVFBSUFFTGhRRUFJd0JCZ0FGcklnSWtBQ0FDSUFKQjlBQnFOZ0lNSUFCQkNHb2dBa0VRYWlJQUlBSkJER29nQkNBRklBWVFzUUlnQUNFRUlBSW9BZ3doQXlNQVFSQnJJZ0FrQUNBQUlBRTJBZ2dEUUNBRElBUkhCRUFnQUVFSWFpQUVMQUFBRVBRQ0lBUkJBV29oQkF3QkN3c2dBQ2dDQ0NFQklBQkJFR29rQUNBQ1FZQUJhaVFBSUFFTDRBd0JBWDhqQUVGQWFpSUhKQUFnQnlBQk5nSTRJQVJCQURZQ0FDQUhJQU1RRHlBSEVEc2hDQ0FIRUE0Q2Z3SkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0JrSEJBR3NPT1FBQkZ3UVhCUmNHQnhjWEZ3b1hGeGNYRGc4UUZ4Y1hFeFVYRnhjWEZ4Y1hBQUVDQXdNWEZ3RVhDQmNYQ1FzWERCY05Gd3NYRnhFU0ZCWUxJQUFnQlVFWWFpQUhRVGhxSUFJZ0JDQUlFTFFDREJnTElBQWdCVUVRYWlBSFFUaHFJQUlnQkNBSUVMTUNEQmNMSUFjZ0FDQUJJQUlnQXlBRUlBVWdBRUVJYWlBQUtBSUlLQUlNRVFBQUlnQVFEU0FBRUEwZ0FCQUpRUUowYWhCaE5nSTREQllMSUFkQk9Hb2dBaUFFSUFoQkFoQllJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFRUFUSElnQUVFZlNuSkZCRUFnQlNBQU5nSU1EQUVMSUFRZ0FVRUVjallDQUFzTUZRc2dCMEdvMFFBcEF3QTNBeGdnQjBHZzBRQXBBd0EzQXhBZ0IwR1kwUUFwQXdBM0F3Z2dCMEdRMFFBcEF3QTNBd0FnQnlBQUlBRWdBaUFESUFRZ0JTQUhJQWRCSUdvUVlUWUNPQXdVQ3lBSFFjalJBQ2tEQURjREdDQUhRY0RSQUNrREFEY0RFQ0FIUWJqUkFDa0RBRGNEQ0NBSFFiRFJBQ2tEQURjREFDQUhJQUFnQVNBQ0lBTWdCQ0FGSUFjZ0IwRWdhaEJoTmdJNERCTUxJQWRCT0dvZ0FpQUVJQWhCQWhCWUlRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFWFNuSkZCRUFnQlNBQU5nSUlEQUVMSUFRZ0FVRUVjallDQUFzTUVnc2dCMEU0YWlBQ0lBUWdDRUVDRUZnaEFBSkFJQVFvQWdBaUFVRUVjU0FBUVFCTWNpQUFRUXhLY2tVRVFDQUZJQUEyQWdnTUFRc2dCQ0FCUVFSeU5nSUFDd3dSQ3lBSFFUaHFJQUlnQkNBSVFRTVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkI3UUpLY2tVRVFDQUZJQUEyQWh3TUFRc2dCQ0FCUVFSeU5nSUFDd3dRQ3lBSFFUaHFJQUlnQkNBSVFRSVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJERXB5UlFSQUlBVWdBRUVCYXpZQ0VBd0JDeUFFSUFGQkJISTJBZ0FMREE4TElBZEJPR29nQWlBRUlBaEJBaEJZSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUU3U25KRkJFQWdCU0FBTmdJRURBRUxJQVFnQVVFRWNqWUNBQXNNRGdzZ0IwRTRhaUVBSXdCQkVHc2lBU1FBSUFFZ0FqWUNDQU5BQWtBZ0FDQUJRUWhxRURaRkRRQWdDRUdBd0FBZ0FCQWhFRTVGRFFBZ0FCQWxHZ3dCQ3dzZ0FDQUJRUWhxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFGQkVHb2tBQXdOQ3lBSFFUaHFJUUVDUUNBQVFRaHFJQUFvQWdnb0FnZ1JBQUFpQUJBSlFRQWdBRUVNYWhBSmEwWUVRQ0FFSUFRb0FnQkJCSEkyQWdBTUFRc2dBU0FDSUFBZ0FFRVlhaUFJSUFSQkFCQ3lBU0FBYXlJQklBVW9BZ2dpQUVFTVIzSkZCRUFnQlVFQU5nSUlEQUVMSUFGQkRFY2dBRUVMU25KRkJFQWdCU0FBUVF4cU5nSUlDd3NNREFzZ0IwSFEwUUJCTEJCQ0lnWWdBQ0FCSUFJZ0F5QUVJQVVnQmlBR1FTeHFFR0UyQWpnTUN3c2dCMEdRMGdBb0FnQTJBaEFnQjBHSTBnQXBBd0EzQXdnZ0IwR0EwZ0FwQXdBM0F3QWdCeUFBSUFFZ0FpQURJQVFnQlNBSElBZEJGR29RWVRZQ09Bd0tDeUFIUVRocUlBSWdCQ0FJUVFJUVdDRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQlBFcHlSUVJBSUFVZ0FEWUNBQXdCQ3lBRUlBRkJCSEkyQWdBTERBa0xJQWRCdU5JQUtRTUFOd01ZSUFkQnNOSUFLUU1BTndNUUlBZEJxTklBS1FNQU53TUlJQWRCb05JQUtRTUFOd01BSUFjZ0FDQUJJQUlnQXlBRUlBVWdCeUFIUVNCcUVHRTJBamdNQ0FzZ0IwRTRhaUFDSUFRZ0NFRUJFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUVpLY2tVRVFDQUZJQUEyQWhnTUFRc2dCQ0FCUVFSeU5nSUFDd3dIQ3lBQUlBRWdBaUFESUFRZ0JTQUFLQUlBS0FJVUVRVUFEQWNMSUFjZ0FDQUJJQUlnQXlBRUlBVWdBRUVJYWlBQUtBSUlLQUlZRVFBQUlnQVFEU0FBRUEwZ0FCQUpRUUowYWhCaE5nSTREQVVMSUFWQkZHb2dCMEU0YWlBQ0lBUWdDQkN5QWd3RUN5QUhRVGhxSUFJZ0JDQUlRUVFRV0NFQUlBUXRBQUJCQkhGRkJFQWdCU0FBUWV3T2F6WUNGQXNNQXdzZ0JrRWxSZzBCQ3lBRUlBUW9BZ0JCQkhJMkFnQU1BUXNqQUVFUWF5SUFKQUFnQUNBQ05nSUlRUVloQVFKQUFrQWdCMEU0YWlJQ0lBQkJDR29RS0EwQVFRUWhBU0FJSUFJUUlSQ0hBVUVsUncwQVFRSWhBU0FDRUNVZ0FFRUlhaEFvUlEwQkN5QUVJQVFvQWdBZ0FYSTJBZ0FMSUFCQkVHb2tBQXNnQnlnQ09Bc2hBQ0FIUVVCckpBQWdBQXRIQVFGL0l3QkJFR3NpQmlRQUlBWWdBVFlDQ0NBR0lBTVFEeUFHRURzaEFTQUdFQTRnQlVFVWFpQUdRUWhxSUFJZ0JDQUJFTElDSUFZb0FnZ2hBQ0FHUVJCcUpBQWdBQXRKQVFGL0l3QkJFR3NpQmlRQUlBWWdBVFlDQ0NBR0lBTVFEeUFHRURzaEFTQUdFQTRnQUNBRlFSQnFJQVpCQ0dvZ0FpQUVJQUVRc3dJZ0JpZ0NDQ0VBSUFaQkVHb2tBQ0FBQzBrQkFYOGpBRUVRYXlJR0pBQWdCaUFCTmdJSUlBWWdBeEFQSUFZUU95RUJJQVlRRGlBQUlBVkJHR29nQmtFSWFpQUNJQVFnQVJDMEFpQUdLQUlJSVFBZ0JrRVFhaVFBSUFBTE1BQWdBQ0FCSUFJZ0F5QUVJQVVnQUVFSWFpQUFLQUlJS0FJVUVRQUFJZ0FRRFNBQUVBMGdBQkFKUVFKMGFoQmhDMXdCQVg4akFFRWdheUlHSkFBZ0JrRzQwZ0FwQXdBM0F4Z2dCa0d3MGdBcEF3QTNBeEFnQmtHbzBnQXBBd0EzQXdnZ0JrR2cwZ0FwQXdBM0F3QWdBQ0FCSUFJZ0F5QUVJQVVnQmlBR1FTQnFJZ0VRWVNFQUlBRWtBQ0FBQzVBTUFRSi9Jd0JCSUdzaUJ5UUFJQWNnQVRZQ0dDQUVRUUEyQWdBZ0IwRUlhaUlKSUFNUUR5QUpFREloQ0NBSkVBNENmd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdCa0hCQUdzT09RQUJGd1FYQlJjR0J4Y1hGd29YRnhjWERnOFFGeGNYRXhVWEZ4Y1hGeGNYQUFFQ0F3TVhGd0VYQ0JjWENRc1hEQmNORndzWEZ4RVNGQllMSUFBZ0JVRVlhaUFIUVJocUlBSWdCQ0FJRUxjQ0RCZ0xJQUFnQlVFUWFpQUhRUmhxSUFJZ0JDQUlFTFlDREJjTElBY2dBQ0FCSUFJZ0F5QUVJQVVnQUVFSWFpQUFLQUlJS0FJTUVRQUFJZ0FRRFNBQUVBMGdBQkFKYWhCaU5nSVlEQllMSUFkQkdHb2dBaUFFSUFoQkFoQlpJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFRUFUSElnQUVFZlNuSkZCRUFnQlNBQU5nSU1EQUVMSUFRZ0FVRUVjallDQUFzTUZRc2dCMEtsMnIycHd1ekxrdmtBTndNSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUkJxRUdJMkFoZ01GQXNnQjBLbHNyV3AwcTNMa3VRQU53TUlJQWNnQUNBQklBSWdBeUFFSUFVZ0IwRUlhaUFIUVJCcUVHSTJBaGdNRXdzZ0IwRVlhaUFDSUFRZ0NFRUNFRmtoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUmRLY2tVRVFDQUZJQUEyQWdnTUFRc2dCQ0FCUVFSeU5nSUFDd3dTQ3lBSFFSaHFJQUlnQkNBSVFRSVFXU0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJBRXh5SUFCQkRFcHlSUVJBSUFVZ0FEWUNDQXdCQ3lBRUlBRkJCSEkyQWdBTERCRUxJQWRCR0dvZ0FpQUVJQWhCQXhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVIdEFrcHlSUVJBSUFVZ0FEWUNIQXdCQ3lBRUlBRkJCSEkyQWdBTERCQUxJQWRCR0dvZ0FpQUVJQWhCQWhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFTVNuSkZCRUFnQlNBQVFRRnJOZ0lRREFFTElBUWdBVUVFY2pZQ0FBc01Ed3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUdEtja1VFUUNBRklBQTJBZ1FNQVFzZ0JDQUJRUVJ5TmdJQUN3d09DeUFIUVJocUlRQWpBRUVRYXlJQkpBQWdBU0FDTmdJSUEwQUNRQ0FBSUFGQkNHb1FNVVVOQUNBSVFZREFBQ0FBRUI4UVJFVU5BQ0FBRUNJYURBRUxDeUFBSUFGQkNHb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBVUVRYWlRQURBMExJQWRCR0dvaEFRSkFJQUJCQ0dvZ0FDZ0NDQ2dDQ0JFQUFDSUFFQWxCQUNBQVFReHFFQWxyUmdSQUlBUWdCQ2dDQUVFRWNqWUNBQXdCQ3lBQklBSWdBQ0FBUVJocUlBZ2dCRUVBRUxRQklBQnJJZ0VnQlNnQ0NDSUFRUXhIY2tVRVFDQUZRUUEyQWdnTUFRc2dBVUVNUnlBQVFRdEtja1VFUUNBRklBQkJER28yQWdnTEN3d01DeUFIUVlUUkFDZ0FBRFlBRHlBSFFmM1FBQ2tBQURjRENDQUhJQUFnQVNBQ0lBTWdCQ0FGSUFkQkNHb2dCMEVUYWhCaU5nSVlEQXNMSUFkQmpORUFMUUFBT2dBTUlBZEJpTkVBS0FBQU5nSUlJQWNnQUNBQklBSWdBeUFFSUFVZ0IwRUlhaUFIUVExcUVHSTJBaGdNQ2dzZ0IwRVlhaUFDSUFRZ0NFRUNFRmtoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRVHhLY2tVRVFDQUZJQUEyQWdBTUFRc2dCQ0FCUVFSeU5nSUFDd3dKQ3lBSFFxV1E2YW5TeWM2UzB3QTNBd2dnQnlBQUlBRWdBaUFESUFRZ0JTQUhRUWhxSUFkQkVHb1FZallDR0F3SUN5QUhRUmhxSUFJZ0JDQUlRUUVRV1NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCQmtweVJRUkFJQVVnQURZQ0dBd0JDeUFFSUFGQkJISTJBZ0FMREFjTElBQWdBU0FDSUFNZ0JDQUZJQUFvQWdBb0FoUVJCUUFNQndzZ0J5QUFJQUVnQWlBRElBUWdCU0FBUVFocUlBQW9BZ2dvQWhnUkFBQWlBQkFOSUFBUURTQUFFQWxxRUdJMkFoZ01CUXNnQlVFVWFpQUhRUmhxSUFJZ0JDQUlFTFVDREFRTElBZEJHR29nQWlBRUlBaEJCQkJaSVFBZ0JDMEFBRUVFY1VVRVFDQUZJQUJCN0E1ck5nSVVDd3dEQ3lBR1FTVkdEUUVMSUFRZ0JDZ0NBRUVFY2pZQ0FBd0JDeU1BUVJCcklnQWtBQ0FBSUFJMkFnaEJCaUVCQWtBQ1FDQUhRUmhxSWdJZ0FFRUlhaEFtRFFCQkJDRUJJQWdnQWhBZkVJZ0JRU1ZIRFFCQkFpRUJJQUlRSWlBQVFRaHFFQ1pGRFFFTElBUWdCQ2dDQUNBQmNqWUNBQXNnQUVFUWFpUUFDeUFIS0FJWUN5RUFJQWRCSUdva0FDQUFDMGNCQVg4akFFRVFheUlHSkFBZ0JpQUJOZ0lJSUFZZ0F4QVBJQVlRTWlFQklBWVFEaUFGUVJScUlBWkJDR29nQWlBRUlBRVF0UUlnQmlnQ0NDRUFJQVpCRUdva0FDQUFDMGtCQVg4akFFRVFheUlHSkFBZ0JpQUJOZ0lJSUFZZ0F4QVBJQVlRTWlFQklBWVFEaUFBSUFWQkVHb2dCa0VJYWlBQ0lBUWdBUkMyQWlBR0tBSUlJUUFnQmtFUWFpUUFJQUFMU1FFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBeUlRRWdCaEFPSUFBZ0JVRVlhaUFHUVFocUlBSWdCQ0FCRUxjQ0lBWW9BZ2doQUNBR1FSQnFKQUFnQUFzdEFDQUFJQUVnQWlBRElBUWdCU0FBUVFocUlBQW9BZ2dvQWhRUkFBQWlBQkFOSUFBUURTQUFFQWxxRUdJTFB3RUJmeU1BUVJCcklnWWtBQ0FHUXFXUTZhblN5YzZTMHdBM0F3Z2dBQ0FCSUFJZ0F5QUVJQVVnQmtFSWFpQUdRUkJxSWdFUVlpRUFJQUVrQUNBQUM2NEJBUVYvSXdCQjBBRnJJZ0FrQUNBQVFmdlFBQzhBQURzQnpBRWdBRUgzMEFBb0FBQTJBc2dCRUJZaEJpQUFJQVEyQWdBZ0FFR3dBV29pQnlBSElBZEJGQ0FHSUFCQnlBRnFJQUFRTENJSWFpSUVJQUlRUHlFR0lBQkJFR29pQlNBQ0VBOGdCUkE3SVFrZ0JSQU9JQWtnQnlBRUlBVVFaQ0FCSUFVZ0NFRUNkQ0FGYWlJQklBWWdBR3RCQW5RZ0FHcEJzQVZySUFRZ0JrWWJJQUVnQWlBREVHTWhBU0FBUWRBQmFpUUFJQUVMZ0FRQkIzOGpBRUd3QTJzaUFDUUFJQUJDSlRjRHFBTWdBRUdvQTJwQkFYSkJqeDRnQWlnQ0JCQ3VBU0VJSUFBZ0FFR0FBMm8yQXZ3Q0VCWWhCZ0ovSUFnRVFDQUNLQUlJSVFjZ0FFRkFheUFGTndNQUlBQWdCRGNET0NBQUlBYzJBakFnQUVHQUEycEJIaUFHSUFCQnFBTnFJQUJCTUdvUUxBd0JDeUFBSUFRM0ExQWdBQ0FGTndOWUlBQkJnQU5xUVI0Z0JpQUFRYWdEYWlBQVFkQUFhaEFzQ3lFR0lBQkJOVFlDZ0FFZ0FFSHdBbXBCQUNBQVFZQUJhaEFlSVFrZ0FFR0FBMm9pQ2lFSEFrQWdCa0VlVGdSQUVCWWhCZ0ovSUFnRVFDQUNLQUlJSVFjZ0FDQUZOd01RSUFBZ0JEY0RDQ0FBSUFjMkFnQWdBRUg4QW1vZ0JpQUFRYWdEYWlBQUVGb01BUXNnQUNBRU53TWdJQUFnQlRjREtDQUFRZndDYWlBR0lBQkJxQU5xSUFCQklHb1FXZ3NpQmtGL1JnMEJJQWtnQUNnQy9BSVFKeUFBS0FMOEFpRUhDeUFISUFZZ0Iyb2lDeUFDRUQ4aERDQUFRVFUyQW9BQklBQkIrQUJxUVFBZ0FFR0FBV29RSGlFSEFrQWdBQ2dDL0FJZ0FFR0FBMnBHQkVBZ0FFR0FBV29oQmd3QkN5QUdRUU4wRUJraUJrVU5BU0FISUFZUUp5QUFLQUw4QWlFS0N5QUFRZWdBYWlJSUlBSVFEeUFLSUF3Z0N5QUdJQUJCOUFCcUlBQkI4QUJxSUFnUXVRSWdDQkFPSUFFZ0JpQUFLQUowSUFBb0FuQWdBaUFERUdNaEFTQUhFQjBnQ1JBZElBQkJzQU5xSkFBZ0FROExFQmNBQzl3REFRZC9Jd0JCZ0FOcklnQWtBQ0FBUWlVM0EvZ0NJQUJCK0FKcVFRRnlRWllmSUFJb0FnUVFyZ0VoQnlBQUlBQkIwQUpxTmdMTUFoQVdJUVVDZnlBSEJFQWdBaWdDQ0NFR0lBQWdCRGtES0NBQUlBWTJBaUFnQUVIUUFtcEJIaUFGSUFCQitBSnFJQUJCSUdvUUxBd0JDeUFBSUFRNUF6QWdBRUhRQW1wQkhpQUZJQUJCK0FKcUlBQkJNR29RTEFzaEJTQUFRVFUyQWxBZ0FFSEFBbXBCQUNBQVFkQUFhaEFlSVFnZ0FFSFFBbW9pQ1NFR0FrQWdCVUVlVGdSQUVCWWhCUUovSUFjRVFDQUNLQUlJSVFZZ0FDQUVPUU1JSUFBZ0JqWUNBQ0FBUWN3Q2FpQUZJQUJCK0FKcUlBQVFXZ3dCQ3lBQUlBUTVBeEFnQUVITUFtb2dCU0FBUWZnQ2FpQUFRUkJxRUZvTElnVkJmMFlOQVNBSUlBQW9Bc3dDRUNjZ0FDZ0N6QUloQmdzZ0JpQUZJQVpxSWdvZ0FoQS9JUXNnQUVFMU5nSlFJQUJCeUFCcVFRQWdBRUhRQUdvUUhpRUdBa0FnQUNnQ3pBSWdBRUhRQW1wR0JFQWdBRUhRQUdvaEJRd0JDeUFGUVFOMEVCa2lCVVVOQVNBR0lBVVFKeUFBS0FMTUFpRUpDeUFBUVRocUlnY2dBaEFQSUFrZ0N5QUtJQVVnQUVIRUFHb2dBRUZBYXlBSEVMa0NJQWNRRGlBQklBVWdBQ2dDUkNBQUtBSkFJQUlnQXhCaklRRWdCaEFkSUFnUUhTQUFRWUFEYWlRQUlBRVBDeEFYQUF1aUFRRUVmeU1BUVlBQ2F5SUFKQUFnQUVJbE53UDRBU0FBUWZnQmFpSUdRUUZ5UWRNY1FRQWdBaWdDQkJCdUVCWWhCeUFBSUFRM0F3QWdBRUhnQVdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUswQklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJqSVFFZ0FFR0FBbW9rQUNBQkM3UUJBUU4vSXdCQm9BRnJJZ0FrQUNBQVFmWFFBQzhBQURzQm5BRWdBRUh4MEFBb0FBQTJBcGdCSUFCQm1BRnFJZ1ZCQVhKQjJoeEJBQ0FDS0FJRUVHNFFGaUVHSUFBZ0JEWUNBQ0FBUVlzQmFpSUVJQVJCRFNBR0lBVWdBQkFzSUFScUlnWWdBaEEvSVFjZ0FFRVFhaUlGSUFJUUR5QUVJQWNnQmlBQVFTQnFJZ1FnQUVFY2FpQUFRUmhxSUFVUXJRRWdCUkFPSUFFZ0JDQUFLQUljSUFBb0FoZ2dBaUFERUdNaEFTQUFRYUFCYWlRQUlBRUxvZ0VCQkg4akFFR0FBbXNpQUNRQUlBQkNKVGNEK0FFZ0FFSDRBV29pQmtFQmNrSFRIRUVCSUFJb0FnUVFiaEFXSVFjZ0FDQUVOd01BSUFCQjRBRnFJZ1VnQlVFWUlBY2dCaUFBRUN3Z0JXb2lCeUFDRUQ4aENDQUFRUkJxSWdZZ0FoQVBJQVVnQ0NBSElBQkJJR29pQlNBQVFSeHFJQUJCR0dvZ0JoQ3RBU0FHRUE0Z0FTQUZJQUFvQWh3Z0FDZ0NHQ0FDSUFNUVl5RUJJQUJCZ0FKcUpBQWdBUXUwQVFFRGZ5TUFRYUFCYXlJQUpBQWdBRUgxMEFBdkFBQTdBWndCSUFCQjhkQUFLQUFBTmdLWUFTQUFRWmdCYWlJRlFRRnlRZG9jUVFFZ0FpZ0NCQkJ1RUJZaEJpQUFJQVEyQWdBZ0FFR0xBV29pQkNBRVFRMGdCaUFGSUFBUUxDQUVhaUlHSUFJUVB5RUhJQUJCRUdvaUJTQUNFQThnQkNBSElBWWdBRUVnYWlJRUlBQkJIR29nQUVFWWFpQUZFSzBCSUFVUURpQUJJQVFnQUNnQ0hDQUFLQUlZSUFJZ0F4QmpJUUVnQUVHZ0FXb2tBQ0FCQzgwQkFRRi9Jd0JCTUdzaUJTUUFJQVVnQVRZQ0tBSkFJQUlvQWdSQkFYRkZCRUFnQUNBQklBSWdBeUFFSUFBb0FnQW9BaGdSQmdBaEFnd0JDeUFGUVJocUlnQWdBaEFQSUFBUWl3RWhBU0FBRUE0Q1FDQUVCRUFnQlVFWWFpQUJFRXNNQVFzZ0JVRVlhaUFCRUVvTElBVWdCVUVZYWhCQU5nSVFBMEFnQlNBRlFSaHFFRzAyQWdnZ0JVRVFhaUFGUVFocUVGc0VRQ0FGUVNocUlBVkJFR29pQUNnQ0FDZ0NBQkR6QWlBQUVKUUJEQUVGSUFVb0FpZ2hBaUFGUVJocUVBb2FDd3NMSUFWQk1Hb2tBQ0FDQzZRQkFRVi9Jd0JCNEFCcklnQWtBQ0FBUWZ2UUFDOEFBRHNCWENBQVFmZlFBQ2dBQURZQ1dCQVdJUVlnQUNBRU5nSUFJQUJCUUdzaUJ5QUhJQWRCRkNBR0lBQkIyQUJxSUFBUUxDSUlhaUlFSUFJUVB5RUdJQUJCRUdvaUJTQUNFQThnQlJBeUlRa2dCUkFPSUFrZ0J5QUVJQVVRY0NBQklBVWdCU0FJYWlJQklBWWdBR3NnQUdwQk1Hc2dCQ0FHUmhzZ0FTQUNJQU1RVmlFQklBQkI0QUJxSkFBZ0FRdUFCQUVIZnlNQVFZQUNheUlBSkFBZ0FFSWxOd1A0QVNBQVFmZ0Jha0VCY2tHUEhpQUNLQUlFRUs0QklRZ2dBQ0FBUWRBQmFqWUN6QUVRRmlFR0FuOGdDQVJBSUFJb0FnZ2hCeUFBUVVCcklBVTNBd0FnQUNBRU53TTRJQUFnQnpZQ01DQUFRZEFCYWtFZUlBWWdBRUg0QVdvZ0FFRXdhaEFzREFFTElBQWdCRGNEVUNBQUlBVTNBMWdnQUVIUUFXcEJIaUFHSUFCQitBRnFJQUJCMEFCcUVDd0xJUVlnQUVFMU5nS0FBU0FBUWNBQmFrRUFJQUJCZ0FGcUVCNGhDU0FBUWRBQmFpSUtJUWNDUUNBR1FSNU9CRUFRRmlFR0FuOGdDQVJBSUFJb0FnZ2hCeUFBSUFVM0F4QWdBQ0FFTndNSUlBQWdCellDQUNBQVFjd0JhaUFHSUFCQitBRnFJQUFRV2d3QkN5QUFJQVEzQXlBZ0FDQUZOd01vSUFCQnpBRnFJQVlnQUVINEFXb2dBRUVnYWhCYUN5SUdRWDlHRFFFZ0NTQUFLQUxNQVJBbklBQW9Bc3dCSVFjTElBY2dCaUFIYWlJTElBSVFQeUVNSUFCQk5UWUNnQUVnQUVINEFHcEJBQ0FBUVlBQmFoQWVJUWNDUUNBQUtBTE1BU0FBUWRBQmFrWUVRQ0FBUVlBQmFpRUdEQUVMSUFaQkFYUVFHU0lHUlEwQklBY2dCaEFuSUFBb0Fzd0JJUW9MSUFCQjZBQnFJZ2dnQWhBUElBb2dEQ0FMSUFZZ0FFSDBBR29nQUVId0FHb2dDQkM4QWlBSUVBNGdBU0FHSUFBb0FuUWdBQ2dDY0NBQ0lBTVFWaUVCSUFjUUhTQUpFQjBnQUVHQUFtb2tBQ0FCRHdzUUZ3QUwzQU1CQjM4akFFSFFBV3NpQUNRQUlBQkNKVGNEeUFFZ0FFSElBV3BCQVhKQmxoOGdBaWdDQkJDdUFTRUhJQUFnQUVHZ0FXbzJBcHdCRUJZaEJRSi9JQWNFUUNBQ0tBSUlJUVlnQUNBRU9RTW9JQUFnQmpZQ0lDQUFRYUFCYWtFZUlBVWdBRUhJQVdvZ0FFRWdhaEFzREFFTElBQWdCRGtETUNBQVFhQUJha0VlSUFVZ0FFSElBV29nQUVFd2FoQXNDeUVGSUFCQk5UWUNVQ0FBUVpBQmFrRUFJQUJCMEFCcUVCNGhDQ0FBUWFBQmFpSUpJUVlDUUNBRlFSNU9CRUFRRmlFRkFuOGdCd1JBSUFJb0FnZ2hCaUFBSUFRNUF3Z2dBQ0FHTmdJQUlBQkJuQUZxSUFVZ0FFSElBV29nQUJCYURBRUxJQUFnQkRrREVDQUFRWndCYWlBRklBQkJ5QUZxSUFCQkVHb1FXZ3NpQlVGL1JnMEJJQWdnQUNnQ25BRVFKeUFBS0FLY0FTRUdDeUFHSUFVZ0Jtb2lDaUFDRUQ4aEN5QUFRVFUyQWxBZ0FFSElBR3BCQUNBQVFkQUFhaEFlSVFZQ1FDQUFLQUtjQVNBQVFhQUJha1lFUUNBQVFkQUFhaUVGREFFTElBVkJBWFFRR1NJRlJRMEJJQVlnQlJBbklBQW9BcHdCSVFrTElBQkJPR29pQnlBQ0VBOGdDU0FMSUFvZ0JTQUFRY1FBYWlBQVFVQnJJQWNRdkFJZ0J4QU9JQUVnQlNBQUtBSkVJQUFvQWtBZ0FpQURFRlloQVNBR0VCMGdDQkFkSUFCQjBBRnFKQUFnQVE4TEVCY0FDMHdCQVg5QnRJRUJRYkNCQVNBQ0d5QUJOZ0lBSUFGQkFFb0VRRUdRZ1FGQjhJQUJJQUliSVFOQkFDRUNBMEFnQWlBRGFpQUFJQUpxTFFBQU9nQUFJQUpCQVdvaUFpQUJSdzBBQ3dzTG9RRUJCSDhqQUVId0FHc2lBQ1FBSUFCQ0pUY0RhQ0FBUWVnQWFpSUdRUUZ5UWRNY1FRQWdBaWdDQkJCdUVCWWhCeUFBSUFRM0F3QWdBRUhRQUdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUs4QklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJXSVFFZ0FFSHdBR29rQUNBQkM3RUJBUU4vSXdCQjBBQnJJZ0FrQUNBQVFmWFFBQzhBQURzQlRDQUFRZkhRQUNnQUFEWUNTQ0FBUWNnQWFpSUZRUUZ5UWRvY1FRQWdBaWdDQkJCdUVCWWhCaUFBSUFRMkFnQWdBRUU3YWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcndFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFRlloQVNBQVFkQUFhaVFBSUFFTG9RRUJCSDhqQUVId0FHc2lBQ1FBSUFCQ0pUY0RhQ0FBUWVnQWFpSUdRUUZ5UWRNY1FRRWdBaWdDQkJCdUVCWWhCeUFBSUFRM0F3QWdBRUhRQUdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUs4QklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJXSVFFZ0FFSHdBR29rQUNBQkM3RUJBUU4vSXdCQjBBQnJJZ0FrQUNBQVFmWFFBQzhBQURzQlRDQUFRZkhRQUNnQUFEWUNTQ0FBUWNnQWFpSUZRUUZ5UWRvY1FRRWdBaWdDQkJCdUVCWWhCaUFBSUFRMkFnQWdBRUU3YWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcndFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFRlloQVNBQVFkQUFhaVFBSUFFTHpRRUJBWDhqQUVFd2F5SUZKQUFnQlNBQk5nSW9Ba0FnQWlnQ0JFRUJjVVVFUUNBQUlBRWdBaUFESUFRZ0FDZ0NBQ2dDR0JFR0FDRUNEQUVMSUFWQkdHb2lBQ0FDRUE4Z0FCQ09BU0VCSUFBUURnSkFJQVFFUUNBRlFSaHFJQUVRU3d3QkN5QUZRUmhxSUFFUVNnc2dCU0FGUVJocUVFQTJBaEFEUUNBRklBVkJHR29RYnpZQ0NDQUZRUkJxSUFWQkNHb1FXd1JBSUFWQktHb2dCVUVRYWlJQUtBSUFMQUFBRVBRQ0lBQVFsZ0VNQVFVZ0JTZ0NLQ0VDSUFWQkdHb1FDaG9MQ3dzZ0JVRXdhaVFBSUFJTEZnQkJrSUVCUWJTQkFTZ0NBQ0FDSUFBZ0FSRGxBUXZ5QWdFQmZ5TUFRZUFDYXlJQUpBQWdBQ0FDTmdMUUFpQUFJQUUyQXRnQ0lBQkIwQUZxRUJFaEJpQUFRUkJxSWdJZ0F4QVBJQUlRTzBIUTBBQkI2dEFBSUFCQjRBRnFFR1FnQWhBT0lBQkJ3QUZxRUJFaUF5QURFQk1RRENBQUlBTkJBQkFMSWdFMkFyd0JJQUFnQWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCMkFKcUlBQkIwQUpxRURaRkRRQWdBQ2dDdkFFZ0F4QUpJQUZxUmdSQUlBTVFDU0VDSUFNZ0F4QUpRUUYwRUF3Z0F5QURFQk1RRENBQUlBSWdBMEVBRUFzaUFXbzJBcndCQ3lBQVFkZ0NhaEFoUVJBZ0FTQUFRYndCYWlBQVFRaHFRUUFnQmlBQVFSQnFJQUJCREdvZ0FFSGdBV29RaWdFTkFDQUFRZGdDYWhBbEdnd0JDd3NnQXlBQUtBSzhBU0FCYXhBTUlBTVFEU0VDRUJZaEFTQUFJQVUyQWdBZ0FpQUJJQUFRdndKQkFVY0VRQ0FFUVFRMkFnQUxJQUJCMkFKcUlBQkIwQUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F0Z0NJUUVnQXhBS0dpQUdFQW9hSUFCQjRBSnFKQUFnQVF2U0F3RUJmaU1BUVlBRGF5SUFKQUFnQUNBQ05nTHdBaUFBSUFFMkF2Z0NJQUJCMkFGcUlBTWdBRUh3QVdvZ0FFSHNBV29nQUVIb0FXb1ExQUVnQUVISUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDeEFFZ0FDQUFRU0JxTmdJY0lBQkJBRFlDR0NBQVFRRTZBQmNnQUVIRkFEb0FGZ05BQWtBZ0FFSDRBbW9nQUVId0Ftb1FOa1VOQUNBQUtBTEVBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3hBRUxJQUJCK0FKcUVDRWdBRUVYYWlBQVFSWnFJQUlnQUVIRUFXb2dBQ2dDN0FFZ0FDZ0M2QUVnQUVIWUFXb2dBRUVnYWlBQVFSeHFJQUJCR0dvZ0FFSHdBV29RMHdFTkFDQUFRZmdDYWhBbEdnd0JDd3NDUUNBQVFkZ0JhaEFKUlEwQUlBQXRBQmRGRFFBZ0FDZ0NIQ0lESUFCQklHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0hDQURJQUFvQWhnMkFnQUxJQUFnQWlBQUtBTEVBU0FFRU1BQ0lBQXBBd0FoQmlBRklBQXBBd2czQXdnZ0JTQUdOd01BSUFCQjJBRnFJQUJCSUdvZ0FDZ0NIQ0FFRUMwZ0FFSDRBbW9nQUVId0Ftb1FLQVJBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDK0FJaEFpQUJFQW9hSUFCQjJBRnFFQW9hSUFCQmdBTnFKQUFnQWd1N0F3QWpBRUh3QW1zaUFDUUFJQUFnQWpZQzRBSWdBQ0FCTmdMb0FpQUFRY2dCYWlBRElBQkI0QUZxSUFCQjNBRnFJQUJCMkFGcUVOUUJJQUJCdUFGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBclFCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dnQUVFQk9nQUhJQUJCeFFBNkFBWURRQUpBSUFCQjZBSnFJQUJCNEFKcUVEWkZEUUFnQUNnQ3RBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJRQkN5QUFRZWdDYWhBaElBQkJCMm9nQUVFR2FpQUNJQUJCdEFGcUlBQW9BdHdCSUFBb0F0Z0JJQUJCeUFGcUlBQkJFR29nQUVFTWFpQUFRUWhxSUFCQjRBRnFFTk1CRFFBZ0FFSG9BbW9RSlJvTUFRc0xBa0FnQUVISUFXb1FDVVVOQUNBQUxRQUhSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3RBRWdCQkRCQWprREFDQUFRY2dCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCNkFKcUlBQkI0QUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F1Z0NJUUlnQVJBS0dpQUFRY2dCYWhBS0dpQUFRZkFDYWlRQUlBSUx1d01BSXdCQjhBSnJJZ0FrQUNBQUlBSTJBdUFDSUFBZ0FUWUM2QUlnQUVISUFXb2dBeUFBUWVBQmFpQUFRZHdCYWlBQVFkZ0JhaERVQVNBQVFiZ0JhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLMEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUlBQkJBVG9BQnlBQVFjVUFPZ0FHQTBBQ1FDQUFRZWdDYWlBQVFlQUNhaEEyUlEwQUlBQW9BclFCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzBBUXNnQUVIb0Ftb1FJU0FBUVFkcUlBQkJCbW9nQWlBQVFiUUJhaUFBS0FMY0FTQUFLQUxZQVNBQVFjZ0JhaUFBUVJCcUlBQkJER29nQUVFSWFpQUFRZUFCYWhEVEFRMEFJQUJCNkFKcUVDVWFEQUVMQ3dKQUlBQkJ5QUZxRUFsRkRRQWdBQzBBQjBVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BclFCSUFRUXdnSTRBZ0FnQUVISUFXb2dBRUVRYWlBQUtBSU1JQVFRTFNBQVFlZ0NhaUFBUWVBQ2FoQW9CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUFLQUxvQWlFQ0lBRVFDaG9nQUVISUFXb1FDaG9nQUVId0Ftb2tBQ0FDQzUwREFRSi9Jd0JCNEFKcklnQWtBQ0FBSUFJMkF0QUNJQUFnQVRZQzJBSWdBeEJjSVFZZ0F5QUFRZUFCYWhDWUFTRUhJQUJCMEFGcUlBTWdBRUhNQW1vUWx3RWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFSFlBbW9nQUVIUUFtb1FOa1VOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCMkFKcUVDRWdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDZ0N6QUlnQUVIUUFXb2dBRUVRYWlBQVFReHFJQWNRaWdFTkFDQUFRZGdDYWhBbEdnd0JDd3NDUUNBQVFkQUJhaEFKUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkNBR0VNTUNOd01BSUFCQjBBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFSFlBbW9nQUVIUUFtb1FLQVJBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDMkFJaEFpQUJFQW9hSUFCQjBBRnFFQW9hSUFCQjRBSnFKQUFnQWd1ZEF3RUNmeU1BUWVBQ2F5SUFKQUFnQUNBQ05nTFFBaUFBSUFFMkF0Z0NJQU1RWENFR0lBTWdBRUhnQVdvUW1BRWhCeUFBUWRBQmFpQURJQUJCekFKcUVKY0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dEUUFKQUlBQkIyQUpxSUFCQjBBSnFFRFpGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUWRnQ2FoQWhJQVlnQWlBQVFid0JhaUFBUVFocUlBQW9Bc3dDSUFCQjBBRnFJQUJCRUdvZ0FFRU1haUFIRUlvQkRRQWdBRUhZQW1vUUpSb01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREdBanNCQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkIyQUpxSUFCQjBBSnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQXRnQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFlQUNhaVFBSUFJTG5RTUJBbjhqQUVIZ0Ftc2lBQ1FBSUFBZ0FqWUMwQUlnQUNBQk5nTFlBaUFERUZ3aEJpQURJQUJCNEFGcUVKZ0JJUWNnQUVIUUFXb2dBeUFBUWN3Q2FoQ1hBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRZGdDYWlBQVFkQUNhaEEyUlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVIWUFtb1FJU0FHSUFJZ0FFRzhBV29nQUVFSWFpQUFLQUxNQWlBQVFkQUJhaUFBUVJCcUlBQkJER29nQnhDS0FRMEFJQUJCMkFKcUVDVWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4d0kzQXdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRZGdDYWlBQVFkQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMWUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFSGdBbW9rQUNBQ0M1MERBUUovSXdCQjRBSnJJZ0FrQUNBQUlBSTJBdEFDSUFBZ0FUWUMyQUlnQXhCY0lRWWdBeUFBUWVBQmFoQ1lBU0VISUFCQjBBRnFJQU1nQUVITUFtb1Fsd0VnQUVIQUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdkFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0FOQUFrQWdBRUhZQW1vZ0FFSFFBbW9RTmtVTkFDQUFLQUs4QVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN2QUVMSUFCQjJBSnFFQ0VnQmlBQ0lBQkJ2QUZxSUFCQkNHb2dBQ2dDekFJZ0FFSFFBV29nQUVFUWFpQUFRUXhxSUFjUWlnRU5BQ0FBUWRnQ2FoQWxHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTWtDTmdJQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUhZQW1vZ0FFSFFBbW9RS0FSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQzJBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkI0QUpxSkFBZ0FndnNBUUVCZnlNQVFTQnJJZ1lrQUNBR0lBRTJBaGdDUUNBREtBSUVRUUZ4UlFSQUlBWkJmellDQUNBR0lBQWdBU0FDSUFNZ0JDQUdJQUFvQWdBb0FoQVJCUUFpQVRZQ0dBSkFBa0FDUUNBR0tBSUFEZ0lBQVFJTElBVkJBRG9BQUF3REN5QUZRUUU2QUFBTUFnc2dCVUVCT2dBQUlBUkJCRFlDQUF3QkN5QUdJQU1RRHlBR0VEc2hBU0FHRUE0Z0JpQURFQThnQmhDTEFTRUFJQVlRRGlBR0lBQVFTeUFHUVF4eUlBQVFTaUFGSUFaQkdHb2lBeUFDSUFZZ0F5QUJJQVJCQVJDeUFTQUdSam9BQUNBR0tBSVlJUUVEUUNBRFFReHJFQW9pQXlBR1J3MEFDd3NnQmtFZ2FpUUFJQUVMMWhFQkQzOGpBRUhBQW1zaUJpUUFJQVlnQVNBQ0VPY0NOZ0tZQWtIUTlhblNmRUc5OVlyS2ZTQUVHeUVQUWVTUWwvTjRRZEQxcWRKOElBSkJBWFJCZFhJZ0FrRUZjMnBCRDBZYklRSWdBRVVoRUVHdHRxRFNmU0VBQTBBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUFpQVVHc3RxRFNmVXdFUUNBQlFkNnp0dFI3VEFSQUlBRkI2b25QbjNsTUJFQWdBVUdNa2FYdGVFWU5CeUFCUWVTUWwvTjRSdzBPUWNURStMSURJUUJCQUNFTkRBNExJQUZCNjRuUG4zbEdEUXNnQVVHQ3hPV2hlVVlOQWlBQlFlRGV2NjE2UncwTklBWW9BclFDUVpDQkFXb2dCaTBBbndJNkFBQkJqSkdsN1hnaEFBd05DeUFCUWNHSnZOMThUQVJBSUFGQjM3TzIxSHRHRFFrZ0FVR2NzZUdtZkVZTkNDQUJRZEQxcWRKOFJ3ME5RZVNRbC9ONFFjN1R4S29GSUFZb0FyQUNRUkJHRzBITzA4U3FCU0FHTFFDZEFrRUJjUnNoQUF3TkN5QUJRY0tKdk4xOFJnMEdJQUZCaU1EeTZueEdEUWtnQVVHOTlZcktmVWNORENBQ0lRQU1EQXNDUUFKQUFrQWdBVUhoeXR2NkEwd0VRQ0FCUWRMTXpjd0FUQVJBSUFGQnJiYWcwbjFHRFFJZ0FVSEJnT2FnZjBZTkNDQUJRZE9PMGgxSERSQWdCaUFRT2dDZUFpQUdJQWMyQXJBQ0lBWWdDallDckFKQjA4ek56QUJCZ3NUbG9Ya2dCaTBBbmdKQkFYRWJJUUFNRUFzZ0FVSFR6TTNNQUVZTkF5QUJRY1RFK0xJRFJnMEZJQUZCc3M2c3h3SkhEUThnQmtIQUFtb2tBQThMSUFGQnQvbml0UVpNQkVBZ0R5RUFJQUZCNHNyYitnTkdEUThnQVVHRmhKYldCRVlOQmlBQklRQWdBVUhPMDhTcUJVY05EeUFHSUFaQm9BRnFJZ0EyQXFBQ0lBWW9BcUFDR2lBQUlBWW9BcXdDRUZRYVFjS0p2TjE4SVFCQkFDRU9EQThMSUFGQnVQbml0UVpHRFEwZ0FVRzh4cFhYQmtZTkFTQUJRZVNwbytvSFJ3ME9JQVlvQXJnQ1FmQ0FBV29nQmlnQ0REb0FBRUc0K2VLMUJpRUFEQTRMUVFBaEJ5QUdJQVJCQUVvNkFKMENRYnpHbGRjR1FkT08waDBnQmkwQW5RSkJBWEViSVFBZ0JpZ0NtQUloQ2d3TkN5QUdRWWdDYWlBR0tBS1lBaEJVSWhFaENrRUFJUWhCQUNFSkl3QkJFR3NpQVNRQUlBb1FDU0VMSXdCQkVHc2lCeVFBSUFaQitBRnFJZ0JDQURjQ0FDQUhRUUEyQWd3Z0FFRUlhaUFIUVF4cUVNOEJJQWRCRUdva0FBSkFJQXRGRFFBRFFBSkFJQW9nQ1JBTExRQUFRVDFHRFFBZ0NpQUpFQXN0QUFBaUIwRXJSaUFIUVNCeVFlRUFhMEVhU1FSL1FRRUZJQWNRUlVFQVJ3dEJBRWR5SUFkQkwwWnlSUTBBSUF0QkFXc2hDeUFCUVF4cUlBaHFJQW9nQ1JBTExRQUFPZ0FBUVFBaEJ5QUlRUUZxSWdoQkJFWUVRQU5BSUFGQkRHb2dCMm9pQ0NBSUxBQUFFUFFCT2dBQUlBZEJBV29pQjBFRVJ3MEFDeUFCSUFFdEFBOGdBUzBBRGlJSFFRWjBham9BQ3lBQklBRXRBQTBpQ0VFRWRrRURjU0FCTFFBTVFRSjBjam9BQ1NBQklBZEJBblpCRDNFZ0NFRUVkSEk2QUFwQkFDRUlRUUFoQndOQUlBQWdBVUVKYWlBSGFoRHZBaUFIUVFGcUlnZEJBMGNOQUFzTElBbEJBV29oQ1NBTERRRUxDeUFJUlEwQUlBaEJBMHdFUUNBQlFReHFJQWhxUVFCQkJDQUlheEJHR2d0QkFDRUhBMEFnQVVFTWFpQUhhaUlKSUFrc0FBQVE5QUU2QUFBZ0IwRUJhaUlIUVFSSERRQUxJQUVnQVMwQUR5QUJMUUFPSWdkQkJuUnFPZ0FMSUFFZ0FTMEFEU0lKUVFSMlFRTnhJQUV0QUF4QkFuUnlPZ0FKSUFFZ0IwRUNka0VQY1NBSlFRUjBjam9BQ2lBSVFRSklEUUFnQ0VFQmF5RUlRUUFoQndOQUlBQWdBVUVKYWlBSGFoRHZBaUFIUVFGcUlnY2dDRWNOQUFzTElBRkJFR29rQUNBQUVJa0JJUklnQUNnQ0FDRU1JQVpCbng4b0FBQTJBdkFCSUFaQmx4OHBBQUEzQStnQklBWkNBRGNEMkFFZ0JrSUFOd1BRQVNBR1FnQTNBOGdCSUFaQ0FEY0R3QUVnQmtJQU53TzRBU0FHUWdBM0E3QUJJQUFRaVFFaEN5QUdRYkFCYWlFS0l3QkJNR3NpQVNRQUlBRkJJR29oQ0NBRklBUVF2UUlpQndSQUlBaENBRGNBQUNBSVFnQTNBQWdnQnlBSUlBZ1FwZ0VMSUFaQnZ3SnFJUk1nQmtIUUFXb2hGQ0FIQkg4akFFRVFheUlKSkFBZ0FVRVFhaUlJSUFZcEFPZ0JOd0FBSUFnZ0JpZ0E4QUUyQUFnZ0NFR0FnSUFJTmdBTUlBbEJFR29rQUNNQVFSQnJJZ2trQUNBTEJFQWdDU0FJS1FBQU53TUFJQWtnQ0NrQUNEY0RDQ0FKRU9rQklBY2dDU0FNSUFzZ0NoQ0RBZ3NnQ1VFUWFpUUFJd0JCRUdzaUNTUUFJQUZDQURjQUFDQUJRZ0EzQUFnZ0FVRWdhaUlNSUJOQkFDQUJFTDhCSUF3Z0NpQUxJQUVRdndFZ0NVSUFFTzBCSUFsQkNISWdDMEVEZEswUTdRRWdEQ0FKUVJBZ0FSQy9BU0FKUVJCcUpBQWdCeUFJSUFGQkVDQVVFSU1DSUFjUUVFRUFCVUYvQ3hvZ0FVRXdhaVFBSUFBUTZRSWdBQ2dDQUFSQUlBQW9BZ1FpQVNBQUtBSUFJZ2RIQkVBRFFDQUFFRU1hSUFjZ0FVRUJheUlCUncwQUN3c2dBQ0FITmdJRUlBQVFReG9nQUNnQ0FDRUJJQUFRaFFFYUlBRVFFQXNnRVJBS0drRWdRUkFnRWtFd1Joc2hCMEhUanRJZElRQU1EQXRCc0lFQklBTTJBZ0JCNHNyYitnTWhBQXdMQzBHMGdRRWdBellDQUVIaXl0djZBeUVBREFvTElBWWdEVFlDdEFKQmhZU1cxZ1JCMzdPMjFIc2dCaWdDdEFJZ0EwZ2JJUUFNQ1FzZ0JpQUdLQUtzQWlBR0tBSzBBbW90QUFBNkFKOENJQVl0QUo4Q0drSEJnT2FnZjBIZzNyK3RlaUFHTFFDZUFrRUJjUnNoQUF3SUN5QUdLQUswQWtId2dBRnFJQVl0QUo4Q09nQUFRWXlScGUxNElRQU1Cd3NnQmlnQ3RBSkJBV29oRFVIRXhQaXlBeUVBREFZTElBWWdEallDdUFKQmlNRHk2bnhCbkxIaHBud2dCaWdDdUFJZ0EwZ2JJUUFNQlFzZ0JrR2dBV29RQ2hvZ0JpZ0NvQUlhQzBHeXpxekhBaUVBREFNTElBWWdCa0VRYWlJQU5nS2tBaUFHS0FLa0Fob2dBQkRYQWhvZ0JpQUdRUXhxSWdnMkFxZ0NJQVlvQXFnQ0dpQUdLQUtrQWtFSWFoRE1BaUVKSUFaQnNBRnFJZ0VnQmtHZ0FXb2dCaWdDdUFKQkFYUVF5Z0lnQ1NBQkVNZ0NJQUVRQ2hvZ0FDQUlFUGtDUWVTcG8rb0hRZXVKejU5NUlBWXRBSjRDUVFGeEd5RUFEQUlMSUFZb0FyZ0NRWkNCQVdvZ0JpZ0NERG9BQUVHNCtlSzFCaUVBREFFTElBWW9BcWdDR2lBR1FSQnFFSXdCR2lBR0tBS2tBaG9nQmlnQ3VBSkJBV29oRGtIQ2liemRmQ0VBREFBTEFBdnlBZ0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFCQjBBRnFFQkVoQmlBQVFSQnFJZ0lnQXhBUElBSVFNa0hRMEFCQjZ0QUFJQUJCNEFGcUVIQWdBaEFPSUFCQndBRnFFQkVpQXlBREVCTVFEQ0FBSUFOQkFCQUxJZ0UyQXJ3QklBQWdBallDRENBQVFRQTJBZ2dEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQXhBSklBRnFSZ1JBSUFNUUNTRUNJQU1nQXhBSlFRRjBFQXdnQXlBREVCTVFEQ0FBSUFJZ0EwRUFFQXNpQVdvMkFyd0JDeUFBUVlnQ2FoQWZRUkFnQVNBQVFid0JhaUFBUVFocVFRQWdCaUFBUVJCcUlBQkJER29nQUVIZ0FXb1FqUUVOQUNBQVFZZ0NhaEFpR2d3QkN3c2dBeUFBS0FLOEFTQUJheEFNSUFNUURTRUNFQlloQVNBQUlBVTJBZ0FnQWlBQklBQVF2d0pCQVVjRVFDQUVRUVEyQWdBTElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRRWdBeEFLR2lBR0VBb2FJQUJCa0FKcUpBQWdBUXZTQXdFQmZpTUFRYUFDYXlJQUpBQWdBQ0FDTmdLUUFpQUFJQUUyQXBnQ0lBQkI0QUZxSUFNZ0FFSHdBV29nQUVIdkFXb2dBRUh1QVdvUTF3RWdBRUhRQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN6QUVnQUNBQVFTQnFOZ0ljSUFCQkFEWUNHQ0FBUVFFNkFCY2dBRUhGQURvQUZnTkFBa0FnQUVHWUFtb2dBRUdRQW1vUU1VVU5BQ0FBS0FMTUFTQUJFQWtnQW1wR0JFQWdBUkFKSVFNZ0FTQUJFQWxCQVhRUURDQUJJQUVRRXhBTUlBQWdBeUFCUVFBUUN5SUNhallDekFFTElBQkJtQUpxRUI4Z0FFRVhhaUFBUVJacUlBSWdBRUhNQVdvZ0FDd0E3d0VnQUN3QTdnRWdBRUhnQVdvZ0FFRWdhaUFBUVJ4cUlBQkJHR29nQUVId0FXb1ExZ0VOQUNBQVFaZ0NhaEFpR2d3QkN3c0NRQ0FBUWVBQmFoQUpSUTBBSUFBdEFCZEZEUUFnQUNnQ0hDSURJQUJCSUdwclFaOEJTZzBBSUFBZ0EwRUVhallDSENBRElBQW9BaGcyQWdBTElBQWdBaUFBS0FMTUFTQUVFTUFDSUFBcEF3QWhCaUFGSUFBcEF3ZzNBd2dnQlNBR053TUFJQUJCNEFGcUlBQkJJR29nQUNnQ0hDQUVFQzBnQUVHWUFtb2dBRUdRQW1vUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0NtQUloQWlBQkVBb2FJQUJCNEFGcUVBb2FJQUJCb0FKcUpBQWdBZ3U3QXdBakFFR1FBbXNpQUNRQUlBQWdBallDZ0FJZ0FDQUJOZ0tJQWlBQVFkQUJhaUFESUFCQjRBRnFJQUJCM3dGcUlBQkIzZ0ZxRU5jQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ2dBRUVCT2dBSElBQkJ4UUE2QUFZRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFZZ0NhaEFmSUFCQkIyb2dBRUVHYWlBQ0lBQkJ2QUZxSUFBc0FOOEJJQUFzQU40QklBQkIwQUZxSUFCQkVHb2dBRUVNYWlBQVFRaHFJQUJCNEFGcUVOWUJEUUFnQUVHSUFtb1FJaG9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBTFFBSFJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JCREJBamtEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTHV3TUFJd0JCa0FKcklnQWtBQ0FBSUFJMkFvQUNJQUFnQVRZQ2lBSWdBRUhRQVdvZ0F5QUFRZUFCYWlBQVFkOEJhaUFBUWQ0QmFoRFhBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJSUFCQkFUb0FCeUFBUWNVQU9nQUdBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUFRUWRxSUFCQkJtb2dBaUFBUWJ3QmFpQUFMQURmQVNBQUxBRGVBU0FBUWRBQmFpQUFRUkJxSUFCQkRHb2dBRUVJYWlBQVFlQUJhaERXQVEwQUlBQkJpQUpxRUNJYURBRUxDd0pBSUFCQjBBRnFFQWxGRFFBZ0FDMEFCMFVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFRd2dJNEFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUVlnQ2FpQUFRWUFDYWhBbUJFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBS0lBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUdRQW1va0FDQUNDNUlEQVFGL0l3QkJrQUpySWdBa0FDQUFJQUkyQW9BQ0lBQWdBVFlDaUFJZ0F4QmNJUVlnQUVIUUFXb2dBeUFBUWY4QmFoQ1pBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRWWdDYWlBQVFZQUNhaEF4UlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVHSUFtb1FIeUFHSUFJZ0FFRzhBV29nQUVFSWFpQUFMQUQvQVNBQVFkQUJhaUFBUVJCcUlBQkJER3BCME5BQUVJMEJEUUFnQUVHSUFtb1FJaG9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaEREQWpjREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCaUFKcUlBQkJnQUpxRUNZRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0FvZ0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRWkFDYWlRQUlBSUxrZ01CQVg4akFFR1FBbXNpQUNRQUlBQWdBallDZ0FJZ0FDQUJOZ0tJQWlBREVGd2hCaUFBUWRBQmFpQURJQUJCL3dGcUVKa0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUVlnQ2FoQWZJQVlnQWlBQVFid0JhaUFBUVFocUlBQXNBUDhCSUFCQjBBRnFJQUJCRUdvZ0FFRU1ha0hRMEFBUWpRRU5BQ0FBUVlnQ2FoQWlHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTVlDT3dFQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUdJQW1vZ0FFR0FBbW9RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQ2lBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkJrQUpxSkFBZ0FndVNBd0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFNUVhDRUdJQUJCMEFGcUlBTWdBRUgvQVdvUW1RRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFR0lBbW9nQUVHQUFtb1FNVVVOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCaUFKcUVCOGdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDd0Evd0VnQUVIUUFXb2dBRUVRYWlBQVFReHFRZERRQUJDTkFRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4d0kzQXdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDWkFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEIwTkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREpBallDQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTDdBRUJBWDhqQUVFZ2F5SUdKQUFnQmlBQk5nSVlBa0FnQXlnQ0JFRUJjVVVFUUNBR1FYODJBZ0FnQmlBQUlBRWdBaUFESUFRZ0JpQUFLQUlBS0FJUUVRVUFJZ0UyQWhnQ1FBSkFBa0FnQmlnQ0FBNENBQUVDQ3lBRlFRQTZBQUFNQXdzZ0JVRUJPZ0FBREFJTElBVkJBVG9BQUNBRVFRUTJBZ0FNQVFzZ0JpQURFQThnQmhBeUlRRWdCaEFPSUFZZ0F4QVBJQVlRamdFaEFDQUdFQTRnQmlBQUVFc2dCa0VNY2lBQUVFb2dCU0FHUVJocUlnTWdBaUFHSUFNZ0FTQUVRUUVRdEFFZ0JrWTZBQUFnQmlnQ0dDRUJBMEFnQTBFTWF4QUtJZ01nQmtjTkFBc0xJQVpCSUdva0FDQUJDMEFCQVg5QkFDRUFBMzhnQVNBQ1JnUi9JQUFGSUFFb0FnQWdBRUVFZEdvaUFFR0FnSUNBZjNFaUEwRVlkaUFEY2lBQWN5RUFJQUZCQkdvaEFRd0JDd3NMR3dBakFFRVFheUlCSkFBZ0FDQUNJQU1RelFJZ0FVRVFhaVFBQzFRQkFuOENRQU5BSUFNZ0JFY0VRRUYvSVFBZ0FTQUNSZzBDSUFFb0FnQWlCU0FES0FJQUlnWklEUUlnQlNBR1NnUkFRUUVQQlNBRFFRUnFJUU1nQVVFRWFpRUJEQUlMQUFzTElBRWdBa2NoQUFzZ0FBdEFBUUYvUVFBaEFBTi9JQUVnQWtZRWZ5QUFCU0FCTEFBQUlBQkJCSFJxSWdCQmdJQ0FnSDl4SWdOQkdIWWdBM0lnQUhNaEFDQUJRUUZxSVFFTUFRc0xDeHNBSXdCQkVHc2lBU1FBSUFBZ0FpQURFUEFDSUFGQkVHb2tBQXRlQVFOL0lBRWdCQ0FEYTJvaEJRSkFBMEFnQXlBRVJ3UkFRWDhoQUNBQklBSkdEUUlnQVN3QUFDSUdJQU1zQUFBaUIwZ05BaUFHSUFkS0JFQkJBUThGSUFOQkFXb2hBeUFCUVFGcUlRRU1BZ3NBQ3dzZ0FpQUZSeUVBQ3lBQUN5VUFJQUFvQWdRYUlBQWdBQ2dDQkVHMWYzRTJBZ1FnQUNBQUtBSUVRUWh5TmdJRUlBQUxxUUVCQkg4Z0FDZ0NWQ0lES0FJRUlnVWdBQ2dDRkNBQUtBSWNJZ1pySWdRZ0JDQUZTeHNpQkFSQUlBTW9BZ0FnQmlBRUVFSWFJQU1nQXlnQ0FDQUVhallDQUNBRElBTW9BZ1FnQkdzaUJUWUNCQXNnQXlnQ0FDRUVJQVVnQWlBQ0lBVkxHeUlGQkVBZ0JDQUJJQVVRUWhvZ0F5QURLQUlBSUFWcUlnUTJBZ0FnQXlBREtBSUVJQVZyTmdJRUN5QUVRUUE2QUFBZ0FDQUFLQUlzSWdFMkFod2dBQ0FCTmdJVUlBSUxLUUFnQVNBQktBSUFRUWRxUVhoeElnRkJFR28yQWdBZ0FDQUJLUU1BSUFFcEF3Z1EzUUU1QXdBTHRCZ0RFbjhCZkFKK0l3QkJzQVJySWdza0FDQUxRUUEyQWl3Q1FDQUJ2U0laUWdCVEJFQkJBU0VRUWZrYUlSTWdBWm9pQWIwaEdRd0JDeUFFUVlBUWNRUkFRUUVoRUVIOEdpRVREQUVMUWY4YVFmb2FJQVJCQVhFaUVCc2hFeUFRUlNFVUN3SkFJQmxDZ0lDQWdJQ0FnUGovQUlOQ2dJQ0FnSUNBZ1BqL0FGRUVRQ0FBUVNBZ0FpQVFRUU5xSWdNZ0JFSC8vM3R4RUM0Z0FDQVRJQkFRS2lBQVFjY2NRWUFlSUFWQklIRWlCUnRCNmh4QmxoNGdCUnNnQVNBQllodEJBeEFxSUFCQklDQUNJQU1nQkVHQXdBQnpFQzRnQWlBRElBSWdBMG9iSVFrTUFRc2dDMEVRYWlFUkFrQUNmd0pBSUFFZ0MwRXNhaERiQWlJQklBR2dJZ0ZFQUFBQUFBQUFBQUJpQkVBZ0N5QUxLQUlzSWdaQkFXczJBaXdnQlVFZ2NpSU9RZUVBUncwQkRBTUxJQVZCSUhJaURrSGhBRVlOQWlBTEtBSXNJUXBCQmlBRElBTkJBRWdiREFFTElBc2dCa0VkYXlJS05nSXNJQUZFQUFBQUFBQUFzRUdpSVFGQkJpQURJQU5CQUVnYkN5RU1JQXRCTUdvZ0MwSFFBbW9nQ2tFQVNCc2lEU0VIQTBBZ0J3Si9JQUZFQUFBQUFBQUE4RUZqSUFGRUFBQUFBQUFBQUFCbWNRUkFJQUdyREFFTFFRQUxJZ00yQWdBZ0IwRUVhaUVISUFFZ0E3aWhSQUFBQUFCbHpjMUJvaUlCUkFBQUFBQUFBQUFBWWcwQUN3SkFJQXBCQUV3RVFDQUtJUU1nQnlFR0lBMGhDQXdCQ3lBTklRZ2dDaUVEQTBBZ0EwRWRJQU5CSFVnYklRTUNRQ0FIUVFScklnWWdDRWtOQUNBRHJTRWFRZ0FoR1FOQUlBWWdHVUwvLy8vL0Q0TWdCalVDQUNBYWhud2lHU0FaUW9DVTY5d0RnQ0laUW9DVTY5d0RmbjArQWdBZ0JrRUVheUlHSUFoUERRQUxJQm1uSWdaRkRRQWdDRUVFYXlJSUlBWTJBZ0FMQTBBZ0NDQUhJZ1pKQkVBZ0JrRUVheUlIS0FJQVJRMEJDd3NnQ3lBTEtBSXNJQU5ySWdNMkFpd2dCaUVISUFOQkFFb05BQXNMSUF4QkdXcEJDVzRoQnlBRFFRQklCRUFnQjBFQmFpRVNJQTVCNWdCR0lSVURRRUVBSUFOcklnTkJDU0FEUVFsSUd5RUpBa0FnQmlBSVN3UkFRWUNVNjl3RElBbDJJUlpCZnlBSmRFRi9jeUVQUVFBaEF5QUlJUWNEUUNBSElBTWdCeWdDQUNJWElBbDJhallDQUNBUElCZHhJQlpzSVFNZ0IwRUVhaUlISUFaSkRRQUxJQWdvQWdBaEJ5QURSUTBCSUFZZ0F6WUNBQ0FHUVFScUlRWU1BUXNnQ0NnQ0FDRUhDeUFMSUFzb0Fpd2dDV29pQXpZQ0xDQU5JQWdnQjBWQkFuUnFJZ2dnRlJzaUJ5QVNRUUowYWlBR0lBWWdCMnRCQW5VZ0Vrb2JJUVlnQTBFQVNBMEFDd3RCQUNFREFrQWdCaUFJVFEwQUlBMGdDR3RCQW5WQkNXd2hBMEVLSVFjZ0NDZ0NBQ0lKUVFwSkRRQURRQ0FEUVFGcUlRTWdDU0FIUVFwc0lnZFBEUUFMQ3lBTVFRQWdBeUFPUWVZQVJodHJJQTVCNXdCR0lBeEJBRWR4YXlJSElBWWdEV3RCQW5WQkNXeEJDV3RJQkVCQkJFR2tBaUFLUVFCSUd5QUxhaUFIUVlESUFHb2lDVUVKYlNJUFFRSjBha0hRSDJzaENrRUtJUWNnQ1NBUFFRbHNheUlKUVFkTUJFQURRQ0FIUVFwc0lRY2dDVUVCYWlJSlFRaEhEUUFMQ3dKQUlBb29BZ0FpRWlBU0lBZHVJaFVnQjJ4cklnbEZJQXBCQkdvaUR5QUdSbkVOQUFKQUlCVkJBWEZGQkVCRUFBQUFBQUFBUUVNaEFTQUhRWUNVNjl3RFJ5QUlJQXBQY2cwQklBcEJCR3N0QUFCQkFYRkZEUUVMUkFFQUFBQUFBRUJESVFFTFJBQUFBQUFBQU9BL1JBQUFBQUFBQVBBL1JBQUFBQUFBQVBnL0lBWWdEMFliUkFBQUFBQUFBUGcvSUFrZ0IwRUJkaUlQUmhzZ0NTQVBTUnNoR0FKQUlCUU5BQ0FUTFFBQVFTMUhEUUFnR0pvaEdDQUJtaUVCQ3lBS0lCSWdDV3NpQ1RZQ0FDQUJJQmlnSUFGaERRQWdDaUFISUFscUlnTTJBZ0FnQTBHQWxPdmNBMDhFUUFOQUlBcEJBRFlDQUNBSUlBcEJCR3NpQ2tzRVFDQUlRUVJySWdoQkFEWUNBQXNnQ2lBS0tBSUFRUUZxSWdNMkFnQWdBMEgvayt2Y0Ewc05BQXNMSUEwZ0NHdEJBblZCQ1d3aEEwRUtJUWNnQ0NnQ0FDSUpRUXBKRFFBRFFDQURRUUZxSVFNZ0NTQUhRUXBzSWdkUERRQUxDeUFLUVFScUlnY2dCaUFHSUFkTEd5RUdDd05BSUFZaUJ5QUlUU0lKUlFSQUlBZEJCR3NpQmlnQ0FFVU5BUXNMQWtBZ0RrSG5BRWNFUUNBRVFRaHhJUW9NQVFzZ0EwRi9jMEYvSUF4QkFTQU1HeUlHSUFOS0lBTkJlMHB4SWdvYklBWnFJUXhCZjBGK0lBb2JJQVZxSVFVZ0JFRUljU0lLRFFCQmR5RUdBa0FnQ1EwQUlBZEJCR3NvQWdBaURrVU5BRUVLSVFsQkFDRUdJQTVCQ25BTkFBTkFJQVlpQ2tFQmFpRUdJQTRnQ1VFS2JDSUpjRVVOQUFzZ0NrRi9jeUVHQ3lBSElBMXJRUUoxUVFsc0lRa2dCVUZmY1VIR0FFWUVRRUVBSVFvZ0RDQUdJQWxxUVFscklnWkJBQ0FHUVFCS0d5SUdJQVlnREVvYklRd01BUXRCQUNFS0lBd2dBeUFKYWlBR2FrRUpheUlHUVFBZ0JrRUFTaHNpQmlBR0lBeEtHeUVNQzBGL0lRa2dERUg5Ly8vL0IwSCsvLy8vQnlBS0lBeHlJZ1liU2cwQklBd2dCa0VBUnlJU2FrRUJhaUVPQWtBZ0JVRmZjU0lVUWNZQVJnUkFJQU5CLy8vLy93Y2dEbXRLRFFNZ0EwRUFJQU5CQUVvYklRWU1BUXNnRVNBRElBTkJIM1VpQm1vZ0JuT3RJQkVRandFaUJtdEJBVXdFUUFOQUlBWkJBV3NpQmtFd09nQUFJQkVnQm10QkFrZ05BQXNMSUFaQkFtc2lEeUFGT2dBQUlBWkJBV3RCTFVFcklBTkJBRWdiT2dBQUlCRWdEMnNpQmtILy8vLy9CeUFPYTBvTkFnc2dCaUFPYWlJRElCQkIvLy8vL3dkelNnMEJJQUJCSUNBQ0lBTWdFR29pQlNBRUVDNGdBQ0FUSUJBUUtpQUFRVEFnQWlBRklBUkJnSUFFY3hBdUFrQUNRQUpBSUJSQnhnQkdCRUFnQzBFUWFpSUdRUWh5SVFNZ0JrRUpjaUVLSUEwZ0NDQUlJQTFMR3lJSklRZ0RRQ0FJTlFJQUlBb1Fqd0VoQmdKQUlBZ2dDVWNFUUNBR0lBdEJFR3BORFFFRFFDQUdRUUZySWdaQk1Eb0FBQ0FHSUF0QkVHcExEUUFMREFFTElBWWdDa2NOQUNBTFFUQTZBQmdnQXlFR0N5QUFJQVlnQ2lBR2F4QXFJQWhCQkdvaUNDQU5UUTBBQzBFQUlRWWdFa1VOQWlBQVFmQWVRUUVRS2lBTVFRQk1JQWNnQ0UxeURRRURRQ0FJTlFJQUlBb1Fqd0VpQmlBTFFSQnFTd1JBQTBBZ0JrRUJheUlHUVRBNkFBQWdCaUFMUVJCcVN3MEFDd3NnQUNBR0lBeEJDU0FNUVFsSUd4QXFJQXhCQ1dzaEJpQUlRUVJxSWdnZ0IwOE5BeUFNUVFsS0lRTWdCaUVNSUFNTkFBc01BZ3NDUUNBTVFRQklEUUFnQnlBSVFRUnFJQWNnQ0VzYklRa2dDMEVRYWlJRFFRbHlJUTBnQTBFSWNpRURJQWdoQndOQUlBMGdCelVDQUNBTkVJOEJJZ1pHQkVBZ0MwRXdPZ0FZSUFNaEJnc0NRQ0FISUFoSEJFQWdCaUFMUVJCcVRRMEJBMEFnQmtFQmF5SUdRVEE2QUFBZ0JpQUxRUkJxU3cwQUN3d0JDeUFBSUFaQkFSQXFJQVpCQVdvaEJrRUFJQXhCQUV3Z0Noc05BQ0FBUWZBZVFRRVFLZ3NnQUNBR0lBMGdCbXNpQmlBTUlBWWdERWdiRUNvZ0RDQUdheUVNSUFkQkJHb2lCeUFKVHcwQklBeEJBRTROQUFzTElBQkJNQ0FNUVJKcVFSSkJBQkF1SUFBZ0R5QVJJQTlyRUNvTUFnc2dEQ0VHQ3lBQVFUQWdCa0VKYWtFSlFRQVFMZ3NnQUVFZ0lBSWdCU0FFUVlEQUFITVFMaUFDSUFVZ0FpQUZTaHNoQ1F3QkN5QVRJQVZCR25SQkgzVkJDWEZxSVF3Q1FDQURRUXRMRFFCQkRDQURheUVHUkFBQUFBQUFBREJBSVJnRFFDQVlSQUFBQUFBQUFEQkFvaUVZSUFaQkFXc2lCZzBBQ3lBTUxRQUFRUzFHQkVBZ0dDQUJtaUFZb2FDYUlRRU1BUXNnQVNBWW9DQVlvU0VCQ3lBUklBc29BaXdpQmlBR1FSOTFJZ1pxSUFaenJTQVJFSThCSWdaR0JFQWdDMEV3T2dBUElBdEJEMm9oQmdzZ0VFRUNjaUVLSUFWQklIRWhDQ0FMS0FJc0lRY2dCa0VDYXlJTklBVkJEMm82QUFBZ0JrRUJhMEV0UVNzZ0IwRUFTQnM2QUFBZ0JFRUljU0VHSUF0QkVHb2hCd05BSUFjaUJRSi9JQUdaUkFBQUFBQUFBT0JCWXdSQUlBR3FEQUVMUVlDQWdJQjRDeUlIUVpBeWFpMEFBQ0FJY2pvQUFFRUJJQU5CQUVvZ0FTQUh0NkZFQUFBQUFBQUFNRUNpSWdGRUFBQUFBQUFBQUFCaWNpQUdHMFVnQlVFQmFpSUhJQXRCRUdwclFRRkhja1VFUUNBRlFTNDZBQUVnQlVFQ2FpRUhDeUFCUkFBQUFBQUFBQUFBWWcwQUMwRi9JUWxCL2YvLy93Y2dDaUFSSUExcklnVnFJZ1pySUFOSURRQWdBRUVnSUFJZ0JnSi9Ba0FnQTBVTkFDQUhJQXRCRUdwcklnaEJBbXNnQTA0TkFDQURRUUpxREFFTElBY2dDMEVRYW1zaUNBc2lCMm9pQXlBRUVDNGdBQ0FNSUFvUUtpQUFRVEFnQWlBRElBUkJnSUFFY3hBdUlBQWdDMEVRYWlBSUVDb2dBRUV3SUFjZ0NHdEJBRUVBRUM0Z0FDQU5JQVVRS2lBQVFTQWdBaUFESUFSQmdNQUFjeEF1SUFJZ0F5QUNJQU5LR3lFSkN5QUxRYkFFYWlRQUlBa0w1UVVCQ0g4akFFSFFBV3NpQmlRQUlBTVFHU0VISUFZZ0FqWUN2QUVnQmlBSE5nSzRBVUhUOHJDc0EwSFBrKzJMQVNBRlFSQkdHMEhQaysyTEFTQURRU0JHR3lFTElBWkJJR29oREFOQVFhaUVuTlI2SVFJRFFBSkFBa0FDUUFKQUFrQUNRQUpBSUFKQnpwUHRpd0ZNQkVBZ0FrR1Bwc3pxZlV3RVFDQUNRZGZRaGFSNlJnMERJQUpCeHFXUnQzcEdEUVFnQWtHb2hKelVla2NOQ1NBR0lBbzJBc1FCUVpDbXpPcDlRWU9POFljRklBWW9Bc1FCSUFOSUd5RUNEQWtMSUFKQmtLYk02bjFHRFFFZ0FrSEw5OWhSUmcwSElBSkJyc3ZhZTBjTkNDQUdLQUxNQVVHUWdRRnFJQVlvQXJnQklBWW9Bc3dCYWkwQUFEb0FBQ0FHS0FMTUFVRUJhaUVIUWNINStOTUJJUUlNQ0FzZ0FrR0NqdkdIQlV3RVFDQUNRYytUN1lzQlJnMEVJQUpCd2ZuNDB3RkdEUVVnQWtIVDhyQ3NBMGNOQ0NBR0lBWkJxQUZxSWdJMkFzQUJJQVlvQXNBQkdpQUNJQVlvQXJnQkVGUWFRZGZRaGFSNklRSkJBQ0VJREFnTElBSkJnNDd4aHdWSEJFQWdBa0dEeHZlWkJVWU5CaUFDUWRPeHl2NEhSdzBJSUFZb0FyZ0JFQkFnQmtIUUFXb2tBQThMUWJTQkFTQUZOZ0lBSUFBZ0FTQUVJQVlvQXJnQklBTVE1UUVnQ3lFQ0RBY0xJQVlvQXJnQklBWW9Bc1FCYWlBR0tBSzhBU0FHS0FMRUFXb3RBQUE2QUFBZ0JpZ0N4QUVpQWtFQmRFRUNjU0FDUVFGemFpRUtEQWNMSUFZZ0NEWUN5QUZCeHFXUnQzcEJnOGIzbVFVZ0JpZ0N5QUVnQlVnYklRSU1CUXNnQmtFWWFpSU5FTmNDSVFJZ0RCRE1BaUVJSUFaQkNHb2lDU0FHUWFnQmFpQUdLQUxJQVVFQmRCREtBaUFJSUFrUXlBSWdDUkFLR2lBTklBa1ErUUlnQmlnQ3lBRkJrSUVCYWlBR0tBSUlPZ0FBSUFJUWpBRWFJQVlvQXNnQklnSkJBWFJCQW5FZ0FrRUJjMm9oQ0VIWDBJV2tlaUVDREFRTFFjSDUrTk1CSVFKQkFDRUhEQU1MSUFZZ0J6WUN6QUZCcnN2YWUwSEw5OWhSSUFZb0Fzd0JJQVZJR3lFQ0RBSUxJQVpCcUFGcUVBb2FJQVlvQXNBQkdndEIwN0hLL2djaEFnd0FDd0FMQUF0VUFRSi9JQUVnQUNnQ1ZDSUJJQUZCQUNBQ1FZQUNhaUlERU53QklnUWdBV3NnQXlBRUd5SURJQUlnQWlBRFN4c2lBaEJDR2lBQUlBRWdBMm9pQXpZQ1ZDQUFJQU0yQWdnZ0FDQUJJQUpxTmdJRUlBSUw5d0VCQTM4Z0FFVUVRRUd3Z1FFb0FnQWhBQ01BUVNCcklnUWtBRUh3Z0FFZ0FCQzlBaUlGQkg4Z0JDQURLUUFBTndNUUlBUWdBeWtBQ0RjREdDQUNCRUFEUUNBRklBUkJFR29nQkJDbUFTQUNRUkFnQWtFUVNSc2hBMEVBSVFBRFFDQUFJQUZxSWdZZ0JpMEFBQ0FBSUFScUxRQUFjem9BQUNBQVFRRnFJZ0FnQTBjTkFBc2dBaUFEYXlFQ0lBRWdBMm9oQVVFUElRQURRQUpBSUFBaUF5QUVRUkJxYWlJQUlBQXRBQUJCQVdvaUFEb0FBQ0FBUWY4QmNRMEFJQU5CQVdzaEFDQUREUUVMQ3lBQ0RRQUxDeUFGRUJCQkFBVkJmd3NhSUFSQklHb2tBQThMUVpDQkFVRzBnUUVvQWdBZ0F5QUJJQUlRNVFFTENRQWdBQkRoQVJBUUN4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUTRnRUxFd0FnQUNBQUtBSUFRUXhyS0FJQWFoQ01BUXNLQUNBQVFRaHJFT0lCQ3dvQUlBQkJDR3NRakFFTEdnQWdBQ0FCSUFJcEF3aEJBQ0FESUFFb0FnQW9BaEFSRlFBTENRQWdBQkRSQVJBUUM1UUNBZ0YvQTM0Z0FTZ0NHQ0FCS0FJc1N3UkFJQUVnQVNnQ0dEWUNMQXRDZnlFSUFrQWdCRUVZY1NJRlJTQUZRUmhHSUFOQkFVWnhjZzBBSUFFb0Fpd2lCUVJBSUFVZ0FVRWdhaEFOYTZ3aEJnc0NRQUpBQWtBZ0F3NERBZ0FCQXdzZ0JFRUljUVJBSUFFb0Fnd2dBU2dDQ0d1c0lRY01BZ3NnQVNnQ0dDQUJLQUlVYTZ3aEJ3d0JDeUFHSVFjTElBSWdCM3dpQWtJQVV5QUNJQVpWY2cwQUlBUkJDSEVoQXdKQUlBSlFEUUFnQXdSQUlBRW9BZ3hGRFFJTElBUkJFSEZGRFFBZ0FTZ0NHRVVOQVFzZ0F3UkFJQUVnQVNnQ0NDQUJLQUlJSUFLbmFpQUJLQUlzRUpvQkN5QUVRUkJ4QkVBZ0FTQUJLQUlVSUFFb0Fod1E4Z0lnQVNBQ3B4RHhBZ3NnQWlFSUN5QUFJQWdRdkFFTGd3SUJDWDhqQUVFUWF5SURKQUFDZnlBQlFYOFFYMFVFUUNBQUtBSU1JUVFnQUNnQ0NDRUZJQUFvQWhnZ0FDZ0NIRVlFUUVGL0lBQXRBREJCRUhGRkRRSWFJQUFvQWhnaEJpQUFLQUlVSVFjZ0FDZ0NMQ0VJSUFBb0FoUWhDU0FBUVNCcUlnSkJBQkNoQVNBQ0lBSVFFeEFNSUFBZ0FoQU5JZ29nQWhBSklBcHFFUElDSUFBZ0JpQUhheER4QWlBQUlBQW9BaFFnQ0NBSmEybzJBaXdMSUFNZ0FDZ0NHRUVCYWpZQ0RDQUFJQU5CREdvZ0FFRXNhaEIyS0FJQU5nSXNJQUF0QURCQkNIRUVRQ0FBSUFCQklHb1FEU0lDSUFJZ0JDQUZhMm9nQUNnQ0xCQ2FBUXNnQUNBQkVKc0JFUG9DREFFTElBRVE3Z0lMSVFBZ0EwRVFhaVFBSUFBTG9BRUJBWDhnQUNnQ0dDQUFLQUlzU3dSQUlBQWdBQ2dDR0RZQ0xBc0NRQ0FBS0FJSUlBQW9BZ3hQRFFBZ0FVRi9FRjhFUUNBQUlBQW9BZ2dnQUNnQ0RFRUJheUFBS0FJc0VKb0JJQUVRN2dJUEN5QUFMUUF3UVJCeFJRUkFJQUVRbXdFZ0FDZ0NERUVCYXl3QUFCQmZSUTBCQ3lBQUlBQW9BZ2dnQUNnQ0RFRUJheUFBS0FJc0VKb0JJQUVRbXdFaEFpQUFLQUlNSUFJNkFBQWdBUThMUVg4TFpBQWdBQ2dDR0NBQUtBSXNTd1JBSUFBZ0FDZ0NHRFlDTEFzQ1FDQUFMUUF3UVFoeFJRMEFJQUFvQWhBZ0FDZ0NMRWtFUUNBQUlBQW9BZ2dnQUNnQ0RDQUFLQUlzRUpvQkN5QUFLQUlNSUFBb0FoQlBEUUFnQUNnQ0RDd0FBQkJlRHd0QmZ3c0hBQ0FBS0FJSUN4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUTR3RUxDZ0FnQUVFSWF4RGpBUXNUQUNBQUlBQW9BZ0JCREdzb0FnQnFFTGdCQ3dvQUlBQkJDR3NRdUFFTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEMUFnc1RBQ0FBSUFBb0FnQkJER3NvQWdCcUVPUUJDd2tBUWJpQkFSQUtHZ3NUQUNBQUlBQW9BZ0JCREdzb0FnQnFFSU1EQ3hNQUlBQWdBQ2dDQUVFTWF5Z0NBR29RdWdFTEMrTmlJZ0JCZ0FnTG95V2xZMlBHaEh4OCtKbDNkKzZOZTN2MkRmTHkvNzFyYTlheGIyL2VWTVhGa1ZBd01HQURBUUVDcVdkbnpuMHJLMVlaL3Y3bll0Zlh0ZWFycTAyYWRuYnNSY3JLajUyQ2doOUF5Y21KaDMxOStoWDYrdS9yV1ZteXlVZEhqZ3Z3OFB2c3JhMUJaOVRVcy8yaW9sL3FyNjlGdjV5Y0kvZWtwRk9XY25Ma1c4REFtOEszdDNVYy9mM2hycE9UUFdvbUpreGFOalpzUVQ4L2ZnTDM5L1ZQek15RFhEUTBhUFNscFZFMDVlWFJDUEh4K1pOeGNlSnoyTmlyVXpFeFlqOFZGU29NQkFRSVVzZkhsV1VqSTBaZXc4T2RLQmdZTUtHV2xqY1BCUVVLdFpxYUx3a0hCdzQyRWhJa200Q0FHejNpNHQ4bTYrdk5hU2NuVHMyeXNuK2ZkWFhxR3drSkVwNkRneDEwTEN4WUxob2FOQzBiR3pheWJtN2M3bHBhdFB1Z29GdjJVbEtrVFRzN2RtSFcxcmZPczdOOWV5a3BVajdqNDkxeEx5OWVsNFNFRS9WVFU2Wm8wZEc1QUFBQUFDenQ3Y0ZnSUNCQUgvejg0OGl4c1hudFcxdTJ2bXBxMUViTHk0M1p2cjVuU3prNWN0NUtTcFRVVEV5WTZGaFlzRXJQejRWcjBOQzdLdS92eGVXcXFrOFcrL3Z0eFVORGh0ZE5UWnBWTXpObWxJV0ZFYzlGUllvUStmbnBCZ0lDQklGL2YvN3dVRkNnUkR3OGVMcWZueVhqcUtoTDgxRlJvdjZqbzEzQVFFQ0FpbytQQmEyU2tqKzhuWjBoU0RnNGNBVDE5Zkhmdkx4andiYTJkM1hhMnE5aklTRkNNQkFRSUJyLy8rVU84L1A5YmRMU3Ywek56WUVVREF3WU5STVRKaS9zN01QaFgxKytvcGVYTmN4RVJJZzVGeGN1VjhURWsvS25wMVdDZm43OFJ6MDllcXhrWk1qblhWMjZLeGtaTXBWemMrYWdZR0RBbUlHQkdkRlBUNTUvM055alppSWlSSDRxS2xTcmtKQTdnNGlJQzhwR1Jvd3A3dTdIMDdpNGF6d1VGQ2g1M3Q2bjRsNWV2QjBMQ3haMjI5dXRPK0RnMjFZeU1tUk9PanAwSGdvS0ZOdEpTWklLQmdZTWJDUWtTT1JjWExoZHdzS2ZidFBUdmUrc3JFT21ZbUxFcUpHUk9hU1ZsVEUzNU9UVGkzbDU4akxuNTlWRHlNaUxXVGMzYnJkdGJkcU1qWTBCWk5YVnNkSk9UcHpncWFsSnRHeHMyUHBXVnF3SDlQVHpKZXJxejY5bFpjcU9lbnIwNmE2dVJ4Z0lDQkRWdXJwdmlIaDQ4RzhsSlVweUxpNWNKQndjT1BHbXBsZkh0TFJ6VWNiR2x5UG82TXQ4M2QyaG5IUjA2Q0VmSHo3ZFMwdVczTDI5WVlhTGl3MkZpb29Qa0hCdzRFSStQbnpFdGJWeHFtWm16TmhJU0pBRkF3TUdBZmIyOXhJT0RoeWpZV0hDWHpVMWF2bFhWNjdRdWJscGtZYUdGMWpCd1prbkhSMDZ1WjZlSnpqaDRka1QrUGpyczVpWUt6TVJFU0s3YVduU2NOblpxWW1PamdlbmxKUXp0cHViTFNJZUhqeVNoNGNWSU9ucHlVbk96b2YvVlZXcWVDZ29VSHJmMzZXUGpJd0QrS0doV1lDSmlRa1hEUTBhMnIrL1pUSG01dGZHUWtLRXVHaG8wTU5CUVlLd21aa3BkeTB0V2hFUER4N0xzTEI3L0ZSVXFOYTd1MjA2RmhZc1VLZjBVVk5sUVg3RHBCY2FsbDRuT3N0cnF6dnhSWjBmcTFqNnJKTUQ0MHRWK2pBZzltMTJyWkYyeklnbFRBTDEvTmZsVDlmTEtzV0FSRFVtajZOaXRVbGFzZDVuRzdvbG1BN3FSZUhBL2wwQ2RTL0RFdkJNZ2FPWFJvM0crZE5yNTErUEE1V2NraFhyZW0yLzJsbFNsUzJEdnRUVElYUllLV25nU1VUSXlZNXFpY0oxZUhtTzlHcytXSm5kY2JrbnRrL2h2aGV0aVBCbXJDREp0RHJPZlJoSzMyT0NNUnJsWUROUmwwVi9VMkxnZDJTeGhLNXJ1eHlnZ2Y2VUt3ajVXR2hJY0JuOVJZK0hiTjZVdC9oN1VpUFRjNnZpQWt0eVY0OGY0eXFyVldZSEtPdXlBOEsxTDVwN3hZYWxDRGZUOG9jb01MS2x2eU82YWdNQ1hJSVc3U3NjejRxU3RIbW44UElIODZIaWFVN045TnBsMWI0RkJoOWlOTkdLL3FiRW5WTXVOS0JWODZJeTRZb0ZkZXYycERuc2d3dXE3MkJBQnA5eFhsRVFicjM1aWlFK1BRYmRscTRGUHQxR3ZlWk50WTFVa1FWZHhIRnYxQVlFL3hWUVlDVDdtQm1YNmIzV3pFTkFpWGVlMldlOVF1aXdpSXVKQnpoYkdlZmI3c2g1UndwOG9la1BRbnpKSG9UNEFBQUFBSU9HZ0FsSTdTc3lySEFSSGs1eVdtejcvdzc5VmppRkR4N1ZyajBuT1MwMlpOa1BDaUdtWEdqUlZGdWJPaTQySkxGbkNnd1A1MWVUMHBidXRKNlJteHRQeGNDQW9pRGNZV2xMZDFvV0doSWNDcnFUNHVVcW9NQkQ0Q0k4SFJjYkVnc05DUTZ0eDR2eXVhaTJMY2lwSGhTRkdmRlhUQWQxcjd2ZG1lNzlZSCtqbnlZQjk3ejFjbHpGTzJaRU5INzdXM1lwUTR2Y3hpUExhUHp0dG1QeDVMakszREhYRUlWalFrQWlseE1nRWNhRWZTUktoZmc5dTlJUk12bXViYUVweDBzdm5oM3pNTExjN0ZLR0RkRGp3WGRzRnJNcm1ibHdxZnBJbEJFaVpPbEh4SXo4cUJvLzhLRFlMSDFXNzVBeklzZE9TWWZCMFRqWi9xTEtqRFlMMUpqUGdmV21LTjU2cFNhT3Q5cWt2NjAvNUowNkxBMlNlRkNiekY5cVlrWitWTUlUamZib3VOaVFYdmM1THZXdnc0SytnRjJmZkpQUWFha3QxVyt6RWlYUE81bXN5S2Q5R0JCdVk1em9lN3M3MndsNEpzMzBHRmx1QWJlYTdLaWFUNE5sYnBYbWZ1Yi9xZ2pQdkNIbTZCWHYyWnZudXM0MmIwclVDWi9xMW55d0thK3lwREV4SXo4cU1KU2x4c0Jtb2pVM3ZFNTBwc3FDL0xEUWtPQVYyS2N6U3BnRThmZmE3RUVPVU0xL0wvYVJGNDNXVFhaTnNPOURWRTJxek44RWx1VGp0ZEdlRzRocVRMZ2ZMTUYvVVdWR0JPcGVuVjAxakFGemRJZjZMa0VMKzFvZFo3TlMwdHVTTTFZUTZSTkgxbTJNWWRlYWVneWhONDRVK0ZtSlBCUHI3aWVwempYSlliZnQ1UnpoUExGSGVsbmYwcHcvYy9KVmVjNFVHTDgzeDNQcXpmZFRXNnI5WHhSdlBkK0cyMFI0Z2ZPdnlqN0VhTGtzTkNRNFgwQ2p3bkxESFJZTUplSzhpMGs4S0VHVkRmOXhBYWc1M3JNTUNKemt0TmlRd1Zaa1lZVExlM0MyTXRWMFhHeElRbGU0MEZJSmF0VXdOcVU0djBDam5vSHoxL3Q4NHptQ215Ly9oelNPUTBURTN1bkxWSHVVTXFiQ0l6M3VUSlVMUXZyRFRnZ3VvV1lvMlNTeWRsdWlTVzJMMFNWeStQWmtobWlZRnRTa1hNeGRaYmFTYkhCSVVQM3R1ZHBlRlVaWHA0MmRoSkRZcXdDTXZOTUs5K1JZQmJpelJRYlFMQjZQeWo4UEFzR3Z2UU1CRTRwck9wRVJRVTluM09xWDhzL084TFRtYzVhc2RDTG5yVFdGNHZrMzZCeDEzMjVIOFJweEhTbkZpVyszWWc2cUdMNGIvRlkrUzhiU2VTQ2EyOEQrZU0xYTlCL2RxRE9JQjhjeHNSSVFXU2VBN0Y5Z1VYK3BHYlZLRFMzbGVwK1R5Wnp2b09BN1RhNHE5YkRJNjdzOGcxT1pZUmNyQkg2NmQ5WW00V2tVWTFVaERIMEJBZ1FJRUNCQWdCczJhVzVtYVc1cGRIa0FSbVZpY25WaGNua0FTbUZ1ZFdGeWVRQktkV3g1QUZSb2RYSnpaR0Y1QUZSMVpYTmtZWGtBVjJWa2JtVnpaR0Y1QUZOaGRIVnlaR0Y1QUZOMWJtUmhlUUJOYjI1a1lYa0FSbkpwWkdGNUFFMWhlUUFsYlM4bFpDOGxlUUF0S3lBZ0lEQllNSGdBTFRCWUt6QllJREJZTFRCNEt6QjRJREI0QUU1dmRnQlVhSFVBUVhWbmRYTjBBRTlqZEFCVFlYUUFRWEJ5QUhabFkzUnZjZ0JQWTNSdlltVnlBRTV2ZG1WdFltVnlBRk5sY0hSbGJXSmxjZ0JFWldObGJXSmxjZ0JwYjNOZlltRnpaVG82WTJ4bFlYSUFUV0Z5QUZObGNBQWxTVG9sVFRvbFV5QWxjQUJUZFc0QVNuVnVBSE4wWkRvNlpYaGpaWEIwYVc5dUFGOWZZM2hoWDJkMVlYSmtYMkZqY1hWcGNtVWdaR1YwWldOMFpXUWdjbVZqZFhKemFYWmxJR2x1YVhScFlXeHBlbUYwYVc5dUFFMXZiZ0J1WVc0QVNtRnVBRXAxYkFCc2JBQkJjSEpwYkFCR2Nta0FUV0Z5WTJnQVFYVm5BR2x1WmdBbExqQk1aZ0FsVEdZQVlXeHNiMk5oZEc5eVBGUStPanBoYkd4dlkyRjBaU2h6YVhwbFgzUWdiaWtnSjI0bklHVjRZMlZsWkhNZ2JXRjRhVzExYlNCemRYQndiM0owWldRZ2MybDZaUUIwY25WbEFGUjFaUUJtWVd4elpRQktkVzVsQUZkbFpBQkVaV01BUm1WaUFDVmhJQ1ZpSUNWa0lDVklPaVZOT2lWVElDVlpBRkJQVTBsWUFDVklPaVZOT2lWVEFFNUJUZ0JRVFFCQlRRQk1RMTlCVEV3QVRFRk9Sd0JKVGtZQVF3QXdNVEl6TkRVMk56ZzVBRU11VlZSR0xUZ0FRVUpEUkVWR1IwaEpTa3RNVFU1UFVGRlNVMVJWVmxkWVdWcGhZbU5rWldabmFHbHFhMnh0Ym05d2NYSnpkSFYyZDNoNWVqQXhNak0wTlRZM09Ea3JMd0F1QUNodWRXeHNLUUJRZFhKbElIWnBjblIxWVd3Z1puVnVZM1JwYjI0Z1kyRnNiR1ZrSVFCYmFFVkxuS3Z1UjhvRTlBVUFBQUFBQUZnUkFBQUVBQUFBQlFBQUFBWUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUFBQUVRQUFBQWdBQUFBQUFBQUFrQkVBQUJJQUFBQVRBQUFBK1AvLy8vai8vLytRRVFBQUZBQUFBQlVBQUFEd0R3QUFCQkFBQUFRQUFBQUFBQUFBMkJFQUFCWUFBQUFYQUFBQS9QLy8vL3ovLy8vWUVRQUFHQUFBQUJrQUFBQWdFQUFBTkJBQUFBd0FBQUFBQUFBQWNCSUFBQm9BQUFBYkFBQUFCQUFBQVBqLy8vOXdFZ0FBSEFBQUFCMEFBQUQwLy8vLzlQLy8vM0FTQUFBZUFBQUFId0FBQUZBUUFBRDhFUUFBRUJJQUFDUVNBQUE0RWdBQWVCQUFBR1FRQUFBQUFBQUExQklBQUNBQUFBQWhBQUFBQmdBQUFBY0FBQUFpQUFBQUl3QUFBQW9BQUFBTEFBQUFEQUFBQUNRQUFBQU9BQUFBSlFBQUFCQUFBQUFtQUFBQUFBQUFBQmdSQUFBbkFBQUFLQUFBQUU1VGRETmZYekk1WW1GemFXTmZhVzl6U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZBQUFBQ0Q4QUFPd1FBQUJJRkFBQVRsTjBNMTlmTWpFMVltRnphV05mYzNSeVpXRnRZblZtU1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZBQUFBQU9BK0FBQWtFUUFBVGxOME0xOWZNakV6WW1GemFXTmZhWE4wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlFBQVpEOEFBR0FSQUFBQUFBQUFBUUFBQUJnUkFBQUQ5UC8vVGxOME0xOWZNakV6WW1GemFXTmZiM04wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlFBQVpEOEFBS2dSQUFBQUFBQUFBUUFBQUJnUkFBQUQ5UC8vREFBQUFBQUFBQUNRRVFBQUVnQUFBQk1BQUFEMC8vLy85UC8vLzVBUkFBQVVBQUFBRlFBQUFBUUFBQUFBQUFBQTJCRUFBQllBQUFBWEFBQUEvUC8vLy96Ly8vL1lFUUFBR0FBQUFCa0FBQUJPVTNRelgxOHlNVFJpWVhOcFkxOXBiM04wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlFCa1B3QUFRQklBQUFNQUFBQUNBQUFBa0JFQUFBSUFBQURZRVFBQUFnZ0FBRTVUZEROZlh6SXhOV0poYzJsalgzTjBjbWx1WjJKMVprbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZPVTE4NVlXeHNiMk5oZEc5eVNXTkZSVVZGQUFBQUNEOEFBSkFTQUFCWUVRQUFRQUFBQUFBQUFBQVlGQUFBS1FBQUFDb0FBQUE0QUFBQStQLy8veGdVQUFBckFBQUFMQUFBQU1ELy8vL0EvLy8vR0JRQUFDMEFBQUF1QUFBQTdCSUFBRkFUQUFDTUV3QUFvQk1BQUxRVEFBRElFd0FBZUJNQUFHUVRBQUFVRXdBQUFCTUFBRUFBQUFBQUFBQUFjQklBQUJvQUFBQWJBQUFBT0FBQUFQai8vLzl3RWdBQUhBQUFBQjBBQUFEQS8vLy93UC8vLzNBU0FBQWVBQUFBSHdBQUFFQUFBQUFBQUFBQWtCRUFBQklBQUFBVEFBQUF3UC8vLzhELy8vK1FFUUFBRkFBQUFCVUFBQUE0QUFBQUFBQUFBTmdSQUFBV0FBQUFGd0FBQU1qLy8vL0kvLy8vMkJFQUFCZ0FBQUFaQUFBQVRsTjBNMTlmTWpFNFltRnphV05mYzNSeWFXNW5jM1J5WldGdFNXTk9VMTh4TVdOb1lYSmZkSEpoYVhSelNXTkZSVTVUWHpsaGJHeHZZMkYwYjNKSlkwVkZSVVVBQUFBQUNEOEFBTkFUQUFCd0VnQUFBQUFBQUVnVUFBQXZBQUFBTUFBQUFFNVRkRE5mWHpJNGFXOXpYMkpoYzJWRkFBQUE0RDRBQURRVUFBRFJkSjRBVjUyOUtvQndVZy8vL3o0bkNnQUFBR1FBQUFEb0F3QUFFQ2NBQUtDR0FRQkFRZzhBZ0phWUFBRGg5UVVZQUFBQU5RQUFBSEVBQUFCci8vLy96dnYvLzVLLy8vOEFBQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzhBQVFJREJBVUdCd2dKLy8vLy8vLy8vd29MREEwT0R4QVJFaE1VRlJZWEdCa2FHeHdkSGg4Z0lTSWovLy8vLy8vL0Nnc01EUTRQRUJFU0V4UVZGaGNZR1JvYkhCMGVIeUFoSWlQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFFQ0JBY0RCZ1VBQUFBQUFBQUFBZ0FBd0FNQUFNQUVBQURBQlFBQXdBWUFBTUFIQUFEQUNBQUF3QWtBQU1BS0FBREFDd0FBd0F3QUFNQU5BQURBRGdBQXdBOEFBTUFRQUFEQUVRQUF3QklBQU1BVEFBREFGQUFBd0JVQUFNQVdBQURBRndBQXdCZ0FBTUFaQUFEQUdnQUF3QnNBQU1BY0FBREFIUUFBd0I0QUFNQWZBQURBQUFBQXN3RUFBTU1DQUFEREF3QUF3d1FBQU1NRkFBRERCZ0FBd3djQUFNTUlBQUREQ1FBQXd3b0FBTU1MQUFERERBQUF3dzBBQU5NT0FBREREd0FBd3dBQURMc0JBQXpEQWdBTXd3TUFETU1FQUF6YkFBQUFBTjRTQkpVQUFBQUEvLy8vLy8vLy8vLy8vLy8vZ0JZQUFCUUFBQUJETGxWVVJpMDRBRUhRTFFzQ2xCWUFRZkF0QzBkTVExOURWRmxRUlFBQUFBQk1RMTlPVlUxRlVrbERBQUJNUTE5VVNVMUZBQUFBQUFCTVExOURUMHhNUVZSRkFBQk1RMTlOVDA1RlZFRlNXUUJNUTE5TlJWTlRRVWRGVXdCQndDNExRUmtBQ2dBWkdSa0FBQUFBQlFBQUFBQUFBQWtBQUFBQUN3QUFBQUFBQUFBQUdRQVJDaGtaR1FNS0J3QUJBQWtMR0FBQUNRWUxBQUFMQUFZWkFBQUFHUmtaQUVHUkx3c2hEZ0FBQUFBQUFBQUFHUUFLRFJrWkdRQU5BQUFDQUFrT0FBQUFDUUFPQUFBT0FFSExMd3NCREFCQjF5OExGUk1BQUFBQUV3QUFBQUFKREFBQUFBQUFEQUFBREFCQmhUQUxBUkFBUVpFd0N4VVBBQUFBQkE4QUFBQUFDUkFBQUFBQUFCQUFBQkFBUWI4d0N3RVNBRUhMTUFzZUVRQUFBQUFSQUFBQUFBa1NBQUFBQUFBU0FBQVNBQUFhQUFBQUdob2FBRUdDTVFzT0dnQUFBQm9hR2dBQUFBQUFBQWtBUWJNeEN3RVVBRUcvTVFzVkZ3QUFBQUFYQUFBQUFBa1VBQUFBQUFBVUFBQVVBRUh0TVFzQkZnQkIrVEVMS1JVQUFBQUFGUUFBQUFBSkZnQUFBQUFBRmdBQUZnQUFNREV5TXpRMU5qYzRPVUZDUTBSRlJqQWFBRUd3TkF2L0FRSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBTWdBaUFDSUFJZ0FpQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUJZQVRBQk1BRXdBVEFCTUFFd0FUQUJNQUV3QVRBQk1BRXdBVEFCTUFFd0FqWUNOZ0kyQWpZQ05nSTJBallDTmdJMkFqWUJNQUV3QVRBQk1BRXdBVEFCTUFJMVFqVkNOVUkxUWpWQ05VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZCTUFFd0FUQUJNQUV3QVRBQ05ZSTFnaldDTllJMWdqV0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z1RBQk1BRXdBVEFBZ0JCc0RnTEFrQWVBRUhFUEF2NUF3RUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQWpBQUFBSkFBQUFDVUFBQUFtQUFBQUp3QUFBQ2dBQUFBcEFBQUFLZ0FBQUNzQUFBQXNBQUFBTFFBQUFDNEFBQUF2QUFBQU1BQUFBREVBQUFBeUFBQUFNd0FBQURRQUFBQTFBQUFBTmdBQUFEY0FBQUE0QUFBQU9RQUFBRG9BQUFBN0FBQUFQQUFBQUQwQUFBQStBQUFBUHdBQUFFQUFBQUJCQUFBQVFnQUFBRU1BQUFCRUFBQUFSUUFBQUVZQUFBQkhBQUFBU0FBQUFFa0FBQUJLQUFBQVN3QUFBRXdBQUFCTkFBQUFUZ0FBQUU4QUFBQlFBQUFBVVFBQUFGSUFBQUJUQUFBQVZBQUFBRlVBQUFCV0FBQUFWd0FBQUZnQUFBQlpBQUFBV2dBQUFGc0FBQUJjQUFBQVhRQUFBRjRBQUFCZkFBQUFZQUFBQUVFQUFBQkNBQUFBUXdBQUFFUUFBQUJGQUFBQVJnQUFBRWNBQUFCSUFBQUFTUUFBQUVvQUFBQkxBQUFBVEFBQUFFMEFBQUJPQUFBQVR3QUFBRkFBQUFCUkFBQUFVZ0FBQUZNQUFBQlVBQUFBVlFBQUFGWUFBQUJYQUFBQVdBQUFBRmtBQUFCYUFBQUFld0FBQUh3QUFBQjlBQUFBZmdBQUFIOEFRY0RFQUFzQ1VDUUFRZFRJQUF2NUF3RUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQWpBQUFBSkFBQUFDVUFBQUFtQUFBQUp3QUFBQ2dBQUFBcEFBQUFLZ0FBQUNzQUFBQXNBQUFBTFFBQUFDNEFBQUF2QUFBQU1BQUFBREVBQUFBeUFBQUFNd0FBQURRQUFBQTFBQUFBTmdBQUFEY0FBQUE0QUFBQU9RQUFBRG9BQUFBN0FBQUFQQUFBQUQwQUFBQStBQUFBUHdBQUFFQUFBQUJoQUFBQVlnQUFBR01BQUFCa0FBQUFaUUFBQUdZQUFBQm5BQUFBYUFBQUFHa0FBQUJxQUFBQWF3QUFBR3dBQUFCdEFBQUFiZ0FBQUc4QUFBQndBQUFBY1FBQUFISUFBQUJ6QUFBQWRBQUFBSFVBQUFCMkFBQUFkd0FBQUhnQUFBQjVBQUFBZWdBQUFGc0FBQUJjQUFBQVhRQUFBRjRBQUFCZkFBQUFZQUFBQUdFQUFBQmlBQUFBWXdBQUFHUUFBQUJsQUFBQVpnQUFBR2NBQUFCb0FBQUFhUUFBQUdvQUFBQnJBQUFBYkFBQUFHMEFBQUJ1QUFBQWJ3QUFBSEFBQUFCeEFBQUFjZ0FBQUhNQUFBQjBBQUFBZFFBQUFIWUFBQUIzQUFBQWVBQUFBSGtBQUFCNkFBQUFld0FBQUh3QUFBQjlBQUFBZmdBQUFIOEFRZERRQUF2QkFUQXhNak0wTlRZM09EbGhZbU5rWldaQlFrTkVSVVo0V0NzdGNGQnBTVzVPQUNVQUFBQUFBQ1Z3QUFBQUFDVkpPaVZOT2lWVElDVndKVWc2SlUwQUFBQWxBQUFBYlFBQUFDOEFBQUFsQUFBQVpBQUFBQzhBQUFBbEFBQUFlUUFBQUNVQUFBQlpBQUFBTFFBQUFDVUFBQUJ0QUFBQUxRQUFBQ1VBQUFCa0FBQUFKUUFBQUVrQUFBQTZBQUFBSlFBQUFFMEFBQUE2QUFBQUpRQUFBRk1BQUFBZ0FBQUFKUUFBQUhBQUFBQUFBQUFBSlFBQUFFZ0FBQUE2QUFBQUpRQUFBRTBBUWFEU0FBdlpBeVVBQUFCSUFBQUFPZ0FBQUNVQUFBQk5BQUFBT2dBQUFDVUFBQUJUQUFBQUFBQUFBS1F0QUFCSEFBQUFTQUFBQUVrQUFBQUFBQUFBQkM0QUFFb0FBQUJMQUFBQVNRQUFBRXdBQUFCTkFBQUFUZ0FBQUU4QUFBQlFBQUFBVVFBQUFGSUFBQUJUQUFBQUFBQUFBR3d0QUFCVUFBQUFWUUFBQUVrQUFBQldBQUFBVndBQUFGZ0FBQUJaQUFBQVdnQUFBRnNBQUFCY0FBQUFBQUFBQUR3dUFBQmRBQUFBWGdBQUFFa0FBQUJmQUFBQVlBQUFBR0VBQUFCaUFBQUFZd0FBQUFBQUFBQmdMZ0FBWkFBQUFHVUFBQUJKQUFBQVpnQUFBR2NBQUFCb0FBQUFhUUFBQUdvQUFBQjBBQUFBY2dBQUFIVUFBQUJsQUFBQUFBQUFBR1lBQUFCaEFBQUFiQUFBQUhNQUFBQmxBQUFBQUFBQUFDVUFBQUJ0QUFBQUx3QUFBQ1VBQUFCa0FBQUFMd0FBQUNVQUFBQjVBQUFBQUFBQUFDVUFBQUJJQUFBQU9nQUFBQ1VBQUFCTkFBQUFPZ0FBQUNVQUFBQlRBQUFBQUFBQUFDVUFBQUJoQUFBQUlBQUFBQ1VBQUFCaUFBQUFJQUFBQUNVQUFBQmtBQUFBSUFBQUFDVUFBQUJJQUFBQU9nQUFBQ1VBQUFCTkFBQUFPZ0FBQUNVQUFBQlRBQUFBSUFBQUFDVUFBQUJaQUFBQUFBQUFBQ1VBQUFCSkFBQUFPZ0FBQUNVQUFBQk5BQUFBT2dBQUFDVUFBQUJUQUFBQUlBQUFBQ1VBQUFCd0FFR0UxZ0FMbGdrc0t3QUFhd0FBQUd3QUFBQkpBQUFBVGxOME0xOWZNalpzYjJOaGJHVTFabUZqWlhSRkFBQUFDRDhBQUJRckFBQndQZ0FBQUFBQUFLd3JBQUJyQUFBQWJRQUFBRWtBQUFCdUFBQUFid0FBQUhBQUFBQnhBQUFBY2dBQUFITUFBQUIwQUFBQWRRQUFBSFlBQUFCM0FBQUFlQUFBQUhrQUFBQk9VM1F6WDE4eU5XTjBlWEJsU1hkRlJRQk9VM1F6WDE4eU1UQmpkSGx3WlY5aVlYTmxSUUFBNEQ0QUFJNHJBQUJrUHdBQWZDc0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQ2tLd0FBQWdBQUFBQUFBQUJBTEFBQWF3QUFBSG9BQUFCSkFBQUFld0FBQUh3QUFBQjlBQUFBZmdBQUFIOEFBQUNBQUFBQWdRQUFBRTVUZEROZlh6STNZMjlrWldOMmRFbGpZekV4WDE5dFluTjBZWFJsWDNSRlJRQk9VM1F6WDE4eU1USmpiMlJsWTNaMFgySmhjMlZGQUFBQUFPQStBQUFlTEFBQVpEOEFBUHdyQUFBQUFBQUFBZ0FBQUN3ckFBQUNBQUFBT0N3QUFBSUFBQUFBQUFBQXRDd0FBR3NBQUFDQ0FBQUFTUUFBQUlNQUFBQ0VBQUFBaFFBQUFJWUFBQUNIQUFBQWlBQUFBSWtBQUFCT1UzUXpYMTh5TjJOdlpHVmpkblJKUkhOak1URmZYMjFpYzNSaGRHVmZkRVZGQUFCa1B3QUFrQ3dBQUFBQUFBQUNBQUFBTENzQUFBSUFBQUE0TEFBQUFnQUFBQUFBQUFBb0xRQUFhd0FBQUlvQUFBQkpBQUFBaXdBQUFJd0FBQUNOQUFBQWpnQUFBSThBQUFDUUFBQUFrUUFBQUU1VGRETmZYekkzWTI5a1pXTjJkRWxFYVdNeE1WOWZiV0p6ZEdGMFpWOTBSVVVBQUdRL0FBQUVMUUFBQUFBQUFBSUFBQUFzS3dBQUFnQUFBRGdzQUFBQ0FBQUFUbE4wTTE5Zk1qZGpiMlJsWTNaMFNYZGpNVEZmWDIxaWMzUmhkR1ZmZEVWRkFBQUFaRDhBQUVndEFBQUFBQUFBQWdBQUFDd3JBQUFDQUFBQU9Dd0FBQUlBQUFCT1UzUXpYMTh5Tm14dlkyRnNaVFZmWDJsdGNFVUFBQUFJUHdBQWpDMEFBQ3dyQUFCT1UzUXpYMTh5TjJOdmJHeGhkR1ZKWTBWRkFBZy9BQUN3TFFBQUxDc0FBRTVUZEROZlh6STNZMjlzYkdGMFpVbDNSVVVBQ0Q4QUFOQXRBQUFzS3dBQVRsTjBNMTlmTWpWamRIbHdaVWxqUlVVQUFBQmtQd0FBOEMwQUFBQUFBQUFDQUFBQUxDc0FBQUlBQUFDa0t3QUFBZ0FBQUU1VGRETmZYekk0Ym5WdGNIVnVZM1JKWTBWRkFBQUFBQWcvQUFBa0xnQUFMQ3NBQUU1VGRETmZYekk0Ym5WdGNIVnVZM1JKZDBWRkFBQUFBQWcvQUFCSUxnQUFMQ3NBQUFBQUFBREVMUUFBa2dBQUFKTUFBQUJKQUFBQWxBQUFBSlVBQUFDV0FBQUFBQUFBQU9RdEFBQ1hBQUFBbUFBQUFFa0FBQUNaQUFBQW1nQUFBSnNBQUFBQUFBQUFnQzhBQUdzQUFBQ2NBQUFBU1FBQUFKMEFBQUNlQUFBQW53QUFBS0FBQUFDaEFBQUFvZ0FBQUtNQUFBQ2tBQUFBcFFBQUFLWUFBQUNuQUFBQVRsTjBNMTlmTWpkdWRXMWZaMlYwU1dOT1UxOHhPV2x6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgyZGxkRWxqUlVVQVRsTjBNMTlmTWpFMFgxOXVkVzFmWjJWMFgySmhjMlZGQUFEZ1BnQUFSaThBQUdRL0FBQXdMd0FBQUFBQUFBRUFBQUJnTHdBQUFBQUFBR1EvQUFEc0xnQUFBQUFBQUFJQUFBQXNLd0FBQWdBQUFHZ3ZBRUdrM3dBTHlnRlVNQUFBYXdBQUFLZ0FBQUJKQUFBQXFRQUFBS29BQUFDckFBQUFyQUFBQUswQUFBQ3VBQUFBcndBQUFMQUFBQUN4QUFBQXNnQUFBTE1BQUFCT1UzUXpYMTh5TjI1MWJWOW5aWFJKZDA1VFh6RTVhWE4wY21WaGJXSjFabDlwZEdWeVlYUnZja2wzVGxOZk1URmphR0Z5WDNSeVlXbDBjMGwzUlVWRlJVVkZBRTVUZEROZlh6STVYMTl1ZFcxZloyVjBTWGRGUlFBQUFHUS9BQUFrTUFBQUFBQUFBQUVBQUFCZ0x3QUFBQUFBQUdRL0FBRGdMd0FBQUFBQUFBSUFBQUFzS3dBQUFnQUFBRHd3QUVINDRBQUwzZ0U4TVFBQWF3QUFBTFFBQUFCSkFBQUF0UUFBQUxZQUFBQzNBQUFBdUFBQUFMa0FBQUM2QUFBQXV3QUFBTHdBQUFCT1UzUXpYMTh5TjI1MWJWOXdkWFJKWTA1VFh6RTViM04wY21WaGJXSjFabDlwZEdWeVlYUnZja2xqVGxOZk1URmphR0Z5WDNSeVlXbDBjMGxqUlVWRlJVVkZBRTVUZEROZlh6STVYMTl1ZFcxZmNIVjBTV05GUlFCT1UzUXpYMTh5TVRSZlgyNTFiVjl3ZFhSZlltRnpaVVVBQU9BK0FBQUNNUUFBWkQ4QUFPd3dBQUFBQUFBQUFRQUFBQnd4QUFBQUFBQUFaRDhBQUtnd0FBQUFBQUFBQWdBQUFDd3JBQUFDQUFBQUpERUFRZURpQUF1K0FRUXlBQUJyQUFBQXZRQUFBRWtBQUFDK0FBQUF2d0FBQU1BQUFBREJBQUFBd2dBQUFNTUFBQURFQUFBQXhRQUFBRTVUZEROZlh6STNiblZ0WDNCMWRFbDNUbE5mTVRsdmMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVVZGUlVVQVRsTjBNMTlmTWpsZlgyNTFiVjl3ZFhSSmQwVkZBQUFBWkQ4QUFOUXhBQUFBQUFBQUFRQUFBQnd4QUFBQUFBQUFaRDhBQUpBeEFBQUFBQUFBQWdBQUFDd3JBQUFDQUFBQTdERUFRYWprQUF1YUN3UXpBQURHQUFBQXh3QUFBRWtBQUFESUFBQUF5UUFBQU1vQUFBRExBQUFBekFBQUFNMEFBQURPQUFBQStQLy8vd1F6QUFEUEFBQUEwQUFBQU5FQUFBRFNBQUFBMHdBQUFOUUFBQURWQUFBQVRsTjBNMTlmTWpoMGFXMWxYMmRsZEVsalRsTmZNVGxwYzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNamwwYVcxbFgySmhjMlZGQU9BK0FBQzlNZ0FBVGxOME0xOWZNakl3WDE5MGFXMWxYMmRsZEY5algzTjBiM0poWjJWSlkwVkZBQUFBNEQ0QUFOZ3lBQUJrUHdBQWVESUFBQUFBQUFBREFBQUFMQ3NBQUFJQUFBRFFNZ0FBQWdBQUFQd3lBQUFBQ0FBQUFBQUFBUEF6QUFEV0FBQUExd0FBQUVrQUFBRFlBQUFBMlFBQUFOb0FBQURiQUFBQTNBQUFBTjBBQUFEZUFBQUErUC8vLy9BekFBRGZBQUFBNEFBQUFPRUFBQURpQUFBQTR3QUFBT1FBQUFEbEFBQUFUbE4wTTE5Zk1qaDBhVzFsWDJkbGRFbDNUbE5mTVRscGMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVVZGUlVVQVRsTjBNMTlmTWpJd1gxOTBhVzFsWDJkbGRGOWpYM04wYjNKaFoyVkpkMFZGQUFEZ1BnQUF4VE1BQUdRL0FBQ0FNd0FBQUFBQUFBTUFBQUFzS3dBQUFnQUFBTkF5QUFBQ0FBQUE2RE1BQUFBSUFBQUFBQUFBbERRQUFPWUFBQURuQUFBQVNRQUFBT2dBQUFCT1UzUXpYMTh5T0hScGJXVmZjSFYwU1dOT1UxOHhPVzl6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlNVEJmWDNScGJXVmZjSFYwUlFBQUFPQStBQUIxTkFBQVpEOEFBREEwQUFBQUFBQUFBZ0FBQUN3ckFBQUNBQUFBakRRQUFBQUlBQUFBQUFBQUZEVUFBT2tBQUFEcUFBQUFTUUFBQU9zQUFBQk9VM1F6WDE4eU9IUnBiV1ZmY0hWMFNYZE9VMTh4T1c5emRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSmQwNVRYekV4WTJoaGNsOTBjbUZwZEhOSmQwVkZSVVZGUlFBQUFBQmtQd0FBekRRQUFBQUFBQUFDQUFBQUxDc0FBQUlBQUFDTU5BQUFBQWdBQUFBQUFBQ29OUUFBYXdBQUFPd0FBQUJKQUFBQTdRQUFBTzRBQUFEdkFBQUE4QUFBQVBFQUFBRHlBQUFBOHdBQUFQUUFBQUQxQUFBQVRsTjBNMTlmTWpFd2JXOXVaWGx3ZFc1amRFbGpUR0l3UlVWRkFFNVRkRE5mWHpJeE1HMXZibVY1WDJKaGMyVkZBQUFBQU9BK0FBQ0lOUUFBWkQ4QUFHdzFBQUFBQUFBQUFnQUFBQ3dyQUFBQ0FBQUFvRFVBQUFJQUFBQUFBQUFBSERZQUFHc0FBQUQyQUFBQVNRQUFBUGNBQUFENEFBQUErUUFBQVBvQUFBRDdBQUFBL0FBQUFQMEFBQUQrQUFBQS93QUFBRTVUZEROZlh6SXhNRzF2Ym1WNWNIVnVZM1JKWTB4aU1VVkZSUUJrUHdBQUFEWUFBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQ2dOUUFBQWdBQUFBQUFBQUNRTmdBQWF3QUFBQUFCQUFCSkFBQUFBUUVBQUFJQkFBQURBUUFBQkFFQUFBVUJBQUFHQVFBQUJ3RUFBQWdCQUFBSkFRQUFUbE4wTTE5Zk1qRXdiVzl1Wlhsd2RXNWpkRWwzVEdJd1JVVkZBR1EvQUFCME5nQUFBQUFBQUFJQUFBQXNLd0FBQWdBQUFLQTFBQUFDQUFBQUFBQUFBQVEzQUFCckFBQUFDZ0VBQUVrQUFBQUxBUUFBREFFQUFBMEJBQUFPQVFBQUR3RUFBQkFCQUFBUkFRQUFFZ0VBQUJNQkFBQk9VM1F6WDE4eU1UQnRiMjVsZVhCMWJtTjBTWGRNWWpGRlJVVUFaRDhBQU9nMkFBQUFBQUFBQWdBQUFDd3JBQUFDQUFBQW9EVUFBQUlBQUFBQUFBQUFxRGNBQUdzQUFBQVVBUUFBU1FBQUFCVUJBQUFXQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjluWlhSSlkwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmWjJWMFNXTkZSUUFBNEQ0QUFJWTNBQUJrUHdBQVFEY0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQ2dOd0JCek84QUM1b0JURGdBQUdzQUFBQVhBUUFBU1FBQUFCZ0JBQUFaQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjluWlhSSmQwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmWjJWMFNYZEZSUUFBNEQ0QUFDbzRBQUJrUHdBQTVEY0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQkVPQUJCOFBBQUM1b0I4RGdBQUdzQUFBQWFBUUFBU1FBQUFCc0JBQUFjQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSlkwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNXTkZSUUFBNEQ0QUFNNDRBQUJrUHdBQWlEZ0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBRG9PQUJCbFBJQUM1b0JsRGtBQUdzQUFBQWRBUUFBU1FBQUFCNEJBQUFmQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSmQwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNYZEZSUUFBNEQ0QUFISTVBQUJrUHdBQUxEa0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQ01PUUJCdVBNQUM3a0lERG9BQUdzQUFBQWdBUUFBU1FBQUFDRUJBQUFpQVFBQUl3RUFBRTVUZEROZlh6STRiV1Z6YzJGblpYTkpZMFZGQUU1VGRETmZYekl4TTIxbGMzTmhaMlZ6WDJKaGMyVkZBQUFBQU9BK0FBRHBPUUFBWkQ4QUFOUTVBQUFBQUFBQUFnQUFBQ3dyQUFBQ0FBQUFCRG9BQUFJQUFBQUFBQUFBWkRvQUFHc0FBQUFrQVFBQVNRQUFBQ1VCQUFBbUFRQUFKd0VBQUU1VGRETmZYekk0YldWemMyRm5aWE5KZDBWRkFBQUFBR1EvQUFCTU9nQUFBQUFBQUFJQUFBQXNLd0FBQWdBQUFBUTZBQUFDQUFBQVV3QUFBSFVBQUFCdUFBQUFaQUFBQUdFQUFBQjVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBZFFBQUFHVUFBQUJ6QUFBQVpBQUFBR0VBQUFCNUFBQUFBQUFBQUZjQUFBQmxBQUFBWkFBQUFHNEFBQUJsQUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBYUFBQUFIVUFBQUJ5QUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUdFQUFBQjBBQUFBZFFBQUFISUFBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUhVQUFBQnVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBQUFBQUFCVUFBQUFkUUFBQUdVQUFBQUFBQUFBVndBQUFHVUFBQUJrQUFBQUFBQUFBRlFBQUFCb0FBQUFkUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUFBQUFBQVV3QUFBR0VBQUFCMEFBQUFBQUFBQUVvQUFBQmhBQUFBYmdBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFSZ0FBQUdVQUFBQmlBQUFBY2dBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFUUUFBQUdFQUFBQnlBQUFBWXdBQUFHZ0FBQUFBQUFBQVFRQUFBSEFBQUFCeUFBQUFhUUFBQUd3QUFBQUFBQUFBVFFBQUFHRUFBQUI1QUFBQUFBQUFBRW9BQUFCMUFBQUFiZ0FBQUdVQUFBQUFBQUFBU2dBQUFIVUFBQUJzQUFBQWVRQUFBQUFBQUFCQkFBQUFkUUFBQUdjQUFBQjFBQUFBY3dBQUFIUUFBQUFBQUFBQVV3QUFBR1VBQUFCd0FBQUFkQUFBQUdVQUFBQnRBQUFBWWdBQUFHVUFBQUJ5QUFBQUFBQUFBRThBQUFCakFBQUFkQUFBQUc4QUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVJBQUFBR1VBQUFCakFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVNnQUFBR0VBQUFCdUFBQUFBQUFBQUVZQUFBQmxBQUFBWWdBQUFBQUFBQUJOQUFBQVlRQUFBSElBQUFBQUFBQUFRUUFBQUhBQUFBQnlBQUFBQUFBQUFFb0FBQUIxQUFBQWJnQUFBQUFBQUFCS0FBQUFkUUFBQUd3QUFBQUFBQUFBUVFBQUFIVUFBQUJuQUFBQUFBQUFBRk1BQUFCbEFBQUFjQUFBQUFBQUFBQlBBQUFBWXdBQUFIUUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFBQUFBQUVRQUFBQmxBQUFBWXdBQUFBQUFBQUJCQUFBQVRRQUFBQUFBQUFCUUFBQUFUUUJCL1BzQUMrSUUvRElBQU04QUFBRFFBQUFBMFFBQUFOSUFBQURUQUFBQTFBQUFBTlVBQUFBQUFBQUE2RE1BQU44QUFBRGdBQUFBNFFBQUFPSUFBQURqQUFBQTVBQUFBT1VBQUFBQUFBQUFjRDRBQUNnQkFBQXBBUUFBS2dFQUFFNVRkRE5mWHpJeE5GOWZjMmhoY21Wa1gyTnZkVzUwUlFBQUFBRGdQZ0FBVkQ0QUFFNHhNRjlmWTNoNFlXSnBkakV4Tmw5ZmMyaHBiVjkwZVhCbFgybHVabTlGQUFBQUFBZy9BQUI0UGdBQVdFQUFBRTR4TUY5ZlkzaDRZV0pwZGpFeE4xOWZZMnhoYzNOZmRIbHdaVjlwYm1adlJRQUFBQWcvQUFDb1BnQUFuRDRBQUFBQUFBRE1QZ0FBS3dFQUFDd0JBQUF0QVFBQUxnRUFBQzhCQUFBd0FRQUFNUUVBQURJQkFBQUFBQUFBVUQ4QUFDc0JBQUF6QVFBQUxRRUFBQzRCQUFBdkFRQUFOQUVBQURVQkFBQTJBUUFBVGpFd1gxOWplSGhoWW1sMk1USXdYMTl6YVY5amJHRnpjMTkwZVhCbFgybHVabTlGQUFBQUFBZy9BQUFvUHdBQXpENEFBQUFBQUFDc1B3QUFLd0VBQURjQkFBQXRBUUFBTGdFQUFDOEJBQUE0QVFBQU9RRUFBRG9CQUFCT01UQmZYMk40ZUdGaWFYWXhNakZmWDNadGFWOWpiR0Z6YzE5MGVYQmxYMmx1Wm05RkFBQUFDRDhBQUlRL0FBRE1QZ0FBQUFBQUFOdy9BQUE3QVFBQVBBRUFBRDBCQUFCVGREbGxlR05sY0hScGIyNEFBQUFBNEQ0QUFNdy9BQUFBQUFBQUNFQUFBQU1BQUFBK0FRQUFQd0VBQUZOME1URnNiMmRwWTE5bGNuSnZjZ0FJUHdBQStEOEFBTncvQUFBQUFBQUFQRUFBQUFNQUFBQkFBUUFBUHdFQUFGTjBNVEpzWlc1bmRHaGZaWEp5YjNJQUFBQUFDRDhBQUNoQUFBQUlRQUFBVTNRNWRIbHdaVjlwYm1adkFBQUFBT0ErQUFCSVFBQkI0SUFCQ3dLUWF3PT0iKSxXRD0oWkQ9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuY3VycmVudFNjcmlwdD9kb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYzp2b2lkIDAsZnVuY3Rpb24oQSl7KEE9QXx8e30pLmluc3RhbnRpYXRlV2FzbT1mdW5jdGlvbihBLGcpe09EKEEpLnRoZW4oKGZ1bmN0aW9uKEEpe2coe2V4cG9ydHM6QS5leHBvcnRzfSl9KSl9O3ZhciBnLEksQj12b2lkIDAhPT1BP0E6e307Qi5yZWFkeT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSxCKXtnPUEsST1CfSkpO3ZhciBRLEM9T2JqZWN0LmFzc2lnbih7fSxCKSxFPSIuL3RoaXMucHJvZ3JhbSIsaT0hMCx0PSIiO3Q9c2VsZi5sb2NhdGlvbi5ocmVmLFpEJiYodD1aRCksdD0wIT09dC5pbmRleE9mKCJibG9iOiIpP3Quc3Vic3RyKDAsdC5yZXBsYWNlKC9bPyNdLiovLCIiKS5sYXN0SW5kZXhPZigiLyIpKzEpOiIiLFE9ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBnLm9wZW4oIkdFVCIsQSwhMSksZy5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixnLnNlbmQobnVsbCksbmV3IFVpbnQ4QXJyYXkoZy5yZXNwb25zZSl9LEIucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7dmFyIG8sZSxuPUIucHJpbnRFcnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24oQixDKSxDPW51bGwsQi5hcmd1bWVudHMmJkIuYXJndW1lbnRzLEIudGhpc1Byb2dyYW0mJihFPUIudGhpc1Byb2dyYW0pLEIucXVpdCYmQi5xdWl0LEIud2FzbUJpbmFyeSYmKG89Qi53YXNtQmluYXJ5KSxCLm5vRXhpdFJ1bnRpbWUsIm9iamVjdCIhPSgidW5kZWZpbmVkIj09dHlwZW9mIFdlYkFzc2VtYmx5PyJ1bmRlZmluZWQiOmVuKFdlYkFzc2VtYmx5KSkmJlUoIm5vIG5hdGl2ZSB3YXNtIHN1cHBvcnQgZGV0ZWN0ZWQiKTt2YXIgcixhLHMsYyxoLEQ9ITEseT0idW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVyP25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMDtmdW5jdGlvbiBmKEEsZyl7cmV0dXJuIEE/ZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1nK0ksUT1nO0FbUV0mJiEoUT49Qik7KSsrUTtpZihRLWc+MTYmJkEuc3ViYXJyYXkmJnkpcmV0dXJuIHkuZGVjb2RlKEEuc3ViYXJyYXkoZyxRKSk7Zm9yKHZhciBDPSIiO2c8UTspe3ZhciBFPUFbZysrXTtpZigxMjgmRSl7dmFyIGk9NjMmQVtnKytdO2lmKDE5MiE9KDIyNCZFKSl7dmFyIHQ9NjMmQVtnKytdO2lmKChFPTIyND09KDI0MCZFKT8oMTUmRSk8PDEyfGk8PDZ8dDooNyZFKTw8MTh8aTw8MTJ8dDw8Nnw2MyZBW2crK10pPDY1NTM2KUMrPVN0cmluZy5mcm9tQ2hhckNvZGUoRSk7ZWxzZXt2YXIgbz1FLTY1NTM2O0MrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8bz4+MTAsNTYzMjB8MTAyMyZvKX19ZWxzZSBDKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZFKTw8NnxpKX1lbHNlIEMrPVN0cmluZy5mcm9tQ2hhckNvZGUoRSl9cmV0dXJuIEN9KHMsQSxnKToiIn1mdW5jdGlvbiB3KEEsZyxJLEIpe2lmKCEoQj4wKSlyZXR1cm4gMDtmb3IodmFyIFE9SSxDPUkrQi0xLEU9MDtFPEEubGVuZ3RoOysrRSl7dmFyIGk9QS5jaGFyQ29kZUF0KEUpO2lmKGk+PTU1Mjk2JiZpPD01NzM0MyYmKGk9NjU1MzYrKCgxMDIzJmkpPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytFKSksaTw9MTI3KXtpZihJPj1DKWJyZWFrO2dbSSsrXT1pfWVsc2UgaWYoaTw9MjA0Nyl7aWYoSSsxPj1DKWJyZWFrO2dbSSsrXT0xOTJ8aT4+NixnW0krK109MTI4fDYzJml9ZWxzZSBpZihpPD02NTUzNSl7aWYoSSsyPj1DKWJyZWFrO2dbSSsrXT0yMjR8aT4+MTIsZ1tJKytdPTEyOHxpPj42JjYzLGdbSSsrXT0xMjh8NjMmaX1lbHNle2lmKEkrMz49QylicmVhaztnW0krK109MjQwfGk+PjE4LGdbSSsrXT0xMjh8aT4+MTImNjMsZ1tJKytdPTEyOHxpPj42JjYzLGdbSSsrXT0xMjh8NjMmaX19cmV0dXJuIGdbSV09MCxJLVF9ZnVuY3Rpb24gdShBKXtmb3IodmFyIGc9MCxJPTA7STxBLmxlbmd0aDsrK0kpe3ZhciBCPUEuY2hhckNvZGVBdChJKTtCPj01NTI5NiYmQjw9NTczNDMmJihCPTY1NTM2KygoMTAyMyZCKTw8MTApfDEwMjMmQS5jaGFyQ29kZUF0KCsrSSkpLEI8PTEyNz8rK2c6Zys9Qjw9MjA0Nz8yOkI8PTY1NTM1PzM6NH1yZXR1cm4gZ31mdW5jdGlvbiBGKEEpe3I9QSxCLkhFQVA4PWE9bmV3IEludDhBcnJheShBKSxCLkhFQVAxNj1uZXcgSW50MTZBcnJheShBKSxCLkhFQVAzMj1jPW5ldyBJbnQzMkFycmF5KEEpLEIuSEVBUFU4PXM9bmV3IFVpbnQ4QXJyYXkoQSksQi5IRUFQVTE2PW5ldyBVaW50MTZBcnJheShBKSxCLkhFQVBVMzI9bmV3IFVpbnQzMkFycmF5KEEpLEIuSEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KEEpLEIuSEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KEEpfUIuSU5JVElBTF9NRU1PUlk7dmFyIEc9W10sZD1bXSxSPVtdLGw9MCxrPW51bGw7ZnVuY3Rpb24gVShBKXtCLm9uQWJvcnQmJkIub25BYm9ydChBKSxuKEE9IkFib3J0ZWQoIitBKyIpIiksRD0hMCxBKz0iLiBCdWlsZCB3aXRoIC1zIEFTU0VSVElPTlM9MSBmb3IgbW9yZSBpbmZvLiI7dmFyIGc9bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcihBKTt0aHJvdyBJKGcpLGd9Qi5wcmVsb2FkZWRJbWFnZXM9e30sQi5wcmVsb2FkZWRBdWRpb3M9e307dmFyIFMsTixNPSJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIjtmdW5jdGlvbiBZKEEpe3JldHVybiBBLnN0YXJ0c1dpdGgoTSl9ZnVuY3Rpb24gSChBKXt0cnl7aWYoQT09UyYmbylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobyk7aWYoUSlyZXR1cm4gUShBKTt0aHJvdyJib3RoIGFzeW5jIGFuZCBzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZCJ9Y2F0Y2goZyl7VShnKX19ZnVuY3Rpb24gcChBKXtmb3IoO0EubGVuZ3RoPjA7KXt2YXIgZz1BLnNoaWZ0KCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcpe3ZhciBJPWcuZnVuYzsibnVtYmVyIj09dHlwZW9mIEk/dm9pZCAwPT09Zy5hcmc/SihJKSgpOkooSSkoZy5hcmcpOkkodm9pZCAwPT09Zy5hcmc/bnVsbDpnLmFyZyl9ZWxzZSBnKEIpfX1mdW5jdGlvbiBKKEEpe3JldHVybiBoLmdldChBKX1mdW5jdGlvbiBMKEEpe3RoaXMuZXhjUHRyPUEsdGhpcy5wdHI9QS0xNix0aGlzLnNldF90eXBlPWZ1bmN0aW9uKEEpe2NbdGhpcy5wdHIrND4+Ml09QX0sdGhpcy5nZXRfdHlwZT1mdW5jdGlvbigpe3JldHVybiBjW3RoaXMucHRyKzQ+PjJdfSx0aGlzLnNldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKEEpe2NbdGhpcy5wdHIrOD4+Ml09QX0sdGhpcy5nZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbigpe3JldHVybiBjW3RoaXMucHRyKzg+PjJdfSx0aGlzLnNldF9yZWZjb3VudD1mdW5jdGlvbihBKXtjW3RoaXMucHRyPj4yXT1BfSx0aGlzLnNldF9jYXVnaHQ9ZnVuY3Rpb24oQSl7QT1BPzE6MCxhW3RoaXMucHRyKzEyPj4wXT1BfSx0aGlzLmdldF9jYXVnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9YVt0aGlzLnB0cisxMj4+MF19LHRoaXMuc2V0X3JldGhyb3duPWZ1bmN0aW9uKEEpe0E9QT8xOjAsYVt0aGlzLnB0cisxMz4+MF09QX0sdGhpcy5nZXRfcmV0aHJvd249ZnVuY3Rpb24oKXtyZXR1cm4gMCE9YVt0aGlzLnB0cisxMz4+MF19LHRoaXMuaW5pdD1mdW5jdGlvbihBLGcpe3RoaXMuc2V0X3R5cGUoQSksdGhpcy5zZXRfZGVzdHJ1Y3RvcihnKSx0aGlzLnNldF9yZWZjb3VudCgwKSx0aGlzLnNldF9jYXVnaHQoITEpLHRoaXMuc2V0X3JldGhyb3duKCExKX0sdGhpcy5hZGRfcmVmPWZ1bmN0aW9uKCl7dmFyIEE9Y1t0aGlzLnB0cj4+Ml07Y1t0aGlzLnB0cj4+Ml09QSsxfSx0aGlzLnJlbGVhc2VfcmVmPWZ1bmN0aW9uKCl7dmFyIEE9Y1t0aGlzLnB0cj4+Ml07cmV0dXJuIGNbdGhpcy5wdHI+PjJdPUEtMSwxPT09QX19ZnVuY3Rpb24gdihBKXt0cnl7cmV0dXJuIGUuZ3JvdyhBLXIuYnl0ZUxlbmd0aCs2NTUzNT4+PjE2KSxGKGUuYnVmZmVyKSwxfWNhdGNoKGcpe319WShTPSJhdy53YXNtIil8fChOPVMsUz1CLmxvY2F0ZUZpbGU/Qi5sb2NhdGVGaWxlKE4sdCk6dCtOKTt2YXIgSz17fTtmdW5jdGlvbiB4KCl7aWYoIXguc3RyaW5ncyl7dmFyIEE9e1VTRVI6IndlYl91c2VyIixMT0dOQU1FOiJ3ZWJfdXNlciIsUEFUSDoiLyIsUFdEOiIvIixIT01FOiIvaG9tZS93ZWJfdXNlciIsTEFORzooIm9iamVjdCI9PSgidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcj8idW5kZWZpbmVkIjplbihuYXZpZ2F0b3IpKSYmbmF2aWdhdG9yLmxhbmd1YWdlcyYmbmF2aWdhdG9yLmxhbmd1YWdlc1swXXx8IkMiKS5yZXBsYWNlKCItIiwiXyIpKyIuVVRGLTgiLF86RXx8Ii4vdGhpcy5wcm9ncmFtIn07Zm9yKHZhciBnIGluIEspdm9pZCAwPT09S1tnXT9kZWxldGUgQVtnXTpBW2ddPUtbZ107dmFyIEk9W107Zm9yKHZhciBnIGluIEEpSS5wdXNoKGcrIj0iK0FbZ10pO3guc3RyaW5ncz1JfXJldHVybiB4LnN0cmluZ3N9ZnVuY3Rpb24gcShBKXtyZXR1cm4gQSU0PT0wJiYoQSUxMDAhPTB8fEElNDAwPT0wKX1mdW5jdGlvbiBtKEEsZyl7Zm9yKHZhciBJPTAsQj0wO0I8PWc7SSs9QVtCKytdKTtyZXR1cm4gSX12YXIgYj1bMzEsMjksMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLFQ9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtmdW5jdGlvbiBqKEEsZyl7Zm9yKHZhciBJPW5ldyBEYXRlKEEuZ2V0VGltZSgpKTtnPjA7KXt2YXIgQj1xKEkuZ2V0RnVsbFllYXIoKSksUT1JLmdldE1vbnRoKCksQz0oQj9iOlQpW1FdO2lmKCEoZz5DLUkuZ2V0RGF0ZSgpKSlyZXR1cm4gSS5zZXREYXRlKEkuZ2V0RGF0ZSgpK2cpLEk7Zy09Qy1JLmdldERhdGUoKSsxLEkuc2V0RGF0ZSgxKSxRPDExP0kuc2V0TW9udGgoUSsxKTooSS5zZXRNb250aCgwKSxJLnNldEZ1bGxZZWFyKEkuZ2V0RnVsbFllYXIoKSsxKSl9cmV0dXJuIEl9ZnVuY3Rpb24gWihBLGcsSSxCKXt2YXIgUT1jW0IrNDA+PjJdLEM9e3RtX3NlYzpjW0I+PjJdLHRtX21pbjpjW0IrND4+Ml0sdG1faG91cjpjW0IrOD4+Ml0sdG1fbWRheTpjW0IrMTI+PjJdLHRtX21vbjpjW0IrMTY+PjJdLHRtX3llYXI6Y1tCKzIwPj4yXSx0bV93ZGF5OmNbQisyND4+Ml0sdG1feWRheTpjW0IrMjg+PjJdLHRtX2lzZHN0OmNbQiszMj4+Ml0sdG1fZ210b2ZmOmNbQiszNj4+Ml0sdG1fem9uZTpRP2YoUSk6IiJ9LEU9ZihJKSxpPXsiJWMiOiIlYSAlYiAlZCAlSDolTTolUyAlWSIsIiVEIjoiJW0vJWQvJXkiLCIlRiI6IiVZLSVtLSVkIiwiJWgiOiIlYiIsIiVyIjoiJUk6JU06JVMgJXAiLCIlUiI6IiVIOiVNIiwiJVQiOiIlSDolTTolUyIsIiV4IjoiJW0vJWQvJXkiLCIlWCI6IiVIOiVNOiVTIiwiJUVjIjoiJWMiLCIlRUMiOiIlQyIsIiVFeCI6IiVtLyVkLyV5IiwiJUVYIjoiJUg6JU06JVMiLCIlRXkiOiIleSIsIiVFWSI6IiVZIiwiJU9kIjoiJWQiLCIlT2UiOiIlZSIsIiVPSCI6IiVIIiwiJU9JIjoiJUkiLCIlT20iOiIlbSIsIiVPTSI6IiVNIiwiJU9TIjoiJVMiLCIlT3UiOiIldSIsIiVPVSI6IiVVIiwiJU9WIjoiJVYiLCIlT3ciOiIldyIsIiVPVyI6IiVXIiwiJU95IjoiJXkifTtmb3IodmFyIHQgaW4gaSlFPUUucmVwbGFjZShuZXcgUmVnRXhwKHQsImciKSxpW3RdKTt2YXIgbz1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sZT1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07ZnVuY3Rpb24gbihBLGcsSSl7Zm9yKHZhciBCPSJudW1iZXIiPT10eXBlb2YgQT9BLnRvU3RyaW5nKCk6QXx8IiI7Qi5sZW5ndGg8ZzspQj1JWzBdK0I7cmV0dXJuIEJ9ZnVuY3Rpb24gcihBLGcpe3JldHVybiBuKEEsZywiMCIpfWZ1bmN0aW9uIHMoQSxnKXtmdW5jdGlvbiBJKEEpe3JldHVybiBBPDA/LTE6QT4wPzE6MH12YXIgQjtyZXR1cm4gMD09PShCPUkoQS5nZXRGdWxsWWVhcigpLWcuZ2V0RnVsbFllYXIoKSkpJiYwPT09KEI9SShBLmdldE1vbnRoKCktZy5nZXRNb250aCgpKSkmJihCPUkoQS5nZXREYXRlKCktZy5nZXREYXRlKCkpKSxCfWZ1bmN0aW9uIGgoQSl7c3dpdGNoKEEuZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLTEsMTEsMjkpO2Nhc2UgMTpyZXR1cm4gQTtjYXNlIDI6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLDAsMik7Y2FzZSA0OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksMCwxKTtjYXNlIDU6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMwKX19ZnVuY3Rpb24gRChBKXt2YXIgZz1qKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KSxJPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSwwLDQpLEI9bmV3IERhdGUoZy5nZXRGdWxsWWVhcigpKzEsMCw0KSxRPWgoSSksQz1oKEIpO3JldHVybiBzKFEsZyk8PTA/cyhDLGcpPD0wP2cuZ2V0RnVsbFllYXIoKSsxOmcuZ2V0RnVsbFllYXIoKTpnLmdldEZ1bGxZZWFyKCktMX12YXIgeT17IiVhIjpmdW5jdGlvbihBKXtyZXR1cm4gb1tBLnRtX3dkYXldLnN1YnN0cmluZygwLDMpfSwiJUEiOmZ1bmN0aW9uKEEpe3JldHVybiBvW0EudG1fd2RheV19LCIlYiI6ZnVuY3Rpb24oQSl7cmV0dXJuIGVbQS50bV9tb25dLnN1YnN0cmluZygwLDMpfSwiJUIiOmZ1bmN0aW9uKEEpe3JldHVybiBlW0EudG1fbW9uXX0sIiVDIjpmdW5jdGlvbihBKXtyZXR1cm4gcigoQS50bV95ZWFyKzE5MDApLzEwMHwwLDIpfSwiJWQiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1fbWRheSwyKX0sIiVlIjpmdW5jdGlvbihBKXtyZXR1cm4gbihBLnRtX21kYXksMiwiICIpfSwiJWciOmZ1bmN0aW9uKEEpe3JldHVybiBEKEEpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJUciOmZ1bmN0aW9uKEEpe3JldHVybiBEKEEpfSwiJUgiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1faG91ciwyKX0sIiVJIjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2hvdXI7cmV0dXJuIDA9PWc/Zz0xMjpnPjEyJiYoZy09MTIpLHIoZywyKX0sIiVqIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21kYXkrbShxKEEudG1feWVhcisxOTAwKT9iOlQsQS50bV9tb24tMSksMyl9LCIlbSI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9tb24rMSwyKX0sIiVNIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21pbiwyKX0sIiVuIjpmdW5jdGlvbigpe3JldHVybiJcbiJ9LCIlcCI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1faG91cj49MCYmQS50bV9ob3VyPDEyPyJBTSI6IlBNIn0sIiVTIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX3NlYywyKX0sIiV0IjpmdW5jdGlvbigpe3JldHVybiJcdCJ9LCIldSI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1fd2RheXx8N30sIiVVIjpmdW5jdGlvbihBKXt2YXIgZz1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEk9MD09PWcuZ2V0RGF5KCk/ZzpqKGcsNy1nLmdldERheSgpKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYocyhJLEIpPDApe3ZhciBRPW0ocShCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09cyhJLGcpPyIwMSI6IjAwIn0sIiVWIjpmdW5jdGlvbihBKXt2YXIgZyxJPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsNCksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMSwwLDQpLFE9aChJKSxDPWgoQiksRT1qKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KTtyZXR1cm4gcyhFLFEpPDA/IjUzIjpzKEMsRSk8PTA/IjAxIjooZz1RLmdldEZ1bGxZZWFyKCk8QS50bV95ZWFyKzE5MDA/QS50bV95ZGF5KzMyLVEuZ2V0RGF0ZSgpOkEudG1feWRheSsxLVEuZ2V0RGF0ZSgpLHIoTWF0aC5jZWlsKGcvNyksMikpfSwiJXciOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3dkYXl9LCIlVyI6ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IERhdGUoQS50bV95ZWFyLDAsMSksST0xPT09Zy5nZXREYXkoKT9nOmooZywwPT09Zy5nZXREYXkoKT8xOjctZy5nZXREYXkoKSsxKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYocyhJLEIpPDApe3ZhciBRPW0ocShCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09cyhJLGcpPyIwMSI6IjAwIn0sIiV5IjpmdW5jdGlvbihBKXtyZXR1cm4oQS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJVkiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3llYXIrMTkwMH0sIiV6IjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2dtdG9mZixJPWc+PTA7cmV0dXJuIGc9KGc9TWF0aC5hYnMoZykvNjApLzYwKjEwMCtnJTYwLChJPyIrIjoiLSIpK1N0cmluZygiMDAwMCIrZykuc2xpY2UoLTQpfSwiJVoiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3pvbmV9LCIlJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fTtmb3IodmFyIHQgaW4gRT1FLnJlcGxhY2UoLyUlL2csIlwwXDAiKSx5KUUuaW5jbHVkZXModCkmJihFPUUucmVwbGFjZShuZXcgUmVnRXhwKHQsImciKSx5W3RdKEMpKSk7dmFyIHcsdSxGPU8oRT1FLnJlcGxhY2UoL1wwXDAvZywiJSIpLCExKTtyZXR1cm4gRi5sZW5ndGg+Zz8wOih3PUYsdT1BLGEuc2V0KHcsdSksRi5sZW5ndGgtMSl9ZnVuY3Rpb24gTyhBLGcsSSl7dmFyIEI9ST4wP0k6dShBKSsxLFE9bmV3IEFycmF5KEIpLEM9dyhBLFEsMCxRLmxlbmd0aCk7cmV0dXJuIGcmJihRLmxlbmd0aD1DKSxRfXZhciBXPXtoOmZ1bmN0aW9uKEEpe3JldHVybiBYKEErMTYpKzE2fSxnOmZ1bmN0aW9uKEEsZyxJKXt0aHJvdyBuZXcgTChBKS5pbml0KGcsSSksQX0sYTpmdW5jdGlvbigpe1UoIiIpfSxmOmZ1bmN0aW9uKEEsZyxJKXtzLmNvcHlXaXRoaW4oQSxnLGcrSSl9LGU6ZnVuY3Rpb24oQSl7dmFyIGc9cy5sZW5ndGgsST0yMTQ3NDgzNjQ4O2lmKChBPj4+PTApPkkpcmV0dXJuITE7Zm9yKHZhciBCLFEsQz0xO0M8PTQ7Qyo9Mil7dmFyIEU9ZyooMSsuMi9DKTtpZihFPU1hdGgubWluKEUsQSsxMDA2NjMyOTYpLHYoTWF0aC5taW4oSSwoQj1NYXRoLm1heChBLEUpKSsoKFE9NjU1MzYpLUIlUSklUSkpKXJldHVybiEwfXJldHVybiExfSxjOmZ1bmN0aW9uKEEsZyl7dmFyIEk9MDtyZXR1cm4geCgpLmZvckVhY2goKGZ1bmN0aW9uKEIsUSl7dmFyIEM9ZytJO2NbQSs0KlE+PjJdPUMsZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKWFbZysrPj4wXT1BLmNoYXJDb2RlQXQoQik7SXx8KGFbZz4+MF09MCl9KEIsQyksSSs9Qi5sZW5ndGgrMX0pKSwwfSxkOmZ1bmN0aW9uKEEsZyl7dmFyIEk9eCgpO2NbQT4+Ml09SS5sZW5ndGg7dmFyIEI9MDtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihBKXtCKz1BLmxlbmd0aCsxfSkpLGNbZz4+Ml09QiwwfSxiOmZ1bmN0aW9uKEEsZyxJLEIpe3JldHVybiBaKEEsZyxJLEIpfX07IWZ1bmN0aW9uKCl7dmFyIEE9e2E6V307ZnVuY3Rpb24gZyhBLGcpe3ZhciBJLFE9QS5leHBvcnRzO0IuYXNtPVEsRigoZT1CLmFzbS5pKS5idWZmZXIpLGg9Qi5hc20udCxJPUIuYXNtLmosZC51bnNoaWZ0KEkpLGZ1bmN0aW9uKEEpe2lmKGwtLSxCLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkIubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhsKSwwPT1sJiZrKXt2YXIgZz1rO2s9bnVsbCxnKCl9fSgpfWZ1bmN0aW9uIFEoQSl7ZyhBLmluc3RhbmNlKX1mdW5jdGlvbiBDKGcpe3JldHVybighbyYmaSYmImZ1bmN0aW9uIj09dHlwZW9mIGZldGNoP2ZldGNoKFMse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKChmdW5jdGlvbihBKXtpZighQS5vayl0aHJvdyJmYWlsZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICciK1MrIiciO3JldHVybiBBLmFycmF5QnVmZmVyKCl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7cmV0dXJuIEgoUyl9KSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gSChTKX0pKSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGcsQSl9KSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEF9KSkudGhlbihnLChmdW5jdGlvbihBKXtuKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAiK0EpLFUoQSl9KSl9aWYobCsrLEIubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmQi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKGwpLEIuaW5zdGFudGlhdGVXYXNtKXRyeXtyZXR1cm4gQi5pbnN0YW50aWF0ZVdhc20oQSxnKX1jYXRjaChFKXtyZXR1cm4gbigiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitFKSwhMX0ob3x8ImZ1bmN0aW9uIiE9dHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nfHxZKFMpfHwiZnVuY3Rpb24iIT10eXBlb2YgZmV0Y2g/QyhRKTpmZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGcsQSkudGhlbihRLChmdW5jdGlvbihBKXtyZXR1cm4gbigid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrQSksbigiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSxDKFEpfSkpfSkpKS5jYXRjaChJKX0oKSxCLl9fX3dhc21fY2FsbF9jdG9ycz1mdW5jdGlvbigpe3JldHVybihCLl9fX3dhc21fY2FsbF9jdG9ycz1CLmFzbS5qKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBWLFg9Qi5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKFg9Qi5fbWFsbG9jPUIuYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZnVuY3Rpb24gUChBKXtmdW5jdGlvbiBJKCl7Vnx8KFY9ITAsQi5jYWxsZWRSdW49ITAsRHx8KHAoZCksZyhCKSxCLm9uUnVudGltZUluaXRpYWxpemVkJiZCLm9uUnVudGltZUluaXRpYWxpemVkKCksZnVuY3Rpb24oKXtpZihCLnBvc3RSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBCLnBvc3RSdW4mJihCLnBvc3RSdW49W0IucG9zdFJ1bl0pO0IucG9zdFJ1bi5sZW5ndGg7KUE9Qi5wb3N0UnVuLnNoaWZ0KCksUi51bnNoaWZ0KEEpO3ZhciBBO3AoUil9KCkpKX1sPjB8fChmdW5jdGlvbigpe2lmKEIucHJlUnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgQi5wcmVSdW4mJihCLnByZVJ1bj1bQi5wcmVSdW5dKTtCLnByZVJ1bi5sZW5ndGg7KUE9Qi5wcmVSdW4uc2hpZnQoKSxHLnVuc2hpZnQoQSk7dmFyIEE7cChHKX0oKSxsPjB8fChCLnNldFN0YXR1cz8oQi5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7Qi5zZXRTdGF0dXMoIiIpfSksMSksSSgpfSksMSkpOkkoKSkpfWlmKEIuX2ZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4oQi5fZnJlZT1CLmFzbS5sKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEIuX29wZW5Cb3g9ZnVuY3Rpb24oKXtyZXR1cm4oQi5fb3BlbkJveD1CLmFzbS5tKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEIuX2Rlc2NyeXB0PWZ1bmN0aW9uKCl7cmV0dXJuKEIuX2Rlc2NyeXB0PUIuYXNtLm4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQi5fZGVzY3J5cHRLZHNLZXk9ZnVuY3Rpb24oKXtyZXR1cm4oQi5fZGVzY3J5cHRLZHNLZXk9Qi5hc20ubykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxCLl9kZXNjcnlwdEtleT1mdW5jdGlvbigpe3JldHVybihCLl9kZXNjcnlwdEtleT1CLmFzbS5wKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEIuX2Rlc2NyeXB0Q0JDPWZ1bmN0aW9uKCl7cmV0dXJuKEIuX2Rlc2NyeXB0Q0JDPUIuYXNtLnEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQi5fcmVsZWFzZT1mdW5jdGlvbigpe3JldHVybihCLl9yZWxlYXNlPUIuYXNtLnIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQi5fc2V0UmF3PWZ1bmN0aW9uKCl7cmV0dXJuKEIuX3NldFJhdz1CLmFzbS5zKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEIuaW50QXJyYXlGcm9tU3RyaW5nPU8sQi5VVEY4VG9TdHJpbmc9ZixCLmFsbG9jYXRlVVRGOD1mdW5jdGlvbihBKXt2YXIgZz11KEEpKzEsST1YKGcpO3JldHVybiBJJiZ3KEEsYSxJLGcpLEl9LGs9ZnVuY3Rpb24gQSgpe1Z8fFAoKSxWfHwoaz1BKX0sQi5ydW49UCxCLnByZUluaXQpZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBCLnByZUluaXQmJihCLnByZUluaXQ9W0IucHJlSW5pdF0pO0IucHJlSW5pdC5sZW5ndGg+MDspQi5wcmVJbml0LnBvcCgpKCk7cmV0dXJuIFAoKSxBLnJlYWR5fSksVkQ9V0QsWEQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7dmFyIGcsSTtubih0aGlzLEEpO3ZhciBCPW5ldyBQcm9taXNlKChmdW5jdGlvbihBLEIpe2c9QSxJPUJ9KSk7cmV0dXJuIEIucmVzb2x2ZT1nLEIucmVqZWN0PUksQn1yZXR1cm4gYW4oQSxbe2tleToicmVzb2x2ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7fX0se2tleToicmVqZWN0Iix2YWx1ZTpmdW5jdGlvbihBKXt9fV0pLEF9KCk7dmFyIFBELHpELF9EPTAsJEQ9MSxBeT1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtubih0aGlzLEEpfXJldHVybiBhbihBLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPW5ldyBYRDtyZXR1cm4gdGhpcy5tb2R1bGU9e29uUnVudGltZUluaXRpYWxpemVkOmZ1bmN0aW9uKCl7QS5yZXNvbHZlKCl9LG9uQWJvcnQ6ZnVuY3Rpb24oZyl7QS5yZWplY3QoZyl9fSxWRCh0aGlzLm1vZHVsZSksQX19LHtrZXk6ImRlc2NyeXB0S2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTYsQz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106X0Q7dHJ5e3ZhciBFPWZ1bmN0aW9uKEEpe2lmKCIiPT09QSlyZXR1cm4iIjtmb3IodmFyIGc9W10sST0wO0k8QS5sZW5ndGg7SSsrKWcucHVzaChBLmNoYXJDb2RlQXQoSSkpO3JldHVybiBnfShzZWxmLmF0b2IoQSkpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhOdW1iZXIoRS5sZW5ndGgpKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoRSxJKSxnPWd8fG5ldyBVaW50OEFycmF5LGc9bmV3IFVpbnQ4QXJyYXkoZyksQj10aGlzLm1vZHVsZS5fbWFsbG9jKGcuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KGcsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0S2V5KEMsSSxFLmxlbmd0aCxRLGcuYnl0ZUxlbmd0aCxCKX1jYXRjaChpKXtjb25zb2xlLmxvZyhpKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06X0Q7dHJ5e3ZhciBDPW5ldyBVaW50OEFycmF5KGcpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLEkpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhDLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChDLEIpLHRoaXMubW9kdWxlLl9kZXNjcnlwdChRLEksQS5ieXRlTGVuZ3RoLEIpO3ZhciBFPXRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRSl9Y2F0Y2goQnkpe2NvbnNvbGUubG9nKEJ5KX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0S2RzS2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDLEU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjE2O3RyeXt2YXIgaT1uZXcgVWludDhBcnJheShnKSx0PW5ldyBVaW50OEFycmF5KEkpO0I9dGhpcy5tb2R1bGUuX21hbGxvYyhpLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChpLEIpLFE9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLFEpLEM9dGhpcy5tb2R1bGUuX21hbGxvYyh0LmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldCh0LEMpLHRoaXMubW9kdWxlLl9kZXNjcnlwdEtkc0tleShCLGkuYnl0ZUxlbmd0aCxRLEEuYnl0ZUxlbmd0aCxDLEUpfWNhdGNoKEJ5KXtjb25zb2xlLmxvZyhCeSl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShRKSx0aGlzLm1vZHVsZS5fZnJlZShDKSx0aGlzLm1vZHVsZS5fZnJlZShCKX19fSx7a2V5OiJkZXNjcnlwdENCQyIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCO3RyeXt2YXIgUT1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gST10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsSSksQj10aGlzLm1vZHVsZS5fbWFsbG9jKFEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KFEsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0Q0JDKEksQS5ieXRlTGVuZ3RoLEIpLHRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKX1jYXRjaChCeSl7Y29uc29sZS5sb2coQnkpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToic2V0UmF3Iix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTokRDt0cnl7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoQSk7Zz10aGlzLm1vZHVsZS5fbWFsbG9jKEIuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEIsZyksdGhpcy5tb2R1bGUuX3NldFJhdyhnLEIuYnl0ZUxlbmd0aCxJKX1jYXRjaChCeSl7Y29uc29sZS5sb2coQnkpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoZyl9fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vZHVsZSYmKHRoaXMubW9kdWxlPW51bGwpfX1dKSxBfSgpO2Z1bmN0aW9uIGd5KEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwyND4+PjApKyhBW2crMV08PDE2KSsoQVtnKzJdPDw4KSsoQVtnKzNdfHwwKX12YXIgSXk9e2RlY3J5cHRIZWFkZXI6ZnVuY3Rpb24oQSxnKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO1BEPW5ldyBCbix6RD1uZXcgb24oUEQudmlkZW9UcmFjayxQRC5hdWRpb1RyYWNrKTt2YXIgQj1uZXcgVWludDhBcnJheShBKSxRPVBELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPXtyZXM6bnVsbCx2aWRlb1RyYWNrOlEudmlkZW9UcmFjayxhdWRpb1RyYWNrOlEuYXVkaW9UcmFja307aWYoSSl7dmFyIEU9ekQucmVtdXgoITApLGk9RS52aWRlb0luaXRTZWdtZW50LHQ9RS5hdWRpb0luaXRTZWdtZW50O0MucmVzPWc/aTp0fXJldHVybiBDfSxkZWNyeXB0Qm9keTpmdW5jdGlvbihBLGcpe3ZhciBJPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sQj1uZXcgVWludDhBcnJheShBKSxRPVBELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPVEudmlkZW9UcmFjayxFPVEuYXVkaW9UcmFjayxpPXplLmZpbmRCb3goQixbIm1vb2YiLCJ0cmFmIiwic2VuYyJdKVswXTtpZihpKXt2YXIgdCxvLGU9Zz9udWxsPT1DfHxudWxsPT09KHQ9Qy5lbmN2KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0X0lWX3NpemU6bnVsbD09RXx8bnVsbD09PShvPUUuZW5jYSl8fHZvaWQgMD09PW8/dm9pZCAwOm8uZGVmYXVsdF9JVl9zaXplLG49emUuc2VuYyhpLGUpO2c/Qy52aWRlb1NlbmM9bi5zYW1wbGVzOkUuYXVkaW9TZW5jPW4uc2FtcGxlcyxJeS5kZWNvZGVyRGF0YShDLEUpLGcmJkMuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZyxJPUEuZGF0YTtBLnVuaXRzPVtdO2Zvcih2YXIgQj0wLFE9SS5sZW5ndGgtMTtCPFE7KWc9Z3koSSxCKSxCKz00LEEudW5pdHMucHVzaChJLnN1YmFycmF5KEIsQitnKSksQis9Z30pKX12YXIgcj17cmVzOm51bGwsdmlkZW9UcmFjazpDLGF1ZGlvVHJhY2s6RX07aWYoSSl7dmFyIGE9ekQucmVtdXgoKSxzPWEudmlkZW9TZWdtZW50LGM9YS5hdWRpb1NlZ21lbnQ7ci5yZXM9Zz9zOmN9cmV0dXJuIHJ9LGRlY29kZXJEYXRhOmZ1bmN0aW9uKEEsZyl7cmEuZGVjb2RlckFFU0NUUkRhdGEoQSxnLChmdW5jdGlvbihBLGcsSSl7cmV0dXJuIHNlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0KEEsSSl9KSl9fTtvbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcztpZigiZGVjcnlwdEJvZHkiPT09QS5kYXRhLm1ldGhvZClzZWxmLnAudGhlbigoZnVuY3Rpb24oKXt2YXIgST1BLmRhdGEuYXJncyxCPUl5LmRlY3J5cHRCb2R5KEkuYnVmLEkuaXNWaWRlbyxJLm5lZWRSZW11eCk7Zy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0Qm9keSIsaWQ6QS5kYXRhLmlkLGFyZ3M6e2RhdGE6Qn19KX0pKTtlbHNlIGlmKCJkZWNyeXB0SGVhZGVyIj09PUEuZGF0YS5tZXRob2Qpe3ZhciBJPUl5LmRlY3J5cHRIZWFkZXIoQS5kYXRhLmJ1ZixBLmRhdGEuaXNWaWRlbyk7dGhpcy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0SGVhZGVyIixpZDpBLmRhdGEuaWQsYXJnczp7ZGF0YTpJfX0pfWVsc2UgaWYoInVwZGF0ZVZhbHVlIj09PUEuZGF0YS5tZXRob2Qpe3RoaXMuY2FjaGVEYXRhPUEuZGF0YS52YWx1ZSxzZWxmLmF3TWFuYWdlcj1uZXcgQXk7dmFyIEI9c2VsZi5hd01hbmFnZXIuaW5pdCh0aGlzLmNhY2hlRGF0YS53YXNtQmluYXJ5RmlsZSk7c2VsZi5wPUIsQi50aGVuKChmdW5jdGlvbigpe3NlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0S2V5KGcuY2FjaGVEYXRhLnNlY3JldEtleSxnLmNhY2hlRGF0YS5kZWNyeXB0S2V5KX0pKX1lbHNlImRlc3Ryb3kiPT09QS5kYXRhLm1ldGhvZCYmc2VsZi5hd01hbmFnZXImJihzZWxmLmF3TWFuYWdlci5kZXN0cm95KCksc2VsZi5hd01hbmFnZXI9bnVsbCl9fSgpOwo=",Nl="undefined"!=typeof window&&window.Blob&&new Blob([atob(yl)],{type:"text/javascript;charset=utf-8"});function bl(){var e;try{if(!(e=Nl&&(window.URL||window.webkitURL).createObjectURL(Nl)))throw"";return new Worker(e)}catch(U){return new Worker("data:application/javascript;base64,"+yl)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var fl=function(){function e(){c(this,e),In(this),this.bodyId=0,this.isSwitchHeader=!1,this.workers={audio:null,video:null},this.init(),this.headerId=0,this.crypto=window.crypto||window.msCrypto}return h(e,[{key:"init",value:function(){for(var e=this,U=Object.keys(this.workers),t=0;t<U.length;t++){var n=U[t],F=new bl;F.onmessage=function(U){e.emit(U.data.method,U.data)},this.workers[n]=F}}},{key:"updateHeaderId",value:function(){var e=this.bodyId+1;this.headerId=e,this.bodyId=e}},{key:"destroy",value:function(){for(var e=Object.keys(this.workers),U=0;U<e.length;U++){var t=e[U];this.workers[t].postMessage({method:"destroy"}),this.workers[t].terminate()}this.workers={}}},{key:"getWorker",value:function(e){return this.workers[e?"video":"audio"]}},{key:"decryptHeader",value:function(e,U){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this;return this.updateHeaderId(),new Promise((function(F){var Q=Math.floor(1e3*Math.random()),l=n.getWorker(U);l&&l.postMessage({method:"decryptHeader",id:Q,buf:e,isVideo:U,needRemux:t});n.on("decryptHeader",(function e(U){U.id===Q&&(n.off("decryptHeader",e),F({data:U.args.data,vid:U.args.vid}))}))}))}},{key:"updateValue",value:function(e){for(var U=Object.keys(this.workers),t=0;t<U.length;t++){var n=U[t];this.workers[n].postMessage({method:"updateValue",value:e})}}},{key:"decryptBody",value:function(e,U){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this,F=n.bodyId+1;return n.bodyId=F,new Promise((function(Q){n.on("decryptBody",(function e(U){U.id===F&&(n.off("decryptBody",e),Q({data:U.args.data,id:F,headerId:n.headerId}))}));var l=n.getWorker(U);l&&l.postMessage({method:"decryptBody",id:F,args:{isVideo:U,id:n.workerIndex,aeskey:n.aeskey,buf:e,needRemux:t}},[e])}))}}]),e}(),vl=fl,Tl=function(){function e(U){c(this,e),this.onTick_=U,this.cancelPending_=null}return h(e,[{key:"tickAfter",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.stop();var n=!0,F=null;this.cancelPending_=function(){window.clearTimeout(F),n=!1};return F=window.setTimeout((function(){n&&(U.onTick_(),t&&t())}),1e3*e),this}},{key:"tickEvery",value:function(e){var U=this;this.tickAfter(e,(function(){U.tickEvery(e)}))}},{key:"stop",value:function(){this.cancelPending_&&(this.cancelPending_(),this.cancelPending_=null)}}]),e}(),Cl={stallSkip:.1,stallCount:3,stallTimer:1,failCount:2},Dl=function(){function e(U,t){var n=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;c(this,e),this.player=U,this.mediaElem=U.video,this.config=Object.assign({},t,Cl),this.timer=new Tl((function(){n.onGapJump()})),this.inBufferTimer=new Tl((function(){n._onBufferStallCheck()})),this.prevReadyState=this.mediaElem.readyState,this.didFireLargeGap=!1,this.seekingEventReceived=!1,this.segmentAppended=!1,this.onWaitFunc=this._onWaiting.bind(this),this.onPlayFunc=this._onPlay.bind(this),this.onPlayingFunc=this._onPlaying.bind(this),this.onPausedFunc=this._onPaused.bind(this),this.isSafari=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),this.hasPlayed=!1,this.lastVideoTime=-1,this.hasPaused=!1,this.resumeFromPaused=!1,this.stallSkip=this.config.stallSkip,this.stallCount=this.config.stallCount,this.stallTimer=this.config.stallTimer,this.reset(),this.requests=F,this.player.on(gU,(function(e){n.requests=e})),!1!==this.config.useGapJump&&this._start()}return h(e,[{key:"reset",value:function(){this.stallPoints={}}},{key:"_onWaiting",value:function(){this.onGapJump();var e=this.player.currentTime;this.onRequestFail(e)}},{key:"onRequestFail",value:function(e){if(this.requests){var U=this.requests.video,t=this.requests.audio,n=this._checkIfNextRequestFailed(e,U),F=this._checkIfNextRequestFailed(e,t);if(n.result||F.result){var Q=n.result?n.end:F.end;Q=Q<this.player.duration-.5?Q+.5:this.player.duration,this.player.currentTime=Q,this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap_req",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*Q)}})}}}},{key:"_checkIfNextRequestFailed",value:function(e,U){for(var t=0;t<U.length;t++){var n=U[t],F=n.start-e<1.5,Q=n.start<=e&&e<=n.end,l=403!==(null==n?void 0:n.response.status);if(F&&Q&&n.count>=this.config.failCount&&l)return{end:n.end,result:!0}}return{result:!1}}},{key:"_onPlay",value:function(){this.hasPlayed=!0}},{key:"_onPaused",value:function(){this.hasPaused=!0}},{key:"_onPlaying",value:function(){this.hasPaused&&(this.hasPaused=!1,this.resumeFromPaused=!0)}},{key:"_start",value:function(){this.mediaElem.addEventListener("waiting",this.onWaitFunc),this.mediaElem.addEventListener("play",this.onPlayFunc),this.mediaElem.addEventListener("playing",this.onPlayingFunc),this.mediaElem.addEventListener("pause",this.onPausedFunc),this.timer.tickEvery(.25),this.inBufferTimer.tickEvery(this.stallTimer)}},{key:"onSegmentAppend",value:function(){this.segmentAppended=!0,this.onGapJump()}},{key:"onSeeking",value:function(){this.seekingEventReceived=!0,this.segmentAppended=!1,this.didFireLargeGap=!1}},{key:"onGapJump",value:function(){if(this.mediaElem.readyState!==HTMLMediaElement.HAVE_NOTHING){if(this.mediaElem.seeking){if(!this.seekingEventReceived)return}else this.seekingEventReceived=!1;if(!this.mediaElem.paused||0===this.mediaElem.currentTime||!this.hasPlayed){this.mediaElem.readyState!==this.prevReadyState&&(this.didFireLargeGap=!1,this.prevReadyState=this.mediaElem.readyState);var U=this.mediaElem.buffered,t=this.config.smallGapLimit||.5,n=this.config.gapDetectionThreshold||.1,F=this.mediaElem.currentTime,Q=this._getIndex(U,F,n);if(null!==Q&&(0!==Q||this.segmentAppended)){var l=U.start(Q);if(!(l>this.mediaElem.duration)){var i=l-F,d=i<=t;i<e.BROWSER_GAP_TOLERANCE||d&&(this.mediaElem.currentTime=this.isSafari?l+.1:l,hU.gap("gapJump gapIndex",Q,"isGapSamll",d,"jumpLargeGap",!1,"currentTime",this.mediaElem.currentTime),.08!==l&&this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*l)}}))}}}}}},{key:"_onBufferStallCheck",value:function(){if(this.mediaElem&&!this.mediaElem.paused&&!this.mediaElem.ended&&0!==this.mediaElem.playbackRate&&0!==this.mediaElem.buffered.length){for(var e=this.mediaElem.currentTime,U=this.mediaElem.buffered,t=!1,n=[],F=0;F<U.length;F++){var Q=U.start(F),l=U.end(F);n.push({start:Q,end:l}),e<Q-.1||(e>l-.5||(t=!0))}var i=this.mediaElem.buffered,d=i.length;d>0&&this.mediaElem.duration===i.end(d-1)&&(t=!0);var r=this.mediaElem.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA;if(t&&r&&this.lastVideoTime===e&&!this.resumeFromPaused&&this.mediaElem.currentTime<this.mediaElem.duration)try{void 0===this.stallPoints[e]&&(this.stallPoints[e]=0),this.stallPoints[e]++,this.stallPoints[e]>this.stallCount&&(this.mediaElem.currentTime<this.mediaElem.duration-this.stallSkip?this.mediaElem.currentTime+=this.stallSkip:this.mediaElem.currentTime=this.mediaElem.duration,console.warn("in buffer stall, small seek",this.lastVideoTime,e,n))}catch(a){}this.lastVideoTime=e,this.resumeFromPaused=!1}}},{key:"_getIndex",value:function(e,U,t){if(!e||!e.length)return null;if(1===e.length&&e.end(0)-e.start(0)<1e-6)return null;for(var n=this._getBuffered(e),F=null,Q=0;Q<n.length;Q++){if(n[Q].start>U&&(0===Q||n[Q-1].end-U<=t)){F=Q;break}}return F}},{key:"_getBuffered",value:function(e){if(!e)return[];for(var U=[],t=0;t<e.length;t++)U.push({start:e.start(t),end:e.end(t)});return U}},{key:"destroy",value:function(){this.mediaElem.removeEventListener("waiting",this.onWaitFunc),this.mediaElem.removeEventListener("play",this.onPlayFunc),this.mediaElem.removeEventListener("playing",this.onPlayingFunc),this.mediaElem.removeEventListener("pause",this.onPausedFunc),this.timer.stop(),this.timer=null,this.inBufferTimer.stop(),this.inBufferTimer=null}}]),e}();Dl.BROWSER_GAP_TOLERANCE=.001;var gl=tt,Xl=LU,xl=function(){function e(U){var t=this;c(this,e),u(this,"startProgressTimer",(function(){t._pluginInst.info({msg:"startProgressTimer"});var e=t,U=t.player,n=t.config;if(U&&e&&e.isDashCanUse&&e.dash.mse){var F=0;e.dash.mse.progressTimer=new T,e.dash.mse.progressTimer.repeat((function(){e&&e.isDashCanUse&&e.dash.mse&&e.dash.mse.progressTimer&&(e.handleUrlExpire(),++F*(n.progressTimer||uU)/1e3>10&&(hU.log("startProgressTimer clearBuffer"),e.clearBuffer&&e.clearBuffer(),F=0),n.disableBufferBreakCheck||(U.currentTime-(e.lastCurrentTime||0)>.1||U.paused?1!==e.dashBufferBreak&&2!==e.dashBufferBreak||(hU.log("视频没有卡死,重置卡死标记"),e.dashBufferBreak=0,clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null):e.dashBufferBreak||(e.dashBufferBreak=1,hU.log("卡死计时开始!持续".concat(2e4,"毫秒则确认卡死")),e.dashBufferBreakTimer=setTimeout((function(){if(1===e.dashBufferBreak){e.dashBufferBreak=2,hU.log("确认卡死!!!");var U=document.hidden||"hidden"===document.visibilityState?We.WAITING_TIMEOUT_ERROR:We.BUFFERBREAK_ERROR;e.dash.emit("error",new wn(pe,U))}e.dashBufferBreakTimer=null}),2e4)),e.lastCurrentTime=U.currentTime),e.loadData(void 0),e.isEnded())}),n.progressTimer||uU)}})),u(this,"_onAutoDescChange",(function(e){var U=e.definition,n=e.reset,F=e.fps,Q=e.item;t.updateAutoDefiDesc(U,n,F,Q)})),this._pluginInst=U.pluginInst;var n=this._pluginInst,F=n.player,Q=n.config;this._minDuration=1/0,this.player=F,this.config=Q,this.startTimestamp=(new Date).getTime(),this.lastDefiIdx=void 0,this.__isDashCanUse=!1,this.preloadBufferThreshold=this.config.preloadBufferThreshold||.5,this.abrInstance=null,this.definitions=[];var l=this.config.autoBitrateOpts||{};this.isPlayAutoDefi=HF.getIsPlayAutoDefi(l),this.isOpenAutoDefi=!!l.isOpenAutoDefi,this.isCurrentAutoDefi=this.isOpenAutoDefi&&this.isPlayAutoDefi,this.bitrateMap={},this.curBitrate=0,this.defiIdMap={},this.definition2item={},this.bandwidth2item={},(this.preloadBufferThreshold<=0||this.preloadBufferThreshold>1)&&(this.preloadBufferThreshold=.5),this.curVideoInitSegmentIdx=-1,this.getPlayInfoTimestamp=this.startTimestamp/1e3;var i=Q.dashOpts.dynamic_video.dynamic_video_list,d=Q.dashOpts.dynamic_video.dynamic_audio_list;i&&i.length>0?this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_video_list[0].url_expire||0:d&&d.length>0&&(this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_audio_list[0].url_expire||0),this.gapJumpInst=new Dl(F,Q),Ut.on(F,"addVideoBufferEnd",(function(){t.gapJumpInst.onSegmentAppend()}),"dashDestroy")}var U,t,n,F;return h(e,[{key:"initDash",value:function(e){var U=this;this.dash=e;var t=this.config;t.dashOpts.dynamic_video.dynamic_video_list.length>0&&(this.initAbr(),t.dashOpts.dynamic_video.dynamic_video_list.sort((function(e,U){return U.vheight-e.vheight})),t.dashOpts.dynamic_video.dynamic_video_list.forEach((function(e,n){e.definition===t.defaultDefinition&&(U.dash.selectedIdx=n)})),this.dashVideoEncrypted=t.dashOpts.dynamic_video.dynamic_video_list.some((function(e){return!!e.kid}))),t.dashOpts.dynamic_video.dynamic_audio_list.length>0&&(this.dashAudioEncrypted=t.dashOpts.dynamic_video.dynamic_audio_list.some((function(e){return!!e.kid})))}},{key:"isDashCanUse",get:function(){return this.__isDashCanUse},set:function(e){this.__isDashCanUse=e}},{key:"encryptedType",get:function(){return this.dashVideoEncrypted||this.dashAudioEncrypted?this.config.useEME?1:2:0}},{key:"isEnded",value:function(){var e=this.dash,U=this.player,t=this.mse,n=this.config;if("vod"===e.type)if(U.ended)hU.log("player.ended === true"),"safari"===d.Sniffer.browser&&(U.pause(),U.emit("ended"));else{var F=n.duration||U.duration||e.mpd.duration;if(U.duration&&(F=Math.min(F,U.duration)),e.mpd.duration&&(F=Math.min(F,e.mpd.duration)),F-this._minDuration<10&&(F=Math.min(F,this._minDuration)),F>0&&F-U.currentTime<1){var Q=this._findRangeForPlaybackTime(U.currentTime)||{start:0,end:0};hU.log("range",Q,"current",U.currentTime,"duration",F);var l=Math.min(Q.end,U.duration),i=U.currentTime-l>=0&&Q.end>0,r=l-U.currentTime<1&&Q.end>0;(i||r)&&(hU.log("isEnded execute, isOver",i,"isClosed",r),console.log("isEnded execute, isOver",i,"isClosed",r),t.endOfStream(),this.clearProgressTimer())}}}},{key:"dashDestroy",value:function(){var e=this.player,U=this.dash;for(var t in U&&U.mse&&U.mse.unbindMedia&&U.mse.unbindMedia(),U&&U.eme&&(U.eme.emit("destroy"),U.eme.destroy()),U&&e.errorHandler&&(U.abortLoadingTasks(),U.emit("destroy")),U&&U.mpd&&U.mpd.timer&&(clearTimeout(U.mpd.timer),U.mpd.timer=null),this.crypto&&this.crypto.destroy(),U&&U.destroy(),this.clearCheckCanplayTimer(),this.clearProgressTimer(),this.destroyAbr(),this.gapJumpInst&&this.gapJumpInst.destroy(),e&&(e.__dash__=null,this._pluginInst.unloadVideo(),"function"==typeof e.video.setMediaKeys&&e.video.setMediaKeys(null).catch((function(){}))),U)delete U[t];for(var n in this)delete this[n]}},{key:"bindComEvent",value:function(){var e=this;this._lastSeekTime=null;var U=this.player,t=this.config;Ut.on(U,"error",e.clearProgressTimer.bind(e),"dashDestroy"),Ut.on(U,"ended",e.clearProgressTimer.bind(e),"dashDestroy");Ut.on(U,"timeupdate",(function(){e.isDashCanUse&&t.dashOpts&&e.mse&&e.isEnded()}),"dashDestroy"),Ut.on(U,"ended",(function(){e.ended=!0}),"dashDestroy");var n=function(){var n=R(o().mark((function n(){var F,Q,l,i,d,r,a;return o().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(hU.log("dash onSeeking",U.currentTime,"duration",U.duration),e.isDashCanUse&&t.dashOpts){n.next=3;break}return n.abrupt("return");case 3:if(Q=e.ended,e.ended=U.ended,!Q){n.next=8;break}return this.isOpenAutoDefi?this._pluginInst.next(U.currentTime,"NEXT",U.config.DASHPlugin,!0):e.startProgressTimer(),n.abrupt("return");case 8:if(l=U.getBufferedRange(U.buffered)[1],i=0===l,hU.log("dash onseeking, bufferEnd:".concat(l,", outBuffer:").concat(i,", \n switching:").concat(e.switching,", isFull:").concat(null===(F=e.mse)||void 0===F?void 0:F.isFull(xe.VIDEO))),!i||e.switching){n.next=18;break}return e.abortLoading=!0,n.next=15,e.dash.abortLoadingTasks();case 15:hU.log("dash cancel loading task execute"),e.abort(xe.VIDEO),e.abort(xe.AUDIO);case 18:e.mse.isFull&&e.mse.isFull(xe.VIDEO)?i?e.clearBufferByTime(0,U.duration):e.clearBuffer(!0):i||e.clearBufferByTime(l,U.duration),e.abortLoading=!1,i&&e.loadData(U.currentTime,!0),d=t.useDurationBackoff||!1,r=Date.now()/1e3,a=U.duration-U.currentTime<1,d&&a&&(!this._lastSeekTime||this._lastSeekTime<r-1)&&(this._lastSeekTime=r,U.currentTime=U.duration-1),e.gapJumpInst&&e.gapJumpInst.onSeeking(),i&&e.dash.clearFailedSegment();case 27:case"end":return n.stop()}}),n,this)})));return function(){return n.apply(this,arguments)}}();Ut.on(U,"seeking",n,"dashDestroy");Ut.on(U,"seeked",(function(){hU.log("dash onSeeked",U.currentTime),e.seeking=!1,e.isEnded();var t=e.dash.mpd.isSegmentAppendFromIdx(xe.VIDEO,U.currentTime),n=e.dash.mpd.isSegmentAppendFromIdx(xe.AUDIO,U.currentTime);t&&n&&(e.mse.endOfStream(),hU.log("dash seeked endofstream"))}),"dashDestroy"),Ut.on(U,"dashDestroy",e.dashDestroy.bind(this))}},{key:"destroy",value:function(){this.player.emit("dashDestroy")}},{key:"getMetaData",value:function(){var e=this,U={};return["video","audio"].forEach((function(t){var n=e.dash.mpd.mediaList[t],F=n[n.selectedIdx];U[t]={bandwidth:F.bandwidth,mimeType:F.mimeType,codecs:F.codecs,definition:F.definition,width:F.width,height:F.height,mediaDuration:F.mediaDuration,timescale:F.timescale}})),U}},{key:"_findRangeForPlaybackTime",value:function(e){var U=this.player.buffered;if(U)for(var t=0;t<U.length;t++)if(Ut.round(U.start(t))<=Ut.round(e)&&Ut.round(U.end(t))>=Ut.round(e))return{start:Ut.round(U.start(t)),end:Ut.round(U.end(t)),rawStart:U.start(t),rawEnd:U.end(t)}}},{key:"loadData",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=this,n=this.player,F=this.config;if(!t.switching&&!t.abortLoading&&t.dash){var Q,l=F.maxBufferLength||F.preloadTime||50,i=t.dash.mpd.mediaList.video;if(i&&i.length>0&&i[i.selectedIdx]){var d=i[i.selectedIdx].bandwidth;Q=i[i.selectedIdx].definition||this.bandwidth2item[d].definition}if(F.dynamicPreloadTimeOpts&&Q){var r=F.dynamicPreloadTimeOpts[Q];r&&(l=r)}var a=!1;if(n.paused&&(a=!0),a)l=F.minBufferLength;else{var o=l;o!==(l=t.dash.getAdaptCacheBuffer(l))&&hU.log("getAdaptCacheBuffer, newTime",l,"old",o)}t.preloadTime!==l&&(t.preloadTime=l,hU.log("maxCacheTimeAudio change",l),n.emit(LF,{videoCacheTime:l,audioCacheTime:l})),e||(e=n.currentTime);var B=this._findRangeForPlaybackTime(e),s=B&&Math.ceil(Math.max(B.end,B.rawEnd))||Math.floor(e);t.dash.isOpenPCDN((null==B?void 0:B.end)||0);var R=n.duration<F.minBufferLength,c=n.currentTime+(R?n.duration/3:F.minBufferLength);F.preloadTime&&(c=n.currentTime+F.preloadTime*F.preloadBufferThreshold);var V=!1;if(this._pluginInst.preloadManager){var h=this._pluginInst.preloadManager;V=h._preloadDataList.length>0||null!==h._currentPreloadInst}s>c&&V&&n.emit(gl),s<e+F.preloadCancelTime&&V&&n.emit("PRELOAD_CANCEL"),s>e+l||t.dash.seek(s,n.currentTime,U)}}},{key:"startCheckCanplayTimer",value:function(){var e=this,U=this.player,t=this.config;if(U&&e&&!t.disableCanplayCheck){e.checkCanplayTimer=new T,e.checkCanplayTimer.repeat((function(){U&&e&&e.isDashCanUse&&e.checkCanplayTimer&&U.errorHandler&&(U.enterIsHide?(hU.log("视频已起播,重置标记"),e.dashNoCanplay=0,e.clearCheckCanplayTimer()):e.dashNoCanplay||"visible"!==document.visibilityState||(e.dashNoCanplay=1,hU.log("未起播计时开始!持续".concat(ZU,"毫秒没有获取到init分片则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===U.enterIsHide&&(U.dashState!==NU?(e.dashNoCanplay=2,hU.log("确认未获取到init分片,没有起播!!!"),e.clearCheckCanplayTimer(),U.errorHandler(new wn(pe,We.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"}))):t.disableDashNoCanplayCheck||(hU.log("未起播计时开始!持续".concat(1e4,"毫秒则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===U.enterIsHide&&(e.dashNoCanplay=2,hU.log("确认没有起播!!!"),e.clearCheckCanplayTimer(),U.errorHandler(new wn(pe,We.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"})))}),1e4)))}),ZU)))}),t.progressTimer||uU)}}},{key:"clearCheckCanplayTimer",value:function(){var e=this;e&&(e&&e.checkCanplayTimer&&(e.checkCanplayTimer.clear(),e.checkCanplayTimer=null),e.dashNoCanplayTimer&&(clearTimeout(e.dashNoCanplayTimer),e.dashNoCanplayTimer=null,e.dashNoCanplay=void 0))}},{key:"handleUrlExpire",value:function(){this._pluginInst.handleUrlExpire(this)}},{key:"clearBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],U=this,t=this.player;if(U.isDashCanUse&&U.mse){var n=t.currentTime,F=this._findClosetGop(n,!1);if(F&&U.clearBufferByTime(0,F),e){var Q=this._findClosetGop(n,!0);U.clearBufferByTime(Q,t.duration)}}}},{key:"_findClosetGop",value:function(e,U){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,n=this.dash.mpd.mediaList.video;n[n.selectedIdx]||(n=this.dash.mpd.mediaList.audio);var F=n[n.selectedIdx].mediaSegments;if(U){for(var Q=0,l=0;l<F.length;l++)if(F[l].start>e&&++Q>t)return F[l].start}else for(var i=0,d=F.length-1;d>-1;d--)if(F[d].end<e&&++i>t)return F[d].end}},{key:"clearBufferByTime",value:function(e,U){hU.log("clearBufferByTime start: ".concat(e," end: ").concat(U)),this.dash.mpd.mediaList.video.length>0&&this.removeBuffer(xe.VIDEO,e,U),this.dash.mpd.mediaList.audio.length>0&&this.removeBuffer(xe.AUDIO,e,U)}},{key:"removeBuffer",value:function(e,U,t){if(this.dash.mpd.clearBuffer(U,t,e),this.mse.remove&&!this._pluginInst.softVideo){var n=this.mse.remove(e,U,t);n&&n.catch((function(){}))}}},{key:"abort",value:function(e){this.mse&&this.mse.abort&&this.dash.mpd.mediaList[e].length>0&&this.mse.abort(e,{mediaType:e})}},{key:"clearProgressTimer",value:function(){var e=this;e&&(e.isDashCanUse&&e.dash.mse&&e.dash.mse.progressTimer&&(e.dash.mse.progressTimer.clear(),e.dash.mse.progressTimer=null),e.dashBufferBreakTimer&&(clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null,e.dashBufferBreak=void 0))}},{key:"emitMenuResolutionChange",value:function(){var e=this.player;try{var U=this.dash.mpd.mediaList.video;if(U){var t=U[U.selectedIdx],n={width:t.width,height:t.height};e.emit("RESOLUTION_UPDATE",n)}else e.emit("RESOLUTION_UPDATE")}catch(F){e.emit("RESOLUTION_UPDATE")}}},{key:"updateDashType",value:function(){var e,U=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=g.getItem(GU),n=xU;e=U||t===n.BACK?n.MAIN:n.BACK,g.setItem(GU,e)}},{key:"changeMainBackUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Xl.INIT;if(!(arguments.length>1&&void 0!==arguments[1]&&arguments[1])&&this._pluginInst){var U=this._pluginInst.config,t=g.getItem(GU),n=!1;if((e===Xl.INIT&&t===xU.BACK||e===Xl.ERR)&&(n=!0),hU.log("curDashType",t,"changeState",e,"needChange",n),n){var F=U.dashOpts.dynamic_video.main_url,Q=U.dashOpts.dynamic_video.backup_url_1;U.dashOpts.dynamic_video.main_url=Q,U.dashOpts.dynamic_video.backup_url_1=F,Ut.exchangeListUrl(U.dashOpts.dynamic_video.dynamic_video_list),Ut.exchangeListUrl(U.dashOpts.dynamic_video.dynamic_audio_list)}var l=U.dashOpts.dynamic_video.main_url;return this._checkUrlRange(l),U}}},{key:"_checkUrlRange",value:function(e){var U=this._pluginInst.config,t=U.url_range_domains||[],n=Ut.validateUrlRange(t,e);U.useUrlRange=n}},{key:"updateAutoDefiDesc",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=this.player,Q=(this.config.autoBitrateOpts||{}).autoDefiText||"auto";F.emit("ABR_AUTO_DESC_CHANGE",Q,U?void 0:e,t,n),U||this._pluginInst.setCurrentDefitionInfos("自动 ".concat(e),n)}},{key:"_abrLoadMetaSuccess",value:function(e,U,t){var n=this,F=this.dash,Q=this.config,l=F.mpd.mediaList.video;this.abrInstance&&this.abrInstance.updateBitrate(n.defiIdMap[e].bitrate),t&&(this.lastDefiIdx=e),n.selectedIdx=U,Q.defaultDefinition=l[n.selectedIdx].definition}},{key:"_startLoadInitSegment",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=new X,F=this,Q=this.dash,l=this.config,i=Q.mpd.mediaList.video,d=i.selectedIdx;return i.every((function(Q,r){if(Q.id===e){d=r,F.switching=!0;var a=i[d].wrapperData;if(a)(F.dashVideoEncrypted||F.dashAudioEncrypted)&&!1===l.useEME&&F.crypto&&F.crypto.updateHeaderId(),U._abrLoadMetaSuccess(e,d,t),n.resolve(a);else{F._makeInitSegemntRequestWithRetry("video",d,!1,(function(){F.switching=!1})).then((function(F){U._abrLoadMetaSuccess(e,d,t),n.resolve(F)})).catch((function(e){F.switching=!1,hU.log("_makeInitSegemntRequestWithRetry",JSON.stringify({msg:e.message}))}))}return!1}return!0})),n}},{key:"setCurrentDefinition",value:function(){try{var e=this.dash,U=e.mpd.mediaList.video,t=U[U.selectedIdx],n=t.definition,F=t.bandwidth;this._pluginInst.setCurrentDefitionInfos(n,this.definition2item[n]),e.updateDynamicBufferServiceBitrate(F),e.checkPCND()}catch(Q){console.log("setCurrentDefinition error",Q)}}},{key:"_emitDefinitionChangeDetailEvent",value:function(e){this.player.emit("definitionChangeDetail",e)}},{key:"switchURL",value:(F=R(o().mark((function e(U){var t,n,F,Q,l=this,i=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=!(i.length>1&&void 0!==i[1])||i[1],n=this,F=this._pluginInst.player,U=U.split("/")[U.split("/").length-1],F.curDefinition=n.definitions.filter((function(e){return e.url===U}))[0],Q=U===IF,hU.log("switchURL",U,t),!Q){e.next=13;break}return n.abrInstance.start(),n.isCurrentAutoDefi=!0,n.abrInstance.isCurrentInAbr=!0,setTimeout((function(){n.abrInstance._onTimeUpdate(null,!0)})),e.abrupt("return");case 13:n.isCurrentAutoDefi&&(n.updateAutoDefiDesc("",!0),n.isCurrentAutoDefi=!1,n.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi),t&&n.abrInstance.stop(!0),n._startLoadInitSegment(U,!0).then(function(){var e=R(o().mark((function e(U){var t,Q,i,r,a,B,s,R,c,V;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.selectedIdx===U.newIdx){e.next=3;break}return hU.log("definitionSwitchTime cancel, current:",n.selectedIdx,"self",U.newIdx),e.abrupt("return");case 3:return Q=n.dash,i=Q.mpd.mediaList.video,e.next=7,n._switch(U.newIdx);case 7:r=e.sent,a=F.currentTime,B=null,B=i[r||0].mediaSegments.find((function(e){return e.start-a>2.5})),s=!1,B||(R=i[r||0].mediaSegments,B=R[R.length-1],s=!0),c=Ut.round(B.start),V=Ut.round(F.getBufferedRange(F.buffered)[1]),hU.log("切换清晰度 curTime: ".concat(a," start: ").concat(c," end: ").concat(V)),n.setCurrentDefinition(),n.isCurrentInAbr()||(hU.log("definitionSwitchTime emit, current",n.selectedIdx),F.emit("definitionSwitchTime",c)),l._emitDefinitionChangeDetailEvent({start:c,bitrate:null===(t=i[U.newIdx])||void 0===t?void 0:t.bandwidth,mediaType:xe.VIDEO,definition:U.definition,url:U.url,fileid:U.fileId}),V-c>0&&"safari"!==d.Sniffer.browser&&!s&&(hU.log("removeBuffer: ".concat(c," ").concat(V)),n.removeBuffer(xe.VIDEO,c,V)),n._appendInitSegment("video",U,U.newIdx).then((function(){hU.log("switchURL appendInitSegment",U.newIdx),n.switching=!1,n.loadData((B.start+B.end)/2,XU),n.emitMenuResolutionChange(),n.dash.clearFailedSegment()}));case 21:case"end":return e.stop()}}),e)})));return function(U){return e.apply(this,arguments)}}());case 16:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"abrSwitchURL",value:function(e){var U=this,t=this.dash,n=this.player;e=e.split("/")[e.split("/").length-1],hU.log("abrSwitchURL",e),this._startLoadInitSegment(e).then(function(){var e=R(o().mark((function e(F){var Q,l,i,d,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=t.mpd.mediaList.video,e.next=3,U._switch(F.newIdx);case 3:if(l=e.sent,i=n.getBufferedRange(n.buffered)[1],d=Q[l].mediaSegments.find((function(e){return e.start-i>=0}))){e.next=8;break}return e.abrupt("return");case 8:r=0===i?n.currentTime:(d.start+d.end)/2,U._pluginInst.info({msg:"abr switch",data:{bd:Q[l].definition,d:Q[F.newIdx].definition,start:0===i?n.currentTime:d.start},add:!0}),U.setCurrentDefinition(),U._appendInitSegment("video",F,F.newIdx).then((function(){hU.log("abrSwitchURL appendInitSegment",F.newIdx),U.switching=!1,U.loadData(r,XU)})).catch((function(e){hU.log("appendInitSegment",e)}));case 12:case"end":return e.stop()}}),e)})));return function(U){return e.apply(this,arguments)}}()).catch((function(e){hU.log("startLoadInitSegemnt",e)}))}},{key:"_switch",value:(n=R(o().mark((function e(U){var t,n,F,Q;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.dash,n=t.mpd.mediaList.video,F=n.selectedIdx,n.selectedIdx=U,this.abort(xe.VIDEO),e.next=7,t.abortLoadingTasks();case 7:return n[F].mediaSegments.every((function(e){return e.downloaded=vU,!0})),(Q=t.mpd.mediaList.audio)[Q.selectedIdx]&&Q[Q.selectedIdx].mediaSegments&&Q[Q.selectedIdx].mediaSegments.forEach((function(e){e.downloaded===TU&&(e.downloaded=vU)})),t.mpd.syncAV(),e.abrupt("return",F);case 12:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_handleInitData",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=arguments.length>4?arguments[4]:void 0,Q=this.dash,l=new X;if(e instanceof ArrayBuffer){var i=0===U.length?e:e.slice(U[0],U[1]+1),d=null===t?null:e.slice(t[0],t[1]+1);!1===Q.useEME&&this.crypto?this.crypto.decryptHeader(i,"video"===F,!this._pluginInst.softVideo).then((function(U){var t=U.data,F=t.res,Q=t.videoTrack,i=t.audioTrack,r=F;l.resolve({initSegmentRes:r,data:e,sidxSegmentRes:d,headers:n,videoTrack:Q,audioTrack:i})})):l.resolve({initSegmentRes:i,data:e,sidxSegmentRes:d,vid:null,headers:n})}else;return l}},{key:"_appendInitSegment",value:function(e,U,t){var n=this,F=this.player,Q=this.config.duration;this.dash.mpd.duration>0&&(Q=this.dash.mpd.duration);var l=new X,i=this.dash.mpd.mediaList[e],d=U.initSegmentRes,r=U.sidxSegmentRes;if(!U.fromCache&&(U.fromCache=!0,i[i.selectedIdx].wrapperData=U,r))try{this.dash.mpd.getSidx(r,e,t,Q)}catch(o){F.errorHandler(o)}if(e===xe.VIDEO){var a=function(e){for(var U=Object.keys(On),t=0;t<U.length;t++){var n=U[t];if(On[n].codecs===e)return n}return null}(i[i.selectedIdx].codecs);this._pluginInst.setCodeInfo(a)}return hU.log("appendInitSegment mediaType:".concat(e,", index: ").concat(t)),this.dash.changeType(e,i[i.selectedIdx].codecs),this.dash.appendBuffer(e,d,{mediaType:e,index:t,initSegment:!0,allSegment:!0},U.videoTrack,U.audioTrack).then((function(){if(n._pluginInst.info({msg:"appendBuffer",data:{mediaType:e,index:t}}),hU.log("appendInitSegment success mediaType:".concat(e,", index: ").concat(t,", \n curVideoInitSegment:").concat(n.curVideoInitSegmentIdx)),i[i.selectedIdx].inited=!0,l.resolve(),"video"===e&&n.curVideoInitSegmentIdx!==t){n.curVideoInitSegmentIdx=t;var U=n._findClosetGop(F.currentTime,!0,0);n.dash.mpd.clearBuffer(U,F.duration,"video")}})).catch((function(U){hU.log("appendInitSegment type-".concat(e,"-appendCatch,range:").concat(JSON.stringify(d),",\n message:").concat(U.message)),U&&U.errorCode&&F&&F.emit(new wn(Ze,U.errorCode,{message:"appendInit ".concat(U.message)}))})),l}},{key:"_makeInitSegemntRequest",value:(t=R(o().mark((function e(){var U,t,n,F,Q,l,i,d,r,a,B,s,R,c,V,h,u,Z,S,J,p=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=p.length>0&&void 0!==p[0]?p[0]:"video",n=p.length>1&&void 0!==p[1]?p[1]:0,F=p.length>2&&void 0!==p[2]?p[2]:null,Q=this.dash,l=this.config,i=new X,d=Q.mpd&&Q.mpd.mediaList[t][n],r=[],a="",d){e.next=12;break}return i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0,msg:"list is null"}),hU.log("initSegmentRequest error"),e.abrupt("return",i);case 12:return r=(d.initSegmentRange||[]).concat(),(B="segment_base"===Q.mpd.dashType)&&(r[1]=d.sidxRange[1]),a=d.initSegment,s="video"===t&&(d.definition||this.bandwidth2item[d.bandwidth].definition),this._checkUrlRange(a),R={mediaType:t,vid:l.vid,definition:"video"===t?s:void 0,useUrlRange:l.useUrlRange,timeout:-1,bitrate:d.avg_bitrate||d.bandwidth||d.bitrate,initSegment:!0,codecType:(null===(U=Q.mpd)||void 0===U?void 0:U.videoCodecType)||"h264",fileId:d.fileId},e.next=21,Q.getData(a,r,t,R,!1,null,F);case 21:return c=e.sent,V=c.res,h=c.headers,u=c.status,Z=c.readyState,S=c.fromCache,J=c.error,V&&"error"!==V?this._handleInitData(V,d.initSegmentRange,B?d.sidxRange:null,h,t).then((function(e){e.newIdx=n,e.mediaType=t,e.initSegmentRange=r,e.cache=S,e.definition=R.definition,e.bitrate=R.bitrate,e.url=a,e.fileId=R.fileId,i.resolve(e)})):i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0,reason:V,status:u,readyState:Z,ext:J instanceof Error?{msg:J.message}:J}),e.abrupt("return",i);case 30:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_makeInitSegemntRequestWithRetry",value:function(){var e=this,U=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"video",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.handleUrlExpire();var Q=new X;return n&&this._pluginInst._kernal.setNodeTime("init".concat(U,"_metastart")),this._makeInitSegemntRequest(U,t,F).then((function(F){e._pluginInst.info({msg:"initSegmentRequest succ"}),n&&(e._pluginInst._kernal.setNodeTime("init".concat(U,"_metadone"),"init".concat(U,"_metastart"),{fromCache:F.cache,byteLength:F.data.byteLength,mediaType:U,index:t,definition:F.definition}),e._emitDefinitionChangeDetailEvent({start:0,bitrate:F.bitrate,mediaType:U,definition:F.definition,url:F.url,fileid:F.fileId})),Q.resolve(F)})).catch((function(e){var n,F=e.message?e.message:e;Q.reject(new wn(pe,wn.INIT_SEGMENT_ERROR,{line:329,mediaType:U,index:t,error:F,message:"reason ".concat((null==e||null===(n=e.ext)||void 0===n?void 0:n.msg)||(null==F?void 0:F.reason)," status ").concat(null==F?void 0:F.status)}))})),Q}},{key:"updateAbrCacheData",value:function(e,U,t){var n=this.dash,F=this.config,Q=F.autoBitrateOpts||{},l=n.mpd.mediaList.video,i=t.definition,d=F.definitionText&&F.definitionText[i]||i,r=l[e],a=t.bitrate;this.bitrateMap[a]={url:r.id,definition:i,definitionName:d},this.defiIdMap[r.id]={bitrate:a,definition:i},e===l.length-1&&this.isOpenAutoDefi&&this.definitions.push({name:Q.autoDefiText||"auto",url:IF,selected:U,definition:"自动",fps:void 0})}},{key:"destroyAbr",value:function(){var e=this,U=this.player;e.abrInstance&&(U&&U.off(XF,this._onAutoDescChange),e.abrInstance.destroy(),e.abrInstance=null)}},{key:"initAbr",value:(U=R(o().mark((function e(){var U,t,n,F,Q=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:U=this,t=this.player,n=this.config,Ut.on(t,XF,this._onAutoDescChange,"dashDestroy"),this.bitrateMap={},this.defiIdMap={},F=aU,U.abrInstance=new HF(t,n,0,n.dashOpts.dynamic_video,5e3,{logger:hU.abr,openLog:F}),Ut.once(t,xF,this.startProgressTimer,"dashDestroy"),U.abrInstance.onAbrChange=function(e,n,F,Q){var l=U.bitrateMap[e],i=U.bitrateMap[n],d=l.definition,r=i.definition;hU.abr("abr change prevD:",d,"curDef:".concat(r)),d!==r&&(U.abrSwitchURL(i.url),t.emit("ABR_CHANGE",{prev:d,cur:r,prevName:l.definitionName,curName:i.definitionName,abrInfo:Q}))},Ut.on(t,gF,U.abrInstance.onAbrChange,"dashDestroy"),Ut.on(t,GF,(function(){if(U.isCurrentInAbr()){var e=5*Math.floor(t.currentTime/5)+5;hU.log("ABR_LIMIT_BITRATE, currentTime",t.currentTime,"removeStart",e),Q.removeBuffer(xe.VIDEO,e,t.duration)}}),"dashDestroy"),U.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi;case 12:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"isCurrentInAbr",value:function(){return!!this.abrInstance&&this.abrInstance.isCurrentInAbr}}]),e}(),Ll=xl,Gl=LU,Il=function(){function e(U){var t=this;c(this,e),u(this,"start",function(){var e=R(o().mark((function e(U){var n,F,Q,l,i,d,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t._checkHasDestroy("start")){e.next=2;break}return e.abrupt("return");case 2:if(t._hasStart&&(t.__dash__&&(t.__dash__.destroy(),t.__dash__=null),t._initProfile(),t._initialize(),t._hasStart=!1),t.setNodeTime("newplayer_start"),n=Date.now(),F=t.__dash__,Q=t._pluginInst,l=Q.player,i=Q.config,l.dashState=WU,l.emit("dashStateChange",WU),U||(U=l.config.url="anytext"),d=new kl(U,t._pluginInst,F),F){e.next=14;break}return t._info({msg:"__dash__ is null, dashOpts",startMs:n,name:"start __dash__"}),e.abrupt("return");case 14:return F.initDash(d),F.dashVideoEncrypted||F.dashAudioEncrypted||t._pluginInst.softVideo?(hU.log("加密视频"),r=!1===i.useEME,i.useEME=AU(),(r||t._pluginInst.softVideo)&&(i.useEME=!1),i.intertrustServerURL&&(i.useEME=!0),i.useEME||(F.crypto=new vl),d.useEME=i.useEME,t._info({msg:"encrypt video ready useEME ".concat(d.useEME)})):(hU.log("非加密视频"),t._info({msg:" no encrypt video ready"})),l.dashState=mU,l.emit("dashStateChange",mU),e.next=20,t._onWasmReady({url:U});case 20:t._info({msg:"info player start execute",startMs:n,name:"start",profile:!0}),t._hasStart=!0;case 22:case"end":return e.stop()}}),e)})));return function(U){return e.apply(this,arguments)}}()),u(this,"_errorHandler",(function(e){var U,n;if(!t._checkHasDestroy("errorHandler")){var F=t._pluginInst,Q=F.player,l=F.config;if(l.codecType===On[Hn].logCodeType&&(null===(U=Q.video.error)||void 0===U||null===(n=U.message)||void 0===n?void 0:n.indexOf("video decoder initialization failed"))>=0&&(hU.log("ErrorHandler DECODER_FAILED"),Q.emit("DECODER_FAILED",{codecType:l.codecType,vid:l.vid})),e instanceof wn)e=new d.Errors(Q,e);else{if(Q.video.error)e=new d.Errors(Q,{errorType:Ze,errorCode:5100+Q.video.error.code});else{var i=e;if("string"!=typeof e)try{i=JSON.stringify(e)}catch(s){i="other"}e=new d.Errors(Q,{errorType:Je,errorCode:0,errorMessage:i})}}if(t._errors.push({time:(new Date).getTime(),err:e}),hU.log(e),Q.emit("xglog_cache"),e&&Q.dashState!==bU){Q.dashState=bU,e.vid=l.vid,e.url=Q.src;var r=t.__dash__,a=r&&r.isCurrentAutoDefi;if(e.errd&&"object"===B(e.errd)&&r&&r.dash&&(e.errd.url=r.dash.url,e.url=r.dash.url),e.url&&e.url.indexOf("blob:")>-1&&l.dashOpts&&l.dashOpts.dynamic_video&&(e.url=l.dashOpts.dynamic_video.main_url),!e||e.errorCode!==t._getCode(Ze,We.MSE_HIJACK)&&e.errorCode!==t._getCode(Ze,We.EME_HIJACK)){if(Q.emit("DATA_REPORT",e),e&&e.errorCode===t._getCode(Se,We.LICENSE))return t._pluginInst.destroyKernal(),void Q.emit("error",e);if(!e||e.errorCode!==t._getCode(Ze,We.MSE_ADD_SB)&&e.errorCode!==t._getCode(he,We.SIDX)){if(e.segmentExpired||"task_request_expired"===e.msg)return r&&r.abrInstance&&"function"==typeof r.abrInstance._stop&&(r.abrInstance._stop(),hU.abr("error stop","expired",e.segmentExpired,e.ex)),void t._pluginInst.emitExpireEvent(e);if(!e.curReqVideoSegInfo&&r&&(e.curReqVideoSegInfo=JSON.parse(JSON.stringify(r.curReqVideoSegInfo||{}))),e.headers||(e.headers=e.curReqVideoSegInfo.headers||{}),!!l.useBackUrl&&!t._pluginInst._hasUsedBackUrl&&l.dashOpts&&l.dashOpts.dynamic_video&&r){hU.log("backup replay");var o=r.changeMainBackUrl(Gl.ERR,t._pluginInst._hasUsedBackUrl);return r.updateDashType(),a?o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!0):(t.currentDefitionFromPlayer&&(o.defaultDefinition=t.currentDefitionFromPlayer.definition),o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!1)),t._pluginInst._hasUsedBackUrl=!0,t._pluginInst.next(Q.currentTime,"REPLAY",o,!0),Q.emit("playCatch","dash",e),void hU.log("playCatch dash",JSON.stringify(e))}r&&r.updateDashType(!0),t._handleDegradeToMp4(e)}else t._handleDegradeToMp4(e)}else Q.emit("error",e)}}})),this._pluginInst=U,this._errors=[],this._initProfile(),this._proxyPlayer(),this._initialize()}var U,t;return h(e,[{key:"_initProfile",value:function(){this.firstFrameTime={newplayer_initkernel:{now:Ut.nowTime(),cost:0,t:1,alias:"a1"},newplayer_start:{now:-1,cost:-1,t:2,alias:"a2"},initmpd:{now:-1,cost:-1,t:3,alias:"a3"},initmpddone:{now:-1,cost:-1,t:4,alias:"a4"},initmse_sbopen:{now:-1,cost:-1,t:5,alias:"a5"},initmse_sbopendone:{now:-1,cost:-1,t:6,alias:"a6"},initvideo_metastart:{now:-1,cost:-1,t:7,i:!0,alias:"a7"},initvideo_metadone:{now:-1,cost:-1,t:8,i:!0,alias:"a8"},initaudio_metastart:{now:-1,cost:-1,t:7,i:!0,alias:"a9"},initaudio_metadone:{now:-1,cost:-1,t:8,i:!0,alias:"b1"},metaready_initsegend:{now:-1,cost:-1,t:7,alias:"b2"},initvideo_segstart:{now:-1,cost:-1,t:8,i:!0,alias:"b3"},initvideo_segdone:{now:-1,cost:-1,t:9,i:!0,alias:"b4"},initaudio_segstart:{now:-1,cost:-1,t:8,i:!0,alias:"b5"},initaudio_segdone:{now:-1,cost:-1,t:9,i:!0,alias:"b6"},initdash:{now:-1,cost:-1,t:9,i:!0,alias:"b7"},initdashdone:{now:-1,cost:-1,t:9,i:!0,alias:"b8"}},this.firstFrameTimeTypeMap={};for(var e=Object.keys(this.firstFrameTime),U=0;U<e.length;U++){var t=this.firstFrameTime[e[U]];t.key=e[U],t.i||(this.firstFrameTimeTypeMap[t.t]=t)}}},{key:"setNodeTime",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=this.firstFrameTime[e];if(n&&(n.now=Ut.nowTime(),t&&(n.extData=t),n.t>1)){var F=U?this.firstFrameTime[U]:this.firstFrameTimeTypeMap[n.t-1];n.cost=n.now-F.now}}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst.player;this._originSwitchURL=e.switchURL,this._originErrorHandler=e.errorHandler,e.switchURL=this._switchURL.bind(this),e._startInit=this.start,e.dash=!0,e.errorHandler=this._errorHandler}},{key:"_info",value:function(e){this._pluginInst&&this._pluginInst.info(e)}},{key:"_onWasmReady",value:(t=R(o().mark((function e(U){var t,n,F,Q,l,i,r,B,s,c,V,h,u,Z,S=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._checkHasDestroy("_onWasmReady")){e.next=2;break}return e.abrupt("return");case 2:return t=U.url,n=this._pluginInst,F=n.player,Q=n.config,l=this.__dash__,i=l.dash,F.dashState=EU,F.emit("dashStateChange",EU),hU.log("监听到wasm_ready"),this._info({msg:"wasm_ready"}),Ut.on(i,"error",this._errorHandler,"destroy"),l.bindComEvent(),e.prev=12,e.next=15,i.init(t);case 15:if(r=e.sent){e.next=19;break}return this._info({msg:"isDestroy ".concat(!F,", isMseNull ").concat(!r)}),e.abrupt("return");case 19:if(hU.time("initReady cost",(new Date).getTime()-l.startTimestamp),F.dashState=kU,F.emit("dashStateChange",kU),hU.log("dash init完成"),i.mpd.mediaList.video.length>0){for(Q.defaultDefinition||(Q.defaultDefinition=Q.dashOpts.dynamic_video.dynamic_video_list[0].definition,l.lastDefiIdx=0),l.isOpenAutoDefi||(l.isCurrentAutoDefi=!1,l.abrInstance.isCurrentInAbr=!1),B=Q.dashOpts.dynamic_video.dynamic_video_list,s=0;s<B.length;s++)c=B[s],l.bandwidth2item[c.bitrate]=c,l.definition2item[c.definition]=c;i.mpd.mediaList.video.sort((function(e,U){return U.height-e.height})),i.mpd.mediaList.video.forEach((function(e,U){var t=l.bandwidth2item[e.bandwidth];if(t){var n=t.definition,d=!(n!==Q.defaultDefinition||l.isOpenAutoDefi&&l.isPlayAutoDefi);l.definitions.push(a({name:Q.definitionText&&Q.definitionText[n]||n,url:e.id,selected:d,definition:t.definition,fps:t.fps},t)),e.frameRate=e.frameRate||t.fps||25;var r=t.bitrate;l.updateAbrCacheData(U,l.isPlayAutoDefi,t),n===Q.defaultDefinition&&(F.emit("initialUrl",i.mpd.mediaList.video[U].baseURL),l.curBitrate=r,l.lastDefiIdx=U),d&&S._pluginInst.setCurrentDefitionInfos(t.definition,t)}})),(V=l.definitions.some((function(e){return e.selected})))&&void 0!==l.lastDefiIdx||(V||(l.definitions[0].selected=!0,h=l.definitions[0].definition,this._pluginInst.setCurrentDefitionInfos(h,l.definition2item[h])),F.emit("initialUrl",i.mpd.mediaList.video[0].baseURL),l.curBitrate=Q.dashOpts.dynamic_video.dynamic_video_list[0].bitrate,l.lastDefiIdx=0),F.emit("resourceReady",l.definitions,Q.dashOpts.dynamic_video.dynamic_video_list),l.abrInstance.updateBitrate(l.curBitrate),F.curDefinition=l.definitions.filter((function(e){return e.selected}))[0]}this._pluginInst.originStartInit.call(F,r.url),hU.time("start call cost",(new Date).getTime()-l.startTimestamp),F.dashState=yU,F.emit("dashStateChange",yU),l.startCheckCanplayTimer(),l.isDashCanUse=!0,l.mse=r,l.emitMenuResolutionChange(),"safari"===d.Sniffer.browser&&(d.Util.addClass(F.root,"canplay"),u=function(){d.Util.removeClass(F.root,"xgplayer-is-enter")},Ut.once(F,"waiting",u)),Z=function(){var e=R(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!S._checkHasDestroy("onStartPlay")){e.next=2;break}return e.abrupt("return");case 2:if(F.emit("dash_start_play"),S._info({msg:"dash_start_play"}),F.dashState=NU,S._info({msg:"START_PLAY ready"}),F.emit("dashStateChange",NU),F.emit("playInterfaceInfo",Q.dashOpts||{}),!l.abrInstance){e.next=12;break}return e.next=11,l.abrInstance.init(i.mpd.mediaList);case 11:l.abrInstance.execute();case 12:l.isCurrentAutoDefi||hU.time("onStartPlay cost not abr",(new Date).getTime()-l.startTimestamp),l.startProgressTimer(),hU.time("onStartPlay cost",(new Date).getTime()-l.startTimestamp),l.setCurrentDefinition();case 16:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Ut.once(i,"start_play",Z),this._info({msg:"START_PLAY dashready"}),F.emit("dashready"),e.next=42;break;case 39:e.prev=39,e.t0=e.catch(12),F.errorHandler(e.t0);case 42:case"end":return e.stop()}}),e,this,[[12,39]])}))),function(e){return t.apply(this,arguments)})},{key:"_initialize",value:function(){this.setNodeTime("newplayer_initkernel"),hU.log("执行dashKernal");var e=this._pluginInst,U=e.player,t=e.config;if(!t.dashOpts)return console.error("dashOpts in plugin config miss"),void this._info({msg:"dashOpts is null",startMs:Date.now(),name:"_initialize",add:!0});(t.dashOpts.Data&&"TOP"===t.playInfoType&&this._playInfoInit(),t.dashOpts.dynamic_video)&&(t.dashOpts.dynamic_video.dynamic_video_list=t.dashOpts.dynamic_video.dynamic_video_list||[],t.dashOpts.dynamic_video.dynamic_audio_list=t.dashOpts.dynamic_video.dynamic_audio_list||[],[t.dashOpts.dynamic_video.dynamic_video_list,t.dashOpts.dynamic_video.dynamic_audio_list].forEach((function(e){e.forEach((function(e){e.bitrate=parseInt(e.real_bitrate||e.bitrate)}))})));var n=LU,F=new Ll({pluginInst:this._pluginInst});this.__dash__=F;var Q=xe.isSupported('video/mp4; codecs="avc1.64001E, mp4a.40.5"');Q?F.changeMainBackUrl(n.INIT,this._hasUsedBackUrl):(this._info({msg:"isCodecSupported ".concat(Q),add:!0}),U.errorHandler(new wn(Ze,We.MEDIA_ERR_CODEC_NOT_SUPPORTED,{message:"init"})))}},{key:"_switchURL",value:(U=R(o().mark((function e(U){var t,n=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=!(n.length>1&&void 0!==n[1])||n[1],this.__dash__.switchURL(U,t);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"_playInfoInit",value:function(){var e=this._pluginInst,U=e.config,t=e.playerConfig;U.vid=U.dashOpts.Data.VideoID||U.dashOpts.Data.Vid,t.vid=U.vid,qF(U)}},{key:"_getCode",value:function(e,U){return me[e][U]}},{key:"_handleDegradeToMp4",value:function(e){var U=this;if(!this._checkHasDestroy("_handleDegradeToMp4")){var t=this._pluginInst,n=t.player,F=t.config;if(F.mp4Opts&&!this._hasDegradeMp4){hU.log("_handleDegradeToMp4"),this._hasDegradeMp4=!0,n.dashState="error_catching";var Q=F.startTime||n.currentTime||0;setTimeout((function(){U._checkHasDestroy("degrademp4")||(U._pluginInst._setStartTime("destroy",Q,!0,!1),n.emit("playertypechange"),n.dashState="error_catch_finished",n.emit("playCatch","dash_mp4_2",e),hU.log("playCatch dash_mp4_2",JSON.stringify(e)),F.defaultFormat="mp4",U._pluginInst.changeKernal(),n.once("canplay",(function(){if(n.config.autoplay){var e=n.video.play();e&&e.catch((function(){}))}})))}),0)}else n.dashState="error_no_mp4opts",n.emit("error",e),hU.log("_handleDegradeToMp4 throw error")}}},{key:"abrInstance",get:function(){return this.__dash__.abrInstance}},{key:"destroy",value:function(){var e=this._pluginInst.player;this.__dash__&&(this.__dash__.destroy(),this.__dash__=null),e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,e.switchURL=this._originSwitchURL,this._pluginInst=null,this._hasStart=!1,hU.log("dashKernal destroy")}},{key:"_checkHasDestroy",value:function(e){return!this._pluginInst&&(this._info({msg:"dashKernal destroy ".concat(e),add:!0}),hU.log("checkHasDestroy",e),!0)}},{key:"executeReady",value:function(){if(!this._checkHasDestroy("executeReady")){var e=this._pluginInst.player;Ut.once(e,"dash_start_play",(function(){e.dashState=fU,e.emit("nextEnded")}))}}},{key:"getStat",value:function(){var e=this;if(!this._checkHasDestroy("getStat")){var U={};if(U.dvps=!!this._pluginInst.pvStartup,U.daps=!!this._pluginInst.paStartup,this.__dash__&&this.__dash__.dash){U.segments=this.__dash__.dash.segment_request;var t=this.__dash__.dash.first_segment_request;this._setSegmentCost("video",t),this._setSegmentCost("audio",t)}var n={},F={};Object.keys(this.firstFrameTime).forEach((function(U){var t=e.firstFrameTime[U];n[U]=t.cost,F[[t.alias]]={c:t.cost,ex:t.extData}})),U.preLoadData=this.getPreloadStat();var Q={},l={};if(this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mse){var i=this.__dash__.dash.mse;if(i._sourceBuffer)for(var d=Object.keys(i._sourceBuffer),r=0;r<d.length;r++){var a=d[r],o=(i._queue[a]||[]).map((function(e){return{opName:e.opName,context:e.context}}));l[a]={updating:i._sourceBuffer[a].updating,queue:o.slice(0,Math.max(5,o.length)),queueEmpty:!i._queue[a]}}}U.mseStat=l,this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mpd&&(Q.video=this.__dash__.dash.mpd._getBuffered("video"),Q.audio=this.__dash__.dash.mpd._getBuffered("audio")),U.bfs=Q;var B=this._pluginInst.player;U.currentTime=B.currentTime;var s=B.video.error;return U.dVideoError=s?{code:s.code,message:s.message}:null,U.errors=this._errors,U.performance=n,U.sfft=F,U}}},{key:"_setSegmentCost",value:function(e,U){var t=U[e],n=t.task,F=t.taskfinish,Q=t.ext,l=t.fromCache,i=t.request,d=this.firstFrameTime["init".concat(e,"_segstart")],r=this.firstFrameTime["init".concat(e,"_segdone")],a=this.firstFrameTime.metaready_initsegend;d.now=i?n:-1,d.cost=i?n-a.now:-1,r.now=i?F:-1,r.cost=i?F-n:-1,r.extData=Q,r.fromCache=l}},{key:"getPreloadStat",value:function(){for(var e=["initaudio_metadone","initvideo_metadone","initaudio_segdone","initvideo_segdone"],U={length:0,byteLength:0,load:[],preload:this._pluginInst.getPreloadStat()},t=0;t<e.length;t++){var n=this.firstFrameTime[e[t]].extData;n&&n.fromCache&&n.byteLength&&(U.length+=n.byteLength,U.byteLength+=n.byteLength,U.load.push(n))}return U}},{key:"pcdnReq",get:function(){var e,U=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==U?void 0:U.pcdnReqCnt()}},{key:"pcdnVVStat",value:function(){var e,U=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==U?void 0:U.pcdnVVStat()}},{key:"encryptedType",get:function(){return this.__dash__.encryptedType}}]),e}(),Ml=function(){function e(U){var t=this;c(this,e),u(this,"start",(function(){var e=t._pluginInst.player;t._pluginInst.originStartInit.call(e,t._url),t._pluginInst.info({msg:"dash mp4 kernal start"})})),u(this,"_errorHandler",(function(e){var U=t._pluginInst.player;if(U.video.error){e=new d.Errors(U,{errorType:Ze,errorCode:5100+U.video.error.code})}else{var n=e;if("string"!=typeof e)try{n=JSON.stringify(e)}catch(Q){n="other"}e=new d.Errors(U,{errorType:Je,errorCode:0,errorMessage:n})}t._stat.error.push({err:e}),hU.log("mp4 error",e);var F=(new Date).getTime()/1e3>=t.urlExpireTimestamp&&t.urlExpireTimestamp>0;t._pluginInst.info({msg:"dash mp4 kernal error happend, url expired ".concat(F),err:e}),!F||!U.video.error||4!==U.video.error.code&&2!==U.video.error.code?U.emit("error",e):t._urlExpiredWhenInit||t._mp4CheckExpire()})),u(this,"_updateMp4Auto",(function(){setTimeout((function(){t._updateMp4AutoDesc()}),0)})),this._url=null,this._pluginInst=U,this._urlExpiredWhenInit=!1,this._initialize(),this._proxyPlayer(),this._stat={type:"mp4",error:[]}}return h(e,[{key:"executeReady",value:function(){var e=this._pluginInst.player;e.dashState=fU,e.emit("nextEnded")}},{key:"_initialize",value:function(){var e=this;this._handleMp4Definitions(),this._getMp4Opts();var U=this._pluginInst.player;U.dash=!1,setTimeout((function(){U.emit("resourceReady",e._mp4Definitions||[],[].concat(e._RawMp4Definitions)),e._updateMp4Auto()})),this.urlExpireTimestamp&&(this._urlExpiredWhenInit=(new Date).getTime()/1e3>=this.urlExpireTimestamp&&this.urlExpireTimestamp>0,this._mp4CheckExpire())}},{key:"_handleMp4Definitions",value:function(){var e=this,U=this._pluginInst,t=U.player,n=U.config;if(n.mp4Opts){var F;this.mp4AutoItem=null;var Q=[].concat(n.mp4Opts.mp4List||[]);Q.every((function(e){return!!e.bitrate}))&&Q.sort((function(e,U){return U.bitrate-e.bitrate}));var l=n.mp4Opts.isOpenAutoDefi,i=n.mp4Opts.isPlayAutoDefi,r=!1;if(l){var a={};Q.forEach((function(e){a[(e.definition||"").toLowerCase()]=e}));for(var o=["720p","480p","360p"],B=null,s=0;s<o.length;s++){var R=a[o[s]];if(R){B=R;break}}if(B){this.mp4AutoItem=B;var c=n.mp4Opts.autoDefiText||"自动",V="".concat(c,"(").concat(B.definition,")");Q.push({definition:c,url:IF,name:V,url_expire:B.url_expire||0,selected:!!i}),r=i}}if(Q.length>0){var h=Q[0].url,u=Q[0].url;Q.forEach((function(e){e.definition===n.defaultDefinition&&(h=e.url,u=e.url)})),l&&i&&this.mp4AutoItem&&(h=this.mp4AutoItem.url,u=IF),this._mp4Url=u,this._url=h,this._pluginInst.loadURL=h}if(!r){for(var Z=0;Z<Q.length;Z++){var S=Q[Z];if(n.defaultDefinition===S.definition){S.selected=!0,r=!0;break}}if(!r){if(!(Q.length>0))return void setTimeout((function(){var e=me[Ze][We.MEDIA_ERR_URL_EMPTY],U=new d.Errors(t,{errorType:Ze,errorCode:e});t.emit(Ae,U),console&&console.error("empty mp4 definitions")}));Q[0].selected=!0}}this._mp4Definitions=Q.map((function(U){n.defaultDefinition===U.definition&&(e._url=U.url,i||(U.selected=!0));var t=JSON.parse(JSON.stringify(U));return t.name=n.definitionText&&n.definitionText[U.definition]||U.definition,t.url_expire=U.url_expire||0,t})),this._backup_url=this._mp4Definitions[0].backup_url,this._RawMp4Definitions=Q;var J=!1;this._pluginInst.setCodeInfo(null===(F=Q[0])||void 0===F?void 0:F.codec_type);for(var p=0;p<Q.length;p++){var W=Q[p];W.codec_type&&W.vtype&&("h264"===W.codec_type&&"mp4"===W.vtype||(J=!0))}J&&t.emit("log",{type:"oneevent",end_type:"mp4_source_exception"})}}},{key:"_getMp4Opts",value:function(){var e=this._pluginInst.player,U={url:this._mp4Url,realUrl:this._url,mp4Definitions:[].concat(this._mp4Definitions)};return this._getPlayInfoTimestamp=(new Date).getTime()/1e3,U.mp4Definitions&&U.mp4Definitions.length>0&&U.mp4Definitions[0]&&(this.urlExpireTimestamp=U.mp4Definitions[0].url_expire||0),this._destroyMp4AutoHandler(),e.on("canplay",this._updateMp4Auto),this.urlExpireTimestamp&&(this.mp4CheckExpire=this._mp4CheckExpire.bind(this),e.on("timeupdate",this.mp4CheckExpire)),U}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst,U=e.player,t=e.config;this._originSwitchURL=U.switchURL,this._originErrorHandler=U.errorHandler,t.defaultFormat="mp4",U._startInit=this.start,U.errorHandler=this._errorHandler,U.switchURL=this._switchURLMp4.bind(this),U.config.url=this._url}},{key:"_switchURLMp4",value:function(e){var U=this,t=this._pluginInst.player,n=e.split("/")[e.split("/").length-1]===IF,F=n?this.mp4AutoItem.url:e;this._pluginInst.loadURL=F,t.curTime=t.currentTime;var Q=t.paused;this._url=n?IF:e,t.ended||(t.src=F,Ut.once(t,"canplay",(function(){if(t.currentTime=t.curTime,!Q){var e=t.play();void 0!==e&&e&&e.catch((function(){}))}}))),n?this._setCurrentDefitionInfos("自动 ".concat(this.mp4AutoItem.definition),this.mp4AutoItem):Ut.once(t,"definitionChange",(function(e){for(var t=e.to,n=null,F=U._pluginInst.cnofig,Q=0;Q<F.mp4Opts.mp4List.length;Q++){var l=F.mp4Opts.mp4List[Q];if(l.definition===t){n=l;break}}U._setCurrentDefitionInfos("".concat(t),n)}))}},{key:"_mp4CheckExpire",value:function(){this._pluginInst.handleUrlExpire(this,!0)}},{key:"_updateMp4AutoDesc",value:function(){var e=this._pluginInst.player,U=this._url!==IF||void 0;this.mp4AutoItem&&(e.emit("MP4_AUTO_DESC_CHANGE",JSON.parse(JSON.stringify(this.mp4AutoItem)),!!U||void 0),U||this._setCurrentDefitionInfos(this.mp4AutoItem.definition,this.mp4AutoItem))}},{key:"_setCurrentDefitionInfos",value:function(e,U){this._pluginInst.setCurrentDefitionInfos(e,U)}},{key:"_destroyMp4AutoHandler",value:function(){var e=this._pluginInst.player;e.off("canplay",this._updateMp4Auto),e.off("timeupdate",this._mp4CheckExpire)}},{key:"destroy",value:function(){var e=this._pluginInst.player;e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,this._destroyMp4AutoHandler(),this._pluginInst.unloadVideo(),e.switchURL=this._originSwitchURL}},{key:"getStat",value:function(){var e=this._pluginInst.player;this._stat.currentTime=e.currentTime;var U=e.video.error;return this._stat.videoError=U?{code:U.code,message:U.message}:null,this._stat}}]),e}(),Yl=tt,wl=it,Kl=d.Events.STATS_EVENTS,jl="mp4",_l="dash",Hl="void";function zl(e){return{playerVersion:{get:function(){return"3.5.23"},configurable:!0},downloadSpeed:{get:function(){return TF.currentSpeed/8},configurable:!0},historyAvspeed:{get:function(){return TF.historyAvspeed/8},configurable:!0},abrInstance:{get:function(){return e.abrInstance},configurable:!0},menuCodeType:{get:function(){return e.menuCodeType},configurable:!0},playerType:{get:function(){return e.playerType},configurable:!0},supportMenus:{get:function(){return e.supportMenus},configurable:!0},domain:{get:function(){return e.domain},configurable:!0},loadURL:{get:function(){return e.loadURL},configurable:!0},performance:{get:function(){var U=e.stat;return U&&U.performance},configurable:!0},stat:{get:function(){return e.stat},configurable:!0},preLoadData:{get:function(){var U=e.stat;return U&&U.preLoadData?U.preLoadData:{byteLength:0}},configurable:!0},ext:{get:function(){var U=Math.max(0,TF.historySpeed.length-10),t=TF.historySpeed.slice(U,U+10);return a(a({},e.stat),{},{speed:t.map((function(e){return"".concat(e/8)})),vtype:"DASH",format:e._kernalType,performance:void 0,preLoadData:void 0})},configurable:!0},getLogCache:{get:function(){var e=VU();return e.getLogCache&&e.getLogCache()},configurable:!0},pcdnReq:{get:function(){return e._kernalType===_l?e._kernal.pcdnReq:null},configurable:!0},currentDefitionFromPlayer:{get:function(){return e.currentDefitionFromPlayer},configurable:!0},encryptedInfo:{get:function(){return{encryptedType:e._kernal.encryptedType||0}},configurable:!0},pcdnVVStat:{get:function(){return e._kernalType===_l?e._kernal.pcdnVVStat():null},configurable:!0}}}var Ol=null,Pl=function(e){Z(t,e);var U=m(t);function t(){var e;c(this,t);for(var n=arguments.length,F=new Array(n),Q=0;Q<n;Q++)F[Q]=arguments[Q];return u(W(e=U.call.apply(U,[this].concat(F))),"_hasUsedBackUrl",!1),u(W(e),"_pendingPreloaders",[]),e}return h(t,[{key:"initDashPlayer",value:function(e){var U=this;this._checkVideoSwitch();var t=this.config;this._hasTriggerBufferThreshold=!1,this._setArgsFromConfig(),this.lastBuffer="0,0",this._menuCodeType=null,this._setConfigDashType(),Ut.promisePolyfill(),(window.location.href.indexOf("playerInstance=true")>-1||g.getItem("playerInstance"))&&(void 0===window.dashPlayerInstanceList&&(window.dashPlayerInstanceList=[]),window.dashPlayerInstanceList.push(e)),this.dashPreloader=new eQ(e,t,hU.preload,this.bitRateAdapter),e.preloader=this.dashPreloader;this._pendingPreloaders.length>0&&(this.addPreloaderList(this._pendingPreloaders),this._pendingPreloaders=[]),this._startBufferCheck(),Ut.on(e,Yl,(function(){U.dashPreloader.preloadNext()}),"destroy"),this.changeKernal(!1),window.addEventListener("beforeunload",this.cacheSpeed)}},{key:"_checkVideoSwitch",value:function(){var e=this.player,U=this.playerConfig.mediaType;if(this.softVideo="xg-video"===U,!(e.video instanceof HTMLVideoElement||this.softVideo)){var t=d.Util.createDom("video","",this.getVideoConfig(this.playerConfig));this.removeVideo=e.video,t.muted=e.video.muted,t.volume=e.video.volume,e.video=t,e.attachVideoEvents(e.video);var n=this.removeVideo.parentNode;n&&n.removeChild(this.removeVideo),this.removeVideo=null}}},{key:"getVideoConfig",value:function(e){var U=Object.assign({},{controls:!1,autoplay:e.autoplay,playsinline:e.playsinline,"x5-playsinline":e.playsinline,"webkit-playsinline":e.playsinline,"x5-video-player-fullscreen":e["x5-video-player-fullscreen"]||e.x5VideoPlayerFullscreen,"x5-video-orientation":e["x5-video-orientation"]||e.x5VideoOrientation,airplay:e.airplay,"webkit-airplay":e.airplay,tabindex:2,mediaType:e.mediaType||"video"},e.videoConfig,e.videoAttributes);return e.loop&&(U.loop="loop"),U}},{key:"bitRateAdapter",get:function(){var e=this.player,U=this.config;return e&&e.plugins&&U.needAutoBitrate?e.plugins.bitrateselector:null}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NEXT",t=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0;hU.log("next currentTime: ".concat(e,", nextType: ").concat(U,", autoplay:").concat(n));var F=this.player,Q=this.config;this._pendingPreloaders=[],this._pausedWhenExpiredRestart=!1,"MEDIA_EXPIRED"===U&&F.paused&&(this._pausedWhenExpiredRestart=!0),F.dashState="next_start";var l=!1;if(F.isSrcVoid||!Q.dashOpts&&!Q.mp4Opts||F.ended||"MEDIA_EXPIRED"===U||"REPLAY"===U||F.duration&&F.currentTime<F.duration-1&&(F.emit("logger_next",U),l=!0),this._hasTriggerBufferThreshold=!1,F.emit("next",U),F.emit("playertypechange"),t)for(var i in t)Q[i]=t[i];this._setArgsFromConfig(),l&&this._setConfigDashType(),"NEXT"===U&&F.resetState&&F.resetState(),F.config.startTime=e,F.config.startTimeCache=e,t&&(F.config.DASHPlugin=t);var d=F.config.autoplay;this._pausedWhenExpiredRestart&&d&&(F.config.autoplay=!1,F.once("canplay",(function(){setTimeout((function(){F.config.autoplay=d,F.pause()}))}))),this._syncParameters(),this.changeKernal(!0,!0),!n&&!F.config.autoplay||this._pausedWhenExpiredRestart||F.once("canplay",(function(){if(F.video&&(F.config.autoplay||n)){var e=F.video.play();e&&e.catch((function(){}))}})),this._pausedWhenExpiredRestart&&(this._pausedWhenExpiredRestart=!1)}},{key:"_replay",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.next(e,"REPLAY",void 0,!0)}},{key:"startPlayHandler",value:function(e,U,t){var n=this.config;if(n.dashOpts||n.mp4Opts){var F="NEXT"===U||"REPLAY"===U;this._setStartTime(t,e,F,!0)}}},{key:"beforePlayerInit",value:function(){if(!this._hasExecuteBeforeInit){var e=this.player;d.BasePlugin.defineGetterOrSetter(e,zl(this)),this._hasExecuteBeforeInit=!0,e.isReady=!0,this._kernalType===_l&&(e.vtype="DASH")}}},{key:"afterCreate",value:function(){var e=this;this.steps=[];var U=this.player,t=this.config;this._syncParameters(),U.config.nullUrlStart=!0,VU().logMaxSize=t.logMaxSize,this._proxyPlayer(),this.initDashPlayer(U),this.on("xglog",(function(t){"firstFrame"===t.eventType&&hU.log("[xgplayer-encrypt]>>>>firstFrame ",e.playerConfig.vid,t.fvt,"stat",U.stat)}))}},{key:"info",value:function(e){var U=this.player;Kl&&U.emit(Kl.STATS_INFO,e),e.add&&this.steps.push(e)}},{key:"resetStat",value:function(){var e=this.player;Kl&&e.emit(Kl.STATS_RESET)}},{key:"_syncParameters",value:function(){var e=this.config,U=this.playerConfig,t=e.vid||U.vid;e.vid=U.vid=t,U.autoBitrateOpts=e.autoBitrateOpts}},{key:"_proxyPlayer",value:function(){var e=this,U=this.player;this._originStartInit=U._startInit,U.getPreloadInfos=this.getPreloadInfos.bind(this),U.useHooks("replay",(function(U){e._replay()})),"function"==typeof this.player.playNext&&(Ol=this.player.playNext),this.player.playNext=function(){e.playNext.apply(e,arguments)}}},{key:"playNext",value:function(){for(var e=this.player,U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];var F=t[0],Q=t[1],l=t[2],i=t[3];e.setConfig(F),this.next(Q,l,F.DASHPlugin,i)}},{key:"_setKernalType",value:function(){var e=this.config;e.dashOpts||e.mp4Opts?e.dashOpts&&e.mp4Opts?this._kernalType=e.defaultFormat:e.dashOpts?this._kernalType=_l:this._kernalType=jl:this._kernalType=Hl}},{key:"changeKernal",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],U=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._setKernalType();var t=this.player;this.destroyKernal();var n=this._kernalType;n===Hl?(t.isSrcVoid=!0,t.emit("playOptsVoid"),U&&t.emit("nextEnded")):(t.isSrcVoid=!1,this._setStartTime("destroy",t.config.startTime,!0,!1),n===jl?(this._kernal=new Ml(this),t.vtype="dash_mp4"):n===_l&&(this._kernal=new Il(this))),e&&this._kernal&&(this._kernal.start(),U&&this._kernal.executeReady())}},{key:"destroyKernal",value:function(){this._kernal&&(hU.log("destroyKernal type ".concat(this._kernalType)),this._kernal.destroy(),this._kernal=null)}},{key:"originStartInit",get:function(){return this._originStartInit}},{key:"_setArgsFromConfig",value:function(){var e=this.config;this._bufferThreshold=e.bufferThreshold}},{key:"setCurrentDefitionInfos",value:function(e,U){var t=U?U.fps:void 0;this._currentDefinition={definition:e,fps:t,item:U}}},{key:"handleUrlExpire",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.config,F=this.player,Q=F.paused,l=(new Date).getTime()/1e3>=e.urlExpireTimestamp&&e.urlExpireTimestamp>0;if(l&&(t||!Q)&&n.getServerTime)F.serverTimeDiffPromise=F.serverTimeDiffPromise||n.getServerTime().catch((function(){return 0})),F.serverTimeDiffPromise.then((function(t){if(t&&(F.serverTimeDiff=(new Date).getTime()/1e3-t),(new Date).getTime()/1e3>=e.urlExpireTimestamp+F.serverTimeDiff){e.urlExpireTimestamp=5e9;var n=new wn(Re);U.emitExpireEvent(n)}}));else if(l){var i=new wn(Re);this.emitExpireEvent(i)}}},{key:"emitExpireEvent",value:function(e){var U=this.player,t=(new Date).getTime()/1e3;this.emitExpireTimestamp?t-this.emitExpireTimestamp>300&&(this.emitExpireTimestamp=t,U.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"})):(this.emitExpireTimestamp=t,U.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"}))}},{key:"_getCurDashType",value:function(){var e=g.getItem(GU);return e===xU.BACK?e:xU.MAIN}},{key:"_setCurDashType",value:function(){this._initDashType=this._getCurDashType()}},{key:"_setConfigDashType",value:function(){this._setCurDashType();var e=this.playerConfig.vodLogOpts;e&&(e.currentDashType=this._initDashType)}},{key:"addDashPreloader",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.dashPreloader?(this._setPreloaderLoadMode(!1),this.dashPreloader.addPreloader(e,this.config.vid||this.player.config.vid)):(console&&console.warn("dashPreloader has destroyed"),this._pendingPreloaders.push(e))}},{key:"addPreloader",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.addDashPreloader(e)}},{key:"_setPreloaderLoadMode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.dashPreloader&&(this.dashPreloader.preloadManager.autoPreload=e)}},{key:"addDashPreloaderList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.dashPreloader?(this._setPreloaderLoadMode(!1),this.dashPreloader.addPreloaderList(e,this.config.vid||this.player.config.vid)):(console&&console.warn("dashPreloader has destroyed"),this._pendingPreloaders=this._pendingPreloaders.concat(e))}},{key:"addPreloaderList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.addDashPreloaderList(e)}},{key:"setCodeInfo",value:function(e){var U=this.playerConfig.vodLogOpts,t=On[e],n=On[jn],F=n.logCodeType,Q=n.codecs;t&&(F=t.logCodeType,Q=t.codecs),U&&(U.codec_type=F),this.menuCodeType=Q,this.config.codecType=F}},{key:"cacheSpeed",value:function(){try{var e=TF.historyAvspeed;e>0&&e!==1/0&&g.setItem(SU,e)}catch(U){}window.removeEventListener("beforeunload",this.cacheSpeed)}},{key:"unloadVideo",value:function(){var e=this.player;try{e.video&&e.video.src&&(e.video.removeAttribute("src"),e.video.load())}catch(U){}}},{key:"destroy",value:function(){var e=this.player;clearInterval(this._bufferCheckTimer),this.cacheSpeed(),this.destroyKernal(),this.bitRateAdapter&&this.bitRateAdapter.destroy();var U=zl(this);Object.keys(U).forEach((function(U){delete e[U]})),this.player.playNext=Ol,this.player.removeHooks("replay")}},{key:"_processPreloadProgress",value:function(e,U){for(var t=this.config,n=["video"],F=0;F<n.length;F++){var Q=n[F],l=this.preloadManager.preloadCacheProgress({vid:t.vid,format:"dash",mediaType:Q,prelaodType:e.preloadType,bitrate:e.bitrate,set_duration:e.pduration,set_size:e.size,media_type:"video"===Q?wl.VIDEO:wl.AUDIO});l&&U.push(l)}}},{key:"getPreloadInfos",value:function(){var e=this.config;if(this.preloadManager&&this.preloadManager.preloadCacheProgress){var U=this.preloadManager.cachedDatas[e.vid],t=[];if(this._processPreloadProgress(U||{},t),t.length>0){var n={item_num:t.length,items:t},F={preloadInfo:n};return U&&(F.abr=1),hU.preload("updatePreloadCacheInfo",n),F}}return null}},{key:"getPreloadStat",value:function(){var e=this.playerConfig.vid||this.config.vid;if(this.preloadManager&&this.preloadManager._preloadCacheProgress){var U={},t=this.preloadManager.getProgressCacheKey(e,"dash","video"),n=this.preloadManager.getProgressCacheKey(e,"dash","audio");return U.video=this.preloadManager._preloadCacheProgress[t],U.audio=this.preloadManager._preloadCacheProgress[n],U}return{}}},{key:"_onBufferReachThreshold",value:function(){var e=this.player;if(e.video){for(var U=e.video.buffered,t=0,n=0,F=0;F<U.length&&(t=U.start(F),n=U.end(F),!(t<=e.video.currentTime&&e.video.currentTime<=n));F++);n-e.video.currentTime>=this._bufferThreshold&&!this._hasTriggerBufferThreshold&&(this._hasTriggerBufferThreshold=!0,e.emit("BUFFER_THRESHOLD",n-e.video.currentTime))}}},{key:"_startBufferCheck",value:function(){var e=this,U=this.player;this._bufferCheckTimer=setInterval((function(){if(U.video){for(var t=[],n=0,F=U.video.buffered.length;n<F;n++)t.push([U.video.buffered.start(n),U.video.buffered.end(n)]);t.toString()!==e.lastBuffer&&(e.lastBuffer=t.toString(),e._onBufferReachThreshold())}}),200)}},{key:"_setStartTime",value:function(e,U,t,n){var F=this,Q=this.player,l=this.playerConfig,i=this.config;if(U>0||n){var d=!1,r=function(){d||(d=!0,Q.currentTime=U,l.startTime=0,t&&U>0&&Q.emit("setStartTime"),"mp4"===i.defaultFormat&&F.setCodeInfo(jn))};Ut.once(Q,"canplay",r,e),Ut.once(Q,"playing",r,e)}}},{key:"preloadManager",get:function(){return this.dashPreloader?this.dashPreloader.preloadManager:null}},{key:"domain",get:function(){return this._cdnHost?this._cdnHost:null}},{key:"playerType",get:function(){return this.config.defaultFormat}},{key:"supportMenus",get:function(){var e="dash"===this.config.defaultFormat;return{speed:e,cdn:e,resolution:e}}},{key:"currentDefitionFromPlayer",get:function(){return this._currentDefinition}},{key:"abrInstance",get:function(){return this._kernal&&this._kernal.abrInstance?this._kernal.abrInstance:null}},{key:"menuCodeType",get:function(){return this._menuCodeType},set:function(e){var U=this.player;this._menuCodeType=e,U.emit("codecsupdate",e)}},{key:"stat",get:function(){var e=this.player;if(this._kernal&&!e.isSrcVoid){var U=this._kernal.getStat();return U.steps=this.steps.slice(0,Math.max(10,this.steps.length)),this.steps=[],e.video&&e.video.error&&(U.media={readyState:e.video.readyState,error:e.video.error.code,errorMsg:e.video.error.message}),U}return null}},{key:"loadURL",get:function(){return this._loadURL},set:function(e){this._loadURL=e;var U=Ut.getHostFromUrl(e);this._cdnHost!==U&&(this._cdnHost=U,this.player&&this.player.emit("changeHost",U))}}],[{key:"registerPreloader",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e.vtype=xt.DASH,eQ.BitRateAdapter=U,new eQ(null,e,console.log)}},{key:"pluginName",get:function(){return"DASHPlugin"}},{key:"defaultConfig",get:function(){return{bufferThreshold:10,defaultFormat:"dash",useEME:null,getLicenseUrl:"",intertrustServerURL:null,defaultDefinition:null,useGapJump:!0,useDurationBackoff:!1,preloadTime:void 0,maxBufferLength:void 0,minBufferLength:10,dynamicPreloadTimeOpts:null,preloadCancelTime:5,progressTimer:1e3,disableCanplayCheck:!0,disableDashNoCanplayCheck:!0,disableBufferBreakCheck:!0,definitionText:null,useUnionInfoDRM:!1,keyTokenExpiredDuration:null,keyToken:null,playDomain:null,usePlaySpade:!1,preloadBufferThreshold:.5,vtype:xt.DASH,focusUserDefinition:!1,useProgressiveAppend:!1,loader:bF,logMaxSize:204800,timeout:5e3,reqOptions:{}}}},{key:"isEMESupported",value:function(){return AU()}},{key:"encryptUtils",get:function(){return qU}},{key:"DashPreloader",get:function(){return eQ}}]),t}(d.BasePlugin);return Pl.updateUnionInfo=rQ.XGSecretKey.updateUnionInfo,Pl}));
|
|
1
|
+
// Built @Mon, 08 Jul 2024 12:37:54 GMT
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.regexp.to-string.js"),require("xgplayer"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.search.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.typed-array.of.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.typed-array.uint8-array.js"),require("core-js/modules/es.typed-array.copy-within.js"),require("core-js/modules/es.typed-array.every.js"),require("core-js/modules/es.typed-array.fill.js"),require("core-js/modules/es.typed-array.filter.js"),require("core-js/modules/es.typed-array.find.js"),require("core-js/modules/es.typed-array.find-index.js"),require("core-js/modules/es.typed-array.for-each.js"),require("core-js/modules/es.typed-array.includes.js"),require("core-js/modules/es.typed-array.index-of.js"),require("core-js/modules/es.typed-array.iterator.js"),require("core-js/modules/es.typed-array.join.js"),require("core-js/modules/es.typed-array.last-index-of.js"),require("core-js/modules/es.typed-array.map.js"),require("core-js/modules/es.typed-array.reduce.js"),require("core-js/modules/es.typed-array.reduce-right.js"),require("core-js/modules/es.typed-array.reverse.js"),require("core-js/modules/es.typed-array.set.js"),require("core-js/modules/es.typed-array.slice.js"),require("core-js/modules/es.typed-array.some.js"),require("core-js/modules/es.typed-array.sort.js"),require("core-js/modules/es.typed-array.subarray.js"),require("core-js/modules/es.typed-array.to-locale-string.js"),require("core-js/modules/es.typed-array.to-string.js"),require("core-js/modules/es.array-buffer.constructor.js"),require("core-js/modules/es.string.replace.js"),require("core-js/modules/es.array.join.js"),require("core-js/modules/es.number.constructor.js"),require("core-js/modules/es.number.to-fixed.js"),require("core-js/modules/es.promise.finally.js"),require("core-js/modules/es.string.match.js"),require("core-js/modules/es.array.sort.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.number.is-finite.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/web.url.js"),require("core-js/modules/web.url-search-params.js"),require("core-js/modules/es.string.includes.js"),require("core-js/modules/es.array.splice.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.object.values.js"),require("core-js/modules/es.string.split.js"),require("core-js/modules/es.map.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js"),require("core-js/modules/es.number.is-nan.js"),require("core-js/modules/es.string.repeat.js"),require("core-js/modules/es.array.find.js"),require("core-js/modules/es.typed-array.int32-array.js")):"function"==typeof define&&define.amd?define(["core-js/modules/es.array.slice.js","core-js/modules/es.array.map.js","core-js/modules/es.array.concat.js","core-js/modules/es.object.assign.js","core-js/modules/es.object.to-string.js","core-js/modules/web.dom-collections.for-each.js","core-js/modules/es.object.keys.js","core-js/modules/es.regexp.to-string.js","xgplayer","core-js/modules/es.regexp.exec.js","core-js/modules/es.string.search.js","core-js/modules/es.array.includes.js","core-js/modules/es.promise.js","core-js/modules/es.typed-array.of.js","core-js/modules/es.array.iterator.js","core-js/modules/es.typed-array.uint8-array.js","core-js/modules/es.typed-array.copy-within.js","core-js/modules/es.typed-array.every.js","core-js/modules/es.typed-array.fill.js","core-js/modules/es.typed-array.filter.js","core-js/modules/es.typed-array.find.js","core-js/modules/es.typed-array.find-index.js","core-js/modules/es.typed-array.for-each.js","core-js/modules/es.typed-array.includes.js","core-js/modules/es.typed-array.index-of.js","core-js/modules/es.typed-array.iterator.js","core-js/modules/es.typed-array.join.js","core-js/modules/es.typed-array.last-index-of.js","core-js/modules/es.typed-array.map.js","core-js/modules/es.typed-array.reduce.js","core-js/modules/es.typed-array.reduce-right.js","core-js/modules/es.typed-array.reverse.js","core-js/modules/es.typed-array.set.js","core-js/modules/es.typed-array.slice.js","core-js/modules/es.typed-array.some.js","core-js/modules/es.typed-array.sort.js","core-js/modules/es.typed-array.subarray.js","core-js/modules/es.typed-array.to-locale-string.js","core-js/modules/es.typed-array.to-string.js","core-js/modules/es.array-buffer.constructor.js","core-js/modules/es.string.replace.js","core-js/modules/es.array.join.js","core-js/modules/es.number.constructor.js","core-js/modules/es.number.to-fixed.js","core-js/modules/es.promise.finally.js","core-js/modules/es.string.match.js","core-js/modules/es.array.sort.js","core-js/modules/es.array.filter.js","core-js/modules/es.number.is-finite.js","core-js/modules/es.string.iterator.js","core-js/modules/web.dom-collections.iterator.js","core-js/modules/web.url.js","core-js/modules/web.url-search-params.js","core-js/modules/es.string.includes.js","core-js/modules/es.array.splice.js","core-js/modules/es.function.name.js","core-js/modules/es.object.values.js","core-js/modules/es.string.split.js","core-js/modules/es.map.js","core-js/modules/esnext.map.delete-all.js","core-js/modules/esnext.map.every.js","core-js/modules/esnext.map.filter.js","core-js/modules/esnext.map.find.js","core-js/modules/esnext.map.find-key.js","core-js/modules/esnext.map.includes.js","core-js/modules/esnext.map.key-of.js","core-js/modules/esnext.map.map-keys.js","core-js/modules/esnext.map.map-values.js","core-js/modules/esnext.map.merge.js","core-js/modules/esnext.map.reduce.js","core-js/modules/esnext.map.some.js","core-js/modules/esnext.map.update.js","core-js/modules/es.number.is-nan.js","core-js/modules/es.string.repeat.js","core-js/modules/es.array.find.js","core-js/modules/es.typed-array.int32-array.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).DashPlugin=t(null,null,null,null,null,null,null,null,e.Player)}(this,(function(e,t,n,U,F,Q,i,l,r){"use strict";function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(){o=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(N){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof B?t:B,i=Object.create(Q.prototype),l=new E(F||[]);return U(i,"_invoke",{value:J(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(N){return{type:"throw",arg:N}}}e.wrap=a;var s={};function B(){}function c(){}function R(){}var V={};r(V,Q,(function(){return this}));var u=Object.getPrototypeOf,h=u&&u(u(y([])));h&&h!==t&&n.call(h,Q)&&(V=h);var Z=R.prototype=B.prototype=Object.create(V);function S(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function p(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function J(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=m(i,n);if(l){if(l===s)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===s)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function m(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,m(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),s;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,s;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}function W(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function y(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:f}}function f(){return{value:void 0,done:!0}}return c.prototype=R,U(Z,"constructor",{value:R,configurable:!0}),U(R,"constructor",{value:c,configurable:!0}),c.displayName=r(R,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===c||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,r(e,l,"GeneratorFunction")),e.prototype=Object.create(Z),e},e.awrap=function(e){return{__await:e}},S(p.prototype),r(p.prototype,i,(function(){return this})),e.AsyncIterator=p,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new p(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},S(Z),r(Z,l,"Generator"),r(Z,Q,(function(){return this})),r(Z,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=y,E.prototype={constructor:E,reset:function(e){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(k),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,s):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),s},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;k(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:y(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),s}},e}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function B(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function c(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){B(Q,U,F,i,l,"next",e)}function l(e){B(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function V(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,b(U.key),U)}}function u(e,t,n){return t&&V(e.prototype,t),n&&V(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function h(e,t,n){return(t=b(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function J(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function W(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,U=S(e);if(t){var F=S(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,n)}}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var U,F,Q,i,l=[],r=!0,a=!1;try{if(Q=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;r=!1}else for(;!(r=(U=Q.call(n)).done)&&(l.push(U.value),l.length!==t);r=!0);}catch(d){a=!0,F=d}finally{try{if(!r&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(a)throw F}}return l}}(e,t)||y(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||y(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function N(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=y(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function b(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var v=function(){function e(){R(this,e)}return u(e,null,[{key:"install",value:function(){if(window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame,!window.requestAnimationFrame){var e=Date.now();window.requestAnimationFrame=function(t){var n=Date.now(),U=Math.max(16.7-(n-e),0),F=setTimeout(t,U);return e=n+U,F}}window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}}]),e}(),T=function(){function e(){R(this,e),this.fps=0,this.isStoped=!0,this.ticks=[],this.isSupport=!0,this.maxFps=0,this.step=this._step.bind(this),this.rafId=null}return u(e,[{key:"_step",value:function(e){var t=this.ticks;if(t.unshift(e),t.length>10){var n=t.pop();n&&(this.fps=Math.floor(1e4/(e-n)),this.updateFpsInfo())}this.isStoped||(this.rafId=window.requestAnimationFrame(this.step))}},{key:"updateFpsInfo",value:function(){this.fps>this.maxFps&&(this.maxFps=this.fps)}},{key:"start",value:function(){void 0!==window.requestAnimationFrame&&(this.isStoped=!1,this.rafId=window.requestAnimationFrame(this.step))}},{key:"stop",value:function(){window.cancelAnimationFrame(this.rafId),this.isStoped=!0}}],[{key:"install",value:function(){v.install()}}]),e}(),C=function(){function e(){R(this,e),this.timeID=null,this.func=null}return u(e,[{key:"repeat",value:function(e,t){this.timeID=1,this.repeatInterval(e,t)}},{key:"repeatInterval",value:function(e,t){var n=this;this.timeID&&(null===this.func&&(this.func=e),this.func===e&&(this.timeID&&clearTimeout(this.timeID),this.timeID=null,this.timeID=setTimeout((function(){e(),n.repeatInterval(e,t)}),t)))}},{key:"clear",value:function(){clearTimeout(this.timeID),this.timeID=null}}]),e}(),g=D&&!function(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(t){return!0}}();function D(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}var X={length:g?localStorage.length:0,clear:function(e){try{for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}}catch(U){}},getItem:function(e){try{return localStorage.getItem(e)}catch(t){return null}},key:function(e){try{return localStorage.key(e)}catch(t){return null}},setItem:function(e,t){try{localStorage.setItem(e,t)}catch(n){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(t){}},isSupport:g},x=function(){function e(){var t,n;R(this,e);var U=new Promise((function(e,U){t=e,n=U}));return U.resolve=t,U.reject=n,U}return u(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),L=function(){function e(){R(this,e)}return u(e,null,[{key:"parse",value:function(t){var n=e.parseXmlString(t);return null!==n?e.parseDOMChildren(n):null}},{key:"parseXmlString",value:function(e){if(void 0===e)return null;var t,n=new window.DOMParser;try{(t=n.parseFromString(e,"text/xml")).getElementsByTagNameNS("*","parsererror").length>0&&(t=null)}catch(U){t=null}return t}},{key:"parseDOMChildren",value:function(t,n){if(t.nodeType===Node.DOCUMENT_NODE){for(var U={},F=t.childNodes,Q=0;Q<F.length;Q++){var i=F[Q];i.nodeType===Node.ELEMENT_NODE&&(U=e.parseDOMChildren(i))}return U}if(t.nodeType===Node.ELEMENT_NODE){for(var l={__cnt:0},r=[],a=t.childNodes,d=0;d<a.length;d++){var o=a[d],s=e.getNodeLocalName(o);if(o.nodeType!==Node.COMMENT_NODE){var B="".concat(n,".").concat(s);if(l.__cnt++,null==l[s]){var c=e.parseDOMChildren(o,B);if("#text"!==s||/[^\s]/.test(c)){var R={};R[s]=c,r.push(R)}l[s]=c,e.toArrayAccessForm(l,s)}else{null!=l[s]&&(l[s]instanceof Array||(l[s]=[l[s]],e.toArrayAccessForm(l,s,B)));var V=e.parseDOMChildren(o,B);if("#text"!==s||/[^\s]/.test(V)){var u={};u[s]=V,r.push(u)}l[s][l[s].length]=V}}}for(var h=0;h<t.attributes.length;h++){var Z=t.attributes[h];l.__cnt++;var S=Z.value;l[Z.name]=S}var p=t.prefix;return null!=p&&""!==p&&(l.__cnt++,l.__prefix=p),null!=l["#text"]&&(l.__text=l["#text"],l.__text instanceof Array&&(l.__text=l.__text.join("\n")),delete l["#text"],delete l["#text_asArray"]),null!=l["#cdata-section"]&&(l.__cdata=l["#cdata-section"],delete l["#cdata-section"],delete l["#cdata-section_asArray"]),1===l.__cnt&&null!=l.__text?l=l.__text:1===l.__cnt&&null!=l.__cdata&&(l=l.__cdata),delete l.__cnt,l}if(t.nodeType===Node.TEXT_NODE||t.nodeType===Node.CDATA_SECTION_NODE)return t.nodeValue}},{key:"getNodeLocalName",value:function(e){var t=e.localName;return null==t&&(t=e.baseName),null!=t&&""!==t||(t=e.nodeName),t}},{key:"toArrayAccessForm",value:function(e,t){e[t]instanceof Array||(e[t]=[e[t]])}}]),e}();function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function G(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){P(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function M(){M=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,reset:function(e){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(W),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),o},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function Y(e){return(Y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function K(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){w(Q,U,F,i,l,"next",e)}function l(e){w(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,le(U.key),U)}}function H(e,t,n){return t&&j(e.prototype,t),n&&j(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function P(e,t,n){return(t=le(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&A(e,t)}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e,t){return(A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function q(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function $(e,t,n){return($=q()?Reflect.construct.bind():function(e,t,n){var U=[null];U.push.apply(U,t);var F=new(Function.bind.apply(e,U));return n&&A(F,n.prototype),F}).apply(null,arguments)}function ee(e){var t="function"==typeof Map?new Map:void 0;return ee=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,U)}function U(){return $(e,arguments,O(this).constructor)}return U.prototype=Object.create(e.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),A(U,e)},ee(e)}function te(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function ne(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ue(e){var t=q();return function(){var n,U=O(e);if(t){var F=O(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return ne(e)}(this,n)}}function Fe(){return Fe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var U=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=O(e)););return e}(e,t);if(U){var F=Object.getOwnPropertyDescriptor(U,t);return F.get?F.get.call(arguments.length<3?e:n):F.value}},Fe.apply(this,arguments)}function Qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function ie(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Qe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qe(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function le(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}Promise.withResolvers||(Promise.withResolvers=function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e});var re,ae=function(){function e(){_(this,e)}return H(e,null,[{key:"start",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6||1===e.length&&e.start(0)<0?0:e.start(0):0}},{key:"end",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6?0:e.end(e.length-1):0}},{key:"get",value:function(e){if(e)try{return e.buffered}catch(t){}}},{key:"buffers",value:function(e,t){if(!e||!e.length)return[];for(var n=[],U=0,F=e.length;U<F;U++){var Q=n.length;if(Q&&t){var i=n[Q-1],l=i[1];if(e.start(U)-l<=t){var r=e.end(U);r>l&&(i[1]=r)}else n.push([e.start(U),e.end(U)])}else n.push([e.start(U),e.end(U)])}return n}},{key:"totalLength",value:function(e){return e&&e.length?e.reduce((function(e,t){return e+(t[1]-t[0])}),0):0}},{key:"info",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!t||!t.length)return{start:0,end:0,buffers:[]};for(var F=0,Q=0,i=0,l=0,r=0,a=0,d=0,o=e.buffers(t,U),s=0,B=o.length;s<B;s++){var c=o[s];if(n+U>=c[0]&&n<=c[1])F=c[0],Q=c[1],i=s;else{if(n+U<c[0]){l=c[0],r=c[1];break}n+U>c[1]&&(a=c[0],d=c[1])}}return{start:F,end:Q,index:i,buffers:o,nextStart:l,nextEnd:r,prevStart:a,prevEnd:d,currentTime:n,behind:n-F,remaining:Q?Q-n:0,length:e.totalLength&&e.totalLength(o)}}}]),e}(),de="undefined"!=typeof window,oe="manifest",se="network",Be="network_timeout",ce="network_forbidden",Re="network_notfound",Ve="network_range_not_satisfiable",ue="demux",he="remux",Ze="media",Se="drm",pe="other",Je="runtime",me={FLV:"FLV",HLS:"HLS",MP4:"MP4",FMP4:"FMP4",MSE_ADD_SB:"MSE_ADD_SB",MSE_APPEND_BUFFER:"MSE_APPEND_BUFFER",MSE_OTHER:"MSE_OTHER",MSE_FULL:"MSE_FULL",MSE_CHANGE_TYPE:"MSE_CHANGE_TYPE",OPTION:"OPTION",DASH:"DASH",LICENSE:"LICENSE",CUSTOM_LICENSE:"CUSTOM_LICENSE",MSE_HIJACK:"MSE_HIJACK",EME_HIJACK:"EME_HIJACK",SIDX:"SIDX",NO_CANPLAY_ERROR:"NO_CANPLAY_ERROR",BUFFERBREAK_ERROR:"BUFFERBREAK_ERROR",WAITING_TIMEOUT_ERROR:"WAITING_TIMEOUT_ERROR",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_CODEC_NOT_SUPPORTED:"MEDIA_ERR_CODEC_NOT_SUPPORTED",MEDIA_ERR_URL_EMPTY:"MEDIA_ERR_URL_EMPTY"},We=(P(re={},oe,{HLS:1100,DASH:1200}),P(re,se,2100),P(re,Be,2101),P(re,ce,2103),P(re,Re,2104),P(re,Ve,2116),P(re,ue,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),P(re,he,{FMP4:4100,MP4:4200}),P(re,Ze,{MEDIA_ERR_ABORTED:5101,MEDIA_ERR_NETWORK:5102,MEDIA_ERR_DECODE:5103,MEDIA_ERR_SRC_NOT_SUPPORTED:5104,MEDIA_ERR_CODEC_NOT_SUPPORTED:5105,MEDIA_ERR_URL_EMPTY:5106,MSE_ADD_SB:5200,MSE_APPEND_BUFFER:5201,MSE_OTHER:5202,MSE_FULL:5203,MSE_HIJACK:5204,MSE_CHANGE_TYPE:5205,EME_HIJACK:5301}),P(re,Se,{LICENSE:7100,CUSTOM_LICENSE:7200}),P(re,pe,8e3),P(re,Je,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),re),ke=function(e){z(n,e);var t=Ue(n);function n(e,U,F,Q,i){var l;return _(this,n),(l=t.call(this,i||(null==F?void 0:F.message))).errorType=e===Be?se:e,l.originError=F,l.ext=Q,l.errorCode=We[e][U]||We[e],l.errorMessage=l.message,l.errorCode||(l.errorType=pe,l.errorCode=We[l.errorType]),l}return H(n,null,[{key:"create",value:function(e,t,U,F,Q){return e instanceof n?e:(e instanceof Error&&(U=e,e=""),e||(e=pe),new n(e,t,U,F,Q))}},{key:"network",value:function(e){var t;return new n(null!=e&&e.isTimeout?Be:se,null,e instanceof Error?e:null,{url:null==e?void 0:e.url,response:null==e?void 0:e.response,httpCode:null==e||null===(t=e.response)||void 0===t?void 0:t.status})}}]),n}(ee(Error)),Ee={DEBUG:1,LOG:2,WARN:3,ERROR:4},ye=["Boolean","Number","String","Undefined","Null","Date","Object"],fe=function(){function e(t,n){_(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return H(e,[{key:"debug",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.DEBUG].concat(U)),e.disabled||(t=console).debug.apply(t,[this._prefix,Ne()].concat(U))}},{key:"log",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.LOG].concat(U)),e.disabled||(t=console).log.apply(t,[this._prefix,Ne()].concat(U))}},{key:"warn",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.WARN].concat(U)),e.disabled||(t=console).warn.apply(t,[this._prefix,Ne()].concat(U))}},{key:"error",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.ERROR].concat(U)),e.disabled||(t=console).error.apply(t,[this._prefix,Ne()].concat(U))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];var Q=U.map((function(e){return ve(e)}));t=this._prefix+Ne()+JSON.stringify(Q)}catch(l){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var i=this.logTextArray.shift();this.logSize-=i.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function Ne(){return(new Date).toLocaleString()}function be(e){if("object"!==Y(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function ve(e,t,n){n||(n=1),t||(t=2);var U={};if(!e||"object"!==Y(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!ye.includes(F))return F;if(!(n>t)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(n===t?U[Q]=be(e[Q]):"object"===Y(e[Q])?U[Q]=ve(e[Q],t,n+1):U[Q]=e[Q]);return U}}function Te(){var e,t,n=new Promise((function(n,U){e=n,t=U}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}function Ce(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}P(fe,"disabled",!0);var ge=function(e){try{return JSON.stringify(e)}catch(t){return""}};function De(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];try{return de?e&&"undefined"!=typeof ManagedMediaSource?ManagedMediaSource:window.MediaSource:null}catch(t){}}function Xe(e){return/ManagedMediaSource/gi.test(Object.prototype.toString.call(e))}var xe="appendBuffer",Le="removeBuffer",Ie="updateDuration",Ge=function(){function e(t,n){var U=this;_(this,e),P(this,"media",null),P(this,"mediaSource",null),P(this,"_openPromise",Te()),P(this,"_queue",Object.create(null)),P(this,"_sourceBuffer",Object.create(null)),P(this,"_mseFullFlag",{}),P(this,"_st",0),P(this,"_opst",0),P(this,"_logger",null),P(this,"_config",null),P(this,"_url",null),P(this,"_onStartStreaming",(function(){U._logger.debug("startstreaming")})),P(this,"_onEndStreaming",(function(){U._logger.debug("endstreaming")})),P(this,"_onSBUpdateEnd",(function(e){var t=U._queue[e];if(t){var n=t[0];if((null==n?void 0:n.opName)!==Ie&&t.shift(),n){var F,Q,i=Ce()-U._opst;U._logger.debug("UpdateEnd(".concat(e,"/").concat(n.opName,")"),ge(function(e){var t=[];if(e instanceof TimeRanges)for(var n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}(null===(F=U._sourceBuffer[e])||void 0===F?void 0:F.buffered)),i,n.context),n.promise.resolve({name:n.opName,context:n.context,costtime:i});var l=null===(Q=n.context)||void 0===Q?void 0:Q.callback;l&&"function"==typeof l&&l(n.context),U._startQueue(e)}}})),P(this,"_onSBUpdateError",(function(e,t){var n=U._queue[e];if(n){var F=n[0];F&&(U._logger.error("UpdateError",e,F.opName,F.context),F.promise.reject(new ke(Ze,me.MSE_APPEND_BUFFER,t)))}})),this._config=Object.assign(e.getDefaultConfig(),n),t&&this.bindMedia(t),this._logger=new fe("MSE"),this._config.openLog&&fe.enable()}var t,n,U;return H(e,[{key:"isOpened",get:function(){var e;return"open"===(null===(e=this.mediaSource)||void 0===e?void 0:e.readyState)}},{key:"hasOpTasks",get:function(){var e=this,t=!1;return Object.keys(this._queue).forEach((function(n){var U=e._queue[n];Array.isArray(U)&&(t||(t=U.length>0))})),t}},{key:"url",get:function(){return this._url}},{key:"duration",get:function(){var e;return(null===(e=this.mediaSource)||void 0===e?void 0:e.duration)||-1}},{key:"isEnded",get:function(){return!!this.mediaSource&&"ended"===this.mediaSource.readyState}},{key:"streaming",get:function(){return!Xe(this.mediaSource)||this.mediaSource.streaming}},{key:"isFull",value:function(t){return t?this._mseFullFlag[t]:this._mseFullFlag[e.VIDEO]}},{key:"updateDuration",value:function(e){var t=this,n=this.mediaSource&&this.mediaSource.duration>e;if(this.mediaSource&&this.mediaSource.duration>e){var U=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{U=Math.max(t.bufferEnd(e)||0,U)}catch(n){}})),e<U)return Promise.resolve()}return this._enqueueBlockingOp((function(){t.isEnded?t._logger.debug("setDuration but ended"):t.mediaSource&&(t.mediaSource.duration=e,t._logger.debug("setDuration",e))}),Ie,{isReduceDuration:n})}},{key:"open",value:function(){var e=this;if(this._openPromise.used&&!this.isOpened&&this.mediaSource){var t=this.mediaSource;t.addEventListener("sourceopen",(function n(){var U=Ce()-e._st;e._logger.debug("sourceopen",U),t.removeEventListener("sourceopen",n),e._openPromise.resolve({costtime:U})})),this._openPromise=Te()}return this._openPromise}},{key:"bindMedia",value:(U=K(M().mark((function e(t){var n,U,F,Q,i=this;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.mediaSource&&!this.media){e.next=3;break}return e.next=3,this.unbindMedia();case 3:if(n=De(this._config.preferMMS),t&&n){e.next=6;break}throw new Error("Param media or MediaSource does not exist");case 6:return this.media=t,U=this.mediaSource=new n,F=Xe(U),this._st=Ce(),Q=function e(){var n=Ce()-i._st;i._logger.debug("sourceopen"),U.removeEventListener("sourceopen",e),URL.revokeObjectURL(t.src),i._openPromise.resolve({costtime:n})},U.addEventListener("sourceopen",Q),F&&(U.addEventListener("startstreaming",this._onStartStreaming),U.addEventListener("endstreaming",this._onEndStreaming)),this._url=URL.createObjectURL(U),t.src=this._url,t.disableRemotePlayback=F,e.abrupt("return",this._openPromise);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"unbindMedia",value:(n=K(M().mark((function e(){var t,n,U,F=this;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._openPromise.used||this._openPromise.resolve(),t=this.mediaSource){if(Object.keys(this._queue).forEach((function(e){var t=F._queue[e];t&&t.forEach((function(e){var t,n;return null===(t=e.promise)||void 0===t||null===(n=t.resolve)||void 0===n?void 0:n.call(t)}))})),n=!!this.media&&this.media.readyState>=1,U="open"===t.readyState,n&&U)try{t.endOfStream()}catch(Q){}Object.keys(this._sourceBuffer).forEach((function(e){try{t.removeSourceBuffer(F._sourceBuffer[e])}catch(Q){}})),Xe(t)&&(t.removeEventListener("startstreaming",this._onStartStreaming),t.removeEventListener("endstreaming",this._onEndStreaming))}if(this.media){this.media.disableRemotePlayback=!1,this.media.removeAttribute("src");try{this.media.load()}catch(Q){}this.media=null}this.mediaSource=null,this._openPromise=Te(),this._queue=Object.create(null),this._sourceBuffer=Object.create(null);case 8:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"createSource",value:function(e,t){if(!this._sourceBuffer[e]&&this.mediaSource){var n;try{n=this._sourceBuffer[e]=this.mediaSource.addSourceBuffer(t)}catch(U){throw new ke(Ze,me.MSE_ADD_SB,U)}n.mimeType=t,n.addEventListener("updateend",this._onSBUpdateEnd.bind(this,e)),n.addEventListener("error",this._onSBUpdateError.bind(this,e))}}},{key:"changeType",value:function(e,t){var n=this,U=this._sourceBuffer[e];return this.mediaSource&&U&&U.mimeType!==t?"function"!=typeof U.changeType?Promise.reject(new ke(Ze,me.MSE_CHANGE_TYPE,new Error("changeType is not a function"))):this._enqueueOp(e,(function(){try{U.changeType(t)}catch(F){throw new ke(Ze,me.MSE_CHANGE_TYPE,F)}U.mimeType=t,n._onSBUpdateEnd(e)}),"changeType",{mimeType:t}):Promise.resolve()}},{key:"createOrChangeSource",value:function(e,t){return this.createSource(e,t),this.changeType(e,t)}},{key:"append",value:function(e,t,n){var U=this;return t&&t.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var F;U.mediaSource&&!U.media.error&&(U._logger.debug("MSE APPEND START",n),U._opst=Ce(),null===(F=U._sourceBuffer[e])||void 0===F||F.appendBuffer(t))}),xe,n):Promise.resolve()}},{key:"remove",value:function(e,t,n,U){var F=this,Q=!1;return this._mseFullFlag[e]&&(Q=!0),this._enqueueOp(e,(function(){if(F.mediaSource&&!F.media.error){var Q=F._sourceBuffer[e];t>=n||!Q?F._onSBUpdateEnd(e):(F._opst=Ce(),F._logger.debug("MSE REMOVE START",e,t,n,U),Q.remove(t,n))}}),Le,U,Q)}},{key:"clearBuffer",value:function(e,t){var n,U=this;return Object.keys(this._sourceBuffer).forEach((function(F){n=U.remove(F,e,t)})),n||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,t=this;return Object.keys(this._sourceBuffer).forEach((function(n){var U=t._sourceBuffer[n];e=t.remove(n,0,ae.end(ae.get(U)))})),e}},{key:"clearOpQueues",value:function(e,t){var n;this._logger.debug("MSE clearOpQueue START");var U=this._queue[e];if(t&&U)this._queue[e]=[];else if(U&&U[e]&&!(U.length<5)){var F=[];U.forEach((function(e){e.context&&e.context.isinit&&F.push(e)})),this._queue[e]=U.slice(0,2),F.length>0&&(n=this._queue[e]).push.apply(n,F)}}},{key:"endOfStream",value:function(e){var t=this;return this.mediaSource&&"open"===this.mediaSource.readyState?this._enqueueBlockingOp((function(){var n=t.mediaSource;n&&"open"===n.readyState&&(t._logger.debug("MSE endOfStream START"),e?n.endOfStream(e):n.endOfStream())}),"endOfStream"):Promise.resolve()}},{key:"setLiveSeekableRange",value:function(e,t){var n=this.mediaSource;e<0||t<e||null==n||!n.setLiveSeekableRange||"open"!==n.readyState||n.setLiveSeekableRange(e,t)}},{key:"getSourceBuffer",value:function(e){return this._sourceBuffer[e]}},{key:"buffered",value:function(e){return ae.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return ae.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return ae.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,t,n,U,F){var Q=this;if(!this.mediaSource)return Promise.resolve();var i=this._queue[e]=this._queue[e]||[],l={exec:t,promise:Te(),opName:n,context:U};return F?(i.splice(0,0,l),this._mseFullFlag[e]=!1,this._startQueue(e)):i.push(l),this.isOpened||this.isEnded?1===i.length&&this._startQueue(e):this._openPromise.then((function(){1===i.length&&Q._startQueue(e)})),l.promise}},{key:"_enqueueBlockingOp",value:(t=K(M().mark((function e(t,n,U){var F,Q,i=this;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.mediaSource){e.next=2;break}return e.abrupt("return",Promise.resolve());case 2:if((F=Object.keys(this._sourceBuffer)).length){e.next=5;break}return e.abrupt("return",t());case 5:return Q=[],F.forEach((function(e){var t=i._queue[e],F=Te();Q.push(F),t.push({exec:function(){F.resolve()},promise:F,opName:n,context:U}),1===t.length&&i._startQueue(e)})),e.abrupt("return",Promise.all(Q).then((function(){try{return t()}finally{F.forEach((function(e){var t=i._queue[e],n=i._sourceBuffer[e];null==t||t.shift(),n&&n.updating||i._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.apply(this,arguments)})},{key:"_startQueue",value:function(e){var t=this._queue[e];if(t){var n=t[0];if(n&&!this._mseFullFlag[e])try{n.exec()}catch(U){U&&U.message&&U.message.indexOf("SourceBuffer is full")>=0?(this._mseFullFlag[e]=!0,n.context&&"object"===Y(n.context)&&(n.context.isFull=!0),this._logger.error("[MSE error], context,",n.context," ,name,",n.opName,",err,SourceBuffer is full"),n.promise.reject(new ke(Ze,me.MSE_FULL,U))):(this._logger.error(U),n.promise.reject(U.constructor===ke?U:new ke(Ze,me.MSE_OTHER,U)),t.shift(),this._startQueue(e))}}}},{key:"setTimeoffset",value:function(e,t,n){var U=this;return this._enqueueOp(e,(function(){t<0&&(t+=.001),U._sourceBuffer[e].timestampOffset=t,U._onSBUpdateEnd(e)}),"setTimeoffset",n)}},{key:"abort",value:function(e,t){var n=this;return this.isOpened?this._enqueueOp(e,(function(){n._sourceBuffer[e].abort(),n._onSBUpdateEnd(e)}),"abort",t):Promise.resolve()}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"',t=De();if(!t)return!1;try{return t.isTypeSupported(e)}catch(n){return this._logger.error(e,n),!1}}},{key:"isMMSOnly",value:function(){return"undefined"!=typeof ManagedMediaSource&&"undefined"==typeof MediaSource}},{key:"getDefaultConfig",value:function(){return{openLog:!1,preferMMS:!1}}}]),e}();P(Ge,"VIDEO","video"),P(Ge,"AUDIO","audio");var Me="fetch",Ye="xhr",we="arraybuffer",Ke="text",_e="json",je=function(e){z(n,e);var t=Ue(n);function n(e,U,F,Q){var i;return _(this,n),P(ne(i=t.call(this,Q)),"retryCount",0),P(ne(i),"isTimeout",!1),P(ne(i),"loaderType",Me),P(ne(i),"startTime",0),P(ne(i),"endTime",0),P(ne(i),"options",{}),i.url=e,i.request=U,i.response=F,i}return H(n)}(ee(Error)),He=Object.prototype.toString;function Pe(e){if("[object Object]"!==He.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function ze(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function Oe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ae(e,t){if(e){if(!t)return e;var n,U=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){var n;return n=t,"[object Date]"===He.call(n)?t=t.toISOString():function(e){return null!==e&&"object"===Y(e)}(t)&&(t=JSON.stringify(t)),"".concat(Oe(e),"=").concat(Oe(t))})).join("&")})).filter(Boolean).join("&");if(U){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+U}return e}}function qe(e,t,n,U,F,Q,i,l,r,a,d){return F=null!=F?parseFloat(F):null,U=parseInt(U||"0",10),Number.isNaN(U)&&(U=0),{data:e,done:t,options:{range:r,vid:a,index:l,contentLength:U,age:F,startTime:Q,firstByteTime:i,endTime:Date.now(),priOptions:d},response:n}}function $e(e,t){return Math.round(8*e*1e3/t/1024)}var et="error",tt="real_time_speed",nt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Ut(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ft={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function U(){}function F(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function Q(e,t,U,Q,i){if("function"!=typeof U)throw new TypeError("The listener must be a function");var l=new F(U,Q||e,i),r=n?n+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],l]:e._events[r].push(l):(e._events[r]=l,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new U:delete e._events[t]}function l(){this._events=new U,this._eventsCount=0}Object.create&&(U.prototype=Object.create(null),(new U).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,U,F=[];if(0===this._eventsCount)return F;for(U in e=this._events)t.call(e,U)&&F.push(n?U.slice(1):U);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},l.prototype.listeners=function(e){var t=n?n+e:e,U=this._events[t];if(!U)return[];if(U.fn)return[U.fn];for(var F=0,Q=U.length,i=new Array(Q);F<Q;F++)i[F]=U[F].fn;return i},l.prototype.listenerCount=function(e){var t=n?n+e:e,U=this._events[t];return U?U.fn?1:U.length:0},l.prototype.emit=function(e,t,U,F,Q,i){var l=n?n+e:e;if(!this._events[l])return!1;var r,a,d=this._events[l],o=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),o){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,U),!0;case 4:return d.fn.call(d.context,t,U,F),!0;case 5:return d.fn.call(d.context,t,U,F,Q),!0;case 6:return d.fn.call(d.context,t,U,F,Q,i),!0}for(a=1,r=new Array(o-1);a<o;a++)r[a-1]=arguments[a];d.fn.apply(d.context,r)}else{var s,B=d.length;for(a=0;a<B;a++)switch(d[a].once&&this.removeListener(e,d[a].fn,void 0,!0),o){case 1:d[a].fn.call(d[a].context);break;case 2:d[a].fn.call(d[a].context,t);break;case 3:d[a].fn.call(d[a].context,t,U);break;case 4:d[a].fn.call(d[a].context,t,U,F);break;default:if(!r)for(s=1,r=new Array(o-1);s<o;s++)r[s-1]=arguments[s];d[a].fn.apply(d[a].context,r)}}return!0},l.prototype.on=function(e,t,n){return Q(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return Q(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,U,F){var Q=n?n+e:e;if(!this._events[Q])return this;if(!t)return i(this,Q),this;var l=this._events[Q];if(l.fn)l.fn!==t||F&&!l.once||U&&l.context!==U||i(this,Q);else{for(var r=0,a=[],d=l.length;r<d;r++)(l[r].fn!==t||F&&!l[r].once||U&&l[r].context!==U)&&a.push(l[r]);a.length?this._events[Q]=1===a.length?a[0]:a:i(this,Q)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new U,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l}(Ft);var Qt=Ut(Ft.exports),it=2097152,lt=function(e){z(U,e);var t,n=Ue(U);function U(){var e;return _(this,U),P(ne(e=n.call(this)),"_abortController",null),P(ne(e),"_timeoutTimer",null),P(ne(e),"_reader",null),P(ne(e),"_response",null),P(ne(e),"_aborted",!1),P(ne(e),"_index",-1),P(ne(e),"_range",null),P(ne(e),"_receivedLength",0),P(ne(e),"_running",!1),P(ne(e),"_logger",null),P(ne(e),"_vid",""),P(ne(e),"_onProcessMinLen",0),P(ne(e),"_onCancel",null),P(ne(e),"_priOptions",null),e}return H(U,[{key:"load",value:function(e){var t,n=this,U=e.url,F=e.vid,Q=e.timeout,i=e.responseType,l=e.onProgress,r=e.index,a=e.onTimeout,d=e.onCancel,o=e.range,s=e.transformResponse,B=e.request,c=e.params,R=e.logger,V=e.method,u=e.headers,h=e.body,Z=e.mode,S=e.credentials,p=e.cache,J=e.redirect,m=e.referrer,W=e.referrerPolicy,k=e.onProcessMinLen,E=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=k,this._onCancel=d,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=r,this._range=o||[0,0],this._vid=F||U,this._priOptions=E||{};var y={method:V,headers:u,body:h,mode:Z,credentials:S,cache:p,redirect:J,referrer:m,referrerPolicy:W,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},f=!1;clearTimeout(this._timeoutTimer),U=Ae(U,c);var N=ze(o);N&&(u=B?B.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&u instanceof Headers?u.append("Range",N):u.Range=N),Q&&(this._timeoutTimer=setTimeout((function(){if(f=!0,n.cancel(),a){var e=new je(U,y,null,"timeout");e.isTimeout=!0,a(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),Q));var b=Date.now();return this._logger.debug("[fetch load start], index,",r,",range,",o),new Promise((function(e,t){fetch(B||U,B?void 0:y).then(function(){var F=K(M().mark((function F(Q){var a,d,B,c;return M().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=Q,!n._aborted&&n._running){F.next=4;break}return F.abrupt("return");case 4:if(s&&(Q=s(Q,U)||Q),Q.ok){F.next=7;break}throw new je(U,y,Q,"bad network response");case 7:if(a=Date.now(),i!==Ke){F.next=15;break}return F.next=11,Q.text();case 11:d=F.sent,n._running=!1,F.next=37;break;case 15:if(i!==_e){F.next=22;break}return F.next=18,Q.json();case 18:d=F.sent,n._running=!1,F.next=37;break;case 22:if(!l){F.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(Q,l,b,a),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:d=F.sent,d=new Uint8Array(d),n._running=!1,B=Date.now()-b,c=$e(d.byteLength,B),n.emit(tt,{speed:c,len:d.byteLength,time:B,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",r,",range,",o),e(qe(d,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),b,a,r,o,n._vid,n._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!f||((e=e instanceof je?e:new je(U,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=b,e.endTime=Date.now(),e.isTimeout=f,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=K(M().mark((function e(){return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(t){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,U){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new je(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(it),this._writeIdx=0);var i,l,r,a=this._reader=e.body.getReader(),d=function(){var Q=K(M().mark((function Q(){var o,s,B,c,R,V,u,h;return M().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return l=Date.now(),Q.prev=1,Q.next=4,a.read();case 4:i=Q.sent,r=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),r=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(s=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,B=s+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,t(void 0,!1,{range:[B,B],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),Q.abrupt("return");case 19:c=i.value?i.value.byteLength:0,F._receivedLength+=c,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",B,", end,",s+F._receivedLength,", done,",i.done),F._onProcessMinLen>0?F._writeIdx+c>=F._onProcessMinLen||i.done?((R=new Uint8Array(F._writeIdx+c)).set(F._cache.slice(0,F._writeIdx),0),c>0&&R.set(i.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",i.done,",len,",R.byteLength,", writeIdx,",F._writeIdx)):c>0&&F._writeIdx+c<it?(F._cache.set(i.value,F._writeIdx),F._writeIdx+=c,F._logger.debug("【fetchLoader,onProgress cache】,len,",c,", writeIdx,",F._writeIdx)):c>0&&(V=new Uint8Array(F._writeIdx+c+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+c+2048,", datalen,",c,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),c>0&&V.set(i.value,F._writeIdx),F._writeIdx+=c,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",c,", writeIdx,",F._writeIdx)):R=i.value,(R&&R.byteLength>0||i.done)&&t(R,i.done,{range:[F._range[0]+F._receivedLength-(R?R.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),i.done?(u=Date.now()-n,h=$e(F._receivedLength,u),F.emit(tt,{speed:h,len:F._receivedLength,time:u,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",i.done),F.resolve(qe(i,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,U,F._index,F._range,F._vid,F._priOptions))):d();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();d()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),U}(Qt);var rt=function(e){z(n,e);var t=Ue(n);function n(){var e;return _(this,n),P(ne(e=t.call(this)),"_xhr",null),P(ne(e),"_aborted",!1),P(ne(e),"_timeoutTimer",null),P(ne(e),"_range",null),P(ne(e),"_receivedLength",0),P(ne(e),"_url",null),P(ne(e),"_onProgress",null),P(ne(e),"_index",-1),P(ne(e),"_headers",null),P(ne(e),"_currentChunkSizeKB",384),P(ne(e),"_timeout",null),P(ne(e),"_xhr",null),P(ne(e),"_withCredentials",null),P(ne(e),"_startTime",-1),P(ne(e),"_loadCompleteResolve",null),P(ne(e),"_loadCompleteReject",null),P(ne(e),"_runing",!1),P(ne(e),"_logger",!1),P(ne(e),"_vid",""),P(ne(e),"_responseType",void 0),P(ne(e),"_credentials",void 0),P(ne(e),"_method",void 0),P(ne(e),"_transformResponse",void 0),P(ne(e),"_firstRtt",void 0),P(ne(e),"_onCancel",null),P(ne(e),"_priOptions",null),e}return H(n,[{key:"load",value:function(e){var t=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=Ae(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof je?e:new je(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===we&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,U=this._range[1];t<this._range[1]-n&&(U=n+t),e=[n,U],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var t=this;try{this._startTime=Date.now();var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,U,F;t._running=!1;var Q=new je(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(U=e.currentTarget)||void 0===U?void 0:U.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(Q)},n.ontimeout=function(e){t.cancel();var n=new je(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var U=this._headers||{},F=ze(e);F&&(U.Range=F),U&&Object.keys(U).forEach((function(e){n.setRequestHeader(e,U[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var U=new je(this._url,null,G(G({},e.target.response),{},{status:n}),"bad response,status:"+n);return U.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(U)}var F,Q=null,i=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===we){var r,a=new Uint8Array(e.target.response);if(F=l+this._receivedLength,a&&a.byteLength>0){this._receivedLength+=a.byteLength;var d=Date.now()-this._startTime,o=$e(this._receivedLength,d);this.emit(tt,{speed:o,len:this._receivedLength,time:d,vid:this._vid,index:this._index,range:[F,l+this._receivedLength],priOptions:this._priOptions})}Q=a,i=!((null===(r=this._range)||void 0===r?void 0:r.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",l+this._receivedLength,",dataLen,",a?a.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",i)}else i=!0,Q=e.target.response;var s={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(s=this._transformResponse(s,this._url)||s),this._onProgress&&this._onProgress(Q,i,{index:this._index,vid:this._vid,range:[F,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),i?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(qe(this._onProgress?null:Q,i,s,s.headers["content-length"],s.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,Fe(O(n.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var t,n={},U=ie(e.getAllResponseHeaders().trim().split("\r\n"));try{for(U.s();!(t=U.n()).done;){var F=t.value.split(": ");n[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){U.e(Q)}finally{U.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(Qt),at=["retry","retryDelay","onRetryError","transformError"],dt=function(){function e(t,n){_(this,e),this.promise=Te(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new fe("Loader")),this._loaderType=t,this._loader=t===Me&&"undefined"!=typeof fetch?new lt:new rt,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return H(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,U=t.retryDelay,F=t.onRetryError,Q=t.transformError,i=te(t,at),l=function(){var t=K(M().mark((function t(){var r,a,d;return M().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(i);case 3:r=t.sent,e.promise.resolve(r),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,a=t.t0,Q&&(a=Q(a)||a),F&&e._retryCount>0&&F(a,e._retryCount,{index:i.index,vid:i.vid,range:i.range,priOptions:i.priOptions}),e._retryCount++,d=!0,e._retryCheckFunc&&(d=e._retryCheckFunc(t.t0)),!(d&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",i.range),e._retryTimer=setTimeout(l,U),t.abrupt("return");case 26:e.promise.reject(a);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return l(),this.promise}},{key:"cancel",value:(t=K(M().mark((function e(){return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function ot(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if((t=t.filter(Boolean)).length<2)return t[0];var U=new Uint8Array(t.reduce((function(e,t){return e+t.byteLength}),0)),F=0;return t.forEach((function(e){U.set(e,F),F+=e.byteLength})),U}function st(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var Bt=function(e){z(U,e);var t,n=Ue(U);function U(e){var t;return _(this,U),P(ne(t=n.call(this,e)),"type",Me),P(ne(t),"_queue",[]),P(ne(t),"_alive",[]),P(ne(t),"_currentTask",null),P(ne(t),"_finnalUrl",""),P(ne(t),"_config",void 0),t._config=function(e){return G({loaderType:Me,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:Ke,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}(e),t._config.loaderType!==Ye&<.isSupported()||(t.type=Ye),t.log=e.logger,t}return H(U,[{key:"isFetch",value:function(){return this.type===Me}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&Pe(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&Pe(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var U=new dt(this.type,n);return U.loader.on(tt,(function(e){t.emit(tt,e)})),this._queue.push(U),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),U.promise}},{key:"cancel",value:(t=K(M().mark((function e(){var t;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,st();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return lt.isSupported()}}]),U}(Qt),ct="undefined"!=typeof window&&(window.location.search.indexOf("log=true")>-1||!!X.getItem("abrdebug")||!!X.getItem("playerlog"));var Rt=new fe("Logger",{logCacheLevel:Ee.DEBUG});ct&&fe.enable();var Vt={},ut=["abr"],ht=function(e){ut.includes(e)?Vt[e]=ct?function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];(t=console).log.apply(t,["[".concat(e,"]"),(new Date).toLocaleString()].concat(U))}:function(){}:Vt[e]=function(){for(var t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];Rt.log.apply(Rt,["[".concat(e,"]")].concat(n))}};for(var Zt in{log:"log",network:"network",abr:"abr",encrypt:"encrypt",segment:"segment",definition:"definition",content:"content",mse:"mse",media:"media",time:"time",preload:"preload",gap:"gap"})ht(Zt);function St(){return Rt}var pt=Vt,Jt=1e3,mt=6e3,Wt="danger_d_speed",kt={"x-cache":"x_cache","x-response-sinfo":"server_ip"},Et={"360p":.45,"480p":.75,"720p":1.6,"1080p":5,"2k":7.5,"4k":12.5},yt="player_start",ft="wasm_start",Nt="wasm_ready",bt="init_finished",vt="core_start",Tt="start_play",Ct="error_handler",gt="next_finished",Dt=0,Xt=1,xt=2,Lt="media_exception",It="task_request_error",Gt=1,Mt={MAIN:"0",BACK:"1"},Yt={INIT:"init",ERR:"error"},wt="currentDashType",Kt="cdn",_t="pcdn",jt="buffer_control",Ht="waiting",Pt="playing",zt={BUFFER_CONTROLS:"buffer_control"};function Ot(){var e=window.navigator.userAgent,t=e.indexOf("MSIE "),n=e.indexOf("Trident/");return t>0||n>0}function At(){return window.navigator.userAgent.toLowerCase().indexOf("qqbrowser")>-1}function qt(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function $t(){return navigator.userAgent.indexOf("Edge")>0}function en(){var e,t=qt(),n=Ot(),U=(e=window.navigator.userAgent,!(window.location.search.indexOf("firefox_dash=true")>-1||X.getItem("firefox_dash"))&&e.toLowerCase().indexOf("firefox")>-1),F=$t();return t||n||U||F}function tn(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":s(WebAssembly))&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(t){console.log(t)}return!1}function nn(){var e=window.MediaSource=window.MediaSource||window.WebKitMediaSource;return e&&"function"==typeof e.isTypeSupported}var Un=['video/mp4; codecs="av01.0.01M.08,mp4a.40.5"'];function Fn(e){if(!nn())return!1;for(var t=0;t<e.length;t++){var n=e[t];if(MediaSource.isTypeSupported(n))return!0}return!1}function Qn(){return!!navigator.requestMediaKeySystemAccess&&!en()}var ln,rn=Object.freeze({__proto__:null,AV1MimeTypes:Un,checkWebAssemblySupport:tn,getDrmServerUrl:function(e){return new Promise((function(t){tn()&&nn()&&navigator.requestMediaKeySystemAccess||t(void 0);qt();var n=navigator.userAgent.toLowerCase().indexOf("chrome")>-1,U=$t();n&&!At()?navigator.requestMediaKeySystemAccess("com.widevine.alpha",[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'}]}]).then((function(){t("https://".concat(e,"/video/drm/v1/widevine?aid=32&kid="))}),(function(){t(void 0)})):t(U?"https://".concat(e,"/video/drm/v1/playready?aid=32&kid="):void 0)}))},isAV1Supported:function(){return Fn(Un)},isCodecSupported:Fn,isEMESupported:Qn,isEncryptSupported:function(){return tn()&&nn()&&!Ot()&&!At()},isSupported:function(){return tn()&&nn()&&!Ot()}}),an=function(){function e(t,n,U,F){var Q=this;R(this,e),this.config=e.getDefaultConfig(),this.bitrate=0,F&&Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=U,this.player=t,this.updateBitrate(n)}return u(e,[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getAdaptLoadDuration",value:function(){var e=this.player,t=this.config;if(!t.rangeControl)return-1;var n=(null==e?void 0:e.bufferedPoint)||null,U=e&&null!=n&&n.end?n.end-e.currentTime:0;return Math.max(t.rangeMaxDuration-U,t.rangeMinDuration)}},{key:"getAdaptCacheBuffer",value:function(){var e=this.player,t=this.config,n=this.bitrate;if(!t.targetCacheControl)return-1;var U=t.estPlayTime,F=U;if(t.estPTcontrol){var Q,i=null!==(Q=this.duration)&&void 0!==Q?Q:(null==e?void 0:e.duration)||0,l=(null==e?void 0:e.currentTime)||0;F=Math.min(U,i-l)}var r=e&&1024*e.avgSpeed||0,a=Math.max(t.safeFactor*r,t.minBandwidth);null!=e&&e.avgSpeed&&(a=t.safeFactor*r);var d=n>0?Math.floor((1-a/n)*F):0;return d=t.minDangerThreshold+Math.max(d,0),Math.min(Math.max(t.cacheSafeFactor*d,t.minTargetCacheDur),t.maxTargetCacheDur)}}],[{key:"getDefaultConfig",value:function(){return{rangeMaxDuration:15,rangeMinDuration:5,rangeMinSize:409600,safeFactor:.1,cacheSafeFactor:3,minDangerThreshold:5,estPlayTime:12,minBandwidth:1e6,estPTcontrol:!1,minTargetCacheDur:30,maxTargetCacheDur:60,targetCacheControl:!1,rangeControl:!1}}}]),e}(),dn=function(e){return e.MP4="MP4",e.MP4_MSE_SOFT="MP4_MSE_SOFT",e.MP4_MSE="MP4_MSE",e.MP4_0="MP4_0",e.MP4_1="MP4_1",e.MP4_2="MP4_2",e.DASH="DASH",e.HLS="HLS",e}(dn||{}),on=function(e){return e[e.Normal=0]="Normal",e[e.Ad=1]="Ad",e}(on||{}),sn=function(e){return e[e.AVC=0]="AVC",e[e.HEVC=1]="HEVC",e[e.VVC=2]="VVC",e.H264="h264",e.H265="h265",e.H266="h266",e}(sn||{}),Bn="real_time_speed",cn="cdn",Rn=function(e){return e.CHANGE_FLYING_PLUGIN_CONFIG="CHANGE_FLYING_PLUGIN_CONFIG",e}(Rn||{}),Vn=function(e){Z(n,e);var t=W(n);function n(e){var U;R(this,n);var F=m(U=t.call(this,e)),Q=F.player,i=F.playerConfig;return U.playerId=Q.playerId,U.codecType=i.codecType?i.codecType.toLowerCase():sn.H264,U.bizType=Q.bizType="number"==typeof i.bizType?i.bizType:on.Normal,i.vtype&&(U.vtype=i.vtype.toUpperCase()),ln&&(Q.preloader=ln),U}return u(n,[{key:"softDecode",get:function(){var e;return"xg-video"===(null===(e=this.playerConfig)||void 0===e?void 0:e.mediaType)}}],[{key:"registerPreloader",value:function(e){ln=e}}]),n}(r.BasePlugin);function un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function hn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?un(Object(n),!0).forEach((function(t){En(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):un(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Zn(){Zn=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,reset:function(e){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(W),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),o},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function Sn(e){return(Sn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pn(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function Jn(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){pn(Q,U,F,i,l,"next",e)}function l(e){pn(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function mn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wn(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,In(U.key),U)}}function kn(e,t,n){return t&&Wn(e.prototype,t),n&&Wn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function En(e,t,n){return(t=In(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yn(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Nn(e,t)}function fn(e){return(fn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Nn(e,t){return(Nn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function bn(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function vn(e,t,n){return(vn=bn()?Reflect.construct.bind():function(e,t,n){var U=[null];U.push.apply(U,t);var F=new(Function.bind.apply(e,U));return n&&Nn(F,n.prototype),F}).apply(null,arguments)}function Tn(e){var t="function"==typeof Map?new Map:void 0;return Tn=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,U)}function U(){return vn(e,arguments,fn(this).constructor)}return U.prototype=Object.create(e.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),Nn(U,e)},Tn(e)}function Cn(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function gn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Dn(e){var t=bn();return function(){var n,U=fn(e);if(t){var F=fn(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return gn(e)}(this,n)}}function Xn(){return Xn="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var U=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=fn(e)););return e}(e,t);if(U){var F=Object.getOwnPropertyDescriptor(U,t);return F.get?F.get.call(arguments.length<3?e:n):F.value}},Xn.apply(this,arguments)}function xn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function Ln(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return xn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?xn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function In(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function Gn(){var e,t,n=new Promise((function(n,U){e=n,t=U}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}var Mn={DEBUG:1,LOG:2,WARN:3,ERROR:4},Yn=["Boolean","Number","String","Undefined","Null","Date","Object"],wn=function(){function e(t,n){mn(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return kn(e,[{key:"debug",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.DEBUG].concat(U)),e.disabled||(t=console).debug.apply(t,[this._prefix,Kn()].concat(U))}},{key:"log",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.LOG].concat(U)),e.disabled||(t=console).log.apply(t,[this._prefix,Kn()].concat(U))}},{key:"warn",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.WARN].concat(U)),e.disabled||(t=console).warn.apply(t,[this._prefix,Kn()].concat(U))}},{key:"error",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.ERROR].concat(U)),e.disabled||(t=console).error.apply(t,[this._prefix,Kn()].concat(U))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];var Q=U.map((function(e){return jn(e)}));t=this._prefix+Kn()+JSON.stringify(Q)}catch(l){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var i=this.logTextArray.shift();this.logSize-=i.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function Kn(){return(new Date).toLocaleString()}function _n(e){if("object"!==Sn(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function jn(e,t,n){n||(n=1),t||(t=2);var U={};if(!e||"object"!==Sn(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!Yn.includes(F))return F;if(!(n>t)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(n===t?U[Q]=_n(e[Q]):"object"===Sn(e[Q])?U[Q]=jn(e[Q],t,n+1):U[Q]=e[Q]);return U}}En(wn,"disabled",!0);var Hn="fetch",Pn="xhr",zn="arraybuffer",On="text",An="json",qn=function(e){yn(n,e);var t=Dn(n);function n(e,U,F,Q){var i;return mn(this,n),En(gn(i=t.call(this,Q)),"retryCount",0),En(gn(i),"isTimeout",!1),En(gn(i),"loaderType",Hn),En(gn(i),"startTime",0),En(gn(i),"endTime",0),En(gn(i),"options",{}),i.url=e,i.request=U,i.response=F,i}return kn(n)}(Tn(Error)),$n=Object.prototype.toString;function eU(e){if("[object Object]"!==$n.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function tU(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function nU(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function UU(e,t){if(e){if(!t)return e;var n,U=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){var n;return n=t,"[object Date]"===$n.call(n)?t=t.toISOString():function(e){return null!==e&&"object"===Sn(e)}(t)&&(t=JSON.stringify(t)),"".concat(nU(e),"=").concat(nU(t))})).join("&")})).filter(Boolean).join("&");if(U){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+U}return e}}function FU(e,t,n,U,F,Q,i,l,r,a,d){return F=null!=F?parseFloat(F):null,U=parseInt(U||"0",10),Number.isNaN(U)&&(U=0),{data:e,done:t,options:{range:r,vid:a,index:l,contentLength:U,age:F,startTime:Q,firstByteTime:i,endTime:Date.now(),priOptions:d},response:n}}function QU(e,t){return Math.round(8*e*1e3/t/1024)}var iU="real_time_speed",lU=2097152,rU=function(e){yn(U,e);var t,n=Dn(U);function U(){var e;return mn(this,U),En(gn(e=n.call(this)),"_abortController",null),En(gn(e),"_timeoutTimer",null),En(gn(e),"_reader",null),En(gn(e),"_response",null),En(gn(e),"_aborted",!1),En(gn(e),"_index",-1),En(gn(e),"_range",null),En(gn(e),"_receivedLength",0),En(gn(e),"_running",!1),En(gn(e),"_logger",null),En(gn(e),"_vid",""),En(gn(e),"_onProcessMinLen",0),En(gn(e),"_onCancel",null),En(gn(e),"_priOptions",null),e}return kn(U,[{key:"load",value:function(e){var t,n=this,U=e.url,F=e.vid,Q=e.timeout,i=e.responseType,l=e.onProgress,r=e.index,a=e.onTimeout,d=e.onCancel,o=e.range,s=e.transformResponse,B=e.request,c=e.params,R=e.logger,V=e.method,u=e.headers,h=e.body,Z=e.mode,S=e.credentials,p=e.cache,J=e.redirect,m=e.referrer,W=e.referrerPolicy,k=e.onProcessMinLen,E=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=k,this._onCancel=d,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=r,this._range=o||[0,0],this._vid=F||U,this._priOptions=E||{};var y={method:V,headers:u,body:h,mode:Z,credentials:S,cache:p,redirect:J,referrer:m,referrerPolicy:W,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},f=!1;clearTimeout(this._timeoutTimer),U=UU(U,c);var N=tU(o);N&&(u=B?B.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&u instanceof Headers?u.append("Range",N):u.Range=N),Q&&(this._timeoutTimer=setTimeout((function(){if(f=!0,n.cancel(),a){var e=new qn(U,y,null,"timeout");e.isTimeout=!0,a(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),Q));var b=Date.now();return this._logger.debug("[fetch load start], index,",r,",range,",o),new Promise((function(e,t){fetch(B||U,B?void 0:y).then(function(){var F=Jn(Zn().mark((function F(Q){var a,d,B,c;return Zn().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=Q,!n._aborted&&n._running){F.next=4;break}return F.abrupt("return");case 4:if(s&&(Q=s(Q,U)||Q),Q.ok){F.next=7;break}throw new qn(U,y,Q,"bad network response");case 7:if(a=Date.now(),i!==On){F.next=15;break}return F.next=11,Q.text();case 11:d=F.sent,n._running=!1,F.next=37;break;case 15:if(i!==An){F.next=22;break}return F.next=18,Q.json();case 18:d=F.sent,n._running=!1,F.next=37;break;case 22:if(!l){F.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(Q,l,b,a),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:d=F.sent,d=new Uint8Array(d),n._running=!1,B=Date.now()-b,c=QU(d.byteLength,B),n.emit(iU,{speed:c,len:d.byteLength,time:B,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",r,",range,",o),e(FU(d,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),b,a,r,o,n._vid,n._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!f||((e=e instanceof qn?e:new qn(U,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=b,e.endTime=Date.now(),e.isTimeout=f,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=Jn(Zn().mark((function e(){return Zn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(t){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,U){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new qn(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(lU),this._writeIdx=0);var i,l,r,a=this._reader=e.body.getReader(),d=function(){var Q=Jn(Zn().mark((function Q(){var o,s,B,c,R,V,u,h;return Zn().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return l=Date.now(),Q.prev=1,Q.next=4,a.read();case 4:i=Q.sent,r=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),r=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(s=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,B=s+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,t(void 0,!1,{range:[B,B],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),Q.abrupt("return");case 19:c=i.value?i.value.byteLength:0,F._receivedLength+=c,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",B,", end,",s+F._receivedLength,", done,",i.done),F._onProcessMinLen>0?F._writeIdx+c>=F._onProcessMinLen||i.done?((R=new Uint8Array(F._writeIdx+c)).set(F._cache.slice(0,F._writeIdx),0),c>0&&R.set(i.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",i.done,",len,",R.byteLength,", writeIdx,",F._writeIdx)):c>0&&F._writeIdx+c<lU?(F._cache.set(i.value,F._writeIdx),F._writeIdx+=c,F._logger.debug("【fetchLoader,onProgress cache】,len,",c,", writeIdx,",F._writeIdx)):c>0&&(V=new Uint8Array(F._writeIdx+c+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+c+2048,", datalen,",c,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),c>0&&V.set(i.value,F._writeIdx),F._writeIdx+=c,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",c,", writeIdx,",F._writeIdx)):R=i.value,(R&&R.byteLength>0||i.done)&&t(R,i.done,{range:[F._range[0]+F._receivedLength-(R?R.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),i.done?(u=Date.now()-n,h=QU(F._receivedLength,u),F.emit(iU,{speed:h,len:F._receivedLength,time:u,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",i.done),F.resolve(FU(i,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,U,F._index,F._range,F._vid,F._priOptions))):d();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();d()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),U}(Qt);var aU=function(e){yn(n,e);var t=Dn(n);function n(){var e;return mn(this,n),En(gn(e=t.call(this)),"_xhr",null),En(gn(e),"_aborted",!1),En(gn(e),"_timeoutTimer",null),En(gn(e),"_range",null),En(gn(e),"_receivedLength",0),En(gn(e),"_url",null),En(gn(e),"_onProgress",null),En(gn(e),"_index",-1),En(gn(e),"_headers",null),En(gn(e),"_currentChunkSizeKB",384),En(gn(e),"_timeout",null),En(gn(e),"_xhr",null),En(gn(e),"_withCredentials",null),En(gn(e),"_startTime",-1),En(gn(e),"_loadCompleteResolve",null),En(gn(e),"_loadCompleteReject",null),En(gn(e),"_runing",!1),En(gn(e),"_logger",!1),En(gn(e),"_vid",""),En(gn(e),"_responseType",void 0),En(gn(e),"_credentials",void 0),En(gn(e),"_method",void 0),En(gn(e),"_transformResponse",void 0),En(gn(e),"_firstRtt",void 0),En(gn(e),"_onCancel",null),En(gn(e),"_priOptions",null),e}return kn(n,[{key:"load",value:function(e){var t=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=UU(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof qn?e:new qn(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===zn&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,U=this._range[1];t<this._range[1]-n&&(U=n+t),e=[n,U],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var t=this;try{this._startTime=Date.now();var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,U,F;t._running=!1;var Q=new qn(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(U=e.currentTarget)||void 0===U?void 0:U.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(Q)},n.ontimeout=function(e){t.cancel();var n=new qn(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var U=this._headers||{},F=tU(e);F&&(U.Range=F),U&&Object.keys(U).forEach((function(e){n.setRequestHeader(e,U[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var U=new qn(this._url,null,hn(hn({},e.target.response),{},{status:n}),"bad response,status:"+n);return U.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(U)}var F,Q=null,i=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===zn){var r,a=new Uint8Array(e.target.response);if(F=l+this._receivedLength,a&&a.byteLength>0){this._receivedLength+=a.byteLength;var d=Date.now()-this._startTime,o=QU(this._receivedLength,d);this.emit(iU,{speed:o,len:this._receivedLength,time:d,vid:this._vid,index:this._index,range:[F,l+this._receivedLength],priOptions:this._priOptions})}Q=a,i=!((null===(r=this._range)||void 0===r?void 0:r.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",l+this._receivedLength,",dataLen,",a?a.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",i)}else i=!0,Q=e.target.response;var s={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(s=this._transformResponse(s,this._url)||s),this._onProgress&&this._onProgress(Q,i,{index:this._index,vid:this._vid,range:[F,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),i?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(FU(this._onProgress?null:Q,i,s,s.headers["content-length"],s.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,Xn(fn(n.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var t,n={},U=Ln(e.getAllResponseHeaders().trim().split("\r\n"));try{for(U.s();!(t=U.n()).done;){var F=t.value.split(": ");n[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){U.e(Q)}finally{U.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(Qt),dU=["retry","retryDelay","onRetryError","transformError"],oU=function(){function e(t,n){mn(this,e),this.promise=Gn(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new wn("Loader")),this._loaderType=t,this._loader=t===Hn&&"undefined"!=typeof fetch?new rU:new aU,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return kn(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,U=t.retryDelay,F=t.onRetryError,Q=t.transformError,i=Cn(t,dU),l=function(){var t=Jn(Zn().mark((function t(){var r,a,d;return Zn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(i);case 3:r=t.sent,e.promise.resolve(r),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,a=t.t0,Q&&(a=Q(a)||a),F&&e._retryCount>0&&F(a,e._retryCount,{index:i.index,vid:i.vid,range:i.range,priOptions:i.priOptions}),e._retryCount++,d=!0,e._retryCheckFunc&&(d=e._retryCheckFunc(t.t0)),!(d&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",i.range),e._retryTimer=setTimeout(l,U),t.abrupt("return");case 26:e.promise.reject(a);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return l(),this.promise}},{key:"cancel",value:(t=Jn(Zn().mark((function e(){return Zn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function sU(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var BU=function(e){yn(U,e);var t,n=Dn(U);function U(e){var t;return mn(this,U),En(gn(t=n.call(this,e)),"type",Hn),En(gn(t),"_queue",[]),En(gn(t),"_alive",[]),En(gn(t),"_currentTask",null),En(gn(t),"_finnalUrl",""),En(gn(t),"_config",void 0),t._config=function(e){return hn({loaderType:Hn,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:On,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}(e),t._config.loaderType!==Pn&&rU.isSupported()||(t.type=Pn),t.log=e.logger,t}return kn(U,[{key:"isFetch",value:function(){return this.type===Hn}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&eU(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&eU(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var U=new oU(this.type,n);return U.loader.on(iU,(function(e){t.emit(iU,e)})),this._queue.push(U),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),U.promise}},{key:"cancel",value:(t=Jn(Zn().mark((function e(){var t;return Zn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,sU();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return rU.isSupported()}}]),U}(Qt),cU=function(){function e(t,n,U,F){var Q=this;R(this,e),this.config=e.getDefaultConfig(),Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=U,this.player=t,this.updateBitrate(n),this.curPCDNInBuffer=this.config.maxPCDNInBuffer,this.curPCDNOutBuffer=this.config.maxPCDNOutBuffer,this.PCDNChangeCnt=0}return u(e,[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getPCDNInBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var U=e.estPlayTime,F=U;e.estPTcontrol&&(F=Math.min(U,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var Q=e.safePCDNInFactor,i=e.minBandwidth,l=e.maxPCDNInBuffer,r=e.minPCDNInBuffer,a=Q*Math.max(1024*(null==t?void 0:t.avgSpeedPCDN)||0,i),d=n>0?(1-a/n)*F:0;return this.curPCDNInBuffer=Math.min(l,Math.max(r,d)),this.curPCDNInBuffer}},{key:"getPCDNOutBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var U=e.estPlayTime,F=U;e.estPTcontrol&&(F=Math.min(U,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var Q=e.safePCDNOutFactor,i=e.minBandwidth,l=e.maxPCDNOutBuffer,r=e.minPCDNOutBuffer,a=Q*Math.max(1024*(null==t?void 0:t.avgSpeedPCDN)||0,i),d=n>0?(1-a/n)*F:0;return this.curPCDNOutBuffer=Math.min(l,Math.max(r,d)),this.curPCDNOutBuffer}},{key:"getPCDNChangeCnt",value:function(){var e=this.config,t=e.PCDNCntControl,n=e.alpha,U=this.curPCDNInBuffer,F=this.player,Q=(null==F?void 0:F.bufferedPoint)||null,i=Q&&Q.end?Q.end-F.currentTime:0;t?i>U+(this.PCDNChangeCnt-1)*n&&this.PCDNChangeCnt++:i>=U&&this.PCDNChangeCnt<2&&this.PCDNChangeCnt++;return this.PCDNChangeCnt}}],[{key:"getDefaultConfig",value:function(){return{PCDNBufferControl:!1,PCDNCntControl:!1,estPTcontrol:!1,minPCDNInBuffer:8,maxPCDNInBuffer:12,minPCDNOutBuffer:3,maxPCDNOutBuffer:6,safePCDNInFactor:.1,safePCDNOutFactor:.4,alpha:.5,estPlayTime:12,minBandwidth:1e6}}}]),e}(),RU=new Map,VU=function(){function e(t,n,U,F){var Q,i,l=this;R(this,e),this.options=e.getDefaultConfig(),Object.keys(t).map((function(e){void 0!==t[e]&&null!==t[e]&&(l.options[e]=t[e])})),this.options.productConfig&&this.options.productConfig.app_id||console.error("productConfig must has"),this.loader=new BU(this.options),this.resetTrackeArgs(),this._lastFileInfo=null,this.lastfetchNodeTime=-1,this._lastRetFileKey=null,this._minUpdateNodeStep=this.options.ErrorTimeStep,null!==(Q=this.options)&&void 0!==Q&&null!==(i=Q.adaptPCDNConfig)&&void 0!==i&&i.PCDNBufferControl&&(this.pcdnAdapt=new cU(n,U,F,this.options.adaptPCDNConfig))}var t,n;return u(e,[{key:"isOpenAdaptPCDN",get:function(){return!!this.pcdnAdapt}},{key:"curPCDNInBuffer",get:function(){return this.pcdnAdapt.curPCDNInBuffer}},{key:"getPCDNInBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNInBuffer()}},{key:"curPCDNOutBuffer",get:function(){return this.pcdnAdapt.curPCDNOutBuffer}},{key:"getPCDNOutBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNOutBuffer()}},{key:"curPCDNChangeCnt",get:function(){return this.pcdnAdapt.PCDNChangeCnt}},{key:"getPCDNChangeCnt",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNChangeCnt()}},{key:"updatePCDNBitrate",value:function(e){var t;return null===(t=this.pcdnAdapt)||void 0===t?void 0:t.updateBitrate(e)}},{key:"resetTrackeArgs",value:function(e){this.trackeArgs={fid:null,trace_id:null,req_times:(null==e?void 0:e.req_times)||0,resp_times:(null==e?void 0:e.resp_times)||0,token:null,node_num:this.options.node_num,client_info:this.options.client_info}}},{key:"getPCDNNode",value:function(e,t,n){var U,F=hU(t),Q=RU.get(uU(e,F)),i=new Gn;return null==Q||!Q.nodes||(null==Q||null===(U=Q.nodes)||void 0===U?void 0:U.length)<1?this.fetchPCDNNode(null,null,n).then((function(e){i.resolve(e)})).catch((function(e){i.reject(e)})):(Q.fromCache=!0,i.resolve(Q)),i}},{key:"removePCDNNode",value:function(e,t,n){var U=hU(t),F=RU.get(uU(e,U)),Q=null==F?void 0:F.nodes;Q&&(n?F.nodes=Q.filter((function(e){return e&&n.indexOf(e.url)<0})):Q.shift(),RU.set(uU(e,U),F)),Q&&Q.length||this.fetchPCDNNode().then().catch((function(){}))}},{key:"fetchPCDNNode",value:(n=c(o().mark((function t(n,U,F){var Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Q=new Gn,U){t.next=5;break}U=this._lastFileInfo,t.next=15;break;case 5:if(U.byterate=hU(U.bitrate),this.options.trackerOptions&&Object.assign(U,this.options.trackerOptions),this._lastFileInfo=Object.assign({},U,{byterate:U.byterate}),!((null==(l=RU.get(uU(U.vid,U.byterate)))||null===(i=l.nodes)||void 0===i?void 0:i.length)>0)){t.next=13;break}return l.fromCache=!0,Q.resolve(l),t.abrupt("return",Q);case 13:delete U.bitrate,this._lastFileInfo=U;case 15:if(U){t.next=18;break}return Q.resolve(null),t.abrupt("return",Q);case 18:if(r=!1,a=uU(U.vid,U.byterate),this._lastRetFileKey!==a&&(this.resetTrackeArgs(),r=!0),!(Date.now()-this.lastfetchNodeTime<this._minUpdateNodeStep)||r){t.next=24;break}return Q.resolve(null),t.abrupt("return",Q);case 24:if(this.lastfetchNodeTime=Date.now(),this._lastRetFileKey=a,U.sfid?U.version=1:U.vid&&(U.version=2),this.options.withReferer&&(U.with_referer=this.options.withReferer),d=Object.assign(this.options.productConfig,{file_info:U},this.trackeArgs,{req_id:F}),s=JSON.stringify(d),!(this.trackeArgs.req_times>=this.options.maxCnt)){t.next=33;break}return Q.resolve(null),t.abrupt("return",Q);case 33:return this.loader||(this.loader=new BU(this.options)),this.trackeArgs.req_times+=1,t.prev=35,e.pcdn_tracker_request_cnt++,t.next=39,this.loader.load(n||this.options.trackerUrl,{body:s});case 39:B=t.sent,c=null,B&&(this.trackeArgs.resp_times+=1,V=8*U.byterate,B.done&&null!==(R=B.data)&&void 0!==R&&R.Result?(u=B.data.Result,(c=u.nodes)&&c.length>0?e.pcdn_tracker_success_cnt++:this._minUpdateNodeStep=this.options.NULLNodeTimeStep,c.map((function(e){e.vid=U.vid,e.bitrate=V})),h=u.fid,Z=u.trace_id,S=u.req_id,p={nodes:c,fid:h,vid:U.vid,trace_id:Z,req_id:S,bitrate:V},J=uU(U.vid,U.byterate),RU.set(J,p),this.trackeArgs.fid=u.fid,this.trackeArgs.trace_id=u.trace_id,this.trackeArgs.token=u.token,Q.resolve(p)):(this._minUpdateNodeStep=this.options.ErrorTimeStep,Q.reject(B))),t.next=49;break;case 44:t.prev=44,t.t0=t.catch(35),this._minUpdateNodeStep=this.options.ErrorTimeStep,console.warn("tracker catch ERR,",t.t0),Q.reject(t.t0);case 49:return t.abrupt("return",Q);case 50:case"end":return t.stop()}}),t,this,[[35,44]])}))),function(e,t,U){return n.apply(this,arguments)})}],[{key:"pluginName",get:function(){return"PCDN"}},{key:"pcdnReqCnt",get:function(){var t=e.pcdn_tracker_request_cnt,n=e.pcdn_tracker_success_cnt;return e.pcdn_tracker_request_cnt=0,e.pcdn_tracker_success_cnt=0,{pcdn_tracker_request_cnt:t,pcdn_tracker_failed_cnt:t-n}}},{key:"getDefaultConfig",value:function(){return{trackerUrl:"",loaderType:Hn,responseType:An,mode:"cors",method:"POST",retry:0,retryDelay:3e3,timeout:5e3,node_num:5,client_info:null,maxCnt:30,withReferer:0,NULLNodeTimeStep:6e4,ErrorTimeStep:15e3}}},{key:"gainPCDNNode",value:(t=c(o().mark((function t(n,U,F,Q){var i,l,r,a,d,s,B,c,R;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=e.getDefaultConfig(),Object.keys(U).map((function(e){void 0!==U[e]&&null!==U[e]&&(i[e]=U[e])})),Q&&Q.app_id||console.error("productConfig must has"),l=new Gn,F?(F.byterate=hU(F.bitrate),this.options.trackerOptions&&Object.assign(F,this.options.trackerOptions),delete F.bitrate):l.reject("video fileInfo need set"),r=Object.assign(Q,{file_info:F},{node_num:(null==U?void 0:U.node_num)||3}),a=JSON.stringify(r),d=new BU(i),t.prev=8,e.pcdn_tracker_request_cnt++,t.next=12,d.load(n,{body:a});case 12:(R=t.sent).done&&(null===(s=R.data)||void 0===s||null===(B=s.Result)||void 0===B||null===(c=B.nodes)||void 0===c?void 0:c.length)>0&&e.pcdn_tracker_success_cnt++,l.resolve(R),t.next=20;break;case 17:t.prev=17,t.t0=t.catch(8),l.reject((null===t.t0||void 0===t.t0?void 0:t.t0.message)||"get pcdnNode error");case 20:return t.abrupt("return",l);case 21:case"end":return t.stop()}}),t,this,[[8,17]])}))),function(e,n,U,F){return t.apply(this,arguments)})}]),e}();function uU(e,t){return"".concat(e,"-").concat(t)}function hU(e){return Math.floor(e/8)}h(VU,"pcdn_tracker_request_cnt",0),h(VU,"pcdn_tracker_success_cnt",0);var ZU=["bitrate","definition"],SU={};function pU(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}SU.ArrayBufferToString=function(e){for(var t="",n=new Uint8Array(e),U=0;U<n.length;U++)t+=String.fromCharCode(n[U]);return t},SU.StringToArrayBuffer=function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),U=0;U<e.length;U++)n[U]=e.charCodeAt(U);return t},SU.Base64ToHex=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t){for(var U=[],F=0;F<n.length;F++)U.push(n.charCodeAt(F));return new Uint8Array(U).buffer}for(var Q="",i=0;i<n.length;i++)Q+="0".concat(n.charCodeAt(i).toString(16)).substr(-2);return Q},SU.HexToBase64=function(e){for(var t="",n=0;n<e.length;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return window.btoa(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")},SU.padStart=function(e,t,n){for(var U=String(n),F=t>>0,Q=Math.ceil(F/U.length),i=[],l=String(e);Q--;)i.push(U);return i.join("").substring(0,F-l.length)+l},SU.durationConvert=function(e){var t=0,n=0,U=0;return(e=e.slice(e.indexOf("PT")+2)).indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(t=parseFloat(e.slice(0,e.indexOf("H"))),n=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M"))),U=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")<0?(t=parseFloat(e.slice(0,e.indexOf("H"))),n=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M")))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(n=parseFloat(e.slice(0,e.indexOf("M"))),U=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")<0&&e.indexOf("S")>-1?(t=parseFloat(e.slice(0,e.indexOf("H"))),U=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("S")))):e.indexOf("H")<0&&e.indexOf("M")<0&&e.indexOf("S")>-1?U=parseFloat(e.slice(0,e.indexOf("S"))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")<0&&(n=parseFloat(e.slice(0,e.indexOf("M")))),3600*t+60*n+U},SU.preFixInterge=function(e,t){return(Array(t).join(0)+e).slice(-t)},SU.toHex=function(){for(var e=[],t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e.push(SU.padStart(Number(t).toString(16),2,0))})),e},SU.sum=function(){for(var e=0,t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e+=t})),e},SU.toUTF8=function(e){for(var t=encodeURIComponent(e),n=unescape(t),U=new Uint8Array(n.length),F=0;F<n.length;++F)U[F]=n.charCodeAt(F);return U.buffer},SU.fromHex=function(e){for(var t=new Uint8Array(e.length/2),n=0;n<e.length;n+=2)t[n/2]=parseInt(e.substr(n,2),16);return t},SU.fromCharCode=function(e){for(var t="",n=0;n<e.length;n+=16e3){var U=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,U)}return t},SU.toBase64=function(e,t){var n=SU.fromCharCode(e);t=void 0===t||t;var U=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?U:U.replace(/=*$/,"")},SU.str2hex=function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},SU.bufferToString=function(e){return"0".concat(Number(e).toString(16)).slice(-2).toUpperCase()},SU.stringToBuffer=function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e[n]+e[n+1],16));return new Uint8Array(t)},SU.round=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Number(e.toFixed(t))},SU.isEdge=function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("edge")>-1||e.indexOf("edg/")>-1},SU.offInDestroy=function(e,t,n,U){e.once(U,(function F(){e.off(t,n),e.off(U,F)}))},SU.on=function(e,t,n,U){if(U)e.on(t,n),SU.offInDestroy(e,t,n,U);else{e.on(t,(function U(F){n(F),e.off(t,U)}))}},SU.once=function(e,t,n,U){if(U)e.once(t,n),SU.offInDestroy(e,t,n,U);else{e.once(t,(function U(F){n(F),e.off(t,U)}))}},SU.promisePolyfill=function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var t=function(t){return Promise.resolve(e()).then(t)};return this.then((function(e){return t((function(){return e}))}),(function(e){return t((function(){return Promise.reject(e)}))}))}}.finally)},SU.transformHeaders=function(e,t){var n=Object.assign({},e);return Object.keys(t).forEach((function(U){var F=t[U];e&&e[U]&&(n[F]=e[U],delete n[U])})),n},SU.generateRequestUniqueKey=function(e){var t=e.vid,n=e.start,U=e.end,F=e.mediaType,Q=e.definition,i=e.codecType,l=e.vtype,r=e.bitrate,a=e.fileId,d=e.range;if(d&&d.length>0?(n=d[0],U=d[1]):(n=n||0,U=U||0),i="hevc"===i?"h265":i||"h264",l=l||dn.DASH,!t||!F)return null;var o=Q?"".concat(t,"#").concat(F,"#").concat(i,"#").concat(l,"#").concat(Q,"#").concat(n,"#").concat(U):"".concat(t,"#").concat(F,"#").concat(i,"#").concat(l,"##").concat(n,"#").concat(U,"#").concat(r);return a?"".concat(o,"#").concat(a):o},SU.getDefinition=function(e){if(!e)return null;var t=e.split("#");return t.length>2?t[2]:null},SU.exchangeListUrl=function(e){if(e&&0!==e.length)for(var t=0;t<e.length;t++)SU.exchangeUrl(e[t])},SU.exchangeUrl=function(e){if(e&&e.main_url&&e.backup_url_1){var t=e.main_url,n=e.backup_url_1,U=t.split("?");2===U.length&&-1===n.indexOf("?")?(e.main_url="".concat(n,"?").concat(U[1]),e.backup_url_1=U[0]):(e.main_url=n,e.backup_url_1=t)}},SU.validateFragment=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(e instanceof ArrayBuffer){try{var n=new Uint8Array(e,4,4),U=String.fromCharCode.apply(null,n);if(2===t.length){var F=t[1]-t[0]+1;if(!(e.byteLength===F))return}if("moof"!==U&&"styp"!==U&&"ftyp"!==U)return!1}catch(Q){return!1}return!0}return!1},SU.validateUrlRange=function(e,t){if((e=e||[]).length>0&&t)for(var n=0;n<e.length;n++){var U=e[n];if(/([0-9.\-A-Za-z]+)/.test(U)&&t.indexOf(U)>-1)return!0}return!1},SU.nowTime=function(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}},SU.getBitrateItem=function(e,t,n){var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=t,Q=SU.getSelectorList(e,n);return F.getSuitableBitrate?F.getSuitableBitrate(Q,U):F.bitRateAdapter.select(Q)},SU.getSelectorList=function(e,t){for(var n=e.dynamic_video_list,U=[],F=0;F<n.length;F++){var Q=n[F],i=Q.bitrate,l=Q.definition,r=J(Q,ZU);U.push(d({bitrate:i,definition:l,duration:t,mediaType:"video"},r))}return U},SU.typeof=pU,SU.getHostFromUrl=function(e){if("String"!==pU(e)||!e)return"";var t=e.split("/"),n="";return t.length>3&&t[2]&&(n=t[2]),n},SU.checkValidTopBox=function(e){var t=SU.getTopBoxType(e);return"moof"===t||"styp"===t},SU.getTopBoxType=function(e){if(SU.isArrayBuffer(e)){var t=e.subarray(4,8);return String.fromCharCode.apply(null,t)}return null},SU.isArrayBuffer=function(e){return e instanceof ArrayBuffer||e instanceof Uint8Array},SU.getBufferData=function(e,t){var n=0,U=0,F=0,Q=0,i=0;if(!e||0===e.length)return{beforeBufLen:n,afterBufLen:U,beforeLastBuffEnd:F,afterFirstBuffEnd:Q,afterFirstBuffStart:i};Q=1/0,i=1/0;for(var l=0,r=e.length;l<r;l++){var a=e.end(l),d=e.start(l),o=a-d;a<t?(n+=o,F=a):d<=t&&t<=a?(n+=t-d,U+=a-t):(i=Math.min(d,i),Q=Math.min(a,Q),U+=o)}return{beforeBufLen:n,afterBufLen:U,beforeLastBuffEnd:F,afterFirstBuffEnd:Q}};var JU,mU,WU=SU,kU={exports:{}},EU={exports:{}},yU=function(e){return null!=e},fU=yU,NU={object:!0,function:!0,undefined:!0},bU=function(e){return!!fU(e)&&hasOwnProperty.call(NU,typeof e)},vU=function(e){if(!bU(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(t){return!1}},TU=function(e){if("function"!=typeof e)return!1;if(!hasOwnProperty.call(e,"length"))return!1;try{if("number"!=typeof e.length)return!1;if("function"!=typeof e.call)return!1;if("function"!=typeof e.apply)return!1}catch(t){return!1}return!vU(e)},CU=/^\s*class[\s{/}]/,gU=Function.prototype.toString;var DU,XU,xU,LU,IU,GU,MU,YU,wU=function(e){return null!=e};function KU(){return LU?xU:(LU=1,xU=(mU?JU:(mU=1,JU=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}))()?Object.keys:function(){if(XU)return DU;XU=1;var e=wU,t=Object.keys;return DU=function(n){return t(e(n)?Object(n):n)}}())}var _U,jU,HU,PU,zU="function"==typeof(jU=Object.assign)&&(jU(_U={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),_U.foo+_U.bar+_U.trzy==="razdwatrzy")?Object.assign:function(){if(YU)return MU;YU=1;var e=KU(),t=function(){if(GU)return IU;GU=1;var e=wU;return IU=function(t){if(!e(t))throw new TypeError("Cannot use null or undefined");return t}}(),n=Math.max;return MU=function(U,F){var Q,i,l,r=n(arguments.length,2);for(U=Object(t(U)),l=function(e){try{U[e]=F[e]}catch(t){Q||(Q=t)}},i=1;i<r;++i)e(F=arguments[i]).forEach(l);if(void 0!==Q)throw Q;return U},MU}(),OU=wU,AU=Array.prototype.forEach,qU=Object.create,$U="razdwatrzy";var eF="function"==typeof $U.contains&&!0===$U.contains("dwa")&&!1===$U.contains("foo")?String.prototype.contains:function(){if(PU)return HU;PU=1;var e=String.prototype.indexOf;return HU=function(t){return e.call(this,t,arguments[1])>-1},HU}(),tF=yU,nF=function(e){return!!TU(e)&&!CU.test(gU.call(e))},UF=zU,FF=function(e){var t=qU(null);return AU.call(arguments,(function(e){OU(e)&&function(e,t){var n;for(n in e)t[n]=e[n]}(Object(e),t)})),t},QF=eF,iF=EU.exports=function(e,t){var n,U,F,Q,i;return arguments.length<2||"string"!=typeof e?(Q=t,t=e,e=null):Q=arguments[2],tF(e)?(n=QF.call(e,"c"),U=QF.call(e,"e"),F=QF.call(e,"w")):(n=F=!0,U=!1),i={value:t,configurable:n,enumerable:U,writable:F},Q?UF(FF(Q),i):i};iF.gs=function(e,t,n){var U,F,Q,i;return"string"!=typeof e?(Q=n,n=t,t=e,e=null):Q=arguments[3],tF(t)?nF(t)?tF(n)?nF(n)||(Q=n,n=void 0):n=void 0:(Q=t,t=n=void 0):t=void 0,tF(e)?(U=QF.call(e,"c"),F=QF.call(e,"e")):(U=!0,F=!1),i={get:t,set:n,configurable:U,enumerable:F},Q?UF(FF(Q),i):i};var lF,rF,aF,dF,oF,sF,BF,cF,RF,VF,uF,hF,ZF,SF,pF,JF,mF,WF,kF=EU.exports;lF=kU,rF=kU.exports,VF=kF,uF=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},hF=Function.prototype.apply,ZF=Function.prototype.call,SF=Object.create,pF=Object.defineProperty,JF=Object.defineProperties,mF=Object.prototype.hasOwnProperty,WF={configurable:!0,enumerable:!1,writable:!0},dF=function(e,t){var n,U;return uF(t),U=this,aF.call(this,e,n=function(){oF.call(U,e,n),hF.call(t,this,arguments)}),n.__eeOnceListener__=t,this},sF=function(e){var t,n,U,F,Q;if(mF.call(this,"__ee__")&&(F=this.__ee__[e]))if("object"==typeof F){for(n=arguments.length,Q=new Array(n-1),t=1;t<n;++t)Q[t-1]=arguments[t];for(F=F.slice(),t=0;U=F[t];++t)hF.call(U,this,Q)}else switch(arguments.length){case 1:ZF.call(F,this);break;case 2:ZF.call(F,this,arguments[1]);break;case 3:ZF.call(F,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,Q=new Array(n-1),t=1;t<n;++t)Q[t-1]=arguments[t];hF.call(F,this,Q)}},BF={on:aF=function(e,t){var n;return uF(t),mF.call(this,"__ee__")?n=this.__ee__:(n=WF.value=SF(null),pF(this,"__ee__",WF),WF.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:dF,off:oF=function(e,t){var n,U,F,Q;if(uF(t),!mF.call(this,"__ee__"))return this;if(!(n=this.__ee__)[e])return this;if("object"==typeof(U=n[e]))for(Q=0;F=U[Q];++Q)F!==t&&F.__eeOnceListener__!==t||(2===U.length?n[e]=U[Q?0:1]:U.splice(Q,1));else U!==t&&U.__eeOnceListener__!==t||delete n[e];return this},emit:sF},cF={on:VF(aF),once:VF(dF),off:VF(oF),emit:VF(sF)},RF=JF({},cF),lF.exports=rF=function(e){return null==e?SF(RF):JF(Object(e),cF)},rF.methods=BF;var EF=Ut(kU.exports),yF=wU,fF={function:!0,object:!0},NF=function(e){return yF(e)&&fF[typeof e]||!1},bF=function(e){if(!NF(e))throw new TypeError(e+" is not an Object");return e},vF=Object.prototype.hasOwnProperty,TF=function(e){var t,n=arguments[1];if(bF(e),void 0===n)vF.call(e,"__ee__")&&delete e.__ee__;else{if(!(t=vF.call(e,"__ee__")&&e.__ee__))return;t[n]&&delete t[n]}},CF=Ut(TF),gF={exports:{}};!function(e,t){!function(e){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==nt?nt:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var U=function(e){return e&&e.Math==Math&&e},F=U("object"==typeof globalThis&&globalThis)||U("object"==typeof window&&window)||U("object"==typeof self&&self)||U("object"==typeof t&&t)||function(){return this}()||Function("return this")(),Q={},i=function(e){try{return!!e()}catch(fu){return!0}},l=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),r={},a={}.propertyIsEnumerable,d=Object.getOwnPropertyDescriptor,o=d&&!a.call({1:2},1);r.f=o?function(e){var t=d(this,e);return!!t&&t.enumerable}:a;var s=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},B={}.toString,c=function(e){return B.call(e).slice(8,-1)},R=c,V="".split,u=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==R(e)?V.call(e,""):Object(e)}:Object,h=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Z=u,S=h,p=function(e){return Z(S(e))},J=function(e){return"object"==typeof e?null!==e:"function"==typeof e},m=J,W=function(e,t){if(!m(e))return e;var n,U;if(t&&"function"==typeof(n=e.toString)&&!m(U=n.call(e)))return U;if("function"==typeof(n=e.valueOf)&&!m(U=n.call(e)))return U;if(!t&&"function"==typeof(n=e.toString)&&!m(U=n.call(e)))return U;throw TypeError("Can't convert object to primitive value")},k=h,E=function(e){return Object(k(e))},y=E,f={}.hasOwnProperty,N=function(e,t){return f.call(y(e),t)},b=J,v=F.document,T=b(v)&&b(v.createElement),C=function(e){return T?v.createElement(e):{}},g=C,D=!l&&!i((function(){return 7!=Object.defineProperty(g("div"),"a",{get:function(){return 7}}).a})),X=l,x=r,L=s,I=p,G=W,M=N,Y=D,w=Object.getOwnPropertyDescriptor;Q.f=X?w:function(e,t){if(e=I(e),t=G(t,!0),Y)try{return w(e,t)}catch(n){}if(M(e,t))return L(!x.f.call(e,t),e[t])};var K={},_=J,j=function(e){if(!_(e))throw TypeError(String(e)+" is not an object");return e},H=l,P=D,z=j,O=W,A=Object.defineProperty;K.f=H?A:function(e,t,n){if(z(e),t=O(t,!0),z(n),P)try{return A(e,t,n)}catch(U){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var q=K,$=s,ee=l?function(e,t,n){return q.f(e,t,$(1,n))}:function(e,t,n){return e[t]=n,e},te={exports:{}},ne=F,Ue=ee,Fe=function(e,t){try{Ue(ne,e,t)}catch(n){ne[e]=t}return t},Qe=Fe,ie="__core-js_shared__",le=F[ie]||Qe(ie,{}),re=le,ae=Function.toString;"function"!=typeof re.inspectSource&&(re.inspectSource=function(e){return ae.call(e)});var de=re.inspectSource,oe=de,se=F.WeakMap,Be="function"==typeof se&&/native code/.test(oe(se)),ce={exports:{}},Re=le;(ce.exports=function(e,t){return Re[e]||(Re[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var Ve,ue,he,Ze=ce.exports,Se=0,pe=Math.random(),Je=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Se+pe).toString(36)},me=Je,We=Ze("keys"),ke=function(e){return We[e]||(We[e]=me(e))},Ee={},ye=Be,fe=J,Ne=ee,be=N,ve=le,Te=ke,Ce=Ee,ge="Object already initialized",De=F.WeakMap;if(ye||ve.state){var Xe=ve.state||(ve.state=new De),xe=Xe.get,Le=Xe.has,Ie=Xe.set;Ve=function(e,t){if(Le.call(Xe,e))throw new TypeError(ge);return t.facade=e,Ie.call(Xe,e,t),t},ue=function(e){return xe.call(Xe,e)||{}},he=function(e){return Le.call(Xe,e)}}else{var Ge=Te("state");Ce[Ge]=!0,Ve=function(e,t){if(be(e,Ge))throw new TypeError(ge);return t.facade=e,Ne(e,Ge,t),t},ue=function(e){return be(e,Ge)?e[Ge]:{}},he=function(e){return be(e,Ge)}}var Me={set:Ve,get:ue,has:he,enforce:function(e){return he(e)?ue(e):Ve(e,{})},getterFor:function(e){return function(t){var n;if(!fe(t)||(n=ue(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Ye=F,we=ee,Ke=N,_e=Fe,je=de,He=Me.get,Pe=Me.enforce,ze=String(String).split("String");(te.exports=function(e,t,n,U){var F,Q=!!U&&!!U.unsafe,i=!!U&&!!U.enumerable,l=!!U&&!!U.noTargetGet;"function"==typeof n&&("string"!=typeof t||Ke(n,"name")||we(n,"name",t),(F=Pe(n)).source||(F.source=ze.join("string"==typeof t?t:""))),e!==Ye?(Q?!l&&e[t]&&(i=!0):delete e[t],i?e[t]=n:we(e,t,n)):i?e[t]=n:_e(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&He(this).source||je(this)}));var Oe=te.exports,Ae=F,qe=F,$e=function(e){return"function"==typeof e?e:void 0},et=function(e,t){return arguments.length<2?$e(Ae[e])||$e(qe[e]):Ae[e]&&Ae[e][t]||qe[e]&&qe[e][t]},tt={},Ut=Math.ceil,Ft=Math.floor,Qt=function(e){return isNaN(e=+e)?0:(e>0?Ft:Ut)(e)},it=Qt,lt=Math.min,rt=function(e){return e>0?lt(it(e),9007199254740991):0},at=Qt,dt=Math.max,ot=Math.min,st=function(e,t){var n=at(e);return n<0?dt(n+t,0):ot(n,t)},Bt=p,ct=rt,Rt=st,Vt=function(e){return function(t,n,U){var F,Q=Bt(t),i=ct(Q.length),l=Rt(U,i);if(e&&n!=n){for(;i>l;)if((F=Q[l++])!=F)return!0}else for(;i>l;l++)if((e||l in Q)&&Q[l]===n)return e||l||0;return!e&&-1}},ut={includes:Vt(!0),indexOf:Vt(!1)},ht=N,Zt=p,St=ut.indexOf,pt=Ee,Jt=function(e,t){var n,U=Zt(e),F=0,Q=[];for(n in U)!ht(pt,n)&&ht(U,n)&&Q.push(n);for(;t.length>F;)ht(U,n=t[F++])&&(~St(Q,n)||Q.push(n));return Q},mt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Wt=Jt,kt=mt.concat("length","prototype");tt.f=Object.getOwnPropertyNames||function(e){return Wt(e,kt)};var Et={};Et.f=Object.getOwnPropertySymbols;var yt=tt,ft=Et,Nt=j,bt=et("Reflect","ownKeys")||function(e){var t=yt.f(Nt(e)),n=ft.f;return n?t.concat(n(e)):t},vt=N,Tt=bt,Ct=Q,gt=K,Dt=i,Xt=/#|\.prototype\./,xt=function(e,t){var n=It[Lt(e)];return n==Mt||n!=Gt&&("function"==typeof t?Dt(t):!!t)},Lt=xt.normalize=function(e){return String(e).replace(Xt,".").toLowerCase()},It=xt.data={},Gt=xt.NATIVE="N",Mt=xt.POLYFILL="P",Yt=xt,wt=F,Kt=Q.f,_t=ee,jt=Oe,Ht=Fe,Pt=function(e,t){for(var n=Tt(t),U=gt.f,F=Ct.f,Q=0;Q<n.length;Q++){var i=n[Q];vt(e,i)||U(e,i,F(t,i))}},zt=Yt,Ot=function(e,t){var n,U,F,Q,i,l=e.target,r=e.global,a=e.stat;if(n=r?wt:a?wt[l]||Ht(l,{}):(wt[l]||{}).prototype)for(U in t){if(Q=t[U],F=e.noTargetGet?(i=Kt(n,U))&&i.value:n[U],!zt(r?U:l+(a?".":"#")+U,e.forced)&&void 0!==F){if(typeof Q==typeof F)continue;Pt(Q,F)}(e.sham||F&&F.sham)&&_t(Q,"sham",!0),jt(n,U,Q,e)}};function At(){At=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,reset:function(e){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(W),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),o},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function qt(e){return(qt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $t(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function en(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){$t(Q,U,F,i,l,"next",e)}function l(e){$t(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function tn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nn(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,on(U.key),U)}}function Un(e,t,n){return t&&nn(e.prototype,t),n&&nn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Fn(e,t,n){return(t=on(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qn(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&rn(e,t)}function ln(e){return(ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function rn(e,t){return(rn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function an(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function dn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,U=ln(e);if(t){var F=ln(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return an(e)}(this,n)}}function on(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}Ot({global:!0},{globalThis:F});var sn,Bn,cn=et("navigator","userAgent")||"",Rn=cn,Vn=F.process,un=Vn&&Vn.versions,hn=un&&un.v8;hn?Bn=(sn=hn.split("."))[0]<4?1:sn[0]+sn[1]:Rn&&(!(sn=Rn.match(/Edge\/(\d+)/))||sn[1]>=74)&&(sn=Rn.match(/Chrome\/(\d+)/))&&(Bn=sn[1]);var Zn,Sn=Bn&&+Bn,pn=Sn,Jn=i,mn=!!Object.getOwnPropertySymbols&&!Jn((function(){return!String(Symbol())||!Symbol.sham&&pn&&pn<41})),Wn=mn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,kn=F,En=N,yn=Je,fn=mn,Nn=Wn,bn=Ze("wks"),vn=kn.Symbol,Tn=Nn?vn:vn&&vn.withoutSetter||yn,Cn=function(e){return En(bn,e)&&(fn||"string"==typeof bn[e])||(fn&&En(vn,e)?bn[e]=vn[e]:bn[e]=Tn("Symbol."+e)),bn[e]},gn=Jt,Dn=mt,Xn=Object.keys||function(e){return gn(e,Dn)},xn=K,Ln=j,In=Xn,Gn=l?Object.defineProperties:function(e,t){Ln(e);for(var n,U=In(t),F=U.length,Q=0;F>Q;)xn.f(e,n=U[Q++],t[n]);return e},Mn=et("document","documentElement"),Yn=j,wn=Gn,Kn=mt,_n=Ee,jn=Mn,Hn=C,Pn="prototype",zn="script",On=ke("IE_PROTO"),An=function(){},qn=function(e){return"<"+zn+">"+e+"</"+zn+">"},$n=function(){try{Zn=document.domain&&new ActiveXObject("htmlfile")}catch(F){}var e,t,n;$n=Zn?function(e){e.write(qn("")),e.close();var t=e.parentWindow.Object;return e=null,t}(Zn):(t=Hn("iframe"),n="java"+zn+":",t.style.display="none",jn.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(qn("document.F=Object")),e.close(),e.F);for(var U=Kn.length;U--;)delete $n[Pn][Kn[U]];return $n()};_n[On]=!0;var eU=Object.create||function(e,t){var n;return null!==e?(An[Pn]=Yn(e),n=new An,An[Pn]=null,n[On]=e):n=$n(),void 0===t?n:wn(n,t)},tU=eU,nU=K,UU=Cn("unscopables"),FU=Array.prototype;null==FU[UU]&&nU.f(FU,UU,{configurable:!0,value:tU(null)});var QU,iU,lU,rU={},aU=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),dU=N,oU=E,sU=aU,BU=ke("IE_PROTO"),cU=Object.prototype,RU=sU?Object.getPrototypeOf:function(e){return e=oU(e),dU(e,BU)?e[BU]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?cU:null},VU=i,uU=RU,hU=ee,ZU=N,SU=Cn("iterator"),pU=!1;[].keys&&("next"in(lU=[].keys())?(iU=uU(uU(lU)))!==Object.prototype&&(QU=iU):pU=!0),(null==QU||VU((function(){var e={};return QU[SU].call(e)!==e})))&&(QU={}),ZU(QU,SU)||hU(QU,SU,(function(){return this}));var JU={IteratorPrototype:QU,BUGGY_SAFARI_ITERATORS:pU},mU=K.f,WU=N,kU=Cn("toStringTag"),EU=function(e,t,n){e&&!WU(e=n?e:e.prototype,kU)&&mU(e,kU,{configurable:!0,value:t})},yU=JU.IteratorPrototype,fU=eU,NU=s,bU=EU,vU=rU,TU=function(){return this},CU=J,gU=j,DU=function(e){if(!CU(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},XU=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(U){}return function(n,U){return gU(n),DU(U),t?e.call(n,U):n.__proto__=U,n}}():void 0),xU=Ot,LU=function(e,t,n){var U=t+" Iterator";return e.prototype=fU(yU,{next:NU(1,n)}),bU(e,U,!1),vU[U]=TU,e},IU=RU,GU=XU,MU=EU,YU=ee,wU=Oe,KU=rU,_U=JU.IteratorPrototype,jU=JU.BUGGY_SAFARI_ITERATORS,HU=Cn("iterator"),PU="keys",zU="values",OU="entries",AU=function(){return this},qU=function(e,t,n,U,F,Q,i){LU(n,t,U);var l,r,a,d=function(e){if(e===F&&R)return R;if(!jU&&e in B)return B[e];switch(e){case PU:case zU:case OU:return function(){return new n(this,e)}}return function(){return new n(this)}},o=t+" Iterator",s=!1,B=e.prototype,c=B[HU]||B["@@iterator"]||F&&B[F],R=!jU&&c||d(F),V="Array"==t&&B.entries||c;if(V&&(l=IU(V.call(new e)),_U!==Object.prototype&&l.next&&(IU(l)!==_U&&(GU?GU(l,_U):"function"!=typeof l[HU]&&YU(l,HU,AU)),MU(l,o,!0))),F==zU&&c&&c.name!==zU&&(s=!0,R=function(){return c.call(this)}),B[HU]!==R&&YU(B,HU,R),KU[t]=R,F)if(r={values:d(zU),keys:Q?R:d(PU),entries:d(OU)},i)for(a in r)(jU||s||!(a in B))&&wU(B,a,r[a]);else xU({target:t,proto:!0,forced:jU||s},r);return r},$U=p,eF=function(e){FU[UU][e]=!0},tF=rU,nF=Me,UF=qU,FF="Array Iterator",QF=nF.set,iF=nF.getterFor(FF),lF=UF(Array,"Array",(function(e,t){QF(this,{type:FF,target:$U(e),index:0,kind:t})}),(function(){var e=iF(this),t=e.target,n=e.kind,U=e.index++;return!t||U>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:U,done:!1}:"values"==n?{value:t[U],done:!1}:{value:[U,t[U]],done:!1}}),"values");tF.Arguments=tF.Array,eF("keys"),eF("values"),eF("entries");var rF={exports:{}},aF=!i((function(){return Object.isExtensible(Object.preventExtensions({}))})),dF=Ee,oF=J,sF=N,BF=K.f,cF=aF,RF=Je("meta"),VF=0,uF=Object.isExtensible||function(){return!0},hF=function(e){BF(e,RF,{value:{objectID:"O"+ ++VF,weakData:{}}})},ZF=rF.exports={REQUIRED:!1,fastKey:function(e,t){if(!oF(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!sF(e,RF)){if(!uF(e))return"F";if(!t)return"E";hF(e)}return e[RF].objectID},getWeakData:function(e,t){if(!sF(e,RF)){if(!uF(e))return!0;if(!t)return!1;hF(e)}return e[RF].weakData},onFreeze:function(e){return cF&&ZF.REQUIRED&&uF(e)&&!sF(e,RF)&&hF(e),e}};dF[RF]=!0;var SF=rF.exports,pF=rU,JF=Cn("iterator"),mF=Array.prototype,WF=function(e){return void 0!==e&&(pF.Array===e||mF[JF]===e)},kF=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},EF=kF,yF=function(e,t,n){if(EF(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,U){return e.call(t,n,U)};case 3:return function(n,U,F){return e.call(t,n,U,F)}}return function(){return e.apply(t,arguments)}},fF={};fF[Cn("toStringTag")]="z";var NF="[object z]"===String(fF),bF=NF,vF=c,TF=Cn("toStringTag"),CF="Arguments"==vF(function(){return arguments}()),gF=bF?vF:function(e){var t,n,U;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),TF))?n:CF?vF(t):"Object"==(U=vF(t))&&"function"==typeof t.callee?"Arguments":U},DF=gF,XF=rU,xF=Cn("iterator"),LF=function(e){if(null!=e)return e[xF]||e["@@iterator"]||XF[DF(e)]},IF=j,GF=j,MF=WF,YF=rt,wF=yF,KF=LF,_F=function(e){var t=e.return;if(void 0!==t)return IF(t.call(e)).value},jF=function(e,t){this.stopped=e,this.result=t},HF=function(e,t,n){var U,F,Q,i,l,r,a,d=n&&n.that,o=!(!n||!n.AS_ENTRIES),s=!(!n||!n.IS_ITERATOR),B=!(!n||!n.INTERRUPTED),c=wF(t,d,1+o+B),R=function(e){return U&&_F(U),new jF(!0,e)},V=function(e){return o?(GF(e),B?c(e[0],e[1],R):c(e[0],e[1])):B?c(e,R):c(e)};if(s)U=e;else{if("function"!=typeof(F=KF(e)))throw TypeError("Target is not iterable");if(MF(F)){for(Q=0,i=YF(e.length);i>Q;Q++)if((l=V(e[Q]))&&l instanceof jF)return l;return new jF(!1)}U=F.call(e)}for(r=U.next;!(a=r.call(U)).done;){try{l=V(a.value)}catch(u){throw _F(U),u}if("object"==typeof l&&l&&l instanceof jF)return l}return new jF(!1)},PF=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},zF=Cn("iterator"),OF=!1;try{var AF=0,qF={next:function(){return{done:!!AF++}},return:function(){OF=!0}};qF[zF]=function(){return this},Array.from(qF,(function(){throw 2}))}catch(Ch){}var $F=function(e,t){if(!t&&!OF)return!1;var n=!1;try{var U={};U[zF]=function(){return{next:function(){return{done:n=!0}}}},e(U)}catch(Ch){}return n},eQ=J,tQ=XU,nQ=function(e,t,n){var U,F;return tQ&&"function"==typeof(U=t.constructor)&&U!==n&&eQ(F=U.prototype)&&F!==n.prototype&&tQ(e,F),e},UQ=Ot,FQ=F,QQ=Yt,iQ=Oe,lQ=SF,rQ=HF,aQ=PF,dQ=J,oQ=i,sQ=$F,BQ=EU,cQ=nQ,RQ=Oe,VQ=function(e,t,n){for(var U in t)RQ(e,U,t[U],n);return e},uQ=et,hQ=K,ZQ=l,SQ=Cn("species"),pQ=function(e){var t=uQ(e),n=hQ.f;ZQ&&t&&!t[SQ]&&n(t,SQ,{configurable:!0,get:function(){return this}})},JQ=K.f,mQ=eU,WQ=VQ,kQ=yF,EQ=PF,yQ=HF,fQ=qU,NQ=pQ,bQ=l,vQ=SF.fastKey,TQ=Me.set,CQ=Me.getterFor,gQ={getConstructor:function(e,t,n,U){var F=e((function(e,Q){EQ(e,F,t),TQ(e,{type:t,index:mQ(null),first:void 0,last:void 0,size:0}),bQ||(e.size=0),null!=Q&&yQ(Q,e[U],{that:e,AS_ENTRIES:n})})),Q=CQ(t),i=function(e,t,n){var U,F,i=Q(e),r=l(e,t);return r?r.value=n:(i.last=r={index:F=vQ(t,!0),key:t,value:n,previous:U=i.last,next:void 0,removed:!1},i.first||(i.first=r),U&&(U.next=r),bQ?i.size++:e.size++,"F"!==F&&(i.index[F]=r)),e},l=function(e,t){var n,U=Q(e),F=vQ(t);if("F"!==F)return U.index[F];for(n=U.first;n;n=n.next)if(n.key==t)return n};return WQ(F.prototype,{clear:function(){for(var e=Q(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,bQ?e.size=0:this.size=0},delete:function(e){var t=this,n=Q(t),U=l(t,e);if(U){var F=U.next,i=U.previous;delete n.index[U.index],U.removed=!0,i&&(i.next=F),F&&(F.previous=i),n.first==U&&(n.first=F),n.last==U&&(n.last=i),bQ?n.size--:t.size--}return!!U},forEach:function(e){for(var t,n=Q(this),U=kQ(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(U(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!l(this,e)}}),WQ(F.prototype,n?{get:function(e){var t=l(this,e);return t&&t.value},set:function(e,t){return i(this,0===e?0:e,t)}}:{add:function(e){return i(this,e=0===e?0:e,e)}}),bQ&&JQ(F.prototype,"size",{get:function(){return Q(this).size}}),F},setStrong:function(e,t,n){var U=t+" Iterator",F=CQ(t),Q=CQ(U);fQ(e,t,(function(e,t){TQ(this,{type:U,target:e,state:F(e),kind:t,last:void 0})}),(function(){for(var e=Q(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),NQ(t)}};!function(e,t,n){var U=-1!==e.indexOf("Map"),F=-1!==e.indexOf("Weak"),Q=U?"set":"add",i=FQ[e],l=i&&i.prototype,r=i,a={},d=function(e){var t=l[e];iQ(l,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(F&&!dQ(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return F&&!dQ(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(F&&!dQ(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(QQ(e,"function"!=typeof i||!(F||l.forEach&&!oQ((function(){(new i).entries().next()})))))r=n.getConstructor(t,e,U,Q),lQ.REQUIRED=!0;else if(QQ(e,!0)){var o=new r,s=o[Q](F?{}:-0,1)!=o,B=oQ((function(){o.has(1)})),c=sQ((function(e){new i(e)})),R=!F&&oQ((function(){for(var e=new i,t=5;t--;)e[Q](t,t);return!e.has(-0)}));c||((r=t((function(t,n){aQ(t,r,e);var F=cQ(new i,t,r);return null!=n&&rQ(n,F[Q],{that:F,AS_ENTRIES:U}),F}))).prototype=l,l.constructor=r),(B||R)&&(d("delete"),d("has"),U&&d("get")),(R||s)&&d(Q),F&&l.clear&&delete l.clear}a[e]=r,UQ({global:!0,forced:r!=i},a),BQ(r,e),F||n.setStrong(r,e,U)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),gQ);var DQ=gF,XQ=NF?{}.toString:function(){return"[object "+DQ(this)+"]"};NF||Oe(Object.prototype,"toString",XQ,{unsafe:!0});var xQ=Qt,LQ=h,IQ=function(e){return function(t,n){var U,F,Q=String(LQ(t)),i=xQ(n),l=Q.length;return i<0||i>=l?e?"":void 0:(U=Q.charCodeAt(i))<55296||U>56319||i+1===l||(F=Q.charCodeAt(i+1))<56320||F>57343?e?Q.charAt(i):U:e?Q.slice(i,i+2):F-56320+(U-55296<<10)+65536}},GQ={codeAt:IQ(!1),charAt:IQ(!0)},MQ=GQ.charAt,YQ=Me,wQ=qU,KQ="String Iterator",_Q=YQ.set,jQ=YQ.getterFor(KQ);wQ(String,"String",(function(e){_Q(this,{type:KQ,string:String(e),index:0})}),(function(){var e,t=jQ(this),n=t.string,U=t.index;return U>=n.length?{value:void 0,done:!0}:(e=MQ(n,U),t.index+=e.length,{value:e,done:!1})}));var HQ=j,PQ=kF,zQ=function(){for(var e,t=HQ(this),n=PQ(t.delete),U=!0,F=0,Q=arguments.length;F<Q;F++)e=n.call(t,arguments[F]),U=U&&e;return!!U};Ot({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return zQ.apply(this,arguments)}});var OQ=function(e){return Map.prototype.entries.call(e)},AQ=j,qQ=yF,$Q=OQ,ei=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var t=AQ(this),n=$Q(t),U=qQ(e,arguments.length>1?arguments[1]:void 0,3);return!ei(n,(function(e,n,F){if(!U(n,e,t))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var ti=j,ni=kF,Ui=Cn("species"),Fi=function(e,t){var n,U=ti(e).constructor;return void 0===U||null==(n=ti(U)[Ui])?t:ni(n)},Qi=et,ii=j,li=kF,ri=yF,ai=Fi,di=OQ,oi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var t=ii(this),n=di(t),U=ri(e,arguments.length>1?arguments[1]:void 0,3),F=new(ai(t,Qi("Map"))),Q=li(F.set);return oi(n,(function(e,n){U(n,e,t)&&Q.call(F,e,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var si=j,Bi=yF,ci=OQ,Ri=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var t=si(this),n=ci(t),U=Bi(e,arguments.length>1?arguments[1]:void 0,3);return Ri(n,(function(e,n,F){if(U(n,e,t))return F(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Vi=j,ui=yF,hi=OQ,Zi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var t=Vi(this),n=hi(t),U=ui(e,arguments.length>1?arguments[1]:void 0,3);return Zi(n,(function(e,n,F){if(U(n,e,t))return F(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Si=j,pi=OQ,Ji=function(e,t){return e===t||e!=e&&t!=t},mi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return mi(pi(Si(this)),(function(t,n,U){if(Ji(n,e))return U()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Wi=j,ki=OQ,Ei=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return Ei(ki(Wi(this)),(function(t,n,U){if(n===e)return U(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var yi=et,fi=j,Ni=kF,bi=yF,vi=Fi,Ti=OQ,Ci=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var t=fi(this),n=Ti(t),U=bi(e,arguments.length>1?arguments[1]:void 0,3),F=new(vi(t,yi("Map"))),Q=Ni(F.set);return Ci(n,(function(e,n){Q.call(F,U(n,e,t),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var gi=et,Di=j,Xi=kF,xi=yF,Li=Fi,Ii=OQ,Gi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var t=Di(this),n=Ii(t),U=xi(e,arguments.length>1?arguments[1]:void 0,3),F=new(Li(t,gi("Map"))),Q=Xi(F.set);return Gi(n,(function(e,n){Q.call(F,e,U(n,e,t))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Mi=j,Yi=kF,wi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var t=Mi(this),n=Yi(t.set),U=0;U<arguments.length;)wi(arguments[U++],n,{that:t,AS_ENTRIES:!0});return t}});var Ki=j,_i=kF,ji=OQ,Hi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var t=Ki(this),n=ji(t),U=arguments.length<2,F=U?void 0:arguments[1];if(_i(e),Hi(n,(function(n,Q){U?(U=!1,F=Q):F=e(F,Q,n,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),U)throw TypeError("Reduce of empty map with no initial value");return F}});var Pi=j,zi=yF,Oi=OQ,Ai=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var t=Pi(this),n=Oi(t),U=zi(e,arguments.length>1?arguments[1]:void 0,3);return Ai(n,(function(e,n,F){if(U(n,e,t))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var qi=j,$i=kF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,t){var n=qi(this),U=arguments.length;$i(t);var F=n.has(e);if(!F&&U<3)throw TypeError("Updating absent value");var Q=F?n.get(e):$i(U>2?arguments[2]:void 0)(e,n);return n.set(e,t(Q,e,n)),n}});var el={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},tl=F,nl=el,Ul=lF,Fl=ee,Ql=Cn,il=Ql("iterator"),ll=Ql("toStringTag"),rl=Ul.values;for(var al in nl){var dl=tl[al],ol=dl&&dl.prototype;if(ol){if(ol[il]!==rl)try{Fl(ol,il,rl)}catch(Ch){ol[il]=rl}if(ol[ll]||Fl(ol,ll,al),nl[al])for(var sl in Ul)if(ol[sl]!==Ul[sl])try{Fl(ol,sl,Ul[sl])}catch(Ch){ol[sl]=Ul[sl]}}}var Bl=c,cl=Array.isArray||function(e){return"Array"==Bl(e)},Rl=J,Vl=cl,ul=Cn("species"),hl=function(e,t){var n;return Vl(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Vl(n.prototype)?Rl(n)&&null===(n=n[ul])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},Zl=yF,Sl=u,pl=E,Jl=rt,ml=hl,Wl=[].push,kl=function(e){var t=1==e,n=2==e,U=3==e,F=4==e,Q=6==e,i=7==e,l=5==e||Q;return function(r,a,d,o){for(var s,B,c=pl(r),R=Sl(c),V=Zl(a,d,3),u=Jl(R.length),h=0,Z=o||ml,S=t?Z(r,u):n||i?Z(r,0):void 0;u>h;h++)if((l||h in R)&&(B=V(s=R[h],h,c),e))if(t)S[h]=B;else if(B)switch(e){case 3:return!0;case 5:return s;case 6:return h;case 2:Wl.call(S,s)}else switch(e){case 4:return!1;case 7:Wl.call(S,s)}return Q?-1:U||F?F:S}},El={forEach:kl(0),map:kl(1),filter:kl(2),some:kl(3),every:kl(4),find:kl(5),findIndex:kl(6),filterOut:kl(7)},yl=i,fl=Sn,Nl=Cn("species"),bl=function(e){return fl>=51||!yl((function(){var t=[];return(t.constructor={})[Nl]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},vl=El.map;Ot({target:"Array",proto:!0,forced:!bl("map")},{map:function(e){return vl(this,e,arguments.length>1?arguments[1]:void 0)}});var Tl=E,Cl=Xn;Ot({target:"Object",stat:!0,forced:i((function(){Cl(1)}))},{keys:function(e){return Cl(Tl(e))}});var gl=W,Dl=K,Xl=s,xl=function(e,t,n){var U=gl(t);U in e?Dl.f(e,U,Xl(0,n)):e[U]=n},Ll=Ot,Il=i,Gl=cl,Ml=J,Yl=E,wl=rt,Kl=xl,_l=hl,jl=bl,Hl=Sn,Pl=Cn("isConcatSpreadable"),zl=9007199254740991,Ol="Maximum allowed index exceeded",Al=Hl>=51||!Il((function(){var e=[];return e[Pl]=!1,e.concat()[0]!==e})),ql=jl("concat"),$l=function(e){if(!Ml(e))return!1;var t=e[Pl];return void 0!==t?!!t:Gl(e)};Ll({target:"Array",proto:!0,forced:!Al||!ql},{concat:function(e){var t,n,U,F,Q,i=Yl(this),l=_l(i,0),r=0;for(t=-1,U=arguments.length;t<U;t++)if($l(Q=-1===t?i:arguments[t])){if(r+(F=wl(Q.length))>zl)throw TypeError(Ol);for(n=0;n<F;n++,r++)n in Q&&Kl(l,r,Q[n])}else{if(r>=zl)throw TypeError(Ol);Kl(l,r++,Q)}return l.length=r,l}});var er,tr,nr,Ur=F.Promise,Fr=/(?:iphone|ipod|ipad).*applewebkit/i.test(cn),Qr="process"==c(F.process),ir=F,lr=i,rr=yF,ar=Mn,dr=C,or=Fr,sr=Qr,Br=ir.location,cr=ir.setImmediate,Rr=ir.clearImmediate,Vr=ir.process,ur=ir.MessageChannel,hr=ir.Dispatch,Zr=0,Sr={},pr="onreadystatechange",Jr=function(e){if(Sr.hasOwnProperty(e)){var t=Sr[e];delete Sr[e],t()}},mr=function(e){return function(){Jr(e)}},Wr=function(e){Jr(e.data)},kr=function(e){ir.postMessage(e+"",Br.protocol+"//"+Br.host)};cr&&Rr||(cr=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return Sr[++Zr]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},er(Zr),Zr},Rr=function(e){delete Sr[e]},sr?er=function(e){Vr.nextTick(mr(e))}:hr&&hr.now?er=function(e){hr.now(mr(e))}:ur&&!or?(nr=(tr=new ur).port2,tr.port1.onmessage=Wr,er=rr(nr.postMessage,nr,1)):ir.addEventListener&&"function"==typeof postMessage&&!ir.importScripts&&Br&&"file:"!==Br.protocol&&!lr(kr)?(er=kr,ir.addEventListener("message",Wr,!1)):er=pr in dr("script")?function(e){ar.appendChild(dr("script"))[pr]=function(){ar.removeChild(this),Jr(e)}}:function(e){setTimeout(mr(e),0)});var Er,yr,fr,Nr,br,vr,Tr,Cr,gr={set:cr,clear:Rr},Dr=/web0s(?!.*chrome)/i.test(cn),Xr=F,xr=Q.f,Lr=gr.set,Ir=Fr,Gr=Dr,Mr=Qr,Yr=Xr.MutationObserver||Xr.WebKitMutationObserver,wr=Xr.document,Kr=Xr.process,_r=Xr.Promise,jr=xr(Xr,"queueMicrotask"),Hr=jr&&jr.value;Hr||(Er=function(){var e,t;for(Mr&&(e=Kr.domain)&&e.exit();yr;){t=yr.fn,yr=yr.next;try{t()}catch(Ch){throw yr?Nr():fr=void 0,Ch}}fr=void 0,e&&e.enter()},Ir||Mr||Gr||!Yr||!wr?_r&&_r.resolve?((Tr=_r.resolve(void 0)).constructor=_r,Cr=Tr.then,Nr=function(){Cr.call(Tr,Er)}):Nr=Mr?function(){Kr.nextTick(Er)}:function(){Lr.call(Xr,Er)}:(br=!0,vr=wr.createTextNode(""),new Yr(Er).observe(vr,{characterData:!0}),Nr=function(){vr.data=br=!br}));var Pr=Hr||function(e){var t={fn:e,next:void 0};fr&&(fr.next=t),yr||(yr=t,Nr()),fr=t},zr={},Or=kF,Ar=function(e){var t,n;this.promise=new e((function(e,U){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=U})),this.resolve=Or(t),this.reject=Or(n)};zr.f=function(e){return new Ar(e)};var qr,$r,ea,ta,na=j,Ua=J,Fa=zr,Qa=F,ia="object"==typeof window,la=Ot,ra=F,aa=et,da=Ur,oa=Oe,sa=VQ,Ba=XU,ca=EU,Ra=pQ,Va=J,ua=kF,ha=PF,Za=de,Sa=HF,pa=$F,Ja=Fi,ma=gr.set,Wa=Pr,ka=function(e,t){if(na(e),Ua(t)&&t.constructor===e)return t;var n=Fa.f(e);return(0,n.resolve)(t),n.promise},Ea=function(e,t){var n=Qa.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))},ya=zr,fa=function(e){try{return{error:!1,value:e()}}catch(Ch){return{error:!0,value:Ch}}},Na=Me,ba=Yt,va=ia,Ta=Qr,Ca=Sn,ga=Cn("species"),Da="Promise",Xa=Na.get,xa=Na.set,La=Na.getterFor(Da),Ia=da&&da.prototype,Ga=da,Ma=Ia,Ya=ra.TypeError,wa=ra.document,Ka=ra.process,_a=ya.f,ja=_a,Ha=!!(wa&&wa.createEvent&&ra.dispatchEvent),Pa="function"==typeof PromiseRejectionEvent,za="unhandledrejection",Oa=!1,Aa=ba(Da,(function(){var e=Za(Ga)!==String(Ga);if(!e&&66===Ca)return!0;if(Ca>=51&&/native code/.test(Ga))return!1;var t=new Ga((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(t.constructor={})[ga]=n,!(Oa=t.then((function(){}))instanceof n)||!e&&va&&!Pa})),qa=Aa||!pa((function(e){Ga.all(e).catch((function(){}))})),$a=function(e){var t;return!(!Va(e)||"function"!=typeof(t=e.then))&&t},ed=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;Wa((function(){for(var U=e.value,F=1==e.state,Q=0;n.length>Q;){var i,l,r,a=n[Q++],d=F?a.ok:a.fail,o=a.resolve,s=a.reject,B=a.domain;try{d?(F||(2===e.rejection&&Fd(e),e.rejection=1),!0===d?i=U:(B&&B.enter(),i=d(U),B&&(B.exit(),r=!0)),i===a.promise?s(Ya("Promise-chain cycle")):(l=$a(i))?l.call(i,o,s):o(i)):s(U)}catch(Ch){B&&!r&&B.exit(),s(Ch)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&nd(e)}))}},td=function(e,t,n){var U,F;Ha?((U=wa.createEvent("Event")).promise=t,U.reason=n,U.initEvent(e,!1,!0),ra.dispatchEvent(U)):U={promise:t,reason:n},!Pa&&(F=ra["on"+e])?F(U):e===za&&Ea("Unhandled promise rejection",n)},nd=function(e){ma.call(ra,(function(){var t,n=e.facade,U=e.value;if(Ud(e)&&(t=fa((function(){Ta?Ka.emit("unhandledRejection",U,n):td(za,n,U)})),e.rejection=Ta||Ud(e)?2:1,t.error))throw t.value}))},Ud=function(e){return 1!==e.rejection&&!e.parent},Fd=function(e){ma.call(ra,(function(){var t=e.facade;Ta?Ka.emit("rejectionHandled",t):td("rejectionhandled",t,e.value)}))},Qd=function(e,t,n){return function(U){e(t,U,n)}},id=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,ed(e,!0))},ld=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Ya("Promise can't be resolved itself");var U=$a(t);U?Wa((function(){var n={done:!1};try{U.call(t,Qd(ld,n,e),Qd(id,n,e))}catch(Ch){id(n,Ch,e)}})):(e.value=t,e.state=1,ed(e,!1))}catch(Ch){id({done:!1},Ch,e)}}};if(Aa&&(Ma=(Ga=function(e){ha(this,Ga,Da),ua(e),qr.call(this);var t=Xa(this);try{e(Qd(ld,t),Qd(id,t))}catch(Ch){id(t,Ch)}}).prototype,(qr=function(e){xa(this,{type:Da,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=sa(Ma,{then:function(e,t){var n=La(this),U=_a(Ja(this,Ga));return U.ok="function"!=typeof e||e,U.fail="function"==typeof t&&t,U.domain=Ta?Ka.domain:void 0,n.parent=!0,n.reactions.push(U),0!=n.state&&ed(n,!1),U.promise},catch:function(e){return this.then(void 0,e)}}),$r=function(){var e=new qr,t=Xa(e);this.promise=e,this.resolve=Qd(ld,t),this.reject=Qd(id,t)},ya.f=_a=function(e){return e===Ga||e===ea?new $r(e):ja(e)},"function"==typeof da&&Ia!==Object.prototype)){ta=Ia.then,Oa||(oa(Ia,"then",(function(e,t){var n=this;return new Ga((function(e,t){ta.call(n,e,t)})).then(e,t)}),{unsafe:!0}),oa(Ia,"catch",Ma.catch,{unsafe:!0}));try{delete Ia.constructor}catch(Ch){}Ba&&Ba(Ia,Ma)}la({global:!0,wrap:!0,forced:Aa},{Promise:Ga}),ca(Ga,Da,!1),Ra(Da),ea=aa(Da),la({target:Da,stat:!0,forced:Aa},{reject:function(e){var t=_a(this);return t.reject.call(void 0,e),t.promise}}),la({target:Da,stat:!0,forced:Aa},{resolve:function(e){return ka(this,e)}}),la({target:Da,stat:!0,forced:qa},{all:function(e){var t=this,n=_a(t),U=n.resolve,F=n.reject,Q=fa((function(){var n=ua(t.resolve),Q=[],i=0,l=1;Sa(e,(function(e){var r=i++,a=!1;Q.push(void 0),l++,n.call(t,e).then((function(e){a||(a=!0,Q[r]=e,--l||U(Q))}),F)})),--l||U(Q)}));return Q.error&&F(Q.value),n.promise},race:function(e){var t=this,n=_a(t),U=n.reject,F=fa((function(){var F=ua(t.resolve);Sa(e,(function(e){F.call(t,e).then(n.resolve,U)}))}));return F.error&&U(F.value),n.promise}});var rd={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function U(){}function F(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function Q(e,t,U,Q,i){if("function"!=typeof U)throw new TypeError("The listener must be a function");var l=new F(U,Q||e,i),r=n?n+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],l]:e._events[r].push(l):(e._events[r]=l,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new U:delete e._events[t]}function l(){this._events=new U,this._eventsCount=0}Object.create&&(U.prototype=Object.create(null),(new U).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,U,F=[];if(0===this._eventsCount)return F;for(U in e=this._events)t.call(e,U)&&F.push(n?U.slice(1):U);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},l.prototype.listeners=function(e){var t=n?n+e:e,U=this._events[t];if(!U)return[];if(U.fn)return[U.fn];for(var F=0,Q=U.length,i=new Array(Q);F<Q;F++)i[F]=U[F].fn;return i},l.prototype.listenerCount=function(e){var t=n?n+e:e,U=this._events[t];return U?U.fn?1:U.length:0},l.prototype.emit=function(e,t,U,F,Q,i){var l=n?n+e:e;if(!this._events[l])return!1;var r,a,d=this._events[l],o=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),o){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,U),!0;case 4:return d.fn.call(d.context,t,U,F),!0;case 5:return d.fn.call(d.context,t,U,F,Q),!0;case 6:return d.fn.call(d.context,t,U,F,Q,i),!0}for(a=1,r=new Array(o-1);a<o;a++)r[a-1]=arguments[a];d.fn.apply(d.context,r)}else{var s,B=d.length;for(a=0;a<B;a++)switch(d[a].once&&this.removeListener(e,d[a].fn,void 0,!0),o){case 1:d[a].fn.call(d[a].context);break;case 2:d[a].fn.call(d[a].context,t);break;case 3:d[a].fn.call(d[a].context,t,U);break;case 4:d[a].fn.call(d[a].context,t,U,F);break;default:if(!r)for(s=1,r=new Array(o-1);s<o;s++)r[s-1]=arguments[s];d[a].fn.apply(d[a].context,r)}}return!0},l.prototype.on=function(e,t,n){return Q(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return Q(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,U,F){var Q=n?n+e:e;if(!this._events[Q])return this;if(!t)return i(this,Q),this;var l=this._events[Q];if(l.fn)l.fn!==t||F&&!l.once||U&&l.context!==U||i(this,Q);else{for(var r=0,a=[],d=l.length;r<d;r++)(l[r].fn!==t||F&&!l[r].once||U&&l[r].context!==U)&&a.push(l[r]);a.length?this._events[Q]=1===a.length?a[0]:a:i(this,Q)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new U,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l}(rd);var ad=n(rd.exports),dd={exports:{}};dd.exports=function(e){var t=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function n(e,t){var n=e[0],U=e[1],F=e[2],Q=e[3];U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[0]-680876936|0)<<7|n>>>25)+U|0)&U|~n&F)+t[1]-389564586|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[2]+606105819|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[3]-1044525330|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[4]-176418897|0)<<7|n>>>25)+U|0)&U|~n&F)+t[5]+1200080426|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[6]-1473231341|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[7]-45705983|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[8]+1770035416|0)<<7|n>>>25)+U|0)&U|~n&F)+t[9]-1958414417|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[10]-42063|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[11]-1990404162|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[12]+1804603682|0)<<7|n>>>25)+U|0)&U|~n&F)+t[13]-40341101|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[14]-1502002290|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[15]+1236535329|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[1]-165796510|0)<<5|n>>>27)+U|0)&F|U&~F)+t[6]-1069501632|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[11]+643717713|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[0]-373897302|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[5]-701558691|0)<<5|n>>>27)+U|0)&F|U&~F)+t[10]+38016083|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[15]-660478335|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[4]-405537848|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[9]+568446438|0)<<5|n>>>27)+U|0)&F|U&~F)+t[14]-1019803690|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[3]-187363961|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[8]+1163531501|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[13]-1444681467|0)<<5|n>>>27)+U|0)&F|U&~F)+t[2]-51403784|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[7]+1735328473|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[12]-1926607734|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[5]-378558|0)<<4|n>>>28)+U|0)^U^F)+t[8]-2022574463|0)<<11|Q>>>21)+n|0)^n^U)+t[11]+1839030562|0)<<16|F>>>16)+Q|0)^Q^n)+t[14]-35309556|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[1]-1530992060|0)<<4|n>>>28)+U|0)^U^F)+t[4]+1272893353|0)<<11|Q>>>21)+n|0)^n^U)+t[7]-155497632|0)<<16|F>>>16)+Q|0)^Q^n)+t[10]-1094730640|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[13]+681279174|0)<<4|n>>>28)+U|0)^U^F)+t[0]-358537222|0)<<11|Q>>>21)+n|0)^n^U)+t[3]-722521979|0)<<16|F>>>16)+Q|0)^Q^n)+t[6]+76029189|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[9]-640364487|0)<<4|n>>>28)+U|0)^U^F)+t[12]-421815835|0)<<11|Q>>>21)+n|0)^n^U)+t[15]+530742520|0)<<16|F>>>16)+Q|0)^Q^n)+t[2]-995338651|0)<<23|U>>>9)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[0]-198630844|0)<<6|n>>>26)+U|0)|~F))+t[7]+1126891415|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[14]-1416354905|0)<<15|F>>>17)+Q|0)|~n))+t[5]-57434055|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[12]+1700485571|0)<<6|n>>>26)+U|0)|~F))+t[3]-1894986606|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[10]-1051523|0)<<15|F>>>17)+Q|0)|~n))+t[1]-2054922799|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[8]+1873313359|0)<<6|n>>>26)+U|0)|~F))+t[15]-30611744|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[6]-1560198380|0)<<15|F>>>17)+Q|0)|~n))+t[13]+1309151649|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[4]-145523070|0)<<6|n>>>26)+U|0)|~F))+t[11]-1120210379|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[2]+718787259|0)<<15|F>>>17)+Q|0)|~n))+t[9]-343485551|0)<<21|U>>>11)+F|0,e[0]=n+e[0]|0,e[1]=U+e[1]|0,e[2]=F+e[2]|0,e[3]=Q+e[3]|0}function U(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}function F(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return n}function Q(e){var t,F,Q,i,l,r,a=e.length,d=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=a;t+=64)n(d,U(e.substring(t-64,t)));for(F=(e=e.substring(t-64)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<F;t+=1)Q[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(Q[t>>2]|=128<<(t%4<<3),t>55)for(n(d,Q),t=0;t<16;t+=1)Q[t]=0;return i=(i=8*a).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(i[2],16),r=parseInt(i[1],16)||0,Q[14]=l,Q[15]=r,n(d,Q),d}function i(e){var t,U,Q,i,l,r,a=e.length,d=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=a;t+=64)n(d,F(e.subarray(t-64,t)));for(U=(e=t-64<a?e.subarray(t-64):new Uint8Array(0)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<U;t+=1)Q[t>>2]|=e[t]<<(t%4<<3);if(Q[t>>2]|=128<<(t%4<<3),t>55)for(n(d,Q),t=0;t<16;t+=1)Q[t]=0;return i=(i=8*a).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(i[2],16),r=parseInt(i[1],16)||0,Q[14]=l,Q[15]=r,n(d,Q),d}function l(e){var n,U="";for(n=0;n<4;n+=1)U+=t[e>>8*n+4&15]+t[e>>8*n&15];return U}function r(e){var t;for(t=0;t<e.length;t+=1)e[t]=l(e[t]);return e.join("")}function a(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function d(e,t){var n,U=e.length,F=new ArrayBuffer(U),Q=new Uint8Array(F);for(n=0;n<U;n+=1)Q[n]=e.charCodeAt(n);return t?Q:F}function o(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function s(e,t,n){var U=new Uint8Array(e.byteLength+t.byteLength);return U.set(new Uint8Array(e)),U.set(new Uint8Array(t),e.byteLength),n?U:U.buffer}function B(e){var t,n=[],U=e.length;for(t=0;t<U-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function c(){this.reset()}return r(Q("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)<0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(n,U){var F,Q,i,l,r=this.byteLength,a=t(n,r),d=r;return U!==e&&(d=t(U,r)),a>d?new ArrayBuffer(0):(F=d-a,Q=new ArrayBuffer(F),i=new Uint8Array(Q),l=new Uint8Array(this,a,F),i.set(l),Q)}}(),c.prototype.append=function(e){return this.appendBinary(a(e)),this},c.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,F=this._buff.length;for(t=64;t<=F;t+=64)n(this._hash,U(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},c.prototype.end=function(e){var t,n,U=this._buff,F=U.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<F;t+=1)Q[t>>2]|=U.charCodeAt(t)<<(t%4<<3);return this._finish(Q,F),n=r(this._hash),e&&(n=B(n)),this.reset(),n},c.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},c.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},c.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},c.prototype._finish=function(e,t){var U,F,Q,i=t;if(e[i>>2]|=128<<(i%4<<3),i>55)for(n(this._hash,e),i=0;i<16;i+=1)e[i]=0;U=(U=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),F=parseInt(U[2],16),Q=parseInt(U[1],16)||0,e[14]=F,e[15]=Q,n(this._hash,e)},c.hash=function(e,t){return c.hashBinary(a(e),t)},c.hashBinary=function(e,t){var n=r(Q(e));return t?B(n):n},c.ArrayBuffer=function(){this.reset()},c.ArrayBuffer.prototype.append=function(e){var t,U=s(this._buff.buffer,e,!0),Q=U.length;for(this._length+=e.byteLength,t=64;t<=Q;t+=64)n(this._hash,F(U.subarray(t-64,t)));return this._buff=t-64<Q?new Uint8Array(U.buffer.slice(t-64)):new Uint8Array(0),this},c.ArrayBuffer.prototype.end=function(e){var t,n,U=this._buff,F=U.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<F;t+=1)Q[t>>2]|=U[t]<<(t%4<<3);return this._finish(Q,F),n=r(this._hash),e&&(n=B(n)),this.reset(),n},c.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.ArrayBuffer.prototype.getState=function(){var e=c.prototype.getState.call(this);return e.buff=o(e.buff),e},c.ArrayBuffer.prototype.setState=function(e){return e.buff=d(e.buff,!0),c.prototype.setState.call(this,e)},c.ArrayBuffer.prototype.destroy=c.prototype.destroy,c.ArrayBuffer.prototype._finish=c.prototype._finish,c.ArrayBuffer.hash=function(e,t){var n=r(i(new Uint8Array(e)));return t?B(n):n},c}();var od=n(dd.exports),sd=i,Bd=function(e,t){var n=[][e];return!!n&&sd((function(){n.call(null,t||function(){throw 1},1)}))},cd=Ot,Rd=p,Vd=[].join,ud=u!=Object,hd=Bd("join",",");cd({target:"Array",proto:!0,forced:ud||!hd},{join:function(e){return Vd.call(Rd(this),void 0===e?",":e)}});var Zd=function(e){return e>="0"&&e<="9"?e.charCodeAt(0)-"0".charCodeAt(0):e>="a"&&e<="z"?e.charCodeAt(0)-"a".charCodeAt(0)+10:255},Sd=function(e,t){var n,U=(e[0].charCodeAt()^e[1].charCodeAt()^e[2].charCodeAt())-"0".charCodeAt(0),F=t-U-1,Q=new Array(F),i=new Array(U);for(n=U;n>0;n--)i[U-n]=String.fromCharCode(e[t-U-2].charCodeAt()^e[t-U-1].charCodeAt()^e[t-n].charCodeAt());for(n=0;n<F;n++)Q[n]=e[n+1];return{convertKey:Q,convertLen:F,method:i.join(""),methodLen:U}},pd=function(e){var t=0;for(t=0;0!==e;t++)e&=e-1;return t},Jd=function(e,t,n){var U=e+pd(t)+n;return String.fromCharCode(255&U)},md=function(e,t,n){var U=e.charCodeAt()-pd(t)-n;return String.fromCharCode(255&U)},Wd=function(e,t,n){for(var U,F=85,Q=250,i=0;i<t;i++)i%2==1?(U=F^e[i].charCodeAt(),F=e[i].charCodeAt()):(U=Q^e[i].charCodeAt(),Q=e[i].charCodeAt()),e[i]=0===n?md(U,i,21):Jd(U,i,21);return e},kd=function(e,t,n){var U=85,F=250;Ed(e);for(var Q,i,l,r=0;r<t;r++){(l=e[r].charCodeAt(0))>127&&(l-=256),r%2==1?(Q=U^l,U=l,i=F):(Q=F^l,F=l,i=U),Q>127&&(Q-=256);var a=(0===n?md(Q,r,21):Jd(Q,r,21)).charCodeAt(0);a>127&&(a-=256);var d=a-i;d<0&&(d+=256),e[r]=String.fromCharCode(d)}return Ed(e),e};function Ed(e){for(var t,n=e.length,U=0;U<n&&U!==n-1;U+=2)t=e[U],e[U]=e[U+1],e[U+1]=t;return e}function yd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,U=e;t=t||U.length;var F=Sd(U,t),Q=F.convertKey,i=F.convertLen;switch(F.method){case"11":case"22":case"appdevice":case"webdevice":Q=Wd(Q,i,n);break;case"app_v2":case"web_v2":Q=kd(Q,i,n)}var l=i-Zd(Q[0])-1,r=new Array(l+1);r[l]="";var a=0;for(a=0;a<l;a++)r[a]=Q[a+1];return r.join("")}var fd,Nd={exports:{}},bd="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,vd=bd,Td=l,Cd=F,gd=J,Dd=N,Xd=gF,xd=ee,Ld=Oe,Id=K.f,Gd=RU,Md=XU,Yd=Cn,wd=Je,Kd=Cd.Int8Array,_d=Kd&&Kd.prototype,jd=Cd.Uint8ClampedArray,Hd=jd&&jd.prototype,Pd=Kd&&Gd(Kd),zd=_d&&Gd(_d),Od=Object.prototype,Ad=Od.isPrototypeOf,qd=Yd("toStringTag"),$d=wd("TYPED_ARRAY_TAG"),eo=vd&&!!Md&&"Opera"!==Xd(Cd.opera),to=!1,no={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Uo={BigInt64Array:8,BigUint64Array:8},Fo=function(e){if(!gd(e))return!1;var t=Xd(e);return Dd(no,t)||Dd(Uo,t)};for(fd in no)Cd[fd]||(eo=!1);if((!eo||"function"!=typeof Pd||Pd===Function.prototype)&&(Pd=function(){throw TypeError("Incorrect invocation")},eo))for(fd in no)Cd[fd]&&Md(Cd[fd],Pd);if((!eo||!zd||zd===Od)&&(zd=Pd.prototype,eo))for(fd in no)Cd[fd]&&Md(Cd[fd].prototype,zd);if(eo&&Gd(Hd)!==zd&&Md(Hd,zd),Td&&!Dd(zd,qd))for(fd in to=!0,Id(zd,qd,{get:function(){return gd(this)?this[$d]:void 0}}),no)Cd[fd]&&xd(Cd[fd],$d,fd);var Qo={NATIVE_ARRAY_BUFFER_VIEWS:eo,TYPED_ARRAY_TAG:to&&$d,aTypedArray:function(e){if(Fo(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Md){if(Ad.call(Pd,e))return e}else for(var t in no)if(Dd(no,fd)){var n=Cd[t];if(n&&(e===n||Ad.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(Td){if(n)for(var U in no){var F=Cd[U];if(F&&Dd(F.prototype,e))try{delete F.prototype[e]}catch(Ch){}}zd[e]&&!n||Ld(zd,e,n?t:eo&&_d[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var U,F;if(Td){if(Md){if(n)for(U in no)if((F=Cd[U])&&Dd(F,e))try{delete F[e]}catch(Ch){}if(Pd[e]&&!n)return;try{return Ld(Pd,e,n?t:eo&&Pd[e]||t)}catch(Ch){}}for(U in no)!(F=Cd[U])||F[e]&&!n||Ld(F,e,t)}},isView:function(e){if(!gd(e))return!1;var t=Xd(e);return"DataView"===t||Dd(no,t)||Dd(Uo,t)},isTypedArray:Fo,TypedArray:Pd,TypedArrayPrototype:zd},io=F,lo=i,ro=$F,ao=Qo.NATIVE_ARRAY_BUFFER_VIEWS,oo=io.ArrayBuffer,so=io.Int8Array,Bo=!ao||!lo((function(){so(1)}))||!lo((function(){new so(-1)}))||!ro((function(e){new so,new so(null),new so(1.5),new so(e)}),!0)||lo((function(){return 1!==new so(new oo(2),1,void 0).length})),co=Qt,Ro=rt,Vo=function(e){if(void 0===e)return 0;var t=co(e),n=Ro(t);if(t!==n)throw RangeError("Wrong length or index");return n},uo=Math.abs,ho=Math.pow,Zo=Math.floor,So=Math.log,po=Math.LN2,Jo=E,mo=st,Wo=rt,ko=function(e){for(var t=Jo(this),n=Wo(t.length),U=arguments.length,F=mo(U>1?arguments[1]:void 0,n),Q=U>2?arguments[2]:void 0,i=void 0===Q?n:mo(Q,n);i>F;)t[F++]=e;return t},Eo=F,yo=l,fo=bd,No=ee,bo=VQ,vo=i,To=PF,Co=Qt,go=rt,Do=Vo,Xo={pack:function(e,t,n){var U,F,Q,i=new Array(n),l=8*n-t-1,r=(1<<l)-1,a=r>>1,d=23===t?ho(2,-24)-ho(2,-77):0,o=e<0||0===e&&1/e<0?1:0,s=0;for((e=uo(e))!=e||e===1/0?(F=e!=e?1:0,U=r):(U=Zo(So(e)/po),e*(Q=ho(2,-U))<1&&(U--,Q*=2),(e+=U+a>=1?d/Q:d*ho(2,1-a))*Q>=2&&(U++,Q/=2),U+a>=r?(F=0,U=r):U+a>=1?(F=(e*Q-1)*ho(2,t),U+=a):(F=e*ho(2,a-1)*ho(2,t),U=0));t>=8;i[s++]=255&F,F/=256,t-=8);for(U=U<<t|F,l+=t;l>0;i[s++]=255&U,U/=256,l-=8);return i[--s]|=128*o,i},unpack:function(e,t){var n,U=e.length,F=8*U-t-1,Q=(1<<F)-1,i=Q>>1,l=F-7,r=U-1,a=e[r--],d=127&a;for(a>>=7;l>0;d=256*d+e[r],r--,l-=8);for(n=d&(1<<-l)-1,d>>=-l,l+=t;l>0;n=256*n+e[r],r--,l-=8);if(0===d)d=1-i;else{if(d===Q)return n?NaN:a?-1/0:1/0;n+=ho(2,t),d-=i}return(a?-1:1)*n*ho(2,d-t)}},xo=RU,Lo=XU,Io=tt.f,Go=K.f,Mo=ko,Yo=EU,wo=Me.get,Ko=Me.set,_o="ArrayBuffer",jo="DataView",Ho="prototype",Po="Wrong index",zo=Eo[_o],Oo=zo,Ao=Eo[jo],qo=Ao&&Ao[Ho],$o=Object.prototype,es=Eo.RangeError,ts=Xo.pack,ns=Xo.unpack,Us=function(e){return[255&e]},Fs=function(e){return[255&e,e>>8&255]},Qs=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},is=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},ls=function(e){return ts(e,23,4)},rs=function(e){return ts(e,52,8)},as=function(e,t){Go(e[Ho],t,{get:function(){return wo(this)[t]}})},ds=function(e,t,n,U){var F=Do(n),Q=wo(e);if(F+t>Q.byteLength)throw es(Po);var i=wo(Q.buffer).bytes,l=F+Q.byteOffset,r=i.slice(l,l+t);return U?r:r.reverse()},os=function(e,t,n,U,F,Q){var i=Do(n),l=wo(e);if(i+t>l.byteLength)throw es(Po);for(var r=wo(l.buffer).bytes,a=i+l.byteOffset,d=U(+F),o=0;o<t;o++)r[a+o]=d[Q?o:t-o-1]};if(fo){if(!vo((function(){zo(1)}))||!vo((function(){new zo(-1)}))||vo((function(){return new zo,new zo(1.5),new zo(NaN),zo.name!=_o}))){for(var ss,Bs=(Oo=function(e){return To(this,Oo),new zo(Do(e))})[Ho]=zo[Ho],cs=Io(zo),Rs=0;cs.length>Rs;)(ss=cs[Rs++])in Oo||No(Oo,ss,zo[ss]);Bs.constructor=Oo}Lo&&xo(qo)!==$o&&Lo(qo,$o);var Vs=new Ao(new Oo(2)),us=qo.setInt8;Vs.setInt8(0,2147483648),Vs.setInt8(1,2147483649),!Vs.getInt8(0)&&Vs.getInt8(1)||bo(qo,{setInt8:function(e,t){us.call(this,e,t<<24>>24)},setUint8:function(e,t){us.call(this,e,t<<24>>24)}},{unsafe:!0})}else Oo=function(e){To(this,Oo,_o);var t=Do(e);Ko(this,{bytes:Mo.call(new Array(t),0),byteLength:t}),yo||(this.byteLength=t)},Ao=function(e,t,n){To(this,Ao,jo),To(e,Oo,jo);var U=wo(e).byteLength,F=Co(t);if(F<0||F>U)throw es("Wrong offset");if(F+(n=void 0===n?U-F:go(n))>U)throw es("Wrong length");Ko(this,{buffer:e,byteLength:n,byteOffset:F}),yo||(this.buffer=e,this.byteLength=n,this.byteOffset=F)},yo&&(as(Oo,"byteLength"),as(Ao,"buffer"),as(Ao,"byteLength"),as(Ao,"byteOffset")),bo(Ao[Ho],{getInt8:function(e){return ds(this,1,e)[0]<<24>>24},getUint8:function(e){return ds(this,1,e)[0]},getInt16:function(e){var t=ds(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=ds(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return is(ds(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return is(ds(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return ns(ds(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return ns(ds(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){os(this,1,e,Us,t)},setUint8:function(e,t){os(this,1,e,Us,t)},setInt16:function(e,t){os(this,2,e,Fs,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){os(this,2,e,Fs,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){os(this,4,e,Qs,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){os(this,4,e,Qs,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){os(this,4,e,ls,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){os(this,8,e,rs,t,arguments.length>2?arguments[2]:void 0)}});Yo(Oo,_o),Yo(Ao,jo);var hs={ArrayBuffer:Oo,DataView:Ao},Zs=Qt,Ss=function(e){var t=Zs(e);if(t<0)throw RangeError("The argument can't be less than 0");return t},ps=function(e,t){var n=Ss(e);if(n%t)throw RangeError("Wrong offset");return n},Js=E,ms=rt,Ws=LF,ks=WF,Es=yF,ys=Qo.aTypedArrayConstructor,fs=Ot,Ns=F,bs=l,vs=Bo,Ts=Qo,Cs=hs,gs=PF,Ds=s,Xs=ee,xs=rt,Ls=Vo,Is=ps,Gs=W,Ms=N,Ys=gF,ws=J,Ks=eU,_s=XU,js=tt.f,Hs=function(e){var t,n,U,F,Q,i,l=Js(e),r=arguments.length,a=r>1?arguments[1]:void 0,d=void 0!==a,o=Ws(l);if(null!=o&&!ks(o))for(i=(Q=o.call(l)).next,l=[];!(F=i.call(Q)).done;)l.push(F.value);for(d&&r>2&&(a=Es(a,arguments[2],2)),n=ms(l.length),U=new(ys(this))(n),t=0;n>t;t++)U[t]=d?a(l[t],t):l[t];return U},Ps=El.forEach,zs=pQ,Os=K,As=Q,qs=nQ,$s=Me.get,eB=Me.set,tB=Os.f,nB=As.f,UB=Math.round,FB=Ns.RangeError,QB=Cs.ArrayBuffer,iB=Cs.DataView,lB=Ts.NATIVE_ARRAY_BUFFER_VIEWS,rB=Ts.TYPED_ARRAY_TAG,aB=Ts.TypedArray,dB=Ts.TypedArrayPrototype,oB=Ts.aTypedArrayConstructor,sB=Ts.isTypedArray,BB="BYTES_PER_ELEMENT",cB="Wrong length",RB=function(e,t){for(var n=0,U=t.length,F=new(oB(e))(U);U>n;)F[n]=t[n++];return F},VB=function(e,t){tB(e,t,{get:function(){return $s(this)[t]}})},uB=function(e){var t;return e instanceof QB||"ArrayBuffer"==(t=Ys(e))||"SharedArrayBuffer"==t},hB=function(e,t){return sB(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},ZB=function(e,t){return hB(e,t=Gs(t,!0))?Ds(2,e[t]):nB(e,t)},SB=function(e,t,n){return!(hB(e,t=Gs(t,!0))&&ws(n)&&Ms(n,"value"))||Ms(n,"get")||Ms(n,"set")||n.configurable||Ms(n,"writable")&&!n.writable||Ms(n,"enumerable")&&!n.enumerable?tB(e,t,n):(e[t]=n.value,e)};bs?(lB||(As.f=ZB,Os.f=SB,VB(dB,"buffer"),VB(dB,"byteOffset"),VB(dB,"byteLength"),VB(dB,"length")),fs({target:"Object",stat:!0,forced:!lB},{getOwnPropertyDescriptor:ZB,defineProperty:SB}),Nd.exports=function(e,t,n){var U=e.match(/\d+$/)[0]/8,F=e+(n?"Clamped":"")+"Array",Q="get"+e,i="set"+e,l=Ns[F],r=l,a=r&&r.prototype,d={},o=function(e,t){tB(e,t,{get:function(){return e=t,(n=$s(this)).view[Q](e*U+n.byteOffset,!0);var e,n},set:function(e){return F=t,Q=e,l=$s(this),n&&(Q=(Q=UB(Q))<0?0:Q>255?255:255&Q),void l.view[i](F*U+l.byteOffset,Q,!0);var F,Q,l},enumerable:!0})};lB?vs&&(r=t((function(e,t,n,Q){return gs(e,r,F),qs(ws(t)?uB(t)?void 0!==Q?new l(t,Is(n,U),Q):void 0!==n?new l(t,Is(n,U)):new l(t):sB(t)?RB(r,t):Hs.call(r,t):new l(Ls(t)),e,r)})),_s&&_s(r,aB),Ps(js(l),(function(e){e in r||Xs(r,e,l[e])})),r.prototype=a):(r=t((function(e,t,n,Q){gs(e,r,F);var i,l,a,d=0,s=0;if(ws(t)){if(!uB(t))return sB(t)?RB(r,t):Hs.call(r,t);i=t,s=Is(n,U);var B=t.byteLength;if(void 0===Q){if(B%U)throw FB(cB);if((l=B-s)<0)throw FB(cB)}else if((l=xs(Q)*U)+s>B)throw FB(cB);a=l/U}else a=Ls(t),i=new QB(l=a*U);for(eB(e,{buffer:i,byteOffset:s,byteLength:l,length:a,view:new iB(i)});d<a;)o(e,d++)})),_s&&_s(r,aB),a=r.prototype=Ks(dB)),a.constructor!==r&&Xs(a,"constructor",r),rB&&Xs(a,rB,F),d[F]=r,fs({global:!0,forced:r!=l,sham:!lB},d),BB in r||Xs(r,BB,U),BB in a||Xs(a,BB,U),zs(F)}):Nd.exports=function(){};var pB=Nd.exports;pB("Uint8",(function(e){return function(t,n,U){return e(this,t,n,U)}}));var JB=E,mB=st,WB=rt,kB=Math.min,EB=[].copyWithin||function(e,t){var n=JB(this),U=WB(n.length),F=mB(e,U),Q=mB(t,U),i=arguments.length>2?arguments[2]:void 0,l=kB((void 0===i?U:mB(i,U))-Q,U-F),r=1;for(Q<F&&F<Q+l&&(r=-1,Q+=l-1,F+=l-1);l-- >0;)Q in n?n[F]=n[Q]:delete n[F],F+=r,Q+=r;return n},yB=EB,fB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("copyWithin",(function(e,t){return yB.call(fB(this),e,t,arguments.length>2?arguments[2]:void 0)}));var NB=El.every,bB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("every",(function(e){return NB(bB(this),e,arguments.length>1?arguments[1]:void 0)}));var vB=ko,TB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("fill",(function(e){return vB.apply(TB(this),arguments)}));var CB=Qo.aTypedArrayConstructor,gB=Fi,DB=El.filter,XB=function(e,t){for(var n=gB(e,e.constructor),U=0,F=t.length,Q=new(CB(n))(F);F>U;)Q[U]=t[U++];return Q},xB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("filter",(function(e){var t=DB(xB(this),e,arguments.length>1?arguments[1]:void 0);return XB(this,t)}));var LB=El.find,IB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("find",(function(e){return LB(IB(this),e,arguments.length>1?arguments[1]:void 0)}));var GB=El.findIndex,MB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("findIndex",(function(e){return GB(MB(this),e,arguments.length>1?arguments[1]:void 0)}));var YB=El.forEach,wB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("forEach",(function(e){YB(wB(this),e,arguments.length>1?arguments[1]:void 0)}));var KB=ut.includes,_B=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("includes",(function(e){return KB(_B(this),e,arguments.length>1?arguments[1]:void 0)}));var jB=ut.indexOf,HB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("indexOf",(function(e){return jB(HB(this),e,arguments.length>1?arguments[1]:void 0)}));var PB=F,zB=Qo,OB=lF,AB=Cn("iterator"),qB=PB.Uint8Array,$B=OB.values,ec=OB.keys,tc=OB.entries,nc=zB.aTypedArray,Uc=zB.exportTypedArrayMethod,Fc=qB&&qB.prototype[AB],Qc=!!Fc&&("values"==Fc.name||null==Fc.name),ic=function(){return $B.call(nc(this))};Uc("entries",(function(){return tc.call(nc(this))})),Uc("keys",(function(){return ec.call(nc(this))})),Uc("values",ic,!Qc),Uc(AB,ic,!Qc);var lc=Qo.aTypedArray,rc=[].join;(0,Qo.exportTypedArrayMethod)("join",(function(e){return rc.apply(lc(this),arguments)}));var ac=p,dc=Qt,oc=rt,sc=Bd,Bc=Math.min,cc=[].lastIndexOf,Rc=!!cc&&1/[1].lastIndexOf(1,-0)<0,Vc=sc("lastIndexOf"),uc=Rc||!Vc?function(e){if(Rc)return cc.apply(this,arguments)||0;var t=ac(this),n=oc(t.length),U=n-1;for(arguments.length>1&&(U=Bc(U,dc(arguments[1]))),U<0&&(U=n+U);U>=0;U--)if(U in t&&t[U]===e)return U||0;return-1}:cc,hc=uc,Zc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("lastIndexOf",(function(e){return hc.apply(Zc(this),arguments)}));var Sc=El.map,pc=Fi,Jc=Qo.aTypedArray,mc=Qo.aTypedArrayConstructor;(0,Qo.exportTypedArrayMethod)("map",(function(e){return Sc(Jc(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(mc(pc(e,e.constructor)))(t)}))}));var Wc=kF,kc=E,Ec=u,yc=rt,fc=function(e){return function(t,n,U,F){Wc(n);var Q=kc(t),i=Ec(Q),l=yc(Q.length),r=e?l-1:0,a=e?-1:1;if(U<2)for(;;){if(r in i){F=i[r],r+=a;break}if(r+=a,e?r<0:l<=r)throw TypeError("Reduce of empty array with no initial value")}for(;e?r>=0:l>r;r+=a)r in i&&(F=n(F,i[r],r,Q));return F}},Nc={left:fc(!1),right:fc(!0)},bc=Nc.left,vc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("reduce",(function(e){return bc(vc(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var Tc=Nc.right,Cc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("reduceRight",(function(e){return Tc(Cc(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var gc=Qo.aTypedArray,Dc=Qo.exportTypedArrayMethod,Xc=Math.floor;Dc("reverse",(function(){for(var e,t=this,n=gc(t).length,U=Xc(n/2),F=0;F<U;)e=t[F],t[F++]=t[--n],t[n]=e;return t}));var xc=rt,Lc=ps,Ic=E,Gc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("set",(function(e){Gc(this);var t=Lc(arguments.length>1?arguments[1]:void 0,1),n=this.length,U=Ic(e),F=xc(U.length),Q=0;if(F+t>n)throw RangeError("Wrong length");for(;Q<F;)this[t+Q]=U[Q++]}),i((function(){new Int8Array(1).set({})})));var Mc=Fi,Yc=Qo.aTypedArray,wc=Qo.aTypedArrayConstructor,Kc=[].slice;(0,Qo.exportTypedArrayMethod)("slice",(function(e,t){for(var n=Kc.call(Yc(this),e,t),U=Mc(this,this.constructor),F=0,Q=n.length,i=new(wc(U))(Q);Q>F;)i[F]=n[F++];return i}),i((function(){new Int8Array(1).slice()})));var _c=El.some,jc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("some",(function(e){return _c(jc(this),e,arguments.length>1?arguments[1]:void 0)}));var Hc=Qo.aTypedArray,Pc=[].sort;(0,Qo.exportTypedArrayMethod)("sort",(function(e){return Pc.call(Hc(this),e)}));var zc=rt,Oc=st,Ac=Fi,qc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("subarray",(function(e,t){var n=qc(this),U=n.length,F=Oc(e,U);return new(Ac(n,n.constructor))(n.buffer,n.byteOffset+F*n.BYTES_PER_ELEMENT,zc((void 0===t?U:Oc(t,U))-F))}));var $c=Qo,eR=i,tR=F.Int8Array,nR=$c.aTypedArray,UR=$c.exportTypedArrayMethod,FR=[].toLocaleString,QR=[].slice,iR=!!tR&&eR((function(){FR.call(new tR(1))}));UR("toLocaleString",(function(){return FR.apply(iR?QR.call(nR(this)):nR(this),arguments)}),eR((function(){return[1,2].toLocaleString()!=new tR([1,2]).toLocaleString()}))||!eR((function(){tR.prototype.toLocaleString.call([1,2])})));var lR=Qo.exportTypedArrayMethod,rR=i,aR=F.Uint8Array,dR=aR&&aR.prototype||{},oR=[].toString,sR=[].join;rR((function(){oR.call({})}))&&(oR=function(){return sR.call(this)});var BR=dR.toString!=oR;lR("toString",oR,BR);var cR=El.forEach,RR=Bd("forEach")?[].forEach:function(e){return cR(this,e,arguments.length>1?arguments[1]:void 0)},VR=F,uR=el,hR=RR,ZR=ee;for(var SR in uR){var pR=VR[SR],JR=pR&&pR.prototype;if(JR&&JR.forEach!==hR)try{ZR(JR,"forEach",hR)}catch(Ch){JR.forEach=hR}}pB("Uint16",(function(e){return function(t,n,U){return e(this,t,n,U)}}));var mR=j,WR=function(){var e=mR(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},kR={},ER=i;function yR(e,t){return RegExp(e,t)}kR.UNSUPPORTED_Y=ER((function(){var e=yR("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),kR.BROKEN_CARET=ER((function(){var e=yR("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var fR,NR,bR=WR,vR=kR,TR=Ze,CR=RegExp.prototype.exec,gR=TR("native-string-replace",String.prototype.replace),DR=CR,XR=(fR=/a/,NR=/b*/g,CR.call(fR,"a"),CR.call(NR,"a"),0!==fR.lastIndex||0!==NR.lastIndex),xR=vR.UNSUPPORTED_Y||vR.BROKEN_CARET,LR=void 0!==/()??/.exec("")[1];(XR||LR||xR)&&(DR=function(e){var t,n,U,F,Q=this,i=xR&&Q.sticky,l=bR.call(Q),r=Q.source,a=0,d=e;return i&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),d=String(e).slice(Q.lastIndex),Q.lastIndex>0&&(!Q.multiline||Q.multiline&&"\n"!==e[Q.lastIndex-1])&&(r="(?: "+r+")",d=" "+d,a++),n=new RegExp("^(?:"+r+")",l)),LR&&(n=new RegExp("^"+r+"$(?!\\s)",l)),XR&&(t=Q.lastIndex),U=CR.call(i?n:Q,d),i?U?(U.input=U.input.slice(a),U[0]=U[0].slice(a),U.index=Q.lastIndex,Q.lastIndex+=U[0].length):Q.lastIndex=0:XR&&U&&(Q.lastIndex=Q.global?U.index+U[0].length:t),LR&&U&&U.length>1&&gR.call(U[0],n,(function(){for(F=1;F<arguments.length-2;F++)void 0===arguments[F]&&(U[F]=void 0)})),U});var IR=DR;Ot({target:"RegExp",proto:!0,forced:/./.exec!==IR},{exec:IR});var GR=Oe,MR=IR,YR=i,wR=Cn,KR=ee,_R=wR("species"),jR=RegExp.prototype,HR=!YR((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),PR="$0"==="a".replace(/./,"$0"),zR=wR("replace"),OR=!!/./[zR]&&""===/./[zR]("a","$0"),AR=!YR((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),qR=function(e,t,n,U){var F=wR(e),Q=!YR((function(){var t={};return t[F]=function(){return 7},7!=""[e](t)})),i=Q&&!YR((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[_R]=function(){return n},n.flags="",n[F]=/./[F]),n.exec=function(){return t=!0,null},n[F](""),!t}));if(!Q||!i||"replace"===e&&(!HR||!PR||OR)||"split"===e&&!AR){var l=/./[F],r=n(F,""[e],(function(e,t,n,U,F){var i=t.exec;return i===MR||i===jR.exec?Q&&!F?{done:!0,value:l.call(t,n,U)}:{done:!0,value:e.call(n,t,U)}:{done:!1}}),{REPLACE_KEEPS_$0:PR,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:OR}),a=r[0],d=r[1];GR(String.prototype,e,a),GR(jR,F,2==t?function(e,t){return d.call(e,this,t)}:function(e){return d.call(e,this)})}U&&KR(jR[F],"sham",!0)},$R=GQ.charAt,eV=function(e,t,n){return t+(n?$R(e,t).length:1)},tV=E,nV=Math.floor,UV="".replace,FV=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,QV=/\$([$&'`]|\d{1,2})/g,iV=c,lV=IR,rV=function(e,t){var n=e.exec;if("function"==typeof n){var U=n.call(e,t);if("object"!=typeof U)throw TypeError("RegExp exec method returned something other than an Object or null");return U}if("RegExp"!==iV(e))throw TypeError("RegExp#exec called on incompatible receiver");return lV.call(e,t)},aV=qR,dV=j,oV=rt,sV=Qt,BV=h,cV=eV,RV=function(e,t,n,U,F,Q){var i=n+e.length,l=U.length,r=QV;return void 0!==F&&(F=tV(F),r=FV),UV.call(Q,r,(function(Q,r){var a;switch(r.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(i);case"<":a=F[r.slice(1,-1)];break;default:var d=+r;if(0===d)return Q;if(d>l){var o=nV(d/10);return 0===o?Q:o<=l?void 0===U[o-1]?r.charAt(1):U[o-1]+r.charAt(1):Q}a=U[d-1]}return void 0===a?"":a}))},VV=rV,uV=Math.max,hV=Math.min;aV("replace",2,(function(e,t,n,U){var F=U.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,Q=U.REPLACE_KEEPS_$0,i=F?"$":"$0";return[function(n,U){var F=BV(this),Q=null==n?void 0:n[e];return void 0!==Q?Q.call(n,F,U):t.call(String(F),n,U)},function(e,U){if(!F&&Q||"string"==typeof U&&-1===U.indexOf(i)){var l=n(t,e,this,U);if(l.done)return l.value}var r=dV(e),a=String(this),d="function"==typeof U;d||(U=String(U));var o=r.global;if(o){var s=r.unicode;r.lastIndex=0}for(var B=[];;){var c=VV(r,a);if(null===c)break;if(B.push(c),!o)break;""===String(c[0])&&(r.lastIndex=cV(a,oV(r.lastIndex),s))}for(var R,V="",u=0,h=0;h<B.length;h++){c=B[h];for(var Z=String(c[0]),S=uV(hV(sV(c.index),a.length),0),p=[],J=1;J<c.length;J++)p.push(void 0===(R=c[J])?R:String(R));var m=c.groups;if(d){var W=[Z].concat(p,S,a);void 0!==m&&W.push(m);var k=String(U.apply(void 0,W))}else k=RV(Z,a,S,p,m,U);S>=u&&(V+=a.slice(u,S)+k,u=S+Z.length)}return V+a.slice(u)}]}));var ZV=Oe,SV=j,pV=i,JV=WR,mV="toString",WV=RegExp.prototype,kV=WV[mV],EV=pV((function(){return"/a/b"!=kV.call({source:"a",flags:"b"})})),yV=kV.name!=mV;(EV||yV)&&ZV(RegExp.prototype,mV,(function(){var e=SV(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in WV)?JV.call(e):n)}),{unsafe:!0});var fV=Ot,NV=J,bV=cl,vV=st,TV=rt,CV=p,gV=xl,DV=Cn,XV=bl("slice"),xV=DV("species"),LV=[].slice,IV=Math.max;fV({target:"Array",proto:!0,forced:!XV},{slice:function(e,t){var n,U,F,Q=CV(this),i=TV(Q.length),l=vV(e,i),r=vV(void 0===t?i:t,i);if(bV(Q)&&("function"!=typeof(n=Q.constructor)||n!==Array&&!bV(n.prototype)?NV(n)&&null===(n=n[xV])&&(n=void 0):n=void 0,n===Array||void 0===n))return LV.call(Q,l,r);for(U=new(void 0===n?Array:n)(IV(r-l,0)),F=0;l<r;l++,F++)l in Q&&gV(U,F,Q[l]);return U.length=F,U}});var GV=pQ,MV="ArrayBuffer",YV=hs[MV];Ot({global:!0,forced:F[MV]!==YV},{ArrayBuffer:YV}),GV(MV);var wV=h,KV="[\t\n\v\f\r \u2028\u2029\ufeff]",_V=RegExp("^"+KV+KV+"*"),jV=RegExp(KV+KV+"*$"),HV=function(e){return function(t){var n=String(wV(t));return 1&e&&(n=n.replace(_V,"")),2&e&&(n=n.replace(jV,"")),n}},PV={start:HV(1),end:HV(2),trim:HV(3)},zV=l,OV=F,AV=Yt,qV=Oe,$V=N,eu=c,tu=nQ,nu=W,Uu=i,Fu=eU,Qu=tt.f,iu=Q.f,lu=K.f,ru=PV.trim,au="Number",du=OV[au],ou=du.prototype,su=eu(Fu(ou))==au,Bu=function(e){var t,n,U,F,Q,i,l,r,a=nu(e,!1);if("string"==typeof a&&a.length>2)if(43===(t=(a=ru(a)).charCodeAt(0))||45===t){if(88===(n=a.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(a.charCodeAt(1)){case 66:case 98:U=2,F=49;break;case 79:case 111:U=8,F=55;break;default:return+a}for(i=(Q=a.slice(2)).length,l=0;l<i;l++)if((r=Q.charCodeAt(l))<48||r>F)return NaN;return parseInt(Q,U)}return+a};if(AV(au,!du(" 0o1")||!du("0b1")||du("+0x1"))){for(var cu,Ru=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof Ru&&(su?Uu((function(){ou.valueOf.call(n)})):eu(n)!=au)?tu(new du(Bu(t)),n,Ru):Bu(t)},Vu=zV?Qu(du):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),uu=0;Vu.length>uu;uu++)$V(du,cu=Vu[uu])&&!$V(Ru,cu)&&lu(Ru,cu,iu(du,cu));Ru.prototype=ou,ou.constructor=Ru,qV(OV,au,Ru)}var hu=j,Zu=rt,Su=h,pu=eV,Ju=rV;qR("match",1,(function(e,t,n){return[function(t){var n=Su(this),U=null==t?void 0:t[e];return void 0!==U?U.call(t,n):new RegExp(t)[e](String(n))},function(e){var U=n(t,e,this);if(U.done)return U.value;var F=hu(e),Q=String(this);if(!F.global)return Ju(F,Q);var i=F.unicode;F.lastIndex=0;for(var l,r=[],a=0;null!==(l=Ju(F,Q));){var d=String(l[0]);r[a]=d,""===d&&(F.lastIndex=pu(Q,Zu(F.lastIndex),i)),a++}return 0===a?null:r}]}));var mu,Wu,ku,Eu,yu,fu,Nu={str2hex:function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},Base64ToHex:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t){for(var U=[],F=0;F<n.length;F++)U.push(n.charCodeAt(F));return new Uint8Array(U).buffer}for(var Q="",i=0;i<n.length;i++)Q+="0".concat(n.charCodeAt(i).toString(16)).substr(-2);return Q},checkUnionInfoExpired:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;if(0===t.indexOf(e)){var U=parseInt(vu(t.slice(e.length))),F=(new Date).getTime()-U;if(F>0&&F<=1e3*n)return!0;console.error("UnionInfo timestamp expire!!!")}else console.error("unionID and UnionInfo not match!!!");return!1},getUnionInfo:function(){return"".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").concat(bu((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),U=0;U<e.length;U++)n[U]=e.charCodeAt(U);return t},ArrayBufferToString:function(e){var t=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var n,U=0;U<e.length;U++)n=e[U],t.push(String.fromCharCode(n));return t.join("")},isBase64:function(e){return/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/.test(e)},fromHex:function(e){for(var t=new Uint8Array(e.length/2),n=0;n<e.length;n+=2)t[n/2]=window.parseInt(e.substr(n,2),16);return t},fromCharCode:function(e){for(var t="",n=0;n<e.length;n+=16e3){var U=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,U)}return t},toBase64:function(e,t){var n=Nu.fromCharCode(e);t=void 0===t||t;var U=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?U:U.replace(/=*$/,"")},toUTF8:function(e){for(var t=encodeURIComponent(e),n=unescape(t),U=new Uint8Array(n.length),F=0;F<n.length;++F)U[F]=n.charCodeAt(F);return U.buffer}},bu=(mu="vodTimestampSalt",Wu=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},ku=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},Eu=function(e){return Wu(mu).reduce((function(e,t){return e^t}),e)},function(e){return e.split("").map(Wu).map(Eu).map(ku).join("")}),vu=(yu="vodTimestampSalt",fu=function(e){return(t=yu,t.split("").map((function(e){return e.charCodeAt(0)}))).reduce((function(e,t){return e^t}),e);var t},function(e){return e.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})).map(fu).map((function(e){return String.fromCharCode(e)})).join("")}),Tu=Nu,Cu="kid",gu={ERROR:"error",ENCRYPTED:"encrypted",CDM_LICENSE_SUCCESS:"CDM_LICENSE_SUCCESS",CDM_LICENSE_ERROR:"CDM_LICENSE_ERROR"},Du=function(e){Qn(n,e);var t=dn(n);function n(e){var U;return tn(this,n),Fn(an(U=t.call(this)),"encryptHandle",(function(e){var t,n,F,Q=an(U).video,i=an(U);"org.w3.clearkey"===U.KEYSYSTEM_TYPE?(t="keyids",n=JSON.stringify({kids:["0123456789abcdef0123456789abcdef"]}),F=new Uint8Array(Tu.toUTF8(n))):"com.widevine.alpha"===U.KEYSYSTEM_TYPE?(t="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,0,67,112,115,115,104,0,0,0,0,237,239,139,169,121,214,74,206,163,200,39,220,213,29,33,237,0,0,0,35,8,1,18,16,51,51,51,51,51,51,51,51,51,51,51,51,0,0,0,0,26,10,105,110,116,101,114,116,114,117,115,116,34,1,42])):"com.microsoft.playready"===U.KEYSYSTEM_TYPE&&(t="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,2,38,112,115,115,104,0,0,0,0,154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149,0,0,2,6,6,2,0,0,1,0,1,0,252,1,60,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,32,0,120,0,109,0,108,0,110,0,115,0,61,0,34,0,104,0,116,0,116,0,112,0,58,0,47,0,47,0,115,0,99,0,104,0,101,0,109,0,97,0,115,0,46,0,109,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,99,0,111,0,109,0,47,0,68,0,82,0,77,0,47,0,50,0,48,0,48,0,55,0,47,0,48,0,51,0,47,0,80,0,108,0,97,0,121,0,82,0,101,0,97,0,100,0,121,0,72,0,101,0,97,0,100,0,101,0,114,0,34,0,32,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,61,0,34,0,52,0,46,0,48,0,46,0,48,0,46,0,48,0,34,0,62,0,60,0,68,0,65,0,84,0,65,0,62,0,60,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,49,0,54,0,60,0,47,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,60,0,65,0,76,0,71,0,73,0,68,0,62,0,65,0,69,0,83,0,67,0,84,0,82,0,60,0,47,0,65,0,76,0,71,0,73,0,68,0,62,0,60,0,47,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,73,0,68,0,62,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,65,0,65,0,65,0,65,0,65,0,65,0,61,0,61,0,60,0,47,0,75,0,73,0,68,0,62,0,60,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,65,0,49,0,53,0,66,0,89,0,87,0,68,0,52,0,113,0,115,0,73,0,61,0,60,0,47,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,60,0,47,0,68,0,65,0,84,0,65,0,62,0,60,0,47,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,62,0])),i.EnsureMediaKeysCreated(Q,i.KEYSYSTEM_TYPE,i.options).then((function(){var e=Q.mediaKeys.createSession();return Q.sessions.push(e),"org.w3.clearkey"===i.KEYSYSTEM_TYPE?e.addEventListener("message",i.updateSessionFunc(i.keys)):("com.widevine.alpha"===i.KEYSYSTEM_TYPE||"com.microsoft.playready"===i.KEYSYSTEM_TYPE)&&e.addEventListener("message",i.licenseRequestReady.bind(i)),e.generateRequest(t,F.buffer)}),(function(){return i.bail(" failed to ensure MediaKeys on HTMLMediaElement")})).then((function(){}),(function(){return i.bail(" Failed to generate request.")}))})),U.KEYSYSTEM_TYPE="",U.keys={},U.updateDrm(e),U.options=[],U.ensurePromise=void 0,U.kid=Cu,U.video=null,U.licenseStep=0,U.on(gu.ENCRYPTED,U.encryptHandle),U}return Un(n,[{key:"updateDrm",value:function(e,t){null!=e&&e.clearKeys&&(this.KEYSYSTEM_TYPE="org.w3.clearkey",this.keys=e.clearKeys),null!=e&&e.clearKeys?this.KEYSYSTEM_TYPE="org.w3.clearkey":null!=e&&e.widevine?(this.KEYSYSTEM_TYPE="com.widevine.alpha",this.keys=e.widevine):null!=e&&e.playready&&(this.KEYSYSTEM_TYPE="com.microsoft.playready",this.keys=e.playready),t&&(this.kid=t)}},{key:"updateKid",value:function(e){this.kid===Cu&&this.keys[this.kid]&&(this.keys[e]=this.keys[this.kid],delete this.keys[Cu]),this.kid=e}},{key:"setOptions",value:function(){this.options=[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'},{contentType:'video/mp4; codecs="hev1.1.6.L120.90"'},{contentType:'video/webm; codecs="vp8"'}]}]}},{key:"bail",value:function(e){console.error("[EME]",e),this.emit(gu.ERROR,e)}},{key:"updateSessionFunc",value:function(e){var t=this;return function(n){var U=[],F=[];Object.keys(e).forEach((function(t){var n=e[t],Q=Tu.fromHex(t),i=Tu.fromHex(n),l={kty:"oct",kid:Tu.toBase64(Q,!1),k:Tu.toBase64(i,!1)};U.push(l),F.push(l.kid)}));var Q={keys:U},i=JSON.stringify(Q);n.target.update(Tu.StringToArrayBuffer(i)).then((function(){}),(function(){return t.bail(" MediaKeySession update failed")}))}}},{key:"keysChange",value:function(){}},{key:"EnsureMediaKeysCreated",value:function(e,t,n){var U=this;return this.ensurePromise||e.mediaKeys?this.ensurePromise||Promise.resolve():(this.ensurePromise=navigator.requestMediaKeySystemAccess(t,n).then((function(e){return e.createMediaKeys()}),(function(){return U.bail(" Failed to request key system access.")})).then((function(t){return e.setMediaKeys(t)}),(function(){return U.bail(" failed to create MediaKeys object")})),this.ensurePromise)}},{key:"setupEME",value:function(e){this.video=e,e.sessions=[]}},{key:"parseServerResponse",value:function(e){var t="https://schemas.xmlsoap.org/soap/envelope/";if(window.DOMParser){var n=this.uintToString(e),U=(new window.DOMParser).parseFromString(n,"text/xml"),F=U?U.getElementsByTagNameNS(t,"Envelope")[0]:null,Q=F?F.getElementsByTagNameNS(t,"Body")[0]:null;if(Q&&Q.getElementsByTagNameNS(t,"Fault")[0])return null}return e}},{key:"uintToString",value:function(e){var t=String.fromCharCode.apply(null,new Uint8Array(e));return decodeURIComponent(escape(t))}},{key:"licenseRequestReady",value:function(e){var t=this,n=new XMLHttpRequest;n.open("GET",this.keys.serverURL),n.onreadystatechange=function(){if(4===n.readyState){var U=e.message,F=n.response;if("com.microsoft.playready"===t.KEYSYSTEM_TYPE&&(F=JSON.parse(n.response),F="".concat(F.licenseAcquisitionUrl,"?ExpressPlayToken=").concat(F.token)),!F)return void t.emit(gu.CDM_LICENSE_ERROR,{data:"".concat(t.keys.serverURL," request failed! \n status:").concat(n.status," statusText:").concat(n.statusText)});var Q=new XMLHttpRequest;Q.keySession=e.target,Q.responseType="arraybuffer",Q.withCredentials=!1,Q.open("POST",String(F)),"com.microsoft.playready"===t.KEYSYSTEM_TYPE&&Q.setRequestHeader("Content-type","text/xml"),Q.onreadystatechange=function(){if(4===Q.readyState){if(200!==Q.status)return void t.emit(gu.CDM_LICENSE_ERROR,{data:"".concat(F," request failed! \n status:").concat(Q.status," statusText:").concat(Q.statusText)});var e;t.emit(gu.CDM_LICENSE_SUCCESS,{data:t.licenseStep}),t.licenseStep++,e="com.microsoft.playready"===t.KEYSYSTEM_TYPE?t.parseServerResponse(Q.response):new Uint8Array(Q.response),Q.keySession.update(e).catch(console.error.bind(console,"update() failed"))}},Q.send(t.getLicenseRequestFromMessage(U))}},n.send()}},{key:"getLicenseRequestFromMessage",value:function(e){if("com.microsoft.playready"===this.KEYSYSTEM_TYPE){var t=null,n=new DOMParser,U=new Uint16Array(e),F=String.fromCharCode.apply(null,U),Q=n.parseFromString(F,"application/xml");if(!Q.getElementsByTagName("PlayReadyKeyMessage")[0])return e;var i=Q.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;return i&&(t=window.atob(i)),t}return new Uint8Array(e)}},{key:"destroy",value:function(){this.removeAllListeners(),this.video=null}}]),n}(ad),Xu=Qo.aTypedArrayConstructor;(0,Qo.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(Xu(this))(t);t>e;)n[e]=arguments[e++];return n}),Bo);var xu=function(){function e(){var t,n;tn(this,e);var U=new Promise((function(e,U){t=e,n=U}));return U.resolve=function(e){t(e),U.state="fulfilled"},U.reject=function(e){n(e),U.state="rejected",U.isBreak="DESTROYED"===e},U.state="pending",U}return Un(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),Lu=Un((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.url,U=t.method,F=void 0===U?"GET":U,Q=t.type,i=void 0===Q?"arraybuffer":Q,l=t.data,r=void 0===l?{}:l;return tn(this,e),new Promise((function(e,t){var U=new window.XMLHttpRequest,Q=F.toUpperCase(),l=[];if(Object.keys(r).map((function(e){l.push("k=".concat(r[e]))})),"GET"===Q){var a="";a=n.indexOf("?")<0?"".concat(n,"?").concat(l.join("&")):(null==l?void 0:l.length)>0?"".concat(n,"&").concat(l.join("&")):n,U.open(Q,a),i&&(U.responseType=i),U.send()}else{if("POST"!==Q)throw new Error("xhr ".concat(Q," is not supported"));U.open(Q,n,!0),i&&(U.responseType=i),U.setRequestHeader("Content-Type","application/json"),U.send(JSON.stringify(r))}U.onload=function(){200===U.status||206===U.status?e(U):t(U)},U.onerror=function(){t(U)}}))})),Iu=Lu,Gu=null;function Mu(e,t,n){var U=new xu;return new Iu({type:"json",method:"POST",url:n,data:{drm_type:"22",version:"2.0",license_request:[{vid:e,kids:[].concat(t)}]}}).then((function(n){var F=null==n?void 0:n.response;if("string"==typeof F&&(F=JSON.parse(F)),F){var Q=F.play_licenses[e][t];U.resolve(Q)}else console.error("getSecretKeyByKid end, vid,",e,", kid",t,"response null"),U.reject()})).catch((function(){console.error("getSecretKeyByKid end, vid,",e,", kid",t,"catch"),U.reject()})),U}function Yu(){return function(e,t,n){function U(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var F,Q=0,i=[],l=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var r=parseInt(e.slice(16,24),16),a=2*parseInt(e.slice(32,40),16);for(F=40;F<a+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=a+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(Q^R[1]),d+=2*R[0]}l.push(B)}return t.p=null,function e(t,n,U,F,Q){var r,a,d,o,s,B=-1,c=[],R=null,V=[n];for(a=Math.min(n.length,U),d=0;d<a;++d)V.push(n[d]);V.p=F;for(var u=[];;)try{switch(i[t++]){case 39:c[++B]=null;break;case 0:r=i[t++],c[++B]=r<<24>>24;break;case 33:r=((r=((r=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(r<<8)+i[t++];break;case 34:r=(i[t]<<8)+i[t+1],t+=2,c[++B]=l[r];break;case 67:c[++B]=void 0;break;case 9:c[++B]={};break;case 32:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],d=c[B--],c[B][a]=d;break;case 65:for(a=i[t++],d=i[t++],o=V;a>0;--a)o=o.p;c[++B]=o[d];break;case 18:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],c[B]=c[B][a];break;case 52:a=c[B--],c[B]=c[B][a];break;case 30:for(a=i[t++],d=i[t++],o=V;a>0;--a)o=o.p;o[d]=c[B--];break;case 76:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],d=c[B--],o=c[B--],d[a]=o;break;case 16:a=c[B--],d=c[B--],o=c[B--],d[a]=o;break;case 48:a=c[B--],c[B]=c[B]!==a;break;case 7:a=c[B--],c[B]=c[B]>a;break;case 12:r=(r=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?--B:t+=r;break;case 63:r=i[t++],a=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[a,r,V],d._u=e,c[++B]=d;break;case 60:for(a=c[B--],d=null;o=u.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)t=d[2],d[0]=0,u.push(d);else{if(!R)return a;t=R[1],Q=R[2],V=R[3],u=R[4],c[++B]=a,R=R[0]}break;case 22:B-=r=i[t++],d=c.slice(B+1,B+r+1),a=c[B--],o=c[B--],a._u===e?(a=a._v,R=[R,t,Q,V,u],t=a[0],null==o&&(o=function(){return this}()),Q=o,(V=[d].concat(d)).length=Math.min(a[1],r)+1,V.p=a[2],u=[]):(s=a.apply(o,d),c[++B]=s);break;case 53:for(r=i[t++],o=[void 0],s=r;s>0;--s)o[s]=c[B--];d=c[B--],s=new(a=Function.bind.apply(d,o)),c[++B]=s;break;case 75:t+=2+(r=(r=(i[t]<<8)+i[t+1])<<16>>16);break;case 11:r=(r=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(a=c[B--])||(t+=r);break;case 27:--B;break;case 56:a=c[B],c[++B]=a;break;default:throw new Error("ioe")}}catch(h){for(;(r=u.pop())&&!r[0];);if(!r){e:for(;R;){for(a=R[4];r=a.pop();)if(r[0])break e;R=R[0]}if(!R)throw h;t=R[1],Q=R[2],V=R[3],u=R[4],R=R[0]}1===(a=r[0])?(t=r[2],r[0]=0,u.push(r),c[++B]=h):2===a?(t=r[2],r[0]=0,u.push(r)):(t=r[3],r[0]=2,u.push(r),c[++B]=h)}}(r,[],0,t,n)}("504B01015737ac560000004554ae36570000014e2741020127410202410001160116011e000209092000021e0003410002410003120002410103104101053812000341000316011b433c4101053812000841000116011b433c4101041200000000070c000841010400003443300b00094101040000344b00032200011e00014101041200000001070b00094101040001344b0001431e00024101041200000002070b00094101040002344b0001431e00034101041200000003070b00094101040003344b0001431e000441010035001e00054100020b004d2741010127410102410002160116011e00064100030b002509092000021e0007410006410007120002410003104100053812000341000716011b4b000d4100053812000341000616011b4b00392741010341000141000341000416031e00082200044100084c00054100083812000621000000003f0116013812000721000000363f0116011b4100053c00090680e380ea80e180e880fb80e7000980ec80e380ea80ee80fd80c480ea80f680fc0780fd80ea80fc80e080e380f980ea0e80fd80ea80fe80fa80ea80fc80fb80df80fd80e080e280e680fc80ea0280e680eb0480fb80e780ea80e10580ec80ee80fb80ec80e70680fd80ea80e580ea80ec80fb",{get 0(){return xu},get 1(){return yd},get 2(){return atob},get 3(){return Mu},4:arguments},this)}function wu(e){var t;if(null===Gu)try{Gu=localStorage&&!!localStorage.getItem("secretkeylog")}catch(Q){}for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];Gu&&console.log&&(t=console).log.apply(t,["[XGSecretkey]",e].concat(U))}var Ku={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(e){this.toString=function(){return"CORRUPT: "+this.message},this.message=e},invalid:function(e){this.toString=function(){return"INVALID: "+this.message},this.message=e},bug:function(e){this.toString=function(){return"BUG: "+this.message},this.message=e},notReady:function(e){this.toString=function(){return"NOT READY: "+this.message},this.message=e}}};function _u(e,t){return ju.apply(this,arguments)}function ju(){return(ju=en(At().mark((function e(t,n){var U,F,Q,i,l;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=n.iv,F=n.tagLength,Q=n.data,i=null,t=Tu.StringToArrayBuffer(t),Q=Tu.Base64ToHex(Q,!0),e.prev=4,e.next=7,crypto.subtle.importKey("raw",t,"AES-GCM",!0,["encrypt","decrypt"]);case 7:l=e.sent,e.next=13;break;case 10:throw e.prev=10,e.t0=e.catch(4),new Error("importKey: ".concat((null===e.t0||void 0===e.t0?void 0:e.t0.message)||e.t0));case 13:return e.prev=13,e.next=16,crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(U),tagLength:F},l,Q);case 16:i=e.sent,e.next=30;break;case 19:if(e.prev=19,e.t1=e.catch(13),"OperationError"!==String(e.t1)){e.next=25;break}throw new Error("Wrong Password.");case 25:if("InvalidAccessError"!==String(e.t1)){e.next=29;break}throw new Error("Invalid Key");case 29:throw e.t1;case 30:return e.abrupt("return",new TextDecoder("utf-8").decode(i));case 31:case"end":return e.stop()}}),e,null,[[4,10],[13,19]])})))).apply(this,arguments)}function Hu(e,t){return Pu.apply(this,arguments)}function Pu(){return(Pu=en(At().mark((function e(t,n){var U,F,Q,i,l,r,a;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=n.iv,F=n.tagLength,Q=n.data,i=btoa(Tu.ArrayBufferToString(U)),l=Ku.codec.base64.toBits(i),r=Ku.codec.utf8String.toBits(t),a=new Ku.cipher.aes(r),e.abrupt("return",Ku.codec.utf8String.fromBits(Ku.mode.gcm.decrypt(a,Ku.codec.base64.toBits(Q),l,[],F)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Ku.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var t,n,U,F,Q,i=this._tables[0][4],l=this._tables[1],r=e.length,a=1;if(4!==r&&6!==r&&8!==r)throw new Ku.exception.invalid("invalid aes key size");for(this._key=[F=e.slice(0),Q=[]],t=r;t<4*r+28;t++)U=F[t-1],(t%r==0||8===r&&t%r==4)&&(U=i[U>>>24]<<24^i[U>>16&255]<<16^i[U>>8&255]<<8^i[255&U],t%r==0&&(U=U<<8^U>>>24^a<<24,a=a<<1^283*(a>>7))),F[t]=F[t-r]^U;for(n=0;t;n++,t--)U=F[3&n?t:t-4],Q[n]=t<=4||n<4?U:l[0][i[U>>>24]]^l[1][i[U>>16&255]]^l[2][i[U>>8&255]]^l[3][i[255&U]]},Ku.cipher.aes.prototype={encrypt:function(e){return this._crypt(e,0)},decrypt:function(e){return this._crypt(e,1)},_tables:[[[],[],[],[],[]],[[],[],[],[],[]]],_precompute:function(){var e,t,n,U,F,Q,i,l,r=this._tables[0],a=this._tables[1],d=r[4],o=a[4],s=[],B=[];for(e=0;e<256;e++)B[(s[e]=e<<1^283*(e>>7))^e]=e;for(t=n=0;!d[t];t^=U||1,n=B[n]||1)for(Q=(Q=n^n<<1^n<<2^n<<3^n<<4)>>8^255&Q^99,d[t]=Q,o[Q]=t,l=16843009*s[F=s[U=s[t]]]^65537*F^257*U^16843008*t,i=257*s[Q]^16843008*Q,e=0;e<4;e++)r[e][t]=i=i<<24^i>>>8,a[e][Q]=l=l<<24^l>>>8;for(e=0;e<5;e++)r[e]=r[e].slice(0),a[e]=a[e].slice(0)},_crypt:function(e,t){if(4!==e.length)throw new Ku.exception.invalid("invalid aes block size");var n,U,F,Q,i=this._key[t],l=e[0]^i[0],r=e[t?3:1]^i[1],a=e[2]^i[2],d=e[t?1:3]^i[3],o=i.length/4-2,s=4,B=[0,0,0,0],c=this._tables[t],R=c[0],V=c[1],u=c[2],h=c[3],Z=c[4];for(Q=0;Q<o;Q++)n=R[l>>>24]^V[r>>16&255]^u[a>>8&255]^h[255&d]^i[s],U=R[r>>>24]^V[a>>16&255]^u[d>>8&255]^h[255&l]^i[s+1],F=R[a>>>24]^V[d>>16&255]^u[l>>8&255]^h[255&r]^i[s+2],d=R[d>>>24]^V[l>>16&255]^u[r>>8&255]^h[255&a]^i[s+3],s+=4,l=n,r=U,a=F;for(Q=0;Q<4;Q++)B[t?3&-Q:Q]=Z[l>>>24]<<24^Z[r>>16&255]<<16^Z[a>>8&255]<<8^Z[255&d]^i[s++],n=l,l=r,r=a,a=d,d=n;return B}},Ku.bitArray={bitSlice:function(e,t,n){return e=Ku.bitArray._shiftRight(e.slice(t/32),32-(31&t)).slice(1),void 0===n?e:Ku.bitArray.clamp(e,n-t)},extract:function(e,t,n){var U=Math.floor(-t-n&31);return(-32&(t+n-1^t)?e[t/32|0]<<32-U^e[t/32+1|0]>>>U:e[t/32|0]>>>U)&(1<<n)-1},concat:function(e,t){if(0===e.length||0===t.length)return e.concat(t);var n=e[e.length-1],U=Ku.bitArray.getPartial(n);return 32===U?e.concat(t):Ku.bitArray._shiftRight(t,U,0|n,e.slice(0,e.length-1))},bitLength:function(e){var t,n=e.length;return 0===n?0:(t=e[n-1],32*(n-1)+Ku.bitArray.getPartial(t))},clamp:function(e,t){if(32*e.length<t)return e;var n=(e=e.slice(0,Math.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Ku.bitArray.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:function(e,t,n){return 32===e?t:(n?0|t:t<<32-e)+1099511627776*e},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(e,t){if(Ku.bitArray.bitLength(e)!==Ku.bitArray.bitLength(t))return!1;var n,U=0;for(n=0;n<e.length;n++)U|=e[n]^t[n];return 0===U},_shiftRight:function(e,t,n,U){var F,Q,i;for(void 0===U&&(U=[]);t>=32;t-=32)U.push(n),n=0;if(0===t)return U.concat(e);for(F=0;F<e.length;F++)U.push(n|e[F]>>>t),n=e[F]<<32-t;return Q=e.length?e[e.length-1]:0,i=Ku.bitArray.getPartial(Q),U.push(Ku.bitArray.partial(t+i&31,t+i>32?n:U.pop(),1)),U},_xor4:function(e,t){return[e[0]^t[0],e[1]^t[1],e[2]^t[2],e[3]^t[3]]},byteswapM:function(e){var t,n;for(t=0;t<e.length;++t)n=e[t],e[t]=n>>>24|n>>>8&65280|(65280&n)<<8|n<<24;return e}},Ku.codec.utf8String={fromBits:function(e){var t,n,U="",F=Ku.bitArray.bitLength(e);for(t=0;t<F/8;t++)0==(3&t)&&(n=e[t/4]),U+=String.fromCharCode(n>>>8>>>8>>>8),n<<=8;return decodeURIComponent(escape(U))},toBits:function(e){e=unescape(encodeURIComponent(e));var t,n=[],U=0;for(t=0;t<e.length;t++)U=U<<8|e.charCodeAt(t),3==(3&t)&&(n.push(U),U=0);return 3&t&&n.push(Ku.bitArray.partial(8*(3&t),U)),n}},Ku.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,t,n){var U,F="",Q=0,i=Ku.codec.base64._chars,l=0,r=Ku.bitArray.bitLength(e);for(n&&(i=i.substr(0,62)+"-_"),U=0;6*F.length<r;)F+=i.charAt((l^e[U]>>>Q)>>>26),Q<6?(l=e[U]<<6-Q,Q+=26,U++):(l<<=6,Q-=6);for(;3&F.length&&!t;)F+="=";return F},toBits:function(e,t){e=e.replace(/\s|=/g,"");var n,U,F=[],Q=0,i=Ku.codec.base64._chars,l=0;for(t&&(i=i.substr(0,62)+"-_"),n=0;n<e.length;n++){if((U=i.indexOf(e.charAt(n)))<0)throw new Ku.exception.invalid("this isn't base64!");Q>26?(Q-=26,F.push(l^U>>>Q),l=U<<32-Q):l^=U<<32-(Q+=6)}return 56&Q&&F.push(Ku.bitArray.partial(56&Q,l,1)),F}},Ku.codec.base64url={fromBits:function(e){return Ku.codec.base64.fromBits(e,1,1)},toBits:function(e){return Ku.codec.base64.toBits(e,1)}},Ku.mode.gcm={name:"gcm",encrypt:function(e,t,n,U,F){var Q,i=t.slice(0),l=Ku.bitArray;return F=F||128,U=U||[],Q=Ku.mode.gcm._ctrMode(!0,e,i,U,n,F),l.concat(Q.data,Q.tag)},decrypt:function(e,t,n,U,F){var Q,i,l=t.slice(0),r=Ku.bitArray,a=r.bitLength(l);if(U=U||[],(F=F||128)<=a?(i=r.bitSlice(l,a-F),l=r.bitSlice(l,0,a-F)):(i=l,l=[]),Q=Ku.mode.gcm._ctrMode(!1,e,l,U,n,F),!r.equal(Q.tag,i))throw new Ku.exception.corrupt("gcm: tag doesn't match");return Q.data},_galoisMultiply:function(e,t){var n,U,F,Q,i,l=Ku.bitArray._xor4;for(F=[0,0,0,0],Q=t.slice(0),n=0;n<128;n++){for(0!=(e[Math.floor(n/32)]&1<<31-n%32)&&(F=l(F,Q)),i=0!=(1&Q[3]),U=3;U>0;U--)Q[U]=Q[U]>>>1|(1&Q[U-1])<<31;Q[0]=Q[0]>>>1,i&&(Q[0]=Q[0]^225<<24)}return F},_ghash:function(e,t,n){var U,F,Q=n.length;for(U=t.slice(0),F=0;F<Q;F+=4)U[0]^=4294967295&n[F],U[1]^=4294967295&n[F+1],U[2]^=4294967295&n[F+2],U[3]^=4294967295&n[F+3],U=Ku.mode.gcm._galoisMultiply(U,e);return U},_ctrMode:function(e,t,n,U,F,Q){var i,l,r,a,d,o,s,B,c,R,V,u,h=Ku.bitArray;for(c=n.length,R=h.bitLength(n),V=h.bitLength(U),u=h.bitLength(F),i=t.encrypt([0,0,0,0]),96===u?(l=F.slice(0),l=h.concat(l,[1])):(l=Ku.mode.gcm._ghash(i,[0,0,0,0],F),l=Ku.mode.gcm._ghash(i,l,[0,0,Math.floor(u/4294967296),4294967295&u])),r=Ku.mode.gcm._ghash(i,[0,0,0,0],U),o=l.slice(0),s=r.slice(0),e||(s=Ku.mode.gcm._ghash(i,r,n)),d=0;d<c;d+=4)o[3]++,a=t.encrypt(o),n[d]^=a[0],n[d+1]^=a[1],n[d+2]^=a[2],n[d+3]^=a[3];return n=h.clamp(n,R),e&&(s=Ku.mode.gcm._ghash(i,r,n)),B=[Math.floor(V/4294967296),4294967295&V,Math.floor(R/4294967296),4294967295&R],s=Ku.mode.gcm._ghash(i,s,B),a=t.encrypt(l),s[0]^=a[0],s[1]^=a[1],s[2]^=a[2],s[3]^=a[3],{tag:h.bitSlice(s,0,Q),data:n}}};var zu,Ou={webCryptoDecrypt:_u,decrypt:(zu=en(At().mark((function e(t,n){var U,F;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof n&&(n=JSON.parse(n)),!n.enableSoftwareAES&&null!==(U=crypto)&&void 0!==U&&U.subtle){e.next=7;break}return e.next=4,Hu(t,n);case 4:F=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,_u(t,n);case 10:F=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,Hu(t,n);case 17:F=e.sent;case 18:return e.abrupt("return",F);case 19:case"end":return e.stop()}}),e,null,[[7,13]])}))),function(e,t){return zu.apply(this,arguments)})},Au=new Uint8Array([91,104,69,75,156,171,238,71,202,4,244,5]).buffer;function qu(e,t){return $u.apply(this,arguments)}function $u(){return($u=en(At().mark((function e(t,n){var U,F;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=od.hash(n),e.next=3,Ou.decrypt(U,{data:t,iv:Au,tagLength:128});case 3:return F=e.sent,e.abrupt("return",F);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var eh="volcvui",th=new Map,nh=function(e){Qn(U,e);var t,n=dn(U);function U(e){var t;return tn(this,U),Fn(an(t=n.call(this)),"EMEError",(function(e){t.emit(gu.ERROR,e)})),Fn(an(t),"encryptHandle",(function(){var e;null===(e=t.eme)||void 0===e||e.emit(gu.ENCRYPTED)})),t.config=U.defaultConfig,t.updateConfig(e),t.config.isEncrypt=!!(t.config.kid||t.config.drm||t.config.secretKey||t.config.drmKeyToken||t.config.keyValue||t.config.drm),t.on(gu.ENCRYPTED,t.encryptHandle),t}return Un(U,[{key:"updateConfig",value:function(e){var t=this;Object.keys(e).map((function(n){void 0!==e[n]&&null!==e[n]&&void 0!==t.config[n]&&(t.config[n]=e[n])})),this.log("set config",JSON.stringify(this.config))}},{key:"setupEME",value:function(e){this.eme&&this.eme.setupEME(e)}},{key:"setOptions",value:function(e){this.eme&&this.eme.setOptions(e)}},{key:"getSecretKeyByToken",value:function(e,t,n){var U=this,F=this.config,Q=e||F.kid,i=t||F.playDomain;i.indexOf("//")<0&&(i="//".concat(i));var l=n||F.drmKeyToken,r=Tu.isBase64(l)?window.atob(l):l,a="".concat(i,"?").concat(r,"&PlayAuthIds=").concat(Q,"&ssl=true");r.indexOf("DrmType=")<0&&(a+="&DrmType=".concat(F.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",F.vid,a);var d=new xu;return new Iu({type:"json",method:"GET",url:a}).then((function(e){var t,n,Q=e.response;if("string"==typeof Q&&(Q=JSON.parse(Q)),Q&&null!==(t=Q)&&void 0!==t&&t.Result&&(null===(n=Q.Result.PlayAuthInfoList)||void 0===n?void 0:n.length)>0){var i=Q.Result.PlayAuthInfoList[0].PlayAuthContent;U.log("getSecretKeyByToken end, vid,",F.vid,",res,",JSON.stringify(Q)),d.resolve(i)}})).catch((function(e){d.reject(e)})),d}},{key:"getLicense",value:function(){var e=this,t=this.config,n=t.vid,U=t.kid,F=t.getLicenseUrl,Q=new xu;return Promise.resolve().then(en(At().mark((function t(){var i,l,r,a,d,o,s,B,c,R,V,u;return At().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i={method:"getLicense",success:!1},t.next=3,e._tryGetSecretKeyByToken(i,Q);case 3:if(l=e.config,r=l.secretKey,a=l.keyValue,!(U||r||a||e.config.drm)){t.next=39;break}if(t.prev=5,d=e.config.drm||a,!(r||U&&F)){t.next=11;break}return t.next=10,Yu(n,r,U,F);case 10:d=t.sent;case 11:if(o=d&&d.clearKeys?d.clearKeys[U]:d,B=e.config,c=B.sessionId,R=B.useUnionInfoDRM,V=B.keyTokenExpiredDuration,u=th.get(c),!o&&(o=e.config.keyValue),!R||!Tu.checkUnionInfoExpired(u.unionID,u.unionInfo,V)){t.next=25;break}return t.next=19,qu(o,u.unionInfo);case 19:s=t.sent,t.next=23;break;case 22:throw new Error('The "transformUnionKey" should be provided in configuration as a function');case 23:t.next=26;break;case 25:s=o;case 26:d&&d.clearKeys&&(d.clearKeys[U]=s,i.drm=d),i.keyValue=s,i.success=!0,Q.resolve(i),t.next=37;break;case 32:t.prev=32,t.t0=t.catch(5),i.success=!1,i.error=t.t0,Q.reject(i);case 37:t.next=41;break;case 39:i.success=!0,Q.resolve(i);case 41:case"end":return t.stop()}}),t,null,[[5,32]])})))),Q}},{key:"_tryGetSecretKeyByToken",value:(t=en(At().mark((function e(t,n){var U,F,Q,i;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U=this.config,F=U.kid,Q=U.drmKeyToken,i=U.playDomain,!(F&&Q&&i)){e.next=13;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(F,i,Q);case 5:this.config.secretKey=e.sent,e.next=13;break;case 8:e.prev=8,e.t0=e.catch(2),t.success=!1,t.error=e.t0,n.reject(t);case 13:case"end":return e.stop()}}),e,this,[[2,8]])}))),function(e,n){return t.apply(this,arguments)})},{key:"updateKid",value:function(e){this.eme&&this.eme.updateKid(e)}},{key:"getLicenseSecret",value:function(){var e=this,t=this.config,n=t.vid,U=t.kid,F=t.getLicenseUrl,Q=t.useEME,i=t.keyValue;if(this.config.useEME&&!this.eme){this.eme=new Du,this.eme.on(gu.ERROR,this.EMEError),this.eme.on(gu.CDM_LICENSE_SUCCESS,(function(t){e.emit(gu.CDM_LICENSE_SUCCESS,t)})),this.eme.on(gu.CDM_LICENSE_ERROR,(function(t){e.emit(gu.CDM_LICENSE_ERROR,t)}));var l=this.config.intertrustServerURL;if(U&&l){var r=Fn({},window.navigator.userAgent.toLocaleLowerCase().indexOf("chrome")>-1?"widevine":"playready",{serverURL:l+U});return this.eme.updateDrm(r),Promise.resolve()}}var a=new xu;return Promise.resolve().then(en(At().mark((function t(){var l,r,d,o,s,B,c,R,V;return At().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return l={method:"getLicense",success:!1},t.next=3,e._tryGetSecretKeyByToken(l,a);case 3:if((r=e.config.secretKey)||i){t.next=8;break}return t.next=7,Mu(n,U,F);case 7:r=t.sent;case 8:if(Q&&(r&&(r=yd(atob(r))),i&&(r=i)),t.prev=9,d=e.config,o=d.sessionId,s=d.useUnionInfoDRM,B=d.keyTokenExpiredDuration,c=th.get(o),!s||!Tu.checkUnionInfoExpired(c.unionID,c.unionInfo,B)){t.next=18;break}if(!Q){t.next=17;break}return t.next=16,qu(r,c.unionInfo);case 16:r=t.sent;case 17:l.decryptKey=Tu.StringToArrayBuffer(od.hash(c.unionInfo));case 18:Q?((R={clearKeys:{}}).clearKeys[V=U||Cu]=r,e.eme.updateDrm(R,V),l.secretKey=null):l.secretKey=r,l.success=!0,a.resolve(l),t.next=28;break;case 23:t.prev=23,t.t0=t.catch(9),l.success=!1,l.error=t.t0,a.reject(l);case 28:case"end":return t.stop()}}),t,null,[[9,23]])})))),a}},{key:"destroy",value:function(){this.removeAllListeners(),this.eme&&(this.eme.destroy(),this.eme=null)}},{key:"log",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),U=1;U<t;U++)n[U-1]=arguments[U];wu.apply(void 0,[e].concat(n))}},{key:"getSecretKey",value:function(){var e=this.config,t=e.vid,n=e.kid,U=e.getLicenseUrl,F=e.drmKeyToken,Q=e.playDomain,i=e.secretKey;return U&&n?Mu(t,n,U):F&&n&&Q?this.getSecretKeyByToken(n,Q,F):i||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function(){var e=this.config,t=e.vid,n=e.kid,U=e.getLicenseUrl;return Yu(t,e.secretKey,n,U)}}],[{key:"pluginName",get:function(){return"XGSecretKey"}},{key:"defaultConfig",get:function(){return{keyValue:null,kid:null,getLicenseUrl:"",secretKey:null,drm:null,vid:"",useUnionInfoDRM:!1,transformUnionKey:null,drmKeyToken:null,keyTokenExpiredDuration:null,playDomain:null,sessionId:eh,useEME:!0,intertrustServerURL:null}}},{key:"updateUnionInfo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eh,n=Tu.getUnionInfo(e);return th.set(t,{unionID:e,unionInfo:n}),n}}]),U}(ad);nh.isWebAssemblySupported=function(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":qt(WebAssembly))&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(fu){}return!1};var Uh=J,Fh=c,Qh=Cn("match"),ih=l,lh=F,rh=Yt,ah=nQ,dh=K.f,oh=tt.f,sh=function(e){var t;return Uh(e)&&(void 0!==(t=e[Qh])?!!t:"RegExp"==Fh(e))},Bh=WR,ch=kR,Rh=Oe,Vh=i,uh=Me.enforce,hh=pQ,Zh=Cn("match"),Sh=lh.RegExp,ph=Sh.prototype,Jh=/a/g,mh=/a/g,Wh=new Sh(Jh)!==Jh,kh=ch.UNSUPPORTED_Y;if(ih&&rh("RegExp",!Wh||kh||Vh((function(){return mh[Zh]=!1,Sh(Jh)!=Jh||Sh(mh)==mh||"/a/i"!=Sh(Jh,"i")})))){for(var Eh=function(e,t){var n,U=this instanceof Eh,F=sh(e),Q=void 0===t;if(!U&&F&&e.constructor===Eh&&Q)return e;Wh?F&&!Q&&(e=e.source):e instanceof Eh&&(Q&&(t=Bh.call(e)),e=e.source),kh&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var i=ah(Wh?new Sh(e,t):Sh(e,t),U?this:ph,Eh);return kh&&n&&(uh(i).sticky=!0),i},yh=function(e){e in Eh||dh(Eh,e,{configurable:!0,get:function(){return Sh[e]},set:function(t){Sh[e]=t}})},fh=oh(Sh),Nh=0;fh.length>Nh;)yh(fh[Nh++]);ph.constructor=Eh,Eh.prototype=ph,Rh(lh,"RegExp",Eh)}hh("RegExp");var bh=Object.prototype.toString,vh=Function.prototype.toString;function Th(e){var t=!0;if(Array.isArray(e))t=e.reduce((function(e,t){return e&&Th(t)}),t);else{var n=RegExp("^".concat(String(bh).replace(/[.*+?^${}()|[\]\/\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?"),"$"));t="function"==typeof e&&n.test(vh.call(e))}return t}e.EVENT_EME=gu,e.TRANSFORM_IV=Au,e.XGSecretKey=nh,e.aes4js=Ou,e.checkEMEValid=function(){var e=[];return"undefined"!=typeof MediaKeySession&&e.push(MediaKeySession.prototype.update),0===e.length||Th(e)},e.checkMSEValid=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=function(){return"undefined"!=typeof MediaSource?MediaSource:arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&void 0!==self.ManagedMediaSource?self.ManagedMediaSource:void 0!==self.WebKitMediaSource?self.WebKitMediaSource:void 0}(e),n=function(){return"undefined"!=typeof SourceBuffer?SourceBuffer:arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&void 0!==self.ManagedSourceBuffer?self.ManagedSourceBuffer:void 0}(e),U=!1;if(t&&n){var F=[];n&&(F.push(n),F.push(n.prototype.appendBuffer)),t&&(F.push(t),F.push(t.prototype.addSourceBuffer)),Th(F)&&(U=!0)}return U},e.isNativeFunction=Th,e.transformUnionKey=qu,e.util=Tu}(t)}(0,gF.exports);var DF=gF.exports,XF=u((function e(t,n){var U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};R(this,e);var F="number"==typeof n?n:void 0;U.playerVersion="3.5.27-alpha.5",this.errorType=t,this.errorCode=F||We[t][n]||We[t],this.ext=U}));XF.DUR_PARSE_ERROR=9201,XF.SEG_PARSE_ERROR=9202,XF.INIT_SEGMENT_ERROR=9203,XF.MPD_INIT_ERROR=9204,XF.SEGMENT_CONTENT_ERROR=9205,XF.BACK_URL_FAIL=9206;var xF,LF=XF,IF=u((function e(t,n,U,F,Q,i){R(this,e),this.type=t,this.codecs=n,this.visualEntryBox=U,this.configurationBox=F,this.types=Q,this.logCodeType=i})),GF="avc",MF="av1",YF="hevc",wF="bytevc1",KF=(h(xF={},GF,new IF("avc","avc1.64001E","avc1","avcC",["h264"],"h264")),h(xF,MF,new IF("av1","av01.0.08M.08","av01","av1C",["av1"],"av1")),h(xF,YF,new IF("hevc","hev1.1.6.L120.90","hvc1","hvcC",["h265"],"h265")),h(xF,wF,new IF("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),xF);function _F(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jF(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,zF(U.key),U)}}function HF(e,t,n){return t&&jF(e.prototype,t),n&&jF(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function PF(e,t,n){return(t=zF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zF(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var OF="video",AF="audio",qF="avc",$F="hevc",eQ="vvcC",tQ="aac",nQ="g7110a",UQ="g7110m",FQ=function(){function e(){_F(this,e),PF(this,"id",1),PF(this,"type",OF),PF(this,"codecType",qF),PF(this,"pid",-1),PF(this,"hvcC",void 0),PF(this,"codec",""),PF(this,"timescale",0),PF(this,"formatTimescale",0),PF(this,"sequenceNumber",0),PF(this,"baseMediaDecodeTime",0),PF(this,"baseDts",0),PF(this,"duration",0),PF(this,"warnings",[]),PF(this,"samples",[]),PF(this,"pps",[]),PF(this,"sps",[]),PF(this,"vps",[]),PF(this,"fpsNum",0),PF(this,"fpsDen",0),PF(this,"sarRatio",[]),PF(this,"width",0),PF(this,"height",0),PF(this,"nalUnitSize",4),PF(this,"present",!1),PF(this,"isVideoEncryption",!1),PF(this,"isAudioEncryption",!1),PF(this,"isVideo",!0),PF(this,"kid",null),PF(this,"pssh",null),PF(this,"ext",void 0)}return HF(e,[{key:"reset",value:function(){this.sequenceNumber=this.width=this.height=this.fpsDen=this.fpsNum=this.duration=this.baseMediaDecodeTime=this.timescale=0,this.codec="",this.present=!1,this.pid=-1,this.pps=[],this.sps=[],this.vps=[],this.sarRatio=[],this.samples=[],this.warnings=[],this.hvcC=null}},{key:"exist",value:function(){return!!(this.pps.length&&this.sps.length&&this.codec)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isVideoEncryption}}]),e}(),QQ=function(){function e(){_F(this,e),PF(this,"id",2),PF(this,"type",AF),PF(this,"codecType",tQ),PF(this,"pid",-1),PF(this,"codec",""),PF(this,"sequenceNumber",0),PF(this,"sampleDuration",0),PF(this,"timescale",0),PF(this,"formatTimescale",0),PF(this,"baseMediaDecodeTime",0),PF(this,"duration",0),PF(this,"warnings",[]),PF(this,"samples",[]),PF(this,"baseDts",0),PF(this,"sampleSize",16),PF(this,"sampleRate",0),PF(this,"channelCount",0),PF(this,"objectType",0),PF(this,"sampleRateIndex",0),PF(this,"config",[]),PF(this,"present",!1),PF(this,"isVideoEncryption",!1),PF(this,"isAudioEncryption",!1),PF(this,"kid",null),PF(this,"ext",void 0)}return HF(e,[{key:"reset",value:function(){this.sequenceNumber=0,this.timescale=0,this.sampleDuration=0,this.sampleRate=0,this.channelCount=0,this.baseMediaDecodeTime=0,this.present=!1,this.pid=-1,this.codec="",this.samples=[],this.config=[],this.warnings=[]}},{key:"exist",value:function(){return!!(this.sampleRate&&this.channelCount&&this.codec&&this.codecType===tQ)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}}]),e}(),iQ="undefined"!=typeof window,lQ=iQ&&navigator.userAgent.toLocaleLowerCase(),rQ=iQ&&lQ.includes("firefox"),aQ=iQ&&lQ.includes("android"),dQ=function(){function e(){_F(this,e)}return HF(e,null,[{key:"getRateIndexByRate",value:function(t){return e.FREQ.indexOf(t)}},{key:"parseADTS",value:function(t,n){for(var U=t.length,F=0;F+2<U&&(255!==t[F]||240!=(246&t[F+1]));)F++;if(!(F>=U)){var Q=F,i=[],l=(60&t[F+2])>>>2,r=e.FREQ[l];if(!r)throw new Error("Invalid sampling index: ".concat(l));for(var a,d,o=1+((192&t[F+2])>>>6),s=(1&t[F+2])<<2|(192&t[F+3])>>>6,B=e._getConfig(l,s,o),c=B.config,R=B.codec,V=0,u=e.getFrameDuration(r);F+7<U;)if(255===t[F]&&240==(246&t[F+1])){if(U-F<(d=(3&t[F+3])<<11|t[F+4]<<3|(224&t[F+5])>>5))break;a=2*(1&~t[F+1]),i.push({pts:n+V*u,data:t.subarray(F+7+a,F+d)}),V++,F+=d}else F++;return{skip:Q,remaining:F>=U?void 0:t.subarray(F),frames:i,samplingFrequencyIndex:l,sampleRate:r,objectType:o,channelCount:s,codec:R,config:c,originCodec:"mp4a.40.".concat(o)}}}},{key:"parseAudioSpecificConfig",value:function(t){if(t.length){var n=t[0]>>>3,U=(7&t[0])<<1|t[1]>>>7,F=(120&t[1])>>>3,Q=e.FREQ[U];if(Q){var i=e._getConfig(U,F,n);return{samplingFrequencyIndex:U,sampleRate:Q,objectType:n,channelCount:F,config:i.config,codec:i.codec,originCodec:"mp4a.40.".concat(n)}}}}},{key:"getFrameDuration",value:function(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}},{key:"_getConfig",value:function(e,t,n){var U,F,Q=[];return rQ?e>=6?(U=5,F=e-3):(U=2,F=e):aQ?(U=2,F=e):(U=2===n||5===n?n:5,F=e,e>=6?F=e-3:1===t&&(U=2,F=e)),Q[0]=U<<3,Q[0]|=(14&e)>>1,Q[1]=(1&e)<<7,Q[1]|=t<<3,5===U&&(Q[1]|=(14&F)>>1,Q[2]=(1&F)<<7,Q[2]|=8,Q[3]=0),{config:Q,codec:"mp4a.40.".concat(U)}}},{key:"getSilentFrame",value:function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}]),e}();PF(dQ,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var oQ=Math.pow(2,32);function sQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<8)+(e[t+1]||0)}function BQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<24>>>0)+(e[t+1]<<16)+(e[t+2]<<8)+(e[t+3]||0)}function cQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt32(t)}function RQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return BQ(e,t)*oQ+BQ(e,t+4)}function VQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=new DataView(e.buffer,e.byteOffset,e.byteLength);return n.getUint32(t)<<32|n.getUint32(t+4)}var uQ=function(){function e(t){if(_F(this,e),PF(this,"_bytesAvailable",void 0),PF(this,"_bitsAvailable",0),PF(this,"_word",0),!t)throw new Error("ExpGolomb data params is required");this._data=t,this._bytesAvailable=t.byteLength,this._bytesAvailable&&this._loadWord()}return HF(e,[{key:"_loadWord",value:function(){var e=this._data.byteLength-this._bytesAvailable,t=Math.min(4,this._bytesAvailable);if(0===t)throw new Error("No bytes available");var n=new Uint8Array(4);n.set(this._data.subarray(e,e+t)),this._word=new DataView(n.buffer).getUint32(0),this._bitsAvailable=8*t,this._bytesAvailable-=t}},{key:"bitsPos",value:function(){return 8*this._bytesAvailable-this._bitsAvailable}},{key:"bitsLeft",value:function(){return 8*this._data.length-this.bitsPos()}},{key:"byteAligned",value:function(){return 0===this.bitsPos()||this.bitsPos()%8==0}},{key:"skipBits",value:function(e){if(this._bitsAvailable>e)this._word<<=e,this._bitsAvailable-=e;else{e-=this._bitsAvailable;var t=Math.floor(e/8);e-=8*t,this._bytesAvailable-=t,this._loadWord(),this._word<<=e,this._bitsAvailable-=e}}},{key:"readBits",value:function(e){if(e>32)throw new Error("Cannot read more than 32 bits");var t=Math.min(this._bitsAvailable,e),n=this._word>>>32-t;return this._bitsAvailable-=t,this._bitsAvailable>0?this._word<<=t:this._bytesAvailable>0&&this._loadWord(),(t=e-t)>0&&this._bitsAvailable?n<<t|this.readBits(t):n}},{key:"skipLZ",value:function(){var e;for(e=0;e<this._bitsAvailable;++e)if(0!=(this._word&2147483648>>>e))return this._word<<=e,this._bitsAvailable-=e,e;return this._loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBool",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"skipScalingList",value:function(e){for(var t=8,n=8,U=0;U<e;U++)0!==n&&(n=(t+this.readEG()+256)%256),t=0===n?t:n}}]),e}(),hQ=function(){function e(t){_F(this,e),this._buffer=t,this._offset=0,this._heldBits=0,this._numHeldBits=0}return HF(e,[{key:"readUint8",value:function(){return this._buffer[this._offset++]}},{key:"readUint16",value:function(){return this._buffer[this._offset++]<<8|this._buffer[this._offset++]}},{key:"readUint32",value:function(){return this._buffer[this._offset++]<<24|this._buffer[this._offset++]<<16|this._buffer[this._offset++]<<8|this._buffer[this._offset++]}},{key:"readUint8Array",value:function(e){var t=this._buffer.slice(this._offset,this._offset+e);return this._offset+=e,t}},{key:"streamRead1Bytes",value:function(){this._heldBits=this.readUint8(),this._numHeldBits=8}},{key:"streamRead2Bytes",value:function(){this._heldBits=this.readUint16(),this._numHeldBits=16}},{key:"extractBits",value:function(e){var t=this._heldBits>>this._numHeldBits-e&(1<<e)-1;return this._numHeldBits-=e,t}}]),e}(),ZQ=function(){function e(){_F(this,e)}return HF(e,null,[{key:"parseVVCDecoderConfigurationRecord",value:function(t){var n=new hQ(t),U=n.readUint8();n.streamRead1Bytes(),n.extractBits(5);var F,Q,i,l,r,a,d,o,s=n.extractBits(2)+1,B=n.extractBits(1),c={};B&&(n.streamRead2Bytes(),l=n.extractBits(2),r=n.extractBits(3),Q=n.extractBits(3),i=n.extractBits(2),n.extractBits(6),c=e.parseVVCPTLRecord(n,Q),F=n.readUint16(),a=n.readUint16(),d=n.readUint16(),o=n.readUint16());for(var R=n.readUint8(),V=[],u=[],h=[],Z=null,S=0;S<R;S++){n.streamRead1Bytes(),n.extractBits(1),n.extractBits(2);var p=n.extractBits(5),J=1;13!==p&&12!==p&&(J=n.readUint16());for(var m=0;m<J;m++){var W=n.readUint16();switch(p){case 14:V.push(n.readUint8Array(W));break;case 15:var k=n.readUint8Array(W);Z||(Z=e.parseSPS(e.removeEPB(k))),u.push(k);break;case 16:h.push(n.readUint8Array(W))}}}return{data:t,configurationVersion:U,codec:"bvc2.1.6.L93.B0",nalUnitSize:s,ptlPresentFlag:B,olsIdx:F,numSublayers:Q,constantFrameRate:i,chromaFormatIdc:l,bitDepthLumaMinus8:r,ptlRecord:c,width:a,height:d,sampleRate:o,numOfArrays:R,vps:V,sps:u,pps:h,spsParsed:Z}}},{key:"parseVVCPTLRecord",value:function(e,t){e.streamRead2Bytes(),e.extractBits(2);var n=e.extractBits(6),U=e.extractBits(7),F=e.extractBits(1),Q=e.readUint8();e.streamRead1Bytes();var i=e.extractBits(1),l=e.extractBits(1),r=new Uint8Array(n);if(n){for(var a=0;a<n-1;a++){var d=e.extractBits(6);e.streamRead1Bytes();var o=e.extractBits(2);r[a]=d<<2|o}r[n-1]=e.extractBits(6)}else e.extractBits(6);var s=[];if(t>1){e.streamRead1Bytes();for(var B=0,c=t-2;c>=0;--c){B|=e.extractBits(1)<<c}for(var R=t;R<=8&&t>1;++R)e.extractBits(1);for(var V=t-2;V>=0;--V)B&1<<V&&(s[V]=e.readUint8())}var u=e.readUint8(),h=[];if(u)for(var Z=0;Z<u;Z++)h.push(e.readUint32());return{generalProfileIdc:U,generalTierFlag:F,generalLevelIdc:Q,ptlFrameOnlyConstraintFlag:i,ptlMultilayerEnabledFlag:l,generalConstraintInfo:r,subLayerLevelIdc:s,generalSubProfileIdc:h,ptlNumSubProfiles:u,numBytesConstraintInfo:n}}},{key:"getAvccNals",value:function(e){for(var t=[];e.position<e.length-4;){var n=e.dataview.getInt32(e.dataview.position);if(!(e.length-e.position>=n))break;var U=e.buffer.slice(e.position,e.position+4);e.skip(4);var F=new Uint8Array(e.buffer.slice(e.position,e.position+n));e.skip(n),t.push({header:U,body:F})}return t}},{key:"analyseNal",value:function(e){var t=(248&e.body[1])>>3;switch(e.type=t,t){case 23:case 24:break;case 7:case 8:e.key=!0;break;case 14:e.vps=!0;break;case 15:e.sps=!0;break;case 16:e.pps=!0;break;case 17:e.aps=!0}}},{key:"removeEPB",value:function(e){for(var t=e.byteLength,n=[],U=1;U<t-2;)0===e[U]&&0===e[U+1]&&3===e[U+2]?(n.push(U+2),U+=2):U++;if(!n.length)return e;var F=t-n.length,Q=new Uint8Array(F),i=0;for(U=0;U<F;i++,U++)i===n[0]&&(i++,n.shift()),Q[U]=e[i];return Q}},{key:"parseVps",value:function(){}},{key:"parseSPS",value:function(t){var n=new uQ(t);n.readUByte(),n.readUByte(),n.skipBits(4);var U=n.readBits(4),F=n.readBits(3),Q=n.readBits(2),i=420;Q<=3&&(i=[0,420,422,444][Q]),n.readBits(2),n.readBits(1);var l=e._parseProfileTierLevel(n,1,F);return n.readBits(1),n.readBits(1)&&n.readBits(1),{width:n.readUEG(),height:n.readUEG(),spsMaxSubLayerMinus1:F,spsVideoParameterSetId:U,chromaFormatIdc:Q,chromaFormat:i,ptlInfo:l}}},{key:"_parseProfileTierLevel",value:function(t,n,U){var F,Q=t.readBits(7),i=t.readBits(1),l=t.readBits(8),r=t.readBits(1),a=t.readBits(1);n&&(F=e._parseGeneralConstraintsInfo(t));for(var d=U-1,o=[],s=[],B=[],c=d;c>=0;--c)o[c]=t.readBits(1);for(;!t.byteAligned();)t.readBits(1);for(var R=d;R>=0;--R)o[R]&&(s[R]=t.readUByte());if(n)for(var V=t.readUByte(),u=0;u<V;u++)B[u]=t.readBits(32);return{generalProfileIdc:Q,generalTierFlag:i,generalLevelIdc:l,ptlFrameOnlyConstraintFlag:r,ptlMultilayerEnabledFlag:a,ptlSublayerLevelPresentFlags:o,ptlSublayerLevelIdcs:s,ptlSubProfileIdcs:B,gciInfo:F}}},{key:"_parseGeneralConstraintsInfo",value:function(e){var t=e.readBits(1);if(t){e.skipBits(71);var n=e.readBits(8);n&&e.skipBits(n)}var U=8-e.bitsPos()%8;return e.skipBits(U),{gciPresentFlag:t}}}]),e}(),SQ=function(){function e(){_F(this,e)}return HF(e,null,[{key:"findBox",value:function(t,n){var U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,F=[];if(!t)return F;for(var Q=0,i="",l=0;t.length>7;){if(Q=BQ(t),i=String.fromCharCode.apply(null,t.subarray(4,8)),l=8,1===Q?(Q=RQ(t,8),l+=8):Q||(Q=t.length),!n[0]||i===n[0]){var r=t.subarray(0,Q);if(!(n.length<2))return e.findBox(r.subarray(l),n.slice(1),U+l);F.push({start:U,size:Q,headerSize:l,type:i,data:r})}U+=Q,t=t.subarray(Q)}return F}},{key:"tfhd",value:function(e){return WQ(e,!0,(function(e,t){e.trackId=BQ(t);var n=4,U=1&e.flags,F=2&e.flags,Q=8&e.flags,i=16&e.flags,l=32&e.flags;U&&(n+=4,e.baseDataOffset=BQ(t,n),n+=4),F&&(e.sampleDescriptionIndex=BQ(t,n),n+=4),Q&&(e.defaultSampleDuration=BQ(t,n),n+=4),i&&(e.defaultSampleSize=BQ(t,n),n+=4),l&&(e.defaultSampleFlags=BQ(t,n))}))}},{key:"sidx",value:function(e){return WQ(e,!0,(function(e,t){var n=0;e.reference_ID=BQ(t,n),n+=4,e.timescale=BQ(t,n),n+=4,0===e.version?(e.earliest_presentation_time=BQ(t,n),n+=4,e.first_offset=BQ(t,n),n+=4):(e.earliest_presentation_time=RQ(t,n),n+=8,e.first_offset=RQ(t,n),n+=8),n+=2,e.references=[];var U=sQ(t,n);n+=2;for(var F=0;F<U;F++){var Q={};e.references.push(Q);var i=BQ(t,n);n+=4,Q.reference_type=i>>31&1,Q.referenced_size=2147483647&i,Q.subsegment_duration=BQ(t,n),i=BQ(t,n+=4),n+=4,Q.starts_with_SAP=i>>31&1,Q.SAP_type=i>>28&7,Q.SAP_delta_time=268435455&i}}))}},{key:"moov",value:function(t){return WQ(t,!1,(function(t,n,U){t.mvhd=e.mvhd(e.findBox(n,["mvhd"],U)[0]),t.trak=e.findBox(n,["trak"],U).map((function(t){return e.trak(t)})),t.pssh=e.pssh(e.findBox(n,["pssh"],U)[0])}))}},{key:"mvhd",value:function(e){return WQ(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=BQ(t,16),e.duration=RQ(t,20),n+=28):(e.timescale=BQ(t,8),e.duration=BQ(t,12),n+=16),e.nextTrackId=BQ(t,n+76)}))}},{key:"trak",value:function(t){return WQ(t,!1,(function(t,n,U){t.tkhd=e.tkhd(e.findBox(n,["tkhd"],U)[0]),t.mdia=e.mdia(e.findBox(n,["mdia"],U)[0]),t.edts=e.edts(e.findBox(n,["edts"],U)[0])}))}},{key:"tkhd",value:function(e){return WQ(e,!0,(function(e,t){var n=0;1===e.version?(e.trackId=BQ(t,16),e.duration=RQ(t,24),n+=32):(e.trackId=BQ(t,8),e.duration=BQ(t,16),n+=20),e.width=BQ(t,n+52),e.height=BQ(t,n+56)}))}},{key:"mdia",value:function(t){return WQ(t,!1,(function(t,n,U){t.mdhd=e.mdhd(e.findBox(n,["mdhd"],U)[0]),t.hdlr=e.hdlr(e.findBox(n,["hdlr"],U)[0]),t.minf=e.minf(e.findBox(n,["minf"],U)[0])}))}},{key:"edts",value:function(t){return WQ(t,!1,(function(t,n,U){t.elst=e.elst(e.findBox(n,["elst"],U)[0])}))}},{key:"elst",value:function(e){return WQ(e,!0,(function(e,t,n){e.entries=[],e.entriesData=t;var U=0,F=BQ(t,U);U+=4;for(var Q=0;Q<F;Q++){var i={};e.entries.push(i),1===e.version?(i.segment_duration=RQ(t,U),U+=8,i.media_time=VQ(t,U),U+=8):(i.segment_duration=BQ(t,U),U+=4,i.media_time=cQ(t,U),U+=4),i.media_rate_integer=sQ(t,U),U+=2,i.media_rate_fraction=sQ(t,n),U+=2}}))}},{key:"mdhd",value:function(e){return WQ(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=BQ(t,16),e.duration=RQ(t,20),n+=28):(e.timescale=BQ(t,8),e.duration=BQ(t,12),n+=16);var U=sQ(t,n);e.language=String.fromCharCode(96+(U>>10&31),96+(U>>5&31),96+(31&U))}))}},{key:"hdlr",value:function(e){return WQ(e,!0,(function(e,t){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,t.subarray(4,8)))}))}},{key:"minf",value:function(t){return WQ(t,!1,(function(t,n,U){t.vmhd=e.vmhd(e.findBox(n,["vmhd"],U)[0]),t.smhd=e.smhd(e.findBox(n,["smhd"],U)[0]),t.stbl=e.stbl(e.findBox(n,["stbl"],U)[0])}))}},{key:"vmhd",value:function(e){return WQ(e,!0,(function(e,t){e.graphicsmode=sQ(t),e.opcolor=[sQ(t,2),sQ(t,4),sQ(t,6)]}))}},{key:"smhd",value:function(e){return WQ(e,!0,(function(e,t){e.balance=sQ(t)}))}},{key:"stbl",value:function(t){return WQ(t,!1,(function(t,n,U){var F,Q,i;t.stsd=e.stsd(e.findBox(n,["stsd"],U)[0]),t.stts=e.stts(e.findBox(n,["stts"],U)[0]),t.ctts=e.ctts(e.findBox(n,["ctts"],U)[0]),t.stsc=e.stsc(e.findBox(n,["stsc"],U)[0]),t.stsz=e.stsz(e.findBox(n,["stsz"],U)[0]),t.stco=e.stco(e.findBox(n,["stco"],U)[0]),t.stco||(t.co64=e.co64(e.findBox(n,["co64"],U)[0]),t.stco=t.co64);var l=null===(F=t.stsd.entries[0])||void 0===F||null===(Q=F.sinf)||void 0===Q||null===(i=Q.schi)||void 0===i?void 0:i.tenc.default_IV_size;t.stss=e.stss(e.findBox(n,["stss"],U)[0]),t.senc=e.senc(e.findBox(n,["senc"],U)[0],l)}))}},{key:"senc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return WQ(e,!0,(function(e,n){var U=0,F=BQ(n,U);U+=4,e.samples=[];for(var Q=0;Q<F;Q++){for(var i={InitializationVector:[]},l=0;l<t;l++)i.InitializationVector[l]=n[U+l];if(U+=t,2&e.flags){i.subsamples=[];var r=sQ(n,U);U+=2;for(var a=0;a<r;a++){var d={};d.BytesOfClearData=sQ(n,U),U+=2,d.BytesOfProtectedData=BQ(n,U),U+=4,i.subsamples.push(d)}}e.samples.push(i)}}))}},{key:"pssh",value:function(e){return WQ(e,!0,(function(e,t){for(var n=[],U=[],F=0,Q=0;Q<16;Q++)U.push(kQ(t[F+Q]));if(F+=16,e.version>0){var i=BQ(t,F);F+=4;for(var l=0;l<(""+i).length;l++)for(var r=0;r<16;r++){var a=t[F];F+=1,n.push(kQ(a))}}var d=BQ(t,F);e.data_size=d,F+=4,e.kid=n,e.system_id=U,e.buffer=t}))}},{key:"bvc2",value:function(t){return WQ(t,!1,(function(t,n,U){var F=JQ(t,n),Q=n.subarray(F);U+=F,t.vvcC=e.bv2C(e.findBox(Q,["bv2C"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"bv2C",value:function(e){return WQ(e,!1,(function(e,t,n){var U=ZQ.parseVVCDecoderConfigurationRecord(t);for(var F in U)Object.prototype.hasOwnProperty.call(U,F)&&(e[F]=U[F])}))}},{key:"stsd",value:function(t){return WQ(t,!0,(function(t,n,U){t.entryCount=BQ(n),t.entries=e.findBox(n.subarray(4),[],U+4).map((function(t){switch(t.type){case"avc1":case"avc2":case"avc3":case"avc4":return e.avc1(t);case"hvc1":case"hev1":return e.hvc1(t);case"bvc2":return e.bvc2(t);case"mp4a":return e.mp4a(t);case"alaw":case"ulaw":return e.alaw(t);case"enca":return WQ(t,!1,(function(t,n,U){t.channelCount=sQ(n,16),t.samplesize=sQ(n,18),t.sampleRate=BQ(n,24)/65536,n=n.subarray(28),t.sinf=e.sinf(e.findBox(n,["sinf"],U)[0]),t.esds=e.esds(e.findBox(n,["esds"],U)[0])}));case"encv":return WQ(t,!1,(function(t,n,U){t.width=sQ(n,24),t.height=sQ(n,26),t.horizresolution=BQ(n,28),t.vertresolution=BQ(n,32),n=n.subarray(78),t.sinf=e.sinf(e.findBox(n,["sinf"],U)[0]),t.avcC=e.avcC(e.findBox(n,["avcC"],U)[0]),t.hvcC=e.hvcC(e.findBox(n,["hvcC"],U)[0]),t.pasp=e.pasp(e.findBox(n,["pasp"],U)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return WQ(e,!1,(function(e,t){var n=6;e.default_IsEncrypted=t[n],n+=1,e.default_IV_size=t[n],n+=1,e.default_KID=[];for(var U=0;U<16;U++)e.default_KID.push(kQ(t[n])),n+=1}))}},{key:"schi",value:function(t){return WQ(t,!1,(function(t,n,U){t.tenc=e.tenc(e.findBox(n,["tenc"],U)[0])}))}},{key:"sinf",value:function(t){return WQ(t,!1,(function(t,n,U){t.schi=e.schi(e.findBox(n,["schi"],U)[0]),t.frma=e.frma(e.findBox(n,["frma"],U)[0])}))}},{key:"frma",value:function(e){return WQ(e,!1,(function(e,t){e.data_format="";for(var n=0;n<4;n++)e.data_format+=String.fromCharCode(t[n])}))}},{key:"avc1",value:function(t){return WQ(t,!1,(function(t,n,U){var F=JQ(t,n),Q=n.subarray(F);U+=F,t.avcC=e.avcC(e.findBox(Q,["avcC"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"avcC",value:function(e){return WQ(e,!1,(function(e,t){e.configurationVersion=t[0],e.AVCProfileIndication=t[1],e.profileCompatibility=t[2],e.AVCLevelIndication=t[3],e.codec=function(e){for(var t,n="avc1.",U=0;U<3;U++)(t=e[U].toString(16)).length<2&&(t="0".concat(t)),n+=t;return n}([t[1],t[2],t[3]]),e.lengthSizeMinusOne=3&t[4],e.spsLength=31&t[5],e.sps=[];for(var n=6,U=0;U<e.spsLength;U++){var F=sQ(t,n);n+=2,e.sps.push(t.subarray(n,n+F)),n+=F}e.ppsLength=t[n],n+=1,e.pps=[];for(var Q=0;Q<e.ppsLength;Q++){var i=sQ(t,n);n+=2,e.pps.push(t.subarray(n,n+=i)),n+=i}}))}},{key:"hvc1",value:function(t){return WQ(t,!1,(function(t,n,U){var F=JQ(t,n),Q=n.subarray(F);U+=F,t.hvcC=e.hvcC(e.findBox(Q,["hvcC"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"hvcC",value:function(e){return WQ(e,!1,(function(t,n){t.data=e.data,t.codec="hev1.1.6.L93.B0",t.configurationVersion=n[0];var U=n[1];t.generalProfileSpace=U>>6,t.generalTierFlag=(32&U)>>5,t.generalProfileIdc=31&U,t.generalProfileCompatibility=BQ(n,2),t.generalConstraintIndicatorFlags=n.subarray(6,12),t.generalLevelIdc=n[12],t.avgFrameRate=sQ(n,19),t.numOfArrays=n[22],t.vps=[],t.sps=[],t.pps=[];for(var F=23,Q=0,i=0,l=0,r=0;r<t.numOfArrays;r++){Q=63&n[F],i=sQ(n,F+1),F+=3;for(var a,d=[],o=0;o<i;o++)l=sQ(n,F),F+=2,d.push(n.subarray(F,F+l)),F+=l;if(32===Q)(a=t.vps).push.apply(a,d);else if(33===Q){var s;(s=t.sps).push.apply(s,d)}else if(34===Q){var B;(B=t.pps).push.apply(B,d)}}}))}},{key:"pasp",value:function(e){return WQ(e,!1,(function(e,t){e.hSpacing=BQ(t),e.vSpacing=BQ(t,4)}))}},{key:"mp4a",value:function(t){return WQ(t,!1,(function(t,n,U){var F=mQ(t,n);t.esds=e.esds(e.findBox(n.subarray(F),["esds"],U+F)[0])}))}},{key:"esds",value:function(e){return WQ(e,!0,(function(e,t){e.codec="mp4a.";for(var n=0,U=0,F=0,Q=0;t.length;){for(Q=t[n=0],U=t[n+1],n+=2;128&U;)F=(127&U)<<7,U=t[n],n+=1;if(F+=127&U,3===Q)t=t.subarray(n+3);else{if(4!==Q){if(5===Q){var i=e.config=t.subarray(n,n+F),l=(248&i[0])>>3;return 31===l&&i.length>=2&&(l=32+((7&i[0])<<3)+((224&i[1])>>5)),e.objectType=l,e.codec+=l.toString(16),void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}return void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}e.codec+=(t[n].toString(16)+".").padStart(3,"0"),t=t.subarray(n+13)}}}))}},{key:"alaw",value:function(e){return WQ(e,!1,(function(e,t){mQ(e,t)}))}},{key:"stts",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=[],F=4,Q=0;Q<n;Q++)U.push({count:BQ(t,F),delta:BQ(t,F+4)}),F+=8;e.entryCount=n,e.entries=U}))}},{key:"ctts",value:function(e){return WQ(e,!0,(function(e,t){var n=BQ(t),U=[],F=4;if(1===e.version)for(var Q=0;Q<n;Q++)U.push({count:BQ(t,F),offset:BQ(t,F+4)}),F+=8;else for(var i=0;i<n;i++)U.push({count:BQ(t,F),offset:-(1+~BQ(t,F+4))}),F+=8;e.entryCount=n,e.entries=U}))}},{key:"stsc",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]={firstChunk:BQ(t,F),samplesPerChunk:BQ(t,F+4),sampleDescriptionIndex:BQ(t,F+8)},F+=12;e.entryCount=n,e.entries=U}))}},{key:"stsz",value:function(e){return WQ(e,!0,(function(e,t){var n=BQ(t),U=BQ(t,4),F=new Array(U);if(!n)for(var Q=8,i=0;i<U;i++)F[i]=BQ(t,Q),Q+=4;e.sampleSize=n,e.sampleCount=U,e.entrySizes=F}))}},{key:"stco",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=BQ(t,F),F+=4;e.entryCount=n,e.entries=U}))}},{key:"co64",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=RQ(t,F),F+=8;e.entryCount=n,e.entries=U}))}},{key:"stss",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=BQ(t,F),F+=4;e.entryCount=n,e.entries=U}))}},{key:"moof",value:function(t){return WQ(t,!1,(function(t,n,U){t.mfhd=e.mfhd(e.findBox(n,["mfhd"],U)[0]),t.traf=e.findBox(n,["traf"],U).map((function(t){return e.traf(t)}))}))}},{key:"mfhd",value:function(e){return WQ(e,!0,(function(e,t){e.sequenceNumber=BQ(t)}))}},{key:"traf",value:function(t){return WQ(t,!1,(function(t,n,U){t.tfhd=e.tfhd(e.findBox(n,["tfhd"],U)[0]),t.tfdt=e.tfdt(e.findBox(n,["tfdt"],U)[0]),t.trun=e.trun(e.findBox(n,["trun"],U)[0])}))}},{key:"trun",value:function(e){return WQ(e,!0,(function(e,t){var n=e.version,U=e.flags,F=t.length,Q=e.sampleCount=BQ(t),i=4;if(F>i&&1&U&&(e.dataOffset=-(1+~BQ(t,i)),i+=4),F>i&&4&U&&(e.firstSampleFlags=BQ(t,i),i+=4),F>i){var l;e.samples=new Array(Q);for(var r=0;r<Q;r++)l={},256&U&&(l.duration=BQ(t,i),i+=4),512&U&&(l.size=BQ(t,i),i+=4),1024&U&&(l.flags=BQ(t,i),i+=4),2048&U&&(l.cts=n?-(1+~BQ(t,i+4)):BQ(t,i),i+=4),e.samples[r]=l}}))}},{key:"tfdt",value:function(e){return WQ(e,!0,(function(e,t){1===e.version?e.baseMediaDecodeTime=RQ(t):e.baseMediaDecodeTime=BQ(t)}))}},{key:"probe",value:function(t){return!!e.findBox(t,["ftyp"])}},{key:"parseSampleFlags",value:function(e){return{isLeading:(12&e[0])>>>2,dependsOn:3&e[0],isDependedOn:(192&e[1])>>>6,hasRedundancy:(48&e[1])>>>4,paddingValue:(14&e[1])>>>1,isNonSyncSample:1&e[1],degradationPriority:e[2]<<8|e[3]}}},{key:"moovToTrack",value:function(e,t,n){var U,F,Q=e.trak;if(Q&&Q.length){var i=Q.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),l=Q.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(i&&t){var r,a,d,o,s,B,c,R,V=t,u=null===(r=i.tkhd)||void 0===r?void 0:r.trackId;null!=u&&(V.id=i.tkhd.trackId),V.tkhdDuration=i.tkhd.duration,V.mvhdDurtion=e.mvhd.duration,V.mvhdTimecale=e.mvhd.timescale,V.timescale=V.formatTimescale=i.mdia.mdhd.timescale,V.duration=i.mdia.mdhd.duration||V.mvhdDurtion/V.mvhdTimecale*V.timescale,null!==(a=i.edts)&&void 0!==a&&a.elst&&(V.editList=i.edts.elst,V.editListApplied=i.editListApplied);var h,Z,S,p,J,m,W,k,E=i.mdia.minf.stbl.stsd.entries[0];if(V.width=E.width,V.height=E.height,E.pasp&&(V.sarRatio=[E.pasp.hSpacing,E.pasp.vSpacing]),E.hvcC)V.codecType=$F,V.codec=E.hvcC.codec,V.vps=E.hvcC.vps,V.sps=E.hvcC.sps,V.pps=E.hvcC.pps,V.hvcC=E.hvcC.data;else if(E.avcC)V.codec=E.avcC.codec,V.sps=E.avcC.sps,V.pps=E.avcC.pps;else{if(!E.vvcC)throw new Error("unknown video stsd entry");V.codecType=eQ,V.codec=E.vvcC.codec,V.sps=E.vvcC.sps,V.pps=E.vvcC.pps,V.vps=E.vvcC.vps,V.vvcC=E.vvcC.data}if(V.present=!0,V.ext={},V.ext.stss=null===(d=i.mdia)||void 0===d||null===(o=d.minf)||void 0===o||null===(s=o.stbl)||void 0===s?void 0:s.stss,V.ext.ctts=null===(B=i.mdia)||void 0===B||null===(c=B.minf)||void 0===c||null===(R=c.stbl)||void 0===R?void 0:R.ctts,E&&"encv"===E.type)V.isVideoEncryption=!0,E.default_KID=null===(h=E.sinf)||void 0===h||null===(Z=h.schi)||void 0===Z?void 0:Z.tenc.default_KID,E.default_IsEncrypted=null===(S=E.sinf)||void 0===S||null===(p=S.schi)||void 0===p?void 0:p.tenc.default_IsEncrypted,E.default_IV_size=null===(J=E.sinf)||void 0===J||null===(m=J.schi)||void 0===m?void 0:m.tenc.default_IV_size,V.videoSenc=i.mdia.minf.stbl.senc&&i.mdia.minf.stbl.senc.samples,E.data_format=null===(W=E.sinf)||void 0===W||null===(k=W.frma)||void 0===k?void 0:k.data_format,V.useEME=e.useEME,V.kidValue=e.kidValue,V.pssh=e.pssh,V.encv=E}if(l&&n){var y,f,N,b,v,T,C,g,D,X,x=n,L=null===(y=l.tkhd)||void 0===y?void 0:y.trackId;null!=L&&(x.id=l.tkhd.trackId),x.tkhdDuration=l.tkhd.duration,x.mvhdDurtion=e.mvhd.duration,x.mvhdTimecale=e.mvhd.timescale,x.timescale=x.formatTimescale=l.mdia.mdhd.timescale,x.duration=l.mdia.mdhd.duration||x.mvhdDurtion/x.mvhdTimecale*x.timescale,null!==(f=l.edts)&&void 0!==f&&f.elst&&(x.editList=l.edts.elst,x.editListApplied=l.editListApplied);var I,G,M,Y,w,K,_,j,H=l.mdia.minf.stbl.stsd.entries[0];switch(x.sampleSize=H.sampleSize,x.sampleRate=H.sampleRate,x.channelCount=H.channelCount,x.present=!0,H.type){case"alaw":x.codecType=x.codec=nQ,x.sampleRate=8e3;break;case"ulaw":x.codecType=x.codec=UQ,x.sampleRate=8e3;break;default:x.sampleDuration=dQ.getFrameDuration(x.sampleRate,x.timescale),x.sampleRateIndex=dQ.getRateIndexByRate(x.sampleRate),x.objectType=(null===(U=H.esds)||void 0===U?void 0:U.objectType)||2,H.esds&&(x.config=Array.from(H.esds.config)),x.codec=(null===(F=H.esds)||void 0===F?void 0:F.codec)||"mp4a.40.2"}if(x.sampleDuration=dQ.getFrameDuration(x.sampleRate,x.timescale),x.objectType=(null===(N=H.esds)||void 0===N?void 0:N.objectType)||2,H.esds&&(H.esds.config?x.config=Array.from(H.esds.config):console.warn("esds config is null")),x.codec=(null===(b=H.esds)||void 0===b?void 0:b.codec)||"mp4a.40.2",x.sampleRateIndex=dQ.getRateIndexByRate(x.sampleRate),x.ext={},x.ext.stss=null===(v=l.mdia)||void 0===v||null===(T=v.minf)||void 0===T||null===(C=T.stbl)||void 0===C?void 0:C.stss,x.ext.ctts=null===(g=l.mdia)||void 0===g||null===(D=g.minf)||void 0===D||null===(X=D.stbl)||void 0===X?void 0:X.ctts,x.present=!0,H&&"enca"===H.type)x.isAudioEncryption=!0,H.data_format=null===(I=H.sinf)||void 0===I||null===(G=I.frma)||void 0===G?void 0:G.data_format,H.default_KID=null===(M=H.sinf)||void 0===M||null===(Y=M.schi)||void 0===Y?void 0:Y.tenc.default_KID,H.default_IsEncrypted=null===(w=H.sinf)||void 0===w||null===(K=w.schi)||void 0===K?void 0:K.tenc.default_IsEncrypted,H.default_IV_size=null===(_=H.sinf)||void 0===_||null===(j=_.schi)||void 0===j?void 0:j.tenc.default_IV_size,x.audioSenc=l.mdia.minf.stbl.senc&&l.mdia.minf.stbl.senc.samples,x.useEME=e.useEME,x.kidValue=e.kidValue,x.enca=H}if(n&&(n.isVideoEncryption=!!t&&t.isVideoEncryption),t&&(t.isAudioEncryption=!!n&&n.isAudioEncryption),null!=t&&t.encv||null!=n&&n.enca){var P,z,O=null==t||null===(P=t.encv)||void 0===P?void 0:P.default_KID,A=null==n||null===(z=n.enca)||void 0===z?void 0:z.default_KID,q=O||A?(O||A).join(""):null;t&&(t.kid=q),n&&(n.kid=q)}return t&&(t.flags=3841),n&&(n.flags=1793),{videoTrack:t,audioTrack:n}}}},{key:"evaluateDefaultDuration",value:function(e,t,n){var U,F=null==t||null===(U=t.samples)||void 0===U?void 0:U.length;return F?1024*F/t.timescale*e.timescale/n:1024}},{key:"moofToSamples",value:function(t,n,U){var F={};return t.mfhd&&(n&&(n.sequenceNumber=t.mfhd.sequenceNumber),U&&(U.sequenceNumber=t.mfhd.sequenceNumber)),t.traf.forEach((function(t){var Q=t.tfhd,i=t.tfdt,l=t.trun;if(Q&&l){i&&(n&&n.id===Q.trackId&&(n.baseMediaDecodeTime=i.baseMediaDecodeTime),U&&U.id===Q.trackId&&(U.baseMediaDecodeTime=i.baseMediaDecodeTime));var r=Q.defaultSampleSize||0,a=Q.defaultSampleDuration||e.evaluateDefaultDuration(n,U,l.samples.length||l.sampleCount),d=l.dataOffset||0,o=0,s=-1;if(!l.samples.length&&l.sampleCount){F[Q.trackId]=new Array(l.sampleCount);for(var B=0;B<l.sampleCount;B++)F[Q.trackId][B]={offset:d,dts:o,duration:a,size:r},o+=a,d+=r}else F[Q.trackId]=l.samples.map((function(e,t){return(e={offset:d,dts:o,pts:o+(e.cts||0),duration:e.duration||a,size:e.size||r,gopId:s,keyframe:0===t||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(s++,e.gopId=s),o+=e.duration,d+=e.size,e}))}})),F}},{key:"moovToSamples",value:function(e){var t=e.trak;if(t&&t.length){var n=t.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),U=t.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(n||U){var F,Q;if(n){var i,l,r=null===(i=n.mdia)||void 0===i||null===(l=i.minf)||void 0===l?void 0:l.stbl;if(!r)return;var a=r.stts,d=r.stsc,o=r.stsz,s=r.stco,B=r.stss,c=r.ctts;if(!(a&&d&&o&&s&&B))return;F=pQ(a,d,o,s,c,B)}if(U){var R,V,u,h=null===(R=U.mdia)||void 0===R||null===(V=R.minf)||void 0===V?void 0:V.stbl;if(!h)return;var Z=null===(u=U.mdia.mdhd)||void 0===u?void 0:u.timescale,S=h.stts,p=h.stsc,J=h.stsz,m=h.stco;if(!(Z&&S&&p&&J&&m))return;Q=pQ(S,p,J,m)}return{videoSamples:F,audioSamples:Q}}}}}]),e}();function pQ(e,t,n,U,F,Q){var i,l,r,a=[],d=null==F?void 0:F.entries,o=t.entries,s=U.entries,B=n.entrySizes,c=null==Q?void 0:Q.entries;c&&(i={},c.forEach((function(e){i[e-1]=!0}))),d&&(l=[],d.forEach((function(e){for(var t=e.count,n=e.offset,U=0;U<t;U++)l.push(n)})));var R=-1,V=0,u=0,h=0,Z=0,S=0,p=o[0].samplesPerChunk,J=o[1]?o[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var t=e.count,U=e.delta,F=0;F<t;F++)r={dts:V,duration:U,size:B[u]||n.sampleSize,offset:s[h]+S,index:u},c&&(r.keyframe=i[u],r.keyframe&&R++,r.gopId=R),l&&u<l.length&&(r.pts=r.dts+l[u]),a.push(r),V+=U,++u<p?S+=r.size:(h++,S=0,h>=J&&(Z++,J=o[Z+1]?o[Z+1].firstChunk-1:1/0),p+=o[Z].samplesPerChunk)})),a}function JQ(e,t){return e.dataReferenceIndex=sQ(t,6),e.width=sQ(t,24),e.height=sQ(t,26),e.horizresolution=BQ(t,28),e.vertresolution=BQ(t,32),e.frameCount=sQ(t,40),e.depth=sQ(t,74),78}function mQ(e,t){return e.dataReferenceIndex=sQ(t,6),e.channelCount=sQ(t,16),e.sampleSize=sQ(t,18),e.sampleRate=BQ(t,24)/65536,28}function WQ(e,t,n){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var U={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return t&&(U.version=e.data[e.headerSize],U.flags=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<16)+(e[t+1]<<8)+(e[t+2]||0)}(e.data,e.headerSize+1),U.headerSize+=4),n(U,e.data.subarray(U.headerSize),U.start+U.headerSize),U}}var kQ=function(){for(var e=[],t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e.push(function(e,t,n){for(var U=String(n),F=t>>0,Q=Math.ceil(F/U.length),i=[],l=String(e);Q--;)i.push(U);return i.join("").substring(0,F-l.length)+l}(Number(t).toString(16),2,0))})),e[0]};function EQ(e,t,n,U){return e[t]?U?U(e[t]):e[t]:n}var yQ=function(){function e(t){var n,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},F=arguments.length>2?arguments[2]:void 0;R(this,e),EF(this),this.url=t,this.options=U,this.dash=F,this.useSeparationMode=null===(n=this.dash.config)||void 0===n?void 0:n.useSeparationMode,this.mediaList={video:[],audio:[]},this.mediaList.audio.selectedIdx=0,this.retryMax=10,this.retry=0,this.type="live",this.isEnd=!1,this.duration=0,this.videoCodecType=null,this.videoCodecs=null,this.hasSync=!1,this._readyPromise=new x,this._loadStates={video:this._createLoadingState(),audio:this._createLoadingState()}}var t;return u(e,[{key:"_createLoadingState",value:function(){return{currentIndex:0,isLoading:!1}}},{key:"readyPromise",get:function(){return this._readyPromise}},{key:"setLoadingState",value:function(e,t){this._loadStates[e].isLoading=t}},{key:"calcVideoCodeType",value:function(e,t){if(e||t){var n=null;t?n=t.split(".")[0]:e&&(n=e.split(".")[0]);for(var U=Object.keys(KF),F=0;F<U.length;F++){var Q=U[F],i=KF[Q];if(i.types.concat(i.visualEntryBox).indexOf(n)>-1){this.videoCodecType="hevc"===Q?"h265":Q,this.videoCodecs=i.codecs;break}}pt.log("mpd dataType:",e,"codecs:",t,"cal type:",this.videoCodecType,"videoCodecs",this.videoCodecs),this.videoCodecType||(this.videoCodecType=GF,this.videoCodecs=KF[GF].codecs,console.warn("calcVideoCodeType default")),this.dash&&this.dash._pluginInst&&this.dash._pluginInst.setCodeInfo(this.videoCodecType)}}},{key:"fetch",value:(t=c(o().mark((function t(n){var U,F,Q,i,l,r,a,d,s;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return U=this,F={TYPE:"LIVE",ENDLIST:""},Q=[],t.prev=3,i=new Bt({}),t.next=7,i.load(n);case 7:if(l=t.sent,!(r=l.data)){t.next=21;break}if(a=e.parseMPD(r)){t.next=13;break}throw new Error("parse mpd error");case 13:return this._parseMeta(F,a),this._parseSegments(a,n),["video","audio"].forEach((function(e){U.mediaList[e].length>0&&(U.mediaList[e].selectedIdx="video"===e&&U.dash.selectedIdx||0,U.mediaList[e].sort((function(t,n){return"video"===e?n.height-t.height:n.bandwidth-t.bandwidth})))})),0===U.mediaList.video.length&&0===U.mediaList.audio.length&&(null===(d=U.dash)||void 0===d||d.emit("error",new LF(oe,me.DASH,{url:n,message:"NO_MEDIALIST fetch"}))),t.abrupt("return",{meta:F,segments:Q});case 21:throw U.dash.emit("error",new LF(oe,me.DASH,{url:n,message:"mpd parse error"})),new Error("MPD_PARSE_ERROR");case 23:t.next=29;break;case 25:throw t.prev=25,t.t0=t.catch(3),U.dash.emit("error",new LF(Je,LF.MPD_INIT_ERROR,{httpCode:null===(s=t.t0.response)||void 0===s?void 0:s.status,url:n,message:null===t.t0||void 0===t.t0?void 0:t.t0.message})),new Error(t.t0);case 29:case"end":return t.stop()}}),t,this,[[3,25]])}))),function(e){return t.apply(this,arguments)})},{key:"_parseMeta",value:function(e,t){"static"===t.type&&(e.TYPE="VOD"),t.minBufferTime&&(e.minBufferTime=WU.durationConvert(t.minBufferTime)),t.maxSegmentDuration&&(e.maxSegmentDuration=WU.durationConvert(t.maxSegmentDuration)),t.mediaPresentationDuration&&(this.duration=WU.durationConvert(t.mediaPresentationDuration));var n=t.Period[0];!this.duration&&n&&n.duration&&(this.duration=WU.durationConvert(n.duration)),e.duration=this.duration}},{key:"_parseST",value:function(e,t,n,U,F){for(var Q=parseFloat(e.timescale),i=parseFloat(e.duration),l=Math.round(i/Q),r=parseInt(e.startNumber,10),a=r+Math.ceil(this.duration/l)-1,d=r;d<=a;d++){var o=l*(d-r),s=l*(d-r+1);d===a&&(l=this.duration-l*(a-r),s=this.duration),t.push({idx:d,start:Math.round(o),end:Math.round(s),url:U+e.media.replace("$RepresentationID$",n).replace("$Number%04d$",WU.preFixInterge(d,4)),downloaded:0,segmentDuration:l,height:F})}}},{key:"_getVideoSegments",value:function(e){var t,n,U,F,Q=e.bandwidth,i=e.id,l=e.baseURL,r=e.initSegment,a=e.mediaSegments,d=e.mimeType,o=e.codecs,s=e.width,B=e.height,c=e.frameRate,R=e.sar,V=e.startWithSAP,u=e.timescale,h=e.duration,Z=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_video_list)for(var S=0;S<this.options.dynamic_video.dynamic_video_list.length;S++){var p=this.options.dynamic_video.dynamic_video_list[S];p.bitrate===Q&&(t=p.size,n=p.definition,U=p.file_id,F=p.audio_file_id)}this.mediaList.video.push({id:i,baseURL:l,initSegment:l+r.replace("$RepresentationID$",i),inited:!1,mediaSegments:a,mimeType:d,codecs:o,width:s,height:B,size:t,frameRate:c,sar:R,startWithSAP:V,bandwidth:Q,timescale:u,duration:h,encrypted:Z,definition:n,fileId:U,audioFileId:F})}},{key:"_getAudioSegments",value:function(e){var t,n=e.bandwidth,U=e.id,F=e.baseURL,Q=e.initSegment,i=e.mediaSegments,l=e.mimeType,r=e.codecs,a=e.startWithSAP,d=e.timescale,o=e.duration,s=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_audio_list)for(var B=0;B<this.options.dynamic_video.dynamic_audio_list.length;B++)this.options.dynamic_video.dynamic_audio_list[B].bitrate===n&&(t=this.options.dynamic_video.dynamic_audio_list[B].size);this.mediaList.audio.push({id:U,baseURL:F,initSegment:F+Q.replace("$RepresentationID$",U),inited:!1,mediaSegments:i,mimeType:l,codecs:r,startWithSAP:a,bandwidth:n,size:t,timescale:d,duration:o,encrypted:s})}},{key:"_parseSegments",value:function(e,t){var n=this,U=[],F="";e.BaseURL&&(F=e.BaseURL[0]);var Q=e.Period[0];Q.AdaptationSet&&Q.AdaptationSet.length>1&&Q.AdaptationSet.forEach((function(e){var Q="video/mp4",i="avc1.64001E",l="640",r="360",a="25",d="1:1",o="1",s="588633";e.mimeType&&("video/mp4"===(Q=e.mimeType)?(i=e.codecs,l=parseFloat(e.width),r=parseFloat(e.height),a=parseFloat(e.frameRate),d=e.sar,o=e.startWithSAP,s=parseFloat(e.bandwidth),n.calcVideoCodeType(null,i)):"audio/mp4"===Q&&(i=e.codecs,o=e.startWithSAP,s=parseFloat(e.bandwidth))),e.Representation.forEach((function(B){U.indexOf(B.id)>-1&&(B.id=(parseInt(U[U.length-1],10)+1).toString()),U.push(B.id);var c,R="",V=[],u=0,h=t.slice(0,t.lastIndexOf("/")+1)+F;"video/mp4"===(Q=EQ(B,"mimeType",Q))?(B.codecs&&(i=B.codecs,n.calcVideoCodeType(null,i)),l=EQ(B,"width",l,parseFloat),r=EQ(B,"height",r,parseFloat),a=EQ(B,"frameRate",a,parseFloat),d=EQ(B,"sar",d)):"audio/mp4"===Q&&(i=EQ(B,"codecs",i)),o=EQ(B,"startWithSAP",o),s=EQ(B,"bandwidth",s,parseFloat),B.BaseURL&&B.BaseURL.length>0&&(h+=B.BaseURL[0]),e.SegmentTemplate&&e.SegmentTemplate.length>0&&(c=e.SegmentTemplate[0]),B.SegmentTemplate&&B.SegmentTemplate.length>0&&(c=B.SegmentTemplate[0]);var Z=!1;(e.ContentProtection||B.ContentProtection)&&(Z=!0),c&&(R=c.initialization,u=parseFloat(c.duration),n._parseST(c,V,B.id,h,r)),s=parseInt(s),"video/mp4"===Q?n._getVideoSegments({id:B.id,bandwidth:s,baseURL:h,initSegment:R,mediaSegments:V,mimeType:Q,codecs:i,width:l,height:r,frameRate:a,sar:d,startWithSAP:o,timescale:0,duration:u,encrypted:Z}):"audio/mp4"===Q&&n._getAudioSegments({id:B.id,baseURL:h,bandwidth:s,initSegment:R,mediaSegments:V,mimeType:Q,codecs:i,startWithSAP:o,timescale:0,duration:u,encrypted:Z})}))}))}},{key:"init",value:function(){var e=this,t=e.options;if(t.dynamic_video.dynamic_type&&"segment_template"!==t.dynamic_video.dynamic_type){e.dashType="segment_base";var n=0;t.duration;var U,F=t.dynamic_video;if(["dynamic_video_list","dynamic_audio_list"].forEach((function(U){var Q="dynamic_audio_list"===U;F[U].forEach((function(F){var i=parseInt(F.init_range.split("-")[0],10),l=parseInt(F.init_range.split("-")[1],10),r=parseInt(F.index_range.split("-")[0],10),a=parseInt(F.index_range.split("-")[1],10),d=F.first_moofmdat_range,o=d?[parseInt(d.split("-")[0],10),parseInt(d.split("-")[1],10)]:null;Q||e.calcVideoCodeType(F.codec_type),e.mediaList["dynamic_audio_list"===U?"audio":"video"].push({id:("dynamic_audio_list"===U?0:n++).toString(),baseURL:F.main_url,initSegment:F.main_url,initSegmentRange:[i,l],sidxRange:[r,a],firstMoofMdatRange:o,inited:!1,hasSidx:!1,mediaSegments:[],mimeType:Q?"audio/mp4":"video/mp4",codecs:Q?"mp4a.40.2":F.codec_type&&F.codec_type.indexOf("h265")>-1?"hev1.1.6.L93.B0":e.videoCodecs,width:F.vwidth,height:F.vheight,bandwidth:parseInt(F.bitrate),avg_bitrate:F.avg_bitrate,size:F.size,timescale:-1,duration:t.duration,encrypted:F.encrypt,kid:F.kid,definition:F.definition,sidxRes:void 0,fileId:F.file_id,audioFileId:F.audio_file_id,fallbackUrl:F.fallback_url,hasFallback:!1,backupUrl:F.backup_url_1,hasBackup:!1})}))})),e.type="vod",["video","audio"].forEach((function(t){e.mediaList[t].length>0&&(e.mediaList[t].selectedIdx="video"===t&&e.dash.selectedIdx||0,"video"===t&&e.mediaList[t].sort((function(e,n){return"video"===t?n.height-e.height:n.bandwidth-e.bandwidth})))})),0===e.mediaList.video.length&&0===e.mediaList.audio.length)pt.log("medaiList is null",JSON.stringify(e.options.dynamic_video)),null===(U=e.dash)||void 0===U||U.emit("error",new LF(oe,me.DASH,{message:"NO_MEDIALIST"}));e.emit("ready"),e._readyPromise.resolve()}else e.dashType="segment_template",e.fetch(t.dynamic_video.main_url).then((function(t){e.type=t.meta.TYPE.toLocaleLowerCase(),e.emit("ready"),e._readyPromise.resolve()}),(function(){["video","audio"].forEach((function(t){e.mediaList[t]=[]})),e.retry++,e.retry,e.retryMax}))}},{key:"getSidx",value:function(e){var t,n=this,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"video",F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,Q=arguments.length>3?arguments[3]:void 0,i=this,l=i.mediaList[U][F],r=l.sidxRange[1];try{var a=e instanceof ArrayBuffer?e:e.buffer,d=new Uint8Array(a),o=String.fromCharCode.apply(null,d.subarray(4,8));if("sidx"!==o)throw pt.log("mpd sdix parse err"),new Error("topLevel ".concat(o,", index:").concat(F,", res:").concat(e.byteLength,", range:").concat(JSON.stringify(l.sidxRange)));var s=(t=SQ.sidx(SQ.findBox(new Uint8Array(a),[])[0])).timescale,B=[],c=0,R=0,V=r+1,u=V-1;t.references.forEach((function(e,t){R+=e.subsegment_duration,u+=e.referenced_size,B.push({idx:t+1,url:l.initSegment,start:Math.round(c/s),end:Math.round(R/s),startRaw:c/s,endRaw:R/s,range:[V,u],downloaded:l.firstMoofMdatRange&&0===c?1:0,segmentDuration:Math.round(e.subsegment_duration/s),reference_type:e.reference_type,starts_with_SAP:e.starts_with_SAP,SAP_type:e.SAP_type,SAP_delta_time:e.SAP_delta_time,codecType:n.getCodecType(),mediaType:U}),c=R+1,V=u+1})),B[0].startTime_=0,l.mediaDuration=0,B.forEach((function(e,t){l.mediaDuration+=e.segmentDuration,t>0&&(e.startTime_=B[t-1].startTime_+B[t-1].segmentDuration),t===B.length-1&&Q&&(e.end=Q)})),l.hasSidx=!0,l.mediaSegments=B,l.timescale=s,l.sidxRes=e}catch(h){if(i.sidxHanded)return;throw i.sidxHanded=!0,new LF(ue,me.SIDX,{line:398,handle:"[MPD] getSidx",message:"mpd segment base Parse getSidx error ".concat(U," err: ").concat(h.message)})}}},{key:"getCodecType",value:function(){return("hevc"===this.videoCodecType?"h265":this.videoCodecType)||"h264"}},{key:"_checkInBufferedOld",value:function(e,t,n,U,F){if(0===e.length)return!1;var Q=this._inBufferedOld(t,U,e),i=this._inBufferedOld(n,F,e);return!(!Q.in||!i.in||Q.index!==i.index)}},{key:"_inBufferedOld",value:function(e,t,n){for(var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=0;F<n.length;F++){var Q=n[F].start,i=n[F].end,l=WU.round(Q),r=WU.round(i);if(l<=e&&e<=r||Q<=e&&e<=i)return{index:F,in:!0};if(l<=t&&t-U<=r||Q<=t&&t-U<=i)return{index:F,in:!0}}return{in:!1}}},{key:"checkInBuffered",value:function(e,t,n){return 0!==e.length&&this._inBufferd(t,n,e)}},{key:"_inBufferd",value:function(e,t,n){for(var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=0;F<n.length;F++){var Q=n[F].start,i=n[F].end;if(!(t<Q||e>i)&&(Q-U<e&&t<i+U))return!0}return!1}},{key:"_doSyncAV",value:function(){var e=this.mediaList;if(!this.hasSync){var t=!1;if(e.video.length<1&&(t=!0),e.audio.length<1&&(t=!0),!t){var n=this.mediaList.video[this.mediaList.video.selectedIdx].mediaSegments,U=this.mediaList.audio[this.mediaList.audio.selectedIdx].mediaSegments;if(0===n.length||0===U.length)return;var F=Math.min(n.length,U.length),Q=Math.abs(n.length-U.length);if(Q>=1){var i=n.length>U.length?n:U;if(1===Q){var l=i[i.length-1],r=i[i.length-2];l&&(i.pop(),r.end=l.end,r.endRaw=l.endRaw,r.range[1]=l.range[1])}else for(var a=F;a<i.length;a++)i[a].incomplete=!0}var d=U[F-1],o=n[F-1];d&&(d.incomplete=!0),o&&(o.incomplete=!0)}this.hasSync=!0}}},{key:"syncAV",value:function(){this.hasSync=!1}},{key:"getBuffered",value:function(e){return this._getBuffered(e)}},{key:"_getBuffered",value:function(e){var t=this._getMseBuffered(e);if(!t||0===t.length)return[];for(var n=[],U=0;U<t.length;U++)n.push({start:t.start(U),end:t.end(U)});return n}},{key:"_getMseBuffered",value:function(e){var t,n,U,F,Q,i=this.dash.mse;if(!i)return[];"[object Function]"===Object.prototype.toString.call(i.buffered)?t=this.dash.mse.buffered(e):t="video"===e?null===(n=i.timeline)||void 0===n||null===(U=n.videoRender)||void 0===U?void 0:U.buffered:null===(F=i.timeline)||void 0===F||null===(Q=F.audioRender)||void 0===Q?void 0:Q.buffered;return t}},{key:"seek",value:function(e,t,n){this._doSyncAV();return this.useSeparationMode?this._getMediaResultsSeparate(t,n,["video","audio"]):this._getMediaResults(e,t)}},{key:"_getMediaResults",value:function(e,t){var n=t>e,U={},F=this;return["video","audio"].forEach((function(Q){if(F.mediaList[Q].length<1)return!0;var i=F._getBuffered(Q),l=F.mediaList[Q][F.mediaList[Q].selectedIdx].mediaSegments;"video"===Q&&pt.log("seek",Q,"idx",F.mediaList[Q].selectedIdx),U[Q]=l.filter((function(U,r){if(U.end<e&&U.end<t)return!1;if(U.downloaded===xt){if(F._checkInBufferedOld(i,U.start,U.end,U.startRaw,U.endRaw))return!1;if(U.incomplete)return pt.log("".concat(Q," ").concat(r," start:").concat(U.start," end:").concat(U.end," segment incomplete")),!1;pt.log("".concat(Q," ").concat(r," start:").concat(U.start," end:").concat(U.end," segment downloaded set false")),U.downloaded=Dt}var a=U.start<=e&&e<=U.end;if(U.downloaded===Dt){if(a)return!0;var d=t>0&&U.startRaw<=t&&t<=U.endRaw,o=t>0&&U.start>=t&&U.end<=e,s=l[r-1],B=!(!n||!s)&&(s.startRaw<=t&&t<=s.endRaw);if(o||d||B)return!F._checkInBufferedOld(i,U.start,U.end,U.startRaw,U.endRaw)}return!1}))})),U}},{key:"setSegmentIndexByTime",value:function(e){this._setSegmentBySeek(e,"video"),this._setSegmentBySeek(e,"audio")}},{key:"getCurSegment",value:function(){for(var e=["video","audio"],t={},n=0;n<e.length;n++){var U,F=e[n],Q=null===(U=this.mediaList[F][this.mediaList[F].selectedIdx])||void 0===U?void 0:U.mediaSegments;if(Q){var i,l,r,a=this._loadStates[F].currentIndex;t[F]=Q[a],pt.log("getCurSegment",F,null===(i=t[F])||void 0===i?void 0:i.idx,null===(l=t[F])||void 0===l?void 0:l.start,null===(r=t[F])||void 0===r?void 0:r.end,"idx",a,"len",Q.length)}}return t}},{key:"checkRemovedSegment",value:function(e){for(var t=["video","audio"],n={},U=0;U<t.length;U++){var F=t[U],Q=e[F];if(Q){var i=this._getBuffered(F);!this.checkInBuffered(i,Q.startRaw,Q.endRaw)&&(n[F]={remove:!0,start:Q.startRaw,end:Q.endRaw})}}return n}},{key:"_setSegmentBySeek",value:function(e,t){var n=this._findSegmentIndexByTime(t,e),U=n;n=this._adjustSegIndex(n,t),pt.log("_setSegmentBySeek",t,U,"newSeg",n),this.setNextSegmentIndex(t,n),this.setLoadingState(t,!1)}},{key:"_adjustSegIndex",value:function(e,t){var n=this.mediaList[t][this.mediaList[t].selectedIdx].mediaSegments;if(n.length>0)for(var U=this._getBuffered(t),F=e;F<n.length;F++){var Q=n[F];if(this._isItemBufferRemoved(t,U,Q),0===Q.downloaded){e=F;break}}return e}},{key:"setNextSegmentIndex",value:function(e,t){this._loadStates[e].currentIndex=t}},{key:"moveNextSegmentIndex",value:function(e,t){if(t-1===this._loadStates[e].currentIndex){var n=this._loadStates[e].currentIndex,U=this._adjustSegIndex(n+1,e);this._loadStates[e].currentIndex=U,n+1!==U&&pt.log("seekResult moveNextSegmentIndex mediaType",e,"segIdx",n+1,"segIdx",U)}}},{key:"_getMediaResultsSeparate",value:function(e,t,n){for(var U={},F=0;F<n.length;F++){var Q=n[F];U[Q]=[];var i=this._getCurBuffered(Q),l=this._getBuffered(Q),r=this._loadStates[Q];if(!r.isLoading&&!(e+t<(null==i?void 0:i[1]))){var a=this.mediaList[Q][this.mediaList[Q].selectedIdx].mediaSegments;if(0!==a.length&&!(r.currentIndex>=a.length)){var d=r.currentIndex,o=a[d];if(o){var s=o.end-o.start;if(0===(null==i?void 0:i[1])||(null==i?void 0:i[1])>0&&o.start-i[1]>s+1){var B=this._findSegmentIndexByTime(Q,e);if(B===d-1)pt.log("getMediaResults seq",Q,"nsegIndex",B);else{var c,R,V=B;(null==i?void 0:i[1])>0&&(V=this._adjustSegIndex(B,Q),pt.log("getMediaResults adjust1",Q,d,"new",B,"adjustIdx",V,"buf",null==i?void 0:i[1])),this.setNextSegmentIndex(Q,V),o=a[r.currentIndex],pt.log("getMediaResults",Q,d,"new",B,"adjustIdx",V,"buf",null==i?void 0:i[1],"gap",(null===(c=o)||void 0===c?void 0:c.start)-i[1],"mediaBuffers",JSON.stringify(l),"seg downloaded",null===(R=o)||void 0===R?void 0:R.downloaded)}}if(o){var u=this.checkInBuffered(l,o.startRaw,o.endRaw);if(0===(null==i?void 0:i[1])&&u&&(pt.log("_getMediaResults buffer gap fix",Q),r.currentIndex<a.length-1&&(r.currentIndex++,o=a[r.currentIndex])),(null==i?void 0:i[1])>0&&o.end<e){var h=o.end;this._setSegmentBySeek(i[1],Q),o=a[r.currentIndex],pt.log("getMediaResults low",Q,"curBuffers",i,"orgEnd",h,"newend",o.end,"currentTime",e)}o&&o.downloaded===Dt&&U[Q].push(o)}}}}}return U}},{key:"_findSegmentIndexByTime",value:function(e,t){var n=this.mediaList[e][this.mediaList[e].selectedIdx].mediaSegments;if(n&&n.length>0){for(var U=0;U<n.length;U++){var F=n[U];if(t>=F.start&&t<F.end)return U}var Q=n[n.length-1];if(Math.abs(t-(null==Q?void 0:Q.end))<.2)return n.length-1}return-1}},{key:"_getCurBuffered",value:function(e){var t,n=this._getMseBuffered(e);return Array.isArray(n)?[0,0]:null===(t=this.dash.player)||void 0===t?void 0:t.getBufferedRange(n)}},{key:"_isItemBufferRemoved",value:function(e,t,n){if(n&&n.downloaded===xt)return!this.checkInBuffered(t,n.startRaw,n.endRaw)&&(pt.log("".concat(e," start:").concat(n.start," end:").concat(n.end," segment downloaded to set false")),n.downloaded=Dt,!0);if(n&&n.downloaded===Dt&&this.checkInBuffered(t,n.startRaw,n.endRaw))return n.downloaded=xt,pt.log("".concat(e," start:").concat(n.start," end:").concat(n.end," segment downloaded to append")),!1;return!1}},{key:"clearBuffer",value:function(e,t,n){if(!(e>t)){pt.log("mpd clearBuffer ".concat(n," start:").concat(e," end:").concat(t));var U=this,F=n?[n]:["video","audio"];"vod"===U.type&&F.forEach((function(n){if(U.mediaList[n].length>0){var F=U.mediaList[n][U.mediaList[n].selectedIdx],Q=[];F.mediaSegments.forEach((function(n,U){n.end<e||n.start>t||(n.downloaded=Dt,n.extRange=void 0,Q.push(U))}));var i=Q.length>0?Q[0]:void 0,l=Q.length>1?Q[Q.length-1]:i;pt.log("".concat(n," start:").concat(e," end:").concat(t,",\n startId:").concat(i," , endId:").concat(l,", segment downloaded set false"))}}))}}},{key:"isLastSegmentAndAppend",value:function(e,t){if(!this.mediaList[e])return!0;var n=t-1,U=this.mediaList[e].selectedIdx,F=this.mediaList[e][U].mediaSegments;return!!F&&(!F[n]||this._isSegmentAppend(F[n])&&F.length-1===n)}},{key:"_isSegmentAppend",value:function(e){return e.downloaded===xt||e.incomplete}},{key:"isSegmentAppendFromIdx",value:function(e,t){if(!this.mediaList[e])return{res:!0,emptyTrack:!0};var n=0,U=this.mediaList[e].selectedIdx,F=this.mediaList[e][U].mediaSegments||[];if(0===F.length)return{res:!0,emptySegments:!0};for(var Q=0;Q<F.length;Q++)if(F[Q].start<=t&&t<=F[Q].end){n=Q;break}F&&t>=F[F.length-1].end&&(n=F.length-1);var i=!0;if(F){for(var l=n;n<F.length&&F[l];l++)if(!this._isSegmentAppend(F[l])){i=!1;break}}else i=!1;return{res:i}}}],[{key:"parseMPD",value:function(e){var t;if("string"==typeof e&&(t=e),e instanceof ArrayBuffer){var n=new Uint8Array(e);t=String.fromCharCode.apply(null,n)}if(!t)return null;var U=performance.now();return t=t.replace(/<(\/)?(\w+:)+(\w+)/g,"<$1$3"),pt.log("MPD cost",performance.now()-U),L.parse(t)}}]),e}(),fQ=yQ,NQ=function(e){return e[e.INDEXDB=0]="INDEXDB",e[e.MEMORY=1]="MEMORY",e}(NQ||{}),bQ=function(e){return e.PRELOAD_NEXT="PRELOAD_NEXT",e.PRELOAD_START="PRELOAD_START",e.PRELOAD_CANCEL="PRELOAD_CANCEL",e}(bQ||{});var vQ=function(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}();function TQ(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function CQ(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var gQ={},DQ="readonly",XQ="readwrite";function xQ(e){var t=gQ[e.name],n={};n.promise=new Promise((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function LQ(e,t){return new Promise((function(n,U){if(gQ[e.name]=gQ[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return n(e.db);xQ(e),e.db.close()}var F=[e.name];t&&F.push(e.version);var Q=null==vQ?void 0:vQ.open.apply(vQ,F);t&&(Q.onupgradeneeded=function(t){var n=Q.result;try{n.createObjectStore(e.storeName)}catch(U){if("ConstraintError"!==U.name)throw U;console.warn('The database "'.concat(e.name,'" has been upgraded from version ').concat(t.oldVersion," to\n version ").concat(t.newVersion,', but the storage "').concat(e.storeName,'" already exists.'))}}),Q.onerror=function(e){e.preventDefault(),U(Q.error)},Q.onsuccess=function(){n(Q.result),function(e){var t=gQ[e.name].deferredOperations.pop();if(t)t.resolve(),t.promise}(e)}}))}function IQ(e){return LQ(e,!1)}function GQ(e){return LQ(e,!0)}function MQ(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),U=e.version<e.db.version,F=e.version>e.db.version;if(U&&(e.version!==t&&console.warn('The database "'.concat(e.name,"\" can't be downgraded from version ").concat(e.db.version," to\n version ").concat(e.version,".")),e.version=e.db.version),F||n){if(n){var Q=e.db.version+1;Q>e.version&&(e.version=Q)}return!0}return!1}function YQ(e){xQ(e);for(var t=gQ[e.name],n=t.forages,U=0;U<n.length;U++){var F=n[U];F._dbInfo.db&&(F._dbInfo.db.close(),F._dbInfo.db=null)}return e.db=null,IQ(e).then((function(t){return e.db=t,MQ(e)?GQ(e):t})).then((function(U){e.db=t.db=U;for(var F=0;F<n.length;F++)n[F]._dbInfo.db=U})).catch((function(t){throw function(e,t){var n=gQ[e.name].deferredOperations.pop();if(n)n.reject(t),n.promise}(e,t),t}))}function wQ(e,t,n,U){void 0===U&&(U=1);try{var F=e.db.transaction(e.storeName,t);n(null,F)}catch(Q){if(U>0&&(!e.db||"InvalidStateError"===Q.name||"NotFoundError"===Q.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===Q.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),GQ(e)})).then((function(){return YQ(e).then((function(){wQ(e,t,n,U-1)}))})).catch(n);n(Q)}}var KQ=function(){function e(){R(this,e)}return u(e,[{key:"ready",value:function(){return this._ready}},{key:"_initStorage",value:function(e){var t=this;t._defaultConfig=e;var n={db:null,name:"",version:""};if(e)for(var U in e)n[U]=e[U];var F=gQ[n.name];F||(F={forages:[],db:null,dbReady:null,deferredOperations:[]},gQ[n.name]=F),F.forages.push(t),t._initReady||(t._initReady=t.ready,t._ready=t._fullyReady);var Q=[];function i(){return Promise.resolve()}for(var l=0;l<F.forages.length;l++){var r=F.forages[l];r!==t&&Q.push(r._initReady().catch(i))}var a=F.forages.slice(0);return t._ready=Promise.all(Q).then((function(){return n.db=F.db,IQ(n)})).then((function(e){return n.db=e,MQ(n,t._defaultConfig.version)?GQ(n):e})).then((function(e){n.db=F.db=e,t._dbInfo=n;for(var U=0;U<a.length;U++){var Q=a[U];Q!==t&&(Q._dbInfo.db=n.db,Q._dbInfo.version=n.version)}})),t._ready}},{key:"probeSupport",get:function(){return function(){try{if(null==vQ||!vQ.open)return!1;var e=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(n){return!1}}()}},{key:"getItem",value:function(e,t){var n=this;e=CQ(e);var U=new Promise((function(t,U){n.ready().then((function(){wQ(n._dbInfo,DQ,(function(F,Q){if(F)return U(F);try{var i=Q.objectStore(n._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),t(e)},i.onerror=function(){U(i.error)}}catch(l){U(l)}}))})).catch(U)}));return TQ(U,t),U}},{key:"setItem",value:function(e,t,n){var U=this;e=CQ(e);var F=new Promise((function(n,F){U.ready().then((function(){return U._dbInfo,t})).then((function(t){wQ(U._dbInfo,XQ,(function(Q,i){if(Q)return F(Q);try{var l=i.objectStore(U._dbInfo.storeName);null===t&&(t=void 0);var r=l.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),n(t)},i.onabort=i.onerror=function(){var e=r.error?r.error:r.transaction.error;F(e)}}catch(a){F(a)}}))})).catch(F)}));return TQ(F,n),F}},{key:"removeItem",value:function(e,t){var n=this;e=CQ(e);var U=new Promise((function(t,U){n.ready().then((function(){wQ(n._dbInfo,XQ,(function(F,Q){if(F)return U(F);try{var i=Q.objectStore(n._dbInfo.storeName).delete(e);Q.oncomplete=function(){t()},Q.onerror=function(){U(i.error)},Q.onabort=function(){var e=i.error?i.error:i.transaction.error;U(e)}}catch(l){U(l)}}))})).catch(U)}));return TQ(U,t),U}},{key:"clear",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wQ(t._dbInfo,XQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).clear();F.oncomplete=function(){e()},F.onabort=F.onerror=function(){var e=Q.error?Q.error:Q.transaction.error;n(e)}}catch(i){n(i)}}))})).catch(n)}));return TQ(n,e),n}},{key:"length",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wQ(t._dbInfo,DQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).count();Q.onsuccess=function(){e(Q.result)},Q.onerror=function(){n(Q.error)}}catch(i){n(i)}}))})).catch(n)}));return TQ(n,e),n}},{key:"all",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wQ(t._dbInfo,DQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).openCursor(),i=[];Q.onsuccess=function(){var t=Q.result;t?(i.push({key:t.key,value:t.value}),t.continue()):e(i)},Q.onerror=function(){n(Q.error)}}catch(l){n(l)}}))})).catch(n)}));return TQ(n,e),n}},{key:"_fullyReady",value:function(e){var t=this,n=t._initReady().then((function(){var e=gQ[t._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return function(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}(n,e,e),n}},{key:"getItemSync",value:function(){throw new Error("NotSupported")}}]),e}(),_Q=function(){function e(){R(this,e)}return u(e,[{key:"_initStorage",value:function(e){var t=e.name,n=e.storeName,U="".concat(t,"_").concat(n);return this.key=U,window[U]&&"object"===s(window[U])||(window[U]={}),this.store=window[U],Promise.resolve()}},{key:"getItem",value:function(e,t){var n=this.store[e];return void 0===n&&(n=null),this._internalPromise(t,n)}},{key:"getItemSync",value:function(e,t){var n=this.store[e];return void 0===n&&(n=null),t&&t(n),n}},{key:"setItem",value:function(e,t,n){return this.store[e]=t,this._internalPromise(n)}},{key:"removeItem",value:function(e,t){return delete this.store[e],this._internalPromise(t)}},{key:"clear",value:function(e){return this.store={},window[this.key]={},this._internalPromise(e)}},{key:"length",value:function(e){var t=Object.keys(this.store).length;return this._internalPromise(e,t)}},{key:"_internalPromise",value:function(e,t){var n=t?Promise.resolve(t):Promise.resolve();return TQ(n,e),n}},{key:"all",value:function(e){for(var t=[],n=Object.keys(this.store),U=0;U<n.length;U++){var F=n[U];t.push({key:F,value:this.store[F]})}return this._internalPromise(e,t)}},{key:"probeSupport",value:function(){return!0}}]),e}(),jQ={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},HQ="__PRE_CACHE__KEYS",PQ=function(){function e(t,n){R(this,e),this._allCachedKeyMap={},this._memory=0,this._cnt=0;var U=n===NQ.MEMORY?_Q:KQ;this._cacheType=n,this._driver=new U,this._driver._initStorage(jQ).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!t||t<=0?200:t,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new x,this.init()}var t;return u(e,[{key:"supportSync",value:function(){return this._cacheType===NQ.MEMORY}},{key:"getCachedKeysFromLocal",value:function(){var e=X.getItem(HQ);if(e)for(var t=e.split("|"),n=0;n<t.length;n++){var U=t[n],F=this._getCacheKeyInfos(U),Q=F.time,i=F.cachedKey;this._allCachedKeys[i]=1,this._allCachedTimeKeys[i]=Q}}},{key:"_getCacheKeyInfos",value:function(e){var t,n=e.split("$");return 2===n.length&&(t=n[0],e=n[1]),{time:t,cachedKey:e}}},{key:"writeCachedKeysToLocal",value:function(e){var t=[];this._allCachedKeys={},this._allCachedTimeKeys={};for(var n=0;n<e.length;n++){var U=e[n].key,F=this._getCacheKeyInfos(U),Q=F.time,i=F.cachedKey;this._allCachedKeys[i]=1,this._allCachedTimeKeys[i]=Q,t.push(U)}var l=t.join("|");X.setItem(HQ,l)}},{key:"init",value:function(){var e=this;this._driver.setItem("test","test").then((function(){})).catch((function(){e._hasIdbForbidden=!0})).finally((function(){e._driver.removeItem("test").catch((function(){})),e._hasIdbForbidden&&(e._driver=new _Q,e._driver._initStorage(jQ)),e._getAll(),e._readyPromise.resolve()}))}},{key:"_getAll",value:function(){var e=this;this._memory=0,this._cnt=0,this._driver.all().then((function(t){e._cachedLength=t.length;var n=t.length-e._maxCache,U=t;if(n>0){var F=t.slice(0,n);U=t.slice(n);for(var Q=0;Q<F.length;Q++)e.removeItem(F[Q].key).then((function(){}))}e._cnt=U.length;for(var i=0;i<U.length;i++){var l=U[i];if("object"===s(l.value)){Object.values(l.value).forEach((function(t){e._memory+=(null==t?void 0:t.memory)||0}));var r=e._getCacheKeyInfos(l.key).cachedKey;e._allCachedKeyMap[r]=Object.keys(l.value)}}e.writeCachedKeysToLocal(U)})).catch((function(){}))}},{key:"getAllCachedDataKeys",value:function(){var e=[];return Object.values(this._allCachedKeyMap).forEach((function(t){e.push.apply(e,E(t))})),e}},{key:"getItem",value:(t=c(o().mark((function e(t,n,U){var F,Q,i,l,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((F=this.hasItem(t))&&U&&(Q=this._allCachedKeyMap[t],F=(null==Q?void 0:Q.includes(U))||!1),F){e.next=4;break}return e.abrupt("return",Promise.resolve(!1));case 4:return i=this._getTimeKey(t),l=i.timeKey,e.next=7,this._driver.getItem(l,n);case 7:if(r=e.sent,!U){e.next=10;break}return e.abrupt("return",r[U]);case 10:return e.abrupt("return",r);case 11:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.apply(this,arguments)})},{key:"getItemSync",value:function(e,t,n){var U=this.hasItem(e);if(U&&n){var F=this._allCachedKeyMap[e];U=(null==F?void 0:F.includes(n))||!1}if(!U)return!1;var Q=this._getTimeKey(e).timeKey,i=this._driver.getItemSync(Q,t);return n?i[n]:i}},{key:"setItem",value:function(e,t,n){var U=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var F=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=F;var Q=this._genTimeKey(e,F);return n=n?function(){U._getAll(),n()}:function(){U._getAll()},this._driver.setItem(Q,t,n)}},{key:"_getTimeKey",value:function(e){var t=this._allCachedTimeKeys[e],n=e;return t&&(n=this._genTimeKey(e,t)),{timeKey:n,time:t}}},{key:"_genTimeKey",value:function(e,t){return"".concat(t).concat("$").concat(e)}},{key:"removeItem",value:function(e,t){var n=this._getTimeKey(e).timeKey,U=this._driver.removeItem(n,t);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],delete this._allCachedKeyMap[e],U}},{key:"hasItem",value:function(e){return!!this._allCachedKeys[e]}},{key:"clear",value:function(e){return this._driver.clear(e)}},{key:"length",value:function(e){return this._driver.length(e)}},{key:"setMaxCache",value:function(e){"number"==typeof e&&e>0&&(this._maxCache=e)}},{key:"getMemoryInfo",value:function(){return{memory:this._memory,cnt:this._cnt}}}]),e}(),zQ=PQ,OQ=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],AQ=0,qQ=function(){function e(t){var n=this;R(this,e),this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._updateRealTimeSpeed=function(e){AQ=e.speed,n.emit(Bn,e)},this._manager=t}return u(e,[{key:"setPreloadBandwidth",value:function(e,t){this._preload_bandwith_map.set(e,t)}},{key:"getPreloadBandwidth",value:function(e){return this._preload_bandwith_map.get(e)}},{key:"_updateLoadInfo",value:function(e,t,n){var U=this._pcdn_info_map.get(e);!U&&(U={}),U[t]||(U[t]={},U[t].loadLen=0),U[t].loadLen=U[t].loadLen+n,this._pcdn_info_map.set(e,U)}},{key:"getLoadInfoAndDelete",value:function(e){var t=this._pcdn_info_map.get(e);return this._pcdn_info_map.delete(e),t}},{key:"getPreloadUnuseInfo",value:function(){var e,t={},n=N(this._preload_bandwith_map);try{for(n.s();!(e=n.n()).done;){var U=k(e.value,2),F=U[0],Q=U[1];if(this._usepreload_info.get(F))this._preload_bandwith_map.delete(F);else{var i=F.split("#"),l=i.length>0?i[0]:F;t[l]?(t[l].bw+=Q.bw||0,t[l].pbw+=Q.pbw||0):t[l]={vid:l,bw:Q.bw||0,pbw:Q.pbw||0,bitrate:Q.bitrate||0,duration:Q.duration||0}}}}catch(r){n.e(r)}finally{n.f()}return Object.values(t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,U=e.size,F=e.speed,Q=e.cacheKey,i=e.vtype,l=e.duration,r=e.bitrate,a=J(e,OQ),o=this.getPreloadBandwidth(Q)||{bw:0,pbw:0,vid:t,duration:l,bitrate:r};n&&n!==cn?(o.pbw=o.pbw+U,this.emit("prf_data_size",d({vid:t,task_type:2,pcdn_size:U,pcdn_speed:F,vtype:i,bitrate:r,duration:l},a))):(o.bw=o.bw+U,this.emit("prf_data_size",d({vid:t,task_type:2,cdn_size:U,cdn_speed:F,vtype:i,duration:l,bitrate:r},a))),this.setPreloadBandwidth(Q,o),this._updateRealTimeSpeed({speed:F,type:n||cn}),this._updateLoadInfo(Q,n,U)}},{key:"setUsePreloadInfo",value:function(e,t){this._usepreload_info.set(e,t)}},{key:"realTimeSpeed",get:function(){return AQ}},{key:"emit",value:function(e,t){var n;null===(n=this._manager)||void 0===n||n.emit(e,t)}},{key:"destroy",value:function(){this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._manager=null}}]),e}();function $Q(e,t){var n=[0,0];if(e)for(var U=0,F=e.length;U<F&&(n[0]=e.start(U),n[1]=e.end(U),!(n[0]<=t&&t<=n[1]));U++);return n[0]-t<=0&&t-n[1]<=0?n:[0,0]}function ei(e,t,n){for(var U=0;U<e.length;U++)if(n===e[U][t])return U;return-1}var ti=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],ni=!1,Ui=function(e){Z(r,e);var t,n,U,F,Q,i,l=W(r);function r(){var e;return R(this,r),(e=l.call(this))._loaders={},e._loaderInsts={},e._taskIntervalId=0,e._currentPreloadInst=null,e._preloadDataList=[],e._player=null,e._stepwise=!1,e._playingVids=[],e._isOpen=!0,e._userDefinition=null,e._startDefinition=null,e.onPreloadNext=c(o().mark((function t(){var n,U,F,Q,i,l,r,a,d,s,B,c,R,V;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(F=m(e),Q=F._preloadDataList,i=F._config,!(!e._isOpen||e._currentPreloadInst||e._preloadDataList.length<1)){t.next=3;break}return t.abrupt("return",!1);case 3:if(l=e.findPreloadItem(Q,!1),r=null==l?void 0:l.data,l&&null!=r&&r.payload){t.next=7;break}return t.abrupt("return",!1);case 7:if(null,a=e.selectBeforeStart(r),e._filterMixPayload(r,a),e.setStartDefinition(null===(n=a)||void 0===n?void 0:n.definition),e.log("log","selectBeforeStart",null===(U=a)||void 0===U?void 0:U.vtype,a),d=e._getPreloaderKey(a||r)){t.next=17;break}return e.log("warn","need to set vtype, no preloader",r),i.autoPreload&&e.emit(bQ.PRELOAD_NEXT),t.abrupt("return",!1);case 17:if(s=e._getLoaderInst(d)){t.next=23;break}if(B=e._getLoader(d)){t.next=22;break}return t.abrupt("return",!1);case 22:s=new B(m(e),e._config);case 23:return e._currentPreloadInst=s,e._currentPreloadInst.setData(r),e._emitEvtByStart(r),t.prev=26,e.log("log","loaderInst.start",d,e.getStartDefinition(),r),t.next=30,s.start(r,e.getStartDefinition());case 30:(c=t.sent)&&c.remove&&(R=Q.indexOf(l))>-1&&Q.splice(R,1),t.next=37;break;case 34:t.prev=34,t.t0=t.catch(26),e.log("error","preload data error!",t.t0);case 37:return t.prev=37,null===(V=e._currentPreloadInst)||void 0===V||V.setData(null),e._currentPreloadInst=null,e._config.autoPreload&&e.emit(bQ.PRELOAD_NEXT),t.finish(37);case 42:return t.abrupt("return",!0);case 43:case"end":return t.stop()}}),t,null,[[26,34,37,42]])}))),e._stats=new qQ(m(e)),e}return u(r,[{key:"VTYPES",get:function(){return dn}},{key:"player",get:function(){return this._player}},{key:"stepwise",get:function(){return this._stepwise}},{key:"realTimeSpeed",get:function(){return this._stats.realTimeSpeed}},{key:"currentPreloadInst",get:function(){return this._currentPreloadInst}},{key:"cacheInst",get:function(){return this._cacheInst}},{key:"preloadDataList",get:function(){return this._preloadDataList}},{key:"log",value:function(e){for(var t,n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];ni&&(t=console)[e].apply(t,["[PreloaderManager]"].concat(U))}},{key:"register",value:function(e){try{if("undefined"==typeof window)return void this.log("preloader in ssr");var t=r.getDefaultConfig();this._config=Object.assign({},t,e.config),this._options=e;var n=this._config,U=n.preloadMaxCacheCount,F=n.preloadCacheType;this._stepwise=!!this._config.stepwise,this._cacheInst=new zQ(U,F),this._selector=e.BitrateSelector,this.on(bQ.PRELOAD_NEXT,this.onPreloadNext);for(var Q=e.loaders,i=0;i<Q.length;i++)this.registerLoader(Q[i].vtype,Q[i])}catch(l){this.log("register error",l)}}},{key:"registerLoader",value:function(e,t){e&&(this._loaders[e]&&this.log("warn","vtype:".concat(e," Preloader already exist")),this._loaders[e]=t,this._loaderInsts[e]=new t(this,this._config))}},{key:"_checkIfCanPreload",value:function(){if(null===this._currentPreloadInst&&this._preloadDataList.length>0){var e=this.findPreloadItem(this._preloadDataList),t=null==e?void 0:e.data;if(this._wipPreloadTask=e,e&&null!=t&&t.payload){if(!this._getPreloaderKey(t))return this.log("warn","need to set vtype"),this.stopCheckTask(),!1;var n=this._config.checkIfCanPreload;return n&&"function"==typeof n?n(t):this._config.autoCheckPreload?this._autoCheckPreload(t,e):(this.stopCheckTask(),!1)}}return!1}},{key:"_autoCheckPreload",value:function(e,t){return this._media?function(e,t,n){if(!e)return!1;var U=$Q(e.buffered,e.currentTime),F=t.startPreloadControl,Q=t.startPreloadMinBuffer,i=t.startPreloadMinPosTime,l=t.minBufferLength;if(F){var r=Math.max(U[1]-e.currentTime,0);if(r>Q){if(e.currentTime>i||e.currentTime>e.duration/2)return null==n||n("log","[checkIfStartPreload] hit buffer",r,"startPreloadMinBuffer",Q),!0}else if(e.currentTime+Q+1>e.duration&&e.currentTime+r>e.duration-1)return null==n||n("log","[checkIfStartPreload] hit end"),!0}else{var a=e.duration>l+5?l:e.duration/2,d=Math.min(e.currentTime+l,e.duration),o=U[1]-d;if(e.currentTime>a&&o>-1)return null==n||n("log","[checkIfStartPreload] hit minPos",a,"minCacheTime",d),!0}return!1}(this._media,this._config,this.log):(this.log("warn","need set video"),!1)}},{key:"_getPreloaderKey",value:function(e){return e.vtype?e.vtype.toUpperCase():""}},{key:"_sort",value:function(e){e.sort((function(e,t){return void 0===e.order&&void 0===t.order||"number"==typeof e.order&&"number"==typeof t.order&&e.order<t.order?-1:1}))}},{key:"_addPlayingVid",value:function(e,t){var n=this._playingVids,U=ei(this._playingVids,"playerId",e);U>-1?n[U].vid=t:n.push({vid:t,playerId:e})}},{key:"selectBeforeStart",value:function(e){var t=e.targetDefinition,n=e.defaultDefinition;if(t)return d({},t);var U=this.getUserSelectDefinition(),F=this.selectBitrate(null==e?void 0:e.payload,n,U),Q=(null==F?void 0:F.vtype)||e.vtype,i=d(d({},F),{},{vtype:Q});return e.targetDefinition=i,this.log("log","selectBeforeStart",null==e?void 0:e.vid,Q,null==F?void 0:F.definition,null==e?void 0:e.payload,F),i}},{key:"selectBitrate",value:function(e,t,n){if(e.length<1)return null;var U=null;if(this._selector){var F,Q,i;U=this._selector.getSuitableBitrate(e,n),this.log("log","BitRateAdapter result",null===(F=U)||void 0===F?void 0:F.vtype,null===(Q=U)||void 0===Q?void 0:Q.definition,null===(i=U)||void 0===i?void 0:i.bitrate)}else{for(var l=-1,r=-1,a=0;a<e.length;a++){var o=e[a];n&&o.definition===n?l=a:t&&o.definition===t&&(r=a)}U=e[l>=0?l:r>=0?r:0]}return d({},U)}},{key:"startCheckTask",value:function(){var e=this,t=this._preloadDataList,n=this._currentPreloadInst,U=this._config.autoCheck;(this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=0),null!=n&&n.taskInProgress&&function(e,t,n){var U=t.endPreloadControl,F=t.endPreloadMinBuffer,Q=t.startPreloadMinBuffer;if(!e)return!1;if(U){if(e.currentTime+Q>=e.duration)return!1;var i=$Q(e.buffered,e.currentTime),l=Math.max(i[1]-e.currentTime,0);if(l<=F)return null==n||n("log","[checkIfCancelPreload] hit buffer:",l,"endPreloadMinBuffer:",F,"video:","".concat(e.currentTime,"/").concat(e.duration)),!0}return!1}(this._media,this._config,this.log))?this.cancelPreloadingTask():0!==t.length&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=setTimeout((function(){e.startCheckTask()}),U.interval))}},{key:"cancelPreloadingTask",value:function(){var e=this._preloadDataList,t=this._wipPreloadTask,n=this._config.endPreloadTaskStrategy;if(this.cancel(),t){var U;if(this.stepwise)"number"==typeof(null===(U=t.data)||void 0===U?void 0:U.stepIdx)&&t.data.stepIdx>-1&&t.data.stepIdx--;else 0!==n&&e.unshift(t);this._emitEvtByCancel(t.data),this._wipPreloadTask=void 0}}},{key:"stopCheckTask",value:function(){this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=-1)}},{key:"getPreloadMetaByVid",value:function(e){for(var t=this.getAllCachedDataKeys(),n=[],U="",F=0;F<t.length;F++){var Q=t[F],i=r.parseKey(Q);i.vid===e&&(U=i.vtype,n.push(Q))}if(0===n.length)return null;var l=this._getLoaderInst(U);return l?l.parseKey(n):null}},{key:"preloadNext",value:function(){this.onPreloadNext()}},{key:"_filterMixPayload",value:function(e,t){var n=t.vtype;if(n&&Array.isArray(e.payload)){var U=e.vtype===n;e.vtype=n,e.payload=e.payload.filter((function(e){return e.vtype===n||U}))}}},{key:"_emitEvtByStart",value:function(e){var t=this._player;if(e&&t)try{this.emit(bQ.PRELOAD_START,this._getEventPayload(e,t))}catch(n){this.log("warn","preload emit start error",null==n?void 0:n.stack)}}},{key:"_emitEvtByCancel",value:function(e){var t=this._player;if(e&&t)try{this.emit(bQ.PRELOAD_CANCEL,this._getEventPayload(e,t))}catch(n){this.log("warn","preload emit cancel error",null==n?void 0:n.stack)}}},{key:"_getEventPayload",value:function(e,t){var n=t.config.vid,U=this._config,F=U.minBufferLength,Q=U.startPreloadControl,i=U.startPreloadMinBuffer,l=U.startPreloadMinPosTime,r=U.endPreloadMinBuffer,a=U.endPreloadControl,d=$Q(t.video.buffered,t.currentTime),o=d[1]?d[1]-t.currentTime:0;return{vid:n,pid:e.vid,buffer:d,bufferHead:o,currentTime:t.currentTime,minBufferLength:F,startPreloadControl:Q,startPreloadMinBuffer:i,startPreloadMinPosTime:l,endPreloadControl:a,endPreloadMinBuffer:r}}},{key:"addPreloadList",value:(i=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._sort(t),n=N(t),e.prev=2,n.s();case 4:if((U=n.n()).done){e.next=10;break}return F=U.value,e.next=8,this._addData(F);case 8:e.next=4;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),n.e(e.t0);case 15:return e.prev=15,n.f(),e.finish(15);case 18:this._checkAutoTask();case 19:case"end":return e.stop()}}),e,this,[[2,12,15,18]])}))),function(e){return i.apply(this,arguments)})},{key:"addPlayingId",value:function(e,t){for(var n=this._preloadDataList,U=-1,F=0;F<n.length;F++){if(e===n[F].data.vid){U=F;break}}if(U>-1){var Q=n.splice(U,1);this.log("log","cancelPreloadByVid remove from list",Q.length>0&&Q[0].data.vid)}var i=this._currentPreloadInst,l=i?i.getData():null;this.log("log","_currentPreloadInst",l),l&&l.vid===e&&this.cancel(),t&&this._addPlayingVid(t,e)}},{key:"removePlayingId",value:function(e){var t=this._playingVids,n=ei(t,"playerId",e);if(n>-1){var U=t.splice(n,1);this.log("log","removePlayingId",U.length>0&&U[0].playerId)}}},{key:"addPreload",value:(Q=c(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._addData(t);case 2:if(e.sent){e.next=5;break}return e.abrupt("return");case 5:this._sort(this._preloadDataList),this._checkAutoTask();case 7:case"end":return e.stop()}}),e,this)}))),function(e){return Q.apply(this,arguments)})},{key:"_addData",value:(F=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,d,s=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.data.vtype){e.next=3;break}return this.log("warn","vtype is null, can·t select loader"),e.abrupt("return",!1);case 3:if(n=t.data,U=this._getLoader(n.vtype)){e.next=8;break}return this.log("warn","the loader for ".concat(n.vtype," not registered")),e.abrupt("return",!1);case 8:if(F=this._playingVids,!((Q=ei(F,"vid",t.data.vid))>=0)){e.next=14;break}return i=F[Q],this.log("log","vid:".concat(i.vid," is already instantiated and loaded, playerId is ").concat(i.playerId)),e.abrupt("return");case 14:return l=this._getUniqueKey(t),e.next=17,this.getItem(t.data,!0);case 17:if(!(r=e.sent)){e.next=22;break}if(!U.isUniqueCache(r)){e.next=22;break}return this.log("log","".concat(l," already exist in cache")),e.abrupt("return",!1);case 22:if(!this._currentPreloadInst){e.next=29;break}if(!(a=this._currentPreloadInst.getData())){e.next=29;break}if(this._getUniqueKey({data:a,order:0})!==l){e.next=29;break}return this.log("log","currentKey repeat"),e.abrupt("return");case 29:if(d=this._preloadDataList.filter((function(e){return s._getUniqueKey(e)===l})),this.log("log","addedItems",l,d),0!==d.length){e.next=35;break}return this._stepwise&&void 0===t.data.steps&&(t.data.steps=[0]),this._preloadDataList.push(t),e.abrupt("return",!0);case 35:return this.log("log","".concat(l," already exist in preloadList")),e.abrupt("return",!1);case 37:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"_getUniqueKey",value:function(e){return e.data.vtype?r.generateUniqueCacheKey(e.data):e.data.vid}},{key:"_checkAutoTask",value:function(){var e=this,t=this._config,n=t.autoCheck,U=t.autoPreload;Promise.resolve().then((function(){U&&e.emit(bQ.PRELOAD_NEXT),n.enable&&!e._taskIntervalId&&e.startCheckTask()}))}},{key:"setItem",value:function(e,t,n,U){var F=r.generateUniqueCacheKey(e);if(!n){var Q=this._getLoader(e.vtype);if(!Q)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);t=h({},Q.generateUniqueKey(e),t)}return this._cacheInst.setItem(F,t,U)}},{key:"getItem",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,U=r.generateUniqueCacheKey(e),F=this._getLoader(e.vtype);if(!F)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);var Q=t?"":F.generateUniqueKey(e);return this._cacheInst.getItem(U,n,Q)}},{key:"getItemSync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,U=r.generateUniqueCacheKey(e),F=this._getLoader(e.vtype);if(!F)return this.log("warn","no ".concat(e.vtype," preloader, register")),!1;var Q=t?"":F.generateUniqueKey(e);return this._cacheInst.getItemSync(U,n,Q)}},{key:"supportSync",value:function(){return this._cacheInst.supportSync()}},{key:"removeItem",value:function(e,t){var n=r.generateUniqueCacheKey(e);return this._cacheInst.removeItem(n,t)}},{key:"getPreLoadData",value:(U=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vtype,!(U=this._getLoaderInst(n))){e.next=7;break}return e.next=5,U.getPreLoadData(t);case 5:return F=e.sent,e.abrupt("return",F);case 7:return e.abrupt("return",null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=e.vtype,n=this._getLoaderInst(t);return n?n.getPreLoadDataSync(e):null}},{key:"removeAll",value:function(){var e=this;this.getAllCachedDataKeys().forEach((function(t){var n=e.getPreloadMetaByVid(t.split("#")[0]);n&&e.removeItem(n,null)}))}},{key:"removeAllPreloadTask",value:function(){this.cancel(),this._preloadDataList=[],this._playingVids=[]}},{key:"disable",value:function(){this._isOpen=!1,this.stopCheckTask()}},{key:"enable",value:function(){this._isOpen=!0,this._config.autoCheck.enable&&!this._taskIntervalId&&this._preloadDataList.length>0&&this.startCheckTask()}},{key:"setUserSelectDefinition",value:function(e){this._userDefinition=e}},{key:"getUserSelectDefinition",value:function(){return this._userDefinition||null}},{key:"getStartDefinition",value:function(){return this._startDefinition}},{key:"setStartDefinition",value:function(e){this._startDefinition=e}},{key:"destroy",value:(n=c(o().mark((function e(){var t,n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._stats.destroy(),t=Object.keys(this._loaderInsts),n=0;case 3:if(!(n<t.length)){e.next=12;break}if(U=t[n],!(F=this._getLoaderInst(U))){e.next=9;break}return e.next=9,F.destroy();case 9:n++,e.next=3;break;case 12:this.removeAllListeners(),this._loaderInsts={},this._loaders={},this._playingVids=[],this.detachPlayer();case 17:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"cancel",value:(t=c(o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._currentPreloadInst){e.next=4;break}return e.next=3,this._currentPreloadInst.cancel();case 3:null===(t=this._currentPreloadInst)||void 0===t||t.setData(null);case 4:this._currentPreloadInst=null;case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"removeByPlayInst",value:function(e,t){for(var n=this._preloadDataList.length-1;n>-1;n--){var U=this._preloadDataList[n];if(U.data.vid===e&&U.playerId===t){this._preloadDataList.splice(n,1);break}}}},{key:"getAllCachedDataKeys",value:function(){var e;return(null===(e=this._cacheInst)||void 0===e?void 0:e.getAllCachedDataKeys())||[]}},{key:"getDataUniqueKey",value:function(e){var t=this._getLoader(e.vtype);return!!t&&t.generateUniqueKey(e)}},{key:"hasItemSameVid",value:function(e){var t=this._getLoader(e.vtype),n=this._getLoaderInst(e.vtype);if(t&&n){var U=t.generateUniqueKey(e);return n.hasItemSameVid(U)}return!1}},{key:"_getLoader",value:function(e){e=e||"";var t=this._loaders[e]||this._loaders[e.toLocaleLowerCase()];return t||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"_getLoaderInst",value:function(e){e=e||"";var t=this._loaderInsts[e]||this._loaderInsts[e.toLocaleLowerCase()];return t||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"getPreloadMemoryInfo",value:function(){return this._cacheInst.getMemoryInfo()}},{key:"attachPlayer",value:function(e){this._player=e,this._media=e.video||e.media}},{key:"detachPlayer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&this._player!==e||(this._player=null,this._media=null)}},{key:"setPreloadBandwidth",value:function(e,t){this._stats.setPreloadBandwidth(e,t)}},{key:"getPreloadBandwidth",value:function(e){return this._stats.getPreloadBandwidth(e)}},{key:"getLoadInfoAndDelete",value:function(e){return this._stats.getLoadInfoAndDelete(e)}},{key:"getPreloadUnuseInfo",value:function(){return this._stats.getPreloadUnuseInfo()}},{key:"setUsePreloadInfo",value:function(e,t){this._stats.setUsePreloadInfo(e,t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,U=e.size,F=e.speed,Q=e.cacheKey,i=e.vtype,l=e.duration,r=e.bitrate,a=J(e,ti);this._stats.bwEventEmit(d({vid:t,loadType:n,size:U,speed:F,cacheKey:Q,vtype:i,duration:l,bitrate:r},a))}},{key:"findPreloadItem",value:function(e){var t,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this._stepwise){var U=e.reduce((function(e,t){return void 0===t.data.stepIdx||"number"==typeof t.data.stepIdx&&"number"==typeof e.data.stepIdx&&t.data.stepIdx<e.data.stepIdx?t:e})),F=e.filter((function(e){return e.data.stepIdx===U.data.stepIdx}));if(F.length>1&&this._sort(F),t=F[0],!n){if("number"!=typeof t.data.stepIdx&&(t.data.stepIdx=-1),t.data.stepIdx++,Array.isArray(t.data.steps)&&t.data.stepIdx>=t.data.steps.length-1){var Q=e.indexOf(t);e.splice(Q,1)}t.data.stepIdx===1/0&&(t=void 0)}}else t=n?e[0]:e.shift();return t}},{key:"updateConfig",value:function(e){Object.assign(this._config,e);var t=this._config.autoCheck;t&&!t.enable&&this.stopCheckTask(),t&&t.enable&&this.startCheckTask()}},{key:"preProcessUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this._config,U=n.preProcessUrl,F=n.preProcessUrlOptions;return"function"==typeof U?U(e,Object.assign({},F,t)):{url:e}}}],[{key:"getDefaultConfig",value:function(){return{autoPreload:!1,autoCheck:{enable:!1,interval:1e3},preloadMaxCacheCount:5,preloadCacheType:NQ.MEMORY,autoCheckPreload:!0,startPreloadControl:!1,startPreloadMinBuffer:5,startPreloadMinPosTime:5,minBufferLength:5,endPreloadControl:!1,endPreloadTaskStrategy:0}}},{key:"generateUniqueCacheKey",value:function(e){var t=e.vid,n=e.codecType,U=e.vtype;return"".concat(t,"#").concat(n,"#").concat(U.toUpperCase())}},{key:"parseKey",value:function(e){if(!e)throw new Error("key ".concat(e," is empty"));var t=e.split("#");if(t.length<5)throw new Error("key ".concat(e," is not right format"));return{vid:t[0],mediaType:t[1],codecType:t[2],vtype:t[3],definition:t[4]}}},{key:"debugger",set:function(e){ni=!!e}}]),r}(Qt),Fi=function(e){Z(i,e);var t,n,U,F,Q=W(i);function i(e,t){var n;return R(this,i),(n=Q.call(this))._data=null,n.preloadManager=e,n._config=t,n.promisePolyfill(),n}return u(i,[{key:"taskInProgress",get:function(){return!1}},{key:"stepwise",get:function(){return this.preloadManager.stepwise}},{key:"getRequestOption",value:function(e){var t=this._config,n=t.getRequestOptionsCallback,U=t.reqOptions,F={};return e?F=e.reqOptions?e.reqOptions:"function"==typeof n?n(e):U||{}:F}},{key:"getUserSelectDefinition",value:function(){return this.preloadManager.getUserSelectDefinition()}},{key:"selectBitrate",value:function(e,t,n){return this.preloadManager.selectBitrate(e,t,n)}},{key:"promisePolyfill",value:function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var t=function(t){return Promise.resolve(e()).then(t)};return this.then((function(e){return t((function(){return e}))}),(function(e){return t((function(){return Promise.reject(e)}))}))}}.finally)}},{key:"getData",value:function(){return this._data}},{key:"setData",value:function(e){this._data=e}},{key:"start",value:(F=c(o().mark((function e(t,n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("start need implement, return Promise");case 1:case"end":return e.stop()}}),e)}))),function(e,t){return F.apply(this,arguments)})},{key:"cancel",value:(U=c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("cancel need implement, cancel current preload request");case 1:case"end":return e.stop()}}),e)}))),function(){return U.apply(this,arguments)})},{key:"getPreLoadData",value:(n=c(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("getPreLoadData not implement");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){return null}},{key:"hasItemSameVid",value:function(e){return!0}},{key:"destroy",value:(t=c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve());case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"parseKey",value:function(e){return Ui.parseKey(e[0])}}],[{key:"generateUniqueKey",value:function(e){throw new Error("generateUniqueCacheKey need implement, return string")}},{key:"vtype",get:function(){throw new Error("need vtype")}},{key:"isUniqueCache",value:function(e){return!0}}]),i}(Qt),Qi="TOP",ii="FEED";function li(e){e.duration=e.dashOpts.Data.Duration,e.dashOpts.dynamic_video=e.dashOpts.Data,e.dashOpts.dynamic_video.dynamic_video_list=[],e.dashOpts.dynamic_video.dynamic_audio_list=[],e.dashOpts.dynamic_video.dynamic_type=e.dashOpts.Data.AdaptiveInfo.AdaptiveType,e.dashOpts.dynamic_video.main_url=e.dashOpts.Data.AdaptiveInfo.MainPlayUrl;for(var t=0;t<e.dashOpts.Data.PlayInfoList.length;t++){var n=e.dashOpts.Data.PlayInfoList[t],U={backup_url_1:n.BackupPlayUrl,bitrate:e.dashOpts.Data.VideoID?n.Bitrate:1e3*n.Bitrate,check_info:n.CheckInfo,codec_type:n.Codec,definition:n.Definition,encrypt:!(!n.PlayAuth||!n.PlayAuthID&&!n.PlayAuthId),file_hash:n.FileHash||n.Md5,file_id:n.FileID,index_range:n.IndexRange,init_range:n.InitRange,kid:n.PlayAuthID||n.PlayAuthId,logo_type:n.Logo||n.LogoType,main_url:n.MainPlayUrl,preload_interval:n.PreloadInterval,preload_max_step:n.PreloadMaxStep,preload_min_step:n.PreloadMinStep,preload_size:n.PreloadSize,quality:n.Quality,size:n.Size,spade_a:n.PlayAuth,vheight:n.Height,vtype:n.Format,vwidth:n.Width};"video"===n.MediaType||"video"===n.FileType?e.dashOpts.dynamic_video.dynamic_video_list.push(U):"audio"!==n.MediaType&&"audio"!==n.FileType||e.dashOpts.dynamic_video.dynamic_audio_list.push(U)}}function ri(e){var t=e.dashOpts.dynamic_video=e.dashOpts.Data;t.video_duration=t.duration,t.dynamic_video_list=[],t.dynamic_audio_list=[],e.dashOpts.dynamic_video.dynamic_type="segment_base";for(var n=t.playInfoList||t.payload,U=0;U<n.length;U++){var F,Q,i,l=n[U];if(l.vtype.toUpperCase()===dn.DASH)l.main_url=null===(F=l.url[0])||void 0===F?void 0:F.src,l.backup_url_1=null===(Q=l.url[1])||void 0===Q?void 0:Q.src,l.fallback_url=null===(i=l.url[2])||void 0===i?void 0:i.src,l.codec_type="bytevc1"===l.codecType?"h265":l.codecType,"video"===l.mediaType&&t.dynamic_video_list.push(l),"audio"===l.mediaType&&t.dynamic_audio_list.push(l)}}function ai(e,t){var n;t.selectedIdx=0;var U=null===(n=e[e.selectedIdx])||void 0===n?void 0:n.audioFileId;if(!U)return 0;for(var F=0;F<t.length;F++)if(t[F].fileId===U)return F;return 0}var di=["app_id","trackerUrl","sid","task_type"],oi="close",si="open",Bi="forbidden",ci=1,Ri=0,Vi=1;var ui={enterMinBuffer:10,minDuration:25,openPreloadPCDN:!1,outMaxBuffer:5,openPCDN:!1,trackerUrl:"https://vc-gate.ndcpp.com/sdk/get_peer",withReferer:1},hi=function(){function e(t,n,U,F,Q,i){R(this,e),this._pcdnNodes=null,this._cachedPcdn={},this._PCDNState=oi,this._retryInfo={},this._bitrate2file={},this._isOpenPCDN=!1,this._duration=0,this._vid="",this._tag="",this._isUseCDN=!1,this._lastPCDNUrl="",this.pcdn_download_request_cnt=0,this.pcdn_download_failed_cnt=0,this._PCDNSwitchCnt=0,this.pcdn_tracker_failed_cnt=0,this.pcdn_tracker_request_cnt=0,this._pcdnVVStat={try_req_node:0,req_node_succ:0,has_ret_node:0,conn_req_num:0,conn_fail_num:0,conn_jump_num:0,pSCCancelCnt:0},this._pcdnConfig=Object.assign({},ui,t),this._isOpenPCDN=n,this.updateConfig({vid:F,duration:U}),this._player=Q,this._tag=i}var t,n,U,F,Q,i;return u(e,[{key:"getPCDNReqId",value:function(e){var t=e.uri||this._vid;return this._getPCDNReqIdBitrate(t,e.bitrate)}},{key:"_getPCDNReqIdBitrate",value:function(e,t){return e.slice(-20)+t}},{key:"_createFileInfo",value:function(e){var t=e.file_id||e.fileId,n=e.main_url||e.baseURL;(function(e){return/^http(s)?:\/\/.+/.test(e)})(n)||(n=document.location.protocol+n);return{vid:this._vid,cdn_url:n,file_type:"dash",sfid:t,bitrate:e.bitrate,duration:Math.floor(this._duration||0),size:e.size}}},{key:"checkPCDN",value:(i=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,s,B,c,R,V;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._vid){e.next=3;break}return console&&console.warn("PCDN service need vid, vid is undefiend, pass vid by dashplugin"),e.abrupt("return");case 3:if(!((null===(n=this._pcdnConfig)||void 0===n?void 0:n.openPCDN)&&this._isOpenPCDN&&this._duration>=this._pcdnConfig.minDuration&&t)){e.next=24;break}if(U=t.bitrate,!(F=this._cachedPcdn[U])){e.next=12;break}if(Q=F.pcdnNodeList,i=F.pcdnTraceInfo,!(Q&&Q.length>0&&i)){e.next=12;break}return this._pcdnTraceInfo=i,e.abrupt("return");case 12:return l=this._pcdnConfig,r=l.app_id,a=l.trackerUrl,s=l.sid,B=l.task_type,c=J(l,di),R=t.file_id||t.fileId,V=this._createFileInfo(t),this._bitrate2file[t.bitrate]=R,this._pcdn?(pt.log(this._tag,"resetTrackeArgs"),this._pcdn.resetTrackeArgs()):this._pcdn=new VU(d({productConfig:{app_id:r,sid:s,task_type:B||Vi},trackerUrl:a},c),this._player,V.bitrate,V.duration),e.prev=17,e.next=20,this.getPCDNNode(t.bitrate,t);case 20:e.next=24;break;case 22:e.prev=22,e.t0=e.catch(17);case 24:case"end":return e.stop()}}),e,this,[[17,22]])}))),function(e){return i.apply(this,arguments)})},{key:"setSetRetryInfo",value:function(e){var t=WU.getHostFromUrl(e);this._retryInfo[t]=!0}},{key:"_updateNodeList",value:function(e,t){var n=this;if(e&&e.nodes){var U,F={pcdnNodeList:e.nodes.filter((function(e){if(!Object.prototype.hasOwnProperty.call(n._retryInfo,WU.getHostFromUrl(null==e?void 0:e.url)))return e})),pcdnTraceInfo:{uri:e.vid,fid:e.fid,trace_id:e.trace_id}},Q=this._bitrate2file[t];if(null!==(U=e.fid)&&void 0!==U&&U.includes(Q))this._cachedPcdn[t]=F,this._pcdnTraceInfo=F.pcdnTraceInfo,pt.log(this._tag,"_updateNodeList",JSON.stringify(this._cachedPcdn));else{var i=8*function(e){return Math.floor(e/8)}(t);i===e.bitrate&&(this._cachedPcdn[t]=F,pt.log(this._tag,"_updateNodeList not file not match cachedFileid",Q,"pcdnRet"))}}}},{key:"isUpdateNode",value:function(e){var t=this._getNodeListByBitrate(e);return!t||!t.length}},{key:"selectedPCDN",value:function(e,t){var n;if(null===(n=this._pcdnConfig)||void 0===n?void 0:n.openPCDN){if(this._PCDNState!==Bi&&!e){var U;if(this.isUsePCDN(t)){this._isUseCDN=!1;var F=this._getNodeListByBitrate(t);F&&(U=F[0].url,this._lastPCDNUrl!==U&&(this._lastPCDNUrl=U,this._pcdnVVStat.conn_req_num+=1),this.pcdn_download_request_cnt++)}else this._isUseCDN||(this._PCDNSwitchCnt++,this._pcdnVVStat.conn_jump_num+=1,this._PCDNSwitchCnt>=this._pcdnConfig.switchPCDNMaxCnt&&this.updatePCDNState(Bi,(function(){}))),this._isUseCDN=!0;return U}this._isUseCDN=!0}}},{key:"isUsePCDN",value:function(e){var t=this._getNodeListByBitrate(e);return this._PCDNState===si&&t&&t.length>0}},{key:"_getNodeListByBitrate",value:function(e){var t=this._cachedPcdn[e];return t?t.pcdnNodeList:null}},{key:"getPCDNInOUtBuffer",value:function(){var e,t,n,U=null===(e=this._pcdnConfig)||void 0===e?void 0:e.openPCDN,F=this._pcdnConfig,Q=null===(t=this._pcdn)||void 0===t?void 0:t.getPCDNInBuffer(),i=null===(n=this._pcdn)||void 0===n?void 0:n.getPCDNOutBuffer(),l=Q||(null==F?void 0:F.enterMinBuffer)||(null==F?void 0:F.minBuffer)||-1,r=i||(null==F?void 0:F.outMaxBuffer)||-1;return{PCDNInBuffer:U?l:-1,PCDNOutBuffer:U?r:-1}}},{key:"isOpenPCDN",value:function(e,t,n,U){var F;if(null===(F=this._pcdnConfig)||void 0===F?void 0:F.openPCDN){var Q=this.getPCDNInOUtBuffer(),i=Q.PCDNInBuffer,l=Q.PCDNOutBuffer;e>=i?this._doOpenPCDN(t,U):e<l&&this.updatePCDNState(oi,n)}}},{key:"_emptyCancel",value:function(){}},{key:"_doOpenPCDN",value:(Q=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.updatePCDNState(si,this._emptyCancel),null===(U=this._pcdn)||void 0===U||U.updatePCDNBitrate(t),!this.isUpdateNode(t)){e.next=5;break}return e.next=5,this.getPCDNNode(t,n);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return Q.apply(this,arguments)})},{key:"openPCDNForce",value:(F=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(U=this._pcdnConfig)||void 0===U?void 0:U.openPCDN){e.next=3;break}return e.abrupt("return");case 3:return this._PCDNState=si,e.next=6,this.checkPCDN(n);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return F.apply(this,arguments)})},{key:"updatePCDNState",value:(U=c(o().mark((function e(t,n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==Bi){e.next=5;break}this._PCDNState=t,pt.log(this._tag,"updatePCDNState",Bi),e.next=16;break;case 5:if(this._PCDNState===Bi||this._PCDNState===t){e.next=16;break}if(this._isUseCDN||t!==oi||this._PCDNState===oi){e.next=14;break}return this._PCDNState=t,pt.log(this._tag,"updatePCDNState",oi),e.next=11,n();case 11:this._pcdnVVStat.pSCCancelCnt++,e.next=16;break;case 14:this._PCDNState=t,pt.log(this._tag,"updatePCDNState",t);case 16:case"end":return e.stop()}}),e,this)}))),function(e,t){return U.apply(this,arguments)})},{key:"getPCDNNode",value:(n=c(o().mark((function e(t,n){var U,F,Q,i,l,r,a,d;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pcdn){e.next=2;break}return e.abrupt("return",null);case 2:if(e.prev=2,F=n.mediaType,Q=this._lastfetchNodeTime[F]||0,!((i=Date.now())-Q<this._pcdn.options.NULLNodeTimeStep)){e.next=8;break}return e.abrupt("return");case 8:return this._lastfetchNodeTime[F]=i,l=this._getPCDNReqIdBitrate(this._vid,t),r=this._createFileInfo(n),e.next=13,this._pcdn.fetchPCDNNode(null,r,l);case 13:if(a=e.sent,d=this._getPCDNReqIdBitrate(this._vid,t),null==a||!a.req_id||d===a.req_id){e.next=18;break}return pt.log("getPCDNNode is not match curDefinition reqId",l,", pcdnRet.req_id",a.req_id),e.abrupt("return");case 18:a&&this._updateNodeList(a,t),this._pcdnVVStat.try_req_node+=1,this._pcdnVVStat.req_node_succ+=1,this._pcdnVVStat.has_ret_node+=(null==a||null===(U=a.nodes)||void 0===U?void 0:U.length)>0?1:0,e.next=28;break;case 24:e.prev=24,e.t0=e.catch(2),this._pcdnVVStat.try_req_node+=1,console.log("err",e.t0);case 28:case"end":return e.stop()}}),e,this,[[2,24]])}))),function(e,t){return n.apply(this,arguments)})},{key:"removePCDNNode",value:(t=c(o().mark((function e(t,n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pcdn){e.next=2;break}return e.abrupt("return",null);case 2:return pt.log(this._tag,"removePCDNNode",t,n),this.pcdn_download_failed_cnt++,this._pcdnVVStat.conn_fail_num++,this._cachedPcdn[t]=null,e.next=8,this._pcdn.removePCDNNode(this._vid,t,n);case 8:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"pcdnReqCnt",get:function(){var e=VU.pcdnReqCnt;return{pcdn_download_request_cnt:this.pcdn_download_request_cnt,pcdn_download_failed_cnt:this.pcdn_download_failed_cnt,pcdn_tracker_request_cnt:e.pcdn_tracker_request_cnt,pcdn_tracker_failed_cnt:e.pcdn_tracker_failed_cnt}}},{key:"pcdnVVStat",get:function(){var e;return Object.assign({},this._pcdnVVStat,{is_try_open:1,trace_id:null===(e=this._pcdnTraceInfo)||void 0===e?void 0:e.trace_id})}},{key:"updateConfig",value:function(e){var t=e.vid,n=e.duration;this._vid=t,this._duration=n,this._lastfetchNodeTime={audio:0,video:0}}}]),e}();var Zi=function(){function e(t,n){R(this,e),this._mediaTypeToServiceType={audio:null,video:null},this._useSeparationMode=!1;var U=t.config,F=t.isOpenPCDN,Q=t.videoDuration,i=t.uri,l=U.pcdnConfig,r=U.useSeparationMode;this._useSeparationMode=r,r?(this._mediaTypeToServiceType.video=this._createPCDNService(l,F,Q,i,n,"video_PCDN"),this._mediaTypeToServiceType.audio=this._createPCDNService(l,F,Q,i,n,"audio_PCDN")):this._pcdn=this._createPCDNService(l,F,Q,i,n,"all_PCDN")}var t,n;return u(e,[{key:"openPCDNForce",value:(n=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this._getPCDNService(n.mediaType),e.next=3,U.openPCDNForce(t,n);case 3:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"_getPCDNService",value:function(e){return this._useSeparationMode?this._mediaTypeToServiceType[e]:this._pcdn}},{key:"checkPCDN",value:function(e){var t=this._getPCDNService(e.mediaType);null==t||t.checkPCDN(e)}},{key:"_createPCDNService",value:function(e,t,n,U,F,Q){return new hi(e,t,n,U,F,Q)}},{key:"selectedPCDN",value:function(e,t,n){var U=this._getPCDNService(e);return null==U?void 0:U.selectedPCDN(t,n)}},{key:"isOpenPCDN",value:function(e,t,n,U,F){var Q=this._getPCDNService(e);null==Q||Q.isOpenPCDN(t,n,U,F)}},{key:"setSetRetryInfo",value:function(e,t){var n=this._getPCDNService(e);null==n||n.setSetRetryInfo(t)}},{key:"removePCDNNode",value:(t=c(o().mark((function e(t,n,U){var F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return F=this._getPCDNService(t),e.next=3,null==F?void 0:F.removePCDNNode(n,U);case 3:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.apply(this,arguments)})},{key:"getPCDNInOUtBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"video",t=this._getPCDNService(e);return null==t?void 0:t.getPCDNInOUtBuffer()}},{key:"pcdnVVStat",get:function(){var e=this;if(!this._useSeparationMode)return this._pcdn.pcdnReqCnt;var t,n,U={};if(!this._mediaTypeToServiceType.video||!this._mediaTypeToServiceType.audio)return(null===(t=this._mediaTypeToServiceType.video)||void 0===t?void 0:t.pcdnReqCnt)||(null===(n=this._mediaTypeToServiceType.audio)||void 0===n?void 0:n.pcdnReqCnt)||{};var F=this._mediaTypeToServiceType.video.pcdnReqCnt,Q=this._mediaTypeToServiceType.audio.pcdnReqCnt;return Object.keys(F).forEach((function(t){U[t]=e._getValue(t,F)+e._getValue(t,Q)})),U}},{key:"pcdnReqCnt",get:function(){var e,t,n,U,F=this;if(!this._useSeparationMode)return this._pcdn.pcdnVVStat;if(!this._mediaTypeToServiceType.video||!this._mediaTypeToServiceType.audio)return(null===(n=this._mediaTypeToServiceType.video)||void 0===n?void 0:n.pcdnVVStat)||(null===(U=this._mediaTypeToServiceType.audio)||void 0===U?void 0:U.pcdnVVStat)||{};var Q={},i=["is_try_open","trace_id"],l=null===(e=this._mediaTypeToServiceType.video)||void 0===e?void 0:e.pcdnVVStat,r=null===(t=this._mediaTypeToServiceType.audio)||void 0===t?void 0:t.pcdnVVStat;return Object.keys(l).forEach((function(e){i.includes(e)?Q[e]=l[e]||r[e]:Q[e]=F._getValue(e,l)+F._getValue(e,r)})),Q}},{key:"_getValue",value:function(e,t){return t[e]||0}},{key:"updateConfig",value:function(e,t){this._getPCDNService(e).updateConfig(t)}}]),e}(),Si=function(e){Z(a,e);var t,n,U,F,Q,i,l,r=W(a);function a(e,t){var n;return R(this,a),(n=r.call(this,e,t))._loader=new ki({loaderCount:1,loaderType:Ye},e,"preloader"),n._loader.on(Bn,(function(t){if((null==t?void 0:t.len)>0){var U,F,Q=(null==t||null===(U=t.priOptions)||void 0===U?void 0:U.type)||cn,i=Math.round(8*t.len*1e3/t.time/1024),l=null==t?void 0:t.priOptions.extData,r=l.cacheKey,a=null===(F=n._pendingItem)||void 0===F?void 0:F.duration,d={vid:l.vid,loadType:Q,size:t.len,speed:i,cacheKey:r,vtype:dn.DASH,duration:a,bitrate:l.bitrate,range:t.range,mediaType:l.mediaType,format:dn.DASH,segmentDuration:null==l?void 0:l.segmentDuration};e.bwEventEmit(d)}})),n.options=t,n._pendingTask=null,n}return u(a,[{key:"_setItem",value:(l=c(o().mark((function e(t,n){var U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.vtype=dn.DASH,e.next=3,this.preloadManager.getItem(t,!0);case 3:(U=e.sent)?(F=Object.assign({},U,n),this.preloadManager.setItem(t,F,!0)):this.preloadManager.setItem(t,n,!0);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return l.apply(this,arguments)})},{key:"_processItemUrl",value:function(e){this.preloadManager.preProcessUrl&&(e.main_url=this.preloadManager.preProcessUrl(e.main_url).url,e.backup_url_1=this.preloadManager.preProcessUrl(e.backup_url_1).url,e.fallback_url=this.preloadManager.preProcessUrl(e.fallback_url).url)}},{key:"_getDashContext",value:function(e){var t=this,n=e.payload;if("TOP"===e.playInfoType){var U={dashOpts:e.payload};li(U),n=U.dashOpts.dynamic_video}if(Array.isArray(n)){var F={dashOpts:{Data:e,dynamic_video:e}};ri(F),n=F.dashOpts.dynamic_video}return n.dynamic_video_list&&n.dynamic_video_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate,t._processItemUrl(e)})),n.dynamic_audio_list&&n.dynamic_audio_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate,t._processItemUrl(e)})),{dynamic_video:n}}},{key:"_getStartContext",value:function(){return{mediaInfos:{dynamic_video_list:[],dynamic_audio_list:[]},vtype:"",video:{segments:[]},audio:{segments:[]}}}},{key:"_cacheInitSegments",value:(i=c(o().mark((function e(t,n,U,F){var Q,i,l,r,a,d,s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=t.mediaList.video||[],i=t.mediaList.audio||[],l=[],i&&i.length>0&&(r=this.makeInitBaseSegemntRequest(t,n.duration,"audio",i.selectedIdx,void 0,n.vid),l.push(r)),Q&&Q.length>0&&(a=this._calVideoItemIdx(Q,F.bandwidth)||0,d=Q[a].definition,s=this.makeInitBaseSegemntRequest(t,n.duration,"video",a,d,n.vid),l.push(s)),e.next=7,Promise.all(l);case 7:e.sent.forEach((function(e){"video"===e.data.mediaType&&(e.data.orgDefinition=F.orgDefinition),U[e.key]=e.data}));case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,n,U){return i.apply(this,arguments)})},{key:"start",value:(Q=c(o().mark((function e(t,n){var U,F,Q,i,l,r,a,s,B,c,R,V,u,h,Z,S,p,J,m,W,k,E,y,f,b,v,T,C,g,D,X,L,I,G,M,Y,w,K,_,j=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=Promise.withResolvers(),r=l.resolve,a=l.promise,s={},this._pendingTask={resolve:r,data:t,map:s},B=new x,c=this._getDashContext(t),R=new fQ("anytext",c,this),V=this._getStartContext(),u=function(){V.mediaInfos.dynamic_video_list=R.mediaList.video||[],V.mediaInfos.dynamic_audio_list=R.mediaList.audio||[],B.resolve(V)},R.once("ready",u),R.init(),e.next=12,B;case 12:if(this._pendingTask){e.next=15;break}return r({remove:!this.stepwise}),e.abrupt("return",a);case 15:if(h=new x,Z=V.mediaInfos,S=this._getIdx(Z.dynamic_video_list,n||t.defaultDefinition),p=Z.dynamic_video_list[S]||Z.dynamic_video_list[0],Z.dynamic_video_list[S]&&R.mediaList.audio&&Z.dynamic_audio_list.length>0&&(R.mediaList.video.selectedIdx=S,J=ai(R.mediaList.video,R.mediaList.audio),pt.log("audio definition preload",J),R.mediaList.audio.selectedIdx=J),null===(U=this.options)||void 0===U||null===(F=U.pcdnConfig)||void 0===F||!F.openPreloadPCDN||null===(Q=this.options)||void 0===Q||null===(i=Q.pcdnConfig)||void 0===i||!i.openDASHPreloadPCDN||"segment_template"===R.dashType){e.next=36;break}if(m=this.options.pcdnConfig,!((W=c.dynamic_video.dynamic_video_list.filter((function(e){return e.definition===p.definition})))&&W.length>0)){e.next=36;break}if(k=W[0],E=k.duration,y=k.uri,this._pcdn?this._pcdn.updateConfig("video",{vid:y,duration:E}):(f={pcdnConfig:m},this._pcdn=new Zi({config:f,isOpenPCDN:!0,videoDuration:E,uri:y},null)),!Z.dynamic_video_list[S]){e.next=30;break}return p.bitrate||(p.bitrate=p.bandwidth),e.next=30,this._pcdn.openPCDNForce(p.bitrate||p.bandwidth,d({mediaType:"video"},p));case 30:if(!(R.mediaList.audio&&Z.dynamic_audio_list.length>0)){e.next=36;break}return b=R.mediaList.audio,(v=b[b.selectedIdx]).bitrate||(v.bitrate=v.bandwidth),e.next=36,this._pcdn.openPCDNForce(v.bitrate||v.bandwidth,d({mediaType:"audio"},v));case 36:if(this._pendingItem=p,this._pendingItem.duration||(this._pendingItem.duration=t.duration),T={bandwidth:p.bitrate||p.bandwidth,time:t.startTime||0,orgDefinition:p.orgDefinition},C=[],e.prev=40,L=void 0===t.video||0===(null===(g=t.video.segments)||void 0===g?void 0:g.length),void 0===t.stepIdx&&(t.stepIdx=0),void 0===t.steps&&(t.steps=[0]),0!==t.stepIdx&&!L){e.next=59;break}if("segment_template"!==R.dashType){e.next=50;break}this._calRequests(R,T,h,t,!0),h.resolve(),e.next=57;break;case 50:if(0!==t.stepIdx){e.next=56;break}return e.next=53,this._cacheInitSegments(R,t,s,T);case 53:this._calRequests(R,T,h,t),e.next=57;break;case 56:h.resolve([]);case 57:e.next=60;break;case 59:h.resolve([]);case 60:return e.next=62,h;case 62:if(C=e.sent,this._setItem(t,s),this._pendingTask){e.next=67;break}return r({remove:!this.stepwise}),e.abrupt("return",a);case 67:I=this.stepwise?t.stepIdx:0,G=[null===(D=t.video)||void 0===D?void 0:D.segments[I],null===(X=t.audio)||void 0===X?void 0:X.segments[I]],M=(C||[]).concat(G).filter((function(e){return Boolean(e)})),Y=[],w=N(M),e.prev=72,_=o().mark((function e(){var n,U,F,Q,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=K.value,U=n.url,F=n.range,Q=n.extData,i=j._getData(U,F,Q).then((function(e){if("video"===e.mediaType&&(e.orgDefinition=T.orgDefinition),!e.fromCache){var n=Q.cacheKey;s[n]=e,j._setItem(t,s)}})),Y.push(i);case 4:case"end":return e.stop()}}),e)})),w.s();case 75:if((K=w.n()).done){e.next=79;break}return e.delegateYield(_(),"t0",77);case 77:e.next=75;break;case 79:e.next=84;break;case 81:e.prev=81,e.t1=e.catch(72),w.e(e.t1);case 84:return e.prev=84,w.f(),e.finish(84);case 87:return e.next=89,Promise.all(Y);case 89:e.next=94;break;case 91:e.prev=91,e.t2=e.catch(40),console.warn&&console.warn("catch no reqeuset",e.t2);case 94:return e.prev=94,r({remove:!this.stepwise}),e.finish(94);case 97:return this._pendingTask=null,e.abrupt("return",a);case 99:case"end":return e.stop()}}),e,this,[[40,91,94,97],[72,81,84,87]])}))),function(e,t){return Q.apply(this,arguments)})},{key:"_getIdx",value:function(e,t){var n=0;return e.forEach((function(e,U){e.definition===t&&(n=U)})),n}},{key:"_calRequests",value:function(e,t,n,U){var F=arguments.length>4&&void 0!==arguments[4]&&arguments[4],Q=[],i=t.bandwidth,l=e.mediaList.video||[],r=e.mediaList.audio||[],a=U.vid,d=e.videoCodecType;if(r&&r.length>0){var o=r.selectedIdx;r[o].codec_type=d;var s=this._calUrls(r[o],"audio",a,null,F,U);Q=Q.concat(s)}if(l&&l.length>0){var B=l[this._calVideoItemIdx(l,i)||0];B.codec_type=d;var c=this._calUrls(B,"video",a,B.definition,F,U);Q=Q.concat(c)}Q.length,n.resolve(Q)}},{key:"_calUrls",value:function(e,t,n,U,F,Q){var i=[];if(e){var l=e,r=l.avg_bitrate||l.bandwidth||l.bitrate,d=a.vtype;Q[t]||(Q[t]={initSegment:null,segments:[]});var o=Q[t];if(F){var s=l.initSegmentRange||[],B={url:l.initSegment,range:s,extData:{cacheKey:WU.generateRequestUniqueKey({vid:n,mediaType:t,codecType:l.codec_type,vtype:d,bitrate:r,fileId:l.fileId,range:s}),vid:n,vtype:d,isInitSegment:!0,mediaType:t,useUrlRange:WU.validateUrlRange(this.options.config.url_range_domains,l.initSegment),codecType:l.codec_type,range:s,bitrate:r,segmentDuration:0,checkPreload:!0}};i.push(B),o.initSegment=B}var c,R=e.mediaSegments,V=N(Q.steps);try{for(V.s();!(c=V.n()).done;){var u=R[c.value],h=WU.generateRequestUniqueKey({vid:n,mediaType:t,codecType:l.codec_type,vtype:d,start:u.start,end:u.end,definition:U,bitrate:r,fileId:l.fileId,range:u.range});o.segments.push({url:u.url,range:u.range||[],extData:{cacheKey:h,vid:n,vtype:d,isInitSegment:!1,mediaType:t,useUrlRange:WU.validateUrlRange(this.options.url_range_domains,u.url),codecType:l.codec_type,range:u.range,bitrate:r,segmentDuration:u.endRaw-u.startRaw,checkPreload:!0}})}}catch(Z){V.e(Z)}finally{V.f()}}return i}},{key:"_calStartEnd",value:function(e,t){for(var n=-1,U=0;U<e.length;U++){var F=e[U],Q=t||0;if(F.start>=Q&&Q<F.end){n=U;break}}return-1===n&&(n=0),n}},{key:"_calVideoItemIdx",value:function(e,t){for(var n=0;n<e.length;n++){var U=e[n];if(U&&U.bandwidth===t)return n}return null}},{key:"_getData",value:(F=c(o().mark((function e(t,n,U){var F,Q,i,l,r,d,s,B,c,R,V,u;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,Q=t,this._pcdn&&(i=U.mediaType,l=U.bitrate,(r=this._pcdn.selectedPCDN(i,!1,l))&&(t=r,U.isPCDN=!0,pt.log("preload _pcdn",r,U.mediaType,U.bitrate))),U.reqOptions=this.getRequestOption(null===(F=this._pendingTask)||void 0===F?void 0:F.data.reqOptions),e.next=6,this._loader.load(U.mediaType,t,n,U,!0);case 6:if(d=e.sent,!U.isPCDN||"error"!==d.res){e.next=13;break}return U.isPCDN=!1,e.next=11,this._loader.load(U.mediaType,Q,n,U,!0);case 11:s=e.sent,d=s;case 13:return c=(B=d).res,R=B.headers,V=B.status,u=B.fromCache,e.abrupt("return",{res:c,headers:R,status:V,fromCache:u,memory:c.byteLength,vtype:a.vtype,mediaType:U.mediaType,duration:U.segmentDuration,orgDefinition:void 0});case 17:return e.prev=17,e.t0=e.catch(0),console.log("preload get data error",e.t0),e.abrupt("return",{res:null});case 21:case"end":return e.stop()}}),e,this,[[0,17]])}))),function(e,t,n){return F.apply(this,arguments)})},{key:"makeInitBaseSegemntRequest",value:function(e,t,n,U,F,Q){var i=this,l=new x,r=e.mediaList[n][U],d=[r.initSegmentRange[0],r.sidxRange[1]],o=r.initSegment,s=e.videoCodecType,B=r.avg_bitrate||r.bandwidth||r.bitrate,c=a.vtype,R={checkPreload:!0,mediaType:n,vid:Q,definition:F,useUrlRange:!1,timeout:-1,isInitSegment:!0,bitrate:B,codecType:s,cacheKey:WU.generateRequestUniqueKey({vid:Q,codecType:s,mediaType:n,definition:F,vtype:c,bitrate:B,fileId:r.fileId,range:d})};return this._getData(o,d,R).then((function(F){var a=F.res;a&&"error"!==a?i.handleInitData(a,d,r.sidxRange).then((function(i){if(i.sidxSegmentRes&&e.getSidx(i.sidxSegmentRes,n,U,t),WU.validateFragment(i.initSegmentRes,d)){var r=Object.assign({},F,{vid:Q,mediaType:n,isInitSegment:!0,vtype:c});l.resolve({key:R.cacheKey,data:r})}else l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})).catch((function(){l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})):l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})).catch((function(){l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})),l}},{key:"handleInitData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,U=new x;if(e instanceof ArrayBuffer){var F=0===t.length?e:e.slice(t[0],t[1]+1),Q=null===n?null:e.slice(n[0],n[1]+1);U.resolve({initSegmentRes:F,sidxSegmentRes:Q})}else;return U}},{key:"cancel",value:(U=c(o().mark((function e(){var t,n,U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._loader){e.next=3;break}return e.next=3,this._loader.cancel();case 3:this._pendingTask&&(this._pendingTask.resolve({remove:!this.stepwise}),t=this._pendingTask,n=t.data,U=t.map,Object.values(U).length>0&&this._setItem(n,U),this._pendingTask=null);case 4:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=WU.generateRequestUniqueKey(e),n=this.preloadManager.getItemSync(e),U=this.preloadManager.getLoadInfoAndDelete(t);return d(d({cacheKey:t},n),{},{loadInfo:U})}},{key:"getPreLoadData",value:(n=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=WU.generateRequestUniqueKey(t),e.next=3,this.preloadManager.getItem(t);case 3:return U=e.sent,F=this.preloadManager.getLoadInfoAndDelete(n),e.abrupt("return",d(d({cacheKey:n},U),{},{loadInfo:F}));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"destroy",value:(t=c(o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null===(t=this._loader)||void 0===t||t.destroy(),this._loader=null,this._pcdn&&(this._pcdn=null);case 3:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"parseKey",value:function(e){var t,n,U=N(e);try{for(U.s();!(n=U.n()).done;){var F=n.value,Q=Ui.parseKey(F);"audio"===Q.mediaType?Q.hasAudio=!0:(Q.hasVideo=!0,t=Object.assign({},t,Q))}}catch(i){U.e(i)}finally{U.f()}return t}},{key:"taskInProgress",get:function(){return!!this._pendingTask.resolve&&!!this._pendingTask.data}}],[{key:"vtype",get:function(){return dn.DASH}},{key:"isUniqueCache",value:function(e){return!!e&&4===Object.keys(e).length}},{key:"generateUniqueKey",value:function(e){return WU.generateRequestUniqueKey(e)}}]),a}(Fi);function pi(e){if(window.Headers&&e instanceof Headers){var t,n={},U=N(e);try{for(U.s();!(t=U.n()).done;){var F=t.value;n[F[0]]=F[1]}}catch(Q){U.e(Q)}finally{U.f()}return n}return e}Si.encryptUtils=rn;var Ji={loaderCount:1,loaderType:Me,onProcessMinLen:5120,enableDynamicMinLen:!0};function mi(e,t){if(e.length>0)for(var n=0,U=!0,F=0;F<e.length;F++){var Q=e[F];if(Q>t){U=!1;break}if((n+=Q)/e.length>t&&(U=!1),!U)return!1}return!0}var Wi=0,ki=function(){function e(t,n){var U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";R(this,e),EF(this),this._config=Object.assign({},Ji,d({responseType:"arraybuffer"},t)),this._loaderCount=1,this._config.loaderCount>1&&console&&console.warn("only support loaderCount 1"),this._loaderType=this._config.loaderType||Me,this._enableDynamicMinLen=this._config.enableDynamicMinLen,this._preloadManager=n,t.openLog&&fe.enable(),this._videoLoaders=[],this._audioLoaders=[],this._videoIdx=0,this._audioIdx=0;for(var Q=0;Q<this._loaderCount;Q++){var i=new fe("".concat(F,"VideoLoader_").concat(Q),this._config.vid),l=new fe("".concat(F,"AudioLoader_").concat(Q),this._config.vid),r=new Bt(d(d({},this._config),{},{logger:i,loaderType:this._loaderType})),a=new Bt(d(d({},this._config),{},{logger:l,loaderType:this._loaderType}));this._videoLoaders.push(r),this._audioLoaders.push(a),this._videoSpeeds=[],r.on(tt,(function(e){Wi=e.speed,U._cacheSpeed(e)})),a.on(tt,(function(e){Wi=e.speed,U._cacheSpeed(e)})),this._videoReqCosts=[]}this._moofVideoLoader=new Bt(d(d({},this._config),{},{loaderType:this._loaderType})),this._moofAudioLoader=new Bt(d(d({},this._config),{},{loaderType:this._loaderType})),this._isSupportUrlRange="fetch"===this._loaderType,this._preloadCacheDatas={},this._reqCost={cdn:{count:0,avg:0},pcdn:{count:0,avg:0}}}var t,n,U,F;return u(e,[{key:"_cacheProgress",value:function(e,t){var n=t[e];if(n&&n.range&&n.done){var U=WU.generateRequestUniqueKey(d(d({},n.extData),{},{range:n.range}));if(!U)return;this._preloadCacheDatas[U]={duration:n.extData.segmentDuration,vtype:dn.DASH,res:n.data.buffer,mediaType:e,memory:n.data.byteLength},pt.log("cacheProgress",U,JSON.stringify(this._preloadCacheDatas[U]))}}},{key:"cachePreloadData",value:(F=c(o().mark((function e(t,n){var U,F,Q;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.vid){e.next=2;break}return e.abrupt("return");case 2:if(this._cacheProgress("video",n),this._cacheProgress("audio",n),t.vtype=Si.vtype,U=Object.keys(this._preloadCacheDatas).length,!(this._preloadManager&&U>0)){e.next=11;break}return e.next=9,this._preloadManager.getItem(t,!0);case 9:(F=e.sent)?(Q=Object.assign({},F,this._preloadCacheDatas),this._preloadManager.setItem(t,Q,!0)):this._preloadManager.setItem(t,this._preloadCacheDatas,!0);case 11:this._preloadCacheDatas={};case 12:case"end":return e.stop()}}),e,this)}))),function(e,t){return F.apply(this,arguments)})},{key:"isSupportedProgress",value:function(){return 1===this._loaderCount&&"fetch"===this._loaderType}},{key:"_addCost",value:function(e){this._videoReqCosts.push(e),this._videoReqCosts.length>3&&this._videoReqCosts.shift()}},{key:"_addVideoSpeed",value:function(e){this._videoSpeeds.push(e),this._videoSpeeds.length>3&&this._videoSpeeds.shift()}},{key:"checkProgressSatisfied",value:function(e){var t=!1;if(navigator.connection&&navigator.connection.downlink){t=!0;var n=1e6*navigator.connection.downlink;return!(5*e/n>4)}if(!mi(this._videoReqCosts,4))return!1;var U=this._videoSpeeds.map((function(t){return 1e3*t*5/e}));if(!mi(U,4))return!1;if(!t&&0===U.length)try{try{var F=parseFloat(X.getItem(Wt))||0;if(0===F||1e3*F*5/e>4)return!1}catch(Q){}}catch(Q){}return!0}},{key:"_cacheSpeed",value:function(t){var n,U=t.speed;e.historySpeed.length>=20&&e.historySpeed.shift(),e.historySpeed.push(U),this.emit(tt,d({speed:U,type:(null==t||null===(n=t.priOptions)||void 0===n?void 0:n.type)||Kt},t))}},{key:"_calCostTime",value:function(e,t){var n=this._reqCost[e?"pcdn":"cdn"];t<3*n.avg&&(n.count++,n.avg=(n.avg*(n.count-1)+t)/n.count)}},{key:"getReqCost",value:function(e){var t=this._reqCost[e];return(null==t?void 0:t.avg)||0}},{key:"load",value:(U=c(o().mark((function e(t,n,U,F){var Q,i,l,r,a,s,B,c,R,V,u,h,Z,S,p,J,m,W,k,E,y,f,N,b,v,T,C,g=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Q=g.length>4&&void 0!==g[4]&&g[4],i=g.length>5&&void 0!==g[5]?g[5]:null,l=g.length>6&&void 0!==g[6]?g[6]:null,r=g.length>7&&void 0!==g[7]?g[7]:null,a=g.length>8&&void 0!==g[8]?g[8]:null,F.vtype=dn.DASH,F.isPreload=Q,F.range=U,s={start:F.start,end:F.end,bandwidth:F.bandwidth||F.bitrate,sequence:F.idx,fps:F.fps,mediaType:t,selectedIdx:F.selectedIdx,definition:F.definition,range:U.concat()},B=this._config.onProcessMinLen,this._enableDynamicMinLen&&s.bandwidth&&i&&(c=0===F.start?.5:1,B=Math.floor(s.bandwidth*c/8)),!this._preloadManager||!F.checkPreload){e.next=25;break}if(R=WU.nowTime(),V=null,!this._preloadManager.supportSync()){e.next=18;break}V=this._preloadManager.getPreLoadDataSync(F),e.next=21;break;case 18:return e.next=20,this._preloadManager.getPreLoadData(F);case 20:V=e.sent;case 21:if(!(V&&V.res instanceof ArrayBuffer)){e.next=25;break}return pt.log("changeState preload hit cache",V.cacheKey,"cost",WU.nowTime()-R,"ms"),i&&i(V.res,!0,{range:U,fromCache:!0},null,F),e.abrupt("return",{res:V.res,headers:V.headers,status:V.status,fromCache:!0,selectedIdx:F.selectedIdx,extData:s,orgDefinition:V.orgDefinition,cacheKey:V.cacheKey,duration:V.duration});case 25:if(u=F.isPCDN,h=!i||this._isSupportUrlRange,Z=h&&(this._config.useUrlRange||F.useUrlRange||!1)&&!u,S=n,Z&&U&&U.length>1&&(S="".concat(n+(n.split("?")[1]?"&":"?"),"range=").concat(U[0],"-").concat(U[1])),U&&0!==U.length&&!Z||(U=void 0),p=performance.now(),pt.log("load res start:",JSON.stringify(F),"startTime",p,"userUrlRange",Z,"onProgress",!!i,"onProcessMinLen",B),e.prev=33,m=this._getLoader(t,F)){e.next=37;break}return e.abrupt("return");case 37:return W=this._config.headers||{},k=F.reqOptions||{},e.next=41,m.load(S,d({range:U,onProgress:i,selectedIdx:F.selectedIdx,sequence:F.idx,initSegment:F.initSegment,onProcessMinLen:B,onCancel:l,timeout:r,onTimeout:a,headers:u?Object.assign({},W,{"X-Origin-Server-Host":F.cdnHost}):W,priOptions:{type:u?_t:Kt,extData:F}},k));case 41:if(E=e.sent){e.next=44;break}return e.abrupt("return",null);case 44:return"video"===t&&this._addCost((performance.now()-p)/1e3),y=E.data,f=E.response,N={res:y instanceof Uint8Array?y.buffer:y,headers:pi(f.headers),status:f.status,duration:F.end-F.start||0,memory:y.byteLength,vtype:Si.vtype,mediaType:t,costTime:0},b=performance.now()-p,pt.log("load res finish: ",JSON.stringify(F),"cost time",b,"ms","range",null===(J=N.headers)||void 0===J?void 0:J["content-range"]),this._calCostTime(u,b),F.checkPreload&&!y.done&&(v=WU.generateRequestUniqueKey(F),this._preloadCacheDatas[v]=N),e.abrupt("return",d(d({},N),{},{extData:s,selectedIdx:F.selectedIdx,isPCDN:u,costTime:b,url:n}));case 54:return e.prev=54,e.t0=e.catch(33),pt.log("loader error",{msg:e.t0.message}),e.abrupt("return",{res:"error",status:null===(T=e.t0.response)||void 0===T?void 0:T.status,header:pi(null===(C=e.t0.response)||void 0===C?void 0:C.headers),error:e.t0,isPCDN:u,url:S,bitrate:F.bandwidth||s.bandwidth,costTime:-1});case 58:case"end":return e.stop()}}),e,this,[[33,54]])}))),function(e,t,n,F){return U.apply(this,arguments)})},{key:"_getLoader",value:function(e,t){var n="video"===e;if(t.moof)return n?this._moofVideoLoader:this._moofAudioLoader;if(n){var U=this._videoLoaders[this._videoIdx];return this._videoIdx++,this._videoIdx>=this._videoLoaders.length&&(this._videoIdx=0),U}var F=this._audioLoaders[this._audioIdx];return this._audioIdx++,this._audioIdx>=this._audioLoaders.length&&(this._audioIdx=0),F}},{key:"cancel",value:(n=c(o().mark((function e(t){var n;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=6;break}return n="video"===t?this._videoLoaders:this._audioLoaders,e.next=4,this.cancelLoaders(n);case 4:e.next=10;break;case 6:return e.next=8,this.cancelLoaders(this._audioLoaders);case 8:return e.next=10,this.cancelLoaders(this._videoLoaders);case 10:if(!this._moofVideoLoader){e.next=13;break}return e.next=13,this._moofVideoLoader.cancel();case 13:if(!this._moofAudioLoader){e.next=16;break}return e.next=16,this._moofVideoLoader.cancel();case 16:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"cancelLoaders",value:(t=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=N(t),e.prev=1,n.s();case 3:if((U=n.n()).done){e.next=9;break}return F=U.value,e.next=7,F.cancel();case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),n.e(e.t0);case 14:return e.prev=14,n.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[1,11,14,17]])}))),function(e){return t.apply(this,arguments)})},{key:"destroy",value:function(){this.cancel();for(var e=0;e<this._videoLoaders.length;e++){var t=this._videoLoaders[e];t&&t.removeAllListeners();var n=this._audioLoaders[e];n&&n.removeAllListeners()}this._moofAudioLoader&&this._moofAudioLoader.removeAllListeners(),this._moofVideoLoader&&this._moofVideoLoader.removeAllListeners(),this._audioLoaders=[],this._videoLoaders=[]}}],[{key:"currentSpeed",get:function(){return Wi}},{key:"historyAvspeed",get:function(){var t=e.historySpeed.reduce((function(e,t){return e+t}),0);return 0===e.historySpeed.length?0:t/e.historySpeed.length}}]),e}();ki.historySpeed=[];var Ei=function(){function e(t,n,U,F){R(this,e),this.adaptRangeRes=[],F&&(this.adaptRange=new an(t,n,U,F))}return u(e,[{key:"push",value:function(e){var t;null===(t=this.adaptRangeRes)||void 0===t||t.push(e)}},{key:"pop",value:function(){var e;return null===(e=this.adaptRangeRes)||void 0===e?void 0:e.shift()}},{key:"updateBitrate",value:function(e){var t;null===(t=this.adaptRange)||void 0===t||t.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){var t,n=null===(t=this.adaptRange)||void 0===t?void 0:t.getAdaptCacheBuffer();return!Number.isNaN(n)&&n||(n=e),n}},{key:"destroy",value:function(){this.adaptRange=null,this.adaptRangeRes=[]}}]),e}(),yi=DF.EVENT_EME.CDM_LICENSE_ERROR,fi=DF.EVENT_EME.CDM_LICENSE_SUCCESS,Ni=function(){function e(t,n,U){var F,Q,i=this;R(this,e),EF(this),this._pluginInst=n,this.__dash__=U;var l=n.config,r=n.player,a=n._kernal;this.kernal=a,this.mse=void 0,this.config=l,this.player=r,this.url=t,this.inited=!1,this.loadingTasks=[],this.keyValue=void 0,this.dynamic_video=this.config.dashOpts.dynamic_video,this.useEME=this.config.useEME,this.intertrustServerURL=this.config.intertrustServerURL,this.taskErrorList=[],this.defaultDefinition=this.config.defaultDefinition,this.selectedIdx=0,this.getLicenseUrl=this.config.getLicenseUrl,this.egleIds={},this._resetOptionDataLenInfo(),this.segment_request={video:[],audio:[]},this._initStates={emitEncrypt:!1};var d=this.config,o=d.loader,s=d.reqOptions;this.loader=new ki(Object.assign({openLog:ct},o,s),this._pluginInst.preloadManager),this.loader.on(tt,(function(e){i.player.emit(tt,e)})),this._vTrack=null,this._aTrack=null,this._onLoadingItems=[],this._videoEncryption=!1,this._audioEncryption=!1;var B=this.config.duration||this.config.dashOpts.video_duration||this.config.dashOpts.dynamic_video.video_duration;this.config.duration=B;var c="segment_base"===(null===(F=this.config.dashOpts)||void 0===F||null===(Q=F.dynamic_video)||void 0===Q?void 0:Q.dynamic_type);this._vid=l.vid;var V=this.player.config.uri||l.vid;this._pcdnScv=new Zi({config:l,isOpenPCDN:c,videoDuration:B,uri:V},this.player),this._dynamicBufferService=new Ei(this.player,0,B,this.config.adaptRange),this._audioMetaReadyPromise=null,this._videoMetaReadyPromise=null,this._resetProgressInfos(),this._appendBufferDelta={video:this._genEmptyBufferDelta(),audio:this._genEmptyBufferDelta()},this._lastAppendBufferEnd={video:{prevRangeEnd:0,prevItem:null},audio:{prevRangeEnd:0,prevItem:null}}}var t,n,U,F,Q,i,l;return u(e,[{key:"_genEmptyBufferDelta",value:function(){return{delta:0,item:null,requestDelta:0,isPCDN:!1}}},{key:"_resetProgressInfos",value:function(){this._progressInfos={video:this._genEmptyProgressInfo(),audio:this._genEmptyProgressInfo()}}},{key:"_genEmptyProgressInfo",value:function(){return{data:new Uint8Array(0),range:null,extData:null,done:!1}}},{key:"cachePreloadData",value:function(){var e;null===(e=this.loader)||void 0===e||e.cachePreloadData({vid:this._vid,codecType:this.mpd.getCodecType()},this._progressInfos),this._progressInfos.video.done&&(this._progressInfos.video=this._genEmptyProgressInfo()),this._progressInfos.audio.done&&(this._progressInfos.audio=this._genEmptyProgressInfo())}},{key:"_updateLoadInfo",value:function(e,t){this.loadInfo||(this.loadInfo={}),this.loadInfo[e]||(this.loadInfo[e]={},this.loadInfo[e].size=0),this.loadInfo[e].size+=t}},{key:"_resetOptionDataLenInfo",value:function(){var e,t;this._optionDataLenInfo={video:(e={},h(e,ci,{size:0}),h(e,Ri,{size:0}),e),audio:(t={},h(t,ci,{size:0}),h(t,Ri,{size:0}),t)}}},{key:"getPCDNInOutBuffer",value:function(){var e;return null===(e=this._pcdnScv)||void 0===e?void 0:e.getPCDNInOUtBuffer()}},{key:"updateDynamicBufferServiceBitrate",value:function(e){this._dynamicBufferService.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){return this._dynamicBufferService.getAdaptCacheBuffer(e)}},{key:"pushDynamicBufferServiceRes",value:function(e){this._dynamicBufferService.push(e)}},{key:"popDynamicBufferServiceRes",value:function(){var e;return(null===(e=this._dynamicBufferService)||void 0===e?void 0:e.pop())||{}}},{key:"getPCDNTraceInfo",value:function(){var e;return null===(e=this._pcdnScv)||void 0===e?void 0:e.getPCDNTraceInfo()}},{key:"_abortAndRemove",value:(l=c(o().mark((function e(t,n,U){var F,Q,i,l,r,a,d;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(null===(F=this.player)||void 0===F?void 0:F.currentTime)||-1,l=n.startRaw<i&&i<n.endRaw||n.startRaw>i,e.next=4,null===(Q=this.loader)||void 0===Q?void 0:Q.cancel(t);case 4:l?this._appendBufferDelta&&((d=this._appendBufferDelta[t]).range&&n.range&&n.range[0]<d.range[1]&&d.range[1]<n.range[1]&&(n.extRange=[d.range[1],n.range[1]]),pt.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"extRange",JSON.stringify(n.extRange),"range",JSON.stringify(n.range),U),this._appendBufferDelta[t]=this._genEmptyBufferDelta()):(null===(r=this.__dash__)||void 0===r||r.abort(t),null===(a=this.__dash__)||void 0===a||a.clearBufferDirect(t,n.start,n.end),this.updateItemState(n),pt.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"from",U));case 5:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return l.apply(this,arguments)})},{key:"onTimeUpdate",value:function(){if(this._appendBufferDelta){var e=this.config,t=e.usePCDNProgressiveCheck,n=e.progressiveTimeout;if(t)for(var U=Object.keys(this._appendBufferDelta),F=WU.nowTime(),Q=0;Q<U.length;Q++){var i=U[Q],l=this._appendBufferDelta[i],r=l.delta,a=l.requestDelta,d=l.item;if(l.isPCDN&&d){var o=this.player.playbackRate,s=r>0&&F-r>n,B=a>0&&F-a>1e3*(d.end-d.start)/o;(s||B)&&(pt.log("_abortAndRemove PCDN request cancel, progressiveTimeout",s,"requestTimeout",B,"segDuration",d.end-d.start,"s"),this.player&&this.player.emit("log",{type:"oneevent",end_type:s?"progressive_timeout":"pcdn_request_timeout"}),this._abortAndRemove(i,d,"pcdn onTimeUpdate"))}}}}},{key:"getData",value:(i=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J,m,W=this,k=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=k.length>1&&void 0!==k[1]?k[1]:[],U=k.length>2?k[2]:void 0,Q=k.length>4&&void 0!==k[4]&&k[4],i=k.length>5&&void 0!==k[5]?k[5]:null,l=k.length>6&&void 0!==k[6]?k[6]:null,r=k.length>7&&void 0!==k[7]?k[7]:null,a=k.length>8&&void 0!==k[8]?k[8]:null,d=(F=k.length>3&&void 0!==k[3]?k[3]:{}).isPCDN,s=d?ci:Ri,F.url=t,e.next=13,this.loader.load(U,t,n,F,Q,i?function(e,t,Q,l){var r=s;if(W._optionDataLenInfo){var a=W._optionDataLenInfo[U][r];if(e&&e.byteLength&&(a.size+=e.byteLength,a.range=n,a.extData=F),t&&!Q.fromCache){var d=n[1]-n[0]+1,o=Date.now()-Q.st;W._emitPrfDataSizeEvent(s,d,U,n,F,0,o),a.size=0,a.range=null,a.extData=null}if(F.checkPreload&&!Q.fromCache){var B=W._progressInfos[U];B.data=ot(B.data,e),B.extData=F,null===B.range?B.range=Q.range:B.range[1]=Math.min((null==n?void 0:n[1])||1/0,Q.range[1]),B.done=t,t&&W.cachePreloadData()}i(e,t,Q,l,F)}}:null,l,r,a);case 13:if(!((B=e.sent)&&B.res instanceof ArrayBuffer)){e.next=20;break}return c=B.res,R=B.headers,V=B.status,u=B.fromCache,h=B.cacheKey,Z=B.orgDefinition,S=B.duration,u?this.emitPreloadHit(h):this._emitPrfDataSizeEvent(s,B.res.byteLength,U,n,F,0,B.costTime),e.abrupt("return",{res:c,headers:R,status:V,fromCache:u,orgDefinition:Z,duration:S});case 20:B&&"error"===B.res&&!this._isAbort(null==B?void 0:B.error)&&this.player&&this.player.emit("source_error",{host:WU.getHostFromUrl(null==B?void 0:B.url),src:null==B?void 0:B.url,errorCode:(null==B?void 0:B.status)||"networkError",message:null==B||null===(p=B.error)||void 0===p?void 0:p.message,range:n,headers:null==B?void 0:B.header,error:{msg:null==B||null===(J=B.error)||void 0===J?void 0:J.message,stack:null==B||null===(m=B.error)||void 0===m?void 0:m.stack}});case 21:return e.abrupt("return",B);case 22:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"_emitPrfDataSizeEvent",value:function(e,t,n,U,F){var Q,i,l,r,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:-1,s=ki.currentSpeed,B=F.fileId,c=F.definition,R=F.adaptItemParam,V=F.bitrate,u=F.first_gop,h=F.segmentDuration,Z=F.start,S=F.end,p=F.url,J=(null===(Q=this.player)||void 0===Q?void 0:Q.config.uri)||(null===(i=this.config)||void 0===i?void 0:i.vid),m="cdn";e===Ri?null===(l=this.player)||void 0===l||l.emit("prf_data_size",d(d({vid:this._vid,task_type:1,cdn_size:t,mediaType:n,range:JSON.stringify(U),fileid:B,definition:c,cdn_speed:s},R),{},{emitType:a,bitrate:V,format:"DASH",uri:J,first_gop:u,segmentDuration:h,costTime:o,start:Z,end:S,url:p})):(m="pcdn",null===(r=this.player)||void 0===r||r.emit("prf_data_size",d(d({vid:this._vid,task_type:1,pcdn_size:t,mediaType:n,range:JSON.stringify(U),fileid:B,definition:c,pcdn_speed:s},R),{},{emitType:a,bitrate:V,format:"DASH",uri:J,first_gop:u,segmentDuration:h,costTime:o,start:Z,end:S,url:p})));this._updateLoadInfo(m,t)}},{key:"_getCryptInfos",value:function(){var e="",t="";if(this.dynamic_video.dynamic_video_list&&this.dynamic_video.dynamic_video_list.length>0){for(var n=0;n<this.dynamic_video.dynamic_video_list.length;n++)if(this.dynamic_video.dynamic_video_list[n].kid){e=this.dynamic_video.dynamic_video_list[n].kid,t=this.dynamic_video.dynamic_video_list[n].spade_a,this._videoEncryption=!0;break}}else if(this.dynamic_video.dynamic_audio_list)for(var U=0;U<this.dynamic_video.dynamic_audio_list.length;U++)if(this.dynamic_video.dynamic_audio_list[U].kid){e=this.dynamic_video.dynamic_audio_list[U].kid,t=this.dynamic_video.dynamic_audio_list[U].spade_a,this._audioEncryption=!0;break}return{keyId:e,spade_a:t}}},{key:"init",value:(Q=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._hasDestroyed){e.next=2;break}return e.abrupt("return");case 2:if(this._initStartMs=Date.now(),this.kernal.setNodeTime("initdash"),n=this._getCryptInfos(),U=n.keyId,F=n.spade_a,(Q=this).config.usePlaySpade&&(Q.config.secretKey=F),i=Q.config,l=i.secretKey,r=i.drmKeyToken,a=i.playDomain,!(U||l||r&&a)){e.next=18;break}return e.prev=10,e.next=13,this._initSecret(U);case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(10),console.log("err",e.t0);case 18:return e.abrupt("return",Q.initDash(t));case 19:case"end":return e.stop()}}),e,this,[[10,15]])}))),function(e){return Q.apply(this,arguments)})},{key:"_handleIncompleSegment",value:function(e,t){var n=this;e.incomplete=!0,n.__dash__&&(n.__dash__._minDuration=Math.min(t,n.__dash__._minDuration))}},{key:"_initSecret",value:function(e){var t,n,U,F=this,Q=new x,i=this.config,l=i.secretKey,r=i.drmKeyToken,a=i.playDomain,d=i.useUnionInfoDRM,o=i.keyTokenExpiredDuration,s=i.sessionId,B=this.player.config.drm;if(((null==B||null===(t=B.widevine)||void 0===t?void 0:t.serverProcessSPCPath)||(null==B||null===(n=B.fairplay)||void 0===n?void 0:n.serverProcessSPCPath)||(null==B||null===(U=B.playready)||void 0===U?void 0:U.serverProcessSPCPath))&&this.player.plugins.drm)return Q.resolve(),Q;var c=new DF.XGSecretKey({kid:e,getLicenseUrl:this.getLicenseUrl,secretKey:l,vid:this.config.vid||"",useUnionInfoDRM:d,drmKeyToken:r||this.config.keyToken,keyTokenExpiredDuration:o,playDomain:a,sessionId:s,useEME:this.useEME,intertrustServerURL:this.config.intertrustServerURL});return this._secret=c,c.getLicenseSecret().then((function(e){if(!F._pluginInst)return pt.log("getLicense callback destroy"),void Q.reject("getLicense callback destroy");F.config.dashOpts&&F.useEME?(F._initEME(),null==c||c.setOptions(),null==c||c.setupEME(F.player.video)):(F.__dash__.crypto&&F.__dash__.crypto.updateValue(e),F.keyValue=!0),pt.encrypt("getLicense resolve"),Q.resolve()})).catch((function(e){pt.log("DRM_ERROR",e),Q.reject("catch error"),void 0!==e.status&&F.emit("error",new LF(Se,me.CUSTOM_LICENSE,{url:F.getLicenseUrl,httpCode:e.status,message:"CUSTOM_LICENSE_ERROR"}))})),Q}},{key:"_initEME",value:function(){var e=this;if(!DF.checkEMEValid())return this.player.errorHandler(new LF(Ze,me.EME_HIJACK,{message:"EME API被劫持"})),void this.__dash__.destroy();this._secret.on(yi,(function(t){e.player&&e.player.emit("log",d({type:"oneevent",end_type:yi,ua:navigator.userAgent},t)),pt.log("EME CDM_LICENSE_ERROR"),e.player.errorHandler(new LF(Se,me.LICENSE,{message:"DRM接口失败".concat(t.data)}))})),this._secret.on(fi,(function(t){e.player&&e.player.emit("log",d({type:"oneevent",end_type:fi,ua:navigator.userAgent},t)),pt.log("EME CDM_LICENSE_SUCCESS")}))}},{key:"_initDefaultDefinition",value:function(){var e=this,t=this,n=t.config,U=this.mpd.mediaList.video,F=n.defaultDefinition?n.defaultDefinition.toString():null,Q=this.player.preloader&&this.player.preloader.getPreloadMetaByVid(t.config.vid),i=!1;Q&&Q.definition&&(F=Q.definition,i=!0,pt.log("dashDefinition",t.config.vid,"hasPreload",F));var l=this.player.config;if(!!l.userSelectDefinition&&l.focusUserDefinition&&(F!==l.userSelectDefinition.toString()&&i&&(i=!1,pt.log("dashDefinition",t.config.vid,"hasPreload",F,"change to userSelectDefinition",l.userSelectDefinition)),F=l.userSelectDefinition.toString()),this._pluginInst.bitRateAdapter&&!i){var r=this.player?l.userSelectDefinition:null,a=WU.getBitrateItem(t.config.dashOpts.dynamic_video,this._pluginInst.bitRateAdapter,t.config.dashOpts.dynamic_video.duration,r);if(pt.log("[dashDefinition] onReady BitRateAdapter",t.config.vid,"item",a),a){F=a.definition.toString();var d=t.config.dashOpts.dynamic_video.dynamic_video_list,o=null==d?void 0:d.filter((function(e){return e.definition===a.definition}))[0];o&&(o.fromType=a.fromType,o.orgDefinition=a.orgDefinition,o.type=a.type)}}pt.log("[dashDefinition] onReady",t.config.vid,"video definition",F);var s=!1;F&&U.forEach((function(t,n){t.definition.toString()===F.toString()&&(e.config.defaultDefinition=F.toString(),U.selectedIdx=n,s=!0)})),s||(U.selectedIdx=0),this._selectAudio()}},{key:"_selectAudio",value:function(){var e=this.mpd.mediaList.video,t=this.mpd.mediaList.audio,n=ai(e,t);t.selectedIdx=n,pt.log("audio definition",t.selectedIdx)}},{key:"_initMSE",value:function(){var e=this;this.kernal.setNodeTime("initmse_sbopen");var t,n,U=Date.now(),F=this.mpd.mediaList.audio,Q=this.mpd.mediaList.video,i={};if(this._hasAudio&&(i[Ge.AUDIO]={mimeType:"audio/mp4",codec:'audio/mp4; codecs="'.concat(F[F.selectedIdx].codecs,'"')}),this._hasVideo&&(i[Ge.VIDEO]={mimeType:"video/mp4",codec:'video/mp4; codecs="'.concat(Q[Q.selectedIdx].codecs,'"')}),this._hasVideo&&this._pluginInst.softVideo){var l=this.player.video;l.setPlayMode&&l.setPlayMode("VOD"),(t=l).url=URL.createObjectURL(new Blob),n=Promise.resolve()}else{if(this._secret&&!DF.checkMSEValid())return void this.player.errorHandler(new LF(Ze,me.MSE_HIJACK,{message:"MSE被劫持"}));(n=(t=new Ge(void 0,{openLog:ct})).bindMedia(this.player.video)).then((function(){if(e._pluginInst){e.kernal.setNodeTime("initmse_sbopendone"),e._pluginInst.info({msg:"mse init success",name:"mseInit",startMs:U,profile:!0});try{for(var n=Object.keys(i),F=0;F<n.length;F++){var Q=n[F];t.createSource(Q,i[Q].codec)}}catch(l){pt.log("MSE MSE_MEDIA_TYPES_NOT_SUPPORTED",JSON.stringify({msg:l.message})),e&&e.player&&e.player.errorHandler(new LF(Ze,me.MSE_ADD_SB,{line:329,message:"mse init fail"})),pt.log("mse init error",l,"player destroyed ? ",!(e&&e.player))}}else pt.log("open promise ready destroy")})).catch((function(e){console.log("openPromise catch",e)}))}return this.mse=t,n}},{key:"_addBuffer",value:function(e,t){var n=this,U=this;if(this._hasDestroyed)pt.log("addBuffer destroy");else if(this.mpd){var F=this.mpd.mediaList[t],Q=this.mpd.mediaList[t];if(!(Q.length<1)&&Q[Q.selectedIdx]&&Q[Q.selectedIdx].mimeType){var i=e;if(!i.initSegmentRes)return pt.log("initSegment null, task request error, stop"),void U.emit("error",new LF(Je,LF.SEG_PARSE_ERROR,{message:"wrapperData.initSegmentRes is null"}));U.__dash__&&U.__dash__._appendInitSegment(t,i,Q.selectedIdx).then((function(){var e="video"===t?n._videoMetaReadyPromise:n._audioMetaReadyPromise;e&&(n.kernal.setNodeTime("initSegment ".concat(t," append")),e.resolve()),U.inited=!0;var Q,i=F.selectedIdx;(F.length>0&&(F[i].encrypted||F[i].kid)&&(n._hasEmitEncrypt||(n._hasEmitEncrypt=!0,U._secret&&U._secret.emit(DF.EVENT_EME.ENCRYPTED))),"vod"===U.type)&&(null===(Q=U.__dash__)||void 0===Q||Q.loadData(0),U.emit("start_play"))})).catch((function(e){var t;n._hasCatchAppendError||(n._hasCatchAppendError=!0,null===(t=U.player)||void 0===t||t.errorHandler(new LF(Ze,me.MSE_APPEND_BUFFER,{line:329,message:"mse append error ".concat(e.message?e.message:e)})))}))}}else pt.log("addBuffer mpd empty")}},{key:"initDash",value:(F=c(o().mark((function e(t){var n,U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pluginInst){e.next=3;break}return pt.log("dash.js init dash destroy"),e.abrupt("return");case 3:return this._pluginInst.info({msg:"dash init",data:"dash init",startMs:this._initStartMs,profile:!0}),this.kernal.setNodeTime("initdashdone"),n=this,this.kernal.setNodeTime("initmpd"),U=new fQ(t,n.config.dashOpts,n),n.mpd=U,U.init(),e.next=12,U.readyPromise;case 12:return this._onMPDReady(U),e.abrupt("return",this.mse);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"_createMoofSegment",value:function(e,t){var n=t.mediaList[e],U=n[n.selectedIdx].firstMoofMdatRange;if(U){var F=new x;e===Ge.VIDEO?this._videoMetaReadyPromise=F:this._audioMetaReadyPromise=F;var Q={codecType:this.mpd.getCodecType(),range:U,url:n[n.selectedIdx].initSegment,idx:1,start:0,moof:!0,checkProload:!0};this._makeSegmentRequestByItem(Q,e,{},!1,F)}}},{key:"_onMPDReady",value:function(e){var t=this,n=Date.now();if(this._pluginInst){pt.log("mpd ready"),this.kernal.setNodeTime("initmpddone"),this._pluginInst.info({msg:"mpd ready",name:"mpd ready",startMs:n,profile:!0}),this.type=e.type;var U=e.mediaList.video,F=e.mediaList.audio;this._initDefaultDefinition();var Q=!!(U.length>0&&U[U.selectedIdx])&&this.config&&!this.config.dashOpts.audioOnly,i=!!(F.length>0&&F[F.selectedIdx]);this._hasVideo=Q,this._hasAudio=i;var l=this._initMSE();if(l){var r=[],a=this.config?this.config.dashOpts.audioOnly:null;if(this.config&&!a&&U&&U.length>0&&U[U.selectedIdx]&&U[U.selectedIdx].initSegment){var d=this.__dash__._makeInitSegemntRequestWithRetry("video",U.selectedIdx,!0);d.then((function(e){t._addBufferSafe(e,Ge.VIDEO,l)})),r.push(d),this._createMoofSegment(Ge.VIDEO,e)}if(F[F.selectedIdx]&&F[F.selectedIdx].initSegment){var o=this.__dash__._makeInitSegemntRequestWithRetry("audio",F.selectedIdx,!0);o.then((function(e){t._addBufferSafe(e,Ge.AUDIO,l)})),r.push(o),this._createMoofSegment(Ge.AUDIO,e)}Promise.all(r).catch((function(e){t&&t.player&&t.player.errorHandler(e),pt.log("appendInitPromise error",e,"player destroyed ? ",!(t&&t.player))}))}}else pt.log("mpd ready destroy")}},{key:"_addBufferSafe",value:function(e,t,n){var U=this;this.mse.isOpened?this._addBuffer(e,t):n.then((function(){U._addBuffer(e,t)}))}},{key:"seek",value:function(e,t){var n,U,F,Q,i=this,l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=this,d=this.mpd.seek(e,t,r),o=this.popDynamicBufferServiceRes(),s=null===(n=a.mpd)||void 0===n||null===(U=n.mediaList)||void 0===U?void 0:U.video,B=null===(F=a.mpd)||void 0===F||null===(Q=F.mediaList)||void 0===Q?void 0:Q.audio;if(a.mpd){var c=!!(s.length>0&&s[s.selectedIdx]),R=!!(B.length>0&&B[B.selectedIdx]);if(c&&R&&2*s[s.selectedIdx].mediaDuration<B[B.selectedIdx].mediaDuration)a.emit("error",new LF(Je,LF.DUR_PARSE_ERROR,{message:"the video.mediaDuration not match audio.mediaDuration"}));else{var V={},u=["video","audio"];u.forEach((function(e){d[e]&&d[e].length>0&&(V[e]=[],d[e].forEach((function(t){var n=t.idx,U=t.start,F=t.end,Q=t.downloaded,i=t.range;V[e].push({idx:n,start:U,end:F,downloaded:Q,range:i})})))})),pt.log("seekResult: time",e,"currentTime",t,JSON.stringify(V)),(a.config.dashOpts&&a.config.dashOpts.audioOnly?["audio"]:u).forEach((function(e){d[e]&&d[e].length>0&&d[e].every((function(t){return i._makeSegmentRequestByItem(t,e,o,l)}))}))}}else pt.log("dash seek destroy")}},{key:"_makeSegmentRequestByItem",value:function(e,t,n,U){var F=this,Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=this;if(e.downloaded===xt||e.downloaded===Xt)return!0;e.downloaded=Xt;var l=Object.assign({},n,{load_tar_dur:e.end-e.start,load_dur:e.end-e.start});e.adaptItemParam=l;var r=this._videoEncryption||this._audioEncryption,a=!r||r&&this.useEME,d=i.config.useProgressiveAppend&&!this._pluginInst.softVideo&&a&&this.loader.isSupportedProgress(),s=0===e.start||U;i._addToList(e);var B=i.mpd.mediaList[t],R=B[B.selectedIdx],V=s&&this.loader.checkProgressSatisfied(R.bandwidth||R.bitrate),u=i.config.useProgressiveAppendAll,h=d&&(V||u);s&&pt.log("progressDownloaded match, config p ".concat(i.config.useProgressiveAppend,", \n progressDownloaded ").concat(d,", encEnableProgress :").concat(a,",\n useProgressiveAppendAll:").concat(u)),h&&0===e.start&&("video"===t?i._pluginInst.pvStartup=!0:i._pluginInst.paStartup=!0);var Z=function(){i.updateItemState(e,!1),pt.log("onCancel",e),i._removeFromList(e),i._setLoading(t,!1),h&&(null==i||i._abortAndRemove(t,e,"oncancel"))};this._setLoading(t,!0,!1),h?(pt.log("progressDownloaded, mediaType:".concat(t,",\n start:").concat(e.start,", bitrate:").concat(R.bandwidth||R.bitrate)),i.makeSegmentRequest(t,e,function(){var n=c(o().mark((function n(U,l,r,a,d){var s,B,c;return o().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,null!==(s=F._appendBufferDelta)&&void 0!==s&&s[t]&&((B=F._appendBufferDelta[t]).delta=WU.nowTime(),B.item=e,B.requestDelta||(B.requestDelta=WU.nowTime())),c=r.range||e.range,d.range=c,d.status=null==a?void 0:a.status,200!==d.status||"ftyp"!==WU.getTopBoxType(U)){n.next=10;break}return n.next=8,F.loader.cancel(t);case 8:return i._onRequestFail({message:"response 200, cancel"},e,t),n.abrupt("return");case 10:i.appendSegment(t,U,e,{},d,!1,l,Q),l&&(e.extRange=void 0,i._removeFromList(e),F._setLoading(t,!1,!0,e.idx),F._appendBufferDelta&&(F._appendBufferDelta[t]=F._genEmptyBufferDelta()),pt.log("mediaType",t,"item",e.idx,"done")),n.next=17;break;case 14:n.prev=14,n.t0=n.catch(0),F.__dash__?(F._abortAndRemove(t,e,"errorCatch"),i._onRequestFail(n.t0,e,t)):pt.log("__dash__ null, destroy");case 17:case"end":return n.stop()}}),n,null,[[0,14]])})));return function(e,t,U,F,Q){return n.apply(this,arguments)}}(),Z).catch((function(n){i._onRequestFail(n,e,t)}))):i.makeSegmentRequest(t,e,null,Z).then((function(n){var U=n.res,F=n.headers,l=n.extData;pt.log("append ".concat(t," ").concat(e.start," ").concat(e.end)),i._setLoading(t,!1,!0,e.idx),i.appendSegment(t,U,e,F||{},l,!0,!0,Q),i._removeFromList(e)})).catch((function(n){i._onRequestFail(n,e,t)})).finally((function(){i._setLoading(t,!1)}))}},{key:"_onRequestFail",value:function(e,t,n){var U,F;(this._setLoading(n,!1),this.updateItemState(t),this._removeFromList(t),e.isPCDN)&&(null===(U=this._pcdnScv)||void 0===U||U.setSetRetryInfo(n,e.url),null===(F=this._pcdnScv)||void 0===F||F.removePCDNNode(n,e.bitrate,e.url));if(this.mpd){var Q=this.mpd.mediaList;pt.log("_onRequestFail",null==e?void 0:e.message,JSON.stringify(t));var i="video"===n?Q.video:Q.audio,l=i[i.selectedIdx],r=!this._isAbort(e.error)&&!e.isPCDN;!l.hasBackup&&l.backupUrl&&r?l.hasBackup=!0:l.fallbackUrl&&r&&(l.hasFallback=!0)}else pt.log("_onRequestFail destroy")}},{key:"_setLoading",value:function(e,t){var n,U,F=arguments.length>2&&void 0!==arguments[2]&&arguments[2],Q=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;(pt.log("setLoading",e,"isLoading",t,"addNext",F,"prevIdx",Q),null===(n=this.mpd)||void 0===n||n.setLoadingState(e,t),F)&&(null===(U=this.mpd)||void 0===U||U.moveNextSegmentIndex(e,Q))}},{key:"_isAbort",value:function(e){var t=null==e?void 0:e.message;return(null==t?void 0:t.includes("The user aborted a request"))||(null==t?void 0:t.includes("Fetch is aborted"))||(null==t?void 0:t.includes("signal is aborted without reason"))}},{key:"_addToList",value:function(e){this._onLoadingItems&&this._onLoadingItems.push(e)}},{key:"_removeFromList",value:function(e){if(this._onLoadingItems)for(var t=this._onLoadingItems.length-1;t>-1;t--)this._onLoadingItems[t]===e&&this._onLoadingItems.splice(t,1)}},{key:"makeSegmentRequest",value:function(e,t){var n,U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,Q=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=this,l=new x;void 0===t.range&&(t.range=[]),"video"===e&&pt.network("http get video start: ".concat(t.start,", end: ").concat(t.end," ,range: ").concat(t.range)),i.player&&i.__dash__._checkUrlRange(t.url);var r={limitSizeM:1/0,segment_resolution:"",isVideo:"video"===e,ratio:i.config.segmentRatio||7.5,vid:i.config.vid,mediaType:e,start:t.start,end:t.end,useUrlRange:i.config.useUrlRange},a=1/0,d=i.mpd.mediaList[e],o=d[d.selectedIdx],s=t.url;o.hasFallback?s=o.fallbackUrl:o.hasBackup&&(s=o.backupUrl);var B=(null===(n=t.extRange)||void 0===n?void 0:n.length)>0,c=!1;if(this._pcdnScv){var R=this._pcdnScv.selectedPCDN(e,!1,o.bandwidth),V="audio"===e||(null==R?void 0:R.includes(o.fileId));R&&!V&&(this._pcdnScv.removePCDNNode(e,o.bandwidth),pt.log("PCDNURL remove, url,",R,"fileid",o.fileId)),V&&R&&!B&&(c=!0,(!this._cdnHost||s.indexOf(this._cdnHost)<0)&&(this._cdnHost=WU.getHostFromUrl(s)),this._cdnHost||(this._cdnHost=WU.getHostFromUrl(s)),r.cdnHost=this._cdnHost,s=R,pt.log("PCDNURL",s))}if("video"===e){try{var u=o.definition||i.__dash__.bandwidth2item[o.bandwidth].definition;u=u.toString(),a=Et[u.toLowerCase()],r.segment_resolution=u.toLowerCase(),r.definition=r.segment_resolution,t.definition=u,this.setCurrentHost(s)}catch(S){a=1/0}r.limitSizeM=a}r.bitrate=o.avg_bitrate||o.bandwidth||o.bitrate,r.bandwidth=o.bandwidth||o.bitrate,r.idx=o.idx,r.first_gop=0===t.start?1:0,r.isPCDN=c,r.fileId=o.fileId,r.codecType=this.mpd.videoCodecType,r.adaptItemParam=t.adaptItemParam,r.segmentDuration=t.end-t.start,delete t.adaptItemParam,r.moof=t.moof,r.checkPreload=t.checkPreload||r.first_gop;var h=this.config.timeout;r.first_gop&&this.kernal.setNodeTime("init".concat(e,"_segstart")),this._appendBufferDelta[e].isPCDN=c;var Z=t.range;return t.extRange&&(pt.log("_PCDN extRange",t.extRange,"medaiType",e,"isPCDNTimeout",B),t.extRange[0]<t.extRange[1]&&(Z=t.extRange)),this.getData(s,Z,e,r,!1,F,Q,h,(function(){i.updateItemState(t,!1),pt.log("onTimeout",t),i._removeFromList(t),i._onRequestFail(Object.assign({url:s,error:{message:"Timeout"}},r),t,e)})).then((function(n){if(U._pluginInst)if(n){var Q=n.res,a=n.fromCache,d=n.duration,s=Q instanceof ArrayBuffer;if(r.first_gop&&U.kernal.setNodeTime("init".concat(e,"_segdone"),{fromCache:a,mediaType:e,definition:r.definition,duration:d,byteLength:s?Q.byteLength:0,error:s||Q.done?null:Q}),Q instanceof ArrayBuffer)l.resolve({res:Q,headers:null,extData:{status:n.status,segment_resolution:r.segment_resolution}}),i.mseLog("task loadsucc",t,e);else if(!(206===n.status||200===n.status)){if(i.mseLog("task loaderror",t,e),F&&U._abortAndRemove(e,t,"onProgress task loaderror"),403===n.status){var B;o.fallbackUrl||null==i||i.__dash__.clearProgressTimer(),null==i||null===(B=i._pluginInst)||void 0===B||B.emitExpireEvent({url:t.url,response:n})}else{var c=U._isAbort(null==n?void 0:n.error);if(o.hasFallback&&!c){var R,V;pt.log("fallUrl fail",null==n||null===(R=n.error)||void 0===R?void 0:R.message),null==i||i.__dash__.clearProgressTimer();var u=new LF(Je,LF.BACK_URL_FAIL,{message:"fall url fail ".concat(null==n||null===(V=n.error)||void 0===V?void 0:V.message)});U.player.errorHandler(u)}}l.reject(n)}}else console.log("response err"),l.reject(new Error("request error"))})),l}},{key:"setCurrentHost",value:function(e){this._pluginInst.loadURL=e}},{key:"reportMonitorEvent",value:function(e,t,n,U,F){var Q=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=this,l=i.getReportData(n,U,F,Q),r=F.eagleid;if(r){if(!this.egleIds||this.egleIds[r])return;this.egleIds[r]=1}i.player&&i.player.emit("log",{type:"oneevent",end_type:e,cdnUrl:t,ext:l})}},{key:"getReportData",value:function(e,t,n){var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=WU.transformHeaders(n,kt);return Object.assign({},{start:e||-1,end:t||-1},F,U)}},{key:"reportMenuEvent",value:function(e,t,n,U){var F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},Q=this._pluginInst.player,i=this.getReportData(t,n,U,F);i.url=e,Q.emit("menusegment",i)}},{key:"_reportInvalidEvent",value:function(e,t,n,U){var F=this,Q=0,i=e.byteLength,l=n.status,r=n.segment_resolution,a=t.realUrl||t.url;try{var d=WU.getTopBoxType(e);if("moof"!==d&&"styp"!==d&&(pt.media("segment content error",t,U),Q=1,F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,box_type:d,step:Q,segment_origin_size:i})),"ftyp"===d&&200===l&&2===t.range.length){this.player&&this.player.emit("source_error",{host:WU.getHostFromUrl(a),src:a,errorCode:l,message:"boxType error",range:t.range,headers:U}),Q=2;var o=t.range[0];return e=e.subarray(o,t.range[1]+1),"moof"!==(d=WU.getTopBoxType(e))&&"styp"!==d?(F.emit("error",new LF(Je,LF.SEGMENT_CONTENT_ERROR,{message:"boxType is ".concat(d,", range:").concat(JSON.stringify(t.range),", url:").concat(a,", respHeaders:").concat(JSON.stringify(U),", isPCDN:").concat(n.isPCDN)})),F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,box_type:d,step:Q,segment_origin_size:i}),null):e}}catch(s){F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,step:Q,box_type:"error",segment_origin_size:i}),pt.media("segment content catch",t,s)}return null}},{key:"appendSegment",value:function(e,t,n,U,F){var Q=arguments.length>5&&void 0!==arguments[5]&&arguments[5],i=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,r=this;if(!this._hasDestroyed&&r.mpd&&t)if(WU.isArrayBuffer(t)){var a=t instanceof ArrayBuffer?t:t.buffer,d=new Uint8Array(a),o=WU.checkValidTopBox(d),s=F.status,B=F.segment_resolution,c=r.mpd.mediaList[e],R=c.selectedIdx,V=n.realUrl||n.url;if(Q&&!o){if(null===(d=r._reportInvalidEvent(d,n,F,U)))return pt.log("segment content response 200, res is null"),void r.updateItemState(n);pt.log("segment content response 200, subrange is ok, go ahead")}r.reportMenuEvent(V,n.range[0],n.range[1],U,{segment_size:d.byteLength,status:s,segment_resolution:B});var u=this._pluginInst.softVideo;if(r.keyValue||u){var h=0;(u||r.__dash__.dashVideoEncrypted||r.__dash__.dashAudioEncrypted)&&!1===r.useEME&&r.__dash__.crypto?(h=performance.now(),r.mseLog("decryptBody start",n,e),r.__dash__.crypto.decryptBody(d,"video"===e,!u).then((function(t){var U=t.data,F=t.id,Q=t.headerId;if(U.res||u){var a=U.res,d=U.videoTrack,o=U.audioTrack,s=performance.now();if(r.encryptTotalAll||(r.encryptTotalAll=0),r.encryptTotalAll+=s-h,pt.encrypt("encryptTotalAll:".concat(r.encryptTotalAll)),"video"===e&&(r.encryptTotal||(r.encryptTotal=0),r.encryptTotal+=s-h,pt.encrypt("encryptVideo:".concat(r.encryptTotal)),F<Q&&!l))return r.updateItemState(n),void console.warn("decrytbody discard, id:".concat(F,", headerId:").concat(Q,",\n index:").concat(R,", url:").concat(n.url,", start:").concat(n.start));r.doAppendSegment(e,c,a,n,R,null,i,d,o,l)}else r.updateItemState(n)}))):r.doAppendSegment(e,c,d,n,R,F.range,i,null,null,l)}else r.doAppendSegment(e,c,d,n,R,F.range,i,null,null,l)}else console.log("appendSegment return done",i)}},{key:"isAllAppend",value:function(){var e=this.mpd;if(!e)return!1;var t=this.player.currentTime,n=e.isSegmentAppendFromIdx(Ge.VIDEO,t),U=n.res,F=n.emptySegments,Q=e.isSegmentAppendFromIdx(Ge.AUDIO,t),i=Q.res,l=Q.emptySegments,r=this._hasVideo&&F,a=this._hasAudio&&l;return!r&&!a&&!(!U||!i)}},{key:"doAppendSegment",value:function(e,t,n,U,F,Q,i,l,r,a){var o=this;if(!this._hasDestroyed){var s=this,B={start:U.start,end:U.end,index:F,bandwidth:t[t.selectedIdx].bandwidth,fps:t[t.selectedIdx].fps,mediaType:e,sequence:U.idx};if(e===Ge.VIDEO&&-1!==this.__dash__.curVideoInitSegmentIdx&&F!==this.__dash__.curVideoInitSegmentIdx)return this.updateItemState(U),void pt.log("init 与 segment不匹配, curVideoInitSegmentIdx",this.__dash__.curVideoInitSegmentIdx,"selectedIdx",F);var c=function(t){var n;if(!(null!=t&&t.used||null!=t&&null!==(n=t.context)&&void 0!==n&&n.used))if(0===U.start&&o.kernal.setNodeTime("init".concat(e,"SegmentAppend"),t),t&&(t.used=!0),s.player){if(U.range[1]<=(null==Q?void 0:Q[1])||i){var F;if(s.updateItemState(U,!0),"video"===e)null===(F=s.player)||void 0===F||F.emit("addVideoBufferEnd",B);if(a){var l,r,d=null===(l=o.mpd)||void 0===l?void 0:l.mediaList[e],c=d&&(null===(r=d[d.selectedIdx])||void 0===r?void 0:r.mediaSegments);c.length>0&&s.updateItemState(c[0],!0)}}if(o.mseLog("appendBuffer success",U,e,Q),i){s.updateItemState(U,!0);var R=s.mpd._getBuffered(e);pt.log("fixbuffer: mediaType",e,"buffered",JSON.stringify(R),"item.start",U.start,"item.end",U.end);for(var V=!0,u=0;u<R.length;u++){var h=R[u].start,Z=R[u].end;U.start>=h-1&&U.end<=Z+1&&(V=!1)}if(V&&U.end>U.start){var S=s.mse.getSourceBuffer(e);pt.log("fixbuffer: buffer Miss",!!S),S&&o._abortAndRemove(e,U,"fixbuffer")}}"video"===e&&s.player.emit("addVideoBufferEnd",B);var p=s.mse,J=s.mpd;if(p&&B.start>=0&&i&&!o._pluginInst.softVideo){var m=p.buffered(e);if(0===m.length)return;var W=m.end(m.length-1),k=J.mediaList[e][B.index].mediaSegments[B.sequence-1];k.incomplete&&(s._handleIncompleSegment(k,W),pt.log("extData",B))}var E=J.isLastSegmentAndAppend(e,U.idx),y=e===Ge.AUDIO?Ge.VIDEO:Ge.AUDIO,f=J.isLastSegmentAndAppend(y,U.idx);E&&f&&(pt.log("append check endofStream"),p.endOfStream()),o.isAllAppend()&&(p.endOfStream(),pt.log("append all endofstream"));var N=s.player.buffered;if(N.length>0){var b=N.start(N.length-1),v=N.end(N.length-1);s.player.currentTime>b&&Math.abs(v-s.player.duration)<.5&&(pt.log("append buffer match endofstream"),p.endOfStream())}}else pt.log("appendBuffer destroy return")},R=d(d({range:Q},B),{},{callback:c,item:U});this.appendBuffer(e,new Uint8Array(n),R,l,r,a).then(c).catch((function(e){pt.log("append buffer catch",e);var t=e&&e.errorCode===We[Ze][me.MSE_FULL];t||s.updateItemState(U,!1),t&&s.__dash__&&s.__dash__.checkRemoveBuffer(!0),e&&e.errorCode&&s.player&&s.player.emit(new LF(Ze,e.errorCode,{line:800,message:"append buffer".concat(e.message)}))}))}}},{key:"appendBuffer",value:function(e,t,n,U,F,Q){var i=this;if(this._appendBufferDelta&&(this._appendBufferDelta[e].range=n.range),this._lastAppendBufferEnd){var l=this._lastAppendBufferEnd[e],r=l.prevRangeEnd,a=l.prevItem;if(n.range&&n.range.length>0){var d,o,s=r===(null==a?void 0:a.range[1]),B=r>0&&(r===(null==a?void 0:a.range[1])+1||s);if(r>0&&!B&&r!==n.range[0])if(n.range[1]<n.item.range[1])pt.log("appendBuffer seek remove",e,r,"now",n.range[0],"start",a.startRaw,"endRaw",a.endRaw),null===(d=this.__dash__)||void 0===d||d.abort(e),null===(o=this.__dash__)||void 0===o||o.clearBufferDirect(e,a.start,a.end),n.item.extRange=void 0;this._lastAppendBufferEnd[e]={prevRangeEnd:n.range[1],prevItem:n.item}}}var c=function(){return i._pluginInst.softVideo?(i._hasVideo&&"video"===e&&(i._vTrack=new FQ,Object.keys(U).forEach((function(e){i._vTrack[e]=U[e]}))),i._hasAudio&&"audio"===e&&(i._aTrack=new QQ,Object.keys(F).forEach((function(e){i._aTrack[e]=F[e]}))),i.mse.appendBuffer(i._vTrack,i._aTrack),Promise.resolve()):i.mse.append(e,new Uint8Array(t),n)};return Q?Q.then((function(){return c()})):c()}},{key:"changeType",value:function(e,t){var n="";n=e===Ge.VIDEO?'video/mp4; codecs="'.concat(t,'"'):'audio/mp4; codecs="'.concat(t,'"'),this.mse.changeType&&this.mse.changeType(e,n)}},{key:"emptyAction",value:function(e,t){var n=this.mse;return n._enqueueOp(e,(function(){n._onSBUpdateEnd(e)}),"emptyAction",t)}},{key:"abortLoadingTasks",value:(U=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U=null===(n=this.player)||void 0===n?void 0:n.currentTime,F=[],Q=[],i=!!t,this._onLoadingItems)for(l=0;l<this._onLoadingItems.length;l++)(r=this._onLoadingItems[l]).start<=U&&U<=r.end?(pt.log("abortLoadingTasks currentTime seek",U,"start",r.start,"end",r.end),F.push(r)):i||r.mediaType===t?(Q.includes(r.mediaType)||Q.push(r.mediaType),this._abortAndRemove(r.mediaType,r,"abortLoadingTasks")):F.push(r);if(!(Q.length>0)){e.next=10;break}return pt.log("abortLoadingTasks cancelMediaTypes",JSON.stringify(Q)),a=2===Q.length?void 0:Q[0],e.next=10,this._doCancel(a);case 10:this._onLoadingItems=F;case 11:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"_doCancel",value:(n=c(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.loader.cancel(t);case 2:this._emitCancel();case 3:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_emitCancel",value:function(){var e=this;try{Object.keys(this._optionDataLenInfo).forEach((function(t){var n=e._optionDataLenInfo[t];Object.keys(n).forEach((function(U){var F=n[U]||{},Q=F.size,i=F.range,l=F.extData;Q>0&&e._emitPrfDataSizeEvent(Number(U),Q,t,i,l,1)}))}))}catch(t){}this._resetOptionDataLenInfo()}},{key:"updateItemState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=[];e.length>0?n=e:n.push(e),n.forEach((function(e){e.downloaded=t?xt:Dt}))}},{key:"mseLog",value:function(e,t,n,U){pt.mse("type-".concat(n,"-start-").concat(t.start,"-end-").concat(t.end,"-").concat(e,",range:").concat(JSON.stringify(U||t.range)))}},{key:"emitPreloadHit",value:function(e){pt.preload("emit preloadhit",e),this.player&&this.player.emit("log",{type:"onetemp",action:"append",data:{preload_hit:"".concat(e,"|")}})}},{key:"destroy",value:function(){var e,t;this._doCancel(),CF(this.loader),null===(e=this._secret)||void 0===e||e.destroy(),this._hasDestroyed=!0,null===(t=this._dynamicBufferService)||void 0===t||t.destroy()}},{key:"clearFailedSegment",value:function(){this.segment_request={video:[],audio:[]},this.player&&this.player.emit(It,this.segment_request)}},{key:"checkPCDN",value:(t=c(o().mark((function e(){var t,n,U,F,Q,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.player&&this.player.readyState<=HTMLVideoElement.HAVE_CURRENT_DATA)){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,t=this._pluginInst.currentDefitionFromPlayer,n=t.item,e.next=7,this._pcdnScv.checkPCDN(d(d({},n),{},{mediaType:"video"}));case 7:e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),console.log("error",e.t0);case 12:return e.prev=12,U=this.mpd.mediaList.audio,F=U[U.selectedIdx],Q=F.bandwidth,i=F.baseURL,e.next=17,this._pcdnScv.checkPCDN(d(d({},U[U.selectedIdx]),{},{bitrate:Q,main_url:i,mediaType:"audio"}));case 17:e.next=22;break;case 19:e.prev=19,e.t1=e.catch(12),console.log("error",e.t1);case 22:case"end":return e.stop()}}),e,this,[[2,9],[12,19]])}))),function(){return t.apply(this,arguments)})},{key:"isOpenPCDN",value:function(e){var t=this;if(this._pcdnScv){var n,U,F=this._pluginInst.currentDefitionFromPlayer;if(!F)return void pt.log("isOpenCPDN curDef is null");var Q=F.item,i=Q.bitrate,l=null===(n=this.mpd)||void 0===n?void 0:n._getCurBuffered(Ge.VIDEO),r=null===(U=this.mpd)||void 0===U?void 0:U._getCurBuffered(Ge.AUDIO),a=(e=Math.max(e,null==l?void 0:l[1],null==r?void 0:r[1]))-this.player.currentTime,d=a,s=a,B=this.player.currentTime;this.config.useSeparationMode&&(s=Math.max(0,(null==r?void 0:r[1])-B),d=Math.max(0,(null==l?void 0:l[1])-B)),this._pcdnScv.isOpenPCDN("video",d,i,c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.abortLoadingTasks("video");case 2:case"end":return e.stop()}}),e)}))),Q);var R=this.__dash__.dash.mpd.mediaList;if(R.audio.length>0){var V=R.audio[R.audio.selectedIdx],u=this.config.dashOpts.dynamic_video.dynamic_audio_list.filter((function(e){return e.bitrate===V.bandwidth}))[0];this._pcdnScv.isOpenPCDN("audio",s,V.bandwidth,c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.abortLoadingTasks("audio");case 2:case"end":return e.stop()}}),e)}))),u)}}}},{key:"pcdnReqCnt",value:function(){return this._pcdnScv.pcdnReqCnt||{}}},{key:"pcdnVVStat",value:function(){return this._pcdnScv.pcdnVVStat||{}}}]),e}(),bi=Ni,vi="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBBPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sZz1mdW5jdGlvbihBKXt0cnl7cmV0dXJuISFBKCl9Y2F0Y2goZyl7cmV0dXJuITB9fSxJPXt9LnRvU3RyaW5nLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEkuY2FsbChBKS5zbGljZSg4LC0xKX0sUT1CLEM9IiIuc3BsaXQsRT1nKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09UShBKT9DLmNhbGwoQSwiIik6T2JqZWN0KEEpfTpPYmplY3QsaT1mdW5jdGlvbihBKXtpZihudWxsPT1BKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitBKTtyZXR1cm4gQX0sdD1FLGU9aSxvPWZ1bmN0aW9uKEEpe3JldHVybiB0KGUoQSkpfSxuPWZ1bmN0aW9uKEEpe3JldHVybiBBJiZBLk1hdGg9PU1hdGgmJkF9LHI9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBBJiZBKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhPXtleHBvcnRzOnt9fSxzPSFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYz17fSxoPWZ1bmN0aW9uKEEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgQT9udWxsIT09QToiZnVuY3Rpb24iPT10eXBlb2YgQX0seT1oLEQ9ci5kb2N1bWVudCxmPXkoRCkmJnkoRC5jcmVhdGVFbGVtZW50KSx1PWZ1bmN0aW9uKEEpe3JldHVybiBmP0QuY3JlYXRlRWxlbWVudChBKTp7fX0sdz11LGQ9IXMmJiFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkodygiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLEY9aCxsPWZ1bmN0aW9uKEEpe2lmKCFGKEEpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoQSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIEF9LEc9aCxSPWZ1bmN0aW9uKEEsZyl7aWYoIUcoQSkpcmV0dXJuIEE7dmFyIEksQjtpZihnJiYiZnVuY3Rpb24iPT10eXBlb2YoST1BLnRvU3RyaW5nKSYmIUcoQj1JLmNhbGwoQSkpKXJldHVybiBCO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihJPUEudmFsdWVPZikmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjtpZighZyYmImZ1bmN0aW9uIj09dHlwZW9mKEk9QS50b1N0cmluZykmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxVPXMsaz1kLFM9bCxOPVIsTT1PYmplY3QuZGVmaW5lUHJvcGVydHk7Yy5mPVU/TTpmdW5jdGlvbihBLGcsSSl7aWYoUyhBKSxnPU4oZywhMCksUyhJKSxrKXRyeXtyZXR1cm4gTShBLGcsSSl9Y2F0Y2goQil7fWlmKCJnZXQiaW4gSXx8InNldCJpbiBJKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSSYmKEFbZ109SS52YWx1ZSksQX07dmFyIFk9ZnVuY3Rpb24oQSxnKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmQSksY29uZmlndXJhYmxlOiEoMiZBKSx3cml0YWJsZTohKDQmQSksdmFsdWU6Z319LEg9YyxwPVksSj1zP2Z1bmN0aW9uKEEsZyxJKXtyZXR1cm4gSC5mKEEsZyxwKDEsSSkpfTpmdW5jdGlvbihBLGcsSSl7cmV0dXJuIEFbZ109SSxBfSxMPXIsdj1KLEs9ZnVuY3Rpb24oQSxnKXt0cnl7dihMLEEsZyl9Y2F0Y2goSSl7TFtBXT1nfXJldHVybiBnfSxtPUsseD0iX19jb3JlLWpzX3NoYXJlZF9fIixxPXJbeF18fG0oeCx7fSksYj1xOyhhLmV4cG9ydHM9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYltBXXx8KGJbQV09dm9pZCAwIT09Zz9nOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMTIuMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSk7dmFyIFQsTyxXPWEuZXhwb3J0cyxaPWksaj1mdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KFooQSkpfSxQPWosWD17fS5oYXNPd25Qcm9wZXJ0eSxWPWZ1bmN0aW9uKEEsZyl7cmV0dXJuIFguY2FsbChQKEEpLGcpfSx6PTAsXz1NYXRoLnJhbmRvbSgpLCQ9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiK1N0cmluZyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrKCsreitfKS50b1N0cmluZygzNil9LEFBPXIsZ0E9cixJQT1mdW5jdGlvbihBKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQT9BOnZvaWQgMH0sQkE9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0lBKEFBW0FdKXx8SUEoZ0FbQV0pOkFBW0FdJiZBQVtBXVtnXXx8Z0FbQV0mJmdBW0FdW2ddfSxRQT1CQSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLENBPVFBLEVBPXIucHJvY2VzcyxpQT1FQSYmRUEudmVyc2lvbnMsdEE9aUEmJmlBLnY4O3RBP089KFQ9dEEuc3BsaXQoIi4iKSlbMF08ND8xOlRbMF0rVFsxXTpDQSYmKCEoVD1DQS5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fFRbMV0+PTc0KSYmKFQ9Q0EubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihPPVRbMV0pO3ZhciBlQSxvQT1PJiYrTyxuQT1vQSxyQT1nLGFBPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXJBKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfHwhU3ltYm9sLnNoYW0mJm5BJiZuQTw0MX0pKSxzQT1hQSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixjQT1yLGhBPVYseUE9JCxEQT1hQSxmQT1zQSx1QT1XKCJ3a3MiKSx3QT1jQS5TeW1ib2wsZEE9ZkE/d0E6d0EmJndBLndpdGhvdXRTZXR0ZXJ8fHlBLEZBPWZ1bmN0aW9uKEEpe3JldHVybiBoQSh1QSxBKSYmKERBfHwic3RyaW5nIj09dHlwZW9mIHVBW0FdKXx8KERBJiZoQSh3QSxBKT91QVtBXT13QVtBXTp1QVtBXT1kQSgiU3ltYm9sLiIrQSkpLHVBW0FdfSxsQT1NYXRoLmNlaWwsR0E9TWF0aC5mbG9vcixSQT1mdW5jdGlvbihBKXtyZXR1cm4gaXNOYU4oQT0rQSk/MDooQT4wP0dBOmxBKShBKX0sVUE9UkEsa0E9TWF0aC5taW4sU0E9ZnVuY3Rpb24oQSl7cmV0dXJuIEE+MD9rQShVQShBKSw5MDA3MTk5MjU0NzQwOTkxKTowfSxOQT1SQSxNQT1NYXRoLm1heCxZQT1NYXRoLm1pbixIQT1mdW5jdGlvbihBLGcpe3ZhciBJPU5BKEEpO3JldHVybiBJPDA/TUEoSStnLDApOllBKEksZyl9LHBBPW8sSkE9U0EsTEE9SEEsdkE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPXBBKGcpLEU9SkEoQy5sZW5ndGgpLGk9TEEoQixFKTtpZihBJiZJIT1JKXtmb3IoO0U+aTspaWYoKFE9Q1tpKytdKSE9USlyZXR1cm4hMH1lbHNlIGZvcig7RT5pO2krKylpZigoQXx8aSBpbiBDKSYmQ1tpXT09PUkpcmV0dXJuIEF8fGl8fDA7cmV0dXJuIUEmJi0xfX0sS0E9e2luY2x1ZGVzOnZBKCEwKSxpbmRleE9mOnZBKCExKX0sbUE9e30seEE9VixxQT1vLGJBPUtBLmluZGV4T2YsVEE9bUEsT0E9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXFBKEEpLFE9MCxDPVtdO2ZvcihJIGluIEIpIXhBKFRBLEkpJiZ4QShCLEkpJiZDLnB1c2goSSk7Zm9yKDtnLmxlbmd0aD5ROyl4QShCLEk9Z1tRKytdKSYmKH5iQShDLEkpfHxDLnB1c2goSSkpO3JldHVybiBDfSxXQT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLFpBPU9BLGpBPVdBLFBBPU9iamVjdC5rZXlzfHxmdW5jdGlvbihBKXtyZXR1cm4gWkEoQSxqQSl9LFhBPWMsVkE9bCx6QT1QQSxfQT1zP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZyl7VkEoQSk7Zm9yKHZhciBJLEI9ekEoZyksUT1CLmxlbmd0aCxDPTA7UT5DOylYQS5mKEEsST1CW0MrK10sZ1tJXSk7cmV0dXJuIEF9LCRBPUJBKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLEFnPSQsZ2c9Vygia2V5cyIpLElnPWZ1bmN0aW9uKEEpe3JldHVybiBnZ1tBXXx8KGdnW0FdPUFnKEEpKX0sQmc9bCxRZz1fQSxDZz1XQSxFZz1tQSxpZz0kQSx0Zz11LGVnPSJwcm90b3R5cGUiLG9nPSJzY3JpcHQiLG5nPUlnKCJJRV9QUk9UTyIpLHJnPWZ1bmN0aW9uKCl7fSxhZz1mdW5jdGlvbihBKXtyZXR1cm4iPCIrb2crIj4iK0ErIjwvIitvZysiPiJ9LHNnPWZ1bmN0aW9uKCl7dHJ5e2VBPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goUSl7fXZhciBBLGcsSTtzZz1lQT9mdW5jdGlvbihBKXtBLndyaXRlKGFnKCIiKSksQS5jbG9zZSgpO3ZhciBnPUEucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gQT1udWxsLGd9KGVBKTooZz10ZygiaWZyYW1lIiksST0iamF2YSIrb2crIjoiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsaWcuYXBwZW5kQ2hpbGQoZyksZy5zcmM9U3RyaW5nKEkpLChBPWcuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEEud3JpdGUoYWcoImRvY3VtZW50LkY9T2JqZWN0IikpLEEuY2xvc2UoKSxBLkYpO2Zvcih2YXIgQj1DZy5sZW5ndGg7Qi0tOylkZWxldGUgc2dbZWddW0NnW0JdXTtyZXR1cm4gc2coKX07RWdbbmddPSEwO3ZhciBjZz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihBLGcpe3ZhciBJO3JldHVybiBudWxsIT09QT8ocmdbZWddPUJnKEEpLEk9bmV3IHJnLHJnW2VnXT1udWxsLElbbmddPUEpOkk9c2coKSx2b2lkIDA9PT1nP0k6UWcoSSxnKX0saGc9Y2cseWc9YyxEZz1GQSgidW5zY29wYWJsZXMiKSxmZz1BcnJheS5wcm90b3R5cGU7bnVsbD09ZmdbRGddJiZ5Zy5mKGZnLERnLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aGcobnVsbCl9KTt2YXIgdWc9ZnVuY3Rpb24oQSl7ZmdbRGddW0FdPSEwfSx3Zz17fSxkZz1xLEZnPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiBkZy5pbnNwZWN0U291cmNlJiYoZGcuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gRmcuY2FsbChBKX0pO3ZhciBsZyxHZyxSZyxVZz1kZy5pbnNwZWN0U291cmNlLGtnPVVnLFNnPXIuV2Vha01hcCxOZz0iZnVuY3Rpb24iPT10eXBlb2YgU2cmJi9uYXRpdmUgY29kZS8udGVzdChrZyhTZykpLE1nPWgsWWc9SixIZz1WLHBnPXEsSmc9SWcsTGc9bUEsdmc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixLZz1yLldlYWtNYXA7aWYoTmd8fHBnLnN0YXRlKXt2YXIgbWc9cGcuc3RhdGV8fChwZy5zdGF0ZT1uZXcgS2cpLHhnPW1nLmdldCxxZz1tZy5oYXMsYmc9bWcuc2V0O2xnPWZ1bmN0aW9uKEEsZyl7aWYocWcuY2FsbChtZyxBKSl0aHJvdyBuZXcgVHlwZUVycm9yKHZnKTtyZXR1cm4gZy5mYWNhZGU9QSxiZy5jYWxsKG1nLEEsZyksZ30sR2c9ZnVuY3Rpb24oQSl7cmV0dXJuIHhnLmNhbGwobWcsQSl8fHt9fSxSZz1mdW5jdGlvbihBKXtyZXR1cm4gcWcuY2FsbChtZyxBKX19ZWxzZXt2YXIgVGc9SmcoInN0YXRlIik7TGdbVGddPSEwLGxnPWZ1bmN0aW9uKEEsZyl7aWYoSGcoQSxUZykpdGhyb3cgbmV3IFR5cGVFcnJvcih2Zyk7cmV0dXJuIGcuZmFjYWRlPUEsWWcoQSxUZyxnKSxnfSxHZz1mdW5jdGlvbihBKXtyZXR1cm4gSGcoQSxUZyk/QVtUZ106e319LFJnPWZ1bmN0aW9uKEEpe3JldHVybiBIZyhBLFRnKX19dmFyIE9nPXtzZXQ6bGcsZ2V0OkdnLGhhczpSZyxlbmZvcmNlOmZ1bmN0aW9uKEEpe3JldHVybiBSZyhBKT9HZyhBKTpsZyhBLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgSTtpZighTWcoZyl8fChJPUdnKGcpKS50eXBlIT09QSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitBKyIgcmVxdWlyZWQiKTtyZXR1cm4gSX19fSxXZz17fSxaZz17fSxqZz17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxQZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFhnPVBnJiYhamcuY2FsbCh7MToyfSwxKTtaZy5mPVhnP2Z1bmN0aW9uKEEpe3ZhciBnPVBnKHRoaXMsQSk7cmV0dXJuISFnJiZnLmVudW1lcmFibGV9OmpnO3ZhciBWZz1zLHpnPVpnLF9nPVksJGc9byxBST1SLGdJPVYsSUk9ZCxCST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1dnLmY9Vmc/Qkk6ZnVuY3Rpb24oQSxnKXtpZihBPSRnKEEpLGc9QUkoZywhMCksSUkpdHJ5e3JldHVybiBCSShBLGcpfWNhdGNoKEkpe31pZihnSShBLGcpKXJldHVybiBfZyghemcuZi5jYWxsKEEsZyksQVtnXSl9O3ZhciBRST17ZXhwb3J0czp7fX0sQ0k9cixFST1KLGlJPVYsdEk9SyxlST1VZyxvST1PZy5nZXQsbkk9T2cuZW5mb3JjZSxyST1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFFJLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFEsQz0hIUImJiEhQi51bnNhZmUsRT0hIUImJiEhQi5lbnVtZXJhYmxlLGk9ISFCJiYhIUIubm9UYXJnZXRHZXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEkmJigic3RyaW5nIiE9dHlwZW9mIGd8fGlJKEksIm5hbWUiKXx8RUkoSSwibmFtZSIsZyksKFE9bkkoSSkpLnNvdXJjZXx8KFEuc291cmNlPXJJLmpvaW4oInN0cmluZyI9PXR5cGVvZiBnP2c6IiIpKSksQSE9PUNJPyhDPyFpJiZBW2ddJiYoRT0hMCk6ZGVsZXRlIEFbZ10sRT9BW2ddPUk6RUkoQSxnLEkpKTpFP0FbZ109STp0SShnLEkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJm9JKHRoaXMpLnNvdXJjZXx8ZUkodGhpcyl9KSk7dmFyIGFJPVFJLmV4cG9ydHMsc0k9e30sY0k9T0EsaEk9V0EuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtzSS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gY0koQSxoSSl9O3ZhciB5ST17fTt5SS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIERJLGZJLHVJLHdJPXNJLGRJPXlJLEZJPWwsbEk9QkEoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBnPXdJLmYoRkkoQSkpLEk9ZEkuZjtyZXR1cm4gST9nLmNvbmNhdChJKEEpKTpnfSxHST1WLFJJPWxJLFVJPVdnLGtJPWMsU0k9ZyxOST0vI3xcLnByb3RvdHlwZVwuLyxNST1mdW5jdGlvbihBLGcpe3ZhciBJPUhJW1lJKEEpXTtyZXR1cm4gST09Skl8fEkhPXBJJiYoImZ1bmN0aW9uIj09dHlwZW9mIGc/U0koZyk6ISFnKX0sWUk9TUkubm9ybWFsaXplPWZ1bmN0aW9uKEEpe3JldHVybiBTdHJpbmcoQSkucmVwbGFjZShOSSwiLiIpLnRvTG93ZXJDYXNlKCl9LEhJPU1JLmRhdGE9e30scEk9TUkuTkFUSVZFPSJOIixKST1NSS5QT0xZRklMTD0iUCIsTEk9TUksdkk9cixLST1XZy5mLG1JPUoseEk9YUkscUk9SyxiST1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1SSShnKSxCPWtJLmYsUT1VSS5mLEM9MDtDPEkubGVuZ3RoO0MrKyl7dmFyIEU9SVtDXTtHSShBLEUpfHxCKEEsRSxRKGcsRSkpfX0sVEk9TEksT0k9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGk9QS50YXJnZXQsdD1BLmdsb2JhbCxlPUEuc3RhdDtpZihJPXQ/dkk6ZT92SVtpXXx8cUkoaSx7fSk6KHZJW2ldfHx7fSkucHJvdG90eXBlKWZvcihCIGluIGcpe2lmKEM9Z1tCXSxRPUEubm9UYXJnZXRHZXQ/KEU9S0koSSxCKSkmJkUudmFsdWU6SVtCXSwhVEkodD9COmkrKGU/Ii4iOiIjIikrQixBLmZvcmNlZCkmJnZvaWQgMCE9PVEpe2lmKHR5cGVvZiBDPT10eXBlb2YgUSljb250aW51ZTtiSShDLFEpfShBLnNoYW18fFEmJlEuc2hhbSkmJm1JKEMsInNoYW0iLCEwKSx4SShJLEIsQyxBKX19LFdJPSFnKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpLFpJPVYsakk9aixQST1XSSxYST1JZygiSUVfUFJPVE8iKSxWST1PYmplY3QucHJvdG90eXBlLHpJPVBJP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gQT1qSShBKSxaSShBLFhJKT9BW1hJXToiZnVuY3Rpb24iPT10eXBlb2YgQS5jb25zdHJ1Y3RvciYmQSBpbnN0YW5jZW9mIEEuY29uc3RydWN0b3I/QS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6QSBpbnN0YW5jZW9mIE9iamVjdD9WSTpudWxsfSxfST1nLCRJPXpJLEFCPUosZ0I9VixJQj1GQSgiaXRlcmF0b3IiKSxCQj0hMTtbXS5rZXlzJiYoIm5leHQiaW4odUk9W10ua2V5cygpKT8oZkk9JEkoJEkodUkpKSkhPT1PYmplY3QucHJvdG90eXBlJiYoREk9ZkkpOkJCPSEwKSwobnVsbD09REl8fF9JKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiBESVtJQl0uY2FsbChBKSE9PUF9KSkpJiYoREk9e30pLGdCKERJLElCKXx8QUIoREksSUIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFFCPXtJdGVyYXRvclByb3RvdHlwZTpESSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOkJCfSxDQj1jLmYsRUI9VixpQj1GQSgidG9TdHJpbmdUYWciKSx0Qj1mdW5jdGlvbihBLGcsSSl7QSYmIUVCKEE9ST9BOkEucHJvdG90eXBlLGlCKSYmQ0IoQSxpQix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmd9KX0sZUI9UUIuSXRlcmF0b3JQcm90b3R5cGUsb0I9Y2csbkI9WSxyQj10QixhQj13ZyxzQj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjQj1oLGhCPWwseUI9ZnVuY3Rpb24oQSl7aWYoIWNCKEEpJiZudWxsIT09QSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyhBKSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIEF9LERCPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGc9ITEsST17fTt0cnl7KEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLmNhbGwoSSxbXSksZz1JIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQil7fXJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBoQihJKSx5QihCKSxnP0EuY2FsbChJLEIpOkkuX19wcm90b19fPUIsSX19KCk6dm9pZCAwKSxmQj1PSSx1Qj1mdW5jdGlvbihBLGcsSSl7dmFyIEI9ZysiIEl0ZXJhdG9yIjtyZXR1cm4gQS5wcm90b3R5cGU9b0IoZUIse25leHQ6bkIoMSxJKX0pLHJCKEEsQiwhMSksYUJbQl09c0IsQX0sd0I9ekksZEI9REIsRkI9dEIsbEI9SixHQj1hSSxSQj13ZyxVQj1RQi5JdGVyYXRvclByb3RvdHlwZSxrQj1RQi5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFNCPUZBKCJpdGVyYXRvciIpLE5CPSJrZXlzIixNQj0idmFsdWVzIixZQj0iZW50cmllcyIsSEI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scEI9byxKQj11ZyxMQj13Zyx2Qj1PZyxLQj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt1QihJLGcsQik7dmFyIGksdCxlLG89ZnVuY3Rpb24oQSl7aWYoQT09PVEmJmMpcmV0dXJuIGM7aWYoIWtCJiZBIGluIGEpcmV0dXJuIGFbQV07c3dpdGNoKEEpe2Nhc2UgTkI6Y2FzZSBNQjpjYXNlIFlCOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLEEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcyl9fSxuPWcrIiBJdGVyYXRvciIscj0hMSxhPUEucHJvdG90eXBlLHM9YVtTQl18fGFbIkBAaXRlcmF0b3IiXXx8USYmYVtRXSxjPSFrQiYmc3x8byhRKSxoPSJBcnJheSI9PWcmJmEuZW50cmllc3x8cztpZihoJiYoaT13QihoLmNhbGwobmV3IEEpKSxVQiE9PU9iamVjdC5wcm90b3R5cGUmJmkubmV4dCYmKHdCKGkpIT09VUImJihkQj9kQihpLFVCKToiZnVuY3Rpb24iIT10eXBlb2YgaVtTQl0mJmxCKGksU0IsSEIpKSxGQihpLG4sITApKSksUT09TUImJnMmJnMubmFtZSE9PU1CJiYocj0hMCxjPWZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0pLGFbU0JdIT09YyYmbEIoYSxTQixjKSxSQltnXT1jLFEpaWYodD17dmFsdWVzOm8oTUIpLGtleXM6Qz9jOm8oTkIpLGVudHJpZXM6byhZQil9LEUpZm9yKGUgaW4gdCkoa0J8fHJ8fCEoZSBpbiBhKSkmJkdCKGEsZSx0W2VdKTtlbHNlIGZCKHt0YXJnZXQ6Zyxwcm90bzohMCxmb3JjZWQ6a0J8fHJ9LHQpO3JldHVybiB0fSxtQj0iQXJyYXkgSXRlcmF0b3IiLHhCPXZCLnNldCxxQj12Qi5nZXR0ZXJGb3IobUIpLGJCPUtCKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKEEsZyl7eEIodGhpcyx7dHlwZTptQix0YXJnZXQ6cEIoQSksaW5kZXg6MCxraW5kOmd9KX0pLChmdW5jdGlvbigpe3ZhciBBPXFCKHRoaXMpLGc9QS50YXJnZXQsST1BLmtpbmQsQj1BLmluZGV4Kys7cmV0dXJuIWd8fEI+PWcubGVuZ3RoPyhBLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1JP3t2YWx1ZTpCLGRvbmU6ITF9OiJ2YWx1ZXMiPT1JP3t2YWx1ZTpnW0JdLGRvbmU6ITF9Ont2YWx1ZTpbQixnW0JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKTtMQi5Bcmd1bWVudHM9TEIuQXJyYXksSkIoImtleXMiKSxKQigidmFsdWVzIiksSkIoImVudHJpZXMiKTt2YXIgVEI9e307VEJbRkEoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgT0I9IltvYmplY3Qgel0iPT09U3RyaW5nKFRCKSxXQj1PQixaQj1CLGpCPUZBKCJ0b1N0cmluZ1RhZyIpLFBCPSJBcmd1bWVudHMiPT1aQihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLFhCPVdCP1pCOmZ1bmN0aW9uKEEpe3ZhciBnLEksQjtyZXR1cm4gdm9pZCAwPT09QT8iVW5kZWZpbmVkIjpudWxsPT09QT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihJPWZ1bmN0aW9uKEEsZyl7dHJ5e3JldHVybiBBW2ddfWNhdGNoKEkpe319KGc9T2JqZWN0KEEpLGpCKSk/STpQQj9aQihnKToiT2JqZWN0Ij09KEI9WkIoZykpJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jYWxsZWU/IkFyZ3VtZW50cyI6Qn0sVkI9WEIsekI9T0I/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK1ZCKHRoaXMpKyJdIn07T0J8fGFJKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIix6Qix7dW5zYWZlOiEwfSk7dmFyIF9CPXtleHBvcnRzOnt9fSwkQj1GQSgiaXRlcmF0b3IiKSxBUT0hMTt0cnl7dmFyIGdRPTAsSVE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWdRKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtBUT0hMH19O0lRWyRCXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKElRLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2godEQpe312YXIgQlEsUVE9ZnVuY3Rpb24oQSxnKXtpZighZyYmIUFRKXJldHVybiExO3ZhciBJPSExO3RyeXt2YXIgQj17fTtCWyRCXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ST0hMH19fX0sQShCKX1jYXRjaCh0RCl7fXJldHVybiBJfSxDUT0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3LEVRPUNRLGlRPXMsdFE9cixlUT1oLG9RPVYsblE9WEIsclE9SixhUT1hSSxzUT1jLmYsY1E9ekksaFE9REIseVE9RkEsRFE9JCxmUT10US5JbnQ4QXJyYXksdVE9ZlEmJmZRLnByb3RvdHlwZSx3UT10US5VaW50OENsYW1wZWRBcnJheSxkUT13USYmd1EucHJvdG90eXBlLEZRPWZRJiZjUShmUSksbFE9dVEmJmNRKHVRKSxHUT1PYmplY3QucHJvdG90eXBlLFJRPUdRLmlzUHJvdG90eXBlT2YsVVE9eVEoInRvU3RyaW5nVGFnIiksa1E9RFEoIlRZUEVEX0FSUkFZX1RBRyIpLFNRPUVRJiYhIWhRJiYiT3BlcmEiIT09blEodFEub3BlcmEpLE5RPSExLE1RPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sWVE9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fSxIUT1mdW5jdGlvbihBKXtpZighZVEoQSkpcmV0dXJuITE7dmFyIGc9blEoQSk7cmV0dXJuIG9RKE1RLGcpfHxvUShZUSxnKX07Zm9yKEJRIGluIE1RKXRRW0JRXXx8KFNRPSExKTtpZigoIVNRfHwiZnVuY3Rpb24iIT10eXBlb2YgRlF8fEZRPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEZRPWZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxTUSkpZm9yKEJRIGluIE1RKXRRW0JRXSYmaFEodFFbQlFdLEZRKTtpZigoIVNRfHwhbFF8fGxRPT09R1EpJiYobFE9RlEucHJvdG90eXBlLFNRKSlmb3IoQlEgaW4gTVEpdFFbQlFdJiZoUSh0UVtCUV0ucHJvdG90eXBlLGxRKTtpZihTUSYmY1EoZFEpIT09bFEmJmhRKGRRLGxRKSxpUSYmIW9RKGxRLFVRKSlmb3IoQlEgaW4gTlE9ITAsc1EobFEsVVEse2dldDpmdW5jdGlvbigpe3JldHVybiBlUSh0aGlzKT90aGlzW2tRXTp2b2lkIDB9fSksTVEpdFFbQlFdJiZyUSh0UVtCUV0sa1EsQlEpO3ZhciBwUT17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpTUSxUWVBFRF9BUlJBWV9UQUc6TlEmJmtRLGFUeXBlZEFycmF5OmZ1bmN0aW9uKEEpe2lmKEhRKEEpKXJldHVybiBBO3Rocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGFUeXBlZEFycmF5Q29uc3RydWN0b3I6ZnVuY3Rpb24oQSl7aWYoaFEpe2lmKFJRLmNhbGwoRlEsQSkpcmV0dXJuIEF9ZWxzZSBmb3IodmFyIGcgaW4gTVEpaWYob1EoTVEsQlEpKXt2YXIgST10UVtnXTtpZihJJiYoQT09PUl8fFJRLmNhbGwoSSxBKSkpcmV0dXJuIEF9dGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbihBLGcsSSl7aWYoaVEpe2lmKEkpZm9yKHZhciBCIGluIE1RKXt2YXIgUT10UVtCXTtpZihRJiZvUShRLnByb3RvdHlwZSxBKSl0cnl7ZGVsZXRlIFEucHJvdG90eXBlW0FdfWNhdGNoKHREKXt9fWxRW0FdJiYhSXx8YVEobFEsQSxJP2c6U1EmJnVRW0FdfHxnKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aWYoaVEpe2lmKGhRKXtpZihJKWZvcihCIGluIE1RKWlmKChRPXRRW0JdKSYmb1EoUSxBKSl0cnl7ZGVsZXRlIFFbQV19Y2F0Y2godEQpe31pZihGUVtBXSYmIUkpcmV0dXJuO3RyeXtyZXR1cm4gYVEoRlEsQSxJP2c6U1EmJkZRW0FdfHxnKX1jYXRjaCh0RCl7fX1mb3IoQiBpbiBNUSkhKFE9dFFbQl0pfHxRW0FdJiYhSXx8YVEoUSxBLGcpfX0saXNWaWV3OmZ1bmN0aW9uKEEpe2lmKCFlUShBKSlyZXR1cm4hMTt2YXIgZz1uUShBKTtyZXR1cm4iRGF0YVZpZXciPT09Z3x8b1EoTVEsZyl8fG9RKFlRLGcpfSxpc1R5cGVkQXJyYXk6SFEsVHlwZWRBcnJheTpGUSxUeXBlZEFycmF5UHJvdG90eXBlOmxRfSxKUT1yLExRPWcsdlE9UVEsS1E9cFEuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyxtUT1KUS5BcnJheUJ1ZmZlcix4UT1KUS5JbnQ4QXJyYXkscVE9IUtRfHwhTFEoKGZ1bmN0aW9uKCl7eFEoMSl9KSl8fCFMUSgoZnVuY3Rpb24oKXtuZXcgeFEoLTEpfSkpfHwhdlEoKGZ1bmN0aW9uKEEpe25ldyB4USxuZXcgeFEobnVsbCksbmV3IHhRKDEuNSksbmV3IHhRKEEpfSksITApfHxMUSgoZnVuY3Rpb24oKXtyZXR1cm4gMSE9PW5ldyB4UShuZXcgbVEoMiksMSx2b2lkIDApLmxlbmd0aH0pKSxiUT1hSSxUUT1mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCIGluIGcpYlEoQSxCLGdbQl0sSSk7cmV0dXJuIEF9LE9RPWZ1bmN0aW9uKEEsZyxJKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhJP0krIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiBBfSxXUT1SQSxaUT1TQSxqUT1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBnPVdRKEEpLEk9WlEoZyk7aWYoZyE9PUkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIG9yIGluZGV4Iik7cmV0dXJuIEl9LFBRPU1hdGguYWJzLFhRPU1hdGgucG93LFZRPU1hdGguZmxvb3IselE9TWF0aC5sb2csX1E9TWF0aC5MTjIsJFE9aixBQz1IQSxnQz1TQSxJQz1mdW5jdGlvbihBKXtmb3IodmFyIGc9JFEodGhpcyksST1nQyhnLmxlbmd0aCksQj1hcmd1bWVudHMubGVuZ3RoLFE9QUMoQj4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsSSksQz1CPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxFPXZvaWQgMD09PUM/STpBQyhDLEkpO0U+UTspZ1tRKytdPUE7cmV0dXJuIGd9LEJDPXIsUUM9cyxDQz1DUSxFQz1KLGlDPVRRLHRDPWcsZUM9T1Esb0M9UkEsbkM9U0EsckM9alEsYUM9e3BhY2s6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFEsQyxFPW5ldyBBcnJheShJKSxpPTgqSS1nLTEsdD0oMTw8aSktMSxlPXQ+PjEsbz0yMz09PWc/WFEoMiwtMjQpLVhRKDIsLTc3KTowLG49QTwwfHwwPT09QSYmMS9BPDA/MTowLHI9MDtmb3IoKEE9UFEoQSkpIT1BfHxBPT09MS8wPyhRPUEhPUE/MTowLEI9dCk6KEI9VlEoelEoQSkvX1EpLEEqKEM9WFEoMiwtQikpPDEmJihCLS0sQyo9MiksKEErPUIrZT49MT9vL0M6bypYUSgyLDEtZSkpKkM+PTImJihCKyssQy89MiksQitlPj10PyhRPTAsQj10KTpCK2U+PTE/KFE9KEEqQy0xKSpYUSgyLGcpLEIrPWUpOihRPUEqWFEoMixlLTEpKlhRKDIsZyksQj0wKSk7Zz49ODtFW3IrK109MjU1JlEsUS89MjU2LGctPTgpO2ZvcihCPUI8PGd8USxpKz1nO2k+MDtFW3IrK109MjU1JkIsQi89MjU2LGktPTgpO3JldHVybiBFWy0tcl18PTEyOCpuLEV9LHVucGFjazpmdW5jdGlvbihBLGcpe3ZhciBJLEI9QS5sZW5ndGgsUT04KkItZy0xLEM9KDE8PFEpLTEsRT1DPj4xLGk9US03LHQ9Qi0xLGU9QVt0LS1dLG89MTI3JmU7Zm9yKGU+Pj03O2k+MDtvPTI1NipvK0FbdF0sdC0tLGktPTgpO2ZvcihJPW8mKDE8PC1pKS0xLG8+Pj0taSxpKz1nO2k+MDtJPTI1NipJK0FbdF0sdC0tLGktPTgpO2lmKDA9PT1vKW89MS1FO2Vsc2V7aWYobz09PUMpcmV0dXJuIEk/TmFOOmU/LTEvMDoxLzA7SSs9WFEoMixnKSxvLT1FfXJldHVybihlPy0xOjEpKkkqWFEoMixvLWcpfX0sc0M9ekksY0M9REIsaEM9c0kuZix5Qz1jLmYsREM9SUMsZkM9dEIsdUM9T2cuZ2V0LHdDPU9nLnNldCxkQz0iQXJyYXlCdWZmZXIiLEZDPSJEYXRhVmlldyIsbEM9InByb3RvdHlwZSIsR0M9Ildyb25nIGluZGV4IixSQz1CQ1tkQ10sVUM9UkMsa0M9QkNbRkNdLFNDPWtDJiZrQ1tsQ10sTkM9T2JqZWN0LnByb3RvdHlwZSxNQz1CQy5SYW5nZUVycm9yLFlDPWFDLnBhY2ssSEM9YUMudW5wYWNrLHBDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQV19LEpDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NV19LExDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NSxBPj4xNiYyNTUsQT4+MjQmMjU1XX0sdkM9ZnVuY3Rpb24oQSl7cmV0dXJuIEFbM108PDI0fEFbMl08PDE2fEFbMV08PDh8QVswXX0sS0M9ZnVuY3Rpb24oQSl7cmV0dXJuIFlDKEEsMjMsNCl9LG1DPWZ1bmN0aW9uKEEpe3JldHVybiBZQyhBLDUyLDgpfSx4Qz1mdW5jdGlvbihBLGcpe3lDKEFbbENdLGcse2dldDpmdW5jdGlvbigpe3JldHVybiB1Qyh0aGlzKVtnXX19KX0scUM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ckMoSSksQz11QyhBKTtpZihRK2c+Qy5ieXRlTGVuZ3RoKXRocm93IE1DKEdDKTt2YXIgRT11QyhDLmJ1ZmZlcikuYnl0ZXMsaT1RK0MuYnl0ZU9mZnNldCx0PUUuc2xpY2UoaSxpK2cpO3JldHVybiBCP3Q6dC5yZXZlcnNlKCl9LGJDPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1yQyhJKSxpPXVDKEEpO2lmKEUrZz5pLmJ5dGVMZW5ndGgpdGhyb3cgTUMoR0MpO2Zvcih2YXIgdD11QyhpLmJ1ZmZlcikuYnl0ZXMsZT1FK2kuYnl0ZU9mZnNldCxvPUIoK1EpLG49MDtuPGc7bisrKXRbZStuXT1vW0M/bjpnLW4tMV19O2lmKENDKXtpZighdEMoKGZ1bmN0aW9uKCl7UkMoMSl9KSl8fCF0QygoZnVuY3Rpb24oKXtuZXcgUkMoLTEpfSkpfHx0QygoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFJDLG5ldyBSQygxLjUpLG5ldyBSQyhOYU4pLFJDLm5hbWUhPWRDfSkpKXtmb3IodmFyIFRDLE9DPShVQz1mdW5jdGlvbihBKXtyZXR1cm4gZUModGhpcyxVQyksbmV3IFJDKHJDKEEpKX0pW2xDXT1SQ1tsQ10sV0M9aEMoUkMpLFpDPTA7V0MubGVuZ3RoPlpDOykoVEM9V0NbWkMrK10paW4gVUN8fEVDKFVDLFRDLFJDW1RDXSk7T0MuY29uc3RydWN0b3I9VUN9Y0MmJnNDKFNDKSE9PU5DJiZjQyhTQyxOQyk7dmFyIGpDPW5ldyBrQyhuZXcgVUMoMikpLFBDPVNDLnNldEludDg7akMuc2V0SW50OCgwLDIxNDc0ODM2NDgpLGpDLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhakMuZ2V0SW50OCgwKSYmakMuZ2V0SW50OCgxKXx8aUMoU0Mse3NldEludDg6ZnVuY3Rpb24oQSxnKXtQQy5jYWxsKHRoaXMsQSxnPDwyND4+MjQpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe1BDLmNhbGwodGhpcyxBLGc8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBVQz1mdW5jdGlvbihBKXtlQyh0aGlzLFVDLGRDKTt2YXIgZz1yQyhBKTt3Qyh0aGlzLHtieXRlczpEQy5jYWxsKG5ldyBBcnJheShnKSwwKSxieXRlTGVuZ3RoOmd9KSxRQ3x8KHRoaXMuYnl0ZUxlbmd0aD1nKX0sa0M9ZnVuY3Rpb24oQSxnLEkpe2VDKHRoaXMsa0MsRkMpLGVDKEEsVUMsRkMpO3ZhciBCPXVDKEEpLmJ5dGVMZW5ndGgsUT1vQyhnKTtpZihRPDB8fFE+Qil0aHJvdyBNQygiV3Jvbmcgb2Zmc2V0Iik7aWYoUSsoST12b2lkIDA9PT1JP0ItUTpuQyhJKSk+Qil0aHJvdyBNQygiV3JvbmcgbGVuZ3RoIik7d0ModGhpcyx7YnVmZmVyOkEsYnl0ZUxlbmd0aDpJLGJ5dGVPZmZzZXQ6UX0pLFFDfHwodGhpcy5idWZmZXI9QSx0aGlzLmJ5dGVMZW5ndGg9SSx0aGlzLmJ5dGVPZmZzZXQ9USl9LFFDJiYoeEMoVUMsImJ5dGVMZW5ndGgiKSx4QyhrQywiYnVmZmVyIikseEMoa0MsImJ5dGVMZW5ndGgiKSx4QyhrQywiYnl0ZU9mZnNldCIpKSxpQyhrQ1tsQ10se2dldEludDg6ZnVuY3Rpb24oQSl7cmV0dXJuIHFDKHRoaXMsMSxBKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihBKXtyZXR1cm4gcUModGhpcywxLEEpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbihBKXt2YXIgZz1xQyh0aGlzLDIsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuKGdbMV08PDh8Z1swXSk8PDE2Pj4xNn0sZ2V0VWludDE2OmZ1bmN0aW9uKEEpe3ZhciBnPXFDKHRoaXMsMixBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZ1sxXTw8OHxnWzBdfSxnZXRJbnQzMjpmdW5jdGlvbihBKXtyZXR1cm4gdkMocUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKX0sZ2V0VWludDMyOmZ1bmN0aW9uKEEpe3JldHVybiB2QyhxQyh0aGlzLDQsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihBKXtyZXR1cm4gSEMocUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDIzKX0sZ2V0RmxvYXQ2NDpmdW5jdGlvbihBKXtyZXR1cm4gSEMocUModGhpcyw4LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDUyKX0sc2V0SW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRJbnQxNjpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMixBLEpDLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRVaW50MTY6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDIsQSxKQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxMQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDMyOmZ1bmN0aW9uKEEsZyl7YkModGhpcyw0LEEsTEMsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxLQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihBLGcpe2JDKHRoaXMsOCxBLG1DLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfX0pO2ZDKFVDLGRDKSxmQyhrQyxGQyk7dmFyIFhDPXtBcnJheUJ1ZmZlcjpVQyxEYXRhVmlldzprQ30sVkM9UkEsekM9ZnVuY3Rpb24oQSl7dmFyIGc9VkMoQSk7aWYoZzwwKXRocm93IFJhbmdlRXJyb3IoIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMCIpO3JldHVybiBnfSxfQz1mdW5jdGlvbihBLGcpe3ZhciBJPXpDKEEpO2lmKEklZyl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBvZmZzZXQiKTtyZXR1cm4gSX0sJEM9WEIsQUU9d2csZ0U9RkEoIml0ZXJhdG9yIiksSUU9ZnVuY3Rpb24oQSl7aWYobnVsbCE9QSlyZXR1cm4gQVtnRV18fEFbIkBAaXRlcmF0b3IiXXx8QUVbJEMoQSldfSxCRT13ZyxRRT1GQSgiaXRlcmF0b3IiKSxDRT1BcnJheS5wcm90b3R5cGUsRUU9ZnVuY3Rpb24oQSl7cmV0dXJuIHZvaWQgMCE9PUEmJihCRS5BcnJheT09PUF8fENFW1FFXT09PUEpfSxpRT1mdW5jdGlvbihBKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKEEpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gQX0sdEU9aUUsZUU9ZnVuY3Rpb24oQSxnLEkpe2lmKHRFKEEpLHZvaWQgMD09PWcpcmV0dXJuIEE7c3dpdGNoKEkpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5jYWxsKGcpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBBLmNhbGwoZyxJKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBBLmNhbGwoZyxJLEIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKEksQixRKXtyZXR1cm4gQS5jYWxsKGcsSSxCLFEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShnLGFyZ3VtZW50cyl9fSxvRT1qLG5FPVNBLHJFPUlFLGFFPUVFLHNFPWVFLGNFPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsaEU9Qix5RT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihBKXtyZXR1cm4iQXJyYXkiPT1oRShBKX0sREU9aCxmRT15RSx1RT1GQSgic3BlY2llcyIpLHdFPWZ1bmN0aW9uKEEsZyl7dmFyIEk7cmV0dXJuIGZFKEEpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKEk9QS5jb25zdHJ1Y3Rvcil8fEkhPT1BcnJheSYmIWZFKEkucHJvdG90eXBlKT9ERShJKSYmbnVsbD09PShJPUlbdUVdKSYmKEk9dm9pZCAwKTpJPXZvaWQgMCksbmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoMD09PWc/MDpnKX0sZEU9ZUUsRkU9RSxsRT1qLEdFPVNBLFJFPXdFLFVFPVtdLnB1c2gsa0U9ZnVuY3Rpb24oQSl7dmFyIGc9MT09QSxJPTI9PUEsQj0zPT1BLFE9ND09QSxDPTY9PUEsRT03PT1BLGk9NT09QXx8QztyZXR1cm4gZnVuY3Rpb24odCxlLG8sbil7Zm9yKHZhciByLGEscz1sRSh0KSxjPUZFKHMpLGg9ZEUoZSxvLDMpLHk9R0UoYy5sZW5ndGgpLEQ9MCxmPW58fFJFLHU9Zz9mKHQseSk6SXx8RT9mKHQsMCk6dm9pZCAwO3k+RDtEKyspaWYoKGl8fEQgaW4gYykmJihhPWgocj1jW0RdLEQscyksQSkpaWYoZyl1W0RdPWE7ZWxzZSBpZihhKXN3aXRjaChBKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiByO2Nhc2UgNjpyZXR1cm4gRDtjYXNlIDI6VUUuY2FsbCh1LHIpfWVsc2Ugc3dpdGNoKEEpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6VUUuY2FsbCh1LHIpfXJldHVybiBDPy0xOkJ8fFE/UTp1fX0sU0U9e2ZvckVhY2g6a0UoMCksbWFwOmtFKDEpLGZpbHRlcjprRSgyKSxzb21lOmtFKDMpLGV2ZXJ5OmtFKDQpLGZpbmQ6a0UoNSksZmluZEluZGV4OmtFKDYpLGZpbHRlck91dDprRSg3KX0sTkU9QkEsTUU9YyxZRT1zLEhFPUZBKCJzcGVjaWVzIikscEU9ZnVuY3Rpb24oQSl7dmFyIGc9TkUoQSksST1NRS5mO1lFJiZnJiYhZ1tIRV0mJkkoZyxIRSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxKRT1oLExFPURCLHZFPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRO3JldHVybiBMRSYmImZ1bmN0aW9uIj09dHlwZW9mKEI9Zy5jb25zdHJ1Y3RvcikmJkIhPT1JJiZKRShRPUIucHJvdG90eXBlKSYmUSE9PUkucHJvdG90eXBlJiZMRShBLFEpLEF9LEtFPU9JLG1FPXIseEU9cyxxRT1xUSxiRT1wUSxURT1YQyxPRT1PUSxXRT1ZLFpFPUosakU9U0EsUEU9alEsWEU9X0MsVkU9Uix6RT1WLF9FPVhCLCRFPWgsQWk9Y2csZ2k9REIsSWk9c0kuZixCaT1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEUsaT1vRShBKSx0PWFyZ3VtZW50cy5sZW5ndGgsZT10PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxvPXZvaWQgMCE9PWUsbj1yRShpKTtpZihudWxsIT1uJiYhYUUobikpZm9yKEU9KEM9bi5jYWxsKGkpKS5uZXh0LGk9W107IShRPUUuY2FsbChDKSkuZG9uZTspaS5wdXNoKFEudmFsdWUpO2ZvcihvJiZ0PjImJihlPXNFKGUsYXJndW1lbnRzWzJdLDIpKSxJPW5FKGkubGVuZ3RoKSxCPW5ldyhjRSh0aGlzKSkoSSksZz0wO0k+ZztnKyspQltnXT1vP2UoaVtnXSxnKTppW2ddO3JldHVybiBCfSxRaT1TRS5mb3JFYWNoLENpPXBFLEVpPWMsaWk9V2csdGk9dkUsZWk9T2cuZ2V0LG9pPU9nLnNldCxuaT1FaS5mLHJpPWlpLmYsYWk9TWF0aC5yb3VuZCxzaT1tRS5SYW5nZUVycm9yLGNpPVRFLkFycmF5QnVmZmVyLGhpPVRFLkRhdGFWaWV3LHlpPWJFLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MsRGk9YkUuVFlQRURfQVJSQVlfVEFHLGZpPWJFLlR5cGVkQXJyYXksdWk9YkUuVHlwZWRBcnJheVByb3RvdHlwZSx3aT1iRS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLGRpPWJFLmlzVHlwZWRBcnJheSxGaT0iQllURVNfUEVSX0VMRU1FTlQiLGxpPSJXcm9uZyBsZW5ndGgiLEdpPWZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTAsQj1nLmxlbmd0aCxRPW5ldyh3aShBKSkoQik7Qj5JOylRW0ldPWdbSSsrXTtyZXR1cm4gUX0sUmk9ZnVuY3Rpb24oQSxnKXtuaShBLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBlaSh0aGlzKVtnXX19KX0sVWk9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuIEEgaW5zdGFuY2VvZiBjaXx8IkFycmF5QnVmZmVyIj09KGc9X0UoQSkpfHwiU2hhcmVkQXJyYXlCdWZmZXIiPT1nfSxraT1mdW5jdGlvbihBLGcpe3JldHVybiBkaShBKSYmInN5bWJvbCIhPXR5cGVvZiBnJiZnIGluIEEmJlN0cmluZygrZyk9PVN0cmluZyhnKX0sU2k9ZnVuY3Rpb24oQSxnKXtyZXR1cm4ga2koQSxnPVZFKGcsITApKT9XRSgyLEFbZ10pOnJpKEEsZyl9LE5pPWZ1bmN0aW9uKEEsZyxJKXtyZXR1cm4hKGtpKEEsZz1WRShnLCEwKSkmJiRFKEkpJiZ6RShJLCJ2YWx1ZSIpKXx8ekUoSSwiZ2V0Iil8fHpFKEksInNldCIpfHxJLmNvbmZpZ3VyYWJsZXx8ekUoSSwid3JpdGFibGUiKSYmIUkud3JpdGFibGV8fHpFKEksImVudW1lcmFibGUiKSYmIUkuZW51bWVyYWJsZT9uaShBLGcsSSk6KEFbZ109SS52YWx1ZSxBKX07eEU/KHlpfHwoaWkuZj1TaSxFaS5mPU5pLFJpKHVpLCJidWZmZXIiKSxSaSh1aSwiYnl0ZU9mZnNldCIpLFJpKHVpLCJieXRlTGVuZ3RoIiksUmkodWksImxlbmd0aCIpKSxLRSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiF5aX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpTaSxkZWZpbmVQcm9wZXJ0eTpOaX0pLF9CLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPUEubWF0Y2goL1xkKyQvKVswXS84LFE9QSsoST8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsQz0iZ2V0IitBLEU9InNldCIrQSxpPW1FW1FdLHQ9aSxlPXQmJnQucHJvdG90eXBlLG89e30sbj1mdW5jdGlvbihBLGcpe25pKEEsZyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZWkoQSk7cmV0dXJuIEkudmlld1tDXShnKkIrSS5ieXRlT2Zmc2V0LCEwKX0odGhpcyxnKX0sc2V0OmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihBLGcsUSl7dmFyIEM9ZWkoQSk7SSYmKFE9KFE9YWkoUSkpPDA/MDpRPjI1NT8yNTU6MjU1JlEpLEMudmlld1tFXShnKkIrQy5ieXRlT2Zmc2V0LFEsITApfSh0aGlzLGcsQSl9LGVudW1lcmFibGU6ITB9KX07eWk/cUUmJih0PWcoKGZ1bmN0aW9uKEEsZyxJLEMpe3JldHVybiBPRShBLHQsUSksdGkoJEUoZyk/VWkoZyk/dm9pZCAwIT09Qz9uZXcgaShnLFhFKEksQiksQyk6dm9pZCAwIT09ST9uZXcgaShnLFhFKEksQikpOm5ldyBpKGcpOmRpKGcpP0dpKHQsZyk6QmkuY2FsbCh0LGcpOm5ldyBpKFBFKGcpKSxBLHQpfSkpLGdpJiZnaSh0LGZpKSxRaShJaShpKSwoZnVuY3Rpb24oQSl7QSBpbiB0fHxaRSh0LEEsaVtBXSl9KSksdC5wcm90b3R5cGU9ZSk6KHQ9ZygoZnVuY3Rpb24oQSxnLEksQyl7T0UoQSx0LFEpO3ZhciBFLGksZSxvPTAscj0wO2lmKCRFKGcpKXtpZighVWkoZykpcmV0dXJuIGRpKGcpP0dpKHQsZyk6QmkuY2FsbCh0LGcpO0U9ZyxyPVhFKEksQik7dmFyIGE9Zy5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PUMpe2lmKGElQil0aHJvdyBzaShsaSk7aWYoKGk9YS1yKTwwKXRocm93IHNpKGxpKX1lbHNlIGlmKChpPWpFKEMpKkIpK3I+YSl0aHJvdyBzaShsaSk7ZT1pL0J9ZWxzZSBlPVBFKGcpLEU9bmV3IGNpKGk9ZSpCKTtmb3Iob2koQSx7YnVmZmVyOkUsYnl0ZU9mZnNldDpyLGJ5dGVMZW5ndGg6aSxsZW5ndGg6ZSx2aWV3Om5ldyBoaShFKX0pO288ZTspbihBLG8rKyl9KSksZ2kmJmdpKHQsZmkpLGU9dC5wcm90b3R5cGU9QWkodWkpKSxlLmNvbnN0cnVjdG9yIT09dCYmWkUoZSwiY29uc3RydWN0b3IiLHQpLERpJiZaRShlLERpLFEpLG9bUV09dCxLRSh7Z2xvYmFsOiEwLGZvcmNlZDp0IT1pLHNoYW06IXlpfSxvKSxGaSBpbiB0fHxaRSh0LEZpLEIpLEZpIGluIGV8fFpFKGUsRmksQiksQ2koUSl9KTpfQi5leHBvcnRzPWZ1bmN0aW9uKCl7fTt2YXIgTWk9X0IuZXhwb3J0cztNaSgiVWludDgiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKTt2YXIgWWk9aixIaT1IQSxwaT1TQSxKaT1NYXRoLm1pbixMaT1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbihBLGcpe3ZhciBJPVlpKHRoaXMpLEI9cGkoSS5sZW5ndGgpLFE9SGkoQSxCKSxDPUhpKGcsQiksRT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxpPUppKCh2b2lkIDA9PT1FP0I6SGkoRSxCKSktQyxCLVEpLHQ9MTtmb3IoQzxRJiZRPEMraSYmKHQ9LTEsQys9aS0xLFErPWktMSk7aS0tID4wOylDIGluIEk/SVtRXT1JW0NdOmRlbGV0ZSBJW1FdLFErPXQsQys9dDtyZXR1cm4gSX0sdmk9TGksS2k9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImNvcHlXaXRoaW4iLChmdW5jdGlvbihBLGcpe3JldHVybiB2aS5jYWxsKEtpKHRoaXMpLEEsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSk7dmFyIG1pPVNFLmV2ZXJ5LHhpPXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJldmVyeSIsKGZ1bmN0aW9uKEEpe3JldHVybiBtaSh4aSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgcWk9SUMsYmk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbGwiLChmdW5jdGlvbihBKXtyZXR1cm4gcWkuYXBwbHkoYmkodGhpcyksYXJndW1lbnRzKX0pKTt2YXIgVGk9bCxPaT1pRSxXaT1GQSgic3BlY2llcyIpLFppPWZ1bmN0aW9uKEEsZyl7dmFyIEksQj1UaShBKS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09Qnx8bnVsbD09KEk9VGkoQilbV2ldKT9nOk9pKEkpfSxqaT1wUS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLFBpPVppLFhpPVNFLmZpbHRlcixWaT1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QaShBLEEuY29uc3RydWN0b3IpLEI9MCxRPWcubGVuZ3RoLEM9bmV3KGppKEkpKShRKTtRPkI7KUNbQl09Z1tCKytdO3JldHVybiBDfSx6aT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsdGVyIiwoZnVuY3Rpb24oQSl7dmFyIGc9WGkoemkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIFZpKHRoaXMsZyl9KSk7dmFyIF9pPVNFLmZpbmQsJGk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbmQiLChmdW5jdGlvbihBKXtyZXR1cm4gX2koJGkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIEF0PVNFLmZpbmRJbmRleCxndD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZEluZGV4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIEF0KGd0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBJdD1TRS5mb3JFYWNoLEJ0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmb3JFYWNoIiwoZnVuY3Rpb24oQSl7SXQoQnQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIFF0PUtBLmluY2x1ZGVzLEN0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJpbmNsdWRlcyIsKGZ1bmN0aW9uKEEpe3JldHVybiBRdChDdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgRXQ9S0EuaW5kZXhPZixpdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiaW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBFdChpdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgdHQ9cixldD1wUSxvdD1iQixudD1GQSgiaXRlcmF0b3IiKSxydD10dC5VaW50OEFycmF5LGF0PW90LnZhbHVlcyxzdD1vdC5rZXlzLGN0PW90LmVudHJpZXMsaHQ9ZXQuYVR5cGVkQXJyYXkseXQ9ZXQuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxEdD1ydCYmcnQucHJvdG90eXBlW250XSxmdD0hIUR0JiYoInZhbHVlcyI9PUR0Lm5hbWV8fG51bGw9PUR0Lm5hbWUpLHV0PWZ1bmN0aW9uKCl7cmV0dXJuIGF0LmNhbGwoaHQodGhpcykpfTt5dCgiZW50cmllcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN0LmNhbGwoaHQodGhpcykpfSkpLHl0KCJrZXlzIiwoZnVuY3Rpb24oKXtyZXR1cm4gc3QuY2FsbChodCh0aGlzKSl9KSkseXQoInZhbHVlcyIsdXQsIWZ0KSx5dChudCx1dCwhZnQpO3ZhciB3dD1wUS5hVHlwZWRBcnJheSxkdD1bXS5qb2luOygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJqb2luIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGR0LmFwcGx5KHd0KHRoaXMpLGFyZ3VtZW50cyl9KSk7dmFyIEZ0PWcsbHQ9ZnVuY3Rpb24oQSxnKXt2YXIgST1bXVtBXTtyZXR1cm4hIUkmJkZ0KChmdW5jdGlvbigpe0kuY2FsbChudWxsLGd8fGZ1bmN0aW9uKCl7dGhyb3cgMX0sMSl9KSl9LEd0PW8sUnQ9UkEsVXQ9U0Esa3Q9bHQsU3Q9TWF0aC5taW4sTnQ9W10ubGFzdEluZGV4T2YsTXQ9ISFOdCYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxZdD1rdCgibGFzdEluZGV4T2YiKSxIdD1NdHx8IVl0P2Z1bmN0aW9uKEEpe2lmKE10KXJldHVybiBOdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGc9R3QodGhpcyksST1VdChnLmxlbmd0aCksQj1JLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKEI9U3QoQixSdChhcmd1bWVudHNbMV0pKSksQjwwJiYoQj1JK0IpO0I+PTA7Qi0tKWlmKEIgaW4gZyYmZ1tCXT09PUEpcmV0dXJuIEJ8fDA7cmV0dXJuLTF9Ok50LHB0PUh0LEp0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJsYXN0SW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBwdC5hcHBseShKdCh0aGlzKSxhcmd1bWVudHMpfSkpO3ZhciBMdD1TRS5tYXAsdnQ9WmksS3Q9cFEuYVR5cGVkQXJyYXksbXQ9cFEuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgibWFwIiwoZnVuY3Rpb24oQSl7cmV0dXJuIEx0KEt0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyhtdCh2dChBLEEuY29uc3RydWN0b3IpKSkoZyl9KSl9KSk7dmFyIHh0PWlFLHF0PWosYnQ9RSxUdD1TQSxPdD1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIsUSl7eHQoSSk7dmFyIEM9cXQoZyksRT1idChDKSxpPVR0KEMubGVuZ3RoKSx0PUE/aS0xOjAsZT1BPy0xOjE7aWYoQjwyKWZvcig7Oyl7aWYodCBpbiBFKXtRPUVbdF0sdCs9ZTticmVha31pZih0Kz1lLEE/dDwwOmk8PXQpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtBP3Q+PTA6aT50O3QrPWUpdCBpbiBFJiYoUT1JKFEsRVt0XSx0LEMpKTtyZXR1cm4gUX19LFd0PXtsZWZ0Ok90KCExKSxyaWdodDpPdCghMCl9LFp0PVd0LmxlZnQsanQ9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInJlZHVjZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBadChqdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBQdD1XdC5yaWdodCxYdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgicmVkdWNlUmlnaHQiLChmdW5jdGlvbihBKXtyZXR1cm4gUHQoWHQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgVnQ9cFEuYVR5cGVkQXJyYXksenQ9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxfdD1NYXRoLmZsb29yO3p0KCJyZXZlcnNlIiwoZnVuY3Rpb24oKXtmb3IodmFyIEEsZz10aGlzLEk9VnQoZykubGVuZ3RoLEI9X3QoSS8yKSxRPTA7UTxCOylBPWdbUV0sZ1tRKytdPWdbLS1JXSxnW0ldPUE7cmV0dXJuIGd9KSk7dmFyICR0PVNBLEFlPV9DLGdlPWosSWU9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNldCIsKGZ1bmN0aW9uKEEpe0llKHRoaXMpO3ZhciBnPUFlKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDEpLEk9dGhpcy5sZW5ndGgsQj1nZShBKSxRPSR0KEIubGVuZ3RoKSxDPTA7aWYoUStnPkkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIik7Zm9yKDtDPFE7KXRoaXNbZytDXT1CW0MrK119KSxnKChmdW5jdGlvbigpe25ldyBJbnQ4QXJyYXkoMSkuc2V0KHt9KX0pKSk7dmFyIEJlPVppLFFlPXBRLmFUeXBlZEFycmF5LENlPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsRWU9W10uc2xpY2U7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNsaWNlIiwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9RWUuY2FsbChRZSh0aGlzKSxBLGcpLEI9QmUodGhpcyx0aGlzLmNvbnN0cnVjdG9yKSxRPTAsQz1JLmxlbmd0aCxFPW5ldyhDZShCKSkoQyk7Qz5ROylFW1FdPUlbUSsrXTtyZXR1cm4gRX0pLGcoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpKTt2YXIgaWU9U0Uuc29tZSx0ZT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29tZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBpZSh0ZSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgZWU9cFEuYVR5cGVkQXJyYXksb2U9W10uc29ydDsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29ydCIsKGZ1bmN0aW9uKEEpe3JldHVybiBvZS5jYWxsKGVlKHRoaXMpLEEpfSkpO3ZhciBuZT1TQSxyZT1IQSxhZT1aaSxzZT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic3ViYXJyYXkiLChmdW5jdGlvbihBLGcpe3ZhciBJPXNlKHRoaXMpLEI9SS5sZW5ndGgsUT1yZShBLEIpO3JldHVybiBuZXcoYWUoSSxJLmNvbnN0cnVjdG9yKSkoSS5idWZmZXIsSS5ieXRlT2Zmc2V0K1EqSS5CWVRFU19QRVJfRUxFTUVOVCxuZSgodm9pZCAwPT09Zz9COnJlKGcsQikpLVEpKX0pKTt2YXIgY2U9cFEsaGU9Zyx5ZT1yLkludDhBcnJheSxEZT1jZS5hVHlwZWRBcnJheSxmZT1jZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLHVlPVtdLnRvTG9jYWxlU3RyaW5nLHdlPVtdLnNsaWNlLGRlPSEheWUmJmhlKChmdW5jdGlvbigpe3VlLmNhbGwobmV3IHllKDEpKX0pKTtmZSgidG9Mb2NhbGVTdHJpbmciLChmdW5jdGlvbigpe3JldHVybiB1ZS5hcHBseShkZT93ZS5jYWxsKERlKHRoaXMpKTpEZSh0aGlzKSxhcmd1bWVudHMpfSksaGUoKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IHllKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhaGUoKGZ1bmN0aW9uKCl7eWUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpKTt2YXIgRmU9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxsZT1nLEdlPXIuVWludDhBcnJheSxSZT1HZSYmR2UucHJvdG90eXBlfHx7fSxVZT1bXS50b1N0cmluZyxrZT1bXS5qb2luO2xlKChmdW5jdGlvbigpe1VlLmNhbGwoe30pfSkpJiYoVWU9ZnVuY3Rpb24oKXtyZXR1cm4ga2UuY2FsbCh0aGlzKX0pO3ZhciBTZT1SZS50b1N0cmluZyE9VWU7RmUoInRvU3RyaW5nIixVZSxTZSk7dmFyIE5lPVNFLmZvckVhY2gsTWU9bHQoImZvckVhY2giKT9bXS5mb3JFYWNoOmZ1bmN0aW9uKEEpe3JldHVybiBOZSh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSxZZT1yLEhlPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfSxwZT1NZSxKZT1KO2Zvcih2YXIgTGUgaW4gSGUpe3ZhciB2ZT1ZZVtMZV0sS2U9dmUmJnZlLnByb3RvdHlwZTtpZihLZSYmS2UuZm9yRWFjaCE9PXBlKXRyeXtKZShLZSwiZm9yRWFjaCIscGUpfWNhdGNoKHREKXtLZS5mb3JFYWNoPXBlfX12YXIgbWU9cyx4ZT1nLHFlPVBBLGJlPXlJLFRlPVpnLE9lPWosV2U9RSxaZT1PYmplY3QuYXNzaWduLGplPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxQZT0hWmV8fHhlKChmdW5jdGlvbigpe2lmKG1lJiYxIT09WmUoe2I6MX0sWmUoamUoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2plKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIEE9e30sZz17fSxJPVN5bWJvbCgpLEI9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gQVtJXT03LEIuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKEEpe2dbQV09QX0pKSw3IT1aZSh7fSxBKVtJXXx8cWUoWmUoe30sZykpLmpvaW4oIiIpIT1CfSkpP2Z1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPU9lKEEpLEI9YXJndW1lbnRzLmxlbmd0aCxRPTEsQz1iZS5mLEU9VGUuZjtCPlE7KWZvcih2YXIgaSx0PVdlKGFyZ3VtZW50c1tRKytdKSxlPUM/cWUodCkuY29uY2F0KEModCkpOnFlKHQpLG89ZS5sZW5ndGgsbj0wO28+bjspaT1lW24rK10sbWUmJiFFLmNhbGwodCxpKXx8KElbaV09dFtpXSk7cmV0dXJuIEl9OlplLFhlPVBlO09JKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PVhlfSx7YXNzaWduOlhlfSk7dmFyIFZlPVIsemU9YyxfZT1ZLCRlPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1WZShnKTtCIGluIEE/emUuZihBLEIsX2UoMCxJKSk6QVtCXT1JfSxBbz1nLGdvPW9BLElvPUZBKCJzcGVjaWVzIiksQm89ZnVuY3Rpb24oQSl7cmV0dXJuIGdvPj01MXx8IUFvKChmdW5jdGlvbigpe3ZhciBnPVtdO3JldHVybihnLmNvbnN0cnVjdG9yPXt9KVtJb109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09Z1tBXShCb29sZWFuKS5mb299KSl9LFFvPU9JLENvPWgsRW89eUUsaW89SEEsdG89U0EsZW89byxvbz0kZSxubz1GQSxybz1Cbygic2xpY2UiKSxhbz1ubygic3BlY2llcyIpLHNvPVtdLnNsaWNlLGNvPU1hdGgubWF4O2Z1bmN0aW9uIGhvKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24geW8oQSxnKXtmb3IodmFyIEk9MDtJPGcubGVuZ3RoO0krKyl7dmFyIEI9Z1tJXTtCLmVudW1lcmFibGU9Qi5lbnVtZXJhYmxlfHwhMSxCLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gQiYmKEIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEdvKEIua2V5KSxCKX19ZnVuY3Rpb24gRG8oQSxnLEkpe3JldHVybiBnJiZ5byhBLnByb3RvdHlwZSxnKSxJJiZ5byhBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gZm8oQSxnLEkpe3JldHVybihnPUdvKGcpKWluIEE/T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsZyx7dmFsdWU6SSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOkFbZ109SSxBfWZ1bmN0aW9uIHVvKEEsZyl7cmV0dXJuIGZ1bmN0aW9uKEEpe2lmKEFycmF5LmlzQXJyYXkoQSkpcmV0dXJuIEF9KEEpfHxmdW5jdGlvbihBLGcpe3ZhciBJPW51bGw9PUE/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmQVtTeW1ib2wuaXRlcmF0b3JdfHxBWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9SSl7dmFyIEIsUSxDLEUsaT1bXSx0PSEwLGU9ITE7dHJ5e2lmKEM9KEk9SS5jYWxsKEEpKS5uZXh0LDA9PT1nKXtpZihPYmplY3QoSSkhPT1JKXJldHVybjt0PSExfWVsc2UgZm9yKDshKHQ9KEI9Qy5jYWxsKEkpKS5kb25lKSYmKGkucHVzaChCLnZhbHVlKSxpLmxlbmd0aCE9PWcpO3Q9ITApO31jYXRjaChvKXtlPSEwLFE9b31maW5hbGx5e3RyeXtpZighdCYmbnVsbCE9SS5yZXR1cm4mJihFPUkucmV0dXJuKCksT2JqZWN0KEUpIT09RSkpcmV0dXJufWZpbmFsbHl7aWYoZSl0aHJvdyBRfX1yZXR1cm4gaX19KEEsZyl8fEZvKEEsZyl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB3byhBKXtyZXR1cm4gZnVuY3Rpb24oQSl7aWYoQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gbG8oQSl9KEEpfHxmdW5jdGlvbihBKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9QVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1BWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oQSl9KEEpfHxGbyhBKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBGbyhBLGcpe2lmKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgQSlyZXR1cm4gbG8oQSxnKTt2YXIgST1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1JJiZBLmNvbnN0cnVjdG9yJiYoST1BLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09SXx8IlNldCI9PT1JP0FycmF5LmZyb20oQSk6IkFyZ3VtZW50cyI9PT1JfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChJKT9sbyhBLGcpOnZvaWQgMH19ZnVuY3Rpb24gbG8oQSxnKXsobnVsbD09Z3x8Zz5BLmxlbmd0aCkmJihnPUEubGVuZ3RoKTtmb3IodmFyIEk9MCxCPW5ldyBBcnJheShnKTtJPGc7SSsrKUJbSV09QVtJXTtyZXR1cm4gQn1mdW5jdGlvbiBHbyhBKXt2YXIgZz1mdW5jdGlvbihBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpcmV0dXJuIEE7dmFyIEk9QVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PUkpe3ZhciBCPUkuY2FsbChBLGd8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXJldHVybiBCO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09Zz9TdHJpbmc6TnVtYmVyKShBKX0oQSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBnP2c6U3RyaW5nKGcpfVFvKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IXJvfSx7c2xpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQz1lbyh0aGlzKSxFPXRvKEMubGVuZ3RoKSxpPWlvKEEsRSksdD1pbyh2b2lkIDA9PT1nP0U6ZyxFKTtpZihFbyhDKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihJPUMuY29uc3RydWN0b3IpfHxJIT09QXJyYXkmJiFFbyhJLnByb3RvdHlwZSk/Q28oSSkmJm51bGw9PT0oST1JW2FvXSkmJihJPXZvaWQgMCk6ST12b2lkIDAsST09PUFycmF5fHx2b2lkIDA9PT1JKSlyZXR1cm4gc28uY2FsbChDLGksdCk7Zm9yKEI9bmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoY28odC1pLDApKSxRPTA7aTx0O2krKyxRKyspaSBpbiBDJiZvbyhCLFEsQ1tpXSk7cmV0dXJuIEIubGVuZ3RoPVEsQn19KTt2YXIgUm89InZpZGVvIixVbz0iYXVkaW8iLGtvPSJtZXRhZGF0YSIsU289ImF2YyIsTm89ImhldmMiLE1vPSJ2dmNDIixZbz0iYWFjIixIbz0iZzcxMTBhIixwbz0iZzcxMTBtIixKbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpLGZvKHRoaXMsImlkIiwxKSxmbyh0aGlzLCJ0eXBlIixSbyksZm8odGhpcywiY29kZWNUeXBlIixTbyksZm8odGhpcywicGlkIiwtMSksZm8odGhpcywiaHZjQyIsdm9pZCAwKSxmbyh0aGlzLCJjb2RlYyIsIiIpLGZvKHRoaXMsInRpbWVzY2FsZSIsMCksZm8odGhpcywiZm9ybWF0VGltZXNjYWxlIiwwKSxmbyh0aGlzLCJzZXF1ZW5jZU51bWJlciIsMCksZm8odGhpcywiYmFzZU1lZGlhRGVjb2RlVGltZSIsMCksZm8odGhpcywiYmFzZUR0cyIsMCksZm8odGhpcywiZHVyYXRpb24iLDApLGZvKHRoaXMsIndhcm5pbmdzIixbXSksZm8odGhpcywic2FtcGxlcyIsW10pLGZvKHRoaXMsInBwcyIsW10pLGZvKHRoaXMsInNwcyIsW10pLGZvKHRoaXMsInZwcyIsW10pLGZvKHRoaXMsImZwc051bSIsMCksZm8odGhpcywiZnBzRGVuIiwwKSxmbyh0aGlzLCJzYXJSYXRpbyIsW10pLGZvKHRoaXMsIndpZHRoIiwwKSxmbyh0aGlzLCJoZWlnaHQiLDApLGZvKHRoaXMsIm5hbFVuaXRTaXplIiw0KSxmbyh0aGlzLCJwcmVzZW50IiwhMSksZm8odGhpcywiaXNWaWRlb0VuY3J5cHRpb24iLCExKSxmbyh0aGlzLCJpc0F1ZGlvRW5jcnlwdGlvbiIsITEpLGZvKHRoaXMsImlzVmlkZW8iLCEwKSxmbyh0aGlzLCJraWQiLG51bGwpLGZvKHRoaXMsInBzc2giLG51bGwpLGZvKHRoaXMsImV4dCIsdm9pZCAwKX1yZXR1cm4gRG8oQSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj10aGlzLndpZHRoPXRoaXMuaGVpZ2h0PXRoaXMuZnBzRGVuPXRoaXMuZnBzTnVtPXRoaXMuZHVyYXRpb249dGhpcy5iYXNlTWVkaWFEZWNvZGVUaW1lPXRoaXMudGltZXNjYWxlPTAsdGhpcy5jb2RlYz0iIix0aGlzLnByZXNlbnQ9ITEsdGhpcy5waWQ9LTEsdGhpcy5wcHM9W10sdGhpcy5zcHM9W10sdGhpcy52cHM9W10sdGhpcy5zYXJSYXRpbz1bXSx0aGlzLnNhbXBsZXM9W10sdGhpcy53YXJuaW5ncz1bXSx0aGlzLmh2Y0M9bnVsbH19LHtrZXk6ImV4aXN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhKHRoaXMucHBzLmxlbmd0aCYmdGhpcy5zcHMubGVuZ3RoJiZ0aGlzLmNvZGVjKX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2FtcGxlcy5sZW5ndGh9fSx7a2V5OiJpc0VuY3J5cHRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmlkZW9FbmNyeXB0aW9ufX1dKSxBfSgpLExvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSksZm8odGhpcywiaWQiLDIpLGZvKHRoaXMsInR5cGUiLFVvKSxmbyh0aGlzLCJjb2RlY1R5cGUiLFlvKSxmbyh0aGlzLCJwaWQiLC0xKSxmbyh0aGlzLCJjb2RlYyIsIiIpLGZvKHRoaXMsInNlcXVlbmNlTnVtYmVyIiwwKSxmbyh0aGlzLCJzYW1wbGVEdXJhdGlvbiIsMCksZm8odGhpcywidGltZXNjYWxlIiwwKSxmbyh0aGlzLCJmb3JtYXRUaW1lc2NhbGUiLDApLGZvKHRoaXMsImJhc2VNZWRpYURlY29kZVRpbWUiLDApLGZvKHRoaXMsImR1cmF0aW9uIiwwKSxmbyh0aGlzLCJ3YXJuaW5ncyIsW10pLGZvKHRoaXMsInNhbXBsZXMiLFtdKSxmbyh0aGlzLCJiYXNlRHRzIiwwKSxmbyh0aGlzLCJzYW1wbGVTaXplIiwxNiksZm8odGhpcywic2FtcGxlUmF0ZSIsMCksZm8odGhpcywiY2hhbm5lbENvdW50IiwwKSxmbyh0aGlzLCJvYmplY3RUeXBlIiwwKSxmbyh0aGlzLCJzYW1wbGVSYXRlSW5kZXgiLDApLGZvKHRoaXMsImNvbmZpZyIsW10pLGZvKHRoaXMsInByZXNlbnQiLCExKSxmbyh0aGlzLCJpc1ZpZGVvRW5jcnlwdGlvbiIsITEpLGZvKHRoaXMsImlzQXVkaW9FbmNyeXB0aW9uIiwhMSksZm8odGhpcywia2lkIixudWxsKSxmbyh0aGlzLCJleHQiLHZvaWQgMCl9cmV0dXJuIERvKEEsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9MCx0aGlzLnRpbWVzY2FsZT0wLHRoaXMuc2FtcGxlRHVyYXRpb249MCx0aGlzLnNhbXBsZVJhdGU9MCx0aGlzLmNoYW5uZWxDb3VudD0wLHRoaXMuYmFzZU1lZGlhRGVjb2RlVGltZT0wLHRoaXMucHJlc2VudD0hMSx0aGlzLnBpZD0tMSx0aGlzLmNvZGVjPSIiLHRoaXMuc2FtcGxlcz1bXSx0aGlzLmNvbmZpZz1bXSx0aGlzLndhcm5pbmdzPVtdfX0se2tleToiZXhpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5zYW1wbGVSYXRlJiZ0aGlzLmNoYW5uZWxDb3VudCYmdGhpcy5jb2RlYyYmdGhpcy5jb2RlY1R5cGU9PT1Zbyl9fSx7a2V5OiJoYXNTYW1wbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnNhbXBsZXMubGVuZ3RofX0se2tleToiaXNFbmNyeXB0aW9uIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0F1ZGlvRW5jcnlwdGlvbn19XSksQX0oKSx2bz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe2hvKHRoaXMsQSksZm8odGhpcywiZmxhZyIse30pLGZvKHRoaXMsImtleWZyYW1lIiwhMSksZm8odGhpcywiZ29wSWQiLDApLGZvKHRoaXMsImR1cmF0aW9uIiwwKSxmbyh0aGlzLCJzaXplIiwwKSxmbyh0aGlzLCJ1bml0cyIsW10pLGZvKHRoaXMsImNocm9tYUZvcm1hdCIsNDIwKSx0aGlzLm9yaWdpblB0cz10aGlzLnB0cz1nLHRoaXMub3JpZ2luRHRzPXRoaXMuZHRzPUksQiYmKHRoaXMudW5pdHM9Qil9cmV0dXJuIERvKEEsW3trZXk6ImN0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHRzLXRoaXMuZHRzfX0se2tleToic2V0VG9LZXlmcmFtZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmtleWZyYW1lPSEwLHRoaXMuZmxhZy5kZXBlbmRzT249Mix0aGlzLmZsYWcuaXNOb25TeW5jU2FtcGxlPTB9fV0pLEF9KCksS289RG8oKGZ1bmN0aW9uIEEoZyxJLEIsUSl7aG8odGhpcyxBKSxmbyh0aGlzLCJkdXJhdGlvbiIsMTAyNCksZm8odGhpcywiZmxhZyIse2RlcGVuZHNPbjoyLGlzTm9uU3luY1NhbXBsZTowfSksZm8odGhpcywia2V5ZnJhbWUiLCEwKSx0aGlzLm9yaWdpblB0cz10aGlzLnB0cz10aGlzLmR0cz1nLHRoaXMuZGF0YT1JLHRoaXMuc2l6ZT1JLmJ5dGVMZW5ndGgsdGhpcy5zYW1wbGVPZmZzZXQ9USxCJiYodGhpcy5kdXJhdGlvbj1CKX0pKSxtbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpLGZvKHRoaXMsImlkIiwzKSxmbyh0aGlzLCJ0eXBlIixrbyksZm8odGhpcywidGltZXNjYWxlIiwwKSxmbyh0aGlzLCJmbHZTY3JpcHRTYW1wbGVzIixbXSksZm8odGhpcywic2VpU2FtcGxlcyIsW10pfXJldHVybiBEbyhBLFt7a2V5OiJleGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmZsdlNjcmlwdFNhbXBsZXMubGVuZ3RoJiYhdGhpcy5zZWlTYW1wbGVzLmxlbmd0aHx8IXRoaXMudGltZXNjYWxlKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudGltZXNjYWxlPTAsdGhpcy5mbHZTY3JpcHRTYW1wbGVzPVtdLHRoaXMuc2VpU2FtcGxlcz1bXX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmZsdlNjcmlwdFNhbXBsZXMubGVuZ3RoJiYhdGhpcy5zZWlTYW1wbGVzLmxlbmd0aCl9fV0pLEF9KCkseG89InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cscW89eG8mJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb2NhbGVMb3dlckNhc2UoKSxibz14byYmcW8uaW5jbHVkZXMoImZpcmVmb3giKSxUbz14byYmcW8uaW5jbHVkZXMoImFuZHJvaWQiKSxPbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpfXJldHVybiBEbyhBLG51bGwsW3trZXk6ImdldFJhdGVJbmRleEJ5UmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuRlJFUS5pbmRleE9mKGcpfX0se2tleToicGFyc2VBRFRTIix2YWx1ZTpmdW5jdGlvbihnLEkpe2Zvcih2YXIgQj1nLmxlbmd0aCxRPTA7USsyPEImJigyNTUhPT1nW1FdfHwyNDAhPSgyNDYmZ1tRKzFdKSk7KVErKztpZighKFE+PUIpKXt2YXIgQz1RLEU9W10saT0oNjAmZ1tRKzJdKT4+PjIsdD1BLkZSRVFbaV07aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNhbXBsaW5nIGluZGV4OiAiLmNvbmNhdChpKSk7Zm9yKHZhciBlLG8sbj0xKygoMTkyJmdbUSsyXSk+Pj42KSxyPSgxJmdbUSsyXSk8PDJ8KDE5MiZnW1ErM10pPj4+NixhPUEuX2dldENvbmZpZyhpLHIsbikscz1hLmNvbmZpZyxjPWEuY29kZWMsaD0wLHk9QS5nZXRGcmFtZUR1cmF0aW9uKHQpO1ErNzxCOylpZigyNTU9PT1nW1FdJiYyNDA9PSgyNDYmZ1tRKzFdKSl7aWYoQi1RPChvPSgzJmdbUSszXSk8PDExfGdbUSs0XTw8M3woMjI0JmdbUSs1XSk+PjUpKWJyZWFrO2U9MiooMSZ+Z1tRKzFdKSxFLnB1c2goe3B0czpJK2gqeSxkYXRhOmcuc3ViYXJyYXkoUSs3K2UsUStvKX0pLGgrKyxRKz1vfWVsc2UgUSsrO3JldHVybntza2lwOkMscmVtYWluaW5nOlE+PUI/dm9pZCAwOmcuc3ViYXJyYXkoUSksZnJhbWVzOkUsc2FtcGxpbmdGcmVxdWVuY3lJbmRleDppLHNhbXBsZVJhdGU6dCxvYmplY3RUeXBlOm4sY2hhbm5lbENvdW50OnIsY29kZWM6Yyxjb25maWc6cyxvcmlnaW5Db2RlYzoibXA0YS40MC4iLmNvbmNhdChuKX19fX0se2tleToicGFyc2VBdWRpb1NwZWNpZmljQ29uZmlnIix2YWx1ZTpmdW5jdGlvbihnKXtpZihnLmxlbmd0aCl7dmFyIEk9Z1swXT4+PjMsQj0oNyZnWzBdKTw8MXxnWzFdPj4+NyxRPSgxMjAmZ1sxXSk+Pj4zLEM9QS5GUkVRW0JdO2lmKEMpe3ZhciBFPUEuX2dldENvbmZpZyhCLFEsSSk7cmV0dXJue3NhbXBsaW5nRnJlcXVlbmN5SW5kZXg6QixzYW1wbGVSYXRlOkMsb2JqZWN0VHlwZTpJLGNoYW5uZWxDb3VudDpRLGNvbmZpZzpFLmNvbmZpZyxjb2RlYzpFLmNvZGVjLG9yaWdpbkNvZGVjOiJtcDRhLjQwLiIuY29uY2F0KEkpfX19fX0se2tleToiZ2V0RnJhbWVEdXJhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIDEwMjQqKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo5ZTQpL0F9fSx7a2V5OiJfZ2V0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDPVtdO3JldHVybiBibz9BPj02PyhCPTUsUT1BLTMpOihCPTIsUT1BKTpUbz8oQj0yLFE9QSk6KEI9Mj09PUl8fDU9PT1JP0k6NSxRPUEsQT49Nj9RPUEtMzoxPT09ZyYmKEI9MixRPUEpKSxDWzBdPUI8PDMsQ1swXXw9KDE0JkEpPj4xLENbMV09KDEmQSk8PDcsQ1sxXXw9Zzw8Myw1PT09QiYmKENbMV18PSgxNCZRKT4+MSxDWzJdPSgxJlEpPDw3LENbMl18PTgsQ1szXT0wKSx7Y29uZmlnOkMsY29kZWM6Im1wNGEuNDAuIi5jb25jYXQoQil9fX0se2tleToiZ2V0U2lsZW50RnJhbWUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7aWYoIm1wNGEuNDAuMiI9PT1BKXtpZigxPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDM1LDEyOF0pO2lmKDI9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMzMsMCw3MywxNDQsMiwyNSwwLDM1LDEyOF0pO2lmKDM9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxNDJdKTtpZig0PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTI4LDQ0LDEyOCw4LDIsNTZdKTtpZig1PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTMwLDQ4LDQsMTUzLDAsMzMsMTQ0LDIsNTZdKTtpZig2PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTMwLDQ4LDQsMTUzLDAsMzMsMTQ0LDIsMCwxNzgsMCwzMiw4LDIyNF0pfWVsc2V7aWYoMT09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFsxLDY0LDM0LDEyOCwxNjMsNzgsMjMwLDEyOCwxODYsOCwwLDAsMCwyOCw2LDI0MSwxOTMsMTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTRdKTtpZigyPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw5NCwyMzAsMTI4LDE4Niw4LDAsMCwwLDAsMTQ5LDAsNiwyNDEsMTYxLDEwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDk0XSk7aWYoMz09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFsxLDY0LDM0LDEyOCwxNjMsOTQsMjMwLDEyOCwxODYsOCwwLDAsMCwwLDE0OSwwLDYsMjQxLDE2MSwxMCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5NF0pfX19XSksQX0oKTtmdW5jdGlvbiBXbygpe2Zvcih2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEEpLEk9MDtJPEE7SSsrKWdbSV09YXJndW1lbnRzW0ldO2c9Zy5maWx0ZXIoQm9vbGVhbik7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoZy5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChBLFEpLFErPUEuYnl0ZUxlbmd0aH0pKSxCfWZvKE9vLCJGUkVRIixbOTZlMyw4ODIwMCw2NGUzLDQ4ZTMsNDQxMDAsMzJlMywyNGUzLDIyMDUwLDE2ZTMsMTJlMywxMTAyNSw4ZTMsNzM1MF0pO3ZhciBabz1NYXRoLnBvdygyLDMyKTtmdW5jdGlvbiBqbyhBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4oQVtnXTw8OCkrKEFbZysxXXx8MCl9ZnVuY3Rpb24gUG8oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuKEFbZ108PDI0Pj4+MCkrKEFbZysxXTw8MTYpKyhBW2crMl08PDgpKyhBW2crM118fDApfWZ1bmN0aW9uIFhvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybiBuZXcgRGF0YVZpZXcoQS5idWZmZXIsQS5ieXRlT2Zmc2V0LEEuYnl0ZUxlbmd0aCkuZ2V0SW50MzIoZyl9ZnVuY3Rpb24gVm8oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIFBvKEEsZykqWm8rUG8oQSxnKzQpfWZ1bmN0aW9uIHpvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLEk9bmV3IERhdGFWaWV3KEEuYnVmZmVyLEEuYnl0ZU9mZnNldCxBLmJ5dGVMZW5ndGgpO3JldHVybiBJLmdldFVpbnQzMihnKTw8MzJ8SS5nZXRVaW50MzIoZys0KX1mdW5jdGlvbiBfbyhBKXt2YXIgZz0iIjtpZihBLmZvckVhY2goKGZ1bmN0aW9uKEEpe2crPWZ1bmN0aW9uKEEpe3JldHVybigiMCIrTnVtYmVyKEEpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLnRvVXBwZXJDYXNlKCl9KEEpfSkpLGcubGVuZ3RoPD0zMilmb3IodmFyIEk9MzItZy5sZW5ndGgsQj0wO0I8STtCKyspZys9IjAiO3JldHVybiBnfWZ1bmN0aW9uICRvKEEpe2lmKCFBcnJheS5pc0FycmF5KEEpKXtmb3IodmFyIGc9W10sST0iIixCPTA7QjxBLmxlbmd0aDtCKyspQiUyJiYoST1BW0ItMV0rQVtCXSxnLnB1c2gocGFyc2VJbnQoSSwxNikpLEk9IiIpO3JldHVybiBnfXJldHVybiBBLm1hcCgoZnVuY3Rpb24oQSl7cmV0dXJuIHBhcnNlSW50KEEsMTYpfSkpfXZhciBBbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyl7aWYoaG8odGhpcyxBKSxmbyh0aGlzLCJfYnl0ZXNBdmFpbGFibGUiLHZvaWQgMCksZm8odGhpcywiX2JpdHNBdmFpbGFibGUiLDApLGZvKHRoaXMsIl93b3JkIiwwKSwhZyl0aHJvdyBuZXcgRXJyb3IoIkV4cEdvbG9tYiBkYXRhIHBhcmFtcyBpcyByZXF1aXJlZCIpO3RoaXMuX2RhdGE9Zyx0aGlzLl9ieXRlc0F2YWlsYWJsZT1nLmJ5dGVMZW5ndGgsdGhpcy5fYnl0ZXNBdmFpbGFibGUmJnRoaXMuX2xvYWRXb3JkKCl9cmV0dXJuIERvKEEsW3trZXk6Il9sb2FkV29yZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLmJ5dGVMZW5ndGgtdGhpcy5fYnl0ZXNBdmFpbGFibGUsZz1NYXRoLm1pbig0LHRoaXMuX2J5dGVzQXZhaWxhYmxlKTtpZigwPT09Zyl0aHJvdyBuZXcgRXJyb3IoIk5vIGJ5dGVzIGF2YWlsYWJsZSIpO3ZhciBJPW5ldyBVaW50OEFycmF5KDQpO0kuc2V0KHRoaXMuX2RhdGEuc3ViYXJyYXkoQSxBK2cpKSx0aGlzLl93b3JkPW5ldyBEYXRhVmlldyhJLmJ1ZmZlcikuZ2V0VWludDMyKDApLHRoaXMuX2JpdHNBdmFpbGFibGU9OCpnLHRoaXMuX2J5dGVzQXZhaWxhYmxlLT1nfX0se2tleToiYml0c1BvcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gOCp0aGlzLl9ieXRlc0F2YWlsYWJsZS10aGlzLl9iaXRzQXZhaWxhYmxlfX0se2tleToiYml0c0xlZnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDgqdGhpcy5fZGF0YS5sZW5ndGgtdGhpcy5iaXRzUG9zKCl9fSx7a2V5OiJieXRlQWxpZ25lZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuYml0c1BvcygpfHx0aGlzLmJpdHNQb3MoKSU4PT0wfX0se2tleToic2tpcEJpdHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2lmKHRoaXMuX2JpdHNBdmFpbGFibGU+QSl0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BO2Vsc2V7QS09dGhpcy5fYml0c0F2YWlsYWJsZTt2YXIgZz1NYXRoLmZsb29yKEEvOCk7QS09OCpnLHRoaXMuX2J5dGVzQXZhaWxhYmxlLT1nLHRoaXMuX2xvYWRXb3JkKCksdGhpcy5fd29yZDw8PUEsdGhpcy5fYml0c0F2YWlsYWJsZS09QX19fSx7a2V5OiJyZWFkQml0cyIsdmFsdWU6ZnVuY3Rpb24oQSl7aWYoQT4zMil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZWFkIG1vcmUgdGhhbiAzMiBiaXRzIik7dmFyIGc9TWF0aC5taW4odGhpcy5fYml0c0F2YWlsYWJsZSxBKSxJPXRoaXMuX3dvcmQ+Pj4zMi1nO3JldHVybiB0aGlzLl9iaXRzQXZhaWxhYmxlLT1nLHRoaXMuX2JpdHNBdmFpbGFibGU+MD90aGlzLl93b3JkPDw9Zzp0aGlzLl9ieXRlc0F2YWlsYWJsZT4wJiZ0aGlzLl9sb2FkV29yZCgpLChnPUEtZyk+MCYmdGhpcy5fYml0c0F2YWlsYWJsZT9JPDxnfHRoaXMucmVhZEJpdHMoZyk6SX19LHtrZXk6InNraXBMWiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtmb3IoQT0wO0E8dGhpcy5fYml0c0F2YWlsYWJsZTsrK0EpaWYoMCE9KHRoaXMuX3dvcmQmMjE0NzQ4MzY0OD4+PkEpKXJldHVybiB0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BLEE7cmV0dXJuIHRoaXMuX2xvYWRXb3JkKCksQSt0aGlzLnNraXBMWigpfX0se2tleToic2tpcFVFRyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNraXBCaXRzKDErdGhpcy5za2lwTFooKSl9fSx7a2V5OiJyZWFkVUVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuc2tpcExaKCk7cmV0dXJuIHRoaXMucmVhZEJpdHMoQSsxKS0xfX0se2tleToicmVhZEVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMucmVhZFVFRygpO3JldHVybiAxJkE/MStBPj4+MTotMSooQT4+PjEpfX0se2tleToicmVhZEJvb2wiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLnJlYWRCaXRzKDEpfX0se2tleToicmVhZFVCeXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRCaXRzKDgpfX0se2tleToic2tpcFNjYWxpbmdMaXN0Iix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9OCxJPTgsQj0wO0I8QTtCKyspMCE9PUkmJihJPShnK3RoaXMucmVhZEVHKCkrMjU2KSUyNTYpLGc9MD09PUk/ZzpJfX1dKSxBfSgpLGduPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnKXtobyh0aGlzLEEpLHRoaXMuX2J1ZmZlcj1nLHRoaXMuX29mZnNldD0wLHRoaXMuX2hlbGRCaXRzPTAsdGhpcy5fbnVtSGVsZEJpdHM9MH1yZXR1cm4gRG8oQSxbe2tleToicmVhZFVpbnQ4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MjR8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MTZ8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQ4QXJyYXkiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2J1ZmZlci5zbGljZSh0aGlzLl9vZmZzZXQsdGhpcy5fb2Zmc2V0K0EpO3JldHVybiB0aGlzLl9vZmZzZXQrPUEsZ319LHtrZXk6InN0cmVhbVJlYWQxQnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGVsZEJpdHM9dGhpcy5yZWFkVWludDgoKSx0aGlzLl9udW1IZWxkQml0cz04fX0se2tleToic3RyZWFtUmVhZDJCeXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oZWxkQml0cz10aGlzLnJlYWRVaW50MTYoKSx0aGlzLl9udW1IZWxkQml0cz0xNn19LHtrZXk6ImV4dHJhY3RCaXRzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz10aGlzLl9oZWxkQml0cz4+dGhpcy5fbnVtSGVsZEJpdHMtQSYoMTw8QSktMTtyZXR1cm4gdGhpcy5fbnVtSGVsZEJpdHMtPUEsZ319XSksQX0oKSxJbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpfXJldHVybiBEbyhBLG51bGwsW3trZXk6InBhcnNlVlZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBnbihnKSxCPUkucmVhZFVpbnQ4KCk7SS5zdHJlYW1SZWFkMUJ5dGVzKCksSS5leHRyYWN0Qml0cyg1KTt2YXIgUSxDLEUsaSx0LGUsbyxuLHI9SS5leHRyYWN0Qml0cygyKSsxLGE9SS5leHRyYWN0Qml0cygxKSxzPXt9O2EmJihJLnN0cmVhbVJlYWQyQnl0ZXMoKSxpPUkuZXh0cmFjdEJpdHMoMiksdD1JLmV4dHJhY3RCaXRzKDMpLEM9SS5leHRyYWN0Qml0cygzKSxFPUkuZXh0cmFjdEJpdHMoMiksSS5leHRyYWN0Qml0cyg2KSxzPUEucGFyc2VWVkNQVExSZWNvcmQoSSxDKSxRPUkucmVhZFVpbnQxNigpLGU9SS5yZWFkVWludDE2KCksbz1JLnJlYWRVaW50MTYoKSxuPUkucmVhZFVpbnQxNigpKTtmb3IodmFyIGM9SS5yZWFkVWludDgoKSxoPVtdLHk9W10sRD1bXSxmPW51bGwsdT0wO3U8Yzt1Kyspe0kuc3RyZWFtUmVhZDFCeXRlcygpLEkuZXh0cmFjdEJpdHMoMSksSS5leHRyYWN0Qml0cygyKTt2YXIgdz1JLmV4dHJhY3RCaXRzKDUpLGQ9MTsxMyE9PXcmJjEyIT09dyYmKGQ9SS5yZWFkVWludDE2KCkpO2Zvcih2YXIgRj0wO0Y8ZDtGKyspe3ZhciBsPUkucmVhZFVpbnQxNigpO3N3aXRjaCh3KXtjYXNlIDE0OmgucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKTticmVhaztjYXNlIDE1OnZhciBHPUkucmVhZFVpbnQ4QXJyYXkobCk7Znx8KGY9QS5wYXJzZVNQUyhBLnJlbW92ZUVQQihHKSkpLHkucHVzaChHKTticmVhaztjYXNlIDE2OkQucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKX19fXJldHVybntkYXRhOmcsY29uZmlndXJhdGlvblZlcnNpb246Qixjb2RlYzoiYnZjMi4xLjYuTDkzLkIwIixuYWxVbml0U2l6ZTpyLHB0bFByZXNlbnRGbGFnOmEsb2xzSWR4OlEsbnVtU3VibGF5ZXJzOkMsY29uc3RhbnRGcmFtZVJhdGU6RSxjaHJvbWFGb3JtYXRJZGM6aSxiaXREZXB0aEx1bWFNaW51czg6dCxwdGxSZWNvcmQ6cyx3aWR0aDplLGhlaWdodDpvLHNhbXBsZVJhdGU6bixudW1PZkFycmF5czpjLHZwczpoLHNwczp5LHBwczpELHNwc1BhcnNlZDpmfX19LHtrZXk6InBhcnNlVlZDUFRMUmVjb3JkIix2YWx1ZTpmdW5jdGlvbihBLGcpe0Euc3RyZWFtUmVhZDJCeXRlcygpLEEuZXh0cmFjdEJpdHMoMik7dmFyIEk9QS5leHRyYWN0Qml0cyg2KSxCPUEuZXh0cmFjdEJpdHMoNyksUT1BLmV4dHJhY3RCaXRzKDEpLEM9QS5yZWFkVWludDgoKTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgRT1BLmV4dHJhY3RCaXRzKDEpLGk9QS5leHRyYWN0Qml0cygxKSx0PW5ldyBVaW50OEFycmF5KEkpO2lmKEkpe2Zvcih2YXIgZT0wO2U8SS0xO2UrKyl7dmFyIG89QS5leHRyYWN0Qml0cyg2KTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgbj1BLmV4dHJhY3RCaXRzKDIpO3RbZV09bzw8MnxufXRbSS0xXT1BLmV4dHJhY3RCaXRzKDYpfWVsc2UgQS5leHRyYWN0Qml0cyg2KTt2YXIgcj1bXTtpZihnPjEpe0Euc3RyZWFtUmVhZDFCeXRlcygpO2Zvcih2YXIgYT0wLHM9Zy0yO3M+PTA7LS1zKXthfD1BLmV4dHJhY3RCaXRzKDEpPDxzfWZvcih2YXIgYz1nO2M8PTgmJmc+MTsrK2MpQS5leHRyYWN0Qml0cygxKTtmb3IodmFyIGg9Zy0yO2g+PTA7LS1oKWEmMTw8aCYmKHJbaF09QS5yZWFkVWludDgoKSl9dmFyIHk9QS5yZWFkVWludDgoKSxEPVtdO2lmKHkpZm9yKHZhciBmPTA7Zjx5O2YrKylELnB1c2goQS5yZWFkVWludDMyKCkpO3JldHVybntnZW5lcmFsUHJvZmlsZUlkYzpCLGdlbmVyYWxUaWVyRmxhZzpRLGdlbmVyYWxMZXZlbElkYzpDLHB0bEZyYW1lT25seUNvbnN0cmFpbnRGbGFnOkUscHRsTXVsdGlsYXllckVuYWJsZWRGbGFnOmksZ2VuZXJhbENvbnN0cmFpbnRJbmZvOnQsc3ViTGF5ZXJMZXZlbElkYzpyLGdlbmVyYWxTdWJQcm9maWxlSWRjOkQscHRsTnVtU3ViUHJvZmlsZXM6eSxudW1CeXRlc0NvbnN0cmFpbnRJbmZvOkl9fX0se2tleToiZ2V0QXZjY05hbHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1bXTtBLnBvc2l0aW9uPEEubGVuZ3RoLTQ7KXt2YXIgST1BLmRhdGF2aWV3LmdldEludDMyKEEuZGF0YXZpZXcucG9zaXRpb24pO2lmKCEoQS5sZW5ndGgtQS5wb3NpdGlvbj49SSkpYnJlYWs7dmFyIEI9QS5idWZmZXIuc2xpY2UoQS5wb3NpdGlvbixBLnBvc2l0aW9uKzQpO0Euc2tpcCg0KTt2YXIgUT1uZXcgVWludDhBcnJheShBLmJ1ZmZlci5zbGljZShBLnBvc2l0aW9uLEEucG9zaXRpb24rSSkpO0Euc2tpcChJKSxnLnB1c2goe2hlYWRlcjpCLGJvZHk6UX0pfXJldHVybiBnfX0se2tleToiYW5hbHlzZU5hbCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9KDI0OCZBLmJvZHlbMV0pPj4zO3N3aXRjaChBLnR5cGU9ZyxnKXtjYXNlIDIzOmNhc2UgMjQ6YnJlYWs7Y2FzZSA3OmNhc2UgODpBLmtleT0hMDticmVhaztjYXNlIDE0OkEudnBzPSEwO2JyZWFrO2Nhc2UgMTU6QS5zcHM9ITA7YnJlYWs7Y2FzZSAxNjpBLnBwcz0hMDticmVhaztjYXNlIDE3OkEuYXBzPSEwfX19LHtrZXk6InJlbW92ZUVQQiIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuYnl0ZUxlbmd0aCxJPVtdLEI9MTtCPGctMjspMD09PUFbQl0mJjA9PT1BW0IrMV0mJjM9PT1BW0IrMl0/KEkucHVzaChCKzIpLEIrPTIpOkIrKztpZighSS5sZW5ndGgpcmV0dXJuIEE7dmFyIFE9Zy1JLmxlbmd0aCxDPW5ldyBVaW50OEFycmF5KFEpLEU9MDtmb3IoQj0wO0I8UTtFKyssQisrKUU9PT1JWzBdJiYoRSsrLEkuc2hpZnQoKSksQ1tCXT1BW0VdO3JldHVybiBDfX0se2tleToicGFyc2VWcHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToicGFyc2VTUFMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBBbihnKTtJLnJlYWRVQnl0ZSgpLEkucmVhZFVCeXRlKCksSS5za2lwQml0cyg0KTt2YXIgQj1JLnJlYWRCaXRzKDQpLFE9SS5yZWFkQml0cygzKSxDPUkucmVhZEJpdHMoMiksRT00MjA7Qzw9MyYmKEU9WzAsNDIwLDQyMiw0NDRdW0NdKSxJLnJlYWRCaXRzKDIpLEkucmVhZEJpdHMoMSk7dmFyIGk9QS5fcGFyc2VQcm9maWxlVGllckxldmVsKEksMSxRKTtyZXR1cm4gSS5yZWFkQml0cygxKSxJLnJlYWRCaXRzKDEpJiZJLnJlYWRCaXRzKDEpLHt3aWR0aDpJLnJlYWRVRUcoKSxoZWlnaHQ6SS5yZWFkVUVHKCksc3BzTWF4U3ViTGF5ZXJNaW51czE6USxzcHNWaWRlb1BhcmFtZXRlclNldElkOkIsY2hyb21hRm9ybWF0SWRjOkMsY2hyb21hRm9ybWF0OkUscHRsSW5mbzppfX19LHtrZXk6Il9wYXJzZVByb2ZpbGVUaWVyTGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPWcucmVhZEJpdHMoNyksRT1nLnJlYWRCaXRzKDEpLGk9Zy5yZWFkQml0cyg4KSx0PWcucmVhZEJpdHMoMSksZT1nLnJlYWRCaXRzKDEpO0kmJihRPUEuX3BhcnNlR2VuZXJhbENvbnN0cmFpbnRzSW5mbyhnKSk7Zm9yKHZhciBvPUItMSxuPVtdLHI9W10sYT1bXSxzPW87cz49MDstLXMpbltzXT1nLnJlYWRCaXRzKDEpO2Zvcig7IWcuYnl0ZUFsaWduZWQoKTspZy5yZWFkQml0cygxKTtmb3IodmFyIGM9bztjPj0wOy0tYyluW2NdJiYocltjXT1nLnJlYWRVQnl0ZSgpKTtpZihJKWZvcih2YXIgaD1nLnJlYWRVQnl0ZSgpLHk9MDt5PGg7eSsrKWFbeV09Zy5yZWFkQml0cygzMik7cmV0dXJue2dlbmVyYWxQcm9maWxlSWRjOkMsZ2VuZXJhbFRpZXJGbGFnOkUsZ2VuZXJhbExldmVsSWRjOmkscHRsRnJhbWVPbmx5Q29uc3RyYWludEZsYWc6dCxwdGxNdWx0aWxheWVyRW5hYmxlZEZsYWc6ZSxwdGxTdWJsYXllckxldmVsUHJlc2VudEZsYWdzOm4scHRsU3VibGF5ZXJMZXZlbElkY3M6cixwdGxTdWJQcm9maWxlSWRjczphLGdjaUluZm86UX19fSx7a2V5OiJfcGFyc2VHZW5lcmFsQ29uc3RyYWludHNJbmZvIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnJlYWRCaXRzKDEpO2lmKGcpe0Euc2tpcEJpdHMoNzEpO3ZhciBJPUEucmVhZEJpdHMoOCk7SSYmQS5za2lwQml0cyhJKX12YXIgQj04LUEuYml0c1BvcygpJTg7cmV0dXJuIEEuc2tpcEJpdHMoQikse2djaVByZXNlbnRGbGFnOmd9fX1dKSxBfSgpLEJuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSl9cmV0dXJuIERvKEEsbnVsbCxbe2tleToiZmluZEJveCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPVtdO2lmKCFnKXJldHVybiBRO2Zvcih2YXIgQz0wLEU9IiIsaT0wO2cubGVuZ3RoPjc7KXtpZihDPVBvKGcpLEU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSksaT04LDE9PT1DPyhDPVZvKGcsOCksaSs9OCk6Q3x8KEM9Zy5sZW5ndGgpLCFJWzBdfHxFPT09SVswXSl7dmFyIHQ9Zy5zdWJhcnJheSgwLEMpO2lmKCEoSS5sZW5ndGg8MikpcmV0dXJuIEEuZmluZEJveCh0LnN1YmFycmF5KGkpLEkuc2xpY2UoMSksQitpKTtRLnB1c2goe3N0YXJ0OkIsc2l6ZTpDLGhlYWRlclNpemU6aSx0eXBlOkUsZGF0YTp0fSl9Qis9QyxnPWcuc3ViYXJyYXkoQyl9cmV0dXJuIFF9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLnRyYWNrSWQ9UG8oZyk7dmFyIEk9NCxCPTEmQS5mbGFncyxRPTImQS5mbGFncyxDPTgmQS5mbGFncyxFPTE2JkEuZmxhZ3MsaT0zMiZBLmZsYWdzO0ImJihJKz00LEEuYmFzZURhdGFPZmZzZXQ9UG8oZyxJKSxJKz00KSxRJiYoQS5zYW1wbGVEZXNjcmlwdGlvbkluZGV4PVBvKGcsSSksSSs9NCksQyYmKEEuZGVmYXVsdFNhbXBsZUR1cmF0aW9uPVBvKGcsSSksSSs9NCksRSYmKEEuZGVmYXVsdFNhbXBsZVNpemU9UG8oZyxJKSxJKz00KSxpJiYoQS5kZWZhdWx0U2FtcGxlRmxhZ3M9UG8oZyxJKSl9KSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wO0EucmVmZXJlbmNlX0lEPVBvKGcsSSksSSs9NCxBLnRpbWVzY2FsZT1QbyhnLEkpLEkrPTQsMD09PUEudmVyc2lvbj8oQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1QbyhnLEkpLEkrPTQsQS5maXJzdF9vZmZzZXQ9UG8oZyxJKSxJKz00KTooQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1WbyhnLEkpLEkrPTgsQS5maXJzdF9vZmZzZXQ9Vm8oZyxJKSxJKz04KSxJKz0yLEEucmVmZXJlbmNlcz1bXTt2YXIgQj1qbyhnLEkpO0krPTI7Zm9yKHZhciBRPTA7UTxCO1ErKyl7dmFyIEM9e307QS5yZWZlcmVuY2VzLnB1c2goQyk7dmFyIEU9UG8oZyxJKTtJKz00LEMucmVmZXJlbmNlX3R5cGU9RT4+MzEmMSxDLnJlZmVyZW5jZWRfc2l6ZT0yMTQ3NDgzNjQ3JkUsQy5zdWJzZWdtZW50X2R1cmF0aW9uPVBvKGcsSSksRT1QbyhnLEkrPTQpLEkrPTQsQy5zdGFydHNfd2l0aF9TQVA9RT4+MzEmMSxDLlNBUF90eXBlPUU+PjI4JjcsQy5TQVBfZGVsdGFfdGltZT0yNjg0MzU0NTUmRX19KSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubXZoZD1BLm12aGQoQS5maW5kQm94KEksWyJtdmhkIl0sQilbMF0pLGcudHJhaz1BLmZpbmRCb3goSSxbInRyYWsiXSxCKS5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSksZy5wc3NoPUEucHNzaChBLmZpbmRCb3goSSxbInBzc2giXSxCKVswXSl9KSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudGltZXNjYWxlPVBvKGcsMTYpLEEuZHVyYXRpb249Vm8oZywyMCksSSs9MjgpOihBLnRpbWVzY2FsZT1QbyhnLDgpLEEuZHVyYXRpb249UG8oZywxMiksSSs9MTYpLEEubmV4dFRyYWNrSWQ9UG8oZyxJKzc2KX0pKX19LHtrZXk6InRyYWsiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy50a2hkPUEudGtoZChBLmZpbmRCb3goSSxbInRraGQiXSxCKVswXSksZy5tZGlhPUEubWRpYShBLmZpbmRCb3goSSxbIm1kaWEiXSxCKVswXSksZy5lZHRzPUEuZWR0cyhBLmZpbmRCb3goSSxbImVkdHMiXSxCKVswXSl9KSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudHJhY2tJZD1QbyhnLDE2KSxBLmR1cmF0aW9uPVZvKGcsMjQpLEkrPTMyKTooQS50cmFja0lkPVBvKGcsOCksQS5kdXJhdGlvbj1QbyhnLDE2KSxJKz0yMCksQS53aWR0aD1QbyhnLEkrNTIpLEEuaGVpZ2h0PVBvKGcsSSs1Nil9KSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubWRoZD1BLm1kaGQoQS5maW5kQm94KEksWyJtZGhkIl0sQilbMF0pLGcuaGRscj1BLmhkbHIoQS5maW5kQm94KEksWyJoZGxyIl0sQilbMF0pLGcubWluZj1BLm1pbmYoQS5maW5kQm94KEksWyJtaW5mIl0sQilbMF0pfSkpfX0se2tleToiZWR0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmVsc3Q9QS5lbHN0KEEuZmluZEJveChJLFsiZWxzdCJdLEIpWzBdKX0pKX19LHtrZXk6ImVsc3QiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcsSSl7QS5lbnRyaWVzPVtdLEEuZW50cmllc0RhdGE9Zzt2YXIgQj0wLFE9UG8oZyxCKTtCKz00O2Zvcih2YXIgQz0wO0M8UTtDKyspe3ZhciBFPXt9O0EuZW50cmllcy5wdXNoKEUpLDE9PT1BLnZlcnNpb24/KEUuc2VnbWVudF9kdXJhdGlvbj1WbyhnLEIpLEIrPTgsRS5tZWRpYV90aW1lPXpvKGcsQiksQis9OCk6KEUuc2VnbWVudF9kdXJhdGlvbj1QbyhnLEIpLEIrPTQsRS5tZWRpYV90aW1lPVhvKGcsQiksQis9NCksRS5tZWRpYV9yYXRlX2ludGVnZXI9am8oZyxCKSxCKz0yLEUubWVkaWFfcmF0ZV9mcmFjdGlvbj1qbyhnLEkpLEIrPTJ9fSkpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9MDsxPT09QS52ZXJzaW9uPyhBLnRpbWVzY2FsZT1QbyhnLDE2KSxBLmR1cmF0aW9uPVZvKGcsMjApLEkrPTI4KTooQS50aW1lc2NhbGU9UG8oZyw4KSxBLmR1cmF0aW9uPVBvKGcsMTIpLEkrPTE2KTt2YXIgQj1qbyhnLEkpO0EubGFuZ3VhZ2U9U3RyaW5nLmZyb21DaGFyQ29kZSg5NisoQj4+MTAmMzEpLDk2KyhCPj41JjMxKSw5NisoMzEmQikpfSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7MD09PUEudmVyc2lvbiYmKEEuaGFuZGxlclR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSkpfSkpfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnZtaGQ9QS52bWhkKEEuZmluZEJveChJLFsidm1oZCJdLEIpWzBdKSxnLnNtaGQ9QS5zbWhkKEEuZmluZEJveChJLFsic21oZCJdLEIpWzBdKSxnLnN0Ymw9QS5zdGJsKEEuZmluZEJveChJLFsic3RibCJdLEIpWzBdKX0pKX19LHtrZXk6InZtaGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe0EuZ3JhcGhpY3Ntb2RlPWpvKGcpLEEub3Bjb2xvcj1bam8oZywyKSxqbyhnLDQpLGpvKGcsNildfSkpfX0se2tleToic21oZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5iYWxhbmNlPWpvKGcpfSkpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDLEU7Zy5zdHNkPUEuc3RzZChBLmZpbmRCb3goSSxbInN0c2QiXSxCKVswXSksZy5zdHRzPUEuc3R0cyhBLmZpbmRCb3goSSxbInN0dHMiXSxCKVswXSksZy5jdHRzPUEuY3R0cyhBLmZpbmRCb3goSSxbImN0dHMiXSxCKVswXSksZy5zdHNjPUEuc3RzYyhBLmZpbmRCb3goSSxbInN0c2MiXSxCKVswXSksZy5zdHN6PUEuc3RzeihBLmZpbmRCb3goSSxbInN0c3oiXSxCKVswXSksZy5zdGNvPUEuc3RjbyhBLmZpbmRCb3goSSxbInN0Y28iXSxCKVswXSksZy5zdGNvfHwoZy5jbzY0PUEuY282NChBLmZpbmRCb3goSSxbImNvNjQiXSxCKVswXSksZy5zdGNvPWcuY282NCk7dmFyIGk9bnVsbD09PShRPWcuc3RzZC5lbnRyaWVzWzBdKXx8dm9pZCAwPT09UXx8bnVsbD09PShDPVEuc2luZil8fHZvaWQgMD09PUN8fG51bGw9PT0oRT1DLnNjaGkpfHx2b2lkIDA9PT1FP3ZvaWQgMDpFLnRlbmMuZGVmYXVsdF9JVl9zaXplO2cuc3Rzcz1BLnN0c3MoQS5maW5kQm94KEksWyJzdHNzIl0sQilbMF0pLGcuc2VuYz1BLnNlbmMoQS5maW5kQm94KEksWyJzZW5jIl0sQilbMF0saSl9KSl9fSx7a2V5OiJzZW5jIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxJKXt2YXIgQj0wLFE9UG8oSSxCKTtCKz00LEEuc2FtcGxlcz1bXTtmb3IodmFyIEM9MDtDPFE7QysrKXtmb3IodmFyIEU9e0luaXRpYWxpemF0aW9uVmVjdG9yOltdfSxpPTA7aTxnO2krKylFLkluaXRpYWxpemF0aW9uVmVjdG9yW2ldPUlbQitpXTtpZihCKz1nLDImQS5mbGFncyl7RS5zdWJzYW1wbGVzPVtdO3ZhciB0PWpvKEksQik7Qis9Mjtmb3IodmFyIGU9MDtlPHQ7ZSsrKXt2YXIgbz17fTtvLkJ5dGVzT2ZDbGVhckRhdGE9am8oSSxCKSxCKz0yLG8uQnl0ZXNPZlByb3RlY3RlZERhdGE9UG8oSSxCKSxCKz00LEUuc3Vic2FtcGxlcy5wdXNoKG8pfX1BLnNhbXBsZXMucHVzaChFKX19KSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9W10sQj1bXSxRPTAsQz0wO0M8MTY7QysrKUIucHVzaChlbihnW1ErQ10pKTtpZihRKz0xNixBLnZlcnNpb24+MCl7dmFyIEU9UG8oZyxRKTtRKz00O2Zvcih2YXIgaT0wO2k8KCIiK0UpLmxlbmd0aDtpKyspZm9yKHZhciB0PTA7dDwxNjt0Kyspe3ZhciBlPWdbUV07USs9MSxJLnB1c2goZW4oZSkpfX12YXIgbz1QbyhnLFEpO0EuZGF0YV9zaXplPW8sUSs9NCxBLmtpZD1JLEEuc3lzdGVtX2lkPUIsQS5idWZmZXI9Z30pKX19LHtrZXk6ImJ2YzIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9Q24oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLnZ2Y0M9QS5idjJDKEEuZmluZEJveChDLFsiYnYyQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImJ2MkMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcsSSl7dmFyIEI9SW4ucGFyc2VWVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZChnKTtmb3IodmFyIFEgaW4gQilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQixRKSYmKEFbUV09QltRXSl9KSl9fSx7a2V5OiJzdHNkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMCwoZnVuY3Rpb24oZyxJLEIpe2cuZW50cnlDb3VudD1QbyhJKSxnLmVudHJpZXM9QS5maW5kQm94KEkuc3ViYXJyYXkoNCksW10sQis0KS5tYXAoKGZ1bmN0aW9uKGcpe3N3aXRjaChnLnR5cGUpe2Nhc2UiYXZjMSI6Y2FzZSJhdmMyIjpjYXNlImF2YzMiOmNhc2UiYXZjNCI6cmV0dXJuIEEuYXZjMShnKTtjYXNlImh2YzEiOmNhc2UiaGV2MSI6cmV0dXJuIEEuaHZjMShnKTtjYXNlImJ2YzIiOnJldHVybiBBLmJ2YzIoZyk7Y2FzZSJtcDRhIjpyZXR1cm4gQS5tcDRhKGcpO2Nhc2UiYWxhdyI6Y2FzZSJ1bGF3IjpyZXR1cm4gQS5hbGF3KGcpO2Nhc2UiZW5jYSI6cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmNoYW5uZWxDb3VudD1qbyhJLDE2KSxnLnNhbXBsZXNpemU9am8oSSwxOCksZy5zYW1wbGVSYXRlPVBvKEksMjQpLzY1NTM2LEk9SS5zdWJhcnJheSgyOCksZy5zaW5mPUEuc2luZihBLmZpbmRCb3goSSxbInNpbmYiXSxCKVswXSksZy5lc2RzPUEuZXNkcyhBLmZpbmRCb3goSSxbImVzZHMiXSxCKVswXSl9KSk7Y2FzZSJlbmN2IjpyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cud2lkdGg9am8oSSwyNCksZy5oZWlnaHQ9am8oSSwyNiksZy5ob3JpenJlc29sdXRpb249UG8oSSwyOCksZy52ZXJ0cmVzb2x1dGlvbj1QbyhJLDMyKSxJPUkuc3ViYXJyYXkoNzgpLGcuc2luZj1BLnNpbmYoQS5maW5kQm94KEksWyJzaW5mIl0sQilbMF0pLGcuYXZjQz1BLmF2Y0MoQS5maW5kQm94KEksWyJhdmNDIl0sQilbMF0pLGcuaHZjQz1BLmh2Y0MoQS5maW5kQm94KEksWyJodmNDIl0sQilbMF0pLGcucGFzcD1BLnBhc3AoQS5maW5kQm94KEksWyJwYXNwIl0sQilbMF0pfSkpfX0pKS5maWx0ZXIoQm9vbGVhbil9KSl9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oQSxnKXt2YXIgST02O0EuZGVmYXVsdF9Jc0VuY3J5cHRlZD1nW0ldLEkrPTEsQS5kZWZhdWx0X0lWX3NpemU9Z1tJXSxJKz0xLEEuZGVmYXVsdF9LSUQ9W107Zm9yKHZhciBCPTA7QjwxNjtCKyspQS5kZWZhdWx0X0tJRC5wdXNoKGVuKGdbSV0pKSxJKz0xfSkpfX0se2tleToic2NoaSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnRlbmM9QS50ZW5jKEEuZmluZEJveChJLFsidGVuYyJdLEIpWzBdKX0pKX19LHtrZXk6InNpbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy5zY2hpPUEuc2NoaShBLmZpbmRCb3goSSxbInNjaGkiXSxCKVswXSksZy5mcm1hPUEuZnJtYShBLmZpbmRCb3goSSxbImZybWEiXSxCKVswXSl9KSl9fSx7a2V5OiJmcm1hIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmRhdGFfZm9ybWF0PSIiO2Zvcih2YXIgST0wO0k8NDtJKyspQS5kYXRhX2Zvcm1hdCs9U3RyaW5nLmZyb21DaGFyQ29kZShnW0ldKX0pKX19LHtrZXk6ImF2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9Q24oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLmF2Y0M9QS5hdmNDKEEuZmluZEJveChDLFsiYXZjQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcpe0EuY29uZmlndXJhdGlvblZlcnNpb249Z1swXSxBLkFWQ1Byb2ZpbGVJbmRpY2F0aW9uPWdbMV0sQS5wcm9maWxlQ29tcGF0aWJpbGl0eT1nWzJdLEEuQVZDTGV2ZWxJbmRpY2F0aW9uPWdbM10sQS5jb2RlYz1mdW5jdGlvbihBKXtmb3IodmFyIGcsST0iYXZjMS4iLEI9MDtCPDM7QisrKShnPUFbQl0udG9TdHJpbmcoMTYpKS5sZW5ndGg8MiYmKGc9IjAiLmNvbmNhdChnKSksSSs9ZztyZXR1cm4gSX0oW2dbMV0sZ1syXSxnWzNdXSksQS5sZW5ndGhTaXplTWludXNPbmU9MyZnWzRdLEEuc3BzTGVuZ3RoPTMxJmdbNV0sQS5zcHM9W107Zm9yKHZhciBJPTYsQj0wO0I8QS5zcHNMZW5ndGg7QisrKXt2YXIgUT1qbyhnLEkpO0krPTIsQS5zcHMucHVzaChnLnN1YmFycmF5KEksSStRKSksSSs9UX1BLnBwc0xlbmd0aD1nW0ldLEkrPTEsQS5wcHM9W107Zm9yKHZhciBDPTA7QzxBLnBwc0xlbmd0aDtDKyspe3ZhciBFPWpvKGcsSSk7SSs9MixBLnBwcy5wdXNoKGcuc3ViYXJyYXkoSSxJKz1FKSksSSs9RX19KSl9fSx7a2V5OiJodmMxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe3ZhciBRPUNuKGcsSSksQz1JLnN1YmFycmF5KFEpO0IrPVEsZy5odmNDPUEuaHZjQyhBLmZpbmRCb3goQyxbImh2Y0MiXSxCKVswXSksZy5wYXNwPUEucGFzcChBLmZpbmRCb3goQyxbInBhc3AiXSxCKVswXSl9KSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oZyxJKXtnLmRhdGE9QS5kYXRhLGcuY29kZWM9ImhldjEuMS42Lkw5My5CMCIsZy5jb25maWd1cmF0aW9uVmVyc2lvbj1JWzBdO3ZhciBCPUlbMV07Zy5nZW5lcmFsUHJvZmlsZVNwYWNlPUI+PjYsZy5nZW5lcmFsVGllckZsYWc9KDMyJkIpPj41LGcuZ2VuZXJhbFByb2ZpbGVJZGM9MzEmQixnLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eT1QbyhJLDIpLGcuZ2VuZXJhbENvbnN0cmFpbnRJbmRpY2F0b3JGbGFncz1JLnN1YmFycmF5KDYsMTIpLGcuZ2VuZXJhbExldmVsSWRjPUlbMTJdLGcuYXZnRnJhbWVSYXRlPWpvKEksMTkpLGcubnVtT2ZBcnJheXM9SVsyMl0sZy52cHM9W10sZy5zcHM9W10sZy5wcHM9W107Zm9yKHZhciBRPTIzLEM9MCxFPTAsaT0wLHQ9MDt0PGcubnVtT2ZBcnJheXM7dCsrKXtDPTYzJklbUV0sRT1qbyhJLFErMSksUSs9Mztmb3IodmFyIGUsbz1bXSxuPTA7bjxFO24rKylpPWpvKEksUSksUSs9MixvLnB1c2goSS5zdWJhcnJheShRLFEraSkpLFErPWk7aWYoMzI9PT1DKShlPWcudnBzKS5wdXNoLmFwcGx5KGUsbyk7ZWxzZSBpZigzMz09PUMpe3ZhciByOyhyPWcuc3BzKS5wdXNoLmFwcGx5KHIsbyl9ZWxzZSBpZigzND09PUMpe3ZhciBhOyhhPWcucHBzKS5wdXNoLmFwcGx5KGEsbyl9fX0pKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcpe0EuaFNwYWNpbmc9UG8oZyksQS52U3BhY2luZz1QbyhnLDQpfSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUT1FbihnLEkpO2cuZXNkcz1BLmVzZHMoQS5maW5kQm94KEkuc3ViYXJyYXkoUSksWyJlc2RzIl0sQitRKVswXSl9KSl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLmNvZGVjPSJtcDRhLiI7Zm9yKHZhciBJPTAsQj0wLFE9MCxDPTA7Zy5sZW5ndGg7KXtmb3IoQz1nW0k9MF0sQj1nW0krMV0sSSs9MjsxMjgmQjspUT0oMTI3JkIpPDw3LEI9Z1tJXSxJKz0xO2lmKFErPTEyNyZCLDM9PT1DKWc9Zy5zdWJhcnJheShJKzMpO2Vsc2V7aWYoNCE9PUMpe2lmKDU9PT1DKXt2YXIgRT1BLmNvbmZpZz1nLnN1YmFycmF5KEksSStRKSxpPSgyNDgmRVswXSk+PjM7cmV0dXJuIDMxPT09aSYmRS5sZW5ndGg+PTImJihpPTMyKygoNyZFWzBdKTw8MykrKCgyMjQmRVsxXSk+PjUpKSxBLm9iamVjdFR5cGU9aSxBLmNvZGVjKz1pLnRvU3RyaW5nKDE2KSx2b2lkKCIuIj09PUEuY29kZWNbQS5jb2RlYy5sZW5ndGgtMV0mJihBLmNvZGVjPUEuY29kZWMuc3Vic3RyaW5nKDAsQS5jb2RlYy5sZW5ndGgtMSkpKX1yZXR1cm4gdm9pZCgiLiI9PT1BLmNvZGVjW0EuY29kZWMubGVuZ3RoLTFdJiYoQS5jb2RlYz1BLmNvZGVjLnN1YnN0cmluZygwLEEuY29kZWMubGVuZ3RoLTEpKSl9QS5jb2RlYys9KGdbSV0udG9TdHJpbmcoMTYpKyIuIikucGFkU3RhcnQoMywiMCIpLGc9Zy5zdWJhcnJheShJKzEzKX19fSkpfX0se2tleToiYWxhdyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITEsKGZ1bmN0aW9uKEEsZyl7RW4oQSxnKX0pKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPVtdLFE9NCxDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OlBvKGcsUSksZGVsdGE6UG8oZyxRKzQpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe3ZhciBJPVBvKGcpLEI9W10sUT00O2lmKDE9PT1BLnZlcnNpb24pZm9yKHZhciBDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OlBvKGcsUSksb2Zmc2V0OlBvKGcsUSs0KX0pLFErPTg7ZWxzZSBmb3IodmFyIEU9MDtFPEk7RSsrKUIucHVzaCh7Y291bnQ6UG8oZyxRKSxvZmZzZXQ6LSgxK35QbyhnLFErNCkpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT17Zmlyc3RDaHVuazpQbyhnLFEpLHNhbXBsZXNQZXJDaHVuazpQbyhnLFErNCksc2FtcGxlRGVzY3JpcHRpb25JbmRleDpQbyhnLFErOCl9LFErPTEyO0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9UG8oZyksQj1QbyhnLDQpLFE9bmV3IEFycmF5KEIpO2lmKCFJKWZvcih2YXIgQz04LEU9MDtFPEI7RSsrKVFbRV09UG8oZyxDKSxDKz00O0Euc2FtcGxlU2l6ZT1JLEEuc2FtcGxlQ291bnQ9QixBLmVudHJ5U2l6ZXM9UX0pKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT1QbyhnLFEpLFErPTQ7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJjbzY0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9UG8oZyksQj1uZXcgQXJyYXkoSSksUT00LEM9MDtDPEk7QysrKUJbQ109Vm8oZyxRKSxRKz04O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVBvKGcpLEI9bmV3IEFycmF5KEkpLFE9NCxDPTA7QzxJO0MrKylCW0NdPVBvKGcsUSksUSs9NDtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy5tZmhkPUEubWZoZChBLmZpbmRCb3goSSxbIm1maGQiXSxCKVswXSksZy50cmFmPUEuZmluZEJveChJLFsidHJhZiJdLEIpLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKX0pKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe0Euc2VxdWVuY2VOdW1iZXI9UG8oZyl9KSl9fSx7a2V5OiJ0cmFmIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cudGZoZD1BLnRmaGQoQS5maW5kQm94KEksWyJ0ZmhkIl0sQilbMF0pLGcudGZkdD1BLnRmZHQoQS5maW5kQm94KEksWyJ0ZmR0Il0sQilbMF0pLGcudHJ1bj1BLnRydW4oQS5maW5kQm94KEksWyJ0cnVuIl0sQilbMF0pfSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9QS52ZXJzaW9uLEI9QS5mbGFncyxRPWcubGVuZ3RoLEM9QS5zYW1wbGVDb3VudD1QbyhnKSxFPTQ7aWYoUT5FJiYxJkImJihBLmRhdGFPZmZzZXQ9LSgxK35QbyhnLEUpKSxFKz00KSxRPkUmJjQmQiYmKEEuZmlyc3RTYW1wbGVGbGFncz1QbyhnLEUpLEUrPTQpLFE+RSl7dmFyIGk7QS5zYW1wbGVzPW5ldyBBcnJheShDKTtmb3IodmFyIHQ9MDt0PEM7dCsrKWk9e30sMjU2JkImJihpLmR1cmF0aW9uPVBvKGcsRSksRSs9NCksNTEyJkImJihpLnNpemU9UG8oZyxFKSxFKz00KSwxMDI0JkImJihpLmZsYWdzPVBvKGcsRSksRSs9NCksMjA0OCZCJiYoaS5jdHM9ST8tKDErflBvKGcsRSs0KSk6UG8oZyxFKSxFKz00KSxBLnNhbXBsZXNbdF09aX19KSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXsxPT09QS52ZXJzaW9uP0EuYmFzZU1lZGlhRGVjb2RlVGltZT1WbyhnKTpBLmJhc2VNZWRpYURlY29kZVRpbWU9UG8oZyl9KSl9fSx7a2V5OiJwcm9iZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuISFBLmZpbmRCb3goZyxbImZ0eXAiXSl9fSx7a2V5OiJwYXJzZVNhbXBsZUZsYWdzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm57aXNMZWFkaW5nOigxMiZBWzBdKT4+PjIsZGVwZW5kc09uOjMmQVswXSxpc0RlcGVuZGVkT246KDE5MiZBWzFdKT4+PjYsaGFzUmVkdW5kYW5jeTooNDgmQVsxXSk+Pj40LHBhZGRpbmdWYWx1ZTooMTQmQVsxXSk+Pj4xLGlzTm9uU3luY1NhbXBsZToxJkFbMV0sZGVncmFkYXRpb25Qcmlvcml0eTpBWzJdPDw4fEFbM119fX0se2tleToibW9vdlRvVHJhY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEM9QS50cmFrO2lmKEMmJkMubGVuZ3RoKXt2YXIgRT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInZpZGUiPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSksaT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInNvdW4iPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSk7aWYoRSYmZyl7dmFyIHQsZSxvLG4scixhLHMsYyxoPWcseT1udWxsPT09KHQ9RS50a2hkKXx8dm9pZCAwPT09dD92b2lkIDA6dC50cmFja0lkO251bGwhPXkmJihoLmlkPUUudGtoZC50cmFja0lkKSxoLnRraGREdXJhdGlvbj1FLnRraGQuZHVyYXRpb24saC5tdmhkRHVydGlvbj1BLm12aGQuZHVyYXRpb24saC5tdmhkVGltZWNhbGU9QS5tdmhkLnRpbWVzY2FsZSxoLnRpbWVzY2FsZT1oLmZvcm1hdFRpbWVzY2FsZT1FLm1kaWEubWRoZC50aW1lc2NhbGUsaC5kdXJhdGlvbj1FLm1kaWEubWRoZC5kdXJhdGlvbnx8aC5tdmhkRHVydGlvbi9oLm12aGRUaW1lY2FsZSpoLnRpbWVzY2FsZSxudWxsIT09KGU9RS5lZHRzKSYmdm9pZCAwIT09ZSYmZS5lbHN0JiYoaC5lZGl0TGlzdD1FLmVkdHMuZWxzdCxoLmVkaXRMaXN0QXBwbGllZD1FLmVkaXRMaXN0QXBwbGllZCk7dmFyIEQsZix1LHcsZCxGLGwsRyxSPUUubWRpYS5taW5mLnN0Ymwuc3RzZC5lbnRyaWVzWzBdO2lmKGgud2lkdGg9Ui53aWR0aCxoLmhlaWdodD1SLmhlaWdodCxSLnBhc3AmJihoLnNhclJhdGlvPVtSLnBhc3AuaFNwYWNpbmcsUi5wYXNwLnZTcGFjaW5nXSksUi5odmNDKWguY29kZWNUeXBlPU5vLGguY29kZWM9Ui5odmNDLmNvZGVjLGgudnBzPVIuaHZjQy52cHMsaC5zcHM9Ui5odmNDLnNwcyxoLnBwcz1SLmh2Y0MucHBzLGguaHZjQz1SLmh2Y0MuZGF0YTtlbHNlIGlmKFIuYXZjQyloLmNvZGVjPVIuYXZjQy5jb2RlYyxoLnNwcz1SLmF2Y0Muc3BzLGgucHBzPVIuYXZjQy5wcHM7ZWxzZXtpZighUi52dmNDKXRocm93IG5ldyBFcnJvcigidW5rbm93biB2aWRlbyBzdHNkIGVudHJ5Iik7aC5jb2RlY1R5cGU9TW8saC5jb2RlYz1SLnZ2Y0MuY29kZWMsaC5zcHM9Ui52dmNDLnNwcyxoLnBwcz1SLnZ2Y0MucHBzLGgudnBzPVIudnZjQy52cHMsaC52dmNDPVIudnZjQy5kYXRhfWlmKGgucHJlc2VudD0hMCxoLmV4dD17fSxoLmV4dC5zdHNzPW51bGw9PT0obz1FLm1kaWEpfHx2b2lkIDA9PT1vfHxudWxsPT09KG49by5taW5mKXx8dm9pZCAwPT09bnx8bnVsbD09PShyPW4uc3RibCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RzcyxoLmV4dC5jdHRzPW51bGw9PT0oYT1FLm1kaWEpfHx2b2lkIDA9PT1hfHxudWxsPT09KHM9YS5taW5mKXx8dm9pZCAwPT09c3x8bnVsbD09PShjPXMuc3RibCl8fHZvaWQgMD09PWM/dm9pZCAwOmMuY3R0cyxSJiYiZW5jdiI9PT1SLnR5cGUpaC5pc1ZpZGVvRW5jcnlwdGlvbj0hMCxSLmRlZmF1bHRfS0lEPW51bGw9PT0oRD1SLnNpbmYpfHx2b2lkIDA9PT1EfHxudWxsPT09KGY9RC5zY2hpKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi50ZW5jLmRlZmF1bHRfS0lELFIuZGVmYXVsdF9Jc0VuY3J5cHRlZD1udWxsPT09KHU9Ui5zaW5mKXx8dm9pZCAwPT09dXx8bnVsbD09PSh3PXUuc2NoaSl8fHZvaWQgMD09PXc/dm9pZCAwOncudGVuYy5kZWZhdWx0X0lzRW5jcnlwdGVkLFIuZGVmYXVsdF9JVl9zaXplPW51bGw9PT0oZD1SLnNpbmYpfHx2b2lkIDA9PT1kfHxudWxsPT09KEY9ZC5zY2hpKXx8dm9pZCAwPT09Rj92b2lkIDA6Ri50ZW5jLmRlZmF1bHRfSVZfc2l6ZSxoLnZpZGVvU2VuYz1FLm1kaWEubWluZi5zdGJsLnNlbmMmJkUubWRpYS5taW5mLnN0Ymwuc2VuYy5zYW1wbGVzLFIuZGF0YV9mb3JtYXQ9bnVsbD09PShsPVIuc2luZil8fHZvaWQgMD09PWx8fG51bGw9PT0oRz1sLmZybWEpfHx2b2lkIDA9PT1HP3ZvaWQgMDpHLmRhdGFfZm9ybWF0LGgudXNlRU1FPUEudXNlRU1FLGgua2lkVmFsdWU9QS5raWRWYWx1ZSxoLnBzc2g9QS5wc3NoLGguZW5jdj1SfWlmKGkmJkkpe3ZhciBVLGssUyxOLE0sWSxILHAsSixMLHY9SSxLPW51bGw9PT0oVT1pLnRraGQpfHx2b2lkIDA9PT1VP3ZvaWQgMDpVLnRyYWNrSWQ7bnVsbCE9SyYmKHYuaWQ9aS50a2hkLnRyYWNrSWQpLHYudGtoZER1cmF0aW9uPWkudGtoZC5kdXJhdGlvbix2Lm12aGREdXJ0aW9uPUEubXZoZC5kdXJhdGlvbix2Lm12aGRUaW1lY2FsZT1BLm12aGQudGltZXNjYWxlLHYudGltZXNjYWxlPXYuZm9ybWF0VGltZXNjYWxlPWkubWRpYS5tZGhkLnRpbWVzY2FsZSx2LmR1cmF0aW9uPWkubWRpYS5tZGhkLmR1cmF0aW9ufHx2Lm12aGREdXJ0aW9uL3YubXZoZFRpbWVjYWxlKnYudGltZXNjYWxlLG51bGwhPT0oaz1pLmVkdHMpJiZ2b2lkIDAhPT1rJiZrLmVsc3QmJih2LmVkaXRMaXN0PWkuZWR0cy5lbHN0LHYuZWRpdExpc3RBcHBsaWVkPWkuZWRpdExpc3RBcHBsaWVkKTt2YXIgbSx4LHEsYixULE8sVyxaLGo9aS5tZGlhLm1pbmYuc3RibC5zdHNkLmVudHJpZXNbMF07c3dpdGNoKHYuc2FtcGxlU2l6ZT1qLnNhbXBsZVNpemUsdi5zYW1wbGVSYXRlPWouc2FtcGxlUmF0ZSx2LmNoYW5uZWxDb3VudD1qLmNoYW5uZWxDb3VudCx2LnByZXNlbnQ9ITAsai50eXBlKXtjYXNlImFsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9SG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztjYXNlInVsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9cG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztkZWZhdWx0OnYuc2FtcGxlRHVyYXRpb249T28uZ2V0RnJhbWVEdXJhdGlvbih2LnNhbXBsZVJhdGUsdi50aW1lc2NhbGUpLHYuc2FtcGxlUmF0ZUluZGV4PU9vLmdldFJhdGVJbmRleEJ5UmF0ZSh2LnNhbXBsZVJhdGUpLHYub2JqZWN0VHlwZT0obnVsbD09PShCPWouZXNkcyl8fHZvaWQgMD09PUI/dm9pZCAwOkIub2JqZWN0VHlwZSl8fDIsai5lc2RzJiYodi5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKSksdi5jb2RlYz0obnVsbD09PShRPWouZXNkcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEuY29kZWMpfHwibXA0YS40MC4yIn1pZih2LnNhbXBsZUR1cmF0aW9uPU9vLmdldEZyYW1lRHVyYXRpb24odi5zYW1wbGVSYXRlLHYudGltZXNjYWxlKSx2Lm9iamVjdFR5cGU9KG51bGw9PT0oUz1qLmVzZHMpfHx2b2lkIDA9PT1TP3ZvaWQgMDpTLm9iamVjdFR5cGUpfHwyLGouZXNkcyYmKGouZXNkcy5jb25maWc/di5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKTpjb25zb2xlLndhcm4oImVzZHMgY29uZmlnIGlzIG51bGwiKSksdi5jb2RlYz0obnVsbD09PShOPWouZXNkcyl8fHZvaWQgMD09PU4/dm9pZCAwOk4uY29kZWMpfHwibXA0YS40MC4yIix2LnNhbXBsZVJhdGVJbmRleD1Pby5nZXRSYXRlSW5kZXhCeVJhdGUodi5zYW1wbGVSYXRlKSx2LmV4dD17fSx2LmV4dC5zdHNzPW51bGw9PT0oTT1pLm1kaWEpfHx2b2lkIDA9PT1NfHxudWxsPT09KFk9TS5taW5mKXx8dm9pZCAwPT09WXx8bnVsbD09PShIPVkuc3RibCl8fHZvaWQgMD09PUg/dm9pZCAwOkguc3Rzcyx2LmV4dC5jdHRzPW51bGw9PT0ocD1pLm1kaWEpfHx2b2lkIDA9PT1wfHxudWxsPT09KEo9cC5taW5mKXx8dm9pZCAwPT09Snx8bnVsbD09PShMPUouc3RibCl8fHZvaWQgMD09PUw/dm9pZCAwOkwuY3R0cyx2LnByZXNlbnQ9ITAsaiYmImVuY2EiPT09ai50eXBlKXYuaXNBdWRpb0VuY3J5cHRpb249ITAsai5kYXRhX2Zvcm1hdD1udWxsPT09KG09ai5zaW5mKXx8dm9pZCAwPT09bXx8bnVsbD09PSh4PW0uZnJtYSl8fHZvaWQgMD09PXg/dm9pZCAwOnguZGF0YV9mb3JtYXQsai5kZWZhdWx0X0tJRD1udWxsPT09KHE9ai5zaW5mKXx8dm9pZCAwPT09cXx8bnVsbD09PShiPXEuc2NoaSl8fHZvaWQgMD09PWI/dm9pZCAwOmIudGVuYy5kZWZhdWx0X0tJRCxqLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9bnVsbD09PShUPWouc2luZil8fHZvaWQgMD09PVR8fG51bGw9PT0oTz1ULnNjaGkpfHx2b2lkIDA9PT1PP3ZvaWQgMDpPLnRlbmMuZGVmYXVsdF9Jc0VuY3J5cHRlZCxqLmRlZmF1bHRfSVZfc2l6ZT1udWxsPT09KFc9ai5zaW5mKXx8dm9pZCAwPT09V3x8bnVsbD09PShaPVcuc2NoaSl8fHZvaWQgMD09PVo/dm9pZCAwOloudGVuYy5kZWZhdWx0X0lWX3NpemUsdi5hdWRpb1NlbmM9aS5tZGlhLm1pbmYuc3RibC5zZW5jJiZpLm1kaWEubWluZi5zdGJsLnNlbmMuc2FtcGxlcyx2LnVzZUVNRT1BLnVzZUVNRSx2LmtpZFZhbHVlPUEua2lkVmFsdWUsdi5lbmNhPWp9aWYoSSYmKEkuaXNWaWRlb0VuY3J5cHRpb249ISFnJiZnLmlzVmlkZW9FbmNyeXB0aW9uKSxnJiYoZy5pc0F1ZGlvRW5jcnlwdGlvbj0hIUkmJkkuaXNBdWRpb0VuY3J5cHRpb24pLG51bGwhPWcmJmcuZW5jdnx8bnVsbCE9SSYmSS5lbmNhKXt2YXIgUCxYLFY9bnVsbD09Z3x8bnVsbD09PShQPWcuZW5jdil8fHZvaWQgMD09PVA/dm9pZCAwOlAuZGVmYXVsdF9LSUQsej1udWxsPT1JfHxudWxsPT09KFg9SS5lbmNhKXx8dm9pZCAwPT09WD92b2lkIDA6WC5kZWZhdWx0X0tJRCxfPVZ8fHo/KFZ8fHopLmpvaW4oIiIpOm51bGw7ZyYmKGcua2lkPV8pLEkmJihJLmtpZD1fKX1yZXR1cm4gZyYmKGcuZmxhZ3M9Mzg0MSksSSYmKEkuZmxhZ3M9MTc5Mykse3ZpZGVvVHJhY2s6ZyxhdWRpb1RyYWNrOkl9fX19LHtrZXk6ImV2YWx1YXRlRGVmYXVsdER1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUT1udWxsPT1nfHxudWxsPT09KEI9Zy5zYW1wbGVzKXx8dm9pZCAwPT09Qj92b2lkIDA6Qi5sZW5ndGg7cmV0dXJuIFE/MTAyNCpRL2cudGltZXNjYWxlKkEudGltZXNjYWxlL0k6MTAyNH19LHtrZXk6Im1vb2ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUT17fTtyZXR1cm4gZy5tZmhkJiYoSSYmKEkuc2VxdWVuY2VOdW1iZXI9Zy5tZmhkLnNlcXVlbmNlTnVtYmVyKSxCJiYoQi5zZXF1ZW5jZU51bWJlcj1nLm1maGQuc2VxdWVuY2VOdW1iZXIpKSxnLnRyYWYuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEM9Zy50ZmhkLEU9Zy50ZmR0LGk9Zy50cnVuO2lmKEMmJmkpe0UmJihJJiZJLmlkPT09Qy50cmFja0lkJiYoSS5iYXNlTWVkaWFEZWNvZGVUaW1lPUUuYmFzZU1lZGlhRGVjb2RlVGltZSksQiYmQi5pZD09PUMudHJhY2tJZCYmKEIuYmFzZU1lZGlhRGVjb2RlVGltZT1FLmJhc2VNZWRpYURlY29kZVRpbWUpKTt2YXIgdD1DLmRlZmF1bHRTYW1wbGVTaXplfHwwLGU9Qy5kZWZhdWx0U2FtcGxlRHVyYXRpb258fEEuZXZhbHVhdGVEZWZhdWx0RHVyYXRpb24oSSxCLGkuc2FtcGxlcy5sZW5ndGh8fGkuc2FtcGxlQ291bnQpLG89aS5kYXRhT2Zmc2V0fHwwLG49MCxyPS0xO2lmKCFpLnNhbXBsZXMubGVuZ3RoJiZpLnNhbXBsZUNvdW50KXtRW0MudHJhY2tJZF09bmV3IEFycmF5KGkuc2FtcGxlQ291bnQpO2Zvcih2YXIgYT0wO2E8aS5zYW1wbGVDb3VudDthKyspUVtDLnRyYWNrSWRdW2FdPXtvZmZzZXQ6byxkdHM6bixkdXJhdGlvbjplLHNpemU6dH0sbis9ZSxvKz10fWVsc2UgUVtDLnRyYWNrSWRdPWkuc2FtcGxlcy5tYXAoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuKEE9e29mZnNldDpvLGR0czpuLHB0czpuKyhBLmN0c3x8MCksZHVyYXRpb246QS5kdXJhdGlvbnx8ZSxzaXplOkEuc2l6ZXx8dCxnb3BJZDpyLGtleWZyYW1lOjA9PT1nfHxudWxsIT09QS5mbGFncyYmdm9pZCAwIT09QS5mbGFncyYmKDY1NTM2JkEuZmxhZ3MpPj4+MCE9NjU1MzZ9KS5rZXlmcmFtZSYmKHIrKyxBLmdvcElkPXIpLG4rPUEuZHVyYXRpb24sbys9QS5zaXplLEF9KSl9fSkpLFF9fSx7a2V5OiJtb292VG9TYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnRyYWs7aWYoZyYmZy5sZW5ndGgpe3ZhciBJPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4idmlkZSI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKSxCPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4ic291biI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKTtpZihJfHxCKXt2YXIgUSxDO2lmKEkpe3ZhciBFLGksdD1udWxsPT09KEU9SS5tZGlhKXx8dm9pZCAwPT09RXx8bnVsbD09PShpPUUubWluZil8fHZvaWQgMD09PWk/dm9pZCAwOmkuc3RibDtpZighdClyZXR1cm47dmFyIGU9dC5zdHRzLG89dC5zdHNjLG49dC5zdHN6LHI9dC5zdGNvLGE9dC5zdHNzLHM9dC5jdHRzO2lmKCEoZSYmbyYmbiYmciYmYSkpcmV0dXJuO1E9UW4oZSxvLG4scixzLGEpfWlmKEIpe3ZhciBjLGgseSxEPW51bGw9PT0oYz1CLm1kaWEpfHx2b2lkIDA9PT1jfHxudWxsPT09KGg9Yy5taW5mKXx8dm9pZCAwPT09aD92b2lkIDA6aC5zdGJsO2lmKCFEKXJldHVybjt2YXIgZj1udWxsPT09KHk9Qi5tZGlhLm1kaGQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LnRpbWVzY2FsZSx1PUQuc3R0cyx3PUQuc3RzYyxkPUQuc3RzeixGPUQuc3RjbztpZighKGYmJnUmJncmJmQmJkYpKXJldHVybjtDPVFuKHUsdyxkLEYpfXJldHVybnt2aWRlb1NhbXBsZXM6USxhdWRpb1NhbXBsZXM6Q319fX19XSksQX0oKTtmdW5jdGlvbiBRbihBLGcsSSxCLFEsQyl7dmFyIEUsaSx0LGU9W10sbz1udWxsPT1RP3ZvaWQgMDpRLmVudHJpZXMsbj1nLmVudHJpZXMscj1CLmVudHJpZXMsYT1JLmVudHJ5U2l6ZXMscz1udWxsPT1DP3ZvaWQgMDpDLmVudHJpZXM7cyYmKEU9e30scy5mb3JFYWNoKChmdW5jdGlvbihBKXtFW0EtMV09ITB9KSkpLG8mJihpPVtdLG8uZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsST1BLm9mZnNldCxCPTA7QjxnO0IrKylpLnB1c2goSSl9KSkpO3ZhciBjPS0xLGg9MCx5PTAsRD0wLGY9MCx1PTAsdz1uWzBdLnNhbXBsZXNQZXJDaHVuayxkPW5bMV0/blsxXS5maXJzdENodW5rLTE6MS8wO3JldHVybiBBLmVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsQj1BLmRlbHRhLFE9MDtRPGc7USsrKXQ9e2R0czpoLGR1cmF0aW9uOkIsc2l6ZTphW3ldfHxJLnNhbXBsZVNpemUsb2Zmc2V0OnJbRF0rdSxpbmRleDp5fSxzJiYodC5rZXlmcmFtZT1FW3ldLHQua2V5ZnJhbWUmJmMrKyx0LmdvcElkPWMpLGkmJnk8aS5sZW5ndGgmJih0LnB0cz10LmR0cytpW3ldKSxlLnB1c2godCksaCs9QiwrK3k8dz91Kz10LnNpemU6KEQrKyx1PTAsRD49ZCYmKGYrKyxkPW5bZisxXT9uW2YrMV0uZmlyc3RDaHVuay0xOjEvMCksdys9bltmXS5zYW1wbGVzUGVyQ2h1bmspfSkpLGV9ZnVuY3Rpb24gQ24oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9am8oZyw2KSxBLndpZHRoPWpvKGcsMjQpLEEuaGVpZ2h0PWpvKGcsMjYpLEEuaG9yaXpyZXNvbHV0aW9uPVBvKGcsMjgpLEEudmVydHJlc29sdXRpb249UG8oZywzMiksQS5mcmFtZUNvdW50PWpvKGcsNDApLEEuZGVwdGg9am8oZyw3NCksNzh9ZnVuY3Rpb24gRW4oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9am8oZyw2KSxBLmNoYW5uZWxDb3VudD1qbyhnLDE2KSxBLnNhbXBsZVNpemU9am8oZywxOCksQS5zYW1wbGVSYXRlPVBvKGcsMjQpLzY1NTM2LDI4fWZ1bmN0aW9uIHRuKEEsZyxJKXtpZihBKXtpZihBLnNpemUhPT1BLmRhdGEubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYm94ICIuY29uY2F0KEEudHlwZSwiIHNpemUgIT09IGRhdGEubGVuZ3RoIikpO3ZhciBCPXtzdGFydDpBLnN0YXJ0LHNpemU6QS5zaXplLGhlYWRlclNpemU6QS5oZWFkZXJTaXplLHR5cGU6QS50eXBlfTtyZXR1cm4gZyYmKEIudmVyc2lvbj1BLmRhdGFbQS5oZWFkZXJTaXplXSxCLmZsYWdzPWZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwxNikrKEFbZysxXTw8OCkrKEFbZysyXXx8MCl9KEEuZGF0YSxBLmhlYWRlclNpemUrMSksQi5oZWFkZXJTaXplKz00KSxJKEIsQS5kYXRhLnN1YmFycmF5KEIuaGVhZGVyU2l6ZSksQi5zdGFydCtCLmhlYWRlclNpemUpLEJ9fXZhciBlbj1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oZyl7QS5wdXNoKGZ1bmN0aW9uKEEsZyxJKXtmb3IodmFyIEI9U3RyaW5nKEkpLFE9Zz4+MCxDPU1hdGguY2VpbChRL0IubGVuZ3RoKSxFPVtdLGk9U3RyaW5nKEEpO0MtLTspRS5wdXNoKEIpO3JldHVybiBFLmpvaW4oIiIpLnN1YnN0cmluZygwLFEtaS5sZW5ndGgpK2l9KE51bWJlcihnKS50b1N0cmluZygxNiksMiwwKSl9KSksQVswXX0sb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtobyh0aGlzLEEpLHRoaXMudmlkZW9UcmFjaz1nfHxuZXcgSm8sdGhpcy5hdWRpb1RyYWNrPUl8fG5ldyBMbyx0aGlzLm1ldGFkYXRhVHJhY2s9Qnx8bmV3IG1vfXJldHVybiBEbyhBLFt7a2V5OiJkZW11eCIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST10aGlzLnZpZGVvVHJhY2ssQj10aGlzLmF1ZGlvVHJhY2ssUT1JLmV4aXN0KCksQz1CLmV4aXN0KCk7aWYoSS5zYW1wbGVzPVtdLEIuc2FtcGxlcz1bXSxnKXtpZighQyl7dmFyIEU9Qm4uZmluZEJveChnLFsibW9vdiJdKVswXTtpZighRSl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCBtb292IGJveCIpO0JuLm1vb3ZUb1RyYWNrKEJuLm1vb3YoRSksbnVsbCxCKX12YXIgaT1Cbi5maW5kQm94KGcsWyJtb29mIl0pWzBdO2lmKGkpe3ZhciB0PUJuLm1vb2ZUb1NhbXBsZXMoQm4ubW9vZihpKSxudWxsLEIpW0IuaWRdLGU9Qi5iYXNlTWVkaWFEZWNvZGVUaW1lO2lmKHQpe3ZhciBvPWkuc3RhcnQ7dC5tYXAoKGZ1bmN0aW9uKEEpe0Eub2Zmc2V0Kz1vO3ZhciBJPWcuc3ViYXJyYXkoQS5vZmZzZXQsQS5vZmZzZXQrQS5zaXplKTtCLnNhbXBsZXMucHVzaChuZXcgS28oQS5kdHMrZSxJLEEuZHVyYXRpb24pKX0pKX19fWlmKEEpe2lmKCFRJiYhQyl7dmFyIG49Qm4uZmluZEJveChBLFsibW9vdiJdKVswXTtpZighbil0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCBtb292IGJveCIpO0JuLm1vb3ZUb1RyYWNrKEJuLm1vb3YobiksSSxCKX12YXIgcj1Cbi5maW5kQm94KEEsWyJtb29mIl0pWzBdO2lmKHIpe3ZhciBhLHM9Qm4ubW9vZlRvU2FtcGxlcyhCbi5tb29mKHIpLEksQiksYz1JLmJhc2VNZWRpYURlY29kZVRpbWUsaD1CLmJhc2VNZWRpYURlY29kZVRpbWUseT1yLnN0YXJ0O09iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKGcpe0kuaWQ9PWc/c1tnXS5tYXAoKGZ1bmN0aW9uKGcpe2cub2Zmc2V0Kz15O3ZhciBCPW5ldyB2bygoIm51bWJlciI9PXR5cGVvZiBnLnB0cz9nLnB0czpnLmR0cykrYyxnLmR0cytjKTtCLmR1cmF0aW9uPWcuZHVyYXRpb24sQi5nb3BJZD1nLmdvcElkLGcua2V5ZnJhbWUmJkIuc2V0VG9LZXlmcmFtZSgpO3ZhciBRPUEuc3ViYXJyYXkoZy5vZmZzZXQsZy5vZmZzZXQrZy5zaXplKTtCLmRhdGE9UTtmb3IodmFyIEM9MCxFPVEubGVuZ3RoLTE7QzxFOylhPVBvKFEsQyksQys9NCxCLnVuaXRzLnB1c2goUS5zdWJhcnJheShDLEMrYSkpLEMrPWE7SS5zYW1wbGVzLnB1c2goQil9KSk6Qi5pZD09ZyYmc1tnXS5tYXAoKGZ1bmN0aW9uKGcpe2cub2Zmc2V0Kz15O3ZhciBJPUEuc3ViYXJyYXkoZy5vZmZzZXQsZy5vZmZzZXQrZy5zaXplKTtCLnNhbXBsZXMucHVzaChuZXcgS28oZy5kdHMraCxJLGcuZHVyYXRpb24pKX0pKX0pKX19cmV0dXJue3ZpZGVvVHJhY2s6SSxhdWRpb1RyYWNrOkIsbWV0YWRhdGFUcmFjazp0aGlzLm1ldGFkYXRhVHJhY2t9fX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52aWRlb1RyYWNrLnJlc2V0KCksdGhpcy5hdWRpb1RyYWNrLnJlc2V0KCksdGhpcy5tZXRhZGF0YVRyYWNrLnJlc2V0KCl9fV0sW3trZXk6InByb2JlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQm4ucHJvYmUoQSl9fV0pLEF9KCk7dmFyIG5uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSksdGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkoMCl9cmV0dXJuIERvKEEsW3trZXk6IndyaXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQT10aGlzLGc9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShnKSxCPTA7QjxnO0IrKylJW0JdPWFyZ3VtZW50c1tCXTtJLmZvckVhY2goKGZ1bmN0aW9uKGcpe2c/QS5idWZmZXI9ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPTAsST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEk+MT9JLTE6MCksUT0xO1E8STtRKyspQltRLTFdPWFyZ3VtZW50c1tRXTtCLmZvckVhY2goKGZ1bmN0aW9uKEEpe2crPUEubGVuZ3RofSkpO3ZhciBDPW5ldyBBKGcpLEU9MDtyZXR1cm4gQi5mb3JFYWNoKChmdW5jdGlvbihBKXtDLnNldChBLEUpLEUrPUEubGVuZ3RofSkpLEN9KFVpbnQ4QXJyYXksQS5idWZmZXIsZyk6d2luZG93LmNvbnNvbGUud2FybihnKX0pKX19XSxbe2tleToid3JpdGVVaW50MTYiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgVWludDhBcnJheShbQT4+OCYyNTUsMjU1JkFdKX19LHtrZXk6IndyaXRlVWludDMyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0E+PjI0LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0pfX1dKSxBfSgpLHJuPU1hdGgucG93KDIsMzIpLTEsYW49ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7aG8odGhpcyxBKX1yZXR1cm4gRG8oQSxudWxsLFt7a2V5OiJib3giLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KGc+MT9nLTE6MCksQj0xO0I8ZztCKyspSVtCLTFdPWFyZ3VtZW50c1tCXTt2YXIgUT04KyhJPUkuZmlsdGVyKEJvb2xlYW4pKS5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCksQz1uZXcgVWludDhBcnJheShRKTtDWzBdPVE+PjI0JjI1NSxDWzFdPVE+PjE2JjI1NSxDWzJdPVE+PjgmMjU1LENbM109MjU1JlEsQy5zZXQoQSw0KTt2YXIgRT04O3JldHVybiBJLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Muc2V0KEEsRSksRSs9QS5ieXRlTGVuZ3RofSkpLEN9fSx7a2V5OiJGdWxsQm94Iix2YWx1ZTpmdW5jdGlvbihnLEksQil7Zm9yKHZhciBRPWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoUT4zP1EtMzowKSxFPTM7RTxRO0UrKylDW0UtM109YXJndW1lbnRzW0VdO3JldHVybiBBLmJveC5hcHBseShBLFtnLG5ldyBVaW50OEFycmF5KFtJLEI+PjE2JjI1NSxCPj44JjI1NSwyNTUmQl0pXS5jb25jYXQoQykpfX0se2tleToiZnR5cCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZmluZCgoZnVuY3Rpb24oQSl7cmV0dXJuIEEudHlwZT09PVJvJiZBLmNvZGVjVHlwZT09PU5vfSkpP0EuRlRZUEhFVjE6QS5GVFlQQVZDMX19LHtrZXk6ImluaXRTZWdtZW50Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gV28oQS5mdHlwKGcpLEEubW9vdihnKSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMSwwLDAsMF0uY29uY2F0KFsxNiwxMTksMjM5LDIzNiwxOTIsMTc4LDc3LDIsMTcyLDIyNyw2MCwzMCw4MiwyMjYsMjUxLDc1XSxbMCwwLDAsMV0sJG8oZy5raWQpLFswLDAsMCwwXSkpO3JldHVybiBBLmJveChBLnR5cGVzLnBzc2gsSSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtpZihnWzBdLnVzZUVNRSYmKGdbMF0uZW5jdnx8Z1swXS5lbmNhKSl7Z1swXS5wc3NofHwoZ1swXS5wc3NoPXtraWQ6Z1swXS5raWR9KTt2YXIgST10aGlzLnBzc2goZ1swXS5wc3NoKTtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLm12aGREdXJ0aW9ufHxnWzBdLmR1cmF0aW9uLGdbMF0ubXZoZFRpbWVjYWxlfHxnWzBdLnRpbWVzY2FsZSksQS5tdmV4KGcpXS5jb25jYXQod28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSkpLFtJXSkpfXJldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb3YsQS5tdmhkKGdbMF0ubXZoZER1cnRpb258fGdbMF0uZHVyYXRpb24sZ1swXS5tdmhkVGltZWNhbGV8fGdbMF0udGltZXNjYWxlKV0uY29uY2F0KHdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFrKGcpfSkpKSxbQS5tdmV4KGcpXSkpfX0se2tleToibXZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tdmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwxLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSkpfX0se2tleToidHJhayIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLnRraGREdXJhdGlvbnx8MCxnLndpZHRoLGcuaGVpZ2h0KSxBLm1kaWEoZykpfX0se2tleToidGtoZCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTowO3JldHVybiBBLmJveChBLnR5cGVzLnRraGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDcsMCwwLDAsMCwwLDAsMCwwLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMCxRPj44JjI1NSwyNTUmUSwwLDBdKSl9fSx7a2V5OiJlZHRzIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5lZHRzLEEuZWxzdChnKSl9fSx7a2V5OiJlbHN0Iix2YWx1ZTpmdW5jdGlvbihnKXtnLmVudHJpZXM7dmFyIEk9Zy5lbnRyaWVzRGF0YSxCPWcudmVyc2lvbjtyZXR1cm4gQS5GdWxsQm94KEEudHlwZXMuZWxzdCxCLDAsSSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmYoZykpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsODUsMTk2LDAsMF0pKX19LHtrZXk6ImhkbHIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLmhkbHIsQS5IRExSX1RZUEVTW2ddKX19LHtrZXk6Im1pbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1pbmYsZy50eXBlPT09Um8/QS5WTUhEOkEuU01IRCxBLkRJTkYsQS5zdGJsKGcpKX19LHtrZXk6InN0YmwiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPVtdO3JldHVybiBnJiZnLmV4dCYmZy5leHQuc3RzcyYmSS5wdXNoKEEuc3RzcyhnLmV4dC5zdHNzLmVudHJpZXMpKSxBLmJveChBLnR5cGVzLnN0YmwsQS5zdHNkKGcpLEEuU1RUUyxJWzBdLEEuU1RTQyxBLlNUU1osQS5TVENPKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJO3JldHVybiBJPSJhdWRpbyI9PT1nLnR5cGU/Zy51c2VFTUUmJmcuZW5jYT9BLmVuY2EoZyk6QS5tcDRhKGcpOmcudXNlRU1FJiZnLmVuY3Y/QS5lbmN2KGcpOkEuYXZjMWhldjF2dmMxKGcpLEEuYm94KEEudHlwZXMuc3RzZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxXSksSSl9fSx7a2V5OiJlbmNhIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmVuY2EuY2hhbm5lbENvdW50LEI9Zy5lbmNhLnNhbXBsZVJhdGUsUT1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLEksMCwxNiwwLDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMF0pLEM9QS5lc2RzKGcuY29uZmlnKSxFPUEuc2luZihnLmVuY2EpO3JldHVybiBBLmJveChBLnR5cGVzLmVuY2EsUSxDLEUpfX0se2tleToiZW5jdiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQixRPWcuc3BzLmxlbmd0aD4wP2cuc3BzWzBdOltdLEM9Zy5wcHMubGVuZ3RoPjA/Zy5wcHNbMF06W10sRT1nLndpZHRoLGk9Zy5oZWlnaHQsdD1nLnNhclJhdGlvWzBdLGU9Zy5zYXJSYXRpb1sxXSxvPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxFPj44JjI1NSwyNTUmRSxpPj44JjI1NSwyNTUmaSwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwxOCwxMDAsOTcsMTA1LDEwOCwxMjEsMTA5LDExMSwxMTYsMTA1LDExMSwxMTAsNDcsMTA0LDEwOCwxMTUsNDYsMTA2LDExNSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQsMTcsMTddKSxuPW5ldyBVaW50OEFycmF5KChJPShCPVsxLFFbMV0sUVsyXSxRWzNdLDI1NSwyMjUsUS5sZW5ndGg+Pj44JjI1NSwyNTUmUS5sZW5ndGhdKS5jb25jYXQuYXBwbHkoQix3byhRKSkuY29uY2F0KFsxLEMubGVuZ3RoPj4+OCYyNTUsMjU1JkMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLHdvKEMpKSkscj1uZXcgVWludDhBcnJheShbMCwwLDg4LDU3LDAsMTUsMjAwLDE5MiwwLDQsODYsNzJdKSxhPUEuc2luZihnLmVuY3YpLHM9bmV3IFVpbnQ4QXJyYXkoW3Q+PjI0LHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCxlPj4yNCxlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmVdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5lbmN2LG8sQS5ib3goQS50eXBlcy5hdmNDLG4pLEEuYm94KEEudHlwZXMuYnRydCxyKSxhLEEuYm94KEEudHlwZXMucGFzcCxzKSl9fSx7a2V5OiJzY2hpIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbXSksQj1BLnRlbmMoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2NoaSxJLEIpfX0se2tleToidGVuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDI1NSZnLmRlZmF1bHRfSXNFbmNyeXB0ZWQsMjU1JmcuZGVmYXVsdF9JVl9zaXplXS5jb25jYXQoJG8oZy5kZWZhdWx0X0tJRCkpKTtyZXR1cm4gQS5ib3goQS50eXBlcy50ZW5jLEkpfX0se2tleToic2luZiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoW10pLEI9bmV3IFVpbnQ4QXJyYXkoW2cuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgwKSxnLmRhdGFfZm9ybWF0LmNoYXJDb2RlQXQoMSksZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDIpLGcuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgzKV0pLFE9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsOTksMTAxLDExMCw5OSwwLDEsMCwwXSksQz1BLnNjaGkoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2luZixJLEEuYm94KEEudHlwZXMuZnJtYSxCKSxBLmJveChBLnR5cGVzLnNjaG0sUSksQyl9fSx7a2V5OiJhdmMxaGV2MXZ2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEI7Zy5jb2RlY1R5cGU9PT1Obz8oST1BLmh2Y0MoZyksQj1BLnR5cGVzLmh2YzEpOmcuY29kZWNUeXBlPT09TW8/KEk9QS52dmNDKGcpLEI9QS50eXBlcy5idmMyKTooST1BLmF2Y0MoZyksQj1BLnR5cGVzLmF2YzEpO3ZhciBRPVtuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsZy53aWR0aD4+OCYyNTUsMjU1Jmcud2lkdGgsZy5oZWlnaHQ+PjgmMjU1LDI1NSZnLmhlaWdodCwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwxNywxN10pLEldO3JldHVybiBnLmNvZGVjVHlwZT09PU5vP1EucHVzaChBLmJveChBLnR5cGVzLmZpZWwsbmV3IFVpbnQ4QXJyYXkoWzEsMF0pKSk6Zy5zYXJSYXRpbyYmZy5zYXJSYXRpby5sZW5ndGg+MSYmUS5wdXNoKEEucGFzcChnLnNhclJhdGlvKSksQS5ib3guYXBwbHkoQSxbQl0uY29uY2F0KFEpKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEIsUSxDPVtdLEU9W107cmV0dXJuIGcuc3BzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEMucHVzaChRPj4+OCYyNTUpLEMucHVzaCgyNTUmUSksQy5wdXNoLmFwcGx5KEMsd28oQSkpfSkpLGcucHBzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEUucHVzaChRPj4+OCYyNTUpLEUucHVzaCgyNTUmUSksRS5wdXNoLmFwcGx5KEUsd28oQSkpfSkpLEEuYm94KEEudHlwZXMuYXZjQyxuZXcgVWludDhBcnJheSgoST0oQj1bMSxDWzNdLENbNF0sQ1s1XSwyNTUsMjI0fGcuc3BzLmxlbmd0aF0pLmNvbmNhdC5hcHBseShCLEMpLmNvbmNhdChbZy5wcHMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLEUpKSl9fSx7a2V5OiJ2dmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnZ2Y0M7cmV0dXJuIEEuYm94KEEudHlwZXMuYnYyQyxuZXcgVWludDhBcnJheShJKSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmh2Y0M7aWYoSSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxJIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gSTt2YXIgQixRPWcudnBzLEM9Zy5zcHMsRT1nLnBwcztpZihJKXt2YXIgaT1JLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eUZsYWdzLHQ9SS5nZW5lcmFsQ29uc3RyYWludEluZGljYXRvckZsYWdzLGU9KFEubGVuZ3RoJiYxKSsoQy5sZW5ndGgmJjEpKyhFLmxlbmd0aCYmMSk7Qj1bMSxJLmdlbmVyYWxQcm9maWxlU3BhY2U8PDZ8SS5nZW5lcmFsVGllckZsYWc8PDV8SS5nZW5lcmFsUHJvZmlsZUlkYyxpPj4+MjQsaT4+PjE2LGk+Pj44LGksdFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sSS5nZW5lcmFsTGV2ZWxJZGMsMjQwLDAsMjUyLDI1MnxJLmNocm9tYUZvcm1hdElkYywyNDh8SS5iaXREZXB0aEx1bWFNaW51czgsMjQ4fEkuYml0RGVwdGhDaHJvbWFNaW51czgsMCwwLEkubnVtVGVtcG9yYWxMYXllcnM8PDN8SS50ZW1wb3JhbElkTmVzdGVkPDwyfDMsZV07dmFyIG89ZnVuY3Rpb24oQSl7dmFyIGc7Qi5wdXNoKEEubGVuZ3RoPj44LEEubGVuZ3RoKSwoZz1CKS5wdXNoLmFwcGx5KGcsd28oQSkpfTtRLmxlbmd0aCYmKEIucHVzaCgxNjAsMCxRLmxlbmd0aCksUS5mb3JFYWNoKG8pKSxDLmxlbmd0aCYmKEIucHVzaCgxNjEsMCxDLmxlbmd0aCksQy5mb3JFYWNoKG8pKSxFLmxlbmd0aCYmKEIucHVzaCgxNjIsMCxFLmxlbmd0aCksRS5mb3JFYWNoKG8pKX1lbHNlIEI9WzEsMSw5NiwwLDAsMCwxNDQsMCwwLDAsMCwwLDkzLDI0MCwwLDI1MiwyNTMsMjQ4LDI0OCwwLDAsMTUsMywxNjAsMCwxLDAsMjQsNjQsMSwxMiwxLDI1NSwyNTUsMSw5NiwwLDAsMywwLDE0NCwwLDAsMywwLDAsMywwLDkzLDE1MywxNTIsOSwxNjEsMCwxLDAsNDUsNjYsMSwxLDEsOTYsMCwwLDMsMCwxNDQsMCwwLDMsMCwwLDMsMCw5MywxNjAsMiwxMjgsMTI4LDQ1LDIyLDg5LDE1MywxNjQsMTQ3LDQzLDE1NCwxMjgsMTI4LDEyOCwxMzAsMCwwLDMsMCwyLDAsMCwzLDAsNTAsMTYsMTYyLDAsMSwwLDcsNjgsMSwxOTMsMTE0LDE4MCw5OCw2NF07cmV0dXJuIEEuYm94KEEudHlwZXMuaHZjQyxuZXcgVWludDhBcnJheShCKSl9fSx7a2V5OiJwYXNwIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST11byhnLDIpLEI9SVswXSxRPUlbMV07cmV0dXJuIEEuYm94KEEudHlwZXMucGFzcCxuZXcgVWludDhBcnJheShbQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6Im1wNGEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1wNGEsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCxnLmNoYW5uZWxDb3VudCwwLDE2LDAsMCwwLDAsZy5zYW1wbGVSYXRlPj44JjI1NSwyNTUmZy5zYW1wbGVSYXRlLDAsMF0pLGcuY29uZmlnLmxlbmd0aD9BLmVzZHMoZy5jb25maWcpOnZvaWQgMCl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aDtyZXR1cm4gQS5ib3goQS50eXBlcy5lc2RzLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDMsMjMrSSwwLDAsMCw0LDE1K0ksNjQsMjEsMCw2LDAsMCwwLDIxOCwxOTIsMCwwLDIxOCwxOTIsNV0uY29uY2F0KFtJXSkuY29uY2F0KGcpLmNvbmNhdChbNiwxLDJdKSkpfX0se2tleToibXZleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubXZleF0uY29uY2F0KHdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmV4KGcuaWQpfSkpKSkpfX0se2tleToidHJleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJleCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMV0pKX19LHtrZXk6InRyZXgxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmV4LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwxLDAsMCwyLDAsMCwwLDAsMCwwLDEsMCwwXSkpfX0se2tleToidHJleDIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLnRyZXgsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLDAsMCwwLDEsMCwwLDQsMCwwLDAsMCwwLDIsMCwwLDBdKSl9fSx7a2V5OiJtb29mIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb29mLEEubWZoZChnWzBdLnNhbXBsZXM/Z1swXS5zYW1wbGVzWzBdLmdvcElkOjApXS5jb25jYXQod28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWYoZyl9KSkpKSl9fSx7a2V5OiJtZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRyYWYiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPUEudGZoZChnLmlkKSxCPUEudGZkdChnLGcuYmFzZU1lZGlhRGVjb2RlVGltZSksUT0wO2lmKGcuaXNWaWRlbyYmZy52aWRlb1NlbmMmJmcudmlkZW9TZW5jLmZvckVhY2goKGZ1bmN0aW9uKEEpe1ErPTgsQS5zdWJzYW1wbGVzJiZBLnN1YnNhbXBsZXMubGVuZ3RoJiYoUSs9MixRKz02KkEuc3Vic2FtcGxlcy5sZW5ndGgpfSkpLGcudmlkZW9TZW5jTGVuZ3RoPVEsZy51c2VFTUUmJihnLmlzVmlkZW9FbmNyeXB0aW9ufHxnLmlzQXVkaW9FbmNyeXB0aW9uKSl7aWYoZy5pc1ZpZGVvRW5jcnlwdGlvbil7aWYoZy5pc1ZpZGVvKXt2YXIgQz1BLnNhaXooZyksRT1BLnNhaW8oZyksaT1BLnRydW4xKGcpLHQ9QS5zZW5jKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLEMsRSxpLHQpfWlmKGcuaXNBdWRpb0VuY3J5cHRpb24pe3ZhciBlPUEuc2JncCgpLG89QS5zYWl6KGcpLG49QS5zYWlvKGcpLHI9QS5zZW5jKGcpLGE9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixlLG8sbixyLGEpfXZhciBzPUEuc2JncCgpLGM9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixzLGMpfWlmKGcuaXNWaWRlbyl7dmFyIGg9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixoKX12YXIgeT1BLnNiZ3AoKSxEPUEuc2FpeihnKSxmPUEuc2FpbyhnKSx1PUEuc2VuYyhnKSx3PUEudHJ1bjEoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIseSxELGYsdSx3KX12YXIgZD1BLnNkdHAoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsZCxBLnRydW4oZy5zYW1wbGVzLGQuYnl0ZUxlbmd0aCs3NikpfX0se2tleToic2R0cCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IG5uO3JldHVybiBnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SS53cml0ZShuZXcgVWludDhBcnJheShnLmlzVmlkZW8/W0Eua2V5ZnJhbWU/MzI6MTZdOlsxNl0pKX0pKSxBLmJveChBLnR5cGVzLnNkdHAsdGhpcy5leHRlbnNpb24oMCwwKSxJLmJ1ZmZlcil9fSx7a2V5OiJ0cnVuMSIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IG5uLEI9bm4ud3JpdGVVaW50MzIoZy5zYW1wbGVzLmxlbmd0aCksUT1udWxsO2lmKGcuaXNWaWRlbyl7dmFyIEM9Zy52aWRlb1NlbmNMZW5ndGg7UT1ubi53cml0ZVVpbnQzMigxNipnLnNhbXBsZXMubGVuZ3RoK0MrMTQ5KSwhZy5pc1ZpZGVvRW5jcnlwdGlvbiYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmKFE9bm4ud3JpdGVVaW50MzIoMTYqZy5zYW1wbGVzLmxlbmd0aCs5MikpfWVsc2V7dmFyIEU9MTIqZy5zYW1wbGVzLmxlbmd0aCsxMjQ7Zy5pc0F1ZGlvRW5jcnlwdGlvbiYmKEU9MTIqZy5zYW1wbGVzLmxlbmd0aCs4KmcuYXVkaW9TZW5jLmxlbmd0aCsxNzcpLFE9bm4ud3JpdGVVaW50MzIoRSl9cmV0dXJuIGcuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKG5uLndyaXRlVWludDMyKEEuZHVyYXRpb24pKSxJLndyaXRlKG5uLndyaXRlVWludDMyKEEuc2l6ZSkpLEkud3JpdGUobm4ud3JpdGVVaW50MzIoQS5rZXlmcmFtZT8zMzU1NDQzMjo2NTUzNikpLGcuaXNWaWRlbyYmSS53cml0ZShubi53cml0ZVVpbnQzMihBLmN0cz9BLmN0czowKSl9KSksQS5ib3goQS50eXBlcy50cnVuLHRoaXMuZXh0ZW5zaW9uKDAsZy5mbGFncyksQixRLEkuYnVmZmVyKX19LHtrZXk6InNlbmMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBubixCPWcuc2FtcGxlcy5sZW5ndGgsUT1nLmlzVmlkZW8/MTY6OCxDPWcuaXNWaWRlbz8yOjAsRT1bXSxpPTA7cmV0dXJuIGcuaXNWaWRlbz8oRT1nLnZpZGVvU2VuYyxpPWcudmlkZW9TZW5jTGVuZ3RoKTpFPWcuYXVkaW9TZW5jLGk9aXx8USpCLEkud3JpdGUobm4ud3JpdGVVaW50MzIoMTYraSksQS50eXBlcy5zZW5jLHRoaXMuZXh0ZW5zaW9uKDAsQykpLEkud3JpdGUobm4ud3JpdGVVaW50MzIoQikpLEUuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPTA7ZzxBLkluaXRpYWxpemF0aW9uVmVjdG9yLmxlbmd0aDtnKyspSS53cml0ZShuZXcgVWludDhBcnJheShbQS5Jbml0aWFsaXphdGlvblZlY3RvcltnXV0pKTtBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihJLndyaXRlKG5uLndyaXRlVWludDE2KEEuc3Vic2FtcGxlcy5sZW5ndGgpKSxBLnN1YnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SS53cml0ZShubi53cml0ZVVpbnQxNihBLkJ5dGVzT2ZDbGVhckRhdGEpKSxJLndyaXRlKG5uLndyaXRlVWludDMyKEEuQnl0ZXNPZlByb3RlY3RlZERhdGEpKX0pKSl9KSksSS5idWZmZXJ9fSx7a2V5OiJzYWlvIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST0xMipnLnNhbXBsZXMubGVuZ3RoKzE0MTshZy5pc1ZpZGVvJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoST0xNDkpO3ZhciBCPW5ldyBVaW50OEFycmF5KFsxLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2FpbyxCKX19LHtrZXk6InNhaXoiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuc2FtcGxlcy5sZW5ndGgsQj1uZXcgVWludDhBcnJheShbMCwwLDAsMCwxNixJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2FpeixCKX19LHtrZXk6InNiZ3AiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc9bmV3IFVpbnQ4QXJyYXkoWzExNCwxMTEsMTA4LDEwOCwwLDAsMCwxLDAsMCwxLDI1LDAsMCwwLDFdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYmdwLHRoaXMuZXh0ZW5zaW9uKDAsMCksZyl9fSx7a2V5OiJleHRlbnNpb24iLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtBLGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pfX0se2tleToidGZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudGZoZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddKSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihnLEkpe3ZhciBCPU1hdGguZmxvb3IoSS8ocm4rMSkpLFE9TWF0aC5mbG9vcihJJShybisxKSk7cmV0dXJuIGcudXNlRU1FJiYoZy5pc1ZpZGVvRW5jcnlwdGlvbnx8Zy5pc0F1ZGlvRW5jcnlwdGlvbik/QS5ib3goQS50eXBlcy50ZmR0LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKTpBLmJveChBLnR5cGVzLnRmZHQsbmV3IFVpbnQ4QXJyYXkoWzEsMCwwLDAsQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6InRydW4iLHZhbHVlOmZ1bmN0aW9uKGcsSSl7dmFyIEI9Zy5sZW5ndGgsUT0xMisxNipCO0krPTgrUTt2YXIgQz1uZXcgVWludDhBcnJheShRKTtDLnNldChbMCwwLDE1LDEsQj4+PjI0JjI1NSxCPj4+MTYmMjU1LEI+Pj44JjI1NSwyNTUmQixJPj4+MjQmMjU1LEk+Pj4xNiYyNTUsST4+PjgmMjU1LDI1NSZJXSwwKTtmb3IodmFyIEU9MDtFPEI7RSsrKXt2YXIgaT1nW0VdLHQ9aS5kdXJhdGlvbixlPWkuc2l6ZSxvPWkuZmxhZyxuPXZvaWQgMD09PW8/e306byxyPWkuY3RzLGE9dm9pZCAwPT09cj8wOnI7Qy5zZXQoW3Q+Pj4yNCYyNTUsdD4+PjE2JjI1NSx0Pj4+OCYyNTUsMjU1JnQsZT4+PjI0JjI1NSxlPj4+MTYmMjU1LGU+Pj44JjI1NSwyNTUmZSxuLmlzTGVhZGluZzw8MnwobnVsbD09PW4uZGVwZW5kc09ufHx2b2lkIDA9PT1uLmRlcGVuZHNPbj8xOm4uZGVwZW5kc09uKSxuLmlzRGVwZW5kZWRPbjw8NnxuLmhhc1JlZHVuZGFuY3k8PDR8bi5wYWRkaW5nVmFsdWU8PDF8KG51bGw9PT1uLmlzTm9uU3luY1NhbXBsZXx8dm9pZCAwPT09bi5pc05vblN5bmNTYW1wbGU/MTpuLmlzTm9uU3luY1NhbXBsZSksNjE0NDAmbi5kZWdyYWRhdGlvblByaW9yaXR5LDE1Jm4uZGVncmFkYXRpb25Qcmlvcml0eSxhPj4+MjQmMjU1LGE+Pj4xNiYyNTUsYT4+PjgmMjU1LDI1NSZhXSwxMisxNipFKX1yZXR1cm4gQS5ib3goQS50eXBlcy50cnVuLEMpfX0se2tleToibW9vdk1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubW9vdixBLm12aGQoZ1swXS5kdXJhdGlvbixnWzBdLnRpbWVzY2FsZSldLmNvbmNhdCh3byhnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhY2tNUDQoZyl9KSkpKSl9fSx7a2V5OiJ0cmFja01QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLmR1cmF0aW9uLGcud2lkdGgsZy5oZWlnaHQpLEEubWRpYU1QNChnKSl9fSx7a2V5OiJtZGlhTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmZNUDQoZykpfX0se2tleToibWluZk1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWluZixnLnR5cGU9PT1Sbz9BLlZNSEQ6QS5TTUhELEEuRElORixBLnN0YmxNUDQoZykpfX0se2tleToic3RibE1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5leHQsQj1bQS5zdHNkKGcpLEEuc3R0cyhJLnN0dHMpLEEuc3RzYyhJLnN0c2MpLEEuc3RzeihJLnN0c3opLEEuc3RjbyhJLnN0Y28pXTtyZXR1cm4gSS5zdHNzLmxlbmd0aCYmQi5wdXNoKEEuc3RzcyhJLnN0c3MpKSxJLmN0dHMubGVuZ3RoJiZCLnB1c2goQS5jdHRzKEkuY3R0cykpLEEuYm94LmFwcGx5KEEsW0EudHlwZXMuc3RibF0uY29uY2F0KEIpKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoOCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS52YWx1ZSxJPUEuY291bnQ7Qi5zZXQoW0k+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddLFEpLFErPTh9KSksQS5ib3goQS50eXBlcy5zdHRzLFdvKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoMTIqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuZmlyc3RDaHVuayxJPUEuc2FtcGxlc1BlckNodW5rLEM9QS5zYW1wbGVEZXNjSW5kZXg7Qi5zZXQoW2c+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZyxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksQz4+MjQsQz4+MTYmMjU1LEM+PjgmMjU1LDI1NSZDXSxRKSxRKz0xMn0pKSxBLmJveChBLnR5cGVzLnN0c2MsV28obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RzeixXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoNCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qi5zZXQoW0E+PjI0LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0sUSksUSs9NH0pKSxBLmJveChBLnR5cGVzLnN0Y28sV28obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RzcyxXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJjdHRzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDgqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEudmFsdWUsST1BLmNvdW50O0Iuc2V0KFtJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSxRKSxRKz04fSkpLEEuYm94KEEudHlwZXMuY3R0cyxXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHlwIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBBLmJveChBLnR5cGVzLnN0eXAsbmV3IFVpbnQ4QXJyYXkoWzEwOSwxMTUsMTAwLDEwNCwwLDAsMCwwLDEwOSwxMTUsMTAwLDEwNCwxMDksMTE1LDEwNSwxMjBdKSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnRpbWVzY2FsZSxCPWcuc2FtcGxlc1swXS5kdXJhdGlvbixRPUIqZy5zYW1wbGVzLmxlbmd0aCxDPWcuc2FtcGxlc1swXS5zYW1wbGVPZmZzZXQqQixFPTg7Zy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0UrPUEuc2l6ZX0pKTt2YXIgaT0wO2lmKGcuaXNWaWRlbyl7dmFyIHQsZT0wO2cudmlkZW9TZW5jJiYodD1nLnZpZGVvU2VuYyksZy5pc1ZpZGVvJiZ0LmZvckVhY2goKGZ1bmN0aW9uKEEpe2UrPTgsQS5zdWJzYW1wbGVzJiZBLnN1YnNhbXBsZXMubGVuZ3RoJiYoZSs9MixlKz02KkEuc3Vic2FtcGxlcy5sZW5ndGgpfSkpLGcudmlkZW9TZW5jTGVuZ3RoPWUsaT1FKzE0MSsxNipnLnNhbXBsZXMubGVuZ3RoK2UsZy51c2VFTUUmJmcuaXNBdWRpb0VuY3J5cHRpb24mJiFnLmlzVmlkZW9FbmNyeXB0aW9uJiYoaT1FKzE2Kmcuc2FtcGxlcy5sZW5ndGgrODQpfWVsc2UgaT1FKzExNisxMipnLnNhbXBsZXMubGVuZ3RoLGcudXNlRU1FJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoaT1FKzE2OSsxMipnLnNhbXBsZXMubGVuZ3RoKzgqZy5hdWRpb1NlbmMubGVuZ3RoKTt2YXIgbz1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwyNTUmZy5pZCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLEM+PjI0JjI1NSxDPj4xNiYyNTUsQz4+OCYyNTUsMjU1JkMsMCwwLDAsMCwwLDAsMCwxLDAsaT4+MTYmMjU1LGk+PjgmMjU1LDI1NSZpLFE+PjI0JjI1NSxRPj4xNiYyNTUsUT4+OCYyNTUsMjU1JlEsMTQ0LDAsMCwwXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2lkeCxvKX19LHtrZXk6Im1kYXQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kYXQsZyl9fV0pLEF9KCk7Zm8oYW4sInR5cGVzIixbImF2YzEiLCJhdmNDIiwiaHZjMSIsImh2Y0MiLCJkaW5mIiwiZHJlZiIsImVkdHMiLCJlbHN0IiwiZXNkcyIsImZ0eXAiLCJoZGxyIiwibWRhdCIsIm1kaGQiLCJtZGlhIiwibWZoZCIsIm1pbmYiLCJtb29mIiwibW9vdiIsIm1wNGEiLCJtdmV4IiwibXZoZCIsInBhc3AiLCJzdGJsIiwic3RjbyIsInN0c2MiLCJzdHNkIiwic3RzeiIsInN0dHMiLCJ0ZmR0IiwidGZoZCIsInRyYWYiLCJ0cmFrIiwidHJleCIsInRraGQiLCJ2bWhkIiwic21oZCIsImN0dHMiLCJzdHNzIiwic3R5cCIsInBzc2giLCJzaWR4Iiwic2JncCIsInNhaXoiLCJzYWlvIiwic2VuYyIsInRydW4iLCJlbmN2IiwiZW5jYSIsInNpbmYiLCJidHJ0IiwiZnJtYSIsInRlbmMiLCJzY2htIiwic2NoaSIsIm1laGQiLCJmaWVsIiwic2R0cCIsImJ2YzIiLCJidjJDIl0ucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBW2ddPVtnLmNoYXJDb2RlQXQoMCksZy5jaGFyQ29kZUF0KDEpLGcuY2hhckNvZGVBdCgyKSxnLmNoYXJDb2RlQXQoMyldLEF9KSxPYmplY3QuY3JlYXRlKG51bGwpKSksZm8oYW4sIkhETFJfVFlQRVMiLHt2aWRlbzpuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDExOCwxMDUsMTAwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4NiwxMDUsMTAwLDEwMSwxMTEsNzIsOTcsMTEwLDEwMCwxMDgsMTAxLDExNCwwXSksYXVkaW86bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwxMTUsMTExLDExNywxMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODMsMTExLDExNywxMTAsMTAwLDcyLDk3LDExMCwxMDAsMTA4LDEwMSwxMTQsMF0pfSksZm8oYW4sIkZUWVBBVkMxIixhbi5ib3goYW4udHlwZXMuZnR5cCxuZXcgVWludDhBcnJheShbMTA1LDExNSwxMTEsMTA5LDAsMCwwLDEsMTA1LDExNSwxMTEsMTA5LDk3LDExOCw5OSw0OV0pKSksZm8oYW4sIkZUWVBIRVYxIixhbi5ib3goYW4udHlwZXMuZnR5cCxuZXcgVWludDhBcnJheShbMTA1LDExNSwxMTEsMTA5LDAsMCwwLDEsMTA1LDExNSwxMTEsMTA5LDEwNCwxMDEsMTE4LDQ5XSkpKSxmbyhhbiwiRElORiIsYW4uYm94KGFuLnR5cGVzLmRpbmYsYW4uYm94KGFuLnR5cGVzLmRyZWYsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxMiwxMTcsMTE0LDEwOCwzMiwwLDAsMCwxXSkpKSksZm8oYW4sIlZNSEQiLGFuLmJveChhbi50eXBlcy52bWhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwxLDAsMCwwLDAsMCwwLDAsMF0pKSksZm8oYW4sIlNNSEQiLGFuLmJveChhbi50eXBlcy5zbWhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDBdKSkpLGZvKGFuLCJTdGJsVGFibGUiLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDBdKSksZm8oYW4sIlNUVFMiLGFuLmJveChhbi50eXBlcy5zdHRzLGFuLlN0YmxUYWJsZSkpLGZvKGFuLCJTVFNDIixhbi5ib3goYW4udHlwZXMuc3RzYyxhbi5TdGJsVGFibGUpKSxmbyhhbiwiU1RTWiIsYW4uYm94KGFuLnR5cGVzLnN0c3osbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSkpKSxmbyhhbiwiU1RDTyIsYW4uYm94KGFuLnR5cGVzLnN0Y28sYW4uU3RibFRhYmxlKSk7dmFyIHNuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEkpe2hvKHRoaXMsQSksdGhpcy5uYW1lPWd8fCIiLHRoaXMuX3ByZWZpeD0iWyIuY29uY2F0KHRoaXMubmFtZSwiXSIpLEEuZGlzYWJsZWQ9SX1yZXR1cm4gRG8oQSxbe2tleToiZGVidWciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmRlYnVnLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJsb2ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmxvZy5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToid2FybiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkud2Fybi5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToiZXJyb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmVycm9yLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJ0YWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztBLmRpc2FibGVkfHwoY29uc29sZS5ncm91cCh0aGlzLl9wcmVmaXgpLChnPWNvbnNvbGUpLnRhYmxlLmFwcGx5KGcsYXJndW1lbnRzKSxjb25zb2xlLmdyb3VwRW5kKCkpfX1dLFt7a2V5OiJlbmFibGUiLHZhbHVlOmZ1bmN0aW9uKCl7QS5kaXNhYmxlZD0hMX19LHtrZXk6ImRpc2FibGUiLHZhbHVlOmZ1bmN0aW9uKCl7QS5kaXNhYmxlZD0hMH19XSksQX0oKTtmbyhzbiwiZGlzYWJsZWQiLCEwKTt2YXIgY249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtobyh0aGlzLEEpLHRoaXMudmlkZW9UcmFjaz1nLHRoaXMuYXVkaW9UcmFjaz1JO3ZhciBRPS9DaHJvbWVcLyhbXi5dKykvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudCk7dGhpcy5mb3JjZUZpcnN0SURSPVEmJk51bWJlcihRWzFdKTw1MCx0aGlzLmxvZz1uZXcgc24oIkZNUDRSZW11eGVyIiwhQnx8IUIub3BlbkxvZ3x8IUIub3BlbkxvZyl9cmV0dXJuIERvKEEsW3trZXk6InJlbXV4Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBLGcsSSxCLFEsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLEU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9dGhpcy52aWRlb1RyYWNrLHQ9dGhpcy5hdWRpb1RyYWNrLGU9aS5leGlzdCgpLG89dC5leGlzdCgpLG49W107cmV0dXJuIEMmJihFJiZFLmluaXRNZXJnZT8oZSYmbi5wdXNoKHRoaXMudmlkZW9UcmFjayksbyYmbi5wdXNoKHRoaXMuYXVkaW9UcmFjayksST1hbi5pbml0U2VnbWVudChuKSk6KGUmJihBPWFuLmluaXRTZWdtZW50KFt0aGlzLnZpZGVvVHJhY2tdKSksbyYmKGc9YW4uaW5pdFNlZ21lbnQoW3RoaXMuYXVkaW9UcmFja10pKSkpLGUmJmkuaGFzU2FtcGxlKCkmJihCPXRoaXMuX3JlbXV4VmlkZW8oKSksbyYmdC5oYXNTYW1wbGUoKSYmKFE9dGhpcy5fcmVtdXhBdWRpbygpKSxpLnNhbXBsZXM9W10sdC5zYW1wbGVzPVtdLHtpbml0U2VnbWVudDpJLHZpZGVvSW5pdFNlZ21lbnQ6QSxhdWRpb0luaXRTZWdtZW50OmcsdmlkZW9TZWdtZW50OkIsYXVkaW9TZWdtZW50OlF9fX0se2tleToiX3JlbXV4VmlkZW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy52aWRlb1RyYWNrO3RoaXMuZm9yY2VGaXJzdElEUiYmKEEuc2FtcGxlc1swXS5mbGFnPXtkZXBlbmRzT246Mixpc05vblN5bmNTYW1wbGU6MH0pO3ZhciBnPUEuc2FtcGxlcyxJPTA7Zy5mb3JFYWNoKChmdW5jdGlvbihBKXtJKz1BLnVuaXRzLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSxJKz00KkEudW5pdHMubGVuZ3RofSkpO2Zvcih2YXIgQixRPW5ldyBVaW50OEFycmF5KEkpLEM9bmV3IERhdGFWaWV3KFEuYnVmZmVyKSxFPWZ1bmN0aW9uKEEsSSl7ST1nW2ldO3ZhciBFPTA7SS51bml0cy5mb3JFYWNoKChmdW5jdGlvbihnKXtDLnNldFVpbnQzMihBLGcuYnl0ZUxlbmd0aCksQSs9NCxRLnNldChnLEEpLEErPWcuYnl0ZUxlbmd0aCxFKz00K2cuYnl0ZUxlbmd0aH0pKSxJLnNpemU9RSxlPUEsQj1JfSxpPTAsdD1nLmxlbmd0aCxlPTA7aTx0O2krKylFKGUsQik7dmFyIG89YW4ubWRhdChRKTtyZXR1cm4gV28oYW4ubW9vZihbQV0pLG8pfX0se2tleToiX3JlbXV4QXVkaW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5hdWRpb1RyYWNrLGc9bmV3IFVpbnQ4QXJyYXkoQS5zYW1wbGVzLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLnNpemV9KSwwKSk7QS5zYW1wbGVzLnJlZHVjZSgoZnVuY3Rpb24oQSxJKXtyZXR1cm4gZy5zZXQoSS5kYXRhLEEpLEErSS5zaXplfSksMCk7dmFyIEk9YW4ubWRhdChnKTtyZXR1cm4gV28oYW4ubW9vZihbQV0pLEkpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52aWRlb1RyYWNrLnJlc2V0KCksdGhpcy5hdWRpb1RyYWNrLnJlc2V0KCl9fV0pLEF9KCk7ZnVuY3Rpb24gaG4oQSl7cmV0dXJuKGhuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKEEpe3JldHVybiB0eXBlb2YgQX06ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJkEuY29uc3RydWN0b3I9PT1TeW1ib2wmJkEhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBBfSkoQSl9ZnVuY3Rpb24geW4oQSxnKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBEbihBLGcpe2Zvcih2YXIgST0wO0k8Zy5sZW5ndGg7SSsrKXt2YXIgQj1nW0ldO0IuZW51bWVyYWJsZT1CLmVudW1lcmFibGV8fCExLEIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBCJiYoQi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsKFE9Qi5rZXksQz12b2lkIDAsInN5bWJvbCI9PXR5cGVvZihDPWZ1bmN0aW9uKEEsZyl7aWYoIm9iamVjdCIhPXR5cGVvZiBBfHxudWxsPT09QSlyZXR1cm4gQTt2YXIgST1BW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09SSl7dmFyIEI9SS5jYWxsKEEsZ3x8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIEIpcmV0dXJuIEI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1nP1N0cmluZzpOdW1iZXIpKEEpfShRLCJzdHJpbmciKSk/QzpTdHJpbmcoQykpLEIpfXZhciBRLEN9ZnVuY3Rpb24gZm4oQSxnLEkpe3JldHVybiBnJiZEbihBLnByb3RvdHlwZSxnKSxJJiZEbihBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gdW4oQSxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6QSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZG4oQSxnKX1mdW5jdGlvbiB3bihBKXtyZXR1cm4od249T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oQSl7cmV0dXJuIEEuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSl9KShBKX1mdW5jdGlvbiBkbihBLGcpe3JldHVybihkbj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihBLGcpe3JldHVybiBBLl9fcHJvdG9fXz1nLEF9KShBLGcpfWZ1bmN0aW9uIEZuKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKEEpe3JldHVybiExfX1mdW5jdGlvbiBsbihBLGcsSSl7cmV0dXJuKGxuPUZuKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1bbnVsbF07Qi5wdXNoLmFwcGx5KEIsZyk7dmFyIFE9bmV3KEZ1bmN0aW9uLmJpbmQuYXBwbHkoQSxCKSk7cmV0dXJuIEkmJmRuKFEsSS5wcm90b3R5cGUpLFF9KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gR24oQSxnKXtpZihnJiYoIm9iamVjdCI9PXR5cGVvZiBnfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIEF9KEEpfWZ1bmN0aW9uIFJuKEEpe3ZhciBnPUZuKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEksQj13bihBKTtpZihnKXt2YXIgUT13bih0aGlzKS5jb25zdHJ1Y3RvcjtJPVJlZmxlY3QuY29uc3RydWN0KEIsYXJndW1lbnRzLFEpfWVsc2UgST1CLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gR24odGhpcyxJKX19ZnVuY3Rpb24gVW4oKXtyZXR1cm4gVW49InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPWZ1bmN0aW9uKEEsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEEsZykmJm51bGwhPT0oQT13bihBKSk7KTtyZXR1cm4gQX0oQSxnKTtpZihCKXt2YXIgUT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEIsZyk7cmV0dXJuIFEuZ2V0P1EuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP0E6SSk6US52YWx1ZX19LFVuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIga249cEUsU249IkFycmF5QnVmZmVyIixObj1YQ1tTbl07T0koe2dsb2JhbDohMCxmb3JjZWQ6cltTbl0hPT1Obn0se0FycmF5QnVmZmVyOk5ufSksa24oU24pLE1pKCJJbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIlVpbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSwhMCksTWkoIkludDE2IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIlVpbnQxNiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJJbnQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJVaW50MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiRmxvYXQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJGbG9hdDY0IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSk7dmFyIE1uPWwsWW49ZnVuY3Rpb24oKXt2YXIgQT1Nbih0aGlzKSxnPSIiO3JldHVybiBBLmdsb2JhbCYmKGcrPSJnIiksQS5pZ25vcmVDYXNlJiYoZys9ImkiKSxBLm11bHRpbGluZSYmKGcrPSJtIiksQS5kb3RBbGwmJihnKz0icyIpLEEudW5pY29kZSYmKGcrPSJ1IiksQS5zdGlja3kmJihnKz0ieSIpLGd9LEhuPWFJLHBuPWwsSm49ZyxMbj1Zbix2bj0idG9TdHJpbmciLEtuPVJlZ0V4cC5wcm90b3R5cGUsbW49S25bdm5dLHhuPUpuKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9bW4uY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKSxxbj1tbi5uYW1lIT12bjsoeG58fHFuKSYmSG4oUmVnRXhwLnByb3RvdHlwZSx2biwoZnVuY3Rpb24oKXt2YXIgQT1wbih0aGlzKSxnPVN0cmluZyhBLnNvdXJjZSksST1BLmZsYWdzO3JldHVybiIvIitnKyIvIitTdHJpbmcodm9pZCAwPT09SSYmQSBpbnN0YW5jZW9mIFJlZ0V4cCYmISgiZmxhZ3MiaW4gS24pP0xuLmNhbGwoQSk6SSl9KSx7dW5zYWZlOiEwfSk7dmFyIGJuPU9JLFRuPW8sT249W10uam9pbixXbj1FIT1PYmplY3QsWm49bHQoImpvaW4iLCIsIik7Ym4oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpXbnx8IVpufSx7am9pbjpmdW5jdGlvbihBKXtyZXR1cm4gT24uY2FsbChUbih0aGlzKSx2b2lkIDA9PT1BPyIsIjpBKX19KTt2YXIgam49T0ksUG49ZyxYbj15RSxWbj1oLHpuPWosX249U0EsJG49JGUsQXI9d0UsZ3I9Qm8sSXI9b0EsQnI9RkEoImlzQ29uY2F0U3ByZWFkYWJsZSIpLFFyPTkwMDcxOTkyNTQ3NDA5OTEsQ3I9Ik1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIsRXI9SXI+PTUxfHwhUG4oKGZ1bmN0aW9uKCl7dmFyIEE9W107cmV0dXJuIEFbQnJdPSExLEEuY29uY2F0KClbMF0hPT1BfSkpLGlyPWdyKCJjb25jYXQiKSx0cj1mdW5jdGlvbihBKXtpZighVm4oQSkpcmV0dXJuITE7dmFyIGc9QVtCcl07cmV0dXJuIHZvaWQgMCE9PWc/ISFnOlhuKEEpfTtqbih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFFcnx8IWlyfSx7Y29uY2F0OmZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRT16bih0aGlzKSxpPUFyKEUsMCksdD0wO2ZvcihnPS0xLEI9YXJndW1lbnRzLmxlbmd0aDtnPEI7ZysrKWlmKHRyKEM9LTE9PT1nP0U6YXJndW1lbnRzW2ddKSl7aWYodCsoUT1fbihDLmxlbmd0aCkpPlFyKXRocm93IFR5cGVFcnJvcihDcik7Zm9yKEk9MDtJPFE7SSsrLHQrKylJIGluIEMmJiRuKGksdCxDW0ldKX1lbHNle2lmKHQ+PVFyKXRocm93IFR5cGVFcnJvcihDcik7JG4oaSx0KyssQyl9cmV0dXJuIGkubGVuZ3RoPXQsaX19KTt2YXIgZXI9T0ksb3I9SEEsbnI9UkEscnI9U0EsYXI9aixzcj13RSxjcj0kZSxocj1Cbygic3BsaWNlIikseXI9TWF0aC5tYXgsRHI9TWF0aC5taW47ZXIoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohaHJ9LHtzcGxpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGksdD1hcih0aGlzKSxlPXJyKHQubGVuZ3RoKSxvPW9yKEEsZSksbj1hcmd1bWVudHMubGVuZ3RoO2lmKDA9PT1uP0k9Qj0wOjE9PT1uPyhJPTAsQj1lLW8pOihJPW4tMixCPURyKHlyKG5yKGcpLDApLGUtbykpLGUrSS1CPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgVHlwZUVycm9yKCJNYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIGV4Y2VlZGVkIik7Zm9yKFE9c3IodCxCKSxDPTA7QzxCO0MrKykoRT1vK0MpaW4gdCYmY3IoUSxDLHRbRV0pO2lmKFEubGVuZ3RoPUIsSTxCKXtmb3IoQz1vO0M8ZS1CO0MrKylpPUMrSSwoRT1DK0IpaW4gdD90W2ldPXRbRV06ZGVsZXRlIHRbaV07Zm9yKEM9ZTtDPmUtQitJO0MtLSlkZWxldGUgdFtDLTFdfWVsc2UgaWYoST5CKWZvcihDPWUtQjtDPm87Qy0tKWk9QytJLTEsKEU9QytCLTEpaW4gdD90W2ldPXRbRV06ZGVsZXRlIHRbaV07Zm9yKEM9MDtDPEk7QysrKXRbQytvXT1hcmd1bWVudHNbQysyXTtyZXR1cm4gdC5sZW5ndGg9ZS1CK0ksUX19KTtmb3IodmFyIGZyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe3luKHRoaXMsQSl9cmV0dXJuIGZuKEEsW3trZXk6Im1peEluIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLEEpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9bmV3IHRoaXMuY29uc3RydWN0b3I7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx0aGlzKSxBfX1dLFt7a2V5OiJjcmVhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBBPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoQSksST0wO0k8QTtJKyspZ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIGxuKHRoaXMsZyl9fV0pLEF9KCksdXI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7dmFyIEEsQj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sUT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NCpCLmxlbmd0aDt5bih0aGlzLEkpLEE9Zy5jYWxsKHRoaXMpO3ZhciBDPUI7aWYoQyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYoQz1uZXcgVWludDhBcnJheShDKSksKEMgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8QyBpbnN0YW5jZW9mIEludDE2QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8QyBpbnN0YW5jZW9mIEludDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJihDPW5ldyBVaW50OEFycmF5KEMuYnVmZmVyLEMuYnl0ZU9mZnNldCxDLmJ5dGVMZW5ndGgpKSxDIGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciBFPUMuYnl0ZUxlbmd0aCxpPVtdLHQ9MDt0PEU7dCs9MSlpW3Q+Pj4yXXw9Q1t0XTw8MjQtdCU0Kjg7QS53b3Jkcz1pLEEuc2lnQnl0ZXM9RX1lbHNlIEEud29yZHM9QixBLnNpZ0J5dGVzPVE7cmV0dXJuIEF9cmV0dXJuIGZuKEksW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d3IpLnN0cmluZ2lmeSh0aGlzKX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcy53b3JkcyxJPUEud29yZHMsQj10aGlzLnNpZ0J5dGVzLFE9QS5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksQiU0KWZvcih2YXIgQz0wO0M8UTtDKz0xKXt2YXIgRT1JW0M+Pj4yXT4+PjI0LUMlNCo4JjI1NTtnW0IrQz4+PjJdfD1FPDwyNC0oQitDKSU0Kjh9ZWxzZSBmb3IodmFyIGk9MDtpPFE7aSs9NClnW0IraT4+PjJdPUlbaT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1RLHRoaXN9fSx7a2V5OiJjbGFtcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLndvcmRzLGc9dGhpcy5zaWdCeXRlcztBW2c+Pj4yXSY9NDI5NDk2NzI5NTw8MzItZyU0KjgsQS5sZW5ndGg9TWF0aC5jZWlsKGcvNCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1Vbih3bihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksQX19XSxbe2tleToicmFuZG9tIix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGcsQj1bXSxRPWZ1bmN0aW9uKEEpe3ZhciBnPUEsST05ODc2NTQzMjEsQj00Mjk0OTY3Mjk1O3JldHVybiBmdW5jdGlvbigpe3ZhciBBPSgoST0zNjk2OSooNjU1MzUmSSkrKEk+PjE2KSZCKTw8MTYpKyhnPTE4ZTMqKDY1NTM1JmcpKyhnPj4xNikmQikmQjtyZXR1cm4gQS89NDI5NDk2NzI5NiwoQSs9LjUpKihNYXRoLnJhbmRvbSgpPi41PzE6LTEpfX0sQz0wO0M8QTtDKz00KXt2YXIgRT1RKDQyOTQ5NjcyOTYqKGd8fE1hdGgucmFuZG9tKCkpKTtnPTk4NzY1NDA3MSpFKCksQi5wdXNoKDQyOTQ5NjcyOTYqRSgpfDApfXJldHVybiBuZXcgSShCLEEpfX1dKSxJfShmciksd3I9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj1bXSxRPTA7UTxJO1ErPTEpe3ZhciBDPWdbUT4+PjJdPj4+MjQtUSU0KjgmMjU1O0IucHVzaCgoQz4+PjQpLnRvU3RyaW5nKDE2KSksQi5wdXNoKCgxNSZDKS50b1N0cmluZygxNikpfXJldHVybiBCLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5sZW5ndGgsST1bXSxCPTA7QjxnO0IrPTIpSVtCPj4+M118PXBhcnNlSW50KEEuc3Vic3RyKEIsMiksMTYpPDwyNC1CJTgqNDtyZXR1cm4gbmV3IHVyKEksZy8yKX19LGRyPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1BLmxlbmd0aCxJPVtdLEI9MDtCPGc7Qis9MSlJW0I+Pj4yXXw9KDI1NSZBLmNoYXJDb2RlQXQoQikpPDwyNC1CJTQqODtyZXR1cm4gbmV3IHVyKEksZyl9LEZyPWZ1bmN0aW9uKEEpe3JldHVybiBkcih1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQSkpKX0sbHI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7dmFyIEE7cmV0dXJuIHluKHRoaXMsSSksKEE9Zy5jYWxsKHRoaXMpKS5fbWluQnVmZmVyU2l6ZT0wLEF9cmV0dXJuIGZuKEksW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHVyLHRoaXMuX25EYXRhQnl0ZXM9MH19LHtrZXk6Il9hcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPUE7InN0cmluZyI9PXR5cGVvZiBnJiYoZz1GcihnKSksdGhpcy5fZGF0YS5jb25jYXQoZyksdGhpcy5fbkRhdGFCeXRlcys9Zy5zaWdCeXRlc319LHtrZXk6Il9wcm9jZXNzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPXRoaXMuX2RhdGEsQj10aGlzLmJsb2NrU2l6ZSxRPUkud29yZHMsQz1JLnNpZ0J5dGVzLEU9Qy8oNCpCKSxpPShFPUE/TWF0aC5jZWlsKEUpOk1hdGgubWF4KCgwfEUpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCkpKkIsdD1NYXRoLm1pbig0KmksQyk7aWYoaSl7Zm9yKHZhciBlPTA7ZTxpO2UrPUIpdGhpcy5fZG9Qcm9jZXNzQmxvY2soUSxlKTtnPVEuc3BsaWNlKDAsaSksSS5zaWdCeXRlcy09dH1yZXR1cm4gbmV3IHVyKGcsdCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1Vbih3bihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLl9kYXRhPXRoaXMuX2RhdGEuY2xvbmUoKSxBfX1dKSxJfShmciksR3I9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEpe3ZhciBCO3JldHVybiB5bih0aGlzLEkpLChCPWcuY2FsbCh0aGlzKSkuYmxvY2tTaXplPTE2LEIuY2ZnPU9iamVjdC5hc3NpZ24obmV3IGZyLEEpLEIucmVzZXQoKSxCfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtVbih3bihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCksdGhpc319LHtrZXk6ImZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQSYmdGhpcy5fYXBwZW5kKEEpLHRoaXMuX2RvRmluYWxpemUoKX19XSxbe2tleToiX2NyZWF0ZUhlbHBlciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7cmV0dXJuIG5ldyBBKEkpLmZpbmFsaXplKGcpfX19LHtrZXk6Il9jcmVhdGVIbWFjSGVscGVyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJKXtyZXR1cm4gbmV3IFJyKEEsSSkuZmluYWxpemUoZyl9fX1dKSxJfShsciksUnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEsQil7dmFyIFE7eW4odGhpcyxJKSxRPWcuY2FsbCh0aGlzKTt2YXIgQz1uZXcgQTtRLl9oYXNoZXI9Qzt2YXIgRT1COyJzdHJpbmciPT10eXBlb2YgRSYmKEU9RnIoRSkpO3ZhciBpPUMuYmxvY2tTaXplLHQ9NCppO0Uuc2lnQnl0ZXM+dCYmKEU9Qy5maW5hbGl6ZShCKSksRS5jbGFtcCgpO3ZhciBlPUUuY2xvbmUoKTtRLl9vS2V5PWU7dmFyIG89RS5jbG9uZSgpO1EuX2lLZXk9bztmb3IodmFyIG49ZS53b3JkcyxyPW8ud29yZHMsYT0wO2E8aTthKz0xKW5bYV1ePTE1NDk1NTY4MjgsclthXV49OTA5NTIyNDg2O3JldHVybiBlLnNpZ0J5dGVzPXQsby5zaWdCeXRlcz10LFEucmVzZXQoKSxRfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9oYXNoZXI7QS5yZXNldCgpLEEudXBkYXRlKHRoaXMuX2lLZXkpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZShBKSx0aGlzfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2hhc2hlcixJPWcuZmluYWxpemUoQSk7cmV0dXJuIGcucmVzZXQoKSxnLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoSSkpfX1dKSxJfShmciksVXI9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXt2YXIgZz1BLndvcmRzLEk9QS5zaWdCeXRlcyxCPXRoaXMuX21hcDtBLmNsYW1wKCk7Zm9yKHZhciBRPVtdLEM9MDtDPEk7Qys9Mylmb3IodmFyIEU9KGdbQz4+PjJdPj4+MjQtQyU0KjgmMjU1KTw8MTZ8KGdbQysxPj4+Ml0+Pj4yNC0oQysxKSU0KjgmMjU1KTw8OHxnW0MrMj4+PjJdPj4+MjQtKEMrMiklNCo4JjI1NSxpPTA7aTw0JiZDKy43NSppPEk7aSs9MSlRLnB1c2goQi5jaGFyQXQoRT4+PjYqKDMtaSkmNjMpKTt2YXIgdD1CLmNoYXJBdCg2NCk7aWYodClmb3IoO1EubGVuZ3RoJTQ7KVEucHVzaCh0KTtyZXR1cm4gUS5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24oQSl7dmFyIGc9QS5sZW5ndGgsST10aGlzLl9tYXAsQj10aGlzLl9yZXZlcnNlTWFwO2lmKCFCKXt0aGlzLl9yZXZlcnNlTWFwPVtdLEI9dGhpcy5fcmV2ZXJzZU1hcDtmb3IodmFyIFE9MDtRPEkubGVuZ3RoO1ErPTEpQltJLmNoYXJDb2RlQXQoUSldPVF9dmFyIEM9SS5jaGFyQXQoNjQpO2lmKEMpe3ZhciBFPUEuaW5kZXhPZihDKTstMSE9PUUmJihnPUUpfXJldHVybiBmdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPVtdLFE9MCxDPTA7QzxnO0MrPTEpaWYoQyU0KXt2YXIgRT1JW0EuY2hhckNvZGVBdChDLTEpXTw8QyU0KjJ8SVtBLmNoYXJDb2RlQXQoQyldPj4+Ni1DJTQqMjtCW1E+Pj4yXXw9RTw8MjQtUSU0KjgsUSs9MX1yZXR1cm4gdXIuY3JlYXRlKEIsUSl9KEEsZyxCKX0sX21hcDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0ifSxrcj1bXSxTcj0wO1NyPDY0O1NyKz0xKWtyW1NyXT00Mjk0OTY3Mjk2Kk1hdGguYWJzKE1hdGguc2luKFNyKzEpKXwwO3ZhciBOcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnJkl8fmcmQikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxNcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnJkJ8SSZ+QikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxZcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnXkleQikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxIcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhJXihnfH5CKSkrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxwcj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgdXIoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfX0se2tleToiX2RvUHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1BLEI9MDtCPDE2O0IrPTEpe3ZhciBRPWcrQixDPUFbUV07SVtRXT0xNjcxMTkzNSYoQzw8OHxDPj4+MjQpfDQyNzgyNTUzNjAmKEM8PDI0fEM+Pj44KX12YXIgRT10aGlzLl9oYXNoLndvcmRzLGk9SVtnKzBdLHQ9SVtnKzFdLGU9SVtnKzJdLG89SVtnKzNdLG49SVtnKzRdLHI9SVtnKzVdLGE9SVtnKzZdLHM9SVtnKzddLGM9SVtnKzhdLGg9SVtnKzldLHk9SVtnKzEwXSxEPUlbZysxMV0sZj1JW2crMTJdLHU9SVtnKzEzXSx3PUlbZysxNF0sZD1JW2crMTVdLEY9RVswXSxsPUVbMV0sRz1FWzJdLFI9RVszXTtGPU5yKEYsbCxHLFIsaSw3LGtyWzBdKSxSPU5yKFIsRixsLEcsdCwxMixrclsxXSksRz1OcihHLFIsRixsLGUsMTcsa3JbMl0pLGw9TnIobCxHLFIsRixvLDIyLGtyWzNdKSxGPU5yKEYsbCxHLFIsbiw3LGtyWzRdKSxSPU5yKFIsRixsLEcsciwxMixrcls1XSksRz1OcihHLFIsRixsLGEsMTcsa3JbNl0pLGw9TnIobCxHLFIsRixzLDIyLGtyWzddKSxGPU5yKEYsbCxHLFIsYyw3LGtyWzhdKSxSPU5yKFIsRixsLEcsaCwxMixrcls5XSksRz1OcihHLFIsRixsLHksMTcsa3JbMTBdKSxsPU5yKGwsRyxSLEYsRCwyMixrclsxMV0pLEY9TnIoRixsLEcsUixmLDcsa3JbMTJdKSxSPU5yKFIsRixsLEcsdSwxMixrclsxM10pLEc9TnIoRyxSLEYsbCx3LDE3LGtyWzE0XSksbD1OcihsLEcsUixGLGQsMjIsa3JbMTVdKSxGPU1yKEYsbCxHLFIsdCw1LGtyWzE2XSksUj1NcihSLEYsbCxHLGEsOSxrclsxN10pLEc9TXIoRyxSLEYsbCxELDE0LGtyWzE4XSksbD1NcihsLEcsUixGLGksMjAsa3JbMTldKSxGPU1yKEYsbCxHLFIsciw1LGtyWzIwXSksUj1NcihSLEYsbCxHLHksOSxrclsyMV0pLEc9TXIoRyxSLEYsbCxkLDE0LGtyWzIyXSksbD1NcihsLEcsUixGLG4sMjAsa3JbMjNdKSxGPU1yKEYsbCxHLFIsaCw1LGtyWzI0XSksUj1NcihSLEYsbCxHLHcsOSxrclsyNV0pLEc9TXIoRyxSLEYsbCxvLDE0LGtyWzI2XSksbD1NcihsLEcsUixGLGMsMjAsa3JbMjddKSxGPU1yKEYsbCxHLFIsdSw1LGtyWzI4XSksUj1NcihSLEYsbCxHLGUsOSxrclsyOV0pLEc9TXIoRyxSLEYsbCxzLDE0LGtyWzMwXSksbD1NcihsLEcsUixGLGYsMjAsa3JbMzFdKSxGPVlyKEYsbCxHLFIsciw0LGtyWzMyXSksUj1ZcihSLEYsbCxHLGMsMTEsa3JbMzNdKSxHPVlyKEcsUixGLGwsRCwxNixrclszNF0pLGw9WXIobCxHLFIsRix3LDIzLGtyWzM1XSksRj1ZcihGLGwsRyxSLHQsNCxrclszNl0pLFI9WXIoUixGLGwsRyxuLDExLGtyWzM3XSksRz1ZcihHLFIsRixsLHMsMTYsa3JbMzhdKSxsPVlyKGwsRyxSLEYseSwyMyxrclszOV0pLEY9WXIoRixsLEcsUix1LDQsa3JbNDBdKSxSPVlyKFIsRixsLEcsaSwxMSxrcls0MV0pLEc9WXIoRyxSLEYsbCxvLDE2LGtyWzQyXSksbD1ZcihsLEcsUixGLGEsMjMsa3JbNDNdKSxGPVlyKEYsbCxHLFIsaCw0LGtyWzQ0XSksUj1ZcihSLEYsbCxHLGYsMTEsa3JbNDVdKSxHPVlyKEcsUixGLGwsZCwxNixrcls0Nl0pLGw9WXIobCxHLFIsRixlLDIzLGtyWzQ3XSksRj1IcihGLGwsRyxSLGksNixrcls0OF0pLFI9SHIoUixGLGwsRyxzLDEwLGtyWzQ5XSksRz1IcihHLFIsRixsLHcsMTUsa3JbNTBdKSxsPUhyKGwsRyxSLEYsciwyMSxrcls1MV0pLEY9SHIoRixsLEcsUixmLDYsa3JbNTJdKSxSPUhyKFIsRixsLEcsbywxMCxrcls1M10pLEc9SHIoRyxSLEYsbCx5LDE1LGtyWzU0XSksbD1IcihsLEcsUixGLHQsMjEsa3JbNTVdKSxGPUhyKEYsbCxHLFIsYyw2LGtyWzU2XSksUj1IcihSLEYsbCxHLGQsMTAsa3JbNTddKSxHPUhyKEcsUixGLGwsYSwxNSxrcls1OF0pLGw9SHIobCxHLFIsRix1LDIxLGtyWzU5XSksRj1IcihGLGwsRyxSLG4sNixrcls2MF0pLFI9SHIoUixGLGwsRyxELDEwLGtyWzYxXSksRz1IcihHLFIsRixsLGUsMTUsa3JbNjJdKSxsPUhyKGwsRyxSLEYsaCwyMSxrcls2M10pLEVbMF09RVswXStGfDAsRVsxXT1FWzFdK2x8MCxFWzJdPUVbMl0rR3wwLEVbM109RVszXStSfDB9fSx7a2V5OiJfZG9GaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLGc9QS53b3JkcyxJPTgqdGhpcy5fbkRhdGFCeXRlcyxCPTgqQS5zaWdCeXRlcztnW0I+Pj41XXw9MTI4PDwyNC1CJTMyO3ZhciBRPU1hdGguZmxvb3IoSS80Mjk0OTY3Mjk2KSxDPUk7Z1sxNSsoQis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoUTw8OHxRPj4+MjQpfDQyNzgyNTUzNjAmKFE8PDI0fFE+Pj44KSxnWzE0KyhCKzY0Pj4+OTw8NCldPTE2NzExOTM1JihDPDw4fEM+Pj4yNCl8NDI3ODI1NTM2MCYoQzw8MjR8Qz4+PjgpLEEuc2lnQnl0ZXM9NCooZy5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgRT10aGlzLl9oYXNoLGk9RS53b3Jkcyx0PTA7dDw0O3QrPTEpe3ZhciBlPWlbdF07aVt0XT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KX1yZXR1cm4gRX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPVVuKHduKEkucHJvdG90eXBlKSwiY2xvbmUiLHRoaXMpLmNhbGwodGhpcyk7cmV0dXJuIEEuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLEF9fV0pLEl9KEdyKTtHci5fY3JlYXRlSGVscGVyKHByKSxHci5fY3JlYXRlSG1hY0hlbHBlcihwcik7dmFyIEpyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBKXt2YXIgQjtyZXR1cm4geW4odGhpcyxJKSwoQj1nLmNhbGwodGhpcykpLmNmZz1PYmplY3QuYXNzaWduKG5ldyBmcix7a2V5U2l6ZTo0LGhhc2hlcjpwcixpdGVyYXRpb25zOjF9LEEpLEJ9cmV0dXJuIGZuKEksW3trZXk6ImNvbXB1dGUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJLEI9dGhpcy5jZmcsUT1CLmhhc2hlci5jcmVhdGUoKSxDPXVyLmNyZWF0ZSgpLEU9Qy53b3JkcyxpPUIua2V5U2l6ZSx0PUIuaXRlcmF0aW9ucztFLmxlbmd0aDxpOyl7SSYmUS51cGRhdGUoSSksST1RLnVwZGF0ZShBKS5maW5hbGl6ZShnKSxRLnJlc2V0KCk7Zm9yKHZhciBlPTE7ZTx0O2UrPTEpST1RLmZpbmFsaXplKEkpLFEucmVzZXQoKTtDLmNvbmNhdChJKX1yZXR1cm4gQy5zaWdCeXRlcz00KmksQ319XSksSX0oZnIpLExyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBLEIsUSl7dmFyIEM7cmV0dXJuIHluKHRoaXMsSSksKEM9Zy5jYWxsKHRoaXMpKS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgZnIsUSksQy5feGZvcm1Nb2RlPUEsQy5fa2V5PUIsQy5yZXNldCgpLEN9cmV0dXJuIGZuKEksW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe1VuKHduKEkucHJvdG90eXBlKSwicmVzZXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfX0se2tleToicHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCl9fSx7a2V5OiJmaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJnRoaXMuX2FwcGVuZChBKSx0aGlzLl9kb0ZpbmFsaXplKCl9fV0sW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsQSxnKX19LHtrZXk6ImNyZWF0ZURlY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsQSxnKX19LHtrZXk6Il9jcmVhdGVIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPWZ1bmN0aW9uKEEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9acjpPcn07cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmVuY3J5cHQoQSxJLEIsUSl9LGRlY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmRlY3J5cHQoQSxJLEIsUSl9fX19XSksSX0obHIpO0xyLl9FTkNfWEZPUk1fTU9ERT0xLExyLl9ERUNfWEZPUk1fTU9ERT0yLExyLmtleVNpemU9NCxMci5pdlNpemU9NDt2YXIgdnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEsQil7dmFyIFE7cmV0dXJuIHluKHRoaXMsSSksKFE9Zy5jYWxsKHRoaXMpKS5fY2lwaGVyPUEsUS5faXY9QixRfXJldHVybiBmbihJLG51bGwsW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5FbmNyeXB0b3IuY3JlYXRlKEEsZyl9fSx7a2V5OiJjcmVhdGVEZWNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuRGVjcnlwdG9yLmNyZWF0ZShBLGcpfX1dKSxJfShmcik7ZnVuY3Rpb24gS3IoQSxnLEkpe3ZhciBCLFE9QSxDPXRoaXMuX2l2O0M/KEI9Qyx0aGlzLl9pdj12b2lkIDApOkI9dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgRT0wO0U8STtFKz0xKVFbZytFXV49QltFXX12YXIgbXI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEkpfSh2cik7bXIuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9dGhpcy5fY2lwaGVyLEI9SS5ibG9ja1NpemU7S3IuY2FsbCh0aGlzLEEsZyxCKSxJLmVuY3J5cHRCbG9jayhBLGcpLHRoaXMuX3ByZXZCbG9jaz1BLnNsaWNlKGcsZytCKX19XSksSX0obXIpLG1yLkRlY3J5cHRvcj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMuX2NpcGhlcixCPUkuYmxvY2tTaXplLFE9QS5zbGljZShnLGcrQik7SS5kZWNyeXB0QmxvY2soQSxnKSxLci5jYWxsKHRoaXMsQSxnLEIpLHRoaXMuX3ByZXZCbG9jaz1RfX1dKSxJfShtcik7dmFyIHhyPXtwYWQ6ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9NCpnLEI9SS1BLnNpZ0J5dGVzJUksUT1CPDwyNHxCPDwxNnxCPDw4fEIsQz1bXSxFPTA7RTxCO0UrPTQpQy5wdXNoKFEpO3ZhciBpPXVyLmNyZWF0ZShDLEIpO0EuY29uY2F0KGkpfSx1bnBhZDpmdW5jdGlvbihBKXt2YXIgZz1BLEk9MjU1Jmcud29yZHNbZy5zaWdCeXRlcy0xPj4+Ml07Zy5zaWdCeXRlcy09SX19LHFyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBLEIsUSl7dmFyIEM7cmV0dXJuIHluKHRoaXMsSSksKEM9Zy5jYWxsKHRoaXMsQSxCLE9iamVjdC5hc3NpZ24oe21vZGU6bXIscGFkZGluZzp4cn0sUSkpKS5ibG9ja1NpemU9NCxDfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtVbih3bihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpO3ZhciBnPXRoaXMuY2ZnLEI9Zy5pdixRPWcubW9kZTt0aGlzLl94Zm9ybU1vZGU9PT10aGlzLmNvbnN0cnVjdG9yLl9FTkNfWEZPUk1fTU9ERT9BPVEuY3JlYXRlRW5jcnlwdG9yOihBPVEuY3JlYXRlRGVjcnlwdG9yLHRoaXMuX21pbkJ1ZmZlclNpemU9MSksdGhpcy5fbW9kZT1BLmNhbGwoUSx0aGlzLEImJkIud29yZHMpLHRoaXMuX21vZGUuX19jcmVhdG9yPUF9fSx7a2V5OiJfZG9Qcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2soQSxnKX19LHtrZXk6Il9kb0ZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBLGc9dGhpcy5jZmcucGFkZGluZztyZXR1cm4gdGhpcy5feGZvcm1Nb2RlPT09dGhpcy5jb25zdHJ1Y3Rvci5fRU5DX1hGT1JNX01PREU/KGcucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpLEE9dGhpcy5fcHJvY2VzcyghMCkpOihBPXRoaXMuX3Byb2Nlc3MoITApLGcudW5wYWQoQSkpLEF9fV0pLEl9KExyKSxicj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoQSl7dmFyIEI7cmV0dXJuIHluKHRoaXMsSSksKEI9Zy5jYWxsKHRoaXMpKS5taXhJbihBKSxCfXJldHVybiBmbihJLFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuKEF8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fV0pLEl9KGZyKSxUcj17c3RyaW5naWZ5OmZ1bmN0aW9uKEEpe3ZhciBnPUEuY2lwaGVydGV4dCxJPUEuc2FsdDtyZXR1cm4oST91ci5jcmVhdGUoWzEzOTg4OTM2ODQsMTcwMTA3NjgzMV0pLmNvbmNhdChJKS5jb25jYXQoZyk6ZykudG9TdHJpbmcoVXIpfSxwYXJzZTpmdW5jdGlvbihBKXt2YXIgZyxJPVVyLnBhcnNlKEEpLEI9SS53b3JkcztyZXR1cm4gMTM5ODg5MzY4ND09PUJbMF0mJjE3MDEwNzY4MzE9PT1CWzFdJiYoZz11ci5jcmVhdGUoQi5zbGljZSgyLDQpKSxCLnNwbGljZSgwLDQpLEkuc2lnQnl0ZXMtPTE2KSxici5jcmVhdGUoe2NpcGhlcnRleHQ6SSxzYWx0Omd9KX19LE9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLG51bGwsW3trZXk6ImVuY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPU9iamVjdC5hc3NpZ24obmV3IGZyLHRoaXMuY2ZnLEIpLEM9QS5jcmVhdGVFbmNyeXB0b3IoSSxRKSxFPUMuZmluYWxpemUoZyksaT1DLmNmZztyZXR1cm4gYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0OkUsa2V5OkksaXY6aS5pdixhbGdvcml0aG06QSxtb2RlOmkubW9kZSxwYWRkaW5nOmkucGFkZGluZyxibG9ja1NpemU6Qy5ibG9ja1NpemUsZm9ybWF0dGVyOlEuZm9ybWF0fSl9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEM9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQik7cmV0dXJuIFE9dGhpcy5fcGFyc2UoUSxDLmZvcm1hdCksQS5jcmVhdGVEZWNyeXB0b3IoSSxDKS5maW5hbGl6ZShRLmNpcGhlcnRleHQpfX0se2tleToiX3BhcnNlIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9nLnBhcnNlKEEsdGhpcyk6QX19XSksSX0oZnIpO09yLmNmZz1PYmplY3QuYXNzaWduKG5ldyBmcix7Zm9ybWF0OlRyfSk7dmFyIFdyPXtleGVjdXRlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPUI7UXx8KFE9dXIucmFuZG9tKDgpKTt2YXIgQz1Kci5jcmVhdGUoe2tleVNpemU6ZytJfSkuY29tcHV0ZShBLFEpLEU9dXIuY3JlYXRlKEMud29yZHMuc2xpY2UoZyksNCpJKTtyZXR1cm4gQy5zaWdCeXRlcz00KmcsYnIuY3JlYXRlKHtrZXk6QyxpdjpFLHNhbHQ6UX0pfX0sWnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEksbnVsbCxbe2tleToiZW5jcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQiksQz1RLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplKTtRLml2PUMuaXY7dmFyIEU9T3IuZW5jcnlwdC5jYWxsKHRoaXMsQSxnLEMua2V5LFEpO3JldHVybiBFLm1peEluKEMpLEV9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEM9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQik7UT10aGlzLl9wYXJzZShRLEMuZm9ybWF0KTt2YXIgRT1DLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplLFEuc2FsdCk7cmV0dXJuIEMuaXY9RS5pdixPci5kZWNyeXB0LmNhbGwodGhpcyxBLFEsRS5rZXksQyl9fV0pLEl9KE9yKTtaci5jZmc9T2JqZWN0LmFzc2lnbihPci5jZmcse2tkZjpXcn0pO2Zvcih2YXIganI9W10sUHI9W10sWHI9W10sVnI9W10senI9W10sX3I9W10sJHI9W10sQWE9W10sZ2E9W10sSWE9W10sQmE9W10sUWE9MDtRYTwyNTY7UWErPTEpQmFbUWFdPVFhPDEyOD9RYTw8MTpRYTw8MV4yODM7Zm9yKHZhciBDYT0wLEVhPTAsaWE9MDtpYTwyNTY7aWErPTEpe3ZhciB0YT1FYV5FYTw8MV5FYTw8Ml5FYTw8M15FYTw8NDt0YT10YT4+PjheMjU1JnRhXjk5LGpyW0NhXT10YSxQclt0YV09Q2E7dmFyIGVhPUJhW0NhXSxvYT1CYVtlYV0sbmE9QmFbb2FdLHJhPTI1NypCYVt0YV1eMTY4NDMwMDgqdGE7WHJbQ2FdPXJhPDwyNHxyYT4+PjgsVnJbQ2FdPXJhPDwxNnxyYT4+PjE2LHpyW0NhXT1yYTw8OHxyYT4+PjI0LF9yW0NhXT1yYSxyYT0xNjg0MzAwOSpuYV42NTUzNypvYV4yNTcqZWFeMTY4NDMwMDgqQ2EsJHJbdGFdPXJhPDwyNHxyYT4+PjgsQWFbdGFdPXJhPDwxNnxyYT4+PjE2LGdhW3RhXT1yYTw8OHxyYT4+PjI0LElhW3RhXT1yYSxDYT8oQ2E9ZWFeQmFbQmFbQmFbbmFeZWFdXV0sRWFePUJhW0JhW0VhXV0pOkNhPUVhPTF9dmFyIGFhPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxzYT1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7aWYoIXRoaXMuX25Sb3VuZHN8fHRoaXMuX2tleVByaW9yUmVzZXQhPT10aGlzLl9rZXkpe3RoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5O3ZhciBnPXRoaXMuX2tleVByaW9yUmVzZXQsST1nLndvcmRzLEI9Zy5zaWdCeXRlcy80O3RoaXMuX25Sb3VuZHM9Qis2O3ZhciBRPTQqKHRoaXMuX25Sb3VuZHMrMSk7dGhpcy5fa2V5U2NoZWR1bGU9W107Zm9yKHZhciBDPXRoaXMuX2tleVNjaGVkdWxlLEU9MDtFPFE7RSs9MSlFPEI/Q1tFXT1JW0VdOihBPUNbRS0xXSxFJUI/Qj42JiZFJUI9PTQmJihBPWpyW0E+Pj4yNF08PDI0fGpyW0E+Pj4xNiYyNTVdPDwxNnxqcltBPj4+OCYyNTVdPDw4fGpyWzI1NSZBXSk6KEE9anJbKEE9QTw8OHxBPj4+MjQpPj4+MjRdPDwyNHxqcltBPj4+MTYmMjU1XTw8MTZ8anJbQT4+PjgmMjU1XTw8OHxqclsyNTUmQV0sQV49YWFbRS9CfDBdPDwyNCksQ1tFXT1DW0UtQl1eQSk7dGhpcy5faW52S2V5U2NoZWR1bGU9W107Zm9yKHZhciBpPXRoaXMuX2ludktleVNjaGVkdWxlLHQ9MDt0PFE7dCs9MSl7dmFyIGU9US10O0E9dCU0P0NbZV06Q1tlLTRdLGlbdF09dDw0fHxlPD00P0E6JHJbanJbQT4+PjI0XV1eQWFbanJbQT4+PjE2JjI1NV1dXmdhW2pyW0E+Pj44JjI1NV1dXklhW2pyWzI1NSZBXV19fX19LHtrZXk6ImVuY3J5cHRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt0aGlzLl9kb0NyeXB0QmxvY2soQSxnLHRoaXMuX2tleVNjaGVkdWxlLFhyLFZyLHpyLF9yLGpyKX19LHtrZXk6ImRlY3J5cHRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST1BLEI9SVtnKzFdO0lbZysxXT1JW2crM10sSVtnKzNdPUIsdGhpcy5fZG9DcnlwdEJsb2NrKEksZyx0aGlzLl9pbnZLZXlTY2hlZHVsZSwkcixBYSxnYSxJYSxQciksQj1JW2crMV0sSVtnKzFdPUlbZyszXSxJW2crM109Qn19LHtrZXk6Il9kb0NyeXB0QmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIsUSxDLEUsaSl7Zm9yKHZhciB0PUEsZT10aGlzLl9uUm91bmRzLG89dFtnXV5JWzBdLG49dFtnKzFdXklbMV0scj10W2crMl1eSVsyXSxhPXRbZyszXV5JWzNdLHM9NCxjPTE7YzxlO2MrPTEpe3ZhciBoPUJbbz4+PjI0XV5RW24+Pj4xNiYyNTVdXkNbcj4+PjgmMjU1XV5FWzI1NSZhXV5JW3NdO3MrPTE7dmFyIHk9QltuPj4+MjRdXlFbcj4+PjE2JjI1NV1eQ1thPj4+OCYyNTVdXkVbMjU1Jm9dXklbc107cys9MTt2YXIgRD1CW3I+Pj4yNF1eUVthPj4+MTYmMjU1XV5DW28+Pj44JjI1NV1eRVsyNTUmbl1eSVtzXTtzKz0xO3ZhciBmPUJbYT4+PjI0XV5RW28+Pj4xNiYyNTVdXkNbbj4+PjgmMjU1XV5FWzI1NSZyXV5JW3NdO3MrPTEsbz1oLG49eSxyPUQsYT1mfXZhciB1PShpW28+Pj4yNF08PDI0fGlbbj4+PjE2JjI1NV08PDE2fGlbcj4+PjgmMjU1XTw8OHxpWzI1NSZhXSleSVtzXTtzKz0xO3ZhciB3PShpW24+Pj4yNF08PDI0fGlbcj4+PjE2JjI1NV08PDE2fGlbYT4+PjgmMjU1XTw8OHxpWzI1NSZvXSleSVtzXTtzKz0xO3ZhciBkPShpW3I+Pj4yNF08PDI0fGlbYT4+PjE2JjI1NV08PDE2fGlbbz4+PjgmMjU1XTw8OHxpWzI1NSZuXSleSVtzXTtzKz0xO3ZhciBGPShpW2E+Pj4yNF08PDI0fGlbbz4+PjE2JjI1NV08PDE2fGlbbj4+PjgmMjU1XTw8OHxpWzI1NSZyXSleSVtzXTtzKz0xLHRbZ109dSx0W2crMV09dyx0W2crMl09ZCx0W2crM109Rn19XSksSX0ocXIpO3NhLmtleVNpemU9ODt2YXIgY2E9cXIuX2NyZWF0ZUhlbHBlcihzYSksaGE9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEkpfSh2cik7aGEuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9QSxCPXRoaXMuX2NpcGhlcixRPUIuYmxvY2tTaXplLEM9dGhpcy5faXYsRT10aGlzLl9jb3VudGVyO0MmJih0aGlzLl9jb3VudGVyPUMuc2xpY2UoMCksRT10aGlzLl9jb3VudGVyLHRoaXMuX2l2PXZvaWQgMCk7dmFyIGk9RS5zbGljZSgwKTtCLmVuY3J5cHRCbG9jayhpLDApLEVbUS0xXT1FW1EtMV0rMXwwO2Zvcih2YXIgdD0wO3Q8UTt0Kz0xKUlbZyt0XV49aVt0XX19XSksSX0oaGEpLGhhLkRlY3J5cHRvcj1oYS5FbmNyeXB0b3I7dmFyIHlhPXtwYWQ6ZnVuY3Rpb24oKXt9LHVucGFkOmZ1bmN0aW9uKCl7fX0sRGE9e2RlY3J5cHRXb3JkQXJyYXk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPXdyLnBhcnNlKGcpLFE9d3IucGFyc2UoX28oSSkpLEM9dXIuY3JlYXRlKG5ldyBVaW50OEFycmF5KEEpKSxFPWNhLmRlY3J5cHQoYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0OkN9KSxCLHtpdjpRLG1vZGU6aGEscGFkZGluZzp5YX0pO3JldHVybiBEYS53b3JkQXJyYXlUb1VpbnQ4QXJyYXkoRSl9LHdvcmRBcnJheVRvVWludDhBcnJheTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5zaWdCeXRlcyxJPUEud29yZHMsQj1uZXcgVWludDhBcnJheShnKSxRPTAsQz0wO1EhPT1nOyl7dmFyIEU9SVtDKytdO2lmKEJbUSsrXT0oNDI3ODE5MDA4MCZFKT4+PjI0LFE9PT1nKWJyZWFrO2lmKEJbUSsrXT0oMTY3MTE2ODAmRSk+Pj4xNixRPT09ZylicmVhaztpZihCW1ErK109KDY1MjgwJkUpPj4+OCxRPT09ZylicmVhaztCW1ErK109MjU1JkV9cmV0dXJuIEJ9LGRlY29kZXJBRVNDVFJEYXRhOmZ1bmN0aW9uKEEsZyxJKXtpZihBLnZpZGVvU2VuYyl7dmFyIEI9QS5raWRWYWx1ZSxRPUEudmlkZW9TZW5jO0Euc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihnLEMpe3ZhciBFPVFbQ10saT1nLmRhdGEsdD1bXSxlPVtdLG89RS5Jbml0aWFsaXphdGlvblZlY3RvcjtpZihFLnN1YnNhbXBsZXMmJkUuc3Vic2FtcGxlcy5sZW5ndGgpRS5zdWJzYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuQnl0ZXNPZkNsZWFyRGF0YStBLkJ5dGVzT2ZQcm90ZWN0ZWREYXRhLEk9aS5zbGljZSgwLGcpO3QucHVzaChJLnNsaWNlKDAsQS5CeXRlc09mQ2xlYXJEYXRhKSksZS5wdXNoKEkuc2xpY2UoQS5CeXRlc09mQ2xlYXJEYXRhKSksaT1pLnNsaWNlKGcpfSkpO2Vsc2V7dmFyIG49Zy5zaXplO3QucHVzaChpLnNsaWNlKDAsMCkpLGUucHVzaChpLnNsaWNlKDAsbikpLGk9aS5zbGljZShuKX12YXIgcj1uZXcgbm47ci53cml0ZS5hcHBseShyLGUpO3ZhciBhPUk/SShyLmJ1ZmZlcixCLG8pOkRhLmRlY3J5cHRXb3JkQXJyYXkoci5idWZmZXIsQixvKSxzPW5ldyBubjt0LmZvckVhY2goKGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZVtnXS5sZW5ndGgsQj1hLnNsaWNlKDAsSSk7cy53cml0ZShBKSxzLndyaXRlKEIpLGE9YS5zbGljZShJKX0pKSxBLnNhbXBsZXNbQ10uZGF0YT1zLmJ1ZmZlcn0pKX1pZihnLmF1ZGlvU2VuYyl7dmFyIEM9Zy5raWRWYWx1ZSxFPWcuYXVkaW9TZW5jO2cuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBLEIpe3ZhciBRPUVbQl0saT1JP0koQS5kYXRhLEMsUS5Jbml0aWFsaXphdGlvblZlY3Rvcik6RGEuZGVjcnlwdFdvcmRBcnJheShBLmRhdGEsQyxRLkluaXRpYWxpemF0aW9uVmVjdG9yKTtnLnNhbXBsZXNbQl0uZGF0YT1pfSkpfX19LGZhPWksdWE9IltcdFxuXHZcZlxyIMKg4ZqA4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCv4oGf44CAXHUyMDI4XHUyMDI5XHVmZWZmXSIsd2E9UmVnRXhwKCJeIit1YSt1YSsiKiIpLGRhPVJlZ0V4cCh1YSt1YSsiKiQiKSxGYT1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyl7dmFyIEk9U3RyaW5nKGZhKGcpKTtyZXR1cm4gMSZBJiYoST1JLnJlcGxhY2Uod2EsIiIpKSwyJkEmJihJPUkucmVwbGFjZShkYSwiIikpLEl9fSxsYT17c3RhcnQ6RmEoMSksZW5kOkZhKDIpLHRyaW06RmEoMyl9LEdhPXMsUmE9cixVYT1MSSxrYT1hSSxTYT1WLE5hPUIsTWE9dkUsWWE9UixIYT1nLHBhPWNnLEphPXNJLmYsTGE9V2cuZix2YT1jLmYsS2E9bGEudHJpbSxtYT0iTnVtYmVyIix4YT1SYVttYV0scWE9eGEucHJvdG90eXBlLGJhPU5hKHBhKHFhKSk9PW1hLFRhPWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRSxpLHQsZT1ZYShBLCExKTtpZigic3RyaW5nIj09dHlwZW9mIGUmJmUubGVuZ3RoPjIpaWYoNDM9PT0oZz0oZT1LYShlKSkuY2hhckNvZGVBdCgwKSl8fDQ1PT09Zyl7aWYoODg9PT0oST1lLmNoYXJDb2RlQXQoMikpfHwxMjA9PT1JKXJldHVybiBOYU59ZWxzZSBpZig0OD09PWcpe3N3aXRjaChlLmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpCPTIsUT00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOkI9OCxRPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK2V9Zm9yKEU9KEM9ZS5zbGljZSgyKSkubGVuZ3RoLGk9MDtpPEU7aSsrKWlmKCh0PUMuY2hhckNvZGVBdChpKSk8NDh8fHQ+USlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChDLEIpfXJldHVybitlfTtpZihVYShtYSwheGEoIiAwbzEiKXx8IXhhKCIwYjEiKXx8eGEoIisweDEiKSkpe2Zvcih2YXIgT2EsV2E9ZnVuY3Rpb24oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aDwxPzA6QSxJPXRoaXM7cmV0dXJuIEkgaW5zdGFuY2VvZiBXYSYmKGJhP0hhKChmdW5jdGlvbigpe3FhLnZhbHVlT2YuY2FsbChJKX0pKTpOYShJKSE9bWEpP01hKG5ldyB4YShUYShnKSksSSxXYSk6VGEoZyl9LFphPUdhP0phKHhhKToiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXIsZnJvbVN0cmluZyxyYW5nZSIuc3BsaXQoIiwiKSxqYT0wO1phLmxlbmd0aD5qYTtqYSsrKVNhKHhhLE9hPVphW2phXSkmJiFTYShXYSxPYSkmJnZhKFdhLE9hLExhKHhhLE9hKSk7V2EucHJvdG90eXBlPXFhLHFhLmNvbnN0cnVjdG9yPVdhLGthKFJhLG1hLFdhKX12YXIgUGE9e30sWGE9ZztmdW5jdGlvbiBWYShBLGcpe3JldHVybiBSZWdFeHAoQSxnKX1QYS5VTlNVUFBPUlRFRF9ZPVhhKChmdW5jdGlvbigpe3ZhciBBPVZhKCJhIiwieSIpO3JldHVybiBBLmxhc3RJbmRleD0yLG51bGwhPUEuZXhlYygiYWJjZCIpfSkpLFBhLkJST0tFTl9DQVJFVD1YYSgoZnVuY3Rpb24oKXt2YXIgQT1WYSgiXnIiLCJneSIpO3JldHVybiBBLmxhc3RJbmRleD0yLG51bGwhPUEuZXhlYygic3RyIil9KSk7dmFyIHphLF9hLCRhPVluLEFzPVBhLGdzPVcsSXM9UmVnRXhwLnByb3RvdHlwZS5leGVjLEJzPWdzKCJuYXRpdmUtc3RyaW5nLXJlcGxhY2UiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksUXM9SXMsQ3M9KHphPS9hLyxfYT0vYiovZyxJcy5jYWxsKHphLCJhIiksSXMuY2FsbChfYSwiYSIpLDAhPT16YS5sYXN0SW5kZXh8fDAhPT1fYS5sYXN0SW5kZXgpLEVzPUFzLlVOU1VQUE9SVEVEX1l8fEFzLkJST0tFTl9DQVJFVCxpcz12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07KENzfHxpc3x8RXMpJiYoUXM9ZnVuY3Rpb24oQSl7dmFyIGcsSSxCLFEsQz10aGlzLEU9RXMmJkMuc3RpY2t5LGk9JGEuY2FsbChDKSx0PUMuc291cmNlLGU9MCxvPUE7cmV0dXJuIEUmJigtMT09PShpPWkucmVwbGFjZSgieSIsIiIpKS5pbmRleE9mKCJnIikmJihpKz0iZyIpLG89U3RyaW5nKEEpLnNsaWNlKEMubGFzdEluZGV4KSxDLmxhc3RJbmRleD4wJiYoIUMubXVsdGlsaW5lfHxDLm11bHRpbGluZSYmIlxuIiE9PUFbQy5sYXN0SW5kZXgtMV0pJiYodD0iKD86ICIrdCsiKSIsbz0iICIrbyxlKyspLEk9bmV3IFJlZ0V4cCgiXig/OiIrdCsiKSIsaSkpLGlzJiYoST1uZXcgUmVnRXhwKCJeIit0KyIkKD8hXFxzKSIsaSkpLENzJiYoZz1DLmxhc3RJbmRleCksQj1Jcy5jYWxsKEU/STpDLG8pLEU/Qj8oQi5pbnB1dD1CLmlucHV0LnNsaWNlKGUpLEJbMF09QlswXS5zbGljZShlKSxCLmluZGV4PUMubGFzdEluZGV4LEMubGFzdEluZGV4Kz1CWzBdLmxlbmd0aCk6Qy5sYXN0SW5kZXg9MDpDcyYmQiYmKEMubGFzdEluZGV4PUMuZ2xvYmFsP0IuaW5kZXgrQlswXS5sZW5ndGg6ZyksaXMmJkImJkIubGVuZ3RoPjEmJkJzLmNhbGwoQlswXSxJLChmdW5jdGlvbigpe2ZvcihRPTE7UTxhcmd1bWVudHMubGVuZ3RoLTI7USsrKXZvaWQgMD09PWFyZ3VtZW50c1tRXSYmKEJbUV09dm9pZCAwKX0pKSxCfSk7dmFyIHRzPVFzO09JKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOi8uLy5leGVjIT09dHN9LHtleGVjOnRzfSk7dmFyIGVzPWFJLG9zPXRzLG5zPWcscnM9RkEsYXM9Sixzcz1ycygic3BlY2llcyIpLGNzPVJlZ0V4cC5wcm90b3R5cGUsaHM9IW5zKChmdW5jdGlvbigpe3ZhciBBPS8uLztyZXR1cm4gQS5leGVjPWZ1bmN0aW9uKCl7dmFyIEE9W107cmV0dXJuIEEuZ3JvdXBzPXthOiI3In0sQX0sIjciIT09IiIucmVwbGFjZShBLCIkPGE+Iil9KSkseXM9IiQwIj09PSJhIi5yZXBsYWNlKC8uLywiJDAiKSxEcz1ycygicmVwbGFjZSIpLGZzPSEhLy4vW0RzXSYmIiI9PT0vLi9bRHNdKCJhIiwiJDAiKSx1cz0hbnMoKGZ1bmN0aW9uKCl7dmFyIEE9Lyg/OikvLGc9QS5leGVjO0EuZXhlYz1mdW5jdGlvbigpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIEk9ImFiIi5zcGxpdChBKTtyZXR1cm4gMiE9PUkubGVuZ3RofHwiYSIhPT1JWzBdfHwiYiIhPT1JWzFdfSkpLHdzPVJBLGRzPWksRnM9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7dmFyIEIsUSxDPVN0cmluZyhkcyhnKSksRT13cyhJKSxpPUMubGVuZ3RoO3JldHVybiBFPDB8fEU+PWk/QT8iIjp2b2lkIDA6KEI9Qy5jaGFyQ29kZUF0KEUpKTw1NTI5Nnx8Qj41NjMxOXx8RSsxPT09aXx8KFE9Qy5jaGFyQ29kZUF0KEUrMSkpPDU2MzIwfHxRPjU3MzQzP0E/Qy5jaGFyQXQoRSk6QjpBP0Muc2xpY2UoRSxFKzIpOlEtNTYzMjArKEItNTUyOTY8PDEwKSs2NTUzNn19LGxzPXtjb2RlQXQ6RnMoITEpLGNoYXJBdDpGcyghMCl9LmNoYXJBdCxHcz1qLFJzPU1hdGguZmxvb3IsVXM9IiIucmVwbGFjZSxrcz0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxTcz0vXCQoWyQmJ2BdfFxkezEsMn0pL2csTnM9QixNcz10cyxZcz1mdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1ycyhBKSxDPSFucygoZnVuY3Rpb24oKXt2YXIgZz17fTtyZXR1cm4gZ1tRXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT0iIltBXShnKX0pKSxFPUMmJiFucygoZnVuY3Rpb24oKXt2YXIgZz0hMSxJPS9hLztyZXR1cm4ic3BsaXQiPT09QSYmKChJPXt9KS5jb25zdHJ1Y3Rvcj17fSxJLmNvbnN0cnVjdG9yW3NzXT1mdW5jdGlvbigpe3JldHVybiBJfSxJLmZsYWdzPSIiLElbUV09Ly4vW1FdKSxJLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZz0hMCxudWxsfSxJW1FdKCIiKSwhZ30pKTtpZighQ3x8IUV8fCJyZXBsYWNlIj09PUEmJighaHN8fCF5c3x8ZnMpfHwic3BsaXQiPT09QSYmIXVzKXt2YXIgaT0vLi9bUV0sdD1JKFEsIiJbQV0sKGZ1bmN0aW9uKEEsZyxJLEIsUSl7dmFyIEU9Zy5leGVjO3JldHVybiBFPT09b3N8fEU9PT1jcy5leGVjP0MmJiFRP3tkb25lOiEwLHZhbHVlOmkuY2FsbChnLEksQil9Ontkb25lOiEwLHZhbHVlOkEuY2FsbChJLGcsQil9Ontkb25lOiExfX0pLHtSRVBMQUNFX0tFRVBTXyQwOnlzLFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFOmZzfSksZT10WzBdLG89dFsxXTtlcyhTdHJpbmcucHJvdG90eXBlLEEsZSksZXMoY3MsUSwyPT1nP2Z1bmN0aW9uKEEsZyl7cmV0dXJuIG8uY2FsbChBLHRoaXMsZyl9OmZ1bmN0aW9uKEEpe3JldHVybiBvLmNhbGwoQSx0aGlzKX0pfUImJmFzKGNzW1FdLCJzaGFtIiwhMCl9LEhzPWwscHM9U0EsSnM9UkEsTHM9aSx2cz1mdW5jdGlvbihBLGcsSSl7cmV0dXJuIGcrKEk/bHMoQSxnKS5sZW5ndGg6MSl9LEtzPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1JK0EubGVuZ3RoLGk9Qi5sZW5ndGgsdD1TcztyZXR1cm4gdm9pZCAwIT09USYmKFE9R3MoUSksdD1rcyksVXMuY2FsbChDLHQsKGZ1bmN0aW9uKEMsdCl7dmFyIGU7c3dpdGNoKHQuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBBO2Nhc2UiYCI6cmV0dXJuIGcuc2xpY2UoMCxJKTtjYXNlIiciOnJldHVybiBnLnNsaWNlKEUpO2Nhc2UiPCI6ZT1RW3Quc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIG89K3Q7aWYoMD09PW8pcmV0dXJuIEM7aWYobz5pKXt2YXIgbj1ScyhvLzEwKTtyZXR1cm4gMD09PW4/QzpuPD1pP3ZvaWQgMD09PUJbbi0xXT90LmNoYXJBdCgxKTpCW24tMV0rdC5jaGFyQXQoMSk6Q31lPUJbby0xXX1yZXR1cm4gdm9pZCAwPT09ZT8iIjplfSkpfSxtcz1mdW5jdGlvbihBLGcpe3ZhciBJPUEuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgSSl7dmFyIEI9SS5jYWxsKEEsZyk7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIEJ9aWYoIlJlZ0V4cCIhPT1OcyhBKSl0aHJvdyBUeXBlRXJyb3IoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXIiKTtyZXR1cm4gTXMuY2FsbChBLGcpfSx4cz1NYXRoLm1heCxxcz1NYXRoLm1pbjtZcygicmVwbGFjZSIsMiwoZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9Qi5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSxDPUIuUkVQTEFDRV9LRUVQU18kMCxFPVE/IiQiOiIkMCI7cmV0dXJuW2Z1bmN0aW9uKEksQil7dmFyIFE9THModGhpcyksQz1udWxsPT1JP3ZvaWQgMDpJW0FdO3JldHVybiB2b2lkIDAhPT1DP0MuY2FsbChJLFEsQik6Zy5jYWxsKFN0cmluZyhRKSxJLEIpfSxmdW5jdGlvbihBLEIpe2lmKCFRJiZDfHwic3RyaW5nIj09dHlwZW9mIEImJi0xPT09Qi5pbmRleE9mKEUpKXt2YXIgaT1JKGcsQSx0aGlzLEIpO2lmKGkuZG9uZSlyZXR1cm4gaS52YWx1ZX12YXIgdD1IcyhBKSxlPVN0cmluZyh0aGlzKSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBCO298fChCPVN0cmluZyhCKSk7dmFyIG49dC5nbG9iYWw7aWYobil7dmFyIHI9dC51bmljb2RlO3QubGFzdEluZGV4PTB9Zm9yKHZhciBhPVtdOzspe3ZhciBzPW1zKHQsZSk7aWYobnVsbD09PXMpYnJlYWs7aWYoYS5wdXNoKHMpLCFuKWJyZWFrOyIiPT09U3RyaW5nKHNbMF0pJiYodC5sYXN0SW5kZXg9dnMoZSxwcyh0Lmxhc3RJbmRleCkscikpfWZvcih2YXIgYyxoPSIiLHk9MCxEPTA7RDxhLmxlbmd0aDtEKyspe3M9YVtEXTtmb3IodmFyIGY9U3RyaW5nKHNbMF0pLHU9eHMocXMoSnMocy5pbmRleCksZS5sZW5ndGgpLDApLHc9W10sZD0xO2Q8cy5sZW5ndGg7ZCsrKXcucHVzaCh2b2lkIDA9PT0oYz1zW2RdKT9jOlN0cmluZyhjKSk7dmFyIEY9cy5ncm91cHM7aWYobyl7dmFyIGw9W2ZdLmNvbmNhdCh3LHUsZSk7dm9pZCAwIT09RiYmbC5wdXNoKEYpO3ZhciBHPVN0cmluZyhCLmFwcGx5KHZvaWQgMCxsKSl9ZWxzZSBHPUtzKGYsZSx1LHcsRixCKTt1Pj15JiYoaCs9ZS5zbGljZSh5LHUpK0cseT11K2YubGVuZ3RoKX1yZXR1cm4gaCtlLnNsaWNlKHkpfV19KSk7dmFyIGJzLFRzPWgsT3M9QixXcz1GQSgibWF0Y2giKSxacz1mdW5jdGlvbihBKXt2YXIgZztyZXR1cm4gVHMoQSkmJih2b2lkIDAhPT0oZz1BW1dzXSk/ISFnOiJSZWdFeHAiPT1PcyhBKSl9LGpzPVpzLFBzPWZ1bmN0aW9uKEEpe2lmKGpzKEEpKXRocm93IFR5cGVFcnJvcigiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zIik7cmV0dXJuIEF9LFhzPUZBKCJtYXRjaCIpLFZzPWZ1bmN0aW9uKEEpe3ZhciBnPS8uLzt0cnl7Ii8uLyJbQV0oZyl9Y2F0Y2goSSl7dHJ5e3JldHVybiBnW1hzXT0hMSwiLy4vIltBXShnKX1jYXRjaChCKXt9fXJldHVybiExfSx6cz1PSSxfcz1XZy5mLCRzPVNBLEFjPVBzLGdjPWksSWM9VnMsQmM9IiIuc3RhcnRzV2l0aCxRYz1NYXRoLm1pbixDYz1JYygic3RhcnRzV2l0aCIpO3pzKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiEhKENjfHwoYnM9X3MoU3RyaW5nLnByb3RvdHlwZSwic3RhcnRzV2l0aCIpLCFic3x8YnMud3JpdGFibGUpKSYmIUNjfSx7c3RhcnRzV2l0aDpmdW5jdGlvbihBKXt2YXIgZz1TdHJpbmcoZ2ModGhpcykpO0FjKEEpO3ZhciBJPSRzKFFjKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGcubGVuZ3RoKSksQj1TdHJpbmcoQSk7cmV0dXJuIEJjP0JjLmNhbGwoZyxCLEkpOmcuc2xpY2UoSSxJK0IubGVuZ3RoKT09PUJ9fSk7dmFyIEVjLGljLHRjLGVjPXIuUHJvbWlzZSxvYz1sLG5jPWwscmM9RUUsYWM9U0Esc2M9ZUUsY2M9SUUsaGM9ZnVuY3Rpb24oQSl7dmFyIGc9QS5yZXR1cm47aWYodm9pZCAwIT09ZylyZXR1cm4gb2MoZy5jYWxsKEEpKS52YWx1ZX0seWM9ZnVuY3Rpb24oQSxnKXt0aGlzLnN0b3BwZWQ9QSx0aGlzLnJlc3VsdD1nfSxEYz0vKD86aXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChRQSksZmM9InByb2Nlc3MiPT1CKHIucHJvY2VzcyksdWM9cix3Yz1nLGRjPWVFLEZjPSRBLGxjPXUsR2M9RGMsUmM9ZmMsVWM9dWMubG9jYXRpb24sa2M9dWMuc2V0SW1tZWRpYXRlLFNjPXVjLmNsZWFySW1tZWRpYXRlLE5jPXVjLnByb2Nlc3MsTWM9dWMuTWVzc2FnZUNoYW5uZWwsWWM9dWMuRGlzcGF0Y2gsSGM9MCxwYz17fSxKYz0ib25yZWFkeXN0YXRlY2hhbmdlIixMYz1mdW5jdGlvbihBKXtpZihwYy5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIGc9cGNbQV07ZGVsZXRlIHBjW0FdLGcoKX19LHZjPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe0xjKEEpfX0sS2M9ZnVuY3Rpb24oQSl7TGMoQS5kYXRhKX0sbWM9ZnVuY3Rpb24oQSl7dWMucG9zdE1lc3NhZ2UoQSsiIixVYy5wcm90b2NvbCsiLy8iK1VjLmhvc3QpfTtrYyYmU2N8fChrYz1mdW5jdGlvbihBKXtmb3IodmFyIGc9W10sST0xO2FyZ3VtZW50cy5sZW5ndGg+STspZy5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gcGNbKytIY109ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIEE/QTpGdW5jdGlvbihBKSkuYXBwbHkodm9pZCAwLGcpfSxFYyhIYyksSGN9LFNjPWZ1bmN0aW9uKEEpe2RlbGV0ZSBwY1tBXX0sUmM/RWM9ZnVuY3Rpb24oQSl7TmMubmV4dFRpY2sodmMoQSkpfTpZYyYmWWMubm93P0VjPWZ1bmN0aW9uKEEpe1ljLm5vdyh2YyhBKSl9Ok1jJiYhR2M/KHRjPShpYz1uZXcgTWMpLnBvcnQyLGljLnBvcnQxLm9ubWVzc2FnZT1LYyxFYz1kYyh0Yy5wb3N0TWVzc2FnZSx0YywxKSk6dWMuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBvc3RNZXNzYWdlJiYhdWMuaW1wb3J0U2NyaXB0cyYmVWMmJiJmaWxlOiIhPT1VYy5wcm90b2NvbCYmIXdjKG1jKT8oRWM9bWMsdWMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsS2MsITEpKTpFYz1KYyBpbiBsYygic2NyaXB0Iik/ZnVuY3Rpb24oQSl7RmMuYXBwZW5kQ2hpbGQobGMoInNjcmlwdCIpKVtKY109ZnVuY3Rpb24oKXtGYy5yZW1vdmVDaGlsZCh0aGlzKSxMYyhBKX19OmZ1bmN0aW9uKEEpe3NldFRpbWVvdXQodmMoQSksMCl9KTt2YXIgeGMscWMsYmMsVGMsT2MsV2MsWmMsamMsUGM9e3NldDprYyxjbGVhcjpTY30sWGM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChRQSksVmM9cix6Yz1XZy5mLF9jPVBjLnNldCwkYz1EYyxBaD1YYyxnaD1mYyxJaD1WYy5NdXRhdGlvbk9ic2VydmVyfHxWYy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLEJoPVZjLmRvY3VtZW50LFFoPVZjLnByb2Nlc3MsQ2g9VmMuUHJvbWlzZSxFaD16YyhWYywicXVldWVNaWNyb3Rhc2siKSxpaD1FaCYmRWgudmFsdWU7aWh8fCh4Yz1mdW5jdGlvbigpe3ZhciBBLGc7Zm9yKGdoJiYoQT1RaC5kb21haW4pJiZBLmV4aXQoKTtxYzspe2c9cWMuZm4scWM9cWMubmV4dDt0cnl7ZygpfWNhdGNoKHREKXt0aHJvdyBxYz9UYygpOmJjPXZvaWQgMCx0RH19YmM9dm9pZCAwLEEmJkEuZW50ZXIoKX0sJGN8fGdofHxBaHx8IUlofHwhQmg/Q2gmJkNoLnJlc29sdmU/KChaYz1DaC5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPUNoLGpjPVpjLnRoZW4sVGM9ZnVuY3Rpb24oKXtqYy5jYWxsKFpjLHhjKX0pOlRjPWdoP2Z1bmN0aW9uKCl7UWgubmV4dFRpY2soeGMpfTpmdW5jdGlvbigpe19jLmNhbGwoVmMseGMpfTooT2M9ITAsV2M9QmguY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBJaCh4Yykub2JzZXJ2ZShXYyx7Y2hhcmFjdGVyRGF0YTohMH0pLFRjPWZ1bmN0aW9uKCl7V2MuZGF0YT1PYz0hT2N9KSk7dmFyIHRoPWlofHxmdW5jdGlvbihBKXt2YXIgZz17Zm46QSxuZXh0OnZvaWQgMH07YmMmJihiYy5uZXh0PWcpLHFjfHwocWM9ZyxUYygpKSxiYz1nfSxlaD17fSxvaD1pRSxuaD1mdW5jdGlvbihBKXt2YXIgZyxJO3RoaXMucHJvbWlzZT1uZXcgQSgoZnVuY3Rpb24oQSxCKXtpZih2b2lkIDAhPT1nfHx2b2lkIDAhPT1JKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtnPUEsST1CfSkpLHRoaXMucmVzb2x2ZT1vaChnKSx0aGlzLnJlamVjdD1vaChJKX07ZWguZj1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IG5oKEEpfTt2YXIgcmgsYWgsc2gsY2gsaGg9bCx5aD1oLERoPWVoLGZoPXIsdWg9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3csd2g9T0ksZGg9cixGaD1CQSxsaD1lYyxHaD1hSSxSaD1UUSxVaD1EQixraD10QixTaD1wRSxOaD1oLE1oPWlFLFloPU9RLEhoPVVnLHBoPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEMsRSxpLHQsZSxvPUkmJkkudGhhdCxuPSEoIUl8fCFJLkFTX0VOVFJJRVMpLHI9ISghSXx8IUkuSVNfSVRFUkFUT1IpLGE9ISghSXx8IUkuSU5URVJSVVBURUQpLHM9c2MoZyxvLDErbithKSxjPWZ1bmN0aW9uKEEpe3JldHVybiBCJiZoYyhCKSxuZXcgeWMoITAsQSl9LGg9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/KG5jKEEpLGE/cyhBWzBdLEFbMV0sYyk6cyhBWzBdLEFbMV0pKTphP3MoQSxjKTpzKEEpfTtpZihyKUI9QTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihRPWNjKEEpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihyYyhRKSl7Zm9yKEM9MCxFPWFjKEEubGVuZ3RoKTtFPkM7QysrKWlmKChpPWgoQVtDXSkpJiZpIGluc3RhbmNlb2YgeWMpcmV0dXJuIGk7cmV0dXJuIG5ldyB5YyghMSl9Qj1RLmNhbGwoQSl9Zm9yKHQ9Qi5uZXh0OyEoZT10LmNhbGwoQikpLmRvbmU7KXt0cnl7aT1oKGUudmFsdWUpfWNhdGNoKHREKXt0aHJvdyBoYyhCKSx0RH1pZigib2JqZWN0Ij09dHlwZW9mIGkmJmkmJmkgaW5zdGFuY2VvZiB5YylyZXR1cm4gaX1yZXR1cm4gbmV3IHljKCExKX0sSmg9UVEsTGg9Wmksdmg9UGMuc2V0LEtoPXRoLG1oPWZ1bmN0aW9uKEEsZyl7aWYoaGgoQSkseWgoZykmJmcuY29uc3RydWN0b3I9PT1BKXJldHVybiBnO3ZhciBJPURoLmYoQSk7cmV0dXJuKDAsSS5yZXNvbHZlKShnKSxJLnByb21pc2V9LHhoPWZ1bmN0aW9uKEEsZyl7dmFyIEk9ZmguY29uc29sZTtJJiZJLmVycm9yJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/SS5lcnJvcihBKTpJLmVycm9yKEEsZykpfSxxaD1laCxiaD1mdW5jdGlvbihBKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOkEoKX19Y2F0Y2godEQpe3JldHVybntlcnJvcjohMCx2YWx1ZTp0RH19fSxUaD1PZyxPaD1MSSxXaD11aCxaaD1mYyxqaD1vQSxQaD1GQSgic3BlY2llcyIpLFhoPSJQcm9taXNlIixWaD1UaC5nZXQsemg9VGguc2V0LF9oPVRoLmdldHRlckZvcihYaCksJGg9bGgmJmxoLnByb3RvdHlwZSxBeT1saCxneT0kaCxJeT1kaC5UeXBlRXJyb3IsQnk9ZGguZG9jdW1lbnQsUXk9ZGgucHJvY2VzcyxDeT1xaC5mLEV5PUN5LGl5PSEhKEJ5JiZCeS5jcmVhdGVFdmVudCYmZGguZGlzcGF0Y2hFdmVudCksdHk9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxleT0idW5oYW5kbGVkcmVqZWN0aW9uIixveT0hMSxueT1PaChYaCwoZnVuY3Rpb24oKXt2YXIgQT1IaChBeSkhPT1TdHJpbmcoQXkpO2lmKCFBJiY2Nj09PWpoKXJldHVybiEwO2lmKGpoPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KEF5KSlyZXR1cm4hMTt2YXIgZz1uZXcgQXkoKGZ1bmN0aW9uKEEpe0EoMSl9KSksST1mdW5jdGlvbihBKXtBKChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pKX07cmV0dXJuKGcuY29uc3RydWN0b3I9e30pW1BoXT1JLCEob3k9Zy50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgSSl8fCFBJiZXaCYmIXR5fSkpLHJ5PW55fHwhSmgoKGZ1bmN0aW9uKEEpe0F5LmFsbChBKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksYXk9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuISghTmgoQSl8fCJmdW5jdGlvbiIhPXR5cGVvZihnPUEudGhlbikpJiZnfSxzeT1mdW5jdGlvbihBLGcpe2lmKCFBLm5vdGlmaWVkKXtBLm5vdGlmaWVkPSEwO3ZhciBJPUEucmVhY3Rpb25zO0toKChmdW5jdGlvbigpe2Zvcih2YXIgQj1BLnZhbHVlLFE9MT09QS5zdGF0ZSxDPTA7SS5sZW5ndGg+Qzspe3ZhciBFLGksdCxlPUlbQysrXSxvPVE/ZS5vazplLmZhaWwsbj1lLnJlc29sdmUscj1lLnJlamVjdCxhPWUuZG9tYWluO3RyeXtvPyhRfHwoMj09PUEucmVqZWN0aW9uJiZEeShBKSxBLnJlamVjdGlvbj0xKSwhMD09PW8/RT1COihhJiZhLmVudGVyKCksRT1vKEIpLGEmJihhLmV4aXQoKSx0PSEwKSksRT09PWUucHJvbWlzZT9yKEl5KCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOihpPWF5KEUpKT9pLmNhbGwoRSxuLHIpOm4oRSkpOnIoQil9Y2F0Y2godEQpe2EmJiF0JiZhLmV4aXQoKSxyKHREKX19QS5yZWFjdGlvbnM9W10sQS5ub3RpZmllZD0hMSxnJiYhQS5yZWplY3Rpb24mJmh5KEEpfSkpfX0sY3k9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aXk/KChCPUJ5LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWcsQi5yZWFzb249SSxCLmluaXRFdmVudChBLCExLCEwKSxkaC5kaXNwYXRjaEV2ZW50KEIpKTpCPXtwcm9taXNlOmcscmVhc29uOkl9LCF0eSYmKFE9ZGhbIm9uIitBXSk/UShCKTpBPT09ZXkmJnhoKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLEkpfSxoeT1mdW5jdGlvbihBKXt2aC5jYWxsKGRoLChmdW5jdGlvbigpe3ZhciBnLEk9QS5mYWNhZGUsQj1BLnZhbHVlO2lmKHl5KEEpJiYoZz1iaCgoZnVuY3Rpb24oKXtaaD9ReS5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLEIsSSk6Y3koZXksSSxCKX0pKSxBLnJlamVjdGlvbj1aaHx8eXkoQSk/MjoxLGcuZXJyb3IpKXRocm93IGcudmFsdWV9KSl9LHl5PWZ1bmN0aW9uKEEpe3JldHVybiAxIT09QS5yZWplY3Rpb24mJiFBLnBhcmVudH0sRHk9ZnVuY3Rpb24oQSl7dmguY2FsbChkaCwoZnVuY3Rpb24oKXt2YXIgZz1BLmZhY2FkZTtaaD9ReS5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixnKTpjeSgicmVqZWN0aW9uaGFuZGxlZCIsZyxBLnZhbHVlKX0pKX0sZnk9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBmdW5jdGlvbihCKXtBKGcsQixJKX19LHV5PWZ1bmN0aW9uKEEsZyxJKXtBLmRvbmV8fChBLmRvbmU9ITAsSSYmKEE9SSksQS52YWx1ZT1nLEEuc3RhdGU9MixzeShBLCEwKSl9LHd5PWZ1bmN0aW9uKEEsZyxJKXtpZighQS5kb25lKXtBLmRvbmU9ITAsSSYmKEE9SSk7dHJ5e2lmKEEuZmFjYWRlPT09Zyl0aHJvdyBJeSgiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgQj1heShnKTtCP0toKChmdW5jdGlvbigpe3ZhciBJPXtkb25lOiExfTt0cnl7Qi5jYWxsKGcsZnkod3ksSSxBKSxmeSh1eSxJLEEpKX1jYXRjaCh0RCl7dXkoSSx0RCxBKX19KSk6KEEudmFsdWU9ZyxBLnN0YXRlPTEsc3koQSwhMSkpfWNhdGNoKHREKXt1eSh7ZG9uZTohMX0sdEQsQSl9fX07aWYobnkmJihneT0oQXk9ZnVuY3Rpb24oQSl7WWgodGhpcyxBeSxYaCksTWgoQSkscmguY2FsbCh0aGlzKTt2YXIgZz1WaCh0aGlzKTt0cnl7QShmeSh3eSxnKSxmeSh1eSxnKSl9Y2F0Y2godEQpe3V5KGcsdEQpfX0pLnByb3RvdHlwZSwocmg9ZnVuY3Rpb24oQSl7emgodGhpcyx7dHlwZTpYaCxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9UmgoZ3kse3RoZW46ZnVuY3Rpb24oQSxnKXt2YXIgST1faCh0aGlzKSxCPUN5KExoKHRoaXMsQXkpKTtyZXR1cm4gQi5vaz0iZnVuY3Rpb24iIT10eXBlb2YgQXx8QSxCLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcsQi5kb21haW49Wmg/UXkuZG9tYWluOnZvaWQgMCxJLnBhcmVudD0hMCxJLnJlYWN0aW9ucy5wdXNoKEIpLDAhPUkuc3RhdGUmJnN5KEksITEpLEIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsQSl9fSksYWg9ZnVuY3Rpb24oKXt2YXIgQT1uZXcgcmgsZz1WaChBKTt0aGlzLnByb21pc2U9QSx0aGlzLnJlc29sdmU9Znkod3ksZyksdGhpcy5yZWplY3Q9ZnkodXksZyl9LHFoLmY9Q3k9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT1BeXx8QT09PXNoP25ldyBhaChBKTpFeShBKX0sImZ1bmN0aW9uIj09dHlwZW9mIGxoJiYkaCE9PU9iamVjdC5wcm90b3R5cGUpKXtjaD0kaC50aGVuLG95fHwoR2goJGgsInRoZW4iLChmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXM7cmV0dXJuIG5ldyBBeSgoZnVuY3Rpb24oQSxnKXtjaC5jYWxsKEksQSxnKX0pKS50aGVuKEEsZyl9KSx7dW5zYWZlOiEwfSksR2goJGgsImNhdGNoIixneS5jYXRjaCx7dW5zYWZlOiEwfSkpO3RyeXtkZWxldGUgJGguY29uc3RydWN0b3J9Y2F0Y2godEQpe31VaCYmVWgoJGgsZ3kpfXdoKHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6bnl9LHtQcm9taXNlOkF5fSksa2goQXksWGgsITEpLFNoKFhoKSxzaD1GaChYaCksd2goe3RhcmdldDpYaCxzdGF0OiEwLGZvcmNlZDpueX0se3JlamVjdDpmdW5jdGlvbihBKXt2YXIgZz1DeSh0aGlzKTtyZXR1cm4gZy5yZWplY3QuY2FsbCh2b2lkIDAsQSksZy5wcm9taXNlfX0pLHdoKHt0YXJnZXQ6WGgsc3RhdDohMCxmb3JjZWQ6bnl9LHtyZXNvbHZlOmZ1bmN0aW9uKEEpe3JldHVybiBtaCh0aGlzLEEpfX0pLHdoKHt0YXJnZXQ6WGgsc3RhdDohMCxmb3JjZWQ6cnl9LHthbGw6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcyxJPUN5KGcpLEI9SS5yZXNvbHZlLFE9SS5yZWplY3QsQz1iaCgoZnVuY3Rpb24oKXt2YXIgST1NaChnLnJlc29sdmUpLEM9W10sRT0wLGk9MTtwaChBLChmdW5jdGlvbihBKXt2YXIgdD1FKyssZT0hMTtDLnB1c2godm9pZCAwKSxpKyssSS5jYWxsKGcsQSkudGhlbigoZnVuY3Rpb24oQSl7ZXx8KGU9ITAsQ1t0XT1BLC0taXx8QihDKSl9KSxRKX0pKSwtLWl8fEIoQyl9KSk7cmV0dXJuIEMuZXJyb3ImJlEoQy52YWx1ZSksSS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMsST1DeShnKSxCPUkucmVqZWN0LFE9YmgoKGZ1bmN0aW9uKCl7dmFyIFE9TWgoZy5yZXNvbHZlKTtwaChBLChmdW5jdGlvbihBKXtRLmNhbGwoZyxBKS50aGVuKEkucmVzb2x2ZSxCKX0pKX0pKTtyZXR1cm4gUS5lcnJvciYmQihRLnZhbHVlKSxJLnByb21pc2V9fSk7dmFyIGR5PXVnO09JKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2NvcHlXaXRoaW46TGl9KSxkeSgiY29weVdpdGhpbiIpO3ZhciBGeT1zLGx5PXIsR3k9TEksUnk9dkUsVXk9Yy5mLGt5PXNJLmYsU3k9WnMsTnk9WW4sTXk9UGEsWXk9YUksSHk9ZyxweT1PZy5lbmZvcmNlLEp5PXBFLEx5PUZBKCJtYXRjaCIpLHZ5PWx5LlJlZ0V4cCxLeT12eS5wcm90b3R5cGUsbXk9L2EvZyx4eT0vYS9nLHF5PW5ldyB2eShteSkhPT1teSxieT1NeS5VTlNVUFBPUlRFRF9ZO2lmKEZ5JiZHeSgiUmVnRXhwIiwhcXl8fGJ5fHxIeSgoZnVuY3Rpb24oKXtyZXR1cm4geHlbTHldPSExLHZ5KG15KSE9bXl8fHZ5KHh5KT09eHl8fCIvYS9pIiE9dnkobXksImkiKX0pKSkpe2Zvcih2YXIgVHk9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXRoaXMgaW5zdGFuY2VvZiBUeSxRPVN5KEEpLEM9dm9pZCAwPT09ZztpZighQiYmUSYmQS5jb25zdHJ1Y3Rvcj09PVR5JiZDKXJldHVybiBBO3F5P1EmJiFDJiYoQT1BLnNvdXJjZSk6QSBpbnN0YW5jZW9mIFR5JiYoQyYmKGc9TnkuY2FsbChBKSksQT1BLnNvdXJjZSksYnkmJihJPSEhZyYmZy5pbmRleE9mKCJ5Iik+LTEpJiYoZz1nLnJlcGxhY2UoL3kvZywiIikpO3ZhciBFPVJ5KHF5P25ldyB2eShBLGcpOnZ5KEEsZyksQj90aGlzOkt5LFR5KTtieSYmSSYmKHB5KEUpLnN0aWNreT0hMCk7cmV0dXJuIEV9LE95PWZ1bmN0aW9uKEEpe0EgaW4gVHl8fFV5KFR5LEEse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdnlbQV19LHNldDpmdW5jdGlvbihnKXt2eVtBXT1nfX0pfSxXeT1reSh2eSksWnk9MDtXeS5sZW5ndGg+Wnk7KU95KFd5W1p5KytdKTtLeS5jb25zdHJ1Y3Rvcj1UeSxUeS5wcm90b3R5cGU9S3ksWXkobHksIlJlZ0V4cCIsVHkpfUp5KCJSZWdFeHAiKTt2YXIgank9S0EuaW5jbHVkZXMsUHk9dWc7T0koe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuIGp5KHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksUHkoImluY2x1ZGVzIik7dmFyIFh5PVBzLFZ5PWk7T0koe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IVZzKCJpbmNsdWRlcyIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuISF+U3RyaW5nKFZ5KHRoaXMpKS5pbmRleE9mKFh5KEEpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgenk9QT0+ZnVuY3Rpb24oQSxnKXtpZihnLnN0YXJ0c1dpdGgoImRhdGE6Iikpe3ZhciBJLEI9Zy5yZXBsYWNlKC9eZGF0YTouKj9iYXNlNjQsLywiIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEJ1ZmZlciYmImZ1bmN0aW9uIj09dHlwZW9mIEJ1ZmZlci5mcm9tKUk9QnVmZmVyLmZyb20oQiwiYmFzZTY0Iik7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgYXRvYil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgYmFzZTY0LWVuY29kZWQgZGF0YSBVUkwsIEJ1ZmZlciBhbmQgYXRvYiBhcmUgbm90IHN1cHBvcnRlZCIpO3ZhciBRPWF0b2IoQik7ST1uZXcgVWludDhBcnJheShRLmxlbmd0aCk7Zm9yKHZhciBDPTA7QzxRLmxlbmd0aDtDKyspSVtDXT1RLmNoYXJDb2RlQXQoQyl9cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEksQSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5zdGFuY2V9KSl9dmFyIEU9dm9pZCAwLGk9dm9pZCAwO3JldHVybiBmZXRjaChnKS50aGVuKChmdW5jdGlvbihnKXtyZXR1cm4gaT0oRT1nKS5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIil8fCIiLCJpbnN0YW50aWF0ZVN0cmVhbWluZyJpbiBXZWJBc3NlbWJseSYmaS5zdGFydHNXaXRoKCJhcHBsaWNhdGlvbi93YXNtIik/V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoRSxBKTpFLmFycmF5QnVmZmVyKCl9KSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEEpOmd9KSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5zdGFuY2V9KSl9KEEsImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsQUdGemJRRUFBQUFCL0FJdVlBRi9BWDlnQVg4QVlBSi9md0YvWUFKL2Z3QmdBMzkvZndGL1lBWi9mMzkvZjM4QmYyQUZmMzkvZjM4QmYyQURmMzkvQUdBRWYzOS9md0JnQm45L2YzOS9md0JnQlg5L2YzOS9BR0FFZjM5L2Z3Ri9ZQWgvZjM5L2YzOS9md0YvWUFkL2YzOS9mMzkvQVg5Z0JYOStmbjUrQUdBQUFHQUhmMzkvZjM5L2Z3QmdCSDkvZjM4QmZtQUZmMzkvZjM0QmYyQUFBWDlnQkg5K2ZuOEFZQUovZmdCZ0JYOS9mbjkvQUdBS2YzOS9mMzkvZjM5L2Z3Ri9ZQXgvZjM5L2YzOS9mMzkvZjM4QmYyQUlmMzkvZjM5L2YzOEFZQTkvZjM5L2YzOS9mMzkvZjM5L2YzOEFZQXAvZjM5L2YzOS9mMzkvQUdBTGYzOS9mMzkvZjM5L2YzOEJmMkFHZjN4L2YzOS9BWDlnQjM5L2YzOS9mbjRCZjJBR2YzOS9mMzUrQVg5Z0JYOS9mMzk4QVg5Z0FuOThBR0FFZm41K2ZnRi9ZQUorZndGL1lBSitmZ0Y4WUFGL0FYeGdBMzUrZmdGL1lBTi9mMzhCZkdBRGYzOS9BWDFnQkg5L2YzNEJmbUFDZkg4QmZHQURmMzkrQUdBQ2ZuNEJmV0FDZjM4QmZnSXhDQUZoQVdFQUR3RmhBV0lBQmdGaEFXTUFBZ0ZoQVdRQUFnRmhBV1VBQUFGaEFXWUFCQUZoQVdjQUJ3RmhBV2dBQUFQTEJNa0VBZ0FBQWdNQUFRTUJBQUFBQXdNVER3NEFBQUVEQVFRQUFRQUFBUUFBQWdNQ0FnY09CZ2dLRkFNQ0FBTURBQUlEQUFNREFBNENCQVFBQXdRQUJBQUVBQUFBQXdNREF3UUFBQUVDRlFJSEJRTUdCZ3NDQUNFQ0FBd01CUWdDQUFBQUF3TURBd0FJQUFnQUJ3QUFBQU1DQWdNREFpSVVBQUFFQXdJQUFBTUFCd0lDQUFBWEFCY0FJd01BQUFNQUFRQUJCd0lIQ0FBREFnSUtBd0lCQkFNQUJ3SURBQUFEQXhBRUVBSU5BZzBMQWdzQUFBSVZBQUFFQ0FJQUNRY0lBZ2NEQ2dFQUJBWURBUUFBQXdRWUNnUVlDZ2dSQWdBRUpBNGxKZ0FCQVFBQUNnOEFBQWNCQXhVQkJBZ0NBZ29aQUFjSEdRQUJBd2NDQXdFQ0V3RUlCd29BQUFBQkFBWUhEQUFCQXdFQUFBTUJBUUVBQkJvYkdoc0FBZ0FBQWdNY0F3SUFBQWNESEFNREFnSURDUWNLQ1FrS0NRa0FFQVFRQXdJRkJ3UUFDQ2NvRVFzRkN4RUxBQUlIRVNrQUN3QUJBd0lDQWdjRUFBWXFBZ0FDQWdRckxDMElEZ0lPRkE0QUFRSUNBQUFBQndNREJ3TURBUUFBQWdNQ0FBQUNBUUFDQUFFQkFnUUFBQVFJRmdRQkFRQUFBUk1CQVFBSkNRa0tDZ29BQ0FnSUJBOEJBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQU1EQXdNREF3QUFBUUVHREF3R0RBd0FCZ0FHREF3QkJnWUVDd1FDQkFJQkJnUUxCQUlFQWdzTEN3UUJBUUVCQ1FrRkhnVWVEUTBORFEwTkRBVUZCUVVGQnd3RkJRVUZCUVlmSUJJR0VnY0dCZ1lmSUJJR0Vna0dCZ1VGQlFVRkJRVUZCUVVGQlFVRkFBVUZCUWtGQkFnR0JBZ0lCZ1FESFFRQkFRQUJBQWdCRmdJQ0FBQUJBUUFBQVFBQkFRQUVCQWNCY0FIQkFzRUNCUVlCQVRDQWdBSUdDQUYvQVVHZzF3RUxCMGdQQVdrQ0FBRnFBT2NCQVdzQUdRRnNBQkFCYlFEYUFnRnVBTFFFQVc4QXJnUUJjQUNaQkFGeEFKQUVBWElBckFFQmN3Q0RCQUYwQVFBQmRRQ1ZBd0YyQUpRREFYY0Frd01KeHdRQkFFRUJDOEFDelFTcUJNRUJ2QUdRQTZ3Qmp3T09BNDBEVDArTUE0c0RpZ09JQTlBRWlBUGxBWWNEendUT0JPUUIrUUxNQk1zRXVBSGpBY29FeUFUSkJNY0UwQUhCQk1JRXdBVEZCTVFFd3dSK2tRT0tBZUlCdndTK0JMMEV2QVRoQWJzRXVnUzVCTGdFdHdRUXlRSHZBKzBEd0FPK0E3d0R1Z080QTdZRHRBT3lBN0FEcmdPc0E2b0RxQU9tQTVNQzhBUHVBNDRDNFFQZ0E5OEQzZ1BkQTY4QzNBUGJBOW9EbUFMWUE5Y0QxZ1BWQTlRRFQ5TUQwZ09IQXNzRHlRUElBOGNEeFFQREE0WUN5Z1BHQkpJRHhnUEVBOElEWmlBZzdBUHJBK29ENlFQb0ErY0Q1Z1BsQTY4QzVBUGpBK0lESUkwQ2pRTE1BYjBCdlFIWkE3MEJJTkVEMEFQTUFVOVB6d09JQWlET0E4MER6QUZQVDh3RGlBSm1JTFlFdFFTekJHWWdzZ1N4QkxBRUlLOEVyUVNzQktzRXlBTElBcWtFcUFTbkJLWUVwUVFncEFTakJLSUVvUVMvQXI4Q29BU2ZCSjRFblFTY0JDQ2JCSm9FbUFTWEJKWUVsUVNVQkpNRUlKSUVrUVNQQkk0RWpRU01CSXNFaWdSbUlMa0NpUVNJQkljRWhnU0ZCSVFFd1FPOUE3a0RyUU9wQTdVRHNRTm1JTGtDZ2dTQkJJQUUvd1ArQS8wRHZ3TzdBN2NEcXdPbkE3TURyd1BLQVlJQy9BUEtBWUlDK3dNZ3F3R3JBV3RyYTYwQ1QycHFJS3NCcXdGcmEydXRBazlxYWlDcUFhb0JhNmtCcVFHc0FrOXFhaUNxQWFvQmE2a0JxUUdzQWs5cWFpRDZBL2tESVBnRDl3TWc5Z1AxQXlEMEEvTURJSmtDOGdPc0FTQ1pBdkVEckFGbXBRT2tBMllneVFISkFhTURtUU9jQTZJRElKb0RuUU9oQXlDYkE1NERvQU5tSUpnRGx3T2ZBNVlEQ3FUZkI4a0VCd0FnQUNBQmVBc1VBQ0FBRURVRVFDQUFLQUlFRHdzZ0FDMEFDd3NkQVFGL0lBQVFOUVJBSUFBb0FnQWhBU0FBRUgwYUlBRVFFQXNnQUFzSkFDQUFFQTBnQVdvTDBnRUJCSDhDUUNBQklBQVFDU0lEU3dSQUl3QkJFR3NpQWlRQUlBRWdBMnNpQXdSQUlBQVFFeUVFSUFBUUNTSUJJQU5xSVFVZ0F5QUVJQUZyU3dSQUlBQWdCQ0FGSUFScklBRWdBUkRJQVFzZ0FTQUFFQTBpQkdvZ0EwRUFFUGNCSUFBZ0JSQjRJQUpCQURvQUR5QUVJQVZxSUFKQkQyb1FOQXNNQVFzakFFRVFheUlDSkFBQ1FDQUFFRFVFUUNBQUtBSUFJUU1nQWtFQU9nQVBJQUVnQTJvZ0FrRVBhaEEwSUFBZ0FSQTVEQUVMSUFKQkFEb0FEaUFBSUFGcUlBSkJEbW9RTkNBQUlBRVFPZ3NMSUFKQkVHb2tBQXNSQUNBQUVEVUVRQ0FBS0FJQUR3c2dBQXNLQUNBQUtBSUFFS01CQ3d3QUlBQWdBVUVjYWhDUUFndk1EQUVIZndKQUlBQkZEUUFnQUVFSWF5SURJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBeUFES0FJQUlnRnJJZ05CNklFQktBSUFTUTBCSUFBZ0FXb2hBQ0FEUWV5QkFTZ0NBRWNFUUNBQlFmOEJUUVJBSUFNb0FnZ2lBaUFCUVFOMklnUkJBM1JCZ0lJQmFrWWFJQUlnQXlnQ0RDSUJSZ1JBUWRpQkFVSFlnUUVvQWdCQmZpQUVkM0UyQWdBTUF3c2dBaUFCTmdJTUlBRWdBallDQ0F3Q0N5QURLQUlZSVFZQ1FDQURJQU1vQWd3aUFVY0VRQ0FES0FJSUlnSWdBVFlDRENBQklBSTJBZ2dNQVFzQ1FDQURRUlJxSWdJb0FnQWlCQTBBSUFOQkVHb2lBaWdDQUNJRURRQkJBQ0VCREFFTEEwQWdBaUVISUFRaUFVRVVhaUlDS0FJQUlnUU5BQ0FCUVJCcUlRSWdBU2dDRUNJRURRQUxJQWRCQURZQ0FBc2dCa1VOQVFKQUlBTWdBeWdDSENJQ1FRSjBRWWlFQVdvaUJDZ0NBRVlFUUNBRUlBRTJBZ0FnQVEwQlFkeUJBVUhjZ1FFb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQmtFUVFSUWdCaWdDRUNBRFJodHFJQUUyQWdBZ0FVVU5BZ3NnQVNBR05nSVlJQU1vQWhBaUFnUkFJQUVnQWpZQ0VDQUNJQUUyQWhnTElBTW9BaFFpQWtVTkFTQUJJQUkyQWhRZ0FpQUJOZ0lZREFFTElBVW9BZ1FpQVVFRGNVRURSdzBBUWVDQkFTQUFOZ0lBSUFVZ0FVRitjVFlDQkNBRElBQkJBWEkyQWdRZ0FDQURhaUFBTmdJQUR3c2dBeUFGVHcwQUlBVW9BZ1FpQVVFQmNVVU5BQUpBSUFGQkFuRkZCRUFnQlVId2dRRW9BZ0JHQkVCQjhJRUJJQU0yQWdCQjVJRUJRZVNCQVNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQURRZXlCQVNnQ0FFY05BMEhnZ1FGQkFEWUNBRUhzZ1FGQkFEWUNBQThMSUFWQjdJRUJLQUlBUmdSQVFleUJBU0FETmdJQVFlQ0JBVUhnZ1FFb0FnQWdBR29pQURZQ0FDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFEd3NnQVVGNGNTQUFhaUVBQWtBZ0FVSC9BVTBFUUNBRktBSUlJZ0lnQVVFRGRpSUVRUU4wUVlDQ0FXcEdHaUFDSUFVb0Fnd2lBVVlFUUVIWWdRRkIySUVCS0FJQVFYNGdCSGR4TmdJQURBSUxJQUlnQVRZQ0RDQUJJQUkyQWdnTUFRc2dCU2dDR0NFR0FrQWdCU0FGS0FJTUlnRkhCRUFnQlNnQ0NDSUNRZWlCQVNnQ0FFa2FJQUlnQVRZQ0RDQUJJQUkyQWdnTUFRc0NRQ0FGUVJScUlnSW9BZ0FpQkEwQUlBVkJFR29pQWlnQ0FDSUVEUUJCQUNFQkRBRUxBMEFnQWlFSElBUWlBVUVVYWlJQ0tBSUFJZ1FOQUNBQlFSQnFJUUlnQVNnQ0VDSUVEUUFMSUFkQkFEWUNBQXNnQmtVTkFBSkFJQVVnQlNnQ0hDSUNRUUowUVlpRUFXb2lCQ2dDQUVZRVFDQUVJQUUyQWdBZ0FRMEJRZHlCQVVIY2dRRW9BZ0JCZmlBQ2QzRTJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUZSaHRxSUFFMkFnQWdBVVVOQVFzZ0FTQUdOZ0lZSUFVb0FoQWlBZ1JBSUFFZ0FqWUNFQ0FDSUFFMkFoZ0xJQVVvQWhRaUFrVU5BQ0FCSUFJMkFoUWdBaUFCTmdJWUN5QURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFJQU5CN0lFQktBSUFSdzBCUWVDQkFTQUFOZ0lBRHdzZ0JTQUJRWDV4TmdJRUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQUxJQUJCL3dGTkJFQWdBRUVEZGlJQlFRTjBRWUNDQVdvaEFBSi9RZGlCQVNnQ0FDSUNRUUVnQVhRaUFYRkZCRUJCMklFQklBRWdBbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUNJQUFnQXpZQ0NDQUNJQU0yQWd3Z0F5QUFOZ0lNSUFNZ0FqWUNDQThMUVI4aEFpQURRZ0EzQWhBZ0FFSC8vLzhIVFFSQUlBQkJDSFlpQVNBQlFZRCtQMnBCRUhaQkNIRWlBWFFpQWlBQ1FZRGdIMnBCRUhaQkJIRWlBblFpQkNBRVFZQ0FEMnBCRUhaQkFuRWlCSFJCRDNZZ0FTQUNjaUFFY21zaUFVRUJkQ0FBSUFGQkZXcDJRUUZ4Y2tFY2FpRUNDeUFESUFJMkFod2dBa0VDZEVHSWhBRnFJUUVDUUFKQUFrQkIzSUVCS0FJQUlnUkJBU0FDZENJSGNVVUVRRUhjZ1FFZ0JDQUhjallDQUNBQklBTTJBZ0FnQXlBQk5nSVlEQUVMSUFCQkFFRVpJQUpCQVhacklBSkJIMFliZENFQ0lBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFKQkhYWWhBU0FDUVFGMElRSWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBRE5nSVFJQU1nQkRZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUVLQUlJSWdBZ0F6WUNEQ0FFSUFNMkFnZ2dBMEVBTmdJWUlBTWdCRFlDRENBRElBQTJBZ2dMUWZpQkFVSDRnUUVvQWdCQkFXc2lBRUYvSUFBYk5nSUFDd3NrQVFGL0l3QkJFR3NpQVNRQUlBQkNBRGNDQUNBQVFRQTJBZ2dnQVVFUWFpUUFJQUFMaXdJQ0EzOENmZ0pBSUFBcEEzQWlCRkJGSUFRZ0FDa0RlQ0FBS0FJRUlnRWdBQ2dDTENJQ2E2eDhJZ1ZYY1VVRVFDTUFRUkJySWdJa0FFRi9JUUVDUUNBQUVPa0JEUUFnQUNBQ1FROXFRUUVnQUNnQ0lCRUVBRUVCUncwQUlBSXRBQThoQVFzZ0FrRVFhaVFBSUFFaUEwRUFUZzBCSUFBb0FnUWhBU0FBS0FJc0lRSUxJQUJDZnpjRGNDQUFJQUUyQW1nZ0FDQUZJQUlnQVd1c2ZEY0RlRUYvRHdzZ0JVSUJmQ0VGSUFBb0FnUWhBU0FBS0FJSUlRSUNRQ0FBS1FOd0lnUlFEUUFnQkNBRmZTSUVJQUlnQVd1c1dRMEFJQUVnQktkcUlRSUxJQUFnQWpZQ2FDQUFJQVVnQUNnQ0xDSUFJQUZyckh3M0EzZ2dBQ0FCVHdSQUlBRkJBV3NnQXpvQUFBc2dBd3NaQVFGL1FRb2hBU0FBRURVRWZ5QUFFSDFCQVdzRklBRUxDK01CQVFaL0lBRVEwd0loQXlNQVFSQnJJZ1VrQUFKQUlBTWdBQ0lFRU04QklnQk5CRUFnQkJBTklnWWhBaUFESWdBRWZ3SkFJQUVnQWtZTkFDQUNJQUZySUFCQkFuUlBCRUFnQUVVTkFRTkFJQUlnQVNnQ0FEWUNBQ0FDUVFScUlRSWdBVUVFYWlFQklBQkJBV3NpQUEwQUN3d0JDeUFBUlEwQUEwQWdBaUFBUVFGcklnQkJBblFpQjJvZ0FTQUhhaWdDQURZQ0FDQUFEUUFMQzBFQUJTQUNDeG9nQlVFQU5nSU1JQVlnQTBFQ2RHb2dCVUVNYWhBeklBUWdBeEI0REFFTElBUWdBQ0FESUFCcklBUVFDU0lBUVFBZ0FDQURJQUVROUFFTElBVkJFR29rQUF0ekFRTi9JQUVRa2dFaEFpTUFRUkJySWdRa0FBSkFJQUlnQUJBVElnTk5CRUFnQUJBTklRTWdBZ1JBSUFNZ0FTQUNFT29CQ3lBRVFRQTZBQThnQWlBRGFpQUVRUTlxRURRZ0FDQUNFSGdNQVFzZ0FDQURJQUlnQTJzZ0FCQUpJZ0JCQUNBQUlBSWdBUkQ0QVFzZ0JFRVFhaVFBQyswQ0FRUi9Ba0JCM0lnQkxRQUFRUUZ4RFFCQjNJZ0JFQ1JGRFFBakFFRWdheUlDSkFBQ1FBSkFBMEFnQWtFSWFpQUFRUUowYWdKL1FRRWdBSFJCLy8vLy93ZHhJZ05CQVhKRkJFQWdBRUVDZENnQ0FBd0JDeUFBUVpvZVFhUWZJQU1iRU9BQ0N5SUROZ0lBSUFOQmYwY0VRQ0FBUVFGcUlnQkJCa1lOQWd3QkN3c01BUXRCQUJEZkFrVUVRRUhJTFNFQklBSkJDR3BCeUMwUW53RkZEUUZCNEMwaEFTQUNRUWhxUWVBdEVKOEJSUTBCUVFBaEFFR3dod0V0QUFCRkJFQURRQ0FBUVFKMFFZQ0hBV29nQUVHa0h4RGdBallDQUNBQVFRRnFJZ0JCQmtjTkFBdEJzSWNCUVFFNkFBQkJtSWNCUVlDSEFTZ0NBRFlDQUF0QmdJY0JJUUVnQWtFSWFrR0Fod0VRbndGRkRRRkJtSWNCSVFFZ0FrRUlha0dZaHdFUW53RkZEUUZCR0JBWklnRkZEUUVMSUFFZ0Fpa0RDRGNDQUNBQklBSXBBeGczQWhBZ0FTQUNLUU1RTndJSUN5QUNRU0JxSkFCQjJJZ0JJQUUyQWdCQjNJZ0JFQ01MUWRpSUFTZ0NBQXNGQUJBQUFBdmZDZ0lGZnc5K0l3QkI0QUJySWdVa0FDQUVRdi8vLy8vLy96K0RJZzFDRDRZZ0EwSXhpSVFoRGlBQ0lBU0ZRb0NBZ0lDQWdJQ0FnSCtESVFvZ0FrTC8vLy8vLy84L2d5SUxRaUNJSVE4Z0RVSVJpQ0VRSUFSQ01JaW5RZi8vQVhFaEJ3SkFBa0FnQWtJd2lLZEIvLzhCY1NJSlFRRnJRZjMvQVUwRVFDQUhRUUZyUWY3L0FVa05BUXNnQVZBZ0FrTC8vLy8vLy8vLy8vOEFneUlNUW9DQWdJQ0FnTUQvL3dCVUlBeENnSUNBZ0lDQXdQLy9BRkViUlFSQUlBSkNnSUNBZ0lDQUlJUWhDZ3dDQ3lBRFVDQUVRdi8vLy8vLy8vLy8vd0NESWdKQ2dJQ0FnSUNBd1AvL0FGUWdBa0tBZ0lDQWdJREEvLzhBVVJ0RkJFQWdCRUtBZ0lDQWdJQWdoQ0VLSUFNaEFRd0NDeUFCSUF4Q2dJQ0FnSUNBd1AvL0FJV0VVQVJBSUFJZ0E0UlFCRUJDZ0lDQWdJQ0E0UC8vQUNFS1FnQWhBUXdEQ3lBS1FvQ0FnSUNBZ01ELy93Q0VJUXBDQUNFQkRBSUxJQU1nQWtLQWdJQ0FnSURBLy84QWhZUlFCRUFnQVNBTWhDRUNRZ0FoQVNBQ1VBUkFRb0NBZ0lDQWdPRC8vd0FoQ2d3REN5QUtRb0NBZ0lDQWdNRC8vd0NFSVFvTUFnc2dBU0FNaEZBRVFFSUFJUUVNQWdzZ0FpQURoRkFFUUVJQUlRRU1BZ3NnREVMLy8vLy8vLzgvV0FSQUlBVkIwQUJxSUFFZ0N5QUJJQXNnQzFBaUJodDVJQVpCQm5TdGZLY2lCa0VQYXhBdlFSQWdCbXNoQmlBRktRTllJZ3RDSUlnaER5QUZLUU5RSVFFTElBSkMvLy8vLy8vL1AxWU5BQ0FGUVVCcklBTWdEU0FESUEwZ0RWQWlDQnQ1SUFoQkJuU3RmS2NpQ0VFUGF4QXZJQVlnQ0d0QkVHb2hCaUFGS1FOSUlnSkNENFlnQlNrRFFDSURRakdJaENFT0lBSkNFWWdoRUFzZ0EwSVBoa0tBZ1A3L0Q0TWlBaUFCUWlDSUlnUitJaElnQTBJUmlFTC8vLy8vRDRNaURDQUJRdi8vLy84UGd5SUJmbndpRVVJZ2hpSU5JQUVnQW41OElnTWdEVlN0SUFJZ0MwTC8vLy8vRDRNaUMzNGlGU0FFSUF4K2ZDSVRJQTVDLy8vLy93K0RJZzBnQVg1OEloUWdFU0FTVksxQ0lJWWdFVUlnaUlSOEloRWdBaUFQUW9DQUJJUWlEbjRpRmlBTElBeCtmQ0lQSUFRZ0RYNThJaElnRUVMLy8vLy9CNE5DZ0lDQWdBaUVJZ0lnQVg1OEloQkNJSVo4SWhkOElRRWdCeUFKYWlBR2FrSC8vd0JySVFZQ1FDQUxJQTErSWhnZ0RDQU9mbndpRENBWVZLMGdEQ0FDSUFSK2ZDSUVJQXhVclh3Z0FpQU9mbndnQkNBRUlCTWdGVlN0SUJNZ0ZGYXRmSHdpQkZhdGZDQUNJQXQrSWdzZ0RTQU9mbndpQWlBTFZLMUNJSVlnQWtJZ2lJUjhJQVFnQWtJZ2hud2lBaUFFVksxOElBSWdBaUFRSUJKVXJTQVBJQlpVclNBUElCSldyWHg4UWlDR0lCQkNJSWlFZkNJQ1ZxMThJQUlnQWlBUklCUlVyU0FSSUJkV3JYeDhJZ0pXclh3aUJFS0FnSUNBZ0lEQUFJTlFSUVJBSUFaQkFXb2hCZ3dCQ3lBRFFqK0lJUXNnQkVJQmhpQUNRaitJaENFRUlBSkNBWVlnQVVJL2lJUWhBaUFEUWdHR0lRTWdDeUFCUWdHR2hDRUJDeUFHUWYvL0FVNEVRQ0FLUW9DQWdJQ0FnTUQvL3dDRUlRcENBQ0VCREFFTEFuNGdCa0VBVEFSQVFRRWdCbXNpQjBHQUFVOEVRRUlBSVFFTUF3c2dCVUV3YWlBRElBRWdCa0gvQUdvaUJoQXZJQVZCSUdvZ0FpQUVJQVlRTHlBRlFSQnFJQU1nQVNBSEVId2dCU0FDSUFRZ0J4QjhJQVVwQXpBZ0JTa0RPSVJDQUZLdElBVXBBeUFnQlNrREVJU0VJUU1nQlNrREtDQUZLUU1ZaENFQklBVXBBd0FoQWlBRktRTUlEQUVMSUFSQy8vLy8vLy8vUDRNZ0JxMUNNSWFFQ3lBS2hDRUtJQU5RSUFGQ0FGa2dBVUtBZ0lDQWdJQ0FnSUIvVVJ0RkJFQWdDaUFDUWdGOElnRWdBbFN0ZkNFS0RBRUxJQU1nQVVLQWdJQ0FnSUNBZ0lCL2hZUlFSUVJBSUFJaEFRd0JDeUFLSUFJZ0FrSUJnM3dpQVNBQ1ZLMThJUW9MSUFBZ0FUY0RBQ0FBSUFvM0F3Z2dCVUhnQUdva0FBdUFMZ0VMZnlNQVFSQnJJZ3NrQUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBRUgwQVUwRVFFSFlnUUVvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUIwRURkaUlDZGlJQlFRTnhCRUFnQVVGL2MwRUJjU0FDYWlJRFFRTjBJZ0ZCaUlJQmFpZ0NBQ0lFUVFocUlRQUNRQ0FFS0FJSUlnSWdBVUdBZ2dGcUlnRkdCRUJCMklFQklBWkJmaUFEZDNFMkFnQU1BUXNnQWlBQk5nSU1JQUVnQWpZQ0NBc2dCQ0FEUVFOMElnRkJBM0kyQWdRZ0FTQUVhaUlCSUFFb0FnUkJBWEkyQWdRTURBc2dCMEhnZ1FFb0FnQWlDazBOQVNBQkJFQUNRRUVDSUFKMElnQkJBQ0FBYTNJZ0FTQUNkSEVpQUVFQUlBQnJjVUVCYXlJQUlBQkJESFpCRUhFaUFuWWlBVUVGZGtFSWNTSUFJQUp5SUFFZ0FIWWlBVUVDZGtFRWNTSUFjaUFCSUFCMklnRkJBWFpCQW5FaUFISWdBU0FBZGlJQlFRRjJRUUZ4SWdCeUlBRWdBSFpxSWdOQkEzUWlBRUdJZ2dGcUtBSUFJZ1FvQWdnaUFTQUFRWUNDQVdvaUFFWUVRRUhZZ1FFZ0JrRitJQU4zY1NJR05nSUFEQUVMSUFFZ0FEWUNEQ0FBSUFFMkFnZ0xJQVJCQ0dvaEFDQUVJQWRCQTNJMkFnUWdCQ0FIYWlJQ0lBTkJBM1FpQVNBSGF5SURRUUZ5TmdJRUlBRWdCR29nQXpZQ0FDQUtCRUFnQ2tFRGRpSUJRUU4wUVlDQ0FXb2hCVUhzZ1FFb0FnQWhCQUovSUFaQkFTQUJkQ0lCY1VVRVFFSFlnUUVnQVNBR2NqWUNBQ0FGREFFTElBVW9BZ2dMSVFFZ0JTQUVOZ0lJSUFFZ0JEWUNEQ0FFSUFVMkFnd2dCQ0FCTmdJSUMwSHNnUUVnQWpZQ0FFSGdnUUVnQXpZQ0FBd01DMEhjZ1FFb0FnQWlDVVVOQVNBSlFRQWdDV3R4UVFGcklnQWdBRUVNZGtFUWNTSUNkaUlCUVFWMlFRaHhJZ0FnQW5JZ0FTQUFkaUlCUVFKMlFRUnhJZ0J5SUFFZ0FIWWlBVUVCZGtFQ2NTSUFjaUFCSUFCMklnRkJBWFpCQVhFaUFISWdBU0FBZG1wQkFuUkJpSVFCYWlnQ0FDSUJLQUlFUVhoeElBZHJJUU1nQVNFQ0EwQUNRQ0FDS0FJUUlnQkZCRUFnQWlnQ0ZDSUFSUTBCQ3lBQUtBSUVRWGh4SUFkcklnSWdBeUFDSUFOSklnSWJJUU1nQUNBQklBSWJJUUVnQUNFQ0RBRUxDeUFCS0FJWUlRZ2dBU0FCS0FJTUlnUkhCRUFnQVNnQ0NDSUFRZWlCQVNnQ0FFa2FJQUFnQkRZQ0RDQUVJQUEyQWdnTUN3c2dBVUVVYWlJQ0tBSUFJZ0JGQkVBZ0FTZ0NFQ0lBUlEwRElBRkJFR29oQWdzRFFDQUNJUVVnQUNJRVFSUnFJZ0lvQWdBaUFBMEFJQVJCRUdvaEFpQUVLQUlRSWdBTkFBc2dCVUVBTmdJQURBb0xRWDhoQnlBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFSFFkeUJBU2dDQUNJSlJRMEFRUUFnQjJzaEF3SkFBa0FDUUFKL1FRQWdCMEdBQWtrTkFCcEJIeUFIUWYvLy93ZExEUUFhSUFCQkNIWWlBQ0FBUVlEK1AycEJFSFpCQ0hFaUFuUWlBQ0FBUVlEZ0gycEJFSFpCQkhFaUFYUWlBQ0FBUVlDQUQycEJFSFpCQW5FaUFIUkJEM1lnQVNBQ2NpQUFjbXNpQUVFQmRDQUhJQUJCRldwMlFRRnhja0VjYWdzaUJrRUNkRUdJaEFGcUtBSUFJZ0pGQkVCQkFDRUFEQUVMUVFBaEFDQUhRUUJCR1NBR1FRRjJheUFHUVI5R0czUWhBUU5BQWtBZ0FpZ0NCRUY0Y1NBSGF5SUZJQU5QRFFBZ0FpRUVJQVVpQXcwQVFRQWhBeUFDSVFBTUF3c2dBQ0FDS0FJVUlnVWdCU0FDSUFGQkhYWkJCSEZxS0FJUUlnSkdHeUFBSUFVYklRQWdBVUVCZENFQklBSU5BQXNMSUFBZ0JISkZCRUJCQUNFRVFRSWdCblFpQUVFQUlBQnJjaUFKY1NJQVJRMERJQUJCQUNBQWEzRkJBV3NpQUNBQVFReDJRUkJ4SWdKMklnRkJCWFpCQ0hFaUFDQUNjaUFCSUFCMklnRkJBblpCQkhFaUFISWdBU0FBZGlJQlFRRjJRUUp4SWdCeUlBRWdBSFlpQVVFQmRrRUJjU0lBY2lBQklBQjJha0VDZEVHSWhBRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBSGF5SUJJQU5KSVFJZ0FTQURJQUliSVFNZ0FDQUVJQUliSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRZUNCQVNnQ0FDQUhhMDhOQUNBRUtBSVlJUVlnQkNBRUtBSU1JZ0ZIQkVBZ0JDZ0NDQ0lBUWVpQkFTZ0NBRWthSUFBZ0FUWUNEQ0FCSUFBMkFnZ01DUXNnQkVFVWFpSUNLQUlBSWdCRkJFQWdCQ2dDRUNJQVJRMERJQVJCRUdvaEFnc0RRQ0FDSVFVZ0FDSUJRUlJxSWdJb0FnQWlBQTBBSUFGQkVHb2hBaUFCS0FJUUlnQU5BQXNnQlVFQU5nSUFEQWdMSUFkQjRJRUJLQUlBSWdKTkJFQkI3SUVCS0FJQUlRTUNRQ0FDSUFkcklnRkJFRThFUUVIZ2dRRWdBVFlDQUVIc2dRRWdBeUFIYWlJQU5nSUFJQUFnQVVFQmNqWUNCQ0FDSUFOcUlBRTJBZ0FnQXlBSFFRTnlOZ0lFREFFTFFleUJBVUVBTmdJQVFlQ0JBVUVBTmdJQUlBTWdBa0VEY2pZQ0JDQUNJQU5xSWdBZ0FDZ0NCRUVCY2pZQ0JBc2dBMEVJYWlFQURBb0xJQWRCNUlFQktBSUFJZ2hKQkVCQjVJRUJJQWdnQjJzaUFUWUNBRUh3Z1FGQjhJRUJLQUlBSWdJZ0Iyb2lBRFlDQUNBQUlBRkJBWEkyQWdRZ0FpQUhRUU55TmdJRUlBSkJDR29oQUF3S0MwRUFJUUFnQjBFdmFpSUpBbjlCc0lVQktBSUFCRUJCdUlVQktBSUFEQUVMUWJ5RkFVSi9Od0lBUWJTRkFVS0FvSUNBZ0lBRU53SUFRYkNGQVNBTFFReHFRWEJ4UWRpcTFhb0ZjellDQUVIRWhRRkJBRFlDQUVHVWhRRkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ1Z4SWdJZ0IwME5DVUdRaFFFb0FnQWlCQVJBUVlpRkFTZ0NBQ0lESUFKcUlnRWdBMDBnQVNBRVMzSU5DZ3RCbElVQkxRQUFRUVJ4RFFRQ1FBSkFRZkNCQVNnQ0FDSURCRUJCbUlVQklRQURRQ0FESUFBb0FnQWlBVThFUUNBQklBQW9BZ1JxSUFOTERRTUxJQUFvQWdnaUFBMEFDd3RCQUJCeUlnRkJmMFlOQlNBQ0lRWkJ0SVVCS0FJQUlnTkJBV3NpQUNBQmNRUkFJQUlnQVdzZ0FDQUJha0VBSUFOcmNXb2hCZ3NnQmlBSFRTQUdRZjcvLy84SFMzSU5CVUdRaFFFb0FnQWlCQVJBUVlpRkFTZ0NBQ0lESUFacUlnQWdBMDBnQUNBRVMzSU5CZ3NnQmhCeUlnQWdBVWNOQVF3SEN5QUdJQWhySUFWeElnWkIvdi8vL3dkTERRUWdCaEJ5SWdFZ0FDZ0NBQ0FBS0FJRWFrWU5BeUFCSVFBTElBQkJmMFlnQjBFd2FpQUdUWEpGQkVCQnVJVUJLQUlBSWdFZ0NTQUdhMnBCQUNBQmEzRWlBVUgrLy8vL0Iwc0VRQ0FBSVFFTUJ3c2dBUkJ5UVg5SEJFQWdBU0FHYWlFR0lBQWhBUXdIQzBFQUlBWnJFSElhREFRTElBQWlBVUYvUncwRkRBTUxRUUFoQkF3SEMwRUFJUUVNQlFzZ0FVRi9SdzBDQzBHVWhRRkJsSVVCS0FJQVFRUnlOZ0lBQ3lBQ1FmNy8vLzhIU3cwQklBSVFjaUlCUVg5R1FRQVFjaUlBUVg5R2NpQUFJQUZOY2cwQklBQWdBV3NpQmlBSFFTaHFUUTBCQzBHSWhRRkJpSVVCS0FJQUlBWnFJZ0EyQWdCQmpJVUJLQUlBSUFCSkJFQkJqSVVCSUFBMkFnQUxBa0FDUUFKQVFmQ0JBU2dDQUNJRkJFQkJtSVVCSVFBRFFDQUJJQUFvQWdBaUF5QUFLQUlFSWdKcVJnMENJQUFvQWdnaUFBMEFDd3dDQzBIb2dRRW9BZ0FpQUVFQUlBQWdBVTBiUlFSQVFlaUJBU0FCTmdJQUMwRUFJUUJCbklVQklBWTJBZ0JCbUlVQklBRTJBZ0JCK0lFQlFYODJBZ0JCL0lFQlFiQ0ZBU2dDQURZQ0FFR2toUUZCQURZQ0FBTkFJQUJCQTNRaUEwR0lnZ0ZxSUFOQmdJSUJhaUlDTmdJQUlBTkJqSUlCYWlBQ05nSUFJQUJCQVdvaUFFRWdSdzBBQzBIa2dRRWdCa0VvYXlJRFFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUFheUlDTmdJQVFmQ0JBU0FBSUFGcUlnQTJBZ0FnQUNBQ1FRRnlOZ0lFSUFFZ0EycEJLRFlDQkVIMGdRRkJ3SVVCS0FJQU5nSUFEQUlMSUFBdEFBeEJDSEVnQXlBRlMzSWdBU0FGVFhJTkFDQUFJQUlnQm1vMkFnUkI4SUVCSUFWQmVDQUZhMEVIY1VFQUlBVkJDR3BCQjNFYklnQnFJZ0kyQWdCQjVJRUJRZVNCQVNnQ0FDQUdhaUlCSUFCcklnQTJBZ0FnQWlBQVFRRnlOZ0lFSUFFZ0JXcEJLRFlDQkVIMGdRRkJ3SVVCS0FJQU5nSUFEQUVMUWVpQkFTZ0NBQ0FCU3dSQVFlaUJBU0FCTmdJQUN5QUJJQVpxSVFKQm1JVUJJUUFDUUFKQUFrQUNRQUpBQWtBRFFDQUNJQUFvQWdCSEJFQWdBQ2dDQ0NJQURRRU1BZ3NMSUFBdEFBeEJDSEZGRFFFTFFaaUZBU0VBQTBBZ0JTQUFLQUlBSWdKUEJFQWdBaUFBS0FJRWFpSUVJQVZMRFFNTElBQW9BZ2doQUF3QUN3QUxJQUFnQVRZQ0FDQUFJQUFvQWdRZ0JtbzJBZ1FnQVVGNElBRnJRUWR4UVFBZ0FVRUlha0VIY1J0cUlna2dCMEVEY2pZQ0JDQUNRWGdnQW10QkIzRkJBQ0FDUVFocVFRZHhHMm9pQmlBSElBbHFJZ2hySVFJZ0JTQUdSZ1JBUWZDQkFTQUlOZ0lBUWVTQkFVSGtnUUVvQWdBZ0Ftb2lBRFlDQUNBSUlBQkJBWEkyQWdRTUF3c2dCa0hzZ1FFb0FnQkdCRUJCN0lFQklBZzJBZ0JCNElFQlFlQ0JBU2dDQUNBQ2FpSUFOZ0lBSUFnZ0FFRUJjallDQkNBQUlBaHFJQUEyQWdBTUF3c2dCaWdDQkNJQVFRTnhRUUZHQkVBZ0FFRjRjU0VGQWtBZ0FFSC9BVTBFUUNBR0tBSUlJZ01nQUVFRGRpSUFRUU4wUVlDQ0FXcEdHaUFESUFZb0Fnd2lBVVlFUUVIWWdRRkIySUVCS0FJQVFYNGdBSGR4TmdJQURBSUxJQU1nQVRZQ0RDQUJJQU0yQWdnTUFRc2dCaWdDR0NFSEFrQWdCaUFHS0FJTUlnRkhCRUFnQmlnQ0NDSUFJQUUyQWd3Z0FTQUFOZ0lJREFFTEFrQWdCa0VVYWlJQUtBSUFJZ01OQUNBR1FSQnFJZ0FvQWdBaUF3MEFRUUFoQVF3QkN3TkFJQUFoQkNBRElnRkJGR29pQUNnQ0FDSUREUUFnQVVFUWFpRUFJQUVvQWhBaUF3MEFDeUFFUVFBMkFnQUxJQWRGRFFBQ1FDQUdJQVlvQWh3aUEwRUNkRUdJaEFGcUlnQW9BZ0JHQkVBZ0FDQUJOZ0lBSUFFTkFVSGNnUUZCM0lFQktBSUFRWDRnQTNkeE5nSUFEQUlMSUFkQkVFRVVJQWNvQWhBZ0JrWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0J6WUNHQ0FHS0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QUdLQUlVSWdCRkRRQWdBU0FBTmdJVUlBQWdBVFlDR0FzZ0JTQUdhaUVHSUFJZ0JXb2hBZ3NnQmlBR0tBSUVRWDV4TmdJRUlBZ2dBa0VCY2pZQ0JDQUNJQWhxSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdCQkEzUkJnSUlCYWlFQ0FuOUIySUVCS0FJQUlnRkJBU0FBZENJQWNVVUVRRUhZZ1FFZ0FDQUJjallDQUNBQ0RBRUxJQUlvQWdnTElRQWdBaUFJTmdJSUlBQWdDRFlDRENBSUlBSTJBZ3dnQ0NBQU5nSUlEQU1MUVI4aEFDQUNRZi8vL3dkTkJFQWdBa0VJZGlJQUlBQkJnUDQvYWtFUWRrRUljU0lEZENJQUlBQkJnT0FmYWtFUWRrRUVjU0lCZENJQUlBQkJnSUFQYWtFUWRrRUNjU0lBZEVFUGRpQUJJQU55SUFCeWF5SUFRUUYwSUFJZ0FFRVZhblpCQVhGeVFSeHFJUUFMSUFnZ0FEWUNIQ0FJUWdBM0FoQWdBRUVDZEVHSWhBRnFJUVFDUUVIY2dRRW9BZ0FpQTBFQklBQjBJZ0Z4UlFSQVFkeUJBU0FCSUFOeU5nSUFJQVFnQ0RZQ0FDQUlJQVEyQWhnTUFRc2dBa0VBUVJrZ0FFRUJkbXNnQUVFZlJodDBJUUFnQkNnQ0FDRUJBMEFnQVNJREtBSUVRWGh4SUFKR0RRTWdBRUVkZGlFQklBQkJBWFFoQUNBRElBRkJCSEZxSWdRb0FoQWlBUTBBQ3lBRUlBZzJBaEFnQ0NBRE5nSVlDeUFJSUFnMkFnd2dDQ0FJTmdJSURBSUxRZVNCQVNBR1FTaHJJZ05CZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViSWdCcklnSTJBZ0JCOElFQklBQWdBV29pQURZQ0FDQUFJQUpCQVhJMkFnUWdBU0FEYWtFb05nSUVRZlNCQVVIQWhRRW9BZ0EyQWdBZ0JTQUVRU2NnQkd0QkIzRkJBQ0FFUVNkclFRZHhHMnBCTDJzaUFDQUFJQVZCRUdwSkd5SUNRUnMyQWdRZ0FrR2doUUVwQWdBM0FoQWdBa0dZaFFFcEFnQTNBZ2hCb0lVQklBSkJDR28yQWdCQm5JVUJJQVkyQWdCQm1JVUJJQUUyQWdCQnBJVUJRUUEyQWdBZ0FrRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2hBU0FBUVFScUlRQWdBU0FFU1EwQUN5QUNJQVZHRFFNZ0FpQUNLQUlFUVg1eE5nSUVJQVVnQWlBRmF5SUVRUUZ5TmdJRUlBSWdCRFlDQUNBRVFmOEJUUVJBSUFSQkEzWWlBRUVEZEVHQWdnRnFJUUlDZjBIWWdRRW9BZ0FpQVVFQklBQjBJZ0J4UlFSQVFkaUJBU0FBSUFGeU5nSUFJQUlNQVFzZ0FpZ0NDQXNoQUNBQ0lBVTJBZ2dnQUNBRk5nSU1JQVVnQWpZQ0RDQUZJQUEyQWdnTUJBdEJIeUVBSUFWQ0FEY0NFQ0FFUWYvLy93ZE5CRUFnQkVFSWRpSUFJQUJCZ1A0L2FrRVFka0VJY1NJQ2RDSUFJQUJCZ09BZmFrRVFka0VFY1NJQmRDSUFJQUJCZ0lBUGFrRVFka0VDY1NJQWRFRVBkaUFCSUFKeUlBQnlheUlBUVFGMElBUWdBRUVWYW5aQkFYRnlRUnhxSVFBTElBVWdBRFlDSENBQVFRSjBRWWlFQVdvaEF3SkFRZHlCQVNnQ0FDSUNRUUVnQUhRaUFYRkZCRUJCM0lFQklBRWdBbkkyQWdBZ0F5QUZOZ0lBSUFVZ0F6WUNHQXdCQ3lBRVFRQkJHU0FBUVFGMmF5QUFRUjlHRzNRaEFDQURLQUlBSVFFRFFDQUJJZ0lvQWdSQmVIRWdCRVlOQkNBQVFSMTJJUUVnQUVFQmRDRUFJQUlnQVVFRWNXb2lBeWdDRUNJQkRRQUxJQU1nQlRZQ0VDQUZJQUkyQWhnTElBVWdCVFlDRENBRklBVTJBZ2dNQXdzZ0F5Z0NDQ0lBSUFnMkFnd2dBeUFJTmdJSUlBaEJBRFlDR0NBSUlBTTJBZ3dnQ0NBQU5nSUlDeUFKUVFocUlRQU1CUXNnQWlnQ0NDSUFJQVUyQWd3Z0FpQUZOZ0lJSUFWQkFEWUNHQ0FGSUFJMkFnd2dCU0FBTmdJSUMwSGtnUUVvQWdBaUFDQUhUUTBBUWVTQkFTQUFJQWRySWdFMkFnQkI4SUVCUWZDQkFTZ0NBQ0lDSUFkcUlnQTJBZ0FnQUNBQlFRRnlOZ0lFSUFJZ0IwRURjallDQkNBQ1FRaHFJUUFNQXd0QjFJRUJRVEEyQWdCQkFDRUFEQUlMQWtBZ0JrVU5BQUpBSUFRb0Fod2lBa0VDZEVHSWhBRnFJZ0FvQWdBZ0JFWUVRQ0FBSUFFMkFnQWdBUTBCUWR5QkFTQUpRWDRnQW5keElnazJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUVSaHRxSUFFMkFnQWdBVVVOQVFzZ0FTQUdOZ0lZSUFRb0FoQWlBQVJBSUFFZ0FEWUNFQ0FBSUFFMkFoZ0xJQVFvQWhRaUFFVU5BQ0FCSUFBMkFoUWdBQ0FCTmdJWUN3SkFJQU5CRDAwRVFDQUVJQU1nQjJvaUFFRURjallDQkNBQUlBUnFJZ0FnQUNnQ0JFRUJjallDQkF3QkN5QUVJQWRCQTNJMkFnUWdCQ0FIYWlJRklBTkJBWEkyQWdRZ0F5QUZhaUFETmdJQUlBTkIvd0ZOQkVBZ0EwRURkaUlBUVFOMFFZQ0NBV29oQWdKL1FkaUJBU2dDQUNJQlFRRWdBSFFpQUhGRkJFQkIySUVCSUFBZ0FYSTJBZ0FnQWd3QkN5QUNLQUlJQ3lFQUlBSWdCVFlDQ0NBQUlBVTJBZ3dnQlNBQ05nSU1JQVVnQURZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBblFpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQUNjaUFBY21zaUFFRUJkQ0FESUFCQkZXcDJRUUZ4Y2tFY2FpRUFDeUFGSUFBMkFod2dCVUlBTndJUUlBQkJBblJCaUlRQmFpRUJBa0FDUUNBSlFRRWdBSFFpQW5GRkJFQkIzSUVCSUFJZ0NYSTJBZ0FnQVNBRk5nSUFEQUVMSUFOQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQndOQUlBY2lBU2dDQkVGNGNTQURSZzBDSUFCQkhYWWhBaUFBUVFGMElRQWdBU0FDUVFSeGFpSUNLQUlRSWdjTkFBc2dBaUFGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFoRkRRQUNRQ0FCS0FJY0lnSkJBblJCaUlRQmFpSUFLQUlBSUFGR0JFQWdBQ0FFTmdJQUlBUU5BVUhjZ1FFZ0NVRitJQUozY1RZQ0FBd0NDeUFJUVJCQkZDQUlLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFnMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUhhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0IwRURjallDQkNBQklBZHFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQ2dSQUlBcEJBM1lpQUVFRGRFR0FnZ0ZxSVFWQjdJRUJLQUlBSVFRQ2YwRUJJQUIwSWdBZ0JuRkZCRUJCMklFQklBQWdCbkkyQWdBZ0JRd0JDeUFGS0FJSUN5RUFJQVVnQkRZQ0NDQUFJQVEyQWd3Z0JDQUZOZ0lNSUFRZ0FEWUNDQXRCN0lFQklBSTJBZ0JCNElFQklBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMcHdFQkJIOGpBRUVnYXlJQkpBQWdBVUVBTmdJTUlBRkJOellDQ0NBQklBRXBBd2czQXdBZ0FVRVFhaUlESUFFcEFnQTNBZ1FnQXlBQU5nSUFJd0JCRUdzaUFpUUFJQUFvQWdCQmYwY0VRQ0FDUVFocUlnUWdBeEI2R2lBQ0lBUVFlaG9EUUNBQUtBSUFRUUZHRFFBTElBQW9BZ0JGQkVBZ0FFRUJOZ0lBSUFKQk9CRUJBQ0FBUVg4MkFnQUxDeUFDUVJCcUpBQWdBQ2dDQkNFQUlBRkJJR29rQUNBQVFRRnJDeHNBSUFCQkFEWUNCQ0FBUWRqOEFEWUNBQ0FBUVpqV0FEWUNBQXVZQmdFSmZ5TUFRUkJySWdna0FDQUFFTTRCSXdCQkVHc2lBaVFBSUFJZ0FEWUNEQ0FJUVFocUlnVWdBa0VNYWhBeklBSkJFR29rQUVHd2xRRVFVQ0FCVFFSQUFrQkJzSlVCRUZBaUFpQUJRUUZxSWdCSkJFQWpBRUVnYXlJSkpBQUNRQ0FBSUFKcklnWkJzSlVCRUVNb0FnQkJ0SlVCS0FJQWEwRUNkVTBFUUNBR0VKY0NEQUVMUWJDVkFSQjBJUWNnQ1VFSWFpRUNBbjlCc0pVQkVGQWdCbW9oQkNNQVFSQnJJZ0FrQUNBQUlBUTJBZ3dnQkJDQkFpSURUUVJBUWJDVkFSQnpJZ1FnQTBFQmRra0VRQ0FBSUFSQkFYUTJBZ2dnQUVFSWFpQUFRUXhxRUhZb0FnQWhBd3NnQUVFUWFpUUFJQU1NQVFzUUZ3QUxJUUJCc0pVQkVGQWhDa0VBSVFNakFFRVFheUlFSkFBZ0JFRUFOZ0lNSUFKQkRHb2dCRUVNYWlBSEVJUUNJQUFFUUNBQ0tBSVFJQUFRZ0FJaEF3c2dBaUFETmdJQUlBSWdBeUFLUVFKMGFpSUhOZ0lJSUFJZ0J6WUNCQ0FDRUlNQklBTWdBRUVDZEdvMkFnQWdCRUVRYWlRQUl3QkJFR3NpQUNRQUlBQWdBaWdDQ0RZQ0FDQUNLQUlJSVFNZ0FDQUNRUWhxTmdJSUlBQWdBeUFHUVFKMGFqWUNCQ0FBS0FJQUlRTURRQ0FBS0FJRUlBTkhCRUFnQWlnQ0VDQUFLQUlBRVA0QklBQWdBQ2dDQUVFRWFpSUROZ0lBREFFTEN5QUFLQUlJSUFBb0FnQTJBZ0FnQUVFUWFpUUFRYkNWQVJDUkFrR3dsUUVRZEVHd2xRRW9BZ0JCdEpVQktBSUFJQUpCQkdvaUFCQ0RBa0d3bFFFZ0FCQjFRYlNWQVNBQ1FRaHFFSFZCc0pVQkVFTWdBaENEQVJCMUlBSWdBaWdDQkRZQ0FFR3dsUUVRVUJEL0FTQUNLQUlFSVFBRFFDQUFJQUlvQWdoSEJFQWdBaWdDRUJvZ0FpQUNLQUlJUVFSck5nSUlEQUVMQ3lBQ0tBSUFCRUFnQWlnQ0VDQUNLQUlBSUFJUWd3RW9BZ0FnQWlnQ0FHdEJBblVRL0FFTEN5QUpRU0JxSkFBTUFRc2dBQ0FDU1FSQVFiQ1ZBU2dDQUNBQVFRSjBhaUVBUWJDVkFSQlFJUUpCc0pVQklBQVErd0ZCc0pVQklBSVFsQUlMQ3d0QnNKVUJJQUVRZHlnQ0FBUkFRYkNWQVNBQkVIY29BZ0FRb3dFTElBVVFwZ0VoQUVHd2xRRWdBUkIzSUFBMkFnQWdCU2dDQUNFQUlBVkJBRFlDQUNBQUJFQWdBQkNqQVFzZ0NFRVFhaVFBQ3dnQUlBQkJBQkFuQ3k4QkFYOGpBRUVRYXlJREpBQWdBeUFCTmdJTUlBQWdBMEVNYWhBeklBQkJCR29nQWhBeklBTkJFR29rQUNBQUN4QUFJQUFvQWdBUWdBTkJHSFJCR0hVTEJnQWdBQkFRQ3dvQUlBQW9BZ0FRK3dJTERRQWdBQ2dDQUJEL0Fob2dBQXRMQVFKL0l3QkJFR3NpQVNRQUlBRWdBQkR5QVNFQUl3QkJFR3NpQWlRQUlBSkJDR29nQUNnQ0JCQjZLQUlBUVFFNkFBQWdBQ2dDQ0VFQk9nQUFJQUpCRUdva0FDQUJRUkJxSkFBTGR3RURmeU1BUVJCcklnSWtBQ0FDSUFBUThnRWhBQ01BUVJCcklnTWtBQ0FEUVFocUlBQW9BZ1FRZWlnQ0FDMEFBRVVFUUFKL0FrQWdBQ2dDQ0NJQUxRQUFJZ0ZCQVVjRWZ5QUJRUUp4RFFFZ0FFRUNPZ0FBUVFFRlFRQUxEQUVMRUJjQUN5RUJDeUFEUVJCcUpBQWdBa0VRYWlRQUlBRUxEUUFnQUNnQ0FCRDZBaG9nQUFzSkFDQUFJQUVRZ1FNTEpBRUJmeUFBS0FJQUlRSWdBQ0FCTmdJQUlBSUVRQ0FDSUFBUWxnRW9BZ0FSQVFBTEN3a0FJQUFnQVJEOEFnc1JBQ0FBSUFFZ0FDZ0NBQ2dDSEJFQ0FBdS9BUUVEZnlBQUxRQUFRU0J4UlFSQUFrQWdBU0VEQWtBZ0FpQUFJZ0VvQWhBaUFBUi9JQUFGSUFFUTZBRU5BU0FCS0FJUUN5QUJLQUlVSWdWclN3UkFJQUVnQXlBQ0lBRW9BaVFSQkFBYURBSUxBa0FnQVNnQ1VFRUFTQTBBSUFJaEFBTkFJQUFpQkVVTkFTQURJQVJCQVdzaUFHb3RBQUJCQ2tjTkFBc2dBU0FESUFRZ0FTZ0NKQkVFQUNBRVNRMEJJQU1nQkdvaEF5QUNJQVJySVFJZ0FTZ0NGQ0VGQ3lBRklBTWdBaEJDR2lBQklBRW9BaFFnQW1vMkFoUUxDd3NMZFFFQmZpQUFJQUVnQkg0Z0FpQURmbndnQTBJZ2lDSUNJQUZDSUlnaUJINThJQU5DLy8vLy93K0RJZ01nQVVMLy8vLy9ENE1pQVg0aUJVSWdpQ0FESUFSK2ZDSURRaUNJZkNBQklBSitJQU5DLy8vLy93K0RmQ0lCUWlDSWZEY0RDQ0FBSUFWQy8vLy8vdytESUFGQ0lJYUVOd01BQzBNQkFYOGpBRUVRYXlJRkpBQWdCU0FDTmdJTUlBVWdCRFlDQ0NBRklBVkJER29RVWlFQ0lBQWdBU0FESUFVb0FnZ1F0UUVoQUNBQ0VGRWdCVUVRYWlRQUlBQUxvUUVCQW44Q1FDQUFFQWxGSUFJZ0FXdEJCVWh5RFFBZ0FTQUNFSzBCSUFKQkJHc2hCQ0FBRUEwaUFpQUFFQWxxSVFVQ1FBTkFBa0FnQWl3QUFDRUFJQUVnQkU4TkFDQUFRUUJNSUFCQi93Qk9ja1VFUUNBQktBSUFJQUlzQUFCSERRTUxJQUZCQkdvaEFTQUNJQVVnQW10QkFVcHFJUUlNQVFzTElBQkJBRXdnQUVIL0FFNXlEUUVnQWl3QUFDQUVLQUlBUVFGclN3MEJDeUFEUVFRMkFnQUxDMjBCQVg4akFFR0FBbXNpQlNRQUlBUkJnTUFFY1NBQ0lBTk1ja1VFUUNBRklBRkIvd0Z4SUFJZ0Eyc2lBa0dBQWlBQ1FZQUNTU0lCR3hCR0dpQUJSUVJBQTBBZ0FDQUZRWUFDRUNvZ0FrR0FBbXNpQWtIL0FVc05BQXNMSUFBZ0JTQUNFQ29MSUFWQmdBSnFKQUFMVUFFQmZnSkFJQU5Cd0FCeEJFQWdBU0FEUVVCcXJZWWhBa0lBSVFFTUFRc2dBMFVOQUNBQ0lBT3RJZ1NHSUFGQndBQWdBMnV0aUlRaEFpQUJJQVNHSVFFTElBQWdBVGNEQUNBQUlBSTNBd2dMVlFFQ2Z5TUFRUkJySWdJa0FDQUFFRFVFUUNBQUtBSUFJUU1nQUJCOUdpQURFQkFMSUFBZ0FTZ0NDRFlDQ0NBQUlBRXBBZ0EzQWdBZ0FVRUFFRG9nQWtFQU9nQVBJQUVnQWtFUGFoQTBJQUpCRUdva0FBc01BQ0FBSUFFUWdRTkJBWE1MQ2dBZ0FFR0VpUUVRWkFzTUFDQUFJQUVvQWdBMkFnQUxEQUFnQUNBQkxRQUFPZ0FBQ3dvQUlBQXRBQXRCQjNZTERBQWdBQ0FCRVB3Q1FRRnpDeEVBSUFBZ0FTQUJLQUlBS0FJVUVRTUFDdzhBSUFBZ0FDZ0NBQ2dDRUJFQUFBc0pBQ0FBSUFFMkFnUUxDUUFnQUNBQk9nQUxDd29BSUFCQi9JZ0JFR1FMMFFrQ0JIOEVmaU1BUWZBQWF5SUZKQUFnQkVMLy8vLy8vLy8vLy84QWd5RUtBa0FDUUNBQlFnRjlJZ3RDZjFFZ0FrTC8vLy8vLy8vLy8vOEFneUlKSUFFZ0MxYXRmRUlCZlNJTFF2Ly8vLy8vLzcvLy93QldJQXRDLy8vLy8vLy92Ly8vQUZFYlJRUkFJQU5DQVgwaUMwSi9VaUFLSUFNZ0MxYXRmRUlCZlNJTFF2Ly8vLy8vLzcvLy93QlVJQXRDLy8vLy8vLy92Ly8vQUZFYkRRRUxJQUZRSUFsQ2dJQ0FnSUNBd1AvL0FGUWdDVUtBZ0lDQWdJREEvLzhBVVJ0RkJFQWdBa0tBZ0lDQWdJQWdoQ0VFSUFFaEF3d0NDeUFEVUNBS1FvQ0FnSUNBZ01ELy93QlVJQXBDZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQVJDZ0lDQWdJQ0FJSVFoQkF3Q0N5QUJJQWxDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRb0NBZ0lDQWdPRC8vd0FnQWlBQklBT0ZJQUlnQklWQ2dJQ0FnSUNBZ0lDQWY0V0VVQ0lHR3lFRVFnQWdBU0FHR3lFRERBSUxJQU1nQ2tLQWdJQ0FnSURBLy84QWhZUlFEUUVnQVNBSmhGQUVRQ0FESUFxRVFnQlNEUUlnQVNBRGd5RURJQUlnQklNaEJBd0NDeUFESUFxRVVFVU5BQ0FCSVFNZ0FpRUVEQUVMSUFNZ0FTQUJJQU5VSUFrZ0NsUWdDU0FLVVJzaUJ4c2hDaUFFSUFJZ0J4c2lDMEwvLy8vLy8vOC9neUVKSUFJZ0JDQUhHeUlDUWpDSXAwSC8vd0Z4SVFnZ0MwSXdpS2RCLy84QmNTSUdSUVJBSUFWQjRBQnFJQW9nQ1NBS0lBa2dDVkFpQmh0NUlBWkJCblN0ZktjaUJrRVBheEF2SUFVcEEyZ2hDU0FGS1FOZ0lRcEJFQ0FHYXlFR0N5QUJJQU1nQnhzaEF5QUNRdi8vLy8vLy96K0RJUVFnQ0VVRVFDQUZRZEFBYWlBRElBUWdBeUFFSUFSUUlnY2JlU0FIUVFaMHJYeW5JZ2RCRDJzUUwwRVFJQWRySVFnZ0JTa0RXQ0VFSUFVcEExQWhBd3NnQkVJRGhpQURRajJJaEVLQWdJQ0FnSUNBQklRaEJDQUpRZ09HSUFwQ1BZaUVJUWtnQWlBTGhTRU1BbjRnQTBJRGhpSUJJQVlnQ0dzaUIwVU5BQm9nQjBIL0FFc0VRRUlBSVFSQ0FRd0JDeUFGUVVCcklBRWdCRUdBQVNBSGF4QXZJQVZCTUdvZ0FTQUVJQWNRZkNBRktRTTRJUVFnQlNrRE1DQUZLUU5BSUFVcEEwaUVRZ0JTcllRTElRSWdDVUtBZ0lDQWdJQ0FCSVFoQ1NBS1FnT0dJUU1DUUNBTVFnQlRCRUFnQXlBQ2ZTSUJJQWtnQkgwZ0FpQURWcTE5SWdTRVVBUkFRZ0FoQTBJQUlRUU1Bd3NnQkVMLy8vLy8vLy8vQTFZTkFTQUZRU0JxSUFFZ0JDQUJJQVFnQkZBaUJ4dDVJQWRCQm5TdGZLZEJER3NpQnhBdklBWWdCMnNoQmlBRktRTW9JUVFnQlNrRElDRUJEQUVMSUFJZ0Ezd2lBU0FDVkswZ0JDQUpmSHdpQkVLQWdJQ0FnSUNBQ0lOUURRQWdBVUlCZ3lBRVFqK0dJQUZDQVlpRWhDRUJJQVpCQVdvaEJpQUVRZ0dJSVFRTElBdENnSUNBZ0lDQWdJQ0FmNE1oQWlBR1FmLy9BVTRFUUNBQ1FvQ0FnSUNBZ01ELy93Q0VJUVJDQUNFRERBRUxRUUFoQndKQUlBWkJBRW9FUUNBR0lRY01BUXNnQlVFUWFpQUJJQVFnQmtIL0FHb1FMeUFGSUFFZ0JFRUJJQVpyRUh3Z0JTa0RBQ0FGS1FNUUlBVXBBeGlFUWdCU3JZUWhBU0FGS1FNSUlRUUxJQUduUVFkeElnWkJCRXV0SUFSQ1BZWWdBVUlEaUlRaUFYd2lBeUFCVkswZ0JFSURpRUwvLy8vLy8vOC9neUFIclVJd2hvUWdBb1I4SVFRQ1FDQUdRUVJHQkVBZ0JDQURRZ0dESWdFZ0Ezd2lBeUFCVksxOElRUU1BUXNnQmtVTkFRc0xJQUFnQXpjREFDQUFJQVEzQXdnZ0JVSHdBR29rQUFzUkFDQUFJQUVnQUNnQ0FDZ0NMQkVDQUFzdEFDQUNSUVJBSUFBb0FnUWdBU2dDQkVZUEN5QUFJQUZHQkVCQkFROExJQUFvQWdRZ0FTZ0NCQkMyQVVVTFl3QWdBaWdDQkVHd0FYRWlBa0VnUmdSQUlBRVBDd0pBSUFKQkVFY05BQUpBQWtBZ0FDMEFBQ0lDUVN0ckRnTUFBUUFCQ3lBQVFRRnFEd3NnQWtFd1J5QUJJQUJyUVFKSWNnMEFJQUF0QUFGQklISkIrQUJIRFFBZ0FFRUNhaUVBQ3lBQUN5WUJBWDhqQUVFUWF5SUJKQUFnQVVFSWFpQUFFQTBRZWlnQ0FDRUFJQUZCRUdva0FDQUFDMzRDQW44QmZpTUFRUkJySWdNa0FDQUFBbjRnQVVVRVFFSUFEQUVMSUFNZ0FTQUJRUjkxSWdKcUlBSnpJZ0t0UWdBZ0FtY2lBa0hSQUdvUUx5QURLUU1JUW9DQWdJQ0FnTUFBaFVHZWdBRWdBbXV0UWpDR2ZDQUJRWUNBZ0lCNGNhMUNJSWFFSVFRZ0F5a0RBQXMzQXdBZ0FDQUVOd01JSUFOQkVHb2tBQXVEQkFFRGZ5QUNRWUFFVHdSQUlBQWdBU0FDRUFVYUlBQVBDeUFBSUFKcUlRTUNRQ0FBSUFGelFRTnhSUVJBQWtBZ0FFRURjVVVFUUNBQUlRSU1BUXNnQWtFQVRBUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2lBa0VEY1VVTkFTQUNJQU5KRFFBTEN3SkFJQU5CZkhFaUJFSEFBRWtOQUNBQ0lBUkJRR29pQlVzTkFBTkFJQUlnQVNnQ0FEWUNBQ0FDSUFFb0FnUTJBZ1FnQWlBQktBSUlOZ0lJSUFJZ0FTZ0NERFlDRENBQ0lBRW9BaEEyQWhBZ0FpQUJLQUlVTmdJVUlBSWdBU2dDR0RZQ0dDQUNJQUVvQWh3MkFod2dBaUFCS0FJZ05nSWdJQUlnQVNnQ0pEWUNKQ0FDSUFFb0FpZzJBaWdnQWlBQktBSXNOZ0lzSUFJZ0FTZ0NNRFlDTUNBQ0lBRW9BalEyQWpRZ0FpQUJLQUk0TmdJNElBSWdBU2dDUERZQ1BDQUJRVUJySVFFZ0FrRkFheUlDSUFWTkRRQUxDeUFDSUFSUERRRURRQ0FDSUFFb0FnQTJBZ0FnQVVFRWFpRUJJQUpCQkdvaUFpQUVTUTBBQ3d3QkN5QURRUVJKQkVBZ0FDRUNEQUVMSUFBZ0EwRUVheUlFU3dSQUlBQWhBZ3dCQ3lBQUlRSURRQ0FDSUFFdEFBQTZBQUFnQWlBQkxRQUJPZ0FCSUFJZ0FTMEFBam9BQWlBQ0lBRXRBQU02QUFNZ0FVRUVhaUVCSUFKQkJHb2lBaUFFVFEwQUN3c2dBaUFEU1FSQUEwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwY05BQXNMSUFBTEJ3QWdBRUVJYWdzbkFRRi9JQUpCQUU0RWZ5QUFLQUlJSUFKQi93RnhRUUYwYWk4QkFDQUJjVUVBUndVZ0F3c0xDZ0FnQUVFd2EwRUtTUXZ5QWdJQ2Z3RitBa0FnQWtVTkFDQUFJQUU2QUFBZ0FDQUNhaUlEUVFGcklBRTZBQUFnQWtFRFNRMEFJQUFnQVRvQUFpQUFJQUU2QUFFZ0EwRURheUFCT2dBQUlBTkJBbXNnQVRvQUFDQUNRUWRKRFFBZ0FDQUJPZ0FESUFOQkJHc2dBVG9BQUNBQ1FRbEpEUUFnQUVFQUlBQnJRUU54SWdScUlnTWdBVUgvQVhGQmdZS0VDR3dpQVRZQ0FDQURJQUlnQkd0QmZIRWlCR29pQWtFRWF5QUJOZ0lBSUFSQkNVa05BQ0FESUFFMkFnZ2dBeUFCTmdJRUlBSkJDR3NnQVRZQ0FDQUNRUXhySUFFMkFnQWdCRUVaU1EwQUlBTWdBVFlDR0NBRElBRTJBaFFnQXlBQk5nSVFJQU1nQVRZQ0RDQUNRUkJySUFFMkFnQWdBa0VVYXlBQk5nSUFJQUpCR0dzZ0FUWUNBQ0FDUVJ4cklBRTJBZ0FnQkNBRFFRUnhRUmh5SWdScklnSkJJRWtOQUNBQnJVS0JnSUNBRUg0aEJTQURJQVJxSVFFRFFDQUJJQVUzQXhnZ0FTQUZOd01RSUFFZ0JUY0RDQ0FCSUFVM0F3QWdBVUVnYWlFQklBSkJJR3NpQWtFZlN3MEFDd3NnQUFzM0FRSi9Jd0JCRUdzaUFpUUFBMEFnQVVFRFJ3UkFJQUFnQVVFQ2RHcEJBRFlDQUNBQlFRRnFJUUVNQVFzTElBSkJFR29rQUNBQUN3OEFJQUFnQUNnQ0FDZ0NEQkVBQUFzSEFDQUFFQWxGQ3hFQUlBQWdBU0FCS0FJQUtBSWNFUU1BQ3hFQUlBQWdBU0FCS0FJQUtBSVlFUU1BQ3hBQUlBQWdBVUdBZ0lDQWVISTJBZ2dMQ1FBZ0FDQUJOZ0lBQ3hNQUlBQWdBU0FDSUFBb0FnQW9BZ3dSQkFBTEJBQkJBQXNRQUNBQUtBSUVJQUFvQWdCclFRSjFDeElBSUFBb0FnQWlBQVJBSUFBUTBRSWFDd3NSQUNBQUlBRW9BZ0FRMFFJMkFnQWdBQXRCQVFGL0lBQWdBVGNEY0NBQUlBQW9BaXdnQUNnQ0JDSUNhNnczQTNnZ0FDQUJVQ0FBS0FJSUlnQWdBbXVzSUFGWGNnUi9JQUFGSUFJZ0FhZHFDellDYUFzaUFRRi9Jd0JCRUdzaUFpUUFJQUFnQVNBQkVKSUJFUFlCSUFKQkVHb2tBQ0FBQ3hBQUlBSUVRQ0FBSUFFZ0FoQkNHZ3NMblFFQkJIOGpBRUVRYXlJSEpBQUNRQ0FBUlEwQUlBUW9BZ3doQmlBQ0lBRnJJZ2hCQUVvRVFDQUFJQUVnQ0JCL0lBaEhEUUVMSUFZZ0F5QUJheUlCYTBFQUlBRWdCa2diSWdGQkFFb0VRQ0FBSUFjZ0FTQUZFTzhCSWdVUURTQUJFSDhoQmlBRkVBb2FJQUVnQmtjTkFRc2dBeUFDYXlJQlFRQktCRUFnQUNBQ0lBRVFmeUFCUncwQkN5QUVFTzRCSUFBaENRc2dCMEVRYWlRQUlBa0xWUUVDZnlNQVFSQnJJZ0lrQUNBQUVEVUVRQ0FBS0FJQUlRTWdBQkI5R2lBREVCQUxJQUFnQVNnQ0NEWUNDQ0FBSUFFcEFnQTNBZ0FnQVVFQUVEb2dBa0VBTmdJTUlBRWdBa0VNYWhBeklBSkJFR29rQUF1OEFRRURmeU1BUVJCcklnVWtBQ0FGSUFFMkFnaEJBQ0VCUVFZaEJnSkFBa0FnQUNBRlFRaHFFQ2dOQUVFRUlRWWdBMEdBRUNBQUVDRWlCeEJPUlEwQUlBTWdCeENIQVNFQkEwQUNRQ0FBRUNVYUlBRkJNR3NoQVNBQUlBVkJDR29RTmtVZ0JFRUNTSElOQUNBRFFZQVFJQUFRSVNJR0VFNUZEUU1nQkVFQmF5RUVJQU1nQmhDSEFTQUJRUXBzYWlFQkRBRUxDMEVDSVFZZ0FDQUZRUWhxRUNoRkRRRUxJQUlnQWlnQ0FDQUdjallDQUFzZ0JVRVFhaVFBSUFFTHZBRUJBMzhqQUVFUWF5SUZKQUFnQlNBQk5nSUlRUUFoQVVFR0lRWUNRQUpBSUFBZ0JVRUlhaEFtRFFCQkJDRUdJQU5CZ0JBZ0FCQWZJZ2NRUkVVTkFDQURJQWNRaUFFaEFRTkFBa0FnQUJBaUdpQUJRVEJySVFFZ0FDQUZRUWhxRURGRklBUkJBa2h5RFFBZ0EwR0FFQ0FBRUI4aUJoQkVSUTBESUFSQkFXc2hCQ0FESUFZUWlBRWdBVUVLYkdvaEFRd0JDd3RCQWlFR0lBQWdCVUVJYWhBbVJRMEJDeUFDSUFJb0FnQWdCbkkyQWdBTElBVkJFR29rQUNBQkM1b0JBUU4vSXdCQkVHc2lCQ1FBSUFRZ0FUWUNEQ0FFSUFNMkFnZ2dCQ0FFUVF4cUVGSWhCaUFFS0FJSUlRTWpBRUVRYXlJQkpBQWdBU0FETmdJTUlBRWdBellDQ0VGL0lRVUNRRUVBUVFBZ0FpQURFTFVCSWdOQkFFZ05BQ0FBSUFOQkFXb2lBeEFaSWdBMkFnQWdBRVVOQUNBQUlBTWdBaUFCS0FJTUVMVUJJUVVMSUFGQkVHb2tBQ0FGSVFBZ0JoQlJJQVJCRUdva0FDQUFDdzBBSUFBb0FnQWdBU2dDQUVjTExnQUNRQ0FBS0FJRVFjb0FjU0lBQkVBZ0FFSEFBRVlFUUVFSUR3c2dBRUVJUncwQlFSQVBDMEVBRHd0QkNndjVBUUlEZmdKL0l3QkJFR3NpQlNRQUFuNGdBYjBpQTBMLy8vLy8vLy8vLy84QWd5SUNRb0NBZ0lDQWdJQUlmVUwvLy8vLy8vLy83LzhBV0FSQUlBSkNQSVloQkNBQ1FnU0lRb0NBZ0lDQWdJQ0FQSHdNQVFzZ0FrS0FnSUNBZ0lDQStQOEFXZ1JBSUFOQ1BJWWhCQ0FEUWdTSVFvQ0FnSUNBZ01ELy93Q0VEQUVMSUFKUUJFQkNBQXdCQ3lBRklBSkNBQ0FEcDJkQklHb2dBa0lnaUtkbklBSkNnSUNBZ0JCVUd5SUdRVEZxRUM4Z0JTa0RBQ0VFSUFVcEF3aENnSUNBZ0lDQXdBQ0ZRWXo0QUNBR2E2MUNNSWFFQ3lFQ0lBQWdCRGNEQUNBQUlBSWdBMEtBZ0lDQWdJQ0FnSUIvZzRRM0F3Z2dCVUVRYWlRQUN3Y0FJQUFnQVVZTE13RUJmeUFBUVFFZ0FCc2hBQUpBQTBBZ0FCQVpJZ0VOQVVHWWx3RW9BZ0FpQVFSQUlBRVJEd0FNQVFzTEVBQUFDeUFCQzhRREFRTi9Jd0JCSUdzaUNDUUFJQWdnQWpZQ0VDQUlJQUUyQWhnZ0NFRUlhaUlCSUFNUUR5QUJFRHNoQ1NBQkVBNGdCRUVBTmdJQVFRQWhBZ0pBQTBBZ0JpQUhSaUFDY2cwQkFrQWdDRUVZYWlBSVFSQnFFQ2dOQUFKQUlBa2dCaWdDQUJDSEFVRWxSZ1JBSUFaQkJHb2lBaUFIUmcwQ1FRQWhDZ0ovSUFrZ0FpZ0NBQkNIQVNJQlFjVUFSaUFCUWY4QmNVRXdSbkpGQkVBZ0JpRUNJQUVNQVFzZ0JrRUlhaUFIUmcwRElBRWhDaUFKSUFZb0FnZ1Fod0VMSVFFZ0NDQUFJQWdvQWhnZ0NDZ0NFQ0FESUFRZ0JTQUJJQW9nQUNnQ0FDZ0NKQkVNQURZQ0dDQUNRUWhxSVFZTUFRc2dDVUdBd0FBZ0JpZ0NBQkJPQkVBRFFBSkFJQWNnQmtFRWFpSUdSZ1JBSUFjaEJnd0JDeUFKUVlEQUFDQUdLQUlBRUU0TkFRc0xBMEFnQ0VFWWFpQUlRUkJxRURaRkRRSWdDVUdBd0FBZ0NFRVlhaEFoRUU1RkRRSWdDRUVZYWhBbEdnd0FDd0FMSUFrZ0NFRVlhaEFoRUNrZ0NTQUdLQUlBRUNsR0JFQWdCa0VFYWlFR0lBaEJHR29RSlJvTUFRc2dCRUVFTmdJQUN5QUVLQUlBSVFJTUFRc0xJQVJCQkRZQ0FBc2dDRUVZYWlBSVFSQnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQWdvQWhnaEFDQUlRU0JxSkFBZ0FBdkdBd0VEZnlNQVFTQnJJZ2drQUNBSUlBSTJBaEFnQ0NBQk5nSVlJQWhCQ0dvaUFTQURFQThnQVJBeUlRa2dBUkFPSUFSQkFEWUNBRUVBSVFJQ1FBTkFJQVlnQjBZZ0FuSU5BUUpBSUFoQkdHb2dDRUVRYWhBbURRQUNRQ0FKSUFZc0FBQVFpQUZCSlVZRVFDQUdRUUZxSWdJZ0IwWU5Ba0VBSVFvQ2Z5QUpJQUlzQUFBUWlBRWlBVUhGQUVZZ0FVSC9BWEZCTUVaeVJRUkFJQVloQWlBQkRBRUxJQVpCQW1vZ0IwWU5BeUFCSVFvZ0NTQUdMQUFDRUlnQkN5RUJJQWdnQUNBSUtBSVlJQWdvQWhBZ0F5QUVJQVVnQVNBS0lBQW9BZ0FvQWlRUkRBQTJBaGdnQWtFQ2FpRUdEQUVMSUFsQmdNQUFJQVlzQUFBUVJBUkFBMEFDUUNBSElBWkJBV29pQmtZRVFDQUhJUVlNQVFzZ0NVR0F3QUFnQml3QUFCQkVEUUVMQ3dOQUlBaEJHR29nQ0VFUWFoQXhSUTBDSUFsQmdNQUFJQWhCR0dvUUh4QkVSUTBDSUFoQkdHb1FJaG9NQUFzQUN5QUpJQWhCR0dvUUh4Q3pBU0FKSUFZc0FBQVFzd0ZHQkVBZ0JrRUJhaUVHSUFoQkdHb1FJaG9NQVFzZ0JFRUVOZ0lBQ3lBRUtBSUFJUUlNQVFzTElBUkJCRFlDQUFzZ0NFRVlhaUFJUVJCcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBZ29BaGdoQUNBSVFTQnFKQUFnQUF1cUFRRUVmeU1BUVJCcklnZ2tBQUpBSUFCRkRRQWdCQ2dDRENFR0lBSWdBV3NpQjBFQVNnUkFJQUFnQVNBSFFRSjFJZ2NRZnlBSFJ3MEJDeUFHSUFNZ0FXdEJBblVpQVd0QkFDQUJJQVpJR3lJQlFRQktCRUFnQUNBSUlBRWdCUkM3QWlJRkVBMGdBUkIvSVFZZ0JSQUtHaUFCSUFaSERRRUxJQU1nQW1zaUFVRUFTZ1JBSUFBZ0FpQUJRUUoxSWdFUWZ5QUJSdzBCQ3lBRUVPNEJJQUFoQ1FzZ0NFRVFhaVFBSUFrTEZnQWdBQ0FCSUFJZ0F5QUFLQUlBS0FJd0VRc0FHZ3RDQVFGL0lBQW9BZ0FoQWlBQkVCb2hBQ0FDUVFocUlnRVFVQ0FBU3dSL0lBRWdBQkIzS0FJQVFRQkhCVUVBQzBVRVFCQVhBQXNnQWtFSWFpQUFFSGNvQWdBTENBQWdBRUgvQVhFTEJBQWdBQXNQQUNBQUlBQW9BZ0FvQWlRUkFBQUxFUUFnQUNBQklBRW9BZ0FvQWlBUkF3QUxFUUFnQUNBQklBRW9BZ0FvQWl3UkF3QUxEQUFnQUVHQ2hvQWdOZ0FBQ3djQUlBQVFFUm9MTGdFQmZ5TUFRUkJySWdFa0FDQUJRUWhxSUFBUURTQUFFQWxCQW5ScUVIb29BZ0FoQUNBQlFSQnFKQUFnQUF1cUFRRUJmd0pBSUFOQmdCQnhSUTBBSUFKRklBTkJ5Z0J4SWdSQkNFWWdCRUhBQUVaeWNnMEFJQUJCS3pvQUFDQUFRUUZxSVFBTElBTkJnQVJ4QkVBZ0FFRWpPZ0FBSUFCQkFXb2hBQXNEUUNBQkxRQUFJZ1FFUUNBQUlBUTZBQUFnQUVFQmFpRUFJQUZCQVdvaEFRd0JDd3NnQUFKL1FlOEFJQU5CeWdCeElnRkJ3QUJHRFFBYVFkZ0FRZmdBSUFOQmdJQUJjUnNnQVVFSVJnMEFHa0hrQUVIMUFDQUNHd3M2QUFBTEt3RUJmeU1BUVJCcklnRWtBQ0FCUVFocUlBQVFEU0FBRUFscUVIb29BZ0FoQUNBQlFSQnFKQUFnQUFzV0FDQUFJQUVnQWlBRElBQW9BZ0FvQWlBUkN3QWFDeEFBSUFCQklFWWdBRUVKYTBFRlNYSUxOZ0FnQWdSL0lBSUVRQU5BSUFBZ0FTZ0NBRFlDQUNBQVFRUnFJUUFnQVVFRWFpRUJJQUpCQVdzaUFnMEFDd3RCQUFVZ0FBc2FDMUlCQW45QjhJQUJLQUlBSWdFZ0FFRURha0Y4Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQVFCRVVOQVF0QjhJQUJJQUEyQWdBZ0FROExRZFNCQVVFd05nSUFRWDhMRWdBZ0FCQkRLQUlBSUFBb0FnQnJRUUoxQ3djQUlBQkJFR29MTlFFQmZ5TUFRUkJySWdJa0FDQUNJQUFvQWdBMkFnd2dBQ0FCS0FJQU5nSUFJQUVnQWtFTWFpZ0NBRFlDQUNBQ1FSQnFKQUFMSkFFQ2Z5TUFRUkJySWdJa0FDQUFJQUVROFFFaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3cwQUlBQW9BZ0FnQVVFQ2RHb0xGZ0FnQUJBMUJFQWdBQ0FCRURrUEN5QUFJQUVRT2dzc0FBSkFJQUFnQVVZTkFBTkFJQUFnQVVFQmF5SUJUdzBCSUFBZ0FSQ3dBaUFBUVFGcUlRQU1BQXNBQ3dzTEFDQUFJQUUyQWdBZ0FBdmJBUUlCZndKK1FRRWhCQUpBSUFCQ0FGSWdBVUwvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBa0lBVWlBRFF2Ly8vLy8vLy8vLy93Q0RJZ1pDZ0lDQWdJQ0F3UC8vQUZZZ0JrS0FnSUNBZ0lEQS8vOEFVUnNOQUNBQUlBS0VJQVVnQm9TRVVBUkFRUUFQQ3lBQklBT0RRZ0JaQkVCQmZ5RUVJQUFnQWxRZ0FTQURVeUFCSUFOUkd3MEJJQUFnQW9VZ0FTQURoWVJDQUZJUEMwRi9JUVFnQUNBQ1ZpQUJJQU5WSUFFZ0ExRWJEUUFnQUNBQ2hTQUJJQU9GaEVJQVVpRUVDeUFFQzFBQkFYNENRQ0FEUWNBQWNRUkFJQUlnQTBGQWFxMklJUUZDQUNFQ0RBRUxJQU5GRFFBZ0FrSEFBQ0FEYTYyR0lBRWdBNjBpQklpRUlRRWdBaUFFaUNFQ0N5QUFJQUUzQXdBZ0FDQUNOd01JQ3c0QUlBQW9BZ2hCLy8vLy93ZHhDd29BSUFBUTRRRWFJQUFMRXdBZ0FDQUJJQUlnQUNnQ0FDZ0NNQkVFQUFzbUFDQUFJQUFvQWhoRklBQW9BaEFnQVhKeUlnRTJBaEFnQUNnQ0ZDQUJjUVJBRUJjQUN3c0pBQ0FBSUFFUS9RRUxKQUFnQUVFQ1R3Ui9JQUJCQkdwQmZIRWlBQ0FBUVFGcklnQWdBRUVDUmhzRlFRRUxDd2NBSUFCQkRHb0xsUUVCQlg4akFFRVFheUlGSkFBZ0FSRFRBaUVDSXdCQkVHc2lBeVFBQWtBZ0FrSHYvLy8vQTAwRVFBSkFJQUpCQVUwRVFDQUFJQUlRT2lBQUlRUU1BUXNnQUNBQUlBSVFnZ0ZCQVdvaUJoQ0JBU0lFRUUwZ0FDQUdFRXdnQUNBQ0VEa0xJQVFnQVNBQ0VIRWdBMEVBTmdJTUlBUWdBa0VDZEdvZ0EwRU1haEF6SUFOQkVHb2tBQXdCQ3hBWEFBc2dCVUVRYWlRQUN3OEFJQUFRUXlnQ0FDQUFLQUlBYXd2RUFRRUdmeU1BUVJCcklnUWtBQ0FBRUpZQktBSUFJUVVDZnlBQ0tBSUFJQUFvQWdCcklnTkIvLy8vL3dkSkJFQWdBMEVCZEF3QkMwRi9DeUlEUVFRZ0F4c2hBeUFCS0FJQUlRWWdBQ2dDQUNFSElBVkJOa1lFZjBFQUJTQUFLQUlBQ3lBREVKNEJJZ2dFUUNBRlFUWkhCRUFnQUJDbUFSb0xJQVJCTlRZQ0JDQUFJQVJCQ0dvZ0NDQUVRUVJxRUI0aUJSQ2xBaUFGRUIwZ0FTQUFLQUlBSUFZZ0IydHFOZ0lBSUFJZ0FDZ0NBQ0FEUVh4eGFqWUNBQ0FFUVJCcUpBQVBDeEFYQUFzVEFDQUFJQUZCQUNBQUtBSUFLQUkwRVFRQUN4TUFJQUFnQVVFQUlBQW9BZ0FvQWlRUkJBQUxEUUFnQUNnQ0JDQUFLQUlBYXd0REFRRi9JQUJCckNZb0FnQWlBVFlDQUNBQUlBRkJER3NvQWdCcVFjd21LQUlBTmdJQUlBQkIwQ1lvQWdBMkFnZ2dBRUVNYWhEUUFSb2dBRUZBYXhCK0dpQUFDL0lDQVFKL0l3QkJFR3NpQ2lRQUlBb2dBRFlDREFKQUFrQUNRQ0FES0FJQUlBSkhEUUJCS3lFTElBQWdDU2dDWUVjRVFFRXRJUXNnQ1NnQ1pDQUFSdzBCQ3lBRElBSkJBV28yQWdBZ0FpQUxPZ0FBREFFTElBWVFDVVVnQUNBRlIzSkZCRUJCQUNFQUlBZ29BZ0FpQVNBSGEwR2ZBVW9OQWlBRUtBSUFJUUFnQ0NBQlFRUnFOZ0lBSUFFZ0FEWUNBQXdCQzBGL0lRQWdDU0FKUWVnQWFpQUtRUXhxRU5JQklBbHJJZ1pCM0FCS0RRRWdCa0VDZFNFRkFrQUNRQUpBSUFGQkNHc09Bd0FDQUFFTElBRWdCVW9OQVF3REN5QUJRUkJISUFaQjJBQkljZzBBSUFNb0FnQWlBU0FDUmlBQklBSnJRUUpLY2cwQ0lBRkJBV3N0QUFCQk1FY05Ba0VBSVFBZ0JFRUFOZ0lBSUFNZ0FVRUJhallDQUNBQklBVkI0TkFBYWkwQUFEb0FBQXdDQ3lBRElBTW9BZ0FpQUVFQmFqWUNBQ0FBSUFWQjROQUFhaTBBQURvQUFDQUVJQVFvQWdCQkFXbzJBZ0JCQUNFQURBRUxRUUFoQUNBRVFRQTJBZ0FMSUFwQkVHb2tBQ0FBQ3dvQUlBQkJ0SWtCRUdRTDdnSUJBMzhqQUVFUWF5SUtKQUFnQ2lBQU9nQVBBa0FDUUFKQUlBTW9BZ0FnQWtjTkFFRXJJUXNnQUVIL0FYRWlEQ0FKTFFBWVJ3UkFRUzBoQ3lBSkxRQVpJQXhIRFFFTElBTWdBa0VCYWpZQ0FDQUNJQXM2QUFBTUFRc2dCaEFKUlNBQUlBVkhja1VFUUVFQUlRQWdDQ2dDQUNJQklBZHJRWjhCU2cwQ0lBUW9BZ0FoQUNBSUlBRkJCR28yQWdBZ0FTQUFOZ0lBREFFTFFYOGhBQ0FKSUFsQkdtb2dDa0VQYWhEVkFTQUpheUlGUVJkS0RRRUNRQUpBQWtBZ0FVRUlhdzREQUFJQUFRc2dBU0FGU2cwQkRBTUxJQUZCRUVjZ0JVRVdTSElOQUNBREtBSUFJZ0VnQWtZZ0FTQUNhMEVDU25JTkFpQUJRUUZyTFFBQVFUQkhEUUpCQUNFQUlBUkJBRFlDQUNBRElBRkJBV28yQWdBZ0FTQUZRZURRQUdvdEFBQTZBQUFNQWdzZ0F5QURLQUlBSWdCQkFXbzJBZ0FnQUNBRlFlRFFBR290QUFBNkFBQWdCQ0FFS0FJQVFRRnFOZ0lBUVFBaEFBd0JDMEVBSVFBZ0JFRUFOZ0lBQ3lBS1FSQnFKQUFnQUFzS0FDQUFRYXlKQVJCa0M0TUJBZ04vQVg0Q1FDQUFRb0NBZ0lBUVZBUkFJQUFoQlF3QkN3TkFJQUZCQVdzaUFTQUFJQUJDQ29BaUJVSUtmbjJuUVRCeU9nQUFJQUJDLy8vLy81OEJWaUVDSUFVaEFDQUNEUUFMQ3lBRnB5SUNCRUFEUUNBQlFRRnJJZ0VnQWlBQ1FRcHVJZ05CQ214clFUQnlPZ0FBSUFKQkNVc2hCQ0FESVFJZ0JBMEFDd3NnQVF0akFnRi9BWDRqQUVFUWF5SUNKQUFnQUFKK0lBRkZCRUJDQUF3QkN5QUNJQUd0UWdBZ0FXY2lBVUhSQUdvUUx5QUNLUU1JUW9DQWdJQ0FnTUFBaFVHZWdBRWdBV3V0UWpDR2ZDRURJQUlwQXdBTE53TUFJQUFnQXpjRENDQUNRUkJxSkFBTEpBQWdBRUVMVHdSL0lBQkJFR3BCY0hFaUFDQUFRUUZySWdBZ0FFRUxSaHNGUVFvTEMzOEJBMzhnQUNFQkFrQWdBRUVEY1FSQUEwQWdBUzBBQUVVTkFpQUJRUUZxSWdGQkEzRU5BQXNMQTBBZ0FTSUNRUVJxSVFFZ0FpZ0NBQ0lEUVg5eklBTkJnWUtFQ0d0eFFZQ0Jnb1I0Y1VVTkFBc2dBMEgvQVhGRkJFQWdBaUFBYXc4TEEwQWdBaTBBQVNFRElBSkJBV29pQVNFQ0lBTU5BQXNMSUFFZ0FHc0xLUUFnQUNBQlFRaDBRWUNBL0FkeElBRkJHSFJ5SUFGQkNIWkJnUDREY1NBQlFSaDJjbkkyQUFBTEtRQWdBQ2dBQUNJQVFSaDBJQUJCQ0hSQmdJRDhCM0Z5SUFCQkNIWkJnUDREY1NBQVFSaDJjbklMRHdBZ0FDQUFLQUlBUVFScU5nSUFDd2NBSUFCQkJHb0xEd0FnQUNBQUtBSUFRUUZxTmdJQUN6Y0JBbjhqQUVFUWF5SURKQUFnQTBFSWFpSUVJQUVRRHlBQ0lBUVFqQUVpQVJBNE5nSUFJQUFnQVJBM0lBUVFEaUFEUVJCcUpBQUxOUUVDZnlNQVFSQnJJZ0lrQUNBQ1FRaHFJZ01nQUJBUElBTVFPMEhnMEFCQit0QUFJQUVRWXlBREVBNGdBa0VRYWlRQUlBRUxOd0VDZnlNQVFSQnJJZ01rQUNBRFFRaHFJZ1FnQVJBUElBSWdCQkNPQVNJQkVEZzZBQUFnQUNBQkVEY2dCQkFPSUFOQkVHb2tBQXNYQUNBQUlBTTJBaEFnQUNBQ05nSU1JQUFnQVRZQ0NBc0tBQ0FBUVJoMFFSaDFDMElBSUFBZ0FDZ0NBQ0FCS0FJQWN6WUNBQ0FBSUFBb0FnUWdBU2dDQkhNMkFnUWdBQ0FBS0FJSUlBRW9BZ2h6TmdJSUlBQWdBQ2dDRENBQktBSU1jellDREF1Y0NBRUxmeUFBUlFSQUlBRVFHUThMSUFGQlFFOEVRRUhVZ1FGQk1EWUNBRUVBRHdzQ2YwRVFJQUZCQzJwQmVIRWdBVUVMU1JzaEJpQUFRUWhySWdVb0FnUWlDVUY0Y1NFRUFrQWdDVUVEY1VVRVFFRUFJQVpCZ0FKSkRRSWFJQVpCQkdvZ0JFMEVRQ0FGSVFJZ0JDQUdhMEc0aFFFb0FnQkJBWFJORFFJTFFRQU1BZ3NnQkNBRmFpRUhBa0FnQkNBR1R3UkFJQVFnQm1zaUEwRVFTUTBCSUFVZ0NVRUJjU0FHY2tFQ2NqWUNCQ0FGSUFacUlnSWdBMEVEY2pZQ0JDQUhJQWNvQWdSQkFYSTJBZ1FnQWlBREVPd0JEQUVMSUFkQjhJRUJLQUlBUmdSQVFlU0JBU2dDQUNBRWFpSUVJQVpORFFJZ0JTQUpRUUZ4SUFaeVFRSnlOZ0lFSUFVZ0Jtb2lBeUFFSUFacklnSkJBWEkyQWdSQjVJRUJJQUkyQWdCQjhJRUJJQU0yQWdBTUFRc2dCMEhzZ1FFb0FnQkdCRUJCNElFQktBSUFJQVJxSWdNZ0Jra05BZ0pBSUFNZ0Jtc2lBa0VRVHdSQUlBVWdDVUVCY1NBR2NrRUNjallDQkNBRklBWnFJZ1FnQWtFQmNqWUNCQ0FESUFWcUlnTWdBallDQUNBRElBTW9BZ1JCZm5FMkFnUU1BUXNnQlNBSlFRRnhJQU55UVFKeU5nSUVJQU1nQldvaUFpQUNLQUlFUVFGeU5nSUVRUUFoQWtFQUlRUUxRZXlCQVNBRU5nSUFRZUNCQVNBQ05nSUFEQUVMSUFjb0FnUWlBMEVDY1EwQklBTkJlSEVnQkdvaUNpQUdTUTBCSUFvZ0Jtc2hEQUpBSUFOQi93Rk5CRUFnQnlnQ0NDSUVJQU5CQTNZaUFrRURkRUdBZ2dGcVJob2dCQ0FIS0FJTUlnTkdCRUJCMklFQlFkaUJBU2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUVJQU0yQWd3Z0F5QUVOZ0lJREFFTElBY29BaGdoQ3dKQUlBY2dCeWdDRENJSVJ3UkFJQWNvQWdnaUFrSG9nUUVvQWdCSkdpQUNJQWcyQWd3Z0NDQUNOZ0lJREFFTEFrQWdCMEVVYWlJRUtBSUFJZ0lOQUNBSFFSQnFJZ1FvQWdBaUFnMEFRUUFoQ0F3QkN3TkFJQVFoQXlBQ0lnaEJGR29pQkNnQ0FDSUNEUUFnQ0VFUWFpRUVJQWdvQWhBaUFnMEFDeUFEUVFBMkFnQUxJQXRGRFFBQ1FDQUhJQWNvQWh3aUEwRUNkRUdJaEFGcUlnSW9BZ0JHQkVBZ0FpQUlOZ0lBSUFnTkFVSGNnUUZCM0lFQktBSUFRWDRnQTNkeE5nSUFEQUlMSUF0QkVFRVVJQXNvQWhBZ0IwWWJhaUFJTmdJQUlBaEZEUUVMSUFnZ0N6WUNHQ0FIS0FJUUlnSUVRQ0FJSUFJMkFoQWdBaUFJTmdJWUN5QUhLQUlVSWdKRkRRQWdDQ0FDTmdJVUlBSWdDRFlDR0FzZ0RFRVBUUVJBSUFVZ0NVRUJjU0FLY2tFQ2NqWUNCQ0FGSUFwcUlnSWdBaWdDQkVFQmNqWUNCQXdCQ3lBRklBbEJBWEVnQm5KQkFuSTJBZ1FnQlNBR2FpSURJQXhCQTNJMkFnUWdCU0FLYWlJQ0lBSW9BZ1JCQVhJMkFnUWdBeUFNRU93QkN5QUZJUUlMSUFJTElnSUVRQ0FDUVFocUR3c2dBUkFaSWdWRkJFQkJBQThMSUFVZ0FFRjhRWGdnQUVFRWF5Z0NBQ0lDUVFOeEd5QUNRWGh4YWlJQ0lBRWdBU0FDU3hzUVFob2dBQkFRSUFVTGZRRURmMEVZSVFJQ1FBSkFJQUFnQVhKQkEzRU5BQU5BSUFBb0FnQWdBU2dDQUVjTkFTQUJRUVJxSVFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN5QUNSUTBCQ3dOQUlBQXRBQUFpQXlBQkxRQUFJZ1JHQkVBZ0FVRUJhaUVCSUFCQkFXb2hBQ0FDUVFGcklnSU5BUXdDQ3dzZ0F5QUVhdzhMUVFBTFNRRUNmeUFBS0FJRUlnWkJDSFVoQlNBR1FRRnhCRUFnQWlnQ0FDQUZFTVVCSVFVTElBQW9BZ0FpQUNBQklBSWdCV29nQTBFQ0lBWkJBbkViSUFRZ0FDZ0NBQ2dDR0JFS0FBdTJBUUVEZnlNQVFSQnJJZ01rQUNBRElBRTZBQThDUUFKQUFrQUNRQ0FBRURVRVFDQUFFSDBoQVNBQUtBSUVJZ1FnQVVFQmF5SUNSZzBCREFNTFFRb2hCRUVLSVFJZ0FDMEFDeUlCUVFwSERRRUxJQUFnQWtFQklBSWdBaERJQVNBRUlRRWdBQkExRFFFTElBQWhBaUFBSUFGQkFXb1FPZ3dCQ3lBQUtBSUFJUUlnQUNBRVFRRnFFRGtnQkNFQkN5QUJJQUpxSWdBZ0EwRVBhaEEwSUFOQkFEb0FEaUFBUVFGcUlBTkJEbW9RTkNBRFFSQnFKQUFMSkFFQ2Z5TUFRUkJySWdJa0FDQUJJQUFROFFFaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3gwQUlBQkJCR29Ra2dKQmYwWUVRQ0FBSUFBb0FnQW9BZ2dSQVFBTEN5UUFJQUFRK1FFaEFDQUJFUGtCSUFCcklnRUVRQ0FDSUFBZ0FSRHFBUXNnQVNBQ2Fnc1JBQ0FBSUFFZ0FTZ0NBQ2dDS0JFREFBc1VBUUYvSUFBb0FnQWhBU0FBUVFBMkFnQWdBUXVyTEFFUmZ5QUFLQUx3QVNFU0lBQW9BZ1FnQVNnQUJDSUVRUmgwSUFSQkNIUkJnSUQ4QjNGeUlBUkJDSFpCZ1A0RGNTQUVRUmgyY25KeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hCaUFBS0FJSUlBRW9BQWdpQlVFWWRDQUZRUWgwUVlDQS9BZHhjaUFGUVFoMlFZRCtBM0VnQlVFWWRuSnljeUlGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFnZ0FDZ0NEQ0FCS0FBTUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y25NaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ1NBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBQ2dDQUNBQktBQUFJZ0ZCR0hRZ0FVRUlkRUdBZ1B3SGNYSWdBVUVJZGtHQS9nTnhJQUZCR0haeWNuTWlBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQWhRZ0N5QUtJQWtnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRa2dBQ2dDR0NBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENpQUFLQUljSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFTElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0FDZ0NFQ0FISUFnZ0JpQUJRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ0ZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQmlBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRZ2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VISUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FJa0lBWWdEU0FNSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQUFvQWlnZ0RpQUhJQWdnQlVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRZ2dBQ2dDTENBUklCQWdEeUFEUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdOQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEJ5QUZRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBQW9BaUFnQ3lBS0lBa2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlCUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUtJQUZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ3lBRVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRNGdBVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VQSUFSQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEVDQUZRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUkVnQUNnQ05DQUpJQTBnRENBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDU0FBS0FJNElBNGdDeUFLSUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUtJQUFvQWp3Z0VTQVFJQThnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dCVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUFLQUl3SUFjZ0NDQUdJQUZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQVVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFR0lBTkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDQ0FCUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFjZ0JFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRU9JQUZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRHlBRVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlSQWdCVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VSSUFBb0FrUWdCaUFOSUF3Z0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUVlnQUNnQ1NDQU9JQWNnQ0NBRlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDQ0FBS0FKTUlCRWdFQ0FQSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRENBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRMGdBQ2dDUUNBTElBb2dDU0FCUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaENTQURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUW9nQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTElBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEaUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVE4Z0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVFJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRVNBQUtBSlVJQWtnRFNBTUlBUkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VKSUFBb0FsZ2dEaUFMSUFvZ0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUZRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUW9nQUNnQ1hDQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDeUFGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVF3Z0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU5JQUFvQWxBZ0J5QUlJQVlnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRWWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VJSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEJ5QUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NaQ0FHSUEwZ0RDQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1JCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBQUtBSm9JQTRnQnlBSUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VJSUFBb0Ftd2dFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFTUlBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hEU0FBS0FKZ0lBc2dDaUFKSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUFVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUpJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ2lBQlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRc2dCRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VPSUFGQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaER5QUVRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUkFnQlVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFUklBQW9BblFnQ1NBTklBd2dCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFrZ0FDZ0NlQ0FPSUFzZ0NpQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1ZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQUtBSjhJQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQUNnQ2NDQUhJQWdnQmlBQlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hCaUFEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFjZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU9JQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRHlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlSQWdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VSSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEV5QUFLQUtFQVNBR0lBMGdEQ0FFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdaQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0FDZ0NnQUVnQ3lBS0lBa2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlJUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQUFvQW9nQklBOGdEaUFISUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUIwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNITWdBQ2dDakFFZ0V5QVJJQkFnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUtRQVhNaEFTQUhRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQVpCRm5aQi9BZHhRWUFJYWlnQ0FITWdBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQ0VIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0NsQUZ6SVFRZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUhRUloyUWZ3SGNVR0FDR29vQWdCeklBaEJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQVpCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0FwZ0JjeUVGQW44Z0NFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQURRUloyUWZ3SGNVR0FDR29vQWdCeklBWkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWRCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0Fwd0JjeUlESUJKQkMwZ05BQm9nQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hCeUFEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NwQUVnQ3lBS0lBWWdCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlHUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFBb0FxQUJJQWtnQnlBSUlBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlDRUVXZGtIOEIzRkJnQWhxS0FJQWN5QUFLQUtvQVNBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdkQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBQW9BcXdCSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0NzQUZ6SVFFZ0IwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUdRUloyUWZ3SGNVR0FDR29vQWdCeklBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWhCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0FyUUJjeUVFSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0IwRVdka0g4QjNGQmdBaHFLQUlBY3lBSVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSWN5QUdRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FLNEFYTWhCU0FJUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQmtFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDdkFGeklnTWdFa0VOU0EwQUdpQUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUWdnQlVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFSElBTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDU0FGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFZZ0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUtJQUZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ3lBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRd2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VOSUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FMRUFTQUxJQW9nQmlBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnWkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBQ2dDd0FFZ0NTQUhJQWdnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJSVFSWjJRZndIY1VHQUNHb29BZ0J6SUFBb0FzZ0JJQTRnRFNBTUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQUNnQ3pBRWdFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FMUUFYTWhBU0FIUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFaQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0NFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDMUFGeklRUWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0FIUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQWhCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFaQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFoeklBQW9BdGdCY3lFRklBaEJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBMEVXZGtIOEIzRkJnQWhxS0FJQWN5QUdRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJY3lBQUtBTGNBWE1MSVFNZ0FpQUFJQkpCQkhScUlnQW9BZ0FnQTBIL0FYRkJBblJCZ0FocUxRQUJJQUZCRm5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUVRUTUyUWZ3SGNVR0FDR290QUFKQkVIUnlJQVZCQm5aQi9BZHhRWUFJYWkwQUFVRUlkSEp5Y3lJU1FSaDBJQkpCQ0hSQmdJRDhCM0Z5SUJKQkNIWkJnUDREY1NBU1FSaDJjbkkyQUFBZ0FpQUFLQUlFSUFGQi93RnhRUUowUVlBSWFpMEFBU0FFUVJaMlFmd0hjVUdBQ0dvb0FnQkJDSFJCZ0lDQWVIRWdCVUVPZGtIOEIzRkJnQWhxTFFBQ1FSQjBjaUFEUVFaMlFmd0hjVUdBQ0dvdEFBRkJDSFJ5Y25NaUVrRVlkQ0FTUVFoMFFZQ0EvQWR4Y2lBU1FRaDJRWUQrQTNFZ0VrRVlkbkp5TmdBRUlBSWdBQ2dDQ0NBRVFmOEJjVUVDZEVHQUNHb3RBQUVnQlVFV2RrSDhCM0ZCZ0FocUtBSUFRUWgwUVlDQWdIaHhJQU5CRG5aQi9BZHhRWUFJYWkwQUFrRVFkSElnQVVFR2RrSDhCM0ZCZ0FocUxRQUJRUWgwY25KekloSkJHSFFnRWtFSWRFR0FnUHdIY1hJZ0VrRUlka0dBL2dOeElCSkJHSFp5Y2pZQUNDQUNJQUFvQWd3Z0JVSC9BWEZCQW5SQmdBaHFMUUFCSUFOQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FCUVE1MlFmd0hjVUdBQ0dvdEFBSkJFSFJ5SUFSQkJuWkIvQWR4UVlBSWFpMEFBVUVJZEhKeWN5SUFRUmgwSUFCQkNIUkJnSUQ4QjNGeUlBQkJDSFpCZ1A0RGNTQUFRUmgyY25JMkFBd0xEZ0FnQUNBQktBSUFOZ0lBSUFBTEJ3QWdBQkJIR2dzSUFFSC8vLy8vQndzRkFFSC9BQXNEQUFFTEt3QUNRQ0FBSUFGR0RRQURRQ0FBSUFGQkJHc2lBVThOQVNBQUlBRVFkU0FBUVFScUlRQU1BQXNBQ3d2VUF3RUlmeU1BUVJCcklnb2tBQ0FHRURzaEN5QUtJQVlRakFFaUJoQTNBa0FnQ2hCSkJFQWdDeUFBSUFJZ0F4QmpJQVVnQXlBQ0lBQnJRUUowYWlJR05nSUFEQUVMSUFVZ0F6WUNBQUpBQWtBZ0FDSUlMUUFBSWdkQksyc09Bd0FCQUFFTElBc2dCMEVZZEVFWWRSQTlJUWdnQlNBRktBSUFJZ2RCQkdvMkFnQWdCeUFJTmdJQUlBQkJBV29oQ0FzQ1FDQUNJQWhyUVFKSURRQWdDQzBBQUVFd1J3MEFJQWd0QUFGQklISkIrQUJIRFFBZ0MwRXdFRDBoQnlBRklBVW9BZ0FpQ1VFRWFqWUNBQ0FKSUFjMkFnQWdDeUFJTEFBQkVEMGhCeUFGSUFVb0FnQWlDVUVFYWpZQ0FDQUpJQWMyQWdBZ0NFRUNhaUVJQ3lBSUlBSVFlVUVBSVFrZ0JoQTRJUXhCQUNFSElBZ2hCZ04vSUFJZ0JrMEVmeUFESUFnZ0FHdEJBblJxSUFVb0FnQVFyUUVnQlNnQ0FBVUNRQ0FLSUFjUUN5MEFBRVVOQUNBSklBb2dCeEFMTEFBQVJ3MEFJQVVnQlNnQ0FDSUpRUVJxTmdJQUlBa2dERFlDQUNBSElBY2dDaEFKUVFGclNXb2hCMEVBSVFrTElBc2dCaXdBQUJBOUlRMGdCU0FGS0FJQUlnNUJCR28yQWdBZ0RpQU5OZ0lBSUFaQkFXb2hCaUFKUVFGcUlRa01BUXNMSVFZTElBUWdCaUFESUFFZ0FHdEJBblJxSUFFZ0FrWWJOZ0lBSUFvUUNob2dDa0VRYWlRQUM5QUJBUUovSUFKQmdCQnhCRUFnQUVFck9nQUFJQUJCQVdvaEFBc2dBa0dBQ0hFRVFDQUFRU002QUFBZ0FFRUJhaUVBQ3lBQ1FZUUNjU0lEUVlRQ1J3UkFJQUJCcnRRQU93QUFJQUJCQW1vaEFBc2dBa0dBZ0FGeElRSURRQ0FCTFFBQUlnUUVRQ0FBSUFRNkFBQWdBRUVCYWlFQUlBRkJBV29oQVF3QkN3c2dBQUovQWtBZ0EwR0FBa2NFUUNBRFFRUkhEUUZCeGdCQjVnQWdBaHNNQWd0QnhRQkI1UUFnQWhzTUFRdEJ3UUJCNFFBZ0Foc2dBMEdFQWtZTkFCcEJ4d0JCNXdBZ0Foc0xPZ0FBSUFOQmhBSkhDOG9EQVFoL0l3QkJFR3NpQ2lRQUlBWVFNaUVMSUFvZ0JoQ09BU0lHRURjQ1FDQUtFRWtFUUNBTElBQWdBaUFERUc4Z0JTQURJQUlnQUd0cUlnWTJBZ0FNQVFzZ0JTQUROZ0lBQWtBQ1FDQUFJZ2d0QUFBaUIwRXJhdzREQUFFQUFRc2dDeUFIUVJoMFFSaDFFQ2toQ0NBRklBVW9BZ0FpQjBFQmFqWUNBQ0FISUFnNkFBQWdBRUVCYWlFSUN3SkFJQUlnQ0d0QkFrZ05BQ0FJTFFBQVFUQkhEUUFnQ0MwQUFVRWdja0g0QUVjTkFDQUxRVEFRS1NFSElBVWdCU2dDQUNJSlFRRnFOZ0lBSUFrZ0J6b0FBQ0FMSUFnc0FBRVFLU0VISUFVZ0JTZ0NBQ0lKUVFGcU5nSUFJQWtnQnpvQUFDQUlRUUpxSVFnTElBZ2dBaEI1UVFBaENTQUdFRGdoREVFQUlRY2dDQ0VHQTM4Z0FpQUdUUVIvSUFNZ0NDQUFhMm9nQlNnQ0FCQjVJQVVvQWdBRkFrQWdDaUFIRUFzdEFBQkZEUUFnQ1NBS0lBY1FDeXdBQUVjTkFDQUZJQVVvQWdBaUNVRUJhallDQUNBSklBdzZBQUFnQnlBSElBb1FDVUVCYTBscUlRZEJBQ0VKQ3lBTElBWXNBQUFRS1NFTklBVWdCU2dDQUNJT1FRRnFOZ0lBSUE0Z0RUb0FBQ0FHUVFGcUlRWWdDVUVCYWlFSkRBRUxDeUVHQ3lBRUlBWWdBeUFCSUFCcmFpQUJJQUpHR3pZQ0FDQUtFQW9hSUFwQkVHb2tBQXNNQUNBQUVBMGdBVUVDZEdvTHFnUUJDMzhqQUVHQUFXc2lDaVFBSUFvZ0FUWUNlQ0FDSUFNUXpRSWhDQ0FLUVRVMkFoQWdDa0VJYWtFQUlBcEJFR29pQ1JBZUlSQUNRQ0FJUWVVQVR3UkFJQWdRR1NJSlJRMEJJQkFnQ1JBbkN5QUpJUWNnQWlFQkEwQWdBU0FEUmdSQUEwQUNRQ0FBSUFwQitBQnFFRFpCQUNBSUcwVUVRQ0FBSUFwQitBQnFFQ2dFUUNBRklBVW9BZ0JCQW5JMkFnQUxEQUVMSUFBUUlTRU9JQVpGQkVBZ0JDQU9FQ2toRGdzZ0RFRUJhaUVOUVFBaER5QUpJUWNnQWlFQkEwQWdBU0FEUmdSQUlBMGhEQ0FQUlEwRElBQVFKUm9nQ1NFSElBSWhBU0FJSUF0cVFRSkpEUU1EUUNBQklBTkdCRUFNQlFVQ1FDQUhMUUFBUVFKSERRQWdBUkFKSUExR0RRQWdCMEVBT2dBQUlBdEJBV3NoQ3dzZ0IwRUJhaUVISUFGQkRHb2hBUXdCQ3dBTEFBVUNRQ0FITFFBQVFRRkhEUUFnQVNBTUVMRUJLQUlBSVJFQ1FDQUdCSDhnRVFVZ0JDQVJFQ2tMSUE1R0JFQkJBU0VQSUFFUUNTQU5SdzBDSUFkQkFqb0FBQ0FMUVFGcUlRc01BUXNnQjBFQU9nQUFDeUFJUVFGcklRZ0xJQWRCQVdvaEJ5QUJRUXhxSVFFTUFRc0FDd0FMQ3dKQUFrQURRQ0FDSUFOR0RRRWdDUzBBQUVFQ1J3UkFJQWxCQVdvaENTQUNRUXhxSVFJTUFRc0xJQUloQXd3QkN5QUZJQVVvQWdCQkJISTJBZ0FMSUJBUUhTQUtRWUFCYWlRQUlBTVBCUUpBSUFFUVNVVUVRQ0FIUVFFNkFBQU1BUXNnQjBFQ09nQUFJQXRCQVdvaEN5QUlRUUZySVFnTElBZEJBV29oQnlBQlFReHFJUUVNQVFzQUN3QUxFQmNBQ3hFQUlBQWdBU0FBS0FJQUtBSU1FUUlBQzdNRUFRdC9Jd0JCZ0FGcklnb2tBQ0FLSUFFMkFuZ2dBaUFERU0wQ0lRZ2dDa0UxTmdJUUlBcEJDR3BCQUNBS1FSQnFJZ2tRSGlFUUFrQWdDRUhsQUU4RVFDQUlFQmtpQ1VVTkFTQVFJQWtRSndzZ0NTRUhJQUloQVFOQUlBRWdBMFlFUUFOQUFrQWdBQ0FLUWZnQWFoQXhRUUFnQ0J0RkJFQWdBQ0FLUWZnQWFoQW1CRUFnQlNBRktBSUFRUUp5TmdJQUN3d0JDeUFBRUI4aERpQUdSUVJBSUFRZ0RoQ3pBU0VPQ3lBTVFRRnFJUTFCQUNFUElBa2hCeUFDSVFFRFFDQUJJQU5HQkVBZ0RTRU1JQTlGRFFNZ0FCQWlHaUFKSVFjZ0FpRUJJQWdnQzJwQkFra05Bd05BSUFFZ0EwWUVRQXdGQlFKQUlBY3RBQUJCQWtjTkFDQUJFQWtnRFVZTkFDQUhRUUE2QUFBZ0MwRUJheUVMQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUJRSkFJQWN0QUFCQkFVY05BQ0FCSUF3UUN5d0FBQ0VSQWtBZ0RrSC9BWEVnQmdSL0lCRUZJQVFnRVJDekFRdEIvd0Z4UmdSQVFRRWhEeUFCRUFrZ0RVY05BaUFIUVFJNkFBQWdDMEVCYWlFTERBRUxJQWRCQURvQUFBc2dDRUVCYXlFSUN5QUhRUUZxSVFjZ0FVRU1haUVCREFFTEFBc0FDd3NDUUFKQUEwQWdBaUFEUmcwQklBa3RBQUJCQWtjRVFDQUpRUUZxSVFrZ0FrRU1haUVDREFFTEN5QUNJUU1NQVFzZ0JTQUZLQUlBUVFSeU5nSUFDeUFRRUIwZ0NrR0FBV29rQUNBRER3VUNRQ0FCRUVsRkJFQWdCMEVCT2dBQURBRUxJQWRCQWpvQUFDQUxRUUZxSVFzZ0NFRUJheUVJQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUN4QVhBQXZsQXdFRGZ5TUFRYUFCYXlJRUpBQkJmeUVGSUFRZ0FVRUJhMEVBSUFFYk5nS1VBU0FFSUFBZ0JFR2VBV29nQVJzaUJqWUNrQUVnQkVFQVFaQUJFRVlpQUVGL05nSk1JQUJCTkRZQ0pDQUFRWDgyQWxBZ0FDQUFRWjhCYWpZQ0xDQUFJQUJCa0FGcU5nSlVBa0FnQVVFQVNBUkFRZFNCQVVFOU5nSUFEQUVMSUFaQkFEb0FBRUVBSVFRakFFSFFBV3NpQVNRQUlBRWdBellDekFFZ0FVR2dBV29pQTBFQVFTZ1FSaG9nQVNBQktBTE1BVFlDeUFFQ1FFRUFJQUlnQVVISUFXb2dBVUhRQUdvZ0F4RGNBa0VBU0FSQVFYOGhBZ3dCQ3lBQUtBSk1RUUJPSVFVZ0FDZ0NBQ0VESUFBb0FraEJBRXdFUUNBQUlBTkJYM0UyQWdBTEFuOENRQUpBSUFBb0FqQkZCRUFnQUVIUUFEWUNNQ0FBUVFBMkFod2dBRUlBTndNUUlBQW9BaXdoQkNBQUlBRTJBaXdNQVFzZ0FDZ0NFQTBCQzBGL0lBQVE2QUVOQVJvTElBQWdBaUFCUWNnQmFpQUJRZEFBYWlBQlFhQUJhaERjQWdzaEFpQUVCRUFnQUVFQVFRQWdBQ2dDSkJFRUFCb2dBRUVBTmdJd0lBQWdCRFlDTENBQVFRQTJBaHdnQUVFQU5nSVFJQUFvQWhRaEJDQUFRUUEyQWhRZ0FrRi9JQVFiSVFJTElBQWdBQ2dDQUNJRUlBTkJJSEZ5TmdJQVFYOGdBaUFFUVNCeEd5RUNJQVZGRFFBTElBRkIwQUZxSkFBZ0FpRUZDeUFBUWFBQmFpUUFJQVVMU2dFQ2Z3SkFJQUF0QUFBaUFrVWdBaUFCTFFBQUlnTkhjZzBBQTBBZ0FTMEFBU0VESUFBdEFBRWlBa1VOQVNBQlFRRnFJUUVnQUVFQmFpRUFJQUlnQTBZTkFBc0xJQUlnQTJzTDVBSUJCbjhqQUVFUWF5SUhKQUFnQTBId2hnRWdBeHNpQlNnQ0FDRURBa0FDUUFKQUlBRkZCRUFnQXcwQkRBTUxRWDRoQkNBQ1JRMENJQUFnQjBFTWFpQUFHeUVHQWtBZ0F3UkFJQUloQUF3QkN5QUJMUUFBSWdCQkdIUkJHSFVpQTBFQVRnUkFJQVlnQURZQ0FDQURRUUJISVFRTUJBc2dBU3dBQUNFQVFkaUdBU2dDQUNnQ0FFVUVRQ0FHSUFCQi83OERjVFlDQUVFQklRUU1CQXNnQUVIL0FYRkJ3Z0ZySWdCQk1rc05BU0FBUVFKMFFjQXJhaWdDQUNFRElBSkJBV3NpQUVVTkFpQUJRUUZxSVFFTElBRXRBQUFpQ0VFRGRpSUpRUkJySUFOQkduVWdDV3B5UVFkTERRQURRQ0FBUVFGcklRQWdDRUdBQVdzZ0EwRUdkSElpQTBFQVRnUkFJQVZCQURZQ0FDQUdJQU0yQWdBZ0FpQUFheUVFREFRTElBQkZEUUlnQVVFQmFpSUJMUUFBSWdoQndBRnhRWUFCUmcwQUN3c2dCVUVBTmdJQVFkU0JBVUVaTmdJQVFYOGhCQXdCQ3lBRklBTTJBZ0FMSUFkQkVHb2tBQ0FFQ3d3QUlBQkJER29RZmhvZ0FBc0lBQ0FBS0FJUVJRc29BUUovSXdCQkVHc2lBaVFBSUFFb0FnQWdBQ2dDQUVnaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3hBQUlBQWdBVGNEQ0NBQVFnQTNBd0FMRXdBZ0FFRzhIellDQUNBQVFRUnFFQTRnQUFzRUFFRUJDMlVCQTM4Z0FrVUVRRUVBRHdzQ1FDQUFMUUFBSWdORkRRQURRQUpBSUFFdEFBQWlCVVVOQUNBQ1FRRnJJZ0pGSUFNZ0JVZHlEUUFnQVVFQmFpRUJJQUF0QUFFaEF5QUFRUUZxSVFBZ0F3MEJEQUlMQ3lBRElRUUxJQVJCL3dGeElBRXRBQUJyQzY0QkFRUi9Jd0JCRUdzaUJTUUFJQUVoQkNBQ1FSQlBCRUFnQWtFRWRpRUhBMEFnQXlBRUVKMEJJQU1nQUNBRkVMSUNJQU1nQlNrRENEY0FDQ0FESUFVcEF3QTNBQUFnQkVFUWFpRUVJQVpCQVdvaUJpQUhSdzBBQ3dzZ0JDQUJJQUpxSWdGSkJFQWdCU0FFSUFFZ0JHc2lBaEJDSWdFZ0FtcEJBRUVRSUFKckVFWWFJQU1nQVJDZEFTQURJQUFnQVJDeUFpQURJQUVwQXdnM0FBZ2dBeUFCS1FNQU53QUFDeUFGUVJCcUpBQUxHZ0FnQUNBQklBRW9BZ0JCREdzb0FnQnFLQUlZTmdJQUlBQUxLd0VCZnlBQVFmei9BRFlDQUFKQUlBQW9BZ1JCREdzaUFVRUlhaENTQWtFQVRnMEFJQUVRRUFzZ0FBdExBUUovSUFBb0FnUWlCMEVJZFNFR0lBZEJBWEVFUUNBREtBSUFJQVlReFFFaEJnc2dBQ2dDQUNJQUlBRWdBaUFESUFacUlBUkJBaUFIUVFKeEd5QUZJQUFvQWdBb0FoUVJDUUFMSUFBQ1FDQUFLQUlFSUFGSERRQWdBQ2dDSEVFQlJnMEFJQUFnQWpZQ0hBc0xtZ0VBSUFCQkFUb0FOUUpBSUFBb0FnUWdBa2NOQUNBQVFRRTZBRFFDUUNBQUtBSVFJZ0pGQkVBZ0FFRUJOZ0lrSUFBZ0F6WUNHQ0FBSUFFMkFoQWdBQ2dDTUVFQlJ3MENJQU5CQVVZTkFRd0NDeUFCSUFKR0JFQWdBQ2dDR0NJQ1FRSkdCRUFnQUNBRE5nSVlJQU1oQWdzZ0FDZ0NNRUVCUncwQ0lBSkJBVVlOQVF3Q0N5QUFJQUFvQWlSQkFXbzJBaVFMSUFCQkFUb0FOZ3NMQ2dBZ0FDQUJhaWdDQUF0ZEFRRi9JQUFvQWhBaUEwVUVRQ0FBUVFFMkFpUWdBQ0FDTmdJWUlBQWdBVFlDRUE4TEFrQWdBU0FEUmdSQUlBQW9BaGhCQWtjTkFTQUFJQUkyQWhnUEN5QUFRUUU2QURZZ0FFRUNOZ0lZSUFBZ0FDZ0NKRUVCYWpZQ0pBc0x1UUVCQTM4akFFRVFheUlESkFBZ0F5QUJOZ0lNQWtBQ1FBSkFBa0FnQUJBMUJFQWdBQkI5SVFFZ0FDZ0NCQ0lFSUFGQkFXc2lBa1lOQVF3REMwRUJJUVJCQVNFQ0lBQXRBQXNpQVVFQlJ3MEJDeUFBSUFKQkFTQUNJQUlROHdFZ0JDRUJJQUFRTlEwQkN5QUFJUUlnQUNBQlFRRnFFRG9NQVFzZ0FDZ0NBQ0VDSUFBZ0JFRUJhaEE1SUFRaEFRc2dBaUFCUVFKMGFpSUFJQU5CREdvUU15QURRUUEyQWdnZ0FFRUVhaUFEUVFocUVETWdBMEVRYWlRQUM2OEJBUU4vSXdCQkVHc2lCU1FBSUFKQmJ5SUdJQUZyVFFSQUlBQVFEU0VIQW44Z0FTQUdRUUYyUVJCclNRUkFJQVVnQVVFQmREWUNDQ0FGSUFFZ0FtbzJBZ3dnQlVFTWFpQUZRUWhxRUhZb0FnQVFrUUVNQVFzZ0JrRUJhd3RCQVdvaUJoQmZJUUlnQkFSQUlBSWdCeUFFRUZVTElBTWdCR3NpQXdSQUlBSWdCR29nQkNBSGFpQURFRlVMSUFGQkNrY0VRQ0FIRUJBTElBQWdBaEJOSUFBZ0JoQk1JQVZCRUdva0FBOExFQmNBQ3dNQUFRc1hBQ0FBS0FJSUVCWkhCRUFnQUNnQ0NCRFVBZ3NnQUFzNEFRRi9Jd0JCRUdzaUF5UUFJQU1nQWpZQ0RDQURRUWhxSUFOQkRHb1FVaUVDSUFBZ0FSRGFBU0VBSUFJUVVTQURRUkJxSkFBZ0FBc0xBQ0FFSUFJMkFnQkJBd3NKQUNBQVFRQTJBZ0FMRHdBZ0FDQUFLQUlFUVFGcU5nSUVDeGtCQVg5QkFTRUJJQUFRTlFSL0lBQVFmVUVCYXdVZ0FRc0xHZ0FnQUVHMElUWUNBQ0FBUVNCcUVBb2FJQUFRdkFFYUlBQUxrd0VCQkg4akFFRVFheUlESkFBQ1FDQUJFRFZGQkVBZ0FDQUJLQUlJTmdJSUlBQWdBU2tDQURjQ0FBd0JDeUFCS0FJQUlRUUNRQUpBQWtBZ0FTZ0NCQ0lDUVFwTkJFQWdBQ0VCSUFBZ0FoQTZEQUVMSUFKQmIwc05BU0FBSUFJUWtRRkJBV29pQlJCZklnRVFUU0FBSUFVUVRDQUFJQUlRT1FzZ0FTQUVJQUpCQVdvUVZRd0JDeEFYQUFzTElBTkJFR29rQUFzeEFDQUNLQUlBSVFJRFFBSkFJQUFnQVVjRWZ5QUFLQUlBSUFKSERRRWdBQVVnQVFzUEN5QUFRUVJxSVFBTUFBc0FDL2tEQVFGL0l3QkJFR3NpRENRQUlBd2dBRFlDREFKQUFrQWdBQ0FGUmdSQUlBRXRBQUJGRFFGQkFDRUFJQUZCQURvQUFDQUVJQVFvQWdBaUFVRUJhallDQUNBQlFTNDZBQUFnQnhBSlJRMENJQWtvQWdBaUFTQUlhMEdmQVVvTkFpQUtLQUlBSVFJZ0NTQUJRUVJxTmdJQUlBRWdBallDQUF3Q0N3SkFJQUFnQmtjTkFDQUhFQWxGRFFBZ0FTMEFBRVVOQVVFQUlRQWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQUNBSklBRkJCR28yQWdBZ0FTQUFOZ0lBUVFBaEFDQUtRUUEyQWdBTUFndEJmeUVBSUFzZ0MwR0FBV29nREVFTWFoRFNBU0FMYXlJRlFmd0FTZzBCSUFWQkFuVkI0TkFBYWkwQUFDRUdBa0FDUUNBRlFYdHhJZ0JCMkFCSEJFQWdBRUhnQUVjTkFTQURJQVFvQWdBaUFVY0VRRUYvSVFBZ0FVRUJheTBBQUVIZkFIRWdBaTBBQUVIL0FIRkhEUVVMSUFRZ0FVRUJhallDQUNBQklBWTZBQUJCQUNFQURBUUxJQUpCMEFBNkFBQU1BUXNnQWl3QUFDSUFJQVpCM3dCeFJ3MEFJQUlnQUVHQUFYSTZBQUFnQVMwQUFFVU5BQ0FCUVFBNkFBQWdCeEFKUlEwQUlBa29BZ0FpQUNBSWEwR2ZBVW9OQUNBS0tBSUFJUUVnQ1NBQVFRUnFOZ0lBSUFBZ0FUWUNBQXNnQkNBRUtBSUFJZ0JCQVdvMkFnQWdBQ0FHT2dBQVFRQWhBQ0FGUWRRQVNnMEJJQW9nQ2lnQ0FFRUJhallDQUF3QkMwRi9JUUFMSUF4QkVHb2tBQ0FBQzFBQkFuOGpBRUVRYXlJR0pBQWdCa0VJYWlJRklBRVFEeUFGRUR0QjROQUFRWURSQUNBQ0VHTWdBeUFGRUl3QklnRVFTRFlDQUNBRUlBRVFPRFlDQUNBQUlBRVFOeUFGRUE0Z0JrRVFhaVFBQ3pFQUlBSXRBQUFoQWdOQUFrQWdBQ0FCUndSL0lBQXRBQUFnQWtjTkFTQUFCU0FCQ3c4TElBQkJBV29oQUF3QUN3QUw3UU1CQVg4akFFRVFheUlNSkFBZ0RDQUFPZ0FQQWtBQ1FDQUFJQVZHQkVBZ0FTMEFBRVVOQVVFQUlRQWdBVUVBT2dBQUlBUWdCQ2dDQUNJQlFRRnFOZ0lBSUFGQkxqb0FBQ0FIRUFsRkRRSWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQWlBSklBRkJCR28yQWdBZ0FTQUNOZ0lBREFJTEFrQWdBQ0FHUncwQUlBY1FDVVVOQUNBQkxRQUFSUTBCUVFBaEFDQUpLQUlBSWdFZ0NHdEJud0ZLRFFJZ0NpZ0NBQ0VBSUFrZ0FVRUVhallDQUNBQklBQTJBZ0JCQUNFQUlBcEJBRFlDQUF3Q0MwRi9JUUFnQ3lBTFFTQnFJQXhCRDJvUTFRRWdDMnNpQlVFZlNnMEJJQVZCNE5BQWFpMEFBQ0VHQWtBQ1FBSkFBa0FnQlVGK2NVRVdhdzREQVFJQUFnc2dBeUFFS0FJQUlnRkhCRUFnQVVFQmF5MEFBRUhmQUhFZ0FpMEFBRUgvQUhGSERRVUxJQVFnQVVFQmFqWUNBQ0FCSUFZNkFBQkJBQ0VBREFRTElBSkIwQUE2QUFBTUFRc2dBaXdBQUNJQUlBWkIzd0J4UncwQUlBSWdBRUdBQVhJNkFBQWdBUzBBQUVVTkFDQUJRUUE2QUFBZ0J4QUpSUTBBSUFrb0FnQWlBQ0FJYTBHZkFVb05BQ0FLS0FJQUlRRWdDU0FBUVFScU5nSUFJQUFnQVRZQ0FBc2dCQ0FFS0FJQUlnQkJBV28yQWdBZ0FDQUdPZ0FBUVFBaEFDQUZRUlZLRFFFZ0NpQUtLQUlBUVFGcU5nSUFEQUVMUVg4aEFBc2dERUVRYWlRQUlBQUxVQUVDZnlNQVFSQnJJZ1lrQUNBR1FRaHFJZ1VnQVJBUElBVVFNa0hnMEFCQmdORUFJQUlRYnlBRElBVVFqZ0VpQVJCSU9nQUFJQVFnQVJBNE9nQUFJQUFnQVJBM0lBVVFEaUFHUVJCcUpBQUxmZ0lDZndKK0l3QkJvQUZySWdRa0FDQUVJQUUyQWp3Z0JDQUJOZ0lVSUFSQmZ6WUNHQ0FFUVJCcUlnVkNBQkJUSUFRZ0JTQURRUUVRNWdJZ0JDa0RDQ0VHSUFRcEF3QWhCeUFDQkVBZ0FpQUJJQVFvQWhRZ0JDZ0NpQUZxSUFRb0FqeHJhallDQUFzZ0FDQUhOd01BSUFBZ0JqY0RDQ0FFUWFBQmFpUUFDdzBBSUFBZ0FTQUNRbjhRMEFJTGlRSUFBa0FnQUFSL0lBRkIvd0JORFFFQ1FFSFloZ0VvQWdBb0FnQkZCRUFnQVVHQWYzRkJnTDhEUmcwRERBRUxJQUZCL3c5TkJFQWdBQ0FCUVQ5eFFZQUJjam9BQVNBQUlBRkJCblpCd0FGeU9nQUFRUUlQQ3lBQlFZQkFjVUdBd0FOSElBRkJnTEFEVDNGRkJFQWdBQ0FCUVQ5eFFZQUJjam9BQWlBQUlBRkJESFpCNEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBRkJBdzhMSUFGQmdJQUVhMEgvL3o5TkJFQWdBQ0FCUVQ5eFFZQUJjam9BQXlBQUlBRkJFblpCOEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBSWdBQ0FCUVF4MlFUOXhRWUFCY2pvQUFVRUVEd3NMUWRTQkFVRVpOZ0lBUVg4RlFRRUxEd3NnQUNBQk9nQUFRUUVMcndJQkJIOENmd0pBSUFBaUFVRURjUVJBQTBBZ0FTMEFBQ0lDUlNBQ1FUMUdjZzBDSUFGQkFXb2lBVUVEY1EwQUN3c0NRQ0FCS0FJQUlnSkJmM01nQWtHQmdvUUlhM0ZCZ0lHQ2hIaHhEUUFEUUNBQ1FiMzY5T2tEY3lJQ1FYOXpJQUpCZ1lLRUNHdHhRWUNCZ29SNGNRMEJJQUVvQWdRaEFpQUJRUVJxSVFFZ0FrR0Jnb1FJYXlBQ1FYOXpjVUdBZ1lLRWVIRkZEUUFMQ3dOQUlBRWlBaTBBQUNJREJFQWdBa0VCYWlFQklBTkJQVWNOQVFzTElBSU1BUXNnQVFzZ0FHc2lBa1VFUUVFQUR3c0NRQ0FBSUFKcUxRQUFEUUJCOUlZQktBSUFJZ0ZGRFFBZ0FTZ0NBQ0lEUlEwQUEwQUNRQ0FBSUFNZ0FoQytBVVVFUUNBQktBSUFJQUpxSWdNdEFBQkJQVVlOQVFzZ0FTZ0NCQ0VESUFGQkJHb2hBU0FERFFFTUFnc0xJQU5CQVdvaEJBc2dCQXZoQVFFQ2Z5QUNRUUJISVFNQ1FBSkFBa0FnQUVFRGNVVWdBa1Z5RFFBZ0FVSC9BWEVoQkFOQUlBQXRBQUFnQkVZTkFpQUNRUUZySWdKQkFFY2hBeUFBUVFGcUlnQkJBM0ZGRFFFZ0FnMEFDd3NnQTBVTkFRc0NRQ0FBTFFBQUlBRkIvd0Z4UmlBQ1FRUkpjZzBBSUFGQi93RnhRWUdDaEFoc0lRTURRQ0FBS0FJQUlBTnpJZ1JCZjNNZ0JFR0Jnb1FJYTNGQmdJR0NoSGh4RFFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN3c2dBa1VOQUNBQlFmOEJjU0VCQTBBZ0FTQUFMUUFBUmdSQUlBQVBDeUFBUVFGcUlRQWdBa0VCYXlJQ0RRQUxDMEVBQzljREFnSitBbjhqQUVFZ2F5SUVKQUFDUUNBQlF2Ly8vLy8vLy8vLy93Q0RJZ05DZ0lDQWdJQ0F3SUE4ZlNBRFFvQ0FnSUNBZ01EL3d3QjlWQVJBSUFGQ0JJWWdBRUk4aUlRaEF5QUFRdi8vLy8vLy8vLy9ENE1pQUVLQmdJQ0FnSUNBZ0FoYUJFQWdBMEtCZ0lDQWdJQ0FnTUFBZkNFQ0RBSUxJQU5DZ0lDQWdJQ0FnSUJBZlNFQ0lBQkNnSUNBZ0lDQWdJQUloVUlBVWcwQklBSWdBMElCZzN3aEFnd0JDeUFBVUNBRFFvQ0FnSUNBZ01ELy93QlVJQU5DZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQUZDQklZZ0FFSThpSVJDLy8vLy8vLy8vd09EUW9DQWdJQ0FnSUQ4L3dDRUlRSU1BUXRDZ0lDQWdJQ0FnUGovQUNFQ0lBTkMvLy8vLy8vL3YvL0RBRllOQUVJQUlRSWdBMEl3aUtjaUJVR1I5d0JKRFFBZ0JFRVFhaUFBSUFGQy8vLy8vLy8vUDROQ2dJQ0FnSUNBd0FDRUlnSWdCVUdCOXdCckVDOGdCQ0FBSUFKQmdmZ0FJQVZyRUh3Z0JDa0RDRUlFaGlBRUtRTUFJZ0JDUElpRUlRSWdCQ2tERUNBRUtRTVloRUlBVXEwZ0FFTC8vLy8vLy8vLy93K0RoQ0lBUW9HQWdJQ0FnSUNBQ0ZvRVFDQUNRZ0Y4SVFJTUFRc2dBRUtBZ0lDQWdJQ0FnQWlGUWdCU0RRQWdBa0lCZ3lBQ2ZDRUNDeUFFUVNCcUpBQWdBaUFCUW9DQWdJQ0FnSUNBZ0grRGhMOExSQUVCZnlNQVFSQnJJZ1VrQUNBRklBRWdBaUFESUFSQ2dJQ0FnSUNBZ0lDQWY0VVFQQ0FGS1FNQUlRRWdBQ0FGS1FNSU53TUlJQUFnQVRjREFDQUZRUkJxSkFBTHFRRUJBWHhFQUFBQUFBQUE4RDhoQVFKQUlBQkJnQWhPQkVCRUFBQUFBQUFBNEg4aEFTQUFRZjhQU0FSQUlBQkIvd2RySVFBTUFndEVBQUFBQUFBQThIOGhBU0FBUWYwWElBQkIvUmRJRzBIK0Qyc2hBQXdCQ3lBQVFZRjRTZzBBUkFBQUFBQUFBR0FESVFFZ0FFRzRjRW9FUUNBQVFja0hhaUVBREFFTFJBQUFBQUFBQUFBQUlRRWdBRUh3YUNBQVFmQm9TaHRCa2c5cUlRQUxJQUVnQUVIL0IycXRRalNHdjZJTHhBRUNBWDhDZmtGL0lRTUNRQ0FBUWdCU0lBRkMvLy8vLy8vLy8vLy9BSU1pQkVLQWdJQ0FnSURBLy84QVZpQUVRb0NBZ0lDQWdNRC8vd0JSR3cwQVFRQWdBa0wvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBQ0FFSUFXRWhGQUVRRUVBRHdzZ0FTQUNnMElBV1FSQVFRQWdBU0FDVXlBQklBSlJHdzBCSUFBZ0FTQUNoWVJDQUZJUEN5QUFRZ0JTSUFFZ0FsVWdBU0FDVVJzTkFDQUFJQUVnQW9XRVFnQlNJUU1MSUFNTGFRRUNmeUFBUWJ3b05nSUFJQUFvQWlnaEFRTkFJQUVFUUVFQUlBQWdBVUVCYXlJQlFRSjBJZ0lnQUNnQ0pHb29BZ0FnQUNnQ0lDQUNhaWdDQUJFSEFBd0JDd3NnQUVFY2FoQU9JQUFvQWlBUUVDQUFLQUlrRUJBZ0FDZ0NNQkFRSUFBb0Fqd1FFQ0FBQ3drQUlBQVFpZ0VRRUFzSkFDQUFFTGdCRUJBTERBQWdBRUVFYWhCK0dpQUFDd3dBSUFCQkNHb1FmaG9nQUF2L0x3RVJmeU1BUVNCckloTWtBQUovUWZRQkVCa2lDQVIvQWtBZ0NDSUdJQUFnQVVFRGRCQ0pBeUlBUVFCTURRQWdBRUVDZENFUEEwQWdCaUFSUVFKMElnZHFJZ0VvQWdBaENpQUJJQVlnRDBFQ2RDSVFhaUlCS0FJQU5nSUFJQUVnQ2pZQ0FDQUdJQWRCQkhKcUlnRW9BZ0FoQ2lBQklBWWdFRUVFY21vaUFTZ0NBRFlDQUNBQklBbzJBZ0FnQmlBSFFRaHlhaUlCS0FJQUlRb2dBU0FHSUJCQkNISnFJZ0VvQWdBMkFnQWdBU0FLTmdJQUlBWWdCMEVNY21vaUFTZ0NBQ0VLSUFFZ0JpQVFRUXh5YWlJQktBSUFOZ0lBSUFFZ0NqWUNBQ0FSUVFScUloRWdEMEVFYXlJUFNBMEFDMEVCSVJFZ0FFRUJUQTBBQTBBZ0JrRVFhaUVHUVFBaER3TkFJQVlnRDBFQ2RHb2lBU0FCS0FJQUlnRkJEblpCL0FkeFFZQUlhaWdDQUVFR2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBQlFSWjJRZndIY1VHQUNHb29BZ0JCQm5aQi9BZHhRWUFRYWlnQ0FITWdBVUVHZGtIOEIzRkJnQWhxS0FJQVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUJRZjhCY1VFQ2RFR0FDR29vQWdCQkJuWkIvQWR4UVlBUWFpZ0NBRUVZRUFoek5nSUFJQTlCQVdvaUQwRUVSdzBBQ3lBUlFRRnFJaEVnQUVjTkFBc0xJQUJCQUVnRVFDQUlFQkJCQUF3Q0N5QUlJQUEyQXZBQklBZ0ZRUUFMQ3lJQUJIOGdFeUFDS1FBQU53TVFJQk1nQWlrQUNEY0RHQ0FFUVJCUEJFQWdCRUVFZGlFVlFRQWhBUU5BSUJNZ0F5a0FBRGNEQUNBVElBTXBBQWczQXdnZ0FDZ0M4QUVoRkNBQUtBSU1JQU1vQUF3aUFrRVlkQ0FDUVFoMFFZQ0EvQWR4Y2lBQ1FRaDJRWUQrQTNFZ0FrRVlkbkp5Y3lJUFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSSWdBQ2dDQ0NBREtBQUlJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNuTWlFVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VPSUFBb0FnUWdBeWdBQkNJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkp6SWdkQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaENTQUFLQUlBSUFNb0FBQWlBa0VZZENBQ1FRaDBRWUNBL0FkeGNpQUNRUWgyUVlEK0EzRWdBa0VZZG5KeWN5SUxRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUkFnRDBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFS0lCRkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCaUFIUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVFnZ0MwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUVJQTlCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQWlBUlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBOUJGblpCL0FkeFFZQVFhaWdDQUhNZ0IwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdDMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ0hITWlERUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VQSUFBb0FoZ2dBaUFFSUFnZ0VVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SU5RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnQUNnQ0ZDQUdJQW9nRUNBSFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnVkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCeUFBS0FJUUlBa2dEaUFTSUF0QkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUMwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVFJQXhCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQ2lBTlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRWWdCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VJSUF0QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEJDQU1RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUUlnRFVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBTVFSWjJRZndIY1VHQUVHb29BZ0J6SUFWQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBdEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQWl4eklneEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFaUFBS0FJb0lBSWdCQ0FJSUExQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaURVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRU9JQUFvQWlRZ0JpQUtJQkFnQlVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJRlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRa2dBQ2dDSUNBSElCRWdEeUFMUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWd0QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVDQU1RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUW9nRFVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFR0lBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hDQ0FMUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFRZ0RFSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUNJQTFCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnREVFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFGUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBTFFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUk4Y3lJTVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlROGdBQ2dDT0NBQ0lBUWdDQ0FOUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWcxQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQUFLQUkwSUFZZ0NpQVFJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQlVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBQW9BakFnQ1NBT0lCSWdDMEVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlMUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJBZ0RFRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUtJQTFCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQmlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlRZ2dDMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VFSUF4Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEFpQU5RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQXhCRm5aQi9BZHhRWUFRYWlnQ0FITWdCVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQzBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NUSE1pREVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFU0lBQW9Ba2dnQWlBRUlBZ2dEVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlOUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVE0Z0FDZ0NSQ0FHSUFvZ0VDQUZRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1ZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQ1NBQUtBSkFJQWNnRVNBUElBdEJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlDMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUF4QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU5RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBdEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FNUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQU1RUloyUWZ3SGNVR0FFR29vQWdCeklBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQXRCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FseHpJZ3hCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRHlBQUtBSllJQUlnQkNBSUlBMUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlEVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VSSUFBb0FsUWdCaUFLSUJBZ0JVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQUNnQ1VDQUpJQTRnRWlBTFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklndEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FNUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQVZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBTFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdERUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUExQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0RFRVdka0g4QjNGQmdCQnFLQUlBY3lBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUxRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FKc2N5SU1RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUklnQUNnQ2FDQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnMUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hEaUFBS0FKa0lBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUJVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUpJQUFvQW1BZ0J5QVJJQThnQzBFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdERUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUExQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQUZRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQzBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBeEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFOUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUF4QkZuWkIvQWR4UVlBUWFpZ0NBSE1nQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0MwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDZkhNaURFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQUFvQW5nZ0FpQUVJQWdnRFVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlSRWdBQ2dDZENBR0lBb2dFQ0FGUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJ5QUFLQUp3SUFrZ0RpQVNJQXRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pRGtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBeEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFOUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQTVCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBTVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FNUVJaMlFmd0hjVUdBRUdvb0FnQnpJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUE1Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9Bb3dCY3lJSlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBQW9Bb0FCSUFjZ0VTQVBJQTVCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQjBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFBS0FLSUFTQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnUkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQUFvQW9RQklBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUFrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDa0FGeklRVWdCMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FDUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWxCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFSQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcFFCY3lFU0lBSkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dCRUVXZGtIOEIzRkJnQkJxS0FJQWN5QUhRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS1lBWE1oRGdKL0lBUkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dDVUVXZGtIOEIzRkJnQkJxS0FJQWN5QUNRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS2NBWE1pQ1NBVVFRdElEUUFhSUFsQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaER5QU9RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnRWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FKUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQkpCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdDVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUE1QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0NVRVdka0g4QjNGQmdCQnFLQUlBY3lBU1FRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLc0FYTWlDVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FBS0FLZ0FTQUhJQkVnRHlBRlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnZEJGblpCL0FkeFFZQVFhaWdDQUhNZ0FDZ0NxQUVnQWlBRUlBZ2dEa0VXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlFUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBQUtBS2tBU0FHSUFvZ0VDQVNRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ0pCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FyQUJjeUVGSUFkQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0FrRVdka0g4QjNGQmdCQnFLQUlBY3lBSlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUVRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLMEFYTWhFaUFDUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFSQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQjBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0NVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDdUFGeklRNGdCRUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FKUVJaMlFmd0hjVUdBRUdvb0FnQnpJQUpCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFkQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcndCY3lJSklCUkJEVWdOQUJvZ0NVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQTVCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoRVNBU1FmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRY2dCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUFsQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU9RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnRWtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RrRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUpRUloyUWZ3SGNVR0FFR29vQWdCeklCSkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0Fzd0JjeUlKUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFBb0FzQUJJQWNnRVNBUElBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCMEVXZGtIOEIzRkJnQkJxS0FJQWN5QUFLQUxJQVNBQ0lBUWdDQ0FPUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdSQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBQW9Bc1FCSUFZZ0NpQVFJQkpCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0MwQUZ6SVFVZ0IwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUNRUloyUWZ3SGNVR0FFR29vQWdCeklBbEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVJCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0F0UUJjeUVTSUFKQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0JFRVdka0g4QjNGQmdCQnFLQUlBY3lBSFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUpRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FMWUFYTWhEaUFFUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFsQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQWtFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDM0FGekN5RUlJQU1nQUNBVVFRUjBhaUlFS0FJQUlCSkIvd0Z4UVlBWWFpMEFBQ0FJUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnQlVFWWRrR0FHR290QUFCQkdIUnlJQTVCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUFBZ0F5QUVLQUlFSUE1Qi93RnhRWUFZYWkwQUFDQUZRUkIyUWY4QmNVR0FHR290QUFCQkVIUWdFa0VZZGtHQUdHb3RBQUJCR0hSeUlBaEJDSFpCL3dGeFFZQVlhaTBBQUVFSWRISnljeUlDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSTJBQVFnQXlBRUtBSUlJQWhCL3dGeFFZQVlhaTBBQUNBU1FSQjJRZjhCY1VHQUdHb3RBQUJCRUhRZ0RrRVlka0dBR0dvdEFBQkJHSFJ5SUFWQkNIWkIvd0Z4UVlBWWFpMEFBRUVJZEhKeWN5SUNRUmgwSUFKQkNIUkJnSUQ4QjNGeUlBSkJDSFpCZ1A0RGNTQUNRUmgyY25JMkFBZ2dBeUFFS0FJTUlBVkIvd0Z4UVlBWWFpMEFBQ0FPUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnQ0VFWWRrR0FHR290QUFCQkdIUnlJQkpCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUF4QkFDRUNBMEFnQWlBRGFpSUVJQVF0QUFBZ0UwRVFhaUFDYWkwQUFITTZBQUFnQWtFQmFpSUNRUkJIRFFBTElCTWdFeWtEQ0RjREdDQVRJQk1wQXdBM0F4QWdBMEVRYWlFRElBRkJBV29pQVNBVlJ3MEFDd3NnQUJBUVFRQUZRWDhMR2lBVFFTQnFKQUFMbGdFQkFuOGpBRUVRYXlJQUpBQUNRQ0FBUVF4cUlBQkJDR29RQXcwQVFmU0dBU0FBS0FJTVFRSjBRUVJxRUJraUFUWUNBQ0FCUlEwQUlBQW9BZ2dRR1NJQkJFQkI5SVlCS0FJQUlBQW9BZ3hCQW5ScVFRQTJBZ0JCOUlZQktBSUFJQUVRQWtVTkFRdEI5SVlCUVFBMkFnQUxJQUJCRUdva0FFSElnUUZCdlI0UVZCcEIySVlCUWVpRkFUWUNBRUdRaGdGQktqWUNBQXRaQVFGL0lBQWdBQ2dDU0NJQlFRRnJJQUZ5TmdKSUlBQW9BZ0FpQVVFSWNRUkFJQUFnQVVFZ2NqWUNBRUYvRHdzZ0FFSUFOd0lFSUFBZ0FDZ0NMQ0lCTmdJY0lBQWdBVFlDRkNBQUlBRWdBQ2dDTUdvMkFoQkJBQXQ4QVFKL0lBQWdBQ2dDU0NJQlFRRnJJQUZ5TmdKSUlBQW9BaFFnQUNnQ0hFY0VRQ0FBUVFCQkFDQUFLQUlrRVFRQUdnc2dBRUVBTmdJY0lBQkNBRGNERUNBQUtBSUFJZ0ZCQkhFRVFDQUFJQUZCSUhJMkFnQkJmdzhMSUFBZ0FDZ0NMQ0FBS0FJd2FpSUNOZ0lJSUFBZ0FqWUNCQ0FCUVJ0MFFSOTFDOVVDQVFKL0FrQWdBQ0FCUmcwQUlBRWdBQ0FDYWlJRWEwRUFJQUpCQVhSclRRUkFJQUFnQVNBQ0VFSWFEd3NnQUNBQmMwRURjU0VEQWtBQ1FDQUFJQUZKQkVBZ0F3MENJQUJCQTNGRkRRRURRQ0FDUlEwRUlBQWdBUzBBQURvQUFDQUJRUUZxSVFFZ0FrRUJheUVDSUFCQkFXb2lBRUVEY1EwQUN3d0JDd0pBSUFNTkFDQUVRUU54QkVBRFFDQUNSUTBGSUFBZ0FrRUJheUlDYWlJRElBRWdBbW90QUFBNkFBQWdBMEVEY1EwQUN3c2dBa0VEVFEwQUEwQWdBQ0FDUVFScklnSnFJQUVnQW1vb0FnQTJBZ0FnQWtFRFN3MEFDd3NnQWtVTkFnTkFJQUFnQWtFQmF5SUNhaUFCSUFKcUxRQUFPZ0FBSUFJTkFBc01BZ3NnQWtFRFRRMEFBMEFnQUNBQktBSUFOZ0lBSUFGQkJHb2hBU0FBUVFScUlRQWdBa0VFYXlJQ1FRTkxEUUFMQ3lBQ1JRMEFBMEFnQUNBQkxRQUFPZ0FBSUFCQkFXb2hBQ0FCUVFGcUlRRWdBa0VCYXlJQ0RRQUxDd3NVQUNBQVFReHFJZ0FnQUJDVUFVRUJhaENUQVF1TERBRUdmeUFBSUFGcUlRVUNRQUpBSUFBb0FnUWlBa0VCY1EwQUlBSkJBM0ZGRFFFZ0FDZ0NBQ0lDSUFGcUlRRUNRQ0FBSUFKcklnQkI3SUVCS0FJQVJ3UkFJQUpCL3dGTkJFQWdBQ2dDQ0NJRUlBSkJBM1lpQWtFRGRFR0FnZ0ZxUmhvZ0FDZ0NEQ0lESUFSSERRSkIySUVCUWRpQkFTZ0NBRUYrSUFKM2NUWUNBQXdEQ3lBQUtBSVlJUVlDUUNBQUlBQW9BZ3dpQTBjRVFDQUFLQUlJSWdKQjZJRUJLQUlBU1JvZ0FpQUROZ0lNSUFNZ0FqWUNDQXdCQ3dKQUlBQkJGR29pQWlnQ0FDSUVEUUFnQUVFUWFpSUNLQUlBSWdRTkFFRUFJUU1NQVFzRFFDQUNJUWNnQkNJRFFSUnFJZ0lvQWdBaUJBMEFJQU5CRUdvaEFpQURLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBDQWtBZ0FDQUFLQUljSWdSQkFuUkJpSVFCYWlJQ0tBSUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQjNJRUJRZHlCQVNnQ0FFRitJQVIzY1RZQ0FBd0VDeUFHUVJCQkZDQUdLQUlRSUFCR0cyb2dBellDQUNBRFJRMERDeUFESUFZMkFoZ2dBQ2dDRUNJQ0JFQWdBeUFDTmdJUUlBSWdBellDR0FzZ0FDZ0NGQ0lDUlEwQ0lBTWdBallDRkNBQ0lBTTJBaGdNQWdzZ0JTZ0NCQ0lDUVFOeFFRTkhEUUZCNElFQklBRTJBZ0FnQlNBQ1FYNXhOZ0lFSUFBZ0FVRUJjallDQkNBRklBRTJBZ0FQQ3lBRUlBTTJBZ3dnQXlBRU5nSUlDd0pBSUFVb0FnUWlBa0VDY1VVRVFDQUZRZkNCQVNnQ0FFWUVRRUh3Z1FFZ0FEWUNBRUhrZ1FGQjVJRUJLQUlBSUFGcUlnRTJBZ0FnQUNBQlFRRnlOZ0lFSUFCQjdJRUJLQUlBUncwRFFlQ0JBVUVBTmdJQVFleUJBVUVBTmdJQUR3c2dCVUhzZ1FFb0FnQkdCRUJCN0lFQklBQTJBZ0JCNElFQlFlQ0JBU2dDQUNBQmFpSUJOZ0lBSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBUEN5QUNRWGh4SUFGcUlRRUNRQ0FDUWY4QlRRUkFJQVVvQWdnaUJDQUNRUU4ySWdKQkEzUkJnSUlCYWtZYUlBUWdCU2dDRENJRFJnUkFRZGlCQVVIWWdRRW9BZ0JCZmlBQ2QzRTJBZ0FNQWdzZ0JDQUROZ0lNSUFNZ0JEWUNDQXdCQ3lBRktBSVlJUVlDUUNBRklBVW9BZ3dpQTBjRVFDQUZLQUlJSWdKQjZJRUJLQUlBU1JvZ0FpQUROZ0lNSUFNZ0FqWUNDQXdCQ3dKQUlBVkJGR29pQkNnQ0FDSUNEUUFnQlVFUWFpSUVLQUlBSWdJTkFFRUFJUU1NQVFzRFFDQUVJUWNnQWlJRFFSUnFJZ1FvQWdBaUFnMEFJQU5CRUdvaEJDQURLQUlRSWdJTkFBc2dCMEVBTmdJQUN5QUdSUTBBQWtBZ0JTQUZLQUljSWdSQkFuUkJpSVFCYWlJQ0tBSUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQjNJRUJRZHlCQVNnQ0FFRitJQVIzY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFWR0cyb2dBellDQUNBRFJRMEJDeUFESUFZMkFoZ2dCU2dDRUNJQ0JFQWdBeUFDTmdJUUlBSWdBellDR0FzZ0JTZ0NGQ0lDUlEwQUlBTWdBallDRkNBQ0lBTTJBaGdMSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBZ0FFSHNnUUVvQWdCSERRRkI0SUVCSUFFMkFnQVBDeUFGSUFKQmZuRTJBZ1FnQUNBQlFRRnlOZ0lFSUFBZ0FXb2dBVFlDQUFzZ0FVSC9BVTBFUUNBQlFRTjJJZ0pCQTNSQmdJSUJhaUVCQW45QjJJRUJLQUlBSWdOQkFTQUNkQ0lDY1VVRVFFSFlnUUVnQWlBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFJZ0FTQUFOZ0lJSUFJZ0FEWUNEQ0FBSUFFMkFnd2dBQ0FDTmdJSUR3dEJIeUVDSUFCQ0FEY0NFQ0FCUWYvLy93ZE5CRUFnQVVFSWRpSUNJQUpCZ1A0L2FrRVFka0VJY1NJRWRDSUNJQUpCZ09BZmFrRVFka0VFY1NJRGRDSUNJQUpCZ0lBUGFrRVFka0VDY1NJQ2RFRVBkaUFESUFSeUlBSnlheUlDUVFGMElBRWdBa0VWYW5aQkFYRnlRUnhxSVFJTElBQWdBallDSENBQ1FRSjBRWWlFQVdvaEJ3SkFBa0JCM0lFQktBSUFJZ1JCQVNBQ2RDSURjVVVFUUVIY2dRRWdBeUFFY2pZQ0FDQUhJQUEyQWdBZ0FDQUhOZ0lZREFFTElBRkJBRUVaSUFKQkFYWnJJQUpCSDBZYmRDRUNJQWNvQWdBaEF3TkFJQU1pQkNnQ0JFRjRjU0FCUmcwQ0lBSkJIWFloQXlBQ1FRRjBJUUlnQkNBRFFRUnhhaUlIUVJCcUtBSUFJZ01OQUFzZ0J5QUFOZ0lRSUFBZ0JEWUNHQXNnQUNBQU5nSU1JQUFnQURZQ0NBOExJQVFvQWdnaUFTQUFOZ0lNSUFRZ0FEWUNDQ0FBUVFBMkFoZ2dBQ0FFTmdJTUlBQWdBVFlDQ0FzTFpBQWdBQ0FCUWlpR1FvQ0FnSUNBZ01EL0FJTWdBVUk0aG9RZ0FVSVloa0tBZ0lDQWdPQS9neUFCUWdpR1FvQ0FnSUR3SDRPRWhDQUJRZ2lJUW9DQWdQZ1BneUFCUWhpSVFvQ0EvQWVEaENBQlFpaUlRb0QrQTRNZ0FVSTRpSVNFaERjQUFBc1BBQ0FBS0FJTUdpQUFRUUEyQWd3TGh3RUJCSDhqQUVFUWF5SUZKQUFqQUVFUWF5SURKQUFDUUNBQlFXOU5CRUFDUUNBQlFRcE5CRUFnQUNBQkVEb2dBQ0VFREFFTElBQWdBUkNSQVVFQmFpSUdFRjhpQkJCTklBQWdCaEJNSUFBZ0FSQTVDeUFFSUFFZ0FoRDNBU0FEUVFBNkFBOGdBU0FFYWlBRFFROXFFRFFnQTBFUWFpUUFEQUVMRUJjQUN5QUZRUkJxSkFBZ0FBdFZBUUovSUFBb0FnUWhCQUovUVFBZ0FrVU5BQm9nQkVFSWRTSUZJQVJCQVhGRkRRQWFJQUlvQWdBZ0JSREZBUXNoQlNBQUtBSUFJZ0FnQVNBQ0lBVnFJQU5CQWlBRVFRSnhHeUFBS0FJQUtBSWNFUWdBQ3cwQUlBQW9BZ0FnQVNnQ0FFa0xJd0FnQUVFQU5nSU1JQUFnQVRZQ0JDQUFJQUUyQWdBZ0FDQUJRUUZxTmdJSUlBQUx1d0VCQTM4akFFRVFheUlGSkFBZ0FrSHYvLy8vQXlJR0lBRnJUUVJBSUFBUURTRUhJQUFDZnlBQklBWkJBWFpCRUd0SkJFQWdCU0FCUVFGME5nSUlJQVVnQVNBQ2FqWUNEQ0FGUVF4cUlBVkJDR29RZGlnQ0FCQ0NBUXdCQ3lBR1FRRnJDMEVCYWlJR0VJRUJJUUlnQkFSQUlBSWdCeUFFRUhFTElBTWdCR3NpQXdSQUlBUkJBblFpQkNBQ2FpQUVJQWRxSUFNUWNRc2dBVUVCUndSQUlBY1FFQXNnQUNBQ0VFMGdBQ0FHRUV3Z0JVRVFhaVFBRHdzUUZ3QUxoQUlCQTM4akFFRVFheUlJSkFBZ0FrSHYvLy8vQXlJSklBRkJmM05xVFFSQUlBQVFEU0VLSUFBQ2Z5QUJJQWxCQVhaQkVHdEpCRUFnQ0NBQlFRRjBOZ0lJSUFnZ0FTQUNhallDRENBSVFReHFJQWhCQ0dvUWRpZ0NBQkNDQVF3QkN5QUpRUUZyQzBFQmFpSUpFSUVCSVFJZ0JBUkFJQUlnQ2lBRUVIRUxJQVlFUUNBRVFRSjBJQUpxSUFjZ0JoQnhDeUFESUFRZ0JXcHJJZ01FUUNBRVFRSjBJZ2NnQW1vZ0JrRUNkR29nQnlBS2FpQUZRUUowYWlBREVIRUxJQUZCQVVjRVFDQUtFQkFMSUFBZ0FoQk5JQUFnQ1JCTUlBQWdCQ0FHYWlBRGFpSUFFRGtnQ0VFQU5nSUVJQUlnQUVFQ2RHb2dDRUVFYWhBeklBaEJFR29rQUE4TEVCY0FDMWdCQTM5QnlJRUJFQTBoQTBISWdRRVFDU0VCSXdCQkVHc2lBaVFBSUFJZ0FEb0FEMEYvSVFBZ0FRUkFJQUVFZnlBRElBSXNBQThRWlNBQkVOd0JCVUVBQ3lJQUlBTnJRWDhnQUJzaEFBc2dBa0VRYWlRQUlBQUxjQUVEZnlNQVFSQnJJZ01rQUNBQ1FXOU5CRUFDUUNBQ1FRcE5CRUFnQUNBQ0VEb2dBQ0VFREFFTElBQWdBaENSQVVFQmFpSUZFRjhpQkJCTklBQWdCUkJNSUFBZ0FoQTVDeUFFSUFFZ0FoQlZJQU5CQURvQUR5QUNJQVJxSUFOQkQyb1FOQ0FEUVJCcUpBQVBDeEFYQUFzU0FDQUJCRUFnQUNBQ0VHVWdBUkJHR2dzTDdBRUJBMzhqQUVFUWF5SUlKQUFnQWtGdklna2dBVUYvYzJwTkJFQWdBQkFOSVFvQ2Z5QUJJQWxCQVhaQkVHdEpCRUFnQ0NBQlFRRjBOZ0lJSUFnZ0FTQUNhallDRENBSVFReHFJQWhCQ0dvUWRpZ0NBQkNSQVF3QkN5QUpRUUZyQzBFQmFpSUpFRjhoQWlBRUJFQWdBaUFLSUFRUVZRc2dCZ1JBSUFJZ0JHb2dCeUFHRUZVTElBTWdCQ0FGYW1zaUF3UkFJQUlnQkdvZ0Jtb2dCQ0FLYWlBRmFpQURFRlVMSUFGQkNrY0VRQ0FLRUJBTElBQWdBaEJOSUFBZ0NSQk1JQUFnQkNBR2FpQURhaUlBRURrZ0NFRUFPZ0FISUFBZ0Ftb2dDRUVIYWhBMElBaEJFR29rQUE4TEVCY0FDeVFCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lJSUFFb0FnZ2hBQ0FCUVJCcUpBQWdBQXNKQUNBQUVCWTJBZ0FMS3dFQmZ5QUFLQUlFSVFJRFFDQUJJQUpIQkVBZ0FCQjBHaUFDUVFScklRSU1BUXNMSUFBZ0FUWUNCQXNxQUNNQVFSQnJJZ0lrQUFKQUlBQWdBVVlFUUNBQVFRQTZBSGdNQVFzZ0FSQVFDeUFDUVJCcUpBQUxIQUFnQVVILy8vLy9BMHNFUUVINEhCQ1dBZ0FMSUFGQkFuUVFYd3NKQUNBQlFRQTJBZ0FMTmdCQnNKVUJLQUlBR2tHd2xRRW9BZ0JCc0pVQkVITkJBblJxR2tHd2xRRW9BZ0JCc0pVQkVITkJBblJxR2tHd2xRRW9BZ0FhQ3owQkFYOGpBRUVRYXlJQ0pBQUNRQ0FBTFFCNElBRkJIa3R5UlFSQUlBQkJBVG9BZUF3QkN5QUNRUWhxSUFFUS9RRWhBQXNnQWtFUWFpUUFJQUFMUlFFQ2Z5TUFRUkJySWdBa0FFR3dsUUVRZEJvZ0FFSC8vLy8vQXpZQ0RDQUFRZi8vLy84SE5nSUlJQUJCREdvZ0FFRUlhaENpQVNnQ0FDRUJJQUJCRUdva0FDQUJDd2tBSUFBUXlnRVFFQXNuQUNBRElBTW9BZ0FnQWlBQmF5SUFheUlDTmdJQUlBQkJBRW9FUUNBQ0lBRWdBQkJDR2dzTEVBQWdBQ0FCRU0wQklBQWdBallDQkF2SUFRRUVmeU1BUVNCcklnVWtBQ0FGSUFFcEFBQTNBeEFnQlNBQktRQUlOd01ZQWtBZ0EwRVFTUVJBSUFJaEFRd0JDeUFEUVFSMklRY2dBaUVCQTBBZ0FDQUZRUkJxSWdnZ0JCQ25BU0FFSUFFUW5RRWdCRUVRYWlFRUlBRkJFR29oQVNBSUVPc0JJQVpCQVdvaUJpQUhSdzBBQ3dzZ0FpQURhaUFCYXlJQ0JFQWdBQ0FGUVJCcUlBVVFwd0ZCQUNFR0EwQWdCQ0FGSUFacUxRQUFJQUV0QUFCek9nQUFJQVJCQVdvaEJDQUJRUUZxSVFFZ0JrRUJhaUlHSUFKSERRQUxDeUFGUVNCcUpBQUxGUUFnQUVINDB3QTJBZ0FnQUVFUWFoQUtHaUFBQ3hVQUlBQkIwTk1BTmdJQUlBQkJER29RQ2hvZ0FBc0VBRUVFQ3c4QUlBQW9BZ0FnQUNnQ0JEWUNCQXRBQVFKL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQlFRaHFJQUZCREdvUVVpRUFRUVJCQVVIWWhnRW9BZ0FvQWdBYklRSWdBQkJSSUFGQkVHb2tBQ0FDQ3p3QkFYOGpBRUVRYXlJRkpBQWdCU0FFTmdJTUlBVkJDR29nQlVFTWFoQlNJUVFnQUNBQklBSWdBeEMzQVNFQUlBUVFVU0FGUVJCcUpBQWdBQXNNQUNBQklBSXRBQUE2QUFBTEVnQWdCQ0FDTmdJQUlBY2dCVFlDQUVFREN5Z0JBWDhnQUVIczBnQTJBZ0FDUUNBQUtBSUlJZ0ZGRFFBZ0FDMEFERVVOQUNBQkVCQUxJQUFMNUFrQkFYOENRRUgwaUFFdEFBQkJBWEVOQUVIMGlBRVFKRVVOQUFKQVFlaUlBUzBBQUVFQmNRMEFRZWlJQVJBa1JRMEFRYWlWQVJBYlFhaVZBVUhZMGdBMkFnQWpBRUVRYXlJQkpBQkJzSlVCUWdBM0F3QWdBVUVBTmdJTVFiaVZBU0FCUVF4cUVNMEJRYmlXQVVFQU9nQUFJQUZCRUdva0FCQ0JBa0VlU1FSQUVCY0FDMEd3bFFGQnNKVUJFSFJCSGhDQUFpSUJOZ0lBUWJTVkFTQUJOZ0lBUWJDVkFSQkRJQUZCK0FCcU5nSUFRUUFRL3dGQkhoQ1hBa0hBbGdGQm1oNFFWQnBCc0pVQkVGQWhBVUd3bFFFUWxRSkJzSlVCSUFFUWxBSkI4SklCRUJ0QjhKSUJRWVRkQURZQ0FFSHdrZ0ZCdUljQkVCb1FIRUg0a2dFUUcwSDRrZ0ZCcE4wQU5nSUFRZmlTQVVIQWh3RVFHaEFjUVlDVEFSQWJRWXlUQVVFQU9nQUFRWWlUQVVFQU5nSUFRWUNUQVVIczBnQTJBZ0JCaUpNQlFiQXlLQUlBTmdJQVFZQ1RBVUdFaVFFUUdoQWNRWkNUQVJBYlFaQ1RBVUhRMWdBMkFnQkJrSk1CUWZ5SUFSQWFFQnhCbUpNQkVCdEJtSk1CUWVUWEFEWUNBRUdZa3dGQmpJa0JFQm9RSEVHZ2t3RVFHMEdna3dGQm9OTUFOZ0lBUWFpVEFSQVdOZ0lBUWFDVEFVR1VpUUVRR2hBY1FiQ1RBUkFiUWJDVEFVSDQyQUEyQWdCQnNKTUJRWnlKQVJBYUVCeEJ1Sk1CRUJ0QnVKTUJRZXpaQURZQ0FFRzRrd0ZCcElrQkVCb1FIRUhBa3dFUUcwSElrd0ZCcnRnQU93RUFRY0NUQVVIUTB3QTJBZ0JCekpNQkVCRWFRY0NUQVVHc2lRRVFHaEFjUWRpVEFSQWJRZUNUQVVLdWdJQ0F3QVUzQWdCQjJKTUJRZmpUQURZQ0FFSG9rd0VRRVJwQjJKTUJRYlNKQVJBYUVCeEIrSk1CRUJ0QitKTUJRY1RkQURZQ0FFSDRrd0ZCeUljQkVCb1FIRUdBbEFFUUcwR0FsQUZCdU44QU5nSUFRWUNVQVVIUWh3RVFHaEFjUVlpVUFSQWJRWWlVQVVHTTRRQTJBZ0JCaUpRQlFkaUhBUkFhRUJ4QmtKUUJFQnRCa0pRQlFmVGlBRFlDQUVHUWxBRkI0SWNCRUJvUUhFR1lsQUVRRzBHWWxBRkJ6T29BTmdJQVFaaVVBVUdJaUFFUUdoQWNRYUNVQVJBYlFhQ1VBVUhnNndBMkFnQkJvSlFCUVpDSUFSQWFFQnhCcUpRQkVCdEJxSlFCUWRUc0FEWUNBRUdvbEFGQm1JZ0JFQm9RSEVHd2xBRVFHMEd3bEFGQnlPMEFOZ0lBUWJDVUFVR2dpQUVRR2hBY1FiaVVBUkFiUWJpVUFVRzg3Z0EyQWdCQnVKUUJRYWlJQVJBYUVCeEJ3SlFCRUJ0QndKUUJRZUR2QURZQ0FFSEFsQUZCc0lnQkVCb1FIRUhJbEFFUUcwSElsQUZCaFBFQU5nSUFRY2lVQVVHNGlBRVFHaEFjUWRDVUFSQWJRZENVQVVHbzhnQTJBZ0JCMEpRQlFjQ0lBUkFhRUJ4QjJKUUJFQnRCNEpRQlFaRDhBRFlDQUVIWWxBRkJ2T1FBTmdJQVFlQ1VBVUhzNUFBMkFnQkIySlFCUWVpSEFSQWFFQnhCNkpRQkVCdEI4SlFCUWJUOEFEWUNBRUhvbEFGQnhPWUFOZ0lBUWZDVUFVSDA1Z0EyQWdCQjZKUUJRZkNIQVJBYUVCeEIrSlFCRUJ0QmdKVUJFUG9CUWZpVUFVR3c2QUEyQWdCQitKUUJRZmlIQVJBYUVCeEJpSlVCRUJ0QmtKVUJFUG9CUVlpVkFVSE02UUEyQWdCQmlKVUJRWUNJQVJBYUVCeEJtSlVCRUJ0Qm1KVUJRY3p6QURZQ0FFR1lsUUZCeUlnQkVCb1FIRUdnbFFFUUcwR2dsUUZCeFBRQU5nSUFRYUNWQVVIUWlBRVFHaEFjUWVDSUFVR29sUUUyQWdCQjVJZ0JRZUNJQVRZQ0FFSG9pQUVRSXd0QjdJZ0JRZVNJQVNnQ0FCQ1FBa0h3aUFGQjdJZ0JOZ0lBUWZTSUFSQWpDeUFBUWZDSUFTZ0NBQ2dDQUNJQU5nSUFJQUFRemdFTEV3QWdBQ0FCS0FJQUlnQTJBZ0FnQUJET0FRc3lBQ0FBS0FJQUdpQUFLQUlBSUFBUWMwRUNkR29hSUFBb0FnQWdBQkJRUVFKMGFob2dBQ2dDQUNBQUVITkJBblJxR2dzVEFDQUFJQUFvQWdCQkFXc2lBRFlDQUNBQUMyOEJBbjhnQUVIWTBnQTJBZ0FnQUVFSWFpRUJBMEFnQVJCUUlBSkxCRUFnQVNBQ0VIY29BZ0FFUUNBQklBSVFkeWdDQUJDakFRc2dBa0VCYWlFQ0RBRUxDeUFBUVpnQmFoQUtHaUFCRUpFQ0lBRW9BZ0FFUUNBQkVKVUNJQUVRZENBQktBSUFJQUVRY3hEOEFRc2dBQXNxQUNBQUtBSUFHaUFBS0FJQUlBQVFjMEVDZEdvYUlBQW9BZ0FhSUFBb0FnQWdBQkJRUVFKMGFob0xEQUFnQUNBQUtBSUFFUHNCQzJJQkEzOUJDQkFISWdGQjBQOEFOZ0lBSUFGQi9QOEFOZ0lBSUFBUWtnRWlBa0VOYWhCZklnTkJBRFlDQ0NBRElBSTJBZ1FnQXlBQ05nSUFJQUVnQTBFTWFpQUFJQUpCQVdvUVFqWUNCQ0FCUWF5QUFUWUNBQ0FCUWN5QUFVRURFQVlBQzNJQkEzOGpBRUVRYXlJQkpBQWdBVUd3bFFFMkFnQWdBVUcwbFFFb0FnQWlBallDQkNBQklBSWdBRUVDZEdvMkFnZ2dBU0lES0FJRUlRQWdBeWdDQ0NFQ0EwQWdBQ0FDUmdSQUlBTVFpUUlnQVVFUWFpUUFCVUd3bFFFUWRDQUFFUDRCSUFNZ0FFRUVhaUlBTmdJRURBRUxDd3NnQUNBQVFhRFRBRFlDQUNBQUtBSUlFQlpIQkVBZ0FDZ0NDQkRVQWdzZ0FBc0VBRUYvQytJRkFRcC9Jd0JCRUdzaUV5UUFJQUlnQURZQ0FDQURRWUFFY1NFVklBZEJBblFoRmdOQUlCUkJCRVlFUUNBTkVBbEJBVXNFUUNBVElBMFFRRFlDQ0NBQ0lCTkJDR3BCQVJDZkFpQU5FR3dnQWlnQ0FCQ2tBVFlDQUFzZ0EwR3dBWEVpQTBFUVJ3UkFJQUVnQTBFZ1JnUi9JQUlvQWdBRklBQUxOZ0lBQ3lBVFFSQnFKQUFGQWtBQ1FBSkFBa0FDUUFKQUlBZ2dGR29zQUFBT0JRQUJBd0lFQlFzZ0FTQUNLQUlBTmdJQURBUUxJQUVnQWlnQ0FEWUNBQ0FHUVNBUVBTRUhJQUlnQWlnQ0FDSVBRUVJxTmdJQUlBOGdCellDQUF3REN5QU5FRWtOQWlBTlFRQVFzUUVvQWdBaEJ5QUNJQUlvQWdBaUQwRUVhallDQUNBUElBYzJBZ0FNQWdzZ0RCQkpJQlZGY2cwQklBSWdEQkJBSUF3UWJDQUNLQUlBRUtRQk5nSUFEQUVMSUFJb0FnQWhGeUFFSUJacUlnUWhCd05BQWtBZ0JTQUhUUTBBSUFaQmdCQWdCeWdDQUJCT1JRMEFJQWRCQkdvaEJ3d0JDd3NnRGlJUFFRQktCRUFEUUNBUFFRQk1JQVFnQjA5eVJRUkFJQWRCQkdzaUJ5Z0NBQ0VRSUFJZ0FpZ0NBQ0lSUVFScU5nSUFJQkVnRURZQ0FDQVBRUUZySVE4TUFRc0xJQTlCQUV3RWYwRUFCU0FHUVRBUVBRc2hFUU5BSUFJZ0FpZ0NBQ0lRUVFScU5nSUFJQTlCQUVvRVFDQVFJQkUyQWdBZ0QwRUJheUVQREFFTEN5QVFJQWsyQWdBTEFrQWdCQ0FIUmdSQUlBWkJNQkE5SVE4Z0FpQUNLQUlBSWhCQkJHb2lCellDQUNBUUlBODJBZ0FNQVFzZ0N4QkpCSDlCZndVZ0MwRUFFQXNzQUFBTElSQkJBQ0VQUVFBaEVnTkFJQVFnQjBjRVFBSkFJQThnRUVjRVFDQVBJUkVNQVFzZ0FpQUNLQUlBSWhCQkJHbzJBZ0FnRUNBS05nSUFRUUFoRVNBTEVBa2dFa0VCYWlJU1RRUkFJQThoRUF3QkN5QUxJQklRQ3kwQUFFSC9BRVlFUUVGL0lSQU1BUXNnQ3lBU0VBc3NBQUFoRUFzZ0IwRUVheUlIS0FJQUlROGdBaUFDS0FJQUloaEJCR28yQWdBZ0dDQVBOZ0lBSUJGQkFXb2hEd3dCQ3dzZ0FpZ0NBQ0VIQ3lBWElBY1FyUUVMSUJSQkFXb2hGQXdCQ3dzTHBRSUJBWDhqQUVFUWF5SUtKQUFnQ1FKL0lBQUVRQ0FDRUtFQ0lRQUNRQ0FCQkVBZ0NpQUFFR2tnQXlBS0tBSUFOZ0FBSUFvZ0FCQm9EQUVMSUFvZ0FCQ2xBU0FESUFvb0FnQTJBQUFnQ2lBQUVFb0xJQWdnQ2hCWElBb1FDaG9nQkNBQUVFZzJBZ0FnQlNBQUVEZzJBZ0FnQ2lBQUVEY2dCaUFLRURBZ0NoQUtHaUFLSUFBUVN5QUhJQW9RVnlBS0VBb2FJQUFRWnd3QkN5QUNFS0FDSVFBQ1FDQUJCRUFnQ2lBQUVHa2dBeUFLS0FJQU5nQUFJQW9nQUJCb0RBRUxJQW9nQUJDbEFTQURJQW9vQWdBMkFBQWdDaUFBRUVvTElBZ2dDaEJYSUFvUUNob2dCQ0FBRUVnMkFnQWdCU0FBRURnMkFnQWdDaUFBRURjZ0JpQUtFREFnQ2hBS0dpQUtJQUFRU3lBSElBb1FWeUFLRUFvYUlBQVFad3MyQWdBZ0NrRVFhaVFBQzlRRkFRcC9Jd0JCRUdzaUZDUUFJQUlnQURZQ0FDQURRWUFFY1NFV0EwQWdGVUVFUmdSQUlBMFFDVUVCU3dSQUlCUWdEUkJBTmdJSUlBSWdGRUVJYWtFQkVLWUNJQTBRYmlBQ0tBSUFFS1FCTmdJQUN5QURRYkFCY1NJRFFSQkhCRUFnQVNBRFFTQkdCSDhnQWlnQ0FBVWdBQXMyQWdBTElCUkJFR29rQUE4TEFrQUNRQUpBQWtBQ1FBSkFJQWdnRldvc0FBQU9CUUFCQXdJRUJRc2dBU0FDS0FJQU5nSUFEQVFMSUFFZ0FpZ0NBRFlDQUNBR1FTQVFLU0VQSUFJZ0FpZ0NBQ0lRUVFGcU5nSUFJQkFnRHpvQUFBd0RDeUFORUVrTkFpQU5RUUFRQ3kwQUFDRVBJQUlnQWlnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUF3Q0N5QU1FRWtnRmtWeURRRWdBaUFNRUVBZ0RCQnVJQUlvQWdBUXBBRTJBZ0FNQVFzZ0FpZ0NBQ0VYSUFRZ0Iyb2lCQ0VSQTBBQ1FDQUZJQkZORFFBZ0JrR0FFQ0FSTEFBQUVFUkZEUUFnRVVFQmFpRVJEQUVMQ3lBT0lnOUJBRW9FUUFOQUlBOUJBRXdnQkNBUlQzSkZCRUFnRVVFQmF5SVJMUUFBSVJBZ0FpQUNLQUlBSWhKQkFXbzJBZ0FnRWlBUU9nQUFJQTlCQVdzaER3d0JDd3NnRDBFQVRBUi9RUUFGSUFaQk1CQXBDeUVTQTBBZ0FpQUNLQUlBSWhCQkFXbzJBZ0FnRDBFQVNnUkFJQkFnRWpvQUFDQVBRUUZySVE4TUFRc0xJQkFnQ1RvQUFBc0NRQ0FFSUJGR0JFQWdCa0V3RUNraER5QUNJQUlvQWdBaUVFRUJhallDQUNBUUlBODZBQUFNQVFzZ0N4QkpCSDlCZndVZ0MwRUFFQXNzQUFBTElSQkJBQ0VQUVFBaEV3TkFJQVFnRVVZTkFRSkFJQThnRUVjRVFDQVBJUklNQVFzZ0FpQUNLQUlBSWhCQkFXbzJBZ0FnRUNBS09nQUFRUUFoRWlBTEVBa2dFMEVCYWlJVFRRUkFJQThoRUF3QkN5QUxJQk1RQ3kwQUFFSC9BRVlFUUVGL0lSQU1BUXNnQ3lBVEVBc3NBQUFoRUFzZ0VVRUJheUlSTFFBQUlROGdBaUFDS0FJQUloaEJBV28yQWdBZ0dDQVBPZ0FBSUJKQkFXb2hEd3dBQ3dBTElCY2dBaWdDQUJCNUN5QVZRUUZxSVJVTUFBc0FDNlVDQVFGL0l3QkJFR3NpQ2lRQUlBa0NmeUFBQkVBZ0FoQ29BaUVBQWtBZ0FRUkFJQW9nQUJCcElBTWdDaWdDQURZQUFDQUtJQUFRYUF3QkN5QUtJQUFRcFFFZ0F5QUtLQUlBTmdBQUlBb2dBQkJLQ3lBSUlBb1FNQ0FLRUFvYUlBUWdBQkJJT2dBQUlBVWdBQkE0T2dBQUlBb2dBQkEzSUFZZ0NoQXdJQW9RQ2hvZ0NpQUFFRXNnQnlBS0VEQWdDaEFLR2lBQUVHY01BUXNnQWhDbkFpRUFBa0FnQVFSQUlBb2dBQkJwSUFNZ0NpZ0NBRFlBQUNBS0lBQVFhQXdCQ3lBS0lBQVFwUUVnQXlBS0tBSUFOZ0FBSUFvZ0FCQktDeUFJSUFvUU1DQUtFQW9hSUFRZ0FCQklPZ0FBSUFVZ0FCQTRPZ0FBSUFvZ0FCQTNJQVlnQ2hBd0lBb1FDaG9nQ2lBQUVFc2dCeUFLRURBZ0NoQUtHaUFBRUdjTE5nSUFJQXBCRUdva0FBc0lBQ0FBS0FJQVJRczNBUUYvSXdCQkVHc2lBaVFBSUFJZ0FDZ0NBRFlDQ0NBQ0lBSW9BZ2dnQVVFQ2RHbzJBZ2dnQWlnQ0NDRUFJQUpCRUdva0FDQUFDd29BSUFCQm1JZ0JFR1FMQ2dBZ0FFR2dpQUVRWkFzSkFDQUFJQUVRcmdJTEh3RUJmeUFCS0FJQUVQb0NJUUlnQUNBQktBSUFOZ0lFSUFBZ0FqWUNBQXZ4RHdFS2Z5TUFRYkFFYXlJTEpBQWdDeUFLTmdLa0JDQUxJQUUyQXFnRUlBdEJOallDWUNBTElBdEJpQUZxSUF0QmtBRnFJQXRCNEFCcUlnRVFIaUlQS0FJQUlnbzJBb1FCSUFzZ0NrR1FBMm8yQW9BQklBRVFFU0VSSUF0QjBBQnFFRWNoRGlBTFFVQnJFRWNoRENBTFFUQnFFRWNoRFNBTFFTQnFFRWNoRUNNQVFSQnJJZ0VrQUNBTEFuOGdBZ1JBSUFFZ0F4Q2hBaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQlhJQUVRQ2hvZ0FTQUNFRW9nRENBQkVGY2dBUkFLR2lBTElBSVFTRFlDZENBTElBSVFPRFlDY0NBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJCWElBRVFDaG9nQWhCbkRBRUxJQUVnQXhDZ0FpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJCWElBRVFDaG9nQVNBQ0VFb2dEQ0FCRUZjZ0FSQUtHaUFMSUFJUVNEWUNkQ0FMSUFJUU9EWUNjQ0FCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkJYSUFFUUNob2dBaEJuQ3pZQ0hDQUJRUkJxSkFBZ0NTQUlLQUlBTmdJQUlBUkJnQVJ4SWhKQkNYWWhFMEVBSVFGQkFDRUNBMEFnQWlFS0FrQUNRQUpBQWtBZ0FVRUVSZzBBSUFBZ0MwR29CR29RTmtVTkFFRUFJUVFDUUFKQUFrQUNRQUpBQWtBZ0MwSDRBR29nQVdvc0FBQU9CUUVBQkFNRkNRc2dBVUVEUmcwSElBZEJnTUFBSUFBUUlSQk9CRUFnQzBFUWFpQUFFS01DSUJBZ0N5Z0NFQkRIQVF3Q0N5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBWUxJQUZCQTBZTkJnc0RRQ0FBSUF0QnFBUnFFRFpGRFFZZ0IwR0F3QUFnQUJBaEVFNUZEUVlnQzBFUWFpQUFFS01DSUJBZ0N5Z0NFQkRIQVF3QUN3QUxJQXdRQ1VFQUlBMFFDV3RHRFFRQ1FDQU1FQWtFUUNBTkVBa05BUXNnREJBSklRTWdBQkFoSVFJZ0F3UkFJQXdRRFNnQ0FDQUNSZ1JBSUFBUUpSb2dEQ0FLSUF3UUNVRUJTeHNoQWd3SUN5QUdRUUU2QUFBTUJnc2dBaUFORUEwb0FnQkhEUVVnQUJBbEdpQUdRUUU2QUFBZ0RTQUtJQTBRQ1VFQlN4c2hBZ3dHQ3lBQUVDRWdEQkFOS0FJQVJnUkFJQUFRSlJvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dHQ3lBQUVDRWdEUkFOS0FJQVJnUkFJQUFRSlJvZ0JrRUJPZ0FBSUEwZ0NpQU5FQWxCQVVzYklRSU1CZ3NnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBS0lBRkJBa2x5UlFSQVFRQWhBaUFUSUFGQkFrWWdDeTBBZTBFQVIzRnlSUTBGQ3lBTElBNFFRRFlDQ0NBTFFSQnFJQXRCQ0dvUXFBRWhBZ0pBSUFGRkRRQWdBU0FMYWkwQWQwRUJTdzBBQTBBQ1FDQUxJQTRRYkRZQ0NDQUNJQXRCQ0dvUVcwVU5BQ0FIUVlEQUFDQUNLQUlBS0FJQUVFNUZEUUFnQWhDVkFRd0JDd3NnQ3lBT0VFQTJBZ2dnQWlnQ0FDQUxLQUlJYTBFQ2RTSUNJQkFRQ1UwRVFDQUxJQkFRYkRZQ0NDQUxRUWhxUVFBZ0Ftc1Fud0loQXlBUUVHd2hCQ0FPRUVBaEZDTUFRU0JySWdJa0FDQUNJQVEyQWhBZ0FpQUROZ0lZSUFJZ0ZEWUNDQU5BQWtBZ0FrRVlhaUFDUVJCcUVGc2lBMFVOQUNBQ0tBSVlLQUlBSUFJb0FnZ29BZ0JIRFFBZ0FrRVlhaENWQVNBQ1FRaHFFSlVCREFFTEN5QUNRU0JxSkFBZ0EwRUJjdzBCQ3lBTElBNFFRRFlDQUNBTFFRaHFJQXNRcUFFYUlBc2dDeWdDQ0RZQ0VBc2dDeUFMS0FJUU5nSUlBMEFDUUNBTElBNFFiRFlDQUNBTFFRaHFJQXNRVzBVTkFDQUFJQXRCcUFScUVEWkZEUUFnQUJBaElBc29BZ2dvQWdCSERRQWdBQkFsR2lBTFFRaHFFSlVCREFFTEN5QVNSUTBESUFzZ0RoQnNOZ0lBSUF0QkNHb2dDeEJiUlEwRElBVWdCU2dDQUVFRWNqWUNBRUVBSVFBTUFnc0RRQUpBSUFBZ0MwR29CR29RTmtVTkFBSi9JQWRCZ0JBZ0FCQWhJZ0lRVGdSQUlBa29BZ0FpQXlBTEtBS2tCRVlFUUNBSUlBa2dDMEdrQkdvUWhnRWdDU2dDQUNFREN5QUpJQU5CQkdvMkFnQWdBeUFDTmdJQUlBUkJBV29NQVFzZ0VSQUpSU0FFUlhJTkFTQUNJQXNvQW5CSERRRWdDeWdDaEFFaUFpQUxLQUtBQVVZRVFDQVBJQXRCaEFGcUlBdEJnQUZxRUlZQklBc29Bb1FCSVFJTElBc2dBa0VFYWpZQ2hBRWdBaUFFTmdJQVFRQUxJUVFnQUJBbEdnd0JDd3NnQkVVZ0N5Z0NoQUVpQWlBUEtBSUFSbkpGQkVBZ0N5Z0NnQUVnQWtZRVFDQVBJQXRCaEFGcUlBdEJnQUZxRUlZQklBc29Bb1FCSVFJTElBc2dBa0VFYWpZQ2hBRWdBaUFFTmdJQUN3SkFJQXNvQWh4QkFFd05BQUpBSUFBZ0MwR29CR29RS0VVRVFDQUFFQ0VnQ3lnQ2RFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3dOQUlBQVFKUm9nQ3lnQ0hFRUFUQTBCQWtBZ0FDQUxRYWdFYWhBb1JRUkFJQWRCZ0JBZ0FCQWhFRTROQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3RUN5QUpLQUlBSUFzb0FxUUVSZ1JBSUFnZ0NTQUxRYVFFYWhDR0FRc2dBQkFoSVFJZ0NTQUpLQUlBSWdOQkJHbzJBZ0FnQXlBQ05nSUFJQXNnQ3lnQ0hFRUJhellDSEF3QUN3QUxJQW9oQWlBSUtBSUFJQWtvQWdCSERRTWdCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0JDd0pBSUFwRkRRQkJBU0VFQTBBZ0NoQUpJQVJORFFFQ1FDQUFJQXRCcUFScUVDaEZCRUFnQUJBaElBb2dCQkN4QVNnQ0FFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBQUVDVWFJQVJCQVdvaEJBd0FDd0FMUVFFaEFDQVBLQUlBSUFzb0FvUUJSZzBBUVFBaEFDQUxRUUEyQWhBZ0VTQVBLQUlBSUFzb0FvUUJJQXRCRUdvUUxTQUxLQUlRQkVBZ0JTQUZLQUlBUVFSeU5nSUFEQUVMUVFFaEFBc2dFQkFLR2lBTkVBb2FJQXdRQ2hvZ0RoQUtHaUFSRUFvYUlBOFFIU0FMUWJBRWFpUUFJQUFQQ3lBS0lRSUxJQUZCQVdvaEFRd0FDd0FMSHdBZ0FDQUJFS1lCRUNjZ0FSQ1dBU2dDQUNFQklBQVFsZ0VnQVRZQ0FBczBBUUYvSXdCQkVHc2lBaVFBSUFJZ0FDZ0NBRFlDQ0NBQ0lBSW9BZ2dnQVdvMkFnZ2dBaWdDQ0NFQUlBSkJFR29rQUNBQUN3b0FJQUJCaUlnQkVHUUxDZ0FnQUVHUWlBRVFaQXZCQVFFR2Z5TUFRUkJySWdRa0FDQUFFSllCS0FJQUlRVUNmeUFDS0FJQUlBQW9BZ0JySWdOQi8vLy8vd2RKQkVBZ0EwRUJkQXdCQzBGL0N5SURRUUVnQXhzaEF5QUJLQUlBSVFZZ0FDZ0NBQ0VISUFWQk5rWUVmMEVBQlNBQUtBSUFDeUFERUo0QklnZ0VRQ0FGUVRaSEJFQWdBQkNtQVJvTElBUkJOVFlDQkNBQUlBUkJDR29nQ0NBRVFRUnFFQjRpQlJDbEFpQUZFQjBnQVNBQUtBSUFJQVlnQjJ0cU5nSUFJQUlnQXlBQUtBSUFhallDQUNBRVFSQnFKQUFQQ3hBWEFBc2xBUUYvSUFFb0FnQVEvd0pCR0hSQkdIVWhBaUFBSUFFb0FnQTJBZ1FnQUNBQ09nQUFDNThRQVFwL0l3QkJzQVJySWdza0FDQUxJQW8yQXFRRUlBc2dBVFlDcUFRZ0MwRTJOZ0pvSUFzZ0MwR0lBV29nQzBHUUFXb2dDMEhvQUdvaUFSQWVJZzhvQWdBaUNqWUNoQUVnQ3lBS1FaQURhallDZ0FFZ0FSQVJJUkVnQzBIWUFHb1FFU0VPSUF0QnlBQnFFQkVoRENBTFFUaHFFQkVoRFNBTFFTaHFFQkVoRUNNQVFSQnJJZ0VrQUNBTEFuOGdBZ1JBSUFFZ0F4Q29BaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQXdJQUVRQ2hvZ0FTQUNFRW9nRENBQkVEQWdBUkFLR2lBTElBSVFTRG9BZHlBTElBSVFPRG9BZGlBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJBd0lBRVFDaG9nQWhCbkRBRUxJQUVnQXhDbkFpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJBd0lBRVFDaG9nQVNBQ0VFb2dEQ0FCRURBZ0FSQUtHaUFMSUFJUVNEb0FkeUFMSUFJUU9Eb0FkaUFCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkF3SUFFUUNob2dBaEJuQ3pZQ0pDQUJRUkJxSkFBZ0NTQUlLQUlBTmdJQUlBUkJnQVJ4SWhKQkNYWWhFMEVBSVFGQkFDRUNBMEFnQWlFS0FrQUNRQUpBQWtBZ0FVRUVSZzBBSUFBZ0MwR29CR29RTVVVTkFFRUFJUVFDUUFKQUFrQUNRQUpBQWtBZ0MwSDRBR29nQVdvc0FBQU9CUUVBQkFNRkNRc2dBVUVEUmcwSElBZEJnTUFBSUFBUUh4QkVCRUFnQzBFWWFpQUFFS29DSUJBZ0N5d0FHQkNoQVF3Q0N5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBWUxJQUZCQTBZTkJnc0RRQ0FBSUF0QnFBUnFFREZGRFFZZ0IwR0F3QUFnQUJBZkVFUkZEUVlnQzBFWWFpQUFFS29DSUJBZ0N5d0FHQkNoQVF3QUN3QUxJQXdRQ1VFQUlBMFFDV3RHRFFRQ1FDQU1FQWtFUUNBTkVBa05BUXNnREJBSklRTWdBQkFmSVFJZ0F3UkFJQXhCQUJBTExRQUFJQUpCL3dGeFJnUkFJQUFRSWhvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dJQ3lBR1FRRTZBQUFNQmdzZ0RVRUFFQXN0QUFBZ0FrSC9BWEZIRFFVZ0FCQWlHaUFHUVFFNkFBQWdEU0FLSUEwUUNVRUJTeHNoQWd3R0N5QUFFQjlCL3dGeElBeEJBQkFMTFFBQVJnUkFJQUFRSWhvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dHQ3lBQUVCOUIvd0Z4SUExQkFCQUxMUUFBUmdSQUlBQVFJaG9nQmtFQk9nQUFJQTBnQ2lBTkVBbEJBVXNiSVFJTUJnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDeUFLSUFGQkFrbHlSUVJBUVFBaEFpQVRJQUZCQWtZZ0N5MEFlMEVBUjNGeVJRMEZDeUFMSUE0UVFEWUNFQ0FMUVJocUlBdEJFR29RcUFFaEFnSkFJQUZGRFFBZ0FTQUxhaTBBZDBFQlN3MEFBMEFDUUNBTElBNFFiallDRUNBQ0lBdEJFR29RVzBVTkFDQUhRWURBQUNBQ0tBSUFMQUFBRUVSRkRRQWdBaENYQVF3QkN3c2dDeUFPRUVBMkFoQWdBaWdDQUNBTEtBSVFheUlDSUJBUUNVMEVRQ0FMSUJBUWJqWUNFQ0FMUVJCcVFRQWdBbXNRcGdJaEF5QVFFRzRoQkNBT0VFQWhGQ01BUVNCcklnSWtBQ0FDSUFRMkFoQWdBaUFETmdJWUlBSWdGRFlDQ0FOQUFrQWdBa0VZYWlBQ1FSQnFFRnNpQTBVTkFDQUNLQUlZTFFBQUlBSW9BZ2d0QUFCSERRQWdBa0VZYWhDWEFTQUNRUWhxRUpjQkRBRUxDeUFDUVNCcUpBQWdBMEVCY3cwQkN5QUxJQTRRUURZQ0NDQUxRUkJxSUF0QkNHb1FxQUVhSUFzZ0N5Z0NFRFlDR0FzZ0N5QUxLQUlZTmdJUUEwQUNRQ0FMSUE0UWJqWUNDQ0FMUVJCcUlBdEJDR29RVzBVTkFDQUFJQXRCcUFScUVERkZEUUFnQUJBZlFmOEJjU0FMS0FJUUxRQUFSdzBBSUFBUUlob2dDMEVRYWhDWEFRd0JDd3NnRWtVTkF5QUxJQTRRYmpZQ0NDQUxRUkJxSUF0QkNHb1FXMFVOQXlBRklBVW9BZ0JCQkhJMkFnQkJBQ0VBREFJTEEwQUNRQ0FBSUF0QnFBUnFFREZGRFFBQ2Z5QUhRWUFRSUFBUUh5SUNFRVFFUUNBSktBSUFJZ01nQ3lnQ3BBUkdCRUFnQ0NBSklBdEJwQVJxRUtrQ0lBa29BZ0FoQXdzZ0NTQURRUUZxTmdJQUlBTWdBam9BQUNBRVFRRnFEQUVMSUJFUUNVVWdCRVZ5RFFFZ0N5MEFkaUFDUWY4QmNVY05BU0FMS0FLRUFTSUNJQXNvQW9BQlJnUkFJQThnQzBHRUFXb2dDMEdBQVdvUWhnRWdDeWdDaEFFaEFnc2dDeUFDUVFScU5nS0VBU0FDSUFRMkFnQkJBQXNoQkNBQUVDSWFEQUVMQ3lBRVJTQUxLQUtFQVNJQ0lBOG9BZ0JHY2tVRVFDQUxLQUtBQVNBQ1JnUkFJQThnQzBHRUFXb2dDMEdBQVdvUWhnRWdDeWdDaEFFaEFnc2dDeUFDUVFScU5nS0VBU0FDSUFRMkFnQUxBa0FnQ3lnQ0pFRUFUQTBBQWtBZ0FDQUxRYWdFYWhBbVJRUkFJQUFRSDBIL0FYRWdDeTBBZDBZTkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDd05BSUFBUUlob2dDeWdDSkVFQVRBMEJBa0FnQUNBTFFhZ0VhaEFtUlFSQUlBZEJnQkFnQUJBZkVFUU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdFQ3lBSktBSUFJQXNvQXFRRVJnUkFJQWdnQ1NBTFFhUUVhaENwQWdzZ0FCQWZJUUlnQ1NBSktBSUFJZ05CQVdvMkFnQWdBeUFDT2dBQUlBc2dDeWdDSkVFQmF6WUNKQXdBQ3dBTElBb2hBaUFJS0FJQUlBa29BZ0JIRFFNZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3QkN3SkFJQXBGRFFCQkFTRUVBMEFnQ2hBSklBUk5EUUVDUUNBQUlBdEJxQVJxRUNaRkJFQWdBQkFmUWY4QmNTQUtJQVFRQ3kwQUFFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBQUVDSWFJQVJCQVdvaEJBd0FDd0FMUVFFaEFDQVBLQUlBSUFzb0FvUUJSZzBBUVFBaEFDQUxRUUEyQWhnZ0VTQVBLQUlBSUFzb0FvUUJJQXRCR0dvUUxTQUxLQUlZQkVBZ0JTQUZLQUlBUVFSeU5nSUFEQUVMUVFFaEFBc2dFQkFLR2lBTkVBb2FJQXdRQ2hvZ0RoQUtHaUFSRUFvYUlBOFFIU0FMUWJBRWFpUUFJQUFQQ3lBS0lRSUxJQUZCQVdvaEFRd0FDd0FMREFBZ0FFRUJRUzBRdXdJYUN3d0FJQUJCQVVFdEVPOEJHZ3NLQUNBQklBQnJRUUoxQ3dRQUlBRUxOUUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQXRBQUE2QUE4Z0FDQUJMUUFBT2dBQUlBRWdBa0VQYWkwQUFEb0FBQ0FDUVJCcUpBQUxaQUVCZnlNQVFSQnJJZ1lrQUNBR1FRQTZBQThnQmlBRk9nQU9JQVlnQkRvQURTQUdRU1U2QUF3Z0JRUkFJQVpCRFdvZ0JrRU9haEN3QWdzZ0FpQUJJQUVnQWlnQ0FCRHVBaUFHUVF4cUlBTWdBQ2dDQUJBQklBRnFOZ0lBSUFaQkVHb2tBQXZ5QVFFRmZ5TUFRUkJySWdNa0FDQUNRZ0EzQUFBZ0FrSUFOd0FJSUFNZ0FTa0FDRGNEQ0NBRElBRXBBQUEzQXdBRFFDQUFJQVZxSVFaQkFDRUJBMEFnQmkwQUFFRUhJQUZyZGtFQmNRUkFJQUlnQXhDZEFRc2dBeTBBRHlFSElBTkJER29pQkNBRExRQUxRUjkwSUFRUWxBRkJBWFp5RUpNQklBTkJDR29pQkNBRExRQUhRUjkwSUFRUWxBRkJBWFp5RUpNQklBTkJCR29pQkNBRExRQURRUjkwSUFRUWxBRkJBWFp5RUpNQklBTWdBeENVQVVFQmRoQ1RBU0FIUVFGeEJFQWdBeUFETFFBQVFlRUJjem9BQUFzZ0FVRUJhaUlCUVFoSERRQUxJQVZCQVdvaUJVRVFSdzBBQ3lBRFFSQnFKQUFMUVFBZ0FTQUNJQU1nQkVFRUVGZ2hBU0FETFFBQVFRUnhSUVJBSUFBZ0FVSFFEMm9nQVVIc0Rtb2dBU0FCUWVRQVNCc2dBVUhGQUVnYlFld09hellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0JCRUFBQ0lBSUFCQm9BSnFJQVVnQkVFQUVMSUJJQUJySWdCQm53Sk1CRUFnQVNBQVFReHRRUXh2TmdJQUN3dEFBQ0FDSUFNZ0FFRUlhaUFBS0FJSUtBSUFFUUFBSWdBZ0FFR29BV29nQlNBRVFRQVFzZ0VnQUdzaUFFR25BVXdFUUNBQklBQkJERzFCQjI4MkFnQUxDMEVBSUFFZ0FpQURJQVJCQkJCWklRRWdBeTBBQUVFRWNVVUVRQ0FBSUFGQjBBOXFJQUZCN0E1cUlBRWdBVUhrQUVnYklBRkJ4UUJJRzBIc0RtczJBZ0FMQzBBQUlBSWdBeUFBUVFocUlBQW9BZ2dvQWdRUkFBQWlBQ0FBUWFBQ2FpQUZJQVJCQUJDMEFTQUFheUlBUVo4Q1RBUkFJQUVnQUVFTWJVRU1iellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0FCRUFBQ0lBSUFCQnFBRnFJQVVnQkVFQUVMUUJJQUJySWdCQnB3Rk1CRUFnQVNBQVFReHRRUWR2TmdJQUN3c0VBRUVDQzY4RkFRcC9Jd0JCRUdzaUNTUUFJQVlRT3lFS0lBa2dCaENNQVNJTkVEY2dCU0FETmdJQUFrQUNRQ0FBSWdjdEFBQWlCa0VyYXc0REFBRUFBUXNnQ2lBR1FSaDBRUmgxRUQwaEJpQUZJQVVvQWdBaUIwRUVhallDQUNBSElBWTJBZ0FnQUVFQmFpRUhDd0pBQWtBZ0FpQUhJZ1pyUVFGTURRQWdCeTBBQUVFd1J3MEFJQWN0QUFGQklISkIrQUJIRFFBZ0NrRXdFRDBoQmlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFZMkFnQWdDaUFITEFBQkVEMGhCaUFGSUFVb0FnQWlDRUVFYWpZQ0FDQUlJQVkyQWdBZ0IwRUNhaUlISVFZRFFDQUNJQVpORFFJZ0Jpd0FBQkFXRU5nQ1JRMENJQVpCQVdvaEJnd0FDd0FMQTBBZ0FpQUdUUTBCSUFZc0FBQWhDQkFXR2lBSUVFVkZEUUVnQmtFQmFpRUdEQUFMQUFzQ1FDQUpFRWtFUUNBS0lBY2dCaUFGS0FJQUVHTWdCU0FGS0FJQUlBWWdCMnRCQW5ScU5nSUFEQUVMSUFjZ0JoQjVJQTBRT0NFT0lBY2hDQU5BSUFZZ0NFMEVRQ0FESUFjZ0FHdEJBblJxSUFVb0FnQVFyUUVGQWtBZ0NTQUxFQXNzQUFCQkFFd05BQ0FNSUFrZ0N4QUxMQUFBUncwQUlBVWdCU2dDQUNJTVFRUnFOZ0lBSUF3Z0RqWUNBQ0FMSUFzZ0NSQUpRUUZyU1dvaEMwRUFJUXdMSUFvZ0NDd0FBQkE5SVE4Z0JTQUZLQUlBSWhCQkJHbzJBZ0FnRUNBUE5nSUFJQWhCQVdvaENDQU1RUUZxSVF3TUFRc0xDd0pBQWtBRFFDQUNJQVpORFFFZ0JpMEFBQ0lIUVM1SEJFQWdDaUFIUVJoMFFSaDFFRDBoQnlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFjMkFnQWdCa0VCYWlFR0RBRUxDeUFORUVnaEJ5QUZJQVVvQWdBaUMwRUVhaUlJTmdJQUlBc2dCellDQUNBR1FRRnFJUVlNQVFzZ0JTZ0NBQ0VJQ3lBS0lBWWdBaUFJRUdNZ0JTQUZLQUlBSUFJZ0JtdEJBblJxSWdVMkFnQWdCQ0FGSUFNZ0FTQUFhMEVDZEdvZ0FTQUNSaHMyQWdBZ0NSQUtHaUFKUVJCcUpBQUx1QUVCQlg4akFFRVFheUlISkFBakFFRVFheUlGSkFBQ1FDQUJRZS8vLy84RFRRUkFBa0FnQVVFQlRRUkFJQUFnQVJBNklBQWhCZ3dCQ3lBQUlBQWdBUkNDQVVFQmFpSURFSUVCSWdZUVRTQUFJQU1RVENBQUlBRVFPUXNnQmlFRUlBRWlBd1IvSUFNRVFBTkFJQVFnQWpZQ0FDQUVRUVJxSVFRZ0EwRUJheUlERFFBTEMwRUFCU0FFQ3hvZ0JVRUFOZ0lNSUFZZ0FVRUNkR29nQlVFTWFoQXpJQVZCRUdva0FBd0JDeEFYQUFzZ0IwRVFhaVFBSUFBTG1RVUJDbjhqQUVFUWF5SUpKQUFnQmhBeUlRb2dDU0FHRUk0QklnMFFOeUFGSUFNMkFnQUNRQUpBSUFBaUJ5MEFBQ0lHUVN0ckRnTUFBUUFCQ3lBS0lBWkJHSFJCR0hVUUtTRUdJQVVnQlNnQ0FDSUhRUUZxTmdJQUlBY2dCam9BQUNBQVFRRnFJUWNMQWtBQ1FDQUNJQWNpQm10QkFVd05BQ0FITFFBQVFUQkhEUUFnQnkwQUFVRWdja0g0QUVjTkFDQUtRVEFRS1NFR0lBVWdCU2dDQUNJSVFRRnFOZ0lBSUFnZ0Jqb0FBQ0FLSUFjc0FBRVFLU0VHSUFVZ0JTZ0NBQ0lJUVFGcU5nSUFJQWdnQmpvQUFDQUhRUUpxSWdjaEJnTkFJQUlnQmswTkFpQUdMQUFBRUJZUTJBSkZEUUlnQmtFQmFpRUdEQUFMQUFzRFFDQUNJQVpORFFFZ0Jpd0FBQ0VJRUJZYUlBZ1FSVVVOQVNBR1FRRnFJUVlNQUFzQUN3SkFJQWtRU1FSQUlBb2dCeUFHSUFVb0FnQVFieUFGSUFVb0FnQWdCaUFIYTJvMkFnQU1BUXNnQnlBR0VIa2dEUkE0SVE0Z0J5RUlBMEFnQmlBSVRRUkFJQU1nQnlBQWEyb2dCU2dDQUJCNUJRSkFJQWtnREJBTExBQUFRUUJNRFFBZ0N5QUpJQXdRQ3l3QUFFY05BQ0FGSUFVb0FnQWlDMEVCYWpZQ0FDQUxJQTQ2QUFBZ0RDQU1JQWtRQ1VFQmEwbHFJUXhCQUNFTEN5QUtJQWdzQUFBUUtTRVBJQVVnQlNnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUNBSVFRRnFJUWdnQzBFQmFpRUxEQUVMQ3dzRFFBSkFJQUlnQmtzRVFDQUdMUUFBSWdkQkxrY05BU0FORUVnaEJ5QUZJQVVvQWdBaUNFRUJhallDQUNBSUlBYzZBQUFnQmtFQmFpRUdDeUFLSUFZZ0FpQUZLQUlBRUc4Z0JTQUZLQUlBSUFJZ0JtdHFJZ1UyQWdBZ0JDQUZJQU1nQVNBQWEyb2dBU0FDUmhzMkFnQWdDUkFLR2lBSlFSQnFKQUFQQ3lBS0lBZEJHSFJCR0hVUUtTRUhJQVVnQlNnQ0FDSUlRUUZxTmdJQUlBZ2dCem9BQUNBR1FRRnFJUVlNQUFzQUMvUUJBUWwvSUFFUURTRUVJQUVRQ1NFSEl3QkJJR3NpQVNRQUFrQWdBVUVZYWlBQUVJUURJZ2d0QUFCRkRRQWdBVUVJYWlBQUVNQUJJUWtnQUNBQUtBSUFRUXhyS0FJQWFpSUZLQUlFSVFvQ1FFRi9JQVVpQWlnQ1RCQmVSUVJBSUFJb0Frd2hBZ3dCQ3lBQ0FuOGpBRUVRYXlJREpBQWdBMEVJYWlJR0lBSVFEeUFHRURKQklCQXBJUUlnQmhBT0lBTkJFR29rQUNBQ0N6WUNUQXNnQWtFWWRFRVlkU0VDSUFFZ0NTZ0NBQ0FFSUFRZ0Iyb2lBeUFFSUFwQnNBRnhRU0JHR3lBRElBVWdBaEJXTmdJUUlBRW9BaEFOQUNBQUlBQW9BZ0JCREdzb0FnQnFRUVVRZ0FFTElBZ1FnZ01nQVVFZ2FpUUFDellCQW45QjlBRVFHU0lDQkg4Z0FpQUFJQUZCQTNRUWlRTWlBRUVBU0FSQUlBSVFFRUVBRHdzZ0FpQUFOZ0x3QVNBQ0JTQURDd3VkQXdFQ2Z5TUFRZUFDYXlJQUpBQWdBQ0FDTmdMUUFpQUFJQUUyQXRnQ0lBTVFYQ0VHSUFNZ0FFSGdBV29RbVFFaEJ5QUFRZEFCYWlBRElBQkJ6QUpxRUpnQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQjJBSnFJQUJCMEFKcUVEWkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRZGdDYWhBaElBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBb0Fzd0NJQUJCMEFGcUlBQkJFR29nQUVFTWFpQUhFSXNCRFFBZ0FFSFlBbW9RSlJvTUFRc0xBa0FnQUVIUUFXb1FDVVVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFnQmhESEFqWUNBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQjJBSnFJQUJCMEFKcUVDZ0VRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9BdGdDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUWVBQ2FpUUFJQUlMVkFFQ2Z5TUFRUkJySWdNa0FDQURRUUkyQWd3Z0FpQUJFQWtpQkVzRVFCQVhBQXNnQVJBTklRRWdBeUFFSUFKck5nSUVJQUFnQVNBQ2FpQURRUXhxSUFOQkJHb1FvZ0VvQWdBUTlnRWdBMEVRYWlRQUMwSUJBWDhqQUVFUWF5SURKQUFnQXlBQk5nSU1JQU1nQWpZQ0NDQURJQU5CREdvUVVpRUJJQUJCOHhzZ0F5Z0NDQkRpQWlFQUlBRVFVU0FEUVJCcUpBQWdBQXNZQUNBQUlBQW9BZ0JCREdzb0FnQnFRUUlSQUFBYUlBQUxzUUlDQkg0RmZ5TUFRU0JySWdna0FBSkFBa0FDUUNBQklBSkhCRUJCMUlFQktBSUFJUXhCMUlFQlFRQTJBZ0FqQUVFUWF5SUpKQUFRRmhvakFFRVFheUlLSkFBakFFRVFheUlMSkFBZ0N5QUJJQWhCSEdwQkFoRFlBU0FMS1FNQUlRUWdDaUFMS1FNSU53TUlJQW9nQkRjREFDQUxRUkJxSkFBZ0Npa0RBQ0VFSUFrZ0Npa0RDRGNEQ0NBSklBUTNBd0FnQ2tFUWFpUUFJQWtwQXdBaEJDQUlJQWtwQXdnM0F4QWdDQ0FFTndNSUlBbEJFR29rQUNBSUtRTVFJUVFnQ0NrRENDRUZRZFNCQVNnQ0FDSUJSUTBCSUFnb0Fod2dBa2NOQWlBRklRWWdCQ0VISUFGQnhBQkhEUU1NQWdzZ0EwRUVOZ0lBREFJTFFkU0JBU0FNTmdJQUlBZ29BaHdnQWtZTkFRc2dBMEVFTmdJQUlBWWhCU0FISVFRTElBQWdCVGNEQUNBQUlBUTNBd2dnQ0VFZ2FpUUFDN1lCQWdKOEEzOGpBRUVRYXlJRkpBQUNRQUpBQWtBZ0FDQUJSd1JBUWRTQkFTZ0NBQ0VIUWRTQkFVRUFOZ0lBRUJZYUl3QkJFR3NpQmlRQUlBWWdBQ0FGUVF4cVFRRVEyQUVnQmlrREFDQUdLUU1JRU4wQklRTWdCa0VRYWlRQVFkU0JBU2dDQUNJQVJRMEJJQVVvQWd3Z0FVY05BaUFESVFRZ0FFSEVBRWNOQXd3Q0N5QUNRUVEyQWdBTUFndEIxSUVCSUFjMkFnQWdCU2dDRENBQlJnMEJDeUFDUVFRMkFnQWdCQ0VEQ3lBRlFSQnFKQUFnQXd1MkFRSUNmUU4vSXdCQkVHc2lCU1FBQWtBQ1FBSkFJQUFnQVVjRVFFSFVnUUVvQWdBaEIwSFVnUUZCQURZQ0FCQVdHaU1BUVJCcklnWWtBQ0FHSUFBZ0JVRU1ha0VBRU5nQklBWXBBd0FnQmlrRENCRGtBaUVESUFaQkVHb2tBRUhVZ1FFb0FnQWlBRVVOQVNBRktBSU1JQUZIRFFJZ0F5RUVJQUJCeEFCSERRTU1BZ3NnQWtFRU5nSUFEQUlMUWRTQkFTQUhOZ0lBSUFVb0Fnd2dBVVlOQVFzZ0FrRUVOZ0lBSUFRaEF3c2dCVUVRYWlRQUlBTUx4Z0VDQTM4QmZpTUFRUkJySWdRa0FBSitBa0FDUUNBQUlBRkhCRUFDUUFKQUlBQXRBQUFpQlVFdFJ3MEFJQUJCQVdvaUFDQUJSdzBBREFFTFFkU0JBU2dDQUNFR1FkU0JBVUVBTmdJQUlBQWdCRUVNYWlBREVCWVEyUUVoQndKQVFkU0JBU2dDQUNJQUJFQWdCQ2dDRENBQlJ3MEJJQUJCeEFCR0RRUU1CUXRCMUlFQklBWTJBZ0FnQkNnQ0RDQUJSZzBFQ3dzTElBSkJCRFlDQUVJQURBSUxJQUpCQkRZQ0FFSi9EQUVMUWdBZ0IzMGdCeUFGUVMxR0d3c2hCeUFFUVJCcUpBQWdCd3ZYQVFJRGZ3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUFrQWdBQ0FCUndSQUFrQUNRQ0FBTFFBQUlnVkJMVWNOQUNBQVFRRnFJZ0FnQVVjTkFBd0JDMEhVZ1FFb0FnQWhCa0hVZ1FGQkFEWUNBQ0FBSUFSQkRHb2dBeEFXRU5rQklRY0NRRUhVZ1FFb0FnQWlBQVJBSUFRb0Fnd2dBVWNOQVNBQVFjUUFSZzBGREFRTFFkU0JBU0FHTmdJQUlBUW9BZ3dnQVVZTkF3c0xDeUFDUVFRMkFnQkJBQXdEQ3lBSFF2Ly8vLzhQV0EwQkN5QUNRUVEyQWdCQmZ3d0JDMEVBSUFlbklnQnJJQUFnQlVFdFJoc0xJUUFnQkVFUWFpUUFJQUFMa2dNQkFYOGpBRUdRQW1zaUFDUUFJQUFnQWpZQ2dBSWdBQ0FCTmdLSUFpQURFRndoQmlBQVFkQUJhaUFESUFCQi93RnFFSm9CSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFZZ0NhaEFmSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFzQVA4QklBQkIwQUZxSUFCQkVHb2dBRUVNYWtIZzBBQVFqUUVOQUNBQVFZZ0NhaEFpR2d3QkN3c0NRQ0FBUWRBQmFoQUpSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3ZBRWdCQ0FHRU1jQ05nSUFJQUJCMEFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVHSUFtb2dBRUdBQW1vUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0NpQUloQWlBQkVBb2FJQUJCMEFGcUVBb2FJQUJCa0FKcUpBQWdBZ3ZjQVFJRGZ3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUFrQWdBQ0FCUndSQUFrQUNRQ0FBTFFBQUlnVkJMVWNOQUNBQVFRRnFJZ0FnQVVjTkFBd0JDMEhVZ1FFb0FnQWhCa0hVZ1FGQkFEWUNBQ0FBSUFSQkRHb2dBeEFXRU5rQklRY0NRRUhVZ1FFb0FnQWlBQVJBSUFRb0Fnd2dBVWNOQVNBQVFjUUFSZzBGREFRTFFkU0JBU0FHTmdJQUlBUW9BZ3dnQVVZTkF3c0xDeUFDUVFRMkFnQkJBQXdEQ3lBSFF2Ly9BMWdOQVFzZ0FrRUVOZ0lBUWYvL0F3d0JDMEVBSUFlbklnQnJJQUFnQlVFdFJoc0xJUUFnQkVFUWFpUUFJQUJCLy84RGNRdTJBUUlCZmdKL0l3QkJFR3NpQlNRQUFrQUNRQ0FBSUFGSEJFQkIxSUVCS0FJQUlRWkIxSUVCUVFBMkFnQWdBQ0FGUVF4cUlBTVFGaERQQWlFRUFrQkIxSUVCS0FJQUlnQUVRQ0FGS0FJTUlBRkhEUUVnQUVIRUFFWU5Bd3dFQzBIVWdRRWdCallDQUNBRktBSU1JQUZHRFFNTEN5QUNRUVEyQWdCQ0FDRUVEQUVMSUFKQkJEWUNBQ0FFUWdCVkJFQkMvLy8vLy8vLy8vLy9BQ0VFREFFTFFvQ0FnSUNBZ0lDQWdIOGhCQXNnQlVFUWFpUUFJQVFMd3dFQ0FuOEJmaU1BUVJCcklnUWtBQUovQWtBQ1FDQUFJQUZIQkVCQjFJRUJLQUlBSVFWQjFJRUJRUUEyQWdBZ0FDQUVRUXhxSUFNUUZoRFBBaUVHQWtCQjFJRUJLQUlBSWdBRVFDQUVLQUlNSUFGSERRRWdBRUhFQUVZTkJBd0RDMEhVZ1FFZ0JUWUNBQ0FFS0FJTUlBRkdEUUlMQ3lBQ1FRUTJBZ0JCQUF3Q0N5QUdRb0NBZ0lCNFV5QUdRdi8vLy84SFZYSU5BQ0FHcHd3QkN5QUNRUVEyQWdCQi8vLy8vd2NnQmtJQVZRMEFHa0dBZ0lDQWVBc2hBQ0FFUVJCcUpBQWdBQXZtQWdFRWZ5QUFRVUJySWdOQnZDZzJBZ0FnQTBIMElUWUNBQ0FBUWZ3bE5nSUFJQU5CcENZMkFnQWdBRUdRSmpZQ0NDQUFRYlFtS0FJQUlnRTJBZ0FnQUNBQlFReHJLQUlBYWtHNEppZ0NBRFlDQUNBQVFRQTJBZ1FnQUNBQUtBSUFRUXhyS0FJQWFpSUNRUUEyQWhRZ0FpQUFRUXhxSWdFMkFoZ2dBa0VBTmdJTUlBSkNncUNBZ09BQU53SUVJQUlnQVVVMkFoQWdBa0VnYWtFQVFTZ1FSaG9nQWtFY2FoQ1BBaUFDUVFBMkFrZ2dBa0YvTmdKTUlBQkJDR29pQWtHOEppZ0NBQ0lFTmdJQUlBSWdCRUVNYXlnQ0FHcEJ3Q1lvQWdBMkFnQWdBRUd3SmlnQ0FDSUNOZ0lBSUFBZ0FrRU1heWdDQUdwQnhDWW9BZ0EyQWdBZ0FFSElKaWdDQURZQ0NDQUFRZndsTmdJQUlBTkJwQ1kyQWdBZ0FFR1FKallDQ0NBQlFid2ZOZ0lBSUFGQkJHb1Fqd0lnQVVJQU53SVlJQUZDQURjQ0VDQUJRZ0EzQWdnZ0FVRzBJVFlDQUNBQlFTQnFFQkVhSUFGQkdEWUNNQ0FCUVFBMkFpd2dBQXNLQUNBQklBQnJRUXh0QzVRQkFRUi9Jd0JCRUdzaUJTUUFJQUVnQWhDaUFpSUVRZS8vLy84RFRRUkFBa0FnQkVFQlRRUkFJQUFnQkJBNklBQWhBd3dCQ3lBQUlBQWdCQkNDQVVFQmFpSUdFSUVCSWdNUVRTQUFJQVlRVENBQUlBUVFPUXNEUUNBQklBSkhCRUFnQXlBQkVETWdBMEVFYWlFRElBRkJCR29oQVF3QkN3c2dCVUVBTmdJTUlBTWdCVUVNYWhBeklBVkJFR29rQUE4TEVCY0FDeFlBSUFBZ0FTQUNRb0NBZ0lDQWdJQ0FnSDhRMEFJTGtnUUNCMzhFZmlNQVFSQnJJZ2drQUFKQUFrQUNRQ0FDUVNSTUJFQWdBQzBBQUNJRkRRRWdBQ0VFREFJTFFkU0JBVUVjTmdJQVFnQWhBd3dDQ3lBQUlRUUNRQU5BSUFWQkdIUkJHSFVRY0VVTkFTQUVMUUFCSVFVZ0JFRUJhaUVFSUFVTkFBc01BUXNDUUNBRUxRQUFJZ1ZCSzJzT0F3QUJBQUVMUVg5QkFDQUZRUzFHR3lFSElBUkJBV29oQkFzQ2Z3SkFJQUpCYjNFTkFDQUVMUUFBUVRCSERRQkJBU0VKSUFRdEFBRkIzd0Z4UWRnQVJnUkFJQVJCQW1vaEJFRVFEQUlMSUFSQkFXb2hCQ0FDUVFnZ0Foc01BUXNnQWtFS0lBSWJDeUlLckNFTVFRQWhBZ05BQWtCQlVDRUZBa0FnQkN3QUFDSUdRVEJyUWY4QmNVRUtTUTBBUWFsL0lRVWdCa0hoQUd0Qi93RnhRUnBKRFFCQlNTRUZJQVpCd1FCclFmOEJjVUVaU3cwQkN5QUZJQVpxSWdZZ0NrNE5BQ0FJSUF4Q0FDQUxRZ0FRSzBFQklRVUNRQ0FJS1FNSVFnQlNEUUFnQ3lBTWZpSU5JQWFzSWc1Q2Y0VldEUUFnRFNBT2ZDRUxRUUVoQ1NBQ0lRVUxJQVJCQVdvaEJDQUZJUUlNQVFzTElBRUVRQ0FCSUFRZ0FDQUpHellDQUFzQ1FBSkFJQUlFUUVIVWdRRkJ4QUEyQWdBZ0IwRUFJQU5DQVlNaURGQWJJUWNnQXlFTERBRUxJQU1nQzFZTkFTQURRZ0dESVF3TElBeW5JQWR5UlFSQVFkU0JBVUhFQURZQ0FDQURRZ0Y5SVFNTUFnc2dBeUFMV2cwQVFkU0JBVUhFQURZQ0FBd0JDeUFMSUFlc0lnT0ZJQU45SVFNTElBaEJFR29rQUNBREN6RUJBWDlCMklZQktBSUFJUUVnQUFSQVFkaUdBVUhvaFFFZ0FDQUFRWDlHR3pZQ0FBdEJmeUFCSUFGQjZJVUJSaHNMclFnQkJYOGdBU2dDQUNFRUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBSUFORkRRQWdBeWdDQUNJR1JRMEFJQUJGQkVBZ0FpRUREQU1MSUFOQkFEWUNBQ0FDSVFNTUFRc0NRRUhZaGdFb0FnQW9BZ0JGQkVBZ0FFVU5BU0FDUlEwTUlBSWhCZ05BSUFRc0FBQWlBd1JBSUFBZ0EwSC92d054TmdJQUlBQkJCR29oQUNBRVFRRnFJUVFnQmtFQmF5SUdEUUVNRGdzTElBQkJBRFlDQUNBQlFRQTJBZ0FnQWlBR2F3OExJQUloQXlBQVJRMEREQVVMSUFRUWtnRVBDMEVCSVFVTUF3dEJBQXdCQzBFQkN5RUZBMEFnQlVVRVFDQUVMUUFBUVFOMklnVkJFR3NnQmtFYWRTQUZhbkpCQjBzTkF3Si9JQVJCQVdvaUJTQUdRWUNBZ0JCeFJRMEFHaUFGTFFBQVFjQUJjVUdBQVVjRVFDQUVRUUZySVFRTUJ3c2dCRUVDYWlJRklBWkJnSUFnY1VVTkFCb2dCUzBBQUVIQUFYRkJnQUZIQkVBZ0JFRUJheUVFREFjTElBUkJBMm9MSVFRZ0EwRUJheUVEUVFFaEJRd0JDd05BQWtBZ0JFRURjU0FFTFFBQUlnWkJBV3RCL2dCTGNnMEFJQVFvQWdBaUJrR0Jnb1FJYXlBR2NrR0FnWUtFZUhFTkFBTkFJQU5CQkdzaEF5QUVLQUlFSVFZZ0JFRUVhaUVFSUFZZ0JrR0Jnb1FJYTNKQmdJR0NoSGh4UlEwQUN3c2dCa0gvQVhFaUJVRUJhMEgrQUUwRVFDQURRUUZySVFNZ0JFRUJhaUVFREFFTEN5QUZRY0lCYXlJRlFUSkxEUU1nQkVFQmFpRUVJQVZCQW5SQndDdHFLQUlBSVFaQkFDRUZEQUFMQUFzRFFDQUZSUVJBSUFORkRRY0RRQUpBQWtBQ1FDQUVMUUFBSWdWQkFXc2lCMEgrQUVzRVFDQUZJUVlNQVFzZ0JFRURjU0FEUVFWSmNnMEJBa0FEUUNBRUtBSUFJZ1pCZ1lLRUNHc2dCbkpCZ0lHQ2hIaHhEUUVnQUNBR1FmOEJjVFlDQUNBQUlBUXRBQUUyQWdRZ0FDQUVMUUFDTmdJSUlBQWdCQzBBQXpZQ0RDQUFRUkJxSVFBZ0JFRUVhaUVFSUFOQkJHc2lBMEVFU3cwQUN5QUVMUUFBSVFZTElBWkIvd0Z4SWdWQkFXc2hCd3NnQjBIK0FFc05BUXNnQUNBRk5nSUFJQUJCQkdvaEFDQUVRUUZxSVFRZ0EwRUJheUlERFFFTUNRc0xJQVZCd2dGcklnVkJNa3NOQXlBRVFRRnFJUVFnQlVFQ2RFSEFLMm9vQWdBaEJrRUJJUVVNQVFzZ0JDMEFBQ0lGUVFOMklnZEJFR3NnQnlBR1FScDFhbkpCQjBzTkFRSkFBa0FDZnlBRVFRRnFJZ2NnQlVHQUFXc2dCa0VHZEhJaUJVRUFUZzBBR2lBSExRQUFRWUFCYXlJSFFUOUxEUUVnQkVFQ2FpSUlJQWNnQlVFR2RISWlCVUVBVGcwQUdpQUlMUUFBUVlBQmF5SUhRVDlMRFFFZ0J5QUZRUVowY2lFRklBUkJBMm9MSVFRZ0FDQUZOZ0lBSUFOQkFXc2hBeUFBUVFScUlRQU1BUXRCMUlFQlFSazJBZ0FnQkVFQmF5RUVEQVVMUVFBaEJRd0FDd0FMSUFSQkFXc2hCQ0FHRFFFZ0JDMEFBQ0VHQ3lBR1FmOEJjUTBBSUFBRVFDQUFRUUEyQWdBZ0FVRUFOZ0lBQ3lBQ0lBTnJEd3RCMUlFQlFSazJBZ0FnQUVVTkFRc2dBU0FFTmdJQUMwRi9Ed3NnQVNBRU5nSUFJQUlMSXdFQ2Z5QUFJUUVEUUNBQklnSkJCR29oQVNBQ0tBSUFEUUFMSUFJZ0FHdEJBblVMRGdBZ0FCRGZBZ1JBSUFBUUVBc0xVd0VFZndKQUlBRkJBRXdOQUNBQlFRRnJJZ1JGRFFBRFFDQUFJQUpxSWdNdEFBQWhCU0FESUFBZ0FrRUJjbW9pQXkwQUFEb0FBQ0FESUFVNkFBQWdBa0VDYWlJQ0lBRk9EUUVnQWlBRVJ3MEFDd3NMTEFFQmZ5TUFRUkJySWdJa0FDQUNJQUUyQWd3Z0FFSGtBRUh1SENBQkVMVUJJUUFnQWtFUWFpUUFJQUFMS1FFQmZ5TUFRUkJySWdJa0FDQUNJQUUyQWd3Z0FFSDBIQ0FCRU9JQ0lRQWdBa0VRYWlRQUlBQUxGZ0FnQUJCRlFRQkhJQUJCSUhKQjRRQnJRUVpKY2d1OEFnQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFGQkNXc09FZ0FJQ1FvSUNRRUNBd1FLQ1FvS0NBa0ZCZ2NMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVNnQ0FEWUNBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRJQkFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRNQkFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRBQUFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRFQUFEY0RBQThMSUFJZ0FpZ0NBRUVIYWtGNGNTSUJRUWhxTmdJQUlBQWdBU3NEQURrREFBOExJQUFnQWtFekVRTUFDdzhMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRRQ0FEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRVQ0FEY0RBQThMSUFJZ0FpZ0NBRUVIYWtGNGNTSUJRUWhxTmdJQUlBQWdBU2tEQURjREFBditGQUVPZnlNQVFVQnFJZ01rQUNBRFFRQTJBaEFnQTBFQU5nSU1JQU5CQURZQ0NDQURRUUEyQWdRZ0F5QURRUkJxSWdRMkFoUWdBeUFEUVF4cUlnZzJBaGdnQXlnQ0ZCb2dBeUFEUVFocUlnbzJBaHdnQXlnQ0dCb2dBeUFEUVFScUlnWTJBaUFnQXlnQ0hCb2dBeWdDSUJvakFFRVFheUlISkFBZ0JpQUFMUUFDSUFBdEFBRWdBQzBBQUhOelFSaDBRUmgxSWdWQk1ITWdCVUVCZEVHZmYzSnFRUUZxSWdVMkFnQWdDaUFGUVg5eklBRnhJQVVnQVVGL2N5SU1jV3NpQlVGK2NpQUZRWDV4YWtFQmFpSUZOZ0lBSUFRZ0JSQVpOZ0lBSUFnZ0JpZ0NBQ0lKRUJrMkFnQURRQUpBUWIzdSthRitJUVVEUUFKQUFrQWdCVUc4N3ZtaGZrd0VRQ0FGUWUzc2hPTjVSZzBCSUFWQmlhM04yM3hHRFFJZ0JVR0loWUxjZkVjTkF5QUhRUkJxSkFBTUJBc2dCVUgyam9iVkJFY0VRQ0FGUVpxZW84a0RSZ1JBUVFBaEMwSHQ3SVRqZVNFRkRBUUxJQVZCdmU3NW9YNUhEUU1nQnlBSk5nSUlRZmFPaHRVRVFacWVvOGtESUFjb0FnaEJBRW9iSVFVTUF3c2dCaWdDQUNJRlFYOXpJQUZ4SUFVZ0RIRnJJZ2xCZm5NZ0NVRUJkRUY4Y1dvZ0FHb3RBQUVoRFNBSUtBSUFJQVVnQnlnQ0NHdHFJQUFnQnlnQ0NDSUZRWDl6SUFGeFFRRjBJQUVnQlhOcmFpMEFBQ0FBSUFscVFRSnJMUUFBSUExemN6b0FBQ0FIS0FJSVFRRnJJUWtNQkFzZ0J5QUxOZ0lNUVltdHpkdDhRWWlGZ3R4OElBb29BZ0FnQnlnQ0RFb2JJUVVNQVFzZ0JDZ0NBQ0FIS0FJTWFpQUFJQWNvQWd4QkFXb2lDMm90QUFBNkFBQkI3ZXlFNDNraEJRd0FDd0FMQ3lBRElBTW9BZ3hCcng0Z0F5Z0NCQkMrQVRZQ0pFSE51dmFlQlNFQUEwQUNRQUpBQWtBQ1FBSkFBa0FDUUNBQVFjcndxYUlCVEFSQUlBQkIvYlhhNzM1TUJFQWdBRUdSMVl1VWUwWU5CeUFBUWMyVjY5cDdSZzBESUFCQmdOSG4vWHhIRFFsQmtkV0xsSHNoQUVFQUlRRU1DUXNnQUVIK3RkcnZma1lOQkNBQVFhNm0wL1lBUmcwQklBQkIwYUM1R0VjTkNDQURLQUlRRUJBZ0F5Z0NEQkFRSUFNb0FpQWFJQU1vQWh3YUlBTW9BaGdhSUFNb0FoUWFJQU1vQWl3aEFDQURRVUJySkFBZ0FBOExJQUJCNzRUcjlRSk1CRUFnQUVITDhLbWlBVVlOQnlBQVFZekF5b0FDUncwSUlBTW9BaEFoQ0NBREtBSUlJUTVCQUNFSlFRQWhDa0VBSVFWQkFDRUhRUUFoQ3lNQVFSQnJJZ1FrQUVHU21PekRCVUc3N0x5SUJDQUNHeUVHUWRVQUlReEIrZ0VoRFFOQUFrQkI1cXFmZWlFQUEwQUNRQUpBQWtBQ1FBSkFJQUJCcE5XRDlnRk1CRUFnQUVIb3lwQzVmRXdFUUNBQVFmaTErUHQ1UmcwR0lBQkI1TkNXdDNwR0RRVWdBRUdZOWUzT2VVY05CeUFFUVJCcUpBQU1DQXNnQUVIcHlwQzVmRVlOQVNBQVFlYXFuM3BIRFFZZ0JDQUpOZ0lFSUFRZ0RUb0FDeUFFSUF3NkFBeEI2Y3FRdVh4Qm1QWHR6bmtnQkNnQ0JDQU9TQnNoQUF3R0N5QUFRYkR0aXJrRVRBUkFJQUJCcGRXRDlnRkdEUUlnQUVHNzdMeUlCRWNOQmtINHRmajdlU0VBSUFRc0FBMGdCQ2dDQkJEb0FpRUtEQVlMSUFCQnNlMkt1UVJHRFFJZ0FFR1NtT3pEQlVjTkJVSDR0Zmo3ZVNFQUlBUXNBQTBnQkNnQ0JCRGhBaUVLREFVTFFhWFZnL1lCUWJIdGlya0VJQVFvQWdSQkFtOUJBVVliSVFBTUJBc2dDQ0FFS0FJRWFpMEFBQ0lGSUFRdEFBeHpJUWRCNU5DV3Qzb2hBQ0FFTFFBTElRc01Bd3NnQ0NBRUtBSUVhaTBBQUNJTElBUXRBQXR6SVFkQjVOQ1d0M29oQUNBRUxRQU1JUVVNQWdzZ0JDQUxPZ0FPSUFRZ0J6b0FEU0FFSUFVNkFBOGdCaUVBREFFTEN5QUlJQVFvQWdScUlBbzZBQUFnQkNnQ0JFRUJhaUVKSUFRdEFBOGhEQ0FFTFFBT0lRME1BUXNMUWZDRTYvVUNJUUFNQ0FzZ0FFSHdoT3YxQWtZTkFpQUFRWmpYcXBFRFJnMEVJQUJCemJyMm5nVkhEUWRCcnFiVDlnQkJ6WlhyMm5zZ0F5Z0NKQnNoQUF3SEMwR013TXFBQWtITmxldmFleUFES0FJTVFiWWVJQU1vQWdRUXZnRWJJUUFNQmdzZ0F5Z0NFQ0VJSUFNb0FnZ2hCVUVBSVFwQkFDRU5RUUFoQjBFQUlRdEJBQ0VKUVFBaERDTUFRUkJySWdRa0FDQUlJQVVRMVFKQnNxYmJpd1JCdXYrRG9ua2dBaHNoQmtIVkFDRU9RZm9CSVE4RFFBSkFRYlNXMGJvQ0lRQURRQUpBQWtBQ1FDQUFRYk9XMGJvQ1RBUkFJQUJCcGZIYTIzMU1CRUFnQUVHNi80T2llVVlOQkNBQVFaL1VucGg3UmcwRElBQkIwK2k2NDNoSERRVWdDQ0FGRU5VQ0lBUkJFR29rQUF3R0N5QUFRYWJ4MnR0OVJnMEJJQUJCZzZhWnJRRkhEUVJCbDRYY3ZnUkJwdkhhMjMwZ0JDZ0NCRUVDYjBFQlJoc2hBQXdFQ3dKQUFrQWdBRUdXaGR5K0JFd0VRQ0FBUWJTVzBib0NSZzBCSUFCQnNxYmJpd1JIRFFaQi83TGxsd1VoQUNBRUxBQU5JQVFvQWdRUTRRSWhDZ3dHQ3lBQVFaZUYzTDRFUmcwQklBQkIvN0xsbHdWSERRVWdDQ0FFS0FJRWFpQUVMUUFNSWdBZ0NuTWdBQ0FLUVg5emNVRUJkR3M2QUFBZ0JDZ0NCRUVCYWlFTklBUXRBQThoRGlBRUxRQU9JUThNQndzZ0JDQU5OZ0lFSUFRZ0R6b0FDaUFFSUE0NkFBdEJnNmFaclFGQjAraTY0M2dnQkNnQ0JDQUZTQnNoQUF3RUN5QUlJQVFvQWdScUxRQUFJZ2NnQkMwQUMzTWhDMEdmMUo2WWV5RUFJQVF0QUFvaENTQUVMUUFLSVF3TUF3c2dDQ0FFS0FJRWFpMEFBQ0lKSUFRdEFBcHpJUXRCbjlTZW1Ic2hBQ0FFTFFBTElRY2dCQzBBQ3lFTURBSUxJQVFnQ3pvQURTQUVJQXc2QUF3Z0JDQUpPZ0FPSUFRZ0J6b0FEeUFHSVFBTUFRdEIvN0xsbHdVaEFDQUVMQUFOSUFRb0FnUVE2QUloQ2d3QUN3QUxDMEh3aE92MUFpRUFEQVVMSUFNQ2YwRUFJUVFqQUVFUWF5SUdJQU1vQWhBc0FBQTJBZ2dnQmlBR0tBSUlRUzlLT2dBT0lBWWdCaWdDQ0VFNlNEb0FEMEdNNEpTQ2VpRUFBMEFDUUNBQVFhemNoNGg3VEFSQUlBQkJsZXJCdW5oR0JFQkIvd0VoQkVHdDNJZUlleUVBREFNTElBQkJqT0NVZ25wR0RRRWdBRUc4b09mTGVrY05BaUFHS0FJSUlnQkI0UUJ6SUFCQkFYUkJ2WDV5YWtFQmFpSUFRUUYwUVJSeElBQkJDbk5xSVFSQnJkeUhpSHNoQUF3Q0N5QUFRYTNjaDRoN1J3UkFJQUJCbXFYNDZ3SkhCRUFnQUVIQTRyRENBMGNOQXlBR0tBSUlJZ0JCendGeUlBQkJ6d0Z4YWtFQmFpRUVRYTNjaDRoN0lRQU1Bd3RCdktEbnkzcEJsZXJCdW5nZ0JpZ0NDRUg3QUVnYlFaWHF3YnA0SUFZb0FnaEI0QUJLR3lFQURBSUxJQVJCR0hSQkdIVU1BZ3RCd09Ld3dnTkJtcVg0NndJZ0JpMEFEMEVCY1J0Qm1xWDQ2d0lnQmkwQURrRUJjUnNoQUF3QUN3QUxJZ0EyQWdRZ0F5QURLQUlJSWdZZ0FFRi9jM0VnQUNBR1FYOXpjV3NpQmtGK2NpQUdRWDV4YWtFQmFqWUNLQ0FESUFZUUdUWUNMQ0FESUFCQkFYUkJBbkVnQUVFQmMyb1FHVFlDTUVFQUlSQWdBeWdDS0NBREtBSXNha0VBT2dBQUlBTW9BZ1FnQXlnQ01HcEJBRG9BQUVIK3RkcnZmaUVBREFRTElBTWdFRFlDT0VHWTE2cVJBMEdBMGVmOWZDQURLQUlvSUFNb0FqaEtHeUVBREFNTElBTW9BaXdnQXlnQ09Hb2dBeWdDT0NJQVFRRjBRUUp5SUFCQmZuTnFRUUZxSWhBZ0F5Z0NFR290QUFBNkFBQkIvclhhNzM0aEFBd0NDeUFESUFNb0FnUTJBalFnQXlBQk5nSThRY3Z3cWFJQlFkR2d1UmdnQXlnQ05DQURLQUk4U2hzaEFBd0JDeUFES0FJd0lBTW9BanhxSUFNb0FoQWdBeWdDQ0NBREtBSTBheUlBSUFNb0Fqd2lBWEpCQVhRZ0FDQUJjMnRxTFFBQU9nQUFJQU1vQWp4QkFXb2hBVUdSMVl1VWV5RUFEQUFMQUF0ckFRUi9JQUFvQWdBc0FBQVFSVVVFUUVFQUR3c0RRQ0FBS0FJQUlRTkJmeUVCSUFKQnpKbXo1Z0JOQkVCQmZ5QURMQUFBUVRCcklnUWdBa0VLYkNJQmFpQUVRZi8vLy84SElBRnJTaHNoQVFzZ0FDQURRUUZxTmdJQUlBRWhBaUFETEFBQkVFVU5BQXNnQVF2MEVnSVJmd0YrSXdCQjBBQnJJZ1VrQUNBRklBRTJBa3dnQlVFM2FpRVVJQVZCT0dvaEVFRUFJUUVDUUFKQUFrQUNRQU5BSUFGQi8vLy8vd2NnQzJ0S0RRRWdBU0FMYWlFTElBVW9Ba3dpQ2lFQkFrQUNRQUpBSUFvdEFBQWlDUVJBQTBBQ1FBSkFJQWxCL3dGeElnWkZCRUFnQVNFSkRBRUxJQVpCSlVjTkFTQUJJUWtEUUNBQkxRQUJRU1ZIRFFFZ0JTQUJRUUpxSWdZMkFrd2dDVUVCYWlFSklBRXRBQUloQ0NBR0lRRWdDRUVsUmcwQUN3c2dDU0FLYXlJQlFmLy8vLzhISUF0ckloVktEUWNnQUFSQUlBQWdDaUFCRUNvTElBRU5Ca0YvSVE1QkFTRUdJQVVvQWt3c0FBRVFSU0VCSUFVb0Frd2hDQUpBSUFGRkRRQWdDQzBBQWtFa1J3MEFJQWdzQUFGQk1Hc2hEa0VCSVJKQkF5RUdDeUFGSUFZZ0NHb2lBVFlDVEVFQUlRd0NRQ0FCTEFBQUloRkJJR3NpQ0VFZlN3UkFJQUVoQmd3QkN5QUJJUVpCQVNBSWRDSUhRWW5SQkhGRkRRQURRQ0FGSUFGQkFXb2lCallDVENBSElBeHlJUXdnQVN3QUFTSVJRU0JySWdoQklFOE5BU0FHSVFGQkFTQUlkQ0lIUVluUkJIRU5BQXNMQWtBZ0VVRXFSZ1JBSUFVQ2Z3SkFJQVlzQUFFUVJVVU5BQ0FGS0FKTUlnRXRBQUpCSkVjTkFDQUJMQUFCUVFKMElBUnFRY0FCYTBFS05nSUFJQUVzQUFGQkEzUWdBMnBCZ0FOcktBSUFJUTFCQVNFU0lBRkJBMm9NQVFzZ0VnMEdRUUFoRWtFQUlRMGdBQVJBSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUVvQWdBaERRc2dCU2dDVEVFQmFnc2lBVFlDVENBTlFRQk9EUUZCQUNBTmF5RU5JQXhCZ01BQWNpRU1EQUVMSUFWQnpBQnFFTnNDSWcxQkFFZ05DQ0FGS0FKTUlRRUxRUUFoQmtGL0lRY0NmMEVBSUFFdEFBQkJMa2NOQUJvZ0FTMEFBVUVxUmdSQUlBVUNmd0pBSUFFc0FBSVFSVVVOQUNBRktBSk1JZ0V0QUFOQkpFY05BQ0FCTEFBQ1FRSjBJQVJxUWNBQmEwRUtOZ0lBSUFFc0FBSkJBM1FnQTJwQmdBTnJLQUlBSVFjZ0FVRUVhZ3dCQ3lBU0RRWWdBQVIvSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUVvQWdBRlFRQUxJUWNnQlNnQ1RFRUNhZ3NpQVRZQ1RDQUhRWDl6UVI5MkRBRUxJQVVnQVVFQmFqWUNUQ0FGUWN3QWFoRGJBaUVISUFVb0Frd2hBVUVCQ3lFVEEwQWdCaUVQUVJ3aENTQUJMQUFBUWNFQWEwRTVTdzBKSUFVZ0FVRUJhaUlSTmdKTUlBRXNBQUFoQmlBUklRRWdCaUFQUVRwc2FrR1BMbW90QUFBaUJrRUJhMEVJU1EwQUN3SkFBa0FnQmtFYlJ3UkFJQVpGRFFzZ0RrRUFUZ1JBSUFRZ0RrRUNkR29nQmpZQ0FDQUZJQU1nRGtFRGRHb3BBd0EzQTBBTUFnc2dBRVVOQ0NBRlFVQnJJQVlnQWhEWkFpQUZLQUpNSVJFTUFnc2dEa0VBVGcwS0MwRUFJUUVnQUVVTkJ3c2dERUgvLzN0eElnZ2dEQ0FNUVlEQUFIRWJJUVpCQUNFTVFlOGFJUTRnRUNFSkFrQUNRQUpBQW44Q1FBSkFBa0FDUUFKL0FrQUNRQUpBQWtBQ1FBSkFBa0FnRVVFQmF5d0FBQ0lCUVY5eElBRWdBVUVQY1VFRFJoc2dBU0FQR3lJQlFkZ0FhdzRoQkJRVUZCUVVGQlFVRGhRUEJnNE9EaFFHRkJRVUZBSUZBeFFVQ1JRQkZCUUVBQXNDUUNBQlFjRUFhdzRIRGhRTEZBNE9EZ0FMSUFGQjB3QkdEUWtNRXdzZ0JTa0RRQ0VXUWU4YURBVUxRUUFoQVFKQUFrQUNRQUpBQWtBQ1FBSkFJQTlCL3dGeERnZ0FBUUlEQkJvRkJob0xJQVVvQWtBZ0N6WUNBQXdaQ3lBRktBSkFJQXMyQWdBTUdBc2dCU2dDUUNBTHJEY0RBQXdYQ3lBRktBSkFJQXM3QVFBTUZnc2dCU2dDUUNBTE9nQUFEQlVMSUFVb0FrQWdDellDQUF3VUN5QUZLQUpBSUF1c053TUFEQk1MSUFkQkNDQUhRUWhMR3lFSElBWkJDSEloQmtINEFDRUJDeUFRSVFnZ0FVRWdjU0VQSUFVcEEwQWlGbEJGQkVBRFFDQUlRUUZySWdnZ0ZxZEJEM0ZCb0RKcUxRQUFJQTl5T2dBQUlCWkNEMVloQ2lBV1FnU0lJUllnQ2cwQUN3c2dDQ0VLSUFaQkNIRkZJQVVwQTBCUWNnMERJQUZCQkhaQjd4cHFJUTVCQWlFTURBTUxJQkFoQVNBRktRTkFJaFpRUlFSQUEwQWdBVUVCYXlJQklCYW5RUWR4UVRCeU9nQUFJQlpDQjFZaENDQVdRZ09JSVJZZ0NBMEFDd3NnQVNFS0lBWkJDSEZGRFFJZ0J5QVFJQXBySWdGQkFXb2dBU0FIU0JzaEJ3d0NDeUFGS1FOQUloWkNBRk1FUUNBRlFnQWdGbjBpRmpjRFFFRUJJUXhCN3hvTUFRc2dCa0dBRUhFRVFFRUJJUXhCOEJvTUFRdEI4UnBCN3hvZ0JrRUJjU0lNR3dzaERpQVdJQkFRandFaENnc2dFMEVBSUFkQkFFZ2JEUTRnQmtILy8zdHhJQVlnRXhzaEJpQUZLUU5BSWhaQ0FGSWdCM0pGQkVBZ0VDRUtRUUFoQnd3TUN5QUhJQlpRSUJBZ0NtdHFJZ0VnQVNBSFNCc2hCd3dMQ3lBRktBSkFJZ0ZCZ0I4Z0FSc2lDaUlKUVFCQi8vLy8vd2NnQnlBSFFRQklHeUlHRU53QklnRWdDV3NnQmlBQkd5SUJJQXBxSVFrZ0IwRUFUZ1JBSUFnaEJpQUJJUWNNQ3dzZ0NDRUdJQUVoQnlBSkxRQUFEUTBNQ2dzZ0J3UkFJQVVvQWtBTUFndEJBQ0VCSUFCQklDQU5RUUFnQmhBdURBSUxJQVZCQURZQ0RDQUZJQVVwQTBBK0FnZ2dCU0FGUVFocUlnRTJBa0JCZnlFSElBRUxJUWxCQUNFQkFrQURRQ0FKS0FJQUlnaEZEUUVnQlVFRWFpQUlFTjRDSWdwQkFFZ2lDQ0FLSUFjZ0FXdExja1VFUUNBSlFRUnFJUWtnQnlBQklBcHFJZ0ZMRFFFTUFnc0xJQWdORFF0QlBTRUpJQUZCQUVnTkN5QUFRU0FnRFNBQklBWVFMaUFCUlFSQVFRQWhBUXdCQzBFQUlRY2dCU2dDUUNFSkEwQWdDU2dDQUNJSVJRMEJJQVZCQkdvZ0NCRGVBaUlJSUFkcUlnY2dBVXNOQVNBQUlBVkJCR29nQ0JBcUlBbEJCR29oQ1NBQklBZExEUUFMQ3lBQVFTQWdEU0FCSUFaQmdNQUFjeEF1SUEwZ0FTQUJJQTFJR3lFQkRBZ0xJQk5CQUNBSFFRQklHdzBJUVQwaENTQUFJQVVyQTBBZ0RTQUhJQVlnQVVFeUVSMEFJZ0ZCQUU0TkJ3d0pDeUFGSUFVcEEwQThBRGRCQVNFSElCUWhDaUFJSVFZTUJBc2dCU0FCUVFGcUlnWTJBa3dnQVMwQUFTRUpJQVloQVF3QUN3QUxJQUFOQnlBU1JRMENRUUVoQVFOQUlBUWdBVUVDZEdvb0FnQWlBQVJBSUFNZ0FVRURkR29nQUNBQ0VOa0NRUUVoQ3lBQlFRRnFJZ0ZCQ2tjTkFRd0pDd3RCQVNFTElBRkJDazhOQndOQUlBUWdBVUVDZEdvb0FnQU5BU0FCUVFGcUlnRkJDa2NOQUFzTUJ3dEJIQ0VKREFRTElBa2dDbXNpRHlBSElBY2dEMGdiSWdoQi8vLy8vd2NnREd0S0RRSkJQU0VKSUFnZ0RHb2lCeUFOSUFjZ0RVb2JJZ0VnRlVvTkF5QUFRU0FnQVNBSElBWVFMaUFBSUE0Z0RCQXFJQUJCTUNBQklBY2dCa0dBZ0FSekVDNGdBRUV3SUFnZ0QwRUFFQzRnQUNBS0lBOFFLaUFBUVNBZ0FTQUhJQVpCZ01BQWN4QXVEQUVMQzBFQUlRc01Bd3RCUFNFSkMwSFVnUUVnQ1RZQ0FBdEJmeUVMQ3lBRlFkQUFhaVFBSUFzTGZ3SUJmd0YrSUFDOUlnTkNOSWluUWY4UGNTSUNRZjhQUndSOElBSkZCRUFnQVNBQVJBQUFBQUFBQUFBQVlRUi9RUUFGSUFCRUFBQUFBQUFBOEVPaUlBRVEzUUloQUNBQktBSUFRVUJxQ3pZQ0FDQUFEd3NnQVNBQ1FmNEhhellDQUNBRFF2Ly8vLy8vLy8rSGdIK0RRb0NBZ0lDQWdJRHdQNFMvQlNBQUN3c1NBQ0FBUlFSQVFRQVBDeUFBSUFFUTJnRUxKUUFnQUVFQVJ5QUFRY2d0UjNFZ0FFSGdMVWR4SUFCQmdJY0JSM0VnQUVHWWh3RkhjUXZvQWdFRGZ3SkFJQUV0QUFBTkFFR0tIaERiQVNJQkJFQWdBUzBBQUEwQkN5QUFRUXhzUVlBdWFoRGJBU0lCQkVBZ0FTMEFBQTBCQzBHUkhoRGJBU0lCQkVBZ0FTMEFBQTBCQzBHbkhpRUJDd0pBQTBBZ0FTQUNhaTBBQUNJRVJTQUVRUzlHY2tVRVFFRVhJUVFnQWtFQmFpSUNRUmRIRFFFTUFnc0xJQUloQkF0QnB4NGhBd0pBQWtBQ1FBSkFBa0FnQVMwQUFDSUNRUzVHRFFBZ0FTQUVhaTBBQUEwQUlBRWhBeUFDUWNNQVJ3MEJDeUFETFFBQlJRMEJDeUFEUWFjZUVMWUJSUTBBSUFOQjhSMFF0Z0VOQVFzZ0FFVUVRRUdrTFNFQ0lBTXRBQUZCTGtZTkFndEJBQThMUVFBaEFVSDhoZ0VvQWdBaUFnUkFBMEFnQXlBQ1FRaHFFTFlCUlEwQ0lBSW9BaUFpQWcwQUN3dEJKQkFaSWdJRVFDQUNRYVF0S1FJQU53SUFJQUpCQ0dvaUFTQURJQVFRUWhvZ0FTQUVha0VBT2dBQUlBSkIvSVlCS0FJQU5nSWdRZnlHQVNBQ05nSUFJQUloQVFzZ0FVR2tMU0FBSUFGeUd5RUNDeUFDQ3k4QUlBRVE3QUlpQVNBQVFmOEJjU0lBY1VFQmRDQUFJQUZ6YWlJQVFSVnlRUUYwSUFCQkZYTnJRUmgwUVJoMUM0MGVBZzkvQlg0akFFR1FBV3NpQkNRQUlBUkJBRUdRQVJCR0lnTkJmellDVENBRElBQTJBaXdnQTBFeE5nSWdJQU1nQURZQ1ZDQUJJUVFnQWlFT0l3QkJzQUpySWdZa0FDQURLQUpNR2dKQUFrQUNRQUpBSUFNb0FnUU5BQ0FERU9rQkdpQURLQUlFRFFBTUFRc2dCQzBBQUNJQVJRMENBa0FEUUFKQUFrQWdBRUgvQVhFUWNBUkFBMEFnQkNJQVFRRnFJUVFnQUMwQUFSQndEUUFMSUFOQ0FCQlRBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTEVIQU5BQXNnQXlnQ0JDRUVJQU1wQTNCQ0FGa0VRQ0FESUFSQkFXc2lCRFlDQkFzZ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZBd0JDd0ovQWtBQ1FDQUVMUUFBUVNWR0JFQWdCQzBBQVNJQVFTcEdEUUVnQUVFbFJ3MENDeUFEUWdBUVV3SkFJQVF0QUFCQkpVWUVRQU5BQW44Z0F5Z0NCQ0lBSUFNb0FtaEhCRUFnQXlBQVFRRnFOZ0lFSUFBdEFBQU1BUXNnQXhBU0N5SUFFSEFOQUFzZ0JFRUJhaUVFREFFTElBTW9BZ1FpQUNBREtBSm9Sd1JBSUFNZ0FFRUJhallDQkNBQUxRQUFJUUFNQVFzZ0F4QVNJUUFMSUFRdEFBQWdBRWNFUUNBREtRTndRZ0JaQkVBZ0F5QURLQUlFUVFGck5nSUVDeUFBUVFCT0RRcEJBQ0VNSUExRkRRZ01DZ3NnQXlnQ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZDQUVJUUFNQXd0QkFDRUNJQVJCQW1vTUFRc0NRQ0FBRUVWRkRRQWdCQzBBQWtFa1J3MEFJQVF0QUFGQk1Hc2hBQ01BUVJCcklnRWdEallDRENBQklBNGdBRUVDZEVFRWEwRUFJQUJCQVVzYmFpSUFRUVJxTmdJSUlBQW9BZ0FoQWlBRVFRTnFEQUVMSUE0b0FnQWhBaUFPUVFScUlRNGdCRUVCYWdzaEFFRUFJUXhCQUNFRUlBQXRBQUFRUlFSQUEwQWdBQzBBQUNBRVFRcHNha0V3YXlFRUlBQXRBQUVoQVNBQVFRRnFJUUFnQVJCRkRRQUxDeUFBTFFBQUlnVkI3UUJIQkg4Z0FBVkJBQ0VKSUFKQkFFY2hEQ0FBTFFBQklRVkJBQ0VLSUFCQkFXb0xJZ0ZCQVdvaEFFRURJUWNDUUFKQUFrQUNRQUpBQWtBZ0JVSEJBR3NPT2dRSkJBa0VCQVFKQ1FrSkF3a0pDUWtKQ1FRSkNRa0pCQWtKQkFrSkNRa0pCQWtFQkFRRUJBQUVCUWtCQ1FRRUJBa0pCQUlFQ1FrRUNRSUpDeUFCUVFKcUlBQWdBUzBBQVVIb0FFWWlBUnNoQUVGK1FYOGdBUnNoQnd3RUN5QUJRUUpxSUFBZ0FTMEFBVUhzQUVZaUFSc2hBRUVEUVFFZ0FSc2hCd3dEQzBFQklRY01BZ3RCQWlFSERBRUxRUUFoQnlBQklRQUxRUUVnQnlBQUxRQUFJZ0ZCTDNGQkEwWWlCUnNoRHdKQUlBRkJJSElnQVNBRkd5SUxRZHNBUmcwQUFrQWdDMEh1QUVjRVFDQUxRZU1BUncwQklBUkJBU0FFUVFGS0d5RUVEQUlMSUFJZ0R5QVVFT01DREFJTElBTkNBQkJUQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxFSEFOQUFzZ0F5Z0NCQ0VCSUFNcEEzQkNBRmtFUUNBRElBRkJBV3NpQVRZQ0JBc2dBU0FES0FJc2E2d2dBeWtEZUNBVWZId2hGQXNnQXlBRXJDSVNFRk1DUUNBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FNQVFzZ0F4QVNRUUJJRFFRTElBTXBBM0JDQUZrRVFDQURJQU1vQWdSQkFXczJBZ1FMUVJBaEFRSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBTFFkZ0FhdzRoQmdzTEFnc0xDd3NMQVFzQ0JBRUJBUXNGQ3dzTEN3c0RCZ3NMQWdzRUN3c0dBQXNnQzBIQkFHc2lBVUVHUzBFQklBRjBRZkVBY1VWeURRb0xJQVpCQ0dvZ0F5QVBRUUFRNWdJZ0F5a0RlRUlBSUFNb0FnUWdBeWdDTEd1c2ZWRU5EeUFDUlEwSklBWXBBeEFoRWlBR0tRTUlJUk1nRHc0REJRWUhDUXNnQzBIdkFYRkI0d0JHQkVBZ0JrRWdha0YvUVlFQ0VFWWFJQVpCQURvQUlDQUxRZk1BUncwSUlBWkJBRG9BUVNBR1FRQTZBQzRnQmtFQU5nRXFEQWdMSUFaQklHb2dBQzBBQVNJQlFkNEFSaUlGUVlFQ0VFWWFJQVpCQURvQUlDQUFRUUpxSUFCQkFXb2dCUnNoQ0FKL0FrQUNRQ0FBUVFKQkFTQUZHMm90QUFBaUFFRXRSd1JBSUFCQjNRQkdEUUVnQVVIZUFFY2hCeUFJREFNTElBWWdBVUhlQUVjaUJ6b0FUZ3dCQ3lBR0lBRkIzZ0JISWdjNkFINExJQWhCQVdvTElRQURRQUpBSUFBdEFBQWlBVUV0UndSQUlBRkZEUThnQVVIZEFFY05BUXdLQzBFdElRRWdBQzBBQVNJRlJTQUZRZDBBUm5JTkFDQUFRUUZxSVFnQ1FDQUZJQUJCQVdzdEFBQWlBRTBFUUNBRklRRU1BUXNEUUNBQVFRRnFJZ0FnQmtFZ2Ftb2dCem9BQUNBQUlBZ3RBQUFpQVVrTkFBc0xJQWdoQUFzZ0FTQUdhaUFIT2dBaElBQkJBV29oQUF3QUN3QUxRUWdoQVF3Q0MwRUtJUUVNQVF0QkFDRUJDMElBSVJKQkFDRUZRUUFoQ0VFQUlRY2pBRUVRYXlJUUpBQUNRQ0FCUVFGSElBRkJKRTF4UlFSQVFkU0JBVUVjTmdJQURBRUxBMEFDZnlBREtBSUVJZ1FnQXlnQ2FFY0VRQ0FESUFSQkFXbzJBZ1FnQkMwQUFBd0JDeUFERUJJTElnUVFjQTBBQ3dKQUFrQWdCRUVyYXc0REFBRUFBUXRCZjBFQUlBUkJMVVliSVFjZ0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQWhCQXdCQ3lBREVCSWhCQXNDUUFKQUFrQUNRQ0FCUVc5eElBUkJNRWR5UlFSQUFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUVY5eFFkZ0FSZ1JBUVJBaEFRSi9JQU1vQWdRaUJDQURLQUpvUndSQUlBTWdCRUVCYWpZQ0JDQUVMUUFBREFFTElBTVFFZ3NpQkVHeEtXb3RBQUJCRUVrTkF5QURLUU53UWdCWkJFQWdBeUFES0FJRVFRRnJOZ0lFQ3lBRFFnQVFVd3dHQ3lBQkRRRkJDQ0VCREFJTElBRkJDaUFCR3lJQklBUkJzU2xxTFFBQVN3MEFJQU1wQTNCQ0FGa0VRQ0FESUFNb0FnUkJBV3MyQWdRTElBTkNBQkJUUWRTQkFVRWNOZ0lBREFRTElBRkJDa2NOQUNBRVFUQnJJZ1ZCQ1UwRVFFRUFJUUVEUUNBQlFRcHNJQVZxSWdGQm1iUG16QUZKQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRVEJySWdWQkNVMXhEUUFMSUFHdElSSUxBa0FnQlVFSlN3MEFJQkpDQ240aEV5QUZyU0VWQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxJZ1JCTUdzaUJVRUpTeUFUSUJWOEloSkNtclBtekptejVzd1pXbklOQVNBU1FncCtJaE1nQmEwaUZVSi9oVmdOQUF0QkNpRUJEQUlMUVFvaEFTQUZRUWxORFFFTUFnc2dBU0FCUVFGcmNRUkFJQVJCc1NscUxRQUFJZ2dnQVVrRVFBTkFJQUVnQld3Z0NHb2lCVUhINC9FNFNRSi9JQU1vQWdRaUJDQURLQUpvUndSQUlBTWdCRUVCYWpZQ0JDQUVMUUFBREFFTElBTVFFZ3NpQkVHeEtXb3RBQUFpQ0NBQlNYRU5BQXNnQmEwaEVnc2dBU0FJVFEwQklBR3RJUk1EUUNBU0lCTitJaFVnQ0sxQy93R0RJaFpDZjRWV0RRSWdGU0FXZkNFU0lBRUNmeUFES0FJRUlnUWdBeWdDYUVjRVFDQURJQVJCQVdvMkFnUWdCQzBBQUF3QkN5QURFQklMSWdSQnNTbHFMUUFBSWdoTkRRSWdFQ0FUUWdBZ0VrSUFFQ3NnRUNrRENGQU5BQXNNQVFzZ0FVRVhiRUVGZGtFSGNVR3hLMm9zQUFBaEVTQUVRYkVwYWkwQUFDSUZJQUZKQkVBRFFDQUlJQkYwSUFWeUlnaEJnSUNBd0FCSkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUWJFcGFpMEFBQ0lGSUFGSmNRMEFDeUFJclNFU0N5QUJJQVZORFFCQ2Z5QVJyU0lUaUNJVklCSlVEUUFEUUNBRnJVTC9BWU1nRWlBVGhvUWhFaUFCQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRYkVwYWkwQUFDSUZUUTBCSUJJZ0ZWZ05BQXNMSUFFZ0JFR3hLV290QUFCTkRRQURRQ0FCQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0MwR3hLV290QUFCTERRQUxRZFNCQVVIRUFEWUNBRUVBSVFkQ2Z5RVNDeUFES1FOd1FnQlpCRUFnQXlBREtBSUVRUUZyTmdJRUMwRUFJQkpDZjFFZ0IwRUJjaHNFUUVIVWdRRkJ4QUEyQWdCQ2ZpRVNEQUVMSUJJZ0I2d2lFNFVnRTMwaEVnc2dFRUVRYWlRQUlBTXBBM2hDQUNBREtBSUVJQU1vQWl4cnJIMVJEUW9nQWtVZ0MwSHdBRWR5UlFSQUlBSWdFajRDQUF3RkN5QUNJQThnRWhEakFnd0VDeUFDSUJNZ0VoRGtBamdDQUF3REN5QUNJQk1nRWhEZEFUa0RBQXdDQ3lBQ0lCTTNBd0FnQWlBU053TUlEQUVMSUFSQkFXcEJIeUFMUWVNQVJpSUZHeUVIQWtBQ1FDQVBRUUZISWdoRkJFQWdBaUVCSUF3RVFDQUhRUUowRUJraUFVVU5CZ3NnQmtJQU53T29Ba0VBSVFRRFFDQUJJUW9EUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2lBU0FHYWkwQUlVVU5BeUFHSUFFNkFCc2dCa0VjYWlBR1FSdHFRUUVnQmtHb0Ftb1F0d0VpQVVGK1JnMEFRUUFoQ1NBQlFYOUdEUWtnQ2dSQUlBb2dCRUVDZEdvZ0JpZ0NIRFlDQUNBRVFRRnFJUVFMSUF3Z0JDQUhSbkZGRFFBTElBb2dCMEVCZEVFQmNpSUhRUUowRUo0QklnRU5BQXNNQndzZ0RBUkFRUUFoQkNBSEVCa2lBVVVOQlFOQUlBRWhDUU5BQW44Z0F5Z0NCQ0lCSUFNb0FtaEhCRUFnQXlBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQXhBU0N5SUJJQVpxTFFBaFJRUkFRUUFoQ2d3RkN5QUVJQWxxSUFFNkFBQWdCRUVCYWlJRUlBZEhEUUFMUVFBaENpQUpJQWRCQVhSQkFYSWlCeENlQVNJQkRRQUxEQWNMUVFBaEJDQUNCRUFEUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2lBU0FHYWkwQUlRUkFJQUlnQkdvZ0FUb0FBQ0FFUVFGcUlRUU1BUVZCQUNFS0lBSWhDUXdFQ3dBTEFBc0RRQUovSUFNb0FnUWlBU0FES0FKb1J3UkFJQU1nQVVFQmFqWUNCQ0FCTFFBQURBRUxJQU1RRWdzZ0Jtb3RBQ0VOQUF0QkFDRUpRUUFoQ2d3QkMwRUFJUWtnQmtHb0Ftb0VmeUFHS0FLb0FnVkJBQXNOQlFzZ0F5Z0NCQ0VCSUFNcEEzQkNBRmtFUUNBRElBRkJBV3NpQVRZQ0JBc2dBeWtEZUNBQklBTW9BaXhyckh3aUUxQWdDMEhqQUVZZ0VpQVRVbkZ5RFFZQ1FDQU1SUTBBSUFoRkJFQWdBaUFLTmdJQURBRUxJQUlnQ1RZQ0FBc2dCUTBBSUFvRVFDQUtJQVJCQW5ScVFRQTJBZ0FMSUFsRkJFQkJBQ0VKREFFTElBUWdDV3BCQURvQUFBc2dBeWdDQkNBREtBSXNhNndnQXlrRGVDQVVmSHdoRkNBTklBSkJBRWRxSVEwTElBQkJBV29oQkNBQUxRQUJJZ0FOQVF3RkN3dEJBQ0VKUVFBaENnc2dEUTBCQzBGL0lRMExJQXhGRFFBZ0NSQVFJQW9RRUFzZ0JrR3dBbW9rQUNBTklRQWdBMEdRQVdva0FDQUFDME1BQWtBZ0FFVU5BQUpBQWtBQ1FBSkFJQUZCQW1vT0JnQUJBZ0lFQXdRTElBQWdBandBQUE4TElBQWdBajBCQUE4TElBQWdBajRDQUE4TElBQWdBamNEQUFzTHRBTUNBMzhCZmlNQVFTQnJJZ01rQUFKQUlBRkMvLy8vLy8vLy8vLy9BSU1pQlVLQWdJQ0FnSURBd0Q5OUlBVkNnSUNBZ0lDQXdML0FBSDFVQkVBZ0FVSVppS2NoQkNBQVVDQUJRdi8vL3crRElnVkNnSUNBQ0ZRZ0JVS0FnSUFJVVJ0RkJFQWdCRUdCZ0lDQUJHb2hBZ3dDQ3lBRVFZQ0FnSUFFYWlFQ0lBQWdCVUtBZ0lBSWhZUkNBRklOQVNBQ0lBUkJBWEZxSVFJTUFRc2dBRkFnQlVLQWdJQ0FnSURBLy84QVZDQUZRb0NBZ0lDQWdNRC8vd0JSRzBVRVFDQUJRaG1JcDBILy8vOEJjVUdBZ0lEK0IzSWhBZ3dCQzBHQWdJRDhCeUVDSUFWQy8vLy8vLy8vdjcvQUFGWU5BRUVBSVFJZ0JVSXdpS2NpQkVHUi9nQkpEUUFnQTBFUWFpQUFJQUZDLy8vLy8vLy9QNE5DZ0lDQWdJQ0F3QUNFSWdVZ0JFR0IvZ0JyRUM4Z0F5QUFJQVZCZ2Y4QUlBUnJFSHdnQXlrRENDSUFRaG1JcHlFQ0lBTXBBd0FnQXlrREVDQURLUU1ZaEVJQVVxMkVJZ1ZRSUFCQy8vLy9ENE1pQUVLQWdJQUlWQ0FBUW9DQWdBaFJHMFVFUUNBQ1FRRnFJUUlNQVFzZ0JTQUFRb0NBZ0FpRmhFSUFVZzBBSUFKQkFYRWdBbW9oQWdzZ0EwRWdhaVFBSUFJZ0FVSWdpS2RCZ0lDQWdIaHhjcjRMZ1FRQ0EzOEJmZ0pBQWtBQ1FBSi9JQUFvQWdRaUFpQUFLQUpvUndSQUlBQWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBQVFFZ3NpQTBFcmF3NERBUUFCQUFzZ0EwRXdheUVCREFFTElBTkJMVVloQkFKQUlBRkZBbjhnQUNnQ0JDSUNJQUFvQW1oSEJFQWdBQ0FDUVFGcU5nSUVJQUl0QUFBTUFRc2dBQkFTQ3lJQ1FUQnJJZ0ZCQ2tseURRQWdBQ2tEY0VJQVV3MEFJQUFnQUNnQ0JFRUJhellDQkFzZ0FpRURDd0pBSUFGQkNra0VRRUVBSVFJRFFDQURJQUpCQ214cUlRRUNmeUFBS0FJRUlnSWdBQ2dDYUVjRVFDQUFJQUpCQVdvMkFnUWdBaTBBQUF3QkN5QUFFQklMSVFNZ0FVRXdheUVDSUFKQnpKbXo1Z0JJSUFOQk1Hc2lBVUVKVFhFTkFBc2dBcXdoQlFKQUlBRkJDazhOQUFOQUlBT3RJQVZDQ241OFFqQjlJUVVDZnlBQUtBSUVJZ0VnQUNnQ2FFY0VRQ0FBSUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFBRUJJTElnTkJNR3NpQVVFSlN3MEJJQVZDcm8rRjE4ZkM2Nk1CVXcwQUN3c2dBVUVLU1FSQUEwQUNmeUFBS0FJRUlnRWdBQ2dDYUVjRVFDQUFJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QUFFQklMUVRCclFRcEpEUUFMQ3lBQUtRTndRZ0JaQkVBZ0FDQUFLQUlFUVFGck5nSUVDMElBSUFWOUlBVWdCQnNoQlF3QkMwS0FnSUNBZ0lDQWdJQi9JUVVnQUNrRGNFSUFVdzBBSUFBZ0FDZ0NCRUVCYXpZQ0JFS0FnSUNBZ0lDQWdJQi9Ed3NnQlF1Z01nTVFmd2QrQVh3akFFRXdheUlNSkFBQ1FDQUNRUUpOQkVBZ0FrRUNkQ0lDUVp3cGFpZ0NBQ0VQSUFKQmtDbHFLQUlBSVE0RFFBSi9JQUVvQWdRaUFpQUJLQUpvUndSQUlBRWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBRVFFZ3NpQWhCd0RRQUxRUUVoQmdKQUFrQWdBa0VyYXc0REFBRUFBUXRCZjBFQklBSkJMVVliSVFZZ0FTZ0NCQ0lDSUFFb0FtaEhCRUFnQVNBQ1FRRnFOZ0lFSUFJdEFBQWhBZ3dCQ3lBQkVCSWhBZ3NDUUFKQUEwQWdCVUdLR21vc0FBQWdBa0VnY2tZRVFBSkFJQVZCQmtzTkFDQUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQ0VDREFFTElBRVFFaUVDQ3lBRlFRRnFJZ1ZCQ0VjTkFRd0NDd3NnQlVFRFJ3UkFJQVZCQ0VZTkFTQURSU0FGUVFSSmNnMENJQVZCQ0VZTkFRc2dBU2tEY0NJVVFnQlpCRUFnQVNBQktBSUVRUUZyTmdJRUN5QURSU0FGUVFSSmNnMEFJQlJDQUZNaEFnTkFJQUpGQkVBZ0FTQUJLQUlFUVFGck5nSUVDeUFGUVFGcklnVkJBMHNOQUFzTFFnQWhGQ01BUVJCcklnSWtBQUorSUFheVF3QUFnSCtVdkNJRFFmLy8vLzhIY1NJQlFZQ0FnQVJyUWYvLy8vY0hUUVJBSUFHdFFobUdRb0NBZ0lDQWdJREFQM3dNQVFzZ0E2MUNHWVpDZ0lDQWdJQ0F3UC8vQUlRZ0FVR0FnSUQ4QjA4TkFCcENBQ0FCUlEwQUdpQUNJQUd0UWdBZ0FXY2lBVUhSQUdvUUx5QUNLUU1BSVJRZ0Fpa0RDRUtBZ0lDQWdJREFBSVZCaWY4QUlBRnJyVUl3aG9RTElSVWdEQ0FVTndNQUlBd2dGU0FEUVlDQWdJQjRjYTFDSUlhRU53TUlJQUpCRUdva0FDQU1LUU1JSVJRZ0RDa0RBQ0VWREFJTEFrQUNRQUpBSUFVTkFFRUFJUVVEUUNBRlFjY2NhaXdBQUNBQ1FTQnlSdzBCQWtBZ0JVRUJTdzBBSUFFb0FnUWlBaUFCS0FKb1J3UkFJQUVnQWtFQmFqWUNCQ0FDTFFBQUlRSU1BUXNnQVJBU0lRSUxJQVZCQVdvaUJVRURSdzBBQ3d3QkN3SkFBa0FnQlE0RUFBRUJBZ0VMQWtBZ0FrRXdSdzBBQW44Z0FTZ0NCQ0lGSUFFb0FtaEhCRUFnQVNBRlFRRnFOZ0lFSUFVdEFBQU1BUXNnQVJBU0MwRmZjVUhZQUVZRVFDTUFRYkFEYXlJQ0pBQUNmeUFCS0FJRUlnVWdBU2dDYUVjRVFDQUJJQVZCQVdvMkFnUWdCUzBBQUF3QkN5QUJFQklMSVFVQ1FBSi9BMEFnQlVFd1J3UkFBa0FnQlVFdVJ3MEVJQUVvQWdRaUJTQUJLQUpvUmcwQUlBRWdCVUVCYWpZQ0JDQUZMUUFBREFNTEJTQUJLQUlFSWdVZ0FTZ0NhRWNFZjBFQklRb2dBU0FGUVFGcU5nSUVJQVV0QUFBRlFRRWhDaUFCRUJJTElRVU1BUXNMSUFFUUVnc2hCVUVCSVFRZ0JVRXdSdzBBQTBBZ0YwSUJmU0VYQW44Z0FTZ0NCQ0lGSUFFb0FtaEhCRUFnQVNBRlFRRnFOZ0lFSUFVdEFBQU1BUXNnQVJBU0N5SUZRVEJHRFFBTFFRRWhDZ3RDZ0lDQWdJQ0F3UDgvSVJVQ1FBTkFBa0FnQlVFZ2NpRUxBa0FDUUNBRlFUQnJJZ2hCQ2trTkFDQUZRUzVISUF0QjRRQnJRUVpQY1EwRUlBVkJMa2NOQUNBRURRSkJBU0VFSUJRaEZ3d0JDeUFMUWRjQWF5QUlJQVZCT1VvYklRVUNRQ0FVUWdkWEJFQWdCU0FKUVFSMGFpRUpEQUVMSUJSQ0hGY0VRQ0FDUVRCcUlBVVFRU0FDUVNCcUlCa2dGVUlBUW9DQWdJQ0FnTUQ5UHhBWUlBSkJFR29nQWlrRElDSVpJQUlwQXlnaUZTQUNLUU13SUFJcEF6Z1FHQ0FDSUJZZ0dDQUNLUU1RSUFJcEF4Z1FQQ0FDS1FNSUlSZ2dBaWtEQUNFV0RBRUxJQVZGSUFkeURRQWdBa0hRQUdvZ0dTQVZRZ0JDZ0lDQWdJQ0FnUDgvRUJnZ0FrRkFheUFXSUJnZ0Fpa0RVQ0FDS1FOWUVEd2dBaWtEU0NFWVFRRWhCeUFDS1FOQUlSWUxJQlJDQVh3aEZFRUJJUW9MSUFFb0FnUWlCU0FCS0FKb1J3Ui9JQUVnQlVFQmFqWUNCQ0FGTFFBQUJTQUJFQklMSVFVTUFRc0xRUzRoQlFzQ2ZpQUtSUVJBQWtBQ1FDQUJLUU53UWdCWkJFQWdBU0FCS0FJRUlnVkJBV3MyQWdRZ0EwVU5BU0FCSUFWQkFtczJBZ1FnQkVVTkFpQUJJQVZCQTJzMkFnUU1BZ3NnQXcwQkN5QUJRZ0FRVXdzZ0FrSGdBR29nQnJkRUFBQUFBQUFBQUFDaUVGMGdBaWtEWUNFV0lBSXBBMmdNQVFzZ0ZFSUhWd1JBSUJRaEZRTkFJQWxCQkhRaENTQVZRZ0Y4SWhWQ0NGSU5BQXNMQWtBQ1FBSkFJQVZCWDNGQjBBQkdCRUFnQVNBREVPVUNJaFZDZ0lDQWdJQ0FnSUNBZjFJTkF5QURCRUFnQVNrRGNFSUFXUTBDREFNTFFnQWhGaUFCUWdBUVUwSUFEQVFMUWdBaEZTQUJLUU53UWdCVERRSUxJQUVnQVNnQ0JFRUJhellDQkF0Q0FDRVZDeUFKUlFSQUlBSkI4QUJxSUFhM1JBQUFBQUFBQUFBQW9oQmRJQUlwQTNBaEZpQUNLUU40REFFTElCY2dGQ0FFRzBJQ2hpQVZmRUlnZlNJVVFRQWdEMnV0VlFSQVFkU0JBVUhFQURZQ0FDQUNRYUFCYWlBR0VFRWdBa0dRQVdvZ0Fpa0RvQUVnQWlrRHFBRkNmMEwvLy8vLy8vKy8vLzhBRUJnZ0FrR0FBV29nQWlrRGtBRWdBaWtEbUFGQ2YwTC8vLy8vLy8rLy8vOEFFQmdnQWlrRGdBRWhGaUFDS1FPSUFRd0JDeUFQUWVJQmE2d2dGRmNFUUNBSlFRQk9CRUFEUUNBQ1FhQURhaUFXSUJoQ0FFS0FnSUNBZ0lEQS83OS9FRHdnRmlBWVFvQ0FnSUNBZ0lEL1B4RGdBU0VCSUFKQmtBTnFJQllnR0NBV0lBSXBBNkFESUFGQkFFZ2lBeHNnR0NBQ0tRT29BeUFER3hBOElCUkNBWDBoRkNBQ0tRT1lBeUVZSUFJcEE1QURJUllnQ1VFQmRDQUJRUUJPY2lJSlFRQk9EUUFMQ3dKK0lCUWdENng5UWlCOEloV25JZ0ZCQUNBQlFRQktHeUFPSUJVZ0RxMVRHeUlCUWZFQVRnUkFJQUpCZ0FOcUlBWVFRU0FDS1FPSUF5RVhJQUlwQTRBRElSbENBQXdCQ3lBQ1FlQUNha0dRQVNBQmF4RGZBUkJkSUFKQjBBSnFJQVlRUVNBQ1FmQUNhaUFDS1FQZ0FpQUNLUVBvQWlBQ0tRUFFBaUlaSUFJcEE5Z0NJaGNRNndJZ0Fpa0QrQUloR2lBQ0tRUHdBZ3NoRlNBQ1FjQUNhaUFKSUFsQkFYRkZJQllnR0VJQVFnQVFlMEVBUnlBQlFTQkljWEVpQVdvUWtBRWdBa0d3QW1vZ0dTQVhJQUlwQThBQ0lBSXBBOGdDRUJnZ0FrR1FBbW9nQWlrRHNBSWdBaWtEdUFJZ0ZTQWFFRHdnQWtHZ0FtcENBQ0FXSUFFYlFnQWdHQ0FCR3lBWklCY1FHQ0FDUVlBQ2FpQUNLUU9nQWlBQ0tRT29BaUFDS1FPUUFpQUNLUU9ZQWhBOElBSkI4QUZxSUFJcEE0QUNJQUlwQTRnQ0lCVWdHaERlQVNBQ0tRUHdBU0lWSUFJcEEvZ0JJaGRDQUVJQUVIdEZCRUJCMUlFQlFjUUFOZ0lBQ3lBQ1FlQUJhaUFWSUJjZ0ZLY1E2Z0lnQWlrRDRBRWhGaUFDS1FQb0FRd0JDMEhVZ1FGQnhBQTJBZ0FnQWtIUUFXb2dCaEJCSUFKQndBRnFJQUlwQTlBQklBSXBBOWdCUWdCQ2dJQ0FnSUNBd0FBUUdDQUNRYkFCYWlBQ0tRUEFBU0FDS1FQSUFVSUFRb0NBZ0lDQWdNQUFFQmdnQWlrRHNBRWhGaUFDS1FPNEFRc2hGQ0FNSUJZM0F4QWdEQ0FVTndNWUlBSkJzQU5xSkFBZ0RDa0RHQ0VVSUF3cEF4QWhGUXdHQ3lBQktRTndRZ0JURFFBZ0FTQUJLQUlFUVFGck5nSUVDeUFCSVFVZ0JpRUpJQU1oQ2tFQUlRWkJBQ0VESXdCQmtNWUFheUlFSkFCQkFDQU9JQTlxSWhKcklSTUNRQUovQTBBZ0FrRXdSd1JBQWtBZ0FrRXVSdzBFSUFVb0FnUWlBU0FGS0FKb1JnMEFJQVVnQVVFQmFqWUNCQ0FCTFFBQURBTUxCU0FGS0FJRUlnRWdCU2dDYUVjRWYwRUJJUVlnQlNBQlFRRnFOZ0lFSUFFdEFBQUZRUUVoQmlBRkVCSUxJUUlNQVFzTElBVVFFZ3NoQWtFQklRY2dBa0V3UncwQUEwQWdGRUlCZlNFVUFuOGdCU2dDQkNJQklBVW9BbWhIQkVBZ0JTQUJRUUZxTmdJRUlBRXRBQUFNQVFzZ0JSQVNDeUlDUVRCR0RRQUxRUUVoQmdzZ0JFRUFOZ0tRQmdKK0FrQUNRQUpBQWtBQ1FDQUNRUzVHSWdGRklBSkJNR3NpQ0VFSlMzRkZCRUFEUUFKQUlBRkJBWEVFUUNBSFJRUkFJQlVoRkVFQklRY01BZ3NnQmtVaEFRd0VDeUFWUWdGOElSVWdBMEg4RDB3RVFDQU5JQlduSUFKQk1FWWJJUTBnQkVHUUJtb2dBMEVDZEdvaUFTQUxCSDhnQWlBQktBSUFRUXBzYWtFd2F3VWdDQXMyQWdCQkFTRUdRUUFnQzBFQmFpSUJJQUZCQ1VZaUFSc2hDeUFCSUFOcUlRTU1BUXNnQWtFd1JnMEFJQVFnQkNnQ2dFWkJBWEkyQW9CR1FkeVBBU0VOQ3dKL0lBVW9BZ1FpQVNBRktBSm9Sd1JBSUFVZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFVUUVnc2lBa0V1UmlJQklBSkJNR3NpQ0VFS1NYSU5BQXNMSUJRZ0ZTQUhHeUVVSUFaRklBSkJYM0ZCeFFCSGNrVUVRQUpBSUFVZ0NoRGxBaUlXUW9DQWdJQ0FnSUNBZ0g5U0RRQWdDa1VOQlVJQUlSWWdCU2tEY0VJQVV3MEFJQVVnQlNnQ0JFRUJhellDQkFzZ0JrVU5BeUFVSUJaOElSUU1CUXNnQmtVaEFTQUNRUUJJRFFFTElBVXBBM0JDQUZNTkFDQUZJQVVvQWdSQkFXczJBZ1FMSUFGRkRRSUxRZFNCQVVFY05nSUFDMElBSVJVZ0JVSUFFRk5DQUF3QkN5QUVLQUtRQmlJQlJRUkFJQVFnQ2JkRUFBQUFBQUFBQUFDaUVGMGdCQ2tEQUNFVklBUXBBd2dNQVFzZ0ZDQVZVaUFWUWdsVmNpQU9RUjVNUVFBZ0FTQU9kaHR5UlFSQUlBUkJNR29nQ1JCQklBUkJJR29nQVJDUUFTQUVRUkJxSUFRcEF6QWdCQ2tET0NBRUtRTWdJQVFwQXlnUUdDQUVLUU1RSVJVZ0JDa0RHQXdCQ3lBUFFYNXRyU0FVVXdSQVFkU0JBVUhFQURZQ0FDQUVRZUFBYWlBSkVFRWdCRUhRQUdvZ0JDa0RZQ0FFS1FOb1FuOUMvLy8vLy8vL3YvLy9BQkFZSUFSQlFHc2dCQ2tEVUNBRUtRTllRbjlDLy8vLy8vLy92Ly8vQUJBWUlBUXBBMEFoRlNBRUtRTklEQUVMSUE5QjRnRnJyQ0FVVlFSQVFkU0JBVUhFQURZQ0FDQUVRWkFCYWlBSkVFRWdCRUdBQVdvZ0JDa0RrQUVnQkNrRG1BRkNBRUtBZ0lDQWdJREFBQkFZSUFSQjhBQnFJQVFwQTRBQklBUXBBNGdCUWdCQ2dJQ0FnSUNBd0FBUUdDQUVLUU53SVJVZ0JDa0RlQXdCQ3lBTEJFQWdDMEVJVEFSQUlBUkJrQVpxSUFOQkFuUnFJZ0VvQWdBaEJRTkFJQVZCQ213aEJTQUxRUUZxSWd0QkNVY05BQXNnQVNBRk5nSUFDeUFEUVFGcUlRTUxBa0FnRFNBVXB5SUhTaUFOUVFsT2NpQUhRUkZLY2cwQUlBZEJDVVlFUUNBRVFjQUJhaUFKRUVFZ0JFR3dBV29nQkNnQ2tBWVFrQUVnQkVHZ0FXb2dCQ2tEd0FFZ0JDa0R5QUVnQkNrRHNBRWdCQ2tEdUFFUUdDQUVLUU9nQVNFVklBUXBBNmdCREFJTElBZEJDRXdFUUNBRVFaQUNhaUFKRUVFZ0JFR0FBbW9nQkNnQ2tBWVFrQUVnQkVId0FXb2dCQ2tEa0FJZ0JDa0RtQUlnQkNrRGdBSWdCQ2tEaUFJUUdDQUVRZUFCYWtFQUlBZHJRUUowUVpBcGFpZ0NBQkJCSUFSQjBBRnFJQVFwQS9BQklBUXBBL2dCSUFRcEErQUJJQVFwQStnQkVPa0NJQVFwQTlBQklSVWdCQ2tEMkFFTUFnc2dEaUFIUVgxc2FrRWJhaUlCUVI1TVFRQWdCQ2dDa0FZaUFpQUJkaHNOQUNBRVFlQUNhaUFKRUVFZ0JFSFFBbW9nQWhDUUFTQUVRY0FDYWlBRUtRUGdBaUFFS1FQb0FpQUVLUVBRQWlBRUtRUFlBaEFZSUFSQnNBSnFJQWRCQW5SQnlDaHFLQUlBRUVFZ0JFR2dBbW9nQkNrRHdBSWdCQ2tEeUFJZ0JDa0RzQUlnQkNrRHVBSVFHQ0FFS1FPZ0FpRVZJQVFwQTZnQ0RBRUxBMEFnQkVHUUJtb2dBeUlDUVFGcklnTkJBblJxS0FJQVJRMEFDMEVBSVFzQ1FDQUhRUWx2SWdGRkJFQkJBQ0VCREFFTElBRWdBVUVKYWlBSFFRQk9HeUVEQWtBZ0FrVUVRRUVBSVFGQkFDRUNEQUVMUVlDVTY5d0RRUUFnQTJ0QkFuUkJrQ2xxS0FJQUlnWnRJUXBCQUNFSVFRQWhCVUVBSVFFRFFDQUVRWkFHYWlBRlFRSjBhaUlOSUFnZ0RTZ0NBQ0lOSUFadUloQnFJZ2cyQWdBZ0FVRUJha0gvRDNFZ0FTQUlSU0FCSUFWR2NTSUlHeUVCSUFkQkNXc2dCeUFJR3lFSElBb2dEU0FHSUJCc2Eyd2hDQ0FGUVFGcUlnVWdBa2NOQUFzZ0NFVU5BQ0FFUVpBR2FpQUNRUUowYWlBSU5nSUFJQUpCQVdvaEFnc2dCeUFEYTBFSmFpRUhDd05BQWtBZ0IwRWtUZ1JBSUFkQkpFY05BU0FFUVpBR2FpQUJRUUowYWlnQ0FFSFI2ZmtFVHcwQkN5QUNRZjhQYWlFR1FRQWhDQU5BSUFpdElBUkJrQVpxSUFaQi93OXhJZ05CQW5ScUlnWTFBZ0JDSFlaOEloUkNnWlRyM0FOVUJIOUJBQVVnRkNBVVFvQ1U2OXdEZ0NJVlFvQ1U2OXdEZm4waEZDQVZwd3NoQ0NBR0lCU25JZ1kyQWdBZ0FpQUNJQUlnQXlBR0d5QUJJQU5HR3lBRElBSkJBV3RCL3c5eFJ4c2hBaUFEUVFGcklRWWdBU0FEUncwQUN5QUxRUjFySVFzZ0NFVU5BU0FDSUFGQkFXdEIvdzl4SWdGR0JFQWdCRUdRQm1vaUF5QUNRZjRQYWtIL0QzRkJBblJxSWdZZ0JpZ0NBQ0FDUVFGclFmOFBjU0lDUVFKMElBTnFLQUlBY2pZQ0FBc2dCMEVKYWlFSElBUkJrQVpxSUFGQkFuUnFJQWcyQWdBTUFRc0xBa0FEUUNBQ1FRRnFRZjhQY1NFRElBUkJrQVpxSUFKQkFXdEIvdzl4UVFKMGFpRUlBMEFnQVNFR1FRQWhCUUpBQWtBRFFBSkFJQVVnQm1wQi93OXhJZ0VnQWtZTkFDQUVRWkFHYWlBQlFRSjBhaWdDQUNJQklBVkJBblJCNENocUtBSUFJZ3BKRFFBZ0FTQUtTdzBDSUFWQkFXb2lCVUVFUncwQkN3c2dCMEVrUncwQVFnQWhGRUVBSVFWQ0FDRVZBMEFnQWlBRklBWnFRZjhQY1NJQlJnUkFJQUpCQVdwQi93OXhJZ0pCQW5RZ0JHcEJBRFlDakFZTElBUkJnQVpxSUJRZ0ZVSUFRb0NBZ0lEbG1yZU93QUFRR0NBRVFmQUZhaUFFUVpBR2FpQUJRUUowYWlnQ0FCQ1FBU0FFUWVBRmFpQUVLUU9BQmlBRUtRT0lCaUFFS1FQd0JTQUVLUVA0QlJBOElBUXBBK2dGSVJVZ0JDa0Q0QVVoRkNBRlFRRnFJZ1ZCQkVjTkFBc2dCRUhRQldvZ0NSQkJJQVJCd0FWcUlCUWdGU0FFS1FQUUJTQUVLUVBZQlJBWUlBUXBBOGdGSVJWQ0FDRVVJQVFwQThBRklSWWdDMEh4QUdvaUJ5QVBheUlEUVFBZ0EwRUFTaHNnRGlBRElBNUlJZ1ViSWdGQjhBQk1EUUVNQkF0QkNVRUJJQWRCTFVvYklnb2dDMm9oQ3lBR0lBSWlBVVlOQVVHQWxPdmNBeUFLZGlFTlFYOGdDblJCZjNNaEVFRUFJUVVnQmlFQkEwQWdCRUdRQm1vZ0JrRUNkR29pRVNBRklCRW9BZ0FpRVNBS2Rtb2lCVFlDQUNBQlFRRnFRZjhQY1NBQklBVkZJQUVnQmtaeElnVWJJUUVnQjBFSmF5QUhJQVViSVFjZ0VDQVJjU0FOYkNFRklBWkJBV3BCL3c5eElnWWdBa2NOQUFzZ0JVVU5BU0FCSUFOSEJFQWdCRUdRQm1vZ0FrRUNkR29nQlRZQ0FDQURJUUlNQXdzZ0NDQUlLQUlBUVFGeU5nSUFJQU1oQVF3QkN3c0xJQVJCa0FWcVFlRUJJQUZyRU44QkVGMGdCRUd3QldvZ0JDa0RrQVVnQkNrRG1BVWdGaUFWRU9zQ0lBUXBBN2dGSVJrZ0JDa0RzQVVoR0NBRVFZQUZha0h4QUNBQmF4RGZBUkJkSUFSQm9BVnFJQllnRlNBRUtRT0FCU0FFS1FPSUJSRG5BaUFFUWZBRWFpQVdJQlVnQkNrRG9BVWlGQ0FFS1FPb0JTSVhFTjRCSUFSQjRBUnFJQmdnR1NBRUtRUHdCQ0FFS1FQNEJCQThJQVFwQStnRUlSVWdCQ2tENEFRaEZnc0NRQ0FHUVFScVFmOFBjU0lLSUFKR0RRQUNRQ0FFUVpBR2FpQUtRUUowYWlnQ0FDSUtRZi9KdGU0QlRRUkFJQXBGSUFaQkJXcEIvdzl4SUFKR2NRMEJJQVJCOEFOcUlBbTNSQUFBQUFBQUFOQS9vaEJkSUFSQjRBTnFJQlFnRnlBRUtRUHdBeUFFS1FQNEF4QThJQVFwQStnRElSY2dCQ2tENEFNaEZBd0JDeUFLUVlES3RlNEJSd1JBSUFSQjBBUnFJQW0zUkFBQUFBQUFBT2cvb2hCZElBUkJ3QVJxSUJRZ0Z5QUVLUVBRQkNBRUtRUFlCQkE4SUFRcEE4Z0VJUmNnQkNrRHdBUWhGQXdCQ3lBSnR5RWJJQUlnQmtFRmFrSC9EM0ZHQkVBZ0JFR1FCR29nRzBRQUFBQUFBQURnUDZJUVhTQUVRWUFFYWlBVUlCY2dCQ2tEa0FRZ0JDa0RtQVFRUENBRUtRT0lCQ0VYSUFRcEE0QUVJUlFNQVFzZ0JFR3dCR29nRzBRQUFBQUFBQURvUDZJUVhTQUVRYUFFYWlBVUlCY2dCQ2tEc0FRZ0JDa0R1QVFRUENBRUtRT29CQ0VYSUFRcEE2QUVJUlFMSUFGQjd3QktEUUFnQkVIUUEyb2dGQ0FYUWdCQ2dJQ0FnSUNBd1A4L0VPY0NJQVFwQTlBRElBUXBBOWdEUWdCQ0FCQjdEUUFnQkVIQUEyb2dGQ0FYUWdCQ2dJQ0FnSUNBd1A4L0VEd2dCQ2tEeUFNaEZ5QUVLUVBBQXlFVUN5QUVRYkFEYWlBV0lCVWdGQ0FYRUR3Z0JFR2dBMm9nQkNrRHNBTWdCQ2tEdUFNZ0dDQVpFTjRCSUFRcEE2Z0RJUlVnQkNrRG9BTWhGZ0pBUVg0Z0Vtc2dCMEgvLy8vL0IzRk9EUUFnQkNBVlF2Ly8vLy8vLy8vLy93Q0ROd09ZQXlBRUlCWTNBNUFESUFSQmdBTnFJQllnRlVJQVFvQ0FnSUNBZ0lEL1B4QVlJQVFwQTVBREloZ2dCQ2tEbUFNaUdVS0FnSUNBZ0lDQXVNQUFFT0FCSVFJZ0ZTQUVLUU9JQXlBQ1FRQklJZ1liSVJVZ0ZpQUVLUU9BQXlBR0d5RVdJQk1nQ3lBQ1FRQk9haUlMUWU0QWFrNEVRQ0FGSUFVZ0FTQURSM0VnR0NBWlFvQ0FnSUNBZ0lDNHdBQVE0QUZCQUVnYlFRRkhEUUVnRkNBWFFnQkNBQkI3UlEwQkMwSFVnUUZCeEFBMkFnQUxJQVJCOEFKcUlCWWdGU0FMRU9vQ0lBUXBBL0FDSVJVZ0JDa0QrQUlMSVJRZ0RDQVZOd01nSUF3Z0ZEY0RLQ0FFUVpER0FHb2tBQ0FNS1FNb0lSUWdEQ2tESUNFVkRBUUxJQUVwQTNCQ0FGa0VRQ0FCSUFFb0FnUkJBV3MyQWdRTERBRUxBa0FDZnlBQktBSUVJZ0lnQVNnQ2FFY0VRQ0FCSUFKQkFXbzJBZ1FnQWkwQUFBd0JDeUFCRUJJTFFTaEdCRUJCQVNFRkRBRUxRb0NBZ0lDQWdPRC8vd0FoRkNBQktRTndRZ0JURFFNZ0FTQUJLQUlFUVFGck5nSUVEQU1MQTBBQ2Z5QUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQkVCSUxJZ0pCTUd0QkNra2dBa0hCQUd0QkdrbHlJQUpCM3dCR2NrVWdBa0hoQUd0QkdrOXhSUVJBSUFWQkFXb2hCUXdCQ3d0Q2dJQ0FnSUNBNFAvL0FDRVVJQUpCS1VZTkFpQUJLUU53SWhkQ0FGa0VRQ0FCSUFFb0FnUkJBV3MyQWdRTEFrQWdBd1JBSUFVTkFRd0VDd3dCQ3dOQUlBVkJBV3NoQlNBWFFnQlpCRUFnQVNBQktBSUVRUUZyTmdJRUN5QUZEUUFMREFJTFFkU0JBVUVjTmdJQUlBRkNBQkJUQzBJQUlSUUxJQUFnRlRjREFDQUFJQlEzQXdnZ0RFRXdhaVFBQzhvR0FnUi9BMzRqQUVHQUFXc2lCU1FBQWtBQ1FBSkFJQU1nQkVJQVFnQVFlMFVOQUFKL0lBUkMvLy8vLy8vL1A0TWhDUUovSUFSQ01JaW5RZi8vQVhFaUJrSC8vd0ZIQkVCQkJDQUdEUUVhUVFKQkF5QURJQW1FVUJzTUFnc2dBeUFKaEZBTEMwVU5BQ0FDUWpDSXB5SUlRZi8vQVhFaUJrSC8vd0ZIRFFFTElBVkJFR29nQVNBQ0lBTWdCQkFZSUFVZ0JTa0RFQ0lCSUFVcEF4Z2lBaUFCSUFJUTZRSWdCU2tEQ0NFQ0lBVXBBd0FoQkF3QkN5QUJJQUpDLy8vLy8vLy9QNE1nQnExQ01JYUVJZ29nQXlBRVF2Ly8vLy8vL3orRElBUkNNSWluUWYvL0FYRWlCNjFDTUlhRUlna1FlMEVBVEFSQUlBRWdDaUFESUFrUWV3UkFJQUVoQkF3Q0N5QUZRZkFBYWlBQklBSkNBRUlBRUJnZ0JTa0RlQ0VDSUFVcEEzQWhCQXdCQ3lBR0JINGdBUVVnQlVIZ0FHb2dBU0FLUWdCQ2dJQ0FnSUNBd0x2QUFCQVlJQVVwQTJnaUNrSXdpS2RCK0FCcklRWWdCU2tEWUFzaEJDQUhSUVJBSUFWQjBBQnFJQU1nQ1VJQVFvQ0FnSUNBZ01DN3dBQVFHQ0FGS1FOWUlnbENNSWluUWZnQWF5RUhJQVVwQTFBaEF3c2dDVUwvLy8vLy8vOC9nMEtBZ0lDQWdJREFBSVFoQ1NBS1F2Ly8vLy8vL3orRFFvQ0FnSUNBZ01BQWhDRUtJQVlnQjBvRVFBTkFBbjRnQ2lBSmZTQURJQVJXclgwaUMwSUFXUVJBSUFzZ0JDQURmU0lFaEZBRVFDQUZRU0JxSUFFZ0FrSUFRZ0FRR0NBRktRTW9JUUlnQlNrRElDRUVEQVVMSUF0Q0FZWWdCRUkvaUlRTUFRc2dDa0lCaGlBRVFqK0loQXNoQ2lBRVFnR0dJUVFnQmtFQmF5SUdJQWRLRFFBTElBY2hCZ3NDUUNBS0lBbDlJQU1nQkZhdGZTSUpRZ0JUQkVBZ0NpRUpEQUVMSUFrZ0JDQURmU0lFaEVJQVVnMEFJQVZCTUdvZ0FTQUNRZ0JDQUJBWUlBVXBBemdoQWlBRktRTXdJUVFNQVFzZ0NVTC8vLy8vLy84L1dBUkFBMEFnQkVJL2lDRUJJQVpCQVdzaEJpQUVRZ0dHSVFRZ0FTQUpRZ0dHaENJSlFvQ0FnSUNBZ01BQVZBMEFDd3NnQ0VHQWdBSnhJUWNnQmtFQVRBUkFJQVZCUUdzZ0JDQUpRdi8vLy8vLy96K0RJQVpCK0FCcUlBZHlyVUl3aG9SQ0FFS0FnSUNBZ0lEQXd6OFFHQ0FGS1FOSUlRSWdCU2tEUUNFRURBRUxJQWxDLy8vLy8vLy9QNE1nQmlBSGNxMUNNSWFFSVFJTElBQWdCRGNEQUNBQUlBSTNBd2dnQlVHQUFXb2tBQXN5QUNBQVFmOEJjU0lBSUFFUTdBSWlBVUYvYzNGQkFYUWdBQ0FCYzJzaUFFRnFjVUVCZENBQVFSVnphMEVZZEVFWWRRdXFEd0lGZnc1K0l3QkIwQUpySWdVa0FDQUVRdi8vLy8vLy96K0RJUXNnQWtMLy8vLy8vLzgvZ3lFS0lBSWdCSVZDZ0lDQWdJQ0FnSUNBZjRNaERTQUVRakNJcDBILy93RnhJUWdDUUFKQUlBSkNNSWluUWYvL0FYRWlDVUVCYTBIOS93Rk5CRUFnQ0VFQmEwSCsvd0ZKRFFFTElBRlFJQUpDLy8vLy8vLy8vLy8vQUlNaURFS0FnSUNBZ0lEQS8vOEFWQ0FNUW9DQWdJQ0FnTUQvL3dCUkcwVUVRQ0FDUW9DQWdJQ0FnQ0NFSVEwTUFnc2dBMUFnQkVMLy8vLy8vLy8vLy84QWd5SUNRb0NBZ0lDQWdNRC8vd0JVSUFKQ2dJQ0FnSUNBd1AvL0FGRWJSUVJBSUFSQ2dJQ0FnSUNBSUlRaERTQURJUUVNQWdzZ0FTQU1Rb0NBZ0lDQWdNRC8vd0NGaEZBRVFDQURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRZ0FoQVVLQWdJQ0FnSURnLy84QUlRME1Bd3NnRFVLQWdJQ0FnSURBLy84QWhDRU5RZ0FoQVF3Q0N5QURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRZ0FoQVF3Q0N5QUJJQXlFVUFSQVFvQ0FnSUNBZ09ELy93QWdEU0FDSUFPRVVCc2hEVUlBSVFFTUFnc2dBaUFEaEZBRVFDQU5Rb0NBZ0lDQWdNRC8vd0NFSVExQ0FDRUJEQUlMSUF4Qy8vLy8vLy8vUDFnRVFDQUZRY0FDYWlBQklBb2dBU0FLSUFwUUlnWWJlU0FHUVFaMHJYeW5JZ1pCRDJzUUwwRVFJQVpySVFZZ0JTa0R5QUloQ2lBRktRUEFBaUVCQ3lBQ1F2Ly8vLy8vL3o5V0RRQWdCVUd3QW1vZ0F5QUxJQU1nQ3lBTFVDSUhHM2tnQjBFR2RLMThweUlIUVE5ckVDOGdCaUFIYWtFUWF5RUdJQVVwQTdnQ0lRc2dCU2tEc0FJaEF3c2dCVUdnQW1vZ0MwS0FnSUNBZ0lEQUFJUWlFa0lQaGlBRFFqR0loQ0lDUWdCQ2dJQ0FnTERtdklMMUFDQUNmU0lFUWdBUUt5QUZRWkFDYWtJQUlBVXBBNmdDZlVJQUlBUkNBQkFySUFWQmdBSnFJQVVwQTVnQ1FnR0dJQVVwQTVBQ1FqK0loQ0lFUWdBZ0FrSUFFQ3NnQlVId0FXb2dCRUlBUWdBZ0JTa0RpQUo5UWdBUUt5QUZRZUFCYWlBRktRUDRBVUlCaGlBRktRUHdBVUkvaUlRaUJFSUFJQUpDQUJBcklBVkIwQUZxSUFSQ0FFSUFJQVVwQStnQmZVSUFFQ3NnQlVIQUFXb2dCU2tEMkFGQ0FZWWdCU2tEMEFGQ1A0aUVJZ1JDQUNBQ1FnQVFLeUFGUWJBQmFpQUVRZ0JDQUNBRktRUElBWDFDQUJBcklBVkJvQUZxSUFKQ0FDQUZLUU80QVVJQmhpQUZLUU93QVVJL2lJUkNBWDBpQWtJQUVDc2dCVUdRQVdvZ0EwSVBoa0lBSUFKQ0FCQXJJQVZCOEFCcUlBSkNBRUlBSUFVcEE2Z0JJQVVwQTZBQklnd2dCU2tEbUFGOElnUWdERlN0ZkNBRVFnRldyWHg5UWdBUUt5QUZRWUFCYWtJQklBUjlRZ0FnQWtJQUVDc2dCaUFKSUFocmFpRUdBbjhnQlNrRGNDSVRRZ0dHSWc0Z0JTa0RpQUVpRDBJQmhpQUZLUU9BQVVJL2lJUjhJaEJDNSt3QWZTSVVRaUNJSWdJZ0NrS0FnSUNBZ0lEQUFJUWlGVUlmaUVMLy8vLy9ENE1pQkg0aUVTQUJRZ0dHSWd4Q0lJZ2lDeUFRSUJSV3JTQU9JQkJXclNBRktRTjRRZ0dHSUJOQ1A0aUVJQTlDUDRoOGZIeENBWDBpRTBJZ2lDSVFmbndpRGlBUlZLMGdEaUFPSUJOQy8vLy8vdytESWhNZ0FVSS9pQ0lXSUFwQ0FZYUVRdi8vLy84UGd5SUtmbndpRGxhdGZDQUVJQkIrZkNBRUlCTitJaEVnQ2lBUWZud2lEeUFSVksxQ0lJWWdEMElnaUlSOElBNGdEaUFQUWlDR2ZDSU9WcTE4SUE0Z0RpQVVRdi8vLy84UGd5SVVJQXArSWhFZ0FpQUxmbndpRHlBUlZLMGdEeUFQSUJNZ0RFTCsvLy8vRDRNaUVYNThJZzlXclh4OElnNVdyWHdnRGlBRUlCUitJaGNnRUNBUmZud2lCQ0FDSUFwK2ZDSUtJQXNnRTM1OEloQkNJSWdnQ2lBUVZxMGdCQ0FYVkswZ0JDQUtWcTE4ZkVJZ2hvUjhJZ1FnRGxTdGZDQUVJQThnQWlBUmZpSUNJQXNnRkg1OElndENJSWdnQWlBTFZxMUNJSWFFZkNJQ0lBOVVyU0FDSUJCQ0lJWjhJQUpVclh4OElnSWdCRlN0ZkNJRVF2Ly8vLy8vLy84QVdBUkFJQlZDQVlZZ0ZvUWhGU0FGUWRBQWFpQUNJQVFnQXlBU0VDc2dBVUl4aGlBRktRTllmU0FGS1FOUUlnRkNBRkt0ZlNFS1FnQWdBWDBoQ3lBR1FmNy9BR29NQVFzZ0JVSGdBR29nQkVJL2hpQUNRZ0dJaENJQ0lBUkNBWWdpQkNBRElCSVFLeUFCUWpDR0lBVXBBMmg5SUFVcEEyQWlERUlBVXExOUlRcENBQ0FNZlNFTElBRWhEQ0FHUWYvL0FHb0xJZ1pCLy84QlRnUkFJQTFDZ0lDQWdJQ0F3UC8vQUlRaERVSUFJUUVNQVFzQ2ZpQUdRUUJLQkVBZ0NrSUJoaUFMUWorSWhDRUtJQVJDLy8vLy8vLy9QNE1nQnExQ01JYUVJUXdnQzBJQmhnd0JDeUFHUVk5L1RBUkFRZ0FoQVF3Q0N5QUZRVUJySUFJZ0JFRUJJQVpyRUh3Z0JVRXdhaUFNSUJVZ0JrSHdBR29RTHlBRlFTQnFJQU1nRWlBRktRTkFJZ0lnQlNrRFNDSU1FQ3NnQlNrRE9DQUZLUU1vUWdHR0lBVXBBeUFpQVVJL2lJUjlJQVVwQXpBaUJDQUJRZ0dHSWdGVXJYMGhDaUFFSUFGOUN5RUVJQVZCRUdvZ0F5QVNRZ05DQUJBcklBVWdBeUFTUWdWQ0FCQXJJQXdnQWlBQ0lBTWdBa0lCZ3lJQklBUjhJZ05VSUFvZ0FTQURWcTE4SWdFZ0VsWWdBU0FTVVJ1dGZDSUNWcTE4SWdRZ0FpQUNJQVJDZ0lDQWdJQ0F3UC8vQUZRZ0F5QUZLUU1RVmlBQklBVXBBeGdpQkZZZ0FTQUVVUnR4clh3aUFsYXRmQ0lFSUFJZ0JFS0FnSUNBZ0lEQS8vOEFWQ0FESUFVcEF3QldJQUVnQlNrRENDSURWaUFCSUFOUkczR3RmQ0lCSUFKVXJYd2dEWVFoRFFzZ0FDQUJOd01BSUFBZ0RUY0RDQ0FGUWRBQ2FpUUFDNzhDQVFGL0l3QkIwQUJySWdRa0FBSkFJQU5CZ0lBQlRnUkFJQVJCSUdvZ0FTQUNRZ0JDZ0lDQWdJQ0FnUC8vQUJBWUlBUXBBeWdoQWlBRUtRTWdJUUVnQTBILy93RklCRUFnQTBILy93QnJJUU1NQWdzZ0JFRVFhaUFCSUFKQ0FFS0FnSUNBZ0lDQS8vOEFFQmdnQTBIOS93SWdBMEg5L3dKSUcwSCsvd0ZySVFNZ0JDa0RHQ0VDSUFRcEF4QWhBUXdCQ3lBRFFZR0FmMG9OQUNBRVFVQnJJQUVnQWtJQVFvQ0FnSUNBZ0lBNUVCZ2dCQ2tEU0NFQ0lBUXBBMEFoQVNBRFFmU0Fma29FUUNBRFFZMy9BR29oQXd3QkN5QUVRVEJxSUFFZ0FrSUFRb0NBZ0lDQWdJQTVFQmdnQTBIb2dYMGdBMEhvZ1gxS0cwR2EvZ0ZxSVFNZ0JDa0RPQ0VDSUFRcEF6QWhBUXNnQkNBQklBSkNBQ0FEUWYvL0FHcXRRakNHRUJnZ0FDQUVLUU1JTndNSUlBQWdCQ2tEQURjREFDQUVRZEFBYWlRQUN6VUFJQUFnQVRjREFDQUFJQUpDLy8vLy8vLy9QNE1nQkVJd2lLZEJnSUFDY1NBQ1FqQ0lwMEgvL3dGeGNxMUNNSWFFTndNSUM0NEJBUU4vSXdCQkVHc2hBUU5BUWV5Y3I5OERJUUlDUUFOQUlBSkIzYmJodkFaR0RRRWdBa0dXejhLK0JFY0VRQ0FDUWV5Y3I5OERSdzBCSUFFZ0FEWUNEQ0FCSUFNMkFnaEJscy9DdmdSQjNiYmh2QVlnQVNnQ0RCc2hBZ3dCQ3dzZ0FTZ0NDQ0lBUVFGMFFRSnhJQUJCQVhOcUlRTWdBU2dDRENBQktBSU1RUUZyY1NFQURBRUxDeUFCS0FJSUN5d0FJQUFvQWdBYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBZ0FCQ0pBV29hSUFBb0FnQWdBQkNGQVdvYUN3Y0FJQUVnQUdzTENRQWdBQ0FCRU80Q0N5c0JBWDhnQUNnQ0FDSUJCRUFnQVJEN0FrRi9FRjVGQkVBZ0FDZ0NBRVVQQ3lBQVFRQTJBZ0FMUVFFTEt3RUJmeUFBS0FJQUlnRUVRQ0FCRUlBRFFYOFFYa1VFUUNBQUtBSUFSUThMSUFCQkFEWUNBQXRCQVFzTkFFRUFJQUFnQUVGL0VGNGJDNDBCQVFSL0l3QkJFR3NpQlNRQUlBRWdBaER2QWlJRVFXOU5CRUFDUUNBRVFRcE5CRUFnQUNBRUVEb2dBQ0VEREFFTElBQWdCQkNSQVVFQmFpSUdFRjhpQXhCTklBQWdCaEJNSUFBZ0JCQTVDd05BSUFFZ0FrY0VRQ0FESUFFUU5DQURRUUZxSVFNZ0FVRUJhaUVCREFFTEN5QUZRUUE2QUE4Z0F5QUZRUTlxRURRZ0JVRVFhaVFBRHdzUUZ3QUw1UVFCQjM4Z0FDZ0NCQ0FBRUVNb0FnQkhCRUFqQUVFUWF5SUNKQUFnQWlBQU5nSUFJQUlnQUNnQ0JDSUROZ0lFSUFJZ0EwRUJhallDQ0NBQUVFTWdBaWdDQkNBQkVJd0NJQUlnQWlnQ0JFRUJhallDQkNBQ0VJa0NJQUpCRUdva0FBOExJd0JCSUdzaUJ5UUFJQUFRUXlJSUFuOGdCMEVJYWlFQ0FuOGdBQkNKQVVFQmFpRUdJd0JCRUdzaUJTUUFJQVVnQmpZQ0RDTUFRUkJySWdRa0FDQUFFRU1hSUFSQmZ6WUNEQ0FFUWYvLy8vOEhOZ0lJSUFSQkRHb2dCRUVJYWhDaUFTZ0NBQ0VESUFSQkVHb2tBQ0FESUFaUEJFQWdBQkNGQVNJRUlBTkJBWFpKQkVBZ0JTQUVRUUYwTmdJSUlBVkJDR29nQlVFTWFoQjJLQUlBSVFNTElBVkJFR29rQUNBRERBRUxRYWNiRUpZQ0FBc2hCU0FBRUlrQklRWkJBQ0VESXdCQkVHc2lCQ1FBSUFSQkFEWUNEQ0FDUVF4cUlBUkJER29nQ0JDRUFpQUZCRUFnQWlnQ0VCb2dCUkJmSVFNTElBSWdBellDQUNBQ0lBTWdCbW9pQmpZQ0NDQUNJQVkyQWdRZ0FoQ0RBU0FESUFWcU5nSUFJQVJCRUdva0FDQUNLQUlJQ3lBQkVJd0NJQUlnQWlnQ0NFRUJhallDQ0NBQUVPMENJQUFRUXlBQUtBSUFJQUFvQWdRZ0FrRUVhaUlCRUlNQ0lBQWdBUkIxSUFCQkJHb2dBa0VJYWhCMUlBQVFReUFDRUlNQkVIVWdBaUFDS0FJRU5nSUFJQUFRaVFFYUlBQW9BZ0FhSUFBb0FnQWdBQkNGQVdvYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBYUlBSW9BZ1FpQUNBQ0tBSUlSd1JBQTBBZ0FpZ0NFQm9nQWlBQ0tBSUlRUUZyTmdJSUlBSW9BZ2dnQUVjTkFBc0xJQUlvQWdBRVFDQUNLQUlRR2lBQ0tBSUFJUUFnQWhDREFTZ0NBQ0FDS0FJQWF4b2dBQkFRQ3lBSFFTQnFKQUFMRHdBZ0FDQUFLQUlZSUFGcU5nSVlDeGNBSUFBZ0FqWUNIQ0FBSUFFMkFoUWdBQ0FCTmdJWUMxWUJBbjhDUUNBQUtBSUFJZ0pGRFFBQ2Z5QUNLQUlZSWdNZ0FpZ0NIRVlFUUNBQ0lBRWdBaWdDQUNnQ05CRUNBQXdCQ3lBQ0lBTkJCR28yQWhnZ0F5QUJOZ0lBSUFFTFFYOFFYa1VOQUNBQVFRQTJBZ0FMQ3lZQkFYOENRQ0FBS0FJQUlnSkZEUUFnQWlBQkVQNENRWDhRWGtVTkFDQUFRUUEyQWdBTEN3a0FJQUFRNUFFUUVBc3hBUUYvSUFBb0Fnd2lBU0FBS0FJUVJnUkFJQUFnQUNnQ0FDZ0NLQkVBQUE4TElBQWdBVUVFYWpZQ0RDQUJLQUlBQ3ljQkFYOGdBQ2dDRENJQklBQW9BaEJHQkVBZ0FDQUFLQUlBS0FJa0VRQUFEd3NnQVNnQ0FBc1FBQ0FBRVBBQ0lBRVE4QUp6UVFGekM0c0VBUVovSXdCQklHc2lBaVFBSUFKQkFEWUNIQ01BUVNCcklnUWtBQ0FDUVJocUlnWkJBRG9BQUNBQUlBQW9BZ0JCREdzb0FnQnFFTGtCSVFVZ0FDQUFLQUlBUVF4cktBSUFhaUVEQWtBZ0JRUkFJQU1vQWtnRVFDQUFJQUFvQWdCQkRHc29BZ0JxS0FKSUVJWURDd0pBSUFBZ0FDZ0NBRUVNYXlnQ0FHb29BZ1JCZ0NCeFJRMEFJQVJCR0dvaUF5QUFJQUFvQWdCQkRHc29BZ0JxRUE4Z0F4QXlJUWNnQXhBT0lBUkJFR29nQUJEQUFTRURJQVJCQ0dvUWhRTWhCUU5BQWtBZ0F5QUZFREZGRFFBZ0IwR0F3QUFnQXhBZkVFUkZEUUFnQXhBaUdnd0JDd3NnQXlBRkVDWkZEUUFnQUNBQUtBSUFRUXhyS0FJQWFrRUdFSUFCQ3lBR0lBQWdBQ2dDQUVFTWF5Z0NBR29RdVFFNkFBQU1BUXNnQTBFRUVJQUJDeUFFUVNCcUpBQWdCaTBBQUFSQUlBSkJFR29pQkNBQUlBQW9BZ0JCREdzb0FnQnFFQThnQkVISWh3RVFaQ0VESUFKQkNHb2dBQkRBQVNFR0lBSVFoUU1oQlNBRElBWW9BZ0FnQlNnQ0FDQUFJQUFvQWdCQkRHc29BZ0JxSUFKQkhHb2dBa0VVYWlBREtBSUFLQUlRRVFVQUdpQUVFQTRnQVFKL0lBSW9BaFJCZ0lDQWdIaElCRUFnQWlBQ0tBSWNRUVJ5TmdJY1FZQ0FnSUI0REFFTElBSW9BaFJCLy8vLy93ZEtCRUFnQWlBQ0tBSWNRUVJ5TmdJY1FmLy8vLzhIREFFTElBSW9BaFFMTmdJQUlBQWdBQ2dDQUVFTWF5Z0NBR29nQWlnQ0hCQ0FBUXNnQWtFZ2FpUUFDenNCQVg4Z0FDZ0NHQ0lDSUFBb0FoeEdCRUFnQUNBQkVHVWdBQ2dDQUNnQ05CRUNBQThMSUFBZ0FrRUJhallDR0NBQ0lBRTZBQUFnQVJCbEN6TUJBWDhnQUNnQ0RDSUJJQUFvQWhCR0JFQWdBQ0FBS0FJQUtBSW9FUUFBRHdzZ0FDQUJRUUZxTmdJTUlBRXNBQUFRWlFzcEFRRi9JQUFvQWd3aUFTQUFLQUlRUmdSQUlBQWdBQ2dDQUNnQ0pCRUFBQThMSUFFc0FBQVFaUXNRQUNBQUVQRUNJQUVROFFKelFRRnpDNDBCQVFGL0FrQWdBQ2dDQkNJQklBRW9BZ0JCREdzb0FnQnFLQUlZUlEwQUlBQW9BZ1FpQVNBQktBSUFRUXhyS0FJQWFoQzVBVVVOQUNBQUtBSUVJZ0VnQVNnQ0FFRU1heWdDQUdvb0FnUkJnTUFBY1VVTkFDQUFLQUlFSWdFZ0FTZ0NBRUVNYXlnQ0FHb29BaGdRZ3dOQmYwY05BQ0FBS0FJRUlnQWdBQ2dDQUVFTWF5Z0NBR3BCQVJDQUFRc0xEd0FnQUNBQUtBSUFLQUlZRVFBQUMxVUFJQUFnQVRZQ0JDQUFRUUE2QUFBZ0FTQUJLQUlBUVF4cktBSUFhaEM1QVFSQUlBRWdBU2dDQUVFTWF5Z0NBR29vQWtnRVFDQUJJQUVvQWdCQkRHc29BZ0JxS0FKSUVJWURDeUFBUVFFNkFBQUxJQUFMQ3dBZ0FFRUFOZ0lBSUFBTGJnRUNmeU1BUVJCcklnRWtBQ0FBSUFBb0FnQkJER3NvQWdCcUtBSVlCRUFDUUNBQlFRaHFJQUFRaEFNaUFpMEFBRVVOQUNBQUlBQW9BZ0JCREdzb0FnQnFLQUlZRUlNRFFYOUhEUUFnQUNBQUtBSUFRUXhyS0FJQWFrRUJFSUFCQ3lBQ0VJSURDeUFCUVJCcUpBQUxDUUFnQUJEbEFSQVFDd1FBUVg4THhnZ0JCbjhnQUNBQktBQUFJZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNpSUZOZ0lBSUFBZ0FTZ0FCQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSWlCallDQkNBQUlBRW9BQWdpQTBFWWRDQURRUWgwUVlDQS9BZHhjaUFEUVFoMlFZRCtBM0VnQTBFWWRuSnlJZ2MyQWdnZ0FDQUJLQUFNSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUlFTmdJTUFrQWdBa0dBQVVZRVFFRUFJUU1EUUNBQUlBUkJGblpCL0FkeFFZQUlhaTBBQVNBRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0hSQmdJQ0FlSEVnQlhNZ0JFRUdka0g4QjNGQmdBaHFMUUFDUVJCMGN5QUVRZjhCY1VFQ2RFR0FDR290QUFGQkNIUnpjeUFEUVlBYWFpMEFBRUVZZEhNaUJUWUNFQ0FBSUFVZ0JuTWlCallDRkNBQUlBWWdCM01pQnpZQ0dDQUFJQVFnQjNNaUJEWUNIQ0FBUVJCcUlRQkJDaUVCSUFOQkFXb2lBMEVLUncwQUN3d0JDeUFBSUFFb0FCQWlBMEVZZENBRFFRaDBRWUNBL0FkeGNpQURRUWgyUVlEK0EzRWdBMEVZZG5KeU5nSVFJQUFnQVNnQUZDSURRUmgwSUFOQkNIUkJnSUQ4QjNGeUlBTkJDSFpCZ1A0RGNTQURRUmgyY25JaUF6WUNGQ0FDUWNBQlJnUkFRUUFoQVFOQUlBQWdBMEVXZGtIOEIzRkJnQWhxTFFBQklBTkJEblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBRmN5QURRUVoyUWZ3SGNVR0FDR290QUFKQkVIUnpJQU5CL3dGeFFRSjBRWUFJYWkwQUFVRUlkSE56SUFGQmdCcHFMUUFBUVJoMGN5SUZOZ0lZSUFBZ0JTQUdjeUlHTmdJY0lBQWdCaUFIY3lJSE5nSWdJQUFnQkNBSGN5SUVOZ0lrSUFGQkIwWUVRRUVNRHdVZ0FDQUFLQUlRSUFSeklnSTJBaWdnQUNBQ0lBTnpJZ00yQWl3Z0FVRUJhaUVCSUFCQkdHb2hBQXdCQ3dBTEFBc2dBQ0FCS0FBWUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y2pZQ0dDQUFJQUVvQUJ3aUFVRVlkQ0FCUVFoMFFZQ0EvQWR4Y2lBQlFRaDJRWUQrQTNFZ0FVRVlkbkp5SWdNMkFoeEJmeUVCSUFKQmdBSkhEUUJCQUNFQ1FRNGhBUU5BSUFBZ0EwRVdka0g4QjNGQmdBaHFMUUFCSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FGY3lBRFFRWjJRZndIY1VHQUNHb3RBQUpCRUhSeklBTkIvd0Z4UVFKMFFZQUlhaTBBQVVFSWRITnpJQUpCZ0JwcUxRQUFRUmgwY3lJRk5nSWdJQUFnQlNBR2N5SUdOZ0lrSUFBZ0JpQUhjeUlITmdJb0lBQWdCQ0FIY3lJRU5nSXNJQUpCQmtZTkFTQUFJQVJCL3dGeFFRSjBRWUFJYWkwQUFTQUFLQUlRSUFSQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjWE1nQkVFT2RrSDhCM0ZCZ0FocUxRQUNRUkIwY3lBRVFRWjJRZndIY1VHQUNHb3RBQUZCQ0hSemN5SUlOZ0l3SUFBZ0NDQUFLQUlVY3lJSU5nSTBJQUFnQUNnQ0dDQUljeUlJTmdJNElBQWdBeUFJY3lJRE5nSThJQUpCQVdvaEFpQUFRU0JxSVFBTUFBc0FDeUFCQ3k0QUlBQWdBQ2dDQUNnQ0pCRUFBRUYvUmdSQVFYOFBDeUFBSUFBb0Fnd2lBRUVCYWpZQ0RDQUFMQUFBRUdVTEJBQkJmd3UvQVFFRWZ5TUFRUkJySWdRa0FBTkFBa0FnQWlBRlRBMEFBa0FnQUNnQ0RDSURJQUFvQWhBaUJra0VRQ0FFUWYvLy8vOEhOZ0lNSUFRZ0JpQURhellDQ0NBRUlBSWdCV3MyQWdRZ0JFRU1haUFFUVFocUlBUkJCR29RdWdFUXVnRWhBeUFCSUFBb0Fnd2dBeWdDQUNJREVGVWdBQ0FBS0FJTUlBTnFOZ0lNREFFTElBQWdBQ2dDQUNnQ0tCRUFBQ0lEUVg5R0RRRWdBU0FERUp3Qk9nQUFRUUVoQXdzZ0FTQURhaUVCSUFNZ0JXb2hCUXdCQ3dzZ0JFRVFhaVFBSUFVTENRQWdBRUovRUxzQkN3a0FJQUJDZnhDN0FRc0VBQ0FBQ3drQUlBQVF2QUVRRUFzSUFDQUFFSDRRRUFzSEFDQUFLQUlNQ3hBQUl3QWdBR3RCY0hFaUFDUUFJQUFMQmdBZ0FDUUFDd1FBSXdBTERBQWdBQkRCQVJvZ0FCQVFDd2tBSUFBUXdRRVFFQXNGQUVIK0d3c2JBQ0FBSUFFb0FnZ2dCUkErQkVBZ0FTQUNJQU1nQkJERUFRc0xPQUFnQUNBQktBSUlJQVVRUGdSQUlBRWdBaUFESUFRUXhBRVBDeUFBS0FJSUlnQWdBU0FDSUFNZ0JDQUZJQUFvQWdBb0FoUVJDUUFMbGdJQkJuOGdBQ0FCS0FJSUlBVVFQZ1JBSUFFZ0FpQURJQVFReEFFUEN5QUJMUUExSVFjZ0FDZ0NEQ0VHSUFGQkFEb0FOU0FCTFFBMElRZ2dBVUVBT2dBMElBQkJFR29pQ1NBQklBSWdBeUFFSUFVUXdnRWdCeUFCTFFBMUlncHlJUWNnQ0NBQkxRQTBJZ3R5SVFnQ1FDQUdRUUpJRFFBZ0NTQUdRUU4wYWlFSklBQkJHR29oQmdOQUlBRXRBRFlOQVFKQUlBc0VRQ0FCS0FJWVFRRkdEUU1nQUMwQUNFRUNjUTBCREFNTElBcEZEUUFnQUMwQUNFRUJjVVVOQWdzZ0FVRUFPd0UwSUFZZ0FTQUNJQU1nQkNBRkVNSUJJQUV0QURVaUNpQUhjaUVISUFFdEFEUWlDeUFJY2lFSUlBWkJDR29pQmlBSlNRMEFDd3NnQVNBSFFmOEJjVUVBUnpvQU5TQUJJQWhCL3dGeFFRQkhPZ0EwQzVJQkFDQUFJQUVvQWdnZ0JCQStCRUFnQVNBQ0lBTVF3d0VQQ3dKQUlBQWdBU2dDQUNBRUVENUZEUUFDUUNBQ0lBRW9BaEJIQkVBZ0FTZ0NGQ0FDUncwQkN5QURRUUZIRFFFZ0FVRUJOZ0lnRHdzZ0FTQUNOZ0lVSUFFZ0F6WUNJQ0FCSUFFb0FpaEJBV28yQWlnQ1FDQUJLQUlrUVFGSERRQWdBU2dDR0VFQ1J3MEFJQUZCQVRvQU5nc2dBVUVFTmdJc0N3dnpBUUFnQUNBQktBSUlJQVFRUGdSQUlBRWdBaUFERU1NQkR3c0NRQ0FBSUFFb0FnQWdCQkErQkVBQ1FDQUNJQUVvQWhCSEJFQWdBU2dDRkNBQ1J3MEJDeUFEUVFGSERRSWdBVUVCTmdJZ0R3c2dBU0FETmdJZ0FrQWdBU2dDTEVFRVJnMEFJQUZCQURzQk5DQUFLQUlJSWdBZ0FTQUNJQUpCQVNBRUlBQW9BZ0FvQWhRUkNRQWdBUzBBTlFSQUlBRkJBellDTENBQkxRQTBSUTBCREFNTElBRkJCRFlDTEFzZ0FTQUNOZ0lVSUFFZ0FTZ0NLRUVCYWpZQ0tDQUJLQUlrUVFGSERRRWdBU2dDR0VFQ1J3MEJJQUZCQVRvQU5nOExJQUFvQWdnaUFDQUJJQUlnQXlBRUlBQW9BZ0FvQWhnUkNnQUxDNTBFQVFOL0lBQWdBU2dDQ0NBRUVENEVRQ0FCSUFJZ0F4RERBUThMQWtBZ0FDQUJLQUlBSUFRUVBnUkFBa0FnQWlBQktBSVFSd1JBSUFFb0FoUWdBa2NOQVFzZ0EwRUJSdzBDSUFGQkFUWUNJQThMSUFFZ0F6WUNJQ0FCS0FJc1FRUkhCRUFnQUVFUWFpSUZJQUFvQWd4QkEzUnFJUWRCQUNFRElBRUNmd0pBQTBBQ1FDQUZJQWRQRFFBZ0FVRUFPd0UwSUFVZ0FTQUNJQUpCQVNBRUVNSUJJQUV0QURZTkFBSkFJQUV0QURWRkRRQWdBUzBBTkFSQVFRRWhBeUFCS0FJWVFRRkdEUVJCQVNFR0lBQXRBQWhCQW5FTkFRd0VDMEVCSVFZZ0FDMEFDRUVCY1VVTkF3c2dCVUVJYWlFRkRBRUxDMEVFSUFaRkRRRWFDMEVEQ3pZQ0xDQURRUUZ4RFFJTElBRWdBallDRkNBQklBRW9BaWhCQVdvMkFpZ2dBU2dDSkVFQlJ3MEJJQUVvQWhoQkFrY05BU0FCUVFFNkFEWVBDeUFBS0FJTUlRVWdBRUVRYWlJR0lBRWdBaUFESUFRUW9BRWdCVUVDU0EwQUlBWWdCVUVEZEdvaEJpQUFRUmhxSVFVQ1FDQUFLQUlJSWdCQkFuRkZCRUFnQVNnQ0pFRUJSdzBCQ3dOQUlBRXRBRFlOQWlBRklBRWdBaUFESUFRUW9BRWdCVUVJYWlJRklBWkpEUUFMREFFTElBQkJBWEZGQkVBRFFDQUJMUUEyRFFJZ0FTZ0NKRUVCUmcwQ0lBVWdBU0FDSUFNZ0JCQ2dBU0FGUVFocUlnVWdCa2tOQUF3Q0N3QUxBMEFnQVMwQU5nMEJJQUVvQWlSQkFVWUVRQ0FCS0FJWVFRRkdEUUlMSUFVZ0FTQUNJQU1nQkJDZ0FTQUZRUWhxSWdVZ0Jra05BQXNMQ3djQUlBQW9BZ1FMYndFQ2Z5QUFJQUVvQWdoQkFCQStCRUFnQVNBQ0lBTVF4Z0VQQ3lBQUtBSU1JUVFnQUVFUWFpSUZJQUVnQWlBREVQQUJBa0FnQkVFQ1NBMEFJQVVnQkVFRGRHb2hCQ0FBUVJocUlRQURRQ0FBSUFFZ0FpQURFUEFCSUFFdEFEWU5BU0FBUVFocUlnQWdCRWtOQUFzTEN6SUFJQUFnQVNnQ0NFRUFFRDRFUUNBQklBSWdBeERHQVE4TElBQW9BZ2dpQUNBQklBSWdBeUFBS0FJQUtBSWNFUWdBQ3hrQUlBQWdBU2dDQ0VFQUVENEVRQ0FCSUFJZ0F4REdBUXNMdWdNQkJYOGpBRUZBYWlJRUpBQUNmMEVCSUFBZ0FVRUFFRDROQUJwQkFDQUJSUTBBR2lNQVFVQnFJZ01rQUNBQktBSUFJZ1ZCQkdzb0FnQWhCaUFGUVFocktBSUFJUWNnQTBFQU5nSVVJQU5CclAwQU5nSVFJQU1nQVRZQ0RDQURRZHo5QURZQ0NFRUFJUVVnQTBFWWFrRUFRU2NRUmhvZ0FTQUhhaUVCQWtBZ0JrSGMvUUJCQUJBK0JFQWdBMEVCTmdJNElBWWdBMEVJYWlBQklBRkJBVUVBSUFZb0FnQW9BaFFSQ1FBZ0FVRUFJQU1vQWlCQkFVWWJJUVVNQVFzZ0JpQURRUWhxSUFGQkFVRUFJQVlvQWdBb0FoZ1JDZ0FDUUFKQUlBTW9BaXdPQWdBQkFnc2dBeWdDSEVFQUlBTW9BaWhCQVVZYlFRQWdBeWdDSkVFQlJodEJBQ0FES0FJd1FRRkdHeUVGREFFTElBTW9BaUJCQVVjRVFDQURLQUl3RFFFZ0F5Z0NKRUVCUncwQklBTW9BaWhCQVVjTkFRc2dBeWdDR0NFRkN5QURRVUJySkFCQkFDQUZJZ0ZGRFFBYUlBUkJDR29pQTBFRWNrRUFRVFFRUmhvZ0JFRUJOZ0k0SUFSQmZ6WUNGQ0FFSUFBMkFoQWdCQ0FCTmdJSUlBRWdBeUFDS0FJQVFRRWdBU2dDQUNnQ0hCRUlBQ0FFS0FJZ0lnQkJBVVlFUUNBQ0lBUW9BaGcyQWdBTElBQkJBVVlMSVFBZ0JFRkFheVFBSUFBTEJRQVFGd0FMQXdBQUN3a0FRZHlLQVJBS0dnc3ZBQUpBUWVpS0FTMEFBRUVCY1EwQVFlaUtBUkFrUlEwQVFkeUtBVUhnMVFBUWhBRkI2SW9CRUNNTFFkeUtBUXNKQUVITWlnRVFDaG9MTGdBQ1FFSFlpZ0V0QUFCQkFYRU5BRUhZaWdFUUpFVU5BRUhNaWdGQjZoc1FWQnBCMklvQkVDTUxRY3lLQVFzSkFFRzhpZ0VRQ2hvTEx3QUNRRUhJaWdFdEFBQkJBWEVOQUVISWlnRVFKRVVOQUVHOGlnRkJqTlVBRUlRQlFjaUtBUkFqQzBHOGlnRUxDUUJCcklvQkVBb2FDeTRBQWtCQnVJb0JMUUFBUVFGeERRQkJ1SW9CRUNSRkRRQkJySW9CUWR3ZEVGUWFRYmlLQVJBakMwR3NpZ0VMQ1FCQm5Jb0JFQW9hQ3k4QUFrQkJxSW9CTFFBQVFRRnhEUUJCcUlvQkVDUkZEUUJCbklvQlFlalVBQkNFQVVHb2lnRVFJd3RCbklvQkN3a0FRWXlLQVJBS0dnc3VBQUpBUVppS0FTMEFBRUVCY1EwQVFaaUtBUkFrUlEwQVFZeUtBVUgzSFJCVUdrR1lpZ0VRSXd0QmpJb0JDd2tBUWZ5SkFSQUtHZ3N2QUFKQVFZaUtBUzBBQUVFQmNRMEFRWWlLQVJBa1JRMEFRZnlKQVVIRTFBQVFoQUZCaUlvQkVDTUxRZnlKQVFzSkFFSHNpUUVRQ2hvTExnQUNRRUg0aVFFdEFBQkJBWEVOQUVINGlRRVFKRVVOQUVIc2lRRkI1aG9RVkJwQitJa0JFQ01MUWV5SkFRc2JBRUhva2dFaEFBTkFJQUJCREdzUUNpSUFRZENTQVVjTkFBc0xmUUFDUUVIb2lRRXRBQUJCQVhFTkFFSG9pUUVRSkVVTkFBSkFRZWlTQVMwQUFFRUJjUTBBUWVpU0FSQWtSUTBBUWRDU0FTRUFBMEFnQUJCSFFReHFJZ0JCNkpJQlJ3MEFDMEhva2dFUUl3dEIwSklCUWZEN0FCQVVRZHlTQVVIOCt3QVFGRUhraVFGQjBKSUJOZ0lBUWVpSkFSQWpDMEhraVFFb0FnQUxHd0JCeUpJQklRQURRQ0FBUVF4ckVBb2lBRUd3a2dGSERRQUxDM3NBQWtCQjRJa0JMUUFBUVFGeERRQkI0SWtCRUNSRkRRQUNRRUhJa2dFdEFBQkJBWEVOQUVISWtnRVFKRVVOQUVHd2tnRWhBQU5BSUFBUUVVRU1haUlBUWNpU0FVY05BQXRCeUpJQkVDTUxRYkNTQVVHSEhoQVZRYnlTQVVHRUhoQVZRZHlKQVVHd2tnRTJBZ0JCNElrQkVDTUxRZHlKQVNnQ0FBc2JBRUdna2dFaEFBTkFJQUJCREdzUUNpSUFRWUNRQVVjTkFBc0wyUUlBQWtCQjJJa0JMUUFBUVFGeERRQkIySWtCRUNSRkRRQUNRRUdna2dFdEFBQkJBWEVOQUVHZ2tnRVFKRVVOQUVHQWtBRWhBQU5BSUFBUVIwRU1haUlBUWFDU0FVY05BQXRCb0pJQkVDTUxRWUNRQVVIbzl3QVFGRUdNa0FGQmlQZ0FFQlJCbUpBQlFhejRBQkFVUWFTUUFVSEUrQUFRRkVHd2tBRkIzUGdBRUJSQnZKQUJRZXo0QUJBVVFjaVFBVUdBK1FBUUZFSFVrQUZCbFBrQUVCUkI0SkFCUWJENUFCQVVRZXlRQVVIWStRQVFGRUg0a0FGQitQa0FFQlJCaEpFQlFaejZBQkFVUVpDUkFVSEErZ0FRRkVHY2tRRkIwUG9BRUJSQnFKRUJRZUQ2QUJBVVFiU1JBVUh3K2dBUUZFSEFrUUZCM1BnQUVCUkJ6SkVCUVlEN0FCQVVRZGlSQVVHUSt3QVFGRUhra1FGQm9Qc0FFQlJCOEpFQlFiRDdBQkFVUWZ5UkFVSEErd0FRRkVHSWtnRkIwUHNBRUJSQmxKSUJRZUQ3QUJBVVFkU0pBVUdBa0FFMkFnQkIySWtCRUNNTFFkU0pBU2dDQUFzYkFFSHdqd0VoQUFOQUlBQkJER3NRQ2lJQVFkQ05BVWNOQUFzTHdRSUFBa0JCMElrQkxRQUFRUUZ4RFFCQjBJa0JFQ1JGRFFBQ1FFSHdqd0V0QUFCQkFYRU5BRUh3andFUUpFVU5BRUhRalFFaEFBTkFJQUFRRVVFTWFpSUFRZkNQQVVjTkFBdEI4SThCRUNNTFFkQ05BVUdjR2hBVlFkeU5BVUdUR2hBVlFlaU5BVUhnSEJBVlFmU05BVUhXSEJBVlFZQ09BVUhpR2hBVlFZeU9BVUhMSFJBVlFaaU9BVUdrR2hBVlFhU09BVUdVR3hBVlFiQ09BVUcvR3hBVlFieU9BVUd1R3hBVlFjaU9BVUcyR3hBVlFkU09BVUhKR3hBVlFlQ09BVUhMSEJBVlFleU9BVUhZSFJBVlFmaU9BVUhpR3hBVlFZU1BBVUdqR3hBVlFaQ1BBVUhpR2hBVlFaeVBBVUg2R3hBVlFhaVBBVUhQSEJBVlFiU1BBVUhtSEJBVlFjQ1BBVUhtR3hBVlFjeVBBVUdiR3hBVlFkaVBBVUdNR3hBVlFlU1BBVUhVSFJBVlFjeUpBVUhRalFFMkFnQkIwSWtCRUNNTFFjeUpBU2dDQUFzYkFFSElqUUVoQUFOQUlBQkJER3NRQ2lJQVFhQ01BVWNOQUFzTDlRRUFBa0JCeUlrQkxRQUFRUUZ4RFFCQnlJa0JFQ1JGRFFBQ1FFSElqUUV0QUFCQkFYRU5BRUhJalFFUUpFVU5BRUdnakFFaEFBTkFJQUFRUjBFTWFpSUFRY2lOQVVjTkFBdEJ5STBCRUNNTFFhQ01BVUdVOVFBUUZFR3NqQUZCc1BVQUVCUkJ1SXdCUWN6MUFCQVVRY1NNQVVIczlRQVFGRUhRakFGQmxQWUFFQlJCM0l3QlFiajJBQkFVUWVpTUFVSFU5Z0FRRkVIMGpBRkIrUFlBRUJSQmdJMEJRWWozQUJBVVFZeU5BVUdZOXdBUUZFR1lqUUZCcVBjQUVCUkJwSTBCUWJqM0FCQVVRYkNOQVVISTl3QVFGRUc4alFGQjJQY0FFQlJCeElrQlFhQ01BVFlDQUVISWlRRVFJd3RCeElrQktBSUFDeHNBUVppTUFTRUFBMEFnQUVFTWF4QUtJZ0JCOElvQlJ3MEFDd3ZuQVFBQ1FFSEFpUUV0QUFCQkFYRU5BRUhBaVFFUUpFVU5BQUpBUVppTUFTMEFBRUVCY1EwQVFaaU1BUkFrUlEwQVFmQ0tBU0VBQTBBZ0FCQVJRUXhxSWdCQm1Jd0JSdzBBQzBHWWpBRVFJd3RCOElvQlFjMGFFQlZCL0lvQlFkUWFFQlZCaUlzQlFiSWFFQlZCbElzQlFib2FFQlZCb0lzQlFha2FFQlZCcklzQlFkc2FFQlZCdUlzQlFjUWFFQlZCeElzQlFmWWJFQlZCMElzQlFjTWNFQlZCM0lzQlFjRWRFQlZCNklzQlFkQWRFQlZCOUlzQlFaQWJFQlZCZ0l3QlFkd2NFQlZCakl3QlFaOGJFQlZCdklrQlFmQ0tBVFlDQUVIQWlRRVFJd3RCdklrQktBSUFDd3NBSUFCQnJOUUFFSVFCQ3dvQUlBQkJ4UjBRVkJvTEN3QWdBRUdZMUFBUWhBRUxDZ0FnQUVHOEhSQlVHZ3NNQUNBQUlBRkJFR29RMFFFTERBQWdBQ0FCUVF4cUVORUJDd2NBSUFBc0FBa0xCd0FnQUN3QUNBc0pBQ0FBRUlZQ0VCQUxDUUFnQUJDSEFoQVFDK1lEQVFWL0lBSWhBQU5BQWtBZ0JDQUlUU0FBSUFOUGNnMEFJQUFzQUFBaUJrSC9BWEVoQVFKQUlBWkJBRTRFUUVFQklRWWdBVUgvLzhNQVRRMEJEQUlMSUFGQndnRkpEUUVnQVVIZkFVMEVRQ0FESUFCclFRSklEUUlnQUMwQUFTSUZRY0FCY1VHQUFVY05Ba0VDSVFZZ0JVRS9jU0FCUVFaMFFjQVBjWEpCLy8vREFFME5BUXdDQ3dKQUFrQWdBVUh2QVUwRVFDQURJQUJyUVFOSURRUWdBQzBBQWlFSElBQXRBQUVoQlNBQlFlMEJSZzBCSUFGQjRBRkdCRUFnQlVIZ0FYRkJvQUZHRFFNTUJRc2dCVUhBQVhGQmdBRkhEUVFNQWdzZ0F5QUFhMEVFU0NBQlFmUUJTM0lOQXlBQUxRQURJUWNnQUMwQUFpRUpJQUF0QUFFaEJRSkFBa0FDUUFKQUlBRkI4QUZyRGdVQUFnSUNBUUlMSUFWQjhBQnFRZjhCY1VFd1NRMENEQVlMSUFWQjhBRnhRWUFCUmcwQkRBVUxJQVZCd0FGeFFZQUJSdzBFQ3lBSlFjQUJjVUdBQVVjZ0IwSEFBWEZCZ0FGSGNnMERRUVFoQmlBSFFUOXhJQWxCQm5SQndCOXhJQUZCRW5SQmdJRHdBSEVnQlVFL2NVRU1kSEp5Y2tILy84TUFTdzBEREFJTElBVkI0QUZ4UVlBQlJ3MENDeUFIUWNBQmNVR0FBVWNOQVVFRElRWWdCMEUvY1NBQlFReDBRWURnQTNFZ0JVRS9jVUVHZEhKeVFmLy93d0JMRFFFTElBaEJBV29oQ0NBQUlBWnFJUUFNQVFzTElBQWdBbXNMNGdRQkJYOGpBRUVRYXlJQUpBQWdBQ0FDTmdJTUlBQWdCVFlDQ0FKL0lBQWdBallDRENBQUlBVTJBZ2dDUUFKQUEwQUNRQ0FBS0FJTUlnSWdBMDhOQUNBQUtBSUlJZ3dnQms4TkFDQUNMQUFBSWdWQi93RnhJUUVDUUNBRlFRQk9CRUFnQVVILy84TUFUUVJBUVFFaEJRd0NDMEVDREFZTFFRSWhDaUFCUWNJQlNRMERJQUZCM3dGTkJFQWdBeUFDYTBFQ1NBMEZJQUl0QUFFaUNFSEFBWEZCZ0FGSERRUkJBaUVGSUFoQlAzRWdBVUVHZEVIQUQzRnlJZ0ZCLy8vREFFME5BUXdFQ3lBQlFlOEJUUVJBSUFNZ0FtdEJBMGdOQlNBQ0xRQUNJUWtnQWkwQUFTRUlBa0FDUUNBQlFlMEJSd1JBSUFGQjRBRkhEUUVnQ0VIZ0FYRkJvQUZHRFFJTUJ3c2dDRUhnQVhGQmdBRkdEUUVNQmdzZ0NFSEFBWEZCZ0FGSERRVUxJQWxCd0FGeFFZQUJSdzBFUVFNaEJTQUpRVDl4SUFGQkRIUkJnT0FEY1NBSVFUOXhRUVowY25JaUFVSC8vOE1BVFEwQkRBUUxJQUZCOUFGTERRTWdBeUFDYTBFRVNBMEVJQUl0QUFNaENTQUNMUUFDSVFzZ0FpMEFBU0VJQWtBQ1FBSkFBa0FnQVVId0FXc09CUUFDQWdJQkFnc2dDRUh3QUdwQi93RnhRVEJKRFFJTUJnc2dDRUh3QVhGQmdBRkdEUUVNQlFzZ0NFSEFBWEZCZ0FGSERRUUxJQXRCd0FGeFFZQUJSeUFKUWNBQmNVR0FBVWR5RFFOQkJDRUZJQWxCUDNFZ0MwRUdkRUhBSDNFZ0FVRVNkRUdBZ1BBQWNTQUlRVDl4UVF4MGNuSnlJZ0ZCLy8vREFFc05Bd3NnRENBQk5nSUFJQUFnQWlBRmFqWUNEQ0FBSUFBb0FnaEJCR28yQWdnTUFRc0xJQUlnQTBraENnc2dDZ3dCQzBFQkN5RUJJQVFnQUNnQ0REWUNBQ0FISUFBb0FnZzJBZ0FnQUVFUWFpUUFJQUVMamdRQUl3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBVTJBZ2dDZnlBQUlBSTJBZ3dnQUNBRk5nSUlJQUFvQWd3aEFRSkFBMEFnQVNBRFR3UkFRUUFoQWd3Q0MwRUNJUUlnQVNnQ0FDSUJRWUJ3Y1VHQXNBTkdJQUZCLy8vREFFdHlEUUVDUUFKQUlBRkIvd0JOQkVCQkFTRUNJQVlnQUNnQ0NDSUZhMEVBVEEwRUlBQWdCVUVCYWpZQ0NDQUZJQUU2QUFBTUFRc2dBVUgvRDAwRVFDQUdJQUFvQWdnaUFtdEJBa2dOQWlBQUlBSkJBV28yQWdnZ0FpQUJRUVoyUWNBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBREFFTElBWWdBQ2dDQ0NJQ2F5RUZJQUZCLy84RFRRUkFJQVZCQTBnTkFpQUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0JVRUVTQTBCSUFBZ0FrRUJhallDQ0NBQ0lBRkJFblpCOEFGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUVNZGtFL2NVR0FBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFRWjJRVDl4UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBQ3lBQUlBQW9BZ3hCQkdvaUFUWUNEQXdCQ3d0QkFRd0JDeUFDQ3lFQklBUWdBQ2dDRERZQ0FDQUhJQUFvQWdnMkFnQWdBRUVRYWlRQUlBRUw3Z01CQkg4Z0FpRUFBMEFDUUNBRUlBWk5JQUFnQTA5eURRQWdBQzBBQUNJQlFmLy93d0JMRFFBQ2Z5QUFRUUZxSUFGQkdIUkJHSFZCQUU0TkFCb2dBVUhDQVVrTkFTQUJRZDhCVFFSQUlBTWdBR3RCQWtnTkFpQUFMUUFCSWdWQndBRnhRWUFCUnlBRlFUOXhJQUZCQm5SQndBOXhja0gvLzhNQVMzSU5BaUFBUVFKcURBRUxBa0FDUUNBQlFlOEJUUVJBSUFNZ0FHdEJBMGdOQkNBQUxRQUNJUWNnQUMwQUFTRUZJQUZCN1FGR0RRRWdBVUhnQVVZRVFDQUZRZUFCY1VHZ0FVWU5Bd3dGQ3lBRlFjQUJjVUdBQVVjTkJBd0NDeUFESUFCclFRUklJQUZCOUFGTGNpQUVJQVpyUVFKSmNnMERJQUF0QUFNaEJ5QUFMUUFDSVFnZ0FDMEFBU0VGQWtBQ1FBSkFBa0FnQVVId0FXc09CUUFDQWdJQkFnc2dCVUh3QUdwQi93RnhRVEJKRFFJTUJnc2dCVUh3QVhGQmdBRkdEUUVNQlFzZ0JVSEFBWEZCZ0FGSERRUUxJQWhCd0FGeFFZQUJSeUFIUWNBQmNVR0FBVWR5SUFkQlAzRWdDRUVHZEVIQUgzRWdBVUVTZEVHQWdQQUFjU0FGUVQ5eFFReDBjbkp5UWYvL3d3QkxjZzBESUFaQkFXb2hCaUFBUVFScURBSUxJQVZCNEFGeFFZQUJSdzBDQ3lBSFFjQUJjVUdBQVVjZ0IwRS9jU0FCUVF4MFFZRGdBM0VnQlVFL2NVRUdkSEp5UWYvL3d3QkxjZzBCSUFCQkEyb0xJUUFnQmtFQmFpRUdEQUVMQ3lBQUlBSnJDOU1GQVFSL0l3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBVTJBZ2dDZnlBQUlBSTJBZ3dnQUNBRk5nSUlBa0FDUUFKQUEwQUNRQ0FBS0FJTUlnRWdBMDhOQUNBQUtBSUlJZ1VnQms4TkFFRUNJUW9nQVMwQUFDSUNRZi8vd3dCTERRUWdBQUovSUFKQkdIUkJHSFZCQUU0RVFDQUZJQUk3QVFBZ0FVRUJhZ3dCQ3lBQ1FjSUJTUTBGSUFKQjN3Rk5CRUFnQXlBQmEwRUNTQTBGSUFFdEFBRWlDRUhBQVhGQmdBRkhEUVFnQ0VFL2NTQUNRUVowUWNBUGNYSWlBa0gvLzhNQVN3MEVJQVVnQWpzQkFDQUJRUUpxREFFTElBSkI3d0ZOQkVBZ0F5QUJhMEVEU0EwRklBRXRBQUloQ1NBQkxRQUJJUWdDUUFKQUlBSkI3UUZIQkVBZ0FrSGdBVWNOQVNBSVFlQUJjVUdnQVVZTkFnd0hDeUFJUWVBQmNVR0FBVVlOQVF3R0N5QUlRY0FCY1VHQUFVY05CUXNnQ1VIQUFYRkJnQUZIRFFRZ0NVRS9jU0FJUVQ5eFFRWjBJQUpCREhSeWNpSUNRZi8vQTNGQi8vL0RBRXNOQkNBRklBSTdBUUFnQVVFRGFnd0JDeUFDUWZRQlN3MEZRUUVoQ2lBRElBRnJRUVJJRFFNZ0FTMEFBeUVKSUFFdEFBSWhDQ0FCTFFBQklRRUNRQUpBQWtBQ1FDQUNRZkFCYXc0RkFBSUNBZ0VDQ3lBQlFmQUFha0gvQVhGQk1FOE5DQXdDQ3lBQlFmQUJjVUdBQVVjTkJ3d0JDeUFCUWNBQmNVR0FBVWNOQmdzZ0NFSEFBWEZCZ0FGSElBbEJ3QUZ4UVlBQlIzSU5CU0FHSUFWclFRUklEUU5CQWlFS0lBbEJQM0VpQ1NBSVFRWjBJZ3RCd0I5eElBRkJESFJCZ09BUGNTQUNRUWR4SWdKQkVuUnljbkpCLy8vREFFc05BeUFGSUFoQkJIWkJBM0VnQVVFQ2RDSUJRY0FCY1NBQ1FRaDBjaUFCUVR4eGNuSkJ3UDhBYWtHQXNBTnlPd0VBSUFBZ0JVRUNhallDQ0NBRklBdEJ3QWR4SUFseVFZQzRBM0k3QVFJZ0FDZ0NERUVFYWdzMkFnd2dBQ0FBS0FJSVFRSnFOZ0lJREFFTEN5QUJJQU5KSVFvTElBb01BZ3RCQVF3QkMwRUNDeUVCSUFRZ0FDZ0NERFlDQUNBSElBQW9BZ2cyQWdBZ0FFRVFhaVFBSUFFTCtnVUJBWDhqQUVFUWF5SUFKQUFnQUNBQ05nSU1JQUFnQlRZQ0NBSi9JQUFnQWpZQ0RDQUFJQVUyQWdnZ0FDZ0NEQ0VDQWtBQ1FBTkFJQUlnQTA4RVFFRUFJUVVNQXd0QkFpRUZJQUl2QVFBaUFVSC8vOE1BU3cwQ0FrQUNRQ0FCUWY4QVRRUkFRUUVoQlNBR0lBQW9BZ2dpQW10QkFFd05CU0FBSUFKQkFXbzJBZ2dnQWlBQk9nQUFEQUVMSUFGQi93OU5CRUFnQmlBQUtBSUlJZ0pyUVFKSURRUWdBQ0FDUVFGcU5nSUlJQUlnQVVFR2RrSEFBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFUOXhRWUFCY2pvQUFBd0JDeUFCUWYrdkEwMEVRQ0FHSUFBb0FnZ2lBbXRCQTBnTkJDQUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0FVSC90d05OQkVCQkFTRUZJQU1nQW10QkJFZ05CU0FDTHdFQ0lnaEJnUGdEY1VHQXVBTkhEUUlnQmlBQUtBSUlhMEVFU0EwRklBaEIvd2R4SUFGQkNuUkJnUGdEY1NBQlFjQUhjU0lGUVFwMGNuSkJnSUFFYWtILy84TUFTdzBDSUFBZ0FrRUNhallDRENBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFWQkJuWkJBV29pQWtFQ2RrSHdBWEk2QUFBZ0FDQUFLQUlJSWdWQkFXbzJBZ2dnQlNBQ1FRUjBRVEJ4SUFGQkFuWkJEM0Z5UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQWhCQm5aQkQzRWdBVUVFZEVFd2NYSkJnQUZ5T2dBQUlBQWdBQ2dDQ0NJQlFRRnFOZ0lJSUFFZ0NFRS9jVUdBQVhJNkFBQU1BUXNnQVVHQXdBTkpEUVFnQmlBQUtBSUlJZ0pyUVFOSURRTWdBQ0FDUVFGcU5nSUlJQUlnQVVFTWRrSGdBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFRWjJRVDl4UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBQ3lBQUlBQW9BZ3hCQW1vaUFqWUNEQXdCQ3d0QkFnd0NDMEVCREFFTElBVUxJUUVnQkNBQUtBSU1OZ0lBSUFjZ0FDZ0NDRFlDQUNBQVFSQnFKQUFnQVFzVkFDQUFLQUlJSWdCRkJFQkJBUThMSUFBUWlnSUxrQUVCQm44RFFBSkFJQUlnQTBZZ0JDQUlUWElOQUVFQklRY2dBQ2dDQ0NFRkl3QkJFR3NpQmlRQUlBWWdCVFlDRENBR1FRaHFJQVpCREdvUVVpRUtRUUFnQWlBRElBSnJJQUZCdEljQklBRWJFTGNCSVFVZ0NoQlJJQVpCRUdva0FBSkFBa0FnQlVFQ2FnNERBZ0lCQUFzZ0JTRUhDeUFJUVFGcUlRZ2dCeUFKYWlFSklBSWdCMm9oQWd3QkN3c2dDUXRtQVFOL0lBQW9BZ2doQWlNQVFSQnJJZ0VrQUNBQklBSTJBZ3dnQVVFSWFpQUJRUXhxRUZJaEFpTUFRUkJySWdNa0FDQURRUkJxSkFCQkFDRURJQUlRVVNBQlFSQnFKQUFnQXdSL1FYOEZJQUFvQWdnaUFFVUVRRUVCRHdzZ0FCQ0tBa0VCUmdzTGtnRUJBWDhqQUVFUWF5SUZKQUFnQkNBQ05nSUFBbjlCQWlBRlFReHFRUUFnQUNnQ0NCRExBU0lBUVFGcVFRSkpEUUFhUVFFZ0FFRUJheUlCSUFNZ0JDZ0NBR3RMRFFBYUlBVkJER29oQWdOL0lBRUVmeUFDTFFBQUlRQWdCQ0FFS0FJQUlnTkJBV28yQWdBZ0F5QUFPZ0FBSUFGQkFXc2hBU0FDUVFGcUlRSU1BUVZCQUFzTEN5RUNJQVZCRUdva0FDQUNDOHNHQVF4L0l3QkJFR3NpRVNRQUlBSWhDQU5BQWtBZ0F5QUlSZ1JBSUFNaENBd0JDeUFJTFFBQVJRMEFJQWhCQVdvaENBd0JDd3NnQnlBRk5nSUFJQVFnQWpZQ0FBTkFBa0FDZndKQUlBSWdBMFlnQlNBR1JuSU5BQ0FSSUFFcEFnQTNBd2dnQUNnQ0NDRUpJd0JCRUdzaUVDUUFJQkFnQ1RZQ0RDQVFRUWhxSUJCQkRHb1FVaUVUSUFnZ0Ftc2hEVUVBSVFvakFFR1FDR3NpQ3lRQUlBc2dCQ2dDQUNJT05nSU1JQVVnQzBFUWFpQUZHeUVQQWtBQ1FBSkFJQTVGSUFZZ0JXdEJBblZCZ0FJZ0JSc2lERVZ5RFFBRFFDQU5RUUoySWdrZ0RFa2dEVUdEQVUxeERRSWdEeUFMUVF4cUlBd2dDU0FKSUF4UEd5QUJFTklDSWhKQmYwWUVRRUYvSVFwQkFDRU1JQXNvQWd3aERnd0NDeUFNUVFBZ0VpQVBJQXRCRUdwR0d5SUpheUVNSUE4Z0NVRUNkR29oRHlBTklBNXFJQXNvQWd3aURtdEJBQ0FPR3lFTklBb2dFbW9oQ2lBT1JRMEJJQXdOQUFzTElBNUZEUUVMSUF4RklBMUZjZzBBSUFvaENRTkFBa0FDUUNBUElBNGdEU0FCRUxjQklncEJBbXBCQWswRVFBSkFBa0FnQ2tFQmFnNENCZ0FCQ3lBTFFRQTJBZ3dNQWdzZ0FVRUFOZ0lBREFFTElBc2dDeWdDRENBS2FpSU9OZ0lNSUFsQkFXb2hDU0FNUVFGcklnd05BUXNnQ1NFS0RBSUxJQTlCQkdvaER5QU5JQXBySVEwZ0NTRUtJQTBOQUFzTElBVUVRQ0FFSUFzb0FndzJBZ0FMSUF0QmtBaHFKQUFnQ2lFSklCTVFVU0FRUVJCcUpBQUNRQUpBQWtBQ1FDQUpRWDlHQkVBRFFBSkFJQWNnQlRZQ0FDQUNJQVFvQWdCR0RRQkJBU0VHQWtBQ1FBSkFJQVVnQWlBSUlBSnJJQkZCQ0dvZ0FDZ0NDQkNMQWlJQlFRSnFEZ01JQUFJQkN5QUVJQUkyQWdBTUJRc2dBU0VHQ3lBQ0lBWnFJUUlnQnlnQ0FFRUVhaUVGREFFTEN5QUVJQUkyQWdBTUJRc2dCeUFIS0FJQUlBbEJBblJxSWdVMkFnQWdCU0FHUmcwRElBUW9BZ0FoQWlBRElBaEdCRUFnQXlFSURBZ0xJQVVnQWtFQklBRWdBQ2dDQ0JDTEFrVU5BUXRCQWd3RUN5QUhJQWNvQWdCQkJHbzJBZ0FnQkNBRUtBSUFRUUZxSWdJMkFnQWdBaUVJQTBBZ0F5QUlSZ1JBSUFNaENBd0dDeUFJTFFBQVJRMEZJQWhCQVdvaENBd0FDd0FMSUFRZ0FqWUNBRUVCREFJTElBUW9BZ0FoQWdzZ0FpQURSd3NoQUNBUlFSQnFKQUFnQUE4TElBY29BZ0FoQlF3QUN3QUxzd1VCREg4akFFRVFheUlOSkFBZ0FpRUlBMEFDUUNBRElBaEdCRUFnQXlFSURBRUxJQWdvQWdCRkRRQWdDRUVFYWlFSURBRUxDeUFISUFVMkFnQWdCQ0FDTmdJQUEwQUNRQUpBSUFJZ0EwWWdCU0FHUm5JRWZ5QUNCU0FOSUFFcEFnQTNBd2hCQVNFUUlBQW9BZ2doQ1NNQVFSQnJJZzRrQUNBT0lBazJBZ3dnRGtFSWFpQU9RUXhxRUZJaEV5QUdJQVVpQ1dzaENrRUFJUThqQUVFUWF5SVJKQUFDUUNBRUtBSUFJZ3RGSUFnZ0FtdEJBblVpRWtWeURRQWdDa0VBSUFrYklRb0RRQ0FSUVF4cUlBa2dDa0VFU1JzZ0N5Z0NBQkRhQVNJTVFYOUdCRUJCZnlFUERBSUxJQWtFZnlBS1FRTk5CRUFnQ2lBTVNRMERJQWtnRVVFTWFpQU1FRUlhQ3lBS0lBeHJJUW9nQ1NBTWFnVkJBQXNoQ1NBTEtBSUFSUVJBUVFBaEN3d0NDeUFNSUE5cUlROGdDMEVFYWlFTElCSkJBV3NpRWcwQUN3c2dDUVJBSUFRZ0N6WUNBQXNnRVVFUWFpUUFJQThoQ1NBVEVGRWdEa0VRYWlRQUFrQUNRQUpBQWtBQ1FDQUpRUUZxRGdJQUJnRUxJQWNnQlRZQ0FBTkFBa0FnQWlBRUtBSUFSZzBBSUFVZ0FpZ0NBQ0FBS0FJSUVNc0JJZ0ZCZjBZTkFDQUhJQWNvQWdBZ0FXb2lCVFlDQUNBQ1FRUnFJUUlNQVFzTElBUWdBallDQUF3QkN5QUhJQWNvQWdBZ0NXb2lCVFlDQUNBRklBWkdEUUlnQXlBSVJnUkFJQVFvQWdBaEFpQURJUWdNQndzZ0RVRUVha0VBSUFBb0FnZ1F5d0VpQ0VGL1J3MEJDMEVDSVJBTUF3c2dEVUVFYWlFQ0lBWWdCeWdDQUdzZ0NFa05BZ05BSUFnRVFDQUNMUUFBSVFVZ0J5QUhLQUlBSWdsQkFXbzJBZ0FnQ1NBRk9nQUFJQWhCQVdzaENDQUNRUUZxSVFJTUFRc0xJQVFnQkNnQ0FFRUVhaUlDTmdJQUlBSWhDQU5BSUFNZ0NFWUVRQ0FESVFnTUJRc2dDQ2dDQUVVTkJDQUlRUVJxSVFnTUFBc0FDeUFFS0FJQUN5QURSeUVRQ3lBTlFSQnFKQUFnRUE4TElBY29BZ0FoQlF3QUN3QUxDUUFnQUJDWUFoQVFDemNBSXdCQkVHc2lBQ1FBSUFBZ0JEWUNEQ0FBSUFNZ0FtczJBZ2dnQUVFTWFpQUFRUWhxRUtJQktBSUFJUUVnQUVFUWFpUUFJQUVMTkFBRFFDQUJJQUpHUlFSQUlBUWdBU3dBQUNJQUlBTWdBRUVBVGhzNkFBQWdCRUVCYWlFRUlBRkJBV29oQVF3QkN3c2dBZ3NNQUNBQklBSWdBVUVBVGhzTEtnQURRQ0FCSUFKR1JRUkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQkRBRUxDeUFDQzBBQUEwQWdBU0FDUndSQUlBRWdBU3dBQUNJQVFRQk9CSDlCME1RQUtBSUFJQUVzQUFCQkFuUnFLQUlBQlNBQUN6b0FBQ0FCUVFGcUlRRU1BUXNMSUFJTEp3QWdBVUVBVGdSL1FkREVBQ2dDQUNBQlFmOEJjVUVDZEdvb0FnQUZJQUVMUVJoMFFSaDFDejhBQTBBZ0FTQUNSd1JBSUFFZ0FTd0FBQ0lBUVFCT0JIOUJ3RGdvQWdBZ0FTd0FBRUVDZEdvb0FnQUZJQUFMT2dBQUlBRkJBV29oQVF3QkN3c2dBZ3NtQUNBQlFRQk9CSDlCd0Rnb0FnQWdBVUgvQVhGQkFuUnFLQUlBQlNBQkMwRVlkRUVZZFFzSkFDQUFFSTRDRUJBTE5RQURRQ0FCSUFKR1JRUkFJQVFnQVNnQ0FDSUFJQU1nQUVHQUFVa2JPZ0FBSUFSQkFXb2hCQ0FCUVFScUlRRU1BUXNMSUFJTEV3QWdBU0FDSUFGQmdBRkpHMEVZZEVFWWRRc3FBQU5BSUFFZ0FrWkZCRUFnQXlBQkxBQUFOZ0lBSUFOQkJHb2hBeUFCUVFGcUlRRU1BUXNMSUFJTFFRQURRQ0FCSUFKSEJFQWdBU0FCS0FJQUlnQkIvd0JOQkg5QjBNUUFLQUlBSUFFb0FnQkJBblJxS0FJQUJTQUFDellDQUNBQlFRUnFJUUVNQVFzTElBSUxIZ0FnQVVIL0FFMEVmMEhReEFBb0FnQWdBVUVDZEdvb0FnQUZJQUVMQzBBQUEwQWdBU0FDUndSQUlBRWdBU2dDQUNJQVFmOEFUUVIvUWNBNEtBSUFJQUVvQWdCQkFuUnFLQUlBQlNBQUN6WUNBQ0FCUVFScUlRRU1BUXNMSUFJTEhRQWdBVUgvQUUwRWYwSEFPQ2dDQUNBQlFRSjBhaWdDQUFVZ0FRc0xSQUFDUUFOQUlBSWdBMFlOQVFKQUlBSW9BZ0JCL3dCTERRQkJzRElvQWdBZ0FpZ0NBRUVCZEdvdkFRQWdBWEZGRFFBZ0FrRUVhaUVDREFFTEN5QUNJUU1MSUFNTFF3QURRQUpBSUFJZ0EwY0VmeUFDS0FJQVFmOEFTdzBCUWJBeUtBSUFJQUlvQWdCQkFYUnFMd0VBSUFGeFJRMEJJQUlGSUFNTER3c2dBa0VFYWlFQ0RBQUxBQXRGQUFOQUlBRWdBa2NFUUNBRElBRW9BZ0JCL3dCTkJIOUJzRElvQWdBZ0FTZ0NBRUVCZEdvdkFRQUZRUUFMT3dFQUlBTkJBbW9oQXlBQlFRUnFJUUVNQVFzTElBSUxJd0FnQWtIL0FFMEVmMEd3TWlnQ0FDQUNRUUYwYWk4QkFDQUJjVUVBUndWQkFBc0xRQUVDZnlBQUtBSUFLQUlBSWdBb0FnQWdBQ2dDQ0NJQ1FRRjFhaUVCSUFBb0FnUWhBQ0FCSUFKQkFYRUVmeUFCS0FJQUlBQnFLQUlBQlNBQUN4RUJBQXNQQUNBQUlBQW9BZ0FvQWdRUkFRQUxId0FnQUFKL1FmaUlBVUg0aUFFb0FnQkJBV29pQURZQ0FDQUFDellDQkFzSkFDQUFFSk1DRUJBTG1BRUFJd0JCRUdzaUF5UUFBa0FnQlJBMVJRUkFJQUFnQlNnQ0NEWUNDQ0FBSUFVcEFnQTNBZ0FNQVFzZ0JTZ0NBQ0VFQWtBQ1FBSkFJQVVvQWdRaUFrRUJUUVJBSUFBaEFTQUFJQUlRT2d3QkN5QUNRZS8vLy84RFN3MEJJQUFnQUNBQ0VJSUJRUUZxSWdVUWdRRWlBUkJOSUFBZ0JSQk1JQUFnQWhBNUN5QUJJQVFnQWtFQmFoQnhEQUVMRUJjQUN3c2dBMEVRYWlRQUN3a0FJQUFnQlJEUkFRdUdBd0VJZnlNQVFmQURheUlBSkFBZ0FFSG9BMm9pQmlBREVBOGdCaEE3SVFvZ0JSQUpCRUFnQlVFQUVMRUJLQUlBSUFwQkxSQTlSaUVMQ3lBQ0lBc2dBRUhvQTJvZ0FFSGdBMm9nQUVIY0Eyb2dBRUhZQTJvZ0FFSElBMm9RRVNJTUlBQkJ1QU5xRUVjaUJpQUFRYWdEYWhCSElnY2dBRUdrQTJvUW13SWdBRUUxTmdJUUlBQkJDR3BCQUNBQVFSQnFJZ0lRSGlFSUFrQUNmeUFGRUFrZ0FDZ0NwQU5LQkVBZ0JSQUpJUWtnQUNnQ3BBTWhEU0FIRUFrZ0NTQU5hMEVCZEdvZ0JoQUphaUFBS0FLa0EycEJBV29NQVFzZ0J4QUpJQVlRQ1dvZ0FDZ0NwQU5xUVFKcUN5SUpRZVVBU1EwQUlBZ2dDVUVDZEJBWkVDY2dDQ2dDQUNJQ0RRQVFGd0FMSUFJZ0FFRUVhaUFBSUFNb0FnUWdCUkFOSUFVUURTQUZFQWxCQW5ScUlBb2dDeUFBUWVBRGFpQUFLQUxjQXlBQUtBTFlBeUFNSUFZZ0J5QUFLQUtrQXhDYUFpQUJJQUlnQUNnQ0JDQUFLQUlBSUFNZ0JCQmlJUUVnQ0JBZElBY1FDaG9nQmhBS0dpQU1FQW9hSUFCQjZBTnFFQTRnQUVId0Eyb2tBQ0FCQzdzRUFRdC9Jd0JCc0FocklnQWtBQ0FBSUFVM0F4QWdBQ0FHTndNWUlBQWdBRUhBQjJvaUJ6WUN2QWNnQnlBQVFSQnFFTllDSVFjZ0FFRTFOZ0tnQkNBQVFaZ0Vha0VBSUFCQm9BUnFJZ2tRSGlFT0lBQkJOVFlDb0FRZ0FFR1FCR3BCQUNBSkVCNGhDZ0pBSUFkQjVBQlBCRUFRRmlFSElBQWdCVGNEQUNBQUlBWTNBd2dnQUVHOEIyb2dCMEh1SENBQUVGb2lCMEYvUmcwQklBNGdBQ2dDdkFjUUp5QUtJQWRCQW5RUUdSQW5JQW9RbmdJTkFTQUtLQUlBSVFrTElBQkJpQVJxSWdnZ0F4QVBJQWdRT3lJUklBQW9BcndISWdnZ0J5QUlhaUFKRUdNZ0IwRUFTZ1JBSUFBb0Fyd0hMUUFBUVMxR0lROExJQUlnRHlBQVFZZ0VhaUFBUVlBRWFpQUFRZndEYWlBQVFmZ0RhaUFBUWVnRGFoQVJJaEFnQUVIWUEyb1FSeUlJSUFCQnlBTnFFRWNpQ3lBQVFjUURhaENiQWlBQVFUVTJBakFnQUVFb2FrRUFJQUJCTUdvaUFoQWVJUXdDZnlBQUtBTEVBeUlOSUFkSUJFQWdDeEFKSUFjZ0RXdEJBWFJxSUFnUUNXb2dBQ2dDeEFOcVFRRnFEQUVMSUFzUUNTQUlFQWxxSUFBb0FzUURha0VDYWdzaURVSGxBRThFUUNBTUlBMUJBblFRR1JBbklBd29BZ0FpQWtVTkFRc2dBaUFBUVNScUlBQkJJR29nQXlnQ0JDQUpJQWtnQjBFQ2RHb2dFU0FQSUFCQmdBUnFJQUFvQXZ3RElBQW9BdmdESUJBZ0NDQUxJQUFvQXNRREVKb0NJQUVnQWlBQUtBSWtJQUFvQWlBZ0F5QUVFR0loQVNBTUVCMGdDeEFLR2lBSUVBb2FJQkFRQ2hvZ0FFR0lCR29RRGlBS0VCMGdEaEFkSUFCQnNBaHFKQUFnQVE4TEVCY0FDLzRDQVFoL0l3QkJ3QUZySWdBa0FDQUFRYmdCYWlJR0lBTVFEeUFHRURJaENpQUZFQWtFUUNBRlFRQVFDeTBBQUNBS1FTMFFLVUgvQVhGR0lRc0xJQUlnQ3lBQVFiZ0JhaUFBUWJBQmFpQUFRYThCYWlBQVFhNEJhaUFBUWFBQmFoQVJJZ3dnQUVHUUFXb1FFU0lHSUFCQmdBRnFFQkVpQnlBQVFmd0FhaENkQWlBQVFUVTJBaEFnQUVFSWFrRUFJQUJCRUdvaUFoQWVJUWdDUUFKL0lBVVFDU0FBS0FKOFNnUkFJQVVRQ1NFSklBQW9BbndoRFNBSEVBa2dDU0FOYTBFQmRHb2dCaEFKYWlBQUtBSjhha0VCYWd3QkN5QUhFQWtnQmhBSmFpQUFLQUo4YWtFQ2Fnc2lDVUhsQUVrTkFDQUlJQWtRR1JBbklBZ29BZ0FpQWcwQUVCY0FDeUFDSUFCQkJHb2dBQ0FES0FJRUlBVVFEU0FGRUEwZ0JSQUphaUFLSUFzZ0FFR3dBV29nQUN3QXJ3RWdBQ3dBcmdFZ0RDQUdJQWNnQUNnQ2ZCQ2NBaUFCSUFJZ0FDZ0NCQ0FBS0FJQUlBTWdCQkJXSVFFZ0NCQWRJQWNRQ2hvZ0JoQUtHaUFNRUFvYUlBQkJ1QUZxRUE0Z0FFSEFBV29rQUNBQkM3SUVBUXQvSXdCQjBBTnJJZ0FrQUNBQUlBVTNBeEFnQUNBR053TVlJQUFnQUVIZ0Ftb2lCellDM0FJZ0J5QUFRUkJxRU5ZQ0lRY2dBRUUxTmdMd0FTQUFRZWdCYWtFQUlBQkI4QUZxSWdrUUhpRU9JQUJCTlRZQzhBRWdBRUhnQVdwQkFDQUpFQjRoQ2dKQUlBZEI1QUJQQkVBUUZpRUhJQUFnQlRjREFDQUFJQVkzQXdnZ0FFSGNBbW9nQjBIdUhDQUFFRm9pQjBGL1JnMEJJQTRnQUNnQzNBSVFKeUFLSUFjUUdSQW5JQW9RbmdJTkFTQUtLQUlBSVFrTElBQkIyQUZxSWdnZ0F4QVBJQWdRTWlJUklBQW9BdHdDSWdnZ0J5QUlhaUFKRUc4Z0IwRUFTZ1JBSUFBb0F0d0NMUUFBUVMxR0lROExJQUlnRHlBQVFkZ0JhaUFBUWRBQmFpQUFRYzhCYWlBQVFjNEJhaUFBUWNBQmFoQVJJaEFnQUVHd0FXb1FFU0lJSUFCQm9BRnFFQkVpQ3lBQVFad0JhaENkQWlBQVFUVTJBakFnQUVFb2FrRUFJQUJCTUdvaUFoQWVJUXdDZnlBQUtBS2NBU0lOSUFkSUJFQWdDeEFKSUFjZ0RXdEJBWFJxSUFnUUNXb2dBQ2dDbkFGcVFRRnFEQUVMSUFzUUNTQUlFQWxxSUFBb0Fwd0Jha0VDYWdzaURVSGxBRThFUUNBTUlBMFFHUkFuSUF3b0FnQWlBa1VOQVFzZ0FpQUFRU1JxSUFCQklHb2dBeWdDQkNBSklBY2dDV29nRVNBUElBQkIwQUZxSUFBc0FNOEJJQUFzQU00QklCQWdDQ0FMSUFBb0Fwd0JFSndDSUFFZ0FpQUFLQUlrSUFBb0FpQWdBeUFFRUZZaEFTQU1FQjBnQ3hBS0dpQUlFQW9hSUJBUUNob2dBRUhZQVdvUURpQUtFQjBnRGhBZElBQkIwQU5xSkFBZ0FROExFQmNBQzZjRkFRTi9Jd0JCd0FOcklnQWtBQ0FBSUFJMkFyQURJQUFnQVRZQ3VBTWdBRUUyTmdJVUlBQkJHR29nQUVFZ2FpQUFRUlJxSWdjUUhpRUpJQUJCRUdvaUFTQUVFQThnQVJBN0lRZ2dBRUVBT2dBUElBQkJ1QU5xSUFJZ0F5QUJJQVFvQWdRZ0JTQUFRUTlxSUFnZ0NTQUhJQUJCc0FOcUVLUUNCRUFqQUVFUWF5SUJKQUFDUUNBR0VEVUVRQ0FHS0FJQUlRSWdBVUVBTmdJTUlBSWdBVUVNYWhBeklBWkJBQkE1REFFTElBRkJBRFlDQ0NBR0lBRkJDR29RTXlBR1FRQVFPZ3NnQVVFUWFpUUFJQUF0QUE4RVFDQUdJQWhCTFJBOUVNY0JDeUFJUVRBUVBTRUJJQWtvQWdBaEJDQUFLQUlVSWdoQkJHc2hBZ05BQWtBZ0FpQUVUUTBBSUFRb0FnQWdBVWNOQUNBRVFRUnFJUVFNQVFzTEl3QkJFR3NpQVNRQUlBWVFDU0VDSUFZUXp3RWhBd0pBSUFRZ0NCQ2lBaUlIUlEwQUlBWVFEU0FFVFFSL0lBUWdCaEFOSUFZUUNVRUNkR3BOQlVFQUMwVUVRQ0FISUFNZ0FtdExCRUFnQmlBRElBSWdCMm9nQTJzZ0FpQUNFUE1CQ3lBR0VBMGdBa0VDZEdvaEF3TkFJQVFnQ0VjRVFDQURJQVFRTXlBRVFRUnFJUVFnQTBFRWFpRUREQUVMQ3lBQlFRQTJBZ0FnQXlBQkVETWdCaUFDSUFkcUVIZ01BUXNqQUVFUWF5SUNKQUFnQVNBRUlBZ1F6Z0lnQWtFUWFpUUFJQUVRRFNFSUlBRVFDU0VDSXdCQkVHc2lCQ1FBQWtBZ0FpQUdFTThCSWdjZ0JoQUpJZ05yVFFSQUlBSkZEUUVnQmhBTklnY2dBMEVDZEdvZ0NDQUNFSEVnQmlBQ0lBTnFJZ0lRZUNBRVFRQTJBZ3dnQnlBQ1FRSjBhaUFFUVF4cUVETU1BUXNnQmlBSElBSWdBMm9nQjJzZ0F5QURRUUFnQWlBSUVQUUJDeUFFUVJCcUpBQWdBUkFLR2dzZ0FVRVFhaVFBQ3lBQVFiZ0RhaUFBUWJBRGFoQW9CRUFnQlNBRktBSUFRUUp5TmdJQUN5QUFLQUs0QXlFQklBQkJFR29RRGlBSkVCMGdBRUhBQTJva0FDQUJDOWNEQVFKL0l3QkI4QVJySWdBa0FDQUFJQUkyQXVBRUlBQWdBVFlDNkFRZ0FFRTJOZ0lRSUFCQnlBRnFJQUJCMEFGcUlBQkJFR29RSGlFQklBQkJ3QUZxSWdjZ0JCQVBJQWNRT3lFSUlBQkJBRG9BdndFQ1FDQUFRZWdFYWlBQ0lBTWdCeUFFS0FJRUlBVWdBRUcvQVdvZ0NDQUJJQUJCeEFGcUlBQkI0QVJxRUtRQ1JRMEFJQUJCb3g0b0FBQTJBTGNCSUFCQm5CNHBBQUEzQTdBQklBZ2dBRUd3QVdvZ0FFRzZBV29nQUVHQUFXb1FZeUFBUVRVMkFoQWdBRUVJYWtFQUlBQkJFR29pQWhBZUlRTUNRQ0FBS0FMRUFTQUJLQUlBYTBHSkEwNEVRQ0FESUFBb0FzUUJJQUVvQWdCclFRSjFRUUpxRUJrUUp5QURLQUlBUlEwQklBTW9BZ0FoQWdzZ0FDMEF2d0VFUUNBQ1FTMDZBQUFnQWtFQmFpRUNDeUFCS0FJQUlRUURRQ0FBS0FMRUFTQUVUUVJBQWtBZ0FrRUFPZ0FBSUFBZ0JqWUNBQ0FBUVJCcUlBQVExd0pCQVVjTkFDQURFQjBNQkFzRklBSWdBRUd3QVdvZ0FFR0FBV29pQnlBSFFTaHFJQVFRMGdFZ0IydEJBblZxTFFBQU9nQUFJQUpCQVdvaEFpQUVRUVJxSVFRTUFRc0xFQmNBQ3hBWEFBc2dBRUhvQkdvZ0FFSGdCR29RS0FSQUlBVWdCU2dDQUVFQ2NqWUNBQXNnQUNnQzZBUWhBaUFBUWNBQmFoQU9JQUVRSFNBQVFmQUVhaVFBSUFJTHBBVUJBMzhqQUVHZ0FXc2lBQ1FBSUFBZ0FqWUNrQUVnQUNBQk5nS1lBU0FBUVRZMkFoUWdBRUVZYWlBQVFTQnFJQUJCRkdvaUJ4QWVJUWtnQUVFUWFpSUJJQVFRRHlBQkVESWhDQ0FBUVFBNkFBOGdBRUdZQVdvZ0FpQURJQUVnQkNnQ0JDQUZJQUJCRDJvZ0NDQUpJQWNnQUVHRUFXb1Fxd0lFUUNNQVFSQnJJZ0VrQUFKQUlBWVFOUVJBSUFZb0FnQWhBaUFCUVFBNkFBOGdBaUFCUVE5cUVEUWdCa0VBRURrTUFRc2dBVUVBT2dBT0lBWWdBVUVPYWhBMElBWkJBQkE2Q3lBQlFSQnFKQUFnQUMwQUR3UkFJQVlnQ0VFdEVDa1FvUUVMSUFoQk1CQXBJUUVnQ1NnQ0FDRUVJQUFvQWhRaUNFRUJheUVDSUFGQi93RnhJUUVEUUFKQUlBSWdCRTBOQUNBRUxRQUFJQUZIRFFBZ0JFRUJhaUVFREFFTEN5TUFRUkJySWdFa0FDQUdFQWtoQWlBR0VCTWhBd0pBSUFRZ0NCRHZBaUlIUlEwQUlBWVFEU0FFVFFSL0lBUWdCaEFOSUFZUUNXcE5CVUVBQzBVRVFDQUhJQU1nQW10TEJFQWdCaUFESUFJZ0Iyb2dBMnNnQWlBQ0VNZ0JDeUFHRUEwZ0Ftb2hBd05BSUFRZ0NFY0VRQ0FESUFRUU5DQUVRUUZxSVFRZ0EwRUJhaUVEREFFTEN5QUJRUUE2QUE4Z0F5QUJRUTlxRURRZ0JpQUNJQWRxRUhnTUFRc2pBRUVRYXlJQ0pBQWdBU0FFSUFnUTh3SWdBa0VRYWlRQUlBRVFEU0VJSUFFUUNTRUNJd0JCRUdzaUJDUUFBa0FnQWlBR0VCTWlCeUFHRUFraUEydE5CRUFnQWtVTkFTQUdFQTBpQnlBRGFpQUlJQUlRVlNBR0lBSWdBMm9pQWhCNElBUkJBRG9BRHlBQ0lBZHFJQVJCRDJvUU5Bd0JDeUFHSUFjZ0FpQURhaUFIYXlBRElBTkJBQ0FDSUFnUStBRUxJQVJCRUdva0FDQUJFQW9hQ3lBQlFSQnFKQUFMSUFCQm1BRnFJQUJCa0FGcUVDWUVRQ0FGSUFVb0FnQkJBbkkyQWdBTElBQW9BcGdCSVFFZ0FFRVFhaEFPSUFrUUhTQUFRYUFCYWlRQUlBRUx6UU1CQW44akFFR2dBbXNpQUNRQUlBQWdBallDa0FJZ0FDQUJOZ0tZQWlBQVFUWTJBaEFnQUVHWUFXb2dBRUdnQVdvZ0FFRVFhaEFlSVFFZ0FFR1FBV29pQnlBRUVBOGdCeEF5SVFnZ0FFRUFPZ0NQQVFKQUlBQkJtQUpxSUFJZ0F5QUhJQVFvQWdRZ0JTQUFRWThCYWlBSUlBRWdBRUdVQVdvZ0FFR0VBbW9RcXdKRkRRQWdBRUdqSGlnQUFEWUFod0VnQUVHY0hpa0FBRGNEZ0FFZ0NDQUFRWUFCYWlBQVFZb0JhaUFBUWZZQWFoQnZJQUJCTlRZQ0VDQUFRUWhxUVFBZ0FFRVFhaUlDRUI0aEF3SkFJQUFvQXBRQklBRW9BZ0JyUWVNQVRnUkFJQU1nQUNnQ2xBRWdBU2dDQUd0QkFtb1FHUkFuSUFNb0FnQkZEUUVnQXlnQ0FDRUNDeUFBTFFDUEFRUkFJQUpCTFRvQUFDQUNRUUZxSVFJTElBRW9BZ0FoQkFOQUlBQW9BcFFCSUFSTkJFQUNRQ0FDUVFBNkFBQWdBQ0FHTmdJQUlBQkJFR29nQUJEWEFrRUJSdzBBSUFNUUhRd0VDd1VnQWlBQVFmWUFhaUlISUFkQkNtb2dCQkRWQVNBQWF5QUFhaTBBQ2pvQUFDQUNRUUZxSVFJZ0JFRUJhaUVFREFFTEN4QVhBQXNRRndBTElBQkJtQUpxSUFCQmtBSnFFQ1lFUUNBRklBVW9BZ0JCQW5JMkFnQUxJQUFvQXBnQ0lRSWdBRUdRQVdvUURpQUJFQjBnQUVHZ0Ftb2tBQ0FDQzVnQ0FRSi9Jd0JCb0FOcklnZ2tBQ0FJSUFoQm9BTnFJZ00yQWd3akFFR1FBV3NpQnlRQUlBY2dCMEdFQVdvMkFod2dBRUVJYWlBSFFTQnFJZ0lnQjBFY2FpQUVJQVVnQmhDeEFpQUhRZ0EzQXhBZ0J5QUNOZ0lNSUFoQkVHb2lBaUFJS0FJTUVLNENJUVFnQUNnQ0NDRUZJd0JCRUdzaUFDUUFJQUFnQlRZQ0RDQUFRUWhxSUFCQkRHb1FVaUVGSUFJZ0IwRU1haUFFSUFkQkVHb1EwZ0loQkNBRkVGRWdBRUVRYWlRQUlBUkJmMFlFUUJBWEFBc2dDQ0FDSUFSQkFuUnFOZ0lNSUFkQmtBRnFKQUFnQ0NnQ0RDRUVJd0JCRUdzaUFDUUFJQUFnQVRZQ0NBTkFJQUlnQkVjRVFDQUFRUWhxSUFJb0FnQVE5d0lnQWtFRWFpRUNEQUVMQ3lBQUtBSUlJUUVnQUVFUWFpUUFJQU1rQUNBQkM0VUJBQ01BUVlBQmF5SUNKQUFnQWlBQ1FmUUFhallDRENBQVFRaHFJQUpCRUdvaUFDQUNRUXhxSUFRZ0JTQUdFTEVDSUFBaEJDQUNLQUlNSVFNakFFRVFheUlBSkFBZ0FDQUJOZ0lJQTBBZ0F5QUVSd1JBSUFCQkNHb2dCQ3dBQUJENEFpQUVRUUZxSVFRTUFRc0xJQUFvQWdnaEFTQUFRUkJxSkFBZ0FrR0FBV29rQUNBQkMrQU1BUUYvSXdCQlFHb2lCeVFBSUFjZ0FUWUNPQ0FFUVFBMkFnQWdCeUFERUE4Z0J4QTdJUWdnQnhBT0FuOENRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBWkJ3UUJyRGprQUFSY0VGd1VYQmdjWEZ4Y0tGeGNYRnc0UEVCY1hGeE1WRnhjWEZ4Y1hGd0FCQWdNREZ4Y0JGd2dYRndrTEZ3d1hEUmNMRnhjUkVoUVdDeUFBSUFWQkdHb2dCMEU0YWlBQ0lBUWdDQkMxQWd3WUN5QUFJQVZCRUdvZ0IwRTRhaUFDSUFRZ0NCQzBBZ3dYQ3lBSElBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDREJFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlEWUNPQXdXQ3lBSFFUaHFJQUlnQkNBSVFRSVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJBRXh5SUFCQkgwcHlSUVJBSUFVZ0FEWUNEQXdCQ3lBRUlBRkJCSEkyQWdBTERCVUxJQWRCdU5FQUtRTUFOd01ZSUFkQnNORUFLUU1BTndNUUlBZEJxTkVBS1FNQU53TUlJQWRCb05FQUtRTUFOd01BSUFjZ0FDQUJJQUlnQXlBRUlBVWdCeUFIUVNCcUVHQTJBamdNRkFzZ0IwSFkwUUFwQXdBM0F4Z2dCMEhRMFFBcEF3QTNBeEFnQjBISTBRQXBBd0EzQXdnZ0IwSEEwUUFwQXdBM0F3QWdCeUFBSUFFZ0FpQURJQVFnQlNBSElBZEJJR29RWURZQ09Bd1RDeUFIUVRocUlBSWdCQ0FJUVFJUVdDRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkYwcHlSUVJBSUFVZ0FEWUNDQXdCQ3lBRUlBRkJCSEkyQWdBTERCSUxJQWRCT0dvZ0FpQUVJQWhCQWhCWUlRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFQVRISWdBRUVNU25KRkJFQWdCU0FBTmdJSURBRUxJQVFnQVVFRWNqWUNBQXNNRVFzZ0IwRTRhaUFDSUFRZ0NFRURFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRZTBDU25KRkJFQWdCU0FBTmdJY0RBRUxJQVFnQVVFRWNqWUNBQXNNRUFzZ0IwRTRhaUFDSUFRZ0NFRUNFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUXhLY2tVRVFDQUZJQUJCQVdzMkFoQU1BUXNnQkNBQlFRUnlOZ0lBQ3d3UEN5QUhRVGhxSUFJZ0JDQUlRUUlRV0NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCTzBweVJRUkFJQVVnQURZQ0JBd0JDeUFFSUFGQkJISTJBZ0FMREE0TElBZEJPR29oQUNNQVFSQnJJZ0VrQUNBQklBSTJBZ2dEUUFKQUlBQWdBVUVJYWhBMlJRMEFJQWhCZ01BQUlBQVFJUkJPUlEwQUlBQVFKUm9NQVFzTElBQWdBVUVJYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQlFSQnFKQUFNRFFzZ0IwRTRhaUVCQWtBZ0FFRUlhaUFBS0FJSUtBSUlFUUFBSWdBUUNVRUFJQUJCREdvUUNXdEdCRUFnQkNBRUtBSUFRUVJ5TmdJQURBRUxJQUVnQWlBQUlBQkJHR29nQ0NBRVFRQVFzZ0VnQUdzaUFTQUZLQUlJSWdCQkRFZHlSUVJBSUFWQkFEWUNDQXdCQ3lBQlFReEhJQUJCQzBweVJRUkFJQVVnQUVFTWFqWUNDQXNMREF3TElBZEI0TkVBUVN3UVFpSUdJQUFnQVNBQ0lBTWdCQ0FGSUFZZ0JrRXNhaEJnTmdJNERBc0xJQWRCb05JQUtBSUFOZ0lRSUFkQm1OSUFLUU1BTndNSUlBZEJrTklBS1FNQU53TUFJQWNnQUNBQklBSWdBeUFFSUFVZ0J5QUhRUlJxRUdBMkFqZ01DZ3NnQjBFNGFpQUNJQVFnQ0VFQ0VGZ2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUeEtja1VFUUNBRklBQTJBZ0FNQVFzZ0JDQUJRUVJ5TmdJQUN3d0pDeUFIUWNqU0FDa0RBRGNER0NBSFFjRFNBQ2tEQURjREVDQUhRYmpTQUNrREFEY0RDQ0FIUWJEU0FDa0RBRGNEQUNBSElBQWdBU0FDSUFNZ0JDQUZJQWNnQjBFZ2FoQmdOZ0k0REFnTElBZEJPR29nQWlBRUlBaEJBUkJZSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVHU25KRkJFQWdCU0FBTmdJWURBRUxJQVFnQVVFRWNqWUNBQXNNQndzZ0FDQUJJQUlnQXlBRUlBVWdBQ2dDQUNnQ0ZCRUZBQXdIQ3lBSElBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDR0JFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlEWUNPQXdGQ3lBRlFSUnFJQWRCT0dvZ0FpQUVJQWdRc3dJTUJBc2dCMEU0YWlBQ0lBUWdDRUVFRUZnaEFDQUVMUUFBUVFSeFJRUkFJQVVnQUVIc0RtczJBaFFMREFNTElBWkJKVVlOQVFzZ0JDQUVLQUlBUVFSeU5nSUFEQUVMSXdCQkVHc2lBQ1FBSUFBZ0FqWUNDRUVHSVFFQ1FBSkFJQWRCT0dvaUFpQUFRUWhxRUNnTkFFRUVJUUVnQ0NBQ0VDRVFod0ZCSlVjTkFFRUNJUUVnQWhBbElBQkJDR29RS0VVTkFRc2dCQ0FFS0FJQUlBRnlOZ0lBQ3lBQVFSQnFKQUFMSUFjb0FqZ0xJUUFnQjBGQWF5UUFJQUFMUndFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBN0lRRWdCaEFPSUFWQkZHb2dCa0VJYWlBQ0lBUWdBUkN6QWlBR0tBSUlJUUFnQmtFUWFpUUFJQUFMU1FFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBN0lRRWdCaEFPSUFBZ0JVRVFhaUFHUVFocUlBSWdCQ0FCRUxRQ0lBWW9BZ2doQUNBR1FSQnFKQUFnQUF0SkFRRi9Jd0JCRUdzaUJpUUFJQVlnQVRZQ0NDQUdJQU1RRHlBR0VEc2hBU0FHRUE0Z0FDQUZRUmhxSUFaQkNHb2dBaUFFSUFFUXRRSWdCaWdDQ0NFQUlBWkJFR29rQUNBQUN6QUFJQUFnQVNBQ0lBTWdCQ0FGSUFCQkNHb2dBQ2dDQ0NnQ0ZCRUFBQ0lBRUEwZ0FCQU5JQUFRQ1VFQ2RHb1FZQXRjQVFGL0l3QkJJR3NpQmlRQUlBWkJ5TklBS1FNQU53TVlJQVpCd05JQUtRTUFOd01RSUFaQnVOSUFLUU1BTndNSUlBWkJzTklBS1FNQU53TUFJQUFnQVNBQ0lBTWdCQ0FGSUFZZ0JrRWdhaUlCRUdBaEFDQUJKQUFnQUF0TUFRRi9RY1NCQVVIQWdRRWdBaHNnQVRZQ0FDQUJRUUJLQkVCQm9JRUJRWUNCQVNBQ0d5RURRUUFoQWdOQUlBSWdBMm9nQUNBQ2FpMEFBRG9BQUNBQ1FRRnFJZ0lnQVVjTkFBc0xDNUFNQVFKL0l3QkJJR3NpQnlRQUlBY2dBVFlDR0NBRVFRQTJBZ0FnQjBFSWFpSUpJQU1RRHlBSkVESWhDQ0FKRUE0Q2Z3SkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0JrSEJBR3NPT1FBQkZ3UVhCUmNHQnhjWEZ3b1hGeGNYRGc4UUZ4Y1hFeFVYRnhjWEZ4Y1hBQUVDQXdNWEZ3RVhDQmNYQ1FzWERCY05Gd3NYRnhFU0ZCWUxJQUFnQlVFWWFpQUhRUmhxSUFJZ0JDQUlFTGdDREJnTElBQWdCVUVRYWlBSFFSaHFJQUlnQkNBSUVMY0NEQmNMSUFjZ0FDQUJJQUlnQXlBRUlBVWdBRUVJYWlBQUtBSUlLQUlNRVFBQUlnQVFEU0FBRUEwZ0FCQUphaEJoTmdJWURCWUxJQWRCR0dvZ0FpQUVJQWhCQWhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFQVRISWdBRUVmU25KRkJFQWdCU0FBTmdJTURBRUxJQVFnQVVFRWNqWUNBQXNNRlFzZ0IwS2wycjJwd3V6TGt2a0FOd01JSUFjZ0FDQUJJQUlnQXlBRUlBVWdCMEVJYWlBSFFSQnFFR0UyQWhnTUZBc2dCMEtsc3JXcDBxM0xrdVFBTndNSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUkJxRUdFMkFoZ01Fd3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFSZEtja1VFUUNBRklBQTJBZ2dNQVFzZ0JDQUJRUVJ5TmdJQUN3d1NDeUFIUVJocUlBSWdCQ0FJUVFJUVdTRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkFFeHlJQUJCREVweVJRUkFJQVVnQURZQ0NBd0JDeUFFSUFGQkJISTJBZ0FMREJFTElBZEJHR29nQWlBRUlBaEJBeEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUh0QWtweVJRUkFJQVVnQURZQ0hBd0JDeUFFSUFGQkJISTJBZ0FMREJBTElBZEJHR29nQWlBRUlBaEJBaEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVNU25KRkJFQWdCU0FBUVFGck5nSVFEQUVMSUFRZ0FVRUVjallDQUFzTUR3c2dCMEVZYWlBQ0lBUWdDRUVDRUZraEFBSkFJQVFvQWdBaUFVRUVjU0FBUVR0S2NrVUVRQ0FGSUFBMkFnUU1BUXNnQkNBQlFRUnlOZ0lBQ3d3T0N5QUhRUmhxSVFBakFFRVFheUlCSkFBZ0FTQUNOZ0lJQTBBQ1FDQUFJQUZCQ0dvUU1VVU5BQ0FJUVlEQUFDQUFFQjhRUkVVTkFDQUFFQ0lhREFFTEN5QUFJQUZCQ0dvUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FVRVFhaVFBREEwTElBZEJHR29oQVFKQUlBQkJDR29nQUNnQ0NDZ0NDQkVBQUNJQUVBbEJBQ0FBUVF4cUVBbHJSZ1JBSUFRZ0JDZ0NBRUVFY2pZQ0FBd0JDeUFCSUFJZ0FDQUFRUmhxSUFnZ0JFRUFFTFFCSUFCcklnRWdCU2dDQ0NJQVFReEhja1VFUUNBRlFRQTJBZ2dNQVFzZ0FVRU1SeUFBUVF0S2NrVUVRQ0FGSUFCQkRHbzJBZ2dMQ3d3TUN5QUhRWlRSQUNnQUFEWUFEeUFIUVkzUkFDa0FBRGNEQ0NBSElBQWdBU0FDSUFNZ0JDQUZJQWRCQ0dvZ0IwRVRhaEJoTmdJWURBc0xJQWRCbk5FQUxRQUFPZ0FNSUFkQm1ORUFLQUFBTmdJSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUTFxRUdFMkFoZ01DZ3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUeEtja1VFUUNBRklBQTJBZ0FNQVFzZ0JDQUJRUVJ5TmdJQUN3d0pDeUFIUXFXUTZhblN5YzZTMHdBM0F3Z2dCeUFBSUFFZ0FpQURJQVFnQlNBSFFRaHFJQWRCRUdvUVlUWUNHQXdJQ3lBSFFSaHFJQUlnQkNBSVFRRVFXU0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJCa3B5UlFSQUlBVWdBRFlDR0F3QkN5QUVJQUZCQkhJMkFnQUxEQWNMSUFBZ0FTQUNJQU1nQkNBRklBQW9BZ0FvQWhRUkJRQU1Cd3NnQnlBQUlBRWdBaUFESUFRZ0JTQUFRUWhxSUFBb0FnZ29BaGdSQUFBaUFCQU5JQUFRRFNBQUVBbHFFR0UyQWhnTUJRc2dCVUVVYWlBSFFSaHFJQUlnQkNBSUVMWUNEQVFMSUFkQkdHb2dBaUFFSUFoQkJCQlpJUUFnQkMwQUFFRUVjVVVFUUNBRklBQkI3QTVyTmdJVUN3d0RDeUFHUVNWR0RRRUxJQVFnQkNnQ0FFRUVjallDQUF3QkN5TUFRUkJySWdBa0FDQUFJQUkyQWdoQkJpRUJBa0FDUUNBSFFSaHFJZ0lnQUVFSWFoQW1EUUJCQkNFQklBZ2dBaEFmRUlnQlFTVkhEUUJCQWlFQklBSVFJaUFBUVFocUVDWkZEUUVMSUFRZ0JDZ0NBQ0FCY2pZQ0FBc2dBRUVRYWlRQUN5QUhLQUlZQ3lFQUlBZEJJR29rQUNBQUMwY0JBWDhqQUVFUWF5SUdKQUFnQmlBQk5nSUlJQVlnQXhBUElBWVFNaUVCSUFZUURpQUZRUlJxSUFaQkNHb2dBaUFFSUFFUXRnSWdCaWdDQ0NFQUlBWkJFR29rQUNBQUMwa0JBWDhqQUVFUWF5SUdKQUFnQmlBQk5nSUlJQVlnQXhBUElBWVFNaUVCSUFZUURpQUFJQVZCRUdvZ0JrRUlhaUFDSUFRZ0FSQzNBaUFHS0FJSUlRQWdCa0VRYWlRQUlBQUxTUUVCZnlNQVFSQnJJZ1lrQUNBR0lBRTJBZ2dnQmlBREVBOGdCaEF5SVFFZ0JoQU9JQUFnQlVFWWFpQUdRUWhxSUFJZ0JDQUJFTGdDSUFZb0FnZ2hBQ0FHUVJCcUpBQWdBQXN0QUNBQUlBRWdBaUFESUFRZ0JTQUFRUWhxSUFBb0FnZ29BaFFSQUFBaUFCQU5JQUFRRFNBQUVBbHFFR0VMUHdFQmZ5TUFRUkJySWdZa0FDQUdRcVdRNmFuU3ljNlMwd0EzQXdnZ0FDQUJJQUlnQXlBRUlBVWdCa0VJYWlBR1FSQnFJZ0VRWVNFQUlBRWtBQ0FBQzY0QkFRVi9Jd0JCMEFGcklnQWtBQ0FBUVl2UkFDOEFBRHNCekFFZ0FFR0gwUUFvQUFBMkFzZ0JFQlloQmlBQUlBUTJBZ0FnQUVHd0FXb2lCeUFISUFkQkZDQUdJQUJCeUFGcUlBQVFMQ0lJYWlJRUlBSVFQeUVHSUFCQkVHb2lCU0FDRUE4Z0JSQTdJUWtnQlJBT0lBa2dCeUFFSUFVUVl5QUJJQVVnQ0VFQ2RDQUZhaUlCSUFZZ0FHdEJBblFnQUdwQnNBVnJJQVFnQmtZYklBRWdBaUFERUdJaEFTQUFRZEFCYWlRQUlBRUxnQVFCQjM4akFFR3dBMnNpQUNRQUlBQkNKVGNEcUFNZ0FFR29BMnBCQVhKQmp4NGdBaWdDQkJDdkFTRUlJQUFnQUVHQUEybzJBdndDRUJZaEJnSi9JQWdFUUNBQ0tBSUlJUWNnQUVGQWF5QUZOd01BSUFBZ0JEY0RPQ0FBSUFjMkFqQWdBRUdBQTJwQkhpQUdJQUJCcUFOcUlBQkJNR29RTEF3QkN5QUFJQVEzQTFBZ0FDQUZOd05ZSUFCQmdBTnFRUjRnQmlBQVFhZ0RhaUFBUWRBQWFoQXNDeUVHSUFCQk5UWUNnQUVnQUVId0FtcEJBQ0FBUVlBQmFoQWVJUWtnQUVHQUEyb2lDaUVIQWtBZ0JrRWVUZ1JBRUJZaEJnSi9JQWdFUUNBQ0tBSUlJUWNnQUNBRk53TVFJQUFnQkRjRENDQUFJQWMyQWdBZ0FFSDhBbW9nQmlBQVFhZ0RhaUFBRUZvTUFRc2dBQ0FFTndNZ0lBQWdCVGNES0NBQVFmd0NhaUFHSUFCQnFBTnFJQUJCSUdvUVdnc2lCa0YvUmcwQklBa2dBQ2dDL0FJUUp5QUFLQUw4QWlFSEN5QUhJQVlnQjJvaUN5QUNFRDhoRENBQVFUVTJBb0FCSUFCQitBQnFRUUFnQUVHQUFXb1FIaUVIQWtBZ0FDZ0MvQUlnQUVHQUEycEdCRUFnQUVHQUFXb2hCZ3dCQ3lBR1FRTjBFQmtpQmtVTkFTQUhJQVlRSnlBQUtBTDhBaUVLQ3lBQVFlZ0FhaUlJSUFJUUR5QUtJQXdnQ3lBR0lBQkI5QUJxSUFCQjhBQnFJQWdRdWdJZ0NCQU9JQUVnQmlBQUtBSjBJQUFvQW5BZ0FpQURFR0loQVNBSEVCMGdDUkFkSUFCQnNBTnFKQUFnQVE4TEVCY0FDOXdEQVFkL0l3QkJnQU5ySWdBa0FDQUFRaVUzQS9nQ0lBQkIrQUpxUVFGeVFhUWZJQUlvQWdRUXJ3RWhCeUFBSUFCQjBBSnFOZ0xNQWhBV0lRVUNmeUFIQkVBZ0FpZ0NDQ0VHSUFBZ0JEa0RLQ0FBSUFZMkFpQWdBRUhRQW1wQkhpQUZJQUJCK0FKcUlBQkJJR29RTEF3QkN5QUFJQVE1QXpBZ0FFSFFBbXBCSGlBRklBQkIrQUpxSUFCQk1Hb1FMQXNoQlNBQVFUVTJBbEFnQUVIQUFtcEJBQ0FBUWRBQWFoQWVJUWdnQUVIUUFtb2lDU0VHQWtBZ0JVRWVUZ1JBRUJZaEJRSi9JQWNFUUNBQ0tBSUlJUVlnQUNBRU9RTUlJQUFnQmpZQ0FDQUFRY3dDYWlBRklBQkIrQUpxSUFBUVdnd0JDeUFBSUFRNUF4QWdBRUhNQW1vZ0JTQUFRZmdDYWlBQVFSQnFFRm9MSWdWQmYwWU5BU0FJSUFBb0Fzd0NFQ2NnQUNnQ3pBSWhCZ3NnQmlBRklBWnFJZ29nQWhBL0lRc2dBRUUxTmdKUUlBQkJ5QUJxUVFBZ0FFSFFBR29RSGlFR0FrQWdBQ2dDekFJZ0FFSFFBbXBHQkVBZ0FFSFFBR29oQlF3QkN5QUZRUU4wRUJraUJVVU5BU0FHSUFVUUp5QUFLQUxNQWlFSkN5QUFRVGhxSWdjZ0FoQVBJQWtnQ3lBS0lBVWdBRUhFQUdvZ0FFRkFheUFIRUxvQ0lBY1FEaUFCSUFVZ0FDZ0NSQ0FBS0FKQUlBSWdBeEJpSVFFZ0JoQWRJQWdRSFNBQVFZQURhaVFBSUFFUEN4QVhBQXVpQVFFRWZ5TUFRWUFDYXlJQUpBQWdBRUlsTndQNEFTQUFRZmdCYWlJR1FRRnlRZE1jUVFBZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSGdBV29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFSzRCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QmlJUUVnQUVHQUFtb2tBQ0FCQzdRQkFRTi9Jd0JCb0FGcklnQWtBQ0FBUVlYUkFDOEFBRHNCbkFFZ0FFR0IwUUFvQUFBMkFwZ0JJQUJCbUFGcUlnVkJBWEpCMmh4QkFDQUNLQUlFRUcwUUZpRUdJQUFnQkRZQ0FDQUFRWXNCYWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcmdFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFR0loQVNBQVFhQUJhaVFBSUFFTG9nRUJCSDhqQUVHQUFtc2lBQ1FBSUFCQ0pUY0QrQUVnQUVINEFXb2lCa0VCY2tIVEhFRUJJQUlvQWdRUWJSQVdJUWNnQUNBRU53TUFJQUJCNEFGcUlnVWdCVUVZSUFjZ0JpQUFFQ3dnQldvaUJ5QUNFRDhoQ0NBQVFSQnFJZ1lnQWhBUElBVWdDQ0FISUFCQklHb2lCU0FBUVJ4cUlBQkJHR29nQmhDdUFTQUdFQTRnQVNBRklBQW9BaHdnQUNnQ0dDQUNJQU1RWWlFQklBQkJnQUpxSkFBZ0FRc1dBRUdnZ1FGQnhJRUJLQUlBSUFJZ0FDQUJFT1lCQzdRQkFRTi9Jd0JCb0FGcklnQWtBQ0FBUVlYUkFDOEFBRHNCbkFFZ0FFR0IwUUFvQUFBMkFwZ0JJQUJCbUFGcUlnVkJBWEpCMmh4QkFTQUNLQUlFRUcwUUZpRUdJQUFnQkRZQ0FDQUFRWXNCYWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcmdFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFR0loQVNBQVFhQUJhaVFBSUFFTHpRRUJBWDhqQUVFd2F5SUZKQUFnQlNBQk5nSW9Ba0FnQWlnQ0JFRUJjVVVFUUNBQUlBRWdBaUFESUFRZ0FDZ0NBQ2dDR0JFR0FDRUNEQUVMSUFWQkdHb2lBQ0FDRUE4Z0FCQ01BU0VCSUFBUURnSkFJQVFFUUNBRlFSaHFJQUVRU3d3QkN5QUZRUmhxSUFFUVNnc2dCU0FGUVJocUVFQTJBaEFEUUNBRklBVkJHR29RYkRZQ0NDQUZRUkJxSUFWQkNHb1FXd1JBSUFWQktHb2dCVUVRYWlJQUtBSUFLQUlBRVBjQ0lBQVFsUUVNQVFVZ0JTZ0NLQ0VDSUFWQkdHb1FDaG9MQ3dzZ0JVRXdhaVFBSUFJTHBBRUJCWDhqQUVIZ0FHc2lBQ1FBSUFCQmk5RUFMd0FBT3dGY0lBQkJoOUVBS0FBQU5nSllFQlloQmlBQUlBUTJBZ0FnQUVGQWF5SUhJQWNnQjBFVUlBWWdBRUhZQUdvZ0FCQXNJZ2hxSWdRZ0FoQS9JUVlnQUVFUWFpSUZJQUlRRHlBRkVESWhDU0FGRUE0Z0NTQUhJQVFnQlJCdklBRWdCU0FGSUFocUlnRWdCaUFBYXlBQWFrRXdheUFFSUFaR0d5QUJJQUlnQXhCV0lRRWdBRUhnQUdva0FDQUJDNEFFQVFkL0l3QkJnQUpySWdBa0FDQUFRaVUzQS9nQklBQkIrQUZxUVFGeVFZOGVJQUlvQWdRUXJ3RWhDQ0FBSUFCQjBBRnFOZ0xNQVJBV0lRWUNmeUFJQkVBZ0FpZ0NDQ0VISUFCQlFHc2dCVGNEQUNBQUlBUTNBemdnQUNBSE5nSXdJQUJCMEFGcVFSNGdCaUFBUWZnQmFpQUFRVEJxRUN3TUFRc2dBQ0FFTndOUUlBQWdCVGNEV0NBQVFkQUJha0VlSUFZZ0FFSDRBV29nQUVIUUFHb1FMQXNoQmlBQVFUVTJBb0FCSUFCQndBRnFRUUFnQUVHQUFXb1FIaUVKSUFCQjBBRnFJZ29oQndKQUlBWkJIazRFUUJBV0lRWUNmeUFJQkVBZ0FpZ0NDQ0VISUFBZ0JUY0RFQ0FBSUFRM0F3Z2dBQ0FITmdJQUlBQkJ6QUZxSUFZZ0FFSDRBV29nQUJCYURBRUxJQUFnQkRjRElDQUFJQVUzQXlnZ0FFSE1BV29nQmlBQVFmZ0JhaUFBUVNCcUVGb0xJZ1pCZjBZTkFTQUpJQUFvQXN3QkVDY2dBQ2dDekFFaEJ3c2dCeUFHSUFkcUlnc2dBaEEvSVF3Z0FFRTFOZ0tBQVNBQVFmZ0Fha0VBSUFCQmdBRnFFQjRoQndKQUlBQW9Bc3dCSUFCQjBBRnFSZ1JBSUFCQmdBRnFJUVlNQVFzZ0JrRUJkQkFaSWdaRkRRRWdCeUFHRUNjZ0FDZ0N6QUVoQ2dzZ0FFSG9BR29pQ0NBQ0VBOGdDaUFNSUFzZ0JpQUFRZlFBYWlBQVFmQUFhaUFJRUx3Q0lBZ1FEaUFCSUFZZ0FDZ0NkQ0FBS0FKd0lBSWdBeEJXSVFFZ0J4QWRJQWtRSFNBQVFZQUNhaVFBSUFFUEN4QVhBQXZjQXdFSGZ5TUFRZEFCYXlJQUpBQWdBRUlsTndQSUFTQUFRY2dCYWtFQmNrR2tIeUFDS0FJRUVLOEJJUWNnQUNBQVFhQUJhallDbkFFUUZpRUZBbjhnQndSQUlBSW9BZ2doQmlBQUlBUTVBeWdnQUNBR05nSWdJQUJCb0FGcVFSNGdCU0FBUWNnQmFpQUFRU0JxRUN3TUFRc2dBQ0FFT1FNd0lBQkJvQUZxUVI0Z0JTQUFRY2dCYWlBQVFUQnFFQ3dMSVFVZ0FFRTFOZ0pRSUFCQmtBRnFRUUFnQUVIUUFHb1FIaUVJSUFCQm9BRnFJZ2toQmdKQUlBVkJIazRFUUJBV0lRVUNmeUFIQkVBZ0FpZ0NDQ0VHSUFBZ0JEa0RDQ0FBSUFZMkFnQWdBRUdjQVdvZ0JTQUFRY2dCYWlBQUVGb01BUXNnQUNBRU9RTVFJQUJCbkFGcUlBVWdBRUhJQVdvZ0FFRVFhaEJhQ3lJRlFYOUdEUUVnQ0NBQUtBS2NBUkFuSUFBb0Fwd0JJUVlMSUFZZ0JTQUdhaUlLSUFJUVB5RUxJQUJCTlRZQ1VDQUFRY2dBYWtFQUlBQkIwQUJxRUI0aEJnSkFJQUFvQXB3QklBQkJvQUZxUmdSQUlBQkIwQUJxSVFVTUFRc2dCVUVCZEJBWklnVkZEUUVnQmlBRkVDY2dBQ2dDbkFFaENRc2dBRUU0YWlJSElBSVFEeUFKSUFzZ0NpQUZJQUJCeEFCcUlBQkJRR3NnQnhDOEFpQUhFQTRnQVNBRklBQW9Ba1FnQUNnQ1FDQUNJQU1RVmlFQklBWVFIU0FJRUIwZ0FFSFFBV29rQUNBQkR3c1FGd0FMb1FFQkJIOGpBRUh3QUdzaUFDUUFJQUJDSlRjRGFDQUFRZWdBYWlJR1FRRnlRZE1jUVFBZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSFFBR29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFTEFCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVId0FHb2tBQ0FCQzdFQkFRTi9Jd0JCMEFCcklnQWtBQ0FBUVlYUkFDOEFBRHNCVENBQVFZSFJBQ2dBQURZQ1NDQUFRY2dBYWlJRlFRRnlRZG9jUVFBZ0FpZ0NCQkJ0RUJZaEJpQUFJQVEyQWdBZ0FFRTdhaUlFSUFSQkRTQUdJQVVnQUJBc0lBUnFJZ1lnQWhBL0lRY2dBRUVRYWlJRklBSVFEeUFFSUFjZ0JpQUFRU0JxSWdRZ0FFRWNhaUFBUVJocUlBVVFzQUVnQlJBT0lBRWdCQ0FBS0FJY0lBQW9BaGdnQWlBREVGWWhBU0FBUWRBQWFpUUFJQUVMb1FFQkJIOGpBRUh3QUdzaUFDUUFJQUJDSlRjRGFDQUFRZWdBYWlJR1FRRnlRZE1jUVFFZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSFFBR29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFTEFCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVId0FHb2tBQ0FCQyswUkFRNS9Jd0JCd0FKcklnWWtBQ0FHSUFFZ0FrRUJFTm9DTmdLVUFpQUdJQVlvQXBRQ0VKSUJOZ0tZQWtHaitJYXJmMEdjbE1MbGZTQUVHeUVPSUFCRklROUJzWmZYdW5vaEFRTkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFFaUFFSHd1dDdlQVV3RVFDQUFRY2l5dGRKN1RBUkFJQUJCeHN1cmlIcE1CRUFnQUVIdDVMR2plRVlOQ3lBQVFZeUdwN3g1UmcwS0lBQkJsOHpnOVhsSERSSWdCaWdDdEFKQmdJRUJhaUFHTFFDZkFqb0FBRUdYck13cElRRU1FZ3NnQUVHeGw5ZTZla1lOQWlBQVFleVpwdUo2UmcwTElBQkJ4OHVyaUhwSERSRWdCa0hBQW1va0FBOExJQUJCOUxlMTRuNU1CRUFnQUVISnNyWFNlMFlOQkNBQVFaeVV3dVY5UmcwR0lBQkJqUHlyeEg1SERSRU1FQXNnQUVIMXQ3WGlma1lOQkNBQVFhUDRocXQvUmcwR0lBQkJsNnpNS1VjTkVDQUdLQUswQWtFQmFpRU5RWVMxNDhVSElRRU1FQXNnQUVHdTA4ekRCVXdFUUNBQVFmVEh2dGdDVEFSQUlBNGhBU0FBUWZHNjN0NEJSZzBSSUFBaEFTQUFRZVAycnA0Q1J3MFJJQVpCb0FGcUVBb2FJQVlvQXFBQ0dnd1FDeUFBUWZYSHZ0Z0NSZzBNSUFCQjBPRFZod05HRFFjZ0FFSGszZk8zQkVjTkVDQUdLQUswQWtHZ2dRRnFJQVl0QUo4Q09nQUFRWmVzekNraEFRd1FDeUFBUWR5QWhMTUdUQVJBSUFCQnI5UE13d1ZHRFFzZ0FFRzAyNUhNQlVZTkRpQUFRWlhnK040RlJ3MFFRY1NCQVNBRE5nSUFRZkc2M3Q0QklRRU1FQXNnQUVIZGdJU3pCa1lORENBQVFkWGZ3Zk1HUmcwQklBQkJoTFhqeFFkSERROGdCaUFOTmdLMEFrR01ocWU4ZVVHTS9LdkVmaUFHS0FLMEFpQURTQnNoQVF3UEMwRUFJUWNnQmlBRVFRQktPZ0NkQWtIVjM4SHpCa0hKc3JYU2V5QUdMUUNkQWtFQmNSc2hBU0FHS0FLVUFpRUtEQTRMSUFaQmlBSnFJQVlvQXBRQ0VGUWlFQ0VLUVFBaENFRUFJUWtqQUVFUWF5SUJKQUFnQ2hBSklRc2pBRUVRYXlJSEpBQWdCa0g0QVdvaUFFSUFOd0lBSUFkQkFEWUNEQ0FBUVFocUlBZEJER29RelFFZ0IwRVFhaVFBQWtBZ0MwVU5BQU5BQWtBZ0NpQUpFQXN0QUFCQlBVWU5BQ0FLSUFrUUN5MEFBQ0lIUVN0R0lBZEJJSEpCNFFCclFScEpCSDlCQVFVZ0J4QkZRUUJIQzBFQVIzSWdCMEV2Um5KRkRRQWdDMEVCYXlFTElBRkJER29nQ0dvZ0NpQUpFQXN0QUFBNkFBQkJBQ0VISUFoQkFXb2lDRUVFUmdSQUEwQWdBVUVNYWlBSGFpSUlJQWdzQUFBUTlRRTZBQUFnQjBFQmFpSUhRUVJIRFFBTElBRWdBUzBBRHlBQkxRQU9JZ2RCQm5ScU9nQUxJQUVnQVMwQURTSUlRUVIyUVFOeElBRXRBQXhCQW5SeU9nQUpJQUVnQjBFQ2RrRVBjU0FJUVFSMGNqb0FDa0VBSVFoQkFDRUhBMEFnQUNBQlFRbHFJQWRxRVBRQ0lBZEJBV29pQjBFRFJ3MEFDd3NnQ1VFQmFpRUpJQXNOQVFzTElBaEZEUUFnQ0VFRFRBUkFJQUZCREdvZ0NHcEJBRUVFSUFockVFWWFDMEVBSVFjRFFDQUJRUXhxSUFkcUlna2dDU3dBQUJEMUFUb0FBQ0FIUVFGcUlnZEJCRWNOQUFzZ0FTQUJMUUFQSUFFdEFBNGlCMEVHZEdvNkFBc2dBU0FCTFFBTklnbEJCSFpCQTNFZ0FTMEFERUVDZEhJNkFBa2dBU0FIUVFKMlFROXhJQWxCQkhSeU9nQUtJQWhCQWtnTkFDQUlRUUZySVFoQkFDRUhBMEFnQUNBQlFRbHFJQWRxRVBRQ0lBZEJBV29pQnlBSVJ3MEFDd3NnQVVFUWFpUUFJQUFRaVFFaEVTQUFLQUlBSVF3Z0JrR3RIeWdBQURZQzhBRWdCa0dsSHlrQUFEY0Q2QUVnQmtJQU53UFlBU0FHUWdBM0E5QUJJQVpDQURjRHlBRWdCa0lBTndQQUFTQUdRZ0EzQTdnQklBWkNBRGNEc0FFZ0FCQ0pBU0VMSUFaQnNBRnFJUW9qQUVFd2F5SUJKQUFnQVVFZ2FpRUlJQVVnQkJDK0FpSUhCRUFnQ0VJQU53QUFJQWhDQURjQUNDQUhJQWdnQ0JDbkFRc2dCa0cvQW1vaEVpQUdRZEFCYWlFVElBY0VmeU1BUVJCcklna2tBQ0FCUVJCcUlnZ2dCaWtBNkFFM0FBQWdDQ0FHS0FEd0FUWUFDQ0FJUVlDQWdBZzJBQXdnQ1VFUWFpUUFJd0JCRUdzaUNTUUFJQXNFUUNBSklBZ3BBQUEzQXdBZ0NTQUlLUUFJTndNSUlBa1E2d0VnQnlBSklBd2dDeUFLRUlVQ0N5QUpRUkJxSkFBakFFRVFheUlKSkFBZ0FVSUFOd0FBSUFGQ0FEY0FDQ0FCUVNCcUlnd2dFa0VBSUFFUXZ3RWdEQ0FLSUFzZ0FSQy9BU0FKUWdBUTdRRWdDVUVJY2lBTFFRTjByUkR0QVNBTUlBbEJFQ0FCRUw4QklBbEJFR29rQUNBSElBZ2dBVUVRSUJNUWhRSWdCeEFRUVFBRlFYOExHaUFCUVRCcUpBQWdBQkR0QWlBQUtBSUFCRUFnQUNnQ0JDSUJJQUFvQWdBaUIwY0VRQU5BSUFBUVF4b2dCeUFCUVFGcklnRkhEUUFMQ3lBQUlBYzJBZ1FnQUJCREdpQUFLQUlBSVFFZ0FCQ0ZBUm9nQVJBUUN5QVFFQW9hUVNCQkVDQVJRVEJHR3lFSFFjbXl0ZEo3SVFFTURRc2dCaUFQT2dDZUFpQUdJQWMyQXJBQ0lBWWdDallDckFKQjliZTE0bjVCbGVENDNnVWdCaTBBbmdKQkFYRWJJUUVNREF0QndJRUJJQU0yQWdCQjhicmUzZ0VoQVF3TEMwSFE0TldIQTBHaitJYXJmeUFHS0FLWUFpQURSaHNoQVF3S0MwSFE0TldIQTBIdDVMR2plQ0FHS0FLd0FrRVFSaHRCN2VTeG8zZ2dCaTBBblFKQkFYRWJJUUVNQ1F0QmhMWGp4UWNoQVVFQUlRME1DQXNnQmlBR0tBS3NBaUFHS0FLMEFtb3RBQUE2QUo4Q0lBWXRBSjhDR2tHWHpPRDFlVUhrM2ZPM0JDQUdMUUNlQWtFQmNSc2hBUXdIQ3lBR0lBWkJvQUZxSWdBMkFxQUNJQVlvQXFBQ0dpQUFJQVlvQXF3Q0VGUWFRZXlacHVKNklRRkJBQ0VDREFZTElBWWdBallDdUFKQnI5UE13d1ZCNC9hdW5nSWdCaWdDdUFJZ0EwZ2JJUUVNQlFzZ0JpQUdRUkJxSWdBMkFxUUNJQVlvQXFRQ0dpQUFFTXdDR2lBR0lBWkJER29pQ0RZQ3FBSWdCaWdDcUFJYUlBWW9BcVFDUVFocUVNSUNJUWtnQmtHd0FXb2lBU0FHUWFBQmFpQUdLQUs0QWtFQmRCREFBaUFKSUFFUXZRSWdBUkFLR2lBQUlBZ1EvUUpCOWNlKzJBSkIzWUNFc3dZZ0JpMEFuZ0pCQVhFYklRRU1CQXNnQmlnQ3VBSkJnSUVCYWlBR0tBSU1PZ0FBUWJUYmtjd0ZJUUVNQXdzZ0JpZ0N1QUpCb0lFQmFpQUdLQUlNT2dBQVFiVGJrY3dGSVFFTUFnc2dCaWdDcUFJYUlBWkJFR29RaWdFYUlBWW9BcVFDR2lBR0tBSzRBaUlBUVFGMFFRSnhJQUJCQVhOcUlRSkI3Sm1tNG5vaEFRd0JDMEhIeTZ1SWVpRUJEQUFMQUF1eEFRRURmeU1BUWRBQWF5SUFKQUFnQUVHRjBRQXZBQUE3QVV3Z0FFR0IwUUFvQUFBMkFrZ2dBRUhJQUdvaUJVRUJja0hhSEVFQklBSW9BZ1FRYlJBV0lRWWdBQ0FFTmdJQUlBQkJPMm9pQkNBRVFRMGdCaUFGSUFBUUxDQUVhaUlHSUFJUVB5RUhJQUJCRUdvaUJTQUNFQThnQkNBSElBWWdBRUVnYWlJRUlBQkJIR29nQUVFWWFpQUZFTEFCSUFVUURpQUJJQVFnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVIUUFHb2tBQ0FCQzgwQkFRRi9Jd0JCTUdzaUJTUUFJQVVnQVRZQ0tBSkFJQUlvQWdSQkFYRkZCRUFnQUNBQklBSWdBeUFFSUFBb0FnQW9BaGdSQmdBaEFnd0JDeUFGUVJocUlnQWdBaEFQSUFBUWpnRWhBU0FBRUE0Q1FDQUVCRUFnQlVFWWFpQUJFRXNNQVFzZ0JVRVlhaUFCRUVvTElBVWdCVUVZYWhCQU5nSVFBMEFnQlNBRlFSaHFFRzQyQWdnZ0JVRVFhaUFGUVFocUVGc0VRQ0FGUVNocUlBVkJFR29pQUNnQ0FDd0FBQkQ0QWlBQUVKY0JEQUVGSUFVb0FpZ2hBaUFGUVJocUVBb2FDd3NMSUFWQk1Hb2tBQ0FDQy9JQ0FRRi9Jd0JCNEFKcklnQWtBQ0FBSUFJMkF0QUNJQUFnQVRZQzJBSWdBRUhRQVdvUUVTRUdJQUJCRUdvaUFpQURFQThnQWhBN1FlRFFBRUg2MEFBZ0FFSGdBV29RWXlBQ0VBNGdBRUhBQVdvUUVTSURJQU1RRXhBTUlBQWdBMEVBRUFzaUFUWUN2QUVnQUNBQ05nSU1JQUJCQURZQ0NBTkFBa0FnQUVIWUFtb2dBRUhRQW1vUU5rVU5BQ0FBS0FLOEFTQURFQWtnQVdwR0JFQWdBeEFKSVFJZ0F5QURFQWxCQVhRUURDQURJQU1RRXhBTUlBQWdBaUFEUVFBUUN5SUJhallDdkFFTElBQkIyQUpxRUNGQkVDQUJJQUJCdkFGcUlBQkJDR3BCQUNBR0lBQkJFR29nQUVFTWFpQUFRZUFCYWhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3lBRElBQW9BcndCSUFGckVBd2dBeEFOSVFJUUZpRUJJQUFnQlRZQ0FDQUNJQUVnQUJEQkFrRUJSd1JBSUFSQkJEWUNBQXNnQUVIWUFtb2dBRUhRQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0MyQUloQVNBREVBb2FJQVlRQ2hvZ0FFSGdBbW9rQUNBQkM5SURBUUYrSXdCQmdBTnJJZ0FrQUNBQUlBSTJBdkFDSUFBZ0FUWUMrQUlnQUVIWUFXb2dBeUFBUWZBQmFpQUFRZXdCYWlBQVFlZ0JhaERVQVNBQVFjZ0JhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdMRUFTQUFJQUJCSUdvMkFod2dBRUVBTmdJWUlBQkJBVG9BRnlBQVFjVUFPZ0FXQTBBQ1FDQUFRZmdDYWlBQVFmQUNhaEEyUlEwQUlBQW9Bc1FCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nTEVBUXNnQUVINEFtb1FJU0FBUVJkcUlBQkJGbW9nQWlBQVFjUUJhaUFBS0FMc0FTQUFLQUxvQVNBQVFkZ0JhaUFBUVNCcUlBQkJIR29nQUVFWWFpQUFRZkFCYWhEVEFRMEFJQUJCK0FKcUVDVWFEQUVMQ3dKQUlBQkIyQUZxRUFsRkRRQWdBQzBBRjBVTkFDQUFLQUljSWdNZ0FFRWdhbXRCbndGS0RRQWdBQ0FEUVFScU5nSWNJQU1nQUNnQ0dEWUNBQXNnQUNBQ0lBQW9Bc1FCSUFRUXd3SWdBQ2tEQUNFR0lBVWdBQ2tEQ0RjRENDQUZJQVkzQXdBZ0FFSFlBV29nQUVFZ2FpQUFLQUljSUFRUUxTQUFRZmdDYWlBQVFmQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMNEFpRUNJQUVRQ2hvZ0FFSFlBV29RQ2hvZ0FFR0FBMm9rQUNBQ0M3c0RBQ01BUWZBQ2F5SUFKQUFnQUNBQ05nTGdBaUFBSUFFMkF1Z0NJQUJCeUFGcUlBTWdBRUhnQVdvZ0FFSGNBV29nQUVIWUFXb1ExQUVnQUVHNEFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdEFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0NBQVFRRTZBQWNnQUVIRkFEb0FCZ05BQWtBZ0FFSG9BbW9nQUVIZ0Ftb1FOa1VOQUNBQUtBSzBBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3RBRUxJQUJCNkFKcUVDRWdBRUVIYWlBQVFRWnFJQUlnQUVHMEFXb2dBQ2dDM0FFZ0FDZ0MyQUVnQUVISUFXb2dBRUVRYWlBQVFReHFJQUJCQ0dvZ0FFSGdBV29RMHdFTkFDQUFRZWdDYWhBbEdnd0JDd3NDUUNBQVFjZ0JhaEFKUlEwQUlBQXRBQWRGRFFBZ0FDZ0NEQ0lESUFCQkVHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0RDQURJQUFvQWdnMkFnQUxJQVVnQWlBQUtBSzBBU0FFRU1RQ09RTUFJQUJCeUFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVIb0Ftb2dBRUhnQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0M2QUloQWlBQkVBb2FJQUJCeUFGcUVBb2FJQUJCOEFKcUpBQWdBZ3U3QXdBakFFSHdBbXNpQUNRQUlBQWdBallDNEFJZ0FDQUJOZ0xvQWlBQVFjZ0JhaUFESUFCQjRBRnFJQUJCM0FGcUlBQkIyQUZxRU5RQklBQkJ1QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyUUJJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ2dBRUVCT2dBSElBQkJ4UUE2QUFZRFFBSkFJQUJCNkFKcUlBQkI0QUpxRURaRkRRQWdBQ2dDdEFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBclFCQ3lBQVFlZ0NhaEFoSUFCQkIyb2dBRUVHYWlBQ0lBQkJ0QUZxSUFBb0F0d0JJQUFvQXRnQklBQkJ5QUZxSUFCQkVHb2dBRUVNYWlBQVFRaHFJQUJCNEFGcUVOTUJEUUFnQUVIb0Ftb1FKUm9NQVFzTEFrQWdBRUhJQVdvUUNVVU5BQ0FBTFFBSFJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdEFFZ0JCREZBamdDQUNBQVFjZ0JhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkI2QUpxSUFCQjRBSnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQXVnQ0lRSWdBUkFLR2lBQVFjZ0JhaEFLR2lBQVFmQUNhaVFBSUFJTG5RTUJBbjhqQUVIZ0Ftc2lBQ1FBSUFBZ0FqWUMwQUlnQUNBQk5nTFlBaUFERUZ3aEJpQURJQUJCNEFGcUVKa0JJUWNnQUVIUUFXb2dBeUFBUWN3Q2FoQ1lBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRZGdDYWlBQVFkQUNhaEEyUlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVIWUFtb1FJU0FHSUFJZ0FFRzhBV29nQUVFSWFpQUFLQUxNQWlBQVFkQUJhaUFBUVJCcUlBQkJER29nQnhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4Z0kzQXdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRZGdDYWlBQVFkQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMWUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFSGdBbW9rQUNBQ0M1MERBUUovSXdCQjRBSnJJZ0FrQUNBQUlBSTJBdEFDSUFBZ0FUWUMyQUlnQXhCY0lRWWdBeUFBUWVBQmFoQ1pBU0VISUFCQjBBRnFJQU1nQUVITUFtb1FtQUVnQUVIQUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdkFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0FOQUFrQWdBRUhZQW1vZ0FFSFFBbW9RTmtVTkFDQUFLQUs4QVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN2QUVMSUFCQjJBSnFFQ0VnQmlBQ0lBQkJ2QUZxSUFCQkNHb2dBQ2dDekFJZ0FFSFFBV29nQUVFUWFpQUFRUXhxSUFjUWl3RU5BQ0FBUWRnQ2FoQWxHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTWtDT3dFQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUhZQW1vZ0FFSFFBbW9RS0FSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQzJBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkI0QUpxSkFBZ0FndWRBd0VDZnlNQVFlQUNheUlBSkFBZ0FDQUNOZ0xRQWlBQUlBRTJBdGdDSUFNUVhDRUdJQU1nQUVIZ0FXb1FtUUVoQnlBQVFkQUJhaUFESUFCQnpBSnFFSmdCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCMkFKcUlBQkIwQUpxRURaRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFkZ0NhaEFoSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFvQXN3Q0lBQkIwQUZxSUFCQkVHb2dBRUVNYWlBSEVJc0JEUUFnQUVIWUFtb1FKUm9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaERLQWpjREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCMkFKcUlBQkIwQUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F0Z0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRZUFDYWlRQUlBSUxuUU1CQW44akFFSGdBbXNpQUNRQUlBQWdBallDMEFJZ0FDQUJOZ0xZQWlBREVGd2hCaUFESUFCQjRBRnFFSmtCSVFjZ0FFSFFBV29nQXlBQVFjd0NhaENZQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUWRnQ2FpQUFRZEFDYWhBMlJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFSFlBbW9RSVNBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBS0FMTUFpQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0J4Q0xBUTBBSUFCQjJBSnFFQ1VhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLOEFTQUVJQVlReXdJMkFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUWRnQ2FpQUFRZEFDYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBTFlBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUhnQW1va0FDQUNDK3dCQVFGL0l3QkJJR3NpQmlRQUlBWWdBVFlDR0FKQUlBTW9BZ1JCQVhGRkJFQWdCa0YvTmdJQUlBWWdBQ0FCSUFJZ0F5QUVJQVlnQUNnQ0FDZ0NFQkVGQUNJQk5nSVlBa0FDUUFKQUlBWW9BZ0FPQWdBQkFnc2dCVUVBT2dBQURBTUxJQVZCQVRvQUFBd0NDeUFGUVFFNkFBQWdCRUVFTmdJQURBRUxJQVlnQXhBUElBWVFPeUVCSUFZUURpQUdJQU1RRHlBR0VJd0JJUUFnQmhBT0lBWWdBQkJMSUFaQkRISWdBQkJLSUFVZ0JrRVlhaUlESUFJZ0JpQURJQUVnQkVFQkVMSUJJQVpHT2dBQUlBWW9BaGdoQVFOQUlBTkJER3NRQ2lJRElBWkhEUUFMQ3lBR1FTQnFKQUFnQVF2eUFnRUJmeU1BUVpBQ2F5SUFKQUFnQUNBQ05nS0FBaUFBSUFFMkFvZ0NJQUJCMEFGcUVCRWhCaUFBUVJCcUlnSWdBeEFQSUFJUU1rSGcwQUJCK3RBQUlBQkI0QUZxRUc4Z0FoQU9JQUJCd0FGcUVCRWlBeUFERUJNUURDQUFJQU5CQUJBTElnRTJBcndCSUFBZ0FqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBeEFKSUFGcVJnUkFJQU1RQ1NFQ0lBTWdBeEFKUVFGMEVBd2dBeUFERUJNUURDQUFJQUlnQTBFQUVBc2lBV28yQXJ3QkN5QUFRWWdDYWhBZlFSQWdBU0FBUWJ3QmFpQUFRUWhxUVFBZ0JpQUFRUkJxSUFCQkRHb2dBRUhnQVdvUWpRRU5BQ0FBUVlnQ2FoQWlHZ3dCQ3dzZ0F5QUFLQUs4QVNBQmF4QU1JQU1RRFNFQ0VCWWhBU0FBSUFVMkFnQWdBaUFCSUFBUXdRSkJBVWNFUUNBRVFRUTJBZ0FMSUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFFZ0F4QUtHaUFHRUFvYUlBQkJrQUpxSkFBZ0FRdlNBd0VCZmlNQVFhQUNheUlBSkFBZ0FDQUNOZ0tRQWlBQUlBRTJBcGdDSUFCQjRBRnFJQU1nQUVId0FXb2dBRUh2QVdvZ0FFSHVBV29RMXdFZ0FFSFFBV29RRVNJQklBRVFFeEFNSUFBZ0FVRUFFQXNpQWpZQ3pBRWdBQ0FBUVNCcU5nSWNJQUJCQURZQ0dDQUFRUUU2QUJjZ0FFSEZBRG9BRmdOQUFrQWdBRUdZQW1vZ0FFR1FBbW9RTVVVTkFDQUFLQUxNQVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN6QUVMSUFCQm1BSnFFQjhnQUVFWGFpQUFRUlpxSUFJZ0FFSE1BV29nQUN3QTd3RWdBQ3dBN2dFZ0FFSGdBV29nQUVFZ2FpQUFRUnhxSUFCQkdHb2dBRUh3QVdvUTFnRU5BQ0FBUVpnQ2FoQWlHZ3dCQ3dzQ1FDQUFRZUFCYWhBSlJRMEFJQUF0QUJkRkRRQWdBQ2dDSENJRElBQkJJR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNIQ0FESUFBb0FoZzJBZ0FMSUFBZ0FpQUFLQUxNQVNBRUVNTUNJQUFwQXdBaEJpQUZJQUFwQXdnM0F3Z2dCU0FHTndNQUlBQkI0QUZxSUFCQklHb2dBQ2dDSENBRUVDMGdBRUdZQW1vZ0FFR1FBbW9RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQ21BSWhBaUFCRUFvYUlBQkI0QUZxRUFvYUlBQkJvQUpxSkFBZ0FndTdBd0FqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFBUWRBQmFpQURJQUJCNEFGcUlBQkIzd0ZxSUFCQjNnRnFFTmNCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnZ0FFRUJPZ0FISUFCQnhRQTZBQVlEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUVlnQ2FoQWZJQUJCQjJvZ0FFRUdhaUFDSUFCQnZBRnFJQUFzQU44QklBQXNBTjRCSUFCQjBBRnFJQUJCRUdvZ0FFRU1haUFBUVFocUlBQkI0QUZxRU5ZQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFMUUFIUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkJERUFqa0RBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUVpBQ2FpUUFJQUlMdXdNQUl3QkJrQUpySWdBa0FDQUFJQUkyQW9BQ0lBQWdBVFlDaUFJZ0FFSFFBV29nQXlBQVFlQUJhaUFBUWQ4QmFpQUFRZDRCYWhEWEFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlJQUJCQVRvQUJ5QUFRY1VBT2dBR0EwQUNRQ0FBUVlnQ2FpQUFRWUFDYWhBeFJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFR0lBbW9RSHlBQVFRZHFJQUJCQm1vZ0FpQUFRYndCYWlBQUxBRGZBU0FBTEFEZUFTQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0FFRUlhaUFBUWVBQmFoRFdBUTBBSUFCQmlBSnFFQ0lhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUMwQUIwVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUVF4UUk0QWdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDYUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEI0TkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREdBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTEpRQWdBQ2dDQkJvZ0FDQUFLQUlFUWJWL2NUWUNCQ0FBSUFBb0FnUkJDSEkyQWdRZ0FBdVNBd0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFNUVhDRUdJQUJCMEFGcUlBTWdBRUgvQVdvUW1nRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFR0lBbW9nQUVHQUFtb1FNVVVOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCaUFKcUVCOGdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDd0Evd0VnQUVIUUFXb2dBRUVRYWlBQVFReHFRZURRQUJDTkFRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF5UUk3QVFBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDYUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEI0TkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREtBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTGtnTUJBWDhqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFERUZ3aEJpQUFRZEFCYWlBRElBQkIvd0ZxRUpvQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRWWdDYWhBZklBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBc0FQOEJJQUJCMEFGcUlBQkJFR29nQUVFTWFrSGcwQUFRalFFTkFDQUFRWWdDYWhBaUdnd0JDd3NDUUNBQVFkQUJhaEFKUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkNBR0VNc0NOZ0lBSUFCQjBBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFR0lBbW9nQUVHQUFtb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDaUFJaEFpQUJFQW9hSUFCQjBBRnFFQW9hSUFCQmtBSnFKQUFnQWd2VkJRRUlmeU1BUWRBQmF5SUdKQUFnQXhBWklRY2dCaUFDTmdLOEFTQUdJQWMyQXJnQlFiZXBtdVo4UWVuMzh2SjVJQVZCRUVZYlFlbjM4dko1SUFOQklFWWJJUXNnQmtFZ2FpRU1BMEJCeXZmbTl3SWhBZ05BQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FDUWJ2VHFiQjlUQVJBSUFKQmdzT29qbnhNQkVBZ0FrSG4rSWU1ZUVZTkFpQUNRZFMzK3NCNFJnMEZJQUpCNmZmeThubEhEUXBCZzhPb2pud2hBa0VBSVFjTUNnc2dBa0dEdzZpT2ZFWU5CeUFDUVk2RnN1UjhSZzBGSUFKQnQ2bWE1bnhIRFFrZ0JpQUdRYWdCYWlJQ05nTEFBU0FHS0FMQUFSb2dBaUFHS0FLNEFSQlVHa0dPaGJMa2ZDRUNRUUFoQ0F3SkN5QUNRWW1DdE80Q1NnMEJJQUpCdk5PcHNIMUdEUUlnQWtIUzQ3eVNBa1lOQlNBQ1FlVy8rSjhDUncwSUlBWkJxQUZxRUFvYUlBWW9Bc0FCR2d0QmlvSzA3Z0loQWd3SEN5QUNRY3IzNXZjQ1J3UkFJQUpCcHNmVnBnUkdEUVlnQWtHS2dyVHVBa2NOQnlBR0tBSzRBUkFRSUFaQjBBRnFKQUFQQ3lBR0lBbzJBc1FCUWRTMytzQjRRYnpUcWJCOUlBWW9Bc1FCSUFOSUd5RUNEQVlMUWNTQkFTQUZOZ0lBSUFBZ0FTQUVJQVlvQXJnQklBTVE1Z0VnQ3lFQ0RBVUxJQVlvQXJnQklBWW9Bc1FCYWlBR0tBSzhBU0FHS0FMRUFXb3RBQUE2QUFBZ0JpZ0N4QUZCQVdvaENnd0ZDeUFHSUFnMkFzZ0JRZExqdkpJQ1FlVy8rSjhDSUFZb0FzZ0JJQVZJR3lFQ0RBTUxJQVpCR0dvaURSRE1BaUVDSUF3UXdnSWhDQ0FHUVFocUlna2dCa0dvQVdvZ0JpZ0N5QUZCQVhRUXdBSWdDQ0FKRUwwQ0lBa1FDaG9nRFNBSkVQMENJQVlvQXNnQlFhQ0JBV29nQmlnQ0NEb0FBQ0FDRUlvQkdpQUdLQUxJQVVFQmFpRUlRWTZGc3VSOElRSU1BZ3NnQmlBSE5nTE1BVUdteDlXbUJFSG4rSWU1ZUNBR0tBTE1BU0FGU0JzaEFnd0JDeUFHS0FMTUFVR2dnUUZxSUFZb0FyZ0JJQVlvQXN3QmFpMEFBRG9BQUNBR0tBTE1BVUVCYWlFSFFZUERxSTU4SVFJTUFBc0FDd0FMN0FFQkFYOGpBRUVnYXlJR0pBQWdCaUFCTmdJWUFrQWdBeWdDQkVFQmNVVUVRQ0FHUVg4MkFnQWdCaUFBSUFFZ0FpQURJQVFnQmlBQUtBSUFLQUlRRVFVQUlnRTJBaGdDUUFKQUFrQWdCaWdDQUE0Q0FBRUNDeUFGUVFBNkFBQU1Bd3NnQlVFQk9nQUFEQUlMSUFWQkFUb0FBQ0FFUVFRMkFnQU1BUXNnQmlBREVBOGdCaEF5SVFFZ0JoQU9JQVlnQXhBUElBWVFqZ0VoQUNBR0VBNGdCaUFBRUVzZ0JrRU1jaUFBRUVvZ0JTQUdRUmhxSWdNZ0FpQUdJQU1nQVNBRVFRRVF0QUVnQmtZNkFBQWdCaWdDR0NFQkEwQWdBMEVNYXhBS0lnTWdCa2NOQUFzTElBWkJJR29rQUNBQkMwQUJBWDlCQUNFQUEzOGdBU0FDUmdSL0lBQUZJQUVvQWdBZ0FFRUVkR29pQUVHQWdJQ0FmM0VpQTBFWWRpQURjaUFBY3lFQUlBRkJCR29oQVF3QkN3c0xHd0FqQUVFUWF5SUJKQUFnQUNBQ0lBTVF6Z0lnQVVFUWFpUUFDMVFCQW44Q1FBTkFJQU1nQkVjRVFFRi9JUUFnQVNBQ1JnMENJQUVvQWdBaUJTQURLQUlBSWdaSURRSWdCU0FHU2dSQVFRRVBCU0FEUVFScUlRTWdBVUVFYWlFQkRBSUxBQXNMSUFFZ0FrY2hBQXNnQUF0QUFRRi9RUUFoQUFOL0lBRWdBa1lFZnlBQUJTQUJMQUFBSUFCQkJIUnFJZ0JCZ0lDQWdIOXhJZ05CR0hZZ0EzSWdBSE1oQUNBQlFRRnFJUUVNQVFzTEMvY0JBUU4vSUFCRkJFQkJ3SUVCS0FJQUlRQWpBRUVnYXlJRUpBQkJnSUVCSUFBUXZnSWlCUVIvSUFRZ0F5a0FBRGNERUNBRUlBTXBBQWczQXhnZ0FnUkFBMEFnQlNBRVFSQnFJQVFRcHdFZ0FrRVFJQUpCRUVrYklRTkJBQ0VBQTBBZ0FDQUJhaUlHSUFZdEFBQWdBQ0FFYWkwQUFITTZBQUFnQUVFQmFpSUFJQU5IRFFBTElBSWdBMnNoQWlBQklBTnFJUUZCRHlFQUEwQUNRQ0FBSWdNZ0JFRVFhbW9pQUNBQUxRQUFRUUZxSWdBNkFBQWdBRUgvQVhFTkFDQURRUUZySVFBZ0F3MEJDd3NnQWcwQUN3c2dCUkFRUVFBRlFYOExHaUFFUVNCcUpBQVBDMEdnZ1FGQnhJRUJLQUlBSUFNZ0FTQUNFT1lCQ3hzQUl3QkJFR3NpQVNRQUlBQWdBaUFERVBNQ0lBRkJFR29rQUF0ZUFRTi9JQUVnQkNBRGEyb2hCUUpBQTBBZ0F5QUVSd1JBUVg4aEFDQUJJQUpHRFFJZ0FTd0FBQ0lHSUFNc0FBQWlCMGdOQWlBR0lBZEtCRUJCQVE4RklBTkJBV29oQXlBQlFRRnFJUUVNQWdzQUN3c2dBaUFGUnlFQUN5QUFDNmtCQVFSL0lBQW9BbFFpQXlnQ0JDSUZJQUFvQWhRZ0FDZ0NIQ0lHYXlJRUlBUWdCVXNiSWdRRVFDQURLQUlBSUFZZ0JCQkNHaUFESUFNb0FnQWdCR28yQWdBZ0F5QURLQUlFSUFScklnVTJBZ1FMSUFNb0FnQWhCQ0FGSUFJZ0FpQUZTeHNpQlFSQUlBUWdBU0FGRUVJYUlBTWdBeWdDQUNBRmFpSUVOZ0lBSUFNZ0F5Z0NCQ0FGYXpZQ0JBc2dCRUVBT2dBQUlBQWdBQ2dDTENJQk5nSWNJQUFnQVRZQ0ZDQUNDeWtBSUFFZ0FTZ0NBRUVIYWtGNGNTSUJRUkJxTmdJQUlBQWdBU2tEQUNBQktRTUlFTjBCT1FNQUM3UVlBeEovQVh3Q2ZpTUFRYkFFYXlJTEpBQWdDMEVBTmdJc0FrQWdBYjBpR1VJQVV3UkFRUUVoRUVINUdpRVRJQUdhSWdHOUlSa01BUXNnQkVHQUVIRUVRRUVCSVJCQi9Cb2hFd3dCQzBIL0drSDZHaUFFUVFGeEloQWJJUk1nRUVVaEZBc0NRQ0FaUW9DQWdJQ0FnSUQ0L3dDRFFvQ0FnSUNBZ0lENC93QlJCRUFnQUVFZ0lBSWdFRUVEYWlJRElBUkIvLzk3Y1JBdUlBQWdFeUFRRUNvZ0FFSEhIRUdBSGlBRlFTQnhJZ1ViUWVvY1FaWWVJQVViSUFFZ0FXSWJRUU1RS2lBQVFTQWdBaUFESUFSQmdNQUFjeEF1SUFJZ0F5QUNJQU5LR3lFSkRBRUxJQXRCRUdvaEVRSkFBbjhDUUNBQklBdEJMR29RM1FJaUFTQUJvQ0lCUkFBQUFBQUFBQUFBWWdSQUlBc2dDeWdDTENJR1FRRnJOZ0lzSUFWQklISWlEa0hoQUVjTkFRd0RDeUFGUVNCeUlnNUI0UUJHRFFJZ0N5Z0NMQ0VLUVFZZ0F5QURRUUJJR3d3QkN5QUxJQVpCSFdzaUNqWUNMQ0FCUkFBQUFBQUFBTEJCb2lFQlFRWWdBeUFEUVFCSUd3c2hEQ0FMUVRCcUlBdEIwQUpxSUFwQkFFZ2JJZzBoQndOQUlBY0NmeUFCUkFBQUFBQUFBUEJCWXlBQlJBQUFBQUFBQUFBQVpuRUVRQ0FCcXd3QkMwRUFDeUlETmdJQUlBZEJCR29oQnlBQklBTzRvVVFBQUFBQVpjM05RYUlpQVVRQUFBQUFBQUFBQUdJTkFBc0NRQ0FLUVFCTUJFQWdDaUVESUFjaEJpQU5JUWdNQVFzZ0RTRUlJQW9oQXdOQUlBTkJIU0FEUVIxSUd5RURBa0FnQjBFRWF5SUdJQWhKRFFBZ0E2MGhHa0lBSVJrRFFDQUdJQmxDLy8vLy93K0RJQVkxQWdBZ0dvWjhJaGtnR1VLQWxPdmNBNEFpR1VLQWxPdmNBMzU5UGdJQUlBWkJCR3NpQmlBSVR3MEFDeUFacHlJR1JRMEFJQWhCQkdzaUNDQUdOZ0lBQ3dOQUlBZ2dCeUlHU1FSQUlBWkJCR3NpQnlnQ0FFVU5BUXNMSUFzZ0N5Z0NMQ0FEYXlJRE5nSXNJQVloQnlBRFFRQktEUUFMQ3lBTVFSbHFRUWx1SVFjZ0EwRUFTQVJBSUFkQkFXb2hFaUFPUWVZQVJpRVZBMEJCQUNBRGF5SURRUWtnQTBFSlNCc2hDUUpBSUFZZ0NFc0VRRUdBbE92Y0F5QUpkaUVXUVg4Z0NYUkJmM01oRDBFQUlRTWdDQ0VIQTBBZ0J5QURJQWNvQWdBaUZ5QUpkbW8yQWdBZ0R5QVhjU0FXYkNFRElBZEJCR29pQnlBR1NRMEFDeUFJS0FJQUlRY2dBMFVOQVNBR0lBTTJBZ0FnQmtFRWFpRUdEQUVMSUFnb0FnQWhCd3NnQ3lBTEtBSXNJQWxxSWdNMkFpd2dEU0FJSUFkRlFRSjBhaUlJSUJVYklnY2dFa0VDZEdvZ0JpQUdJQWRyUVFKMUlCSktHeUVHSUFOQkFFZ05BQXNMUVFBaEF3SkFJQVlnQ0UwTkFDQU5JQWhyUVFKMVFRbHNJUU5CQ2lFSElBZ29BZ0FpQ1VFS1NRMEFBMEFnQTBFQmFpRURJQWtnQjBFS2JDSUhUdzBBQ3dzZ0RFRUFJQU1nRGtIbUFFWWJheUFPUWVjQVJpQU1RUUJIY1dzaUJ5QUdJQTFyUVFKMVFRbHNRUWxyU0FSQVFRUkJwQUlnQ2tFQVNCc2dDMm9nQjBHQXlBQnFJZ2xCQ1cwaUQwRUNkR3BCMEI5cklRcEJDaUVISUFrZ0QwRUpiR3NpQ1VFSFRBUkFBMEFnQjBFS2JDRUhJQWxCQVdvaUNVRUlSdzBBQ3dzQ1FDQUtLQUlBSWhJZ0VpQUhiaUlWSUFkc2F5SUpSU0FLUVFScUlnOGdCa1p4RFFBQ1FDQVZRUUZ4UlFSQVJBQUFBQUFBQUVCRElRRWdCMEdBbE92Y0EwY2dDQ0FLVDNJTkFTQUtRUVJyTFFBQVFRRnhSUTBCQzBRQkFBQUFBQUJBUXlFQkMwUUFBQUFBQUFEZ1AwUUFBQUFBQUFEd1AwUUFBQUFBQUFENFB5QUdJQTlHRzBRQUFBQUFBQUQ0UHlBSklBZEJBWFlpRDBZYklBa2dEMGtiSVJnQ1FDQVVEUUFnRXkwQUFFRXRSdzBBSUJpYUlSZ2dBWm9oQVFzZ0NpQVNJQWxySWdrMkFnQWdBU0FZb0NBQllRMEFJQW9nQnlBSmFpSUROZ0lBSUFOQmdKVHIzQU5QQkVBRFFDQUtRUUEyQWdBZ0NDQUtRUVJySWdwTEJFQWdDRUVFYXlJSVFRQTJBZ0FMSUFvZ0NpZ0NBRUVCYWlJRE5nSUFJQU5CLzVQcjNBTkxEUUFMQ3lBTklBaHJRUUoxUVFsc0lRTkJDaUVISUFnb0FnQWlDVUVLU1EwQUEwQWdBMEVCYWlFRElBa2dCMEVLYkNJSFR3MEFDd3NnQ2tFRWFpSUhJQVlnQmlBSFN4c2hCZ3NEUUNBR0lnY2dDRTBpQ1VVRVFDQUhRUVJySWdZb0FnQkZEUUVMQ3dKQUlBNUI1d0JIQkVBZ0JFRUljU0VLREFFTElBTkJmM05CZnlBTVFRRWdEQnNpQmlBRFNpQURRWHRLY1NJS0d5QUdhaUVNUVg5QmZpQUtHeUFGYWlFRklBUkJDSEVpQ2cwQVFYY2hCZ0pBSUFrTkFDQUhRUVJyS0FJQUlnNUZEUUJCQ2lFSlFRQWhCaUFPUVFwd0RRQURRQ0FHSWdwQkFXb2hCaUFPSUFsQkNtd2lDWEJGRFFBTElBcEJmM01oQmdzZ0J5QU5hMEVDZFVFSmJDRUpJQVZCWDNGQnhnQkdCRUJCQUNFS0lBd2dCaUFKYWtFSmF5SUdRUUFnQmtFQVNoc2lCaUFHSUF4S0d5RU1EQUVMUVFBaENpQU1JQU1nQ1dvZ0JtcEJDV3NpQmtFQUlBWkJBRW9iSWdZZ0JpQU1TaHNoREF0QmZ5RUpJQXhCL2YvLy93ZEIvdi8vL3djZ0NpQU1jaUlHRzBvTkFTQU1JQVpCQUVjaUVtcEJBV29oRGdKQUlBVkJYM0VpRkVIR0FFWUVRQ0FEUWYvLy8vOEhJQTVyU2cwRElBTkJBQ0FEUVFCS0d5RUdEQUVMSUJFZ0F5QURRUjkxSWdacUlBWnpyU0FSRUk4QklnWnJRUUZNQkVBRFFDQUdRUUZySWdaQk1Eb0FBQ0FSSUFaclFRSklEUUFMQ3lBR1FRSnJJZzhnQlRvQUFDQUdRUUZyUVMxQkt5QURRUUJJR3pvQUFDQVJJQTlySWdaQi8vLy8vd2NnRG10S0RRSUxJQVlnRG1vaUF5QVFRZi8vLy84SGMwb05BU0FBUVNBZ0FpQURJQkJxSWdVZ0JCQXVJQUFnRXlBUUVDb2dBRUV3SUFJZ0JTQUVRWUNBQkhNUUxnSkFBa0FDUUNBVVFjWUFSZ1JBSUF0QkVHb2lCa0VJY2lFRElBWkJDWEloQ2lBTklBZ2dDQ0FOU3hzaUNTRUlBMEFnQ0RVQ0FDQUtFSThCSVFZQ1FDQUlJQWxIQkVBZ0JpQUxRUkJxVFEwQkEwQWdCa0VCYXlJR1FUQTZBQUFnQmlBTFFSQnFTdzBBQ3d3QkN5QUdJQXBIRFFBZ0MwRXdPZ0FZSUFNaEJnc2dBQ0FHSUFvZ0Jtc1FLaUFJUVFScUlnZ2dEVTBOQUF0QkFDRUdJQkpGRFFJZ0FFSCtIa0VCRUNvZ0RFRUFUQ0FISUFoTmNnMEJBMEFnQ0RVQ0FDQUtFSThCSWdZZ0MwRVFha3NFUUFOQUlBWkJBV3NpQmtFd09nQUFJQVlnQzBFUWFrc05BQXNMSUFBZ0JpQU1RUWtnREVFSlNCc1FLaUFNUVFscklRWWdDRUVFYWlJSUlBZFBEUU1nREVFSlNpRURJQVloRENBRERRQUxEQUlMQWtBZ0RFRUFTQTBBSUFjZ0NFRUVhaUFISUFoTEd5RUpJQXRCRUdvaUEwRUpjaUVOSUFOQkNISWhBeUFJSVFjRFFDQU5JQWMxQWdBZ0RSQ1BBU0lHUmdSQUlBdEJNRG9BR0NBRElRWUxBa0FnQnlBSVJ3UkFJQVlnQzBFUWFrME5BUU5BSUFaQkFXc2lCa0V3T2dBQUlBWWdDMEVRYWtzTkFBc01BUXNnQUNBR1FRRVFLaUFHUVFGcUlRWkJBQ0FNUVFCTUlBb2JEUUFnQUVIK0hrRUJFQ29MSUFBZ0JpQU5JQVpySWdZZ0RDQUdJQXhJR3hBcUlBd2dCbXNoRENBSFFRUnFJZ2NnQ1U4TkFTQU1RUUJPRFFBTEN5QUFRVEFnREVFU2FrRVNRUUFRTGlBQUlBOGdFU0FQYXhBcURBSUxJQXdoQmdzZ0FFRXdJQVpCQ1dwQkNVRUFFQzRMSUFCQklDQUNJQVVnQkVHQXdBQnpFQzRnQWlBRklBSWdCVW9iSVFrTUFRc2dFeUFGUVJwMFFSOTFRUWx4YWlFTUFrQWdBMEVMU3cwQVFRd2dBMnNoQmtRQUFBQUFBQUF3UUNFWUEwQWdHRVFBQUFBQUFBQXdRS0loR0NBR1FRRnJJZ1lOQUFzZ0RDMEFBRUV0UmdSQUlCZ2dBWm9nR0tHZ21pRUJEQUVMSUFFZ0dLQWdHS0VoQVFzZ0VTQUxLQUlzSWdZZ0JrRWZkU0lHYWlBR2M2MGdFUkNQQVNJR1JnUkFJQXRCTURvQUR5QUxRUTlxSVFZTElCQkJBbkloQ2lBRlFTQnhJUWdnQ3lnQ0xDRUhJQVpCQW1zaURTQUZRUTlxT2dBQUlBWkJBV3RCTFVFcklBZEJBRWdiT2dBQUlBUkJDSEVoQmlBTFFSQnFJUWNEUUNBSElnVUNmeUFCbVVRQUFBQUFBQURnUVdNRVFDQUJxZ3dCQzBHQWdJQ0FlQXNpQjBHZ01tb3RBQUFnQ0hJNkFBQkJBU0FEUVFCS0lBRWdCN2VoUkFBQUFBQUFBREJBb2lJQlJBQUFBQUFBQUFBQVluSWdCaHRGSUFWQkFXb2lCeUFMUVJCcWEwRUJSM0pGQkVBZ0JVRXVPZ0FCSUFWQkFtb2hCd3NnQVVRQUFBQUFBQUFBQUdJTkFBdEJmeUVKUWYzLy8vOEhJQW9nRVNBTmF5SUZhaUlHYXlBRFNBMEFJQUJCSUNBQ0lBWUNmd0pBSUFORkRRQWdCeUFMUVJCcWF5SUlRUUpySUFOT0RRQWdBMEVDYWd3QkN5QUhJQXRCRUdwcklnZ0xJZ2RxSWdNZ0JCQXVJQUFnRENBS0VDb2dBRUV3SUFJZ0F5QUVRWUNBQkhNUUxpQUFJQXRCRUdvZ0NCQXFJQUJCTUNBSElBaHJRUUJCQUJBdUlBQWdEU0FGRUNvZ0FFRWdJQUlnQXlBRVFZREFBSE1RTGlBQ0lBTWdBaUFEU2hzaENRc2dDMEd3Qkdva0FDQUpDMVFCQW44Z0FTQUFLQUpVSWdFZ0FVRUFJQUpCZ0FKcUlnTVEzQUVpQkNBQmF5QURJQVFiSWdNZ0FpQUNJQU5MR3lJQ0VFSWFJQUFnQVNBRGFpSUROZ0pVSUFBZ0F6WUNDQ0FBSUFFZ0FtbzJBZ1FnQWdzSkFDQUFFT0VCRUJBTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEaUFRc1RBQ0FBSUFBb0FnQkJER3NvQWdCcUVJb0JDd29BSUFCQkNHc1E0Z0VMQ2dBZ0FFRUlheENLQVFzYUFDQUFJQUVnQWlrRENFRUFJQU1nQVNnQ0FDZ0NFQkVXQUFzSkFDQUFFTkFCRUJBTGxBSUNBWDhEZmlBQktBSVlJQUVvQWl4TEJFQWdBU0FCS0FJWU5nSXNDMEovSVFnQ1FDQUVRUmh4SWdWRklBVkJHRVlnQTBFQlJuRnlEUUFnQVNnQ0xDSUZCRUFnQlNBQlFTQnFFQTFyckNFR0N3SkFBa0FDUUNBRERnTUNBQUVEQ3lBRVFRaHhCRUFnQVNnQ0RDQUJLQUlJYTZ3aEJ3d0NDeUFCS0FJWUlBRW9BaFJyckNFSERBRUxJQVloQndzZ0FpQUhmQ0lDUWdCVElBSWdCbFZ5RFFBZ0JFRUljU0VEQWtBZ0FsQU5BQ0FEQkVBZ0FTZ0NERVVOQWdzZ0JFRVFjVVVOQUNBQktBSVlSUTBCQ3lBREJFQWdBU0FCS0FJSUlBRW9BZ2dnQXFkcUlBRW9BaXdRbXdFTElBUkJFSEVFUUNBQklBRW9BaFFnQVNnQ0hCRDJBaUFCSUFLbkVQVUNDeUFDSVFnTElBQWdDQkM3QVF1REFnRUpmeU1BUVJCcklnTWtBQUovSUFGQmZ4QmVSUVJBSUFBb0Fnd2hCQ0FBS0FJSUlRVWdBQ2dDR0NBQUtBSWNSZ1JBUVg4Z0FDMEFNRUVRY1VVTkFob2dBQ2dDR0NFR0lBQW9BaFFoQnlBQUtBSXNJUWdnQUNnQ0ZDRUpJQUJCSUdvaUFrRUFFS0VCSUFJZ0FoQVRFQXdnQUNBQ0VBMGlDaUFDRUFrZ0Ntb1E5Z0lnQUNBR0lBZHJFUFVDSUFBZ0FDZ0NGQ0FJSUFscmFqWUNMQXNnQXlBQUtBSVlRUUZxTmdJTUlBQWdBMEVNYWlBQVFTeHFFSFlvQWdBMkFpd2dBQzBBTUVFSWNRUkFJQUFnQUVFZ2FoQU5JZ0lnQWlBRUlBVnJhaUFBS0FJc0VKc0JDeUFBSUFFUW5BRVEvZ0lNQVFzZ0FSRHlBZ3NoQUNBRFFSQnFKQUFnQUF1Z0FRRUJmeUFBS0FJWUlBQW9BaXhMQkVBZ0FDQUFLQUlZTmdJc0N3SkFJQUFvQWdnZ0FDZ0NERThOQUNBQlFYOFFYZ1JBSUFBZ0FDZ0NDQ0FBS0FJTVFRRnJJQUFvQWl3UW13RWdBUkR5QWc4TElBQXRBREJCRUhGRkJFQWdBUkNjQVNBQUtBSU1RUUZyTEFBQUVGNUZEUUVMSUFBZ0FDZ0NDQ0FBS0FJTVFRRnJJQUFvQWl3UW13RWdBUkNjQVNFQ0lBQW9BZ3dnQWpvQUFDQUJEd3RCZnd0a0FDQUFLQUlZSUFBb0FpeExCRUFnQUNBQUtBSVlOZ0lzQ3dKQUlBQXRBREJCQ0hGRkRRQWdBQ2dDRUNBQUtBSXNTUVJBSUFBZ0FDZ0NDQ0FBS0FJTUlBQW9BaXdRbXdFTElBQW9BZ3dnQUNnQ0VFOE5BQ0FBS0FJTUxBQUFFR1VQQzBGL0N3Y0FJQUFvQWdnTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEakFRc0tBQ0FBUVFockVPTUJDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1F1QUVMQ2dBZ0FFRUlheEM0QVFzVEFDQUFJQUFvQWdCQkRHc29BZ0JxRVBrQ0N4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUTVBRUxDUUJCeUlFQkVBb2FDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1Fod01MRXdBZ0FDQUFLQUlBUVF4cktBSUFhaERsQVF1dEFRRUVmeU1BUVJCcklnVWtBQU5BQWtBZ0FpQUVUQTBBSUFBb0FoZ2lBeUFBS0FJY0lnWlBCRUFnQUNBQkxBQUFFR1VnQUNnQ0FDZ0NOQkVDQUVGL1JnMEJJQVJCQVdvaEJDQUJRUUZxSVFFRklBVWdCaUFEYXpZQ0RDQUZJQUlnQkdzMkFnZ2dCVUVNYWlBRlFRaHFFTG9CSVFNZ0FDZ0NHQ0FCSUFNb0FnQWlBeEJWSUFBZ0F5QUFLQUlZYWpZQ0dDQURJQVJxSVFRZ0FTQURhaUVCQ3d3QkN3c2dCVUVRYWlRQUlBUUxDL0ppSWdCQmdBZ0xzeVdsWTJQR2hIeDgrSmwzZCs2TmUzdjJEZkx5LzcxcmE5YXhiMi9lVk1YRmtWQXdNR0FEQVFFQ3FXZG56bjBySzFZWi92N25ZdGZYdGVhcnEwMmFkbmJzUmNyS2o1MkNnaDlBeWNtSmgzMTkraFg2K3UvcldWbXl5VWRIamd2dzhQdnNyYTFCWjlUVXMvMmlvbC9xcjY5RnY1eWNJL2VrcEZPV2NuTGtXOERBbThLM3QzVWMvZjNocnBPVFBXb21Ka3hhTmpac1FUOC9mZ0wzOS9WUHpNeURYRFEwYVBTbHBWRTA1ZVhSQ1BIeCtaTnhjZUp6Mk5pclV6RXhZajhWRlNvTUJBUUlVc2ZIbFdVakkwWmV3OE9kS0JnWU1LR1dsamNQQlFVS3RacWFMd2tIQnc0MkVoSWttNENBR3ozaTR0OG02K3ZOYVNjblRzMnlzbitmZFhYcUd3a0pFcDZEZ3gxMExDeFlMaG9hTkMwYkd6YXlibTdjN2xwYXRQdWdvRnYyVWxLa1RUczdkbUhXMXJmT3M3TjlleWtwVWo3ajQ5MXhMeTllbDRTRUUvVlRVNlpvMGRHNUFBQUFBQ3p0N2NGZ0lDQkFIL3o4NDhpeHNYbnRXMXUydm1wcTFFYkx5NDNadnI1blN6azVjdDVLU3BUVVRFeVk2RmhZc0VyUHo0VnIwTkM3S3UvdnhlV3FxazhXKy92dHhVTkRodGROVFpwVk16Tm1sSVdGRWM5RlJZb1ErZm5wQmdJQ0JJRi9mLzd3VUZDZ1JEdzhlTHFmbnlYanFLaEw4MUZSb3Y2am8xM0FRRUNBaW8rUEJhMlNrais4blowaFNEZzRjQVQxOWZIZnZMeGp3YmEyZDNYYTJxOWpJU0ZDTUJBUUlCci8vK1VPOC9QOWJkTFN2MHpOellFVURBd1lOUk1USmkvczdNUGhYMSsrb3BlWE5jeEVSSWc1RnhjdVY4VEVrL0tucDFXQ2ZuNzhSejA5ZXF4a1pNam5YVjI2S3hrWk1wVnpjK2FnWUdEQW1JR0JHZEZQVDU1LzNOeWpaaUlpUkg0cUtsU3JrSkE3ZzRpSUM4cEdSb3dwN3U3SDA3aTRhendVRkNoNTN0Nm40bDVldkIwTEN4WjIyOXV0TytEZzIxWXlNbVJPT2pwMEhnb0tGTnRKU1pJS0JnWU1iQ1FrU09SY1hMaGR3c0tmYnRQVHZlK3NyRU9tWW1MRXFKR1JPYVNWbFRFMzVPVFRpM2w1OGpMbjU5VkR5TWlMV1RjM2JyZHRiZHFNalkwQlpOWFZzZEpPVHB6Z3FhbEp0R3hzMlBwV1Zxd0g5UFR6SmVycXo2OWxaY3FPZW5yMDZhNnVSeGdJQ0JEVnVycHZpSGg0OEc4bEpVcHlMaTVjSkJ3Y09QR21wbGZIdExSelVjYkdseVBvNk10ODNkMmhuSFIwNkNFZkh6N2RTMHVXM0wyOVlZYUxpdzJGaW9vUGtIQnc0RUkrUG56RXRiVnhxbVptek5oSVNKQUZBd01HQWZiMjl4SU9EaHlqWVdIQ1h6VTFhdmxYVjY3UXVibHBrWWFHRjFqQndaa25IUjA2dVo2ZUp6amg0ZGtUK1BqcnM1aVlLek1SRVNLN2FXblNjTm5acVltT2pnZW5sSlF6dHB1YkxTSWVIanlTaDRjVklPbnB5VW5Pem9mL1ZWV3FlQ2dvVUhyZjM2V1BqSXdEK0tHaFdZQ0ppUWtYRFEwYTJyKy9aVEhtNXRmR1FrS0V1R2hvME1OQlFZS3dtWmtwZHkwdFdoRVBEeDdMc0xCNy9GUlVxTmE3dTIwNkZoWXNVS2YwVVZObFFYN0RwQmNhbGw0bk9zdHJxenZ4UlowZnExajZySk1ENDB0VitqQWc5bTEyclpGMnpJZ2xUQUwxL05mbFQ5ZkxLc1dBUkRVbWo2Tml0VWxhc2Q1bkc3b2xtQTdxUmVIQS9sMENkUy9ERXZCTWdhT1hSbzNHK2ROcjUxK1BBNVdja2hYcmVtMi8ybGxTbFMyRHZ0VFRJWFJZS1duZ1NVVEl5WTVxaWNKMWVIbU85R3MrV0puZGNia250ay9odmhldGlQQm1yQ0RKdERyT2ZSaEszMk9DTVJybFlETlJsMFYvVTJMZ2QyU3hoSzVydXh5Z2dmNlVLd2o1V0doSWNCbjlSWStIYk42VXQvaDdVaVBUYzZ2aUFrdHlWNDhmNHlxclZXWUhLT3V5QThLMUw1cDd4WWFsQ0RmVDhvY29NTEtsdnlPNmFnTUNYSUlXN1NzY3o0cVN0SG1uOFBJSDg2SGlhVTdOOU5wbDFiNEZCaDlpTk5HSy9xYkVuVk11TktCVjg2SXk0WW9GZGV2MnBEbnNnd3VxNzJCQUJwOXhYbEVRYnIzNWlpRStQUWJkbHE0RlB0MUd2ZVpOdFkxVWtRVmR4SEZ2MUFZRS94VlFZQ1Q3bUJtWDZiM1d6RU5BaVhlZTJXZTlRdWl3aUl1SkJ6aGJHZWZiN3NoNVJ3cDhvZWtQUW56SkhvVDRBQUFBQUlPR2dBbEk3U3N5ckhBUkhrNXlXbXo3L3c3OVZqaUZEeDdWcmowbk9TMDJaTmtQQ2lHbVhHalJWRnViT2k0MkpMRm5DZ3dQNTFlVDBwYnV0SjZSbXh0UHhjQ0FvaURjWVdsTGQxb1dHaEljQ3JxVDR1VXFvTUJENENJOEhSY2JFZ3NOQ1E2dHg0dnl1YWkyTGNpcEhoU0ZHZkZYVEFkMXI3dmRtZTc5WUgram55WUI5N3oxY2x6Rk8yWkVOSDc3VzNZcFE0dmN4aVBMYVB6dHRtUHg1TGpLM0RIWEVJVmpRa0FpbHhNZ0VjYUVmU1JLaGZnOXU5SVJNdm11YmFFcHgwc3ZuaDN6TUxMYzdGS0dEZERqd1hkc0ZyTXJtYmx3cWZwSWxCRWlaT2xIeEl6OHFCby84S0RZTEgxVzc1QXpJc2RPU1lmQjBUalovcUxLakRZTDFKalBnZldtS041NnBTYU90OXFrdjYwLzVKMDZMQTJTZUZDYnpGOXFZa1orVk1JVGpmYm91TmlRWHZjNUx2V3Z3NEsrZ0YyZmZKUFFhYWt0MVcrekVpWFBPNW1zeUtkOUdCQnVZNXpvZTdzNzJ3bDRKczMwR0ZsdUFiZWE3S2lhVDRObGJwWG1mdWIvcWdqUHZDSG02Qlh2Mlp2bnVzNDJiMHJVQ1ovcTFueXdLYSt5cERFeEl6OHFNSlNseHNCbW9qVTN2RTUwcHNxQy9MRFFrT0FWMktjelNwZ0U4ZmZhN0VFT1VNMS9ML2FSRjQzV1RYWk5zTzlEVkUycXpOOEVsdVRqdGRHZUc0aHFUTGdmTE1GL1VXVkdCT3BlblYwMWpBRnpkSWY2TGtFTCsxb2RaN05TMHR1U00xWVE2Uk5IMW0yTVlkZWFlZ3loTjQ0VStGbUpQQlByN2llcHpqWEpZYmZ0NVJ6aFBMRkhlbG5mMHB3L2MvSlZlYzRVR0w4M3gzUHF6ZmRUVzZyOVh4UnZQZCtHMjBSNGdmT3Z5ajdFYUxrc05DUTRYMENqd25MREhSWU1KZUs4aTBrOEtFR1ZEZjl4QWFnNTNyTU1DSnprdE5pUXdWWmtZWVRMZTNDMk10VjBYR3hJUWxlNDBGSUphdFV3TnFVNHYwQ2pub0h6MS90ODR6bUNteS8vaHpTT1EwVEUzdW5MVkh1VU1xYkNJejN1VEpVTFF2ckRUZ2d1b1dZbzJTU3lkbHVpU1cyTDBTVnkrUFpraG1pWUZ0U2tYTXhkWmJhU2JIQklVUDN0dWRwZUZVWlhwNDJkaEpEWXF3Q012Tk1LOStSWUJiaXpSUWJRTEI2UHlqOFBBc0d2dlFNQkU0cHJPcEVSUVU5bjNPcVg4cy9POExUbWM1YXNkQ0xuclRXRjR2azM2QngxMzI1SDhScHhIU25GaVcrM1lnNnFHTDRiL0ZZK1M4YlNlU0NhMjhEK2VNMWE5Qi9kcURPSUI4Y3hzUklRV1NlQTdGOWdVWCtwR2JWS0RTM2xlcCtUeVp6dm9PQTdUYTRxOWJESTY3czhnMU9aWVJjckJINjZkOVltNFdrVVkxVWhESDBCQWdRSUVDQkFnQnMyYVc1bWFXNXBkSGtBUm1WaWNuVmhjbmtBU21GdWRXRnllUUJLZFd4NUFGUm9kWEp6WkdGNUFGUjFaWE5rWVhrQVYyVmtibVZ6WkdGNUFGTmhkSFZ5WkdGNUFGTjFibVJoZVFCTmIyNWtZWGtBUm5KcFpHRjVBRTFoZVFBbGJTOGxaQzhsZVFBdEt5QWdJREJZTUhnQUxUQllLekJZSURCWUxUQjRLekI0SURCNEFFNXZkZ0JVYUhVQVFYVm5kWE4wQUU5amRBQlRZWFFBUVhCeUFIWmxZM1J2Y2dCUFkzUnZZbVZ5QUU1dmRtVnRZbVZ5QUZObGNIUmxiV0psY2dCRVpXTmxiV0psY2dCcGIzTmZZbUZ6WlRvNlkyeGxZWElBVFdGeUFGTmxjQUFsU1RvbFRUb2xVeUFsY0FCVGRXNEFTblZ1QUhOMFpEbzZaWGhqWlhCMGFXOXVBRjlmWTNoaFgyZDFZWEprWDJGamNYVnBjbVVnWkdWMFpXTjBaV1FnY21WamRYSnphWFpsSUdsdWFYUnBZV3hwZW1GMGFXOXVBRTF2YmdCdVlXNEFTbUZ1QUVwMWJBQnNiQUJCY0hKcGJBQkdjbWtBVFdGeVkyZ0FRWFZuQUdsdVpnQWxMakJNWmdBbFRHWUFZV3hzYjJOaGRHOXlQRlErT2pwaGJHeHZZMkYwWlNoemFYcGxYM1FnYmlrZ0oyNG5JR1Y0WTJWbFpITWdiV0Y0YVcxMWJTQnpkWEJ3YjNKMFpXUWdjMmw2WlFCMGNuVmxBRlIxWlFCbVlXeHpaUUJLZFc1bEFGZGxaQUJFWldNQVJtVmlBQ1ZoSUNWaUlDVmtJQ1ZJT2lWTk9pVlRJQ1ZaQUZCUFUwbFlBQ1ZJT2lWTk9pVlRBRTVCVGdCUVRRQkJUUUJNUTE5QlRFd0FURUZPUndCSlRrWUFRd0F3TVRJek5EVTJOemc1QUVNdVZWUkdMVGdBWVhCd1gzWXlBSGRsWWw5Mk1nQkJRa05FUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldtRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNk1ERXlNelExTmpjNE9Tc3ZBQzRBS0c1MWJHd3BBRkIxY21VZ2RtbHlkSFZoYkNCbWRXNWpkR2x2YmlCallXeHNaV1FoQUZ0b1JVdWNxKzVIeWdUMEJRQUFBQUFBQUFCb0VRQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFJQUFBQUFBQUFBS0FSQUFBU0FBQUFFd0FBQVBqLy8vLzQvLy8vb0JFQUFCUUFBQUFWQUFBQUFCQUFBQlFRQUFBRUFBQUFBQUFBQU9nUkFBQVdBQUFBRndBQUFQei8vLy84Ly8vLzZCRUFBQmdBQUFBWkFBQUFNQkFBQUVRUUFBQU1BQUFBQUFBQUFJQVNBQUFhQUFBQUd3QUFBQVFBQUFENC8vLy9nQklBQUJ3QUFBQWRBQUFBOVAvLy8vVC8vLytBRWdBQUhnQUFBQjhBQUFCZ0VBQUFEQklBQUNBU0FBQTBFZ0FBU0JJQUFJZ1FBQUIwRUFBQUFBQUFBT1FTQUFBZ0FBQUFJUUFBQUFZQUFBQUhBQUFBSWdBQUFDTUFBQUFLQUFBQUN3QUFBQXdBQUFBa0FBQUFEZ0FBQUNVQUFBQVFBQUFBSmdBQUFBQUFBQUFvRVFBQUp3QUFBQ2dBQUFCT1UzUXpYMTh5T1dKaGMybGpYMmx2YzBsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSUUFBQUJnL0FBRDhFQUFBV0JRQUFFNVRkRE5mWHpJeE5XSmhjMmxqWDNOMGNtVmhiV0oxWmtsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSUUFBQUFEd1BnQUFOQkVBQUU1VGRETmZYekl4TTJKaGMybGpYMmx6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQUFIUS9BQUJ3RVFBQUFBQUFBQUVBQUFBb0VRQUFBL1QvLzA1VGRETmZYekl4TTJKaGMybGpYMjl6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQUFIUS9BQUM0RVFBQUFBQUFBQUVBQUFBb0VRQUFBL1QvL3d3QUFBQUFBQUFBb0JFQUFCSUFBQUFUQUFBQTlQLy8vL1QvLy8rZ0VRQUFGQUFBQUJVQUFBQUVBQUFBQUFBQUFPZ1JBQUFXQUFBQUZ3QUFBUHovLy8vOC8vLy82QkVBQUJnQUFBQVpBQUFBVGxOME0xOWZNakUwWW1GemFXTmZhVzl6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQWREOEFBRkFTQUFBREFBQUFBZ0FBQUtBUkFBQUNBQUFBNkJFQUFBSUlBQUJPVTNRelgxOHlNVFZpWVhOcFkxOXpkSEpwYm1kaWRXWkpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGVGxOZk9XRnNiRzlqWVhSdmNrbGpSVVZGUlFBQUFCZy9BQUNnRWdBQWFCRUFBRUFBQUFBQUFBQUFLQlFBQUNrQUFBQXFBQUFBT0FBQUFQai8vLzhvRkFBQUt3QUFBQ3dBQUFEQS8vLy93UC8vL3lnVUFBQXRBQUFBTGdBQUFQd1NBQUJnRXdBQW5CTUFBTEFUQUFERUV3QUEyQk1BQUlnVEFBQjBFd0FBSkJNQUFCQVRBQUJBQUFBQUFBQUFBSUFTQUFBYUFBQUFHd0FBQURnQUFBRDQvLy8vZ0JJQUFCd0FBQUFkQUFBQXdQLy8vOEQvLy8rQUVnQUFIZ0FBQUI4QUFBQkFBQUFBQUFBQUFLQVJBQUFTQUFBQUV3QUFBTUQvLy8vQS8vLy9vQkVBQUJRQUFBQVZBQUFBT0FBQUFBQUFBQURvRVFBQUZnQUFBQmNBQUFESS8vLy95UC8vLytnUkFBQVlBQUFBR1FBQUFFNVRkRE5mWHpJeE9HSmhjMmxqWDNOMGNtbHVaM04wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZPVTE4NVlXeHNiMk5oZEc5eVNXTkZSVVZGQUFBQUFCZy9BQURnRXdBQWdCSUFBQUFBQUFCWUZBQUFMd0FBQURBQUFBQk9VM1F6WDE4eU9HbHZjMTlpWVhObFJRQUFBUEErQUFCRUZBQUEwWFNlQUZlZHZTcUFjRklQLy84K0p3b0FBQUJrQUFBQTZBTUFBQkFuQUFDZ2hnRUFRRUlQQUlDV21BQUE0ZlVGR0FBQUFEVUFBQUJ4QUFBQWEvLy8vODc3Ly8rU3YvLy9BQUFBQUFBQUFBRC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFFQ0F3UUZCZ2NJQ2YvLy8vLy8vLzhLQ3d3TkRnOFFFUklURkJVV0Z4Z1pHaHNjSFI0ZklDRWlJLy8vLy8vLy93b0xEQTBPRHhBUkVoTVVGUllYR0JrYUd4d2RIaDhnSVNJai8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3dBQkFnUUhBd1lGQUFBQUFBQUFBQUlBQU1BREFBREFCQUFBd0FVQUFNQUdBQURBQndBQXdBZ0FBTUFKQUFEQUNnQUF3QXNBQU1BTUFBREFEUUFBd0E0QUFNQVBBQURBRUFBQXdCRUFBTUFTQUFEQUV3QUF3QlFBQU1BVkFBREFGZ0FBd0JjQUFNQVlBQURBR1FBQXdCb0FBTUFiQUFEQUhBQUF3QjBBQU1BZUFBREFId0FBd0FBQUFMTUJBQUREQWdBQXd3TUFBTU1FQUFEREJRQUF3d1lBQU1NSEFBRERDQUFBd3drQUFNTUtBQUREQ3dBQXd3d0FBTU1OQUFEVERnQUF3dzhBQU1NQUFBeTdBUUFNd3dJQURNTURBQXpEQkFBTTJ3QUFBQURlRWdTVkFBQUFBUC8vLy8vLy8vLy8vLy8vLzVBV0FBQVVBQUFBUXk1VlZFWXRPQUJCNEMwTEFxUVdBRUdBTGd0SFRFTmZRMVJaVUVVQUFBQUFURU5mVGxWTlJWSkpRd0FBVEVOZlZFbE5SUUFBQUFBQVRFTmZRMDlNVEVGVVJRQUFURU5mVFU5T1JWUkJVbGtBVEVOZlRVVlRVMEZIUlZNQVFkQXVDMEVaQUFvQUdSa1pBQUFBQUFVQUFBQUFBQUFKQUFBQUFBc0FBQUFBQUFBQUFCa0FFUW9aR1JrRENnY0FBUUFKQ3hnQUFBa0dDd0FBQ3dBR0dRQUFBQmtaR1FCQm9TOExJUTRBQUFBQUFBQUFBQmtBQ2cwWkdSa0FEUUFBQWdBSkRnQUFBQWtBRGdBQURnQkIyeThMQVF3QVFlY3ZDeFVUQUFBQUFCTUFBQUFBQ1F3QUFBQUFBQXdBQUF3QVFaVXdDd0VRQUVHaE1Bc1ZEd0FBQUFRUEFBQUFBQWtRQUFBQUFBQVFBQUFRQUVIUE1Bc0JFZ0JCMnpBTEhoRUFBQUFBRVFBQUFBQUpFZ0FBQUFBQUVnQUFFZ0FBR2dBQUFCb2FHZ0JCa2pFTERob0FBQUFhR2hvQUFBQUFBQUFKQUVIRE1Rc0JGQUJCenpFTEZSY0FBQUFBRndBQUFBQUpGQUFBQUFBQUZBQUFGQUJCL1RFTEFSWUFRWWt5Q3lrVkFBQUFBQlVBQUFBQUNSWUFBQUFBQUJZQUFCWUFBREF4TWpNME5UWTNPRGxCUWtORVJVWkFHZ0JCd0RRTC93RUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQURJQUlnQWlBQ0lBSWdBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBV0FFd0FUQUJNQUV3QVRBQk1BRXdBVEFCTUFFd0FUQUJNQUV3QVRBQk1BSTJBallDTmdJMkFqWUNOZ0kyQWpZQ05nSTJBVEFCTUFFd0FUQUJNQUV3QVRBQ05VSTFRalZDTlVJMVFqVkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UVRBQk1BRXdBVEFCTUFFd0FqV0NOWUkxZ2pXQ05ZSTFnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlFd0FUQUJNQUV3QUlBUWNBNEN3SlFIZ0JCMUR3TCtRTUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQVlBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBRkFBQUFCVUFBQUFXQUFBQUZ3QUFBQmdBQUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUlBQUFBQ0VBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFBMEFBQUFOUUFBQURZQUFBQTNBQUFBT0FBQUFEa0FBQUE2QUFBQU93QUFBRHdBQUFBOUFBQUFQZ0FBQUQ4QUFBQkFBQUFBUVFBQUFFSUFBQUJEQUFBQVJBQUFBRVVBQUFCR0FBQUFSd0FBQUVnQUFBQkpBQUFBU2dBQUFFc0FBQUJNQUFBQVRRQUFBRTRBQUFCUEFBQUFVQUFBQUZFQUFBQlNBQUFBVXdBQUFGUUFBQUJWQUFBQVZnQUFBRmNBQUFCWUFBQUFXUUFBQUZvQUFBQmJBQUFBWEFBQUFGMEFBQUJlQUFBQVh3QUFBR0FBQUFCQkFBQUFRZ0FBQUVNQUFBQkVBQUFBUlFBQUFFWUFBQUJIQUFBQVNBQUFBRWtBQUFCS0FBQUFTd0FBQUV3QUFBQk5BQUFBVGdBQUFFOEFBQUJRQUFBQVVRQUFBRklBQUFCVEFBQUFWQUFBQUZVQUFBQldBQUFBVndBQUFGZ0FBQUJaQUFBQVdnQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BRUhReEFBTEFtQWtBRUhreUFBTCtRTUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQVlBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBRkFBQUFCVUFBQUFXQUFBQUZ3QUFBQmdBQUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUlBQUFBQ0VBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFBMEFBQUFOUUFBQURZQUFBQTNBQUFBT0FBQUFEa0FBQUE2QUFBQU93QUFBRHdBQUFBOUFBQUFQZ0FBQUQ4QUFBQkFBQUFBWVFBQUFHSUFBQUJqQUFBQVpBQUFBR1VBQUFCbUFBQUFad0FBQUdnQUFBQnBBQUFBYWdBQUFHc0FBQUJzQUFBQWJRQUFBRzRBQUFCdkFBQUFjQUFBQUhFQUFBQnlBQUFBY3dBQUFIUUFBQUIxQUFBQWRnQUFBSGNBQUFCNEFBQUFlUUFBQUhvQUFBQmJBQUFBWEFBQUFGMEFBQUJlQUFBQVh3QUFBR0FBQUFCaEFBQUFZZ0FBQUdNQUFBQmtBQUFBWlFBQUFHWUFBQUJuQUFBQWFBQUFBR2tBQUFCcUFBQUFhd0FBQUd3QUFBQnRBQUFBYmdBQUFHOEFBQUJ3QUFBQWNRQUFBSElBQUFCekFBQUFkQUFBQUhVQUFBQjJBQUFBZHdBQUFIZ0FBQUI1QUFBQWVnQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BRUhnMEFBTHdRRXdNVEl6TkRVMk56ZzVZV0pqWkdWbVFVSkRSRVZHZUZnckxYQlFhVWx1VGdBbEFBQUFBQUFsY0FBQUFBQWxTVG9sVFRvbFV5QWxjQ1ZJT2lWTkFBQUFKUUFBQUcwQUFBQXZBQUFBSlFBQUFHUUFBQUF2QUFBQUpRQUFBSGtBQUFBbEFBQUFXUUFBQUMwQUFBQWxBQUFBYlFBQUFDMEFBQUFsQUFBQVpBQUFBQ1VBQUFCSkFBQUFPZ0FBQUNVQUFBQk5BQUFBT2dBQUFDVUFBQUJUQUFBQUlBQUFBQ1VBQUFCd0FBQUFBQUFBQUNVQUFBQklBQUFBT2dBQUFDVUFBQUJOQUVHdzBnQUwyUU1sQUFBQVNBQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFBQUFBQUMwTFFBQVJ3QUFBRWdBQUFCSkFBQUFBQUFBQUJRdUFBQktBQUFBU3dBQUFFa0FBQUJNQUFBQVRRQUFBRTRBQUFCUEFBQUFVQUFBQUZFQUFBQlNBQUFBVXdBQUFBQUFBQUI4TFFBQVZBQUFBRlVBQUFCSkFBQUFWZ0FBQUZjQUFBQllBQUFBV1FBQUFGb0FBQUJiQUFBQVhBQUFBQUFBQUFCTUxnQUFYUUFBQUY0QUFBQkpBQUFBWHdBQUFHQUFBQUJoQUFBQVlnQUFBR01BQUFBQUFBQUFjQzRBQUdRQUFBQmxBQUFBU1FBQUFHWUFBQUJuQUFBQWFBQUFBR2tBQUFCcUFBQUFkQUFBQUhJQUFBQjFBQUFBWlFBQUFBQUFBQUJtQUFBQVlRQUFBR3dBQUFCekFBQUFaUUFBQUFBQUFBQWxBQUFBYlFBQUFDOEFBQUFsQUFBQVpBQUFBQzhBQUFBbEFBQUFlUUFBQUFBQUFBQWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUFBQUFBQWxBQUFBWVFBQUFDQUFBQUFsQUFBQVlnQUFBQ0FBQUFBbEFBQUFaQUFBQUNBQUFBQWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUNBQUFBQWxBQUFBV1FBQUFBQUFBQUFsQUFBQVNRQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFDQUFBQUFsQUFBQWNBQkJsTllBQzVZSlBDc0FBR3NBQUFCc0FBQUFTUUFBQUU1VGRETmZYekkyYkc5allXeGxOV1poWTJWMFJRQUFBQmcvQUFBa0t3QUFnRDRBQUFBQUFBQzhLd0FBYXdBQUFHMEFBQUJKQUFBQWJnQUFBRzhBQUFCd0FBQUFjUUFBQUhJQUFBQnpBQUFBZEFBQUFIVUFBQUIyQUFBQWR3QUFBSGdBQUFCNUFBQUFUbE4wTTE5Zk1qVmpkSGx3WlVsM1JVVUFUbE4wTTE5Zk1qRXdZM1I1Y0dWZlltRnpaVVVBQVBBK0FBQ2VLd0FBZEQ4QUFJd3JBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUF0Q3NBQUFJQUFBQUFBQUFBVUN3QUFHc0FBQUI2QUFBQVNRQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BQUFBZ0FBQUFJRUFBQUJPVTNRelgxOHlOMk52WkdWamRuUkpZMk14TVY5ZmJXSnpkR0YwWlY5MFJVVUFUbE4wTTE5Zk1qRXlZMjlrWldOMmRGOWlZWE5sUlFBQUFBRHdQZ0FBTGl3QUFIUS9BQUFNTEFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUVnc0FBQUNBQUFBQUFBQUFNUXNBQUJyQUFBQWdnQUFBRWtBQUFDREFBQUFoQUFBQUlVQUFBQ0dBQUFBaHdBQUFJZ0FBQUNKQUFBQVRsTjBNMTlmTWpkamIyUmxZM1owU1VSell6RXhYMTl0WW5OMFlYUmxYM1JGUlFBQWREOEFBS0FzQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBU0N3QUFBSUFBQUFBQUFBQU9DMEFBR3NBQUFDS0FBQUFTUUFBQUlzQUFBQ01BQUFBalFBQUFJNEFBQUNQQUFBQWtBQUFBSkVBQUFCT1UzUXpYMTh5TjJOdlpHVmpkblJKUkdsak1URmZYMjFpYzNSaGRHVmZkRVZGQUFCMFB3QUFGQzBBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUJJTEFBQUFnQUFBRTVUZEROZlh6STNZMjlrWldOMmRFbDNZekV4WDE5dFluTjBZWFJsWDNSRlJRQUFBSFEvQUFCWUxRQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFFZ3NBQUFDQUFBQVRsTjBNMTlmTWpac2IyTmhiR1UxWDE5cGJYQkZBQUFBR0Q4QUFKd3RBQUE4S3dBQVRsTjBNMTlmTWpkamIyeHNZWFJsU1dORlJRQVlQd0FBd0MwQUFEd3JBQUJPVTNRelgxOHlOMk52Ykd4aGRHVkpkMFZGQUJnL0FBRGdMUUFBUENzQUFFNVRkRE5mWHpJMVkzUjVjR1ZKWTBWRkFBQUFkRDhBQUFBdUFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQXRDc0FBQUlBQUFCT1UzUXpYMTh5T0c1MWJYQjFibU4wU1dORlJRQUFBQUFZUHdBQU5DNEFBRHdyQUFCT1UzUXpYMTh5T0c1MWJYQjFibU4wU1hkRlJRQUFBQUFZUHdBQVdDNEFBRHdyQUFBQUFBQUExQzBBQUpJQUFBQ1RBQUFBU1FBQUFKUUFBQUNWQUFBQWxnQUFBQUFBQUFEMExRQUFsd0FBQUpnQUFBQkpBQUFBbVFBQUFKb0FBQUNiQUFBQUFBQUFBSkF2QUFCckFBQUFuQUFBQUVrQUFBQ2RBQUFBbmdBQUFKOEFBQUNnQUFBQW9RQUFBS0lBQUFDakFBQUFwQUFBQUtVQUFBQ21BQUFBcHdBQUFFNVRkRE5mWHpJM2JuVnRYMmRsZEVsalRsTmZNVGxwYzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNamxmWDI1MWJWOW5aWFJKWTBWRkFFNVRkRE5mWHpJeE5GOWZiblZ0WDJkbGRGOWlZWE5sUlFBQThENEFBRll2QUFCMFB3QUFRQzhBQUFBQUFBQUJBQUFBY0M4QUFBQUFBQUIwUHdBQS9DNEFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQjRMd0JCdE44QUM4b0JaREFBQUdzQUFBQ29BQUFBU1FBQUFLa0FBQUNxQUFBQXF3QUFBS3dBQUFDdEFBQUFyZ0FBQUs4QUFBQ3dBQUFBc1FBQUFMSUFBQUN6QUFBQVRsTjBNMTlmTWpkdWRXMWZaMlYwU1hkT1UxOHhPV2x6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKZDA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KZDBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgyZGxkRWwzUlVVQUFBQjBQd0FBTkRBQUFBQUFBQUFCQUFBQWNDOEFBQUFBQUFCMFB3QUE4QzhBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUJNTUFCQmlPRUFDOTRCVERFQUFHc0FBQUMwQUFBQVNRQUFBTFVBQUFDMkFBQUF0d0FBQUxnQUFBQzVBQUFBdWdBQUFMc0FBQUM4QUFBQVRsTjBNMTlmTWpkdWRXMWZjSFYwU1dOT1UxOHhPVzl6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgzQjFkRWxqUlVVQVRsTjBNMTlmTWpFMFgxOXVkVzFmY0hWMFgySmhjMlZGQUFEd1BnQUFFakVBQUhRL0FBRDhNQUFBQUFBQUFBRUFBQUFzTVFBQUFBQUFBSFEvQUFDNE1BQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFEUXhBRUh3NGdBTHZnRVVNZ0FBYXdBQUFMMEFBQUJKQUFBQXZnQUFBTDhBQUFEQUFBQUF3UUFBQU1JQUFBRERBQUFBeEFBQUFNVUFBQUJPVTNRelgxOHlOMjUxYlY5d2RYUkpkMDVUWHpFNWIzTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJNVgxOXVkVzFmY0hWMFNYZEZSUUFBQUhRL0FBRGtNUUFBQUFBQUFBRUFBQUFzTVFBQUFBQUFBSFEvQUFDZ01RQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFQd3hBRUc0NUFBTG1nc1VNd0FBeGdBQUFNY0FBQUJKQUFBQXlBQUFBTWtBQUFES0FBQUF5d0FBQU13QUFBRE5BQUFBemdBQUFQai8vLzhVTXdBQXp3QUFBTkFBQUFEUkFBQUEwZ0FBQU5NQUFBRFVBQUFBMVFBQUFFNVRkRE5mWHpJNGRHbHRaVjluWlhSSlkwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekk1ZEdsdFpWOWlZWE5sUlFEd1BnQUF6VElBQUU1VGRETmZYekl5TUY5ZmRHbHRaVjluWlhSZlkxOXpkRzl5WVdkbFNXTkZSUUFBQVBBK0FBRG9NZ0FBZEQ4QUFJZ3lBQUFBQUFBQUF3QUFBRHdyQUFBQ0FBQUE0RElBQUFJQUFBQU1Nd0FBQUFnQUFBQUFBQUFBTkFBQTFnQUFBTmNBQUFCSkFBQUEyQUFBQU5rQUFBRGFBQUFBMndBQUFOd0FBQURkQUFBQTNnQUFBUGovLy84QU5BQUEzd0FBQU9BQUFBRGhBQUFBNGdBQUFPTUFBQURrQUFBQTVRQUFBRTVUZEROZlh6STRkR2x0WlY5blpYUkpkMDVUWHpFNWFYTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJeU1GOWZkR2x0WlY5blpYUmZZMTl6ZEc5eVlXZGxTWGRGUlFBQThENEFBTlV6QUFCMFB3QUFrRE1BQUFBQUFBQURBQUFBUENzQUFBSUFBQURnTWdBQUFnQUFBUGd6QUFBQUNBQUFBQUFBQUtRMEFBRG1BQUFBNXdBQUFFa0FBQURvQUFBQVRsTjBNMTlmTWpoMGFXMWxYM0IxZEVsalRsTmZNVGx2YzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNakV3WDE5MGFXMWxYM0IxZEVVQUFBRHdQZ0FBaFRRQUFIUS9BQUJBTkFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUp3MEFBQUFDQUFBQUFBQUFDUTFBQURwQUFBQTZnQUFBRWtBQUFEckFBQUFUbE4wTTE5Zk1qaDBhVzFsWDNCMWRFbDNUbE5mTVRsdmMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVVZGUlVVQUFBQUFkRDhBQU53MEFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQW5EUUFBQUFJQUFBQUFBQUF1RFVBQUdzQUFBRHNBQUFBU1FBQUFPMEFBQUR1QUFBQTd3QUFBUEFBQUFEeEFBQUE4Z0FBQVBNQUFBRDBBQUFBOVFBQUFFNVRkRE5mWHpJeE1HMXZibVY1Y0hWdVkzUkpZMHhpTUVWRlJRQk9VM1F6WDE4eU1UQnRiMjVsZVY5aVlYTmxSUUFBQUFEd1BnQUFtRFVBQUhRL0FBQjhOUUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBTEExQUFBQ0FBQUFBQUFBQUN3MkFBQnJBQUFBOWdBQUFFa0FBQUQzQUFBQStBQUFBUGtBQUFENkFBQUErd0FBQVB3QUFBRDlBQUFBL2dBQUFQOEFBQUJPVTNRelgxOHlNVEJ0YjI1bGVYQjFibU4wU1dOTVlqRkZSVVVBZEQ4QUFCQTJBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFzRFVBQUFJQUFBQUFBQUFBb0RZQUFHc0FBQUFBQVFBQVNRQUFBQUVCQUFBQ0FRQUFBd0VBQUFRQkFBQUZBUUFBQmdFQUFBY0JBQUFJQVFBQUNRRUFBRTVUZEROZlh6SXhNRzF2Ym1WNWNIVnVZM1JKZDB4aU1FVkZSUUIwUHdBQWhEWUFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQ3dOUUFBQWdBQUFBQUFBQUFVTndBQWF3QUFBQW9CQUFCSkFBQUFDd0VBQUF3QkFBQU5BUUFBRGdFQUFBOEJBQUFRQVFBQUVRRUFBQklCQUFBVEFRQUFUbE4wTTE5Zk1qRXdiVzl1Wlhsd2RXNWpkRWwzVEdJeFJVVkZBSFEvQUFENE5nQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFMQTFBQUFDQUFBQUFBQUFBTGczQUFCckFBQUFGQUVBQUVrQUFBQVZBUUFBRmdFQUFFNVRkRE5mWHpJNWJXOXVaWGxmWjJWMFNXTk9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZSVVZGUlFCT1UzUXpYMTh5TVRGZlgyMXZibVY1WDJkbGRFbGpSVVVBQVBBK0FBQ1dOd0FBZEQ4QUFGQTNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFzRGNBUWR6dkFBdWFBVnc0QUFCckFBQUFGd0VBQUVrQUFBQVlBUUFBR1FFQUFFNVRkRE5mWHpJNWJXOXVaWGxmWjJWMFNYZE9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSmQwNVRYekV4WTJoaGNsOTBjbUZwZEhOSmQwVkZSVVZGUlFCT1UzUXpYMTh5TVRGZlgyMXZibVY1WDJkbGRFbDNSVVVBQVBBK0FBQTZPQUFBZEQ4QUFQUTNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFWRGdBUVlIeEFBdVpBVGtBQUdzQUFBQWFBUUFBU1FBQUFCc0JBQUFjQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSlkwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNXTkZSUUFBOEQ0QUFONDRBQUIwUHdBQW1EZ0FBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBRDRPQUJCcFBJQUM1b0JwRGtBQUdzQUFBQWRBUUFBU1FBQUFCNEJBQUFmQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSmQwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNYZEZSUUFBOEQ0QUFJSTVBQUIwUHdBQVBEa0FBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQ2NPUUJCeVBNQUM3a0lIRG9BQUdzQUFBQWdBUUFBU1FBQUFDRUJBQUFpQVFBQUl3RUFBRTVUZEROZlh6STRiV1Z6YzJGblpYTkpZMFZGQUU1VGRETmZYekl4TTIxbGMzTmhaMlZ6WDJKaGMyVkZBQUFBQVBBK0FBRDVPUUFBZEQ4QUFPUTVBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFGRG9BQUFJQUFBQUFBQUFBZERvQUFHc0FBQUFrQVFBQVNRQUFBQ1VCQUFBbUFRQUFKd0VBQUU1VGRETmZYekk0YldWemMyRm5aWE5KZDBWRkFBQUFBSFEvQUFCY09nQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFCUTZBQUFDQUFBQVV3QUFBSFVBQUFCdUFBQUFaQUFBQUdFQUFBQjVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBZFFBQUFHVUFBQUJ6QUFBQVpBQUFBR0VBQUFCNUFBQUFBQUFBQUZjQUFBQmxBQUFBWkFBQUFHNEFBQUJsQUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBYUFBQUFIVUFBQUJ5QUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUdFQUFBQjBBQUFBZFFBQUFISUFBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUhVQUFBQnVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBQUFBQUFCVUFBQUFkUUFBQUdVQUFBQUFBQUFBVndBQUFHVUFBQUJrQUFBQUFBQUFBRlFBQUFCb0FBQUFkUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUFBQUFBQVV3QUFBR0VBQUFCMEFBQUFBQUFBQUVvQUFBQmhBQUFBYmdBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFSZ0FBQUdVQUFBQmlBQUFBY2dBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFUUUFBQUdFQUFBQnlBQUFBWXdBQUFHZ0FBQUFBQUFBQVFRQUFBSEFBQUFCeUFBQUFhUUFBQUd3QUFBQUFBQUFBVFFBQUFHRUFBQUI1QUFBQUFBQUFBRW9BQUFCMUFBQUFiZ0FBQUdVQUFBQUFBQUFBU2dBQUFIVUFBQUJzQUFBQWVRQUFBQUFBQUFCQkFBQUFkUUFBQUdjQUFBQjFBQUFBY3dBQUFIUUFBQUFBQUFBQVV3QUFBR1VBQUFCd0FBQUFkQUFBQUdVQUFBQnRBQUFBWWdBQUFHVUFBQUJ5QUFBQUFBQUFBRThBQUFCakFBQUFkQUFBQUc4QUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVJBQUFBR1VBQUFCakFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVNnQUFBR0VBQUFCdUFBQUFBQUFBQUVZQUFBQmxBQUFBWWdBQUFBQUFBQUJOQUFBQVlRQUFBSElBQUFBQUFBQUFRUUFBQUhBQUFBQnlBQUFBQUFBQUFFb0FBQUIxQUFBQWJnQUFBQUFBQUFCS0FBQUFkUUFBQUd3QUFBQUFBQUFBUVFBQUFIVUFBQUJuQUFBQUFBQUFBRk1BQUFCbEFBQUFjQUFBQUFBQUFBQlBBQUFBWXdBQUFIUUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFBQUFBQUVRQUFBQmxBQUFBWXdBQUFBQUFBQUJCQUFBQVRRQUFBQUFBQUFCUUFBQUFUUUJCalB3QUMrSUVERE1BQU04QUFBRFFBQUFBMFFBQUFOSUFBQURUQUFBQTFBQUFBTlVBQUFBQUFBQUErRE1BQU44QUFBRGdBQUFBNFFBQUFPSUFBQURqQUFBQTVBQUFBT1VBQUFBQUFBQUFnRDRBQUNnQkFBQXBBUUFBS2dFQUFFNVRkRE5mWHpJeE5GOWZjMmhoY21Wa1gyTnZkVzUwUlFBQUFBRHdQZ0FBWkQ0QUFFNHhNRjlmWTNoNFlXSnBkakV4Tmw5ZmMyaHBiVjkwZVhCbFgybHVabTlGQUFBQUFCZy9BQUNJUGdBQWFFQUFBRTR4TUY5ZlkzaDRZV0pwZGpFeE4xOWZZMnhoYzNOZmRIbHdaVjlwYm1adlJRQUFBQmcvQUFDNFBnQUFyRDRBQUFBQUFBRGNQZ0FBS3dFQUFDd0JBQUF0QVFBQUxnRUFBQzhCQUFBd0FRQUFNUUVBQURJQkFBQUFBQUFBWUQ4QUFDc0JBQUF6QVFBQUxRRUFBQzRCQUFBdkFRQUFOQUVBQURVQkFBQTJBUUFBVGpFd1gxOWplSGhoWW1sMk1USXdYMTl6YVY5amJHRnpjMTkwZVhCbFgybHVabTlGQUFBQUFCZy9BQUE0UHdBQTNENEFBQUFBQUFDOFB3QUFLd0VBQURjQkFBQXRBUUFBTGdFQUFDOEJBQUE0QVFBQU9RRUFBRG9CQUFCT01UQmZYMk40ZUdGaWFYWXhNakZmWDNadGFWOWpiR0Z6YzE5MGVYQmxYMmx1Wm05RkFBQUFHRDhBQUpRL0FBRGNQZ0FBQUFBQUFPdy9BQUE3QVFBQVBBRUFBRDBCQUFCVGREbGxlR05sY0hScGIyNEFBQUFBOEQ0QUFOdy9BQUFBQUFBQUdFQUFBQU1BQUFBK0FRQUFQd0VBQUZOME1URnNiMmRwWTE5bGNuSnZjZ0FZUHdBQUNFQUFBT3cvQUFBQUFBQUFURUFBQUFNQUFBQkFBUUFBUHdFQUFGTjBNVEpzWlc1bmRHaGZaWEp5YjNJQUFBQUFHRDhBQURoQUFBQVlRQUFBVTNRNWRIbHdaVjlwYm1adkFBQUFBUEErQUFCWVFBQkI4SUFCQ3dLZ2F3PT0iKSxfeT1mdW5jdGlvbihBKXsoQT1BfHx7fSkuaW5zdGFudGlhdGVXYXNtPWZ1bmN0aW9uKEEsZyl7enkoQSkudGhlbigoZnVuY3Rpb24oQSl7Zyh7ZXhwb3J0czpBLmV4cG9ydHN9KX0pKX07dmFyIGcsST12b2lkIDAhPT1BP0E6e30sQj1PYmplY3QuYXNzaWduLFE9Qih7fSxJKSxDPSIuL3RoaXMucHJvZ3JhbSIsRT0hMCxpPSIiO2k9MCE9PShpPXNlbGYubG9jYXRpb24uaHJlZikuaW5kZXhPZigiYmxvYjoiKT9pLnN1YnN0cigwLGkucmVwbGFjZSgvWz8jXS4qLywiIikubGFzdEluZGV4T2YoIi8iKSsxKToiIixnPWZ1bmN0aW9uKEEpe3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gZy5vcGVuKCJHRVQiLEEsITEpLGcucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsZy5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KGcucmVzcG9uc2UpfSxJLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciB0LGUsbz1JLnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtCKEksUSksUT1udWxsLEkuYXJndW1lbnRzJiZJLmFyZ3VtZW50cyxJLnRoaXNQcm9ncmFtJiYoQz1JLnRoaXNQcm9ncmFtKSxJLnF1aXQmJkkucXVpdCxJLndhc21CaW5hcnkmJih0PUkud2FzbUJpbmFyeSksSS5ub0V4aXRSdW50aW1lLCJvYmplY3QiIT09KCJ1bmRlZmluZWQiPT10eXBlb2YgV2ViQXNzZW1ibHk/InVuZGVmaW5lZCI6aG4oV2ViQXNzZW1ibHkpKSYmaygibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciBuLHIsYSxzLGMsaD0hMSx5PSJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwO2Z1bmN0aW9uIEQoQSxnKXtyZXR1cm4gQT9mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPWcrSSxRPWc7QVtRXSYmIShRPj1CKTspKytRO2lmKFEtZz4xNiYmQS5zdWJhcnJheSYmeSlyZXR1cm4geS5kZWNvZGUoQS5zdWJhcnJheShnLFEpKTtmb3IodmFyIEM9IiI7ZzxROyl7dmFyIEU9QVtnKytdO2lmKDEyOCZFKXt2YXIgaT02MyZBW2crK107aWYoMTkyIT0oMjI0JkUpKXt2YXIgdD02MyZBW2crK107aWYoKEU9MjI0PT0oMjQwJkUpPygxNSZFKTw8MTJ8aTw8Nnx0Oig3JkUpPDwxOHxpPDwxMnx0PDw2fDYzJkFbZysrXSk8NjU1MzYpQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKTtlbHNle3ZhciBlPUUtNjU1MzY7Qys9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxlPj4xMCw1NjMyMHwxMDIzJmUpfX1lbHNlIEMrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJkUpPDw2fGkpfWVsc2UgQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKX1yZXR1cm4gQ30oYSxBLGcpOiIifWZ1bmN0aW9uIGYoQSxnLEksQil7aWYoIShCPjApKXJldHVybiAwO2Zvcih2YXIgUT1JLEM9SStCLTEsRT0wO0U8QS5sZW5ndGg7KytFKXt2YXIgaT1BLmNoYXJDb2RlQXQoRSk7aWYoaT49NTUyOTYmJmk8PTU3MzQzJiYoaT02NTUzNisoKDEwMjMmaSk8PDEwKXwxMDIzJkEuY2hhckNvZGVBdCgrK0UpKSxpPD0xMjcpe2lmKEk+PUMpYnJlYWs7Z1tJKytdPWl9ZWxzZSBpZihpPD0yMDQ3KXtpZihJKzE+PUMpYnJlYWs7Z1tJKytdPTE5MnxpPj42LGdbSSsrXT0xMjh8NjMmaX1lbHNlIGlmKGk8PTY1NTM1KXtpZihJKzI+PUMpYnJlYWs7Z1tJKytdPTIyNHxpPj4xMixnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfWVsc2V7aWYoSSszPj1DKWJyZWFrO2dbSSsrXT0yNDB8aT4+MTgsZ1tJKytdPTEyOHxpPj4xMiY2MyxnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfX1yZXR1cm4gZ1tJXT0wLEktUX1mdW5jdGlvbiB1KEEpe2Zvcih2YXIgZz0wLEk9MDtJPEEubGVuZ3RoOysrSSl7dmFyIEI9QS5jaGFyQ29kZUF0KEkpO0I+PTU1Mjk2JiZCPD01NzM0MyYmKEI9NjU1MzYrKCgxMDIzJkIpPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytJKSksQjw9MTI3PysrZzpnKz1CPD0yMDQ3PzI6Qjw9NjU1MzU/Mzo0fXJldHVybiBnfWZ1bmN0aW9uIHcoQSxnKXtyLnNldChBLGcpfWZ1bmN0aW9uIGQoQSl7bj1BLEkuSEVBUDg9cj1uZXcgSW50OEFycmF5KEEpLEkuSEVBUDE2PW5ldyBJbnQxNkFycmF5KEEpLEkuSEVBUDMyPXM9bmV3IEludDMyQXJyYXkoQSksSS5IRUFQVTg9YT1uZXcgVWludDhBcnJheShBKSxJLkhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KEEpLEkuSEVBUFUzMj1uZXcgVWludDMyQXJyYXkoQSksSS5IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoQSksSS5IRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoQSl9SS5JTklUSUFMX01FTU9SWTt2YXIgRj1bXSxsPVtdLEc9W10sUj0wLFU9bnVsbDtmdW5jdGlvbiBrKEEpe3Rocm93IEkub25BYm9ydCYmSS5vbkFib3J0KEEpLG8oQT0iQWJvcnRlZCgiK0ErIikiKSxoPSEwLEErPSIuIEJ1aWxkIHdpdGggLXMgQVNTRVJUSU9OUz0xIGZvciBtb3JlIGluZm8uIixuZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKEEpfUkucHJlbG9hZGVkSW1hZ2VzPXt9LEkucHJlbG9hZGVkQXVkaW9zPXt9O3ZhciBTLE4sTT0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rpb24gWShBKXtyZXR1cm4gQS5zdGFydHNXaXRoKE0pfWZ1bmN0aW9uIEgoQSl7dHJ5e2lmKEE9PVMmJnQpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQpO2lmKGcpcmV0dXJuIGcoQSk7dGhyb3ciYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifWNhdGNoKEkpe2soSSl9fWZ1bmN0aW9uIHAoQSl7Zm9yKDtBLmxlbmd0aD4wOyl7dmFyIGc9QS5zaGlmdCgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnKXt2YXIgQj1nLmZ1bmM7Im51bWJlciI9PXR5cGVvZiBCP3ZvaWQgMD09PWcuYXJnP0ooQikoKTpKKEIpKGcuYXJnKTpCKHZvaWQgMD09PWcuYXJnP251bGw6Zy5hcmcpfWVsc2UgZyhJKX19ZnVuY3Rpb24gSihBKXtyZXR1cm4gYy5nZXQoQSl9ZnVuY3Rpb24gTChBKXt0aGlzLmV4Y1B0cj1BLHRoaXMucHRyPUEtMTYsdGhpcy5zZXRfdHlwZT1mdW5jdGlvbihBKXtzW3RoaXMucHRyKzQ+PjJdPUF9LHRoaXMuZ2V0X3R5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gc1t0aGlzLnB0cis0Pj4yXX0sdGhpcy5zZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbihBKXtzW3RoaXMucHRyKzg+PjJdPUF9LHRoaXMuZ2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gc1t0aGlzLnB0cis4Pj4yXX0sdGhpcy5zZXRfcmVmY291bnQ9ZnVuY3Rpb24oQSl7c1t0aGlzLnB0cj4+Ml09QX0sdGhpcy5zZXRfY2F1Z2h0PWZ1bmN0aW9uKEEpe0E9QT8xOjAsclt0aGlzLnB0cisxMj4+MF09QX0sdGhpcy5nZXRfY2F1Z2h0PWZ1bmN0aW9uKCl7cmV0dXJuIDAhPXJbdGhpcy5wdHIrMTI+PjBdfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihBKXtBPUE/MTowLHJbdGhpcy5wdHIrMTM+PjBdPUF9LHRoaXMuZ2V0X3JldGhyb3duPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPXJbdGhpcy5wdHIrMTM+PjBdfSx0aGlzLmluaXQ9ZnVuY3Rpb24oQSxnKXt0aGlzLnNldF90eXBlKEEpLHRoaXMuc2V0X2Rlc3RydWN0b3IoZyksdGhpcy5zZXRfcmVmY291bnQoMCksdGhpcy5zZXRfY2F1Z2h0KCExKSx0aGlzLnNldF9yZXRocm93bighMSl9LHRoaXMuYWRkX3JlZj1mdW5jdGlvbigpe3ZhciBBPXNbdGhpcy5wdHI+PjJdO3NbdGhpcy5wdHI+PjJdPUErMX0sdGhpcy5yZWxlYXNlX3JlZj1mdW5jdGlvbigpe3ZhciBBPXNbdGhpcy5wdHI+PjJdO3JldHVybiBzW3RoaXMucHRyPj4yXT1BLTEsMT09PUF9fWZ1bmN0aW9uIHYoQSl7dHJ5e3JldHVybiBlLmdyb3coQS1uLmJ5dGVMZW5ndGgrNjU1MzU+Pj4xNiksZChlLmJ1ZmZlciksMX1jYXRjaChnKXt9fVkoUz0iYXcud2FzbSIpfHwoTj1TLFM9SS5sb2NhdGVGaWxlP0kubG9jYXRlRmlsZShOLGkpOmkrTik7dmFyIEs9e307ZnVuY3Rpb24gbSgpe2lmKCFtLnN0cmluZ3Mpe3ZhciBBPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yPyJ1bmRlZmluZWQiOmhuKG5hdmlnYXRvcikpJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpDfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIGcgaW4gSyl2b2lkIDA9PT1LW2ddP2RlbGV0ZSBBW2ddOkFbZ109S1tnXTt2YXIgST1bXTtmb3IodmFyIGcgaW4gQSlJLnB1c2goZysiPSIrQVtnXSk7bS5zdHJpbmdzPUl9cmV0dXJuIG0uc3RyaW5nc31mdW5jdGlvbiB4KEEpe3JldHVybiBBJTQ9PTAmJihBJTEwMCE9MHx8QSU0MDA9PTApfWZ1bmN0aW9uIHEoQSxnKXtmb3IodmFyIEk9MCxCPTA7Qjw9ZztJKz1BW0IrK10pO3JldHVybiBJfXZhciBiPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sVD1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIE8oQSxnKXtmb3IodmFyIEk9bmV3IERhdGUoQS5nZXRUaW1lKCkpO2c+MDspe3ZhciBCPXgoSS5nZXRGdWxsWWVhcigpKSxRPUkuZ2V0TW9udGgoKSxDPShCP2I6VClbUV07aWYoIShnPkMtSS5nZXREYXRlKCkpKXJldHVybiBJLnNldERhdGUoSS5nZXREYXRlKCkrZyksSTtnLT1DLUkuZ2V0RGF0ZSgpKzEsSS5zZXREYXRlKDEpLFE8MTE/SS5zZXRNb250aChRKzEpOihJLnNldE1vbnRoKDApLEkuc2V0RnVsbFllYXIoSS5nZXRGdWxsWWVhcigpKzEpKX1yZXR1cm4gSX1mdW5jdGlvbiBXKEEsZyxJKXt2YXIgQj1JPjA/STp1KEEpKzEsUT1uZXcgQXJyYXkoQiksQz1mKEEsUSwwLFEubGVuZ3RoKTtyZXR1cm4gZyYmKFEubGVuZ3RoPUMpLFF9dmFyIFo9e2g6ZnVuY3Rpb24oQSl7cmV0dXJuIGooQSsxNikrMTZ9LGc6ZnVuY3Rpb24oQSxnLEkpe3Rocm93IG5ldyBMKEEpLmluaXQoZyxJKSxBfSxhOmZ1bmN0aW9uKCl7aygiIil9LGY6ZnVuY3Rpb24oQSxnLEkpe2EuY29weVdpdGhpbihBLGcsZytJKX0sZTpmdW5jdGlvbihBKXt2YXIgZyxJLEI9YS5sZW5ndGgsUT0yMTQ3NDgzNjQ4O2lmKChBPj4+PTApPlEpcmV0dXJuITE7Zm9yKHZhciBDPTE7Qzw9NDtDKj0yKXt2YXIgRT1CKigxKy4yL0MpO2lmKEU9TWF0aC5taW4oRSxBKzEwMDY2MzI5NiksdihNYXRoLm1pbihRLCgoZz1NYXRoLm1heChBLEUpKSUoST02NTUzNik+MCYmKGcrPUktZyVJKSxnKSkpKXJldHVybiEwfXJldHVybiExfSxjOmZ1bmN0aW9uKEEsZyl7dmFyIEk9MDtyZXR1cm4gbSgpLmZvckVhY2goKGZ1bmN0aW9uKEIsUSl7dmFyIEM9ZytJO3NbQSs0KlE+PjJdPUMsZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKXJbZysrPj4wXT1BLmNoYXJDb2RlQXQoQik7SXx8KHJbZz4+MF09MCl9KEIsQyksSSs9Qi5sZW5ndGgrMX0pKSwwfSxkOmZ1bmN0aW9uKEEsZyl7dmFyIEk9bSgpO3NbQT4+Ml09SS5sZW5ndGg7dmFyIEI9MDtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihBKXtCKz1BLmxlbmd0aCsxfSkpLHNbZz4+Ml09QiwwfSxiOmZ1bmN0aW9uKEEsZyxJLEIpe3JldHVybiBmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1zW0IrNDA+PjJdLEM9e3RtX3NlYzpzW0I+PjJdLHRtX21pbjpzW0IrND4+Ml0sdG1faG91cjpzW0IrOD4+Ml0sdG1fbWRheTpzW0IrMTI+PjJdLHRtX21vbjpzW0IrMTY+PjJdLHRtX3llYXI6c1tCKzIwPj4yXSx0bV93ZGF5OnNbQisyND4+Ml0sdG1feWRheTpzW0IrMjg+PjJdLHRtX2lzZHN0OnNbQiszMj4+Ml0sdG1fZ210b2ZmOnNbQiszNj4+Ml0sdG1fem9uZTpRP0QoUSk6IiJ9LEU9RChJKSxpPXsiJWMiOiIlYSAlYiAlZCAlSDolTTolUyAlWSIsIiVEIjoiJW0vJWQvJXkiLCIlRiI6IiVZLSVtLSVkIiwiJWgiOiIlYiIsIiVyIjoiJUk6JU06JVMgJXAiLCIlUiI6IiVIOiVNIiwiJVQiOiIlSDolTTolUyIsIiV4IjoiJW0vJWQvJXkiLCIlWCI6IiVIOiVNOiVTIiwiJUVjIjoiJWMiLCIlRUMiOiIlQyIsIiVFeCI6IiVtLyVkLyV5IiwiJUVYIjoiJUg6JU06JVMiLCIlRXkiOiIleSIsIiVFWSI6IiVZIiwiJU9kIjoiJWQiLCIlT2UiOiIlZSIsIiVPSCI6IiVIIiwiJU9JIjoiJUkiLCIlT20iOiIlbSIsIiVPTSI6IiVNIiwiJU9TIjoiJVMiLCIlT3UiOiIldSIsIiVPVSI6IiVVIiwiJU9WIjoiJVYiLCIlT3ciOiIldyIsIiVPVyI6IiVXIiwiJU95IjoiJXkifTtmb3IodmFyIHQgaW4gaSlFPUUucmVwbGFjZShuZXcgUmVnRXhwKHQsImciKSxpW3RdKTt2YXIgZT1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sbz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07ZnVuY3Rpb24gbihBLGcsSSl7Zm9yKHZhciBCPSJudW1iZXIiPT10eXBlb2YgQT9BLnRvU3RyaW5nKCk6QXx8IiI7Qi5sZW5ndGg8ZzspQj1JWzBdK0I7cmV0dXJuIEJ9ZnVuY3Rpb24gcihBLGcpe3JldHVybiBuKEEsZywiMCIpfWZ1bmN0aW9uIGEoQSxnKXtmdW5jdGlvbiBJKEEpe3JldHVybiBBPDA/LTE6QT4wPzE6MH12YXIgQjtyZXR1cm4gMD09PShCPUkoQS5nZXRGdWxsWWVhcigpLWcuZ2V0RnVsbFllYXIoKSkpJiYwPT09KEI9SShBLmdldE1vbnRoKCktZy5nZXRNb250aCgpKSkmJihCPUkoQS5nZXREYXRlKCktZy5nZXREYXRlKCkpKSxCfWZ1bmN0aW9uIGMoQSl7c3dpdGNoKEEuZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLTEsMTEsMjkpO2Nhc2UgMTpyZXR1cm4gQTtjYXNlIDI6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLDAsMik7Y2FzZSA0OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksMCwxKTtjYXNlIDU6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMwKX19ZnVuY3Rpb24gaChBKXt2YXIgZz1PKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KSxJPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSwwLDQpLEI9bmV3IERhdGUoZy5nZXRGdWxsWWVhcigpKzEsMCw0KSxRPWMoSSksQz1jKEIpO3JldHVybiBhKFEsZyk8PTA/YShDLGcpPD0wP2cuZ2V0RnVsbFllYXIoKSsxOmcuZ2V0RnVsbFllYXIoKTpnLmdldEZ1bGxZZWFyKCktMX12YXIgeT17IiVhIjpmdW5jdGlvbihBKXtyZXR1cm4gZVtBLnRtX3dkYXldLnN1YnN0cmluZygwLDMpfSwiJUEiOmZ1bmN0aW9uKEEpe3JldHVybiBlW0EudG1fd2RheV19LCIlYiI6ZnVuY3Rpb24oQSl7cmV0dXJuIG9bQS50bV9tb25dLnN1YnN0cmluZygwLDMpfSwiJUIiOmZ1bmN0aW9uKEEpe3JldHVybiBvW0EudG1fbW9uXX0sIiVDIjpmdW5jdGlvbihBKXtyZXR1cm4gcigoQS50bV95ZWFyKzE5MDApLzEwMHwwLDIpfSwiJWQiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1fbWRheSwyKX0sIiVlIjpmdW5jdGlvbihBKXtyZXR1cm4gbihBLnRtX21kYXksMiwiICIpfSwiJWciOmZ1bmN0aW9uKEEpe3JldHVybiBoKEEpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJUciOmZ1bmN0aW9uKEEpe3JldHVybiBoKEEpfSwiJUgiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1faG91ciwyKX0sIiVJIjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2hvdXI7cmV0dXJuIDA9PWc/Zz0xMjpnPjEyJiYoZy09MTIpLHIoZywyKX0sIiVqIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21kYXkrcSh4KEEudG1feWVhcisxOTAwKT9iOlQsQS50bV9tb24tMSksMyl9LCIlbSI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9tb24rMSwyKX0sIiVNIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21pbiwyKX0sIiVuIjpmdW5jdGlvbigpe3JldHVybiJcbiJ9LCIlcCI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1faG91cj49MCYmQS50bV9ob3VyPDEyPyJBTSI6IlBNIn0sIiVTIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX3NlYywyKX0sIiV0IjpmdW5jdGlvbigpe3JldHVybiJcdCJ9LCIldSI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1fd2RheXx8N30sIiVVIjpmdW5jdGlvbihBKXt2YXIgZz1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEk9MD09PWcuZ2V0RGF5KCk/ZzpPKGcsNy1nLmdldERheSgpKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYoYShJLEIpPDApe3ZhciBRPXEoeChCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09YShJLGcpPyIwMSI6IjAwIn0sIiVWIjpmdW5jdGlvbihBKXt2YXIgZyxJPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsNCksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMSwwLDQpLFE9YyhJKSxDPWMoQiksRT1PKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KTtyZXR1cm4gYShFLFEpPDA/IjUzIjphKEMsRSk8PTA/IjAxIjooZz1RLmdldEZ1bGxZZWFyKCk8QS50bV95ZWFyKzE5MDA/QS50bV95ZGF5KzMyLVEuZ2V0RGF0ZSgpOkEudG1feWRheSsxLVEuZ2V0RGF0ZSgpLHIoTWF0aC5jZWlsKGcvNyksMikpfSwiJXciOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3dkYXl9LCIlVyI6ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IERhdGUoQS50bV95ZWFyLDAsMSksST0xPT09Zy5nZXREYXkoKT9nOk8oZywwPT09Zy5nZXREYXkoKT8xOjctZy5nZXREYXkoKSsxKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYoYShJLEIpPDApe3ZhciBRPXEoeChCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09YShJLGcpPyIwMSI6IjAwIn0sIiV5IjpmdW5jdGlvbihBKXtyZXR1cm4oQS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJVkiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3llYXIrMTkwMH0sIiV6IjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2dtdG9mZixJPWc+PTA7cmV0dXJuIGc9KGc9TWF0aC5hYnMoZykvNjApLzYwKjEwMCtnJTYwLChJPyIrIjoiLSIpK1N0cmluZygiMDAwMCIrZykuc2xpY2UoLTQpfSwiJVoiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3pvbmV9LCIlJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fTtmb3IodmFyIHQgaW4geSlFLmluY2x1ZGVzKHQpJiYoRT1FLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIikseVt0XShDKSkpO3ZhciBmPVcoRSwhMSk7cmV0dXJuIGYubGVuZ3RoPmc/MDoodyhmLEEpLGYubGVuZ3RoLTEpfShBLGcsSSxCKX19OyFmdW5jdGlvbigpe3ZhciBBPXthOlp9O2Z1bmN0aW9uIGcoQSxnKXt2YXIgQixRPUEuZXhwb3J0cztJLmFzbT1RLGQoKGU9SS5hc20uaSkuYnVmZmVyKSxjPUkuYXNtLnQsQj1JLmFzbS5qLGwudW5zaGlmdChCKSxmdW5jdGlvbihBKXtpZihSLS0sSS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoUiksMD09UiYmVSl7dmFyIGc9VTtVPW51bGwsZygpfX0oKX1mdW5jdGlvbiBCKEEpe2coQS5pbnN0YW5jZSl9ZnVuY3Rpb24gUShnKXtyZXR1cm4oIXQmJkUmJiJmdW5jdGlvbiI9PXR5cGVvZiBmZXRjaD9mZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oQSl7aWYoIUEub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitTKyInIjtyZXR1cm4gQS5hcnJheUJ1ZmZlcigpfSkpLmNhdGNoKChmdW5jdGlvbigpe3JldHVybiBIKFMpfSkpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIEgoUyl9KSkpLnRoZW4oKGZ1bmN0aW9uKGcpe3JldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEEpfSkpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBfSkpLnRoZW4oZywoZnVuY3Rpb24oQSl7bygiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIitBKSxrKEEpfSkpfWlmKFIrKyxJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkkubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhSKSxJLmluc3RhbnRpYXRlV2FzbSl0cnl7cmV0dXJuIEkuaW5zdGFudGlhdGVXYXNtKEEsZyl9Y2F0Y2goQyl7cmV0dXJuIG8oIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrQyksITF9dHx8ImZ1bmN0aW9uIiE9dHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nfHxZKFMpfHwiZnVuY3Rpb24iIT10eXBlb2YgZmV0Y2g/UShCKTpmZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGcsQSkudGhlbihCLChmdW5jdGlvbihBKXtyZXR1cm4gbygid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrQSksbygiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSxRKEIpfSkpfSkpfSgpLEkuX19fd2FzbV9jYWxsX2N0b3JzPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX19fd2FzbV9jYWxsX2N0b3JzPUkuYXNtLmopLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIGo9SS5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKGo9SS5fbWFsbG9jPUkuYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX07SS5fZnJlZT1mdW5jdGlvbigpe3JldHVybihJLl9mcmVlPUkuYXNtLmwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fb3BlbkJveD1mdW5jdGlvbigpe3JldHVybihJLl9vcGVuQm94PUkuYXNtLm0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fZGVzY3J5cHQ9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVzY3J5cHQ9SS5hc20ubikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9kZXNjcnlwdEtkc0tleT1mdW5jdGlvbigpe3JldHVybihJLl9kZXNjcnlwdEtkc0tleT1JLmFzbS5vKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2RlY3J5cHRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVjcnlwdEtleT1JLmFzbS5wKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2Rlc2NyeXB0Q0JDPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX2Rlc2NyeXB0Q0JDPUkuYXNtLnEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fcmVsZWFzZT1mdW5jdGlvbigpe3JldHVybihJLl9yZWxlYXNlPUkuYXNtLnIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fc2V0UmF3PWZ1bmN0aW9uKCl7cmV0dXJuKEkuX3NldFJhdz1JLmFzbS5zKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBQLFg9SS5zdGFja1NhdmU9ZnVuY3Rpb24oKXtyZXR1cm4oWD1JLnN0YWNrU2F2ZT1JLmFzbS51KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFY9SS5zdGFja1Jlc3RvcmU9ZnVuY3Rpb24oKXtyZXR1cm4oVj1JLnN0YWNrUmVzdG9yZT1JLmFzbS52KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHo9SS5zdGFja0FsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKHo9SS5zdGFja0FsbG9jPUkuYXNtLncpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZnVuY3Rpb24gXyhBKXtmdW5jdGlvbiBnKCl7UHx8KFA9ITAsSS5jYWxsZWRSdW49ITAsaHx8KHAobCksSS5vblJ1bnRpbWVJbml0aWFsaXplZCYmSS5vblJ1bnRpbWVJbml0aWFsaXplZCgpLGZ1bmN0aW9uKCl7aWYoSS5wb3N0UnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgSS5wb3N0UnVuJiYoSS5wb3N0UnVuPVtJLnBvc3RSdW5dKTtJLnBvc3RSdW4ubGVuZ3RoOylBPUkucG9zdFJ1bi5zaGlmdCgpLEcudW5zaGlmdChBKTt2YXIgQTtwKEcpfSgpKSl9Uj4wfHwoZnVuY3Rpb24oKXtpZihJLnByZVJ1bilmb3IoImZ1bmN0aW9uIj09dHlwZW9mIEkucHJlUnVuJiYoSS5wcmVSdW49W0kucHJlUnVuXSk7SS5wcmVSdW4ubGVuZ3RoOylBPUkucHJlUnVuLnNoaWZ0KCksRi51bnNoaWZ0KEEpO3ZhciBBO3AoRil9KCksUj4wfHwoSS5zZXRTdGF0dXM/KEkuc2V0U3RhdHVzKCJSdW5uaW5nLi4uIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe0kuc2V0U3RhdHVzKCIiKX0pLDEpLGcoKX0pLDEpKTpnKCkpKX1pZihJLmludEFycmF5RnJvbVN0cmluZz1XLEkuY2NhbGw9ZnVuY3Rpb24oQSxnLEIsUSxDKXt2YXIgRT17c3RyaW5nOmZ1bmN0aW9uKEEpe3ZhciBnPTA7aWYobnVsbCE9QSYmMCE9PUEpe3ZhciBJPTErKEEubGVuZ3RoPDwyKTshZnVuY3Rpb24oQSxnLEkpe2YoQSxhLGcsSSl9KEEsZz16KEkpLEkpfXJldHVybiBnfSxhcnJheTpmdW5jdGlvbihBKXt2YXIgZz16KEEubGVuZ3RoKTtyZXR1cm4gdyhBLGcpLGd9fSxpPWZ1bmN0aW9uKEEpe3JldHVybiBJWyJfIitBXX0oQSksdD1bXSxlPTA7aWYoUSlmb3IodmFyIG89MDtvPFEubGVuZ3RoO28rKyl7dmFyIG49RVtCW29dXTtuPygwPT09ZSYmKGU9WCgpKSx0W29dPW4oUVtvXSkpOnRbb109UVtvXX12YXIgcixzPWkuYXBwbHkobnVsbCx0KTtyZXR1cm4gcj1zLDAhPT1lJiZWKGUpLHM9ZnVuY3Rpb24oQSl7cmV0dXJuInN0cmluZyI9PT1nP0QoQSk6ImJvb2xlYW4iPT09Zz9Cb29sZWFuKEEpOkF9KHIpfSxJLlVURjhUb1N0cmluZz1ELEkuYWxsb2NhdGVVVEY4PWZ1bmN0aW9uKEEpe3ZhciBnPXUoQSkrMSxJPWooZyk7cmV0dXJuIEkmJmYoQSxyLEksZyksSX0sVT1mdW5jdGlvbiBBKCl7UHx8XygpLFB8fChVPUEpfSxJLnJ1bj1fLEkucHJlSW5pdClmb3IoImZ1bmN0aW9uIj09dHlwZW9mIEkucHJlSW5pdCYmKEkucHJlSW5pdD1bSS5wcmVJbml0XSk7SS5wcmVJbml0Lmxlbmd0aD4wOylJLnByZUluaXQucG9wKCkoKTtyZXR1cm4gXygpLEEucmVhZHl9LCR5PV95O3ZhciBBRD1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt2YXIgZyxJO3luKHRoaXMsQSk7dmFyIEI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsQil7Zz1BLEk9Qn0pKTtyZXR1cm4gQi5yZXNvbHZlPWcsQi5yZWplY3Q9SSxCfXJldHVybiBmbihBLFt7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbihBKXt9fSx7a2V5OiJyZWplY3QiLHZhbHVlOmZ1bmN0aW9uKEEpe319XSksQX0oKTtQcm9taXNlLndpdGhSZXNvbHZlcnN8fChQcm9taXNlLndpdGhSZXNvbHZlcnM9ZnVuY3Rpb24oKXt2YXIgQT17fTtyZXR1cm4gQS5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihnLEkpe0EucmVzb2x2ZT1nLEEucmVqZWN0PUl9KSksQX0pO3ZhciBnRCxJRCxCRD0wLFFEPTEsQ0Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7eW4odGhpcyxBKX1yZXR1cm4gZm4oQSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1uZXcgQUQ7cmV0dXJuIHRoaXMubW9kdWxlPXtvblJ1bnRpbWVJbml0aWFsaXplZDpmdW5jdGlvbigpe0EucmVzb2x2ZSgpfSxvbkFib3J0OmZ1bmN0aW9uKGcpe0EucmVqZWN0KGcpfX0sJHkodGhpcy5tb2R1bGUpLEF9fSx7a2V5OiJkZXNjcnlwdEtleSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjE2LEM9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOkJEO3RyeXt2YXIgRT1mdW5jdGlvbihBKXtpZigiIj09PUEpcmV0dXJuIiI7Zm9yKHZhciBnPVtdLEk9MDtJPEEubGVuZ3RoO0krKylnLnB1c2goQS5jaGFyQ29kZUF0KEkpKTtyZXR1cm4gZ30oc2VsZi5hdG9iKEEpKTtJPXRoaXMubW9kdWxlLl9tYWxsb2MoTnVtYmVyKEUubGVuZ3RoKSksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEUsSSksZz1nfHxuZXcgVWludDhBcnJheSxnPW5ldyBVaW50OEFycmF5KGcpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhnLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChnLEIpLHRoaXMubW9kdWxlLl9kZWNyeXB0S2V5KEMsSSxFLmxlbmd0aCxRLGcuYnl0ZUxlbmd0aCxCKX1jYXRjaChpKXtjb25zb2xlLmxvZyhpKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06QkQ7dHJ5e3ZhciBDPW5ldyBVaW50OEFycmF5KGcpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLEkpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhDLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChDLEIpLHRoaXMubW9kdWxlLl9kZXNjcnlwdChRLEksQS5ieXRlTGVuZ3RoLEIpO3ZhciBFPXRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRSl9Y2F0Y2godEQpe2NvbnNvbGUubG9nKHREKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0S2RzS2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDLEU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjE2O3RyeXt2YXIgaT1uZXcgVWludDhBcnJheShnKSx0PW5ldyBVaW50OEFycmF5KEkpO0I9dGhpcy5tb2R1bGUuX21hbGxvYyhpLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChpLEIpLFE9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLFEpLEM9dGhpcy5tb2R1bGUuX21hbGxvYyh0LmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldCh0LEMpLHRoaXMubW9kdWxlLl9kZXNjcnlwdEtkc0tleShCLGkuYnl0ZUxlbmd0aCxRLEEuYnl0ZUxlbmd0aCxDLEUpfWNhdGNoKHREKXtjb25zb2xlLmxvZyh0RCl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShRKSx0aGlzLm1vZHVsZS5fZnJlZShDKSx0aGlzLm1vZHVsZS5fZnJlZShCKX19fSx7a2V5OiJkZXNjcnlwdENCQyIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCO3RyeXt2YXIgUT1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gST10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsSSksQj10aGlzLm1vZHVsZS5fbWFsbG9jKFEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KFEsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0Q0JDKEksQS5ieXRlTGVuZ3RoLEIpLHRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToic2V0UmF3Iix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpRRDt0cnl7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoQSk7Zz10aGlzLm1vZHVsZS5fbWFsbG9jKEIuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEIsZyksdGhpcy5tb2R1bGUuX3NldFJhdyhnLEIuYnl0ZUxlbmd0aCxJKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoZyl9fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vZHVsZSYmKHRoaXMubW9kdWxlPW51bGwpfX1dKSxBfSgpO2Z1bmN0aW9uIEVEKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwyND4+PjApKyhBW2crMV08PDE2KSsoQVtnKzJdPDw4KSsoQVtnKzNdfHwwKX12YXIgaUQ9e2RlY3J5cHRIZWFkZXI6ZnVuY3Rpb24oQSxnKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2dEPW5ldyBvbixJRD1uZXcgY24oZ0QudmlkZW9UcmFjayxnRC5hdWRpb1RyYWNrKTt2YXIgQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPXtyZXM6bnVsbCx2aWRlb1RyYWNrOlEudmlkZW9UcmFjayxhdWRpb1RyYWNrOlEuYXVkaW9UcmFja307aWYoSSl7dmFyIEU9SUQucmVtdXgoITApLGk9RS52aWRlb0luaXRTZWdtZW50LHQ9RS5hdWRpb0luaXRTZWdtZW50O0MucmVzPWc/aTp0fXJldHVybiBDfSxkZWNyeXB0Qm9keTpmdW5jdGlvbihBLGcpe3ZhciBJPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPVEudmlkZW9UcmFjayxFPVEuYXVkaW9UcmFjayxpPUJuLmZpbmRCb3goQixbIm1vb2YiLCJ0cmFmIiwic2VuYyJdKVswXTtpZihpKXt2YXIgdCxlLG89Zz9udWxsPT1DfHxudWxsPT09KHQ9Qy5lbmN2KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0X0lWX3NpemU6bnVsbD09RXx8bnVsbD09PShlPUUuZW5jYSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZGVmYXVsdF9JVl9zaXplLG49Qm4uc2VuYyhpLG8pO2c/Qy52aWRlb1NlbmM9bi5zYW1wbGVzOkUuYXVkaW9TZW5jPW4uc2FtcGxlcyxpRC5kZWNvZGVyRGF0YShDLEUpLGcmJkMuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZyxJPUEuZGF0YTtBLnVuaXRzPVtdO2Zvcih2YXIgQj0wLFE9SS5sZW5ndGgtMTtCPFE7KWc9RUQoSSxCKSxCKz00LEEudW5pdHMucHVzaChJLnN1YmFycmF5KEIsQitnKSksQis9Z30pKX12YXIgcj17cmVzOm51bGwsdmlkZW9UcmFjazpDLGF1ZGlvVHJhY2s6RX07aWYoSSl7dmFyIGE9SUQucmVtdXgoKSxzPWEudmlkZW9TZWdtZW50LGM9YS5hdWRpb1NlZ21lbnQ7ci5yZXM9Zz9zOmN9cmV0dXJuIHJ9LGRlY29kZXJEYXRhOmZ1bmN0aW9uKEEsZyl7RGEuZGVjb2RlckFFU0NUUkRhdGEoQSxnLChmdW5jdGlvbihBLGcsSSl7cmV0dXJuIHNlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0KEEsSSl9KSl9fTtvbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcztpZigiZGVjcnlwdEJvZHkiPT09QS5kYXRhLm1ldGhvZClzZWxmLnAudGhlbigoZnVuY3Rpb24oKXt2YXIgST1BLmRhdGEuYXJncyxCPWlELmRlY3J5cHRCb2R5KEkuYnVmLEkuaXNWaWRlbyxJLm5lZWRSZW11eCk7Zy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0Qm9keSIsaWQ6QS5kYXRhLmlkLGFyZ3M6e2RhdGE6Qn19KX0pKTtlbHNlIGlmKCJkZWNyeXB0SGVhZGVyIj09PUEuZGF0YS5tZXRob2Qpe3ZhciBJPWlELmRlY3J5cHRIZWFkZXIoQS5kYXRhLmJ1ZixBLmRhdGEuaXNWaWRlbyk7dGhpcy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0SGVhZGVyIixpZDpBLmRhdGEuaWQsYXJnczp7ZGF0YTpJfX0pfWVsc2UgaWYoInVwZGF0ZVZhbHVlIj09PUEuZGF0YS5tZXRob2Qpe3RoaXMuY2FjaGVEYXRhPUEuZGF0YS52YWx1ZSxzZWxmLmF3TWFuYWdlcj1uZXcgQ0Q7dmFyIEI9c2VsZi5hd01hbmFnZXIuaW5pdCh0aGlzLmNhY2hlRGF0YS53YXNtQmluYXJ5RmlsZSk7c2VsZi5wPUIsQi50aGVuKChmdW5jdGlvbigpe3NlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0S2V5KGcuY2FjaGVEYXRhLnNlY3JldEtleSxnLmNhY2hlRGF0YS5kZWNyeXB0S2V5KX0pKX1lbHNlImRlc3Ryb3kiPT09QS5kYXRhLm1ldGhvZCYmc2VsZi5hd01hbmFnZXImJihzZWxmLmF3TWFuYWdlci5kZXN0cm95KCksc2VsZi5hd01hbmFnZXI9bnVsbCl9fSgpOwo=",Ti="undefined"!=typeof window&&window.Blob&&new Blob([atob(vi)],{type:"text/javascript;charset=utf-8"});function Ci(){var e;try{if(!(e=Ti&&(window.URL||window.webkitURL).createObjectURL(Ti)))throw"";return new Worker(e)}catch(t){return new Worker("data:application/javascript;base64,"+vi)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var gi=function(){function e(){R(this,e),EF(this),this.bodyId=0,this.isSwitchHeader=!1,this.workers={audio:null,video:null},this.init(),this.headerId=0,this.crypto=window.crypto||window.msCrypto}return u(e,[{key:"init",value:function(){for(var e=this,t=Object.keys(this.workers),n=0;n<t.length;n++){var U=t[n],F=new Ci;F.onmessage=function(t){e.emit(t.data.method,t.data)},this.workers[U]=F}}},{key:"updateHeaderId",value:function(){var e=this.bodyId+1;this.headerId=e,this.bodyId=e}},{key:"destroy",value:function(){for(var e=Object.keys(this.workers),t=0;t<e.length;t++){var n=e[t];this.workers[n].postMessage({method:"destroy"}),this.workers[n].terminate()}this.workers={}}},{key:"getWorker",value:function(e){return this.workers[e?"video":"audio"]}},{key:"decryptHeader",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],U=this;return this.updateHeaderId(),new Promise((function(F){var Q=Math.floor(1e3*Math.random()),i=U.getWorker(t);i&&i.postMessage({method:"decryptHeader",id:Q,buf:e,isVideo:t,needRemux:n});U.on("decryptHeader",(function e(t){t.id===Q&&(U.off("decryptHeader",e),F({data:t.args.data,vid:t.args.vid}))}))}))}},{key:"updateValue",value:function(e){for(var t=Object.keys(this.workers),n=0;n<t.length;n++){var U=t[n];this.workers[U].postMessage({method:"updateValue",value:e})}}},{key:"decryptBody",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],U=e instanceof ArrayBuffer?e:e.buffer,F=this,Q=F.bodyId+1;return F.bodyId=Q,new Promise((function(e){F.on("decryptBody",(function t(n){n.id===Q&&(F.off("decryptBody",t),e({data:n.args.data,id:Q,headerId:F.headerId}))}));var i=F.getWorker(t);i&&i.postMessage({method:"decryptBody",id:Q,args:{isVideo:t,id:F.workerIndex,aeskey:F.aeskey,buf:U,needRemux:n}},[U])}))}}]),e}(),Di=gi,Xi="danger_d_speed";var xi=function(){function e(t,n,U,F){var Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};R(this,e),this.bitrate=n,this.segment_duration=F||5e3,this.logger=Q.logger,this.openLog=Q.openLog,this.cdnHost=t.cdnHost,this._loadedPromise=new x,this._wasmPromise=new x,this.config=t,this.autoBitrateOpts=t.autoBitrateOpts||{},this.stall_penalty=this.autoBitrateOpts.stall_penalty||11,this.switch_penalty=this.autoBitrateOpts.switch_penalty||4,this.interval=this.autoBitrateOpts.interval||1e3;var i=t.progressTimer||1e3,l=this.autoBitrateOpts.startInterval||i;this.initInterval=.8*l,this._prealodMethod=t.preloadmethod||0,this._videoWidth=0,this._videoHeight=0,this._hasDeviceInfoChanged=!0,this._maxDefinition=this.autoBitrateOpts.maxDefinition||null,this._underflowDefinition=this.autoBitrateOpts.underflowDefinition||null,this.updateMediaInfos(U,!1)}return u(e,[{key:"onLoadWasm",value:function(){var e=this,t=this.module={onRuntimeInitialized:function(){e._wasmPromise.resolve()}};return(0,this.autoBitrateOpts.module)(t),this._wasmPromise}},{key:"updateMediaInfos",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._heightToDefitionConfig=new Map,this._bitrateToDefitionConfig=new Map,this._definitionToDefitionConfig=new Map,e?(this.mediaInfos=e,this.mediaInfos.dynamic_video_list.forEach((function(e){t._heightToDefitionConfig.set(e.vheight,e),t._bitrateToDefitionConfig.set(e.bitrate,e),t._definitionToDefitionConfig.set(e.definition,e)})),this._maxDefinition&&(this._defaultMaxBitrate=this._getBitrate(this._maxDefinition)),this._underflowDefinition&&(this._underflowBitrate=this._getBitrate(this._underflowDefinition))):n&&console.error("baseAbr mediaInfos null")}},{key:"_getBitrate",value:function(e){var t;return(null===(t=this._definitionToDefitionConfig.get(e))||void 0===t?void 0:t.bitrate)||-1}},{key:"parseMPD",value:function(){if(this.setDebugModel(this.openLog),this.mediaInfos){this.logger("mediaInfos",this.mediaInfos);try{for(var e=[],t=this.mediaInfos.dynamic_video_list,n=0;n<t.length;n++){var U=t[n];e.push({stream_id:"s".concat(n),bandwidth:U.bitrate||U.bandwidth,width:U.vwidth||U.width,height:U.vheight||U.height,codec:U.codecs||U.codec_type||"h264",frame_rate:Number(U.fps)||-1,segment_duration:this.segment_duration})}var F={v_adaptation:e},Q=JSON.stringify(F);this.module.ccall("parseMPD","null",["string"],[Q])}catch(i){}}else console.warn("mediaInfos is null")}},{key:"_getDefautSpeed",value:function(e){var t=0,n=window.navigator.connection;if(n&&n.downlink)t=1024*navigator.connection.downlink/8,this.logger("initSpeed connect",t);else try{t=parseFloat(X.getItem(Xi))||0,this.logger("initSpeed connect",t)}catch(U){}return 0===t&&(t=e&&e.historyAvspeed||0,this.logger("initSpeed history",t)),t}},{key:"setDebugModel",value:function(e){this.module._setDebugModel(e)}},{key:"updateBitrate",value:function(e){this.bitrate=e}},{key:"_updatePreloadSupplier",value:function(e,t){this.module._updatePreloadSupplier(e,t)}},{key:"updatePreloadSupplier",value:function(e){var t=this._getDefautSpeed();this._updatePreloadSupplier(t,e)}},{key:"getPreloadBitrate",value:function(){var e,t=null,n=[];try{this.logger("preloadMethod",this._prealodMethod),e=this.module._getPreloadBitrate(this._prealodMethod);for(var U=0;U<5;U++)n.push(this.module.HEAP32[e/Int32Array.BYTES_PER_ELEMENT+U]);var F={bitrate:n[0],pduration:n[1],preloadType:n[2],size:n[3],mediaType:n[4]};return this.logger("getPreloadBitrate",F),F}catch(Q){t=null,console.log("getPreloadBitrate",Q)}finally{this.module._free(e)}return t}},{key:"_updateDeviceInfo",value:function(e){try{if(this._hasDeviceInfoChanged){var t=window.devicePixelRatio||1;this.module._updateDeviceInfo(this._videoWidth||Number(this.config.width),this._videoHeight||Number(this.config.height),t,e||-1)}this._hasDeviceInfoChanged=!1}catch(n){console.log("_updateDeviceInfo")}}},{key:"preload",value:function(e){this.parseMPD(),this.updatePreloadSupplier(e),this._updateDeviceInfo(-1);var t=window.devicePixelRatio||1;return this.logger("baseAbr updateDeviceInfo width",this._videoWidth||Number(this.config.width),"height",this._videoHeight||Number(this.config.height),"dpr",t),this.getPreloadBitrate()}}]),e}();xi.SPPED_CACHE=Xi;var Li="ABR_CHANGE_A",Ii="UPDATE_AUTO_DESC",Gi="ABR_START_PROGRESS",Mi="MAX_BUFFER_CHANGE",Yi="ABR_LIMIT_BITRATE",wi="__auto__",Ki=0,_i=1,ji=-1,Hi=0,Pi=1,zi={PLAYBACK_BITRATE:"avg_play_bitrate",DOWNLOAD_BITRATE:"avg_download_bitrate",DOWNLOAD_NETWORK_SPEED:"avg_download_speed",PREDICT_NETWORK_SPEED:"avg_predict_speed",BUFFER_LENGTH:"avg_buffer_length",QOE:"avg_qoe"},Oi=function(e){Z(n,e);var t=W(n);function n(e,U,F,Q,i){var l,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{logger:function(){},openLog:!1};R(this,n),(l=t.call(this,U,F,Q,i,r)).player=e,l.timerId=0,l.isOpenAutoDefi=!!l.autoBitrateOpts.isOpenAutoDefi,l._maxDefinition=l.autoBitrateOpts.maxDefinition||null,l.onPlayrateChange=l._onPlayrateChange.bind(m(l)),l.onPlay=l._onPlay.bind(m(l)),l._stop=l.stop.bind(m(l)),l._bufferRange=new Map,l._sortedBufferRange=[],l._lastCheckResolutionStamp=0,l._currentDefinition=null,l._isSeeking=!1,l._waitingStartTime=0,l._stallCount=0,l._seekState=Ki,l._stallState=Hi,l._videoCurrentTime=0,l._maxBitrate=-1,l.listeners=[{evt:"playbackrateChange",handler:l.onPlayrateChange},{evt:"ended",handler:l._stop},{evt:"error",handler:l._stop},{evt:"timeupdate",handler:l._onTimeUpdate.bind(m(l))},{evt:"addVideoBufferEnd",handler:l._bufferRangeUpdate.bind(m(l))},{evt:"canplay",handler:l._updateAutoDesc.bind(m(l))},{evt:"play",handler:l._onplayStart.bind(m(l))},{evt:Mi,handler:l._onMaxBufferChange.bind(m(l))},{evt:"seeking",handler:l._onSeeking.bind(m(l))},{evt:"seeked",handler:l._onSeekEnd.bind(m(l))},{evt:"waiting",handler:l._onWaiting.bind(m(l))},{evt:"playing",handler:l._onPlaying.bind(m(l))}],l._hasStart=!1,l.listeners.forEach((function(e){var t=e.evt,n=e.handler;l.player.on(t,n)})),l._isPaused=!1,l._hasAddFrament=!1,l._eventInfo={local_time_ms:0,internet_speed:0,buffer_length:0,last_bitrate:0,now_bitrate:0,play_speed:1},l._bitrateSet=[],l._generalInfo={},l._currentInAbr=!1,l._hasCalcTimelineLog=!1,l._abr_play_info={start_play_time_ms:0,is_hint:0,playback_info:{internet_speed_record:[],play_bitrate_record:[],buffer_length_record:[],play_speed_record:[],qoe_record:[],qoe_a_record:[],qoe_b_record:[],qoe_c_record:[]}},l._abrMethod=l.autoBitrateOpts.method||0,l.logger("abr: constructor"),l._loopInterval=l.initInterval,l._tickCount=0,l._fps=30,T.install(),l.startTime=performance.now(),l.logger("time abr",(new Date).getTime()),l._maxCacheTimeVideo=l.config.preloadTime||5,l._maxCacheTimeAudio=l._maxCacheTimeVideo,l._prevDefinitionItem=null,l._currentItem=null,l._switchCount=0,l._switchBitrate=0,l._avgStatItems={};for(var a=Object.keys(zi),d=0;d<a.length;d++){var o=a[d],s=zi[o];l._avgStatItems[s]=new Ai}return l._qoeArgs=[0,0,0,0],l._abrUsed=-1,l._abrAlwaysOn=1,l._prelaodInfo=null,l._hasLogStartInfo=!1,l._hasExecuteAbrAlgo=!1,l._lastExecuteTimeInMs=0,l}return u(n,[{key:"init",value:function(e){return this._mediaList=e,this.isOpenAutoDefi?this.onLoadWasm():this._wasmPromise.resolve(),this._wasmPromise}},{key:"execute",value:function(){return this.listenSize(),this.initFps(),this.onWinElemSizeChange(),this.onPlay()}},{key:"_onSeeking",value:function(){this._isSeeking=!0,this.player.currentTime<this._videoCurrentTime?this._seekState=ji:this._seekState=_i,this.logger("seekState",this._seekState)}},{key:"_onSeekEnd",value:function(){this._isSeeking=!1}},{key:"_onWaiting",value:function(){var e=this;if(!(this._isSeeking||this._waitingStartTime>0)){for(var t=this.player.video.buffered,n=this.player.currentTime,U=!1,F=0;F<t.length;F++){var Q=t.start(F),i=t.end(F);if(Q<=n&&n<i-1&&this.player.readyState<HTMLVideoElement.HAVE_ENOUGH_DATA){U=!0;break}}U&&(this._defaultMaxBitrate||this._underflowBitrate)&&(this.player.emit(Yi),this._underflowBitrate>0&&(this._maxBitrate=this._underflowBitrate)),this._waitingStartTime=(new Date).getTime(),this._stallId=setTimeout((function(){clearTimeout(e._stallId),e._stallCount++,e._stallState=Pi}),200)}}},{key:"_onPlaying",value:function(){this._waitingStartTime=0,this._stallState=Hi,clearTimeout(this._stallId)}},{key:"initFps",value:function(){this.fpsDetection=new T,this.fpsDetection.start(),this._fps=this.fpsDetection.fps,this._hasDeviceInfoChanged=!0}},{key:"listenSize",value:function(){var e,t,n,U;this.mediaElem=this.player.video,this._onWinSizeChange=(e=this.onWinElemSizeChange.bind(this),t=1e3,n=!1,function(){for(var F=this,Q=arguments.length,i=new Array(Q),l=0;l<Q;l++)i[l]=arguments[l];var r=i,a=n&&!U;clearTimeout(U),U=setTimeout((function(){U=null,n||e.apply(F,r)}),t),a&&e.apply(F,r)}),window.addEventListener("resize",this._onWinSizeChange)}},{key:"onWinElemSizeChange",value:function(){if(this.mediaElem){var e=this.mediaElem.getBoundingClientRect();this._videoWidth=Math.floor(e.width),this._videoHeight=Math.floor(e.height),this._hasDeviceInfoChanged=!0}}},{key:"_onMaxBufferChange",value:function(e){var t=e.videoCacheTime,n=e.audioCacheTime;this._maxCacheTimeAudio=n,this._maxCacheTimeVideo=t}},{key:"_onTimeUpdate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._sortedBufferRange&&0!==this._sortedBufferRange.length&&this._currentInAbr){this._videoCurrentTime=this.player.currentTime;var n=Date.now();if(!(n-this._lastCheckResolutionStamp<1e3&&0!==this._lastCheckResolutionStamp)||t){this._lastCheckResolutionStamp=n;for(var U=this.player.currentTime,F=0,Q=this._sortedBufferRange.length-1,i=null;F<=Q;){var l=Math.floor(F+(Q-F)/2),r=this._sortedBufferRange[l];if(U<r.start)Q=l-1;else{if(!(U>=r.end)){i=r;break}F=l+1}}if(i){var a=this._bitrateToDefitionConfig.get(i.bandwidth),d=a&&a.definition;if(this._currentDefinition===d&&!t||!d)return void(d||this.logger("error defintion, mpd配置与接口配置不一致"));this._currentDefinition=d,this._prevDefinitionItem=this._currentItem,this._currentFps=a.fps,this._currentItem=a,this._emitAutoDescChange(d,!1,this._currentFps,a)}}}}},{key:"_emitAutoDescChange",value:function(e,t,n,U){this.player.emit(Ii,{definition:e,reset:t,fps:n,item:U,pre_item:this._prevDefinitionItem})}},{key:"_onplayStart",value:function(){this._hasStart=!0,this.logger("onplaystart")}},{key:"_updateAutoDesc",value:function(){var e=this;this._currentInAbr&&this._currentDefinition&&(this._updateId=setTimeout((function(){clearTimeout(e._updateId),e._emitAutoDescChange(e._currentDefinition,!1,e._currentFps,e._currentItem)}),0))}},{key:"_bufferRangeUpdate",value:function(e){if(void 0!==e.start){null===this._currentItem&&this._onTimeUpdate(null,!0);var t=e.start;this._hasAddFrament=!0,this._bufferRange.set(t,e);var n=E(this._bufferRange.values());this._sortedBufferRange=n.sort((function(e,t){return e.start-t.start})),this.avgStat(zi.DOWNLOAD_BITRATE,e.bandwidth)}}},{key:"_onPlayrateChange",value:function(){this.module&&this.updateBufferInfo()}},{key:"_onPlay",value:function(){var e=this;if(!this.isOpenAutoDefi)return this.logger("onPlay"),0;var t=0;try{this.logger("abr: loadeddata"),this.updateSwitchInfo(),this.parseMPD(),this.updateDeviceInfo();var U=n.getIsPlayAutoDefi(this.autoBitrateOpts);if(this.isOpenAutoDefi&&U){this._abrUsed=1;var F=this._getDefautSpeed(this.player);t=this._loopAbr(F),this.start(),this.logger("time abr start prgress",(new Date).getTime()),this.logger("time abr costTime",performance.now()-this.startTime),this.logger("abr onplay"),this.startTimer=setTimeout((function(){e._loopInterval=e.interval,clearTimeout(e.startTimer),e.logger("interval change")}),5e3)}}catch(Q){this.logger("abr: loadeddata error",Q),this.logger("time abr costTime err",performance.now()-this.startTime)}return t}},{key:"start",value:function(){if(this.logger("abr: start"),this._isPaused=!1,!this._hasCalcTimelineLog){var e=1===Math.floor(100*Math.random());this._abr_play_info.is_hint=e?1:0}this._hasCalcTimelineLog=!0,this._loop()}},{key:"_loop",value:function(){var e=this;this._isPaused||(clearTimeout(this.timerId),this.timerId=setTimeout((function(){if(!e.player.paused||!e.player.config.autoplay&&!e._hasStart){var t=e._hasAddFrament?void 0:e._getDefautSpeed(e.player);e._loopAbr(t)}e._loop()}),this._loopInterval))}},{key:"updateDeviceInfo",value:function(){try{if(this.fpsDetection){var e=this.fpsDetection.fps;e!==this._fps&&(this._fps=e,this._hasDeviceInfoChanged=!0)}this._updateDeviceInfo(this._fps)}catch(t){}}},{key:"updateBufferInfo",value:function(e){var t=this.player.playbackRate,n=this.bufferLength,U=e||Math.floor(this.player.downloadSpeed);this._tickCount<5&&0===U&&(U=this._getDefautSpeed(this.player),this.logger("initSpeed fix"));var F=-1===this._maxBitrate?this._defaultMaxBitrate:this._maxBitrate;return this.logger("maxCacheTimeAudio:",this._maxCacheTimeAudio,"maxCacheVideoTime",this._maxCacheTimeVideo,"seekState",this._seekState,"stallState",this._stallState,"maxBitrate",F),this.module._updateBufferInfo(t,this._maxCacheTimeAudio,this._maxCacheTimeVideo,n,n,U,this._seekState,this.player.currentTime,this._stallState,F),this._seekState=Ki,this._eventInfo={internet_speed:U,buffer_length:n,last_bitrate:this.bitrate,play_speed:t},this.logger("playRate:",t,"buff:",n,"downloadSpeed:",U),{buffer:n,downloadSpeed:U}}},{key:"updateSwitchInfo",value:function(){var e=(new Date).getTime();this._openTimeMs=e,this._abr_play_info.start_play_time_ms=e;var t,n,U=this.player.config.preloadTime||50,F=(n=(t=e).toString(16)).length<=8?{high:0,low:t}:{high:parseInt(n.substr(0,n.length-8),16),low:parseInt(n.substr(n.length-8),16)},Q=this.autoBitrateOpts.noStallCheckTime||5,i=this.openLog;this.logger("openTime:",e,"this.logger",i),this.module._updateSwitchInfo(F.low,F.high,Q,i,this.stall_penalty,this.switch_penalty);var l=this._mediaList.video,r=l.map((function(e){var t=e.bandwidth,n=e.bitrate;return t||n}));this._bitrateSet=r.map((function(e,t){return{bitrate:e,codecs:l[t].codecs||l[t].codec_type}})),this._generalInfo={max_cache_time:U,bitrate_set:this._bitrateSet,segment_duration:this.segment_duration,preload_info:{},startup_info:{}}}},{key:"updatePreloadCacheInfo",value:function(e){try{this._prelaodInfo=e,this.logger("update preloadInfo",e),e&&e.item_num!==e.items.length&&(this.logger("preloadInfo invalid"),this._prelaodInfo=null)}catch(t){this.logger("updatePreloadCacheInfo",t),this._prelaodInfo=null}}},{key:"updatePreloadLogInfo",value:function(e){this._generalInfo.preload_info=e||{}}},{key:"_updatePreloadInfo",value:function(){try{var e=this.player.getPreloadInfos();if(e){var t=e.preloadInfo,n=e.abr;this.updatePreloadLogInfo(t),n&&this.updatePreloadCacheInfo(t)}if(this.logger("_updatePreloadInfo preloadinfos",e),null!=this._prelaodInfo){var U=JSON.stringify(this._prelaodInfo);this.module.ccall("updatePreloadInfo","null",["string"],[U])}else this.logger("_updatePreloadInfo preloadinfo null, no preload")}catch(F){this.logger("_updatePreloadInfo err",F)}}},{key:"_loopAbr",value:function(e){var t;this._tickCount++;var n=[];try{this.updateDeviceInfo();var U=this.updateBufferInfo(e),F=U.downloadSpeed,Q=U.buffer;t=this.module._getPredictedBitrate(this.bitrate,this._abrMethod);for(var i=0;i<7;i++)n.push(this.module.HEAP32[t/Int32Array.BYTES_PER_ELEMENT+i]);var l=n[0],r=1===n[1];this._eventInfo.now_bitrate=l,this._eventInfo.local_time_ms=(new Date).getTime();var a=0;if(l!==this.bitrate&&0!==l){var d=this.bitrate;a=Math.abs(d-l);for(var o=[],s=this.player.video.buffered,B=0;B<s.length;B++)o.push({start:s.start(B),end:s.end(B)});var c=this._videoWidth||Number(this.config.width),R=this._videoHeight||Number(this.config.height),V=(new Date).getTime(),u={speed:"".concat(F," KB/s"),buffer_length:"".concat(Q," s"),video_pos:this.player.currentTime,all_buffers:o,seek_state:this._seekState,stall_state:this._stallState,screen_width:c,screen_height:R,dpr:window&&window.devicePixelRatio,playbackRate:this.player.playbackRate,bitrateSet:this._bitrateSet,abrMethod:this._abrMethod,delta:this._hasExecuteAbrAlgo?V-this._lastExecuteTimeInMs:0};this._lastExecuteTimeInMs=V,this._hasExecuteAbrAlgo=!0,this.player.emit(Li,this.bitrate,l,r,JSON.stringify(u)),this.logger("abr loop predicte:",l,"willStall:",r,"switchBitrate",a,"cur",d),this.bitrate=l}this._hasLogStartInfo||(this._hasLogStartInfo=!0,this._generalInfo.startup_info={predict_bitrate:l,download_speed:F,screen_width:this._videoWidth||Number(this.config.width),screen_height:this._videoHeight||Number(this.config.height),device_pixel_ratio:window&&window.devicePixelRatio,screen_fps:this._fps,startup_method:this._abrMethod}),this.player.emit("ABR_LOOP"),this.onAbrLoop(F,n[2],a,n.slice(3))}catch(h){this.logger("abr error",h),console.log("error",h)}finally{this.module._free(t)}return this.bitrate}},{key:"stop",value:function(){!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&(this._abrAlwaysOn=-1),clearTimeout(this.timerId),this._isPaused=!0,this.logger("abr: stop")}},{key:"destroy",value:function(){var e=this;this._stop(),this.listeners.forEach((function(t){var n=t.evt,U=t.handler;e.player.off(n,U)})),this.player=null,this._heightToDefitionConfig=null,this._bitrateToDefitionConfig=null,this._bufferRange=null,this._sortedBufferRange=null,this.module=null,clearTimeout(this._stallId),clearTimeout(this._updateId),clearTimeout(this.startTimer),window.removeEventListener("resize",this._onWinSizeChange),this.fpsDetection&&this.fpsDetection.stop(),this._maxBitrate=-1,this.player=null}},{key:"eventInfo",get:function(){return this._eventInfo}},{key:"generalInfo",get:function(){return this._generalInfo}},{key:"bufferLength",get:function(){var e=this.player.getBufferedRange(),t=this.player.video.currentTime,n=e[1]-Math.max(e[0],t);return n=Math.max(0,n).toFixed(2),parseFloat(n)}},{key:"downloadSpeed",get:function(){return Math.floor(this.player.downloadSpeed)}},{key:"nowBitrate",get:function(){return this.bitrate}},{key:"openTimeMs",get:function(){return this._openTimeMs}},{key:"isCurrentInAbr",get:function(){return this._currentInAbr},set:function(e){this._currentInAbr=e}},{key:"onAbrLoop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(this._qoeArgs=U,this._currentItem&&this.avgStat(zi.PLAYBACK_BITRATE,this._currentItem.bitrate),this.avgStat(zi.DOWNLOAD_NETWORK_SPEED,1e3*e*8),this.avgStat(zi.PREDICT_NETWORK_SPEED,t),this.avgStat(zi.BUFFER_LENGTH,this.bufferLength),this.avgStat(zi.QOE,this.getQoeRelValue(0)),n>0&&(this._switchCount++,this._switchBitrate+=n),this._abr_play_info.is_hint){var F=this,Q=((new Date).getTime()-this.openTimeMs)/1e3;Q=parseFloat(Q.toFixed(2)),this._abr_play_info.playback_info.internet_speed_record.push([Q,F.downloadSpeed]),this._abr_play_info.playback_info.play_bitrate_record.push([Q,F.nowBitrate]),this._abr_play_info.playback_info.buffer_length_record.push([Q,F.bufferLength]),this._abr_play_info.playback_info.play_speed_record.push([Q,this.player.playbackRate]),this._abr_play_info.playback_info.qoe_record.push([Q,this.getQoeRelValue(0)]),this._abr_play_info.playback_info.qoe_a_record.push([Q,this.getQoeRelValue(1)]),this._abr_play_info.playback_info.qoe_b_record.push([Q,this.getQoeRelValue(2)]),this._abr_play_info.playback_info.qoe_c_record.push([Q,this.getQoeRelValue(3)])}}},{key:"getQoeRelValue",value:function(e){return this._qoeArgs[e]/100}},{key:"avgStat",value:function(e,t){var n=this._avgStatItems[e];n&&n.add(t)}},{key:"getAbrPlayInfo",value:function(){return this._abr_play_info}},{key:"updateAbrMethod",value:function(e){this._abrMethod=e}},{key:"getAbrMethod",value:function(){return this._abrMethod}},{key:"getAbrVVStats",value:function(){for(var e={},t=Object.keys(zi),n=0;n<t.length;n++){var U=t[n],F=zi[U],Q=this._avgStatItems[F];e[F]=Q.avg()}return e.switch_counts=this._switchCount,e.avg_switch_bitrate=0===this._switchCount?0:this._switchBitrate/this._switchCount,e.abr_qoe=this.getQoeRelValue(0),e.abr_qoe_a=this.getQoeRelValue(1),e.abr_qoe_b=this.getQoeRelValue(2),e.abr_qoe_c=this.getQoeRelValue(3),e.abr_method=this._abrMethod,e.abr_used=this._abrUsed,e.abr_always_on=this._abrAlwaysOn,this.logger("abrVVStats",e),e}}],[{key:"getIsPlayAutoDefi",value:function(e){return!!e.isPlayAutoDefi}}]),n}(xi),Ai=function(){function e(){R(this,e),this.total=0,this.count=0}return u(e,[{key:"add",value:function(e){this.total+=e,this.count++}},{key:"avg",value:function(){if(0===this.count)return 0;var e=this.total/this.count;return Math.floor(e)}}]),e}(),qi=function(){function e(t){R(this,e),this.onTick_=t,this.cancelPending_=null}return u(e,[{key:"tickAfter",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.stop();var U=!0,F=null;this.cancelPending_=function(){window.clearTimeout(F),U=!1};return F=window.setTimeout((function(){U&&(t.onTick_(),n&&n())}),1e3*e),this}},{key:"tickEvery",value:function(e){var t=this;this.tickAfter(e,(function(){t.tickEvery(e)}))}},{key:"stop",value:function(){this.cancelPending_&&(this.cancelPending_(),this.cancelPending_=null)}}]),e}(),$i={stallSkip:.1,stallCount:3,stallTimer:1,failCount:2},el=function(){function e(t,n){var U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;R(this,e),this.player=t,this.mediaElem=t.video,this.config=Object.assign({},n,$i),this.timer=new qi((function(){U.onGapJump()})),this.inBufferTimer=new qi((function(){U._onBufferStallCheck()})),this.prevReadyState=this.mediaElem.readyState,this.didFireLargeGap=!1,this.seekingEventReceived=!1,this.segmentAppended=!1,this.onWaitFunc=this._onWaiting.bind(this),this.onPlayFunc=this._onPlay.bind(this),this.onPlayingFunc=this._onPlaying.bind(this),this.onPausedFunc=this._onPaused.bind(this),this.isSafari=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),this.hasPlayed=!1,this.lastVideoTime=-1,this.hasPaused=!1,this.resumeFromPaused=!1,this.stallSkip=this.config.stallSkip,this.stallCount=this.config.stallCount,this.stallTimer=this.config.stallTimer,this.reset(),this.requests=F,this.player.on(It,(function(e){U.requests=e})),!1!==this.config.useGapJump&&this._start()}return u(e,[{key:"reset",value:function(){this.stallPoints={}}},{key:"_onWaiting",value:function(){this.onGapJump();var e=this.player.currentTime;this.onRequestFail(e)}},{key:"onRequestFail",value:function(e){if(this.requests){var t=this.requests.video,n=this.requests.audio,U=this._checkIfNextRequestFailed(e,t),F=this._checkIfNextRequestFailed(e,n);if(U.result||F.result){var Q=U.result?U.end:F.end;Q=Q<this.player.duration-.5?Q+.5:this.player.duration,this.player.currentTime=Q,this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap_req",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*Q)}})}}}},{key:"_checkIfNextRequestFailed",value:function(e,t){for(var n=0;n<t.length;n++){var U=t[n],F=U.start-e<1.5,Q=U.start<=e&&e<=U.end,i=403!==(null==U?void 0:U.response.status);if(F&&Q&&U.count>=this.config.failCount&&i)return{end:U.end,result:!0}}return{result:!1}}},{key:"_onPlay",value:function(){this.hasPlayed=!0}},{key:"_onPaused",value:function(){this.hasPaused=!0}},{key:"_onPlaying",value:function(){this.hasPaused&&(this.hasPaused=!1,this.resumeFromPaused=!0)}},{key:"_start",value:function(){this.mediaElem.addEventListener("waiting",this.onWaitFunc),this.mediaElem.addEventListener("play",this.onPlayFunc),this.mediaElem.addEventListener("playing",this.onPlayingFunc),this.mediaElem.addEventListener("pause",this.onPausedFunc),this.timer.tickEvery(.25),this.inBufferTimer.tickEvery(this.stallTimer)}},{key:"onSegmentAppend",value:function(){this.segmentAppended=!0,this.onGapJump()}},{key:"onSeeking",value:function(){this.seekingEventReceived=!0,this.segmentAppended=!1,this.didFireLargeGap=!1}},{key:"onGapJump",value:function(){if(this.mediaElem.readyState!==HTMLMediaElement.HAVE_NOTHING){if(this.mediaElem.seeking){if(!this.seekingEventReceived)return}else this.seekingEventReceived=!1;if(!this.mediaElem.paused||0===this.mediaElem.currentTime||!this.hasPlayed){this.mediaElem.readyState!==this.prevReadyState&&(this.didFireLargeGap=!1,this.prevReadyState=this.mediaElem.readyState);var t=this.mediaElem.buffered,n=this.config.smallGapLimit||1,U=this.config.gapDetectionThreshold||.5,F=this.mediaElem.currentTime,Q=this._getIndex(t,F,U);if(null!==Q&&(0!==Q||this.segmentAppended)){var i=t.start(Q);if(!(i>this.mediaElem.duration)){var l=i-F,r=l<=n;l<e.BROWSER_GAP_TOLERANCE||r&&(this.mediaElem.currentTime=this.isSafari?i+.1:i,pt.gap("gapJump gapIndex",Q,"isGapSamll",r,"jumpLargeGap",!1,"currentTime",this.mediaElem.currentTime),.08!==i&&this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*i)}}))}}}}}},{key:"_onBufferStallCheck",value:function(){if(this.mediaElem&&!this.mediaElem.paused&&!this.mediaElem.ended&&0!==this.mediaElem.playbackRate&&0!==this.mediaElem.buffered.length){for(var e=this.mediaElem.currentTime,t=this.mediaElem.buffered,n=!1,U=[],F=0;F<t.length;F++){var Q=t.start(F),i=t.end(F);U.push({start:Q,end:i}),e<Q-.1||(e>i-.5||(n=!0))}var l=this.mediaElem.buffered,r=l.length;r>0&&this.mediaElem.duration===l.end(r-1)&&(n=!0);var a=this.mediaElem.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA;if(n&&a&&this.lastVideoTime===e&&!this.resumeFromPaused&&this.mediaElem.currentTime<this.mediaElem.duration)try{void 0===this.stallPoints[e]&&(this.stallPoints[e]=0),this.stallPoints[e]++,this.stallPoints[e]>this.stallCount&&(this.mediaElem.currentTime<this.mediaElem.duration-this.stallSkip?this.mediaElem.currentTime+=this.stallSkip:this.mediaElem.currentTime=this.mediaElem.duration,console.warn("in buffer stall, small seek",this.lastVideoTime,e,U))}catch(d){}this.lastVideoTime=e,this.resumeFromPaused=!1}}},{key:"_getIndex",value:function(e,t,n){if(!e||!e.length)return null;if(1===e.length&&e.end(0)-e.start(0)<1e-6)return null;for(var U=this._getBuffered(e),F=null,Q=0;Q<U.length;Q++){if(U[Q].start>t&&(0===Q||U[Q-1].end-t<=n)){F=Q;break}}return F}},{key:"_getBuffered",value:function(e){if(!e)return[];for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}},{key:"destroy",value:function(){this.mediaElem.removeEventListener("waiting",this.onWaitFunc),this.mediaElem.removeEventListener("play",this.onPlayFunc),this.mediaElem.removeEventListener("playing",this.onPlayingFunc),this.mediaElem.removeEventListener("pause",this.onPausedFunc),this.timer.stop(),this.timer=null,this.inBufferTimer.stop(),this.inBufferTimer=null}}]),e}();el.BROWSER_GAP_TOLERANCE=.001;var tl=Yt,nl=function(){function e(t){var n=this;R(this,e),h(this,"_onChangeConfig",(function(e){if(e){var t,U=e.nextBufferLength===(null===(t=n.config)||void 0===t?void 0:t.minBufferLength);if(n._nextBufferLength=e.nextBufferLength,e.nextBufferLength&&!U)try{n.loadData()}catch(F){}}})),h(this,"startProgressTimer",(function(){n._pluginInst.info({msg:"startProgressTimer"});var e=n;n._loadDataTime=0;var t=n.player,U=n.config;t&&e&&e.isDashCanUse&&e.dash.mse&&(e.dash.mse.progressTimer=new C,e.dash.mse.progressTimer.repeat((function(){n._checkAndLoadData("timer")}),1e3*U.tickInSeconds||U.progressTimer||Jt),n._startCheckBufferBreakTimer(),n.player.on(r.Events.TIME_UPDATE,n._onTimeUpdate))})),h(this,"_onTimeUpdate",(function(){var e,t;n.isDashCanUse&&n.config.dashOpts&&null!==(e=n.dash)&&void 0!==e&&e.mse&&(n._checkAndLoadData("timeupdate"),n.isEnded(),null===(t=n.dash)||void 0===t||t.onTimeUpdate(),n._seekingCheckBuffer())})),h(this,"_checkAndLoadData",(function(){var e=n.config;if(n.isDashCanUse&&n.dash.mse&&n.dash.mse.progressTimer){var t=1e3*e.tickInSeconds||e.progressTimer||Jt,U=WU.nowTime();U-n._loadDataTime>=t&&(n._loadDataTime=U,n.checkRemoveBuffer(),n.handleUrlExpire(),n.loadData(void 0),n.isEnded())}})),h(this,"_onAutoDescChange",(function(e){var t=e.definition,U=e.reset,F=e.fps,Q=e.item;n.updateAutoDefiDesc(t,U,F,Q)})),this._pluginInst=t.pluginInst;var U=this._pluginInst,F=U.player,Q=U.config;this._minDuration=1/0,this.player=F,this.config=Q,this.startTimestamp=(new Date).getTime(),this.lastDefiIdx=void 0,this.__isDashCanUse=!1,this.preloadBufferThreshold=this.config.preloadBufferThreshold||.5,this.abrInstance=null,this.definitions=[];var i=this.config.autoBitrateOpts||{};this.isPlayAutoDefi=Oi.getIsPlayAutoDefi(i),this.isOpenAutoDefi=!!i.isOpenAutoDefi,this.isCurrentAutoDefi=this.isOpenAutoDefi&&this.isPlayAutoDefi,this.bitrateMap={},this.curBitrate=0,this.defiIdMap={},this.definition2item={},this.bandwidth2item={},(this.preloadBufferThreshold<=0||this.preloadBufferThreshold>1)&&(this.preloadBufferThreshold=.5),this.curVideoInitSegmentIdx=-1,this.getPlayInfoTimestamp=this.startTimestamp/1e3;var l=Q.dashOpts.dynamic_video.dynamic_video_list,a=Q.dashOpts.dynamic_video.dynamic_audio_list;l&&l.length>0?this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_video_list[0].url_expire||0:a&&a.length>0&&(this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_audio_list[0].url_expire||0),this.gapJumpInst=new el(F,Q),WU.on(F,"addVideoBufferEnd",(function(){n.gapJumpInst.onSegmentAppend()}),"dashDestroy"),this._nextBufferLength=this.config.nextBufferLength,WU.on(F,Rn.CHANGE_FLYING_PLUGIN_CONFIG,this._onChangeConfig,"dashDestroy"),this._lastRemoveTimestamp=0}var t,n;return u(e,[{key:"initDash",value:function(e){var t=this;this.dash=e;var n=this.config;n.dashOpts.dynamic_video.dynamic_video_list.length>0&&(this.initAbr(),n.dashOpts.dynamic_video.dynamic_video_list.sort((function(e,t){return t.vheight-e.vheight})),n.dashOpts.dynamic_video.dynamic_video_list.forEach((function(e,U){e.definition===n.defaultDefinition&&(t.dash.selectedIdx=U)})),this.dashVideoEncrypted=n.dashOpts.dynamic_video.dynamic_video_list.some((function(e){return!!e.kid}))),n.dashOpts.dynamic_video.dynamic_audio_list.length>0&&(this.dashAudioEncrypted=n.dashOpts.dynamic_video.dynamic_audio_list.some((function(e){return!!e.kid})))}},{key:"isDashCanUse",get:function(){return this.__isDashCanUse},set:function(e){this.__isDashCanUse=e}},{key:"encryptedType",get:function(){return this.dashVideoEncrypted||this.dashAudioEncrypted?this.config.useEME?1:2:0}},{key:"isEnded",value:function(){var e=this.dash,t=this.player,n=this.mse,U=this.config;if("vod"===e.type)if(t.ended)pt.log("player.ended === true"),"safari"===r.Sniffer.browser&&(t.pause(),t.emit("ended"));else{var F=U.duration||t.duration||e.mpd.duration;if(t.duration&&(F=Math.min(F,t.duration)),e.mpd.duration&&(F=Math.min(F,e.mpd.duration)),F-this._minDuration<10&&(F=Math.min(F,this._minDuration)),F>0&&F-t.currentTime<1){var Q=this._findRangeForPlaybackTime(t.currentTime)||{start:0,end:0};pt.log("range",Q,"current",t.currentTime,"duration",F);var i=Math.min(Q.end,t.duration),l=t.currentTime-i>=0&&Q.end>0,a=i-t.currentTime<1&&Q.end>0;(l||a)&&(pt.log("isEnded execute, isOver",l,"isClosed",a),console.log("isEnded execute, isOver",l,"isClosed",a),n.endOfStream(),this.clearProgressTimer())}}}},{key:"dashDestroy",value:function(){var e=this.player,t=this.dash;for(var n in t&&t.mse&&t.mse.unbindMedia&&t.mse.unbindMedia(),t&&t.eme&&(t.eme.emit("destroy"),t.eme.destroy()),t&&e.errorHandler&&(t.abortLoadingTasks(),t.emit("destroy")),t&&t.mpd&&t.mpd.timer&&(clearTimeout(t.mpd.timer),t.mpd.timer=null),this.crypto&&this.crypto.destroy(),t&&t.destroy(),this.clearCheckCanplayTimer(),this.clearProgressTimer(),this.clearBufferBreakTimer(),this.destroyAbr(),this.gapJumpInst&&this.gapJumpInst.destroy(),e&&(this.player.off(r.Events.TIME_UPDATE,this._onTimeUpdate),e.__dash__=null,this._pluginInst.unloadVideo(),"function"==typeof e.video.setMediaKeys&&e.video.setMediaKeys(null).catch((function(){}))),t)delete t[n];for(var U in this)delete this[U]}},{key:"bindComEvent",value:function(){var e=this;this._lastSeekTime=null;var t=this.player,n=this.config;WU.on(t,"error",e.clearProgressTimer.bind(e),"dashDestroy"),WU.on(t,"ended",e.clearProgressTimer.bind(e),"dashDestroy"),WU.on(t,"ended",(function(){e.ended=!0}),"dashDestroy");var U=function(){var U=c(o().mark((function U(){var F,Q,i,l,r,a,d,s,B,c;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:if(pt.log("dash onSeeking",t.currentTime,"duration",t.duration),e.isDashCanUse&&n.dashOpts&&e.mse){U.next=3;break}return U.abrupt("return");case 3:if(Q=e.ended,e.ended=t.ended,!Q){U.next=8;break}return this.isOpenAutoDefi?this._pluginInst.next(t.currentTime,"NEXT",t.config.DASHPlugin,!0):e.startProgressTimer(),U.abrupt("return");case 8:if(i=t.getBufferedRange(t.buffered)[1],l=0===i,pt.log("dash onseeking, bufferEnd:".concat(i,", outBuffer:").concat(l,", \n switching:").concat(e.switching,", isFull:").concat(null===(F=e.mse)||void 0===F?void 0:F.isFull(Ge.VIDEO))),!l||e.switching){U.next=16;break}return e.abortLoading=!0,U.next=15,e.dash.abortLoadingTasks();case 15:pt.log("dash cancel loading task execute");case 16:if(e.dash){U.next=18;break}return U.abrupt("return");case 18:if(e.seekingCurSegment=e.dash.mpd.getCurSegment(),e.dash.mpd.setSegmentIndexByTime(t.currentTime),e.mse){U.next=22;break}return U.abrupt("return");case 22:if((r=e.mse).isFull&&(r.isFull(Ge.VIDEO)||r.isFull(Ge.AUDIO)))e.checkRemoveBuffer(!0,!0);else if(!l&&n.removeBufferWhenSeekInBuffer)try{a=t.getBufferedRange(e.mse.buffered("video"))[1],d=t.getBufferedRange(e.mse.buffered("audio"))[1],e._clearBufferByTime(Math.max(a,d),t.duration)}catch(o){}e.abortLoading=!1,l&&e._checkAndLoadData(),s=n.useDurationBackoff||!1,B=Date.now()/1e3,c=t.duration-t.currentTime<1,s&&c&&(!this._lastSeekTime||this._lastSeekTime<B-1)&&(this._lastSeekTime=B,t.currentTime=t.duration-1),e.gapJumpInst&&e.gapJumpInst.onSeeking(),l&&e.dash.clearFailedSegment();case 32:case"end":return U.stop()}}),U,this)})));return function(){return U.apply(this,arguments)}}();WU.on(t,"seeking",U,"dashDestroy");WU.on(t,"seeked",(function(){pt.log("dash onSeeked",t.currentTime),e.seeking=!1,e.isEnded(),e.dash.isAllAppend()&&(e.mse.endOfStream(),pt.log("dash seeked endofstream"))}),"dashDestroy"),WU.on(t,"dashDestroy",e.dashDestroy.bind(this))}},{key:"_seekingCheckBuffer",value:function(){var e=this;if(this.dash)for(var t=[Ge.VIDEO,Ge.AUDIO],n=0;n<t.length;n++)for(var U=t[n],F=this.dash.mpd.getBuffered(U),Q=function(){var t=F[i],n=e.player.currentTime,Q=t.start<=n&&n<=t.end;if(!Q&&t.end-t.start<.5){pt.log("remove buffer _seekingCheckBuffer",t.start,t.end,"curTime",n,"inBuffer",Q,"mediaType",U,"mediaBuffered",F);var l=e.removeBuffer(U,t.start,t.end);l&&l.catch((function(e){pt.log("_seekingCheckBuffer start",t.start,"end",t.end,e.message)}))}},i=0;i<F.length;i++)Q()}},{key:"destroy",value:function(){this.player.emit("dashDestroy")}},{key:"_findRangeForPlaybackTime",value:function(e){var t=this.player.buffered;if(t)for(var n=0;n<t.length;n++)if(WU.round(t.start(n))<=WU.round(e)&&WU.round(t.end(n))>=WU.round(e))return{start:WU.round(t.start(n)),end:WU.round(t.end(n)),rawStart:t.start(n),rawEnd:t.end(n)}}},{key:"loadData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this,U=this.player,F=this.config;if(n.switching||n.abortLoading)pt.log("loadData switching",n.switching);else if(n.dash){var Q,i=F.maxBufferLength||F.preloadTime||50,l=n.dash.mpd.mediaList.video;if(l&&l.length>0&&l[l.selectedIdx]){var r=l[l.selectedIdx].bandwidth;Q=l[l.selectedIdx].definition||this.bandwidth2item[r].definition}if(F.dynamicPreloadTimeOpts&&Q){var a=F.dynamicPreloadTimeOpts[Q];a&&(i=a)}var d=!1;U.paused&&(d=!0),i=d?U.isInstNext&&this._nextBufferLength>=0?this._nextBufferLength:F.minBufferLength:n.dash.getAdaptCacheBuffer(i),n.preloadTime!==i&&(n.preloadTime=i,pt.log("maxCacheTimeAudio change",i),U.emit(Mi,{videoCacheTime:i,audioCacheTime:i})),e||(e=U.currentTime);var o=this._findRangeForPlaybackTime(e),s=o&&Math.ceil(Math.max(o.end,o.rawEnd))||Math.floor(e);if(n.dash.isOpenPCDN((null==o?void 0:o.end)||0),!(s>e+i)){var B=n.dash.getPCDNInOutBuffer(),c={force_set_min:d,buffer_dur:i,load_size:-1,load_tar_dur:-1,load_dur:-1,in_buf:B.PCDNInBuffer||-1,out_buf:B.PCDNOutBuffer||-1};n.dash.pushDynamicBufferServiceRes(c),n.dash.seek(s,U.currentTime,t,i)}}}},{key:"startCheckCanplayTimer",value:function(){var e=this,t=this.player,n=this.config;if(t&&e&&!n.disableCanplayCheck){e.checkCanplayTimer=new C,e.checkCanplayTimer.repeat((function(){t&&e&&e.isDashCanUse&&e.checkCanplayTimer&&t.errorHandler&&(t.enterIsHide?(pt.log("视频已起播,重置标记"),e.dashNoCanplay=0,e.clearCheckCanplayTimer()):e.dashNoCanplay||"visible"!==document.visibilityState||(e.dashNoCanplay=1,pt.log("未起播计时开始!持续".concat(mt,"毫秒没有获取到init分片则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===t.enterIsHide&&(t.dashState!==Tt?(e.dashNoCanplay=2,pt.log("确认未获取到init分片,没有起播!!!"),e.clearCheckCanplayTimer(),t.errorHandler(new LF(Je,me.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"}))):n.disableDashNoCanplayCheck||(pt.log("未起播计时开始!持续".concat(1e4,"毫秒则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===t.enterIsHide&&(e.dashNoCanplay=2,pt.log("确认没有起播!!!"),e.clearCheckCanplayTimer(),t.errorHandler(new LF(Je,me.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"})))}),1e4)))}),mt)))}),n.progressTimer||Jt)}}},{key:"clearCheckCanplayTimer",value:function(){this.checkCanplayTimer&&(this.checkCanplayTimer.clear(),this.checkCanplayTimer=null),this.dashNoCanplayTimer&&(clearTimeout(this.dashNoCanplayTimer),this.dashNoCanplayTimer=null,this.dashNoCanplay=void 0)}},{key:"clearBufferBreakTimer",value:function(){this.bufferCheckTimer&&(clearTimeout(this.bufferCheckTimer),this.bufferCheckTimer=null)}},{key:"handleUrlExpire",value:function(){var e;null===(e=this._pluginInst)||void 0===e||e.handleUrlExpire(this)}},{key:"_startCheckBufferBreakTimer",value:function(){var e=this;this.config.disableBufferBreakCheck||(this.clearBufferBreakTimer(),this.bufferCheckTimer=setTimeout((function(){e._onBufferBreakCheck(),e._startCheckBufferBreakTimer()}),Jt))}},{key:"_onBufferBreakCheck",value:function(){var e=this,t=this.player,n=this.config;n?n.disableBufferBreakCheck||(Math.abs(t.currentTime-(e.lastCurrentTime||0))>.1||t.paused?1!==e.dashBufferBreak&&2!==e.dashBufferBreak||(pt.log("视频没有卡死,重置卡死标记"),e.dashBufferBreak=0,clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null):e.dashBufferBreak||(e.dashBufferBreak=1,pt.log("卡死计时开始!持续".concat(n.waitingTimeOut,"毫秒则确认卡死")),e.dashBufferBreakTimer=setTimeout((function(){if(1===e.dashBufferBreak){e.dashBufferBreak=2,pt.log("确认卡死!!!");var t=document.hidden||"hidden"===document.visibilityState?me.WAITING_TIMEOUT_ERROR:me.BUFFERBREAK_ERROR;e.dash.emit("error",new LF(Je,t))}e.dashBufferBreakTimer=null}),n.waitingTimeOut)),e.lastCurrentTime=t.currentTime):this.clearBufferBreakTimer()}},{key:"_isMseFull",value:function(){return!(!this.mse||!this.mse.isFull)&&(this.mse.isFull(Ge.VIDEO)||this.mse.isFull(Ge.AUDIO))}},{key:"checkRemoveBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.player,U=this.config,F=(new Date).getTime(),Q=this._isMseFull(),i=e||Q;if(!(F-this._lastRemoveTimestamp<1e3*U.removeBufferLen)||i){this._lastRemoveTimestamp=F;var l=n.currentTime,r=n.getBufferedRange(),a=r&&r[0]>=0&&l-r[0]>U.removeBufferLen;pt.log("checkRemoveBuffer","mseFull",Q,"force",e,"needRemove",a),(i||a)&&this._clearBuffer(i,t)}}},{key:"_checkBufferFull",value:function(e){var t=this;clearTimeout(this._fullTimer),this._isMseFull()&&(this._fullTimer=setTimeout((function(){clearTimeout(t._fullTimer),t._clearBuffer(!0)}),1e3*e))}},{key:"_clearBuffer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=this.player;if(this.isDashCanUse&&this.mse){var F=U.getBufferedRange()[1]>0,Q=U.currentTime,i=WU.getBufferData(null==U?void 0:U.buffered,Q),l=i.beforeBufLen,r=i.afterBufLen,a=i.beforeLastBuffEnd,d=i.afterFirstBuffEnd,o=i.afterFirstBuffStart;F||(Q=Q-a<15?a:Q);var s=this._findClosetGop(Q,!1),B=t&&n&&!F,c=B?.1:5;if(s&&this._clearBufferByTime(0,s,(function(t){B&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})),t){pt.log("clearBuffer isFull","isSeeking",n,"isInBuffer",F,"beforeBufLen",l,"afterBufLen",r,"afterFirstBuffEnd",d,"afterFirstBuffStart",o,"beforeLastBuffEnd",a);var R=0,V=0;if(n&&!F){if(V=this._findClosetGop(o,!0,2),R=this._findClosetGop(d,!1,1),pt.log("clearBuffer isFull removeStart",V,"removeEnd",R),0===l){for(var u=this.player.video.buffered,h=0,Z=u.length-1;Z>=0;Z--){var S=u.start(Z),p=u.end(Z);if((h+=p-S)>10){V=WU.round(S),R=WU.round(p);break}}pt.log("clearBuffer isFull beforeBufLen 0 removeStart",V,"removeEnd",R)}V<R?this._clearBufferByTime(V,R,(function(t){B&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})):this._checkBufferFull(c)}else this._checkBufferFull(c)}}}},{key:"_findClosetGop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,U=this.dash.mpd.mediaList.video;U[U.selectedIdx]||(U=this.dash.mpd.mediaList.audio);var F=U[U.selectedIdx].mediaSegments;if(t){for(var Q=0,i=0;i<F.length;i++)if(F[i].startRaw>e&&++Q>n)return F[i].start}else for(var l=0,r=F.length-1;r>-1;r--)if(F[r].endRaw<e&&++l>n)return F[r].end}},{key:"_getFirstGopEnd",value:function(){var e=this.dash.mpd.mediaList,t=e.video.length>0,n=this.dash.mpd.mediaList.audio.length>0,U=0;if(t){var F=e.video[e.video.selectedIdx].mediaSegments[0].end;U=Math.max(U,F)}if(n){var Q=e.audio[e.audio.selectedIdx].mediaSegments[0].end;U=Math.max(U,Q)}return{clearMinStart:U,hasVideo:t,hasAudio:n}}},{key:"clearBufferDirect",value:function(e,t,n){if(!(t>=n)){var U=this.removeBuffer(e,t,n);U&&U.catch((function(){pt.log("mediaType",e,"catch clearBufferDirect start: ".concat(t," end: ").concat(n))}))}}},{key:"_clearBufferByTime",value:function(e,t,n){var U=this,F=[],Q=this._getFirstGopEnd(),i=Q.clearMinStart,l=Q.hasVideo,r=Q.hasAudio;e=Math.max(i,e),pt.log("removeBuffer clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(i));var a=this.getBufferDur();if(e>t)return pt.log("clearBuffer return clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(i)),void n({removeDur:0});if(l){var d=this.removeBuffer(Ge.VIDEO,e,t);d&&F.push(d)}if(r){var o=this.removeBuffer(Ge.AUDIO,e,t);o&&F.push(o)}Promise.all(F).then((function(){var e=U.getBufferDur(),t=a-e;t>0&&(U.player.emit("removeBuffer",{removeDur:t}),pt.log("removeBuffer dur,",t,"oldTotalBuffer",a,"newTotalBuffer",e),U.player.emit("removeBufferEnd"),n&&n({removeDur:t}))})).catch((function(e){pt.log("removeBuffer error",e),n&&n({removeDur:0})}))}},{key:"removeBuffer",value:function(e,t,n){if(this.dash.mpd.clearBuffer(t,n,e),this.mse.remove&&!this._pluginInst.softVideo){var U=this.mse.remove(e,t,n);return U&&U.catch((function(){})),U}return null}},{key:"getBufferDur",value:function(){var e;if(null===(e=this.player)||void 0===e||!e.buffered)return 0;for(var t=this.player.buffered,n=0,U=0,F=t.length;U<F;U++)n+=t.end(U)-t.start(U);return n}},{key:"abort",value:function(e){if(this.mse&&this.mse.abort&&this.dash.mpd.mediaList[e].length>0){var t=this.mse.abort(e,{mediaType:e});t&&t.catch((function(){}))}}},{key:"clearProgressTimer",value:function(){this.isDashCanUse&&this.dash.mse&&this.dash.mse.progressTimer&&(this.dash.mse.progressTimer.clear(),this.dash.mse.progressTimer=null),this.dashBufferBreakTimer&&(clearTimeout(this.dashBufferBreakTimer),this.dashBufferBreakTimer=null,this.dashBufferBreak=void 0)}},{key:"emitMenuResolutionChange",value:function(){var e=this.player;try{var t=this.dash.mpd.mediaList.video;if(t){var n=t[t.selectedIdx],U={width:n.width,height:n.height};e.emit("RESOLUTION_UPDATE",U)}else e.emit("RESOLUTION_UPDATE")}catch(F){e.emit("RESOLUTION_UPDATE")}}},{key:"updateDashType",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=X.getItem(wt),U=Mt;e=t||n===U.BACK?U.MAIN:U.BACK,X.setItem(wt,e)}},{key:"changeMainBackUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:tl.INIT;if(!(arguments.length>1&&void 0!==arguments[1]&&arguments[1])&&this._pluginInst){var t=this._pluginInst.config,n=X.getItem(wt),U=!1;if((e===tl.INIT&&n===Mt.BACK||e===tl.ERR)&&(U=!0),pt.log("curDashType",n,"changeState",e,"needChange",U),U){var F=t.dashOpts.dynamic_video.main_url,Q=t.dashOpts.dynamic_video.backup_url_1;t.dashOpts.dynamic_video.main_url=Q,t.dashOpts.dynamic_video.backup_url_1=F,WU.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_video_list),WU.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_audio_list)}var i=t.dashOpts.dynamic_video.main_url;return this._checkUrlRange(i),t}}},{key:"_checkUrlRange",value:function(e){var t=this._pluginInst.config,n=t.url_range_domains||[],U=WU.validateUrlRange(n,e);t.useUrlRange=U}},{key:"updateAutoDefiDesc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=this.player,Q=(this.config.autoBitrateOpts||{}).autoDefiText||"auto";F.emit("ABR_AUTO_DESC_CHANGE",Q,t?void 0:e,n,U),t||this._pluginInst.setCurrentDefitionInfos("自动 ".concat(e),U)}},{key:"_abrLoadMetaSuccess",value:function(e,t,n){var U=this,F=this.dash,Q=this.config,i=F.mpd.mediaList.video;this.abrInstance&&this.abrInstance.updateBitrate(U.defiIdMap[e].bitrate),n&&(this.lastDefiIdx=e),U.selectedIdx=t,Q.defaultDefinition=i[U.selectedIdx].definition}},{key:"_startLoadInitSegment",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=new x,F=this,Q=this.dash,i=this.config;if(!Q.mpd)return pt.log("_startLoadInitSegment dash.mpd is null"),void U.reject();var l=Q.mpd.mediaList.video,r=l.selectedIdx;return l.every((function(Q,a){if(Q.id===e){r=a,F.switching=!0;var d=l[r].wrapperData;if(d)(F.dashVideoEncrypted||F.dashAudioEncrypted)&&!1===i.useEME&&F.crypto&&F.crypto.updateHeaderId(),t._abrLoadMetaSuccess(e,r,n),U.resolve(d);else{F._makeInitSegemntRequestWithRetry("video",r,!1,(function(){F.switching=!1})).then((function(F){t._abrLoadMetaSuccess(e,r,n),U.resolve(F)})).catch((function(e){F.switching=!1,pt.log("_makeInitSegemntRequestWithRetry",JSON.stringify({msg:e.message}))}))}return!1}return!0})),U}},{key:"setCurrentDefinition",value:function(){try{var e=this.dash,t=e.mpd.mediaList.video,n=t[t.selectedIdx],U=n.definition,F=n.bandwidth;this._pluginInst.setCurrentDefitionInfos(U,this.definition2item[U]),e.updateDynamicBufferServiceBitrate(F),e.checkPCDN()}catch(Q){console.log("setCurrentDefinition error",Q)}}},{key:"_emitDefinitionChangeDetailEvent",value:function(e){this.player.emit("definitionChangeDetail",e)}},{key:"setPlayerCurDefinition",value:function(e){var t=this._pluginInst.player;if(t.curDefinition=e,t.curDefinition){var n=this.dash.mpd.mediaList.audio,U=n[n.selectedIdx],F=this.config.dashOpts.dynamic_video.dynamic_audio_list;if(F.length>0)try{t.curDefinition.audioDefinition=F.filter((function(e){return e.main_url===U.baseURL}))[0]}catch(Q){pt.log("setAudioFaild",Q)}}}},{key:"switchURL",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],U=this,F=this._pluginInst.player;if(e){var Q=e.toString();e=Q.split("/")[Q.split("/").length-1];var i=U.definitions.filter((function(t){return t.url===e}))[0];if(i){this.setPlayerCurDefinition(i);var l=e===wi;if(pt.log("switchURL",e,n),l)return U.abrInstance.start(),U.isCurrentAutoDefi=!0,U.abrInstance.isCurrentInAbr=!0,void setTimeout((function(){U.abrInstance._onTimeUpdate(null,!0)}));U.isCurrentAutoDefi&&(U.updateAutoDefiDesc("",!0),U.isCurrentAutoDefi=!1,U.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi),n&&U.abrInstance.stop(!0),U._startLoadInitSegment(e,!0).then(function(){var e=c(o().mark((function e(n){var Q,i,l,a,d,s,B,c,R,V;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.selectedIdx===n.newIdx){e.next=3;break}return pt.log("definitionSwitchTime cancel, current:",U.selectedIdx,"self",n.newIdx),e.abrupt("return");case 3:return i=U.dash,l=i.mpd.mediaList.video,e.next=7,U._switch(n.newIdx);case 7:if(a=e.sent,d=F.currentTime,s=null,s=l[a||0].mediaSegments.find((function(e){return e.start-d>2.5})),B=!1,s||(c=l[a||0].mediaSegments,s=c[c.length-1],B=!0),s){e.next=15;break}return e.abrupt("return");case 15:R=WU.round(s.start),V=WU.round(F.getBufferedRange(F.buffered)[1]),pt.log("切换清晰度 curTime: ".concat(d," start: ").concat(R," end: ").concat(V)),U.setCurrentDefinition(),U.isCurrentInAbr()||(pt.log("definitionSwitchTime emit, current",U.selectedIdx),F.emit("definitionSwitchTime",R)),t._emitDefinitionChangeDetailEvent({start:R,bitrate:null===(Q=l[n.newIdx])||void 0===Q?void 0:Q.bandwidth,mediaType:Ge.VIDEO,definition:n.definition,url:n.url,fileid:n.fileId}),V-R>0&&"safari"!==r.Sniffer.browser&&!B&&(pt.log("removeBuffer: ".concat(R," ").concat(V)),U.removeBuffer(Ge.VIDEO,R,V)),U._appendInitSegment("video",n,n.newIdx).then((function(){pt.log("switchURL appendInitSegment",n.newIdx),U.switching=!1,U.loadData((s.start+s.end)/2,Gt),U.emitMenuResolutionChange(),U.dash.clearFailedSegment()}));case 23:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}}}},{key:"abrSwitchURL",value:function(e){var t=this,n=this.dash,U=this.player;e=e.split("/")[e.split("/").length-1],pt.log("abrSwitchURL",e),this._startLoadInitSegment(e).then(function(){var e=c(o().mark((function e(F){var Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=n.mpd.mediaList.video,e.next=3,t._switch(F.newIdx);case 3:if(i=e.sent,l=U.getBufferedRange(U.buffered)[1],r=Q[i].mediaSegments.find((function(e){return e.start-l>=0}))){e.next=8;break}return e.abrupt("return");case 8:a=0===l?U.currentTime:(r.start+r.end)/2,t._pluginInst.info({msg:"abr switch",data:{bd:Q[i].definition,d:Q[F.newIdx].definition,start:0===l?U.currentTime:r.start},add:!0}),t.setCurrentDefinition(),t._appendInitSegment("video",F,F.newIdx).then((function(){pt.log("abrSwitchURL appendInitSegment",F.newIdx),t.switching=!1,t.loadData(a,Gt)})).catch((function(e){pt.log("appendInitSegment",e)}));case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){pt.log("startLoadInitSegemnt",e)}))}},{key:"_switch",value:(n=c(o().mark((function e(t){var n,U,F,Q;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.dash,U=n.mpd.mediaList.video,F=U.selectedIdx,U.selectedIdx=t,this.abort(Ge.VIDEO),e.next=7,n.abortLoadingTasks();case 7:return U[F].mediaSegments.every((function(e){return e.downloaded=Dt,!0})),(Q=n.mpd.mediaList.audio)[Q.selectedIdx]&&Q[Q.selectedIdx].mediaSegments&&Q[Q.selectedIdx].mediaSegments.forEach((function(e){e.downloaded===Xt&&(e.downloaded=Dt)})),n.mpd.syncAV(),e.abrupt("return",F);case 12:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_handleInitData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=arguments.length>4?arguments[4]:void 0,Q=this.dash,i=new x;if(e instanceof ArrayBuffer){var l=0===t.length?e:e.slice(t[0],t[1]+1),r=null===n?null:e.slice(n[0],n[1]+1);!1===Q.useEME&&this.crypto?this.crypto.decryptHeader(l,"video"===F,!this._pluginInst.softVideo).then((function(t){var n=t.data,F=n.res,Q=n.videoTrack,l=n.audioTrack,a=F;i.resolve({initSegmentRes:a,data:e,sidxSegmentRes:r,headers:U,videoTrack:Q,audioTrack:l})})):i.resolve({initSegmentRes:l,data:e,sidxSegmentRes:r,vid:null,headers:U})}else;return i}},{key:"_appendInitSegment",value:function(e,t,n){var U=this,F=this.player,Q=this.config.duration;this.dash.mpd.duration>0&&(Q=this.dash.mpd.duration);var i=new x,l=this.dash.mpd.mediaList[e],r=t.initSegmentRes,a=t.sidxSegmentRes;if(!t.fromCache&&(t.fromCache=!0,l[l.selectedIdx].wrapperData=t,a))try{this.dash.mpd.getSidx(a,e,n,Q)}catch(o){F.errorHandler(o)}if(e===Ge.VIDEO){var d=function(e){for(var t=Object.keys(KF),n=0;n<t.length;n++){var U=t[n];if(KF[U].codecs===e)return U}return null}(l[l.selectedIdx].codecs);this._pluginInst.setCodeInfo(d)}return pt.log("appendInitSegment mediaType:".concat(e,", index: ").concat(n)),this.dash.changeType(e,l[l.selectedIdx].codecs),this._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendStart")),this.dash.appendBuffer(e,r,{mediaType:e,index:n,initSegment:!0,allSegment:!0},t.videoTrack,t.audioTrack).then((function(t){if(U._pluginInst.info({msg:"appendBuffer",data:{mediaType:e,index:n}}),U._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendDone"),t),pt.log("appendInitSegment success mediaType:".concat(e,", index: ").concat(n,", \n curVideoInitSegment:").concat(U.curVideoInitSegmentIdx)),l[l.selectedIdx].inited=!0,i.resolve(),"video"===e&&U.curVideoInitSegmentIdx!==n){U.curVideoInitSegmentIdx=n;var Q=U._findClosetGop(F.currentTime,!0,0);U.dash.mpd.clearBuffer(Q,F.duration,"video")}})).catch((function(t){pt.log("appendInitSegment type-".concat(e,"-appendCatch,range:").concat(JSON.stringify(r),",\n message:").concat(t.message)),t&&t.errorCode&&F&&F.emit(new LF(Ze,t.errorCode,{message:"appendInit ".concat(t.message)}))})),i}},{key:"_makeInitSegemntRequest",value:(t=c(o().mark((function e(){var t,n,U,F,Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J,m,W,k=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=k.length>0&&void 0!==k[0]?k[0]:"video",U=k.length>1&&void 0!==k[1]?k[1]:0,F=k.length>2&&void 0!==k[2]?k[2]:null,Q=this.dash,i=this.config,l=new x,r=Q.mpd&&Q.mpd.mediaList[n][U],a=[],d="",r){e.next=12;break}return l.reject({mediaType:n,index:U,initSegmentRange:a,url:d,rejected:!0,msg:"list is null"}),pt.log("initSegmentRequest error"),e.abrupt("return",l);case 12:return a=(r.initSegmentRange||[]).concat(),(s="segment_base"===Q.mpd.dashType)&&(a[1]=r.sidxRange[1]),d=r.initSegment,B="video"===n&&(r.definition||this.bandwidth2item[r.bandwidth].definition),this._checkUrlRange(d),c={mediaType:n,vid:i.vid,definition:"video"===n?B:void 0,useUrlRange:i.useUrlRange,timeout:-1,bitrate:r.avg_bitrate||r.bandwidth||r.bitrate,initSegment:!0,codecType:(null===(t=Q.mpd)||void 0===t?void 0:t.videoCodecType)||"h264",fileId:r.fileId,checkPreload:!0},e.next=21,Q.getData(d,a,n,c,!1,null,F);case 21:return R=e.sent,V=R.res,u=R.headers,h=R.status,Z=R.readyState,S=R.fromCache,p=R.error,J=R.orgDefinition,V&&"error"!==V?(J&&B===(null===(W=this.player.curDefinition)||void 0===W?void 0:W.definition)&&(this.player.curDefinition.orgDefinition=J),this._handleInitData(V,r.initSegmentRange,s?r.sidxRange:null,u,n).then((function(e){e.newIdx=U,e.mediaType=n,e.initSegmentRange=a,e.cache=S,e.definition=c.definition,e.bitrate=c.bitrate,e.url=d,e.fileId=c.fileId,l.resolve(e)}))):(m=!1,r.fallbackUrl&&!r.hasFallback&&s&&(r.hasFallback=!0,m=!0,r.initSegment=r.fallbackUrl),l.reject({mediaType:n,index:U,initSegmentRange:a,url:d,rejected:!0,reason:V,status:h,readyState:Z,ext:p instanceof Error?{msg:p.message}:p,retry:m})),e.abrupt("return",l);case 31:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_makeInitSegemntRequestWithRetry",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"video",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,U=arguments.length>2&&void 0!==arguments[2]&&arguments[2],F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.handleUrlExpire();var i=Q||new x;return U&&this._pluginInst._kernal.setNodeTime("init".concat(t,"_metastart")),this._makeInitSegemntRequest(t,n,F).then((function(F){e._pluginInst.info({msg:"initSegmentRequest succ"}),U&&(e._pluginInst._kernal.setNodeTime("init".concat(t,"_metadone"),{fromCache:F.cache,byteLength:F.data.byteLength,mediaType:t,index:n,definition:F.definition,isInitSegment:!0}),e._emitDefinitionChangeDetailEvent({start:0,bitrate:F.bitrate,mediaType:t,definition:F.definition,url:F.url,fileid:F.fileId})),i.resolve(F)})).catch((function(U){var Q;if(U.retry)e._makeInitSegemntRequestWithRetry(t,n,!1,F,i);else{var l=U.message?U.message:U;i.reject(new LF(Je,LF.INIT_SEGMENT_ERROR,{line:329,mediaType:t,index:n,error:l,message:"reason ".concat((null==U||null===(Q=U.ext)||void 0===Q?void 0:Q.msg)||(null==l?void 0:l.reason)," status ").concat(null==l?void 0:l.status),retry:U.retry}))}})),i}},{key:"updateAbrCacheData",value:function(e,t,n){var U=this.dash,F=this.config,Q=F.autoBitrateOpts||{},i=U.mpd.mediaList.video,l=n.definition,r=F.definitionText&&F.definitionText[l]||l,a=i[e],d=n.bitrate;this.bitrateMap[d]={url:a.id,definition:l,definitionName:r},this.defiIdMap[a.id]={bitrate:d,definition:l},e===i.length-1&&this.isOpenAutoDefi&&this.definitions.push({name:Q.autoDefiText||"auto",url:wi,selected:t,definition:"自动",fps:void 0})}},{key:"destroyAbr",value:function(){var e=this,t=this.player;e.abrInstance&&(t&&t.off(Ii,this._onAutoDescChange),e.abrInstance.destroy(),e.abrInstance=null)}},{key:"initAbr",value:function(){var e=this,t=this,n=this.player,U=this.config;WU.on(n,Ii,this._onAutoDescChange,"dashDestroy"),this.bitrateMap={},this.defiIdMap={};var F=ct;t.abrInstance=new Oi(n,U,0,U.dashOpts.dynamic_video,5e3,{logger:pt.abr,openLog:F}),WU.once(n,Gi,this.startProgressTimer,"dashDestroy"),t.abrInstance.onAbrChange=function(e,U,F,Q){var i=t.bitrateMap[e],l=t.bitrateMap[U],r=null==i?void 0:i.definition,a=null==l?void 0:l.definition;pt.abr("abr change prevD:",r,"curDef:".concat(a)),r!==a&&l&&(t.abrSwitchURL(l.url),n.emit("ABR_CHANGE",{prev:r,cur:a,prevName:i.definitionName,curName:l.definitionName,abrInfo:Q}))},WU.on(n,Li,t.abrInstance.onAbrChange,"dashDestroy"),WU.on(n,Yi,(function(){if(t.isCurrentInAbr()){var U=5*Math.floor(n.currentTime/5)+5;pt.log("ABR_LIMIT_BITRATE, currentTime",n.currentTime,"removeStart",U),e.removeBuffer(Ge.VIDEO,U,n.duration)}}),"dashDestroy"),t.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi}},{key:"isCurrentInAbr",value:function(){return!!this.abrInstance&&this.abrInstance.isCurrentInAbr}}]),e}(),Ul=nl,Fl=Yt,Ql=["initaudio_metadone","initvideo_metadone","initaudio_segdone","initvideo_segdone"],il=function(){function e(t){var n=this;R(this,e),h(this,"start",function(){var e=c(o().mark((function e(t){var U,F,Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n._beforeLoadStartCostTime=0,n._tm=WU.nowTime(),n._sTime=WU.nowTime(),!n._checkHasDestroy("start")){e.next=5;break}return e.abrupt("return");case 5:if(n._hasStart&&(n.__dash__&&(n.__dash__.destroy(),n.__dash__=null),n._initProfile(),n._initialize(),n._hasStart=!1),n.setNodeTime("newplayer_start"),U=Date.now(),F=n.__dash__,Q=n._pluginInst,i=Q.player,l=Q.config,i.dashState=yt,i.emit("dashStateChange",yt),t||(t=i.config.url="anytext"),r=new bi(t,n._pluginInst,F),F){e.next=17;break}return n._info({msg:"__dash__ is null, dashOpts",startMs:U,name:"start __dash__"}),e.abrupt("return");case 17:return F.initDash(r),F.dashVideoEncrypted||F.dashAudioEncrypted||n._pluginInst.softVideo?(pt.log("加密视频"),a=!1===l.useEME,l.useEME=Qn(),(a||n._pluginInst.softVideo)&&(l.useEME=!1),l.intertrustServerURL&&(l.useEME=!0),l.useEME||(F.crypto=new Di),r.useEME=l.useEME,n._info({msg:"encrypt video ready useEME ".concat(r.useEME)})):(pt.log("非加密视频"),n._info({msg:" no encrypt video ready"})),i.dashState=ft,i.emit("dashStateChange",ft),e.next=23,n._onWasmReady({url:t});case 23:n._info({msg:"info player start execute",startMs:U,name:"start",profile:!0}),n._hasStart=!0;case 25:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),h(this,"_onLoadStart",(function(){var e=WU.nowTime()-n._tm;n._beforeLoadStartCostTime=e>100?100:e,n.changeState("loadstart","beforeLoadStartCostTime ".concat(n._beforeLoadStartCostTime))})),h(this,"_onLoadData",c(o().mark((function e(){var t,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.changeState("loaddata"),null==(F=n.__dash__)||null===(t=F.dash)||void 0===t||t.checkPCDN(),null==F||null===(U=F.dash)||void 0===U||U.cachePreloadData(),null==F||!F.abrInstance){e.next=8;break}return e.next=7,F.abrInstance.init(F.dash.mpd.mediaList);case 7:F.abrInstance.execute();case 8:case"end":return e.stop()}}),e)})))),h(this,"_errorHandler",(function(e){var t,U;if(!n._checkHasDestroy("errorHandler")){var F=n._pluginInst,Q=F.player,i=F.config;if(i.codecType===KF[YF].logCodeType&&(null===(t=Q.video.error)||void 0===t||null===(U=t.message)||void 0===U?void 0:U.indexOf("video decoder initialization failed"))>=0&&(pt.log("ErrorHandler DECODER_FAILED"),Q.emit("DECODER_FAILED",{codecType:i.codecType,vid:i.vid})),e instanceof LF)e=new r.Errors(Q,e);else{if(Q.video.error)e=new r.Errors(Q,{errorType:Ze,errorCode:5100+Q.video.error.code});else{var l=e;if("string"!=typeof e)try{l=JSON.stringify(e)}catch(B){l="other"}e=new r.Errors(Q,{errorType:pe,errorCode:0,errorMessage:l})}}if(n._errors.push({time:(new Date).getTime(),err:e}),pt.log(e),Q.emit("xglog_cache"),e&&Q.dashState!==Ct){Q.dashState=Ct,e.vid=i.vid,e.url=Q.src;var a=n.__dash__,d=a&&a.isCurrentAutoDefi;if(e.errd&&"object"===s(e.errd)&&a&&a.dash&&(e.errd.url=a.dash.url,e.url=a.dash.url),e.url&&e.url.indexOf("blob:")>-1&&i.dashOpts&&i.dashOpts.dynamic_video&&(e.url=i.dashOpts.dynamic_video.main_url),!e||e.errorCode!==n._getCode(Ze,me.MSE_HIJACK)&&e.errorCode!==n._getCode(Ze,me.EME_HIJACK)){if(Q.emit("DATA_REPORT",e),e&&e.errorCode===n._getCode(Se,me.LICENSE))return n._pluginInst.destroyKernal(),void Q.emit("error",e);if(!e||e.errorCode!==n._getCode(Ze,me.MSE_ADD_SB)&&e.errorCode!==n._getCode(ue,me.SIDX)){if(e.segmentExpired||"task_request_expired"===e.msg)return a&&a.abrInstance&&"function"==typeof a.abrInstance._stop&&(a.abrInstance._stop(),pt.abr("error stop","expired",e.segmentExpired,e.ex)),void n._pluginInst.emitExpireEvent(e);if(!e.curReqVideoSegInfo&&a&&(e.curReqVideoSegInfo=JSON.parse(JSON.stringify(a.curReqVideoSegInfo||{}))),e.headers||(e.headers=e.curReqVideoSegInfo.headers||{}),!!i.useBackUrl&&!n._pluginInst._hasUsedBackUrl&&i.dashOpts&&i.dashOpts.dynamic_video&&a){pt.log("backup replay");var o=a.changeMainBackUrl(Fl.ERR,n._pluginInst._hasUsedBackUrl);return a.updateDashType(),d?o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!0):(n.currentDefitionFromPlayer&&(o.defaultDefinition=n.currentDefitionFromPlayer.definition),o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!1)),n._pluginInst._hasUsedBackUrl=!0,n._pluginInst.next(Q.currentTime,"REPLAY",o,!0,"dash"),Q.emit("playCatch","dash",e),pt.log("playCatch dash",JSON.stringify(e)),void n._emitDegradeEvent(e,"dash")}a&&a.updateDashType(!0),n._handleDegradeToMp4(e)}else n._handleDegradeToMp4(e)}else Q.emit("error",e)}}})),this._pluginInst=t,this._errors=[],this._initProfile(),this._proxyPlayer(),this._initialize(),this._bindEvents()}var t,n;return u(e,[{key:"changeState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._pTime||(this._pTime=WU.nowTime());var n=WU.nowTime()-this._pTime,U=WU.nowTime()-this._sTime;pt.log(">>>changeState[".concat(e,"]"),n,U,JSON.stringify(t));var F={state:e,t1:n,t2:U,data:t};this.states[e]||(this.states[e]=F),this.allPhases.push(F),this._pTime=WU.nowTime()}},{key:"_initProfile",value:function(){this.states={},this.preloadMap={},this.allPhases=[]}},{key:"setNodeTime",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.changeState(e,t),Ql.includes(e)&&(this.preloadMap[e]=t)}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst.player;this._originSwitchURL=e.switchURL,this._originErrorHandler=e.errorHandler,e.switchURL=this._switchURL.bind(this),e._startInit=this.start,e.dash=!0,e.errorHandler=this._errorHandler}},{key:"_info",value:function(e){this._pluginInst&&this._pluginInst.info(e)}},{key:"_onWasmReady",value:(n=c(o().mark((function e(t){var n,U,F,Q,i,l,a,s,B,c,R,V,u,h,Z,S=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._checkHasDestroy("_onWasmReady")){e.next=2;break}return e.abrupt("return");case 2:return n=t.url,U=this._pluginInst,F=U.player,Q=U.config,i=this.__dash__,l=i.dash,F.dashState=Nt,F.emit("dashStateChange",Nt),pt.log("监听到wasm_ready"),this._info({msg:"wasm_ready"}),WU.on(l,"error",this._errorHandler,"destroy"),i.bindComEvent(),e.prev=12,e.next=15,l.init(n);case 15:if(a=e.sent){e.next=19;break}return this._info({msg:"isDestroy ".concat(!F,", isMseNull ").concat(!a)}),e.abrupt("return");case 19:if(pt.time("initReady cost",(new Date).getTime()-i.startTimestamp),F.dashState=bt,F.emit("dashStateChange",bt),pt.log("dash init完成"),l.mpd.mediaList.video.length>0){for(Q.defaultDefinition||(Q.defaultDefinition=Q.dashOpts.dynamic_video.dynamic_video_list[0].definition,i.lastDefiIdx=0),i.isOpenAutoDefi||(i.isCurrentAutoDefi=!1,i.abrInstance.isCurrentInAbr=!1),s=Q.dashOpts.dynamic_video.dynamic_video_list,B=0;B<s.length;B++)c=s[B],i.bandwidth2item[c.bitrate]=c,i.definition2item[c.definition]=c;l.mpd.mediaList.video.sort((function(e,t){return t.height-e.height})),l.mpd.mediaList.video.forEach((function(e,t){var n=i.bandwidth2item[e.bandwidth];if(n){var U=n.definition.toString(),r=Q.defaultDefinition.toString(),a=!(U!==r||i.isOpenAutoDefi&&i.isPlayAutoDefi);i.definitions.push(d({name:Q.definitionText&&Q.definitionText[U]||U,url:e.id,selected:a,definition:n.definition,fps:n.fps},n)),e.frameRate=e.frameRate||n.fps||25;var o=n.bitrate;i.updateAbrCacheData(t,i.isPlayAutoDefi,n),U===r&&(pt.log("dashDefinition",U),F.emit("initialUrl",l.mpd.mediaList.video[t].baseURL),i.curBitrate=o,i.lastDefiIdx=t),a&&S._pluginInst.setCurrentDefitionInfos(n.definition,n)}})),(R=i.definitions.some((function(e){return e.selected})))&&void 0!==i.lastDefiIdx||(R||(i.definitions[0].selected=!0,V=i.definitions[0].definition,this._pluginInst.setCurrentDefitionInfos(V,i.definition2item[V])),F.emit("initialUrl",l.mpd.mediaList.video[0].baseURL),i.curBitrate=Q.dashOpts.dynamic_video.dynamic_video_list[0].bitrate,i.lastDefiIdx=0),F.emit("resourceReady",i.definitions,Q.dashOpts.dynamic_video.dynamic_video_list),i.abrInstance.updateBitrate(i.curBitrate),u=i.definitions.filter((function(e){return e.selected}))[0],i.setPlayerCurDefinition(u)}this._pluginInst.originStartInit.call(F,a.url),pt.time("start call cost",(new Date).getTime()-i.startTimestamp),F.dashState=vt,F.emit("dashStateChange",vt),i.startCheckCanplayTimer(),i.isDashCanUse=!0,i.mse=a,i.emitMenuResolutionChange(),"safari"===r.Sniffer.browser&&(r.Util.addClass(F.root,"canplay"),h=function(){r.Util.removeClass(F.root,"xgplayer-is-enter")},WU.once(F,"waiting",h)),Z=function(){S._checkHasDestroy("onStartPlay")||(F.emit("dash_start_play"),S._info({msg:"dash_start_play"}),F.dashState=Tt,S._info({msg:"START_PLAY ready"}),F.emit("dashStateChange",Tt),F.emit("playInterfaceInfo",Q.dashOpts||{}),i.isCurrentAutoDefi||pt.time("onStartPlay cost not abr",(new Date).getTime()-i.startTimestamp),i.startProgressTimer(),pt.time("onStartPlay cost",(new Date).getTime()-i.startTimestamp),i.setCurrentDefinition())},WU.once(l,"start_play",Z),this._info({msg:"START_PLAY dashready"}),F.emit("dashready"),e.next=42;break;case 39:e.prev=39,e.t0=e.catch(12),F.errorHandler(e.t0);case 42:case"end":return e.stop()}}),e,this,[[12,39]])}))),function(e){return n.apply(this,arguments)})},{key:"_initialize",value:function(){pt.log("执行dashKernal");var e=this._pluginInst,t=e.player,n=e.config,U=t.config;if(n.playInfoType===ii&&U.definition){var F=n.dashOpts.Data,Q=(null==F?void 0:F.vid)===n.vid?F.playInfoList:U.definition.list;n.defaultDefinition=U.defaultDefinition||U.definition.defaultDefinition,U.definition.list=Q.filter((function(e){return e.vtype.toUpperCase()===dn.DASH&&"video"===e.mediaType})),n.dashOpts.Data={vid:U.vid,duration:U.duration,playInfoList:Q};var i=Q.filter((function(e){return e.vtype.toUpperCase()===dn.MP4}));if(i.length>0||U.downgradeUrl){var l=i.length>0?i:[{url:U.downgradeUrl,definition:"1",vtype:"MP4",size:0,codecType:"h264"}];n.mp4Opts={mp4List:l}}else n.mp4Opts=null}if(!n.dashOpts)return console.error("dashOpts in plugin config miss"),void this._info({msg:"dashOpts is null",startMs:Date.now(),name:"_initialize",add:!0});(!n.dashOpts.Data||n.playInfoType!==Qi&&n.playInfoType!==ii||this._playInfoInit(),n.dashOpts.dynamic_video)&&(n.dashOpts.dynamic_video.dynamic_video_list=n.dashOpts.dynamic_video.dynamic_video_list||[],n.dashOpts.dynamic_video.dynamic_audio_list=n.dashOpts.dynamic_video.dynamic_audio_list||[],[n.dashOpts.dynamic_video.dynamic_video_list,n.dashOpts.dynamic_video.dynamic_audio_list].forEach((function(e){e.forEach((function(e){if(e.bitrate=parseInt(e.real_bitrate||e.bitrate),U&&"function"==typeof U.preProcessUrl){var t=U.preProcessUrlOptions||{};e.main_url=U.preProcessUrl(e.main_url,t).url,e.backup_url_1=U.preProcessUrl(e.backup_url_1,t).url;var n=Object.assign({},t,{isFallback:!0});e.fallback_url=U.preProcessUrl(e.fallback_url,n).url}}))})));var r=Yt,a=new Ul({pluginInst:this._pluginInst});this.__dash__=a;var d=Ge.isSupported('video/mp4; codecs="avc1.64001E, mp4a.40.5"');d?a.changeMainBackUrl(r.INIT,this._hasUsedBackUrl):(this._info({msg:"isCodecSupported ".concat(d),add:!0}),t.errorHandler(new LF(Ze,me.MEDIA_ERR_CODEC_NOT_SUPPORTED,{message:"init"})))}},{key:"_bindEvents",value:function(){var e=this._pluginInst.player;e.on(r.Events.LOAD_START,this._onLoadStart),e.on(r.Events.LOADED_DATA,this._onLoadData)}},{key:"beforeLoadStartCostTime",get:function(){return this._beforeLoadStartCostTime}},{key:"_switchURL",value:(t=c(o().mark((function e(t){var n,U,F=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=!(F.length>1&&void 0!==F[1])||F[1],U=this.__dash__,e.next=4,U.switchURL(t,n);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"_playInfoInit",value:function(){var e=this._pluginInst,t=e.config,n=e.playerConfig,U=t.dashOpts.Data;t.vid=U.VideoID||U.Vid||U.vid,n.vid=t.vid,t.playInfoType===Qi?li(t):t.playInfoType===ii&&ri(t)}},{key:"_getCode",value:function(e,t){return We[e][t]}},{key:"_emitDegradeEvent",value:function(e,t){if(this._pluginInst){var n=this._pluginInst.player,U=e.errorCode,F=e.errorMessage,Q=d(d({},e),{},{vtype:t,errc:U,err_msg:F});n.pause(),n.emit("degrade",Q),pt.log("degrade event emit",JSON.stringify(Q))}}},{key:"_handleDegradeToMp4",value:function(e){var t=this;if(!this._checkHasDestroy("_handleDegradeToMp4")){var n=this._pluginInst,U=n.player,F=n.config;if(F.mp4Opts&&!this._hasDegradeMp4){pt.log("_handleDegradeToMp4"),this._hasDegradeMp4=!0,U.dashState="error_catching";var Q=F.startTime||U.currentTime||0;setTimeout((function(){t._checkHasDestroy("degrademp4")||(t._pluginInst._setStartTime("destroy",Q,!0,!1),U.emit("playertypechange"),U.dashState="error_catch_finished",U.emit("playCatch","dash_mp4_2",e),pt.log("playCatch dash_mp4_2",JSON.stringify(e)),t._emitDegradeEvent(e,"dash_mp4_2"),F.defaultFormat="mp4",t._pluginInst.changeKernal(!0,!1,"dash_mp4_2"),U.once("canplay",(function(){if(U.config.autoplay){var e=U.video.play();e&&e.catch((function(){}))}})))}),0)}else U.dashState="error_no_mp4opts",U.emit("error",e),pt.log("_handleDegradeToMp4 throw error")}}},{key:"abrInstance",get:function(){return this.__dash__.abrInstance}},{key:"destroy",value:function(){var e=this._pluginInst.player;this.__dash__&&(this.__dash__.destroy(),this.__dash__=null),e.off(r.Events.LOADED_DATA,this._onLoadStart),e.off(r.Events.LOADED_DATA,this._onLoadData),e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,e.switchURL=this._originSwitchURL,this._pluginInst=null,this._hasStart=!1,pt.log("dashKernal destroy")}},{key:"_checkHasDestroy",value:function(e){return!this._pluginInst&&(this._info({msg:"dashKernal destroy ".concat(e),add:!0}),pt.log("checkHasDestroy",e),!0)}},{key:"executeReady",value:function(){if(!this._checkHasDestroy("executeReady")){var e=this._pluginInst.player;WU.once(e,"dash_start_play",(function(){e.dashState=gt,e.emit("nextEnded")}))}}},{key:"getStat",value:function(){if(!this._checkHasDestroy("getStat")){var e={};e.dvps=!!this._pluginInst.pvStartup,e.daps=!!this._pluginInst.paStartup,e.preLoadData=this.getPreloadStat();var t={},n={};if(this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mse){var U=this.__dash__.dash.mse;if(U._sourceBuffer)for(var F=Object.keys(U._sourceBuffer),Q=0;Q<F.length;Q++){var i=F[Q],l=(U._queue[i]||[]).map((function(e){return{opName:e.opName,context:e.context}}));n[i]={updating:U._sourceBuffer[i].updating,queue:l.slice(0,Math.max(5,l.length)),queueEmpty:!U._queue[i]}}}e.mseStat=n,this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mpd&&(t.video=this.__dash__.dash.mpd._getBuffered("video"),t.audio=this.__dash__.dash.mpd._getBuffered("audio")),e.bfs=t;var r=this._pluginInst.player;e.currentTime=r.currentTime;var a=r.video.error;return e.dVideoError=a?{code:a.code,message:a.message}:null,e.errors=this._errors,e.performance=this.states,e.stage=this._getKeyCost(),e}}},{key:"_getKeyCost",value:function(){var e=this,t=function(t,n){var U=e.states[n],F=e.states[t],Q=(null==U?void 0:U.t2)-(null==F?void 0:F.t2);return Number.isFinite(Q)?Q:-1};return{mseopen_to_msedone:t("initmse_sbopen","initmse_sbopendone"),videometastart_to_metadone:t("initvideo_metastart","initvideo_metadone"),audiometastart_to_metadone:t("initaudio_metastart","initaudio_metadone"),videosegstart_to_segdone:t("initvideo_segstart","initvideo_segdone"),audiosegstart_to_segdone:t("initaudio_segstart","initaudio_segdone"),mseopen_to_loadeddata:t("initmse_sbopen","loaddata"),videoappend_to_loadeddata:t("initvideoSegmentAppend","loaddata"),audioappend_to_loadeddata:t("initaudioSegmentAppend","loaddata")}}},{key:"getPreloadStat",value:function(){for(var e=Ql,t={length:0,byteLength:0,load:[]},n=0;n<e.length;n++){var U=this.preloadMap[e[n]]||{};if(U&&U.fromCache&&U.byteLength){if(t.length+=U.byteLength,t.byteLength+=U.byteLength,t.load.push(U),!U.isInitSegment&&!U.duration)try{var F,Q=this.__dash__.dash.mpd.mediaList[U.mediaType],i=null===(F=Q[Q.selectedIdx].mediaSegments)||void 0===F?void 0:F[0].endRaw;U.duration=i}catch(r){U.duration=5}var l=Math.max(t.duration||0,U.duration||0);"video"===U.mediaType?t.duration=l:t.audioDuration=l}}return t.loadLength=t.load.length,t}},{key:"pcdnReq",get:function(){var e,t=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==t?void 0:t.pcdnReqCnt()}},{key:"pcdnVVStat",value:function(){var e,t=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==t?void 0:t.pcdnVVStat()}},{key:"encryptedType",get:function(){return this.__dash__.encryptedType}},{key:"replay",value:function(){var e=this.__dash__;e&&e.abrInstance&&e.abrInstance.isCurrentInAbr&&e.abrInstance.start()}},{key:"bandwidth",get:function(){var e,t=this.__dash__;return t&&t.dash&&t.dash.loadInfo?null===(e=t.dash)||void 0===e?void 0:e.loadInfo:{cdn:{size:0},pcdn:{size:0}}}}]),e}(),ll=function(){function e(t){var n=this;R(this,e),h(this,"start",(function(){var e=n._pluginInst.player;n._pluginInst.originStartInit.call(e,n._url),n._pluginInst.info({msg:"dash mp4 kernal start"})})),h(this,"_errorHandler",(function(e){var t=n._pluginInst.player;if(t.video.error){e=new r.Errors(t,{errorType:Ze,errorCode:5100+t.video.error.code})}else{var U=e;if("string"!=typeof e)try{U=JSON.stringify(e)}catch(Q){U="other"}e=new r.Errors(t,{errorType:pe,errorCode:0,errorMessage:U})}n._stat.error.push({err:e}),pt.log("mp4 error",e);var F=(new Date).getTime()/1e3>=n.urlExpireTimestamp&&n.urlExpireTimestamp>0;n._pluginInst.info({msg:"dash mp4 kernal error happend, url expired ".concat(F),err:e}),!F||!t.video.error||4!==t.video.error.code&&2!==t.video.error.code?t.emit("error",e):n._urlExpiredWhenInit||n._mp4CheckExpire()})),h(this,"_updateMp4Auto",(function(){setTimeout((function(){n._updateMp4AutoDesc()}),0)})),this._url=null,this._pluginInst=t,this._urlExpiredWhenInit=!1,this._initialize(),this._proxyPlayer(),this._stat={type:"mp4",error:[]}}return u(e,[{key:"executeReady",value:function(){var e=this._pluginInst.player;e.dashState=gt,e.emit("nextEnded")}},{key:"_initialize",value:function(){var e=this;this._handleMp4Definitions(),this._getMp4Opts();var t=this._pluginInst.player;t.dash=!1,setTimeout((function(){t.emit("resourceReady",e._mp4Definitions||[],[].concat(e._RawMp4Definitions)),e._updateMp4Auto()})),this.urlExpireTimestamp&&(this._urlExpiredWhenInit=(new Date).getTime()/1e3>=this.urlExpireTimestamp&&this.urlExpireTimestamp>0,this._mp4CheckExpire())}},{key:"_handleMp4Definitions",value:function(){var e=this,t=this._pluginInst,n=t.player,U=t.config,F=t.playerConfig;if(U.mp4Opts){var Q;this.mp4AutoItem=null;var i=[].concat(U.mp4Opts.mp4List||[]);i.every((function(e){return!!e.bitrate}))&&i.sort((function(e,t){return t.bitrate-e.bitrate}));var l=U.mp4Opts.isOpenAutoDefi,a=U.mp4Opts.isPlayAutoDefi,d=!1;if(l){var o={};i.forEach((function(e){o[(e.definition||"").toLowerCase()]=e}));for(var s=["720p","480p","360p"],B=null,c=0;c<s.length;c++){var R=o[s[c]];if(R){B=R;break}}if(B){this.mp4AutoItem=B;var V=U.mp4Opts.autoDefiText||"自动",u="".concat(V,"(").concat(B.definition,")");i.push({definition:V,url:wi,name:u,url_expire:B.url_expire||0,selected:!!a}),d=a}}if(i.length>0){i.forEach((function(e){if(F&&"function"==typeof F.preProcessUrl){var t=F.preProcessUrlOptions||{};e.url=F.preProcessUrl(e.url,t).url}}));var h=i[0].url,Z=i[0].url;i.forEach((function(e){e.definition===U.defaultDefinition&&(h=e.url,Z=e.url)})),l&&a&&this.mp4AutoItem&&(h=this.mp4AutoItem.url,Z=wi),this._mp4Url=Z,this._url=h,this._pluginInst.loadURL=h}if(!d){for(var S=0;S<i.length;S++){var p=i[S];if(U.defaultDefinition===p.definition){p.selected=!0,d=!0;break}}if(!d){if(!(i.length>0))return void setTimeout((function(){var e=We[Ze][me.MEDIA_ERR_URL_EMPTY],t=new r.Errors(n,{errorType:Ze,errorCode:e});n.emit(et,t),console&&console.error("empty mp4 definitions")}));i[0].selected=!0}}this._mp4Definitions=i.map((function(t){U.defaultDefinition===t.definition&&(e._url=t.url,a||(t.selected=!0));var n=JSON.parse(JSON.stringify(t));return n.name=U.definitionText&&U.definitionText[t.definition]||t.definition,n.url_expire=t.url_expire||0,n})),this._backup_url=this._mp4Definitions[0].backup_url,this._RawMp4Definitions=i;var J=!1;this._pluginInst.setCodeInfo(null===(Q=i[0])||void 0===Q?void 0:Q.codec_type);for(var m=0;m<i.length;m++){var W=i[m];W.codec_type&&W.vtype&&("h264"===W.codec_type&&"mp4"===W.vtype||(J=!0))}J&&n.emit("log",{type:"oneevent",end_type:"mp4_source_exception"})}}},{key:"_getMp4Opts",value:function(){var e=this._pluginInst.player,t={url:this._mp4Url,realUrl:this._url,mp4Definitions:[].concat(this._mp4Definitions)};return this._getPlayInfoTimestamp=(new Date).getTime()/1e3,t.mp4Definitions&&t.mp4Definitions.length>0&&t.mp4Definitions[0]&&(this.urlExpireTimestamp=t.mp4Definitions[0].url_expire||0),this._destroyMp4AutoHandler(),e.on("canplay",this._updateMp4Auto),this.urlExpireTimestamp&&(this.mp4CheckExpire=this._mp4CheckExpire.bind(this),e.on("timeupdate",this.mp4CheckExpire)),t}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst,t=e.player,n=e.config;this._originSwitchURL=t.switchURL,this._originErrorHandler=t.errorHandler,n.defaultFormat="mp4",t._startInit=this.start,t.errorHandler=this._errorHandler,t.switchURL=this._switchURLMp4.bind(this),t.config.url=this._url}},{key:"_switchURLMp4",value:function(e){var t=this,n=this._pluginInst.player,U=e.split("/")[e.split("/").length-1]===wi,F=U?this.mp4AutoItem.url:e;this._pluginInst.loadURL=F,n.curTime=n.currentTime;var Q=n.paused;this._url=U?wi:e,n.ended||(n.src=F,WU.once(n,"canplay",(function(){if(n.currentTime=n.curTime,!Q){var e=n.play();void 0!==e&&e&&e.catch((function(){}))}}))),U?this._setCurrentDefitionInfos("自动 ".concat(this.mp4AutoItem.definition),this.mp4AutoItem):WU.once(n,"definitionChange",(function(e){for(var n=e.to,U=null,F=t._pluginInst.cnofig,Q=0;Q<F.mp4Opts.mp4List.length;Q++){var i=F.mp4Opts.mp4List[Q];if(i.definition===n){U=i;break}}t._setCurrentDefitionInfos("".concat(n),U)}))}},{key:"_mp4CheckExpire",value:function(){this._pluginInst.handleUrlExpire(this,!0)}},{key:"_updateMp4AutoDesc",value:function(){var e=this._pluginInst.player,t=this._url!==wi||void 0;this.mp4AutoItem&&(e.emit("MP4_AUTO_DESC_CHANGE",JSON.parse(JSON.stringify(this.mp4AutoItem)),!!t||void 0),t||this._setCurrentDefitionInfos(this.mp4AutoItem.definition,this.mp4AutoItem))}},{key:"_setCurrentDefitionInfos",value:function(e,t){this._pluginInst.setCurrentDefitionInfos(e,t)}},{key:"_destroyMp4AutoHandler",value:function(){var e=this._pluginInst.player;e.off("canplay",this._updateMp4Auto),e.off("timeupdate",this._mp4CheckExpire)}},{key:"destroy",value:function(){var e=this._pluginInst.player;e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,this._destroyMp4AutoHandler(),this._pluginInst.unloadVideo(),e.switchURL=this._originSwitchURL}},{key:"getStat",value:function(){var e=this._pluginInst.player;this._stat.currentTime=e.currentTime;var t=e.video.error;return this._stat.videoError=t?{code:t.code,message:t.message}:null,this._stat}}]),e}(),rl={bufferThreshold:10,defaultFormat:"dash",useEME:null,getLicenseUrl:"",intertrustServerURL:null,defaultDefinition:null,useGapJump:!0,useDurationBackoff:!1,preloadTime:void 0,maxBufferLength:void 0,minBufferLength:10,dynamicPreloadTimeOpts:null,preloadCancelTime:5,progressTimer:1e3,tickInSeconds:void 0,disableCanplayCheck:!0,disableDashNoCanplayCheck:!0,disableBufferBreakCheck:!0,waitingTimeOut:2e4,definitionText:null,useUnionInfoDRM:!1,keyTokenExpiredDuration:null,keyToken:null,playDomain:null,usePlaySpade:!1,preloadBufferThreshold:.5,vtype:dn.DASH,useProgressiveAppend:!1,useProgressiveAppendAll:!1,loader:Ji,logMaxSize:204800,timeout:5e3,reqOptions:{},timerInWorker:!1,resumePlayWaterLevel:0,waitingInBufferTimeOut:5e3,waitJampBufferMaxCnt:3,removeBufferLen:60,removeBufferWhenSeekInBuffer:!0,replayReset:!0,resetStateUpdrade:!1,netNoRetryCode:[403,404],progressiveTimeout:1500,usePCDNProgressiveCheck:!1,useSeparationMode:!1},al=r.Events.STATS_EVENTS,dl="mp4",ol="dash",sl="void";function Bl(e){return{playerVersion:{get:function(){return"3.5.27-alpha.5"},configurable:!0},downloadSpeed:{get:function(){return ki.currentSpeed/8},configurable:!0},historyAvspeed:{get:function(){return ki.historyAvspeed/8},configurable:!0},abrInstance:{get:function(){return e.abrInstance},configurable:!0},menuCodeType:{get:function(){return e.menuCodeType},configurable:!0},playerType:{get:function(){return e.playerType},configurable:!0},supportMenus:{get:function(){return e.supportMenus},configurable:!0},domain:{get:function(){return e.domain},configurable:!0},loadURL:{get:function(){return e.loadURL},configurable:!0},performance:{get:function(){var t=e.stat;return t&&t.performance},configurable:!0},stat:{get:function(){return e.stat},configurable:!0},preLoadData:{get:function(){var t=e.stat;return t&&t.preLoadData?t.preLoadData:{byteLength:0,duration:0}},configurable:!0},ext:{get:function(){var t=Math.max(0,ki.historySpeed.length-10),n=ki.historySpeed.slice(t,t+10);return d(d({},e.stat),{},{speed:n.map((function(e){return"".concat(e/8)})),vtype:"DASH",format:e._kernalType,performance:void 0,preLoadData:void 0})},configurable:!0},getLogCache:{get:function(){var e=St();return e.getLogCache&&e.getLogCache()},configurable:!0},pcdnReq:{get:function(){var t;return e._kernalType===ol?null===(t=e._kernal)||void 0===t?void 0:t.pcdnReq:null},configurable:!0},currentDefitionFromPlayer:{get:function(){return e.currentDefitionFromPlayer},configurable:!0},encryptedInfo:{get:function(){var t;return{encryptedType:(null===(t=e._kernal)||void 0===t?void 0:t.encryptedType)||0}},configurable:!0},pcdnVVStat:{get:function(){var t;return e._kernalType===ol?null===(t=e._kernal)||void 0===t?void 0:t.pcdnVVStat():null},configurable:!0},beforeLoadStartCostTime:{get:function(){var t;return e._kernalType===ol&&e._kernal?null===(t=e._kernal)||void 0===t?void 0:t.beforeLoadStartCostTime:0},configurable:!0}}}var cl=null,Rl=function(e){Z(n,e);var t=W(n);function n(){var e;R(this,n);for(var U=arguments.length,F=new Array(U),Q=0;Q<U;Q++)F[Q]=arguments[Q];return h(m(e=t.call.apply(t,[this].concat(F))),"_hasUsedBackUrl",!1),h(m(e),"_onSeeking",(function(){var t=m(e).player;e.waitLevelStartTime=t.currentTime})),h(m(e),"_onPlaying",(function(){var t,n;pt.log("onPlaying,",JSON.stringify({curtime:e.player.currentTime,buffer:JSON.stringify(null===(t=e.player)||void 0===t||null===(n=t.buffered2)||void 0===n?void 0:n.bufferedList)})),e._waitAdjustTimeCnt>0&&e._waitInBufferTimer&&(e._waitAdjustTimeCnt-=1,pt.log("[waitInBuffer resume play], waitAdjustTimeCnt,",e._waitAdjustTimeCnt)),clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var U=m(e).player,F=e.config.resumePlayWaterLevel;if(e._kernalType!==dl){if(!(U.duration>0&&U.duration-U.currentTime<=F)&&(e.waitLevelStartTime<0&&(e.waitLevelStartTime=U.currentTime),e.playFlag||(e.playFlag=!0),F>0&&U.currentTime-e.waitLevelStartTime>=2)){var Q=U.getBufferedRange(U.buffered2);if(Q[1]>0&&Q[1]-U.currentTime<F){var i;if(!U.paused)e.emit(jt,{type:Ht}),U.pause(null===(i=zt)||void 0===i?void 0:i.BUFFER_CONTROLS),U.isBufferControlPaused=!0,pt.log("[!!!!!buffer not rich, pause],currentTime, ",U.currentTime,", bufferEnd,",Q[1]);clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=setTimeout(e._onPlaying,F/2*1e3)}else U.isBufferControlPaused&&U.paused&&(pt.log("[!!!!!buffer rich, play],, currentTime, ",U.currentTime,", bufferEnd,",Q[1]),clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,U.isBufferControlPaused=!1,e.emit(jt,{type:Pt}),U.play())}}else e.checkResumePlayTimer>0&&(clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,U.isBufferControlPaused&&(U.isBufferControlPaused=!1),U.paused&&U.play())})),h(m(e),"_onWaiting",(function(){var t,n=m(e),U=n.player,F=n.config;clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var Q=U.currentTime;pt.log(",[onWaiting],curTime, ",Q,",buffer,",JSON.stringify(null==U||null===(t=U.buffered2)||void 0===t?void 0:t.bufferedList),",dur,",U.duration);var i=U.bufferedPoint;i.end>0&&i.end-Q>=2&&e._waitAdjustTimeCnt<F.waitJampBufferMaxCnt&&(e._waitInBufferTimer=setTimeout((function(){e._waitAdjustTimeCnt++,U.currentTime=U.currentTime+.5}),F.waitingInBufferTimeOut))})),e}return u(n,[{key:"initDashPlayer",value:function(e){this._checkVideoSwitch(),this._hasTriggerBufferThreshold=!1,this._setArgsFromConfig(),this.lastBuffer="0,0",this._menuCodeType=null,this._setConfigDashType(),WU.promisePolyfill(),(window.location.href.indexOf("playerInstance=true")>-1||X.getItem("playerInstance"))&&(void 0===window.dashPlayerInstanceList&&(window.dashPlayerInstanceList=[]),window.dashPlayerInstanceList.push(e)),this._startBufferCheck(),this.changeKernal(!1),window.addEventListener("beforeunload",this.cacheSpeed)}},{key:"_checkVideoSwitch",value:function(){var e=this.player,t=this.playerConfig.mediaType;if(this.softVideo="xg-video"===t,!(e.video instanceof HTMLVideoElement||this.softVideo)){var n=r.Util.createDom("video","",this.getVideoConfig(this.playerConfig));this.removeVideo=e.video,n.muted=e.video.muted,n.volume=e.video.volume,e.video=n,e.attachVideoEvents(e.video);var U=this.removeVideo.parentNode;U&&U.removeChild(this.removeVideo),this.removeVideo=null}}},{key:"getVideoConfig",value:function(e){var t=Object.assign({},{controls:!1,autoplay:e.autoplay,playsinline:e.playsinline,"x5-playsinline":e.playsinline,"webkit-playsinline":e.playsinline,"x5-video-player-fullscreen":e["x5-video-player-fullscreen"]||e.x5VideoPlayerFullscreen,"x5-video-orientation":e["x5-video-orientation"]||e.x5VideoOrientation,airplay:e.airplay,"webkit-airplay":e.airplay,tabindex:2,mediaType:e.mediaType||"video"},e.videoConfig,e.videoAttributes);return e.loop&&(t.loop="loop"),t}},{key:"bitRateAdapter",get:function(){var e=this.player,t=this.config;return e&&e.plugins&&t.needAutoBitrate?e.plugins.bitrateselector:null}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NEXT",n=arguments.length>2?arguments[2]:void 0,U=arguments.length>3?arguments[3]:void 0,F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;pt.log("next currentTime: ".concat(e,", nextType: ").concat(t,", autoplay:").concat(U));var Q=this.player,i=this.config;this._pausedWhenExpiredRestart=!1,"MEDIA_EXPIRED"===t&&Q.paused&&(this._pausedWhenExpiredRestart=!0),Q.dashState="next_start";var l=!1;if(Q.isSrcVoid||!i.dashOpts&&!i.mp4Opts||Q.ended||"MEDIA_EXPIRED"===t||"REPLAY"===t||Q.duration&&Q.currentTime<Q.duration-1&&(Q.emit("logger_next",t),l=!0),this._hasTriggerBufferThreshold=!1,Q.emit("next",t),Q.emit("playertypechange"),n)for(var r in n)i[r]=n[r];Q.config.vid&&(i.vid=Q.config.vid),Q.config.duration&&(i.duration=Q.config.duration),this._setArgsFromConfig(),l&&this._setConfigDashType(),"NEXT"===t&&Q.resetState&&Q.resetState(),Q.config.startTime=e,Q.config.startTimeCache=e,n&&(Q.config.DASHPlugin=n);var a=Q.config.autoplay;this._pausedWhenExpiredRestart&&a&&(Q.config.autoplay=!1,Q.once("canplay",(function(){setTimeout((function(){Q.config.autoplay=a,Q.pause()}))}))),this._syncParameters(),this.changeKernal(!0,!0,F),!U&&!Q.config.autoplay||this._pausedWhenExpiredRestart||Q.once("canplay",(function(){if(Q.video&&(Q.config.autoplay||U)){var e=Q.video.play();e&&e.catch((function(){}))}})),this._pausedWhenExpiredRestart&&(this._pausedWhenExpiredRestart=!1)}},{key:"_replay",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=this.player;this.config.replayReset?this.next(e,"REPLAY",void 0,!0):(t.currentTime=0,this._kernal&&this._kernal.replay&&this._kernal.replay())}},{key:"startPlayHandler",value:function(e,t,n){var U=this.config;if(U.dashOpts||U.mp4Opts){var F="NEXT"===t||"REPLAY"===t;this._setStartTime(n,e,F,!0)}}},{key:"beforePlayerInit",value:function(){if(!this._hasExecuteBeforeInit){var e=this.player;r.BasePlugin.defineGetterOrSetter(e,Bl(this)),this._hasExecuteBeforeInit=!0,e.isReady=!0,this._kernalType===ol&&(e.vtype="DASH")}}},{key:"afterCreate",value:function(){var e=this;this.steps=[];var t=this.player,n=this.config;this._syncParameters(),t.config.nullUrlStart=!0,St().logMaxSize=n.logMaxSize,this._proxyPlayer(),this.initDashPlayer(t),this.on("xglog",(function(n){"firstFrame"===n.eventType&&pt.log("[xgplayer-encrypt]>>>>firstFrame ",e.playerConfig.vid,n.fvt,"stat",t.stat)})),this._bindEvents()}},{key:"info",value:function(e){var t=this.player;al&&t.emit(al.STATS_INFO,e),e.add&&this.steps.push(e)}},{key:"resetStat",value:function(){var e=this.player;al&&e.emit(al.STATS_RESET)}},{key:"_syncParameters",value:function(){var e,t=this.config,n=this.playerConfig,U=t.vid||n.vid;t.vid=n.vid=U,n.autoBitrateOpts=t.autoBitrateOpts,null===(e=this.player.preloader)||void 0===e||e.addPlayingId(n.vid,this.player.playerId)}},{key:"_proxyPlayer",value:function(){var e=this,t=this.player,n=this.config;this._originStartInit=t._startInit,t.getPreloadInfos=this.getPreloadInfos.bind(this),t.useHooks("replay",(function(t){e._replay()})),"function"==typeof this.player.playNext&&(cl=this.player.playNext),this.player.playNext=function(){e.playNext.apply(e,arguments)},"function"==typeof this.player.resetState&&(this._originResetState=this.player.resetState,this.player.resetState=function(){e._originResetState.call(e.player),pt.log("resetState",n.resetStateUpdrade),n.resetStateUpdrade&&"dash_mp4_2"===t.vtype&&(e.config.defaultFormat="dash",t.hasStart=!0,e.changeKernal())})}},{key:"playNext",value:function(){for(var e=this.player,t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];var F=n[0],Q=n[1],i=n[2],l=n[3];e.setConfig(F),this.next(Q,i,F.DASHPlugin,l)}},{key:"_setKernalType",value:function(){var e=this.config;e.dashOpts||e.mp4Opts?e.dashOpts&&e.mp4Opts?this._kernalType=e.defaultFormat.toLowerCase():e.dashOpts?this._kernalType=ol:this._kernalType=dl:this._kernalType=sl}},{key:"changeKernal",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._setKernalType();var U=this.player;this.destroyKernal();var F=this._kernalType;F===sl?(U.isSrcVoid=!0,U.emit("playOptsVoid"),t&&U.emit("nextEnded")):(U.isSrcVoid=!1,this._setStartTime("destroy",U.config.startTime,!0,!1),F===dl?(this._kernal=new ll(this),U.vtype="dash_mp4"):F===ol&&(this._kernal=new il(this),U.vtype="DASH"),n&&(U.vtype=n)),e&&this._kernal&&(this._kernal.start(),t&&this._kernal.executeReady())}},{key:"destroyKernal",value:function(){this._kernal&&(pt.log("destroyKernal type ".concat(this._kernalType)),this._kernal.destroy(),this._kernal=null)}},{key:"originStartInit",get:function(){return this._originStartInit}},{key:"_setArgsFromConfig",value:function(){var e=this.config;this._bufferThreshold=e.bufferThreshold,this.playFlag=!1,this.waitLevelStartTime=-1,this._waitAdjustTimeCnt=0}},{key:"setCurrentDefitionInfos",value:function(e,t){var n=t?t.fps:void 0;this._currentDefinition={definition:e,fps:n,item:t}}},{key:"handleUrlExpire",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=this.config,F=this.player,Q=F.paused,i=(new Date).getTime()/1e3>=e.urlExpireTimestamp&&e.urlExpireTimestamp>0;if(i&&(n||!Q)&&U.getServerTime)F.serverTimeDiffPromise=F.serverTimeDiffPromise||U.getServerTime().catch((function(){return 0})),F.serverTimeDiffPromise.then((function(n){if(n&&(F.serverTimeDiff=(new Date).getTime()/1e3-n),(new Date).getTime()/1e3>=e.urlExpireTimestamp+F.serverTimeDiff){e.urlExpireTimestamp=5e9;var U=new LF(ce);t.emitExpireEvent(U)}}));else if(i){var l=new LF(ce);this.emitExpireEvent(l)}}},{key:"emitExpireEvent",value:function(e){var t=this.player,n=(new Date).getTime()/1e3;this.emitExpireTimestamp?n-this.emitExpireTimestamp>300&&(this.emitExpireTimestamp=n,t.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"})):(this.emitExpireTimestamp=n,t.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"}))}},{key:"_getCurDashType",value:function(){var e=X.getItem(wt);return e===Mt.BACK?e:Mt.MAIN}},{key:"_setCurDashType",value:function(){this._initDashType=this._getCurDashType()}},{key:"_setConfigDashType",value:function(){var e;this._setCurDashType();var t=null===(e=this.playerConfig)||void 0===e?void 0:e.vodLogOpts;t&&(t.currentDashType=this._initDashType)}},{key:"setCodeInfo",value:function(e){var t,n=null===(t=this.playerConfig)||void 0===t?void 0:t.vodLogOpts;"h265"===e&&(e="hevc");var U=KF[e],F=KF[GF],Q=F.logCodeType,i=F.codecs;U&&(Q=U.logCodeType,i=U.codecs),n&&(n.codec_type=Q),this.menuCodeType=i,this.config&&(this.config.codecType=Q)}},{key:"cacheSpeed",value:function(){try{var e=ki.historyAvspeed;e>0&&e!==1/0&&X.setItem(Wt,e)}catch(t){}window.removeEventListener("beforeunload",this.cacheSpeed)}},{key:"unloadVideo",value:function(){var e=this.player;try{e.video&&e.video.src&&(e.video.removeAttribute("src"),e.video.load())}catch(t){}}},{key:"destroy",value:function(){var e,t=this.player;clearInterval(this._bufferCheckTimer),this.cacheSpeed(),this.destroyKernal(),this.bitRateAdapter&&this.bitRateAdapter.destroy();var n=Bl(this);Object.keys(n).forEach((function(e){delete t[e]})),this.player.playNext=cl,this.player.removeHooks("replay"),null===(e=this.player.preloader)||void 0===e||e.removePlayingId(this.player.playerId),this.off("seeking",this._onSeeking),this.off("waiting",this._onWaiting),this.off("playing",this._onPlaying),this._originResetState&&(this.player.resetState=this._originResetState)}},{key:"_bindEvents",value:function(){this.on("playing",this._onPlaying),this.on("seeking",this._onSeeking),this.on("waiting",this._onWaiting)}},{key:"getPreloadInfos",value:function(){return null}},{key:"getPreloadStat",value:function(){return{}}},{key:"_onBufferReachThreshold",value:function(){var e=this.player;if(e.video){for(var t=e.video.buffered,n=0,U=0,F=0;F<t.length&&(n=t.start(F),U=t.end(F),!(n<=e.video.currentTime&&e.video.currentTime<=U));F++);U-e.video.currentTime>=this._bufferThreshold&&!this._hasTriggerBufferThreshold&&(this._hasTriggerBufferThreshold=!0,e.emit("BUFFER_THRESHOLD",U-e.video.currentTime))}}},{key:"_startBufferCheck",value:function(){var e=this,t=this.player;this._bufferCheckTimer=setInterval((function(){if(t.video){var n=[];try{for(var U=0,F=t.video.buffered.length;U<F;U++)n.push([t.video.buffered.start(U),t.video.buffered.end(U)]);n.toString()!==e.lastBuffer&&(e.lastBuffer=n.toString(),e._onBufferReachThreshold())}catch(Q){}}}),200)}},{key:"_setStartTime",value:function(e,t,n,U){var F=this,Q=this.player,i=this.playerConfig,l=this.config;if(t>0||U){var r=!1,a=function(){r||(r=!0,Q.currentTime=t,i.startTime=0,n&&t>0&&Q.emit("setStartTime"),"mp4"===l.defaultFormat&&F.setCodeInfo(GF))};WU.once(Q,"canplay",a,e),WU.once(Q,"playing",a,e)}}},{key:"preloadManager",get:function(){return this.player.preloader}},{key:"domain",get:function(){return this._cdnHost?this._cdnHost:null}},{key:"playerType",get:function(){return this.config.defaultFormat}},{key:"supportMenus",get:function(){var e="dash"===this.config.defaultFormat;return{speed:e,cdn:e,resolution:e}}},{key:"currentDefitionFromPlayer",get:function(){return this._currentDefinition}},{key:"abrInstance",get:function(){return this._kernal&&this._kernal.abrInstance?this._kernal.abrInstance:null}},{key:"menuCodeType",get:function(){return this._menuCodeType},set:function(e){var t=this.player;this._menuCodeType=e,null==t||t.emit("codecsupdate",e)}},{key:"stat",get:function(){var e=this.player;if(this._kernal&&!e.isSrcVoid){var t=this._kernal.getStat();return t.steps=this.steps.slice(0,Math.max(10,this.steps.length)),this.steps=[],e.video&&e.video.error&&(t.media={readyState:e.video.readyState,error:e.video.error.code,errorMsg:e.video.error.message}),t}return null}},{key:"loadURL",get:function(){return this._loadURL},set:function(e){this._loadURL=e;var t=WU.getHostFromUrl(e);this._cdnHost!==t&&(this._cdnHost=t,this.player&&this.player.emit("changeHost",t))}}],[{key:"pluginName",get:function(){return"DASHPlugin"}},{key:"defaultConfig",get:function(){return rl}},{key:"isEMESupported",value:function(){return Qn()}},{key:"encryptUtils",get:function(){return rn}}]),n}(Vn);return Rl.updateUnionInfo=DF.XGSecretKey.updateUnionInfo,Rl.registerPreloader=Vn.registerPreloader,Rl}));
|