@apolopay-sdk/ui 1.1.0 → 1.2.1

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.
@@ -0,0 +1,857 @@
1
+ (function(c,x){typeof exports=="object"&&typeof module<"u"?x(exports):typeof define=="function"&&define.amd?define(["exports"],x):(c=typeof globalThis<"u"?globalThis:c||self,x(c.ApoloPaySDK={}))})(this,(function(c){"use strict";const x=globalThis,vt=x.ShadowRoot&&(x.ShadyCSS===void 0||x.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,bt=Symbol(),qt=new WeakMap;let Gt=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==bt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(vt&&t===void 0){const r=e!==void 0&&e.length===1;r&&(t=qt.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&qt.set(e,t))}return t}toString(){return this.cssText}};const Ie=s=>new Gt(typeof s=="string"?s:s+"",void 0,bt),U=(s,...t)=>{const e=s.length===1?s[0]:t.reduce((r,i,n)=>r+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+s[n+1],s[0]);return new Gt(e,s,bt)},Qe=(s,t)=>{if(vt)s.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const e of t){const r=document.createElement("style"),i=x.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=e.cssText,s.appendChild(r)}},Yt=vt?s=>s:s=>s instanceof CSSStyleSheet?(t=>{let e="";for(const r of t.cssRules)e+=r.cssText;return Ie(e)})(s):s;const{is:Pe,defineProperty:Le,getOwnPropertyDescriptor:Ze,getOwnPropertyNames:Re,getOwnPropertySymbols:ze,getPrototypeOf:Me}=Object,it=globalThis,Ht=it.trustedTypes,De=Ht?Ht.emptyScript:"",Xe=it.reactiveElementPolyfillSupport,q=(s,t)=>s,nt={toAttribute(s,t){switch(t){case Boolean:s=s?De:null;break;case Object:case Array:s=s==null?s:JSON.stringify(s)}return s},fromAttribute(s,t){let e=s;switch(t){case Boolean:e=s!==null;break;case Number:e=s===null?null:Number(s);break;case Object:case Array:try{e=JSON.parse(s)}catch{e=null}}return e}},St=(s,t)=>!Pe(s,t),_t={attribute:!0,type:String,converter:nt,reflect:!1,useDefault:!1,hasChanged:St};Symbol.metadata??=Symbol("metadata"),it.litPropertyMetadata??=new WeakMap;let X=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=_t){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){const r=Symbol(),i=this.getPropertyDescriptor(t,r,e);i!==void 0&&Le(this.prototype,t,i)}}static getPropertyDescriptor(t,e,r){const{get:i,set:n}=Ze(this.prototype,t)??{get(){return this[e]},set(o){this[e]=o}};return{get:i,set(o){const l=i?.call(this);n?.call(this,o),this.requestUpdate(t,l,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??_t}static _$Ei(){if(this.hasOwnProperty(q("elementProperties")))return;const t=Me(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(q("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(q("properties"))){const e=this.properties,r=[...Re(e),...ze(e)];for(const i of r)this.createProperty(i,e[i])}const t=this[Symbol.metadata];if(t!==null){const e=litPropertyMetadata.get(t);if(e!==void 0)for(const[r,i]of e)this.elementProperties.set(r,i)}this._$Eh=new Map;for(const[e,r]of this.elementProperties){const i=this._$Eu(e,r);i!==void 0&&this._$Eh.set(i,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const i of r)e.unshift(Yt(i))}else t!==void 0&&e.push(Yt(t));return e}static _$Eu(t,e){const r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Qe(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ET(t,e){const r=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,r);if(i!==void 0&&r.reflect===!0){const n=(r.converter?.toAttribute!==void 0?r.converter:nt).toAttribute(e,r.type);this._$Em=t,n==null?this.removeAttribute(i):this.setAttribute(i,n),this._$Em=null}}_$AK(t,e){const r=this.constructor,i=r._$Eh.get(t);if(i!==void 0&&this._$Em!==i){const n=r.getPropertyOptions(i),o=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:nt;this._$Em=i;const l=o.fromAttribute(e,n.type);this[i]=l??this._$Ej?.get(i)??l,this._$Em=null}}requestUpdate(t,e,r,i=!1,n){if(t!==void 0){const o=this.constructor;if(i===!1&&(n=this[t]),r??=o.getPropertyOptions(t),!((r.hasChanged??St)(n,e)||r.useDefault&&r.reflect&&n===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,r))))return;this.C(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:r,reflect:i,wrapped:n},o){r&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,o??e??this[t]),n!==!0||o!==void 0)||(this._$AL.has(t)||(this.hasUpdated||r||(e=void 0),this._$AL.set(t,e)),i===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[i,n]of this._$Ep)this[i]=n;this._$Ep=void 0}const r=this.constructor.elementProperties;if(r.size>0)for(const[i,n]of r){const{wrapped:o}=n,l=this[i];o!==!0||this._$AL.has(i)||l===void 0||this.C(i,void 0,n,l)}}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(r=>r.hostUpdate?.()),this.update(e)):this._$EM()}catch(r){throw t=!1,this._$EM(),r}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};X.elementStyles=[],X.shadowRootOptions={mode:"open"},X[q("elementProperties")]=new Map,X[q("finalized")]=new Map,Xe?.({ReactiveElement:X}),(it.reactiveElementVersions??=[]).push("2.1.2");const Ct=globalThis,$t=s=>s,ot=Ct.trustedTypes,te=ot?ot.createPolicy("lit-html",{createHTML:s=>s}):void 0,ee="$lit$",I=`lit$${Math.random().toFixed(9).slice(2)}$`,se="?"+I,Ve=`<${se}>`,Z=document,G=()=>Z.createComment(""),Y=s=>s===null||typeof s!="object"&&typeof s!="function",Et=Array.isArray,Fe=s=>Et(s)||typeof s?.[Symbol.iterator]=="function",Jt=`[
2
+ \f\r]`,H=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,re=/-->/g,ie=/>/g,R=RegExp(`>|${Jt}(?:([^\\s"'>=/]+)(${Jt}*=${Jt}*(?:[^
3
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),ne=/'/g,oe=/"/g,ae=/^(?:script|style|textarea|title)$/i,We=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),f=We(1),z=Symbol.for("lit-noChange"),b=Symbol.for("lit-nothing"),le=new WeakMap,M=Z.createTreeWalker(Z,129);function ce(s,t){if(!Et(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return te!==void 0?te.createHTML(t):t}const je=(s,t)=>{const e=s.length-1,r=[];let i,n=t===2?"<svg>":t===3?"<math>":"",o=H;for(let l=0;l<e;l++){const a=s[l];let d,A,p=-1,E=0;for(;E<a.length&&(o.lastIndex=E,A=o.exec(a),A!==null);)E=o.lastIndex,o===H?A[1]==="!--"?o=re:A[1]!==void 0?o=ie:A[2]!==void 0?(ae.test(A[2])&&(i=RegExp("</"+A[2],"g")),o=R):A[3]!==void 0&&(o=R):o===R?A[0]===">"?(o=i??H,p=-1):A[1]===void 0?p=-2:(p=o.lastIndex-A[2].length,d=A[1],o=A[3]===void 0?R:A[3]==='"'?oe:ne):o===oe||o===ne?o=R:o===re||o===ie?o=H:(o=R,i=void 0);const N=o===R&&s[l+1].startsWith("/>")?" ":"";n+=o===H?a+Ve:p>=0?(r.push(d),a.slice(0,p)+ee+a.slice(p)+I+N):a+I+(p===-2?l:N)}return[ce(s,n+(s[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]};class _{constructor({strings:t,_$litType$:e},r){let i;this.parts=[];let n=0,o=0;const l=t.length-1,a=this.parts,[d,A]=je(t,e);if(this.el=_.createElement(d,r),M.currentNode=this.el.content,e===2||e===3){const p=this.el.content.firstChild;p.replaceWith(...p.childNodes)}for(;(i=M.nextNode())!==null&&a.length<l;){if(i.nodeType===1){if(i.hasAttributes())for(const p of i.getAttributeNames())if(p.endsWith(ee)){const E=A[o++],N=i.getAttribute(p).split(I),j=/([.?@])?(.*)/.exec(E);a.push({type:1,index:n,name:j[2],strings:N,ctor:j[1]==="."?Ge:j[1]==="?"?Ye:j[1]==="@"?He:at}),i.removeAttribute(p)}else p.startsWith(I)&&(a.push({type:6,index:n}),i.removeAttribute(p));if(ae.test(i.tagName)){const p=i.textContent.split(I),E=p.length-1;if(E>0){i.textContent=ot?ot.emptyScript:"";for(let N=0;N<E;N++)i.append(p[N],G()),M.nextNode(),a.push({type:2,index:++n});i.append(p[E],G())}}}else if(i.nodeType===8)if(i.data===se)a.push({type:2,index:n});else{let p=-1;for(;(p=i.data.indexOf(I,p+1))!==-1;)a.push({type:7,index:n}),p+=I.length-1}n++}}static createElement(t,e){const r=Z.createElement("template");return r.innerHTML=t,r}}function V(s,t,e=s,r){if(t===z)return t;let i=r!==void 0?e._$Co?.[r]:e._$Cl;const n=Y(t)?void 0:t._$litDirective$;return i?.constructor!==n&&(i?._$AO?.(!1),n===void 0?i=void 0:(i=new n(s),i._$AT(s,e,r)),r!==void 0?(e._$Co??=[])[r]=i:e._$Cl=i),i!==void 0&&(t=V(s,i._$AS(s,t.values),i,r)),t}class qe{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:r}=this._$AD,i=(t?.creationScope??Z).importNode(e,!0);M.currentNode=i;let n=M.nextNode(),o=0,l=0,a=r[0];for(;a!==void 0;){if(o===a.index){let d;a.type===2?d=new $(n,n.nextSibling,this,t):a.type===1?d=new a.ctor(n,a.name,a.strings,this,t):a.type===6&&(d=new _e(n,this,t)),this._$AV.push(d),a=r[++l]}o!==a?.index&&(n=M.nextNode(),o++)}return M.currentNode=Z,i}p(t){let e=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}}class ${get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,i){this.type=2,this._$AH=b,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=V(this,t,e),Y(t)?t===b||t==null||t===""?(this._$AH!==b&&this._$AR(),this._$AH=b):t!==this._$AH&&t!==z&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):Fe(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==b&&Y(this._$AH)?this._$AA.nextSibling.data=t:this.T(Z.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=_.createElement(ce(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===i)this._$AH.p(e);else{const n=new qe(i,this),o=n.u(this.options);n.p(e),this.T(o),this._$AH=n}}_$AC(t){let e=le.get(t.strings);return e===void 0&&le.set(t.strings,e=new _(t)),e}k(t){Et(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let r,i=0;for(const n of t)i===e.length?e.push(r=new $(this.O(G()),this.O(G()),this,this.options)):r=e[i],r._$AI(n),i++;i<e.length&&(this._$AR(r&&r._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){const r=$t(t).nextSibling;$t(t).remove(),t=r}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}}class at{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,i,n){this.type=1,this._$AH=b,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=n,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=b}_$AI(t,e=this,r,i){const n=this.strings;let o=!1;if(n===void 0)t=V(this,t,e,0),o=!Y(t)||t!==this._$AH&&t!==z,o&&(this._$AH=t);else{const l=t;let a,d;for(t=n[0],a=0;a<n.length-1;a++)d=V(this,l[r+a],e,a),d===z&&(d=this._$AH[a]),o||=!Y(d)||d!==this._$AH[a],d===b?t=b:t!==b&&(t+=(d??"")+n[a+1]),this._$AH[a]=d}o&&!i&&this.j(t)}j(t){t===b?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class Ge extends at{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===b?void 0:t}}class Ye extends at{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==b)}}class He extends at{constructor(t,e,r,i,n){super(t,e,r,i,n),this.type=5}_$AI(t,e=this){if((t=V(this,t,e,0)??b)===z)return;const r=this._$AH,i=t===b&&r!==b||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,n=t!==b&&(r===b||i);i&&this.element.removeEventListener(this.name,this,r),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class _e{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){V(this,t)}}const $e=Ct.litHtmlPolyfillSupport;$e?.(_,$),(Ct.litHtmlVersions??=[]).push("3.3.2");const ts=(s,t,e)=>{const r=e?.renderBefore??t;let i=r._$litPart$;if(i===void 0){const n=e?.renderBefore??null;r._$litPart$=i=new $(t.insertBefore(G(),n),n,void 0,e??{})}return i._$AI(s),i};const wt=globalThis;let Q=class extends X{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=ts(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return z}};Q._$litElement$=!0,Q.finalized=!0,wt.litElementHydrateSupport?.({LitElement:Q});const es=wt.litElementPolyfillSupport;es?.({LitElement:Q}),(wt.litElementVersions??=[]).push("4.2.2");const lt=s=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(s,t)}):customElements.define(s,t)};const ss={attribute:!0,type:String,converter:nt,reflect:!1,hasChanged:St},rs=(s=ss,t,e)=>{const{kind:r,metadata:i}=e;let n=globalThis.litPropertyMetadata.get(i);if(n===void 0&&globalThis.litPropertyMetadata.set(i,n=new Map),r==="setter"&&((s=Object.create(s)).wrapped=!0),n.set(e.name,s),r==="accessor"){const{name:o}=e;return{set(l){const a=t.get.call(this);t.set.call(this,l),this.requestUpdate(o,a,s,!0,l)},init(l){return l!==void 0&&this.C(o,void 0,s,l),l}}}if(r==="setter"){const{name:o}=e;return function(l){const a=this[o];t.call(this,l),this.requestUpdate(o,a,s,!0,l)}}throw Error("Unsupported decorator location: "+r)};function u(s){return(t,e)=>typeof e=="object"?rs(s,t,e):((r,i,n)=>{const o=i.hasOwnProperty(n);return i.constructor.createProperty(n,r),o?Object.getOwnPropertyDescriptor(i,n):void 0})(s,t,e)}function S(s){return u({...s,state:!0,attribute:!1})}const is=(s,t,e)=>(e.configurable=!0,e.enumerable=!0,Reflect.decorate&&typeof t!="object"&&Object.defineProperty(s,t,e),e);function ns(s,t){return(e,r,i)=>{const n=o=>o.renderRoot?.querySelector(s)??null;return is(e,r,{get(){return n(this)}})}}const T=Object.create(null);T.open="0",T.close="1",T.ping="2",T.pong="3",T.message="4",T.upgrade="5",T.noop="6";const ct=Object.create(null);Object.keys(T).forEach(s=>{ct[T[s]]=s});const Kt={type:"error",data:"parser error"},he=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",pe=typeof ArrayBuffer=="function",de=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s&&s.buffer instanceof ArrayBuffer,Tt=({type:s,data:t},e,r)=>he&&t instanceof Blob?e?r(t):ue(t,r):pe&&(t instanceof ArrayBuffer||de(t))?e?r(t):ue(new Blob([t]),r):r(T[s]+(t||"")),ue=(s,t)=>{const e=new FileReader;return e.onload=function(){const r=e.result.split(",")[1];t("b"+(r||""))},e.readAsDataURL(s)};function Ae(s){return s instanceof Uint8Array?s:s instanceof ArrayBuffer?new Uint8Array(s):new Uint8Array(s.buffer,s.byteOffset,s.byteLength)}let Ot;function os(s,t){if(he&&s.data instanceof Blob)return s.data.arrayBuffer().then(Ae).then(t);if(pe&&(s.data instanceof ArrayBuffer||de(s.data)))return t(Ae(s.data));Tt(s,!1,e=>{Ot||(Ot=new TextEncoder),t(Ot.encode(e))})}const fe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tt=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let s=0;s<fe.length;s++)tt[fe.charCodeAt(s)]=s;const as=s=>{let t=s.length*.75,e=s.length,r,i=0,n,o,l,a;s[s.length-1]==="="&&(t--,s[s.length-2]==="="&&t--);const d=new ArrayBuffer(t),A=new Uint8Array(d);for(r=0;r<e;r+=4)n=tt[s.charCodeAt(r)],o=tt[s.charCodeAt(r+1)],l=tt[s.charCodeAt(r+2)],a=tt[s.charCodeAt(r+3)],A[i++]=n<<2|o>>4,A[i++]=(o&15)<<4|l>>2,A[i++]=(l&3)<<6|a&63;return d},ls=typeof ArrayBuffer=="function",Bt=(s,t)=>{if(typeof s!="string")return{type:"message",data:me(s,t)};const e=s.charAt(0);return e==="b"?{type:"message",data:cs(s.substring(1),t)}:ct[e]?s.length>1?{type:ct[e],data:s.substring(1)}:{type:ct[e]}:Kt},cs=(s,t)=>{if(ls){const e=as(s);return me(e,t)}else return{base64:!0,data:s}},me=(s,t)=>t==="blob"?s instanceof Blob?s:new Blob([s]):s instanceof ArrayBuffer?s:s.buffer,ye="",hs=(s,t)=>{const e=s.length,r=new Array(e);let i=0;s.forEach((n,o)=>{Tt(n,!1,l=>{r[o]=l,++i===e&&t(r.join(ye))})})},ps=(s,t)=>{const e=s.split(ye),r=[];for(let i=0;i<e.length;i++){const n=Bt(e[i],t);if(r.push(n),n.type==="error")break}return r};function ds(){return new TransformStream({transform(s,t){os(s,e=>{const r=e.length;let i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);const n=new DataView(i.buffer);n.setUint8(0,126),n.setUint16(1,r)}else{i=new Uint8Array(9);const n=new DataView(i.buffer);n.setUint8(0,127),n.setBigUint64(1,BigInt(r))}s.data&&typeof s.data!="string"&&(i[0]|=128),t.enqueue(i),t.enqueue(e)})}})}let Ut;function ht(s){return s.reduce((t,e)=>t+e.length,0)}function pt(s,t){if(s[0].length===t)return s.shift();const e=new Uint8Array(t);let r=0;for(let i=0;i<t;i++)e[i]=s[0][r++],r===s[0].length&&(s.shift(),r=0);return s.length&&r<s[0].length&&(s[0]=s[0].slice(r)),e}function us(s,t){Ut||(Ut=new TextDecoder);const e=[];let r=0,i=-1,n=!1;return new TransformStream({transform(o,l){for(e.push(o);;){if(r===0){if(ht(e)<1)break;const a=pt(e,1);n=(a[0]&128)===128,i=a[0]&127,i<126?r=3:i===126?r=1:r=2}else if(r===1){if(ht(e)<2)break;const a=pt(e,2);i=new DataView(a.buffer,a.byteOffset,a.length).getUint16(0),r=3}else if(r===2){if(ht(e)<8)break;const a=pt(e,8),d=new DataView(a.buffer,a.byteOffset,a.length),A=d.getUint32(0);if(A>Math.pow(2,21)-1){l.enqueue(Kt);break}i=A*Math.pow(2,32)+d.getUint32(4),r=3}else{if(ht(e)<i)break;const a=pt(e,i);l.enqueue(Bt(n?a:Ut.decode(a),t)),r=0}if(i===0||i>s){l.enqueue(Kt);break}}}})}const ge=4;function C(s){if(s)return As(s)}function As(s){for(var t in C.prototype)s[t]=C.prototype[t];return s}C.prototype.on=C.prototype.addEventListener=function(s,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+s]=this._callbacks["$"+s]||[]).push(t),this},C.prototype.once=function(s,t){function e(){this.off(s,e),t.apply(this,arguments)}return e.fn=t,this.on(s,e),this},C.prototype.off=C.prototype.removeListener=C.prototype.removeAllListeners=C.prototype.removeEventListener=function(s,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var e=this._callbacks["$"+s];if(!e)return this;if(arguments.length==1)return delete this._callbacks["$"+s],this;for(var r,i=0;i<e.length;i++)if(r=e[i],r===t||r.fn===t){e.splice(i,1);break}return e.length===0&&delete this._callbacks["$"+s],this},C.prototype.emit=function(s){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),e=this._callbacks["$"+s],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(e){e=e.slice(0);for(var r=0,i=e.length;r<i;++r)e[r].apply(this,t)}return this},C.prototype.emitReserved=C.prototype.emit,C.prototype.listeners=function(s){return this._callbacks=this._callbacks||{},this._callbacks["$"+s]||[]},C.prototype.hasListeners=function(s){return!!this.listeners(s).length};const dt=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,e)=>e(t,0),w=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),fs="arraybuffer";function Er(){}function ke(s,...t){return t.reduce((e,r)=>(s.hasOwnProperty(r)&&(e[r]=s[r]),e),{})}const ms=w.setTimeout,ys=w.clearTimeout;function ut(s,t){t.useNativeTimers?(s.setTimeoutFn=ms.bind(w),s.clearTimeoutFn=ys.bind(w)):(s.setTimeoutFn=w.setTimeout.bind(w),s.clearTimeoutFn=w.clearTimeout.bind(w))}const gs=1.33;function ks(s){return typeof s=="string"?vs(s):Math.ceil((s.byteLength||s.size)*gs)}function vs(s){let t=0,e=0;for(let r=0,i=s.length;r<i;r++)t=s.charCodeAt(r),t<128?e+=1:t<2048?e+=2:t<55296||t>=57344?e+=3:(r++,e+=4);return e}function ve(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function bs(s){let t="";for(let e in s)s.hasOwnProperty(e)&&(t.length&&(t+="&"),t+=encodeURIComponent(e)+"="+encodeURIComponent(s[e]));return t}function Ss(s){let t={},e=s.split("&");for(let r=0,i=e.length;r<i;r++){let n=e[r].split("=");t[decodeURIComponent(n[0])]=decodeURIComponent(n[1])}return t}class Cs extends Error{constructor(t,e,r){super(t),this.description=e,this.context=r,this.type="TransportError"}}class Nt extends C{constructor(t){super(),this.writable=!1,ut(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,e,r){return super.emitReserved("error",new Cs(t,e,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const e=Bt(t,this.socket.binaryType);this.onPacket(e)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,e={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(e)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const e=bs(t);return e.length?"?"+e:""}}class Es extends Nt{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const e=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||e()})),this.writable||(r++,this.once("drain",function(){--r||e()}))}else e()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const e=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};ps(t,this.socket.binaryType).forEach(e),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,hs(t,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",e=this.query||{};return this.opts.timestampRequests!==!1&&(e[this.opts.timestampParam]=ve()),!this.supportsBinary&&!e.sid&&(e.b64=1),this.createUri(t,e)}}let be=!1;try{be=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const Js=be;function ws(){}class Ks extends Es{constructor(t){if(super(t),typeof location<"u"){const e=location.protocol==="https:";let r=location.port;r||(r=e?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,e){const r=this.request({method:"POST",data:t});r.on("success",e),r.on("error",(i,n)=>{this.onError("xhr post error",i,n)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(e,r)=>{this.onError("xhr poll error",e,r)}),this.pollXhr=t}}class O extends C{constructor(t,e,r){super(),this.createRequest=t,ut(this,r),this._opts=r,this._method=r.method||"GET",this._uri=e,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const e=ke(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");e.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(e);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&r.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var i;r.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=O.requestsCount++,O.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=ws,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete O.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}if(O.requestsCount=0,O.requests={},typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Se);else if(typeof addEventListener=="function"){const s="onpagehide"in w?"pagehide":"unload";addEventListener(s,Se,!1)}}function Se(){for(let s in O.requests)O.requests.hasOwnProperty(s)&&O.requests[s].abort()}const Ts=(function(){const s=Ce({xdomain:!1});return s&&s.responseType!==null})();class Os extends Ks{constructor(t){super(t);const e=t&&t.forceBase64;this.supportsBinary=Ts&&!e}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new O(Ce,this.uri(),t)}}function Ce(s){const t=s.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||Js))return new XMLHttpRequest}catch{}if(!t)try{return new w[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const Ee=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class Bs extends Nt{get name(){return"websocket"}doOpen(){const t=this.uri(),e=this.opts.protocols,r=Ee?{}:ke(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,e,r)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const r=t[e],i=e===t.length-1;Tt(r,this.supportsBinary,n=>{try{this.doWrite(r,n)}catch{}i&&dt(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",e=this.query||{};return this.opts.timestampRequests&&(e[this.opts.timestampParam]=ve()),this.supportsBinary||(e.b64=1),this.createUri(t,e)}}const xt=w.WebSocket||w.MozWebSocket;class Us extends Bs{createSocket(t,e,r){return Ee?new xt(t,e,r):e?new xt(t,e):new xt(t)}doWrite(t,e){this.ws.send(e)}}class Ns extends Nt{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const e=us(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(e).getReader(),i=ds();i.readable.pipeTo(t.writable),this._writer=i.writable.getWriter();const n=()=>{r.read().then(({done:l,value:a})=>{l||(this.onPacket(a),n())}).catch(l=>{})};n();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const r=t[e],i=e===t.length-1;this._writer.write(r).then(()=>{i&&dt(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const xs={websocket:Us,webtransport:Ns,polling:Os},Is=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Qs=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function It(s){if(s.length>8e3)throw"URI too long";const t=s,e=s.indexOf("["),r=s.indexOf("]");e!=-1&&r!=-1&&(s=s.substring(0,e)+s.substring(e,r).replace(/:/g,";")+s.substring(r,s.length));let i=Is.exec(s||""),n={},o=14;for(;o--;)n[Qs[o]]=i[o]||"";return e!=-1&&r!=-1&&(n.source=t,n.host=n.host.substring(1,n.host.length-1).replace(/;/g,":"),n.authority=n.authority.replace("[","").replace("]","").replace(/;/g,":"),n.ipv6uri=!0),n.pathNames=Ps(n,n.path),n.queryKey=Ls(n,n.query),n}function Ps(s,t){const e=/\/{2,9}/g,r=t.replace(e,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function Ls(s,t){const e={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,n){i&&(e[i]=n)}),e}const Qt=typeof addEventListener=="function"&&typeof removeEventListener=="function",At=[];Qt&&addEventListener("offline",()=>{At.forEach(s=>s())},!1);class P extends C{constructor(t,e){if(super(),this.binaryType=fs,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(e=t,t=null),t){const r=It(t);e.hostname=r.host,e.secure=r.protocol==="https"||r.protocol==="wss",e.port=r.port,r.query&&(e.query=r.query)}else e.host&&(e.hostname=It(e.host).host);ut(this,e),this.secure=e.secure!=null?e.secure:typeof location<"u"&&location.protocol==="https:",e.hostname&&!e.port&&(e.port=this.secure?"443":"80"),this.hostname=e.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=e.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},e.transports.forEach(r=>{const i=r.prototype.name;this.transports.push(i),this._transportsByName[i]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},e),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Ss(this.opts.query)),Qt&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},At.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const e=Object.assign({},this.opts.query);e.EIO=ge,e.transport=t,this.id&&(e.sid=this.id);const r=Object.assign({},this.opts,{query:e,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&P.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const e=this.createTransport(t);e.open(),this.setTransport(e)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",e=>this._onClose("transport close",e))}onOpen(){this.readyState="open",P.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const e=new Error("server error");e.code=t.data,this._onError(e);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let r=0;r<this.writeBuffer.length;r++){const i=this.writeBuffer[r].data;if(i&&(e+=ks(i)),r>0&&e>this._maxPayload)return this.writeBuffer.slice(0,r);e+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,dt(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,e,r){return this._sendPacket("message",t,e,r),this}send(t,e,r){return this._sendPacket("message",t,e,r),this}_sendPacket(t,e,r,i){if(typeof e=="function"&&(i=e,e=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const n={type:t,data:e,options:r};this.emitReserved("packetCreate",n),this.writeBuffer.push(n),i&&this.once("flush",i),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},e=()=>{this.off("upgrade",e),this.off("upgradeError",e),t()},r=()=>{this.once("upgrade",e),this.once("upgradeError",e)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(P.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Qt&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=At.indexOf(this._offlineEventListener);r!==-1&&At.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,e),this.writeBuffer=[],this._prevBufferLen=0}}}P.protocol=ge;class Zs extends P{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let e=this.createTransport(t),r=!1;P.priorWebsocketSuccess=!1;const i=()=>{r||(e.send([{type:"ping",data:"probe"}]),e.once("packet",p=>{if(!r)if(p.type==="pong"&&p.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",e),!e)return;P.priorWebsocketSuccess=e.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(A(),this.setTransport(e),e.send([{type:"upgrade"}]),this.emitReserved("upgrade",e),e=null,this.upgrading=!1,this.flush())})}else{const E=new Error("probe error");E.transport=e.name,this.emitReserved("upgradeError",E)}}))};function n(){r||(r=!0,A(),e.close(),e=null)}const o=p=>{const E=new Error("probe error: "+p);E.transport=e.name,n(),this.emitReserved("upgradeError",E)};function l(){o("transport closed")}function a(){o("socket closed")}function d(p){e&&p.name!==e.name&&n()}const A=()=>{e.removeListener("open",i),e.removeListener("error",o),e.removeListener("close",l),this.off("close",a),this.off("upgrading",d)};e.once("open",i),e.once("error",o),e.once("close",l),this.once("close",a),this.once("upgrading",d),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||e.open()},200):e.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const e=[];for(let r=0;r<t.length;r++)~this.transports.indexOf(t[r])&&e.push(t[r]);return e}}let Rs=class extends Zs{constructor(t,e={}){const r=typeof t=="object"?t:e;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(i=>xs[i]).filter(i=>!!i)),super(t,r)}};function zs(s,t="",e){let r=s;e=e||typeof location<"u"&&location,s==null&&(s=e.protocol+"//"+e.host),typeof s=="string"&&(s.charAt(0)==="/"&&(s.charAt(1)==="/"?s=e.protocol+s:s=e.host+s),/^(https?|wss?):\/\//.test(s)||(typeof e<"u"?s=e.protocol+"//"+s:s="https://"+s),r=It(s)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const n=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+n+":"+r.port+t,r.href=r.protocol+"://"+n+(e&&e.port===r.port?"":":"+r.port),r}const Ms=typeof ArrayBuffer=="function",Ds=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s.buffer instanceof ArrayBuffer,Je=Object.prototype.toString,Xs=typeof Blob=="function"||typeof Blob<"u"&&Je.call(Blob)==="[object BlobConstructor]",Vs=typeof File=="function"||typeof File<"u"&&Je.call(File)==="[object FileConstructor]";function Pt(s){return Ms&&(s instanceof ArrayBuffer||Ds(s))||Xs&&s instanceof Blob||Vs&&s instanceof File}function ft(s,t){if(!s||typeof s!="object")return!1;if(Array.isArray(s)){for(let e=0,r=s.length;e<r;e++)if(ft(s[e]))return!0;return!1}if(Pt(s))return!0;if(s.toJSON&&typeof s.toJSON=="function"&&arguments.length===1)return ft(s.toJSON(),!0);for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)&&ft(s[e]))return!0;return!1}function Fs(s){const t=[],e=s.data,r=s;return r.data=Lt(e,t),r.attachments=t.length,{packet:r,buffers:t}}function Lt(s,t){if(!s)return s;if(Pt(s)){const e={_placeholder:!0,num:t.length};return t.push(s),e}else if(Array.isArray(s)){const e=new Array(s.length);for(let r=0;r<s.length;r++)e[r]=Lt(s[r],t);return e}else if(typeof s=="object"&&!(s instanceof Date)){const e={};for(const r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=Lt(s[r],t));return e}return s}function Ws(s,t){return s.data=Zt(s.data,t),delete s.attachments,s}function Zt(s,t){if(!s)return s;if(s&&s._placeholder===!0){if(typeof s.num=="number"&&s.num>=0&&s.num<t.length)return t[s.num];throw new Error("illegal attachments")}else if(Array.isArray(s))for(let e=0;e<s.length;e++)s[e]=Zt(s[e],t);else if(typeof s=="object")for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&(s[e]=Zt(s[e],t));return s}const we=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],js=5;var h;(function(s){s[s.CONNECT=0]="CONNECT",s[s.DISCONNECT=1]="DISCONNECT",s[s.EVENT=2]="EVENT",s[s.ACK=3]="ACK",s[s.CONNECT_ERROR=4]="CONNECT_ERROR",s[s.BINARY_EVENT=5]="BINARY_EVENT",s[s.BINARY_ACK=6]="BINARY_ACK"})(h||(h={}));class qs{constructor(t){this.replacer=t}encode(t){return(t.type===h.EVENT||t.type===h.ACK)&&ft(t)?this.encodeAsBinary({type:t.type===h.EVENT?h.BINARY_EVENT:h.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let e=""+t.type;return(t.type===h.BINARY_EVENT||t.type===h.BINARY_ACK)&&(e+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(e+=t.nsp+","),t.id!=null&&(e+=t.id),t.data!=null&&(e+=JSON.stringify(t.data,this.replacer)),e}encodeAsBinary(t){const e=Fs(t),r=this.encodeAsString(e.packet),i=e.buffers;return i.unshift(r),i}}class Rt extends C{constructor(t){super(),this.reviver=t}add(t){let e;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");e=this.decodeString(t);const r=e.type===h.BINARY_EVENT;r||e.type===h.BINARY_ACK?(e.type=r?h.EVENT:h.ACK,this.reconstructor=new Gs(e),e.attachments===0&&super.emitReserved("decoded",e)):super.emitReserved("decoded",e)}else if(Pt(t)||t.base64)if(this.reconstructor)e=this.reconstructor.takeBinaryData(t),e&&(this.reconstructor=null,super.emitReserved("decoded",e));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let e=0;const r={type:Number(t.charAt(0))};if(h[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===h.BINARY_EVENT||r.type===h.BINARY_ACK){const n=e+1;for(;t.charAt(++e)!=="-"&&e!=t.length;);const o=t.substring(n,e);if(o!=Number(o)||t.charAt(e)!=="-")throw new Error("Illegal attachments");r.attachments=Number(o)}if(t.charAt(e+1)==="/"){const n=e+1;for(;++e&&!(t.charAt(e)===","||e===t.length););r.nsp=t.substring(n,e)}else r.nsp="/";const i=t.charAt(e+1);if(i!==""&&Number(i)==i){const n=e+1;for(;++e;){const o=t.charAt(e);if(o==null||Number(o)!=o){--e;break}if(e===t.length)break}r.id=Number(t.substring(n,e+1))}if(t.charAt(++e)){const n=this.tryParse(t.substr(e));if(Rt.isPayloadValid(r.type,n))r.data=n;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,e){switch(t){case h.CONNECT:return mt(e);case h.DISCONNECT:return e===void 0;case h.CONNECT_ERROR:return typeof e=="string"||mt(e);case h.EVENT:case h.BINARY_EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&we.indexOf(e[0])===-1);case h.ACK:case h.BINARY_ACK:return Array.isArray(e)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Gs{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const e=Ws(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function Ys(s){return typeof s=="string"}const Hs=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s};function _s(s){return s===void 0||Hs(s)}function mt(s){return Object.prototype.toString.call(s)==="[object Object]"}function $s(s,t){switch(s){case h.CONNECT:return t===void 0||mt(t);case h.DISCONNECT:return t===void 0;case h.EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&we.indexOf(t[0])===-1);case h.ACK:return Array.isArray(t);case h.CONNECT_ERROR:return typeof t=="string"||mt(t);default:return!1}}function tr(s){return Ys(s.nsp)&&_s(s.id)&&$s(s.type,s.data)}const er=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Rt,Encoder:qs,get PacketType(){return h},isPacketValid:tr,protocol:js},Symbol.toStringTag,{value:"Module"}));function K(s,t,e){return s.on(t,e),function(){s.off(t,e)}}const sr=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class Ke extends C{constructor(t,e,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=e,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[K(t,"open",this.onopen.bind(this)),K(t,"packet",this.onpacket.bind(this)),K(t,"error",this.onerror.bind(this)),K(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...e){var r,i,n;if(sr.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(e.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(e),this;const o={type:h.EVENT,data:e};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof e[e.length-1]=="function"){const A=this.ids++,p=e.pop();this._registerAckCallback(A,p),o.id=A}const l=(i=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||i===void 0?void 0:i.writable,a=this.connected&&!(!((n=this.io.engine)===null||n===void 0)&&n._hasPingExpired());return this.flags.volatile&&!l||(a?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(t,e){var r;const i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[t]=e;return}const n=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let l=0;l<this.sendBuffer.length;l++)this.sendBuffer[l].id===t&&this.sendBuffer.splice(l,1);e.call(this,new Error("operation has timed out"))},i),o=(...l)=>{this.io.clearTimeoutFn(n),e.apply(this,l)};o.withError=!0,this.acks[t]=o}emitWithAck(t,...e){return new Promise((r,i)=>{const n=(o,l)=>o?i(o):r(l);n.withError=!0,e.push(n),this.emit(t,...e)})}_addToQueue(t){let e;typeof t[t.length-1]=="function"&&(e=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((i,...n)=>(this._queue[0],i!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),e&&e(i)):(this._queue.shift(),e&&e(null,...n)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const e=this._queue[0];e.pending&&!t||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:h.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,e){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,e),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case h.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case h.EVENT:case h.BINARY_EVENT:this.onevent(t);break;case h.ACK:case h.BINARY_ACK:this.onack(t);break;case h.DISCONNECT:this.ondisconnect();break;case h.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const e=t.data||[];t.id!=null&&e.push(this.ack(t.id)),this.connected?this.emitEvent(e):this.receiveBuffer.push(Object.freeze(e))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const e=this._anyListeners.slice();for(const r of e)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const e=this;let r=!1;return function(...i){r||(r=!0,e.packet({type:h.ACK,id:t,data:i}))}}onack(t){const e=this.acks[t.id];typeof e=="function"&&(delete this.acks[t.id],e.withError&&t.data.unshift(null),e.apply(this,t.data))}onconnect(t,e){this.id=t,this.recovered=e&&this._pid===e,this._pid=e,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:h.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const e=this._anyListeners;for(let r=0;r<e.length;r++)if(t===e[r])return e.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const e=this._anyOutgoingListeners;for(let r=0;r<e.length;r++)if(t===e[r])return e.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const e=this._anyOutgoingListeners.slice();for(const r of e)r.apply(this,t.data)}}}function F(s){s=s||{},this.ms=s.min||100,this.max=s.max||1e4,this.factor=s.factor||2,this.jitter=s.jitter>0&&s.jitter<=1?s.jitter:0,this.attempts=0}F.prototype.duration=function(){var s=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),e=Math.floor(t*this.jitter*s);s=(Math.floor(t*10)&1)==0?s-e:s+e}return Math.min(s,this.max)|0},F.prototype.reset=function(){this.attempts=0},F.prototype.setMin=function(s){this.ms=s},F.prototype.setMax=function(s){this.max=s},F.prototype.setJitter=function(s){this.jitter=s};class zt extends C{constructor(t,e){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(e=t,t=void 0),e=e||{},e.path=e.path||"/socket.io",this.opts=e,ut(this,e),this.reconnection(e.reconnection!==!1),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor((r=e.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new F({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(e.timeout==null?2e4:e.timeout),this._readyState="closed",this.uri=t;const i=e.parser||er;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=e.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var e;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(e=this.backoff)===null||e===void 0||e.setMin(t),this)}randomizationFactor(t){var e;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(e=this.backoff)===null||e===void 0||e.setJitter(t),this)}reconnectionDelayMax(t){var e;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(e=this.backoff)===null||e===void 0||e.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new Rs(this.uri,this.opts);const e=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=K(e,"open",function(){r.onopen(),t&&t()}),n=l=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",l),t?t(l):this.maybeReconnectOnOpen()},o=K(e,"error",n);if(this._timeout!==!1){const l=this._timeout,a=this.setTimeoutFn(()=>{i(),n(new Error("timeout")),e.close()},l);this.opts.autoUnref&&a.unref(),this.subs.push(()=>{this.clearTimeoutFn(a)})}return this.subs.push(i),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(K(t,"ping",this.onping.bind(this)),K(t,"data",this.ondata.bind(this)),K(t,"error",this.onerror.bind(this)),K(t,"close",this.onclose.bind(this)),K(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(e){this.onclose("parse error",e)}}ondecoded(t){dt(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,e){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new Ke(this,t,e),this.nsps[t]=r),r}_destroy(t){const e=Object.keys(this.nsps);for(const r of e)if(this.nsps[r].active)return;this._close()}_packet(t){const e=this.encoder.encode(t);for(let r=0;r<e.length;r++)this.engine.write(e[r],t.options)}cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,e){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,e),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const e=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(i=>{i?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",i)):t.onreconnect()}))},e);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const et={};function yt(s,t){typeof s=="object"&&(t=s,s=void 0),t=t||{};const e=zs(s,t.path||"/socket.io"),r=e.source,i=e.id,n=e.path,o=et[i]&&n in et[i].nsps,l=t.forceNew||t["force new connection"]||t.multiplex===!1||o;let a;return l?a=new zt(r,t):(et[i]||(et[i]=new zt(r,t)),a=et[i]),e.query&&!t.query&&(t.query=e.queryKey),a.socket(e.path,t)}Object.assign(yt,{Manager:zt,Socket:Ke,io:yt,connect:yt});var rr=class{constructor(s){this.publicKey=s.publicKey}getPublicKey(){return this.publicKey}},Te={trigger:{loading:"Cargando..."},modal:{titles:{selectAsset:'Selecciona el <span class="highlight">stablecoin</span>',selectNetwork:'Selecciona la <span class="highlight">red</span>',scanQr:'Depósito <span class="highlight">{symbol}</span>',success:'¡Gracias por <span class="highlight">tu compra!</span>',error:"Error en el Pago",idle:"Estado inesperado",processing:'¡Procesando <span class="highlight">tu pago!</span>'},subtitles:{selectAsset:"Selecciona la stablecoin con la que deseas pagar",selectNetwork:"Selecciona la red de tu preferencia",idle:"Ocurrio un error inesperado"},actions:{back:"Volver",close:"Cerrar",support:"Soporte",scanApp:'Escanea con tu celular y continua desde la app de <span style="color: var(--apolo-accent)">Apolo Pay</span>',copy:"Copiar",copied:"¡Copiado!",payFromDevice:"Pagar desde este dispositivo"},labels:{network:"Red",address:"Dirección de depósito",amount:"Monto",product:"Producto o Servicio",minutes:"min",seconds:"seg",amountSent:"Monto Enviado",paid:"Pagado",remainingToPay:"Restante por pagar"},info:{noReloadPageTitle:'¡Por favor no <span style="color: var(--apolo-accent)">recargues la página!</span>',noReloadPageSubTitle:"La pantalla se actualizara cuando confirmes tu pago",selectNetworkLater:"Luego podrás seleccionar la red de tu preferencia"},warnings:{networkMatch:"Asegúrate de que la <strong>red de tu wallet coincida</strong> con la red de destino.",noNFT:"No envíes NFTs a esta wallet.",onlyToken:"Solo se aceptan <strong>depósitos en {symbol}</strong>. El envío de otro tipo de token podría resultar en su pérdida.",timer:"Realiza el pago dentro del tiempo indicado. <strong>{time}</strong> De lo contrario, el código QR se vencerá."},success:{message:"Tu pago fue exitoso y en breve recibirás un correo",message2:"con los detalles.",details:"Detalles de la compra",support:"Cualquier duda o inquietud puedes comunicarte con soporte"}},successes:{success:"Éxito"},errors:{generic:"Ocurrió un error inesperado.",publicKeyMissing:"Falta la Public Key",config:"Error de Configuración",timeout:"El tiempo para realizar el pago ha expirado. Por favor genera una nueva orden.",paymentFailed:"El pago ha fallado. Por favor genera una nueva orden.",connectError:"Error de conexión.",socketConnectionError:"Error de conexión en el socket.",dataLoadError:"No se pudo cargar los datos de pago.",qrFetchError:"Fallo al obtener los detalles del código QR.",paymentProcessNotAvailable:"El proceso de pago no está disponible.",getAssetsError:"Error al obtener los activos.",unknownError:"Ocurrió un error inesperado."}},ir={trigger:{loading:"Loading..."},modal:{titles:{selectAsset:'Select <span class="highlight">stablecoin</span>',selectNetwork:'Select <span class="highlight">network</span>',scanQr:'Deposit <span class="highlight">{symbol}</span>',success:'Thanks for <span class="highlight">your purchase!</span>',error:"Payment Error",idle:"Unexpected state",processing:'Processing <span class="highlight">your payment!</span>'},subtitles:{selectAsset:"Select the stablecoin you want to pay with",selectNetwork:"Select your preferred network",idle:"An Unexpected error occurred"},actions:{back:"Back",close:"Close",support:"Support",scanApp:'Scan with your phone and continue from <br><span style="color: var(--apolo-accent)">Apolo Pay</span> app',copy:"Copy",copied:"Copied!",payFromDevice:"Pay from this device"},labels:{network:"Network",address:"Deposit Address",amount:"Amount",product:"Product or Service",minutes:"min",seconds:"sec",amountSent:"Amount sent",paid:"Paid",remainingToPay:"Remaining balance to pay"},info:{noReloadPageTitle:'Please do not <span style="color: var(--apolo-accent)">reload the page!</span>',noReloadPageSubTitle:"The screen will update when you confirm your payment",selectNetworkLater:"You will be able to select your preferred network later"},warnings:{networkMatch:"Ensure your <strong>wallet network matches</strong> the destination network.",noNFT:"Do not send NFTs to this wallet.",onlyToken:"Only <strong>{symbol} deposits</strong> are accepted. Sending other tokens may result in loss.",timer:"Complete payment within <strong>{time}</strong>. Otherwise, the QR code will expire."},success:{message:"Your payment was successful. You will receive an email",message2:"shortly.",details:"Purchase Details",support:"Any doubt or inquiry you can contact support"}},successes:{success:"Success"},errors:{generic:"An unexpected error occurred.",publicKeyMissing:"Public Key is missing",config:"Config Error",timeout:"The payment time has expired. Please generate a new order.",paymentFailed:"The payment has failed. Please generate a new order.",connectError:"Connection error in real time.",socketConnectionError:"Connection error in socket.",dataLoadError:"Could not load payment options.",qrFetchError:"Failed to get payment details.",paymentProcessNotAvailable:"The payment process is not available.",getAssetsError:"Failed to get assets.",unknownError:"An unexpected error occurred."}},y=class{static setLocale(s){this._currentLocale=s,this._dictionary=s==="en"?ir:Te}static get current(){return this._currentLocale}static get t(){return this._dictionary}static interpolate(s,t){return s.replace(/{(\w+)}/g,(e,r)=>typeof t[r]<"u"?String(t[r]):e)}};y._currentLocale="es",y._dictionary=Te;var D=(s=>(s.success="success",s.payment_success="payment_success",s.payment_failed="payment_failed",s.payment_partial="payment_partial",s.payment_timeout="payment_timeout",s.connect_error="connect_error",s.socket_connection_error="socket_connection_error",s.data_load_error="data_load_error",s.qr_fetch_error="qr_fetch_error",s.paymentProcessNotAvailable="payment_process_not_available",s.get_assets_error="get_assets_error",s.unknown_error="unknown_error",s))(D||{}),Mt=class{constructor({code:s,message:t}){this.code=s,this.message=t}},Dt=class xe extends Mt{constructor({code:t,message:e,result:r}){super({code:t,message:e}),this.result=r}static fromJson(t,{code:e,message:r,result:i}={}){const n=t.status||e||"success",o=t.message||r||y.t.successes.success,l=i?.(t.result)||t.result||t;return new xe({code:n,message:o,result:l})}},gt=class jt extends Mt{constructor({code:t,message:e,error:r}){super({code:t,message:e}),this.error=r}static fromError(t,{code:e,message:r}={}){if(t instanceof jt)return t;const i=e||t.statusCode||"unknown_error",n=r||t.message||y.t.errors.unknownError,o=t.error||t;return new jt({code:i,message:n,error:o})}},nr="https://p2p.apolopay.app",Oe="https://pb-api.apolopay.app",or="https://pb-ws.apolopay.app",Xt=class{static async getAssets(){try{const t=await(await fetch(`${Oe}/payment-button/assets`,{method:"GET",headers:this.headers()})).json();return Dt.fromJson(t)}catch(s){throw gt.fromError(s,{code:"get_assets_error",message:y.t.errors.getAssetsError})}}static async fetchQrCodeDetails({processId:s,assetId:t,networkId:e,publicKey:r}){try{const i=await fetch(`${Oe}/payment-button/process/confirm`,{method:"POST",headers:this.headers(r),body:JSON.stringify({processId:s,assetId:t,networkId:e})}),n=await i.json();if(!n.result)throw new gt({code:"payment_process_not_available",message:y.t.errors.paymentProcessNotAvailable});const o=n.result.wallet,a=n.result.network==="apolopay"?`${nr}/payment-process/${s}`:o;return Dt.fromJson(n,{result:d=>{const p=Date.now()+600*1e3;let E=d.expiresAtMs??d.expiresAt;const j=(rt=>{if(!rt)return p;let B=0;if(!isNaN(Number(rt)))B=Number(rt);else if(typeof rt=="string"){const Ne=new Date(rt).getTime();isNaN(Ne)||(B=Ne)}if(B===0)return p;if(B<1e10)B*=1e3;else if(B>1e13)for(;B>2e13;)B=Math.floor(B/1e3);return B})(E);return{...d,address:a,qrCodeUrl:`https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${a}&ecc=H`,paymentUrl:a.startsWith("http")?a:void 0,expiresAtMs:j}}})}catch(i){throw gt.fromError(i,{code:"qr_fetch_error",message:y.t.errors.qrFetchError})}}};Xt.headers=s=>{const t={"Content-Type":"application/json"};return s&&(t["x-public-key"]=s),t};var ar=class{constructor(s){this.sessionOptions=null,this.socket=null,this.client=s}connect(s){if(typeof window>"u")return;if(this.sessionOptions=s,this.socket&&this.socket.connected)return this.disconnect();this.socket=yt(or,{extraHeaders:{"x-public-key":this.client.getPublicKey()},transports:["polling"]});const{processId:t}=s;this.socket.on("connect",()=>this.socket?.emit("process:connect",{processId:t})),console.log(`Conectado a Socket.io para processId: ${t}`),this.socket.on("process:message",e=>this.handleWebSocketMessage(e)),this.socket.on("connect_error",e=>{console.error("Error en conexión Socket.io:",e),this.sessionOptions?.onError?.({code:"connect_error",message:y.t.errors.connectError,error:e}),this.disconnect()}),this.socket.on("disconnect",e=>{console.info(`Socket.io Desconectado: ${e}`),this.socket=null})}handleWebSocketMessage(s){if(!s.success)return this.sessionOptions?.onError?.({code:"payment_failed",message:s.message,error:s.result});if(s.event==="partial_payment")return this.sessionOptions?.onPartialPayment?.({code:"payment_partial",message:s.message,result:s.result});if(s.event==="funds_received")return this.sessionOptions?.onSuccess?.({code:"payment_success",message:s.message,result:s.result})}disconnect(){this.socket&&(this.socket.disconnect(),this.socket=null)}},Be=class{constructor(s){this.client=s,this.socket=new ar(this.client)}getPublicKey(){return this.client.getPublicKey()}async getAssets(){return(await Xt.getAssets()).result}async fetchQrCodeDetails(s,t){const e=await Xt.fetchQrCodeDetails({...s,processId:t.processId,publicKey:this.client.getPublicKey()});return this.socket.connect(t),e.result}disconnectWebSocket(){this.socket.disconnect()}},g=(s=>(s[s.SELECT_ASSET=0]="SELECT_ASSET",s[s.SELECT_NETWORK=1]="SELECT_NETWORK",s[s.SHOW_QR=2]="SHOW_QR",s[s.RESULT=3]="RESULT",s))(g||{});const Ue=U`
4
+ :host {
5
+ /* --- API PÚBLICA DE COLORES (THEMING) --- */
6
+ --apolo-primary: var(--payment-button-primary, #0388c0);
7
+ --apolo-primary-darkest: var(--payment-button-primary-darkest, #041c4c);
8
+ --apolo-on-primary: var(--payment-button-on-primary, #ffffff);
9
+
10
+ --apolo-bg: var(--payment-button-bg, #f6f2ec);
11
+ --apolo-text: var(--payment-button-text, #1c315c);
12
+ --apolo-text-muted: var(--payment-button-text-muted, #6b7280);
13
+ --apolo-accent: var(--payment-button-accent, #ea580c);
14
+ --apolo-border: var(--payment-button-border, #e5e7eb);
15
+
16
+ /* --- API PÚBLICA DE FORMA Y TIPOGRAFÍA --- */
17
+ --apolo-radius: var(--payment-button-radius, 12px);
18
+ --apolo-radius-lg: var(--payment-button-radius-lg, 30px);
19
+ --apolo-font: var(--payment-button-font, 'Inter', system-ui, -apple-system, sans-serif);
20
+ --apolo-shadow: var(--payment-button-shadow, 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1));
21
+ --apolo-z-index: var(--payment-button-z-index, 9999);
22
+ }
23
+
24
+ /* Reset global para componentes internos */
25
+ * {
26
+ box-sizing: border-box;
27
+ font-family: var(--apolo-font);
28
+ }
29
+ `,Vt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA5QAAANxCAYAAACbv/Z5AAAACXBIWXMAABYlAAAWJQFJUiTwAAAgAElEQVR4nOzdDXRd9Xnv+f/xcWRCwLxc2RhjeUmOSDGmIENKAoEiY8CQ5Wbkye2604Y08nR1ks6swabTSd0pHsnX3HVPetta5q7em6QzS4KkaXJnpVZnfAEHjDcYcIAYy8bGDvhF15KxsRUQ4iW2I+nMevZ5tn2so5dz9tn/c/bL97MWC4pcY23tnHOe/X9+z2MAAMD40hmnVf4a94sAAMCkuAQAAFwonXGajTGdxph6/UKPMebhkTXNTsEvBgAgwSgoAQBQ6YwjBeQGY0zLBNekyxizbmRNc2/BVwAASCAKSgBA4qUzzuXGmNXGmLYirsWgMWajMaZjZE3zYMFXAQBIEApKAECiaUZSTiUvL/E69OppZVfBVwAASAgKSgBAImlOUk4km8v8/h3NV/YUfAUAgJijoAQAJIrmJKWQDHp6a5cWlrTBAgASg4ISAJAIeTnJVT7aW4vl5itH1jS3c1cBAJKAghIAEHvpjNOiOcn6Cn2vkq9cyZoRAEDcUVACAGIrnXGatJAsNyfpl6OFJWtGAACxREEJAIgdbW/dYCEn6VeHToQlXwkAiBUKSgBArKQzTrvlnKRfg1pUdnDHAQDigoISABALugaks4I5Sb96dBos+UoAQORRUAIAIk3XgHRWMSfpV7cWluQrAQCRRUEJAIgkzUm26SqQKFsnGUvylQCAKKKgBABETjrjtOrQnbDlJP0a1NPKrmj+8QEASUVBCQCIDM1JSiHZFNOfmqODe8hXAgAigYISABB6mpOUQrIlIT+tLi0syVcCAEKNghIAEFqak1ytWcmkkTbYjSNrmtu5QwEAYUVBCQAIJc1JtkVgDYhtvZqv7I73twkAiCIKSgBAqGhOsi2Ca0Bsc7Sw7In3twkAiBIKSgBAKGhOUgrJVn4ik+rSwpI1IwCAqqOgBABUXTrjSE5wVYzWgNg2qEN7OuL9bQIAwo6CEgBQNemM06LTW5Oek/RL8pUrWTMCAKgWCkoAQMWlM06TFpLkJIPhaGHJmhEAQEVRUAIAKkbXgLTpKhAEr0NbYclXAgAqgoISAFAR6Yzj7ZMkJ2nXoA7t6YrzNwkACAcKSgCAVboGpJOcZMX1aGFJvhIAYA0FJQDACl0D0klOsuq6tbAkXwkACBwFJQAgUJqT9NpbEQ7SBrtRMpbkKwEAQaKgBAAEJp1xWnV6KznJcOrVoT3kKwEAgaCgBACUTXOSUkg2cTUjwdHCknwlAKAsFJQAAN80JymFZAtXMZK6NF9JGywAwBcKSgBAyfJykqtob408N185sqa5PekXAgBQOgpKAEBJNCfZxhqQ2OnV08rupF8IAEDxKCgBAEVJZ5wmbW9lDUi8OVpY9iT9QgAApkZBCQCYlLa3SiHZOtmvQ+x06OAe8pUAgAlRUAIAJpTOOO3kJBNtUIvKjqRfCADA+CgoAQAF0hmnRU8lyUnCaL5yJWtGAABjUVACAM7RNSCd5CQxgW7NV/aO/2UAQNJQUAIAvJxkm64CAaayTjKW5CsBABSUAJBw6YyzWotJcpIoxaCeVnZx1QAguSgoASCh0hmnWdtbyUmiHD1aWJKvBIAEoqAEgITRnKQM3GnhZ48AdelEWPKVAJAgFJQAkBCak/TaWwEbpA12I/lKAEgOCkoASIB0xmnVU0lykqiEXj2tJF8JADFHQQkAMaY5yTbWgKBKHM1X9vADAIB4oqAEgBjSnKQUkq38fBECXVpY0gYLADFDQQkAMZKXk1xFeytCxs1XjqxpbucHAwDxQUEJADGRzjgtmpNkDQjCTPKVK1kzAgDxQEEJABGXzjhNWkiSk0SUOFpYsmYEACKMghIAIkrbWzeQk0TEdehEWPKVABBB0/ihAUD0pDOO5CSPUEwiBtx7We9pAEDEcEIJABGia0A6yUkipnp0Giz5SgCICApKAIgAXQPSSU4SCdGthSX5SgAIOQpKAAgxzUm2aVsgkDTrJGNJvhIAwouCEgBCKp1xWnXoDvskkWS9OrSni7sAAMKHghIAQkZzklJINvGzAc5xtLAkXwkAIUJBCQAhoTlJKSRb+JkAE+rSwpJ8JQCEAAUlAFSZ5iRXa1YSwNQkU7lxZE1zO9cKAKqLghIAqkhzkm2sAQF86dVpsN1cPgCoDgpKAKgCzUm2sQYECISjhWUPlxMAKouCEgAqSNtbJSfZynUHAteh+UrWjABAhVBQAkCFpDOO5L1WsQYEsGpQi8oOLjMA2EdBCQCWpTNOi55KkpMEKkfylStZMwIAdlFQAoAl6YzTpIUkOUmgehwtLFkzAgAWUFACQMA0J9mmq0AAhMM6yViSrwSAYFFQAkCA0hnH2ydJThIIn0GdBtvFzwYAgkFBCQAB0DUgneQkgUjo0cKSfCUAlImCEgDKkM449ZqTbOE6ApHTrYUl+UoA8ImCEgB80Jyk194KILqkDXYj+UoA8IeCEgBKlM44rXoqSU4SiI9e3V9JvhIASkBBCQBF0pykFJJNXDMgthxtg+3hRwwAU6OgBIApaE5SWltbJ/+VAGKkSwtL2mABYBIUlAAwgbyc5CraW4FEcvOVI2ua2/nxA8D4KCgBYBzpjNOi7a2sAQHQq6eV3Ym/EgAwBgUlAORJZ5wmLSSbuS4AxpB85UrWjADAeRSUAHC+vXUDOUkARejQibDkKwEkHgUlgMRLZ5x2cpIASjSoRWUHFw5AklFQAkgsXQPSSU4SQBl6NF/pcBEBJBEFJYDE0TUgneQkAQSoWwtL8pUAEoWCEkBiaE6yTVeBAIAN6yRjSb4SQFJQUAJIhHTGadWhO+QkAdg2qKeVXVxpAHFHQQkg1jQnKYVkEz9pABXm6OAe8pUAYouCEkAsaU5SCskWfsIAqqxLC0vylQBih4ISQKxoTnK1ZiUBICykDXbjyJrmdn4iAOKEghJAbGhOso01IABCrFfzld38kADEAQUlgMjTnGQba0AARIijhWUPPzQAUUZBCSCyNCcphWQrP0VYceaMMTNmcG1hU5cWlqwZARBJFJQAIimdcSSHtIo1ILDmwD6TevVl93fP3rHEmAWNXGvYMqhDezq4wgCihoISQKSkM06LTm8lJwk7Bk6a1PZtxhzru/C3v6bOZO95wJhLZ3LhYYvkK1eyZgRAlFBQAoiEdMZp0kKSnCTsOHPGpF7cZsz+vZP/9jfdYrK33k4rLGxytLBkzQiA0KOgBBBqugakTVeBAFa4ra27d+Yyk8WYMSNXVN50Cz8Q2NShrbDkKwGEFgUlgNBKZxxvnyQ5Sdhx+GDuVHLoA3+//czLTHbp/W47LGDJoA7t6eICAwgjCkoAoaNrQDrJScKaD4dM6tmnCnOSfi1oNNk77yZfCZt6tLAkXwkgVCgoAYSGrgHpJCcJayQn6bW32nDr7SYrbbDkK2FPtxaW5CsBhAIFJYCq05yk194K2LF7Z66YLDYn6ZfkK+W08rpF/CBh0zrJWJKvBFBtFJQAqiqdcVp1eis5SdhxrM+ktj7tPyfpV+1sk71zCflK2NSrQ3vIVwKoGgpKAFWhOUkpJJv4CcAKyUluf84dvFNVC2/ITYQlXwl7HC0syVcCqDgKSgAVpTlJKSRbuPKwQnKSkpGU9tawkEyl7K8kXwm7urSwJF8JoGIoKAFURF5OchXtrbDmwL7cqaTtnKRfsmZETivJV8IeyVRuHFnT3M41BlAJFJQArNOcZBtrQGCN5CS3bzNm4GQ0rvE1dbl8Ze3sgi8BAenVabDdXFAANlFQArBGc5JtrAGBNZKTlNbW/XujeY0lX3nHEtpgYZOjhWUPVxmADRSUAAKn7a2Sk2zl6sIKLycpf4W1vbVYXr5SWmEBe7q0sGTNCIBAUVACCFQ647STk4RVkpOUU8lKrwGxTfKVclq5oJH7B7YM6tCeDq4wgKBQUAIIRDrjtOipJDlJ2DFwMpeTPNYX7wss+cp7HmDNCGySfOVK1owACAIFJYCypDNOkxaS5CRhh7S3vrgtujlJv7w2WPKVsMfRwpI1IwB8o6AE4IvmJNt0FQhghdvaGoecpF8zZuSKStlfCdjToa2w5CsBlIyCEkDJ0hlntRaT5CRhh6wB2fp0/HKSfkm+cun9bjssYMmgDu3p4gIDKAUFJYCi6RqQTnKSsEbWgDz7VPxzkn4taDTZO+8mXwmberSwJF8JoCgUlACmlM449VpIkpOEHZKT9NpbMbVbbzdZaYMlXwl7urWwJF8JYFIUlAAmpDlJr70VsGP3zlwxmdScpF+Sr5TTyusWRfPPj6hYJxlL8pUAJkJBCWBc6YzTqtNbyUnCDslJyhqQgZNc4HLUzjbZO5eQr4RNvTq0h3wlgAIUlAAuoDlJKSSbuDKwQnKS258z5vBBrm+QFt6QmwhLvhL2OFpYkq8EcA4FJQCX5iSlkGzhisAKyUlKRlLaW2GHZCplfyX5StjVpflK2mABUFACSZeXk1xFeyusObAvdypJTrIyZM2InFaSr4Q9UkxuHFnT3M41BpKNghJIMM1JtrEGBNZITlJOJFkDUh3X1OXylbWzk/jdozJ69bSym+sNJBMFJZBAmpNsYw0IrJGcpBSS+/dyjcNA8pV3LKENFjY5Wlj2cJWBZKGgBBJE21slJ9nKzx1WeDlJ+Yv21nDx8pXSCgvY06GDe8hXAglBQQkkRDrjtJOThFWHD5rUi9uMGfqA6xxmkq+U08oFjUm/ErBnUIvKDq4xEH8UlEDMpTNOi55KkpOEHQMnc/skyUlGi+Qr73mANSOwSfKVK1kzAsQbBSUQU+mM06SFJDlJ2CHtrXIiSU4y2rw2WPKVsMfRwrKXawzEDwUlEDOak2zTVSCAFe7AHXKS8TFjRq6olP2VgD3rJGNJvhKIFwpKIEbSGWe1FpPkJGGHrAHZ+jQ5ybiSfOXS+912WMCSQZ0G28UFBuKBghKIAV0D0klOEtbIGpBnnyInmRQLGk32zrvJV8KmHi0syVcCEUdBCURYOuPUayFJThJ2SE7Sa29F8tx6u8lKGyz5StjTrYUl+UogoigogQjSnKTX3grYsXtnrpgkJ5lskq+U08rrFiX9SsAeaYPdSL4SiCYKSiBi0hmnVae3kpOEHZKTlDUgAye5wDhP1ozI4B7ylbCnV/dXkq8EIoSCEogIzUlKIdnEzwxWSE5y+3PGHD7I9cXEFt6QKyzJV8IeRwtL8pVABFBQAiGnOUkpJFv4WcEKyUlKRlLaW4FiSKZS9leSr4RdXZqvpA0WCDEKSiCk8nKSq2hvhTUH9uVOJclJwg9ZM3LHEncqLGCJm68cWdPczgUGwomCEgghzUm2sQYE1khOUk4kWQOCIEi+8s4lxtTO5nLCll49rezmCgPhQkEJhIjmJNtYAwJrJCcpheT+vVxjBE/ylXJiSRss7HG0sOzhGgPhQEEJhIC2t0pOspWfB6zwcpLyF+2tsMnLV8rgHsCeDh3cQ74SqDIKSqDK0hmnnZwkrDp80KRe3GbM0AdcZ1SO5CuX3s+aEdg0qEVlB1cZqB4KSqBK0hmnRU8lyUnCjoGTuX2S5CRRTZKvvOcB1ozAJslXrmTNCFAdFJRAhaUzTpMWkuQkYYe0t8qJJDlJhInXBku+EvY4Wlj2co2ByqGgBCpEc5JtugoEsGP3ztzQHXKSCKMZM3JFpeyvBOxZJxlL8pVAZVBQAhWQzjirtZgkJwk7ZA3I1qfJSSIaamfn1oyQr4Q9gzoNtotrDNhFQQlYpGtAOslJwhpZA/LsU+QkEU0LGk32zrvJV8KmHi0syVcCllBQAhakM0695iRbuL6wQnKS0toqa0CAqLv1dpOVNljylbCnWwtL8pVAwCgogQBpTtJrbwXsOLDPpLY/R04S8SJrRiRfed0ifrCwRdpgN5KvBIJFQQkEJJ1xWvVUkpwk7JCcpKwBGTjJBUZ8yZoRKSzJV8KeXt1fSb4SCAAFJVAmzUlKIdnEtYQVkpOUE8nDB7m+SI6FN+QKS/KVsMfRNtgerjHgHwUl4JPmJKW1tZVrCCskJykZSclKAkkkmUpvfyVgT5cWlrTBAj5QUAIlystJrqK9FdZITlIKSdaAALl85R1L3KmwgCVuvnJkTXM7FxgoDQUlUALNSbaxBgTWSE5SCknWgACFJF8p+ytrZxd8CQhIr55WdnNBgeJQUAJFSGecJs1JNnO9YIW0t764zZj9e7m+wFS8NljWjMAeyVeuZM0IMDUKSmAS2t66gZwkbDq3T5I1IEDxZszIFZWyvxKwp0MnwpKvBCZAQQlMIJ1x2slJwqrDB3OnkuQkAf8kX7n0ftaMwKZBLSo7uMpAIQpKYAxdA9JJThLWDJzM7ZMkJwkER/KV9zzAmhHY1KttsA5XGTiPghJQugakk5wkrJGcpNfeCsCOW283WWmDJV8Je7p1cA/5SiSeoaAEzuUk23QVCGDH7p25YpKcJGCf5CvvvNuY6xZxsWHTOslYkq9E0lFQItHSGWe1FpPkJGGHrAHZ+jQ5SaAaamfn1oyQr4Q9g3pa2cU1RlJRUCKRNCcp01ubuANgxYdDJrX9OXfwDoAqW9CYO7EkXwl7HB3cQ74SiUNBiUTRnKQUki385GGF5CQlIyntrQDCQzKVsr+SfCXs6tLCknwlEoOCEomgOUmvvRWw48C+3KkkOUkgvGTNiOyvJF8Je6QNdiP5SiQFBSViL51xWvVUkpwk7JCcpKwBGTjJBQaiQtaMSL6ydjY/MtjSq/nKbq4w4oyCErGlOck21oDAGslJSmvr/r1cYyCqFt5gsncsoQ0WNjlaWPZwlRFHFJSIHc1JSiHZyk8XVng5SfmL9lYg+rx8pbTCAvZ0aWFJGyxihYISsZLOOO3GmFW0t8KawwdN6sVtrAEB4kjylXJauaCRHy9scfOVI2ua27nCiAsKSsRCOuO0aE6ynp8orBg4mctJHuvj+gJxJ/nKex5gzQhsknzlStaMIA4oKBFp6YzTpIUkOUnYIe2tciJJThJIHq8Nlnwl7HG0sGTNCCKLghKRpGtANpCThE3uwB1ykkCyzZiRKyplfyVgT4furyRficihoETkpDOOt0+SnCTskDUgW58mJwngvNrZuTUj19RxUWDLoA7t6eIKI0ooKBEZugakk5wkrJE1IM8+RU4SwMQWNJrsnXeTr4RNPVpYkq9EJFBQIvR0DUgnOUlYIzlJr70VAIpx6+0mK22w5CthT7cWluQrEWoUlAgtzUlKa+tqfkqw5sA+k9r+HDlJAKWTfKWcVl63iIsHm9ZJxpJ8JcKKghKhlM44rTp0h5wk7JCcpKwBGTjJBQZQHlkzIoN7yFfCnl4d2kO+EqFDQYlQ0ZykFJJN/GRgheQk5UTy8EGuL4BgLbwhV1iSr4Q9jhaW5CsRGhSUCAXNSUoh2cJPBFZITlIykpKVBABbJFPp7a8E7OnSwpJ8JaqOghJVpTlJyUiuor0V1khOUgpJ1oAAqJSZl5nsHUvcqbCAJZKp3DiyprmdC4xqoqBE1WhOso01ILBGcpJSSLIGBEC1SL5S9lfWzuZHAFt6dRpsN1cY1UBBiYrTnGQba0BgjeQkpZDcv5drDCAcJF8pJ5asGYE9jhaWPVxjVBIFJSpG21slJ9nKVYct5/ZJsgYEQNjImhHJVsr+SsCeDs1XsmYEFUFBiYpIZ5x2cpKw6vBBk3pxGzlJAOEn+cql97NmBDYNalHZwVWGbRSUsKpm2dr6kS/ets18+mJykrBj4GRunyQ5SQBRI/nKex5gzQhs6k29+vKS4X/+P5gGC2vSXFrYlG68q2laf//q1PCwyV52mTHTpnG9EQxZA7Jju0ltfdrNTAJB+8LMD82PFv3S/OtZA+bQrz9tjp0h+4aASd57987c030Z2jN9OlcYwZHBdFufvtwc2Pcvo0NvUVDCGl65UBGp/j6TPnHcjF77OZOdczUXHeWRD2CSlSQnCQvmzThjHqnvM/de+X7uN59hzI8WHTDPvHeFebS3zvRTWCJor77sFpbZO+825rpFXF6URx64SgSEwXSoEApKVM7wsJm2/02T7esz2WuvNdnLr+DiozS5p63kJGHFzOkjZuXV75qH5h0b97eXAvMLM4dM14k5pvP4VWZomCYfBEiKgGefMqZnZ27NCPlK+MBgOlQDGUpYVbNsrawG2TbefyNbO8s9sTQXXVTwNeAC0hYmH7TIScKSr84aMI/UH3WLymLIKeVjfXPNT0/V8iOBHQsacyeW5CtRjMkH0y0Z7t/sFPxbICCcUKJqUgOnTHrglMk2LDCj8+rIjqCQPLGXJ63yxBWwQHKSa+uPmoWf+aSk31zaYv+68Yj56uwBs7HvGvPK0KUFvwYoixQI8hDtpltMVtaMsL8S42EwHUKAT/CoutSRwyZ9/B0z2rCAfCXOO7DPpLY/R9sOrJCC8KG6d9yTyXLkBvcccE8qH+2dTxssgiWvf5KvPLAvt7+SfCU88sDVa28FqoyCEuFw+nQuX3n8uMk2NJCvTDLJScrT1oGTSb8SsMDLSbbOOVF0e2sxpDC994r33Xzlxr65/OgQrKEPcm3/+/fmCkvylcnGYDqEDBlKWDVZhnIyclIpJ5bkKxNEcpJyInn4YNKvBCyRok9OJeV00ibJV8o0WJkKC1ix8AaTvWMJbbBJ438wHRlKWMUJJUIpdeJ4Ll9ZN9+M1jfwQ4ozLyfJVDpYIvlIyUlKe2olSMH63d866OYq1/fON/s/vpgfLYK1f69JHX47l6+UE0vEG4PpEHIUlAiv4eHz+UrZX1k7ix9W3EhOUtp2WAMCC6SlVSa3lpuT9EsK2M037nNXjDzWfw35SgQrP18pp5ULGrnAccNgOkQEBSXCT/KVb+xxc5Xu/spLmKYYedK2I2+QPG2FJavq3gk8J+mXZDalqJWiUopLIFCSr3yy281Vuvsra2dzfeOAwXSIEDKUsMpvhnIybr5S9leyZiR65Gmr7MnavzfpVwKW3Hvl++aR+j7rOUm/JF/57YMNrBmBPV4bLPnKaLIzmI4MJaziEzkix8tXumtG5jHpLirOjTfnaSss8PZCVion6Zf8OWXNiAzskcE9UmACgZIJoAd0Gqzsr0Q0MJgOEUZBiWgaHjbT3n7LmL6jZnTh9awZCTNZzi2nkuQkYYG0tD4075jbVholcpIqf3ltsOQrESjpBpFTrt2vm+zS+1kzEmYMpkMM0PIKq2y0vI5HCkopLFkzEiIDJ3MfaMhJwhIpIqWYDENOshxSTD7aO9/89FRtdL8JhJvkK+95wJhLZ/KDCpPKDaaj5RVW8UgUVqUb76o3xrTa/u+kZHBPf59JDQ+b7GWXGTNtWsGvQYXI09Yd23O7sj4c4qojcNLW+qNFvzTLa98zM6ZlI3+B5Xu498pBc9+Vg+bQrz9tjtEGi6BJO6W0wspvK0N7mEFQXbpPMlW5U8nHR4fe6i34t0BAeEVBrKT6+0z6xPHcmpE5V/PDrTT5wCJPW2nbgQWSP5SBO9IqGkeyL1PylXJS+VjfXPKVCJ6sGdm902TvvNuY6xZxgSuNwXSIKQpKxI/kK/e/abJ9fbk1I+Qr7dOnreQkYYO0tHrtrUkgK0buveJ903ViDvlKBE+KGlmS37Mzt2aEfGVFMJgOcUaGElZVKkM5mWztrNyaEfKVwZM2KvlgQk4Slkhx9Uj90cjnJP2SU0o5rSRfCWsWNOZOLMlX2hGOwXRkKGEVJ5SIvdTAKXfNSLZhgRmVNSNkR8rnTaWTJ66ABZKTXFt/1G0DTTJvHcpXZw+Y9b3zzf6PL+Z2Q7Ck4JGHgrK/UtaMsL8yGDxwRYLwyRqJkTpy2KSPv5PbX0m+0j+ZSie7smjbgQVSQD1U9457MonzpMDefOM+96RSJsLSBotAyeu55CsP7MvtryRf6Z88cPXaW4GEoKBEssg0WMlXHj9usg0N5CtLITlJWQMycDI6f2ZEhpeTbJ1zIrHtrcXIz1du7Jsb/j8womXog9yp2v69ucKSfGVpGEyHhCJDCavCkKGcjJxUyokl+cpJSNuOnEgePjjxrwHKIEWSnErK6SSKJ/nKR3vrzDPv8WAMliy8wWTvWEIb7FTCP5iODCWs4oQSiZY6cTyXr6ybb0brG5J+OS7k5SSZSgdLJB8pOUlp50TppAD/7m8dNK8MXWq+fbCBNSMI3v69JnX47Vy+Uk4scSEeuAIuCkpgePh8vlL2V9bOSvwlcXOS0rbDGhBYIC2tMrmVnGQwpCB//uY97oqRx/qvIV+JYOXnK+W0ckEjF5jBdMAFKCgBj+Qr39jj5ird/ZWXXJq8SyNtO/IGyVQ6WLKq7h1ykpZIBlWKdCkqpbgEAiX5yie73Vylu7+ydnYyry+D6YACZChhVdgzlJNx85WyvzIJa0bkaavsydq/t+BLQBDuvfJ980h9HznJCpH2V2mDlXZYwAqvDTYp+cpoD6YjQwmrOKEEJuDlK901I/PiO+nu3HhznrbCAm+PIjnJypLr/qNFB9yBPTK4h3wlAicTTQ/oNFjZXxlXkpOU90keuAIToqAEJjM8bKa9/ZYxfUfN6MLr47VmRJZZy6kkOUlYIC2tD8075rZhonrkZFj+8tpgyVciUNLdIqd2u1832aX3x2vNCIPpgKLR8gqrotzyOh4pKKWwjPSakYGTuQ8A5CRhiRSRUkySkwwXKSYf7Z1vfnqqNumXArZIvvKeB4y5dGa0L3H8BtPR8gqreFQJq9KNd9UbY1rjcpVTMrinv8+khodN9rLLjJk2reDXhJY8bd2xPbcr68Oh6Py5ERnS1vqjRb80y2vfMzOmZfnBhYz8TO69ctDcd+WgOfTrT5tjtMEiaNIeKq2w8tvK0J6ozSCQB65bNudOJuN1Kvn46NBbvQX/FggILa+AD6n+PpM+cTy3ZmTO1eG/hPIGL09baduBBZLXk4E70lqJ8JP9n5KvlJPKx/rmkq9E8GTNyO6dJnvn3cZctyj8F5jBdEBZKCgBvyRfuf9Nk+3ry60ZCWO+UrYKVYwAACAASURBVKbSyYkkOUlYIC2tXnsrokdWjNx7xfum68Qc8pUInhRpzz5lTM/O3JqRkOYrGUwHlI8MJayKW4ZyMtnaWbk1I2HIV0rbkbyRk5OEJVKMPFJ/lJxkTMgppZxWkq+ENQsacyeWYclXJmswHRlKWMUJJRCQ1MApd81ItmGBGZU1I9XIjnhT6eSJK2CB5CTX1h912yYRH956l6/OHjDre+eb/R9fzE8XwZICTh5yyv5KWTNSrf2VPHAFAkdBCQQsdeSwSR9/J7e/spL5SplKt/052nZghRQcD9W9455MIr7kgcHmG/e5J5UyEZY2WARK3p8kX3lgX25/ZSXzlfLA1WtvBRAoCkrABpkGK/nK48dNtqHBbr5ScpKyBmTgZMGXgHJ5OcnWOSdob02Q/Hzlxr65Sb8cCNrQB7lTwv17c4Wl7Xwlg+kAq8hQwqokZSgnIyeVcmIZaL5S2nbkRPLwwYIvAUGQokJOJeV0Eskl+cpHe+vMM++FcPAY4mHhDSZ7x5Lg22AZTOchQwmrOKEEKiB14nguX1k334zWN5T3H/RykkylgyWSj5ScpLQ/AvJA4bu/ddC8MnSp+fbBBtaMIHj795rU4bdz+Uo5sSwXD1yBiqKgBCplePh8vlL2V9bOKv0/LDlJadvhaSsskJZWmdxKThLjkQcMz9+8x10x8lj/NeQrEaz8fKWcVi5oLP23ZzAdUBUUlEClSb7yjT1urtLdX3nJpVP/AaRtR94gmUoHS1bVvUNOEkWRTK08dJCiUopLIFCSr3yy281Vuvsra2cX97szmA6oGjKUsIoM5dSy8+py+crx1ozI01bZk7V/b8GXgCDce+X75pH6PnKS8EXaX6UNVtphASu8NtiJ8pUMpisGGUpYNc4nWACVlOrvM+kTx3NrRuadn3R3brw5T1thgbd3kJwkyiH30Y8WHXAH9sjgHvKVCJxMaD2g02Blf6VHcpLyPskDV6DqKChLlM44LcYYZ2RN82Ck/uAIt+FhM+3tt4zpO2pGL5tpzC9+Tk4SVkhL60Pzjrlti0BQ5KRb/vLaYMlXIlDSrSOnkLtfd/OVKTmN5IErLEhnnMuNMc0ja5q7ub7Fo+W1SOmMI62bncaYemOMFJMPj6xp7orEH76KaHktXbb3bZP9+KOo/bERAVJESjFJThI2STH5aO9889NTtVxnIBxoeS1COuO0GmM2GGOkqOzRz/pctyJQUE4hnXHqtZBsHudXyk22jpttYhSUpaOgRNCkrVXWgMg6EKBS9n98sVnfO598JVB9FJST0EMjKSSbxvlV3VpY9hZ8BedQUE5Aj7xXG2Paxv8VF+jSwpKbbQwKytJRUCIokm+TgTvSighUi5xUPtY3l3wlUD0UlOPQQyMpJFsKv1pgnTGmg8jb+CgoxzHmyLtYcoNt5Ga7EAVl6SgoUS5pafXaW4EwkDbYrhNzyFcC1UFBmafEQ6N8vXqARORtDArKPFMceRerV4/GCfNSUPpCQYlyyH7AR+qPkpNEKMkppUyDlamwACqGglLpoVGbzkTxi8jbGBSUpR95F8vRwrLH7p8+3CgoS0dBCT8kJ7mq7hhrQBAJkquUfKXkLAFYl/iCUg+N2iaYieJXl37WT3xnYqILyrwj71UltreWItE3GwVl6SgoUQrJST5U9457MglEjeQrZSIsbbCAVYktKPXQSArJ1oIvBsONvI2saW6v9PcWJtOS+o3rkfcuvclsFZNGb+Aj6YyzuuArAOCTtLSuqnvH/H837qOYRGTJvfv84t3uvQwAQUpnnHb9rG+rmDRaQ7SlM84R3VWfSIk7obR05F0syVeuTFLPNSeUpeOEElORqa0yvVVOJ4G4kHzltw82sGYECF6iTii1sNtQZk7Sr0RG3hJTUGp76wbLTymK5WhhGfs1IxSUpaOgxERkj6TskyQniTiTglIKS9aMAIFJREGZzjhN+lm/GodGY3Xo4J5ERN4S0fKqR95HQlJMGr3R5Wh8gxa6ADAhaW/968YjZvON+ygmEXtyjz9/8x6mFQMoinyWls/U2t4ahmLS6IyWxETeYl1QypG39DRXICfpl3ezhaXQBRAysk9SMmbkJJE03PsApqIF2xH9TB02bnek5ivDUuhaEcuWV53o1BmipxTF6NGe61i1JNDyWjpaXmH0lEZOJclJAsZdLyJrRshXAr7EruVVC7TOKuUk/Ypt5C1WBaW2j7aF9ClFsbq1sIzFzUZBWToKymSTAlIKSVpbgULPvHeFebS3jnwlUJrYFJQRPTQaa51kLOOUr4xNy2vIj7xL0aJtsO3kK4HkkKyYZMYkO0YxCYxPJhzL/0ZkzQj5SiA5NCfpzUSJevtoW9wib5E/oYzokXexenVCVFc0/riFOKEsHSeUySMZMQaQAKWRU8rH+uaan56q5coBk4v0CaUWXhtCOg+lXLGIvEW2oNQj7w16ohd3jhaWkbvZKChLR0GZHHISKWtAZB0IAH8kV7mx7xrylcDEIllQ6qGRfNZvKvhi/EQ68ha5glLbQFfrcXHSdGlhGZmbjYKydBSU8Sc5yUfq+9z2PQDBkJNKObEkXwkUiFRBmbBDo3ySqdwYxXxlpArKmB95F8u92UbWNLdH4Q9LQVk6Csr4kpZWWYXQOucE7a2ABUPDadN1Yo7Z2DeXy4uKuPG6eeZbX2s2n50/y/3P7TnQb36waYf79xCJREGZd2i0KuGf9SMXeYtEQZmwI+9i9erReHeY/5BhKSg/M2O6+exVl7j/fOjdj8zHZ4YLfk1YUFDGk+QkH6p7hzUgQAXIKaVMg5WpsIAtUkT+p/UPjvu7P/Pim25h+e7AUMHXqiD0BaUeGrXFdCaKX45+1u8J+x801AWlHnnLzcXi/4mF+mardkEpheSKz88zX/vS+dcnKSa/t/WgeWbviYJfHwYUlPEiOclVdceY3ApUgeQqZX+l7LEEgta26ivm9ps/O+Hv+tEnZ0z3z3aZTVted/+5ikJbUOqhUVsMJrfa1KWf9UPbBhvKgpIjb1869Hg8VDdbNQvKe2+YY765tNEtKsfzFz/uMXuOhu9/mxSU8eCtAZGTSQDV1Xn8KvNY/zVuSywQlP/wl7/vtrxORU4p5bRSTi2rJHQFpX7W38ChUdFCHXkL3R5KPfLepU8rKCaLt1p32kR9D2fZbpx/ufn71s+bP/vydRMWk+KeG+YU/DsgCLIj7/nFuykmgZCQ7LL8b1L+DlTaVbUzzZ//yTK3APWylkmWt0+SYrJ4UhO1pTOOfNYP3bCi0JxQpjNOkz6p4Mi7fJKvXBmGNSOVPKG86rKL3NbWe4ssFPf0DZq/+KfwdQpzQhldMrVVpreSkwTCS/KV3z7YwJoRlO3rK24zD7Z8seTfRk4qv/uPTiXbYENxQqmF0AZykoFw9LN+KDY/VL2g5MjbqqrfbJUoKL2cZMvn5016IjmWZCj/7skDBf++2igoo0cKyL9uPEJOEogQKSilsGTNCMohJ4/33nF9yb+Dl6+UVtgKqGpBqTNROjk0siIUkbeqFpR65E1O0r511dppY7ugvO3aWvPNuxvd08lSkaFEuSQn+dC8Y7TRAREm2UrJWJKvhF9SUMpppbS2lkrylXJa+fLrh2xe/6oUlHpo1KaxLNgzqEVlR7WucVUKSp3o1MmRd0UN6oSoiu60sVVQLph9iTtw58a60p9FMOUVQZAiUopJ9kkC0SfF5KO9881PT9Xy04Qvl1w8w6xYdrNpuW+x+8+lkr2Vf/MPW2ytGal4QakzPZiHUllVi7xVtKDkyDsUerSwrMjNFnRBKS2tUkgWm5McS4pIKSbZQwm/pK1V2lvJSQLxI+tFZM0I+Ur4JaeUclrppw1WbPrZLvPDTTuCzldWrKDk0CgUuvWzfsUibxUpKDnyDqWK3GxBFpQPfqm+5JykRwbw/ONLvaFscR2LgjKcpICUgTsyeAdAvMlJ5WN9c8lXwjdZJ/KtrzX7muoqxaQUlVJcBsR6QamHRjITJXQTSBOsYpE36wUlR96h5u60sXmzBVFQyhqQP3vgOl85yXc/OO0WkmFtbx0PBWW4SEur194KIDmkDbbrxBzylSiLnFRKYemnDVbaX6UNVtphy2StoMzbHd9W8EWEQUUib9YKSj3ylicVTQVfRNj0apg38JutnIJSCkjZJek3J9n9i36z6Rf9oW5vHQ8FZXjIHslH6o+SkwQSTE4p5bSSfCX88vKVflaMCBnYI4N7yshXWikodXf8Bg6NIsFq5C3wgpIj70hz9GYLbDmjn4JSWlq99lY/drw9YL733EH3dDKKKCirT3KSq+qOsQYEwDmSq5R8peQsAT8kXymnlbff/Flf//8/7P652bTldT/5ykALSg6NIq1LD5ECjbwFVlBy5B0rXVpYlt0GW2pBKUWkFJN+cpKHT37kFpJRyElOhoKyeiQn+VDdO+7JJACMR04qZSIsbbDwS/KVsr/Sz5oRKSbltPKZF98s+NokAiko9dCojd3xkRd45C2QgpIj71hyb7aRNc3t5XxzxRaUkpOUfZKyDqRUYV8DUioKysrzcpKtc07Q3gpgSl6+cmPfXC4WfFtx32Lz4IrbfK8Z+cGmHcXmK8sqKPMOjdgdHy+9eoDUXe53VVZBqUfebawBibWybrapCkrJSUohedu1/rIpMnAnijnJyVBQVpZMbZXprawBAVAqyVd++2ADa0bgmxSTUlRKcemHnFRKYTlFvtJ3QamHRm2sAYm1siNvvgpKjrwTydFlqSX1XE9UUEpL64rPzzNf+5K/1ydZA/J3Tx6IbE5yMhSUlbHwM5+YtfVHyUkCKJsUlFJYsmYEfsl6EclXSjtsqaQNtvtnuybLV5ZcUKYzTpN2H3JolBy+I28lF5TpjNPOkXeidWiYt6ibbbyC8t4b5phvLm30lZOUAvLvnjoQ+ZzkZCgo7ZKWVpncSk4SQNBkxchj/deQr4RvMrBHCks/+Uo5pZR8pUyFHaPoglLbWzdwaJRYviJvRReU6YzTojcYR94Y1KKyY6orkV9QSk5STiT9rgH54Uu97iqQuKOgtMfbJ0lOEoAtUkxKUSnFJeDX11fcZlruW+w7XymF5aGjp7x/VVRByaER8vRqZ2JRDyKmLCg58sYkprzZpKC86rKLtkkhKSeTfkgRKcVknHKSk6GgDJ60tf514xFykgAqRtaLyJoR8pXwS4pJOa28947rff0Okq+UwvKjT85MWlDqTJRODo0wjqIibxMWlBx5owTd2nNdcLP9pPvJDZ+uSa/2094qOUmZ3irrQJKEgjI4UkBKIUlOEkC1PPPeFebR3jrylfBNcpVyYuk3X/nr02c7/offb3l47Nd0Jkonh0YowqSRt3ELynTG8fZJcuSNUqzzdtps3brVd4u05CRln+SOt5OZcaOgLJ+0tEprq7S4AkAYeG2w5Cvhl5xUSmHpJ1/pdZUtXbrU0UOjNl0FAhRrwsjbBQUlR94IwODXr8n2fH3uaMlPu6Sl1WtvTTIKyvLIsB0ZukNOEkDYyCnlY31zzU9P+VuVBUgb7IplN/vOV/5ffdN6/suJVD2HRihDj3YmnmujdgtKjrwRtM9enDV/Oj9rbrw0W9Tv/MzeE+5OyTiuASkVBaU/0tYqa0BkHQgAhJnkKjf2XUO+Er7JKaXkK2UqbDH2fJgy//loyhz6ZNzmRMCPc5G31PQ1m9qzl1/RxmWEDfeZd82f/87ET2IlJymFZJzXgJSKgrJEn6ox313wprn3yvcj9cdGNMiJEsOcYIucVMqJJflK+CW5SiksZY/lRNbt+sS8NMzDC1iy5/WH09M/87m21OBgvbn0EmNqeEFDQD4cMqmtT5nDWxy3338sOYn8/nMH3awkp5JjDL5nzG/OFvxrFJCnEN+ZtvBGc/hTc+oXpD8w86YxfAfBkJzb2sP15tuHGsxr/+oWs3Dar8ysab/m6iJQz75/hfnF0KU9p0enfY8uMfghuyf/67Y97t9vXFhnaj5VOATxOz94yaROnzbZSy81Znrh1wFfjvWZ1NanTWrv7ovS6ca7WlOnT9en3jmWu9muuMKYadO4sPDnzBmTev1Vt5g0A7n9R2MLSjmR/NsnD5gDx4e4yOOhoCxGlzHmD4b7N3fLa9hA9uL6f/7N58z+kX9lFqdPmpkprh/8k8Epf/rWtabno0vc3+Od2mvNP/3mevNhtsY0pU+aGSnyuSiPTH79H/d/zv376dFpB4b7N6+cNvNzj+sMi+u4vCjV4aOnzJPb9pjfDI8UTIOVz12pjz4y004cN6ls1mQvv4LrC//ks/7zz5rU9m3uAZIMfLrgMUXqxHGTHjhlRhsWmOy8Oq40SnNgn0m9+rIxQx9M9P/W/Y8v9W784Uu932AdDXySAPi6ifZpPTtcb179eK5prXnDfKPmDQpLlETybN8+2DBh+2HX2d82//yb3zL/64yd7j0GlEruLbnHxstODvdvlol0K6bPW96sU9KbCn4RMAlZEfKDTTu65s+9cuPv3vq5wh3yw8MmdeSwSR9/x4xe+zmTrZ24TRYYj/s5f/dOt6jMV3juPTxspr39ljF9R83owut5ioGpyZG33GDH+ib6pe40KBlVrf+3U7Ns7eM6spoWHxRD2lsfHu7f3DXVrx3K1pjHztxifvqbz5mHZuw0//2n3ir4NUC+yT7kj3d//bvTt5muszeY73z6efOF9DsFvwYouG+G0+fWhkxFH5gtnj5veasWlkzjRDEcfZ/sWfeXm+WXL9m6dev42xtOnzbT3tjjfsbPXnutyV5CvhJTOHzQpF7cNuGhUapm2dptk32ol5tNCktz0UUFX0PCyZG33Fz79056HYb7N084Uqxm2VreMMdgKE8Bd7/pcP/mcSc3TfUa9oXpx81fzXjZLEz/quBrSDb5kN91Yo7Z2Dd30uswbdHign+Xf3995yLHXEN+FxOQIlKKyUn2TzrD/ZuXFPxbeeo/bzn7AjGVXi0kuyf6dTXL1k46cl+6EqU7kXwlCgyczLW2TnxoJJwpw5KpwfdNesdLuVPL4eGCryOZ5EQy9cT3pywmp3J2y3o5cWrQogHIJ2+ODcP9m9snKiaL8crw1eYrH3/V/MWvm93TJcDodM27dt00ZTE5Fbm/mj/6A/Mfz9zC/YULyIn38j2LzKO98ycrJiclr33D/Zsf1vfJcVv9kViD+tlp8WTFZDFS/X3uZ335O+CSQ6Pt20zqx09MVUy6in4U4d5sJ47neq7nXF3wdSTEFEfefpzdsl5eFNtrlq3t0tPKFm6nROvRp62BfniSoT2SsZTsm2TgkEzyIX9973yz/+OLA/3+pc1aMpZ/ddHLtFknnLRQP9pb5w7cCYrmK5dovrKwhRFJ06XzBHqDu8mIvEHt3pmLsp0pfmVWaWfbcrPtf9Nk+/pyPdfcbMkha0CefaqopxR+nd2y3h1IULNsLQMJkmlQ3yA7bH33+fnKRy7aYe6ZHtx7McLNxof8seT+kpPwXGG5g3xlwhTbQl0OfdDWMH3e8nZjzCriIokz6WC6QEi+ctfrRN6SSNeA+Dk08tUsnfroQ5OSm612lntiyc0WY3Lk7U10qpCzW9a7Awlqlq1drdkR3jDjr0PfJH23tpbi2Oil5k8/uY/8WwJ4H/Ilx+a37bBUsr7mwY+XuyeVMhiK+yv+pIW6nNbWUkkUYPq85R368JWp6fFX9GC6oHiRt2zDAjMqmx/IV8ZXAIdGZS2cTA2cMunXXjHTeo+Qr4wjOfKWnGQFi8l8Z7es79DciLUTK1SdoznJhytVTObz8m8ytZP8W/zIh/zf27PIPTGq1Af9fNJmLfld8pXxJS3Uf7jvOndKcKXvMc1XrpQHsOQrY22dvk9WrJjM564ZkXzlieMFX0PE6aFR6vHvl92BWP7jhvydNrK/knxl9JVx5B00zVc+XLNs7UbNjUw4zRORIr2mK6227ZSA/YLxIh/yN/ZdU9QaENtYYxNP0kL9WN9c96FFtcmaCM1XtuiJJfnKeOjWU8nqZzOIvMWP7I7f/lxJOcnJBHd+LT3XcrMdP26yDQ3cbFEkR95ycx0+GLo/vOYrl2i+koEE0SUPCDZKu1bYvgNvv6CcKpF/iyY5IZK2wzB8yB9L2qwlXykPLlhjE23ePslqnHpPRiZ9Tp+33NEVI+QroytUD1zznYu8zbk6t2aEyFv0yKGRrAEZOBnoHz3whmjpuU7tej93s0m+kp7r8JMjb2lrlaxkyGm+sqFm2VoGEkRPlz5trXhraym8/JsM7JHBPeTfoiGsH/LHctfYDH/VPamUibAzU2cLfg3CSQY6yWAnOZ0MK319lXxll84gIF8ZHdYH0wVF2l/TA6dMtm4++cqosHxoVFaGcjLuzSb7KyVfifCSI2/JSUagmMx3dsv6ds1XViVTgJI4uidrZdiLyXyyYoT9guEnH/Lvev3GquUk/ZKT8CUf/aF7fyHcZMWM5CS/9cvGUBeT+aRNUvOVS8hXRkKH5iSjMzPCi7y99gr5yjDzcpI/ftxqB6LdRwr5+UrZX1k7q+CXoErkyFuKSItrQGzTfOVKzVduIF8ZOr36tDXSRT/7BcNJPtjLIJQw5CT9Yo1NuIW5hbpY2jbpTJ+3vFXfJ+nqCRdH21uj+z/+/Mib5Csvie5rcuzIoZF81q/ATJTKnFHLzfbGHjdXyc1WZXLkLTfX/r2x+ZbOblnfo/nKVm3xIV9ZXW5OUp64RulEcjLefkFvcA/5yuqRD/lee2tcsMYmfOT+kvssSqfek5EHe9PnLe/WfGXbJL8UldGrEZDuuFxvN/L22qtE3sJg4GQuJ1nBQ6OK/rTP3Wzz6nJhXm62yvFykvJXQBOdwubslvVdNcvWdjOQoKq69FQylkctkn97ZZj9gtUStw/5Y3lrbGTSsDy4IF9ZeXLiLSffUWltLcWYfKWcVrZE508fG6EdTBeUC/KV9Q3x+KaiQj7rv7itKodGVanoUv19Jn3ieG7NiIR5Ydfhg7kbLARrQGzTNtj2mmVrGUhQWT36tDURWR3Jv0nG0vvgD7vi/CF/PKyxqbw4tFAXSx/4rZg+bzlT0ysrEoPpApEfeVt4PZsfKsDtPqzioVH1jghlp83bbxnTd5SbzZYqHHmHha4ZkXzl4/oktilxF6EyBvUNMnHDkci/2Scf8mWqpgzeSRrW2FRGHFuoi6UPABumz1vutcHS1WOHo++TPXH85iYlkTdZM3L5Fe5nfdaMWBCSQyNrU16Lpjeb/CX/jADIkffWp03qx08kspjMJ2tGzm5Zv1iKSy1+EJx1OpUu0ZN2vfzbg5/8nrtyBOXzPuTL9NYkFpP5vDU2co/JvYbgyLCdu3bdlMhiMp9OFm3QSaMIjrdPckkii8k8EnlzNz/IQdLwcMHX4YPMRNn0E5N6sjsUHYjVLyjVuZtN1oxws/m3e2duDUiMhu4EQfKV+oa5LvrfTdV1ayHZnojWnSK5+wU//qo7vIc1I/55H/JlDQjOY41NcKStdfmeRW6La1zzuKWS1/Lh/s0P6/ska0bKM6ifNRYn/YHrWG7kbcdL7t/hkxwabd9mUo9/P1SHRqGbiuP2XEsbrKwZmXN1wdcxAVkDsvXpROQk/RqTr2QgQem8p6182JiEl68k/1Ya+ZC/vne+u/MPE2ONjX9JbqEuluYrl0yft7xF3yfJV5amW9tbyUBMRCNv59aMEHkrnhwaSVYyhMM1wzlmVW422WnT18fNNhU58n72qcS3tpZC85UrapatZSBBcQZ1civtUEXy8m9dZ28w3/n08+TfJiEf8h/rmxvpXX+Vxhqb0sgpZNeJOW5rKyeSxdF1Ft3T5y1vZ2p6URI1mC4IqY8+NCnJV9bOyq0ZIV85sQgcGoV6b8e5m0122siaEW628+TI25voBF8kXyntPTXL1jKQYGIdWkzS2uqDZN4k/8Z+wUJ8yC8fa2ymJg8q5IFFUiYEB02iDdPnLe/Q00qmphdK7GC6oKQGTuXWjDQsMKOy+YGVgufJodH259zBO2EXmgzlZNydNq+9Qr7Sc2BfLidJMRmIs1vWM5CgkKP5j2SMOLfM2y9I/i1HPuT/3p5Fbk6SYrJ80mYt+V3ur/OkhfoP912XqHUztmi+UgbbLSZfeQEG0wXIjbxJvvLE8dh8T77poZGbk4xAMWnCfkJ5gfydNrK/Mon5SjnyljUgAycLvoTyaL7y4bw1I80JvaS9+rS1u+ArKFvS82+Sj5ScZBJ2/VUaa2xy5AHFo73zaaG2QCeVSr6yVbt6khoXcXSeADnJoHmRN8lXNjQkM/Imh0ZyKhnCnORkoneuLGtGvJtN8pWXJOCDSYSOvKPu7Jb17htmzbK1SRtIIAX1RmlvKvgKAuXl33KFZTL2C/Ihv3K8NTbSZv1XM142C9O/Ssq3fm6fJKfedsmJ3PR5y+Wh4+qE5SsZTFchsvkhtev9ZEXe5NBIomwRnYkS2UZl92Z77dXczSZh3jj2XMuRt7S1yg2Gijq7Zb07kKBm2dokDCTo0lNJWlsryNsvKCdJcqIU1/wbH/Krw11jM/xV9yRcTsRnps7G9nuVqa0yvZXW1srR9wvJVyZhajqD6arEjbxJvrJuvhmtb4jnNymHRvI5P+Lr/iJfhcX2ZpMjb7nBWANSVWe3rJc1I3EdSODomyRPW6tIVoy8+vFcd8XIN2reiM0Hf2lrJb9Wfd4aG7m/ZCJsnMi9JfcYLdTVo22fK6bPW96s75NNMfsWGUxXbfmRN1kpWDsrHt+Xd2gkf0WsvXU88TjWi9PNFvEj7zjSfOVKzVe2xSBf2atvkAwSCIn8/JtM64xyvpIP+eGTf3/FYY2NnHZ7J98IB30wuVjzlRti0NXjaOdOT8FXUB0SeXtjj5urjHzk7fBBk3pxW6wOjeLVJ5p3s40uvD5aPdfypEJurogfeceZrhlxapatjepAAjcnKU9cedoaTpJ/8/YLRi3/xof88IvDGhu5v+Q+lzZjQwAAIABJREFUo4U6nMbkK9si+C0wmC7kIh15GziZG64Zw0OjWC57kZtNRg9n59Xlwrwhv9nO7ZOMwZF3Epzdsr6rZtnaqA0k6NY3SabSRUDU8m98yI8Wb42N1wYbhTZrWqijY0y+sjMiXT0MposYL/Lmbn6Q/ZVhloBDo1hvD03195n0iePhvdlieOSdFNoGK/nKsA8k6NFCkpxkBIU9/yYf8mUNiKwDQfTIpGH3NDzEa2ykgJSBOzJ4B9GiDzCXaL6yM8RdPV0aA+GBa9TImpG33zKm76jbmRjGNSNJOTSKdUHpCuPNFuMj76Q5u2W9O5CgZtnasA0kGNRCkpxkxIVxvyAf8uMjrGts5LS768Qcs7FvbsHXEC36QLNh+rzlXhtsWLp6GEwXFxJ52/V6uCJvMhNl69OJOTSaVvBv4kpvNslYyj9XhRx5b99mUj9+gmIyZiRfeXbL+sUyvEeLuWqSqXQNFJPx4u0XfPCT33P/uRq8nORdr99IMRkz3hobuceqdX95ZF/pXbtuopiMGV270aDvUdXk7ZNcQjEZL17kzT1IGh6uzvcma0A2/cT9K0kdiMkpKFVq4FTuZus9UtmbbfdOk3ri+7ljb8SW5Cur+IbpaCHJTskY8/Jv/+70be7pUqXwIT8ZpMVa7q//eOaWit5fRluo/3DfdW5WkjxuPMl7k7xHyURYfc+qtHXy3+aBa7y5kbcdL7k5y4rxDo0e/34iD43i3/I6AXfNiLTBypqROVeP/4uCkLAjb5zLVz5cs2ztxgoNJPCetvKkNUG8/JtkKyVjaYt8yN/Ydw1rQBKmkmtspIX6sb657kMLJIOu45B8ZYvGRWznKxlMlzQSedv/psn29eXWjNiMvMmhkWQlEzxcM7EFpcu72Y4fN9mGhmBvNjnyfvYpWlsTTPOVSzRfaWMgwaDmP6rdPoQqkRMkOansOntD4PsF+ZCP/DU28uAi6Hyll5OUKcGcSCaTrufonj5vebulqekMpku41EcfmpTkK2tn5daMBJmvlEMjmYkycLLgS0mT7IJSuTttdr2f22kja0bKudnkyFvaWuVJBXB+f2VDzbK1QQ4k6NI3SVpbcW6/oAzskcE95e4X9PZJ8iEfRtusXxle7p5UyollEPsrJYMrg51YAwKTKyy9NSPyHtkawEVhMB0u4EbeBk6ZbMMCMyqbH8pZKSiHRtufc7c1ICdxGcrJuDttXnvFf77ywL5cTpJiEuM4u2W9N5CgnDc4R/MfKykmMVa5+Tf5kC8DdyQnSTGJsWSNzVc+/qp7f/klK2YkJ/mtXzZSTOIC0o4q723S2VNmvpLBdJiQG3l77RV/+Uo5NHr15VxOkmLyApxQjjU8nLvZjr+Ty1fWzir4JQU48kaRNF+5UvOVG0rIV/bq09bugq8AY0j+LbcGorj9gvIhX/ZJkpPEVPyusZEHFI/2zqeFGlPS9lRn+rzlrXpiWWxcxNF5AuQkMTnZ/FBq5E0OjeTAiJko46KgnIjcbG/scW8yN8x7yTgftDjyhk9nt6zv0XzlVAMJpADdKO1ABV8BJuHtF5ws/8aHfPjlrbH5wvTj5q9mvGwWpn814e8k7dPSRs2pN0ohJ4zT5y2Xh6heXGQiDKaDLxdE3iRfOV4brBwaSSHJTJRJjXPlkM+92V579cKbzctJyl8JnuiE8p3dst4dSFCzbO14Awm6dOgOT1vh20T5Nz7kIwhyf31l+KvupGF5cDEzdfbc7yon3rIChNZW+KXRDi9fKQ9fW/J+Kx64IhBu5E3ylXXzzWh9Q+63lEMjKST37+UiF4GCskjezTY689JcIcmRNwJ0dsv69ppla7tMTc2G7OVX1JuPP2IqHQIl+TfJWK4Y6THPHB7lQz4Clb/G5p7sW24hSQs1gqIPVldMn7e82Vx1daf5cKjHfPIxswQQnPzIm0yY2fM6h0YloKAshdxsv9xvshSTsGBkydIWzVTKKeU30ubPe0bWNPNmicBIG2zXr+ab7JkKLntGYnhrbNbvC3AsP6DSGac+a8w3NCJyuTsNdg1rsxCw06dNqvdtk6WYLAlTXoEqS2ec5nTGOaLtPF7LqwwjOJLOOLTyAAASK51xLtf3wl15K0XkvXJDOuPskvdQ7g6guigogSqRp63pjLPNGLNtgqE88obZJsUmb5gAgKRJZ5wWLSQn2uHcJO+h6YyzSd5TC74KoCJoeQUqTJ626pvj6iL/y/X6humORB9Z08yQHgBAbKUzTlOJq7Wk8GxJZ5x1soeSuAhQWZxQAhWUzjhuK2sJxWS+Zm2D3aBFKQAAsaHtrZ16KumnM6dN3ydbC74CwBoKSqACNCcpb5CdE7TtlGK1vmH6KUoBAAgdfU87kpeT9EveYzslUkJcBKgMWl4BizTTMXZ3VhC8gQQy8e7hkTXNrBgBAESOFn2dE8wSKIf8vvIw193pTFwEsIeCErBAW1JXa/uNTd5Agm4tLHnDBACEnj5w7fTZ2lqKVs1XbiRfCdhByysQMM1u7KpAMZmvxVszQr4SABBWmpPcoO2tlWpJ9Ybh7dLJsQACREEJBERzktsste4Ui4EEAIBQKnMwXRDkvXmT5iubuEuAYNDyCpRJ23baAhgkEBRvIME3NDdCvhIAUDWak9ygMY0waNbTyi6Ni9AGC5SBE0qgDNJiqu2tYTwRbNZ8ZScLnwEAlSbvPemMs0nei0JUTOZr9eIiBV8BUDROKAEfNIOxoYqtraVgIAEAoGIqOJguCG6+Urt6VtLVA5SOE0qgBJK50JzkpogUkx4GEgAArKvSYLog1GtXzza6eoDScEIJFEGftm4IaWtrKbyBBI7mRnqi80cHAISV5iTbKji51ZZmbYPt0DkEdPUAU+CEEphCOuOs1ql0cZqc6g0k6GTNCADAL81JdmpOMurFZL7VWlhWayItEBkUlMAEdA3IET2ZjGvRxUACAIAvIR9MFwS3OymdcXbpCSyAcdDyCoyh2YnOmD1pnQwDCQAARYvYYLogNGm+slvjIr3R/5aA4FBQRtztN3/WPLjiNvPZ+bPMR5+cMTteP2S++4+O+88ojbZ+tlVx4XK1eQMJHC0secMEAJwjg+m0kEzqaV2LTk1fx9R0f6667CLztS/Vm9uvrTWfmTHdHD75kfnhS71mx9sDUfx2oGh5jTApJttWfcUtJsUlF88w995xvXn8b//YfH3FbUm/PCXJy0mSlTg/kGAD+UoAgLwXaE5yV4KLyXxt+j4Z11bfwEnx+OCX6s3ft37e3HvDHPf/FgtmX2L+zxU3mNuurY3V95s0FJQR9q2vjf+aLoXlgy1fNE/87R+7RScmpjnJXTHPSfrFQAIASLiYDqYLgnxm6NQ1I+N/IINLikUpJOVk0iskx5JiE9E1/k8VkXBV7cxJ/5jydTnB3HOg3/zNP2wx7w4MFfyapNKc5AZtX8HEvIEE39DcCPlKAEgALZI6E5ST9Euukzyc7tI1I8RFlJw+fnNpo7mxburn9fJrEV0UlAlw43Xz3NPKTT/bZX64aUei85Xawrk6gguXq42BBACQAAkcTBeUVs1Xbkx6vlJOIaWQlNZWJAMtrxEmJ4+lWHHfYjdfKX9PIs06HKGYLEuLt2aEfCUAxIfmJDfo+yTFpD/ecL9dOgk3caR19fFvfbHkYvKZvScK/h2ig4Iywvy0sUq+UrKX/2n9g+7JZRJoTnKbPnGlCAoGAwkAICbyHriSmQ+GnPJu0nxlUxy+oancOP9y0/XNL06ak5yITHr93taDE3wVUUDLa4RJMfk/r/2hWbHsZncITylkMux/+MvfNy/rmpE45iu1baeNQQLWeAMJvqG5EfKVABAhmpPcoLEGBK9ZTyu7NC4SuzZYWQPyZ1++rqic5Fgfnxk23b/oN5t+0e/+M6KLgjLiJA/5g007zM+27zN//ifLSj51lCmw8tcPu39uNm15PRb5yryc5CpOJCuCgQQAECEMpqu4c/nKkTXN7XH4hrw1IC2f99ftJnsnv/fcQfPuB6cLvobooeU1JuSE8X//9/+P+5ef00Y54ZR8peyxjDLNLOzSk0mKycpq1SexsXizBIC40Zxku7a3UkxWlpuvTGecI1FfMyL5SMlJ+ikmpb31L37cY/7tpr0UkzHCCWXMyKCeP/rf/m938M6DK25zM5PFkl8rp5z33bnIPfUsdehPNWlGYQODBKrOe8P01ox0J/x6AEAoaE6yjTUgVVevU9MlJrIySl09kpP85t2NvlZ8SEur5CQZvhNPFJQxJStCnnnxTbeoLHWqq7TNSr5S/v+lsAxzvlLbWzeQkwwdbyCBo4VlT9IvCABUg56GtfHANXSadbhdh8ZFQpuvlJykFJK3XVtb8LVi/ONLveQkY46W1xiTPKQM3JHBPX5OG6X9VabBfn3FbQVfC4O8th2KyfDyBhJ0smYEACpHcpLy2iunYRSTobZaC8vQTdj1cpIyvdVPMbmnb9C0fu/n5ocv9VJMxhwFZQIcOnrKzVau2/j/+lozIvnKJ/72j93hPWGga0COkJOMlNawvmECQNzoA9ddPHCNDLfbKkz5SslJ/n3r5901IKWSbKTkJP/in3rISSYELa8JIitC5C85cWy5b3FJ+cqrameatlVfcU865dRTitRK06l0nTxpjSzvDXOV5kZYMwIAAdLBdBvISUaWl6/s1rhIxfOVkpOUItLvGhA5jZRVIEgWCsoE8taMSGFZ6lRXyVdKG6zkK6WwrMSaEW2VbGPhcmxEdiABAIQRg+lip0XXjKwzxnRUIl8p7a3fXNronkz6IcN2ZOgOra3JRMtrQknr69/8wxa3FdZvvlLWjJQ68KdU2iJ5hGIylryBBBvIVwJA6XQNyAZtb6WYjJ82fZ+02rosOUlZA+KnmJSc5P/S9Qvzd08eoJhMMArKhJNiUopKKS795Cu/9bVmN18pJ5dB0pzkLn3iSrERb6sr8YYJAHHCA9fEkM9AMthuV9D5Shm0IwN3pMVVTihLIdlI2SUpOUnZLYlko+UVLmlh3fH6IbNi2c3uEJ5SSL5S1oxIceqnMM2nOckNLFxOHO8Nc5XmRshXAsA4tKjoJCeZOE0aF+nSNSO+4yKyR1LaW/3mJCUjKVlJwENBiXMkD+nlK+XksdSprnJKKaeVP+z+udm05fWS8pXa8rha2zuQXE3VHkgAAGHEYDqoVs1Xbiw1X+mtAWn5vL+uMslJyk5JJrdiLFpeUUBOGGXFiLTC+pnmKieckq8sduCPtjoeoZhEnhZtg20nXwkgyTQn6e1dppiE0a6eNt3zXFRcRIpIyUn6KSYlJylrQCQnSTGJ8aRqlq1l4W0JsqdOmOzJ45H58wZBBu88uOK2ktaMeKQg/ez8WUuWLl1a0MKobTtt3H+YQq+293SN98t4DStNEl/DyjVtkd3hY3Ezum9X0i9BqZzh/s1Lxvv/0WKBWQKYiqNdPT1jf93WrVub3/3g9LarLrtoit+ikLS3yuRWOZlMkmzv2yb7MbnQEji0vGJKm362y81YSlFZ6lTXz86fJX/btnXrVmlhXLl06dJBbdtpY+EyilSv+cpvaGFZ8HACAOJEH7hu0BgAMJVmPa3s0sJycOvWredapP0Uk9LauukX/UxuRVEoKFEUyUPK3knJRv75nyzzM9W1ZWjY1Kczzr8YY1bxtBU+yBtmcxADCQAgjBhMhzLl5StHfH3W2vH2gPnecwdpbUVJKChREslXSrZSCkopLGXCazFefj9l/nPftCaetiIA594wR9Y0t3NBAURd3mA6HriiXG6+8ut70uZP60bN7Vdki/rtZPWHFJJ7jhY94wc4hwxlicgfXejrK24zLfctnjBf+e4ZY/7myDSz+8NUwdeAAPROe3OfSb17gvH5ReI1rHRkKEtDhrJEN97cm/3duw1rQGDDTZdmTdu1o+aS9Pi/ubS0ygoQWQWCHDKUJXPS6ca7ntdTI17IivHJR8Zwk50juyef3LbHXHn5Z7y85AUOHx90+/CzV1xhzDSGCiNwl2dnzb7cXHGFSQ2+b8wwWY8p8RpWCmmrXpmaffVPjDFf5OSoOPLQAkWonW2yy5Yb89tNl3NvwYoPh8zJrY75ndkzxu0okyLy327aa97o41TyAoPvGfObswX/GuOSGSl/mh459MLgyKEXHtfCspkXtSnwYazA2d+MmJdfP2R2vH7I1M298oIXrXeHTptnf37QTHvnmEllsyZ7+RUF//9A2S76tMnWzTfmU58yqaEPjBkd5ZpOhNewYsinq+8M929eMTr01oGRQy8cSDfe9bgx5ow+gC19wkWCUFBOYcYMk11ynzHN9xoz87LJfy3gx5kzJvX6qya19SljThw399256ILPZt4akOcPnDS/GeH9sgAFZTHkgeuK4f7N3xkdemvw3AH4yKEXekcOvbAx3XhXijfMSfBhbELvf/CJTIPt+N1bP/e9y2deLPfQ5W5BKeOmR0fdE6RpJ44bc+mlbgEABG7mZSZ7zTyTkvttaIjrOx5ew6YiQ58eGO7f/HT+rxs59MLpkUMvOOnGu36iD17Jg0+AgnISN91isl9uMWbO1RP/GqAchw+a1FP/4v7djIy4v1FeQdl7dODjh1f94PXBj88M8xo2EQrKycgD178c7t/8B6NDb50bjjhusK1m2drLdcoYax3GIH80IVnlsHK4f7N7c23dulXuoZat+9797/7mv+4vmFYnJ5WjC6835iKeW8CO1EcfmtTbb+daYXEOr2ETcve4DfdvLtjjNp6aZWvZozsBMpTjuKbOZO95wJhLC9sOgUAMnDSp7duMOdZX8LutWnlP15ebf/v5pUuXntvnXLNsbZN+1uc1bAwylBPqkCn7w/2bC3qkxy0oPdxshfgwVqBXC8lxdwPqh65tBV9Q2Xl1ZrRhgTHTGTgMO1IDp8y0t98y5jQj0A2vYePp1UKye5yvTalm2VoWz49BQZlHuiaW3u8WlIAV0t764jZj9u+d7HdfMsnntBZ9DWOWiqKgLHDBodF4Ji0oPdxs5/Fh7JxBfUrRUfCVPFMVlK7p092iUopLwJZpvUdMqu9o4gf38Bp2jryGbZQnruM9bS2FdvWs1hPLxKOg1Jzkrbe7La6ANbt3mtSrL7tF5RQmLCg9NcvWtrO2JoeC8pyiH7hOMET4QgwkyEP+yORljCZ9cRLpxrvqp2ydlrzbe78yqYEBYz5zMflKWCFt1tmr5pjU8LBJfZTg/w3zGmb0NewP5E1ydOitso+u8/KVj+uD1+sKflGCJD5DufAGk/29f82pJOw51mdS3f/FpN4+cC4nOYXH8/Nu4yEjnocM5QWD6Qq+Oo6SlwPWLFtbr09hJy8SYirhT/dLyhiZYk8ox8jWzjKj136OfCWskVxl6siRROYrE/4a1qOvYVM+DCuHvu5tSOqHssSeUEpO8s4l7joQwIoPh0zq2afGzUlOYcoTynxJz4gn/ISyS98nS+rc8b1tPqlvmAn9MOY7Y+SnoPRkGxaYUWmDJV8JS1InjptpRw4nKl+Z0NewQX0N6yr4ikU1y9Z6bbCJaiFLXEEpOck7lhizoLHgS0AgJCcpra27d/r93UoqKD2aEW9LWuQtoQVlyYdG+Xxvmj+7Zb1zdsv6xRLS1DdrxI+bkzTGLPY7sKIcqSOHTfq1V9wP/YAN2TlXm5Hf+YL78AKxJa9hDZUuJk3ufVIy5g06GQ9xM2OGMbfebrJ/9CcUk7DnwD6TeuL75RSTvp3dsl5eNxfr6yjiyRuuucRvMWnKOaHMl6SBBAl6ut+lQ3cm7bmfSjknlPnc/FtDg/t3wIrTp91psDIVNs4S9BrWrU9by3oNC4rGRTqT0EKWiBNKyUnK0B3WgMAWyUnKGpCBk0H8B3ydUObT1zDpTCxYBRc3CTmhDGwwnQmqoPQk4WZLwIcxRwvJQDJGQRWUHjlRcteMkK+EJW6+UvZXfvRhLC9xAl7DJl1lVG1JmJoe64JScpJSSDJwB7ZITnL7c8YcPhjkf6DsgtKThMhbAgrKwB+4BlpQevRm64zjG2aMP4xZyRgFXVC6pk832br5ZrS+oeBLQFDcfKXsr4zZmpGYv4ZNucooLOI8oj+WBaXkJKWQvG5RwZeAQEhOUtpaJSsZvMAKSk+cd/DGuKC0NpjOd4ZyMpqvlE/7D5OvjISqZYx8kbUPkq/c8VLs2xNRPW6+8rYvsR81Gjr0NSwyWcWzW9a3a74yGq+7SSY5yX/zRxSTsEdykj95wlYxaYXmK8mIR8Ogdu4sttW9Y+WEMp/mK9s0Yxl5MXu6bz1jZOWEcgw3X3nttSZ7yaUFXwMCIfnK/W/GYs1IzF7DHH2TDEVO0q+aZWub9El/LPKVsTmhXNBosnfeTU4S9khOUorI0teAlCrwE8p8ccuIx+yEcl1QOcnJWC8oPXG52WLyYawiu9hMhQpKj5uvlP2VrBmBJVJQSmEZ5TUjMXkN873KKMziMqI/8gVl7ezcPklykrBF2ltf3GbM/r2VusRWC0pPXCJvMSkoK/rAtWIFpSfqAwki/mGs4hmjShaUrunT3aE9tCnCplR/X25/ZQTzlTF4Dds43L+5veArMZE3NT2y+crIFpQzZuROJGlthUXn9kmeOVPJy1yRgtIT9Yx4xAvKqgymq3hB6YnqzRbhD2MdWkxWNNNa8YLSc9FFZnTh9awZgT3Dw7k1IxHbkxrh17AuPZVMRC5fu3rktLK14IshF8mC8qZbckN3ZLckYMPhg7lTyaEPqnF5K1pQmvMPxzZE8TUsogVlVQfTVa2gNBG92SL4YayqGaOqFZRKCkopLFkzAltkvYi7ZiQi+cqIvoYFtsooaqI4oj9SBaWsAbnnAXKSsGfgZG6fpP2c5GQqXlB6opgRj2BBWZVDo3xVLSg9+obZFoWbLUIfxkKxi63aBaUn27DAjEobLPlKWCITh901IyHPV0bsNWxdZKZPWxalEf2RKChlDcjS+8lJwh7JSXrtrdVXtYLSE6XIW4QKSkc7d3oKvlJh6Wr/AcTIoRd6Rw698Hi68a7/pk9hw/uG+clHxoT7JpOnE98Z7t+8YnTorapPPkw33lUfhhNod5jKO8dy7UxMg4UNF3/GZK+ea1LptHtqaUZHw3mZI/Iapg/Efl7w1YQaOfRCT7rxru/Jx9SwP3yVhxahJe8Bt3zBZL/c4haVgBW7d5rUk93VPpXM93i1PxOOHHrhQLrxrsf1NUw+64e3dWzwPWN+c7bgX4eId2j0l6NDb4XiBTcUJ5T5wj6QIORP90OXMQrLCWU+WS/irhkhXwlbZM3IkcOhzFeG/DXM+iqjOAj71PTQnlAuvMFk71hCThL2yBqQrU9XKyc5maqfUOYLe0Y8xCeUoR1MF7qC0qM3mxyNtxR8sYpC+mEsNEfeY4WxoPRka2fl1oyQr4QlcjKeOnIkVPnKkL6GVWyVUZyEdUR/6ApKyUnKGpDa2QVfAgLx4ZBJPftUmE4kxwpVQekJa+QtpAVlqAfThbag9IRtIEHIPoyFPmMU5oLSNX26ydbNJ18Jq+Sk0s1XhmDNSMhewwb1DZKcZBlqlq1drR/KQtHVE5qCUnKSciK5oLHgS0AgJCcpGUnJSoZbKAtKT9gy4iErKCMxmG5awb8JmbNb1jtnt6xfLL3C+uEDOhrYGLOYD2JlGh42qSOHTfq1VyK3/gHRkZ1ztRm57UvucCicI69hDbyGle/slvUy4a9BJ/1BWlpvvd1k/80fUUzCngP7TOqJ70ehmAy9s1vWd+lr2LqkX4s8Xk4y1A8DPKE/ocyXl69sK/hihYTg6X6XPqmIRMYo9CeUY0iu0s1XMrgHtki+UvZXDpyqyiUOwWtYVVcZxV0YRvRX9YRScpKyT5I1ILBFcpKyBmTgZJQucSSKEhOSyFsITiilsO6I0t7lSBWUnmoOJKjih7FIZoyiVlB65ETJzVfSBgtL3Hyl7K+UibAVVMXXsFCsMkqKao7or0pBKTlJKSRZAwJbJCcpp5H790bxEkemoPRUM/JWxYIysoPpIllQeqoxkKAKH8YinTGKakHp8vKV9Q0FXwKCkurvcyfCVipfWaXXMOmqoB2zCmqWrW2v9NT0ihaUM2aY7J13G3PdooIvAYHwcpLy15kzUb2mkSsoPdXIiFehoIz8YLrQZygno/lK+bT/cEzzlWSMqsnLV+54qWrtiYi/7Ly6XL5yXixPVjr0NYxiskrOblnfrtmk+L2PSE7yj/4niknYIznJnzyRy0lGt5iMtJhnxAe1c2dx1Lt3In1CmU/zlW2asbSmQk/3Y7OLLdInlGNIvnJ04fWsGYE9kq/c/6bVNSMVeg0L7SqjJKvUiH7rJ5QLGnOnkuQkYcvAyVxOMrxrQEoV2RPKfJWKvFXohLJDu3dicSAWm4LSY3sggeUPY7HLGMWpoPTISdKoTOskXwlL5ETcXTNy+nTg/4EKvIZJIdld8BWEho7ob7MVF7FWUNbOzu2TJCcJW6S99cVtUc1JTiYWBaXHdkbcckEZy8F0sSsoPbZuNksfxmKbMYpjQemaPt0tKmPapoiQmNZ7xKT6jgaar7T4GrZxuH9ze8FXEEp5U9MDz1cGXlBKTlIG7tx0S8GXgKC4A3einZOcTKwKSo+tjLilgjLWg+liW1B6gr7ZLHwYi9WR91ixLSg9F13ktsFKOyxgxfBwbs1IQHtSLbyGRWqVES5kY0R/oAXlTbfkiknZLQnYcPhg7lRy6IM4X95YFpTm/MMxeQ1rLfiiTwEXlIkYTBf7gtKcf8NsC+JmC/DDWCJ2scW+oFTZ2lm5NSPkK2GJrBdx14yUma8M+DVsHWtA4iHIEf2BFJSyBuSeB8hJwh5ZA/LsU3HKSU4mtgWlJ8jIW4AFZZfGQGJ5aJQvEQWlJ4iBBAF8GEtUxigpBaUn27DAjEobLPlKWCInle6aEZ/5yoBew9YxfTqeNF+5oZyunrIKypmXmezS+8lJwh7JSXrtrckR+4LSE0Tsp+zeAAAgAElEQVRGPICCMnGD6dIF/ybGRg690Dty6IXH0413/Td9Clv6G+YnHxnj7yaTpxPfGe7fvGJ06K0DBV+NqXTjXfVBtiGEnZweTXvnWK4965JLk/Jto5IuudRkr55rUum0e2ppRkdL+4/7fw0zuspIOit+XvAVxMLIoRd60o13fU8a+o0xX/TzPclDi5LJa+YtXzDZL7e4RSVgxe6dJvVkd1JOJfM9Pjr0ViJiCfoa9rg8OtDP+qW3jg2+Z8xvzv7/7N1/cNX3fef791eHChwbG7dg48RQRCA1tptAk7iJ0xQ5bqNm53Yv7F5Pk9s0hj/Sdmd617iTu9eZrAZY9c4oc3eL6D/brGcuMpvea7ebQbllsJUYcwJ2SCBGMtiI8kPISLZkUIwM2MHykc6d9/f7+WKBjo70Pfp8zvn+eD5mmLoIY/gcRfq+z/v9+rwn/fQMhDnJb49fOlnBF8LkylSHcqIJFxJsnvTBMip8dz8zLe8bZa1DOVFRH/xXriRfCXd0zcjZ3kj5ygq/hqVmlRFmrtIr+iN3KFfdL8Xfe4icJNx5oz9YAzJ8PquHnJkO5USVRt4q6FD6F9PpvShZfNaXLBeUoagXEkR8GMt8xijLBWWouPiuYM0I+Uo4op1xP1+pHctpRPwa1m0KSXKSGWa+ju+Y6QjZjAtKzUnqGpCFd0z6EGCF5iQPvOBfvJNxmSwoQ1Ez4hELysxfTCcUlB+a6SfbDB/GyBgZFJTGnDlSXLKUfCWc8vOVur+yzJqRGX4NGzGFZOa/huFD9U3N4VRP2bjItAWl5iS1I7l8xaQPAVZoTlIzkpqVhGS9oAzNNCM+w4Iy802jieom/UxGjXa25Ec7W9bo7LN5mKrEiMkYreFBDNcpFMQ72yu5wz/3l9YDLmg3fOzzX/Avh5oFvdq8ga9huNFoZ4v/uWHekY9OR1ofeFCKf/INikm4c+I18Xb+N4pJTDLa2dJuvoZtnfTBmRsxOUmK9AnoUJZg8pWbTcbyOmXe3SdjVAIdytI0V+nnK7m4B65ovlL3V97wBkaZr2GZWGUEO8pd0V+yQ6k5Sd0nyRoQuKI5SS0is3fhzkxQ/NygXOStTIdya5ZzkuVQUJZR6kKCEg9jZIzKoKAsz89X6v5KxmDhiH/zcM/xa2tGSnwNC2+l42sYIqtval5nHsqu5SuvKyg1J6mFJGtA4IrmJLWQ7HmVI54aBeUUSmXESxSUNI2mQUE5A//5//4fF7c/9y8L3nrn6rWHsVs+Mlf+8k8b5Q9/796Ghx9+mE+wKVBQzkCYr1zWEPs/KpLLG+j3b4QtDg6EBaV/K11hYPcWXlbMVn1Ts34ePabZJL+gnDtXil/8ksg993G2cCPMSeqP99/nkMujoCxj7969qzt+MdD1/Zf65N33C9cKyo8vXSTf/Orvj3zr32/kuv5pUFBOY+/evdcKoo5fDMh/7/iZrP/M3bLuy2v8olLf2X/44YfJGk2BgjKCefNkfNW9rBmBO5rl7fqFyM9fzOwqI7gTXtE/fvNNG4qf+jRrQOBO72nxXtwncukdDnlmKCjL2Lt3r74htlmLSS0qf7Tnp/L1L/+2rP/ymvBfWvPwww93T/07gDm7CNZpIfmZ/+XGf2FG16gD09LMW9cRv6DUwpI1I7BOu+Gf/ZzIZz+32r/R+gkeMGDP2EMPLyuVqQSsGT4f7JMkJwkHbp47R/7iSyv8HzcoeyssKCiB2NHMW+7gS1K8e0mwv5J8JezTgnJfrjXv50LGnmhkbB8Vy7XmJ903AFil463akSQnCcQST6pATGnmLTc06BeVWlwCDuiFKutyrXn/5rqxJxoZgcWM5VrzU96IDljzysvBpTvkJIHYYg8lEGeFgr/6oe7wIb9zCTiiRcHZXGt+AweMmci15rWIPEsxCWd0DcjOJ4MRV4pJINboUAIJ4F25LJ7mKxcuCtaMkK+Efdpt2pFrzT+qu7bGnmgkX4lJcq35RrMmZPWkDwI26BqQ558lJwkkCAUlkCC6pD43fEGKDctlXMdgyVfCPi0YGnOt+XZTWJKvRJiTLLkEHLBCc5I62qprQAAkCk+jQAJ5Z3sl13/O71YWF9/FSwgXNph85XbyldllcpKbzFg04MaJ18Q78AKjrUBCkaEEkkrzlT3H/VUj5CvhSHjpSleuNU9nKmNMpraLYhLOaE7y6Z3BiCvFJJBYdCiBhNNi0uu66Hcq/TUj5Cthn4477sq15vNmzQgLnlPM5CQ3swYEzmhOUjuSvac5YyAFKCiBlPCGBoN85ZKl5CvhSqPpVrabwpIx2BQxOcnNZtwZsE9zkpqR1KwkgNRg5BVIk0IhyFce/rl/gQ/gyAazZmQLB5wO5rXsopiEM5qTfGYnxSSQQrQwgDS6elXqjh2V4oLbpbhypRRvmc/LDNv8fKVZM7KRNSPJZLKx28xYM2Cf5iS1iGQNCJBaFJRAivn5ysOHgnyl7q9kDBb2aSGyz+QrN7JmJBlyrfnVppAkJwk3NCephWTPqxwwkHI8XQIZcF2+clkDLzlcaDRjsG1mfyX5yhgya0C2MdoKl67tk+TmViATyFACWRHmKw++xJoRuLTJFJYULDGTa837rw3FJJzpPS3ezieDnCTFJJAZdCiBrNF8ZdcRP185vupe1ozABe2C7ci15h8zt8GSr6whswZkBzlJODN8XrwD+8hJAhlFQQlklHYptVtZvHtJsL+SfCXsW23ylR2msCRfWUVmDcgOcpJwRteAvLiPnCSQcTxBAhnnDfRLbmjQLyq1uAQc0JtE1+Va81tFpI18pVsmJ7nZjB8DbrzycpCVZLQVyDwylAD8fGXdqZNSd/gQ+Uq4pEVOF/lKd8zZnqWYhDO6BmTnk8GIK8UkkHlChxLARN6Vy+JpvnLhomDNCPlK2LfM5CsfNbfBkq+0wOQkt5kxY8A+XQPy/LPkJAFMQkEJYBJv+EKwZqRhuYzrGCz5StinBVBjrjXfbgpL8pUVMDnJbWasGLBPc5LhGhAAKIGnRABT8teMDL4Z5CsX3zXVLwNmY4PJV24fe6JxCyc5MyYnucmMEQNunHhNvAMvMNoKoCwylADK0zUjPcf9VSPkK+GIf4lMrjWv+yvptE3D5CS7KCbhjOYkn94ZjLhSTAKYBh1KADOixaTXddHvVPprRshXwj4d39yVa83nzZqRbs74QyYnuZk1IHBGc5Lakew9zRkDmDEKSgCReEODQb5yyVIZX9bA4cGFRnMbbLspLDO9ZsSMt24z48GAfZqT1IykZiUBICJGXgFEVygE+cqDL/kX+ACO+Cswcq35zK7AyLXmt5g1IBSTcENzks/spJgEUDE6lAAqp/nKY0eluOB2Ka5cKcVb5nOYsM3vzuVa84+JyMasrBkxWdJtZgwYsE9zklpEsgYEwCxRUAKYNT9fefhQkK/U/ZWsGYF9WljtM/nKjWldM5Jrza82hSQ5SbihOUktJHte5YABWMFTHwBrwnylv2ZE91cC9jWaMdg2s78yFflKk5PcbFaBAE5c2yfJza0ALCJDCcCuQkHqTp0M8pWsGYE7m0xhmfhsocmInqWYhDO9p8Xb+WSQk6SYBGAZHUoAbmi+suuIn68cX3Uva0bggnb1dph85eNJy1eaNSA7yEnCmeHz4h3YR04SgFMUlACc0i6ldit1BNbfX0m+EvatNvnKDlNYxjpfmWvNLzOFJDlJuKFrQMLxVgBwjCc7AFXhDfRLbmjQv7RHL+8BHNCbURtzrfntItIWt3ylyUluMllJwI1XXg6KSUZbAVQJGUoA1aP5yp7jUnf4EPlKuBJebtMVp3yl+bOcpZiEM7oGZOeTwYgrxSSAKqJDCaDqvCuXxdN85cJFwZoR8pWwb5nJVz5qboOtSb7S5CS3mbFcwD5dA/L8s+QkAdQMBSWAmvGGL/hrRooNy2Vc14yQr4R9jWYMtt3kK6syBmtyktvMGC5gn+YkNSOp460AUEM8vQGoOe9sr+QG3wz2V5KvhBs6crpO85VjTzRucfUfmZCTfMyM3wL2nXhNvAMvMNoKIBYoKAHEg64Z6TkuxcFBKTY0+OtGAMv8fKUZg9VuZYfN397kJDezBgTOaE5SM5LD5zljALFBQQkgVvSyHq/rot+p9NeMkK+EfVrw7cq15vOmsOyezX8h15pfbcZbWQMCNzQnqR3J3tMcMIDYoaAEEEve0GCQr1yyVMaXNfAiwYVGcxtsm7m4J1K+0oy3bjPjtIB9YU5SfzDeCiCmWBsCIL4KhSBfefAl/wIfwBHNPJ7NteY3zfS3z7Xmt5g1IBSTcENzks/sDC7doZgEEGN0KAHEn+Yrjx31c5XFlSuleMt8XjTY5ncbc615vUxn41RrRnKt+XWmK0lOEm5oTlKLSNaAAEgICkoAieHnKw8fCvKVur+SNSOwTwvFfSZfqYVln3y4BmQHOUk4o+OtL+4T6XmVMwaQKDyNAUicMF/prxnR/ZWAfVo4nl26+f/teC/3kQUXKSThkN+RJCcJIKHIUMKp0c4WfZd/q4hUZZk4MqRQkLpTJ4N85chFXnk48cZNd627WH8bxSTc6D0t3s4nyUnCFX32erwwsLvkCD9gCwUlnBvtbNHLK/SaznZOG9ZpvrLriP9D/xkAYm/4vHi7nhFvT4fIpXd4veCCPnM1FAZ2t3G6cI2RV1TFaGeLvku2sb6p+Smz+Jt3/GGVdim1W6kjsP7+SvKVAOJGc5LheCvgRt50JWe1XxeIgicuVJUZgc3XNzVvMIUlNyXCKm+gX3JDg/6lPXp5DwDEwisvB8Uko61wo88Ukh2cL6qNkVfUxGhni45irCFfCSc0X9lzXOoOHyJfCaC2dA3IzifFO7CPYhIu6DPU1sLA7gaKSdQKHUrUjBmD3VLf1Nxu9rqt49WATd6Vy+J1HZHiwkXBmpF58zhfANVx+ZJ4zz/LPkm41G6KyT5OGbVEQYmaG+1s0S+E6+ubmhtNYbmaVwU2ecMXJDdyUYpLlsq4rhkhXwnAFc1JakZSx1sBN/KmkOT2VsQCT1WIDZOvXGPylVpYLuDVgTWFgnhneyU3+Gawv5J8JQDbTrwm3oEXGG2FK32mkOTWfMQKGUrEjslX6poRrrqGfbpmRPOVXUfIVwKwQ3OST+8MRlwpJuGG3jmxhmIScUSHErFk8pWP1zc1bxeRHawZgW1aTHpdF/1OpZ+vZAwWQFSak9TR1p5XOTq40mFubyUnidjiCQqxZvKVD5l85Q7WjMA2b2hQcsMXgnzlsgbOF8D0wpyk/qAjCTe6TSFJThKxR0GJRDD5yob6puZNZn8l+UrYMzFfqfsrFy7icAGUpjlJ7Upeeqfkh4FZCteAEPtBYpChRKKMdra0mXwlGQLYp/nKY0eDfOWVyxwwgA8Nnxdv1zNBTpJiEm74zzgUk0gaOpRIHJOv3GjyldvIV8I2P195+JAU717i3whLvhLIMB1vfXEfOUm4pFNYG8lJIql4SkJijXa2dJt85TpTWJKvhFXeQL/khgaDNSO6vxJApvijreQk4U6fKSTJSSLRKCiReKOdLXoDWkd9U/MWEXmMfCWsKhSk7tRJkf5zMr7qXikuuJ3zBdKu93TQlWS0FW7opNX2wsDuLZwv0oAMJVJjtLNFvzCvIV8JJzRf2XXE/6H/DCCFdA2I5iT3dFBMwpV2k5OkmERq0KFEqpg1I5qvfMrcBku+ElZpvjJ38CUpNiyXcR2DJV8JJJ/mJMPxVsCNvFkD0s35Im14EkIqmTUj+fqm5g2msCRfCav8NSM6BqtrRhbfxeECSfXKy0ExSU4SbvSZQrKD80VaMfKKVBvtbGk3Y7BbeaVhneYre45L3eFDfucSQIK80S/ezifFO7CPYhIujJhnjzUUk0g7OpRIPbNmZEt9U3O7uQ12Ha86bNKdlV7XEb9T6a8ZmTeP8wXiSnOSB17wL94BHNHnja2sAUFWUFAiM0y+cn19U3OjKSxX8+rDJm9oUHLDF6S4ZCn5SiBuNCepGUkdbwXcyJtCkjUgyBSedpA5Jl+5pr6peZPJV7JmBPYUCkG+cvDNYH8l+Uqg9k68FnQlGW2FGyMmJ8kt88gkMpTIrNHOlja9ultE2vgsgHW6ZkTzlV1H/JFYADWgOcmnd4r3/LMUk3Blq1kDQjGJzKJDiUwz+crH65uat4vIDtaMwDa9rMc7fCjIV678BGOwQDVoTlJHW3te5bjhSofpSpKTRObxZAN8mK98yOQrd7BmBLZdl69c1sD5Ai6EOUn9QUcSbnSbQpKcJGBQUAITmHxlQ31T8xYReYx8JayamK/U/ZULF3G+gC29p8V7cZ/IpXc4UrgwYi7cISYD3IAMJVDCaGfLFpOvJBMB+zRfeeyon6/UfwYwC8Pnxdv1jHh7Oigm4UqbyUlSTAIl0KEEpmDylRtNvnIb+UrYpvnK3MGXpHj3kmB/JflKYOZ0vFU7kuQk4Y5OLW0kJwmUx9MLMI3RzpZuk69cZwpL8pWwyhvol9zQYLBmRPdXAijLv3CHnCTc6TM5yQ7OGJgeI6/ADI12tug3ljXmivARzg1WFQpSd+qk37HUziWAEnQNyM4nRbSgpJiEfWFOsoFiEpg5OpRABGYMdkt9U7NmKzeLyAbOD1ZpvrLriH9hj79mZN48zhfQNSC6S/KN/swfBZxpN11J3jAGIqKgBCpg1oxovvIpU1iSr4RV3vCFYM1Iw3IZ1zFY8pXIIs1JhuOtgBt5U0h2c75AZXhCAWbBrBnJ1zc1bzD5StaMwCp/zUj/uWDNyOK7OFxkxysvB8Uko61wo8+Mt3KbOzBLZCgBC0Y7W9rNmpGtnCes03xlz3GpO3yIfCXST3OST+8U78A+ikm4MGK+V6+hmATsoEMJWHJDvlK7les4W9jkXbksnuYrF98VrBkhX4k00ZzkgRdEek/zssKVdtOVZA0IYBEFJWCZyVeur29q1lzlDtaMwDZvaDDIVy5ZSr4Syac5Sc1I6ngr4Ea3yUnmOV/APp5CAEdMvrKhvql5k7m4h3wl7CkUgnzl4JtBvnLhIg4XyXPitaAryWgr3BgxhSSjrYBDZCgBx0Y7W9pMvrKNs4Z1umbk2FF/1YiOxAKJoDnJXc8Eq0AoJuGG5iQbKCYB9+hQAlVg8pWP1zc1bzdjsKwZgVV6WY93+FCQr9T9lYzBIo40J6mjrT2v8vLAlQ7TlSQnCVQJTxxAFZl85UP1Tc3rzMU95Cth1XX5ymUNHC7iIcxJ6g86knDD3w9NThKoPgpKoAZGO1v0HdSO+qbmLSLyGPlKWDUxX7nqXikuuJ3zRe30nhbvxX0il97hRYALI+bmVmIlQI2QoQRqaLSzZYvJV5LxgH2ar+w64v/Qfwaqavh8kJPc00ExCVfaTE6SYhKoITqUQI2ZfOVGk6/cRr4Stmm+MnfwJSnevSTYX0m+Ei7peKt2JMlJwp28yUl2c8ZA7fFUAcTEaGdLt8lXbjBrRshXwipvoF9yQ4PBmpHFd3G4sI81IHCrzxSSHZwzEB+MvJbx+iN3Llj40+//z1P/CpFbzvx8rf66SR8AKjTa2aLjr2vMlecjnCOsKhSkrud4sGZk5CJnCzt0DcjTO1kDAlfCnGQDxSRs0md4fZYv91tqLcCzfnkUlFN4/ZE7tUvUNXe4b1PpXxGovzig44lnX3/kzi2TPghUSMdgTb5yDflKuKDFpJ+v7DlOvhKV0zUgezr8rKRmJgEH2k1OkucsWGWe3c+aZ/kpmVqgy9QGKIGR1xu8/sidjWbcsOwn1w30XYvNrz9y56M6ivGb//QW757BCrNmRPOVT5l85WpOFjaxZgQVYQ0I3MubriRrQGDV64/cWcnqNv21O8yz/tbf/Ke3+LycgILSeP2RO5eZQnI27z7o77Hr9Ufu1E+yjb/5T2+xVBdWjHa26OfUGpOv3MaaEVg1cc2I5isXLuJ8MTXNSR76KTe3wpU+U0gynQOrzLP+jllefqj/buPrj9zZbppImY8mCSOvAdPy7pplMTlROAa7jZlr2GTylQ0mXwnYpWtGjh0N8pVXLnO4uJ7mJHUNiOYkKSZh34j53raGYhI26bO4PpPrs7nFm/Q3EHn7UKYLSm15v/7InWdNZ9JF4bfJfLKVzWECUUzIVzaYkSDAKj9fefhQkK8sFDjcrNPx1r3PBTnJN/qzfhpwo8MUklsKA7vp+MAa8wx+1jyT2xZG3s6aMdrMyuTI6+uP3Lm6ivv+9JNt24R8JQUArDD5Sl0z0mhGOFgzAqvCfKXurtQdlsgef7SVnCTc6TZrQHg2glXmTpRqPRtNjLzps37m9qNmqqA046fbLI62RqFF7L7XH7mzw3yyka+EFSZf2VDf1LzJYbcdWaVrRk6dFOk/J+Or7pXigtv5VMiC3tPivbiP0Va4MmIKSUZbYZXJSeqzfi06ho3mNtg2c3FPZrrtmRl5ndDyrvWVv+vCmWvylbBptLOlzYzBtnGwsE7zlbpmpOsIa0bSbPh8kJPc00ExCVe2mjUgFJOwxuQkt5hn/VqPn2Yu8pb6glJb3iYnGbebMTebTzZ22sAak6983OyvZIQI1mm+MnfwpaBrSb4yPTQneWCfeE/vJCcJV/LhPklykrDJPEuHd6LERRh5O2vGb1MttSOvlq4Gdm0BO23gwmhnS7fJV1ayawmYljfQL7mhwWDNyOK7OLAke+XlICtJThJu+PuUyUnCNlOoxX1H9zITeUv1SsHUFZRmjHRTzN6lmM7EnTZbyVfCltHOFs3sdtQ3NesYyGPkK2GV5it7jkuxv1+KK1eSr0waXQOy9zlGW+HKiNknSQwDVlnaHV9t4UpBHfluS1u+MlUjrzFteUexwYR5yVfCqglrRsiswDrdWennK48dJV+ZBJcvBTlJXQNCMQk32sx4K8UkrJmQk7S5O77aUhl5S0VBaXKSXWbENemF2ALzydaV9Z02sMvkKzfqKCz5SrjgDV8I8pV9Z8lXxpHmJA/9VLyn/hs5SbiSN/skHycnCZvMM3FXSm6zDyNvXWnJVyZ65LXGVwO7lvmdNnDDrBnJ1zc1bzBfmMlXwirvbK/kBt8M9leSr4yHE6+Jd+AFcpJwpc+sAenghGFTlXfHV1u4UjDxkbdEdihvaHmnvYsX7rTZwRgsbBrtbGk3t8Fu5WBhna4Z6Tnuj8LqzbCoEc1JPr1TvOefpZiEC2FOsoFiEjaZZ/0d5lk/7bekJj7ylriC0swcp6XlHcWGcH9lcv7IiDszBhvmK3kYgHVaTPr5yp7jjMFWk+Yk93QEOcnh89n5e6Oa2s14K88lsGrCPsksrdabGHlL3N87MSOvZsZ4cwbepSjH/2Qza0Y2smYEtox2tuiYxfr6puYkXMGNBPKGBiU3fEGKS5bK+LIGXkJXNCf5ysv+KhA6knAkb7qSPIPAKvOsvyPjUZxlE1YKJibyFvuC0rR+t2XsXYrpZGKnDarP5CvXmHzlNtaMwKpC4cN8pe6vXLiI87VJc5K6T5KbW+FGnykkuS0cViVkd3y1hZG3dlNYxvqSq1iPvGa05R1FuNNmG/lK2GTylQ3m6nfALs1XHjsa5CuvXOZwZ0tzkroGRHOSFJNwY6sZb6WYhDUmJ7nNPOtTTJaWiMhbLAtKvRr49UfuPJvBnGSlNqVxpw1qy+QrHzeFJaNNsM7PVx4+JHWnTpKvrISOt+59LshJsgYEbnSYfZJbWAMCm15/5M5NppDcxMFOK4y8nY3rSsFYjbym/Gpg18KdNo+Z1jgFAKww+cqHTL4y69kGOOAN9EtuaDBYM3L3Eo54BvzRVnKScKfbrAHhWQJWmZwkdzVUZuJKwVhF3mJRUJpxzc28S2FFuNOmwxSW5CthhclXNtQ3NW9iegDWFQpBp7L/nIyvuleKC27njEvpPS3ei/sYbYUrI6aQZLQVVqV8d3y1hZG3NrO/subTAzUfeaXl7cy6cOaafCVsGu1saTNjsDxwwD7NV+qaka4j/j/DGD4f5CT3dFBMwpU2M97K13ZYM2F3/FmKSevCyFvNa6iaFZTa8jY5SW6SdCuxO20QXyZfuVEvaSBfCRc0X5k7+JLU9Z3Ndr5Sc5IH9on39E5yknAlbwrJx8lJwibz7BneiQI3/G0YJl9Zs8hg1UdeaXnXxMSdNlvJV8KW0c6WbpOvXGf+d02+Elb5a0Z0DFbXjCy+K1uH+8rLQVaSnCTc0EjMRnKSsI3d8TWxrJaRt6p1KGl5x0Kj+WTbYQp7wIrRzpYO063cajI4gD2ar+w57t8Iq53L1NM1IDuf9DuTFJNwIMxJNlBMwiZ9ttRnTH3WpJismZpE3qpSUNLyjp0NZgw21jttkCxmDHaLKSzJ4MA63Vnp5yuPHU1nvvLyJT8j6a8BIScJN9rNeCs7hmGVeabsYnd8bGyu5kpBpyOvXA0ca+FOm0dNa7wj6wcCO8yakY31Tc1PMfICF7zhC5IbuSjFJUtlXNeMzInVBqzoNCepK0B0vBVwI2+6kt2cL2wyexGJvMTTgmpF3px8FzbjlJt5lyIRJu600cKSbzawwqwZydc3NW/g8i1YVygE+crBN4P9lUnNV554TbwDLzDaClf6TCHJm8awit3xiaKvkV6G2m4KS+v5SqsjrxNykrS8k6fRjMFuY80IbBrtbGk3a0a2crCwTteMaL6y60iy8pWak3x6p3jPP0sxCRdGzNfcNRSTsMk86+8wz/oUk8lyLfJm+1nfWkFpZnS7WHieeLHZaYP0mJCv1MKShxtYp8Wkn6/sOR7vNSOak9z7XJCTHD4/6cOABe2mkNzCGhDYNGF3PE2j5FowYaWgtUtSZz3ySss7lcKdNo9pFo41I7DF5CvX1zc1k6+GE97QoOSGLwT5ymUN8TnkMCepP+hIwg39Xr2Vm1thm7kTZQc5yVSxGnmruKA0rdJtvEuRauFOm7wpLKu60wbpZfKVa+qbmjcx1QDrJuYrdX/lwkW1PWPNSeqFO9UyopIAACAASURBVNzcCjfCNSDcrg2rzJ0oO2gapVoYeWs3hWVFUw0VjbxO2CdJMZkNjbXYaYP0G+1saTNjsFxhD/s0X3nsaJCvvHK5+gc8fN4fbfVzkhSTcGOrWQNCMQlrTE5ym3nWp5jMhg3hs34lf9tIBaW2vF9/5M6zdBQyq6o7bZANJl/5uCksGdWCdX6+8vAhqTt1sjr5Sh1v1Zzk0zv9y3cABzpMIUlOElZN2B3PXRrZE64UPGvGnGdsRiOvtLwxQbjT5jHTGqcAgBUmX/lQfVMzO63ghDfQL7mhwWDNiO6vdMAfbSUnCXe6zXgr33thFbvjMUHkyFvZgtKMN27mXYqp/drlC1N+LOVWm0+2DlNYkq+EFaOdLfo51VHf1KxjF48xDQGrCoWgU9l/TsZX3SvFBbfb+d17T4v34j5GW+HKiLlwh3gArDJNIy0krd34mTZ1o+9m9a8eRt7azP7KKachphx5nXA1cKaLyZvePC51o+9N+vlQ/S9fn/RzGbPO1U4bZNuENSNkg2Cf5it1zUjXEf+fK6ZrQDQnuaeDYhKutJnxVopJWDNhd/zZrBeTN/f9YtLPhbQGmDuc+Wf9TdNF3rwbf4KW92Qjn/yKDD/4Z5N+/tZ/2S937Pv7ST+fYX3mHQwKAFhV39TMeiI4VWxYLuM6Bjun7ODOhzQnGY63Am7442aFgd1MAMEqUxhsJlryofMP/aVc+q3fn/Tzd+77e5n/L/sn/XyGdZeKvF0rKGl5l/duw2fk7c/8W3n/N37TH3PVT65f/8UPyv47GZY3hSUZD1hV39TMN0G4M2dOsGZk8V3l/xOvvBwUk+Qk4UafKST5HgqrTNNoM2/OlqbP+Zd/6/flg/mLZO4vX/ef828+O3X3MuOui7x5Zkwx3AUH2DSrnTZAKfVNzeHXLPKVcKJ4y3wprlw5OV/5Rr9/eyujrXBEv1du15tbOWDYxO54OKSri9pyZ5eve/aTuQsbbvVGOWxYNfD+3NXf6V32l//yVv93OVnYMnZm/9WxM/vzuRVrnyne9VF9l3WxN8rXL9ijn0/e0KB4V69Kcf58kV+9J97eZ8U7eICuJOyaO1e8xi9pUqtbRt5eUxjY/RwnDNvOLl83+IU5A5+b641xtrCq592PNH7rzPJ7vPqm5n3a+t5Qf0z+t7kvC4UlbPi7gY/JjsE75VIhJ4WB3ZOyusBs5Frz12UqdR1E3dne6uwYRLa8e0XG+07xosO+uXOl+MUvidxzX/hb+yNkY080kpmEVfVNzUV9vg+f9YHZ0uf78Flfo27XCkr9//STTT/R9BMOqMSP375d/qZviXYnr/3bFJSwJdean3qVka6DONvrF5eANRSUcOGBB6X4qU/7RWUJ/gjZ2BONxEVghRaU4e/zsbrL8h/nHZQ/mMP7FqiMFpFaTGpRaVxfUIZW5X4p35l3UH439yZHjRnpefcj0tK3VH5+af6kX05BCRtyrfkw610+N6nrIHqOizdycdKHgMgoKGHTx5ZI8Q++IjL/1ul+0xHTreTWdMzaxIIy9LtzBuU7c3/qP/MDM6HP+P/hdMN1TSOjdEEZ0ncv9F0MfTcDKEXfnfibvqXygwsLS3w0QEGJ2ci15vXr046oN7t6wxeCBfaz2TEIUFDChltvk+LDf+QXlBF1m8KSG19RsVIFZYjIG6ajBaROH+oU4hTKF5Shfz/3ZXm0/hifbLhOiZZ3SRSUqESuNb/MFJJlvz5Np67vrHj958hXojIUlJgNzUk+8KCIjrfOjnYqt5KvRCXKFZRC5A1T0Of79qHFsr3/o6V/wYdmVlCK+WT7zryfyr/5tZOTPoZsKdPyLomCElGYnKTdVUaarzx10r+5E4iEghKV+tSng2KydE6yEv5aEfKViGq6gjKkE4nfveknRN7gTx7qBOJ0TSNj5gVlSGeu9V0MPtmyRwtILSRL5STLoaDETOVa8xvM7a3lc5IV8q5cFu/UKfKVmDkKSkSlOckvPiSy8A5XR9dnupXkKzEjMy0oQ0Teskuf8fVOFL0bJYLoBWVIO5U6CssnW/rdcDVwZBSUmI7JSWohuXqaX2qFdir9NSPkKzEdCkrMlOYkf+8hkeUrqnVkeZOv7J70EWCCqAVliMhbdmjT6O/6P1r2TpQyKi8oxYzBstMm3SK2vEuioMRUTE5SR1s3TPFL3NEx2IF+8pUoj4IS09GR1nC8tTbaTWHJGCxKqrSgFCJvqRfmJMPd8RWaXUEZYqdN+lTY8i6JghI3mpCTfMzVeOuM6ZoRzVcOX+B1wmQUlChn1f1BV9JeTrJSfr5y7InGLbxeuNFsCsoQKwXTR5tG2pWc6Z0oZdgpKEPstEm+GVwNHBkFJSYyOcnNUdeAuKa5Sj9feYUxfkxAQYlSNCepHcnoa0Bc03f2N7JmBBPZKChDRN6Sr9zu+ArZLShD+smm7XFmrpMjwtXAkVFQQoJCcrXJSVr9emObn6/U/ZWMwUIoKHEDzUlqIXnPfZM+FDN5U1gyOgarBaVMiLyRr0yWmeyOr5CbglLYaZMoFlveJVFQZpsZb91Wk5xkpcJ8pV7cg2yjoETogQelqPskaz/eGkWbuRGWfGWG2S4oQ9ql1G4l+cr4Cy/XnM2dKGW4KyhD7LSJL211b+//mM2Wd0kUlNmVa81viUVOslKar+w5zpqRLKOgxPIVUvzil0Tm35rUoxgxRWXbpI8gE1wVlCEib/GlETaNsrlqGhnuC8qQfrJ9d16emesYcNjyLomCMntyrfl1pisZq5xkpbSg1MKSNSMZREGZXQvvCPZJxi8nWalucxss+cqMcV1Qhoi8xUelu+MrVL2CMhSuGeGTrTYct7xLoqDMDrMGZEfcc5KV8gb6g/2V5Cuzg4Iye+bODTqS8c9JVqrDFJbkKzOiWgWlsFKw5ma7O75C1S8ohZ02NVGllndJFJTpZ3KSm80qkHTTfKWuGRkazPrLng0UlNkS7pNMVk6yUls1Y0m+Mv2qWVCGiLxVnxaRWkxWs2lk1KagDLHTxj0HVwNHRkGZbrnW/CZTTCYzJ1khXS/irxkhX5luFJTZoGtA/uArSc5JVmrEdCvbk/nHx0zUoqAMEXlzz+bu+ArVtqAM/cGcPvmP8w7yyWZRjVreJVFQplOuNd9ocpKrs3wO3vCFYM0I+cp0oqBMN10D8vAfpSknWam8ubiHfGUK1bKgDBF5s8/F7vgKxaOgDOnVw+y0mb0atrxLoqBMF5OT1EJyXdbPYqK6vrPi9Z8jX5k2FJTppDlJHW3VNSCYqN0UluQrUyQOBaWwUtAal7vjKxSvglLYaTMr2vLWG51qkZMsh4IyHUxOMhxvRSm6ZuRsL/nKNKGgTJ9V90vx9x7KSk6yEjoGu518ZXrEpaAMEXmrnG5o0E0NcWkaGfErKEM6c63vYvDJNr0qXw0cGQVl8uVa8xtMVzJTOclKaa7SO3uWfGUaUFCmh+YkdQ3IwjuyfhIz1WfylR3J+ONiKnErKENE3mauWrvjKxTfgjLETpupxbDlXRIFZXKZnOTmtK4BcU07lX6+kjHY5KKgTD7NSWpHcvmKrJ9EpfKmsOxO5h8fcS0oQ0TepqZNo7/r/2jVdsdXKP4FpbDTpqSYtrxLoqBMHpOT1EJyQ9bPYtZ0zchAv3i6vxLJQ0GZXDrSqmtANCfJeKsN7aawZAw2YeJeUAorBScJm0bV3h1foWQUlCFtiWtrXFvkWRWDq4Ejo6BMjgk5yccYb7VM85W6v3L4Qqr+WqlHQZlMmpPUS3eytwbEtRFzaU9buv+a6ZKEgjJE5K22u+MrlKyCMqSfbN+Z+1M/1JsVMboaODIKymTItebXmZzksqyfhUt+vlL3V14hM5IIFJTJojlJLSRZA+KavrO/kTUjyZCkgjKknUodhc1SvjIOu+MrlMyCMpSFnTYJa3mXREEZb7nW/GpTSJKTrCJvoN+/EZZ8ZcxRUCaDrgH54pdE7rkv6ydRbXlTWLJmJMaSWFDKhMhb2vOV+nyvMbaY5yTLSXZBKSnfaaOfWBrETVDLuyQKyngy463byEnWkOYrdc3IQH9mjyD2KCjj74EHyUnWXpsZhSVfGUNJLShDaY686d74JDeNjHzdpJ9KmEvFevk/r35eGq98TX4+Fu/bTmdKW97/62v3xHKnJNIh15rXnORZiskamzNHxld+QsY+/wUpLkjeODtQU8tXSPHRPw9GXCkma83/nmJWTAFWvTE+X/7de1+Wr7/3x9Iz9hupOFwda1175JP+poaEF5O+xHcob6T5yu/Oyydy5joFLe+S6FDGh1kDsoOcZDzphT3+mpGrV7N+FPFBhzJ+Ft4R7JMkJxlX3eY2WPKVMZH0DuWNkrxSMO674yuU/JHXqSRtp01KWt4lUVDWnlkDsoOcZDLU9Z0Vr/8c+co4oKCMD81JajdSx1uRBB2msCRfWWNpKyglgZE3fb4Pn/VTKL0FpSRkp00CrwaOjIKydkxOcrMZR0KSaL5S14wMDfKy1RIFZTzoPklGW5Nqq2YsyVfWThoLypBOJH73pp/Ees2IFpFaTKaxaWSku6AM6XqR78w7GKtPtpS2vEuioKwNk2XZxj7JZNP1Iv6akZGLWT+K2qCgrC1dA/IHX2GfZPL1mUt72rN+ELWQ5oIyFMfIWxJ3x1coGwVlSG+H0luiavnJlvKWd0kUlNVlcpJaSK7O0t877bRT6a8ZIV9ZXRSUtXHrbVL8vYf8i3eQKnlTWJKvrKIsFJShOKwUTPLu+Aplq6CUGu+0yUDLuyQKyuowOUktJNdl4e+bSToGO9BPvrKaKCirS0daw/FWpFm7KSzJV1ZBlgpKqWHkLdwdrze3Zkz2CsqQdin14p5qfLJpyzvLK0AoKN0yOclNJiuJLLh6NchXDl/g5XaNgrJ6Vt0fdCXJSWaFZiq3jz3RuCXrB+Fa1grKUDUjb2nZHV+h7BaUIZ25/s7cn/qfdLZlsOVdEgWlOyYnuZk1INmkuUo/X3kleWuSEoOC0j3NSeoakIV3pP1vitL6zG2wHSU/ilnLakEZchl506bR9v6PZeJOlDIoKEM2d9pkuOVdEgWlfSYnuZn/7ULCfKXur2QM1j4KSnc0J6mjrffcl9a/IaLJm8Kym3OzK+sFZcjmSkFtGmlHMm274ytEQTlRmK/UMG+l9BPrb/qWZi4nWQ4FpT1mvFVzkhvS8neCJWG+Ui/ugT0UlPaFOUndJ8l4KyZrN4Ula0YsoaD8kI3IW5p3x1coX5fIP7Yjl4r18nfvf1oar3xNni9EmyDUVvf/dPQ+PyvJJxhcyLXmNWdylmISJc2ZI+PLGmTs81+Q4oJsj9kjxjQn+dVH2SmJcvR73Nlca579ybDujfH58n/8qlG+/t4fy8/Hok0SaoRt7ZFP+hOIPOtfjw5lGTPZaUPLe3p0KGcn15pfZ7qS5CQxY5qvrOs5zpqR2aJDacfCO4Kc5MeWpOFvg+rRfOVG1ozMDh3KqWmnUjuW5Z71dY+k7pPMeE6yHEZeZ6LUTpswJ0nLe3oUlJXJteZXm0KS/32iYt5Af7C/knxlZSgoZ2fuXCl+8UvkJDFbeVNYsmakAhSU5U0VedPne42x0TSaFgXlTOknm36i6Sdcxq8GjoyCMhqTk9xsVoEAs6f5Sl0zMjTIYUZFQVm5Bx4kJwnbtopIG/nKaCgoZ0a7lHobrN4Km9Xd8RWioIxq/tsD8s4gu9+ioKCcOZMZ0WJyQVL+zEgOXS8y75VDMjr7C+6yg4IykjnyK5k7vyhX/s0mkfm3JuhPjgQZMZf2tPOizQwFZTS39J+QS5d+laQ/cq1xKU9Ul8bmJOsPjETQNSC51vxZM+JKMQn7Ll8S+fEeKQz0c7hwpiA3yfsLVkpdXx/5Xbii3yN35FrzXWaFFmDV5TG6klFRHQE1lGvN60U7O5gSgDPvvy/eoZ+KvBJkQ8buuEsYGYBL47mPiDd8QXLDF6TYsFzG717i30IMWKb3DOzLteY7TMeSfCVQI3yFB2rA5CTD8VbAjVdeDorJ99/ngFETuhc1139Oxld+QoqL7+JFgAt6E7pO+WwnXwnUBiOvQJXlWvMbzD5Jikm48Ua/eDufFO/APopJ1J5eCtVzXOq6jvjrbAAHwsvsusz3WABVRIcSqBKT9dhmxnQA+y5fEu/ACyK9pzlcxI4Wk17XRb9TOd6wXGTePF4k2LbM5Csf1Rth2V8JVAcFJeCYyUluM2M5gH2ak9SMpI63AjGn62v8fOWSpTK+rIGXCy40mjHYdlNYkq8EHKKgBByZkJN8jJtb4cyJ14KuJKOtSJJCIchXDr4Z5CsXLuLlgws6/rpO85VjTzRu4YQBNygoAQdMhmOzGb8B7NOcpHYk32ANCBLs6lWpO3ZUigtul+LKlVK8ZT6vJmzz85VmDFZvg+3ghAG7KCgBi0xOcjNrQOCM5iS1kOx5lTNGavj5ysOHgnzlyk+wZgQu6Bu8u3Kt+bwpLLs5ZcAOvmIDFpjx1m1mvAawL8xJ6g/GW5FSYb5SL+0p6v5KwL5GcxtsuyksWTMCzBJrQ4BZyrXmt5g1IBSTcKP3tHjP7Awu3aGYRNrpmpFTJyV38CXWjMAlf4VXrjW/iVMGZocOJVChXGt+nelKkpOEG8Png12S5CSRRZqv7Dri5yvHV93LmhG44E8X5VrzenneRtaMAJWhoAQiyrXmV5tCkpwk3NDx1hf3kZMETL5Su5XFhuUyrmOw5Cthn74xvM/kKzeyZgSIhq/KwAyZnORmswoEcOOVl4NLdxhtBa7jrxnpPxesGVl8F4cDFxrNGGyb2V9JvhKYATKUwAyYjMVZikk4o2tAdj4ZjLhSTAKlab6y57jUHT5EvhIubTKFJXcjADNAhxIow6wB2UFOEs7oGpDnnyUnCUTgXbksnuYrFy4K1oyQr4R9OpW0w+QrHydfCUyNghIoIdeaX2YKSXKScCNcA6LjrQAq4g1fkNzIRSkuWUq+Eq6sNvnKDlNYkq8EbsBX3hT4+NJFsnzpInlr+JL0nrsgV95jXK5SJie5yWQlATdOvCbegRcYbQVsKBSCfOXgm8H+SvKVcENvdl+Xa81vFZE28pWVu3nuHPnk0gVy523z5Oi5Eek9fyWpfxUYFJQJdstH5srmx/61fPKeu6/9JbSY/P6ug7LrR11ZP57ITFZimxlzAezTnKRmJIfPc7iAbbpmpOe4FAcHpbhypRRvmc8RwwV9w/lRLSzHnmhs54Sj+foXlsm6z9ztF5Whg6eG5b/sOSHvvl9IzN8D16OgTLCvr//8dcWkmCLzL/+0Uf7wi/fJ3/9DXo6eGMj6MU3L5CS3mbEWwD7NSWpHsvc0hws4ppf1eIcP+Z1KP1/JGCzsW2bylY+a22DJV07j8ysXyl98aYXflbyRfkwLze+9wPfIpOKrbIKt//KaKf/wOgb7f337EfnpkTN+YanjsLieyUluM2MsgH1hTlJ/MN4KVJU3NCi54QtBvnJZA4cPF/QN6cZca77dFJbkK2+gBeRf/6t75JNLyg9//eFvL6agTDAKypR78Hc+7v/4fsfPZFfnEfKV1+ckH2O8Fc5oTlIv3Ln0DmcM1MrEfKXur1y4iJcCLmww+crtY080buGEg5xkON4601+P5OLVSzAtDnXEdSa+vu5zsu7La/xu5Y9fPJ7ZMzM5yc2sAYEzw+eDnCRrQID40HzlsaNSXHC7jK+6lzUjcEHfoN5sxmD1NtiOrJ6yFpFaTEYpEt965+qkn0NyUFAmWMePuvxCcaa0+PzWN5vky1+8T/77roOZyleanORm1oDAGR1vfXGfSM+rnDEQU5qvzB18SYp3L/FvhCVfCQf0DetdudZ83hSW3Vk5ZL259a+/ck/JnOR0Ol7mzo8k4ytpgmlRePNH5pbNUpaiF/lovlI7lfp7pDlfaXKSm804CuCEP9pKThJIDG+gX3JDg8GaEd1fCdinb2B3mXzl42leM6IFpF64o5frVOIfXuqTjl9QUCYZBWXC+SOsB17zb3a98cbX6fzh790rn/+dj/udzjTmK3Ot+S3kJOFU7+mgK0lOEkieQkHqTp0U6T/nj8HqOCzgQJiv1Et72tJ0wDrSuv4zd8uffqGyFJGuC9GLeBh3TT6vvql5H2OAM1e8MCTF84Ox/LPp5TtaWN658NZJH5uOdim1ONVbYW0rDOz2qnkOudb8OnN7KzlJuKFrQJ5/NpE5Se+Ou8RbtHjSz2MK716R8b5TpT+GkuqWrRS5+ZZSH4o1vbDHXzNCvhLu6C2wG6u9ZqS+qbk46Sdn6Q/vXyx/8fCKii7T0QLyb589IUfPxbNpW+w7JcV3r0z6eUwpT4cyRbQY1B9/tv7z/gU8M72wR2kRuvmxf+3nKrWwPHPuwqRfE3e51vxqU0jyBgnc0JxkON4KIFW84QvBmpGG5TKuY7DkK2GfvtG9z+QrNyZxzYjmJHW8dfkd0d80evf9gnyf8dZUokMZUZw7lBNpgaiFpY61VkLzlVpY2hiDdd2hNGtAtpGThFOvvBwUkwnPSdKhjIgOZWRJ7VBeZ86cYM3I4rsmfQiwqM3sr3TaqrPRodScpI62ameyElpEajGpRWXc0aGMLE9BGVFSCsqQ5iq1sIyarxSzlkTzlXpxz2y4LChzrflN5tIdcpJw443+YA3I8PlUHDAFZUQUlJGloqA0NFdZbGggXwmXRsylPe2u/huzKSjDnKSuAqlkvPVo/4j87Z4TicpJUlBGRkEZVdIKypB2KrWwrDRf+Z+f7Kx4zYiLgtKsAdlBThLOaE7ywAv+xTtpQkEZEQVlZGkqKEPaqfTXjJCvhDvdprC0nq+stKDUbqR2JStZA6IFpF64oxfvJA0FZWRkKLNCR1gPHjkj65t+J9LuSjHjs7pmRAtKLSxruWbErAHZwZsgcEZzkpqR1PFWANA3YoYGg3zlkqXkK+HKapOv7DCFZc3ylZqP1At3Prkk+vCXjrSG463IDjqUESW1QzmRFoh6G6zeCluJXT/qku/vOjjjfKWNDqXJSepo66ZJHwRsOfFakJNM8RoQOpQR0aGMLI0dyuvMmxfkKxcumvQhwKKtmrG0ka+caYdSR1q1kKw0J/njV4fke3tPJyInWQ4dysgYeY0qDQVlSHOVWlh+fGn0b4paTGpRqcXldGZbUOZa8xvMpTvkJOGG5iS1kEzgGpCoKCgjoqCMLPUFpeHnK1eulOIt8yd9DLDESr5yJgXl17+wbFY5SS0ke8+nowijoIyMgjKqNBWUIc1XamEZZc1ISNeL6G2w5fKVlRaUJie5zYyBAPZpTlILyZ5XM3O4FJQRUVBGlpWCMuTnK3V/JWOwcCdvboOtKF9ZrqDUNSB//ZV7Ks5J/sNLfX5nMk0oKCMjQ4nZ5Su1u6n5St1/qYWljXylyUlqIblu0gcBS67tk0z4GhAAtRXmK/XSnqLmKwH79A32xlxrvt0UlrMOKGoB+df/6p5Z5SR3/WIg8eOtsIOCEj4dYdX1ID868Jp865tNkdeMaB5Tf3y/42eyq/NIRfsrTU4yXAMCuNF7WrwX96U6JwmgygoFqTt1UqT/nIyvupc1I3BFI0Drcq357ZXmK3WkNRxvrYTe2qq3tyZpDQjcY+Q1ojSOvJaiBaUWlpWsGdFiUruV2vmUGY68mpzkZtaAwJnh88E+yQzkJMth5DUiRl4jy9rIaylaUGphyZoRONRn8pUd0/0nwpFXLSK1mKwkJ6n5SC0kj56b9R1BscfIa2RkKKPKSkEZWv/lNfL19Z+vKF+puUrteh55/u+nLChNTnIzn4NwRteAhOOtoKCMioIyMgrKD+kIrL+/knwl3MmbwrJ7qv/CZ775X4p/8aUV/jqQqHSkVS/cSVtOshwKysgoKKPKWkGptJjUolKLywr5M/8PP/zwtZl/k5PcbMY3ADdeeTkoJslJXkNBGREFZWQUlDeYMydYM7L4rkkfAixqN4XltRbi3r17Z3UnhV64k8WcJAVlZBSUUWWxoAzpBTx6G2zUfKXhX3398MMPt+da81tE5DHWgMAZXQOy9zlykiVQUEZEQRkZBWVpul7EXzNCvhLu6LPW9h99dqxtNndS6BqQv91zIrM5SQrKyCgoo8pyQRnSy3e0sIyar/zpRU+2nK7rIycJZ3QNyPPPZj4nWQ4FZUQUlJFRUJZXXLgoWDNCvhKO3DlX5H9vGJdPzp9yW0hJWkD+7bMnMpGTLIeCMjLWhiA6XRGiP/5s/edl3ZfXTJuvPPOeJ39/zpNXLvtRSopJ2Kc5Sc1I6ngrAMSYN3xBciMXpbhkqYzrmhHylbDsrfdFvnWiTj41vyjfahj3C8xydKT1+y/1+atAgErkcivWNrI4PoL3rvjvWCO4dGfPvqPy6wtu9sdhSzlzqSD/7pgnbxVyJT4K2OH9j/9H5NQJTnMGvJvni0f3aOY+GJXiyNtJ+dPGgrfgN0Tq67N+DOWNj4s3clG8996T4p13lv2lQKXeGvVk17kP5MH5H8iv31T6jQstIv/TrlflWH+2u5LX0a/5H4xO+mlMKZ8bO7P/h7kVa18Rkc+RaZsBCsrrjH4w5ncrtbhcvOi2SWOwA+cvyd7Ol/WtC5Fbb5v07wNW3P8pkblzxXtrUGRsjDMtg4IyIgrKyCgoZ0Av6vn4Cinq6Cvgil5Mt6dDGj+5ZNLzmeYktZB8/tUh+WBsnJdgIgrKmfJX1xQGdm/120ZjZ/afGDuzf3tuxVrPdCsZ7J8KBWVJbw1f8vdO6v998NMr+sI3J966dFWeP/qmeG//UuqGBkXmzxeZd1Op3wKYncUfFbl/tXi/es/fOYnSKCgjoqCMjIKyPH+VyG9/SoTLeeCKXkzX8Y/i6eTO2Jh8+Yv3TSwo+/7TrlcX7PhJr1x8l6KpJArK6Wg7+7sisrEwsPtn+mvrJv4Lo50tevvmGnP1MBBV/scvHl9jPoe2Tvp3r16Vuq4jUnfsqP/PgHVz50rx0YDOngAAIABJREFU4T+S4le/IfKxJZwvgNjQ213HPv+F4EIecpNwQS+m2/WM/6PELecjZoVbw8FTw2vM/kogKq0R1xQGdm8pDOy+Nic95cL5+qZmFs6XwC2vJYUt746JH9y7d++C/7r31Ib/7+U3tpX6l4oNy7mQAG71nhbvxX2lvrFmFre8RsQtr5Fxy+sN5s2T8VX3si4E7kxzMd1/+PM/6nj4C6s2Pvzww9cFJeubmteZPZVcmDgBt7yW1G2e9Uu+ETFlQRmqb2reYApLPtkoKG/k7zvSdykmfcQwb0zsm/SBEAuf4Vr4jVZ/vP9+5o+bgjIiCsrIKCiNOXOCm1yXNUz6EGDNidfEO/DCdN/fHpqqEJDgWY394BNQUF5nxBSSZadX6yb9zA1GO1vapxxhRJZda3nP6gwKBanrOS51hw/5N94B1ukY7AMPSvGrj4qsup/zBeCcvknqj7dSTMIVzUk+vTPYvVy+mJyWibw1EHnDDbT2a5iumJSZdCgnqm9qXmZa4+smfTAj6FD6M/dby73TNdG0Hcob6Dfh8YblLHyGO/pNWMeC3ujP5CHToYyIDmVkWe5Q6lhrceVKKd4yf9LHACs0J6kdyd7TUX63sh3KiYi80aHUbTKmK9k36SNTiBReG+1s0d94vflk28b+ykzpM4Wk03evvKFByQ1fYOEz3PnYEimu/5OZjgkBwPQ0J6nxjYWldzIDs1al+MZoZ4sWnnkib5nUZ25ujXxhU0Xb5sfO7O8bO7P/e7kVa98x+yuz007K5tqQrROvBo4it2KtfiHaEOlfMguf686/JfJrvybCO71wYeEdwZoRfdMiQ91K1oZExNqQyDK1NkRzkr+5zL90h+9VcEbfAP3R7qArWdmu5afGL52ccbdJgmf97tyKtU9pKZu5lYLZWxuiOclvFwZ2fy3q50moooIyNHZm/89yK9Z+z3ySfW7SL0ijbBWU2vL+it7eOn7pZEV7PioqKEOFgnjDF8QbGRGZf4tI/dxJvwSYFS0mdb3IqvvFu/yOyMX0Fw4UlBFRUEaWlYLSj2jc99tBV7Ju2ispgOg0orH3uaAzObuuZOSCUoLn/KtjZ/bncyvWPmM6lfdM+kVplK2Csk2nTyvpSk4UKUNZjslX7kj7zHVGMpRlrwaOImqGshz/mzf7u+CSfvM+sE9k+Hxqj5kMZURkKCNLe4bSz0k2NLAGBO7oeKuuvOp51dZ/YsYZynKyEnnLSIYyb6YPK+pI3sjak7nJVz5kPtl2MHOdSDO6GrhWrstXcnMeXNB85Ve/4WdU/It7yFcCCLHmClXgf++J6Zork69cY/KV21gzkkgld8fP1qxGXksx+crtuRVrvVTOXKd35DVseUfOSZYzq5HXUsJ85dCgyPz5IvNuKvGLgFla/NEgX6lZlbfSNZHAyGtEjLxGlsaR12LDchm/736RW2+b9DHAit7T4v3zD2aTkyynopHXqZh85fdMvjJ9k4npHHnVptF3CwO7149fOnli0kdnydnQPzttEiNvdszouxUjiflTX70qdV1H/B/6z4B1ur/yiw9J8dE/D3KWADJH85HX9kkSt4ALw+fF2/WMeHs6RC69k5gjHu1sGZnwrD/rcVo41W6e9We3O74Mp18d9ZNN53Prm5q3m9Z4ZnfaxFDFVwPHiXYrcwdfkuLdS4L9lXzDh23zbw3WjOi7x5ppSdA3fAAV0jUgq+4lJwl3NCcZjrcmGJG3WMub8dbuSR+xrCpP36OdLd3mk22dKSz5ZKudEbNPsi1NfylvoF9yQ4N+UanFJWDd8hVSXL4i1vkWALOkOUm+j8C1FOb0Tb6yob6peZPZX0m+snac5CTLqeo916OdLfoXW2P2GiZnvDI9wpZ3qorJawoFqTt1UuoOH/I7l4ALxQcelOI3/txfNQIgPbSI1PFWikk4ozeJ73wyuE08pW9Kjna2tBF5q5kRU2OtqWYxKTbXhkRl1oxstnphSxUkdG1I1VreN7K5NiQqzb74a0bmZWcXL6pMsy/6YPBGf2JOnrUhEbE2JLKkrQ3RsVYdb+V7BZy5fEm855+t5fcKK2tDoqpval6dxMhbQteGtJsJRGuXL0VRs8CZmbnWfOVTprAkX2lf1VveceINXwjWjOjtfPqOM/lK2LbwjiBfeeK1YHyJfCWQHJqT1DUgCxfxosENzUlqREK/P2QQkbeqyJtCsqZ3otT8CdvMXOfZaWOVtry3u7zNKUm8s72S6z/H/jC4c899UmxYETw4kK8E4m3OHPYZwz19o/HAC3w/+DDy1lHf1KzPpY/xrG9FrHbHVzVDWc5oZ0u7mbneWuaXYXrtZnaaYnIizVf2HPfXjJCvhBO6ZkTzlV99lHwlEFP6puK1NSCAC5qTfHpnMOJKMXkds2ZkDfnKWdtq7kSJzTnWLENZjslXardyXZlfVhMxzlDGouV9o1pmKMvRhwp/zQiZGbiiDxWarxw+H6sjJkMZERnKyOKYodScZHHlSineMn/SxwArNCepHcne03E8z5pkKMsxz4exjLzFOEPZYbqSNclJlhPLUJnJV65np82M9JlCknd7IvCGBoN8pY49ka+ECx9bIsWvfoOxJ6CWNCepa0CIO8CVMCdJ3CGSGyJvm3nWL6vbFJKx3R0fm5HXUvSTbbSzRedSHmfNyCQTrwammKxEoRDkKw//3L/AB3BC85W6ZuSBBzlfoFo0J9mwXMY++7sUk3BH3zB8Zmdw6Q7FZEVM5G0NkbeSwpzkmjgXkyo36WdiaOzM/p/lVqz9nr7XKCKfq+mf8L0r/ghUjWnLe73e3jp+6eTVOL5modyKtctivxpGC8vzb4k3MiIy/xaR+rmTfgkwK9oB/9gSP1vpXX5H5OLbNTtP7+b54iVopUPNfTAqxZHavV5J5C34DZH6+pr9yf1Iw32/HdzeWhfr982RVBpp2Ptc0JlMRiH51Pilk7EbkwyNndl/dezM/nxuxdqnTKfynkm/qJr0a/4HozX9I4hIm3nWj3UhGYplhrIck6/cUauZ6xpnKGPf8r5RXDOU5fgPI7q/kjFYuGIeRmqxZoQMZURkKCOrVYZS85F+TnLB7ZM+Blih460v7hPpeTVp5xm7DGU55tlR71JZXeaXOVPjDKW+ThvjmJMsJ3FPzCZfmbWdNrG6GjjtrstXchMgXNB85Te+6WduPEalgNmZM4e1UHDO/1pNTrIqTL5yTcZWCvaZQjIxhf9EiZ0F0Z02Jl+5NeX5ythdDZwJYb7y4EusGYE7n/p0kK/81Kc5ZKACfk7y81+gmIQ7vafF2/kkOckamLBSsC3Ff80Rc7lmQ1KLSUlyQRkyO20aUrjTJm8KyS2Fgd1cSFQrV6/6uyv1h/4zYJ3ur/ziQ8GNsJqzBDAtzUde2ydJPAEuDJ8Xb9cz4u3pqEk8AYHRzpaR0c6Wx82zfmILrim0h8/6pT+cHInLUJZT39S82rTGneUrq5ChTHTL+0ZJzFCWU7x7SbC/kgcYuKLvhmtGx9EDDBnKiMhQRuY0Q6lrQFbdS04S7mhOMhxvTY9EZSjLqcZKwSpkKPMmytY96SMJlaqn4tHOlm6Tr0ziTpuw5Z3mtn7ieQP9khsaDPaa3U03CQ4sXyHF5SvI6wATaU6Sr7twjVx77Jl8ZUN9U7N29R5LWL6yzxSSHZM+knCpvE/7hp02SRgXbTMtb4rJJCgUpO7USak7fIh8JZwpPvBgkK9cdT+HjEzTItLPSVJMwhW9eXvnk+Id2EcxmRAJi7xN3B2fumJS0jbyWopZM6JjsOtKfDgyyyOvqWt53yhtI6+laJbHXzMyb16JjwIW6MOOvmv+Rv+sfy9GXiNi5DUyWyOvOtaq4618bYUzly+J9/yzVr62xlxqRl5LsR15szzy2m4mEBO1BiSq1AfBzJqR9bXeaXOD1La8s8gbvhCsGWlYLuP6Djr5Stima0bW/4nIideCwpILIpBmmpPUNSALF/Eyww3NSWqkQL+eIvEmRN7itFIwbwrJ1BbyE2XmyTcmO2205b09Dbc5YTJ/zUj/OfahwZ177pNiw4rgQYh8JdJmzhz2/8I9fWPuwAt8/UwhXSlY39Ssz/ubapivzOTu+FRmKMuZsNNma5lf5kJqrgZGGZqv7DnurxkhXwkndM2I5iu/+qh/gQ+QBvom3LU1IIALGh14emcw4koxmVpmzcgWc5dKtYu6zO6OT32GshyTr9wRZea6ggxlplreN8pChrIcfUjy14yQAYIr+pCkF0kMn5/Rf4AMZURkKCOLkqHUnGRx5Uop3jJ/0scAKzQnqR3J3tNZPs9UZyjLMc+hmyM960fPUHaYrmSqc5LlZDrsZfKVDznaadNnCsnMvUuBD3lDg0G+kjEuuKL5yq9+gzEuJIvmJHUNCPEAuBLmJIkHZJqJvOUdRd66TSGZyWJ9osyNvJain2yjnS36tP+4hTUjE68GppiEPwbr5ysPvuRf4AM4oflKXTPywIOcL+JLc5INy2Xss79LMQl39A22Z3YGl+5QTMJ+5C3MSa6hmAxQUE4w2tnSZj7ZKt0H2WEKyS2Fgd1J2H+Jarp6VeqOHQ3ylVcuc/SwL8xXPvrnfucSiBM/J/nZ3w2mNbgNGy5oBGDXM0FOktuwcYMJ+coG88xeCXbHl8BX9BvoJ5u+61Df1PxUhJ02tLwxY3pZj3f4UJCv1P2VPFjBtvm3BmtG9OFq73M8WKGmNB/p5yQX3M4LATd0vPXFfSI9r3LAmFaFKwX1GX9jlnOS5fAkO4UZ7rTJ5NXAsCPMV/o5orvpJsEBzVd+45t+hshj9AvVNmcOa5TgnP+1jZwkKjBhpeAmc3FPqXxlnykkaRqVkZv6Q1BjZ/afGDuzf3tuxVrPfwfjvSvzJLj5SWewv1YY2P0zDmpquRVrtRDfMOUvyLrxcfHe/qXUDQ2KzJ8vMu+mrJ8IXFj8UZH7V4v3q/fE+9WvxJvhDZwQkQ9GpTjyNicRgbfgN6T4W/fI+H33i9x6W2L+3EiY3tPi/fMPgttbx8Z49cp7avzSSTprUxg7s/9nuRVrv6fXhYnI50S/5n8wqk2jbxcGdn+Ns5tepteGRFXf1LygeGFoU/H8YDst75nJ+tqQqHQkbHzVvawZgTN6MZRmeTFDrA2JZuEdUvzjfyty881J+lMjSYbPB6uS3ujnZZu5zK4NiUpXChb7Tm0ovnuljftQZo6R1whMvnJLYv7ASBzNV+ptsDoC6++vJF8J2/icgku6D5ViEi5oTjIcbwUcMflKnvUj4skCiCFvoF9yQ4PkjwAAIAcOxBoFJRBXhYLU9RyXYn8/NyQCALKHm6qBRKCgBGJOd1Z6XUekuHBRsGaEfCUAIM0uXwp2SZKTBBKBghJICL1MRdeMFBuWy7iuGSELBwBIE81JakZSx1sBJAZPpEDCeGd7JTf4ZrC/knwlACANTrwm3oEXyEkCCURBCSTR1atBvnJwUIoNDeQrAQDJpDlJXQOiNwQDSCQKSiDBdM2I13XR71T6a0bIVwIAkkBzktqR7D3NywUkHAUlkALe0GCQr1yyVMaXNfCSAgDiKcxJ6g/GW4FUoKAE0qJQ+DBfqfsrFy7ipQUAxIfmJPXCHdaAAKlCQQmkjeYrjx31c5X+/spb5vMSAwBqR3OSWkiyBgRIJQpKIKX8fOXhQ0G+UvdXsmYEAFBNOt764j6Rnlc5diDFeMIEUi7MV/prRnR/JQAAjvkdSXKSQCZQUAJZUChI3amTIv3nZHzVvawZAQC40Xs66EqSkwQyg4ISyBLNV3Yd8QtKLSxZMwIAsGL4fLBPkpwkkDkUlEAGab4yd/AlKTYsl3EdgyVfCQCohOYkw/FWAJnEUySQYf6aER2D1TUji+/iUwEAMHOvvBwUk+QkgUyjoASyTvOVPcel2N8frBkhXwkAKEfXgOx9jpwkAB8FJQCfd+WyeJqvXLgoWDNCvhIAMNHlS+I9/yw5SQDXoaAEcB1v+ILkRi5KcclS8pUAgCAnqRlJHW8FgBvwpAhgskIhyFcOvhnsryRfCQDZdOI18Q68QE4SwJQoKAFMTdeMaL5ycFCKDQ3kKwEgKzQnqWtAhs/zkgMoi4ISwLR0zYjXddHvVPr5SsZgASCdNCepHcne07zAAGaEp0IAM+YNDUpu+EKQr1zWwMEBQFqEOUn9wXgrgAgoKAFEMzFfqfsrFy7iAAEgyTQnqRfusAYEQAUoKAFURvOVx476uUp/f+Ut8zlIAEiS4fNBTpI1IABmgYISwKz4+crDh6R49xL/RljylQAQczre+uI+kZ5XeaUAzBpPfgCs8Ab6JTc0GKwZ0f2VAIDY8UdbyUkCsIiCEoA9hYLUnTop0n9Oxlfdy5oRAIiL3tNBV5KcJADLKCgB2Kf5yq4jfkGphaXMm8chA0At6BqQ558lJwnAGQpKAM5ovjJ38CUpNiyXcR2DJV8JANWhOclwvBUAHOLpDoBz/poRHYPVNSOL7+LAAcClV14OiklykgCqgIISQHVovrLnuBT7+4M1I+QrAcCuN/rF2/scOUkAVUVBCaCqvCuXxdN85cJFfseSfCUAzJLmJA+84F+8AwDVRkEJoCa84QuSG7koxSVLyVcCQCU0J6kZSR1vBYAa4QkOQO0UCkG+cvDNYH8l+UoAmJkTrwVdSXKSAGqMghJA7emaEc1XDg5KsaGBfCUATEVzkgf2iQyfn+IXAEB1UVACiA1dM+J1XfQ7lX6+kjFYAAhoTlJHW3te5UAAxApPawBixxsalNzwhSBfuayBFwhAdoU5Sf3BeCuAGKKgBBBPE/OVur9y4SJeKADZojlJ7UqyBgRAjFFQAog3zVceO+rnKv39lbfM5wUDkG7D54Oc5Bv9vNAAYo+CEkAi+PnKw4ekePcS/0ZY8pUAUkfHW1/cR04SQKLwRAYgUbyBfskNDQZrRnR/JQCkgD/aSk4SQAJRUMK1EfNjAScNawoFqTt1UqT/nIyvupc1IwCSq/d00JUkJwk3wucwwJk6jhYujXa2dIvIGhHp4KBhneYru474GUv9ZwBIDF0DsusZ8fZ0UEzClXZ9BisM7O7mhOESHUo4N9rZ0ici6+ubmhtFZJuIrObUYZM3fCFYM9KwXMZ1DJZ8JYC40pxkON4KuJEXka2Fgd15zhfVwFMXqma0s0W/sK2pb2reYApLxmBhlb9mRMdgdc3I4rs4XADx8srLQTFJThJu9JlCsp3zRTUx8oqqG+1s0S90uq1+K6cP6zRf2XNc6g4f8m+GBYCae6NfvJ1PBqtAKCbhxlYz3koxiarzOHLUUn1T8zIR2SEijbwQcEE7lf6akXnzOF+zfkVzp5ihd6/IeN8pTiuC4l99KzF/Vuc0J3ngBf/iHcARvaPi8cLA7j4OGLXCyCtqyuQrHzL5Si0sl/GKwCZvaDDIVy5ZSr4SQHVoTlIzkjreCrjRbQpJcpKoOZ6sEAsmX9lQ39S8SUQ2k6+EVYVCkK8cfDPYX0m+EoArJ14LupKMtsKNEVNIMtqK2CBDiVgZ7WxpM/nKNl4ZWKdrRjRf2XVEvCuXOV8A9mhOUteAPP8sxSRc8Z+RKCYRN2QoEVv1Tc2rzW2w5CvhhJ+vXPmJTI3BkqGMiAxlZJnLUGpOUkdbe16d9CHAEp3i2khOEnHFyCtia7SzpdvkK9eZwpJ8Jay6Ll+5rIHDBTBzYU5Sf9CRhBt9ppAkJ4lYy/HyIO7Gzuw/MXZm//bcirXaUdeuJdd1wp7x8aBrNzQoctNNIh+5OdWH61296hfSmKEPRqU48janFcUDDybnz1qp3tPiPfvD4PbWsbFk/h0QZ5qT/HZhYPfXxi+dpCuJ2CNDicQY7WzZYvKVZAdgn+Yrjx0NxkGvXuWAAUw2fD7ISe7pELn0zqQPAxa0m5wkd0kgMehQIlHGzuy/OnZm/w9zK9b+xIzAMgYLq7SDVzfQL16hIMXbbhOpS9f7bnQoI6JDGV0aO5Q63vqT58XL/9jPTAIO6Fjr+sLA7u+NXzrJu5pIFDKUSCSzZiRf39S8wawZobCEVd5Av+SGBoM1I7q/EkAm+RfukJOEO31mDUgHZ4ykokOJRBs7s787t2LtU/r+MflKWKf5yrd/GeQr588XmXdT4s+YDmVEdCijS0uHUteAdPwjOUm4ojnJ7xYGdq8fv3TyBKeMJKOgROKZMdh8bsXaZ0yn8h5eVVhVKPhFmHflSjAGm+A1IxSUEVFQRpf0glLXgOzpCDqTdCXhhuYkv0ZXEmnByCtSY7SzRcdG1tc3NTeaNSOreXVhkzd8IVgz0rBcxnUMNkP7K4HU05xkON4KuKFxna2sAUHa8DSE1DH5yjUmX6mF5QJeZdjkne2VXP85GV/5CSkuvouzBZLulZfpSMKlPlNIcks9Uom1IUit0c6WdrNmZCuvMqwrFKSu57i/ZkT3WAJIIM1JPr1TvAP7KCbhij6DrKGYRJp5vLrIgvqmZs1W7hCRRl5wuKCdSr0RVubF+14oLX79XZuYmXevyHjfKQ4rguJffSv+f0jNSR54IbhwB3Cjw9ze2sf5Iu0YeUUmmHzlQyZfuYM1I7BNL7rx85VLlpKvBOJKc5KakdTxVsCNblNIkpNEZvDEg0wx+cqG+qbmTWZ/JflK2KO3wWq+cvDNIF+5cBGHC8TFideCriSjrXBjxBSSjLYic8hQIpNGO1vaTL6yjc8AWHf1qtQdOxrkK69c5nyBWtKc5K5nxHv+WYpJuOI/U1BMIqvIUCLz6puaV5vbYMlXwgk/X7nyE7EYgyVDGREZyshik6HUnKSOtva8OulDgCU69bSRnCSyjpFXZN5oZ0u3yVeuM4Ul+UpYdV2+clkDhws4dm2fJB1JuNFnCklyksg8leMUgMDYmf0nxs7s355bsVY799q1jPd1nUiW8fGgOzg0KDJ/vsi8m2ryx/euXvULXMzQB6NSHHmb04rigQdr99/uPS3eP/8guL11bGzSh4FZ0pzktwsDu782fukkXUnAIEMJ3GC0s2WLyVeShYB9mq/sOhKMnV69ygEDNgyfD3KSezpELr3DkcKFdpOT5O4F4AZ0KIESxs7svzp2Zv8PcyvW/sSMwDIGC6u0U1g30C9eoSDF224TqavO+3t0KCOiQxldNTuUugbkJ8+Ll/+xn5kEHNCx1vWFgd3fG790kncBgRLIUAJlmDUj+fqm5g1mzQiFJazyBvolNzQo4w3Lpaj7KwHMzCsvB1lJcpJwo8+sAengfIHy6FACMzB2Zn93bsXap/T9cPKVsE7zlW//UrzhYZGbP+I0X0mHMiI6lNG57lDqGpCOfxTv1AlyknBBc5LfLQzsXj9+6eQJThiYHgUlMENmDDafW7H2GdOpvIezg03e6Khf7HlXrgRjsA7WjFBQRkRBGZ2rglLXgOzpoCsJlzQn+TW6kkA0jLwCEY12tugYzPr6puZGs2ZkNWcIm7zhC8GakYblMq5jsDHYXwnUjOYkwzUggBsab9nKGhCgMjylABUy+co1Jl+pheUCzhI2eWd7Jdd/TsZXfkKKi+/ibJE9J14T78ALdCThSp8pJLnVHZgFRl6BWTL5yu+ZfGUj5wmrNF85fEG8kRGRm+bNOl/JyGtEjLxGZ2PkVXOSe34o3quvkJOEK1tFZGNhYPfPOGFgdjzOD7CnvqlZs5U7KCzhinYq9UZYmVfZvVDeyMVgByZm5t0rMt53isOKoPhX36r8X9acpHYke09P+hBgSYe5vbWPAwXsYOQVsMjkKx8y+codrBmBbdpd9POVS5bK+LIGzhfpoDlJzUhqVhJwo9sUkuQkAcsoKAEHTL6yob6peZPZX0m+EvYUCkG+cvDNIF+5cBGHi+TSnKQWkpfe4UWECyOmkCQnCThSx8EC7ox2trRpYSkibRwzrLt6VeqOHfVHWL0rlzlfJIvmJHc9I97zz1JMwhX/ezDFJOAWGUqgSuqbmleb22DJV8IJP1+58hNl14yQoYyIDGVk02Yodbz1xX0iPa9O+hBgSd5cuENOEqiCqZ86AFg12tnSbfKV60xhSb4SVoX5Sr20p6j7K4GYubZPkjUgcKPPFJLkJIEqYm0IUGVjZ/afGDuzf3tuxVqdENCuZWXXdQKl6JqRt38pdboaZP78SWtGWBsSEWtDoiu1NqT3tHj//IPg9lbWgMA+zUl+uzCw+2vjl07SlQSqjAwlUCOjnS1bTL6SbAfs03xl15FgvPXqVQ4YtTF8PshJ7ukgJwlX2k1OkrsKgBqhQwnU0NiZ/VfHzuz/YW7F2p+YEVjGYGGVdiTrBvrFKxSkeNtt4o2O0qGMgg5ldNqh1JzkwQPi7X3O3y0JOKBjresLA7u/N37pJO+aATXEpTxAjNQ3NW8wa0YoLGHfnDn+xT3eQD+HO1NcyhNZ8YsPBVlJcpJwo8+sAengfIF4oKAEYqa+qVl3Vur+ysfYXwnUGAUlEBeak9xeGNi9hVcEiBcKSiCm6pual5nbYNfxGgE1QkEJxIHmJLeyBgSIJwpK/P/t3b1uHGl2BuAPbqCgcC9BAngB1BVwssJmVOiMvAIqdVAgiY4UkQ4dsRVu1gEDd9bgFXQoCKDRMBgTZdkO1CRFozRH4xk1JZHsv/p5nlAlYJdfaTX7zqn3O9Rclhe/RbDc9q5gzQRK2KRxBElrQKDGBEpoiOhXnvgMFtZIoIRNmEaQdAs6NIC1IdAQs1F/EGtGXI0OQFsdp5ReC5PQHCaU0EDRrzxLKf3m/cEKmVDCugzj9lY9SWgYgRIaLPqVZ9aMwIoIlLBqkwiSepLQUAIltECWF29jf6V+JSyTQAmrUkZPUo0DGk6HElpgNuqfRr9S5wSAuvv6zyxhEtrBhBJaJsuL7bgNVr8SFmVCCctUfda6rycJ7SJQQktlebEbwVK/Ep5LoIRlmEaQ1JOEFhIooeWyvDhKKR3oV8IzCJSwiKon+a+3V+dHThHaq+fdQrvdXV6Me1s7/4hAue11wxPczNJ9ee3OQksjAAAMOUlEQVTE4OmqTv/fb6/O/93ZQbuZUEKHxJqRQ/1KeCQTSniqcawBmTg56AaBEjooy4u96Ff6DBZ+RqCEx5pGkBw6MegWa0Ogg2aj/iDWjBx7/wAsoIx/lrwWJqGbTCih47K8eBnTyt2unwXMMaGEn6n+5eSxNSDQbQIl8FX0K09c3AN/IlDCQybxeas1IIBACfxVlhdv4+Ie/UoQKOHPygiSA6cCfKNDCfzFbNQ/jX7lqZMBIFQ9yVfCJPA9E0rgh6JfeWbNCJ1lQgnDmErqSQIPEiiBX4p+ZRUsXzotOkWgpLuqALmvJwn8ikAJPFqWF0cppQP9SjpDoKR7yri5Ve0BeBQdSuDRZqP+UfQrdWgA2uc0epLCJPBoJpTAs2R5sR1rRvQraS8TSrphHJ+36kkCTyZQAgvJ8mIv1ozoV9I+AiXtNo0Ld4beM/BcPScHLOLu8mLS29p5n1L6nFKqppYvHCitcTNL9+W190nbVD3Jd7dX52++fPr4wdsFFmFCCSxNrBmpppV7TpVWMKGkfQYxlSy9W2AZBEpg6WLNyElMLKG5BEraYxy3t1oDAiyVQAmsTPQrT6wZobEESppvGkHS7dzASlgbAqzMbNQfxJqRY6cMsFZl/N37WpgEVsmEEliL6FdW08pdJ05jmFDSTMPoSVoDAqycQAmsVfQrz6wZoREESpplEkFSTxJYG4ES2IgsL97GjbD6ldSXQEkzlBEkfdoKrJ0OJbARs1H/NPqVp94AwLN9/btUmAQ2xYQS2LgsL7ajX/mbt0GtmFBSX9Vnrft6ksCmCZRAbWR5sRvBUr+SehAoqZ9pBEk9SaAWBEqgdrK8OEopHehXsnECJfVRxj5JNQGgVnQogdqZjfpH0a/UCQL4/e/CV8IkUEcmlECtxZqRQ/1KNsKEks0ax+2tE+8BqCuBEmiELC/2IljqV7I+AiWbMY0gOXT+QN31vCGgCe4uLya9rZ33KaXPppWszc0s3ZfXzpt1qXqS726vzt98+fTxg1MHmsCEEmicLC9exm2wu94eK2VCyfoM4tIda0CARhEogcaKfmUVLLe9RVZCoGT1xhEkrQEBGkmgBBov+pUn1oywdAIlq1NGT9Jt1kCjWRsCNN5s1B/EmhFX6gNNcBxrQIRJoPFMKIFWiX7lmYt7WAoTSpZrGFNJPUmgNQRKoJWiX3lmzQgLEShZjkkEST1JoHUESqDVsrw4Sikd6FfyLAIliynjwh2f4wOtpUMJtNps1D+KfqWuErBOp9GTFCaBVjOhBDojy4vtuA1Wv5LHMaHk6arPWvf1JIGuECiBzsnyYjeCpX4lPydQ8njT6EkOnRnQJT1vG+iau8uLD72tnfcppc8ppWpq+cIfAh50M0v35fVDT+Cbqif57vbq/M2XTx8/OBWga0wogU6LNSOHKaW9rp8FDzCh5OcGMZUsf/q7AFpMoAT4/zUjJzGxhN8JlDxsHEFy8uBTgA4RKAH+JMuLvQiW1owgUPK9aawBcWs0QLA2BOBPZqP+INaMHDsXIJTxd8JrYRLgr0woAX4g+pVn1ox0mAklKQ3j81ZrQAAeIFAC/EL0K8+sGekggbLLJhEkx10/CICfESgBHinLi7dxI6x+ZVcIlF1URpD0aSvAI+hQAjzSbNQ/jX7lqTODVqp6kq+ESYDHM6EEeIYsL7bjNlj9yjYzoeyK6rPWfT1JgKcTKAEWkOXFbgRL/co2EijbbhpBUk8S4JkESoAlyPLiKKV0oF/ZMgJlW5WxT9Ln6wAL6jlAgMXdXV6Me1s7/4hAue1IW+Jmlu7L666fQttU/ci/m0oCLIcJJcCSxZqRQ/3KFjChbJNx3N466fpBACyTQAmwIlle7EW/0mewTSVQtsE0guSw6wcBsArWhgCsyGzUH8SakWNnDGtXxv/2XguTAKtjQgmwBllevIxp5a7zbhATyqYaxKU71oAArJhACbBG0a88cXFPQwiUTTOOIOnCHYA1ESgBNiDLi7dxcY9+ZZ0JlE1RRk9y0PWDAFg3HUqADZiN+qfRr7QHDxZT9SRfCZMAm2FCCbBh0a88s2akhkwo62wYU0k9SYANEigBaiLLi93oV770TmpCoKyjKkDu60kC1INACVAzWV4cpZQO9CtrQKCskzIu3PGZOECN6FAC1Mxs1D+KfqVOGPzuNHqSwiRAzZhQAtRYrBk51K/cEBPKTRvH5616kgA1JVACNECWF3sRLPUr10mg3JRpXLgz7OaPD9AcPe8KoP7uLi8mva2d9ymlzyml7ZTSC69tDW5m6b68bv2PWSNVT/Ld7dX5my+fPn7o+mEANIEJJUDDxJqR6jbYXe9uxUwo12kQU8myOz8yQPMJlAANFf3Kk5hYsgoC5TqM4/ZWa0AAGkigBGi46FeeWDOyAgLlKk0jSLrNGKDBrA0BaLjZqD+INSNWKtAEX/dJppReC5MAzWdCCdAi0a88s2ZkSUwol20YPUlrQABaQqAEaKHoV55ZM7IggXJZJhEk9SQBWkagBGixLC+OUkoH+pXPJFAuqowg6dNWgJbSoQRosdmofxT9Sv+HnnWrOr2vhEmAdjOhBOiILC+24zZY/crHMqF8juqz1n09SYBuECgBOibLi90IlvqVvyJQPsU0gqSeJECH9LxsgG65u7z40NvaeZ9S+pxSqqaWL/wR+IGbWbovrx9+xjdVT/Jfbq/O//nLp4+mkgAdY0IJ0GGxZuQwpbTnz8EDTCh/ZRCX7pS/+H0AtJRACcC3NSOH+pXfESh/ZBxBcvKD5wB0hEAJwB+yvNiLfqU1I0mgfMA0guRw/hEAXaRDCcAf7i4vJr2tnX+LfqVppQ7lN9Unre9ur87ffPn08cPcUwA6y4QSgAdFv7KaVu4+9LwTTChT9CSPrQEB4CECJQA/Ff3Kk7gRtlu6HSjHESStAQHghwRKAB4ly4u3cXFPd/qV3QyU0wiSg7knAPCdf5r7FQB4wGzUP00pvUopnc4/pSWOU0qvhUkAHsuEEoAni37lWesv7unOhHIYt7fqSQLwJAIlAM8W/coqWL5s5Sm2P1BOIkjqSQLwLAIlAAvL8uIopXTQun5lewNlGT1Jny8DsBAdSgAWNhv1j6JfqXtXf1+7sMIkAMtgQgnAUmV5sR1rRprfr2zXhLL6rHVfTxKAZRIoAViJLC92I1g2t1/ZjkA5jSCpJwnA0vUcKQCrcHd58aG3tfM+pfQ5pVRNLV807qBvZum+vJ775YaoepLvbq/O33z59NFUEoCVMKEEYOVizchhSmmvUafd3AnlIG5vLeeeAMASCZQArE2sGTlsTL+yeYFyHEFyMvcEAFZAoARg7bK82It+Zb3XjDQnUE4jSA7nngDAClkbAsDazUb9QawZOXb6CynjDF8LkwBsggklABsV/cpqWrlbuzdR7wllFcqPrQEBYJMESgBqIfqVJ3EjbD3UM1COI0haAwLAxgmUANRKlhdv4+Kezfcr6xUoy+hJDuaeAMCG6FACUCuzUf80+pWn3swfqp7kK2ESgLoxoQSgtqJfebaxNSObn1AOYyqpJwlALQmUANRe9CurYPlyrf9dNxcoJxEk9SQBqDWBEoDGyPLiKKV0sLZ+5foDZRkX7vjcF4BG0KEEoDFmo/5R9Cvb2CU8jZ6kMAlAY5hQAtBIWV5sx5qR1fUr1zOhrD5r3deTBKCJBEoAGi3Li90IlsvvV642UE4jSOpJAtBYPa8OgCa7u7z40NvaeZ9S+pxSqqaWL5b249zM0n15PffLC6p6ku9ur87ffPn00VQSgEYzoQSgNWLNyGFKaW8pP9PyJ5SDuL21nHsCAA0kUALQOrFm5HDhfuXyAuU4guRk7gkANJhACUBrZXmxF/3K560ZWTxQTiNIDueeAEALWBsCQGvNRv1BrBk5XvPPWMZ/5mthEoA2M6EEoBOiX1lNK3cf/fM+b0JZhdhja0AA6AKBEoBOiX7lSdwI+3NPC5TjCJLWgADQGQIlAJ2U5cXbuLjnx/3KxwXKMnqSg7knANByOpQAdNJs1D+NfuXpAj9/1ZN8JUwC0FUmlAB0XvQrz+bWjPx4QjmMqaSeJACdJlACQIh+ZRUsX379lflAWQXIfT1JAPidQAkA38ny4iildJD+93/+FoGyjAt3Fvk8FgBaR6AEgAdkefG3+//+r5P7//yPb2GynP9dANBhKaX/A4GH9C/VMr76AAAAAElFTkSuQmCC";var lr=Object.defineProperty,cr=Object.getOwnPropertyDescriptor,W=(s,t,e,r)=>{for(var i=r>1?void 0:r?cr(t,e):t,n=s.length-1,o;n>=0;n--)(o=s[n])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&lr(t,e,i),i};let L=class extends Q{constructor(){super(...arguments),this.lang="es",this.loading=!1,this.disabled=!1,this.label=void 0,this.hasError=!1}render(){const s=y.t,t=this.hasError?s.errors.config||"Config Error":this.loading?s.trigger.loading:this.label||"Apolo Pay";return f`
30
+ <div class="button-wrapper">
31
+ ${this.hasError?"":f`
32
+ <img class="logo-apolo" src="${Vt}" alt="Icon" />
33
+ `}
34
+ <button
35
+ ?disabled=${this.disabled||this.loading||this.hasError}
36
+ class="${this.hasError?"error":""}"
37
+ type="button"
38
+ >
39
+ ${t}
40
+ </button>
41
+ </div>
42
+ `}};L.styles=[Ue,U`
43
+ :host { display: inline-block; }
44
+
45
+ .button-wrapper {
46
+ --img-size: 24px;
47
+ --gap: 8px;
48
+ }
49
+
50
+ button {
51
+ position: relative;
52
+ display: inline-flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ width: 100%;
56
+ height: 100%;
57
+ padding: 12px 32px;
58
+
59
+ font-size: 0.9rem;
60
+ letter-spacing: 0.5px;
61
+ color: var(--apolo-on-primary);
62
+
63
+ background: #74727225;
64
+ border: none;
65
+ border-radius: 9999px;
66
+ cursor: pointer;
67
+ transition: transform 0.2s, background-color 0.2s;
68
+
69
+ text-indent: var(--img-size);
70
+ mix-blend-mode: difference;
71
+ z-index: 1;
72
+ }
73
+
74
+ button::before {
75
+ content: "";
76
+ position: absolute;
77
+ inset: 0;
78
+ border-radius: 9999px;
79
+ padding: 2px;
80
+ background: linear-gradient(90deg, var(--apolo-primary), #ffffff);
81
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
82
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
83
+ -webkit-mask-composite: xor;
84
+ mask-composite: exclude;
85
+ z-index: -1;
86
+ }
87
+
88
+ button:hover {
89
+ transform: translateY(-1px);
90
+ background-color: rgba(255, 255, 255, 0.1);
91
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
92
+ }
93
+
94
+ .button-wrapper:hover img {
95
+ transform: translateY(calc(-50% - 1px));
96
+ }
97
+
98
+ button:active {
99
+ transform: translateY(0);
100
+ }
101
+
102
+ button:disabled {
103
+ opacity: 0.6;
104
+ cursor: not-allowed;
105
+ filter: grayscale(1);
106
+ transform: none;
107
+ }
108
+
109
+ button.error {
110
+ background-color: rgba(239, 68, 68, 0.1);
111
+ color: #ef4444;
112
+ text-indent: 0;
113
+ }
114
+
115
+ button.error::before {
116
+ background: linear-gradient(90deg, #ef4444, #fca5a5);
117
+ }
118
+
119
+ .logo-apolo {
120
+ position: absolute;
121
+ top: 50%;
122
+ left: calc((var(--img-size) / 2) + var(--gap));
123
+ transform: translateY(-50%);
124
+ width: var(--img-size);
125
+ height: var(--img-size);
126
+ margin-right: var(--gap);
127
+ transition: transform 0.2s;
128
+ }
129
+ `],W([u({type:String})],L.prototype,"lang",2),W([u({type:Boolean})],L.prototype,"loading",2),W([u({type:Boolean})],L.prototype,"disabled",2),W([u({type:String})],L.prototype,"label",2),W([u({type:Boolean})],L.prototype,"hasError",2),L=W([lt("trigger-button")],L);const hr=U`
130
+ /* 1. Definimos las Animaciones */
131
+ @keyframes modal-enter {
132
+ from { opacity: 0; transform: scale(0.95) translateY(10px); }
133
+ to { opacity: 1; transform: scale(1) translateY(0); }
134
+ }
135
+
136
+ @keyframes modal-exit {
137
+ from { opacity: 1; transform: scale(1) translateY(0); }
138
+ to { opacity: 0; transform: scale(0.95) translateY(10px); }
139
+ }
140
+
141
+ @keyframes backdrop-enter {
142
+ from { background-color: rgba(0, 0, 0, 0); backdrop-filter: blur(0px); }
143
+ to { background-color: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); }
144
+ }
145
+
146
+ @keyframes backdrop-exit {
147
+ from { background-color: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); }
148
+ to { background-color: rgba(0, 0, 0, 0); backdrop-filter: blur(0px); }
149
+ }
150
+
151
+ /* 2. Estilos Base */
152
+ dialog {
153
+ border: none;
154
+ padding: 0;
155
+ margin: auto;
156
+
157
+ /* Geometría */
158
+ min-width: 320px;
159
+ max-width: 420px;
160
+ width: 90vw;
161
+ border-radius: var(--apolo-radius);
162
+
163
+ background-color: var(--apolo-bg);
164
+ color: var(--apolo-text);
165
+ box-shadow: var(--apolo-shadow);
166
+ font-family: var(--apolo-font);
167
+
168
+ opacity: 0;
169
+ pointer-events: none;
170
+ }
171
+
172
+ /* 3. Estado: ABIERTO (Animación de Entrada) */
173
+ dialog[open] {
174
+ opacity: 1;
175
+ animation: modal-enter 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
176
+ pointer-events: auto;
177
+ }
178
+
179
+ /* 4. Estado: CERRANDO (Animación de Salida) */
180
+ dialog.closing {
181
+ /* Sobrescribimos la animación de entrada */
182
+ animation: modal-exit 0.15s ease-in forwards;
183
+ }
184
+
185
+ /* 5. Backdrop (Fondo Oscuro) */
186
+ dialog::backdrop {
187
+ background-color: rgba(0,0,0,0); /* Invisible por defecto */
188
+ }
189
+
190
+ dialog[open]::backdrop {
191
+ animation: backdrop-enter 0.2s ease-out forwards;
192
+ }
193
+
194
+ dialog.closing::backdrop {
195
+ animation: backdrop-exit 0.15s ease-in forwards;
196
+ }
197
+
198
+ dialog:not([open])::backdrop {
199
+ display: none;
200
+ pointer-events: none;
201
+ }
202
+ `,pr=U`
203
+ /* Inputs de solo lectura (Diseño Apolo) */
204
+ .text-field {
205
+ display: flex;
206
+ gap: 0.5rem;
207
+ margin-top: 1rem;
208
+ text-align: left;
209
+ position: relative;
210
+ }
211
+ .text-field-label {
212
+ --padding-left: 0.25rem;
213
+ --padding-top: 0.15rem;
214
+ font-size: 0.75rem;
215
+ color: #9ca3af;
216
+ border-radius: calc(var(--apolo-radius) - 1px);
217
+ background: #ffffff;
218
+ padding: var(--padding-top) var(--padding-left);
219
+ position: absolute;
220
+ top: calc(-0.5rem - var(--padding-top));
221
+ left: calc(1rem - var(--padding-left));
222
+ display: block;
223
+ z-index: 2;
224
+ }
225
+ .text-field-input {
226
+ width: 100%;
227
+ padding: 0.75rem 1rem;
228
+ border: 1px solid #526282;
229
+ border-radius: var(--apolo-radius);
230
+ background: #ffffff;
231
+ color: #4b5563;
232
+ font-size: 0.9rem;
233
+ z-index: 1;
234
+ }
235
+ .btn-secondary {
236
+ background-color: #526282;
237
+ color: #ffffff;
238
+ border: none;
239
+ border-radius: var(--apolo-radius);
240
+ padding: 0.5rem 1rem;
241
+ cursor: pointer;
242
+ transition: background-color 0.2s ease;
243
+ }
244
+ `;const dr={CHILD:2},ur=s=>(...t)=>({_$litDirective$:s,values:t});class Ar{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,r){this._$Ct=t,this._$AM=e,this._$Ci=r}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}class Ft extends Ar{constructor(t){if(super(t),this.it=b,t.type!==dr.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===b||t==null)return this._t=void 0,this.it=t;if(t===z)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;const e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}}Ft.directiveName="unsafeHTML",Ft.resultType=1;const J=ur(Ft),fr=U`
245
+ .qr-frame {
246
+ background: white;
247
+ padding: 10px;
248
+ padding-bottom: 14px;
249
+ border-radius: var(--apolo-radius);
250
+ box-shadow: 0 4px 15px rgba(0,0,0,0.08);
251
+ display: inline-block;
252
+ margin-bottom: 1rem;
253
+ }
254
+
255
+ .qr-badge {
256
+ color: var(--apolo-accent);
257
+ font-weight: 700;
258
+ font-size: 1.2rem;
259
+ display: inline-block;
260
+ margin-top: 10px;
261
+ }
262
+
263
+ .qr-wrapper {
264
+ position: relative;
265
+ display: block;
266
+ width: 150px;
267
+ height: 150px;
268
+ }
269
+
270
+ .qr-code-img {
271
+ width: 100%;
272
+ height: 100%;
273
+ }
274
+
275
+ .qr-overlay-icon {
276
+ position: absolute;
277
+ top: 50%;
278
+ left: 50%;
279
+ transform: translate(-50%, -50%);
280
+
281
+ width: 36px;
282
+ height: 36px;
283
+
284
+ object-fit: contain;
285
+ background-color: white;
286
+ border-radius: 50%;
287
+ padding: 2px;
288
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
289
+ }
290
+ `,mr="data:image/png;base64,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";function kt(s){const t=s.target;t.src=mr}const yr=U`
291
+ .spinner-overlay {
292
+ position: absolute;
293
+ inset: 0;
294
+ background-color: rgba(255, 255, 255, 0.3);
295
+ z-index: 50;
296
+ display: flex;
297
+ align-items: center;
298
+ justify-content: center;
299
+ border-radius: var(--apolo-radius, 12px);
300
+ cursor: wait;
301
+ backdrop-filter: blur(2px);
302
+ }
303
+
304
+ .spinner {
305
+ border: 4px solid #e5e7eb;
306
+ border-top: 4px solid var(--apolo-primary, #6366f1);
307
+ border-radius: 50%;
308
+ width: 40px;
309
+ height: 40px;
310
+ animation: spin 1s linear infinite;
311
+ }
312
+
313
+ @keyframes spin {
314
+ 0% { transform: rotate(0deg); }
315
+ 100% { transform: rotate(360deg); }
316
+ }
317
+ `;var gr=Object.defineProperty,kr=Object.getOwnPropertyDescriptor,Wt=(s,t,e,r)=>{for(var i=r>1?void 0:r?kr(t,e):t,n=s.length-1,o;n>=0;n--)(o=s[n])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&gr(t,e,i),i};let st=class extends Q{constructor(){super(...arguments),this.expiresAt=0,this.timerString="-- : --",this._interval=null}connectedCallback(){super.connectedCallback(),this.startTimer()}disconnectedCallback(){this.stopTimer(),super.disconnectedCallback()}updated(s){s.has("expiresAt")&&this.startTimer()}startTimer(){if(this.stopTimer(),!this.expiresAt||isNaN(this.expiresAt))return;const s=()=>{const t=Date.now(),e=this.expiresAt-t;if(e<=0){this.stopTimer();const d=y.t.modal.labels.minutes,A=y.t.modal.labels.seconds;this.timerString=`00 ${d} : 00 ${A}`,this.dispatchEvent(new CustomEvent("expired"));return}const r=Math.floor(e%(1e3*60*60)/(1e3*60)),i=Math.floor(e%(1e3*60)/1e3),n=r.toString().padStart(2,"0"),o=i.toString().padStart(2,"0"),l=y.t.modal.labels.minutes,a=y.t.modal.labels.seconds;this.timerString=`${n} ${l} : ${o} ${a}`};s(),this._interval=window.setInterval(s,1e3)}stopTimer(){this._interval&&(clearInterval(this._interval),this._interval=null)}render(){return f`${this.timerString}`}};st.styles=U`
318
+ :host {
319
+ display: block;
320
+ color: var(--apolo-accent, #ea580c);
321
+ font-weight: 600;
322
+ font-size: 0.9rem;
323
+ margin-bottom: 1rem;
324
+ }
325
+ `,Wt([u({type:Number})],st.prototype,"expiresAt",2),Wt([S()],st.prototype,"timerString",2),st=Wt([lt("payment-timer")],st);var vr=Object.defineProperty,br=Object.getOwnPropertyDescriptor,v=(s,t,e,r)=>{for(var i=r>1?void 0:r?br(t,e):t,n=s.length-1,o;n>=0;n--)(o=s[n])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&vr(t,e,i),i};let k=class extends Q{constructor(){super(...arguments),this.isOpen=!1,this.barrierDismissible=!1,this.lang="es",this.productTitle="",this.currentStep=g.SELECT_ASSET,this.status="idle",this.error=null,this.isLoadingData=!0,this.assets=[],this.selectedAsset=null,this.selectedNetwork=null,this.qrCodeUrl=null,this.paymentAddress=null,this.amount=0,this.amountPaid=void 0,this.email="",this.qrCodeExpiresAt=null,this.paymentUrl=null,this.isAddressCopied=!1,this.handleBackdropClick=s=>{if(s.target!==this.dialogElement||this.dialogElement.classList.contains("closing")||!this.barrierDismissible)return;const t=this.dialogElement.getBoundingClientRect();(s.clientY<t.top||s.clientY>t.bottom||s.clientX<t.left||s.clientX>t.right)&&this.requestClose()}}disconnectedCallback(){super.disconnectedCallback();const s=this.dialogElement;s&&s.open&&s.close()}async updated(s){if(super.updated(s),await this.updateComplete,s.has("isOpen")){const t=this.dialogElement;if(!t)return;if(this.isOpen)t.classList.remove("closing"),t.open||t.showModal(),t.addEventListener("click",this.handleBackdropClick);else{if(t.removeEventListener("click",this.handleBackdropClick),!t.open)return;t.classList.add("closing");const e=r=>{r.target===t&&this.closeDialogFinal(t,e)};t.addEventListener("animationend",e),setTimeout(()=>{t.open&&this.closeDialogFinal(t,e)},200)}}}closeDialogFinal(s,t){s.removeEventListener("animationend",t),s.classList.remove("closing"),s.open&&s.close()}requestClose(){this.dispatchEvent(new CustomEvent("closeRequest"))}handleDialogNativeClose(s){s.preventDefault(),this.requestClose()}handleTimerExpired(){this.status="error",this.error={code:D.payment_timeout,message:y.t.errors.timeout},this.changeStep(g.RESULT),this.dispatchEvent(new CustomEvent("expired",{detail:{error:this.error}}))}selectAsset(s){this.dispatchEvent(new CustomEvent("assetSelect",{detail:{assetId:s}}))}selectNetwork(s){this.dispatchEvent(new CustomEvent("networkSelect",{detail:{networkId:s}}))}changeStep(s,t){t?.stopPropagation(),this.dispatchEvent(new CustomEvent("changeStep",{detail:s}))}copyAddress(s){this.paymentAddress&&(s.stopPropagation(),navigator.clipboard.writeText(this.paymentAddress),this.isAddressCopied=!0,setTimeout(()=>this.isAddressCopied=!1,2e3))}handlePayFromDevice(){this.paymentUrl&&window.open(this.paymentUrl,"_blank")}get currentAsset(){return this.assets.find(s=>s.id===this.selectedAsset)}get currentNetwork(){return this.currentAsset?.networks.find(s=>s.id===this.selectedNetwork)}getFormattedTimeWindow(){if(!this.qrCodeExpiresAt||isNaN(this.qrCodeExpiresAt))return"30 min";const s=this.qrCodeExpiresAt,t=Date.now(),e=s-t;return e<=0?"0 min":`${Math.ceil(e/(1e3*60))} min`}renderQRStep(s){const t=this.getFormattedTimeWindow(),e=y.interpolate(s.modal.warnings.onlyToken,{symbol:this.currentAsset?.symbol||""}),r=y.interpolate(s.modal.warnings.timer,{time:t}),i=this.currentNetwork,n=this.currentAsset?.symbol||"",o=this.amount-(this.amountPaid||0);return i?.network==="apolopay"?f`
326
+ <payment-timer class="timer" .expiresAt=${this.qrCodeExpiresAt} @expired=${this.handleTimerExpired}></payment-timer>
327
+
328
+ ${this.amountPaid&&this.amountPaid>0?f`
329
+ <div class="balance-card">
330
+ <div class="balance-row">
331
+ <span class="balance-label">${y.t.modal.labels.paid}:</span>
332
+ <span class="balance-value">${this.amountPaid} ${n}</span>
333
+ </div>
334
+ <div class="balance-row">
335
+ <span class="balance-label">${y.t.modal.labels.remainingToPay}:</span>
336
+ <span class="balance-value highlight">${this.amount} ${n}</span>
337
+ </div>
338
+ </div>
339
+ `:""}
340
+
341
+ <div class="qr-frame">
342
+ <div class="qr-wrapper">
343
+ <img src="${this.qrCodeUrl}" class="qr-code-img" alt="QR Apolo Pay" />
344
+ <img src="${Vt}" class="qr-overlay-icon" style="padding: 4px;" />
345
+ </div>
346
+ <span class="qr-badge">${o} ${n}</span>
347
+ </div>
348
+
349
+ <div class="btn-dark">
350
+ <h4 style="margin-top: 0; margin-bottom: .1rem;">${J(s.modal.info.noReloadPageTitle)}</h4>
351
+ <span style="font-size: .8rem;">${s.modal.info.noReloadPageSubTitle}</span>
352
+ </div>
353
+
354
+ <div class="warning-text">
355
+ <p>${J(r)}</p>
356
+ </div>
357
+
358
+ <button class="btn-dark">${J(s.modal.actions.scanApp)}</button>
359
+ ${this.paymentUrl?f`
360
+ <button class="btn-primary" style="width: 100%; margin-top: 0.5rem;" @click=${this.handlePayFromDevice}>
361
+ ${s.modal.actions.payFromDevice}
362
+ </button>
363
+ `:""}
364
+ `:f`
365
+ <payment-timer class="timer" .expiresAt=${this.qrCodeExpiresAt} @expired=${this.handleTimerExpired}></payment-timer>
366
+
367
+ ${this.amountPaid&&this.amountPaid>0?f`
368
+ <div class="balance-card">
369
+ <div class="balance-row">
370
+ <span class="balance-label">${y.t.modal.labels.paid}:</span>
371
+ <span class="balance-value">${this.amountPaid} ${n}</span>
372
+ </div>
373
+ <div class="balance-row">
374
+ <span class="balance-label">${y.t.modal.labels.remainingToPay}:</span>
375
+ <span class="balance-value highlight">${this.amount} ${n}</span>
376
+ </div>
377
+ </div>
378
+ `:""}
379
+
380
+ <div class="qr-frame">
381
+ <div class="qr-wrapper">
382
+ <img src="${this.qrCodeUrl}" class="qr-code-img" alt="QR Wallet" @error=${kt} />
383
+
384
+ ${i?f`<img src="${i.image}" class="qr-overlay-icon" alt="Network Icon" @error=${kt} />`:""}
385
+ </div>
386
+ <span class="qr-badge">${o} ${this.currentAsset?.symbol}</span>
387
+ </div>
388
+
389
+ <div class="btn-dark">
390
+ <h4 style="margin-top: 0; margin-bottom: .1rem;">${J(s.modal.info.noReloadPageTitle)}</h4>
391
+ <span style="font-size: .8rem;">${s.modal.info.noReloadPageSubTitle}</span>
392
+ </div>
393
+
394
+ <div class="text-field">
395
+ <label class="text-field-label">${s.modal.labels.network}</label>
396
+ <input class="text-field-input" readonly value="${this.currentNetwork?.name}" />
397
+ </div>
398
+
399
+ <div class="text-field">
400
+ <label class="text-field-label">${s.modal.labels.address}</label>
401
+ <input class="text-field-input" readonly value="${this.paymentAddress}" @click=${this.copyAddress} />
402
+ ${this.paymentAddress?f`
403
+ <button class="btn-secondary" @click=${this.copyAddress}>${this.isAddressCopied?s.modal.actions.copied:s.modal.actions.copy}</button>
404
+ `:""}
405
+ </div>
406
+
407
+ <div class="warning-text">
408
+ <ul>
409
+ <li>${J(s.modal.warnings.networkMatch)}</li>
410
+ <li>${J(s.modal.warnings.noNFT)}</li>
411
+ <li>${J(e)}</li>
412
+ </ul>
413
+ <p>${J(r)}</p>
414
+ </div>
415
+ ${this.paymentUrl?f`
416
+ <button class="btn-primary" style="width: 100%; margin-top: 1rem;" @click=${this.handlePayFromDevice}>
417
+ ${s.modal.actions.payFromDevice}
418
+ </button>
419
+ `:""}
420
+ `}render(){const s=y.t;let t;const e=f`
421
+ <div class="modal-header">
422
+ ${this.currentStep>g.SELECT_ASSET&&this.currentStep<g.RESULT?f`<button class="back-button" @click=${()=>this.changeStep(this.currentStep-1)} >&larr;</button>`:""}
423
+ <button class="close-button" @click=${this.requestClose}>&times;</button>
424
+ </div>
425
+ `;this.currentStep===g.SELECT_ASSET?t=f`
426
+ <h2>${J(s.modal.titles.selectAsset)}</h2>
427
+ <p class="subtitle">${s.modal.subtitles.selectAsset}</p>
428
+
429
+ <div class="selection-list">
430
+ ${this.assets.map(i=>f`
431
+ <div class="selection-card" @click=${()=>this.selectAsset(i.id)}>
432
+ <img src="${i.image}" class="coin-icon" @error=${kt} />
433
+ <div class="card-text">
434
+ <span class="card-title">${i.symbol}</span>
435
+ <span class="card-sub">${i.name}</span>
436
+ </div>
437
+ </div>
438
+ `)}
439
+ </div>
440
+ <p class="warning-text" style="font-size: 0.9rem; text-align: center; margin-top: 1.5rem">
441
+ ${s.modal.info.selectNetworkLater}
442
+ </p>
443
+ `:this.currentStep===g.SELECT_NETWORK?t=f`
444
+ <h2>${J(s.modal.titles.selectNetwork)}</h2>
445
+ <p class="subtitle">${s.modal.subtitles.selectNetwork}</p>
446
+
447
+ <div class="selection-list">
448
+ ${this.currentAsset?.networks.map(i=>f`
449
+ <div class="selection-card" @click=${()=>this.selectNetwork(i.id)}>
450
+ <img src="${i.network==="apolopay"?Vt:i.image}" class="coin-icon" @error=${kt} />
451
+ <div class="card-text">
452
+ <span class="card-title">${i.name}</span>
453
+ </div>
454
+ </div>
455
+ `)}
456
+ </div>
457
+ `:this.currentStep===g.SHOW_QR?t=f`
458
+ <h2>${J(y.interpolate(s.modal.titles.scanQr,{symbol:this.currentAsset?.symbol||""}))}</h2>
459
+ ${this.productTitle?f`<p class="subtitle">${this.productTitle}</p>`:""}
460
+ ${this.renderQRStep(s)}
461
+ `:this.currentStep===g.RESULT&&(this.status==="success"?t=f`
462
+ <div class="result-container">
463
+ <div class="success-icon">
464
+ <svg viewBox="0 0 52 52">
465
+ <circle class="checkmark-circle" cx="26" cy="26" r="25" fill="none"/>
466
+ <path class="checkmark-check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
467
+ </svg>
468
+ </div>
469
+
470
+ <h2 class="result-title">${J(s.modal.titles.success)}</h2>
471
+
472
+ <p class="result-desc">
473
+ ${s.modal.success.message} ${this.email?f`<span class="highlight">${this.email}</span>`:""} ${s.modal.success.message2}
474
+ </p>
475
+
476
+ <div class="purchase-details">
477
+ <h3 class="details-title">${s.modal.success.details}</h3>
478
+
479
+ ${this.productTitle?f`
480
+ <div class="text-field">
481
+ <label class="text-field-label">${s.modal.labels.product}</label>
482
+ <input class="text-field-input" readonly value=${this.productTitle} />
483
+ </div>
484
+ `:""}
485
+
486
+ <div class="text-field">
487
+ <label class="text-field-label">${s.modal.labels.amount}</label>
488
+ <input class="text-field-input" readonly value="${this.amount} ${this.currentAsset?.symbol||""}" />
489
+ </div>
490
+ </div>
491
+ </div>
492
+ `:this.status==="error"?t=f`
493
+ <div class="result-container">
494
+ <div class="error-icon">❌</div>
495
+ <h2 class="result-title">${s.modal.titles.error}</h2>
496
+ <p class="result-desc">${this.error?.message||s.errors.generic}</p>
497
+ <button class="btn-primary" @click=${this.requestClose}>${s.modal.actions.close}</button>
498
+ </div>
499
+ `:this.status==="processing"?t=f`
500
+ <div class="processing-container">
501
+ <div class="dots-loader">
502
+ <div class="dot"></div>
503
+ <div class="dot"></div>
504
+ <div class="dot"></div>
505
+ <div class="dot"></div>
506
+ <div class="dot"></div>
507
+ </div>
508
+
509
+ <h2 class="processing-title">${J(s.modal.titles.processing)}</h2>
510
+
511
+ <div class="btn-dark" style="margin-bottom: 0">
512
+ <h4 style="margin-top: 0; margin-bottom: .1rem;">${J(s.modal.info.noReloadPageTitle)}</h4>
513
+ <span style="font-size: .8rem;">${s.modal.info.noReloadPageSubTitle}</span>
514
+ </div>
515
+
516
+ <div class="text-field" style="width: 100%;">
517
+ <label class="text-field-label">${s.modal.labels.amountSent} (${this.currentAsset?.symbol})</label>
518
+ <input class="text-field-input" readonly value="${this.amount} ${this.currentAsset?.symbol}" />
519
+ </div>
520
+ </div>
521
+ </div>
522
+ `:t=f`
523
+ <div class="result-container">
524
+ <div class="error-icon">⏳</div>
525
+ <h2 class="result-title">${s.modal.titles.idle}</h2>
526
+ <p class="result-desc">${s.modal.subtitles.idle}</p>
527
+ <button class="btn-primary" @click=${this.requestClose}>${s.modal.actions.close}</button>
528
+ </div>
529
+ `);const r=this.isLoadingData||this.currentStep===g.SHOW_QR&&!this.qrCodeUrl;return f`
530
+ <dialog @close=${this.handleDialogNativeClose}>
531
+ ${r?f`
532
+ <div class="spinner-overlay">
533
+ <div class="spinner"></div>
534
+ </div>`:""}
535
+ ${e}
536
+ <div class="modal-body">
537
+ ${t}
538
+ </div>
539
+ </dialog>
540
+ `}};k.styles=[Ue,hr,pr,fr,yr,U`
541
+ /* --- HEADER --- */
542
+ .modal-header {
543
+ position: relative; /* Para posicionar el botón de cerrar */
544
+ padding: 1.5rem 1.5rem 0.5rem;
545
+ display: flex;
546
+ justify-content: center; /* Título centrado si lo hubiera */
547
+ align-items: center;
548
+ }
549
+
550
+ .close-button, .back-button {
551
+ position: absolute;
552
+ top: 1.5rem;
553
+ background: none;
554
+ border: none;
555
+ cursor: pointer;
556
+ color: #9ca3af;
557
+ transition: color 0.2s;
558
+ padding: 5px;
559
+ }
560
+ .close-button { right: 1.5rem; font-size: 1.5rem; }
561
+ .back-button { left: 1.5rem; font-size: 1.2rem; }
562
+ .close-button:hover, .back-button:hover { color: #374151; }
563
+
564
+ /* --- BODY --- */
565
+ .modal-body {
566
+ padding: 1rem 2rem 2.5rem; /* Padding generoso abajo */
567
+ text-align: center;
568
+ }
569
+
570
+ /* Títulos */
571
+ h2 {
572
+ font-size: 1.25rem;
573
+ font-weight: 700;
574
+ margin: 0 0 0.5rem;
575
+ }
576
+ .highlight { color: var(--apolo-accent); } /* Naranja de tus imágenes */
577
+
578
+ p.subtitle {
579
+ font-size: 0.9rem;
580
+ color: #6b7280;
581
+ margin: 0 0 1rem;
582
+ line-height: 1.4;
583
+ }
584
+
585
+ /* --- LISTAS DE SELECCIÓN (Botones grandes blancos) --- */
586
+ .selection-list {
587
+ display: flex;
588
+ flex-direction: column;
589
+ gap: 1rem;
590
+ }
591
+
592
+ .selection-card {
593
+ display: flex;
594
+ align-items: center;
595
+ background: white;
596
+ border: 1px solid #f3f4f6; /* Borde muy sutil */
597
+ border-radius: 16px;
598
+ padding: 1rem;
599
+ cursor: pointer;
600
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
601
+ transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
602
+ }
603
+
604
+ .selection-card:hover {
605
+ transform: translateY(-2px);
606
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08);
607
+ border-color: var(--apolo-accent); /* Hover naranja */
608
+ }
609
+
610
+ .coin-icon {
611
+ width: 40px;
612
+ height: 40px;
613
+ margin-right: 1rem;
614
+ object-fit: cover;
615
+ }
616
+
617
+ .card-text {
618
+ text-align: left;
619
+ display: flex;
620
+ flex-direction: column;
621
+ }
622
+ .card-title { font-weight: 600; font-size: 1rem; color: var(--apolo-text); }
623
+ .card-sub { font-size: 0.8rem; color: var(--apolo-text-muted); text-transform: uppercase;}
624
+
625
+ /* --- QR SCREENS --- */
626
+ .timer {
627
+ color: var(--apolo-accent);
628
+ font-weight: 600;
629
+ font-size: 0.9rem;
630
+ margin-bottom: 1rem;
631
+ display: block;
632
+ }
633
+
634
+ /* Botón Naranja Grande */
635
+ .btn-primary {
636
+ background-color: var(--apolo-accent); /* Naranja Apolo */
637
+ color: white;
638
+ padding: 0.5rem 1.5rem;
639
+ border-radius: var(--apolo-radius-lg); /* Pill shape */
640
+ border: none;
641
+ font-weight: 400;
642
+ font-size: .9rem;
643
+ cursor: pointer;
644
+ box-shadow: 0 4px 10px rgba(234, 88, 12, 0.3);
645
+ transition: transform 0.1s, box-shadow 0.1s;
646
+ }
647
+ .btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 15px rgba(234, 88, 12, 0.4); }
648
+
649
+ /* Botón Azul Oscuro (Apolo Pay QR) */
650
+ .btn-dark {
651
+ background-color: var(--apolo-primary-darkest);
652
+ color: white;
653
+ width: 100%;
654
+ padding: 1rem;
655
+ border-radius: var(--apolo-radius);
656
+ border: none;
657
+ font-weight: 600;
658
+ cursor: pointer;
659
+ margin-block: 0.25rem 1.25rem;
660
+ }
661
+
662
+ .warning-text {
663
+ font-size: 0.75rem;
664
+ text-align: left;
665
+ margin-top: 1.5rem;
666
+ line-height: 1.5;
667
+ }
668
+ .warning-text strong { color: var(--apolo-accent); }
669
+
670
+ .warning-text ul {
671
+ padding-left: 1.5rem;
672
+ }
673
+
674
+
675
+ /* --- PANTALLA DE RESULTADO --- */
676
+ .result-container {
677
+ text-align: center;
678
+ animation: fadeIn 0.5s ease-out;
679
+ }
680
+
681
+ /* Animación simple de entrada */
682
+ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
683
+
684
+ .success-icon {
685
+ width: 80px;
686
+ height: 80px;
687
+ margin: 0 auto 1.5rem;
688
+ }
689
+
690
+ /* Animación del Check SVG */
691
+ .checkmark-circle {
692
+ stroke-dasharray: 166;
693
+ stroke-dashoffset: 166;
694
+ stroke-width: 2;
695
+ stroke: #22c55e; /* Verde éxito */
696
+ fill: none;
697
+ animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
698
+ }
699
+ .checkmark-check {
700
+ transform-origin: 50% 50%;
701
+ stroke-dasharray: 48;
702
+ stroke-dashoffset: 48;
703
+ stroke: #22c55e;
704
+ stroke-width: 4;
705
+ animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.6s forwards;
706
+ }
707
+ @keyframes stroke { 100% { stroke-dashoffset: 0; } }
708
+
709
+ .result-title {
710
+ font-size: 1.5rem;
711
+ margin-bottom: 1rem;
712
+ }
713
+
714
+ .result-desc {
715
+ font-size: 0.95rem;
716
+ margin-bottom: 1.5rem;
717
+ line-height: 1.5;
718
+ }
719
+
720
+ .purchase-details {
721
+ text-align: left;
722
+ margin-bottom: 1.5rem;
723
+ }
724
+
725
+ .details-title {
726
+ font-size: 1rem;
727
+ font-weight: 700;
728
+ text-decoration: underline;
729
+ text-decoration-color: var(--apolo-text);
730
+ text-underline-offset: 4px;
731
+ text-align: center;
732
+ margin-bottom: 1.5rem;
733
+ }
734
+
735
+ /* Estilo Error */
736
+ .error-icon { font-size: 4rem; margin-bottom: 1rem; }
737
+
738
+ /* Estilo Processing */
739
+ .processing-container {
740
+ display: flex;
741
+ flex-direction: column;
742
+ align-items: center;
743
+ gap: 1.5rem;
744
+ padding-top: 1rem;
745
+ }
746
+
747
+ /* Animación de puntos */
748
+ .dots-loader {
749
+ display: flex;
750
+ justify-content: center;
751
+ align-items: center;
752
+ gap: 8px;
753
+ height: 40px;
754
+ }
755
+
756
+ .dot {
757
+ width: 12px;
758
+ height: 12px;
759
+ background-color: var(--apolo-accent);
760
+ border-radius: 50%;
761
+ display: inline-block;
762
+ animation: dot-pulse 1.5s infinite ease-in-out;
763
+ }
764
+
765
+ .dot:nth-child(2) { animation-delay: 0.2s; width: 16px; height: 16px; }
766
+ .dot:nth-child(3) { animation-delay: 0.4s; width: 20px; height: 20px; }
767
+ .dot:nth-child(4) { animation-delay: 0.6s; width: 16px; height: 16px; }
768
+ .dot:nth-child(5) { animation-delay: 0.8s; }
769
+
770
+ @keyframes dot-pulse {
771
+ 0%, 100% { transform: scale(0.7); opacity: 0.5; }
772
+ 50% { transform: scale(1.1); opacity: 1; }
773
+ }
774
+
775
+ .processing-title {
776
+ font-size: 1.5rem;
777
+ font-weight: 800;
778
+ color: var(--apolo-primary-darkest);
779
+ margin: 0;
780
+ }
781
+
782
+ /* Balance Card */
783
+ .balance-card {
784
+ background-color: #fff7ed; /* Un naranja muy claro de fondo */
785
+ border: 1px dashed var(--apolo-accent);
786
+ border-radius: 12px;
787
+ padding: 0.8rem;
788
+ margin-bottom: 1.5rem;
789
+ animation: slideDown 0.4s ease-out;
790
+ }
791
+
792
+ .balance-row {
793
+ display: flex;
794
+ justify-content: space-between;
795
+ align-items: center;
796
+ font-size: 0.85rem;
797
+ margin-bottom: 0.25rem;
798
+ }
799
+
800
+ .balance-row:last-child { margin-bottom: 0; }
801
+
802
+ .balance-label { color: #6b7280; }
803
+ .balance-value { font-weight: 700; color: var(--apolo-primary-darkest); }
804
+
805
+ @keyframes slideDown {
806
+ from { opacity: 0; transform: translateY(-10px); }
807
+ to { opacity: 1; transform: translateY(0); }
808
+ }
809
+ `],v([u({type:Boolean})],k.prototype,"isOpen",2),v([u({type:Boolean})],k.prototype,"barrierDismissible",2),v([u({type:String})],k.prototype,"lang",2),v([u({type:String})],k.prototype,"productTitle",2),v([u({type:Number})],k.prototype,"currentStep",2),v([u({type:String})],k.prototype,"status",2),v([u({type:Object})],k.prototype,"error",2),v([u({type:Boolean})],k.prototype,"isLoadingData",2),v([u({type:Array})],k.prototype,"assets",2),v([u({type:String})],k.prototype,"selectedAsset",2),v([u({type:String})],k.prototype,"selectedNetwork",2),v([u({type:String})],k.prototype,"qrCodeUrl",2),v([u({type:String})],k.prototype,"paymentAddress",2),v([u({type:Number})],k.prototype,"amount",2),v([u({type:Number})],k.prototype,"amountPaid",2),v([u({type:String})],k.prototype,"email",2),v([u({type:Number})],k.prototype,"qrCodeExpiresAt",2),v([u({type:String})],k.prototype,"paymentUrl",2),v([S()],k.prototype,"isAddressCopied",2),v([ns("dialog")],k.prototype,"dialogElement",2),k=v([lt("payment-modal")],k);var Sr=Object.defineProperty,Cr=Object.getOwnPropertyDescriptor,m=(s,t,e,r)=>{for(var i=r>1?void 0:r?Cr(t,e):t,n=s.length-1,o;n>=0;n--)(o=s[n])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&Sr(t,e,i),i};c.ApoloPayButton=class extends Q{constructor(){super(...arguments),this.client=void 0,this.processId=void 0,this.productTitle=void 0,this.lang="es",this.label=void 0,this.loading=!1,this.disabled=!1,this.barrierDismissible=!1,this.isOpen=!1,this.status="idle",this.currentStep=g.SELECT_ASSET,this.selectedAsset=null,this.selectedNetwork=null,this.qrCodeUrl=null,this.qrCodeExpiresAt=null,this.paymentAddress=null,this.paymentUrl=null,this.assets=[],this.successResult=null,this.error=null,this.isLoadingData=!0,this.amount=0,this.amountPaid=void 0,this.hasConfigError=!1,this.email=null,this._service=null}willUpdate(t){t.has("lang")&&y.setLocale(this.lang),(t.has("client")||t.has("processId"))&&(this.validateConfig(),this.client&&this._service===null&&this.initService(),this.client&&this.processId&&this.loadInitialData()),super.willUpdate(t)}connectedCallback(){super.connectedCallback(),this.validateConfig(),this.client&&(this.initService(),this.processId&&this.loadInitialData())}initService(){!this.client||this.hasConfigError||(this._service=new Be(this.client))}get isValidProcessId(){return this.processId?/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(this.processId):!1}validateConfig(){const t=this.client?.getPublicKey(),e=!!(t&&t.startsWith("pk_")&&t.length===35);this.client&&!e&&console.error(`PaymentButton Error: Invalid publicKey "${t}". Must start with "pk_" and be 35 characters long.`),this.hasConfigError=!this.client||!e}disconnectedCallback(){super.disconnectedCallback(),this._service?.disconnectWebSocket()}async loadInitialData(){if(this._service&&(this.isLoadingData=!0,this.error=null,!!this.processId))try{this.assets=await this._service.getAssets()}catch(t){console.error("Error loading initial payment options:",t),this.error={code:D.data_load_error,message:y.t.errors.dataLoadError}}finally{this.isLoadingData=!1}}resetState(){this.currentStep=g.SELECT_ASSET,this.status="idle",this.error=null,this.successResult=null,this.selectedAsset=null,this.selectedNetwork=null,this.qrCodeUrl=null,this.paymentAddress=null,this.paymentUrl=null,this.qrCodeExpiresAt=null}handleOpen(){if(this.resetState(),this.hasConfigError||!this.client||!this.processId){console.error("PaymentButton Error: client and process-id are required and must be valid");return}this.loading||(this.isOpen=!0)}handleCloseRequest(){this.isOpen=!1,this.currentStep===g.SHOW_QR&&this.status!=="success"&&this.status!=="error"&&this._service?.disconnectWebSocket(),setTimeout(()=>this.resetState(),300),this.successResult?this.successResult.code===D.payment_partial?this.dispatchEvent(new CustomEvent("partialPayment",{detail:this.successResult})):this.dispatchEvent(new CustomEvent("success",{detail:this.successResult})):this.error&&(this.error.code===D.payment_timeout?this.dispatchEvent(new CustomEvent("expired",{detail:this.error})):this.dispatchEvent(new CustomEvent("error",{detail:this.error})))}handleAssetSelect(t){this.selectedAsset=t.detail.assetId,this.currentStep=g.SELECT_NETWORK,this.error=null}handleExpired(t){this.error=t.detail.error}async handleInitiatePayment(t){if(!this.client||!this.processId||(this.selectedNetwork=t.detail.networkId,!this.selectedAsset||!this.selectedNetwork))return;const e={assetId:this.selectedAsset,networkId:this.selectedNetwork};this.status="loading",this.currentStep=g.SHOW_QR,this.qrCodeUrl=null,this.paymentAddress=null,this.error=null;try{const r=await this._service.fetchQrCodeDetails(e,{processId:this.processId,onSuccess:i=>{this.isOpen&&(this.status="processing",this.currentStep=g.RESULT,this.successResult=i,setTimeout(()=>{this.status="success"},2e3))},onPartialPayment:i=>{this.isOpen&&(this.status="idle",this.currentStep=g.SHOW_QR,this.amount=Number(i.result?.amount||"0"),this.amountPaid=Number(i.result?.amountPaid||"0"),this.successResult=i)},onError:i=>{this.isOpen&&(this.status="error",this.error=i,this.currentStep=g.RESULT,this.error=i)}});this.qrCodeUrl=r.qrCodeUrl,this.paymentAddress=r.address,this.paymentUrl=r.paymentUrl||null,this.qrCodeExpiresAt=r.expiresAtMs,this.amount=typeof r.amount=="string"?parseFloat(r.amount):r.amount,r.amountPaid&&(this.amountPaid=typeof r.amountPaid=="string"?parseFloat(r.amountPaid):r.amountPaid),this.status="idle"}catch(r){const i=r;if(this.error=i,this.status="error",i.code===D.paymentProcessNotAvailable){this.currentStep=g.RESULT;return}console.error("Error fetching QR code details:",i),this.currentStep=g.SELECT_NETWORK}}handleChangeStep(t){this.currentStep===g.SHOW_QR&&t.detail!==g.RESULT&&this._service?.disconnectWebSocket(),this.currentStep=t.detail,this.status="idle",this.error=null,this.currentStep!==g.SHOW_QR&&(this.qrCodeUrl=null,this.paymentAddress=null,this.paymentUrl=null)}render(){return f`
810
+ <div id="trigger-wrapper" @click=${this.handleOpen}>
811
+ <slot>
812
+ <trigger-button
813
+ .lang=${this.lang}
814
+ .label=${this.label}
815
+ .loading=${this.loading||this.isLoadingData&&!this.hasConfigError||!this.isValidProcessId}
816
+ .hasError=${this.hasConfigError}
817
+ ?disabled=${this.disabled||this.hasConfigError||!this.isValidProcessId}
818
+ ></trigger-button>
819
+ </slot>
820
+ </div>
821
+
822
+ <payment-modal
823
+ ?isOpen=${this.isOpen}
824
+ .barrierDismissible=${this.barrierDismissible}
825
+ .lang=${this.lang}
826
+ .currentStep=${this.currentStep}
827
+ .status=${this.status}
828
+ .productTitle=${this.productTitle}
829
+ .error=${this.error}
830
+ .isLoadingData=${this.isLoadingData}
831
+ .assets=${this.assets}
832
+ .selectedAsset=${this.selectedAsset}
833
+ .selectedNetwork=${this.selectedNetwork}
834
+ .qrCodeUrl=${this.qrCodeUrl}
835
+ .paymentAddress=${this.paymentAddress}
836
+ .amount=${this.amount}
837
+ .amountPaid=${this.amountPaid}
838
+ .email=${this.email}
839
+ .qrCodeExpiresAt=${this.qrCodeExpiresAt}
840
+ .paymentUrl=${this.paymentUrl}
841
+ @closeRequest=${this.handleCloseRequest}
842
+ @assetSelect=${this.handleAssetSelect}
843
+ @networkSelect=${this.handleInitiatePayment}
844
+ @changeStep=${this.handleChangeStep}
845
+ @expired=${this.handleExpired}
846
+ ></payment-modal>
847
+ `}},c.ApoloPayButton.styles=U`
848
+ :host {
849
+ display: inline-block;
850
+ }
851
+
852
+ #trigger-wrapper {
853
+ position: relative;
854
+ display: inline-block;
855
+ cursor: pointer;
856
+ }
857
+ `,m([u({type:Object})],c.ApoloPayButton.prototype,"client",2),m([u({type:String,attribute:"process-id"})],c.ApoloPayButton.prototype,"processId",2),m([u({type:String,attribute:"product-title"})],c.ApoloPayButton.prototype,"productTitle",2),m([u({type:String})],c.ApoloPayButton.prototype,"lang",2),m([u({type:String})],c.ApoloPayButton.prototype,"label",2),m([u({type:Boolean})],c.ApoloPayButton.prototype,"loading",2),m([u({type:Boolean})],c.ApoloPayButton.prototype,"disabled",2),m([u({type:Boolean,attribute:"barrier-dismissible",converter:{fromAttribute:s=>s===null?!1:s!=="false",toAttribute:s=>s?"":null}})],c.ApoloPayButton.prototype,"barrierDismissible",2),m([S()],c.ApoloPayButton.prototype,"isOpen",2),m([S()],c.ApoloPayButton.prototype,"status",2),m([S()],c.ApoloPayButton.prototype,"currentStep",2),m([S()],c.ApoloPayButton.prototype,"selectedAsset",2),m([S()],c.ApoloPayButton.prototype,"selectedNetwork",2),m([S()],c.ApoloPayButton.prototype,"qrCodeUrl",2),m([S()],c.ApoloPayButton.prototype,"qrCodeExpiresAt",2),m([S()],c.ApoloPayButton.prototype,"paymentAddress",2),m([S()],c.ApoloPayButton.prototype,"paymentUrl",2),m([S()],c.ApoloPayButton.prototype,"assets",2),m([S()],c.ApoloPayButton.prototype,"successResult",2),m([S()],c.ApoloPayButton.prototype,"error",2),m([S()],c.ApoloPayButton.prototype,"isLoadingData",2),m([S()],c.ApoloPayButton.prototype,"amount",2),m([S()],c.ApoloPayButton.prototype,"amountPaid",2),m([S()],c.ApoloPayButton.prototype,"hasConfigError",2),m([S()],c.ApoloPayButton.prototype,"email",2),m([S()],c.ApoloPayButton.prototype,"_service",2),c.ApoloPayButton=m([lt("apolopay-button")],c.ApoloPayButton),c.ApoloPayClient=rr,c.ClientCode=D,c.ClientError=gt,c.ClientResponse=Dt,c.ClientResponseBase=Mt,c.I18n=y,c.ModalStep=g,c.PaymentService=Be,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));