Edit File: index-DHcSFTps.js
(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();/** * @vue/shared v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **//*! #__NO_SIDE_EFFECTS__ */function S2(t){const e=Object.create(null);for(const n of t.split(","))e[n]=1;return n=>n in e}const Xs={},lp=[],Xf=()=>{},x3=()=>!1,ly=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),W2=t=>t.startsWith("onUpdate:"),Uc=Object.assign,N2=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},O3=Object.prototype.hasOwnProperty,os=(t,e)=>O3.call(t,e),Na=Array.isArray,sp=t=>w0(t)==="[object Map]",Rp=t=>w0(t)==="[object Set]",bU=t=>w0(t)==="[object Date]",Vo=t=>typeof t=="function",Bd=t=>typeof t=="string",gf=t=>typeof t=="symbol",ws=t=>t!==null&&typeof t=="object",rC=t=>(ws(t)||Vo(t))&&Vo(t.then)&&Vo(t.catch),iC=Object.prototype.toString,w0=t=>iC.call(t),K3=t=>w0(t).slice(8,-1),aC=t=>w0(t)==="[object Object]",G2=t=>Bd(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Vm=S2(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),sy=t=>{const e=Object.create(null);return n=>e[n]||(e[n]=t(n))},P3=/-(\w)/g,Ou=sy(t=>t.replace(P3,(e,n)=>n?n.toUpperCase():"")),z3=/\B([A-Z])/g,fg=sy(t=>t.replace(z3,"-$1").toLowerCase()),dy=sy(t=>t.charAt(0).toUpperCase()+t.slice(1)),Bb=sy(t=>t?`on${dy(t)}`:""),ng=(t,e)=>!Object.is(t,e),Zb=(t,...e)=>{for(let n=0;n<t.length;n++)t[n](...e)},oC=(t,e,n,r=!1)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:r,value:n})},Yb=t=>{const e=parseFloat(t);return isNaN(e)?t:e},j3=t=>{const e=Bd(t)?Number(t):NaN;return isNaN(e)?t:e};let yU;const cy=()=>yU||(yU=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ja(t){if(Na(t)){const e={};for(let n=0;n<t.length;n++){const r=t[n],i=Bd(r)?eN(r):ja(r);if(i)for(const a in i)e[a]=i[a]}return e}else if(Bd(t)||ws(t))return t}const _3=/;(?![^(]*\))/g,$3=/:([^]+)/,q3=/\/\*[^]*?\*\//g;function eN(t){const e={};return t.replace(q3,"").split(_3).forEach(n=>{if(n){const r=n.split($3);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e}function Hr(t){let e="";if(Bd(t))e=t;else if(Na(t))for(let n=0;n<t.length;n++){const r=Hr(t[n]);r&&(e+=r+" ")}else if(ws(t))for(const n in t)t[n]&&(e+=n+" ");return e.trim()}function oA(t){if(!t)return null;let{class:e,style:n}=t;return e&&!Bd(e)&&(t.class=Hr(e)),n&&(t.style=ja(n)),t}const tN="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",nN=S2(tN);function lC(t){return!!t||t===""}function rN(t,e){if(t.length!==e.length)return!1;let n=!0;for(let r=0;n&&r<t.length;r++)n=uA(t[r],e[r]);return n}function uA(t,e){if(t===e)return!0;let n=bU(t),r=bU(e);if(n||r)return n&&r?t.getTime()===e.getTime():!1;if(n=gf(t),r=gf(e),n||r)return t===e;if(n=Na(t),r=Na(e),n||r)return n&&r?rN(t,e):!1;if(n=ws(t),r=ws(e),n||r){if(!n||!r)return!1;const i=Object.keys(t).length,a=Object.keys(e).length;if(i!==a)return!1;for(const o in t){const l=t.hasOwnProperty(o),s=e.hasOwnProperty(o);if(l&&!s||!l&&s||!uA(t[o],e[o]))return!1}}return String(t)===String(e)}function J2(t,e){return t.findIndex(n=>uA(n,e))}const sC=t=>!!(t&&t.__v_isRef===!0),ce=t=>Bd(t)?t:t==null?"":Na(t)||ws(t)&&(t.toString===iC||!Vo(t.toString))?sC(t)?ce(t.value):JSON.stringify(t,dC,2):String(t),dC=(t,e)=>sC(e)?dC(t,e.value):sp(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[r,i],a)=>(n[AF(r,a)+" =>"]=i,n),{})}:Rp(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>AF(n))}:gf(e)?AF(e):ws(e)&&!Na(e)&&!aC(e)?String(e):e,AF=(t,e="")=>{var n;return gf(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};/** * @vue/reactivity v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/let fu;class cC{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=fu,!e&&fu&&(this.index=(fu.scopes||(fu.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,n;if(this.scopes)for(e=0,n=this.scopes.length;e<n;e++)this.scopes[e].pause();for(e=0,n=this.effects.length;e<n;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,n;if(this.scopes)for(e=0,n=this.scopes.length;e<n;e++)this.scopes[e].resume();for(e=0,n=this.effects.length;e<n;e++)this.effects[e].resume()}}run(e){if(this._active){const n=fu;try{return fu=this,e()}finally{fu=n}}}on(){fu=this}off(){fu=this.parent}stop(e){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n<r;n++)this.effects[n].stop();for(this.effects.length=0,n=0,r=this.cleanups.length;n<r;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,r=this.scopes.length;n<r;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0}}}function T2(t){return new cC(t)}function uC(){return fu}function iN(t,e=!1){fu&&fu.cleanups.push(t)}let _s;const pF=new WeakSet;class fC{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,fu&&fu.active&&fu.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,pF.has(this)&&(pF.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||gC(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,FU(this),AC(this);const e=_s,n=hf;_s=this,hf=!0;try{return this.fn()}finally{pC(this),_s=e,hf=n,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)w2(e);this.deps=this.depsTail=void 0,FU(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?pF.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){f1(this)&&this.run()}get dirty(){return f1(this)}}let hC=0,Em,Sm;function gC(t,e=!1){if(t.flags|=8,e){t.next=Sm,Sm=t;return}t.next=Em,Em=t}function X2(){hC++}function k2(){if(--hC>0)return;if(Sm){let e=Sm;for(Sm=void 0;e;){const n=e.next;e.next=void 0,e.flags&=-9,e=n}}let t;for(;Em;){let e=Em;for(Em=void 0;e;){const n=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(r){t||(t=r)}e=n}}if(t)throw t}function AC(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function pC(t){let e,n=t.depsTail,r=n;for(;r;){const i=r.prevDep;r.version===-1?(r===n&&(n=i),w2(r),aN(r)):e=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=i}t.deps=e,t.depsTail=n}function f1(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(mC(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function mC(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Lm))return;t.globalVersion=Lm;const e=t.dep;if(t.flags|=2,e.version>0&&!t.isSSR&&t.deps&&!f1(t)){t.flags&=-3;return}const n=_s,r=hf;_s=t,hf=!0;try{AC(t);const i=t.fn(t._value);(e.version===0||ng(i,t._value))&&(t._value=i,e.version++)}catch(i){throw e.version++,i}finally{_s=n,hf=r,pC(t),t.flags&=-3}}function w2(t,e=!1){const{dep:n,prevSub:r,nextSub:i}=t;if(r&&(r.nextSub=i,t.prevSub=void 0),i&&(i.prevSub=r,t.nextSub=void 0),n.subs===t&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)w2(a,!0)}!e&&!--n.sc&&n.map&&n.map.delete(n.key)}function aN(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=void 0),n&&(n.prevDep=e,t.nextDep=void 0)}let hf=!0;const bC=[];function hg(){bC.push(hf),hf=!1}function gg(){const t=bC.pop();hf=t===void 0?!0:t}function FU(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const n=_s;_s=void 0;try{e()}finally{_s=n}}}let Lm=0;class oN{constructor(e,n){this.sub=e,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Y2{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!_s||!hf||_s===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==_s)n=this.activeLink=new oN(_s,this),_s.deps?(n.prevDep=_s.depsTail,_s.depsTail.nextDep=n,_s.depsTail=n):_s.deps=_s.depsTail=n,yC(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=_s.depsTail,n.nextDep=void 0,_s.depsTail.nextDep=n,_s.depsTail=n,_s.deps===n&&(_s.deps=r)}return n}trigger(e){this.version++,Lm++,this.notify(e)}notify(e){X2();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{k2()}}}function yC(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let r=e.deps;r;r=r.nextDep)yC(r)}const n=t.dep.subs;n!==t&&(t.prevSub=n,n&&(n.nextSub=t)),t.dep.subs=t}}const Db=new WeakMap,lA=Symbol(""),h1=Symbol(""),Hm=Symbol("");function qc(t,e,n){if(hf&&_s){let r=Db.get(t);r||Db.set(t,r=new Map);let i=r.get(n);i||(r.set(n,i=new Y2),i.map=r,i.key=n),i.track()}}function ch(t,e,n,r,i,a){const o=Db.get(t);if(!o){Lm++;return}const l=s=>{s&&s.trigger()};if(X2(),e==="clear")o.forEach(l);else{const s=Na(t),d=s&&G2(n);if(s&&n==="length"){const c=Number(r);o.forEach((u,h)=>{(h==="length"||h===Hm||!gf(h)&&h>=c)&&l(u)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),d&&l(o.get(Hm)),e){case"add":s?d&&l(o.get("length")):(l(o.get(lA)),sp(t)&&l(o.get(h1)));break;case"delete":s||(l(o.get(lA)),sp(t)&&l(o.get(h1)));break;case"set":sp(t)&&l(o.get(lA));break}}k2()}function lN(t,e){const n=Db.get(t);return n&&n.get(e)}function _A(t){const e=Bl(t);return e===t?e:(qc(e,"iterate",Hm),Lu(t)?e:e.map(eu))}function uy(t){return qc(t=Bl(t),"iterate",Hm),t}const sN={__proto__:null,[Symbol.iterator](){return mF(this,Symbol.iterator,eu)},concat(...t){return _A(this).concat(...t.map(e=>Na(e)?_A(e):e))},entries(){return mF(this,"entries",t=>(t[1]=eu(t[1]),t))},every(t,e){return rh(this,"every",t,e,void 0,arguments)},filter(t,e){return rh(this,"filter",t,e,n=>n.map(eu),arguments)},find(t,e){return rh(this,"find",t,e,eu,arguments)},findIndex(t,e){return rh(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return rh(this,"findLast",t,e,eu,arguments)},findLastIndex(t,e){return rh(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return rh(this,"forEach",t,e,void 0,arguments)},includes(...t){return bF(this,"includes",t)},indexOf(...t){return bF(this,"indexOf",t)},join(t){return _A(this).join(t)},lastIndexOf(...t){return bF(this,"lastIndexOf",t)},map(t,e){return rh(this,"map",t,e,void 0,arguments)},pop(){return hm(this,"pop")},push(...t){return hm(this,"push",t)},reduce(t,...e){return QU(this,"reduce",t,e)},reduceRight(t,...e){return QU(this,"reduceRight",t,e)},shift(){return hm(this,"shift")},some(t,e){return rh(this,"some",t,e,void 0,arguments)},splice(...t){return hm(this,"splice",t)},toReversed(){return _A(this).toReversed()},toSorted(t){return _A(this).toSorted(t)},toSpliced(...t){return _A(this).toSpliced(...t)},unshift(...t){return hm(this,"unshift",t)},values(){return mF(this,"values",eu)}};function mF(t,e,n){const r=uy(t),i=r[e]();return r!==t&&!Lu(t)&&(i._next=i.next,i.next=()=>{const a=i._next();return a.value&&(a.value=n(a.value)),a}),i}const dN=Array.prototype;function rh(t,e,n,r,i,a){const o=uy(t),l=o!==t&&!Lu(t),s=o[e];if(s!==dN[e]){const u=s.apply(t,a);return l?eu(u):u}let d=n;o!==t&&(l?d=function(u,h){return n.call(this,eu(u),h,t)}:n.length>2&&(d=function(u,h){return n.call(this,u,h,t)}));const c=s.call(o,d,r);return l&&i?i(c):c}function QU(t,e,n,r){const i=uy(t);let a=n;return i!==t&&(Lu(t)?n.length>3&&(a=function(o,l,s){return n.call(this,o,l,s,t)}):a=function(o,l,s){return n.call(this,o,eu(l),s,t)}),i[e](a,...r)}function bF(t,e,n){const r=Bl(t);qc(r,"iterate",Hm);const i=r[e](...n);return(i===-1||i===!1)&&H2(n[0])?(n[0]=Bl(n[0]),r[e](...n)):i}function hm(t,e,n=[]){hg(),X2();const r=Bl(t)[e].apply(t,n);return k2(),gg(),r}const cN=S2("__proto__,__v_isRef,__isVue"),FC=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(gf));function uN(t){gf(t)||(t=String(t));const e=Bl(this);return qc(e,"has",t),e.hasOwnProperty(t)}class QC{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,r){if(n==="__v_skip")return e.__v_skip;const i=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return a;if(n==="__v_raw")return r===(i?a?QN:ZC:a?BC:RC).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(r)?e:void 0;const o=Na(e);if(!i){let s;if(o&&(s=sN[n]))return s;if(n==="hasOwnProperty")return uN}const l=Reflect.get(e,n,Md(e)?e:r);return(gf(n)?FC.has(n):cN(n))||(i||qc(e,"get",n),a)?l:Md(l)?o&&G2(n)?l:l.value:ws(l)?i?M2(l):yA(l):l}}class UC extends QC{constructor(e=!1){super(!1,e)}set(e,n,r,i){let a=e[n];if(!this._isShallow){const s=fA(a);if(!Lu(r)&&!fA(r)&&(a=Bl(a),r=Bl(r)),!Na(e)&&Md(a)&&!Md(r))return s?!1:(a.value=r,!0)}const o=Na(e)&&G2(n)?Number(n)<e.length:os(e,n),l=Reflect.set(e,n,r,Md(e)?e:i);return e===Bl(i)&&(o?ng(r,a)&&ch(e,"set",n,r):ch(e,"add",n,r)),l}deleteProperty(e,n){const r=os(e,n);e[n];const i=Reflect.deleteProperty(e,n);return i&&r&&ch(e,"delete",n,void 0),i}has(e,n){const r=Reflect.has(e,n);return(!gf(n)||!FC.has(n))&&qc(e,"has",n),r}ownKeys(e){return qc(e,"iterate",Na(e)?"length":lA),Reflect.ownKeys(e)}}class fN extends QC{constructor(e=!1){super(!0,e)}set(e,n){return!0}deleteProperty(e,n){return!0}}const hN=new UC,gN=new fN,AN=new UC(!0);const g1=t=>t,lb=t=>Reflect.getPrototypeOf(t);function pN(t,e,n){return function(...r){const i=this.__v_raw,a=Bl(i),o=sp(a),l=t==="entries"||t===Symbol.iterator&&o,s=t==="keys"&&o,d=i[t](...r),c=n?g1:e?A1:eu;return!e&&qc(a,"iterate",s?h1:lA),{next(){const{value:u,done:h}=d.next();return h?{value:u,done:h}:{value:l?[c(u[0]),c(u[1])]:c(u),done:h}},[Symbol.iterator](){return this}}}}function sb(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function mN(t,e){const n={get(i){const a=this.__v_raw,o=Bl(a),l=Bl(i);t||(ng(i,l)&&qc(o,"get",i),qc(o,"get",l));const{has:s}=lb(o),d=e?g1:t?A1:eu;if(s.call(o,i))return d(a.get(i));if(s.call(o,l))return d(a.get(l));a!==o&&a.get(i)},get size(){const i=this.__v_raw;return!t&&qc(Bl(i),"iterate",lA),Reflect.get(i,"size",i)},has(i){const a=this.__v_raw,o=Bl(a),l=Bl(i);return t||(ng(i,l)&&qc(o,"has",i),qc(o,"has",l)),i===l?a.has(i):a.has(i)||a.has(l)},forEach(i,a){const o=this,l=o.__v_raw,s=Bl(l),d=e?g1:t?A1:eu;return!t&&qc(s,"iterate",lA),l.forEach((c,u)=>i.call(a,d(c),d(u),o))}};return Uc(n,t?{add:sb("add"),set:sb("set"),delete:sb("delete"),clear:sb("clear")}:{add(i){!e&&!Lu(i)&&!fA(i)&&(i=Bl(i));const a=Bl(this);return lb(a).has.call(a,i)||(a.add(i),ch(a,"add",i,i)),this},set(i,a){!e&&!Lu(a)&&!fA(a)&&(a=Bl(a));const o=Bl(this),{has:l,get:s}=lb(o);let d=l.call(o,i);d||(i=Bl(i),d=l.call(o,i));const c=s.call(o,i);return o.set(i,a),d?ng(a,c)&&ch(o,"set",i,a):ch(o,"add",i,a),this},delete(i){const a=Bl(this),{has:o,get:l}=lb(a);let s=o.call(a,i);s||(i=Bl(i),s=o.call(a,i)),l&&l.call(a,i);const d=a.delete(i);return s&&ch(a,"delete",i,void 0),d},clear(){const i=Bl(this),a=i.size!==0,o=i.clear();return a&&ch(i,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=pN(i,t,e)}),n}function D2(t,e){const n=mN(t,e);return(r,i,a)=>i==="__v_isReactive"?!t:i==="__v_isReadonly"?t:i==="__v_raw"?r:Reflect.get(os(n,i)&&i in r?n:r,i,a)}const bN={get:D2(!1,!1)},yN={get:D2(!1,!0)},FN={get:D2(!0,!1)};const RC=new WeakMap,BC=new WeakMap,ZC=new WeakMap,QN=new WeakMap;function UN(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function RN(t){return t.__v_skip||!Object.isExtensible(t)?0:UN(K3(t))}function yA(t){return fA(t)?t:L2(t,!1,hN,bN,RC)}function IC(t){return L2(t,!1,AN,yN,BC)}function M2(t){return L2(t,!0,gN,FN,ZC)}function L2(t,e,n,r,i){if(!ws(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const a=i.get(t);if(a)return a;const o=RN(t);if(o===0)return t;const l=new Proxy(t,o===2?r:n);return i.set(t,l),l}function rg(t){return fA(t)?rg(t.__v_raw):!!(t&&t.__v_isReactive)}function fA(t){return!!(t&&t.__v_isReadonly)}function Lu(t){return!!(t&&t.__v_isShallow)}function H2(t){return t?!!t.__v_raw:!1}function Bl(t){const e=t&&t.__v_raw;return e?Bl(e):t}function x2(t){return!os(t,"__v_skip")&&Object.isExtensible(t)&&oC(t,"__v_skip",!0),t}const eu=t=>ws(t)?yA(t):t,A1=t=>ws(t)?M2(t):t;function Md(t){return t?t.__v_isRef===!0:!1}function hn(t){return CC(t,!1)}function O2(t){return CC(t,!0)}function CC(t,e){return Md(t)?t:new BN(t,e)}class BN{constructor(e,n){this.dep=new Y2,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?e:Bl(e),this._value=n?e:eu(e),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(e){const n=this._rawValue,r=this.__v_isShallow||Lu(e)||fA(e);e=r?e:Bl(e),ng(e,n)&&(this._rawValue=e,this._value=r?e:eu(e),this.dep.trigger())}}function ct(t){return Md(t)?t.value:t}const ZN={get:(t,e,n)=>e==="__v_raw"?t:ct(Reflect.get(t,e,n)),set:(t,e,n,r)=>{const i=t[e];return Md(i)&&!Md(n)?(i.value=n,!0):Reflect.set(t,e,n,r)}};function vC(t){return rg(t)?t:new Proxy(t,ZN)}function IN(t){const e=Na(t)?new Array(t.length):{};for(const n in t)e[n]=vN(t,n);return e}class CN{constructor(e,n,r){this._object=e,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return lN(Bl(this._object),this._key)}}function vN(t,e,n){const r=t[e];return Md(r)?r:new CN(t,e,n)}class VN{constructor(e,n,r){this.fn=e,this.setter=n,this._value=void 0,this.dep=new Y2(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Lm-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&_s!==this)return gC(this,!0),!0}get value(){const e=this.dep.track();return mC(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function EN(t,e,n=!1){let r,i;return Vo(t)?r=t:(r=t.get,i=t.set),new VN(r,i,n)}const db={},Mb=new WeakMap;let tA;function SN(t,e=!1,n=tA){if(n){let r=Mb.get(n);r||Mb.set(n,r=[]),r.push(t)}}function WN(t,e,n=Xs){const{immediate:r,deep:i,once:a,scheduler:o,augmentJob:l,call:s}=n,d=F=>i?F:Lu(F)||i===!1||i===0?uh(F,1):uh(F);let c,u,h,f,g=!1,A=!1;if(Md(t)?(u=()=>t.value,g=Lu(t)):rg(t)?(u=()=>d(t),g=!0):Na(t)?(A=!0,g=t.some(F=>rg(F)||Lu(F)),u=()=>t.map(F=>{if(Md(F))return F.value;if(rg(F))return d(F);if(Vo(F))return s?s(F,2):F()})):Vo(t)?e?u=s?()=>s(t,2):t:u=()=>{if(h){hg();try{h()}finally{gg()}}const F=tA;tA=c;try{return s?s(t,3,[f]):t(f)}finally{tA=F}}:u=Xf,e&&i){const F=u,R=i===!0?1/0:i;u=()=>uh(F(),R)}const b=uC(),p=()=>{c.stop(),b&&b.active&&N2(b.effects,c)};if(a&&e){const F=e;e=(...R)=>{F(...R),p()}}let y=A?new Array(t.length).fill(db):db;const m=F=>{if(!(!(c.flags&1)||!c.dirty&&!F))if(e){const R=c.run();if(i||g||(A?R.some((C,B)=>ng(C,y[B])):ng(R,y))){h&&h();const C=tA;tA=c;try{const B=[R,y===db?void 0:A&&y[0]===db?[]:y,f];s?s(e,3,B):e(...B),y=R}finally{tA=C}}}else c.run()};return l&&l(m),c=new fC(u),c.scheduler=o?()=>o(m,!1):m,f=F=>SN(F,!1,c),h=c.onStop=()=>{const F=Mb.get(c);if(F){if(s)s(F,4);else for(const R of F)R();Mb.delete(c)}},e?r?m(!0):y=c.run():o?o(m.bind(null,!0),!0):c.run(),p.pause=c.pause.bind(c),p.resume=c.resume.bind(c),p.stop=p,p}function uh(t,e=1/0,n){if(e<=0||!ws(t)||t.__v_skip||(n=n||new Set,n.has(t)))return t;if(n.add(t),e--,Md(t))uh(t.value,e,n);else if(Na(t))for(let r=0;r<t.length;r++)uh(t[r],e,n);else if(Rp(t)||sp(t))t.forEach(r=>{uh(r,e,n)});else if(aC(t)){for(const r in t)uh(t[r],e,n);for(const r of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,r)&&uh(t[r],e,n)}return t}/** * @vue/runtime-core v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/function Y0(t,e,n,r){try{return r?t(...r):t()}catch(i){fy(i,e,n)}}function Af(t,e,n,r){if(Vo(t)){const i=Y0(t,e,n,r);return i&&rC(i)&&i.catch(a=>{fy(a,e,n)}),i}if(Na(t)){const i=[];for(let a=0;a<t.length;a++)i.push(Af(t[a],e,n,r));return i}}function fy(t,e,n,r=!0){const i=e?e.vnode:null,{errorHandler:a,throwUnhandledErrorInProduction:o}=e&&e.appContext.config||Xs;if(e){let l=e.parent;const s=e.proxy,d=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){const c=l.ec;if(c){for(let u=0;u<c.length;u++)if(c[u](t,s,d)===!1)return}l=l.parent}if(a){hg(),Y0(a,null,10,[t,s,d]),gg();return}}NN(t,n,i,r,o)}function NN(t,e,n,r=!0,i=!1){if(i)throw t;console.error(t)}const hu=[];let Gf=-1;const dp=[];let _h=null,rp=0;const VC=Promise.resolve();let Lb=null;function Bp(t){const e=Lb||VC;return t?e.then(this?t.bind(this):t):e}function GN(t){let e=Gf+1,n=hu.length;for(;e<n;){const r=e+n>>>1,i=hu[r],a=xm(i);a<t||a===t&&i.flags&2?e=r+1:n=r}return e}function K2(t){if(!(t.flags&1)){const e=xm(t),n=hu[hu.length-1];!n||!(t.flags&2)&&e>=xm(n)?hu.push(t):hu.splice(GN(e),0,t),t.flags|=1,EC()}}function EC(){Lb||(Lb=VC.then(WC))}function JN(t){Na(t)?dp.push(...t):_h&&t.id===-1?_h.splice(rp+1,0,t):t.flags&1||(dp.push(t),t.flags|=1),EC()}function UU(t,e,n=Gf+1){for(;n<hu.length;n++){const r=hu[n];if(r&&r.flags&2){if(t&&r.id!==t.uid)continue;hu.splice(n,1),n--,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function SC(t){if(dp.length){const e=[...new Set(dp)].sort((n,r)=>xm(n)-xm(r));if(dp.length=0,_h){_h.push(...e);return}for(_h=e,rp=0;rp<_h.length;rp++){const n=_h[rp];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}_h=null,rp=0}}const xm=t=>t.id==null?t.flags&2?-1:1/0:t.id;function WC(t){try{for(Gf=0;Gf<hu.length;Gf++){const e=hu[Gf];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),Y0(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;Gf<hu.length;Gf++){const e=hu[Gf];e&&(e.flags&=-2)}Gf=-1,hu.length=0,SC(),Lb=null,(hu.length||dp.length)&&WC()}}let Fc=null,NC=null;function Hb(t){const e=Fc;return Fc=t,NC=t&&t.type.__scopeId||null,e}function Yr(t,e=Fc,n){if(!e||t._n)return t;const r=(...i)=>{r._d&&TU(-1);const a=Hb(e);let o;try{o=t(...i)}finally{Hb(a),r._d&&TU(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function br(t,e){if(Fc===null)return t;const n=my(Fc),r=t.dirs||(t.dirs=[]);for(let i=0;i<e.length;i++){let[a,o,l,s=Xs]=e[i];a&&(Vo(a)&&(a={mounted:a,updated:a}),a.deep&&uh(o),r.push({dir:a,instance:n,value:o,oldValue:void 0,arg:l,modifiers:s}))}return t}function Kg(t,e,n,r){const i=t.dirs,a=e&&e.dirs;for(let o=0;o<i.length;o++){const l=i[o];a&&(l.oldValue=a[o].value);let s=l.dir[r];s&&(hg(),Af(s,n,8,[t.el,l,t,e]),gg())}}const GC=Symbol("_vte"),JC=t=>t.__isTeleport,Wm=t=>t&&(t.disabled||t.disabled===""),RU=t=>t&&(t.defer||t.defer===""),BU=t=>typeof SVGElement<"u"&&t instanceof SVGElement,ZU=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,p1=(t,e)=>{const n=t&&t.to;return Bd(n)?e?e(n):null:n},TC={name:"Teleport",__isTeleport:!0,process(t,e,n,r,i,a,o,l,s,d){const{mc:c,pc:u,pbc:h,o:{insert:f,querySelector:g,createText:A,createComment:b}}=d,p=Wm(e.props);let{shapeFlag:y,children:m,dynamicChildren:F}=e;if(t==null){const R=e.el=A(""),C=e.anchor=A("");f(R,n,r),f(C,n,r);const B=(S,X)=>{y&16&&(i&&i.isCE&&(i.ce._teleportTarget=S),c(m,S,X,i,a,o,l,s))},N=()=>{const S=e.target=p1(e.props,g),X=XC(S,e,A,f);S&&(o!=="svg"&&BU(S)?o="svg":o!=="mathml"&&ZU(S)&&(o="mathml"),p||(B(S,X),Ib(e,!1)))};p&&(B(n,C),Ib(e,!0)),RU(e.props)?uu(()=>{N(),e.el.__isMounted=!0},a):N()}else{if(RU(e.props)&&!t.el.__isMounted){uu(()=>{TC.process(t,e,n,r,i,a,o,l,s,d),delete t.el.__isMounted},a);return}e.el=t.el,e.targetStart=t.targetStart;const R=e.anchor=t.anchor,C=e.target=t.target,B=e.targetAnchor=t.targetAnchor,N=Wm(t.props),S=N?n:C,X=N?R:B;if(o==="svg"||BU(C)?o="svg":(o==="mathml"||ZU(C))&&(o="mathml"),F?(h(t.dynamicChildren,F,S,i,a,o,l),$2(t,e,!0)):s||u(t,e,S,X,i,a,o,l,!1),p)N?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):cb(e,n,R,d,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const J=e.target=p1(e.props,g);J&&cb(e,J,null,d,0)}else N&&cb(e,C,B,d,1);Ib(e,p)}},remove(t,e,n,{um:r,o:{remove:i}},a){const{shapeFlag:o,children:l,anchor:s,targetStart:d,targetAnchor:c,target:u,props:h}=t;if(u&&(i(d),i(c)),a&&i(s),o&16){const f=a||!Wm(h);for(let g=0;g<l.length;g++){const A=l[g];r(A,e,n,f,!!A.dynamicChildren)}}},move:cb,hydrate:TN};function cb(t,e,n,{o:{insert:r},m:i},a=2){a===0&&r(t.targetAnchor,e,n);const{el:o,anchor:l,shapeFlag:s,children:d,props:c}=t,u=a===2;if(u&&r(o,e,n),(!u||Wm(c))&&s&16)for(let h=0;h<d.length;h++)i(d[h],e,n,2);u&&r(l,e,n)}function TN(t,e,n,r,i,a,{o:{nextSibling:o,parentNode:l,querySelector:s,insert:d,createText:c}},u){const h=e.target=p1(e.props,s);if(h){const f=Wm(e.props),g=h._lpa||h.firstChild;if(e.shapeFlag&16)if(f)e.anchor=u(o(t),e,l(t),n,r,i,a),e.targetStart=g,e.targetAnchor=g&&o(g);else{e.anchor=o(t);let A=g;for(;A;){if(A&&A.nodeType===8){if(A.data==="teleport start anchor")e.targetStart=A;else if(A.data==="teleport anchor"){e.targetAnchor=A,h._lpa=e.targetAnchor&&o(e.targetAnchor);break}}A=o(A)}e.targetAnchor||XC(h,e,c,d),u(g&&o(g),e,h,n,r,i,a)}Ib(e,f)}return e.anchor&&o(e.anchor)}const XN=TC;function Ib(t,e){const n=t.ctx;if(n&&n.ut){let r,i;for(e?(r=t.el,i=t.anchor):(r=t.targetStart,i=t.targetAnchor);r&&r!==i;)r.nodeType===1&&r.setAttribute("data-v-owner",n.uid),r=r.nextSibling;n.ut()}}function XC(t,e,n,r){const i=e.targetStart=n(""),a=e.targetAnchor=n("");return i[GC]=a,t&&(r(i,t),r(a,t)),a}const $h=Symbol("_leaveCb"),ub=Symbol("_enterCb");function kC(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ka(()=>{t.isMounted=!0}),Ay(()=>{t.isUnmounting=!0}),t}const ku=[Function,Array],wC={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ku,onEnter:ku,onAfterEnter:ku,onEnterCancelled:ku,onBeforeLeave:ku,onLeave:ku,onAfterLeave:ku,onLeaveCancelled:ku,onBeforeAppear:ku,onAppear:ku,onAfterAppear:ku,onAppearCancelled:ku},YC=t=>{const e=t.subTree;return e.component?YC(e.component):e},kN={name:"BaseTransition",props:wC,setup(t,{slots:e}){const n=sg(),r=kC();return()=>{const i=e.default&&P2(e.default(),!0);if(!i||!i.length)return;const a=DC(i),o=Bl(t),{mode:l}=o;if(r.isLeaving)return yF(a);const s=IU(a);if(!s)return yF(a);let d=Om(s,o,r,n,u=>d=u);s.type!==gu&&hA(s,d);let c=n.subTree&&IU(n.subTree);if(c&&c.type!==gu&&!rA(s,c)&&YC(n).type!==gu){let u=Om(c,o,r,n);if(hA(c,u),l==="out-in"&&s.type!==gu)return r.isLeaving=!0,u.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete u.afterLeave,c=void 0},yF(a);l==="in-out"&&s.type!==gu?u.delayLeave=(h,f,g)=>{const A=MC(r,c);A[String(c.key)]=c,h[$h]=()=>{f(),h[$h]=void 0,delete d.delayedLeave,c=void 0},d.delayedLeave=()=>{g(),delete d.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return a}}};function DC(t){let e=t[0];if(t.length>1){for(const n of t)if(n.type!==gu){e=n;break}}return e}const wN=kN;function MC(t,e){const{leavingVNodes:n}=t;let r=n.get(e.type);return r||(r=Object.create(null),n.set(e.type,r)),r}function Om(t,e,n,r,i){const{appear:a,mode:o,persisted:l=!1,onBeforeEnter:s,onEnter:d,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:h,onLeave:f,onAfterLeave:g,onLeaveCancelled:A,onBeforeAppear:b,onAppear:p,onAfterAppear:y,onAppearCancelled:m}=e,F=String(t.key),R=MC(n,t),C=(S,X)=>{S&&Af(S,r,9,X)},B=(S,X)=>{const J=X[1];C(S,X),Na(S)?S.every(E=>E.length<=1)&&J():S.length<=1&&J()},N={mode:o,persisted:l,beforeEnter(S){let X=s;if(!n.isMounted)if(a)X=b||s;else return;S[$h]&&S[$h](!0);const J=R[F];J&&rA(t,J)&&J.el[$h]&&J.el[$h](),C(X,[S])},enter(S){let X=d,J=c,E=u;if(!n.isMounted)if(a)X=p||d,J=y||c,E=m||u;else return;let v=!1;const j=S[ub]=H=>{v||(v=!0,H?C(E,[S]):C(J,[S]),N.delayedLeave&&N.delayedLeave(),S[ub]=void 0)};X?B(X,[S,j]):j()},leave(S,X){const J=String(t.key);if(S[ub]&&S[ub](!0),n.isUnmounting)return X();C(h,[S]);let E=!1;const v=S[$h]=j=>{E||(E=!0,X(),j?C(A,[S]):C(g,[S]),S[$h]=void 0,R[J]===t&&delete R[J])};R[J]=t,f?B(f,[S,v]):v()},clone(S){const X=Om(S,e,n,r,i);return i&&i(X),X}};return N}function yF(t){if(hy(t))return t=lg(t),t.children=null,t}function IU(t){if(!hy(t))return JC(t.type)&&t.children?DC(t.children):t;const{shapeFlag:e,children:n}=t;if(n){if(e&16)return n[0];if(e&32&&Vo(n.default))return n.default()}}function hA(t,e){t.shapeFlag&6&&t.component?(t.transition=e,hA(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function P2(t,e=!1,n){let r=[],i=0;for(let a=0;a<t.length;a++){let o=t[a];const l=n==null?o.key:String(n)+String(o.key!=null?o.key:a);o.type===Er?(o.patchFlag&128&&i++,r=r.concat(P2(o.children,e,l))):(e||o.type!==gu)&&r.push(l!=null?lg(o,{key:l}):o)}if(i>1)for(let a=0;a<r.length;a++)r[a].patchFlag=-2;return r}/*! #__NO_SIDE_EFFECTS__ */function Zp(t,e){return Vo(t)?Uc({name:t.name},e,{setup:t}):t}function LC(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function xb(t,e,n,r,i=!1){if(Na(t)){t.forEach((g,A)=>xb(g,e&&(Na(e)?e[A]:e),n,r,i));return}if(cp(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&xb(t,e,n,r.component.subTree);return}const a=r.shapeFlag&4?my(r.component):r.el,o=i?null:a,{i:l,r:s}=t,d=e&&e.r,c=l.refs===Xs?l.refs={}:l.refs,u=l.setupState,h=Bl(u),f=u===Xs?()=>!1:g=>os(h,g);if(d!=null&&d!==s&&(Bd(d)?(c[d]=null,f(d)&&(u[d]=null)):Md(d)&&(d.value=null)),Vo(s))Y0(s,l,12,[o,c]);else{const g=Bd(s),A=Md(s);if(g||A){const b=()=>{if(t.f){const p=g?f(s)?u[s]:c[s]:s.value;i?Na(p)&&N2(p,a):Na(p)?p.includes(a)||p.push(a):g?(c[s]=[a],f(s)&&(u[s]=c[s])):(s.value=[a],t.k&&(c[t.k]=s.value))}else g?(c[s]=o,f(s)&&(u[s]=o)):A&&(s.value=o,t.k&&(c[t.k]=o))};o?(b.id=-1,uu(b,n)):b()}}}cy().requestIdleCallback;cy().cancelIdleCallback;const cp=t=>!!t.type.__asyncLoader,hy=t=>t.type.__isKeepAlive;function YN(t,e){HC(t,"a",e)}function DN(t,e){HC(t,"da",e)}function HC(t,e,n=vc){const r=t.__wdc||(t.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return t()});if(gy(e,r,n),n){let i=n.parent;for(;i&&i.parent;)hy(i.parent.vnode)&&MN(r,e,n,i),i=i.parent}}function MN(t,e,n,r){const i=gy(e,t,r,!0);Ip(()=>{N2(r[e],i)},n)}function gy(t,e,n=vc,r=!1){if(n){const i=n[t]||(n[t]=[]),a=e.__weh||(e.__weh=(...o)=>{hg();const l=M0(n),s=Af(e,n,t,o);return l(),gg(),s});return r?i.unshift(a):i.push(a),a}}const bh=t=>(e,n=vc)=>{(!zm||t==="sp")&&gy(t,(...r)=>e(...r),n)},xC=bh("bm"),Ka=bh("m"),LN=bh("bu"),OC=bh("u"),Ay=bh("bum"),Ip=bh("um"),HN=bh("sp"),xN=bh("rtg"),ON=bh("rtc");function KN(t,e=vc){gy("ec",t,e)}const z2="components",PN="directives";function Li(t,e){return j2(z2,t,!0,e)||t}const KC=Symbol.for("v-ndc");function ea(t){return Bd(t)?j2(z2,t,!1)||t:t||KC}function mf(t){return j2(PN,t)}function j2(t,e,n=!0,r=!1){const i=Fc||vc;if(i){const a=i.type;if(t===z2){const l=NG(a,!1);if(l&&(l===e||l===Ou(e)||l===dy(Ou(e))))return a}const o=CU(i[t]||a[t],e)||CU(i.appContext[t],e);return!o&&r?a:o}}function CU(t,e){return t&&(t[e]||t[Ou(e)]||t[dy(Ou(e))])}function ia(t,e,n,r){let i;const a=n,o=Na(t);if(o||Bd(t)){const l=o&&rg(t);let s=!1;l&&(s=!Lu(t),t=uy(t)),i=new Array(t.length);for(let d=0,c=t.length;d<c;d++)i[d]=e(s?eu(t[d]):t[d],d,void 0,a)}else if(typeof t=="number"){i=new Array(t);for(let l=0;l<t;l++)i[l]=e(l+1,l,void 0,a)}else if(ws(t))if(t[Symbol.iterator])i=Array.from(t,(l,s)=>e(l,s,void 0,a));else{const l=Object.keys(t);i=new Array(l.length);for(let s=0,d=l.length;s<d;s++){const c=l[s];i[s]=e(t[c],c,s,a)}}else i=[];return i}function gp(t,e){for(let n=0;n<e.length;n++){const r=e[n];if(Na(r))for(let i=0;i<r.length;i++)t[r[i].name]=r[i].fn;else r&&(t[r.name]=r.key?(...i)=>{const a=r.fn(...i);return a&&(a.key=r.key),a}:r.fn)}return t}function Vi(t,e,n={},r,i){if(Fc.ce||Fc.parent&&cp(Fc.parent)&&Fc.parent.ce)return e!=="default"&&(n.name=e),oe(),Vn(Er,null,[Fn("slot",n,r&&r())],64);let a=t[e];a&&a._c&&(a._d=!1),oe();const o=a&&PC(a(n)),l=n.key||o&&o.key,s=Vn(Er,{key:(l&&!gf(l)?l:`_${e}`)+(!o&&r?"_fb":"")},o||(r?r():[]),o&&t._===1?64:-2);return s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),a&&a._c&&(a._d=!0),s}function PC(t){return t.some(e=>Pm(e)?!(e.type===gu||e.type===Er&&!PC(e.children)):!0)?t:null}function Zm(t,e){const n={};for(const r in t)n[e&&/[A-Z]/.test(r)?`on:${r}`:Bb(r)]=t[r];return n}const m1=t=>t?hv(t)?my(t):m1(t.parent):null,Nm=Uc(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>m1(t.parent),$root:t=>m1(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>jC(t),$forceUpdate:t=>t.f||(t.f=()=>{K2(t.update)}),$nextTick:t=>t.n||(t.n=Bp.bind(t.proxy)),$watch:t=>pG.bind(t)}),FF=(t,e)=>t!==Xs&&!t.__isScriptSetup&&os(t,e),zN={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:r,data:i,props:a,accessCache:o,type:l,appContext:s}=t;let d;if(e[0]!=="$"){const f=o[e];if(f!==void 0)switch(f){case 1:return r[e];case 2:return i[e];case 4:return n[e];case 3:return a[e]}else{if(FF(r,e))return o[e]=1,r[e];if(i!==Xs&&os(i,e))return o[e]=2,i[e];if((d=t.propsOptions[0])&&os(d,e))return o[e]=3,a[e];if(n!==Xs&&os(n,e))return o[e]=4,n[e];b1&&(o[e]=0)}}const c=Nm[e];let u,h;if(c)return e==="$attrs"&&qc(t.attrs,"get",""),c(t);if((u=l.__cssModules)&&(u=u[e]))return u;if(n!==Xs&&os(n,e))return o[e]=4,n[e];if(h=s.config.globalProperties,os(h,e))return h[e]},set({_:t},e,n){const{data:r,setupState:i,ctx:a}=t;return FF(i,e)?(i[e]=n,!0):r!==Xs&&os(r,e)?(r[e]=n,!0):os(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(a[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:r,appContext:i,propsOptions:a}},o){let l;return!!n[o]||t!==Xs&&os(t,o)||FF(e,o)||(l=a[0])&&os(l,o)||os(r,o)||os(Nm,o)||os(i.config.globalProperties,o)},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:os(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};function vU(t){return Na(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}let b1=!0;function jN(t){const e=jC(t),n=t.proxy,r=t.ctx;b1=!1,e.beforeCreate&&VU(e.beforeCreate,t,"bc");const{data:i,computed:a,methods:o,watch:l,provide:s,inject:d,created:c,beforeMount:u,mounted:h,beforeUpdate:f,updated:g,activated:A,deactivated:b,beforeDestroy:p,beforeUnmount:y,destroyed:m,unmounted:F,render:R,renderTracked:C,renderTriggered:B,errorCaptured:N,serverPrefetch:S,expose:X,inheritAttrs:J,components:E,directives:v,filters:j}=e;if(d&&_N(d,r,null),o)for(const Fe in o){const z=o[Fe];Vo(z)&&(r[Fe]=z.bind(n))}if(i){const Fe=i.call(n,n);ws(Fe)&&(t.data=yA(Fe))}if(b1=!0,a)for(const Fe in a){const z=a[Fe],q=Vo(z)?z.bind(n,n):Vo(z.get)?z.get.bind(n,n):Xf,Ae=!Vo(z)&&Vo(z.set)?z.set.bind(n):Xf,Ke=qs({get:q,set:Ae});Object.defineProperty(r,Fe,{enumerable:!0,configurable:!0,get:()=>Ke.value,set:pe=>Ke.value=pe})}if(l)for(const Fe in l)zC(l[Fe],r,n,Fe);if(s){const Fe=Vo(s)?s.call(n):s;Reflect.ownKeys(Fe).forEach(z=>{Cb(z,Fe[z])})}c&&VU(c,t,"c");function K(Fe,z){Na(z)?z.forEach(q=>Fe(q.bind(n))):z&&Fe(z.bind(n))}if(K(xC,u),K(Ka,h),K(LN,f),K(OC,g),K(YN,A),K(DN,b),K(KN,N),K(ON,C),K(xN,B),K(Ay,y),K(Ip,F),K(HN,S),Na(X))if(X.length){const Fe=t.exposed||(t.exposed={});X.forEach(z=>{Object.defineProperty(Fe,z,{get:()=>n[z],set:q=>n[z]=q})})}else t.exposed||(t.exposed={});R&&t.render===Xf&&(t.render=R),J!=null&&(t.inheritAttrs=J),E&&(t.components=E),v&&(t.directives=v),S&&LC(t)}function _N(t,e,n=Xf){Na(t)&&(t=y1(t));for(const r in t){const i=t[r];let a;ws(i)?"default"in i?a=Su(i.from||r,i.default,!0):a=Su(i.from||r):a=Su(i),Md(a)?Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:()=>a.value,set:o=>a.value=o}):e[r]=a}}function VU(t,e,n){Af(Na(t)?t.map(r=>r.bind(e.proxy)):t.bind(e.proxy),e,n)}function zC(t,e,n,r){let i=r.includes(".")?sv(n,r):()=>n[r];if(Bd(t)){const a=e[t];Vo(a)&&yi(i,a)}else if(Vo(t))yi(i,t.bind(n));else if(ws(t))if(Na(t))t.forEach(a=>zC(a,e,n,r));else{const a=Vo(t.handler)?t.handler.bind(n):e[t.handler];Vo(a)&&yi(i,a,t)}}function jC(t){const e=t.type,{mixins:n,extends:r}=e,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=t.appContext,l=a.get(e);let s;return l?s=l:!i.length&&!n&&!r?s=e:(s={},i.length&&i.forEach(d=>Ob(s,d,o,!0)),Ob(s,e,o)),ws(e)&&a.set(e,s),s}function Ob(t,e,n,r=!1){const{mixins:i,extends:a}=e;a&&Ob(t,a,n,!0),i&&i.forEach(o=>Ob(t,o,n,!0));for(const o in e)if(!(r&&o==="expose")){const l=$N[o]||n&&n[o];t[o]=l?l(t[o],e[o]):e[o]}return t}const $N={data:EU,props:SU,emits:SU,methods:Im,computed:Im,beforeCreate:du,created:du,beforeMount:du,mounted:du,beforeUpdate:du,updated:du,beforeDestroy:du,beforeUnmount:du,destroyed:du,unmounted:du,activated:du,deactivated:du,errorCaptured:du,serverPrefetch:du,components:Im,directives:Im,watch:eG,provide:EU,inject:qN};function EU(t,e){return e?t?function(){return Uc(Vo(t)?t.call(this,this):t,Vo(e)?e.call(this,this):e)}:e:t}function qN(t,e){return Im(y1(t),y1(e))}function y1(t){if(Na(t)){const e={};for(let n=0;n<t.length;n++)e[t[n]]=t[n];return e}return t}function du(t,e){return t?[...new Set([].concat(t,e))]:e}function Im(t,e){return t?Uc(Object.create(null),t,e):e}function SU(t,e){return t?Na(t)&&Na(e)?[...new Set([...t,...e])]:Uc(Object.create(null),vU(t),vU(e??{})):e}function eG(t,e){if(!t)return e;if(!e)return t;const n=Uc(Object.create(null),t);for(const r in e)n[r]=du(t[r],e[r]);return n}function _C(){return{app:null,config:{isNativeTag:x3,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let tG=0;function nG(t,e){return function(r,i=null){Vo(r)||(r=Uc({},r)),i!=null&&!ws(i)&&(i=null);const a=_C(),o=new WeakSet,l=[];let s=!1;const d=a.app={_uid:tG++,_component:r,_props:i,_container:null,_context:a,_instance:null,version:JG,get config(){return a.config},set config(c){},use(c,...u){return o.has(c)||(c&&Vo(c.install)?(o.add(c),c.install(d,...u)):Vo(c)&&(o.add(c),c(d,...u))),d},mixin(c){return a.mixins.includes(c)||a.mixins.push(c),d},component(c,u){return u?(a.components[c]=u,d):a.components[c]},directive(c,u){return u?(a.directives[c]=u,d):a.directives[c]},mount(c,u,h){if(!s){const f=d._ceVNode||Fn(r,i);return f.appContext=a,h===!0?h="svg":h===!1&&(h=void 0),t(f,c,h),s=!0,d._container=c,c.__vue_app__=d,my(f.component)}},onUnmount(c){l.push(c)},unmount(){s&&(Af(l,d._instance,16),t(null,d._container),delete d._container.__vue_app__)},provide(c,u){return a.provides[c]=u,d},runWithContext(c){const u=sA;sA=d;try{return c()}finally{sA=u}}};return d}}let sA=null;function Cb(t,e){if(vc){let n=vc.provides;const r=vc.parent&&vc.parent.provides;r===n&&(n=vc.provides=Object.create(r)),n[t]=e}}function Su(t,e,n=!1){const r=vc||Fc;if(r||sA){const i=sA?sA._context.provides:r?r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&t in i)return i[t];if(arguments.length>1)return n&&Vo(e)?e.call(r&&r.proxy):e}}function rG(){return!!(vc||Fc||sA)}const $C={},qC=()=>Object.create($C),ev=t=>Object.getPrototypeOf(t)===$C;function iG(t,e,n,r=!1){const i={},a=qC();t.propsDefaults=Object.create(null),tv(t,e,i,a);for(const o in t.propsOptions[0])o in i||(i[o]=void 0);n?t.props=r?i:IC(i):t.type.props?t.props=i:t.props=a,t.attrs=a}function aG(t,e,n,r){const{props:i,attrs:a,vnode:{patchFlag:o}}=t,l=Bl(i),[s]=t.propsOptions;let d=!1;if((r||o>0)&&!(o&16)){if(o&8){const c=t.vnode.dynamicProps;for(let u=0;u<c.length;u++){let h=c[u];if(py(t.emitsOptions,h))continue;const f=e[h];if(s)if(os(a,h))f!==a[h]&&(a[h]=f,d=!0);else{const g=Ou(h);i[g]=F1(s,l,g,f,t,!1)}else f!==a[h]&&(a[h]=f,d=!0)}}}else{tv(t,e,i,a)&&(d=!0);let c;for(const u in l)(!e||!os(e,u)&&((c=fg(u))===u||!os(e,c)))&&(s?n&&(n[u]!==void 0||n[c]!==void 0)&&(i[u]=F1(s,l,u,void 0,t,!0)):delete i[u]);if(a!==l)for(const u in a)(!e||!os(e,u))&&(delete a[u],d=!0)}d&&ch(t.attrs,"set","")}function tv(t,e,n,r){const[i,a]=t.propsOptions;let o=!1,l;if(e)for(let s in e){if(Vm(s))continue;const d=e[s];let c;i&&os(i,c=Ou(s))?!a||!a.includes(c)?n[c]=d:(l||(l={}))[c]=d:py(t.emitsOptions,s)||(!(s in r)||d!==r[s])&&(r[s]=d,o=!0)}if(a){const s=Bl(n),d=l||Xs;for(let c=0;c<a.length;c++){const u=a[c];n[u]=F1(i,s,u,d[u],t,!os(d,u))}}return o}function F1(t,e,n,r,i,a){const o=t[n];if(o!=null){const l=os(o,"default");if(l&&r===void 0){const s=o.default;if(o.type!==Function&&!o.skipFactory&&Vo(s)){const{propsDefaults:d}=i;if(n in d)r=d[n];else{const c=M0(i);r=d[n]=s.call(null,e),c()}}else r=s;i.ce&&i.ce._setProp(n,r)}o[0]&&(a&&!l?r=!1:o[1]&&(r===""||r===fg(n))&&(r=!0))}return r}const oG=new WeakMap;function nv(t,e,n=!1){const r=n?oG:e.propsCache,i=r.get(t);if(i)return i;const a=t.props,o={},l=[];let s=!1;if(!Vo(t)){const c=u=>{s=!0;const[h,f]=nv(u,e,!0);Uc(o,h),f&&l.push(...f)};!n&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!a&&!s)return ws(t)&&r.set(t,lp),lp;if(Na(a))for(let c=0;c<a.length;c++){const u=Ou(a[c]);WU(u)&&(o[u]=Xs)}else if(a)for(const c in a){const u=Ou(c);if(WU(u)){const h=a[c],f=o[u]=Na(h)||Vo(h)?{type:h}:Uc({},h),g=f.type;let A=!1,b=!0;if(Na(g))for(let p=0;p<g.length;++p){const y=g[p],m=Vo(y)&&y.name;if(m==="Boolean"){A=!0;break}else m==="String"&&(b=!1)}else A=Vo(g)&&g.name==="Boolean";f[0]=A,f[1]=b,(A||os(f,"default"))&&l.push(u)}}const d=[o,l];return ws(t)&&r.set(t,d),d}function WU(t){return t[0]!=="$"&&!Vm(t)}const rv=t=>t[0]==="_"||t==="$stable",_2=t=>Na(t)?t.map(Jf):[Jf(t)],lG=(t,e,n)=>{if(e._n)return e;const r=Yr((...i)=>_2(e(...i)),n);return r._c=!1,r},iv=(t,e,n)=>{const r=t._ctx;for(const i in t){if(rv(i))continue;const a=t[i];if(Vo(a))e[i]=lG(i,a,r);else if(a!=null){const o=_2(a);e[i]=()=>o}}},av=(t,e)=>{const n=_2(e);t.slots.default=()=>n},ov=(t,e,n)=>{for(const r in e)(n||r!=="_")&&(t[r]=e[r])},sG=(t,e,n)=>{const r=t.slots=qC();if(t.vnode.shapeFlag&32){const i=e._;i?(ov(r,e,n),n&&oC(r,"_",i,!0)):iv(e,r)}else e&&av(t,e)},dG=(t,e,n)=>{const{vnode:r,slots:i}=t;let a=!0,o=Xs;if(r.shapeFlag&32){const l=e._;l?n&&l===1?a=!1:ov(i,e,n):(a=!e.$stable,iv(e,i)),o=e}else e&&(av(t,e),o={default:1});if(a)for(const l in i)!rv(l)&&o[l]==null&&delete i[l]},uu=RG;function cG(t){return uG(t)}function uG(t,e){const n=cy();n.__VUE__=!0;const{insert:r,remove:i,patchProp:a,createElement:o,createText:l,createComment:s,setText:d,setElementText:c,parentNode:u,nextSibling:h,setScopeId:f=Xf,insertStaticContent:g}=t,A=(Ne,Je,ve,Ye=null,it=null,Qt=null,_t=void 0,Dt=null,Ee=!!Je.dynamicChildren)=>{if(Ne===Je)return;Ne&&!rA(Ne,Je)&&(Ye=Be(Ne),pe(Ne,it,Qt,!0),Ne=null),Je.patchFlag===-2&&(Ee=!1,Je.dynamicChildren=null);const{type:Ge,ref:he,shapeFlag:$}=Je;switch(Ge){case D0:b(Ne,Je,ve,Ye);break;case gu:p(Ne,Je,ve,Ye);break;case UF:Ne==null&&y(Je,ve,Ye,_t);break;case Er:E(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee);break;default:$&1?R(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee):$&6?v(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee):($&64||$&128)&&Ge.process(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee,Bt)}he!=null&&it&&xb(he,Ne&&Ne.ref,Qt,Je||Ne,!Je)},b=(Ne,Je,ve,Ye)=>{if(Ne==null)r(Je.el=l(Je.children),ve,Ye);else{const it=Je.el=Ne.el;Je.children!==Ne.children&&d(it,Je.children)}},p=(Ne,Je,ve,Ye)=>{Ne==null?r(Je.el=s(Je.children||""),ve,Ye):Je.el=Ne.el},y=(Ne,Je,ve,Ye)=>{[Ne.el,Ne.anchor]=g(Ne.children,Je,ve,Ye,Ne.el,Ne.anchor)},m=({el:Ne,anchor:Je},ve,Ye)=>{let it;for(;Ne&&Ne!==Je;)it=h(Ne),r(Ne,ve,Ye),Ne=it;r(Je,ve,Ye)},F=({el:Ne,anchor:Je})=>{let ve;for(;Ne&&Ne!==Je;)ve=h(Ne),i(Ne),Ne=ve;i(Je)},R=(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee)=>{Je.type==="svg"?_t="svg":Je.type==="math"&&(_t="mathml"),Ne==null?C(Je,ve,Ye,it,Qt,_t,Dt,Ee):S(Ne,Je,it,Qt,_t,Dt,Ee)},C=(Ne,Je,ve,Ye,it,Qt,_t,Dt)=>{let Ee,Ge;const{props:he,shapeFlag:$,transition:ie,dirs:Ve}=Ne;if(Ee=Ne.el=o(Ne.type,Qt,he&&he.is,he),$&8?c(Ee,Ne.children):$&16&&N(Ne.children,Ee,null,Ye,it,QF(Ne,Qt),_t,Dt),Ve&&Kg(Ne,null,Ye,"created"),B(Ee,Ne,Ne.scopeId,_t,Ye),he){for(const we in he)we!=="value"&&!Vm(we)&&a(Ee,we,null,he[we],Qt,Ye);"value"in he&&a(Ee,"value",null,he.value,Qt),(Ge=he.onVnodeBeforeMount)&&Ef(Ge,Ye,Ne)}Ve&&Kg(Ne,null,Ye,"beforeMount");const _e=fG(it,ie);_e&&ie.beforeEnter(Ee),r(Ee,Je,ve),((Ge=he&&he.onVnodeMounted)||_e||Ve)&&uu(()=>{Ge&&Ef(Ge,Ye,Ne),_e&&ie.enter(Ee),Ve&&Kg(Ne,null,Ye,"mounted")},it)},B=(Ne,Je,ve,Ye,it)=>{if(ve&&f(Ne,ve),Ye)for(let Qt=0;Qt<Ye.length;Qt++)f(Ne,Ye[Qt]);if(it){let Qt=it.subTree;if(Je===Qt||cv(Qt.type)&&(Qt.ssContent===Je||Qt.ssFallback===Je)){const _t=it.vnode;B(Ne,_t,_t.scopeId,_t.slotScopeIds,it.parent)}}},N=(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee=0)=>{for(let Ge=Ee;Ge<Ne.length;Ge++){const he=Ne[Ge]=Dt?qh(Ne[Ge]):Jf(Ne[Ge]);A(null,he,Je,ve,Ye,it,Qt,_t,Dt)}},S=(Ne,Je,ve,Ye,it,Qt,_t)=>{const Dt=Je.el=Ne.el;let{patchFlag:Ee,dynamicChildren:Ge,dirs:he}=Je;Ee|=Ne.patchFlag&16;const $=Ne.props||Xs,ie=Je.props||Xs;let Ve;if(ve&&Pg(ve,!1),(Ve=ie.onVnodeBeforeUpdate)&&Ef(Ve,ve,Je,Ne),he&&Kg(Je,Ne,ve,"beforeUpdate"),ve&&Pg(ve,!0),($.innerHTML&&ie.innerHTML==null||$.textContent&&ie.textContent==null)&&c(Dt,""),Ge?X(Ne.dynamicChildren,Ge,Dt,ve,Ye,QF(Je,it),Qt):_t||z(Ne,Je,Dt,null,ve,Ye,QF(Je,it),Qt,!1),Ee>0){if(Ee&16)J(Dt,$,ie,ve,it);else if(Ee&2&&$.class!==ie.class&&a(Dt,"class",null,ie.class,it),Ee&4&&a(Dt,"style",$.style,ie.style,it),Ee&8){const _e=Je.dynamicProps;for(let we=0;we<_e.length;we++){const nt=_e[we],Gt=$[nt],An=ie[nt];(An!==Gt||nt==="value")&&a(Dt,nt,Gt,An,it,ve)}}Ee&1&&Ne.children!==Je.children&&c(Dt,Je.children)}else!_t&&Ge==null&&J(Dt,$,ie,ve,it);((Ve=ie.onVnodeUpdated)||he)&&uu(()=>{Ve&&Ef(Ve,ve,Je,Ne),he&&Kg(Je,Ne,ve,"updated")},Ye)},X=(Ne,Je,ve,Ye,it,Qt,_t)=>{for(let Dt=0;Dt<Je.length;Dt++){const Ee=Ne[Dt],Ge=Je[Dt],he=Ee.el&&(Ee.type===Er||!rA(Ee,Ge)||Ee.shapeFlag&70)?u(Ee.el):ve;A(Ee,Ge,he,null,Ye,it,Qt,_t,!0)}},J=(Ne,Je,ve,Ye,it)=>{if(Je!==ve){if(Je!==Xs)for(const Qt in Je)!Vm(Qt)&&!(Qt in ve)&&a(Ne,Qt,Je[Qt],null,it,Ye);for(const Qt in ve){if(Vm(Qt))continue;const _t=ve[Qt],Dt=Je[Qt];_t!==Dt&&Qt!=="value"&&a(Ne,Qt,Dt,_t,it,Ye)}"value"in ve&&a(Ne,"value",Je.value,ve.value,it)}},E=(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee)=>{const Ge=Je.el=Ne?Ne.el:l(""),he=Je.anchor=Ne?Ne.anchor:l("");let{patchFlag:$,dynamicChildren:ie,slotScopeIds:Ve}=Je;Ve&&(Dt=Dt?Dt.concat(Ve):Ve),Ne==null?(r(Ge,ve,Ye),r(he,ve,Ye),N(Je.children||[],ve,he,it,Qt,_t,Dt,Ee)):$>0&&$&64&&ie&&Ne.dynamicChildren?(X(Ne.dynamicChildren,ie,ve,it,Qt,_t,Dt),(Je.key!=null||it&&Je===it.subTree)&&$2(Ne,Je,!0)):z(Ne,Je,ve,he,it,Qt,_t,Dt,Ee)},v=(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee)=>{Je.slotScopeIds=Dt,Ne==null?Je.shapeFlag&512?it.ctx.activate(Je,ve,Ye,_t,Ee):j(Je,ve,Ye,it,Qt,_t,Ee):H(Ne,Je,Ee)},j=(Ne,Je,ve,Ye,it,Qt,_t)=>{const Dt=Ne.component=vG(Ne,Ye,it);if(hy(Ne)&&(Dt.ctx.renderer=Bt),VG(Dt,!1,_t),Dt.asyncDep){if(it&&it.registerDep(Dt,K,_t),!Ne.el){const Ee=Dt.subTree=Fn(gu);p(null,Ee,Je,ve)}}else K(Dt,Ne,Je,ve,it,Qt,_t)},H=(Ne,Je,ve)=>{const Ye=Je.component=Ne.component;if(QG(Ne,Je,ve))if(Ye.asyncDep&&!Ye.asyncResolved){Fe(Ye,Je,ve);return}else Ye.next=Je,Ye.update();else Je.el=Ne.el,Ye.vnode=Je},K=(Ne,Je,ve,Ye,it,Qt,_t)=>{const Dt=()=>{if(Ne.isMounted){let{next:$,bu:ie,u:Ve,parent:_e,vnode:we}=Ne;{const tr=lv(Ne);if(tr){$&&($.el=we.el,Fe(Ne,$,_t)),tr.asyncDep.then(()=>{Ne.isUnmounted||Dt()});return}}let nt=$,Gt;Pg(Ne,!1),$?($.el=we.el,Fe(Ne,$,_t)):$=we,ie&&Zb(ie),(Gt=$.props&&$.props.onVnodeBeforeUpdate)&&Ef(Gt,_e,$,we),Pg(Ne,!0);const An=GU(Ne),Dn=Ne.subTree;Ne.subTree=An,A(Dn,An,u(Dn.el),Be(Dn),Ne,it,Qt),$.el=An.el,nt===null&&UG(Ne,An.el),Ve&&uu(Ve,it),(Gt=$.props&&$.props.onVnodeUpdated)&&uu(()=>Ef(Gt,_e,$,we),it)}else{let $;const{el:ie,props:Ve}=Je,{bm:_e,m:we,parent:nt,root:Gt,type:An}=Ne,Dn=cp(Je);Pg(Ne,!1),_e&&Zb(_e),!Dn&&($=Ve&&Ve.onVnodeBeforeMount)&&Ef($,nt,Je),Pg(Ne,!0);{Gt.ce&&Gt.ce._injectChildStyle(An);const tr=Ne.subTree=GU(Ne);A(null,tr,ve,Ye,Ne,it,Qt),Je.el=tr.el}if(we&&uu(we,it),!Dn&&($=Ve&&Ve.onVnodeMounted)){const tr=Je;uu(()=>Ef($,nt,tr),it)}(Je.shapeFlag&256||nt&&cp(nt.vnode)&&nt.vnode.shapeFlag&256)&&Ne.a&&uu(Ne.a,it),Ne.isMounted=!0,Je=ve=Ye=null}};Ne.scope.on();const Ee=Ne.effect=new fC(Dt);Ne.scope.off();const Ge=Ne.update=Ee.run.bind(Ee),he=Ne.job=Ee.runIfDirty.bind(Ee);he.i=Ne,he.id=Ne.uid,Ee.scheduler=()=>K2(he),Pg(Ne,!0),Ge()},Fe=(Ne,Je,ve)=>{Je.component=Ne;const Ye=Ne.vnode.props;Ne.vnode=Je,Ne.next=null,aG(Ne,Je.props,Ye,ve),dG(Ne,Je.children,ve),hg(),UU(Ne),gg()},z=(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee=!1)=>{const Ge=Ne&&Ne.children,he=Ne?Ne.shapeFlag:0,$=Je.children,{patchFlag:ie,shapeFlag:Ve}=Je;if(ie>0){if(ie&128){Ae(Ge,$,ve,Ye,it,Qt,_t,Dt,Ee);return}else if(ie&256){q(Ge,$,ve,Ye,it,Qt,_t,Dt,Ee);return}}Ve&8?(he&16&&Rt(Ge,it,Qt),$!==Ge&&c(ve,$)):he&16?Ve&16?Ae(Ge,$,ve,Ye,it,Qt,_t,Dt,Ee):Rt(Ge,it,Qt,!0):(he&8&&c(ve,""),Ve&16&&N($,ve,Ye,it,Qt,_t,Dt,Ee))},q=(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee)=>{Ne=Ne||lp,Je=Je||lp;const Ge=Ne.length,he=Je.length,$=Math.min(Ge,he);let ie;for(ie=0;ie<$;ie++){const Ve=Je[ie]=Ee?qh(Je[ie]):Jf(Je[ie]);A(Ne[ie],Ve,ve,null,it,Qt,_t,Dt,Ee)}Ge>he?Rt(Ne,it,Qt,!0,!1,$):N(Je,ve,Ye,it,Qt,_t,Dt,Ee,$)},Ae=(Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee)=>{let Ge=0;const he=Je.length;let $=Ne.length-1,ie=he-1;for(;Ge<=$&&Ge<=ie;){const Ve=Ne[Ge],_e=Je[Ge]=Ee?qh(Je[Ge]):Jf(Je[Ge]);if(rA(Ve,_e))A(Ve,_e,ve,null,it,Qt,_t,Dt,Ee);else break;Ge++}for(;Ge<=$&&Ge<=ie;){const Ve=Ne[$],_e=Je[ie]=Ee?qh(Je[ie]):Jf(Je[ie]);if(rA(Ve,_e))A(Ve,_e,ve,null,it,Qt,_t,Dt,Ee);else break;$--,ie--}if(Ge>$){if(Ge<=ie){const Ve=ie+1,_e=Ve<he?Je[Ve].el:Ye;for(;Ge<=ie;)A(null,Je[Ge]=Ee?qh(Je[Ge]):Jf(Je[Ge]),ve,_e,it,Qt,_t,Dt,Ee),Ge++}}else if(Ge>ie)for(;Ge<=$;)pe(Ne[Ge],it,Qt,!0),Ge++;else{const Ve=Ge,_e=Ge,we=new Map;for(Ge=_e;Ge<=ie;Ge++){const dr=Je[Ge]=Ee?qh(Je[Ge]):Jf(Je[Ge]);dr.key!=null&&we.set(dr.key,Ge)}let nt,Gt=0;const An=ie-_e+1;let Dn=!1,tr=0;const nr=new Array(An);for(Ge=0;Ge<An;Ge++)nr[Ge]=0;for(Ge=Ve;Ge<=$;Ge++){const dr=Ne[Ge];if(Gt>=An){pe(dr,it,Qt,!0);continue}let Dr;if(dr.key!=null)Dr=we.get(dr.key);else for(nt=_e;nt<=ie;nt++)if(nr[nt-_e]===0&&rA(dr,Je[nt])){Dr=nt;break}Dr===void 0?pe(dr,it,Qt,!0):(nr[Dr-_e]=Ge+1,Dr>=tr?tr=Dr:Dn=!0,A(dr,Je[Dr],ve,null,it,Qt,_t,Dt,Ee),Gt++)}const zn=Dn?hG(nr):lp;for(nt=zn.length-1,Ge=An-1;Ge>=0;Ge--){const dr=_e+Ge,Dr=Je[dr],ui=dr+1<he?Je[dr+1].el:Ye;nr[Ge]===0?A(null,Dr,ve,ui,it,Qt,_t,Dt,Ee):Dn&&(nt<0||Ge!==zn[nt]?Ke(Dr,ve,ui,2):nt--)}}},Ke=(Ne,Je,ve,Ye,it=null)=>{const{el:Qt,type:_t,transition:Dt,children:Ee,shapeFlag:Ge}=Ne;if(Ge&6){Ke(Ne.component.subTree,Je,ve,Ye);return}if(Ge&128){Ne.suspense.move(Je,ve,Ye);return}if(Ge&64){_t.move(Ne,Je,ve,Bt);return}if(_t===Er){r(Qt,Je,ve);for(let $=0;$<Ee.length;$++)Ke(Ee[$],Je,ve,Ye);r(Ne.anchor,Je,ve);return}if(_t===UF){m(Ne,Je,ve);return}if(Ye!==2&&Ge&1&&Dt)if(Ye===0)Dt.beforeEnter(Qt),r(Qt,Je,ve),uu(()=>Dt.enter(Qt),it);else{const{leave:$,delayLeave:ie,afterLeave:Ve}=Dt,_e=()=>r(Qt,Je,ve),we=()=>{$(Qt,()=>{_e(),Ve&&Ve()})};ie?ie(Qt,_e,we):we()}else r(Qt,Je,ve)},pe=(Ne,Je,ve,Ye=!1,it=!1)=>{const{type:Qt,props:_t,ref:Dt,children:Ee,dynamicChildren:Ge,shapeFlag:he,patchFlag:$,dirs:ie,cacheIndex:Ve}=Ne;if($===-2&&(it=!1),Dt!=null&&xb(Dt,null,ve,Ne,!0),Ve!=null&&(Je.renderCache[Ve]=void 0),he&256){Je.ctx.deactivate(Ne);return}const _e=he&1&&ie,we=!cp(Ne);let nt;if(we&&(nt=_t&&_t.onVnodeBeforeUnmount)&&Ef(nt,Je,Ne),he&6)$e(Ne.component,ve,Ye);else{if(he&128){Ne.suspense.unmount(ve,Ye);return}_e&&Kg(Ne,null,Je,"beforeUnmount"),he&64?Ne.type.remove(Ne,Je,ve,Bt,Ye):Ge&&!Ge.hasOnce&&(Qt!==Er||$>0&&$&64)?Rt(Ge,Je,ve,!1,!0):(Qt===Er&&$&384||!it&&he&16)&&Rt(Ee,Je,ve),Ye&&We(Ne)}(we&&(nt=_t&&_t.onVnodeUnmounted)||_e)&&uu(()=>{nt&&Ef(nt,Je,Ne),_e&&Kg(Ne,null,Je,"unmounted")},ve)},We=Ne=>{const{type:Je,el:ve,anchor:Ye,transition:it}=Ne;if(Je===Er){xe(ve,Ye);return}if(Je===UF){F(Ne);return}const Qt=()=>{i(ve),it&&!it.persisted&&it.afterLeave&&it.afterLeave()};if(Ne.shapeFlag&1&&it&&!it.persisted){const{leave:_t,delayLeave:Dt}=it,Ee=()=>_t(ve,Qt);Dt?Dt(Ne.el,Qt,Ee):Ee()}else Qt()},xe=(Ne,Je)=>{let ve;for(;Ne!==Je;)ve=h(Ne),i(Ne),Ne=ve;i(Je)},$e=(Ne,Je,ve)=>{const{bum:Ye,scope:it,job:Qt,subTree:_t,um:Dt,m:Ee,a:Ge}=Ne;NU(Ee),NU(Ge),Ye&&Zb(Ye),it.stop(),Qt&&(Qt.flags|=8,pe(_t,Ne,Je,ve)),Dt&&uu(Dt,Je),uu(()=>{Ne.isUnmounted=!0},Je),Je&&Je.pendingBranch&&!Je.isUnmounted&&Ne.asyncDep&&!Ne.asyncResolved&&Ne.suspenseId===Je.pendingId&&(Je.deps--,Je.deps===0&&Je.resolve())},Rt=(Ne,Je,ve,Ye=!1,it=!1,Qt=0)=>{for(let _t=Qt;_t<Ne.length;_t++)pe(Ne[_t],Je,ve,Ye,it)},Be=Ne=>{if(Ne.shapeFlag&6)return Be(Ne.component.subTree);if(Ne.shapeFlag&128)return Ne.suspense.next();const Je=h(Ne.anchor||Ne.el),ve=Je&&Je[GC];return ve?h(ve):Je};let qe=!1;const at=(Ne,Je,ve)=>{Ne==null?Je._vnode&&pe(Je._vnode,null,null,!0):A(Je._vnode||null,Ne,Je,null,null,null,ve),Je._vnode=Ne,qe||(qe=!0,UU(),SC(),qe=!1)},Bt={p:A,um:pe,m:Ke,r:We,mt:j,mc:N,pc:z,pbc:X,n:Be,o:t};return{render:at,hydrate:void 0,createApp:nG(at)}}function QF({type:t,props:e},n){return n==="svg"&&t==="foreignObject"||n==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:n}function Pg({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function fG(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function $2(t,e,n=!1){const r=t.children,i=e.children;if(Na(r)&&Na(i))for(let a=0;a<r.length;a++){const o=r[a];let l=i[a];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=i[a]=qh(i[a]),l.el=o.el),!n&&l.patchFlag!==-2&&$2(o,l)),l.type===D0&&(l.el=o.el)}}function hG(t){const e=t.slice(),n=[0];let r,i,a,o,l;const s=t.length;for(r=0;r<s;r++){const d=t[r];if(d!==0){if(i=n[n.length-1],t[i]<d){e[r]=i,n.push(r);continue}for(a=0,o=n.length-1;a<o;)l=a+o>>1,t[n[l]]<d?a=l+1:o=l;d<t[n[a]]&&(a>0&&(e[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-- >0;)n[a]=o,o=e[o];return n}function lv(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:lv(e)}function NU(t){if(t)for(let e=0;e<t.length;e++)t[e].flags|=8}const gG=Symbol.for("v-scx"),AG=()=>Su(gG);function FA(t,e){return q2(t,null,e)}function yi(t,e,n){return q2(t,e,n)}function q2(t,e,n=Xs){const{immediate:r,deep:i,flush:a,once:o}=n,l=Uc({},n),s=e&&r||!e&&a!=="post";let d;if(zm){if(a==="sync"){const f=AG();d=f.__watcherHandles||(f.__watcherHandles=[])}else if(!s){const f=()=>{};return f.stop=Xf,f.resume=Xf,f.pause=Xf,f}}const c=vc;l.call=(f,g,A)=>Af(f,c,g,A);let u=!1;a==="post"?l.scheduler=f=>{uu(f,c&&c.suspense)}:a!=="sync"&&(u=!0,l.scheduler=(f,g)=>{g?f():K2(f)}),l.augmentJob=f=>{e&&(f.flags|=4),u&&(f.flags|=2,c&&(f.id=c.uid,f.i=c))};const h=WN(t,e,l);return zm&&(d?d.push(h):s&&h()),h}function pG(t,e,n){const r=this.proxy,i=Bd(t)?t.includes(".")?sv(r,t):()=>r[t]:t.bind(r,r);let a;Vo(e)?a=e:(a=e.handler,n=e);const o=M0(this),l=q2(i,a.bind(r),n);return o(),l}function sv(t,e){const n=e.split(".");return()=>{let r=t;for(let i=0;i<n.length&&r;i++)r=r[n[i]];return r}}const mG=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ou(e)}Modifiers`]||t[`${fg(e)}Modifiers`];function bG(t,e,...n){if(t.isUnmounted)return;const r=t.vnode.props||Xs;let i=n;const a=e.startsWith("update:"),o=a&&mG(r,e.slice(7));o&&(o.trim&&(i=n.map(c=>Bd(c)?c.trim():c)),o.number&&(i=n.map(Yb)));let l,s=r[l=Bb(e)]||r[l=Bb(Ou(e))];!s&&a&&(s=r[l=Bb(fg(e))]),s&&Af(s,t,6,i);const d=r[l+"Once"];if(d){if(!t.emitted)t.emitted={};else if(t.emitted[l])return;t.emitted[l]=!0,Af(d,t,6,i)}}function dv(t,e,n=!1){const r=e.emitsCache,i=r.get(t);if(i!==void 0)return i;const a=t.emits;let o={},l=!1;if(!Vo(t)){const s=d=>{const c=dv(d,e,!0);c&&(l=!0,Uc(o,c))};!n&&e.mixins.length&&e.mixins.forEach(s),t.extends&&s(t.extends),t.mixins&&t.mixins.forEach(s)}return!a&&!l?(ws(t)&&r.set(t,null),null):(Na(a)?a.forEach(s=>o[s]=null):Uc(o,a),ws(t)&&r.set(t,o),o)}function py(t,e){return!t||!ly(e)?!1:(e=e.slice(2).replace(/Once$/,""),os(t,e[0].toLowerCase()+e.slice(1))||os(t,fg(e))||os(t,e))}function GU(t){const{type:e,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:l,emit:s,render:d,renderCache:c,props:u,data:h,setupState:f,ctx:g,inheritAttrs:A}=t,b=Hb(t);let p,y;try{if(n.shapeFlag&4){const F=i||r,R=F;p=Jf(d.call(R,F,c,u,f,h,g)),y=l}else{const F=e;p=Jf(F.length>1?F(u,{attrs:l,slots:o,emit:s}):F(u,null)),y=e.props?l:yG(l)}}catch(F){Gm.length=0,fy(F,t,1),p=Fn(gu)}let m=p;if(y&&A!==!1){const F=Object.keys(y),{shapeFlag:R}=m;F.length&&R&7&&(a&&F.some(W2)&&(y=FG(y,a)),m=lg(m,y,!1,!0))}return n.dirs&&(m=lg(m,null,!1,!0),m.dirs=m.dirs?m.dirs.concat(n.dirs):n.dirs),n.transition&&hA(m,n.transition),p=m,Hb(b),p}const yG=t=>{let e;for(const n in t)(n==="class"||n==="style"||ly(n))&&((e||(e={}))[n]=t[n]);return e},FG=(t,e)=>{const n={};for(const r in t)(!W2(r)||!(r.slice(9)in e))&&(n[r]=t[r]);return n};function QG(t,e,n){const{props:r,children:i,component:a}=t,{props:o,children:l,patchFlag:s}=e,d=a.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&s>=0){if(s&1024)return!0;if(s&16)return r?JU(r,o,d):!!o;if(s&8){const c=e.dynamicProps;for(let u=0;u<c.length;u++){const h=c[u];if(o[h]!==r[h]&&!py(d,h))return!0}}}else return(i||l)&&(!l||!l.$stable)?!0:r===o?!1:r?o?JU(r,o,d):!0:!!o;return!1}function JU(t,e,n){const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!0;for(let i=0;i<r.length;i++){const a=r[i];if(e[a]!==t[a]&&!py(n,a))return!0}return!1}function UG({vnode:t,parent:e},n){for(;e;){const r=e.subTree;if(r.suspense&&r.suspense.activeBranch===t&&(r.el=t.el),r===t)(t=e.vnode).el=n,e=e.parent;else break}}const cv=t=>t.__isSuspense;function RG(t,e){e&&e.pendingBranch?Na(t)?e.effects.push(...t):e.effects.push(t):JN(t)}const Er=Symbol.for("v-fgt"),D0=Symbol.for("v-txt"),gu=Symbol.for("v-cmt"),UF=Symbol.for("v-stc"),Gm=[];let Eu=null;function oe(t=!1){Gm.push(Eu=t?null:[])}function BG(){Gm.pop(),Eu=Gm[Gm.length-1]||null}let Km=1;function TU(t,e=!1){Km+=t,t<0&&Eu&&e&&(Eu.hasOnce=!0)}function uv(t){return t.dynamicChildren=Km>0?Eu||lp:null,BG(),Km>0&&Eu&&Eu.push(t),t}function Ce(t,e,n,r,i,a){return uv(Q(t,e,n,r,i,a,!0))}function Vn(t,e,n,r,i){return uv(Fn(t,e,n,r,i,!0))}function Pm(t){return t?t.__v_isVNode===!0:!1}function rA(t,e){return t.type===e.type&&t.key===e.key}const fv=({key:t})=>t??null,vb=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?Bd(t)||Md(t)||Vo(t)?{i:Fc,r:t,k:e,f:!!n}:t:null);function Q(t,e=null,n=null,r=0,i=null,a=t===Er?0:1,o=!1,l=!1){const s={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&fv(e),ref:e&&vb(e),scopeId:NC,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Fc};return l?(eQ(s,n),a&128&&t.normalize(s)):n&&(s.shapeFlag|=Bd(n)?8:16),Km>0&&!o&&Eu&&(s.patchFlag>0||a&6)&&s.patchFlag!==32&&Eu.push(s),s}const Fn=ZG;function ZG(t,e=null,n=null,r=0,i=null,a=!1){if((!t||t===KC)&&(t=gu),Pm(t)){const l=lg(t,e,!0);return n&&eQ(l,n),Km>0&&!a&&Eu&&(l.shapeFlag&6?Eu[Eu.indexOf(t)]=l:Eu.push(l)),l.patchFlag=-2,l}if(GG(t)&&(t=t.__vccOpts),e){e=Jm(e);let{class:l,style:s}=e;l&&!Bd(l)&&(e.class=Hr(l)),ws(s)&&(H2(s)&&!Na(s)&&(s=Uc({},s)),e.style=ja(s))}const o=Bd(t)?1:cv(t)?128:JC(t)?64:ws(t)?4:Vo(t)?2:0;return Q(t,e,n,r,i,o,a,!0)}function Jm(t){return t?H2(t)||ev(t)?Uc({},t):t:null}function lg(t,e,n=!1,r=!1){const{props:i,ref:a,patchFlag:o,children:l,transition:s}=t,d=e?Jt(i||{},e):i,c={__v_isVNode:!0,__v_skip:!0,type:t.type,props:d,key:d&&fv(d),ref:e&&e.ref?n&&a?Na(a)?a.concat(vb(e)):[a,vb(e)]:vb(e):a,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:l,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Er?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:s,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&lg(t.ssContent),ssFallback:t.ssFallback&&lg(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return s&&r&&hA(c,s.clone(c)),c}function Ni(t=" ",e=0){return Fn(D0,null,t,e)}function Pt(t="",e=!1){return e?(oe(),Vn(gu,null,t)):Fn(gu,null,t)}function Jf(t){return t==null||typeof t=="boolean"?Fn(gu):Na(t)?Fn(Er,null,t.slice()):Pm(t)?qh(t):Fn(D0,null,String(t))}function qh(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:lg(t)}function eQ(t,e){let n=0;const{shapeFlag:r}=t;if(e==null)e=null;else if(Na(e))n=16;else if(typeof e=="object")if(r&65){const i=e.default;i&&(i._c&&(i._d=!1),eQ(t,i()),i._c&&(i._d=!0));return}else{n=32;const i=e._;!i&&!ev(e)?e._ctx=Fc:i===3&&Fc&&(Fc.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else Vo(e)?(e={default:e,_ctx:Fc},n=32):(e=String(e),r&64?(n=16,e=[Ni(e)]):n=8);t.children=e,t.shapeFlag|=n}function Jt(...t){const e={};for(let n=0;n<t.length;n++){const r=t[n];for(const i in r)if(i==="class")e.class!==r.class&&(e.class=Hr([e.class,r.class]));else if(i==="style")e.style=ja([e.style,r.style]);else if(ly(i)){const a=e[i],o=r[i];o&&a!==o&&!(Na(a)&&a.includes(o))&&(e[i]=a?[].concat(a,o):o)}else i!==""&&(e[i]=r[i])}return e}function Ef(t,e,n,r=null){Af(t,e,7,[n,r])}const IG=_C();let CG=0;function vG(t,e,n){const r=t.type,i=(e?e.appContext:t.appContext)||IG,a={uid:CG++,vnode:t,type:r,parent:e,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new cC(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(i.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:nv(r,i),emitsOptions:dv(r,i),emit:null,emitted:null,propsDefaults:Xs,inheritAttrs:r.inheritAttrs,ctx:Xs,data:Xs,props:Xs,attrs:Xs,slots:Xs,refs:Xs,setupState:Xs,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=e?e.root:a,a.emit=bG.bind(null,a),t.ce&&t.ce(a),a}let vc=null;const sg=()=>vc||Fc;let Kb,Q1;{const t=cy(),e=(n,r)=>{let i;return(i=t[n])||(i=t[n]=[]),i.push(r),a=>{i.length>1?i.forEach(o=>o(a)):i[0](a)}};Kb=e("__VUE_INSTANCE_SETTERS__",n=>vc=n),Q1=e("__VUE_SSR_SETTERS__",n=>zm=n)}const M0=t=>{const e=vc;return Kb(t),t.scope.on(),()=>{t.scope.off(),Kb(e)}},XU=()=>{vc&&vc.scope.off(),Kb(null)};function hv(t){return t.vnode.shapeFlag&4}let zm=!1;function VG(t,e=!1,n=!1){e&&Q1(e);const{props:r,children:i}=t.vnode,a=hv(t);iG(t,r,a,e),sG(t,i,n);const o=a?EG(t,e):void 0;return e&&Q1(!1),o}function EG(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,zN);const{setup:r}=n;if(r){hg();const i=t.setupContext=r.length>1?WG(t):null,a=M0(t),o=Y0(r,t,0,[t.props,i]),l=rC(o);if(gg(),a(),(l||t.sp)&&!cp(t)&&LC(t),l){if(o.then(XU,XU),e)return o.then(s=>{kU(t,s)}).catch(s=>{fy(s,t,0)});t.asyncDep=o}else kU(t,o)}else gv(t)}function kU(t,e,n){Vo(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:ws(e)&&(t.setupState=vC(e)),gv(t)}function gv(t,e,n){const r=t.type;t.render||(t.render=r.render||Xf);{const i=M0(t);hg();try{jN(t)}finally{gg(),i()}}}const SG={get(t,e){return qc(t,"get",""),t[e]}};function WG(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,SG),slots:t.slots,emit:t.emit,expose:e}}function my(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(vC(x2(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in Nm)return Nm[n](t)},has(e,n){return n in e||n in Nm}})):t.proxy}function NG(t,e=!0){return Vo(t)?t.displayName||t.name:t.name||e&&t.__name}function GG(t){return Vo(t)&&"__vccOpts"in t}const qs=(t,e)=>EN(t,e,zm);function L0(t,e,n){const r=arguments.length;return r===2?ws(e)&&!Na(e)?Pm(e)?Fn(t,null,[e]):Fn(t,e):Fn(t,null,e):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Pm(n)&&(n=[n]),Fn(t,e,n))}const JG="3.5.13";/** * @vue/runtime-dom v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/let U1;const wU=typeof window<"u"&&window.trustedTypes;if(wU)try{U1=wU.createPolicy("vue",{createHTML:t=>t})}catch{}const Av=U1?t=>U1.createHTML(t):t=>t,TG="http://www.w3.org/2000/svg",XG="http://www.w3.org/1998/Math/MathML",lh=typeof document<"u"?document:null,YU=lh&&lh.createElement("template"),kG={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,r)=>{const i=e==="svg"?lh.createElementNS(TG,t):e==="mathml"?lh.createElementNS(XG,t):n?lh.createElement(t,{is:n}):lh.createElement(t);return t==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:t=>lh.createTextNode(t),createComment:t=>lh.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>lh.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,r,i,a){const o=n?n.previousSibling:e.lastChild;if(i&&(i===a||i.nextSibling))for(;e.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{YU.innerHTML=Av(r==="svg"?`<svg>${t}</svg>`:r==="mathml"?`<math>${t}</math>`:t);const l=YU.content;if(r==="svg"||r==="mathml"){const s=l.firstChild;for(;s.firstChild;)l.appendChild(s.firstChild);l.removeChild(s)}e.insertBefore(l,n)}return[o?o.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},Dh="transition",gm="animation",Ap=Symbol("_vtc"),pv={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},mv=Uc({},wC,pv),wG=t=>(t.displayName="Transition",t.props=mv,t),Cp=wG((t,{slots:e})=>L0(wN,bv(t),e)),zg=(t,e=[])=>{Na(t)?t.forEach(n=>n(...e)):t&&t(...e)},DU=t=>t?Na(t)?t.some(e=>e.length>1):t.length>1:!1;function bv(t){const e={};for(const E in t)E in pv||(e[E]=t[E]);if(t.css===!1)return e;const{name:n="v",type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:s=a,appearActiveClass:d=o,appearToClass:c=l,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:f=`${n}-leave-to`}=t,g=YG(i),A=g&&g[0],b=g&&g[1],{onBeforeEnter:p,onEnter:y,onEnterCancelled:m,onLeave:F,onLeaveCancelled:R,onBeforeAppear:C=p,onAppear:B=y,onAppearCancelled:N=m}=e,S=(E,v,j,H)=>{E._enterCancelled=H,Ph(E,v?c:l),Ph(E,v?d:o),j&&j()},X=(E,v)=>{E._isLeaving=!1,Ph(E,u),Ph(E,f),Ph(E,h),v&&v()},J=E=>(v,j)=>{const H=E?B:y,K=()=>S(v,E,j);zg(H,[v,K]),MU(()=>{Ph(v,E?s:a),Nf(v,E?c:l),DU(H)||LU(v,r,A,K)})};return Uc(e,{onBeforeEnter(E){zg(p,[E]),Nf(E,a),Nf(E,o)},onBeforeAppear(E){zg(C,[E]),Nf(E,s),Nf(E,d)},onEnter:J(!1),onAppear:J(!0),onLeave(E,v){E._isLeaving=!0;const j=()=>X(E,v);Nf(E,u),E._enterCancelled?(Nf(E,h),R1()):(R1(),Nf(E,h)),MU(()=>{E._isLeaving&&(Ph(E,u),Nf(E,f),DU(F)||LU(E,r,b,j))}),zg(F,[E,j])},onEnterCancelled(E){S(E,!1,void 0,!0),zg(m,[E])},onAppearCancelled(E){S(E,!0,void 0,!0),zg(N,[E])},onLeaveCancelled(E){X(E),zg(R,[E])}})}function YG(t){if(t==null)return null;if(ws(t))return[RF(t.enter),RF(t.leave)];{const e=RF(t);return[e,e]}}function RF(t){return j3(t)}function Nf(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t[Ap]||(t[Ap]=new Set)).add(e)}function Ph(t,e){e.split(/\s+/).forEach(r=>r&&t.classList.remove(r));const n=t[Ap];n&&(n.delete(e),n.size||(t[Ap]=void 0))}function MU(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let DG=0;function LU(t,e,n,r){const i=t._endId=++DG,a=()=>{i===t._endId&&r()};if(n!=null)return setTimeout(a,n);const{type:o,timeout:l,propCount:s}=yv(t,e);if(!o)return r();const d=o+"end";let c=0;const u=()=>{t.removeEventListener(d,h),a()},h=f=>{f.target===t&&++c>=s&&u()};setTimeout(()=>{c<s&&u()},l+1),t.addEventListener(d,h)}function yv(t,e){const n=window.getComputedStyle(t),r=g=>(n[g]||"").split(", "),i=r(`${Dh}Delay`),a=r(`${Dh}Duration`),o=HU(i,a),l=r(`${gm}Delay`),s=r(`${gm}Duration`),d=HU(l,s);let c=null,u=0,h=0;e===Dh?o>0&&(c=Dh,u=o,h=a.length):e===gm?d>0&&(c=gm,u=d,h=s.length):(u=Math.max(o,d),c=u>0?o>d?Dh:gm:null,h=c?c===Dh?a.length:s.length:0);const f=c===Dh&&/\b(transform|all)(,|$)/.test(r(`${Dh}Property`).toString());return{type:c,timeout:u,propCount:h,hasTransform:f}}function HU(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max(...e.map((n,r)=>xU(n)+xU(t[r])))}function xU(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function R1(){return document.body.offsetHeight}function MG(t,e,n){const r=t[Ap];r&&(e=(e?[e,...r]:[...r]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const Pb=Symbol("_vod"),Fv=Symbol("_vsh"),Tm={beforeMount(t,{value:e},{transition:n}){t[Pb]=t.style.display==="none"?"":t.style.display,n&&e?n.beforeEnter(t):Am(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:r}){!e!=!n&&(r?e?(r.beforeEnter(t),Am(t,!0),r.enter(t)):r.leave(t,()=>{Am(t,!1)}):Am(t,e))},beforeUnmount(t,{value:e}){Am(t,e)}};function Am(t,e){t.style.display=e?t[Pb]:"none",t[Fv]=!e}const LG=Symbol(""),HG=/(^|;)\s*display\s*:/;function xG(t,e,n){const r=t.style,i=Bd(n);let a=!1;if(n&&!i){if(e)if(Bd(e))for(const o of e.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Vb(r,l,"")}else for(const o in e)n[o]==null&&Vb(r,o,"");for(const o in n)o==="display"&&(a=!0),Vb(r,o,n[o])}else if(i){if(e!==n){const o=r[LG];o&&(n+=";"+o),r.cssText=n,a=HG.test(n)}}else e&&t.removeAttribute("style");Pb in t&&(t[Pb]=a?r.display:"",t[Fv]&&(r.display="none"))}const OU=/\s*!important$/;function Vb(t,e,n){if(Na(n))n.forEach(r=>Vb(t,e,r));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const r=OG(t,e);OU.test(n)?t.setProperty(fg(r),n.replace(OU,""),"important"):t[r]=n}}const KU=["Webkit","Moz","ms"],BF={};function OG(t,e){const n=BF[e];if(n)return n;let r=Ou(e);if(r!=="filter"&&r in t)return BF[e]=r;r=dy(r);for(let i=0;i<KU.length;i++){const a=KU[i]+r;if(a in t)return BF[e]=a}return e}const PU="http://www.w3.org/1999/xlink";function zU(t,e,n,r,i,a=nN(e)){r&&e.startsWith("xlink:")?n==null?t.removeAttributeNS(PU,e.slice(6,e.length)):t.setAttributeNS(PU,e,n):n==null||a&&!lC(n)?t.removeAttribute(e):t.setAttribute(e,a?"":gf(n)?String(n):n)}function jU(t,e,n,r,i){if(e==="innerHTML"||e==="textContent"){n!=null&&(t[e]=e==="innerHTML"?Av(n):n);return}const a=t.tagName;if(e==="value"&&a!=="PROGRESS"&&!a.includes("-")){const l=a==="OPTION"?t.getAttribute("value")||"":t.value,s=n==null?t.type==="checkbox"?"on":"":String(n);(l!==s||!("_value"in t))&&(t.value=s),n==null&&t.removeAttribute(e),t._value=n;return}let o=!1;if(n===""||n==null){const l=typeof t[e];l==="boolean"?n=lC(n):n==null&&l==="string"?(n="",o=!0):l==="number"&&(n=0,o=!0)}try{t[e]=n}catch{}o&&t.removeAttribute(i||e)}function fh(t,e,n,r){t.addEventListener(e,n,r)}function KG(t,e,n,r){t.removeEventListener(e,n,r)}const _U=Symbol("_vei");function PG(t,e,n,r,i=null){const a=t[_U]||(t[_U]={}),o=a[e];if(r&&o)o.value=r;else{const[l,s]=zG(e);if(r){const d=a[e]=$G(r,i);fh(t,l,d,s)}else o&&(KG(t,l,o,s),a[e]=void 0)}}const $U=/(?:Once|Passive|Capture)$/;function zG(t){let e;if($U.test(t)){e={};let r;for(;r=t.match($U);)t=t.slice(0,t.length-r[0].length),e[r[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):fg(t.slice(2)),e]}let ZF=0;const jG=Promise.resolve(),_G=()=>ZF||(jG.then(()=>ZF=0),ZF=Date.now());function $G(t,e){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Af(qG(r,n.value),e,5,[r])};return n.value=t,n.attached=_G(),n}function qG(t,e){if(Na(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(r=>i=>!i._stopped&&r&&r(i))}else return e}const qU=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,eJ=(t,e,n,r,i,a)=>{const o=i==="svg";e==="class"?MG(t,r,o):e==="style"?xG(t,n,r):ly(e)?W2(e)||PG(t,e,n,r,a):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):tJ(t,e,r,o))?(jU(t,e,r),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&zU(t,e,r,o,a,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!Bd(r))?jU(t,Ou(e),r,a,e):(e==="true-value"?t._trueValue=r:e==="false-value"&&(t._falseValue=r),zU(t,e,r,o))};function tJ(t,e,n,r){if(r)return!!(e==="innerHTML"||e==="textContent"||e in t&&qU(e)&&Vo(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const i=t.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return qU(e)&&Bd(n)?!1:e in t}const Qv=new WeakMap,Uv=new WeakMap,zb=Symbol("_moveCb"),eR=Symbol("_enterCb"),nJ=t=>(delete t.props.mode,t),rJ=nJ({name:"TransitionGroup",props:Uc({},mv,{tag:String,moveClass:String}),setup(t,{slots:e}){const n=sg(),r=kC();let i,a;return OC(()=>{if(!i.length)return;const o=t.moveClass||`${t.name||"v"}-move`;if(!sJ(i[0].el,n.vnode.el,o))return;i.forEach(aJ),i.forEach(oJ);const l=i.filter(lJ);R1(),l.forEach(s=>{const d=s.el,c=d.style;Nf(d,o),c.transform=c.webkitTransform=c.transitionDuration="";const u=d[zb]=h=>{h&&h.target!==d||(!h||/transform$/.test(h.propertyName))&&(d.removeEventListener("transitionend",u),d[zb]=null,Ph(d,o))};d.addEventListener("transitionend",u)})}),()=>{const o=Bl(t),l=bv(o);let s=o.tag||Er;if(i=[],a)for(let d=0;d<a.length;d++){const c=a[d];c.el&&c.el instanceof Element&&(i.push(c),hA(c,Om(c,l,r,n)),Qv.set(c,c.el.getBoundingClientRect()))}a=e.default?P2(e.default()):[];for(let d=0;d<a.length;d++){const c=a[d];c.key!=null&&hA(c,Om(c,l,r,n))}return Fn(s,null,a)}}}),iJ=rJ;function aJ(t){const e=t.el;e[zb]&&e[zb](),e[eR]&&e[eR]()}function oJ(t){Uv.set(t,t.el.getBoundingClientRect())}function lJ(t){const e=Qv.get(t),n=Uv.get(t),r=e.left-n.left,i=e.top-n.top;if(r||i){const a=t.el.style;return a.transform=a.webkitTransform=`translate(${r}px,${i}px)`,a.transitionDuration="0s",t}}function sJ(t,e,n){const r=t.cloneNode(),i=t[Ap];i&&i.forEach(l=>{l.split(/\s+/).forEach(s=>s&&r.classList.remove(s))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const a=e.nodeType===1?e:e.parentNode;a.appendChild(r);const{hasTransform:o}=yv(r);return a.removeChild(r),o}const dg=t=>{const e=t.props["onUpdate:modelValue"]||!1;return Na(e)?n=>Zb(e,n):e};function dJ(t){t.target.composing=!0}function tR(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const Hu=Symbol("_assign"),gi={created(t,{modifiers:{lazy:e,trim:n,number:r}},i){t[Hu]=dg(i);const a=r||i.props&&i.props.type==="number";fh(t,e?"change":"input",o=>{if(o.target.composing)return;let l=t.value;n&&(l=l.trim()),a&&(l=Yb(l)),t[Hu](l)}),n&&fh(t,"change",()=>{t.value=t.value.trim()}),e||(fh(t,"compositionstart",dJ),fh(t,"compositionend",tR),fh(t,"change",tR))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(t[Hu]=dg(o),t.composing)return;const l=(a||t.type==="number")&&!/^0\d/.test(t.value)?Yb(t.value):t.value,s=e??"";l!==s&&(document.activeElement===t&&t.type!=="range"&&(r&&e===n||i&&t.value.trim()===s)||(t.value=s))}},cJ={deep:!0,created(t,e,n){t[Hu]=dg(n),fh(t,"change",()=>{const r=t._modelValue,i=pp(t),a=t.checked,o=t[Hu];if(Na(r)){const l=J2(r,i),s=l!==-1;if(a&&!s)o(r.concat(i));else if(!a&&s){const d=[...r];d.splice(l,1),o(d)}}else if(Rp(r)){const l=new Set(r);a?l.add(i):l.delete(i),o(l)}else o(Rv(t,a))})},mounted:nR,beforeUpdate(t,e,n){t[Hu]=dg(n),nR(t,e,n)}};function nR(t,{value:e,oldValue:n},r){t._modelValue=e;let i;if(Na(e))i=J2(e,r.props.value)>-1;else if(Rp(e))i=e.has(r.props.value);else{if(e===n)return;i=uA(e,Rv(t,!0))}t.checked!==i&&(t.checked=i)}const up={created(t,{value:e},n){t.checked=uA(e,n.props.value),t[Hu]=dg(n),fh(t,"change",()=>{t[Hu](pp(t))})},beforeUpdate(t,{value:e,oldValue:n},r){t[Hu]=dg(r),e!==n&&(t.checked=uA(e,r.props.value))}},yh={deep:!0,created(t,{value:e,modifiers:{number:n}},r){const i=Rp(e);fh(t,"change",()=>{const a=Array.prototype.filter.call(t.options,o=>o.selected).map(o=>n?Yb(pp(o)):pp(o));t[Hu](t.multiple?i?new Set(a):a:a[0]),t._assigning=!0,Bp(()=>{t._assigning=!1})}),t[Hu]=dg(r)},mounted(t,{value:e}){rR(t,e)},beforeUpdate(t,e,n){t[Hu]=dg(n)},updated(t,{value:e}){t._assigning||rR(t,e)}};function rR(t,e){const n=t.multiple,r=Na(e);if(!(n&&!r&&!Rp(e))){for(let i=0,a=t.options.length;i<a;i++){const o=t.options[i],l=pp(o);if(n)if(r){const s=typeof l;s==="string"||s==="number"?o.selected=e.some(d=>String(d)===String(l)):o.selected=J2(e,l)>-1}else o.selected=e.has(l);else if(uA(pp(o),e)){t.selectedIndex!==i&&(t.selectedIndex=i);return}}!n&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function pp(t){return"_value"in t?t._value:t.value}function Rv(t,e){const n=e?"_trueValue":"_falseValue";return n in t?t[n]:e}const uJ=["ctrl","shift","alt","meta"],fJ={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>uJ.some(n=>t[`${n}Key`]&&!e.includes(n))},ud=(t,e)=>{const n=t._withMods||(t._withMods={}),r=e.join(".");return n[r]||(n[r]=(i,...a)=>{for(let o=0;o<e.length;o++){const l=fJ[e[o]];if(l&&l(i,e))return}return t(i,...a)})},hJ={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},dA=(t,e)=>{const n=t._withKeys||(t._withKeys={}),r=e.join(".");return n[r]||(n[r]=i=>{if(!("key"in i))return;const a=fg(i.key);if(e.some(o=>o===a||hJ[o]===a))return t(i)})},gJ=Uc({patchProp:eJ},kG);let iR;function AJ(){return iR||(iR=cG(gJ))}const B1=(...t)=>{const e=AJ().createApp(...t),{mount:n}=e;return e.mount=r=>{const i=mJ(r);if(!i)return;const a=e._component;!Vo(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const o=n(i,!1,pJ(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},e};function pJ(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function mJ(t){return Bd(t)?document.querySelector(t):t}const aR="/assets/notification-DpyBkEZh.mp3",oR="/assets/call-CjjATkFm.mp3";/*! * vue-router v4.5.0 * (c) 2024 Eduardo San Martin Morote * @license MIT */const ip=typeof document<"u";function Bv(t){return typeof t=="object"||"displayName"in t||"props"in t||"__vccOpts"in t}function bJ(t){return t.__esModule||t[Symbol.toStringTag]==="Module"||t.default&&Bv(t.default)}const as=Object.assign;function IF(t,e){const n={};for(const r in e){const i=e[r];n[r]=pf(i)?i.map(t):t(i)}return n}const Xm=()=>{},pf=Array.isArray,Zv=/#/g,yJ=/&/g,FJ=/\//g,QJ=/=/g,UJ=/\?/g,Iv=/\+/g,RJ=/%5B/g,BJ=/%5D/g,Cv=/%5E/g,ZJ=/%60/g,vv=/%7B/g,IJ=/%7C/g,Vv=/%7D/g,CJ=/%20/g;function tQ(t){return encodeURI(""+t).replace(IJ,"|").replace(RJ,"[").replace(BJ,"]")}function vJ(t){return tQ(t).replace(vv,"{").replace(Vv,"}").replace(Cv,"^")}function Z1(t){return tQ(t).replace(Iv,"%2B").replace(CJ,"+").replace(Zv,"%23").replace(yJ,"%26").replace(ZJ,"`").replace(vv,"{").replace(Vv,"}").replace(Cv,"^")}function VJ(t){return Z1(t).replace(QJ,"%3D")}function EJ(t){return tQ(t).replace(Zv,"%23").replace(UJ,"%3F")}function SJ(t){return t==null?"":EJ(t).replace(FJ,"%2F")}function jm(t){try{return decodeURIComponent(""+t)}catch{}return""+t}const WJ=/\/$/,NJ=t=>t.replace(WJ,"");function CF(t,e,n="/"){let r,i={},a="",o="";const l=e.indexOf("#");let s=e.indexOf("?");return l<s&&l>=0&&(s=-1),s>-1&&(r=e.slice(0,s),a=e.slice(s+1,l>-1?l:e.length),i=t(a)),l>-1&&(r=r||e.slice(0,l),o=e.slice(l,e.length)),r=XJ(r??e,n),{fullPath:r+(a&&"?")+a+o,path:r,query:i,hash:jm(o)}}function GJ(t,e){const n=e.query?t(e.query):"";return e.path+(n&&"?")+n+(e.hash||"")}function lR(t,e){return!e||!t.toLowerCase().startsWith(e.toLowerCase())?t:t.slice(e.length)||"/"}function JJ(t,e,n){const r=e.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&mp(e.matched[r],n.matched[i])&&Ev(e.params,n.params)&&t(e.query)===t(n.query)&&e.hash===n.hash}function mp(t,e){return(t.aliasOf||t)===(e.aliasOf||e)}function Ev(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const n in t)if(!TJ(t[n],e[n]))return!1;return!0}function TJ(t,e){return pf(t)?sR(t,e):pf(e)?sR(e,t):t===e}function sR(t,e){return pf(e)?t.length===e.length&&t.every((n,r)=>n===e[r]):t.length===1&&t[0]===e}function XJ(t,e){if(t.startsWith("/"))return t;if(!t)return e;const n=e.split("/"),r=t.split("/"),i=r[r.length-1];(i===".."||i===".")&&r.push("");let a=n.length-1,o,l;for(o=0;o<r.length;o++)if(l=r[o],l!==".")if(l==="..")a>1&&a--;else break;return n.slice(0,a).join("/")+"/"+r.slice(o).join("/")}const Mh={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var _m;(function(t){t.pop="pop",t.push="push"})(_m||(_m={}));var km;(function(t){t.back="back",t.forward="forward",t.unknown=""})(km||(km={}));function kJ(t){if(!t)if(ip){const e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^\w+:\/\/[^\/]+/,"")}else t="/";return t[0]!=="/"&&t[0]!=="#"&&(t="/"+t),NJ(t)}const wJ=/^[^#]+#/;function YJ(t,e){return t.replace(wJ,"#")+e}function DJ(t,e){const n=document.documentElement.getBoundingClientRect(),r=t.getBoundingClientRect();return{behavior:e.behavior,left:r.left-n.left-(e.left||0),top:r.top-n.top-(e.top||0)}}const by=()=>({left:window.scrollX,top:window.scrollY});function MJ(t){let e;if("el"in t){const n=t.el,r=typeof n=="string"&&n.startsWith("#"),i=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;e=DJ(i,t)}else e=t;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function dR(t,e){return(history.state?history.state.position-e:-1)+t}const I1=new Map;function LJ(t,e){I1.set(t,e)}function HJ(t){const e=I1.get(t);return I1.delete(t),e}let xJ=()=>location.protocol+"//"+location.host;function Sv(t,e){const{pathname:n,search:r,hash:i}=e,a=t.indexOf("#");if(a>-1){let l=i.includes(t.slice(a))?t.slice(a).length:1,s=i.slice(l);return s[0]!=="/"&&(s="/"+s),lR(s,"")}return lR(n,t)+r+i}function OJ(t,e,n,r){let i=[],a=[],o=null;const l=({state:h})=>{const f=Sv(t,location),g=n.value,A=e.value;let b=0;if(h){if(n.value=f,e.value=h,o&&o===g){o=null;return}b=A?h.position-A.position:0}else r(f);i.forEach(p=>{p(n.value,g,{delta:b,type:_m.pop,direction:b?b>0?km.forward:km.back:km.unknown})})};function s(){o=n.value}function d(h){i.push(h);const f=()=>{const g=i.indexOf(h);g>-1&&i.splice(g,1)};return a.push(f),f}function c(){const{history:h}=window;h.state&&h.replaceState(as({},h.state,{scroll:by()}),"")}function u(){for(const h of a)h();a=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:s,listen:d,destroy:u}}function cR(t,e,n,r=!1,i=!1){return{back:t,current:e,forward:n,replaced:r,position:window.history.length,scroll:i?by():null}}function KJ(t){const{history:e,location:n}=window,r={value:Sv(t,n)},i={value:e.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function a(s,d,c){const u=t.indexOf("#"),h=u>-1?(n.host&&document.querySelector("base")?t:t.slice(u))+s:xJ()+t+s;try{e[c?"replaceState":"pushState"](d,"",h),i.value=d}catch(f){console.error(f),n[c?"replace":"assign"](h)}}function o(s,d){const c=as({},e.state,cR(i.value.back,s,i.value.forward,!0),d,{position:i.value.position});a(s,c,!0),r.value=s}function l(s,d){const c=as({},i.value,e.state,{forward:s,scroll:by()});a(c.current,c,!0);const u=as({},cR(r.value,s,null),{position:c.position+1},d);a(s,u,!1),r.value=s}return{location:r,state:i,push:l,replace:o}}function PJ(t){t=kJ(t);const e=KJ(t),n=OJ(t,e.state,e.location,e.replace);function r(a,o=!0){o||n.pauseListeners(),history.go(a)}const i=as({location:"",base:t,go:r,createHref:YJ.bind(null,t)},e,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>e.state.value}),i}function zJ(t){return typeof t=="string"||t&&typeof t=="object"}function Wv(t){return typeof t=="string"||typeof t=="symbol"}const Nv=Symbol("");var uR;(function(t){t[t.aborted=4]="aborted",t[t.cancelled=8]="cancelled",t[t.duplicated=16]="duplicated"})(uR||(uR={}));function bp(t,e){return as(new Error,{type:t,[Nv]:!0},e)}function ih(t,e){return t instanceof Error&&Nv in t&&(e==null||!!(t.type&e))}const fR="[^/]+?",jJ={sensitive:!1,strict:!1,start:!0,end:!0},_J=/[.+*?^${}()[\]/\\]/g;function $J(t,e){const n=as({},jJ,e),r=[];let i=n.start?"^":"";const a=[];for(const d of t){const c=d.length?[]:[90];n.strict&&!d.length&&(i+="/");for(let u=0;u<d.length;u++){const h=d[u];let f=40+(n.sensitive?.25:0);if(h.type===0)u||(i+="/"),i+=h.value.replace(_J,"\\$&"),f+=40;else if(h.type===1){const{value:g,repeatable:A,optional:b,regexp:p}=h;a.push({name:g,repeatable:A,optional:b});const y=p||fR;if(y!==fR){f+=10;try{new RegExp(`(${y})`)}catch(F){throw new Error(`Invalid custom RegExp for param "${g}" (${y}): `+F.message)}}let m=A?`((?:${y})(?:/(?:${y}))*)`:`(${y})`;u||(m=b&&d.length<2?`(?:/${m})`:"/"+m),b&&(m+="?"),i+=m,f+=20,b&&(f+=-8),A&&(f+=-20),y===".*"&&(f+=-50)}c.push(f)}r.push(c)}if(n.strict&&n.end){const d=r.length-1;r[d][r[d].length-1]+=.7000000000000001}n.strict||(i+="/?"),n.end?i+="$":n.strict&&!i.endsWith("/")&&(i+="(?:/|$)");const o=new RegExp(i,n.sensitive?"":"i");function l(d){const c=d.match(o),u={};if(!c)return null;for(let h=1;h<c.length;h++){const f=c[h]||"",g=a[h-1];u[g.name]=f&&g.repeatable?f.split("/"):f}return u}function s(d){let c="",u=!1;for(const h of t){(!u||!c.endsWith("/"))&&(c+="/"),u=!1;for(const f of h)if(f.type===0)c+=f.value;else if(f.type===1){const{value:g,repeatable:A,optional:b}=f,p=g in d?d[g]:"";if(pf(p)&&!A)throw new Error(`Provided param "${g}" is an array but it is not repeatable (* or + modifiers)`);const y=pf(p)?p.join("/"):p;if(!y)if(b)h.length<2&&(c.endsWith("/")?c=c.slice(0,-1):u=!0);else throw new Error(`Missing required param "${g}"`);c+=y}}return c||"/"}return{re:o,score:r,keys:a,parse:l,stringify:s}}function qJ(t,e){let n=0;for(;n<t.length&&n<e.length;){const r=e[n]-t[n];if(r)return r;n++}return t.length<e.length?t.length===1&&t[0]===80?-1:1:t.length>e.length?e.length===1&&e[0]===80?1:-1:0}function Gv(t,e){let n=0;const r=t.score,i=e.score;for(;n<r.length&&n<i.length;){const a=qJ(r[n],i[n]);if(a)return a;n++}if(Math.abs(i.length-r.length)===1){if(hR(r))return 1;if(hR(i))return-1}return i.length-r.length}function hR(t){const e=t[t.length-1];return t.length>0&&e[e.length-1]<0}const e5={type:0,value:""},t5=/[a-zA-Z0-9_]/;function n5(t){if(!t)return[[]];if(t==="/")return[[e5]];if(!t.startsWith("/"))throw new Error(`Invalid path "${t}"`);function e(f){throw new Error(`ERR (${n})/"${d}": ${f}`)}let n=0,r=n;const i=[];let a;function o(){a&&i.push(a),a=[]}let l=0,s,d="",c="";function u(){d&&(n===0?a.push({type:0,value:d}):n===1||n===2||n===3?(a.length>1&&(s==="*"||s==="+")&&e(`A repeatable param (${d}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:d,regexp:c,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):e("Invalid state to consume buffer"),d="")}function h(){d+=s}for(;l<t.length;){if(s=t[l++],s==="\\"&&n!==2){r=n,n=4;continue}switch(n){case 0:s==="/"?(d&&u(),o()):s===":"?(u(),n=1):h();break;case 4:h(),n=r;break;case 1:s==="("?n=2:t5.test(s)?h():(u(),n=0,s!=="*"&&s!=="?"&&s!=="+"&&l--);break;case 2:s===")"?c[c.length-1]=="\\"?c=c.slice(0,-1)+s:n=3:c+=s;break;case 3:u(),n=0,s!=="*"&&s!=="?"&&s!=="+"&&l--,c="";break;default:e("Unknown state");break}}return n===2&&e(`Unfinished custom RegExp for param "${d}"`),u(),o(),i}function r5(t,e,n){const r=$J(n5(t.path),n),i=as(r,{record:t,parent:e,children:[],alias:[]});return e&&!i.record.aliasOf==!e.record.aliasOf&&e.children.push(i),i}function i5(t,e){const n=[],r=new Map;e=mR({strict:!1,end:!0,sensitive:!1},e);function i(u){return r.get(u)}function a(u,h,f){const g=!f,A=AR(u);A.aliasOf=f&&f.record;const b=mR(e,u),p=[A];if("alias"in u){const F=typeof u.alias=="string"?[u.alias]:u.alias;for(const R of F)p.push(AR(as({},A,{components:f?f.record.components:A.components,path:R,aliasOf:f?f.record:A})))}let y,m;for(const F of p){const{path:R}=F;if(h&&R[0]!=="/"){const C=h.record.path,B=C[C.length-1]==="/"?"":"/";F.path=h.record.path+(R&&B+R)}if(y=r5(F,h,b),f?f.alias.push(y):(m=m||y,m!==y&&m.alias.push(y),g&&u.name&&!pR(y)&&o(u.name)),Jv(y)&&s(y),A.children){const C=A.children;for(let B=0;B<C.length;B++)a(C[B],y,f&&f.children[B])}f=f||y}return m?()=>{o(m)}:Xm}function o(u){if(Wv(u)){const h=r.get(u);h&&(r.delete(u),n.splice(n.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=n.indexOf(u);h>-1&&(n.splice(h,1),u.record.name&&r.delete(u.record.name),u.children.forEach(o),u.alias.forEach(o))}}function l(){return n}function s(u){const h=l5(u,n);n.splice(h,0,u),u.record.name&&!pR(u)&&r.set(u.record.name,u)}function d(u,h){let f,g={},A,b;if("name"in u&&u.name){if(f=r.get(u.name),!f)throw bp(1,{location:u});b=f.record.name,g=as(gR(h.params,f.keys.filter(m=>!m.optional).concat(f.parent?f.parent.keys.filter(m=>m.optional):[]).map(m=>m.name)),u.params&&gR(u.params,f.keys.map(m=>m.name))),A=f.stringify(g)}else if(u.path!=null)A=u.path,f=n.find(m=>m.re.test(A)),f&&(g=f.parse(A),b=f.record.name);else{if(f=h.name?r.get(h.name):n.find(m=>m.re.test(h.path)),!f)throw bp(1,{location:u,currentLocation:h});b=f.record.name,g=as({},h.params,u.params),A=f.stringify(g)}const p=[];let y=f;for(;y;)p.unshift(y.record),y=y.parent;return{name:b,path:A,params:g,matched:p,meta:o5(p)}}t.forEach(u=>a(u));function c(){n.length=0,r.clear()}return{addRoute:a,resolve:d,removeRoute:o,clearRoutes:c,getRoutes:l,getRecordMatcher:i}}function gR(t,e){const n={};for(const r of e)r in t&&(n[r]=t[r]);return n}function AR(t){const e={path:t.path,redirect:t.redirect,name:t.name,meta:t.meta||{},aliasOf:t.aliasOf,beforeEnter:t.beforeEnter,props:a5(t),children:t.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in t?t.components||null:t.component&&{default:t.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function a5(t){const e={},n=t.props||!1;if("component"in t)e.default=n;else for(const r in t.components)e[r]=typeof n=="object"?n[r]:n;return e}function pR(t){for(;t;){if(t.record.aliasOf)return!0;t=t.parent}return!1}function o5(t){return t.reduce((e,n)=>as(e,n.meta),{})}function mR(t,e){const n={};for(const r in t)n[r]=r in e?e[r]:t[r];return n}function l5(t,e){let n=0,r=e.length;for(;n!==r;){const a=n+r>>1;Gv(t,e[a])<0?r=a:n=a+1}const i=s5(t);return i&&(r=e.lastIndexOf(i,r-1)),r}function s5(t){let e=t;for(;e=e.parent;)if(Jv(e)&&Gv(t,e)===0)return e}function Jv({record:t}){return!!(t.name||t.components&&Object.keys(t.components).length||t.redirect)}function d5(t){const e={};if(t===""||t==="?")return e;const r=(t[0]==="?"?t.slice(1):t).split("&");for(let i=0;i<r.length;++i){const a=r[i].replace(Iv," "),o=a.indexOf("="),l=jm(o<0?a:a.slice(0,o)),s=o<0?null:jm(a.slice(o+1));if(l in e){let d=e[l];pf(d)||(d=e[l]=[d]),d.push(s)}else e[l]=s}return e}function bR(t){let e="";for(let n in t){const r=t[n];if(n=VJ(n),r==null){r!==void 0&&(e+=(e.length?"&":"")+n);continue}(pf(r)?r.map(a=>a&&Z1(a)):[r&&Z1(r)]).forEach(a=>{a!==void 0&&(e+=(e.length?"&":"")+n,a!=null&&(e+="="+a))})}return e}function c5(t){const e={};for(const n in t){const r=t[n];r!==void 0&&(e[n]=pf(r)?r.map(i=>i==null?null:""+i):r==null?r:""+r)}return e}const u5=Symbol(""),yR=Symbol(""),yy=Symbol(""),nQ=Symbol(""),C1=Symbol("");function pm(){let t=[];function e(r){return t.push(r),()=>{const i=t.indexOf(r);i>-1&&t.splice(i,1)}}function n(){t=[]}return{add:e,list:()=>t.slice(),reset:n}}function eg(t,e,n,r,i,a=o=>o()){const o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((l,s)=>{const d=h=>{h===!1?s(bp(4,{from:n,to:e})):h instanceof Error?s(h):zJ(h)?s(bp(2,{from:e,to:h})):(o&&r.enterCallbacks[i]===o&&typeof h=="function"&&o.push(h),l())},c=a(()=>t.call(r&&r.instances[i],e,n,d));let u=Promise.resolve(c);t.length<3&&(u=u.then(d)),u.catch(h=>s(h))})}function vF(t,e,n,r,i=a=>a()){const a=[];for(const o of t)for(const l in o.components){let s=o.components[l];if(!(e!=="beforeRouteEnter"&&!o.instances[l]))if(Bv(s)){const c=(s.__vccOpts||s)[e];c&&a.push(eg(c,n,r,o,l,i))}else{let d=s();a.push(()=>d.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const u=bJ(c)?c.default:c;o.mods[l]=c,o.components[l]=u;const f=(u.__vccOpts||u)[e];return f&&eg(f,n,r,o,l,i)()}))}}return a}function FR(t){const e=Su(yy),n=Su(nQ),r=qs(()=>{const s=ct(t.to);return e.resolve(s)}),i=qs(()=>{const{matched:s}=r.value,{length:d}=s,c=s[d-1],u=n.matched;if(!c||!u.length)return-1;const h=u.findIndex(mp.bind(null,c));if(h>-1)return h;const f=QR(s[d-2]);return d>1&&QR(c)===f&&u[u.length-1].path!==f?u.findIndex(mp.bind(null,s[d-2])):h}),a=qs(()=>i.value>-1&&A5(n.params,r.value.params)),o=qs(()=>i.value>-1&&i.value===n.matched.length-1&&Ev(n.params,r.value.params));function l(s={}){if(g5(s)){const d=e[ct(t.replace)?"replace":"push"](ct(t.to)).catch(Xm);return t.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>d),d}return Promise.resolve()}return{route:r,href:qs(()=>r.value.href),isActive:a,isExactActive:o,navigate:l}}function f5(t){return t.length===1?t[0]:t}const h5=Zp({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:FR,setup(t,{slots:e}){const n=yA(FR(t)),{options:r}=Su(yy),i=qs(()=>({[UR(t.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[UR(t.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const a=e.default&&f5(e.default(n));return t.custom?a:L0("a",{"aria-current":n.isExactActive?t.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},a)}}}),Ts=h5;function g5(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&!(t.button!==void 0&&t.button!==0)){if(t.currentTarget&&t.currentTarget.getAttribute){const e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function A5(t,e){for(const n in e){const r=e[n],i=t[n];if(typeof r=="string"){if(r!==i)return!1}else if(!pf(i)||i.length!==r.length||r.some((a,o)=>a!==i[o]))return!1}return!0}function QR(t){return t?t.aliasOf?t.aliasOf.path:t.path:""}const UR=(t,e,n)=>t??e??n,p5=Zp({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(t,{attrs:e,slots:n}){const r=Su(C1),i=qs(()=>t.route||r.value),a=Su(yR,0),o=qs(()=>{let d=ct(a);const{matched:c}=i.value;let u;for(;(u=c[d])&&!u.components;)d++;return d}),l=qs(()=>i.value.matched[o.value]);Cb(yR,qs(()=>o.value+1)),Cb(u5,l),Cb(C1,i);const s=hn();return yi(()=>[s.value,l.value,t.name],([d,c,u],[h,f,g])=>{c&&(c.instances[u]=d,f&&f!==c&&d&&d===h&&(c.leaveGuards.size||(c.leaveGuards=f.leaveGuards),c.updateGuards.size||(c.updateGuards=f.updateGuards))),d&&c&&(!f||!mp(c,f)||!h)&&(c.enterCallbacks[u]||[]).forEach(A=>A(d))},{flush:"post"}),()=>{const d=i.value,c=t.name,u=l.value,h=u&&u.components[c];if(!h)return RR(n.default,{Component:h,route:d});const f=u.props[c],g=f?f===!0?d.params:typeof f=="function"?f(d):f:null,b=L0(h,as({},g,e,{onVnodeUnmounted:p=>{p.component.isUnmounted&&(u.instances[c]=null)},ref:s}));return RR(n.default,{Component:b,route:d})||b}}});function RR(t,e){if(!t)return null;const n=t(e);return n.length===1?n[0]:n}const vp=p5;function m5(t){const e=i5(t.routes,t),n=t.parseQuery||d5,r=t.stringifyQuery||bR,i=t.history,a=pm(),o=pm(),l=pm(),s=O2(Mh);let d=Mh;ip&&t.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=IF.bind(null,Be=>""+Be),u=IF.bind(null,SJ),h=IF.bind(null,jm);function f(Be,qe){let at,Bt;return Wv(Be)?(at=e.getRecordMatcher(Be),Bt=qe):Bt=Be,e.addRoute(Bt,at)}function g(Be){const qe=e.getRecordMatcher(Be);qe&&e.removeRoute(qe)}function A(){return e.getRoutes().map(Be=>Be.record)}function b(Be){return!!e.getRecordMatcher(Be)}function p(Be,qe){if(qe=as({},qe||s.value),typeof Be=="string"){const ve=CF(n,Be,qe.path),Ye=e.resolve({path:ve.path},qe),it=i.createHref(ve.fullPath);return as(ve,Ye,{params:h(Ye.params),hash:jm(ve.hash),redirectedFrom:void 0,href:it})}let at;if(Be.path!=null)at=as({},Be,{path:CF(n,Be.path,qe.path).path});else{const ve=as({},Be.params);for(const Ye in ve)ve[Ye]==null&&delete ve[Ye];at=as({},Be,{params:u(ve)}),qe.params=u(qe.params)}const Bt=e.resolve(at,qe),jt=Be.hash||"";Bt.params=c(h(Bt.params));const Ne=GJ(r,as({},Be,{hash:vJ(jt),path:Bt.path})),Je=i.createHref(Ne);return as({fullPath:Ne,hash:jt,query:r===bR?c5(Be.query):Be.query||{}},Bt,{redirectedFrom:void 0,href:Je})}function y(Be){return typeof Be=="string"?CF(n,Be,s.value.path):as({},Be)}function m(Be,qe){if(d!==Be)return bp(8,{from:qe,to:Be})}function F(Be){return B(Be)}function R(Be){return F(as(y(Be),{replace:!0}))}function C(Be){const qe=Be.matched[Be.matched.length-1];if(qe&&qe.redirect){const{redirect:at}=qe;let Bt=typeof at=="function"?at(Be):at;return typeof Bt=="string"&&(Bt=Bt.includes("?")||Bt.includes("#")?Bt=y(Bt):{path:Bt},Bt.params={}),as({query:Be.query,hash:Be.hash,params:Bt.path!=null?{}:Be.params},Bt)}}function B(Be,qe){const at=d=p(Be),Bt=s.value,jt=Be.state,Ne=Be.force,Je=Be.replace===!0,ve=C(at);if(ve)return B(as(y(ve),{state:typeof ve=="object"?as({},jt,ve.state):jt,force:Ne,replace:Je}),qe||at);const Ye=at;Ye.redirectedFrom=qe;let it;return!Ne&&JJ(r,Bt,at)&&(it=bp(16,{to:Ye,from:Bt}),Ke(Bt,Bt,!0,!1)),(it?Promise.resolve(it):X(Ye,Bt)).catch(Qt=>ih(Qt)?ih(Qt,2)?Qt:Ae(Qt):z(Qt,Ye,Bt)).then(Qt=>{if(Qt){if(ih(Qt,2))return B(as({replace:Je},y(Qt.to),{state:typeof Qt.to=="object"?as({},jt,Qt.to.state):jt,force:Ne}),qe||Ye)}else Qt=E(Ye,Bt,!0,Je,jt);return J(Ye,Bt,Qt),Qt})}function N(Be,qe){const at=m(Be,qe);return at?Promise.reject(at):Promise.resolve()}function S(Be){const qe=xe.values().next().value;return qe&&typeof qe.runWithContext=="function"?qe.runWithContext(Be):Be()}function X(Be,qe){let at;const[Bt,jt,Ne]=b5(Be,qe);at=vF(Bt.reverse(),"beforeRouteLeave",Be,qe);for(const ve of Bt)ve.leaveGuards.forEach(Ye=>{at.push(eg(Ye,Be,qe))});const Je=N.bind(null,Be,qe);return at.push(Je),Rt(at).then(()=>{at=[];for(const ve of a.list())at.push(eg(ve,Be,qe));return at.push(Je),Rt(at)}).then(()=>{at=vF(jt,"beforeRouteUpdate",Be,qe);for(const ve of jt)ve.updateGuards.forEach(Ye=>{at.push(eg(Ye,Be,qe))});return at.push(Je),Rt(at)}).then(()=>{at=[];for(const ve of Ne)if(ve.beforeEnter)if(pf(ve.beforeEnter))for(const Ye of ve.beforeEnter)at.push(eg(Ye,Be,qe));else at.push(eg(ve.beforeEnter,Be,qe));return at.push(Je),Rt(at)}).then(()=>(Be.matched.forEach(ve=>ve.enterCallbacks={}),at=vF(Ne,"beforeRouteEnter",Be,qe,S),at.push(Je),Rt(at))).then(()=>{at=[];for(const ve of o.list())at.push(eg(ve,Be,qe));return at.push(Je),Rt(at)}).catch(ve=>ih(ve,8)?ve:Promise.reject(ve))}function J(Be,qe,at){l.list().forEach(Bt=>S(()=>Bt(Be,qe,at)))}function E(Be,qe,at,Bt,jt){const Ne=m(Be,qe);if(Ne)return Ne;const Je=qe===Mh,ve=ip?history.state:{};at&&(Bt||Je?i.replace(Be.fullPath,as({scroll:Je&&ve&&ve.scroll},jt)):i.push(Be.fullPath,jt)),s.value=Be,Ke(Be,qe,at,Je),Ae()}let v;function j(){v||(v=i.listen((Be,qe,at)=>{if(!$e.listening)return;const Bt=p(Be),jt=C(Bt);if(jt){B(as(jt,{replace:!0,force:!0}),Bt).catch(Xm);return}d=Bt;const Ne=s.value;ip&&LJ(dR(Ne.fullPath,at.delta),by()),X(Bt,Ne).catch(Je=>ih(Je,12)?Je:ih(Je,2)?(B(as(y(Je.to),{force:!0}),Bt).then(ve=>{ih(ve,20)&&!at.delta&&at.type===_m.pop&&i.go(-1,!1)}).catch(Xm),Promise.reject()):(at.delta&&i.go(-at.delta,!1),z(Je,Bt,Ne))).then(Je=>{Je=Je||E(Bt,Ne,!1),Je&&(at.delta&&!ih(Je,8)?i.go(-at.delta,!1):at.type===_m.pop&&ih(Je,20)&&i.go(-1,!1)),J(Bt,Ne,Je)}).catch(Xm)}))}let H=pm(),K=pm(),Fe;function z(Be,qe,at){Ae(Be);const Bt=K.list();return Bt.length?Bt.forEach(jt=>jt(Be,qe,at)):console.error(Be),Promise.reject(Be)}function q(){return Fe&&s.value!==Mh?Promise.resolve():new Promise((Be,qe)=>{H.add([Be,qe])})}function Ae(Be){return Fe||(Fe=!Be,j(),H.list().forEach(([qe,at])=>Be?at(Be):qe()),H.reset()),Be}function Ke(Be,qe,at,Bt){const{scrollBehavior:jt}=t;if(!ip||!jt)return Promise.resolve();const Ne=!at&&HJ(dR(Be.fullPath,0))||(Bt||!at)&&history.state&&history.state.scroll||null;return Bp().then(()=>jt(Be,qe,Ne)).then(Je=>Je&&MJ(Je)).catch(Je=>z(Je,Be,qe))}const pe=Be=>i.go(Be);let We;const xe=new Set,$e={currentRoute:s,listening:!0,addRoute:f,removeRoute:g,clearRoutes:e.clearRoutes,hasRoute:b,getRoutes:A,resolve:p,options:t,push:F,replace:R,go:pe,back:()=>pe(-1),forward:()=>pe(1),beforeEach:a.add,beforeResolve:o.add,afterEach:l.add,onError:K.add,isReady:q,install(Be){const qe=this;Be.component("RouterLink",Ts),Be.component("RouterView",vp),Be.config.globalProperties.$router=qe,Object.defineProperty(Be.config.globalProperties,"$route",{enumerable:!0,get:()=>ct(s)}),ip&&!We&&s.value===Mh&&(We=!0,F(i.location).catch(jt=>{}));const at={};for(const jt in Mh)Object.defineProperty(at,jt,{get:()=>s.value[jt],enumerable:!0});Be.provide(yy,qe),Be.provide(nQ,IC(at)),Be.provide(C1,s);const Bt=Be.unmount;xe.add(Be),Be.unmount=function(){xe.delete(Be),xe.size<1&&(d=Mh,v&&v(),v=null,s.value=Mh,We=!1,Fe=!1),Bt()}}};function Rt(Be){return Be.reduce((qe,at)=>qe.then(()=>S(at)),Promise.resolve())}return $e}function b5(t,e){const n=[],r=[],i=[],a=Math.max(e.matched.length,t.matched.length);for(let o=0;o<a;o++){const l=e.matched[o];l&&(t.matched.find(d=>mp(d,l))?r.push(l):n.push(l));const s=t.matched[o];s&&(e.matched.find(d=>mp(d,s))||i.push(s))}return[n,r,i]}function Ag(){return Su(yy)}function dc(t){return Su(nQ)}var BR={};/** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const Tv=function(t){const e=[];let n=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=i&63|128):(i&64512)===55296&&r+1<t.length&&(t.charCodeAt(r+1)&64512)===56320?(i=65536+((i&1023)<<10)+(t.charCodeAt(++r)&1023),e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=i&63|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=i&63|128)}return e},y5=function(t){const e=[];let n=0,r=0;for(;n<t.length;){const i=t[n++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){const a=t[n++];e[r++]=String.fromCharCode((i&31)<<6|a&63)}else if(i>239&&i<365){const a=t[n++],o=t[n++],l=t[n++],s=((i&7)<<18|(a&63)<<12|(o&63)<<6|l&63)-65536;e[r++]=String.fromCharCode(55296+(s>>10)),e[r++]=String.fromCharCode(56320+(s&1023))}else{const a=t[n++],o=t[n++];e[r++]=String.fromCharCode((i&15)<<12|(a&63)<<6|o&63)}}return e.join("")},Xv={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:typeof atob=="function",encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i<t.length;i+=3){const a=t[i],o=i+1<t.length,l=o?t[i+1]:0,s=i+2<t.length,d=s?t[i+2]:0,c=a>>2,u=(a&3)<<4|l>>4;let h=(l&15)<<2|d>>6,f=d&63;s||(f=64,o||(h=64)),r.push(n[c],n[u],n[h],n[f])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(Tv(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):y5(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i<t.length;){const a=n[t.charAt(i++)],l=i<t.length?n[t.charAt(i)]:0;++i;const d=i<t.length?n[t.charAt(i)]:64;++i;const u=i<t.length?n[t.charAt(i)]:64;if(++i,a==null||l==null||d==null||u==null)throw new F5;const h=a<<2|l>>4;if(r.push(h),d!==64){const f=l<<4&240|d>>2;if(r.push(f),u!==64){const g=d<<6&192|u;r.push(g)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};class F5 extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const Q5=function(t){const e=Tv(t);return Xv.encodeByteArray(e,!0)},kv=function(t){return Q5(t).replace(/\./g,"")},U5=function(t){try{return Xv.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};/** * @license * Copyright 2022 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function R5(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}/** * @license * Copyright 2022 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const B5=()=>R5().__FIREBASE_DEFAULTS__,Z5=()=>{if(typeof process>"u"||typeof BR>"u")return;const t=BR.__FIREBASE_DEFAULTS__;if(t)return JSON.parse(t)},I5=()=>{if(typeof document>"u")return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}const e=t&&U5(t[1]);return e&&JSON.parse(e)},C5=()=>{try{return B5()||Z5()||I5()}catch(t){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`);return}},wv=()=>{var t;return(t=C5())===null||t===void 0?void 0:t.config};/** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */class v5{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}wrapCallback(e){return(n,r)=>{n?this.reject(n):this.resolve(r),typeof e=="function"&&(this.promise.catch(()=>{}),e.length===1?e(n):e(n,r))}}}function Yv(){try{return typeof indexedDB=="object"}catch{return!1}}function Dv(){return new Promise((t,e)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{var a;e(((a=i.error)===null||a===void 0?void 0:a.message)||"")}}catch(n){e(n)}})}function V5(){return!(typeof navigator>"u"||!navigator.cookieEnabled)}/** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const E5="FirebaseError";class Vp extends Error{constructor(e,n,r){super(n),this.code=e,this.customData=r,this.name=E5,Object.setPrototypeOf(this,Vp.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,Fy.prototype.create)}}class Fy{constructor(e,n,r){this.service=e,this.serviceName=n,this.errors=r}create(e,...n){const r=n[0]||{},i=`${this.service}/${e}`,a=this.errors[e],o=a?S5(a,r):"Error",l=`${this.serviceName}: ${o} (${i}).`;return new Vp(i,l,r)}}function S5(t,e){return t.replace(W5,(n,r)=>{const i=e[r];return i!=null?String(i):`<${r}?>`})}const W5=/\{\$([^}]+)}/g;function v1(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const i of n){if(!r.includes(i))return!1;const a=t[i],o=e[i];if(ZR(a)&&ZR(o)){if(!v1(a,o))return!1}else if(a!==o)return!1}for(const i of r)if(!n.includes(i))return!1;return!0}function ZR(t){return t!==null&&typeof t=="object"}/** * @license * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function rQ(t){return t&&t._delegate?t._delegate:t}class cg{constructor(e,n,r){this.name=e,this.instanceFactory=n,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const nA="[DEFAULT]";/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */class N5{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const r=new v5;if(this.instancesDeferred.set(n,r),this.isInitialized(n)||this.shouldAutoInitialize())try{const i=this.getOrInitializeService({instanceIdentifier:n});i&&r.resolve(i)}catch{}}return this.instancesDeferred.get(n).promise}getImmediate(e){var n;const r=this.normalizeInstanceIdentifier(e==null?void 0:e.identifier),i=(n=e==null?void 0:e.optional)!==null&&n!==void 0?n:!1;if(this.isInitialized(r)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:r})}catch(a){if(i)return null;throw a}else{if(i)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(J5(e))try{this.getOrInitializeService({instanceIdentifier:nA})}catch{}for(const[n,r]of this.instancesDeferred.entries()){const i=this.normalizeInstanceIdentifier(n);try{const a=this.getOrInitializeService({instanceIdentifier:i});r.resolve(a)}catch{}}}}clearInstance(e=nA){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(n=>"INTERNAL"in n).map(n=>n.INTERNAL.delete()),...e.filter(n=>"_delete"in n).map(n=>n._delete())])}isComponentSet(){return this.component!=null}isInitialized(e=nA){return this.instances.has(e)}getOptions(e=nA){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:n={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:r,options:n});for(const[a,o]of this.instancesDeferred.entries()){const l=this.normalizeInstanceIdentifier(a);r===l&&o.resolve(i)}return i}onInit(e,n){var r;const i=this.normalizeInstanceIdentifier(n),a=(r=this.onInitCallbacks.get(i))!==null&&r!==void 0?r:new Set;a.add(e),this.onInitCallbacks.set(i,a);const o=this.instances.get(i);return o&&e(o,i),()=>{a.delete(e)}}invokeOnInitCallbacks(e,n){const r=this.onInitCallbacks.get(n);if(r)for(const i of r)try{i(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:G5(e),options:n}),this.instances.set(e,r),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=nA){return this.component?this.component.multipleInstances?e:nA:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}}function G5(t){return t===nA?void 0:t}function J5(t){return t.instantiationMode==="EAGER"}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */class T5{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const n=new N5(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}}/** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */var dd;(function(t){t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT"})(dd||(dd={}));const X5={debug:dd.DEBUG,verbose:dd.VERBOSE,info:dd.INFO,warn:dd.WARN,error:dd.ERROR,silent:dd.SILENT},k5=dd.INFO,w5={[dd.DEBUG]:"log",[dd.VERBOSE]:"log",[dd.INFO]:"info",[dd.WARN]:"warn",[dd.ERROR]:"error"},Y5=(t,e,...n)=>{if(e<t.logLevel)return;const r=new Date().toISOString(),i=w5[e];if(i)console[i](`[${r}] ${t.name}:`,...n);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)};class D5{constructor(e){this.name=e,this._logLevel=k5,this._logHandler=Y5,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in dd))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?X5[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,dd.DEBUG,...e),this._logHandler(this,dd.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,dd.VERBOSE,...e),this._logHandler(this,dd.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,dd.INFO,...e),this._logHandler(this,dd.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,dd.WARN,...e),this._logHandler(this,dd.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,dd.ERROR,...e),this._logHandler(this,dd.ERROR,...e)}}const M5=(t,e)=>e.some(n=>t instanceof n);let IR,CR;function L5(){return IR||(IR=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function H5(){return CR||(CR=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Mv=new WeakMap,V1=new WeakMap,Lv=new WeakMap,VF=new WeakMap,iQ=new WeakMap;function x5(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",a),t.removeEventListener("error",o)},a=()=>{n(Ah(t.result)),i()},o=()=>{r(t.error),i()};t.addEventListener("success",a),t.addEventListener("error",o)});return e.then(n=>{n instanceof IDBCursor&&Mv.set(n,t)}).catch(()=>{}),iQ.set(e,t),e}function O5(t){if(V1.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",a),t.removeEventListener("error",o),t.removeEventListener("abort",o)},a=()=>{n(),i()},o=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",a),t.addEventListener("error",o),t.addEventListener("abort",o)});V1.set(t,e)}let E1={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return V1.get(t);if(e==="objectStoreNames")return t.objectStoreNames||Lv.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Ah(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function K5(t){E1=t(E1)}function P5(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(EF(this),e,...n);return Lv.set(r,e.sort?e.sort():[e]),Ah(r)}:H5().includes(t)?function(...e){return t.apply(EF(this),e),Ah(Mv.get(this))}:function(...e){return Ah(t.apply(EF(this),e))}}function z5(t){return typeof t=="function"?P5(t):(t instanceof IDBTransaction&&O5(t),M5(t,L5())?new Proxy(t,E1):t)}function Ah(t){if(t instanceof IDBRequest)return x5(t);if(VF.has(t))return VF.get(t);const e=z5(t);return e!==t&&(VF.set(t,e),iQ.set(e,t)),e}const EF=t=>iQ.get(t);function Qy(t,e,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){const o=indexedDB.open(t,e),l=Ah(o);return r&&o.addEventListener("upgradeneeded",s=>{r(Ah(o.result),s.oldVersion,s.newVersion,Ah(o.transaction),s)}),n&&o.addEventListener("blocked",s=>n(s.oldVersion,s.newVersion,s)),l.then(s=>{a&&s.addEventListener("close",()=>a()),i&&s.addEventListener("versionchange",d=>i(d.oldVersion,d.newVersion,d))}).catch(()=>{}),l}function SF(t,{blocked:e}={}){const n=indexedDB.deleteDatabase(t);return e&&n.addEventListener("blocked",r=>e(r.oldVersion,r)),Ah(n).then(()=>{})}const j5=["get","getKey","getAll","getAllKeys","count"],_5=["put","add","delete","clear"],WF=new Map;function vR(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(WF.get(e))return WF.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=_5.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||j5.includes(n)))return;const a=async function(o,...l){const s=this.transaction(o,i?"readwrite":"readonly");let d=s.store;return r&&(d=d.index(l.shift())),(await Promise.all([d[n](...l),i&&s.done]))[0]};return WF.set(e,a),a}K5(t=>({...t,get:(e,n,r)=>vR(e,n)||t.get(e,n,r),has:(e,n)=>!!vR(e,n)||t.has(e,n)}));/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */class $5{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(n=>{if(q5(n)){const r=n.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(n=>n).join(" ")}}function q5(t){const e=t.getComponent();return(e==null?void 0:e.type)==="VERSION"}const S1="@firebase/app",VR="0.10.18";/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const ph=new D5("@firebase/app"),eT="@firebase/app-compat",tT="@firebase/analytics-compat",nT="@firebase/analytics",rT="@firebase/app-check-compat",iT="@firebase/app-check",aT="@firebase/auth",oT="@firebase/auth-compat",lT="@firebase/database",sT="@firebase/data-connect",dT="@firebase/database-compat",cT="@firebase/functions",uT="@firebase/functions-compat",fT="@firebase/installations",hT="@firebase/installations-compat",gT="@firebase/messaging",AT="@firebase/messaging-compat",pT="@firebase/performance",mT="@firebase/performance-compat",bT="@firebase/remote-config",yT="@firebase/remote-config-compat",FT="@firebase/storage",QT="@firebase/storage-compat",UT="@firebase/firestore",RT="@firebase/vertexai",BT="@firebase/firestore-compat",ZT="firebase";/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const W1="[DEFAULT]",IT={[S1]:"fire-core",[eT]:"fire-core-compat",[nT]:"fire-analytics",[tT]:"fire-analytics-compat",[iT]:"fire-app-check",[rT]:"fire-app-check-compat",[aT]:"fire-auth",[oT]:"fire-auth-compat",[lT]:"fire-rtdb",[sT]:"fire-data-connect",[dT]:"fire-rtdb-compat",[cT]:"fire-fn",[uT]:"fire-fn-compat",[fT]:"fire-iid",[hT]:"fire-iid-compat",[gT]:"fire-fcm",[AT]:"fire-fcm-compat",[pT]:"fire-perf",[mT]:"fire-perf-compat",[bT]:"fire-rc",[yT]:"fire-rc-compat",[FT]:"fire-gcs",[QT]:"fire-gcs-compat",[UT]:"fire-fst",[BT]:"fire-fst-compat",[RT]:"fire-vertex","fire-js":"fire-js",[ZT]:"fire-js-all"};/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const jb=new Map,CT=new Map,N1=new Map;function ER(t,e){try{t.container.addComponent(e)}catch(n){ph.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function gA(t){const e=t.name;if(N1.has(e))return ph.debug(`There were multiple attempts to register component ${e}.`),!1;N1.set(e,t);for(const n of jb.values())ER(n,t);for(const n of CT.values())ER(n,t);return!0}function aQ(t,e){const n=t.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),t.container.getProvider(e)}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const vT={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},ig=new Fy("app","Firebase",vT);/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */class VT{constructor(e,n,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},n),this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new cg("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw ig.create("app-deleted",{appName:this._name})}}function Hv(t,e={}){let n=t;typeof e!="object"&&(e={name:e});const r=Object.assign({name:W1,automaticDataCollectionEnabled:!1},e),i=r.name;if(typeof i!="string"||!i)throw ig.create("bad-app-name",{appName:String(i)});if(n||(n=wv()),!n)throw ig.create("no-options");const a=jb.get(i);if(a){if(v1(n,a.options)&&v1(r,a.config))return a;throw ig.create("duplicate-app",{appName:i})}const o=new T5(i);for(const s of N1.values())o.addComponent(s);const l=new VT(n,r,o);return jb.set(i,l),l}function ET(t=W1){const e=jb.get(t);if(!e&&t===W1&&wv())return Hv();if(!e)throw ig.create("no-app",{appName:t});return e}function ag(t,e,n){var r;let i=(r=IT[t])!==null&&r!==void 0?r:t;n&&(i+=`-${n}`);const a=i.match(/\s|\//),o=e.match(/\s|\//);if(a||o){const l=[`Unable to register library "${i}" with version "${e}":`];a&&l.push(`library name "${i}" contains illegal characters (whitespace or "/")`),a&&o&&l.push("and"),o&&l.push(`version name "${e}" contains illegal characters (whitespace or "/")`),ph.warn(l.join(" "));return}gA(new cg(`${i}-version`,()=>({library:i,version:e}),"VERSION"))}/** * @license * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const ST="firebase-heartbeat-database",WT=1,$m="firebase-heartbeat-store";let NF=null;function xv(){return NF||(NF=Qy(ST,WT,{upgrade:(t,e)=>{switch(e){case 0:try{t.createObjectStore($m)}catch(n){console.warn(n)}}}}).catch(t=>{throw ig.create("idb-open",{originalErrorMessage:t.message})})),NF}async function NT(t){try{const n=(await xv()).transaction($m),r=await n.objectStore($m).get(Ov(t));return await n.done,r}catch(e){if(e instanceof Vp)ph.warn(e.message);else{const n=ig.create("idb-get",{originalErrorMessage:e==null?void 0:e.message});ph.warn(n.message)}}}async function SR(t,e){try{const r=(await xv()).transaction($m,"readwrite");await r.objectStore($m).put(e,Ov(t)),await r.done}catch(n){if(n instanceof Vp)ph.warn(n.message);else{const r=ig.create("idb-set",{originalErrorMessage:n==null?void 0:n.message});ph.warn(r.message)}}}function Ov(t){return`${t.name}!${t.options.appId}`}/** * @license * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const GT=1024,JT=30*24*60*60*1e3;class TT{constructor(e){this.container=e,this._heartbeatsCache=null;const n=this.container.getProvider("app").getImmediate();this._storage=new kT(n),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}async triggerHeartbeat(){var e,n;try{const i=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),a=WR();return((e=this._heartbeatsCache)===null||e===void 0?void 0:e.heartbeats)==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,((n=this._heartbeatsCache)===null||n===void 0?void 0:n.heartbeats)==null)||this._heartbeatsCache.lastSentHeartbeatDate===a||this._heartbeatsCache.heartbeats.some(o=>o.date===a)?void 0:(this._heartbeatsCache.heartbeats.push({date:a,agent:i}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter(o=>{const l=new Date(o.date).valueOf();return Date.now()-l<=JT}),this._storage.overwrite(this._heartbeatsCache))}catch(r){ph.warn(r)}}async getHeartbeatsHeader(){var e;try{if(this._heartbeatsCache===null&&await this._heartbeatsCachePromise,((e=this._heartbeatsCache)===null||e===void 0?void 0:e.heartbeats)==null||this._heartbeatsCache.heartbeats.length===0)return"";const n=WR(),{heartbeatsToSend:r,unsentEntries:i}=XT(this._heartbeatsCache.heartbeats),a=kv(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=n,i.length>0?(this._heartbeatsCache.heartbeats=i,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}catch(n){return ph.warn(n),""}}}function WR(){return new Date().toISOString().substring(0,10)}function XT(t,e=GT){const n=[];let r=t.slice();for(const i of t){const a=n.find(o=>o.agent===i.agent);if(a){if(a.dates.push(i.date),NR(n)>e){a.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),NR(n)>e){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}class kT{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return Yv()?Dv().then(()=>!0).catch(()=>!1):!1}async read(){if(await this._canUseIndexedDBPromise){const n=await NT(this.app);return n!=null&&n.heartbeats?n:{heartbeats:[]}}else return{heartbeats:[]}}async overwrite(e){var n;if(await this._canUseIndexedDBPromise){const i=await this.read();return SR(this.app,{lastSentHeartbeatDate:(n=e.lastSentHeartbeatDate)!==null&&n!==void 0?n:i.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return}async add(e){var n;if(await this._canUseIndexedDBPromise){const i=await this.read();return SR(this.app,{lastSentHeartbeatDate:(n=e.lastSentHeartbeatDate)!==null&&n!==void 0?n:i.lastSentHeartbeatDate,heartbeats:[...i.heartbeats,...e.heartbeats]})}else return}}function NR(t){return kv(JSON.stringify({version:2,heartbeats:t})).length}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function wT(t){gA(new cg("platform-logger",e=>new $5(e),"PRIVATE")),gA(new cg("heartbeat",e=>new TT(e),"PRIVATE")),ag(S1,VR,t),ag(S1,VR,"esm2017"),ag("fire-js","")}wT("");var YT="firebase",DT="11.2.0";/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ag(YT,DT,"app");const Kv="@firebase/installations",oQ="0.6.12";/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const Pv=1e4,zv=`w:${oQ}`,jv="FIS_v2",MT="https://firebaseinstallations.googleapis.com/v1",LT=60*60*1e3,HT="installations",xT="Installations";/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const OT={"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."},AA=new Fy(HT,xT,OT);function _v(t){return t instanceof Vp&&t.code.includes("request-failed")}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function $v({projectId:t}){return`${MT}/projects/${t}/installations`}function qv(t){return{token:t.token,requestStatus:2,expiresIn:PT(t.expiresIn),creationTime:Date.now()}}async function eV(t,e){const r=(await e.json()).error;return AA.create("request-failed",{requestName:t,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function tV({apiKey:t}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":t})}function KT(t,{refreshToken:e}){const n=tV(t);return n.append("Authorization",zT(e)),n}async function nV(t){const e=await t();return e.status>=500&&e.status<600?t():e}function PT(t){return Number(t.replace("s","000"))}function zT(t){return`${jv} ${t}`}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function jT({appConfig:t,heartbeatServiceProvider:e},{fid:n}){const r=$v(t),i=tV(t),a=e.getImmediate({optional:!0});if(a){const d=await a.getHeartbeatsHeader();d&&i.append("x-firebase-client",d)}const o={fid:n,authVersion:jv,appId:t.appId,sdkVersion:zv},l={method:"POST",headers:i,body:JSON.stringify(o)},s=await nV(()=>fetch(r,l));if(s.ok){const d=await s.json();return{fid:d.fid||n,registrationStatus:2,refreshToken:d.refreshToken,authToken:qv(d.authToken)}}else throw await eV("Create Installation",s)}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function rV(t){return new Promise(e=>{setTimeout(e,t)})}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function _T(t){return btoa(String.fromCharCode(...t)).replace(/\+/g,"-").replace(/\//g,"_")}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const $T=/^[cdef][\w-]{21}$/,G1="";function qT(){try{const t=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(t),t[0]=112+t[0]%16;const n=e9(t);return $T.test(n)?n:G1}catch{return G1}}function e9(t){return _T(t).substr(0,22)}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function Uy(t){return`${t.appName}!${t.appId}`}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const iV=new Map;function aV(t,e){const n=Uy(t);oV(n,e),t9(n,e)}function oV(t,e){const n=iV.get(t);if(n)for(const r of n)r(e)}function t9(t,e){const n=n9();n&&n.postMessage({key:t,fid:e}),r9()}let iA=null;function n9(){return!iA&&"BroadcastChannel"in self&&(iA=new BroadcastChannel("[Firebase] FID Change"),iA.onmessage=t=>{oV(t.data.key,t.data.fid)}),iA}function r9(){iV.size===0&&iA&&(iA.close(),iA=null)}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const i9="firebase-installations-database",a9=1,pA="firebase-installations-store";let GF=null;function lQ(){return GF||(GF=Qy(i9,a9,{upgrade:(t,e)=>{switch(e){case 0:t.createObjectStore(pA)}}})),GF}async function _b(t,e){const n=Uy(t),i=(await lQ()).transaction(pA,"readwrite"),a=i.objectStore(pA),o=await a.get(n);return await a.put(e,n),await i.done,(!o||o.fid!==e.fid)&&aV(t,e.fid),e}async function lV(t){const e=Uy(t),r=(await lQ()).transaction(pA,"readwrite");await r.objectStore(pA).delete(e),await r.done}async function Ry(t,e){const n=Uy(t),i=(await lQ()).transaction(pA,"readwrite"),a=i.objectStore(pA),o=await a.get(n),l=e(o);return l===void 0?await a.delete(n):await a.put(l,n),await i.done,l&&(!o||o.fid!==l.fid)&&aV(t,l.fid),l}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function sQ(t){let e;const n=await Ry(t.appConfig,r=>{const i=o9(r),a=l9(t,i);return e=a.registrationPromise,a.installationEntry});return n.fid===G1?{installationEntry:await e}:{installationEntry:n,registrationPromise:e}}function o9(t){const e=t||{fid:qT(),registrationStatus:0};return sV(e)}function l9(t,e){if(e.registrationStatus===0){if(!navigator.onLine){const i=Promise.reject(AA.create("app-offline"));return{installationEntry:e,registrationPromise:i}}const n={fid:e.fid,registrationStatus:1,registrationTime:Date.now()},r=s9(t,n);return{installationEntry:n,registrationPromise:r}}else return e.registrationStatus===1?{installationEntry:e,registrationPromise:d9(t)}:{installationEntry:e}}async function s9(t,e){try{const n=await jT(t,e);return _b(t.appConfig,n)}catch(n){throw _v(n)&&n.customData.serverCode===409?await lV(t.appConfig):await _b(t.appConfig,{fid:e.fid,registrationStatus:0}),n}}async function d9(t){let e=await GR(t.appConfig);for(;e.registrationStatus===1;)await rV(100),e=await GR(t.appConfig);if(e.registrationStatus===0){const{installationEntry:n,registrationPromise:r}=await sQ(t);return r||n}return e}function GR(t){return Ry(t,e=>{if(!e)throw AA.create("installation-not-found");return sV(e)})}function sV(t){return c9(t)?{fid:t.fid,registrationStatus:0}:t}function c9(t){return t.registrationStatus===1&&t.registrationTime+Pv<Date.now()}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function u9({appConfig:t,heartbeatServiceProvider:e},n){const r=f9(t,n),i=KT(t,n),a=e.getImmediate({optional:!0});if(a){const d=await a.getHeartbeatsHeader();d&&i.append("x-firebase-client",d)}const o={installation:{sdkVersion:zv,appId:t.appId}},l={method:"POST",headers:i,body:JSON.stringify(o)},s=await nV(()=>fetch(r,l));if(s.ok){const d=await s.json();return qv(d)}else throw await eV("Generate Auth Token",s)}function f9(t,{fid:e}){return`${$v(t)}/${e}/authTokens:generate`}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function dQ(t,e=!1){let n;const r=await Ry(t.appConfig,a=>{if(!dV(a))throw AA.create("not-registered");const o=a.authToken;if(!e&&A9(o))return a;if(o.requestStatus===1)return n=h9(t,e),a;{if(!navigator.onLine)throw AA.create("app-offline");const l=m9(a);return n=g9(t,l),l}});return n?await n:r.authToken}async function h9(t,e){let n=await JR(t.appConfig);for(;n.authToken.requestStatus===1;)await rV(100),n=await JR(t.appConfig);const r=n.authToken;return r.requestStatus===0?dQ(t,e):r}function JR(t){return Ry(t,e=>{if(!dV(e))throw AA.create("not-registered");const n=e.authToken;return b9(n)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e})}async function g9(t,e){try{const n=await u9(t,e),r=Object.assign(Object.assign({},e),{authToken:n});return await _b(t.appConfig,r),n}catch(n){if(_v(n)&&(n.customData.serverCode===401||n.customData.serverCode===404))await lV(t.appConfig);else{const r=Object.assign(Object.assign({},e),{authToken:{requestStatus:0}});await _b(t.appConfig,r)}throw n}}function dV(t){return t!==void 0&&t.registrationStatus===2}function A9(t){return t.requestStatus===2&&!p9(t)}function p9(t){const e=Date.now();return e<t.creationTime||t.creationTime+t.expiresIn<e+LT}function m9(t){const e={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},t),{authToken:e})}function b9(t){return t.requestStatus===1&&t.requestTime+Pv<Date.now()}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function y9(t){const e=t,{installationEntry:n,registrationPromise:r}=await sQ(e);return r?r.catch(console.error):dQ(e).catch(console.error),n.fid}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function F9(t,e=!1){const n=t;return await Q9(n),(await dQ(n,e)).token}async function Q9(t){const{registrationPromise:e}=await sQ(t);e&&await e}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function U9(t){if(!t||!t.options)throw JF("App Configuration");if(!t.name)throw JF("App Name");const e=["projectId","apiKey","appId"];for(const n of e)if(!t.options[n])throw JF(n);return{appName:t.name,projectId:t.options.projectId,apiKey:t.options.apiKey,appId:t.options.appId}}function JF(t){return AA.create("missing-app-config-values",{valueName:t})}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const cV="installations",R9="installations-internal",B9=t=>{const e=t.getProvider("app").getImmediate(),n=U9(e),r=aQ(e,"heartbeat");return{app:e,appConfig:n,heartbeatServiceProvider:r,_delete:()=>Promise.resolve()}},Z9=t=>{const e=t.getProvider("app").getImmediate(),n=aQ(e,cV).getImmediate();return{getId:()=>y9(n),getToken:i=>F9(n,i)}};function I9(){gA(new cg(cV,B9,"PUBLIC")),gA(new cg(R9,Z9,"PRIVATE"))}I9();ag(Kv,oQ);ag(Kv,oQ,"esm2017");/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const C9="/firebase-messaging-sw.js",v9="/firebase-cloud-messaging-push-scope",uV="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",V9="https://fcmregistrations.googleapis.com/v1",fV="google.c.a.c_id",E9="google.c.a.c_l",S9="google.c.a.ts",W9="google.c.a.e",TR=1e4;var XR;(function(t){t[t.DATA_MESSAGE=1]="DATA_MESSAGE",t[t.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION"})(XR||(XR={}));/** * @license * Copyright 2018 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */var qm;(function(t){t.PUSH_RECEIVED="push-received",t.NOTIFICATION_CLICKED="notification-clicked"})(qm||(qm={}));/** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function sh(t){const e=new Uint8Array(t);return btoa(String.fromCharCode(...e)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function N9(t){const e="=".repeat((4-t.length%4)%4),n=(t+e).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(n),i=new Uint8Array(r.length);for(let a=0;a<r.length;++a)i[a]=r.charCodeAt(a);return i}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const TF="fcm_token_details_db",G9=5,kR="fcm_token_object_Store";async function J9(t){if("databases"in indexedDB&&!(await indexedDB.databases()).map(a=>a.name).includes(TF))return null;let e=null;return(await Qy(TF,G9,{upgrade:async(r,i,a,o)=>{var l;if(i<2||!r.objectStoreNames.contains(kR))return;const s=o.objectStore(kR),d=await s.index("fcmSenderId").get(t);if(await s.clear(),!!d){if(i===2){const c=d;if(!c.auth||!c.p256dh||!c.endpoint)return;e={token:c.fcmToken,createTime:(l=c.createTime)!==null&&l!==void 0?l:Date.now(),subscriptionOptions:{auth:c.auth,p256dh:c.p256dh,endpoint:c.endpoint,swScope:c.swScope,vapidKey:typeof c.vapidKey=="string"?c.vapidKey:sh(c.vapidKey)}}}else if(i===3){const c=d;e={token:c.fcmToken,createTime:c.createTime,subscriptionOptions:{auth:sh(c.auth),p256dh:sh(c.p256dh),endpoint:c.endpoint,swScope:c.swScope,vapidKey:sh(c.vapidKey)}}}else if(i===4){const c=d;e={token:c.fcmToken,createTime:c.createTime,subscriptionOptions:{auth:sh(c.auth),p256dh:sh(c.p256dh),endpoint:c.endpoint,swScope:c.swScope,vapidKey:sh(c.vapidKey)}}}}}})).close(),await SF(TF),await SF("fcm_vapid_details_db"),await SF("undefined"),T9(e)?e:null}function T9(t){if(!t||!t.subscriptionOptions)return!1;const{subscriptionOptions:e}=t;return typeof t.createTime=="number"&&t.createTime>0&&typeof t.token=="string"&&t.token.length>0&&typeof e.auth=="string"&&e.auth.length>0&&typeof e.p256dh=="string"&&e.p256dh.length>0&&typeof e.endpoint=="string"&&e.endpoint.length>0&&typeof e.swScope=="string"&&e.swScope.length>0&&typeof e.vapidKey=="string"&&e.vapidKey.length>0}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const X9="firebase-messaging-database",k9=1,e0="firebase-messaging-store";let XF=null;function hV(){return XF||(XF=Qy(X9,k9,{upgrade:(t,e)=>{switch(e){case 0:t.createObjectStore(e0)}}})),XF}async function w9(t){const e=gV(t),r=await(await hV()).transaction(e0).objectStore(e0).get(e);if(r)return r;{const i=await J9(t.appConfig.senderId);if(i)return await cQ(t,i),i}}async function cQ(t,e){const n=gV(t),i=(await hV()).transaction(e0,"readwrite");return await i.objectStore(e0).put(e,n),await i.done,e}function gV({appConfig:t}){return t.appId}/** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const Y9={"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."},nu=new Fy("messaging","Messaging",Y9);/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function D9(t,e){const n=await fQ(t),r=AV(e),i={method:"POST",headers:n,body:JSON.stringify(r)};let a;try{a=await(await fetch(uQ(t.appConfig),i)).json()}catch(o){throw nu.create("token-subscribe-failed",{errorInfo:o==null?void 0:o.toString()})}if(a.error){const o=a.error.message;throw nu.create("token-subscribe-failed",{errorInfo:o})}if(!a.token)throw nu.create("token-subscribe-no-token");return a.token}async function M9(t,e){const n=await fQ(t),r=AV(e.subscriptionOptions),i={method:"PATCH",headers:n,body:JSON.stringify(r)};let a;try{a=await(await fetch(`${uQ(t.appConfig)}/${e.token}`,i)).json()}catch(o){throw nu.create("token-update-failed",{errorInfo:o==null?void 0:o.toString()})}if(a.error){const o=a.error.message;throw nu.create("token-update-failed",{errorInfo:o})}if(!a.token)throw nu.create("token-update-no-token");return a.token}async function L9(t,e){const r={method:"DELETE",headers:await fQ(t)};try{const a=await(await fetch(`${uQ(t.appConfig)}/${e}`,r)).json();if(a.error){const o=a.error.message;throw nu.create("token-unsubscribe-failed",{errorInfo:o})}}catch(i){throw nu.create("token-unsubscribe-failed",{errorInfo:i==null?void 0:i.toString()})}}function uQ({projectId:t}){return`${V9}/projects/${t}/registrations`}async function fQ({appConfig:t,installations:e}){const n=await e.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":t.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function AV({p256dh:t,auth:e,endpoint:n,vapidKey:r}){const i={web:{endpoint:n,auth:e,p256dh:t}};return r!==uV&&(i.web.applicationPubKey=r),i}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const H9=7*24*60*60*1e3;async function x9(t){const e=await K9(t.swRegistration,t.vapidKey),n={vapidKey:t.vapidKey,swScope:t.swRegistration.scope,endpoint:e.endpoint,auth:sh(e.getKey("auth")),p256dh:sh(e.getKey("p256dh"))},r=await w9(t.firebaseDependencies);if(r){if(P9(r.subscriptionOptions,n))return Date.now()>=r.createTime+H9?O9(t,{token:r.token,createTime:Date.now(),subscriptionOptions:n}):r.token;try{await L9(t.firebaseDependencies,r.token)}catch(i){console.warn(i)}return wR(t.firebaseDependencies,n)}else return wR(t.firebaseDependencies,n)}async function O9(t,e){try{const n=await M9(t.firebaseDependencies,e),r=Object.assign(Object.assign({},e),{token:n,createTime:Date.now()});return await cQ(t.firebaseDependencies,r),n}catch(n){throw n}}async function wR(t,e){const r={token:await D9(t,e),createTime:Date.now(),subscriptionOptions:e};return await cQ(t,r),r.token}async function K9(t,e){const n=await t.pushManager.getSubscription();return n||t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:N9(e)})}function P9(t,e){const n=e.vapidKey===t.vapidKey,r=e.endpoint===t.endpoint,i=e.auth===t.auth,a=e.p256dh===t.p256dh;return n&&r&&i&&a}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function YR(t){const e={from:t.from,collapseKey:t.collapse_key,messageId:t.fcmMessageId};return z9(e,t),j9(e,t),_9(e,t),e}function z9(t,e){if(!e.notification)return;t.notification={};const n=e.notification.title;n&&(t.notification.title=n);const r=e.notification.body;r&&(t.notification.body=r);const i=e.notification.image;i&&(t.notification.image=i);const a=e.notification.icon;a&&(t.notification.icon=a)}function j9(t,e){e.data&&(t.data=e.data)}function _9(t,e){var n,r,i,a,o;if(!e.fcmOptions&&!(!((n=e.notification)===null||n===void 0)&&n.click_action))return;t.fcmOptions={};const l=(i=(r=e.fcmOptions)===null||r===void 0?void 0:r.link)!==null&&i!==void 0?i:(a=e.notification)===null||a===void 0?void 0:a.click_action;l&&(t.fcmOptions.link=l);const s=(o=e.fcmOptions)===null||o===void 0?void 0:o.analytics_label;s&&(t.fcmOptions.analyticsLabel=s)}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function $9(t){return typeof t=="object"&&!!t&&fV in t}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function q9(t){if(!t||!t.options)throw kF("App Configuration Object");if(!t.name)throw kF("App Name");const e=["projectId","apiKey","appId","messagingSenderId"],{options:n}=t;for(const r of e)if(!n[r])throw kF(r);return{appName:t.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}}function kF(t){return nu.create("missing-app-config-values",{valueName:t})}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */class eX{constructor(e,n,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;const i=q9(e);this.firebaseDependencies={app:e,appConfig:i,installations:n,analyticsProvider:r}}_delete(){return Promise.resolve()}}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function tX(t){try{t.swRegistration=await navigator.serviceWorker.register(C9,{scope:v9}),t.swRegistration.update().catch(()=>{}),await nX(t.swRegistration)}catch(e){throw nu.create("failed-service-worker-registration",{browserErrorMessage:e==null?void 0:e.message})}}async function nX(t){return new Promise((e,n)=>{const r=setTimeout(()=>n(new Error(`Service worker not registered after ${TR} ms`)),TR),i=t.installing||t.waiting;t.active?(clearTimeout(r),e()):i?i.onstatechange=a=>{var o;((o=a.target)===null||o===void 0?void 0:o.state)==="activated"&&(i.onstatechange=null,clearTimeout(r),e())}:(clearTimeout(r),n(new Error("No incoming service worker found.")))})}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function rX(t,e){if(!e&&!t.swRegistration&&await tX(t),!(!e&&t.swRegistration)){if(!(e instanceof ServiceWorkerRegistration))throw nu.create("invalid-sw-registration");t.swRegistration=e}}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function iX(t,e){e?t.vapidKey=e:t.vapidKey||(t.vapidKey=uV)}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function pV(t,e){if(!navigator)throw nu.create("only-available-in-window");if(Notification.permission==="default"&&await Notification.requestPermission(),Notification.permission!=="granted")throw nu.create("permission-blocked");return await iX(t,e==null?void 0:e.vapidKey),await rX(t,e==null?void 0:e.serviceWorkerRegistration),x9(t)}/** * @license * Copyright 2019 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function aX(t,e,n){const r=oX(e);(await t.firebaseDependencies.analyticsProvider.get()).logEvent(r,{message_id:n[fV],message_name:n[E9],message_time:n[S9],message_device_time:Math.floor(Date.now()/1e3)})}function oX(t){switch(t){case qm.NOTIFICATION_CLICKED:return"notification_open";case qm.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}/** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function lX(t,e){const n=e.data;if(!n.isFirebaseMessaging)return;t.onMessageHandler&&n.messageType===qm.PUSH_RECEIVED&&(typeof t.onMessageHandler=="function"?t.onMessageHandler(YR(n)):t.onMessageHandler.next(YR(n)));const r=n.data;$9(r)&&r[W9]==="1"&&await aX(t,n.messageType,r)}const DR="@firebase/messaging",MR="0.12.16";/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */const sX=t=>{const e=new eX(t.getProvider("app").getImmediate(),t.getProvider("installations-internal").getImmediate(),t.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",n=>lX(e,n)),e},dX=t=>{const e=t.getProvider("messaging").getImmediate();return{getToken:r=>pV(e,r)}};function cX(){gA(new cg("messaging",sX,"PUBLIC")),gA(new cg("messaging-internal",dX,"PRIVATE")),ag(DR,MR),ag(DR,MR,"esm2017")}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */async function uX(){try{await Dv()}catch{return!1}return typeof window<"u"&&Yv()&&V5()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function fX(t,e){if(!navigator)throw nu.create("only-available-in-window");return t.onMessageHandler=e,()=>{t.onMessageHandler=null}}/** * @license * Copyright 2017 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */function hX(t=ET()){return uX().then(e=>{if(!e)throw nu.create("unsupported-browser")},e=>{throw nu.create("indexed-db-unsupported")}),aQ(rQ(t),"messaging").getImmediate()}async function gX(t,e){return t=rQ(t),pV(t,e)}function AX(t,e){return t=rQ(t),fX(t,e)}cX();/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT */let mV;const By=t=>mV=t,bV=Symbol();function J1(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var wm;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(wm||(wm={}));function pX(){const t=T2(!0),e=t.run(()=>hn({}));let n=[],r=[];const i=x2({install(a){By(i),i._a=a,a.provide(bV,i),a.config.globalProperties.$pinia=i,r.forEach(o=>n.push(o)),r=[]},use(a){return this._a?n.push(a):r.push(a),this},_p:n,_a:null,_e:t,_s:new Map,state:e});return i}const yV=()=>{};function LR(t,e,n,r=yV){t.push(e);const i=()=>{const a=t.indexOf(e);a>-1&&(t.splice(a,1),r())};return!n&&uC()&&iN(i),i}function $A(t,...e){t.slice().forEach(n=>{n(...e)})}const mX=t=>t(),HR=Symbol(),wF=Symbol();function T1(t,e){t instanceof Map&&e instanceof Map?e.forEach((n,r)=>t.set(r,n)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const n in e){if(!e.hasOwnProperty(n))continue;const r=e[n],i=t[n];J1(i)&&J1(r)&&t.hasOwnProperty(n)&&!Md(r)&&!rg(r)?t[n]=T1(i,r):t[n]=r}return t}const bX=Symbol();function yX(t){return!J1(t)||!t.hasOwnProperty(bX)}const{assign:zh}=Object;function FX(t){return!!(Md(t)&&t.effect)}function QX(t,e,n,r){const{state:i,actions:a,getters:o}=e,l=n.state.value[t];let s;function d(){l||(n.state.value[t]=i?i():{});const c=IN(n.state.value[t]);return zh(c,a,Object.keys(o||{}).reduce((u,h)=>(u[h]=x2(qs(()=>{By(n);const f=n._s.get(t);return o[h].call(f,f)})),u),{}))}return s=FV(t,d,e,n,r,!0),s}function FV(t,e,n={},r,i,a){let o;const l=zh({actions:{}},n),s={deep:!0};let d,c,u=[],h=[],f;const g=r.state.value[t];!a&&!g&&(r.state.value[t]={}),hn({});let A;function b(N){let S;d=c=!1,typeof N=="function"?(N(r.state.value[t]),S={type:wm.patchFunction,storeId:t,events:f}):(T1(r.state.value[t],N),S={type:wm.patchObject,payload:N,storeId:t,events:f});const X=A=Symbol();Bp().then(()=>{A===X&&(d=!0)}),c=!0,$A(u,S,r.state.value[t])}const p=a?function(){const{state:S}=n,X=S?S():{};this.$patch(J=>{zh(J,X)})}:yV;function y(){o.stop(),u=[],h=[],r._s.delete(t)}const m=(N,S="")=>{if(HR in N)return N[wF]=S,N;const X=function(){By(r);const J=Array.from(arguments),E=[],v=[];function j(Fe){E.push(Fe)}function H(Fe){v.push(Fe)}$A(h,{args:J,name:X[wF],store:R,after:j,onError:H});let K;try{K=N.apply(this&&this.$id===t?this:R,J)}catch(Fe){throw $A(v,Fe),Fe}return K instanceof Promise?K.then(Fe=>($A(E,Fe),Fe)).catch(Fe=>($A(v,Fe),Promise.reject(Fe))):($A(E,K),K)};return X[HR]=!0,X[wF]=S,X},F={_p:r,$id:t,$onAction:LR.bind(null,h),$patch:b,$reset:p,$subscribe(N,S={}){const X=LR(u,N,S.detached,()=>J()),J=o.run(()=>yi(()=>r.state.value[t],E=>{(S.flush==="sync"?c:d)&&N({storeId:t,type:wm.direct,events:f},E)},zh({},s,S)));return X},$dispose:y},R=yA(F);r._s.set(t,R);const B=(r._a&&r._a.runWithContext||mX)(()=>r._e.run(()=>(o=T2()).run(()=>e({action:m}))));for(const N in B){const S=B[N];if(Md(S)&&!FX(S)||rg(S))a||(g&&yX(S)&&(Md(S)?S.value=g[N]:T1(S,g[N])),r.state.value[t][N]=S);else if(typeof S=="function"){const X=m(S,N);B[N]=X,l.actions[N]=S}}return zh(R,B),zh(Bl(R),B),Object.defineProperty(R,"$state",{get:()=>r.state.value[t],set:N=>{b(S=>{zh(S,N)})}}),r._p.forEach(N=>{zh(R,o.run(()=>N({store:R,app:r._a,pinia:r,options:l})))}),g&&a&&n.hydrate&&n.hydrate(R.$state,g),d=!0,c=!0,R}/*! #__NO_SIDE_EFFECTS__ */function QV(t,e,n){let r,i;const a=typeof e=="function";typeof t=="string"?(r=t,i=a?n:e):(i=t,r=t.id);function o(l,s){const d=rG();return l=l||(d?Su(bV,null):null),l&&By(l),l=mV,l._s.has(r)||(a?FV(r,e,i,l):QX(r,i,l)),l._s.get(r)}return o.$id=r,o}/*! * shared v9.14.2 * (c) 2024 kazuya kawaguchi * Released under the MIT License. */const $b=typeof window<"u",pg=(t,e=!1)=>e?Symbol.for(t):Symbol(t),UX=(t,e,n)=>RX({l:t,k:e,s:n}),RX=t=>JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),$d=t=>typeof t=="number"&&isFinite(t),BX=t=>RV(t)==="[object Date]",ug=t=>RV(t)==="[object RegExp]",Zy=t=>Zo(t)&&Object.keys(t).length===0,Lc=Object.assign,ZX=Object.create,vs=(t=null)=>ZX(t);let xR;const hh=()=>xR||(xR=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:vs());function OR(t){return t.replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}const IX=Object.prototype.hasOwnProperty;function uf(t,e){return IX.call(t,e)}const cd=Array.isArray,$s=t=>typeof t=="function",Ei=t=>typeof t=="string",rl=t=>typeof t=="boolean",Dl=t=>t!==null&&typeof t=="object",CX=t=>Dl(t)&&$s(t.then)&&$s(t.catch),UV=Object.prototype.toString,RV=t=>UV.call(t),Zo=t=>{if(!Dl(t))return!1;const e=Object.getPrototypeOf(t);return e===null||e.constructor===Object},vX=t=>t==null?"":cd(t)||Zo(t)&&t.toString===UV?JSON.stringify(t,null,2):String(t);function VX(t,e=""){return t.reduce((n,r,i)=>i===0?n+r:n+e+r,"")}function Iy(t){let e=t;return()=>++e}function EX(t,e){typeof console<"u"&&(console.warn("[intlify] "+t),e&&console.warn(e.stack))}const fb=t=>!Dl(t)||cd(t);function Eb(t,e){if(fb(t)||fb(e))throw new Error("Invalid value");const n=[{src:t,des:e}];for(;n.length;){const{src:r,des:i}=n.pop();Object.keys(r).forEach(a=>{a!=="__proto__"&&(Dl(r[a])&&!Dl(i[a])&&(i[a]=Array.isArray(r[a])?[]:vs()),fb(i[a])||fb(r[a])?i[a]=r[a]:n.push({src:r[a],des:i[a]}))})}}/*! * message-compiler v9.14.2 * (c) 2024 kazuya kawaguchi * Released under the MIT License. */function SX(t,e,n){return{line:t,column:e,offset:n}}function qb(t,e,n){return{start:t,end:e}}const WX=/\{([0-9a-zA-Z]+)\}/g;function BV(t,...e){return e.length===1&&NX(e[0])&&(e=e[0]),(!e||!e.hasOwnProperty)&&(e={}),t.replace(WX,(n,r)=>e.hasOwnProperty(r)?e[r]:"")}const ZV=Object.assign,KR=t=>typeof t=="string",NX=t=>t!==null&&typeof t=="object";function IV(t,e=""){return t.reduce((n,r,i)=>i===0?n+r:n+e+r,"")}const hQ={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},GX={[hQ.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function JX(t,e,...n){const r=BV(GX[t],...n||[]),i={message:String(r),code:t};return e&&(i.location=e),i}const fo={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},TX={[fo.EXPECTED_TOKEN]:"Expected token: '{0}'",[fo.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[fo.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[fo.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[fo.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[fo.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[fo.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[fo.EMPTY_PLACEHOLDER]:"Empty placeholder",[fo.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[fo.INVALID_LINKED_FORMAT]:"Invalid linked format",[fo.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[fo.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[fo.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[fo.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[fo.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[fo.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Ep(t,e,n={}){const{domain:r,messages:i,args:a}=n,o=BV((i||TX)[t]||"",...a||[]),l=new SyntaxError(String(o));return l.code=t,e&&(l.location=e),l.domain=r,l}function XX(t){throw t}const ah=" ",kX="\r",cu=` `,wX="\u2028",YX="\u2029";function DX(t){const e=t;let n=0,r=1,i=1,a=0;const o=B=>e[B]===kX&&e[B+1]===cu,l=B=>e[B]===cu,s=B=>e[B]===YX,d=B=>e[B]===wX,c=B=>o(B)||l(B)||s(B)||d(B),u=()=>n,h=()=>r,f=()=>i,g=()=>a,A=B=>o(B)||s(B)||d(B)?cu:e[B],b=()=>A(n),p=()=>A(n+a);function y(){return a=0,c(n)&&(r++,i=0),o(n)&&n++,n++,i++,e[n]}function m(){return o(n+a)&&a++,a++,e[n+a]}function F(){n=0,r=1,i=1,a=0}function R(B=0){a=B}function C(){const B=n+a;for(;B!==n;)y();a=0}return{index:u,line:h,column:f,peekOffset:g,charAt:A,currentChar:b,currentPeek:p,next:y,peek:m,reset:F,resetPeek:R,skipToPeek:C}}const Lh=void 0,MX=".",PR="'",LX="tokenizer";function HX(t,e={}){const n=e.location!==!1,r=DX(t),i=()=>r.index(),a=()=>SX(r.line(),r.column(),r.index()),o=a(),l=i(),s={currentType:14,offset:l,startLoc:o,endLoc:o,lastType:14,lastOffset:l,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},d=()=>s,{onError:c}=e;function u(Ee,Ge,he,...$){const ie=d();if(Ge.column+=he,Ge.offset+=he,c){const Ve=n?qb(ie.startLoc,Ge):null,_e=Ep(Ee,Ve,{domain:LX,args:$});c(_e)}}function h(Ee,Ge,he){Ee.endLoc=a(),Ee.currentType=Ge;const $={type:Ge};return n&&($.loc=qb(Ee.startLoc,Ee.endLoc)),he!=null&&($.value=he),$}const f=Ee=>h(Ee,14);function g(Ee,Ge){return Ee.currentChar()===Ge?(Ee.next(),Ge):(u(fo.EXPECTED_TOKEN,a(),0,Ge),"")}function A(Ee){let Ge="";for(;Ee.currentPeek()===ah||Ee.currentPeek()===cu;)Ge+=Ee.currentPeek(),Ee.peek();return Ge}function b(Ee){const Ge=A(Ee);return Ee.skipToPeek(),Ge}function p(Ee){if(Ee===Lh)return!1;const Ge=Ee.charCodeAt(0);return Ge>=97&&Ge<=122||Ge>=65&&Ge<=90||Ge===95}function y(Ee){if(Ee===Lh)return!1;const Ge=Ee.charCodeAt(0);return Ge>=48&&Ge<=57}function m(Ee,Ge){const{currentType:he}=Ge;if(he!==2)return!1;A(Ee);const $=p(Ee.currentPeek());return Ee.resetPeek(),$}function F(Ee,Ge){const{currentType:he}=Ge;if(he!==2)return!1;A(Ee);const $=Ee.currentPeek()==="-"?Ee.peek():Ee.currentPeek(),ie=y($);return Ee.resetPeek(),ie}function R(Ee,Ge){const{currentType:he}=Ge;if(he!==2)return!1;A(Ee);const $=Ee.currentPeek()===PR;return Ee.resetPeek(),$}function C(Ee,Ge){const{currentType:he}=Ge;if(he!==8)return!1;A(Ee);const $=Ee.currentPeek()===".";return Ee.resetPeek(),$}function B(Ee,Ge){const{currentType:he}=Ge;if(he!==9)return!1;A(Ee);const $=p(Ee.currentPeek());return Ee.resetPeek(),$}function N(Ee,Ge){const{currentType:he}=Ge;if(!(he===8||he===12))return!1;A(Ee);const $=Ee.currentPeek()===":";return Ee.resetPeek(),$}function S(Ee,Ge){const{currentType:he}=Ge;if(he!==10)return!1;const $=()=>{const Ve=Ee.currentPeek();return Ve==="{"?p(Ee.peek()):Ve==="@"||Ve==="%"||Ve==="|"||Ve===":"||Ve==="."||Ve===ah||!Ve?!1:Ve===cu?(Ee.peek(),$()):E(Ee,!1)},ie=$();return Ee.resetPeek(),ie}function X(Ee){A(Ee);const Ge=Ee.currentPeek()==="|";return Ee.resetPeek(),Ge}function J(Ee){const Ge=A(Ee),he=Ee.currentPeek()==="%"&&Ee.peek()==="{";return Ee.resetPeek(),{isModulo:he,hasSpace:Ge.length>0}}function E(Ee,Ge=!0){const he=(ie=!1,Ve="",_e=!1)=>{const we=Ee.currentPeek();return we==="{"?Ve==="%"?!1:ie:we==="@"||!we?Ve==="%"?!0:ie:we==="%"?(Ee.peek(),he(ie,"%",!0)):we==="|"?Ve==="%"||_e?!0:!(Ve===ah||Ve===cu):we===ah?(Ee.peek(),he(!0,ah,_e)):we===cu?(Ee.peek(),he(!0,cu,_e)):!0},$=he();return Ge&&Ee.resetPeek(),$}function v(Ee,Ge){const he=Ee.currentChar();return he===Lh?Lh:Ge(he)?(Ee.next(),he):null}function j(Ee){const Ge=Ee.charCodeAt(0);return Ge>=97&&Ge<=122||Ge>=65&&Ge<=90||Ge>=48&&Ge<=57||Ge===95||Ge===36}function H(Ee){return v(Ee,j)}function K(Ee){const Ge=Ee.charCodeAt(0);return Ge>=97&&Ge<=122||Ge>=65&&Ge<=90||Ge>=48&&Ge<=57||Ge===95||Ge===36||Ge===45}function Fe(Ee){return v(Ee,K)}function z(Ee){const Ge=Ee.charCodeAt(0);return Ge>=48&&Ge<=57}function q(Ee){return v(Ee,z)}function Ae(Ee){const Ge=Ee.charCodeAt(0);return Ge>=48&&Ge<=57||Ge>=65&&Ge<=70||Ge>=97&&Ge<=102}function Ke(Ee){return v(Ee,Ae)}function pe(Ee){let Ge="",he="";for(;Ge=q(Ee);)he+=Ge;return he}function We(Ee){b(Ee);const Ge=Ee.currentChar();return Ge!=="%"&&u(fo.EXPECTED_TOKEN,a(),0,Ge),Ee.next(),"%"}function xe(Ee){let Ge="";for(;;){const he=Ee.currentChar();if(he==="{"||he==="}"||he==="@"||he==="|"||!he)break;if(he==="%")if(E(Ee))Ge+=he,Ee.next();else break;else if(he===ah||he===cu)if(E(Ee))Ge+=he,Ee.next();else{if(X(Ee))break;Ge+=he,Ee.next()}else Ge+=he,Ee.next()}return Ge}function $e(Ee){b(Ee);let Ge="",he="";for(;Ge=Fe(Ee);)he+=Ge;return Ee.currentChar()===Lh&&u(fo.UNTERMINATED_CLOSING_BRACE,a(),0),he}function Rt(Ee){b(Ee);let Ge="";return Ee.currentChar()==="-"?(Ee.next(),Ge+=`-${pe(Ee)}`):Ge+=pe(Ee),Ee.currentChar()===Lh&&u(fo.UNTERMINATED_CLOSING_BRACE,a(),0),Ge}function Be(Ee){return Ee!==PR&&Ee!==cu}function qe(Ee){b(Ee),g(Ee,"'");let Ge="",he="";for(;Ge=v(Ee,Be);)Ge==="\\"?he+=at(Ee):he+=Ge;const $=Ee.currentChar();return $===cu||$===Lh?(u(fo.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,a(),0),$===cu&&(Ee.next(),g(Ee,"'")),he):(g(Ee,"'"),he)}function at(Ee){const Ge=Ee.currentChar();switch(Ge){case"\\":case"'":return Ee.next(),`\\${Ge}`;case"u":return Bt(Ee,Ge,4);case"U":return Bt(Ee,Ge,6);default:return u(fo.UNKNOWN_ESCAPE_SEQUENCE,a(),0,Ge),""}}function Bt(Ee,Ge,he){g(Ee,Ge);let $="";for(let ie=0;ie<he;ie++){const Ve=Ke(Ee);if(!Ve){u(fo.INVALID_UNICODE_ESCAPE_SEQUENCE,a(),0,`\\${Ge}${$}${Ee.currentChar()}`);break}$+=Ve}return`\\${Ge}${$}`}function jt(Ee){return Ee!=="{"&&Ee!=="}"&&Ee!==ah&&Ee!==cu}function Ne(Ee){b(Ee);let Ge="",he="";for(;Ge=v(Ee,jt);)he+=Ge;return he}function Je(Ee){let Ge="",he="";for(;Ge=H(Ee);)he+=Ge;return he}function ve(Ee){const Ge=he=>{const $=Ee.currentChar();return $==="{"||$==="%"||$==="@"||$==="|"||$==="("||$===")"||!$||$===ah?he:(he+=$,Ee.next(),Ge(he))};return Ge("")}function Ye(Ee){b(Ee);const Ge=g(Ee,"|");return b(Ee),Ge}function it(Ee,Ge){let he=null;switch(Ee.currentChar()){case"{":return Ge.braceNest>=1&&u(fo.NOT_ALLOW_NEST_PLACEHOLDER,a(),0),Ee.next(),he=h(Ge,2,"{"),b(Ee),Ge.braceNest++,he;case"}":return Ge.braceNest>0&&Ge.currentType===2&&u(fo.EMPTY_PLACEHOLDER,a(),0),Ee.next(),he=h(Ge,3,"}"),Ge.braceNest--,Ge.braceNest>0&&b(Ee),Ge.inLinked&&Ge.braceNest===0&&(Ge.inLinked=!1),he;case"@":return Ge.braceNest>0&&u(fo.UNTERMINATED_CLOSING_BRACE,a(),0),he=Qt(Ee,Ge)||f(Ge),Ge.braceNest=0,he;default:{let ie=!0,Ve=!0,_e=!0;if(X(Ee))return Ge.braceNest>0&&u(fo.UNTERMINATED_CLOSING_BRACE,a(),0),he=h(Ge,1,Ye(Ee)),Ge.braceNest=0,Ge.inLinked=!1,he;if(Ge.braceNest>0&&(Ge.currentType===5||Ge.currentType===6||Ge.currentType===7))return u(fo.UNTERMINATED_CLOSING_BRACE,a(),0),Ge.braceNest=0,_t(Ee,Ge);if(ie=m(Ee,Ge))return he=h(Ge,5,$e(Ee)),b(Ee),he;if(Ve=F(Ee,Ge))return he=h(Ge,6,Rt(Ee)),b(Ee),he;if(_e=R(Ee,Ge))return he=h(Ge,7,qe(Ee)),b(Ee),he;if(!ie&&!Ve&&!_e)return he=h(Ge,13,Ne(Ee)),u(fo.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,he.value),b(Ee),he;break}}return he}function Qt(Ee,Ge){const{currentType:he}=Ge;let $=null;const ie=Ee.currentChar();switch((he===8||he===9||he===12||he===10)&&(ie===cu||ie===ah)&&u(fo.INVALID_LINKED_FORMAT,a(),0),ie){case"@":return Ee.next(),$=h(Ge,8,"@"),Ge.inLinked=!0,$;case".":return b(Ee),Ee.next(),h(Ge,9,".");case":":return b(Ee),Ee.next(),h(Ge,10,":");default:return X(Ee)?($=h(Ge,1,Ye(Ee)),Ge.braceNest=0,Ge.inLinked=!1,$):C(Ee,Ge)||N(Ee,Ge)?(b(Ee),Qt(Ee,Ge)):B(Ee,Ge)?(b(Ee),h(Ge,12,Je(Ee))):S(Ee,Ge)?(b(Ee),ie==="{"?it(Ee,Ge)||$:h(Ge,11,ve(Ee))):(he===8&&u(fo.INVALID_LINKED_FORMAT,a(),0),Ge.braceNest=0,Ge.inLinked=!1,_t(Ee,Ge))}}function _t(Ee,Ge){let he={type:14};if(Ge.braceNest>0)return it(Ee,Ge)||f(Ge);if(Ge.inLinked)return Qt(Ee,Ge)||f(Ge);switch(Ee.currentChar()){case"{":return it(Ee,Ge)||f(Ge);case"}":return u(fo.UNBALANCED_CLOSING_BRACE,a(),0),Ee.next(),h(Ge,3,"}");case"@":return Qt(Ee,Ge)||f(Ge);default:{if(X(Ee))return he=h(Ge,1,Ye(Ee)),Ge.braceNest=0,Ge.inLinked=!1,he;const{isModulo:ie,hasSpace:Ve}=J(Ee);if(ie)return Ve?h(Ge,0,xe(Ee)):h(Ge,4,We(Ee));if(E(Ee))return h(Ge,0,xe(Ee));break}}return he}function Dt(){const{currentType:Ee,offset:Ge,startLoc:he,endLoc:$}=s;return s.lastType=Ee,s.lastOffset=Ge,s.lastStartLoc=he,s.lastEndLoc=$,s.offset=i(),s.startLoc=a(),r.currentChar()===Lh?h(s,14):_t(r,s)}return{nextToken:Dt,currentOffset:i,currentPosition:a,context:d}}const xX="parser",OX=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function KX(t,e,n){switch(t){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(e||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function PX(t={}){const e=t.location!==!1,{onError:n,onWarn:r}=t;function i(m,F,R,C,...B){const N=m.currentPosition();if(N.offset+=C,N.column+=C,n){const S=e?qb(R,N):null,X=Ep(F,S,{domain:xX,args:B});n(X)}}function a(m,F,R,C,...B){const N=m.currentPosition();if(N.offset+=C,N.column+=C,r){const S=e?qb(R,N):null;r(JX(F,S,B))}}function o(m,F,R){const C={type:m};return e&&(C.start=F,C.end=F,C.loc={start:R,end:R}),C}function l(m,F,R,C){e&&(m.end=F,m.loc&&(m.loc.end=R))}function s(m,F){const R=m.context(),C=o(3,R.offset,R.startLoc);return C.value=F,l(C,m.currentOffset(),m.currentPosition()),C}function d(m,F){const R=m.context(),{lastOffset:C,lastStartLoc:B}=R,N=o(5,C,B);return N.index=parseInt(F,10),m.nextToken(),l(N,m.currentOffset(),m.currentPosition()),N}function c(m,F,R){const C=m.context(),{lastOffset:B,lastStartLoc:N}=C,S=o(4,B,N);return S.key=F,R===!0&&(S.modulo=!0),m.nextToken(),l(S,m.currentOffset(),m.currentPosition()),S}function u(m,F){const R=m.context(),{lastOffset:C,lastStartLoc:B}=R,N=o(9,C,B);return N.value=F.replace(OX,KX),m.nextToken(),l(N,m.currentOffset(),m.currentPosition()),N}function h(m){const F=m.nextToken(),R=m.context(),{lastOffset:C,lastStartLoc:B}=R,N=o(8,C,B);return F.type!==12?(i(m,fo.UNEXPECTED_EMPTY_LINKED_MODIFIER,R.lastStartLoc,0),N.value="",l(N,C,B),{nextConsumeToken:F,node:N}):(F.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,R.lastStartLoc,0,sf(F)),N.value=F.value||"",l(N,m.currentOffset(),m.currentPosition()),{node:N})}function f(m,F){const R=m.context(),C=o(7,R.offset,R.startLoc);return C.value=F,l(C,m.currentOffset(),m.currentPosition()),C}function g(m){const F=m.context(),R=o(6,F.offset,F.startLoc);let C=m.nextToken();if(C.type===9){const B=h(m);R.modifier=B.node,C=B.nextConsumeToken||m.nextToken()}switch(C.type!==10&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(C)),C=m.nextToken(),C.type===2&&(C=m.nextToken()),C.type){case 11:C.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(C)),R.key=f(m,C.value||"");break;case 5:C.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(C)),R.key=c(m,C.value||"");break;case 6:C.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(C)),R.key=d(m,C.value||"");break;case 7:C.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(C)),R.key=u(m,C.value||"");break;default:{i(m,fo.UNEXPECTED_EMPTY_LINKED_KEY,F.lastStartLoc,0);const B=m.context(),N=o(7,B.offset,B.startLoc);return N.value="",l(N,B.offset,B.startLoc),R.key=N,l(R,B.offset,B.startLoc),{nextConsumeToken:C,node:R}}}return l(R,m.currentOffset(),m.currentPosition()),{node:R}}function A(m){const F=m.context(),R=F.currentType===1?m.currentOffset():F.offset,C=F.currentType===1?F.endLoc:F.startLoc,B=o(2,R,C);B.items=[];let N=null,S=null;do{const E=N||m.nextToken();switch(N=null,E.type){case 0:E.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(E)),B.items.push(s(m,E.value||""));break;case 6:E.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(E)),B.items.push(d(m,E.value||""));break;case 4:S=!0;break;case 5:E.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(E)),B.items.push(c(m,E.value||"",!!S)),S&&(a(m,hQ.USE_MODULO_SYNTAX,F.lastStartLoc,0,sf(E)),S=null);break;case 7:E.value==null&&i(m,fo.UNEXPECTED_LEXICAL_ANALYSIS,F.lastStartLoc,0,sf(E)),B.items.push(u(m,E.value||""));break;case 8:{const v=g(m);B.items.push(v.node),N=v.nextConsumeToken||null;break}}}while(F.currentType!==14&&F.currentType!==1);const X=F.currentType===1?F.lastOffset:m.currentOffset(),J=F.currentType===1?F.lastEndLoc:m.currentPosition();return l(B,X,J),B}function b(m,F,R,C){const B=m.context();let N=C.items.length===0;const S=o(1,F,R);S.cases=[],S.cases.push(C);do{const X=A(m);N||(N=X.items.length===0),S.cases.push(X)}while(B.currentType!==14);return N&&i(m,fo.MUST_HAVE_MESSAGES_IN_PLURAL,R,0),l(S,m.currentOffset(),m.currentPosition()),S}function p(m){const F=m.context(),{offset:R,startLoc:C}=F,B=A(m);return F.currentType===14?B:b(m,R,C,B)}function y(m){const F=HX(m,ZV({},t)),R=F.context(),C=o(0,R.offset,R.startLoc);return e&&C.loc&&(C.loc.source=m),C.body=p(F),t.onCacheKey&&(C.cacheKey=t.onCacheKey(m)),R.currentType!==14&&i(F,fo.UNEXPECTED_LEXICAL_ANALYSIS,R.lastStartLoc,0,m[R.offset]||""),l(C,F.currentOffset(),F.currentPosition()),C}return{parse:y}}function sf(t){if(t.type===14)return"EOF";const e=(t.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function zX(t,e={}){const n={ast:t,helpers:new Set};return{context:()=>n,helper:a=>(n.helpers.add(a),a)}}function zR(t,e){for(let n=0;n<t.length;n++)gQ(t[n],e)}function gQ(t,e){switch(t.type){case 1:zR(t.cases,e),e.helper("plural");break;case 2:zR(t.items,e);break;case 6:{gQ(t.key,e),e.helper("linked"),e.helper("type");break}case 5:e.helper("interpolate"),e.helper("list");break;case 4:e.helper("interpolate"),e.helper("named");break}}function jX(t,e={}){const n=zX(t);n.helper("normalize"),t.body&&gQ(t.body,n);const r=n.context();t.helpers=Array.from(r.helpers)}function _X(t){const e=t.body;return e.type===2?jR(e):e.cases.forEach(n=>jR(n)),t}function jR(t){if(t.items.length===1){const e=t.items[0];(e.type===3||e.type===9)&&(t.static=e.value,delete e.value)}else{const e=[];for(let n=0;n<t.items.length;n++){const r=t.items[n];if(!(r.type===3||r.type===9)||r.value==null)break;e.push(r.value)}if(e.length===t.items.length){t.static=IV(e);for(let n=0;n<t.items.length;n++){const r=t.items[n];(r.type===3||r.type===9)&&delete r.value}}}}const $X="minifier";function ap(t){switch(t.t=t.type,t.type){case 0:{const e=t;ap(e.body),e.b=e.body,delete e.body;break}case 1:{const e=t,n=e.cases;for(let r=0;r<n.length;r++)ap(n[r]);e.c=n,delete e.cases;break}case 2:{const e=t,n=e.items;for(let r=0;r<n.length;r++)ap(n[r]);e.i=n,delete e.items,e.static&&(e.s=e.static,delete e.static);break}case 3:case 9:case 8:case 7:{const e=t;e.value&&(e.v=e.value,delete e.value);break}case 6:{const e=t;ap(e.key),e.k=e.key,delete e.key,e.modifier&&(ap(e.modifier),e.m=e.modifier,delete e.modifier);break}case 5:{const e=t;e.i=e.index,delete e.index;break}case 4:{const e=t;e.k=e.key,delete e.key;break}default:throw Ep(fo.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:$X,args:[t.type]})}delete t.type}const qX="parser";function ek(t,e){const{sourceMap:n,filename:r,breakLineCode:i,needIndent:a}=e,o=e.location!==!1,l={filename:r,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:i,needIndent:a,indentLevel:0};o&&t.loc&&(l.source=t.loc.source);const s=()=>l;function d(b,p){l.code+=b}function c(b,p=!0){const y=p?i:"";d(a?y+" ".repeat(b):y)}function u(b=!0){const p=++l.indentLevel;b&&c(p)}function h(b=!0){const p=--l.indentLevel;b&&c(p)}function f(){c(l.indentLevel)}return{context:s,push:d,indent:u,deindent:h,newline:f,helper:b=>`_${b}`,needIndent:()=>l.needIndent}}function tk(t,e){const{helper:n}=t;t.push(`${n("linked")}(`),yp(t,e.key),e.modifier?(t.push(", "),yp(t,e.modifier),t.push(", _type")):t.push(", undefined, _type"),t.push(")")}function nk(t,e){const{helper:n,needIndent:r}=t;t.push(`${n("normalize")}([`),t.indent(r());const i=e.items.length;for(let a=0;a<i&&(yp(t,e.items[a]),a!==i-1);a++)t.push(", ");t.deindent(r()),t.push("])")}function rk(t,e){const{helper:n,needIndent:r}=t;if(e.cases.length>1){t.push(`${n("plural")}([`),t.indent(r());const i=e.cases.length;for(let a=0;a<i&&(yp(t,e.cases[a]),a!==i-1);a++)t.push(", ");t.deindent(r()),t.push("])")}}function ik(t,e){e.body?yp(t,e.body):t.push("null")}function yp(t,e){const{helper:n}=t;switch(e.type){case 0:ik(t,e);break;case 1:rk(t,e);break;case 2:nk(t,e);break;case 6:tk(t,e);break;case 8:t.push(JSON.stringify(e.value),e);break;case 7:t.push(JSON.stringify(e.value),e);break;case 5:t.push(`${n("interpolate")}(${n("list")}(${e.index}))`,e);break;case 4:t.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(e.key)}))`,e);break;case 9:t.push(JSON.stringify(e.value),e);break;case 3:t.push(JSON.stringify(e.value),e);break;default:throw Ep(fo.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:qX,args:[e.type]})}}const ak=(t,e={})=>{const n=KR(e.mode)?e.mode:"normal",r=KR(e.filename)?e.filename:"message.intl",i=!!e.sourceMap,a=e.breakLineCode!=null?e.breakLineCode:n==="arrow"?";":` `,o=e.needIndent?e.needIndent:n!=="arrow",l=t.helpers||[],s=ek(t,{mode:n,filename:r,sourceMap:i,breakLineCode:a,needIndent:o});s.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),s.indent(o),l.length>0&&(s.push(`const { ${IV(l.map(u=>`${u}: _${u}`),", ")} } = ctx`),s.newline()),s.push("return "),yp(s,t),s.deindent(o),s.push("}"),delete t.helpers;const{code:d,map:c}=s.context();return{ast:t,code:d,map:c?c.toJSON():void 0}};function ok(t,e={}){const n=ZV({},e),r=!!n.jit,i=!!n.minify,a=n.optimize==null?!0:n.optimize,l=PX(n).parse(t);return r?(a&&_X(l),i&&ap(l),{ast:l,code:""}):(jX(l,n),ak(l,n))}/*! * core-base v9.14.2 * (c) 2024 kazuya kawaguchi * Released under the MIT License. */function lk(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(hh().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(hh().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(hh().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}const mg=[];mg[0]={w:[0],i:[3,0],"[":[4],o:[7]};mg[1]={w:[1],".":[2],"[":[4],o:[7]};mg[2]={w:[2],i:[3,0],0:[3,0]};mg[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};mg[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};mg[5]={"'":[4,0],o:8,l:[5,0]};mg[6]={'"':[4,0],o:8,l:[6,0]};const sk=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function dk(t){return sk.test(t)}function ck(t){const e=t.charCodeAt(0),n=t.charCodeAt(t.length-1);return e===n&&(e===34||e===39)?t.slice(1,-1):t}function uk(t){if(t==null)return"o";switch(t.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return t;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function fk(t){const e=t.trim();return t.charAt(0)==="0"&&isNaN(parseInt(t))?!1:dk(e)?ck(e):"*"+e}function hk(t){const e=[];let n=-1,r=0,i=0,a,o,l,s,d,c,u;const h=[];h[0]=()=>{o===void 0?o=l:o+=l},h[1]=()=>{o!==void 0&&(e.push(o),o=void 0)},h[2]=()=>{h[0](),i++},h[3]=()=>{if(i>0)i--,r=4,h[0]();else{if(i=0,o===void 0||(o=fk(o),o===!1))return!1;h[1]()}};function f(){const g=t[n+1];if(r===5&&g==="'"||r===6&&g==='"')return n++,l="\\"+g,h[0](),!0}for(;r!==null;)if(n++,a=t[n],!(a==="\\"&&f())){if(s=uk(a),u=mg[r],d=u[s]||u.l||8,d===8||(r=d[0],d[1]!==void 0&&(c=h[d[1]],c&&(l=a,c()===!1))))return;if(r===7)return e}}const _R=new Map;function gk(t,e){return Dl(t)?t[e]:null}function Ak(t,e){if(!Dl(t))return null;let n=_R.get(e);if(n||(n=hk(e),n&&_R.set(e,n)),!n)return null;const r=n.length;let i=t,a=0;for(;a<r;){const o=i[n[a]];if(o===void 0||$s(i))return null;i=o,a++}return i}const pk=t=>t,mk=t=>"",bk="text",yk=t=>t.length===0?"":VX(t),Fk=vX;function $R(t,e){return t=Math.abs(t),e===2?t?t>1?1:0:1:t?Math.min(t,2):0}function Qk(t){const e=$d(t.pluralIndex)?t.pluralIndex:-1;return t.named&&($d(t.named.count)||$d(t.named.n))?$d(t.named.count)?t.named.count:$d(t.named.n)?t.named.n:e:e}function Uk(t,e){e.count||(e.count=t),e.n||(e.n=t)}function Rk(t={}){const e=t.locale,n=Qk(t),r=Dl(t.pluralRules)&&Ei(e)&&$s(t.pluralRules[e])?t.pluralRules[e]:$R,i=Dl(t.pluralRules)&&Ei(e)&&$s(t.pluralRules[e])?$R:void 0,a=p=>p[r(n,p.length,i)],o=t.list||[],l=p=>o[p],s=t.named||vs();$d(t.pluralIndex)&&Uk(n,s);const d=p=>s[p];function c(p){const y=$s(t.messages)?t.messages(p):Dl(t.messages)?t.messages[p]:!1;return y||(t.parent?t.parent.message(p):mk)}const u=p=>t.modifiers?t.modifiers[p]:pk,h=Zo(t.processor)&&$s(t.processor.normalize)?t.processor.normalize:yk,f=Zo(t.processor)&&$s(t.processor.interpolate)?t.processor.interpolate:Fk,g=Zo(t.processor)&&Ei(t.processor.type)?t.processor.type:bk,b={list:l,named:d,plural:a,linked:(p,...y)=>{const[m,F]=y;let R="text",C="";y.length===1?Dl(m)?(C=m.modifier||C,R=m.type||R):Ei(m)&&(C=m||C):y.length===2&&(Ei(m)&&(C=m||C),Ei(F)&&(R=F||R));const B=c(p)(b),N=R==="vnode"&&cd(B)&&C?B[0]:B;return C?u(C)(N,R):N},message:c,type:g,interpolate:f,normalize:h,values:Lc(vs(),o,s)};return b}let t0=null;function Bk(t){t0=t}function Zk(t,e,n){t0&&t0.emit("i18n:init",{timestamp:Date.now(),i18n:t,version:e,meta:n})}const Ik=Ck("function:translate");function Ck(t){return e=>t0&&t0.emit(t,e)}const CV=hQ.__EXTEND_POINT__,jg=Iy(CV),vk={NOT_FOUND_KEY:CV,FALLBACK_TO_TRANSLATE:jg(),CANNOT_FORMAT_NUMBER:jg(),FALLBACK_TO_NUMBER_FORMAT:jg(),CANNOT_FORMAT_DATE:jg(),FALLBACK_TO_DATE_FORMAT:jg(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:jg(),__EXTEND_POINT__:jg()},vV=fo.__EXTEND_POINT__,_g=Iy(vV),ff={INVALID_ARGUMENT:vV,INVALID_DATE_ARGUMENT:_g(),INVALID_ISO_DATE_ARGUMENT:_g(),NOT_SUPPORT_NON_STRING_MESSAGE:_g(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:_g(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:_g(),NOT_SUPPORT_LOCALE_TYPE:_g(),__EXTEND_POINT__:_g()};function Tf(t){return Ep(t,null,void 0)}function AQ(t,e){return e.locale!=null?qR(e.locale):qR(t.locale)}let YF;function qR(t){if(Ei(t))return t;if($s(t)){if(t.resolvedOnce&&YF!=null)return YF;if(t.constructor.name==="Function"){const e=t();if(CX(e))throw Tf(ff.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return YF=e}else throw Tf(ff.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Tf(ff.NOT_SUPPORT_LOCALE_TYPE)}function Vk(t,e,n){return[...new Set([n,...cd(e)?e:Dl(e)?Object.keys(e):Ei(e)?[e]:[n]])]}function VV(t,e,n){const r=Ei(n)?n:Fp,i=t;i.__localeChainCache||(i.__localeChainCache=new Map);let a=i.__localeChainCache.get(r);if(!a){a=[];let o=[n];for(;cd(o);)o=eB(a,o,e);const l=cd(e)||!Zo(e)?e:e.default?e.default:null;o=Ei(l)?[l]:l,cd(o)&&eB(a,o,!1),i.__localeChainCache.set(r,a)}return a}function eB(t,e,n){let r=!0;for(let i=0;i<e.length&&rl(r);i++){const a=e[i];Ei(a)&&(r=Ek(t,e[i],n))}return r}function Ek(t,e,n){let r;const i=e.split("-");do{const a=i.join("-");r=Sk(t,a,n),i.splice(-1,1)}while(i.length&&r===!0);return r}function Sk(t,e,n){let r=!1;if(!t.includes(e)&&(r=!0,e)){r=e[e.length-1]!=="!";const i=e.replace(/!/g,"");t.push(i),(cd(n)||Zo(n))&&n[i]&&(r=n[i])}return r}const Wk="9.14.2",Cy=-1,Fp="en-US",tB="",nB=t=>`${t.charAt(0).toLocaleUpperCase()}${t.substr(1)}`;function Nk(){return{upper:(t,e)=>e==="text"&&Ei(t)?t.toUpperCase():e==="vnode"&&Dl(t)&&"__v_isVNode"in t?t.children.toUpperCase():t,lower:(t,e)=>e==="text"&&Ei(t)?t.toLowerCase():e==="vnode"&&Dl(t)&&"__v_isVNode"in t?t.children.toLowerCase():t,capitalize:(t,e)=>e==="text"&&Ei(t)?nB(t):e==="vnode"&&Dl(t)&&"__v_isVNode"in t?nB(t.children):t}}let EV;function rB(t){EV=t}let SV;function Gk(t){SV=t}let WV;function Jk(t){WV=t}let NV=null;const Tk=t=>{NV=t},Xk=()=>NV;let GV=null;const iB=t=>{GV=t},kk=()=>GV;let aB=0;function wk(t={}){const e=$s(t.onWarn)?t.onWarn:EX,n=Ei(t.version)?t.version:Wk,r=Ei(t.locale)||$s(t.locale)?t.locale:Fp,i=$s(r)?Fp:r,a=cd(t.fallbackLocale)||Zo(t.fallbackLocale)||Ei(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:i,o=Zo(t.messages)?t.messages:DF(i),l=Zo(t.datetimeFormats)?t.datetimeFormats:DF(i),s=Zo(t.numberFormats)?t.numberFormats:DF(i),d=Lc(vs(),t.modifiers,Nk()),c=t.pluralRules||vs(),u=$s(t.missing)?t.missing:null,h=rl(t.missingWarn)||ug(t.missingWarn)?t.missingWarn:!0,f=rl(t.fallbackWarn)||ug(t.fallbackWarn)?t.fallbackWarn:!0,g=!!t.fallbackFormat,A=!!t.unresolving,b=$s(t.postTranslation)?t.postTranslation:null,p=Zo(t.processor)?t.processor:null,y=rl(t.warnHtmlMessage)?t.warnHtmlMessage:!0,m=!!t.escapeParameter,F=$s(t.messageCompiler)?t.messageCompiler:EV,R=$s(t.messageResolver)?t.messageResolver:SV||gk,C=$s(t.localeFallbacker)?t.localeFallbacker:WV||Vk,B=Dl(t.fallbackContext)?t.fallbackContext:void 0,N=t,S=Dl(N.__datetimeFormatters)?N.__datetimeFormatters:new Map,X=Dl(N.__numberFormatters)?N.__numberFormatters:new Map,J=Dl(N.__meta)?N.__meta:{};aB++;const E={version:n,cid:aB,locale:r,fallbackLocale:a,messages:o,modifiers:d,pluralRules:c,missing:u,missingWarn:h,fallbackWarn:f,fallbackFormat:g,unresolving:A,postTranslation:b,processor:p,warnHtmlMessage:y,escapeParameter:m,messageCompiler:F,messageResolver:R,localeFallbacker:C,fallbackContext:B,onWarn:e,__meta:J};return E.datetimeFormats=l,E.numberFormats=s,E.__datetimeFormatters=S,E.__numberFormatters=X,__INTLIFY_PROD_DEVTOOLS__&&Zk(E,n,J),E}const DF=t=>({[t]:vs()});function pQ(t,e,n,r,i){const{missing:a,onWarn:o}=t;if(a!==null){const l=a(t,n,e,i);return Ei(l)?l:e}else return e}function mm(t,e,n){const r=t;r.__localeChainCache=new Map,t.localeFallbacker(t,n,e)}function Yk(t,e){return t===e?!1:t.split("-")[0]===e.split("-")[0]}function Dk(t,e){const n=e.indexOf(t);if(n===-1)return!1;for(let r=n+1;r<e.length;r++)if(Yk(t,e[r]))return!0;return!1}function MF(t){return n=>Mk(n,t)}function Mk(t,e){const n=Hk(e);if(n==null)throw n0(0);if(mQ(n)===1){const a=Ok(n);return t.plural(a.reduce((o,l)=>[...o,oB(t,l)],[]))}else return oB(t,n)}const Lk=["b","body"];function Hk(t){return bg(t,Lk)}const xk=["c","cases"];function Ok(t){return bg(t,xk,[])}function oB(t,e){const n=Pk(e);if(n!=null)return t.type==="text"?n:t.normalize([n]);{const r=jk(e).reduce((i,a)=>[...i,X1(t,a)],[]);return t.normalize(r)}}const Kk=["s","static"];function Pk(t){return bg(t,Kk)}const zk=["i","items"];function jk(t){return bg(t,zk,[])}function X1(t,e){const n=mQ(e);switch(n){case 3:return hb(e,n);case 9:return hb(e,n);case 4:{const r=e;if(uf(r,"k")&&r.k)return t.interpolate(t.named(r.k));if(uf(r,"key")&&r.key)return t.interpolate(t.named(r.key));throw n0(n)}case 5:{const r=e;if(uf(r,"i")&&$d(r.i))return t.interpolate(t.list(r.i));if(uf(r,"index")&&$d(r.index))return t.interpolate(t.list(r.index));throw n0(n)}case 6:{const r=e,i=ew(r),a=nw(r);return t.linked(X1(t,a),i?X1(t,i):void 0,t.type)}case 7:return hb(e,n);case 8:return hb(e,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const _k=["t","type"];function mQ(t){return bg(t,_k)}const $k=["v","value"];function hb(t,e){const n=bg(t,$k);if(n)return n;throw n0(e)}const qk=["m","modifier"];function ew(t){return bg(t,qk)}const tw=["k","key"];function nw(t){const e=bg(t,tw);if(e)return e;throw n0(6)}function bg(t,e,n){for(let r=0;r<e.length;r++){const i=e[r];if(uf(t,i)&&t[i]!=null)return t[i]}return n}function n0(t){return new Error(`unhandled node type: ${t}`)}const JV=t=>t;let op=vs();function Qp(t){return Dl(t)&&mQ(t)===0&&(uf(t,"b")||uf(t,"body"))}function TV(t,e={}){let n=!1;const r=e.onError||XX;return e.onError=i=>{n=!0,r(i)},{...ok(t,e),detectError:n}}const rw=(t,e)=>{if(!Ei(t))throw Tf(ff.NOT_SUPPORT_NON_STRING_MESSAGE);{rl(e.warnHtmlMessage)&&e.warnHtmlMessage;const r=(e.onCacheKey||JV)(t),i=op[r];if(i)return i;const{code:a,detectError:o}=TV(t,e),l=new Function(`return ${a}`)();return o?l:op[r]=l}};function iw(t,e){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&Ei(t)){rl(e.warnHtmlMessage)&&e.warnHtmlMessage;const r=(e.onCacheKey||JV)(t),i=op[r];if(i)return i;const{ast:a,detectError:o}=TV(t,{...e,location:!1,jit:!0}),l=MF(a);return o?l:op[r]=l}else{const n=t.cacheKey;if(n){const r=op[n];return r||(op[n]=MF(t))}else return MF(t)}}const lB=()=>"",Du=t=>$s(t);function sB(t,...e){const{fallbackFormat:n,postTranslation:r,unresolving:i,messageCompiler:a,fallbackLocale:o,messages:l}=t,[s,d]=k1(...e),c=rl(d.missingWarn)?d.missingWarn:t.missingWarn,u=rl(d.fallbackWarn)?d.fallbackWarn:t.fallbackWarn,h=rl(d.escapeParameter)?d.escapeParameter:t.escapeParameter,f=!!d.resolvedMessage,g=Ei(d.default)||rl(d.default)?rl(d.default)?a?s:()=>s:d.default:n?a?s:()=>s:"",A=n||g!=="",b=AQ(t,d);h&&aw(d);let[p,y,m]=f?[s,b,l[b]||vs()]:XV(t,s,b,o,u,c),F=p,R=s;if(!f&&!(Ei(F)||Qp(F)||Du(F))&&A&&(F=g,R=F),!f&&(!(Ei(F)||Qp(F)||Du(F))||!Ei(y)))return i?Cy:s;let C=!1;const B=()=>{C=!0},N=Du(F)?F:kV(t,s,y,F,R,B);if(C)return F;const S=sw(t,y,m,d),X=Rk(S),J=ow(t,N,X),E=r?r(J,s):J;if(__INTLIFY_PROD_DEVTOOLS__){const v={timestamp:Date.now(),key:Ei(s)?s:Du(F)?F.key:"",locale:y||(Du(F)?F.locale:""),format:Ei(F)?F:Du(F)?F.source:"",message:E};v.meta=Lc({},t.__meta,Xk()||{}),Ik(v)}return E}function aw(t){cd(t.list)?t.list=t.list.map(e=>Ei(e)?OR(e):e):Dl(t.named)&&Object.keys(t.named).forEach(e=>{Ei(t.named[e])&&(t.named[e]=OR(t.named[e]))})}function XV(t,e,n,r,i,a){const{messages:o,onWarn:l,messageResolver:s,localeFallbacker:d}=t,c=d(t,r,n);let u=vs(),h,f=null;const g="translate";for(let A=0;A<c.length&&(h=c[A],u=o[h]||vs(),(f=s(u,e))===null&&(f=u[e]),!(Ei(f)||Qp(f)||Du(f)));A++)if(!Dk(h,c)){const b=pQ(t,e,h,a,g);b!==e&&(f=b)}return[f,h,u]}function kV(t,e,n,r,i,a){const{messageCompiler:o,warnHtmlMessage:l}=t;if(Du(r)){const d=r;return d.locale=d.locale||n,d.key=d.key||e,d}if(o==null){const d=()=>r;return d.locale=n,d.key=e,d}const s=o(r,lw(t,n,i,r,l,a));return s.locale=n,s.key=e,s.source=r,s}function ow(t,e,n){return e(n)}function k1(...t){const[e,n,r]=t,i=vs();if(!Ei(e)&&!$d(e)&&!Du(e)&&!Qp(e))throw Tf(ff.INVALID_ARGUMENT);const a=$d(e)?String(e):(Du(e),e);return $d(n)?i.plural=n:Ei(n)?i.default=n:Zo(n)&&!Zy(n)?i.named=n:cd(n)&&(i.list=n),$d(r)?i.plural=r:Ei(r)?i.default=r:Zo(r)&&Lc(i,r),[a,i]}function lw(t,e,n,r,i,a){return{locale:e,key:n,warnHtmlMessage:i,onError:o=>{throw a&&a(o),o},onCacheKey:o=>UX(e,n,o)}}function sw(t,e,n,r){const{modifiers:i,pluralRules:a,messageResolver:o,fallbackLocale:l,fallbackWarn:s,missingWarn:d,fallbackContext:c}=t,h={locale:e,modifiers:i,pluralRules:a,messages:f=>{let g=o(n,f);if(g==null&&c){const[,,A]=XV(c,f,e,l,s,d);g=o(A,f)}if(Ei(g)||Qp(g)){let A=!1;const p=kV(t,f,e,g,f,()=>{A=!0});return A?lB:p}else return Du(g)?g:lB}};return t.processor&&(h.processor=t.processor),r.list&&(h.list=r.list),r.named&&(h.named=r.named),$d(r.plural)&&(h.pluralIndex=r.plural),h}function dB(t,...e){const{datetimeFormats:n,unresolving:r,fallbackLocale:i,onWarn:a,localeFallbacker:o}=t,{__datetimeFormatters:l}=t,[s,d,c,u]=w1(...e),h=rl(c.missingWarn)?c.missingWarn:t.missingWarn;rl(c.fallbackWarn)?c.fallbackWarn:t.fallbackWarn;const f=!!c.part,g=AQ(t,c),A=o(t,i,g);if(!Ei(s)||s==="")return new Intl.DateTimeFormat(g,u).format(d);let b={},p,y=null;const m="datetime format";for(let C=0;C<A.length&&(p=A[C],b=n[p]||{},y=b[s],!Zo(y));C++)pQ(t,s,p,h,m);if(!Zo(y)||!Ei(p))return r?Cy:s;let F=`${p}__${s}`;Zy(u)||(F=`${F}__${JSON.stringify(u)}`);let R=l.get(F);return R||(R=new Intl.DateTimeFormat(p,Lc({},y,u)),l.set(F,R)),f?R.formatToParts(d):R.format(d)}const wV=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function w1(...t){const[e,n,r,i]=t,a=vs();let o=vs(),l;if(Ei(e)){const s=e.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!s)throw Tf(ff.INVALID_ISO_DATE_ARGUMENT);const d=s[3]?s[3].trim().startsWith("T")?`${s[1].trim()}${s[3].trim()}`:`${s[1].trim()}T${s[3].trim()}`:s[1].trim();l=new Date(d);try{l.toISOString()}catch{throw Tf(ff.INVALID_ISO_DATE_ARGUMENT)}}else if(BX(e)){if(isNaN(e.getTime()))throw Tf(ff.INVALID_DATE_ARGUMENT);l=e}else if($d(e))l=e;else throw Tf(ff.INVALID_ARGUMENT);return Ei(n)?a.key=n:Zo(n)&&Object.keys(n).forEach(s=>{wV.includes(s)?o[s]=n[s]:a[s]=n[s]}),Ei(r)?a.locale=r:Zo(r)&&(o=r),Zo(i)&&(o=i),[a.key||"",l,a,o]}function cB(t,e,n){const r=t;for(const i in n){const a=`${e}__${i}`;r.__datetimeFormatters.has(a)&&r.__datetimeFormatters.delete(a)}}function uB(t,...e){const{numberFormats:n,unresolving:r,fallbackLocale:i,onWarn:a,localeFallbacker:o}=t,{__numberFormatters:l}=t,[s,d,c,u]=Y1(...e),h=rl(c.missingWarn)?c.missingWarn:t.missingWarn;rl(c.fallbackWarn)?c.fallbackWarn:t.fallbackWarn;const f=!!c.part,g=AQ(t,c),A=o(t,i,g);if(!Ei(s)||s==="")return new Intl.NumberFormat(g,u).format(d);let b={},p,y=null;const m="number format";for(let C=0;C<A.length&&(p=A[C],b=n[p]||{},y=b[s],!Zo(y));C++)pQ(t,s,p,h,m);if(!Zo(y)||!Ei(p))return r?Cy:s;let F=`${p}__${s}`;Zy(u)||(F=`${F}__${JSON.stringify(u)}`);let R=l.get(F);return R||(R=new Intl.NumberFormat(p,Lc({},y,u)),l.set(F,R)),f?R.formatToParts(d):R.format(d)}const YV=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Y1(...t){const[e,n,r,i]=t,a=vs();let o=vs();if(!$d(e))throw Tf(ff.INVALID_ARGUMENT);const l=e;return Ei(n)?a.key=n:Zo(n)&&Object.keys(n).forEach(s=>{YV.includes(s)?o[s]=n[s]:a[s]=n[s]}),Ei(r)?a.locale=r:Zo(r)&&(o=r),Zo(i)&&(o=i),[a.key||"",l,a,o]}function fB(t,e,n){const r=t;for(const i in n){const a=`${e}__${i}`;r.__numberFormatters.has(a)&&r.__numberFormatters.delete(a)}}lk();/*! * vue-i18n v9.14.2 * (c) 2024 kazuya kawaguchi * Released under the MIT License. */const dw="9.14.2";function cw(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(hh().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(hh().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(hh().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(hh().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(hh().__INTLIFY_PROD_DEVTOOLS__=!1)}const DV=vk.__EXTEND_POINT__,oh=Iy(DV);oh(),oh(),oh(),oh(),oh(),oh(),oh(),oh(),oh();const MV=ff.__EXTEND_POINT__,Qu=Iy(MV),Qc={UNEXPECTED_RETURN_TYPE:MV,INVALID_ARGUMENT:Qu(),MUST_BE_CALL_SETUP_TOP:Qu(),NOT_INSTALLED:Qu(),NOT_AVAILABLE_IN_LEGACY_MODE:Qu(),REQUIRED_VALUE:Qu(),INVALID_VALUE:Qu(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Qu(),NOT_INSTALLED_WITH_PROVIDE:Qu(),UNEXPECTED_ERROR:Qu(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Qu(),BRIDGE_SUPPORT_VUE_2_ONLY:Qu(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Qu(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Qu(),__EXTEND_POINT__:Qu()};function Vc(t,...e){return Ep(t,null,void 0)}const D1=pg("__translateVNode"),M1=pg("__datetimeParts"),L1=pg("__numberParts"),LV=pg("__setPluralRules"),HV=pg("__injectWithOption"),H1=pg("__dispose");function r0(t){if(!Dl(t))return t;for(const e in t)if(uf(t,e))if(!e.includes("."))Dl(t[e])&&r0(t[e]);else{const n=e.split("."),r=n.length-1;let i=t,a=!1;for(let o=0;o<r;o++){if(n[o]in i||(i[n[o]]=vs()),!Dl(i[n[o]])){a=!0;break}i=i[n[o]]}a||(i[n[r]]=t[e],delete t[e]),Dl(i[n[r]])&&r0(i[n[r]])}return t}function vy(t,e){const{messages:n,__i18n:r,messageResolver:i,flatJson:a}=e,o=Zo(n)?n:cd(r)?vs():{[t]:vs()};if(cd(r)&&r.forEach(l=>{if("locale"in l&&"resource"in l){const{locale:s,resource:d}=l;s?(o[s]=o[s]||vs(),Eb(d,o[s])):Eb(d,o)}else Ei(l)&&Eb(JSON.parse(l),o)}),i==null&&a)for(const l in o)uf(o,l)&&r0(o[l]);return o}function xV(t){return t.type}function OV(t,e,n){let r=Dl(e.messages)?e.messages:vs();"__i18nGlobal"in n&&(r=vy(t.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const i=Object.keys(r);i.length&&i.forEach(a=>{t.mergeLocaleMessage(a,r[a])});{if(Dl(e.datetimeFormats)){const a=Object.keys(e.datetimeFormats);a.length&&a.forEach(o=>{t.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(Dl(e.numberFormats)){const a=Object.keys(e.numberFormats);a.length&&a.forEach(o=>{t.mergeNumberFormat(o,e.numberFormats[o])})}}}function hB(t){return Fn(D0,null,t,0)}const gB="__INTLIFY_META__",AB=()=>[],uw=()=>!1;let pB=0;function mB(t){return(e,n,r,i)=>t(n,r,sg()||void 0,i)}const fw=()=>{const t=sg();let e=null;return t&&(e=xV(t)[gB])?{[gB]:e}:null};function bQ(t={},e){const{__root:n,__injectWithOption:r}=t,i=n===void 0,a=t.flatJson,o=$b?hn:O2,l=!!t.translateExistCompatible;let s=rl(t.inheritLocale)?t.inheritLocale:!0;const d=o(n&&s?n.locale.value:Ei(t.locale)?t.locale:Fp),c=o(n&&s?n.fallbackLocale.value:Ei(t.fallbackLocale)||cd(t.fallbackLocale)||Zo(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:d.value),u=o(vy(d.value,t)),h=o(Zo(t.datetimeFormats)?t.datetimeFormats:{[d.value]:{}}),f=o(Zo(t.numberFormats)?t.numberFormats:{[d.value]:{}});let g=n?n.missingWarn:rl(t.missingWarn)||ug(t.missingWarn)?t.missingWarn:!0,A=n?n.fallbackWarn:rl(t.fallbackWarn)||ug(t.fallbackWarn)?t.fallbackWarn:!0,b=n?n.fallbackRoot:rl(t.fallbackRoot)?t.fallbackRoot:!0,p=!!t.fallbackFormat,y=$s(t.missing)?t.missing:null,m=$s(t.missing)?mB(t.missing):null,F=$s(t.postTranslation)?t.postTranslation:null,R=n?n.warnHtmlMessage:rl(t.warnHtmlMessage)?t.warnHtmlMessage:!0,C=!!t.escapeParameter;const B=n?n.modifiers:Zo(t.modifiers)?t.modifiers:{};let N=t.pluralRules||n&&n.pluralRules,S;S=(()=>{i&&iB(null);const _e={version:dw,locale:d.value,fallbackLocale:c.value,messages:u.value,modifiers:B,pluralRules:N,missing:m===null?void 0:m,missingWarn:g,fallbackWarn:A,fallbackFormat:p,unresolving:!0,postTranslation:F===null?void 0:F,warnHtmlMessage:R,escapeParameter:C,messageResolver:t.messageResolver,messageCompiler:t.messageCompiler,__meta:{framework:"vue"}};_e.datetimeFormats=h.value,_e.numberFormats=f.value,_e.__datetimeFormatters=Zo(S)?S.__datetimeFormatters:void 0,_e.__numberFormatters=Zo(S)?S.__numberFormatters:void 0;const we=wk(_e);return i&&iB(we),we})(),mm(S,d.value,c.value);function J(){return[d.value,c.value,u.value,h.value,f.value]}const E=qs({get:()=>d.value,set:_e=>{d.value=_e,S.locale=d.value}}),v=qs({get:()=>c.value,set:_e=>{c.value=_e,S.fallbackLocale=c.value,mm(S,d.value,_e)}}),j=qs(()=>u.value),H=qs(()=>h.value),K=qs(()=>f.value);function Fe(){return $s(F)?F:null}function z(_e){F=_e,S.postTranslation=_e}function q(){return y}function Ae(_e){_e!==null&&(m=mB(_e)),y=_e,S.missing=m}const Ke=(_e,we,nt,Gt,An,Dn)=>{J();let tr;try{__INTLIFY_PROD_DEVTOOLS__,i||(S.fallbackContext=n?kk():void 0),tr=_e(S)}finally{__INTLIFY_PROD_DEVTOOLS__,i||(S.fallbackContext=void 0)}if(nt!=="translate exists"&&$d(tr)&&tr===Cy||nt==="translate exists"&&!tr){const[nr,zn]=we();return n&&b?Gt(n):An(nr)}else{if(Dn(tr))return tr;throw Vc(Qc.UNEXPECTED_RETURN_TYPE)}};function pe(..._e){return Ke(we=>Reflect.apply(sB,null,[we,..._e]),()=>k1(..._e),"translate",we=>Reflect.apply(we.t,we,[..._e]),we=>we,we=>Ei(we))}function We(..._e){const[we,nt,Gt]=_e;if(Gt&&!Dl(Gt))throw Vc(Qc.INVALID_ARGUMENT);return pe(we,nt,Lc({resolvedMessage:!0},Gt||{}))}function xe(..._e){return Ke(we=>Reflect.apply(dB,null,[we,..._e]),()=>w1(..._e),"datetime format",we=>Reflect.apply(we.d,we,[..._e]),()=>tB,we=>Ei(we))}function $e(..._e){return Ke(we=>Reflect.apply(uB,null,[we,..._e]),()=>Y1(..._e),"number format",we=>Reflect.apply(we.n,we,[..._e]),()=>tB,we=>Ei(we))}function Rt(_e){return _e.map(we=>Ei(we)||$d(we)||rl(we)?hB(String(we)):we)}const qe={normalize:Rt,interpolate:_e=>_e,type:"vnode"};function at(..._e){return Ke(we=>{let nt;const Gt=we;try{Gt.processor=qe,nt=Reflect.apply(sB,null,[Gt,..._e])}finally{Gt.processor=null}return nt},()=>k1(..._e),"translate",we=>we[D1](..._e),we=>[hB(we)],we=>cd(we))}function Bt(..._e){return Ke(we=>Reflect.apply(uB,null,[we,..._e]),()=>Y1(..._e),"number format",we=>we[L1](..._e),AB,we=>Ei(we)||cd(we))}function jt(..._e){return Ke(we=>Reflect.apply(dB,null,[we,..._e]),()=>w1(..._e),"datetime format",we=>we[M1](..._e),AB,we=>Ei(we)||cd(we))}function Ne(_e){N=_e,S.pluralRules=N}function Je(_e,we){return Ke(()=>{if(!_e)return!1;const nt=Ei(we)?we:d.value,Gt=it(nt),An=S.messageResolver(Gt,_e);return l?An!=null:Qp(An)||Du(An)||Ei(An)},()=>[_e],"translate exists",nt=>Reflect.apply(nt.te,nt,[_e,we]),uw,nt=>rl(nt))}function ve(_e){let we=null;const nt=VV(S,c.value,d.value);for(let Gt=0;Gt<nt.length;Gt++){const An=u.value[nt[Gt]]||{},Dn=S.messageResolver(An,_e);if(Dn!=null){we=Dn;break}}return we}function Ye(_e){const we=ve(_e);return we??(n?n.tm(_e)||{}:{})}function it(_e){return u.value[_e]||{}}function Qt(_e,we){if(a){const nt={[_e]:we};for(const Gt in nt)uf(nt,Gt)&&r0(nt[Gt]);we=nt[_e]}u.value[_e]=we,S.messages=u.value}function _t(_e,we){u.value[_e]=u.value[_e]||{};const nt={[_e]:we};if(a)for(const Gt in nt)uf(nt,Gt)&&r0(nt[Gt]);we=nt[_e],Eb(we,u.value[_e]),S.messages=u.value}function Dt(_e){return h.value[_e]||{}}function Ee(_e,we){h.value[_e]=we,S.datetimeFormats=h.value,cB(S,_e,we)}function Ge(_e,we){h.value[_e]=Lc(h.value[_e]||{},we),S.datetimeFormats=h.value,cB(S,_e,we)}function he(_e){return f.value[_e]||{}}function $(_e,we){f.value[_e]=we,S.numberFormats=f.value,fB(S,_e,we)}function ie(_e,we){f.value[_e]=Lc(f.value[_e]||{},we),S.numberFormats=f.value,fB(S,_e,we)}pB++,n&&$b&&(yi(n.locale,_e=>{s&&(d.value=_e,S.locale=_e,mm(S,d.value,c.value))}),yi(n.fallbackLocale,_e=>{s&&(c.value=_e,S.fallbackLocale=_e,mm(S,d.value,c.value))}));const Ve={id:pB,locale:E,fallbackLocale:v,get inheritLocale(){return s},set inheritLocale(_e){s=_e,_e&&n&&(d.value=n.locale.value,c.value=n.fallbackLocale.value,mm(S,d.value,c.value))},get availableLocales(){return Object.keys(u.value).sort()},messages:j,get modifiers(){return B},get pluralRules(){return N||{}},get isGlobal(){return i},get missingWarn(){return g},set missingWarn(_e){g=_e,S.missingWarn=g},get fallbackWarn(){return A},set fallbackWarn(_e){A=_e,S.fallbackWarn=A},get fallbackRoot(){return b},set fallbackRoot(_e){b=_e},get fallbackFormat(){return p},set fallbackFormat(_e){p=_e,S.fallbackFormat=p},get warnHtmlMessage(){return R},set warnHtmlMessage(_e){R=_e,S.warnHtmlMessage=_e},get escapeParameter(){return C},set escapeParameter(_e){C=_e,S.escapeParameter=_e},t:pe,getLocaleMessage:it,setLocaleMessage:Qt,mergeLocaleMessage:_t,getPostTranslationHandler:Fe,setPostTranslationHandler:z,getMissingHandler:q,setMissingHandler:Ae,[LV]:Ne};return Ve.datetimeFormats=H,Ve.numberFormats=K,Ve.rt=We,Ve.te=Je,Ve.tm=Ye,Ve.d=xe,Ve.n=$e,Ve.getDateTimeFormat=Dt,Ve.setDateTimeFormat=Ee,Ve.mergeDateTimeFormat=Ge,Ve.getNumberFormat=he,Ve.setNumberFormat=$,Ve.mergeNumberFormat=ie,Ve[HV]=r,Ve[D1]=at,Ve[M1]=jt,Ve[L1]=Bt,Ve}function hw(t){const e=Ei(t.locale)?t.locale:Fp,n=Ei(t.fallbackLocale)||cd(t.fallbackLocale)||Zo(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:e,r=$s(t.missing)?t.missing:void 0,i=rl(t.silentTranslationWarn)||ug(t.silentTranslationWarn)?!t.silentTranslationWarn:!0,a=rl(t.silentFallbackWarn)||ug(t.silentFallbackWarn)?!t.silentFallbackWarn:!0,o=rl(t.fallbackRoot)?t.fallbackRoot:!0,l=!!t.formatFallbackMessages,s=Zo(t.modifiers)?t.modifiers:{},d=t.pluralizationRules,c=$s(t.postTranslation)?t.postTranslation:void 0,u=Ei(t.warnHtmlInMessage)?t.warnHtmlInMessage!=="off":!0,h=!!t.escapeParameterHtml,f=rl(t.sync)?t.sync:!0;let g=t.messages;if(Zo(t.sharedMessages)){const C=t.sharedMessages;g=Object.keys(C).reduce((N,S)=>{const X=N[S]||(N[S]={});return Lc(X,C[S]),N},g||{})}const{__i18n:A,__root:b,__injectWithOption:p}=t,y=t.datetimeFormats,m=t.numberFormats,F=t.flatJson,R=t.translateExistCompatible;return{locale:e,fallbackLocale:n,messages:g,flatJson:F,datetimeFormats:y,numberFormats:m,missing:r,missingWarn:i,fallbackWarn:a,fallbackRoot:o,fallbackFormat:l,modifiers:s,pluralRules:d,postTranslation:c,warnHtmlMessage:u,escapeParameter:h,messageResolver:t.messageResolver,inheritLocale:f,translateExistCompatible:R,__i18n:A,__root:b,__injectWithOption:p}}function x1(t={},e){{const n=bQ(hw(t)),{__extender:r}=t,i={id:n.id,get locale(){return n.locale.value},set locale(a){n.locale.value=a},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(a){n.fallbackLocale.value=a},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(a){},get missing(){return n.getMissingHandler()},set missing(a){n.setMissingHandler(a)},get silentTranslationWarn(){return rl(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(a){n.missingWarn=rl(a)?!a:a},get silentFallbackWarn(){return rl(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(a){n.fallbackWarn=rl(a)?!a:a},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(a){n.fallbackFormat=a},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(a){n.setPostTranslationHandler(a)},get sync(){return n.inheritLocale},set sync(a){n.inheritLocale=a},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(a){n.warnHtmlMessage=a!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(a){n.escapeParameter=a},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(a){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...a){const[o,l,s]=a,d={};let c=null,u=null;if(!Ei(o))throw Vc(Qc.INVALID_ARGUMENT);const h=o;return Ei(l)?d.locale=l:cd(l)?c=l:Zo(l)&&(u=l),cd(s)?c=s:Zo(s)&&(u=s),Reflect.apply(n.t,n,[h,c||u||{},d])},rt(...a){return Reflect.apply(n.rt,n,[...a])},tc(...a){const[o,l,s]=a,d={plural:1};let c=null,u=null;if(!Ei(o))throw Vc(Qc.INVALID_ARGUMENT);const h=o;return Ei(l)?d.locale=l:$d(l)?d.plural=l:cd(l)?c=l:Zo(l)&&(u=l),Ei(s)?d.locale=s:cd(s)?c=s:Zo(s)&&(u=s),Reflect.apply(n.t,n,[h,c||u||{},d])},te(a,o){return n.te(a,o)},tm(a){return n.tm(a)},getLocaleMessage(a){return n.getLocaleMessage(a)},setLocaleMessage(a,o){n.setLocaleMessage(a,o)},mergeLocaleMessage(a,o){n.mergeLocaleMessage(a,o)},d(...a){return Reflect.apply(n.d,n,[...a])},getDateTimeFormat(a){return n.getDateTimeFormat(a)},setDateTimeFormat(a,o){n.setDateTimeFormat(a,o)},mergeDateTimeFormat(a,o){n.mergeDateTimeFormat(a,o)},n(...a){return Reflect.apply(n.n,n,[...a])},getNumberFormat(a){return n.getNumberFormat(a)},setNumberFormat(a,o){n.setNumberFormat(a,o)},mergeNumberFormat(a,o){n.mergeNumberFormat(a,o)},getChoiceIndex(a,o){return-1}};return i.__extender=r,i}}const yQ={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:t=>t==="parent"||t==="global",default:"parent"},i18n:{type:Object}};function gw({slots:t},e){return e.length===1&&e[0]==="default"?(t.default?t.default():[]).reduce((r,i)=>[...r,...i.type===Er?i.children:[i]],[]):e.reduce((n,r)=>{const i=t[r];return i&&(n[r]=i()),n},vs())}function KV(t){return Er}const Aw=Zp({name:"i18n-t",props:Lc({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:t=>$d(t)||!isNaN(t)}},yQ),setup(t,e){const{slots:n,attrs:r}=e,i=t.i18n||QA({useScope:t.scope,__useComponent:!0});return()=>{const a=Object.keys(n).filter(u=>u!=="_"),o=vs();t.locale&&(o.locale=t.locale),t.plural!==void 0&&(o.plural=Ei(t.plural)?+t.plural:t.plural);const l=gw(e,a),s=i[D1](t.keypath,l,o),d=Lc(vs(),r),c=Ei(t.tag)||Dl(t.tag)?t.tag:KV();return L0(c,d,s)}}}),bB=Aw;function pw(t){return cd(t)&&!Ei(t[0])}function PV(t,e,n,r){const{slots:i,attrs:a}=e;return()=>{const o={part:!0};let l=vs();t.locale&&(o.locale=t.locale),Ei(t.format)?o.key=t.format:Dl(t.format)&&(Ei(t.format.key)&&(o.key=t.format.key),l=Object.keys(t.format).reduce((h,f)=>n.includes(f)?Lc(vs(),h,{[f]:t.format[f]}):h,vs()));const s=r(t.value,o,l);let d=[o.key];cd(s)?d=s.map((h,f)=>{const g=i[h.type],A=g?g({[h.type]:h.value,index:f,parts:s}):[h.value];return pw(A)&&(A[0].key=`${h.type}-${f}`),A}):Ei(s)&&(d=[s]);const c=Lc(vs(),a),u=Ei(t.tag)||Dl(t.tag)?t.tag:KV();return L0(u,c,d)}}const mw=Zp({name:"i18n-n",props:Lc({value:{type:Number,required:!0},format:{type:[String,Object]}},yQ),setup(t,e){const n=t.i18n||QA({useScope:t.scope,__useComponent:!0});return PV(t,e,YV,(...r)=>n[L1](...r))}}),yB=mw,bw=Zp({name:"i18n-d",props:Lc({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},yQ),setup(t,e){const n=t.i18n||QA({useScope:t.scope,__useComponent:!0});return PV(t,e,wV,(...r)=>n[M1](...r))}}),FB=bw;function yw(t,e){const n=t;if(t.mode==="composition")return n.__getInstance(e)||t.global;{const r=n.__getInstance(e);return r!=null?r.__composer:t.global.__composer}}function Fw(t){const e=o=>{const{instance:l,modifiers:s,value:d}=o;if(!l||!l.$)throw Vc(Qc.UNEXPECTED_ERROR);const c=yw(t,l.$),u=QB(d);return[Reflect.apply(c.t,c,[...UB(u)]),c]};return{created:(o,l)=>{const[s,d]=e(l);$b&&t.global===d&&(o.__i18nWatcher=yi(d.locale,()=>{l.instance&&l.instance.$forceUpdate()})),o.__composer=d,o.textContent=s},unmounted:o=>{$b&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:l})=>{if(o.__composer){const s=o.__composer,d=QB(l);o.textContent=Reflect.apply(s.t,s,[...UB(d)])}},getSSRProps:o=>{const[l]=e(o);return{textContent:l}}}}function QB(t){if(Ei(t))return{path:t};if(Zo(t)){if(!("path"in t))throw Vc(Qc.REQUIRED_VALUE,"path");return t}else throw Vc(Qc.INVALID_VALUE)}function UB(t){const{path:e,locale:n,args:r,choice:i,plural:a}=t,o={},l=r||{};return Ei(n)&&(o.locale=n),$d(i)&&(o.plural=i),$d(a)&&(o.plural=a),[e,l,o]}function Qw(t,e,...n){const r=Zo(n[0])?n[0]:{},i=!!r.useI18nComponentName;(rl(r.globalInstall)?r.globalInstall:!0)&&([i?"i18n":bB.name,"I18nT"].forEach(o=>t.component(o,bB)),[yB.name,"I18nN"].forEach(o=>t.component(o,yB)),[FB.name,"I18nD"].forEach(o=>t.component(o,FB))),t.directive("t",Fw(e))}function Uw(t,e,n){return{beforeCreate(){const r=sg();if(!r)throw Vc(Qc.UNEXPECTED_ERROR);const i=this.$options;if(i.i18n){const a=i.i18n;if(i.__i18n&&(a.__i18n=i.__i18n),a.__root=e,this===this.$root)this.$i18n=RB(t,a);else{a.__injectWithOption=!0,a.__extender=n.__vueI18nExtend,this.$i18n=x1(a);const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}}else if(i.__i18n)if(this===this.$root)this.$i18n=RB(t,i);else{this.$i18n=x1({__i18n:i.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:e});const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}else this.$i18n=t;i.__i18nGlobal&&OV(e,i,i),this.$t=(...a)=>this.$i18n.t(...a),this.$rt=(...a)=>this.$i18n.rt(...a),this.$tc=(...a)=>this.$i18n.tc(...a),this.$te=(a,o)=>this.$i18n.te(a,o),this.$d=(...a)=>this.$i18n.d(...a),this.$n=(...a)=>this.$i18n.n(...a),this.$tm=a=>this.$i18n.tm(a),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=sg();if(!r)throw Vc(Qc.UNEXPECTED_ERROR);const i=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,i.__disposer&&(i.__disposer(),delete i.__disposer,delete i.__extender),n.__deleteInstance(r),delete this.$i18n}}}function RB(t,e){t.locale=e.locale||t.locale,t.fallbackLocale=e.fallbackLocale||t.fallbackLocale,t.missing=e.missing||t.missing,t.silentTranslationWarn=e.silentTranslationWarn||t.silentFallbackWarn,t.silentFallbackWarn=e.silentFallbackWarn||t.silentFallbackWarn,t.formatFallbackMessages=e.formatFallbackMessages||t.formatFallbackMessages,t.postTranslation=e.postTranslation||t.postTranslation,t.warnHtmlInMessage=e.warnHtmlInMessage||t.warnHtmlInMessage,t.escapeParameterHtml=e.escapeParameterHtml||t.escapeParameterHtml,t.sync=e.sync||t.sync,t.__composer[LV](e.pluralizationRules||t.pluralizationRules);const n=vy(t.locale,{messages:e.messages,__i18n:e.__i18n});return Object.keys(n).forEach(r=>t.mergeLocaleMessage(r,n[r])),e.datetimeFormats&&Object.keys(e.datetimeFormats).forEach(r=>t.mergeDateTimeFormat(r,e.datetimeFormats[r])),e.numberFormats&&Object.keys(e.numberFormats).forEach(r=>t.mergeNumberFormat(r,e.numberFormats[r])),t}const Rw=pg("global-vue-i18n");function Bw(t={},e){const n=__VUE_I18N_LEGACY_API__&&rl(t.legacy)?t.legacy:__VUE_I18N_LEGACY_API__,r=rl(t.globalInjection)?t.globalInjection:!0,i=__VUE_I18N_LEGACY_API__&&n?!!t.allowComposition:!0,a=new Map,[o,l]=Zw(t,n),s=pg("");function d(h){return a.get(h)||null}function c(h,f){a.set(h,f)}function u(h){a.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return i},async install(f,...g){if(f.__VUE_I18N_SYMBOL__=s,f.provide(f.__VUE_I18N_SYMBOL__,h),Zo(g[0])){const p=g[0];h.__composerExtend=p.__composerExtend,h.__vueI18nExtend=p.__vueI18nExtend}let A=null;!n&&r&&(A=Gw(f,h.global)),__VUE_I18N_FULL_INSTALL__&&Qw(f,h,...g),__VUE_I18N_LEGACY_API__&&n&&f.mixin(Uw(l,l.__composer,h));const b=f.unmount;f.unmount=()=>{A&&A(),h.dispose(),b()}},get global(){return l},dispose(){o.stop()},__instances:a,__getInstance:d,__setInstance:c,__deleteInstance:u};return h}}function QA(t={}){const e=sg();if(e==null)throw Vc(Qc.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw Vc(Qc.NOT_INSTALLED);const n=Iw(e),r=vw(n),i=xV(e),a=Cw(t,i);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!t.__useComponent){if(!n.allowComposition)throw Vc(Qc.NOT_AVAILABLE_IN_LEGACY_MODE);return Ww(e,a,r,t)}if(a==="global")return OV(r,t,i),r;if(a==="parent"){let s=Vw(n,e,t.__useComponent);return s==null&&(s=r),s}const o=n;let l=o.__getInstance(e);if(l==null){const s=Lc({},t);"__i18n"in i&&(s.__i18n=i.__i18n),r&&(s.__root=r),l=bQ(s),o.__composerExtend&&(l[H1]=o.__composerExtend(l)),Sw(o,e,l),o.__setInstance(e,l)}return l}function Zw(t,e,n){const r=T2();{const i=__VUE_I18N_LEGACY_API__&&e?r.run(()=>x1(t)):r.run(()=>bQ(t));if(i==null)throw Vc(Qc.UNEXPECTED_ERROR);return[r,i]}}function Iw(t){{const e=Su(t.isCE?Rw:t.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw Vc(t.isCE?Qc.NOT_INSTALLED_WITH_PROVIDE:Qc.UNEXPECTED_ERROR);return e}}function Cw(t,e){return Zy(t)?"__i18n"in e?"local":"global":t.useScope?t.useScope:"local"}function vw(t){return t.mode==="composition"?t.global:t.global.__composer}function Vw(t,e,n=!1){let r=null;const i=e.root;let a=Ew(e,n);for(;a!=null;){const o=t;if(t.mode==="composition")r=o.__getInstance(a);else if(__VUE_I18N_LEGACY_API__){const l=o.__getInstance(a);l!=null&&(r=l.__composer,n&&r&&!r[HV]&&(r=null))}if(r!=null||i===a)break;a=a.parent}return r}function Ew(t,e=!1){return t==null?null:e&&t.vnode.ctx||t.parent}function Sw(t,e,n){Ka(()=>{},e),Ip(()=>{const r=n;t.__deleteInstance(e);const i=r[H1];i&&(i(),delete r[H1])},e)}function Ww(t,e,n,r={}){const i=e==="local",a=O2(null);if(i&&t.proxy&&!(t.proxy.$options.i18n||t.proxy.$options.__i18n))throw Vc(Qc.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const o=rl(r.inheritLocale)?r.inheritLocale:!Ei(r.locale),l=hn(!i||o?n.locale.value:Ei(r.locale)?r.locale:Fp),s=hn(!i||o?n.fallbackLocale.value:Ei(r.fallbackLocale)||cd(r.fallbackLocale)||Zo(r.fallbackLocale)||r.fallbackLocale===!1?r.fallbackLocale:l.value),d=hn(vy(l.value,r)),c=hn(Zo(r.datetimeFormats)?r.datetimeFormats:{[l.value]:{}}),u=hn(Zo(r.numberFormats)?r.numberFormats:{[l.value]:{}}),h=i?n.missingWarn:rl(r.missingWarn)||ug(r.missingWarn)?r.missingWarn:!0,f=i?n.fallbackWarn:rl(r.fallbackWarn)||ug(r.fallbackWarn)?r.fallbackWarn:!0,g=i?n.fallbackRoot:rl(r.fallbackRoot)?r.fallbackRoot:!0,A=!!r.fallbackFormat,b=$s(r.missing)?r.missing:null,p=$s(r.postTranslation)?r.postTranslation:null,y=i?n.warnHtmlMessage:rl(r.warnHtmlMessage)?r.warnHtmlMessage:!0,m=!!r.escapeParameter,F=i?n.modifiers:Zo(r.modifiers)?r.modifiers:{},R=r.pluralRules||i&&n.pluralRules;function C(){return[l.value,s.value,d.value,c.value,u.value]}const B=qs({get:()=>a.value?a.value.locale.value:l.value,set:ve=>{a.value&&(a.value.locale.value=ve),l.value=ve}}),N=qs({get:()=>a.value?a.value.fallbackLocale.value:s.value,set:ve=>{a.value&&(a.value.fallbackLocale.value=ve),s.value=ve}}),S=qs(()=>a.value?a.value.messages.value:d.value),X=qs(()=>c.value),J=qs(()=>u.value);function E(){return a.value?a.value.getPostTranslationHandler():p}function v(ve){a.value&&a.value.setPostTranslationHandler(ve)}function j(){return a.value?a.value.getMissingHandler():b}function H(ve){a.value&&a.value.setMissingHandler(ve)}function K(ve){return C(),ve()}function Fe(...ve){return a.value?K(()=>Reflect.apply(a.value.t,null,[...ve])):K(()=>"")}function z(...ve){return a.value?Reflect.apply(a.value.rt,null,[...ve]):""}function q(...ve){return a.value?K(()=>Reflect.apply(a.value.d,null,[...ve])):K(()=>"")}function Ae(...ve){return a.value?K(()=>Reflect.apply(a.value.n,null,[...ve])):K(()=>"")}function Ke(ve){return a.value?a.value.tm(ve):{}}function pe(ve,Ye){return a.value?a.value.te(ve,Ye):!1}function We(ve){return a.value?a.value.getLocaleMessage(ve):{}}function xe(ve,Ye){a.value&&(a.value.setLocaleMessage(ve,Ye),d.value[ve]=Ye)}function $e(ve,Ye){a.value&&a.value.mergeLocaleMessage(ve,Ye)}function Rt(ve){return a.value?a.value.getDateTimeFormat(ve):{}}function Be(ve,Ye){a.value&&(a.value.setDateTimeFormat(ve,Ye),c.value[ve]=Ye)}function qe(ve,Ye){a.value&&a.value.mergeDateTimeFormat(ve,Ye)}function at(ve){return a.value?a.value.getNumberFormat(ve):{}}function Bt(ve,Ye){a.value&&(a.value.setNumberFormat(ve,Ye),u.value[ve]=Ye)}function jt(ve,Ye){a.value&&a.value.mergeNumberFormat(ve,Ye)}const Ne={get id(){return a.value?a.value.id:-1},locale:B,fallbackLocale:N,messages:S,datetimeFormats:X,numberFormats:J,get inheritLocale(){return a.value?a.value.inheritLocale:o},set inheritLocale(ve){a.value&&(a.value.inheritLocale=ve)},get availableLocales(){return a.value?a.value.availableLocales:Object.keys(d.value)},get modifiers(){return a.value?a.value.modifiers:F},get pluralRules(){return a.value?a.value.pluralRules:R},get isGlobal(){return a.value?a.value.isGlobal:!1},get missingWarn(){return a.value?a.value.missingWarn:h},set missingWarn(ve){a.value&&(a.value.missingWarn=ve)},get fallbackWarn(){return a.value?a.value.fallbackWarn:f},set fallbackWarn(ve){a.value&&(a.value.missingWarn=ve)},get fallbackRoot(){return a.value?a.value.fallbackRoot:g},set fallbackRoot(ve){a.value&&(a.value.fallbackRoot=ve)},get fallbackFormat(){return a.value?a.value.fallbackFormat:A},set fallbackFormat(ve){a.value&&(a.value.fallbackFormat=ve)},get warnHtmlMessage(){return a.value?a.value.warnHtmlMessage:y},set warnHtmlMessage(ve){a.value&&(a.value.warnHtmlMessage=ve)},get escapeParameter(){return a.value?a.value.escapeParameter:m},set escapeParameter(ve){a.value&&(a.value.escapeParameter=ve)},t:Fe,getPostTranslationHandler:E,setPostTranslationHandler:v,getMissingHandler:j,setMissingHandler:H,rt:z,d:q,n:Ae,tm:Ke,te:pe,getLocaleMessage:We,setLocaleMessage:xe,mergeLocaleMessage:$e,getDateTimeFormat:Rt,setDateTimeFormat:Be,mergeDateTimeFormat:qe,getNumberFormat:at,setNumberFormat:Bt,mergeNumberFormat:jt};function Je(ve){ve.locale.value=l.value,ve.fallbackLocale.value=s.value,Object.keys(d.value).forEach(Ye=>{ve.mergeLocaleMessage(Ye,d.value[Ye])}),Object.keys(c.value).forEach(Ye=>{ve.mergeDateTimeFormat(Ye,c.value[Ye])}),Object.keys(u.value).forEach(Ye=>{ve.mergeNumberFormat(Ye,u.value[Ye])}),ve.escapeParameter=m,ve.fallbackFormat=A,ve.fallbackRoot=g,ve.fallbackWarn=f,ve.missingWarn=h,ve.warnHtmlMessage=y}return xC(()=>{if(t.proxy==null||t.proxy.$i18n==null)throw Vc(Qc.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const ve=a.value=t.proxy.$i18n.__composer;e==="global"?(l.value=ve.locale.value,s.value=ve.fallbackLocale.value,d.value=ve.messages.value,c.value=ve.datetimeFormats.value,u.value=ve.numberFormats.value):i&&Je(ve)}),Ne}const Nw=["locale","fallbackLocale","availableLocales"],BB=["t","rt","d","n","tm","te"];function Gw(t,e){const n=Object.create(null);return Nw.forEach(i=>{const a=Object.getOwnPropertyDescriptor(e,i);if(!a)throw Vc(Qc.UNEXPECTED_ERROR);const o=Md(a.value)?{get(){return a.value.value},set(l){a.value.value=l}}:{get(){return a.get&&a.get()}};Object.defineProperty(n,i,o)}),t.config.globalProperties.$i18n=n,BB.forEach(i=>{const a=Object.getOwnPropertyDescriptor(e,i);if(!a||!a.value)throw Vc(Qc.UNEXPECTED_ERROR);Object.defineProperty(t.config.globalProperties,`$${i}`,a)}),()=>{delete t.config.globalProperties.$i18n,BB.forEach(i=>{delete t.config.globalProperties[`$${i}`]})}}cw();__INTLIFY_JIT_COMPILATION__?rB(iw):rB(rw);Gk(Ak);Jk(VV);if(__INTLIFY_PROD_DEVTOOLS__){const t=hh();t.__INTLIFY__=!0,Bk(t.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Jw={ar:"Arabic",en:"English",ur:"Urdu"},Tw={successTitle:"Successfully",failTitle:"Error"},Xw={pageName:"Notifications",title:"Delete All Notifications"},kw={title:"Login",welcome:"Welcome back!",phone:"Phone Number",phone_placeholder:"Enter phone number",btn_text:"Login",have_account:"Don't have an account?",signup:"Sign Up"},ww={thunder_rights:"All rights reserved to Thunder 2024",awamer_rights:"Designed and developed by Awamer Al Shabaka"},Yw={title:"Verification Code",text:"Enter the verification code sent to you",btn:"Submit",have_code:"Didn't receive the code?",resend:"Resend Again",resendWait:"Please wait",seconds:"Seconds"},Dw={title:"New Signup",form_title:"Create an Account",welcome:"Welcome to Thunder",img_title:"Profile Picture",name:"Name",name_placeholder:"Enter your name",email:"Email",email_placeholder:"Enter your email",phone:"Phone Number",phone_placeholder:"Enter your phone number",identity_number:"National ID",identity_number_placeholder:"Enter your National ID",civil_registration_number:"Commercial Registration Number",civil_registration_number_placeholder:"Enter Commercial Registration Number",tax_number:"Tax Number",tax_number_placeholder:"Enter Tax Number",ar_store_title:"Store Name in Arabic",ar_store_title_placeholder:"Enter store name in Arabic",en_store_title:"Store Name in English",en_store_title_placeholder:"Enter store name in English",ur_store_title:"Store Name in Urdu",ur_store_title_placeholder:"Enter store name in Urdu",ar_store_description:"Store Description in Arabic",ar_store_description_placeholder:"Enter store description in Arabic",en_store_description:"Store Description in English",en_store_description_placeholder:"Enter store description in English",ur_store_description:"Store Description in Urdu",ur_store_description_placeholder:"Enter store description in Urdu",category:"Main Category",category_placeholder:"Choose the main category",departments:"Store Activity Sections",departments_placeholder:"Enter store activity sections",logo_label:"Store Logo",logo_placeholder:"Enter store logo image",whatsapp_label:"WhatsApp Number",whatsapp_placeholder:"Enter WhatsApp number",minimum_order:"Minimum Order",minimum_order_placeholder:"Enter the minimum order",arrangement_duration:"Order Preparation Duration",arrangement_duration_placeholder:"Enter the order preparation duration",city_label:"City",city_placeholder:"Choose the city",neighborhood_label:"Neighborhood",neighborhood_placeholder:"Choose the neighborhood",store_address:"Store Location",store_address_placeholder:"Enter store location",owner_label:"Bank Account Holder's Name",owner_placeholder:"Enter account holder's name",account_label:"Account Number",account_placeholder:"Enter account number",bank_name:"Bank Name",bank_name_placeholder:"Enter the bank name",iban_label:"IBAN Number",iban_placeholder:"Enter IBAN number",account_details_label:"Bank Account Details Image",account_details_placeholder:"Upload Bank Account Details Image",delivery_method:"Delivery Method",delivery:"Delivery",store_method:"In-store Pickup",both_methods:"Both Methods",agreewith:"I agree to the",terms:"Terms and Conditions",btn:"Register",have_account:"Already have an account?",login:"Login",error_image_required:"Image is required.",error_name_required:"Name is required.",error_email_required:"Email is required.",error_email_invalid:"Please enter a valid email.",error_phone_required:"Phone number is required.",error_identity_number_required:"Identity number is required.",error_civil_registration_number_required:"Civil registration number is required.",error_tax_number_required:"Tax number is required.",error_ar_store_title_required:"Arabic store title is required.",error_en_store_title_required:"English store title is required.",error_ur_store_title_required:"Urdu store title is required.",error_terms_required:"You must agree to the terms."},Mw={title:"Terms and Conditions"},Lw={home:"Home",pending_orders:"Orders Pending Pricing",products:"Products",add_products:"Products Additions",financial_transactions:"Financial Transactions",chats:"Chats",settings:"Settings",ratings:"Ratings",contact:"Contact Us",faq:"FAQ",terms:"Terms & Conditions",about:"About",logout:"Logout"},Hw={info_period:"Working Hours",info_details:"Profile Information",notification:"Notifications"},xw={recieve_orders:"Are you ready to receive orders?",new_orders:"New Orders",current_orders:"Current Orders",finished_orders:"Finished Orders",cancelled_orders:"Cancelled Orders",order_num:"Order Number",order_minutes:"Minutes",order_details:"Order Details",total_orders:"Total Number of Orders",total_sold:"Total Sales"},Ow={order_num:"Order Number",name:"Customer Name",date:"Order Date",time:"Order Time",product_name:"Product Name",quantity:"Quantity"},Kw={info_title:"Customer Information",delivery_title:"Delivery Information",fatoorah_title:"Invoice Information",order_num:"Order Number",price:"Price",quantity:"Quantity",order_title:"Order Information",order_delivery:"Order Delivery Method",order_location:"Pickup Location",order_type:"Order Type",order_status:"Order Status",order_date:"Order Date",order_time:"Order Time",car_color:"Car Color",car_model:"Car Model",car_plat_number:"Car Plate Number",recieve_details:"Order Pickup Details from Store",notes:"Notes",receipt_text:"Invoice issued, awaiting customer payment",chat:"Customer Chat",accept:"Accept",refuse:"Refuse",preparing:"Preparing",prepared:"Prepared",delivery_method:"Delivered to Courier",store_method:"Delivered",finish:"Complete Order",delegate_rating:"Delegate Rating",order_value:"Order Value",delivery_fee:"Delivery Fee",vat_amount:"VAT Amount",total_amount:"Total Amount"},Pw={name:"Name",name_placeholder:"Please enter your name",phone:"Phone Number",phone_placeholder:"Please enter your phone number",demand:"Type of Request",demand_placeholder:"Please select the type of request",complaint:"Complaint",suggestion:"Suggestion",title:"Message Title",title_placeholder:"Please enter the message title",message:"Message Body",message_placeholder:"Please enter the message body",submitBtn:"Submit",name_error:"Name is required",name_length_error:"Name Length Must be at least 2 carachters",phone_error:"Phone Number is Required",phone_length_error:"Phone Length Must be at least 9 Numbers",demand_error:"Please select a type of request",title_error:"Message title is required",message_error:"Message body is required",complaint_length_error:"Complaint must be at least 4 characters long.",subject_length_error:"Subject must be at least 4 characters long."},zw={pageName:"Profile",name:"Responsible Person's Name",email:"Email",delivery_method:"Delivery Method",preparing_time:"Order Preparation Time",minimum_order:"Minimum Order",phone:"Phone Number",city:"City",store_location:"Store Location",whatsapp:"WhatsApp Number",neighborhood:"Neighborhood",image:"Profile Image",logo:"Logo Image",info_card:"National ID Number",ecommerce:"Commercial Registration Number",tax:"Tax Number",ar_store_name:"Store Name in Arabic",en_store_name:"Store Name in English",ur_store_name:"Store Name in Urdu",ar_store_description:"Store Description in Arabic",en_store_description:"Store Description in English",ur_store_description:"Store Description in Urdu",main_category:"Main Category",store_category:"Store Activity Sections",bank_name:"Bank Name",account_name:"Account Holder's Name",account_number:"Account Number",iban_number:"IBAN Number",account_image:"Account Information Image"},jw={pageName:"Work Hours",day:"Day",from:"From",to:"To",saturday:"Saturday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",submitBtn:"Confirm"},_w={text:"If you delete, all data will be lost and cannot be recovered.",cancel:"Cancel",confirm:"Delete"},$w={title:"Are you sure you want to delete this item?"},qw={add_new:"Add New Product",addedProducts:"Added Products",order_num:"Product Number",order_name:"Product Name",image:"Product Image",type:"Product Type"},eY={title:"Product Information",choose:"Choose",main_section:"Main Section",sec_section:"Secondary Section",ar_name:"Product Name in Arabic",en_name:"Product Name in English",ur_name:"Product Name in Urdu",type:"Product Type",price:"Product Price",price_after_sale:"Product Price After Discount",add:"Add",images:"Product Images",ar_desc:"Product Description in Arabic",en_desc:"Product Description in English",ur_desc:"Product Description in Urdu",add_btn:"Add",successedMsg:"Product Added successfully"},tY={title:"Do you want to add categories for the product?",submit_btn:"Product List",add_variants:"Add Categories"},nY={category_ar_name:"Category name in Arabic",category_en_name:"Category name in English",category_ur_name:"Category name in Urdu",status_label:"Category Status",select_status:"Select category status",optional:"Optional",required:"Required",quantity:"Quantity",quantity_placeholder:"Enter quantity"},rY={pageName:"Addition Details",add_btn:"Add",title:"Product Additions",image:"Product Image",name:"Addition Name",price:"Price"},iY={edit_title:"Edit Addition",add_title:"Addition Details",ar_name:"Addition Name in Arabic",en_name:"Addition Name in English",ur_name:"Addition Name in Urdu",ar_description:"Addition Description in Arabic",en_description:"Addition Description in English",ur_description:"Addition Description in Urdu",price:"Price",image:"Addition Image",image_placeholder:"Add Addition Image",add_btn:"Add",submit_btn:"Edit",successedMsg:"Addition was successful"},aY={title:"Edit Product",ar_name:"Product Name in Arabic",en_name:"Product Name in English",ur_name:"Product Name in Urdu",type:"Product Type",price:"Price",image:"Product Images",image_placeholder:"Add Product Image",submit_btn:"Save and Return to List",edit_variants:"Edit Variants"},oY={title:"Are you sure you want to delete this Addition?"},lY={data:{pageName:"Edit Profile",tab:"Edit Data",image:"Profile Picture",img_title:"Upload Image",manager:"Manager Name",nationalityID:"National ID Number",ecommerce:"Commercial Registration Number",tax:"Tax Number",ar_name:"Store Name in Arabic",en_name:"Store Name in English",ur_name:"Store Name in Urdu",logo_label:"Store Logo",ar_desc:"Store Description in Arabic",en_desc:"Store Description in English",ur_desc:"Store Description in Urdu",prepare_order:"Order Preparation Time",whatsapp:"WhatsApp Number",city:"City",main_section:"Main Section",activity_sections:"Store Activity Sections",location:"Store Location",neighborhood:"Neighborhood",minimum:"Minimum Order",bank:"Bank Name",owner:"Account Holder Name",account:"Account Number",iban:"IBAN Number",account_img:"Bank Account Details Image",product_recieve:"Product Delivery Method",delivery:"Delivery",from_branch:"From Branch",both_ways:"Both ways",save:"Save"},phone:{tab:"Change Phone Number",current_phone:"Current Mobile Number",current_phone_placeholder:"Enter Current Mobile Number",new_phone:"New Mobile Number",new_phone_placeholder:"Enter New Mobile Number"},code:{verification:"Verification Code",verification_text:"Enter the verification code sent to you",activation:"Activation Code",activation_text:"Enter the activation code sent to you",question:"Didn’t receive the code?",resend:"Send Again"},email:{tab:"Change Email",current_email:"Current Email Address",current_email_placeholder:"Enter Current Email Address",new_email:"New Email Address",new_email_placeholder:"Enter New Email Address"},submit_btn:"Confirm"},sY={title:"Customer and Agent Ratings",text:"Ratings"},dY={due:{tab:"Due",total_values:"Total Values",total_requests:"Total Requests",vat_amount:"VAT Amount",total_app_tax:"Total App Commission",dues:"Dues",order_num:"Order Number",order_value:"Order Value",comission:"Commission",pay_way:"Payment Method",total_value_added:"Total Value Added",settlement_request:"Settlement Request"},current:{tab:"Current",order_num:"Order Number",name:"Customer Name",order_date:"Order Submission Date",order_status:"Order Status"},finished:{tab:"Finished",order_num:"Order Number",name:"Customer Name",order_date:"Order Submission Date",order_status:"Order Status"}},cY={total_values:"Total Values",total_requests:"Total Requests",total_app_tax:"Total App Commission",dues:"Dues",order_num:"Order Number",order_value:"Order Value",commission:"Commission",pay_way:"Payment Method",total_value_added:"Total Value Added",receipt_image:"Receipt Image",refused:"Reason for Refusal"},uY={title:"Chat List",empty_text:"Please select a conversation to communicate",image:"Image",sound:"Record",chat_text:"Write your message",invoice_request:"Request Invoice",invoice_title:"An invoice has been issued by the service provider",order_value:"Order Value",delivery_fee:"Delivery Fee",vat_amount:"VAT Amount",total_amount:"Total Amount"},fY="Riyal",hY={title:"Please enter the invoice details",label:"Order Value",placeholder:"Enter the order value",button:"Submit"},gY={text:"Calling...",accept:"Accept",cancel:"Cancel"},AY={title:"Please add your rating",button:"Rate"},pY={Languages:Jw,toast:Tw,notifications:Xw,login:kw,copyright:ww,activationCode:Yw,signup:Dw,terms:Mw,sidebar:Lw,greet:Hw,orders:xw,pending_orders:Ow,order_details:Kw,contact:Pw,profile:zw,work_periods:jw,delete_popup:_w,delete_product_popup:$w,products:qw,add_product:eY,add_product_popup:tY,product_variant:nY,products_additions:rY,addition:iY,edit_product:aY,delete_product_addition_popup:oY,settings:lY,ratings:sY,financial_transaction:dY,settlement_single_page:cY,chat:uY,currency:fY,invoice_popup:hY,call:gY,delegate_rating:AY},mY={ar:"العربية",en:"الإنجليزية",ur:"الأوردو"},bY={successTitle:"تم بنجاح",failTitle:"خطأ"},yY={pageName:"الإشعارات",title:"حذف الإشعارات ككل"},FY={title:"تسجيل الدخول",welcome:"أهلاً بك وبعودتك",phone:"رقم الجوال",phone_placeholder:"أدخل رقم الجوال",btn_text:"دخول",have_account:"ليس لديك حساب؟",signup:"إنشاء حساب"},QY={thunder_rights:"جميع الحقوق محفوظة لThunder 2024",awamer_rights:"تصميم وبرمجة شركة أوامر الشبكة"},UY={title:"كود التحقق",text:"أدخل كود التحقق المرسل إليك",btn:"إرسال",have_code:"لم يصلك الكود؟",resend:"أرسل مرة أخري",resendWait:"يرجى الانتظار",seconds:"ثانية"},RY={title:"تسجيل جديد",form_title:"إنشاء حساب",welcome:"مرحبًا بك في ثندر",img_title:"الصورة الشخصية",name:"الاسم",name_placeholder:"أدخل اسمك",email:"البريد الإلكتروني",email_placeholder:"أدخل بريدك الإلكتروني",phone:"رقم الجوال",phone_placeholder:"أدخل رقم الجوال",identity_number:"رقم الهوية الوطنية",identity_number_placeholder:"أدخل رقم هويتك الوطنية",civil_registration_number:"رقم السجل التجاري",civil_registration_number_placeholder:"أدخل رقم السجل التجاري",tax_number:"الرقم الضريبي",tax_number_placeholder:"أدخل الرقم الضريبي",ar_store_title:"اسم المتجر بالعربية",ar_store_title_placeholder:"أدخل اسم المتجر بالعربية",en_store_title:"اسم المتجر بالإنجليزية",en_store_title_placeholder:"أدخل اسم المتجر بالإنجليزية",ur_store_title:"اسم المتجر بلغة الأوردو",ur_store_title_placeholder:"أدخل اسم المتجر بلغة الأوردو",ar_store_description:"وصف المتجر بالعربية",ar_store_description_placeholder:"أدخل وصف المتجر بالعربية",en_store_description:"وصف المتجر بالإنجليزية",en_store_description_placeholder:"أدخل وصف المتجر بالإنجليزية",ur_store_description:"وصف المتجر بلغة الأوردو",ur_store_description_placeholder:"أدخل وصف المتجر بلغة الأوردو",category:"القسم الرئيسي",category_placeholder:"اختر القسم الرئيسي",departments:"أقسام نشاط المتجر",departments_placeholder:"أدخل أقسام نشاط المتجر",logo_label:"صورة الشعار",logo_placeholder:"أدخل صورة الشعار الخاصه بك",whatsapp_label:"رقم الواتساب",whatsapp_placeholder:"أدخل رقم الواتساب",minimum_order:"الحد الأدني للطلب",minimum_order_placeholder:"أدخل الحد الأدني للطلب",arrangement_duration:"مدة تجهيز الطلب",arrangement_duration_placeholder:"أدخل مدة تجهيز الطلب",city_label:"المدينة",city_placeholder:"اختر المدينة",neighborhood_label:"الحي",neighborhood_placeholder:"اختر الحي",store_address:"عنوان المتجر",store_address_placeholder:"أدخل عنوان المتجر",owner_label:"اسم صاحب الحساب البنكي",owner_placeholder:"أدخل اسم صاحب الحساب",account_label:"رقم الحساب",account_placeholder:"أدخل رقم الحساب",bank_name:"إسم البنك",bank_name_placeholder:"أدخل إسم البنك",iban_label:"رقم الآيبان",iban_placeholder:"أدخل رقم الآيبان",account_details_label:"صورة بيانات الحساب البنكي",account_details_placeholder:"صورة بيانات الحساب البنكي",delivery_method:"طريقة استلام المنتج",delivery:"توصيل",store_method:"استلام من الفرع",both_methods:"الإثنين معا",agreewith:"أوافق على",terms:"الشروط والأحكام",btn:"تسجيل جديد",have_account:"هل لديك حساب؟",login:"تسجيل الدخول",error_image_required:"الصورة مطلوبة.",error_name_required:"الاسم مطلوب.",error_email_required:"البريد الإلكتروني مطلوب.",error_email_invalid:"يرجى إدخال بريد إلكتروني صالح.",error_phone_required:"رقم الهاتف مطلوب.",error_identity_number_required:"رقم الهوية مطلوب.",error_civil_registration_number_required:"رقم السجل التجاري مطلوب.",error_tax_number_required:"رقم الضريبة مطلوب.",error_ar_store_title_required:"اسم المتجر بالعربية مطلوب.",error_en_store_title_required:"اسم المتجر بالإنجليزية مطلوب.",error_ur_store_title_required:"اسم المتجر بالأردية مطلوب.",error_terms_required:"يجب الموافقة على الشروط."},BY={title:"الشروط والأحكام"},ZY={home:"الرئيسية",pending_orders:"الطلبات قيد التسعير",products:"المنتجات",add_products:"إضافات المنتجات",financial_transactions:"المعاملات المالية",chats:"المحادثات",settings:"الإعدادات",ratings:"تقييماتي",contact:"تواصل معنا",faq:"الأسئلة المتكررة",terms:"الشروط والأحكام",about:"عن المنصة",logout:"تسجيل خروج"},IY={info_period:"مواعيد العمل",info_details:"بيانات الملف الشخصي",notification:"الإشعارات"},CY={recieve_orders:"هل أنت مستعد لاستقبال طلبات؟",new_orders:"الطلبات الجديدة",current_orders:"الطلبات الحالية",finished_orders:"الطلبات المنتهية",cancelled_orders:"الطلبات الملغيه",order_num:"رقم الطلب",order_minutes:"دقائق",order_details:"تفاصيل الطلب",total_orders:"إجمالي عدد الطلبات",total_sold:"إجمالي البيع"},vY={order_num:"رقم الطلب",name:"إسم العميل",date:"تاريخ إرسال الطلب",time:"وقت إرسال الطلب",product_name:"إسم المنتج",quantity:"الكمية"},VY={info_title:"معلومات العميل",delivery_title:"معلومات المندوب",fatoorah_title:"معلومات الفاتورة",order_num:"رقم الطلب",price:"السعر",quantity:"الكمية",order_title:"معلومات الطلب",order_delivery:"طريقة استلام الطلب",order_location:"موقع الاستلام",order_type:"نوع الطلب",order_status:"حالة الطلب",order_date:"تاريخ الطلب",order_time:"وقت الطلب",car_color:"لون السيارة",car_model:"موديل السيارة",car_plat_number:"رقم لوحة السيارة",recieve_details:"تفاصيل استلام الطلب من المتجر",notes:"ملاحظات",receipt_text:"تم اصدار فاتورة في انتظار دفع العميل",chat:"محادثة العميل",accept:"قبول",refuse:"رفض",preparing:"قيد التجهيز",prepared:"تم التجهيز",delivery_method:"تم التسليم للمندوب",store_method:"تم التسليم",finish:"انهاء الطلب",delegate_rating:"تقييم المندوب",order_value:"قيمة الطلب",delivery_fee:"رسوم التوصيل",vat_amount:"الضريبة المضافة",total_amount:"المجموع الكلي"},EY={name:"الإسم",name_placeholder:"الرجاء إدخال الإسم",phone:"رقم الجوال",phone_placeholder:"الرجاء إدخال رقم الجوال",demand:"نوع الطلب",demand_placeholder:"الرجاء إدخال نوع الطلب",complaint:"شكوي",suggestion:"إقتراح",title:"عنوان الرسالة",title_placeholder:"الرجاء إدخال عنوان الرسالة",message:"نص الرسالة",message_placeholder:"الرجاء إدخال نص الرسالة",submitBtn:"إرسال",name_error:"الاسم مطلوب",name_length_error:"يجب أن يتكون طول الاسم من حرفين على الأقل",phone_error:"رقم الهاتف مطلوب",phone_length_error:"يجب أن يكون طول الهاتف 9 أرقام على الأقل",demand_error:"يرجى تحديد نوع الطلب",title_error:"العنوان مطلوب",message_error:"الرسالة مطلوبة",complaint_length_error:"يجب أن يتكون الشكوى من 4 أحرف على الأقل.",subject_length_error:"يجب أن يتكون العنوان من 4 أحرف على الأقل."},SY={pageName:"الملف الشخصي",name:"إسم المسئول",email:"البريد الالكتروني",delivery_method:"طريقة الإستلام",preparing_time:"مدة تجهيز الطلب",minimum_order:"الحد الأدني للطلب",phone:"رقم الجوال",city:"المدينة",store_location:"موقع المتجر",whatsapp:"رقم الواتساب",neighborhood:"الحي",image:"الصورة الشخصية",logo:"صورة الشعار",info_card:"رقم الهوية الوطنية",ecommerce:"رقم السجل التجاري",tax:"الرقم الضريبي",ar_store_name:"إسم المتجر باللغه العربيه",en_store_name:"إسم المتجر باللغه الإنجليزيه",ur_store_name:"إسم المتجر بلغة الأوردو",ar_store_description:"وصف المتجر باللغه العربيه",en_store_description:"وصف المتجر باللغه الإنجليزيه",ur_store_description:"وصف المتجر بلغة الأوردو",main_category:"القسم الرئيسي",store_category:"أقسام نشاط المتجر",bank_name:"إسم البنك",account_name:"إسم صاحب الحساب",account_number:"رقم الحساب",iban_number:"رقم الآيبان",account_image:"صورة بيانات الحساب"},WY={pageName:"مواعيد العمل",day:"اليوم",from:"من",to:"إلي",saturday:"السبت",sunday:"الأحد",monday:"الإثنين",tuesday:"الثلاثاء",wednesday:"الأربعاء",thursday:"الخميس",friday:"الجمعه",submitBtn:"تأكيد"},NY={text:" في حالة الحذف سيتم حذف جميع البيانات ولا يمكن استراجاع البيانات مرة اخري",cancel:"رجوع",confirm:"حذف"},GY={add_new:"إضافة منتج جديد",addedProducts:"المنتجات المضافة",order_num:"رقم المنتج",order_name:"إسم المنتج",image:"صورة المنتج",type:"نوع المنتج"},JY={title:"هل انت متاكد من رغبتك في حذف المنتج ؟"},TY={title:"بيانات المنتج",choose:"أختر",main_section:"القسم الفرعي",sec_section:"القسم الثانوي",ar_name:"إسم المنتج باللغه العربية",en_name:"إسم المنتج باللغه الإنجليزية",ur_name:"إسم المنتج بـلغة الأوردو",type:"نوع المنتج",price:"سعر المنتج",price_after_sale:"سعر المنتج بعد الخصم",add:"أضف",images:"صور المنتج",ar_desc:"وصف المنتج باللغة العربية",en_desc:"وصف المنتج باللغة الإنجليزية",ur_desc:"وصف المنتج بـ لغة الأوردو",add_btn:"إضافة"},XY={title:"هل تريد إضافات تصنيفات للمنتج ؟",submit_btn:"قائمة المنتجات",add_variants:"إضافة تصنيفات"},kY={category_ar_name:"إسم التصنيف باللغة العربية",category_en_name:"إسم التصنيف باللغة الإنجليزية",category_ur_name:"إسم التصنيف باللغة الأردية",status_label:"حالة التصنيف",select_status:"أختر حالة التصنيف",optional:"إختياري",required:"إجباري",quantity:"العدد",quantity_placeholder:"العدد"},wY={pageName:"بيانات الإضافة",add_btn:"إضافة",title:"إضافات المنتجات",image:"صورة المنتج",name:"إسم الإضافة",price:"السعر"},YY={edit_title:"تعديل الإضافة",add_title:"بيانات الإضافة",ar_name:"إسم الإضافة باللغة العربية",en_name:"إسم الإضافة باللغه الإنجليزية",ur_name:"إسم الإضافة بـلغة الأوردو",ar_description:"وصف الإضافة باللغة العربية",en_description:"وصف الإضافة باللغه الإنجليزية",ur_description:"وصف الإضافة بـلغة الأوردو",price:"السعر",image:"صورة الإضافة",image_placeholder:"أضف صورة الإضافة",add_btn:"إضافة",submit_btn:"تعديل",successedMsg:"تمت الإضافة بـنجاح"},DY={title:"تعديل المنتج",ar_name:"إسم المنتج باللغة العربية",en_name:"إسم المنتج باللغه الإنجليزية",ur_name:"إسم المنتج بـلغة الأوردو",type:"نوع المنتج",price:"السعر",image:"صور المنتج",image_placeholder:"أضف صورة المنتج",submit_btn:"حفظ والرجوع للقائمه",edit_variants:"تعديل التصنيفات"},MY={title:"هل انت متاكد من رغبتك في حذف الاضافة ؟"},LY={data:{pageName:"تعديل الملف الشخصي",tab:"تعديل البيانات",image:"الصورة الشخصية",img_title:"تحميل الصورة",manager:"إسم المسئول",nationalityID:"رقم الهوية الوطنية",ecommerce:"رقم السجل التجاري",tax:"الرقم الضريبي",ar_name:"إسم المتجر باللغة العربية",en_name:"إسم المتجر باللغة الإنجليزية",ur_name:"إسم المتجر بـلغة الأوردو",logo_label:"شعار المتجر",ar_desc:"وصف المتجر باللغة العربية",en_desc:"وصف المتجر باللغة الإنجليزية",ur_desc:"وصف المتجر بـلغة الأوردو",prepare_order:"مدة تجهيز الطلب",whatsapp:"رقم الواتساب",city:"المدينة",main_section:"القسم الرئيسي",activity_sections:"أقسام نشاط المتجر",location:"موقع المتجر",neighborhood:"الحي",minimum:"الحد الأدني للطلب",bank:"إسم البنك",owner:"إسم صاحب الحساب",account:"رقم الحساب",iban:"رقم الايبان",account_img:"صورة بيانات الحساب البنكي",product_recieve:"طريقة استلام المنتج",delivery:"توصيل",from_branch:"من الفرع",both_ways:"الإثنين معا",save:"حفظ"},phone:{tab:"تغيير رقم الجوال",current_phone:"رقم الجوال الحالي",current_phone_placeholder:"أدخل رقم الجوال الحالي",new_phone:"رقم الجوال الجديد",new_phone_placeholder:"أدخل رقم الجوال الجديد"},code:{verification:"كود التحقق",verification_text:"أدخل كود التحقق المرسل إاليك",activation:"كود التفعيل",activation_text:"أدخل كود التفعيل المرسل إاليك",question:"لم يصلك الكود ؟",resend:"أرسل مرة أخري"},email:{tab:"تغيير البريد الإلكتروني",current_email:"البريد الإلكتروني الحالي",current_email_placeholder:"أدخل البريد الإلكتروني الحالي",new_email:"البريد الإلكتروني الجديد",new_email_placeholder:"أدخل البريد الإلكتروني الجديد"},submit_btn:"تأكيد"},HY={title:"التقييمات الخاصة بالعملاء والمناديب",text:"تقييما"},xY={due:{tab:"المستحقة",total_values:"القيم الاجمالية",total_requests:"إجمالي الطلبات",vat_amount:"مبلغ الضريبة",total_app_tax:"إجمالي عمولة التطبيق",dues:"المستحق",order_num:"رقم الطلب",order_value:"قيمة الطلب",comission:"العمولة",pay_way:"طريقة الدفع",total_value_added:"إجمالي القيمة المضافة",settlement_request:"طلب تسوية"},current:{tab:"الحالية",order_num:"رقم الطلب",name:"إسم العميل",order_date:"تاريخ إرسال الطلب",order_status:"حالة الطلب"},finished:{tab:"المنتهية",order_num:"رقم الطلب",name:"إسم العميل",order_date:"تاريخ إرسال الطلب",order_status:"حالة الطلب"}},OY={total_values:"القيم الاجمالية",total_requests:"إجمالي الطلبات",total_app_tax:"إجمالي عمولة التطبيق",dues:"المستحق",order_num:"رقم الطلب",order_value:"قيمة الطلب",comission:"العمولة",pay_way:"طريقة الدفع",total_value_added:"إجمالي القيمة المضافة",receipt_image:"صورة الإيصال",refused:"سبب الرفض"},KY={title:"قائمة المحادثات",empty_text:"يجب إختيار محادثة للتواصل",image:"صورة",sound:"تسجيل صوتي",chat_text:"إكتب رسالتك",invoice_request:"طلب فاتورة",invoice_title:"تم إصدار فاتورة من قبل مقدم الخدمة",order_value:"قيمة الطلب",delivery_fee:"رسوم التوصيل",vat_amount:"ضريبة القيمة المضافة",total_amount:"الإجمالي"},PY="ريال",zY={title:"من فضلك قم بإدخال بيانات الفاتورة",label:"قيمة الطلب",placeholder:"أدخل قيمة الطلب",button:"إرسال"},jY={text:"يتصل .....",accept:"قبول",cancel:"رفض"},_Y={title:"برجاء إضافة تقييمك",button:"تقييم"},$Y={Languages:mY,toast:bY,notifications:yY,login:FY,copyright:QY,activationCode:UY,signup:RY,terms:BY,sidebar:ZY,greet:IY,orders:CY,pending_orders:vY,order_details:VY,contact:EY,profile:SY,work_periods:WY,delete_popup:NY,products:GY,delete_product_popup:JY,add_product:TY,add_product_popup:XY,product_variant:kY,products_additions:wY,addition:YY,edit_product:DY,delete_product_addition_popup:MY,settings:LY,ratings:HY,financial_transaction:xY,settlement_single_page:OY,chat:KY,currency:PY,invoice_popup:zY,call:jY,delegate_rating:_Y},qY={ar:"عربی",en:"انگریزی",ur:"اردو"},eD={successTitle:"کامیابی سے مکمل ہوا",failTitle:"خرابی"},tD={pageName:"اطلاعات",title:"تمام اطلاعات کو حذف کریں"},nD={title:"لاگ ان",welcome:"خوش آمدید!",phone:"فون نمبر",phone_placeholder:"فون نمبر درج کریں",btn_text:"لاگ ان",have_account:"کیا آپ کا اکاؤنٹ نہیں ہے؟",signup:"نیا اکاؤنٹ بنائیں"},rD={thunder_rights:"تمام حقوق محفوظ ہیں تھنڈر 2024 کے لئے",awamer_rights:"ڈیزائن اور پروگرامنگ آوامر الشبکہ کی طرف سے"},iD={title:"تصدیقی کوڈ",text:"اپنے پاس بھیجا گیا تصدیقی کوڈ درج کریں",btn:"بھیجیں",have_code:"کیا آپ کو کوڈ نہیں ملا؟",resend:"دوبارہ بھیجیں",resendWait:"براہ کرم انتظار کریں",seconds:"سیکنڈ"},aD={title:"نیا سائن اپ",form_title:"اکاؤنٹ بنائیں",welcome:"تھنڈر میں خوش آمدید",img_title:"پروفائل تصویر",name:"نام",name_placeholder:"اپنا نام درج کریں",email:"ای میل",email_placeholder:"اپنا ای میل درج کریں",phone:"فون نمبر",phone_placeholder:"اپنا فون نمبر درج کریں",identity_number:"قومی شناختی نمبر",identity_number_placeholder:"اپنا قومی شناختی نمبر درج کریں",civil_registration_number:"تجارتی رجسٹریشن نمبر",civil_registration_number_placeholder:"تجارتی رجسٹریشن نمبر درج کریں",tax_number:"ٹیکس نمبر",tax_number_placeholder:"ٹیکس نمبر درج کریں",ar_store_title:"متجر کا نام عربی میں",ar_store_title_placeholder:"متجر کا نام عربی میں درج کریں",en_store_title:"متجر کا نام انگریزی میں",en_store_title_placeholder:"متجر کا نام انگریزی میں درج کریں",ur_store_title:"متجر کا نام اردو میں",ur_store_title_placeholder:"متجر کا نام اردو میں درج کریں",ar_store_description:"متجر کی وضاحت عربی میں",ar_store_description_placeholder:"متجر کی وضاحت عربی میں درج کریں",en_store_description:"متجر کی وضاحت انگریزی میں",en_store_description_placeholder:"متجر کی وضاحت انگریزی میں درج کریں",ur_store_description:"متجر کی وضاحت اردو میں",ur_store_description_placeholder:"متجر کی وضاحت اردو میں درج کریں",category:"مکہ کیٹگری",category_placeholder:"مکہ کیٹگری منتخب کریں",departments:"متجر کے سرگرمی کے حصے",departments_placeholder:"متجر کے سرگرمی کے حصے درج کریں",logo_label:"متجر کا لوگو",logo_placeholder:"متجر کا لوگو درج کریں",whatsapp_label:"واٹس ایپ نمبر",whatsapp_placeholder:"واٹس ایپ نمبر درج کریں",minimum_order:"کم سے کم آرڈر",minimum_order_placeholder:"کم سے کم آرڈر درج کریں",arrangement_duration:"آرڈر کی تیاری کا دورانیہ",arrangement_duration_placeholder:"آرڈر کی تیاری کا دورانیہ درج کریں",city_label:"شہر",city_placeholder:"شہر منتخب کریں",neighborhood_label:"محلہ",neighborhood_placeholder:"محلہ منتخب کریں",store_address:"متجر کا پتہ",store_address_placeholder:"متجر کا پتہ درج کریں",owner_label:"بینک اکاؤنٹ کا مالک کا نام",owner_placeholder:"مالک کا نام درج کریں",account_label:"اکاؤنٹ نمبر",account_placeholder:"اکاؤنٹ نمبر درج کریں",bank_name:"بینک کا نام",bank_name_placeholder:"بینک کا نام درج کریں",iban_label:"آئی بی اے این نمبر",iban_placeholder:"آئی بی اے این نمبر درج کریں",account_details_label:"بینک اکاؤنٹ کی تفصیلات کی تصویر",account_details_placeholder:"بینک اکاؤنٹ کی تفصیلات کی تصویر اپ لوڈ کریں",delivery_method:"ترسیل کا طریقہ",delivery:"ترسیل",store_method:"دکان سے وصولی",both_methods:"دونوں طریقے",agreewith:"میں متفق ہوں",terms:"شرائط و ضوابط",btn:"رجسٹر کریں",have_account:"کیا آپ کا پہلے سے اکاؤنٹ ہے؟",login:"لاگ ان کریں",error_image_required:"تصویر درکار ہے۔",error_name_required:"نام درکار ہے۔",error_email_required:"ای میل درکار ہے۔",error_email_invalid:"براہ کرم درست ای میل درج کریں۔",error_phone_required:"فون نمبر درکار ہے۔",error_identity_number_required:"شناختی نمبر درکار ہے۔",error_civil_registration_number_required:"تجارتی رجسٹریشن نمبر درکار ہے۔",error_tax_number_required:"ٹیکس نمبر درکار ہے۔",error_ar_store_title_required:"عربی میں متجر کا نام درکار ہے۔",error_en_store_title_required:"انگریزی میں متجر کا نام درکار ہے۔",error_ur_store_title_required:"اردو میں متجر کا نام درکار ہے۔",error_terms_required:"آپ کو شرائط و ضوابط سے اتفاق کرنا ضروری ہے۔"},oD={title:"شرائط و ضوابط"},lD={home:"ہوم",pending_orders:"زیر قیمت احکامات",products:"مصنوعات",add_products:"پروڈکٹس شامل کریں",financial_transactions:"مالی لین دین",chats:"چیٹس",settings:"ترتیبات",ratings:"درجہ بندی",contact:"ہم سے رابطہ کریں",faq:"اکثر پوچھے گئے سوالات",terms:"شرائط و ضوابط",about:"پلیٹ فارم کے بارے میں",logout:"لاگ آوٹ"},sD={info_period:"کام کے اوقات",info_details:"پروفائل کی معلومات",notification:"اطلاعات"},dD={recieve_orders:"کیا آپ آرڈرز وصول کرنے کے لیے تیار ہیں؟",new_orders:"نئے آرڈرز",current_orders:"موجودہ آرڈرز",finished_orders:"مکمل شدہ آرڈرز",cancelled_orders:"منسوخ شدہ آرڈرز",order_num:"آرڈر نمبر",order_minutes:"منٹ",order_details:"آرڈر کی تفصیلات",total_orders:"کل آرڈرز کی تعداد",total_sold:"کل فروخت"},cD={order_num:"آرڈر نمبر",name:"کسٹمر کا نام",date:"آرڈر کی تاریخ",time:"آرڈر کا وقت",product_name:"پروڈکٹ کا نام",quantity:"مقدار"},uD={info_title:"گاہک کی معلومات",delivery_title:"ترسیل کی معلومات",fatoorah_title:"بل کی معلومات",order_num:"آرڈر نمبر",price:"قیمت",quantity:"مقدار",order_title:"آرڈر کی معلومات",order_delivery:"آرڈر کی ترسیل کا طریقہ",order_location:"وصولی کا مقام",order_type:"آرڈر کی قسم",order_status:"آرڈر کی حیثیت",order_date:"آرڈر کی تاریخ",order_time:"آرڈر کا وقت",car_color:"گاڑی کا رنگ",car_model:"گاڑی کا ماڈل",car_plat_number:"گاڑی کی نمبر پلیٹ",recieve_details:"اسٹور سے آرڈر لینے کی تفصیلات",notes:"نوٹس",receipt_text:"رسید جاری کر دی گئی، گاہک کی ادائیگی کا انتظار",chat:"گاہک کی چیٹ",accept:"قبول کریں",refuse:"رد کریں",preparing:"تیاری میں",prepared:"تیار ہو گیا",delivery_method:"کورئیر کو دے دیا گیا",store_method:"حوالہ کر دیا گیا",finish:"آرڈر مکمل کریں",delegate_rating:"مندوب کی درجہ بندی",order_value:"آرڈر کی قیمت",delivery_fee:"ڈیلیوری فیس",vat_amount:"وی اے ٹی رقم",total_amount:"کل رقم"},fD={name:"نام",name_placeholder:"براہ کرم نام درج کریں",phone:"فون نمبر",phone_placeholder:"براہ کرم فون نمبر درج کریں",demand:"مطالبہ کا نوع",demand_placeholder:"براہ کرم مطالبہ کا نوع درج کریں",complaint:"شکایت",suggestion:"تجویز",title:"پیغام کا عنوان",title_placeholder:"براہ کرم پیغام کا عنوان درج کریں",message:"پیغام کا متن",message_placeholder:"براہ کرم پیغام کا متن درج کریں",submitBtn:"جمع کروائیں",name_error:"نام ضروری ہے",name_length_error:"نام کی لمبائی کم از کم 2 حروف کی ہونی چاہیے۔",phone_error:"غلط فون نمبر",phone_length_error:"فون کی لمبائی کم از کم 9 نمبر ہونی چاہیے۔",demand_error:"براہ کرم درخواست کی قسم منتخب کریں",title_error:"عنوان ضروری ہے",message_error:"پیغام ضروری ہے",complaint_length_error:"شکایت میں کم از کم 4 حروف ہونے چاہئیں۔",subject_length_error:"عنوان میں کم از کم 4 حروف ہونے چاہئیں۔"},hD={pageName:"پروفائل",name:"ذمہ دار شخص کا نام",email:"ای میل",delivery_method:"ترسیل کا طریقہ",preparing_time:"آرڈر کی تیاری کا وقت",minimum_order:"کم از کم آرڈر",phone:"فون نمبر",city:"شہر",store_location:"دکان کا مقام",whatsapp:"واٹس ایپ نمبر",neighborhood:"محلہ",image:"پروفائل تصویر",logo:"لوگو کی تصویر",info_card:"قومی شناختی کارڈ نمبر",ecommerce:"تجارتی رجسٹریشن نمبر",tax:"ٹیکس نمبر",ar_store_name:"عربی میں دکان کا نام",en_store_name:"انگریزی میں دکان کا نام",ur_store_name:"اردو میں دکان کا نام",ar_store_description:"عربی میں دکان کی تفصیل",en_store_description:"انگریزی میں دکان کی تفصیل",ur_store_description:"اردو میں دکان کی تفصیل",main_category:"مرکزی زمرہ",store_category:"دکان کے کاروباری شعبے",bank_name:"بینک کا نام",account_name:"اکاؤنٹ ہولڈر کا نام",account_number:"اکاؤنٹ نمبر",iban_number:"IBAN نمبر",account_image:"اکاؤنٹ کی تفصیلات کی تصویر"},gD={pageName:"کام کے اوقات",day:"دن",from:"سے",to:"تک",saturday:"ہفتہ",sunday:"اتوار",monday:"پیر",tuesday:"منگل",wednesday:"بدھ",thursday:"جمعرات",friday:"جمعہ",submitBtn:"تصدیق کریں"},AD={text:"اگر آپ حذف کریں گے تو تمام ڈیٹا ضائع ہو جائے گا اور اسے دوبارہ حاصل نہیں کیا جا سکے گا۔",cancel:"منسوخ کریں",confirm:"حذف کریں"},pD={title:"کیا آپ واقعی اس چیز کو حذف کرنا چاہتے ہیں؟"},mD={add_new:"نیا پروڈکٹ شامل کریں",addedProducts:"شامل کردہ پروڈکٹس",order_num:"پروڈکٹ نمبر",order_name:"پروڈکٹ کا نام",image:"پروڈکٹ کی تصویر",type:"پروڈکٹ کی قسم"},bD={title:"پروڈکٹ کی تفصیلات",choose:"منتخب کریں",main_section:"مرکزی سیکشن",sec_section:"ثانوی سیکشن",ar_name:"پروڈکٹ کا نام اردو میں",en_name:"پروڈکٹ کا نام انگریزی میں",ur_name:"پروڈکٹ کا نام اردو میں",type:"پروڈکٹ کی قسم",price:"پروڈکٹ کی قیمت",price_after_sale:"پروڈکٹ کی قیمت بعد میں",add:"شامل کریں",images:"پروڈکٹ کی تصاویر",ar_desc:"پروڈکٹ کی تفصیل اردو میں",en_desc:"پروڈکٹ کی تفصیل انگریزی میں",ur_desc:"پروڈکٹ کی تفصیل اردو میں",add_btn:"شامل کریں"},yD={title:"کیا آپ پروڈکٹ کے لیے زمرے شامل کرنا چاہتے ہیں؟",submit_btn:"پروڈکٹس کی فہرست",add_variants:"زمرے شامل کریں"},FD={category_ar_name:"کٹیگری کا نام اردو میں",category_en_name:"کٹیگری کا نام انگریزی میں",category_ur_name:"کٹیگری کا نام اردود میں",status_label:"کٹیگری کی حالت",select_status:"کٹیگری کی حالت منتخب کریں",optional:"اختیاری",required:"لازمی",quantity:"مقدار",quantity_placeholder:"مقدار درج کریں"},QD={pageName:"اضافے کی تفصیلات",add_btn:"شامل کریں",title:"پروڈکٹ کے اضافے",image:"پروڈکٹ کی تصویر",name:"اضافے کا نام",price:"قیمت"},UD={edit_title:"اضافے میں ترمیم",add_title:"اضافے کی تفصیلات",ar_name:"اضافے کا نام اردو میں",en_name:"اضافے کا نام انگریزی میں",ur_name:"اضافے کا نام اردو میں",ar_description:"اضافے کی تفصیل اردو میں",en_description:"اضافے کی تفصیل انگریزی میں",ur_description:"اضافے کی تفصیل اردو میں",price:"قیمت",image:"اضافے کی تصویر",image_placeholder:"اضافے کی تصویر شامل کریں",add_btn:"شامل کریں",submit_btn:"ترمیم کریں",successedMsg:"اضافہ کامیابی سے ہوا"},RD={title:"پروڈکٹ میں ترمیم کریں",ar_name:"پروڈکٹ کا نام عربی میں",en_name:"پروڈکٹ کا نام انگریزی میں",ur_name:"پروڈکٹ کا نام اردو میں",price:"قیمت",image:"پروڈکٹ کی تصاویر",image_placeholder:"پروڈکٹ کی تصویر شامل کریں",submit_btn:"محفوظ کریں اور فہرست میں واپس جائیں",edit_variants:"قسمیں تبدیل کریں"},BD={title:"کیا آپ واقعی اس اضافہ کو حذف کرنا چاہتے ہیں؟"},ZD={data:{pageName:"پروفائل میں ترمیم",tab:"ڈیٹا میں ترمیم کریں",image:"پروفائل تصویر",img_title:"تصویر اپ لوڈ کریں",manager:"منیجر کا نام",nationalityID:"قومی شناختی نمبر",ecommerce:"تجارتی رجسٹریشن نمبر",tax:"ٹیکس نمبر",ar_name:"متجر کا نام عربی میں",en_name:"متجر کا نام انگریزی میں",ur_name:"متجر کا نام اردو میں",logo_label:"متجر کا لوگو",ar_desc:"متجر کی وضاحت عربی میں",en_desc:"متجر کی وضاحت انگریزی میں",ur_desc:"متجر کی وضاحت اردو میں",prepare_order:"آرڈر تیار کرنے کا وقت",whatsapp:"واٹس ایپ نمبر",city:"شہر",main_section:"اہم شعبہ",activity_sections:"متجر کی سرگرمی کے شعبے",location:"متجر کا مقام",neighborhood:"محلہ",minimum:"کم از کم آرڈر",bank:"بینک کا نام",owner:"اکاؤنٹ ہولڈر کا نام",account:"اکاؤنٹ نمبر",iban:"آئبان نمبر",account_img:"بینک اکاؤنٹ کی تفصیلات کی تصویر",product_recieve:"پروڈکٹ وصول کرنے کا طریقہ",delivery:"ترسیل",from_branch:"برانچ سے",both_ways:"دونوں طریقے",save:"محفوظ کریں"},phone:{tab:"فون نمبر میں ترمیم کریں",current_phone:"موجودہ موبائل نمبر",current_phone_placeholder:"موجودہ موبائل نمبر درج کریں",new_phone:"نیا موبائل نمبر",new_phone_placeholder:"نیا موبائل نمبر درج کریں"},code:{verification:"تصدیقی کوڈ",verification_text:"آپ کو بھیجا گیا تصدیقی کوڈ درج کریں",activation:"ایکٹیویشن کوڈ",activation_text:"آپ کو بھیجا گیا ایکٹیویشن کوڈ درج کریں",question:"کیا کوڈ نہیں ملا؟",resend:"دوبارہ بھیجیں"},email:{tab:"ای میل میں ترمیم کریں",current_email:"موجودہ ای میل ایڈریس",current_email_placeholder:"موجودہ ای میل ایڈریس درج کریں",new_email:"نئی ای میل ایڈریس",new_email_placeholder:"نئی ای میل ایڈریس درج کریں"},submit_btn:"تصدیق کریں"},ID={title:"گاہکوں اور نمائندوں کی درجہ بندیاں",text:"ریٹنگز"},CD={due:{tab:"مستحق",total_values:"کل قیمتیں",total_requests:"کل درخواستیں",vat_amount:"ٹیکس کی رقم",total_app_tax:"کل ایپ کمیشن",dues:"مستحقات",order_num:"آرڈر نمبر",order_value:"آرڈر کی قیمت",comission:"کمیشن",pay_way:"ادائیگی کا طریقہ",total_value_added:"کل قیمت میں اضافہ",settlement_request:"تصفیہ کی درخواست"},current:{tab:"موجودہ",order_num:"آرڈر نمبر",name:"گاہک کا نام",order_date:"آرڈر بھیجنے کی تاریخ",order_status:"آرڈر کی حیثیت"},finished:{tab:"مکمل",order_num:"آرڈر نمبر",name:"گاہک کا نام",order_date:"آرڈر بھیجنے کی تاریخ",order_status:"آرڈر کی حیثیت"}},vD={total_values:"مجموعی اقدار",total_requests:"کل درخواستیں",total_app_tax:"کل ایپ کمیشن",dues:"بقایا",order_num:"آرڈر نمبر",order_value:"آرڈر کی قیمت",commission:"کمیشن",pay_way:"ادائیگی کا طریقہ",total_value_added:"مجموعی اضافی قیمت",receipt_image:"رسمی رسید کی تصویر",refused:"رد کرنے کی وجہ"},VD={title:"چیٹ کی فہرست",empty_text:"براہ کرم بات چیت کرنے کے لیے کوئی چیٹ منتخب کریں",chat_text:"اپ کا پیغام لکھیں",image:"تصویر",sound:"آواز کی ریکارڈنگ",invoice_request:"انوائس کی درخواست",invoice_title:"سروس فراہم کنندہ کی جانب سے انوائس جاری کی گئی ہے",order_value:"آرڈر کی قیمت",delivery_fee:"ڈلیوری فیس",vat_amount:"ویلیو ایڈڈ ٹیکس",total_amount:"مجموعی رقم"},ED="ریال",SD={title:"براہ کرم انوائس کی تفصیلات درج کریں",label:"آرڈر کی قیمت",placeholder:"آرڈر کی قیمت درج کریں",button:"جمع کریں"},WD={text:"کال ہو رہی ہے...",accept:"قبول کریں",cancel:"منسوخ کریں"},ND={title:"برائے مہربانی اپنی درجہ بندی شامل کریں",button:"درجہ بندی کریں"},GD={Languages:qY,toast:eD,notifications:tD,login:nD,copyright:rD,activationCode:iD,signup:aD,terms:oD,sidebar:lD,greet:sD,orders:dD,pending_orders:cD,order_details:uD,contact:fD,profile:hD,work_periods:gD,delete_popup:AD,delete_product_popup:pD,products:mD,add_product:bD,add_product_popup:yD,product_variant:FD,products_additions:QD,addition:UD,edit_product:RD,delete_product_addition_popup:BD,settings:ZD,ratings:ID,financial_transaction:CD,settlement_single_page:vD,chat:VD,currency:ED,invoice_popup:SD,call:WD,delegate_rating:ND},zV=Bw({legacy:!1,locale:window.sessionStorage.getItem("app_lang")||"ar",fallbackLocale:"ar",messages:{en:pY,ar:$Y,ur:GD}}),po=QV("store",()=>{const t=hn(window.sessionStorage.getItem("pageName")||""),e=H=>{t.value=H,window.sessionStorage.setItem("activeTab","due-transactions"),window.sessionStorage.setItem("pageName",H)},n=hn(window.sessionStorage.getItem("profile")?JSON.parse(window.sessionStorage.getItem("profile")):[]),r=H=>{n.value=H,window.sessionStorage.setItem("profile",JSON.stringify(H)),i.value=H==null?void 0:H.is_available_to_recieve_orders,window.sessionStorage.setItem("is_available_to_recieve_orders",H==null?void 0:H.is_available_to_recieve_orders)},i=hn(window.sessionStorage.getItem("is_available_to_recieve_orders")==="true"),a=hn(!1),o=H=>{a.value=H},l=H=>{i.value=H,window.sessionStorage.setItem("is_available_to_recieve_orders",H)},s=hn(""),d=H=>{s.value=H},c=hn(window.sessionStorage.getItem("app_lang")||"ar"),u=H=>{console.log(H),zV.global.locale.value=H,c.value=H,window.sessionStorage.setItem("app_lang",H)},h=hn(""),f=hn(""),g=(H,K)=>{h.value=H,f.value=K},A=hn(""),b=H=>{A.value=H},p=hn(""),y=H=>{p.value=H},m=hn(""),F=H=>{m.value=H},R=hn("1"),C=H=>{R.value=H},B=hn(),N=H=>{B.value=H},S=hn({}),X=(H,K,Fe)=>{S.value.id=H,S.value.name=K,S.value.image=Fe},J=hn(!1),E=()=>{J.value=!J.value},v=hn({});return{pageName:t,handlePageName:e,profile:n,handleStoredProfile:r,is_available_to_recieve_orders:i,handleControlRecieveNotification:l,isNotificated:a,handleIsNotificatied:o,pathFrom:s,definePath:d,lang:c,handleLang:u,country_code:h,phone:f,handleStorePhone:g,email:A,handleStoreEmail:b,product_id:p,handleStoreProductId:y,addition_id:m,handleStoreAdditionId:F,productPaginationPage:R,storeProductsPageNum:C,messagesToken:B,storeMessageToken:N,recieverData:S,storeRecieverData:X,showCoversation:J,toggleShowConversation:E,orderInfo:v,handleOrderInfo:(H,K)=>{v.value.type=H,v.value.id=K}}}),JD="/assets/logo-BUBaqrtp.png",Pi=(t,e)=>{const n=t.__vccOpts||t;for(const[r,i]of e)n[r]=i;return n},TD={class:"notification"},XD={class:"text"},kD={__name:"Notification",props:{title:{type:String,default:""},body:{type:String,default:""}},setup(t){const e=t;return(n,r)=>(oe(),Ce("div",null,[Q("div",TD,[r[0]||(r[0]=Q("div",{class:"image"},[Q("img",{src:JD,alt:"img",loading:"lazy"})],-1)),Q("div",XD,[Q("h4",null,ce(e.title),1),Q("p",null,ce(e.body),1)])])]))}},wD=Pi(kD,[["__scopeId","data-v-468f4169"]]),YD={class:"call_popup"},DD={class:"content"},MD={class:"info"},LD={class:"image"},HD=["src"],xD={class:"title"},OD={class:"buttons"},KD={__name:"CallPopup",props:{title:{type:String,default:""},image:{type:String,default:""}},emits:["acceptCall","cancelCall"],setup(t,{emit:e}){const n=e,r=t;return(i,a)=>(oe(),Ce("div",null,[Q("div",YD,[Q("div",DD,[Q("div",MD,[Q("div",LD,[Q("img",{src:r.image,alt:"image",loading:"lazy"},null,8,HD)]),Q("div",xD,[Q("h3",null,ce(r.title),1),Q("p",null,ce(i.$t("call.text")),1)])]),Q("div",OD,[Q("button",{class:"main-btn accept",onClick:a[0]||(a[0]=o=>n("acceptCall"))},[a[2]||(a[2]=Q("i",{class:"pi pi-phone"},null,-1)),Ni(" "+ce(i.$t("call.accept")),1)]),Q("button",{class:"main-btn cancel",onClick:a[1]||(a[1]=o=>n("cancelCall"))},[a[3]||(a[3]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(i.$t("call.cancel")),1)])])])])]))}},PD=Pi(KD,[["__scopeId","data-v-0781ed6a"]]);function jV(t,e){return function(){return t.apply(e,arguments)}}const{toString:zD}=Object.prototype,{getPrototypeOf:FQ}=Object,Vy=(t=>e=>{const n=zD.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),bf=t=>(t=t.toLowerCase(),e=>Vy(e)===t),Ey=t=>e=>typeof e===t,{isArray:Sp}=Array,i0=Ey("undefined");function jD(t){return t!==null&&!i0(t)&&t.constructor!==null&&!i0(t.constructor)&&Wu(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const _V=bf("ArrayBuffer");function _D(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&_V(t.buffer),e}const $D=Ey("string"),Wu=Ey("function"),$V=Ey("number"),Sy=t=>t!==null&&typeof t=="object",qD=t=>t===!0||t===!1,Sb=t=>{if(Vy(t)!=="object")return!1;const e=FQ(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},eM=bf("Date"),tM=bf("File"),nM=bf("Blob"),rM=bf("FileList"),iM=t=>Sy(t)&&Wu(t.pipe),aM=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||Wu(t.append)&&((e=Vy(t))==="formdata"||e==="object"&&Wu(t.toString)&&t.toString()==="[object FormData]"))},oM=bf("URLSearchParams"),[lM,sM,dM,cM]=["ReadableStream","Request","Response","Headers"].map(bf),uM=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function H0(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let r,i;if(typeof t!="object"&&(t=[t]),Sp(t))for(r=0,i=t.length;r<i;r++)e.call(null,t[r],r,t);else{const a=n?Object.getOwnPropertyNames(t):Object.keys(t),o=a.length;let l;for(r=0;r<o;r++)l=a[r],e.call(null,t[l],l,t)}}function qV(t,e){e=e.toLowerCase();const n=Object.keys(t);let r=n.length,i;for(;r-- >0;)if(i=n[r],e===i.toLowerCase())return i;return null}const aA=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,eE=t=>!i0(t)&&t!==aA;function O1(){const{caseless:t}=eE(this)&&this||{},e={},n=(r,i)=>{const a=t&&qV(e,i)||i;Sb(e[a])&&Sb(r)?e[a]=O1(e[a],r):Sb(r)?e[a]=O1({},r):Sp(r)?e[a]=r.slice():e[a]=r};for(let r=0,i=arguments.length;r<i;r++)arguments[r]&&H0(arguments[r],n);return e}const fM=(t,e,n,{allOwnKeys:r}={})=>(H0(e,(i,a)=>{n&&Wu(i)?t[a]=jV(i,n):t[a]=i},{allOwnKeys:r}),t),hM=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),gM=(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},AM=(t,e,n,r)=>{let i,a,o;const l={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),a=i.length;a-- >0;)o=i[a],(!r||r(o,t,e))&&!l[o]&&(e[o]=t[o],l[o]=!0);t=n!==!1&&FQ(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},pM=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const r=t.indexOf(e,n);return r!==-1&&r===n},mM=t=>{if(!t)return null;if(Sp(t))return t;let e=t.length;if(!$V(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},bM=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&FQ(Uint8Array)),yM=(t,e)=>{const r=(t&&t[Symbol.iterator]).call(t);let i;for(;(i=r.next())&&!i.done;){const a=i.value;e.call(t,a[0],a[1])}},FM=(t,e)=>{let n;const r=[];for(;(n=t.exec(e))!==null;)r.push(n);return r},QM=bf("HTMLFormElement"),UM=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),ZB=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),RM=bf("RegExp"),tE=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),r={};H0(n,(i,a)=>{let o;(o=e(i,a,t))!==!1&&(r[a]=o||i)}),Object.defineProperties(t,r)},BM=t=>{tE(t,(e,n)=>{if(Wu(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=t[n];if(Wu(r)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},ZM=(t,e)=>{const n={},r=i=>{i.forEach(a=>{n[a]=!0})};return Sp(t)?r(t):r(String(t).split(e)),n},IM=()=>{},CM=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e,LF="abcdefghijklmnopqrstuvwxyz",IB="0123456789",nE={DIGIT:IB,ALPHA:LF,ALPHA_DIGIT:LF+LF.toUpperCase()+IB},vM=(t=16,e=nE.ALPHA_DIGIT)=>{let n="";const{length:r}=e;for(;t--;)n+=e[Math.random()*r|0];return n};function VM(t){return!!(t&&Wu(t.append)&&t[Symbol.toStringTag]==="FormData"&&t[Symbol.iterator])}const EM=t=>{const e=new Array(10),n=(r,i)=>{if(Sy(r)){if(e.indexOf(r)>=0)return;if(!("toJSON"in r)){e[i]=r;const a=Sp(r)?[]:{};return H0(r,(o,l)=>{const s=n(o,i+1);!i0(s)&&(a[l]=s)}),e[i]=void 0,a}}return r};return n(t,0)},SM=bf("AsyncFunction"),WM=t=>t&&(Sy(t)||Wu(t))&&Wu(t.then)&&Wu(t.catch),rE=((t,e)=>t?setImmediate:e?((n,r)=>(aA.addEventListener("message",({source:i,data:a})=>{i===aA&&a===n&&r.length&&r.shift()()},!1),i=>{r.push(i),aA.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Wu(aA.postMessage)),NM=typeof queueMicrotask<"u"?queueMicrotask.bind(aA):typeof process<"u"&&process.nextTick||rE,or={isArray:Sp,isArrayBuffer:_V,isBuffer:jD,isFormData:aM,isArrayBufferView:_D,isString:$D,isNumber:$V,isBoolean:qD,isObject:Sy,isPlainObject:Sb,isReadableStream:lM,isRequest:sM,isResponse:dM,isHeaders:cM,isUndefined:i0,isDate:eM,isFile:tM,isBlob:nM,isRegExp:RM,isFunction:Wu,isStream:iM,isURLSearchParams:oM,isTypedArray:bM,isFileList:rM,forEach:H0,merge:O1,extend:fM,trim:uM,stripBOM:hM,inherits:gM,toFlatObject:AM,kindOf:Vy,kindOfTest:bf,endsWith:pM,toArray:mM,forEachEntry:yM,matchAll:FM,isHTMLForm:QM,hasOwnProperty:ZB,hasOwnProp:ZB,reduceDescriptors:tE,freezeMethods:BM,toObjectSet:ZM,toCamelCase:UM,noop:IM,toFiniteNumber:CM,findKey:qV,global:aA,isContextDefined:eE,ALPHABET:nE,generateString:vM,isSpecCompliantForm:VM,toJSONObject:EM,isAsyncFn:SM,isThenable:WM,setImmediate:rE,asap:NM};function Do(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}or.inherits(Do,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:or.toJSONObject(this.config),code:this.code,status:this.status}}});const iE=Do.prototype,aE={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{aE[t]={value:t}});Object.defineProperties(Do,aE);Object.defineProperty(iE,"isAxiosError",{value:!0});Do.from=(t,e,n,r,i,a)=>{const o=Object.create(iE);return or.toFlatObject(t,o,function(s){return s!==Error.prototype},l=>l!=="isAxiosError"),Do.call(o,t.message,e,n,r,i),o.cause=t,o.name=t.name,a&&Object.assign(o,a),o};const GM=null;function K1(t){return or.isPlainObject(t)||or.isArray(t)}function oE(t){return or.endsWith(t,"[]")?t.slice(0,-2):t}function CB(t,e,n){return t?t.concat(e).map(function(i,a){return i=oE(i),!n&&a?"["+i+"]":i}).join(n?".":""):e}function JM(t){return or.isArray(t)&&!t.some(K1)}const TM=or.toFlatObject(or,{},null,function(e){return/^is[A-Z]/.test(e)});function Wy(t,e,n){if(!or.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=or.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(A,b){return!or.isUndefined(b[A])});const r=n.metaTokens,i=n.visitor||c,a=n.dots,o=n.indexes,s=(n.Blob||typeof Blob<"u"&&Blob)&&or.isSpecCompliantForm(e);if(!or.isFunction(i))throw new TypeError("visitor must be a function");function d(g){if(g===null)return"";if(or.isDate(g))return g.toISOString();if(!s&&or.isBlob(g))throw new Do("Blob is not supported. Use a Buffer instead.");return or.isArrayBuffer(g)||or.isTypedArray(g)?s&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function c(g,A,b){let p=g;if(g&&!b&&typeof g=="object"){if(or.endsWith(A,"{}"))A=r?A:A.slice(0,-2),g=JSON.stringify(g);else if(or.isArray(g)&&JM(g)||(or.isFileList(g)||or.endsWith(A,"[]"))&&(p=or.toArray(g)))return A=oE(A),p.forEach(function(m,F){!(or.isUndefined(m)||m===null)&&e.append(o===!0?CB([A],F,a):o===null?A:A+"[]",d(m))}),!1}return K1(g)?!0:(e.append(CB(b,A,a),d(g)),!1)}const u=[],h=Object.assign(TM,{defaultVisitor:c,convertValue:d,isVisitable:K1});function f(g,A){if(!or.isUndefined(g)){if(u.indexOf(g)!==-1)throw Error("Circular reference detected in "+A.join("."));u.push(g),or.forEach(g,function(p,y){(!(or.isUndefined(p)||p===null)&&i.call(e,p,or.isString(y)?y.trim():y,A,h))===!0&&f(p,A?A.concat(y):[y])}),u.pop()}}if(!or.isObject(t))throw new TypeError("data must be an object");return f(t),e}function vB(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function QQ(t,e){this._pairs=[],t&&Wy(t,this,e)}const lE=QQ.prototype;lE.append=function(e,n){this._pairs.push([e,n])};lE.toString=function(e){const n=e?function(r){return e.call(this,r,vB)}:vB;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function XM(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function sE(t,e,n){if(!e)return t;const r=n&&n.encode||XM;or.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let a;if(i?a=i(e,n):a=or.isURLSearchParams(e)?e.toString():new QQ(e,n).toString(r),a){const o=t.indexOf("#");o!==-1&&(t=t.slice(0,o)),t+=(t.indexOf("?")===-1?"?":"&")+a}return t}class VB{constructor(){this.handlers=[]}use(e,n,r){return this.handlers.push({fulfilled:e,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){or.forEach(this.handlers,function(r){r!==null&&e(r)})}}const dE={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},kM=typeof URLSearchParams<"u"?URLSearchParams:QQ,wM=typeof FormData<"u"?FormData:null,YM=typeof Blob<"u"?Blob:null,DM={isBrowser:!0,classes:{URLSearchParams:kM,FormData:wM,Blob:YM},protocols:["http","https","file","blob","url","data"]},UQ=typeof window<"u"&&typeof document<"u",P1=typeof navigator=="object"&&navigator||void 0,MM=UQ&&(!P1||["ReactNative","NativeScript","NS"].indexOf(P1.product)<0),LM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",HM=UQ&&window.location.href||"http://localhost",xM=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:UQ,hasStandardBrowserEnv:MM,hasStandardBrowserWebWorkerEnv:LM,navigator:P1,origin:HM},Symbol.toStringTag,{value:"Module"})),tu={...xM,...DM};function OM(t,e){return Wy(t,new tu.classes.URLSearchParams,Object.assign({visitor:function(n,r,i,a){return tu.isNode&&or.isBuffer(n)?(this.append(r,n.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},e))}function KM(t){return or.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function PM(t){const e={},n=Object.keys(t);let r;const i=n.length;let a;for(r=0;r<i;r++)a=n[r],e[a]=t[a];return e}function cE(t){function e(n,r,i,a){let o=n[a++];if(o==="__proto__")return!0;const l=Number.isFinite(+o),s=a>=n.length;return o=!o&&or.isArray(i)?i.length:o,s?(or.hasOwnProp(i,o)?i[o]=[i[o],r]:i[o]=r,!l):((!i[o]||!or.isObject(i[o]))&&(i[o]=[]),e(n,r,i[o],a)&&or.isArray(i[o])&&(i[o]=PM(i[o])),!l)}if(or.isFormData(t)&&or.isFunction(t.entries)){const n={};return or.forEachEntry(t,(r,i)=>{e(KM(r),i,n,0)}),n}return null}function zM(t,e,n){if(or.isString(t))try{return(e||JSON.parse)(t),or.trim(t)}catch(r){if(r.name!=="SyntaxError")throw r}return(0,JSON.stringify)(t)}const x0={transitional:dE,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,a=or.isObject(e);if(a&&or.isHTMLForm(e)&&(e=new FormData(e)),or.isFormData(e))return i?JSON.stringify(cE(e)):e;if(or.isArrayBuffer(e)||or.isBuffer(e)||or.isStream(e)||or.isFile(e)||or.isBlob(e)||or.isReadableStream(e))return e;if(or.isArrayBufferView(e))return e.buffer;if(or.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let l;if(a){if(r.indexOf("application/x-www-form-urlencoded")>-1)return OM(e,this.formSerializer).toString();if((l=or.isFileList(e))||r.indexOf("multipart/form-data")>-1){const s=this.env&&this.env.FormData;return Wy(l?{"files[]":e}:e,s&&new s,this.formSerializer)}}return a||i?(n.setContentType("application/json",!1),zM(e)):e}],transformResponse:[function(e){const n=this.transitional||x0.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(or.isResponse(e)||or.isReadableStream(e))return e;if(e&&or.isString(e)&&(r&&!this.responseType||i)){const o=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(e)}catch(l){if(o)throw l.name==="SyntaxError"?Do.from(l,Do.ERR_BAD_RESPONSE,this,null,this.response):l}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:tu.classes.FormData,Blob:tu.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};or.forEach(["delete","get","head","post","put","patch"],t=>{x0.headers[t]={}});const jM=or.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),_M=t=>{const e={};let n,r,i;return t&&t.split(` `).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),r=o.substring(i+1).trim(),!(!n||e[n]&&jM[n])&&(n==="set-cookie"?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)}),e},EB=Symbol("internals");function bm(t){return t&&String(t).trim().toLowerCase()}function Wb(t){return t===!1||t==null?t:or.isArray(t)?t.map(Wb):String(t)}function $M(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(t);)e[r[1]]=r[2];return e}const qM=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function HF(t,e,n,r,i){if(or.isFunction(r))return r.call(this,e,n);if(i&&(e=n),!!or.isString(e)){if(or.isString(r))return e.indexOf(r)!==-1;if(or.isRegExp(r))return r.test(e)}}function e4(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,r)=>n.toUpperCase()+r)}function t4(t,e){const n=or.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(t,r+n,{value:function(i,a,o){return this[r].call(this,e,i,a,o)},configurable:!0})})}class Uu{constructor(e){e&&this.set(e)}set(e,n,r){const i=this;function a(l,s,d){const c=bm(s);if(!c)throw new Error("header name must be a non-empty string");const u=or.findKey(i,c);(!u||i[u]===void 0||d===!0||d===void 0&&i[u]!==!1)&&(i[u||s]=Wb(l))}const o=(l,s)=>or.forEach(l,(d,c)=>a(d,c,s));if(or.isPlainObject(e)||e instanceof this.constructor)o(e,n);else if(or.isString(e)&&(e=e.trim())&&!qM(e))o(_M(e),n);else if(or.isHeaders(e))for(const[l,s]of e.entries())a(s,l,r);else e!=null&&a(n,e,r);return this}get(e,n){if(e=bm(e),e){const r=or.findKey(this,e);if(r){const i=this[r];if(!n)return i;if(n===!0)return $M(i);if(or.isFunction(n))return n.call(this,i,r);if(or.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=bm(e),e){const r=or.findKey(this,e);return!!(r&&this[r]!==void 0&&(!n||HF(this,this[r],r,n)))}return!1}delete(e,n){const r=this;let i=!1;function a(o){if(o=bm(o),o){const l=or.findKey(r,o);l&&(!n||HF(r,r[l],l,n))&&(delete r[l],i=!0)}}return or.isArray(e)?e.forEach(a):a(e),i}clear(e){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const a=n[r];(!e||HF(this,this[a],a,e,!0))&&(delete this[a],i=!0)}return i}normalize(e){const n=this,r={};return or.forEach(this,(i,a)=>{const o=or.findKey(r,a);if(o){n[o]=Wb(i),delete n[a];return}const l=e?e4(a):String(a).trim();l!==a&&delete n[a],n[l]=Wb(i),r[l]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return or.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=e&&or.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){const r=new this(e);return n.forEach(i=>r.set(i)),r}static accessor(e){const r=(this[EB]=this[EB]={accessors:{}}).accessors,i=this.prototype;function a(o){const l=bm(o);r[l]||(t4(i,o),r[l]=!0)}return or.isArray(e)?e.forEach(a):a(e),this}}Uu.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);or.reduceDescriptors(Uu.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(r){this[n]=r}}});or.freezeMethods(Uu);function xF(t,e){const n=this||x0,r=e||n,i=Uu.from(r.headers);let a=r.data;return or.forEach(t,function(l){a=l.call(n,a,i.normalize(),e?e.status:void 0)}),i.normalize(),a}function uE(t){return!!(t&&t.__CANCEL__)}function Wp(t,e,n){Do.call(this,t??"canceled",Do.ERR_CANCELED,e,n),this.name="CanceledError"}or.inherits(Wp,Do,{__CANCEL__:!0});function fE(t,e,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?t(n):e(new Do("Request failed with status code "+n.status,[Do.ERR_BAD_REQUEST,Do.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function n4(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function r4(t,e){t=t||10;const n=new Array(t),r=new Array(t);let i=0,a=0,o;return e=e!==void 0?e:1e3,function(s){const d=Date.now(),c=r[a];o||(o=d),n[i]=s,r[i]=d;let u=a,h=0;for(;u!==i;)h+=n[u++],u=u%t;if(i=(i+1)%t,i===a&&(a=(a+1)%t),d-o<e)return;const f=c&&d-c;return f?Math.round(h*1e3/f):void 0}}function i4(t,e){let n=0,r=1e3/e,i,a;const o=(d,c=Date.now())=>{n=c,i=null,a&&(clearTimeout(a),a=null),t.apply(null,d)};return[(...d)=>{const c=Date.now(),u=c-n;u>=r?o(d,c):(i=d,a||(a=setTimeout(()=>{a=null,o(i)},r-u)))},()=>i&&o(i)]}const ey=(t,e,n=3)=>{let r=0;const i=r4(50,250);return i4(a=>{const o=a.loaded,l=a.lengthComputable?a.total:void 0,s=o-r,d=i(s),c=o<=l;r=o;const u={loaded:o,total:l,progress:l?o/l:void 0,bytes:s,rate:d||void 0,estimated:d&&l&&c?(l-o)/d:void 0,event:a,lengthComputable:l!=null,[e?"download":"upload"]:!0};t(u)},n)},SB=(t,e)=>{const n=t!=null;return[r=>e[0]({lengthComputable:n,total:t,loaded:r}),e[1]]},WB=t=>(...e)=>or.asap(()=>t(...e)),a4=tu.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,tu.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(tu.origin),tu.navigator&&/(msie|trident)/i.test(tu.navigator.userAgent)):()=>!0,o4=tu.hasStandardBrowserEnv?{write(t,e,n,r,i,a){const o=[t+"="+encodeURIComponent(e)];or.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),or.isString(r)&&o.push("path="+r),or.isString(i)&&o.push("domain="+i),a===!0&&o.push("secure"),document.cookie=o.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function l4(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function s4(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function hE(t,e){return t&&!l4(e)?s4(t,e):e}const NB=t=>t instanceof Uu?{...t}:t;function mA(t,e){e=e||{};const n={};function r(d,c,u,h){return or.isPlainObject(d)&&or.isPlainObject(c)?or.merge.call({caseless:h},d,c):or.isPlainObject(c)?or.merge({},c):or.isArray(c)?c.slice():c}function i(d,c,u,h){if(or.isUndefined(c)){if(!or.isUndefined(d))return r(void 0,d,u,h)}else return r(d,c,u,h)}function a(d,c){if(!or.isUndefined(c))return r(void 0,c)}function o(d,c){if(or.isUndefined(c)){if(!or.isUndefined(d))return r(void 0,d)}else return r(void 0,c)}function l(d,c,u){if(u in e)return r(d,c);if(u in t)return r(void 0,d)}const s={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:l,headers:(d,c,u)=>i(NB(d),NB(c),u,!0)};return or.forEach(Object.keys(Object.assign({},t,e)),function(c){const u=s[c]||i,h=u(t[c],e[c],c);or.isUndefined(h)&&u!==l||(n[c]=h)}),n}const gE=t=>{const e=mA({},t);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:a,headers:o,auth:l}=e;e.headers=o=Uu.from(o),e.url=sE(hE(e.baseURL,e.url),t.params,t.paramsSerializer),l&&o.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):"")));let s;if(or.isFormData(n)){if(tu.hasStandardBrowserEnv||tu.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if((s=o.getContentType())!==!1){const[d,...c]=s?s.split(";").map(u=>u.trim()).filter(Boolean):[];o.setContentType([d||"multipart/form-data",...c].join("; "))}}if(tu.hasStandardBrowserEnv&&(r&&or.isFunction(r)&&(r=r(e)),r||r!==!1&&a4(e.url))){const d=i&&a&&o4.read(a);d&&o.set(i,d)}return e},d4=typeof XMLHttpRequest<"u",c4=d4&&function(t){return new Promise(function(n,r){const i=gE(t);let a=i.data;const o=Uu.from(i.headers).normalize();let{responseType:l,onUploadProgress:s,onDownloadProgress:d}=i,c,u,h,f,g;function A(){f&&f(),g&&g(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let b=new XMLHttpRequest;b.open(i.method.toUpperCase(),i.url,!0),b.timeout=i.timeout;function p(){if(!b)return;const m=Uu.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),R={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:m,config:t,request:b};fE(function(B){n(B),A()},function(B){r(B),A()},R),b=null}"onloadend"in b?b.onloadend=p:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(p)},b.onabort=function(){b&&(r(new Do("Request aborted",Do.ECONNABORTED,t,b)),b=null)},b.onerror=function(){r(new Do("Network Error",Do.ERR_NETWORK,t,b)),b=null},b.ontimeout=function(){let F=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const R=i.transitional||dE;i.timeoutErrorMessage&&(F=i.timeoutErrorMessage),r(new Do(F,R.clarifyTimeoutError?Do.ETIMEDOUT:Do.ECONNABORTED,t,b)),b=null},a===void 0&&o.setContentType(null),"setRequestHeader"in b&&or.forEach(o.toJSON(),function(F,R){b.setRequestHeader(R,F)}),or.isUndefined(i.withCredentials)||(b.withCredentials=!!i.withCredentials),l&&l!=="json"&&(b.responseType=i.responseType),d&&([h,g]=ey(d,!0),b.addEventListener("progress",h)),s&&b.upload&&([u,f]=ey(s),b.upload.addEventListener("progress",u),b.upload.addEventListener("loadend",f)),(i.cancelToken||i.signal)&&(c=m=>{b&&(r(!m||m.type?new Wp(null,t,b):m),b.abort(),b=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const y=n4(i.url);if(y&&tu.protocols.indexOf(y)===-1){r(new Do("Unsupported protocol "+y+":",Do.ERR_BAD_REQUEST,t));return}b.send(a||null)})},u4=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let r=new AbortController,i;const a=function(d){if(!i){i=!0,l();const c=d instanceof Error?d:this.reason;r.abort(c instanceof Do?c:new Wp(c instanceof Error?c.message:c))}};let o=e&&setTimeout(()=>{o=null,a(new Do(`timeout ${e} of ms exceeded`,Do.ETIMEDOUT))},e);const l=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach(d=>{d.unsubscribe?d.unsubscribe(a):d.removeEventListener("abort",a)}),t=null)};t.forEach(d=>d.addEventListener("abort",a));const{signal:s}=r;return s.unsubscribe=()=>or.asap(l),s}},f4=function*(t,e){let n=t.byteLength;if(n<e){yield t;return}let r=0,i;for(;r<n;)i=r+e,yield t.slice(r,i),r=i},h4=async function*(t,e){for await(const n of g4(t))yield*f4(n,e)},g4=async function*(t){if(t[Symbol.asyncIterator]){yield*t;return}const e=t.getReader();try{for(;;){const{done:n,value:r}=await e.read();if(n)break;yield r}}finally{await e.cancel()}},GB=(t,e,n,r)=>{const i=h4(t,e);let a=0,o,l=s=>{o||(o=!0,r&&r(s))};return new ReadableStream({async pull(s){try{const{done:d,value:c}=await i.next();if(d){l(),s.close();return}let u=c.byteLength;if(n){let h=a+=u;n(h)}s.enqueue(new Uint8Array(c))}catch(d){throw l(d),d}},cancel(s){return l(s),i.return()}},{highWaterMark:2})},Ny=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",AE=Ny&&typeof ReadableStream=="function",A4=Ny&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),pE=(t,...e)=>{try{return!!t(...e)}catch{return!1}},p4=AE&&pE(()=>{let t=!1;const e=new Request(tu.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),JB=64*1024,z1=AE&&pE(()=>or.isReadableStream(new Response("").body)),ty={stream:z1&&(t=>t.body)};Ny&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!ty[e]&&(ty[e]=or.isFunction(t[e])?n=>n[e]():(n,r)=>{throw new Do(`Response type '${e}' is not supported`,Do.ERR_NOT_SUPPORT,r)})})})(new Response);const m4=async t=>{if(t==null)return 0;if(or.isBlob(t))return t.size;if(or.isSpecCompliantForm(t))return(await new Request(tu.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(or.isArrayBufferView(t)||or.isArrayBuffer(t))return t.byteLength;if(or.isURLSearchParams(t)&&(t=t+""),or.isString(t))return(await A4(t)).byteLength},b4=async(t,e)=>{const n=or.toFiniteNumber(t.getContentLength());return n??m4(e)},y4=Ny&&(async t=>{let{url:e,method:n,data:r,signal:i,cancelToken:a,timeout:o,onDownloadProgress:l,onUploadProgress:s,responseType:d,headers:c,withCredentials:u="same-origin",fetchOptions:h}=gE(t);d=d?(d+"").toLowerCase():"text";let f=u4([i,a&&a.toAbortSignal()],o),g;const A=f&&f.unsubscribe&&(()=>{f.unsubscribe()});let b;try{if(s&&p4&&n!=="get"&&n!=="head"&&(b=await b4(c,r))!==0){let R=new Request(e,{method:"POST",body:r,duplex:"half"}),C;if(or.isFormData(r)&&(C=R.headers.get("content-type"))&&c.setContentType(C),R.body){const[B,N]=SB(b,ey(WB(s)));r=GB(R.body,JB,B,N)}}or.isString(u)||(u=u?"include":"omit");const p="credentials"in Request.prototype;g=new Request(e,{...h,signal:f,method:n.toUpperCase(),headers:c.normalize().toJSON(),body:r,duplex:"half",credentials:p?u:void 0});let y=await fetch(g);const m=z1&&(d==="stream"||d==="response");if(z1&&(l||m&&A)){const R={};["status","statusText","headers"].forEach(S=>{R[S]=y[S]});const C=or.toFiniteNumber(y.headers.get("content-length")),[B,N]=l&&SB(C,ey(WB(l),!0))||[];y=new Response(GB(y.body,JB,B,()=>{N&&N(),A&&A()}),R)}d=d||"text";let F=await ty[or.findKey(ty,d)||"text"](y,t);return!m&&A&&A(),await new Promise((R,C)=>{fE(R,C,{data:F,headers:Uu.from(y.headers),status:y.status,statusText:y.statusText,config:t,request:g})})}catch(p){throw A&&A(),p&&p.name==="TypeError"&&/fetch/i.test(p.message)?Object.assign(new Do("Network Error",Do.ERR_NETWORK,t,g),{cause:p.cause||p}):Do.from(p,p&&p.code,t,g)}}),j1={http:GM,xhr:c4,fetch:y4};or.forEach(j1,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const TB=t=>`- ${t}`,F4=t=>or.isFunction(t)||t===null||t===!1,mE={getAdapter:t=>{t=or.isArray(t)?t:[t];const{length:e}=t;let n,r;const i={};for(let a=0;a<e;a++){n=t[a];let o;if(r=n,!F4(n)&&(r=j1[(o=String(n)).toLowerCase()],r===void 0))throw new Do(`Unknown adapter '${o}'`);if(r)break;i[o||"#"+a]=r}if(!r){const a=Object.entries(i).map(([l,s])=>`adapter ${l} `+(s===!1?"is not supported by the environment":"is not available in the build"));let o=e?a.length>1?`since : `+a.map(TB).join(` `):" "+TB(a[0]):"as no adapter specified";throw new Do("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return r},adapters:j1};function OF(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Wp(null,t)}function XB(t){return OF(t),t.headers=Uu.from(t.headers),t.data=xF.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),mE.getAdapter(t.adapter||x0.adapter)(t).then(function(r){return OF(t),r.data=xF.call(t,t.transformResponse,r),r.headers=Uu.from(r.headers),r},function(r){return uE(r)||(OF(t),r&&r.response&&(r.response.data=xF.call(t,t.transformResponse,r.response),r.response.headers=Uu.from(r.response.headers))),Promise.reject(r)})}const bE="1.7.9",Gy={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Gy[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}});const kB={};Gy.transitional=function(e,n,r){function i(a,o){return"[Axios v"+bE+"] Transitional option '"+a+"'"+o+(r?". "+r:"")}return(a,o,l)=>{if(e===!1)throw new Do(i(o," has been removed"+(n?" in "+n:"")),Do.ERR_DEPRECATED);return n&&!kB[o]&&(kB[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(a,o,l):!0}};Gy.spelling=function(e){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};function Q4(t,e,n){if(typeof t!="object")throw new Do("options must be an object",Do.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let i=r.length;for(;i-- >0;){const a=r[i],o=e[a];if(o){const l=t[a],s=l===void 0||o(l,a,t);if(s!==!0)throw new Do("option "+a+" must be "+s,Do.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Do("Unknown option "+a,Do.ERR_BAD_OPTION)}}const Nb={assertOptions:Q4,validators:Gy},Sf=Nb.validators;class cA{constructor(e){this.defaults=e,this.interceptors={request:new VB,response:new VB}}async request(e,n){try{return await this._request(e,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const a=i.stack?i.stack.replace(/^.+\n/,""):"";try{r.stack?a&&!String(r.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(r.stack+=` `+a):r.stack=a}catch{}}throw r}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=mA(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:a}=n;r!==void 0&&Nb.assertOptions(r,{silentJSONParsing:Sf.transitional(Sf.boolean),forcedJSONParsing:Sf.transitional(Sf.boolean),clarifyTimeoutError:Sf.transitional(Sf.boolean)},!1),i!=null&&(or.isFunction(i)?n.paramsSerializer={serialize:i}:Nb.assertOptions(i,{encode:Sf.function,serialize:Sf.function},!0)),Nb.assertOptions(n,{baseUrl:Sf.spelling("baseURL"),withXsrfToken:Sf.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=a&&or.merge(a.common,a[n.method]);a&&or.forEach(["delete","get","head","post","put","patch","common"],g=>{delete a[g]}),n.headers=Uu.concat(o,a);const l=[];let s=!0;this.interceptors.request.forEach(function(A){typeof A.runWhen=="function"&&A.runWhen(n)===!1||(s=s&&A.synchronous,l.unshift(A.fulfilled,A.rejected))});const d=[];this.interceptors.response.forEach(function(A){d.push(A.fulfilled,A.rejected)});let c,u=0,h;if(!s){const g=[XB.bind(this),void 0];for(g.unshift.apply(g,l),g.push.apply(g,d),h=g.length,c=Promise.resolve(n);u<h;)c=c.then(g[u++],g[u++]);return c}h=l.length;let f=n;for(u=0;u<h;){const g=l[u++],A=l[u++];try{f=g(f)}catch(b){A.call(this,b);break}}try{c=XB.call(this,f)}catch(g){return Promise.reject(g)}for(u=0,h=d.length;u<h;)c=c.then(d[u++],d[u++]);return c}getUri(e){e=mA(this.defaults,e);const n=hE(e.baseURL,e.url);return sE(n,e.params,e.paramsSerializer)}}or.forEach(["delete","get","head","options"],function(e){cA.prototype[e]=function(n,r){return this.request(mA(r||{},{method:e,url:n,data:(r||{}).data}))}});or.forEach(["post","put","patch"],function(e){function n(r){return function(a,o,l){return this.request(mA(l||{},{method:e,headers:r?{"Content-Type":"multipart/form-data"}:{},url:a,data:o}))}}cA.prototype[e]=n(),cA.prototype[e+"Form"]=n(!0)});class RQ{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(a){n=a});const r=this;this.promise.then(i=>{if(!r._listeners)return;let a=r._listeners.length;for(;a-- >0;)r._listeners[a](i);r._listeners=null}),this.promise.then=i=>{let a;const o=new Promise(l=>{r.subscribe(l),a=l}).then(i);return o.cancel=function(){r.unsubscribe(a)},o},e(function(a,o,l){r.reason||(r.reason=new Wp(a,o,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=r=>{e.abort(r)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new RQ(function(i){e=i}),cancel:e}}}function U4(t){return function(n){return t.apply(null,n)}}function R4(t){return or.isObject(t)&&t.isAxiosError===!0}const _1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_1).forEach(([t,e])=>{_1[e]=t});function yE(t){const e=new cA(t),n=jV(cA.prototype.request,e);return or.extend(n,cA.prototype,e,{allOwnKeys:!0}),or.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return yE(mA(t,i))},n}const Rd=yE(x0);Rd.Axios=cA;Rd.CanceledError=Wp;Rd.CancelToken=RQ;Rd.isCancel=uE;Rd.VERSION=bE;Rd.toFormData=Wy;Rd.AxiosError=Do;Rd.Cancel=Rd.CanceledError;Rd.all=function(e){return Promise.all(e)};Rd.spread=U4;Rd.isAxiosError=R4;Rd.mergeConfig=mA;Rd.AxiosHeaders=Uu;Rd.formToJSON=t=>cE(or.isHTMLForm(t)?new FormData(t):t);Rd.getAdapter=mE.getAdapter;Rd.HttpStatusCode=_1;Rd.default=Rd;function B4(){const t=hn(""),e=hn("https://thunder-way.com/api/"),n=hn(""),r=hn(""),i=hn(""),a=hn(""),o=hn("");return{merchant_email:t,base_url:e,local_url:n,token:r,merchant_token:i,phone:a,country_code:o}}function FE(t){const n=`; ${document.cookie}`.split(`; ${t}=`);return n.length===2?n.pop().split(";").shift():null}function Z4(t){const e=new Date;e.setTime(e.getTime()+12*60*60*1e3),document.cookie=`token=${t}; expires=${e.toUTCString()}; path=/`}function Cm(t){document.cookie=t+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"}function I4(){const t=hn(!1),e=hn(null),n=i=>{t.value=!0,e.value=i,setTimeout(()=>{r()},1e3)},r=()=>{t.value=!1};return{successText:e,showSuccessPopup:t,handleSuccessPopup:n}}function va(){const{t}=QA(),{base_url:e}=B4(),n=po(),r=FE("token"),i=hn(null),a=hn(null),o=hn(null),l=hn(null),s=hn(null),d=hn(!1),c=Ag(),{successText:u,showSuccessPopup:h,handleSuccessPopup:f}=I4(),g=(B,N)=>{i.value.add({severity:B==="success"?"success":"error",summary:t(B==="success"?"toast.successTitle":"toast.failTitle"),detail:N==="Network Error"?"يرجي التأكد من اتصالك بالانترنت وإعادة المحاولة":N,life:1500})},A=B=>{setTimeout(()=>{c.push(B)},800)},b=B=>{var N,S,X;d.value=!1,B.message==="Request failed with status code 403"?B.response.data.message==="Your account is not accepted yet"?c.push("/store-details"):(g("error",(S=(N=B==null?void 0:B.response)==null?void 0:N.data)==null?void 0:S.message),setTimeout(()=>{c.push("/home/last-orders")},500)):((X=B==null?void 0:B.response)==null?void 0:X.status)===401?(Cm("token"),location.reload()):g("error",B.message)},p=(B,N)=>{B==="toast"?g("success",N.data.msg):f(N.data.msg)},y=(B,N)=>{d.value=!0;const S={Lang:(n==null?void 0:n.lang)||"ar"};N===!0&&(S.Authorization=`Bearer ${r}`),Rd.get(e.value+B,{headers:S}).then(X=>{d.value=!1,X.data.key==="success"?(a.value=X.data,(B.startsWith("provider/orders/accept")||B.startsWith("provider/orders/preparing")||B.startsWith("provider/orders/prepared")||B.startsWith("provider/orders/finish"))&&(g("success",X.data.msg),setTimeout(()=>{location.reload()},800))):X.data.key=="unauthenticated"?(g("error",X.data.msg),A("/login/phone-entry"),Cm("token")):(X.data.key=="fail",g("error",X.data.msg))}).catch(X=>{b(X)})};return{getMethod:y,postMethod:(B,N,S,X,J)=>{d.value=!0;const E={Lang:(n==null?void 0:n.lang)||"ar"};S===!0&&(E.Authorization=`Bearer ${r}`),Rd.post(e.value+B,N,{headers:E}).then(v=>{d.value=!1,v.data.key==="success"?(o.value=v.data,p(J,v),X==="reload_page"?setTimeout(()=>{location.reload()},800):A(X),B==="provider/activate?_method=patch"&&Z4(v.data.data.token)):v.data.key==="needActive"?(g("error",v.data.msg),A("/login/phone-activation")):v.data.key==="unauthenticated"||v.data.key=="not_approved"?(g("error",v.data.msg),A("/login/phone-entry")):g("error",v.data.msg)}).catch(v=>{b(v)})},putMethod:(B,N,S,X)=>{d.value=!0;const J={Lang:(n==null?void 0:n.lang)||"ar"};S===!0&&(J.Authorization=`Bearer ${r}`),Rd.put(e.value+B,N,{headers:J}).then(E=>{d.value=!1,E.data.key==="success"?(g("success",E.data.msg),A(X),l.value=E.data,B==="/api/merchant/update-password"?Cm("token"):B==="/api/merchant/verify"&&isProfileCompleted()?(Cm("token"),c.push("/login")):B==="/api/merchant/verify"&&!isProfileCompleted()&&c.push("/store-details")):g("error",E.data.msg)}).catch(E=>{b(E)})},patchMethod:(B,N)=>{d.value=!0;const S={Lang:(n==null?void 0:n.lang)||"ar"};N===!0&&(S.Authorization=`Bearer ${r}`),Rd.patch(e.value+B,"",{headers:S}).then(X=>{d.value=!1,X.data.key==="success"?s.value=X:g("error",X.data.msg)}).catch(X=>{b(X)})},deleteMethod:(B,N,S,X)=>{d.value=!0;const J={Lang:(n==null?void 0:n.lang)||"ar"};N===!0&&(J.Authorization=`Bearer ${r}`),Rd.delete(e.value+B,{headers:J}).then(E=>{d.value=!1,E.data.key==="success"?(g("success",E.data.msg),S!==""&&y(S,!0),X==="reload_page"?setTimeout(()=>{location.reload()},300):c.push(X||"")):E.data.key==="unauthenticated"?c.push("/select-language"):g("error",E.data.msg)}).catch(E=>{b(E)})},getResult:a,postResult:o,putResult:l,patchResult:s,toast:i,handleToast:g,handleNextRoute:A,loading:d,successText:u,showSuccessPopup:h,handleSuccessPopup:f}}const wB="/assets/ringing-BUZmGUhD.mp3",YB="/assets/end-D6BMkcHg.mp3";function KF(t,e){var n=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=BQ(t))||e){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(d){throw d},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,l;return{s:function(){n=n.call(t)},n:function(){var d=n.next();return a=d.done,d},e:function(d){o=!0,l=d},f:function(){try{!a&&n.return!=null&&n.return()}finally{if(o)throw l}}}}function C4(t){return E4(t)||V4(t)||BQ(t)||v4()}function v4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function V4(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function E4(t){if(Array.isArray(t))return $1(t)}function Ym(t){"@babel/helpers - typeof";return Ym=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ym(t)}function PF(t,e){return N4(t)||W4(t,e)||BQ(t,e)||S4()}function S4(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function BQ(t,e){if(t){if(typeof t=="string")return $1(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $1(t,e)}}function $1(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function W4(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,a,o,l=[],s=!0,d=!1;try{if(a=(n=n.call(t)).next,e!==0)for(;!(s=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);s=!0);}catch(c){d=!0,i=c}finally{try{if(!s&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(d)throw i}}return l}}function N4(t){if(Array.isArray(t))return t}var Wn={innerWidth:function(e){if(e){var n=e.offsetWidth,r=getComputedStyle(e);return n+=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight),n}return 0},width:function(e){if(e){var n=e.offsetWidth,r=getComputedStyle(e);return n-=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight),n}return 0},getWindowScrollTop:function(){var e=document.documentElement;return(window.pageYOffset||e.scrollTop)-(e.clientTop||0)},getWindowScrollLeft:function(){var e=document.documentElement;return(window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)},getOuterWidth:function(e,n){if(e){var r=e.offsetWidth;if(n){var i=getComputedStyle(e);r+=parseFloat(i.marginLeft)+parseFloat(i.marginRight)}return r}return 0},getOuterHeight:function(e,n){if(e){var r=e.offsetHeight;if(n){var i=getComputedStyle(e);r+=parseFloat(i.marginTop)+parseFloat(i.marginBottom)}return r}return 0},getClientHeight:function(e,n){if(e){var r=e.clientHeight;if(n){var i=getComputedStyle(e);r+=parseFloat(i.marginTop)+parseFloat(i.marginBottom)}return r}return 0},getViewport:function(){var e=window,n=document,r=n.documentElement,i=n.getElementsByTagName("body")[0],a=e.innerWidth||r.clientWidth||i.clientWidth,o=e.innerHeight||r.clientHeight||i.clientHeight;return{width:a,height:o}},getOffset:function(e){if(e){var n=e.getBoundingClientRect();return{top:n.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:n.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}return{top:"auto",left:"auto"}},index:function(e){if(e)for(var n,r=(n=this.getParentNode(e))===null||n===void 0?void 0:n.childNodes,i=0,a=0;a<r.length;a++){if(r[a]===e)return i;r[a].nodeType===1&&i++}return-1},addMultipleClasses:function(e,n){var r=this;e&&n&&[n].flat().filter(Boolean).forEach(function(i){return i.split(" ").forEach(function(a){return r.addClass(e,a)})})},removeMultipleClasses:function(e,n){var r=this;e&&n&&[n].flat().filter(Boolean).forEach(function(i){return i.split(" ").forEach(function(a){return r.removeClass(e,a)})})},addClass:function(e,n){e&&n&&!this.hasClass(e,n)&&(e.classList?e.classList.add(n):e.className+=" "+n)},removeClass:function(e,n){e&&n&&(e.classList?e.classList.remove(n):e.className=e.className.replace(new RegExp("(^|\\b)"+n.split(" ").join("|")+"(\\b|$)","gi")," "))},hasClass:function(e,n){return e?e.classList?e.classList.contains(n):new RegExp("(^| )"+n+"( |$)","gi").test(e.className):!1},addStyles:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e&&Object.entries(n).forEach(function(r){var i=PF(r,2),a=i[0],o=i[1];return e.style[a]=o})},find:function(e,n){return this.isElement(e)?e.querySelectorAll(n):[]},findSingle:function(e,n){return this.isElement(e)?e.querySelector(n):null},createElement:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e){var r=document.createElement(e);this.setAttributes(r,n);for(var i=arguments.length,a=new Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];return r.append.apply(r,a),r}},setAttribute:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=arguments.length>2?arguments[2]:void 0;this.isElement(e)&&r!==null&&r!==void 0&&e.setAttribute(n,r)},setAttributes:function(e){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.isElement(e)){var i=function a(o,l){var s,d,c=e!=null&&(s=e.$attrs)!==null&&s!==void 0&&s[o]?[e==null||(d=e.$attrs)===null||d===void 0?void 0:d[o]]:[];return[l].flat().reduce(function(u,h){if(h!=null){var f=Ym(h);if(f==="string"||f==="number")u.push(h);else if(f==="object"){var g=Array.isArray(h)?a(o,h):Object.entries(h).map(function(A){var b=PF(A,2),p=b[0],y=b[1];return o==="style"&&(y||y===0)?"".concat(p.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),":").concat(y):y?p:void 0});u=g.length?u.concat(g.filter(function(A){return!!A})):u}}return u},c)};Object.entries(r).forEach(function(a){var o=PF(a,2),l=o[0],s=o[1];if(s!=null){var d=l.match(/^on(.+)/);d?e.addEventListener(d[1].toLowerCase(),s):l==="p-bind"?n.setAttributes(e,s):(s=l==="class"?C4(new Set(i("class",s))).join(" ").trim():l==="style"?i("style",s).join(";").trim():s,(e.$attrs=e.$attrs||{})&&(e.$attrs[l]=s),e.setAttribute(l,s))}})}},getAttribute:function(e,n){if(this.isElement(e)){var r=e.getAttribute(n);return isNaN(r)?r==="true"||r==="false"?r==="true":r:+r}},isAttributeEquals:function(e,n,r){return this.isElement(e)?this.getAttribute(e,n)===r:!1},isAttributeNotEquals:function(e,n,r){return!this.isAttributeEquals(e,n,r)},getHeight:function(e){if(e){var n=e.offsetHeight,r=getComputedStyle(e);return n-=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom)+parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),n}return 0},getWidth:function(e){if(e){var n=e.offsetWidth,r=getComputedStyle(e);return n-=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight)+parseFloat(r.borderLeftWidth)+parseFloat(r.borderRightWidth),n}return 0},absolutePosition:function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e){var i=e.offsetParent?{width:e.offsetWidth,height:e.offsetHeight}:this.getHiddenElementDimensions(e),a=i.height,o=i.width,l=n.offsetHeight,s=n.offsetWidth,d=n.getBoundingClientRect(),c=this.getWindowScrollTop(),u=this.getWindowScrollLeft(),h=this.getViewport(),f,g,A="top";d.top+l+a>h.height?(f=d.top+c-a,A="bottom",f<0&&(f=c)):f=l+d.top+c,d.left+o>h.width?g=Math.max(0,d.left+u+s-o):g=d.left+u,e.style.top=f+"px",e.style.left=g+"px",e.style.transformOrigin=A,r&&(e.style.marginTop=A==="bottom"?"calc(var(--p-anchor-gutter) * -1)":"calc(var(--p-anchor-gutter))")}},relativePosition:function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e){var i=e.offsetParent?{width:e.offsetWidth,height:e.offsetHeight}:this.getHiddenElementDimensions(e),a=n.offsetHeight,o=n.getBoundingClientRect(),l=this.getViewport(),s,d,c="top";o.top+a+i.height>l.height?(s=-1*i.height,c="bottom",o.top+s<0&&(s=-1*o.top)):s=a,i.width>l.width?d=o.left*-1:o.left+i.width>l.width?d=(o.left+i.width-l.width)*-1:d=0,e.style.top=s+"px",e.style.left=d+"px",e.style.transformOrigin=c,r&&(e.style.marginTop=c==="bottom"?"calc(var(--p-anchor-gutter) * -1)":"calc(var(--p-anchor-gutter))")}},nestedPosition:function(e,n){if(e){var r=e.parentElement,i=this.getOffset(r),a=this.getViewport(),o=e.offsetParent?e.offsetWidth:this.getHiddenElementOuterWidth(e),l=this.getOuterWidth(r.children[0]),s;parseInt(i.left,10)+l+o>a.width-this.calculateScrollbarWidth()?parseInt(i.left,10)<o?n%2===1?s=parseInt(i.left,10)?"-"+parseInt(i.left,10)+"px":"100%":n%2===0&&(s=a.width-o-this.calculateScrollbarWidth()+"px"):s="-100%":s="100%",e.style.top="0px",e.style.left=s}},getParentNode:function(e){var n=e==null?void 0:e.parentNode;return n&&n instanceof ShadowRoot&&n.host&&(n=n.host),n},getParents:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=this.getParentNode(e);return r===null?n:this.getParents(r,n.concat([r]))},getScrollableParents:function(e){var n=[];if(e){var r=this.getParents(e),i=/(auto|scroll)/,a=function(b){try{var p=window.getComputedStyle(b,null);return i.test(p.getPropertyValue("overflow"))||i.test(p.getPropertyValue("overflowX"))||i.test(p.getPropertyValue("overflowY"))}catch{return!1}},o=KF(r),l;try{for(o.s();!(l=o.n()).done;){var s=l.value,d=s.nodeType===1&&s.dataset.scrollselectors;if(d){var c=d.split(","),u=KF(c),h;try{for(u.s();!(h=u.n()).done;){var f=h.value,g=this.findSingle(s,f);g&&a(g)&&n.push(g)}}catch(A){u.e(A)}finally{u.f()}}s.nodeType!==9&&a(s)&&n.push(s)}}catch(A){o.e(A)}finally{o.f()}}return n},getHiddenElementOuterHeight:function(e){if(e){e.style.visibility="hidden",e.style.display="block";var n=e.offsetHeight;return e.style.display="none",e.style.visibility="visible",n}return 0},getHiddenElementOuterWidth:function(e){if(e){e.style.visibility="hidden",e.style.display="block";var n=e.offsetWidth;return e.style.display="none",e.style.visibility="visible",n}return 0},getHiddenElementDimensions:function(e){if(e){var n={};return e.style.visibility="hidden",e.style.display="block",n.width=e.offsetWidth,n.height=e.offsetHeight,e.style.display="none",e.style.visibility="visible",n}return 0},fadeIn:function(e,n){if(e){e.style.opacity=0;var r=+new Date,i=0,a=function o(){i=+e.style.opacity+(new Date().getTime()-r)/n,e.style.opacity=i,r=+new Date,+i<1&&(window.requestAnimationFrame&&requestAnimationFrame(o)||setTimeout(o,16))};a()}},fadeOut:function(e,n){if(e)var r=1,i=50,a=n,o=i/a,l=setInterval(function(){r-=o,r<=0&&(r=0,clearInterval(l)),e.style.opacity=r},i)},getUserAgent:function(){return navigator.userAgent},appendChild:function(e,n){if(this.isElement(n))n.appendChild(e);else if(n.el&&n.elElement)n.elElement.appendChild(e);else throw new Error("Cannot append "+n+" to "+e)},isElement:function(e){return(typeof HTMLElement>"u"?"undefined":Ym(HTMLElement))==="object"?e instanceof HTMLElement:e&&Ym(e)==="object"&&e!==null&&e.nodeType===1&&typeof e.nodeName=="string"},scrollInView:function(e,n){var r=getComputedStyle(e).getPropertyValue("borderTopWidth"),i=r?parseFloat(r):0,a=getComputedStyle(e).getPropertyValue("paddingTop"),o=a?parseFloat(a):0,l=e.getBoundingClientRect(),s=n.getBoundingClientRect(),d=s.top+document.body.scrollTop-(l.top+document.body.scrollTop)-i-o,c=e.scrollTop,u=e.clientHeight,h=this.getOuterHeight(n);d<0?e.scrollTop=c+d:d+h>u&&(e.scrollTop=c+d-u+h)},clearSelection:function(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}},getSelection:function(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null},calculateScrollbarWidth:function(){if(this.calculatedScrollbarWidth!=null)return this.calculatedScrollbarWidth;var e=document.createElement("div");this.addStyles(e,{width:"100px",height:"100px",overflow:"scroll",position:"absolute",top:"-9999px"}),document.body.appendChild(e);var n=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),this.calculatedScrollbarWidth=n,n},calculateBodyScrollbarWidth:function(){return window.innerWidth-document.documentElement.offsetWidth},getBrowser:function(){if(!this.browser){var e=this.resolveUserAgent();this.browser={},e.browser&&(this.browser[e.browser]=!0,this.browser.version=e.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser},resolveUserAgent:function(){var e=navigator.userAgent.toLowerCase(),n=/(chrome)[ ]([\w.]+)/.exec(e)||/(webkit)[ ]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ ]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:n[1]||"",version:n[2]||"0"}},isVisible:function(e){return e&&e.offsetParent!=null},invokeElementMethod:function(e,n,r){e[n].apply(e,r)},isExist:function(e){return!!(e!==null&&typeof e<"u"&&e.nodeName&&this.getParentNode(e))},isClient:function(){return!!(typeof window<"u"&&window.document&&window.document.createElement)},focus:function(e,n){e&&document.activeElement!==e&&e.focus(n)},isFocusableElement:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return this.isElement(e)?e.matches('button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])'.concat(n,`, [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n)):!1},getFocusableElements:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=this.find(e,'button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])'.concat(n,`, [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n,`, [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])`).concat(n)),i=[],a=KF(r),o;try{for(a.s();!(o=a.n()).done;){var l=o.value;getComputedStyle(l).display!="none"&&getComputedStyle(l).visibility!="hidden"&&i.push(l)}}catch(s){a.e(s)}finally{a.f()}return i},getFirstFocusableElement:function(e,n){var r=this.getFocusableElements(e,n);return r.length>0?r[0]:null},getLastFocusableElement:function(e,n){var r=this.getFocusableElements(e,n);return r.length>0?r[r.length-1]:null},getNextFocusableElement:function(e,n,r){var i=this.getFocusableElements(e,r),a=i.length>0?i.findIndex(function(l){return l===n}):-1,o=a>-1&&i.length>=a+1?a+1:-1;return o>-1?i[o]:null},getPreviousElementSibling:function(e,n){for(var r=e.previousElementSibling;r;){if(r.matches(n))return r;r=r.previousElementSibling}return null},getNextElementSibling:function(e,n){for(var r=e.nextElementSibling;r;){if(r.matches(n))return r;r=r.nextElementSibling}return null},isClickable:function(e){if(e){var n=e.nodeName,r=e.parentElement&&e.parentElement.nodeName;return n==="INPUT"||n==="TEXTAREA"||n==="BUTTON"||n==="A"||r==="INPUT"||r==="TEXTAREA"||r==="BUTTON"||r==="A"||!!e.closest(".p-button, .p-checkbox, .p-radiobutton")}return!1},applyStyle:function(e,n){if(typeof n=="string")e.style.cssText=n;else for(var r in n)e.style[r]=n[r]},isIOS:function(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream},isAndroid:function(){return/(android)/i.test(navigator.userAgent)},isTouchDevice:function(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0},hasCSSAnimation:function(e){if(e){var n=getComputedStyle(e),r=parseFloat(n.getPropertyValue("animation-duration")||"0");return r>0}return!1},hasCSSTransition:function(e){if(e){var n=getComputedStyle(e),r=parseFloat(n.getPropertyValue("transition-duration")||"0");return r>0}return!1},exportCSV:function(e,n){var r=new Blob([e],{type:"application/csv;charset=utf-8;"});if(window.navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(r,n+".csv");else{var i=document.createElement("a");i.download!==void 0?(i.setAttribute("href",URL.createObjectURL(r)),i.setAttribute("download",n+".csv"),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)):(e="data:text/csv;charset=utf-8,"+e,window.open(encodeURI(e)))}},blockBodyScroll:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"p-overflow-hidden";document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,e)},unblockBodyScroll:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"p-overflow-hidden";document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,e)}};function a0(t){"@babel/helpers - typeof";return a0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a0(t)}function G4(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function J4(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,X4(r.key),r)}}function T4(t,e,n){return J4(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function X4(t){var e=k4(t,"string");return a0(e)=="symbol"?e:String(e)}function k4(t,e){if(a0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e);if(a0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}var ZQ=function(){function t(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){};G4(this,t),this.element=e,this.listener=n}return T4(t,[{key:"bindScrollListener",value:function(){this.scrollableParents=Wn.getScrollableParents(this.element);for(var n=0;n<this.scrollableParents.length;n++)this.scrollableParents[n].addEventListener("scroll",this.listener)}},{key:"unbindScrollListener",value:function(){if(this.scrollableParents)for(var n=0;n<this.scrollableParents.length;n++)this.scrollableParents[n].removeEventListener("scroll",this.listener)}},{key:"destroy",value:function(){this.unbindScrollListener(),this.element=null,this.listener=null,this.scrollableParents=null}}]),t}();function QE(){var t=new Map;return{on:function(n,r){var i=t.get(n);i?i.push(r):i=[r],t.set(n,i)},off:function(n,r){var i=t.get(n);i&&i.splice(i.indexOf(r)>>>0,1)},emit:function(n,r){var i=t.get(n);i&&i.slice().map(function(a){a(r)})}}}function DB(t,e){return D4(t)||Y4(t,e)||IQ(t,e)||w4()}function w4(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Y4(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,a,o,l=[],s=!0,d=!1;try{if(a=(n=n.call(t)).next,e!==0)for(;!(s=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);s=!0);}catch(c){d=!0,i=c}finally{try{if(!s&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(d)throw i}}return l}}function D4(t){if(Array.isArray(t))return t}function MB(t){return H4(t)||L4(t)||IQ(t)||M4()}function M4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function L4(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function H4(t){if(Array.isArray(t))return q1(t)}function zF(t,e){var n=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=IQ(t))||e){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(d){throw d},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,l;return{s:function(){n=n.call(t)},n:function(){var d=n.next();return a=d.done,d},e:function(d){o=!0,l=d},f:function(){try{!a&&n.return!=null&&n.return()}finally{if(o)throw l}}}}function IQ(t,e){if(t){if(typeof t=="string")return q1(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q1(t,e)}}function q1(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Dm(t){"@babel/helpers - typeof";return Dm=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dm(t)}var jn={equals:function(e,n,r){return r?this.resolveFieldData(e,r)===this.resolveFieldData(n,r):this.deepEquals(e,n)},deepEquals:function(e,n){if(e===n)return!0;if(e&&n&&Dm(e)=="object"&&Dm(n)=="object"){var r=Array.isArray(e),i=Array.isArray(n),a,o,l;if(r&&i){if(o=e.length,o!=n.length)return!1;for(a=o;a--!==0;)if(!this.deepEquals(e[a],n[a]))return!1;return!0}if(r!=i)return!1;var s=e instanceof Date,d=n instanceof Date;if(s!=d)return!1;if(s&&d)return e.getTime()==n.getTime();var c=e instanceof RegExp,u=n instanceof RegExp;if(c!=u)return!1;if(c&&u)return e.toString()==n.toString();var h=Object.keys(e);if(o=h.length,o!==Object.keys(n).length)return!1;for(a=o;a--!==0;)if(!Object.prototype.hasOwnProperty.call(n,h[a]))return!1;for(a=o;a--!==0;)if(l=h[a],!this.deepEquals(e[l],n[l]))return!1;return!0}return e!==e&&n!==n},resolveFieldData:function(e,n){if(!e||!n)return null;try{var r=e[n];if(this.isNotEmpty(r))return r}catch{}if(Object.keys(e).length){if(this.isFunction(n))return n(e);if(n.indexOf(".")===-1)return e[n];for(var i=n.split("."),a=e,o=0,l=i.length;o<l;++o){if(a==null)return null;a=a[i[o]]}return a}return null},getItemValue:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return this.isFunction(e)?e.apply(void 0,r):e},filter:function(e,n,r){var i=[];if(e){var a=zF(e),o;try{for(a.s();!(o=a.n()).done;){var l=o.value,s=zF(n),d;try{for(s.s();!(d=s.n()).done;){var c=d.value;if(String(this.resolveFieldData(l,c)).toLowerCase().indexOf(r.toLowerCase())>-1){i.push(l);break}}}catch(u){s.e(u)}finally{s.f()}}}catch(u){a.e(u)}finally{a.f()}}return i},reorderArray:function(e,n,r){e&&n!==r&&(r>=e.length&&(r%=e.length,n%=e.length),e.splice(r,0,e.splice(n,1)[0]))},findIndexInList:function(e,n){var r=-1;if(n){for(var i=0;i<n.length;i++)if(n[i]===e){r=i;break}}return r},contains:function(e,n){if(e!=null&&n&&n.length){var r=zF(n),i;try{for(r.s();!(i=r.n()).done;){var a=i.value;if(this.equals(e,a))return!0}}catch(o){r.e(o)}finally{r.f()}}return!1},insertIntoOrderedArray:function(e,n,r,i){if(r.length>0){for(var a=!1,o=0;o<r.length;o++){var l=this.findIndexInList(r[o],i);if(l>n){r.splice(o,0,e),a=!0;break}}a||r.push(e)}else r.push(e)},removeAccents:function(e){return e&&e.search(/[\xC0-\xFF]/g)>-1&&(e=e.replace(/[\xC0-\xC5]/g,"A").replace(/[\xC6]/g,"AE").replace(/[\xC7]/g,"C").replace(/[\xC8-\xCB]/g,"E").replace(/[\xCC-\xCF]/g,"I").replace(/[\xD0]/g,"D").replace(/[\xD1]/g,"N").replace(/[\xD2-\xD6\xD8]/g,"O").replace(/[\xD9-\xDC]/g,"U").replace(/[\xDD]/g,"Y").replace(/[\xDE]/g,"P").replace(/[\xE0-\xE5]/g,"a").replace(/[\xE6]/g,"ae").replace(/[\xE7]/g,"c").replace(/[\xE8-\xEB]/g,"e").replace(/[\xEC-\xEF]/g,"i").replace(/[\xF1]/g,"n").replace(/[\xF2-\xF6\xF8]/g,"o").replace(/[\xF9-\xFC]/g,"u").replace(/[\xFE]/g,"p").replace(/[\xFD\xFF]/g,"y")),e},getVNodeProp:function(e,n){if(e){var r=e.props;if(r){var i=n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),a=Object.prototype.hasOwnProperty.call(r,i)?i:n;return e.type.extends.props[n].type===Boolean&&r[a]===""?!0:r[a]}}return null},toFlatCase:function(e){return this.isString(e)?e.replace(/(-|_)/g,"").toLowerCase():e},toKebabCase:function(e){return this.isString(e)?e.replace(/(_)/g,"-").replace(/[A-Z]/g,function(n,r){return r===0?n:"-"+n.toLowerCase()}).toLowerCase():e},toCapitalCase:function(e){return this.isString(e,{empty:!1})?e[0].toUpperCase()+e.slice(1):e},isEmpty:function(e){return e==null||e===""||Array.isArray(e)&&e.length===0||!(e instanceof Date)&&Dm(e)==="object"&&Object.keys(e).length===0},isNotEmpty:function(e){return!this.isEmpty(e)},isFunction:function(e){return!!(e&&e.constructor&&e.call&&e.apply)},isObject:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e instanceof Object&&e.constructor===Object&&(n||Object.keys(e).length!==0)},isDate:function(e){return e instanceof Date&&e.constructor===Date},isArray:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Array.isArray(e)&&(n||e.length!==0)},isString:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return typeof e=="string"&&(n||e!=="")},isPrintableCharacter:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return this.isNotEmpty(e)&&e.length===1&&e.match(/\S| /)},findLast:function(e,n){var r;if(this.isNotEmpty(e))try{r=e.findLast(n)}catch{r=MB(e).reverse().find(n)}return r},findLastIndex:function(e,n){var r=-1;if(this.isNotEmpty(e))try{r=e.findLastIndex(n)}catch{r=e.lastIndexOf(MB(e).reverse().find(n))}return r},sort:function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,i=arguments.length>3?arguments[3]:void 0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,o=this.compare(e,n,i,r),l=r;return(this.isEmpty(e)||this.isEmpty(n))&&(l=a===1?r:a),l*o},compare:function(e,n,r){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,a=-1,o=this.isEmpty(e),l=this.isEmpty(n);return o&&l?a=0:o?a=i:l?a=-i:typeof e=="string"&&typeof n=="string"?a=r(e,n):a=e<n?-1:e>n?1:0,a},localeComparator:function(){return new Intl.Collator(void 0,{numeric:!0}).compare},nestedKeys:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return Object.entries(n).reduce(function(i,a){var o=DB(a,2),l=o[0],s=o[1],d=r?"".concat(r,".").concat(l):l;return e.isObject(s)?i=i.concat(e.nestedKeys(s,d)):i.push(d),i},[])},stringify:function(e){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=" ".repeat(i),o=" ".repeat(i+r);return this.isArray(e)?"["+e.map(function(l){return n.stringify(l,r,i+r)}).join(", ")+"]":this.isDate(e)?e.toISOString():this.isFunction(e)?e.toString():this.isObject(e)?`{ `+Object.entries(e).map(function(l){var s=DB(l,2),d=s[0],c=s[1];return"".concat(o).concat(d,": ").concat(n.stringify(c,r,i+r))}).join(`, `)+` `.concat(a)+"}":JSON.stringify(e)}};function o0(t){"@babel/helpers - typeof";return o0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o0(t)}function x4(t){return z4(t)||P4(t)||K4(t)||O4()}function O4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function K4(t,e){if(t){if(typeof t=="string")return e2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e2(t,e)}}function P4(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function z4(t){if(Array.isArray(t))return e2(t)}function e2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function j4(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _4(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,UE(r.key),r)}}function $4(t,e,n){return _4(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function LB(t,e,n){return e=UE(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function UE(t){var e=q4(t,"string");return o0(e)=="symbol"?e:String(e)}function q4(t,e){if(o0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(o0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Up=function(){function t(e){var n=e.init,r=e.type;j4(this,t),LB(this,"helpers",void 0),LB(this,"type",void 0),this.helpers=new Set(n),this.type=r}return $4(t,[{key:"add",value:function(n){this.helpers.add(n)}},{key:"update",value:function(){}},{key:"delete",value:function(n){this.helpers.delete(n)}},{key:"clear",value:function(){this.helpers.clear()}},{key:"get",value:function(n,r){var i=this._get(n,r),a=i?this._recursive(x4(this.helpers),i):null;return jn.isNotEmpty(a)?a:null}},{key:"_isMatched",value:function(n,r){var i,a=n==null?void 0:n.parent;return(a==null||(i=a.vnode)===null||i===void 0?void 0:i.key)===r||a&&this._isMatched(a,r)||!1}},{key:"_get",value:function(n,r){var i,a;return((i=r||(n==null?void 0:n.$slots))===null||i===void 0||(a=i.default)===null||a===void 0?void 0:a.call(i))||null}},{key:"_recursive",value:function(){var n=this,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],a=[];return i.forEach(function(o){o.children instanceof Array?a=a.concat(n._recursive(a,o.children)):o.type.name===n.type?a.push(o):jn.isNotEmpty(o.key)&&(a=a.concat(r.filter(function(l){return n._isMatched(l,o.key)}).map(function(l){return l.vnode})))}),a}}]),t}(),HB=0;function Nu(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"pv_id_";return HB++,"".concat(t).concat(HB)}function eL(t){return iL(t)||rL(t)||nL(t)||tL()}function tL(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nL(t,e){if(t){if(typeof t=="string")return t2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t2(t,e)}}function rL(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function iL(t){if(Array.isArray(t))return t2(t)}function t2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function aL(){var t=[],e=function(l,s){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:999,c=i(l,s,d),u=c.value+(c.key===l?0:d)+1;return t.push({key:l,value:u}),u},n=function(l){t=t.filter(function(s){return s.value!==l})},r=function(l,s){return i(l,s).value},i=function(l,s){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return eL(t).reverse().find(function(c){return!0})||{key:l,value:d}},a=function(l){return l&&parseInt(l.style.zIndex,10)||0};return{get:a,set:function(l,s,d){s&&(s.style.zIndex=String(e(l,!0,d)))},clear:function(l){l&&(n(a(l)),l.style.zIndex="")},getCurrent:function(l){return r(l,!0)}}}var xu=aL(),O0={name:"Portal",props:{appendTo:{type:[String,Object],default:"body"},disabled:{type:Boolean,default:!1}},data:function(){return{mounted:!1}},mounted:function(){this.mounted=Wn.isClient()},computed:{inline:function(){return this.disabled||this.appendTo==="self"}}};function oL(t,e,n,r,i,a){return a.inline?Vi(t.$slots,"default",{key:0}):i.mounted?(oe(),Vn(XN,{key:1,to:n.appendTo},[Vi(t.$slots,"default")],8,["to"])):Pt("",!0)}O0.render=oL;var Yu=QE();function l0(t){"@babel/helpers - typeof";return l0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l0(t)}function xB(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function OB(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?xB(Object(n),!0).forEach(function(r){lL(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):xB(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function lL(t,e,n){return e=sL(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function sL(t){var e=dL(t,"string");return l0(e)=="symbol"?e:String(e)}function dL(t,e){if(l0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(l0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function cL(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;sg()?Ka(t):e?t():Bp(t)}var uL=0;function RE(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=hn(!1),r=hn(t),i=hn(null),a=Wn.isClient()?window.document:void 0,o=e.document,l=o===void 0?a:o,s=e.immediate,d=s===void 0?!0:s,c=e.manual,u=c===void 0?!1:c,h=e.name,f=h===void 0?"style_".concat(++uL):h,g=e.id,A=g===void 0?void 0:g,b=e.media,p=b===void 0?void 0:b,y=e.nonce,m=y===void 0?void 0:y,F=e.props,R=F===void 0?{}:F,C=function(){},B=function(X){var J=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(l){var E=OB(OB({},R),J),v=E.name||f,j=E.id||A,H=E.nonce||m;i.value=l.querySelector('style[data-primevue-style-id="'.concat(v,'"]'))||l.getElementById(j)||l.createElement("style"),i.value.isConnected||(r.value=X||t,Wn.setAttributes(i.value,{type:"text/css",id:j,media:p,nonce:H}),l.head.appendChild(i.value),Wn.setAttribute(i.value,"data-primevue-style-id",f),Wn.setAttributes(i.value,E)),!n.value&&(C=yi(r,function(K){i.value.textContent=K},{immediate:!0}),n.value=!0)}},N=function(){!l||!n.value||(C(),Wn.isExist(i.value)&&l.head.removeChild(i.value),n.value=!1)};return d&&!u&&cL(B),{id:A,name:f,css:r,unload:N,load:B,isLoaded:M2(n)}}function s0(t){"@babel/helpers - typeof";return s0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s0(t)}function fL(t,e){return pL(t)||AL(t,e)||gL(t,e)||hL()}function hL(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gL(t,e){if(t){if(typeof t=="string")return KB(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return KB(t,e)}}function KB(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function AL(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,a,o,l=[],s=!0,d=!1;try{if(a=(n=n.call(t)).next,e!==0)for(;!(s=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);s=!0);}catch(c){d=!0,i=c}finally{try{if(!s&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(d)throw i}}return l}}function pL(t){if(Array.isArray(t))return t}function PB(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function jF(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?PB(Object(n),!0).forEach(function(r){mL(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):PB(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function mL(t,e,n){return e=bL(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function bL(t){var e=yL(t,"string");return s0(e)=="symbol"?e:String(e)}function yL(t,e){if(s0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(s0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var FL=` .p-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .p-hidden-accessible input, .p-hidden-accessible select { transform: scale(0); } .p-overflow-hidden { overflow: hidden; padding-right: var(--scrollbar-width); } `,QL={},UL={},Ld={name:"base",css:FL,classes:QL,inlineStyles:UL,loadStyle:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.css?RE(this.css,jF({name:this.name},e)):{}},getStyleSheet:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.css){var r=Object.entries(n).reduce(function(i,a){var o=fL(a,2),l=o[0],s=o[1];return i.push("".concat(l,'="').concat(s,'"'))&&i},[]).join(" ");return'<style type="text/css" data-primevue-style-id="'.concat(this.name,'" ').concat(r,">").concat(this.css).concat(e,"</style>")}return""},extend:function(e){return jF(jF({},this),{},{css:void 0},e)}};function d0(t){"@babel/helpers - typeof";return d0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d0(t)}function zB(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function RL(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?zB(Object(n),!0).forEach(function(r){BL(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):zB(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function BL(t,e,n){return e=ZL(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ZL(t){var e=IL(t,"string");return d0(e)=="symbol"?e:String(e)}function IL(t,e){if(d0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(d0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var _F=Ld.extend({name:"common",loadGlobalStyle:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return RE(e,RL({name:"global"},n))}});function c0(t){"@babel/helpers - typeof";return c0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c0(t)}function CL(t){return IE(t)||vL(t)||ZE(t)||BE()}function vL(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function gb(t,e){return IE(t)||VL(t,e)||ZE(t,e)||BE()}function BE(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ZE(t,e){if(t){if(typeof t=="string")return jB(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jB(t,e)}}function jB(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function VL(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,a,o,l=[],s=!0,d=!1;try{if(a=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);s=!0);}catch(c){d=!0,i=c}finally{try{if(!s&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(d)throw i}}return l}}function IE(t){if(Array.isArray(t))return t}function _B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function sd(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?_B(Object(n),!0).forEach(function(r){Gb(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_B(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Gb(t,e,n){return e=EL(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function EL(t){var e=SL(t,"string");return c0(e)=="symbol"?e:String(e)}function SL(t,e){if(c0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(c0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var nl={name:"BaseComponent",props:{pt:{type:Object,default:void 0},ptOptions:{type:Object,default:void 0},unstyled:{type:Boolean,default:void 0}},inject:{$parentInstance:{default:void 0}},watch:{isUnstyled:{immediate:!0,handler:function(e){if(!e){var n,r;_F.loadStyle({nonce:(n=this.$primevueConfig)===null||n===void 0||(n=n.csp)===null||n===void 0?void 0:n.nonce}),this.$options.style&&this.$style.loadStyle({nonce:(r=this.$primevueConfig)===null||r===void 0||(r=r.csp)===null||r===void 0?void 0:r.nonce})}}}},beforeCreate:function(){var e,n,r,i,a,o,l,s,d,c,u,h=(e=this.pt)===null||e===void 0?void 0:e._usept,f=h?(n=this.pt)===null||n===void 0||(n=n.originalValue)===null||n===void 0?void 0:n[this.$.type.name]:void 0,g=h?(r=this.pt)===null||r===void 0||(r=r.value)===null||r===void 0?void 0:r[this.$.type.name]:this.pt;(i=g||f)===null||i===void 0||(i=i.hooks)===null||i===void 0||(a=i.onBeforeCreate)===null||a===void 0||a.call(i);var A=(o=this.$primevueConfig)===null||o===void 0||(o=o.pt)===null||o===void 0?void 0:o._usept,b=A?(l=this.$primevue)===null||l===void 0||(l=l.config)===null||l===void 0||(l=l.pt)===null||l===void 0?void 0:l.originalValue:void 0,p=A?(s=this.$primevue)===null||s===void 0||(s=s.config)===null||s===void 0||(s=s.pt)===null||s===void 0?void 0:s.value:(d=this.$primevue)===null||d===void 0||(d=d.config)===null||d===void 0?void 0:d.pt;(c=p||b)===null||c===void 0||(c=c[this.$.type.name])===null||c===void 0||(c=c.hooks)===null||c===void 0||(u=c.onBeforeCreate)===null||u===void 0||u.call(c)},created:function(){this._hook("onCreated")},beforeMount:function(){var e;Ld.loadStyle({nonce:(e=this.$primevueConfig)===null||e===void 0||(e=e.csp)===null||e===void 0?void 0:e.nonce}),this._loadGlobalStyles(),this._hook("onBeforeMount")},mounted:function(){this._hook("onMounted")},beforeUpdate:function(){this._hook("onBeforeUpdate")},updated:function(){this._hook("onUpdated")},beforeUnmount:function(){this._hook("onBeforeUnmount")},unmounted:function(){this._hook("onUnmounted")},methods:{_hook:function(e){if(!this.$options.hostName){var n=this._usePT(this._getPT(this.pt,this.$.type.name),this._getOptionValue,"hooks.".concat(e)),r=this._useDefaultPT(this._getOptionValue,"hooks.".concat(e));n==null||n(),r==null||r()}},_mergeProps:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return jn.isFunction(e)?e.apply(void 0,r):Jt.apply(void 0,r)},_loadGlobalStyles:function(){var e,n=this._useGlobalPT(this._getOptionValue,"global.css",this.$params);jn.isNotEmpty(n)&&_F.loadGlobalStyle(n,{nonce:(e=this.$primevueConfig)===null||e===void 0||(e=e.csp)===null||e===void 0?void 0:e.nonce})},_getHostInstance:function(e){return e?this.$options.hostName?e.$.type.name===this.$options.hostName?e:this._getHostInstance(e.$parentInstance):e.$parentInstance:void 0},_getPropValue:function(e){var n;return this[e]||((n=this._getHostInstance(this))===null||n===void 0?void 0:n[e])},_getOptionValue:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=jn.toFlatCase(n).split("."),a=i.shift();return a?jn.isObject(e)?this._getOptionValue(jn.getItemValue(e[Object.keys(e).find(function(o){return jn.toFlatCase(o)===a})||""],r),i.join("."),r):void 0:jn.getItemValue(e,r)},_getPTValue:function(){var e,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,o=/./g.test(r)&&!!i[r.split(".")[0]],l=this._getPropValue("ptOptions")||((e=this.$primevueConfig)===null||e===void 0?void 0:e.ptOptions)||{},s=l.mergeSections,d=s===void 0?!0:s,c=l.mergeProps,u=c===void 0?!1:c,h=a?o?this._useGlobalPT(this._getPTClassValue,r,i):this._useDefaultPT(this._getPTClassValue,r,i):void 0,f=o?void 0:this._getPTSelf(n,this._getPTClassValue,r,sd(sd({},i),{},{global:h||{}})),g=this._getPTDatasets(r);return d||!d&&f?u?this._mergeProps(u,h,f,g):sd(sd(sd({},h),f),g):sd(sd({},f),g)},_getPTSelf:function(){for(var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return Jt(this._usePT.apply(this,[this._getPT(e,this.$name)].concat(r)),this._usePT.apply(this,[this.$_attrsPT].concat(r)))},_getPTDatasets:function(){var e,n,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",i="data-pc-",a=r==="root"&&jn.isNotEmpty((e=this.pt)===null||e===void 0?void 0:e["data-pc-section"]);return r!=="transition"&&sd(sd({},r==="root"&&sd(Gb({},"".concat(i,"name"),jn.toFlatCase(a?(n=this.pt)===null||n===void 0?void 0:n["data-pc-section"]:this.$.type.name)),a&&Gb({},"".concat(i,"extend"),jn.toFlatCase(this.$.type.name)))),{},Gb({},"".concat(i,"section"),jn.toFlatCase(r)))},_getPTClassValue:function(){var e=this._getOptionValue.apply(this,arguments);return jn.isString(e)||jn.isArray(e)?{class:e}:e},_getPT:function(e){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,a=function(l){var s,d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,c=i?i(l):l,u=jn.toFlatCase(r),h=jn.toFlatCase(n.$name);return(s=d?u!==h?c==null?void 0:c[u]:void 0:c==null?void 0:c[u])!==null&&s!==void 0?s:c};return e!=null&&e.hasOwnProperty("_usept")?{_usept:e._usept,originalValue:a(e.originalValue),value:a(e.value)}:a(e,!0)},_usePT:function(e,n,r,i){var a=function(A){return n(A,r,i)};if(e!=null&&e.hasOwnProperty("_usept")){var o,l=e._usept||((o=this.$primevueConfig)===null||o===void 0?void 0:o.ptOptions)||{},s=l.mergeSections,d=s===void 0?!0:s,c=l.mergeProps,u=c===void 0?!1:c,h=a(e.originalValue),f=a(e.value);return h===void 0&&f===void 0?void 0:jn.isString(f)?f:jn.isString(h)?h:d||!d&&f?u?this._mergeProps(u,h,f):sd(sd({},h),f):f}return a(e)},_useGlobalPT:function(e,n,r){return this._usePT(this.globalPT,e,n,r)},_useDefaultPT:function(e,n,r){return this._usePT(this.defaultPT,e,n,r)},ptm:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this._getPTValue(this.pt,e,sd(sd({},this.$params),n))},ptmi:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Jt(this.$_attrsNoPT,this.ptm(e,n))},ptmo:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this._getPTValue(e,n,sd({instance:this},r),!1)},cx:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.isUnstyled?void 0:this._getOptionValue(this.$style.classes,e,sd(sd({},this.$params),n))},sx:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(n){var i=this._getOptionValue(this.$style.inlineStyles,e,sd(sd({},this.$params),r)),a=this._getOptionValue(_F.inlineStyles,e,sd(sd({},this.$params),r));return[a,i]}}},computed:{globalPT:function(){var e,n=this;return this._getPT((e=this.$primevueConfig)===null||e===void 0?void 0:e.pt,void 0,function(r){return jn.getItemValue(r,{instance:n})})},defaultPT:function(){var e,n=this;return this._getPT((e=this.$primevueConfig)===null||e===void 0?void 0:e.pt,void 0,function(r){return n._getOptionValue(r,n.$name,sd({},n.$params))||jn.getItemValue(r,sd({},n.$params))})},isUnstyled:function(){var e;return this.unstyled!==void 0?this.unstyled:(e=this.$primevueConfig)===null||e===void 0?void 0:e.unstyled},$params:function(){var e=this._getHostInstance(this)||this.$parent;return{instance:this,props:this.$props,state:this.$data,attrs:this.$attrs,parent:{instance:e,props:e==null?void 0:e.$props,state:e==null?void 0:e.$data,attrs:e==null?void 0:e.$attrs},parentInstance:e}},$style:function(){return sd(sd({classes:void 0,inlineStyles:void 0,loadStyle:function(){},loadCustomStyle:function(){}},(this._getHostInstance(this)||{}).$style),this.$options.style)},$primevueConfig:function(){var e;return(e=this.$primevue)===null||e===void 0?void 0:e.config},$name:function(){return this.$options.hostName||this.$.type.name},$_attrsPT:function(){return Object.entries(this.$attrs||{}).filter(function(e){var n=gb(e,1),r=n[0];return r==null?void 0:r.startsWith("pt:")}).reduce(function(e,n){var r=gb(n,2),i=r[0],a=r[1],o=i.split(":"),l=CL(o),s=l.slice(1);return s==null||s.reduce(function(d,c,u,h){return!d[c]&&(d[c]=u===h.length-1?a:{}),d[c]},e),e},{})},$_attrsNoPT:function(){return Object.entries(this.$attrs||{}).filter(function(e){var n=gb(e,1),r=n[0];return!(r!=null&&r.startsWith("pt:"))}).reduce(function(e,n){var r=gb(n,2),i=r[0],a=r[1];return e[i]=a,e},{})}}};function u0(t){"@babel/helpers - typeof";return u0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u0(t)}function Ab(t,e,n){return e=WL(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function WL(t){var e=NL(t,"string");return u0(e)=="symbol"?e:String(e)}function NL(t,e){if(u0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(u0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var GL={root:function(e){var n=e.position;return{position:"fixed",top:n==="top-right"||n==="top-left"||n==="top-center"?"20px":n==="center"?"50%":null,right:(n==="top-right"||n==="bottom-right")&&"20px",bottom:(n==="bottom-left"||n==="bottom-right"||n==="bottom-center")&&"20px",left:n==="top-left"||n==="bottom-left"?"20px":n==="center"||n==="top-center"||n==="bottom-center"?"50%":null}}},JL={root:function(e){var n=e.props,r=e.instance;return["p-toast p-component p-toast-"+n.position,{"p-ripple-disabled":r.$primevue.config.ripple===!1}]},container:function(e){var n=e.props;return["p-toast-message",{"p-toast-message-info":n.message.severity==="info"||n.message.severity===void 0,"p-toast-message-warn":n.message.severity==="warn","p-toast-message-error":n.message.severity==="error","p-toast-message-success":n.message.severity==="success","p-toast-message-secondary":n.message.severity==="secondary","p-toast-message-contrast":n.message.severity==="contrast"}]},content:"p-toast-message-content",icon:function(e){var n=e.props;return["p-toast-message-icon",Ab(Ab(Ab(Ab({},n.infoIcon,n.message.severity==="info"),n.warnIcon,n.message.severity==="warn"),n.errorIcon,n.message.severity==="error"),n.successIcon,n.message.severity==="success")]},text:"p-toast-message-text",summary:"p-toast-summary",detail:"p-toast-detail",closeButton:"p-toast-icon-close p-link",closeIcon:"p-toast-icon-close-icon"},TL=Ld.extend({name:"toast",classes:JL,inlineStyles:GL}),XL=` .p-icon { display: inline-block; } .p-icon-spin { -webkit-animation: p-icon-spin 2s infinite linear; animation: p-icon-spin 2s infinite linear; } @-webkit-keyframes p-icon-spin { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(359deg); transform: rotate(359deg); } } @keyframes p-icon-spin { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(359deg); transform: rotate(359deg); } } `,kL=Ld.extend({name:"baseicon",css:XL});function f0(t){"@babel/helpers - typeof";return f0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f0(t)}function $B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function qB(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?$B(Object(n),!0).forEach(function(r){wL(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):$B(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function wL(t,e,n){return e=YL(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function YL(t){var e=DL(t,"string");return f0(e)=="symbol"?e:String(e)}function DL(t,e){if(f0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(f0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var ls={name:"BaseIcon",extends:nl,props:{label:{type:String,default:void 0},spin:{type:Boolean,default:!1}},style:kL,methods:{pti:function(){var e=jn.isEmpty(this.label);return qB(qB({},!this.isUnstyled&&{class:["p-icon",{"p-icon-spin":this.spin}]}),{},{role:e?void 0:"img","aria-label":e?void 0:this.label,"aria-hidden":e})}}},mh={name:"CheckIcon",extends:ls},ML=Q("path",{d:"M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z",fill:"currentColor"},null,-1),LL=[ML];function HL(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),LL,16)}mh.render=HL;var n2={name:"ExclamationTriangleIcon",extends:ls},xL=Q("path",{d:"M13.4018 13.1893H0.598161C0.49329 13.189 0.390283 13.1615 0.299143 13.1097C0.208003 13.0578 0.131826 12.9832 0.0780112 12.8932C0.0268539 12.8015 0 12.6982 0 12.5931C0 12.4881 0.0268539 12.3848 0.0780112 12.293L6.47985 1.08982C6.53679 1.00399 6.61408 0.933574 6.70484 0.884867C6.7956 0.836159 6.897 0.810669 7 0.810669C7.103 0.810669 7.2044 0.836159 7.29516 0.884867C7.38592 0.933574 7.46321 1.00399 7.52015 1.08982L13.922 12.293C13.9731 12.3848 14 12.4881 14 12.5931C14 12.6982 13.9731 12.8015 13.922 12.8932C13.8682 12.9832 13.792 13.0578 13.7009 13.1097C13.6097 13.1615 13.5067 13.189 13.4018 13.1893ZM1.63046 11.989H12.3695L7 2.59425L1.63046 11.989Z",fill:"currentColor"},null,-1),OL=Q("path",{d:"M6.99996 8.78801C6.84143 8.78594 6.68997 8.72204 6.57787 8.60993C6.46576 8.49782 6.40186 8.34637 6.39979 8.18784V5.38703C6.39979 5.22786 6.46302 5.0752 6.57557 4.96265C6.68813 4.85009 6.84078 4.78686 6.99996 4.78686C7.15914 4.78686 7.31179 4.85009 7.42435 4.96265C7.5369 5.0752 7.60013 5.22786 7.60013 5.38703V8.18784C7.59806 8.34637 7.53416 8.49782 7.42205 8.60993C7.30995 8.72204 7.15849 8.78594 6.99996 8.78801Z",fill:"currentColor"},null,-1),KL=Q("path",{d:"M6.99996 11.1887C6.84143 11.1866 6.68997 11.1227 6.57787 11.0106C6.46576 10.8985 6.40186 10.7471 6.39979 10.5885V10.1884C6.39979 10.0292 6.46302 9.87658 6.57557 9.76403C6.68813 9.65147 6.84078 9.58824 6.99996 9.58824C7.15914 9.58824 7.31179 9.65147 7.42435 9.76403C7.5369 9.87658 7.60013 10.0292 7.60013 10.1884V10.5885C7.59806 10.7471 7.53416 10.8985 7.42205 11.0106C7.30995 11.1227 7.15849 11.1866 6.99996 11.1887Z",fill:"currentColor"},null,-1),PL=[xL,OL,KL];function zL(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),PL,16)}n2.render=zL;var r2={name:"InfoCircleIcon",extends:ls},jL=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.11101 12.8203C4.26215 13.5895 5.61553 14 7 14C8.85652 14 10.637 13.2625 11.9497 11.9497C13.2625 10.637 14 8.85652 14 7C14 5.61553 13.5895 4.26215 12.8203 3.11101C12.0511 1.95987 10.9579 1.06266 9.67879 0.532846C8.3997 0.00303296 6.99224 -0.13559 5.63437 0.134506C4.2765 0.404603 3.02922 1.07129 2.05026 2.05026C1.07129 3.02922 0.404603 4.2765 0.134506 5.63437C-0.13559 6.99224 0.00303296 8.3997 0.532846 9.67879C1.06266 10.9579 1.95987 12.0511 3.11101 12.8203ZM3.75918 2.14976C4.71846 1.50879 5.84628 1.16667 7 1.16667C8.5471 1.16667 10.0308 1.78125 11.1248 2.87521C12.2188 3.96918 12.8333 5.45291 12.8333 7C12.8333 8.15373 12.4912 9.28154 11.8502 10.2408C11.2093 11.2001 10.2982 11.9478 9.23232 12.3893C8.16642 12.8308 6.99353 12.9463 5.86198 12.7212C4.73042 12.4962 3.69102 11.9406 2.87521 11.1248C2.05941 10.309 1.50384 9.26958 1.27876 8.13803C1.05367 7.00647 1.16919 5.83358 1.61071 4.76768C2.05222 3.70178 2.79989 2.79074 3.75918 2.14976ZM7.00002 4.8611C6.84594 4.85908 6.69873 4.79698 6.58977 4.68801C6.48081 4.57905 6.4187 4.43185 6.41669 4.27776V3.88888C6.41669 3.73417 6.47815 3.58579 6.58754 3.4764C6.69694 3.367 6.84531 3.30554 7.00002 3.30554C7.15473 3.30554 7.3031 3.367 7.4125 3.4764C7.52189 3.58579 7.58335 3.73417 7.58335 3.88888V4.27776C7.58134 4.43185 7.51923 4.57905 7.41027 4.68801C7.30131 4.79698 7.1541 4.85908 7.00002 4.8611ZM7.00002 10.6945C6.84594 10.6925 6.69873 10.6304 6.58977 10.5214C6.48081 10.4124 6.4187 10.2652 6.41669 10.1111V6.22225C6.41669 6.06754 6.47815 5.91917 6.58754 5.80977C6.69694 5.70037 6.84531 5.63892 7.00002 5.63892C7.15473 5.63892 7.3031 5.70037 7.4125 5.80977C7.52189 5.91917 7.58335 6.06754 7.58335 6.22225V10.1111C7.58134 10.2652 7.51923 10.4124 7.41027 10.5214C7.30131 10.6304 7.1541 10.6925 7.00002 10.6945Z",fill:"currentColor"},null,-1),_L=[jL];function $L(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),_L,16)}r2.render=$L;var K0={name:"TimesIcon",extends:ls},qL=Q("path",{d:"M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z",fill:"currentColor"},null,-1),eH=[qL];function tH(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),eH,16)}K0.render=tH;var ny={name:"TimesCircleIcon",extends:ls},nH=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7 14C5.61553 14 4.26215 13.5895 3.11101 12.8203C1.95987 12.0511 1.06266 10.9579 0.532846 9.67879C0.00303296 8.3997 -0.13559 6.99224 0.134506 5.63437C0.404603 4.2765 1.07129 3.02922 2.05026 2.05026C3.02922 1.07129 4.2765 0.404603 5.63437 0.134506C6.99224 -0.13559 8.3997 0.00303296 9.67879 0.532846C10.9579 1.06266 12.0511 1.95987 12.8203 3.11101C13.5895 4.26215 14 5.61553 14 7C14 8.85652 13.2625 10.637 11.9497 11.9497C10.637 13.2625 8.85652 14 7 14ZM7 1.16667C5.84628 1.16667 4.71846 1.50879 3.75918 2.14976C2.79989 2.79074 2.05222 3.70178 1.61071 4.76768C1.16919 5.83358 1.05367 7.00647 1.27876 8.13803C1.50384 9.26958 2.05941 10.309 2.87521 11.1248C3.69102 11.9406 4.73042 12.4962 5.86198 12.7212C6.99353 12.9463 8.16642 12.8308 9.23232 12.3893C10.2982 11.9478 11.2093 11.2001 11.8502 10.2408C12.4912 9.28154 12.8333 8.15373 12.8333 7C12.8333 5.45291 12.2188 3.96918 11.1248 2.87521C10.0308 1.78125 8.5471 1.16667 7 1.16667ZM4.66662 9.91668C4.58998 9.91704 4.51404 9.90209 4.44325 9.87271C4.37246 9.84333 4.30826 9.8001 4.2544 9.74557C4.14516 9.6362 4.0838 9.48793 4.0838 9.33335C4.0838 9.17876 4.14516 9.0305 4.2544 8.92113L6.17553 7L4.25443 5.07891C4.15139 4.96832 4.09529 4.82207 4.09796 4.67094C4.10063 4.51982 4.16185 4.37563 4.26872 4.26876C4.3756 4.16188 4.51979 4.10066 4.67091 4.09799C4.82204 4.09532 4.96829 4.15142 5.07887 4.25446L6.99997 6.17556L8.92106 4.25446C9.03164 4.15142 9.1779 4.09532 9.32903 4.09799C9.48015 4.10066 9.62434 4.16188 9.73121 4.26876C9.83809 4.37563 9.89931 4.51982 9.90198 4.67094C9.90464 4.82207 9.84855 4.96832 9.74551 5.07891L7.82441 7L9.74554 8.92113C9.85478 9.0305 9.91614 9.17876 9.91614 9.33335C9.91614 9.48793 9.85478 9.6362 9.74554 9.74557C9.69168 9.8001 9.62748 9.84333 9.55669 9.87271C9.4859 9.90209 9.40996 9.91704 9.33332 9.91668C9.25668 9.91704 9.18073 9.90209 9.10995 9.87271C9.03916 9.84333 8.97495 9.8001 8.9211 9.74557L6.99997 7.82444L5.07884 9.74557C5.02499 9.8001 4.96078 9.84333 4.88999 9.87271C4.81921 9.90209 4.74326 9.91704 4.66662 9.91668Z",fill:"currentColor"},null,-1),rH=[nH];function iH(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),rH,16)}ny.render=iH;function h0(t){"@babel/helpers - typeof";return h0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h0(t)}function eZ(t,e){return sH(t)||lH(t,e)||oH(t,e)||aH()}function aH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function oH(t,e){if(t){if(typeof t=="string")return tZ(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tZ(t,e)}}function tZ(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function lH(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,a,o,l=[],s=!0,d=!1;try{if(a=(n=n.call(t)).next,e!==0)for(;!(s=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);s=!0);}catch(c){d=!0,i=c}finally{try{if(!s&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(d)throw i}}return l}}function sH(t){if(Array.isArray(t))return t}function nZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Nd(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?nZ(Object(n),!0).forEach(function(r){i2(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):nZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function i2(t,e,n){return e=dH(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function dH(t){var e=cH(t,"string");return h0(e)=="symbol"?e:String(e)}function cH(t,e){if(h0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(h0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Nl={_getMeta:function(){return[jn.isObject(arguments.length<=0?void 0:arguments[0])||arguments.length<=0?void 0:arguments[0],jn.getItemValue(jn.isObject(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:arguments.length<=1?void 0:arguments[1])]},_getConfig:function(e,n){var r,i,a;return(r=(e==null||(i=e.instance)===null||i===void 0?void 0:i.$primevue)||(n==null||(a=n.ctx)===null||a===void 0||(a=a.appContext)===null||a===void 0||(a=a.config)===null||a===void 0||(a=a.globalProperties)===null||a===void 0?void 0:a.$primevue))===null||r===void 0?void 0:r.config},_getOptionValue:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=jn.toFlatCase(n).split("."),a=i.shift();return a?jn.isObject(e)?Nl._getOptionValue(jn.getItemValue(e[Object.keys(e).find(function(o){return jn.toFlatCase(o)===a})||""],r),i.join("."),r):void 0:jn.getItemValue(e,r)},_getPTValue:function(){var e,n,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},l=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=function(){var y=Nl._getOptionValue.apply(Nl,arguments);return jn.isString(y)||jn.isArray(y)?{class:y}:y},d=((e=r.binding)===null||e===void 0||(e=e.value)===null||e===void 0?void 0:e.ptOptions)||((n=r.$primevueConfig)===null||n===void 0?void 0:n.ptOptions)||{},c=d.mergeSections,u=c===void 0?!0:c,h=d.mergeProps,f=h===void 0?!1:h,g=l?Nl._useDefaultPT(r,r.defaultPT(),s,a,o):void 0,A=Nl._usePT(r,Nl._getPT(i,r.$name),s,a,Nd(Nd({},o),{},{global:g||{}})),b=Nl._getPTDatasets(r,a);return u||!u&&A?f?Nl._mergeProps(r,f,g,A,b):Nd(Nd(Nd({},g),A),b):Nd(Nd({},A),b)},_getPTDatasets:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r="data-pc-";return Nd(Nd({},n==="root"&&i2({},"".concat(r,"name"),jn.toFlatCase(e.$name))),{},i2({},"".concat(r,"section"),jn.toFlatCase(n)))},_getPT:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=arguments.length>2?arguments[2]:void 0,i=function(o){var l,s=r?r(o):o,d=jn.toFlatCase(n);return(l=s==null?void 0:s[d])!==null&&l!==void 0?l:s};return e!=null&&e.hasOwnProperty("_usept")?{_usept:e._usept,originalValue:i(e.originalValue),value:i(e.value)}:i(e)},_usePT:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0,o=function(b){return r(b,i,a)};if(n!=null&&n.hasOwnProperty("_usept")){var l,s=n._usept||((l=e.$primevueConfig)===null||l===void 0?void 0:l.ptOptions)||{},d=s.mergeSections,c=d===void 0?!0:d,u=s.mergeProps,h=u===void 0?!1:u,f=o(n.originalValue),g=o(n.value);return f===void 0&&g===void 0?void 0:jn.isString(g)?g:jn.isString(f)?f:c||!c&&g?h?Nl._mergeProps(e,h,f,g):Nd(Nd({},f),g):g}return o(n)},_useDefaultPT:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return Nl._usePT(e,n,r,i,a)},_hook:function(e,n,r,i,a,o){var l,s,d="on".concat(jn.toCapitalCase(n)),c=Nl._getConfig(i,a),u=r==null?void 0:r.$instance,h=Nl._usePT(u,Nl._getPT(i==null||(l=i.value)===null||l===void 0?void 0:l.pt,e),Nl._getOptionValue,"hooks.".concat(d)),f=Nl._useDefaultPT(u,c==null||(s=c.pt)===null||s===void 0||(s=s.directives)===null||s===void 0?void 0:s[e],Nl._getOptionValue,"hooks.".concat(d)),g={el:r,binding:i,vnode:a,prevVnode:o};h==null||h(u,g),f==null||f(u,g)},_mergeProps:function(){for(var e=arguments.length>1?arguments[1]:void 0,n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return jn.isFunction(e)?e.apply(void 0,r):Jt.apply(void 0,r)},_extend:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=function(a,o,l,s,d){var c,u;o._$instances=o._$instances||{};var h=Nl._getConfig(l,s),f=o._$instances[e]||{},g=jn.isEmpty(f)?Nd(Nd({},n),n==null?void 0:n.methods):{};o._$instances[e]=Nd(Nd({},f),{},{$name:e,$host:o,$binding:l,$modifiers:l==null?void 0:l.modifiers,$value:l==null?void 0:l.value,$el:f.$el||o||void 0,$style:Nd({classes:void 0,inlineStyles:void 0,loadStyle:function(){}},n==null?void 0:n.style),$primevueConfig:h,defaultPT:function(){return Nl._getPT(h==null?void 0:h.pt,void 0,function(b){var p;return b==null||(p=b.directives)===null||p===void 0?void 0:p[e]})},isUnstyled:function(){var b,p;return((b=o.$instance)===null||b===void 0||(b=b.$binding)===null||b===void 0||(b=b.value)===null||b===void 0?void 0:b.unstyled)!==void 0?(p=o.$instance)===null||p===void 0||(p=p.$binding)===null||p===void 0||(p=p.value)===null||p===void 0?void 0:p.unstyled:h==null?void 0:h.unstyled},ptm:function(){var b,p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Nl._getPTValue(o.$instance,(b=o.$instance)===null||b===void 0||(b=b.$binding)===null||b===void 0||(b=b.value)===null||b===void 0?void 0:b.pt,p,Nd({},y))},ptmo:function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",y=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Nl._getPTValue(o.$instance,b,p,y,!1)},cx:function(){var b,p,y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return(b=o.$instance)!==null&&b!==void 0&&b.isUnstyled()?void 0:Nl._getOptionValue((p=o.$instance)===null||p===void 0||(p=p.$style)===null||p===void 0?void 0:p.classes,y,Nd({},m))},sx:function(){var b,p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return y?Nl._getOptionValue((b=o.$instance)===null||b===void 0||(b=b.$style)===null||b===void 0?void 0:b.inlineStyles,p,Nd({},m)):void 0}},g),o.$instance=o._$instances[e],(c=(u=o.$instance)[a])===null||c===void 0||c.call(u,o,l,s,d),o["$".concat(e)]=o.$instance,Nl._hook(e,a,o,l,s,d)};return{created:function(a,o,l,s){r("created",a,o,l,s)},beforeMount:function(a,o,l,s){var d,c,u,h,f=Nl._getConfig(o,l);Ld.loadStyle({nonce:f==null||(d=f.csp)===null||d===void 0?void 0:d.nonce}),!((c=a.$instance)!==null&&c!==void 0&&c.isUnstyled())&&((u=a.$instance)===null||u===void 0||(u=u.$style)===null||u===void 0||u.loadStyle({nonce:f==null||(h=f.csp)===null||h===void 0?void 0:h.nonce})),r("beforeMount",a,o,l,s)},mounted:function(a,o,l,s){var d,c,u,h,f=Nl._getConfig(o,l);Ld.loadStyle({nonce:f==null||(d=f.csp)===null||d===void 0?void 0:d.nonce}),!((c=a.$instance)!==null&&c!==void 0&&c.isUnstyled())&&((u=a.$instance)===null||u===void 0||(u=u.$style)===null||u===void 0||u.loadStyle({nonce:f==null||(h=f.csp)===null||h===void 0?void 0:h.nonce})),r("mounted",a,o,l,s)},beforeUpdate:function(a,o,l,s){r("beforeUpdate",a,o,l,s)},updated:function(a,o,l,s){r("updated",a,o,l,s)},beforeUnmount:function(a,o,l,s){r("beforeUnmount",a,o,l,s)},unmounted:function(a,o,l,s){r("unmounted",a,o,l,s)}}},extend:function(){var e=Nl._getMeta.apply(Nl,arguments),n=eZ(e,2),r=n[0],i=n[1];return Nd({extend:function(){var o=Nl._getMeta.apply(Nl,arguments),l=eZ(o,2),s=l[0],d=l[1];return Nl.extend(s,Nd(Nd(Nd({},i),i==null?void 0:i.methods),d))}},Nl._extend(r,i))}},uH={root:"p-ink"},fH=Ld.extend({name:"ripple",classes:uH}),hH=Nl.extend({style:fH});function gH(t){return bH(t)||mH(t)||pH(t)||AH()}function AH(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pH(t,e){if(t){if(typeof t=="string")return a2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a2(t,e)}}function mH(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function bH(t){if(Array.isArray(t))return a2(t)}function a2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var wf=hH.extend("ripple",{mounted:function(e){var n,r=e==null||(n=e.$instance)===null||n===void 0?void 0:n.$primevueConfig;r&&r.ripple&&(this.create(e),this.bindEvents(e),e.setAttribute("data-pd-ripple",!0))},unmounted:function(e){this.remove(e)},timeout:void 0,methods:{bindEvents:function(e){e.addEventListener("mousedown",this.onMouseDown.bind(this))},unbindEvents:function(e){e.removeEventListener("mousedown",this.onMouseDown.bind(this))},create:function(e){var n=Wn.createElement("span",{role:"presentation","aria-hidden":!0,"data-p-ink":!0,"data-p-ink-active":!1,class:!this.isUnstyled()&&this.cx("root"),onAnimationEnd:this.onAnimationEnd.bind(this),"p-bind":this.ptm("root")});e.appendChild(n),this.$el=n},remove:function(e){var n=this.getInk(e);n&&(this.unbindEvents(e),n.removeEventListener("animationend",this.onAnimationEnd),n.remove())},onMouseDown:function(e){var n=this,r=e.currentTarget,i=this.getInk(r);if(!(!i||getComputedStyle(i,null).display==="none")){if(!this.isUnstyled()&&Wn.removeClass(i,"p-ink-active"),i.setAttribute("data-p-ink-active","false"),!Wn.getHeight(i)&&!Wn.getWidth(i)){var a=Math.max(Wn.getOuterWidth(r),Wn.getOuterHeight(r));i.style.height=a+"px",i.style.width=a+"px"}var o=Wn.getOffset(r),l=e.pageX-o.left+document.body.scrollTop-Wn.getWidth(i)/2,s=e.pageY-o.top+document.body.scrollLeft-Wn.getHeight(i)/2;i.style.top=s+"px",i.style.left=l+"px",!this.isUnstyled()&&Wn.addClass(i,"p-ink-active"),i.setAttribute("data-p-ink-active","true"),this.timeout=setTimeout(function(){i&&(!n.isUnstyled()&&Wn.removeClass(i,"p-ink-active"),i.setAttribute("data-p-ink-active","false"))},401)}},onAnimationEnd:function(e){this.timeout&&clearTimeout(this.timeout),!this.isUnstyled()&&Wn.removeClass(e.currentTarget,"p-ink-active"),e.currentTarget.setAttribute("data-p-ink-active","false")},getInk:function(e){return e&&e.children?gH(e.children).find(function(n){return Wn.getAttribute(n,"data-pc-name")==="ripple"}):void 0}}}),yH={name:"BaseToast",extends:nl,props:{group:{type:String,default:null},position:{type:String,default:"top-right"},autoZIndex:{type:Boolean,default:!0},baseZIndex:{type:Number,default:0},breakpoints:{type:Object,default:null},closeIcon:{type:String,default:void 0},infoIcon:{type:String,default:void 0},warnIcon:{type:String,default:void 0},errorIcon:{type:String,default:void 0},successIcon:{type:String,default:void 0},closeButtonProps:{type:null,default:null}},style:TL,provide:function(){return{$parentInstance:this}}},CE={name:"ToastMessage",hostName:"Toast",extends:nl,emits:["close"],closeTimeout:null,props:{message:{type:null,default:null},templates:{type:Object,default:null},closeIcon:{type:String,default:null},infoIcon:{type:String,default:null},warnIcon:{type:String,default:null},errorIcon:{type:String,default:null},successIcon:{type:String,default:null},closeButtonProps:{type:null,default:null}},mounted:function(){var e=this;this.message.life&&(this.closeTimeout=setTimeout(function(){e.close({message:e.message,type:"life-end"})},this.message.life))},beforeUnmount:function(){this.clearCloseTimeout()},methods:{close:function(e){this.$emit("close",e)},onCloseClick:function(){this.clearCloseTimeout(),this.close({message:this.message,type:"close"})},clearCloseTimeout:function(){this.closeTimeout&&(clearTimeout(this.closeTimeout),this.closeTimeout=null)}},computed:{iconComponent:function(){return{info:!this.infoIcon&&r2,success:!this.successIcon&&mh,warn:!this.warnIcon&&n2,error:!this.errorIcon&&ny}[this.message.severity]},closeAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.close:void 0}},components:{TimesIcon:K0,InfoCircleIcon:r2,CheckIcon:mh,ExclamationTriangleIcon:n2,TimesCircleIcon:ny},directives:{ripple:wf}};function g0(t){"@babel/helpers - typeof";return g0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g0(t)}function rZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function ym(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?rZ(Object(n),!0).forEach(function(r){FH(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):rZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function FH(t,e,n){return e=QH(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function QH(t){var e=UH(t,"string");return g0(e)=="symbol"?e:String(e)}function UH(t,e){if(g0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(g0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var RH=["aria-label"];function BH(t,e,n,r,i,a){var o=mf("ripple");return oe(),Ce("div",Jt({class:[t.cx("container"),n.message.styleClass],role:"alert","aria-live":"assertive","aria-atomic":"true"},t.ptm("container")),[n.templates.container?(oe(),Vn(ea(n.templates.container),{key:0,message:n.message,onClose:a.onCloseClick,closeCallback:a.onCloseClick},null,40,["message","onClose","closeCallback"])):(oe(),Ce("div",Jt({key:1,class:[t.cx("content"),n.message.contentStyleClass]},t.ptm("content")),[n.templates.message?(oe(),Vn(ea(n.templates.message),{key:1,message:n.message},null,8,["message"])):(oe(),Ce(Er,{key:0},[(oe(),Vn(ea(n.templates.icon?n.templates.icon:a.iconComponent&&a.iconComponent.name?a.iconComponent:"span"),Jt({class:t.cx("icon")},t.ptm("icon")),null,16,["class"])),Q("div",Jt({class:t.cx("text")},t.ptm("text")),[Q("span",Jt({class:t.cx("summary")},t.ptm("summary")),ce(n.message.summary),17),Q("div",Jt({class:t.cx("detail")},t.ptm("detail")),ce(n.message.detail),17)],16)],64)),n.message.closable!==!1?(oe(),Ce("div",oA(Jt({key:2},t.ptm("buttonContainer"))),[br((oe(),Ce("button",Jt({class:t.cx("closeButton"),type:"button","aria-label":a.closeAriaLabel,onClick:e[0]||(e[0]=function(){return a.onCloseClick&&a.onCloseClick.apply(a,arguments)}),autofocus:""},ym(ym(ym({},n.closeButtonProps),t.ptm("button")),t.ptm("closeButton"))),[(oe(),Vn(ea(n.templates.closeicon||"TimesIcon"),Jt({class:[t.cx("closeIcon"),n.closeIcon]},ym(ym({},t.ptm("buttonIcon")),t.ptm("closeIcon"))),null,16,["class"]))],16,RH)),[[o]])],16)):Pt("",!0)],16))],16)}CE.render=BH;function ZH(t){return VH(t)||vH(t)||CH(t)||IH()}function IH(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function CH(t,e){if(t){if(typeof t=="string")return o2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o2(t,e)}}function vH(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function VH(t){if(Array.isArray(t))return o2(t)}function o2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var EH=0,ol={name:"Toast",extends:yH,inheritAttrs:!1,emits:["close","life-end"],data:function(){return{messages:[]}},styleElement:null,mounted:function(){Yu.on("add",this.onAdd),Yu.on("remove",this.onRemove),Yu.on("remove-group",this.onRemoveGroup),Yu.on("remove-all-groups",this.onRemoveAllGroups),this.breakpoints&&this.createStyle()},beforeUnmount:function(){this.destroyStyle(),this.$refs.container&&this.autoZIndex&&xu.clear(this.$refs.container),Yu.off("add",this.onAdd),Yu.off("remove",this.onRemove),Yu.off("remove-group",this.onRemoveGroup),Yu.off("remove-all-groups",this.onRemoveAllGroups)},methods:{add:function(e){e.id==null&&(e.id=EH++),this.messages=[].concat(ZH(this.messages),[e])},remove:function(e){var n=this.messages.findIndex(function(r){return r.id===e.message.id});n!==-1&&(this.messages.splice(n,1),this.$emit(e.type,{message:e.message}))},onAdd:function(e){this.group==e.group&&this.add(e)},onRemove:function(e){this.remove({message:e,type:"close"})},onRemoveGroup:function(e){this.group===e&&(this.messages=[])},onRemoveAllGroups:function(){this.messages=[]},onEnter:function(){this.$refs.container.setAttribute(this.attributeSelector,""),this.autoZIndex&&xu.set("modal",this.$refs.container,this.baseZIndex||this.$primevue.config.zIndex.modal)},onLeave:function(){var e=this;this.$refs.container&&this.autoZIndex&&jn.isEmpty(this.messages)&&setTimeout(function(){xu.clear(e.$refs.container)},200)},createStyle:function(){if(!this.styleElement&&!this.isUnstyled){var e;this.styleElement=document.createElement("style"),this.styleElement.type="text/css",Wn.setAttribute(this.styleElement,"nonce",(e=this.$primevue)===null||e===void 0||(e=e.config)===null||e===void 0||(e=e.csp)===null||e===void 0?void 0:e.nonce),document.head.appendChild(this.styleElement);var n="";for(var r in this.breakpoints){var i="";for(var a in this.breakpoints[r])i+=a+":"+this.breakpoints[r][a]+"!important;";n+=` @media screen and (max-width: `.concat(r,`) { .p-toast[`).concat(this.attributeSelector,`] { `).concat(i,` } } `)}this.styleElement.innerHTML=n}},destroyStyle:function(){this.styleElement&&(document.head.removeChild(this.styleElement),this.styleElement=null)}},computed:{attributeSelector:function(){return Nu()}},components:{ToastMessage:CE,Portal:O0}};function A0(t){"@babel/helpers - typeof";return A0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A0(t)}function iZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function aZ(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?iZ(Object(n),!0).forEach(function(r){SH(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):iZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function SH(t,e,n){return e=WH(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function WH(t){var e=NH(t,"string");return A0(e)=="symbol"?e:String(e)}function NH(t,e){if(A0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(A0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function GH(t,e,n,r,i,a){var o=Li("ToastMessage"),l=Li("Portal");return oe(),Vn(l,null,{default:Yr(function(){return[Q("div",Jt({ref:"container",class:t.cx("root"),style:t.sx("root",!0,{position:t.position})},t.ptmi("root")),[Fn(iJ,Jt({name:"p-toast-message",tag:"div",onEnter:a.onEnter,onLeave:a.onLeave},aZ(aZ({},t.ptm("message")),t.ptm("transition"))),{default:Yr(function(){return[(oe(!0),Ce(Er,null,ia(i.messages,function(s){return oe(),Vn(o,{key:s.id,message:s,templates:t.$slots,closeIcon:t.closeIcon,infoIcon:t.infoIcon,warnIcon:t.warnIcon,errorIcon:t.errorIcon,successIcon:t.successIcon,closeButtonProps:t.closeButtonProps,onClose:e[0]||(e[0]=function(d){return a.remove(d)}),pt:t.pt},null,8,["message","templates","closeIcon","infoIcon","warnIcon","errorIcon","successIcon","closeButtonProps","pt"])}),128))]}),_:1},16,["onEnter","onLeave"])],16)]}),_:1})}ol.render=GH;const kf=Object.create(null);kf.open="0";kf.close="1";kf.ping="2";kf.pong="3";kf.message="4";kf.upgrade="5";kf.noop="6";const Jb=Object.create(null);Object.keys(kf).forEach(t=>{Jb[kf[t]]=t});const l2={type:"error",data:"parser error"},vE=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",VE=typeof ArrayBuffer=="function",EE=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,CQ=({type:t,data:e},n,r)=>vE&&e instanceof Blob?n?r(e):oZ(e,r):VE&&(e instanceof ArrayBuffer||EE(e))?n?r(e):oZ(new Blob([e]),r):r(kf[t]+(e||"")),oZ=(t,e)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];e("b"+(r||""))},n.readAsDataURL(t)};function lZ(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let $F;function JH(t,e){if(vE&&t.data instanceof Blob)return t.data.arrayBuffer().then(lZ).then(e);if(VE&&(t.data instanceof ArrayBuffer||EE(t.data)))return e(lZ(t.data));CQ(t,!1,n=>{$F||($F=new TextEncoder),e($F.encode(n))})}const sZ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",vm=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let t=0;t<sZ.length;t++)vm[sZ.charCodeAt(t)]=t;const TH=t=>{let e=t.length*.75,n=t.length,r,i=0,a,o,l,s;t[t.length-1]==="="&&(e--,t[t.length-2]==="="&&e--);const d=new ArrayBuffer(e),c=new Uint8Array(d);for(r=0;r<n;r+=4)a=vm[t.charCodeAt(r)],o=vm[t.charCodeAt(r+1)],l=vm[t.charCodeAt(r+2)],s=vm[t.charCodeAt(r+3)],c[i++]=a<<2|o>>4,c[i++]=(o&15)<<4|l>>2,c[i++]=(l&3)<<6|s&63;return d},XH=typeof ArrayBuffer=="function",vQ=(t,e)=>{if(typeof t!="string")return{type:"message",data:SE(t,e)};const n=t.charAt(0);return n==="b"?{type:"message",data:kH(t.substring(1),e)}:Jb[n]?t.length>1?{type:Jb[n],data:t.substring(1)}:{type:Jb[n]}:l2},kH=(t,e)=>{if(XH){const n=TH(t);return SE(n,e)}else return{base64:!0,data:t}},SE=(t,e)=>{switch(e){case"blob":return t instanceof Blob?t:new Blob([t]);case"arraybuffer":default:return t instanceof ArrayBuffer?t:t.buffer}},WE="",wH=(t,e)=>{const n=t.length,r=new Array(n);let i=0;t.forEach((a,o)=>{CQ(a,!1,l=>{r[o]=l,++i===n&&e(r.join(WE))})})},YH=(t,e)=>{const n=t.split(WE),r=[];for(let i=0;i<n.length;i++){const a=vQ(n[i],e);if(r.push(a),a.type==="error")break}return r};function DH(){return new TransformStream({transform(t,e){JH(t,n=>{const r=n.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 a=new DataView(i.buffer);a.setUint8(0,126),a.setUint16(1,r)}else{i=new Uint8Array(9);const a=new DataView(i.buffer);a.setUint8(0,127),a.setBigUint64(1,BigInt(r))}t.data&&typeof t.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(n)})}})}let qF;function pb(t){return t.reduce((e,n)=>e+n.length,0)}function mb(t,e){if(t[0].length===e)return t.shift();const n=new Uint8Array(e);let r=0;for(let i=0;i<e;i++)n[i]=t[0][r++],r===t[0].length&&(t.shift(),r=0);return t.length&&r<t[0].length&&(t[0]=t[0].slice(r)),n}function MH(t,e){qF||(qF=new TextDecoder);const n=[];let r=0,i=-1,a=!1;return new TransformStream({transform(o,l){for(n.push(o);;){if(r===0){if(pb(n)<1)break;const s=mb(n,1);a=(s[0]&128)===128,i=s[0]&127,i<126?r=3:i===126?r=1:r=2}else if(r===1){if(pb(n)<2)break;const s=mb(n,2);i=new DataView(s.buffer,s.byteOffset,s.length).getUint16(0),r=3}else if(r===2){if(pb(n)<8)break;const s=mb(n,8),d=new DataView(s.buffer,s.byteOffset,s.length),c=d.getUint32(0);if(c>Math.pow(2,21)-1){l.enqueue(l2);break}i=c*Math.pow(2,32)+d.getUint32(4),r=3}else{if(pb(n)<i)break;const s=mb(n,i);l.enqueue(vQ(a?s:qF.decode(s),e)),r=0}if(i===0||i>t){l.enqueue(l2);break}}}})}const NE=4;function sc(t){if(t)return LH(t)}function LH(t){for(var e in sc.prototype)t[e]=sc.prototype[e];return t}sc.prototype.on=sc.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this};sc.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this};sc.prototype.off=sc.prototype.removeListener=sc.prototype.removeAllListeners=sc.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+t];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+t],this;for(var r,i=0;i<n.length;i++)if(r=n[i],r===e||r.fn===e){n.splice(i,1);break}return n.length===0&&delete this._callbacks["$"+t],this};sc.prototype.emit=function(t){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),n=this._callbacks["$"+t],r=1;r<arguments.length;r++)e[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,i=n.length;r<i;++r)n[r].apply(this,e)}return this};sc.prototype.emitReserved=sc.prototype.emit;sc.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks["$"+t]||[]};sc.prototype.hasListeners=function(t){return!!this.listeners(t).length};const Jy=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,n)=>n(e,0),Mu=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),HH="arraybuffer";function GE(t,...e){return e.reduce((n,r)=>(t.hasOwnProperty(r)&&(n[r]=t[r]),n),{})}const xH=Mu.setTimeout,OH=Mu.clearTimeout;function Ty(t,e){e.useNativeTimers?(t.setTimeoutFn=xH.bind(Mu),t.clearTimeoutFn=OH.bind(Mu)):(t.setTimeoutFn=Mu.setTimeout.bind(Mu),t.clearTimeoutFn=Mu.clearTimeout.bind(Mu))}const KH=1.33;function PH(t){return typeof t=="string"?zH(t):Math.ceil((t.byteLength||t.size)*KH)}function zH(t){let e=0,n=0;for(let r=0,i=t.length;r<i;r++)e=t.charCodeAt(r),e<128?n+=1:e<2048?n+=2:e<55296||e>=57344?n+=3:(r++,n+=4);return n}function JE(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function jH(t){let e="";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e}function _H(t){let e={},n=t.split("&");for(let r=0,i=n.length;r<i;r++){let a=n[r].split("=");e[decodeURIComponent(a[0])]=decodeURIComponent(a[1])}return e}class $H extends Error{constructor(e,n,r){super(e),this.description=n,this.context=r,this.type="TransportError"}}class VQ extends sc{constructor(e){super(),this.writable=!1,Ty(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,n,r){return super.emitReserved("error",new $H(e,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const n=vQ(e,this.socket.binaryType);this.onPacket(n)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,n={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){const e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){const n=jH(e);return n.length?"?"+n:""}}class qH extends VQ{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";const n=()=>{this.readyState="paused",e()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const n=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)};YH(e,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,wH(e,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=JE()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}}let TE=!1;try{TE=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const ex=TE;function tx(){}class nx extends qH{constructor(e){if(super(e),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||r!==e.port}}doWrite(e,n){const r=this.request({method:"POST",data:e});r.on("success",n),r.on("error",(i,a)=>{this.onError("xhr post error",i,a)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=e}}let fp=class Tb extends sc{constructor(e,n,r){super(),this.createRequest=e,Ty(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var e;const n=GE(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);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{}(e=this._opts.cookieJar)===null||e===void 0||e.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=Tb.requestsCount++,Tb.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=tx,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete Tb.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};fp.requestsCount=0;fp.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",dZ);else if(typeof addEventListener=="function"){const t="onpagehide"in Mu?"pagehide":"unload";addEventListener(t,dZ,!1)}}function dZ(){for(let t in fp.requests)fp.requests.hasOwnProperty(t)&&fp.requests[t].abort()}const rx=function(){const t=XE({xdomain:!1});return t&&t.responseType!==null}();class ix extends nx{constructor(e){super(e);const n=e&&e.forceBase64;this.supportsBinary=rx&&!n}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new fp(XE,this.uri(),e)}}function XE(t){const e=t.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||ex))return new XMLHttpRequest}catch{}if(!e)try{return new Mu[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const kE=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class ax extends VQ{get name(){return"websocket"}doOpen(){const e=this.uri(),n=this.opts.protocols,r=kE?{}:GE(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(e,n,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=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let n=0;n<e.length;n++){const r=e[n],i=n===e.length-1;CQ(r,this.supportsBinary,a=>{try{this.doWrite(r,a)}catch{}i&&Jy(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=JE()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}}const e1=Mu.WebSocket||Mu.MozWebSocket;class ox extends ax{createSocket(e,n,r){return kE?new e1(e,n,r):n?new e1(e,n):new e1(e)}doWrite(e,n){this.ws.send(n)}}class lx extends VQ{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const n=MH(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(n).getReader(),i=DH();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();const a=()=>{r.read().then(({done:l,value:s})=>{l||(this.onPacket(s),a())}).catch(l=>{})};a();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let n=0;n<e.length;n++){const r=e[n],i=n===e.length-1;this._writer.write(r).then(()=>{i&&Jy(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const sx={websocket:ox,webtransport:lx,polling:ix},dx=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,cx=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function s2(t){if(t.length>8e3)throw"URI too long";const e=t,n=t.indexOf("["),r=t.indexOf("]");n!=-1&&r!=-1&&(t=t.substring(0,n)+t.substring(n,r).replace(/:/g,";")+t.substring(r,t.length));let i=dx.exec(t||""),a={},o=14;for(;o--;)a[cx[o]]=i[o]||"";return n!=-1&&r!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a.pathNames=ux(a,a.path),a.queryKey=fx(a,a.query),a}function ux(t,e){const n=/\/{2,9}/g,r=e.replace(n,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&r.splice(0,1),e.slice(-1)=="/"&&r.splice(r.length-1,1),r}function fx(t,e){const n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,a){i&&(n[i]=a)}),n}const d2=typeof addEventListener=="function"&&typeof removeEventListener=="function",Xb=[];d2&&addEventListener("offline",()=>{Xb.forEach(t=>t())},!1);class og extends sc{constructor(e,n){if(super(),this.binaryType=HH,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(n=e,e=null),e){const r=s2(e);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=s2(n.host).host);Ty(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.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},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=_H(this.opts.query)),d2&&(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"})},Xb.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const n=Object.assign({},this.opts.query);n.EIO=NE,n.transport=e,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&og.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(e);n.open(),this.setTransport(n)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",og.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=e.data,this._onError(n);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),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 e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){const i=this.writeBuffer[r].data;if(i&&(n+=PH(i)),r>0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,Jy(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,n,r){return this._sendPacket("message",e,n,r),this}send(e,n,r){return this._sendPacket("message",e,n,r),this}_sendPacket(e,n,r,i){if(typeof n=="function"&&(i=n,n=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const a={type:e,data:n,options:r};this.emitReserved("packetCreate",a),this.writeBuffer.push(a),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),e()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():e()}):this.upgrading?r():e()),this}_onError(e){if(og.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,n){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(),d2&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=Xb.indexOf(this._offlineEventListener);r!==-1&&Xb.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this._prevBufferLen=0}}}og.protocol=NE;class hx extends og{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let n=this.createTransport(e),r=!1;og.priorWebsocketSuccess=!1;const i=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",u=>{if(!r)if(u.type==="pong"&&u.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;og.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(c(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const h=new Error("probe error");h.transport=n.name,this.emitReserved("upgradeError",h)}}))};function a(){r||(r=!0,c(),n.close(),n=null)}const o=u=>{const h=new Error("probe error: "+u);h.transport=n.name,a(),this.emitReserved("upgradeError",h)};function l(){o("transport closed")}function s(){o("socket closed")}function d(u){n&&u.name!==n.name&&a()}const c=()=>{n.removeListener("open",i),n.removeListener("error",o),n.removeListener("close",l),this.off("close",s),this.off("upgrading",d)};n.once("open",i),n.once("error",o),n.once("close",l),this.once("close",s),this.once("upgrading",d),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const n=[];for(let r=0;r<e.length;r++)~this.transports.indexOf(e[r])&&n.push(e[r]);return n}}let gx=class extends hx{constructor(e,n={}){const r=typeof e=="object"?e:n;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(i=>sx[i]).filter(i=>!!i)),super(e,r)}};function Ax(t,e="",n){let r=t;n=n||typeof location<"u"&&location,t==null&&(t=n.protocol+"//"+n.host),typeof t=="string"&&(t.charAt(0)==="/"&&(t.charAt(1)==="/"?t=n.protocol+t:t=n.host+t),/^(https?|wss?):\/\//.test(t)||(typeof n<"u"?t=n.protocol+"//"+t:t="https://"+t),r=s2(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const a=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+a+":"+r.port+e,r.href=r.protocol+"://"+a+(n&&n.port===r.port?"":":"+r.port),r}const px=typeof ArrayBuffer=="function",mx=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,wE=Object.prototype.toString,bx=typeof Blob=="function"||typeof Blob<"u"&&wE.call(Blob)==="[object BlobConstructor]",yx=typeof File=="function"||typeof File<"u"&&wE.call(File)==="[object FileConstructor]";function EQ(t){return px&&(t instanceof ArrayBuffer||mx(t))||bx&&t instanceof Blob||yx&&t instanceof File}function kb(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n<r;n++)if(kb(t[n]))return!0;return!1}if(EQ(t))return!0;if(t.toJSON&&typeof t.toJSON=="function"&&arguments.length===1)return kb(t.toJSON(),!0);for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&kb(t[n]))return!0;return!1}function Fx(t){const e=[],n=t.data,r=t;return r.data=c2(n,e),r.attachments=e.length,{packet:r,buffers:e}}function c2(t,e){if(!t)return t;if(EQ(t)){const n={_placeholder:!0,num:e.length};return e.push(t),n}else if(Array.isArray(t)){const n=new Array(t.length);for(let r=0;r<t.length;r++)n[r]=c2(t[r],e);return n}else if(typeof t=="object"&&!(t instanceof Date)){const n={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=c2(t[r],e));return n}return t}function Qx(t,e){return t.data=u2(t.data,e),delete t.attachments,t}function u2(t,e){if(!t)return t;if(t&&t._placeholder===!0){if(typeof t.num=="number"&&t.num>=0&&t.num<e.length)return e[t.num];throw new Error("illegal attachments")}else if(Array.isArray(t))for(let n=0;n<t.length;n++)t[n]=u2(t[n],e);else if(typeof t=="object")for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(t[n]=u2(t[n],e));return t}const Ux=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],Rx=5;var pl;(function(t){t[t.CONNECT=0]="CONNECT",t[t.DISCONNECT=1]="DISCONNECT",t[t.EVENT=2]="EVENT",t[t.ACK=3]="ACK",t[t.CONNECT_ERROR=4]="CONNECT_ERROR",t[t.BINARY_EVENT=5]="BINARY_EVENT",t[t.BINARY_ACK=6]="BINARY_ACK"})(pl||(pl={}));class Bx{constructor(e){this.replacer=e}encode(e){return(e.type===pl.EVENT||e.type===pl.ACK)&&kb(e)?this.encodeAsBinary({type:e.type===pl.EVENT?pl.BINARY_EVENT:pl.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let n=""+e.type;return(e.type===pl.BINARY_EVENT||e.type===pl.BINARY_ACK)&&(n+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(n+=e.nsp+","),e.id!=null&&(n+=e.id),e.data!=null&&(n+=JSON.stringify(e.data,this.replacer)),n}encodeAsBinary(e){const n=Fx(e),r=this.encodeAsString(n.packet),i=n.buffers;return i.unshift(r),i}}function cZ(t){return Object.prototype.toString.call(t)==="[object Object]"}class SQ extends sc{constructor(e){super(),this.reviver=e}add(e){let n;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(e);const r=n.type===pl.BINARY_EVENT;r||n.type===pl.BINARY_ACK?(n.type=r?pl.EVENT:pl.ACK,this.reconstructor=new Zx(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(EQ(e)||e.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(e),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let n=0;const r={type:Number(e.charAt(0))};if(pl[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===pl.BINARY_EVENT||r.type===pl.BINARY_ACK){const a=n+1;for(;e.charAt(++n)!=="-"&&n!=e.length;);const o=e.substring(a,n);if(o!=Number(o)||e.charAt(n)!=="-")throw new Error("Illegal attachments");r.attachments=Number(o)}if(e.charAt(n+1)==="/"){const a=n+1;for(;++n&&!(e.charAt(n)===","||n===e.length););r.nsp=e.substring(a,n)}else r.nsp="/";const i=e.charAt(n+1);if(i!==""&&Number(i)==i){const a=n+1;for(;++n;){const o=e.charAt(n);if(o==null||Number(o)!=o){--n;break}if(n===e.length)break}r.id=Number(e.substring(a,n+1))}if(e.charAt(++n)){const a=this.tryParse(e.substr(n));if(SQ.isPayloadValid(r.type,a))r.data=a;else throw new Error("invalid payload")}return r}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,n){switch(e){case pl.CONNECT:return cZ(n);case pl.DISCONNECT:return n===void 0;case pl.CONNECT_ERROR:return typeof n=="string"||cZ(n);case pl.EVENT:case pl.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&Ux.indexOf(n[0])===-1);case pl.ACK:case pl.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Zx{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const n=Qx(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Ix=Object.freeze(Object.defineProperty({__proto__:null,Decoder:SQ,Encoder:Bx,get PacketType(){return pl},protocol:Rx},Symbol.toStringTag,{value:"Module"}));function cf(t,e,n){return t.on(e,n),function(){t.off(e,n)}}const Cx=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class YE extends sc{constructor(e,n,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=e,this.nsp=n,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 e=this.io;this.subs=[cf(e,"open",this.onopen.bind(this)),cf(e,"packet",this.onpacket.bind(this)),cf(e,"error",this.onerror.bind(this)),cf(e,"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(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...n){var r,i,a;if(Cx.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const o={type:pl.EVENT,data:n};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const c=this.ids++,u=n.pop();this._registerAckCallback(c,u),o.id=c}const l=(i=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||i===void 0?void 0:i.writable,s=this.connected&&!(!((a=this.io.engine)===null||a===void 0)&&a._hasPingExpired());return this.flags.volatile&&!l||(s?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(e,n){var r;const i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[e]=n;return}const a=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let l=0;l<this.sendBuffer.length;l++)this.sendBuffer[l].id===e&&this.sendBuffer.splice(l,1);n.call(this,new Error("operation has timed out"))},i),o=(...l)=>{this.io.clearTimeoutFn(a),n.apply(this,l)};o.withError=!0,this.acks[e]=o}emitWithAck(e,...n){return new Promise((r,i)=>{const a=(o,l)=>o?i(o):r(l);a.withError=!0,n.push(a),this.emit(e,...n)})}_addToQueue(e){let n;typeof e[e.length-1]=="function"&&(n=e.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...a)=>r!==this._queue[0]?void 0:(i!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(i)):(this._queue.shift(),n&&n(null,...a)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!e||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:pl.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(r=>String(r.id)===e)){const r=this.acks[e];delete this.acks[e],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case pl.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.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 pl.EVENT:case pl.BINARY_EVENT:this.onevent(e);break;case pl.ACK:case pl.BINARY_ACK:this.onack(e);break;case pl.DISCONNECT:this.ondisconnect();break;case pl.CONNECT_ERROR:this.destroy();const r=new Error(e.data.message);r.data=e.data.data,this.emitReserved("connect_error",r);break}}onevent(e){const n=e.data||[];e.id!=null&&n.push(this.ack(e.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const n=this;let r=!1;return function(...i){r||(r=!0,n.packet({type:pl.ACK,id:e,data:i}))}}onack(e){const n=this.acks[e.id];typeof n=="function"&&(delete this.acks[e.id],n.withError&&e.data.unshift(null),n.apply(this,e.data))}onconnect(e,n){this.id=e,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:pl.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const n=this._anyListeners;for(let r=0;r<n.length;r++)if(e===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(e===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const n=this._anyOutgoingListeners.slice();for(const r of n)r.apply(this,e.data)}}}function Np(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}Np.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=Math.floor(e*10)&1?t+n:t-n}return Math.min(t,this.max)|0};Np.prototype.reset=function(){this.attempts=0};Np.prototype.setMin=function(t){this.ms=t};Np.prototype.setMax=function(t){this.max=t};Np.prototype.setJitter=function(t){this.jitter=t};class f2 extends sc{constructor(e,n){var r;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(n=e,e=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Ty(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new Np({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=e;const i=n.parser||Ix;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var n;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(n=this.backoff)===null||n===void 0||n.setMin(e),this)}randomizationFactor(e){var n;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(n=this.backoff)===null||n===void 0||n.setJitter(e),this)}reconnectionDelayMax(e){var n;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(n=this.backoff)===null||n===void 0||n.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new gx(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=cf(n,"open",function(){r.onopen(),e&&e()}),a=l=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",l),e?e(l):this.maybeReconnectOnOpen()},o=cf(n,"error",a);if(this._timeout!==!1){const l=this._timeout,s=this.setTimeoutFn(()=>{i(),a(new Error("timeout")),n.close()},l);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}return this.subs.push(i),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(cf(e,"ping",this.onping.bind(this)),cf(e,"data",this.ondata.bind(this)),cf(e,"error",this.onerror.bind(this)),cf(e,"close",this.onclose.bind(this)),cf(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(n){this.onclose("parse error",n)}}ondecoded(e){Jy(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,n){let r=this.nsps[e];return r?this._autoConnect&&!r.active&&r.connect():(r=new YE(this,e,n),this.nsps[e]=r),r}_destroy(e){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(e){const n=this.encoder.encode(e);for(let r=0;r<n.length;r++)this.engine.write(n[r],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):e.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const Fm={};function hp(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};const n=Ax(t,e.path||"/socket.io"),r=n.source,i=n.id,a=n.path,o=Fm[i]&&a in Fm[i].nsps,l=e.forceNew||e["force new connection"]||e.multiplex===!1||o;let s;return l?s=new f2(r,e):(Fm[i]||(Fm[i]=new f2(r,e)),s=Fm[i]),n.query&&!e.query&&(e.query=n.queryKey),s.socket(n.path,e)}Object.assign(hp,{Manager:f2,Socket:YE,io:hp,connect:hp});var yr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function DE(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var ME={exports:{}};/** * @license OpenTok.js 2.28.6 83a4557 * * Copyright (c) 2010-2024 TokBox, Inc. * Subject to the applicable Software Development Kit (SDK) License Agreement: * https://www.vonage.com/legal/communications-apis/terms-of-use/ * * Date: Thu, 12 Dec 2024 16:13:16 GMT */(function(t,e){(function(r,i){t.exports=i()})(window,function(){return function(n){var r={};function i(a){if(r[a])return r[a].exports;var o=r[a]={i:a,l:!1,exports:{}};return n[a].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=n,i.c=r,i.d=function(a,o,l){i.o(a,o)||Object.defineProperty(a,o,{enumerable:!0,get:l})},i.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},i.t=function(a,o){if(o&1&&(a=i(a)),o&8||o&4&&typeof a=="object"&&a&&a.__esModule)return a;var l=Object.create(null);if(i.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:a}),o&2&&typeof a!="string")for(var s in a)i.d(l,s,(function(d){return a[d]}).bind(null,s));return l},i.n=function(a){var o=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(o,"a",o),o},i.o=function(a,o){return Object.prototype.hasOwnProperty.call(a,o)},i.p="",i(i.s=353)}([function(n,r){function i(a){return a&&a.__esModule?a:{default:a}}n.exports=i},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(408)),l=a(i(126)),s=a(i(127));const d=(0,l.default)(u=>{const h={};return(()=>{Object.keys(s.default).forEach(g=>{const A=s.default[g].method,b=(0,o.default)(`OpenTok:${u}:${g.toLowerCase()}`);b.log=console[A].bind(console),h[g.toLowerCase()]=b})})(),h});d.setLogLevel=u=>{let h;try{h=(typeof window!==void 0?window:yr).localStorage.debug}catch{h=""}const g=[...Object.keys(s.default).map(A=>`${u>=s.default[A].priority?"":"-"}(autogen)?OpenTok:*:${A.toLowerCase()}`),...(h||"").split(/[\s,]/).filter(A=>A.indexOf("(autogen)?")===-1)].filter(A=>A).join(",");o.default.enable(g)};var c=d;r.default=c},function(n,r,i){(function(a){/*! * @overview es6-promise - a tiny implementation of Promises/A+. * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) * @license Licensed under MIT license * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE * @version v4.2.8+1e68dce6 */(function(o,l){n.exports=l()})(this,function(){function o(we){var nt=typeof we;return we!==null&&(nt==="object"||nt==="function")}function l(we){return typeof we=="function"}var s=void 0;Array.isArray?s=Array.isArray:s=function(we){return Object.prototype.toString.call(we)==="[object Array]"};var d=s,c=0,u=void 0,h=void 0,f=function(nt,Gt){X[c]=nt,X[c+1]=Gt,c+=2,c===2&&(h?h(J):v())};function g(we){h=we}function A(we){f=we}var b=typeof window<"u"?window:void 0,p=b||{},y=p.MutationObserver||p.WebKitMutationObserver,m=typeof self>"u"&&typeof a<"u"&&{}.toString.call(a)==="[object process]",F=typeof Uint8ClampedArray<"u"&&typeof importScripts<"u"&&typeof MessageChannel<"u";function R(){return function(){return a.nextTick(J)}}function C(){return typeof u<"u"?function(){u(J)}:S()}function B(){var we=0,nt=new y(J),Gt=document.createTextNode("");return nt.observe(Gt,{characterData:!0}),function(){Gt.data=we=++we%2}}function N(){var we=new MessageChannel;return we.port1.onmessage=J,function(){return we.port2.postMessage(0)}}function S(){var we=setTimeout;return function(){return we(J,1)}}var X=new Array(1e3);function J(){for(var we=0;we<c;we+=2){var nt=X[we],Gt=X[we+1];nt(Gt),X[we]=void 0,X[we+1]=void 0}c=0}function E(){try{var we=Function("return this")().require("vertx");return u=we.runOnLoop||we.runOnContext,C()}catch{return S()}}var v=void 0;m?v=R():y?v=B():F?v=N():b===void 0?v=E():v=S();function j(we,nt){var Gt=this,An=new this.constructor(Fe);An[K]===void 0&&Qt(An);var Dn=Gt._state;if(Dn){var tr=arguments[Dn-1];f(function(){return Je(Dn,An,tr,Gt._result)})}else jt(Gt,An,we,nt);return An}function H(we){var nt=this;if(we&&typeof we=="object"&&we.constructor===nt)return we;var Gt=new nt(Fe);return Be(Gt,we),Gt}var K=Math.random().toString(36).substring(2);function Fe(){}var z=void 0,q=1,Ae=2;function Ke(){return new TypeError("You cannot resolve a promise with itself")}function pe(){return new TypeError("A promises callback cannot return that same promise.")}function We(we,nt,Gt,An){try{we.call(nt,Gt,An)}catch(Dn){return Dn}}function xe(we,nt,Gt){f(function(An){var Dn=!1,tr=We(Gt,nt,function(nr){Dn||(Dn=!0,nt!==nr?Be(An,nr):at(An,nr))},function(nr){Dn||(Dn=!0,Bt(An,nr))},"Settle: "+(An._label||" unknown promise"));!Dn&&tr&&(Dn=!0,Bt(An,tr))},we)}function $e(we,nt){nt._state===q?at(we,nt._result):nt._state===Ae?Bt(we,nt._result):jt(nt,void 0,function(Gt){return Be(we,Gt)},function(Gt){return Bt(we,Gt)})}function Rt(we,nt,Gt){nt.constructor===we.constructor&&Gt===j&&nt.constructor.resolve===H?$e(we,nt):Gt===void 0?at(we,nt):l(Gt)?xe(we,nt,Gt):at(we,nt)}function Be(we,nt){if(we===nt)Bt(we,Ke());else if(o(nt)){var Gt=void 0;try{Gt=nt.then}catch(An){Bt(we,An);return}Rt(we,nt,Gt)}else at(we,nt)}function qe(we){we._onerror&&we._onerror(we._result),Ne(we)}function at(we,nt){we._state===z&&(we._result=nt,we._state=q,we._subscribers.length!==0&&f(Ne,we))}function Bt(we,nt){we._state===z&&(we._state=Ae,we._result=nt,f(qe,we))}function jt(we,nt,Gt,An){var Dn=we._subscribers,tr=Dn.length;we._onerror=null,Dn[tr]=nt,Dn[tr+q]=Gt,Dn[tr+Ae]=An,tr===0&&we._state&&f(Ne,we)}function Ne(we){var nt=we._subscribers,Gt=we._state;if(nt.length!==0){for(var An=void 0,Dn=void 0,tr=we._result,nr=0;nr<nt.length;nr+=3)An=nt[nr],Dn=nt[nr+Gt],An?Je(Gt,An,Dn,tr):Dn(tr);we._subscribers.length=0}}function Je(we,nt,Gt,An){var Dn=l(Gt),tr=void 0,nr=void 0,zn=!0;if(Dn){try{tr=Gt(An)}catch(dr){zn=!1,nr=dr}if(nt===tr){Bt(nt,pe());return}}else tr=An;nt._state!==z||(Dn&&zn?Be(nt,tr):zn===!1?Bt(nt,nr):we===q?at(nt,tr):we===Ae&&Bt(nt,tr))}function ve(we,nt){try{nt(function(An){Be(we,An)},function(An){Bt(we,An)})}catch(Gt){Bt(we,Gt)}}var Ye=0;function it(){return Ye++}function Qt(we){we[K]=Ye++,we._state=void 0,we._result=void 0,we._subscribers=[]}function _t(){return new Error("Array Methods must be provided an Array")}var Dt=function(){function we(nt,Gt){this._instanceConstructor=nt,this.promise=new nt(Fe),this.promise[K]||Qt(this.promise),d(Gt)?(this.length=Gt.length,this._remaining=Gt.length,this._result=new Array(this.length),this.length===0?at(this.promise,this._result):(this.length=this.length||0,this._enumerate(Gt),this._remaining===0&&at(this.promise,this._result))):Bt(this.promise,_t())}return we.prototype._enumerate=function(Gt){for(var An=0;this._state===z&&An<Gt.length;An++)this._eachEntry(Gt[An],An)},we.prototype._eachEntry=function(Gt,An){var Dn=this._instanceConstructor,tr=Dn.resolve;if(tr===H){var nr=void 0,zn=void 0,dr=!1;try{nr=Gt.then}catch(ui){dr=!0,zn=ui}if(nr===j&&Gt._state!==z)this._settledAt(Gt._state,An,Gt._result);else if(typeof nr!="function")this._remaining--,this._result[An]=Gt;else if(Dn===Ve){var Dr=new Dn(Fe);dr?Bt(Dr,zn):Rt(Dr,Gt,nr),this._willSettleAt(Dr,An)}else this._willSettleAt(new Dn(function(ui){return ui(Gt)}),An)}else this._willSettleAt(tr(Gt),An)},we.prototype._settledAt=function(Gt,An,Dn){var tr=this.promise;tr._state===z&&(this._remaining--,Gt===Ae?Bt(tr,Dn):this._result[An]=Dn),this._remaining===0&&at(tr,this._result)},we.prototype._willSettleAt=function(Gt,An){var Dn=this;jt(Gt,void 0,function(tr){return Dn._settledAt(q,An,tr)},function(tr){return Dn._settledAt(Ae,An,tr)})},we}();function Ee(we){return new Dt(this,we).promise}function Ge(we){var nt=this;return d(we)?new nt(function(Gt,An){for(var Dn=we.length,tr=0;tr<Dn;tr++)nt.resolve(we[tr]).then(Gt,An)}):new nt(function(Gt,An){return An(new TypeError("You must pass an array to race."))})}function he(we){var nt=this,Gt=new nt(Fe);return Bt(Gt,we),Gt}function $(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function ie(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}var Ve=function(){function we(nt){this[K]=it(),this._result=this._state=void 0,this._subscribers=[],Fe!==nt&&(typeof nt!="function"&&$(),this instanceof we?ve(this,nt):ie())}return we.prototype.catch=function(Gt){return this.then(null,Gt)},we.prototype.finally=function(Gt){var An=this,Dn=An.constructor;return l(Gt)?An.then(function(tr){return Dn.resolve(Gt()).then(function(){return tr})},function(tr){return Dn.resolve(Gt()).then(function(){throw tr})}):An.then(Gt,Gt)},we}();Ve.prototype.then=j,Ve.all=Ee,Ve.race=Ge,Ve.resolve=H,Ve.reject=he,Ve._setScheduler=g,Ve._setAsap=A,Ve._asap=f;function _e(){var we=void 0;if(typeof(typeof window!==void 0?window:yr)<"u")we=typeof window!==void 0?window:yr;else if(typeof self<"u")we=self;else try{we=Function("return this")()}catch{throw new Error("polyfill failed because global object is unavailable in this environment")}var nt=we.Promise;if(nt){var Gt=null;try{Gt=Object.prototype.toString.call(nt.resolve())}catch{}if(Gt==="[object Promise]"&&!nt.cast)return}we.Promise=Ve}return Ve.polyfill=_e,Ve.Promise=Ve,Ve})}).call(this,i(27))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(464)),s=o.default.parse();r.default=s},function(n,r,i){n.exports=i(404)},function(n,r,i){(function(a){function o(s,d,c,u,h,f,g){try{var A=s[f](g),b=A.value}catch(p){c(p);return}A.done?d(b):a.resolve(b).then(u,h)}function l(s){return function(){var d=this,c=arguments;return new a(function(u,h){var f=s.apply(d,c);function g(b){o(f,u,h,g,A,"next",b)}function A(b){o(f,u,h,g,A,"throw",b)}g(void 0)})}}n.exports=l}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=h;var o=a(i(9)),l=a(i(19)),s=a(i(12)),d=a(i(1)),c=a(i(411));const u=(0,d.default)("Events");function h(f){const g=new s.default;g.on("newListener",b=>{g.emit(`${b}:added`)}),g.on("removeListener",b=>{g.emit(`${b}:removed`)});const A={eventsDispatched:{},on(b,p,y){return typeof b=="string"&&p?b.split(" ").forEach(m=>{g.on(m,(0,c.default)(p,y))}):Object.keys(b).forEach(m=>{g.on(m,(0,c.default)(b[m],p))}),this},off(b,p,y){return typeof b=="string"?this.off(b.split(" "),p,y):Array.isArray(b)?b.forEach(m=>{p&&(0,l.default)(p)?g.removeListener(m,(0,c.default)(p,y)):g.removeAllListeners(m)}):b?Object.keys(b).forEach(m=>{g.removeListener(m,(0,c.default)(b[m],p))}):g.removeAllListeners(),this},once(b,p,y){return typeof b=="string"&&p?b.split(" ").forEach(m=>{g.once(m,(0,c.default)(p,y))}):Object.keys(b).forEach(m=>{g.once(m,(0,c.default)(b[m],p))}),this},dispatchEvent(b){if(!b.type)throw new Error("dispatchEvent: Event has no type");return b.target||(b.target=this),this.trigger(b.type,b),this},dispatchEventOnce(b,p){this.isEventDispatched(b.type,p)||(this.dispatchEvent(b),this.eventsDispatched[b.type]?this.eventsDispatched[b.type].push(p):this.eventsDispatched[b.type]=[p])},isEventDispatched(b,p){var y;return(y=this.eventsDispatched[b])==null?void 0:y.includes(p)},trigger(b){try{for(var p=arguments.length,y=new Array(p>1?p-1:0),m=1;m<p;m++)y[m-1]=arguments[m];g.emit(b,...y)}catch(F){u.error("An error occurred in an event handler",F)}return this},emit(){return f.trigger(...arguments)},addEventListener(b,p,y){return u.warn("The addEventListener() method is deprecated. Use on() or once() instead."),f.on(b,p,y)},removeEventListener(b,p,y){return u.warn("The removeEventListener() method is deprecated. Use off() instead."),f.off(b,p,y)},listenerCount(b){return g.listenerCount(b)}};return(0,o.default)(f,A)}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(143)),l=a(i(254)),s=a(i(6)),d=a(i(1)),c=a(i(3)),u=a(i(256)),h=a(i(255)),f=a(i(257)),g=a(i(555)),A=a(i(259)),b=a(i(262)),p=a(i(568)),y=a(i(264));l.default.logging=(0,d.default)("OT.$"),l.default.env=c.default,l.default.ElementCollection=h.default,l.default.ajax=f.default,l.default.statable=g.default,l.default.Analytics=A.default,l.default.Collection=b.default,l.default.domExtras=p.default,l.default.Error=y.default,(0,u.default)(l.default,"useLogHelpers",{value(F){const R=(0,d.default)("useLogHelpersDeprecatedMixin");return Object.keys(R).forEach(C=>{F[C]=R[C]}),F},name:"OT.useLogHelpers",getWarning:"Please use an external library for your debugging needs"}),l.default.defaults=o.default,(0,u.default)(l.default,"eventing",{value:s.default,name:"OT.$.eventing",getWarning:"Please use an external library to create an event emitter."}),Object.keys(l.default).forEach(F=>{const C=l.default[F]._attachToOTHelpers||{};Object.keys(C).forEach(B=>{Object.hasOwnProperty.call(l.default,B)&&!(F==="util"&&B==="bind")&&console.warn(`More than one module is trying to define ${B} on OTHelpers.`),l.default[B]=C[B]})});var m=l.default;r.default=m},function(n,r,i){r.__esModule=!0,r.default=void 0;var a={AUTHENTICATION_ERROR:"OT_AUTHENTICATION_ERROR",BADLY_FORMED_RESPONSE:"OT_BADLY_FORMED_RESPONSE",CHROME_MICROPHONE_ACQUISITION_ERROR:"OT_CHROME_MICROPHONE_ACQUISITION_ERROR",CONNECT_FAILED:"OT_CONNECT_FAILED",CONNECTION_LIMIT_EXCEEDED:"OT_CONNECTION_LIMIT_EXCEEDED",CONSTRAINTS_NOT_SATISFIED:"OT_CONSTRAINTS_NOT_SATISFIED",CREATE_PEER_CONNECTION_FAILED:"OT_CREATE_PEER_CONNECTION_FAILED",DISCONNECTED:"OT_DISCONNECTED",EMPTY_RESPONSE_BODY:"OT_EMPTY_RESPONSE_BODY",GET_RTC_STATS_REPORT_NOT_SUPPORTED:"OT_GET_RTC_STATS_REPORT_NOT_SUPPORTED",HARDWARE_UNAVAILABLE:"OT_HARDWARE_UNAVAILABLE",ICE_WORKFLOW_FAILED:"OT_ICE_WORKFLOW_FAILED",INVALID_HTTP_STATUS:"OT_INVALID_HTTP_STATUS",INVALID_PARAMETER:"OT_INVALID_PARAMETER",INVALID_SESSION_ID:"OT_INVALID_SESSION_ID",MEDIA_ERR_ABORTED:"OT_MEDIA_ERR_ABORTED",MEDIA_ERR_DECODE:"OT_MEDIA_ERR_DECODE",MEDIA_ERR_NETWORK:"OT_MEDIA_ERR_NETWORK",MEDIA_ERR_SRC_NOT_SUPPORTED:"OT_MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ENDED:"OT_MEDIA_ENDED",NO_DEVICES_FOUND:"OT_NO_DEVICES_FOUND",NO_VALID_CONSTRAINTS:"OT_NO_VALID_CONSTRAINTS",NOT_CONNECTED:"OT_NOT_CONNECTED",NOT_FOUND:"OT_NOT_FOUND",NOT_SUPPORTED:"OT_NOT_SUPPORTED",PEER_CONNECTION_NOT_CONNECTED:"OT_PEER_CONNECTION_NOT_CONNECTED",PERMISSION_DENIED:"OT_PERMISSION_DENIED",RATE_LIMIT_EXCEEDED:"OT_RATE_LIMIT_EXCEEDED",REPORT_ISSUE_FAILED:"OT_REPORT_ISSUE_FAILED",SCREEN_SHARING_EXTENSION_NOT_INSTALLED:"OT_SCREEN_SHARING_EXTENSION_NOT_INSTALLED",SCREEN_SHARING_EXTENSION_NOT_REGISTERED:"OT_SCREEN_SHARING_EXTENSION_NOT_REGISTERED",SCREEN_SHARING_NOT_SUPPORTED:"OT_SCREEN_SHARING_NOT_SUPPORTED",SET_REMOTE_DESCRIPTION_FAILED:"OT_SET_REMOTE_DESCRIPTION_FAILED",FAILED_SET_CONFIGURATION:"OT_FAILED_SET_CONFIGURATION",SOCKET_ALREADY_CONNECTED_CONNECTING:"OT_SOCKET_ALREADY_CONNECTED_CONNECTING",SOCKET_CLOSE_ABNORMAL:"OT_SOCKET_CLOSE_ABNORMAL",SOCKET_CLOSE_CONNECT_EXCEPTION:"OT_SOCKET_CLOSE_CONNECT_EXCEPTION",SOCKET_CLOSE_CONNECTIVITY_LOSS:"OT_SOCKET_CLOSE_CONNECTIVITY_LOSS",SOCKET_CLOSE_FALLBACK_CODE:"OT_SOCKET_CLOSE_FALLBACK_CODE",SOCKET_CLOSE_INCONSISTENT_DATA:"OT_SOCKET_CLOSE_INCONSISTENT_DATA",SOCKET_CLOSE_NO_STATUS:"OT_SOCKET_CLOSE_NO_STATUS",SOCKET_CLOSE_POLICY_VIOLATION:"OT_SOCKET_CLOSE_POLICY_VIOLATION",SOCKET_CLOSE_GOING_AWAY:"OT_SOCKET_CLOSE_GOING_AWAY",SOCKET_CLOSE_PROTOCOL_ERROR:"OT_SOCKET_CLOSE_PROTOCOL_ERROR",SOCKET_CLOSE_TIMEOUT:"OT_SOCKET_CLOSE_TIMEOUT",SOCKET_CLOSE_TOO_LARGE:"OT_SOCKET_CLOSE_TOO_LARGE",SOCKET_CLOSE_UNEXPECTED_CONDITION:"OT_SOCKET_CLOSE_UNEXPECTED_CONDITION",SOCKET_CLOSE_UNSUPPORTED:"OT_SOCKET_CLOSE_UNSUPPORTED",STREAM_CREATE_FAILED:"OT_STREAM_CREATE_FAILED",STREAM_DESTROYED:"OT_STREAM_DESTROYED",STREAM_LIMIT_EXCEEDED:"OT_STREAM_LIMIT_EXCEEDED",STREAM_NOT_FOUND:"OT_STREAM_NOT_FOUND",UNABLE_TO_SUBSCRIBE:"OT_UNABLE_TO_SUBSCRIBE",TERMS_OF_SERVICE_FAILURE:"OT_TERMS_OF_SERVICE_FAILURE",TIMEOUT:"OT_TIMEOUT",CANCEL:"OT_CANCEL",UNABLE_TO_CAPTURE_MEDIA:"OT_UNABLE_TO_CAPTURE_MEDIA",UNABLE_TO_CAPTURE_SCREEN:"OT_UNABLE_TO_CAPTURE_SCREEN",UNEXPECTED_ERROR_CODE:"OT_UNEXPECTED_ERROR_CODE",UNEXPECTED_HTTP_STATUS:"OT_UNEXPECTED_HTTP_STATUS",UNEXPECTED_SERVER_RESPONSE:"OT_UNEXPECTED_SERVER_RESPONSE",UNKNOWN_HTTP_ERROR:"OT_UNKNOWN_HTTP_ERROR",UNSUPPORTED_BROWSER:"OT_UNSUPPORTED_BROWSER",USER_MEDIA_ACCESS_DENIED:"OT_USER_MEDIA_ACCESS_DENIED",XDOMAIN_OR_PARSING_ERROR:"OT_XDOMAIN_OR_PARSING_ERROR",API_KEY_DISABLED:"OT_API_KEY_DISABLED",UNABLE_TO_ACCESS_MEDIA_ENGINE:"OT_UNABLE_TO_ACCESS_MEDIA_ENGINE",SET_PROXY_URL_TIMING_ERROR:"OT_SET_PROXY_URL_TIMING_ERROR",PROXY_URL_ALREADY_SET_ERROR:"OT_PROXY_URL_ALREADY_SET_ERROR",SET_VIDEO_SOURCE_FAILURE:"OT_SET_VIDEO_SOURCE_FAILURE",INVALID_VIDEO_SOURCE:"OT_INVALID_VIDEO_SOURCE",REQUESTED_DEVICE_PERMISSION_DENIED:"OT_REQUESTED_DEVICE_PERMISSION_DENIED",INVALID_AUDIO_OUTPUT_SOURCE:"OT_INVALID_AUDIO_OUTPUT_SOURCE",INVALID_ENCRYPTION_SECRET:"OT_INVALID_ENCRYPTION_SECRET"};r.default=a},function(n,r,i){var a=i(85),o=i(45),l=i(203),s=i(26),d=i(68),c=i(34),u=Object.prototype,h=u.hasOwnProperty,f=l(function(g,A){if(d(A)||s(A)){o(A,c(A),g);return}for(var b in A)h.call(A,b)&&a(g,b,A[b])});n.exports=f},function(n,r,i){r.__esModule=!0,r.default=void 0;var o={JS_EXCEPTION:2e3,AUTHENTICATION_ERROR:1004,INVALID_SESSION_ID:1005,CONNECT_FAILED:1006,CONNECT_REJECTED:1007,CONNECTION_TIMEOUT:1008,NOT_CONNECTED:1010,INVALID_PARAMETER:1011,P2P_CONNECTION_FAILED:1013,API_RESPONSE_FAILURE:1014,PEER_CONNECTION_NOT_CONNECTED:1015,TERMS_OF_SERVICE_FAILURE:1026,CONNECTION_LIMIT_EXCEEDED:1027,UNABLE_TO_PUBLISH:1500,UNABLE_TO_SUBSCRIBE:1501,UNSUPPORTED_VIDEO_CODEC:1502,UNABLE_TO_FORCE_DISCONNECT:1520,UNABLE_TO_FORCE_UNPUBLISH:1530,UNABLE_TO_FORCE_MUTE:1540,PUBLISHER_ICE_WORKFLOW_FAILED:1553,SUBSCRIBER_ICE_WORKFLOW_FAILED:1554,STREAM_LIMIT_EXCEEDED:1605,UNEXPECTED_SERVER_RESPONSE:2001,REPORT_ISSUE_ERROR:2011,SET_PROXY_URL_TIMING_ERROR:2021,PROXY_URL_ALREADY_SET_ERROR:2022,GET_RTC_STATS_REPORT_NOT_SUPPORTED:2031,ANVIL_BADLY_FORMED_RESPONSE:3001,ANVIL_INVALID_HTTP_STATUS:3002,ANVIL_XDOMAIN_OR_PARSING_ERROR:3003,ANVIL_UNKNOWN_HTTP_ERROR:3004,ANVIL_UNEXPECTED_ERROR_CODE:3005,ANVIL_EMPTY_RESPONSE_BODY:3006,ANVIL_CONNECT_FAILED:3007,UNABLE_TO_ACCESS_MEDIA_ENGINE:5001};r.default=o},function(n,r){function i(a){var o=typeof a;return a!=null&&(o=="object"||o=="function")}n.exports=i},function(n,r,i){(function(a){var o=typeof Reflect=="object"?Reflect:null,l=o&&typeof o.apply=="function"?o.apply:function(J,E,v){return Function.prototype.apply.call(J,E,v)},s;o&&typeof o.ownKeys=="function"?s=o.ownKeys:Object.getOwnPropertySymbols?s=function(J){return Object.getOwnPropertyNames(J).concat(Object.getOwnPropertySymbols(J))}:s=function(J){return Object.getOwnPropertyNames(J)};function d(X){console&&console.warn&&console.warn(X)}var c=Number.isNaN||function(J){return J!==J};function u(){u.init.call(this)}n.exports=u,n.exports.once=B,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var h=10;function f(X){if(typeof X!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof X)}Object.defineProperty(u,"defaultMaxListeners",{enumerable:!0,get:function(){return h},set:function(X){if(typeof X!="number"||X<0||c(X))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+X+".");h=X}}),u.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},u.prototype.setMaxListeners=function(J){if(typeof J!="number"||J<0||c(J))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+J+".");return this._maxListeners=J,this};function g(X){return X._maxListeners===void 0?u.defaultMaxListeners:X._maxListeners}u.prototype.getMaxListeners=function(){return g(this)},u.prototype.emit=function(J){for(var E=[],v=1;v<arguments.length;v++)E.push(arguments[v]);var j=J==="error",H=this._events;if(H!==void 0)j=j&&H.error===void 0;else if(!j)return!1;if(j){var K;if(E.length>0&&(K=E[0]),K instanceof Error)throw K;var Fe=new Error("Unhandled error."+(K?" ("+K.message+")":""));throw Fe.context=K,Fe}var z=H[J];if(z===void 0)return!1;if(typeof z=="function")l(z,this,E);else for(var q=z.length,Ae=F(z,q),v=0;v<q;++v)l(Ae[v],this,E);return!0};function A(X,J,E,v){var j,H,K;if(f(E),H=X._events,H===void 0?(H=X._events=Object.create(null),X._eventsCount=0):(H.newListener!==void 0&&(X.emit("newListener",J,E.listener?E.listener:E),H=X._events),K=H[J]),K===void 0)K=H[J]=E,++X._eventsCount;else if(typeof K=="function"?K=H[J]=v?[E,K]:[K,E]:v?K.unshift(E):K.push(E),j=g(X),j>0&&K.length>j&&!K.warned){K.warned=!0;var Fe=new Error("Possible EventEmitter memory leak detected. "+K.length+" "+String(J)+" listeners added. Use emitter.setMaxListeners() to increase limit");Fe.name="MaxListenersExceededWarning",Fe.emitter=X,Fe.type=J,Fe.count=K.length,d(Fe)}return X}u.prototype.addListener=function(J,E){return A(this,J,E,!1)},u.prototype.on=u.prototype.addListener,u.prototype.prependListener=function(J,E){return A(this,J,E,!0)};function b(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(X,J,E){var v={fired:!1,wrapFn:void 0,target:X,type:J,listener:E},j=b.bind(v);return j.listener=E,v.wrapFn=j,j}u.prototype.once=function(J,E){return f(E),this.on(J,p(this,J,E)),this},u.prototype.prependOnceListener=function(J,E){return f(E),this.prependListener(J,p(this,J,E)),this},u.prototype.removeListener=function(J,E){var v,j,H,K,Fe;if(f(E),j=this._events,j===void 0)return this;if(v=j[J],v===void 0)return this;if(v===E||v.listener===E)--this._eventsCount===0?this._events=Object.create(null):(delete j[J],j.removeListener&&this.emit("removeListener",J,v.listener||E));else if(typeof v!="function"){for(H=-1,K=v.length-1;K>=0;K--)if(v[K]===E||v[K].listener===E){Fe=v[K].listener,H=K;break}if(H<0)return this;H===0?v.shift():R(v,H),v.length===1&&(j[J]=v[0]),j.removeListener!==void 0&&this.emit("removeListener",J,Fe||E)}return this},u.prototype.off=u.prototype.removeListener,u.prototype.removeAllListeners=function(J){var E,v,j;if(v=this._events,v===void 0)return this;if(v.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):v[J]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete v[J]),this;if(arguments.length===0){var H=Object.keys(v),K;for(j=0;j<H.length;++j)K=H[j],K!=="removeListener"&&this.removeAllListeners(K);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(E=v[J],typeof E=="function")this.removeListener(J,E);else if(E!==void 0)for(j=E.length-1;j>=0;j--)this.removeListener(J,E[j]);return this};function y(X,J,E){var v=X._events;if(v===void 0)return[];var j=v[J];return j===void 0?[]:typeof j=="function"?E?[j.listener||j]:[j]:E?C(j):F(j,j.length)}u.prototype.listeners=function(J){return y(this,J,!0)},u.prototype.rawListeners=function(J){return y(this,J,!1)},u.listenerCount=function(X,J){return typeof X.listenerCount=="function"?X.listenerCount(J):m.call(X,J)},u.prototype.listenerCount=m;function m(X){var J=this._events;if(J!==void 0){var E=J[X];if(typeof E=="function")return 1;if(E!==void 0)return E.length}return 0}u.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function F(X,J){for(var E=new Array(J),v=0;v<J;++v)E[v]=X[v];return E}function R(X,J){for(;J+1<X.length;J++)X[J]=X[J+1];X.pop()}function C(X){for(var J=new Array(X.length),E=0;E<J.length;++E)J[E]=X[E].listener||X[E];return J}function B(X,J){return new a(function(E,v){function j(K){X.removeListener(J,H),v(K)}function H(){typeof X.removeListener=="function"&&X.removeListener("error",j),E([].slice.call(arguments))}S(X,J,H,{once:!0}),J!=="error"&&N(X,j,{once:!0})})}function N(X,J,E){typeof X.on=="function"&&S(X,"error",J,E)}function S(X,J,E,v){if(typeof X.on=="function")v.once?X.once(J,E):X.on(J,E);else if(typeof X.addEventListener=="function")X.addEventListener(J,function j(H){v.once&&X.removeEventListener(J,j),E(H)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof X)}}).call(this,i(2))},function(n,r){var i=Array.isArray;n.exports=i},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(23)),l=a(i(8));function s(d){d===void 0&&(d={});const c=d.Errors||l.default,u=d.OTErrorClass||o.default,h=Object.keys(c).map(f=>c[f]);return function(g,A,b){if(h.indexOf(g)===-1)return new Error(`Attempt to use invalid error name (${g}). Original message: ${A.message}`);if(!(A instanceof Error||/^\[object .*Error\]$/.test(Object.prototype.toString.call(A))))return new Error(`Did not pass Error as second argument: ${A}`);const p=new u(void 0,A.message);if(p.name=g,!A.stack)try{throw A}catch{}return p.stack=A.stack,b&&(p.code=b),p}}},function(n,r,i){var a=i(185),o=typeof self=="object"&&self&&self.Object===Object&&self,l=a||o||Function("return this")();n.exports=l},function(n,r,i){var a=i(556),o=i(557),l=o;l.v1=a,l.v4=o,n.exports=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=u;var o=a(i(31)),l=a(i(28)),s=a(i(1)),d=a(i(144)),c=a(i(29));function u(h){h===void 0&&(h={});const f=h.logging||(0,s.default)("Events"),g={};g.ExceptionEvent=function(R,C,B,N,S,X,J){return new d.default(R,!1,{error:J,message:C,title:B,code:N,component:S,target:X})},g.IssueReportedEvent=function(R,C){return new d.default(R,!1,{issueId:C})},g.EnvLoadedEvent=function(R){return new d.default(R,!1)};let A=!1;g.ConnectionEvent=function(F){(0,l.default)(R,F);function R(C,B,N){return F.call(this,C,!1,{connection:B,reason:N})||this}return(0,o.default)(R,[{key:"connections",get:function(){return A||(f.warn("OT.ConnectionEvent connections property is deprecated, use connection instead."),A=!0),[this.connection]}}]),R}(d.default);let b=!1;g.StreamEvent=function(F){(0,l.default)(R,F);function R(C,B,N,S){return F.call(this,C,S,{stream:B,reason:N})||this}return(0,o.default)(R,[{key:"streams",get:function(){return b||(f.warn("OT.StreamEvent streams property is deprecated, use stream instead."),b=!0),[this.stream]}}]),R}(d.default);let p=!1,y=!1,m=!1;return g.SessionConnectEvent=function(F){(0,l.default)(R,F);function R(C){return F.call(this,C,!1)||this}return(0,o.default)(R,[{key:"connections",get:function(){return p||(f.warn("OT.SessionConnectedEvent no longer includes connections. Listen for connectionCreated events instead."),p=!0),[]}},{key:"streams",get:function(){return y||(f.warn("OT.SessionConnectedEvent no longer includes streams. Listen for streamCreated events instead."),y=!0),[]}},{key:"archives",get:function(){return m||(f.warn("OT.SessionConnectedEvent no longer includes archives. Listen for archiveStarted events instead."),m=!0),[]}}]),R}(d.default),g.SessionReconnectingEvent=function(){return new d.default(c.default.SESSION_RECONNECTING,!1)},g.SessionReconnectedEvent=function(){return new d.default(c.default.SESSION_RECONNECTED)},g.SessionDisconnectEvent=function(R,C,B){return new d.default(R,B,{reason:C})},g.StreamPropertyChangedEvent=function(R,C,B,N,S){return new d.default(R,!1,{stream:C,changedProperty:B,oldValue:N,newValue:S})},g.VideoDimensionsChangedEvent=function(R,C,B){return new d.default("videoDimensionsChanged",!1,{target:R,oldValue:C,newValue:B})},g.ArchiveEvent=function(R,C){return new d.default(R,!1,{id:C.id,name:C.name,status:C.status,archive:C})},g.ArchiveUpdatedEvent=function(R,C,B,N){return new d.default("updated",!1,{target:R,changedProperty:C,oldValue:B,newValue:N})},g.SignalEvent=function(R,C,B){return new d.default(R?`signal:${R}`:c.default.SIGNAL,!1,{data:C,from:B})},g.CpuPerformanceChangedEvent=function(R){return new d.default("cpuPerformanceChanged",!1,{cpuPerformanceState:R})},g.QualityScoreChangedEvent=function(R){return new d.default("qualityScoreChanged",!1,{qualityScore:R})},g.CaptionReceivedEvent=function(R,C,B){return new d.default("caption",!1,{caption:R,streamId:C,isFinal:B})},g.PublisherCaptionsEnabled=function(R){return new d.default("publisherCaptionsEnabled",!1,{captionsEnabled:R})},g.MediaStreamAvailableEvent=function(R){return new d.default("mediaStreamAvailable",!1,{mediaStream:R})},g.StreamUpdatedEvent=function(R,C,B,N){return new d.default("updated",!1,{target:R,changedProperty:C,oldValue:B,newValue:N})},g.DestroyedEvent=function(R,C,B){return new d.default(R,!1,{target:C,reason:B})},g.ConnectionStateChangedEvent=function(R,C,B){return new d.default(R,!1,{target:C,mediaMode:B})},g.VideoEnabledChangedEvent=function(R,C){return new d.default(R,!1,{reason:C.reason})},g.VideoDisableWarningEvent=function(R){return new d.default(R,!1)},g.AudioLevelUpdatedEvent=function(R){return new d.default(c.default.AUDIO_LEVEL_UPDATED,!1,{audioLevel:R})},g.AudioInputDeviceChangedEvent=function(R){return new d.default(c.default.AUDIO_INPUT_DEVICE_CHANGED,!1,{device:R})},g.MediaStoppedEvent=function(R,C){return new d.default(c.default.MEDIA_STOPPED,!0,{target:R,track:C})},g.MuteForcedEvent=function(R){return new d.default(c.default.MUTE_FORCED,!1,R)},g.VideoElementCreatedEvent=function(R){return new d.default(c.default.VIDEO_ELEMENT_CREATED,!1,{element:R})},g}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(9)),l=a(i(62)),s=a(i(290)),d=a(i(145)),c=a(i(291)),u=a(i(1)),h=a(i(292));function f(B,N){var S=typeof Symbol<"u"&&B[Symbol.iterator]||B["@@iterator"];if(S)return(S=S.call(B)).next.bind(S);if(Array.isArray(B)||(S=g(B))||N){S&&(B=S);var X=0;return function(){return X>=B.length?{done:!0}:{done:!1,value:B[X++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function g(B,N){if(B){if(typeof B=="string")return A(B,N);var S=Object.prototype.toString.call(B).slice(8,-1);if(S==="Object"&&B.constructor&&(S=B.constructor.name),S==="Map"||S==="Set")return Array.from(B);if(S==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(S))return A(B,N)}}function A(B,N){(N==null||N>B.length)&&(N=B.length);for(var S=0,X=new Array(N);S<N;S++)X[S]=B[S];return X}const b=(0,u.default)("SDPHelpers"),p=1e4,y=2e4,m={getSections(B){return B.split(/\r\n|\r|\n/).reduce((N,S)=>{const X=S.match(/^m=(\w+) \d+/);return X&&(N.sections[N.section=X[1]]=[]),N.sections[N.section].push(S),N},{sections:{header:[]},section:"header"}).sections},getCodecsFromSection(B){const N=B[0].match(/m=\w+ \d+ [A-Z/]+ ([\d ]+)$/)[1].split(" "),S=(0,o.default)(...B.filter(X=>X.match(/^a=rtpmap:\d+/)).map(X=>X.match(/^a=rtpmap:(\d+) ([\w-]+)/).splice(1)).map(X=>{let J=X[0],E=X[1];return{[J]:E}}));return{codecs:N,codecMap:S}},getCodecsAndCodecMap(B,N){const S=m.getSections(B)[N];if(!S)throw new Error(`no mediaType ${N}`);return m.getCodecsFromSection(S)},getCodecs(B,N){const S=m.getCodecsAndCodecMap(B,N);return S.codecs.map(X=>S.codecMap[X]||"Unknown codec")},MediaDirection:h.default,iceCredentials:{ufrag:"a=ice-ufrag:",pwd:"a=ice-pwd:"}};m.getMLineIndex=function(N,S){const X=`m=${S}`;return(0,s.default)(N,J=>J.indexOf(X)!==-1)},m.getMLine=function(N,S){const X=m.getMLineIndex(N,S);return X>-1?N[X]:void 0},m.hasMediaType=(B,N)=>{const S=new RegExp(`^m=${N}`),X=B.split(`\r `);return(0,s.default)(X,J=>S.test(J))>=0},m.hasMLinePayloadType=function(N,S,X){const J=m.getMLine(N,S);return m.getMLinePayloadTypes(J,S).indexOf(X)>-1},m.getMLinePayloadTypes=function(N,S){const X=new RegExp(`^m=${S} \\d+(/\\d+)? [a-zA-Z0-9/]+(( [a-zA-Z0-9/]+)+)$`,"i"),J=N.match(X);return!J||J.length<2?[]:J[2].trim().split(" ")},m.splitSections=function(N){return N.split(` m=`).map((X,J)=>(J>0?"m="+X:X).trim()+`\r `)},m.getLinesPerSection=B=>m.splitSections(B).map(S=>m.getSDPLines(S)),m.replaceDirectionInSdpLines=(B,N,S)=>{const X=B.join(`\r `);return m.replaceDirection(X,N,S).split(`\r `)},m.replaceDirection=(B,N,S)=>{const X=new RegExp(`a=${N}`,"g");return B.replace(X,`a=${S}`)},m.setSubscriberMediaSectionToInactive=B=>{const N=h.default.SENDONLY,S=h.default.INACTIVE;return m.replaceDirectionInSdpLines(B,N,S)},m.changeMediaDirection=function(N,S){const X=m.splitSections(N);let E=X.shift();const v=h.default.RECVONLY,j=h.default.INACTIVE,H=S===v?j:v;return X.forEach(K=>{const Fe=K.includes("m=video")?m.replaceDirection(K,H,S):K;E+=Fe}),E},m.removeTypesFromMLine=function(N,S){const X=/[0-9 ]*$/.exec(N)[0],J=X.split(" ").filter(E=>E!==""&&S.indexOf(E)===-1);return N.replace(X,` ${J.join(" ")}`)},m.removeMediaEncoding=function(N,S,X){let J,E,v,j,H=N.split(`\r `);const K=m.getMLineIndex(H,S),Fe=K>-1?H[K]:void 0,z=[];if(K===-1||(J=m.getMLinePayloadTypes(Fe,S),J.length===0))return H.join(`\r `);for(E=K;E<H.length;E++){const q=new RegExp(X,"i");H[E].indexOf("a=rtpmap:")===0&&(j=H[E].split(" "),j.length===2&&q.test(j[1])&&z.push(j[0].substr(9)))}if(!z.length)return H.join(`\r `);for(E=K;E<H.length;E++)if(H[E].indexOf("a=fmtp:")===0)for(j=H[E].split(" "),v=0;v<z.length;v++)j.length===2&&j[1]===`apt=${z[v]}`&&z.push(j[0].substr(7));return H=H.filter(q=>{for(let Ae=0;Ae<z.length;Ae++)if(q.indexOf(`a=rtpmap:${z[Ae]} `)===0||q.indexOf(`a=fmtp:${z[Ae]} `)===0||q.indexOf(`a=rtcp-fb:${z[Ae]} `)===0)return!1;return!0}),z.length>0&&K>-1&&(H[K]=m.removeTypesFromMLine(Fe,z)),H.join(`\r `)},m.disableMediaType=function(N,S){const X=N.split(`\r `),J=[];let E;X.forEach(H=>{let K=H;/^m=/.test(K)&&(E=void 0),E||(E=[],J.push(E)),E.push(K)});const v=new RegExp(`^m=${S} \\d+ ([^ ]+) [0-9 ]+$`),j=J.map(H=>{const K=H[0].match(v);return K?[`m=${S} 0 ${K[1]} 0`,"a=inactive",...H.filter(Fe=>/^c=/.test(Fe)||/^a=mid:/.test(Fe)||Fe==="")]:H});return[].concat(...j).join(`\r `)},m.removeVideoCodec=function(N,S){return m.removeMediaEncoding(N,"video",S)};const F=function(N,S){let X=S.filterByName("ssrc-group:FID");switch(X.length===0?X=[]:X=X[0].value.split(" "),X.length){case 0:case 1:var E=S.find(j=>j.name.indexOf("rtpmap:")===0&&j.value.indexOf("rtx/90000")>-1);if(!E)return!1;var v=E.name.split(":")[1];return v.indexOf("/")>-1&&(v=v.split("/")[0]),m.hasMLinePayloadType(N,"video",v);default:return b.debug("SDP Helpers: There are more than two FIDs, RTX is definitely enabled"),!0}};m.getAttributesForMediaType=function(N,S){let X,J,E,v,j,H,K,Fe,z,q;const Ae=m.getMLineIndex(N,S),Ke=new RegExp(`m=(?!${S}).+ `,"i"),pe=new RegExp("a=ssrc:\\d+ .*","i"),We=new RegExp("a=ssrc-group:(SIM|FID) (\\d+).*?","i"),xe=new RegExp("a=([a-z0-9:/-]+) (.*)","i"),$e=[];for(let Rt=Ae+1;Rt<N.length;Rt++){if(Ke.test(N[Rt])){X!==void 0&&(J=Rt-1);break}j=N[Rt].match(We),H=N[Rt].match(pe),X===void 0&&(j||H)&&(X=Rt,j&&(v=/^(FID|SIM)$/.test(j[1])?j[2]:j[1])),K=N[Rt].match(`a=ssrc:${v} msid:(.+)`),K&&(Fe=K[1]);const Be=pe.test(N[Rt]),qe=We.test(N[Rt]);X!==void 0&&(J===void 0&&!Be&&!qe?J=Rt-1:Rt===N.length-1&&(J=Rt));const at=N[Rt].match(/a=mid:(.+)/);at&&(z=at[1],q=Rt),E=xe.exec(N[Rt]),E&&E.length===3&&$e.push({lineIndex:Rt,name:E[1],value:E[2]})}return $e.ssrcStartIndex=X,$e.ssrcEndIndex=J,$e.msid=Fe,$e.mid=z,$e.midIndex=q,$e.isUsingRTX=F.bind(null,N,$e),$e.filterByName=function(Be){return this.filter(qe=>qe.name===Be)},$e.getRtpNumber=Rt=>{const Be=new RegExp("rtpmap:(.+)");return(0,l.default)($e.map(qe=>{const at=qe.name.match(Be);return at&&qe.value.indexOf(Rt)>=0?at[1]:null}),qe=>qe!==null)},$e},m.modifyDtx=(B,N)=>{const S=B.split(`\r `);if(!m.getMLine(S,"audio"))return b.debug("No audio m-line, not enabling dtx."),B;const X=m.getAttributesForMediaType(S,"audio"),J=X.getRtpNumber("opus");if(!J)return b.debug("Could not find rtp number for opus, not enabling dtx."),B;const E=X.find(H=>H.name===`fmtp:${J}`);if(!E)return b.debug("Could not find a=fmtp line for opus, not enabling dtx."),B;let v=S[E.lineIndex];const j=/usedtx=\d+([\s;]*)/;return j.test(E.value)?v=v.replace(j,N?"usedtx=1$1":""):N&&(v+="; usedtx=1"),v=v.replace(/[;\s]*$/,""),S[E.lineIndex]=v,S.join(`\r `)};const R=(B,N,S)=>{const X=N.split(`\r `);if(!m.getMLine(X,"audio"))return b.debug("No audio m-line, not enabling stereo."),N;const J=m.getAttributesForMediaType(X,"audio"),E=J.getRtpNumber("opus");if(!E)return b.debug("Could not find rtp number for opus, not enabling stereo."),N;const v=J.find(K=>K.name===`fmtp:${E}`);if(!v)return b.debug("Could not find a=fmtp line for opus, not enabling stereo."),N;let j=X[v.lineIndex],H;switch(B){case"send":H=/sprop-stereo=\d+([\s;]*)/,H.test(v.value)?j=j.replace(H,S?"sprop-stereo=1$1":""):S&&(j+="; sprop-stereo=1");break;case"receive":H=/([^-])stereo=\d+([\s;]*)/,H.test(v.value)?j=j.replace(H,S?"$1stereo=1$2":"$1"):S&&(j+="; stereo=1");break;default:throw new Error(`Invalid type ${B} passed into enableStereo`)}return j=j.replace(/[;\s]*$/,""),X[v.lineIndex]=j,X.join(`\r `)};m.modifySendStereo=R.bind(null,"send"),m.modifyReceiveStereo=R.bind(null,"receive"),m.setAudioBitrate=(B,N)=>{const S=m.getAudioBitrate(B);if(S!==void 0)return b.debug(`Audio bitrate already set to ${S}, not setting audio bitrate`),B;const X=B.split(`\r `);if(!m.getMLine(X,"audio"))return b.debug("No audio m-line, not setting audio bitrate"),B;const J=m.getAttributesForMediaType(X,"audio"),E=J.getRtpNumber("opus");if(!E)return b.debug("Could not find rtp number for opus, not setting audio bitrate."),B;const v=J.find(H=>H.name===`fmtp:${E}`);if(!v)return b.debug("Could not find a=fmtp line for opus, not setting audio bitrate."),B;let j=X[v.lineIndex];return j+=`; maxaveragebitrate=${N}`,j=j.replace(/[;\s]*$/,""),X[v.lineIndex]=j,X.join(`\r `)},m.removeVideoOrientation=B=>{let N=B.split(`\r `);return N=N.filter(S=>!S.includes("urn:3gpp:video-orientation")),N.join(`\r `)},m.hasSendStereo=B=>/[\s;]sprop-stereo=1/.test(B),m.hasSendDtx=B=>/[\s;]usedtx=1/.test(B),m.hasOpusFec=B=>/[\s;]useinbandfec=1/.test(B),m.getAudioBitrate=B=>{const N=B.match(/[\s;]maxaveragebitrate=(\d+)/);if(N)return Number(N[1])},m.MAX_SSRCS=10,m.getSSRCGroupType=B=>["SIM","FID"].find(S=>B.filterByName(`ssrc-group:${S}`)[0]),m.getSSRCGroup=B=>{const N=m.getSSRCGroupType(B);return B.filterByName(`ssrc-group:${N}`)[0]},m.getSSRCGroupSSRCs=B=>{const N=m.getSSRCGroup(B);return N?N.value.split(" ").slice(0,m.MAX_SSRCS):[]},m.getAllowedSSRCs=(B,N)=>{const S=N.slice();return B.filterByName("ssrc-group:FID").forEach(X=>{const J=X.value.split(" ");(0,d.default)(S,J).length&&Array.prototype.push.apply(S,J)}),(0,c.default)(S)},m.filterExcessSSRCs=B=>{const N=B.split(`\r `),S=m.getAttributesForMediaType(N,"video"),X=m.getSSRCGroupType(S),J=S.ssrcStartIndex;if(J===void 0)return B;let E;const v=H=>{let K=null;return H.match(/^a=ssrc:(\d+)/)&&(K=RegExp.$1),K};if(X){const H=m.getSSRCGroupSSRCs(S),K=[`a=ssrc-group:${X}`,...H].join(" "),Fe=S.find(z=>z.name.startsWith("ssrc-group:")).lineIndex;N[Fe]=K,E=m.getAllowedSSRCs(S,H)}else E=[],S.ssrcStartIndex&&E.push(v(N[S.ssrcStartIndex]));return N.filter((H,K)=>{if(K<J||K>S.ssrcEndIndex)return!0;if(K===J){if(!X){const z=v(H);return z?E.includes(z):!/^a=ssrc:(\d+)/.test(H)}return!0}const Fe=v(H);if(Fe)return E.includes(Fe);if(H.match(/^a=ssrc-group:FID (\d+)/)){const z=RegExp.$1;return E.includes(z)}return!H.match(/^a=ssrc-group:SIM /)}).join(`\r `)},m.enableSimulcast=function(N,S){let X,J;const E=N.split(`\r `);if(!m.getMLine(E,"video"))return b.debug("No video m-line, not enabling simulcast."),N;const v=m.getAttributesForMediaType(E,"video");if(v.filterByName("ssrc-group:SIM").length>0)return b.debug("Simulcast is already enabled in this SDP, not attempting to enable again."),m.filterExcessSSRCs(N);if(!v.msid)return b.debug("No local stream attached, not enabling simulcast."),N;const j=v.isUsingRTX(),H=[],K=[];for(J=0;J<S;++J)H.push(p+J),j&&K.push(y+J);if(X=[`a=ssrc-group:SIM ${H.join(" ")}`],j)for(J=0;J<S;++J)X.push(`a=ssrc-group:FID ${H[J]} ${K[J]}`);for(J=0;J<S;++J)X.push(`a=ssrc:${H[J]} cname:localCname`,`a=ssrc:${H[J]} msid:${v.msid}`);if(j)for(J=0;J<S;++J)X.push(`a=ssrc:${K[J]} cname:localCname`,`a=ssrc:${K[J]} msid:${v.msid}`);return X.unshift(v.ssrcStartIndex,v.ssrcEndIndex-v.ssrcStartIndex+1),E.splice(...X),E.join(`\r `)},m.reprioritizeVideoCodec=function(N,S,X){const J=N.split(`\r `),E=m.getMLineIndex(J,"video");if(E===-1)return N;const v=m.getMLinePayloadTypes(J[E],"video"),j=new RegExp(`^a=rtpmap:(\\d+).* ${S}`,"i"),H=J.map(q=>q.match(j)).filter(q=>q!==null);if(H.length===0)return N;const K=H.map(q=>q[1]);let Fe=v.filter(q=>K.indexOf(q)===-1);X==="top"?Fe.unshift(...K):X==="bottom"?Fe.push(...K):(b.error(`Unexpected location param: ${X}; not changing ${S} priority`),Fe=v);const z=J[E].replace(v.join(" "),Fe.join(" "));return J[E]=z,J.join(`\r `)},m.getSetupRole=B=>{for(var N=f(B.split(/\r\n|\r|\n/)),S;!(S=N()).done;){const J=S.value.match(/^a=setup:(\w+)/);if(J)return J[1]}return""},m.setSetupRole=(B,N)=>B.split(/\r\n|\r|\n/).map(S=>S.match(/^a=setup:(\w+)/)?`a=setup:${N}`:S).join(`\r `),m.changeSetupRole=(B,N,S)=>B.split(/\r\n|\r|\n/).map(X=>X.includes(`a=setup:${N}`)?`a=setup:${S}`:X).join(`\r `),m.patterns={bundle:"a=group:BUNDLE",address:"c=IN IP4",rtcp:"a=rtcp:",direction:["a=inactive","a=sendonly","a=recvonly","a=sendrecv"],rsize:"a=rtcp-rsize",ssrc:"a=ssrc:",msid:"a=msid:"},m.getIndexStartingWith=(B,N,S)=>{const X=B.slice(S),J=N.map(E=>X.findIndex(v=>v.includes(E))).filter(E=>E>-1);return J.length?S+Math.min(...J):B.length},m.getLastIndexPriorTo=(B,N,S)=>B.slice(0,S).map(E=>E.includes(N)).lastIndexOf(!0),m.includesAny=(B,N)=>{for(let S=0;S<N.length;S++)if(B.includes(N[S]))return!0;return!1},m.isVersionLine=B=>/^o=/.test(B),m.getVersionLine=B=>B.find(m.isVersionLine),m.getVersion=B=>{const N=m.getVersionLine(B);if(N===void 0)return;const S=Number(N.match(/ (\d+) IN /)[1]);return Number.isInteger(S)?S:void 0},m.updateVersion=(B,N,S)=>{const X=[...B],J=X.findIndex(E=>m.isVersionLine(E));return J>=0&&(X[J]=X[J].replace(` ${N} `,` ${S} `)),X},m.isBundleLine=B=>B.includes(m.patterns.bundle),m.getBundleLine=B=>B.find(m.isBundleLine),m.createBundleLine=B=>`${m.patterns.bundle} ${B.join(" ")}`,m.updateBundleLine=(B,N)=>{const S=[...B],X=m.createBundleLine(N),J=S.findIndex(E=>m.isBundleLine(E));return J>=0&&(S[J]=X),S},m.parseMLine=B=>{const N=B.match(/^(m=(?:audio|video)) (\d+) (.+)/),S=N[1],X=N[2],J=N[3];return{port:X,transport:J,mediaType:S}},m.disableTrack=B=>{const N=m.parseMLine(B),S=N.mediaType,X=N.transport;return`${S} 0 ${X}`},m.setMediaDirection=(B,N)=>{if(!Object.values(h.default).includes(N))return B;const X=B.slice(),J=X.findIndex(E=>m.includesAny(E,m.patterns.direction));return J===-1||(X[J]=`a=${N}`),X},m.disableTrackSection=B=>{const N=B.mid,S=B.sdp;let X=S.filter(J=>{const E=m.patterns,v=E.address,j=E.rtcp,H=E.rsize,K=E.ssrc,Fe=E.msid;return!m.includesAny(J,[v,j,H,K,Fe])});return X[0]=m.disableTrack(S[0]),X=m.setMediaDirection(X,h.default.INACTIVE),{mid:N,sdp:X}},m.isDisabledMediaSection=B=>{let N=B[0];return/^m=(?:video|audio) 0 RTP\/SAVPF 0/.test(N)},m.getDisabledSectionForMid=B=>[`m=${B.includes("a")?"audio":"video"} 0 RTP/SAVPF 0`],m.disableTrackSections=(B,N)=>N.map(S=>{const X=m.getTrackMids(S),J=X[0];return!J||B.includes(J)?S:m.getDisabledSectionForMid(J)}),m.getEnabledTracks=B=>m.getBundleLine(B).match(new RegExp(`^${m.patterns.bundle} (.+)$`))[1].split(" "),m.getDisabledTracks=(B,N)=>B.filter(S=>!N.includes(S)),m.getTrackSection=(B,N)=>{const S=B.findIndex(j=>j.includes(`a=mid:${N}`)),X=N.includes("a")?"audio":"video",J=m.getLastIndexPriorTo(B,`m=${X}`,S),E=m.getIndexStartingWith(B,["m=audio","m=video"],S),v=B.slice(J,E);return{mid:N,sdp:v}},m.getHeaders=B=>{const N=B.findIndex(S=>S.includes("m=audio")||S.includes("m=video"));return B.slice(0,N)},m.getSDPLines=B=>B.split(`\r `).filter(N=>N),m.getTrackMids=B=>{const N="a=mid:";return B.filter(X=>X.match(new RegExp(`^${N}\\d+`))).map(X=>X.substring(N.length))},m.getTrackSections=B=>m.getTrackMids(B).map(S=>m.getTrackSection(B,S)),m.parseMantisSDP=B=>{const N=m.changeSetupRole(B,"actpass","passive");return m.parseSDP(N)},m.isMediaSectionDisabled=B=>{const N=m.parseMLine(B[0]),S=N.port;return parseInt(S,10)===0},m.getSectionMid=B=>m.isMediaSectionDisabled(B)?null:m.getTrackMids(B)[0],m.parseSDP=B=>{const N=m.getLinesPerSection(B),S=N[0],X=N.slice(1);return{bundle:m.getBundleLine(S),version:m.getVersion(S),iceCredentials:m.getIceCredentials(S),tracks:m.getEnabledTracks(S),mediaSections:X,mids:X.map(m.getSectionMid),headers:S}},m.createSDP=(B,N)=>{const S=[...B];return N.forEach(X=>S.push(...X)),S.push(""),S.join(`\r `)},m.removePayloadTypeFromSection=(B,N)=>B.filter(S=>!S.includes(`a=rtpmap:${N} `)&&!S.includes(`a=fmtp:${N} `)&&!S.includes(`a=rtcp-fb:${N} `)),m.getRtxPayloadType=(B,N)=>{const S=B.filter(J=>J.includes(`apt=${N}`))[0];return S==null?void 0:S.match(/^a=fmtp:(\d+) /)[1]},m.removeRtxPayloadTypeFromSection=(B,N)=>{let S=[...B];const X=m.getRtxPayloadType(S,N);return X&&(S=m.removePayloadTypeFromSection(S,X)),S},m.trimUnusedCodecs=(B,N)=>{const S=B[0].split(" "),X=S.slice(3),J=S.slice(0,3),E=m.getCodecsFromSection(B);let v=[...B],j=[];X.forEach(K=>{const Fe=E.codecMap[K];if(!N.includes(Fe))v=m.removePayloadTypeFromSection(v,K),v=m.removeRtxPayloadTypeFromSection(v,K);else{j.push(K);const z=m.getRtxPayloadType(v,K);z&&j.push(z)}});const H=j.length?j:[0];return v[0]=[...J,...H].join(" "),v},m.removeUnusedCodecs=(B,N)=>{if(!N)return B;const S=m.parseSDP(B),X=S.headers,J=S.mediaSections,E=m.parseSDP(N),v=E.mids,j=E.mediaSections,H=J.map(Fe=>{const z=v.findIndex(Ae=>Ae===m.getTrackMids(Fe)[0]);if(z<0)return Fe;const q=Object.values(m.getCodecsFromSection(j[z]).codecMap);return m.trimUnusedCodecs(Fe,q)}),K=[...X];return H.forEach(Fe=>K.push(...Fe)),K.push(""),K.join(`\r `)},m.updateSDPWithNewOffer=(B,N)=>{const S=B.headers,X=B.version,J=B.mediaSections,E=m.getSDPLines(N),v=m.getVersion(E),j=m.getEnabledTracks(E),H={version:v,tracks:j,headers:m.updateBundleLine(m.updateVersion(S,X,v),j),mediaSections:m.disableTrackSections(j,J)};return H.mids=H.mediaSections.map(m.getSectionMid),H},m.isUfragLine=B=>B.includes(m.iceCredentials.ufrag),m.isPwdLine=B=>B.includes(m.iceCredentials.pwd),m.getIceCredentials=B=>{const N={};return B.forEach(S=>{m.isUfragLine(S)?N.ufrag=S:m.isPwdLine(S)&&(N.pwd=S)}),N},m.updateIceCredentials=(B,N)=>B.map(S=>m.isUfragLine(S)?N.ufrag:m.isPwdLine(S)?N.pwd:S),m.addIceCredentialsToSection=(B,N)=>{let S=N.ufrag,X=N.pwd;const J=[...B],E="a=mid:",v=J.findIndex(j=>j.startsWith(E));return v>=0&&J.splice(v,0,S,X),J},m.addIceCandidatesToSection=(B,N)=>{const S=[...B],X="a=candidate:",J="a=end-of-candidates",E=N.filter(H=>H.startsWith(X)||H===J),v="a=mid:",j=S.findIndex(H=>H.startsWith(v));return j>=0&&E.length&&S.splice(j,0,...E),S},m.addIceConfig=(B,N,S)=>{const X=[...B],J=B[0];if(!m.getIceCredentials(J).ufrag){const j=m.addIceCredentialsToSection(J,S);X[0]=m.addIceCandidatesToSection(j,N)}return X},m.updateHeadersInPartialSdp=(B,N,S)=>{if(!B.headers.length)return m.updateBundleLine(N.headers,S);let X=m.updateBundleLine(B.headers,S);return X=m.updateVersion(X,B.version,N.version),B.iceCredentials.ufrag!==N.iceCredentials.ufrag&&(X=m.updateIceCredentials(X,N.iceCredentials)),X},m.updateFirstEnabledMediaSection=(B,N)=>{const S=[...B.mediaSections],X=B.mids.findIndex(J=>J!==null);return X>=0&&(S[X]=m.updateIceCredentials(S[X],N)),S};var C=m;r.default=C},function(n,r,i){var a=i(33),o=i(11),l="[object AsyncFunction]",s="[object Function]",d="[object GeneratorFunction]",c="[object Proxy]";function u(h){if(!o(h))return!1;var f=a(h);return f==s||f==d||f==l||f==c}n.exports=u},function(n,r){function i(a){return a!=null&&typeof a=="object"}n.exports=i},function(n,r,i){var a=i(218),o=Object.prototype.toString;function l(v){return o.call(v)==="[object Array]"}function s(v){return typeof v>"u"}function d(v){return v!==null&&!s(v)&&v.constructor!==null&&!s(v.constructor)&&typeof v.constructor.isBuffer=="function"&&v.constructor.isBuffer(v)}function c(v){return o.call(v)==="[object ArrayBuffer]"}function u(v){return typeof FormData<"u"&&v instanceof FormData}function h(v){var j;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?j=ArrayBuffer.isView(v):j=v&&v.buffer&&v.buffer instanceof ArrayBuffer,j}function f(v){return typeof v=="string"}function g(v){return typeof v=="number"}function A(v){return v!==null&&typeof v=="object"}function b(v){if(o.call(v)!=="[object Object]")return!1;var j=Object.getPrototypeOf(v);return j===null||j===Object.prototype}function p(v){return o.call(v)==="[object Date]"}function y(v){return o.call(v)==="[object File]"}function m(v){return o.call(v)==="[object Blob]"}function F(v){return o.call(v)==="[object Function]"}function R(v){return A(v)&&F(v.pipe)}function C(v){return typeof URLSearchParams<"u"&&v instanceof URLSearchParams}function B(v){return v.trim?v.trim():v.replace(/^\s+|\s+$/g,"")}function N(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function S(v,j){if(!(v===null||typeof v>"u"))if(typeof v!="object"&&(v=[v]),l(v))for(var H=0,K=v.length;H<K;H++)j.call(null,v[H],H,v);else for(var Fe in v)Object.prototype.hasOwnProperty.call(v,Fe)&&j.call(null,v[Fe],Fe,v)}function X(){var v={};function j(Fe,z){b(v[z])&&b(Fe)?v[z]=X(v[z],Fe):b(Fe)?v[z]=X({},Fe):l(Fe)?v[z]=Fe.slice():v[z]=Fe}for(var H=0,K=arguments.length;H<K;H++)S(arguments[H],j);return v}function J(v,j,H){return S(j,function(Fe,z){H&&typeof Fe=="function"?v[z]=a(Fe,H):v[z]=Fe}),v}function E(v){return v.charCodeAt(0)===65279&&(v=v.slice(1)),v}n.exports={isArray:l,isArrayBuffer:c,isBuffer:d,isFormData:u,isArrayBufferView:h,isString:f,isNumber:g,isObject:A,isPlainObject:b,isUndefined:s,isDate:p,isFile:y,isBlob:m,isFunction:F,isStream:R,isURLSearchParams:C,isStandardBrowserEnv:N,forEach:S,merge:X,extend:J,trim:B,stripBOM:E}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(4)),s=o(i(5)),d=o(i(3)),c=o(i(104)),u=o(i(252)),h=o(i(547)),f=o(i(253)),A=function(p){p===void 0&&(p={});const y=p.getNativeEnumerateDevices||(0,u.default)(),m=p.getNativeMediaDevices||(0,h.default)(),F=p.currentAudioOutputDevice||c.default,R=F.getCurrentAudioOutputDeviceId,C=p.currentAudioInputDevice||f.default,B=C.getCurrentAudioInputDevice,N=p.env||d.default,S=p.global||(typeof window!==void 0?window:yr),X={},J={audio:"audioInput",video:"videoInput",audioinput:"audioInput",videoinput:"videoInput",audiooutput:"audioOutput",audioInput:"audioInput",videoInput:"videoInput",audioOutput:"audioOutput"},E=()=>y()();return X.getNativeMediaDevices=()=>m(),X.hasEnumerateDevicesCapability=()=>typeof y()=="function",X.hasDeviceChangeCapability=()=>{const v=m();return!!(v&&"ondevicechange"in v)},X.hasSetSinkIdCapability=()=>"setSinkId"in(S==null?void 0:S.HTMLMediaElement.prototype),X.hasAudioOutputApiSupport=()=>{const v=p,j=v.hasSetSinkIdCapability,H=j===void 0?X.hasSetSinkIdCapability:j,K=p,Fe=K.hasDeviceChangeCapability,z=Fe===void 0?X.hasDeviceChangeCapability:Fe;return!(N!=null&&N.isFirefox)&&H()&&z()},X.hasEnumerateDevicesBug=()=>N.isSafari&&N.version===13.1,X.getMediaDevices=()=>X.hasEnumerateDevicesCapability()?E().then(v=>v.map(j=>({deviceId:j.deviceId||j.id,label:j.label,kind:J[j.kind]}))):a.reject(new Error("This browser does not support enumerateDevices APIs")),X.getInputMediaDevices=()=>X.getMediaDevices().then(v=>v.filter(j=>/^(audio|video)Input$/.test(j.kind))),X.getAudioOutputMediaDevices=()=>X.getMediaDevices().then(v=>v.filter(j=>j.kind==="audioOutput").map(j=>{let H=j.deviceId,K=j.label;return{deviceId:H,label:K}})),X.getAudioInputMediaDevices=()=>X.getMediaDevices().then(v=>v.filter(j=>j.kind==="audioInput").map(j=>{let H=j.deviceId,K=j.label;return{deviceId:H,label:K}})),X.shouldAskForDevices=()=>X.hasEnumerateDevicesCapability()?X.getInputMediaDevices().then(v=>{if(v.length===0)return{video:!0,audio:!0};const j=v.filter(K=>K.kind==="audioInput"),H=v.filter(K=>K.kind==="videoInput");return X.hasEnumerateDevicesBug()&&H.length===0?{audio:!0,video:!0}:{video:H.length>0,audio:j.length>0,videoDevices:H,audioDevices:j}}).catch(()=>({video:!0,audio:!0})):a.resolve({video:!0,audio:!0}),X.getDefaultAudioOutputDeviceId=v=>!Array.isArray(v)||v.length===0?"":(v.find(K=>K.deviceId==="default")||v[0]).deviceId,X.getDefaultAudioInputDevice=v=>!Array.isArray(v)||v.length===0?"":v.find(j=>j.deviceId==="default")||v[0],X.hasDevice=(v,j)=>{let H=v;return Array.isArray(H)||(H=[]),H.some(K=>K.deviceId===j)},X.getActiveAudioInputDevice=(0,s.default)(l.default.mark(function v(){var j,H,K;return l.default.wrap(function(z){for(;;)switch(z.prev=z.next){case 0:return z.next=2,X.getAudioInputMediaDevices();case 2:if(j=z.sent,j.length!==0){z.next=5;break}return z.abrupt("return",{deviceId:null,label:null});case 5:return H=B(),H||(K=X.getDefaultAudioInputDevice(j),H=j.find(q=>q===K)),z.abrupt("return",H);case 8:case"end":return z.stop()}},v)})),X.getActiveAudioOutputDevice=(0,s.default)(l.default.mark(function v(){var j,H,K;return l.default.wrap(function(z){for(;;)switch(z.prev=z.next){case 0:return z.prev=0,z.next=3,X.getAudioOutputMediaDevices();case 3:j=z.sent,z.next=9;break;case 6:throw z.prev=6,z.t0=z.catch(0),z.t0;case 9:if(j.length!==0){z.next=11;break}return z.abrupt("return",{deviceId:null,label:null});case 11:return H=j.find(q=>q.deviceId===R()),H||(K=X.getDefaultAudioOutputDeviceId(j),H=j.find(q=>q.deviceId===K)),z.abrupt("return",H);case 14:case"end":return z.stop()}},v,null,[[0,6]])})),X};r.default=A}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(6)),l=a(i(1)),s=a(i(17)),d=a(i(29)),c=a(i(561));const u=(0,l.default)("GlobalExceptionHandler"),h=(0,s.default)(),f=function(b,p){Error.call(this),this.code=b,this.message=p};f.prototype=Object.create(Error.prototype),f.prototype.constructor=f,(0,o.default)(f),f.getTitleByCode=function(A){return c.default[+A]},f.handleJsException=A=>{let b=A.error,p=A.errorMsg,y=A.code,m=A.target,F=A.analytics;if(!m)throw new Error("handleJsException requires target");const R=()=>y!==void 0?y:b&&b.code,C=()=>p!==void 0?p:b&&b.message,B=f.getTitleByCode(R());u.error(`OT.exception :: title: ${B} (${R()}) msg: ${C()}`);try{const N={partnerId:m.session?m.session.apiKey:m.apiKey,sessionId:m.session?m.session.sessionId:m.sessionId};F.logError(R(),"tb.exception",B,{details:C()},N);const S=new h.ExceptionEvent(d.default.EXCEPTION,C(),B,R(),m,m,b);if(b)S.stack=b.stack;else try{throw new Error}catch(X){S.stack=X.stack}f.dispatchEvent(S)}catch(N){u.error(`OT.exception :: Failed to dispatch exception - ${N.toString()}`)}};var g=f;r.default=g},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(262)),s={publishers:new o.default("guid"),subscribers:new o.default("widgetId"),sessions:new o.default};r.default=s},function(n,r,i){r.__esModule=!0,r.MEDIUM=r.LOW=r.CongestionLevels=r.CRITICAL=void 0;const a=2;r.CRITICAL=a;const o=1;r.MEDIUM=o;const l=0;r.LOW=l;const s={CRITICAL:a,MEDIUM:o,LOW:l};r.CongestionLevels=s},function(n,r,i){var a=i(19),o=i(116);function l(s){return s!=null&&o(s.length)&&!a(s)}n.exports=l},function(n,r){var i=n.exports={},a,o;function l(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?a=setTimeout:a=l}catch{a=l}try{typeof clearTimeout=="function"?o=clearTimeout:o=s}catch{o=s}})();function d(m){if(a===setTimeout)return setTimeout(m,0);if((a===l||!a)&&setTimeout)return a=setTimeout,setTimeout(m,0);try{return a(m,0)}catch{try{return a.call(null,m,0)}catch{return a.call(this,m,0)}}}function c(m){if(o===clearTimeout)return clearTimeout(m);if((o===s||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(m);try{return o(m)}catch{try{return o.call(null,m)}catch{return o.call(this,m)}}}var u=[],h=!1,f,g=-1;function A(){!h||!f||(h=!1,f.length?u=f.concat(u):g=-1,u.length&&b())}function b(){if(!h){var m=d(A);h=!0;for(var F=u.length;F;){for(f=u,u=[];++g<F;)f&&f[g].run();g=-1,F=u.length}f=null,h=!1,c(m)}}i.nextTick=function(m){var F=new Array(arguments.length-1);if(arguments.length>1)for(var R=1;R<arguments.length;R++)F[R-1]=arguments[R];u.push(new p(m,F)),u.length===1&&!h&&d(b)};function p(m,F){this.fun=m,this.array=F}p.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={};function y(){}i.on=y,i.addListener=y,i.once=y,i.off=y,i.removeListener=y,i.removeAllListeners=y,i.emit=y,i.prependListener=y,i.prependOnceListener=y,i.listeners=function(m){return[]},i.binding=function(m){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(m){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(n,r){function i(a,o){a.prototype=Object.create(o.prototype),a.prototype.constructor=a,a.__proto__=o}n.exports=i},function(n,r,i){r.__esModule=!0,r.default=void 0;var a={ACTIVE:"active",INACTIVE:"inactive",UNKNOWN:"unknown",PER_SESSION:"perSession",PER_STREAM:"perStream",EXCEPTION:"exception",ISSUE_REPORTED:"issueReported",SESSION_CONNECTED:"sessionConnected",SESSION_RECONNECTING:"sessionReconnecting",SESSION_RECONNECTED:"sessionReconnected",SESSION_DISCONNECTED:"sessionDisconnected",STREAM_CREATED:"streamCreated",STREAM_DESTROYED:"streamDestroyed",CONNECTION_CREATED:"connectionCreated",CONNECTION_DESTROYED:"connectionDestroyed",SIGNAL:"signal",STREAM_PROPERTY_CHANGED:"streamPropertyChanged",MICROPHONE_LEVEL_CHANGED:"microphoneLevelChanged",RESIZE:"resize",SETTINGS_BUTTON_CLICK:"settingsButtonClick",DEVICE_INACTIVE:"deviceInactive",INVALID_DEVICE_NAME:"invalidDeviceName",ACCESS_ALLOWED:"accessAllowed",ACCESS_DENIED:"accessDenied",ACCESS_DIALOG_OPENED:"accessDialogOpened",ACCESS_DIALOG_CLOSED:"accessDialogClosed",AUDIO_INPUT_DEVICE_CHANGED:"audioInputDeviceChanged",ECHO_CANCELLATION_MODE_CHANGED:"echoCancellationModeChanged",MEDIA_STOPPED:"mediaStopped",PUBLISHER_DESTROYED:"destroyed",MUTE_FORCED:"muteForced",SUBSCRIBER_DESTROYED:"destroyed",SUBSCRIBER_CONNECTED:"connected",SUBSCRIBER_DISCONNECTED:"disconnected",SUBSCRIBER_CAPTION_RECEIVED:"captionReceived",DEVICES_DETECTED:"devicesDetected",DEVICES_SELECTED:"devicesSelected",CLOSE_BUTTON_CLICK:"closeButtonClick",MICLEVEL:"microphoneActivityLevel",MICGAINCHANGED:"microphoneGainChanged",ENV_LOADED:"envLoaded",ENV_UNLOADED:"envUnloaded",AUDIO_LEVEL_UPDATED:"audioLevelUpdated",VIDEO_ELEMENT_CREATED:"videoElementCreated"};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(31)),d=a(i(6)),c=a(i(263)),u=a(i(259)),h=a(i(148)),f=a(i(37)),g=a(i(562)),A=a(i(564)),b=a(i(567));const p=(0,f.default)(),y="2";let m=function(){function F(C){let B=C===void 0?{}:C,N=B.staticConfig,S=N===void 0?p.onlyLocal():N,X=B.sessionInfo,J=X===void 0?new h.default:X,E=B.ajax,v=B.queue,j=B.getUserAgentClientHintData,H=j===void 0?b.default:j,K=B.userAgentData,Fe=K===void 0?typeof navigator<"u"&&navigator.userAgentData:K;this.getTurnServerName=z=>{let q,Ae;return!z||typeof z!="object"?q:((Array.isArray(z)?z:[z]).forEach(pe=>{const We=pe.urls||pe.url;(Array.isArray(We)?We:[We]).forEach($e=>{const Rt=$e.indexOf(":")+1,Be=$e.lastIndexOf(":");$e.includes("turns")?Ae=$e.substring(Rt,Be):q=$e.substring(Rt,Be)})}),Ae||q)},this.ajax=E,this.queue=v,this.sessionInfo=J,this.getUserAgentClientHintData=H,this.userAgentData=Fe,this.staticConfig=S}var R=F.prototype;return R._getCachedUserAgentData=function(){var C=(0,l.default)(o.default.mark(function N(){return o.default.wrap(function(X){for(;;)switch(X.prev=X.next){case 0:if(this.cachedUserAgentData){X.next=4;break}return X.next=3,this.getUserAgentClientHintData(this.userAgentData);case 3:this.cachedUserAgentData=X.sent;case 4:return X.abrupt("return",this.cachedUserAgentData);case 5:case"end":return X.stop()}},N,this)}));function B(){return C.apply(this,arguments)}return B}(),R.commonQoSFields=function(){const B=this._analytics.proxyUrl,N=this.sessionInfo.messagingURL;return{clientVersion:this.staticConfig.clientVersion,buildHash:this.staticConfig.buildHash,source:(typeof window!==void 0?window:yr).location&&(typeof window!==void 0?window:yr).location.href,logVersion:y,apiServer:this.staticConfig.apiUrl,clientSystemTime:new Date().getTime(),sessionId:this.sessionInfo.sessionId,mediaServerName:this.sessionInfo.mediaServerName,relayServer:this.getTurnServerName(this.sessionInfo.iceServers),p2p:this.sessionInfo.p2pEnabled,messagingServer:this.sessionInfo.messagingServer,messagingUrl:(0,g.default)(B,N),version:this.staticConfig.version,partnerId:this.sessionInfo.partnerId}},R._getCommonDataFields=function(){var C=(0,l.default)(o.default.mark(function N(){var S,X;return o.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:return E.next=2,c.default.getAsync();case 2:return S=E.sent,E.next=5,this._getCachedUserAgentData();case 5:return X=E.sent,E.abrupt("return",Object.assign({guid:S},this.commonQoSFields(),X));case 7:case"end":return E.stop()}},N,this)}));function B(){return C.apply(this,arguments)}return B}(),R.logError=function(B,N,S,X,J){J===void 0&&(J={}),this._getCommonDataFields().then(E=>{const v=[B,N,S,X,Object.assign({},E,J)];F.emit("logError",...v),this._analytics.logError(...v)})},R.logEvent=function(B,N,S){B===void 0&&(B={}),this._getCommonDataFields().then(X=>{const J=Object.assign({},X,B);F.emit("logEvent",J),this._analytics.logEvent(J,!1,N,S)})},R.logQOS=function(B){B===void 0&&(B={}),this._getCommonDataFields().then(N=>{const S=Object.assign({duration:0},N,B);(0,A.default)(S),F.emit("logQOS",S),this._analytics.logQOS(S)})},(0,s.default)(F,[{key:"staticConfig",get:function(){return this._staticConfig},set:function(B){this._staticConfig=B,this._analytics=new u.default({loggingUrl:this.staticConfig.loggingUrl,ajax:this.ajax,queue:this.queue})}}]),F}();r.default=m,(0,d.default)(m),n.exports=m},function(n,r){function i(o,l){for(var s=0;s<l.length;s++){var d=l[s];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(o,d.key,d)}}function a(o,l,s){return l&&i(o.prototype,l),s&&i(o,s),o}n.exports=a},function(n,r,i){var a=!0,o=!0;function l(d,c,u){var h=d.match(c);return h&&h.length>=u&&parseInt(h[u],10)}function s(d,c,u){if(d.RTCPeerConnection){var h=d.RTCPeerConnection.prototype,f=h.addEventListener;h.addEventListener=function(A,b){if(A!==c)return f.apply(this,arguments);var p=function(y){var m=u(y);m&&b(m)};return this._eventMap=this._eventMap||{},this._eventMap[b]=p,f.apply(this,[A,p])};var g=h.removeEventListener;h.removeEventListener=function(A,b){if(A!==c||!this._eventMap||!this._eventMap[b])return g.apply(this,arguments);var p=this._eventMap[b];return delete this._eventMap[b],g.apply(this,[A,p])},Object.defineProperty(h,"on"+c,{get:function(){return this["_on"+c]},set:function(A){this["_on"+c]&&(this.removeEventListener(c,this["_on"+c]),delete this["_on"+c]),A&&this.addEventListener(c,this["_on"+c]=A)},enumerable:!0,configurable:!0})}}n.exports={extractVersion:l,wrapPeerConnectionEvent:s,disableLog:function(d){return typeof d!="boolean"?new Error("Argument type: "+typeof d+". Please use a boolean."):(a=d,d?"adapter.js logging disabled":"adapter.js logging enabled")},disableWarnings:function(d){return typeof d!="boolean"?new Error("Argument type: "+typeof d+". Please use a boolean."):(o=!d,"adapter.js deprecation warnings "+(d?"disabled":"enabled"))},log:function(){if(typeof window=="object"){if(a)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}},deprecated:function(d,c){o&&console.warn(d+" is deprecated, please use "+c+" instead.")},detectBrowser:function(d){var c=d&&d.navigator,u={};if(u.browser=null,u.version=null,typeof d>"u"||!d.navigator)return u.browser="Not a browser.",u;if(c.mozGetUserMedia)u.browser="firefox",u.version=l(c.userAgent,/Firefox\/(\d+)\./,1);else if(c.webkitGetUserMedia)u.browser="chrome",u.version=l(c.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(c.mediaDevices&&c.userAgent.match(/Edge\/(\d+).(\d+)$/))u.browser="edge",u.version=l(c.userAgent,/Edge\/(\d+).(\d+)$/,2);else if(d.RTCPeerConnection&&c.userAgent.match(/AppleWebKit\/(\d+)\./))u.browser="safari",u.version=l(c.userAgent,/AppleWebKit\/(\d+)\./,1);else return u.browser="Not a supported browser.",u;return u}}},function(n,r,i){var a=i(44),o=i(365),l=i(366),s="[object Null]",d="[object Undefined]",c=a?a.toStringTag:void 0;function u(h){return h==null?h===void 0?d:s:c&&c in Object(h)?o(h):l(h)}n.exports=u},function(n,r,i){var a=i(189),o=i(118),l=i(26);function s(d){return l(d)?a(d):o(d)}n.exports=s},function(n,r,i){var a=i(47);n.exports=function(o){if(!a(o))throw new TypeError("Cannot use null or undefined");return o}},function(n,r,i){var a=i(56),o=i(210),l=i(130),s=i(211),d=i(212),c=n.exports=function(u,h){var f,g,A,b,p;return arguments.length<2||typeof u!="string"?(b=h,h=u,u=null):b=arguments[2],a(u)?(f=d.call(u,"c"),g=d.call(u,"e"),A=d.call(u,"w")):(f=A=!0,g=!1),p={value:h,configurable:f,enumerable:g,writable:A},b?l(s(b),p):p};c.gs=function(u,h,f){var g,A,b,p;return typeof u!="string"?(b=f,f=h,h=u,u=null):b=arguments[3],a(h)?o(h)?a(f)?o(f)||(b=f,f=void 0):f=void 0:(b=h,h=f=void 0):h=void 0,a(u)?(g=d.call(u,"c"),A=d.call(u,"e")):(g=!0,A=!1),p={get:h,set:f,configurable:g,enumerable:A},b?l(s(b),p):p}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(31)),s=o(i(217)),d=o(i(485)),c=o(i(536)),u=o(i(61)),h=o(i(1)),f=o(i(103));const g=(0,h.default)("StaticConfig"),A=(0,u.default)({version:"v2.28.6",buildHash:"83a4557",minimumVersion:{firefox:52,chrome:49},debug:!1,websiteURL:"http://www.tokbox.com",configURL:"https://config.opentok.com",ipWhitelistConfigURL:"",cdnURL:"",loggingURL:"https://hlg.tokbox.com/prod",apiURL:"https://anvil.opentok.com"}),b=(0,c.default)(["apiURL","assetURL","cdnURL","sessionInfoOverrides","loggingURL"]),p={apiUrl:"apiURL",loggingUrl:"loggingURL"},y=(0,d.default)(R=>p[R]);function m(R){let C=R===void 0?{}:R,B=C.axios,N=B===void 0?s.default:B;return function(){X.onlyLocal=function(){const E=(0,u.default)((typeof window!==void 0?window:yr).OTProperties);return new X(Object.assign({},A,b(E)))},X.get=function(E){let v=E.partnerId,j=E.token,H=E.useIpWhitelistConfigUrl,K=E.proxyUrl;return(()=>{const z=this.onlyLocal();if(!z.configUrl)return a.resolve({});if(H===!0&&!z.ipWhitelistConfigUrl)return a.resolve({});let q=H===!0?z.ipWhitelistConfigUrl:z.configUrl;return q=(0,f.default)(q,K),N.get(`${q}/project/${v}/config.json`,{headers:{"X-TB-TOKEN-AUTH":j}}).then(Ae=>Ae.data)})().catch(z=>(g.error("could not reach live config service",z),{})).then(z=>{const q=(0,u.default)((typeof window!==void 0?window:yr).OTProperties),Ae=Object.assign({},A,b(q),y(z));return new X(Ae)})};function X(J){Object.defineProperty(this,"config",{value:Object.freeze((0,u.default)(J))})}return(0,l.default)(X,[{key:"configUrl",get:function(){return this.config.configURL}},{key:"ipWhitelistConfigUrl",get:function(){return this.config.ipWhitelistConfigURL}},{key:"apiUrl",get:function(){return this.config.apiURL}},{key:"loggingUrl",get:function(){return this.config.loggingURL}},{key:"apiEnabled",get:function(){return typeof this.config.apiEnabled<"u"?this.config.apiEnabled:!0}},{key:"version",get:function(){return this.config.version}},{key:"clientVersion",get:function(){return`js-${(this.version||"unknown").replace("v","")}`}},{key:"buildHash",get:function(){return this.config.buildHash}},{key:"minimumVersion",get:function(){return this.config.minimumVersion}},{key:"websiteUrl",get:function(){return this.config.websiteURL}},{key:"debug",get:function(){return this.config.debug==="true"||this.config.debug===!0}},{key:"sessionInfoOverrides",get:function(){return this.config.sessionInfoOverrides}},{key:"cdnUrl",get:function(){return this.config.cdnURL||`${(typeof window!==void 0?window:yr).location.protocol}//${(typeof window!==void 0?window:yr).location.host}`}},{key:"assetUrl",get:function(){return this.config.assetURL||`${this.cdnUrl}/webrtc/${this.version}`}}]),X}()}var F=m;r.default=F}).call(this,i(2))},function(n,r,i){var a=i(514),o=i(522),l=i(90),s=i(13),d=i(527);function c(u){return typeof u=="function"?u:u==null?l:typeof u=="object"?s(u)?o(u[0],u[1]):a(u):d(u)}n.exports=c},function(n,r){function i(a,o){for(var l=-1,s=a==null?0:a.length,d=Array(s);++l<s;)d[l]=o(a[l],l,a);return d}n.exports=i},function(n,r,i){var a=i(537),o=i(140),l=o(function(s,d){return s==null?{}:a(s,d)});n.exports=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(7));function l(s,d){let c;const u=d||{};s.setDisplayMode=function(h){const f=h||"auto";c!==f&&(o.default.removeClass(this.domElement,`OT_mode-${c}`),o.default.addClass(this.domElement,`OT_mode-${f}`),c=f)},s.getDisplayMode=function(){return c},s.showAfterLoading=function(){o.default.removeClass(this.domElement,"OT_hide-forced")},s.hideWhileLoading=function(){o.default.addClass(this.domElement,"OT_hide-forced")},s.destroy=function(){return u.onDestroy&&u.onDestroy(this.domElement),this.domElement&&o.default.removeElement(this.domElement),s},s.appendTo=function(h){return this.domElement=o.default.createElement(u.nodeName||"div",u.htmlAttributes,u.htmlContent),u.onCreate&&u.onCreate(this.domElement),s.setDisplayMode(u.mode),u.mode==="auto"&&(o.default.addClass(s.domElement,"OT_mode-on-hold"),setTimeout(()=>{o.default.removeClass(s.domElement,"OT_mode-on-hold")},2e3)),h.appendChild(this.domElement),s}}},function(n,r,i){var a=i(79),o=4;function l(s){return a(s,o)}n.exports=l},function(n,r,i){var a=i(364),o=i(369);function l(s,d){var c=o(s,d);return a(c)?c:void 0}n.exports=l},function(n,r,i){var a=i(15),o=a.Symbol;n.exports=o},function(n,r,i){var a=i(85),o=i(63);function l(s,d,c,u){var h=!c;c||(c={});for(var f=-1,g=d.length;++f<g;){var A=d[f],b=u?u(c[A],s[A],A,c,s):void 0;b===void 0&&(b=s[A]),h?o(c,A,b):a(c,A,b)}return c}n.exports=l},function(n,r,i){var a=i(393),o=i(113),l=i(394),s=i(197),d=i(198),c=i(33),u=i(186),h="[object Map]",f="[object Object]",g="[object Promise]",A="[object Set]",b="[object WeakMap]",p="[object DataView]",y=u(a),m=u(o),F=u(l),R=u(s),C=u(d),B=c;(a&&B(new a(new ArrayBuffer(1)))!=p||o&&B(new o)!=h||l&&B(l.resolve())!=g||s&&B(new s)!=A||d&&B(new d)!=b)&&(B=function(N){var S=c(N),X=S==f?N.constructor:void 0,J=X?u(X):"";if(J)switch(J){case y:return p;case m:return h;case F:return g;case R:return A;case C:return b}return S}),n.exports=B},function(n,r,i){var a=i(414)();n.exports=function(o){return o!==a&&o!==null}},function(n,r,i){n.exports=i(428)()?i(93).Symbol:i(431)},function(n,r,i){var a=i(70);function o(l){if(typeof l=="string"||a(l))return l;var s=l+"";return s=="0"&&1/l==-1/0?"-0":s}n.exports=o},function(n,r,i){r.__esModule=!0,r.default=o;const a=(typeof window!==void 0?window:yr).performance||{};function o(){return a.now?a.timing.navigationStart+a.now():Date.now()}},function(n,r,i){var a=i(603);function o(l){return a(2,l)}n.exports=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(51)),l=a(i(1)),s=a(i(611)),d=a(i(37)),c=a(i(3)),u=a(i(612));const h=(0,d.default)(),f=function(p){p===void 0&&(p={});const y=p.env||c.default,m=p.hasGetUserMediaCapability||s.default,F=p.hasPeerConnectionCapability||u.default,R=p.logging||(0,l.default)("hasOpenTokSupport"),N=((p.staticConfig||h.onlyLocal()).minimumVersion||{})[y.name.toLowerCase()];return N&&N>y.version?(R.debug("Support for",y.name,"is disabled because we require",N,"but this is",y.version),!1):y.name==="Node"?!0:m()&&F()},g=(0,o.default)(()=>f());var A={check:f,once:g};r.default=A},function(n,r){function i(a,o){return a===o||a!==a&&o!==o}n.exports=i},function(n,r,i){var a=i(189),o=i(388),l=i(26);function s(d){return l(d)?a(d,!0):o(d)}n.exports=s},function(n,r){function i(a,o){var l=-1,s=a.length;for(o||(o=Array(s));++l<s;)o[l]=a[l];return o}n.exports=i},function(n,r,i){var a=void 0;n.exports=function(o){return o!==a&&o!==null}},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){const l=[];return{on(s,d){for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h<c;h++)u[h-2]=arguments[h];if(l.push({eventName:s,handler:d,args:u}),o.on)o.on(s,d);else if(o.addEventListener)o.addEventListener(s,d,...u);else throw new Error("Object does not support events",o)},off(s,d){if(o.off)o.off(s,d);else if(o.removeEventListener){for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h<c;h++)u[h-2]=arguments[h];o.removeEventListener(s,d,...u)}else throw new Error("Object does not support events",o)},once(s,d){for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h<c;h++)u[h-2]=arguments[h];l.push({eventName:s,handler:d,args:u}),o.once(s,d)},removeAll(){l.forEach(s=>{let d=s.eventName,c=s.handler,u=s.args;this.off(d,c,...u)}),l.splice(0,l.length)}}}},function(n,r,i){var a=i(101);function o(l,s,d){var c=l==null?void 0:a(l,s);return c===void 0?d:c}n.exports=o},function(n,r,i){var a=i(13),o=i(139),l=i(246),s=i(60);function d(c,u){return a(c)?c:o(c,u)?[c]:l(s(c))}n.exports=d},function(n,r,i){var a=i(524);function o(l){return l==null?"":a(l)}n.exports=o},function(n,r,i){var a=i(79),o=1,l=4;function s(d){return a(d,o|l)}n.exports=s},function(n,r,i){var a=i(626),o=i(290),l=a(o);n.exports=l},function(n,r,i){var a=i(187);function o(l,s,d){s=="__proto__"&&a?a(l,s,{configurable:!0,enumerable:!0,value:d,writable:!0}):l[s]=d}n.exports=o},function(n,r,i){var a=i(383),o=i(20),l=Object.prototype,s=l.hasOwnProperty,d=l.propertyIsEnumerable,c=a(function(){return arguments}())?a:function(u){return o(u)&&s.call(u,"callee")&&!d.call(u,"callee")};n.exports=c},function(n,r,i){(function(a){var o=i(15),l=i(384),s=r&&!r.nodeType&&r,d=s&&typeof a=="object"&&a&&!a.nodeType&&a,c=d&&d.exports===s,u=c?o.Buffer:void 0,h=u?u.isBuffer:void 0,f=h||l;a.exports=f}).call(this,i(86)(n))},function(n,r){var i=9007199254740991,a=/^(?:0|[1-9]\d*)$/;function o(l,s){var d=typeof l;return s=s??i,!!s&&(d=="number"||d!="symbol"&&a.test(l))&&l>-1&&l%1==0&&l<s}n.exports=o},function(n,r){function i(a){return function(o){return a(o)}}n.exports=i},function(n,r){var i=Object.prototype;function a(o){var l=o&&o.constructor,s=typeof l=="function"&&l.prototype||i;return o===s}n.exports=a},function(n,r,i){n.exports=function(a){if(typeof a!="function")throw new TypeError(a+" is not a function");return a}},function(n,r,i){var a=i(33),o=i(20),l="[object Symbol]";function s(d){return typeof d=="symbol"||o(d)&&a(d)==l}n.exports=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.getProxyUrl=r.errorMessages=r.clearProxyUrl=void 0,r.setProxyUrl=g;var o=a(i(10)),l=a(i(23)),s=a(i(24)),d=a(i(14)),c=a(i(8)),u=a(i(72));let h;const f={SET_PROXY_URL_TIMING_ERROR:"The proxyUrl was set after a session or publisher was created.",PROXY_URL_ALREADY_SET_ERROR:"The proxyUrl has already been set. Setting it again will not have any effect."};r.errorMessages=f;function g(p){const y=i(30),m=u.default,F=new y,R=s.default.sessions.length()>0,C=s.default.publishers.length()>0;let B;if(R){const S=s.default.sessions.find(X=>X.currentState==="connected");B=S?S.sessionId:s.default.sessions.find().sessionId}else B="";const N={sessionId:B,apiKey:m.value};if(C||R){const S=(0,d.default)()(c.default.SET_PROXY_URL_TIMING_ERROR,new Error(f.SET_PROXY_URL_TIMING_ERROR),o.default.SET_PROXY_URL_TIMING_ERROR);l.default.handleJsException({error:S,target:N,analytics:F})}else if(h){const S=(0,d.default)()(c.default.PROXY_URL_ALREADY_SET_ERROR,new Error(f.PROXY_URL_ALREADY_SET_ERROR),o.default.PROXY_URL_ALREADY_SET_ERROR);l.default.handleJsException({error:S,target:N,analytics:F})}else h=p}const A=()=>h;r.getProxyUrl=A;const b=()=>{h=null};r.clearProxyUrl=b},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(7)),l;let s;if((o.default==null||(l=o.default.env)==null?void 0:l.name)==="Node")s="";else{var d,c;const h=(d=Array.prototype.slice.call(document.getElementsByTagName("script")))==null||(c=d.pop())==null?void 0:c.getAttribute("src");s=(h&&h.match(/[?&]apikey=([^&]+)/i)||[])[1]||""}var u={value:s};r.default=u},function(n,r,i){r.__esModule=!0,r.default=a;function a(o,l,s){s===void 0&&(s=1/0);let d=null,c=!1,u=1;const h=1e3/l,f=()=>{!c||u>s||(u+=1,o(),d=setTimeout(f,h))};this.start=()=>{c||(c=!0,setTimeout(f,h))},this.stop=()=>{(typeof window!==void 0?window:yr).clearTimeout(d),c=!1}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=at;var l=o(i(4)),s=o(i(5)),d=o(i(160)),c=o(i(9)),u=o(i(61)),h=o(i(145)),f=o(i(288)),g=o(i(289)),A=o(i(16)),b=o(i(6)),p=o(i(1)),y=o(i(3)),m=o(i(10)),F=o(i(23)),R=o(i(264)),C=o(i(162)),B=o(i(18)),N=o(i(75)),S=o(i(629)),X=o(i(631)),J=o(i(163)),E=o(i(632)),v=o(i(634)),j=o(i(294)),H=o(i(297)),K=o(i(638)),Fe=o(i(639)),z=o(i(641)),q=o(i(643)),Ae=o(i(645)),Ke=o(i(646)),pe=o(i(648)),We=o(i(298)),xe=o(i(652)),$e=o(i(8)),Rt=o(i(653)),Be=o(i(50)),qe=o(i(292));function at(Bt){Bt===void 0&&(Bt={});const jt=Bt.hasValidPeerConnection||X.default,Ne=Bt.applySdpTransform||J.default,Je=Bt.createPeerConnection||E.default,ve=Bt.env||y.default,Ye=Bt.sdpTransformDefaults||v.default,it=Bt.getStatsAdapter||j.default,Qt=Bt.getRtcStatsReportAdapter||H.default,_t=Bt.getSynchronizationSources||K.default,Dt=Bt.IceCandidateProcessor||Fe.default,Ee=Bt.logging||p.default,Ge=Bt.offerProcessor||z.default,he=Bt.PeerConnectionChannels||q.default,$=Bt.subscribeProcessor||Ae.default,ie=Ke.default,Ve=Bt.changeMediaDirection||pe.default,_e=Ve.changeMediaDirectionToInactive,we=Ve.changeMediaDirectionToRecvOnly,nt=Bt.Qos||We.default,Gt=Bt.global||(typeof window!==void 0?window:yr),An=Bt.debounce||f.default,Dn=Bt.needsToSwapH264Profiles||xe.default.once,tr=(0,S.default)(),nr=()=>jt(Gt.RTCPeerConnection),zn=Bt.NativeRTCIceCandidate||Gt.RTCIceCandidate,dr=Bt.NativeRTCSessionDescription||Gt.RTCSessionDescription,Dr=Bt.Errors||$e.default,ui=Bt.OTErrorClass||F.default,Pn=Bt.ExceptionCodes||m.default,hr=Bt.hasPictureInPictureBug||Rt.default,xr=1e4,Hi=Da=>{let oi=Da.sendMessage,Ra=Da.logging;const Va={};return fi=>{fi.candidate?(Va[fi.candidate.sdpMid]=fi.candidate.sdpMLineIndex,oi("candidate",{candidate:fi.candidate.candidate,sdpMid:fi.candidate.sdpMid||"",sdpMLineIndex:fi.candidate.sdpMLineIndex||0})):Ra.debug("IceCandidateForwarder: No more ICE candidates.")}},Di=()=>{};return function(oi){oi===void 0&&(oi={});let Ra=!1;const Va=oi,fi=Va.iceConfig,_a=fi===void 0?{servers:[]}:fi,dn=Va.sendMessage,St=Va.isPublisher,mn=Va.offerOverrides,_n=Va.answerOverrides,vr=Va.p2p,ha=Va.codecFlags,Mi=Va.sourceStreamId,Fi=Va.keyStore,In=Va.sFrameClientStore,Fa=Va.isE2ee,Ml=Va.removeUnusedCodecs,hi=Va.sessionId;let ml=oi,$o=ml.logAnalyticsEvent,Qa=$o===void 0?Di:$o,Gl=!1,Gi;const Lt=Dn();let $t=0,At=!1,bt={},zt,Ot;const Ct=new ie(Qa),Kt=(0,C.default)();function cn(Qn,Kn){Ra||["candidate","offer","answer","pranswer"].indexOf(Qn)>-1&&(Ra=(Qn==="candidate"?Kn.candidate:Kn.sdp).indexOf("typ relay")!==-1),dn(Qn,Kn)}const Jn=(0,Be.default)();Qa("createPeerConnection","Attempt");const qt={};qt.id=(0,A.default)();const Mn=Ee(`PeerConnection:${qt.id}`);Mn.debug("construct",{id:qt.id,options:oi});const mr=Ye,Ur=Qn=>_a.transportPolicy==="relay"&&Qn!=null&&Qn.candidate.indexOf("typ relay")===-1,sr=(0,g.default)(oi,["isPublisher","logAnalyticsEvent","offerOverrides","answerOverrides","sendMessage"]);let Nn,Gr,$r,kr,Mr,Ba=[];const Io=(()=>{let Qn=sr.overrideSimulcastEnabled||!1;return{get(){return Qn},set(Kn){const Fr=!!Kn&&sr.capableSimulcastStreams>1;Fr!==Qn&&sr.overrideSimulcastEnabled===void 0&&(Qn=Fr,qt.generateOfferAndSend())}}})(),qo=()=>{qt.iceConnectionStateIsConnected()?Mn.debug("iceRestart is going to wait until we disconnect or negotiationNeeded and then restart ice"):qt.generateOfferAndSend()},Si=(()=>{let Qn=!1;return{get(){return Qn},set(Kn){const Fr=!!Kn;Fr!==Qn&&(Qn=Fr,Qn&&qo())}}})(),Go={clean(){delete this.promise,delete this.resolve,delete this.reject}};Go.promise=new a((Qn,Kn)=>{Go.resolve=Qn,Go.reject=Kn});let ca=new Dt,Za="new";Object.defineProperty(qt,"signalingState",{get(){return Nn.signalingState},set(Qn){return Nn.signalingState=Qn,Qn}}),(0,b.default)(qt),qt.addOptions=Qn=>{Qa=Qn.logAnalyticsEvent},qt.startEncryption=function(){var Qn=(0,s.default)(l.default.mark(function Kn(Fr){var li,ki;return l.default.wrap(function(oa){for(;;)switch(oa.prev=oa.next){case 0:if(Fa){oa.next=2;break}return oa.abrupt("return");case 2:return oa.next=4,tr({sessionId:hi,connectionId:Fr});case 4:return li=oa.sent,oa.next=7,In.createSender(li);case 7:return zt=oa.sent,oa.next=10,Fi.get();case 10:return ki=oa.sent,oa.next=13,zt.setSenderEncryptionKey(ki);case 13:Ot=hl=>{zt.setSenderEncryptionKey(hl)},Fi.on("keyChanged",Ot),Nn.getTransceivers().forEach(function(){var hl=(0,s.default)(l.default.mark(function wa(qa){return l.default.wrap(function(En){for(;;)switch(En.prev=En.next){case 0:return En.next=2,zt.encrypt(li,qa.sender);case 2:case"end":return En.stop()}},wa)}));return function(wa){return hl.apply(this,arguments)}}());case 16:case"end":return oa.stop()}},Kn)}));return function(Kn){return Qn.apply(this,arguments)}}(),qt.once("iceConnected",(0,s.default)(l.default.mark(function Qn(){var Kn,Fr;return l.default.wrap(function(ki){for(;;)switch(ki.prev=ki.next){case 0:Kn="",Fr={pcc:parseInt((0,Be.default)()-Jn,10),hasRelayCandidates:Ra,proxyInfo:Kn},Nn&&Nn.proxyInfo&&(Fr.proxyInfo=Nn.proxyInfo),Qa("createPeerConnection","Success",Fr);case 4:case"end":return ki.stop()}},Qn)}))),qt.startDecryption=function(){var Qn=(0,s.default)(l.default.mark(function Kn(Fr,li){var ki,$a,oa;return l.default.wrap(function(wa){for(;;)switch(wa.prev=wa.next){case 0:if(qt.iceConnectionStateIsConnected()){wa.next=3;break}return qt.once("iceConnected",()=>qt.startDecryption(Fr,li)),wa.abrupt("return");case 3:return wa.next=5,tr({sessionId:hi,connectionId:Fr});case 5:return ki=wa.sent,$a=li.receiver,wa.next=9,ta(ki);case 9:return oa=wa.sent,wa.prev=10,wa.next=13,oa==null?void 0:oa.decrypt(ki,$a);case 13:wa.next=18;break;case 15:wa.prev=15,wa.t0=wa.catch(10),Mn.error(wa.t0);case 18:case"end":return wa.stop()}},Kn,null,[[10,15]])}));return function(Kn,Fr){return Qn.apply(this,arguments)}}(),Go.resolve();const ta=function(){var Qn=(0,s.default)(l.default.mark(function Kn(Fr){return l.default.wrap(function(ki){for(;;)switch(ki.prev=ki.next){case 0:if(!bt[Fr]){ki.next=2;break}return ki.abrupt("return",bt[Fr]);case 2:return bt[Fr]=new a(function(){var $a=(0,s.default)(l.default.mark(function oa(hl){var wa,qa;return l.default.wrap(function(En){for(;;)switch(En.prev=En.next){case 0:return En.next=2,Fi.get();case 2:if(wa=En.sent,qa=In.getReceiver(Fr),qa){En.next=9;break}return En.next=7,In.createReceiver(Fr);case 7:qa=En.sent,qa.addReceiver(Fr);case 9:qa.setReceiverEncryptionKey(Fr,wa),Fi.on("keyChanged",Un=>{qa.setReceiverEncryptionKey(Fr,Un)}),qa.addEventListener("decryptFailed",()=>{qt.trigger("decryptFailed")}),qa.addEventListener("decryptionRestored",()=>{qt.trigger("decryptRestored")}),hl(qa);case 14:case"end":return En.stop()}},oa)}));return function(oa){return $a.apply(this,arguments)}}()),ki.abrupt("return",bt[Fr]);case 4:case"end":return ki.stop()}},Kn)}));return function(Fr){return Qn.apply(this,arguments)}}(),bo=Qn=>{if(Mn.debug("internalCreatePeerConnection: called"),Nn){Mn.debug("internalCreatePeerConnection: resolving synchronously"),Qn.call(null,null,Nn);return}if(Ba.push(Qn),!(Ba.length>1)){if(Mn.debug(`Creating peer connection config "${JSON.stringify(sr)}".`),_a.servers.length===0&&(Mn.error("No ice servers present"),Qa("Error","noIceServers")),_a.transportPolicy==="relay"){const Kn=Fr=>Fr&&Fr.indexOf("turn")===0;_a.servers=_a.servers.map(Fr=>{const li=(0,u.default)(Fr);return Array.isArray(li.urls)||(li.urls=[li.urls]),li.urls=li.urls.filter(Kn),li.urls.length===0?void 0:li}).filter(Fr=>Fr!==void 0)}sr.iceTransportPolicy=_a.transportPolicy,sr.iceServers=_a.servers,Fa&&(sr.forceEncodedVideoInsertableStreams=!0,sr.forceEncodedAudioInsertableStreams=!0,sr.encodedInsertableStreams=!0),nr().then(Kn=>{if(!Kn)throw Mn.error("createPeerConnection: Invalid RTCPeerConnection object"),new Error("Failed to create valid RTCPeerConnection object");return Je({window:Gt,config:sr})}).then(function(){var Kn=(0,s.default)(l.default.mark(function Fr(li){return l.default.wrap(function($a){for(;;)switch($a.prev=$a.next){case 0:Eo(null,li);case 1:case"end":return $a.stop()}},Fr)}));return function(Fr){return Kn.apply(this,arguments)}}(),Kn=>Eo(Kn))}},Eo=(Qn,Kn)=>{if(Qn){Jl({reason:`Failed to create PeerConnection, exception: ${Qn}`,prefix:"NewPeerConnection"}),Ba=[];return}Mn.debug("OT attachEventsToPeerConnection"),Nn=Kn,ca&&ca.setPeerConnection(Kn),Gr=new he(Nn),sr.channels&&Gr.addMany(sr.channels);const Fr=Hi({sendMessage:cn,logging:Mn}),li=wa=>{if(Go.resolve(),Ur(wa.candidate)){Mn.debug("Ignore candidate",wa.candidate.candidate);return}Fr(wa)},ki=function(){var wa=(0,s.default)(l.default.mark(function qa(yn){return l.default.wrap(function(Un){for(;;)switch(Un.prev=Un.next){case 0:Co(yn);case 1:case"end":return Un.stop()}},qa)}));return function(yn){return wa.apply(this,arguments)}}();let $a=Nn.iceConnectionState;const oa=wa=>{Nn?(Mn.debug("iceconnectionstatechange",Nn.iceConnectionState),Nn.iceConnectionState==="connected"?($a==="disconnected"&&qt.clearFailedTimeout(),qt.emit("iceConnected"),Si.set(!1)):Nn.iceConnectionState==="completed"&&ve.isLegacyEdge&&setTimeout(()=>_l.startCollecting(Nn),1e3)):Mn.debug("iceconnectionstatechange on peerConnection that no longer exists",qt);const qa=wa.target.iceConnectionState;qt.trigger("iceConnectionStateChange",qa),Qa("attachEventsToPeerConnection","iceconnectionstatechange",qa),qa==="disconnected"&&(Si.get()?(Mn.debug("Restarting ice!"),qt.generateOfferAndSend()):(0,N.default)()||(Mr=setTimeout(()=>{const yn="failed";Qa("attachEventsToPeerConnection","iceconnectionstatechange",yn),$a=yn,qt.trigger("iceConnectionStateChange",yn)},xr))),$a!=="disconnected"&&qa==="failed"&&Jl({reason:"The stream was unable to connect due to a network error. Make sure your connection isn't blocked by a firewall.",prefix:"ICEWorkflow"}),$a=qa},hl=()=>{Qa("peerConnection:negotiationNeeded","Event"),St&&qt.generateOfferAndSend(),qt.trigger("negotiationNeeded")};Nn.addEventListener("track",ki),Nn.addEventListener("icecandidate",li),Nn.addEventListener("signalingstatechange",so),Nn.addEventListener("negotiationneeded",hl),Nn.addEventListener("iceconnectionstatechange",oa),Kt.add(()=>{Nn&&(Nn.removeEventListener("track",ki),Nn.removeEventListener("icecandidate",li),Nn.removeEventListener("signalingstatechange",so),Nn.removeEventListener("negotiationneeded",hl),Nn.removeEventListener("iceconnectionstatechange",oa))}),jl()},jl=()=>{for(;Ba.length;)Ba.shift().call(null)},So=()=>{ca&&(ca.destroy(),ca=null),Ba=[],_l.stopCollecting(),Kt.releaseAll(),Go.clean(),Nn!==null&&(Nn.destroy&&Nn.destroy(),Nn=null,qt.trigger("close")),qt.off()},so=Qn=>{const Kn=Qn.target.signalingState;if(qt.emit("signalingStateChange",Kn),Kn==="stable"&&qt.emit("signalingStateStable"),Kn&&Kn!==Za)switch(Za=Kn,Mn.debug(`stateChange: ${Za}`),Za){case"closed":So();break}},Ll=Qn=>{Qn.dataChannels=Gr.sampleQos(),qt.trigger("qos",{parsedStats:Qn,simulcastEnabled:Io.get()})},Ko=()=>{let Qn;if(Nn.getRemoteStreams)Qn=Nn.getRemoteStreams();else if(Nn.remoteStreams)Qn=Nn.remoteStreams;else throw new Error("Invalid Peer Connection object implements no method for retrieving remote streams");return Array.prototype.slice.call(Qn)},Co=Qn=>{var Kn;const Fr=Qn.track,li=Qn.transceiver,ki=Qn.stream||((Kn=Qn.streams)==null?void 0:Kn[0]);Qa("createPeerConnection","TrackAdded"),qt.trigger("trackAdded",{stream:ki,track:Fr,transceiver:li})},ti=(Qn,Kn,Fr)=>{Gl=!1,Jl({reason:`PeerConnection.offerProcessor ${Qn}: ${Kn}`,prefix:Fr})},yo=Qn=>{if(Gl){Gi=Qn;return}Gl=!0,Qa("peerConnection:processOffer","Event");const Kn=new dr({type:"offer",sdp:Qn.content.sdp}),Fr=ki=>{Gl=!1,ca&&ca.process(),cn("answer",ki),ve.isLegacyEdge||_l.startCollecting(Nn,St),Gi&&(yo(Gi),Gi=null)},li=ki=>qt.trigger("remoteVideoSupported",ki);bo(()=>{Ge(Nn,Gt.RTCPeerConnection,Gt.RTCSessionDescription,dr,mr,Kn,ha,vr,Fr,ti,li,Lt,Mi)})},ss=Qn=>{Qa("peerConnection:processAnswer","Event");const Kn="Failed to parse SessionDescription. a=extmap-allow-mixed Expects at least 2 fields.",Fr=li=>{typeof li.includes=="function"&&li.includes(Kn)&&(li="SessionDescription issue has been fixed in Chrome 71 and above. Please update your browser."),Jl({reason:`Error while setting RemoteDescription ${li}`,prefix:"SetRemoteDescription"})};if(!Qn.content.sdp){Fr("Weird answer message, no SDP.");return}kr=new dr({type:"answer",sdp:Ne(mr,"remote","answer",(0,c.default)({replaceBaselineProfile:Lt},_n),Qn.content.sdp).local}),(()=>{const li=()=>{Mn.debug("processAnswer: setRemoteDescription Success"),ca&&ca.process()};Nn.setRemoteDescription(kr).then(li).catch(Fr),Ct.setResolved()})(),ve.isLegacyEdge||_l.startCollecting(Nn,St)},Zl=Qn=>{var Kn,Fr;if(((Kn=Nn)==null||(Fr=Kn.signalingState)==null?void 0:Fr.toLowerCase())==="closed")return;Qa("peerConnection:processSubscribe","Event"),Mn.debug("processSubscribe: Sending offer to subscriber.");let li=Io.get()?sr.capableSimulcastStreams:1;Mi==="P2P"&&!vr&&(li=1),bo(()=>{$({peerConnection:Nn,NativeRTCSessionDescription:dr,sdpTransforms:mr,numSimulcastStreams:li,removeVideoOrientation:hr(),offerOverrides:mn,offerConstraints:{iceRestart:Si.get()},replaceBaselineProfile:Lt,removeUnusedCodecs:Ml}).then($a=>{Mn.debug("processSubscribe: got offer, waiting for _readyToCompleteOffer"),$r=$a,Go.promise.then(()=>Qn($r))},$a=>{Jl({reason:`subscribeProcessor ${$a.message}: ${$a.reason}`,prefix:$a.prefix})}),Si.set(!1)})},ll=()=>{typeof Ot=="function"&&Fi.off("keyChanged",Ot),zt=null,bt=null};qt.generateOfferAndSend=()=>{const Qn=Kn=>{Mn.debug("processSubscribe: sending offer"),cn("offer",Kn)};qt.generateOffer(Qn)},qt.generateOffer=An(function(Qn){Qn===void 0&&(Qn=()=>{}),Ct.enqueueOfferAnswer(()=>Zl(Qn))},100);const Jl=Qn=>{let Kn=Qn.reason,Fr=Qn.prefix;Mn.error(Kn,"in state",Nn?{connectionState:Nn.connectionState,iceConnectionState:Nn.iceConnectionState,iceGatheringState:Nn.iceGatheringState,signalingState:Nn.signalingState}:"(none)"),qt.trigger("error",{reason:Kn,prefix:Fr})};qt.addTrack=(Qn,Kn)=>{const Fr=new a((li,ki)=>{bo($a=>{if($a)return ki($a);li()})}).then(()=>{if(Nn.addTrack)return Nn.addTrack(Qn,Kn);const li=Nn.getLocalStreams()[0];if(li===void 0)throw new Error("PeerConnection has no existing streams, cannot addTrack");li.addTrack(Qn),qt.generateOfferAndSend()}).then(()=>new a(li=>{qt.once("signalingStateStable",()=>{li()})}));return(0,d.default)(Fr,15e3,"Renegotiation timed out")};function Hl(Qn){this.track=Qn}qt.setIceConfig=Qn=>{try{ve.isFirefox&&(Qn.certificates=Nn.getConfiguration().certificates),Nn.setConfiguration(Qn)}catch(Kn){throw new R.default(`A peer connection failed to set configuration with ${Kn.message}`,Dr.FAILED_SET_CONFIGURATION)}return Si.set(!0),Nn},qt.removeTrack=Qn=>{const Kn=a.resolve().then(()=>{if(Qn instanceof Hl){Nn.getLocalStreams()[0].removeTrack(Qn.track),qt.generateOfferAndSend();return}return Nn.removeTrack(Qn)}).then(()=>new a(Fr=>{qt.once("signalingStateStable",()=>{Fr()})}));return(0,d.default)(Kn,15e3,"Renegotiation timed out")},qt.addLocalStream=Qn=>new a((Kn,Fr)=>{bo(li=>{if(li){Fr(li);return}try{Qn.getTracks&&Qn.getTracks().forEach(ki=>Nn.addTrack(ki,Qn))}catch(ki){Fr(ki);return}Kn()})}),qt.getLocalStreams=()=>Nn.getLocalStreams(),qt.getSenders=()=>Nn.getSenders?Nn.getSenders():Nn.getLocalStreams()[0].getTracks().map(Qn=>new Hl(Qn)),qt.disconnect=()=>{var Qn;ca&&(ca.destroy(),ca=null),(Qn=Nn)!=null&&Qn.signalingState&&Nn.signalingState.toLowerCase()!=="closed"&&(Nn.close(),ll(),setTimeout(So))},qt.iceRestart=()=>Si.set(!0),qt.clearFailedTimeout=()=>clearTimeout(Mr);const el=Qn=>{const Kn=Qn?_e:we;return new a(li=>{Ct.enqueueOfferAnswer((0,s.default)(l.default.mark(function ki(){return l.default.wrap(function(oa){for(;;)switch(oa.prev=oa.next){case 0:return oa.next=2,Kn(Nn);case 2:Ct.setResolved(),li();case 4:case"end":return oa.stop()}},ki)})))})};qt.changeMediaDirectionToRecvOnly=()=>el(!1),qt.changeMediaDirectionToInactive=()=>el(!0),qt.processMessage=(Qn,Kn)=>{switch(Mn.debug(`processMessage: Received ${Qn} from ${Kn.fromAddress}`,Kn),Mn.debug(Kn),Qn){case"generateoffer":Kn.content&&Kn.content.simulcastEnabled!==void 0&&Io.set(Kn.content.simulcastEnabled),qt.generateOfferAndSend(),li();break;case"offer":yo(Kn),li();break;case"answer":case"pranswer":ss(Kn);break;case"candidate":var Fr=new zn(Kn.content);ca&&ca.addIceCandidate(Fr).catch(ki=>{Mn.warn(`Error while adding ICE candidate: ${JSON.stringify(Fr)}: ${ki.toString()}`)});break;default:Mn.debug(`processMessage: Received an unexpected message of type ${Qn} from ${Kn.fromAddress}: ${JSON.stringify(Kn)}`)}function li(){$t+=1,_l.handleOfferMessageReceived(),$t>1&&(Qa("Renegotiation","Attempt"),At=!0)}return qt};const Ji=Qn=>{const Kn=(Fr,li)=>Fr.mid<li.mid?1:Fr.mid>li.mid?-1:0;return Qn.sort(Kn)},Pr=Qn=>Nn.getTransceivers().filter(Kn=>Qn.includes(Kn.mid));qt.stopTransceivers=Qn=>{const Kn=Pr(Qn);Ji(Kn).forEach(Fr=>Fr.stop())},qt.setTransceiversToInactive=Qn=>{Pr(Qn).forEach(Fr=>{Fr.direction=qe.default.INACTIVE})},qt.remoteStreams=()=>Nn?Ko():[],qt.remoteTracks=()=>Nn?Nn.getReceivers?Array.prototype.slice.apply(Nn.getReceivers()).map(Qn=>Qn.track):Array.prototype.concat.apply([],Ko().map(Qn=>Qn.getTracks())):[],qt.remoteDescription=()=>Nn.remoteDescription,qt.getStats=(Qn,Kn)=>{if(!Nn){const Fr=Pn.PEER_CONNECTION_NOT_CONNECTED;Kn(new R.default(ui.getTitleByCode(Fr),Dr.PEER_CONNECTION_NOT_CONNECTED,{code:Fr}));return}it(Nn,Qn,Kn)},qt.getRtcStatsReport=(Qn,Kn)=>{if(!Nn){const Fr=Pn.PEER_CONNECTION_NOT_CONNECTED;Kn(new R.default(ui.getTitleByCode(Fr),Dr.PEER_CONNECTION_NOT_CONNECTED,{code:Fr}));return}Qt(Nn,Qn,Kn)},qt.getSynchronizationSources=Qn=>{if(!St){if(!Nn){const Kn=Pn.PEER_CONNECTION_NOT_CONNECTED;Qn(new R.default(ui.getTitleByCode(Kn),Dr.PEER_CONNECTION_NOT_CONNECTED,{code:Kn}));return}_t(Nn,Qn)}};const Ys=function Qn(Kn,Fr,li,ki){let $a;const oa=Gr.get(Fr,li);if(!oa){if(Kn>0){setTimeout(Qn.bind(null,Kn-1,Fr,li,ki),200);return}$a=new R.default(`A channel with that label and options could not be found. Label:${Fr}. Options: ${JSON.stringify(li)}`)}ki($a,oa)};qt.getDataChannel=(Qn,Kn,Fr)=>{if(!Nn){Fr(new R.default("Cannot create a DataChannel before there is a connection."));return}Ys(100,Qn,Kn,Fr)},qt.getSourceStreamId=()=>Mi,qt.iceConnectionStateIsConnected=()=>Nn&&["connected","completed"].indexOf(Nn.iceConnectionState)>-1,qt.hasTrack=Qn=>Nn.getSenders().some(Kn=>Kn.track===Qn),qt.findAndReplaceTrack=(Qn,Kn)=>a.resolve().then(()=>{const Fr=Nn.getSenders().filter(li=>li.track===Qn)[0];if(!Fr)return a.resolve();if(typeof Fr.replaceTrack!="function")throw new Error("Sender does not support replaceTrack");return Fr.replaceTrack(Kn)}),qt.hasRelayCandidates=()=>Ra,qt.getNegotiatedCodecs=()=>{if(!Nn.localDescription||!Nn.remoteDescription)return null;const Qn=Kn=>(0,h.default)(B.default.getCodecs(Nn.localDescription.sdp,Kn),B.default.getCodecs(Nn.remoteDescription.sdp,Kn));return{audio:Qn("audio"),video:Qn("video")}},qt.on("signalingStateStable",()=>{At&&(At=!1,Qa("Renegotiation","Success",qt.getNegotiatedCodecs()))}),qt.on("error",Qn=>{let Kn=Qn.prefix;At&&["CreateOffer","SetRemoteDescription"].indexOf(Kn)!==-1&&(At=!1,Qa("Renegotiation","Failure"))}),qt.on("close",()=>{At&&(At=!1,Qa("Renegotiation","Cancel"))});const _l=new nt;return _l.on("stats",Ll),qt}}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3));const l=()=>(o.default.isChrome||o.default.isElectron)&&o.default.version>=90||o.default.isOpera&&o.default.version>=76;var s=()=>!l()&&(o.default.isChrome&&o.default.version>71||o.default.isChromiumEdge&&o.default.version<90||o.default.isOpera&&o.default.version>58);r.default=s},function(n,r,i){r.__esModule=!0,r.default=void 0;var o={ACTIVE_VIDEO:0,ACTIVE_VIDEO_WITH_WARNING:1,SUSPENDED_VIDEO:2};r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(40)),l=a(i(678)),s=a(i(11)),d=a(i(164));const c={};function u(y){return Number(y.framerateMean||y.googFrameRateSent||y.googFrameRateReceived||y.googFrameRateInput||y.googFrameRateOutput||0)}function h(y){return Number(y.framesEncoded||y.framesDecoded)}function f(y,m){if(u(y))return u(y);if(!h(y))return;let F=0;const R=c[y.id]?c[y.id].frames:0,C=c[y.id]?c[y.id].timestamp:m;return F=(0,d.default)({currentStatFrames:h(y),currentTimestamp:y.timestamp,prevStatFrames:R,prevTimestamp:C}),c[y.id]={frames:h(y),timestamp:y.timestamp},F}function g(y,m){if(!m)return{};const F=m.filter(R=>R.id===y.mediaTrackId);return F.length?F[0]:{}}function A(y,m){return"packetsLost"in m?y+m.packetsLost:y}const b={isVideoStat(y,m){const F=g(y,m);return y.kind==="video"&&["outbound-rtp","inbound-rtp"].includes(y.type)||y.mediaType==="video"||"googFrameWidthReceived"in y||"googFrameWidthInput"in y||y.type==="inbound-rtp"&&y.id.indexOf("Video")!==-1||y.type==="inboundrtp"&&F.frameWidth!==0},isAudioStat(y,m){const F=g(y,m);return y.kind==="audio"&&["outbound-rtp","inbound-rtp"].includes(y.type)||y.mediaType==="audio"||"audioInputLevel"in y||"audioOutputLevel"in y||y.type==="inbound-rtp"&&y.id.indexOf("Audio")!==-1||y.type==="inboundrtp"&&F.frameWidth===0},isInboundStat(y){return"bytesReceived"in y||"packetsReceived"in y},isOutboundStat(y){return"bytesSent"in y||"packetsSent"in y},isVideoTrackStat(y){return y.type==="track"&&(y.frameHeight>0||y.frameWidth>0||y.framesCorrupted>0||y.framesDecoded>0||y.framesPerSecond>0||y.framesSent>0||y.framesReceived>0)},isVideoRemoteInboundRtpStat(y){return y.type==="remote-inbound-rtp"&&y.kind==="video"},isAudioRemoteInboundRtpStat(y){return y.type==="remote-inbound-rtp"&&y.kind==="audio"},isVideoInboundRtpStat(y){return y.type==="inbound-rtp"&&y.kind==="video"},parseStatCategory(y){const m={packetsLost:0,packetsReceived:0,bytesReceived:0};return"packetsReceived"in y&&(m.packetsReceived=parseInt(y.packetsReceived,10)),"packetsLost"in y&&(m.packetsLost=parseInt(y.packetsLost,10)),"bytesReceived"in y&&(m.bytesReceived=parseInt(y.bytesReceived,10)),this.isVideoStat(y)&&("framerateMean"in y?m.frameRate=Number(y.framerateMean):"googFrameRateOutput"in y?m.frameRate=Number(y.googFrameRateOutput):"googFrameRateInput"in y&&(m.frameRate=Number(y.googFrameRateInput))),m},getVideoPacketsLost(y){return y.filter(m=>this.isVideoRemoteInboundRtpStat(m,y)).reduce(A,0)},getAudioPacketsLost(y){return y.filter(m=>this.isAudioRemoteInboundRtpStat(m,y)).reduce(A,0)},normalizeTimestamp(y,m){return m===void 0&&(m=Date.now()),(0,s.default)(y)&&"getTime"in y?y.getTime():Math.abs(y/(1e3*m)-1)<.05?y/1e3:y},normalizeStats(y,m,F){m===void 0&&(m=!0);const R=y.filter(H=>b.isVideoStat(H,y)).filter(H=>b.isInboundStat(H)===m),C=y.filter(H=>this.isAudioStat(H,y)).filter(H=>this.isInboundStat(H)===m)[0],B=R[0];if(!C&&!B)throw new Error("could not find stats for either audio or video");const N=b.normalizeTimestamp(B?B.timestamp:C.timestamp),S={timestamp:N};B&&!m&&B.packetsLost===void 0&&(B.packetsLost=this.getVideoPacketsLost(y)),C&&!m&&C.packetsLost===void 0&&(C.packetsLost=this.getAudioPacketsLost(y));const X=["packetsSent","packetsLost","bytesSent"],v=m?H=>(0,o.default)(H,["packetsReceived","packetsLost","bytesReceived"]):H=>(0,o.default)(H,X),j=H=>{const K=["framerateMean","googFrameRateSent","googFrameRateReceived","googFrameRateInput","googFrameRateOutput","framesEncoded","framesDecoded"],Fe=X.concat(K),z={timestamp:N,id:B.id};return Fe.forEach(q=>{z[q]=H.map(Ae=>Number(Ae[q]||0)).reduce((Ae,Ke)=>Ae+Ke,0)}),z};if(R&&R.length>0){const H=j(R);S.video=Object.assign({frameRate:f(H,F)},(0,l.default)(v(H),Number))}return C&&(S.audio=(0,l.default)(v(C),Number)),S}};var p=b;r.default=p},function(n,r,i){r.__esModule=!0,r.messages=r.default=r.codes=void 0;const a={1e3:"The connection successfully completed the purpose for which it was created.",1001:"The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.",1002:"The endpoint is terminating the connection due to a protocol error. (CLOSE_PROTOCOL_ERROR)",1003:"The connection is being terminated because the endpoint has indicated that reconnections are not available. (CLOSE_UNSUPPORTED)",1005:"Indicates that no status code was provided even though one was expected. (CLOSE_NO_STATUS)",1006:"Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected. (CLOSE_ABNORMAL)",1007:"Indicates that an endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 [RFC3629] data within a text message)",1008:"Indicates that an endpoint is terminating the connection because it has received a message that violates its policy. This is a generic status code that can be returned when there is no other more suitable status code (e.g., 1003 or 1009) or if there is a need to hide specific details about the policy",1009:"Indicates that an endpoint is terminating the connection because it has received a message that is too big for it to process (CLOSE_TOO_LARGE)",1011:"Indicates that a server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request",4001:"Connectivity loss was detected as it was too long since the socket received the last PONG message",4010:"Timed out while waiting for the Rumor socket to connect.",4020:"Error code unavailable.",4030:"Exception was thrown during Rumor connection, possibly because of a blocked port."};r.messages=a;const o={CLOSE_NORMAL:1e3,CLOSE_GOING_AWAY:1001,CLOSE_PROTOCOL_ERROR:1002,CLOSE_UNSUPPORTED:1003,CLOSE_NO_STATUS:1005,CLOSE_ABNORMAL:1006,CLOSE_INCONSISTENT_DATA:1007,CLOSE_POLICY_VIOLATION:1008,CLOSE_TOO_LARGE:1009,CLOSE_UNEXPECTED_CONDITION:1011,CLOSE_CONNECTIVITY_LOSS:4001,CLOSE_TIMEOUT:4010,CLOSE_FALLBACK_CODE:4020,CLOSE_CONNECT_EXCEPTION:4030,ALREADY_CONNECTED_CONNECTING:null};r.codes=o;var l={messages:a,codes:o};r.default=l},function(n,r,i){var a=i(80),o=i(115),l=i(85),s=i(188),d=i(387),c=i(191),u=i(55),h=i(390),f=i(392),g=i(194),A=i(196),b=i(46),p=i(395),y=i(396),m=i(201),F=i(13),R=i(65),C=i(400),B=i(11),N=i(402),S=i(34),X=i(54),J=1,E=2,v=4,j="[object Arguments]",H="[object Array]",K="[object Boolean]",Fe="[object Date]",z="[object Error]",q="[object Function]",Ae="[object GeneratorFunction]",Ke="[object Map]",pe="[object Number]",We="[object Object]",xe="[object RegExp]",$e="[object Set]",Rt="[object String]",Be="[object Symbol]",qe="[object WeakMap]",at="[object ArrayBuffer]",Bt="[object DataView]",jt="[object Float32Array]",Ne="[object Float64Array]",Je="[object Int8Array]",ve="[object Int16Array]",Ye="[object Int32Array]",it="[object Uint8Array]",Qt="[object Uint8ClampedArray]",_t="[object Uint16Array]",Dt="[object Uint32Array]",Ee={};Ee[j]=Ee[H]=Ee[at]=Ee[Bt]=Ee[K]=Ee[Fe]=Ee[jt]=Ee[Ne]=Ee[Je]=Ee[ve]=Ee[Ye]=Ee[Ke]=Ee[pe]=Ee[We]=Ee[xe]=Ee[$e]=Ee[Rt]=Ee[Be]=Ee[it]=Ee[Qt]=Ee[_t]=Ee[Dt]=!0,Ee[z]=Ee[q]=Ee[qe]=!1;function Ge(he,$,ie,Ve,_e,we){var nt,Gt=$&J,An=$&E,Dn=$&v;if(ie&&(nt=_e?ie(he,Ve,_e,we):ie(he)),nt!==void 0)return nt;if(!B(he))return he;var tr=F(he);if(tr){if(nt=p(he),!Gt)return u(he,nt)}else{var nr=b(he),zn=nr==q||nr==Ae;if(R(he))return c(he,Gt);if(nr==We||nr==j||zn&&!_e){if(nt=An||zn?{}:m(he),!Gt)return An?f(he,d(nt,he)):h(he,s(nt,he))}else{if(!Ee[nr])return _e?he:{};nt=y(he,nr,Gt)}}we||(we=new a);var dr=we.get(he);if(dr)return dr;we.set(he,nt),N(he)?he.forEach(function(Pn){nt.add(Ge(Pn,$,ie,Pn,he,we))}):C(he)&&he.forEach(function(Pn,hr){nt.set(hr,Ge(Pn,$,ie,hr,he,we))});var Dr=Dn?An?A:g:An?X:S,ui=tr?void 0:Dr(he);return o(ui||he,function(Pn,hr){ui&&(hr=Pn,Pn=he[hr]),l(nt,hr,Ge(Pn,$,ie,hr,he,we))}),nt}n.exports=Ge},function(n,r,i){var a=i(81),o=i(359),l=i(360),s=i(361),d=i(362),c=i(363);function u(h){var f=this.__data__=new a(h);this.size=f.size}u.prototype.clear=o,u.prototype.delete=l,u.prototype.get=s,u.prototype.has=d,u.prototype.set=c,n.exports=u},function(n,r,i){var a=i(354),o=i(355),l=i(356),s=i(357),d=i(358);function c(u){var h=-1,f=u==null?0:u.length;for(this.clear();++h<f;){var g=u[h];this.set(g[0],g[1])}}c.prototype.clear=a,c.prototype.delete=o,c.prototype.get=l,c.prototype.has=s,c.prototype.set=d,n.exports=c},function(n,r,i){var a=i(53);function o(l,s){for(var d=l.length;d--;)if(a(l[d][0],s))return d;return-1}n.exports=o},function(n,r,i){var a=i(43),o=a(Object,"create");n.exports=o},function(n,r,i){var a=i(378);function o(l,s){var d=l.__data__;return a(s)?d[typeof s=="string"?"string":"hash"]:d.map}n.exports=o},function(n,r,i){var a=i(63),o=i(53),l=Object.prototype,s=l.hasOwnProperty;function d(c,u,h){var f=c[u];(!(s.call(c,u)&&o(f,h))||h===void 0&&!(u in c))&&a(c,u,h)}n.exports=d},function(n,r){n.exports=function(i){return i.webpackPolyfill||(i.deprecate=function(){},i.paths=[],i.children||(i.children=[]),Object.defineProperty(i,"loaded",{enumerable:!0,get:function(){return i.l}}),Object.defineProperty(i,"id",{enumerable:!0,get:function(){return i.i}}),i.webpackPolyfill=1),i}},function(n,r,i){var a=i(385),o=i(67),l=i(117),s=l&&l.isTypedArray,d=s?o(s):a;n.exports=d},function(n,r,i){var a=i(11),o=Object.create,l=function(){function s(){}return function(d){if(!a(d))return{};if(o)return o(d);s.prototype=d;var c=new s;return s.prototype=void 0,c}}();n.exports=l},function(n,r,i){var a=i(90),o=i(204),l=i(124);function s(d,c){return l(o(d,c,a),d+"")}n.exports=s},function(n,r){function i(a){return a}n.exports=i},function(n,r,i){var a=Object.prototype.toString,o=a.call(function(){return arguments}());n.exports=function(l){return a.call(l)===o}},function(n,r,i){var a=Object.prototype.toString,o=a.call("");n.exports=function(l){return typeof l=="string"||l&&typeof l=="object"&&(l instanceof String||a.call(l)===o)||!1}},function(n,r,i){n.exports=i(429)()?globalThis:i(430)},function(n,r,i){(function(a){r.__esModule=!0,r.default=o;function o(l){return new a(s=>setTimeout(s,l))}}).call(this,i(2))},function(n,r,i){var a=i(88),o=i(11);function l(s){return function(){var d=arguments;switch(d.length){case 0:return new s;case 1:return new s(d[0]);case 2:return new s(d[0],d[1]);case 3:return new s(d[0],d[1],d[2]);case 4:return new s(d[0],d[1],d[2],d[3]);case 5:return new s(d[0],d[1],d[2],d[3],d[4]);case 6:return new s(d[0],d[1],d[2],d[3],d[4],d[5]);case 7:return new s(d[0],d[1],d[2],d[3],d[4],d[5],d[6])}var c=a(s.prototype),u=s.apply(c,d);return o(u)?u:c}}n.exports=l},function(n,r,i){var a=i(501);function o(l,s){var d=l==null?0:l.length;return!!d&&a(l,s,0)>-1}n.exports=o},function(n,r,i){var a=i(507);function o(l){var s=a(l),d=s%1;return s===s?d?s-d:s:0}n.exports=o},function(n,r,i){var a=i(114),o=i(517),l=i(518);function s(d){var c=-1,u=d==null?0:d.length;for(this.__data__=new a;++c<u;)this.add(d[c])}s.prototype.add=s.prototype.push=o,s.prototype.has=l,n.exports=s},function(n,r){function i(a,o){return a.has(o)}n.exports=i},function(n,r){function i(a){var o=-1,l=Array(a.size);return a.forEach(function(s){l[++o]=s}),l}n.exports=i},function(n,r,i){var a=i(59),o=i(49);function l(s,d){d=a(d,s);for(var c=0,u=d.length;s!=null&&c<u;)s=s[o(d[c++])];return c&&c==u?s:void 0}n.exports=l},function(n,r,i){var a=i(249),o=i(34);function l(s,d){return s&&a(s,d,o)}n.exports=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(250));const l=c=>c.replace(/\/$/,"");var d=(c,u)=>{if(!u)return c;const h=o.default.parse(u),f=o.default.parse(c);if(!h.protocol||!f.protocol)return c;const g=h.protocol.match(/^https/),b=(f.protocol.match(/^ws/i)?"ws":"http")+(g?"s":""),p=l(`${b}://${h.host}${h.pathname}`),y=l(`${f.host}${f.pathname}${f.search||""}`);return`${p}/${y}`};r.default=d},function(n,r,i){r.__esModule=!0,r.default=void 0;let a="";var d={getCurrentAudioOutputDeviceId:()=>a,setCurrentAudioOutputDeviceId:c=>{a=c}};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(9));const l=(d,c,u)=>c&&!u?()=>c.call(d):c&&u?h=>(h!==void 0&&u.call(d,h),c.call(d)):h=>{h!==void 0&&u.call(d,h)};function s(d,c){const u={};Object.keys(c).forEach(h=>{u[h]=l(d,c[h].get,c[h].set)}),(0,o.default)(d,u)}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(202));function l(d){let c=d===void 0?{}:d,u=c.NativeVideoElementWrapper;const f=u===void 0?(0,o.default)():u,g=50;function A(b){let p=b===void 0?{}:b,y=p.fallbackText,m=y===void 0?"Sorry, Web RTC is not available in your browser":y,F=p.fitMode,R=p.muted,C=p._inject,B=p.widgetType;return new f({fallbackText:m,fitMode:F,muted:R,defaultAudioVolume:g,_inject:C,widgetType:B})}return A}var s=l;r.default=s},function(n,r,i){r.__esModule=!0,r.adaptIceServers=a,r.parseIceServers=o;function a(l){return l.map(s=>({url:s.url,urls:s.urls||[s.url],username:s.username,credential:s.credential}))}function o(l){let s;try{s=JSON.parse(l.data).content.iceServers}catch{return[]}return a(s)}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=()=>o.default.name==="Chrome"&&o.default.version>=58||["Firefox","Edge","Safari","Opera"].indexOf(o.default.name)!==-1;r.default=l},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){let l=null,s=!1;const d=()=>{s&&(o(),l=window.requestAnimationFrame(d))};this.start=()=>{s||(s=!0,window.requestAnimationFrame(d))},this.stop=()=>{window.cancelAnimationFrame(l),s=!1}}},function(n,r,i){r.__esModule=!0,r.ONE_SECOND_IN_MS=r.ONE_MINUTE_IN_MS=void 0;const a=1e3;r.ONE_SECOND_IN_MS=a;const o=60*a;r.ONE_MINUTE_IN_MS=o},function(n,r,i){Object.defineProperty(r,"__esModule",{value:!0}),r.CancellationError=r.default=void 0;var a=i(685),o=d(a),l=i(320),s=d(l);function d(c){return c&&c.__esModule?c:{default:c}}r.default=o.default,r.CancellationError=s.default},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(52)),l,s;const d=!!window.crypto,c=!!((l=window.RTCRtpSender)!=null&&l.prototype.createEncodedStreams)||!!((s=window.RTCRtpSender)!=null&&s.prototype.createdEncodedVideoStreams),u=!!window.Worker,h=()=>d&&c&&u;var f=function(A){A===void 0&&(A={});const b=A.hasOpenTokSupport||o.default.once,p=A.isE2eeSupported||h;return b()&&p()};r.default=f},function(n,r,i){var a=i(43),o=i(15),l=a(o,"Map");n.exports=l},function(n,r,i){var a=i(370),o=i(377),l=i(379),s=i(380),d=i(381);function c(u){var h=-1,f=u==null?0:u.length;for(this.clear();++h<f;){var g=u[h];this.set(g[0],g[1])}}c.prototype.clear=a,c.prototype.delete=o,c.prototype.get=l,c.prototype.has=s,c.prototype.set=d,n.exports=c},function(n,r){function i(a,o){for(var l=-1,s=a==null?0:a.length;++l<s&&o(a[l],l,a)!==!1;);return a}n.exports=i},function(n,r){var i=9007199254740991;function a(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=i}n.exports=a},function(n,r,i){(function(a){var o=i(185),l=r&&!r.nodeType&&r,s=l&&typeof a=="object"&&a&&!a.nodeType&&a,d=s&&s.exports===l,c=d&&o.process,u=function(){try{var h=s&&s.require&&s.require("util").types;return h||c&&c.binding&&c.binding("util")}catch{}}();a.exports=u}).call(this,i(86)(n))},function(n,r,i){var a=i(68),o=i(386),l=Object.prototype,s=l.hasOwnProperty;function d(c){if(!a(c))return o(c);var u=[];for(var h in Object(c))s.call(c,h)&&h!="constructor"&&u.push(h);return u}n.exports=d},function(n,r,i){var a=i(391),o=i(192),l=Object.prototype,s=l.propertyIsEnumerable,d=Object.getOwnPropertySymbols,c=d?function(u){return u==null?[]:(u=Object(u),a(d(u),function(h){return s.call(u,h)}))}:o;n.exports=c},function(n,r){function i(a,o){for(var l=-1,s=o.length,d=a.length;++l<s;)a[d+l]=o[l];return a}n.exports=i},function(n,r,i){var a=i(190),o=a(Object.getPrototypeOf,Object);n.exports=o},function(n,r,i){var a=i(199);function o(l){var s=new l.constructor(l.byteLength);return new a(s).set(new a(l)),s}n.exports=o},function(n,r){function i(a,o,l){switch(l.length){case 0:return a.call(o);case 1:return a.call(o,l[0]);case 2:return a.call(o,l[0],l[1]);case 3:return a.call(o,l[0],l[1],l[2])}return a.apply(o,l)}n.exports=i},function(n,r,i){var a=i(406),o=i(205),l=o(a);n.exports=l},function(n,r,i){var a=i(53),o=i(26),l=i(66),s=i(11);function d(c,u,h){if(!s(h))return!1;var f=typeof u;return(f=="number"?o(h)&&l(u,h.length):f=="string"&&u in h)?a(h[u],c):!1}n.exports=d},function(n,r,i){var a=i(114),o="Expected a function";function l(s,d){if(typeof s!="function"||d!=null&&typeof d!="function")throw new TypeError(o);var c=function(){var u=arguments,h=d?d.apply(this,u):u[0],f=c.cache;if(f.has(h))return f.get(h);var g=s.apply(this,u);return c.cache=f.set(h,g)||f,g};return c.cache=new(l.Cache||a),c}l.Cache=a,n.exports=l},function(n,r,i){r.__esModule=!0,r.default=void 0;var o={error:{priority:1,method:"error"},warn:{priority:2,method:"warn"},info:{priority:3,method:"info"},log:{priority:4,method:"log"},debug:{priority:5,method:"debug"},spam:{priority:6,method:"log"}};r.default=o},function(n,r,i){n.exports=i(207)()?Object.setPrototypeOf:i(208)},function(n,r,i){var a=i(56),o={object:!0,function:!0,undefined:!0};n.exports=function(l){return a(l)?hasOwnProperty.call(o,typeof l):!1}},function(n,r,i){n.exports=i(420)()?Object.assign:i(421)},function(n,r,i){(function(a){var o=i(21),l=i(472),s=i(220),d={"Content-Type":"application/x-www-form-urlencoded"};function c(g,A){!o.isUndefined(g)&&o.isUndefined(g["Content-Type"])&&(g["Content-Type"]=A)}function u(){var g;return(typeof XMLHttpRequest<"u"||typeof a<"u"&&Object.prototype.toString.call(a)==="[object process]")&&(g=i(221)),g}function h(g,A,b){if(o.isString(g))try{return(A||JSON.parse)(g),o.trim(g)}catch(p){if(p.name!=="SyntaxError")throw p}return(0,JSON.stringify)(g)}var f={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:u(),transformRequest:[function(A,b){return l(b,"Accept"),l(b,"Content-Type"),o.isFormData(A)||o.isArrayBuffer(A)||o.isBuffer(A)||o.isStream(A)||o.isFile(A)||o.isBlob(A)?A:o.isArrayBufferView(A)?A.buffer:o.isURLSearchParams(A)?(c(b,"application/x-www-form-urlencoded;charset=utf-8"),A.toString()):o.isObject(A)||b&&b["Content-Type"]==="application/json"?(c(b,"application/json"),h(A)):A}],transformResponse:[function(A){var b=this.transitional,p=b&&b.silentJSONParsing,y=b&&b.forcedJSONParsing,m=!p&&this.responseType==="json";if(m||y&&o.isString(A)&&A.length)try{return JSON.parse(A)}catch(F){if(m)throw F.name==="SyntaxError"?s(F,this,"E_JSON_PARSE"):F}return A}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(A){return A>=200&&A<300}};f.headers={common:{Accept:"application/json, text/plain, */*"}},o.forEach(["delete","get","head"],function(A){f.headers[A]={}}),o.forEach(["post","put","patch"],function(A){f.headers[A]=o.merge(d)}),n.exports=f}).call(this,i(27))},function(n,r){n.exports={}},function(n,r,i){var a=i(227),o=i(490),l=i(491),s=i(229),d=i(505),c=i(233),u=i(506),h=i(236),f=i(237),g=i(97),A="Expected a function",b=1,p=2,y=8,m=16,F=32,R=64,C=Math.max;function B(N,S,X,J,E,v,j,H){var K=S&p;if(!K&&typeof N!="function")throw new TypeError(A);var Fe=J?J.length:0;if(Fe||(S&=-97,J=E=void 0),j=j===void 0?j:C(g(j),0),H=H===void 0?H:g(H),Fe-=E?E.length:0,S&R){var z=J,q=E;J=E=void 0}var Ae=K?void 0:c(N),Ke=[N,S,X,J,E,z,q,v,j,H];if(Ae&&u(Ke,Ae),N=Ke[0],S=Ke[1],X=Ke[2],J=Ke[3],E=Ke[4],H=Ke[9]=Ke[9]===void 0?K?0:N.length:C(Ke[9]-Fe,0),!H&&S&(y|m)&&(S&=-25),!S||S==b)var pe=o(N,S,X);else S==y||S==m?pe=l(N,S,H):(S==F||S==(b|F))&&!E.length?pe=d(N,S,X,J):pe=s.apply(void 0,Ke);var We=Ae?a:h;return f(We(pe,Ke),N,S)}n.exports=B},function(n,r,i){var a=i(88),o=i(135),l=4294967295;function s(d){this.__wrapped__=d,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=l,this.__views__=[]}s.prototype=a(o.prototype),s.prototype.constructor=s,n.exports=s},function(n,r){function i(){}n.exports=i},function(n,r){var i="__lodash_placeholder__";function a(o,l){for(var s=-1,d=o.length,c=0,u=[];++s<d;){var h=o[s];(h===l||h===i)&&(o[s]=i,u[c++]=s)}return u}n.exports=a},function(n,r,i){var a=i(33),o=i(121),l=i(20),s="[object Object]",d=Function.prototype,c=Object.prototype,u=d.toString,h=c.hasOwnProperty,f=u.call(Object);function g(A){if(!l(A)||a(A)!=s)return!1;var b=o(A);if(b===null)return!0;var p=h.call(b,"constructor")&&b.constructor;return typeof p=="function"&&p instanceof p&&u.call(p)==f}n.exports=g},function(n,r,i){var a=i(516),o=i(20);function l(s,d,c,u,h){return s===d?!0:s==null||d==null||!o(s)&&!o(d)?s!==s&&d!==d:a(s,d,c,u,l,h)}n.exports=l},function(n,r,i){var a=i(13),o=i(70),l=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;function d(c,u){if(a(c))return!1;var h=typeof c;return h=="number"||h=="symbol"||h=="boolean"||c==null||o(c)?!0:s.test(c)||!l.test(c)||u!=null&&c in Object(u)}n.exports=d},function(n,r,i){var a=i(531),o=i(204),l=i(124);function s(d){return l(o(d,void 0,a),d+"")}n.exports=s},function(n,r,i){r.__esModule=!0,r.default=o;let a;function o(l){l===void 0&&(l={});const s=l.AudioContext||(typeof window!==void 0?window:yr).AudioContext||(typeof window!==void 0?window:yr).webkitAudioContext;return function(){if(a=a||s&&new s,a==null)throw new Error("AudioContext could not be created, hardware limit reached.");return a}}},function(n,r,i){r.__esModule=!0,r.default=void 0;let a=function(){function o(s){this._analyser=null,this._timeDomainData=null,this._sourceNode=null,this._audioContext=s}var l=o.prototype;return l._initAudioAnalyser=function(d){this._analyser=this._audioContext.createAnalyser(),this._sourceNode=this._audioContext.createMediaStreamSource(d),this._sourceNode.connect(this._analyser),this._timeDomainData=new Uint8Array(this._analyser.frequencyBinCount)},l.webRTCStream=function(d){this._sourceNode&&this._sourceNode.disconnect(this._analyser),this._audioContext.state==="suspended"&&this._audioContext.resume(),this._initAudioAnalyser(d)},l.destroy=function(){this._sourceNode&&this._sourceNode.disconnect(this._analyser),this._timeDomainData=null},l.sample=function(d){if(typeof d=="function")throw new Error("sample no longer takes a callback");if(this._analyser&&this._timeDomainData){this._analyser.getByteTimeDomainData(this._timeDomainData);let c=0;for(let u=this._timeDomainData.length-1;u>=0;u-=1)c=Math.max(c,Math.abs(this._timeDomainData[u]-128));return c/128}return null},o}();r.default=a},function(n,r,i){var a=i(89),o=i(53),l=i(125),s=i(54),d=Object.prototype,c=d.hasOwnProperty,u=a(function(h,f){h=Object(h);var g=-1,A=f.length,b=A>2?f[2]:void 0;for(b&&l(f[0],f[1],b)&&(A=1);++g<A;)for(var p=f[g],y=s(p),m=-1,F=y.length;++m<F;){var R=y[m],C=h[R];(C===void 0||o(C,d[R])&&!c.call(h,R))&&(h[R]=p[R])}return h});n.exports=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(9)),l=a(i(145)),s=a(i(1));const d=(0,s.default)("Event");let c=function(){function u(f,g,A){g===void 0&&(g=!0),A===void 0&&(A={}),this.type=f,this.cancelable=g,this._defaultPrevented=!1;const b=(0,l.default)(Object.keys(this),Object.keys(A));if(b.length>0)throw new Error(`Cannot used reserved property names: ${b.join(",")}`);(0,o.default)(this,A)}var h=u.prototype;return h.preventDefault=function(){this.cancelable?this._defaultPrevented=!0:d.warn("Event.preventDefault :: Trying to preventDefault on an event that isn't cancelable")},h.isDefaultPrevented=function(){return this._defaultPrevented},u}();r.default=c},function(n,r,i){var a=i(39),o=i(559),l=i(89),s=i(560),d=l(function(c){var u=a(c,s);return u.length&&u[0]===c[0]?o(u):[]});n.exports=d},function(n,r){function i(a,o,l){for(var s=-1,d=a==null?0:a.length;++s<d;)if(l(o,a[s]))return!0;return!1}n.exports=i},function(n,r,i){var a=i(26),o=i(20);function l(s){return o(s)&&a(s)}n.exports=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(31)),l=a(i(61)),s=a(i(58)),c=function(){function u(h){h===void 0&&(h={}),Object.defineProperty(this,"_rawSessionInfo",{value:(0,l.default)(h)})}return(0,o.default)(u,[{key:"sessionId",get:function(){return this._rawSessionInfo.session_id}},{key:"partnerId",get:function(){return this._rawSessionInfo.partner_id}},{key:"messagingServer",get:function(){return this._rawSessionInfo.messaging_server_url}},{key:"mediaServerName",get:function(){return this._rawSessionInfo.media_server_hostname}},{key:"messagingURL",get:function(){return this._rawSessionInfo.messaging_url}},{key:"symphonyAddress",get:function(){return this._rawSessionInfo.symphony_address}},{key:"iceServers",get:function(){return this._rawSessionInfo.ice_servers}},{key:"simulcast",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.simulcast")}},{key:"e2ee",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.e2ee",!1)}},{key:"reconnection",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.reconnection",!1)}},{key:"renegotiation",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.renegotiation",!1)}},{key:"p2pEnabled",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.p2p.preference.value")==="enabled"}},{key:"hybridSession",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.hybridSession",!1)}},{key:"isAdaptiveEnabled",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.p2p.preference.value")==="adaptive"}},{key:"priorityVideoCodec",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.priorityVideoCodec","")}},{key:"h264",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.h264",!0)}},{key:"vp8",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.vp8",!0)}},{key:"vp9",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.vp9",!0)}},{key:"singlePeerConnection",get:function(){return(0,s.default)(this._rawSessionInfo,"properties.singlePeerConnection",!1)}},{key:"clientCandidates",get:function(){const f=(0,s.default)(this._rawSessionInfo,"properties.clientCandidates");return f==="relayed"?"relay":f}}]),u}();r.default=c},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=()=>document.createElement("video");r.default=a},function(n,r,i){r.__esModule=!0,r.default=a;function a(){return{ROTATED_NORMAL:0,ROTATED_LEFT:270,ROTATED_RIGHT:90,ROTATED_UPSIDE_DOWN:180}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=y;var o=a(i(575)),l=a(i(1)),s=a(i(586)),d=a(i(3));const c=(0,l.default)("createWindowMock"),u=[{key:"location",type:"object"},{key:"setTimeout",type:"function"},{key:"requestAnimationFrame",type:"function"},{key:"URL",type:"function"},{key:"MediaStream",type:"class"},{key:"webkitMediaStream",type:"class"},{key:"RTCIceCandidate",type:"class"},{key:"mozRTCIceCandidate",type:"class"},{key:"RTCSessionDescription",type:"class"},{key:"mozRTCSessionDescription",type:"class"},{key:"RTCIceGatherer",type:"class"},{key:"RTCIceTransport",type:"class"},{key:"RTCDtlsTransport",type:"class"},{key:"RTCSctpTransport",type:"class"},{key:"RTCRtpReceiver",type:"class"},{key:"HTMLMediaElement",type:"class"},{key:"RTCPeerConnection",type:"class"},{key:"webkitRTCPeerConnection",type:"class"},{key:"mozRTCPeerConnection",type:"class"},{key:"MediaStreamTrack",type:"class"},{key:"RTCRtpSender",type:"class"},{key:"RTCTrackEvent",type:"class"},{key:"RTCTransceiver",type:"class"},{key:"RTCDtmfSender",type:"class"},{key:"RTCDTMFSender",type:"class"},{key:"MediaStreamTrackEvent",type:"class"}],h=[{key:"userAgent",type:"string"},{key:"getUserMedia",type:"function"},{key:"getDisplayMedia",type:"function"},{key:"webkitGetUserMedia",type:"function"},{key:"mozGetUserMedia",type:"function"}],f=[{key:"getUserMedia",type:"function"},{key:"getDisplayMedia",type:"function"},{key:"enumerateDevices",type:"function"},{key:"getSupportedConstraints",type:"function"},{key:"addEventListener",type:"function"},{key:"removeEventListener",type:"function"}],g=(m,F)=>{if(typeof F!="function")return c.warn("Non-function passed into bindWithStaticProperties()"),F;const R=F.bind(m);return Object.keys(F).forEach(C=>{R[C]=F[C]}),R},A=m=>typeof m!="function"?(c.warn("Non-function passed into extendClass()"),m):(0,s.default)(m),b=()=>(m,F,R)=>{R.forEach(C=>{let B=C.key,N=C.type,S=F[B];if(S!==void 0){switch(N){case"function":S=g(F,S);break;case"class":S=A(S);break;case"string":case"object":break;default:throw new Error(`Invalid type of window key: ${N}`)}m[B]=S}})},p=m=>{const F={},R=b();return R(F,m,u),m.navigator!==void 0&&(F.navigator={},R(F.navigator,m.navigator,h),m.navigator.mediaDevices!==void 0&&(F.navigator.mediaDevices={},R(F.navigator.mediaDevices,m.navigator.mediaDevices,f))),F};function y(m){if(m.adapter!==void 0||d.default.isLegacyEdge)return m;const F=p(m);return(0,o.default)({window:F}),F}},function(n,r,i){r.__esModule=!0,r.default=a;function a(){let o=null;this.transform=l=>{o===null||l>=o?o=l:o=l*.3+o*.7;const s=Math.log(o)/Math.LN10/1.5+1;return Math.min(Math.max(s,0),1)}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(9)),l=a(i(6));const s=c=>Object.keys(c).map(u=>c[u]);function d(c){const u={},h=(f,g)=>{(0,o.default)(g,{parent:this}),g.appendTo(c.parent),u[f]=g,this[f]=g};c.parent&&((0,l.default)(this),this.destroy=()=>{this.off(),this.hideWhileLoading(),s(u).forEach(f=>f.destroy())},this.showAfterLoading=()=>{s(u).forEach(f=>f.showAfterLoading())},this.hideWhileLoading=()=>{s(u).forEach(f=>f.hideWhileLoading())},this.set=(f,g)=>(typeof f=="string"&&g?h(f,g):Object.keys(f).forEach(A=>{h(A,f[A])}),this))}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(6)),l=a(i(29)),s=a(i(587)),d=a(i(17));const c=(0,d.default)(),u=(0,s.default)();function h(){const g=this;(0,o.default)(g);function A(){return u.isDomLoaded()&&!u.isDomUnloaded()}function b(){A()&&g.dispatchEvent(new c.EnvLoadedEvent(l.default.ENV_LOADED))}function p(){u.whenUnloaded.then(y),b()}function y(){g.dispatchEvent(new c.EnvLoadedEvent(l.default.ENV_UNLOADED))}u.whenLoaded.then(p),this.onLoad=function(m,F){if(A()){m.call(F);return}g.on(l.default.ENV_LOADED,m,F)},this.onUnload=function(m,F){if(this.isUnloaded()){m.call(F);return}g.on(l.default.ENV_UNLOADED,m,F)},this.isUnloaded=function(){return u.isDomUnloaded()}}var f=new h;r.default=f},function(n,r,i){var a=i(593);/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> * @license MIT */function o(H,K){if(H===K)return 0;for(var Fe=H.length,z=K.length,q=0,Ae=Math.min(Fe,z);q<Ae;++q)if(H[q]!==K[q]){Fe=H[q],z=K[q];break}return Fe<z?-1:z<Fe?1:0}function l(H){return(typeof window!==void 0?window:yr).Buffer&&typeof(typeof window!==void 0?window:yr).Buffer.isBuffer=="function"?(typeof window!==void 0?window:yr).Buffer.isBuffer(H):!!(H!=null&&H._isBuffer)}var s=i(594),d=Object.prototype.hasOwnProperty,c=Array.prototype.slice,u=function(){return(function(){}).name==="foo"}();function h(H){return Object.prototype.toString.call(H)}function f(H){return l(H)||typeof(typeof window!==void 0?window:yr).ArrayBuffer!="function"?!1:typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(H):H?!!(H instanceof DataView||H.buffer&&H.buffer instanceof ArrayBuffer):!1}var g=n.exports=R,A=/\s*function\s+([^\(\s]*)\s*/;function b(H){if(s.isFunction(H)){if(u)return H.name;var K=H.toString(),Fe=K.match(A);return Fe&&Fe[1]}}g.AssertionError=function(K){this.name="AssertionError",this.actual=K.actual,this.expected=K.expected,this.operator=K.operator,K.message?(this.message=K.message,this.generatedMessage=!1):(this.message=m(this),this.generatedMessage=!0);var Fe=K.stackStartFunction||F;if(Error.captureStackTrace)Error.captureStackTrace(this,Fe);else{var z=new Error;if(z.stack){var q=z.stack,Ae=b(Fe),Ke=q.indexOf(` `+Ae);if(Ke>=0){var pe=q.indexOf(` `,Ke+1);q=q.substring(pe+1)}this.stack=q}}},s.inherits(g.AssertionError,Error);function p(H,K){return typeof H=="string"?H.length<K?H:H.slice(0,K):H}function y(H){if(u||!s.isFunction(H))return s.inspect(H);var K=b(H),Fe=K?": "+K:"";return"[Function"+Fe+"]"}function m(H){return p(y(H.actual),128)+" "+H.operator+" "+p(y(H.expected),128)}function F(H,K,Fe,z,q){throw new g.AssertionError({message:Fe,actual:H,expected:K,operator:z,stackStartFunction:q})}g.fail=F;function R(H,K){H||F(H,!0,K,"==",g.ok)}g.ok=R,g.equal=function(K,Fe,z){K!=Fe&&F(K,Fe,z,"==",g.equal)},g.notEqual=function(K,Fe,z){K==Fe&&F(K,Fe,z,"!=",g.notEqual)},g.deepEqual=function(K,Fe,z){C(K,Fe,!1)||F(K,Fe,z,"deepEqual",g.deepEqual)},g.deepStrictEqual=function(K,Fe,z){C(K,Fe,!0)||F(K,Fe,z,"deepStrictEqual",g.deepStrictEqual)};function C(H,K,Fe,z){if(H===K)return!0;if(l(H)&&l(K))return o(H,K)===0;if(s.isDate(H)&&s.isDate(K))return H.getTime()===K.getTime();if(s.isRegExp(H)&&s.isRegExp(K))return H.source===K.source&&H.global===K.global&&H.multiline===K.multiline&&H.lastIndex===K.lastIndex&&H.ignoreCase===K.ignoreCase;if((H===null||typeof H!="object")&&(K===null||typeof K!="object"))return Fe?H===K:H==K;if(f(H)&&f(K)&&h(H)===h(K)&&!(H instanceof Float32Array||H instanceof Float64Array))return o(new Uint8Array(H.buffer),new Uint8Array(K.buffer))===0;if(l(H)!==l(K))return!1;z=z||{actual:[],expected:[]};var q=z.actual.indexOf(H);return q!==-1&&q===z.expected.indexOf(K)?!0:(z.actual.push(H),z.expected.push(K),N(H,K,Fe,z))}function B(H){return Object.prototype.toString.call(H)=="[object Arguments]"}function N(H,K,Fe,z){if(H==null||K===null||K===void 0)return!1;if(s.isPrimitive(H)||s.isPrimitive(K))return H===K;if(Fe&&Object.getPrototypeOf(H)!==Object.getPrototypeOf(K))return!1;var q=B(H),Ae=B(K);if(q&&!Ae||!q&&Ae)return!1;if(q)return H=c.call(H),K=c.call(K),C(H,K,Fe);var Ke=j(H),pe=j(K),We,xe;if(Ke.length!==pe.length)return!1;for(Ke.sort(),pe.sort(),xe=Ke.length-1;xe>=0;xe--)if(Ke[xe]!==pe[xe])return!1;for(xe=Ke.length-1;xe>=0;xe--)if(We=Ke[xe],!C(H[We],K[We],Fe,z))return!1;return!0}g.notDeepEqual=function(K,Fe,z){C(K,Fe,!1)&&F(K,Fe,z,"notDeepEqual",g.notDeepEqual)},g.notDeepStrictEqual=S;function S(H,K,Fe){C(H,K,!0)&&F(H,K,Fe,"notDeepStrictEqual",S)}g.strictEqual=function(K,Fe,z){K!==Fe&&F(K,Fe,z,"===",g.strictEqual)},g.notStrictEqual=function(K,Fe,z){K===Fe&&F(K,Fe,z,"!==",g.notStrictEqual)};function X(H,K){if(!H||!K)return!1;if(Object.prototype.toString.call(K)=="[object RegExp]")return K.test(H);try{if(H instanceof K)return!0}catch{}return Error.isPrototypeOf(K)?!1:K.call({},H)===!0}function J(H){var K;try{H()}catch(Fe){K=Fe}return K}function E(H,K,Fe,z){var q;if(typeof K!="function")throw new TypeError('"block" argument must be a function');typeof Fe=="string"&&(z=Fe,Fe=null),q=J(K),z=(Fe&&Fe.name?" ("+Fe.name+").":".")+(z?" "+z:"."),H&&!q&&F(q,Fe,"Missing expected exception"+z);var Ae=typeof z=="string",Ke=!H&&s.isError(q),pe=!H&&q&&!Fe;if((Ke&&Ae&&X(q,Fe)||pe)&&F(q,Fe,"Got unwanted exception"+z),H&&q&&Fe&&!X(q,Fe)||!H&&q)throw q}g.throws=function(H,K,Fe){E(!0,H,K,Fe)},g.doesNotThrow=function(H,K,Fe){E(!1,H,K,Fe)},g.ifError=function(H){if(H)throw H};function v(H,K){H||F(H,!0,K,"==",v)}g.strict=a(v,g,{equal:g.strictEqual,deepEqual:g.deepStrictEqual,notEqual:g.notStrictEqual,notDeepEqual:g.notDeepStrictEqual}),g.strict.strict=g.strict;var j=Object.keys||function(H){var K=[];for(var Fe in H)d.call(H,Fe)&&K.push(Fe);return K}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(601)),s=a(i(281)),d=c=>o.default.isElectron?c==="screen"?!0:(0,s.default)(c):l.default.indexOf(c)>-1;r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=h;var o=a(i(6)),l=a(i(1)),s=a(i(284)),d=a(i(150));const c=(0,d.default)(),u=(0,l.default)("StreamChannel");function h(f){this.id=f.id,this.type=f.type,this.active=(0,s.default)(f.active),this.orientation=f.orientation||c.ROTATED_NORMAL,f.frameRate&&(this.frameRate=parseFloat(f.frameRate)),f.preferredFrameRate&&(this.preferredFrameRate=parseFloat(f.preferredFrameRate)),f.preferredWidth&&(this.preferredWidth=parseInt(f.preferredWidth,10)),f.preferredHeight&&(this.preferredHeight=parseInt(f.preferredHeight,10)),this.width=parseInt(f.width,10),this.height=parseInt(f.height,10),this.source=f.source||"camera",this.fitMode=f.fitMode||"cover",(0,o.default)(this),this.update=function(g){const A={},b={};for(const p in g){if(!g.hasOwnProperty(p))continue;const y=this[p];switch(p){case"active":this.active=(0,s.default)(g[p]);break;case"disableWarning":this.disableWarning=(0,s.default)(g[p]);break;case"frameRate":this.frameRate=parseFloat(g[p],10);break;case"width":case"height":this[p]=parseInt(g[p],10),A[p]=this[p],b[p]=y;break;case"orientation":this[p]=g[p],A[p]=this[p],b[p]=y;break;case"fitMode":this[p]=g[p];break;case"source":this[p]=g[p];break;case"sourceStreamId":break;default:return u.debug(`Tried to update unknown key ${p} on ${this.type} channel ${this.id}`),!1}this.trigger("update",this,p,y,this[p])}return Object.keys(A).length&&this.trigger("update",this,"videoDimensions",b,A),!0}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=u;var o=a(i(1)),l=a(i(609)),s=a(i(610)),d=a(i(285));const c=(0,o.default)("StylableComponent");function u(h,f,g,A){if(!h.trigger)throw new Error("OT.StylableComponent is dependent on the eventing mixin. Ensure that this is included in the object before StylableComponent.");A=A||function(){};let b=!1;const p=function(F,R,C){C?h.trigger("styleValueChanged",F,R,C):h.trigger("styleValueChanged",F,R)};g===!1&&(f={buttonDisplayMode:"off",nameDisplayMode:"off",audioLevelDisplayMode:"off",videoDisabledDisplayMode:"off",audioBlockedDisplayMode:"off"},b=!0,A({showControls:!1}));const y=new s.default(f,p);h.getStyle=function(m){return y.get(m)},h.setStyle=function(m,F,R){if(b)return c.warn("Calling setStyle() has no effect because theshowControls option was set to false"),this;let C;return typeof m!="string"?C=m:(C={},C[m]=F),C.backgroundImageURI&&(C.backgroundImageURI=(0,l.default)(C.backgroundImageURI)),y.setAll(C,R),A((0,d.default)(C)),this}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(51)),l=a(i(1)),s=a(i(30)),d=a(i(52)),c=a(i(613)),u=a(i(614)),h=a(i(37)),f=a(i(72)),g=a(i(154)),A=a(i(7)),b=a(i(615)),p=a(i(616));const y=(0,h.default)(),m=(0,l.default)("systemRequirements"),F=y.onlyLocal(),R=d.default.once,C=new s.default,B=(0,o.default)(()=>{C.logEvent({action:"checkSystemRequirements",variation:"notHasRequirements",partnerId:f.default.value,payload:{userAgent:A.default.env.userAgent}})}),N=(0,o.default)(()=>{(0,b.default)()});let S=!1;var X={check(){m.debug("OT.checkSystemRequirements()");const J=Number(c.default&&R());return N(),J||B(),J},upgrade(J){let E=J===void 0?{}:J,v=E.isSupportedButOld,j=v===void 0?A.default.env.name.toLowerCase()in F.minimumVersion:v,H=E.userAgent,K=H===void 0?navigator.userAgent:H;g.default.onLoad(()=>{if(S)return;const Fe=new u.default(p.default);S=!0,Fe.on("close",()=>{S=!1}),Fe.open();let z;K.match(/(iPad|iPhone|iPod|android|webOS)/i)?z=`${j?"supported-":""}mobile-browser`:z=`${j?"upgrade":"normal"}-install`,Fe.el(`#section-${z}`).style.display="block"})}};r.default=X},function(n,r,i){(function(a){var o=i(0),l=o(i(28)),s=o(i(161));const d=i(620);let c=function(u){(0,l.default)(h,u);function h(f){var g;return g=u.call(this,f)||this,g.name="TimeoutError",g}return h}((0,s.default)(Error));n.exports=(u,h,f)=>new a((g,A)=>{if(typeof h!="number"||h<0)throw new TypeError("Expected `ms` to be a positive number");const b=setTimeout(()=>{if(typeof f=="function"){try{g(f())}catch(m){A(m)}return}const p=typeof f=="string"?f:`Promise timed out after ${h} milliseconds`,y=f instanceof Error?f:new c(p);typeof u.cancel=="function"&&u.cancel(),A(y)},h);d(u.then(g,A),()=>{clearTimeout(b)})}),n.exports.TimeoutError=c}).call(this,i(2))},function(n,r,i){var a=i(617),o=i(287),l=i(618),s=i(619);function d(c){var u=typeof Map=="function"?new Map:void 0;return n.exports=d=function(f){if(f===null||!l(f))return f;if(typeof f!="function")throw new TypeError("Super expression must either be null or a function");if(typeof u<"u"){if(u.has(f))return u.get(f);u.set(f,g)}function g(){return s(f,arguments,a(this).constructor)}return g.prototype=Object.create(f.prototype,{constructor:{value:g,enumerable:!1,writable:!0,configurable:!0}}),o(g,f)},d(c)}n.exports=d},function(n,r,i){r.__esModule=!0,r.default=void 0;function a(){const l=[];return{add(s){l.push(s)},remove(s){const d=l.indexOf(s);d>=0&&l.splice(d,1)},releaseAll(){const s=[];for(;l.length>0;){const c=l.pop();try{c()}catch(u){s.push(u)}}const d=s.length;if(d>0)throw new Error(`Failed to complete ${d} cleanup job${d===1?"":"s"}: ${s.map(c=>`<${c}>`).join(", ")}`)}}}var o=a;r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(1));const l=(0,o.default)("applySdpTransform");var s=(d,c,u,h,f)=>{const g=d[c][u],A=`${c} ${u}`,p=`sdpTransforms (${A==="local offer"||A==="remote answer"?"publisher":"subscriber"}): ${c} ${u}`,y=c==="local"?"created":"received";l.debug(`${p}: ${y}: ${f}`);const m=g(h,f);return m.local===f?l.debug(`${p}: not modified`):l.debug(`${p}: modified to: ${m.local}`),m};r.default=s},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=function(s){if(s===void 0&&(s={}),!s)return 0;const d=s,c=d.currentStatFrames,u=c===void 0?0:c,h=d.prevStatFrames,f=h===void 0?0:h,g=d.currentTimestamp,A=g===void 0?0:g,b=d.prevTimestamp,p=b===void 0?0:b;if(u>=f&&A>p){const y=(u-f)/((A-p)/1e3);return Math.round(y*100)/100}return 0};r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(58)),s=typeof(0,o.default)(typeof window!==void 0?window:yr,"navigator.getDisplayMedia",(0,o.default)(typeof window!==void 0?window:yr,"navigator.mediaDevices.getDisplayMedia"))=="function";r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(42));function l(){return function(d,c,u){const h=c.slice(),f=(0,o.default)(u),g=function(p){return h.indexOf(p)!==-1},A=function(p,y){return f[p]&&f[p].indexOf(y)!==-1};return function(b){let p=d,y=null;this.current=p;function m(R,C){b({message:R,newState:C,currentState:p,previousState:y})}function F(R){return g(R)?A(p,R)?!0:(m(`'${p}' cannot transition to '${R}'`,R),!1):(m(`'${R}' is not a valid state`,R),!1)}this.set=function(R){F(R)&&(y=p,this.current=R,p=R)}}}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=A;var l=o(i(62)),s=o(i(14)),d=o(i(8)),c=o(i(300)),u=o(i(657)),h=o(i(659)),f=o(i(307)),g=o(i(7));function A(b){b===void 0&&(b={});const p=b.chromeExtensionHelper||(0,c.default)(),y=b.electronExtensionHelper||(0,u.default)(),m=b.Errors||d.default,F=b.firefoxExtensionHelper||h.default,R=b.getDisplayMediaExtensionHelper||f.default,C=b.otError||(0,s.default)(),B=b.OTHelpers||g.default,N={};N.extensionByKind={},N.extensionClasses={},N.registerExtensionHelper=(J,E)=>{N.extensionClasses[J]=E,E.autoRegisters&&E.isSupportedInThisBrowser&&N.registerExtension(J)},N.registerExtension=function(J){if(N.extensionClasses[J]==null)throw new Error("Unsupported kind passed to OT.registerScreenSharingExtension");for(var E=arguments.length,v=new Array(E>1?E-1:0),j=1;j<E;j++)v[j-1]=arguments[j];const H=N.extensionClasses[J].register(...v);N.extensionByKind[J]=H};const S=()=>{const J=(0,l.default)(Object.keys(N.extensionClasses).sort(E=>E==="electron"?-1:1),E=>N.extensionClasses[E].isSupportedInThisBrowser);return J===void 0?{}:{name:J,proto:N.extensionClasses[J],instance:N.extensionByKind[J]}};N.pickHelper=()=>S(),N.checkCapability=J=>{const E={supported:!1,extensionRequired:void 0,extensionRegistered:void 0,extensionInstalled:void 0,supportedSources:{}},v=S();if(v.name===void 0){setTimeout(J.bind(null,E));return}if(E.supported=!0,E.extensionRequired=v.proto.extensionRequired?v.name:void 0,E.supportedSources={screen:v.proto.sources.screen,application:v.proto.sources.application,window:v.proto.sources.window,browser:v.proto.sources.browser},!v.instance){E.extensionRegistered=!1,E.extensionRequired&&(E.extensionInstalled=!1),setTimeout(J.bind(null,E));return}E.extensionRegistered=E.extensionRequired?!0:void 0,v.instance.isInstalled(j=>{E.extensionInstalled=E.extensionRequired||B.env.name==="Firefox"?j:void 0,J(E)})},N.registerExtensionHelper("electron",y),N.registerExtensionHelper("getDisplayMedia",R),N.registerExtensionHelper("chrome",p),N.registerExtensionHelper("firefox",F);const X=()=>{};return N.getConstraints=J=>{const E=J.onAccessDialogOpened,v=E===void 0?X:E,j=J.onAccessDialogClosed,H=j===void 0?X:j,K=J.videoSource,Fe=J.constraints;return new a((z,q)=>{N.checkCapability(Ae=>{if(Ae.supported)if(Ae.extensionRegistered===!1)q(C(m.SCREEN_SHARING_EXTENSION_NOT_REGISTERED,new Error("Screen Sharing support in this browser requires an extension, but one has not been registered.")));else if(Ae.extensionRequired&&Ae.extensionInstalled===!1)q(C(m.SCREEN_SHARING_EXTENSION_NOT_INSTALLED,new Error("Screen Sharing support in this browser requires an extension, but the extension is not installed.")));else{const Ke=N.pickHelper();Ke.proto.getConstraintsShowsPermissionUI&&v(),Ke.instance.getConstraints(K,Fe,(pe,We)=>{Ke.proto.getConstraintsShowsPermissionUI&&H(),pe?q(pe):z(We)})}else{let Ke="Screen Sharing is not supported in this browser";B.env.isElectron?Ke="Set the webPreferences.contextIsolation option of the Electron BrowserWindow to false or use a preload script to access the desktop capturer. For more information, see https://tokbox.com/developer/guides/screen-sharing/js/.":B.env.name==="Chrome"&&B.env.version>73&&(typeof window!==void 0?window:yr).location.protocol!=="https:"&&(Ke="https:// is required for screen sharing"),q(C(m.SCREEN_SHARING_NOT_SUPPORTED,new Error(Ke)))}})})},N}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(10)),l=a(i(14)),s=a(i(8));function d(c){c===void 0&&(c={});const u=c.Errors||s.default,h=c.ExceptionCodes||o.default,f=c.otError||(0,l.default)(),g={ICEWorkflow:u.ICE_WORKFLOW_FAILED,NewPeerConnection:u.CREATE_PEER_CONNECTION_FAILED,SetRemoteDescription:u.SET_REMOTE_DESCRIPTION_FAILED,Subscribe:{404:u.STREAM_NOT_FOUND,[h.STREAM_LIMIT_EXCEEDED]:u.STREAM_LIMIT_EXCEEDED}};return function(b,p,y,m,F){const R=`${(y?`${y}: `:"")+F} PeerConnection with connection ${m} failed: ${p}`,C=g[y]||{},B=typeof C=="string"?C:C[b],N=F==="Publisher"?h.UNABLE_TO_PUBLISH:h.UNABLE_TO_SUBSCRIBE;if(!B){const X=new Error(R);return X.code=N,X}const S=y==="ICEWorkflow"?F==="Publisher"?h.PUBLISHER_ICE_WORKFLOW_FAILED:h.SUBSCRIBER_ICE_WORKFLOW_FAILED:B===u.STREAM_LIMIT_EXCEEDED?h.STREAM_LIMIT_EXCEEDED:N;return f(B,new Error(R),S)}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(7));function l(s){s===void 0&&(s={});const d=s.OTHelpers||o.default,u=(s.global||(typeof window!==void 0?window:yr)).RTCPeerConnection;return function(f,g){d.env.name==="Firefox"&&u&&u.generateCertificate?u.generateCertificate({name:"RSASSA-PKCS1-v1_5",hash:"SHA-256",modulusLength:2048,publicExponent:new Uint8Array([1,0,1])}).catch(A=>{g(A)}).then(A=>{f.certificates=[A],g(void 0,f)}):setTimeout(()=>{g(void 0,f)})}}},function(n,r,i){r.__esModule=!0,r.default=void 0;var o={bandwidthCriticalThreshold:7e4,bandwidthFairThreshold:0,packetLossCriticalThreshold:.15,packetLossCriticalThresholdMediumBw:.2,criticalCongestionPeriod:16e3};r.default=o},function(n,r,i){(function(a){r.__esModule=!0,r.default=o;function o(l){return function(){for(var d=arguments.length,c=new Array(d),u=0;u<d;u++)c[u]=arguments[u];return new a((h,f)=>{l(...c,function(g){if(g){f(g);return}for(var A=arguments.length,b=new Array(A>1?A-1:0),p=1;p<A;p++)b[p-1]=arguments[p];if(b.length===1){h(b[0]);return}h(b)})})}}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(31)),d=E(i(111)),c=a(i(6)),u=a(i(1)),h=a(i(57)),f=a(i(3)),g=a(i(686)),A=a(i(687)),b=a(i(7)),p=a(i(106)),y=a(i(688)),m=a(i(689)),F=a(i(690)),R=a(i(691)),C=a(i(692)),B=a(i(173)),N=i(322),S=a(i(174)),X=a(i(266));function J(z){if(typeof WeakMap!="function")return null;var q=new WeakMap,Ae=new WeakMap;return(J=function(pe){return pe?Ae:q})(z)}function E(z,q){if(z&&z.__esModule)return z;if(z===null||typeof z!="object"&&typeof z!="function")return{default:z};var Ae=J(q);if(Ae&&Ae.has(z))return Ae.get(z);var Ke={},pe=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var We in z)if(We!=="default"&&Object.prototype.hasOwnProperty.call(z,We)){var xe=pe?Object.getOwnPropertyDescriptor(z,We):null;xe&&(xe.get||xe.set)?Object.defineProperty(Ke,We,xe):Ke[We]=z[We]}return Ke.default=z,Ae&&Ae.set(z,Ke),Ke}const v=S.default.VIDEO_BUFFER_TIMEOUT,j=S.default.VIDEO_LOADING_TIMEOUT,H=(0,u.default)("WidgetView");(0,p.default)();function K(z){let q=z===void 0?{}:z,Ae=q.logging,Ke=Ae===void 0?H:Ae,pe=q.OTHelpers,We=pe===void 0?b.default:pe,xe=q.waitForVideoToBePlaying,$e=xe===void 0?R.default:xe,Rt=q.VideoElementFacade,Be=Rt===void 0?(0,p.default)():Rt,qe=q.env,at=qe===void 0?f.default:qe;const Bt=(0,A.default)({window:typeof window!==void 0?window:yr}),jt=Je=>{if(Je.isCanceled())throw Ke.debug("bindVideo bailing due to cancellation"),new d.CancellationError("CANCEL")};return function(){function Je(Ye,it){let Qt=it===void 0?{}:it,_t=Qt.insertDefaultUI,Dt=_t===void 0?!0:_t,Ee=Qt.width,Ge=Ee===void 0?264:Ee,he=Qt.height,$=he===void 0?198:he,ie=Qt.fitMode,Ve=ie===void 0?"cover":ie,_e=Qt.mirror,we=_e===void 0?!1:_e,nt=Qt.insertMode,Gt=Qt.classNames,An=Qt.style,Dn=Qt.widgetType,tr=Qt.initials;this._videoElementFacade=void 0,this._container=void 0,this._posterContainer=document.createElement("div"),this._widgetContainer=document.createElement("div"),this._loading=!0,this._audioOnly=!1,this._showPoster=void 0,this._poster=void 0,this._cancelBind=void 0,(0,c.default)(this),/^(contain|cover)$/.test(Ve)===!1&&Ke.warn(`Invalid fit value "${Ve}" passed. Only "contain" and "cover" can be used.`),this._widgetType=Dn,this._fitMode=Ve,this._insertDefaultUI=Dt;const nr=(0,h.default)(this._widgetContainer);if(nr.on("click",this.userGesture.bind(this)),nr.on("touchstart",this.userGesture.bind(this),Bt?{passive:!0}:!1),this.once("destroy",()=>nr.removeAll()),this._widgetContainer.classList.add("OT_widget-container"),this._widgetContainer.style.width="100%",this._widgetContainer.style.height="100%",Dt!==!1){this._container=(0,m.default)(Ye,nt),at.isSafari&&at.isiOS&&at.iOSVersion&&at.iOSVersion<11.2&&this._container.classList.add("OT_ForceContain"),this._container.style.width=(0,g.default)(Ge),this._container.style.height=(0,g.default)($),this._container.style.overflow="hidden",(0,F.default)(this._container),we&&We.addClass(this._container,"OT_mirrored"),Gt&&Gt.trim().split(/\s+/).forEach(xr=>this._container.classList.add(xr)),this._container.classList.add("OT_loading"),this._container.classList.add(`OT_fit-mode-${Ve}`),this._container.appendChild(this._widgetContainer);const ui=We(this._container).observeSize(()=>(0,F.default)(this._container)),Pn=ui[0],hr=We.observeNodeOrChildNodeRemoval(this._container,xr=>{if(!this._videoElementFacade)return;xr.some(Di=>Di===this._widgetContainer||Di===this._videoElementFacade.domElement())&&this.destroyVideo()});this.once("destroy",()=>{Ke.debug("disconnecting observers"),Pn.disconnect(),hr.disconnect()})}this._posterContainer.classList.add("OT_video-poster"),this._widgetContainer.appendChild(this._posterContainer);const zn=document.createElement("div");zn.classList.add("OT_video-loading");const dr=document.createElement("div");dr.classList.add("OT_video-loading-spinner"),zn.appendChild(dr),this._widgetContainer.appendChild(zn),An&&An.backgroundImageURI?this.setBackgroundImageURI(An.backgroundImageURI):tr&&this.setInitials(tr)}var ve=Je.prototype;return ve.addError=function(it,Qt,_t){this._container&&(this._container.innerHTML=`<p>${it}${Qt?` <span class="ot-help-message">${Qt}</span>`:""}</p>`,We.addClass(this._container,_t||"OT_subscriber_error"),this._container.querySelector("p").offsetHeight>this._container.offsetHeight&&(this._container.querySelector("span").style.display="none"))},ve.destroy=function(){this.emit("destroy"),this.destroyVideo(),this._container&&(We.removeElement(this._container),this._container=null)},ve.setBackgroundImageURI=function(it){We.css(this._posterContainer,"backgroundImage",`url(${it})`),We.css(this._posterContainer,"backgroundSize","contain"),We.css(this._posterContainer,"opacity","1.0")},ve.setInitials=function(it){const Qt=(0,y.default)(it),_t=new XMLSerializer().serializeToString(Qt);We.css(this._posterContainer,"backgroundImage",`url('data:image/svg+xml,${_t}')`),We.css(this._posterContainer,"backgroundSize","auto 55%"),We.css(this._posterContainer,"opacity","1.0")},ve.isAudioBlocked=function(){return!!(this._videoElementFacade&&this._videoElementFacade.isAudioBlocked())},ve.unblockAudio=function(){return this._videoElementFacade.unblockAudio()},ve.userGesture=function(){this.isAudioBlocked()&&(0,B.default)().then(()=>Ke.debug("Successfully unblocked audio"),it=>Ke.error("Error retrying audio on user interaction:",it))},ve.setAudioBlockedUi=function(it){this._container&&(it?this._container.classList.add("OT_container-audio-blocked"):this._container.classList.remove("OT_container-audio-blocked"))},ve.rebindSrcObject=function(){this._videoElementFacade&&this._videoElementFacade._rebindSrcObject()},ve.pauseAndPlayVideoElement=function(){this._videoElementFacade&&this._videoElementFacade._pauseAndPlay()},ve._loadVideoBuffer=function(){var Ye=(0,l.default)(o.default.mark(function Qt(_t,Dt,Ee){var Ge,he,$,ie,Ve;return o.default.wrap(function(we){for(;;)switch(we.prev=we.next){case 0:return Ee===void 0&&(Ee={}),he=(Ge=Ee.createElement)!=null?Ge:X.default,$=!1,ie=he(),ie.srcObject=_t,we.prev=5,Ve=ie.play(),we.next=9,$e(ie,Dt);case 9:return $=we.sent,we.next=12,Ve;case 12:we.next=16;break;case 14:we.prev=14,we.t0=we.catch(5);case 16:return ie.srcObject=null,ie.remove(),we.abrupt("return",$);case 19:case"end":return we.stop()}},Qt,null,[[5,14]])}));function it(Qt,_t,Dt){return Ye.apply(this,arguments)}return it}(),ve._emitAMREvent=function(it,Qt,_t){this.emit("amrLogEvent",it,Qt,_t)},ve._createVideoElementFacade=function(it){let Qt=it._inject,_t=it.audioVolume,Dt=it.fallbackText,Ee=it.muted;this._videoElementFacade=new Be({defaultAudioVolume:parseFloat(_t),fallbackText:Dt,fitMode:this._fitMode,_inject:Qt,muted:Ee,widgetType:this._widgetType});const Ge=(0,h.default)(this._videoElementFacade);if(this._videoFacadeEvents=Ge,Ge.on("error",()=>{this.trigger("error")}),Ge.on("videoDimensionsChanged",(he,$)=>{this.trigger("videoDimensionsChanged",he,$)}),Ge.on("mediaStopped",he=>{this.trigger("mediaStopped",he)}),Ge.on("audioBlocked",()=>this.trigger("audioBlocked")),Ge.on("audioUnblocked",()=>this.trigger("audioUnblocked")),this._videoElementFacade.audioChannelType("telephony"),Ke.debug("Appending the video facade"),this._videoElementFacade.appendTo(this._widgetContainer),typeof _t<"u")try{this._videoElementFacade.setAudioVolume(_t)}catch(he){Ke.warn(`bindVideo ${he}`)}},ve._bindToStream=function(){var Ye=(0,l.default)(o.default.mark(function Qt(_t,Dt){return o.default.wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.prev=0,Ge.next=3,this._videoElementFacade.bindToStream(_t);case 3:Ge.next=14;break;case 5:if(Ge.prev=5,Ge.t0=Ge.catch(0),!Dt.isCanceled()){Ge.next=12;break}throw Ke.debug("Refusing to destroyVideo as bindVideo was cancelled"),new d.CancellationError("CANCEL");case 12:throw this.destroyVideo(),Ge.t0;case 14:case"end":return Ge.stop()}},Qt,this,[[0,5]])}));function it(Qt,_t){return Ye.apply(this,arguments)}return it}(),ve._getNewBindCancellation=function(){this._cancelBind&&(Ke.debug("Cancelling last bindVideo request"),this._cancelBind.cancel());const it=new d.default;return this._cancelBind=it,this.once("destroy",()=>it.cancel()),it},ve._triggerVideoElementCreated=function(){const it=Qt=>{this.trigger("videoElementCreated",Qt),this._insertDefaultUI&&We.addClass(Qt,"OT_video-element")};this._videoElementFacade.domElement()?it(this._videoElementFacade.domElement()):this._videoFacadeEvents.on("videoElementCreated",Qt=>{it(Qt)})},ve._waitForVideoResolution=function(){var Ye=(0,l.default)(o.default.mark(function Qt(_t){return o.default.wrap(function(Ee){for(;;)switch(Ee.prev=Ee.next){case 0:if(!(!this.audioOnly()&&_t.getVideoTracks().length>0)){Ee.next=5;break}return Ke.debug("Waiting for correct resolution"),Ee.next=4,(0,C.default)(this._videoElementFacade,5e3);case 4:Ke.debug(`Resolution: ${this._videoElementFacade.videoWidth()}x${this._videoElementFacade.videoHeight()}`);case 5:case"end":return Ee.stop()}},Qt,this)}));function it(Qt){return Ye.apply(this,arguments)}return it}(),ve._tryToLoadVideoBuffer=function(){var Ye=(0,l.default)(o.default.mark(function Qt(_t,Dt,Ee){var Ge,he,$,ie;return o.default.wrap(function(_e){for(;;)switch(_e.prev=_e.next){case 0:jt(Dt),this._emitAMREvent("AMRLoadVideoBuffer","Attempt"),Ge=Dt.onCancel(()=>this._emitAMREvent("AMRLoadVideoBuffer","Cancel")),he=Math.ceil(j/v),$=!1;case 5:if(!(!$&&he)){_e.next=13;break}return _e.next=8,this._loadVideoBuffer(_t,v);case 8:$=_e.sent,jt(Dt),he--,_e.next=5;break;case 13:if(Ge(),$){_e.next=20;break}if(this._emitAMREvent("AMRLoadVideoBuffer","Failure"),!Ee){_e.next=19;break}throw ie=(0,N.createAmrVideoBufferError)(),ie;case 19:return _e.abrupt("return");case 20:this._emitAMREvent("AMRLoadVideoBuffer","Success"),this._videoFacadeEvents.on("amrLogEvent",(we,nt,Gt)=>{this._emitAMREvent(we,nt,Gt)});case 22:case"end":return _e.stop()}},Qt,this)}));function it(Qt,_t,Dt){return Ye.apply(this,arguments)}return it}(),ve.bindVideo=function(){var Ye=(0,l.default)(o.default.mark(function Qt(_t,Dt,Ee){var Ge,he,$,ie,Ve,_e,we,nt;return o.default.wrap(function(An){for(;;)switch(An.prev=An.next){case 0:if(Ge=Dt.audioVolume,he=Dt.muted,$=Dt.fallbackText,ie=Dt.hasVideo,Ve=Dt._inject,Ee===void 0&&(Ee=!1),Ke.debug("bindVideo ",{webRTCStream:_t}),_e=!!this._videoElementFacade,we=this._getNewBindCancellation(),_e){An.next=9;break}this._createVideoElementFacade({_inject:Ve,audioVolume:Ge,fallbackText:$,muted:he}),An.next=13;break;case 9:if(!(_t instanceof MediaStream)){An.next=13;break}if(!ie){An.next=13;break}return An.next=13,this._tryToLoadVideoBuffer(_t,we,Ee);case 13:return An.next=15,this._bindToStream(_t,we);case 15:return _e||this._triggerVideoElementCreated(),jt(we),nt=$e(this._videoElementFacade,5e3),An.next=20,this._waitForVideoResolution(_t);case 20:return Ke.debug("Waiting for video to be playing"),An.next=23,nt;case 23:Ke.debug("Video is playing"),jt(we);case 25:case"end":return An.stop()}},Qt,this)}));function it(Qt,_t,Dt){return Ye.apply(this,arguments)}return it}(),ve.bindAudioTrackOnly=function(){this._videoElementFacade&&this._videoElementFacade.bindAudioTrackOnly()},ve.destroyVideo=function(){this._videoElementFacade&&(this._videoElementFacade.destroy(),this._videoElementFacade=null)},ve.video=function(){return this._videoElementFacade},ve.showPoster=function(it){return it===void 0?!We.isDisplayNone(this._posterContainer):(this._showPoster=it,We[it?"show":"hide"](this._posterContainer),this.showPoster())},ve.poster=function(it){return it===void 0?We.css(this._posterContainer,"backgroundImage"):(this._poster=it,We.css(this._posterContainer,"backgroundImage",`url(${it})`),this.poster())},ve.loading=function(it){return it===void 0?this._loading:(this._loading=!!it,this._container&&this._container.classList[it?"add":"remove"]("OT_loading"),this.loading())},ve.audioOnly=function(it){return it===void 0?this._audioOnly:(this._audioOnly=it,this._container&&this._container.classList[it?"add":"remove"]("OT_audio-only"),this.audioOnly())},ve.domId=function(){return this._container&&this._container.getAttribute("id")},ve.setSinkId=function(it){if(this._videoElementFacade)return this._videoElementFacade.setSinkId(it)},(0,s.default)(Je,[{key:"domElement",get:function(){return this._container}},{key:"videoElement",get:function(){return this._videoElementFacade&&this._videoElementFacade.domElement()||void 0}},{key:"width",get:function(){return this.videoElement&&this.videoElement.offsetWidth}},{key:"height",get:function(){return this.videoElement&&this.videoElement.offsetHeight}}]),Je}()}var Fe=K;r.default=Fe},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(24)),s=()=>a.all(l.default.subscribers.where().map(d=>{if(d.isAudioBlocked())return d._.unblockAudio()}));r.default=s}).call(this,i(2))},function(n,r,i){r.__esModule=!0,r.default=void 0;var o={KEEP_SENDING_MEDIA_AFTER_TRANSITIONED:5*1e3,VIDEO_LOADING_TIMEOUT:5*1e3,TRANSITION_TIMEOUT:6*1e3,KEEP_SENDING_MEDIA_TO_KEEP_ALIVE:3*1e3,KEEP_SENDING_RTCP_DELAY:30*1e3,VIDEO_BUFFER_TIMEOUT:2*1e3};r.default=o},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>o==="P2P"?"RELAYED":"ROUTED";r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(1));const d=(0,s.default)("MediaProcessorConnector");let c=function(f){var g=this;this.setTrack=function(){var A=(0,l.default)(o.default.mark(function b(p){var y;return o.default.wrap(function(F){for(;;)switch(F.prev=F.next){case 0:return y=null,F.prev=1,F.next=4,g.connector.setTrack(p);case 4:y=F.sent,g.originalTrack=p,F.next=11;break;case 8:F.prev=8,F.t0=F.catch(1),d.error(`Error setting track: ${F.t0}`);case 11:return F.abrupt("return",y);case 12:case"end":return F.stop()}},b,null,[[1,8]])}));return function(b){return A.apply(this,arguments)}}(),this.destroy=(0,l.default)(o.default.mark(function A(){return o.default.wrap(function(p){for(;;)switch(p.prev=p.next){case 0:return p.prev=0,p.next=3,g.connector.destroy();case 3:p.next=8;break;case 5:p.prev=5,p.t0=p.catch(0),d.warn(`Error destroying connector: ${p.t0}`);case 8:case"end":return p.stop()}},A,null,[[0,5]])})),this.stopOriginalTrack=()=>{this.originalTrack&&(this.originalTrack.stop(),this.originalTrack=null)},this.connector=f};c.isValidConnector=h=>typeof(h==null?void 0:h.setTrack)=="function"&&typeof(h==null?void 0:h.destroy)=="function";var u=c;r.default=u},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=In;var l=o(i(4)),s=o(i(5)),d=o(i(332)),c=o(i(333)),u=o(i(58)),h=o(i(9)),f=o(i(61)),g=o(i(62)),A=o(i(295)),b=o(i(40)),p=o(i(51)),y=o(i(712)),m=o(i(274)),F=o(i(155)),R=o(i(16)),C=o(i(206)),B=vr(i(111)),N=i(722),S=o(i(76)),X=i(25),J=o(i(723)),E=o(i(6)),v=o(i(1)),j=o(i(94)),H=o(i(3)),K=o(i(22)),Fe=o(i(725)),z=o(i(73)),q=o(i(10)),Ae=o(i(23)),Ke=i(309),pe=o(i(150)),We=o(i(29)),xe=o(i(30)),$e=o(i(171)),Rt=o(i(327)),Be=o(i(286)),qe=o(i(14)),at=o(i(334)),Bt=o(i(8)),jt=o(i(77)),Ne=o(i(144)),Je=o(i(162)),ve=o(i(726)),Ye=o(i(172)),it=o(i(727)),Qt=o(i(173)),_t=o(i(728)),Dt=o(i(729)),Ee=o(i(730)),Ge=o(i(175)),he=o(i(269)),$=o(i(301)),ie=o(i(154)),Ve=o(i(17)),_e=o(i(168)),we=o(i(311)),nt=o(i(7)),Gt=i(107),An=o(i(283)),Dn=o(i(312)),tr=o(i(319)),nr=o(i(157)),zn=o(i(159)),dr=o(i(330)),Dr=o(i(731)),ui=o(i(176)),Pn=o(i(736)),hr=o(i(737)),xr=o(i(739)),Hi=i(740),Di=o(i(324)),Da=o(i(174)),oi=o(i(741)),Ra=o(i(180)),Va=o(i(742)),fi=o(i(743)),_a=i(71),dn=o(i(744)),St=o(i(745)),mn=o(i(746));function _n(Fa){if(typeof WeakMap!="function")return null;var Ml=new WeakMap,hi=new WeakMap;return(_n=function($o){return $o?hi:Ml})(Fa)}function vr(Fa,Ml){if(Fa&&Fa.__esModule)return Fa;if(Fa===null||typeof Fa!="object"&&typeof Fa!="function")return{default:Fa};var hi=_n(Ml);if(hi&&hi.has(Fa))return hi.get(Fa);var ml={},$o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Qa in Fa)if(Qa!=="default"&&Object.prototype.hasOwnProperty.call(Fa,Qa)){var Gl=$o?Object.getOwnPropertyDescriptor(Fa,Qa):null;Gl&&(Gl.get||Gl.set)?Object.defineProperty(ml,Qa,Gl):ml[Qa]=Fa[Qa]}return ml.default=Fa,hi&&hi.set(Fa,ml),ml}const ha=(0,Ye.default)(),Mi=(0,K.default)(),Fi=Mi.getInputMediaDevices;function In(Fa){Fa===void 0&&(Fa={});let Ml=Fa,hi=(0,c.default)({},((0,d.default)(Ml),Ml));["processPubOptions"].forEach(Ko=>{(0,F.default)(hi[Ko],`${Ko} dependency must be injected into Publisher`)});const ml=hi.AnalyticsHelper||xe.default,$o=hi.createAudioFallbackCoordinator||J.default,Qa=hi.calculateCapableSimulcastStreams||he.default,Gl=hi.createChromeMixin||(0,$.default)(),Gi=hi.deviceHelpers||(0,K.default)(),Lt=hi.EnvironmentLoader||ie.default,$t=hi.Errors||Bt.default,At=hi.Events||(0,Ve.default)(),bt=hi.ExceptionCodes||q.default,zt=hi.interpretPeerConnectionError||(0,_e.default)(),Ot=hi.IntervalRunner||z.default,Ct=hi.logging||(0,v.default)("Publisher"),Kt=hi.Microphone||(0,we.default)(),cn=hi.otError||(0,qe.default)(),Jn=hi.OTErrorClass||Ae.default,qt=hi.OTHelpers||nt.default,Mn=hi.parseIceServers||Gt.parseIceServers,mr=hi.PUBLISH_MAX_DELAY||An.default,Ur=hi.PublisherPeerConnection||(0,Dn.default)(),sr=hi.PublishingState||(0,tr.default)(),Nn=hi.StreamChannel||nr.default,Gr=hi.systemRequirements||zn.default,$r=hi.VideoOrientation||(0,pe.default)(),kr=hi.WidgetView||ha,Mr=hi.global||(typeof window!==void 0?window:yr),Ba=hi.createSendMethod||dr.default,Io=hi.MediaProcessor||Dr.default,qo=ui.default,Si=hi.createVonageNoiseSuppression||N.createVonageNoiseSuppression,Go=hi.setScalabilityMode||fi.default,Za=(hi.addAudioInputDevicesChangeListenerFactory||hr.default)(),ta=hi.shouldLogMediaProcessorEvents||Pn.default,bo=hi.processPubOptions,Eo=Object.assign({},Da.default,hi.AMRStateDurations),jl=Eo.KEEP_SENDING_MEDIA_AFTER_TRANSITIONED,So=Eo.KEEP_SENDING_MEDIA_TO_KEEP_ALIVE,so=Eo.KEEP_SENDING_RTCP_DELAY;return function(Co){var ti=this;Co===void 0&&(Co={});let yo=(0,E.default)({});const ss=new C.default,Zl=(0,Di.default)(),ll=ht=>ss.get(ht),Jl=(ht,P)=>ss.set(ht,P);(0,E.default)(this);const Hl=(0,Je.default)();let el=new ml;Gr.check()||Gr.upgrade();let Ji,Pr,Ys,_l,Qn,Kn,Fr,li,ki,$a,oa,hl,wa=!1,qa,yn,En,Un,Rr;const si={},Br={};let Jo;const ho=5e3;let Qo=!1,Tl,ga,Zd;const gl=Co,ru=gl._enableSenderStats,eo=()=>this.session||Zd||{isConnected(){return!1}},Hd=()=>this.streamId||"",$l=[],ua=new Io,Id=new xr.default;this.once("publishComplete",ht=>{if(!ht){var P;wa=!0,qa=(P=this.session)!=null&&P.sessionInfo.p2pEnabled?"P2P":"MANTIS"}}),this.on("sourceStreamIdChanged",ht=>{qa=ht,Zl.completeTransitionTo(qa)}),this.on("audioAcquisitionProblem",ht=>{let P=ht.method;Sn("publisher:audioAcquisitionProblem","Event",{didPublishComplete:wa,method:P})});function fd(){return{connectionId:eo().isConnected()?eo().connection.connectionId:null,streamId:Hd(),widgetType:"Publisher"}}const dt=ht=>{const P=Object.keys($t).map(rt=>$t[rt]),ee=cn(P.indexOf(ht.name)>-1?ht.name:$t.MEDIA_ERR_ABORTED,ht,bt.UNABLE_TO_PUBLISH);Ct.error(`onStreamAvailableError ${ee.name}: ${ee.message}`),Qn.set("Failed"),Ji&&(Ji.destroy(),Ji=null);const Re={failureReason:"GetUserMedia",failureCode:bt.UNABLE_TO_PUBLISH,failureMessage:`OT.Publisher failed to access camera/mic: ${ee.message}`};bl("Failure",{},Re),Jn.handleJsException({error:ee,errorMsg:Re.failureReason,code:Re.failureCode,target:this,analytics:el}),this.trigger("publishComplete",ee)},Ft=ht=>{const P=(0,f.default)(ht);P.code=bt.UNABLE_TO_PUBLISH,Ct.error(`OT.Publisher.onScreenSharingError ${P.message}`),Qn.set("Failed"),P.message=`Screensharing: ${P.message}`,this.trigger("publishComplete",P),bl("Failure",{},{failureReason:"ScreenSharing",failureMessage:P.message}),Ji&&(Ji.destroy(),Ji=null)},Se=ht=>{const P=(0,f.default)(ht);let ee;try{ee=window.self!==window.top}catch{}(typeof window!==void 0?window:yr).location.protocol!=="https:"&&(qn?P.message+=" Note: https:// is required for screen sharing.":(0,Be.default)()&&qt.env.hostName!=="localhost"&&(P.message+=` Note: ${qt.env.name} requires HTTPS for camera and microphone access.`)),ee&&!qn&&(P.message+=" Note: Check that the iframe has the allow attribute for camera and microphone"),Ct.error(P.message),Qn.set("Failed"),P.message=`OT.Publisher Access Denied: Permission Denied: ${P.message}`,P.code=bt.UNABLE_TO_PUBLISH,Ji&&(Ji.destroy(),Ji=null),bl("Cancel",{reason:"AccessDenied"}),this.trigger("publishComplete",P),this.dispatchEvent(new Ne.default(We.default.ACCESS_DENIED))},le=ht=>{throw ht instanceof Error||/^\[object .*Error\]$/.test(Object.prototype.toString.call(ht))||(ht=new Error("Unknown error has occurred. Stream is not available.")),ht.name===$t.USER_MEDIA_ACCESS_DENIED||ht.name===$t.NOT_SUPPORTED&&ht.originalMessage.match(/Only secure origins/)?Se(ht):bo.isScreenSharing?Ft(ht):dt(ht),ht},Le=()=>{Sn("accessDialog","Opened"),this.dispatchEvent(new Ne.default(We.default.ACCESS_DIALOG_OPENED,!0))},Xe=()=>{Sn("accessDialog","Closed"),this.dispatchEvent(new Ne.default(We.default.ACCESS_DIALOG_CLOSED,!1))},Oe=(0,R.default)(),mt={};let Wt=!1,Mt={},pn=!1,on=bo(Co,"OT.Publisher",()=>Qn&&Qn.isDestroyed());on.on({accessDialogOpened:Le,accessDialogClosed:Xe});const gn=on,qn=gn.isScreenSharing,cr=gn.isCustomAudioTrack,Gn=gn.isCustomVideoTrack,Or=gn.shouldAllowAudio,un=gn.properties,Ar=gn.getUserMedia;Object.defineProperty(this,"loudness",{writable:!1,value:void 0,configurable:!0});function mo(ht){ht.forEach(P=>P())}const ds=(ht,P,ee)=>ht.addEventListener?(ht.addEventListener(P,ee),()=>ht.removeEventListener(P,ee)):()=>{};(function(){const P=[];yo.on("streamDestroy",()=>mo(P)),yo.on("streamChange",()=>{mo(P);const ee=Pr.getAudioTracks().map(Re=>ds(Re,"ended",()=>{pn=!0,this.trigger("audioAcquisitionProblem",{method:"trackEndedEvent"})}));P.splice(0,P.length,...ee)})}).call(this),function(){const P=[];yo.on("streamDestroy",()=>mo(P)),yo.on("streamChange",()=>{mo(P),Kr()||Pr.getTracks().forEach(ee=>{ee.addEventListener&&(P.push(ds(ee,"mute",()=>{da()})),P.push(ds(ee,"unmute",()=>{da()})))})})}();const Kr=()=>{if(qn)return!0;const P=["text","detail"].includes(un.videoContentHint);return Gn&&P},Sn=Co.logAnalyticsEvent||((ht,P,ee,Re,rt)=>{let st=(0,h.default)({action:ht,variation:P,payload:ee},fd(),Re);P==="Failure"&&(st=(0,h.default)(Mt,st)),Mt=(0,b.default)(st,"sessionId","connectionId","partnerId"),el.logEvent(st,rt)}),Il=()=>{if(!ta(this.session)){ua.disableLogging();return}const P=this.session.apiKey;ua.enableLogging(P)},bl=function(P,ee,Re){ee===void 0&&(ee={}),Re===void 0&&(Re={}),Re.failureReason!=="Non-fatal"&&(P==="Attempt"&&(Fr=new Date().getTime(),ga&&(ga.stop(),Ct.error("_connectivityAttemptPinger should have been cleaned up")),ga=new Ot(()=>{Sn("Publish","Attempting",ee,Object.assign({},fd(),Re))},1/5,6)),P==="Failure"||P==="Success"||P==="Cancel"?(ga?(ga.stop(),ga=void 0):Ct.warn(`Received connectivity event: "${P}" without "Attempt"`),Sn("Publish",P,Object.assign({videoInputDevices:ki,audioInputDevices:li,videoInputDeviceCount:ki?ki.length:void 0,audioInputDeviceCount:li?li.length:void 0,selectedVideoInputDeviceId:$a,selectedAudioInputDeviceId:oa},ee),Object.assign({attemptDuration:new Date().getTime()-Fr},Re))):Sn("Publish",P,ee,Re))},to=(ht,P)=>{Sn("ICERestart",ht,P)},Ri=(ht,P,ee)=>{P==="Attempt"?(si[ht]=new Date().getTime(),Sn(ht,P,ee)):(P==="Failure"||P==="Success")&&Sn(ht,P,ee,{attemptDuration:new Date().getTime()-si[ht]})},Mo=function(P,ee){ee===void 0&&(ee={}),Ri("RoutedToRelayedTransition",P,ee)},ed=function(P,ee){ee===void 0&&(ee={}),Ri("RelayedToRoutedTransition",P,ee)},Ds=(0,p.default)(()=>{Sn("GetStats","Called")}),sa=(0,p.default)(()=>{Sn("GetRtcStatsReport","Called")}),no=ht=>{var P;let ee=ht.parsedStats,Re=ht.simulcastEnabled,rt=ht.remoteConnectionId,st=ht.peerId,tn=ht.sourceStreamId;const Xt={peerId:st,widgetType:"Publisher",connectionId:this.session&&this.session.isConnected()?this.session.connection.connectionId:null,streamId:this.streamId,width:Ji.width,height:Ji.height,audioTrack:Pr&&Pr.getAudioTracks().length>0,hasAudio:Wi(),publishAudio:un.publishAudio,videoTrack:Pr&&Pr.getVideoTracks().length>0,hasVideo:Ls(),publishVideo:un.publishVideo,audioSource:cr?"Custom":void 0,duration:Ys?Math.round((new Date().getTime()-Ys.getTime())/1e3):0,remoteConnectionId:rt,scalableVideo:Re,sourceStreamId:(0,Ge.default)(tn),publisherAudioFallbackEnabled:((P=un.audioFallback)==null?void 0:P.publisher)||!1};let en=qn&&Gn&&"Screen"||qn&&Co.videoSource||Gn&&"Custom"||un.constraints.video&&"Camera"||null;(0,A.default)(en)&&(en=(0,y.default)(en)),Xt.videoSource=en;const fn={videoWidth:this.videoWidth(),videoHeight:this.videoHeight()},ge=(0,h.default)({},Xt,ee,fn);el.logQOS(ge),this.trigger("qos",ge)},Gd=()=>{var ht,P;let ee=((ht=un.videoDimensions)==null?void 0:ht.width)||640,Re=((P=un.videoDimensions)==null?void 0:P.height)||480;if(un.publishVideo){var rt;const st=(rt=Ji)==null?void 0:rt.video();ee=(st==null?void 0:st.videoWidth())||ee,Re=(st==null?void 0:st.videoHeight())||Re}return{width:ee,height:Re}},cc=ht=>{Ct.error("OT.Publisher State Change Failed: ",ht.message),Ct.debug(ht)},pu=()=>{if(Qn.isDestroyed()){Ji&&Ji.destroyVideo();return}Ct.debug("OT.Publisher.onLoaded; resolution:",`${this.videoWidth()}x${this.videoHeight()}`),Qn.set("MediaBound"),(0,Qt.default)().catch(Ct.error),Ji.loading(this.session?!this.stream:!1),Wt=!0},Ti=ht=>{const P=cn($t.CONNECT_FAILED,ht,bt.P2P_CONNECTION_FAILED);P.message=`OT.Publisher PeerConnection Error: ${P.message}`,bl("Failure",{},{failureReason:"PeerConnectionError",failureCode:P.code,failureMessage:P.message}),Qn.set("Failed"),this.trigger("publishComplete",P),Jn.handleJsException({error:P,target:this,analytics:el})},Ec=()=>{Pr&&(yo.emit("streamDestroy"),Mr.MediaStreamTrack&&Mr.MediaStreamTrack.prototype.stop?Pr.getTracks().forEach(ht=>ht.stop()):Pr.stop())},xl=()=>{const ht=H.default.isiOS&&H.default.iOSVersion>=15&&H.default.iOSVersion<15.2,P=Pr.getVideoTracks()[0];if(!ht||!P)return;const ee=()=>{!document.hidden&&Ji&&Ji.rebindSrcObject()};document.addEventListener("visibilitychange",ee)},Hc=()=>{const ht=H.default.isiOS&&H.default.iOSVersion>=13.3,P=Pr.getAudioTracks()[0];ht&&P&&(P.onmute=()=>hd(P),P.onunmute=()=>Al(P))},Sc=function(){var ht=(0,s.default)(l.default.mark(function P(){var ee;return l.default.wrap(function(rt){for(;;)switch(rt.prev=rt.next){case 0:if(ee={muted:!0},Ji){rt.next=3;break}throw new Error("Cannot bind video after widget view has been destroyed");case 3:return rt.abrupt("return",Ji.bindVideo(Pr,ee));case 4:case"end":return rt.stop()}},P)}));return function(){return ht.apply(this,arguments)}}(),td=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re;return l.default.wrap(function(st){for(;;)switch(st.prev=st.next){case 0:if(Ct.debug("OT.Publisher.onStreamAvailable"),Qn.set("BindingMedia"),un.videoContentHint!==void 0&&(0,Ke.setVideoContentHint)(ee,un.videoContentHint),Ec(),Pr=ee,!un.videoFilter){st.next=14;break}return st.prev=6,st.next=9,ti.applyVideoFilter(un.videoFilter);case 9:st.next=14;break;case 11:st.prev=11,st.t0=st.catch(6),Ct.error(`Error applying video filter: ${st.t0}`);case 14:if(!un.audioFilter){st.next=23;break}return st.prev=15,st.next=18,ti.applyAudioFilter(un.audioFilter);case 18:st.next=23;break;case 20:st.prev=20,st.t1=st.catch(15),Ct.error(`Error applying audio filter: ${st.t1}`);case 23:yo.emit("streamChange"),Hc(),xl(),Re=(tn,Xt)=>{let en;return tn.forEach(fn=>{if(fn.deviceId)en=fn.deviceId.toString();else if(fn.label&&Xt){const ge=(0,g.default)(Xt,ot=>ot.label===fn.label);ge&&(en=ge.deviceId)}}),en},$a=Re(Pr.getVideoTracks(),ki),oa=Re(Pr.getAudioTracks(),li),_l=new Kt(Pr,!un.publishAudio),bs(),Fo(),ti.accessAllowed=!0,ti.dispatchEvent(new Ne.default(We.default.ACCESS_ALLOWED,!1));case 34:case"end":return st.stop()}},P,null,[[6,11],[15,20]])}));return function(ee){return ht.apply(this,arguments)}}(),Vs=ht=>{Ct.error("OT.Publisher.onPublishingTimeout");let P,ee;pn?(P=$t.CHROME_MICROPHONE_ACQUISITION_ERROR,ee="Unable to publish because your browser failed to get access to your microphone. You may need to fully quit and restart your browser to get it to work. See https://bugs.chromium.org/p/webrtc/issues/detail?id=4799 for more details."):(P=$t.TIMEOUT,ee="Could not publish in a reasonable amount of time");const Re={failureReason:"ICEWorkflow",failureCode:bt.UNABLE_TO_PUBLISH,failureMessage:"OT.Publisher failed to publish in a reasonable amount of time (timeout)"};bl("Failure",{},Re),Jn.handleJsException({errorMsg:Re.failureReason,code:Re.failureCode,target:this,analytics:el}),ht.isConnected()&&this.streamId&&ht._.streamDestroy(this.streamId),this.disconnect(),Qn.isDestroyed()||Qn.set("MediaBound"),this.trigger("publishComplete",cn(P,new Error(ee),bt.UNABLE_TO_PUBLISH))},qd=ht=>{const P=cn($t.MEDIA_ERR_DECODE,ht,bt.UNABLE_TO_PUBLISH);P.message=`OT.Publisher while playing stream: ${P.message}`,Ct.error("OT.Publisher.onVideoError:",P),Sn("stream",null,{reason:P.message});const ee=Qn.isAttemptingToPublish();Qn.set("Failed"),ee?this.trigger("publishComplete",P):this.trigger("error",P.message),Jn.handleJsException({error:P,target:this,analytics:el})};this._setWebRTCStream=ht=>{Pr=ht},this._setCurrentVideoFilter=ht=>{ql=ht},this._getCurrentVideoFilter=()=>ql,this._setCurrentAudioFilter=ht=>{ys=ht},this._getMediaProcessor=()=>ua,this._removePeerConnection=ht=>{var P;if(!ht)return;const ee=ll(ht),Re=ee.peerConnectionId;delete mt[Re],ht.destroy(),(P=kc)==null||P.onPeerConnectionDisconnected()},this._removeSubscriber=ht=>{this.session.sessionInfo.isAdaptiveEnabled&&qa==="P2P"&&this._.startRelayedToRoutedTransition(),uc(ht).then(ee=>{ee.forEach(Re=>this._removePeerConnection(Re))})};const xd=ht=>{const P=ll(ht),ee=P.remoteSubscriberId,Re=P.peerConnectionId;Ct.debug("Subscriber has been disconnected from the Publisher's PeerConnection"),Sn("disconnect","PeerConnection",{subscriberConnection:Re}),this._removeSubscriber(ee)},Jd=function(){var ht=(0,s.default)(l.default.mark(function P(ee,Re){var rt,st,tn,Xt,en,fn,ge,ot,Vt,Ut,Rn;return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:if(rt=Re.reason,st=Re.prefix,tn=ti.session&&ti.session.sessionInfo,!(st==="ICEWorkflow"&&tn&&tn.reconnection&&Wt)){Bn.next=5;break}return Ct.debug("Ignoring peer connection failure due to possibility of reconnection."),Bn.abrupt("return");case 5:return Xt=ll(ee)||{},en=Xt.remoteConnectionId,fn=en===void 0?"(not found)":en,ge=Xt.peerConnectionId,ot=zt(void 0,rt,st,fn,"Publisher"),Vt={hasRelayCandidates:ee&&ee.hasRelayCandidates()},Ut={failureReason:st||"PeerConnectionError",failureCode:ot.code,failureMessage:ot.message},Qn.isPublishing()?Ut.reason="Non-fatal":ti.trigger("publishComplete",ot),bl("Failure",Vt,Ut),Jn.handleJsException({errorMsg:`OT.Publisher PeerConnection Error: ${rt}`,code:ot.code,target:ti,analytics:el}),Bn.next=14,mt[ge];case 14:Rn=Bn.sent,Rn.destroy(),delete mt[ge];case 17:case"end":return Bn.stop()}},P)}));return function(ee,Re){return ht.apply(this,arguments)}}(),xc=ht=>this.session.sessionInfo.isAdaptiveEnabled&&ht.getSourceStreamId()==="P2P",Es=ht=>{const P=ll(ht),ee=P.remoteConnectionId;to("Success",{remoteConnectionId:ee})},ec=ht=>{const P=ll(ht),ee=P.remoteConnectionId;to("Failure",{reason:"ICEWorkflow",message:"OT.Publisher PeerConnection Error: The stream was unable to connect due to a network error. Make sure your connection isn't blocked by a firewall.",remoteConnectionId:ee})},Ms=function(){var ht=(0,s.default)(l.default.mark(function P(ee,Re){var rt,st,tn,Xt,en,fn,ge,ot,Vt,Ut,Rn,kn,Bn,ni,Uo;return l.default.wrap(function(ji){for(;;)switch(ji.prev=ji.next){case 0:if(rt=ti.session.sessionInfo,st=rt.isAdaptiveEnabled,tn=rt.p2pEnabled,Xt=Re.getSourceStreamId(),Br[Xt]=ee,ee==="disconnected"&&setTimeout(()=>{const To=ti.session._.isSocketReconnecting,Ja=ti.session._.getSocket().is("connected")&&!To();if(Br[Xt]==="disconnected"&&Ja){const vl=ll(Re),Ss=vl.remoteConnectionId;to("Attempt",{remoteConnectionId:Ss}),Re.iceRestart()}},2e3),ee!=="connected"){ji.next=26;break}if(clearTimeout(Jo),!st){ji.next=26;break}return ji.next=9,go();case 9:if(ji.t0=en=ji.sent,ji.t0!=null){ji.next=14;break}ji.t1=void 0,ji.next=15;break;case 14:ji.t1=en.iceConnectionStateIsConnected();case 15:return ge=ji.t1,ji.next=18,Gc();case 18:if(ji.t2=fn=ji.sent,ji.t2!=null){ji.next=23;break}ji.t3=void 0,ji.next=24;break;case 23:ji.t3=fn.iceConnectionStateIsConnected();case 24:ot=ji.t3,ge&&ot&&Hs();case 26:if(ee!=="failed"){ji.next=34;break}if(Vt=ti.session._.isSocketReconnecting,Ut=ti.session._.getSocket(),Rn=Ut.is("connected")&&!Vt(),!(!Rn||Xt!==qa)){ji.next=32;break}return ji.abrupt("return");case 32:kn=function(es){es===void 0&&(es=()=>a.resolve(!1)),Jo=setTimeout((0,s.default)(l.default.mark(function Ja(){var vl;return l.default.wrap(function(gc){for(;;)switch(gc.prev=gc.next){case 0:return gc.next=2,es();case 2:vl=gc.sent,vl||ti.session._.streamDestroy(ti.streamId,Xt);case 4:case"end":return gc.stop()}},Ja)})),ho)},tn?(Bn=ll(Re),ni=Bn.remoteSubscriberId,ti._removeSubscriber(ni),Uo=function(){var To=(0,s.default)(l.default.mark(function es(){var Ja;return l.default.wrap(function(Ss){for(;;)switch(Ss.prev=Ss.next){case 0:return Ss.next=2,cs();case 2:return Ja=Ss.sent,Ss.abrupt("return",Ja.length!==0);case 4:case"end":return Ss.stop()}},es)}));return function(){return To.apply(this,arguments)}}(),kn(Uo)):st&&Xt==="P2P"?ti._.startRelayedToRoutedTransition():kn();case 34:case"end":return ji.stop()}},P)}));return function(ee,Re){return ht.apply(this,arguments)}}(),Cd=ht=>{ht.setP2PMaxBitrate(),ht.startEncryption(this.session.connection.id),xc(ht)&&Mo("Success")},Wc=ht=>{if(Qn.current!=="PublishingToSession")throw new Error("assignStream called when publisher is not successfully publishing");Hl.releaseAll(),this.stream=ht,this.stream.on("destroyed",this.disconnect,this),Hl.add(()=>{this.stream&&this.stream.off("destroyed",this.disconnect,this)}),Qn.set("Publishing"),Ji.loading(!Wt),Ys=new Date,this.dispatchEvent(new At.StreamEvent("streamCreated",ht,null,!1)),bl("Success"),this.trigger("publishComplete",null,this)},Nc=ht=>{let P=ht.peerConnectionId,ee=ht.send,Re=ht.log,rt=ht.logQoS,st=ht.sourceStreamId;if(fc(P))return a.reject(new Error("PeerConnection already exists"));const tn=Qa({isChromiumEdge:qt.env.isChromiumEdge,browserName:qt.env.name,isScreenSharing:qn,isCustomVideoTrack:Gn,sessionInfo:this.session.sessionInfo,constraints:un.constraints,videoDimensions:Gd(),capableSimulcastScreenshare:un.capableSimulcastScreenshare,scalableVideo:un.scalableVideo});return mt[P]=a.all([this.session._.getIceConfig(),this.session._.getVideoCodecsCompatible(Pr)]).then(Xt=>{let en=Xt[0],fn=Xt[1],ge=Pr;if(!fn){ge=Pr.clone();const Vt=ge.getVideoTracks(),Ut=Vt[0];Ut&&(Ut.stop(),ge.removeTrack(Ut))}const ot=new Ur({iceConfig:en,sendMessage:(Vt,Ut)=>{Vt==="offer"&&this.trigger("connected"),ee({type:Vt,content:Ut})},webRTCStream:ge,channels:un.channels,capableSimulcastStreams:tn,overrideSimulcastEnabled:Co._enableSimulcast,logAnalyticsEvent:Re,offerOverrides:{enableDtx:un.enableDtx,enableStereo:un.enableStereo,audioBitrate:un.audioBitrate,priorityVideoCodec:un._priorityVideoCodec||this.session.sessionInfo.priorityVideoCodec,codecFlags:un._codecFlags||this.session._.getCodecFlags()},answerOverrides:this.session.sessionInfo.p2pEnabled?void 0:{audioBitrate:un.audioBitrate},sourceStreamId:st,isP2pEnabled:this.session.sessionInfo.p2pEnabled,sessionId:this.session.id,keyStore:this.session.keyStore,sFrameClientStore:this.session.sFrameClientStore,isE2ee:this.session._.isE2ee(),audioFallbackEnabled:un.publisherAudioFallbackEnabled,resolution:{width:this.videoWidth(),height:this.videoHeight()}});return ot.on({disconnected:()=>xd(ot),error:Vt=>{let Ut=Vt.reason,Rn=Vt.prefix;return Jd(ot,{reason:Ut,prefix:Rn})},qos:rt,iceRestartSuccess:()=>Es(ot),iceRestartFailure:()=>ec(ot),iceConnectionStateChange:Vt=>Ms(Vt,ot),audioAcquisitionProblem:()=>{pn=!0,this.trigger("audioAcquisitionProblem",{method:"getStats"})},audioFallbackStateChange:Vt=>kc.onPeerConnectionStateChange(Object.assign({},Vt,{peerConnection:ot,publishVideo:un.publishVideo,stream:this.stream,peerId:ll(ot).peerId}))}),ot.once("connected",()=>Cd(ot)),new a((Vt,Ut)=>{const Rn=kn=>{Ut(kn)};ot.once("error",Rn),ot.init(Kn,kn=>{if(kn)return Ut(kn);ot.off("error",Rn),Vt(ot)})})}),fc(P)},cs=()=>a.all(Object.keys(mt).map(fc)),uc=ht=>cs().then(P=>P.filter(ee=>ll(ee).remoteSubscriberId===ht)),fc=ht=>mt[ht],Pa=ht=>{const P=Object.keys(mt).find(ee=>ee.endsWith(`~${ht}`));return mt[P]},go=()=>Pa("MANTIS"),Gc=()=>Pa("P2P");let tl=Gl(this,{name:un.name,publishAudio:un.publishAudio,publishVideo:un.publishVideo,audioSource:un.audioSource,showControls:un.showControls,shouldAllowAudio:Or,logAnalyticsEvent:Sn});const Jc=()=>{this.off("publishComplete",da),tl&&tl.reset(),Hl.releaseAll(),this.disconnect(),_l=null,Ec(),Pr=null,Ji&&(Ji.destroy(),Ji=null),this.session&&this._.unpublishFromSession(this.session,"reset"),ua.getVideoFilter()&&hc(),Id.destroy(),this.id=null,this.stream=null,Wt=!1,this.session=null,this.streamId=null,Qn.isDestroyed()||Qn.set("NotPublishing")},Ls=()=>{if(!Pr||Pr.getVideoTracks().length===0)return!1;const P=["text","detail"].includes(un.videoContentHint),ee=Gn&&P,Re=qt.env.isChromium&&(qn||ee);return Pr.getVideoTracks().reduce((rt,st)=>rt&&(!st.muted||!!Re)&&st.enabled&&st.readyState!=="ended",un.publishVideo)},Wi=()=>!Pr||Pr.getAudioTracks().length===0?!1:Pr.getAudioTracks().length>0&&Pr.getAudioTracks().reduce((ht,P)=>ht&&!P.muted&&P.enabled&&P.readyState!=="ended",un.publishAudio),da=ht=>{if(Ji&&(Ji.audioOnly(!Ls()),Ji.showPoster(!Ls())),tl&&tl.setAudioOnly(!Ls()&&Wi()),this.stream){let P;Qo&&Ls()&&(P=X.CongestionLevels.LOW,Qo=!1),this.stream.setChannelActiveState({channelType:"audio",activeState:Wi(),activeReason:ht}),this.stream.setChannelActiveState({channelType:"video",activeState:Ls(),activeReason:ht,congestionLevel:P})}else this.off("publishComplete",da),this.once("publishComplete",da)},Po=(ht,P)=>{let ee=!1;if(typeof ht=="function"?P=ht:ee=ht==="rtcStatsReport",ee?sa():Ds(),ee&&!Rt.default){const Re=bt.GET_RTC_STATS_REPORT_NOT_SUPPORTED;P(cn($t.GET_RTC_STATS_REPORT_NOT_SUPPORTED,new Error(Jn.getTitleByCode(Re)),Re));return}cs().then(Re=>{if(Re.length===0){const rt=bt.PEER_CONNECTION_NOT_CONNECTED;throw cn($t.PEER_CONNECTION_NOT_CONNECTED,new Error(Jn.getTitleByCode(rt)),rt)}return Re}).then(Re=>this.session.sessionInfo.isAdaptiveEnabled?Re.filter(st=>st.getSourceStreamId()===qa):Re).then(Re=>a.all(Re.map(rt=>(ee?(0,$e.default)(rt.getRtcStatsReport.bind(rt)):(0,$e.default)(rt.getStats.bind(rt)))().then(st=>({pc:rt,stats:st}))))).then(Re=>{const rt=Ys?Ys.getTime():Date.now(),st=Re.map(tn=>{let Xt=tn.pc,en=tn.stats;const fn=ll(Xt),ge=fn.remoteConnectionId,ot=fn.remoteSubscriberId;return(0,h.default)(ge.match(/^symphony\./)?{}:{subscriberId:ot,connectionId:ge},ee?{rtcStatsReport:en}:{stats:jt.default.normalizeStats(en,!1,rt)})});P(null,st)}).catch(P)},mu=ht=>Po(ht),Cl=ht=>Po("rtcStatsReport",ht),Rc=(ht,P)=>{const ee={name:un.name||"",streamId:this.streamId,subscriberAudioFallbackEnabled:un.subscriberAudioFallbackEnabled,channels:$l,minBitrate:un.minVideoBitrate,sourceStreamId:ht,e2ee:this.session._.isE2ee(),publisherAudioFallbackEnabled:un.publisherAudioFallbackEnabled,customProperties:{initials:un.initials}};this.session._.streamCreate(ee,P)},Hs=function(){var ht=(0,s.default)(l.default.mark(function P(){var ee;return l.default.wrap(function(rt){for(;;)switch(rt.prev=rt.next){case 0:return En=!1,rt.next=3,go();case 3:if(ee=rt.sent,!ee){rt.next=18;break}return ti.trigger("sourceStreamIdChanged","P2P"),un.publisherAudioFallbackEnabled&&ee.disableCongestionLevelEstimation(),rt.next=9,(0,j.default)(jl);case 9:if(!En){rt.next=12;break}return Ct.debug("Cancelling stop sending RTP to MANTIS."),rt.abrupt("return");case 12:return Id.muteAudioInPeerConnection(Pr,ee),rt.next=15,ee.changeMediaDirectionToInactive();case 15:if(!(qt.env.isFirefox&&qt.env.version<96)){rt.next=18;break}return rt.next=18,iu();case 18:case"end":return rt.stop()}},P)}));return function(){return ht.apply(this,arguments)}}(),Ku=function(){var ht=(0,s.default)(l.default.mark(function P(){var ee,Re;return l.default.wrap(function(st){for(;;)switch(st.prev=st.next){case 0:return En=!0,st.next=3,go();case 3:if(ee=st.sent,!ee){st.next=22;break}return Id.unmuteAudioInPeerConnection(Pr,ee),st.next=8,ee.changeMediaDirectionToRecvOnly();case 8:if(yn&&clearTimeout(yn),ti.trigger("sourceStreamIdChanged","MANTIS"),!un.publisherAudioFallbackEnabled){st.next=22;break}return st.t0=ee,st.next=14,Gc();case 14:if(st.t1=Re=st.sent,st.t1!=null){st.next=19;break}st.t2=void 0,st.next=20;break;case 19:st.t2=Re.getAudioFallbackState();case 20:st.t3=st.t2,st.t0.enableCongestionLevelEstimation.call(st.t0,st.t3);case 22:case"end":return st.stop()}},P)}));return function(){return ht.apply(this,arguments)}}(),iu=function(){var ht=(0,s.default)(l.default.mark(function P(){var ee;return l.default.wrap(function(rt){for(;;)switch(rt.prev=rt.next){case 0:return rt.next=2,go();case 2:ee=rt.sent,ee&&(yn=setTimeout((0,s.default)(l.default.mark(function st(){return l.default.wrap(function(Xt){for(;;)switch(Xt.prev=Xt.next){case 0:if(qa!=="P2P"){Xt.next=9;break}return Xt.next=3,ee.changeMediaDirectionToRecvOnly();case 3:return Xt.next=5,(0,j.default)(So);case 5:return Xt.next=7,ee.changeMediaDirectionToInactive();case 7:return Xt.next=9,iu();case 9:case"end":return Xt.stop()}},st)})),so));case 4:case"end":return rt.stop()}},P)}));return function(){return ht.apply(this,arguments)}}(),bu=()=>{Mo("Attempt");const ht=ee=>{const Re=(0,Ee.default)(ee);this.trigger("streamCreateForP2PComplete",Re),Mo("Failure",{reason:Re.message})};if(!this.session){Mo("Failure",{reason:"Not connected to the session."});return}const P=setTimeout(()=>{Mo("Failure",{reason:"Timeout"})},mr);this.once("streamCreateForP2PComplete",()=>{clearTimeout(P)}),Ct.debug(`streamCreateWithSource: send a message to RUMOR for creating the stream with the sourceStreaId P2P and stream ${this.streamId}`),Rc("P2P",ee=>{ee?ht(ee):this.trigger("streamCreateForP2PComplete")})},Tc=function(){var ht=(0,s.default)(l.default.mark(function P(){return l.default.wrap(function(Re){for(;;)switch(Re.prev=Re.next){case 0:if(qa==="P2P"){Re.next=2;break}return Re.abrupt("return");case 2:if(ed("Attempt"),ti.session){Re.next=6;break}return ed("Failure",{reason:"Not connected to the session."}),Re.abrupt("return");case 6:if(ti.streamId){Re.next=9;break}return ed("Failure",{reason:"No streamId available"}),Re.abrupt("return");case 9:return Re.next=11,Ku();case 11:return ti.session._.streamDestroy(ti.streamId,"P2P"),Re.t0=ti,Re.next=15,Gc();case 15:Re.t1=Re.sent,Re.t0._removePeerConnection.call(Re.t0,Re.t1),ed("Success"),ti.trigger("streamDestroyForP2PComplete");case 19:case"end":return Re.stop()}},P)}));return function(){return ht.apply(this,arguments)}}();this.publish=ht=>(Ct.debug("OT.Publisher: publish"),(Qn.isAttemptingToPublish()||Qn.isPublishing())&&Jc(),Qn.set("GetUserMedia"),un.style&&this.setStyle(un.style,null,!0),un.classNames="OT_root OT_publisher",Lt.onLoad(()=>{Ct.debug("OT.Publisher: publish: environment loaded"),Ji=new kr(ht,Object.assign({},un,{widgetType:"publisher"})),Or&&(0,it.default)({publisher:this,widgetView:Ji}),Ji.on("error",qd),this.id=Ji.domId(),this.element=Ji.domElement,this.element&&tl&&tl.init(Ji),Ji.on("videoDimensionsChanged",(P,ee)=>{un.publishVideo&&(this.stream&&this.stream.setVideoDimensions(ee.width,ee.height),this.dispatchEvent(new At.VideoDimensionsChangedEvent(this,P,ee)))}),Ji.on("mediaStopped",P=>{const ee=new At.MediaStoppedEvent(this,P);if(this.dispatchEvent(ee),!ee.isDefaultPrevented()){if(P){const Re=String(P.kind).toLowerCase();Re==="audio"?Fo():Re==="video"?bs():Ct.warn(`Track with invalid kind has ended: ${P.kind}`),Sn("mediaStopped","Event",{kind:Re});return}this.session?this._.unpublishFromSession(this.session,"mediaStopped"):this.destroy("mediaStopped")}}),Ji.on("videoElementCreated",P=>{this.dispatchEvent(new At.MediaStreamAvailableEvent(Pr));const ee=new At.VideoElementCreatedEvent(P);this.dispatchEvent(ee)}),Ar().catch(le).then(function(){var P=(0,s.default)(l.default.mark(function ee(Re){var rt,st,tn,Xt;return l.default.wrap(function(fn){for(;;)switch(fn.prev=fn.next){case 0:return li=on.audioDevices,ki=on.videoDevices,tn=!!un.videoFilter,un.disableAudioInputDeviceManagement||(Tl=Za(ti)),Xt=((rt=li)==null?void 0:rt.length)>0||((st=ki)==null?void 0:st.length)>0,fn.next=7,(0,St.default)(Xt).then(ge=>{ge.on("accessDenied",ot=>{ti.accessAllowed=!1,ti.dispatchEvent((0,mn.default)(ot))})});case 7:return tn&&(il=(0,Dt.default)(Re,ki)),fn.next=10,td(Re);case 10:return un.publishVideo||ti._toggleVideo(un.publishVideo,Gd()),!qn&&!Gn&&!tn&&(il=(0,Dt.default)(Re,ki),un.publishVideo&&Kc(il)),fn.abrupt("return",Sc().catch(ge=>{if(!(ge instanceof B.CancellationError))throw ge}).then(()=>{pu(),Qn.isDestroyed()||(ti.trigger("initSuccess"),ti.trigger("loaded",ti))},ge=>{Ct.error(`OT.Publisher.publish failed to bind video: ${ge}`),Ti(ge)}));case 13:case"end":return fn.stop()}},ee)}));return function(ee){return P.apply(this,arguments)}}())}),this),this._getVideoSenders=(0,s.default)(l.default.mark(function ht(){return l.default.wrap(function(ee){for(;;)switch(ee.prev=ee.next){case 0:return ee.abrupt("return",cs().then(Re=>Re[0].getSenders().filter(rt=>rt.track.kind==="video")));case 1:case"end":return ee.stop()}},ht)})),this._setScalableValues=function(){var ht=(0,s.default)(l.default.mark(function P(ee,Re){var rt,st,tn;return l.default.wrap(function(en){for(;;)switch(en.prev=en.next){case 0:return en.next=2,ti._getVideoSenders();case 2:return rt=en.sent,st=rt[0],tn=st.getParameters(),tn.encodings.forEach((fn,ge)=>{fn[ee]=Re[ge]}),en.next=8,st.setParameters(tn);case 8:case"end":return en.stop()}},P)}));return function(P,ee){return ht.apply(this,arguments)}}(),this._setScalabilityMode=function(){var ht=(0,s.default)(l.default.mark(function P(ee){return l.default.wrap(function(rt){for(;;)switch(rt.prev=rt.next){case 0:return rt.abrupt("return",Go(ee,ti));case 1:case"end":return rt.stop()}},P)}));return function(P){return ht.apply(this,arguments)}}(),this._setScalableFramerates=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re;return l.default.wrap(function(st){for(;;)switch(st.prev=st.next){case 0:if(Re=Lo(ee),!(Re&&vd(Re))){st.next=4;break}return st.next=4,ti._setScalableValues("maxFramerate",Re);case 4:case"end":return st.stop()}},P)}));return function(P){return ht.apply(this,arguments)}}(),this._setScalableVideoLayers=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re;return l.default.wrap(function(st){for(;;)switch(st.prev=st.next){case 0:if(Re=Lo(ee),!(Re&&Oc(Re))){st.next=4;break}return st.next=4,ti._setScalableValues("scaleResolutionDownBy",Re);case 4:case"end":return st.stop()}},P)}));return function(P){return ht.apply(this,arguments)}}();const vd=ht=>{let P=0;return ht.every(ee=>ee!==15&&ee!==30||ee<P?!1:(P=ee,!0))},Oc=ht=>{let P=17;return ht.every(ee=>ee<1||ee>=P?!1:(P=ee,!0))},Lo=ht=>{let P;if(typeof ht!="string")return P;const ee=ht.split(":");return ee.length===0||ee.length>3||!ee.every(Re=>!isNaN(Re))||(P=ee.map(Re=>parseInt(Re,10)).reverse()),P},Gu=ht=>Pr&&Pr[`get${(0,m.default)(ht)}Tracks`]().length>0&&Pr[`get${(0,m.default)(ht)}Tracks`]().every(P=>P.readyState!=="ended"),Fo=ht=>{const P=Gu("audio")&&un.publishAudio;tl&&tl.setMuted(!P),_l&&_l.muted(!P),Rr&&Rr.originalTrack&&(Rr.originalTrack.enabled=P),da(ht)};this.publishAudio=ht=>{Sn("publishAudio","Attempt",{publishAudio:ht}),un.publishAudio=ht;try{Fo(),Sn("publishAudio","Success",{publishAudio:ht})}catch(P){Sn("publishAudio","Failure",{message:P.message})}return this},this.publishCaptions=ht=>{Sn("publishCaptions","Attempt",{publishCaptions:ht});try{yo.dispatchEvent(new At.PublisherCaptionsEnabled(ht)),this.stream.setChannelActiveState({channelType:"data",activeState:ht}),Sn("publishCaptions","Success",{publishCaptions:ht})}catch(P){Sn("publishCaptions","Failure",{message:P.message,publishCaptions:ht})}};let xs,Xc=!1;const bs=()=>{const ht=Gu("video")&&un.publishVideo;if(H.default.name==="Chrome"&&H.default.version>=69&&(0,s.default)(l.default.mark(function P(){var ee,Re;return l.default.wrap(function(st){for(;;)switch(st.prev=st.next){case 0:return xs&&xs.cancel(),xs=new B.default,ee=xs,st.next=5,cs();case 5:Re=st.sent,ee.isCanceled()||Re.forEach(tn=>{tn.setVideoActiveState(ht)});case 7:case"end":return st.stop()}},P)}))(),Gn&&ua){const P=ua.getOriginalVideoTrack();P&&(P.enabled=ht)}if(Gn&&Un){const P=Un.originalTrack;P&&(P.enabled=ht)}Pr&&Pr.getVideoTracks().forEach(P=>{P.enabled=ht,P.isCreatedCanvas&&(P.enabled=!1)}),da()},hc=function(){var ht=(0,s.default)(l.default.mark(function P(){var ee;return l.default.wrap(function(rt){for(;;)switch(rt.prev=rt.next){case 0:return ee=ua.getOriginalVideoTrack(),rt.prev=1,rt.next=4,ua.destroy();case 4:rt.next=9;break;case 6:rt.prev=6,rt.t0=rt.catch(1),Ct.warn(`Error cleaning up mediaProcessor: ${rt.t0}`);case 9:ee.stop();case 10:case"end":return rt.stop()}},P,null,[[1,6]])}));return function(){return ht.apply(this,arguments)}}(),Td=ht=>!ql&&!Un&&ht===qr(),au=(ht,P)=>ql||Un?!0:ht?il!==P:P!==void 0;let il,ql,ys;this._toggleVideo=(0,Fe.default)(function(){var ht=(0,s.default)(l.default.mark(function P(ee,Re){var rt,st,tn,Xt,en,fn,ge,ot;return l.default.wrap(function(Ut){for(;;)switch(Ut.prev=Ut.next){case 0:if(!(qn||Gn||Xc)){Ut.next=2;break}return Ut.abrupt("return");case 2:return Ut.next=4,nd();case 4:if(st=Ut.sent,tn=ze(),tn){Ut.next=8;break}throw cn($t.NOT_SUPPORTED,new Error("Publisher._toggleVideo cannot toggleVideo when you have no video source."));case 8:if(Xt=(rt=st.find(Rn=>Rn.label===tn.label))==null?void 0:rt.deviceId,au(ee,Xt)){Ut.next=11;break}return Ut.abrupt("return");case 11:if(tn.readyState!=="ended"){Ut.next=14;break}return Xc=!0,Ut.abrupt("return");case 14:if(ee&&qt.env.isAndroid&&qt.env.isChrome&&tn&&tn.stop&&tn.stop(),ee){Ut.next=31;break}Ut.prev=16,en=(0,_t.default)(Re),Ut.next=23;break;case 20:return Ut.prev=20,Ut.t0=Ut.catch(16),Ut.abrupt("return");case 23:if(Xt&&(il=Xt),Kc(en.label),fn=ua.getVideoFilter(),!fn){Ut.next=30;break}return ql=fn,Ut.next=30,hc();case 30:Un&&(Un.destroy(),Un.stopOriginalTrack());case 31:if(!(il&&st.findIndex(Rn=>Rn.deviceId===il)===-1)){Ut.next=33;break}throw cn($t.NO_DEVICES_FOUND,new Error("Previous device no longer available - deviceId not found"));case 33:if(yo.emit("streamDestroy"),!ee){Ut.next=64;break}if(!Td(il)){Ut.next=37;break}return Ut.abrupt("return");case 37:return Ut.prev=37,Ut.next=40,Pe(il);case 40:en=Ut.sent,Ut.next=47;break;case 43:throw Ut.prev=43,Ut.t1=Ut.catch(37),Ct.error(`Error getting new track for current device(${il}): ${Ut.t1}`),Ut.t1;case 47:if(en){Ut.next=50;break}return Ct.error("Failed to enable video. It was not possible to get a new track from the camera"),Ut.abrupt("return");case 50:if(!ql){Ut.next=59;break}return ge=ua.getOriginalVideoTrack(),Ut.next=54,ua.setVideoFilter(ql);case 54:return Ut.next=56,ua.setMediaStream(Pr);case 56:return Ut.next=58,ua.setVideoTrack(en);case 58:en=Ut.sent;case 59:if(!Un){Ut.next=64;break}return ge=Un.originalTrack,Ut.next=63,Un.setTrack(en);case 63:en=Ut.sent;case 64:return Ut.prev=64,Ut.next=67,tc(tn,en);case 67:(ot=ge)==null||ot.stop(),Ut.next=73;break;case 70:throw Ut.prev=70,Ut.t2=Ut.catch(64),Ut.t2;case 73:case"end":return Ut.stop()}},P,null,[[16,20],[37,43],[64,70]])}));return function(P,ee){return ht.apply(this,arguments)}}());const Ju=(0,Hi.callWithCancellation)(function(){var ht=(0,s.default)(l.default.mark(function P(ee,Re){var rt;return l.default.wrap(function(tn){for(;;)switch(tn.prev=tn.next){case 0:return tn.next=2,cs();case 2:rt=tn.sent,Re.isCanceled()||rt.forEach(Xt=>{ee?Xt.enableCongestionLevelEstimation():Xt.disableCongestionLevelEstimation()});case 4:case"end":return tn.stop()}},P)}));return function(P,ee){return ht.apply(this,arguments)}}()),Bu=()=>{var ht,P;kc.reset(),(ht=tl)==null||ht.videoDisabledIndicator.disableVideo(!1),(P=tl)==null||P.videoDisabledIndicator.setWarning(!1)},Ga=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt;return l.default.wrap(function(tn){for(;;)switch(tn.prev=tn.next){case 0:(Re=tl)==null||Re.videoDisabledIndicator.disableVideo(!1),(rt=tl)==null||rt.videoDisabledIndicator.setWarning(!1),ee===S.default.SUSPENDED_VIDEO?ti.trigger("videoEnabled",{reason:"quality"}):ti.trigger("videoDisableWarningLifted");case 3:case"end":return tn.stop()}},P)}));return function(ee){return ht.apply(this,arguments)}}(),Ea=()=>{if(un.publishVideo){var ht;(ht=tl)==null||ht.videoDisabledIndicator.setWarning(!0)}this.trigger("videoDisableWarning")},Pu=function(){var ht=(0,s.default)(l.default.mark(function P(){var ee;return l.default.wrap(function(rt){for(;;)switch(rt.prev=rt.next){case 0:un.publishVideo&&((ee=tl)==null||ee.videoDisabledIndicator.disableVideo(!0)),ti.trigger("videoDisabled",{reason:"quality"});case 2:case"end":return rt.stop()}},P)}));return function(){return ht.apply(this,arguments)}}();let kc;if(un.publisherAudioFallbackEnabled){kc=$o({getAllPeerConnections:cs});const ht={[S.default.ACTIVE_VIDEO]:Ga,[S.default.ACTIVE_VIDEO_WITH_WARNING]:Ea,[S.default.SUSPENDED_VIDEO]:Pu};kc.on("stateChange",P=>{let ee=P.previousState,Re=P.state;try{ht[Re](ee)}catch(rt){throw Ct.error(`Audio fallback error: ${rt}`),rt}})}this.publishVideo=(ht,P)=>{if(un.publishVideo===ht)return P&&setTimeout(()=>{P()}),this;const ee=(0,dn.default)(P),Re=ee.onResolve,rt=ee.onReject;return Sn("publishVideo","Attempt",{publishVideo:ht}),this._publishVideo(ht).then(()=>{Sn("publishVideo","Success",{publishVideo:ht}),Re()},st=>{Sn("publishVideo","Failure",{message:st.message}),rt(st)}),this},this._publishVideo=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re;return l.default.wrap(function(st){for(;;)switch(st.prev=st.next){case 0:return Re=Gd(),un.publishVideo=ee,un.publisherAudioFallbackEnabled&&(Ju(ee),ee===!1&&kc.getState()!==S.default.ACTIVE_VIDEO&&(Qo=!0,Bu())),st.next=5,a.all([ti._toggleVideo(un.publishVideo,Re),bs()]);case 5:case"end":return st.stop()}},P)}));return function(P){return ht.apply(this,arguments)}}(),this.setVideoContentHint=ht=>{qn&&un._setDefaultScalabilityMode&&this._setScalabilityMode((0,Va.default)(ht),this),(0,Ke.setVideoContentHint)(Pr,ht)},this.getVideoContentHint=()=>(0,Ke.getVideoContentHint)(Pr),this.destroy=function(ht,P){return Qn.isAttemptingToPublish()&&this.session&&bl("Cancel",{reason:"destroy"}),Qn.isDestroyed()?this:(Qn.set("Destroyed"),Jc(),on&&(on.off(),on=null),tl&&(tl.destroy(),tl=null),yo&&(yo.off(),yo=null),P!==!0&&this.dispatchEvent(new At.DestroyedEvent(We.default.PUBLISHER_DESTROYED,this,ht)),this.off(),Un&&(Un.destroy(),Un.stopOriginalTrack()),Rr&&(Rr.destroy(),Rr.stopOriginalTrack()),Tl!==void 0&&Tl(),this)},this.disconnect=()=>{Object.keys(mt).forEach(ht=>{const P=fc(ht);delete mt[ht],P.then(ee=>this._removePeerConnection(ee))}),$l.length=0},this.processMessage=(ht,P,ee)=>{const Re=(0,u.default)(ee,"params.subscriber",P).replace(/^INVALID-STREAM$/,P),rt=(0,u.default)(ee,"content.peerId"),st=(0,u.default)(ee,"content.sourceStreamId","MANTIS"),tn=`${Re}~${rt}~${st}`;Ct.debug(`OT.Publisher.processMessage: Received ${ht} from ${P} for ${tn}`),Ct.debug(ee);const Xt=fc(tn),en=()=>{const ge=Ba({socket:this.session._.getSocket(),uri:ee.uri,content:{peerId:rt,sourceStreamId:st}});Nc({peerConnectionId:tn,send:ge,log:function(Rn,kn,Bn,ni,Uo){ni===void 0&&(ni={});const Aa=Object.assign({peerId:rt,sourceStreamId:(0,Ge.default)(st)},ni);return Sn(Rn,kn,Bn,Aa,Uo)},logQoS:Ut=>{st===qa&&no(Object.assign({},Ut,{peerId:rt,remoteConnectionId:P,sourceStreamId:st}))},sourceStreamId:st}).then(Ut=>(Jl(Ut,{remoteConnectionId:P,remoteSubscriberId:Re,peerId:rt,sourceStreamId:st,peerConnectionId:tn}),Ut.processMessage(ht,ee),null)).catch(Ut=>{Ct.error("OT.Publisher failed to create a peerConnection",Ut)})},fn=this.session.sessionInfo.isAdaptiveEnabled;switch(ht){case"unsubscribe":this._removeSubscriber(Re);break;default:if(Xt)Xt.then(ge=>ge.processMessage(ht,ee));else{if(fn&&Gc())return;en()}break}},this.getImgData=function(){if(!Wt)return Ct.error("OT.Publisher.getImgData: Cannot getImgData before the Publisher is publishing."),null;const ht=Ji&&Ji.video();return ht?ht.imgData():null};const zu=ht=>{Ec(),Pr=ht,yo.emit("streamChange"),_l=new Kt(Pr,!un.publishAudio)},ju=ht=>{ht.getSenders().forEach(P=>{if(P.track.kind==="audio"&&Pr.getAudioTracks().length)return P.replaceTrack(Pr.getAudioTracks()[0]);if(P.track.kind==="video"&&Pr.getVideoTracks().length)return P.replaceTrack(Pr.getVideoTracks()[0])})},_u=function(P){return P===void 0&&(P=ju),cs().then(ee=>{const Re=[];return ee.map(P),a.all(Re)})};{let ht=0;const P=function(){var ee=(0,s.default)(l.default.mark(function Re(){var rt,st,tn,Xt,en;return l.default.wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:if(!(qt.env.isLegacyEdge||!Mr.RTCRtpSender||typeof Mr.RTCRtpSender.prototype.replaceTrack!="function")){ge.next=2;break}throw cn($t.UNSUPPORTED_BROWSER,new Error("Publisher#cycleVideo is not supported in your browser."),bt.UNABLE_TO_PUBLISH);case 2:if(!(Gn||qn)){ge.next=4;break}throw cn($t.NOT_SUPPORTED,new Error("Publisher#cycleVideo: The publisher is not using a camera video source"));case 4:if(rt=ze(),rt){ge.next=7;break}throw cn($t.NOT_SUPPORTED,new Error("Publisher#cycleVideo cannot cycleVideo when you have no video source."));case 7:return ht+=1,ge.next=10,nd();case 10:if(st=ge.sent,tn=st.filter(ot=>ot.deviceId!==il).length>0,tn){ge.next=14;break}return ge.abrupt("return",il);case 14:for(;st[ht%st.length].deviceId===il;)ht+=1;return yo.emit("streamDestroy"),Xt=st[ht%st.length],en=Xt.deviceId,ge.next=20,gd(en);case 20:return ge.abrupt("return",il);case 21:case"end":return ge.stop()}},Re)}));return function(){return ee.apply(this,arguments)}}();this.cycleVideo=(0,Fe.default)((0,s.default)(l.default.mark(function ee(){var Re;return l.default.wrap(function(st){for(;;)switch(st.prev=st.next){case 0:return st.prev=0,st.next=3,P();case 3:Re=st.sent,st.next=10;break;case 6:throw st.prev=6,st.t0=st.catch(0),Ct.error(`Publisher#cycleVideo: could not cycle video: ${st.t0}`),st.t0;case 10:return st.abrupt("return",{deviceId:Re});case 11:case"end":return st.stop()}},ee,null,[[0,6]])})))}const tc=function(){var ht=(0,s.default)(l.default.mark(function P(ee,Re){var rt,st,tn;return l.default.wrap(function(en){for(;;)switch(en.prev=en.next){case 0:return en.next=2,cs();case 2:return rt=en.sent,en.next=5,a.all(rt.map(function(){var fn=(0,s.default)(l.default.mark(function ge(ot){return l.default.wrap(function(Ut){for(;;)switch(Ut.prev=Ut.next){case 0:return Ut.next=2,ot.findAndReplaceTrack(ee,Re);case 2:ot.setP2PMaxBitrate();case 3:case"end":return Ut.stop()}},ge)}));return function(ge){return fn.apply(this,arguments)}}()));case 5:if(Pr.removeTrack(ee),Pr.addTrack(Re),ee&&ee.stop){try{st=Re instanceof MediaStreamTrackGenerator||Object.getPrototypeOf(Re).toString().includes("MediaStreamTrackGenerator")}catch{st=!1}st||ee.stop()}(qt.env.name==="Firefox"||qt.env.name==="Safari")&&(ti.videoElement().srcObject=null,ti.videoElement().srcObject=Pr),tn=Ji&&Ji.video(),tn&&tn.refreshTracks(),yo.emit("streamChange"),bs();case 13:case"end":return en.stop()}},P)}));return function(ee,Re){return ht.apply(this,arguments)}}(),Pe=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt,st,tn,Xt,en,fn,ge;return l.default.wrap(function(Vt){for(;;)switch(Vt.prev=Vt.next){case 0:return rt=qr(),Kc(ee),st=(0,f.default)(Co),st.audioSource=null,st.videoSource=ee,on=bo(st,"OT.Publisher.getTrackFromDeviceId",()=>Qn&&Qn.isDestroyed()),on.on({accessDialogOpened:Le,accessDialogClosed:Xe}),tn=on,Xt=tn.getUserMedia,Vt.prev=8,Vt.next=11,Xt();case 11:en=Vt.sent,Vt.next=18;break;case 14:throw Vt.prev=14,Vt.t0=Vt.catch(8),Ct.error(Vt.t0),Vt.t0;case 18:return fn=(Re=en)==null?void 0:Re.getVideoTracks(),ge=fn[0],ge||Kc(rt),Vt.abrupt("return",ge);case 21:case"end":return Vt.stop()}},P,null,[[8,14]])}));return function(ee){return ht.apply(this,arguments)}}(),ze=()=>Pr.getVideoTracks()[0],qr=()=>hl,Kc=ht=>{hl=ht},nd=function(){var ht=(0,s.default)(l.default.mark(function P(){var ee,Re;return l.default.wrap(function(st){for(;;)switch(st.prev=st.next){case 0:return st.next=2,Gi.shouldAskForDevices();case 2:if(ee=st.sent,Re=ee.videoDevices,!(!ee.video||!Re||!Re.length)){st.next=6;break}throw cn($t.NO_DEVICES_FOUND,new Error("No video devices available"),bt.UNABLE_TO_PUBLISH);case 6:return st.abrupt("return",Re);case 7:case"end":return st.stop()}},P)}));return function(){return ht.apply(this,arguments)}}(),al=function(){var ht=(0,s.default)(l.default.mark(function P(ee,Re){var rt,st,tn,Xt;return l.default.wrap(function(fn){for(;;)switch(fn.prev=fn.next){case 0:if(ti.session){fn.next=2;break}return fn.abrupt("return");case 2:if(rt=ti.session.sessionInfo.isAdaptiveEnabled,!(qa&&rt)){fn.next=17;break}return fn.next=6,Pa(qa);case 6:return st=fn.sent,fn.next=9,st==null?void 0:st.findAndReplaceTrack(ee,Re);case 9:if(qa!=="P2P"){fn.next=15;break}return fn.next=12,go();case 12:return tn=fn.sent,fn.next=15,Id.replaceTrackInMutedAudioTracks(tn,ee,Re);case 15:fn.next=22;break;case 17:return fn.next=19,cs();case 19:return Xt=fn.sent,fn.next=22,a.all(Xt.map(ge=>ge.findAndReplaceTrack(ee,Re)));case 22:case"end":return fn.stop()}},P)}));return function(ee,Re){return ht.apply(this,arguments)}}(),wc=function(){var ht=(0,s.default)(l.default.mark(function P(ee,Re){var rt,st;return l.default.wrap(function(Xt){for(;;)switch(Xt.prev=Xt.next){case 0:if(ee!==Re){Xt.next=2;break}return Xt.abrupt("return");case 2:return Xt.next=4,al(ee,Re);case 4:Re&&Pr.addTrack(Re),ee&&Pr.removeTrack(ee),rt=Ji&&Ji.video(),rt&&rt.refreshTracks(),tl&&(Re&&!ee&&tl.addAudioTrack(),ee&&!Re&&tl.removeAudioTrack());try{st=Re instanceof MediaStreamTrackGenerator||Object.getPrototypeOf(Re).toString().includes("MediaStreamTrackGenerator")}catch{st=!1}ee&&ee.stop&&!st&&ee.stop(),Re&&(Fo(),_l=new Kt(Pr,!un.publishAudio)),yo.emit("streamChange"),da();case 14:case"end":return Xt.stop()}},P)}));return function(ee,Re){return ht.apply(this,arguments)}}(),Zu=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt;return l.default.wrap(function(tn){for(;;)switch(tn.prev=tn.next){case 0:return Re=ee.getSettings().deviceId,tn.prev=1,tn.next=4,ti.setAudioSource(Re);case 4:rt=Pr.getAudioTracks()[0],rt&&(rt.onmute=()=>hd(rt),rt.onunmute=()=>Al(rt)),tn.next=11;break;case 8:tn.prev=8,tn.t0=tn.catch(1),Ct.error(tn.t0);case 11:case"end":return tn.stop()}},P,null,[[1,8]])}));return function(ee){return ht.apply(this,arguments)}}(),hd=ht=>{let P=!1;un.publishVideo&&document.hidden&&(P=!0,this.publishVideo(!1));const ee=function(){var Re=(0,s.default)(l.default.mark(function rt(){return l.default.wrap(function(tn){for(;;)switch(tn.prev=tn.next){case 0:if(document.hidden){tn.next=5;break}return tn.next=3,Zu(ht);case 3:P&&ti.publishVideo(!0),document.removeEventListener("visibilitychange",ee);case 5:case"end":return tn.stop()}},rt)}));return function(){return Re.apply(this,arguments)}}();document.addEventListener("visibilitychange",ee)},Al=ht=>{var P;Wi()&&(Ls()?this.videoElement().pause():Zu(ht)),this==null||(P=this.session)==null||P.trigger("gsmCallEnded")},Sa=!(qt.env.isLegacyEdge||!Mr.RTCRtpSender||typeof Mr.RTCRtpSender.prototype.replaceTrack!="function"),Od=()=>cn($t.UNSUPPORTED_BROWSER,new Error("Publisher#setAudioSource is not supported in your browser.")),Bc=()=>cn($t.CANCEL,new Error("Operation did not succeed due to a new request."));let Ol;const nc=()=>(Ol&&Ol.cancel(),Ol=new B.default,Ol),Zc=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt,st,tn,Xt,en,fn,ge,ot,Vt,Ut,Rn;return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:if(Sa){Bn.next=2;break}throw Od();case 2:if(Re=nc(),rt=function(){var ni=(0,s.default)(l.default.mark(function Uo(Aa){return l.default.wrap(function(To){for(;;)switch(To.prev=To.next){case 0:if(!Re.isCanceled()){To.next=3;break}throw Aa.getTracks(es=>es.stop()),Bc();case 3:return To.abrupt("return",Zc(Aa.getAudioTracks()[0]));case 4:case"end":return To.stop()}},Uo)}));return function(Aa){return ni.apply(this,arguments)}}(),st=ti._getAudioSource(),st){Bn.next=7;break}throw cn($t.NOT_SUPPORTED,new Error("Publisher#setAudioSource cannot add an audio source when you started without one."));case 7:if(!(ee instanceof MediaStreamTrack)){Bn.next=26;break}if(!Re.isCanceled()){Bn.next=10;break}throw Bc();case 10:if(!Rr){Bn.next=23;break}return Bn.prev=11,Bn.next=14,Rr.setTrack(ee);case 14:return tn=Bn.sent,Bn.next=17,wc(st,tn);case 17:return Bn.abrupt("return",Bn.sent);case 20:Bn.prev=20,Bn.t0=Bn.catch(11),Ct.error(`Error setting track on audioMediaProcessorConnector: ${Bn.t0}`);case 23:return Bn.abrupt("return",wc(st,ee));case 26:if(typeof ee!="string"){Bn.next=73;break}return Xt=(0,f.default)(Co),Xt.audioSource=ee,Xt.videoSource=null,on=bo(Xt,"OT.Publisher.setAudioSource",()=>Re.isCanceled()||Qn&&Qn.isDestroyed()),on.on({accessDialogOpened:Le,accessDialogClosed:Xe}),en=st.label,fn=st.getConstraints&&st.getSettings().deviceId||void 0,st&&st.stop(),ge=on,ot=ge.getUserMedia,Bn.prev=36,Bn.t1=rt,Bn.next=40,ot();case 40:return Bn.t2=Bn.sent,Bn.next=43,(0,Bn.t1)(Bn.t2);case 43:return Bn.abrupt("return",Bn.sent);case 46:if(Bn.prev=46,Bn.t3=Bn.catch(36),!Re.isCanceled()){Bn.next=50;break}throw Bc();case 50:if(Vt=(0,f.default)(Co),Vt.videoSource=null,Vt.audioSource=fn,!(!Vt.audioSource&&en)){Bn.next=60;break}return Bn.next=56,Fi();case 56:if(Ut=Bn.sent.find(ni=>ni.label===en),!Re.isCanceled()){Bn.next=59;break}throw Bc();case 59:Ut&&(Vt.audioSource=Ut.deviceId);case 60:if(Vt.audioSource){Bn.next=63;break}throw Bn.t3.message+=" (could not determine previous audio device)",cn($t.NOT_FOUND,Bn.t3);case 63:return on=bo(Vt,"OT.Publisher.setAudioSource",()=>Re.isCanceled()||Qn&&Qn.isDestroyed()),Bn.next=66,on.getUserMedia().catch(ni=>{throw ni.message+=" (could not obtain previous audio device)",ni});case 66:return Rn=Bn.sent,Bn.next=69,rt(Rn);case 69:throw Bn.t3.message+=" (reverted to previous audio device)",Bn.t3;case 71:Bn.next=74;break;case 73:throw cn($t.INVALID_PARAMETER,new Error("Invalid parameter passed to OT.Publisher.setAudioSource(). Expected string or MediaStreamTrack."));case 74:case"end":return Bn.stop()}},P,null,[[11,20],[36,46]])}));return function(ee){return ht.apply(this,arguments)}}();this.setAudioSource=Zc,this._getAudioSource=()=>Pr&&Pr.getAudioTracks().length>0?Pr.getAudioTracks()[0]:null,this.getAudioSource=()=>Rr?Rr.originalTrack:this._getAudioSource();const co=function(){var ht=(0,s.default)(l.default.mark(function ee(Re){var rt,st,tn,Xt,en;return l.default.wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:if(rt=cn($t.INVALID_VIDEO_SOURCE,new Error("Invalid video source. Video source must be a valid video input deviceId"),1041),st=cn($t.SET_VIDEO_SOURCE_FAILURE,new Error("You cannot reset the video source on a publisher that does not currently use a camera source."),1040),!(qt.env.isLegacyEdge||!Mr.RTCRtpSender||typeof Mr.RTCRtpSender.prototype.replaceTrack!="function")){ge.next=4;break}throw cn($t.UNSUPPORTED_BROWSER,new Error("setVideoSource is not supported in your browser."),bt.UNABLE_TO_PUBLISH);case 4:if(typeof Re=="string"){ge.next=6;break}throw rt;case 6:if(tn=!Pr||Pr.getVideoTracks().length===0,!(Gn||qn||tn)){ge.next=9;break}throw st;case 9:return ge.next=11,Fi();case 11:if(Xt=ge.sent,en=Xt.find(ot=>ot.kind==="videoInput"&&ot.deviceId===Re),en){ge.next=15;break}throw rt;case 15:return ge.next=17,gd(Re);case 17:case"end":return ge.stop()}},ee)}));function P(ee){return ht.apply(this,arguments)}return P}();this.setVideoSource=co;const gd=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt,st,tn,Xt,en;return l.default.wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:if(rt=il,il=ee,un.publishVideo){ge.next=4;break}return ge.abrupt("return");case 4:if(!Td(ee)){ge.next=6;break}return ge.abrupt("return");case 6:if(st=ze(),!(un.publishVideo&&qt.env.isAndroid&&(qt.env.isChrome||qt.env.isFirefox))){ge.next=14;break}if(!ql){ge.next=13;break}return tn=ql,ge.next=12,hc();case 12:ql=null;case 13:st&&st.stop&&st.stop();case 14:return ge.prev=14,ge.next=17,Pe(ee);case 17:Xt=ge.sent,ge.next=25;break;case 20:throw ge.prev=20,ge.t0=ge.catch(14),il=rt,Ct.error(ge.t0),ge.t0;case 25:if(Xt){ge.next=28;break}return Ct.warn("Unable to aquire video track. Moving to next device."),ge.abrupt("return");case 28:if(!ql){ge.next=33;break}return en=ua.getOriginalVideoTrack(),ge.next=32,ua.setVideoTrack(Xt);case 32:Xt=ge.sent;case 33:if(!Un){ge.next=38;break}return en=Un.originalTrack,ge.next=37,Un.setTrack(Xt);case 37:Xt=ge.sent;case 38:return ge.next=40,tc(st,Xt);case 40:if(!tn){ge.next=43;break}return ge.next=43,ti.applyVideoFilter(tn);case 43:(Re=en)==null||Re.stop(),un.publishVideo&&(Xc=!1);case 45:case"end":return ge.stop()}},P,null,[[14,20]])}));return function(ee){return ht.apply(this,arguments)}}();this.getVideoSource=()=>{const ht={},P=!Pr||Pr.getVideoTracks().length===0;return ht.track=Pr&&un.publishVideo&&Pr.getVideoTracks()[0]||null,ht.deviceId=!qn&&!Gn&&il?il:null,Gn?ht.type="custom":qn?ht.type="screen":P?ht.type=null:ht.type="camera",ht},this._={privateEvents:yo,setIceConfig(ht){return(0,s.default)(l.default.mark(function P(){var ee;return l.default.wrap(function(rt){for(;;)switch(rt.prev=rt.next){case 0:return rt.next=2,cs();case 2:ee=rt.sent,ee.forEach(st=>st.setIceConfig(ht));case 4:case"end":return rt.stop()}},P)}))()},publishToSession:(ht,P)=>{if(Qn.current==="PublishingToSession"||Qn.isPublishing())return Ct.warn(`This publisher is already publishing to the session. If you want to republish, please unpublish first.`),a.resolve();P&&(el=P),this.session=ht,Zd=ht,this.streamId=(0,R.default)(),bl("Attempt",{dataChannels:un.channels,properties:(0,ve.default)(un)});const Re=new a((en,fn)=>{if(Wt){en();return}this.once("initSuccess",en),this.once("destroyed",ge=>{let ot=ge.reason,Vt="";ot&&(Vt=` Reason: ${ot}`),fn(new Error(`Publisher destroyed before it finished loading.${Vt}`))})});Ct.debug("publishToSession: waiting for publishComplete, which is triggered by stream#created from rumor");const rt=()=>{if(un._setDefaultScalabilityMode&&un.constraints.video){const en=this.getVideoContentHint();let fn;qn?fn=(0,Va.default)(en):Gn||(fn="L3T2_KEY"),fn&&this._setScalabilityMode(fn,this)}},st=new a((en,fn)=>{this.once("publishComplete",ge=>{if(ge){fn(ge);return}this._setScalableFramerates(un.scalableFramerates),this._setScalableVideoLayers(un.scalableVideoLayers),rt(),this.stream&&(this.stream.setChannelActiveState({channelType:"audio",activeState:Wi()}),this.stream.setChannelActiveState({channelType:"video",activeState:Ls()})),Ct.debug("publishToSession: got publishComplete"),en()})}),tn=en=>{const fn=(0,Ee.default)(en);throw bl("Failure",{},{failureReason:"Publish",failureCode:fn.code,failureMessage:fn.message}),Qn.isAttemptingToPublish()&&this.trigger("publishComplete",fn),Jn.handleJsException({errorMsg:en.message,code:fn.code,target:this,error:en,analytics:el}),fn};Ct.debug("publishToSession: waiting for loaded");const Xt=Re.then(()=>ht._.getVideoCodecsCompatible(Pr)).then(en=>{if(Ct.debug("publishToSession: loaded"),!this.session)return;const fn=setTimeout(()=>{Vs(ht)},mr);this.once("publishComplete",()=>{clearTimeout(fn)}),Qn.set("PublishingToSession");const ge=en&&Ji&&Ji.video(),ot=Pr.getVideoTracks().length>0,Vt=un.videoSource!==null&&un.videoSource!==!1;ge&&ot&&Vt&&$l.push(new Nn({id:"video1",type:"video",active:un.publishVideo,orientation:$r.ROTATED_NORMAL,frameRate:un.frameRate,width:this.videoWidth(),height:this.videoHeight(),e2ee:ht._.isE2ee(),source:qn?"screen":Gn?"custom":"camera",fitMode:un.fitMode}));const Ut=Pr.getAudioTracks().length>0;return un.audioSource!==null&&un.audioSource!==!1&&Ut&&($l.push(new Nn({id:"audio1",type:"audio",active:un.publishAudio})),$l.push(new Nn({id:"caption1",type:"data",active:un.publishCaptions}))),ru&&$l.push(new Nn({id:"downlinkStats1",type:"data",active:!0})),this._.streamChannels=$l,Ct.debug("publishToSession: creating rumor stream id"),new a((kn,Bn)=>{Rc(null,(ni,Uo,Aa)=>{if(ni){Bn(tn(ni));return}kn({streamId:Uo,message:Aa})})})}).then(en=>{if(en===void 0)return;const fn=en.streamId,ge=en.message;if(Ct.debug("publishToSession: rumor stream id created:",fn,"(this is different from stream#created, which requires media to actually be flowing for mantis sessions)"),fn!==this.streamId)throw new Error("streamId response does not match request");this.streamId=fn,Kn=Mn(ge)}).catch(en=>{throw this.trigger("publishComplete",en),en});return a.all([Xt,st])},unpublishFromSession:(ht,P)=>{if(!this.session||ht.id!==this.session.id){if(P==="unpublished"){const ee=this.session&&this.session.id||"no session";Ct.warn(`The publisher ${Oe} is trying to unpublish from a session ${ht.id} it is not attached to (it is attached to ${ee})`)}return this}if(ht.isConnected()&&(this.stream||Qn.isAttemptingToPublish())&&ht._.streamDestroy(this.streamId),Hl.releaseAll(),this.disconnect(),Qn.isAttemptingToPublish()){bl("Cancel",{reason:"unpublish"});const ee=()=>{switch(P){case"mediaStopped":return"The video element fired the ended event, indicating there is an issue with the media";case"unpublished":return"The publisher was unpublished before it could be published";case"reset":return"The publisher was reset";default:return`The publisher was destroyed due to ${P}`}},Re=new Error(ee());this.trigger("publishComplete",cn(P==="mediaStopped"?$t.MEDIA_ENDED:$t.CANCEL,Re))}return this.session=null,Sn("unpublish","Success"),this._.streamDestroyed(P),this},unpublishStreamFromSession:(ht,P,ee)=>ht.id!==this.streamId?(Ct.warn(`The publisher ${Oe} is trying to destroy a stream ${ht.id} that is not attached to it`),this):this._.unpublishFromSession(P,ee),streamDestroyed:ht=>{["reset"].indexOf(ht)<0&&(Qn.isDestroyed()||Qn.set("MediaBound"));const P=new At.StreamEvent("streamDestroyed",this.stream,ht,!0);this.dispatchEventOnce(P,this.streamId),P.isDefaultPrevented()||this.destroy(),this.streamId=null},archivingStatus(ht){return tl&&tl.setArchivingStatus(ht),ht},webRtcStream(){return Pr},switchTracks(){return(0,s.default)(l.default.mark(function ht(){var P;return l.default.wrap(function(Re){for(;;)switch(Re.prev=Re.next){case 0:return Re.prev=0,Re.next=3,Ar().catch(le);case 3:P=Re.sent,Re.next=10;break;case 6:throw Re.prev=6,Re.t0=Re.catch(0),Ct.error(`OT.Publisher.switchTracks failed to getUserMedia: ${Re.t0}`),Re.t0;case 10:zu(P),Re.prev=11,Sc(),Re.next=21;break;case 15:if(Re.prev=15,Re.t1=Re.catch(11),!(Re.t1 instanceof B.CancellationError)){Re.next=19;break}return Re.abrupt("return");case 19:throw Ct.error("Error while binding video",Re.t1),Re.t1;case 21:Re.prev=21,_u(),Re.next=29;break;case 25:throw Re.prev=25,Re.t2=Re.catch(21),Ct.error("Error replacing tracks",Re.t2),Re.t2;case 29:case"end":return Re.stop()}},ht,null,[[0,6],[11,15],[21,25]])}))()},getDataChannel(ht,P,ee){const Re=fc(Object.keys(mt)[0]);if(!Re){ee(new qt.Error("Cannot create a DataChannel before there is a subscriber."));return}Re.then(rt=>{rt.getDataChannel(ht,P,ee)})},iceRestart(ht){ht===void 0&&(ht=!1),cs().then(P=>{P.forEach(ee=>{const Re=ll(ee),rt=Re.remoteConnectionId;to("Attempt",{remoteConnectionId:rt}),Ct.debug("Publisher: ice restart attempt"),ee.iceRestart(),ht&&ee.generateOffer()})})},getState(){return Qn},demoOnlyCycleVideo:this.cycleVideo,testOnlyGetFramesEncoded(){return(0,s.default)(l.default.mark(function ht(){var P;return l.default.wrap(function(Re){for(;;)switch(Re.prev=Re.next){case 0:return Re.next=2,cs();case 2:if(P=Re.sent,P.length){Re.next=5;break}throw new Error("No established PeerConnections yet");case 5:return Re.abrupt("return",P[0]._testOnlyGetFramesEncoded());case 6:case"end":return Re.stop()}},ht)}))()},onStreamAvailable:td,startRoutedToRelayedTransition:()=>{Zl.startTransitionToRelayed(),bu()},startRelayedToRoutedTransition:()=>{Zl.startTransitionToRouted(Tc)},forceMuteAudio:(function(){Sn("publishAudio","Attempt",{publishAudio:!1}),un.publishAudio=!1;try{Fo("auto"),this.dispatchEvent(new At.MuteForcedEvent),Sn("publishAudio","Success",{publishAudio:!1})}catch(ht){Sn("publishAudio","Failure",{message:ht.message})}}).bind(this),setCongestionLevel:function(){var ht=(0,s.default)(l.default.mark(function ee(Re,rt){var st;return l.default.wrap(function(Xt){for(;;)switch(Xt.prev=Xt.next){case 0:if(!kc){Xt.next=15;break}if(!rt){Xt.next=8;break}return Xt.next=4,fc(rt);case 4:Xt.t1=Xt.sent,Xt.t0=[Xt.t1],Xt.next=11;break;case 8:return Xt.next=10,cs();case 10:Xt.t0=Xt.sent;case 11:st=Xt.t0,st.forEach(en=>{en.setCongestionLevel(Re)}),Xt.next=16;break;case 15:Ct.warn("Audio Fallback is not enabled");case 16:case"end":return Xt.stop()}},ee)}));function P(ee,Re){return ht.apply(this,arguments)}return P}()},this.detectDevices=function(){Ct.warn("Publisher.detectDevices() is not implemented.")},this.detectMicActivity=function(){Ct.warn("Publisher.detectMicActivity() is not implemented.")},this.getEchoCancellationMode=function(){return Ct.warn("Publisher.getEchoCancellationMode() is not implemented."),"fullDuplex"},this.setMicrophoneGain=function(){Ct.warn("Publisher.setMicrophoneGain() is not implemented.")},this.getMicrophoneGain=function(){return Ct.warn("Publisher.getMicrophoneGain() is not implemented."),.5},this.setCamera=function(){Ct.warn("Publisher.setCamera() is not implemented.")},this.setMicrophone=function(){Ct.warn("Publisher.setMicrophone() is not implemented.")},this.guid=function(){return Oe},this.videoElement=function(){const ht=Ji&&Ji.video();return ht?ht.domElement():null},this.setStream=Wc,this.isWebRTC=!0,this.isLoading=function(){return Ji&&Ji.loading()},this.videoWidth=()=>Gd().width,this.videoHeight=()=>Gd().height,this.getStats=function(P){mu((ee,Re)=>{ee?P(ee):P(null,Re)})},this.getRtcStatsReport=()=>new a((ht,P)=>{Cl((ee,Re)=>{ee?P(ee):ht(Re)})}),Qn=new sr(cc),this.accessAllowed=!1,this.applyVideoFilter=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt,st,tn,Xt,en;return l.default.wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:if(Re=(0,at.default)(ee),Sn("applyVideoFilter","Attempt",{videoFilter:Re}),ge.prev=2,!Un){ge.next=5;break}throw cn($t.NOT_SUPPORTED,new Error("Cannot apply video filter when videoMediaProcessorConnector is set."));case 5:if(rt=Io.isSupported(),rt){ge.next=8;break}throw cn($t.NOT_SUPPORTED,new Error("Browser does not support video filters (Insertable Streams and Worker APIs are required)"));case 8:if(ua.isValidVideoFilter(ee)){ge.next=10;break}throw cn($t.INVALID_PARAMETER,new Error("Video filter has invalid configuration"));case 10:if(Pr){ge.next=15;break}return st="Ignoring. No mediaStream",Sn("applyVideoFilter","Failure",{message:st}),Ct.warn(st),ge.abrupt("return");case 15:if(!qn){ge.next=17;break}throw cn($t.INVALID_PARAMETER,new Error("Video filters can not be applied to screen share"));case 17:if(Il(),un.publishVideo){ge.next=22;break}return ql=ee,Sn("applyVideoFilter","Success",{videoFilter:Re}),ge.abrupt("return");case 22:if(!ua.getVideoFilter()){ge.next=37;break}if(!ua.canUpdateVideoFilter(ee.type)){ge.next=35;break}return ge.prev=24,ge.next=27,ua.updateVideoFilter(ee);case 27:return ql=ee,Sn("applyVideoFilter","Success",{videoFilter:Re}),ge.abrupt("return");case 32:ge.prev=32,ge.t0=ge.catch(24),Ct.warn(`Error updating video filter: ${ge.t0}`);case 35:return ge.next=37,ti.clearVideoFilter();case 37:if(tn=Pr.getVideoTracks(),Xt=tn[0],Xt){ge.next=43;break}return st="Ignoring. No video",Sn("applyVideoFilter","Failure",{message:st}),Ct.warn(st),ge.abrupt("return");case 43:return ge.next=45,ua.setVideoFilter(ee);case 45:return ge.next=47,ua.setMediaStream(Pr);case 47:if(en=ge.sent,!en){ge.next=51;break}return ge.next=51,tc(Xt,en);case 51:ge.next=58;break;case 53:throw ge.prev=53,ge.t1=ge.catch(2),Ct.error(`Error applying video filter: ${ge.t1}`),Sn("applyVideoFilter","Failure",{message:ge.t1.message}),ge.t1;case 58:ql=ee,Sn("applyVideoFilter","Success",{videoFilter:Re});case 60:case"end":return ge.stop()}},P,null,[[2,53],[24,32]])}));return function(P){return ht.apply(this,arguments)}}(),this.getVideoFilter=()=>(Sn("getVideoFilter","Attempt"),Sn("getVideoFilter","Success"),ql||null),this.applyAudioFilter=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt,st,tn,Xt,en;return l.default.wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:if(Sn("applyAudioFilter","Attempt",{audioFilter:ee}),Re=Io.isSupported(),Re){ge.next=4;break}throw cn($t.NOT_SUPPORTED,new Error("Browser does not support audio filters (Insertable Streams and Worker APIs are required)"));case 4:if((0,oi.default)(ee)){ge.next=6;break}throw cn($t.INVALID_PARAMETER,new Error("Audio filter has invalid configuration"));case 6:if(!Rr){ge.next=8;break}throw cn($t.NOT_SUPPORTED,new Error("Cannot apply audio filter when audioMediaProcessorConnector is set."));case 8:if(Pr){ge.next=13;break}return rt="Ignoring. No mediaStream",Sn("applyAudioFilter","Failure",{message:rt}),Ct.warn(rt),ge.abrupt("return");case 13:if(un.publishAudio){ge.next=17;break}return ys=ee,Sn("applyAudioFilter","Success",{audioFilter:ee}),ge.abrupt("return");case 17:if(!ti.getAudioFilter()){ge.next=20;break}return ge.next=20,ti.clearAudioFilter();case 20:if(ge.prev=20,ee.type!=="advancedNoiseSuppression"){ge.next=32;break}return st=Ra.default.getConfig({library:"noise-suppression",proxyUrl:(0,_a.getProxyUrl)()}),tn=st.assetsDirBaseUrl,Xt=Si(),ge.next=26,Xt.init({assetsDirBaseUrl:tn});case 26:return ge.next=28,Xt.getConnector();case 28:return en=ge.sent,ge.next=31,us(en);case 31:ys=ee;case 32:ge.next=39;break;case 34:throw ge.prev=34,ge.t0=ge.catch(20),Ct.error(`Error applying audio filter: ${ge.t0}`),Sn("applyAudioFilter","Failure",{message:ge.t0.message}),ge.t0;case 39:Sn("applyAudioFilter","Success");case 40:case"end":return ge.stop()}},P,null,[[20,34]])}));return function(P){return ht.apply(this,arguments)}}(),this.clearAudioFilter=(0,s.default)(l.default.mark(function ht(){var P;return l.default.wrap(function(Re){for(;;)switch(Re.prev=Re.next){case 0:if(Sn("clearAudioFilter","Attempt"),!(!un.publishAudio&&ti.getAudioFilter())){Re.next=5;break}return ys=null,Sn("clearAudioFilter","Success"),Re.abrupt("return");case 5:if(Io.isSupported()){Re.next=10;break}return P='Ignoring. "clearAudioFilter" not supported.',Sn("clearAudioFilter","Success",{message:P}),Ct.warn(P),Re.abrupt("return");case 10:if(ti.getAudioFilter()){Re.next=15;break}return P="Ignoring. No audio filter applied",Sn("clearAudioFilter","Success",{message:P}),Ct.debug(P),Re.abrupt("return");case 15:if(Pr){Re.next=20;break}return P="Ignoring. No mediaStream",Sn("clearAudioFilter","Success",{message:P}),Ct.warn(P),Re.abrupt("return");case 20:return Re.prev=20,Re.next=23,us(null);case 23:ys=null,Re.next=30;break;case 26:return Re.prev=26,Re.t0=Re.catch(20),Sn("clearAudioFilter","Failure",{error:Re.t0}),Re.abrupt("return");case 30:Sn("clearAudioFilter","Success");case 31:case"end":return Re.stop()}},ht,null,[[20,26]])})),this.getAudioFilter=()=>(Sn("getAudioFilter","Attempt"),Sn("getAudioFilter","Success"),ys||null),this.setVideoMediaProcessorConnector=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt,st,tn,Xt,en;return l.default.wrap(function(ge){for(;;)switch(ge.prev=ge.next){case 0:if(Sn("setVideoMediaProcessorConnector","Attempt",{message:ee?"setting the connector":"clearing the connector"}),!ti.getVideoFilter()){ge.next=4;break}throw Sn("setVideoMediaProcessorConnector","Failure",{message:"Tried to set video MediaProcessorConnector when video filter applied."}),cn($t.NOT_SUPPORTED,new Error("setVideoMediaProcessorConnector: Cannot use this method when videoFilter is set."));case 4:if(!Un){ge.next=14;break}return Re=Pr.getVideoTracks(),rt=Re[0],ge.next=8,Pe(il);case 8:return st=ge.sent,ge.next=11,tc(rt,st);case 11:Un.destroy(),Un.stopOriginalTrack(),Un=null;case 14:if(ee){ge.next=17;break}return Sn("setVideoMediaProcessorConnector","Success",{message:"clearing the connector"}),ge.abrupt("return");case 17:if(qo.isValidConnector(ee)){ge.next=20;break}throw Sn("setVideoMediaProcessorConnector","Failure",{message:"Invalid MediaProcessorConnector"}),cn($t.INVALID_PARAMETER,new Error("setVideoMediaProcessorConnector: Tried to set invalid MediaProcessorConnector"));case 20:if(Un=new qo(ee),tn=Pr.getVideoTracks(),Xt=tn[0],Xt){ge.next=28;break}return en="Connector not set as no video track is present.",Sn("setVideoMediaProcessorConnector","Failure",{message:en}),Ct.warn(`setVideoMediaProcessorConnector: ${en}`),Un=null,ge.abrupt("return");case 28:return ge.prev=28,ge.next=31,Un.setTrack(Xt);case 31:return rt=ge.sent,ge.next=34,tc(Xt,rt);case 34:ge.next=42;break;case 36:throw ge.prev=36,ge.t0=ge.catch(28),Un=null,Ct.error(`setVideoMediaProcessorConnector: Error getting track from MediaProcessorConnector: ${ge.t0}`),Sn("setVideoMediaProcessorConnector","Failure",{message:ge.t0.message}),ge.t0;case 42:Sn("setVideoMediaProcessorConnector","Success");case 43:case"end":return ge.stop()}},P,null,[[28,36]])}));return function(P){return ht.apply(this,arguments)}}(),this.setAudioMediaProcessorConnector=function(){var ht=(0,s.default)(l.default.mark(function P(ee){return l.default.wrap(function(rt){for(;;)switch(rt.prev=rt.next){case 0:return Sn("setAudioMediaProcessorConnector","Attempt",{message:ee?"setting the connector":"clearing the connector"}),rt.prev=1,rt.next=4,us(ee);case 4:Sn("setAudioMediaProcessorConnector","Success",{message:ee?void 0:"clearing the connector"}),rt.next=11;break;case 7:throw rt.prev=7,rt.t0=rt.catch(1),Sn("setAudioMediaProcessorConnector","Failure",{message:rt.t0.message}),rt.t0;case 11:case"end":return rt.stop()}},P,null,[[1,7]])}));return function(P){return ht.apply(this,arguments)}}();const us=function(){var ht=(0,s.default)(l.default.mark(function P(ee){var Re,rt,st,tn,Xt;return l.default.wrap(function(fn){for(;;)switch(fn.prev=fn.next){case 0:if(!(ti.getAudioFilter()&&ee)){fn.next=3;break}throw Re="Tried to set audio MediaProcessorConnector when audio filter applied.",cn($t.NOT_SUPPORTED,new Error(Re));case 3:if(!Rr){fn.next=9;break}return rt=Pr.getAudioTracks(),st=rt[0],fn.next=7,wc(st,Rr.originalTrack);case 7:Rr.destroy(),Rr=null;case 9:if(ee){fn.next=11;break}return fn.abrupt("return");case 11:if(qo.isValidConnector(ee)){fn.next=14;break}throw Re="Invalid MediaProcessorConnector",cn($t.INVALID_PARAMETER,new Error(Re));case 14:if(tn=Pr.getAudioTracks(),Xt=tn[0],Xt){fn.next=20;break}throw Re="Connector not set as no audio track is present.",Ct.warn(`setAudioMediaProcessorConnector: ${Re}`),Rr=null,new Error(Re);case 20:return Rr=new qo(ee),fn.prev=21,fn.next=24,Rr.setTrack(Xt);case 24:return st=fn.sent,fn.next=27,wc(ti._getAudioSource(),st);case 27:fn.next=34;break;case 29:throw fn.prev=29,fn.t0=fn.catch(21),Rr=null,Ct.error(`setAudioMediaProcessorConnector: Error getting track from MediaProcessorConnector: ${fn.t0}`),fn.t0;case 34:case"end":return fn.stop()}},P,null,[[21,29]])}));return function(ee){return ht.apply(this,arguments)}}();this.clearVideoFilter=(0,s.default)(l.default.mark(function ht(){var P,ee,Re,rt,st;return l.default.wrap(function(Xt){for(;;)switch(Xt.prev=Xt.next){case 0:if(Sn("clearVideoFilter","Attempt"),!(!un.publishVideo&&!ua.getVideoFilter())){Xt.next=5;break}return ql=null,Sn("clearVideoFilter","Success"),Xt.abrupt("return");case 5:if(!(!ua.getVideoFilter()&&!ql)){Xt.next=10;break}return P="Ignoring. No video filter applied",Sn("clearVideoFilter","Success",{message:P}),Ct.debug(P),Xt.abrupt("return");case 10:if(Io.isSupported()){Xt.next=15;break}return P='Ignoring. "clearVideoFilter" not supported.',Sn("clearVideoFilter","Success",{message:P}),Ct.warn(P),Xt.abrupt("return");case 15:if(Pr){Xt.next=20;break}return P="Ignoring. No mediaStream",Sn("clearVideoFilter","Success",{message:P}),Ct.warn(P),Xt.abrupt("return");case 20:return ee=ql,ql=null,Re=Pr.getVideoTracks(),rt=Re[0],Xt.prev=23,Xt.next=26,Pe(il);case 26:st=Xt.sent,Xt.next=33;break;case 29:return Xt.prev=29,Xt.t0=Xt.catch(23),Ct.error(Xt.t0),Xt.abrupt("return");case 33:if(st){Xt.next=36;break}return Ct.warn("Failed to clear filter because there is no video track."),Xt.abrupt("return");case 36:return Xt.prev=36,Xt.next=39,tc(rt,st);case 39:return Xt.next=41,hc();case 41:Xt.next=46;break;case 43:Xt.prev=43,Xt.t1=Xt.catch(36),ql=ee;case 46:Sn("clearVideoFilter","Success");case 47:case"end":return Xt.stop()}},ht,null,[[23,29],[36,43]])}))}}}).call(this,i(2))},function(n,r){function i(a){if(a===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}n.exports=i},function(n,r,i){i.r(r),(function(a,o){i.d(r,"BackgroundTransformer",function(){return fU}),i.d(r,"BackgroundTransformerType",function(){return _n}),i.d(r,"BlurRadius",function(){return mn}),i.d(r,"ErrorFunction",function(){return Di}),i.d(r,"MediapipeHelper",function(){return cn}),i.d(r,"PipelineInfoData",function(){return Da}),i.d(r,"RenderingType",function(){return ha}),i.d(r,"VonageMediaProcessor",function(){return gF}),i.d(r,"WarningType",function(){return Hi}),i.d(r,"WebglSelfieSegmentationType",function(){return vr}),i.d(r,"createVonageMediaProcessor",function(){return H3}),i.d(r,"getSupportedBrowserFeatures",function(){return Qa}),i.d(r,"getVonageFaceDetection",function(){return Y3}),i.d(r,"getVonageFaceMash",function(){return D3}),i.d(r,"getVonageHands",function(){return k3}),i.d(r,"getVonageHolistic",function(){return w3}),i.d(r,"getVonageObjectron",function(){return M3}),i.d(r,"getVonagePose",function(){return L3}),i.d(r,"getVonageSelfieSegmentation",function(){return X3}),i.d(r,"isSupported",function(){return $o});var l=Object.defineProperty,s=(G,Z,W)=>Z in G?l(G,Z,{enumerable:!0,configurable:!0,writable:!0,value:W}):G[Z]=W,d=(G,Z,W)=>(s(G,typeof Z!="symbol"?Z+"":Z,W),W),c=Object.defineProperty,u=(G,Z,W)=>Z in G?c(G,Z,{enumerable:!0,configurable:!0,writable:!0,value:W}):G[Z]=W,h=(G,Z,W)=>(u(G,typeof Z!="symbol"?Z+"":Z,W),W);function f(){return new a((G,Z)=>{typeof MediaStreamTrackProcessor>"u"||typeof MediaStreamTrackGenerator>"u"?Z("Your browser does not support the MediaStreamTrack API for Insertable Streams of Media."):G()})}class g{}h(g,"updates",{transformer_new:"New transformer",transformer_null:"Null transformer"}),h(g,"errors",{transformer_none:"No transformers provided",transformer_start:"Cannot start transformer",transformer_transform:"Cannot transform frame",transformer_flush:"Cannot flush transformer",readable_null:"Readable is null",writable_null:"Writable is null"});const A=new WeakMap,b=new WeakMap,p=new WeakMap,y=Symbol("anyProducer"),m=a.resolve(),F=Symbol("listenerAdded"),R=Symbol("listenerRemoved");let C=!1;function B(G){if(typeof G!="string"&&typeof G!="symbol")throw new TypeError("eventName must be a string or a symbol")}function N(G){if(typeof G!="function")throw new TypeError("listener must be a function")}function S(G,Z){const W=b.get(G);return W.has(Z)||W.set(Z,new Set),W.get(Z)}function X(G,Z){const W=typeof Z=="string"||typeof Z=="symbol"?Z:y,se=p.get(G);return se.has(W)||se.set(W,new Set),se.get(W)}function J(G,Z,W){const se=p.get(G);if(se.has(Z))for(const Qe of se.get(Z))Qe.enqueue(W);if(se.has(y)){const Qe=a.all([Z,W]);for(const et of se.get(y))et.enqueue(Qe)}}function E(G,Z){Z=Array.isArray(Z)?Z:[Z];let W=!1,se=()=>{},Qe=[];const et={enqueue(Zt){Qe.push(Zt),se()},finish(){W=!0,se()}};for(const Zt of Z)X(G,Zt).add(et);return{async next(){return Qe?Qe.length===0?W?(Qe=void 0,this.next()):(await new a(Zt=>{se=Zt}),this.next()):{done:!1,value:await Qe.shift()}:{done:!0}},async return(Zt){Qe=void 0;for(const ft of Z)X(G,ft).delete(et);return se(),arguments.length>0?{done:!0,value:await Zt}:{done:!0}},[Symbol.asyncIterator](){return this}}}function v(G){if(G===void 0)return K;if(!Array.isArray(G))throw new TypeError("`methodNames` must be an array of strings");for(const Z of G)if(!K.includes(Z))throw typeof Z!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${Z} is not Emittery method`);return G}const j=G=>G===F||G===R;class H{static mixin(Z,W){return W=v(W),se=>{if(typeof se!="function")throw new TypeError("`target` must be function");for(const Zt of W)if(se.prototype[Zt]!==void 0)throw new Error(`The property \`${Zt}\` already exists on \`target\``);function Qe(){return Object.defineProperty(this,Z,{enumerable:!1,value:new H}),this[Z]}Object.defineProperty(se.prototype,Z,{enumerable:!1,get:Qe});const et=Zt=>function(...ft){return this[Z][Zt](...ft)};for(const Zt of W)Object.defineProperty(se.prototype,Zt,{enumerable:!1,value:et(Zt)});return se}}static get isDebugEnabled(){if(typeof o!="object")return C;const{env:Z}=o||{env:{}};return Z.DEBUG==="emittery"||Z.DEBUG==="*"||C}static set isDebugEnabled(Z){C=Z}constructor(Z={}){A.set(this,new Set),b.set(this,new Map),p.set(this,new Map),this.debug=Z.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(W,se,Qe,et)=>{try{et=JSON.stringify(et)}catch{et=`Object with the following keys failed to stringify: ${Object.keys(et).join(",")}`}typeof Qe=="symbol"&&(Qe=Qe.toString());const Zt=new Date,ft=`${Zt.getHours()}:${Zt.getMinutes()}:${Zt.getSeconds()}.${Zt.getMilliseconds()}`;console.log(`[${ft}][emittery:${W}][${se}] Event Name: ${Qe} data: ${et}`)})}logIfDebugEnabled(Z,W,se){(H.isDebugEnabled||this.debug.enabled)&&this.debug.logger(Z,this.debug.name,W,se)}on(Z,W){N(W),Z=Array.isArray(Z)?Z:[Z];for(const se of Z)B(se),S(this,se).add(W),this.logIfDebugEnabled("subscribe",se,void 0),j(se)||this.emit(F,{eventName:se,listener:W});return this.off.bind(this,Z,W)}off(Z,W){N(W),Z=Array.isArray(Z)?Z:[Z];for(const se of Z)B(se),S(this,se).delete(W),this.logIfDebugEnabled("unsubscribe",se,void 0),j(se)||this.emit(R,{eventName:se,listener:W})}once(Z){return new a(W=>{const se=this.on(Z,Qe=>{se(),W(Qe)})})}events(Z){Z=Array.isArray(Z)?Z:[Z];for(const W of Z)B(W);return E(this,Z)}async emit(Z,W){B(Z),this.logIfDebugEnabled("emit",Z,W),J(this,Z,W);const se=S(this,Z),Qe=A.get(this),et=[...se],Zt=j(Z)?[]:[...Qe];await m,await a.all([...et.map(async ft=>{if(se.has(ft))return ft(W)}),...Zt.map(async ft=>{if(Qe.has(ft))return ft(Z,W)})])}async emitSerial(Z,W){B(Z),this.logIfDebugEnabled("emitSerial",Z,W);const se=S(this,Z),Qe=A.get(this),et=[...se],Zt=[...Qe];await m;for(const ft of et)se.has(ft)&&await ft(W);for(const ft of Zt)Qe.has(ft)&&await ft(Z,W)}onAny(Z){return N(Z),this.logIfDebugEnabled("subscribeAny",void 0,void 0),A.get(this).add(Z),this.emit(F,{listener:Z}),this.offAny.bind(this,Z)}anyEvent(){return E(this)}offAny(Z){N(Z),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(R,{listener:Z}),A.get(this).delete(Z)}clearListeners(Z){Z=Array.isArray(Z)?Z:[Z];for(const W of Z)if(this.logIfDebugEnabled("clear",W,void 0),typeof W=="string"||typeof W=="symbol"){S(this,W).clear();const se=X(this,W);for(const Qe of se)Qe.finish();se.clear()}else{A.get(this).clear();for(const se of b.get(this).values())se.clear();for(const se of p.get(this).values()){for(const Qe of se)Qe.finish();se.clear()}}}listenerCount(Z){Z=Array.isArray(Z)?Z:[Z];let W=0;for(const se of Z){if(typeof se=="string"){W+=A.get(this).size+S(this,se).size+X(this,se).size+X(this).size;continue}typeof se<"u"&&B(se),W+=A.get(this).size;for(const Qe of b.get(this).values())W+=Qe.size;for(const Qe of p.get(this).values())W+=Qe.size}return W}bindMethods(Z,W){if(typeof Z!="object"||Z===null)throw new TypeError("`target` must be an object");W=v(W);for(const se of W){if(Z[se]!==void 0)throw new Error(`The property \`${se}\` already exists on \`target\``);Object.defineProperty(Z,se,{enumerable:!1,value:this[se].bind(this)})}}}const K=Object.getOwnPropertyNames(H.prototype).filter(G=>G!=="constructor");Object.defineProperty(H,"listenerAdded",{value:F,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(H,"listenerRemoved",{value:R,writable:!1,enumerable:!0,configurable:!1});var Fe=H;function z(G){return typeof G=="object"&&G!==null&&"message"in G&&typeof G.message=="string"}function q(G){if(z(G))return G;try{return new Error(JSON.stringify(G))}catch{return new Error(String(G))}}function Ae(G){return q(G).message}var Ke=Object.defineProperty,pe=(G,Z,W)=>Z in G?Ke(G,Z,{enumerable:!0,configurable:!0,writable:!0,value:W}):G[Z]=W,We=(G,Z,W)=>(pe(G,Z+"",W),W);const xe="hlg.tokbox.com/prod/logging/vcp_webrtc",$e="https://",Rt=1e4;let Be;const qe=new Uint8Array(16);function at(){if(!Be&&(Be=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Be))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Be(qe)}const Bt=[];for(let G=0;G<256;++G)Bt.push((G+256).toString(16).slice(1));function jt(G,Z=0){return(Bt[G[Z+0]]+Bt[G[Z+1]]+Bt[G[Z+2]]+Bt[G[Z+3]]+"-"+Bt[G[Z+4]]+Bt[G[Z+5]]+"-"+Bt[G[Z+6]]+Bt[G[Z+7]]+"-"+Bt[G[Z+8]]+Bt[G[Z+9]]+"-"+Bt[G[Z+10]]+Bt[G[Z+11]]+Bt[G[Z+12]]+Bt[G[Z+13]]+Bt[G[Z+14]]+Bt[G[Z+15]]).toLowerCase()}const Ne=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Je={randomUUID:Ne};function ve(G,Z,W){if(Je.randomUUID&&!G)return Je.randomUUID();G=G||{};const se=G.random||(G.rng||at)();return se[6]=se[6]&15|64,se[8]=se[8]&63|128,jt(se)}function Ye(G,Z){globalThis.vonage||(globalThis.vonage={}),globalThis.vonage.workerizer||(globalThis.vonage.workerizer={});let W=globalThis.vonage.workerizer;return W[G]||(W[G]=Z),W[G]}const it=Ye("globals",{});var Qt=(G=>(G.INIT="INIT",G.FORWARD="FORWARD",G.TERMINATE="TERMINATE",G.GLOBALS_SYNC="GLOBALS_SYNC",G))(Qt||{});function _t(G){return[ImageBitmap,ReadableStream,WritableStream].some(Z=>G instanceof Z)}let Dt=0;function Ee(G,Z,W,se,Qe){const et=Dt++;return G.postMessage({id:et,type:Z,functionName:W,args:se},se.filter(Zt=>_t(Zt))),new a(Zt=>{Qe==null||Qe.set(et,Zt)})}function Ge(G,Z){const{id:W,type:se}=G,Qe=Array.isArray(Z)?Z:[Z];postMessage({id:W,type:se,result:Z},Qe.filter(et=>_t(et)))}const he=Ye("workerized",{});function $(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}async function ie(){if($())Ge({type:Qt.GLOBALS_SYNC},it);else{const G=[];for(const Z in he){const{worker:W,resolvers:se}=he[Z].workerContext;W&&G.push(Ee(W,Qt.GLOBALS_SYNC,"",[it],se))}await a.all(G)}}function Ve(G,Z){if(Array.isArray(Z))Z.splice(0,Z.length);else if(typeof Z=="object")for(const W in Z)delete Z[W];for(const W in G)Array.isArray(G[W])?(Z[W]=[],Ve(G[W],Z[W])):typeof G[W]=="object"?(Z[W]={},Ve(G[W],Z[W])):Z[W]=G[W]}async function _e(G,Z){const{functionName:W,args:se}=G;if(!Z.instance)throw"instance not initialized";if(!W)throw"missing function name to call";if(!Z.instance[W])throw`undefined function [${W}] in class ${Z.instance.constructor.workerId}`;Ge(G,await Z.instance[W](...se??[]))}const we=Ye("registeredWorkers",{});function nt(G,Z){if(!G.args)throw"Missing className while initializing worker";const[W,se]=G.args,Qe=we[W];if(Qe)Z.instance=new Qe(G.args.slice(1));else throw`unknown worker class ${W}`;Ve(se,it),Ge(G,typeof Z.instance!==void 0)}async function Gt(G,Z){const{args:W}=G;if(!Z.instance)throw"instance not initialized";let se;Z.instance.terminate&&(se=await Z.instance.terminate(...W??[])),Ge(G,se)}function An(G){if(!G.args)throw"Missing globals while syncing";Ve(G.args[0],it),Ge(G,{})}function Dn(){const G={};onmessage=async Z=>{const W=Z.data;switch(W.type){case Qt.INIT:nt(W,G);break;case Qt.FORWARD:_e(W,G);break;case Qt.TERMINATE:Gt(W,G);break;case Qt.GLOBALS_SYNC:An(W);break}}}$()&&Dn();function tr(G,Z){return it[G]||(it[G]=Z),[()=>it[G],async W=>{it[G]=W,await ie()}]}function nr(G,Z){return tr(G,Z)}const[zn,dr]=nr("metadata");function Dr(G){dr(G)}function ui(){return zn()}class Pn{constructor(Z){We(this,"uuid",ve()),this.config=Z}async send(Z){var W,se,Qe;const{appId:et,sourceType:Zt}=(W=ui())!=null?W:{};if(!et||!Zt)return"metadata missing";const ft=new AbortController,kt=setTimeout(()=>ft.abort(),Rt);return await((Qe=(se=this.config)==null?void 0:se.fetch)!=null?Qe:fetch)(this.getUrl(),{method:"POST",headers:this.getHeaders(),body:JSON.stringify(this.buildReport(Z)),signal:ft.signal}),clearTimeout(kt),"success"}getUrl(){var Z;let W=(Z=ui().proxyUrl)!=null?Z:$e;return W+=(W.at(-1)==="/"?"":"/")+xe,W}getHeaders(){return{"Content-Type":"application/json"}}buildReport(Z){const W=ui();return{guid:this.uuid,...Z,applicationId:W.appId,timestamp:Date.now(),proxyUrl:W.proxyUrl,source:W.sourceType}}}const hr="2.0.3";class xr{constructor(Z){h(this,"frameTransformedCount",0),h(this,"frameFromSourceCount",0),h(this,"startAt",0),h(this,"reporter"),this.config=Z,this.reporter=new Pn(Z)}async onFrameFromSource(){this.frameFromSourceCount++}get fps(){const{startAt:Z,frameFromSourceCount:W}=this,se=(Date.now()-Z)/1e3;return W/se}async onFrameTransformed(Z={},W=!1){this.startAt===0&&(this.startAt=Date.now()),this.frameTransformedCount++;const{startAt:se,frameTransformedCount:Qe,frameFromSourceCount:et}=this,Zt=Date.now(),ft=(Zt-se)/1e3,kt=Qe/ft,rr=et/ft;return W||this.frameTransformedCount>=this.config.loggingIntervalFrameCount?(this.frameFromSourceCount=0,this.frameTransformedCount=0,this.startAt=Zt,this.reporter.config=this.config,this.reporter.send({...this.config.report,variation:"QoS",fps:rr,transformedFps:kt,framesTransformed:Qe,...Z})):"success"}}var Hi=(G=>(G.FPS_DROP="fps_drop",G))(Hi||{}),Di=(G=>(G.start="start",G.transform="transform",G.flush="flush",G))(Di||{}),Da=(G=>(G.pipeline_ended="pipeline_ended",G.pipeline_ended_with_error="pipeline_ended_with_error",G.pipeline_started="pipeline_started",G.pipeline_started_with_error="pipeline_started_with_error",G.pipeline_restarted="pipeline_restarted",G.pipeline_restarted_with_error="pipeline_restarted_with_error",G))(Da||{});const oi=500,Ra=.8;class Va extends Fe{constructor(Z,W){super(),h(this,"reporter_",new Pn),h(this,"reporterQos_",new xr({loggingIntervalFrameCount:oi,report:{version:hr}})),h(this,"transformerType_"),h(this,"transformer_"),h(this,"shouldStop_"),h(this,"isFlashed_"),h(this,"mediaTransformerQosReportStartTimestamp_"),h(this,"videoHeight_"),h(this,"videoWidth_"),h(this,"trackExpectedRate_"),h(this,"index_"),h(this,"controller_"),this.index_=W,this.transformer_=Z,this.shouldStop_=!1,this.isFlashed_=!1,this.mediaTransformerQosReportStartTimestamp_=0,this.videoHeight_=0,this.videoWidth_=0,this.trackExpectedRate_=-1,this.transformerType_="Custom","getTransformerType"in Z&&(this.transformerType_=Z.getTransformerType()),this.report({variation:"Create"})}setTrackExpectedRate(Z){this.trackExpectedRate_=Z}async start(Z){if(this.controller_=Z,this.transformer_&&typeof this.transformer_.start=="function")try{await this.transformer_.start(Z)}catch(W){this.report({message:g.errors.transformer_start,variation:"Error",error:Ae(W)});const se={eventMetaData:{transformerIndex:this.index_},error:W,function:"start"};this.emit("error",se)}}async transform(Z,W){var se,Qe,et,Zt;if(this.mediaTransformerQosReportStartTimestamp_===0&&(this.mediaTransformerQosReportStartTimestamp_=Date.now()),Z instanceof VideoFrame&&(this.videoHeight_=(se=Z==null?void 0:Z.displayHeight)!=null?se:0,this.videoWidth_=(Qe=Z==null?void 0:Z.displayWidth)!=null?Qe:0),this.reporterQos_.onFrameFromSource(),this.transformer_)if(this.shouldStop_)console.warn("[Pipeline] flush from transform"),Z.close(),this.flush(W),W.terminate();else{try{await((Zt=(et=this.transformer_).transform)==null?void 0:Zt.call(et,Z,W)),this.reportQos()}catch(ft){this.report({message:g.errors.transformer_transform,variation:"Error",error:Ae(ft)});const kt={eventMetaData:{transformerIndex:this.index_},error:ft,function:"transform"};this.emit("error",kt)}if(this.trackExpectedRate_!=-1&&this.trackExpectedRate_*Ra>this.reporterQos_.fps){const ft={eventMetaData:{transformerIndex:this.index_},warningType:"fps_drop",dropInfo:{requested:this.trackExpectedRate_,current:this.reporterQos_.fps}};this.emit("warn",ft)}}}async flush(Z){if(this.transformer_&&typeof this.transformer_.flush=="function"&&!this.isFlashed_){this.isFlashed_=!0;try{await this.transformer_.flush(Z)}catch(W){this.report({message:g.errors.transformer_flush,variation:"Error",error:Ae(W)});const se={eventMetaData:{transformerIndex:this.index_},error:W,function:"flush"};this.emit("error",se)}}this.reportQos(!0),this.report({variation:"Delete"})}stop(){console.log("[Pipeline] Stop stream."),this.controller_&&(this.flush(this.controller_),this.controller_.terminate()),this.shouldStop_=!0}report(Z){this.reporter_.send({version:hr,action:"MediaTransformer",transformerType:this.transformerType_,...Z})}reportQos(Z=!1){this.reporterQos_.config={...this.reporterQos_.config},this.reporterQos_.onFrameTransformed({version:hr,action:"MediaTransformer",transformerType:this.transformerType_,videoWidth:this.videoWidth_,videoHeight:this.videoHeight_},Z)}}class fi extends Fe{constructor(Z){super(),h(this,"transformers_"),h(this,"trackExpectedRate_"),this.transformers_=[],this.trackExpectedRate_=-1;for(let W=0;W<Z.length;W++){let se=new Va(Z[W],W);se.on("error",Qe=>{this.emit("error",Qe)}),se.on("warn",Qe=>{this.emit("warn",Qe)}),this.transformers_.push(se)}}setTrackExpectedRate(Z){this.trackExpectedRate_=Z;for(let W of this.transformers_)W.setTrackExpectedRate(this.trackExpectedRate_)}async start(Z,W){if(!this.transformers_||this.transformers_.length===0){console.log("[Pipeline] No transformers.");return}try{let se=Z;for(let Qe of this.transformers_)Z=Z.pipeThrough(new TransformStream(Qe));Z.pipeTo(W).then(async()=>{console.log("[Pipeline] Setup."),await W.abort(),await se.cancel(),this.emit("pipelineInfo","pipeline_ended")}).catch(async Qe=>{Z.cancel().then(()=>{console.log("[Pipeline] Shutting down streams after abort.")}).catch(et=>{console.error("[Pipeline] Error from stream transform:",et)}),await W.abort(Qe),await se.cancel(Qe),this.emit("pipelineInfo","pipeline_ended_with_error")})}catch{this.emit("pipelineInfo","pipeline_started_with_error"),this.destroy();return}this.emit("pipelineInfo","pipeline_started"),console.log("[Pipeline] Pipeline started.")}async destroy(){console.log("[Pipeline] Destroying Pipeline.");for(let Z of this.transformers_)Z.stop()}}class _a extends Fe{constructor(){super(),h(this,"reporter_"),h(this,"pipeline_"),h(this,"transformers_"),h(this,"readable_"),h(this,"writable_"),h(this,"trackExpectedRate_"),this.reporter_=new Pn,this.trackExpectedRate_=-1,this.report({variation:"Create"})}setTrackExpectedRate(Z){this.trackExpectedRate_=Z,this.pipeline_&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_)}transform(Z,W){return this.readable_=Z,this.writable_=W,this.transformInternal()}transformInternal(){return new a(async(Z,W)=>{if(!this.transformers_||this.transformers_.length===0){this.report({message:g.errors.transformer_none,variation:"Error"}),W("[MediaProcessor] Need to set transformers.");return}if(!this.readable_){this.report({variation:"Error",message:g.errors.readable_null}),W("[MediaProcessor] Readable is null.");return}if(!this.writable_){this.report({variation:"Error",message:g.errors.writable_null}),W("[MediaProcessor] Writable is null.");return}let se=!1;this.pipeline_&&(se=!0,this.pipeline_.clearListeners(),this.pipeline_.destroy()),this.pipeline_=new fi(this.transformers_),this.pipeline_.on("warn",Qe=>{this.emit("warn",Qe)}),this.pipeline_.on("error",Qe=>{this.emit("error",Qe)}),this.pipeline_.on("pipelineInfo",Qe=>{se&&(Qe==="pipeline_started"?Qe=Da.pipeline_restarted:Qe==="pipeline_started_with_error"&&(Qe=Da.pipeline_restarted_with_error)),this.emit("pipelineInfo",Qe)}),this.trackExpectedRate_!=-1&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_),this.pipeline_.start(this.readable_,this.writable_).then(()=>{Z()}).catch(Qe=>{W(Qe)})})}setTransformers(Z){return this.report({variation:"Update",message:g.updates.transformer_new}),this.transformers_=Z,this.readable_&&this.writable_?this.transformInternal():a.resolve()}destroy(){return new a(async Z=>{this.pipeline_&&this.pipeline_.destroy(),this.report({variation:"Delete"}),Z()})}report(Z){this.reporter_.send({version:hr,action:"MediaProcessor",...Z})}}class dn{constructor(){h(this,"processor_"),h(this,"generator_"),this.processor_=null,this.generator_=null}init(Z){return new a((W,se)=>{try{this.processor_=new MediaStreamTrackProcessor(Z)}catch(Qe){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${Qe}`),se(Qe)}try{Z.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):Z.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):se("kind not supported")}catch(Qe){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${Qe}`),se(Qe)}W()})}getReadable(){return this.processor_.readable}getWriteable(){return this.generator_.writable}getProccesorTrack(){return this.generator_}}class St{constructor(Z){h(this,"insertableStreamHelper_"),h(this,"mediaProcessor_"),this.insertableStreamHelper_=new dn,this.mediaProcessor_=Z}setTrack(Z){return new a((W,se)=>{this.insertableStreamHelper_.init(Z).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{W(this.insertableStreamHelper_.getProccesorTrack())}).catch(Qe=>{se(Qe)})}).catch(Qe=>{se(Qe)})})}destroy(){return new a((Z,W)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{Z()}).catch(se=>{W(se)}):W("no processor")})}}var mn=(G=>(G.Low="Low",G.High="High",G))(mn||{}),_n=(G=>(G.BackgroundBlur="BackgroundBlur",G.VirtualBackground="VirtualBackground",G.VideoBackground="VideoBackground",G.SilhouetteBlur="SilhouetteBlur",G))(_n||{}),vr=(G=>(G.FAST="FAST",G.PRECISE="PRECISE",G))(vr||{}),ha=(G=>(G.CANVAS="CANVAS",G.WEBGL="WEBGL",G))(ha||{});const Mi=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]));var Fi=function(){var G=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(Z){Z=Z||{};var W=typeof Z<"u"?Z:{},se,Qe;W.ready=new a(function(On,lr){se=On,Qe=lr});var et={},Zt;for(Zt in W)W.hasOwnProperty(Zt)&&(et[Zt]=W[Zt]);var ft="./this.program",kt=function(On,lr){throw lr},rr=!0,gr="";function Wr(On){return W.locateFile?W.locateFile(On,gr):gr+On}var Ui;typeof document<"u"&&document.currentScript&&(gr=document.currentScript.src),G&&(gr=G),gr.indexOf("blob:")!==0?gr=gr.substr(0,gr.replace(/[?#].*/,"").lastIndexOf("/")+1):gr="";var Ci=W.print||console.log.bind(console),Qr=W.printErr||console.warn.bind(console);for(Zt in et)et.hasOwnProperty(Zt)&&(W[Zt]=et[Zt]);et=null,W.arguments&&W.arguments,W.thisProgram&&(ft=W.thisProgram),W.quit&&(kt=W.quit);var Jr;W.wasmBinary&&(Jr=W.wasmBinary),W.noExitRuntime,typeof WebAssembly!="object"&&El("no native wasm support detected");var $i,fa=!1,ro=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Tn(On,lr,Lr){for(var Ua=lr+Lr,Ii=lr;On[Ii]&&!(Ii>=Ua);)++Ii;if(Ii-lr>16&&On.subarray&&ro)return ro.decode(On.subarray(lr,Ii));for(var ri="";lr<Ii;){var Ta=On[lr++];if(!(Ta&128)){ri+=String.fromCharCode(Ta);continue}var vo=On[lr++]&63;if((Ta&224)==192){ri+=String.fromCharCode((Ta&31)<<6|vo);continue}var Yo=On[lr++]&63;if((Ta&240)==224?Ta=(Ta&15)<<12|vo<<6|Yo:Ta=(Ta&7)<<18|vo<<12|Yo<<6|On[lr++]&63,Ta<65536)ri+=String.fromCharCode(Ta);else{var Xa=Ta-65536;ri+=String.fromCharCode(55296|Xa>>10,56320|Xa&1023)}}return ri}function ps(On,lr){return On?Tn(za,On,lr):""}function id(On,lr,Lr){for(var Ua=0;Ua<On.length;++Ua)Pd[lr++>>0]=On.charCodeAt(Ua);Pd[lr>>0]=0}function xo(On,lr){return On%lr>0&&(On+=lr-On%lr),On}var ba,Pd,za,Tr;function _c(On){ba=On,W.HEAP8=Pd=new Int8Array(On),W.HEAP16=new Int16Array(On),W.HEAP32=Tr=new Int32Array(On),W.HEAPU8=za=new Uint8Array(On),W.HEAPU16=new Uint16Array(On),W.HEAPU32=new Uint32Array(On),W.HEAPF32=new Float32Array(On),W.HEAPF64=new Float64Array(On)}W.INITIAL_MEMORY;var Dc,dl=[],Oi=[],Fl=[];function Ks(){if(W.preRun)for(typeof W.preRun=="function"&&(W.preRun=[W.preRun]);W.preRun.length;)Xd(W.preRun.shift());jo(dl)}function Ed(){jo(Oi)}function ac(){if(W.postRun)for(typeof W.postRun=="function"&&(W.postRun=[W.postRun]);W.postRun.length;)Ps(W.postRun.shift());jo(Fl)}function Xd(On){dl.unshift(On)}function bc(On){Oi.unshift(On)}function Ps(On){Fl.unshift(On)}var Kl=0,kd=null;function oc(On){Kl++,W.monitorRunDependencies&&W.monitorRunDependencies(Kl)}function Sd(On){if(Kl--,W.monitorRunDependencies&&W.monitorRunDependencies(Kl),Kl==0&&kd){var lr=kd;kd=null,lr()}}W.preloadedImages={},W.preloadedAudios={};function El(On){W.onAbort&&W.onAbort(On),On="Aborted("+On+")",Qr(On),fa=!0,On+=". Build with -s ASSERTIONS=1 for more info.";var lr=new WebAssembly.RuntimeError(On);throw Qe(lr),lr}var wd="data:application/octet-stream;base64,";function pd(On){return On.startsWith(wd)}var Ao;Ao="tflite-simd.wasm",pd(Ao)||(Ao=Wr(Ao));function cl(On){try{if(On==Ao&&Jr)return new Uint8Array(Jr);if(!Ui)throw"both async and sync fetching of the wasm failed"}catch(lr){El(lr)}}function Qs(){return!Jr&&rr&&typeof fetch=="function"?fetch(Ao,{credentials:"same-origin"}).then(function(On){if(!On.ok)throw"failed to load wasm binary file at '"+Ao+"'";return On.arrayBuffer()}).catch(function(){return cl(Ao)}):a.resolve().then(function(){return cl(Ao)})}function zo(){var On={a:Oa};function lr(Ta,vo){var Yo=Ta.exports;W.asm=Yo,$i=W.asm.q,_c($i.buffer),Dc=W.asm.E,bc(W.asm.r),Sd()}oc();function Lr(Ta){lr(Ta.instance)}function Ua(Ta){return Qs().then(function(vo){return WebAssembly.instantiate(vo,On)}).then(function(vo){return vo}).then(Ta,function(vo){Qr("failed to asynchronously prepare wasm: "+vo),El(vo)})}function Ii(){return!Jr&&typeof WebAssembly.instantiateStreaming=="function"&&!pd(Ao)&&typeof fetch=="function"?fetch(Ao,{credentials:"same-origin"}).then(function(Ta){var vo=WebAssembly.instantiateStreaming(Ta,On);return vo.then(Lr,function(Yo){return Qr("wasm streaming compile failed: "+Yo),Qr("falling back to ArrayBuffer instantiation"),Ua(Lr)})}):Ua(Lr)}if(W.instantiateWasm)try{var ri=W.instantiateWasm(On,lr);return ri}catch(Ta){return Qr("Module.instantiateWasm callback failed with error: "+Ta),!1}return Ii().catch(Qe),{}}function jo(On){for(;On.length>0;){var lr=On.shift();if(typeof lr=="function"){lr(W);continue}var Lr=lr.func;typeof Lr=="number"?lr.arg===void 0?Dc.get(Lr)():Dc.get(Lr)(lr.arg):Lr(lr.arg===void 0?null:lr.arg)}}function Ns(On,lr,Lr,Ua){El("Assertion failed: "+ps(On)+", at: "+[lr?ps(lr):"unknown filename",Lr,Ua?ps(Ua):"unknown function"])}function Pl(On,lr){El("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function Ha(On,lr){El("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function Xo(){El("")}var ul;ul=function(){return performance.now()};var la=!0;function fl(On){return Tr[Ca()>>2]=On,On}function xa(On,lr){var Lr;if(On===0)Lr=Date.now();else if((On===1||On===4)&&la)Lr=ul();else return fl(28),-1;return Tr[lr>>2]=Lr/1e3|0,Tr[lr+4>>2]=Lr%1e3*1e3*1e3|0,0}function Wo(){return 2147483648}function Ql(On,lr,Lr){za.copyWithin(On,lr,lr+Lr)}function Us(On){try{return $i.grow(On-ba.byteLength+65535>>>16),_c($i.buffer),1}catch{}}function Oo(On){var lr=za.length;On=On>>>0;var Lr=2147483648;if(On>Lr)return!1;for(var Ua=1;Ua<=4;Ua*=2){var Ii=lr*(1+.2/Ua);Ii=Math.min(Ii,On+100663296);var ri=Math.min(Lr,xo(Math.max(On,Ii),65536)),Ta=Us(ri);if(Ta)return!0}return!1}function Wa(On){for(var lr=ul();ul()-lr<On;);}var Xl={};function ms(){return ft||"./this.program"}function _o(){if(!_o.strings){var On=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",lr={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:On,_:ms()};for(var Lr in Xl)Xl[Lr]===void 0?delete lr[Lr]:lr[Lr]=Xl[Lr];var Ua=[];for(var Lr in lr)Ua.push(Lr+"="+lr[Lr]);_o.strings=Ua}return _o.strings}var md={mappings:{},buffers:[null,[],[]],printChar:function(On,lr){var Lr=md.buffers[On];lr===0||lr===10?((On===1?Ci:Qr)(Tn(Lr,0)),Lr.length=0):Lr.push(lr)},varargs:void 0,get:function(){md.varargs+=4;var On=Tr[md.varargs-4>>2];return On},getStr:function(On){var lr=ps(On);return lr},get64:function(On,lr){return On}};function Gs(On,lr){var Lr=0;return _o().forEach(function(Ua,Ii){var ri=lr+Lr;Tr[On+Ii*4>>2]=ri,id(Ua,ri),Lr+=Ua.length+1}),0}function ad(On,lr){var Lr=_o();Tr[On>>2]=Lr.length;var Ua=0;return Lr.forEach(function(Ii){Ua+=Ii.length+1}),Tr[lr>>2]=Ua,0}function bd(On){mi(On)}function ko(On){return 0}function Ul(On,lr,Lr,Ua,Ii){}function wo(On,lr,Lr,Ua){for(var Ii=0,ri=0;ri<Lr;ri++){for(var Ta=Tr[lr+ri*8>>2],vo=Tr[lr+(ri*8+4)>>2],Yo=0;Yo<vo;Yo++)md.printChar(On,za[Ta+Yo]);Ii+=vo}return Tr[Ua>>2]=Ii,0}function io(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var On=new Uint8Array(1);return function(){return crypto.getRandomValues(On),On[0]}}else return function(){El("randomDevice")}}function kl(On,lr){kl.randomDevice||(kl.randomDevice=io());for(var Lr=0;Lr<lr;Lr++)Pd[On+Lr>>0]=kl.randomDevice();return 0}var Oa={a:Ns,e:Pl,d:Ha,b:Xo,n:xa,h:Wo,l:Ql,m:Oo,p:Wa,f:Gs,g:ad,j:bd,i:ko,k:Ul,c:wo,o:kl};zo(),W.___wasm_call_ctors=function(){return(W.___wasm_call_ctors=W.asm.r).apply(null,arguments)},W._getModelBufferMemoryOffset=function(){return(W._getModelBufferMemoryOffset=W.asm.s).apply(null,arguments)},W._getInputMemoryOffset=function(){return(W._getInputMemoryOffset=W.asm.t).apply(null,arguments)},W._getInputHeight=function(){return(W._getInputHeight=W.asm.u).apply(null,arguments)},W._getInputWidth=function(){return(W._getInputWidth=W.asm.v).apply(null,arguments)},W._getInputChannelCount=function(){return(W._getInputChannelCount=W.asm.w).apply(null,arguments)},W._getOutputMemoryOffset=function(){return(W._getOutputMemoryOffset=W.asm.x).apply(null,arguments)},W._getOutputHeight=function(){return(W._getOutputHeight=W.asm.y).apply(null,arguments)},W._getOutputWidth=function(){return(W._getOutputWidth=W.asm.z).apply(null,arguments)},W._getOutputChannelCount=function(){return(W._getOutputChannelCount=W.asm.A).apply(null,arguments)},W._loadModel=function(){return(W._loadModel=W.asm.B).apply(null,arguments)},W._runInference=function(){return(W._runInference=W.asm.C).apply(null,arguments)},W._isGPUEnabled=function(){return(W._isGPUEnabled=W.asm.D).apply(null,arguments)};var Ca=W.___errno_location=function(){return(Ca=W.___errno_location=W.asm.F).apply(null,arguments)},zs;function Ro(On){this.name="ExitStatus",this.message="Program terminated with exit("+On+")",this.status=On}kd=function On(){zs||Yi(),zs||(kd=On)};function Yi(On){if(Kl>0||(Ks(),Kl>0))return;function lr(){zs||(zs=!0,W.calledRun=!0,!fa&&(Ed(),se(W),W.onRuntimeInitialized&&W.onRuntimeInitialized(),ac()))}W.setStatus?(W.setStatus("Running..."),setTimeout(function(){setTimeout(function(){W.setStatus("")},1),lr()},1)):lr()}W.run=Yi;function mi(On,lr){ao(On)}function ao(On){kt(On,new Ro(On))}if(W.preInit)for(typeof W.preInit=="function"&&(W.preInit=[W.preInit]);W.preInit.length>0;)W.preInit.pop()();return Yi(),Z.ready}}();class In{constructor(){d(this,"selectedTFLite"),d(this,"isSIMDSupported",!1),d(this,"isThreadsSupported",!1),d(this,"inputWidth",0),d(this,"inputHeight",0),d(this,"inputChannelCount",0),d(this,"inputMemoryOffset",0),d(this,"outputWidth",0),d(this,"outputHeight",0),d(this,"outputChannelCount",0),d(this,"outputMemoryOffset",0)}}const Fa="https://d3opqjmqzxf057.cloudfront.net/vonage-tensorflow-wasm/tflite-simd-wasm/1.1.3/",Ml="https://d3opqjmqzxf057.cloudfront.net/ml/selfie_segmentation/4.0.0/";async function hi(G=Fa,Z=Ml){let W=new In;var se=new a(function(Qe,et){async function Zt(){return Fi({locateFile:function(kt){return G+kt}})}async function ft(kt){return new a(async(rr,gr)=>{const Wr=kt;if(typeof Wr>"u")return gr("TFLite backend unavailable: wasmSimd");const Ui="selfie_segmentation_landscape";console.log("Loading tflite model:",Ui);let Ci=Z+`${Ui}.tflite`;console.log("TFLite modelUrl: "+Ci);try{const Qr=await(await fetch(Ci)).arrayBuffer();console.log("Model buffer size:",Qr.byteLength);const Jr=Wr._getModelBufferMemoryOffset();console.log("Model buffer memory offset:",Jr),console.log("Loading model buffer..."),Wr.HEAPU8.set(new Uint8Array(Qr),Jr);const $i=Wr._loadModel(Qr.byteLength);if(console.log("Load model result:",$i),$i!==0){gr("Cannot load model");return}W.inputWidth=Wr._getInputWidth(),W.inputHeight=Wr._getInputHeight(),W.inputChannelCount=Wr._getInputChannelCount(),W.inputMemoryOffset=Wr._getInputMemoryOffset(),console.log("Input memory offset:",W.inputMemoryOffset),console.log("Input height:",W.inputHeight),console.log("Input width:",W.inputWidth),console.log("Input channels:",W.inputChannelCount),W.outputMemoryOffset=Wr._getOutputMemoryOffset(),W.outputWidth=Wr._getOutputWidth(),W.outputHeight=Wr._getOutputHeight(),W.outputChannelCount=Wr._getOutputChannelCount(),console.log("Output memory offset:",W.outputMemoryOffset),console.log("Output height:",W.outputHeight),console.log("Output width:",W.outputWidth),console.log("Output channels:",W.outputChannelCount),W.selectedTFLite=Wr}catch(Qr){gr(Qr);return}rr()})}Zt().then(kt=>{if(kt===null)throw console.error("loadTFLite null"),"loadTFLite null";ft(kt).then(rr=>{Qe(W)}).catch(rr=>{console.error("loadTFLiteModel error"),et("loadTFLiteModel error")})}).catch(kt=>{console.error("loadTFLite error:",kt),et("loadTFLite error:"+kt)})});return se}class ml{constructor(){d(this,"canvas",new OffscreenCanvas(0,0)),d(this,"context",this.canvas.getContext("2d",{willReadFrequently:!0})),d(this,"pixelCount",0),d(this,"inputOffset",0),d(this,"outputOffset",0),d(this,"infos"),d(this,"mask")}async init(Z,W){await this.initWasm(Z,W),this.infos&&(this.canvas.width=this.infos.inputWidth,this.canvas.height=this.infos.inputHeight,this.pixelCount=this.infos.inputWidth*this.infos.inputHeight,this.mask=new ImageData(this.infos.inputWidth,this.infos.inputHeight),this.inputOffset=this.infos.inputMemoryOffset/4,this.outputOffset=this.infos.outputMemoryOffset/4)}async initWasm(Z,W){this.infos=await hi(Z,W)}getOutputDimensions(){var Z,W,se,Qe;return{width:(W=(Z=this.infos)==null?void 0:Z.outputWidth)!=null?W:0,height:(Qe=(se=this.infos)==null?void 0:se.outputHeight)!=null?Qe:0}}async process(Z){if(!this.mask||!this.infos)return;const W=this.infos.inputWidth,se=this.infos.inputHeight;this.context.drawImage(Z,0,0,Z.width,Z.height,0,0,W,se);const Qe=this.context.getImageData(0,0,W,se),et=this.infos.selectedTFLite.HEAPF32;for(let Zt=0;Zt<this.pixelCount;Zt++){const ft=this.inputOffset+Zt*3;et[ft]=Qe.data[Zt*4]/255,et[ft+1]=Qe.data[Zt*4+1]/255,et[ft+2]=Qe.data[Zt*4+2]/255}this.infos.selectedTFLite._runInference();for(let Zt=0;Zt<this.pixelCount;Zt++){const ft=this.infos.selectedTFLite.HEAPF32[this.outputOffset+Zt];this.mask.data[Zt*4]=this.mask.data[Zt*4+3]=255*ft}return createImageBitmap(this.mask)}isGpuSupported(){var Z,W,se;return(se=(W=(Z=this.infos)==null?void 0:Z.selectedTFLite)==null?void 0:W._isGPUEnabled())!=null?se:!1}}async function $o(G,Z){const{wasm:W,insertableStreams:se,simd:Qe,webgl:et}=await Qa(G,Z);if(!W.supported)throw W.message;if(!se.supported)throw se.message;if(!Qe.supported)throw Qe.message;if(!et.supported)throw et.message}async function Qa(G,Z){const W=new ml;await W.initWasm(G,Z);const se={wasm:{supported:typeof WebAssembly=="object"&&typeof WebAssembly.instantiate=="function",message:"Your browser does not support WebAssembly features."},simd:{supported:await Mi(),message:"Your browser does not support simd features."},insertableStreams:{supported:!0},gpu:{supported:W.isGpuSupported(),message:"Your browser does not support gpu features."},webgl:Gl(),performance:Gi()};try{await f()}catch(Qe){se.insertableStreams.supported=!1,se.insertableStreams.message=Qe}return se}function Gl(){return OffscreenCanvas?new OffscreenCanvas(0,0).getContext("webgl2")?{supported:!0}:{supported:!1,message:"Your browser does not support webgl 2"}:{supported:!1,message:"Your browser does not support offscreen canvas"}}function Gi(){return new OffscreenCanvas(0,0).getContext("webgl2",{failIfMajorPerformanceCaveat:!0})?{supported:!0}:{supported:!1,message:"Your hardware does not perform good enough to run the library efficiently"}}const Lt={};(function(){var G;function Z(ue){var Te=0;return function(){return Te<ue.length?{done:!1,value:ue[Te++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(ue,Te,ke){return ue==Array.prototype||ue==Object.prototype||(ue[Te]=ke.value),ue};function se(ue){ue=[typeof globalThis=="object"&&globalThis,ue,typeof window=="object"&&window,typeof self=="object"&&self,typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr)];for(var Te=0;Te<ue.length;++Te){var ke=ue[Te];if(ke&&ke.Math==Math)return ke}throw Error("Cannot find global object")}var Qe=se(this);function et(ue,Te){if(Te)e:{var ke=Qe;ue=ue.split(".");for(var xt=0;xt<ue.length-1;xt++){var vn=ue[xt];if(!(vn in ke))break e;ke=ke[vn]}ue=ue[ue.length-1],xt=ke[ue],Te=Te(xt),Te!=xt&&Te!=null&&W(ke,ue,{configurable:!0,writable:!0,value:Te})}}et("Symbol",function(ue){function Te(ur){if(this instanceof Te)throw new TypeError("Symbol is not a constructor");return new ke(xt+(ur||"")+"_"+vn++,ur)}function ke(ur,Zn){this.g=ur,W(this,"description",{configurable:!0,writable:!0,value:Zn})}if(ue)return ue;ke.prototype.toString=function(){return this.g};var xt="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",vn=0;return Te}),et("Symbol.iterator",function(ue){if(ue)return ue;ue=Symbol("Symbol.iterator");for(var Te="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),ke=0;ke<Te.length;ke++){var xt=Qe[Te[ke]];typeof xt=="function"&&typeof xt.prototype[ue]!="function"&&W(xt.prototype,ue,{configurable:!0,writable:!0,value:function(){return Zt(Z(this))}})}return ue});function Zt(ue){return ue={next:ue},ue[Symbol.iterator]=function(){return this},ue}function ft(ue){var Te=typeof Symbol<"u"&&Symbol.iterator&&ue[Symbol.iterator];return Te?Te.call(ue):{next:Z(ue)}}function kt(ue){if(!(ue instanceof Array)){ue=ft(ue);for(var Te,ke=[];!(Te=ue.next()).done;)ke.push(Te.value);ue=ke}return ue}var rr=typeof Object.create=="function"?Object.create:function(ue){function Te(){}return Te.prototype=ue,new Te},gr;if(typeof Object.setPrototypeOf=="function")gr=Object.setPrototypeOf;else{var Wr;e:{var Ui={a:!0},Ci={};try{Ci.__proto__=Ui,Wr=Ci.a;break e}catch{}Wr=!1}gr=Wr?function(ue,Te){if(ue.__proto__=Te,ue.__proto__!==Te)throw new TypeError(ue+" is not extensible");return ue}:null}var Qr=gr;function Jr(ue,Te){if(ue.prototype=rr(Te.prototype),ue.prototype.constructor=ue,Qr)Qr(ue,Te);else for(var ke in Te)if(ke!="prototype")if(Object.defineProperties){var xt=Object.getOwnPropertyDescriptor(Te,ke);xt&&Object.defineProperty(ue,ke,xt)}else ue[ke]=Te[ke];ue.ea=Te.prototype}function $i(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fa(ue){if(ue.l)throw new TypeError("Generator is already running");ue.l=!0}$i.prototype.o=function(ue){this.h=ue};function ro(ue,Te){ue.j={U:Te,V:!0},ue.g=ue.m||ue.s}$i.prototype.return=function(ue){this.j={return:ue},this.g=this.s};function Tn(ue,Te,ke){return ue.g=ke,{value:Te}}function ps(ue){this.g=new $i,this.h=ue}function id(ue,Te){fa(ue.g);var ke=ue.g.i;return ke?xo(ue,"return"in ke?ke.return:function(xt){return{value:xt,done:!0}},Te,ue.g.return):(ue.g.return(Te),ba(ue))}function xo(ue,Te,ke,xt){try{var vn=Te.call(ue.g.i,ke);if(!(vn instanceof Object))throw new TypeError("Iterator result "+vn+" is not an object");if(!vn.done)return ue.g.l=!1,vn;var ur=vn.value}catch(Zn){return ue.g.i=null,ro(ue.g,Zn),ba(ue)}return ue.g.i=null,xt.call(ue.g,ur),ba(ue)}function ba(ue){for(;ue.g.g;)try{var Te=ue.h(ue.g);if(Te)return ue.g.l=!1,{value:Te.value,done:!1}}catch(ke){ue.g.h=void 0,ro(ue.g,ke)}if(ue.g.l=!1,ue.g.j){if(Te=ue.g.j,ue.g.j=null,Te.V)throw Te.U;return{value:Te.return,done:!0}}return{value:void 0,done:!0}}function Pd(ue){this.next=function(Te){return fa(ue.g),ue.g.i?Te=xo(ue,ue.g.i.next,Te,ue.g.o):(ue.g.o(Te),Te=ba(ue)),Te},this.throw=function(Te){return fa(ue.g),ue.g.i?Te=xo(ue,ue.g.i.throw,Te,ue.g.o):(ro(ue.g,Te),Te=ba(ue)),Te},this.return=function(Te){return id(ue,Te)},this[Symbol.iterator]=function(){return this}}function za(ue,Te){return Te=new Pd(new ps(Te)),Qr&&ue.prototype&&Qr(Te,ue.prototype),Te}function Tr(ue,Te){ue instanceof String&&(ue+="");var ke=0,xt=!1,vn={next:function(){if(!xt&&ke<ue.length){var ur=ke++;return{value:Te(ur,ue[ur]),done:!1}}return xt=!0,{done:!0,value:void 0}}};return vn[Symbol.iterator]=function(){return vn},vn}var _c=typeof Object.assign=="function"?Object.assign:function(ue,Te){for(var ke=1;ke<arguments.length;ke++){var xt=arguments[ke];if(xt)for(var vn in xt)Object.prototype.hasOwnProperty.call(xt,vn)&&(ue[vn]=xt[vn])}return ue};et("Object.assign",function(ue){return ue||_c}),et("Promise",function(ue){function Te(Zn){this.h=0,this.i=void 0,this.g=[],this.o=!1;var ir=this.j();try{Zn(ir.resolve,ir.reject)}catch(Nr){ir.reject(Nr)}}function ke(){this.g=null}function xt(Zn){return Zn instanceof Te?Zn:new Te(function(ir){ir(Zn)})}if(ue)return ue;ke.prototype.h=function(Zn){if(this.g==null){this.g=[];var ir=this;this.i(function(){ir.l()})}this.g.push(Zn)};var vn=Qe.setTimeout;ke.prototype.i=function(Zn){vn(Zn,0)},ke.prototype.l=function(){for(;this.g&&this.g.length;){var Zn=this.g;this.g=[];for(var ir=0;ir<Zn.length;++ir){var Nr=Zn[ir];Zn[ir]=null;try{Nr()}catch(Ai){this.j(Ai)}}}this.g=null},ke.prototype.j=function(Zn){this.i(function(){throw Zn})},Te.prototype.j=function(){function Zn(Ai){return function(ra){Nr||(Nr=!0,Ai.call(ir,ra))}}var ir=this,Nr=!1;return{resolve:Zn(this.C),reject:Zn(this.l)}},Te.prototype.C=function(Zn){if(Zn===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(Zn instanceof Te)this.F(Zn);else{e:switch(typeof Zn){case"object":var ir=Zn!=null;break e;case"function":ir=!0;break e;default:ir=!1}ir?this.u(Zn):this.m(Zn)}},Te.prototype.u=function(Zn){var ir=void 0;try{ir=Zn.then}catch(Nr){this.l(Nr);return}typeof ir=="function"?this.G(ir,Zn):this.m(Zn)},Te.prototype.l=function(Zn){this.s(2,Zn)},Te.prototype.m=function(Zn){this.s(1,Zn)},Te.prototype.s=function(Zn,ir){if(this.h!=0)throw Error("Cannot settle("+Zn+", "+ir+"): Promise already settled in state"+this.h);this.h=Zn,this.i=ir,this.h===2&&this.D(),this.A()},Te.prototype.D=function(){var Zn=this;vn(function(){if(Zn.B()){var ir=Qe.console;typeof ir<"u"&&ir.error(Zn.i)}},1)},Te.prototype.B=function(){if(this.o)return!1;var Zn=Qe.CustomEvent,ir=Qe.Event,Nr=Qe.dispatchEvent;return typeof Nr>"u"?!0:(typeof Zn=="function"?Zn=new Zn("unhandledrejection",{cancelable:!0}):typeof ir=="function"?Zn=new ir("unhandledrejection",{cancelable:!0}):(Zn=Qe.document.createEvent("CustomEvent"),Zn.initCustomEvent("unhandledrejection",!1,!0,Zn)),Zn.promise=this,Zn.reason=this.i,Nr(Zn))},Te.prototype.A=function(){if(this.g!=null){for(var Zn=0;Zn<this.g.length;++Zn)ur.h(this.g[Zn]);this.g=null}};var ur=new ke;return Te.prototype.F=function(Zn){var ir=this.j();Zn.J(ir.resolve,ir.reject)},Te.prototype.G=function(Zn,ir){var Nr=this.j();try{Zn.call(ir,Nr.resolve,Nr.reject)}catch(Ai){Nr.reject(Ai)}},Te.prototype.then=function(Zn,ir){function Nr(Ya,zi){return typeof Ya=="function"?function(Bi){try{Ai(Ya(Bi))}catch(qi){ra(qi)}}:zi}var Ai,ra,Ki=new Te(function(Ya,zi){Ai=Ya,ra=zi});return this.J(Nr(Zn,Ai),Nr(ir,ra)),Ki},Te.prototype.catch=function(Zn){return this.then(void 0,Zn)},Te.prototype.J=function(Zn,ir){function Nr(){switch(Ai.h){case 1:Zn(Ai.i);break;case 2:ir(Ai.i);break;default:throw Error("Unexpected state: "+Ai.h)}}var Ai=this;this.g==null?ur.h(Nr):this.g.push(Nr),this.o=!0},Te.resolve=xt,Te.reject=function(Zn){return new Te(function(ir,Nr){Nr(Zn)})},Te.race=function(Zn){return new Te(function(ir,Nr){for(var Ai=ft(Zn),ra=Ai.next();!ra.done;ra=Ai.next())xt(ra.value).J(ir,Nr)})},Te.all=function(Zn){var ir=ft(Zn),Nr=ir.next();return Nr.done?xt([]):new Te(function(Ai,ra){function Ki(Bi){return function(qi){Ya[Bi]=qi,zi--,zi==0&&Ai(Ya)}}var Ya=[],zi=0;do Ya.push(void 0),zi++,xt(Nr.value).J(Ki(Ya.length-1),ra),Nr=ir.next();while(!Nr.done)})},Te}),et("Object.is",function(ue){return ue||function(Te,ke){return Te===ke?Te!==0||1/Te===1/ke:Te!==Te&&ke!==ke}}),et("Array.prototype.includes",function(ue){return ue||function(Te,ke){var xt=this;xt instanceof String&&(xt=String(xt));var vn=xt.length;for(ke=ke||0,0>ke&&(ke=Math.max(ke+vn,0));ke<vn;ke++){var ur=xt[ke];if(ur===Te||Object.is(ur,Te))return!0}return!1}}),et("String.prototype.includes",function(ue){return ue||function(Te,ke){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(Te instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(Te,ke||0)!==-1}}),et("Array.prototype.keys",function(ue){return ue||function(){return Tr(this,function(Te){return Te})}});var Dc=this||self;function dl(ue,Te){ue=ue.split(".");var ke=Dc;ue[0]in ke||typeof ke.execScript>"u"||ke.execScript("var "+ue[0]);for(var xt;ue.length&&(xt=ue.shift());)ue.length||Te===void 0?ke[xt]&&ke[xt]!==Object.prototype[xt]?ke=ke[xt]:ke=ke[xt]={}:ke[xt]=Te}function Oi(ue,Te){return Te=String.fromCharCode.apply(null,Te),ue==null?Te:ue+Te}var Fl,Ks=typeof TextDecoder<"u",Ed,ac=typeof TextEncoder<"u";function Xd(ue){if(ac)ue=(Ed||(Ed=new TextEncoder)).encode(ue);else{var Te=void 0;Te=Te===void 0?!1:Te;for(var ke=0,xt=new Uint8Array(3*ue.length),vn=0;vn<ue.length;vn++){var ur=ue.charCodeAt(vn);if(128>ur)xt[ke++]=ur;else{if(2048>ur)xt[ke++]=ur>>6|192;else{if(55296<=ur&&57343>=ur){if(56319>=ur&&vn<ue.length){var Zn=ue.charCodeAt(++vn);if(56320<=Zn&&57343>=Zn){ur=1024*(ur-55296)+Zn-56320+65536,xt[ke++]=ur>>18|240,xt[ke++]=ur>>12&63|128,xt[ke++]=ur>>6&63|128,xt[ke++]=ur&63|128;continue}else vn--}if(Te)throw Error("Found an unpaired surrogate");ur=65533}xt[ke++]=ur>>12|224,xt[ke++]=ur>>6&63|128}xt[ke++]=ur&63|128}}ue=xt.subarray(0,ke)}return ue}var bc={},Ps=null;function Kl(ue,Te){Te===void 0&&(Te=0),Sd(),Te=bc[Te];for(var ke=Array(Math.floor(ue.length/3)),xt=Te[64]||"",vn=0,ur=0;vn<ue.length-2;vn+=3){var Zn=ue[vn],ir=ue[vn+1],Nr=ue[vn+2],Ai=Te[Zn>>2];Zn=Te[(Zn&3)<<4|ir>>4],ir=Te[(ir&15)<<2|Nr>>6],Nr=Te[Nr&63],ke[ur++]=Ai+Zn+ir+Nr}switch(Ai=0,Nr=xt,ue.length-vn){case 2:Ai=ue[vn+1],Nr=Te[(Ai&15)<<2]||xt;case 1:ue=ue[vn],ke[ur]=Te[ue>>2]+Te[(ue&3)<<4|Ai>>4]+Nr+xt}return ke.join("")}function kd(ue){var Te=ue.length,ke=3*Te/4;ke%3?ke=Math.floor(ke):"=.".indexOf(ue[Te-1])!=-1&&(ke="=.".indexOf(ue[Te-2])!=-1?ke-2:ke-1);var xt=new Uint8Array(ke),vn=0;return oc(ue,function(ur){xt[vn++]=ur}),xt.subarray(0,vn)}function oc(ue,Te){function ke(Nr){for(;xt<ue.length;){var Ai=ue.charAt(xt++),ra=Ps[Ai];if(ra!=null)return ra;if(!/^[\s\xa0]*$/.test(Ai))throw Error("Unknown base64 encoding at char: "+Ai)}return Nr}Sd();for(var xt=0;;){var vn=ke(-1),ur=ke(0),Zn=ke(64),ir=ke(64);if(ir===64&&vn===-1)break;Te(vn<<2|ur>>4),Zn!=64&&(Te(ur<<4&240|Zn>>2),ir!=64&&Te(Zn<<6&192|ir))}}function Sd(){if(!Ps){Ps={};for(var ue="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),Te=["+/=","+/","-_=","-_.","-_"],ke=0;5>ke;ke++){var xt=ue.concat(Te[ke].split(""));bc[ke]=xt;for(var vn=0;vn<xt.length;vn++){var ur=xt[vn];Ps[ur]===void 0&&(Ps[ur]=vn)}}}}var El=typeof Uint8Array.prototype.slice=="function",wd;function pd(ue,Te,ke){return Te===ke?wd||(wd=new Uint8Array(0)):El?ue.slice(Te,ke):new Uint8Array(ue.subarray(Te,ke))}var Ao=0,cl=0;function Qs(ue,Te){Te=Te===void 0?{}:Te,Te=Te.v===void 0?!1:Te.v,this.h=null,this.g=this.i=this.j=0,this.l=!1,this.v=Te,ue&&zo(this,ue)}function zo(ue,Te){Te=Te.constructor===Uint8Array?Te:Te.constructor===ArrayBuffer?new Uint8Array(Te):Te.constructor===Array?new Uint8Array(Te):Te.constructor===String?kd(Te):Te instanceof Uint8Array?new Uint8Array(Te.buffer,Te.byteOffset,Te.byteLength):new Uint8Array(0),ue.h=Te,ue.j=0,ue.i=ue.h.length,ue.g=ue.j}Qs.prototype.reset=function(){this.g=this.j};function jo(ue){var Te=ue.h,ke=Te[ue.g],xt=ke&127;return 128>ke?(ue.g+=1,xt):(ke=Te[ue.g+1],xt|=(ke&127)<<7,128>ke?(ue.g+=2,xt):(ke=Te[ue.g+2],xt|=(ke&127)<<14,128>ke?(ue.g+=3,xt):(ke=Te[ue.g+3],xt|=(ke&127)<<21,128>ke?(ue.g+=4,xt):(ke=Te[ue.g+4],xt|=(ke&15)<<28,128>ke?(ue.g+=5,xt>>>0):(ue.g+=5,128<=Te[ue.g++]&&128<=Te[ue.g++]&&128<=Te[ue.g++]&&128<=Te[ue.g++]&&ue.g++,xt)))))}function Ns(ue){var Te=ue.h[ue.g],ke=ue.h[ue.g+1],xt=ue.h[ue.g+2],vn=ue.h[ue.g+3];return ue.g+=4,ke=(Te<<0|ke<<8|xt<<16|vn<<24)>>>0,ue=2*(ke>>31)+1,Te=ke>>>23&255,ke&=8388607,Te==255?ke?NaN:1/0*ue:Te==0?ue*Math.pow(2,-149)*ke:ue*Math.pow(2,Te-150)*(ke+Math.pow(2,23))}var Pl=[];function Ha(){this.g=new Uint8Array(64),this.h=0}Ha.prototype.push=function(ue){if(!(this.h+1<this.g.length)){var Te=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(Te)}this.g[this.h++]=ue},Ha.prototype.length=function(){return this.h},Ha.prototype.end=function(){var ue=this.g,Te=this.h;return this.h=0,pd(ue,0,Te)};function Xo(ue,Te){for(;127<Te;)ue.push(Te&127|128),Te>>>=7;ue.push(Te)}function ul(ue){var Te={},ke=Te.N===void 0?!1:Te.N;this.o={v:Te.v===void 0?!1:Te.v},this.N=ke,Te=this.o,Pl.length?(ke=Pl.pop(),Te&&(ke.v=Te.v),ue&&zo(ke,ue),ue=ke):ue=new Qs(ue,Te),this.g=ue,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}ul.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function la(ue){var Te=ue.g;if((Te=Te.g==Te.i)||(Te=ue.j)||(Te=ue.g,Te=Te.l||0>Te.g||Te.g>Te.i),Te)return!1;ue.m=ue.g.g,Te=jo(ue.g);var ke=Te&7;return ke!=0&&ke!=5&&ke!=1&&ke!=2&&ke!=3&&ke!=4?(ue.j=!0,!1):(ue.i=Te,ue.l=Te>>>3,ue.h=ke,!0)}function fl(ue){switch(ue.h){case 0:if(ue.h!=0)fl(ue);else{for(ue=ue.g;ue.h[ue.g]&128;)ue.g++;ue.g++}break;case 1:ue.h!=1?fl(ue):(ue=ue.g,ue.g+=8);break;case 2:if(ue.h!=2)fl(ue);else{var Te=jo(ue.g);ue=ue.g,ue.g+=Te}break;case 5:ue.h!=5?fl(ue):(ue=ue.g,ue.g+=4);break;case 3:Te=ue.l;do{if(!la(ue)){ue.j=!0;break}if(ue.h==4){ue.l!=Te&&(ue.j=!0);break}fl(ue)}while(!0);break;default:ue.j=!0}}function xa(ue,Te,ke){var xt=ue.g.i,vn=jo(ue.g);return vn=ue.g.g+vn,ue.g.i=vn,ke(Te,ue),ue.g.g=vn,ue.g.i=xt,Te}function Wo(ue){var Te=jo(ue.g);ue=ue.g;var ke=ue.g;ue.g+=Te,ue=ue.h;var xt;if(Ks)(xt=Fl)||(xt=Fl=new TextDecoder("utf-8",{fatal:!1})),xt=xt.decode(ue.subarray(ke,ke+Te));else{Te=ke+Te;for(var vn=[],ur=null,Zn,ir,Nr;ke<Te;)Zn=ue[ke++],128>Zn?vn.push(Zn):224>Zn?ke>=Te?vn.push(65533):(ir=ue[ke++],194>Zn||(ir&192)!==128?(ke--,vn.push(65533)):vn.push((Zn&31)<<6|ir&63)):240>Zn?ke>=Te-1?vn.push(65533):(ir=ue[ke++],(ir&192)!==128||Zn===224&&160>ir||Zn===237&&160<=ir||((xt=ue[ke++])&192)!==128?(ke--,vn.push(65533)):vn.push((Zn&15)<<12|(ir&63)<<6|xt&63)):244>=Zn?ke>=Te-2?vn.push(65533):(ir=ue[ke++],(ir&192)!==128||(Zn<<28)+(ir-144)>>30||((xt=ue[ke++])&192)!==128||((Nr=ue[ke++])&192)!==128?(ke--,vn.push(65533)):(Zn=(Zn&7)<<18|(ir&63)<<12|(xt&63)<<6|Nr&63,Zn-=65536,vn.push((Zn>>10&1023)+55296,(Zn&1023)+56320))):vn.push(65533),8192<=vn.length&&(ur=Oi(ur,vn),vn.length=0);xt=Oi(ur,vn)}return xt}function Ql(){this.h=[],this.i=0,this.g=new Ha}function Us(ue,Te){Te.length!==0&&(ue.h.push(Te),ue.i+=Te.length)}function Oo(ue){var Te=ue.i+ue.g.length();if(Te===0)return new Uint8Array(0);Te=new Uint8Array(Te);for(var ke=ue.h,xt=ke.length,vn=0,ur=0;ur<xt;ur++){var Zn=ke[ur];Zn.length!==0&&(Te.set(Zn,vn),vn+=Zn.length)}return ke=ue.g,xt=ke.h,xt!==0&&(Te.set(ke.g.subarray(0,xt),vn),ke.h=0),ue.h=[Te],Te}function Wa(ue,Te,ke){if(ke!=null){Xo(ue.g,8*Te+5),ue=ue.g;var xt=ke;xt=(ke=0>xt?1:0)?-xt:xt,xt===0?0<1/xt?Ao=cl=0:(cl=0,Ao=2147483648):isNaN(xt)?(cl=0,Ao=2147483647):34028234663852886e22<xt?(cl=0,Ao=(ke<<31|2139095040)>>>0):11754943508222875e-54>xt?(xt=Math.round(xt/Math.pow(2,-149)),cl=0,Ao=(ke<<31|xt)>>>0):(Te=Math.floor(Math.log(xt)/Math.LN2),xt*=Math.pow(2,-Te),xt=Math.round(8388608*xt)&8388607,cl=0,Ao=(ke<<31|Te+127<<23|xt)>>>0),ke=Ao,ue.push(ke>>>0&255),ue.push(ke>>>8&255),ue.push(ke>>>16&255),ue.push(ke>>>24&255)}}var Xl=typeof Uint8Array=="function";function ms(ue,Te,ke){if(ue!=null)return typeof ue=="object"?Xl&&ue instanceof Uint8Array?ke(ue):_o(ue,Te,ke):Te(ue)}function _o(ue,Te,ke){if(Array.isArray(ue)){for(var xt=Array(ue.length),vn=0;vn<ue.length;vn++)xt[vn]=ms(ue[vn],Te,ke);return Array.isArray(ue)&&ue.W&&ad(xt),xt}xt={};for(vn in ue)xt[vn]=ms(ue[vn],Te,ke);return xt}function md(ue){return typeof ue=="number"?isFinite(ue)?ue:String(ue):ue}var Gs={W:{value:!0,configurable:!0}};function ad(ue){return Array.isArray(ue)&&!Object.isFrozen(ue)&&Object.defineProperties(ue,Gs),ue}var bd;function ko(ue,Te,ke){var xt=bd;bd=null,ue||(ue=xt),xt=this.constructor.ca,ue||(ue=xt?[xt]:[]),this.j=xt?0:-1,this.i=null,this.g=ue;e:{if(xt=this.g.length,ue=xt-1,xt&&(xt=this.g[ue],xt!==null&&typeof xt=="object"&&xt.constructor===Object)){this.l=ue-this.j,this.h=xt;break e}Te!==void 0&&-1<Te?(this.l=Math.max(Te,ue+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(ke)for(Te=0;Te<ke.length;Te++)ue=ke[Te],ue<this.l?(ue+=this.j,(xt=this.g[ue])?ad(xt):this.g[ue]=Ul):(wo(this),(xt=this.h[ue])?ad(xt):this.h[ue]=Ul)}var Ul=Object.freeze(ad([]));function wo(ue){var Te=ue.l+ue.j;ue.g[Te]||(ue.h=ue.g[Te]={})}function io(ue,Te,ke){return Te===-1?null:ke!==void 0&&ke||Te>=ue.l?ue.h?ue.h[Te]:void 0:ue.g[Te+ue.j]}function kl(ue){var Te=Te===void 0?!1:Te,ke=io(ue,1,Te);return ke==null&&(ke=Ul),ke===Ul&&(ke=ad([]),Ca(ue,1,ke,Te)),ke}function Oa(ue,Te,ke){return ue=io(ue,Te),ue=ue==null?ue:+ue,ue??(ke===void 0?0:ke)}function Ca(ue,Te,ke,xt){xt!==void 0&&xt||Te>=ue.l?(wo(ue),ue.h[Te]=ke):ue.g[Te+ue.j]=ke}function zs(ue,Te){ue.i||(ue.i={});var ke=ue.i[1];if(!ke){var xt=kl(ue);ke=[];for(var vn=0;vn<xt.length;vn++)ke[vn]=new Te(xt[vn]);ue.i[1]=ke}return ke}function Ro(ue,Te,ke,xt){var vn=zs(ue,ke);Te=Te||new ke,ue=kl(ue),xt!=null?(vn.splice(xt,0,Te),ue.splice(xt,0,Yi(Te))):(vn.push(Te),ue.push(Yi(Te)))}ko.prototype.toJSON=function(){var ue=Yi(this);return _o(ue,md,Kl)};function Yi(ue,Te){if(ue.i)for(var ke in ue.i){var xt=ue.i[ke];if(Array.isArray(xt))for(var vn=0;vn<xt.length;vn++)xt[vn]&&Yi(xt[vn]);else xt&&Yi(xt)}return ue.g}ko.prototype.toString=function(){return Yi(this).toString()};function mi(ue,Te){return ue=io(ue,Te),ue??0}function ao(ue,Te){return ue=io(ue,Te),ue??""}function On(ue,Te){if(ue=ue.m){Us(Te,Te.g.end());for(var ke=0;ke<ue.length;ke++)Us(Te,ue[ke])}}function lr(ue,Te){if(Te.h==4)return!1;var ke=Te.m;return fl(Te),Te.N||(Te=pd(Te.g.h,ke,Te.g.g),(ke=ue.m)?ke.push(Te):ue.m=[Te]),!0}function Lr(ue,Te){var ke=void 0;return new(ke||(ke=a))(function(xt,vn){function ur(Nr){try{ir(Te.next(Nr))}catch(Ai){vn(Ai)}}function Zn(Nr){try{ir(Te.throw(Nr))}catch(Ai){vn(Ai)}}function ir(Nr){Nr.done?xt(Nr.value):new ke(function(Ai){Ai(Nr.value)}).then(ur,Zn)}ir((Te=Te.apply(ue,void 0)).next())})}function Ua(ue){ko.call(this,ue)}Jr(Ua,ko);function Ii(ue,Te){for(;la(Te);)switch(Te.i){case 8:var ke=jo(Te.g);Ca(ue,1,ke);break;case 21:ke=Ns(Te.g),Ca(ue,2,ke);break;case 26:ke=Wo(Te),Ca(ue,3,ke);break;case 34:ke=Wo(Te),Ca(ue,4,ke);break;default:if(!lr(ue,Te))return ue}return ue}function ri(ue){ko.call(this,ue,-1,Ta)}Jr(ri,ko),ri.prototype.addClassification=function(ue,Te){Ro(this,ue,Ua,Te)};var Ta=[1];function vo(ue){ko.call(this,ue)}Jr(vo,ko);function Yo(ue,Te){for(;la(Te);)switch(Te.i){case 13:var ke=Ns(Te.g);Ca(ue,1,ke);break;case 21:ke=Ns(Te.g),Ca(ue,2,ke);break;case 29:ke=Ns(Te.g),Ca(ue,3,ke);break;case 37:ke=Ns(Te.g),Ca(ue,4,ke);break;case 45:ke=Ns(Te.g),Ca(ue,5,ke);break;default:if(!lr(ue,Te))return ue}return ue}function Xa(ue){ko.call(this,ue,-1,Rs)}Jr(Xa,ko);var Rs=[1];function Yd(ue){ko.call(this,ue)}Jr(Yd,ko);function od(ue,Te,ke){if(ke=ue.createShader(ke===0?ue.VERTEX_SHADER:ue.FRAGMENT_SHADER),ue.shaderSource(ke,Te),ue.compileShader(ke),!ue.getShaderParameter(ke,ue.COMPILE_STATUS))throw Error(`Could not compile WebGL shader. `+ue.getShaderInfoLog(ke));return ke}function Bs(ue){return zs(ue,Ua).map(function(Te){return{index:mi(Te,1),Y:Oa(Te,2),label:io(Te,3)!=null?ao(Te,3):void 0,displayName:io(Te,4)!=null?ao(Te,4):void 0}})}function js(ue){return{x:Oa(ue,1),y:Oa(ue,2),z:Oa(ue,3),visibility:io(ue,4)!=null?Oa(ue,4):void 0}}function ld(ue,Te){this.h=ue,this.g=Te,this.l=0}function Rl(ue,Te,ke){return Zs(ue,Te),typeof ue.g.canvas.transferToImageBitmap=="function"?a.resolve(ue.g.canvas.transferToImageBitmap()):ke?a.resolve(ue.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(ue.g.canvas):(ue.i===void 0&&(ue.i=document.createElement("canvas")),new a(function(xt){ue.i.height=ue.g.canvas.height,ue.i.width=ue.g.canvas.width,ue.i.getContext("2d",{}).drawImage(ue.g.canvas,0,0,ue.g.canvas.width,ue.g.canvas.height),xt(ue.i)}))}function Zs(ue,Te){var ke=ue.g;if(ue.m===void 0){var xt=od(ke,` attribute vec2 aVertex; attribute vec2 aTex; varying vec2 vTex; void main(void) { gl_Position = vec4(aVertex, 0.0, 1.0); vTex = aTex; }`,0),vn=od(ke,` precision mediump float; varying vec2 vTex; uniform sampler2D sampler0; void main(){ gl_FragColor = texture2D(sampler0, vTex); }`,1),ur=ke.createProgram();if(ke.attachShader(ur,xt),ke.attachShader(ur,vn),ke.linkProgram(ur),!ke.getProgramParameter(ur,ke.LINK_STATUS))throw Error(`Could not compile WebGL program. `+ke.getProgramInfoLog(ur));xt=ue.m=ur,ke.useProgram(xt),vn=ke.getUniformLocation(xt,"sampler0"),ue.j={I:ke.getAttribLocation(xt,"aVertex"),H:ke.getAttribLocation(xt,"aTex"),da:vn},ue.s=ke.createBuffer(),ke.bindBuffer(ke.ARRAY_BUFFER,ue.s),ke.enableVertexAttribArray(ue.j.I),ke.vertexAttribPointer(ue.j.I,2,ke.FLOAT,!1,0,0),ke.bufferData(ke.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),ke.STATIC_DRAW),ke.bindBuffer(ke.ARRAY_BUFFER,null),ue.o=ke.createBuffer(),ke.bindBuffer(ke.ARRAY_BUFFER,ue.o),ke.enableVertexAttribArray(ue.j.H),ke.vertexAttribPointer(ue.j.H,2,ke.FLOAT,!1,0,0),ke.bufferData(ke.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),ke.STATIC_DRAW),ke.bindBuffer(ke.ARRAY_BUFFER,null),ke.uniform1i(vn,0)}xt=ue.j,ke.useProgram(ue.m),ke.canvas.width=Te.width,ke.canvas.height=Te.height,ke.viewport(0,0,Te.width,Te.height),ke.activeTexture(ke.TEXTURE0),ue.h.bindTexture2d(Te.glName),ke.enableVertexAttribArray(xt.I),ke.bindBuffer(ke.ARRAY_BUFFER,ue.s),ke.vertexAttribPointer(xt.I,2,ke.FLOAT,!1,0,0),ke.enableVertexAttribArray(xt.H),ke.bindBuffer(ke.ARRAY_BUFFER,ue.o),ke.vertexAttribPointer(xt.H,2,ke.FLOAT,!1,0,0),ke.bindFramebuffer(ke.DRAW_FRAMEBUFFER?ke.DRAW_FRAMEBUFFER:ke.FRAMEBUFFER,null),ke.clearColor(0,0,0,0),ke.clear(ke.COLOR_BUFFER_BIT),ke.colorMask(!0,!0,!0,!0),ke.drawArrays(ke.TRIANGLE_FAN,0,4),ke.disableVertexAttribArray(xt.I),ke.disableVertexAttribArray(xt.H),ke.bindBuffer(ke.ARRAY_BUFFER,null),ue.h.bindTexture2d(0)}function $c(ue){this.g=ue}var Is=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Sl(ue,Te){return Te+ue}function yd(ue,Te){window[ue]=Te}function Dd(ue){var Te=document.createElement("script");return Te.setAttribute("src",ue),Te.setAttribute("crossorigin","anonymous"),new a(function(ke){Te.addEventListener("load",function(){ke()},!1),Te.addEventListener("error",function(){ke()},!1),document.body.appendChild(Te)})}function zl(){return Lr(this,function ue(){return za(ue,function(Te){switch(Te.g){case 1:return Te.m=2,Tn(Te,WebAssembly.instantiate(Is),4);case 4:Te.g=3,Te.m=0;break;case 2:return Te.m=0,Te.j=null,Te.return(!1);case 3:return Te.return(!0)}})})}function Ic(ue){if(this.g=ue,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=a.resolve(),this.P="",this.B={},this.locateFile=ue&&ue.locateFile||Sl,typeof window=="object")var Te=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location<"u")Te=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=Te,ue.options){Te=ft(Object.keys(ue.options));for(var ke=Te.next();!ke.done;ke=Te.next()){ke=ke.value;var xt=ue.options[ke].default;xt!==void 0&&(this.j[ke]=typeof xt=="function"?xt():xt)}}}G=Ic.prototype,G.close=function(){return this.i&&this.i.delete(),a.resolve()};function Cs(ue,Te){return ue.g.files===void 0?[]:typeof ue.g.files=="function"?ue.g.files(Te):ue.g.files}function Fd(ue){return Lr(ue,function Te(){var ke=this,xt,vn,ur,Zn,ir,Nr,Ai,ra,Ki,Ya,zi;return za(Te,function(Bi){switch(Bi.g){case 1:return xt=ke,ke.R?(vn=Cs(ke,ke.j),Tn(Bi,zl(),2)):Bi.return();case 2:if(ur=Bi.h,typeof window=="object")return yd("createMediapipeSolutionsWasm",{locateFile:ke.locateFile}),yd("createMediapipeSolutionsPackedAssets",{locateFile:ke.locateFile}),Nr=vn.filter(function(qi){return qi.data!==void 0}),Ai=vn.filter(function(qi){return qi.data===void 0}),ra=a.all(Nr.map(function(qi){var ka=Js(xt,qi.url);if(qi.path!==void 0){var uo=qi.path;ka=ka.then(function(Bo){return xt.overrideFile(uo,Bo),a.resolve(Bo)})}return ka})),Ki=a.all(Ai.map(function(qi){return qi.simd===void 0||qi.simd&&ur||!qi.simd&&!ur?Dd(xt.locateFile(qi.url,xt.S)):a.resolve()})).then(function(){return Lr(xt,function qi(){var ka,uo,Bo=this;return za(qi,function(No){if(No.g==1)return ka=window.createMediapipeSolutionsWasm,uo=window.createMediapipeSolutionsPackedAssets,Tn(No,ka(uo),2);Bo.h=No.h,No.g=0})})}),Ya=function(){return Lr(xt,function qi(){var ka=this;return za(qi,function(uo){return ka.g.graph&&ka.g.graph.url?uo=Tn(uo,Js(ka,ka.g.graph.url),0):(uo.g=0,uo=void 0),uo})})}(),Tn(Bi,a.all([Ki,ra,Ya]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return Zn=vn.filter(function(qi){return qi.simd===void 0||qi.simd&&ur||!qi.simd&&!ur}).map(function(qi){return xt.locateFile(qi.url,xt.S)}),importScripts.apply(null,kt(Zn)),Tn(Bi,createMediapipeSolutionsWasm(Module),6);case 6:ke.h=Bi.h,ke.l=new OffscreenCanvas(1,1),ke.h.canvas=ke.l,ir=ke.h.GL.createContext(ke.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext<"u"?2:1}),ke.h.GL.makeContextCurrent(ir),Bi.g=4;break;case 7:if(ke.l=document.createElement("canvas"),zi=ke.l.getContext("webgl2",{}),!zi&&(zi=ke.l.getContext("webgl",{}),!zi))return alert("Failed to create WebGL canvas context when passing video frame."),Bi.return();ke.D=zi,ke.h.canvas=ke.l,ke.h.createContext(ke.l,!0,!0,{});case 4:ke.i=new ke.h.SolutionWasm,ke.R=!1,Bi.g=0}})})}function zd(ue){return Lr(ue,function Te(){var ke=this,xt,vn,ur,Zn,ir,Nr,Ai,ra;return za(Te,function(Ki){if(Ki.g==1){if(ke.g.graph&&ke.g.graph.url&&ke.P===ke.g.graph.url)return Ki.return();if(ke.o=!0,!ke.g.graph||!ke.g.graph.url){Ki.g=2;return}return ke.P=ke.g.graph.url,Tn(Ki,Js(ke,ke.g.graph.url),3)}for(Ki.g!=2&&(xt=Ki.h,ke.i.loadGraph(xt)),vn=ft(Object.keys(ke.B)),ur=vn.next();!ur.done;ur=vn.next())Zn=ur.value,ke.i.overrideFile(Zn,ke.B[Zn]);if(ke.B={},ke.g.listeners)for(ir=ft(ke.g.listeners),Nr=ir.next();!Nr.done;Nr=ir.next())Ai=Nr.value,Fu(ke,Ai);ra=ke.j,ke.j={},ke.setOptions(ra),Ki.g=0})})}G.reset=function(){return Lr(this,function ue(){var Te=this;return za(ue,function(ke){Te.i&&(Te.i.reset(),Te.m={},Te.s={}),ke.g=0})})},G.setOptions=function(ue,Te){var ke=this;if(Te=Te||this.g.options){for(var xt=[],vn=[],ur={},Zn=ft(Object.keys(ue)),ir=Zn.next();!ir.done;ur={K:ur.K,L:ur.L},ir=Zn.next()){var Nr=ir.value;Nr in this.j&&this.j[Nr]===ue[Nr]||(this.j[Nr]=ue[Nr],ir=Te[Nr],ir!==void 0&&(ir.onChange&&(ur.K=ir.onChange,ur.L=ue[Nr],xt.push(function(Ai){return function(){return Lr(ke,function ra(){var Ki,Ya=this;return za(ra,function(zi){if(zi.g==1)return Tn(zi,Ai.K(Ai.L),2);Ki=zi.h,Ki===!0&&(Ya.o=!0),zi.g=0})})}}(ur))),ir.graphOptionXref&&(Nr={valueNumber:ir.type===1?ue[Nr]:0,valueBoolean:ir.type===0?ue[Nr]:!1,valueString:ir.type===2?ue[Nr]:""},ir=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),ir.graphOptionXref),Nr),vn.push(ir))))}(xt.length!==0||vn.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(vn),this.u=(this.u===void 0?[]:this.u).concat(xt))}};function Mc(ue){return Lr(ue,function Te(){var ke=this,xt,vn,ur,Zn,ir,Nr,Ai;return za(Te,function(ra){switch(ra.g){case 1:if(!ke.o)return ra.return();if(!ke.u){ra.g=2;break}xt=ft(ke.u),vn=xt.next();case 3:if(vn.done){ra.g=5;break}return ur=vn.value,Tn(ra,ur(),4);case 4:vn=xt.next(),ra.g=3;break;case 5:ke.u=void 0;case 2:if(ke.A){for(Zn=new ke.h.GraphOptionChangeRequestList,ir=ft(ke.A),Nr=ir.next();!Nr.done;Nr=ir.next())Ai=Nr.value,Zn.push_back(Ai);ke.i.changeOptions(Zn),Zn.delete(),ke.A=void 0}ke.o=!1,ra.g=0}})})}G.initialize=function(){return Lr(this,function ue(){var Te=this;return za(ue,function(ke){return ke.g==1?Tn(ke,Fd(Te),2):ke.g!=3?Tn(ke,zd(Te),3):Tn(ke,Mc(Te),0)})})};function Js(ue,Te){return Lr(ue,function ke(){var xt=this,vn,ur;return za(ke,function(Zn){return Te in xt.F?Zn.return(xt.F[Te]):(vn=xt.locateFile(Te,""),ur=fetch(vn).then(function(ir){return ir.arrayBuffer()}),xt.F[Te]=ur,Zn.return(ur))})})}G.overrideFile=function(ue,Te){this.i?this.i.overrideFile(ue,Te):this.B[ue]=Te},G.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},G.send=function(ue,Te){return Lr(this,function ke(){var xt=this,vn,ur,Zn,ir,Nr,Ai,ra,Ki,Ya;return za(ke,function(zi){switch(zi.g){case 1:return xt.g.inputs?(vn=1e3*(Te??performance.now()),Tn(zi,xt.C,2)):zi.return();case 2:return Tn(zi,xt.initialize(),3);case 3:for(ur=new xt.h.PacketDataList,Zn=ft(Object.keys(ue)),ir=Zn.next();!ir.done;ir=Zn.next())if(Nr=ir.value,Ai=xt.g.inputs[Nr]){e:{var Bi=xt,qi=ue[Nr];switch(Ai.type){case"video":var ka=Bi.m[Ai.stream];if(ka||(ka=new ld(Bi.h,Bi.D),Bi.m[Ai.stream]=ka),Bi=ka,Bi.l===0&&(Bi.l=Bi.h.createTexture()),typeof HTMLVideoElement<"u"&&qi instanceof HTMLVideoElement){var uo=qi.videoWidth;ka=qi.videoHeight}else typeof HTMLImageElement<"u"&&qi instanceof HTMLImageElement?(uo=qi.naturalWidth,ka=qi.naturalHeight):(uo=qi.width,ka=qi.height);ka={glName:Bi.l,width:uo,height:ka},uo=Bi.g,uo.canvas.width=ka.width,uo.canvas.height=ka.height,uo.activeTexture(uo.TEXTURE0),Bi.h.bindTexture2d(Bi.l),uo.texImage2D(uo.TEXTURE_2D,0,uo.RGBA,uo.RGBA,uo.UNSIGNED_BYTE,qi),Bi.h.bindTexture2d(0),Bi=ka;break e;case"detections":for(ka=Bi.m[Ai.stream],ka||(ka=new $c(Bi.h),Bi.m[Ai.stream]=ka),Bi=ka,Bi.data||(Bi.data=new Bi.g.DetectionListData),Bi.data.reset(qi.length),ka=0;ka<qi.length;++ka){uo=qi[ka];var Bo=Bi.data,No=Bo.setBoundingBox,Wl=ka,re=uo.T,be=new Yd;Ca(be,1,re.Z),Ca(be,2,re.$),Ca(be,3,re.height),Ca(be,4,re.width),Ca(be,5,re.rotation),Ca(be,6,re.X);var Ze=re=new Ql;Wa(Ze,1,io(be,1)),Wa(Ze,2,io(be,2)),Wa(Ze,3,io(be,3)),Wa(Ze,4,io(be,4)),Wa(Ze,5,io(be,5));var Et=io(be,6);if(Et!=null&&Et!=null){Xo(Ze.g,48);var an=Ze.g,Xn=Et;Et=0>Xn,Xn=Math.abs(Xn);var ln=Xn>>>0;for(Xn=Math.floor((Xn-ln)/4294967296),Xn>>>=0,Et&&(Xn=~Xn>>>0,ln=(~ln>>>0)+1,4294967295<ln&&(ln=0,Xn++,4294967295<Xn&&(Xn=0))),Ao=ln,cl=Xn,Et=Ao,ln=cl;0<ln||127<Et;)an.push(Et&127|128),Et=(Et>>>7|ln<<25)>>>0,ln>>>=7;an.push(Et)}if(On(be,Ze),re=Oo(re),No.call(Bo,Wl,re),uo.O)for(Bo=0;Bo<uo.O.length;++Bo)be=uo.O[Bo],Ze=!!be.visibility,No=Bi.data,Wl=No.addNormalizedLandmark,re=ka,be=Object.assign(Object.assign({},be),{visibility:Ze?be.visibility:0}),Ze=new vo,Ca(Ze,1,be.x),Ca(Ze,2,be.y),Ca(Ze,3,be.z),be.visibility&&Ca(Ze,4,be.visibility),an=be=new Ql,Wa(an,1,io(Ze,1)),Wa(an,2,io(Ze,2)),Wa(an,3,io(Ze,3)),Wa(an,4,io(Ze,4)),Wa(an,5,io(Ze,5)),On(Ze,an),be=Oo(be),Wl.call(No,re,be);if(uo.M)for(Bo=0;Bo<uo.M.length;++Bo){if(No=Bi.data,Wl=No.addClassification,re=ka,be=uo.M[Bo],Ze=new Ua,Ca(Ze,2,be.Y),be.index&&Ca(Ze,1,be.index),be.label&&Ca(Ze,3,be.label),be.displayName&&Ca(Ze,4,be.displayName),an=be=new Ql,ln=io(Ze,1),ln!=null&&ln!=null)if(Xo(an.g,8),Et=an.g,0<=ln)Xo(Et,ln);else{for(Xn=0;9>Xn;Xn++)Et.push(ln&127|128),ln>>=7;Et.push(1)}Wa(an,2,io(Ze,2)),Et=io(Ze,3),Et!=null&&(Et=Xd(Et),Xo(an.g,26),Xo(an.g,Et.length),Us(an,an.g.end()),Us(an,Et)),Et=io(Ze,4),Et!=null&&(Et=Xd(Et),Xo(an.g,34),Xo(an.g,Et.length),Us(an,an.g.end()),Us(an,Et)),On(Ze,an),be=Oo(be),Wl.call(No,re,be)}}Bi=Bi.data;break e;default:Bi={}}}switch(ra=Bi,Ki=Ai.stream,Ai.type){case"video":ur.pushTexture2d(Object.assign(Object.assign({},ra),{stream:Ki,timestamp:vn}));break;case"detections":Ya=ra,Ya.stream=Ki,Ya.timestamp=vn,ur.pushDetectionList(Ya);break;default:throw Error("Unknown input config type: '"+Ai.type+"'")}}return xt.i.send(ur),Tn(zi,xt.C,4);case 4:ur.delete(),zi.g=0}})})};function jd(ue,Te,ke){return Lr(ue,function xt(){var vn,ur,Zn,ir,Nr,Ai,ra=this,Ki,Ya,zi,Bi,qi,ka,uo,Bo;return za(xt,function(No){switch(No.g){case 1:if(!ke)return No.return(Te);for(vn={},ur=0,Zn=ft(Object.keys(ke)),ir=Zn.next();!ir.done;ir=Zn.next())Nr=ir.value,Ai=ke[Nr],typeof Ai!="string"&&Ai.type==="texture"&&Te[Ai.stream]!==void 0&&++ur;1<ur&&(ra.G=!1),Ki=ft(Object.keys(ke)),ir=Ki.next();case 2:if(ir.done){No.g=4;break}if(Ya=ir.value,zi=ke[Ya],typeof zi=="string")return uo=vn,Bo=Ya,Tn(No,yu(ra,Ya,Te[zi]),14);if(Bi=Te[zi.stream],zi.type==="detection_list"){if(Bi){for(var Wl=Bi.getRectList(),re=Bi.getLandmarksList(),be=Bi.getClassificationsList(),Ze=[],Et=0;Et<Wl.size();++Et){var an=Wl.get(Et);e:{var Xn=new Yd;for(an=new ul(an);la(an);)switch(an.i){case 13:var ln=Ns(an.g);Ca(Xn,1,ln);break;case 21:ln=Ns(an.g),Ca(Xn,2,ln);break;case 29:ln=Ns(an.g),Ca(Xn,3,ln);break;case 37:ln=Ns(an.g),Ca(Xn,4,ln);break;case 45:ln=Ns(an.g),Ca(Xn,5,ln);break;case 48:for(var Hn=an.g,pr=128,D=0,Ie=ln=0;4>Ie&&128<=pr;Ie++)pr=Hn.h[Hn.g++],D|=(pr&127)<<7*Ie;if(128<=pr&&(pr=Hn.h[Hn.g++],D|=(pr&127)<<28,ln|=(pr&127)>>4),128<=pr)for(Ie=0;5>Ie&&128<=pr;Ie++)pr=Hn.h[Hn.g++],ln|=(pr&127)<<7*Ie+3;128>pr?(Hn=D>>>0,pr=ln>>>0,(ln=pr&2147483648)&&(Hn=~Hn+1>>>0,pr=~pr>>>0,Hn==0&&(pr=pr+1>>>0)),Hn=4294967296*pr+(Hn>>>0),ln=ln?-Hn:Hn):(Hn.l=!0,ln=void 0),Ca(Xn,6,ln);break;default:if(!lr(Xn,an))break e}}Xn={Z:Oa(Xn,1),$:Oa(Xn,2),height:Oa(Xn,3),width:Oa(Xn,4),rotation:Oa(Xn,5,0),X:mi(Xn,6)},ln=re.get(Et);e:for(an=new Xa,ln=new ul(ln);la(ln);)switch(ln.i){case 10:Hn=xa(ln,new vo,Yo),Ro(an,Hn,vo,void 0);break;default:if(!lr(an,ln))break e}an=zs(an,vo).map(js),Hn=be.get(Et);e:for(ln=new ri,Hn=new ul(Hn);la(Hn);)switch(Hn.i){case 10:ln.addClassification(xa(Hn,new Ua,Ii));break;default:if(!lr(ln,Hn))break e}Xn={T:Xn,O:an,M:Bs(ln)},Ze.push(Xn)}Wl=Ze}else Wl=[];vn[Ya]=Wl,No.g=7;break}if(zi.type==="proto_list"){if(Bi){for(Wl=Array(Bi.size()),re=0;re<Bi.size();re++)Wl[re]=Bi.get(re);Bi.delete()}else Wl=[];vn[Ya]=Wl,No.g=7;break}if(Bi===void 0){No.g=3;break}if(zi.type==="float_list"){vn[Ya]=Bi,No.g=7;break}if(zi.type==="proto"){vn[Ya]=Bi,No.g=7;break}if(zi.type!=="texture")throw Error("Unknown output config type: '"+zi.type+"'");return qi=ra.s[Ya],qi||(qi=new ld(ra.h,ra.D),ra.s[Ya]=qi),Tn(No,Rl(qi,Bi,ra.G),13);case 13:ka=No.h,vn[Ya]=ka;case 7:zi.transform&&vn[Ya]&&(vn[Ya]=zi.transform(vn[Ya])),No.g=3;break;case 14:uo[Bo]=No.h;case 3:ir=Ki.next(),No.g=2;break;case 4:return No.return(vn)}})})}function yu(ue,Te,ke){return Lr(ue,function xt(){var vn=this,ur;return za(xt,function(Zn){return typeof ke=="number"||ke instanceof Uint8Array||ke instanceof vn.h.Uint8BlobList?Zn.return(ke):ke instanceof vn.h.Texture2dDataOut?(ur=vn.s[Te],ur||(ur=new ld(vn.h,vn.D),vn.s[Te]=ur),Zn.return(Rl(ur,ke,vn.G))):Zn.return(void 0)})})}function Fu(ue,Te){for(var ke=Te.name||"$",xt=[].concat(kt(Te.wants)),vn=new ue.h.StringList,ur=ft(Te.wants),Zn=ur.next();!Zn.done;Zn=ur.next())vn.push_back(Zn.value);ur=ue.h.PacketListener.implement({onResults:function(ir){for(var Nr={},Ai=0;Ai<Te.wants.length;++Ai)Nr[xt[Ai]]=ir.get(Ai);var ra=ue.listeners[ke];ra&&(ue.C=jd(ue,Nr,Te.outs).then(function(Ki){Ki=ra(Ki);for(var Ya=0;Ya<Te.wants.length;++Ya){var zi=Nr[xt[Ya]];typeof zi=="object"&&zi.hasOwnProperty&&zi.hasOwnProperty("delete")&&zi.delete()}Ki&&(ue.C=Ki)}))}}),ue.i.attachMultiListener(vn,ur),vn.delete()}G.onResults=function(ue,Te){this.listeners[Te||"$"]=ue},dl("Solution",Ic),dl("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function _d(ue){switch(ue===void 0&&(ue=0),ue){case 1:return"selfie_segmentation_landscape.tflite";default:return"selfie_segmentation.tflite"}}function lc(ue){var Te=this;ue=ue||{},this.g=new Ic({locateFile:ue.locateFile,files:function(ke){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:_d(ke.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(ke){return Lr(Te,function xt(){var vn,ur,Zn=this,ir;return za(xt,function(Nr){return Nr.g==1?(vn=_d(ke),ur="third_party/mediapipe/modules/selfie_segmentation/"+vn,Tn(Nr,Js(Zn.g,vn),2)):(ir=Nr.h,Zn.g.overrideFile(ur,ir),Nr.return(!0))})})}}}})}G=lc.prototype,G.close=function(){return this.g.close(),a.resolve()},G.onResults=function(ue){this.g.onResults(ue)},G.initialize=function(){return Lr(this,function ue(){var Te=this;return za(ue,function(ke){return Tn(ke,Te.g.initialize(),0)})})},G.reset=function(){this.g.reset()},G.send=function(ue){return Lr(this,function Te(){var ke=this;return za(Te,function(xt){return Tn(xt,ke.g.send(ue),0)})})},G.setOptions=function(ue){this.g.setOptions(ue)},dl("SelfieSegmentation",lc),dl("VERSION","0.1.1632777926")}).call(Lt);const $t={};(function(){var G;function Z(L){var Ue=0;return function(){return Ue<L.length?{done:!1,value:L[Ue++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(L,Ue,Me){return L==Array.prototype||L==Object.prototype||(L[Ue]=Me.value),L};function se(L){L=[typeof globalThis=="object"&&globalThis,L,typeof window=="object"&&window,typeof self=="object"&&self,typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr)];for(var Ue=0;Ue<L.length;++Ue){var Me=L[Ue];if(Me&&Me.Math==Math)return Me}throw Error("Cannot find global object")}var Qe=se(this);function et(L,Ue){if(Ue)e:{var Me=Qe;L=L.split(".");for(var lt=0;lt<L.length-1;lt++){var Yt=L[lt];if(!(Yt in Me))break e;Me=Me[Yt]}L=L[L.length-1],lt=Me[L],Ue=Ue(lt),Ue!=lt&&Ue!=null&&W(Me,L,{configurable:!0,writable:!0,value:Ue})}}et("Symbol",function(L){function Ue(w){if(this instanceof Ue)throw new TypeError("Symbol is not a constructor");return new Me(lt+(w||"")+"_"+Yt++,w)}function Me(w,te){this.g=w,W(this,"description",{configurable:!0,writable:!0,value:te})}if(L)return L;Me.prototype.toString=function(){return this.g};var lt="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",Yt=0;return Ue}),et("Symbol.iterator",function(L){if(L)return L;L=Symbol("Symbol.iterator");for(var Ue="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Me=0;Me<Ue.length;Me++){var lt=Qe[Ue[Me]];typeof lt=="function"&&typeof lt.prototype[L]!="function"&&W(lt.prototype,L,{configurable:!0,writable:!0,value:function(){return Zt(Z(this))}})}return L});function Zt(L){return L={next:L},L[Symbol.iterator]=function(){return this},L}function ft(L){var Ue=typeof Symbol<"u"&&Symbol.iterator&&L[Symbol.iterator];return Ue?Ue.call(L):{next:Z(L)}}function kt(L){if(!(L instanceof Array)){L=ft(L);for(var Ue,Me=[];!(Ue=L.next()).done;)Me.push(Ue.value);L=Me}return L}var rr=typeof Object.create=="function"?Object.create:function(L){function Ue(){}return Ue.prototype=L,new Ue},gr;if(typeof Object.setPrototypeOf=="function")gr=Object.setPrototypeOf;else{var Wr;e:{var Ui={a:!0},Ci={};try{Ci.__proto__=Ui,Wr=Ci.a;break e}catch{}Wr=!1}gr=Wr?function(L,Ue){if(L.__proto__=Ue,L.__proto__!==Ue)throw new TypeError(L+" is not extensible");return L}:null}var Qr=gr;function Jr(L,Ue){if(L.prototype=rr(Ue.prototype),L.prototype.constructor=L,Qr)Qr(L,Ue);else for(var Me in Ue)if(Me!="prototype")if(Object.defineProperties){var lt=Object.getOwnPropertyDescriptor(Ue,Me);lt&&Object.defineProperty(L,Me,lt)}else L[Me]=Ue[Me];L.ra=Ue.prototype}function $i(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function fa(L){if(L.l)throw new TypeError("Generator is already running");L.l=!0}$i.prototype.s=function(L){this.h=L};function ro(L,Ue){L.j={fa:Ue,ga:!0},L.g=L.o||L.u}$i.prototype.return=function(L){this.j={return:L},this.g=this.u};function Tn(L,Ue,Me){return L.g=Me,{value:Ue}}function ps(L){this.g=new $i,this.h=L}function id(L,Ue){fa(L.g);var Me=L.g.i;return Me?xo(L,"return"in Me?Me.return:function(lt){return{value:lt,done:!0}},Ue,L.g.return):(L.g.return(Ue),ba(L))}function xo(L,Ue,Me,lt){try{var Yt=Ue.call(L.g.i,Me);if(!(Yt instanceof Object))throw new TypeError("Iterator result "+Yt+" is not an object");if(!Yt.done)return L.g.l=!1,Yt;var w=Yt.value}catch(te){return L.g.i=null,ro(L.g,te),ba(L)}return L.g.i=null,lt.call(L.g,w),ba(L)}function ba(L){for(;L.g.g;)try{var Ue=L.h(L.g);if(Ue)return L.g.l=!1,{value:Ue.value,done:!1}}catch(Me){L.g.h=void 0,ro(L.g,Me)}if(L.g.l=!1,L.g.j){if(Ue=L.g.j,L.g.j=null,Ue.ga)throw Ue.fa;return{value:Ue.return,done:!0}}return{value:void 0,done:!0}}function Pd(L){this.next=function(Ue){return fa(L.g),L.g.i?Ue=xo(L,L.g.i.next,Ue,L.g.s):(L.g.s(Ue),Ue=ba(L)),Ue},this.throw=function(Ue){return fa(L.g),L.g.i?Ue=xo(L,L.g.i.throw,Ue,L.g.s):(ro(L.g,Ue),Ue=ba(L)),Ue},this.return=function(Ue){return id(L,Ue)},this[Symbol.iterator]=function(){return this}}function za(L){function Ue(lt){return L.next(lt)}function Me(lt){return L.throw(lt)}return new a(function(lt,Yt){function w(te){te.done?lt(te.value):a.resolve(te.value).then(Ue,Me).then(w,Yt)}w(L.next())})}function Tr(L){return za(new Pd(new ps(L)))}et("Promise",function(L){function Ue(te){this.h=0,this.i=void 0,this.g=[],this.s=!1;var ye=this.j();try{te(ye.resolve,ye.reject)}catch(I){ye.reject(I)}}function Me(){this.g=null}function lt(te){return te instanceof Ue?te:new Ue(function(ye){ye(te)})}if(L)return L;Me.prototype.h=function(te){if(this.g==null){this.g=[];var ye=this;this.i(function(){ye.l()})}this.g.push(te)};var Yt=Qe.setTimeout;Me.prototype.i=function(te){Yt(te,0)},Me.prototype.l=function(){for(;this.g&&this.g.length;){var te=this.g;this.g=[];for(var ye=0;ye<te.length;++ye){var I=te[ye];te[ye]=null;try{I()}catch(x){this.j(x)}}}this.g=null},Me.prototype.j=function(te){this.i(function(){throw te})},Ue.prototype.j=function(){function te(x){return function(ae){I||(I=!0,x.call(ye,ae))}}var ye=this,I=!1;return{resolve:te(this.D),reject:te(this.l)}},Ue.prototype.D=function(te){if(te===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(te instanceof Ue)this.H(te);else{e:switch(typeof te){case"object":var ye=te!=null;break e;case"function":ye=!0;break e;default:ye=!1}ye?this.A(te):this.o(te)}},Ue.prototype.A=function(te){var ye=void 0;try{ye=te.then}catch(I){this.l(I);return}typeof ye=="function"?this.I(ye,te):this.o(te)},Ue.prototype.l=function(te){this.u(2,te)},Ue.prototype.o=function(te){this.u(1,te)},Ue.prototype.u=function(te,ye){if(this.h!=0)throw Error("Cannot settle("+te+", "+ye+"): Promise already settled in state"+this.h);this.h=te,this.i=ye,this.h===2&&this.G(),this.B()},Ue.prototype.G=function(){var te=this;Yt(function(){if(te.C()){var ye=Qe.console;typeof ye<"u"&&ye.error(te.i)}},1)},Ue.prototype.C=function(){if(this.s)return!1;var te=Qe.CustomEvent,ye=Qe.Event,I=Qe.dispatchEvent;return typeof I>"u"?!0:(typeof te=="function"?te=new te("unhandledrejection",{cancelable:!0}):typeof ye=="function"?te=new ye("unhandledrejection",{cancelable:!0}):(te=Qe.document.createEvent("CustomEvent"),te.initCustomEvent("unhandledrejection",!1,!0,te)),te.promise=this,te.reason=this.i,I(te))},Ue.prototype.B=function(){if(this.g!=null){for(var te=0;te<this.g.length;++te)w.h(this.g[te]);this.g=null}};var w=new Me;return Ue.prototype.H=function(te){var ye=this.j();te.M(ye.resolve,ye.reject)},Ue.prototype.I=function(te,ye){var I=this.j();try{te.call(ye,I.resolve,I.reject)}catch(x){I.reject(x)}},Ue.prototype.then=function(te,ye){function I(M,O){return typeof M=="function"?function(fe){try{x(M(fe))}catch(je){ae(je)}}:O}var x,ae,U=new Ue(function(M,O){x=M,ae=O});return this.M(I(te,x),I(ye,ae)),U},Ue.prototype.catch=function(te){return this.then(void 0,te)},Ue.prototype.M=function(te,ye){function I(){switch(x.h){case 1:te(x.i);break;case 2:ye(x.i);break;default:throw Error("Unexpected state: "+x.h)}}var x=this;this.g==null?w.h(I):this.g.push(I),this.s=!0},Ue.resolve=lt,Ue.reject=function(te){return new Ue(function(ye,I){I(te)})},Ue.race=function(te){return new Ue(function(ye,I){for(var x=ft(te),ae=x.next();!ae.done;ae=x.next())lt(ae.value).M(ye,I)})},Ue.all=function(te){var ye=ft(te),I=ye.next();return I.done?lt([]):new Ue(function(x,ae){function U(fe){return function(je){M[fe]=je,O--,O==0&&x(M)}}var M=[],O=0;do M.push(void 0),O++,lt(I.value).M(U(M.length-1),ae),I=ye.next();while(!I.done)})},Ue});function _c(L,Ue){L instanceof String&&(L+="");var Me=0,lt=!1,Yt={next:function(){if(!lt&&Me<L.length){var w=Me++;return{value:Ue(w,L[w]),done:!1}}return lt=!0,{done:!0,value:void 0}}};return Yt[Symbol.iterator]=function(){return Yt},Yt}var Dc=typeof Object.assign=="function"?Object.assign:function(L,Ue){for(var Me=1;Me<arguments.length;Me++){var lt=arguments[Me];if(lt)for(var Yt in lt)Object.prototype.hasOwnProperty.call(lt,Yt)&&(L[Yt]=lt[Yt])}return L};et("Object.assign",function(L){return L||Dc}),et("Object.is",function(L){return L||function(Ue,Me){return Ue===Me?Ue!==0||1/Ue===1/Me:Ue!==Ue&&Me!==Me}}),et("Array.prototype.includes",function(L){return L||function(Ue,Me){var lt=this;lt instanceof String&&(lt=String(lt));var Yt=lt.length;for(Me=Me||0,0>Me&&(Me=Math.max(Me+Yt,0));Me<Yt;Me++){var w=lt[Me];if(w===Ue||Object.is(w,Ue))return!0}return!1}}),et("String.prototype.includes",function(L){return L||function(Ue,Me){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(Ue instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(Ue,Me||0)!==-1}}),et("Array.prototype.keys",function(L){return L||function(){return _c(this,function(Ue){return Ue})}});var dl=this||self;function Oi(L,Ue){L=L.split(".");var Me=dl;L[0]in Me||typeof Me.execScript>"u"||Me.execScript("var "+L[0]);for(var lt;L.length&&(lt=L.shift());)L.length||Ue===void 0?Me[lt]&&Me[lt]!==Object.prototype[lt]?Me=Me[lt]:Me=Me[lt]={}:Me[lt]=Ue}function Fl(){throw Error("Invalid UTF8")}function Ks(L,Ue){return Ue=String.fromCharCode.apply(null,Ue),L==null?Ue:L+Ue}var Ed,ac=typeof TextDecoder<"u",Xd,bc=typeof TextEncoder<"u",Ps={},Kl=null;function kd(L){var Ue;Ue===void 0&&(Ue=0),El(),Ue=Ps[Ue];for(var Me=Array(Math.floor(L.length/3)),lt=Ue[64]||"",Yt=0,w=0;Yt<L.length-2;Yt+=3){var te=L[Yt],ye=L[Yt+1],I=L[Yt+2],x=Ue[te>>2];te=Ue[(te&3)<<4|ye>>4],ye=Ue[(ye&15)<<2|I>>6],I=Ue[I&63],Me[w++]=x+te+ye+I}switch(x=0,I=lt,L.length-Yt){case 2:x=L[Yt+1],I=Ue[(x&15)<<2]||lt;case 1:L=L[Yt],Me[w]=Ue[L>>2]+Ue[(L&3)<<4|x>>4]+I+lt}return Me.join("")}function oc(L){var Ue=L.length,Me=3*Ue/4;Me%3?Me=Math.floor(Me):"=.".indexOf(L[Ue-1])!=-1&&(Me="=.".indexOf(L[Ue-2])!=-1?Me-2:Me-1);var lt=new Uint8Array(Me),Yt=0;return Sd(L,function(w){lt[Yt++]=w}),Yt!==Me?lt.subarray(0,Yt):lt}function Sd(L,Ue){function Me(I){for(;lt<L.length;){var x=L.charAt(lt++),ae=Kl[x];if(ae!=null)return ae;if(!/^[\s\xa0]*$/.test(x))throw Error("Unknown base64 encoding at char: "+x)}return I}El();for(var lt=0;;){var Yt=Me(-1),w=Me(0),te=Me(64),ye=Me(64);if(ye===64&&Yt===-1)break;Ue(Yt<<2|w>>4),te!=64&&(Ue(w<<4&240|te>>2),ye!=64&&Ue(te<<6&192|ye))}}function El(){if(!Kl){Kl={};for(var L="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),Ue=["+/=","+/","-_=","-_.","-_"],Me=0;5>Me;Me++){var lt=L.concat(Ue[Me].split(""));Ps[Me]=lt;for(var Yt=0;Yt<lt.length;Yt++){var w=lt[Yt];Kl[w]===void 0&&(Kl[w]=Yt)}}}}var wd=typeof Uint8Array=="function";function pd(L){return wd&&L!=null&&L instanceof Uint8Array}var Ao;function cl(L){if(this.L=L,L!==null&&L.length===0)throw Error("ByteString should be constructed with non-empty values")}var Qs=typeof Uint8Array.prototype.slice=="function",zo=0,jo=0;function Ns(L,Ue){if(L.constructor===Uint8Array)return L;if(L.constructor===ArrayBuffer)return new Uint8Array(L);if(L.constructor===Array)return new Uint8Array(L);if(L.constructor===String)return oc(L);if(L.constructor===cl)return!Ue&&(Ue=L.L)&&Ue.constructor===Uint8Array?Ue:(Ue=L.L,Ue=Ue==null||pd(Ue)?Ue:typeof Ue=="string"?oc(Ue):null,(L=L.L=Ue)?new Uint8Array(L):Ao||(Ao=new Uint8Array(0)));if(L instanceof Uint8Array)return new Uint8Array(L.buffer,L.byteOffset,L.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Pl(L,Ue){return Error("Invalid wire type: "+L+" (at position "+Ue+")")}function Ha(){return Error("Failed to read varint, encoding is invalid.")}function Xo(L,Ue){Ue=Ue===void 0?{}:Ue,Ue=Ue.v===void 0?!1:Ue.v,this.h=null,this.g=this.i=this.j=0,this.v=Ue,L&&ul(this,L)}function ul(L,Ue){L.h=Ns(Ue,L.v),L.j=0,L.i=L.h.length,L.g=L.j}Xo.prototype.reset=function(){this.g=this.j};function la(L){if(L.g>L.i)throw Error("Tried to read past the end of the data "+L.g+" > "+L.i)}function fl(L){var Ue=L.h,Me=Ue[L.g],lt=Me&127;if(128>Me)return L.g+=1,la(L),lt;if(Me=Ue[L.g+1],lt|=(Me&127)<<7,128>Me)return L.g+=2,la(L),lt;if(Me=Ue[L.g+2],lt|=(Me&127)<<14,128>Me)return L.g+=3,la(L),lt;if(Me=Ue[L.g+3],lt|=(Me&127)<<21,128>Me)return L.g+=4,la(L),lt;if(Me=Ue[L.g+4],L.g+=5,lt|=(Me&15)<<28,128>Me)return la(L),lt;if(128<=Ue[L.g++]&&128<=Ue[L.g++]&&128<=Ue[L.g++]&&128<=Ue[L.g++]&&128<=Ue[L.g++])throw Ha();return la(L),lt}var xa=[];function Wo(){this.g=[]}Wo.prototype.length=function(){return this.g.length},Wo.prototype.end=function(){var L=this.g;return this.g=[],L};function Ql(L,Ue){for(;127<Ue;)L.g.push(Ue&127|128),Ue>>>=7;L.g.push(Ue)}function Us(L){var Ue={},Me=Ue.W===void 0?!1:Ue.W;this.l={v:Ue.v===void 0?!1:Ue.v},this.W=Me,Ue=this.l,xa.length?(Me=xa.pop(),Ue&&(Me.v=Ue.v),L&&ul(Me,L),L=Me):L=new Xo(L,Ue),this.g=L,this.j=this.g.g,this.h=this.i=-1}Us.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function Oo(L){var Ue=L.g;if(Ue.g==Ue.i)return!1;L.j=L.g.g;var Me=fl(L.g)>>>0;if(Ue=Me>>>3,Me&=7,!(0<=Me&&5>=Me))throw Pl(Me,L.j);if(1>Ue)throw Error("Invalid field number: "+Ue+" (at position "+L.j+")");return L.i=Ue,L.h=Me,!0}function Wa(L){switch(L.h){case 0:if(L.h!=0)Wa(L);else e:{L=L.g;for(var Ue=L.g,Me=Ue+10;Ue<Me;)if(!(L.h[Ue++]&128)){L.g=Ue,la(L);break e}throw Ha()}break;case 1:L=L.g,L.g+=8,la(L);break;case 2:L.h!=2?Wa(L):(Ue=fl(L.g)>>>0,L=L.g,L.g+=Ue,la(L));break;case 5:L=L.g,L.g+=4,la(L);break;case 3:Ue=L.i;do{if(!Oo(L))throw Error("Unmatched start-group tag: stream EOF");if(L.h==4){if(L.i!=Ue)throw Error("Unmatched end-group tag");break}Wa(L)}while(!0);break;default:throw Pl(L.h,L.j)}}var Xl=[];function ms(){this.i=[],this.h=0,this.g=new Wo}function _o(L,Ue){Ue.length!==0&&(L.i.push(Ue),L.h+=Ue.length)}function md(L,Ue){if(Ue=Ue.ca){_o(L,L.g.end());for(var Me=0;Me<Ue.length;Me++)_o(L,Ue[Me])}}var Gs=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function ad(L,Ue){Object.isFrozen(L)||(Gs?L[Gs]|=Ue:L.N!==void 0?L.N|=Ue:Object.defineProperties(L,{N:{value:Ue,configurable:!0,writable:!0,enumerable:!1}}))}function bd(L){var Ue;return Gs?Ue=L[Gs]:Ue=L.N,Ue??0}function ko(L){return ad(L,1),L}function Ul(L){return Array.isArray(L)?!!(bd(L)&2):!1}function wo(L){if(!Array.isArray(L))throw Error("cannot mark non-array as immutable");ad(L,2)}function io(L){return L!==null&&typeof L=="object"&&!Array.isArray(L)&&L.constructor===Object}var kl=Object.freeze(ko([]));function Oa(L){if(Ul(L.m))throw Error("Cannot mutate an immutable Message")}var Ca=typeof Symbol<"u"&&typeof Symbol.hasInstance<"u";function zs(L){return{value:L,configurable:!1,writable:!1,enumerable:!1}}function Ro(L,Ue,Me){return Ue===-1?null:Ue>=L.i?L.g?L.g[Ue]:void 0:Me!==void 0&&Me&&L.g&&(Me=L.g[Ue],Me!=null)?Me:L.m[Ue+L.h]}function Yi(L,Ue,Me,lt){lt=lt===void 0?!1:lt,Oa(L),Ue<L.i&&!lt?L.m[Ue+L.h]=Me:(L.g||(L.g=L.m[L.i+L.h]={}))[Ue]=Me}function mi(L,Ue,Me,lt){Me=Me===void 0?!0:Me,lt=lt===void 0?!1:lt;var Yt=Ro(L,Ue,lt);return Yt==null&&(Yt=kl),Ul(L.m)?Me&&(wo(Yt),Object.freeze(Yt)):(Yt===kl||Ul(Yt))&&(Yt=ko(Yt.slice()),Yi(L,Ue,Yt,lt)),Yt}function ao(L,Ue,Me){return L=Ro(L,Ue),L=L==null?L:+L,L??(Me===void 0?0:Me)}function On(L,Ue,Me,lt){L.j||(L.j={});var Yt=Ul(L.m),w=L.j[Me];if(!w){lt=mi(L,Me,!0,lt===void 0?!1:lt),w=[],Yt=Yt||Ul(lt);for(var te=0;te<lt.length;te++)w[te]=new Ue(lt[te]),Yt&&wo(w[te].m);Yt&&(wo(w),Object.freeze(w)),L.j[Me]=w}return w}function lr(L,Ue,Me,lt,Yt){var w=w===void 0?!1:w;return Oa(L),w=On(L,Me,Ue,w),Me=lt||new Me,L=mi(L,Ue),Yt!=null?(w.splice(Yt,0,Me),L.splice(Yt,0,Me.m)):(w.push(Me),L.push(Me.m)),Me}function Lr(L,Ue){return L=Ro(L,Ue),L??0}function Ua(L,Ue){return L=Ro(L,Ue),L??""}function Ii(L){switch(typeof L){case"number":return isFinite(L)?L:String(L);case"object":if(L&&!Array.isArray(L)){if(pd(L))return kd(L);if(L instanceof cl){var Ue=L.L;return Ue=Ue==null||typeof Ue=="string"?Ue:wd&&Ue instanceof Uint8Array?kd(Ue):null,(L.L=Ue)||""}}}return L}function ri(L){var Ue=Yo;return Ue=Ue===void 0?Xa:Ue,vo(L,Ue)}function Ta(L,Ue){if(L!=null){if(Array.isArray(L))L=vo(L,Ue);else if(io(L)){var Me={},lt;for(lt in L)Me[lt]=Ta(L[lt],Ue);L=Me}else L=Ue(L);return L}}function vo(L,Ue){for(var Me=L.slice(),lt=0;lt<Me.length;lt++)Me[lt]=Ta(Me[lt],Ue);return Array.isArray(L)&&bd(L)&1&&ko(Me),Me}function Yo(L){return L&&typeof L=="object"&&L.toJSON?L.toJSON():(L=Ii(L),Array.isArray(L)?ri(L):L)}function Xa(L){return pd(L)?new Uint8Array(L):L}function Rs(L,Ue,Me){L||(L=Yd),Yd=null;var lt=this.constructor.h;L||(L=lt?[lt]:[]),this.h=(lt?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=L;e:{if(lt=this.m.length,L=lt-1,lt&&(lt=this.m[L],io(lt))){this.i=L-this.h,this.g=lt;break e}Ue!==void 0&&-1<Ue?(this.i=Math.max(Ue,L+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(Me)for(Ue=0;Ue<Me.length;Ue++)if(L=Me[Ue],L<this.i)L+=this.h,(lt=this.m[L])?Array.isArray(lt)&&ko(lt):this.m[L]=kl;else{lt=this.g||(this.g=this.m[this.i+this.h]={});var Yt=lt[L];Yt?Array.isArray(Yt)&&ko(Yt):lt[L]=kl}}Rs.prototype.toJSON=function(){return ri(this.m)},Rs.prototype.toString=function(){return this.m.toString()};var Yd;function od(){Rs.apply(this,arguments)}if(Jr(od,Rs),Ca){var Bs={};Object.defineProperties(od,(Bs[Symbol.hasInstance]=zs(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Bs))}function js(L,Ue,Me){if(Me){var lt={},Yt;for(Yt in Me){var w=Me[Yt],te=w.ja;te||(lt.F=w.pa||w.ha.P,w.ba?(lt.U=Dd(w.ba),te=function(ye){return function(I,x,ae){return ye.F(I,x,ae,ye.U)}}(lt)):w.da?(lt.T=zl(w.X.g,w.da),te=function(ye){return function(I,x,ae){return ye.F(I,x,ae,ye.T)}}(lt)):te=lt.F,w.ja=te),te(Ue,L,w.X),lt={F:lt.F,U:lt.U,T:lt.T}}}md(Ue,L)}var ld=Symbol();function Rl(L,Ue,Me){return L[ld]||(L[ld]=function(lt,Yt){return Ue(lt,Yt,Me)})}function Zs(L){var Ue=L[ld];if(!Ue){var Me=ue(L);Ue=function(lt,Yt){return Te(lt,Yt,Me)},L[ld]=Ue}return Ue}function $c(L){var Ue=L.ba;if(Ue)return Zs(Ue);if(Ue=L.oa)return Rl(L.X.g,Ue,L.da)}function Is(L){var Ue=$c(L),Me=L.X,lt=L.ha.O;return Ue?function(Yt,w){return lt(Yt,w,Me,Ue)}:function(Yt,w){return lt(Yt,w,Me)}}function Sl(L,Ue,Me,lt,Yt,w){L=L();var te=0;for(L.length&&typeof L[0]!="number"&&(Me(Ue,L[0]),te++);te<L.length;){Me=L[te++];for(var ye=te+1;ye<L.length&&typeof L[ye]!="number";)ye++;var I=L[te++];switch(ye-=te,ye){case 0:lt(Ue,Me,I);break;case 1:lt(Ue,Me,I,L[te++]);break;case 2:Yt(Ue,Me,I,L[te++],L[te++]);break;case 3:ye=L[te++];var x=L[te++],ae=L[te++];Array.isArray(ae)?Yt(Ue,Me,I,ye,x,ae):w(Ue,Me,I,ye,x,ae);break;case 4:w(Ue,Me,I,L[te++],L[te++],L[te++],L[te++]);break;default:throw Error("unexpected number of binary field arguments: "+ye)}}return Ue}var yd=Symbol();function Dd(L){var Ue=L[yd];if(!Ue){var Me=Js(L);Ue=function(lt,Yt){return xt(lt,Yt,Me)},L[yd]=Ue}return Ue}function zl(L,Ue){var Me=L[yd];return Me||(Me=function(lt,Yt){return js(lt,Yt,Ue)},L[yd]=Me),Me}var Ic=Symbol();function Cs(L,Ue){L.push(Ue)}function Fd(L,Ue,Me){L.push(Ue,Me.P)}function zd(L,Ue,Me,lt,Yt){var w=Dd(Yt),te=Me.P;L.push(Ue,function(ye,I,x){return te(ye,I,x,lt,w)})}function Mc(L,Ue,Me,lt,Yt,w){var te=zl(lt,w),ye=Me.P;L.push(Ue,function(I,x,ae){return ye(I,x,ae,lt,te)})}function Js(L){var Ue=L[Ic];return Ue||Sl(L,L[Ic]=[],Cs,Fd,zd,Mc)}var jd=Symbol();function yu(L,Ue){L[0]=Ue}function Fu(L,Ue,Me,lt){var Yt=Me.O;L[Ue]=lt?function(w,te,ye){return Yt(w,te,ye,lt)}:Yt}function _d(L,Ue,Me,lt,Yt,w){var te=Me.O,ye=Zs(Yt);L[Ue]=function(I,x,ae){return te(I,x,ae,lt,ye,w)}}function lc(L,Ue,Me,lt,Yt,w,te){var ye=Me.O,I=Rl(lt,Yt,w);L[Ue]=function(x,ae,U){return ye(x,ae,U,lt,I,te)}}function ue(L){var Ue=L[jd];return Ue||Sl(L,L[jd]={},yu,Fu,_d,lc)}function Te(L,Ue,Me){for(;Oo(Ue)&&Ue.h!=4;){var lt=Ue.i,Yt=Me[lt];if(!Yt){var w=Me[0];w&&(w=w[lt])&&(Yt=Me[lt]=Is(w))}if((!Yt||!Yt(Ue,L,lt))&&(Yt=Ue,lt=L,w=Yt.j,Wa(Yt),!Yt.W)){var te=Yt.g.h;Yt=Yt.g.g,Yt=w===Yt?Ao||(Ao=new Uint8Array(0)):Qs?te.slice(w,Yt):new Uint8Array(te.subarray(w,Yt)),(w=lt.ca)?w.push(Yt):lt.ca=[Yt]}}return L}function ke(L,Ue,Me){if(Xl.length){var lt=Xl.pop();L&&(ul(lt.g,L),lt.i=-1,lt.h=-1),L=lt}else L=new Us(L);try{return Te(new Ue,L,ue(Me))}finally{Ue=L.g,Ue.h=null,Ue.j=0,Ue.i=0,Ue.g=0,Ue.v=!1,L.i=-1,L.h=-1,100>Xl.length&&Xl.push(L)}}function xt(L,Ue,Me){for(var lt=Me.length,Yt=lt%2==1,w=Yt?1:0;w<lt;w+=2)(0,Me[w+1])(Ue,L,Me[w]);js(L,Ue,Yt?Me[0]:void 0)}function vn(L,Ue){var Me=new ms;xt(L,Me,Js(Ue)),_o(Me,Me.g.end()),L=new Uint8Array(Me.h),Ue=Me.i;for(var lt=Ue.length,Yt=0,w=0;w<lt;w++){var te=Ue[w];L.set(te,Yt),Yt+=te.length}return Me.i=[L],L}function ur(L,Ue){return{O:L,P:Ue}}var Zn=ur(function(L,Ue,Me){if(L.h!==5)return!1;L=L.g;var lt=L.h[L.g],Yt=L.h[L.g+1],w=L.h[L.g+2],te=L.h[L.g+3];return L.g+=4,la(L),Yt=(lt<<0|Yt<<8|w<<16|te<<24)>>>0,L=2*(Yt>>31)+1,lt=Yt>>>23&255,Yt&=8388607,Yi(Ue,Me,lt==255?Yt?NaN:1/0*L:lt==0?L*Math.pow(2,-149)*Yt:L*Math.pow(2,lt-150)*(Yt+Math.pow(2,23))),!0},function(L,Ue,Me){if(Ue=Ro(Ue,Me),Ue!=null){Ql(L.g,8*Me+5),L=L.g;var lt=Ue;lt=(Me=0>lt?1:0)?-lt:lt,lt===0?0<1/lt?zo=jo=0:(jo=0,zo=2147483648):isNaN(lt)?(jo=0,zo=2147483647):34028234663852886e22<lt?(jo=0,zo=(Me<<31|2139095040)>>>0):11754943508222875e-54>lt?(lt=Math.round(lt/Math.pow(2,-149)),jo=0,zo=(Me<<31|lt)>>>0):(Ue=Math.floor(Math.log(lt)/Math.LN2),lt*=Math.pow(2,-Ue),lt=Math.round(8388608*lt),16777216<=lt&&++Ue,jo=0,zo=(Me<<31|Ue+127<<23|lt&8388607)>>>0),Me=zo,L.g.push(Me>>>0&255),L.g.push(Me>>>8&255),L.g.push(Me>>>16&255),L.g.push(Me>>>24&255)}}),ir=ur(function(L,Ue,Me){if(L.h!==0)return!1;for(var lt=L.g,Yt=128,w=0,te=L=0;4>te&&128<=Yt;te++)Yt=lt.h[lt.g++],la(lt),w|=(Yt&127)<<7*te;if(128<=Yt&&(Yt=lt.h[lt.g++],la(lt),w|=(Yt&127)<<28,L|=(Yt&127)>>4),128<=Yt)for(te=0;5>te&&128<=Yt;te++)Yt=lt.h[lt.g++],la(lt),L|=(Yt&127)<<7*te+3;if(128>Yt)lt=w>>>0,Yt=L>>>0,(L=Yt&2147483648)&&(lt=~lt+1>>>0,Yt=~Yt>>>0,lt==0&&(Yt=Yt+1>>>0)),lt=4294967296*Yt+(lt>>>0);else throw Ha();return Yi(Ue,Me,L?-lt:lt),!0},function(L,Ue,Me){if(Ue=Ro(Ue,Me),Ue!=null&&Ue!=null){Ql(L.g,8*Me),L=L.g;var lt=Ue;for(Me=0>lt,lt=Math.abs(lt),Ue=lt>>>0,lt=Math.floor((lt-Ue)/4294967296),lt>>>=0,Me&&(lt=~lt>>>0,Ue=(~Ue>>>0)+1,4294967295<Ue&&(Ue=0,lt++,4294967295<lt&&(lt=0))),zo=Ue,jo=lt,Me=zo,Ue=jo;0<Ue||127<Me;)L.g.push(Me&127|128),Me=(Me>>>7|Ue<<25)>>>0,Ue>>>=7;L.g.push(Me)}}),Nr=ur(function(L,Ue,Me){return L.h!==0?!1:(Yi(Ue,Me,fl(L.g)),!0)},function(L,Ue,Me){if(Ue=Ro(Ue,Me),Ue!=null&&Ue!=null)if(Ql(L.g,8*Me),L=L.g,Me=Ue,0<=Me)Ql(L,Me);else{for(Ue=0;9>Ue;Ue++)L.g.push(Me&127|128),Me>>=7;L.g.push(1)}}),Ai=ur(function(L,Ue,Me){if(L.h!==2)return!1;var lt=fl(L.g)>>>0;L=L.g;var Yt=L.g;L.g+=lt,la(L),L=L.h;var w;if(ac)(w=Ed)||(w=Ed=new TextDecoder("utf-8",{fatal:!0})),w=w.decode(L.subarray(Yt,Yt+lt));else{lt=Yt+lt;for(var te=[],ye=null,I,x,ae;Yt<lt;)I=L[Yt++],128>I?te.push(I):224>I?Yt>=lt?Fl():(x=L[Yt++],194>I||(x&192)!==128?(Yt--,Fl()):te.push((I&31)<<6|x&63)):240>I?Yt>=lt-1?Fl():(x=L[Yt++],(x&192)!==128||I===224&&160>x||I===237&&160<=x||((w=L[Yt++])&192)!==128?(Yt--,Fl()):te.push((I&15)<<12|(x&63)<<6|w&63)):244>=I?Yt>=lt-2?Fl():(x=L[Yt++],(x&192)!==128||(I<<28)+(x-144)>>30||((w=L[Yt++])&192)!==128||((ae=L[Yt++])&192)!==128?(Yt--,Fl()):(I=(I&7)<<18|(x&63)<<12|(w&63)<<6|ae&63,I-=65536,te.push((I>>10&1023)+55296,(I&1023)+56320))):Fl(),8192<=te.length&&(ye=Ks(ye,te),te.length=0);w=Ks(ye,te)}return Yi(Ue,Me,w),!0},function(L,Ue,Me){if(Ue=Ro(Ue,Me),Ue!=null){var lt=!1;if(lt=lt===void 0?!1:lt,bc){if(lt&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(Ue))throw Error("Found an unpaired surrogate");Ue=(Xd||(Xd=new TextEncoder)).encode(Ue)}else{for(var Yt=0,w=new Uint8Array(3*Ue.length),te=0;te<Ue.length;te++){var ye=Ue.charCodeAt(te);if(128>ye)w[Yt++]=ye;else{if(2048>ye)w[Yt++]=ye>>6|192;else{if(55296<=ye&&57343>=ye){if(56319>=ye&&te<Ue.length){var I=Ue.charCodeAt(++te);if(56320<=I&&57343>=I){ye=1024*(ye-55296)+I-56320+65536,w[Yt++]=ye>>18|240,w[Yt++]=ye>>12&63|128,w[Yt++]=ye>>6&63|128,w[Yt++]=ye&63|128;continue}else te--}if(lt)throw Error("Found an unpaired surrogate");ye=65533}w[Yt++]=ye>>12|224,w[Yt++]=ye>>6&63|128}w[Yt++]=ye&63|128}}Ue=w.subarray(0,Yt)}Ql(L.g,8*Me+2),Ql(L.g,Ue.length),_o(L,L.g.end()),_o(L,Ue)}}),ra=ur(function(L,Ue,Me,lt,Yt){if(L.h!==2)return!1;Ue=lr(Ue,Me,lt),Me=L.g.i,lt=fl(L.g)>>>0;var w=L.g.g+lt,te=w-Me;if(0>=te&&(L.g.i=w,Yt(Ue,L),te=w-L.g.g),te)throw Error("Message parsing ended unexpectedly. Expected to read "+(lt+" bytes, instead read "+(lt-te)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return L.g.g=w,L.g.i=Me,!0},function(L,Ue,Me,lt,Yt){if(Ue=On(Ue,lt,Me),Ue!=null)for(lt=0;lt<Ue.length;lt++){var w=L;Ql(w.g,8*Me+2);var te=w.g.end();_o(w,te),te.push(w.h),w=te,Yt(Ue[lt],L),te=L;var ye=w.pop();for(ye=te.h+te.g.length()-ye;127<ye;)w.push(ye&127|128),ye>>>=7,te.h++;w.push(ye),te.h++}});function Ki(){od.apply(this,arguments)}if(Jr(Ki,od),Ca){var Ya={};Object.defineProperties(Ki,(Ya[Symbol.hasInstance]=zs(Object[Symbol.hasInstance]),Ya))}function zi(L){Ki.call(this,L)}Jr(zi,Ki);function Bi(){return[1,Nr,2,Zn,3,Ai,4,Ai]}function qi(L){Ki.call(this,L,-1,uo)}Jr(qi,Ki),qi.prototype.addClassification=function(L,Ue){return lr(this,1,zi,L,Ue),this};function ka(){return[1,ra,zi,Bi]}var uo=[1];function Bo(L){Ki.call(this,L)}Jr(Bo,Ki);function No(){return[1,Zn,2,Zn,3,Zn,4,Zn,5,Zn]}function Wl(L){Ki.call(this,L,-1,be)}Jr(Wl,Ki);function re(){return[1,ra,Bo,No]}var be=[1];function Ze(L){Ki.call(this,L)}Jr(Ze,Ki);function Et(){return[1,Zn,2,Zn,3,Zn,4,Zn,5,Zn,6,ir]}function an(L,Ue,Me){if(Me=L.createShader(Me===0?L.VERTEX_SHADER:L.FRAGMENT_SHADER),L.shaderSource(Me,Ue),L.compileShader(Me),!L.getShaderParameter(Me,L.COMPILE_STATUS))throw Error(`Could not compile WebGL shader. `+L.getShaderInfoLog(Me));return Me}function Xn(L){return On(L,zi,1).map(function(Ue){return{index:Lr(Ue,1),score:ao(Ue,2),label:Ro(Ue,3)!=null?Ua(Ue,3):void 0,displayName:Ro(Ue,4)!=null?Ua(Ue,4):void 0}})}function ln(L){return{x:ao(L,1),y:ao(L,2),z:ao(L,3),visibility:Ro(L,4)!=null?ao(L,4):void 0}}function Hn(L){return L.map(function(Ue){return On(ke(Ue,Wl,re),Bo,1).map(ln)})}function pr(L,Ue){this.h=L,this.g=Ue,this.l=0}function D(L,Ue,Me){return Ie(L,Ue),typeof L.g.canvas.transferToImageBitmap=="function"?a.resolve(L.g.canvas.transferToImageBitmap()):Me?a.resolve(L.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(L.g.canvas):(L.i===void 0&&(L.i=document.createElement("canvas")),new a(function(lt){L.i.height=L.g.canvas.height,L.i.width=L.g.canvas.width,L.i.getContext("2d",{}).drawImage(L.g.canvas,0,0,L.g.canvas.width,L.g.canvas.height),lt(L.i)}))}function Ie(L,Ue){var Me=L.g;if(L.o===void 0){var lt=an(Me,` attribute vec2 aVertex; attribute vec2 aTex; varying vec2 vTex; void main(void) { gl_Position = vec4(aVertex, 0.0, 1.0); vTex = aTex; }`,0),Yt=an(Me,` precision mediump float; varying vec2 vTex; uniform sampler2D sampler0; void main(){ gl_FragColor = texture2D(sampler0, vTex); }`,1),w=Me.createProgram();if(Me.attachShader(w,lt),Me.attachShader(w,Yt),Me.linkProgram(w),!Me.getProgramParameter(w,Me.LINK_STATUS))throw Error(`Could not compile WebGL program. `+Me.getProgramInfoLog(w));lt=L.o=w,Me.useProgram(lt),Yt=Me.getUniformLocation(lt,"sampler0"),L.j={K:Me.getAttribLocation(lt,"aVertex"),J:Me.getAttribLocation(lt,"aTex"),qa:Yt},L.u=Me.createBuffer(),Me.bindBuffer(Me.ARRAY_BUFFER,L.u),Me.enableVertexAttribArray(L.j.K),Me.vertexAttribPointer(L.j.K,2,Me.FLOAT,!1,0,0),Me.bufferData(Me.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),Me.STATIC_DRAW),Me.bindBuffer(Me.ARRAY_BUFFER,null),L.s=Me.createBuffer(),Me.bindBuffer(Me.ARRAY_BUFFER,L.s),Me.enableVertexAttribArray(L.j.J),Me.vertexAttribPointer(L.j.J,2,Me.FLOAT,!1,0,0),Me.bufferData(Me.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),Me.STATIC_DRAW),Me.bindBuffer(Me.ARRAY_BUFFER,null),Me.uniform1i(Yt,0)}lt=L.j,Me.useProgram(L.o),Me.canvas.width=Ue.width,Me.canvas.height=Ue.height,Me.viewport(0,0,Ue.width,Ue.height),Me.activeTexture(Me.TEXTURE0),L.h.bindTexture2d(Ue.glName),Me.enableVertexAttribArray(lt.K),Me.bindBuffer(Me.ARRAY_BUFFER,L.u),Me.vertexAttribPointer(lt.K,2,Me.FLOAT,!1,0,0),Me.enableVertexAttribArray(lt.J),Me.bindBuffer(Me.ARRAY_BUFFER,L.s),Me.vertexAttribPointer(lt.J,2,Me.FLOAT,!1,0,0),Me.bindFramebuffer(Me.DRAW_FRAMEBUFFER?Me.DRAW_FRAMEBUFFER:Me.FRAMEBUFFER,null),Me.clearColor(0,0,0,0),Me.clear(Me.COLOR_BUFFER_BIT),Me.colorMask(!0,!0,!0,!0),Me.drawArrays(Me.TRIANGLE_FAN,0,4),Me.disableVertexAttribArray(lt.K),Me.disableVertexAttribArray(lt.J),Me.bindBuffer(Me.ARRAY_BUFFER,null),L.h.bindTexture2d(0)}function De(L){this.g=L}var gt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function wt(L,Ue){return Ue+L}function sn(L,Ue){window[L]=Ue}function rn(L){var Ue=document.createElement("script");return Ue.setAttribute("src",L),Ue.setAttribute("crossorigin","anonymous"),new a(function(Me){Ue.addEventListener("load",function(){Me()},!1),Ue.addEventListener("error",function(){Me()},!1),document.body.appendChild(Ue)})}function $n(){return Tr(function(L){switch(L.g){case 1:return L.o=2,Tn(L,WebAssembly.instantiate(gt),4);case 4:L.g=3,L.o=0;break;case 2:return L.o=0,L.j=null,L.return(!1);case 3:return L.return(!0)}})}function Ln(L){if(this.g=L,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.$=!0,this.D=a.resolve(),this.Z="",this.C={},this.locateFile=L&&L.locateFile||wt,typeof window=="object")var Ue=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location<"u")Ue=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.aa=Ue,L.options){Ue=ft(Object.keys(L.options));for(var Me=Ue.next();!Me.done;Me=Ue.next()){Me=Me.value;var lt=L.options[Me].default;lt!==void 0&&(this.j[Me]=typeof lt=="function"?lt():lt)}}}G=Ln.prototype,G.close=function(){return this.i&&this.i.delete(),a.resolve()};function Xr(L){var Ue,Me,lt,Yt,w,te,ye,I,x,ae,U;return Tr(function(M){switch(M.g){case 1:return L.$?(Ue=L.g.files===void 0?[]:typeof L.g.files=="function"?L.g.files(L.j):L.g.files,Tn(M,$n(),2)):M.return();case 2:if(Me=M.h,typeof window=="object")return sn("createMediapipeSolutionsWasm",{locateFile:L.locateFile}),sn("createMediapipeSolutionsPackedAssets",{locateFile:L.locateFile}),te=Ue.filter(function(O){return O.data!==void 0}),ye=Ue.filter(function(O){return O.data===void 0}),I=a.all(te.map(function(O){var fe=pi(L,O.url);if(O.path!==void 0){var je=O.path;fe=fe.then(function(pt){return L.overrideFile(je,pt),a.resolve(pt)})}return fe})),x=a.all(ye.map(function(O){return O.simd===void 0||O.simd&&Me||!O.simd&&!Me?rn(L.locateFile(O.url,L.aa)):a.resolve()})).then(function(){var O,fe,je;return Tr(function(pt){if(pt.g==1)return O=window.createMediapipeSolutionsWasm,fe=window.createMediapipeSolutionsPackedAssets,je=L,Tn(pt,O(fe),2);je.h=pt.h,pt.g=0})}),ae=function(){return Tr(function(O){return L.g.graph&&L.g.graph.url?O=Tn(O,pi(L,L.g.graph.url),0):(O.g=0,O=void 0),O})}(),Tn(M,a.all([x,I,ae]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return lt=Ue.filter(function(O){return O.simd===void 0||O.simd&&Me||!O.simd&&!Me}).map(function(O){return L.locateFile(O.url,L.aa)}),importScripts.apply(null,kt(lt)),Yt=L,Tn(M,createMediapipeSolutionsWasm(Module),6);case 6:Yt.h=M.h,L.l=new OffscreenCanvas(1,1),L.h.canvas=L.l,w=L.h.GL.createContext(L.l,{antialias:!1,alpha:!1,na:typeof WebGL2RenderingContext<"u"?2:1}),L.h.GL.makeContextCurrent(w),M.g=4;break;case 7:if(L.l=document.createElement("canvas"),U=L.l.getContext("webgl2",{}),!U&&(U=L.l.getContext("webgl",{}),!U))return alert("Failed to create WebGL canvas context when passing video frame."),M.return();L.G=U,L.h.canvas=L.l,L.h.createContext(L.l,!0,!0,{});case 4:L.i=new L.h.SolutionWasm,L.$=!1,M.g=0}})}function ii(L){var Ue,Me,lt,Yt,w,te,ye,I;return Tr(function(x){if(x.g==1){if(L.g.graph&&L.g.graph.url&&L.Z===L.g.graph.url)return x.return();if(L.s=!0,!L.g.graph||!L.g.graph.url){x.g=2;return}return L.Z=L.g.graph.url,Tn(x,pi(L,L.g.graph.url),3)}for(x.g!=2&&(Ue=x.h,L.i.loadGraph(Ue)),Me=ft(Object.keys(L.C)),lt=Me.next();!lt.done;lt=Me.next())Yt=lt.value,L.i.overrideFile(Yt,L.C[Yt]);if(L.C={},L.g.listeners)for(w=ft(L.g.listeners),te=w.next();!te.done;te=w.next())ye=te.value,bi(L,ye);I=L.j,L.j={},L.setOptions(I),x.g=0})}G.reset=function(){var L=this;return Tr(function(Ue){L.i&&(L.i.reset(),L.o={},L.u={}),Ue.g=0})},G.setOptions=function(L,Ue){var Me=this;if(Ue=Ue||this.g.options){for(var lt=[],Yt=[],w={},te=ft(Object.keys(L)),ye=te.next();!ye.done;w={R:w.R,S:w.S},ye=te.next()){var I=ye.value;I in this.j&&this.j[I]===L[I]||(this.j[I]=L[I],ye=Ue[I],ye!==void 0&&(ye.onChange&&(w.R=ye.onChange,w.S=L[I],lt.push(function(x){return function(){var ae;return Tr(function(U){if(U.g==1)return Tn(U,x.R(x.S),2);ae=U.h,ae===!0&&(Me.s=!0),U.g=0})}}(w))),ye.graphOptionXref&&(I={valueNumber:ye.type===1?L[I]:0,valueBoolean:ye.type===0?L[I]:!1,valueString:ye.type===2?L[I]:""},ye=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),ye.graphOptionXref),I),Yt.push(ye))))}(lt.length!==0||Yt.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(Yt),this.A=(this.A===void 0?[]:this.A).concat(lt))}};function aa(L){var Ue,Me,lt,Yt,w,te,ye;return Tr(function(I){switch(I.g){case 1:if(!L.s)return I.return();if(!L.A){I.g=2;break}Ue=ft(L.A),Me=Ue.next();case 3:if(Me.done){I.g=5;break}return lt=Me.value,Tn(I,lt(),4);case 4:Me=Ue.next(),I.g=3;break;case 5:L.A=void 0;case 2:if(L.B){for(Yt=new L.h.GraphOptionChangeRequestList,w=ft(L.B),te=w.next();!te.done;te=w.next())ye=te.value,Yt.push_back(ye);L.i.changeOptions(Yt),Yt.delete(),L.B=void 0}L.s=!1,I.g=0}})}G.initialize=function(){var L=this;return Tr(function(Ue){return Ue.g==1?Tn(Ue,Xr(L),2):Ue.g!=3?Tn(Ue,ii(L),3):Tn(Ue,aa(L),0)})};function pi(L,Ue){var Me,lt;return Tr(function(Yt){return Ue in L.H?Yt.return(L.H[Ue]):(Me=L.locateFile(Ue,""),lt=fetch(Me).then(function(w){return w.arrayBuffer()}),L.H[Ue]=lt,Yt.return(lt))})}G.overrideFile=function(L,Ue){this.i?this.i.overrideFile(L,Ue):this.C[L]=Ue},G.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},G.send=function(L,Ue){var Me=this,lt,Yt,w,te,ye,I,x,ae,U;return Tr(function(M){switch(M.g){case 1:return Me.g.inputs?(lt=1e3*(Ue??performance.now()),Tn(M,Me.D,2)):M.return();case 2:return Tn(M,Me.initialize(),3);case 3:for(Yt=new Me.h.PacketDataList,w=ft(Object.keys(L)),te=w.next();!te.done;te=w.next())if(ye=te.value,I=Me.g.inputs[ye]){e:{var O=L[ye];switch(I.type){case"video":var fe=Me.o[I.stream];if(fe||(fe=new pr(Me.h,Me.G),Me.o[I.stream]=fe),fe.l===0&&(fe.l=fe.h.createTexture()),typeof HTMLVideoElement<"u"&&O instanceof HTMLVideoElement)var je=O.videoWidth,pt=O.videoHeight;else typeof HTMLImageElement<"u"&&O instanceof HTMLImageElement?(je=O.naturalWidth,pt=O.naturalHeight):(je=O.width,pt=O.height);pt={glName:fe.l,width:je,height:pt},je=fe.g,je.canvas.width=pt.width,je.canvas.height=pt.height,je.activeTexture(je.TEXTURE0),fe.h.bindTexture2d(fe.l),je.texImage2D(je.TEXTURE_2D,0,je.RGBA,je.RGBA,je.UNSIGNED_BYTE,O),fe.h.bindTexture2d(0),fe=pt;break e;case"detections":for(fe=Me.o[I.stream],fe||(fe=new De(Me.h),Me.o[I.stream]=fe),fe.data||(fe.data=new fe.g.DetectionListData),fe.data.reset(O.length),pt=0;pt<O.length;++pt){je=O[pt];var vt=fe.data,nn=vt.setBoundingBox,bn=pt,wn=je.ea,Yn=new Ze;if(Yi(Yn,1,wn.ka),Yi(Yn,2,wn.la),Yi(Yn,3,wn.height),Yi(Yn,4,wn.width),Yi(Yn,5,wn.rotation),Yi(Yn,6,wn.ia),wn=vn(Yn,Et),nn.call(vt,bn,wn),je.Y)for(vt=0;vt<je.Y.length;++vt){Yn=je.Y[vt];var fr=!!Yn.visibility;nn=fe.data,bn=nn.addNormalizedLandmark,wn=pt,Yn=Object.assign(Object.assign({},Yn),{visibility:fr?Yn.visibility:0}),fr=new Bo,Yi(fr,1,Yn.x),Yi(fr,2,Yn.y),Yi(fr,3,Yn.z),Yn.visibility&&Yi(fr,4,Yn.visibility),Yn=vn(fr,No),bn.call(nn,wn,Yn)}if(je.V)for(vt=0;vt<je.V.length;++vt)nn=fe.data,bn=nn.addClassification,wn=pt,Yn=je.V[vt],fr=new zi,Yi(fr,2,Yn.score),Yn.index&&Yi(fr,1,Yn.index),Yn.label&&Yi(fr,3,Yn.label),Yn.displayName&&Yi(fr,4,Yn.displayName),Yn=vn(fr,Bi),bn.call(nn,wn,Yn)}fe=fe.data;break e;default:fe={}}}switch(x=fe,ae=I.stream,I.type){case"video":Yt.pushTexture2d(Object.assign(Object.assign({},x),{stream:ae,timestamp:lt}));break;case"detections":U=x,U.stream=ae,U.timestamp=lt,Yt.pushDetectionList(U);break;default:throw Error("Unknown input config type: '"+I.type+"'")}}return Me.i.send(Yt),Tn(M,Me.D,4);case 4:Yt.delete(),M.g=0}})};function Ir(L,Ue,Me){var lt,Yt,w,te,ye,I,x,ae,U,M,O,fe,je,pt;return Tr(function(vt){switch(vt.g){case 1:if(!Me)return vt.return(Ue);for(lt={},Yt=0,w=ft(Object.keys(Me)),te=w.next();!te.done;te=w.next())ye=te.value,I=Me[ye],typeof I!="string"&&I.type==="texture"&&Ue[I.stream]!==void 0&&++Yt;1<Yt&&(L.I=!1),x=ft(Object.keys(Me)),te=x.next();case 2:if(te.done){vt.g=4;break}if(ae=te.value,U=Me[ae],typeof U=="string")return je=lt,pt=ae,Tn(vt,ai(L,ae,Ue[U]),14);if(M=Ue[U.stream],U.type==="detection_list"){if(M){for(var nn=M.getRectList(),bn=M.getLandmarksList(),wn=M.getClassificationsList(),Yn=[],fr=0;fr<nn.size();++fr){var Cr=ke(nn.get(fr),Ze,Et);Cr={ea:{ka:ao(Cr,1),la:ao(Cr,2),height:ao(Cr,3),width:ao(Cr,4),rotation:ao(Cr,5,0),ia:Lr(Cr,6)},Y:On(ke(bn.get(fr),Wl,re),Bo,1).map(ln),V:Xn(ke(wn.get(fr),qi,ka))},Yn.push(Cr)}nn=Yn}else nn=[];lt[ae]=nn,vt.g=7;break}if(U.type==="proto_list"){if(M){for(nn=Array(M.size()),bn=0;bn<M.size();bn++)nn[bn]=M.get(bn);M.delete()}else nn=[];lt[ae]=nn,vt.g=7;break}if(M===void 0){vt.g=3;break}if(U.type==="float_list"){lt[ae]=M,vt.g=7;break}if(U.type==="proto"){lt[ae]=M,vt.g=7;break}if(U.type!=="texture")throw Error("Unknown output config type: '"+U.type+"'");return O=L.u[ae],O||(O=new pr(L.h,L.G),L.u[ae]=O),Tn(vt,D(O,M,L.I),13);case 13:fe=vt.h,lt[ae]=fe;case 7:U.transform&<[ae]&&(lt[ae]=U.transform(lt[ae])),vt.g=3;break;case 14:je[pt]=vt.h;case 3:te=x.next(),vt.g=2;break;case 4:return vt.return(lt)}})}function ai(L,Ue,Me){var lt;return Tr(function(Yt){return typeof Me=="number"||Me instanceof Uint8Array||Me instanceof L.h.Uint8BlobList?Yt.return(Me):Me instanceof L.h.Texture2dDataOut?(lt=L.u[Ue],lt||(lt=new pr(L.h,L.G),L.u[Ue]=lt),Yt.return(D(lt,Me,L.I))):Yt.return(void 0)})}function bi(L,Ue){for(var Me=Ue.name||"$",lt=[].concat(kt(Ue.wants)),Yt=new L.h.StringList,w=ft(Ue.wants),te=w.next();!te.done;te=w.next())Yt.push_back(te.value);w=L.h.PacketListener.implement({onResults:function(ye){for(var I={},x=0;x<Ue.wants.length;++x)I[lt[x]]=ye.get(x);var ae=L.listeners[Me];ae&&(L.D=Ir(L,I,Ue.outs).then(function(U){U=ae(U);for(var M=0;M<Ue.wants.length;++M){var O=I[lt[M]];typeof O=="object"&&O.hasOwnProperty&&O.hasOwnProperty("delete")&&O.delete()}U&&(L.D=U)}))}}),L.i.attachMultiListener(Yt,w),Yt.delete()}G.onResults=function(L,Ue){this.listeners[Ue||"$"]=L},Oi("Solution",Ln),Oi("OptionType",{BOOL:0,NUMBER:1,ma:2,0:"BOOL",1:"NUMBER",2:"STRING"});function vi(L){return L===void 0&&(L=0),L===1?"hand_landmark_full.tflite":"hand_landmark_lite.tflite"}function Xi(L){var Ue=this;L=L||{},this.g=new Ln({locateFile:L.locateFile,files:function(Me){return[{url:"hands_solution_packed_assets_loader.js"},{simd:!1,url:"hands_solution_wasm_bin.js"},{simd:!0,url:"hands_solution_simd_wasm_bin.js"},{data:!0,url:vi(Me.modelComplexity)}]},graph:{url:"hands.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["multi_hand_landmarks","multi_hand_world_landmarks","image_transformed","multi_handedness"],outs:{image:"image_transformed",multiHandLandmarks:{type:"proto_list",stream:"multi_hand_landmarks",transform:Hn},multiHandWorldLandmarks:{type:"proto_list",stream:"multi_hand_world_landmarks",transform:Hn},multiHandedness:{type:"proto_list",stream:"multi_handedness",transform:function(Me){return Me.map(function(lt){return Xn(ke(lt,qi,ka))[0]})}}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumHands:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculator",fieldName:"int_value"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(Me){var lt,Yt,w;return Tr(function(te){return te.g==1?(lt=vi(Me),Yt="third_party/mediapipe/modules/hand_landmark/"+lt,Tn(te,pi(Ue.g,lt),2)):(w=te.h,Ue.g.overrideFile(Yt,w),te.return(!0))})}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"handlandmarktrackinggpu__palmdetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"handlandmarktrackinggpu__handlandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}}}})}G=Xi.prototype,G.close=function(){return this.g.close(),a.resolve()},G.onResults=function(L){this.g.onResults(L)},G.initialize=function(){var L=this;return Tr(function(Ue){return Tn(Ue,L.g.initialize(),0)})},G.reset=function(){this.g.reset()},G.send=function(L){var Ue=this;return Tr(function(Me){return Tn(Me,Ue.g.send(L),0)})},G.setOptions=function(L){this.g.setOptions(L)},Oi("Hands",Xi),Oi("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),Oi("VERSION","0.4.1646424915")}).call($t);var At={};(function(){var G;function Z(I){var x=0;return function(){return x<I.length?{done:!1,value:I[x++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(I,x,ae){return I==Array.prototype||I==Object.prototype||(I[x]=ae.value),I};function se(I){I=[typeof globalThis=="object"&&globalThis,I,typeof window=="object"&&window,typeof self=="object"&&self,typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr)];for(var x=0;x<I.length;++x){var ae=I[x];if(ae&&ae.Math==Math)return ae}throw Error("Cannot find global object")}var Qe=se(this);function et(I,x){if(x)e:{var ae=Qe;I=I.split(".");for(var U=0;U<I.length-1;U++){var M=I[U];if(!(M in ae))break e;ae=ae[M]}I=I[I.length-1],U=ae[I],x=x(U),x!=U&&x!=null&&W(ae,I,{configurable:!0,writable:!0,value:x})}}et("Symbol",function(I){function x(O){if(this instanceof x)throw new TypeError("Symbol is not a constructor");return new ae(U+(O||"")+"_"+M++,O)}function ae(O,fe){this.g=O,W(this,"description",{configurable:!0,writable:!0,value:fe})}if(I)return I;ae.prototype.toString=function(){return this.g};var U="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",M=0;return x}),et("Symbol.iterator",function(I){if(I)return I;I=Symbol("Symbol.iterator");for(var x="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),ae=0;ae<x.length;ae++){var U=Qe[x[ae]];typeof U=="function"&&typeof U.prototype[I]!="function"&&W(U.prototype,I,{configurable:!0,writable:!0,value:function(){return Zt(Z(this))}})}return I});function Zt(I){return I={next:I},I[Symbol.iterator]=function(){return this},I}function ft(I){var x=typeof Symbol<"u"&&Symbol.iterator&&I[Symbol.iterator];return x?x.call(I):{next:Z(I)}}function kt(I){if(!(I instanceof Array)){I=ft(I);for(var x,ae=[];!(x=I.next()).done;)ae.push(x.value);I=ae}return I}var rr=typeof Object.create=="function"?Object.create:function(I){function x(){}return x.prototype=I,new x},gr;if(typeof Object.setPrototypeOf=="function")gr=Object.setPrototypeOf;else{var Wr;e:{var Ui={a:!0},Ci={};try{Ci.__proto__=Ui,Wr=Ci.a;break e}catch{}Wr=!1}gr=Wr?function(I,x){if(I.__proto__=x,I.__proto__!==x)throw new TypeError(I+" is not extensible");return I}:null}var Qr=gr;function Jr(I,x){if(I.prototype=rr(x.prototype),I.prototype.constructor=I,Qr)Qr(I,x);else for(var ae in x)if(ae!="prototype")if(Object.defineProperties){var U=Object.getOwnPropertyDescriptor(x,ae);U&&Object.defineProperty(I,ae,U)}else I[ae]=x[ae];I.da=x.prototype}function $i(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fa(I){if(I.l)throw new TypeError("Generator is already running");I.l=!0}$i.prototype.o=function(I){this.h=I};function ro(I,x){I.j={U:x,V:!0},I.g=I.m||I.s}$i.prototype.return=function(I){this.j={return:I},this.g=this.s};function Tn(I,x,ae){return I.g=ae,{value:x}}function ps(I){this.g=new $i,this.h=I}function id(I,x){fa(I.g);var ae=I.g.i;return ae?xo(I,"return"in ae?ae.return:function(U){return{value:U,done:!0}},x,I.g.return):(I.g.return(x),ba(I))}function xo(I,x,ae,U){try{var M=x.call(I.g.i,ae);if(!(M instanceof Object))throw new TypeError("Iterator result "+M+" is not an object");if(!M.done)return I.g.l=!1,M;var O=M.value}catch(fe){return I.g.i=null,ro(I.g,fe),ba(I)}return I.g.i=null,U.call(I.g,O),ba(I)}function ba(I){for(;I.g.g;)try{var x=I.h(I.g);if(x)return I.g.l=!1,{value:x.value,done:!1}}catch(ae){I.g.h=void 0,ro(I.g,ae)}if(I.g.l=!1,I.g.j){if(x=I.g.j,I.g.j=null,x.V)throw x.U;return{value:x.return,done:!0}}return{value:void 0,done:!0}}function Pd(I){this.next=function(x){return fa(I.g),I.g.i?x=xo(I,I.g.i.next,x,I.g.o):(I.g.o(x),x=ba(I)),x},this.throw=function(x){return fa(I.g),I.g.i?x=xo(I,I.g.i.throw,x,I.g.o):(ro(I.g,x),x=ba(I)),x},this.return=function(x){return id(I,x)},this[Symbol.iterator]=function(){return this}}function za(I){function x(U){return I.next(U)}function ae(U){return I.throw(U)}return new a(function(U,M){function O(fe){fe.done?U(fe.value):a.resolve(fe.value).then(x,ae).then(O,M)}O(I.next())})}function Tr(I){return za(new Pd(new ps(I)))}et("Promise",function(I){function x(fe){this.h=0,this.i=void 0,this.g=[],this.o=!1;var je=this.j();try{fe(je.resolve,je.reject)}catch(pt){je.reject(pt)}}function ae(){this.g=null}function U(fe){return fe instanceof x?fe:new x(function(je){je(fe)})}if(I)return I;ae.prototype.h=function(fe){if(this.g==null){this.g=[];var je=this;this.i(function(){je.l()})}this.g.push(fe)};var M=Qe.setTimeout;ae.prototype.i=function(fe){M(fe,0)},ae.prototype.l=function(){for(;this.g&&this.g.length;){var fe=this.g;this.g=[];for(var je=0;je<fe.length;++je){var pt=fe[je];fe[je]=null;try{pt()}catch(vt){this.j(vt)}}}this.g=null},ae.prototype.j=function(fe){this.i(function(){throw fe})},x.prototype.j=function(){function fe(vt){return function(nn){pt||(pt=!0,vt.call(je,nn))}}var je=this,pt=!1;return{resolve:fe(this.C),reject:fe(this.l)}},x.prototype.C=function(fe){if(fe===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(fe instanceof x)this.F(fe);else{e:switch(typeof fe){case"object":var je=fe!=null;break e;case"function":je=!0;break e;default:je=!1}je?this.v(fe):this.m(fe)}},x.prototype.v=function(fe){var je=void 0;try{je=fe.then}catch(pt){this.l(pt);return}typeof je=="function"?this.G(je,fe):this.m(fe)},x.prototype.l=function(fe){this.s(2,fe)},x.prototype.m=function(fe){this.s(1,fe)},x.prototype.s=function(fe,je){if(this.h!=0)throw Error("Cannot settle("+fe+", "+je+"): Promise already settled in state"+this.h);this.h=fe,this.i=je,this.h===2&&this.D(),this.A()},x.prototype.D=function(){var fe=this;M(function(){if(fe.B()){var je=Qe.console;typeof je<"u"&&je.error(fe.i)}},1)},x.prototype.B=function(){if(this.o)return!1;var fe=Qe.CustomEvent,je=Qe.Event,pt=Qe.dispatchEvent;return typeof pt>"u"?!0:(typeof fe=="function"?fe=new fe("unhandledrejection",{cancelable:!0}):typeof je=="function"?fe=new je("unhandledrejection",{cancelable:!0}):(fe=Qe.document.createEvent("CustomEvent"),fe.initCustomEvent("unhandledrejection",!1,!0,fe)),fe.promise=this,fe.reason=this.i,pt(fe))},x.prototype.A=function(){if(this.g!=null){for(var fe=0;fe<this.g.length;++fe)O.h(this.g[fe]);this.g=null}};var O=new ae;return x.prototype.F=function(fe){var je=this.j();fe.J(je.resolve,je.reject)},x.prototype.G=function(fe,je){var pt=this.j();try{fe.call(je,pt.resolve,pt.reject)}catch(vt){pt.reject(vt)}},x.prototype.then=function(fe,je){function pt(wn,Yn){return typeof wn=="function"?function(fr){try{vt(wn(fr))}catch(Cr){nn(Cr)}}:Yn}var vt,nn,bn=new x(function(wn,Yn){vt=wn,nn=Yn});return this.J(pt(fe,vt),pt(je,nn)),bn},x.prototype.catch=function(fe){return this.then(void 0,fe)},x.prototype.J=function(fe,je){function pt(){switch(vt.h){case 1:fe(vt.i);break;case 2:je(vt.i);break;default:throw Error("Unexpected state: "+vt.h)}}var vt=this;this.g==null?O.h(pt):this.g.push(pt),this.o=!0},x.resolve=U,x.reject=function(fe){return new x(function(je,pt){pt(fe)})},x.race=function(fe){return new x(function(je,pt){for(var vt=ft(fe),nn=vt.next();!nn.done;nn=vt.next())U(nn.value).J(je,pt)})},x.all=function(fe){var je=ft(fe),pt=je.next();return pt.done?U([]):new x(function(vt,nn){function bn(fr){return function(Cr){wn[fr]=Cr,Yn--,Yn==0&&vt(wn)}}var wn=[],Yn=0;do wn.push(void 0),Yn++,U(pt.value).J(bn(wn.length-1),nn),pt=je.next();while(!pt.done)})},x});function _c(I,x){I instanceof String&&(I+="");var ae=0,U=!1,M={next:function(){if(!U&&ae<I.length){var O=ae++;return{value:x(O,I[O]),done:!1}}return U=!0,{done:!0,value:void 0}}};return M[Symbol.iterator]=function(){return M},M}var Dc=typeof Object.assign=="function"?Object.assign:function(I,x){for(var ae=1;ae<arguments.length;ae++){var U=arguments[ae];if(U)for(var M in U)Object.prototype.hasOwnProperty.call(U,M)&&(I[M]=U[M])}return I};et("Object.assign",function(I){return I||Dc}),et("Object.is",function(I){return I||function(x,ae){return x===ae?x!==0||1/x===1/ae:x!==x&&ae!==ae}}),et("Array.prototype.includes",function(I){return I||function(x,ae){var U=this;U instanceof String&&(U=String(U));var M=U.length;for(ae=ae||0,0>ae&&(ae=Math.max(ae+M,0));ae<M;ae++){var O=U[ae];if(O===x||Object.is(O,x))return!0}return!1}}),et("String.prototype.includes",function(I){return I||function(x,ae){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(x instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(x,ae||0)!==-1}}),et("Array.prototype.keys",function(I){return I||function(){return _c(this,function(x){return x})}});var dl=this||self;function Oi(I,x){I=I.split(".");var ae=dl;I[0]in ae||typeof ae.execScript>"u"||ae.execScript("var "+I[0]);for(var U;I.length&&(U=I.shift());)I.length||x===void 0?ae[U]&&ae[U]!==Object.prototype[U]?ae=ae[U]:ae=ae[U]={}:ae[U]=x}function Fl(I){dl.setTimeout(function(){throw I},0)}function Ks(I){Fl(I)}function Ed(I,x){Ks(Error("Invalid wire type: "+I+" (at position "+x+")"))}function ac(){Ks(Error("Failed to read varint, encoding is invalid."))}function Xd(I,x){return x=String.fromCharCode.apply(null,x),I==null?x:I+x}var bc,Ps=typeof TextDecoder<"u",Kl,kd=typeof TextEncoder<"u";function oc(I){if(kd)I=(Kl||(Kl=new TextEncoder)).encode(I);else{var x=void 0;x=x===void 0?!1:x;for(var ae=0,U=new Uint8Array(3*I.length),M=0;M<I.length;M++){var O=I.charCodeAt(M);if(128>O)U[ae++]=O;else{if(2048>O)U[ae++]=O>>6|192;else{if(55296<=O&&57343>=O){if(56319>=O&&M<I.length){var fe=I.charCodeAt(++M);if(56320<=fe&&57343>=fe){O=1024*(O-55296)+fe-56320+65536,U[ae++]=O>>18|240,U[ae++]=O>>12&63|128,U[ae++]=O>>6&63|128,U[ae++]=O&63|128;continue}else M--}if(x)throw Error("Found an unpaired surrogate");O=65533}U[ae++]=O>>12|224,U[ae++]=O>>6&63|128}U[ae++]=O&63|128}}I=U.subarray(0,ae)}return I}var Sd={},El=null;function wd(I){var x;x===void 0&&(x=0),cl(),x=Sd[x];for(var ae=Array(Math.floor(I.length/3)),U=x[64]||"",M=0,O=0;M<I.length-2;M+=3){var fe=I[M],je=I[M+1],pt=I[M+2],vt=x[fe>>2];fe=x[(fe&3)<<4|je>>4],je=x[(je&15)<<2|pt>>6],pt=x[pt&63],ae[O++]=vt+fe+je+pt}switch(vt=0,pt=U,I.length-M){case 2:vt=I[M+1],pt=x[(vt&15)<<2]||U;case 1:I=I[M],ae[O]=x[I>>2]+x[(I&3)<<4|vt>>4]+pt+U}return ae.join("")}function pd(I){var x=I.length,ae=3*x/4;ae%3?ae=Math.floor(ae):"=.".indexOf(I[x-1])!=-1&&(ae="=.".indexOf(I[x-2])!=-1?ae-2:ae-1);var U=new Uint8Array(ae),M=0;return Ao(I,function(O){U[M++]=O}),U.subarray(0,M)}function Ao(I,x){function ae(pt){for(;U<I.length;){var vt=I.charAt(U++),nn=El[vt];if(nn!=null)return nn;if(!/^[\s\xa0]*$/.test(vt))throw Error("Unknown base64 encoding at char: "+vt)}return pt}cl();for(var U=0;;){var M=ae(-1),O=ae(0),fe=ae(64),je=ae(64);if(je===64&&M===-1)break;x(M<<2|O>>4),fe!=64&&(x(O<<4&240|fe>>2),je!=64&&x(fe<<6&192|je))}}function cl(){if(!El){El={};for(var I="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),x=["+/=","+/","-_=","-_.","-_"],ae=0;5>ae;ae++){var U=I.concat(x[ae].split(""));Sd[ae]=U;for(var M=0;M<U.length;M++){var O=U[M];El[O]===void 0&&(El[O]=M)}}}}var Qs=typeof Uint8Array=="function",zo;function jo(I){if(this.g=I,I!==null&&I.length===0)throw Error("ByteString should be constructed with non-empty values")}jo.prototype.toJSON=function(){if(this.g==null)var I="";else I=this.g,I=this.g=I==null||typeof I=="string"?I:Qs&&I instanceof Uint8Array?wd(I):null;return I};var Ns=typeof Uint8Array.prototype.slice=="function";function Pl(I,x,ae){return x===ae?zo||(zo=new Uint8Array(0)):Ns?I.slice(x,ae):new Uint8Array(I.subarray(x,ae))}var Ha=0,Xo=0;function ul(I){if(I.constructor===Uint8Array)return I;if(I.constructor===ArrayBuffer)return new Uint8Array(I);if(I.constructor===Array)return new Uint8Array(I);if(I.constructor===String)return pd(I);if(I.constructor===jo){if(I.g==null)var x=zo||(zo=new Uint8Array(0));else{x=Uint8Array;var ae=I.g;ae=ae==null||Qs&&ae!=null&&ae instanceof Uint8Array?ae:typeof ae=="string"?pd(ae):null,I=I.g=ae,x=new x(I)}return x}if(I instanceof Uint8Array)return new Uint8Array(I.buffer,I.byteOffset,I.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function la(I,x){x=x===void 0?{}:x,x=x.u===void 0?!1:x.u,this.h=null,this.g=this.i=this.m=0,this.l=!1,this.u=x,I&&fl(this,I)}function fl(I,x){I.h=ul(x),I.m=0,I.i=I.h.length,I.g=I.m}la.prototype.reset=function(){this.g=this.m};function xa(I){for(var x=128,ae=0,U=0,M=0;4>M&&128<=x;M++)x=I.h[I.g++],ae|=(x&127)<<7*M;if(128<=x&&(x=I.h[I.g++],ae|=(x&127)<<28,U|=(x&127)>>4),128<=x)for(M=0;5>M&&128<=x;M++)x=I.h[I.g++],U|=(x&127)<<7*M+3;if(128>x)return I=ae>>>0,x=U>>>0,(U=x&2147483648)&&(I=~I+1>>>0,x=~x>>>0,I==0&&(x=x+1>>>0)),I=4294967296*x+(I>>>0),U?-I:I;I.l=!0,ac()}function Wo(I){I.g>I.i&&(I.l=!0,Ks(Error("Tried to read past the end of the data "+I.g+" > "+I.i)))}la.prototype.j=function(){var I=this.h,x=I[this.g],ae=x&127;return 128>x?(this.g+=1,Wo(this),ae):(x=I[this.g+1],ae|=(x&127)<<7,128>x?(this.g+=2,Wo(this),ae):(x=I[this.g+2],ae|=(x&127)<<14,128>x?(this.g+=3,Wo(this),ae):(x=I[this.g+3],ae|=(x&127)<<21,128>x?(this.g+=4,Wo(this),ae):(x=I[this.g+4],ae|=(x&15)<<28,128>x?(this.g+=5,Wo(this),ae>>>0):(this.g+=5,128<=I[this.g++]&&128<=I[this.g++]&&128<=I[this.g++]&&128<=I[this.g++]&&128<=I[this.g++]?(this.l=!0,ac(),ae):(Wo(this),ae))))))},la.prototype.o=function(){var I=this.h[this.g],x=this.h[this.g+1],ae=this.h[this.g+2],U=this.h[this.g+3];return this.g+=4,Wo(this),ae=(I<<0|x<<8|ae<<16|U<<24)>>>0,I=2*(ae>>31)+1,x=ae>>>23&255,ae&=8388607,x==255?ae?NaN:1/0*I:x==0?I*Math.pow(2,-149)*ae:I*Math.pow(2,x-150)*(ae+Math.pow(2,23))};var Ql=[];function Us(){this.g=new Uint8Array(64),this.h=0}function Oo(I,x){if(!(I.h+1<I.g.length)){var ae=I.g;I.g=new Uint8Array(Math.ceil(1+2*I.g.length)),I.g.set(ae)}I.g[I.h++]=x}Us.prototype.length=function(){return this.h},Us.prototype.end=function(){var I=this.g,x=this.h;return this.h=0,Pl(I,0,x)};function Wa(I,x){for(;127<x;)Oo(I,x&127|128),x>>>=7;Oo(I,x)}function Xl(I){var x={},ae=x.N===void 0?!1:x.N;this.m={u:x.u===void 0?!1:x.u},this.N=ae,x=this.m,Ql.length?(ae=Ql.pop(),x&&(ae.u=x.u),I&&fl(ae,I),I=ae):I=new la(I,x),this.g=I,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Xl.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function ms(I){var x=I.g;if((x=x.g==x.i)||(x=I.j)||(x=I.g,x=x.l||0>x.g||x.g>x.i),x)return!1;I.l=I.g.g;var ae=I.g.j();return x=ae>>>3,ae&=7,0<=ae&&5>=ae?(I.i=x,I.h=ae,!0):(I.j=!0,Ed(ae,I.l),!1)}function _o(I){switch(I.h){case 0:if(I.h!=0)_o(I);else e:{I=I.g;for(var x=I.g,ae=0;10>ae;ae++){if(!(I.h[x]&128)){I.g=x+1,Wo(I);break e}x++}I.l=!0,ac()}break;case 1:I=I.g,I.g+=8,Wo(I);break;case 2:I.h!=2?_o(I):(x=I.g.j(),I=I.g,I.g+=x,Wo(I));break;case 5:I=I.g,I.g+=4,Wo(I);break;case 3:x=I.i;do{if(!ms(I)){I.j=!0,Ks(Error("Unmatched start-group tag: stream EOF"));break}if(I.h==4){I.i!=x&&(I.j=!0,Ks(Error("Unmatched end-group tag")));break}_o(I)}while(!0);break;default:I.j=!0,Ed(I.h,I.l)}}function md(I,x,ae){I.N||(I=Pl(I.g.h,ae,I.g.g),(ae=x.o)?ae.push(I):x.o=[I])}function Gs(I,x,ae){var U=I.g.i,M=I.g.j(),O=I.g.g+M;if(I.g.i=O,ae(x,I),ae=O-I.g.g,ae!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(M+" bytes, instead read "+(M-ae)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return I.g.g=O,I.g.i=U,x}function ad(I,x,ae){var U=I.g.j();for(U=I.g.g+U;I.g.g<U;)ae.push(x.call(I.g))}var bd=[];function ko(){this.h=[],this.i=0,this.g=new Us}function Ul(I,x){x.length!==0&&(I.h.push(x),I.i+=x.length)}function wo(I,x,ae){Wa(I.g,8*x+2),Wa(I.g,ae.length),Ul(I,I.g.end()),Ul(I,ae)}var io=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function kl(I,x){Object.isFrozen(I)||(io?I[io]|=x:I.g!==void 0?I.g|=x:Object.defineProperties(I,{g:{value:x,configurable:!0,writable:!0,enumerable:!1}}))}function Oa(I){if(!I)return 0;var x;return io?x=I[io]:x=I.g,x??0}function Ca(I){return Array.isArray(I)&&kl(I,1),I}function zs(I){if(!Array.isArray(I))throw Error("cannot mark non-array as immutable");kl(I,2)}function Ro(I){return I!==null&&typeof I=="object"&&I.constructor===Object}function Yi(I){switch(typeof I){case"number":return isFinite(I)?I:String(I);case"object":return Qs&&I!=null&&I instanceof Uint8Array?wd(I):I;default:return I}}function mi(I,x){if(I!=null)return Array.isArray(I)||Ro(I)?ao(I,x):x(I)}function ao(I,x){if(Array.isArray(I)){for(var ae=Array(I.length),U=0;U<I.length;U++)ae[U]=mi(I[U],x);return Oa(I)&1&&Ca(ae),ae}ae={};for(U in I)ae[U]=mi(I[U],x);return ae}var On;function lr(I,x,ae){var U=On;On=null,I||(I=U),U=this.constructor.ba,I||(I=U?[U]:[]),this.j=(U?0:-1)-(this.constructor.$||0),this.m=this.g=null,this.h=I;e:{if(U=this.h.length,I=U-1,U&&(U=this.h[I],Ro(U))){this.l=I-this.j,this.i=U;break e}x!==void 0&&-1<x?(this.l=Math.max(x,I+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(ae)for(x=0;x<ae.length;x++)I=ae[x],I<this.l?(I+=this.j,(U=this.h[I])?Ca(U):this.h[I]=Lr):(Ua(this),(U=this.i[I])?Ca(U):this.i[I]=Lr)}var Lr=Object.freeze(Ca([]));function Ua(I){var x=I.l+I.j;I.h[x]||(I.i=I.h[x]={})}function Ii(I,x,ae){return x===-1?null:ae!==void 0&&ae||x>=I.l?I.i?I.i[x]:void 0:I.h[x+I.j]}function ri(I,x,ae){ae=ae===void 0?!0:ae;var U=U===void 0?!1:U,M=Ii(I,x,U);return M==null&&(M=Lr),M===Lr?(M=Ca([]),Xa(I,x,M,U)):ae&&Array.isArray(M)&&Oa(M)&2&&(M=M.slice(),Xa(I,x,M,U)),M}function Ta(I){var x=ri(I,3,!1);if(I.m||(I.m={}),!I.m[3]){for(var ae=0;ae<x.length;ae++)x[ae]=+x[ae];I.m[3]=!0}return x}function vo(I,x,ae){return I=Ii(I,x),I??ae}function Yo(I,x,ae){return I=Ii(I,x),I=I==null?I:+I,I??(ae===void 0?0:ae)}function Xa(I,x,ae,U){U!==void 0&&U||x>=I.l?(Ua(I),I.i[x]=ae):I.h[x+I.j]=ae}function Rs(I,x,ae){if(ae===-1)return null;I.g||(I.g={});var U=I.g[ae];if(U)return U;var M=Ii(I,ae,!1);return M==null?U:(x=new x(M),I.g[ae]=x)}function Yd(I,x,ae){I.g||(I.g={});var U=I.g[ae];if(!U){var M=ri(I,ae,!1);U=[];for(var O=Array.isArray(M)?!!(Oa(M)&2):!1,fe=0;fe<M.length;fe++)U[fe]=new x(M[fe]),O&&zs(U[fe].h);O&&(zs(U),Object.freeze(U)),I.g[ae]=U}return U}function od(I,x,ae,U,M){var O=Yd(I,U,x);ae=ae||new U,I=ri(I,x),M!=null?(O.splice(M,0,ae),I.splice(M,0,Bs(ae))):(O.push(ae),I.push(Bs(ae)))}lr.prototype.toJSON=function(){var I=Bs(this);return ao(I,Yi)};function Bs(I){if(I.g)for(var x in I.g){var ae=I.g[x];if(Array.isArray(ae))for(var U=0;U<ae.length;U++)ae[U]&&Bs(ae[U]);else ae&&Bs(ae)}return I.h}lr.prototype.toString=function(){return Bs(this).toString()};function js(I,x){if(I=I.o){Ul(x,x.g.end());for(var ae=0;ae<I.length;ae++)Ul(x,I[ae])}}function ld(I){var x=I[0];switch(I.length){case 2:var ae=I[1];return function(pt,vt,nn){return x(pt,vt,nn,ae)};case 3:var U=I[1],M=I[2];return function(pt,vt,nn){return x(pt,vt,nn,U,M)};case 4:var O=I[1],fe=I[2],je=I[3];return function(pt,vt,nn){return x(pt,vt,nn,O,fe,je)};default:throw Error("unsupported number of parameters, expected [2-4], got "+I.length)}}function Rl(I,x,ae){for(;ms(x)&&x.h!=4;){var U=x.i,M=ae[U];if(M){if(Array.isArray(M)&&(M=ae[U]=ld(M)),!M(x,I,U)){U=x,M=I;var O=U.l;_o(U),md(U,M,O)}}else U=x,M=I,O=U.l,_o(U),md(U,M,O)}return I}function Zs(I,x){var ae=new ko;if(x(I,ae),I=ae.i+ae.g.length(),I===0)ae=new Uint8Array(0);else{I=new Uint8Array(I);for(var U=ae.h,M=U.length,O=x=0;O<M;O++){var fe=U[O];fe.length!==0&&(I.set(fe,x),x+=fe.length)}U=ae.g,M=U.h,M!==0&&(I.set(U.g.subarray(0,M),x),U.h=0),ae.h=[I],ae=I}return ae}function $c(I,x,ae){if(bd.length){var U=bd.pop();I&&(fl(U.g,I),U.i=-1,U.h=-1),I=U}else I=new Xl(I);try{return ae(new x,I)}finally{x=I.g,x.h=null,x.m=0,x.i=0,x.g=0,x.l=!1,x.u=!1,I.i=-1,I.h=-1,I.j=!1,100>bd.length&&bd.push(I)}}function Is(I,x,ae){if(x=Ii(x,ae),x!=null){Wa(I.g,8*ae+5),I=I.g;var U=x;U=(ae=0>U?1:0)?-U:U,U===0?0<1/U?Ha=Xo=0:(Xo=0,Ha=2147483648):isNaN(U)?(Xo=0,Ha=2147483647):34028234663852886e22<U?(Xo=0,Ha=(ae<<31|2139095040)>>>0):11754943508222875e-54>U?(U=Math.round(U/Math.pow(2,-149)),Xo=0,Ha=(ae<<31|U)>>>0):(x=Math.floor(Math.log(U)/Math.LN2),U*=Math.pow(2,-x),U=Math.round(8388608*U),16777216<=U&&++x,Xo=0,Ha=(ae<<31|x+127<<23|U&8388607)>>>0),ae=Ha,Oo(I,ae>>>0&255),Oo(I,ae>>>8&255),Oo(I,ae>>>16&255),Oo(I,ae>>>24&255)}}function Sl(I,x,ae){return I.h!==5?!1:(Xa(x,ae,I.g.o()),!0)}function yd(I,x,ae){return I.h!==5&&I.h!==2?!1:(x=ri(x,ae),I.h==2?ad(I,la.prototype.o,x):x.push(I.g.o()),!0)}function Dd(I,x,ae){return I.h!==0?!1:(Xa(x,ae,xa(I.g)),!0)}function zl(I,x,ae){return I.h!==0?!1:(Xa(x,ae,I.g.j()),!0)}function Ic(I,x,ae){if(I.h!==2)return!1;var U=I.g.j();I=I.g;var M=I.g;I.g+=U,Wo(I),I=I.h;var O;if(Ps)(O=bc)||(O=bc=new TextDecoder("utf-8",{fatal:!1})),O=O.decode(I.subarray(M,M+U));else{U=M+U;for(var fe=[],je=null,pt,vt,nn;M<U;)pt=I[M++],128>pt?fe.push(pt):224>pt?M>=U?fe.push(65533):(vt=I[M++],194>pt||(vt&192)!==128?(M--,fe.push(65533)):fe.push((pt&31)<<6|vt&63)):240>pt?M>=U-1?fe.push(65533):(vt=I[M++],(vt&192)!==128||pt===224&&160>vt||pt===237&&160<=vt||((O=I[M++])&192)!==128?(M--,fe.push(65533)):fe.push((pt&15)<<12|(vt&63)<<6|O&63)):244>=pt?M>=U-2?fe.push(65533):(vt=I[M++],(vt&192)!==128||(pt<<28)+(vt-144)>>30||((O=I[M++])&192)!==128||((nn=I[M++])&192)!==128?(M--,fe.push(65533)):(pt=(pt&7)<<18|(vt&63)<<12|(O&63)<<6|nn&63,pt-=65536,fe.push((pt>>10&1023)+55296,(pt&1023)+56320))):fe.push(65533),8192<=fe.length&&(je=Xd(je,fe),fe.length=0);O=Xd(je,fe)}return Xa(x,ae,O),!0}function Cs(I,x,ae,U,M){if(I.h!==2)return!1;I=Gs(I,new U,M);var O=O===void 0?!1:O;return x.g||(x.g={}),U=I&&Bs(I),x.g[ae]=I,Xa(x,ae,U,O),!0}function Fd(I,x,ae,U,M){return I.h!==2?!1:(I=Gs(I,new U,M),od(x,ae,I,U,void 0),!0)}function zd(I,x,ae){return I.h!==0&&I.h!==2?!1:(x=ri(x,ae),I.h==2?ad(I,la.prototype.j,x):x.push(I.g.j()),!0)}function Mc(I,x,ae){return I.h!==0?!1:(Xa(x,ae,xa(I.g)),!0)}function Js(I){lr.call(this,I,-1,Fu)}var jd;Jr(Js,lr),Js.prototype.getRows=function(){return Ii(this,1)},Js.prototype.getCols=function(){return Ii(this,2)},Js.prototype.getPackedDataList=function(){return Ta(this)},Js.prototype.getLayout=function(){return vo(this,4,0)};function yu(I,x){return Rl(I,x,jd||(jd={1:zl,2:zl,3:yd,4:Mc}))}var Fu=[3];function _d(I){lr.call(this,I)}var lc;Jr(_d,lr);function ue(I,x){var ae=Ii(I,1);if(ae!=null&&ae!=null){Wa(x.g,8);var U=x.g;if(0<=ae)Wa(U,ae);else{for(var M=0;9>M;M++)Oo(U,ae&127|128),ae>>=7;Oo(U,1)}}Is(x,I,2),U=Ii(I,3),U!=null&&wo(x,3,oc(U)),U=Ii(I,4),U!=null&&wo(x,4,oc(U)),js(I,x)}function Te(I,x){return Rl(I,x,lc||(lc={1:zl,2:Sl,3:Ic,4:Ic}))}function ke(I){lr.call(this,I,-1,ur)}var xt;Jr(ke,lr),ke.prototype.addClassification=function(I,x){return od(this,1,I,_d,x),this};function vn(I,x){return Rl(I,x,xt||(xt={1:[Fd,_d,Te]}))}var ur=[1];function Zn(I){lr.call(this,I)}var ir;Jr(Zn,lr);function Nr(I,x){Is(x,I,1),Is(x,I,2),Is(x,I,3),Is(x,I,4),Is(x,I,5),js(I,x)}function Ai(I,x){return Rl(I,x,ir||(ir={1:Sl,2:Sl,3:Sl,4:Sl,5:Sl}))}function ra(I){lr.call(this,I,-1,zi)}var Ki;Jr(ra,lr);function Ya(I,x){return Rl(I,x,Ki||(Ki={1:[Fd,Zn,Ai]}))}var zi=[1];function Bi(I){lr.call(this,I)}var qi;Jr(Bi,lr);function ka(I,x){Is(x,I,1),Is(x,I,2),Is(x,I,3),Is(x,I,4),Is(x,I,5);var ae=Ii(I,6);if(ae!=null&&ae!=null){Wa(x.g,48);var U=x.g,M=ae;ae=0>M,M=Math.abs(M);var O=M>>>0;for(M=Math.floor((M-O)/4294967296),M>>>=0,ae&&(M=~M>>>0,O=(~O>>>0)+1,4294967295<O&&(O=0,M++,4294967295<M&&(M=0))),Ha=O,Xo=M,ae=Ha,O=Xo;0<O||127<ae;)Oo(U,ae&127|128),ae=(ae>>>7|O<<25)>>>0,O>>>=7;Oo(U,ae)}js(I,x)}function uo(I,x){return Rl(I,x,qi||(qi={1:Sl,2:Sl,3:Sl,4:Sl,5:Sl,6:Dd}))}function Bo(I){lr.call(this,I,-1,re)}var No;Jr(Bo,lr),Bo.prototype.getVertexType=function(){return vo(this,1,0)},Bo.prototype.getPrimitiveType=function(){return vo(this,2,0)},Bo.prototype.getVertexBufferList=function(){return Ta(this)},Bo.prototype.getIndexBufferList=function(){return ri(this,4)};function Wl(I,x){return Rl(I,x,No||(No={1:Mc,2:Mc,3:yd,4:zd}))}var re=[3,4];function be(I){lr.call(this,I)}var Ze;Jr(be,lr),be.prototype.getMesh=function(){return Rs(this,Bo,1)},be.prototype.getPoseTransformMatrix=function(){return Rs(this,Js,2)};function Et(I,x){return Rl(I,x,Ze||(Ze={1:[Cs,Bo,Wl],2:[Cs,Js,yu]}))}var an=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],Xn=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],ln=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],Hn=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],pr=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],D=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],Ie=[].concat(kt(an),kt(Xn),kt(ln),kt(Hn),kt(pr),kt(D));function De(I,x,ae){if(ae=I.createShader(ae===0?I.VERTEX_SHADER:I.FRAGMENT_SHADER),I.shaderSource(ae,x),I.compileShader(ae),!I.getShaderParameter(ae,I.COMPILE_STATUS))throw Error(`Could not compile WebGL shader. `+I.getShaderInfoLog(ae));return ae}function gt(I){return Yd(I,_d,1).map(function(x){return{index:vo(x,1,0),score:Yo(x,2),label:Ii(x,3)!=null?vo(x,3,""):void 0,displayName:Ii(x,4)!=null?vo(x,4,""):void 0}})}function wt(I){return{x:Yo(I,1),y:Yo(I,2),z:Yo(I,3),visibility:Ii(I,4)!=null?Yo(I,4):void 0}}function sn(I){return Yd($c(I,ra,Ya),Zn,1).map(wt)}function rn(I,x){this.h=I,this.g=x,this.l=0}function $n(I,x,ae){return Ln(I,x),typeof I.g.canvas.transferToImageBitmap=="function"?a.resolve(I.g.canvas.transferToImageBitmap()):ae?a.resolve(I.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(I.g.canvas):(I.i===void 0&&(I.i=document.createElement("canvas")),new a(function(U){I.i.height=I.g.canvas.height,I.i.width=I.g.canvas.width,I.i.getContext("2d",{}).drawImage(I.g.canvas,0,0,I.g.canvas.width,I.g.canvas.height),U(I.i)}))}function Ln(I,x){var ae=I.g;if(I.m===void 0){var U=De(ae,` attribute vec2 aVertex; attribute vec2 aTex; varying vec2 vTex; void main(void) { gl_Position = vec4(aVertex, 0.0, 1.0); vTex = aTex; }`,0),M=De(ae,` precision mediump float; varying vec2 vTex; uniform sampler2D sampler0; void main(){ gl_FragColor = texture2D(sampler0, vTex); }`,1),O=ae.createProgram();if(ae.attachShader(O,U),ae.attachShader(O,M),ae.linkProgram(O),!ae.getProgramParameter(O,ae.LINK_STATUS))throw Error(`Could not compile WebGL program. `+ae.getProgramInfoLog(O));U=I.m=O,ae.useProgram(U),M=ae.getUniformLocation(U,"sampler0"),I.j={I:ae.getAttribLocation(U,"aVertex"),H:ae.getAttribLocation(U,"aTex"),ca:M},I.s=ae.createBuffer(),ae.bindBuffer(ae.ARRAY_BUFFER,I.s),ae.enableVertexAttribArray(I.j.I),ae.vertexAttribPointer(I.j.I,2,ae.FLOAT,!1,0,0),ae.bufferData(ae.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),ae.STATIC_DRAW),ae.bindBuffer(ae.ARRAY_BUFFER,null),I.o=ae.createBuffer(),ae.bindBuffer(ae.ARRAY_BUFFER,I.o),ae.enableVertexAttribArray(I.j.H),ae.vertexAttribPointer(I.j.H,2,ae.FLOAT,!1,0,0),ae.bufferData(ae.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),ae.STATIC_DRAW),ae.bindBuffer(ae.ARRAY_BUFFER,null),ae.uniform1i(M,0)}U=I.j,ae.useProgram(I.m),ae.canvas.width=x.width,ae.canvas.height=x.height,ae.viewport(0,0,x.width,x.height),ae.activeTexture(ae.TEXTURE0),I.h.bindTexture2d(x.glName),ae.enableVertexAttribArray(U.I),ae.bindBuffer(ae.ARRAY_BUFFER,I.s),ae.vertexAttribPointer(U.I,2,ae.FLOAT,!1,0,0),ae.enableVertexAttribArray(U.H),ae.bindBuffer(ae.ARRAY_BUFFER,I.o),ae.vertexAttribPointer(U.H,2,ae.FLOAT,!1,0,0),ae.bindFramebuffer(ae.DRAW_FRAMEBUFFER?ae.DRAW_FRAMEBUFFER:ae.FRAMEBUFFER,null),ae.clearColor(0,0,0,0),ae.clear(ae.COLOR_BUFFER_BIT),ae.colorMask(!0,!0,!0,!0),ae.drawArrays(ae.TRIANGLE_FAN,0,4),ae.disableVertexAttribArray(U.I),ae.disableVertexAttribArray(U.H),ae.bindBuffer(ae.ARRAY_BUFFER,null),I.h.bindTexture2d(0)}function Xr(I){this.g=I}var ii=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function aa(I,x){return x+I}function pi(I,x){window[I]=x}function Ir(I){var x=document.createElement("script");return x.setAttribute("src",I),x.setAttribute("crossorigin","anonymous"),new a(function(ae){x.addEventListener("load",function(){ae()},!1),x.addEventListener("error",function(){ae()},!1),document.body.appendChild(x)})}function ai(){return Tr(function(I){switch(I.g){case 1:return I.m=2,Tn(I,WebAssembly.instantiate(ii),4);case 4:I.g=3,I.m=0;break;case 2:return I.m=0,I.j=null,I.return(!1);case 3:return I.return(!0)}})}function bi(I){if(this.g=I,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=a.resolve(),this.P="",this.B={},this.locateFile=I&&I.locateFile||aa,typeof window=="object")var x=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location<"u")x=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=x,I.options){x=ft(Object.keys(I.options));for(var ae=x.next();!ae.done;ae=x.next()){ae=ae.value;var U=I.options[ae].default;U!==void 0&&(this.j[ae]=typeof U=="function"?U():U)}}}G=bi.prototype,G.close=function(){return this.i&&this.i.delete(),a.resolve()};function vi(I){var x,ae,U,M,O,fe,je,pt,vt,nn,bn;return Tr(function(wn){switch(wn.g){case 1:return I.R?(x=I.g.files===void 0?[]:typeof I.g.files=="function"?I.g.files(I.j):I.g.files,Tn(wn,ai(),2)):wn.return();case 2:if(ae=wn.h,typeof window=="object")return pi("createMediapipeSolutionsWasm",{locateFile:I.locateFile}),pi("createMediapipeSolutionsPackedAssets",{locateFile:I.locateFile}),fe=x.filter(function(Yn){return Yn.data!==void 0}),je=x.filter(function(Yn){return Yn.data===void 0}),pt=a.all(fe.map(function(Yn){var fr=Ue(I,Yn.url);if(Yn.path!==void 0){var Cr=Yn.path;fr=fr.then(function(Vr){return I.overrideFile(Cr,Vr),a.resolve(Vr)})}return fr})),vt=a.all(je.map(function(Yn){return Yn.simd===void 0||Yn.simd&&ae||!Yn.simd&&!ae?Ir(I.locateFile(Yn.url,I.S)):a.resolve()})).then(function(){var Yn,fr,Cr;return Tr(function(Vr){if(Vr.g==1)return Yn=window.createMediapipeSolutionsWasm,fr=window.createMediapipeSolutionsPackedAssets,Cr=I,Tn(Vr,Yn(fr),2);Cr.h=Vr.h,Vr.g=0})}),nn=function(){return Tr(function(Yn){return I.g.graph&&I.g.graph.url?Yn=Tn(Yn,Ue(I,I.g.graph.url),0):(Yn.g=0,Yn=void 0),Yn})}(),Tn(wn,a.all([vt,pt,nn]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return U=x.filter(function(Yn){return Yn.simd===void 0||Yn.simd&&ae||!Yn.simd&&!ae}).map(function(Yn){return I.locateFile(Yn.url,I.S)}),importScripts.apply(null,kt(U)),M=I,Tn(wn,createMediapipeSolutionsWasm(Module),6);case 6:M.h=wn.h,I.l=new OffscreenCanvas(1,1),I.h.canvas=I.l,O=I.h.GL.createContext(I.l,{antialias:!1,alpha:!1,aa:typeof WebGL2RenderingContext<"u"?2:1}),I.h.GL.makeContextCurrent(O),wn.g=4;break;case 7:if(I.l=document.createElement("canvas"),bn=I.l.getContext("webgl2",{}),!bn&&(bn=I.l.getContext("webgl",{}),!bn))return alert("Failed to create WebGL canvas context when passing video frame."),wn.return();I.D=bn,I.h.canvas=I.l,I.h.createContext(I.l,!0,!0,{});case 4:I.i=new I.h.SolutionWasm,I.R=!1,wn.g=0}})}function Xi(I){var x,ae,U,M,O,fe,je,pt;return Tr(function(vt){if(vt.g==1){if(I.g.graph&&I.g.graph.url&&I.P===I.g.graph.url)return vt.return();if(I.o=!0,!I.g.graph||!I.g.graph.url){vt.g=2;return}return I.P=I.g.graph.url,Tn(vt,Ue(I,I.g.graph.url),3)}for(vt.g!=2&&(x=vt.h,I.i.loadGraph(x)),ae=ft(Object.keys(I.B)),U=ae.next();!U.done;U=ae.next())M=U.value,I.i.overrideFile(M,I.B[M]);if(I.B={},I.g.listeners)for(O=ft(I.g.listeners),fe=O.next();!fe.done;fe=O.next())je=fe.value,Yt(I,je);pt=I.j,I.j={},I.setOptions(pt),vt.g=0})}G.reset=function(){var I=this;return Tr(function(x){I.i&&(I.i.reset(),I.m={},I.s={}),x.g=0})},G.setOptions=function(I,x){var ae=this;if(x=x||this.g.options){for(var U=[],M=[],O={},fe=ft(Object.keys(I)),je=fe.next();!je.done;O={K:O.K,L:O.L},je=fe.next()){var pt=je.value;pt in this.j&&this.j[pt]===I[pt]||(this.j[pt]=I[pt],je=x[pt],je!==void 0&&(je.onChange&&(O.K=je.onChange,O.L=I[pt],U.push(function(vt){return function(){var nn;return Tr(function(bn){if(bn.g==1)return Tn(bn,vt.K(vt.L),2);nn=bn.h,nn===!0&&(ae.o=!0),bn.g=0})}}(O))),je.graphOptionXref&&(pt={valueNumber:je.type===1?I[pt]:0,valueBoolean:je.type===0?I[pt]:!1,valueString:je.type===2?I[pt]:""},je=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),je.graphOptionXref),pt),M.push(je))))}(U.length!==0||M.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(M),this.v=(this.v===void 0?[]:this.v).concat(U))}};function L(I){var x,ae,U,M,O,fe,je;return Tr(function(pt){switch(pt.g){case 1:if(!I.o)return pt.return();if(!I.v){pt.g=2;break}x=ft(I.v),ae=x.next();case 3:if(ae.done){pt.g=5;break}return U=ae.value,Tn(pt,U(),4);case 4:ae=x.next(),pt.g=3;break;case 5:I.v=void 0;case 2:if(I.A){for(M=new I.h.GraphOptionChangeRequestList,O=ft(I.A),fe=O.next();!fe.done;fe=O.next())je=fe.value,M.push_back(je);I.i.changeOptions(M),M.delete(),I.A=void 0}I.o=!1,pt.g=0}})}G.initialize=function(){var I=this;return Tr(function(x){return x.g==1?Tn(x,vi(I),2):x.g!=3?Tn(x,Xi(I),3):Tn(x,L(I),0)})};function Ue(I,x){var ae,U;return Tr(function(M){return x in I.F?M.return(I.F[x]):(ae=I.locateFile(x,""),U=fetch(ae).then(function(O){return O.arrayBuffer()}),I.F[x]=U,M.return(U))})}G.overrideFile=function(I,x){this.i?this.i.overrideFile(I,x):this.B[I]=x},G.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},G.send=function(I,x){var ae=this,U,M,O,fe,je,pt,vt,nn,bn;return Tr(function(wn){switch(wn.g){case 1:return ae.g.inputs?(U=1e3*(x??performance.now()),Tn(wn,ae.C,2)):wn.return();case 2:return Tn(wn,ae.initialize(),3);case 3:for(M=new ae.h.PacketDataList,O=ft(Object.keys(I)),fe=O.next();!fe.done;fe=O.next())if(je=fe.value,pt=ae.g.inputs[je]){e:{var Yn=I[je];switch(pt.type){case"video":var fr=ae.m[pt.stream];if(fr||(fr=new rn(ae.h,ae.D),ae.m[pt.stream]=fr),fr.l===0&&(fr.l=fr.h.createTexture()),typeof HTMLVideoElement<"u"&&Yn instanceof HTMLVideoElement)var Cr=Yn.videoWidth,Vr=Yn.videoHeight;else typeof HTMLImageElement<"u"&&Yn instanceof HTMLImageElement?(Cr=Yn.naturalWidth,Vr=Yn.naturalHeight):(Cr=Yn.width,Vr=Yn.height);Vr={glName:fr.l,width:Cr,height:Vr},Cr=fr.g,Cr.canvas.width=Vr.width,Cr.canvas.height=Vr.height,Cr.activeTexture(Cr.TEXTURE0),fr.h.bindTexture2d(fr.l),Cr.texImage2D(Cr.TEXTURE_2D,0,Cr.RGBA,Cr.RGBA,Cr.UNSIGNED_BYTE,Yn),fr.h.bindTexture2d(0),fr=Vr;break e;case"detections":for(fr=ae.m[pt.stream],fr||(fr=new Xr(ae.h),ae.m[pt.stream]=fr),fr.data||(fr.data=new fr.g.DetectionListData),fr.data.reset(Yn.length),Vr=0;Vr<Yn.length;++Vr){Cr=Yn[Vr];var _r=fr.data,jr=_r.setBoundingBox,ya=Vr,oo=Cr.T,lo=new Bi;if(Xa(lo,1,oo.X),Xa(lo,2,oo.Y),Xa(lo,3,oo.height),Xa(lo,4,oo.width),Xa(lo,5,oo.rotation),Xa(lo,6,oo.W),oo=Zs(lo,ka),jr.call(_r,ya,oo),Cr.O)for(_r=0;_r<Cr.O.length;++_r){lo=Cr.O[_r];var wl=!!lo.visibility;jr=fr.data,ya=jr.addNormalizedLandmark,oo=Vr,lo=Object.assign(Object.assign({},lo),{visibility:wl?lo.visibility:0}),wl=new Zn,Xa(wl,1,lo.x),Xa(wl,2,lo.y),Xa(wl,3,lo.z),lo.visibility&&Xa(wl,4,lo.visibility),lo=Zs(wl,Nr),ya.call(jr,oo,lo)}if(Cr.M)for(_r=0;_r<Cr.M.length;++_r)jr=fr.data,ya=jr.addClassification,oo=Vr,lo=Cr.M[_r],wl=new _d,Xa(wl,2,lo.score),lo.index&&Xa(wl,1,lo.index),lo.label&&Xa(wl,3,lo.label),lo.displayName&&Xa(wl,4,lo.displayName),lo=Zs(wl,ue),ya.call(jr,oo,lo)}fr=fr.data;break e;default:fr={}}}switch(vt=fr,nn=pt.stream,pt.type){case"video":M.pushTexture2d(Object.assign(Object.assign({},vt),{stream:nn,timestamp:U}));break;case"detections":bn=vt,bn.stream=nn,bn.timestamp=U,M.pushDetectionList(bn);break;default:throw Error("Unknown input config type: '"+pt.type+"'")}}return ae.i.send(M),Tn(wn,ae.C,4);case 4:M.delete(),wn.g=0}})};function Me(I,x,ae){var U,M,O,fe,je,pt,vt,nn,bn,wn,Yn,fr,Cr,Vr;return Tr(function(_r){switch(_r.g){case 1:if(!ae)return _r.return(x);for(U={},M=0,O=ft(Object.keys(ae)),fe=O.next();!fe.done;fe=O.next())je=fe.value,pt=ae[je],typeof pt!="string"&&pt.type==="texture"&&x[pt.stream]!==void 0&&++M;1<M&&(I.G=!1),vt=ft(Object.keys(ae)),fe=vt.next();case 2:if(fe.done){_r.g=4;break}if(nn=fe.value,bn=ae[nn],typeof bn=="string")return Cr=U,Vr=nn,Tn(_r,lt(I,nn,x[bn]),14);if(wn=x[bn.stream],bn.type==="detection_list"){if(wn){for(var jr=wn.getRectList(),ya=wn.getLandmarksList(),oo=wn.getClassificationsList(),lo=[],wl=0;wl<jr.size();++wl){var Wd=$c(jr.get(wl),Bi,uo);Wd={T:{X:Yo(Wd,1),Y:Yo(Wd,2),height:Yo(Wd,3),width:Yo(Wd,4),rotation:Yo(Wd,5,0),W:vo(Wd,6,0)},O:sn(ya.get(wl)),M:gt($c(oo.get(wl),ke,vn))},lo.push(Wd)}jr=lo}else jr=[];U[nn]=jr,_r.g=7;break}if(bn.type==="proto_list"){if(wn){for(jr=Array(wn.size()),ya=0;ya<wn.size();ya++)jr[ya]=wn.get(ya);wn.delete()}else jr=[];U[nn]=jr,_r.g=7;break}if(wn===void 0){_r.g=3;break}if(bn.type==="float_list"){U[nn]=wn,_r.g=7;break}if(bn.type==="proto"){U[nn]=wn,_r.g=7;break}if(bn.type!=="texture")throw Error("Unknown output config type: '"+bn.type+"'");return Yn=I.s[nn],Yn||(Yn=new rn(I.h,I.D),I.s[nn]=Yn),Tn(_r,$n(Yn,wn,I.G),13);case 13:fr=_r.h,U[nn]=fr;case 7:bn.transform&&U[nn]&&(U[nn]=bn.transform(U[nn])),_r.g=3;break;case 14:Cr[Vr]=_r.h;case 3:fe=vt.next(),_r.g=2;break;case 4:return _r.return(U)}})}function lt(I,x,ae){var U;return Tr(function(M){return typeof ae=="number"||ae instanceof Uint8Array||ae instanceof I.h.Uint8BlobList?M.return(ae):ae instanceof I.h.Texture2dDataOut?(U=I.s[x],U||(U=new rn(I.h,I.D),I.s[x]=U),M.return($n(U,ae,I.G))):M.return(void 0)})}function Yt(I,x){for(var ae=x.name||"$",U=[].concat(kt(x.wants)),M=new I.h.StringList,O=ft(x.wants),fe=O.next();!fe.done;fe=O.next())M.push_back(fe.value);O=I.h.PacketListener.implement({onResults:function(je){for(var pt={},vt=0;vt<x.wants.length;++vt)pt[U[vt]]=je.get(vt);var nn=I.listeners[ae];nn&&(I.C=Me(I,pt,x.outs).then(function(bn){bn=nn(bn);for(var wn=0;wn<x.wants.length;++wn){var Yn=pt[U[wn]];typeof Yn=="object"&&Yn.hasOwnProperty&&Yn.hasOwnProperty("delete")&&Yn.delete()}bn&&(I.C=bn)}))}}),I.i.attachMultiListener(M,O),M.delete()}G.onResults=function(I,x){this.listeners[x||"$"]=I},Oi("Solution",bi),Oi("OptionType",{BOOL:0,NUMBER:1,Z:2,0:"BOOL",1:"NUMBER",2:"STRING"});function w(I){return I.map(te)}function te(I){I=$c(I,be,Et);var x=I.getMesh();if(!x)return I;var ae=new Float32Array(x.getVertexBufferList());x.getVertexBufferList=function(){return ae};var U=new Uint32Array(x.getIndexBufferList());return x.getIndexBufferList=function(){return U},I}function ye(I){var x=this;I=I||{},this.g=new bi({locateFile:I.locateFile,files:[{url:"holistic_solution_packed_assets_loader.js"},{simd:!1,url:"holistic_solution_wasm_bin.js"},{simd:!0,url:"holistic_solution_simd_wasm_bin.js"}],graph:{url:"holistic.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:"left_hand_landmarks right_hand_landmarks face_landmarks pose_landmarks world_landmarks segmentation_mask image_transformed multi_face_geometry".split(" "),outs:{image:{type:"texture",stream:"image_transformed"},leftHandLandmarks:{type:"proto",stream:"left_hand_landmarks",transform:sn},rightHandLandmarks:{type:"proto",stream:"right_hand_landmarks",transform:sn},faceLandmarks:{type:"proto",stream:"face_landmarks",transform:sn},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:sn},ea:{type:"proto",stream:"world_landmarks",transform:sn},segmentationMask:{type:"texture",stream:"segmentation_mask"},multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:w}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,default:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(ae){var U,M,O,fe;return Tr(function(je){if(je.g==1){switch(U="",ae){case 1:U="pose_landmark_full.tflite";break;case 2:U="pose_landmark_heavy.tflite";break;default:U="pose_landmark_lite.tflite"}return M="third_party/mediapipe/modules/pose_landmark/"+U,O=x.g.locateFile(U,""),Tn(je,fetch(O),3)}return je.g!=2?Tn(je,je.h.arrayBuffer(),2):(fe=je.h,x.g.overrideFile(M,fe),Tn(je,x.g.reset(),0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},refineFaceLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineFaceLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}})}G=ye.prototype,G.close=function(){return this.g.close(),a.resolve()},G.onResults=function(I){this.g.onResults(I)},G.initialize=function(){var I=this;return Tr(function(x){return Tn(x,I.g.initialize(),0)})},G.reset=function(){this.g.reset()},G.send=function(I){var x=this;return Tr(function(ae){return Tn(ae,x.g.send(I),0)})},G.setOptions=function(I){this.g.setOptions(I)},Oi("Holistic",ye),Oi("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),Oi("FACEMESH_LIPS",an),Oi("FACEMESH_LEFT_EYE",Xn),Oi("FACEMESH_LEFT_EYEBROW",ln),Oi("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),Oi("FACEMESH_RIGHT_EYE",Hn),Oi("FACEMESH_RIGHT_EYEBROW",pr),Oi("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),Oi("FACEMESH_FACE_OVAL",D),Oi("FACEMESH_CONTOURS",Ie),Oi("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),Oi("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),Oi("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),Oi("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),Oi("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),Oi("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),Oi("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),Oi("matrixDataToMatrix",function(I){for(var x=I.getCols(),ae=I.getRows(),U=I.getPackedDataList(),M=[],O=0;O<ae;O++)M.push(Array(x));for(O=0;O<ae;O++)for(var fe=0;fe<x;fe++){var je=I.getLayout()===1?O*x+fe:fe*ae+O;M[O][fe]=U[je]}return M}),Oi("VERSION","0.5.1635989137")}).call(At);const bt={};(function(){var G;function Z(w){var te=0;return function(){return te<w.length?{done:!1,value:w[te++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(w,te,ye){return w==Array.prototype||w==Object.prototype||(w[te]=ye.value),w};function se(w){w=[typeof globalThis=="object"&&globalThis,w,typeof window=="object"&&window,typeof self=="object"&&self,typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr)];for(var te=0;te<w.length;++te){var ye=w[te];if(ye&&ye.Math==Math)return ye}throw Error("Cannot find global object")}var Qe=se(this);function et(w,te){if(te)e:{var ye=Qe;w=w.split(".");for(var I=0;I<w.length-1;I++){var x=w[I];if(!(x in ye))break e;ye=ye[x]}w=w[w.length-1],I=ye[w],te=te(I),te!=I&&te!=null&&W(ye,w,{configurable:!0,writable:!0,value:te})}}et("Symbol",function(w){function te(ae){if(this instanceof te)throw new TypeError("Symbol is not a constructor");return new ye(I+(ae||"")+"_"+x++,ae)}function ye(ae,U){this.g=ae,W(this,"description",{configurable:!0,writable:!0,value:U})}if(w)return w;ye.prototype.toString=function(){return this.g};var I="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",x=0;return te}),et("Symbol.iterator",function(w){if(w)return w;w=Symbol("Symbol.iterator");for(var te="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),ye=0;ye<te.length;ye++){var I=Qe[te[ye]];typeof I=="function"&&typeof I.prototype[w]!="function"&&W(I.prototype,w,{configurable:!0,writable:!0,value:function(){return Zt(Z(this))}})}return w});function Zt(w){return w={next:w},w[Symbol.iterator]=function(){return this},w}function ft(w){var te=typeof Symbol<"u"&&Symbol.iterator&&w[Symbol.iterator];return te?te.call(w):{next:Z(w)}}function kt(w){if(!(w instanceof Array)){w=ft(w);for(var te,ye=[];!(te=w.next()).done;)ye.push(te.value);w=ye}return w}var rr=typeof Object.create=="function"?Object.create:function(w){function te(){}return te.prototype=w,new te},gr;if(typeof Object.setPrototypeOf=="function")gr=Object.setPrototypeOf;else{var Wr;e:{var Ui={a:!0},Ci={};try{Ci.__proto__=Ui,Wr=Ci.a;break e}catch{}Wr=!1}gr=Wr?function(w,te){if(w.__proto__=te,w.__proto__!==te)throw new TypeError(w+" is not extensible");return w}:null}var Qr=gr;function Jr(w,te){if(w.prototype=rr(te.prototype),w.prototype.constructor=w,Qr)Qr(w,te);else for(var ye in te)if(ye!="prototype")if(Object.defineProperties){var I=Object.getOwnPropertyDescriptor(te,ye);I&&Object.defineProperty(w,ye,I)}else w[ye]=te[ye];w.na=te.prototype}function $i(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function fa(w){if(w.l)throw new TypeError("Generator is already running");w.l=!0}$i.prototype.s=function(w){this.h=w};function ro(w,te){w.j={da:te,ea:!0},w.g=w.o||w.u}$i.prototype.return=function(w){this.j={return:w},this.g=this.u};function Tn(w,te,ye){return w.g=ye,{value:te}}function ps(w){this.g=new $i,this.h=w}function id(w,te){fa(w.g);var ye=w.g.i;return ye?xo(w,"return"in ye?ye.return:function(I){return{value:I,done:!0}},te,w.g.return):(w.g.return(te),ba(w))}function xo(w,te,ye,I){try{var x=te.call(w.g.i,ye);if(!(x instanceof Object))throw new TypeError("Iterator result "+x+" is not an object");if(!x.done)return w.g.l=!1,x;var ae=x.value}catch(U){return w.g.i=null,ro(w.g,U),ba(w)}return w.g.i=null,I.call(w.g,ae),ba(w)}function ba(w){for(;w.g.g;)try{var te=w.h(w.g);if(te)return w.g.l=!1,{value:te.value,done:!1}}catch(ye){w.g.h=void 0,ro(w.g,ye)}if(w.g.l=!1,w.g.j){if(te=w.g.j,w.g.j=null,te.ea)throw te.da;return{value:te.return,done:!0}}return{value:void 0,done:!0}}function Pd(w){this.next=function(te){return fa(w.g),w.g.i?te=xo(w,w.g.i.next,te,w.g.s):(w.g.s(te),te=ba(w)),te},this.throw=function(te){return fa(w.g),w.g.i?te=xo(w,w.g.i.throw,te,w.g.s):(ro(w.g,te),te=ba(w)),te},this.return=function(te){return id(w,te)},this[Symbol.iterator]=function(){return this}}function za(w){function te(I){return w.next(I)}function ye(I){return w.throw(I)}return new a(function(I,x){function ae(U){U.done?I(U.value):a.resolve(U.value).then(te,ye).then(ae,x)}ae(w.next())})}function Tr(w){return za(new Pd(new ps(w)))}et("Promise",function(w){function te(U){this.h=0,this.i=void 0,this.g=[],this.s=!1;var M=this.j();try{U(M.resolve,M.reject)}catch(O){M.reject(O)}}function ye(){this.g=null}function I(U){return U instanceof te?U:new te(function(M){M(U)})}if(w)return w;ye.prototype.h=function(U){if(this.g==null){this.g=[];var M=this;this.i(function(){M.l()})}this.g.push(U)};var x=Qe.setTimeout;ye.prototype.i=function(U){x(U,0)},ye.prototype.l=function(){for(;this.g&&this.g.length;){var U=this.g;this.g=[];for(var M=0;M<U.length;++M){var O=U[M];U[M]=null;try{O()}catch(fe){this.j(fe)}}}this.g=null},ye.prototype.j=function(U){this.i(function(){throw U})},te.prototype.j=function(){function U(fe){return function(je){O||(O=!0,fe.call(M,je))}}var M=this,O=!1;return{resolve:U(this.D),reject:U(this.l)}},te.prototype.D=function(U){if(U===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(U instanceof te)this.H(U);else{e:switch(typeof U){case"object":var M=U!=null;break e;case"function":M=!0;break e;default:M=!1}M?this.A(U):this.o(U)}},te.prototype.A=function(U){var M=void 0;try{M=U.then}catch(O){this.l(O);return}typeof M=="function"?this.I(M,U):this.o(U)},te.prototype.l=function(U){this.u(2,U)},te.prototype.o=function(U){this.u(1,U)},te.prototype.u=function(U,M){if(this.h!=0)throw Error("Cannot settle("+U+", "+M+"): Promise already settled in state"+this.h);this.h=U,this.i=M,this.h===2&&this.G(),this.B()},te.prototype.G=function(){var U=this;x(function(){if(U.C()){var M=Qe.console;typeof M<"u"&&M.error(U.i)}},1)},te.prototype.C=function(){if(this.s)return!1;var U=Qe.CustomEvent,M=Qe.Event,O=Qe.dispatchEvent;return typeof O>"u"?!0:(typeof U=="function"?U=new U("unhandledrejection",{cancelable:!0}):typeof M=="function"?U=new M("unhandledrejection",{cancelable:!0}):(U=Qe.document.createEvent("CustomEvent"),U.initCustomEvent("unhandledrejection",!1,!0,U)),U.promise=this,U.reason=this.i,O(U))},te.prototype.B=function(){if(this.g!=null){for(var U=0;U<this.g.length;++U)ae.h(this.g[U]);this.g=null}};var ae=new ye;return te.prototype.H=function(U){var M=this.j();U.M(M.resolve,M.reject)},te.prototype.I=function(U,M){var O=this.j();try{U.call(M,O.resolve,O.reject)}catch(fe){O.reject(fe)}},te.prototype.then=function(U,M){function O(vt,nn){return typeof vt=="function"?function(bn){try{fe(vt(bn))}catch(wn){je(wn)}}:nn}var fe,je,pt=new te(function(vt,nn){fe=vt,je=nn});return this.M(O(U,fe),O(M,je)),pt},te.prototype.catch=function(U){return this.then(void 0,U)},te.prototype.M=function(U,M){function O(){switch(fe.h){case 1:U(fe.i);break;case 2:M(fe.i);break;default:throw Error("Unexpected state: "+fe.h)}}var fe=this;this.g==null?ae.h(O):this.g.push(O),this.s=!0},te.resolve=I,te.reject=function(U){return new te(function(M,O){O(U)})},te.race=function(U){return new te(function(M,O){for(var fe=ft(U),je=fe.next();!je.done;je=fe.next())I(je.value).M(M,O)})},te.all=function(U){var M=ft(U),O=M.next();return O.done?I([]):new te(function(fe,je){function pt(bn){return function(wn){vt[bn]=wn,nn--,nn==0&&fe(vt)}}var vt=[],nn=0;do vt.push(void 0),nn++,I(O.value).M(pt(vt.length-1),je),O=M.next();while(!O.done)})},te});function _c(w,te){w instanceof String&&(w+="");var ye=0,I=!1,x={next:function(){if(!I&&ye<w.length){var ae=ye++;return{value:te(ae,w[ae]),done:!1}}return I=!0,{done:!0,value:void 0}}};return x[Symbol.iterator]=function(){return x},x}var Dc=typeof Object.assign=="function"?Object.assign:function(w,te){for(var ye=1;ye<arguments.length;ye++){var I=arguments[ye];if(I)for(var x in I)Object.prototype.hasOwnProperty.call(I,x)&&(w[x]=I[x])}return w};et("Object.assign",function(w){return w||Dc}),et("Object.is",function(w){return w||function(te,ye){return te===ye?te!==0||1/te===1/ye:te!==te&&ye!==ye}}),et("Array.prototype.includes",function(w){return w||function(te,ye){var I=this;I instanceof String&&(I=String(I));var x=I.length;for(ye=ye||0,0>ye&&(ye=Math.max(ye+x,0));ye<x;ye++){var ae=I[ye];if(ae===te||Object.is(ae,te))return!0}return!1}}),et("String.prototype.includes",function(w){return w||function(te,ye){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(te instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(te,ye||0)!==-1}}),et("Array.prototype.keys",function(w){return w||function(){return _c(this,function(te){return te})}});var dl=this||self;function Oi(w,te){w=w.split(".");var ye=dl;w[0]in ye||typeof ye.execScript>"u"||ye.execScript("var "+w[0]);for(var I;w.length&&(I=w.shift());)w.length||te===void 0?ye[I]&&ye[I]!==Object.prototype[I]?ye=ye[I]:ye=ye[I]={}:ye[I]=te}function Fl(){throw Error("Invalid UTF8")}function Ks(w,te){return te=String.fromCharCode.apply(null,te),w==null?te:w+te}var Ed,ac=typeof TextDecoder<"u",Xd,bc=typeof TextEncoder<"u",Ps={},Kl=null;function kd(w){var te;te===void 0&&(te=0),El(),te=Ps[te];for(var ye=Array(Math.floor(w.length/3)),I=te[64]||"",x=0,ae=0;x<w.length-2;x+=3){var U=w[x],M=w[x+1],O=w[x+2],fe=te[U>>2];U=te[(U&3)<<4|M>>4],M=te[(M&15)<<2|O>>6],O=te[O&63],ye[ae++]=fe+U+M+O}switch(fe=0,O=I,w.length-x){case 2:fe=w[x+1],O=te[(fe&15)<<2]||I;case 1:w=w[x],ye[ae]=te[w>>2]+te[(w&3)<<4|fe>>4]+O+I}return ye.join("")}function oc(w){var te=w.length,ye=3*te/4;ye%3?ye=Math.floor(ye):"=.".indexOf(w[te-1])!=-1&&(ye="=.".indexOf(w[te-2])!=-1?ye-2:ye-1);var I=new Uint8Array(ye),x=0;return Sd(w,function(ae){I[x++]=ae}),x!==ye?I.subarray(0,x):I}function Sd(w,te){function ye(O){for(;I<w.length;){var fe=w.charAt(I++),je=Kl[fe];if(je!=null)return je;if(!/^[\s\xa0]*$/.test(fe))throw Error("Unknown base64 encoding at char: "+fe)}return O}El();for(var I=0;;){var x=ye(-1),ae=ye(0),U=ye(64),M=ye(64);if(M===64&&x===-1)break;te(x<<2|ae>>4),U!=64&&(te(ae<<4&240|U>>2),M!=64&&te(U<<6&192|M))}}function El(){if(!Kl){Kl={};for(var w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),te=["+/=","+/","-_=","-_.","-_"],ye=0;5>ye;ye++){var I=w.concat(te[ye].split(""));Ps[ye]=I;for(var x=0;x<I.length;x++){var ae=I[x];Kl[ae]===void 0&&(Kl[ae]=x)}}}}var wd=typeof Uint8Array=="function";function pd(w){return wd&&w!=null&&w instanceof Uint8Array}var Ao;function cl(w){if(this.L=w,w!==null&&w.length===0)throw Error("ByteString should be constructed with non-empty values")}var Qs=typeof Uint8Array.prototype.slice=="function",zo=0,jo=0;function Ns(w,te){if(w.constructor===Uint8Array)return w;if(w.constructor===ArrayBuffer)return new Uint8Array(w);if(w.constructor===Array)return new Uint8Array(w);if(w.constructor===String)return oc(w);if(w.constructor===cl)return!te&&(te=w.L)&&te.constructor===Uint8Array?te:(te=w.L,te=te==null||pd(te)?te:typeof te=="string"?oc(te):null,(w=w.L=te)?new Uint8Array(w):Ao||(Ao=new Uint8Array(0)));if(w instanceof Uint8Array)return new Uint8Array(w.buffer,w.byteOffset,w.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Pl(w,te){return Error("Invalid wire type: "+w+" (at position "+te+")")}function Ha(){return Error("Failed to read varint, encoding is invalid.")}function Xo(w,te){te=te===void 0?{}:te,te=te.v===void 0?!1:te.v,this.h=null,this.g=this.i=this.j=0,this.v=te,w&&ul(this,w)}function ul(w,te){w.h=Ns(te,w.v),w.j=0,w.i=w.h.length,w.g=w.j}Xo.prototype.reset=function(){this.g=this.j};function la(w){if(w.g>w.i)throw Error("Tried to read past the end of the data "+w.g+" > "+w.i)}function fl(w){var te=w.h,ye=te[w.g],I=ye&127;if(128>ye)return w.g+=1,la(w),I;if(ye=te[w.g+1],I|=(ye&127)<<7,128>ye)return w.g+=2,la(w),I;if(ye=te[w.g+2],I|=(ye&127)<<14,128>ye)return w.g+=3,la(w),I;if(ye=te[w.g+3],I|=(ye&127)<<21,128>ye)return w.g+=4,la(w),I;if(ye=te[w.g+4],w.g+=5,I|=(ye&15)<<28,128>ye)return la(w),I;if(128<=te[w.g++]&&128<=te[w.g++]&&128<=te[w.g++]&&128<=te[w.g++]&&128<=te[w.g++])throw Ha();return la(w),I}var xa=[];function Wo(){this.g=[]}Wo.prototype.length=function(){return this.g.length},Wo.prototype.end=function(){var w=this.g;return this.g=[],w};function Ql(w,te){for(;127<te;)w.g.push(te&127|128),te>>>=7;w.g.push(te)}function Us(w){var te={},ye=te.W===void 0?!1:te.W;this.l={v:te.v===void 0?!1:te.v},this.W=ye,te=this.l,xa.length?(ye=xa.pop(),te&&(ye.v=te.v),w&&ul(ye,w),w=ye):w=new Xo(w,te),this.g=w,this.j=this.g.g,this.h=this.i=-1}Us.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function Oo(w){var te=w.g;if(te.g==te.i)return!1;w.j=w.g.g;var ye=fl(w.g)>>>0;if(te=ye>>>3,ye&=7,!(0<=ye&&5>=ye))throw Pl(ye,w.j);if(1>te)throw Error("Invalid field number: "+te+" (at position "+w.j+")");return w.i=te,w.h=ye,!0}function Wa(w){switch(w.h){case 0:if(w.h!=0)Wa(w);else e:{w=w.g;for(var te=w.g,ye=te+10;te<ye;)if(!(w.h[te++]&128)){w.g=te,la(w);break e}throw Ha()}break;case 1:w=w.g,w.g+=8,la(w);break;case 2:w.h!=2?Wa(w):(te=fl(w.g)>>>0,w=w.g,w.g+=te,la(w));break;case 5:w=w.g,w.g+=4,la(w);break;case 3:te=w.i;do{if(!Oo(w))throw Error("Unmatched start-group tag: stream EOF");if(w.h==4){if(w.i!=te)throw Error("Unmatched end-group tag");break}Wa(w)}while(!0);break;default:throw Pl(w.h,w.j)}}var Xl=[];function ms(){this.i=[],this.h=0,this.g=new Wo}function _o(w,te){te.length!==0&&(w.i.push(te),w.h+=te.length)}function md(w,te){if(te=te.ba){_o(w,w.g.end());for(var ye=0;ye<te.length;ye++)_o(w,te[ye])}}var Gs=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function ad(w,te){Object.isFrozen(w)||(Gs?w[Gs]|=te:w.N!==void 0?w.N|=te:Object.defineProperties(w,{N:{value:te,configurable:!0,writable:!0,enumerable:!1}}))}function bd(w){var te;return Gs?te=w[Gs]:te=w.N,te??0}function ko(w){return ad(w,1),w}function Ul(w){return Array.isArray(w)?!!(bd(w)&2):!1}function wo(w){if(!Array.isArray(w))throw Error("cannot mark non-array as immutable");ad(w,2)}function io(w){return w!==null&&typeof w=="object"&&!Array.isArray(w)&&w.constructor===Object}var kl=Object.freeze(ko([]));function Oa(w){if(Ul(w.m))throw Error("Cannot mutate an immutable Message")}var Ca=typeof Symbol<"u"&&typeof Symbol.hasInstance<"u";function zs(w){return{value:w,configurable:!1,writable:!1,enumerable:!1}}function Ro(w,te,ye){return te===-1?null:te>=w.i?w.g?w.g[te]:void 0:ye!==void 0&&ye&&w.g&&(ye=w.g[te],ye!=null)?ye:w.m[te+w.h]}function Yi(w,te,ye,I){I=I===void 0?!1:I,Oa(w),te<w.i&&!I?w.m[te+w.h]=ye:(w.g||(w.g=w.m[w.i+w.h]={}))[te]=ye}function mi(w,te,ye,I){ye=ye===void 0?!0:ye,I=I===void 0?!1:I;var x=Ro(w,te,I);return x==null&&(x=kl),Ul(w.m)?ye&&(wo(x),Object.freeze(x)):(x===kl||Ul(x))&&(x=ko(x.slice()),Yi(w,te,x,I)),x}function ao(w,te,ye){return w=Ro(w,te),w=w==null?w:+w,w??(ye===void 0?0:ye)}function On(w,te,ye,I){w.j||(w.j={});var x=Ul(w.m),ae=w.j[ye];if(!ae){I=mi(w,ye,!0,I===void 0?!1:I),ae=[],x=x||Ul(I);for(var U=0;U<I.length;U++)ae[U]=new te(I[U]),x&&wo(ae[U].m);x&&(wo(ae),Object.freeze(ae)),w.j[ye]=ae}return ae}function lr(w,te,ye,I,x){var ae=ae===void 0?!1:ae;return Oa(w),ae=On(w,ye,te,ae),ye=I||new ye,w=mi(w,te),x!=null?(ae.splice(x,0,ye),w.splice(x,0,ye.m)):(ae.push(ye),w.push(ye.m)),ye}function Lr(w,te){return w=Ro(w,te),w??0}function Ua(w,te){return w=Ro(w,te),w??""}function Ii(w){switch(typeof w){case"number":return isFinite(w)?w:String(w);case"object":if(w&&!Array.isArray(w)){if(pd(w))return kd(w);if(w instanceof cl){var te=w.L;return te=te==null||typeof te=="string"?te:wd&&te instanceof Uint8Array?kd(te):null,(w.L=te)||""}}}return w}function ri(w){var te=Yo;return te=te===void 0?Xa:te,vo(w,te)}function Ta(w,te){if(w!=null){if(Array.isArray(w))w=vo(w,te);else if(io(w)){var ye={},I;for(I in w)ye[I]=Ta(w[I],te);w=ye}else w=te(w);return w}}function vo(w,te){for(var ye=w.slice(),I=0;I<ye.length;I++)ye[I]=Ta(ye[I],te);return Array.isArray(w)&&bd(w)&1&&ko(ye),ye}function Yo(w){return w&&typeof w=="object"&&w.toJSON?w.toJSON():(w=Ii(w),Array.isArray(w)?ri(w):w)}function Xa(w){return pd(w)?new Uint8Array(w):w}function Rs(w,te,ye){w||(w=Yd),Yd=null;var I=this.constructor.h;w||(w=I?[I]:[]),this.h=(I?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=w;e:{if(I=this.m.length,w=I-1,I&&(I=this.m[w],io(I))){this.i=w-this.h,this.g=I;break e}te!==void 0&&-1<te?(this.i=Math.max(te,w+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(ye)for(te=0;te<ye.length;te++)if(w=ye[te],w<this.i)w+=this.h,(I=this.m[w])?Array.isArray(I)&&ko(I):this.m[w]=kl;else{I=this.g||(this.g=this.m[this.i+this.h]={});var x=I[w];x?Array.isArray(x)&&ko(x):I[w]=kl}}Rs.prototype.toJSON=function(){return ri(this.m)},Rs.prototype.toString=function(){return this.m.toString()};var Yd;function od(){Rs.apply(this,arguments)}if(Jr(od,Rs),Ca){var Bs={};Object.defineProperties(od,(Bs[Symbol.hasInstance]=zs(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Bs))}function js(w,te,ye){if(ye){var I={},x;for(x in ye){var ae=ye[x],U=ae.ha;U||(I.F=ae.la||ae.fa.P,ae.aa?(I.U=Dd(ae.aa),U=function(M){return function(O,fe,je){return M.F(O,fe,je,M.U)}}(I)):ae.ca?(I.T=zl(ae.X.g,ae.ca),U=function(M){return function(O,fe,je){return M.F(O,fe,je,M.T)}}(I)):U=I.F,ae.ha=U),U(te,w,ae.X),I={F:I.F,U:I.U,T:I.T}}}md(te,w)}var ld=Symbol();function Rl(w,te,ye){return w[ld]||(w[ld]=function(I,x){return te(I,x,ye)})}function Zs(w){var te=w[ld];if(!te){var ye=ue(w);te=function(I,x){return Te(I,x,ye)},w[ld]=te}return te}function $c(w){var te=w.aa;if(te)return Zs(te);if(te=w.ka)return Rl(w.X.g,te,w.ca)}function Is(w){var te=$c(w),ye=w.X,I=w.fa.O;return te?function(x,ae){return I(x,ae,ye,te)}:function(x,ae){return I(x,ae,ye)}}function Sl(w,te,ye,I,x,ae){w=w();var U=0;for(w.length&&typeof w[0]!="number"&&(ye(te,w[0]),U++);U<w.length;){ye=w[U++];for(var M=U+1;M<w.length&&typeof w[M]!="number";)M++;var O=w[U++];switch(M-=U,M){case 0:I(te,ye,O);break;case 1:I(te,ye,O,w[U++]);break;case 2:x(te,ye,O,w[U++],w[U++]);break;case 3:M=w[U++];var fe=w[U++],je=w[U++];Array.isArray(je)?x(te,ye,O,M,fe,je):ae(te,ye,O,M,fe,je);break;case 4:ae(te,ye,O,w[U++],w[U++],w[U++],w[U++]);break;default:throw Error("unexpected number of binary field arguments: "+M)}}return te}var yd=Symbol();function Dd(w){var te=w[yd];if(!te){var ye=Js(w);te=function(I,x){return xt(I,x,ye)},w[yd]=te}return te}function zl(w,te){var ye=w[yd];return ye||(ye=function(I,x){return js(I,x,te)},w[yd]=ye),ye}var Ic=Symbol();function Cs(w,te){w.push(te)}function Fd(w,te,ye){w.push(te,ye.P)}function zd(w,te,ye,I,x){var ae=Dd(x),U=ye.P;w.push(te,function(M,O,fe){return U(M,O,fe,I,ae)})}function Mc(w,te,ye,I,x,ae){var U=zl(I,ae),M=ye.P;w.push(te,function(O,fe,je){return M(O,fe,je,I,U)})}function Js(w){var te=w[Ic];return te||Sl(w,w[Ic]=[],Cs,Fd,zd,Mc)}var jd=Symbol();function yu(w,te){w[0]=te}function Fu(w,te,ye,I){var x=ye.O;w[te]=I?function(ae,U,M){return x(ae,U,M,I)}:x}function _d(w,te,ye,I,x,ae){var U=ye.O,M=Zs(x);w[te]=function(O,fe,je){return U(O,fe,je,I,M,ae)}}function lc(w,te,ye,I,x,ae,U){var M=ye.O,O=Rl(I,x,ae);w[te]=function(fe,je,pt){return M(fe,je,pt,I,O,U)}}function ue(w){var te=w[jd];return te||Sl(w,w[jd]={},yu,Fu,_d,lc)}function Te(w,te,ye){for(;Oo(te)&&te.h!=4;){var I=te.i,x=ye[I];if(!x){var ae=ye[0];ae&&(ae=ae[I])&&(x=ye[I]=Is(ae))}if((!x||!x(te,w,I))&&(x=te,I=w,ae=x.j,Wa(x),!x.W)){var U=x.g.h;x=x.g.g,x=ae===x?Ao||(Ao=new Uint8Array(0)):Qs?U.slice(ae,x):new Uint8Array(U.subarray(ae,x)),(ae=I.ba)?ae.push(x):I.ba=[x]}}return w}function ke(w,te,ye){if(Xl.length){var I=Xl.pop();w&&(ul(I.g,w),I.i=-1,I.h=-1),w=I}else w=new Us(w);try{return Te(new te,w,ue(ye))}finally{te=w.g,te.h=null,te.j=0,te.i=0,te.g=0,te.v=!1,w.i=-1,w.h=-1,100>Xl.length&&Xl.push(w)}}function xt(w,te,ye){for(var I=ye.length,x=I%2==1,ae=x?1:0;ae<I;ae+=2)(0,ye[ae+1])(te,w,ye[ae]);js(w,te,x?ye[0]:void 0)}function vn(w,te){var ye=new ms;xt(w,ye,Js(te)),_o(ye,ye.g.end()),w=new Uint8Array(ye.h),te=ye.i;for(var I=te.length,x=0,ae=0;ae<I;ae++){var U=te[ae];w.set(U,x),x+=U.length}return ye.i=[w],w}function ur(w,te){return{O:w,P:te}}var Zn=ur(function(w,te,ye){if(w.h!==5)return!1;w=w.g;var I=w.h[w.g],x=w.h[w.g+1],ae=w.h[w.g+2],U=w.h[w.g+3];return w.g+=4,la(w),x=(I<<0|x<<8|ae<<16|U<<24)>>>0,w=2*(x>>31)+1,I=x>>>23&255,x&=8388607,Yi(te,ye,I==255?x?NaN:1/0*w:I==0?w*Math.pow(2,-149)*x:w*Math.pow(2,I-150)*(x+Math.pow(2,23))),!0},function(w,te,ye){if(te=Ro(te,ye),te!=null){Ql(w.g,8*ye+5),w=w.g;var I=te;I=(ye=0>I?1:0)?-I:I,I===0?0<1/I?zo=jo=0:(jo=0,zo=2147483648):isNaN(I)?(jo=0,zo=2147483647):34028234663852886e22<I?(jo=0,zo=(ye<<31|2139095040)>>>0):11754943508222875e-54>I?(I=Math.round(I/Math.pow(2,-149)),jo=0,zo=(ye<<31|I)>>>0):(te=Math.floor(Math.log(I)/Math.LN2),I*=Math.pow(2,-te),I=Math.round(8388608*I),16777216<=I&&++te,jo=0,zo=(ye<<31|te+127<<23|I&8388607)>>>0),ye=zo,w.g.push(ye>>>0&255),w.g.push(ye>>>8&255),w.g.push(ye>>>16&255),w.g.push(ye>>>24&255)}}),ir=ur(function(w,te,ye){if(w.h!==0)return!1;for(var I=w.g,x=128,ae=0,U=w=0;4>U&&128<=x;U++)x=I.h[I.g++],la(I),ae|=(x&127)<<7*U;if(128<=x&&(x=I.h[I.g++],la(I),ae|=(x&127)<<28,w|=(x&127)>>4),128<=x)for(U=0;5>U&&128<=x;U++)x=I.h[I.g++],la(I),w|=(x&127)<<7*U+3;if(128>x)I=ae>>>0,x=w>>>0,(w=x&2147483648)&&(I=~I+1>>>0,x=~x>>>0,I==0&&(x=x+1>>>0)),I=4294967296*x+(I>>>0);else throw Ha();return Yi(te,ye,w?-I:I),!0},function(w,te,ye){if(te=Ro(te,ye),te!=null&&te!=null){Ql(w.g,8*ye),w=w.g;var I=te;for(ye=0>I,I=Math.abs(I),te=I>>>0,I=Math.floor((I-te)/4294967296),I>>>=0,ye&&(I=~I>>>0,te=(~te>>>0)+1,4294967295<te&&(te=0,I++,4294967295<I&&(I=0))),zo=te,jo=I,ye=zo,te=jo;0<te||127<ye;)w.g.push(ye&127|128),ye=(ye>>>7|te<<25)>>>0,te>>>=7;w.g.push(ye)}}),Nr=ur(function(w,te,ye){return w.h!==0?!1:(Yi(te,ye,fl(w.g)),!0)},function(w,te,ye){if(te=Ro(te,ye),te!=null&&te!=null)if(Ql(w.g,8*ye),w=w.g,ye=te,0<=ye)Ql(w,ye);else{for(te=0;9>te;te++)w.g.push(ye&127|128),ye>>=7;w.g.push(1)}}),Ai=ur(function(w,te,ye){if(w.h!==2)return!1;var I=fl(w.g)>>>0;w=w.g;var x=w.g;w.g+=I,la(w),w=w.h;var ae;if(ac)(ae=Ed)||(ae=Ed=new TextDecoder("utf-8",{fatal:!0})),ae=ae.decode(w.subarray(x,x+I));else{I=x+I;for(var U=[],M=null,O,fe,je;x<I;)O=w[x++],128>O?U.push(O):224>O?x>=I?Fl():(fe=w[x++],194>O||(fe&192)!==128?(x--,Fl()):U.push((O&31)<<6|fe&63)):240>O?x>=I-1?Fl():(fe=w[x++],(fe&192)!==128||O===224&&160>fe||O===237&&160<=fe||((ae=w[x++])&192)!==128?(x--,Fl()):U.push((O&15)<<12|(fe&63)<<6|ae&63)):244>=O?x>=I-2?Fl():(fe=w[x++],(fe&192)!==128||(O<<28)+(fe-144)>>30||((ae=w[x++])&192)!==128||((je=w[x++])&192)!==128?(x--,Fl()):(O=(O&7)<<18|(fe&63)<<12|(ae&63)<<6|je&63,O-=65536,U.push((O>>10&1023)+55296,(O&1023)+56320))):Fl(),8192<=U.length&&(M=Ks(M,U),U.length=0);ae=Ks(M,U)}return Yi(te,ye,ae),!0},function(w,te,ye){if(te=Ro(te,ye),te!=null){var I=!1;if(I=I===void 0?!1:I,bc){if(I&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(te))throw Error("Found an unpaired surrogate");te=(Xd||(Xd=new TextEncoder)).encode(te)}else{for(var x=0,ae=new Uint8Array(3*te.length),U=0;U<te.length;U++){var M=te.charCodeAt(U);if(128>M)ae[x++]=M;else{if(2048>M)ae[x++]=M>>6|192;else{if(55296<=M&&57343>=M){if(56319>=M&&U<te.length){var O=te.charCodeAt(++U);if(56320<=O&&57343>=O){M=1024*(M-55296)+O-56320+65536,ae[x++]=M>>18|240,ae[x++]=M>>12&63|128,ae[x++]=M>>6&63|128,ae[x++]=M&63|128;continue}else U--}if(I)throw Error("Found an unpaired surrogate");M=65533}ae[x++]=M>>12|224,ae[x++]=M>>6&63|128}ae[x++]=M&63|128}}te=ae.subarray(0,x)}Ql(w.g,8*ye+2),Ql(w.g,te.length),_o(w,w.g.end()),_o(w,te)}}),ra=ur(function(w,te,ye,I,x){if(w.h!==2)return!1;te=lr(te,ye,I),ye=w.g.i,I=fl(w.g)>>>0;var ae=w.g.g+I,U=ae-ye;if(0>=U&&(w.g.i=ae,x(te,w),U=ae-w.g.g),U)throw Error("Message parsing ended unexpectedly. Expected to read "+(I+" bytes, instead read "+(I-U)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return w.g.g=ae,w.g.i=ye,!0},function(w,te,ye,I,x){if(te=On(te,I,ye),te!=null)for(I=0;I<te.length;I++){var ae=w;Ql(ae.g,8*ye+2);var U=ae.g.end();_o(ae,U),U.push(ae.h),ae=U,x(te[I],w),U=w;var M=ae.pop();for(M=U.h+U.g.length()-M;127<M;)ae.push(M&127|128),M>>>=7,U.h++;ae.push(M),U.h++}});function Ki(){od.apply(this,arguments)}if(Jr(Ki,od),Ca){var Ya={};Object.defineProperties(Ki,(Ya[Symbol.hasInstance]=zs(Object[Symbol.hasInstance]),Ya))}function zi(w){Ki.call(this,w)}Jr(zi,Ki);function Bi(){return[1,Nr,2,Zn,3,Ai,4,Ai]}function qi(w){Ki.call(this,w,-1,uo)}Jr(qi,Ki),qi.prototype.addClassification=function(w,te){return lr(this,1,zi,w,te),this};function ka(){return[1,ra,zi,Bi]}var uo=[1];function Bo(w){Ki.call(this,w)}Jr(Bo,Ki);function No(){return[1,Zn,2,Zn,3,Zn,4,Zn,5,Zn]}function Wl(w){Ki.call(this,w,-1,be)}Jr(Wl,Ki);function re(){return[1,ra,Bo,No]}var be=[1];function Ze(w){Ki.call(this,w)}Jr(Ze,Ki);function Et(){return[1,Zn,2,Zn,3,Zn,4,Zn,5,Zn,6,ir]}var an=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],Xn=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],ln=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],Hn=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],pr=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],D=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],Ie=[].concat(kt(an),kt(Xn),kt(ln),kt(Hn),kt(pr),kt(D));function De(w,te,ye){if(ye=w.createShader(ye===0?w.VERTEX_SHADER:w.FRAGMENT_SHADER),w.shaderSource(ye,te),w.compileShader(ye),!w.getShaderParameter(ye,w.COMPILE_STATUS))throw Error(`Could not compile WebGL shader. `+w.getShaderInfoLog(ye));return ye}function gt(w){return On(w,zi,1).map(function(te){return{index:Lr(te,1),ga:ao(te,2),label:Ro(te,3)!=null?Ua(te,3):void 0,displayName:Ro(te,4)!=null?Ua(te,4):void 0}})}function wt(w){return{x:ao(w,1),y:ao(w,2),z:ao(w,3),visibility:Ro(w,4)!=null?ao(w,4):void 0}}function sn(w,te){this.h=w,this.g=te,this.l=0}function rn(w,te,ye){return $n(w,te),typeof w.g.canvas.transferToImageBitmap=="function"?a.resolve(w.g.canvas.transferToImageBitmap()):ye?a.resolve(w.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(w.g.canvas):(w.i===void 0&&(w.i=document.createElement("canvas")),new a(function(I){w.i.height=w.g.canvas.height,w.i.width=w.g.canvas.width,w.i.getContext("2d",{}).drawImage(w.g.canvas,0,0,w.g.canvas.width,w.g.canvas.height),I(w.i)}))}function $n(w,te){var ye=w.g;if(w.o===void 0){var I=De(ye,` attribute vec2 aVertex; attribute vec2 aTex; varying vec2 vTex; void main(void) { gl_Position = vec4(aVertex, 0.0, 1.0); vTex = aTex; }`,0),x=De(ye,` precision mediump float; varying vec2 vTex; uniform sampler2D sampler0; void main(){ gl_FragColor = texture2D(sampler0, vTex); }`,1),ae=ye.createProgram();if(ye.attachShader(ae,I),ye.attachShader(ae,x),ye.linkProgram(ae),!ye.getProgramParameter(ae,ye.LINK_STATUS))throw Error(`Could not compile WebGL program. `+ye.getProgramInfoLog(ae));I=w.o=ae,ye.useProgram(I),x=ye.getUniformLocation(I,"sampler0"),w.j={K:ye.getAttribLocation(I,"aVertex"),J:ye.getAttribLocation(I,"aTex"),ma:x},w.u=ye.createBuffer(),ye.bindBuffer(ye.ARRAY_BUFFER,w.u),ye.enableVertexAttribArray(w.j.K),ye.vertexAttribPointer(w.j.K,2,ye.FLOAT,!1,0,0),ye.bufferData(ye.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),ye.STATIC_DRAW),ye.bindBuffer(ye.ARRAY_BUFFER,null),w.s=ye.createBuffer(),ye.bindBuffer(ye.ARRAY_BUFFER,w.s),ye.enableVertexAttribArray(w.j.J),ye.vertexAttribPointer(w.j.J,2,ye.FLOAT,!1,0,0),ye.bufferData(ye.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),ye.STATIC_DRAW),ye.bindBuffer(ye.ARRAY_BUFFER,null),ye.uniform1i(x,0)}I=w.j,ye.useProgram(w.o),ye.canvas.width=te.width,ye.canvas.height=te.height,ye.viewport(0,0,te.width,te.height),ye.activeTexture(ye.TEXTURE0),w.h.bindTexture2d(te.glName),ye.enableVertexAttribArray(I.K),ye.bindBuffer(ye.ARRAY_BUFFER,w.u),ye.vertexAttribPointer(I.K,2,ye.FLOAT,!1,0,0),ye.enableVertexAttribArray(I.J),ye.bindBuffer(ye.ARRAY_BUFFER,w.s),ye.vertexAttribPointer(I.J,2,ye.FLOAT,!1,0,0),ye.bindFramebuffer(ye.DRAW_FRAMEBUFFER?ye.DRAW_FRAMEBUFFER:ye.FRAMEBUFFER,null),ye.clearColor(0,0,0,0),ye.clear(ye.COLOR_BUFFER_BIT),ye.colorMask(!0,!0,!0,!0),ye.drawArrays(ye.TRIANGLE_FAN,0,4),ye.disableVertexAttribArray(I.K),ye.disableVertexAttribArray(I.J),ye.bindBuffer(ye.ARRAY_BUFFER,null),w.h.bindTexture2d(0)}function Ln(w){this.g=w}var Xr=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function ii(w,te){return te+w}function aa(w,te){window[w]=te}function pi(w){var te=document.createElement("script");return te.setAttribute("src",w),te.setAttribute("crossorigin","anonymous"),new a(function(ye){te.addEventListener("load",function(){ye()},!1),te.addEventListener("error",function(){ye()},!1),document.body.appendChild(te)})}function Ir(){return Tr(function(w){switch(w.g){case 1:return w.o=2,Tn(w,WebAssembly.instantiate(Xr),4);case 4:w.g=3,w.o=0;break;case 2:return w.o=0,w.j=null,w.return(!1);case 3:return w.return(!0)}})}function ai(w){if(this.g=w,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.Z=!0,this.D=a.resolve(),this.Y="",this.C={},this.locateFile=w&&w.locateFile||ii,typeof window=="object")var te=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location<"u")te=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.$=te,w.options){te=ft(Object.keys(w.options));for(var ye=te.next();!ye.done;ye=te.next()){ye=ye.value;var I=w.options[ye].default;I!==void 0&&(this.j[ye]=typeof I=="function"?I():I)}}}G=ai.prototype,G.close=function(){return this.i&&this.i.delete(),a.resolve()};function bi(w){var te,ye,I,x,ae,U,M,O,fe,je,pt;return Tr(function(vt){switch(vt.g){case 1:return w.Z?(te=w.g.files===void 0?[]:typeof w.g.files=="function"?w.g.files(w.j):w.g.files,Tn(vt,Ir(),2)):vt.return();case 2:if(ye=vt.h,typeof window=="object")return aa("createMediapipeSolutionsWasm",{locateFile:w.locateFile}),aa("createMediapipeSolutionsPackedAssets",{locateFile:w.locateFile}),U=te.filter(function(nn){return nn.data!==void 0}),M=te.filter(function(nn){return nn.data===void 0}),O=a.all(U.map(function(nn){var bn=L(w,nn.url);if(nn.path!==void 0){var wn=nn.path;bn=bn.then(function(Yn){return w.overrideFile(wn,Yn),a.resolve(Yn)})}return bn})),fe=a.all(M.map(function(nn){return nn.simd===void 0||nn.simd&&ye||!nn.simd&&!ye?pi(w.locateFile(nn.url,w.$)):a.resolve()})).then(function(){var nn,bn,wn;return Tr(function(Yn){if(Yn.g==1)return nn=window.createMediapipeSolutionsWasm,bn=window.createMediapipeSolutionsPackedAssets,wn=w,Tn(Yn,nn(bn),2);wn.h=Yn.h,Yn.g=0})}),je=function(){return Tr(function(nn){return w.g.graph&&w.g.graph.url?nn=Tn(nn,L(w,w.g.graph.url),0):(nn.g=0,nn=void 0),nn})}(),Tn(vt,a.all([fe,O,je]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return I=te.filter(function(nn){return nn.simd===void 0||nn.simd&&ye||!nn.simd&&!ye}).map(function(nn){return w.locateFile(nn.url,w.$)}),importScripts.apply(null,kt(I)),x=w,Tn(vt,createMediapipeSolutionsWasm(Module),6);case 6:x.h=vt.h,w.l=new OffscreenCanvas(1,1),w.h.canvas=w.l,ae=w.h.GL.createContext(w.l,{antialias:!1,alpha:!1,ja:typeof WebGL2RenderingContext<"u"?2:1}),w.h.GL.makeContextCurrent(ae),vt.g=4;break;case 7:if(w.l=document.createElement("canvas"),pt=w.l.getContext("webgl2",{}),!pt&&(pt=w.l.getContext("webgl",{}),!pt))return alert("Failed to create WebGL canvas context when passing video frame."),vt.return();w.G=pt,w.h.canvas=w.l,w.h.createContext(w.l,!0,!0,{});case 4:w.i=new w.h.SolutionWasm,w.Z=!1,vt.g=0}})}function vi(w){var te,ye,I,x,ae,U,M,O;return Tr(function(fe){if(fe.g==1){if(w.g.graph&&w.g.graph.url&&w.Y===w.g.graph.url)return fe.return();if(w.s=!0,!w.g.graph||!w.g.graph.url){fe.g=2;return}return w.Y=w.g.graph.url,Tn(fe,L(w,w.g.graph.url),3)}for(fe.g!=2&&(te=fe.h,w.i.loadGraph(te)),ye=ft(Object.keys(w.C)),I=ye.next();!I.done;I=ye.next())x=I.value,w.i.overrideFile(x,w.C[x]);if(w.C={},w.g.listeners)for(ae=ft(w.g.listeners),U=ae.next();!U.done;U=ae.next())M=U.value,lt(w,M);O=w.j,w.j={},w.setOptions(O),fe.g=0})}G.reset=function(){var w=this;return Tr(function(te){w.i&&(w.i.reset(),w.o={},w.u={}),te.g=0})},G.setOptions=function(w,te){var ye=this;if(te=te||this.g.options){for(var I=[],x=[],ae={},U=ft(Object.keys(w)),M=U.next();!M.done;ae={R:ae.R,S:ae.S},M=U.next()){var O=M.value;O in this.j&&this.j[O]===w[O]||(this.j[O]=w[O],M=te[O],M!==void 0&&(M.onChange&&(ae.R=M.onChange,ae.S=w[O],I.push(function(fe){return function(){var je;return Tr(function(pt){if(pt.g==1)return Tn(pt,fe.R(fe.S),2);je=pt.h,je===!0&&(ye.s=!0),pt.g=0})}}(ae))),M.graphOptionXref&&(O={valueNumber:M.type===1?w[O]:0,valueBoolean:M.type===0?w[O]:!1,valueString:M.type===2?w[O]:""},M=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),M.graphOptionXref),O),x.push(M))))}(I.length!==0||x.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(x),this.A=(this.A===void 0?[]:this.A).concat(I))}};function Xi(w){var te,ye,I,x,ae,U,M;return Tr(function(O){switch(O.g){case 1:if(!w.s)return O.return();if(!w.A){O.g=2;break}te=ft(w.A),ye=te.next();case 3:if(ye.done){O.g=5;break}return I=ye.value,Tn(O,I(),4);case 4:ye=te.next(),O.g=3;break;case 5:w.A=void 0;case 2:if(w.B){for(x=new w.h.GraphOptionChangeRequestList,ae=ft(w.B),U=ae.next();!U.done;U=ae.next())M=U.value,x.push_back(M);w.i.changeOptions(x),x.delete(),w.B=void 0}w.s=!1,O.g=0}})}G.initialize=function(){var w=this;return Tr(function(te){return te.g==1?Tn(te,bi(w),2):te.g!=3?Tn(te,vi(w),3):Tn(te,Xi(w),0)})};function L(w,te){var ye,I;return Tr(function(x){return te in w.H?x.return(w.H[te]):(ye=w.locateFile(te,""),I=fetch(ye).then(function(ae){return ae.arrayBuffer()}),w.H[te]=I,x.return(I))})}G.overrideFile=function(w,te){this.i?this.i.overrideFile(w,te):this.C[w]=te},G.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},G.send=function(w,te){var ye=this,I,x,ae,U,M,O,fe,je,pt;return Tr(function(vt){switch(vt.g){case 1:return ye.g.inputs?(I=1e3*(te??performance.now()),Tn(vt,ye.D,2)):vt.return();case 2:return Tn(vt,ye.initialize(),3);case 3:for(x=new ye.h.PacketDataList,ae=ft(Object.keys(w)),U=ae.next();!U.done;U=ae.next())if(M=U.value,O=ye.g.inputs[M]){e:{var nn=w[M];switch(O.type){case"video":var bn=ye.o[O.stream];if(bn||(bn=new sn(ye.h,ye.G),ye.o[O.stream]=bn),bn.l===0&&(bn.l=bn.h.createTexture()),typeof HTMLVideoElement<"u"&&nn instanceof HTMLVideoElement)var wn=nn.videoWidth,Yn=nn.videoHeight;else typeof HTMLImageElement<"u"&&nn instanceof HTMLImageElement?(wn=nn.naturalWidth,Yn=nn.naturalHeight):(wn=nn.width,Yn=nn.height);Yn={glName:bn.l,width:wn,height:Yn},wn=bn.g,wn.canvas.width=Yn.width,wn.canvas.height=Yn.height,wn.activeTexture(wn.TEXTURE0),bn.h.bindTexture2d(bn.l),wn.texImage2D(wn.TEXTURE_2D,0,wn.RGBA,wn.RGBA,wn.UNSIGNED_BYTE,nn),bn.h.bindTexture2d(0),bn=Yn;break e;case"detections":for(bn=ye.o[O.stream],bn||(bn=new Ln(ye.h),ye.o[O.stream]=bn),bn.data||(bn.data=new bn.g.DetectionListData),bn.data.reset(nn.length),Yn=0;Yn<nn.length;++Yn){wn=nn[Yn];var fr=bn.data,Cr=fr.setBoundingBox,Vr=Yn,_r=wn.boundingBox,jr=new Ze;if(Yi(jr,1,_r.xCenter),Yi(jr,2,_r.yCenter),Yi(jr,3,_r.height),Yi(jr,4,_r.width),Yi(jr,5,_r.rotation),Yi(jr,6,_r.rectId),_r=vn(jr,Et),Cr.call(fr,Vr,_r),wn.landmarks)for(fr=0;fr<wn.landmarks.length;++fr){jr=wn.landmarks[fr];var ya=!!jr.visibility;Cr=bn.data,Vr=Cr.addNormalizedLandmark,_r=Yn,jr=Object.assign(Object.assign({},jr),{visibility:ya?jr.visibility:0}),ya=new Bo,Yi(ya,1,jr.x),Yi(ya,2,jr.y),Yi(ya,3,jr.z),jr.visibility&&Yi(ya,4,jr.visibility),jr=vn(ya,No),Vr.call(Cr,_r,jr)}if(wn.V)for(fr=0;fr<wn.V.length;++fr)Cr=bn.data,Vr=Cr.addClassification,_r=Yn,jr=wn.V[fr],ya=new zi,Yi(ya,2,jr.ga),jr.index&&Yi(ya,1,jr.index),jr.label&&Yi(ya,3,jr.label),jr.displayName&&Yi(ya,4,jr.displayName),jr=vn(ya,Bi),Vr.call(Cr,_r,jr)}bn=bn.data;break e;default:bn={}}}switch(fe=bn,je=O.stream,O.type){case"video":x.pushTexture2d(Object.assign(Object.assign({},fe),{stream:je,timestamp:I}));break;case"detections":pt=fe,pt.stream=je,pt.timestamp=I,x.pushDetectionList(pt);break;default:throw Error("Unknown input config type: '"+O.type+"'")}}return ye.i.send(x),Tn(vt,ye.D,4);case 4:x.delete(),vt.g=0}})};function Ue(w,te,ye){var I,x,ae,U,M,O,fe,je,pt,vt,nn,bn,wn,Yn;return Tr(function(fr){switch(fr.g){case 1:if(!ye)return fr.return(te);for(I={},x=0,ae=ft(Object.keys(ye)),U=ae.next();!U.done;U=ae.next())M=U.value,O=ye[M],typeof O!="string"&&O.type==="texture"&&te[O.stream]!==void 0&&++x;1<x&&(w.I=!1),fe=ft(Object.keys(ye)),U=fe.next();case 2:if(U.done){fr.g=4;break}if(je=U.value,pt=ye[je],typeof pt=="string")return wn=I,Yn=je,Tn(fr,Me(w,je,te[pt]),14);if(vt=te[pt.stream],pt.type==="detection_list"){if(vt){for(var Cr=vt.getRectList(),Vr=vt.getLandmarksList(),_r=vt.getClassificationsList(),jr=[],ya=0;ya<Cr.size();++ya){var oo=ke(Cr.get(ya),Ze,Et);oo={boundingBox:{xCenter:ao(oo,1),yCenter:ao(oo,2),height:ao(oo,3),width:ao(oo,4),rotation:ao(oo,5,0),rectId:Lr(oo,6)},landmarks:On(ke(Vr.get(ya),Wl,re),Bo,1).map(wt),V:gt(ke(_r.get(ya),qi,ka))},jr.push(oo)}Cr=jr}else Cr=[];I[je]=Cr,fr.g=7;break}if(pt.type==="proto_list"){if(vt){for(Cr=Array(vt.size()),Vr=0;Vr<vt.size();Vr++)Cr[Vr]=vt.get(Vr);vt.delete()}else Cr=[];I[je]=Cr,fr.g=7;break}if(vt===void 0){fr.g=3;break}if(pt.type==="float_list"){I[je]=vt,fr.g=7;break}if(pt.type==="proto"){I[je]=vt,fr.g=7;break}if(pt.type!=="texture")throw Error("Unknown output config type: '"+pt.type+"'");return nn=w.u[je],nn||(nn=new sn(w.h,w.G),w.u[je]=nn),Tn(fr,rn(nn,vt,w.I),13);case 13:bn=fr.h,I[je]=bn;case 7:pt.transform&&I[je]&&(I[je]=pt.transform(I[je])),fr.g=3;break;case 14:wn[Yn]=fr.h;case 3:U=fe.next(),fr.g=2;break;case 4:return fr.return(I)}})}function Me(w,te,ye){var I;return Tr(function(x){return typeof ye=="number"||ye instanceof Uint8Array||ye instanceof w.h.Uint8BlobList?x.return(ye):ye instanceof w.h.Texture2dDataOut?(I=w.u[te],I||(I=new sn(w.h,w.G),w.u[te]=I),x.return(rn(I,ye,w.I))):x.return(void 0)})}function lt(w,te){for(var ye=te.name||"$",I=[].concat(kt(te.wants)),x=new w.h.StringList,ae=ft(te.wants),U=ae.next();!U.done;U=ae.next())x.push_back(U.value);ae=w.h.PacketListener.implement({onResults:function(M){for(var O={},fe=0;fe<te.wants.length;++fe)O[I[fe]]=M.get(fe);var je=w.listeners[ye];je&&(w.D=Ue(w,O,te.outs).then(function(pt){pt=je(pt);for(var vt=0;vt<te.wants.length;++vt){var nn=O[I[vt]];typeof nn=="object"&&nn.hasOwnProperty&&nn.hasOwnProperty("delete")&&nn.delete()}pt&&(w.D=pt)}))}}),w.i.attachMultiListener(x,ae),x.delete()}G.onResults=function(w,te){this.listeners[te||"$"]=w},Oi("Solution",ai),Oi("OptionType",{BOOL:0,NUMBER:1,ia:2,0:"BOOL",1:"NUMBER",2:"STRING"});function Yt(w){var te=this;w=w||{};var ye={url:"face_detection_short.binarypb"},I={type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}};this.g=new ai({locateFile:w.locateFile,files:[{data:!0,url:"face_detection_short.binarypb"},{data:!0,url:"face_detection_short_range.tflite"},{simd:!0,url:"face_detection_solution_simd_wasm_bin.js"},{simd:!1,url:"face_detection_solution_wasm_bin.js"}],graph:ye,listeners:[{wants:["detections","image_transformed"],outs:{image:"image_transformed",detections:{type:"detection_list",stream:"detections"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},model:{type:0,onChange:function(x){var ae,U,M,O,fe,je;return Tr(function(pt){switch(pt.g){case 1:ae=x==="short"?["face_detection_short_range.tflite"]:["face_detection_full_range_sparse.tflite"],U=ft(ae),M=U.next();case 2:if(M.done){pt.g=4;break}return O=M.value,fe="third_party/mediapipe/modules/face_detection/"+O,Tn(pt,L(te.g,O),5);case 5:je=pt.h,te.g.overrideFile(fe,je),M=U.next(),pt.g=2;break;case 4:return ye.url=x==="short"?"face_detection_short.binarypb":"face_detection_full.binarypb",I.graphOptionXref.calculatorName=x==="short"?"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator":"facedetectionfullrangegpu__facedetectionfullrangecommon__TensorsToDetectionsCalculator",pt.return(!0)}})}},minDetectionConfidence:I}})}G=Yt.prototype,G.close=function(){return this.g.close(),a.resolve()},G.onResults=function(w){this.g.onResults(w)},G.initialize=function(){var w=this;return Tr(function(te){return Tn(te,w.g.initialize(),0)})},G.reset=function(){this.g.reset()},G.send=function(w){var te=this;return Tr(function(ye){return Tn(ye,te.g.send(w),0)})},G.setOptions=function(w){this.g.setOptions(w)},Oi("FaceDetection",Yt),Oi("FACEDETECTION_LIPS",an),Oi("FACEDETECTION_LEFT_EYE",Xn),Oi("FACEDETECTION_LEFT_EYEBROW",ln),Oi("FACEDETECTION_RIGHT_EYE",Hn),Oi("FACEDETECTION_RIGHT_EYEBROW",pr),Oi("FACEDETECTION_FACE_OVAL",D),Oi("FACEDETECTION_CONTOURS",Ie),Oi("FACEDETECTION_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),Oi("VERSION","0.4.1646425229")}).call(bt);const zt={};(function(){var G;function Z(re){var be=0;return function(){return be<re.length?{done:!1,value:re[be++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(re,be,Ze){return re==Array.prototype||re==Object.prototype||(re[be]=Ze.value),re};function se(re){re=[typeof globalThis=="object"&&globalThis,re,typeof window=="object"&&window,typeof self=="object"&&self,typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr)];for(var be=0;be<re.length;++be){var Ze=re[be];if(Ze&&Ze.Math==Math)return Ze}throw Error("Cannot find global object")}var Qe=se(this);function et(re,be){if(be)e:{var Ze=Qe;re=re.split(".");for(var Et=0;Et<re.length-1;Et++){var an=re[Et];if(!(an in Ze))break e;Ze=Ze[an]}re=re[re.length-1],Et=Ze[re],be=be(Et),be!=Et&&be!=null&&W(Ze,re,{configurable:!0,writable:!0,value:be})}}et("Symbol",function(re){function be(Xn){if(this instanceof be)throw new TypeError("Symbol is not a constructor");return new Ze(Et+(Xn||"")+"_"+an++,Xn)}function Ze(Xn,ln){this.g=Xn,W(this,"description",{configurable:!0,writable:!0,value:ln})}if(re)return re;Ze.prototype.toString=function(){return this.g};var Et="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",an=0;return be}),et("Symbol.iterator",function(re){if(re)return re;re=Symbol("Symbol.iterator");for(var be="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Ze=0;Ze<be.length;Ze++){var Et=Qe[be[Ze]];typeof Et=="function"&&typeof Et.prototype[re]!="function"&&W(Et.prototype,re,{configurable:!0,writable:!0,value:function(){return Zt(Z(this))}})}return re});function Zt(re){return re={next:re},re[Symbol.iterator]=function(){return this},re}function ft(re){var be=typeof Symbol<"u"&&Symbol.iterator&&re[Symbol.iterator];return be?be.call(re):{next:Z(re)}}function kt(re){if(!(re instanceof Array)){re=ft(re);for(var be,Ze=[];!(be=re.next()).done;)Ze.push(be.value);re=Ze}return re}var rr=typeof Object.create=="function"?Object.create:function(re){function be(){}return be.prototype=re,new be},gr;if(typeof Object.setPrototypeOf=="function")gr=Object.setPrototypeOf;else{var Wr;e:{var Ui={a:!0},Ci={};try{Ci.__proto__=Ui,Wr=Ci.a;break e}catch{}Wr=!1}gr=Wr?function(re,be){if(re.__proto__=be,re.__proto__!==be)throw new TypeError(re+" is not extensible");return re}:null}var Qr=gr;function Jr(re,be){if(re.prototype=rr(be.prototype),re.prototype.constructor=re,Qr)Qr(re,be);else for(var Ze in be)if(Ze!="prototype")if(Object.defineProperties){var Et=Object.getOwnPropertyDescriptor(be,Ze);Et&&Object.defineProperty(re,Ze,Et)}else re[Ze]=be[Ze];re.ea=be.prototype}function $i(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fa(re){if(re.l)throw new TypeError("Generator is already running");re.l=!0}$i.prototype.o=function(re){this.h=re};function ro(re,be){re.j={U:be,V:!0},re.g=re.m||re.s}$i.prototype.return=function(re){this.j={return:re},this.g=this.s};function Tn(re,be,Ze){return re.g=Ze,{value:be}}function ps(re){this.g=new $i,this.h=re}function id(re,be){fa(re.g);var Ze=re.g.i;return Ze?xo(re,"return"in Ze?Ze.return:function(Et){return{value:Et,done:!0}},be,re.g.return):(re.g.return(be),ba(re))}function xo(re,be,Ze,Et){try{var an=be.call(re.g.i,Ze);if(!(an instanceof Object))throw new TypeError("Iterator result "+an+" is not an object");if(!an.done)return re.g.l=!1,an;var Xn=an.value}catch(ln){return re.g.i=null,ro(re.g,ln),ba(re)}return re.g.i=null,Et.call(re.g,Xn),ba(re)}function ba(re){for(;re.g.g;)try{var be=re.h(re.g);if(be)return re.g.l=!1,{value:be.value,done:!1}}catch(Ze){re.g.h=void 0,ro(re.g,Ze)}if(re.g.l=!1,re.g.j){if(be=re.g.j,re.g.j=null,be.V)throw be.U;return{value:be.return,done:!0}}return{value:void 0,done:!0}}function Pd(re){this.next=function(be){return fa(re.g),re.g.i?be=xo(re,re.g.i.next,be,re.g.o):(re.g.o(be),be=ba(re)),be},this.throw=function(be){return fa(re.g),re.g.i?be=xo(re,re.g.i.throw,be,re.g.o):(ro(re.g,be),be=ba(re)),be},this.return=function(be){return id(re,be)},this[Symbol.iterator]=function(){return this}}function za(re,be){return be=new Pd(new ps(be)),Qr&&re.prototype&&Qr(be,re.prototype),be}function Tr(re,be){re instanceof String&&(re+="");var Ze=0,Et=!1,an={next:function(){if(!Et&&Ze<re.length){var Xn=Ze++;return{value:be(Xn,re[Xn]),done:!1}}return Et=!0,{done:!0,value:void 0}}};return an[Symbol.iterator]=function(){return an},an}var _c=typeof Object.assign=="function"?Object.assign:function(re,be){for(var Ze=1;Ze<arguments.length;Ze++){var Et=arguments[Ze];if(Et)for(var an in Et)Object.prototype.hasOwnProperty.call(Et,an)&&(re[an]=Et[an])}return re};et("Object.assign",function(re){return re||_c}),et("Promise",function(re){function be(ln){this.h=0,this.i=void 0,this.g=[],this.o=!1;var Hn=this.j();try{ln(Hn.resolve,Hn.reject)}catch(pr){Hn.reject(pr)}}function Ze(){this.g=null}function Et(ln){return ln instanceof be?ln:new be(function(Hn){Hn(ln)})}if(re)return re;Ze.prototype.h=function(ln){if(this.g==null){this.g=[];var Hn=this;this.i(function(){Hn.l()})}this.g.push(ln)};var an=Qe.setTimeout;Ze.prototype.i=function(ln){an(ln,0)},Ze.prototype.l=function(){for(;this.g&&this.g.length;){var ln=this.g;this.g=[];for(var Hn=0;Hn<ln.length;++Hn){var pr=ln[Hn];ln[Hn]=null;try{pr()}catch(D){this.j(D)}}}this.g=null},Ze.prototype.j=function(ln){this.i(function(){throw ln})},be.prototype.j=function(){function ln(D){return function(Ie){pr||(pr=!0,D.call(Hn,Ie))}}var Hn=this,pr=!1;return{resolve:ln(this.C),reject:ln(this.l)}},be.prototype.C=function(ln){if(ln===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(ln instanceof be)this.F(ln);else{e:switch(typeof ln){case"object":var Hn=ln!=null;break e;case"function":Hn=!0;break e;default:Hn=!1}Hn?this.u(ln):this.m(ln)}},be.prototype.u=function(ln){var Hn=void 0;try{Hn=ln.then}catch(pr){this.l(pr);return}typeof Hn=="function"?this.G(Hn,ln):this.m(ln)},be.prototype.l=function(ln){this.s(2,ln)},be.prototype.m=function(ln){this.s(1,ln)},be.prototype.s=function(ln,Hn){if(this.h!=0)throw Error("Cannot settle("+ln+", "+Hn+"): Promise already settled in state"+this.h);this.h=ln,this.i=Hn,this.h===2&&this.D(),this.A()},be.prototype.D=function(){var ln=this;an(function(){if(ln.B()){var Hn=Qe.console;typeof Hn<"u"&&Hn.error(ln.i)}},1)},be.prototype.B=function(){if(this.o)return!1;var ln=Qe.CustomEvent,Hn=Qe.Event,pr=Qe.dispatchEvent;return typeof pr>"u"?!0:(typeof ln=="function"?ln=new ln("unhandledrejection",{cancelable:!0}):typeof Hn=="function"?ln=new Hn("unhandledrejection",{cancelable:!0}):(ln=Qe.document.createEvent("CustomEvent"),ln.initCustomEvent("unhandledrejection",!1,!0,ln)),ln.promise=this,ln.reason=this.i,pr(ln))},be.prototype.A=function(){if(this.g!=null){for(var ln=0;ln<this.g.length;++ln)Xn.h(this.g[ln]);this.g=null}};var Xn=new Ze;return be.prototype.F=function(ln){var Hn=this.j();ln.J(Hn.resolve,Hn.reject)},be.prototype.G=function(ln,Hn){var pr=this.j();try{ln.call(Hn,pr.resolve,pr.reject)}catch(D){pr.reject(D)}},be.prototype.then=function(ln,Hn){function pr(gt,wt){return typeof gt=="function"?function(sn){try{D(gt(sn))}catch(rn){Ie(rn)}}:wt}var D,Ie,De=new be(function(gt,wt){D=gt,Ie=wt});return this.J(pr(ln,D),pr(Hn,Ie)),De},be.prototype.catch=function(ln){return this.then(void 0,ln)},be.prototype.J=function(ln,Hn){function pr(){switch(D.h){case 1:ln(D.i);break;case 2:Hn(D.i);break;default:throw Error("Unexpected state: "+D.h)}}var D=this;this.g==null?Xn.h(pr):this.g.push(pr),this.o=!0},be.resolve=Et,be.reject=function(ln){return new be(function(Hn,pr){pr(ln)})},be.race=function(ln){return new be(function(Hn,pr){for(var D=ft(ln),Ie=D.next();!Ie.done;Ie=D.next())Et(Ie.value).J(Hn,pr)})},be.all=function(ln){var Hn=ft(ln),pr=Hn.next();return pr.done?Et([]):new be(function(D,Ie){function De(sn){return function(rn){gt[sn]=rn,wt--,wt==0&&D(gt)}}var gt=[],wt=0;do gt.push(void 0),wt++,Et(pr.value).J(De(gt.length-1),Ie),pr=Hn.next();while(!pr.done)})},be}),et("Object.is",function(re){return re||function(be,Ze){return be===Ze?be!==0||1/be===1/Ze:be!==be&&Ze!==Ze}}),et("Array.prototype.includes",function(re){return re||function(be,Ze){var Et=this;Et instanceof String&&(Et=String(Et));var an=Et.length;for(Ze=Ze||0,0>Ze&&(Ze=Math.max(Ze+an,0));Ze<an;Ze++){var Xn=Et[Ze];if(Xn===be||Object.is(Xn,be))return!0}return!1}}),et("String.prototype.includes",function(re){return re||function(be,Ze){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(be instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(be,Ze||0)!==-1}}),et("Array.prototype.keys",function(re){return re||function(){return Tr(this,function(be){return be})}});var Dc=this||self;function dl(re,be){re=re.split(".");var Ze=Dc;re[0]in Ze||typeof Ze.execScript>"u"||Ze.execScript("var "+re[0]);for(var Et;re.length&&(Et=re.shift());)re.length||be===void 0?Ze[Et]&&Ze[Et]!==Object.prototype[Et]?Ze=Ze[Et]:Ze=Ze[Et]={}:Ze[Et]=be}function Oi(re,be){return be=String.fromCharCode.apply(null,be),re==null?be:re+be}var Fl,Ks=typeof TextDecoder<"u",Ed,ac=typeof TextEncoder<"u";function Xd(re){if(ac)re=(Ed||(Ed=new TextEncoder)).encode(re);else{var be=void 0;be=be===void 0?!1:be;for(var Ze=0,Et=new Uint8Array(3*re.length),an=0;an<re.length;an++){var Xn=re.charCodeAt(an);if(128>Xn)Et[Ze++]=Xn;else{if(2048>Xn)Et[Ze++]=Xn>>6|192;else{if(55296<=Xn&&57343>=Xn){if(56319>=Xn&&an<re.length){var ln=re.charCodeAt(++an);if(56320<=ln&&57343>=ln){Xn=1024*(Xn-55296)+ln-56320+65536,Et[Ze++]=Xn>>18|240,Et[Ze++]=Xn>>12&63|128,Et[Ze++]=Xn>>6&63|128,Et[Ze++]=Xn&63|128;continue}else an--}if(be)throw Error("Found an unpaired surrogate");Xn=65533}Et[Ze++]=Xn>>12|224,Et[Ze++]=Xn>>6&63|128}Et[Ze++]=Xn&63|128}}re=Et.subarray(0,Ze)}return re}var bc={},Ps=null;function Kl(re,be){be===void 0&&(be=0),Sd(),be=bc[be];for(var Ze=Array(Math.floor(re.length/3)),Et=be[64]||"",an=0,Xn=0;an<re.length-2;an+=3){var ln=re[an],Hn=re[an+1],pr=re[an+2],D=be[ln>>2];ln=be[(ln&3)<<4|Hn>>4],Hn=be[(Hn&15)<<2|pr>>6],pr=be[pr&63],Ze[Xn++]=D+ln+Hn+pr}switch(D=0,pr=Et,re.length-an){case 2:D=re[an+1],pr=be[(D&15)<<2]||Et;case 1:re=re[an],Ze[Xn]=be[re>>2]+be[(re&3)<<4|D>>4]+pr+Et}return Ze.join("")}function kd(re){var be=re.length,Ze=3*be/4;Ze%3?Ze=Math.floor(Ze):"=.".indexOf(re[be-1])!=-1&&(Ze="=.".indexOf(re[be-2])!=-1?Ze-2:Ze-1);var Et=new Uint8Array(Ze),an=0;return oc(re,function(Xn){Et[an++]=Xn}),Et.subarray(0,an)}function oc(re,be){function Ze(pr){for(;Et<re.length;){var D=re.charAt(Et++),Ie=Ps[D];if(Ie!=null)return Ie;if(!/^[\s\xa0]*$/.test(D))throw Error("Unknown base64 encoding at char: "+D)}return pr}Sd();for(var Et=0;;){var an=Ze(-1),Xn=Ze(0),ln=Ze(64),Hn=Ze(64);if(Hn===64&&an===-1)break;be(an<<2|Xn>>4),ln!=64&&(be(Xn<<4&240|ln>>2),Hn!=64&&be(ln<<6&192|Hn))}}function Sd(){if(!Ps){Ps={};for(var re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),be=["+/=","+/","-_=","-_.","-_"],Ze=0;5>Ze;Ze++){var Et=re.concat(be[Ze].split(""));bc[Ze]=Et;for(var an=0;an<Et.length;an++){var Xn=Et[an];Ps[Xn]===void 0&&(Ps[Xn]=an)}}}}var El=typeof Uint8Array.prototype.slice=="function",wd;function pd(re,be,Ze){return be===Ze?wd||(wd=new Uint8Array(0)):El?re.slice(be,Ze):new Uint8Array(re.subarray(be,Ze))}var Ao=0,cl=0;function Qs(re,be){be=be===void 0?{}:be,be=be.v===void 0?!1:be.v,this.h=null,this.g=this.j=this.l=0,this.m=!1,this.v=be,re&&zo(this,re)}function zo(re,be){be=be.constructor===Uint8Array?be:be.constructor===ArrayBuffer?new Uint8Array(be):be.constructor===Array?new Uint8Array(be):be.constructor===String?kd(be):be instanceof Uint8Array?new Uint8Array(be.buffer,be.byteOffset,be.byteLength):new Uint8Array(0),re.h=be,re.l=0,re.j=re.h.length,re.g=re.l}Qs.prototype.reset=function(){this.g=this.l};function jo(re){for(var be=128,Ze=0,Et=0,an=0;4>an&&128<=be;an++)be=re.h[re.g++],Ze|=(be&127)<<7*an;if(128<=be&&(be=re.h[re.g++],Ze|=(be&127)<<28,Et|=(be&127)>>4),128<=be)for(an=0;5>an&&128<=be;an++)be=re.h[re.g++],Et|=(be&127)<<7*an+3;if(128>be)return re=Ze>>>0,be=Et>>>0,(Et=be&2147483648)&&(re=~re+1>>>0,be=~be>>>0,re==0&&(be=be+1>>>0)),re=4294967296*be+(re>>>0),Et?-re:re;re.m=!0}Qs.prototype.i=function(){var re=this.h,be=re[this.g],Ze=be&127;return 128>be?(this.g+=1,Ze):(be=re[this.g+1],Ze|=(be&127)<<7,128>be?(this.g+=2,Ze):(be=re[this.g+2],Ze|=(be&127)<<14,128>be?(this.g+=3,Ze):(be=re[this.g+3],Ze|=(be&127)<<21,128>be?(this.g+=4,Ze):(be=re[this.g+4],Ze|=(be&15)<<28,128>be?(this.g+=5,Ze>>>0):(this.g+=5,128<=re[this.g++]&&128<=re[this.g++]&&128<=re[this.g++]&&128<=re[this.g++]&&this.g++,Ze)))))},Qs.prototype.o=function(){var re=this.h[this.g],be=this.h[this.g+1],Ze=this.h[this.g+2],Et=this.h[this.g+3];return this.g+=4,Ze=(re<<0|be<<8|Ze<<16|Et<<24)>>>0,re=2*(Ze>>31)+1,be=Ze>>>23&255,Ze&=8388607,be==255?Ze?NaN:1/0*re:be==0?re*Math.pow(2,-149)*Ze:re*Math.pow(2,be-150)*(Ze+Math.pow(2,23))};var Ns=[];function Pl(){this.g=new Uint8Array(64),this.h=0}Pl.prototype.push=function(re){if(!(this.h+1<this.g.length)){var be=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(be)}this.g[this.h++]=re},Pl.prototype.length=function(){return this.h},Pl.prototype.end=function(){var re=this.g,be=this.h;return this.h=0,pd(re,0,be)};function Ha(re,be){for(;127<be;)re.push(be&127|128),be>>>=7;re.push(be)}function Xo(re){var be={},Ze=be.N===void 0?!1:be.N;this.o={v:be.v===void 0?!1:be.v},this.N=Ze,be=this.o,Ns.length?(Ze=Ns.pop(),be&&(Ze.v=be.v),re&&zo(Ze,re),re=Ze):re=new Qs(re,be),this.g=re,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}Xo.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function ul(re){var be=re.g;if((be=be.g==be.j)||(be=re.j)||(be=re.g,be=be.m||0>be.g||be.g>be.j),be)return!1;re.m=re.g.g,be=re.g.i();var Ze=be&7;return Ze!=0&&Ze!=5&&Ze!=1&&Ze!=2&&Ze!=3&&Ze!=4?(re.j=!0,!1):(re.i=be,re.l=be>>>3,re.h=Ze,!0)}function la(re){switch(re.h){case 0:if(re.h!=0)la(re);else{for(re=re.g;re.h[re.g]&128;)re.g++;re.g++}break;case 1:re.h!=1?la(re):(re=re.g,re.g+=8);break;case 2:if(re.h!=2)la(re);else{var be=re.g.i();re=re.g,re.g+=be}break;case 5:re.h!=5?la(re):(re=re.g,re.g+=4);break;case 3:be=re.l;do{if(!ul(re)){re.j=!0;break}if(re.h==4){re.l!=be&&(re.j=!0);break}la(re)}while(!0);break;default:re.j=!0}}function fl(re,be,Ze){var Et=re.g.j,an=re.g.i(),Xn=re.g.g+an;if(re.g.j=Xn,Ze(be,re),Ze=Xn-re.g.g,Ze!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+an+" bytes, instead read "+(an-Ze)+" bytes, either the data ended unexpectedly or the message misreported its own length");return re.g.g=Xn,re.g.j=Et,be}function xa(re){return re.g.o()}function Wo(re){var be=re.g.i();re=re.g;var Ze=re.g;re.g+=be,re=re.h;var Et;if(Ks)(Et=Fl)||(Et=Fl=new TextDecoder("utf-8",{fatal:!1})),Et=Et.decode(re.subarray(Ze,Ze+be));else{be=Ze+be;for(var an=[],Xn=null,ln,Hn,pr;Ze<be;)ln=re[Ze++],128>ln?an.push(ln):224>ln?Ze>=be?an.push(65533):(Hn=re[Ze++],194>ln||(Hn&192)!==128?(Ze--,an.push(65533)):an.push((ln&31)<<6|Hn&63)):240>ln?Ze>=be-1?an.push(65533):(Hn=re[Ze++],(Hn&192)!==128||ln===224&&160>Hn||ln===237&&160<=Hn||((Et=re[Ze++])&192)!==128?(Ze--,an.push(65533)):an.push((ln&15)<<12|(Hn&63)<<6|Et&63)):244>=ln?Ze>=be-2?an.push(65533):(Hn=re[Ze++],(Hn&192)!==128||(ln<<28)+(Hn-144)>>30||((Et=re[Ze++])&192)!==128||((pr=re[Ze++])&192)!==128?(Ze--,an.push(65533)):(ln=(ln&7)<<18|(Hn&63)<<12|(Et&63)<<6|pr&63,ln-=65536,an.push((ln>>10&1023)+55296,(ln&1023)+56320))):an.push(65533),8192<=an.length&&(Xn=Oi(Xn,an),an.length=0);Et=Oi(Xn,an)}return Et}function Ql(re,be,Ze){var Et=re.g.i();for(Et=re.g.g+Et;re.g.g<Et;)Ze.push(be.call(re.g))}function Us(re,be){re.h==2?Ql(re,Qs.prototype.o,be):be.push(xa(re))}function Oo(){this.h=[],this.i=0,this.g=new Pl}function Wa(re,be){be.length!==0&&(re.h.push(be),re.i+=be.length)}function Xl(re){var be=re.i+re.g.length();if(be===0)return new Uint8Array(0);be=new Uint8Array(be);for(var Ze=re.h,Et=Ze.length,an=0,Xn=0;Xn<Et;Xn++){var ln=Ze[Xn];ln.length!==0&&(be.set(ln,an),an+=ln.length)}return Ze=re.g,Et=Ze.h,Et!==0&&(be.set(Ze.g.subarray(0,Et),an),Ze.h=0),re.h=[be],be}function ms(re,be,Ze){if(Ze!=null){Ha(re.g,8*be+5),re=re.g;var Et=Ze;Et=(Ze=0>Et?1:0)?-Et:Et,Et===0?0<1/Et?Ao=cl=0:(cl=0,Ao=2147483648):isNaN(Et)?(cl=0,Ao=2147483647):34028234663852886e22<Et?(cl=0,Ao=(Ze<<31|2139095040)>>>0):11754943508222875e-54>Et?(Et=Math.round(Et/Math.pow(2,-149)),cl=0,Ao=(Ze<<31|Et)>>>0):(be=Math.floor(Math.log(Et)/Math.LN2),Et*=Math.pow(2,-be),Et=Math.round(8388608*Et),16777216<=Et&&++be,cl=0,Ao=(Ze<<31|be+127<<23|Et&8388607)>>>0),Ze=Ao,re.push(Ze>>>0&255),re.push(Ze>>>8&255),re.push(Ze>>>16&255),re.push(Ze>>>24&255)}}var _o=typeof Uint8Array=="function";function md(re,be,Ze){if(re!=null)return typeof re=="object"?_o&&re instanceof Uint8Array?Ze(re):Gs(re,be,Ze):be(re)}function Gs(re,be,Ze){if(Array.isArray(re)){for(var Et=Array(re.length),an=0;an<re.length;an++)Et[an]=md(re[an],be,Ze);return Array.isArray(re)&&re.W&&ko(Et),Et}Et={};for(an in re)Et[an]=md(re[an],be,Ze);return Et}function ad(re){return typeof re=="number"?isFinite(re)?re:String(re):re}var bd={W:{value:!0,configurable:!0}};function ko(re){return Array.isArray(re)&&!Object.isFrozen(re)&&Object.defineProperties(re,bd),re}var Ul;function wo(re,be,Ze){var Et=Ul;Ul=null,re||(re=Et),Et=this.constructor.ca,re||(re=Et?[Et]:[]),this.j=Et?0:-1,this.m=this.g=null,this.h=re;e:{if(Et=this.h.length,re=Et-1,Et&&(Et=this.h[re],!(Et===null||typeof Et!="object"||Array.isArray(Et)||_o&&Et instanceof Uint8Array))){this.l=re-this.j,this.i=Et;break e}be!==void 0&&-1<be?(this.l=Math.max(be,re+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(Ze)for(be=0;be<Ze.length;be++)re=Ze[be],re<this.l?(re+=this.j,(Et=this.h[re])?ko(Et):this.h[re]=io):(kl(this),(Et=this.i[re])?ko(Et):this.i[re]=io)}var io=Object.freeze(ko([]));function kl(re){var be=re.l+re.j;re.h[be]||(re.i=re.h[be]={})}function Oa(re,be,Ze){return be===-1?null:Ze!==void 0&&Ze||be>=re.l?re.i?re.i[be]:void 0:re.h[be+re.j]}function Ca(re,be){var Ze=Ze===void 0?!1:Ze,Et=Oa(re,be,Ze);return Et==null&&(Et=io),Et===io&&(Et=ko([]),mi(re,be,Et,Ze)),Et}function zs(re){var be=Ca(re,3);if(re.m||(re.m={}),!re.m[3]){for(var Ze=0;Ze<be.length;Ze++)be[Ze]=+be[Ze];re.m[3]=!0}return be}function Ro(re,be,Ze){return re=Oa(re,be),re??Ze}function Yi(re,be,Ze){return re=Oa(re,be),re=re==null?re:+re,re??(Ze===void 0?0:Ze)}function mi(re,be,Ze,Et){Et!==void 0&&Et||be>=re.l?(kl(re),re.i[be]=Ze):re.h[be+re.j]=Ze}function ao(re,be,Ze){if(Ze===-1)return null;if(re.g||(re.g={}),!re.g[Ze]){var Et=Oa(re,Ze,!1);Et&&(re.g[Ze]=new be(Et))}return re.g[Ze]}function On(re,be){re.g||(re.g={});var Ze=re.g[1];if(!Ze){var Et=Ca(re,1);Ze=[];for(var an=0;an<Et.length;an++)Ze[an]=new be(Et[an]);re.g[1]=Ze}return Ze}function lr(re,be,Ze){var Et=Et===void 0?!1:Et;re.g||(re.g={});var an=Ze&&Ua(Ze);re.g[be]=Ze,mi(re,be,an,Et)}function Lr(re,be,Ze,Et){var an=On(re,Ze);be=be||new Ze,re=Ca(re,1),Et!=null?(an.splice(Et,0,be),re.splice(Et,0,Ua(be))):(an.push(be),re.push(Ua(be)))}wo.prototype.toJSON=function(){var re=Ua(this);return Gs(re,ad,Kl)};function Ua(re,be){if(re.g)for(var Ze in re.g){var Et=re.g[Ze];if(Array.isArray(Et))for(var an=0;an<Et.length;an++)Et[an]&&Ua(Et[an]);else Et&&Ua(Et)}return re.h}wo.prototype.toString=function(){return Ua(this).toString()};function Ii(re,be){if(re=re.o){Wa(be,be.g.end());for(var Ze=0;Ze<re.length;Ze++)Wa(be,re[Ze])}}function ri(re,be){if(be.h==4)return!1;var Ze=be.m;return la(be),be.N||(be=pd(be.g.h,Ze,be.g.g),(Ze=re.o)?Ze.push(be):re.o=[be]),!0}function Ta(re){wo.call(this,re,-1,Yo)}Jr(Ta,wo),Ta.prototype.getRows=function(){return Oa(this,1)},Ta.prototype.getCols=function(){return Oa(this,2)},Ta.prototype.getPackedDataList=function(){return zs(this)},Ta.prototype.getLayout=function(){return Ro(this,4,0)};function vo(re,be){for(;ul(be);)switch(be.i){case 8:var Ze=be.g.i();mi(re,1,Ze);break;case 16:Ze=be.g.i(),mi(re,2,Ze);break;case 29:case 26:Us(be,re.getPackedDataList());break;case 32:Ze=jo(be.g),mi(re,4,Ze);break;default:if(!ri(re,be))return re}return re}var Yo=[3];function Xa(re,be){var Ze=void 0;return new(Ze||(Ze=a))(function(Et,an){function Xn(pr){try{Hn(be.next(pr))}catch(D){an(D)}}function ln(pr){try{Hn(be.throw(pr))}catch(D){an(D)}}function Hn(pr){pr.done?Et(pr.value):new Ze(function(D){D(pr.value)}).then(Xn,ln)}Hn((be=be.apply(re,void 0)).next())})}function Rs(re){wo.call(this,re)}Jr(Rs,wo);function Yd(re,be){for(;ul(be);)switch(be.i){case 8:var Ze=be.g.i();mi(re,1,Ze);break;case 21:Ze=xa(be),mi(re,2,Ze);break;case 26:Ze=Wo(be),mi(re,3,Ze);break;case 34:Ze=Wo(be),mi(re,4,Ze);break;default:if(!ri(re,be))return re}return re}function od(re){wo.call(this,re,-1,Bs)}Jr(od,wo),od.prototype.addClassification=function(re,be){return Lr(this,re,Rs,be),this};var Bs=[1];function js(re){wo.call(this,re)}Jr(js,wo);function ld(re,be){for(;ul(be);)switch(be.i){case 13:var Ze=xa(be);mi(re,1,Ze);break;case 21:Ze=xa(be),mi(re,2,Ze);break;case 29:Ze=xa(be),mi(re,3,Ze);break;case 37:Ze=xa(be),mi(re,4,Ze);break;case 45:Ze=xa(be),mi(re,5,Ze);break;default:if(!ri(re,be))return re}return re}function Rl(re){wo.call(this,re,-1,$c)}Jr(Rl,wo);function Zs(re){e:{var be=new Rl;for(re=new Xo(re);ul(re);)switch(re.i){case 10:var Ze=fl(re,new js,ld);Lr(be,Ze,js,void 0);break;default:if(!ri(be,re))break e}}return be}var $c=[1];function Is(re){wo.call(this,re)}Jr(Is,wo);function Sl(re){wo.call(this,re,-1,Dd)}Jr(Sl,wo),Sl.prototype.getVertexType=function(){return Ro(this,1,0)},Sl.prototype.getPrimitiveType=function(){return Ro(this,2,0)},Sl.prototype.getVertexBufferList=function(){return zs(this)},Sl.prototype.getIndexBufferList=function(){return Ca(this,4)};function yd(re,be){for(;ul(be);)switch(be.i){case 8:var Ze=jo(be.g);mi(re,1,Ze);break;case 16:Ze=jo(be.g),mi(re,2,Ze);break;case 29:case 26:Us(be,re.getVertexBufferList());break;case 32:case 34:Ze=be;var Et=re.getIndexBufferList();Ze.h==2?Ql(Ze,Qs.prototype.i,Et):Et.push(Ze.g.i());break;default:if(!ri(re,be))return re}return re}var Dd=[3,4];function zl(re){wo.call(this,re)}Jr(zl,wo),zl.prototype.getMesh=function(){return ao(this,Sl,1)},zl.prototype.getPoseTransformMatrix=function(){return ao(this,Ta,2)};function Ic(re){e:{var be=new zl;for(re=new Xo(re);ul(re);)switch(re.i){case 10:var Ze=fl(re,new Sl,yd);lr(be,1,Ze);break;case 18:Ze=fl(re,new Ta,vo),lr(be,2,Ze);break;default:if(!ri(be,re))break e}}return be}function Cs(re,be,Ze){if(Ze=re.createShader(Ze===0?re.VERTEX_SHADER:re.FRAGMENT_SHADER),re.shaderSource(Ze,be),re.compileShader(Ze),!re.getShaderParameter(Ze,re.COMPILE_STATUS))throw Error(`Could not compile WebGL shader. `+re.getShaderInfoLog(Ze));return Ze}function Fd(re){return On(re,Rs).map(function(be){return{index:Ro(be,1,0),Y:Yi(be,2),label:Oa(be,3)!=null?Ro(be,3,""):void 0,displayName:Oa(be,4)!=null?Ro(be,4,""):void 0}})}function zd(re){return{x:Yi(re,1),y:Yi(re,2),z:Yi(re,3),visibility:Oa(re,4)!=null?Yi(re,4):void 0}}function Mc(re,be){this.h=re,this.g=be,this.l=0}function Js(re,be,Ze){return jd(re,be),typeof re.g.canvas.transferToImageBitmap=="function"?a.resolve(re.g.canvas.transferToImageBitmap()):Ze?a.resolve(re.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(re.g.canvas):(re.i===void 0&&(re.i=document.createElement("canvas")),new a(function(Et){re.i.height=re.g.canvas.height,re.i.width=re.g.canvas.width,re.i.getContext("2d",{}).drawImage(re.g.canvas,0,0,re.g.canvas.width,re.g.canvas.height),Et(re.i)}))}function jd(re,be){var Ze=re.g;if(re.m===void 0){var Et=Cs(Ze,` attribute vec2 aVertex; attribute vec2 aTex; varying vec2 vTex; void main(void) { gl_Position = vec4(aVertex, 0.0, 1.0); vTex = aTex; }`,0),an=Cs(Ze,` precision mediump float; varying vec2 vTex; uniform sampler2D sampler0; void main(){ gl_FragColor = texture2D(sampler0, vTex); }`,1),Xn=Ze.createProgram();if(Ze.attachShader(Xn,Et),Ze.attachShader(Xn,an),Ze.linkProgram(Xn),!Ze.getProgramParameter(Xn,Ze.LINK_STATUS))throw Error(`Could not compile WebGL program. `+Ze.getProgramInfoLog(Xn));Et=re.m=Xn,Ze.useProgram(Et),an=Ze.getUniformLocation(Et,"sampler0"),re.j={I:Ze.getAttribLocation(Et,"aVertex"),H:Ze.getAttribLocation(Et,"aTex"),da:an},re.s=Ze.createBuffer(),Ze.bindBuffer(Ze.ARRAY_BUFFER,re.s),Ze.enableVertexAttribArray(re.j.I),Ze.vertexAttribPointer(re.j.I,2,Ze.FLOAT,!1,0,0),Ze.bufferData(Ze.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),Ze.STATIC_DRAW),Ze.bindBuffer(Ze.ARRAY_BUFFER,null),re.o=Ze.createBuffer(),Ze.bindBuffer(Ze.ARRAY_BUFFER,re.o),Ze.enableVertexAttribArray(re.j.H),Ze.vertexAttribPointer(re.j.H,2,Ze.FLOAT,!1,0,0),Ze.bufferData(Ze.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),Ze.STATIC_DRAW),Ze.bindBuffer(Ze.ARRAY_BUFFER,null),Ze.uniform1i(an,0)}Et=re.j,Ze.useProgram(re.m),Ze.canvas.width=be.width,Ze.canvas.height=be.height,Ze.viewport(0,0,be.width,be.height),Ze.activeTexture(Ze.TEXTURE0),re.h.bindTexture2d(be.glName),Ze.enableVertexAttribArray(Et.I),Ze.bindBuffer(Ze.ARRAY_BUFFER,re.s),Ze.vertexAttribPointer(Et.I,2,Ze.FLOAT,!1,0,0),Ze.enableVertexAttribArray(Et.H),Ze.bindBuffer(Ze.ARRAY_BUFFER,re.o),Ze.vertexAttribPointer(Et.H,2,Ze.FLOAT,!1,0,0),Ze.bindFramebuffer(Ze.DRAW_FRAMEBUFFER?Ze.DRAW_FRAMEBUFFER:Ze.FRAMEBUFFER,null),Ze.clearColor(0,0,0,0),Ze.clear(Ze.COLOR_BUFFER_BIT),Ze.colorMask(!0,!0,!0,!0),Ze.drawArrays(Ze.TRIANGLE_FAN,0,4),Ze.disableVertexAttribArray(Et.I),Ze.disableVertexAttribArray(Et.H),Ze.bindBuffer(Ze.ARRAY_BUFFER,null),re.h.bindTexture2d(0)}function yu(re){this.g=re}var Fu=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function _d(re,be){return be+re}function lc(re,be){window[re]=be}function ue(re){var be=document.createElement("script");return be.setAttribute("src",re),be.setAttribute("crossorigin","anonymous"),new a(function(Ze){be.addEventListener("load",function(){Ze()},!1),be.addEventListener("error",function(){Ze()},!1),document.body.appendChild(be)})}function Te(){return Xa(this,function re(){return za(re,function(be){switch(be.g){case 1:return be.m=2,Tn(be,WebAssembly.instantiate(Fu),4);case 4:be.g=3,be.m=0;break;case 2:return be.m=0,be.j=null,be.return(!1);case 3:return be.return(!0)}})})}function ke(re){if(this.g=re,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=a.resolve(),this.P="",this.B={},this.locateFile=re&&re.locateFile||_d,typeof window=="object")var be=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location<"u")be=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=be,re.options){be=ft(Object.keys(re.options));for(var Ze=be.next();!Ze.done;Ze=be.next()){Ze=Ze.value;var Et=re.options[Ze].default;Et!==void 0&&(this.j[Ze]=typeof Et=="function"?Et():Et)}}}G=ke.prototype,G.close=function(){return this.i&&this.i.delete(),a.resolve()};function xt(re,be){return re.g.files===void 0?[]:typeof re.g.files=="function"?re.g.files(be):re.g.files}function vn(re){return Xa(re,function be(){var Ze=this,Et,an,Xn,ln,Hn,pr,D,Ie,De,gt,wt;return za(be,function(sn){switch(sn.g){case 1:return Et=Ze,Ze.R?(an=xt(Ze,Ze.j),Tn(sn,Te(),2)):sn.return();case 2:if(Xn=sn.h,typeof window=="object")return lc("createMediapipeSolutionsWasm",{locateFile:Ze.locateFile}),lc("createMediapipeSolutionsPackedAssets",{locateFile:Ze.locateFile}),pr=an.filter(function(rn){return rn.data!==void 0}),D=an.filter(function(rn){return rn.data===void 0}),Ie=a.all(pr.map(function(rn){var $n=ir(Et,rn.url);if(rn.path!==void 0){var Ln=rn.path;$n=$n.then(function(Xr){return Et.overrideFile(Ln,Xr),a.resolve(Xr)})}return $n})),De=a.all(D.map(function(rn){return rn.simd===void 0||rn.simd&&Xn||!rn.simd&&!Xn?ue(Et.locateFile(rn.url,Et.S)):a.resolve()})).then(function(){return Xa(Et,function rn(){var $n,Ln,Xr=this;return za(rn,function(ii){if(ii.g==1)return $n=window.createMediapipeSolutionsWasm,Ln=window.createMediapipeSolutionsPackedAssets,Tn(ii,$n(Ln),2);Xr.h=ii.h,ii.g=0})})}),gt=function(){return Xa(Et,function rn(){var $n=this;return za(rn,function(Ln){return $n.g.graph&&$n.g.graph.url?Ln=Tn(Ln,ir($n,$n.g.graph.url),0):(Ln.g=0,Ln=void 0),Ln})})}(),Tn(sn,a.all([De,Ie,gt]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return ln=an.filter(function(rn){return rn.simd===void 0||rn.simd&&Xn||!rn.simd&&!Xn}).map(function(rn){return Et.locateFile(rn.url,Et.S)}),importScripts.apply(null,kt(ln)),Tn(sn,createMediapipeSolutionsWasm(Module),6);case 6:Ze.h=sn.h,Ze.l=new OffscreenCanvas(1,1),Ze.h.canvas=Ze.l,Hn=Ze.h.GL.createContext(Ze.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext<"u"?2:1}),Ze.h.GL.makeContextCurrent(Hn),sn.g=4;break;case 7:if(Ze.l=document.createElement("canvas"),wt=Ze.l.getContext("webgl2",{}),!wt&&(wt=Ze.l.getContext("webgl",{}),!wt))return alert("Failed to create WebGL canvas context when passing video frame."),sn.return();Ze.D=wt,Ze.h.canvas=Ze.l,Ze.h.createContext(Ze.l,!0,!0,{});case 4:Ze.i=new Ze.h.SolutionWasm,Ze.R=!1,sn.g=0}})})}function ur(re){return Xa(re,function be(){var Ze=this,Et,an,Xn,ln,Hn,pr,D,Ie;return za(be,function(De){if(De.g==1){if(Ze.g.graph&&Ze.g.graph.url&&Ze.P===Ze.g.graph.url)return De.return();if(Ze.o=!0,!Ze.g.graph||!Ze.g.graph.url){De.g=2;return}return Ze.P=Ze.g.graph.url,Tn(De,ir(Ze,Ze.g.graph.url),3)}for(De.g!=2&&(Et=De.h,Ze.i.loadGraph(Et)),an=ft(Object.keys(Ze.B)),Xn=an.next();!Xn.done;Xn=an.next())ln=Xn.value,Ze.i.overrideFile(ln,Ze.B[ln]);if(Ze.B={},Ze.g.listeners)for(Hn=ft(Ze.g.listeners),pr=Hn.next();!pr.done;pr=Hn.next())D=pr.value,ra(Ze,D);Ie=Ze.j,Ze.j={},Ze.setOptions(Ie),De.g=0})})}G.reset=function(){return Xa(this,function re(){var be=this;return za(re,function(Ze){be.i&&(be.i.reset(),be.m={},be.s={}),Ze.g=0})})},G.setOptions=function(re,be){var Ze=this;if(be=be||this.g.options){for(var Et=[],an=[],Xn={},ln=ft(Object.keys(re)),Hn=ln.next();!Hn.done;Xn={K:Xn.K,L:Xn.L},Hn=ln.next()){var pr=Hn.value;pr in this.j&&this.j[pr]===re[pr]||(this.j[pr]=re[pr],Hn=be[pr],Hn!==void 0&&(Hn.onChange&&(Xn.K=Hn.onChange,Xn.L=re[pr],Et.push(function(D){return function(){return Xa(Ze,function Ie(){var De,gt=this;return za(Ie,function(wt){if(wt.g==1)return Tn(wt,D.K(D.L),2);De=wt.h,De===!0&&(gt.o=!0),wt.g=0})})}}(Xn))),Hn.graphOptionXref&&(pr={valueNumber:Hn.type===1?re[pr]:0,valueBoolean:Hn.type===0?re[pr]:!1,valueString:Hn.type===2?re[pr]:""},Hn=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),Hn.graphOptionXref),pr),an.push(Hn))))}(Et.length!==0||an.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(an),this.u=(this.u===void 0?[]:this.u).concat(Et))}};function Zn(re){return Xa(re,function be(){var Ze=this,Et,an,Xn,ln,Hn,pr,D;return za(be,function(Ie){switch(Ie.g){case 1:if(!Ze.o)return Ie.return();if(!Ze.u){Ie.g=2;break}Et=ft(Ze.u),an=Et.next();case 3:if(an.done){Ie.g=5;break}return Xn=an.value,Tn(Ie,Xn(),4);case 4:an=Et.next(),Ie.g=3;break;case 5:Ze.u=void 0;case 2:if(Ze.A){for(ln=new Ze.h.GraphOptionChangeRequestList,Hn=ft(Ze.A),pr=Hn.next();!pr.done;pr=Hn.next())D=pr.value,ln.push_back(D);Ze.i.changeOptions(ln),ln.delete(),Ze.A=void 0}Ze.o=!1,Ie.g=0}})})}G.initialize=function(){return Xa(this,function re(){var be=this;return za(re,function(Ze){return Ze.g==1?Tn(Ze,vn(be),2):Ze.g!=3?Tn(Ze,ur(be),3):Tn(Ze,Zn(be),0)})})};function ir(re,be){return Xa(re,function Ze(){var Et=this,an,Xn;return za(Ze,function(ln){return be in Et.F?ln.return(Et.F[be]):(an=Et.locateFile(be,""),Xn=fetch(an).then(function(Hn){return Hn.arrayBuffer()}),Et.F[be]=Xn,ln.return(Xn))})})}G.overrideFile=function(re,be){this.i?this.i.overrideFile(re,be):this.B[re]=be},G.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},G.send=function(re,be){return Xa(this,function Ze(){var Et=this,an,Xn,ln,Hn,pr,D,Ie,De,gt;return za(Ze,function(wt){switch(wt.g){case 1:return Et.g.inputs?(an=1e3*(be??performance.now()),Tn(wt,Et.C,2)):wt.return();case 2:return Tn(wt,Et.initialize(),3);case 3:for(Xn=new Et.h.PacketDataList,ln=ft(Object.keys(re)),Hn=ln.next();!Hn.done;Hn=ln.next())if(pr=Hn.value,D=Et.g.inputs[pr]){e:{var sn=Et,rn=re[pr];switch(D.type){case"video":var $n=sn.m[D.stream];if($n||($n=new Mc(sn.h,sn.D),sn.m[D.stream]=$n),sn=$n,sn.l===0&&(sn.l=sn.h.createTexture()),typeof HTMLVideoElement<"u"&&rn instanceof HTMLVideoElement){var Ln=rn.videoWidth;$n=rn.videoHeight}else typeof HTMLImageElement<"u"&&rn instanceof HTMLImageElement?(Ln=rn.naturalWidth,$n=rn.naturalHeight):(Ln=rn.width,$n=rn.height);$n={glName:sn.l,width:Ln,height:$n},Ln=sn.g,Ln.canvas.width=$n.width,Ln.canvas.height=$n.height,Ln.activeTexture(Ln.TEXTURE0),sn.h.bindTexture2d(sn.l),Ln.texImage2D(Ln.TEXTURE_2D,0,Ln.RGBA,Ln.RGBA,Ln.UNSIGNED_BYTE,rn),sn.h.bindTexture2d(0),sn=$n;break e;case"detections":for($n=sn.m[D.stream],$n||($n=new yu(sn.h),sn.m[D.stream]=$n),sn=$n,sn.data||(sn.data=new sn.g.DetectionListData),sn.data.reset(rn.length),$n=0;$n<rn.length;++$n){Ln=rn[$n];var Xr=sn.data,ii=Xr.setBoundingBox,aa=$n,pi=Ln.T,Ir=new Is;mi(Ir,1,pi.Z),mi(Ir,2,pi.$),mi(Ir,3,pi.height),mi(Ir,4,pi.width),mi(Ir,5,pi.rotation),mi(Ir,6,pi.X);var ai=pi=new Oo;ms(ai,1,Oa(Ir,1)),ms(ai,2,Oa(Ir,2)),ms(ai,3,Oa(Ir,3)),ms(ai,4,Oa(Ir,4)),ms(ai,5,Oa(Ir,5));var bi=Oa(Ir,6);if(bi!=null&&bi!=null){Ha(ai.g,48);var vi=ai.g,Xi=bi;bi=0>Xi,Xi=Math.abs(Xi);var L=Xi>>>0;for(Xi=Math.floor((Xi-L)/4294967296),Xi>>>=0,bi&&(Xi=~Xi>>>0,L=(~L>>>0)+1,4294967295<L&&(L=0,Xi++,4294967295<Xi&&(Xi=0))),Ao=L,cl=Xi,bi=Ao,L=cl;0<L||127<bi;)vi.push(bi&127|128),bi=(bi>>>7|L<<25)>>>0,L>>>=7;vi.push(bi)}if(Ii(Ir,ai),pi=Xl(pi),ii.call(Xr,aa,pi),Ln.O)for(Xr=0;Xr<Ln.O.length;++Xr)Ir=Ln.O[Xr],ai=!!Ir.visibility,ii=sn.data,aa=ii.addNormalizedLandmark,pi=$n,Ir=Object.assign(Object.assign({},Ir),{visibility:ai?Ir.visibility:0}),ai=new js,mi(ai,1,Ir.x),mi(ai,2,Ir.y),mi(ai,3,Ir.z),Ir.visibility&&mi(ai,4,Ir.visibility),vi=Ir=new Oo,ms(vi,1,Oa(ai,1)),ms(vi,2,Oa(ai,2)),ms(vi,3,Oa(ai,3)),ms(vi,4,Oa(ai,4)),ms(vi,5,Oa(ai,5)),Ii(ai,vi),Ir=Xl(Ir),aa.call(ii,pi,Ir);if(Ln.M)for(Xr=0;Xr<Ln.M.length;++Xr){if(ii=sn.data,aa=ii.addClassification,pi=$n,Ir=Ln.M[Xr],ai=new Rs,mi(ai,2,Ir.Y),Ir.index&&mi(ai,1,Ir.index),Ir.label&&mi(ai,3,Ir.label),Ir.displayName&&mi(ai,4,Ir.displayName),vi=Ir=new Oo,L=Oa(ai,1),L!=null&&L!=null)if(Ha(vi.g,8),bi=vi.g,0<=L)Ha(bi,L);else{for(Xi=0;9>Xi;Xi++)bi.push(L&127|128),L>>=7;bi.push(1)}ms(vi,2,Oa(ai,2)),bi=Oa(ai,3),bi!=null&&(bi=Xd(bi),Ha(vi.g,26),Ha(vi.g,bi.length),Wa(vi,vi.g.end()),Wa(vi,bi)),bi=Oa(ai,4),bi!=null&&(bi=Xd(bi),Ha(vi.g,34),Ha(vi.g,bi.length),Wa(vi,vi.g.end()),Wa(vi,bi)),Ii(ai,vi),Ir=Xl(Ir),aa.call(ii,pi,Ir)}}sn=sn.data;break e;default:sn={}}}switch(Ie=sn,De=D.stream,D.type){case"video":Xn.pushTexture2d(Object.assign(Object.assign({},Ie),{stream:De,timestamp:an}));break;case"detections":gt=Ie,gt.stream=De,gt.timestamp=an,Xn.pushDetectionList(gt);break;default:throw Error("Unknown input config type: '"+D.type+"'")}}return Et.i.send(Xn),Tn(wt,Et.C,4);case 4:Xn.delete(),wt.g=0}})})};function Nr(re,be,Ze){return Xa(re,function Et(){var an,Xn,ln,Hn,pr,D,Ie=this,De,gt,wt,sn,rn,$n,Ln,Xr;return za(Et,function(ii){switch(ii.g){case 1:if(!Ze)return ii.return(be);for(an={},Xn=0,ln=ft(Object.keys(Ze)),Hn=ln.next();!Hn.done;Hn=ln.next())pr=Hn.value,D=Ze[pr],typeof D!="string"&&D.type==="texture"&&be[D.stream]!==void 0&&++Xn;1<Xn&&(Ie.G=!1),De=ft(Object.keys(Ze)),Hn=De.next();case 2:if(Hn.done){ii.g=4;break}if(gt=Hn.value,wt=Ze[gt],typeof wt=="string")return Ln=an,Xr=gt,Tn(ii,Ai(Ie,gt,be[wt]),14);if(sn=be[wt.stream],wt.type==="detection_list"){if(sn){for(var aa=sn.getRectList(),pi=sn.getLandmarksList(),Ir=sn.getClassificationsList(),ai=[],bi=0;bi<aa.size();++bi){var vi=aa.get(bi);e:{var Xi=new Is;for(vi=new Xo(vi);ul(vi);)switch(vi.i){case 13:var L=xa(vi);mi(Xi,1,L);break;case 21:L=xa(vi),mi(Xi,2,L);break;case 29:L=xa(vi),mi(Xi,3,L);break;case 37:L=xa(vi),mi(Xi,4,L);break;case 45:L=xa(vi),mi(Xi,5,L);break;case 48:L=jo(vi.g),mi(Xi,6,L);break;default:if(!ri(Xi,vi))break e}}Xi={Z:Yi(Xi,1),$:Yi(Xi,2),height:Yi(Xi,3),width:Yi(Xi,4),rotation:Yi(Xi,5,0),X:Ro(Xi,6,0)},vi=On(Zs(pi.get(bi)),js).map(zd);var Ue=Ir.get(bi);e:for(L=new od,Ue=new Xo(Ue);ul(Ue);)switch(Ue.i){case 10:L.addClassification(fl(Ue,new Rs,Yd));break;default:if(!ri(L,Ue))break e}Xi={T:Xi,O:vi,M:Fd(L)},ai.push(Xi)}aa=ai}else aa=[];an[gt]=aa,ii.g=7;break}if(wt.type==="proto_list"){if(sn){for(aa=Array(sn.size()),pi=0;pi<sn.size();pi++)aa[pi]=sn.get(pi);sn.delete()}else aa=[];an[gt]=aa,ii.g=7;break}if(sn===void 0){ii.g=3;break}if(wt.type==="float_list"){an[gt]=sn,ii.g=7;break}if(wt.type==="proto"){an[gt]=sn,ii.g=7;break}if(wt.type!=="texture")throw Error("Unknown output config type: '"+wt.type+"'");return rn=Ie.s[gt],rn||(rn=new Mc(Ie.h,Ie.D),Ie.s[gt]=rn),Tn(ii,Js(rn,sn,Ie.G),13);case 13:$n=ii.h,an[gt]=$n;case 7:wt.transform&&an[gt]&&(an[gt]=wt.transform(an[gt])),ii.g=3;break;case 14:Ln[Xr]=ii.h;case 3:Hn=De.next(),ii.g=2;break;case 4:return ii.return(an)}})})}function Ai(re,be,Ze){return Xa(re,function Et(){var an=this,Xn;return za(Et,function(ln){return typeof Ze=="number"||Ze instanceof Uint8Array||Ze instanceof an.h.Uint8BlobList?ln.return(Ze):Ze instanceof an.h.Texture2dDataOut?(Xn=an.s[be],Xn||(Xn=new Mc(an.h,an.D),an.s[be]=Xn),ln.return(Js(Xn,Ze,an.G))):ln.return(void 0)})})}function ra(re,be){for(var Ze=be.name||"$",Et=[].concat(kt(be.wants)),an=new re.h.StringList,Xn=ft(be.wants),ln=Xn.next();!ln.done;ln=Xn.next())an.push_back(ln.value);Xn=re.h.PacketListener.implement({onResults:function(Hn){for(var pr={},D=0;D<be.wants.length;++D)pr[Et[D]]=Hn.get(D);var Ie=re.listeners[Ze];Ie&&(re.C=Nr(re,pr,be.outs).then(function(De){De=Ie(De);for(var gt=0;gt<be.wants.length;++gt){var wt=pr[Et[gt]];typeof wt=="object"&&wt.hasOwnProperty&&wt.hasOwnProperty("delete")&&wt.delete()}De&&(re.C=De)}))}}),re.i.attachMultiListener(an,Xn),an.delete()}G.onResults=function(re,be){this.listeners[be||"$"]=re},dl("Solution",ke),dl("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function Ki(re){re=Ic(re);var be=re.getMesh();if(!be)return re;var Ze=new Float32Array(be.getVertexBufferList());be.getVertexBufferList=function(){return Ze};var Et=new Uint32Array(be.getIndexBufferList());return be.getIndexBufferList=function(){return Et},re}var Ya={files:[{url:"face_mesh_solution_packed_assets_loader.js"},{simd:!0,url:"face_mesh_solution_simd_wasm_bin.js"},{simd:!1,url:"face_mesh_solution_wasm_bin.js"}],graph:{url:"face_mesh.binarypb"},listeners:[{wants:["multi_face_geometry","image_transformed","multi_face_landmarks"],outs:{image:"image_transformed",multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:function(re){return re.map(Ki)}},multiFaceLandmarks:{type:"proto_list",stream:"multi_face_landmarks",transform:function(re){return re.map(function(be){return On(Zs(be),js).map(zd)})}}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumFaces:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorNumFaces",fieldName:"int_value"}},refineLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facelandmarkfrontgpu__facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"facelandmarkfrontgpu__facelandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}},zi=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],Bi=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],qi=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],ka=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],uo=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],Bo=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],No=[].concat(kt(zi),kt(Bi),kt(qi),kt(ka),kt(uo),kt(Bo));function Wl(re){re=re||{},re=Object.assign(Object.assign({},Ya),re),this.g=new ke(re)}G=Wl.prototype,G.close=function(){return this.g.close(),a.resolve()},G.onResults=function(re){this.g.onResults(re)},G.initialize=function(){return Xa(this,function re(){var be=this;return za(re,function(Ze){return Tn(Ze,be.g.initialize(),0)})})},G.reset=function(){this.g.reset()},G.send=function(re){return Xa(this,function be(){var Ze=this;return za(be,function(Et){return Tn(Et,Ze.g.send(re),0)})})},G.setOptions=function(re){this.g.setOptions(re)},dl("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),dl("FaceMesh",Wl),dl("FACEMESH_LIPS",zi),dl("FACEMESH_LEFT_EYE",Bi),dl("FACEMESH_LEFT_EYEBROW",qi),dl("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),dl("FACEMESH_RIGHT_EYE",ka),dl("FACEMESH_RIGHT_EYEBROW",uo),dl("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),dl("FACEMESH_FACE_OVAL",Bo),dl("FACEMESH_CONTOURS",No),dl("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),dl("matrixDataToMatrix",function(re){for(var be=re.getCols(),Ze=re.getRows(),Et=re.getPackedDataList(),an=[],Xn=0;Xn<Ze;Xn++)an.push(Array(be));for(Xn=0;Xn<Ze;Xn++)for(var ln=0;ln<be;ln++){var Hn=re.getLayout()===1?Xn*be+ln:ln*Ze+Xn;an[Xn][ln]=Et[Hn]}return an}),dl("VERSION","0.4.1633559619")}).call(zt);const Ot={};(function(){var G;function Z(U){var M=0;return function(){return M<U.length?{done:!1,value:U[M++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(U,M,O){return U==Array.prototype||U==Object.prototype||(U[M]=O.value),U};function se(U){U=[typeof globalThis=="object"&&globalThis,U,typeof window=="object"&&window,typeof self=="object"&&self,typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr)];for(var M=0;M<U.length;++M){var O=U[M];if(O&&O.Math==Math)return O}throw Error("Cannot find global object")}var Qe=se(this);function et(U,M){if(M)e:{var O=Qe;U=U.split(".");for(var fe=0;fe<U.length-1;fe++){var je=U[fe];if(!(je in O))break e;O=O[je]}U=U[U.length-1],fe=O[U],M=M(fe),M!=fe&&M!=null&&W(O,U,{configurable:!0,writable:!0,value:M})}}et("Symbol",function(U){function M(pt){if(this instanceof M)throw new TypeError("Symbol is not a constructor");return new O(fe+(pt||"")+"_"+je++,pt)}function O(pt,vt){this.g=pt,W(this,"description",{configurable:!0,writable:!0,value:vt})}if(U)return U;O.prototype.toString=function(){return this.g};var fe="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",je=0;return M}),et("Symbol.iterator",function(U){if(U)return U;U=Symbol("Symbol.iterator");for(var M="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),O=0;O<M.length;O++){var fe=Qe[M[O]];typeof fe=="function"&&typeof fe.prototype[U]!="function"&&W(fe.prototype,U,{configurable:!0,writable:!0,value:function(){return Zt(Z(this))}})}return U});function Zt(U){return U={next:U},U[Symbol.iterator]=function(){return this},U}function ft(U){var M=typeof Symbol<"u"&&Symbol.iterator&&U[Symbol.iterator];return M?M.call(U):{next:Z(U)}}function kt(U){if(!(U instanceof Array)){U=ft(U);for(var M,O=[];!(M=U.next()).done;)O.push(M.value);U=O}return U}var rr=typeof Object.create=="function"?Object.create:function(U){function M(){}return M.prototype=U,new M},gr;if(typeof Object.setPrototypeOf=="function")gr=Object.setPrototypeOf;else{var Wr;e:{var Ui={a:!0},Ci={};try{Ci.__proto__=Ui,Wr=Ci.a;break e}catch{}Wr=!1}gr=Wr?function(U,M){if(U.__proto__=M,U.__proto__!==M)throw new TypeError(U+" is not extensible");return U}:null}var Qr=gr;function Jr(U,M){if(U.prototype=rr(M.prototype),U.prototype.constructor=U,Qr)Qr(U,M);else for(var O in M)if(O!="prototype")if(Object.defineProperties){var fe=Object.getOwnPropertyDescriptor(M,O);fe&&Object.defineProperty(U,O,fe)}else U[O]=M[O];U.ka=M.prototype}function $i(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fa(U){if(U.l)throw new TypeError("Generator is already running");U.l=!0}$i.prototype.o=function(U){this.h=U};function ro(U,M){U.j={V:M,X:!0},U.g=U.m||U.s}$i.prototype.return=function(U){this.j={return:U},this.g=this.s};function Tn(U,M,O){return U.g=O,{value:M}}function ps(U){this.g=new $i,this.h=U}function id(U,M){fa(U.g);var O=U.g.i;return O?xo(U,"return"in O?O.return:function(fe){return{value:fe,done:!0}},M,U.g.return):(U.g.return(M),ba(U))}function xo(U,M,O,fe){try{var je=M.call(U.g.i,O);if(!(je instanceof Object))throw new TypeError("Iterator result "+je+" is not an object");if(!je.done)return U.g.l=!1,je;var pt=je.value}catch(vt){return U.g.i=null,ro(U.g,vt),ba(U)}return U.g.i=null,fe.call(U.g,pt),ba(U)}function ba(U){for(;U.g.g;)try{var M=U.h(U.g);if(M)return U.g.l=!1,{value:M.value,done:!1}}catch(O){U.g.h=void 0,ro(U.g,O)}if(U.g.l=!1,U.g.j){if(M=U.g.j,U.g.j=null,M.X)throw M.V;return{value:M.return,done:!0}}return{value:void 0,done:!0}}function Pd(U){this.next=function(M){return fa(U.g),U.g.i?M=xo(U,U.g.i.next,M,U.g.o):(U.g.o(M),M=ba(U)),M},this.throw=function(M){return fa(U.g),U.g.i?M=xo(U,U.g.i.throw,M,U.g.o):(ro(U.g,M),M=ba(U)),M},this.return=function(M){return id(U,M)},this[Symbol.iterator]=function(){return this}}function za(U){function M(fe){return U.next(fe)}function O(fe){return U.throw(fe)}return new a(function(fe,je){function pt(vt){vt.done?fe(vt.value):a.resolve(vt.value).then(M,O).then(pt,je)}pt(U.next())})}function Tr(U){return za(new Pd(new ps(U)))}et("Promise",function(U){function M(vt){this.h=0,this.i=void 0,this.g=[],this.o=!1;var nn=this.j();try{vt(nn.resolve,nn.reject)}catch(bn){nn.reject(bn)}}function O(){this.g=null}function fe(vt){return vt instanceof M?vt:new M(function(nn){nn(vt)})}if(U)return U;O.prototype.h=function(vt){if(this.g==null){this.g=[];var nn=this;this.i(function(){nn.l()})}this.g.push(vt)};var je=Qe.setTimeout;O.prototype.i=function(vt){je(vt,0)},O.prototype.l=function(){for(;this.g&&this.g.length;){var vt=this.g;this.g=[];for(var nn=0;nn<vt.length;++nn){var bn=vt[nn];vt[nn]=null;try{bn()}catch(wn){this.j(wn)}}}this.g=null},O.prototype.j=function(vt){this.i(function(){throw vt})},M.prototype.j=function(){function vt(wn){return function(Yn){bn||(bn=!0,wn.call(nn,Yn))}}var nn=this,bn=!1;return{resolve:vt(this.D),reject:vt(this.l)}},M.prototype.D=function(vt){if(vt===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(vt instanceof M)this.G(vt);else{e:switch(typeof vt){case"object":var nn=vt!=null;break e;case"function":nn=!0;break e;default:nn=!1}nn?this.A(vt):this.m(vt)}},M.prototype.A=function(vt){var nn=void 0;try{nn=vt.then}catch(bn){this.l(bn);return}typeof nn=="function"?this.H(nn,vt):this.m(vt)},M.prototype.l=function(vt){this.s(2,vt)},M.prototype.m=function(vt){this.s(1,vt)},M.prototype.s=function(vt,nn){if(this.h!=0)throw Error("Cannot settle("+vt+", "+nn+"): Promise already settled in state"+this.h);this.h=vt,this.i=nn,this.h===2&&this.F(),this.B()},M.prototype.F=function(){var vt=this;je(function(){if(vt.C()){var nn=Qe.console;typeof nn<"u"&&nn.error(vt.i)}},1)},M.prototype.C=function(){if(this.o)return!1;var vt=Qe.CustomEvent,nn=Qe.Event,bn=Qe.dispatchEvent;return typeof bn>"u"?!0:(typeof vt=="function"?vt=new vt("unhandledrejection",{cancelable:!0}):typeof nn=="function"?vt=new nn("unhandledrejection",{cancelable:!0}):(vt=Qe.document.createEvent("CustomEvent"),vt.initCustomEvent("unhandledrejection",!1,!0,vt)),vt.promise=this,vt.reason=this.i,bn(vt))},M.prototype.B=function(){if(this.g!=null){for(var vt=0;vt<this.g.length;++vt)pt.h(this.g[vt]);this.g=null}};var pt=new O;return M.prototype.G=function(vt){var nn=this.j();vt.K(nn.resolve,nn.reject)},M.prototype.H=function(vt,nn){var bn=this.j();try{vt.call(nn,bn.resolve,bn.reject)}catch(wn){bn.reject(wn)}},M.prototype.then=function(vt,nn){function bn(Cr,Vr){return typeof Cr=="function"?function(_r){try{wn(Cr(_r))}catch(jr){Yn(jr)}}:Vr}var wn,Yn,fr=new M(function(Cr,Vr){wn=Cr,Yn=Vr});return this.K(bn(vt,wn),bn(nn,Yn)),fr},M.prototype.catch=function(vt){return this.then(void 0,vt)},M.prototype.K=function(vt,nn){function bn(){switch(wn.h){case 1:vt(wn.i);break;case 2:nn(wn.i);break;default:throw Error("Unexpected state: "+wn.h)}}var wn=this;this.g==null?pt.h(bn):this.g.push(bn),this.o=!0},M.resolve=fe,M.reject=function(vt){return new M(function(nn,bn){bn(vt)})},M.race=function(vt){return new M(function(nn,bn){for(var wn=ft(vt),Yn=wn.next();!Yn.done;Yn=wn.next())fe(Yn.value).K(nn,bn)})},M.all=function(vt){var nn=ft(vt),bn=nn.next();return bn.done?fe([]):new M(function(wn,Yn){function fr(_r){return function(jr){Cr[_r]=jr,Vr--,Vr==0&&wn(Cr)}}var Cr=[],Vr=0;do Cr.push(void 0),Vr++,fe(bn.value).K(fr(Cr.length-1),Yn),bn=nn.next();while(!bn.done)})},M});function _c(U,M){U instanceof String&&(U+="");var O=0,fe=!1,je={next:function(){if(!fe&&O<U.length){var pt=O++;return{value:M(pt,U[pt]),done:!1}}return fe=!0,{done:!0,value:void 0}}};return je[Symbol.iterator]=function(){return je},je}var Dc=typeof Object.assign=="function"?Object.assign:function(U,M){for(var O=1;O<arguments.length;O++){var fe=arguments[O];if(fe)for(var je in fe)Object.prototype.hasOwnProperty.call(fe,je)&&(U[je]=fe[je])}return U};et("Object.assign",function(U){return U||Dc}),et("Object.is",function(U){return U||function(M,O){return M===O?M!==0||1/M===1/O:M!==M&&O!==O}}),et("Array.prototype.includes",function(U){return U||function(M,O){var fe=this;fe instanceof String&&(fe=String(fe));var je=fe.length;for(O=O||0,0>O&&(O=Math.max(O+je,0));O<je;O++){var pt=fe[O];if(pt===M||Object.is(pt,M))return!0}return!1}}),et("String.prototype.includes",function(U){return U||function(M,O){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(M instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(M,O||0)!==-1}}),et("Array.prototype.keys",function(U){return U||function(){return _c(this,function(M){return M})}});var dl=this||self;function Oi(U,M){U=U.split(".");var O=dl;U[0]in O||typeof O.execScript>"u"||O.execScript("var "+U[0]);for(var fe;U.length&&(fe=U.shift());)U.length||M===void 0?O[fe]&&O[fe]!==Object.prototype[fe]?O=O[fe]:O=O[fe]={}:O[fe]=M}function Fl(U){throw U}function Ks(U,M){Fl(Error("Invalid wire type: "+U+" (at position "+M+")"))}function Ed(){Fl(Error("Failed to read varint, encoding is invalid."))}function ac(U,M){return M=String.fromCharCode.apply(null,M),U==null?M:U+M}var Xd,bc=typeof TextDecoder<"u",Ps,Kl=typeof TextEncoder<"u";function kd(U){if(Kl)U=(Ps||(Ps=new TextEncoder)).encode(U);else{var M=void 0;M=M===void 0?!1:M;for(var O=0,fe=new Uint8Array(3*U.length),je=0;je<U.length;je++){var pt=U.charCodeAt(je);if(128>pt)fe[O++]=pt;else{if(2048>pt)fe[O++]=pt>>6|192;else{if(55296<=pt&&57343>=pt){if(56319>=pt&&je<U.length){var vt=U.charCodeAt(++je);if(56320<=vt&&57343>=vt){pt=1024*(pt-55296)+vt-56320+65536,fe[O++]=pt>>18|240,fe[O++]=pt>>12&63|128,fe[O++]=pt>>6&63|128,fe[O++]=pt&63|128;continue}else je--}if(M)throw Error("Found an unpaired surrogate");pt=65533}fe[O++]=pt>>12|224,fe[O++]=pt>>6&63|128}fe[O++]=pt&63|128}}U=fe.subarray(0,O)}return U}var oc={},Sd=null;function El(U){var M;M===void 0&&(M=0),Ao(),M=oc[M];for(var O=Array(Math.floor(U.length/3)),fe=M[64]||"",je=0,pt=0;je<U.length-2;je+=3){var vt=U[je],nn=U[je+1],bn=U[je+2],wn=M[vt>>2];vt=M[(vt&3)<<4|nn>>4],nn=M[(nn&15)<<2|bn>>6],bn=M[bn&63],O[pt++]=wn+vt+nn+bn}switch(wn=0,bn=fe,U.length-je){case 2:wn=U[je+1],bn=M[(wn&15)<<2]||fe;case 1:U=U[je],O[pt]=M[U>>2]+M[(U&3)<<4|wn>>4]+bn+fe}return O.join("")}function wd(U){var M=U.length,O=3*M/4;O%3?O=Math.floor(O):"=.".indexOf(U[M-1])!=-1&&(O="=.".indexOf(U[M-2])!=-1?O-2:O-1);var fe=new Uint8Array(O),je=0;return pd(U,function(pt){fe[je++]=pt}),fe.subarray(0,je)}function pd(U,M){function O(bn){for(;fe<U.length;){var wn=U.charAt(fe++),Yn=Sd[wn];if(Yn!=null)return Yn;if(!/^[\s\xa0]*$/.test(wn))throw Error("Unknown base64 encoding at char: "+wn)}return bn}Ao();for(var fe=0;;){var je=O(-1),pt=O(0),vt=O(64),nn=O(64);if(nn===64&&je===-1)break;M(je<<2|pt>>4),vt!=64&&(M(pt<<4&240|vt>>2),nn!=64&&M(vt<<6&192|nn))}}function Ao(){if(!Sd){Sd={};for(var U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),M=["+/=","+/","-_=","-_.","-_"],O=0;5>O;O++){var fe=U.concat(M[O].split(""));oc[O]=fe;for(var je=0;je<fe.length;je++){var pt=fe[je];Sd[pt]===void 0&&(Sd[pt]=je)}}}}var cl=typeof Uint8Array=="function",Qs;function zo(U){if(this.g=U,U!==null&&U.length===0)throw Error("ByteString should be constructed with non-empty values")}var jo=typeof Uint8Array.prototype.slice=="function";function Ns(U,M,O){return M===O?Qs||(Qs=new Uint8Array(0)):jo?U.slice(M,O):new Uint8Array(U.subarray(M,O))}var Pl=0,Ha=0;function Xo(U){if(U.constructor===Uint8Array)return U;if(U.constructor===ArrayBuffer)return new Uint8Array(U);if(U.constructor===Array)return new Uint8Array(U);if(U.constructor===String)return wd(U);if(U.constructor===zo){if(U.g==null)var M=Qs||(Qs=new Uint8Array(0));else{M=Uint8Array;var O=U.g;O=O==null||cl&&O!=null&&O instanceof Uint8Array?O:typeof O=="string"?wd(O):null,U=U.g=O,M=new M(U)}return M}if(U instanceof Uint8Array)return new Uint8Array(U.buffer,U.byteOffset,U.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function ul(U,M){M=M===void 0?{}:M,M=M.v===void 0?!1:M.v,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.v=M,U&&la(this,U)}function la(U,M){U.h=Xo(M),U.l=0,U.i=U.h.length,U.g=U.l}ul.prototype.reset=function(){this.g=this.l};function fl(U){for(var M=128,O=0,fe=0,je=0;4>je&&128<=M;je++)M=U.h[U.g++],O|=(M&127)<<7*je;if(128<=M&&(M=U.h[U.g++],O|=(M&127)<<28,fe|=(M&127)>>4),128<=M)for(je=0;5>je&&128<=M;je++)M=U.h[U.g++],fe|=(M&127)<<7*je+3;if(128>M)return U=O>>>0,M=fe>>>0,(fe=M&2147483648)&&(U=~U+1>>>0,M=~M>>>0,U==0&&(M=M+1>>>0)),U=4294967296*M+(U>>>0),fe?-U:U;U.j=!0,Ed()}function xa(U){U.g>U.i&&(U.j=!0,Fl(Error("Tried to read past the end of the data "+U.g+" > "+U.i)))}function Wo(U){var M=U.h,O=M[U.g],fe=O&127;return 128>O?(U.g+=1,xa(U),fe):(O=M[U.g+1],fe|=(O&127)<<7,128>O?(U.g+=2,xa(U),fe):(O=M[U.g+2],fe|=(O&127)<<14,128>O?(U.g+=3,xa(U),fe):(O=M[U.g+3],fe|=(O&127)<<21,128>O?(U.g+=4,xa(U),fe):(O=M[U.g+4],fe|=(O&15)<<28,128>O?(U.g+=5,xa(U),fe>>>0):(U.g+=5,128<=M[U.g++]&&128<=M[U.g++]&&128<=M[U.g++]&&128<=M[U.g++]&&128<=M[U.g++]?(U.j=!0,Ed(),fe):(xa(U),fe))))))}function Ql(U){var M=U.h[U.g],O=U.h[U.g+1],fe=U.h[U.g+2],je=U.h[U.g+3];return U.g+=4,xa(U),(M<<0|O<<8|fe<<16|je<<24)>>>0}ul.prototype.m=function(){var U=Ql(this),M=2*(U>>31)+1,O=U>>>23&255;return U&=8388607,O==255?U?NaN:1/0*M:O==0?M*Math.pow(2,-149)*U:M*Math.pow(2,O-150)*(U+Math.pow(2,23))};var Us=[];function Oo(){this.g=new Uint8Array(64),this.h=0}function Wa(U,M){if(!(U.h+1<U.g.length)){var O=U.g;U.g=new Uint8Array(Math.ceil(1+2*U.g.length)),U.g.set(O)}U.g[U.h++]=M}Oo.prototype.length=function(){return this.h},Oo.prototype.end=function(){var U=this.g,M=this.h;return this.h=0,Ns(U,0,M)};function Xl(U,M){for(;127<M;)Wa(U,M&127|128),M>>>=7;Wa(U,M)}function ms(U){var M={},O=M.O===void 0?!1:M.O;this.m={v:M.v===void 0?!1:M.v},this.O=O,M=this.m,Us.length?(O=Us.pop(),M&&(O.v=M.v),U&&la(O,U),U=O):U=new ul(U,M),this.g=U,this.l=this.g.g,this.h=this.i=-1,this.j=!1}ms.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function _o(U){var M=U.g;if((M=M.g==M.i)||(M=U.j)||(M=U.g,M=M.j||0>M.g||M.g>M.i),M)return!1;U.l=U.g.g;var O=Wo(U.g);return M=O>>>3,O&=7,0<=O&&5>=O?(U.i=M,U.h=O,!0):(U.j=!0,Ks(O,U.l),!1)}function md(U){switch(U.h){case 0:if(U.h!=0)md(U);else e:{U=U.g;for(var M=U.g,O=0;10>O;O++){if(!(U.h[M]&128)){U.g=M+1,xa(U);break e}M++}U.j=!0,Ed()}break;case 1:U=U.g,U.g+=8,xa(U);break;case 2:U.h!=2?md(U):(M=Wo(U.g),U=U.g,U.g+=M,xa(U));break;case 5:U=U.g,U.g+=4,xa(U);break;case 3:M=U.i;do{if(!_o(U)){U.j=!0,Fl(Error("Unmatched start-group tag: stream EOF"));break}if(U.h==4){U.i!=M&&(U.j=!0,Fl(Error("Unmatched end-group tag")));break}md(U)}while(!0);break;default:U.j=!0,Ks(U.h,U.l)}}function Gs(U,M,O){var fe=U.g.i,je=Wo(U.g),pt=U.g.g+je;if(U.g.i=pt,O(M,U),O=pt-U.g.g,O!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(je+" bytes, instead read "+(je-O)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return U.g.g=pt,U.g.i=fe,M}var ad=[];function bd(){this.h=[],this.i=0,this.g=new Oo}function ko(U,M){M.length!==0&&(U.h.push(M),U.i+=M.length)}function Ul(U,M,O){Xl(U.g,8*M+2),Xl(U.g,O.length),ko(U,U.g.end()),ko(U,O)}var wo=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function io(U){return Object.isFrozen(U)||(wo?U[wo]|=1:U.g!==void 0?U.g|=1:Object.defineProperties(U,{g:{value:1,configurable:!0,writable:!0,enumerable:!1}})),U}function kl(U){return U!==null&&typeof U=="object"&&U.constructor===Object}function Oa(U){switch(typeof U){case"number":return isFinite(U)?U:String(U);case"object":if(cl&&U!=null&&U instanceof Uint8Array)return El(U);if(U instanceof zo){if(U.g==null)U="";else{var M=U.g;M=M==null||typeof M=="string"?M:cl&&M instanceof Uint8Array?El(M):null,U=U.g=M}return U}}return U}function Ca(U,M){if(U!=null)return Array.isArray(U)||kl(U)?zs(U,M):M(U)}function zs(U,M){if(Array.isArray(U)){for(var O=Array(U.length),fe=0;fe<U.length;fe++)O[fe]=Ca(U[fe],M);if(M=Array.isArray(U)){var je;wo?je=U[wo]:je=U.g,M=(je??0)&1}return M&&io(O),O}je={};for(O in U)je[O]=Ca(U[O],M);return je}function Ro(U){return U=Oa(U),Array.isArray(U)?zs(U,Ro):U}var Yi;function mi(U,M,O){var fe=Yi;Yi=null,U||(U=fe),fe=this.constructor.ha,U||(U=fe?[fe]:[]),this.i=(fe?0:-1)-(this.constructor.fa||0),this.l=this.g=null,this.u=U;e:{if(fe=this.u.length,U=fe-1,fe&&(fe=this.u[U],kl(fe))){this.j=U-this.i,this.h=fe;break e}M!==void 0&&-1<M?(this.j=Math.max(M,U+1-this.i),this.h=null):this.j=Number.MAX_VALUE}if(O)for(M=0;M<O.length;M++)U=O[M],U<this.j?(U+=this.i,(fe=this.u[U])?Array.isArray(fe)&&io(fe):this.u[U]=ao):(On(this),(fe=this.h[U])?Array.isArray(fe)&&io(fe):this.h[U]=ao)}var ao=Object.freeze(io([]));function On(U){var M=U.j+U.i;U.u[M]||(U.h=U.u[M]={})}function lr(U,M,O){return M===-1?null:O!==void 0&&O||M>=U.j?U.h?U.h[M]:void 0:U.u[M+U.i]}function Lr(U,M,O){O=O===void 0?!1:O;var fe=lr(U,M,O);return fe==null&&(fe=ao),fe===ao&&(fe=io(fe.slice()),ri(U,M,fe,O)),fe}function Ua(U,M){var O=Lr(U,M);if(U.l||(U.l={}),!U.l[M]){for(var fe=0;fe<O.length;fe++)O[fe]=+O[fe];U.l[M]=!0}return O}function Ii(U,M,O){return U=lr(U,M),U=U==null?U:+U,U??(O===void 0?0:O)}function ri(U,M,O,fe){fe!==void 0&&fe||M>=U.j?(On(U),U.h[M]=O):U.u[M+U.i]=O}function Ta(U,M,O,fe){O!==fe?ri(U,M,O):ri(U,M,void 0,!1)}function vo(U,M,O){if(O===-1)return null;U.g||(U.g={});var fe=U.g[O];if(fe)return fe;var je=lr(U,O,!1);return je==null?fe:(M=new M(je),U.g[O]=M)}function Yo(U,M,O){U.g||(U.g={});var fe=U.g[O];if(!fe){var je=Lr(U,O,!1);fe=[];for(var pt=0;pt<je.length;pt++)fe[pt]=new M(je[pt]);U.g[O]=fe}return fe}function Xa(U,M,O,fe,je){var pt=Yo(U,fe,M);O=O||new fe,U=Lr(U,M),je!=null?(pt.splice(je,0,O),U.splice(je,0,O.u)):(pt.push(O),U.push(O.u))}mi.prototype.toJSON=function(){return zs(this.u,Ro)},mi.prototype.toString=function(){return this.u.toString()};function Rs(U,M){return U=lr(U,M),U??0}function Yd(U,M){return U=lr(U,M),U??""}function od(U,M){if(U=U.m){ko(M,M.g.end());for(var O=0;O<U.length;O++)ko(M,U[O])}}var Bs=Symbol();function js(U,M,O){return U[Bs]||(U[Bs]=function(fe,je){return M(fe,je,O)})}function ld(U){var M=U[Bs];if(!M){var O=U[Is]||(U[Is]=U());M=function(fe,je){return Sl(fe,je,O)},U[Bs]=M}return M}function Rl(U){var M=U.da;if(M)return ld(M);if(M=U.ia){var O=U.Y;return delete U.Y,js(U.W.g,M,O)}}function Zs(U){var M=Rl(U),O=U.W,fe=U.ea;return M?function(je,pt){return fe(je,pt,O,M)}:function(je,pt){return fe(je,pt,O)}}function $c(U){var M=U[0];switch(U.length){case 2:var O=U[1];return function(Vr,_r,jr){return M(Vr,_r,jr,O)};case 3:var fe=U[1],je=ld(U[2]);return function(Vr,_r,jr){return M(Vr,_r,jr,fe,je)};case 4:var pt=U[1],vt=U[3],nn=ld(U[2]);return function(Vr,_r,jr){return M(Vr,_r,jr,pt,nn,vt)};case 5:var bn=U[1],wn=js(bn,U[3],U[4]);return function(Vr,_r,jr){return M(Vr,_r,jr,bn,wn)};case 6:var Yn=U[1],fr=U[5],Cr=js(Yn,U[3],U[4]);return function(Vr,_r,jr){return M(Vr,_r,jr,Yn,Cr,fr)};default:throw Error("Unsupported number of parameters, expected [2-6], got "+U.length)}}var Is=Symbol();function Sl(U,M,O){for(;_o(M)&&M.h!=4;){var fe=M.i,je=O[fe];if(je)Array.isArray(je)&&(je=O[fe]=$c(je));else{var pt=O[0];pt&&(pt=pt[fe])&&(je=O[fe]=Zs(pt))}je&&je(M,U,fe)||(je=M,fe=U,pt=je.l,md(je),je.O||(je=Ns(je.g.h,pt,je.g.g),(pt=fe.m)?pt.push(je):fe.m=[je]))}return U}function yd(U,M){var O=new bd;if(M(U,O),U=O.i+O.g.length(),U===0)O=new Uint8Array(0);else{U=new Uint8Array(U);for(var fe=O.h,je=fe.length,pt=M=0;pt<je;pt++){var vt=fe[pt];vt.length!==0&&(U.set(vt,M),M+=vt.length)}fe=O.g,je=fe.h,je!==0&&(U.set(fe.g.subarray(0,je),M),fe.h=0),O.h=[U],O=U}return O}function Dd(U,M,O){if(ad.length){var fe=ad.pop();U&&(la(fe.g,U),fe.i=-1,fe.h=-1),U=fe}else U=new ms(U);try{var je=new M;return Sl(je,U,O[Is]||(O[Is]=O()))}finally{M=U.g,M.h=null,M.l=0,M.i=0,M.g=0,M.j=!1,M.v=!1,U.i=-1,U.h=-1,U.j=!1,100>ad.length&&ad.push(U)}}function zl(U,M,O){if(M=lr(M,O),M!=null){Xl(U.g,8*O+5),U=U.g;var fe=M;fe=(O=0>fe?1:0)?-fe:fe,fe===0?0<1/fe?Pl=Ha=0:(Ha=0,Pl=2147483648):isNaN(fe)?(Ha=0,Pl=2147483647):34028234663852886e22<fe?(Ha=0,Pl=(O<<31|2139095040)>>>0):11754943508222875e-54>fe?(fe=Math.round(fe/Math.pow(2,-149)),Ha=0,Pl=(O<<31|fe)>>>0):(M=Math.floor(Math.log(fe)/Math.LN2),fe*=Math.pow(2,-M),fe=Math.round(8388608*fe),16777216<=fe&&++M,Ha=0,Pl=(O<<31|M+127<<23|fe&8388607)>>>0),O=Pl,Wa(U,O>>>0&255),Wa(U,O>>>8&255),Wa(U,O>>>16&255),Wa(U,O>>>24&255)}}function Ic(U,M,O){if(U.h!==1)return!1;var fe=U.g;U=Ql(fe);var je=Ql(fe);fe=2*(je>>31)+1;var pt=je>>>20&2047;return U=4294967296*(je&1048575)+U,Ta(M,O,pt==2047?U?NaN:1/0*fe:pt==0?fe*Math.pow(2,-1074)*U:fe*Math.pow(2,pt-1075)*(U+4503599627370496),0),!0}function Cs(U,M,O){return U.h!==5?!1:(ri(M,O,U.g.m()),!0)}function Fd(U,M,O){if(U.h!==5&&U.h!==2)return!1;if(M=Lr(M,O),U.h==2){O=ul.prototype.m;var fe=Wo(U.g);for(fe=U.g.g+fe;U.g.g<fe;)M.push(O.call(U.g))}else M.push(U.g.m());return!0}function zd(U,M,O){return U.h!==5?!1:(U=U.g.m(),Ta(M,O,U,0),!0)}function Mc(U,M,O){return U.h!==0?!1:(ri(M,O,fl(U.g)),!0)}function Js(U,M,O){return U.h!==0?!1:(ri(M,O,Wo(U.g)),!0)}function jd(U,M,O){return U.h!==0?!1:(U=Wo(U.g),Ta(M,O,U,0),!0)}function yu(U,M,O){return U.h!==0?!1:(U=!!Wo(U.g),Ta(M,O,U,!1),!0)}function Fu(U,M,O){if(U.h!==2)return!1;var fe=Wo(U.g);U=U.g;var je=U.g;U.g+=fe,xa(U),U=U.h;var pt;if(bc)(pt=Xd)||(pt=Xd=new TextDecoder("utf-8",{fatal:!1})),pt=pt.decode(U.subarray(je,je+fe));else{fe=je+fe;for(var vt=[],nn=null,bn,wn,Yn;je<fe;)bn=U[je++],128>bn?vt.push(bn):224>bn?je>=fe?vt.push(65533):(wn=U[je++],194>bn||(wn&192)!==128?(je--,vt.push(65533)):vt.push((bn&31)<<6|wn&63)):240>bn?je>=fe-1?vt.push(65533):(wn=U[je++],(wn&192)!==128||bn===224&&160>wn||bn===237&&160<=wn||((pt=U[je++])&192)!==128?(je--,vt.push(65533)):vt.push((bn&15)<<12|(wn&63)<<6|pt&63)):244>=bn?je>=fe-2?vt.push(65533):(wn=U[je++],(wn&192)!==128||(bn<<28)+(wn-144)>>30||((pt=U[je++])&192)!==128||((Yn=U[je++])&192)!==128?(je--,vt.push(65533)):(bn=(bn&7)<<18|(wn&63)<<12|(pt&63)<<6|Yn&63,bn-=65536,vt.push((bn>>10&1023)+55296,(bn&1023)+56320))):vt.push(65533),8192<=vt.length&&(nn=ac(nn,vt),vt.length=0);pt=ac(nn,vt)}return ri(M,O,pt),!0}function _d(U,M,O,fe,je){return U.h!==2?!1:(U=Gs(U,new fe,je),M.g||(M.g={}),fe=U&&U.u,M.g[O]=U,ri(M,O,fe,!1),!0)}function lc(U,M,O,fe,je){return U.h!==2?!1:(U=Gs(U,new fe,je),Xa(M,O,U,fe,void 0),!0)}function ue(U,M,O){return U.h!==0?!1:(ri(M,O,fl(U.g)),!0)}function Te(U){mi.call(this,U)}Jr(Te,mi);function ke(){return{1:Js,2:Cs,3:Fu,4:Fu}}function xt(U,M){var O=lr(U,1);if(O!=null&&O!=null){Xl(M.g,8);var fe=M.g;if(0<=O)Xl(fe,O);else{for(var je=0;9>je;je++)Wa(fe,O&127|128),O>>=7;Wa(fe,1)}}zl(M,U,2),fe=lr(U,3),fe!=null&&Ul(M,3,kd(fe)),fe=lr(U,4),fe!=null&&Ul(M,4,kd(fe)),od(U,M)}function vn(U){mi.call(this,U,-1,Zn)}Jr(vn,mi),vn.prototype.addClassification=function(U,M){return Xa(this,1,U,Te,M),this};function ur(){return{1:[lc,Te,ke]}}var Zn=[1];function ir(U){mi.call(this,U)}Jr(ir,mi);function Nr(){return{1:Cs,2:Cs,3:Cs,4:Cs,5:Cs}}function Ai(U,M){zl(M,U,1),zl(M,U,2),zl(M,U,3),zl(M,U,4),zl(M,U,5),od(U,M)}function ra(U){mi.call(this,U,-1,Ya)}Jr(ra,mi);function Ki(){return{1:[lc,ir,Nr]}}var Ya=[1];function zi(U){mi.call(this,U)}Jr(zi,mi);function Bi(){return{1:Cs,2:Cs,3:Cs,4:Cs,5:Cs,6:Mc}}function qi(U,M){zl(M,U,1),zl(M,U,2),zl(M,U,3),zl(M,U,4),zl(M,U,5);var O=lr(U,6);if(O!=null&&O!=null){Xl(M.g,48);var fe=M.g,je=O;O=0>je,je=Math.abs(je);var pt=je>>>0;for(je=Math.floor((je-pt)/4294967296),je>>>=0,O&&(je=~je>>>0,pt=(~pt>>>0)+1,4294967295<pt&&(pt=0,je++,4294967295<je&&(je=0))),Pl=pt,Ha=je,O=Pl,pt=Ha;0<pt||127<O;)Wa(fe,O&127|128),O=(O>>>7|pt<<25)>>>0,pt>>>=7;Wa(fe,O)}od(U,M)}function ka(U){mi.call(this,U,-1,Wl)}Jr(ka,mi);function uo(){return{1:ue,2:ue,3:Fd,4:[_d,Bo,No],5:Js,6:Js,7:Fd,8:Fd,9:Fd}}function Bo(U){mi.call(this,U)}Jr(Bo,mi);function No(){return{1:Cs,2:Cs,3:Cs}}var Wl=[3,7,8,9];function re(U){mi.call(this,U)}Jr(re,mi);function be(){return{1:zd,2:zd,3:zd}}function Ze(U){mi.call(this,U)}Jr(Ze,mi);function Et(){return{1:zd,2:zd,3:zd}}function an(U){mi.call(this,U)}Jr(an,mi);function Xn(){return{1:jd,2:[_d,Ze,Et],3:[_d,re,be],4:yu}}function ln(U){mi.call(this,U,-1,pr)}Jr(ln,mi);function Hn(){return{1:jd,2:[lc,an,Xn],3:zd,4:Fd,5:Fd,6:Fd}}var pr=[2,4,5,6];function D(U){mi.call(this,U,-1,De)}Jr(D,mi);function Ie(){return{1:jd,2:[lc,ln,Hn],3:[_d,ka,uo],4:Ic,5:Fd,6:Fd}}var De=[2,5,6];function gt(U,M,O){if(O=U.createShader(O===0?U.VERTEX_SHADER:U.FRAGMENT_SHADER),U.shaderSource(O,M),U.compileShader(O),!U.getShaderParameter(O,U.COMPILE_STATUS))throw Error(`Could not compile WebGL shader. `+U.getShaderInfoLog(O));return O}function wt(U){return Yo(U,Te,1).map(function(M){return{index:Rs(M,1),$:Ii(M,2),label:lr(M,3)!=null?Yd(M,3):void 0,displayName:lr(M,4)!=null?Yd(M,4):void 0}})}function sn(U){return{x:Ii(U,1),y:Ii(U,2),z:Ii(U,3),visibility:lr(U,4)!=null?Ii(U,4):void 0}}function rn(U,M){this.h=U,this.g=M,this.l=0}function $n(U,M,O){return Ln(U,M),typeof U.g.canvas.transferToImageBitmap=="function"?a.resolve(U.g.canvas.transferToImageBitmap()):O?a.resolve(U.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(U.g.canvas):(U.i===void 0&&(U.i=document.createElement("canvas")),new a(function(fe){U.i.height=U.g.canvas.height,U.i.width=U.g.canvas.width,U.i.getContext("2d",{}).drawImage(U.g.canvas,0,0,U.g.canvas.width,U.g.canvas.height),fe(U.i)}))}function Ln(U,M){var O=U.g;if(U.m===void 0){var fe=gt(O,` attribute vec2 aVertex; attribute vec2 aTex; varying vec2 vTex; void main(void) { gl_Position = vec4(aVertex, 0.0, 1.0); vTex = aTex; }`,0),je=gt(O,` precision mediump float; varying vec2 vTex; uniform sampler2D sampler0; void main(){ gl_FragColor = texture2D(sampler0, vTex); }`,1),pt=O.createProgram();if(O.attachShader(pt,fe),O.attachShader(pt,je),O.linkProgram(pt),!O.getProgramParameter(pt,O.LINK_STATUS))throw Error(`Could not compile WebGL program. `+O.getProgramInfoLog(pt));fe=U.m=pt,O.useProgram(fe),je=O.getUniformLocation(fe,"sampler0"),U.j={J:O.getAttribLocation(fe,"aVertex"),I:O.getAttribLocation(fe,"aTex"),ja:je},U.s=O.createBuffer(),O.bindBuffer(O.ARRAY_BUFFER,U.s),O.enableVertexAttribArray(U.j.J),O.vertexAttribPointer(U.j.J,2,O.FLOAT,!1,0,0),O.bufferData(O.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),O.STATIC_DRAW),O.bindBuffer(O.ARRAY_BUFFER,null),U.o=O.createBuffer(),O.bindBuffer(O.ARRAY_BUFFER,U.o),O.enableVertexAttribArray(U.j.I),O.vertexAttribPointer(U.j.I,2,O.FLOAT,!1,0,0),O.bufferData(O.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),O.STATIC_DRAW),O.bindBuffer(O.ARRAY_BUFFER,null),O.uniform1i(je,0)}fe=U.j,O.useProgram(U.m),O.canvas.width=M.width,O.canvas.height=M.height,O.viewport(0,0,M.width,M.height),O.activeTexture(O.TEXTURE0),U.h.bindTexture2d(M.glName),O.enableVertexAttribArray(fe.J),O.bindBuffer(O.ARRAY_BUFFER,U.s),O.vertexAttribPointer(fe.J,2,O.FLOAT,!1,0,0),O.enableVertexAttribArray(fe.I),O.bindBuffer(O.ARRAY_BUFFER,U.o),O.vertexAttribPointer(fe.I,2,O.FLOAT,!1,0,0),O.bindFramebuffer(O.DRAW_FRAMEBUFFER?O.DRAW_FRAMEBUFFER:O.FRAMEBUFFER,null),O.clearColor(0,0,0,0),O.clear(O.COLOR_BUFFER_BIT),O.colorMask(!0,!0,!0,!0),O.drawArrays(O.TRIANGLE_FAN,0,4),O.disableVertexAttribArray(fe.J),O.disableVertexAttribArray(fe.I),O.bindBuffer(O.ARRAY_BUFFER,null),U.h.bindTexture2d(0)}function Xr(U){this.g=U}var ii=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function aa(U,M){return M+U}function pi(U,M){window[U]=M}function Ir(U){var M=document.createElement("script");return M.setAttribute("src",U),M.setAttribute("crossorigin","anonymous"),new a(function(O){M.addEventListener("load",function(){O()},!1),M.addEventListener("error",function(){O()},!1),document.body.appendChild(M)})}function ai(){return Tr(function(U){switch(U.g){case 1:return U.m=2,Tn(U,WebAssembly.instantiate(ii),4);case 4:U.g=3,U.m=0;break;case 2:return U.m=0,U.j=null,U.return(!1);case 3:return U.return(!0)}})}function bi(U){if(this.g=U,this.listeners={},this.j={},this.G={},this.m={},this.s={},this.H=this.o=this.S=!0,this.D=a.resolve(),this.R="",this.C={},this.locateFile=U&&U.locateFile||aa,typeof window=="object")var M=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location<"u")M=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.T=M,U.options){M=ft(Object.keys(U.options));for(var O=M.next();!O.done;O=M.next()){O=O.value;var fe=U.options[O].default;fe!==void 0&&(this.j[O]=typeof fe=="function"?fe():fe)}}}G=bi.prototype,G.close=function(){return this.i&&this.i.delete(),a.resolve()};function vi(U){var M,O,fe,je,pt,vt,nn,bn,wn,Yn,fr;return Tr(function(Cr){switch(Cr.g){case 1:return U.S?(M=U.g.files===void 0?[]:typeof U.g.files=="function"?U.g.files(U.j):U.g.files,Tn(Cr,ai(),2)):Cr.return();case 2:if(O=Cr.h,typeof window=="object")return pi("createMediapipeSolutionsWasm",{locateFile:U.locateFile}),pi("createMediapipeSolutionsPackedAssets",{locateFile:U.locateFile}),vt=M.filter(function(Vr){return Vr.data!==void 0}),nn=M.filter(function(Vr){return Vr.data===void 0}),bn=a.all(vt.map(function(Vr){var _r=Ue(U,Vr.url);if(Vr.path!==void 0){var jr=Vr.path;_r=_r.then(function(ya){return U.overrideFile(jr,ya),a.resolve(ya)})}return _r})),wn=a.all(nn.map(function(Vr){return Vr.simd===void 0||Vr.simd&&O||!Vr.simd&&!O?Ir(U.locateFile(Vr.url,U.T)):a.resolve()})).then(function(){var Vr,_r,jr;return Tr(function(ya){if(ya.g==1)return Vr=window.createMediapipeSolutionsWasm,_r=window.createMediapipeSolutionsPackedAssets,jr=U,Tn(ya,Vr(_r),2);jr.h=ya.h,ya.g=0})}),Yn=function(){return Tr(function(Vr){return U.g.graph&&U.g.graph.url?Vr=Tn(Vr,Ue(U,U.g.graph.url),0):(Vr.g=0,Vr=void 0),Vr})}(),Tn(Cr,a.all([wn,bn,Yn]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return fe=M.filter(function(Vr){return Vr.simd===void 0||Vr.simd&&O||!Vr.simd&&!O}).map(function(Vr){return U.locateFile(Vr.url,U.T)}),importScripts.apply(null,kt(fe)),je=U,Tn(Cr,createMediapipeSolutionsWasm(Module),6);case 6:je.h=Cr.h,U.l=new OffscreenCanvas(1,1),U.h.canvas=U.l,pt=U.h.GL.createContext(U.l,{antialias:!1,alpha:!1,ga:typeof WebGL2RenderingContext<"u"?2:1}),U.h.GL.makeContextCurrent(pt),Cr.g=4;break;case 7:if(U.l=document.createElement("canvas"),fr=U.l.getContext("webgl2",{}),!fr&&(fr=U.l.getContext("webgl",{}),!fr))return alert("Failed to create WebGL canvas context when passing video frame."),Cr.return();U.F=fr,U.h.canvas=U.l,U.h.createContext(U.l,!0,!0,{});case 4:U.i=new U.h.SolutionWasm,U.S=!1,Cr.g=0}})}function Xi(U){var M,O,fe,je,pt,vt,nn,bn;return Tr(function(wn){if(wn.g==1){if(U.g.graph&&U.g.graph.url&&U.R===U.g.graph.url)return wn.return();if(U.o=!0,!U.g.graph||!U.g.graph.url){wn.g=2;return}return U.R=U.g.graph.url,Tn(wn,Ue(U,U.g.graph.url),3)}for(wn.g!=2&&(M=wn.h,U.i.loadGraph(M)),O=ft(Object.keys(U.C)),fe=O.next();!fe.done;fe=O.next())je=fe.value,U.i.overrideFile(je,U.C[je]);if(U.C={},U.g.listeners)for(pt=ft(U.g.listeners),vt=pt.next();!vt.done;vt=pt.next())nn=vt.value,Yt(U,nn);bn=U.j,U.j={},U.setOptions(bn),wn.g=0})}G.reset=function(){var U=this;return Tr(function(M){U.i&&(U.i.reset(),U.m={},U.s={}),M.g=0})},G.setOptions=function(U,M){var O=this;if(M=M||this.g.options){for(var fe=[],je=[],pt={},vt=ft(Object.keys(U)),nn=vt.next();!nn.done;pt={L:pt.L,M:pt.M},nn=vt.next()){var bn=nn.value;bn in this.j&&this.j[bn]===U[bn]||(this.j[bn]=U[bn],nn=M[bn],nn!==void 0&&(nn.onChange&&(pt.L=nn.onChange,pt.M=U[bn],fe.push(function(wn){return function(){var Yn;return Tr(function(fr){if(fr.g==1)return Tn(fr,wn.L(wn.M),2);Yn=fr.h,Yn===!0&&(O.o=!0),fr.g=0})}}(pt))),nn.graphOptionXref&&(bn={valueNumber:nn.type===1?U[bn]:0,valueBoolean:nn.type===0?U[bn]:!1,valueString:nn.type===2?U[bn]:""},nn=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),nn.graphOptionXref),bn),je.push(nn))))}(fe.length!==0||je.length!==0)&&(this.o=!0,this.B=(this.B===void 0?[]:this.B).concat(je),this.A=(this.A===void 0?[]:this.A).concat(fe))}};function L(U){var M,O,fe,je,pt,vt,nn;return Tr(function(bn){switch(bn.g){case 1:if(!U.o)return bn.return();if(!U.A){bn.g=2;break}M=ft(U.A),O=M.next();case 3:if(O.done){bn.g=5;break}return fe=O.value,Tn(bn,fe(),4);case 4:O=M.next(),bn.g=3;break;case 5:U.A=void 0;case 2:if(U.B){for(je=new U.h.GraphOptionChangeRequestList,pt=ft(U.B),vt=pt.next();!vt.done;vt=pt.next())nn=vt.value,je.push_back(nn);U.i.changeOptions(je),je.delete(),U.B=void 0}U.o=!1,bn.g=0}})}G.initialize=function(){var U=this;return Tr(function(M){return M.g==1?Tn(M,vi(U),2):M.g!=3?Tn(M,Xi(U),3):Tn(M,L(U),0)})};function Ue(U,M){var O,fe;return Tr(function(je){return M in U.G?je.return(U.G[M]):(O=U.locateFile(M,""),fe=fetch(O).then(function(pt){return pt.arrayBuffer()}),U.G[M]=fe,je.return(fe))})}G.overrideFile=function(U,M){this.i?this.i.overrideFile(U,M):this.C[U]=M},G.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},G.send=function(U,M){var O=this,fe,je,pt,vt,nn,bn,wn,Yn,fr;return Tr(function(Cr){switch(Cr.g){case 1:return O.g.inputs?(fe=1e3*(M??performance.now()),Tn(Cr,O.D,2)):Cr.return();case 2:return Tn(Cr,O.initialize(),3);case 3:for(je=new O.h.PacketDataList,pt=ft(Object.keys(U)),vt=pt.next();!vt.done;vt=pt.next())if(nn=vt.value,bn=O.g.inputs[nn]){e:{var Vr=U[nn];switch(bn.type){case"video":var _r=O.m[bn.stream];if(_r||(_r=new rn(O.h,O.F),O.m[bn.stream]=_r),_r.l===0&&(_r.l=_r.h.createTexture()),typeof HTMLVideoElement<"u"&&Vr instanceof HTMLVideoElement)var jr=Vr.videoWidth,ya=Vr.videoHeight;else typeof HTMLImageElement<"u"&&Vr instanceof HTMLImageElement?(jr=Vr.naturalWidth,ya=Vr.naturalHeight):(jr=Vr.width,ya=Vr.height);ya={glName:_r.l,width:jr,height:ya},jr=_r.g,jr.canvas.width=ya.width,jr.canvas.height=ya.height,jr.activeTexture(jr.TEXTURE0),_r.h.bindTexture2d(_r.l),jr.texImage2D(jr.TEXTURE_2D,0,jr.RGBA,jr.RGBA,jr.UNSIGNED_BYTE,Vr),_r.h.bindTexture2d(0),_r=ya;break e;case"detections":for(_r=O.m[bn.stream],_r||(_r=new Xr(O.h),O.m[bn.stream]=_r),_r.data||(_r.data=new _r.g.DetectionListData),_r.data.reset(Vr.length),ya=0;ya<Vr.length;++ya){jr=Vr[ya];var oo=_r.data,lo=oo.setBoundingBox,wl=ya,Wd=jr.U,Yl=new zi;if(ri(Yl,1,Wd.aa),ri(Yl,2,Wd.ba),ri(Yl,3,Wd.height),ri(Yl,4,Wd.width),ri(Yl,5,Wd.rotation),ri(Yl,6,Wd.Z),Wd=yd(Yl,qi),lo.call(oo,wl,Wd),jr.P)for(oo=0;oo<jr.P.length;++oo){Yl=jr.P[oo];var yc=!!Yl.visibility;lo=_r.data,wl=lo.addNormalizedLandmark,Wd=ya,Yl=Object.assign(Object.assign({},Yl),{visibility:yc?Yl.visibility:0}),yc=new ir,ri(yc,1,Yl.x),ri(yc,2,Yl.y),ri(yc,3,Yl.z),Yl.visibility&&ri(yc,4,Yl.visibility),Yl=yd(yc,Ai),wl.call(lo,Wd,Yl)}if(jr.N)for(oo=0;oo<jr.N.length;++oo)lo=_r.data,wl=lo.addClassification,Wd=ya,Yl=jr.N[oo],yc=new Te,ri(yc,2,Yl.$),Yl.index&&ri(yc,1,Yl.index),Yl.label&&ri(yc,3,Yl.label),Yl.displayName&&ri(yc,4,Yl.displayName),Yl=yd(yc,xt),wl.call(lo,Wd,Yl)}_r=_r.data;break e;default:_r={}}}switch(wn=_r,Yn=bn.stream,bn.type){case"video":je.pushTexture2d(Object.assign(Object.assign({},wn),{stream:Yn,timestamp:fe}));break;case"detections":fr=wn,fr.stream=Yn,fr.timestamp=fe,je.pushDetectionList(fr);break;default:throw Error("Unknown input config type: '"+bn.type+"'")}}return O.i.send(je),Tn(Cr,O.D,4);case 4:je.delete(),Cr.g=0}})};function Me(U,M,O){var fe,je,pt,vt,nn,bn,wn,Yn,fr,Cr,Vr,_r,jr,ya;return Tr(function(oo){switch(oo.g){case 1:if(!O)return oo.return(M);for(fe={},je=0,pt=ft(Object.keys(O)),vt=pt.next();!vt.done;vt=pt.next())nn=vt.value,bn=O[nn],typeof bn!="string"&&bn.type==="texture"&&M[bn.stream]!==void 0&&++je;1<je&&(U.H=!1),wn=ft(Object.keys(O)),vt=wn.next();case 2:if(vt.done){oo.g=4;break}if(Yn=vt.value,fr=O[Yn],typeof fr=="string")return jr=fe,ya=Yn,Tn(oo,lt(U,Yn,M[fr]),14);if(Cr=M[fr.stream],fr.type==="detection_list"){if(Cr){for(var lo=Cr.getRectList(),wl=Cr.getLandmarksList(),Wd=Cr.getClassificationsList(),Yl=[],yc=0;yc<lo.size();++yc){var Yh=Dd(lo.get(yc),zi,Bi);Yh={U:{aa:Ii(Yh,1),ba:Ii(Yh,2),height:Ii(Yh,3),width:Ii(Yh,4),rotation:Ii(Yh,5,0),Z:Rs(Yh,6)},P:Yo(Dd(wl.get(yc),ra,Ki),ir,1).map(sn),N:wt(Dd(Wd.get(yc),vn,ur))},Yl.push(Yh)}lo=Yl}else lo=[];fe[Yn]=lo,oo.g=7;break}if(fr.type==="proto_list"){if(Cr){for(lo=Array(Cr.size()),wl=0;wl<Cr.size();wl++)lo[wl]=Cr.get(wl);Cr.delete()}else lo=[];fe[Yn]=lo,oo.g=7;break}if(Cr===void 0){oo.g=3;break}if(fr.type==="float_list"){fe[Yn]=Cr,oo.g=7;break}if(fr.type==="proto"){fe[Yn]=Cr,oo.g=7;break}if(fr.type!=="texture")throw Error("Unknown output config type: '"+fr.type+"'");return Vr=U.s[Yn],Vr||(Vr=new rn(U.h,U.F),U.s[Yn]=Vr),Tn(oo,$n(Vr,Cr,U.H),13);case 13:_r=oo.h,fe[Yn]=_r;case 7:fr.transform&&fe[Yn]&&(fe[Yn]=fr.transform(fe[Yn])),oo.g=3;break;case 14:jr[ya]=oo.h;case 3:vt=wn.next(),oo.g=2;break;case 4:return oo.return(fe)}})}function lt(U,M,O){var fe;return Tr(function(je){return typeof O=="number"||O instanceof Uint8Array||O instanceof U.h.Uint8BlobList?je.return(O):O instanceof U.h.Texture2dDataOut?(fe=U.s[M],fe||(fe=new rn(U.h,U.F),U.s[M]=fe),je.return($n(fe,O,U.H))):je.return(void 0)})}function Yt(U,M){for(var O=M.name||"$",fe=[].concat(kt(M.wants)),je=new U.h.StringList,pt=ft(M.wants),vt=pt.next();!vt.done;vt=pt.next())je.push_back(vt.value);pt=U.h.PacketListener.implement({onResults:function(nn){for(var bn={},wn=0;wn<M.wants.length;++wn)bn[fe[wn]]=nn.get(wn);var Yn=U.listeners[O];Yn&&(U.D=Me(U,bn,M.outs).then(function(fr){fr=Yn(fr);for(var Cr=0;Cr<M.wants.length;++Cr){var Vr=bn[fe[Cr]];typeof Vr=="object"&&Vr.hasOwnProperty&&Vr.hasOwnProperty("delete")&&Vr.delete()}fr&&(U.D=fr)}))}}),U.i.attachMultiListener(je,pt),je.delete()}G.onResults=function(U,M){this.listeners[M||"$"]=U},Oi("Solution",bi),Oi("OptionType",{BOOL:0,NUMBER:1,ca:2,0:"BOOL",1:"NUMBER",2:"STRING"});function w(U){var M=Rs(U,1),O=vo(U,re,3);return O={x:Ii(O,1),y:Ii(O,2),depth:Ii(O,3)},U=vo(U,Ze,2),{id:M,point2d:O,point3d:{x:Ii(U,1),y:Ii(U,2),z:Ii(U,3)}}}function te(U){var M=Dd(U,D,Ie);U=[],M=Yo(M,ln,2);for(var O=0;O<M.length;O++)U.push({id:Rs(M[O],1),keypoints:Yo(M[O],an,2).map(w),visibility:Ii(M[O],3),scale:Ua(M[O],6),translation:Ua(M[O],5),rotation:Ua(M[O],4)});return U}function ye(U){switch(U){case"Camera":return"object_detection_3d_camera.tflite";case"Chair":return"object_detection_3d_chair.tflite";case"Cup":return"object_detection_3d_cup.tflite";default:return"object_detection_3d_sneakers.tflite"}}function I(U){switch(U){case"Camera":return"Camera";case"Chair":return"Chair";case"Cup":return"Coffee cup, Mug";default:return"Footwear"}}var x={focalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_x"}},focalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_y"}},principalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_x"}},principalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_y"}},allowedLabels:{type:2,graphOptionXref:{calculatorName:"ConstantSidePacketCalculatorAllowedLabels",calculatorType:"ConstantSidePacketCalculator",fieldName:"string_value"}}};function ae(U){var M=this;U=U||{},this.g=new bi({locateFile:U.locateFile,files:[{url:"objectron_solution_packed_assets_loader.js"},{simd:!1,url:"objectron_solution_wasm_bin.js"},{simd:!0,url:"objectron_solution_simd_wasm_bin.js"}],graph:{url:"objectron.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["lifted_objects","image_transformed"],outs:{image:"image_transformed",objectDetections:{type:"proto",stream:"lifted_objects",transform:te}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,default:!1,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumObjects:{type:1,default:5,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorMaxNumObjects",fieldName:"int_value"}},staticImageMode:{type:0,default:!0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"objectrongpusubgraph__ConstantSidePacketCalculator",fieldName:"bool_value"}},minDetectionConfidence:{type:1,default:.5,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"objectrongpusubgraph__objectdetectionoidv4subgraph__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,default:.99,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"objectrongpusubgraph__boxlandmarksubgraph__ThresholdingCalculator",fieldName:"threshold"}},modelName:{default:"Shoe",onChange:function(O){var fe,je,pt,vt;return Tr(function(nn){return nn.g==1?(fe=O,M.g.setOptions({allowedLabels:I(fe)},x),je=ye(fe),pt="object_detection_3d.tflite",Tn(nn,Ue(M.g,je),2)):(vt=nn.h,M.g.overrideFile(pt,vt),nn.return(!0))})}},focalLength:{default:[1,1],onChange:function(O){var fe;return Tr(function(je){return fe=O,M.h=fe,M.g.setOptions({focalX:fe[0],focalY:fe[1]},x),je.return(!0)})}},principalPoint:{default:[0,0],onChange:function(O){var fe;return Tr(function(je){return fe=O,M.i=fe,M.g.setOptions({principalX:fe[0],principalY:fe[1]},x),je.return(!0)})}},imageSize:{onChange:function(O){var fe,je,pt,vt;return Tr(function(nn){if(M.h===void 0||M.i===void 0)return console.error('"focalLength" and "principalPoint" must be set if setting image size'),nn.return();fe=O,je=[fe[0]/2,fe[1]/2],pt=[M.h[0]/je[0],M.h[1]/je[1]],vt=[M.i[0]/je[0],M.i[1]/je[1]],M.setOptions({focalLength:pt,principalPoint:vt}),nn.g=0})}}}})}G=ae.prototype,G.close=function(){return this.g.close(),a.resolve()},G.onResults=function(U){this.g.onResults(U)},G.initialize=function(){var U=this;return Tr(function(M){return Tn(M,U.g.initialize(),0)})},G.reset=function(){this.g.reset()},G.send=function(U){var M=this;return Tr(function(O){return Tn(O,M.g.send(U),0)})},G.setOptions=function(U){this.g.setOptions(U)},Oi("Objectron",ae),Oi("BOX_CONNECTIONS",[[1,2],[2,4],[4,3],[3,1],[5,6],[6,8],[8,7],[7,5],[1,5],[2,6],[3,7],[4,8]]),Oi("BOX_KEYPOINTS",{CENTER:0,BACK_BOTTOM_LEFT:1,FRONT_BOTTOM_LEFT:2,BACK_TOP_LEFT:3,FRONT_TOP_LEFT:4,BACK_BOTTOM_RIGHT:5,FRONT_BOTTOM_RIGHT:6,BACK_TOP_RIGHT:7,FRONT_TOP_RIGHT:8}),Oi("VERSION","0.4.1636596145")}).call(Ot);const Ct={};(function(){var G;function Z(D){var Ie=0;return function(){return Ie<D.length?{done:!1,value:D[Ie++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(D,Ie,De){return D==Array.prototype||D==Object.prototype||(D[Ie]=De.value),D};function se(D){D=[typeof globalThis=="object"&&globalThis,D,typeof window=="object"&&window,typeof self=="object"&&self,typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr)];for(var Ie=0;Ie<D.length;++Ie){var De=D[Ie];if(De&&De.Math==Math)return De}throw Error("Cannot find global object")}var Qe=se(this);function et(D,Ie){if(Ie)e:{var De=Qe;D=D.split(".");for(var gt=0;gt<D.length-1;gt++){var wt=D[gt];if(!(wt in De))break e;De=De[wt]}D=D[D.length-1],gt=De[D],Ie=Ie(gt),Ie!=gt&&Ie!=null&&W(De,D,{configurable:!0,writable:!0,value:Ie})}}et("Symbol",function(D){function Ie(sn){if(this instanceof Ie)throw new TypeError("Symbol is not a constructor");return new De(gt+(sn||"")+"_"+wt++,sn)}function De(sn,rn){this.g=sn,W(this,"description",{configurable:!0,writable:!0,value:rn})}if(D)return D;De.prototype.toString=function(){return this.g};var gt="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",wt=0;return Ie}),et("Symbol.iterator",function(D){if(D)return D;D=Symbol("Symbol.iterator");for(var Ie="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),De=0;De<Ie.length;De++){var gt=Qe[Ie[De]];typeof gt=="function"&&typeof gt.prototype[D]!="function"&&W(gt.prototype,D,{configurable:!0,writable:!0,value:function(){return Zt(Z(this))}})}return D});function Zt(D){return D={next:D},D[Symbol.iterator]=function(){return this},D}function ft(D){var Ie=typeof Symbol<"u"&&Symbol.iterator&&D[Symbol.iterator];return Ie?Ie.call(D):{next:Z(D)}}function kt(D){if(!(D instanceof Array)){D=ft(D);for(var Ie,De=[];!(Ie=D.next()).done;)De.push(Ie.value);D=De}return D}var rr=typeof Object.create=="function"?Object.create:function(D){function Ie(){}return Ie.prototype=D,new Ie},gr;if(typeof Object.setPrototypeOf=="function")gr=Object.setPrototypeOf;else{var Wr;e:{var Ui={a:!0},Ci={};try{Ci.__proto__=Ui,Wr=Ci.a;break e}catch{}Wr=!1}gr=Wr?function(D,Ie){if(D.__proto__=Ie,D.__proto__!==Ie)throw new TypeError(D+" is not extensible");return D}:null}var Qr=gr;function Jr(D,Ie){if(D.prototype=rr(Ie.prototype),D.prototype.constructor=D,Qr)Qr(D,Ie);else for(var De in Ie)if(De!="prototype")if(Object.defineProperties){var gt=Object.getOwnPropertyDescriptor(Ie,De);gt&&Object.defineProperty(D,De,gt)}else D[De]=Ie[De];D.ea=Ie.prototype}function $i(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fa(D){if(D.l)throw new TypeError("Generator is already running");D.l=!0}$i.prototype.o=function(D){this.h=D};function ro(D,Ie){D.j={U:Ie,V:!0},D.g=D.m||D.s}$i.prototype.return=function(D){this.j={return:D},this.g=this.s};function Tn(D,Ie,De){return D.g=De,{value:Ie}}function ps(D){this.g=new $i,this.h=D}function id(D,Ie){fa(D.g);var De=D.g.i;return De?xo(D,"return"in De?De.return:function(gt){return{value:gt,done:!0}},Ie,D.g.return):(D.g.return(Ie),ba(D))}function xo(D,Ie,De,gt){try{var wt=Ie.call(D.g.i,De);if(!(wt instanceof Object))throw new TypeError("Iterator result "+wt+" is not an object");if(!wt.done)return D.g.l=!1,wt;var sn=wt.value}catch(rn){return D.g.i=null,ro(D.g,rn),ba(D)}return D.g.i=null,gt.call(D.g,sn),ba(D)}function ba(D){for(;D.g.g;)try{var Ie=D.h(D.g);if(Ie)return D.g.l=!1,{value:Ie.value,done:!1}}catch(De){D.g.h=void 0,ro(D.g,De)}if(D.g.l=!1,D.g.j){if(Ie=D.g.j,D.g.j=null,Ie.V)throw Ie.U;return{value:Ie.return,done:!0}}return{value:void 0,done:!0}}function Pd(D){this.next=function(Ie){return fa(D.g),D.g.i?Ie=xo(D,D.g.i.next,Ie,D.g.o):(D.g.o(Ie),Ie=ba(D)),Ie},this.throw=function(Ie){return fa(D.g),D.g.i?Ie=xo(D,D.g.i.throw,Ie,D.g.o):(ro(D.g,Ie),Ie=ba(D)),Ie},this.return=function(Ie){return id(D,Ie)},this[Symbol.iterator]=function(){return this}}function za(D){function Ie(gt){return D.next(gt)}function De(gt){return D.throw(gt)}return new a(function(gt,wt){function sn(rn){rn.done?gt(rn.value):a.resolve(rn.value).then(Ie,De).then(sn,wt)}sn(D.next())})}function Tr(D){return za(new Pd(new ps(D)))}et("Promise",function(D){function Ie(rn){this.h=0,this.i=void 0,this.g=[],this.o=!1;var $n=this.j();try{rn($n.resolve,$n.reject)}catch(Ln){$n.reject(Ln)}}function De(){this.g=null}function gt(rn){return rn instanceof Ie?rn:new Ie(function($n){$n(rn)})}if(D)return D;De.prototype.h=function(rn){if(this.g==null){this.g=[];var $n=this;this.i(function(){$n.l()})}this.g.push(rn)};var wt=Qe.setTimeout;De.prototype.i=function(rn){wt(rn,0)},De.prototype.l=function(){for(;this.g&&this.g.length;){var rn=this.g;this.g=[];for(var $n=0;$n<rn.length;++$n){var Ln=rn[$n];rn[$n]=null;try{Ln()}catch(Xr){this.j(Xr)}}}this.g=null},De.prototype.j=function(rn){this.i(function(){throw rn})},Ie.prototype.j=function(){function rn(Xr){return function(ii){Ln||(Ln=!0,Xr.call($n,ii))}}var $n=this,Ln=!1;return{resolve:rn(this.C),reject:rn(this.l)}},Ie.prototype.C=function(rn){if(rn===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(rn instanceof Ie)this.F(rn);else{e:switch(typeof rn){case"object":var $n=rn!=null;break e;case"function":$n=!0;break e;default:$n=!1}$n?this.v(rn):this.m(rn)}},Ie.prototype.v=function(rn){var $n=void 0;try{$n=rn.then}catch(Ln){this.l(Ln);return}typeof $n=="function"?this.G($n,rn):this.m(rn)},Ie.prototype.l=function(rn){this.s(2,rn)},Ie.prototype.m=function(rn){this.s(1,rn)},Ie.prototype.s=function(rn,$n){if(this.h!=0)throw Error("Cannot settle("+rn+", "+$n+"): Promise already settled in state"+this.h);this.h=rn,this.i=$n,this.h===2&&this.D(),this.A()},Ie.prototype.D=function(){var rn=this;wt(function(){if(rn.B()){var $n=Qe.console;typeof $n<"u"&&$n.error(rn.i)}},1)},Ie.prototype.B=function(){if(this.o)return!1;var rn=Qe.CustomEvent,$n=Qe.Event,Ln=Qe.dispatchEvent;return typeof Ln>"u"?!0:(typeof rn=="function"?rn=new rn("unhandledrejection",{cancelable:!0}):typeof $n=="function"?rn=new $n("unhandledrejection",{cancelable:!0}):(rn=Qe.document.createEvent("CustomEvent"),rn.initCustomEvent("unhandledrejection",!1,!0,rn)),rn.promise=this,rn.reason=this.i,Ln(rn))},Ie.prototype.A=function(){if(this.g!=null){for(var rn=0;rn<this.g.length;++rn)sn.h(this.g[rn]);this.g=null}};var sn=new De;return Ie.prototype.F=function(rn){var $n=this.j();rn.J($n.resolve,$n.reject)},Ie.prototype.G=function(rn,$n){var Ln=this.j();try{rn.call($n,Ln.resolve,Ln.reject)}catch(Xr){Ln.reject(Xr)}},Ie.prototype.then=function(rn,$n){function Ln(pi,Ir){return typeof pi=="function"?function(ai){try{Xr(pi(ai))}catch(bi){ii(bi)}}:Ir}var Xr,ii,aa=new Ie(function(pi,Ir){Xr=pi,ii=Ir});return this.J(Ln(rn,Xr),Ln($n,ii)),aa},Ie.prototype.catch=function(rn){return this.then(void 0,rn)},Ie.prototype.J=function(rn,$n){function Ln(){switch(Xr.h){case 1:rn(Xr.i);break;case 2:$n(Xr.i);break;default:throw Error("Unexpected state: "+Xr.h)}}var Xr=this;this.g==null?sn.h(Ln):this.g.push(Ln),this.o=!0},Ie.resolve=gt,Ie.reject=function(rn){return new Ie(function($n,Ln){Ln(rn)})},Ie.race=function(rn){return new Ie(function($n,Ln){for(var Xr=ft(rn),ii=Xr.next();!ii.done;ii=Xr.next())gt(ii.value).J($n,Ln)})},Ie.all=function(rn){var $n=ft(rn),Ln=$n.next();return Ln.done?gt([]):new Ie(function(Xr,ii){function aa(ai){return function(bi){pi[ai]=bi,Ir--,Ir==0&&Xr(pi)}}var pi=[],Ir=0;do pi.push(void 0),Ir++,gt(Ln.value).J(aa(pi.length-1),ii),Ln=$n.next();while(!Ln.done)})},Ie});function _c(D,Ie){D instanceof String&&(D+="");var De=0,gt=!1,wt={next:function(){if(!gt&&De<D.length){var sn=De++;return{value:Ie(sn,D[sn]),done:!1}}return gt=!0,{done:!0,value:void 0}}};return wt[Symbol.iterator]=function(){return wt},wt}var Dc=typeof Object.assign=="function"?Object.assign:function(D,Ie){for(var De=1;De<arguments.length;De++){var gt=arguments[De];if(gt)for(var wt in gt)Object.prototype.hasOwnProperty.call(gt,wt)&&(D[wt]=gt[wt])}return D};et("Object.assign",function(D){return D||Dc}),et("Object.is",function(D){return D||function(Ie,De){return Ie===De?Ie!==0||1/Ie===1/De:Ie!==Ie&&De!==De}}),et("Array.prototype.includes",function(D){return D||function(Ie,De){var gt=this;gt instanceof String&&(gt=String(gt));var wt=gt.length;for(De=De||0,0>De&&(De=Math.max(De+wt,0));De<wt;De++){var sn=gt[De];if(sn===Ie||Object.is(sn,Ie))return!0}return!1}}),et("String.prototype.includes",function(D){return D||function(Ie,De){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(Ie instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(Ie,De||0)!==-1}}),et("Array.prototype.keys",function(D){return D||function(){return _c(this,function(Ie){return Ie})}});var dl=this||self;function Oi(D,Ie){D=D.split(".");var De=dl;D[0]in De||typeof De.execScript>"u"||De.execScript("var "+D[0]);for(var gt;D.length&&(gt=D.shift());)D.length||Ie===void 0?De[gt]&&De[gt]!==Object.prototype[gt]?De=De[gt]:De=De[gt]={}:De[gt]=Ie}function Fl(D){dl.setTimeout(function(){throw D},0)}function Ks(D){Fl(D)}function Ed(D,Ie){Ks(Error("Invalid wire type: "+D+" (at position "+Ie+")"))}function ac(){Ks(Error("Failed to read varint, encoding is invalid."))}function Xd(D,Ie){return Ie=String.fromCharCode.apply(null,Ie),D==null?Ie:D+Ie}var bc,Ps=typeof TextDecoder<"u",Kl,kd=typeof TextEncoder<"u";function oc(D){if(kd)D=(Kl||(Kl=new TextEncoder)).encode(D);else{var Ie=void 0;Ie=Ie===void 0?!1:Ie;for(var De=0,gt=new Uint8Array(3*D.length),wt=0;wt<D.length;wt++){var sn=D.charCodeAt(wt);if(128>sn)gt[De++]=sn;else{if(2048>sn)gt[De++]=sn>>6|192;else{if(55296<=sn&&57343>=sn){if(56319>=sn&&wt<D.length){var rn=D.charCodeAt(++wt);if(56320<=rn&&57343>=rn){sn=1024*(sn-55296)+rn-56320+65536,gt[De++]=sn>>18|240,gt[De++]=sn>>12&63|128,gt[De++]=sn>>6&63|128,gt[De++]=sn&63|128;continue}else wt--}if(Ie)throw Error("Found an unpaired surrogate");sn=65533}gt[De++]=sn>>12|224,gt[De++]=sn>>6&63|128}gt[De++]=sn&63|128}}D=gt.subarray(0,De)}return D}var Sd={},El=null;function wd(D){var Ie;Ie===void 0&&(Ie=0),cl(),Ie=Sd[Ie];for(var De=Array(Math.floor(D.length/3)),gt=Ie[64]||"",wt=0,sn=0;wt<D.length-2;wt+=3){var rn=D[wt],$n=D[wt+1],Ln=D[wt+2],Xr=Ie[rn>>2];rn=Ie[(rn&3)<<4|$n>>4],$n=Ie[($n&15)<<2|Ln>>6],Ln=Ie[Ln&63],De[sn++]=Xr+rn+$n+Ln}switch(Xr=0,Ln=gt,D.length-wt){case 2:Xr=D[wt+1],Ln=Ie[(Xr&15)<<2]||gt;case 1:D=D[wt],De[sn]=Ie[D>>2]+Ie[(D&3)<<4|Xr>>4]+Ln+gt}return De.join("")}function pd(D){var Ie=D.length,De=3*Ie/4;De%3?De=Math.floor(De):"=.".indexOf(D[Ie-1])!=-1&&(De="=.".indexOf(D[Ie-2])!=-1?De-2:De-1);var gt=new Uint8Array(De),wt=0;return Ao(D,function(sn){gt[wt++]=sn}),gt.subarray(0,wt)}function Ao(D,Ie){function De(Ln){for(;gt<D.length;){var Xr=D.charAt(gt++),ii=El[Xr];if(ii!=null)return ii;if(!/^[\s\xa0]*$/.test(Xr))throw Error("Unknown base64 encoding at char: "+Xr)}return Ln}cl();for(var gt=0;;){var wt=De(-1),sn=De(0),rn=De(64),$n=De(64);if($n===64&&wt===-1)break;Ie(wt<<2|sn>>4),rn!=64&&(Ie(sn<<4&240|rn>>2),$n!=64&&Ie(rn<<6&192|$n))}}function cl(){if(!El){El={};for(var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),Ie=["+/=","+/","-_=","-_.","-_"],De=0;5>De;De++){var gt=D.concat(Ie[De].split(""));Sd[De]=gt;for(var wt=0;wt<gt.length;wt++){var sn=gt[wt];El[sn]===void 0&&(El[sn]=wt)}}}}var Qs=typeof Uint8Array=="function",zo;function jo(D){if(this.g=D,D!==null&&D.length===0)throw Error("ByteString should be constructed with non-empty values")}jo.prototype.toJSON=function(){if(this.g==null)var D="";else D=this.g,D=this.g=D==null||typeof D=="string"?D:Qs&&D instanceof Uint8Array?wd(D):null;return D};var Ns=typeof Uint8Array.prototype.slice=="function";function Pl(D,Ie,De){return Ie===De?zo||(zo=new Uint8Array(0)):Ns?D.slice(Ie,De):new Uint8Array(D.subarray(Ie,De))}var Ha=0,Xo=0;function ul(D){if(D.constructor===Uint8Array)return D;if(D.constructor===ArrayBuffer)return new Uint8Array(D);if(D.constructor===Array)return new Uint8Array(D);if(D.constructor===String)return pd(D);if(D.constructor===jo){if(D.g==null)var Ie=zo||(zo=new Uint8Array(0));else{Ie=Uint8Array;var De=D.g;De=De==null||Qs&&De!=null&&De instanceof Uint8Array?De:typeof De=="string"?pd(De):null,D=D.g=De,Ie=new Ie(D)}return Ie}if(D instanceof Uint8Array)return new Uint8Array(D.buffer,D.byteOffset,D.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function la(D,Ie){Ie=Ie===void 0?{}:Ie,Ie=Ie.u===void 0?!1:Ie.u,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.u=Ie,D&&fl(this,D)}function fl(D,Ie){D.h=ul(Ie),D.l=0,D.i=D.h.length,D.g=D.l}la.prototype.reset=function(){this.g=this.l};function xa(D){D.g>D.i&&(D.j=!0,Ks(Error("Tried to read past the end of the data "+D.g+" > "+D.i)))}function Wo(D){var Ie=D.h,De=Ie[D.g],gt=De&127;return 128>De?(D.g+=1,xa(D),gt):(De=Ie[D.g+1],gt|=(De&127)<<7,128>De?(D.g+=2,xa(D),gt):(De=Ie[D.g+2],gt|=(De&127)<<14,128>De?(D.g+=3,xa(D),gt):(De=Ie[D.g+3],gt|=(De&127)<<21,128>De?(D.g+=4,xa(D),gt):(De=Ie[D.g+4],gt|=(De&15)<<28,128>De?(D.g+=5,xa(D),gt>>>0):(D.g+=5,128<=Ie[D.g++]&&128<=Ie[D.g++]&&128<=Ie[D.g++]&&128<=Ie[D.g++]&&128<=Ie[D.g++]?(D.j=!0,ac(),gt):(xa(D),gt))))))}var Ql=[];function Us(){this.g=new Uint8Array(64),this.h=0}function Oo(D,Ie){if(!(D.h+1<D.g.length)){var De=D.g;D.g=new Uint8Array(Math.ceil(1+2*D.g.length)),D.g.set(De)}D.g[D.h++]=Ie}Us.prototype.length=function(){return this.h},Us.prototype.end=function(){var D=this.g,Ie=this.h;return this.h=0,Pl(D,0,Ie)};function Wa(D,Ie){for(;127<Ie;)Oo(D,Ie&127|128),Ie>>>=7;Oo(D,Ie)}function Xl(D){var Ie={},De=Ie.N===void 0?!1:Ie.N;this.m={u:Ie.u===void 0?!1:Ie.u},this.N=De,Ie=this.m,Ql.length?(De=Ql.pop(),Ie&&(De.u=Ie.u),D&&fl(De,D),D=De):D=new la(D,Ie),this.g=D,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Xl.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function ms(D){var Ie=D.g;if((Ie=Ie.g==Ie.i)||(Ie=D.j)||(Ie=D.g,Ie=Ie.j||0>Ie.g||Ie.g>Ie.i),Ie)return!1;D.l=D.g.g;var De=Wo(D.g);return Ie=De>>>3,De&=7,0<=De&&5>=De?(D.i=Ie,D.h=De,!0):(D.j=!0,Ed(De,D.l),!1)}function _o(D){switch(D.h){case 0:if(D.h!=0)_o(D);else e:{D=D.g;for(var Ie=D.g,De=0;10>De;De++){if(!(D.h[Ie]&128)){D.g=Ie+1,xa(D);break e}Ie++}D.j=!0,ac()}break;case 1:D=D.g,D.g+=8,xa(D);break;case 2:D.h!=2?_o(D):(Ie=Wo(D.g),D=D.g,D.g+=Ie,xa(D));break;case 5:D=D.g,D.g+=4,xa(D);break;case 3:Ie=D.i;do{if(!ms(D)){D.j=!0,Ks(Error("Unmatched start-group tag: stream EOF"));break}if(D.h==4){D.i!=Ie&&(D.j=!0,Ks(Error("Unmatched end-group tag")));break}_o(D)}while(!0);break;default:D.j=!0,Ed(D.h,D.l)}}function md(D,Ie,De){D.N||(D=Pl(D.g.h,De,D.g.g),(De=Ie.m)?De.push(D):Ie.m=[D])}var Gs=[];function ad(){this.h=[],this.i=0,this.g=new Us}function bd(D,Ie){Ie.length!==0&&(D.h.push(Ie),D.i+=Ie.length)}function ko(D,Ie,De){Wa(D.g,8*Ie+2),Wa(D.g,De.length),bd(D,D.g.end()),bd(D,De)}var Ul=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function wo(D,Ie){Object.isFrozen(D)||(Ul?D[Ul]|=Ie:D.g!==void 0?D.g|=Ie:Object.defineProperties(D,{g:{value:Ie,configurable:!0,writable:!0,enumerable:!1}}))}function io(D){if(!D)return 0;var Ie;return Ul?Ie=D[Ul]:Ie=D.g,Ie??0}function kl(D){return Array.isArray(D)&&wo(D,1),D}function Oa(D){if(!Array.isArray(D))throw Error("cannot mark non-array as immutable");wo(D,2)}function Ca(D){return D!==null&&typeof D=="object"&&D.constructor===Object}function zs(D){switch(typeof D){case"number":return isFinite(D)?D:String(D);case"object":return Qs&&D!=null&&D instanceof Uint8Array?wd(D):D;default:return D}}function Ro(D,Ie){if(D!=null)return Array.isArray(D)||Ca(D)?Yi(D,Ie):Ie(D)}function Yi(D,Ie){if(Array.isArray(D)){for(var De=Array(D.length),gt=0;gt<D.length;gt++)De[gt]=Ro(D[gt],Ie);return io(D)&1&&kl(De),De}De={};for(gt in D)De[gt]=Ro(D[gt],Ie);return De}var mi;function ao(D,Ie,De){var gt=mi;mi=null,D||(D=gt),gt=this.constructor.ca,D||(D=gt?[gt]:[]),this.j=(gt?0:-1)-(this.constructor.aa||0),this.i=null,this.g=D;e:{if(gt=this.g.length,D=gt-1,gt&&(gt=this.g[D],Ca(gt))){this.l=D-this.j,this.h=gt;break e}Ie!==void 0&&-1<Ie?(this.l=Math.max(Ie,D+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(De)for(Ie=0;Ie<De.length;Ie++)D=De[Ie],D<this.l?(D+=this.j,(gt=this.g[D])?kl(gt):this.g[D]=On):(lr(this),(gt=this.h[D])?kl(gt):this.h[D]=On)}var On=Object.freeze(kl([]));function lr(D){var Ie=D.l+D.j;D.g[Ie]||(D.h=D.g[Ie]={})}function Lr(D,Ie,De){return Ie===-1?null:De!==void 0&&De||Ie>=D.l?D.h?D.h[Ie]:void 0:D.g[Ie+D.j]}function Ua(D,Ie,De){De=De===void 0?!0:De;var gt=gt===void 0?!1:gt,wt=Lr(D,Ie,gt);return wt==null&&(wt=On),wt===On?(wt=kl([]),ri(D,Ie,wt,gt)):De&&Array.isArray(wt)&&io(wt)&2&&(wt=wt.slice(),ri(D,Ie,wt,gt)),wt}function Ii(D,Ie,De){return D=Lr(D,Ie),D=D==null?D:+D,D??(De===void 0?0:De)}function ri(D,Ie,De,gt){gt!==void 0&>||Ie>=D.l?(lr(D),D.h[Ie]=De):D.g[Ie+D.j]=De}function Ta(D,Ie,De){D.i||(D.i={});var gt=D.i[De];if(!gt){var wt=Ua(D,De,!1);gt=[];for(var sn=Array.isArray(wt)?!!(io(wt)&2):!1,rn=0;rn<wt.length;rn++)gt[rn]=new Ie(wt[rn]),sn&&Oa(gt[rn].g);sn&&(Oa(gt),Object.freeze(gt)),D.i[De]=gt}return gt}function vo(D,Ie,De,gt,wt){var sn=Ta(D,gt,Ie);De=De||new gt,D=Ua(D,Ie),wt!=null?(sn.splice(wt,0,De),D.splice(wt,0,Yo(De))):(sn.push(De),D.push(Yo(De)))}ao.prototype.toJSON=function(){var D=Yo(this);return Yi(D,zs)};function Yo(D){if(D.i)for(var Ie in D.i){var De=D.i[Ie];if(Array.isArray(De))for(var gt=0;gt<De.length;gt++)De[gt]&&Yo(De[gt]);else De&&Yo(De)}return D.g}ao.prototype.toString=function(){return Yo(this).toString()};function Xa(D,Ie){return D=Lr(D,Ie),D??0}function Rs(D,Ie){return D=Lr(D,Ie),D??""}function Yd(D,Ie){if(D=D.m){bd(Ie,Ie.g.end());for(var De=0;De<D.length;De++)bd(Ie,D[De])}}function od(D){var Ie=D[0];switch(D.length){case 2:var De=D[1];return function(Ln,Xr,ii){return Ie(Ln,Xr,ii,De)};case 3:var gt=D[1],wt=D[2];return function(Ln,Xr,ii){return Ie(Ln,Xr,ii,gt,wt)};case 4:var sn=D[1],rn=D[2],$n=D[3];return function(Ln,Xr,ii){return Ie(Ln,Xr,ii,sn,rn,$n)};default:throw Error("unsupported number of parameters, expected [2-4], got "+D.length)}}function Bs(D,Ie,De){for(;ms(Ie)&&Ie.h!=4;){var gt=Ie.i,wt=De[gt];if(wt){if(Array.isArray(wt)&&(wt=De[gt]=od(wt)),!wt(Ie,D,gt)){gt=Ie,wt=D;var sn=gt.l;_o(gt),md(gt,wt,sn)}}else gt=Ie,wt=D,sn=gt.l,_o(gt),md(gt,wt,sn)}return D}function js(D,Ie){var De=new ad;if(Ie(D,De),D=De.i+De.g.length(),D===0)De=new Uint8Array(0);else{D=new Uint8Array(D);for(var gt=De.h,wt=gt.length,sn=Ie=0;sn<wt;sn++){var rn=gt[sn];rn.length!==0&&(D.set(rn,Ie),Ie+=rn.length)}gt=De.g,wt=gt.h,wt!==0&&(D.set(gt.g.subarray(0,wt),Ie),gt.h=0),De.h=[D],De=D}return De}function ld(D,Ie,De){if(Gs.length){var gt=Gs.pop();D&&(fl(gt.g,D),gt.i=-1,gt.h=-1),D=gt}else D=new Xl(D);try{return De(new Ie,D)}finally{Ie=D.g,Ie.h=null,Ie.l=0,Ie.i=0,Ie.g=0,Ie.j=!1,Ie.u=!1,D.i=-1,D.h=-1,D.j=!1,100>Gs.length&&Gs.push(D)}}function Rl(D,Ie,De){if(Ie=Lr(Ie,De),Ie!=null){Wa(D.g,8*De+5),D=D.g;var gt=Ie;gt=(De=0>gt?1:0)?-gt:gt,gt===0?0<1/gt?Ha=Xo=0:(Xo=0,Ha=2147483648):isNaN(gt)?(Xo=0,Ha=2147483647):34028234663852886e22<gt?(Xo=0,Ha=(De<<31|2139095040)>>>0):11754943508222875e-54>gt?(gt=Math.round(gt/Math.pow(2,-149)),Xo=0,Ha=(De<<31|gt)>>>0):(Ie=Math.floor(Math.log(gt)/Math.LN2),gt*=Math.pow(2,-Ie),gt=Math.round(8388608*gt),16777216<=gt&&++Ie,Xo=0,Ha=(De<<31|Ie+127<<23|gt&8388607)>>>0),De=Ha,Oo(D,De>>>0&255),Oo(D,De>>>8&255),Oo(D,De>>>16&255),Oo(D,De>>>24&255)}}function Zs(D,Ie,De){if(D.h!==5)return!1;D=D.g;var gt=D.h[D.g],wt=D.h[D.g+1],sn=D.h[D.g+2],rn=D.h[D.g+3];return D.g+=4,xa(D),wt=(gt<<0|wt<<8|sn<<16|rn<<24)>>>0,D=2*(wt>>31)+1,gt=wt>>>23&255,wt&=8388607,ri(Ie,De,gt==255?wt?NaN:1/0*D:gt==0?D*Math.pow(2,-149)*wt:D*Math.pow(2,gt-150)*(wt+Math.pow(2,23))),!0}function $c(D,Ie,De){if(D.h!==0)return!1;for(var gt=D.g,wt=128,sn=0,rn=D=0;4>rn&&128<=wt;rn++)wt=gt.h[gt.g++],sn|=(wt&127)<<7*rn;if(128<=wt&&(wt=gt.h[gt.g++],sn|=(wt&127)<<28,D|=(wt&127)>>4),128<=wt)for(rn=0;5>rn&&128<=wt;rn++)wt=gt.h[gt.g++],D|=(wt&127)<<7*rn+3;return 128>wt?(gt=sn>>>0,wt=D>>>0,(D=wt&2147483648)&&(gt=~gt+1>>>0,wt=~wt>>>0,gt==0&&(wt=wt+1>>>0)),gt=4294967296*wt+(gt>>>0),D=D?-gt:gt):(gt.j=!0,ac(),D=void 0),ri(Ie,De,D),!0}function Is(D,Ie,De){return D.h!==0?!1:(ri(Ie,De,Wo(D.g)),!0)}function Sl(D,Ie,De){if(D.h!==2)return!1;var gt=Wo(D.g);D=D.g;var wt=D.g;D.g+=gt,xa(D),D=D.h;var sn;if(Ps)(sn=bc)||(sn=bc=new TextDecoder("utf-8",{fatal:!1})),sn=sn.decode(D.subarray(wt,wt+gt));else{gt=wt+gt;for(var rn=[],$n=null,Ln,Xr,ii;wt<gt;)Ln=D[wt++],128>Ln?rn.push(Ln):224>Ln?wt>=gt?rn.push(65533):(Xr=D[wt++],194>Ln||(Xr&192)!==128?(wt--,rn.push(65533)):rn.push((Ln&31)<<6|Xr&63)):240>Ln?wt>=gt-1?rn.push(65533):(Xr=D[wt++],(Xr&192)!==128||Ln===224&&160>Xr||Ln===237&&160<=Xr||((sn=D[wt++])&192)!==128?(wt--,rn.push(65533)):rn.push((Ln&15)<<12|(Xr&63)<<6|sn&63)):244>=Ln?wt>=gt-2?rn.push(65533):(Xr=D[wt++],(Xr&192)!==128||(Ln<<28)+(Xr-144)>>30||((sn=D[wt++])&192)!==128||((ii=D[wt++])&192)!==128?(wt--,rn.push(65533)):(Ln=(Ln&7)<<18|(Xr&63)<<12|(sn&63)<<6|ii&63,Ln-=65536,rn.push((Ln>>10&1023)+55296,(Ln&1023)+56320))):rn.push(65533),8192<=rn.length&&($n=Xd($n,rn),rn.length=0);sn=Xd($n,rn)}return ri(Ie,De,sn),!0}function yd(D,Ie,De,gt,wt){if(D.h!==2)return!1;var sn=new gt,rn=D.g.i,$n=Wo(D.g),Ln=D.g.g+$n;if(D.g.i=Ln,wt(sn,D),wt=Ln-D.g.g,wt!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+($n+" bytes, instead read "+($n-wt)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return D.g.g=Ln,D.g.i=rn,vo(Ie,De,sn,gt,void 0),!0}function Dd(D){ao.call(this,D)}var zl;Jr(Dd,ao);function Ic(D,Ie){var De=Lr(D,1);if(De!=null&&De!=null){Wa(Ie.g,8);var gt=Ie.g;if(0<=De)Wa(gt,De);else{for(var wt=0;9>wt;wt++)Oo(gt,De&127|128),De>>=7;Oo(gt,1)}}Rl(Ie,D,2),gt=Lr(D,3),gt!=null&&ko(Ie,3,oc(gt)),gt=Lr(D,4),gt!=null&&ko(Ie,4,oc(gt)),Yd(D,Ie)}function Cs(D,Ie){return Bs(D,Ie,zl||(zl={1:Is,2:Zs,3:Sl,4:Sl}))}function Fd(D){ao.call(this,D,-1,Js)}var zd;Jr(Fd,ao),Fd.prototype.addClassification=function(D,Ie){return vo(this,1,D,Dd,Ie),this};function Mc(D,Ie){return Bs(D,Ie,zd||(zd={1:[yd,Dd,Cs]}))}var Js=[1];function jd(D){ao.call(this,D)}var yu;Jr(jd,ao);function Fu(D,Ie){Rl(Ie,D,1),Rl(Ie,D,2),Rl(Ie,D,3),Rl(Ie,D,4),Rl(Ie,D,5),Yd(D,Ie)}function _d(D,Ie){return Bs(D,Ie,yu||(yu={1:Zs,2:Zs,3:Zs,4:Zs,5:Zs}))}function lc(D){ao.call(this,D,-1,ke)}var ue;Jr(lc,ao);function Te(D,Ie){return Bs(D,Ie,ue||(ue={1:[yd,jd,_d]}))}var ke=[1];function xt(D){ao.call(this,D)}var vn;Jr(xt,ao);function ur(D,Ie){Rl(Ie,D,1),Rl(Ie,D,2),Rl(Ie,D,3),Rl(Ie,D,4),Rl(Ie,D,5);var De=Lr(D,6);if(De!=null&&De!=null){Wa(Ie.g,48);var gt=Ie.g,wt=De;De=0>wt,wt=Math.abs(wt);var sn=wt>>>0;for(wt=Math.floor((wt-sn)/4294967296),wt>>>=0,De&&(wt=~wt>>>0,sn=(~sn>>>0)+1,4294967295<sn&&(sn=0,wt++,4294967295<wt&&(wt=0))),Ha=sn,Xo=wt,De=Ha,sn=Xo;0<sn||127<De;)Oo(gt,De&127|128),De=(De>>>7|sn<<25)>>>0,sn>>>=7;Oo(gt,De)}Yd(D,Ie)}function Zn(D,Ie){return Bs(D,Ie,vn||(vn={1:Zs,2:Zs,3:Zs,4:Zs,5:Zs,6:$c}))}function ir(D,Ie,De){if(De=D.createShader(De===0?D.VERTEX_SHADER:D.FRAGMENT_SHADER),D.shaderSource(De,Ie),D.compileShader(De),!D.getShaderParameter(De,D.COMPILE_STATUS))throw Error(`Could not compile WebGL shader. `+D.getShaderInfoLog(De));return De}function Nr(D){return Ta(D,Dd,1).map(function(Ie){return{index:Xa(Ie,1),X:Ii(Ie,2),label:Lr(Ie,3)!=null?Rs(Ie,3):void 0,displayName:Lr(Ie,4)!=null?Rs(Ie,4):void 0}})}function Ai(D){return{x:Ii(D,1),y:Ii(D,2),z:Ii(D,3),visibility:Lr(D,4)!=null?Ii(D,4):void 0}}function ra(D){return Ta(ld(D,lc,Te),jd,1).map(Ai)}function Ki(D,Ie){this.h=D,this.g=Ie,this.l=0}function Ya(D,Ie,De){return zi(D,Ie),typeof D.g.canvas.transferToImageBitmap=="function"?a.resolve(D.g.canvas.transferToImageBitmap()):De?a.resolve(D.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(D.g.canvas):(D.i===void 0&&(D.i=document.createElement("canvas")),new a(function(gt){D.i.height=D.g.canvas.height,D.i.width=D.g.canvas.width,D.i.getContext("2d",{}).drawImage(D.g.canvas,0,0,D.g.canvas.width,D.g.canvas.height),gt(D.i)}))}function zi(D,Ie){var De=D.g;if(D.m===void 0){var gt=ir(De,` attribute vec2 aVertex; attribute vec2 aTex; varying vec2 vTex; void main(void) { gl_Position = vec4(aVertex, 0.0, 1.0); vTex = aTex; }`,0),wt=ir(De,` precision mediump float; varying vec2 vTex; uniform sampler2D sampler0; void main(){ gl_FragColor = texture2D(sampler0, vTex); }`,1),sn=De.createProgram();if(De.attachShader(sn,gt),De.attachShader(sn,wt),De.linkProgram(sn),!De.getProgramParameter(sn,De.LINK_STATUS))throw Error(`Could not compile WebGL program. `+De.getProgramInfoLog(sn));gt=D.m=sn,De.useProgram(gt),wt=De.getUniformLocation(gt,"sampler0"),D.j={I:De.getAttribLocation(gt,"aVertex"),H:De.getAttribLocation(gt,"aTex"),da:wt},D.s=De.createBuffer(),De.bindBuffer(De.ARRAY_BUFFER,D.s),De.enableVertexAttribArray(D.j.I),De.vertexAttribPointer(D.j.I,2,De.FLOAT,!1,0,0),De.bufferData(De.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),De.STATIC_DRAW),De.bindBuffer(De.ARRAY_BUFFER,null),D.o=De.createBuffer(),De.bindBuffer(De.ARRAY_BUFFER,D.o),De.enableVertexAttribArray(D.j.H),De.vertexAttribPointer(D.j.H,2,De.FLOAT,!1,0,0),De.bufferData(De.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),De.STATIC_DRAW),De.bindBuffer(De.ARRAY_BUFFER,null),De.uniform1i(wt,0)}gt=D.j,De.useProgram(D.m),De.canvas.width=Ie.width,De.canvas.height=Ie.height,De.viewport(0,0,Ie.width,Ie.height),De.activeTexture(De.TEXTURE0),D.h.bindTexture2d(Ie.glName),De.enableVertexAttribArray(gt.I),De.bindBuffer(De.ARRAY_BUFFER,D.s),De.vertexAttribPointer(gt.I,2,De.FLOAT,!1,0,0),De.enableVertexAttribArray(gt.H),De.bindBuffer(De.ARRAY_BUFFER,D.o),De.vertexAttribPointer(gt.H,2,De.FLOAT,!1,0,0),De.bindFramebuffer(De.DRAW_FRAMEBUFFER?De.DRAW_FRAMEBUFFER:De.FRAMEBUFFER,null),De.clearColor(0,0,0,0),De.clear(De.COLOR_BUFFER_BIT),De.colorMask(!0,!0,!0,!0),De.drawArrays(De.TRIANGLE_FAN,0,4),De.disableVertexAttribArray(gt.I),De.disableVertexAttribArray(gt.H),De.bindBuffer(De.ARRAY_BUFFER,null),D.h.bindTexture2d(0)}function Bi(D){this.g=D}var qi=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function ka(D,Ie){return Ie+D}function uo(D,Ie){window[D]=Ie}function Bo(D){var Ie=document.createElement("script");return Ie.setAttribute("src",D),Ie.setAttribute("crossorigin","anonymous"),new a(function(De){Ie.addEventListener("load",function(){De()},!1),Ie.addEventListener("error",function(){De()},!1),document.body.appendChild(Ie)})}function No(){return Tr(function(D){switch(D.g){case 1:return D.m=2,Tn(D,WebAssembly.instantiate(qi),4);case 4:D.g=3,D.m=0;break;case 2:return D.m=0,D.j=null,D.return(!1);case 3:return D.return(!0)}})}function Wl(D){if(this.g=D,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=a.resolve(),this.P="",this.B={},this.locateFile=D&&D.locateFile||ka,typeof window=="object")var Ie=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location<"u")Ie=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=Ie,D.options){Ie=ft(Object.keys(D.options));for(var De=Ie.next();!De.done;De=Ie.next()){De=De.value;var gt=D.options[De].default;gt!==void 0&&(this.j[De]=typeof gt=="function"?gt():gt)}}}G=Wl.prototype,G.close=function(){return this.i&&this.i.delete(),a.resolve()};function re(D){var Ie,De,gt,wt,sn,rn,$n,Ln,Xr,ii,aa;return Tr(function(pi){switch(pi.g){case 1:return D.R?(Ie=D.g.files===void 0?[]:typeof D.g.files=="function"?D.g.files(D.j):D.g.files,Tn(pi,No(),2)):pi.return();case 2:if(De=pi.h,typeof window=="object")return uo("createMediapipeSolutionsWasm",{locateFile:D.locateFile}),uo("createMediapipeSolutionsPackedAssets",{locateFile:D.locateFile}),rn=Ie.filter(function(Ir){return Ir.data!==void 0}),$n=Ie.filter(function(Ir){return Ir.data===void 0}),Ln=a.all(rn.map(function(Ir){var ai=Et(D,Ir.url);if(Ir.path!==void 0){var bi=Ir.path;ai=ai.then(function(vi){return D.overrideFile(bi,vi),a.resolve(vi)})}return ai})),Xr=a.all($n.map(function(Ir){return Ir.simd===void 0||Ir.simd&&De||!Ir.simd&&!De?Bo(D.locateFile(Ir.url,D.S)):a.resolve()})).then(function(){var Ir,ai,bi;return Tr(function(vi){if(vi.g==1)return Ir=window.createMediapipeSolutionsWasm,ai=window.createMediapipeSolutionsPackedAssets,bi=D,Tn(vi,Ir(ai),2);bi.h=vi.h,vi.g=0})}),ii=function(){return Tr(function(Ir){return D.g.graph&&D.g.graph.url?Ir=Tn(Ir,Et(D,D.g.graph.url),0):(Ir.g=0,Ir=void 0),Ir})}(),Tn(pi,a.all([Xr,Ln,ii]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return gt=Ie.filter(function(Ir){return Ir.simd===void 0||Ir.simd&&De||!Ir.simd&&!De}).map(function(Ir){return D.locateFile(Ir.url,D.S)}),importScripts.apply(null,kt(gt)),wt=D,Tn(pi,createMediapipeSolutionsWasm(Module),6);case 6:wt.h=pi.h,D.l=new OffscreenCanvas(1,1),D.h.canvas=D.l,sn=D.h.GL.createContext(D.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext<"u"?2:1}),D.h.GL.makeContextCurrent(sn),pi.g=4;break;case 7:if(D.l=document.createElement("canvas"),aa=D.l.getContext("webgl2",{}),!aa&&(aa=D.l.getContext("webgl",{}),!aa))return alert("Failed to create WebGL canvas context when passing video frame."),pi.return();D.D=aa,D.h.canvas=D.l,D.h.createContext(D.l,!0,!0,{});case 4:D.i=new D.h.SolutionWasm,D.R=!1,pi.g=0}})}function be(D){var Ie,De,gt,wt,sn,rn,$n,Ln;return Tr(function(Xr){if(Xr.g==1){if(D.g.graph&&D.g.graph.url&&D.P===D.g.graph.url)return Xr.return();if(D.o=!0,!D.g.graph||!D.g.graph.url){Xr.g=2;return}return D.P=D.g.graph.url,Tn(Xr,Et(D,D.g.graph.url),3)}for(Xr.g!=2&&(Ie=Xr.h,D.i.loadGraph(Ie)),De=ft(Object.keys(D.B)),gt=De.next();!gt.done;gt=De.next())wt=gt.value,D.i.overrideFile(wt,D.B[wt]);if(D.B={},D.g.listeners)for(sn=ft(D.g.listeners),rn=sn.next();!rn.done;rn=sn.next())$n=rn.value,ln(D,$n);Ln=D.j,D.j={},D.setOptions(Ln),Xr.g=0})}G.reset=function(){var D=this;return Tr(function(Ie){D.i&&(D.i.reset(),D.m={},D.s={}),Ie.g=0})},G.setOptions=function(D,Ie){var De=this;if(Ie=Ie||this.g.options){for(var gt=[],wt=[],sn={},rn=ft(Object.keys(D)),$n=rn.next();!$n.done;sn={K:sn.K,L:sn.L},$n=rn.next()){var Ln=$n.value;Ln in this.j&&this.j[Ln]===D[Ln]||(this.j[Ln]=D[Ln],$n=Ie[Ln],$n!==void 0&&($n.onChange&&(sn.K=$n.onChange,sn.L=D[Ln],gt.push(function(Xr){return function(){var ii;return Tr(function(aa){if(aa.g==1)return Tn(aa,Xr.K(Xr.L),2);ii=aa.h,ii===!0&&(De.o=!0),aa.g=0})}}(sn))),$n.graphOptionXref&&(Ln={valueNumber:$n.type===1?D[Ln]:0,valueBoolean:$n.type===0?D[Ln]:!1,valueString:$n.type===2?D[Ln]:""},$n=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),$n.graphOptionXref),Ln),wt.push($n))))}(gt.length!==0||wt.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(wt),this.v=(this.v===void 0?[]:this.v).concat(gt))}};function Ze(D){var Ie,De,gt,wt,sn,rn,$n;return Tr(function(Ln){switch(Ln.g){case 1:if(!D.o)return Ln.return();if(!D.v){Ln.g=2;break}Ie=ft(D.v),De=Ie.next();case 3:if(De.done){Ln.g=5;break}return gt=De.value,Tn(Ln,gt(),4);case 4:De=Ie.next(),Ln.g=3;break;case 5:D.v=void 0;case 2:if(D.A){for(wt=new D.h.GraphOptionChangeRequestList,sn=ft(D.A),rn=sn.next();!rn.done;rn=sn.next())$n=rn.value,wt.push_back($n);D.i.changeOptions(wt),wt.delete(),D.A=void 0}D.o=!1,Ln.g=0}})}G.initialize=function(){var D=this;return Tr(function(Ie){return Ie.g==1?Tn(Ie,re(D),2):Ie.g!=3?Tn(Ie,be(D),3):Tn(Ie,Ze(D),0)})};function Et(D,Ie){var De,gt;return Tr(function(wt){return Ie in D.F?wt.return(D.F[Ie]):(De=D.locateFile(Ie,""),gt=fetch(De).then(function(sn){return sn.arrayBuffer()}),D.F[Ie]=gt,wt.return(gt))})}G.overrideFile=function(D,Ie){this.i?this.i.overrideFile(D,Ie):this.B[D]=Ie},G.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},G.send=function(D,Ie){var De=this,gt,wt,sn,rn,$n,Ln,Xr,ii,aa;return Tr(function(pi){switch(pi.g){case 1:return De.g.inputs?(gt=1e3*(Ie??performance.now()),Tn(pi,De.C,2)):pi.return();case 2:return Tn(pi,De.initialize(),3);case 3:for(wt=new De.h.PacketDataList,sn=ft(Object.keys(D)),rn=sn.next();!rn.done;rn=sn.next())if($n=rn.value,Ln=De.g.inputs[$n]){e:{var Ir=D[$n];switch(Ln.type){case"video":var ai=De.m[Ln.stream];if(ai||(ai=new Ki(De.h,De.D),De.m[Ln.stream]=ai),ai.l===0&&(ai.l=ai.h.createTexture()),typeof HTMLVideoElement<"u"&&Ir instanceof HTMLVideoElement)var bi=Ir.videoWidth,vi=Ir.videoHeight;else typeof HTMLImageElement<"u"&&Ir instanceof HTMLImageElement?(bi=Ir.naturalWidth,vi=Ir.naturalHeight):(bi=Ir.width,vi=Ir.height);vi={glName:ai.l,width:bi,height:vi},bi=ai.g,bi.canvas.width=vi.width,bi.canvas.height=vi.height,bi.activeTexture(bi.TEXTURE0),ai.h.bindTexture2d(ai.l),bi.texImage2D(bi.TEXTURE_2D,0,bi.RGBA,bi.RGBA,bi.UNSIGNED_BYTE,Ir),ai.h.bindTexture2d(0),ai=vi;break e;case"detections":for(ai=De.m[Ln.stream],ai||(ai=new Bi(De.h),De.m[Ln.stream]=ai),ai.data||(ai.data=new ai.g.DetectionListData),ai.data.reset(Ir.length),vi=0;vi<Ir.length;++vi){bi=Ir[vi];var Xi=ai.data,L=Xi.setBoundingBox,Ue=vi,Me=bi.T,lt=new xt;if(ri(lt,1,Me.Y),ri(lt,2,Me.Z),ri(lt,3,Me.height),ri(lt,4,Me.width),ri(lt,5,Me.rotation),ri(lt,6,Me.W),Me=js(lt,ur),L.call(Xi,Ue,Me),bi.O)for(Xi=0;Xi<bi.O.length;++Xi){lt=bi.O[Xi];var Yt=!!lt.visibility;L=ai.data,Ue=L.addNormalizedLandmark,Me=vi,lt=Object.assign(Object.assign({},lt),{visibility:Yt?lt.visibility:0}),Yt=new jd,ri(Yt,1,lt.x),ri(Yt,2,lt.y),ri(Yt,3,lt.z),lt.visibility&&ri(Yt,4,lt.visibility),lt=js(Yt,Fu),Ue.call(L,Me,lt)}if(bi.M)for(Xi=0;Xi<bi.M.length;++Xi)L=ai.data,Ue=L.addClassification,Me=vi,lt=bi.M[Xi],Yt=new Dd,ri(Yt,2,lt.X),lt.index&&ri(Yt,1,lt.index),lt.label&&ri(Yt,3,lt.label),lt.displayName&&ri(Yt,4,lt.displayName),lt=js(Yt,Ic),Ue.call(L,Me,lt)}ai=ai.data;break e;default:ai={}}}switch(Xr=ai,ii=Ln.stream,Ln.type){case"video":wt.pushTexture2d(Object.assign(Object.assign({},Xr),{stream:ii,timestamp:gt}));break;case"detections":aa=Xr,aa.stream=ii,aa.timestamp=gt,wt.pushDetectionList(aa);break;default:throw Error("Unknown input config type: '"+Ln.type+"'")}}return De.i.send(wt),Tn(pi,De.C,4);case 4:wt.delete(),pi.g=0}})};function an(D,Ie,De){var gt,wt,sn,rn,$n,Ln,Xr,ii,aa,pi,Ir,ai,bi,vi;return Tr(function(Xi){switch(Xi.g){case 1:if(!De)return Xi.return(Ie);for(gt={},wt=0,sn=ft(Object.keys(De)),rn=sn.next();!rn.done;rn=sn.next())$n=rn.value,Ln=De[$n],typeof Ln!="string"&&Ln.type==="texture"&&Ie[Ln.stream]!==void 0&&++wt;1<wt&&(D.G=!1),Xr=ft(Object.keys(De)),rn=Xr.next();case 2:if(rn.done){Xi.g=4;break}if(ii=rn.value,aa=De[ii],typeof aa=="string")return bi=gt,vi=ii,Tn(Xi,Xn(D,ii,Ie[aa]),14);if(pi=Ie[aa.stream],aa.type==="detection_list"){if(pi){for(var L=pi.getRectList(),Ue=pi.getLandmarksList(),Me=pi.getClassificationsList(),lt=[],Yt=0;Yt<L.size();++Yt){var w=ld(L.get(Yt),xt,Zn);w={T:{Y:Ii(w,1),Z:Ii(w,2),height:Ii(w,3),width:Ii(w,4),rotation:Ii(w,5,0),W:Xa(w,6)},O:ra(Ue.get(Yt)),M:Nr(ld(Me.get(Yt),Fd,Mc))},lt.push(w)}L=lt}else L=[];gt[ii]=L,Xi.g=7;break}if(aa.type==="proto_list"){if(pi){for(L=Array(pi.size()),Ue=0;Ue<pi.size();Ue++)L[Ue]=pi.get(Ue);pi.delete()}else L=[];gt[ii]=L,Xi.g=7;break}if(pi===void 0){Xi.g=3;break}if(aa.type==="float_list"){gt[ii]=pi,Xi.g=7;break}if(aa.type==="proto"){gt[ii]=pi,Xi.g=7;break}if(aa.type!=="texture")throw Error("Unknown output config type: '"+aa.type+"'");return Ir=D.s[ii],Ir||(Ir=new Ki(D.h,D.D),D.s[ii]=Ir),Tn(Xi,Ya(Ir,pi,D.G),13);case 13:ai=Xi.h,gt[ii]=ai;case 7:aa.transform&>[ii]&&(gt[ii]=aa.transform(gt[ii])),Xi.g=3;break;case 14:bi[vi]=Xi.h;case 3:rn=Xr.next(),Xi.g=2;break;case 4:return Xi.return(gt)}})}function Xn(D,Ie,De){var gt;return Tr(function(wt){return typeof De=="number"||De instanceof Uint8Array||De instanceof D.h.Uint8BlobList?wt.return(De):De instanceof D.h.Texture2dDataOut?(gt=D.s[Ie],gt||(gt=new Ki(D.h,D.D),D.s[Ie]=gt),wt.return(Ya(gt,De,D.G))):wt.return(void 0)})}function ln(D,Ie){for(var De=Ie.name||"$",gt=[].concat(kt(Ie.wants)),wt=new D.h.StringList,sn=ft(Ie.wants),rn=sn.next();!rn.done;rn=sn.next())wt.push_back(rn.value);sn=D.h.PacketListener.implement({onResults:function($n){for(var Ln={},Xr=0;Xr<Ie.wants.length;++Xr)Ln[gt[Xr]]=$n.get(Xr);var ii=D.listeners[De];ii&&(D.C=an(D,Ln,Ie.outs).then(function(aa){aa=ii(aa);for(var pi=0;pi<Ie.wants.length;++pi){var Ir=Ln[gt[pi]];typeof Ir=="object"&&Ir.hasOwnProperty&&Ir.hasOwnProperty("delete")&&Ir.delete()}aa&&(D.C=aa)}))}}),D.i.attachMultiListener(wt,sn),wt.delete()}G.onResults=function(D,Ie){this.listeners[Ie||"$"]=D},Oi("Solution",Wl),Oi("OptionType",{BOOL:0,NUMBER:1,$:2,0:"BOOL",1:"NUMBER",2:"STRING"});function Hn(D){switch(D===void 0&&(D=0),D){case 1:return"pose_landmark_full.tflite";case 2:return"pose_landmark_heavy.tflite";default:return"pose_landmark_lite.tflite"}}function pr(D){var Ie=this;D=D||{},this.g=new Wl({locateFile:D.locateFile,files:function(De){return[{url:"pose_solution_packed_assets_loader.js"},{simd:!1,url:"pose_solution_wasm_bin.js"},{simd:!0,url:"pose_solution_simd_wasm_bin.js"},{data:!0,url:Hn(De.modelComplexity)}]},graph:{url:"pose_web.binarypb"},listeners:[{wants:["pose_landmarks","world_landmarks","segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:ra},poseWorldLandmarks:{type:"proto",stream:"world_landmarks",transform:ra},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(De){var gt,wt,sn;return Tr(function(rn){return rn.g==1?(gt=Hn(De),wt="third_party/mediapipe/modules/pose_landmark/"+gt,Tn(rn,Et(Ie.g,gt),2)):(sn=rn.h,Ie.g.overrideFile(wt,sn),rn.return(!0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}}}})}G=pr.prototype,G.reset=function(){this.g.reset()},G.close=function(){return this.g.close(),a.resolve()},G.onResults=function(D){this.g.onResults(D)},G.initialize=function(){var D=this;return Tr(function(Ie){return Tn(Ie,D.g.initialize(),0)})},G.send=function(D,Ie){var De=this;return Tr(function(gt){return Tn(gt,De.g.send(D,Ie),0)})},G.setOptions=function(D){this.g.setOptions(D)},Oi("Pose",pr),Oi("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),Oi("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),Oi("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),Oi("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),Oi("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),Oi("VERSION","0.5.1635988162")}).call(Ct);const Kt=class{constructor(){d(this,"mediapipeMap_",new Map)}getVersion(G){switch(G){case"face_detection":return bt.VERSION;case"face_mesh":return zt.VERSION;case"hands":return $t.VERSION;case"holistic":return At.VERSION;case"objectron":return Ot.VERSION;case"selfie_segmentation":return Lt.VERSION;case"pose":return Ct.VERSION;default:return""}}initialize(G){return new a(async(Z,W)=>{if(G.mediaPipeModelConfigArray.length==0){W("no model was selected");return}for(let se=0;se<G.mediaPipeModelConfigArray.length;se++){const Qe=G.mediaPipeModelConfigArray[se];if(this.mediapipeMap_.has(Qe.modelType)){W("setting same type is not supported");return}if(typeof Qe.listener!="function"){W(`[${Qe.modelType}] ResultsListener must be provided`);return}let et;switch(Qe.modelType){case"face_mesh":et=new zt.FaceMesh({locateFile:(Zt,ft)=>(Qe.assetsUri||Kt.defaultAssetsBaseUrl+"face_mesh/"+this.getVersion("face_mesh"))+"/"+Zt});break;case"face_detection":et=new bt.FaceDetection({locateFile:(Zt,ft)=>(Qe.assetsUri||Kt.defaultAssetsBaseUrl+"face_detection/"+this.getVersion("face_detection"))+"/"+Zt});break;case"hands":et=new $t.Hands({locateFile:(Zt,ft)=>(Qe.assetsUri||Kt.defaultAssetsBaseUrl+"hands/"+this.getVersion("hands"))+"/"+Zt});break;case"holistic":et=new At.Holistic({locateFile:(Zt,ft)=>(Qe.assetsUri||Kt.defaultAssetsBaseUrl+"holistic/"+this.getVersion("holistic"))+"/"+Zt});break;case"objectron":et=new Ot.Objectron({locateFile:(Zt,ft)=>(Qe.assetsUri||Kt.defaultAssetsBaseUrl+"objectron/"+this.getVersion("objectron"))+"/"+Zt});break;case"selfie_segmentation":et=new Lt.SelfieSegmentation({locateFile:(Zt,ft)=>(Qe.assetsUri||Kt.defaultAssetsBaseUrl+"selfie_segmentation/"+this.getVersion("selfie_segmentation"))+"/"+Zt});break;case"pose":et=new Ct.Pose({locateFile:(Zt,ft)=>(Qe.assetsUri||Kt.defaultAssetsBaseUrl+"pose/"+this.getVersion("pose"))+"/"+Zt});break;default:W("unknown model type");return}et.onResults(Qe.listener),Qe.options&&et.setOptions(Qe.options);try{await et.initialize(),this.mediapipeMap_.set(Qe.modelType,et)}catch(Zt){W(Zt);return}}Z()})}close(G){return new a((Z,W)=>{let se=[];if(G){let Qe=this.mediapipeMap_.get(G);if(Qe)this.mediapipeMap_.delete(G),se.push(Qe.close());else{W("model not exit");return}}else{for(const[Qe,et]of this.mediapipeMap_.entries())se.push(et.close());this.mediapipeMap_.clear()}a.all(se).then(()=>{Z()}).catch(Qe=>{W(Qe)})})}send(G,Z){return new a((W,se)=>{let Qe=[];if(Z){let et=this.mediapipeMap_.get(Z);if(et)Qe.push(et.send({image:G}));else{se("model not exit");return}}else for(const[et,Zt]of this.mediapipeMap_.entries())Qe.push(Zt.send({image:G}));a.all(Qe).then(()=>{W()}).catch(et=>{se(et)})})}reset(G){if(G){let Z=this.mediapipeMap_.get(G);Z&&typeof Z.reset=="function"&&Z.reset()}else for(const[Z,W]of this.mediapipeMap_.entries())W&&typeof W.reset=="function"&&W.reset()}};let cn=Kt;d(cn,"defaultAssetsBaseUrl","https://d3opqjmqzxf057.cloudfront.net/ml/mediapipe/");const Jn=new WeakMap,qt=new WeakMap,Mn=new WeakMap,mr=Symbol("anyProducer"),Ur=a.resolve(),sr=Symbol("listenerAdded"),Nn=Symbol("listenerRemoved");let Gr=!1,$r=!1;function kr(G){if(typeof G!="string"&&typeof G!="symbol"&&typeof G!="number")throw new TypeError("`eventName` must be a string, symbol, or number")}function Mr(G){if(typeof G!="function")throw new TypeError("listener must be a function")}function Ba(G,Z){const W=qt.get(G);if(W.has(Z))return W.get(Z)}function Io(G,Z){const W=typeof Z=="string"||typeof Z=="symbol"||typeof Z=="number"?Z:mr,se=Mn.get(G);if(se.has(W))return se.get(W)}function qo(G,Z,W){const se=Mn.get(G);if(se.has(Z))for(const Qe of se.get(Z))Qe.enqueue(W);if(se.has(mr)){const Qe=a.all([Z,W]);for(const et of se.get(mr))et.enqueue(Qe)}}function Si(G,Z){Z=Array.isArray(Z)?Z:[Z];let W=!1,se=()=>{},Qe=[];const et={enqueue(Zt){Qe.push(Zt),se()},finish(){W=!0,se()}};for(const Zt of Z){let ft=Io(G,Zt);ft||(ft=new Set,Mn.get(G).set(Zt,ft)),ft.add(et)}return{async next(){return Qe?Qe.length===0?W?(Qe=void 0,this.next()):(await new a(Zt=>{se=Zt}),this.next()):{done:!1,value:await Qe.shift()}:{done:!0}},async return(Zt){Qe=void 0;for(const ft of Z){const kt=Io(G,ft);kt&&(kt.delete(et),kt.size===0&&Mn.get(G).delete(ft))}return se(),arguments.length>0?{done:!0,value:await Zt}:{done:!0}},[Symbol.asyncIterator](){return this}}}function Go(G){if(G===void 0)return bo;if(!Array.isArray(G))throw new TypeError("`methodNames` must be an array of strings");for(const Z of G)if(!bo.includes(Z))throw typeof Z!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${Z} is not Emittery method`);return G}const ca=G=>G===sr||G===Nn;function Za(G,Z,W){if(ca(Z))try{Gr=!0,G.emit(Z,W)}finally{Gr=!1}}class ta{static mixin(Z,W){return W=Go(W),se=>{if(typeof se!="function")throw new TypeError("`target` must be function");for(const Zt of W)if(se.prototype[Zt]!==void 0)throw new Error(`The property \`${Zt}\` already exists on \`target\``);function Qe(){return Object.defineProperty(this,Z,{enumerable:!1,value:new ta}),this[Z]}Object.defineProperty(se.prototype,Z,{enumerable:!1,get:Qe});const et=Zt=>function(...ft){return this[Z][Zt](...ft)};for(const Zt of W)Object.defineProperty(se.prototype,Zt,{enumerable:!1,value:et(Zt)});return se}}static get isDebugEnabled(){var Z,W;if(typeof((Z=globalThis.process)==null?void 0:Z.env)!="object")return $r;const{env:se}=(W=globalThis.process)!=null?W:{env:{}};return se.DEBUG==="emittery"||se.DEBUG==="*"||$r}static set isDebugEnabled(Z){$r=Z}constructor(Z={}){var W;Jn.set(this,new Set),qt.set(this,new Map),Mn.set(this,new Map),Mn.get(this).set(mr,new Set),this.debug=(W=Z.debug)!=null?W:{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(se,Qe,et,Zt)=>{try{Zt=JSON.stringify(Zt)}catch{Zt=`Object with the following keys failed to stringify: ${Object.keys(Zt).join(",")}`}(typeof et=="symbol"||typeof et=="number")&&(et=et.toString());const ft=new Date,kt=`${ft.getHours()}:${ft.getMinutes()}:${ft.getSeconds()}.${ft.getMilliseconds()}`;console.log(`[${kt}][emittery:${se}][${Qe}] Event Name: ${et} data: ${Zt}`)})}logIfDebugEnabled(Z,W,se){(ta.isDebugEnabled||this.debug.enabled)&&this.debug.logger(Z,this.debug.name,W,se)}on(Z,W){Mr(W),Z=Array.isArray(Z)?Z:[Z];for(const se of Z){kr(se);let Qe=Ba(this,se);Qe||(Qe=new Set,qt.get(this).set(se,Qe)),Qe.add(W),this.logIfDebugEnabled("subscribe",se,void 0),ca(se)||Za(this,sr,{eventName:se,listener:W})}return this.off.bind(this,Z,W)}off(Z,W){Mr(W),Z=Array.isArray(Z)?Z:[Z];for(const se of Z){kr(se);const Qe=Ba(this,se);Qe&&(Qe.delete(W),Qe.size===0&&qt.get(this).delete(se)),this.logIfDebugEnabled("unsubscribe",se,void 0),ca(se)||Za(this,Nn,{eventName:se,listener:W})}}once(Z){let W;const se=new a(Qe=>{W=this.on(Z,et=>{W(),Qe(et)})});return se.off=W,se}events(Z){Z=Array.isArray(Z)?Z:[Z];for(const W of Z)kr(W);return Si(this,Z)}async emit(Z,W){var se;if(kr(Z),ca(Z)&&!Gr)throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");this.logIfDebugEnabled("emit",Z,W),qo(this,Z,W);const Qe=(se=Ba(this,Z))!=null?se:new Set,et=Jn.get(this),Zt=[...Qe],ft=ca(Z)?[]:[...et];await Ur,await a.all([...Zt.map(async kt=>{if(Qe.has(kt))return kt(W)}),...ft.map(async kt=>{if(et.has(kt))return kt(Z,W)})])}async emitSerial(Z,W){var se;if(kr(Z),ca(Z)&&!Gr)throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");this.logIfDebugEnabled("emitSerial",Z,W);const Qe=(se=Ba(this,Z))!=null?se:new Set,et=Jn.get(this),Zt=[...Qe],ft=[...et];await Ur;for(const kt of Zt)Qe.has(kt)&&await kt(W);for(const kt of ft)et.has(kt)&&await kt(Z,W)}onAny(Z){return Mr(Z),this.logIfDebugEnabled("subscribeAny",void 0,void 0),Jn.get(this).add(Z),Za(this,sr,{listener:Z}),this.offAny.bind(this,Z)}anyEvent(){return Si(this)}offAny(Z){Mr(Z),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),Za(this,Nn,{listener:Z}),Jn.get(this).delete(Z)}clearListeners(Z){Z=Array.isArray(Z)?Z:[Z];for(const W of Z)if(this.logIfDebugEnabled("clear",W,void 0),typeof W=="string"||typeof W=="symbol"||typeof W=="number"){const se=Ba(this,W);se&&se.clear();const Qe=Io(this,W);if(Qe){for(const et of Qe)et.finish();Qe.clear()}}else{Jn.get(this).clear();for(const[se,Qe]of qt.get(this).entries())Qe.clear(),qt.get(this).delete(se);for(const[se,Qe]of Mn.get(this).entries()){for(const et of Qe)et.finish();Qe.clear(),Mn.get(this).delete(se)}}}listenerCount(Z){var W,se,Qe,et,Zt,ft;Z=Array.isArray(Z)?Z:[Z];let kt=0;for(const rr of Z){if(typeof rr=="string"){kt+=Jn.get(this).size+((se=(W=Ba(this,rr))==null?void 0:W.size)!=null?se:0)+((et=(Qe=Io(this,rr))==null?void 0:Qe.size)!=null?et:0)+((ft=(Zt=Io(this))==null?void 0:Zt.size)!=null?ft:0);continue}typeof rr<"u"&&kr(rr),kt+=Jn.get(this).size;for(const gr of qt.get(this).values())kt+=gr.size;for(const gr of Mn.get(this).values())kt+=gr.size}return kt}bindMethods(Z,W){if(typeof Z!="object"||Z===null)throw new TypeError("`target` must be an object");W=Go(W);for(const se of W){if(Z[se]!==void 0)throw new Error(`The property \`${se}\` already exists on \`target\``);Object.defineProperty(Z,se,{enumerable:!1,value:this[se].bind(this)})}}}const bo=Object.getOwnPropertyNames(ta.prototype).filter(G=>G!=="constructor");Object.defineProperty(ta,"listenerAdded",{value:sr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(ta,"listenerRemoved",{value:Nn,writable:!1,enumerable:!0,configurable:!1});function Eo(G,Z){globalThis.vonage||(globalThis.vonage={}),globalThis.vonage.workerizer||(globalThis.vonage.workerizer={});let W=globalThis.vonage.workerizer;return W[G]||(W[G]=Z),W[G]}const jl=Eo("globals",{});var So=(G=>(G.INIT="INIT",G.FORWARD="FORWARD",G.TERMINATE="TERMINATE",G.GLOBALS_SYNC="GLOBALS_SYNC",G.EVENT="EVENT",G))(So||{});function so(G){return[ImageBitmap,ReadableStream,WritableStream].some(Z=>G instanceof Z)}let Ll=0;function Ko(G,Z,W,se,Qe){const et=Ll++;return G.postMessage({id:et,type:Z,functionName:W,args:se},se.filter(Zt=>so(Zt))),new a(Zt=>{Qe==null||Qe.set(et,Zt)})}function Co(G,Z){const{id:W,type:se}=G,Qe=Array.isArray(Z)?Z:[Z];postMessage({id:W,type:se,result:Z},Qe.filter(et=>so(et)))}const ti=Eo("workerized",{});function yo(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}async function ss(){if(yo())Co({type:So.GLOBALS_SYNC},jl);else{const G=[];for(const Z in ti){const{worker:W,resolvers:se}=ti[Z].workerContext;W&&G.push(Ko(W,So.GLOBALS_SYNC,"",[jl],se))}await a.all(G)}}function Zl(G,Z){if(Array.isArray(Z))Z.splice(0,Z.length);else if(typeof Z=="object")for(const W in Z)delete Z[W];for(const W in G)Array.isArray(G[W])?(Z[W]=[],Zl(G[W],Z[W])):typeof G[W]=="object"?(Z[W]={},Zl(G[W],Z[W])):Z[W]=G[W]}async function ll(G,Z,W,se){const Qe=new Z;if(Qe.addEventListener("message",async({data:et})=>{var Zt,ft,kt,rr,gr,Wr,Ui;switch(et.type){case So.GLOBALS_SYNC:et.id?((ft=W.get((Zt=et.id)!=null?Zt:-1))==null||ft(et.result),W.delete((kt=et.id)!=null?kt:-1)):(Zl((rr=et.result)!=null?rr:{},jl),await ss());break;case So.EVENT:const{result:Ci}=et,Qr=Ci;if((Qr==null?void 0:Qr.name)==null)throw"Missing event name";se(Qr.name,Qr.data);break;default:(Wr=W.get((gr=et.id)!=null?gr:-1))==null||Wr(et.result),W.delete((Ui=et.id)!=null?Ui:-1)}}),!await Ko(Qe,So.INIT,"",[G.workerId,jl],W))throw"Failed to instantiate workerized class";return Qe}const Jl=new WeakMap,Hl=new WeakMap,el=new WeakMap,Ji=Symbol("anyProducer"),Pr=a.resolve(),Ys=Symbol("listenerAdded"),_l=Symbol("listenerRemoved");let Qn=!1,Kn=!1;function Fr(G){if(typeof G!="string"&&typeof G!="symbol"&&typeof G!="number")throw new TypeError("`eventName` must be a string, symbol, or number")}function li(G){if(typeof G!="function")throw new TypeError("listener must be a function")}function ki(G,Z){const W=Hl.get(G);if(W.has(Z))return W.get(Z)}function $a(G,Z){const W=typeof Z=="string"||typeof Z=="symbol"||typeof Z=="number"?Z:Ji,se=el.get(G);if(se.has(W))return se.get(W)}function oa(G,Z,W){const se=el.get(G);if(se.has(Z))for(const Qe of se.get(Z))Qe.enqueue(W);if(se.has(Ji)){const Qe=a.all([Z,W]);for(const et of se.get(Ji))et.enqueue(Qe)}}function hl(G,Z){Z=Array.isArray(Z)?Z:[Z];let W=!1,se=()=>{},Qe=[];const et={enqueue(Zt){Qe.push(Zt),se()},finish(){W=!0,se()}};for(const Zt of Z){let ft=$a(G,Zt);ft||(ft=new Set,el.get(G).set(Zt,ft)),ft.add(et)}return{async next(){return Qe?Qe.length===0?W?(Qe=void 0,this.next()):(await new a(Zt=>{se=Zt}),this.next()):{done:!1,value:await Qe.shift()}:{done:!0}},async return(Zt){Qe=void 0;for(const ft of Z){const kt=$a(G,ft);kt&&(kt.delete(et),kt.size===0&&el.get(G).delete(ft))}return se(),arguments.length>0?{done:!0,value:await Zt}:{done:!0}},[Symbol.asyncIterator](){return this}}}function wa(G){if(G===void 0)return Un;if(!Array.isArray(G))throw new TypeError("`methodNames` must be an array of strings");for(const Z of G)if(!Un.includes(Z))throw typeof Z!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${Z} is not Emittery method`);return G}const qa=G=>G===Ys||G===_l;function yn(G,Z,W){if(qa(Z))try{Qn=!0,G.emit(Z,W)}finally{Qn=!1}}class En{static mixin(Z,W){return W=wa(W),se=>{if(typeof se!="function")throw new TypeError("`target` must be function");for(const Zt of W)if(se.prototype[Zt]!==void 0)throw new Error(`The property \`${Zt}\` already exists on \`target\``);function Qe(){return Object.defineProperty(this,Z,{enumerable:!1,value:new En}),this[Z]}Object.defineProperty(se.prototype,Z,{enumerable:!1,get:Qe});const et=Zt=>function(...ft){return this[Z][Zt](...ft)};for(const Zt of W)Object.defineProperty(se.prototype,Zt,{enumerable:!1,value:et(Zt)});return se}}static get isDebugEnabled(){var Z,W;if(typeof((Z=globalThis.process)==null?void 0:Z.env)!="object")return Kn;const{env:se}=(W=globalThis.process)!=null?W:{env:{}};return se.DEBUG==="emittery"||se.DEBUG==="*"||Kn}static set isDebugEnabled(Z){Kn=Z}constructor(Z={}){var W;Jl.set(this,new Set),Hl.set(this,new Map),el.set(this,new Map),el.get(this).set(Ji,new Set),this.debug=(W=Z.debug)!=null?W:{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(se,Qe,et,Zt)=>{try{Zt=JSON.stringify(Zt)}catch{Zt=`Object with the following keys failed to stringify: ${Object.keys(Zt).join(",")}`}(typeof et=="symbol"||typeof et=="number")&&(et=et.toString());const ft=new Date,kt=`${ft.getHours()}:${ft.getMinutes()}:${ft.getSeconds()}.${ft.getMilliseconds()}`;console.log(`[${kt}][emittery:${se}][${Qe}] Event Name: ${et} data: ${Zt}`)})}logIfDebugEnabled(Z,W,se){(En.isDebugEnabled||this.debug.enabled)&&this.debug.logger(Z,this.debug.name,W,se)}on(Z,W){li(W),Z=Array.isArray(Z)?Z:[Z];for(const se of Z){Fr(se);let Qe=ki(this,se);Qe||(Qe=new Set,Hl.get(this).set(se,Qe)),Qe.add(W),this.logIfDebugEnabled("subscribe",se,void 0),qa(se)||yn(this,Ys,{eventName:se,listener:W})}return this.off.bind(this,Z,W)}off(Z,W){li(W),Z=Array.isArray(Z)?Z:[Z];for(const se of Z){Fr(se);const Qe=ki(this,se);Qe&&(Qe.delete(W),Qe.size===0&&Hl.get(this).delete(se)),this.logIfDebugEnabled("unsubscribe",se,void 0),qa(se)||yn(this,_l,{eventName:se,listener:W})}}once(Z){let W;const se=new a(Qe=>{W=this.on(Z,et=>{W(),Qe(et)})});return se.off=W,se}events(Z){Z=Array.isArray(Z)?Z:[Z];for(const W of Z)Fr(W);return hl(this,Z)}async emit(Z,W){var se;if(Fr(Z),qa(Z)&&!Qn)throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");this.logIfDebugEnabled("emit",Z,W),oa(this,Z,W);const Qe=(se=ki(this,Z))!=null?se:new Set,et=Jl.get(this),Zt=[...Qe],ft=qa(Z)?[]:[...et];await Pr,await a.all([...Zt.map(async kt=>{if(Qe.has(kt))return kt(W)}),...ft.map(async kt=>{if(et.has(kt))return kt(Z,W)})])}async emitSerial(Z,W){var se;if(Fr(Z),qa(Z)&&!Qn)throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");this.logIfDebugEnabled("emitSerial",Z,W);const Qe=(se=ki(this,Z))!=null?se:new Set,et=Jl.get(this),Zt=[...Qe],ft=[...et];await Pr;for(const kt of Zt)Qe.has(kt)&&await kt(W);for(const kt of ft)et.has(kt)&&await kt(Z,W)}onAny(Z){return li(Z),this.logIfDebugEnabled("subscribeAny",void 0,void 0),Jl.get(this).add(Z),yn(this,Ys,{listener:Z}),this.offAny.bind(this,Z)}anyEvent(){return hl(this)}offAny(Z){li(Z),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),yn(this,_l,{listener:Z}),Jl.get(this).delete(Z)}clearListeners(Z){Z=Array.isArray(Z)?Z:[Z];for(const W of Z)if(this.logIfDebugEnabled("clear",W,void 0),typeof W=="string"||typeof W=="symbol"||typeof W=="number"){const se=ki(this,W);se&&se.clear();const Qe=$a(this,W);if(Qe){for(const et of Qe)et.finish();Qe.clear()}}else{Jl.get(this).clear();for(const[se,Qe]of Hl.get(this).entries())Qe.clear(),Hl.get(this).delete(se);for(const[se,Qe]of el.get(this).entries()){for(const et of Qe)et.finish();Qe.clear(),el.get(this).delete(se)}}}listenerCount(Z){var W,se,Qe,et,Zt,ft;Z=Array.isArray(Z)?Z:[Z];let kt=0;for(const rr of Z){if(typeof rr=="string"){kt+=Jl.get(this).size+((se=(W=ki(this,rr))==null?void 0:W.size)!=null?se:0)+((et=(Qe=$a(this,rr))==null?void 0:Qe.size)!=null?et:0)+((ft=(Zt=$a(this))==null?void 0:Zt.size)!=null?ft:0);continue}typeof rr<"u"&&Fr(rr),kt+=Jl.get(this).size;for(const gr of Hl.get(this).values())kt+=gr.size;for(const gr of el.get(this).values())kt+=gr.size}return kt}bindMethods(Z,W){if(typeof Z!="object"||Z===null)throw new TypeError("`target` must be an object");W=wa(W);for(const se of W){if(Z[se]!==void 0)throw new Error(`The property \`${se}\` already exists on \`target\``);Object.defineProperty(Z,se,{enumerable:!1,value:this[se].bind(this)})}}}const Un=Object.getOwnPropertyNames(En.prototype).filter(G=>G!=="constructor");Object.defineProperty(En,"listenerAdded",{value:Ys,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(En,"listenerRemoved",{value:_l,writable:!1,enumerable:!0,configurable:!1});function Rr(G){return G.onAny&&G.emit}function si(G){return G.prototype.onAny&&G.prototype.emit}let Br=0;async function Jo(G,Z,W){const se=si(G)?new En:{},Qe=Br++;return Object.getOwnPropertyNames(G.prototype).forEach(et=>{se[et]=(...Zt)=>Ko(Z,So.FORWARD,et,Zt,W)}),se.terminate=async(...et)=>{const Zt=await Ko(Z,So.TERMINATE,"",et,W);return delete ti[Qe],Z.terminate(),se.workerContext.worker=void 0,Zt},se.workerContext={id:Qe,worker:Z,resolvers:W},ti[Qe]=se,se}async function ho(G,Z){const W=new Map;let se;const Qe=await ll(G,Z,W,(et,Zt)=>{se!=null&&se.emit&&(se==null||se.emit(et,Zt))});return se=await Jo(G,Qe,W),se}async function Qo(G,Z){const{functionName:W,args:se}=G;if(!Z.instance)throw"instance not initialized";if(!W)throw"missing function name to call";if(!Z.instance[W])throw`undefined function [${W}] in class ${Z.instance.constructor.workerId}`;Co(G,await Z.instance[W](...se??[]))}const Tl=Eo("registeredWorkers",{});function ga(G,Z){Z.workerId=G,yo()&&(Tl[Z.workerId]=Z)}function Zd(G,Z){if(!G.args)throw"Missing className while initializing worker";const[W,se]=G.args,Qe=Tl[W];if(Qe)Z.instance=new Qe(G.args.slice(1));else throw`unknown worker class ${W}`;Zl(se,jl),Rr(Z.instance)&&Z.instance.onAny((et,Zt)=>{Co({type:So.EVENT},{name:et,data:Zt})}),Co(G,typeof Z.instance!==void 0)}async function gl(G,Z){const{args:W}=G;if(!Z.instance)throw"instance not initialized";let se;Z.instance.terminate&&(se=await Z.instance.terminate(...W??[])),Co(G,se)}function ru(G){if(!G.args)throw"Missing globals while syncing";Zl(G.args[0],jl),Co(G,{})}function eo(){const G={};onmessage=async Z=>{const W=Z.data;switch(W.type){case So.INIT:Zd(W,G);break;case So.FORWARD:Qo(W,G);break;case So.TERMINATE:gl(W,G);break;case So.GLOBALS_SYNC:ru(W);break}}}yo()&&eo();class Hd{static async createVideoReadable(Z){return new a((W,se)=>{const Qe=document.createElement("video");let et=new AbortController,Zt=new AbortController;Qe.addEventListener("canplay",()=>{et.abort(),Qe.muted=!0,Qe.loop=!0,Qe.play().then(()=>{try{const ft=Qe.captureStream(),kt=new MediaStreamTrackProcessor(ft.getVideoTracks()[0]);W(kt.readable)}catch(ft){se(ft)}})},{once:!0,signal:Zt.signal}),Qe.addEventListener("error",ft=>{Zt.abort(),se("loading error:"+ft)},{once:!0,signal:et.signal}),Qe.crossOrigin="anonymous",Qe.src=Z})}static async createImageCanvas(Z){const W=await(await fetch(Z)).blob();return await createImageBitmap(W)}}var $l=Object.defineProperty,ua=(G,Z,W)=>Z in G?$l(G,Z,{enumerable:!0,configurable:!0,writable:!0,value:W}):G[Z]=W,Id=(G,Z,W)=>(ua(G,Z+"",W),W);const fd="hlg.tokbox.com/prod/logging/vcp_webrtc",dt="https://",Ft=1e4;let Se;const le=new Uint8Array(16);function Le(){if(!Se&&(Se=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Se))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Se(le)}const Xe=[];for(let G=0;G<256;++G)Xe.push((G+256).toString(16).slice(1));function Oe(G,Z=0){return(Xe[G[Z+0]]+Xe[G[Z+1]]+Xe[G[Z+2]]+Xe[G[Z+3]]+"-"+Xe[G[Z+4]]+Xe[G[Z+5]]+"-"+Xe[G[Z+6]]+Xe[G[Z+7]]+"-"+Xe[G[Z+8]]+Xe[G[Z+9]]+"-"+Xe[G[Z+10]]+Xe[G[Z+11]]+Xe[G[Z+12]]+Xe[G[Z+13]]+Xe[G[Z+14]]+Xe[G[Z+15]]).toLowerCase()}const mt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Wt={randomUUID:mt};function Mt(G,Z,W){if(Wt.randomUUID&&!G)return Wt.randomUUID();G=G||{};const se=G.random||(G.rng||Le)();return se[6]=se[6]&15|64,se[8]=se[8]&63|128,Oe(se)}function pn(G,Z){globalThis.vonage||(globalThis.vonage={}),globalThis.vonage.workerizer||(globalThis.vonage.workerizer={});let W=globalThis.vonage.workerizer;return W[G]||(W[G]=Z),W[G]}const on=pn("globals",{});var gn=(G=>(G.INIT="INIT",G.FORWARD="FORWARD",G.TERMINATE="TERMINATE",G.GLOBALS_SYNC="GLOBALS_SYNC",G))(gn||{});function qn(G){return[ImageBitmap,ReadableStream,WritableStream].some(Z=>G instanceof Z)}let cr=0;function Gn(G,Z,W,se,Qe){const et=cr++;return G.postMessage({id:et,type:Z,functionName:W,args:se},se.filter(Zt=>qn(Zt))),new a(Zt=>{Qe==null||Qe.set(et,Zt)})}function Or(G,Z){const{id:W,type:se}=G,Qe=Array.isArray(Z)?Z:[Z];postMessage({id:W,type:se,result:Z},Qe.filter(et=>qn(et)))}const un=pn("workerized",{});function Ar(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}async function mo(){if(Ar())Or({type:gn.GLOBALS_SYNC},on);else{const G=[];for(const Z in un){const{worker:W,resolvers:se}=un[Z].workerContext;W&&G.push(Gn(W,gn.GLOBALS_SYNC,"",[on],se))}await a.all(G)}}function ds(G,Z){if(Array.isArray(Z))Z.splice(0,Z.length);else if(typeof Z=="object")for(const W in Z)delete Z[W];for(const W in G)Array.isArray(G[W])?(Z[W]=[],ds(G[W],Z[W])):typeof G[W]=="object"?(Z[W]={},ds(G[W],Z[W])):Z[W]=G[W]}async function Kr(G,Z){const{functionName:W,args:se}=G;if(!Z.instance)throw"instance not initialized";if(!W)throw"missing function name to call";if(!Z.instance[W])throw`undefined function [${W}] in class ${Z.instance.constructor.workerId}`;Or(G,await Z.instance[W](...se??[]))}const Sn=pn("registeredWorkers",{});function Il(G,Z){if(!G.args)throw"Missing className while initializing worker";const[W,se]=G.args,Qe=Sn[W];if(Qe)Z.instance=new Qe(G.args.slice(1));else throw`unknown worker class ${W}`;ds(se,on),Or(G,typeof Z.instance!==void 0)}async function bl(G,Z){const{args:W}=G;if(!Z.instance)throw"instance not initialized";let se;Z.instance.terminate&&(se=await Z.instance.terminate(...W??[])),Or(G,se)}function to(G){if(!G.args)throw"Missing globals while syncing";ds(G.args[0],on),Or(G,{})}function Ri(){const G={};onmessage=async Z=>{const W=Z.data;switch(W.type){case gn.INIT:Il(W,G);break;case gn.FORWARD:Kr(W,G);break;case gn.TERMINATE:bl(W,G);break;case gn.GLOBALS_SYNC:to(W);break}}}Ar()&&Ri();function Mo(G,Z){return on[G]||(on[G]=Z),[()=>on[G],async W=>{on[G]=W,await mo()}]}function ed(G,Z){return Mo(G,Z)}const[Ds,sa]=ed("metadata");function no(){return Ds()}class Gd{constructor(Z){Id(this,"uuid",Mt()),this.config=Z}async send(Z){var W,se,Qe;const{appId:et,sourceType:Zt}=(W=no())!=null?W:{};if(!et||!Zt)return"metadata missing";const ft=new AbortController,kt=setTimeout(()=>ft.abort(),Ft);return await((Qe=(se=this.config)==null?void 0:se.fetch)!=null?Qe:fetch)(this.getUrl(),{method:"POST",headers:this.getHeaders(),body:JSON.stringify(this.buildReport(Z)),signal:ft.signal}),clearTimeout(kt),"success"}getUrl(){var Z;let W=(Z=no().proxyUrl)!=null?Z:dt;return W+=(W.at(-1)==="/"?"":"/")+fd,W}getHeaders(){return{"Content-Type":"application/json"}}buildReport(Z){const W=no();return{guid:this.uuid,...Z,applicationId:W.appId,timestamp:Date.now(),proxyUrl:W.proxyUrl,source:W.sourceType}}}const cc="5.1.2";class pu{constructor(){d(this,"canvas"),d(this,"context");const Z=new OffscreenCanvas(0,0),W=Z.getContext("2d");if(!W)throw"Fail to retrieve webgl2 context";this.canvas=Z,this.context=W}setFlickeringOptions(Z){}enablePostProcessing(){}disablePostProcessing(){}async profileWebgl(Z){return[]}async render(Z,W){return this.canvas}resizeCanvas(Z){const{width:W,height:se}=Z;this.canvas.width=W,this.canvas.height=se}renderSilhouette(Z,W,se="none"){const{width:Qe,height:et}=Z;this.context.save(),this.context.drawImage(W,0,0,W.width,W.height,0,0,Qe,et),this.context.globalCompositeOperation="source-in",this.context.filter=se,this.context.drawImage(Z,0,0,Qe,et,0,0,this.canvas.width,this.canvas.height),this.context.restore()}}class Ti extends pu{constructor(Z){super(),this.radius=Z}async render(Z,W){return super.resizeCanvas(Z),this.renderSilhouette(Z,W),this.context.save(),this.context.filter=`blur(${this.radius}px)`,this.context.globalCompositeOperation="destination-over",this.context.drawImage(Z,0,0,Z.width,Z.height),this.context.restore(),super.render(Z,W)}}class Ec extends pu{constructor(Z){super(),this.radius=Z}async render(Z,W){return super.resizeCanvas(Z),this.renderSilhouette(Z,W,`blur(${this.radius}px)`),this.context.save(),this.context.filter="none",this.context.globalCompositeOperation="destination-over",this.context.drawImage(Z,0,0,Z.width,Z.height),this.context.restore(),super.render(Z,W)}}class xl extends pu{constructor(){super(...arguments),d(this,"backgroundImage")}setBackgroundImage(Z){this.backgroundImage=Z}async render(Z,W){return super.resizeCanvas(Z),this.renderSilhouette(Z,W),this.backgroundImage&&(this.context.save(),this.context.filter="none",this.context.globalCompositeOperation="destination-over",this.context.drawImage(this.backgroundImage,0,0,this.backgroundImage.width,this.backgroundImage.height,0,0,Z.width,Z.height),this.context.restore()),super.render(Z,W)}}/* @license twgl.js 5.5.1 Copyright (c) 2015, Gregg Tavares All Rights Reserved. Available via the MIT license. see: http://github.com/greggman/twgl.js for details */const Hc=5120,Sc=5121,td=5122,Vs=5123,qd=5124,xd=5125,Jd=5126,xc=32819,Es=32820,ec=33635,Ms=5131,Cd=33640,Wc=35899,Nc=35902,cs=36269,uc=34042,fc={};{const G=fc;G[Hc]=Int8Array,G[Sc]=Uint8Array,G[td]=Int16Array,G[Vs]=Uint16Array,G[qd]=Int32Array,G[xd]=Uint32Array,G[Jd]=Float32Array,G[xc]=Uint16Array,G[Es]=Uint16Array,G[ec]=Uint16Array,G[Ms]=Uint16Array,G[Cd]=Uint32Array,G[Wc]=Uint32Array,G[Nc]=Uint32Array,G[cs]=Uint32Array,G[uc]=Uint32Array}function Pa(G){if(G instanceof Int8Array)return Hc;if(G instanceof Uint8Array||G instanceof Uint8ClampedArray)return Sc;if(G instanceof Int16Array)return td;if(G instanceof Uint16Array)return Vs;if(G instanceof Int32Array)return qd;if(G instanceof Uint32Array)return xd;if(G instanceof Float32Array)return Jd;throw new Error("unsupported typed array type")}function go(G){if(G===Int8Array)return Hc;if(G===Uint8Array||G===Uint8ClampedArray)return Sc;if(G===Int16Array)return td;if(G===Uint16Array)return Vs;if(G===Int32Array)return qd;if(G===Uint32Array)return xd;if(G===Float32Array)return Jd;throw new Error("unsupported typed array type")}function Gc(G){const Z=fc[G];if(!Z)throw new Error("unknown gl type");return Z}const tl=typeof SharedArrayBuffer<"u"?function(G){return G&&G.buffer&&(G.buffer instanceof ArrayBuffer||G.buffer instanceof SharedArrayBuffer)}:function(G){return G&&G.buffer&&G.buffer instanceof ArrayBuffer};function Jc(...G){console.error(...G)}const Ls=new Map;function Wi(G,Z){if(!G||typeof G!="object")return!1;let W=Ls.get(Z);W||(W=new WeakMap,Ls.set(Z,W));let se=W.get(G);if(se===void 0){const Qe=Object.prototype.toString.call(G);se=Qe.substring(8,Qe.length-1)===Z,W.set(G,se)}return se}function da(G,Z){return typeof WebGLBuffer<"u"&&Wi(Z,"WebGLBuffer")}function Po(G,Z){return typeof WebGLRenderbuffer<"u"&&Wi(Z,"WebGLRenderbuffer")}function mu(G,Z){return typeof WebGLTexture<"u"&&Wi(Z,"WebGLTexture")}function Cl(G,Z){return typeof WebGLSampler<"u"&&Wi(Z,"WebGLSampler")}const Rc=35044,Hs=34962,Ku=34963,iu=34660,bu=5120,Tc=5121,vd=5122,Oc=5123,Lo=5124,Gu=5125,Fo=5126,xs={attribPrefix:""};function Xc(G,Z,W,se,Qe){G.bindBuffer(Z,W),G.bufferData(Z,se,Qe||Rc)}function bs(G,Z,W,se){if(da(G,Z))return Z;W=W||Hs;const Qe=G.createBuffer();return Xc(G,W,Qe,Z,se),Qe}function hc(G){return G==="indices"}function Td(G){return G===Int8Array||G===Uint8Array}function au(G){return G.length?G:G.data}const il=/coord|texture/i,ql=/color|colour/i;function ys(G,Z){let W;if(il.test(G)?W=2:ql.test(G)?W=4:W=3,Z%W>0)throw new Error(`Can not guess numComponents for attribute '${G}'. Tried ${W} but ${Z} values is not evenly divisible by ${W}. You should specify it.`);return W}function Ju(G,Z,W){return G.numComponents||G.size||ys(Z,W||au(G).length)}function Bu(G,Z){if(tl(G))return G;if(tl(G.data))return G.data;Array.isArray(G)&&(G={data:G});let W=G.type?Ea(G.type):void 0;return W||(hc(Z)?W=Uint16Array:W=Float32Array),new W(G.data)}function Ga(G){return typeof G=="number"?G:G?go(G):Fo}function Ea(G){return typeof G=="number"?Gc(G):G||Float32Array}function Pu(G,Z){return{buffer:Z.buffer,numValues:2*3*4,type:Ga(Z.type),arrayType:Ea(Z.type)}}function kc(G,Z){const W=Z.data||Z,se=Ea(Z.type),Qe=W*se.BYTES_PER_ELEMENT,et=G.createBuffer();return G.bindBuffer(Hs,et),G.bufferData(Hs,Qe,Z.drawType||Rc),{buffer:et,numValues:W,type:go(se),arrayType:se}}function zu(G,Z,W){const se=Bu(Z,W);return{arrayType:se.constructor,buffer:bs(G,se,void 0,Z.drawType),type:Pa(se),numValues:0}}function ju(G,Z){const W={};return Object.keys(Z).forEach(function(se){if(!hc(se)){const Qe=Z[se],et=Qe.attrib||Qe.name||Qe.attribName||xs.attribPrefix+se;if(Qe.value){if(!Array.isArray(Qe.value)&&!tl(Qe.value))throw new Error("array.value is not array or typedarray");W[et]={value:Qe.value}}else{let Zt;Qe.buffer&&Qe.buffer instanceof WebGLBuffer?Zt=Pu:typeof Qe=="number"||typeof Qe.data=="number"?Zt=kc:Zt=zu;const{buffer:ft,type:kt,numValues:rr,arrayType:gr}=Zt(G,Qe,se),Wr=Qe.normalize!==void 0?Qe.normalize:Td(gr),Ui=Ju(Qe,se,rr);W[et]={buffer:ft,numComponents:Ui,type:kt,normalize:Wr,stride:Qe.stride||0,offset:Qe.offset||0,divisor:Qe.divisor===void 0?void 0:Qe.divisor,drawType:Qe.drawType}}}}),G.bindBuffer(Hs,null),W}function _u(G,Z){return Z===bu||Z===Tc?1:Z===vd||Z===Oc?2:Z===Lo||Z===Gu||Z===Fo?4:0}const tc=["position","positions","a_position"];function Pe(G,Z){let W,se;for(se=0;se<tc.length&&(W=tc[se],!(W in Z||(W=xs.attribPrefix+W,W in Z)));++se);se===tc.length&&(W=Object.keys(Z)[0]);const Qe=Z[W];if(!Qe.buffer)return 1;G.bindBuffer(Hs,Qe.buffer);const et=G.getBufferParameter(Hs,iu);G.bindBuffer(Hs,null);const Zt=_u(G,Qe.type),ft=et/Zt,kt=Qe.numComponents||Qe.size,rr=ft/kt;if(rr%1!==0)throw new Error(`numComponents ${kt} not correct for length ${length}`);return rr}function ze(G,Z,W){const se=ju(G,Z),Qe=Object.assign({},{});Qe.attribs=Object.assign({},{},se);const et=Z.indices;if(et){const Zt=Bu(et,"indices");Qe.indices=bs(G,Zt,Ku),Qe.numElements=Zt.length,Qe.elementType=Pa(Zt)}else Qe.numElements||(Qe.numElements=Pe(G,Qe.attribs));return Qe}function qr(G){return!!G.texStorage2D}const Kc=function(){const G={},Z={};function W(se){const Qe=se.constructor.name;if(!G[Qe]){for(const et in se)if(typeof se[et]=="number"){const Zt=Z[se[et]];Z[se[et]]=Zt?`${Zt} | ${et}`:et}G[Qe]=!0}}return function(se,Qe){return W(se),Z[Qe]||(typeof Qe=="number"?`0x${Qe.toString(16)}`:Qe)}}(),nd={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},al=tl,wc=function(){let G;return function(){return G=G||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),G}}(),Zu=6406,hd=6407,Al=6408,Sa=6409,Od=6410,Bc=6402,Ol=34041,nc=33071,Zc=9728,co=9729,gd=3553,us=34067,ht=32879,P=35866,ee=34069,Re=34070,rt=34071,st=34072,tn=34073,Xt=34074,en=10241,fn=10240,ge=10242,ot=10243,Vt=32882,Ut=33082,Rn=33083,kn=33084,Bn=33085,ni=34892,Uo=34893,Aa=3317,ji=3314,To=32878,es=3316,Ja=3315,vl=32877,Ss=37443,gc=37441,Qh=37440,$u=33321,RA=36756,Mf=33325,Tp=33326,Lf=33330,Ac=33329,qu=33338,ef=33337,Uh=33340,Ff=33339,sl=33323,BA=36757,Qf=33327,Hf=33328,Xp=33336,Iu=33335,Cu=33332,kp=33331,Rh=33334,Ug=33333,Rg=32849,xf=35905,Bh=36194,fs=36758,ZA=35898,IA=35901,Uf=34843,wp=34837,Rf=36221,Zh=36239,tf=36215,Yp=36233,CA=36209,Of=36227,Dp=32856,vA=35907,Ih=36759,Mp=32855,Kf=32854,Lp=32857,Pf=34842,pc=34836,Bg=36220,Hp=36238,xp=36975,Ch=36214,VA=36232,Op=36226,zf=36208,Kp=33189,Pp=33190,zp=36012,EA=36013,jp=35056,ou=5120,hs=5121,vh=5122,Bf=5123,Vh=5124,Pc=5125,rc=5126,Zg=32819,Ig=32820,Eh=33635,lu=5131,Zf=36193,Cg=33640,_p=35899,SA=35902,$p=36269,qp=34042,Sh=33319,If=33320,jf=6403,Kd=36244,Tu=36248,nf=36249;let vg;function rf(G){if(!vg){const Z={};Z[Zu]={textureFormat:Zu,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[hs,lu,Zf,rc]},Z[Sa]={textureFormat:Sa,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[hs,lu,Zf,rc]},Z[Od]={textureFormat:Od,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[hs,lu,Zf,rc]},Z[hd]={textureFormat:hd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[hs,lu,Zf,rc,Eh]},Z[Al]={textureFormat:Al,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[hs,lu,Zf,rc,Zg,Ig]},Z[Bc]={textureFormat:Bc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Pc,Bf]},Z[$u]={textureFormat:jf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[hs]},Z[RA]={textureFormat:jf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[ou]},Z[Mf]={textureFormat:jf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[rc,lu]},Z[Tp]={textureFormat:jf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[rc]},Z[Lf]={textureFormat:Kd,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[hs]},Z[Ac]={textureFormat:Kd,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ou]},Z[Cu]={textureFormat:Kd,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Bf]},Z[kp]={textureFormat:Kd,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[vh]},Z[Rh]={textureFormat:Kd,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Pc]},Z[Ug]={textureFormat:Kd,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Vh]},Z[sl]={textureFormat:Sh,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[hs]},Z[BA]={textureFormat:Sh,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[ou]},Z[Qf]={textureFormat:Sh,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[rc,lu]},Z[Hf]={textureFormat:Sh,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[rc]},Z[Xp]={textureFormat:If,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[hs]},Z[Iu]={textureFormat:If,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ou]},Z[qu]={textureFormat:If,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Bf]},Z[ef]={textureFormat:If,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[vh]},Z[Uh]={textureFormat:If,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Pc]},Z[Ff]={textureFormat:If,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Vh]},Z[Rg]={textureFormat:hd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[hs]},Z[xf]={textureFormat:hd,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[hs]},Z[Bh]={textureFormat:hd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[hs,Eh]},Z[fs]={textureFormat:hd,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ou]},Z[ZA]={textureFormat:hd,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[rc,lu,_p]},Z[IA]={textureFormat:hd,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[rc,lu,SA]},Z[Uf]={textureFormat:hd,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[rc,lu]},Z[wp]={textureFormat:hd,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[rc]},Z[Rf]={textureFormat:Tu,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[hs]},Z[Zh]={textureFormat:Tu,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ou]},Z[tf]={textureFormat:Tu,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Bf]},Z[Yp]={textureFormat:Tu,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[vh]},Z[CA]={textureFormat:Tu,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Pc]},Z[Of]={textureFormat:Tu,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Vh]},Z[Dp]={textureFormat:Al,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[hs]},Z[vA]={textureFormat:Al,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[hs]},Z[Ih]={textureFormat:Al,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[ou]},Z[Mp]={textureFormat:Al,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[hs,Ig,Cg]},Z[Kf]={textureFormat:Al,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[hs,Zg]},Z[Lp]={textureFormat:Al,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Cg]},Z[Pf]={textureFormat:Al,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[rc,lu]},Z[pc]={textureFormat:Al,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[rc]},Z[Bg]={textureFormat:nf,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[hs]},Z[Hp]={textureFormat:nf,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ou]},Z[xp]={textureFormat:nf,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Cg]},Z[Ch]={textureFormat:nf,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Bf]},Z[VA]={textureFormat:nf,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[vh]},Z[Op]={textureFormat:nf,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Vh]},Z[zf]={textureFormat:nf,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Pc]},Z[Kp]={textureFormat:Bc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Bf,Pc]},Z[Pp]={textureFormat:Bc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Pc]},Z[zp]={textureFormat:Bc,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[rc]},Z[jp]={textureFormat:Ol,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[qp]},Z[EA]={textureFormat:Ol,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[$p]},Object.keys(Z).forEach(function(W){const se=Z[W];se.bytesPerElementMap={},se.bytesPerElement.forEach(function(Qe,et){const Zt=se.type[et];se.bytesPerElementMap[Zt]=Qe})}),vg=Z}return vg[G]}function Wh(G,Z){const W=rf(G);if(!W)throw"unknown internal format";const se=W.bytesPerElementMap[Z];if(se===void 0)throw"unknown internal format";return se}function _f(G){const Z=rf(G);if(!Z)throw"unknown internal format";return{format:Z.textureFormat,type:Z.type[0]}}function Xu(G){return(G&G-1)===0}function em(G,Z,W,se){if(!qr(G))return Xu(Z)&&Xu(W);const Qe=rf(se);if(!Qe)throw"unknown internal format";return Qe.colorRenderable&&Qe.textureFilterable}function tm(G){const Z=rf(G);if(!Z)throw"unknown internal format";return Z.textureFilterable}function nm(G,Z,W){return al(Z)?Pa(Z):W||hs}function Nh(G,Z,W,se,Qe){if(Qe%1!==0)throw"can't guess dimensions";if(!W&&!se){const et=Math.sqrt(Qe/(Z===us?6:1));et%1===0?(W=et,se=et):(W=Qe,se=1)}else if(se){if(!W&&(W=Qe/se,W%1))throw"can't guess dimensions"}else if(se=Qe/W,se%1)throw"can't guess dimensions";return{width:W,height:se}}function af(G,Z){Z.colorspaceConversion!==void 0&&G.pixelStorei(Ss,Z.colorspaceConversion),Z.premultiplyAlpha!==void 0&&G.pixelStorei(gc,Z.premultiplyAlpha),Z.flipY!==void 0&&G.pixelStorei(Qh,Z.flipY)}function WA(G){G.pixelStorei(Aa,4),qr(G)&&(G.pixelStorei(ji,0),G.pixelStorei(To,0),G.pixelStorei(es,0),G.pixelStorei(Ja,0),G.pixelStorei(vl,0))}function NA(G,Z,W,se){se.minMag&&(W.call(G,Z,en,se.minMag),W.call(G,Z,fn,se.minMag)),se.min&&W.call(G,Z,en,se.min),se.mag&&W.call(G,Z,fn,se.mag),se.wrap&&(W.call(G,Z,ge,se.wrap),W.call(G,Z,ot,se.wrap),(Z===ht||Cl(G,Z))&&W.call(G,Z,Vt,se.wrap)),se.wrapR&&W.call(G,Z,Vt,se.wrapR),se.wrapS&&W.call(G,Z,ge,se.wrapS),se.wrapT&&W.call(G,Z,ot,se.wrapT),se.minLod!==void 0&&W.call(G,Z,Ut,se.minLod),se.maxLod!==void 0&&W.call(G,Z,Rn,se.maxLod),se.baseLevel!==void 0&&W.call(G,Z,kn,se.baseLevel),se.maxLevel!==void 0&&W.call(G,Z,Bn,se.maxLevel),se.compareFunc!==void 0&&W.call(G,Z,Uo,se.compareFunc),se.compareMode!==void 0&&W.call(G,Z,ni,se.compareMode)}function GA(G,Z,W){const se=W.target||gd;G.bindTexture(se,Z),NA(G,se,G.texParameteri,W)}function rm(G){return G=G||nd.textureColor,al(G)?G:new Uint8Array([G[0]*255,G[1]*255,G[2]*255,G[3]*255])}function Vg(G,Z,W,se,Qe,et){W=W||nd.textureOptions,et=et||Al;const Zt=W.target||gd;if(se=se||W.width,Qe=Qe||W.height,G.bindTexture(Zt,Z),em(G,se,Qe,et))G.generateMipmap(Zt);else{const ft=tm(et)?co:Zc;G.texParameteri(Zt,en,ft),G.texParameteri(Zt,fn,ft),G.texParameteri(Zt,ge,nc),G.texParameteri(Zt,ot,nc)}}function $f(G){return G.auto===!0||G.auto===void 0&&G.level===void 0}function Eg(G,Z){return Z=Z||{},Z.cubeFaceOrder||[ee,Re,rt,st,tn,Xt]}function Sg(G,Z){const W=Eg(G,Z).map(function(se,Qe){return{face:se,ndx:Qe}});return W.sort(function(se,Qe){return se.face-Qe.face}),W}function JA(G,Z,W,se){se=se||nd.textureOptions;const Qe=se.target||gd,et=se.level||0;let Zt=W.width,ft=W.height;const kt=se.internalFormat||se.format||Al,rr=_f(kt),gr=se.format||rr.format,Wr=se.type||rr.type;if(af(G,se),G.bindTexture(Qe,Z),Qe===us){const Ui=W.width,Ci=W.height;let Qr,Jr;if(Ui/6===Ci)Qr=Ci,Jr=[0,0,1,0,2,0,3,0,4,0,5,0];else if(Ci/6===Ui)Qr=Ui,Jr=[0,0,0,1,0,2,0,3,0,4,0,5];else if(Ui/3===Ci/2)Qr=Ui/3,Jr=[0,0,1,0,2,0,0,1,1,1,2,1];else if(Ui/2===Ci/3)Qr=Ui/2,Jr=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(W.src?W.src:W.nodeName);const $i=wc();$i?($i.canvas.width=Qr,$i.canvas.height=Qr,Zt=Qr,ft=Qr,Sg(G,se).forEach(function(fa){const ro=Jr[fa.ndx*2+0]*Qr,Tn=Jr[fa.ndx*2+1]*Qr;$i.drawImage(W,ro,Tn,Qr,Qr,0,0,Qr,Qr),G.texImage2D(fa.face,et,kt,gr,Wr,$i.canvas)}),$i.canvas.width=1,$i.canvas.height=1):typeof createImageBitmap<"u"&&(Zt=Qr,ft=Qr,Sg(G,se).forEach(function(fa){const ro=Jr[fa.ndx*2+0]*Qr,Tn=Jr[fa.ndx*2+1]*Qr;G.texImage2D(fa.face,et,kt,Qr,Qr,0,gr,Wr,null),createImageBitmap(W,ro,Tn,Qr,Qr,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(ps){af(G,se),G.bindTexture(Qe,Z),G.texImage2D(fa.face,et,kt,gr,Wr,ps),$f(se)&&Vg(G,Z,se,Zt,ft,kt)})}))}else if(Qe===ht||Qe===P){const Ui=Math.min(W.width,W.height),Ci=Math.max(W.width,W.height),Qr=Ci/Ui;if(Qr%1!==0)throw"can not compute 3D dimensions of element";const Jr=W.width===Ci?1:0,$i=W.height===Ci?1:0;G.pixelStorei(Aa,1),G.pixelStorei(ji,W.width),G.pixelStorei(To,0),G.pixelStorei(vl,0),G.texImage3D(Qe,et,kt,Ui,Ui,Ui,0,gr,Wr,null);for(let fa=0;fa<Qr;++fa){const ro=fa*Ui*Jr,Tn=fa*Ui*$i;G.pixelStorei(es,ro),G.pixelStorei(Ja,Tn),G.texSubImage3D(Qe,et,0,0,fa,Ui,Ui,1,gr,Wr,W)}WA(G)}else G.texImage2D(Qe,et,kt,gr,Wr,W);$f(se)&&Vg(G,Z,se,Zt,ft,kt),GA(G,Z,se)}function qf(){}function im(G){if(typeof document<"u"){const Z=document.createElement("a");return Z.href=G,Z.hostname===location.hostname&&Z.port===location.port&&Z.protocol===location.protocol}else{const Z=new URL(location.href).origin;return new URL(G,location.href).origin===Z}}function Gh(G,Z){return Z===void 0&&!im(G)?"anonymous":Z}function am(G,Z,W){W=W||qf;let se;if(Z=Z!==void 0?Z:nd.crossOrigin,Z=Gh(G,Z),typeof Image<"u"){se=new Image,Z!==void 0&&(se.crossOrigin=Z);const Qe=function(){se.removeEventListener("error",et),se.removeEventListener("load",Zt),se=null},et=function(){const ft="couldn't load image: "+G;Jc(ft),W(ft,se),Qe()},Zt=function(){W(null,se),Qe()};return se.addEventListener("error",et),se.addEventListener("load",Zt),se.src=G,se}else if(typeof ImageBitmap<"u"){let Qe,et;const Zt=function(){W(Qe,et)},ft={};Z&&(ft.mode="cors"),fetch(G,ft).then(function(kt){if(!kt.ok)throw kt;return kt.blob()}).then(function(kt){return createImageBitmap(kt,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(kt){et=kt,setTimeout(Zt)}).catch(function(kt){Qe=kt,setTimeout(Zt)}),se=null}return se}function Wg(G){return typeof ImageBitmap<"u"&&G instanceof ImageBitmap||typeof ImageData<"u"&&G instanceof ImageData||typeof HTMLElement<"u"&&G instanceof HTMLElement}function Cf(G,Z,W){return Wg(G)?(setTimeout(function(){W(null,G)}),G):am(G,Z,W)}function vf(G,Z,W){W=W||nd.textureOptions;const se=W.target||gd;if(G.bindTexture(se,Z),W.color===!1)return;const Qe=rm(W.color);if(se===us)for(let et=0;et<6;++et)G.texImage2D(ee+et,0,Al,1,1,0,Al,hs,Qe);else se===ht||se===P?G.texImage3D(se,0,Al,1,1,1,0,Al,hs,Qe):G.texImage2D(se,0,Al,1,1,0,Al,hs,Qe)}function om(G,Z,W,se){return se=se||qf,W=W||nd.textureOptions,vf(G,Z,W),W=Object.assign({},W),Cf(W.src,W.crossOrigin,function(Qe,et){Qe?se(Qe,Z,et):(JA(G,Z,et,W),se(null,Z,et))})}function Ng(G,Z,W,se){se=se||qf;const Qe=W.src;if(Qe.length!==6)throw"there must be 6 urls for a cubemap";const et=W.level||0,Zt=W.internalFormat||W.format||Al,ft=_f(Zt),kt=W.format||ft.format,rr=W.type||hs,gr=W.target||gd;if(gr!==us)throw"target must be TEXTURE_CUBE_MAP";vf(G,Z,W),W=Object.assign({},W);let Wr=6;const Ui=[],Ci=Eg(G,W);let Qr;function Jr($i){return function(fa,ro){--Wr,fa?Ui.push(fa):ro.width!==ro.height?Ui.push("cubemap face img is not a square: "+ro.src):(af(G,W),G.bindTexture(gr,Z),Wr===5?Eg().forEach(function(Tn){G.texImage2D(Tn,et,Zt,kt,rr,ro)}):G.texImage2D($i,et,Zt,kt,rr,ro),$f(W)&&G.generateMipmap(gr)),Wr===0&&se(Ui.length?Ui:void 0,Z,Qr)}}Qr=Qe.map(function($i,fa){return Cf($i,W.crossOrigin,Jr(Ci[fa]))})}function lm(G,Z,W,se){se=se||qf;const Qe=W.src,et=W.internalFormat||W.format||Al,Zt=_f(et),ft=W.format||Zt.format,kt=W.type||hs,rr=W.target||P;if(rr!==ht&&rr!==P)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";vf(G,Z,W),W=Object.assign({},W);let gr=Qe.length;const Wr=[];let Ui;const Ci=W.level||0;let Qr=W.width,Jr=W.height;const $i=Qe.length;let fa=!0;function ro(Tn){return function(ps,id){if(--gr,ps)Wr.push(ps);else{if(af(G,W),G.bindTexture(rr,Z),fa){fa=!1,Qr=W.width||id.width,Jr=W.height||id.height,G.texImage3D(rr,Ci,et,Qr,Jr,$i,0,ft,kt,null);for(let xo=0;xo<$i;++xo)G.texSubImage3D(rr,Ci,0,0,xo,Qr,Jr,1,ft,kt,id)}else{let xo=id,ba;(id.width!==Qr||id.height!==Jr)&&(ba=wc(),xo=ba.canvas,ba.canvas.width=Qr,ba.canvas.height=Jr,ba.drawImage(id,0,0,Qr,Jr)),G.texSubImage3D(rr,Ci,0,0,Tn,Qr,Jr,1,ft,kt,xo),ba&&xo===ba.canvas&&(ba.canvas.width=0,ba.canvas.height=0)}$f(W)&&G.generateMipmap(rr)}gr===0&&se(Wr.length?Wr:void 0,Z,Ui)}}Ui=Qe.map(function(Tn,ps){return Cf(Tn,W.crossOrigin,ro(ps))})}function TA(G,Z,W,se){se=se||nd.textureOptions;const Qe=se.target||gd;G.bindTexture(Qe,Z);let et=se.width,Zt=se.height,ft=se.depth;const kt=se.level||0,rr=se.internalFormat||se.format||Al,gr=_f(rr),Wr=se.format||gr.format,Ui=se.type||nm(G,W,gr.type);if(al(W))W instanceof Uint8ClampedArray&&(W=new Uint8Array(W.buffer));else{const $i=Gc(Ui);W=new $i(W)}const Ci=Wh(rr,Ui),Qr=W.byteLength/Ci;if(Qr%1)throw"length wrong size for format: "+Kc(G,Wr);let Jr;if(Qe===ht||Qe===P)if(!et&&!Zt&&!ft){const $i=Math.cbrt(Qr);if($i%1!==0)throw"can't guess cube size of array of numElements: "+Qr;et=$i,Zt=$i,ft=$i}else et&&(!Zt||!ft)?(Jr=Nh(G,Qe,Zt,ft,Qr/et),Zt=Jr.width,ft=Jr.height):Zt&&(!et||!ft)?(Jr=Nh(G,Qe,et,ft,Qr/Zt),et=Jr.width,ft=Jr.height):(Jr=Nh(G,Qe,et,Zt,Qr/ft),et=Jr.width,Zt=Jr.height);else Jr=Nh(G,Qe,et,Zt,Qr),et=Jr.width,Zt=Jr.height;if(WA(G),G.pixelStorei(Aa,se.unpackAlignment||1),af(G,se),Qe===us){const $i=Ci/W.BYTES_PER_ELEMENT,fa=Qr/6*$i;Sg(G,se).forEach(ro=>{const Tn=fa*ro.ndx,ps=W.subarray(Tn,Tn+fa);G.texImage2D(ro.face,kt,rr,et,Zt,0,Wr,Ui,ps)})}else Qe===ht||Qe===P?G.texImage3D(Qe,kt,rr,et,Zt,ft,0,Wr,Ui,W):G.texImage2D(Qe,kt,rr,et,Zt,0,Wr,Ui,W);return{width:et,height:Zt,depth:ft,type:Ui}}function Gg(G,Z,W){const se=W.target||gd;G.bindTexture(se,Z);const Qe=W.level||0,et=W.internalFormat||W.format||Al,Zt=_f(et),ft=W.format||Zt.format,kt=W.type||Zt.type;if(af(G,W),se===us)for(let rr=0;rr<6;++rr)G.texImage2D(ee+rr,Qe,et,W.width,W.height,0,ft,kt,null);else se===ht||se===P?G.texImage3D(se,Qe,et,W.width,W.height,W.depth,0,ft,kt,null):G.texImage2D(se,Qe,et,W.width,W.height,0,ft,kt,null)}function Jh(G,Z,W){W=W||qf,Z=Z||nd.textureOptions;const se=G.createTexture(),Qe=Z.target||gd;let et=Z.width||1,Zt=Z.height||1;const ft=Z.internalFormat||Al;G.bindTexture(Qe,se),Qe===us&&(G.texParameteri(Qe,ge,nc),G.texParameteri(Qe,ot,nc));let kt=Z.src;if(kt)if(typeof kt=="function"&&(kt=kt(G,Z)),typeof kt=="string")om(G,se,Z,W);else if(al(kt)||Array.isArray(kt)&&(typeof kt[0]=="number"||Array.isArray(kt[0])||al(kt[0]))){const rr=TA(G,se,kt,Z);et=rr.width,Zt=rr.height}else Array.isArray(kt)&&(typeof kt[0]=="string"||Wg(kt[0]))?Qe===us?Ng(G,se,Z,W):lm(G,se,Z,W):(JA(G,se,kt,Z),et=kt.width,Zt=kt.height);else Gg(G,se,Z);return $f(Z)&&Vg(G,se,Z,et,Zt,ft),GA(G,se,Z),se}const Jg=Jc;function Ho(G){return typeof document<"u"&&document.getElementById?document.getElementById(G):null}const of=33984,zc=34962,XA=34963,kA=35713,wA=35714,YA=35632,gs=35633,eh=35981,ts=35718,Fs=35721,DA=35971,MA=35382,Th=35396,LA=35398,Vf=35392,sm=35395,th=5126,Tg=35664,Xg=35665,HA=35666,Xh=5124,kg=35667,wg=35668,xA=35669,Yg=35670,OA=35671,nh=35672,KA=35673,Dg=35674,Mg=35675,PA=35676,dm=35678,cm=35680,um=35679,zA=35682,Lg=35685,Hg=35686,fm=35687,kh=35688,Ma=35689,T=35690,Y=36289,ne=36292,me=36293,tt=5125,yt=36294,Nt=36295,Ht=36296,xn=36298,ar=36299,ei=36300,_i=36303,di=36306,wr=36307,pa=36308,Vl=36311,ma=3553,Ia=34067,Zr=32879,Zi=35866,xi={};function yl(G,Z){return xi[Z].bindPoint}function mc(G,Z){return function(W){G.uniform1f(Z,W)}}function Ws(G,Z){return function(W){G.uniform1fv(Z,W)}}function Dy(G,Z){return function(W){G.uniform2fv(Z,W)}}function My(G,Z){return function(W){G.uniform3fv(Z,W)}}function Ly(G,Z){return function(W){G.uniform4fv(Z,W)}}function $0(G,Z){return function(W){G.uniform1i(Z,W)}}function q0(G,Z){return function(W){G.uniform1iv(Z,W)}}function eb(G,Z){return function(W){G.uniform2iv(Z,W)}}function tb(G,Z){return function(W){G.uniform3iv(Z,W)}}function nb(G,Z){return function(W){G.uniform4iv(Z,W)}}function Hy(G,Z){return function(W){G.uniform1ui(Z,W)}}function xy(G,Z){return function(W){G.uniform1uiv(Z,W)}}function Oy(G,Z){return function(W){G.uniform2uiv(Z,W)}}function Ky(G,Z){return function(W){G.uniform3uiv(Z,W)}}function Py(G,Z){return function(W){G.uniform4uiv(Z,W)}}function zy(G,Z){return function(W){G.uniformMatrix2fv(Z,!1,W)}}function jy(G,Z){return function(W){G.uniformMatrix3fv(Z,!1,W)}}function _y(G,Z){return function(W){G.uniformMatrix4fv(Z,!1,W)}}function $y(G,Z){return function(W){G.uniformMatrix2x3fv(Z,!1,W)}}function qy(G,Z){return function(W){G.uniformMatrix3x2fv(Z,!1,W)}}function eF(G,Z){return function(W){G.uniformMatrix2x4fv(Z,!1,W)}}function tF(G,Z){return function(W){G.uniformMatrix4x2fv(Z,!1,W)}}function nF(G,Z){return function(W){G.uniformMatrix3x4fv(Z,!1,W)}}function rF(G,Z){return function(W){G.uniformMatrix4x3fv(Z,!1,W)}}function Yc(G,Z,W,se){const Qe=yl(G,Z);return qr(G)?function(et){let Zt,ft;!et||mu(G,et)?(Zt=et,ft=null):(Zt=et.texture,ft=et.sampler),G.uniform1i(se,W),G.activeTexture(of+W),G.bindTexture(Qe,Zt),G.bindSampler(W,ft)}:function(et){G.uniform1i(se,W),G.activeTexture(of+W),G.bindTexture(Qe,et)}}function ic(G,Z,W,se,Qe){const et=yl(G,Z),Zt=new Int32Array(Qe);for(let ft=0;ft<Qe;++ft)Zt[ft]=W+ft;return qr(G)?function(ft){G.uniform1iv(se,Zt),ft.forEach(function(kt,rr){G.activeTexture(of+Zt[rr]);let gr,Wr;!kt||mu(G,kt)?(gr=kt,Wr=null):(gr=kt.texture,Wr=kt.sampler),G.bindSampler(W,Wr),G.bindTexture(et,gr)})}:function(ft){G.uniform1iv(se,Zt),ft.forEach(function(kt,rr){G.activeTexture(of+Zt[rr]),G.bindTexture(et,kt)})}}xi[th]={Type:Float32Array,size:4,setter:mc,arraySetter:Ws},xi[Tg]={Type:Float32Array,size:8,setter:Dy,cols:2},xi[Xg]={Type:Float32Array,size:12,setter:My,cols:3},xi[HA]={Type:Float32Array,size:16,setter:Ly,cols:4},xi[Xh]={Type:Int32Array,size:4,setter:$0,arraySetter:q0},xi[kg]={Type:Int32Array,size:8,setter:eb,cols:2},xi[wg]={Type:Int32Array,size:12,setter:tb,cols:3},xi[xA]={Type:Int32Array,size:16,setter:nb,cols:4},xi[tt]={Type:Uint32Array,size:4,setter:Hy,arraySetter:xy},xi[yt]={Type:Uint32Array,size:8,setter:Oy,cols:2},xi[Nt]={Type:Uint32Array,size:12,setter:Ky,cols:3},xi[Ht]={Type:Uint32Array,size:16,setter:Py,cols:4},xi[Yg]={Type:Uint32Array,size:4,setter:$0,arraySetter:q0},xi[OA]={Type:Uint32Array,size:8,setter:eb,cols:2},xi[nh]={Type:Uint32Array,size:12,setter:tb,cols:3},xi[KA]={Type:Uint32Array,size:16,setter:nb,cols:4},xi[Dg]={Type:Float32Array,size:32,setter:zy,rows:2,cols:2},xi[Mg]={Type:Float32Array,size:48,setter:jy,rows:3,cols:3},xi[PA]={Type:Float32Array,size:64,setter:_y,rows:4,cols:4},xi[Lg]={Type:Float32Array,size:32,setter:$y,rows:2,cols:3},xi[Hg]={Type:Float32Array,size:32,setter:eF,rows:2,cols:4},xi[fm]={Type:Float32Array,size:48,setter:qy,rows:3,cols:2},xi[kh]={Type:Float32Array,size:48,setter:nF,rows:3,cols:4},xi[Ma]={Type:Float32Array,size:64,setter:tF,rows:4,cols:2},xi[T]={Type:Float32Array,size:64,setter:rF,rows:4,cols:3},xi[dm]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:ma},xi[cm]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Ia},xi[um]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Zr},xi[zA]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:ma},xi[Y]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Zi},xi[ne]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Zi},xi[me]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Ia},xi[xn]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:ma},xi[ar]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Zr},xi[ei]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Ia},xi[_i]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Zi},xi[di]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:ma},xi[wr]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Zr},xi[pa]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Ia},xi[Vl]={Type:null,size:0,setter:Yc,arraySetter:ic,bindPoint:Zi};function xg(G,Z){return function(W){if(W.value)switch(G.disableVertexAttribArray(Z),W.value.length){case 4:G.vertexAttrib4fv(Z,W.value);break;case 3:G.vertexAttrib3fv(Z,W.value);break;case 2:G.vertexAttrib2fv(Z,W.value);break;case 1:G.vertexAttrib1fv(Z,W.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else G.bindBuffer(zc,W.buffer),G.enableVertexAttribArray(Z),G.vertexAttribPointer(Z,W.numComponents||W.size,W.type||th,W.normalize||!1,W.stride||0,W.offset||0),G.vertexAttribDivisor&&G.vertexAttribDivisor(Z,W.divisor||0)}}function V(G,Z){return function(W){if(W.value)if(G.disableVertexAttribArray(Z),W.value.length===4)G.vertexAttrib4iv(Z,W.value);else throw new Error("The length of an integer constant value must be 4!");else G.bindBuffer(zc,W.buffer),G.enableVertexAttribArray(Z),G.vertexAttribIPointer(Z,W.numComponents||W.size,W.type||Xh,W.stride||0,W.offset||0),G.vertexAttribDivisor&&G.vertexAttribDivisor(Z,W.divisor||0)}}function k(G,Z){return function(W){if(W.value)if(G.disableVertexAttribArray(Z),W.value.length===4)G.vertexAttrib4uiv(Z,W.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else G.bindBuffer(zc,W.buffer),G.enableVertexAttribArray(Z),G.vertexAttribIPointer(Z,W.numComponents||W.size,W.type||tt,W.stride||0,W.offset||0),G.vertexAttribDivisor&&G.vertexAttribDivisor(Z,W.divisor||0)}}function _(G,Z,W){const se=W.size,Qe=W.count;return function(et){G.bindBuffer(zc,et.buffer);const Zt=et.size||et.numComponents||se,ft=Zt/Qe,kt=et.type||th,rr=xi[kt].size*Zt,gr=et.normalize||!1,Wr=et.offset||0,Ui=rr/Qe;for(let Ci=0;Ci<Qe;++Ci)G.enableVertexAttribArray(Z+Ci),G.vertexAttribPointer(Z+Ci,ft,kt,gr,rr,Wr+Ui*Ci),G.vertexAttribDivisor&&G.vertexAttribDivisor(Z+Ci,et.divisor||0)}}const de={};de[th]={size:4,setter:xg},de[Tg]={size:8,setter:xg},de[Xg]={size:12,setter:xg},de[HA]={size:16,setter:xg},de[Xh]={size:4,setter:V},de[kg]={size:8,setter:V},de[wg]={size:12,setter:V},de[xA]={size:16,setter:V},de[tt]={size:4,setter:k},de[yt]={size:8,setter:k},de[Nt]={size:12,setter:k},de[Ht]={size:16,setter:k},de[Yg]={size:4,setter:V},de[OA]={size:8,setter:V},de[nh]={size:12,setter:V},de[KA]={size:16,setter:V},de[Dg]={size:4,setter:_,count:2},de[Mg]={size:9,setter:_,count:3},de[PA]={size:16,setter:_,count:4};const He=/ERROR:\s*\d+:(\d+)/gi;function ut(G,Z="",W=0){const se=[...Z.matchAll(He)],Qe=new Map(se.map((et,Zt)=>{const ft=parseInt(et[1]),kt=se[Zt+1],rr=kt?kt.index:Z.length,gr=Z.substring(et.index,rr);return[ft-1,gr]}));return G.split(` `).map((et,Zt)=>{const ft=Qe.get(Zt);return`${Zt+1+W}: ${et}${ft?` ^^^ ${ft}`:""}`}).join(` `)}const It=/^[ \t]*\n/;function Tt(G){let Z=0;return It.test(G)&&(Z=1,G=G.replace(It,"")),{lineOffset:Z,shaderSource:G}}function Cn(G,Z){return G.errorCallback(Z),G.callback&&setTimeout(()=>{G.callback(`${Z} ${G.errors.join(` `)}`)}),null}function er(G,Z,W,se){if(se=se||Jg,!G.getShaderParameter(W,kA)){const Qe=G.getShaderInfoLog(W),{lineOffset:et,shaderSource:Zt}=Tt(G.getShaderSource(W)),ft=`${ut(Zt,Qe,et)} Error compiling ${Kc(G,Z)}: ${Qe}`;return se(ft),ft}return""}function zr(G,Z,W){let se,Qe,et;if(typeof G=="function")W=G,G=void 0;else if(G&&!Array.isArray(G)){const rr=G;W=rr.errorCallback,G=rr.attribLocations,se=rr.transformFeedbackVaryings,Qe=rr.transformFeedbackMode,et=rr.callback}const Zt=W||Jg,ft=[],kt={errorCallback(rr,...gr){ft.push(rr),Zt(rr,...gr)},transformFeedbackVaryings:se,transformFeedbackMode:Qe,callback:et,errors:ft};{let rr={};Array.isArray(G)?G.forEach(function(gr,Wr){rr[gr]=Wr}):rr=G||{},kt.attribLocations=rr}return kt}const na=["VERTEX_SHADER","FRAGMENT_SHADER"];function ci(G,Z){if(Z.indexOf("frag")>=0)return YA;if(Z.indexOf("vert")>=0)return gs}function Qi(G,Z,W){const se=G.getAttachedShaders(Z);for(const Qe of se)W.has(Qe)&&G.deleteShader(Qe);G.deleteProgram(Z)}const La=(G=0)=>new a(Z=>setTimeout(Z,G));function ns(G,Z,W){const se=G.createProgram(),{attribLocations:Qe,transformFeedbackVaryings:et,transformFeedbackMode:Zt}=zr(W);for(let ft=0;ft<Z.length;++ft){let kt=Z[ft];if(typeof kt=="string"){const rr=Ho(kt),gr=rr?rr.text:kt;let Wr=G[na[ft]];rr&&rr.type&&(Wr=ci(G,rr.type)||Wr),kt=G.createShader(Wr),G.shaderSource(kt,Tt(gr).shaderSource),G.compileShader(kt),G.attachShader(se,kt)}}Object.entries(Qe).forEach(([ft,kt])=>G.bindAttribLocation(se,kt,ft));{let ft=et;ft&&(ft.attribs&&(ft=ft.attribs),Array.isArray(ft)||(ft=Object.keys(ft)),G.transformFeedbackVaryings(se,ft,Zt||eh))}return G.linkProgram(se),se}function As(G,Z,W,se,Qe){const et=zr(W,se,Qe),Zt=new Set(Z),ft=ns(G,Z,et);function kt(rr,gr){const Wr=Sr(rr,gr,et.errorCallback);return Wr&&Qi(rr,gr,Zt),Wr}if(et.callback){Os(G,ft).then(()=>{const rr=kt(G,ft);et.callback(rr,rr?void 0:ft)});return}return kt(G,ft)?void 0:ft}async function Os(G,Z){const W=G.getExtension("KHR_parallel_shader_compile"),se=W?(et,Zt)=>et.getProgramParameter(Zt,W.COMPLETION_STATUS_KHR):()=>!0;let Qe=0;do await La(Qe),Qe=1e3/60;while(!se(G,Z))}function Sr(G,Z,W){if(W=W||Jg,!G.getProgramParameter(Z,wA)){const se=G.getProgramInfoLog(Z);W(`Error in program linking: ${se}`);const Qe=G.getAttachedShaders(Z).map(et=>er(G,G.getShaderParameter(et,G.SHADER_TYPE),et,W));return`${se} ${Qe.filter(et=>et).join(` `)}`}}function wi(G,Z,W,se,Qe){return As(G,Z,W,se,Qe)}function Vd(G){const Z=G.name;return Z.startsWith("gl_")||Z.startsWith("webgl_")}const rs=/(\.|\[|]|\w+)/g,jc=G=>G>="0"&&G<="9";function Ad(G,Z,W,se){const Qe=G.split(rs).filter(ft=>ft!=="");let et=0,Zt="";for(;;){const ft=Qe[et++];Zt+=ft;const kt=jc(ft[0]),rr=kt?parseInt(ft):ft;if(kt&&(Zt+=Qe[et++]),et===Qe.length){W[rr]=Z;break}else{const gr=Qe[et++],Wr=gr==="[",Ui=W[rr]||(Wr?[]:{});W[rr]=Ui,W=Ui,se[Zt]=se[Zt]||function(Ci){return function(Qr){_Q(Ci,Qr)}}(Ui),Zt+=gr}}}function FW(G,Z){let W=0;function se(ft,kt,rr){const gr=kt.name.endsWith("[0]"),Wr=kt.type,Ui=xi[Wr];if(!Ui)throw new Error(`unknown type: 0x${Wr.toString(16)}`);let Ci;if(Ui.bindPoint){const Qr=W;W+=kt.size,gr?Ci=Ui.arraySetter(G,Wr,Qr,rr,kt.size):Ci=Ui.setter(G,Wr,Qr,rr,kt.size)}else Ui.arraySetter&&gr?Ci=Ui.arraySetter(G,rr):Ci=Ui.setter(G,rr);return Ci.location=rr,Ci}const Qe={},et={},Zt=G.getProgramParameter(Z,ts);for(let ft=0;ft<Zt;++ft){const kt=G.getActiveUniform(Z,ft);if(Vd(kt))continue;let rr=kt.name;rr.endsWith("[0]")&&(rr=rr.substr(0,rr.length-3));const gr=G.getUniformLocation(Z,kt.name);if(gr){const Wr=se(Z,kt,gr);Qe[rr]=Wr,Ad(rr,Wr,et,Qe)}}return Qe}function QW(G,Z){const W={},se=G.getProgramParameter(Z,DA);for(let Qe=0;Qe<se;++Qe){const et=G.getTransformFeedbackVarying(Z,Qe);W[et.name]={index:Qe,type:et.type,size:et.size}}return W}function UW(G,Z){const W=G.getProgramParameter(Z,ts),se=[],Qe=[];for(let ft=0;ft<W;++ft){Qe.push(ft),se.push({});const kt=G.getActiveUniform(Z,ft);se[ft].name=kt.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(ft){const kt=ft[0],rr=ft[1];G.getActiveUniforms(Z,Qe,G[kt]).forEach(function(gr,Wr){se[Wr][rr]=gr})});const et={},Zt=G.getProgramParameter(Z,MA);for(let ft=0;ft<Zt;++ft){const kt=G.getActiveUniformBlockName(Z,ft),rr={index:G.getUniformBlockIndex(Z,kt),usedByVertexShader:G.getActiveUniformBlockParameter(Z,ft,Th),usedByFragmentShader:G.getActiveUniformBlockParameter(Z,ft,LA),size:G.getActiveUniformBlockParameter(Z,ft,Vf),uniformIndices:G.getActiveUniformBlockParameter(Z,ft,sm)};rr.used=rr.usedByVertexShader||rr.usedByFragmentShader,et[kt]=rr}return{blockSpecs:et,uniformData:se}}function _Q(G,Z){for(const W in Z){const se=G[W];typeof se=="function"?se(Z[W]):_Q(G[W],Z[W])}}function $Q(G,...Z){const W=G.uniformSetters||G,se=Z.length;for(let Qe=0;Qe<se;++Qe){const et=Z[Qe];if(Array.isArray(et)){const Zt=et.length;for(let ft=0;ft<Zt;++ft)$Q(W,et[ft])}else for(const Zt in et){const ft=W[Zt];ft&&ft(et[Zt])}}}function RW(G,Z){const W={},se=G.getProgramParameter(Z,Fs);for(let Qe=0;Qe<se;++Qe){const et=G.getActiveAttrib(Z,Qe);if(Vd(et))continue;const Zt=G.getAttribLocation(Z,et.name),ft=de[et.type],kt=ft.setter(G,Zt,ft);kt.location=Zt,W[et.name]=kt}return W}function BW(G,Z){for(const W in Z){const se=G[W];se&&se(Z[W])}}function ZW(G,Z,W){W.vertexArrayObject?G.bindVertexArray(W.vertexArrayObject):(BW(Z.attribSetters||Z,W.attribs),W.indices&&G.bindBuffer(XA,W.indices))}function qQ(G,Z){const W=FW(G,Z),se=RW(G,Z),Qe={program:Z,uniformSetters:W,attribSetters:se};return qr(G)&&(Qe.uniformBlockSpec=UW(G,Z),Qe.transformFeedbackInfo=QW(G,Z)),Qe}const IW=/\s|{|}|;/;function CW(G,Z,W,se,Qe){const et=zr(W,se,Qe),Zt=[];if(Z=Z.map(function(rr){if(!IW.test(rr)){const gr=Ho(rr);if(gr)rr=gr.text;else{const Wr=`no element with id: ${rr}`;et.errorCallback(Wr),Zt.push(Wr)}}return rr}),Zt.length)return Cn(et,"");const ft=et.callback;ft&&(et.callback=(rr,gr)=>{ft(rr,rr?void 0:qQ(G,gr))});const kt=wi(G,Z,et);return kt?qQ(G,kt):null}const vW=4,VW=5123;function EW(G,Z,W,se,Qe,et){W=W===void 0?vW:W;const Zt=Z.indices,ft=Z.elementType,kt=Z.numElements;Qe=Qe===void 0?0:Qe,ft||Zt?G.drawElements(W,kt,ft===void 0?VW:Z.elementType,Qe):G.drawArrays(W,Qe,kt)}const eU=36160,rb=36161,SW=3553,WW=5121,NW=6402,GW=6408,JW=33190,TW=36012,XW=35056,kW=36013,wW=32854,YW=32855,DW=36194,tU=33189,nU=6401,rU=36168,iF=34041,aF=36064,ib=36096,iU=36128,oF=33306,lF=33071,sF=9729,MW=[{format:GW,type:WW,min:sF,wrap:lF},{format:iF}],lf={};lf[iF]=oF,lf[nU]=iU,lf[rU]=iU,lf[NW]=ib,lf[tU]=ib,lf[JW]=ib,lf[TW]=ib,lf[XW]=oF,lf[kW]=oF;function LW(G,Z){return lf[G]||lf[Z]}const wh={};wh[wW]=!0,wh[YW]=!0,wh[DW]=!0,wh[iF]=!0,wh[tU]=!0,wh[nU]=!0,wh[rU]=!0;function HW(G){return wh[G]}const xW=32;function OW(G){return G>=aF&&G<aF+xW}function ab(G,Z,W,se){const Qe=eU,et=G.createFramebuffer();G.bindFramebuffer(Qe,et),W=W||G.drawingBufferWidth,se=se||G.drawingBufferHeight,Z=Z||MW;const Zt=[],ft={framebuffer:et,attachments:[],width:W,height:se};return Z.forEach(function(kt,rr){let gr=kt.attachment;const Wr=kt.samples,Ui=kt.format;let Ci=kt.attachmentPoint||LW(Ui,kt.internalFormat);if(Ci||(Ci=aF+rr),OW(Ci)&&Zt.push(Ci),!gr)if(Wr!==void 0||HW(Ui))gr=G.createRenderbuffer(),G.bindRenderbuffer(rb,gr),Wr>1?G.renderbufferStorageMultisample(rb,Wr,Ui,W,se):G.renderbufferStorage(rb,Ui,W,se);else{const Qr=Object.assign({},kt);Qr.width=W,Qr.height=se,Qr.auto===void 0&&(Qr.auto=!1,Qr.min=Qr.min||Qr.minMag||sF,Qr.mag=Qr.mag||Qr.minMag||sF,Qr.wrapS=Qr.wrapS||Qr.wrap||lF,Qr.wrapT=Qr.wrapT||Qr.wrap||lF),gr=Jh(G,Qr)}if(Po(G,gr))G.framebufferRenderbuffer(Qe,Ci,rb,gr);else if(mu(G,gr))kt.layer!==void 0?G.framebufferTextureLayer(Qe,Ci,gr,kt.level||0,kt.layer):G.framebufferTexture2D(Qe,Ci,kt.target||SW,gr,kt.level||0);else throw new Error("unknown attachment type");ft.attachments.push(gr)}),G.drawBuffers&&G.drawBuffers(Zt),ft}function KW(G,Z,W){W=W||eU,Z?(G.bindFramebuffer(W,Z.framebuffer),G.viewport(0,0,Z.width,Z.height)):(G.bindFramebuffer(W,null),G.viewport(0,0,G.drawingBufferWidth,G.drawingBufferHeight))}function rd(G,Z){return()=>Z instanceof WebGLTexture?Z:Jh(G,{src:Z,wrap:G.CLAMP_TO_EDGE})}const jA=2;class Og{constructor(Z){d(this,"id","_"),d(this,"context"),d(this,"output"),d(this,"fbi"),d(this,"options"),d(this,"programInfo"),d(this,"bufferInfo"),d(this,"profiler"),d(this,"lastRun");const{context:W,width:se,height:Qe}=Z;this.context=W,this.options=Z;const et=this.buildDefines();this.programInfo=CW(this.context,[et+this.getVertexShader(),et+this.getFragmentShader()]),this.bufferInfo=ze(this.context,this.getBuffers()),this.fbi=ab(this.context,[{format:this.context.RGBA,type:this.context.UNSIGNED_BYTE,min:this.context.LINEAR,wrap:this.context.CLAMP_TO_EDGE}],se,Qe),this.output=this.fbi.attachments[0]}resizeOutput(Z,W){this.fbi=ab(this.context,[{format:this.context.RGBA,type:this.context.UNSIGNED_BYTE,min:this.context.LINEAR,wrap:this.context.CLAMP_TO_EDGE}],Z,W),this.options.width=Z,this.options.height=W,this.output=this.fbi.attachments[0]}getDefines(){return{}}getBuffers(){return{position:{numComponents:2,data:[-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]},texture_coord:{numComponents:2,data:[0,0,0,1,1,0,1,1,0,1,1,0]}}}buildDefines(){let Z="";const W=this.getDefines();for(let se in W)Z+=`#define ${se} ${W[se].toFixed(1)} `;return Z}run(Z){var W,se,Qe,et,Zt,ft;(W=this.profiler)==null||W.pushContext(`[${this.id}] PROG : ${this.constructor.name}`),(se=this.profiler)==null||se.pushContext(`[${this.id}] UNIFORMS`);for(const gr in Z)typeof Z[gr]=="function"&&((Qe=this.profiler)==null||Qe.pushContext(`[${this.id}] UNI : ${gr}`),Z[gr]=Z[gr](),(et=this.profiler)==null||et.popContext(`[${this.id}] UNI : ${gr}`));(Zt=this.profiler)==null||Zt.popContext(`[${this.id}] UNIFORMS`);const kt=Date.now();let rr=0;this.lastRun&&(rr=(kt-this.lastRun)/1e3),this.lastRun=kt,this.context.viewport(0,0,this.context.canvas.width,this.context.canvas.height),this.context.useProgram(this.programInfo.program),ZW(this.context,this.programInfo,this.bufferInfo),$Q(this.programInfo,{delta:rr,canvas:[this.context.canvas.width,this.context.canvas.height],...Z}),KW(this.context,this.options.disableFramebuffer?null:this.fbi),EW(this.context,this.bufferInfo),(ft=this.profiler)==null||ft.popContext(`[${this.id}] PROG : ${this.constructor.name}`)}setProfiler(Z){this.profiler=Z}}const PW=`precision mediump float; varying vec2 _texture_coord; uniform sampler2D background; uniform sampler2D foreground; uniform sampler2D threshold; void main() { vec4 backgroundColor = texture2D(background, _texture_coord); vec4 foregroundColor = texture2D(foreground, _texture_coord); vec4 tresholdColor = texture2D(threshold, _texture_coord); gl_FragColor = foregroundColor * tresholdColor.a + backgroundColor * (1. - tresholdColor.a); } `,zW=`varying vec2 _texture_coord; attribute vec2 position; attribute vec2 texture_coord; void main() { gl_Position = vec4(position, 0., 1.); _texture_coord = texture_coord; _texture_coord.y = 1. - texture_coord.y; } `;class dF extends Og{getFragmentShader(){return PW}getVertexShader(){return zW}}class cF{constructor(){d(this,"steps",[]),d(this,"profiler")}addStep(Z){this.steps.push(Z)}async run(){for(const Z of this.steps)Z.program.run(Z.getUniforms())}resizeOutput(Z,W){var se,Qe;(se=this.profiler)==null||se.pushContext(`PIP [${this.constructor.name}]`);for(const et of this.steps)et.preventResize||et.program.resizeOutput(Z,W);(Qe=this.profiler)==null||Qe.popContext(`PIP [${this.constructor.name}]`)}setProfiler(Z){this.profiler=Z;for(const W of this.steps)W.program.setProfiler(Z)}setId(Z){for(const W of this.steps)W.program.id=Z}}class uF extends cF{constructor(){super(...arguments),d(this,"preciseMaskEnabled",!1)}}class aU extends uF{constructor(Z){super(),d(this,"inputImage"),d(this,"inputBackgroundImage"),d(this,"inputMask"),d(this,"preciseMaskEnabled",!0),this.context=Z;const W={context:Z,height:Z.canvas.height,width:Z.canvas.width},se=new dF({...W,disableFramebuffer:!0});this.addStep({program:se,getUniforms:()=>({background:rd(Z,this.inputBackgroundImage),foreground:rd(Z,this.inputImage),threshold:rd(Z,this.inputMask)})})}setData(Z,W){this.inputImage=Z,this.inputMask=W}}const jW=`precision mediump float; varying vec2 _texture_coord; uniform sampler2D texture; void main() { gl_FragColor = texture2D(texture, _texture_coord); } `,_W=`varying vec2 _texture_coord; attribute vec2 position; attribute vec2 texture_coord; uniform bool invert_y; void main() { gl_Position = vec4(position, 0., 1.); _texture_coord = texture_coord; if (invert_y) { _texture_coord.y = 1. - texture_coord.y; } } `;class $W extends Og{getFragmentShader(){return jW}getVertexShader(){return _W}}class qW extends cF{constructor(Z,W,se){super(),d(this,"inputImage"),this.context=Z;const Qe={context:Z,height:se,width:W};this.addStep({program:new $W({...Qe,disableFramebuffer:!0}),getUniforms:()=>({texture:rd(Z,this.inputImage),invert_y:!0})})}setData(Z){this.inputImage=Z}}async function oU(G){return new a(Z=>{setTimeout(()=>{Z()},G)})}const e3=`precision mediump float; varying vec2 _texture_coord; uniform vec2 canvas; uniform sampler2D texture; vec4 loop(); void main() { gl_FragColor = loop(); } `,t3=`varying vec2 _texture_coord; attribute vec2 position; attribute vec2 texture_coord; void main() { gl_Position = vec4(position, 0., 1.); _texture_coord = texture_coord; } `;var fF=(G=>(G[G.LINEAR=0]="LINEAR",G[G.GAUSSIAN=1]="GAUSSIAN",G))(fF||{});class lU extends Og{getDefines(){var Z;return{RADIUS:(Z=this.options.radius)!=null?Z:1}}getFragmentShader(){return e3+this.createLoopFunction()}getVertexShader(){return t3}createLoopFunction(){var Z;let W=(Z=this.options.radius)!=null?Z:1;return` vec4 loop() { vec4 result = vec4(0,0,0,0); float factorSum = 0.; vec2 normalizedRadius = vec2(-${W}.) / canvas; vec2 normalizedIncrement = vec2(1.) / canvas; vec2 diff = normalizedRadius; for(int y=-${W}; y<${W+1}; ++y) { for(int x=-${W}; x<${W+1}; ++x) { float factor = 1.; result += factor * texture2D(texture, _texture_coord + diff); factorSum += factor; diff.x += normalizedIncrement.x; } diff.y += normalizedIncrement.y; diff.x = normalizedRadius.x; } return result / factorSum; }`}getFactor(Z,W){switch(this.options.type){case 1:return this.getLinearFactor(Z,W);case 0:default:return this.getLinearFactor(Z,W)}}getLinearFactor(Z,W){return 1}getGaussianFactor(Z,W){var se;const Qe=Math.PI*2,et=Math.max((se=this.options.radius)!=null?se:1,1),Zt=1/(Qe*et**2),ft=-(Z**2+W**2),kt=Zt*ft;return Zt*Math.E**kt}}class hF extends Og{constructor(Z){super(Z),d(this,"fbi2"),this.fbi2=ab(Z.context,[{format:Z.context.RGBA,type:Z.context.UNSIGNED_BYTE,min:Z.context.LINEAR,mag:Z.context.LINEAR,wrap:Z.context.CLAMP_TO_EDGE}],Z.width,Z.height)}run(Z){const W=this.fbi;this.fbi=this.fbi2,this.fbi2=W,this.output=this.fbi.attachments[0],super.run({...Z,previous_rendering:this.fbi2.attachments[0]})}resizeOutput(Z,W){super.resizeOutput(Z,W),this.fbi2=ab(this.context,[{format:this.context.RGBA,type:this.context.UNSIGNED_BYTE,min:this.context.LINEAR,wrap:this.context.CLAMP_TO_EDGE}],Z,W)}}const n3=`precision mediump float; varying vec2 _texture_coord; // uniform float treshold; uniform sampler2D image_now; uniform sampler2D image_before; uniform sampler2D mask_now; uniform sampler2D mask_before; uniform sampler2D previous_rendering; uniform vec2 canvas; uniform float delta; float current_factor = 0.69; float previous_factor = 0.74; float threshold_activation = 0.54; float map(float value, float min1, float max1, float min2, float max2) { return min2 + (value - min1) * (max2 - min2) / (max1 - min1); } float getThreshold() { vec4 color = vec4(0.); for (float y = -6.; y < 7.; y += 1.) { for (float x = -6.; x < 7.; x += 1.) { vec4 image_now_color = texture2D(image_now, _texture_coord + vec2(x, y) / canvas); vec4 image_before_color = texture2D(image_before, _texture_coord + vec2(x, y) / canvas); color += abs(image_before_color - image_now_color); } } return (color.x + color.y + color.z) / (3. * 9.); } void main() { float treshold_input = .4; float treshold_previous_rendering = .98; vec4 mask_now_color = texture2D(mask_now, _texture_coord); vec4 mask_before_color = texture2D(mask_before, _texture_coord); vec4 previous_rendering_color = texture2D(previous_rendering, _texture_coord); vec3 mask_diff = abs(mask_before_color.xyz - mask_now_color.xyz); float flickering = mask_diff.x; float threshold = getThreshold(); if (threshold < threshold_activation) { gl_FragColor = vec4(flickering, 0., 0., 1.) * current_factor + previous_rendering_color * previous_factor; gl_FragColor *= (1. - threshold); } } `,r3=`varying vec2 _texture_coord; attribute vec2 position; attribute vec2 texture_coord; void main() { gl_Position = vec4(position, 0., 1.); _texture_coord = texture_coord; } `;class i3 extends hF{getFragmentShader(){return n3}getVertexShader(){return r3}}const a3=`#version 300 es // https://github.com/Volcomix/virtual-background/blob/main/src/pipelines/webgl2/jointBilateralFilterStage.ts precision highp float; uniform sampler2D input_frame; uniform sampler2D segmentation_mask; uniform sampler2D threshold; uniform vec2 texel_size; uniform float step; uniform float radius; uniform float offset; uniform float sigma_texel; uniform float sigma_color; in vec2 _texture_coord; out vec4 outColor; float gaussian(float x, float sigma) { float coeff = -0.5 / (sigma * sigma * 4.0 + 1.0e-6); return exp((x * x) * coeff); } void main() { vec2 centerCoord = _texture_coord; vec3 centerColor = texture(input_frame, centerCoord).rgb; float newVal = 0.0; float spaceWeight = 0.0; float colorWeight = 0.0; float totalWeight = 0.0; // Subsample kernel space. for (float i = -radius + offset; i <= radius; i += step) { for (float j = -radius + offset; j <= radius; j += step) { vec2 shift = vec2(j, i) * texel_size; vec2 coord = vec2(centerCoord + shift); vec3 frameColor = texture(input_frame, coord).rgb; float threshold = texture(threshold, coord).a; float outVal = texture(segmentation_mask, coord).a; spaceWeight = gaussian(distance(centerCoord, coord), sigma_texel); colorWeight = gaussian(distance(centerColor, frameColor), sigma_color); totalWeight += spaceWeight * colorWeight; newVal += spaceWeight * colorWeight * outVal * threshold; } } newVal /= totalWeight; outColor = vec4(vec3(0.), newVal); }`,o3=`#version 300 es in vec2 position; in vec2 texture_coord; out vec2 _texture_coord; void main() { gl_Position = vec4(position, 0.0, 1.0); _texture_coord = texture_coord; }`;class l3 extends Og{getFragmentShader(){return a3}getVertexShader(){return o3}}const s3=`precision mediump float; varying vec2 _texture_coord; uniform vec2 canvas; uniform sampler2D texture; void main() { int count = 0; for (float y = -1.; y < 2.; y += 1.) { for (float x = -1.; x < 2.; x += 1.) { vec2 coord = _texture_coord + vec2(y, x) / canvas; vec4 color = texture2D(texture, coord); if (color.r > .1) { count++; } } } if (count > 5) { gl_FragColor = texture2D(texture, _texture_coord); } } `,d3=`varying vec2 _texture_coord; attribute vec2 position; attribute vec2 texture_coord; void main() { gl_Position = vec4(position, 0., 1.); _texture_coord = texture_coord; } `;class c3 extends Og{getFragmentShader(){return s3}getVertexShader(){return d3}}const u3=`precision mediump float; varying vec2 _texture_coord; uniform vec2 canvas; uniform sampler2D texture; void main() { vec4 color = texture2D(texture, _texture_coord); for (float y = -2.; y < 3.; y += 1.) { for (float x = -2.; x < 3.; x += 1.) { vec2 coord = _texture_coord; coord += vec2(y, x) / canvas; color += texture2D(texture, coord) * (1. / 4.); } } gl_FragColor = color; } `,f3=`varying vec2 _texture_coord; attribute vec2 position; attribute vec2 texture_coord; void main() { gl_Position = vec4(position, 0., 1.); _texture_coord = texture_coord; } `;class h3 extends hF{getFragmentShader(){return u3}getVertexShader(){return f3}}const g3=`precision mediump float; varying vec2 _texture_coord; uniform sampler2D threshold; uniform sampler2D inputs; void main() { vec4 inputs_color = texture2D(inputs, _texture_coord); vec4 threshold_color = texture2D(threshold, _texture_coord); if (threshold_color.r < .1 && inputs_color.r > .5) { gl_FragColor = inputs_color; } } `,A3=`varying vec2 _texture_coord; attribute vec2 position; attribute vec2 texture_coord; void main() { gl_Position = vec4(position, 0., 1.); _texture_coord = texture_coord; } `;class p3 extends hF{getFragmentShader(){return g3}getVertexShader(){return A3}}class m3 extends cF{constructor(Z,W,se){super(),d(this,"inputImage"),d(this,"inputMask"),d(this,"previousInputImage"),d(this,"previousInputMask"),d(this,"output"),d(this,"options",{currentThresholdMinimum:0,currentThresholdMaximum:1,previousThresholdMinimum:0,previousThresholdMaximum:1,thresholdMinimum:0,thresholdMaximum:1,thresholdFactor:1}),d(this,"jointBilateral"),this.context=Z;const Qe={context:Z,height:se,width:W},et=new i3(Qe),Zt=new lU({...Qe,radius:1,type:fF.GAUSSIAN}),ft=new p3(Qe),kt=new h3(Qe),rr=new c3(Qe);this.jointBilateral=new l3(Qe),this.addStep({program:et,getUniforms:()=>({image_now:rd(Z,this.inputImage),image_before:rd(Z,this.previousInputImage),mask_now:rd(Z,this.inputMask),mask_before:rd(Z,this.previousInputMask),current_threshold_minimum:this.options.currentThresholdMinimum,current_threshold_maximum:this.options.currentThresholdMaximum,previous_threshold_minimum:this.options.previousThresholdMinimum,previous_threshold_maximum:this.options.previousThresholdMaximum,threshold_minimum:this.options.thresholdMinimum,threshold_maximum:this.options.thresholdMaximum,threshold_factor:this.options.thresholdFactor})}),this.addStep({program:ft,getUniforms:()=>({inputs:rd(Z,this.inputMask),threshold:rd(Z,et.output)})}),this.addStep({program:rr,getUniforms:()=>({texture:rd(Z,ft.output)})}),this.addStep({program:kt,getUniforms:()=>({texture:rd(Z,rr.output)})}),this.addStep({program:Zt,getUniforms:()=>({texture:rd(Z,kt.output)})}),this.addStep({program:this.jointBilateral,getUniforms:()=>{var gr,Wr,Ui,Ci,Qr,Jr,$i,fa;const ro=(Wr=(gr=this.inputImage)==null?void 0:gr.width)!=null?Wr:1,Tn=(Ci=(Ui=this.inputImage)==null?void 0:Ui.height)!=null?Ci:1,ps=(Jr=(Qr=this.inputMask)==null?void 0:Qr.width)!=null?Jr:1,id=(fa=($i=this.inputMask)==null?void 0:$i.height)!=null?fa:1,xo=Math.max(ro/ps,Tn/id),ba=Math.max(1,Math.sqrt(xo)*.66),Pd=1/ro,za=1/Tn;return{input_frame:rd(Z,this.inputImage),segmentation_mask:rd(Z,this.inputMask),threshold:rd(Z,Zt.output),texel_size:[Pd,za],step:ba,radius:xo,offset:ba>1?ba*.5:0,sigma_texel:Math.max(Pd,za)*xo,sigma_color:.1}}}),this.output=this.jointBilateral.output}setData(Z,W){this.previousInputImage=this.inputImage?this.inputImage:Z,this.previousInputMask=this.inputMask?this.inputMask:W,this.inputImage=Z,this.inputMask=W}setOptions(Z){this.options=Z}resizeOutput(Z,W){super.resizeOutput(Z,W),this.output=this.jointBilateral.output}}var sU=(G=>(G.PUSH="PUSH",G.POP="POP",G))(sU||{});class b3{constructor(Z){d(this,"context"),d(this,"extension"),d(this,"queries",[]),d(this,"activeQuery"),this.context=Z,this.extension=Z.getExtension("EXT_disjoint_timer_query_webgl2")}start(){}stop(){this.activeQuery&&this.context.endQuery(this.extension.TIME_ELAPSED_EXT)}pushContext(Z){this.createQuery("PUSH",Z)}popContext(Z){this.createQuery("POP",Z)}createQuery(Z,W){this.activeQuery&&this.context.endQuery(this.extension.TIME_ELAPSED_EXT),this.activeQuery=this.context.createQuery(),this.context.beginQuery(this.extension.TIME_ELAPSED_EXT,this.activeQuery),this.queries.push({name:W,action:Z,query:this.activeQuery})}async getResolvedQueries(){const Z=(await a.all([...this.queries].map(W=>this.resolveQuery(W)))).filter(W=>W);for(let W=1;W<Z.length;++W)Z[W].timestamp+=Z[W-1].duration+Z[W-1].timestamp;return Z}async resolveQuery(Z){if(!await this.awaitQueryAvailable(Z)){console.log("Unawaitable query",Z);return}if(this.context.getParameter(this.extension.GPU_DISJOINT_EXT)){console.log("Disjointed query",Z);return}return{...Z,duration:this.context.getQueryParameter(Z.query,this.context.QUERY_RESULT),timestamp:0}}async awaitQueryAvailable(Z){for(let W=0;W<10;++W){if(this.context.getQueryParameter(Z.query,this.context.QUERY_RESULT_AVAILABLE))return Z;await oU(200)}}}class ob{constructor(){d(this,"canvas"),d(this,"context"),d(this,"pipeline"),d(this,"previousImageWidth",0),d(this,"previousImageHeight",0),d(this,"previousMaskWidth",jA),d(this,"previousMaskHeight",jA),d(this,"profiler"),d(this,"postProcessingEnabled",!0),d(this,"improveMask");const Z=new OffscreenCanvas(0,0),W=Z.getContext("webgl2");if(!W)throw"Fail to retrieve webgl2 context";this.canvas=Z,this.context=W,this.improveMask=new m3(this.context,jA,jA)}setFlickeringOptions(Z){this.improveMask.setOptions(Z)}enablePostProcessing(){this.postProcessingEnabled=!0}disablePostProcessing(){this.postProcessingEnabled=!1}async profileWebgl(Z){const W=new b3(this.context);return this.profiler=W,W.start(),await oU(Z),this.profiler=void 0,W.stop(),W.getResolvedQueries()}async render(Z,W){var se,Qe;if(!this.pipeline)throw"missing pipeline";(this.previousImageHeight!==Z.height||this.previousImageWidth!==Z.width)&&this.resizeOutput(Z.width,Z.height),(this.previousMaskHeight!==W.height||this.previousMaskWidth!==W.width)&&(this.improveMask.resizeOutput(W.width,W.height),this.previousMaskWidth=W.width,this.previousMaskHeight=W.height);const et="renderer";(se=this.profiler)==null||se.pushContext(et),this.improveMask.setProfiler(this.profiler),this.pipeline.setProfiler(this.profiler);let Zt=W;return this.postProcessingEnabled&&(this.improveMask.setData(Z,W),this.improveMask.run(),Zt=this.improveMask.output),this.pipeline.setData(Z,Zt),await this.pipeline.run(),(Qe=this.profiler)==null||Qe.popContext(et),this.canvas}resizeOutput(Z,W){var se;this.canvas.width=Z,this.canvas.height=W,(se=this.pipeline)==null||se.resizeOutput(Z,W),this.previousImageWidth=Z,this.previousImageHeight=W}}class dU extends ob{constructor(){super(),d(this,"pipeline"),d(this,"backgroundImage"),d(this,"backgroundImageResizerCanvas"),d(this,"backgroundImageResizerContext"),d(this,"backgroundImageResizer"),this.pipeline=new aU(this.context);const Z=new OffscreenCanvas(0,0),W=Z.getContext("webgl2");if(!W)throw"Fail to retrieve webgl context";this.backgroundImageResizerCanvas=Z,this.backgroundImageResizerContext=W,this.backgroundImageResizer=new qW(this.backgroundImageResizerContext,0,0)}setBackgroundImage(Z){this.backgroundImage=Z,this.updateBackgroundImage()}updateBackgroundImage(){const{width:Z,height:W}=this.canvas;this.backgroundImageResizer.resizeOutput(Z,W),this.backgroundImageResizer.setData(this.backgroundImage),this.backgroundImageResizer.run(),this.pipeline.inputBackgroundImage=this.backgroundImageResizerCanvas}resizeOutput(Z,W){super.resizeOutput(Z,W),this.backgroundImageResizerCanvas.width=Z,this.backgroundImageResizerCanvas.height=W,this.backgroundImageResizer.resizeOutput(Z,W),this.updateBackgroundImage()}}class y3 extends dU{constructor(){super(...arguments),d(this,"frameReader")}setBackgroundVideo(Z){this.frameReader=Z}async render(Z,W){return await this.readNextVideoFrame(),super.render(Z,W)}async readNextVideoFrame(){var Z;const W=await((Z=this.frameReader)==null?void 0:Z.read());if(W!=null&&W.value){const se=await createImageBitmap(W.value);this.setBackgroundImage(se),W.value.close()}}}class cU{blurBackground(Z){return new Ti(Z)}blurSilhouette(Z){return new Ec(Z)}imageBackground(){return new xl}videoBackground(){return new y3}}const F3=`precision mediump float; varying vec2 _texture_coord; uniform vec2 canvas; uniform sampler2D texture; uniform sampler2D mask; vec4 loop(); void main() { gl_FragColor = loop(); } `,Q3=`varying vec2 _texture_coord; attribute vec2 position; attribute vec2 texture_coord; void main() { gl_Position = vec4(position, 0., 1.); _texture_coord = texture_coord; } `;class U3 extends Og{getDefines(){var Z;return{RADIUS:(Z=this.options.radius)!=null?Z:1}}getFragmentShader(){return F3+this.createLoopFunction()}getVertexShader(){return Q3}createLoopFunction(){var Z;let W=(Z=this.options.radius)!=null?Z:1;return` vec4 loop() { vec4 result = vec4(0,0,0,0); float factorSum = 0.; vec2 normalizedRadius = vec2(-${W}.) / canvas; vec2 normalizedIncrement = vec2(1.) / canvas; vec2 diff = normalizedRadius; float maxLength = length(normalizedRadius); for(int y=-${W}; y<${W+1}; ++y) { for(int x=-${W}; x<${W+1}; ++x) { float factor = (1.- texture2D(mask, _texture_coord + diff).a) * (maxLength - length(diff)) / maxLength; result += factor * texture2D(texture, _texture_coord + diff); factorSum += factor; diff.x += normalizedIncrement.x; } diff.y += normalizedIncrement.y; diff.x = normalizedRadius.x; } return result / factorSum; }`}}const R3=10,B3=2,Z3=8;class I3 extends uF{constructor(Z,W){super(),d(this,"inputImage"),d(this,"inputMask"),d(this,"blur"),this.context=Z,this.radius=W;const se={context:Z,height:Z.canvas.height,width:Z.canvas.width};this.blur=new U3({...se,radius:W,...this.getBlurTextureSize(Z.canvas.width,Z.canvas.height)});const Qe=new dF({...se,disableFramebuffer:!0});this.addStep({program:this.blur,preventResize:!0,getUniforms:()=>({texture:rd(Z,this.inputImage),mask:rd(Z,this.inputMask)})}),this.addStep({program:Qe,getUniforms:()=>({background:rd(Z,this.blur.output),foreground:rd(Z,this.inputImage),threshold:rd(Z,this.inputMask)})})}getBlurTextureSize(Z,W){const se=this.radius>R3?Z3:B3;return{width:Math.max(jA,Z/se),height:Math.max(jA,W/se)}}setData(Z,W){this.inputImage=Z,this.inputMask=W}resizeOutput(Z,W){super.resizeOutput(Z,W);const se=this.getBlurTextureSize(Z,W);this.blur.resizeOutput(se.width,se.height)}}class C3 extends ob{constructor(Z){super(),d(this,"pipeline"),this.pipeline=new I3(this.context,Z),this.disablePostProcessing()}}class v3 extends uF{constructor(Z,W){super(),d(this,"inputImage"),d(this,"inputMask"),this.context=Z;const se={context:Z,height:Z.canvas.height,width:Z.canvas.width},Qe=new lU({...se,radius:W,type:fF.GAUSSIAN}),et=new dF({...se,disableFramebuffer:!0});this.addStep({program:Qe,getUniforms:()=>({texture:rd(Z,this.inputImage)})}),this.addStep({program:et,getUniforms:()=>({background:rd(Z,this.inputImage),foreground:rd(Z,Qe.output),threshold:rd(Z,this.inputMask)})})}setData(Z,W){this.inputImage=Z,this.inputMask=W}}class V3 extends ob{constructor(Z){super(),d(this,"pipeline"),this.pipeline=new v3(this.context,Z),this.disablePostProcessing()}}class E3 extends aU{constructor(){super(...arguments),d(this,"frameReader"),d(this,"preciseMaskEnabled",!0)}set reader(Z){this.frameReader=Z}async run(){this.frameReader&&(await this.readNextVideoFrame(),await super.run())}async readNextVideoFrame(){var Z;const W=await((Z=this.frameReader)==null?void 0:Z.read());W!=null&&W.value&&(this.inputBackgroundImage=await createImageBitmap(W.value),W.value.close())}}class S3 extends ob{constructor(){super(),d(this,"pipeline"),this.pipeline=new E3(this.context)}setBackgroundVideo(Z){this.pipeline.reader=Z}}class uU{blurBackground(Z){return new C3(Z)}blurSilhouette(Z){return new V3(Z)}imageBackground(){return new dU}videoBackground(){return new S3}}class W3{constructor(Z){switch(d(this,"factory"),Z){case ha.CANVAS:this.factory=new cU;break;case ha.WEBGL:this.factory=new uU;break;default:const W=Gi();this.factory=W.supported?new uU:new cU}}blurBackground(Z){return this.getFactory().blurBackground(Z)}blurSilhouette(Z){return this.getFactory().blurSilhouette(Z)}imageBackground(){return this.getFactory().imageBackground()}videoBackground(){return this.getFactory().videoBackground()}getFactory(){if(!this.factory)throw"Factory is not initialized";return this.factory}}class N3{constructor(){d(this,"renderer"),d(this,"backgroundVideo"),d(this,"backgroundImage")}setBackgroundOptions(Z){var W,se;const Qe=new W3((W=Z.renderingOptions)==null?void 0:W.type);switch(Z.transformerType){case"BackgroundBlur":this.renderer=Qe.blurBackground(this.getBlurSize(Z.radius));break;case"SilhouetteBlur":this.renderer=Qe.blurSilhouette(this.getBlurSize(Z.radius));break;case"VideoBackground":const et=Qe.videoBackground();this.backgroundVideo&&et.setBackgroundVideo(this.backgroundVideo),this.renderer=et;break;case"VirtualBackground":const Zt=Qe.imageBackground();this.backgroundImage&&Zt.setBackgroundImage(this.backgroundImage),this.renderer=Zt;break;default:throw`Unknown rendering type [${Z.transformerType}]`}((se=Z.renderingOptions)==null?void 0:se.type)===ha.WEBGL&&(Z.renderingOptions.selfieSegmentationType===vr.PRECISE?this.renderer.enablePostProcessing():Z.renderingOptions.selfieSegmentationType===vr.FAST&&this.renderer.disablePostProcessing())}setFlickeringOptions(Z){var W;(W=this.renderer)==null||W.setFlickeringOptions(Z)}setVideoBGReadable(Z){this.backgroundVideo=Z.getReader();const W=this.renderer;W!=null&&W.setBackgroundVideo&&W.setBackgroundVideo(this.backgroundVideo)}async setVirtualBGImage(Z){const W=this.renderer;W!=null&&W.setBackgroundImage&&W.setBackgroundImage(Z),this.backgroundImage=Z}async process(Z,W){if(this.renderer)return this.renderer.render(Z,W)}async resizeForeground(Z,W){}getBlurSize(Z=mn.Low){switch(Z){case mn.Low:return 5;case mn.High:return 12}return Z}async profile(Z){var W,se;return(se=(W=this.renderer)==null?void 0:W.profileWebgl(Z))!=null?se:[]}}class fU{constructor(){d(this,"selfieSegmentation",new ml),d(this,"backgroundFilter"),d(this,"reporter",new Gd),d(this,"isEnabled",!0),d(this,"backgroundOptions")}async init(Z,W){await this.selfieSegmentation.init(W.wasmAssetUriPath,W.tfliteAssetUriPath),this.backgroundFilter=new N3,this.report({variation:"Create"})}async transform(Z,W){var se,Qe;if(!this.isEnabled)return W.enqueue(Z);let et;const Zt=(se=Z.timestamp)!=null?se:0,ft=await createImageBitmap(Z),kt=await this.selfieSegmentation.process(ft);kt&&(et=await((Qe=this.backgroundFilter)==null?void 0:Qe.process(ft,kt))),et?(Z.close(),W.enqueue(new VideoFrame(et,{timestamp:Zt,alpha:"discard"}))):W.enqueue(Z)}async setBackgroundOptions(Z){var W;this.backgroundOptions=Z,await((W=this.backgroundFilter)==null?void 0:W.setBackgroundOptions(Z)),this.report({variation:"Update"})}async setVideoBGReadable(Z){var W;await((W=this.backgroundFilter)==null?void 0:W.setVideoBGReadable(Z))}async setVirtualBGImage(Z){var W;await((W=this.backgroundFilter)==null?void 0:W.setVirtualBGImage(Z))}setFlickeringOptions(Z){var W;(W=this.backgroundFilter)==null||W.setFlickeringOptions(Z),this.report({variation:"Update"})}async profile(Z){var W,se;return(se=(W=this.backgroundFilter)==null?void 0:W.profile(Z))!=null?se:[]}getTransformerType(){var Z,W;return(W=(Z=this.backgroundOptions)==null?void 0:Z.transformerType)!=null?W:"Undefined"}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}report(Z){var W;this.reporter.send({version:cc,action:"MlTransformers",transformerType:(W=this.backgroundOptions)==null?void 0:W.transformerType,config:JSON.stringify(this.backgroundOptions),...Z})}}const hU=class{constructor(){d(this,"backgroundTransformer",new fU),d(this,"mediaProcessor",new _a),d(this,"rate",30),d(this,"resolveOnMediaProcessor"),d(this,"eventsQueue",[])}async init(G,Z){await this.backgroundTransformer.init(G,Z),await this.mediaProcessor.setTransformers([this.backgroundTransformer]),this.mediaProcessor.setTrackExpectedRate(this.rate),this.mediaProcessor.onAny((W,se)=>{this.resolveOnMediaProcessor?(this.resolveOnMediaProcessor({name:W,data:se}),this.resolveOnMediaProcessor=void 0):this.eventsQueue.push({name:W,data:se})})}enable(){this.backgroundTransformer.enable()}disable(){this.backgroundTransformer.disable()}async onMediaProcessorEvent(){return await new a(G=>{this.eventsQueue.length>0?G(this.eventsQueue.shift()):this.resolveOnMediaProcessor=G})}async setTrackExpectedRate(G){this.rate=G,this.mediaProcessor.setTrackExpectedRate(G)}async transform(G,Z){this.mediaProcessor.transform(G,Z)}async setBackgroundOptions(G){var Z;await((Z=this.backgroundTransformer)==null?void 0:Z.setBackgroundOptions(G))}setVideoBGReadable(G){this.backgroundTransformer.setVideoBGReadable(G)}async setVirtualBGImage(G){await this.backgroundTransformer.setVirtualBGImage(G)}async terminate(){await this.mediaProcessor.destroy()}setFlickeringOptions(G){this.backgroundTransformer.setFlickeringOptions(G)}setVonageMetadata(G){Dr(G)}async profile(G){return JSON.stringify(await this.backgroundTransformer.profile(G))}};let G3=hU;ga("ProcessorWorker",hU);const gU="dmFyICRsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgV2w9KEosUSxWKT0+USBpbiBKPyRsKEosUSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Vn0pOkpbUV09Vjt2YXIgbD0oSixRLFYpPT4oV2woSix0eXBlb2YgUSE9InN5bWJvbCI/USsiIjpRLFYpLFYpOyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBKKHIsZSl7Z2xvYmFsVGhpcy52b25hZ2V8fChnbG9iYWxUaGlzLnZvbmFnZT17fSksZ2xvYmFsVGhpcy52b25hZ2Uud29ya2VyaXplcnx8KGdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI9e30pO2xldCB0PWdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI7cmV0dXJuIHRbcl18fCh0W3JdPWUpLHRbcl19Y29uc3QgUT1KKCJnbG9iYWxzIix7fSk7dmFyIFY9KHI9PihyLklOSVQ9IklOSVQiLHIuRk9SV0FSRD0iRk9SV0FSRCIsci5URVJNSU5BVEU9IlRFUk1JTkFURSIsci5HTE9CQUxTX1NZTkM9IkdMT0JBTFNfU1lOQyIsci5FVkVOVD0iRVZFTlQiLHIpKShWfHx7fSk7ZnVuY3Rpb24gJG8ocil7cmV0dXJuW0ltYWdlQml0bWFwLFJlYWRhYmxlU3RyZWFtLFdyaXRhYmxlU3RyZWFtXS5zb21lKHQ9PnIgaW5zdGFuY2VvZiB0KX1mdW5jdGlvbiBVZShyLGUpe2NvbnN0e2lkOnQsdHlwZTpufT1yLG89QXJyYXkuaXNBcnJheShlKT9lOltlXTtwb3N0TWVzc2FnZSh7aWQ6dCx0eXBlOm4scmVzdWx0OmV9LG8uZmlsdGVyKGk9PiRvKGkpKSl9Sigid29ya2VyaXplZCIse30pO2Z1bmN0aW9uIFlyKCl7cmV0dXJuIHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZX1mdW5jdGlvbiBldChyLGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZS5zcGxpY2UoMCxlLmxlbmd0aCk7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpZm9yKGNvbnN0IHQgaW4gZSlkZWxldGUgZVt0XTtmb3IoY29uc3QgdCBpbiByKUFycmF5LmlzQXJyYXkoclt0XSk/KGVbdF09W10sZXQoclt0XSxlW3RdKSk6dHlwZW9mIHJbdF09PSJvYmplY3QiPyhlW3RdPXt9LGV0KHJbdF0sZVt0XSkpOmVbdF09clt0XX1jb25zdCB0ZT1uZXcgV2Vha01hcCxoZT1uZXcgV2Vha01hcCxaPW5ldyBXZWFrTWFwLHR0PVN5bWJvbCgiYW55UHJvZHVjZXIiKSxYcj1Qcm9taXNlLnJlc29sdmUoKSxydD1TeW1ib2woImxpc3RlbmVyQWRkZWQiKSxudD1TeW1ib2woImxpc3RlbmVyUmVtb3ZlZCIpO2xldCBvdD0hMSxIdD0hMTtmdW5jdGlvbiBBZShyKXtpZih0eXBlb2YgciE9InN0cmluZyImJnR5cGVvZiByIT0ic3ltYm9sIiYmdHlwZW9mIHIhPSJudW1iZXIiKXRocm93IG5ldyBUeXBlRXJyb3IoImBldmVudE5hbWVgIG11c3QgYmUgYSBzdHJpbmcsIHN5bWJvbCwgb3IgbnVtYmVyIil9ZnVuY3Rpb24gaXQocil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigibGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gSWUocixlKXtjb25zdCB0PWhlLmdldChyKTtpZighIXQuaGFzKGUpKXJldHVybiB0LmdldChlKX1mdW5jdGlvbiBOZShyLGUpe2NvbnN0IHQ9dHlwZW9mIGU9PSJzdHJpbmcifHx0eXBlb2YgZT09InN5bWJvbCJ8fHR5cGVvZiBlPT0ibnVtYmVyIj9lOnR0LG49Wi5nZXQocik7aWYoISFuLmhhcyh0KSlyZXR1cm4gbi5nZXQodCl9ZnVuY3Rpb24gV28ocixlLHQpe2NvbnN0IG49Wi5nZXQocik7aWYobi5oYXMoZSkpZm9yKGNvbnN0IG8gb2Ygbi5nZXQoZSkpby5lbnF1ZXVlKHQpO2lmKG4uaGFzKHR0KSl7Y29uc3Qgbz1Qcm9taXNlLmFsbChbZSx0XSk7Zm9yKGNvbnN0IGkgb2Ygbi5nZXQodHQpKWkuZW5xdWV1ZShvKX19ZnVuY3Rpb24gUXIocixlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07bGV0IHQ9ITEsbj0oKT0+e30sbz1bXTtjb25zdCBpPXtlbnF1ZXVlKHMpe28ucHVzaChzKSxuKCl9LGZpbmlzaCgpe3Q9ITAsbigpfX07Zm9yKGNvbnN0IHMgb2YgZSl7bGV0IGE9TmUocixzKTthfHwoYT1uZXcgU2V0LFouZ2V0KHIpLnNldChzLGEpKSxhLmFkZChpKX1yZXR1cm57YXN5bmMgbmV4dCgpe3JldHVybiBvP28ubGVuZ3RoPT09MD90PyhvPXZvaWQgMCx0aGlzLm5leHQoKSk6KGF3YWl0IG5ldyBQcm9taXNlKHM9PntuPXN9KSx0aGlzLm5leHQoKSk6e2RvbmU6ITEsdmFsdWU6YXdhaXQgby5zaGlmdCgpfTp7ZG9uZTohMH19LGFzeW5jIHJldHVybihzKXtvPXZvaWQgMDtmb3IoY29uc3QgYSBvZiBlKXtjb25zdCB1PU5lKHIsYSk7dSYmKHUuZGVsZXRlKGkpLHUuc2l6ZT09PTAmJlouZ2V0KHIpLmRlbGV0ZShhKSl9cmV0dXJuIG4oKSxhcmd1bWVudHMubGVuZ3RoPjA/e2RvbmU6ITAsdmFsdWU6YXdhaXQgc306e2RvbmU6ITB9fSxbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCl7cmV0dXJuIHRoaXN9fX1mdW5jdGlvbiBxcihyKXtpZihyPT09dm9pZCAwKXJldHVybiBLcjtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyIpO2Zvcihjb25zdCBlIG9mIHIpaWYoIUtyLmluY2x1ZGVzKGUpKXRocm93IHR5cGVvZiBlIT0ic3RyaW5nIj9uZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIGVsZW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpOm5ldyBFcnJvcihgJHtlfSBpcyBub3QgRW1pdHRlcnkgbWV0aG9kYCk7cmV0dXJuIHJ9Y29uc3QgU2U9cj0+cj09PXJ0fHxyPT09bnQ7ZnVuY3Rpb24gc3QocixlLHQpe2lmKFNlKGUpKXRyeXtvdD0hMCxyLmVtaXQoZSx0KX1maW5hbGx5e290PSExfX1jbGFzcyBSZXtzdGF0aWMgbWl4aW4oZSx0KXtyZXR1cm4gdD1xcih0KSxuPT57aWYodHlwZW9mIG4hPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBmdW5jdGlvbiIpO2Zvcihjb25zdCBzIG9mIHQpaWYobi5wcm90b3R5cGVbc10hPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvcGVydHkgXGAke3N9XGAgYWxyZWFkeSBleGlzdHMgb24gXGB0YXJnZXRcYGApO2Z1bmN0aW9uIG8oKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpuZXcgUmV9KSx0aGlzW2VdfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxlLHtlbnVtZXJhYmxlOiExLGdldDpvfSk7Y29uc3QgaT1zPT5mdW5jdGlvbiguLi5hKXtyZXR1cm4gdGhpc1tlXVtzXSguLi5hKX07Zm9yKGNvbnN0IHMgb2YgdClPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUscyx7ZW51bWVyYWJsZTohMSx2YWx1ZTppKHMpfSk7cmV0dXJuIG59fXN0YXRpYyBnZXQgaXNEZWJ1Z0VuYWJsZWQoKXt2YXIgZSx0O2lmKHR5cGVvZigoZT1nbG9iYWxUaGlzLnByb2Nlc3MpPT1udWxsP3ZvaWQgMDplLmVudikhPSJvYmplY3QiKXJldHVybiBIdDtjb25zdHtlbnY6bn09KHQ9Z2xvYmFsVGhpcy5wcm9jZXNzKSE9bnVsbD90OntlbnY6e319O3JldHVybiBuLkRFQlVHPT09ImVtaXR0ZXJ5Inx8bi5ERUJVRz09PSIqInx8SHR9c3RhdGljIHNldCBpc0RlYnVnRW5hYmxlZChlKXtIdD1lfWNvbnN0cnVjdG9yKGU9e30pe3ZhciB0O3RlLnNldCh0aGlzLG5ldyBTZXQpLGhlLnNldCh0aGlzLG5ldyBNYXApLFouc2V0KHRoaXMsbmV3IE1hcCksWi5nZXQodGhpcykuc2V0KHR0LG5ldyBTZXQpLHRoaXMuZGVidWc9KHQ9ZS5kZWJ1ZykhPW51bGw/dDp7fSx0aGlzLmRlYnVnLmVuYWJsZWQ9PT12b2lkIDAmJih0aGlzLmRlYnVnLmVuYWJsZWQ9ITEpLHRoaXMuZGVidWcubG9nZ2VyfHwodGhpcy5kZWJ1Zy5sb2dnZXI9KG4sbyxpLHMpPT57dHJ5e3M9SlNPTi5zdHJpbmdpZnkocyl9Y2F0Y2h7cz1gT2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGZhaWxlZCB0byBzdHJpbmdpZnk6ICR7T2JqZWN0LmtleXMocykuam9pbigiLCIpfWB9KHR5cGVvZiBpPT0ic3ltYm9sInx8dHlwZW9mIGk9PSJudW1iZXIiKSYmKGk9aS50b1N0cmluZygpKTtjb25zdCBhPW5ldyBEYXRlLHU9YCR7YS5nZXRIb3VycygpfToke2EuZ2V0TWludXRlcygpfToke2EuZ2V0U2Vjb25kcygpfS4ke2EuZ2V0TWlsbGlzZWNvbmRzKCl9YDtjb25zb2xlLmxvZyhgWyR7dX1dW2VtaXR0ZXJ5OiR7bn1dWyR7b31dIEV2ZW50IE5hbWU6ICR7aX0KCWRhdGE6ICR7c31gKX0pfWxvZ0lmRGVidWdFbmFibGVkKGUsdCxuKXsoUmUuaXNEZWJ1Z0VuYWJsZWR8fHRoaXMuZGVidWcuZW5hYmxlZCkmJnRoaXMuZGVidWcubG9nZ2VyKGUsdGhpcy5kZWJ1Zy5uYW1lLHQsbil9b24oZSx0KXtpdCh0KSxlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Zm9yKGNvbnN0IG4gb2YgZSl7QWUobik7bGV0IG89SWUodGhpcyxuKTtvfHwobz1uZXcgU2V0LGhlLmdldCh0aGlzKS5zZXQobixvKSksby5hZGQodCksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlIixuLHZvaWQgMCksU2Uobil8fHN0KHRoaXMscnQse2V2ZW50TmFtZTpuLGxpc3RlbmVyOnR9KX1yZXR1cm4gdGhpcy5vZmYuYmluZCh0aGlzLGUsdCl9b2ZmKGUsdCl7aXQodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCBuIG9mIGUpe0FlKG4pO2NvbnN0IG89SWUodGhpcyxuKTtvJiYoby5kZWxldGUodCksby5zaXplPT09MCYmaGUuZ2V0KHRoaXMpLmRlbGV0ZShuKSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgidW5zdWJzY3JpYmUiLG4sdm9pZCAwKSxTZShuKXx8c3QodGhpcyxudCx7ZXZlbnROYW1lOm4sbGlzdGVuZXI6dH0pfX1vbmNlKGUpe2xldCB0O2NvbnN0IG49bmV3IFByb21pc2Uobz0+e3Q9dGhpcy5vbihlLGk9Pnt0KCksbyhpKX0pfSk7cmV0dXJuIG4ub2ZmPXQsbn1ldmVudHMoZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCB0IG9mIGUpQWUodCk7cmV0dXJuIFFyKHRoaXMsZSl9YXN5bmMgZW1pdChlLHQpe3ZhciBuO2lmKEFlKGUpLFNlKGUpJiYhb3QpdGhyb3cgbmV3IFR5cGVFcnJvcigiYGV2ZW50TmFtZWAgY2Fubm90IGJlIG1ldGEgZXZlbnQgYGxpc3RlbmVyQWRkZWRgIG9yIGBsaXN0ZW5lclJlbW92ZWRgIik7dGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiZW1pdCIsZSx0KSxXbyh0aGlzLGUsdCk7Y29uc3Qgbz0obj1JZSh0aGlzLGUpKSE9bnVsbD9uOm5ldyBTZXQsaT10ZS5nZXQodGhpcykscz1bLi4ub10sYT1TZShlKT9bXTpbLi4uaV07YXdhaXQgWHIsYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnMubWFwKGFzeW5jIHU9PntpZihvLmhhcyh1KSlyZXR1cm4gdSh0KX0pLC4uLmEubWFwKGFzeW5jIHU9PntpZihpLmhhcyh1KSlyZXR1cm4gdShlLHQpfSldKX1hc3luYyBlbWl0U2VyaWFsKGUsdCl7dmFyIG47aWYoQWUoZSksU2UoZSkmJiFvdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJgZXZlbnROYW1lYCBjYW5ub3QgYmUgbWV0YSBldmVudCBgbGlzdGVuZXJBZGRlZGAgb3IgYGxpc3RlbmVyUmVtb3ZlZGAiKTt0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0U2VyaWFsIixlLHQpO2NvbnN0IG89KG49SWUodGhpcyxlKSkhPW51bGw/bjpuZXcgU2V0LGk9dGUuZ2V0KHRoaXMpLHM9Wy4uLm9dLGE9Wy4uLmldO2F3YWl0IFhyO2Zvcihjb25zdCB1IG9mIHMpby5oYXModSkmJmF3YWl0IHUodCk7Zm9yKGNvbnN0IHUgb2YgYSlpLmhhcyh1KSYmYXdhaXQgdShlLHQpfW9uQW55KGUpe3JldHVybiBpdChlKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJzdWJzY3JpYmVBbnkiLHZvaWQgMCx2b2lkIDApLHRlLmdldCh0aGlzKS5hZGQoZSksc3QodGhpcyxydCx7bGlzdGVuZXI6ZX0pLHRoaXMub2ZmQW55LmJpbmQodGhpcyxlKX1hbnlFdmVudCgpe3JldHVybiBRcih0aGlzKX1vZmZBbnkoZSl7aXQoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgidW5zdWJzY3JpYmVBbnkiLHZvaWQgMCx2b2lkIDApLHN0KHRoaXMsbnQse2xpc3RlbmVyOmV9KSx0ZS5nZXQodGhpcykuZGVsZXRlKGUpfWNsZWFyTGlzdGVuZXJzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKWlmKHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoImNsZWFyIix0LHZvaWQgMCksdHlwZW9mIHQ9PSJzdHJpbmcifHx0eXBlb2YgdD09InN5bWJvbCJ8fHR5cGVvZiB0PT0ibnVtYmVyIil7Y29uc3Qgbj1JZSh0aGlzLHQpO24mJm4uY2xlYXIoKTtjb25zdCBvPU5lKHRoaXMsdCk7aWYobyl7Zm9yKGNvbnN0IGkgb2YgbylpLmZpbmlzaCgpO28uY2xlYXIoKX19ZWxzZXt0ZS5nZXQodGhpcykuY2xlYXIoKTtmb3IoY29uc3RbbixvXW9mIGhlLmdldCh0aGlzKS5lbnRyaWVzKCkpby5jbGVhcigpLGhlLmdldCh0aGlzKS5kZWxldGUobik7Zm9yKGNvbnN0W24sb11vZiBaLmdldCh0aGlzKS5lbnRyaWVzKCkpe2Zvcihjb25zdCBpIG9mIG8paS5maW5pc2goKTtvLmNsZWFyKCksWi5nZXQodGhpcykuZGVsZXRlKG4pfX19bGlzdGVuZXJDb3VudChlKXt2YXIgdCxuLG8saSxzLGE7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2xldCB1PTA7Zm9yKGNvbnN0IGYgb2YgZSl7aWYodHlwZW9mIGY9PSJzdHJpbmciKXt1Kz10ZS5nZXQodGhpcykuc2l6ZSsoKG49KHQ9SWUodGhpcyxmKSk9PW51bGw/dm9pZCAwOnQuc2l6ZSkhPW51bGw/bjowKSsoKGk9KG89TmUodGhpcyxmKSk9PW51bGw/dm9pZCAwOm8uc2l6ZSkhPW51bGw/aTowKSsoKGE9KHM9TmUodGhpcykpPT1udWxsP3ZvaWQgMDpzLnNpemUpIT1udWxsP2E6MCk7Y29udGludWV9dHlwZW9mIGY8InUiJiZBZShmKSx1Kz10ZS5nZXQodGhpcykuc2l6ZTtmb3IoY29uc3QgZCBvZiBoZS5nZXQodGhpcykudmFsdWVzKCkpdSs9ZC5zaXplO2Zvcihjb25zdCBkIG9mIFouZ2V0KHRoaXMpLnZhbHVlcygpKXUrPWQuc2l6ZX1yZXR1cm4gdX1iaW5kTWV0aG9kcyhlLHQpe2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXFyKHQpO2Zvcihjb25zdCBuIG9mIHQpe2lmKGVbbl0hPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvcGVydHkgXGAke259XGAgYWxyZWFkeSBleGlzdHMgb24gXGB0YXJnZXRcYGApO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6ITEsdmFsdWU6dGhpc1tuXS5iaW5kKHRoaXMpfSl9fX1jb25zdCBLcj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhSZS5wcm90b3R5cGUpLmZpbHRlcihyPT5yIT09ImNvbnN0cnVjdG9yIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KFJlLCJsaXN0ZW5lckFkZGVkIix7dmFsdWU6cnQsd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUmUsImxpc3RlbmVyUmVtb3ZlZCIse3ZhbHVlOm50LHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExfSk7ZnVuY3Rpb24gVm8ocil7cmV0dXJuIHIub25BbnkmJnIuZW1pdH1hc3luYyBmdW5jdGlvbiBIbyhyLGUpe2NvbnN0e2Z1bmN0aW9uTmFtZTp0LGFyZ3M6bn09cjtpZighZS5pbnN0YW5jZSl0aHJvdyJpbnN0YW5jZSBub3QgaW5pdGlhbGl6ZWQiO2lmKCF0KXRocm93Im1pc3NpbmcgZnVuY3Rpb24gbmFtZSB0byBjYWxsIjtpZighZS5pbnN0YW5jZVt0XSl0aHJvd2B1bmRlZmluZWQgZnVuY3Rpb24gWyR7dH1dIGluIGNsYXNzICR7ZS5pbnN0YW5jZS5jb25zdHJ1Y3Rvci53b3JrZXJJZH1gO1VlKHIsYXdhaXQgZS5pbnN0YW5jZVt0XSguLi5uIT1udWxsP246W10pKX1jb25zdCBKcj1KKCJyZWdpc3RlcmVkV29ya2VycyIse30pO2Z1bmN0aW9uIGpvKHIsZSl7ZS53b3JrZXJJZD1yLFlyKCkmJihKcltlLndvcmtlcklkXT1lKX1mdW5jdGlvbiBZbyhyLGUpe2lmKCFyLmFyZ3MpdGhyb3ciTWlzc2luZyBjbGFzc05hbWUgd2hpbGUgaW5pdGlhbGl6aW5nIHdvcmtlciI7Y29uc3RbdCxuXT1yLmFyZ3Msbz1Kclt0XTtpZihvKWUuaW5zdGFuY2U9bmV3IG8oci5hcmdzLnNsaWNlKDEpKTtlbHNlIHRocm93YHVua25vd24gd29ya2VyIGNsYXNzICR7dH1gO2V0KG4sUSksVm8oZS5pbnN0YW5jZSkmJmUuaW5zdGFuY2Uub25BbnkoKGkscyk9PntVZSh7dHlwZTpWLkVWRU5UfSx7bmFtZTppLGRhdGE6c30pfSksVWUocix0eXBlb2YgZS5pbnN0YW5jZSE9PXZvaWQgMCl9YXN5bmMgZnVuY3Rpb24gWG8ocixlKXtjb25zdHthcmdzOnR9PXI7aWYoIWUuaW5zdGFuY2UpdGhyb3ciaW5zdGFuY2Ugbm90IGluaXRpYWxpemVkIjtsZXQgbjtlLmluc3RhbmNlLnRlcm1pbmF0ZSYmKG49YXdhaXQgZS5pbnN0YW5jZS50ZXJtaW5hdGUoLi4udCE9bnVsbD90OltdKSksVWUocixuKX1mdW5jdGlvbiBRbyhyKXtpZighci5hcmdzKXRocm93Ik1pc3NpbmcgZ2xvYmFscyB3aGlsZSBzeW5jaW5nIjtldChyLmFyZ3NbMF0sUSksVWUocix7fSl9ZnVuY3Rpb24gcW8oKXtjb25zdCByPXt9O29ubWVzc2FnZT1hc3luYyBlPT57Y29uc3QgdD1lLmRhdGE7c3dpdGNoKHQudHlwZSl7Y2FzZSBWLklOSVQ6WW8odCxyKTticmVhaztjYXNlIFYuRk9SV0FSRDpIbyh0LHIpO2JyZWFrO2Nhc2UgVi5URVJNSU5BVEU6WG8odCxyKTticmVhaztjYXNlIFYuR0xPQkFMU19TWU5DOlFvKHQpO2JyZWFrfX19WXIoKSYmcW8oKTt2YXIgS289T2JqZWN0LmRlZmluZVByb3BlcnR5LEpvPShyLGUsdCk9PmUgaW4gcj9LbyhyLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KTpyW2VdPXQsdz0ocixlLHQpPT4oSm8ocix0eXBlb2YgZSE9InN5bWJvbCI/ZSsiIjplLHQpLHQpO2NsYXNzIGVle313KGVlLCJ1cGRhdGVzIix7dHJhbnNmb3JtZXJfbmV3OiJOZXcgdHJhbnNmb3JtZXIiLHRyYW5zZm9ybWVyX251bGw6Ik51bGwgdHJhbnNmb3JtZXIifSksdyhlZSwiZXJyb3JzIix7dHJhbnNmb3JtZXJfbm9uZToiTm8gdHJhbnNmb3JtZXJzIHByb3ZpZGVkIix0cmFuc2Zvcm1lcl9zdGFydDoiQ2Fubm90IHN0YXJ0IHRyYW5zZm9ybWVyIix0cmFuc2Zvcm1lcl90cmFuc2Zvcm06IkNhbm5vdCB0cmFuc2Zvcm0gZnJhbWUiLHRyYW5zZm9ybWVyX2ZsdXNoOiJDYW5ub3QgZmx1c2ggdHJhbnNmb3JtZXIiLHJlYWRhYmxlX251bGw6IlJlYWRhYmxlIGlzIG51bGwiLHdyaXRhYmxlX251bGw6IldyaXRhYmxlIGlzIG51bGwifSk7Y29uc3QgcmU9bmV3IFdlYWtNYXAsYXQ9bmV3IFdlYWtNYXAsTGU9bmV3IFdlYWtNYXAsanQ9U3ltYm9sKCJhbnlQcm9kdWNlciIpLFpyPVByb21pc2UucmVzb2x2ZSgpLHV0PVN5bWJvbCgibGlzdGVuZXJBZGRlZCIpLGN0PVN5bWJvbCgibGlzdGVuZXJSZW1vdmVkIik7bGV0IFl0PSExO2Z1bmN0aW9uIEZlKHIpe2lmKHR5cGVvZiByIT0ic3RyaW5nIiYmdHlwZW9mIHIhPSJzeW1ib2wiKXRocm93IG5ldyBUeXBlRXJyb3IoImV2ZW50TmFtZSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgc3ltYm9sIil9ZnVuY3Rpb24gZnQocil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigibGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gUGUocixlKXtjb25zdCB0PWF0LmdldChyKTtyZXR1cm4gdC5oYXMoZSl8fHQuc2V0KGUsbmV3IFNldCksdC5nZXQoZSl9ZnVuY3Rpb24gemUocixlKXtjb25zdCB0PXR5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJzeW1ib2wiP2U6anQsbj1MZS5nZXQocik7cmV0dXJuIG4uaGFzKHQpfHxuLnNldCh0LG5ldyBTZXQpLG4uZ2V0KHQpfWZ1bmN0aW9uIFpvKHIsZSx0KXtjb25zdCBuPUxlLmdldChyKTtpZihuLmhhcyhlKSlmb3IoY29uc3QgbyBvZiBuLmdldChlKSlvLmVucXVldWUodCk7aWYobi5oYXMoanQpKXtjb25zdCBvPVByb21pc2UuYWxsKFtlLHRdKTtmb3IoY29uc3QgaSBvZiBuLmdldChqdCkpaS5lbnF1ZXVlKG8pfX1mdW5jdGlvbiBlbihyLGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtsZXQgdD0hMSxuPSgpPT57fSxvPVtdO2NvbnN0IGk9e2VucXVldWUocyl7by5wdXNoKHMpLG4oKX0sZmluaXNoKCl7dD0hMCxuKCl9fTtmb3IoY29uc3QgcyBvZiBlKXplKHIscykuYWRkKGkpO3JldHVybnthc3luYyBuZXh0KCl7cmV0dXJuIG8/by5sZW5ndGg9PT0wP3Q/KG89dm9pZCAwLHRoaXMubmV4dCgpKTooYXdhaXQgbmV3IFByb21pc2Uocz0+e249c30pLHRoaXMubmV4dCgpKTp7ZG9uZTohMSx2YWx1ZTphd2FpdCBvLnNoaWZ0KCl9Ontkb25lOiEwfX0sYXN5bmMgcmV0dXJuKHMpe289dm9pZCAwO2Zvcihjb25zdCBhIG9mIGUpemUocixhKS5kZWxldGUoaSk7cmV0dXJuIG4oKSxhcmd1bWVudHMubGVuZ3RoPjA/e2RvbmU6ITAsdmFsdWU6YXdhaXQgc306e2RvbmU6ITB9fSxbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCl7cmV0dXJuIHRoaXN9fX1mdW5jdGlvbiB0bihyKXtpZihyPT09dm9pZCAwKXJldHVybiBybjtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyIpO2Zvcihjb25zdCBlIG9mIHIpaWYoIXJuLmluY2x1ZGVzKGUpKXRocm93IHR5cGVvZiBlIT0ic3RyaW5nIj9uZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIGVsZW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpOm5ldyBFcnJvcihgJHtlfSBpcyBub3QgRW1pdHRlcnkgbWV0aG9kYCk7cmV0dXJuIHJ9Y29uc3QgWHQ9cj0+cj09PXV0fHxyPT09Y3Q7Y2xhc3MgbWV7c3RhdGljIG1peGluKGUsdCl7cmV0dXJuIHQ9dG4odCksbj0+e2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgZnVuY3Rpb24iKTtmb3IoY29uc3QgcyBvZiB0KWlmKG4ucHJvdG90eXBlW3NdIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtzfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtmdW5jdGlvbiBvKCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGUse2VudW1lcmFibGU6ITEsdmFsdWU6bmV3IG1lfSksdGhpc1tlXX1PYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsZSx7ZW51bWVyYWJsZTohMSxnZXQ6b30pO2NvbnN0IGk9cz0+ZnVuY3Rpb24oLi4uYSl7cmV0dXJuIHRoaXNbZV1bc10oLi4uYSl9O2Zvcihjb25zdCBzIG9mIHQpT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLHMse2VudW1lcmFibGU6ITEsdmFsdWU6aShzKX0pO3JldHVybiBufX1zdGF0aWMgZ2V0IGlzRGVidWdFbmFibGVkKCl7aWYodHlwZW9mIHByb2Nlc3MhPSJvYmplY3QiKXJldHVybiBZdDtjb25zdHtlbnY6ZX09cHJvY2Vzc3x8e2Vudjp7fX07cmV0dXJuIGUuREVCVUc9PT0iZW1pdHRlcnkifHxlLkRFQlVHPT09IioifHxZdH1zdGF0aWMgc2V0IGlzRGVidWdFbmFibGVkKGUpe1l0PWV9Y29uc3RydWN0b3IoZT17fSl7cmUuc2V0KHRoaXMsbmV3IFNldCksYXQuc2V0KHRoaXMsbmV3IE1hcCksTGUuc2V0KHRoaXMsbmV3IE1hcCksdGhpcy5kZWJ1Zz1lLmRlYnVnfHx7fSx0aGlzLmRlYnVnLmVuYWJsZWQ9PT12b2lkIDAmJih0aGlzLmRlYnVnLmVuYWJsZWQ9ITEpLHRoaXMuZGVidWcubG9nZ2VyfHwodGhpcy5kZWJ1Zy5sb2dnZXI9KHQsbixvLGkpPT57dHJ5e2k9SlNPTi5zdHJpbmdpZnkoaSl9Y2F0Y2h7aT1gT2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGZhaWxlZCB0byBzdHJpbmdpZnk6ICR7T2JqZWN0LmtleXMoaSkuam9pbigiLCIpfWB9dHlwZW9mIG89PSJzeW1ib2wiJiYobz1vLnRvU3RyaW5nKCkpO2NvbnN0IHM9bmV3IERhdGUsYT1gJHtzLmdldEhvdXJzKCl9OiR7cy5nZXRNaW51dGVzKCl9OiR7cy5nZXRTZWNvbmRzKCl9LiR7cy5nZXRNaWxsaXNlY29uZHMoKX1gO2NvbnNvbGUubG9nKGBbJHthfV1bZW1pdHRlcnk6JHt0fV1bJHtufV0gRXZlbnQgTmFtZTogJHtvfQoJZGF0YTogJHtpfWApfSl9bG9nSWZEZWJ1Z0VuYWJsZWQoZSx0LG4peyhtZS5pc0RlYnVnRW5hYmxlZHx8dGhpcy5kZWJ1Zy5lbmFibGVkKSYmdGhpcy5kZWJ1Zy5sb2dnZXIoZSx0aGlzLmRlYnVnLm5hbWUsdCxuKX1vbihlLHQpe2Z0KHQpLGU9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgbiBvZiBlKUZlKG4pLFBlKHRoaXMsbikuYWRkKHQpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInN1YnNjcmliZSIsbix2b2lkIDApLFh0KG4pfHx0aGlzLmVtaXQodXQse2V2ZW50TmFtZTpuLGxpc3RlbmVyOnR9KTtyZXR1cm4gdGhpcy5vZmYuYmluZCh0aGlzLGUsdCl9b2ZmKGUsdCl7ZnQodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCBuIG9mIGUpRmUobiksUGUodGhpcyxuKS5kZWxldGUodCksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgidW5zdWJzY3JpYmUiLG4sdm9pZCAwKSxYdChuKXx8dGhpcy5lbWl0KGN0LHtldmVudE5hbWU6bixsaXN0ZW5lcjp0fSl9b25jZShlKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2NvbnN0IG49dGhpcy5vbihlLG89PntuKCksdChvKX0pfSl9ZXZlbnRzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKUZlKHQpO3JldHVybiBlbih0aGlzLGUpfWFzeW5jIGVtaXQoZSx0KXtGZShlKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0IixlLHQpLFpvKHRoaXMsZSx0KTtjb25zdCBuPVBlKHRoaXMsZSksbz1yZS5nZXQodGhpcyksaT1bLi4ubl0scz1YdChlKT9bXTpbLi4ub107YXdhaXQgWnIsYXdhaXQgUHJvbWlzZS5hbGwoWy4uLmkubWFwKGFzeW5jIGE9PntpZihuLmhhcyhhKSlyZXR1cm4gYSh0KX0pLC4uLnMubWFwKGFzeW5jIGE9PntpZihvLmhhcyhhKSlyZXR1cm4gYShlLHQpfSldKX1hc3luYyBlbWl0U2VyaWFsKGUsdCl7RmUoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiZW1pdFNlcmlhbCIsZSx0KTtjb25zdCBuPVBlKHRoaXMsZSksbz1yZS5nZXQodGhpcyksaT1bLi4ubl0scz1bLi4ub107YXdhaXQgWnI7Zm9yKGNvbnN0IGEgb2YgaSluLmhhcyhhKSYmYXdhaXQgYSh0KTtmb3IoY29uc3QgYSBvZiBzKW8uaGFzKGEpJiZhd2FpdCBhKGUsdCl9b25BbnkoZSl7cmV0dXJuIGZ0KGUpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInN1YnNjcmliZUFueSIsdm9pZCAwLHZvaWQgMCkscmUuZ2V0KHRoaXMpLmFkZChlKSx0aGlzLmVtaXQodXQse2xpc3RlbmVyOmV9KSx0aGlzLm9mZkFueS5iaW5kKHRoaXMsZSl9YW55RXZlbnQoKXtyZXR1cm4gZW4odGhpcyl9b2ZmQW55KGUpe2Z0KGUpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInVuc3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSx0aGlzLmVtaXQoY3Qse2xpc3RlbmVyOmV9KSxyZS5nZXQodGhpcykuZGVsZXRlKGUpfWNsZWFyTGlzdGVuZXJzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKWlmKHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoImNsZWFyIix0LHZvaWQgMCksdHlwZW9mIHQ9PSJzdHJpbmcifHx0eXBlb2YgdD09InN5bWJvbCIpe1BlKHRoaXMsdCkuY2xlYXIoKTtjb25zdCBuPXplKHRoaXMsdCk7Zm9yKGNvbnN0IG8gb2YgbilvLmZpbmlzaCgpO24uY2xlYXIoKX1lbHNle3JlLmdldCh0aGlzKS5jbGVhcigpO2Zvcihjb25zdCBuIG9mIGF0LmdldCh0aGlzKS52YWx1ZXMoKSluLmNsZWFyKCk7Zm9yKGNvbnN0IG4gb2YgTGUuZ2V0KHRoaXMpLnZhbHVlcygpKXtmb3IoY29uc3QgbyBvZiBuKW8uZmluaXNoKCk7bi5jbGVhcigpfX19bGlzdGVuZXJDb3VudChlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07bGV0IHQ9MDtmb3IoY29uc3QgbiBvZiBlKXtpZih0eXBlb2Ygbj09InN0cmluZyIpe3QrPXJlLmdldCh0aGlzKS5zaXplK1BlKHRoaXMsbikuc2l6ZSt6ZSh0aGlzLG4pLnNpemUremUodGhpcykuc2l6ZTtjb250aW51ZX10eXBlb2YgbjwidSImJkZlKG4pLHQrPXJlLmdldCh0aGlzKS5zaXplO2Zvcihjb25zdCBvIG9mIGF0LmdldCh0aGlzKS52YWx1ZXMoKSl0Kz1vLnNpemU7Zm9yKGNvbnN0IG8gb2YgTGUuZ2V0KHRoaXMpLnZhbHVlcygpKXQrPW8uc2l6ZX1yZXR1cm4gdH1iaW5kTWV0aG9kcyhlLHQpe2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXRuKHQpO2Zvcihjb25zdCBuIG9mIHQpe2lmKGVbbl0hPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvcGVydHkgXGAke259XGAgYWxyZWFkeSBleGlzdHMgb24gXGB0YXJnZXRcYGApO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6ITEsdmFsdWU6dGhpc1tuXS5iaW5kKHRoaXMpfSl9fX1jb25zdCBybj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhtZS5wcm90b3R5cGUpLmZpbHRlcihyPT5yIT09ImNvbnN0cnVjdG9yIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KG1lLCJsaXN0ZW5lckFkZGVkIix7dmFsdWU6dXQsd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobWUsImxpc3RlbmVyUmVtb3ZlZCIse3ZhbHVlOmN0LHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExfSk7dmFyIFF0PW1lO2Z1bmN0aW9uIGVpKHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJnIhPT1udWxsJiYibWVzc2FnZSJpbiByJiZ0eXBlb2Ygci5tZXNzYWdlPT0ic3RyaW5nIn1mdW5jdGlvbiB0aShyKXtpZihlaShyKSlyZXR1cm4gcjt0cnl7cmV0dXJuIG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeShyKSl9Y2F0Y2h7cmV0dXJuIG5ldyBFcnJvcihTdHJpbmcocikpfX1mdW5jdGlvbiBxdChyKXtyZXR1cm4gdGkocikubWVzc2FnZX12YXIgcmk9T2JqZWN0LmRlZmluZVByb3BlcnR5LG5pPShyLGUsdCk9PmUgaW4gcj9yaShyLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KTpyW2VdPXQsb2k9KHIsZSx0KT0+KG5pKHIsdHlwZW9mIGUhPSJzeW1ib2wiP2UrIiI6ZSx0KSx0KTtjb25zdCBpaT0iaGxnLnRva2JveC5jb20vcHJvZC9sb2dnaW5nL3ZjcF93ZWJydGMiLHNpPSJodHRwczovLyIsYWk9MWU0O2xldCBsdDtjb25zdCB1aT1uZXcgVWludDhBcnJheSgxNik7ZnVuY3Rpb24gY2koKXtpZighbHQmJihsdD10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLmdldFJhbmRvbVZhbHVlcyYmY3J5cHRvLmdldFJhbmRvbVZhbHVlcy5iaW5kKGNyeXB0byksIWx0KSl0aHJvdyBuZXcgRXJyb3IoImNyeXB0by5nZXRSYW5kb21WYWx1ZXMoKSBub3Qgc3VwcG9ydGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkI2dldHJhbmRvbXZhbHVlcy1ub3Qtc3VwcG9ydGVkIik7cmV0dXJuIGx0KHVpKX1jb25zdCBDPVtdO2ZvcihsZXQgcj0wO3I8MjU2OysrcilDLnB1c2goKHIrMjU2KS50b1N0cmluZygxNikuc2xpY2UoMSkpO2Z1bmN0aW9uIGZpKHIsZT0wKXtyZXR1cm4oQ1tyW2UrMF1dK0NbcltlKzFdXStDW3JbZSsyXV0rQ1tyW2UrM11dKyItIitDW3JbZSs0XV0rQ1tyW2UrNV1dKyItIitDW3JbZSs2XV0rQ1tyW2UrN11dKyItIitDW3JbZSs4XV0rQ1tyW2UrOV1dKyItIitDW3JbZSsxMF1dK0NbcltlKzExXV0rQ1tyW2UrMTJdXStDW3JbZSsxM11dK0NbcltlKzE0XV0rQ1tyW2UrMTVdXSkudG9Mb3dlckNhc2UoKX1jb25zdCBsaT10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQmJmNyeXB0by5yYW5kb21VVUlELmJpbmQoY3J5cHRvKSxubj17cmFuZG9tVVVJRDpsaX07ZnVuY3Rpb24gZGkocixlLHQpe2lmKG5uLnJhbmRvbVVVSUQmJiFlJiYhcilyZXR1cm4gbm4ucmFuZG9tVVVJRCgpO3I9cnx8e307Y29uc3Qgbj1yLnJhbmRvbXx8KHIucm5nfHxjaSkoKTtpZihuWzZdPW5bNl0mMTV8NjQsbls4XT1uWzhdJjYzfDEyOCxlKXt0PXR8fDA7Zm9yKGxldCBvPTA7bzwxNjsrK28pZVt0K29dPW5bb107cmV0dXJuIGV9cmV0dXJuIGZpKG4pfWZ1bmN0aW9uIEt0KHIsZSl7Z2xvYmFsVGhpcy52b25hZ2V8fChnbG9iYWxUaGlzLnZvbmFnZT17fSksZ2xvYmFsVGhpcy52b25hZ2Uud29ya2VyaXplcnx8KGdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI9e30pO2xldCB0PWdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI7cmV0dXJuIHRbcl18fCh0W3JdPWUpLHRbcl19Y29uc3QgbmU9S3QoImdsb2JhbHMiLHt9KTt2YXIgcGU9KHI9PihyLklOSVQ9IklOSVQiLHIuRk9SV0FSRD0iRk9SV0FSRCIsci5URVJNSU5BVEU9IlRFUk1JTkFURSIsci5HTE9CQUxTX1NZTkM9IkdMT0JBTFNfU1lOQyIscikpKHBlfHx7fSk7ZnVuY3Rpb24gb24ocil7cmV0dXJuW0ltYWdlQml0bWFwLFJlYWRhYmxlU3RyZWFtLFdyaXRhYmxlU3RyZWFtXS5zb21lKGU9PnIgaW5zdGFuY2VvZiBlKX1sZXQgaGk9MDtmdW5jdGlvbiBtaShyLGUsdCxuLG8pe2NvbnN0IGk9aGkrKztyZXR1cm4gci5wb3N0TWVzc2FnZSh7aWQ6aSx0eXBlOmUsZnVuY3Rpb25OYW1lOnQsYXJnczpufSxuLmZpbHRlcihzPT5vbihzKSkpLG5ldyBQcm9taXNlKHM9PntvPT1udWxsfHxvLnNldChpLHMpfSl9ZnVuY3Rpb24gR2UocixlKXtjb25zdHtpZDp0LHR5cGU6bn09cixvPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07cG9zdE1lc3NhZ2Uoe2lkOnQsdHlwZTpuLHJlc3VsdDplfSxvLmZpbHRlcihpPT5vbihpKSkpfWNvbnN0IHNuPUt0KCJ3b3JrZXJpemVkIix7fSk7ZnVuY3Rpb24gYW4oKXtyZXR1cm4gdHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlfWFzeW5jIGZ1bmN0aW9uIHBpKCl7aWYoYW4oKSlHZSh7dHlwZTpwZS5HTE9CQUxTX1NZTkN9LG5lKTtlbHNle2NvbnN0IHI9W107Zm9yKGNvbnN0IGUgaW4gc24pe2NvbnN0e3dvcmtlcjp0LHJlc29sdmVyczpufT1zbltlXS53b3JrZXJDb250ZXh0O3QmJnIucHVzaChtaSh0LHBlLkdMT0JBTFNfU1lOQywiIixbbmVdLG4pKX1hd2FpdCBQcm9taXNlLmFsbChyKX19ZnVuY3Rpb24gZHQocixlKXtpZihBcnJheS5pc0FycmF5KGUpKWUuc3BsaWNlKDAsZS5sZW5ndGgpO2Vsc2UgaWYodHlwZW9mIGU9PSJvYmplY3QiKWZvcihjb25zdCB0IGluIGUpZGVsZXRlIGVbdF07Zm9yKGNvbnN0IHQgaW4gcilBcnJheS5pc0FycmF5KHJbdF0pPyhlW3RdPVtdLGR0KHJbdF0sZVt0XSkpOnR5cGVvZiByW3RdPT0ib2JqZWN0Ij8oZVt0XT17fSxkdChyW3RdLGVbdF0pKTplW3RdPXJbdF19YXN5bmMgZnVuY3Rpb24gZ2kocixlKXtjb25zdHtmdW5jdGlvbk5hbWU6dCxhcmdzOm59PXI7aWYoIWUuaW5zdGFuY2UpdGhyb3ciaW5zdGFuY2Ugbm90IGluaXRpYWxpemVkIjtpZighdCl0aHJvdyJtaXNzaW5nIGZ1bmN0aW9uIG5hbWUgdG8gY2FsbCI7aWYoIWUuaW5zdGFuY2VbdF0pdGhyb3dgdW5kZWZpbmVkIGZ1bmN0aW9uIFske3R9XSBpbiBjbGFzcyAke2UuaW5zdGFuY2UuY29uc3RydWN0b3Iud29ya2VySWR9YDtHZShyLGF3YWl0IGUuaW5zdGFuY2VbdF0oLi4ubiE9bnVsbD9uOltdKSl9Y29uc3QgeWk9S3QoInJlZ2lzdGVyZWRXb3JrZXJzIix7fSk7ZnVuY3Rpb24gYmkocixlKXtpZighci5hcmdzKXRocm93Ik1pc3NpbmcgY2xhc3NOYW1lIHdoaWxlIGluaXRpYWxpemluZyB3b3JrZXIiO2NvbnN0W3Qsbl09ci5hcmdzLG89eWlbdF07aWYobyllLmluc3RhbmNlPW5ldyBvKHIuYXJncy5zbGljZSgxKSk7ZWxzZSB0aHJvd2B1bmtub3duIHdvcmtlciBjbGFzcyAke3R9YDtkdChuLG5lKSxHZShyLHR5cGVvZiBlLmluc3RhbmNlIT09dm9pZCAwKX1hc3luYyBmdW5jdGlvbiB4aShyLGUpe2NvbnN0e2FyZ3M6dH09cjtpZighZS5pbnN0YW5jZSl0aHJvdyJpbnN0YW5jZSBub3QgaW5pdGlhbGl6ZWQiO2xldCBuO2UuaW5zdGFuY2UudGVybWluYXRlJiYobj1hd2FpdCBlLmluc3RhbmNlLnRlcm1pbmF0ZSguLi50IT1udWxsP3Q6W10pKSxHZShyLG4pfWZ1bmN0aW9uIF9pKHIpe2lmKCFyLmFyZ3MpdGhyb3ciTWlzc2luZyBnbG9iYWxzIHdoaWxlIHN5bmNpbmciO2R0KHIuYXJnc1swXSxuZSksR2Uocix7fSl9ZnVuY3Rpb24gdmkoKXtjb25zdCByPXt9O29ubWVzc2FnZT1hc3luYyBlPT57Y29uc3QgdD1lLmRhdGE7c3dpdGNoKHQudHlwZSl7Y2FzZSBwZS5JTklUOmJpKHQscik7YnJlYWs7Y2FzZSBwZS5GT1JXQVJEOmdpKHQscik7YnJlYWs7Y2FzZSBwZS5URVJNSU5BVEU6eGkodCxyKTticmVhaztjYXNlIHBlLkdMT0JBTFNfU1lOQzpfaSh0KTticmVha319fWFuKCkmJnZpKCk7ZnVuY3Rpb24gRWkocixlKXtyZXR1cm4gbmVbcl18fChuZVtyXT1lKSxbKCk9Pm5lW3JdLGFzeW5jIHQ9PntuZVtyXT10LGF3YWl0IHBpKCl9XX1mdW5jdGlvbiBUaShyLGUpe3JldHVybiBFaShyLGUpfWNvbnN0W3dpLEFpXT1UaSgibWV0YWRhdGEiKTtmdW5jdGlvbiBJaShyKXtBaShyKX1mdW5jdGlvbiBKdCgpe3JldHVybiB3aSgpfWNsYXNzIFp0e2NvbnN0cnVjdG9yKGUpe29pKHRoaXMsInV1aWQiLGRpKCkpLHRoaXMuY29uZmlnPWV9YXN5bmMgc2VuZChlKXt2YXIgdCxuLG87Y29uc3R7YXBwSWQ6aSxzb3VyY2VUeXBlOnN9PSh0PUp0KCkpIT1udWxsP3Q6e307aWYoIWl8fCFzKXJldHVybiJtZXRhZGF0YSBtaXNzaW5nIjtjb25zdCBhPW5ldyBBYm9ydENvbnRyb2xsZXIsdT1zZXRUaW1lb3V0KCgpPT5hLmFib3J0KCksYWkpO3JldHVybiBhd2FpdCgobz0obj10aGlzLmNvbmZpZyk9PW51bGw/dm9pZCAwOm4uZmV0Y2gpIT1udWxsP286ZmV0Y2gpKHRoaXMuZ2V0VXJsKCkse21ldGhvZDoiUE9TVCIsaGVhZGVyczp0aGlzLmdldEhlYWRlcnMoKSxib2R5OkpTT04uc3RyaW5naWZ5KHRoaXMuYnVpbGRSZXBvcnQoZSkpLHNpZ25hbDphLnNpZ25hbH0pLGNsZWFyVGltZW91dCh1KSwic3VjY2VzcyJ9Z2V0VXJsKCl7dmFyIGU7bGV0IHQ9KGU9SnQoKS5wcm94eVVybCkhPW51bGw/ZTpzaTtyZXR1cm4gdCs9KHQuYXQoLTEpPT09Ii8iPyIiOiIvIikraWksdH1nZXRIZWFkZXJzKCl7cmV0dXJueyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn19YnVpbGRSZXBvcnQoZSl7Y29uc3QgdD1KdCgpO3JldHVybntndWlkOnRoaXMudXVpZCwuLi5lLGFwcGxpY2F0aW9uSWQ6dC5hcHBJZCx0aW1lc3RhbXA6RGF0ZS5ub3coKSxwcm94eVVybDp0LnByb3h5VXJsLHNvdXJjZTp0LnNvdXJjZVR5cGV9fX1jb25zdCBodD0iMi4wLjMiO2NsYXNzIFNpe2NvbnN0cnVjdG9yKGUpe3codGhpcywiZnJhbWVUcmFuc2Zvcm1lZENvdW50IiwwKSx3KHRoaXMsImZyYW1lRnJvbVNvdXJjZUNvdW50IiwwKSx3KHRoaXMsInN0YXJ0QXQiLDApLHcodGhpcywicmVwb3J0ZXIiKSx0aGlzLmNvbmZpZz1lLHRoaXMucmVwb3J0ZXI9bmV3IFp0KGUpfWFzeW5jIG9uRnJhbWVGcm9tU291cmNlKCl7dGhpcy5mcmFtZUZyb21Tb3VyY2VDb3VudCsrfWdldCBmcHMoKXtjb25zdHtzdGFydEF0OmUsZnJhbWVGcm9tU291cmNlQ291bnQ6dH09dGhpcyxuPShEYXRlLm5vdygpLWUpLzFlMztyZXR1cm4gdC9ufWFzeW5jIG9uRnJhbWVUcmFuc2Zvcm1lZChlPXt9LHQ9ITEpe3RoaXMuc3RhcnRBdD09PTAmJih0aGlzLnN0YXJ0QXQ9RGF0ZS5ub3coKSksdGhpcy5mcmFtZVRyYW5zZm9ybWVkQ291bnQrKztjb25zdHtzdGFydEF0Om4sZnJhbWVUcmFuc2Zvcm1lZENvdW50Om8sZnJhbWVGcm9tU291cmNlQ291bnQ6aX09dGhpcyxzPURhdGUubm93KCksYT0ocy1uKS8xZTMsdT1vL2EsZj1pL2E7cmV0dXJuIHR8fHRoaXMuZnJhbWVUcmFuc2Zvcm1lZENvdW50Pj10aGlzLmNvbmZpZy5sb2dnaW5nSW50ZXJ2YWxGcmFtZUNvdW50Pyh0aGlzLmZyYW1lRnJvbVNvdXJjZUNvdW50PTAsdGhpcy5mcmFtZVRyYW5zZm9ybWVkQ291bnQ9MCx0aGlzLnN0YXJ0QXQ9cyx0aGlzLnJlcG9ydGVyLmNvbmZpZz10aGlzLmNvbmZpZyx0aGlzLnJlcG9ydGVyLnNlbmQoey4uLnRoaXMuY29uZmlnLnJlcG9ydCx2YXJpYXRpb246IlFvUyIsZnBzOmYsdHJhbnNmb3JtZWRGcHM6dSxmcmFtZXNUcmFuc2Zvcm1lZDpvLC4uLmV9KSk6InN1Y2Nlc3MifX12YXIgZXI9KHI9PihyLnBpcGVsaW5lX2VuZGVkPSJwaXBlbGluZV9lbmRlZCIsci5waXBlbGluZV9lbmRlZF93aXRoX2Vycm9yPSJwaXBlbGluZV9lbmRlZF93aXRoX2Vycm9yIixyLnBpcGVsaW5lX3N0YXJ0ZWQ9InBpcGVsaW5lX3N0YXJ0ZWQiLHIucGlwZWxpbmVfc3RhcnRlZF93aXRoX2Vycm9yPSJwaXBlbGluZV9zdGFydGVkX3dpdGhfZXJyb3IiLHIucGlwZWxpbmVfcmVzdGFydGVkPSJwaXBlbGluZV9yZXN0YXJ0ZWQiLHIucGlwZWxpbmVfcmVzdGFydGVkX3dpdGhfZXJyb3I9InBpcGVsaW5lX3Jlc3RhcnRlZF93aXRoX2Vycm9yIixyKSkoZXJ8fHt9KTtjb25zdCBSaT01MDAsRmk9Ljg7Y2xhc3MgUGkgZXh0ZW5kcyBRdHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCksdyh0aGlzLCJyZXBvcnRlcl8iLG5ldyBadCksdyh0aGlzLCJyZXBvcnRlclFvc18iLG5ldyBTaSh7bG9nZ2luZ0ludGVydmFsRnJhbWVDb3VudDpSaSxyZXBvcnQ6e3ZlcnNpb246aHR9fSkpLHcodGhpcywidHJhbnNmb3JtZXJUeXBlXyIpLHcodGhpcywidHJhbnNmb3JtZXJfIiksdyh0aGlzLCJzaG91bGRTdG9wXyIpLHcodGhpcywiaXNGbGFzaGVkXyIpLHcodGhpcywibWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXyIpLHcodGhpcywidmlkZW9IZWlnaHRfIiksdyh0aGlzLCJ2aWRlb1dpZHRoXyIpLHcodGhpcywidHJhY2tFeHBlY3RlZFJhdGVfIiksdyh0aGlzLCJpbmRleF8iKSx3KHRoaXMsImNvbnRyb2xsZXJfIiksdGhpcy5pbmRleF89dCx0aGlzLnRyYW5zZm9ybWVyXz1lLHRoaXMuc2hvdWxkU3RvcF89ITEsdGhpcy5pc0ZsYXNoZWRfPSExLHRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXz0wLHRoaXMudmlkZW9IZWlnaHRfPTAsdGhpcy52aWRlb1dpZHRoXz0wLHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfPS0xLHRoaXMudHJhbnNmb3JtZXJUeXBlXz0iQ3VzdG9tIiwiZ2V0VHJhbnNmb3JtZXJUeXBlImluIGUmJih0aGlzLnRyYW5zZm9ybWVyVHlwZV89ZS5nZXRUcmFuc2Zvcm1lclR5cGUoKSksdGhpcy5yZXBvcnQoe3ZhcmlhdGlvbjoiQ3JlYXRlIn0pfXNldFRyYWNrRXhwZWN0ZWRSYXRlKGUpe3RoaXMudHJhY2tFeHBlY3RlZFJhdGVfPWV9YXN5bmMgc3RhcnQoZSl7aWYodGhpcy5jb250cm9sbGVyXz1lLHRoaXMudHJhbnNmb3JtZXJfJiZ0eXBlb2YgdGhpcy50cmFuc2Zvcm1lcl8uc3RhcnQ9PSJmdW5jdGlvbiIpdHJ5e2F3YWl0IHRoaXMudHJhbnNmb3JtZXJfLnN0YXJ0KGUpfWNhdGNoKHQpe3RoaXMucmVwb3J0KHttZXNzYWdlOmVlLmVycm9ycy50cmFuc2Zvcm1lcl9zdGFydCx2YXJpYXRpb246IkVycm9yIixlcnJvcjpxdCh0KX0pO2NvbnN0IG49e2V2ZW50TWV0YURhdGE6e3RyYW5zZm9ybWVySW5kZXg6dGhpcy5pbmRleF99LGVycm9yOnQsZnVuY3Rpb246InN0YXJ0In07dGhpcy5lbWl0KCJlcnJvciIsbil9fWFzeW5jIHRyYW5zZm9ybShlLHQpe3ZhciBuLG8saSxzO2lmKHRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXz09PTAmJih0aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF89RGF0ZS5ub3coKSksZSBpbnN0YW5jZW9mIFZpZGVvRnJhbWUmJih0aGlzLnZpZGVvSGVpZ2h0Xz0obj1lPT1udWxsP3ZvaWQgMDplLmRpc3BsYXlIZWlnaHQpIT1udWxsP246MCx0aGlzLnZpZGVvV2lkdGhfPShvPWU9PW51bGw/dm9pZCAwOmUuZGlzcGxheVdpZHRoKSE9bnVsbD9vOjApLHRoaXMucmVwb3J0ZXJRb3NfLm9uRnJhbWVGcm9tU291cmNlKCksdGhpcy50cmFuc2Zvcm1lcl8paWYodGhpcy5zaG91bGRTdG9wXyljb25zb2xlLndhcm4oIltQaXBlbGluZV0gZmx1c2ggZnJvbSB0cmFuc2Zvcm0iKSxlLmNsb3NlKCksdGhpcy5mbHVzaCh0KSx0LnRlcm1pbmF0ZSgpO2Vsc2V7dHJ5e2F3YWl0KChzPShpPXRoaXMudHJhbnNmb3JtZXJfKS50cmFuc2Zvcm0pPT1udWxsP3ZvaWQgMDpzLmNhbGwoaSxlLHQpKSx0aGlzLnJlcG9ydFFvcygpfWNhdGNoKGEpe3RoaXMucmVwb3J0KHttZXNzYWdlOmVlLmVycm9ycy50cmFuc2Zvcm1lcl90cmFuc2Zvcm0sdmFyaWF0aW9uOiJFcnJvciIsZXJyb3I6cXQoYSl9KTtjb25zdCB1PXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSxlcnJvcjphLGZ1bmN0aW9uOiJ0cmFuc2Zvcm0ifTt0aGlzLmVtaXQoImVycm9yIix1KX1pZih0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyE9LTEmJnRoaXMudHJhY2tFeHBlY3RlZFJhdGVfKkZpPnRoaXMucmVwb3J0ZXJRb3NfLmZwcyl7Y29uc3QgYT17ZXZlbnRNZXRhRGF0YTp7dHJhbnNmb3JtZXJJbmRleDp0aGlzLmluZGV4X30sd2FybmluZ1R5cGU6ImZwc19kcm9wIixkcm9wSW5mbzp7cmVxdWVzdGVkOnRoaXMudHJhY2tFeHBlY3RlZFJhdGVfLGN1cnJlbnQ6dGhpcy5yZXBvcnRlclFvc18uZnBzfX07dGhpcy5lbWl0KCJ3YXJuIixhKX19fWFzeW5jIGZsdXNoKGUpe2lmKHRoaXMudHJhbnNmb3JtZXJfJiZ0eXBlb2YgdGhpcy50cmFuc2Zvcm1lcl8uZmx1c2g9PSJmdW5jdGlvbiImJiF0aGlzLmlzRmxhc2hlZF8pe3RoaXMuaXNGbGFzaGVkXz0hMDt0cnl7YXdhaXQgdGhpcy50cmFuc2Zvcm1lcl8uZmx1c2goZSl9Y2F0Y2godCl7dGhpcy5yZXBvcnQoe21lc3NhZ2U6ZWUuZXJyb3JzLnRyYW5zZm9ybWVyX2ZsdXNoLHZhcmlhdGlvbjoiRXJyb3IiLGVycm9yOnF0KHQpfSk7Y29uc3Qgbj17ZXZlbnRNZXRhRGF0YTp7dHJhbnNmb3JtZXJJbmRleDp0aGlzLmluZGV4X30sZXJyb3I6dCxmdW5jdGlvbjoiZmx1c2gifTt0aGlzLmVtaXQoImVycm9yIixuKX19dGhpcy5yZXBvcnRRb3MoITApLHRoaXMucmVwb3J0KHt2YXJpYXRpb246IkRlbGV0ZSJ9KX1zdG9wKCl7Y29uc29sZS5sb2coIltQaXBlbGluZV0gU3RvcCBzdHJlYW0uIiksdGhpcy5jb250cm9sbGVyXyYmKHRoaXMuZmx1c2godGhpcy5jb250cm9sbGVyXyksdGhpcy5jb250cm9sbGVyXy50ZXJtaW5hdGUoKSksdGhpcy5zaG91bGRTdG9wXz0hMH1yZXBvcnQoZSl7dGhpcy5yZXBvcnRlcl8uc2VuZCh7dmVyc2lvbjpodCxhY3Rpb246Ik1lZGlhVHJhbnNmb3JtZXIiLHRyYW5zZm9ybWVyVHlwZTp0aGlzLnRyYW5zZm9ybWVyVHlwZV8sLi4uZX0pfXJlcG9ydFFvcyhlPSExKXt0aGlzLnJlcG9ydGVyUW9zXy5jb25maWc9ey4uLnRoaXMucmVwb3J0ZXJRb3NfLmNvbmZpZ30sdGhpcy5yZXBvcnRlclFvc18ub25GcmFtZVRyYW5zZm9ybWVkKHt2ZXJzaW9uOmh0LGFjdGlvbjoiTWVkaWFUcmFuc2Zvcm1lciIsdHJhbnNmb3JtZXJUeXBlOnRoaXMudHJhbnNmb3JtZXJUeXBlXyx2aWRlb1dpZHRoOnRoaXMudmlkZW9XaWR0aF8sdmlkZW9IZWlnaHQ6dGhpcy52aWRlb0hlaWdodF99LGUpfX1jbGFzcyBraSBleHRlbmRzIFF0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdyh0aGlzLCJ0cmFuc2Zvcm1lcnNfIiksdyh0aGlzLCJ0cmFja0V4cGVjdGVkUmF0ZV8iKSx0aGlzLnRyYW5zZm9ybWVyc189W10sdGhpcy50cmFja0V4cGVjdGVkUmF0ZV89LTE7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2xldCBuPW5ldyBQaShlW3RdLHQpO24ub24oImVycm9yIixvPT57dGhpcy5lbWl0KCJlcnJvciIsbyl9KSxuLm9uKCJ3YXJuIixvPT57dGhpcy5lbWl0KCJ3YXJuIixvKX0pLHRoaXMudHJhbnNmb3JtZXJzXy5wdXNoKG4pfX1zZXRUcmFja0V4cGVjdGVkUmF0ZShlKXt0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz1lO2ZvcihsZXQgdCBvZiB0aGlzLnRyYW5zZm9ybWVyc18pdC5zZXRUcmFja0V4cGVjdGVkUmF0ZSh0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyl9YXN5bmMgc3RhcnQoZSx0KXtpZighdGhpcy50cmFuc2Zvcm1lcnNffHx0aGlzLnRyYW5zZm9ybWVyc18ubGVuZ3RoPT09MCl7Y29uc29sZS5sb2coIltQaXBlbGluZV0gTm8gdHJhbnNmb3JtZXJzLiIpO3JldHVybn10cnl7bGV0IG49ZTtmb3IobGV0IG8gb2YgdGhpcy50cmFuc2Zvcm1lcnNfKWU9ZS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKG8pKTtlLnBpcGVUbyh0KS50aGVuKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBTZXR1cC4iKSxhd2FpdCB0LmFib3J0KCksYXdhaXQgbi5jYW5jZWwoKSx0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIsInBpcGVsaW5lX2VuZGVkIil9KS5jYXRjaChhc3luYyBvPT57ZS5jYW5jZWwoKS50aGVuKCgpPT57Y29uc29sZS5sb2coIltQaXBlbGluZV0gU2h1dHRpbmcgZG93biBzdHJlYW1zIGFmdGVyIGFib3J0LiIpfSkuY2F0Y2goaT0+e2NvbnNvbGUuZXJyb3IoIltQaXBlbGluZV0gRXJyb3IgZnJvbSBzdHJlYW0gdHJhbnNmb3JtOiIsaSl9KSxhd2FpdCB0LmFib3J0KG8pLGF3YWl0IG4uY2FuY2VsKG8pLHRoaXMuZW1pdCgicGlwZWxpbmVJbmZvIiwicGlwZWxpbmVfZW5kZWRfd2l0aF9lcnJvciIpfSl9Y2F0Y2h7dGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLCJwaXBlbGluZV9zdGFydGVkX3dpdGhfZXJyb3IiKSx0aGlzLmRlc3Ryb3koKTtyZXR1cm59dGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLCJwaXBlbGluZV9zdGFydGVkIiksY29uc29sZS5sb2coIltQaXBlbGluZV0gUGlwZWxpbmUgc3RhcnRlZC4iKX1hc3luYyBkZXN0cm95KCl7Y29uc29sZS5sb2coIltQaXBlbGluZV0gRGVzdHJveWluZyBQaXBlbGluZS4iKTtmb3IobGV0IGUgb2YgdGhpcy50cmFuc2Zvcm1lcnNfKWUuc3RvcCgpfX1jbGFzcyBEaSBleHRlbmRzIFF0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx3KHRoaXMsInJlcG9ydGVyXyIpLHcodGhpcywicGlwZWxpbmVfIiksdyh0aGlzLCJ0cmFuc2Zvcm1lcnNfIiksdyh0aGlzLCJyZWFkYWJsZV8iKSx3KHRoaXMsIndyaXRhYmxlXyIpLHcodGhpcywidHJhY2tFeHBlY3RlZFJhdGVfIiksdGhpcy5yZXBvcnRlcl89bmV3IFp0LHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfPS0xLHRoaXMucmVwb3J0KHt2YXJpYXRpb246IkNyZWF0ZSJ9KX1zZXRUcmFja0V4cGVjdGVkUmF0ZShlKXt0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz1lLHRoaXMucGlwZWxpbmVfJiZ0aGlzLnBpcGVsaW5lXy5zZXRUcmFja0V4cGVjdGVkUmF0ZSh0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyl9dHJhbnNmb3JtKGUsdCl7cmV0dXJuIHRoaXMucmVhZGFibGVfPWUsdGhpcy53cml0YWJsZV89dCx0aGlzLnRyYW5zZm9ybUludGVybmFsKCl9dHJhbnNmb3JtSW50ZXJuYWwoKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMoZSx0KT0+e2lmKCF0aGlzLnRyYW5zZm9ybWVyc198fHRoaXMudHJhbnNmb3JtZXJzXy5sZW5ndGg9PT0wKXt0aGlzLnJlcG9ydCh7bWVzc2FnZTplZS5lcnJvcnMudHJhbnNmb3JtZXJfbm9uZSx2YXJpYXRpb246IkVycm9yIn0pLHQoIltNZWRpYVByb2Nlc3Nvcl0gTmVlZCB0byBzZXQgdHJhbnNmb3JtZXJzLiIpO3JldHVybn1pZighdGhpcy5yZWFkYWJsZV8pe3RoaXMucmVwb3J0KHt2YXJpYXRpb246IkVycm9yIixtZXNzYWdlOmVlLmVycm9ycy5yZWFkYWJsZV9udWxsfSksdCgiW01lZGlhUHJvY2Vzc29yXSBSZWFkYWJsZSBpcyBudWxsLiIpO3JldHVybn1pZighdGhpcy53cml0YWJsZV8pe3RoaXMucmVwb3J0KHt2YXJpYXRpb246IkVycm9yIixtZXNzYWdlOmVlLmVycm9ycy53cml0YWJsZV9udWxsfSksdCgiW01lZGlhUHJvY2Vzc29yXSBXcml0YWJsZSBpcyBudWxsLiIpO3JldHVybn1sZXQgbj0hMTt0aGlzLnBpcGVsaW5lXyYmKG49ITAsdGhpcy5waXBlbGluZV8uY2xlYXJMaXN0ZW5lcnMoKSx0aGlzLnBpcGVsaW5lXy5kZXN0cm95KCkpLHRoaXMucGlwZWxpbmVfPW5ldyBraSh0aGlzLnRyYW5zZm9ybWVyc18pLHRoaXMucGlwZWxpbmVfLm9uKCJ3YXJuIixvPT57dGhpcy5lbWl0KCJ3YXJuIixvKX0pLHRoaXMucGlwZWxpbmVfLm9uKCJlcnJvciIsbz0+e3RoaXMuZW1pdCgiZXJyb3IiLG8pfSksdGhpcy5waXBlbGluZV8ub24oInBpcGVsaW5lSW5mbyIsbz0+e24mJihvPT09InBpcGVsaW5lX3N0YXJ0ZWQiP289ZXIucGlwZWxpbmVfcmVzdGFydGVkOm89PT0icGlwZWxpbmVfc3RhcnRlZF93aXRoX2Vycm9yIiYmKG89ZXIucGlwZWxpbmVfcmVzdGFydGVkX3dpdGhfZXJyb3IpKSx0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIsbyl9KSx0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyE9LTEmJnRoaXMucGlwZWxpbmVfLnNldFRyYWNrRXhwZWN0ZWRSYXRlKHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfKSx0aGlzLnBpcGVsaW5lXy5zdGFydCh0aGlzLnJlYWRhYmxlXyx0aGlzLndyaXRhYmxlXykudGhlbigoKT0+e2UoKX0pLmNhdGNoKG89Pnt0KG8pfSl9KX1zZXRUcmFuc2Zvcm1lcnMoZSl7cmV0dXJuIHRoaXMucmVwb3J0KHt2YXJpYXRpb246IlVwZGF0ZSIsbWVzc2FnZTplZS51cGRhdGVzLnRyYW5zZm9ybWVyX25ld30pLHRoaXMudHJhbnNmb3JtZXJzXz1lLHRoaXMucmVhZGFibGVfJiZ0aGlzLndyaXRhYmxlXz90aGlzLnRyYW5zZm9ybUludGVybmFsKCk6UHJvbWlzZS5yZXNvbHZlKCl9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyBlPT57dGhpcy5waXBlbGluZV8mJnRoaXMucGlwZWxpbmVfLmRlc3Ryb3koKSx0aGlzLnJlcG9ydCh7dmFyaWF0aW9uOiJEZWxldGUifSksZSgpfSl9cmVwb3J0KGUpe3RoaXMucmVwb3J0ZXJfLnNlbmQoe3ZlcnNpb246aHQsYWN0aW9uOiJNZWRpYVByb2Nlc3NvciIsLi4uZX0pfX12YXIgQ2k9T2JqZWN0LmRlZmluZVByb3BlcnR5LEJpPShyLGUsdCk9PmUgaW4gcj9DaShyLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KTpyW2VdPXQsTWk9KHIsZSx0KT0+KEJpKHIsdHlwZW9mIGUhPSJzeW1ib2wiP2UrIiI6ZSx0KSx0KTtjb25zdCBPaT0iaGxnLnRva2JveC5jb20vcHJvZC9sb2dnaW5nL3ZjcF93ZWJydGMiLFVpPSJodHRwczovLyIsTmk9MWU0O2xldCBtdDtjb25zdCBMaT1uZXcgVWludDhBcnJheSgxNik7ZnVuY3Rpb24gemkoKXtpZighbXQmJihtdD10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLmdldFJhbmRvbVZhbHVlcyYmY3J5cHRvLmdldFJhbmRvbVZhbHVlcy5iaW5kKGNyeXB0byksIW10KSl0aHJvdyBuZXcgRXJyb3IoImNyeXB0by5nZXRSYW5kb21WYWx1ZXMoKSBub3Qgc3VwcG9ydGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkI2dldHJhbmRvbXZhbHVlcy1ub3Qtc3VwcG9ydGVkIik7cmV0dXJuIG10KExpKX1jb25zdCBCPVtdO2ZvcihsZXQgcj0wO3I8MjU2OysrcilCLnB1c2goKHIrMjU2KS50b1N0cmluZygxNikuc2xpY2UoMSkpO2Z1bmN0aW9uIEdpKHIsZT0wKXtyZXR1cm4oQltyW2UrMF1dK0JbcltlKzFdXStCW3JbZSsyXV0rQltyW2UrM11dKyItIitCW3JbZSs0XV0rQltyW2UrNV1dKyItIitCW3JbZSs2XV0rQltyW2UrN11dKyItIitCW3JbZSs4XV0rQltyW2UrOV1dKyItIitCW3JbZSsxMF1dK0JbcltlKzExXV0rQltyW2UrMTJdXStCW3JbZSsxM11dK0JbcltlKzE0XV0rQltyW2UrMTVdXSkudG9Mb3dlckNhc2UoKX1jb25zdCAkaT10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQmJmNyeXB0by5yYW5kb21VVUlELmJpbmQoY3J5cHRvKSx1bj17cmFuZG9tVVVJRDokaX07ZnVuY3Rpb24gV2kocixlLHQpe2lmKHVuLnJhbmRvbVVVSUQmJiFlJiYhcilyZXR1cm4gdW4ucmFuZG9tVVVJRCgpO3I9cnx8e307Y29uc3Qgbj1yLnJhbmRvbXx8KHIucm5nfHx6aSkoKTtpZihuWzZdPW5bNl0mMTV8NjQsbls4XT1uWzhdJjYzfDEyOCxlKXt0PXR8fDA7Zm9yKGxldCBvPTA7bzwxNjsrK28pZVt0K29dPW5bb107cmV0dXJuIGV9cmV0dXJuIEdpKG4pfWZ1bmN0aW9uIHRyKHIsZSl7Z2xvYmFsVGhpcy52b25hZ2V8fChnbG9iYWxUaGlzLnZvbmFnZT17fSksZ2xvYmFsVGhpcy52b25hZ2Uud29ya2VyaXplcnx8KGdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI9e30pO2xldCB0PWdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI7cmV0dXJuIHRbcl18fCh0W3JdPWUpLHRbcl19Y29uc3Qgb2U9dHIoImdsb2JhbHMiLHt9KTt2YXIgZ2U9KHI9PihyLklOSVQ9IklOSVQiLHIuRk9SV0FSRD0iRk9SV0FSRCIsci5URVJNSU5BVEU9IlRFUk1JTkFURSIsci5HTE9CQUxTX1NZTkM9IkdMT0JBTFNfU1lOQyIscikpKGdlfHx7fSk7ZnVuY3Rpb24gY24ocil7cmV0dXJuW0ltYWdlQml0bWFwLFJlYWRhYmxlU3RyZWFtLFdyaXRhYmxlU3RyZWFtXS5zb21lKGU9PnIgaW5zdGFuY2VvZiBlKX1sZXQgVmk9MDtmdW5jdGlvbiBIaShyLGUsdCxuLG8pe2NvbnN0IGk9VmkrKztyZXR1cm4gci5wb3N0TWVzc2FnZSh7aWQ6aSx0eXBlOmUsZnVuY3Rpb25OYW1lOnQsYXJnczpufSxuLmZpbHRlcihzPT5jbihzKSkpLG5ldyBQcm9taXNlKHM9PntvPT1udWxsfHxvLnNldChpLHMpfSl9ZnVuY3Rpb24gJGUocixlKXtjb25zdHtpZDp0LHR5cGU6bn09cixvPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07cG9zdE1lc3NhZ2Uoe2lkOnQsdHlwZTpuLHJlc3VsdDplfSxvLmZpbHRlcihpPT5jbihpKSkpfWNvbnN0IGZuPXRyKCJ3b3JrZXJpemVkIix7fSk7ZnVuY3Rpb24gbG4oKXtyZXR1cm4gdHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlfWFzeW5jIGZ1bmN0aW9uIGppKCl7aWYobG4oKSkkZSh7dHlwZTpnZS5HTE9CQUxTX1NZTkN9LG9lKTtlbHNle2NvbnN0IHI9W107Zm9yKGNvbnN0IGUgaW4gZm4pe2NvbnN0e3dvcmtlcjp0LHJlc29sdmVyczpufT1mbltlXS53b3JrZXJDb250ZXh0O3QmJnIucHVzaChIaSh0LGdlLkdMT0JBTFNfU1lOQywiIixbb2VdLG4pKX1hd2FpdCBQcm9taXNlLmFsbChyKX19ZnVuY3Rpb24gcHQocixlKXtpZihBcnJheS5pc0FycmF5KGUpKWUuc3BsaWNlKDAsZS5sZW5ndGgpO2Vsc2UgaWYodHlwZW9mIGU9PSJvYmplY3QiKWZvcihjb25zdCB0IGluIGUpZGVsZXRlIGVbdF07Zm9yKGNvbnN0IHQgaW4gcilBcnJheS5pc0FycmF5KHJbdF0pPyhlW3RdPVtdLHB0KHJbdF0sZVt0XSkpOnR5cGVvZiByW3RdPT0ib2JqZWN0Ij8oZVt0XT17fSxwdChyW3RdLGVbdF0pKTplW3RdPXJbdF19YXN5bmMgZnVuY3Rpb24gWWkocixlKXtjb25zdHtmdW5jdGlvbk5hbWU6dCxhcmdzOm59PXI7aWYoIWUuaW5zdGFuY2UpdGhyb3ciaW5zdGFuY2Ugbm90IGluaXRpYWxpemVkIjtpZighdCl0aHJvdyJtaXNzaW5nIGZ1bmN0aW9uIG5hbWUgdG8gY2FsbCI7aWYoIWUuaW5zdGFuY2VbdF0pdGhyb3dgdW5kZWZpbmVkIGZ1bmN0aW9uIFske3R9XSBpbiBjbGFzcyAke2UuaW5zdGFuY2UuY29uc3RydWN0b3Iud29ya2VySWR9YDskZShyLGF3YWl0IGUuaW5zdGFuY2VbdF0oLi4ubiE9bnVsbD9uOltdKSl9Y29uc3QgWGk9dHIoInJlZ2lzdGVyZWRXb3JrZXJzIix7fSk7ZnVuY3Rpb24gUWkocixlKXtpZighci5hcmdzKXRocm93Ik1pc3NpbmcgY2xhc3NOYW1lIHdoaWxlIGluaXRpYWxpemluZyB3b3JrZXIiO2NvbnN0W3Qsbl09ci5hcmdzLG89WGlbdF07aWYobyllLmluc3RhbmNlPW5ldyBvKHIuYXJncy5zbGljZSgxKSk7ZWxzZSB0aHJvd2B1bmtub3duIHdvcmtlciBjbGFzcyAke3R9YDtwdChuLG9lKSwkZShyLHR5cGVvZiBlLmluc3RhbmNlIT09dm9pZCAwKX1hc3luYyBmdW5jdGlvbiBxaShyLGUpe2NvbnN0e2FyZ3M6dH09cjtpZighZS5pbnN0YW5jZSl0aHJvdyJpbnN0YW5jZSBub3QgaW5pdGlhbGl6ZWQiO2xldCBuO2UuaW5zdGFuY2UudGVybWluYXRlJiYobj1hd2FpdCBlLmluc3RhbmNlLnRlcm1pbmF0ZSguLi50IT1udWxsP3Q6W10pKSwkZShyLG4pfWZ1bmN0aW9uIEtpKHIpe2lmKCFyLmFyZ3MpdGhyb3ciTWlzc2luZyBnbG9iYWxzIHdoaWxlIHN5bmNpbmciO3B0KHIuYXJnc1swXSxvZSksJGUocix7fSl9ZnVuY3Rpb24gSmkoKXtjb25zdCByPXt9O29ubWVzc2FnZT1hc3luYyBlPT57Y29uc3QgdD1lLmRhdGE7c3dpdGNoKHQudHlwZSl7Y2FzZSBnZS5JTklUOlFpKHQscik7YnJlYWs7Y2FzZSBnZS5GT1JXQVJEOllpKHQscik7YnJlYWs7Y2FzZSBnZS5URVJNSU5BVEU6cWkodCxyKTticmVhaztjYXNlIGdlLkdMT0JBTFNfU1lOQzpLaSh0KTticmVha319fWxuKCkmJkppKCk7ZnVuY3Rpb24gWmkocixlKXtyZXR1cm4gb2Vbcl18fChvZVtyXT1lKSxbKCk9Pm9lW3JdLGFzeW5jIHQ9PntvZVtyXT10LGF3YWl0IGppKCl9XX1mdW5jdGlvbiBlcyhyLGUpe3JldHVybiBaaShyLGUpfWNvbnN0W3RzLFZsXT1lcygibWV0YWRhdGEiKTtmdW5jdGlvbiBycigpe3JldHVybiB0cygpfWNsYXNzIHJze2NvbnN0cnVjdG9yKGUpe01pKHRoaXMsInV1aWQiLFdpKCkpLHRoaXMuY29uZmlnPWV9YXN5bmMgc2VuZChlKXt2YXIgdCxuLG87Y29uc3R7YXBwSWQ6aSxzb3VyY2VUeXBlOnN9PSh0PXJyKCkpIT1udWxsP3Q6e307aWYoIWl8fCFzKXJldHVybiJtZXRhZGF0YSBtaXNzaW5nIjtjb25zdCBhPW5ldyBBYm9ydENvbnRyb2xsZXIsdT1zZXRUaW1lb3V0KCgpPT5hLmFib3J0KCksTmkpO3JldHVybiBhd2FpdCgobz0obj10aGlzLmNvbmZpZyk9PW51bGw/dm9pZCAwOm4uZmV0Y2gpIT1udWxsP286ZmV0Y2gpKHRoaXMuZ2V0VXJsKCkse21ldGhvZDoiUE9TVCIsaGVhZGVyczp0aGlzLmdldEhlYWRlcnMoKSxib2R5OkpTT04uc3RyaW5naWZ5KHRoaXMuYnVpbGRSZXBvcnQoZSkpLHNpZ25hbDphLnNpZ25hbH0pLGNsZWFyVGltZW91dCh1KSwic3VjY2VzcyJ9Z2V0VXJsKCl7dmFyIGU7bGV0IHQ9KGU9cnIoKS5wcm94eVVybCkhPW51bGw/ZTpVaTtyZXR1cm4gdCs9KHQuYXQoLTEpPT09Ii8iPyIiOiIvIikrT2ksdH1nZXRIZWFkZXJzKCl7cmV0dXJueyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn19YnVpbGRSZXBvcnQoZSl7Y29uc3QgdD1ycigpO3JldHVybntndWlkOnRoaXMudXVpZCwuLi5lLGFwcGxpY2F0aW9uSWQ6dC5hcHBJZCx0aW1lc3RhbXA6RGF0ZS5ub3coKSxwcm94eVVybDp0LnByb3h5VXJsLHNvdXJjZTp0LnNvdXJjZVR5cGV9fX1jb25zdCBucz0iNS4xLjIiO3ZhciBndD0ocj0+KHIuTG93PSJMb3ciLHIuSGlnaD0iSGlnaCIscikpKGd0fHx7fSksbnI9KHI9PihyLkZBU1Q9IkZBU1QiLHIuUFJFQ0lTRT0iUFJFQ0lTRSIscikpKG5yfHx7fSkseXQ9KHI9PihyLkNBTlZBUz0iQ0FOVkFTIixyLldFQkdMPSJXRUJHTCIscikpKHl0fHx7fSksb3M9ZnVuY3Rpb24oKXt2YXIgcj10eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5jdXJyZW50U2NyaXB0P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjOnZvaWQgMDtyZXR1cm4gZnVuY3Rpb24oZSl7ZT1lfHx7fTt2YXIgdD10eXBlb2YgZTwidSI/ZTp7fSxuLG87dC5yZWFkeT1uZXcgUHJvbWlzZShmdW5jdGlvbihjLG0pe249YyxvPW19KTt2YXIgaT17fSxzO2ZvcihzIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShzKSYmKGlbc109dFtzXSk7dmFyIGE9Ii4vdGhpcy5wcm9ncmFtIix1PWZ1bmN0aW9uKGMsbSl7dGhyb3cgbX0sZj0hMCxkPSIiO2Z1bmN0aW9uIHAoYyl7cmV0dXJuIHQubG9jYXRlRmlsZT90LmxvY2F0ZUZpbGUoYyxkKTpkK2N9dmFyIGc7dHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQuY3VycmVudFNjcmlwdCYmKGQ9ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmMpLHImJihkPXIpLGQuaW5kZXhPZigiYmxvYjoiKSE9PTA/ZD1kLnN1YnN0cigwLGQucmVwbGFjZSgvWz8jXS4qLywiIikubGFzdEluZGV4T2YoIi8iKSsxKTpkPSIiO3ZhciBiPXQucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksaD10LnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtmb3IocyBpbiBpKWkuaGFzT3duUHJvcGVydHkocykmJih0W3NdPWlbc10pO2k9bnVsbCx0LmFyZ3VtZW50cyYmdC5hcmd1bWVudHMsdC50aGlzUHJvZ3JhbSYmKGE9dC50aGlzUHJvZ3JhbSksdC5xdWl0JiYodT10LnF1aXQpO3ZhciB4O3Qud2FzbUJpbmFyeSYmKHg9dC53YXNtQmluYXJ5KTt2YXIgRT10Lm5vRXhpdFJ1bnRpbWV8fCEwO3R5cGVvZiBXZWJBc3NlbWJseSE9Im9iamVjdCImJmRlKCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIik7dmFyIHYsRj0hMSxrPXR5cGVvZiBUZXh0RGVjb2RlcjwidSI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwO2Z1bmN0aW9uIEcoYyxtLHkpe2Zvcih2YXIgVD1tK3ksRD1tO2NbRF0mJiEoRD49VCk7KSsrRDtpZihELW0+MTYmJmMuc3ViYXJyYXkmJmspcmV0dXJuIGsuZGVjb2RlKGMuc3ViYXJyYXkobSxEKSk7Zm9yKHZhciBNPSIiO208RDspe3ZhciBBPWNbbSsrXTtpZighKEEmMTI4KSl7TSs9U3RyaW5nLmZyb21DaGFyQ29kZShBKTtjb250aW51ZX12YXIgVT1jW20rK10mNjM7aWYoKEEmMjI0KT09MTkyKXtNKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChBJjMxKTw8NnxVKTtjb250aW51ZX12YXIgSz1jW20rK10mNjM7aWYoKEEmMjQwKT09MjI0P0E9KEEmMTUpPDwxMnxVPDw2fEs6QT0oQSY3KTw8MTh8VTw8MTJ8Szw8NnxjW20rK10mNjMsQTw2NTUzNilNKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEEpO2Vsc2V7dmFyIEdvPUEtNjU1MzY7TSs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxHbz4+MTAsNTYzMjB8R28mMTAyMyl9fXJldHVybiBNfWZ1bmN0aW9uIHooYyxtKXtyZXR1cm4gYz9HKGxlLGMsbSk6IiJ9ZnVuY3Rpb24gSChjLG0seSl7Zm9yKHZhciBUPTA7VDxjLmxlbmd0aDsrK1QpVGVbbSsrPj4wXT1jLmNoYXJDb2RlQXQoVCk7eXx8KFRlW20+PjBdPTApfWZ1bmN0aW9uICQoYyxtKXtyZXR1cm4gYyVtPjAmJihjKz1tLWMlbSksY312YXIgS2UsVGUsbGUsVztmdW5jdGlvbiBCbyhjKXtLZT1jLHQuSEVBUDg9VGU9bmV3IEludDhBcnJheShjKSx0LkhFQVAxNj1uZXcgSW50MTZBcnJheShjKSx0LkhFQVAzMj1XPW5ldyBJbnQzMkFycmF5KGMpLHQuSEVBUFU4PWxlPW5ldyBVaW50OEFycmF5KGMpLHQuSEVBUFUxNj1uZXcgVWludDE2QXJyYXkoYyksdC5IRUFQVTMyPW5ldyBVaW50MzJBcnJheShjKSx0LkhFQVBGMzI9bmV3IEZsb2F0MzJBcnJheShjKSx0LkhFQVBGNjQ9bmV3IEZsb2F0NjRBcnJheShjKX10LklOSVRJQUxfTUVNT1JZO3ZhciBXcixNbz1bXSxPbz1bXSxVbz1bXSxpbD0wO2Z1bmN0aW9uIHNsKCl7cmV0dXJuIEV8fGlsPjB9ZnVuY3Rpb24gYWwoKXtpZih0LnByZVJ1bilmb3IodHlwZW9mIHQucHJlUnVuPT0iZnVuY3Rpb24iJiYodC5wcmVSdW49W3QucHJlUnVuXSk7dC5wcmVSdW4ubGVuZ3RoOylmbCh0LnByZVJ1bi5zaGlmdCgpKTtWcihNbyl9ZnVuY3Rpb24gdWwoKXtWcihPbyl9ZnVuY3Rpb24gY2woKXtpZih0LnBvc3RSdW4pZm9yKHR5cGVvZiB0LnBvc3RSdW49PSJmdW5jdGlvbiImJih0LnBvc3RSdW49W3QucG9zdFJ1bl0pO3QucG9zdFJ1bi5sZW5ndGg7KWRsKHQucG9zdFJ1bi5zaGlmdCgpKTtWcihVbyl9ZnVuY3Rpb24gZmwoYyl7TW8udW5zaGlmdChjKX1mdW5jdGlvbiBsbChjKXtPby51bnNoaWZ0KGMpfWZ1bmN0aW9uIGRsKGMpe1VvLnVuc2hpZnQoYyl9dmFyIHdlPTAsSmU9bnVsbDtmdW5jdGlvbiBobChjKXt3ZSsrLHQubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmdC5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKHdlKX1mdW5jdGlvbiBtbChjKXtpZih3ZS0tLHQubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmdC5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKHdlKSx3ZT09MCYmSmUpe3ZhciBtPUplO0plPW51bGwsbSgpfX10LnByZWxvYWRlZEltYWdlcz17fSx0LnByZWxvYWRlZEF1ZGlvcz17fTtmdW5jdGlvbiBkZShjKXt0Lm9uQWJvcnQmJnQub25BYm9ydChjKSxjPSJBYm9ydGVkKCIrYysiKSIsaChjKSxGPSEwLGMrPSIuIEJ1aWxkIHdpdGggLXMgQVNTRVJUSU9OUz0xIGZvciBtb3JlIGluZm8uIjt2YXIgbT1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKGMpO3Rocm93IG8obSksbX12YXIgcGw9ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiO2Z1bmN0aW9uIE5vKGMpe3JldHVybiBjLnN0YXJ0c1dpdGgocGwpfXZhciBYO1g9InRmbGl0ZS1zaW1kLndhc20iLE5vKFgpfHwoWD1wKFgpKTtmdW5jdGlvbiBMbyhjKXt0cnl7aWYoYz09WCYmeClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeCk7aWYoIWcpdGhyb3ciYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifWNhdGNoKG0pe2RlKG0pfX1mdW5jdGlvbiBnbCgpe3JldHVybiF4JiZmJiZ0eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiI/ZmV0Y2goWCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oYyl7aWYoIWMub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitYKyInIjtyZXR1cm4gYy5hcnJheUJ1ZmZlcigpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gTG8oWCl9KTpQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIExvKFgpfSl9ZnVuY3Rpb24geWwoKXt2YXIgYz17YTpObH07ZnVuY3Rpb24gbShBLFUpe3ZhciBLPUEuZXhwb3J0czt0LmFzbT1LLHY9dC5hc20ucSxCbyh2LmJ1ZmZlciksV3I9dC5hc20uRSxsbCh0LmFzbS5yKSxtbCgpfWhsKCk7ZnVuY3Rpb24geShBKXttKEEuaW5zdGFuY2UpfWZ1bmN0aW9uIFQoQSl7cmV0dXJuIGdsKCkudGhlbihmdW5jdGlvbihVKXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoVSxjKX0pLnRoZW4oZnVuY3Rpb24oVSl7cmV0dXJuIFV9KS50aGVuKEEsZnVuY3Rpb24oVSl7aCgiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIitVKSxkZShVKX0pfWZ1bmN0aW9uIEQoKXtyZXR1cm4heCYmdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nPT0iZnVuY3Rpb24iJiYhTm8oWCkmJnR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIj9mZXRjaChYLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihBKXt2YXIgVT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhBLGMpO3JldHVybiBVLnRoZW4oeSxmdW5jdGlvbihLKXtyZXR1cm4gaCgid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrSyksaCgiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSxUKHkpfSl9KTpUKHkpfWlmKHQuaW5zdGFudGlhdGVXYXNtKXRyeXt2YXIgTT10Lmluc3RhbnRpYXRlV2FzbShjLG0pO3JldHVybiBNfWNhdGNoKEEpe3JldHVybiBoKCJNb2R1bGUuaW5zdGFudGlhdGVXYXNtIGNhbGxiYWNrIGZhaWxlZCB3aXRoIGVycm9yOiAiK0EpLCExfXJldHVybiBEKCkuY2F0Y2gobykse319ZnVuY3Rpb24gVnIoYyl7Zm9yKDtjLmxlbmd0aD4wOyl7dmFyIG09Yy5zaGlmdCgpO2lmKHR5cGVvZiBtPT0iZnVuY3Rpb24iKXttKHQpO2NvbnRpbnVlfXZhciB5PW0uZnVuYzt0eXBlb2YgeT09Im51bWJlciI/bS5hcmc9PT12b2lkIDA/V3IuZ2V0KHkpKCk6V3IuZ2V0KHkpKG0uYXJnKTp5KG0uYXJnPT09dm9pZCAwP251bGw6bS5hcmcpfX1mdW5jdGlvbiBibChjLG0seSxUKXtkZSgiQXNzZXJ0aW9uIGZhaWxlZDogIit6KGMpKyIsIGF0OiAiK1ttP3oobSk6InVua25vd24gZmlsZW5hbWUiLHksVD96KFQpOiJ1bmtub3duIGZ1bmN0aW9uIl0pfWZ1bmN0aW9uIHhsKGMsbSl7ZGUoIlRvIHVzZSBkbG9wZW4sIHlvdSBuZWVkIHRvIHVzZSBFbXNjcmlwdGVuJ3MgbGlua2luZyBzdXBwb3J0LCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2Vtc2NyaXB0ZW4tY29yZS9lbXNjcmlwdGVuL3dpa2kvTGlua2luZyIpfWZ1bmN0aW9uIF9sKGMsbSl7ZGUoIlRvIHVzZSBkbG9wZW4sIHlvdSBuZWVkIHRvIHVzZSBFbXNjcmlwdGVuJ3MgbGlua2luZyBzdXBwb3J0LCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2Vtc2NyaXB0ZW4tY29yZS9lbXNjcmlwdGVuL3dpa2kvTGlua2luZyIpfWZ1bmN0aW9uIHZsKCl7ZGUoIiIpfXZhciBHdDtHdD1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX07dmFyIEVsPSEwO2Z1bmN0aW9uIFRsKGMpe3JldHVybiBXW3pvKCk+PjJdPWMsY31mdW5jdGlvbiB3bChjLG0pe3ZhciB5O2lmKGM9PT0wKXk9RGF0ZS5ub3coKTtlbHNlIGlmKChjPT09MXx8Yz09PTQpJiZFbCl5PUd0KCk7ZWxzZSByZXR1cm4gVGwoMjgpLC0xO3JldHVybiBXW20+PjJdPXkvMWUzfDAsV1ttKzQ+PjJdPXklMWUzKjFlMyoxZTN8MCwwfWZ1bmN0aW9uIEFsKCl7cmV0dXJuIDIxNDc0ODM2NDh9ZnVuY3Rpb24gSWwoYyxtLHkpe2xlLmNvcHlXaXRoaW4oYyxtLG0reSl9ZnVuY3Rpb24gU2woYyl7dHJ5e3JldHVybiB2Lmdyb3coYy1LZS5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpLEJvKHYuYnVmZmVyKSwxfWNhdGNoe319ZnVuY3Rpb24gUmwoYyl7dmFyIG09bGUubGVuZ3RoO2M9Yz4+PjA7dmFyIHk9MjE0NzQ4MzY0ODtpZihjPnkpcmV0dXJuITE7Zm9yKHZhciBUPTE7VDw9NDtUKj0yKXt2YXIgRD1tKigxKy4yL1QpO0Q9TWF0aC5taW4oRCxjKzEwMDY2MzI5Nik7dmFyIE09TWF0aC5taW4oeSwkKE1hdGgubWF4KGMsRCksNjU1MzYpKSxBPVNsKE0pO2lmKEEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gRmwoYyl7Zm9yKHZhciBtPUd0KCk7R3QoKS1tPGM7KTt9dmFyIEhyPXt9O2Z1bmN0aW9uIFBsKCl7cmV0dXJuIGF8fCIuL3RoaXMucHJvZ3JhbSJ9ZnVuY3Rpb24gWmUoKXtpZighWmUuc3RyaW5ncyl7dmFyIGM9KHR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsbT17VVNFUjoid2ViX3VzZXIiLExPR05BTUU6IndlYl91c2VyIixQQVRIOiIvIixQV0Q6Ii8iLEhPTUU6Ii9ob21lL3dlYl91c2VyIixMQU5HOmMsXzpQbCgpfTtmb3IodmFyIHkgaW4gSHIpSHJbeV09PT12b2lkIDA/ZGVsZXRlIG1beV06bVt5XT1Iclt5XTt2YXIgVD1bXTtmb3IodmFyIHkgaW4gbSlULnB1c2goeSsiPSIrbVt5XSk7WmUuc3RyaW5ncz1UfXJldHVybiBaZS5zdHJpbmdzfXZhciAkdD17bWFwcGluZ3M6e30sYnVmZmVyczpbbnVsbCxbXSxbXV0scHJpbnRDaGFyOmZ1bmN0aW9uKGMsbSl7dmFyIHk9JHQuYnVmZmVyc1tjXTttPT09MHx8bT09PTEwPygoYz09PTE/YjpoKShHKHksMCkpLHkubGVuZ3RoPTApOnkucHVzaChtKX0sdmFyYXJnczp2b2lkIDAsZ2V0OmZ1bmN0aW9uKCl7JHQudmFyYXJncys9NDt2YXIgYz1XWyR0LnZhcmFyZ3MtND4+Ml07cmV0dXJuIGN9LGdldFN0cjpmdW5jdGlvbihjKXt2YXIgbT16KGMpO3JldHVybiBtfSxnZXQ2NDpmdW5jdGlvbihjLG0pe3JldHVybiBjfX07ZnVuY3Rpb24ga2woYyxtKXt2YXIgeT0wO3JldHVybiBaZSgpLmZvckVhY2goZnVuY3Rpb24oVCxEKXt2YXIgTT1tK3k7V1tjK0QqND4+Ml09TSxIKFQsTSkseSs9VC5sZW5ndGgrMX0pLDB9ZnVuY3Rpb24gRGwoYyxtKXt2YXIgeT1aZSgpO1dbYz4+Ml09eS5sZW5ndGg7dmFyIFQ9MDtyZXR1cm4geS5mb3JFYWNoKGZ1bmN0aW9uKEQpe1QrPUQubGVuZ3RoKzF9KSxXW20+PjJdPVQsMH1mdW5jdGlvbiBDbChjKXt6bChjKX1mdW5jdGlvbiBCbChjKXtyZXR1cm4gMH1mdW5jdGlvbiBNbChjLG0seSxULEQpe31mdW5jdGlvbiBPbChjLG0seSxUKXtmb3IodmFyIEQ9MCxNPTA7TTx5O00rKyl7Zm9yKHZhciBBPVdbbStNKjg+PjJdLFU9V1ttKyhNKjgrNCk+PjJdLEs9MDtLPFU7SysrKSR0LnByaW50Q2hhcihjLGxlW0ErS10pO0QrPVV9cmV0dXJuIFdbVD4+Ml09RCwwfWZ1bmN0aW9uIFVsKCl7aWYodHlwZW9mIGNyeXB0bz09Im9iamVjdCImJnR5cGVvZiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzPT0iZnVuY3Rpb24iKXt2YXIgYz1uZXcgVWludDhBcnJheSgxKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhjKSxjWzBdfX1lbHNlIHJldHVybiBmdW5jdGlvbigpe2RlKCJyYW5kb21EZXZpY2UiKX19ZnVuY3Rpb24gV3QoYyxtKXtXdC5yYW5kb21EZXZpY2V8fChXdC5yYW5kb21EZXZpY2U9VWwoKSk7Zm9yKHZhciB5PTA7eTxtO3krKylUZVtjK3k+PjBdPVd0LnJhbmRvbURldmljZSgpO3JldHVybiAwfXZhciBObD17YTpibCxlOnhsLGQ6X2wsYjp2bCxuOndsLGg6QWwsbDpJbCxtOlJsLHA6RmwsZjprbCxnOkRsLGo6Q2wsaTpCbCxrOk1sLGM6T2wsbzpXdH07eWwoKSx0Ll9fX3dhc21fY2FsbF9jdG9ycz1mdW5jdGlvbigpe3JldHVybih0Ll9fX3dhc21fY2FsbF9jdG9ycz10LmFzbS5yKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHQuX2dldE1vZGVsQnVmZmVyTWVtb3J5T2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuKHQuX2dldE1vZGVsQnVmZmVyTWVtb3J5T2Zmc2V0PXQuYXNtLnMpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdC5fZ2V0SW5wdXRNZW1vcnlPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4odC5fZ2V0SW5wdXRNZW1vcnlPZmZzZXQ9dC5hc20udCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx0Ll9nZXRJbnB1dEhlaWdodD1mdW5jdGlvbigpe3JldHVybih0Ll9nZXRJbnB1dEhlaWdodD10LmFzbS51KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHQuX2dldElucHV0V2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4odC5fZ2V0SW5wdXRXaWR0aD10LmFzbS52KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHQuX2dldElucHV0Q2hhbm5lbENvdW50PWZ1bmN0aW9uKCl7cmV0dXJuKHQuX2dldElucHV0Q2hhbm5lbENvdW50PXQuYXNtLncpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdC5fZ2V0T3V0cHV0TWVtb3J5T2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuKHQuX2dldE91dHB1dE1lbW9yeU9mZnNldD10LmFzbS54KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHQuX2dldE91dHB1dEhlaWdodD1mdW5jdGlvbigpe3JldHVybih0Ll9nZXRPdXRwdXRIZWlnaHQ9dC5hc20ueSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx0Ll9nZXRPdXRwdXRXaWR0aD1mdW5jdGlvbigpe3JldHVybih0Ll9nZXRPdXRwdXRXaWR0aD10LmFzbS56KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHQuX2dldE91dHB1dENoYW5uZWxDb3VudD1mdW5jdGlvbigpe3JldHVybih0Ll9nZXRPdXRwdXRDaGFubmVsQ291bnQ9dC5hc20uQSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx0Ll9sb2FkTW9kZWw9ZnVuY3Rpb24oKXtyZXR1cm4odC5fbG9hZE1vZGVsPXQuYXNtLkIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdC5fcnVuSW5mZXJlbmNlPWZ1bmN0aW9uKCl7cmV0dXJuKHQuX3J1bkluZmVyZW5jZT10LmFzbS5DKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHQuX2lzR1BVRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybih0Ll9pc0dQVUVuYWJsZWQ9dC5hc20uRCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgem89dC5fX19lcnJub19sb2NhdGlvbj1mdW5jdGlvbigpe3JldHVybih6bz10Ll9fX2Vycm5vX2xvY2F0aW9uPXQuYXNtLkYpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVnQ7ZnVuY3Rpb24gTGwoYyl7dGhpcy5uYW1lPSJFeGl0U3RhdHVzIix0aGlzLm1lc3NhZ2U9IlByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoIitjKyIpIix0aGlzLnN0YXR1cz1jfUplPWZ1bmN0aW9uIGMoKXtWdHx8anIoKSxWdHx8KEplPWMpfTtmdW5jdGlvbiBqcihjKXtpZih3ZT4wfHwoYWwoKSx3ZT4wKSlyZXR1cm47ZnVuY3Rpb24gbSgpe1Z0fHwoVnQ9ITAsdC5jYWxsZWRSdW49ITAsIUYmJih1bCgpLG4odCksdC5vblJ1bnRpbWVJbml0aWFsaXplZCYmdC5vblJ1bnRpbWVJbml0aWFsaXplZCgpLGNsKCkpKX10LnNldFN0YXR1cz8odC5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe3Quc2V0U3RhdHVzKCIiKX0sMSksbSgpfSwxKSk6bSgpfXQucnVuPWpyO2Z1bmN0aW9uIHpsKGMsbSl7R2woYyl9ZnVuY3Rpb24gR2woYyl7c2woKXx8KHQub25FeGl0JiZ0Lm9uRXhpdChjKSxGPSEwKSx1KGMsbmV3IExsKGMpKX1pZih0LnByZUluaXQpZm9yKHR5cGVvZiB0LnByZUluaXQ9PSJmdW5jdGlvbiImJih0LnByZUluaXQ9W3QucHJlSW5pdF0pO3QucHJlSW5pdC5sZW5ndGg+MDspdC5wcmVJbml0LnBvcCgpKCk7cmV0dXJuIGpyKCksZS5yZWFkeX19KCk7Y2xhc3MgaXN7Y29uc3RydWN0b3IoKXtsKHRoaXMsInNlbGVjdGVkVEZMaXRlIik7bCh0aGlzLCJpc1NJTURTdXBwb3J0ZWQiLCExKTtsKHRoaXMsImlzVGhyZWFkc1N1cHBvcnRlZCIsITEpO2wodGhpcywiaW5wdXRXaWR0aCIsMCk7bCh0aGlzLCJpbnB1dEhlaWdodCIsMCk7bCh0aGlzLCJpbnB1dENoYW5uZWxDb3VudCIsMCk7bCh0aGlzLCJpbnB1dE1lbW9yeU9mZnNldCIsMCk7bCh0aGlzLCJvdXRwdXRXaWR0aCIsMCk7bCh0aGlzLCJvdXRwdXRIZWlnaHQiLDApO2wodGhpcywib3V0cHV0Q2hhbm5lbENvdW50IiwwKTtsKHRoaXMsIm91dHB1dE1lbW9yeU9mZnNldCIsMCl9fWNvbnN0IHNzPSJodHRwczovL2Qzb3Bxam1xenhmMDU3LmNsb3VkZnJvbnQubmV0L3ZvbmFnZS10ZW5zb3JmbG93LXdhc20vdGZsaXRlLXNpbWQtd2FzbS8xLjEuMy8iLGFzPSJodHRwczovL2Qzb3Bxam1xenhmMDU3LmNsb3VkZnJvbnQubmV0L21sL3NlbGZpZV9zZWdtZW50YXRpb24vNC4wLjAvIjthc3luYyBmdW5jdGlvbiB1cyhyPXNzLGU9YXMpe2xldCB0PW5ldyBpczt2YXIgbj1uZXcgUHJvbWlzZShmdW5jdGlvbihvLGkpe2FzeW5jIGZ1bmN0aW9uIHMoKXtyZXR1cm4gb3Moe2xvY2F0ZUZpbGU6ZnVuY3Rpb24oZil7cmV0dXJuIHIrZn19KX1hc3luYyBmdW5jdGlvbiBhKHUpe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyhmLGQpPT57Y29uc3QgcD11O2lmKHR5cGVvZiBwPiJ1IilyZXR1cm4gZCgiVEZMaXRlIGJhY2tlbmQgdW5hdmFpbGFibGU6IHdhc21TaW1kIik7Y29uc3QgZz0ic2VsZmllX3NlZ21lbnRhdGlvbl9sYW5kc2NhcGUiO2NvbnNvbGUubG9nKCJMb2FkaW5nIHRmbGl0ZSBtb2RlbDoiLGcpO2xldCBiPWUrYCR7Z30udGZsaXRlYDtjb25zb2xlLmxvZygiVEZMaXRlIG1vZGVsVXJsOiAiK2IpO3RyeXtjb25zdCB4PWF3YWl0KGF3YWl0IGZldGNoKGIpKS5hcnJheUJ1ZmZlcigpO2NvbnNvbGUubG9nKCJNb2RlbCBidWZmZXIgc2l6ZToiLHguYnl0ZUxlbmd0aCk7Y29uc3QgRT1wLl9nZXRNb2RlbEJ1ZmZlck1lbW9yeU9mZnNldCgpO2NvbnNvbGUubG9nKCJNb2RlbCBidWZmZXIgbWVtb3J5IG9mZnNldDoiLEUpLGNvbnNvbGUubG9nKCJMb2FkaW5nIG1vZGVsIGJ1ZmZlci4uLiIpLHAuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh4KSxFKTtjb25zdCB2PXAuX2xvYWRNb2RlbCh4LmJ5dGVMZW5ndGgpO2lmKGNvbnNvbGUubG9nKCJMb2FkIG1vZGVsIHJlc3VsdDoiLHYpLHYhPT0wKXtkKCJDYW5ub3QgbG9hZCBtb2RlbCIpO3JldHVybn10LmlucHV0V2lkdGg9cC5fZ2V0SW5wdXRXaWR0aCgpLHQuaW5wdXRIZWlnaHQ9cC5fZ2V0SW5wdXRIZWlnaHQoKSx0LmlucHV0Q2hhbm5lbENvdW50PXAuX2dldElucHV0Q2hhbm5lbENvdW50KCksdC5pbnB1dE1lbW9yeU9mZnNldD1wLl9nZXRJbnB1dE1lbW9yeU9mZnNldCgpLGNvbnNvbGUubG9nKCJJbnB1dCBtZW1vcnkgb2Zmc2V0OiIsdC5pbnB1dE1lbW9yeU9mZnNldCksY29uc29sZS5sb2coIklucHV0IGhlaWdodDoiLHQuaW5wdXRIZWlnaHQpLGNvbnNvbGUubG9nKCJJbnB1dCB3aWR0aDoiLHQuaW5wdXRXaWR0aCksY29uc29sZS5sb2coIklucHV0IGNoYW5uZWxzOiIsdC5pbnB1dENoYW5uZWxDb3VudCksdC5vdXRwdXRNZW1vcnlPZmZzZXQ9cC5fZ2V0T3V0cHV0TWVtb3J5T2Zmc2V0KCksdC5vdXRwdXRXaWR0aD1wLl9nZXRPdXRwdXRXaWR0aCgpLHQub3V0cHV0SGVpZ2h0PXAuX2dldE91dHB1dEhlaWdodCgpLHQub3V0cHV0Q2hhbm5lbENvdW50PXAuX2dldE91dHB1dENoYW5uZWxDb3VudCgpLGNvbnNvbGUubG9nKCJPdXRwdXQgbWVtb3J5IG9mZnNldDoiLHQub3V0cHV0TWVtb3J5T2Zmc2V0KSxjb25zb2xlLmxvZygiT3V0cHV0IGhlaWdodDoiLHQub3V0cHV0SGVpZ2h0KSxjb25zb2xlLmxvZygiT3V0cHV0IHdpZHRoOiIsdC5vdXRwdXRXaWR0aCksY29uc29sZS5sb2coIk91dHB1dCBjaGFubmVsczoiLHQub3V0cHV0Q2hhbm5lbENvdW50KSx0LnNlbGVjdGVkVEZMaXRlPXB9Y2F0Y2goaCl7ZChoKTtyZXR1cm59ZigpfSl9cygpLnRoZW4odT0+e2lmKHU9PT1udWxsKXRocm93IGNvbnNvbGUuZXJyb3IoImxvYWRURkxpdGUgbnVsbCIpLCJsb2FkVEZMaXRlIG51bGwiO2EodSkudGhlbihmPT57byh0KX0pLmNhdGNoKGY9Pntjb25zb2xlLmVycm9yKCJsb2FkVEZMaXRlTW9kZWwgZXJyb3IiKSxpKCJsb2FkVEZMaXRlTW9kZWwgZXJyb3IiKX0pfSkuY2F0Y2godT0+e2NvbnNvbGUuZXJyb3IoImxvYWRURkxpdGUgZXJyb3I6Iix1KSxpKCJsb2FkVEZMaXRlIGVycm9yOiIrdSl9KX0pO3JldHVybiBufWNsYXNzIGNze2NvbnN0cnVjdG9yKCl7bCh0aGlzLCJjYW52YXMiLG5ldyBPZmZzY3JlZW5DYW52YXMoMCwwKSk7bCh0aGlzLCJjb250ZXh0Iix0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pKTtsKHRoaXMsInBpeGVsQ291bnQiLDApO2wodGhpcywiaW5wdXRPZmZzZXQiLDApO2wodGhpcywib3V0cHV0T2Zmc2V0IiwwKTtsKHRoaXMsImluZm9zIik7bCh0aGlzLCJtYXNrIil9YXN5bmMgaW5pdChlLHQpe2F3YWl0IHRoaXMuaW5pdFdhc20oZSx0KSx0aGlzLmluZm9zJiYodGhpcy5jYW52YXMud2lkdGg9dGhpcy5pbmZvcy5pbnB1dFdpZHRoLHRoaXMuY2FudmFzLmhlaWdodD10aGlzLmluZm9zLmlucHV0SGVpZ2h0LHRoaXMucGl4ZWxDb3VudD10aGlzLmluZm9zLmlucHV0V2lkdGgqdGhpcy5pbmZvcy5pbnB1dEhlaWdodCx0aGlzLm1hc2s9bmV3IEltYWdlRGF0YSh0aGlzLmluZm9zLmlucHV0V2lkdGgsdGhpcy5pbmZvcy5pbnB1dEhlaWdodCksdGhpcy5pbnB1dE9mZnNldD10aGlzLmluZm9zLmlucHV0TWVtb3J5T2Zmc2V0LzQsdGhpcy5vdXRwdXRPZmZzZXQ9dGhpcy5pbmZvcy5vdXRwdXRNZW1vcnlPZmZzZXQvNCl9YXN5bmMgaW5pdFdhc20oZSx0KXt0aGlzLmluZm9zPWF3YWl0IHVzKGUsdCl9Z2V0T3V0cHV0RGltZW5zaW9ucygpe3ZhciBlLHQsbixvO3JldHVybnt3aWR0aDoodD0oZT10aGlzLmluZm9zKT09bnVsbD92b2lkIDA6ZS5vdXRwdXRXaWR0aCkhPW51bGw/dDowLGhlaWdodDoobz0obj10aGlzLmluZm9zKT09bnVsbD92b2lkIDA6bi5vdXRwdXRIZWlnaHQpIT1udWxsP286MH19YXN5bmMgcHJvY2VzcyhlKXtpZighdGhpcy5tYXNrfHwhdGhpcy5pbmZvcylyZXR1cm47Y29uc3QgdD10aGlzLmluZm9zLmlucHV0V2lkdGgsbj10aGlzLmluZm9zLmlucHV0SGVpZ2h0O3RoaXMuY29udGV4dC5kcmF3SW1hZ2UoZSwwLDAsZS53aWR0aCxlLmhlaWdodCwwLDAsdCxuKTtjb25zdCBvPXRoaXMuY29udGV4dC5nZXRJbWFnZURhdGEoMCwwLHQsbiksaT10aGlzLmluZm9zLnNlbGVjdGVkVEZMaXRlLkhFQVBGMzI7Zm9yKGxldCBzPTA7czx0aGlzLnBpeGVsQ291bnQ7cysrKXtjb25zdCBhPXRoaXMuaW5wdXRPZmZzZXQrcyozO2lbYV09by5kYXRhW3MqNF0vMjU1LGlbYSsxXT1vLmRhdGFbcyo0KzFdLzI1NSxpW2ErMl09by5kYXRhW3MqNCsyXS8yNTV9dGhpcy5pbmZvcy5zZWxlY3RlZFRGTGl0ZS5fcnVuSW5mZXJlbmNlKCk7Zm9yKGxldCBzPTA7czx0aGlzLnBpeGVsQ291bnQ7cysrKXtjb25zdCBhPXRoaXMuaW5mb3Muc2VsZWN0ZWRURkxpdGUuSEVBUEYzMlt0aGlzLm91dHB1dE9mZnNldCtzXTt0aGlzLm1hc2suZGF0YVtzKjRdPXRoaXMubWFzay5kYXRhW3MqNCszXT0yNTUqYX1yZXR1cm4gY3JlYXRlSW1hZ2VCaXRtYXAodGhpcy5tYXNrKX1pc0dwdVN1cHBvcnRlZCgpe3ZhciBlLHQsbjtyZXR1cm4obj0odD0oZT10aGlzLmluZm9zKT09bnVsbD92b2lkIDA6ZS5zZWxlY3RlZFRGTGl0ZSk9PW51bGw/dm9pZCAwOnQuX2lzR1BVRW5hYmxlZCgpKSE9bnVsbD9uOiExfX1mdW5jdGlvbiBmcygpe3JldHVybiBuZXcgT2Zmc2NyZWVuQ2FudmFzKDAsMCkuZ2V0Q29udGV4dCgid2ViZ2wyIix7ZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDohMH0pP3tzdXBwb3J0ZWQ6ITB9OntzdXBwb3J0ZWQ6ITEsbWVzc2FnZToiWW91ciBoYXJkd2FyZSBkb2VzIG5vdCBwZXJmb3JtIGdvb2QgZW5vdWdoIHRvIHJ1biB0aGUgbGlicmFyeSBlZmZpY2llbnRseSJ9fWNsYXNzIG9ye2NvbnN0cnVjdG9yKCl7bCh0aGlzLCJjYW52YXMiKTtsKHRoaXMsImNvbnRleHQiKTtjb25zdCBlPW5ldyBPZmZzY3JlZW5DYW52YXMoMCwwKSx0PWUuZ2V0Q29udGV4dCgiMmQiKTtpZighdCl0aHJvdyJGYWlsIHRvIHJldHJpZXZlIHdlYmdsMiBjb250ZXh0Ijt0aGlzLmNhbnZhcz1lLHRoaXMuY29udGV4dD10fXNldEZsaWNrZXJpbmdPcHRpb25zKGUpe31lbmFibGVQb3N0UHJvY2Vzc2luZygpe31kaXNhYmxlUG9zdFByb2Nlc3NpbmcoKXt9YXN5bmMgcHJvZmlsZVdlYmdsKGUpe3JldHVybltdfWFzeW5jIHJlbmRlcihlLHQpe3JldHVybiB0aGlzLmNhbnZhc31yZXNpemVDYW52YXMoZSl7Y29uc3R7d2lkdGg6dCxoZWlnaHQ6bn09ZTt0aGlzLmNhbnZhcy53aWR0aD10LHRoaXMuY2FudmFzLmhlaWdodD1ufXJlbmRlclNpbGhvdWV0dGUoZSx0LG49Im5vbmUiKXtjb25zdHt3aWR0aDpvLGhlaWdodDppfT1lO3RoaXMuY29udGV4dC5zYXZlKCksdGhpcy5jb250ZXh0LmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0LDAsMCxvLGkpLHRoaXMuY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsdGhpcy5jb250ZXh0LmZpbHRlcj1uLHRoaXMuY29udGV4dC5kcmF3SW1hZ2UoZSwwLDAsbyxpLDAsMCx0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHQpLHRoaXMuY29udGV4dC5yZXN0b3JlKCl9fWNsYXNzIGxzIGV4dGVuZHMgb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnJhZGl1cz1lfWFzeW5jIHJlbmRlcihlLHQpe3JldHVybiBzdXBlci5yZXNpemVDYW52YXMoZSksdGhpcy5yZW5kZXJTaWxob3VldHRlKGUsdCksdGhpcy5jb250ZXh0LnNhdmUoKSx0aGlzLmNvbnRleHQuZmlsdGVyPWBibHVyKCR7dGhpcy5yYWRpdXN9cHgpYCx0aGlzLmNvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIix0aGlzLmNvbnRleHQuZHJhd0ltYWdlKGUsMCwwLGUud2lkdGgsZS5oZWlnaHQpLHRoaXMuY29udGV4dC5yZXN0b3JlKCksc3VwZXIucmVuZGVyKGUsdCl9fWNsYXNzIGRzIGV4dGVuZHMgb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnJhZGl1cz1lfWFzeW5jIHJlbmRlcihlLHQpe3JldHVybiBzdXBlci5yZXNpemVDYW52YXMoZSksdGhpcy5yZW5kZXJTaWxob3VldHRlKGUsdCxgYmx1cigke3RoaXMucmFkaXVzfXB4KWApLHRoaXMuY29udGV4dC5zYXZlKCksdGhpcy5jb250ZXh0LmZpbHRlcj0ibm9uZSIsdGhpcy5jb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3ZlciIsdGhpcy5jb250ZXh0LmRyYXdJbWFnZShlLDAsMCxlLndpZHRoLGUuaGVpZ2h0KSx0aGlzLmNvbnRleHQucmVzdG9yZSgpLHN1cGVyLnJlbmRlcihlLHQpfX1jbGFzcyBocyBleHRlbmRzIG9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTtsKHRoaXMsImJhY2tncm91bmRJbWFnZSIpfXNldEJhY2tncm91bmRJbWFnZSh0KXt0aGlzLmJhY2tncm91bmRJbWFnZT10fWFzeW5jIHJlbmRlcih0LG4pe3JldHVybiBzdXBlci5yZXNpemVDYW52YXModCksdGhpcy5yZW5kZXJTaWxob3VldHRlKHQsbiksdGhpcy5iYWNrZ3JvdW5kSW1hZ2UmJih0aGlzLmNvbnRleHQuc2F2ZSgpLHRoaXMuY29udGV4dC5maWx0ZXI9Im5vbmUiLHRoaXMuY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImRlc3RpbmF0aW9uLW92ZXIiLHRoaXMuY29udGV4dC5kcmF3SW1hZ2UodGhpcy5iYWNrZ3JvdW5kSW1hZ2UsMCwwLHRoaXMuYmFja2dyb3VuZEltYWdlLndpZHRoLHRoaXMuYmFja2dyb3VuZEltYWdlLmhlaWdodCwwLDAsdC53aWR0aCx0LmhlaWdodCksdGhpcy5jb250ZXh0LnJlc3RvcmUoKSksc3VwZXIucmVuZGVyKHQsbil9fS8qIEBsaWNlbnNlIHR3Z2wuanMgNS41LjEgQ29weXJpZ2h0IChjKSAyMDE1LCBHcmVnZyBUYXZhcmVzIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCkF2YWlsYWJsZSB2aWEgdGhlIE1JVCBsaWNlbnNlLgpzZWU6IGh0dHA6Ly9naXRodWIuY29tL2dyZWdnbWFuL3R3Z2wuanMgZm9yIGRldGFpbHMgKi9jb25zdCBpcj01MTIwLFdlPTUxMjEsc3I9NTEyMixhcj01MTIzLHVyPTUxMjQsY3I9NTEyNSxmcj01MTI2LG1zPTMyODE5LHBzPTMyODIwLGdzPTMzNjM1LHlzPTUxMzEsYnM9MzM2NDAseHM9MzU4OTksX3M9MzU5MDIsdnM9MzYyNjksRXM9MzQwNDIsZG49e307e2NvbnN0IHI9ZG47cltpcl09SW50OEFycmF5LHJbV2VdPVVpbnQ4QXJyYXkscltzcl09SW50MTZBcnJheSxyW2FyXT1VaW50MTZBcnJheSxyW3VyXT1JbnQzMkFycmF5LHJbY3JdPVVpbnQzMkFycmF5LHJbZnJdPUZsb2F0MzJBcnJheSxyW21zXT1VaW50MTZBcnJheSxyW3BzXT1VaW50MTZBcnJheSxyW2dzXT1VaW50MTZBcnJheSxyW3lzXT1VaW50MTZBcnJheSxyW2JzXT1VaW50MzJBcnJheSxyW3hzXT1VaW50MzJBcnJheSxyW19zXT1VaW50MzJBcnJheSxyW3ZzXT1VaW50MzJBcnJheSxyW0VzXT1VaW50MzJBcnJheX1mdW5jdGlvbiBscihyKXtpZihyIGluc3RhbmNlb2YgSW50OEFycmF5KXJldHVybiBpcjtpZihyIGluc3RhbmNlb2YgVWludDhBcnJheXx8ciBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5KXJldHVybiBXZTtpZihyIGluc3RhbmNlb2YgSW50MTZBcnJheSlyZXR1cm4gc3I7aWYociBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KXJldHVybiBhcjtpZihyIGluc3RhbmNlb2YgSW50MzJBcnJheSlyZXR1cm4gdXI7aWYociBpbnN0YW5jZW9mIFVpbnQzMkFycmF5KXJldHVybiBjcjtpZihyIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KXJldHVybiBmcjt0aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIHR5cGVkIGFycmF5IHR5cGUiKX1mdW5jdGlvbiBobihyKXtpZihyPT09SW50OEFycmF5KXJldHVybiBpcjtpZihyPT09VWludDhBcnJheXx8cj09PVVpbnQ4Q2xhbXBlZEFycmF5KXJldHVybiBXZTtpZihyPT09SW50MTZBcnJheSlyZXR1cm4gc3I7aWYocj09PVVpbnQxNkFycmF5KXJldHVybiBhcjtpZihyPT09SW50MzJBcnJheSlyZXR1cm4gdXI7aWYocj09PVVpbnQzMkFycmF5KXJldHVybiBjcjtpZihyPT09RmxvYXQzMkFycmF5KXJldHVybiBmcjt0aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIHR5cGVkIGFycmF5IHR5cGUiKX1mdW5jdGlvbiBtbihyKXtjb25zdCBlPWRuW3JdO2lmKCFlKXRocm93IG5ldyBFcnJvcigidW5rbm93biBnbCB0eXBlIik7cmV0dXJuIGV9Y29uc3QgYnQ9dHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyPCJ1Ij9mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5idWZmZXImJihlLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxlLmJ1ZmZlciBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyKX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuYnVmZmVyJiZlLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfTtmdW5jdGlvbiBwbiguLi5yKXtjb25zb2xlLmVycm9yKC4uLnIpfWNvbnN0IGduPW5ldyBNYXA7ZnVuY3Rpb24geHQocixlKXtpZighcnx8dHlwZW9mIHIhPSJvYmplY3QiKXJldHVybiExO2xldCB0PWduLmdldChlKTt0fHwodD1uZXcgV2Vha01hcCxnbi5zZXQoZSx0KSk7bGV0IG49dC5nZXQocik7aWYobj09PXZvaWQgMCl7Y29uc3Qgbz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocik7bj1vLnN1YnN0cmluZyg4LG8ubGVuZ3RoLTEpPT09ZSx0LnNldChyLG4pfXJldHVybiBufWZ1bmN0aW9uIFRzKHIsZSl7cmV0dXJuIHR5cGVvZiBXZWJHTEJ1ZmZlcjwidSImJnh0KGUsIldlYkdMQnVmZmVyIil9ZnVuY3Rpb24gd3MocixlKXtyZXR1cm4gdHlwZW9mIFdlYkdMUmVuZGVyYnVmZmVyPCJ1IiYmeHQoZSwiV2ViR0xSZW5kZXJidWZmZXIiKX1mdW5jdGlvbiBkcihyLGUpe3JldHVybiB0eXBlb2YgV2ViR0xUZXh0dXJlPCJ1IiYmeHQoZSwiV2ViR0xUZXh0dXJlIil9ZnVuY3Rpb24gQXMocixlKXtyZXR1cm4gdHlwZW9mIFdlYkdMU2FtcGxlcjwidSImJnh0KGUsIldlYkdMU2FtcGxlciIpfWNvbnN0IHluPTM1MDQ0LHllPTM0OTYyLElzPTM0OTYzLFNzPTM0NjYwLFJzPTUxMjAsRnM9NTEyMSxQcz01MTIyLGtzPTUxMjMsRHM9NTEyNCxDcz01MTI1LGJuPTUxMjYseG49e2F0dHJpYlByZWZpeDoiIn07ZnVuY3Rpb24gQnMocixlLHQsbixvKXtyLmJpbmRCdWZmZXIoZSx0KSxyLmJ1ZmZlckRhdGEoZSxuLG98fHluKX1mdW5jdGlvbiBfbihyLGUsdCxuKXtpZihUcyhyLGUpKXJldHVybiBlO3Q9dHx8eWU7Y29uc3Qgbz1yLmNyZWF0ZUJ1ZmZlcigpO3JldHVybiBCcyhyLHQsbyxlLG4pLG99ZnVuY3Rpb24gdm4ocil7cmV0dXJuIHI9PT0iaW5kaWNlcyJ9ZnVuY3Rpb24gTXMocil7cmV0dXJuIHI9PT1JbnQ4QXJyYXl8fHI9PT1VaW50OEFycmF5fWZ1bmN0aW9uIE9zKHIpe3JldHVybiByLmxlbmd0aD9yOnIuZGF0YX1jb25zdCBVcz0vY29vcmR8dGV4dHVyZS9pLE5zPS9jb2xvcnxjb2xvdXIvaTtmdW5jdGlvbiBMcyhyLGUpe2xldCB0O2lmKFVzLnRlc3Qocik/dD0yOk5zLnRlc3Qocik/dD00OnQ9MyxlJXQ+MCl0aHJvdyBuZXcgRXJyb3IoYENhbiBub3QgZ3Vlc3MgbnVtQ29tcG9uZW50cyBmb3IgYXR0cmlidXRlICcke3J9Jy4gVHJpZWQgJHt0fSBidXQgJHtlfSB2YWx1ZXMgaXMgbm90IGV2ZW5seSBkaXZpc2libGUgYnkgJHt0fS4gWW91IHNob3VsZCBzcGVjaWZ5IGl0LmApO3JldHVybiB0fWZ1bmN0aW9uIHpzKHIsZSx0KXtyZXR1cm4gci5udW1Db21wb25lbnRzfHxyLnNpemV8fExzKGUsdHx8T3MocikubGVuZ3RoKX1mdW5jdGlvbiBFbihyLGUpe2lmKGJ0KHIpKXJldHVybiByO2lmKGJ0KHIuZGF0YSkpcmV0dXJuIHIuZGF0YTtBcnJheS5pc0FycmF5KHIpJiYocj17ZGF0YTpyfSk7bGV0IHQ9ci50eXBlP2hyKHIudHlwZSk6dm9pZCAwO3JldHVybiB0fHwodm4oZSk/dD1VaW50MTZBcnJheTp0PUZsb2F0MzJBcnJheSksbmV3IHQoci5kYXRhKX1mdW5jdGlvbiBHcyhyKXtyZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIiP3I6cj9obihyKTpibn1mdW5jdGlvbiBocihyKXtyZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIiP21uKHIpOnJ8fEZsb2F0MzJBcnJheX1mdW5jdGlvbiAkcyhyLGUpe3JldHVybntidWZmZXI6ZS5idWZmZXIsbnVtVmFsdWVzOjIqMyo0LHR5cGU6R3MoZS50eXBlKSxhcnJheVR5cGU6aHIoZS50eXBlKX19ZnVuY3Rpb24gV3MocixlKXtjb25zdCB0PWUuZGF0YXx8ZSxuPWhyKGUudHlwZSksbz10Km4uQllURVNfUEVSX0VMRU1FTlQsaT1yLmNyZWF0ZUJ1ZmZlcigpO3JldHVybiByLmJpbmRCdWZmZXIoeWUsaSksci5idWZmZXJEYXRhKHllLG8sZS5kcmF3VHlwZXx8eW4pLHtidWZmZXI6aSxudW1WYWx1ZXM6dCx0eXBlOmhuKG4pLGFycmF5VHlwZTpufX1mdW5jdGlvbiBWcyhyLGUsdCl7Y29uc3Qgbj1FbihlLHQpO3JldHVybnthcnJheVR5cGU6bi5jb25zdHJ1Y3RvcixidWZmZXI6X24ocixuLHZvaWQgMCxlLmRyYXdUeXBlKSx0eXBlOmxyKG4pLG51bVZhbHVlczowfX1mdW5jdGlvbiBIcyhyLGUpe2NvbnN0IHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24obil7aWYoIXZuKG4pKXtjb25zdCBvPWVbbl0saT1vLmF0dHJpYnx8by5uYW1lfHxvLmF0dHJpYk5hbWV8fHhuLmF0dHJpYlByZWZpeCtuO2lmKG8udmFsdWUpe2lmKCFBcnJheS5pc0FycmF5KG8udmFsdWUpJiYhYnQoby52YWx1ZSkpdGhyb3cgbmV3IEVycm9yKCJhcnJheS52YWx1ZSBpcyBub3QgYXJyYXkgb3IgdHlwZWRhcnJheSIpO3RbaV09e3ZhbHVlOm8udmFsdWV9fWVsc2V7bGV0IHM7by5idWZmZXImJm8uYnVmZmVyIGluc3RhbmNlb2YgV2ViR0xCdWZmZXI/cz0kczp0eXBlb2Ygbz09Im51bWJlciJ8fHR5cGVvZiBvLmRhdGE9PSJudW1iZXIiP3M9V3M6cz1Wcztjb25zdHtidWZmZXI6YSx0eXBlOnUsbnVtVmFsdWVzOmYsYXJyYXlUeXBlOmR9PXMocixvLG4pLHA9by5ub3JtYWxpemUhPT12b2lkIDA/by5ub3JtYWxpemU6TXMoZCksZz16cyhvLG4sZik7dFtpXT17YnVmZmVyOmEsbnVtQ29tcG9uZW50czpnLHR5cGU6dSxub3JtYWxpemU6cCxzdHJpZGU6by5zdHJpZGV8fDAsb2Zmc2V0Om8ub2Zmc2V0fHwwLGRpdmlzb3I6by5kaXZpc29yPT09dm9pZCAwP3ZvaWQgMDpvLmRpdmlzb3IsZHJhd1R5cGU6by5kcmF3VHlwZX19fX0pLHIuYmluZEJ1ZmZlcih5ZSxudWxsKSx0fWZ1bmN0aW9uIGpzKHIsZSl7cmV0dXJuIGU9PT1Sc3x8ZT09PUZzPzE6ZT09PVBzfHxlPT09a3M/MjplPT09RHN8fGU9PT1Dc3x8ZT09PWJuPzQ6MH1jb25zdCBtcj1bInBvc2l0aW9uIiwicG9zaXRpb25zIiwiYV9wb3NpdGlvbiJdO2Z1bmN0aW9uIFlzKHIsZSl7bGV0IHQsbjtmb3Iobj0wO248bXIubGVuZ3RoJiYodD1tcltuXSwhKHQgaW4gZXx8KHQ9eG4uYXR0cmliUHJlZml4K3QsdCBpbiBlKSkpOysrbik7bj09PW1yLmxlbmd0aCYmKHQ9T2JqZWN0LmtleXMoZSlbMF0pO2NvbnN0IG89ZVt0XTtpZighby5idWZmZXIpcmV0dXJuIDE7ci5iaW5kQnVmZmVyKHllLG8uYnVmZmVyKTtjb25zdCBpPXIuZ2V0QnVmZmVyUGFyYW1ldGVyKHllLFNzKTtyLmJpbmRCdWZmZXIoeWUsbnVsbCk7Y29uc3Qgcz1qcyhyLG8udHlwZSksYT1pL3MsdT1vLm51bUNvbXBvbmVudHN8fG8uc2l6ZSxmPWEvdTtpZihmJTEhPT0wKXRocm93IG5ldyBFcnJvcihgbnVtQ29tcG9uZW50cyAke3V9IG5vdCBjb3JyZWN0IGZvciBsZW5ndGggJHtsZW5ndGh9YCk7cmV0dXJuIGZ9ZnVuY3Rpb24gWHMocixlLHQpe2NvbnN0IG49SHMocixlKSxvPU9iamVjdC5hc3NpZ24oe30sdHx8e30pO28uYXR0cmlicz1PYmplY3QuYXNzaWduKHt9LHQ/dC5hdHRyaWJzOnt9LG4pO2NvbnN0IGk9ZS5pbmRpY2VzO2lmKGkpe2NvbnN0IHM9RW4oaSwiaW5kaWNlcyIpO28uaW5kaWNlcz1fbihyLHMsSXMpLG8ubnVtRWxlbWVudHM9cy5sZW5ndGgsby5lbGVtZW50VHlwZT1scihzKX1lbHNlIG8ubnVtRWxlbWVudHN8fChvLm51bUVsZW1lbnRzPVlzKHIsby5hdHRyaWJzKSk7cmV0dXJuIG99ZnVuY3Rpb24gVmUocil7cmV0dXJuISFyLnRleFN0b3JhZ2UyRH1jb25zdCBUbj1mdW5jdGlvbigpe2NvbnN0IHI9e30sZT17fTtmdW5jdGlvbiB0KG4pe2NvbnN0IG89bi5jb25zdHJ1Y3Rvci5uYW1lO2lmKCFyW29dKXtmb3IoY29uc3QgaSBpbiBuKWlmKHR5cGVvZiBuW2ldPT0ibnVtYmVyIil7Y29uc3Qgcz1lW25baV1dO2VbbltpXV09cz9gJHtzfSB8ICR7aX1gOml9cltvXT0hMH19cmV0dXJuIGZ1bmN0aW9uKG8saSl7cmV0dXJuIHQobyksZVtpXXx8KHR5cGVvZiBpPT0ibnVtYmVyIj9gMHgke2kudG9TdHJpbmcoMTYpfWA6aSl9fSgpLGllPXt0ZXh0dXJlQ29sb3I6bmV3IFVpbnQ4QXJyYXkoWzEyOCwxOTIsMjU1LDI1NV0pLHRleHR1cmVPcHRpb25zOnt9LGNyb3NzT3JpZ2luOnZvaWQgMH0sSGU9YnQsd249ZnVuY3Rpb24oKXtsZXQgcjtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcj1yfHwodHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQuY3JlYXRlRWxlbWVudD9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOm51bGwpLHJ9fSgpLEFuPTY0MDYscT02NDA3LFI9NjQwOCxJbj02NDA5LFNuPTY0MTAsamU9NjQwMixSbj0zNDA0MSxfdD0zMzA3MSxRcz05NzI4LHFzPTk3Mjksc2U9MzU1MyxhZT0zNDA2NyxiZT0zMjg3OSx4ZT0zNTg2Nixwcj0zNDA2OSxLcz0zNDA3MCxKcz0zNDA3MSxacz0zNDA3MixlYT0zNDA3Myx0YT0zNDA3NCxncj0xMDI0MSx5cj0xMDI0MCx2dD0xMDI0MixFdD0xMDI0MyxGbj0zMjg4MixyYT0zMzA4MixuYT0zMzA4MyxvYT0zMzA4NCxpYT0zMzA4NSxzYT0zNDg5MixhYT0zNDg5Myxicj0zMzE3LFBuPTMzMTQsa249MzI4NzgsRG49MzMxNixDbj0zMzE1LEJuPTMyODc3LHVhPTM3NDQzLGNhPTM3NDQxLGZhPTM3NDQwLGxhPTMzMzIxLGRhPTM2NzU2LGhhPTMzMzI1LG1hPTMzMzI2LHBhPTMzMzMwLGdhPTMzMzI5LHlhPTMzMzM4LGJhPTMzMzM3LHhhPTMzMzQwLF9hPTMzMzM5LHZhPTMzMzIzLEVhPTM2NzU3LFRhPTMzMzI3LHdhPTMzMzI4LEFhPTMzMzM2LElhPTMzMzM1LFNhPTMzMzMyLFJhPTMzMzMxLEZhPTMzMzM0LFBhPTMzMzMzLGthPTMyODQ5LERhPTM1OTA1LENhPTM2MTk0LEJhPTM2NzU4LE1hPTM1ODk4LE9hPTM1OTAxLFVhPTM0ODQzLE5hPTM0ODM3LExhPTM2MjIxLHphPTM2MjM5LEdhPTM2MjE1LCRhPTM2MjMzLFdhPTM2MjA5LFZhPTM2MjI3LEhhPTMyODU2LGphPTM1OTA3LFlhPTM2NzU5LFhhPTMyODU1LFFhPTMyODU0LHFhPTMyODU3LEthPTM0ODQyLEphPTM0ODM2LFphPTM2MjIwLGV1PTM2MjM4LHR1PTM2OTc1LHJ1PTM2MjE0LG51PTM2MjMyLG91PTM2MjI2LGl1PTM2MjA4LHN1PTMzMTg5LGF1PTMzMTkwLHV1PTM2MDEyLGN1PTM2MDEzLGZ1PTM1MDU2LHVlPTUxMjAsUz01MTIxLFR0PTUxMjIsa2U9NTEyMyx3dD01MTI0LF9lPTUxMjUsTz01MTI2LE1uPTMyODE5LE9uPTMyODIwLFVuPTMzNjM1LGo9NTEzMSxZZT0zNjE5Myx4cj0zMzY0MCxsdT0zNTg5OSxkdT0zNTkwMixodT0zNjI2OSxtdT0zNDA0MixBdD0zMzMxOSxEZT0zMzMyMCxJdD02NDAzLENlPTM2MjQ0LEJlPTM2MjQ4LHZlPTM2MjQ5O2xldCBfcjtmdW5jdGlvbiBTdChyKXtpZighX3Ipe2NvbnN0IGU9e307ZVtBbl09e3RleHR1cmVGb3JtYXQ6QW4sY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbMSwyLDIsNF0sdHlwZTpbUyxqLFllLE9dfSxlW0luXT17dGV4dHVyZUZvcm1hdDpJbixjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITAsYnl0ZXNQZXJFbGVtZW50OlsxLDIsMiw0XSx0eXBlOltTLGosWWUsT119LGVbU25dPXt0ZXh0dXJlRm9ybWF0OlNuLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMCxieXRlc1BlckVsZW1lbnQ6WzIsNCw0LDhdLHR5cGU6W1MsaixZZSxPXX0sZVtxXT17dGV4dHVyZUZvcm1hdDpxLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMCxieXRlc1BlckVsZW1lbnQ6WzMsNiw2LDEyLDJdLHR5cGU6W1MsaixZZSxPLFVuXX0sZVtSXT17dGV4dHVyZUZvcm1hdDpSLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMCxieXRlc1BlckVsZW1lbnQ6WzQsOCw4LDE2LDIsMl0sdHlwZTpbUyxqLFllLE8sTW4sT25dfSxlW2plXT17dGV4dHVyZUZvcm1hdDpqZSxjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITEsYnl0ZXNQZXJFbGVtZW50OlsyLDRdLHR5cGU6W19lLGtlXX0sZVtsYV09e3RleHR1cmVGb3JtYXQ6SXQsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbMV0sdHlwZTpbU119LGVbZGFdPXt0ZXh0dXJlRm9ybWF0Okl0LGNvbG9yUmVuZGVyYWJsZTohMSx0ZXh0dXJlRmlsdGVyYWJsZTohMCxieXRlc1BlckVsZW1lbnQ6WzFdLHR5cGU6W3VlXX0sZVtoYV09e3RleHR1cmVGb3JtYXQ6SXQsY29sb3JSZW5kZXJhYmxlOiExLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbNCwyXSx0eXBlOltPLGpdfSxlW21hXT17dGV4dHVyZUZvcm1hdDpJdCxjb2xvclJlbmRlcmFibGU6ITEsdGV4dHVyZUZpbHRlcmFibGU6ITEsYnl0ZXNQZXJFbGVtZW50Ols0XSx0eXBlOltPXX0sZVtwYV09e3RleHR1cmVGb3JtYXQ6Q2UsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbMV0sdHlwZTpbU119LGVbZ2FdPXt0ZXh0dXJlRm9ybWF0OkNlLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzFdLHR5cGU6W3VlXX0sZVtTYV09e3RleHR1cmVGb3JtYXQ6Q2UsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbMl0sdHlwZTpba2VdfSxlW1JhXT17dGV4dHVyZUZvcm1hdDpDZSxjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITEsYnl0ZXNQZXJFbGVtZW50OlsyXSx0eXBlOltUdF19LGVbRmFdPXt0ZXh0dXJlRm9ybWF0OkNlLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzRdLHR5cGU6W19lXX0sZVtQYV09e3RleHR1cmVGb3JtYXQ6Q2UsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbNF0sdHlwZTpbd3RdfSxlW3ZhXT17dGV4dHVyZUZvcm1hdDpBdCxjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITAsYnl0ZXNQZXJFbGVtZW50OlsyXSx0eXBlOltTXX0sZVtFYV09e3RleHR1cmVGb3JtYXQ6QXQsY29sb3JSZW5kZXJhYmxlOiExLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbMl0sdHlwZTpbdWVdfSxlW1RhXT17dGV4dHVyZUZvcm1hdDpBdCxjb2xvclJlbmRlcmFibGU6ITEsdGV4dHVyZUZpbHRlcmFibGU6ITAsYnl0ZXNQZXJFbGVtZW50Ols4LDRdLHR5cGU6W08sal19LGVbd2FdPXt0ZXh0dXJlRm9ybWF0OkF0LGNvbG9yUmVuZGVyYWJsZTohMSx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzhdLHR5cGU6W09dfSxlW0FhXT17dGV4dHVyZUZvcm1hdDpEZSxjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITEsYnl0ZXNQZXJFbGVtZW50OlsyXSx0eXBlOltTXX0sZVtJYV09e3RleHR1cmVGb3JtYXQ6RGUsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbMl0sdHlwZTpbdWVdfSxlW3lhXT17dGV4dHVyZUZvcm1hdDpEZSxjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITEsYnl0ZXNQZXJFbGVtZW50Ols0XSx0eXBlOltrZV19LGVbYmFdPXt0ZXh0dXJlRm9ybWF0OkRlLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzRdLHR5cGU6W1R0XX0sZVt4YV09e3RleHR1cmVGb3JtYXQ6RGUsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbOF0sdHlwZTpbX2VdfSxlW19hXT17dGV4dHVyZUZvcm1hdDpEZSxjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITEsYnl0ZXNQZXJFbGVtZW50Ols4XSx0eXBlOlt3dF19LGVba2FdPXt0ZXh0dXJlRm9ybWF0OnEsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbM10sdHlwZTpbU119LGVbRGFdPXt0ZXh0dXJlRm9ybWF0OnEsY29sb3JSZW5kZXJhYmxlOiExLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbM10sdHlwZTpbU119LGVbQ2FdPXt0ZXh0dXJlRm9ybWF0OnEsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbMywyXSx0eXBlOltTLFVuXX0sZVtCYV09e3RleHR1cmVGb3JtYXQ6cSxjb2xvclJlbmRlcmFibGU6ITEsdGV4dHVyZUZpbHRlcmFibGU6ITAsYnl0ZXNQZXJFbGVtZW50OlszXSx0eXBlOlt1ZV19LGVbTWFdPXt0ZXh0dXJlRm9ybWF0OnEsY29sb3JSZW5kZXJhYmxlOiExLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbMTIsNiw0XSx0eXBlOltPLGosbHVdfSxlW09hXT17dGV4dHVyZUZvcm1hdDpxLGNvbG9yUmVuZGVyYWJsZTohMSx0ZXh0dXJlRmlsdGVyYWJsZTohMCxieXRlc1BlckVsZW1lbnQ6WzEyLDYsNF0sdHlwZTpbTyxqLGR1XX0sZVtVYV09e3RleHR1cmVGb3JtYXQ6cSxjb2xvclJlbmRlcmFibGU6ITEsdGV4dHVyZUZpbHRlcmFibGU6ITAsYnl0ZXNQZXJFbGVtZW50OlsxMiw2XSx0eXBlOltPLGpdfSxlW05hXT17dGV4dHVyZUZvcm1hdDpxLGNvbG9yUmVuZGVyYWJsZTohMSx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzEyXSx0eXBlOltPXX0sZVtMYV09e3RleHR1cmVGb3JtYXQ6QmUsY29sb3JSZW5kZXJhYmxlOiExLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbM10sdHlwZTpbU119LGVbemFdPXt0ZXh0dXJlRm9ybWF0OkJlLGNvbG9yUmVuZGVyYWJsZTohMSx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzNdLHR5cGU6W3VlXX0sZVtHYV09e3RleHR1cmVGb3JtYXQ6QmUsY29sb3JSZW5kZXJhYmxlOiExLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbNl0sdHlwZTpba2VdfSxlWyRhXT17dGV4dHVyZUZvcm1hdDpCZSxjb2xvclJlbmRlcmFibGU6ITEsdGV4dHVyZUZpbHRlcmFibGU6ITEsYnl0ZXNQZXJFbGVtZW50Ols2XSx0eXBlOltUdF19LGVbV2FdPXt0ZXh0dXJlRm9ybWF0OkJlLGNvbG9yUmVuZGVyYWJsZTohMSx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzEyXSx0eXBlOltfZV19LGVbVmFdPXt0ZXh0dXJlRm9ybWF0OkJlLGNvbG9yUmVuZGVyYWJsZTohMSx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzEyXSx0eXBlOlt3dF19LGVbSGFdPXt0ZXh0dXJlRm9ybWF0OlIsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbNF0sdHlwZTpbU119LGVbamFdPXt0ZXh0dXJlRm9ybWF0OlIsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbNF0sdHlwZTpbU119LGVbWWFdPXt0ZXh0dXJlRm9ybWF0OlIsY29sb3JSZW5kZXJhYmxlOiExLHRleHR1cmVGaWx0ZXJhYmxlOiEwLGJ5dGVzUGVyRWxlbWVudDpbNF0sdHlwZTpbdWVdfSxlW1hhXT17dGV4dHVyZUZvcm1hdDpSLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMCxieXRlc1BlckVsZW1lbnQ6WzQsMiw0XSx0eXBlOltTLE9uLHhyXX0sZVtRYV09e3RleHR1cmVGb3JtYXQ6Uixjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITAsYnl0ZXNQZXJFbGVtZW50Ols0LDJdLHR5cGU6W1MsTW5dfSxlW3FhXT17dGV4dHVyZUZvcm1hdDpSLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMCxieXRlc1BlckVsZW1lbnQ6WzRdLHR5cGU6W3hyXX0sZVtLYV09e3RleHR1cmVGb3JtYXQ6Uixjb2xvclJlbmRlcmFibGU6ITEsdGV4dHVyZUZpbHRlcmFibGU6ITAsYnl0ZXNQZXJFbGVtZW50OlsxNiw4XSx0eXBlOltPLGpdfSxlW0phXT17dGV4dHVyZUZvcm1hdDpSLGNvbG9yUmVuZGVyYWJsZTohMSx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzE2XSx0eXBlOltPXX0sZVtaYV09e3RleHR1cmVGb3JtYXQ6dmUsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbNF0sdHlwZTpbU119LGVbZXVdPXt0ZXh0dXJlRm9ybWF0OnZlLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzRdLHR5cGU6W3VlXX0sZVt0dV09e3RleHR1cmVGb3JtYXQ6dmUsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbNF0sdHlwZTpbeHJdfSxlW3J1XT17dGV4dHVyZUZvcm1hdDp2ZSxjb2xvclJlbmRlcmFibGU6ITAsdGV4dHVyZUZpbHRlcmFibGU6ITEsYnl0ZXNQZXJFbGVtZW50Ols4XSx0eXBlOltrZV19LGVbbnVdPXt0ZXh0dXJlRm9ybWF0OnZlLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzhdLHR5cGU6W1R0XX0sZVtvdV09e3RleHR1cmVGb3JtYXQ6dmUsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbMTZdLHR5cGU6W3d0XX0sZVtpdV09e3RleHR1cmVGb3JtYXQ6dmUsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbMTZdLHR5cGU6W19lXX0sZVtzdV09e3RleHR1cmVGb3JtYXQ6amUsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbMiw0XSx0eXBlOltrZSxfZV19LGVbYXVdPXt0ZXh0dXJlRm9ybWF0OmplLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzRdLHR5cGU6W19lXX0sZVt1dV09e3RleHR1cmVGb3JtYXQ6amUsY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbNF0sdHlwZTpbT119LGVbZnVdPXt0ZXh0dXJlRm9ybWF0OlJuLGNvbG9yUmVuZGVyYWJsZTohMCx0ZXh0dXJlRmlsdGVyYWJsZTohMSxieXRlc1BlckVsZW1lbnQ6WzRdLHR5cGU6W211XX0sZVtjdV09e3RleHR1cmVGb3JtYXQ6Um4sY29sb3JSZW5kZXJhYmxlOiEwLHRleHR1cmVGaWx0ZXJhYmxlOiExLGJ5dGVzUGVyRWxlbWVudDpbNF0sdHlwZTpbaHVdfSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2NvbnN0IG49ZVt0XTtuLmJ5dGVzUGVyRWxlbWVudE1hcD17fSxuLmJ5dGVzUGVyRWxlbWVudC5mb3JFYWNoKGZ1bmN0aW9uKG8saSl7Y29uc3Qgcz1uLnR5cGVbaV07bi5ieXRlc1BlckVsZW1lbnRNYXBbc109b30pfSksX3I9ZX1yZXR1cm4gX3Jbcl19ZnVuY3Rpb24gcHUocixlKXtjb25zdCB0PVN0KHIpO2lmKCF0KXRocm93InVua25vd24gaW50ZXJuYWwgZm9ybWF0Ijtjb25zdCBuPXQuYnl0ZXNQZXJFbGVtZW50TWFwW2VdO2lmKG49PT12b2lkIDApdGhyb3cidW5rbm93biBpbnRlcm5hbCBmb3JtYXQiO3JldHVybiBufWZ1bmN0aW9uIFhlKHIpe2NvbnN0IGU9U3Qocik7aWYoIWUpdGhyb3cidW5rbm93biBpbnRlcm5hbCBmb3JtYXQiO3JldHVybntmb3JtYXQ6ZS50ZXh0dXJlRm9ybWF0LHR5cGU6ZS50eXBlWzBdfX1mdW5jdGlvbiBObihyKXtyZXR1cm4ociZyLTEpPT09MH1mdW5jdGlvbiBndShyLGUsdCxuKXtpZighVmUocikpcmV0dXJuIE5uKGUpJiZObih0KTtjb25zdCBvPVN0KG4pO2lmKCFvKXRocm93InVua25vd24gaW50ZXJuYWwgZm9ybWF0IjtyZXR1cm4gby5jb2xvclJlbmRlcmFibGUmJm8udGV4dHVyZUZpbHRlcmFibGV9ZnVuY3Rpb24geXUocil7Y29uc3QgZT1TdChyKTtpZighZSl0aHJvdyJ1bmtub3duIGludGVybmFsIGZvcm1hdCI7cmV0dXJuIGUudGV4dHVyZUZpbHRlcmFibGV9ZnVuY3Rpb24gYnUocixlLHQpe3JldHVybiBIZShlKT9scihlKTp0fHxTfWZ1bmN0aW9uIFJ0KHIsZSx0LG4sbyl7aWYobyUxIT09MCl0aHJvdyJjYW4ndCBndWVzcyBkaW1lbnNpb25zIjtpZighdCYmIW4pe2NvbnN0IGk9TWF0aC5zcXJ0KG8vKGU9PT1hZT82OjEpKTtpJTE9PT0wPyh0PWksbj1pKToodD1vLG49MSl9ZWxzZSBpZihuKXtpZighdCYmKHQ9by9uLHQlMSkpdGhyb3ciY2FuJ3QgZ3Vlc3MgZGltZW5zaW9ucyJ9ZWxzZSBpZihuPW8vdCxuJTEpdGhyb3ciY2FuJ3QgZ3Vlc3MgZGltZW5zaW9ucyI7cmV0dXJue3dpZHRoOnQsaGVpZ2h0Om59fWZ1bmN0aW9uIE1lKHIsZSl7ZS5jb2xvcnNwYWNlQ29udmVyc2lvbiE9PXZvaWQgMCYmci5waXhlbFN0b3JlaSh1YSxlLmNvbG9yc3BhY2VDb252ZXJzaW9uKSxlLnByZW11bHRpcGx5QWxwaGEhPT12b2lkIDAmJnIucGl4ZWxTdG9yZWkoY2EsZS5wcmVtdWx0aXBseUFscGhhKSxlLmZsaXBZIT09dm9pZCAwJiZyLnBpeGVsU3RvcmVpKGZhLGUuZmxpcFkpfWZ1bmN0aW9uIExuKHIpe3IucGl4ZWxTdG9yZWkoYnIsNCksVmUocikmJihyLnBpeGVsU3RvcmVpKFBuLDApLHIucGl4ZWxTdG9yZWkoa24sMCksci5waXhlbFN0b3JlaShEbiwwKSxyLnBpeGVsU3RvcmVpKENuLDApLHIucGl4ZWxTdG9yZWkoQm4sMCkpfWZ1bmN0aW9uIHh1KHIsZSx0LG4pe24ubWluTWFnJiYodC5jYWxsKHIsZSxncixuLm1pbk1hZyksdC5jYWxsKHIsZSx5cixuLm1pbk1hZykpLG4ubWluJiZ0LmNhbGwocixlLGdyLG4ubWluKSxuLm1hZyYmdC5jYWxsKHIsZSx5cixuLm1hZyksbi53cmFwJiYodC5jYWxsKHIsZSx2dCxuLndyYXApLHQuY2FsbChyLGUsRXQsbi53cmFwKSwoZT09PWJlfHxBcyhyLGUpKSYmdC5jYWxsKHIsZSxGbixuLndyYXApKSxuLndyYXBSJiZ0LmNhbGwocixlLEZuLG4ud3JhcFIpLG4ud3JhcFMmJnQuY2FsbChyLGUsdnQsbi53cmFwUyksbi53cmFwVCYmdC5jYWxsKHIsZSxFdCxuLndyYXBUKSxuLm1pbkxvZCE9PXZvaWQgMCYmdC5jYWxsKHIsZSxyYSxuLm1pbkxvZCksbi5tYXhMb2QhPT12b2lkIDAmJnQuY2FsbChyLGUsbmEsbi5tYXhMb2QpLG4uYmFzZUxldmVsIT09dm9pZCAwJiZ0LmNhbGwocixlLG9hLG4uYmFzZUxldmVsKSxuLm1heExldmVsIT09dm9pZCAwJiZ0LmNhbGwocixlLGlhLG4ubWF4TGV2ZWwpLG4uY29tcGFyZUZ1bmMhPT12b2lkIDAmJnQuY2FsbChyLGUsYWEsbi5jb21wYXJlRnVuYyksbi5jb21wYXJlTW9kZSE9PXZvaWQgMCYmdC5jYWxsKHIsZSxzYSxuLmNvbXBhcmVNb2RlKX1mdW5jdGlvbiB6bihyLGUsdCl7Y29uc3Qgbj10LnRhcmdldHx8c2U7ci5iaW5kVGV4dHVyZShuLGUpLHh1KHIsbixyLnRleFBhcmFtZXRlcmksdCl9ZnVuY3Rpb24gX3Uocil7cmV0dXJuIHI9cnx8aWUudGV4dHVyZUNvbG9yLEhlKHIpP3I6bmV3IFVpbnQ4QXJyYXkoW3JbMF0qMjU1LHJbMV0qMjU1LHJbMl0qMjU1LHJbM10qMjU1XSl9ZnVuY3Rpb24gdnIocixlLHQsbixvLGkpe3Q9dHx8aWUudGV4dHVyZU9wdGlvbnMsaT1pfHxSO2NvbnN0IHM9dC50YXJnZXR8fHNlO2lmKG49bnx8dC53aWR0aCxvPW98fHQuaGVpZ2h0LHIuYmluZFRleHR1cmUocyxlKSxndShyLG4sbyxpKSlyLmdlbmVyYXRlTWlwbWFwKHMpO2Vsc2V7Y29uc3QgYT15dShpKT9xczpRcztyLnRleFBhcmFtZXRlcmkocyxncixhKSxyLnRleFBhcmFtZXRlcmkocyx5cixhKSxyLnRleFBhcmFtZXRlcmkocyx2dCxfdCksci50ZXhQYXJhbWV0ZXJpKHMsRXQsX3QpfX1mdW5jdGlvbiBRZShyKXtyZXR1cm4gci5hdXRvPT09ITB8fHIuYXV0bz09PXZvaWQgMCYmci5sZXZlbD09PXZvaWQgMH1mdW5jdGlvbiBFcihyLGUpe3JldHVybiBlPWV8fHt9LGUuY3ViZUZhY2VPcmRlcnx8W3ByLEtzLEpzLFpzLGVhLHRhXX1mdW5jdGlvbiBUcihyLGUpe2NvbnN0IG49RXIocixlKS5tYXAoZnVuY3Rpb24obyxpKXtyZXR1cm57ZmFjZTpvLG5keDppfX0pO3JldHVybiBuLnNvcnQoZnVuY3Rpb24obyxpKXtyZXR1cm4gby5mYWNlLWkuZmFjZX0pLG59ZnVuY3Rpb24gR24ocixlLHQsbil7bj1ufHxpZS50ZXh0dXJlT3B0aW9ucztjb25zdCBvPW4udGFyZ2V0fHxzZSxpPW4ubGV2ZWx8fDA7bGV0IHM9dC53aWR0aCxhPXQuaGVpZ2h0O2NvbnN0IHU9bi5pbnRlcm5hbEZvcm1hdHx8bi5mb3JtYXR8fFIsZj1YZSh1KSxkPW4uZm9ybWF0fHxmLmZvcm1hdCxwPW4udHlwZXx8Zi50eXBlO2lmKE1lKHIsbiksci5iaW5kVGV4dHVyZShvLGUpLG89PT1hZSl7Y29uc3QgZz10LndpZHRoLGI9dC5oZWlnaHQ7bGV0IGgseDtpZihnLzY9PT1iKWg9Yix4PVswLDAsMSwwLDIsMCwzLDAsNCwwLDUsMF07ZWxzZSBpZihiLzY9PT1nKWg9Zyx4PVswLDAsMCwxLDAsMiwwLDMsMCw0LDAsNV07ZWxzZSBpZihnLzM9PT1iLzIpaD1nLzMseD1bMCwwLDEsMCwyLDAsMCwxLDEsMSwyLDFdO2Vsc2UgaWYoZy8yPT09Yi8zKWg9Zy8yLHg9WzAsMCwxLDAsMCwxLDEsMSwwLDIsMSwyXTtlbHNlIHRocm93ImNhbid0IGZpZ3VyZSBvdXQgY3ViZSBtYXAgZnJvbSBlbGVtZW50OiAiKyh0LnNyYz90LnNyYzp0Lm5vZGVOYW1lKTtjb25zdCBFPXduKCk7RT8oRS5jYW52YXMud2lkdGg9aCxFLmNhbnZhcy5oZWlnaHQ9aCxzPWgsYT1oLFRyKHIsbikuZm9yRWFjaChmdW5jdGlvbih2KXtjb25zdCBGPXhbdi5uZHgqMiswXSpoLGs9eFt2Lm5keCoyKzFdKmg7RS5kcmF3SW1hZ2UodCxGLGssaCxoLDAsMCxoLGgpLHIudGV4SW1hZ2UyRCh2LmZhY2UsaSx1LGQscCxFLmNhbnZhcyl9KSxFLmNhbnZhcy53aWR0aD0xLEUuY2FudmFzLmhlaWdodD0xKTp0eXBlb2YgY3JlYXRlSW1hZ2VCaXRtYXA8InUiJiYocz1oLGE9aCxUcihyLG4pLmZvckVhY2goZnVuY3Rpb24odil7Y29uc3QgRj14W3YubmR4KjIrMF0qaCxrPXhbdi5uZHgqMisxXSpoO3IudGV4SW1hZ2UyRCh2LmZhY2UsaSx1LGgsaCwwLGQscCxudWxsKSxjcmVhdGVJbWFnZUJpdG1hcCh0LEYsayxoLGgse3ByZW11bHRpcGx5QWxwaGE6Im5vbmUiLGNvbG9yU3BhY2VDb252ZXJzaW9uOiJub25lIn0pLnRoZW4oZnVuY3Rpb24oRyl7TWUocixuKSxyLmJpbmRUZXh0dXJlKG8sZSksci50ZXhJbWFnZTJEKHYuZmFjZSxpLHUsZCxwLEcpLFFlKG4pJiZ2cihyLGUsbixzLGEsdSl9KX0pKX1lbHNlIGlmKG89PT1iZXx8bz09PXhlKXtjb25zdCBnPU1hdGgubWluKHQud2lkdGgsdC5oZWlnaHQpLGI9TWF0aC5tYXgodC53aWR0aCx0LmhlaWdodCksaD1iL2c7aWYoaCUxIT09MCl0aHJvdyJjYW4gbm90IGNvbXB1dGUgM0QgZGltZW5zaW9ucyBvZiBlbGVtZW50Ijtjb25zdCB4PXQud2lkdGg9PT1iPzE6MCxFPXQuaGVpZ2h0PT09Yj8xOjA7ci5waXhlbFN0b3JlaShiciwxKSxyLnBpeGVsU3RvcmVpKFBuLHQud2lkdGgpLHIucGl4ZWxTdG9yZWkoa24sMCksci5waXhlbFN0b3JlaShCbiwwKSxyLnRleEltYWdlM0QobyxpLHUsZyxnLGcsMCxkLHAsbnVsbCk7Zm9yKGxldCB2PTA7djxoOysrdil7Y29uc3QgRj12KmcqeCxrPXYqZypFO3IucGl4ZWxTdG9yZWkoRG4sRiksci5waXhlbFN0b3JlaShDbixrKSxyLnRleFN1YkltYWdlM0QobyxpLDAsMCx2LGcsZywxLGQscCx0KX1MbihyKX1lbHNlIHIudGV4SW1hZ2UyRChvLGksdSxkLHAsdCk7UWUobikmJnZyKHIsZSxuLHMsYSx1KSx6bihyLGUsbil9ZnVuY3Rpb24gcWUoKXt9ZnVuY3Rpb24gdnUocil7aWYodHlwZW9mIGRvY3VtZW50PCJ1Iil7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIGUuaHJlZj1yLGUuaG9zdG5hbWU9PT1sb2NhdGlvbi5ob3N0bmFtZSYmZS5wb3J0PT09bG9jYXRpb24ucG9ydCYmZS5wcm90b2NvbD09PWxvY2F0aW9uLnByb3RvY29sfWVsc2V7Y29uc3QgZT1uZXcgVVJMKGxvY2F0aW9uLmhyZWYpLm9yaWdpbjtyZXR1cm4gbmV3IFVSTChyLGxvY2F0aW9uLmhyZWYpLm9yaWdpbj09PWV9fWZ1bmN0aW9uIEV1KHIsZSl7cmV0dXJuIGU9PT12b2lkIDAmJiF2dShyKT8iYW5vbnltb3VzIjplfWZ1bmN0aW9uIFR1KHIsZSx0KXt0PXR8fHFlO2xldCBuO2lmKGU9ZSE9PXZvaWQgMD9lOmllLmNyb3NzT3JpZ2luLGU9RXUocixlKSx0eXBlb2YgSW1hZ2U8InUiKXtuPW5ldyBJbWFnZSxlIT09dm9pZCAwJiYobi5jcm9zc09yaWdpbj1lKTtjb25zdCBvPWZ1bmN0aW9uKCl7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsaSksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixzKSxuPW51bGx9LGk9ZnVuY3Rpb24oKXtjb25zdCB1PSJjb3VsZG4ndCBsb2FkIGltYWdlOiAiK3I7cG4odSksdCh1LG4pLG8oKX0scz1mdW5jdGlvbigpe3QobnVsbCxuKSxvKCl9O3JldHVybiBuLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHMpLG4uc3JjPXIsbn1lbHNlIGlmKHR5cGVvZiBJbWFnZUJpdG1hcDwidSIpe2xldCBvLGk7Y29uc3Qgcz1mdW5jdGlvbigpe3QobyxpKX0sYT17fTtlJiYoYS5tb2RlPSJjb3JzIiksZmV0Y2gocixhKS50aGVuKGZ1bmN0aW9uKHUpe2lmKCF1Lm9rKXRocm93IHU7cmV0dXJuIHUuYmxvYigpfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gY3JlYXRlSW1hZ2VCaXRtYXAodSx7cHJlbXVsdGlwbHlBbHBoYToibm9uZSIsY29sb3JTcGFjZUNvbnZlcnNpb246Im5vbmUifSl9KS50aGVuKGZ1bmN0aW9uKHUpe2k9dSxzZXRUaW1lb3V0KHMpfSkuY2F0Y2goZnVuY3Rpb24odSl7bz11LHNldFRpbWVvdXQocyl9KSxuPW51bGx9cmV0dXJuIG59ZnVuY3Rpb24gJG4ocil7cmV0dXJuIHR5cGVvZiBJbWFnZUJpdG1hcDwidSImJnIgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcHx8dHlwZW9mIEltYWdlRGF0YTwidSImJnIgaW5zdGFuY2VvZiBJbWFnZURhdGF8fHR5cGVvZiBIVE1MRWxlbWVudDwidSImJnIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH1mdW5jdGlvbiB3cihyLGUsdCl7cmV0dXJuICRuKHIpPyhzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dChudWxsLHIpfSkscik6VHUocixlLHQpfWZ1bmN0aW9uIEFyKHIsZSx0KXt0PXR8fGllLnRleHR1cmVPcHRpb25zO2NvbnN0IG49dC50YXJnZXR8fHNlO2lmKHIuYmluZFRleHR1cmUobixlKSx0LmNvbG9yPT09ITEpcmV0dXJuO2NvbnN0IG89X3UodC5jb2xvcik7aWYobj09PWFlKWZvcihsZXQgaT0wO2k8NjsrK2kpci50ZXhJbWFnZTJEKHByK2ksMCxSLDEsMSwwLFIsUyxvKTtlbHNlIG49PT1iZXx8bj09PXhlP3IudGV4SW1hZ2UzRChuLDAsUiwxLDEsMSwwLFIsUyxvKTpyLnRleEltYWdlMkQobiwwLFIsMSwxLDAsUixTLG8pfWZ1bmN0aW9uIHd1KHIsZSx0LG4pe3JldHVybiBuPW58fHFlLHQ9dHx8aWUudGV4dHVyZU9wdGlvbnMsQXIocixlLHQpLHQ9T2JqZWN0LmFzc2lnbih7fSx0KSx3cih0LnNyYyx0LmNyb3NzT3JpZ2luLGZ1bmN0aW9uKGkscyl7aT9uKGksZSxzKTooR24ocixlLHMsdCksbihudWxsLGUscykpfSl9ZnVuY3Rpb24gQXUocixlLHQsbil7bj1ufHxxZTtjb25zdCBvPXQuc3JjO2lmKG8ubGVuZ3RoIT09Nil0aHJvdyJ0aGVyZSBtdXN0IGJlIDYgdXJscyBmb3IgYSBjdWJlbWFwIjtjb25zdCBpPXQubGV2ZWx8fDAscz10LmludGVybmFsRm9ybWF0fHx0LmZvcm1hdHx8UixhPVhlKHMpLHU9dC5mb3JtYXR8fGEuZm9ybWF0LGY9dC50eXBlfHxTLGQ9dC50YXJnZXR8fHNlO2lmKGQhPT1hZSl0aHJvdyJ0YXJnZXQgbXVzdCBiZSBURVhUVVJFX0NVQkVfTUFQIjtBcihyLGUsdCksdD1PYmplY3QuYXNzaWduKHt9LHQpO2xldCBwPTY7Y29uc3QgZz1bXSxiPUVyKHIsdCk7bGV0IGg7ZnVuY3Rpb24geChFKXtyZXR1cm4gZnVuY3Rpb24odixGKXstLXAsdj9nLnB1c2godik6Ri53aWR0aCE9PUYuaGVpZ2h0P2cucHVzaCgiY3ViZW1hcCBmYWNlIGltZyBpcyBub3QgYSBzcXVhcmU6ICIrRi5zcmMpOihNZShyLHQpLHIuYmluZFRleHR1cmUoZCxlKSxwPT09NT9FcigpLmZvckVhY2goZnVuY3Rpb24oayl7ci50ZXhJbWFnZTJEKGssaSxzLHUsZixGKX0pOnIudGV4SW1hZ2UyRChFLGkscyx1LGYsRiksUWUodCkmJnIuZ2VuZXJhdGVNaXBtYXAoZCkpLHA9PT0wJiZuKGcubGVuZ3RoP2c6dm9pZCAwLGUsaCl9fWg9by5tYXAoZnVuY3Rpb24oRSx2KXtyZXR1cm4gd3IoRSx0LmNyb3NzT3JpZ2luLHgoYlt2XSkpfSl9ZnVuY3Rpb24gSXUocixlLHQsbil7bj1ufHxxZTtjb25zdCBvPXQuc3JjLGk9dC5pbnRlcm5hbEZvcm1hdHx8dC5mb3JtYXR8fFIscz1YZShpKSxhPXQuZm9ybWF0fHxzLmZvcm1hdCx1PXQudHlwZXx8UyxmPXQudGFyZ2V0fHx4ZTtpZihmIT09YmUmJmYhPT14ZSl0aHJvdyJ0YXJnZXQgbXVzdCBiZSBURVhUVVJFXzNEIG9yIFRFWFRVUkVfMkRfQVJSQVkiO0FyKHIsZSx0KSx0PU9iamVjdC5hc3NpZ24oe30sdCk7bGV0IGQ9by5sZW5ndGg7Y29uc3QgcD1bXTtsZXQgZztjb25zdCBiPXQubGV2ZWx8fDA7bGV0IGg9dC53aWR0aCx4PXQuaGVpZ2h0O2NvbnN0IEU9by5sZW5ndGg7bGV0IHY9ITA7ZnVuY3Rpb24gRihrKXtyZXR1cm4gZnVuY3Rpb24oRyx6KXtpZigtLWQsRylwLnB1c2goRyk7ZWxzZXtpZihNZShyLHQpLHIuYmluZFRleHR1cmUoZixlKSx2KXt2PSExLGg9dC53aWR0aHx8ei53aWR0aCx4PXQuaGVpZ2h0fHx6LmhlaWdodCxyLnRleEltYWdlM0QoZixiLGksaCx4LEUsMCxhLHUsbnVsbCk7Zm9yKGxldCBIPTA7SDxFOysrSClyLnRleFN1YkltYWdlM0QoZixiLDAsMCxILGgseCwxLGEsdSx6KX1lbHNle2xldCBIPXosJDsoei53aWR0aCE9PWh8fHouaGVpZ2h0IT09eCkmJigkPXduKCksSD0kLmNhbnZhcywkLmNhbnZhcy53aWR0aD1oLCQuY2FudmFzLmhlaWdodD14LCQuZHJhd0ltYWdlKHosMCwwLGgseCkpLHIudGV4U3ViSW1hZ2UzRChmLGIsMCwwLGssaCx4LDEsYSx1LEgpLCQmJkg9PT0kLmNhbnZhcyYmKCQuY2FudmFzLndpZHRoPTAsJC5jYW52YXMuaGVpZ2h0PTApfVFlKHQpJiZyLmdlbmVyYXRlTWlwbWFwKGYpfWQ9PT0wJiZuKHAubGVuZ3RoP3A6dm9pZCAwLGUsZyl9fWc9by5tYXAoZnVuY3Rpb24oayxHKXtyZXR1cm4gd3Ioayx0LmNyb3NzT3JpZ2luLEYoRykpfSl9ZnVuY3Rpb24gU3UocixlLHQsbil7bj1ufHxpZS50ZXh0dXJlT3B0aW9ucztjb25zdCBvPW4udGFyZ2V0fHxzZTtyLmJpbmRUZXh0dXJlKG8sZSk7bGV0IGk9bi53aWR0aCxzPW4uaGVpZ2h0LGE9bi5kZXB0aDtjb25zdCB1PW4ubGV2ZWx8fDAsZj1uLmludGVybmFsRm9ybWF0fHxuLmZvcm1hdHx8UixkPVhlKGYpLHA9bi5mb3JtYXR8fGQuZm9ybWF0LGc9bi50eXBlfHxidShyLHQsZC50eXBlKTtpZihIZSh0KSl0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkmJih0PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSk7ZWxzZXtjb25zdCBFPW1uKGcpO3Q9bmV3IEUodCl9Y29uc3QgYj1wdShmLGcpLGg9dC5ieXRlTGVuZ3RoL2I7aWYoaCUxKXRocm93Imxlbmd0aCB3cm9uZyBzaXplIGZvciBmb3JtYXQ6ICIrVG4ocixwKTtsZXQgeDtpZihvPT09YmV8fG89PT14ZSlpZighaSYmIXMmJiFhKXtjb25zdCBFPU1hdGguY2JydChoKTtpZihFJTEhPT0wKXRocm93ImNhbid0IGd1ZXNzIGN1YmUgc2l6ZSBvZiBhcnJheSBvZiBudW1FbGVtZW50czogIitoO2k9RSxzPUUsYT1FfWVsc2UgaSYmKCFzfHwhYSk/KHg9UnQocixvLHMsYSxoL2kpLHM9eC53aWR0aCxhPXguaGVpZ2h0KTpzJiYoIWl8fCFhKT8oeD1SdChyLG8saSxhLGgvcyksaT14LndpZHRoLGE9eC5oZWlnaHQpOih4PVJ0KHIsbyxpLHMsaC9hKSxpPXgud2lkdGgscz14LmhlaWdodCk7ZWxzZSB4PVJ0KHIsbyxpLHMsaCksaT14LndpZHRoLHM9eC5oZWlnaHQ7aWYoTG4ociksci5waXhlbFN0b3JlaShicixuLnVucGFja0FsaWdubWVudHx8MSksTWUocixuKSxvPT09YWUpe2NvbnN0IEU9Yi90LkJZVEVTX1BFUl9FTEVNRU5ULHY9aC82KkU7VHIocixuKS5mb3JFYWNoKEY9Pntjb25zdCBrPXYqRi5uZHgsRz10LnN1YmFycmF5KGssayt2KTtyLnRleEltYWdlMkQoRi5mYWNlLHUsZixpLHMsMCxwLGcsRyl9KX1lbHNlIG89PT1iZXx8bz09PXhlP3IudGV4SW1hZ2UzRChvLHUsZixpLHMsYSwwLHAsZyx0KTpyLnRleEltYWdlMkQobyx1LGYsaSxzLDAscCxnLHQpO3JldHVybnt3aWR0aDppLGhlaWdodDpzLGRlcHRoOmEsdHlwZTpnfX1mdW5jdGlvbiBSdShyLGUsdCl7Y29uc3Qgbj10LnRhcmdldHx8c2U7ci5iaW5kVGV4dHVyZShuLGUpO2NvbnN0IG89dC5sZXZlbHx8MCxpPXQuaW50ZXJuYWxGb3JtYXR8fHQuZm9ybWF0fHxSLHM9WGUoaSksYT10LmZvcm1hdHx8cy5mb3JtYXQsdT10LnR5cGV8fHMudHlwZTtpZihNZShyLHQpLG49PT1hZSlmb3IobGV0IGY9MDtmPDY7KytmKXIudGV4SW1hZ2UyRChwcitmLG8saSx0LndpZHRoLHQuaGVpZ2h0LDAsYSx1LG51bGwpO2Vsc2Ugbj09PWJlfHxuPT09eGU/ci50ZXhJbWFnZTNEKG4sbyxpLHQud2lkdGgsdC5oZWlnaHQsdC5kZXB0aCwwLGEsdSxudWxsKTpyLnRleEltYWdlMkQobixvLGksdC53aWR0aCx0LmhlaWdodCwwLGEsdSxudWxsKX1mdW5jdGlvbiBXbihyLGUsdCl7dD10fHxxZSxlPWV8fGllLnRleHR1cmVPcHRpb25zO2NvbnN0IG49ci5jcmVhdGVUZXh0dXJlKCksbz1lLnRhcmdldHx8c2U7bGV0IGk9ZS53aWR0aHx8MSxzPWUuaGVpZ2h0fHwxO2NvbnN0IGE9ZS5pbnRlcm5hbEZvcm1hdHx8UjtyLmJpbmRUZXh0dXJlKG8sbiksbz09PWFlJiYoci50ZXhQYXJhbWV0ZXJpKG8sdnQsX3QpLHIudGV4UGFyYW1ldGVyaShvLEV0LF90KSk7bGV0IHU9ZS5zcmM7aWYodSlpZih0eXBlb2YgdT09ImZ1bmN0aW9uIiYmKHU9dShyLGUpKSx0eXBlb2YgdT09InN0cmluZyIpd3UocixuLGUsdCk7ZWxzZSBpZihIZSh1KXx8QXJyYXkuaXNBcnJheSh1KSYmKHR5cGVvZiB1WzBdPT0ibnVtYmVyInx8QXJyYXkuaXNBcnJheSh1WzBdKXx8SGUodVswXSkpKXtjb25zdCBmPVN1KHIsbix1LGUpO2k9Zi53aWR0aCxzPWYuaGVpZ2h0fWVsc2UgQXJyYXkuaXNBcnJheSh1KSYmKHR5cGVvZiB1WzBdPT0ic3RyaW5nInx8JG4odVswXSkpP289PT1hZT9BdShyLG4sZSx0KTpJdShyLG4sZSx0KTooR24ocixuLHUsZSksaT11LndpZHRoLHM9dS5oZWlnaHQpO2Vsc2UgUnUocixuLGUpO3JldHVybiBRZShlKSYmdnIocixuLGUsaSxzLGEpLHpuKHIsbixlKSxufWNvbnN0IElyPXBuO2Z1bmN0aW9uIFZuKHIpe3JldHVybiB0eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5nZXRFbGVtZW50QnlJZD9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChyKTpudWxsfWNvbnN0IEZ0PTMzOTg0LFB0PTM0OTYyLEZ1PTM0OTYzLFB1PTM1NzEzLGt1PTM1NzE0LER1PTM1NjMyLEN1PTM1NjMzLEJ1PTM1OTgxLEhuPTM1NzE4LE11PTM1NzIxLE91PTM1OTcxLFV1PTM1MzgyLE51PTM1Mzk2LEx1PTM1Mzk4LHp1PTM1MzkyLEd1PTM1Mzk1LGt0PTUxMjYsam49MzU2NjQsWW49MzU2NjUsWG49MzU2NjYsU3I9NTEyNCxRbj0zNTY2Nyxxbj0zNTY2OCxLbj0zNTY2OSxKbj0zNTY3MCxabj0zNTY3MSxlbz0zNTY3Mix0bz0zNTY3Myxybz0zNTY3NCxubz0zNTY3NSxvbz0zNTY3NiwkdT0zNTY3OCxXdT0zNTY4MCxWdT0zNTY3OSxIdT0zNTY4MixqdT0zNTY4NSxZdT0zNTY4NixYdT0zNTY4NyxRdT0zNTY4OCxxdT0zNTY4OSxLdT0zNTY5MCxKdT0zNjI4OSxadT0zNjI5MixlYz0zNjI5MyxScj01MTI1LGlvPTM2Mjk0LHNvPTM2Mjk1LGFvPTM2Mjk2LHRjPTM2Mjk4LHJjPTM2Mjk5LG5jPTM2MzAwLG9jPTM2MzAzLGljPTM2MzA2LHNjPTM2MzA3LGFjPTM2MzA4LHVjPTM2MzExLER0PTM1NTMsQ3Q9MzQwNjcsRnI9MzI4NzksQnQ9MzU4NjYsXz17fTtmdW5jdGlvbiB1byhyLGUpe3JldHVybiBfW2VdLmJpbmRQb2ludH1mdW5jdGlvbiBjYyhyLGUpe3JldHVybiBmdW5jdGlvbih0KXtyLnVuaWZvcm0xZihlLHQpfX1mdW5jdGlvbiBmYyhyLGUpe3JldHVybiBmdW5jdGlvbih0KXtyLnVuaWZvcm0xZnYoZSx0KX19ZnVuY3Rpb24gbGMocixlKXtyZXR1cm4gZnVuY3Rpb24odCl7ci51bmlmb3JtMmZ2KGUsdCl9fWZ1bmN0aW9uIGRjKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybTNmdihlLHQpfX1mdW5jdGlvbiBoYyhyLGUpe3JldHVybiBmdW5jdGlvbih0KXtyLnVuaWZvcm00ZnYoZSx0KX19ZnVuY3Rpb24gY28ocixlKXtyZXR1cm4gZnVuY3Rpb24odCl7ci51bmlmb3JtMWkoZSx0KX19ZnVuY3Rpb24gZm8ocixlKXtyZXR1cm4gZnVuY3Rpb24odCl7ci51bmlmb3JtMWl2KGUsdCl9fWZ1bmN0aW9uIGxvKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybTJpdihlLHQpfX1mdW5jdGlvbiBobyhyLGUpe3JldHVybiBmdW5jdGlvbih0KXtyLnVuaWZvcm0zaXYoZSx0KX19ZnVuY3Rpb24gbW8ocixlKXtyZXR1cm4gZnVuY3Rpb24odCl7ci51bmlmb3JtNGl2KGUsdCl9fWZ1bmN0aW9uIG1jKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybTF1aShlLHQpfX1mdW5jdGlvbiBwYyhyLGUpe3JldHVybiBmdW5jdGlvbih0KXtyLnVuaWZvcm0xdWl2KGUsdCl9fWZ1bmN0aW9uIGdjKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybTJ1aXYoZSx0KX19ZnVuY3Rpb24geWMocixlKXtyZXR1cm4gZnVuY3Rpb24odCl7ci51bmlmb3JtM3VpdihlLHQpfX1mdW5jdGlvbiBiYyhyLGUpe3JldHVybiBmdW5jdGlvbih0KXtyLnVuaWZvcm00dWl2KGUsdCl9fWZ1bmN0aW9uIHhjKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybU1hdHJpeDJmdihlLCExLHQpfX1mdW5jdGlvbiBfYyhyLGUpe3JldHVybiBmdW5jdGlvbih0KXtyLnVuaWZvcm1NYXRyaXgzZnYoZSwhMSx0KX19ZnVuY3Rpb24gdmMocixlKXtyZXR1cm4gZnVuY3Rpb24odCl7ci51bmlmb3JtTWF0cml4NGZ2KGUsITEsdCl9fWZ1bmN0aW9uIEVjKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybU1hdHJpeDJ4M2Z2KGUsITEsdCl9fWZ1bmN0aW9uIFRjKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybU1hdHJpeDN4MmZ2KGUsITEsdCl9fWZ1bmN0aW9uIHdjKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybU1hdHJpeDJ4NGZ2KGUsITEsdCl9fWZ1bmN0aW9uIEFjKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybU1hdHJpeDR4MmZ2KGUsITEsdCl9fWZ1bmN0aW9uIEljKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybU1hdHJpeDN4NGZ2KGUsITEsdCl9fWZ1bmN0aW9uIFNjKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3IudW5pZm9ybU1hdHJpeDR4M2Z2KGUsITEsdCl9fWZ1bmN0aW9uIE4ocixlLHQsbil7Y29uc3Qgbz11byhyLGUpO3JldHVybiBWZShyKT9mdW5jdGlvbihpKXtsZXQgcyxhOyFpfHxkcihyLGkpPyhzPWksYT1udWxsKToocz1pLnRleHR1cmUsYT1pLnNhbXBsZXIpLHIudW5pZm9ybTFpKG4sdCksci5hY3RpdmVUZXh0dXJlKEZ0K3QpLHIuYmluZFRleHR1cmUobyxzKSxyLmJpbmRTYW1wbGVyKHQsYSl9OmZ1bmN0aW9uKGkpe3IudW5pZm9ybTFpKG4sdCksci5hY3RpdmVUZXh0dXJlKEZ0K3QpLHIuYmluZFRleHR1cmUobyxpKX19ZnVuY3Rpb24gTChyLGUsdCxuLG8pe2NvbnN0IGk9dW8ocixlKSxzPW5ldyBJbnQzMkFycmF5KG8pO2ZvcihsZXQgYT0wO2E8bzsrK2Epc1thXT10K2E7cmV0dXJuIFZlKHIpP2Z1bmN0aW9uKGEpe3IudW5pZm9ybTFpdihuLHMpLGEuZm9yRWFjaChmdW5jdGlvbih1LGYpe3IuYWN0aXZlVGV4dHVyZShGdCtzW2ZdKTtsZXQgZCxwOyF1fHxkcihyLHUpPyhkPXUscD1udWxsKTooZD11LnRleHR1cmUscD11LnNhbXBsZXIpLHIuYmluZFNhbXBsZXIodCxwKSxyLmJpbmRUZXh0dXJlKGksZCl9KX06ZnVuY3Rpb24oYSl7ci51bmlmb3JtMWl2KG4scyksYS5mb3JFYWNoKGZ1bmN0aW9uKHUsZil7ci5hY3RpdmVUZXh0dXJlKEZ0K3NbZl0pLHIuYmluZFRleHR1cmUoaSx1KX0pfX1fW2t0XT17VHlwZTpGbG9hdDMyQXJyYXksc2l6ZTo0LHNldHRlcjpjYyxhcnJheVNldHRlcjpmY30sX1tqbl09e1R5cGU6RmxvYXQzMkFycmF5LHNpemU6OCxzZXR0ZXI6bGMsY29sczoyfSxfW1luXT17VHlwZTpGbG9hdDMyQXJyYXksc2l6ZToxMixzZXR0ZXI6ZGMsY29sczozfSxfW1huXT17VHlwZTpGbG9hdDMyQXJyYXksc2l6ZToxNixzZXR0ZXI6aGMsY29sczo0fSxfW1NyXT17VHlwZTpJbnQzMkFycmF5LHNpemU6NCxzZXR0ZXI6Y28sYXJyYXlTZXR0ZXI6Zm99LF9bUW5dPXtUeXBlOkludDMyQXJyYXksc2l6ZTo4LHNldHRlcjpsbyxjb2xzOjJ9LF9bcW5dPXtUeXBlOkludDMyQXJyYXksc2l6ZToxMixzZXR0ZXI6aG8sY29sczozfSxfW0tuXT17VHlwZTpJbnQzMkFycmF5LHNpemU6MTYsc2V0dGVyOm1vLGNvbHM6NH0sX1tScl09e1R5cGU6VWludDMyQXJyYXksc2l6ZTo0LHNldHRlcjptYyxhcnJheVNldHRlcjpwY30sX1tpb109e1R5cGU6VWludDMyQXJyYXksc2l6ZTo4LHNldHRlcjpnYyxjb2xzOjJ9LF9bc29dPXtUeXBlOlVpbnQzMkFycmF5LHNpemU6MTIsc2V0dGVyOnljLGNvbHM6M30sX1thb109e1R5cGU6VWludDMyQXJyYXksc2l6ZToxNixzZXR0ZXI6YmMsY29sczo0fSxfW0puXT17VHlwZTpVaW50MzJBcnJheSxzaXplOjQsc2V0dGVyOmNvLGFycmF5U2V0dGVyOmZvfSxfW1puXT17VHlwZTpVaW50MzJBcnJheSxzaXplOjgsc2V0dGVyOmxvLGNvbHM6Mn0sX1tlb109e1R5cGU6VWludDMyQXJyYXksc2l6ZToxMixzZXR0ZXI6aG8sY29sczozfSxfW3RvXT17VHlwZTpVaW50MzJBcnJheSxzaXplOjE2LHNldHRlcjptbyxjb2xzOjR9LF9bcm9dPXtUeXBlOkZsb2F0MzJBcnJheSxzaXplOjMyLHNldHRlcjp4Yyxyb3dzOjIsY29sczoyfSxfW25vXT17VHlwZTpGbG9hdDMyQXJyYXksc2l6ZTo0OCxzZXR0ZXI6X2Mscm93czozLGNvbHM6M30sX1tvb109e1R5cGU6RmxvYXQzMkFycmF5LHNpemU6NjQsc2V0dGVyOnZjLHJvd3M6NCxjb2xzOjR9LF9banVdPXtUeXBlOkZsb2F0MzJBcnJheSxzaXplOjMyLHNldHRlcjpFYyxyb3dzOjIsY29sczozfSxfW1l1XT17VHlwZTpGbG9hdDMyQXJyYXksc2l6ZTozMixzZXR0ZXI6d2Mscm93czoyLGNvbHM6NH0sX1tYdV09e1R5cGU6RmxvYXQzMkFycmF5LHNpemU6NDgsc2V0dGVyOlRjLHJvd3M6Myxjb2xzOjJ9LF9bUXVdPXtUeXBlOkZsb2F0MzJBcnJheSxzaXplOjQ4LHNldHRlcjpJYyxyb3dzOjMsY29sczo0fSxfW3F1XT17VHlwZTpGbG9hdDMyQXJyYXksc2l6ZTo2NCxzZXR0ZXI6QWMscm93czo0LGNvbHM6Mn0sX1tLdV09e1R5cGU6RmxvYXQzMkFycmF5LHNpemU6NjQsc2V0dGVyOlNjLHJvd3M6NCxjb2xzOjN9LF9bJHVdPXtUeXBlOm51bGwsc2l6ZTowLHNldHRlcjpOLGFycmF5U2V0dGVyOkwsYmluZFBvaW50OkR0fSxfW1d1XT17VHlwZTpudWxsLHNpemU6MCxzZXR0ZXI6TixhcnJheVNldHRlcjpMLGJpbmRQb2ludDpDdH0sX1tWdV09e1R5cGU6bnVsbCxzaXplOjAsc2V0dGVyOk4sYXJyYXlTZXR0ZXI6TCxiaW5kUG9pbnQ6RnJ9LF9bSHVdPXtUeXBlOm51bGwsc2l6ZTowLHNldHRlcjpOLGFycmF5U2V0dGVyOkwsYmluZFBvaW50OkR0fSxfW0p1XT17VHlwZTpudWxsLHNpemU6MCxzZXR0ZXI6TixhcnJheVNldHRlcjpMLGJpbmRQb2ludDpCdH0sX1tadV09e1R5cGU6bnVsbCxzaXplOjAsc2V0dGVyOk4sYXJyYXlTZXR0ZXI6TCxiaW5kUG9pbnQ6QnR9LF9bZWNdPXtUeXBlOm51bGwsc2l6ZTowLHNldHRlcjpOLGFycmF5U2V0dGVyOkwsYmluZFBvaW50OkN0fSxfW3RjXT17VHlwZTpudWxsLHNpemU6MCxzZXR0ZXI6TixhcnJheVNldHRlcjpMLGJpbmRQb2ludDpEdH0sX1tyY109e1R5cGU6bnVsbCxzaXplOjAsc2V0dGVyOk4sYXJyYXlTZXR0ZXI6TCxiaW5kUG9pbnQ6RnJ9LF9bbmNdPXtUeXBlOm51bGwsc2l6ZTowLHNldHRlcjpOLGFycmF5U2V0dGVyOkwsYmluZFBvaW50OkN0fSxfW29jXT17VHlwZTpudWxsLHNpemU6MCxzZXR0ZXI6TixhcnJheVNldHRlcjpMLGJpbmRQb2ludDpCdH0sX1tpY109e1R5cGU6bnVsbCxzaXplOjAsc2V0dGVyOk4sYXJyYXlTZXR0ZXI6TCxiaW5kUG9pbnQ6RHR9LF9bc2NdPXtUeXBlOm51bGwsc2l6ZTowLHNldHRlcjpOLGFycmF5U2V0dGVyOkwsYmluZFBvaW50OkZyfSxfW2FjXT17VHlwZTpudWxsLHNpemU6MCxzZXR0ZXI6TixhcnJheVNldHRlcjpMLGJpbmRQb2ludDpDdH0sX1t1Y109e1R5cGU6bnVsbCxzaXplOjAsc2V0dGVyOk4sYXJyYXlTZXR0ZXI6TCxiaW5kUG9pbnQ6QnR9O2Z1bmN0aW9uIE10KHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHQudmFsdWUpc3dpdGNoKHIuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGUpLHQudmFsdWUubGVuZ3RoKXtjYXNlIDQ6ci52ZXJ0ZXhBdHRyaWI0ZnYoZSx0LnZhbHVlKTticmVhaztjYXNlIDM6ci52ZXJ0ZXhBdHRyaWIzZnYoZSx0LnZhbHVlKTticmVhaztjYXNlIDI6ci52ZXJ0ZXhBdHRyaWIyZnYoZSx0LnZhbHVlKTticmVhaztjYXNlIDE6ci52ZXJ0ZXhBdHRyaWIxZnYoZSx0LnZhbHVlKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidGhlIGxlbmd0aCBvZiBhIGZsb2F0IGNvbnN0YW50IHZhbHVlIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA0ISIpfWVsc2Ugci5iaW5kQnVmZmVyKFB0LHQuYnVmZmVyKSxyLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGUpLHIudmVydGV4QXR0cmliUG9pbnRlcihlLHQubnVtQ29tcG9uZW50c3x8dC5zaXplLHQudHlwZXx8a3QsdC5ub3JtYWxpemV8fCExLHQuc3RyaWRlfHwwLHQub2Zmc2V0fHwwKSxyLnZlcnRleEF0dHJpYkRpdmlzb3ImJnIudmVydGV4QXR0cmliRGl2aXNvcihlLHQuZGl2aXNvcnx8MCl9fWZ1bmN0aW9uIGNlKHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHQudmFsdWUpaWYoci5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoZSksdC52YWx1ZS5sZW5ndGg9PT00KXIudmVydGV4QXR0cmliNGl2KGUsdC52YWx1ZSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlRoZSBsZW5ndGggb2YgYW4gaW50ZWdlciBjb25zdGFudCB2YWx1ZSBtdXN0IGJlIDQhIik7ZWxzZSByLmJpbmRCdWZmZXIoUHQsdC5idWZmZXIpLHIuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoZSksci52ZXJ0ZXhBdHRyaWJJUG9pbnRlcihlLHQubnVtQ29tcG9uZW50c3x8dC5zaXplLHQudHlwZXx8U3IsdC5zdHJpZGV8fDAsdC5vZmZzZXR8fDApLHIudmVydGV4QXR0cmliRGl2aXNvciYmci52ZXJ0ZXhBdHRyaWJEaXZpc29yKGUsdC5kaXZpc29yfHwwKX19ZnVuY3Rpb24gT3QocixlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYodC52YWx1ZSlpZihyLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShlKSx0LnZhbHVlLmxlbmd0aD09PTQpci52ZXJ0ZXhBdHRyaWI0dWl2KGUsdC52YWx1ZSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlRoZSBsZW5ndGggb2YgYW4gdW5zaWduZWQgaW50ZWdlciBjb25zdGFudCB2YWx1ZSBtdXN0IGJlIDQhIik7ZWxzZSByLmJpbmRCdWZmZXIoUHQsdC5idWZmZXIpLHIuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoZSksci52ZXJ0ZXhBdHRyaWJJUG9pbnRlcihlLHQubnVtQ29tcG9uZW50c3x8dC5zaXplLHQudHlwZXx8UnIsdC5zdHJpZGV8fDAsdC5vZmZzZXR8fDApLHIudmVydGV4QXR0cmliRGl2aXNvciYmci52ZXJ0ZXhBdHRyaWJEaXZpc29yKGUsdC5kaXZpc29yfHwwKX19ZnVuY3Rpb24gUHIocixlLHQpe2NvbnN0IG49dC5zaXplLG89dC5jb3VudDtyZXR1cm4gZnVuY3Rpb24oaSl7ci5iaW5kQnVmZmVyKFB0LGkuYnVmZmVyKTtjb25zdCBzPWkuc2l6ZXx8aS5udW1Db21wb25lbnRzfHxuLGE9cy9vLHU9aS50eXBlfHxrdCxkPV9bdV0uc2l6ZSpzLHA9aS5ub3JtYWxpemV8fCExLGc9aS5vZmZzZXR8fDAsYj1kL287Zm9yKGxldCBoPTA7aDxvOysraClyLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGUraCksci52ZXJ0ZXhBdHRyaWJQb2ludGVyKGUraCxhLHUscCxkLGcrYipoKSxyLnZlcnRleEF0dHJpYkRpdmlzb3ImJnIudmVydGV4QXR0cmliRGl2aXNvcihlK2gsaS5kaXZpc29yfHwwKX19Y29uc3QgUD17fTtQW2t0XT17c2l6ZTo0LHNldHRlcjpNdH0sUFtqbl09e3NpemU6OCxzZXR0ZXI6TXR9LFBbWW5dPXtzaXplOjEyLHNldHRlcjpNdH0sUFtYbl09e3NpemU6MTYsc2V0dGVyOk10fSxQW1NyXT17c2l6ZTo0LHNldHRlcjpjZX0sUFtRbl09e3NpemU6OCxzZXR0ZXI6Y2V9LFBbcW5dPXtzaXplOjEyLHNldHRlcjpjZX0sUFtLbl09e3NpemU6MTYsc2V0dGVyOmNlfSxQW1JyXT17c2l6ZTo0LHNldHRlcjpPdH0sUFtpb109e3NpemU6OCxzZXR0ZXI6T3R9LFBbc29dPXtzaXplOjEyLHNldHRlcjpPdH0sUFthb109e3NpemU6MTYsc2V0dGVyOk90fSxQW0puXT17c2l6ZTo0LHNldHRlcjpjZX0sUFtabl09e3NpemU6OCxzZXR0ZXI6Y2V9LFBbZW9dPXtzaXplOjEyLHNldHRlcjpjZX0sUFt0b109e3NpemU6MTYsc2V0dGVyOmNlfSxQW3JvXT17c2l6ZTo0LHNldHRlcjpQcixjb3VudDoyfSxQW25vXT17c2l6ZTo5LHNldHRlcjpQcixjb3VudDozfSxQW29vXT17c2l6ZToxNixzZXR0ZXI6UHIsY291bnQ6NH07Y29uc3QgUmM9L0VSUk9SOlxzKlxkKzooXGQrKS9naTtmdW5jdGlvbiBGYyhyLGU9IiIsdD0wKXtjb25zdCBuPVsuLi5lLm1hdGNoQWxsKFJjKV0sbz1uZXcgTWFwKG4ubWFwKChpLHMpPT57Y29uc3QgYT1wYXJzZUludChpWzFdKSx1PW5bcysxXSxmPXU/dS5pbmRleDplLmxlbmd0aCxkPWUuc3Vic3RyaW5nKGkuaW5kZXgsZik7cmV0dXJuW2EtMSxkXX0pKTtyZXR1cm4gci5zcGxpdChgCmApLm1hcCgoaSxzKT0+e2NvbnN0IGE9by5nZXQocyk7cmV0dXJuYCR7cysxK3R9OiAke2l9JHthP2AKCl5eXiAke2F9YDoiIn1gfSkuam9pbihgCmApfWNvbnN0IHBvPS9eWyBcdF0qXG4vO2Z1bmN0aW9uIGdvKHIpe2xldCBlPTA7cmV0dXJuIHBvLnRlc3QocikmJihlPTEscj1yLnJlcGxhY2UocG8sIiIpKSx7bGluZU9mZnNldDplLHNoYWRlclNvdXJjZTpyfX1mdW5jdGlvbiBQYyhyLGUpe3JldHVybiByLmVycm9yQ2FsbGJhY2soZSksci5jYWxsYmFjayYmc2V0VGltZW91dCgoKT0+e3IuY2FsbGJhY2soYCR7ZX0KJHtyLmVycm9ycy5qb2luKGAKYCl9YCl9KSxudWxsfWZ1bmN0aW9uIGtjKHIsZSx0LG4pe2lmKG49bnx8SXIsIXIuZ2V0U2hhZGVyUGFyYW1ldGVyKHQsUHUpKXtjb25zdCBpPXIuZ2V0U2hhZGVySW5mb0xvZyh0KSx7bGluZU9mZnNldDpzLHNoYWRlclNvdXJjZTphfT1nbyhyLmdldFNoYWRlclNvdXJjZSh0KSksdT1gJHtGYyhhLGkscyl9CkVycm9yIGNvbXBpbGluZyAke1RuKHIsZSl9OiAke2l9YDtyZXR1cm4gbih1KSx1fXJldHVybiIifWZ1bmN0aW9uIGtyKHIsZSx0KXtsZXQgbixvLGk7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiImJih0PWUsZT12b2lkIDApLHR5cGVvZiByPT0iZnVuY3Rpb24iKXQ9cixyPXZvaWQgMDtlbHNlIGlmKHImJiFBcnJheS5pc0FycmF5KHIpKXtjb25zdCBmPXI7dD1mLmVycm9yQ2FsbGJhY2sscj1mLmF0dHJpYkxvY2F0aW9ucyxuPWYudHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyxvPWYudHJhbnNmb3JtRmVlZGJhY2tNb2RlLGk9Zi5jYWxsYmFja31jb25zdCBzPXR8fElyLGE9W10sdT17ZXJyb3JDYWxsYmFjayhmLC4uLmQpe2EucHVzaChmKSxzKGYsLi4uZCl9LHRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3M6bix0cmFuc2Zvcm1GZWVkYmFja01vZGU6byxjYWxsYmFjazppLGVycm9yczphfTt7bGV0IGY9e307QXJyYXkuaXNBcnJheShyKT9yLmZvckVhY2goZnVuY3Rpb24oZCxwKXtmW2RdPWU/ZVtwXTpwfSk6Zj1yfHx7fSx1LmF0dHJpYkxvY2F0aW9ucz1mfXJldHVybiB1fWNvbnN0IERjPVsiVkVSVEVYX1NIQURFUiIsIkZSQUdNRU5UX1NIQURFUiJdO2Z1bmN0aW9uIENjKHIsZSl7aWYoZS5pbmRleE9mKCJmcmFnIik+PTApcmV0dXJuIER1O2lmKGUuaW5kZXhPZigidmVydCIpPj0wKXJldHVybiBDdX1mdW5jdGlvbiBCYyhyLGUsdCl7Y29uc3Qgbj1yLmdldEF0dGFjaGVkU2hhZGVycyhlKTtmb3IoY29uc3QgbyBvZiBuKXQuaGFzKG8pJiZyLmRlbGV0ZVNoYWRlcihvKTtyLmRlbGV0ZVByb2dyYW0oZSl9Y29uc3QgTWM9KHI9MCk9Pm5ldyBQcm9taXNlKGU9PnNldFRpbWVvdXQoZSxyKSk7ZnVuY3Rpb24gT2MocixlLHQpe2NvbnN0IG49ci5jcmVhdGVQcm9ncmFtKCkse2F0dHJpYkxvY2F0aW9uczpvLHRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3M6aSx0cmFuc2Zvcm1GZWVkYmFja01vZGU6c309a3IodCk7Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDsrK2Epe2xldCB1PWVbYV07aWYodHlwZW9mIHU9PSJzdHJpbmciKXtjb25zdCBmPVZuKHUpLGQ9Zj9mLnRleHQ6dTtsZXQgcD1yW0RjW2FdXTtmJiZmLnR5cGUmJihwPUNjKHIsZi50eXBlKXx8cCksdT1yLmNyZWF0ZVNoYWRlcihwKSxyLnNoYWRlclNvdXJjZSh1LGdvKGQpLnNoYWRlclNvdXJjZSksci5jb21waWxlU2hhZGVyKHUpLHIuYXR0YWNoU2hhZGVyKG4sdSl9fU9iamVjdC5lbnRyaWVzKG8pLmZvckVhY2goKFthLHVdKT0+ci5iaW5kQXR0cmliTG9jYXRpb24obix1LGEpKTt7bGV0IGE9aTthJiYoYS5hdHRyaWJzJiYoYT1hLmF0dHJpYnMpLEFycmF5LmlzQXJyYXkoYSl8fChhPU9iamVjdC5rZXlzKGEpKSxyLnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MobixhLHN8fEJ1KSl9cmV0dXJuIHIubGlua1Byb2dyYW0obiksbn1mdW5jdGlvbiBVYyhyLGUsdCxuLG8pe2NvbnN0IGk9a3IodCxuLG8pLHM9bmV3IFNldChlKSxhPU9jKHIsZSxpKTtmdW5jdGlvbiB1KGYsZCl7Y29uc3QgcD1MYyhmLGQsaS5lcnJvckNhbGxiYWNrKTtyZXR1cm4gcCYmQmMoZixkLHMpLHB9aWYoaS5jYWxsYmFjayl7TmMocixhKS50aGVuKCgpPT57Y29uc3QgZj11KHIsYSk7aS5jYWxsYmFjayhmLGY/dm9pZCAwOmEpfSk7cmV0dXJufXJldHVybiB1KHIsYSk/dm9pZCAwOmF9YXN5bmMgZnVuY3Rpb24gTmMocixlKXtjb25zdCB0PXIuZ2V0RXh0ZW5zaW9uKCJLSFJfcGFyYWxsZWxfc2hhZGVyX2NvbXBpbGUiKSxuPXQ/KGkscyk9PmkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzLHQuQ09NUExFVElPTl9TVEFUVVNfS0hSKTooKT0+ITA7bGV0IG89MDtkbyBhd2FpdCBNYyhvKSxvPTFlMy82MDt3aGlsZSghbihyLGUpKX1mdW5jdGlvbiBMYyhyLGUsdCl7aWYodD10fHxJciwhci5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsa3UpKXtjb25zdCBvPXIuZ2V0UHJvZ3JhbUluZm9Mb2coZSk7dChgRXJyb3IgaW4gcHJvZ3JhbSBsaW5raW5nOiAke299YCk7Y29uc3Qgcz1yLmdldEF0dGFjaGVkU2hhZGVycyhlKS5tYXAoYT0+a2MocixyLmdldFNoYWRlclBhcmFtZXRlcihhLHIuU0hBREVSX1RZUEUpLGEsdCkpO3JldHVybmAke299CiR7cy5maWx0ZXIoYT0+YSkuam9pbihgCmApfWB9fWZ1bmN0aW9uIHpjKHIsZSx0LG4sbyl7cmV0dXJuIFVjKHIsZSx0LG4sbyl9ZnVuY3Rpb24geW8ocil7Y29uc3QgZT1yLm5hbWU7cmV0dXJuIGUuc3RhcnRzV2l0aCgiZ2xfIil8fGUuc3RhcnRzV2l0aCgid2ViZ2xfIil9Y29uc3QgR2M9LyhcLnxcW3xdfFx3KykvZywkYz1yPT5yPj0iMCImJnI8PSI5IjtmdW5jdGlvbiBXYyhyLGUsdCxuKXtjb25zdCBvPXIuc3BsaXQoR2MpLmZpbHRlcihhPT5hIT09IiIpO2xldCBpPTAscz0iIjtmb3IoOzspe2NvbnN0IGE9b1tpKytdO3MrPWE7Y29uc3QgdT0kYyhhWzBdKSxmPXU/cGFyc2VJbnQoYSk6YTtpZih1JiYocys9b1tpKytdKSxpPT09by5sZW5ndGgpe3RbZl09ZTticmVha31lbHNle2NvbnN0IHA9b1tpKytdLGc9cD09PSJbIixiPXRbZl18fChnP1tdOnt9KTt0W2ZdPWIsdD1iLG5bc109bltzXXx8ZnVuY3Rpb24oaCl7cmV0dXJuIGZ1bmN0aW9uKHgpe2JvKGgseCl9fShiKSxzKz1wfX19ZnVuY3Rpb24gVmMocixlKXtsZXQgdD0wO2Z1bmN0aW9uIG4oYSx1LGYpe2NvbnN0IGQ9dS5uYW1lLmVuZHNXaXRoKCJbMF0iKSxwPXUudHlwZSxnPV9bcF07aWYoIWcpdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIHR5cGU6IDB4JHtwLnRvU3RyaW5nKDE2KX1gKTtsZXQgYjtpZihnLmJpbmRQb2ludCl7Y29uc3QgaD10O3QrPXUuc2l6ZSxkP2I9Zy5hcnJheVNldHRlcihyLHAsaCxmLHUuc2l6ZSk6Yj1nLnNldHRlcihyLHAsaCxmLHUuc2l6ZSl9ZWxzZSBnLmFycmF5U2V0dGVyJiZkP2I9Zy5hcnJheVNldHRlcihyLGYpOmI9Zy5zZXR0ZXIocixmKTtyZXR1cm4gYi5sb2NhdGlvbj1mLGJ9Y29uc3Qgbz17fSxpPXt9LHM9ci5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsSG4pO2ZvcihsZXQgYT0wO2E8czsrK2Epe2NvbnN0IHU9ci5nZXRBY3RpdmVVbmlmb3JtKGUsYSk7aWYoeW8odSkpY29udGludWU7bGV0IGY9dS5uYW1lO2YuZW5kc1dpdGgoIlswXSIpJiYoZj1mLnN1YnN0cigwLGYubGVuZ3RoLTMpKTtjb25zdCBkPXIuZ2V0VW5pZm9ybUxvY2F0aW9uKGUsdS5uYW1lKTtpZihkKXtjb25zdCBwPW4oZSx1LGQpO29bZl09cCxXYyhmLHAsaSxvKX19cmV0dXJuIG99ZnVuY3Rpb24gSGMocixlKXtjb25zdCB0PXt9LG49ci5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsT3UpO2ZvcihsZXQgbz0wO288bjsrK28pe2NvbnN0IGk9ci5nZXRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmcoZSxvKTt0W2kubmFtZV09e2luZGV4Om8sdHlwZTppLnR5cGUsc2l6ZTppLnNpemV9fXJldHVybiB0fWZ1bmN0aW9uIGpjKHIsZSl7Y29uc3QgdD1yLmdldFByb2dyYW1QYXJhbWV0ZXIoZSxIbiksbj1bXSxvPVtdO2ZvcihsZXQgYT0wO2E8dDsrK2Epe28ucHVzaChhKSxuLnB1c2goe30pO2NvbnN0IHU9ci5nZXRBY3RpdmVVbmlmb3JtKGUsYSk7blthXS5uYW1lPXUubmFtZX1bWyJVTklGT1JNX1RZUEUiLCJ0eXBlIl0sWyJVTklGT1JNX1NJWkUiLCJzaXplIl0sWyJVTklGT1JNX0JMT0NLX0lOREVYIiwiYmxvY2tOZHgiXSxbIlVOSUZPUk1fT0ZGU0VUIiwib2Zmc2V0Il1dLmZvckVhY2goZnVuY3Rpb24oYSl7Y29uc3QgdT1hWzBdLGY9YVsxXTtyLmdldEFjdGl2ZVVuaWZvcm1zKGUsbyxyW3VdKS5mb3JFYWNoKGZ1bmN0aW9uKGQscCl7bltwXVtmXT1kfSl9KTtjb25zdCBpPXt9LHM9ci5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsVXUpO2ZvcihsZXQgYT0wO2E8czsrK2Epe2NvbnN0IHU9ci5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKGUsYSksZj17aW5kZXg6ci5nZXRVbmlmb3JtQmxvY2tJbmRleChlLHUpLHVzZWRCeVZlcnRleFNoYWRlcjpyLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihlLGEsTnUpLHVzZWRCeUZyYWdtZW50U2hhZGVyOnIuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKGUsYSxMdSksc2l6ZTpyLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihlLGEsenUpLHVuaWZvcm1JbmRpY2VzOnIuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKGUsYSxHdSl9O2YudXNlZD1mLnVzZWRCeVZlcnRleFNoYWRlcnx8Zi51c2VkQnlGcmFnbWVudFNoYWRlcixpW3VdPWZ9cmV0dXJue2Jsb2NrU3BlY3M6aSx1bmlmb3JtRGF0YTpufX1mdW5jdGlvbiBibyhyLGUpe2Zvcihjb25zdCB0IGluIGUpe2NvbnN0IG49clt0XTt0eXBlb2Ygbj09ImZ1bmN0aW9uIj9uKGVbdF0pOmJvKHJbdF0sZVt0XSl9fWZ1bmN0aW9uIHhvKHIsLi4uZSl7Y29uc3QgdD1yLnVuaWZvcm1TZXR0ZXJzfHxyLG49ZS5sZW5ndGg7Zm9yKGxldCBvPTA7bzxuOysrbyl7Y29uc3QgaT1lW29dO2lmKEFycmF5LmlzQXJyYXkoaSkpe2NvbnN0IHM9aS5sZW5ndGg7Zm9yKGxldCBhPTA7YTxzOysrYSl4byh0LGlbYV0pfWVsc2UgZm9yKGNvbnN0IHMgaW4gaSl7Y29uc3QgYT10W3NdO2EmJmEoaVtzXSl9fX1mdW5jdGlvbiBZYyhyLGUpe2NvbnN0IHQ9e30sbj1yLmdldFByb2dyYW1QYXJhbWV0ZXIoZSxNdSk7Zm9yKGxldCBvPTA7bzxuOysrbyl7Y29uc3QgaT1yLmdldEFjdGl2ZUF0dHJpYihlLG8pO2lmKHlvKGkpKWNvbnRpbnVlO2NvbnN0IHM9ci5nZXRBdHRyaWJMb2NhdGlvbihlLGkubmFtZSksYT1QW2kudHlwZV0sdT1hLnNldHRlcihyLHMsYSk7dS5sb2NhdGlvbj1zLHRbaS5uYW1lXT11fXJldHVybiB0fWZ1bmN0aW9uIFhjKHIsZSl7Zm9yKGNvbnN0IHQgaW4gZSl7Y29uc3Qgbj1yW3RdO24mJm4oZVt0XSl9fWZ1bmN0aW9uIFFjKHIsZSx0KXt0LnZlcnRleEFycmF5T2JqZWN0P3IuYmluZFZlcnRleEFycmF5KHQudmVydGV4QXJyYXlPYmplY3QpOihYYyhlLmF0dHJpYlNldHRlcnN8fGUsdC5hdHRyaWJzKSx0LmluZGljZXMmJnIuYmluZEJ1ZmZlcihGdSx0LmluZGljZXMpKX1mdW5jdGlvbiBfbyhyLGUpe2NvbnN0IHQ9VmMocixlKSxuPVljKHIsZSksbz17cHJvZ3JhbTplLHVuaWZvcm1TZXR0ZXJzOnQsYXR0cmliU2V0dGVyczpufTtyZXR1cm4gVmUocikmJihvLnVuaWZvcm1CbG9ja1NwZWM9amMocixlKSxvLnRyYW5zZm9ybUZlZWRiYWNrSW5mbz1IYyhyLGUpKSxvfWNvbnN0IHFjPS9cc3x7fH18Oy87ZnVuY3Rpb24gS2MocixlLHQsbixvKXtjb25zdCBpPWtyKHQsbixvKSxzPVtdO2lmKGU9ZS5tYXAoZnVuY3Rpb24oZil7aWYoIXFjLnRlc3QoZikpe2NvbnN0IGQ9Vm4oZik7aWYoZClmPWQudGV4dDtlbHNle2NvbnN0IHA9YG5vIGVsZW1lbnQgd2l0aCBpZDogJHtmfWA7aS5lcnJvckNhbGxiYWNrKHApLHMucHVzaChwKX19cmV0dXJuIGZ9KSxzLmxlbmd0aClyZXR1cm4gUGMoaSwiIik7Y29uc3QgYT1pLmNhbGxiYWNrO2EmJihpLmNhbGxiYWNrPShmLGQpPT57YShmLGY/dm9pZCAwOl9vKHIsZCkpfSk7Y29uc3QgdT16YyhyLGUsaSk7cmV0dXJuIHU/X28ocix1KTpudWxsfWNvbnN0IEpjPTQsdm89NTEyMztmdW5jdGlvbiBaYyhyLGUsdCxuLG8saSl7dD10PT09dm9pZCAwP0pjOnQ7Y29uc3Qgcz1lLmluZGljZXMsYT1lLmVsZW1lbnRUeXBlLHU9bj09PXZvaWQgMD9lLm51bUVsZW1lbnRzOm47bz1vPT09dm9pZCAwPzA6byxhfHxzP2khPT12b2lkIDA/ci5kcmF3RWxlbWVudHNJbnN0YW5jZWQodCx1LGE9PT12b2lkIDA/dm86ZS5lbGVtZW50VHlwZSxvLGkpOnIuZHJhd0VsZW1lbnRzKHQsdSxhPT09dm9pZCAwP3ZvOmUuZWxlbWVudFR5cGUsbyk6aSE9PXZvaWQgMD9yLmRyYXdBcnJheXNJbnN0YW5jZWQodCxvLHUsaSk6ci5kcmF3QXJyYXlzKHQsbyx1KX1jb25zdCBFbz0zNjE2MCxVdD0zNjE2MSxlZj0zNTUzLHRmPTUxMjEscmY9NjQwMixuZj02NDA4LG9mPTMzMTkwLHNmPTM2MDEyLGFmPTM1MDU2LHVmPTM2MDEzLGNmPTMyODU0LGZmPTMyODU1LGxmPTM2MTk0LFRvPTMzMTg5LHdvPTY0MDEsQW89MzYxNjgsRHI9MzQwNDEsQ3I9MzYwNjQsTnQ9MzYwOTYsSW89MzYxMjgsQnI9MzMzMDYsTXI9MzMwNzEsT3I9OTcyOSxkZj1be2Zvcm1hdDpuZix0eXBlOnRmLG1pbjpPcix3cmFwOk1yfSx7Zm9ybWF0OkRyfV0sWT17fTtZW0RyXT1CcixZW3dvXT1JbyxZW0FvXT1JbyxZW3JmXT1OdCxZW1RvXT1OdCxZW29mXT1OdCxZW3NmXT1OdCxZW2FmXT1CcixZW3VmXT1CcjtmdW5jdGlvbiBoZihyLGUpe3JldHVybiBZW3JdfHxZW2VdfWNvbnN0IGZlPXt9O2ZlW2NmXT0hMCxmZVtmZl09ITAsZmVbbGZdPSEwLGZlW0RyXT0hMCxmZVtUb109ITAsZmVbd29dPSEwLGZlW0FvXT0hMDtmdW5jdGlvbiBtZihyKXtyZXR1cm4gZmVbcl19Y29uc3QgcGY9MzI7ZnVuY3Rpb24gZ2Yocil7cmV0dXJuIHI+PUNyJiZyPENyK3BmfWZ1bmN0aW9uIEx0KHIsZSx0LG4pe2NvbnN0IG89RW8saT1yLmNyZWF0ZUZyYW1lYnVmZmVyKCk7ci5iaW5kRnJhbWVidWZmZXIobyxpKSx0PXR8fHIuZHJhd2luZ0J1ZmZlcldpZHRoLG49bnx8ci5kcmF3aW5nQnVmZmVySGVpZ2h0LGU9ZXx8ZGY7Y29uc3Qgcz1bXSxhPXtmcmFtZWJ1ZmZlcjppLGF0dGFjaG1lbnRzOltdLHdpZHRoOnQsaGVpZ2h0Om59O3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24odSxmKXtsZXQgZD11LmF0dGFjaG1lbnQ7Y29uc3QgcD11LnNhbXBsZXMsZz11LmZvcm1hdDtsZXQgYj11LmF0dGFjaG1lbnRQb2ludHx8aGYoZyx1LmludGVybmFsRm9ybWF0KTtpZihifHwoYj1DcitmKSxnZihiKSYmcy5wdXNoKGIpLCFkKWlmKHAhPT12b2lkIDB8fG1mKGcpKWQ9ci5jcmVhdGVSZW5kZXJidWZmZXIoKSxyLmJpbmRSZW5kZXJidWZmZXIoVXQsZCkscD4xP3IucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKFV0LHAsZyx0LG4pOnIucmVuZGVyYnVmZmVyU3RvcmFnZShVdCxnLHQsbik7ZWxzZXtjb25zdCBoPU9iamVjdC5hc3NpZ24oe30sdSk7aC53aWR0aD10LGguaGVpZ2h0PW4saC5hdXRvPT09dm9pZCAwJiYoaC5hdXRvPSExLGgubWluPWgubWlufHxoLm1pbk1hZ3x8T3IsaC5tYWc9aC5tYWd8fGgubWluTWFnfHxPcixoLndyYXBTPWgud3JhcFN8fGgud3JhcHx8TXIsaC53cmFwVD1oLndyYXBUfHxoLndyYXB8fE1yKSxkPVduKHIsaCl9aWYod3MocixkKSlyLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKG8sYixVdCxkKTtlbHNlIGlmKGRyKHIsZCkpdS5sYXllciE9PXZvaWQgMD9yLmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKG8sYixkLHUubGV2ZWx8fDAsdS5sYXllcik6ci5mcmFtZWJ1ZmZlclRleHR1cmUyRChvLGIsdS50YXJnZXR8fGVmLGQsdS5sZXZlbHx8MCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInVua25vd24gYXR0YWNobWVudCB0eXBlIik7YS5hdHRhY2htZW50cy5wdXNoKGQpfSksci5kcmF3QnVmZmVycyYmci5kcmF3QnVmZmVycyhzKSxhfWZ1bmN0aW9uIHlmKHIsZSx0KXt0PXR8fEVvLGU/KHIuYmluZEZyYW1lYnVmZmVyKHQsZS5mcmFtZWJ1ZmZlciksci52aWV3cG9ydCgwLDAsZS53aWR0aCxlLmhlaWdodCkpOihyLmJpbmRGcmFtZWJ1ZmZlcih0LG51bGwpLHIudmlld3BvcnQoMCwwLHIuZHJhd2luZ0J1ZmZlcldpZHRoLHIuZHJhd2luZ0J1ZmZlckhlaWdodCkpfWZ1bmN0aW9uIEkocixlKXtyZXR1cm4oKT0+ZSBpbnN0YW5jZW9mIFdlYkdMVGV4dHVyZT9lOlduKHIse3NyYzplLHdyYXA6ci5DTEFNUF9UT19FREdFfSl9Y29uc3QgT2U9MjtjbGFzcyBFZXtjb25zdHJ1Y3RvcihlKXtsKHRoaXMsImlkIiwiXyIpO2wodGhpcywiY29udGV4dCIpO2wodGhpcywib3V0cHV0Iik7bCh0aGlzLCJmYmkiKTtsKHRoaXMsIm9wdGlvbnMiKTtsKHRoaXMsInByb2dyYW1JbmZvIik7bCh0aGlzLCJidWZmZXJJbmZvIik7bCh0aGlzLCJwcm9maWxlciIpO2wodGhpcywibGFzdFJ1biIpO2NvbnN0e2NvbnRleHQ6dCx3aWR0aDpuLGhlaWdodDpvfT1lO3RoaXMuY29udGV4dD10LHRoaXMub3B0aW9ucz1lO2NvbnN0IGk9dGhpcy5idWlsZERlZmluZXMoKTt0aGlzLnByb2dyYW1JbmZvPUtjKHRoaXMuY29udGV4dCxbaSt0aGlzLmdldFZlcnRleFNoYWRlcigpLGkrdGhpcy5nZXRGcmFnbWVudFNoYWRlcigpXSksdGhpcy5idWZmZXJJbmZvPVhzKHRoaXMuY29udGV4dCx0aGlzLmdldEJ1ZmZlcnMoKSksdGhpcy5mYmk9THQodGhpcy5jb250ZXh0LFt7Zm9ybWF0OnRoaXMuY29udGV4dC5SR0JBLHR5cGU6dGhpcy5jb250ZXh0LlVOU0lHTkVEX0JZVEUsbWluOnRoaXMuY29udGV4dC5MSU5FQVIsd3JhcDp0aGlzLmNvbnRleHQuQ0xBTVBfVE9fRURHRX1dLG4sbyksdGhpcy5vdXRwdXQ9dGhpcy5mYmkuYXR0YWNobWVudHNbMF19cmVzaXplT3V0cHV0KGUsdCl7dGhpcy5mYmk9THQodGhpcy5jb250ZXh0LFt7Zm9ybWF0OnRoaXMuY29udGV4dC5SR0JBLHR5cGU6dGhpcy5jb250ZXh0LlVOU0lHTkVEX0JZVEUsbWluOnRoaXMuY29udGV4dC5MSU5FQVIsd3JhcDp0aGlzLmNvbnRleHQuQ0xBTVBfVE9fRURHRX1dLGUsdCksdGhpcy5vcHRpb25zLndpZHRoPWUsdGhpcy5vcHRpb25zLmhlaWdodD10LHRoaXMub3V0cHV0PXRoaXMuZmJpLmF0dGFjaG1lbnRzWzBdfWdldERlZmluZXMoKXtyZXR1cm57fX1nZXRCdWZmZXJzKCl7cmV0dXJue3Bvc2l0aW9uOntudW1Db21wb25lbnRzOjIsZGF0YTpbLTEsLTEsLTEsMSwxLC0xLDEsMSwtMSwxLDEsLTFdfSx0ZXh0dXJlX2Nvb3JkOntudW1Db21wb25lbnRzOjIsZGF0YTpbMCwwLDAsMSwxLDAsMSwxLDAsMSwxLDBdfX19YnVpbGREZWZpbmVzKCl7bGV0IGU9IiI7Y29uc3QgdD10aGlzLmdldERlZmluZXMoKTtmb3IobGV0IG4gaW4gdCllKz1gI2RlZmluZSAke259ICR7dFtuXS50b0ZpeGVkKDEpfQpgO3JldHVybiBlfXJ1bihlKXt2YXIgbyxpLHMsYSx1LGY7KG89dGhpcy5wcm9maWxlcik9PW51bGx8fG8ucHVzaENvbnRleHQoYFske3RoaXMuaWR9XSBQUk9HIDogJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9YCksKGk9dGhpcy5wcm9maWxlcik9PW51bGx8fGkucHVzaENvbnRleHQoYFske3RoaXMuaWR9XSBVTklGT1JNU2ApO2Zvcihjb25zdCBkIGluIGUpdHlwZW9mIGVbZF09PSJmdW5jdGlvbiImJigocz10aGlzLnByb2ZpbGVyKT09bnVsbHx8cy5wdXNoQ29udGV4dChgWyR7dGhpcy5pZH1dIFVOSSA6ICR7ZH1gKSxlW2RdPWVbZF0oKSwoYT10aGlzLnByb2ZpbGVyKT09bnVsbHx8YS5wb3BDb250ZXh0KGBbJHt0aGlzLmlkfV0gVU5JIDogJHtkfWApKTsodT10aGlzLnByb2ZpbGVyKT09bnVsbHx8dS5wb3BDb250ZXh0KGBbJHt0aGlzLmlkfV0gVU5JRk9STVNgKTtjb25zdCB0PURhdGUubm93KCk7bGV0IG49MDt0aGlzLmxhc3RSdW4mJihuPSh0LXRoaXMubGFzdFJ1bikvMWUzKSx0aGlzLmxhc3RSdW49dCx0aGlzLmNvbnRleHQudmlld3BvcnQoMCwwLHRoaXMuY29udGV4dC5jYW52YXMud2lkdGgsdGhpcy5jb250ZXh0LmNhbnZhcy5oZWlnaHQpLHRoaXMuY29udGV4dC51c2VQcm9ncmFtKHRoaXMucHJvZ3JhbUluZm8ucHJvZ3JhbSksUWModGhpcy5jb250ZXh0LHRoaXMucHJvZ3JhbUluZm8sdGhpcy5idWZmZXJJbmZvKSx4byh0aGlzLnByb2dyYW1JbmZvLHtkZWx0YTpuLGNhbnZhczpbdGhpcy5jb250ZXh0LmNhbnZhcy53aWR0aCx0aGlzLmNvbnRleHQuY2FudmFzLmhlaWdodF0sLi4uZX0pLHlmKHRoaXMuY29udGV4dCx0aGlzLm9wdGlvbnMuZGlzYWJsZUZyYW1lYnVmZmVyP251bGw6dGhpcy5mYmkpLFpjKHRoaXMuY29udGV4dCx0aGlzLmJ1ZmZlckluZm8pLChmPXRoaXMucHJvZmlsZXIpPT1udWxsfHxmLnBvcENvbnRleHQoYFske3RoaXMuaWR9XSBQUk9HIDogJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9YCl9c2V0UHJvZmlsZXIoZSl7dGhpcy5wcm9maWxlcj1lfX12YXIgYmY9YHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoKdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwoKdW5pZm9ybSBzYW1wbGVyMkQgYmFja2dyb3VuZDsKdW5pZm9ybSBzYW1wbGVyMkQgZm9yZWdyb3VuZDsKdW5pZm9ybSBzYW1wbGVyMkQgdGhyZXNob2xkOwoKdm9pZCBtYWluKCkgewogIHZlYzQgYmFja2dyb3VuZENvbG9yID0gdGV4dHVyZTJEKGJhY2tncm91bmQsIF90ZXh0dXJlX2Nvb3JkKTsKICB2ZWM0IGZvcmVncm91bmRDb2xvciA9IHRleHR1cmUyRChmb3JlZ3JvdW5kLCBfdGV4dHVyZV9jb29yZCk7CiAgdmVjNCB0cmVzaG9sZENvbG9yID0gdGV4dHVyZTJEKHRocmVzaG9sZCwgX3RleHR1cmVfY29vcmQpOwogIGdsX0ZyYWdDb2xvciA9IGZvcmVncm91bmRDb2xvciAqIHRyZXNob2xkQ29sb3IuYSArCiAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yICogKDEuIC0gdHJlc2hvbGRDb2xvci5hKTsKfQpgLHhmPWB2YXJ5aW5nIHZlYzIgX3RleHR1cmVfY29vcmQ7CgphdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjsKYXR0cmlidXRlIHZlYzIgdGV4dHVyZV9jb29yZDsKCnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQocG9zaXRpb24sIDAuLCAxLik7CiAgX3RleHR1cmVfY29vcmQgPSB0ZXh0dXJlX2Nvb3JkOwogIF90ZXh0dXJlX2Nvb3JkLnkgPSAxLiAtIHRleHR1cmVfY29vcmQueTsKfQpgO2NsYXNzIFVyIGV4dGVuZHMgRWV7Z2V0RnJhZ21lbnRTaGFkZXIoKXtyZXR1cm4gYmZ9Z2V0VmVydGV4U2hhZGVyKCl7cmV0dXJuIHhmfX1jbGFzcyBOcntjb25zdHJ1Y3Rvcigpe2wodGhpcywic3RlcHMiLFtdKTtsKHRoaXMsInByb2ZpbGVyIil9YWRkU3RlcChlKXt0aGlzLnN0ZXBzLnB1c2goZSl9YXN5bmMgcnVuKCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5zdGVwcyllLnByb2dyYW0ucnVuKGUuZ2V0VW5pZm9ybXMoKSl9cmVzaXplT3V0cHV0KGUsdCl7dmFyIG4sbzsobj10aGlzLnByb2ZpbGVyKT09bnVsbHx8bi5wdXNoQ29udGV4dChgUElQIFske3RoaXMuY29uc3RydWN0b3IubmFtZX1dYCk7Zm9yKGNvbnN0IGkgb2YgdGhpcy5zdGVwcylpLnByZXZlbnRSZXNpemV8fGkucHJvZ3JhbS5yZXNpemVPdXRwdXQoZSx0KTsobz10aGlzLnByb2ZpbGVyKT09bnVsbHx8by5wb3BDb250ZXh0KGBQSVAgWyR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfV1gKX1zZXRQcm9maWxlcihlKXt0aGlzLnByb2ZpbGVyPWU7Zm9yKGNvbnN0IHQgb2YgdGhpcy5zdGVwcyl0LnByb2dyYW0uc2V0UHJvZmlsZXIoZSl9c2V0SWQoZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5zdGVwcyl0LnByb2dyYW0uaWQ9ZX19Y2xhc3MgTHIgZXh0ZW5kcyBOcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyk7bCh0aGlzLCJwcmVjaXNlTWFza0VuYWJsZWQiLCExKX19Y2xhc3MgU28gZXh0ZW5kcyBMcntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpO2wodGhpcywiaW5wdXRJbWFnZSIpO2wodGhpcywiaW5wdXRCYWNrZ3JvdW5kSW1hZ2UiKTtsKHRoaXMsImlucHV0TWFzayIpO2wodGhpcywicHJlY2lzZU1hc2tFbmFibGVkIiwhMCk7dGhpcy5jb250ZXh0PXQ7Y29uc3Qgbj17Y29udGV4dDp0LGhlaWdodDp0LmNhbnZhcy5oZWlnaHQsd2lkdGg6dC5jYW52YXMud2lkdGh9LG89bmV3IFVyKHsuLi5uLGRpc2FibGVGcmFtZWJ1ZmZlcjohMH0pO3RoaXMuYWRkU3RlcCh7cHJvZ3JhbTpvLGdldFVuaWZvcm1zOigpPT4oe2JhY2tncm91bmQ6SSh0LHRoaXMuaW5wdXRCYWNrZ3JvdW5kSW1hZ2UpLGZvcmVncm91bmQ6SSh0LHRoaXMuaW5wdXRJbWFnZSksdGhyZXNob2xkOkkodCx0aGlzLmlucHV0TWFzayl9KX0pfXNldERhdGEodCxuKXt0aGlzLmlucHV0SW1hZ2U9dCx0aGlzLmlucHV0TWFzaz1ufX12YXIgX2Y9YHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoKdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwp1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlOwoKdm9pZCBtYWluKCkgeyBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQodGV4dHVyZSwgX3RleHR1cmVfY29vcmQpOyB9CmAsdmY9YHZhcnlpbmcgdmVjMiBfdGV4dHVyZV9jb29yZDsKCmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uOwphdHRyaWJ1dGUgdmVjMiB0ZXh0dXJlX2Nvb3JkOwp1bmlmb3JtIGJvb2wgaW52ZXJ0X3k7Cgp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uLCAwLiwgMS4pOwogIF90ZXh0dXJlX2Nvb3JkID0gdGV4dHVyZV9jb29yZDsKICBpZiAoaW52ZXJ0X3kpIHsKICAgIF90ZXh0dXJlX2Nvb3JkLnkgPSAxLiAtIHRleHR1cmVfY29vcmQueTsKICB9Cn0KYDtjbGFzcyBFZiBleHRlbmRzIEVle2dldEZyYWdtZW50U2hhZGVyKCl7cmV0dXJuIF9mfWdldFZlcnRleFNoYWRlcigpe3JldHVybiB2Zn19Y2xhc3MgVGYgZXh0ZW5kcyBOcntjb25zdHJ1Y3Rvcih0LG4sbyl7c3VwZXIoKTtsKHRoaXMsImlucHV0SW1hZ2UiKTt0aGlzLmNvbnRleHQ9dDtjb25zdCBpPXtjb250ZXh0OnQsaGVpZ2h0Om8sd2lkdGg6bn07dGhpcy5hZGRTdGVwKHtwcm9ncmFtOm5ldyBFZih7Li4uaSxkaXNhYmxlRnJhbWVidWZmZXI6ITB9KSxnZXRVbmlmb3JtczooKT0+KHt0ZXh0dXJlOkkodCx0aGlzLmlucHV0SW1hZ2UpLGludmVydF95OiEwfSl9KX1zZXREYXRhKHQpe3RoaXMuaW5wdXRJbWFnZT10fX1hc3luYyBmdW5jdGlvbiBSbyhyKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e3NldFRpbWVvdXQoKCk9PntlKCl9LHIpfSl9dmFyIHdmPWBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKCnZhcnlpbmcgdmVjMiBfdGV4dHVyZV9jb29yZDsKCnVuaWZvcm0gdmVjMiBjYW52YXM7CnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7Cgp2ZWM0IGxvb3AoKTsKCnZvaWQgbWFpbigpIHsgZ2xfRnJhZ0NvbG9yID0gbG9vcCgpOyB9CmAsQWY9YHZhcnlpbmcgdmVjMiBfdGV4dHVyZV9jb29yZDsKCmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uOwphdHRyaWJ1dGUgdmVjMiB0ZXh0dXJlX2Nvb3JkOwoKdm9pZCBtYWluKCkgewogIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMC4sIDEuKTsKICBfdGV4dHVyZV9jb29yZCA9IHRleHR1cmVfY29vcmQ7Cn0KYCx6cj0ocj0+KHJbci5MSU5FQVI9MF09IkxJTkVBUiIscltyLkdBVVNTSUFOPTFdPSJHQVVTU0lBTiIscikpKHpyfHx7fSk7Y2xhc3MgRm8gZXh0ZW5kcyBFZXtnZXREZWZpbmVzKCl7dmFyIGU7cmV0dXJue1JBRElVUzooZT10aGlzLm9wdGlvbnMucmFkaXVzKSE9bnVsbD9lOjF9fWdldEZyYWdtZW50U2hhZGVyKCl7cmV0dXJuIHdmK3RoaXMuY3JlYXRlTG9vcEZ1bmN0aW9uKCl9Z2V0VmVydGV4U2hhZGVyKCl7cmV0dXJuIEFmfWNyZWF0ZUxvb3BGdW5jdGlvbigpe3ZhciB0O2xldCBlPSh0PXRoaXMub3B0aW9ucy5yYWRpdXMpIT1udWxsP3Q6MTtyZXR1cm5gCgogICAgICAgIHZlYzQgbG9vcCgpIHsgCiAgICAgICAgICAgIHZlYzQgcmVzdWx0ID0gdmVjNCgwLDAsMCwwKTsKICAgICAgICAgICAgZmxvYXQgZmFjdG9yU3VtID0gMC47CgogICAgICAgICAgICB2ZWMyIG5vcm1hbGl6ZWRSYWRpdXMgPSB2ZWMyKC0ke2V9LikgLyBjYW52YXM7CiAgICAgICAgICAgIHZlYzIgbm9ybWFsaXplZEluY3JlbWVudCA9IHZlYzIoMS4pIC8gY2FudmFzOwogICAgICAgICAgICB2ZWMyIGRpZmYgPSBub3JtYWxpemVkUmFkaXVzOwoKICAgICAgICAgICAgZm9yKGludCB5PS0ke2V9OyB5PCR7ZSsxfTsgKyt5KSB7CiAgICAgICAgICAgICAgICBmb3IoaW50IHg9LSR7ZX07IHg8JHtlKzF9OyArK3gpIHsKICAgICAgICAgICAgICAgICAgICBmbG9hdCBmYWN0b3IgPSAxLjsKICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZmFjdG9yICogdGV4dHVyZTJEKHRleHR1cmUsIF90ZXh0dXJlX2Nvb3JkICsgZGlmZik7CiAgICAgICAgICAgICAgICAgICAgZmFjdG9yU3VtICs9IGZhY3RvcjsKICAgICAgICAgICAgICAgICAgICBkaWZmLnggKz0gbm9ybWFsaXplZEluY3JlbWVudC54OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZGlmZi55ICs9IG5vcm1hbGl6ZWRJbmNyZW1lbnQueTsKICAgICAgICAgICAgICAgIGRpZmYueCA9IG5vcm1hbGl6ZWRSYWRpdXMueDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcmVzdWx0IC8gZmFjdG9yU3VtOwogICAgICAgIH1gfWdldEZhY3RvcihlLHQpe3N3aXRjaCh0aGlzLm9wdGlvbnMudHlwZSl7Y2FzZSAxOnJldHVybiB0aGlzLmdldExpbmVhckZhY3RvcihlLHQpO2Nhc2UgMDpkZWZhdWx0OnJldHVybiB0aGlzLmdldExpbmVhckZhY3RvcihlLHQpfX1nZXRMaW5lYXJGYWN0b3IoZSx0KXtyZXR1cm4gMX1nZXRHYXVzc2lhbkZhY3RvcihlLHQpe3ZhciB1O2NvbnN0IG49TWF0aC5QSSoyLG89TWF0aC5tYXgoKHU9dGhpcy5vcHRpb25zLnJhZGl1cykhPW51bGw/dToxLDEpLGk9MS8obipvKioyKSxzPS0oZSoqMit0KioyKSxhPWkqcztyZXR1cm4gaSpNYXRoLkUqKmF9fWNsYXNzIEdyIGV4dGVuZHMgRWV7Y29uc3RydWN0b3IodCl7c3VwZXIodCk7bCh0aGlzLCJmYmkyIik7dGhpcy5mYmkyPUx0KHQuY29udGV4dCxbe2Zvcm1hdDp0LmNvbnRleHQuUkdCQSx0eXBlOnQuY29udGV4dC5VTlNJR05FRF9CWVRFLG1pbjp0LmNvbnRleHQuTElORUFSLG1hZzp0LmNvbnRleHQuTElORUFSLHdyYXA6dC5jb250ZXh0LkNMQU1QX1RPX0VER0V9XSx0LndpZHRoLHQuaGVpZ2h0KX1ydW4odCl7Y29uc3Qgbj10aGlzLmZiaTt0aGlzLmZiaT10aGlzLmZiaTIsdGhpcy5mYmkyPW4sdGhpcy5vdXRwdXQ9dGhpcy5mYmkuYXR0YWNobWVudHNbMF0sc3VwZXIucnVuKHsuLi50LHByZXZpb3VzX3JlbmRlcmluZzp0aGlzLmZiaTIuYXR0YWNobWVudHNbMF19KX1yZXNpemVPdXRwdXQodCxuKXtzdXBlci5yZXNpemVPdXRwdXQodCxuKSx0aGlzLmZiaTI9THQodGhpcy5jb250ZXh0LFt7Zm9ybWF0OnRoaXMuY29udGV4dC5SR0JBLHR5cGU6dGhpcy5jb250ZXh0LlVOU0lHTkVEX0JZVEUsbWluOnRoaXMuY29udGV4dC5MSU5FQVIsd3JhcDp0aGlzLmNvbnRleHQuQ0xBTVBfVE9fRURHRX1dLHQsbil9fXZhciBJZj1gcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cgp2YXJ5aW5nIHZlYzIgX3RleHR1cmVfY29vcmQ7CgovLyB1bmlmb3JtIGZsb2F0IHRyZXNob2xkOwp1bmlmb3JtIHNhbXBsZXIyRCBpbWFnZV9ub3c7CnVuaWZvcm0gc2FtcGxlcjJEIGltYWdlX2JlZm9yZTsKdW5pZm9ybSBzYW1wbGVyMkQgbWFza19ub3c7CnVuaWZvcm0gc2FtcGxlcjJEIG1hc2tfYmVmb3JlOwp1bmlmb3JtIHNhbXBsZXIyRCBwcmV2aW91c19yZW5kZXJpbmc7CnVuaWZvcm0gdmVjMiBjYW52YXM7Cgp1bmlmb3JtIGZsb2F0IGRlbHRhOwoKZmxvYXQgY3VycmVudF9mYWN0b3IgPSAwLjY5OwpmbG9hdCBwcmV2aW91c19mYWN0b3IgPSAwLjc0OwpmbG9hdCB0aHJlc2hvbGRfYWN0aXZhdGlvbiA9IDAuNTQ7CgpmbG9hdCBtYXAoZmxvYXQgdmFsdWUsIGZsb2F0IG1pbjEsIGZsb2F0IG1heDEsIGZsb2F0IG1pbjIsIGZsb2F0IG1heDIpIHsKICByZXR1cm4gbWluMiArICh2YWx1ZSAtIG1pbjEpICogKG1heDIgLSBtaW4yKSAvIChtYXgxIC0gbWluMSk7Cn0KCmZsb2F0IGdldFRocmVzaG9sZCgpIHsKICB2ZWM0IGNvbG9yID0gdmVjNCgwLik7CiAgZm9yIChmbG9hdCB5ID0gLTYuOyB5IDwgNy47IHkgKz0gMS4pIHsKICAgIGZvciAoZmxvYXQgeCA9IC02LjsgeCA8IDcuOyB4ICs9IDEuKSB7CiAgICAgIHZlYzQgaW1hZ2Vfbm93X2NvbG9yID0KICAgICAgICAgIHRleHR1cmUyRChpbWFnZV9ub3csIF90ZXh0dXJlX2Nvb3JkICsgdmVjMih4LCB5KSAvIGNhbnZhcyk7CiAgICAgIHZlYzQgaW1hZ2VfYmVmb3JlX2NvbG9yID0KICAgICAgICAgIHRleHR1cmUyRChpbWFnZV9iZWZvcmUsIF90ZXh0dXJlX2Nvb3JkICsgdmVjMih4LCB5KSAvIGNhbnZhcyk7CiAgICAgIGNvbG9yICs9IGFicyhpbWFnZV9iZWZvcmVfY29sb3IgLSBpbWFnZV9ub3dfY29sb3IpOwogICAgfQogIH0KICByZXR1cm4gKGNvbG9yLnggKyBjb2xvci55ICsgY29sb3IueikgLyAoMy4gKiA5Lik7Cn0KCnZvaWQgbWFpbigpIHsKICBmbG9hdCB0cmVzaG9sZF9pbnB1dCA9IC40OwogIGZsb2F0IHRyZXNob2xkX3ByZXZpb3VzX3JlbmRlcmluZyA9IC45ODsKCiAgdmVjNCBtYXNrX25vd19jb2xvciA9IHRleHR1cmUyRChtYXNrX25vdywgX3RleHR1cmVfY29vcmQpOwogIHZlYzQgbWFza19iZWZvcmVfY29sb3IgPSB0ZXh0dXJlMkQobWFza19iZWZvcmUsIF90ZXh0dXJlX2Nvb3JkKTsKICB2ZWM0IHByZXZpb3VzX3JlbmRlcmluZ19jb2xvciA9IHRleHR1cmUyRChwcmV2aW91c19yZW5kZXJpbmcsIF90ZXh0dXJlX2Nvb3JkKTsKCiAgdmVjMyBtYXNrX2RpZmYgPSBhYnMobWFza19iZWZvcmVfY29sb3IueHl6IC0gbWFza19ub3dfY29sb3IueHl6KTsKICBmbG9hdCBmbGlja2VyaW5nID0gbWFza19kaWZmLng7CiAgZmxvYXQgdGhyZXNob2xkID0gZ2V0VGhyZXNob2xkKCk7CiAgaWYgKHRocmVzaG9sZCA8IHRocmVzaG9sZF9hY3RpdmF0aW9uKSB7CiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGZsaWNrZXJpbmcsIDAuLCAwLiwgMS4pICogY3VycmVudF9mYWN0b3IgKwogICAgICAgICAgICAgICAgICAgcHJldmlvdXNfcmVuZGVyaW5nX2NvbG9yICogcHJldmlvdXNfZmFjdG9yOwogICAgZ2xfRnJhZ0NvbG9yICo9ICgxLiAtIHRocmVzaG9sZCk7CiAgfQp9CmAsU2Y9YHZhcnlpbmcgdmVjMiBfdGV4dHVyZV9jb29yZDsKCmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uOwphdHRyaWJ1dGUgdmVjMiB0ZXh0dXJlX2Nvb3JkOwoKdm9pZCBtYWluKCkgewogIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMC4sIDEuKTsKICBfdGV4dHVyZV9jb29yZCA9IHRleHR1cmVfY29vcmQ7Cn0KYDtjbGFzcyBSZiBleHRlbmRzIEdye2dldEZyYWdtZW50U2hhZGVyKCl7cmV0dXJuIElmfWdldFZlcnRleFNoYWRlcigpe3JldHVybiBTZn19dmFyIEZmPWAjdmVyc2lvbiAzMDAgZXMKLy8gaHR0cHM6Ly9naXRodWIuY29tL1ZvbGNvbWl4L3ZpcnR1YWwtYmFja2dyb3VuZC9ibG9iL21haW4vc3JjL3BpcGVsaW5lcy93ZWJnbDIvam9pbnRCaWxhdGVyYWxGaWx0ZXJTdGFnZS50cwoKcHJlY2lzaW9uIGhpZ2hwIGZsb2F0Owp1bmlmb3JtIHNhbXBsZXIyRCBpbnB1dF9mcmFtZTsKdW5pZm9ybSBzYW1wbGVyMkQgc2VnbWVudGF0aW9uX21hc2s7CnVuaWZvcm0gc2FtcGxlcjJEIHRocmVzaG9sZDsKdW5pZm9ybSB2ZWMyIHRleGVsX3NpemU7CnVuaWZvcm0gZmxvYXQgc3RlcDsKdW5pZm9ybSBmbG9hdCByYWRpdXM7CnVuaWZvcm0gZmxvYXQgb2Zmc2V0Owp1bmlmb3JtIGZsb2F0IHNpZ21hX3RleGVsOwp1bmlmb3JtIGZsb2F0IHNpZ21hX2NvbG9yOwoKaW4gdmVjMiBfdGV4dHVyZV9jb29yZDsKb3V0IHZlYzQgb3V0Q29sb3I7CgpmbG9hdCBnYXVzc2lhbihmbG9hdCB4LCBmbG9hdCBzaWdtYSkgewogIGZsb2F0IGNvZWZmID0gLTAuNSAvIChzaWdtYSAqIHNpZ21hICogNC4wICsgMS4wZS02KTsKICByZXR1cm4gZXhwKCh4ICogeCkgKiBjb2VmZik7Cn0KCnZvaWQgbWFpbigpIHsKICB2ZWMyIGNlbnRlckNvb3JkID0gX3RleHR1cmVfY29vcmQ7CiAgdmVjMyBjZW50ZXJDb2xvciA9IHRleHR1cmUoaW5wdXRfZnJhbWUsIGNlbnRlckNvb3JkKS5yZ2I7CiAgZmxvYXQgbmV3VmFsID0gMC4wOwogIGZsb2F0IHNwYWNlV2VpZ2h0ID0gMC4wOwogIGZsb2F0IGNvbG9yV2VpZ2h0ID0gMC4wOwogIGZsb2F0IHRvdGFsV2VpZ2h0ID0gMC4wOwogIC8vIFN1YnNhbXBsZSBrZXJuZWwgc3BhY2UuCiAgZm9yIChmbG9hdCBpID0gLXJhZGl1cyArIG9mZnNldDsgaSA8PSByYWRpdXM7IGkgKz0gc3RlcCkgewogICAgZm9yIChmbG9hdCBqID0gLXJhZGl1cyArIG9mZnNldDsgaiA8PSByYWRpdXM7IGogKz0gc3RlcCkgewogICAgICB2ZWMyIHNoaWZ0ID0gdmVjMihqLCBpKSAqIHRleGVsX3NpemU7CiAgICAgIHZlYzIgY29vcmQgPSB2ZWMyKGNlbnRlckNvb3JkICsgc2hpZnQpOwogICAgICB2ZWMzIGZyYW1lQ29sb3IgPSB0ZXh0dXJlKGlucHV0X2ZyYW1lLCBjb29yZCkucmdiOwogICAgICBmbG9hdCB0aHJlc2hvbGQgPSB0ZXh0dXJlKHRocmVzaG9sZCwgY29vcmQpLmE7CiAgICAgIGZsb2F0IG91dFZhbCA9IHRleHR1cmUoc2VnbWVudGF0aW9uX21hc2ssIGNvb3JkKS5hOwoKICAgICAgc3BhY2VXZWlnaHQgPSBnYXVzc2lhbihkaXN0YW5jZShjZW50ZXJDb29yZCwgY29vcmQpLCBzaWdtYV90ZXhlbCk7CiAgICAgIGNvbG9yV2VpZ2h0ID0gZ2F1c3NpYW4oZGlzdGFuY2UoY2VudGVyQ29sb3IsIGZyYW1lQ29sb3IpLCBzaWdtYV9jb2xvcik7CiAgICAgIHRvdGFsV2VpZ2h0ICs9IHNwYWNlV2VpZ2h0ICogY29sb3JXZWlnaHQ7CiAgICAgIG5ld1ZhbCArPSBzcGFjZVdlaWdodCAqIGNvbG9yV2VpZ2h0ICogb3V0VmFsICogdGhyZXNob2xkOwogICAgfQogIH0KICBuZXdWYWwgLz0gdG90YWxXZWlnaHQ7CiAgb3V0Q29sb3IgPSB2ZWM0KHZlYzMoMC4pLCBuZXdWYWwpOwp9YCxQZj1gI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgcG9zaXRpb247CmluIHZlYzIgdGV4dHVyZV9jb29yZDsKb3V0IHZlYzIgX3RleHR1cmVfY29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQocG9zaXRpb24sIDAuMCwgMS4wKTsKICBfdGV4dHVyZV9jb29yZCA9IHRleHR1cmVfY29vcmQ7Cn1gO2NsYXNzIGtmIGV4dGVuZHMgRWV7Z2V0RnJhZ21lbnRTaGFkZXIoKXtyZXR1cm4gRmZ9Z2V0VmVydGV4U2hhZGVyKCl7cmV0dXJuIFBmfX12YXIgRGY9YHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoKdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwoKdW5pZm9ybSB2ZWMyIGNhbnZhczsKdW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTsKCnZvaWQgbWFpbigpIHsKICBpbnQgY291bnQgPSAwOwogIGZvciAoZmxvYXQgeSA9IC0xLjsgeSA8IDIuOyB5ICs9IDEuKSB7CiAgICBmb3IgKGZsb2F0IHggPSAtMS47IHggPCAyLjsgeCArPSAxLikgewogICAgICB2ZWMyIGNvb3JkID0gX3RleHR1cmVfY29vcmQgKyB2ZWMyKHksIHgpIC8gY2FudmFzOwogICAgICB2ZWM0IGNvbG9yID0gdGV4dHVyZTJEKHRleHR1cmUsIGNvb3JkKTsKICAgICAgaWYgKGNvbG9yLnIgPiAuMSkgewogICAgICAgIGNvdW50Kys7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKGNvdW50ID4gNSkgewogICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKHRleHR1cmUsIF90ZXh0dXJlX2Nvb3JkKTsKICB9Cn0KYCxDZj1gdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwoKYXR0cmlidXRlIHZlYzIgcG9zaXRpb247CmF0dHJpYnV0ZSB2ZWMyIHRleHR1cmVfY29vcmQ7Cgp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uLCAwLiwgMS4pOwogIF90ZXh0dXJlX2Nvb3JkID0gdGV4dHVyZV9jb29yZDsKfQpgO2NsYXNzIEJmIGV4dGVuZHMgRWV7Z2V0RnJhZ21lbnRTaGFkZXIoKXtyZXR1cm4gRGZ9Z2V0VmVydGV4U2hhZGVyKCl7cmV0dXJuIENmfX12YXIgTWY9YHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoKdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwoKdW5pZm9ybSB2ZWMyIGNhbnZhczsKdW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTsKCnZvaWQgbWFpbigpIHsKICB2ZWM0IGNvbG9yID0gdGV4dHVyZTJEKHRleHR1cmUsIF90ZXh0dXJlX2Nvb3JkKTsKICBmb3IgKGZsb2F0IHkgPSAtMi47IHkgPCAzLjsgeSArPSAxLikgewogICAgZm9yIChmbG9hdCB4ID0gLTIuOyB4IDwgMy47IHggKz0gMS4pIHsKICAgICAgdmVjMiBjb29yZCA9IF90ZXh0dXJlX2Nvb3JkOwogICAgICBjb29yZCArPSB2ZWMyKHksIHgpIC8gY2FudmFzOwogICAgICBjb2xvciArPSB0ZXh0dXJlMkQodGV4dHVyZSwgY29vcmQpICogKDEuIC8gNC4pOwogICAgfQogIH0KCiAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7Cn0KYCxPZj1gdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwoKYXR0cmlidXRlIHZlYzIgcG9zaXRpb247CmF0dHJpYnV0ZSB2ZWMyIHRleHR1cmVfY29vcmQ7Cgp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uLCAwLiwgMS4pOwogIF90ZXh0dXJlX2Nvb3JkID0gdGV4dHVyZV9jb29yZDsKfQpgO2NsYXNzIFVmIGV4dGVuZHMgR3J7Z2V0RnJhZ21lbnRTaGFkZXIoKXtyZXR1cm4gTWZ9Z2V0VmVydGV4U2hhZGVyKCl7cmV0dXJuIE9mfX12YXIgTmY9YHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoKdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwoKdW5pZm9ybSBzYW1wbGVyMkQgdGhyZXNob2xkOwp1bmlmb3JtIHNhbXBsZXIyRCBpbnB1dHM7Cgp2b2lkIG1haW4oKSB7CiAgdmVjNCBpbnB1dHNfY29sb3IgPSB0ZXh0dXJlMkQoaW5wdXRzLCBfdGV4dHVyZV9jb29yZCk7CiAgdmVjNCB0aHJlc2hvbGRfY29sb3IgPSB0ZXh0dXJlMkQodGhyZXNob2xkLCBfdGV4dHVyZV9jb29yZCk7CiAgaWYgKHRocmVzaG9sZF9jb2xvci5yIDwgLjEgJiYgaW5wdXRzX2NvbG9yLnIgPiAuNSkgewogICAgZ2xfRnJhZ0NvbG9yID0gaW5wdXRzX2NvbG9yOwogIH0KfQpgLExmPWB2YXJ5aW5nIHZlYzIgX3RleHR1cmVfY29vcmQ7CgphdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjsKYXR0cmlidXRlIHZlYzIgdGV4dHVyZV9jb29yZDsKCnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQocG9zaXRpb24sIDAuLCAxLik7CiAgX3RleHR1cmVfY29vcmQgPSB0ZXh0dXJlX2Nvb3JkOwp9CmA7Y2xhc3MgemYgZXh0ZW5kcyBHcntnZXRGcmFnbWVudFNoYWRlcigpe3JldHVybiBOZn1nZXRWZXJ0ZXhTaGFkZXIoKXtyZXR1cm4gTGZ9fWNsYXNzIEdmIGV4dGVuZHMgTnJ7Y29uc3RydWN0b3IodCxuLG8pe3N1cGVyKCk7bCh0aGlzLCJpbnB1dEltYWdlIik7bCh0aGlzLCJpbnB1dE1hc2siKTtsKHRoaXMsInByZXZpb3VzSW5wdXRJbWFnZSIpO2wodGhpcywicHJldmlvdXNJbnB1dE1hc2siKTtsKHRoaXMsIm91dHB1dCIpO2wodGhpcywib3B0aW9ucyIse2N1cnJlbnRUaHJlc2hvbGRNaW5pbXVtOjAsY3VycmVudFRocmVzaG9sZE1heGltdW06MSxwcmV2aW91c1RocmVzaG9sZE1pbmltdW06MCxwcmV2aW91c1RocmVzaG9sZE1heGltdW06MSx0aHJlc2hvbGRNaW5pbXVtOjAsdGhyZXNob2xkTWF4aW11bToxLHRocmVzaG9sZEZhY3RvcjoxfSk7bCh0aGlzLCJqb2ludEJpbGF0ZXJhbCIpO3RoaXMuY29udGV4dD10O2NvbnN0IGk9e2NvbnRleHQ6dCxoZWlnaHQ6byx3aWR0aDpufSxzPW5ldyBSZihpKSxhPW5ldyBGbyh7Li4uaSxyYWRpdXM6MSx0eXBlOnpyLkdBVVNTSUFOfSksdT1uZXcgemYoaSksZj1uZXcgVWYoaSksZD1uZXcgQmYoaSk7dGhpcy5qb2ludEJpbGF0ZXJhbD1uZXcga2YoaSksdGhpcy5hZGRTdGVwKHtwcm9ncmFtOnMsZ2V0VW5pZm9ybXM6KCk9Pih7aW1hZ2Vfbm93OkkodCx0aGlzLmlucHV0SW1hZ2UpLGltYWdlX2JlZm9yZTpJKHQsdGhpcy5wcmV2aW91c0lucHV0SW1hZ2UpLG1hc2tfbm93OkkodCx0aGlzLmlucHV0TWFzayksbWFza19iZWZvcmU6SSh0LHRoaXMucHJldmlvdXNJbnB1dE1hc2spLGN1cnJlbnRfdGhyZXNob2xkX21pbmltdW06dGhpcy5vcHRpb25zLmN1cnJlbnRUaHJlc2hvbGRNaW5pbXVtLGN1cnJlbnRfdGhyZXNob2xkX21heGltdW06dGhpcy5vcHRpb25zLmN1cnJlbnRUaHJlc2hvbGRNYXhpbXVtLHByZXZpb3VzX3RocmVzaG9sZF9taW5pbXVtOnRoaXMub3B0aW9ucy5wcmV2aW91c1RocmVzaG9sZE1pbmltdW0scHJldmlvdXNfdGhyZXNob2xkX21heGltdW06dGhpcy5vcHRpb25zLnByZXZpb3VzVGhyZXNob2xkTWF4aW11bSx0aHJlc2hvbGRfbWluaW11bTp0aGlzLm9wdGlvbnMudGhyZXNob2xkTWluaW11bSx0aHJlc2hvbGRfbWF4aW11bTp0aGlzLm9wdGlvbnMudGhyZXNob2xkTWF4aW11bSx0aHJlc2hvbGRfZmFjdG9yOnRoaXMub3B0aW9ucy50aHJlc2hvbGRGYWN0b3J9KX0pLHRoaXMuYWRkU3RlcCh7cHJvZ3JhbTp1LGdldFVuaWZvcm1zOigpPT4oe2lucHV0czpJKHQsdGhpcy5pbnB1dE1hc2spLHRocmVzaG9sZDpJKHQscy5vdXRwdXQpfSl9KSx0aGlzLmFkZFN0ZXAoe3Byb2dyYW06ZCxnZXRVbmlmb3JtczooKT0+KHt0ZXh0dXJlOkkodCx1Lm91dHB1dCl9KX0pLHRoaXMuYWRkU3RlcCh7cHJvZ3JhbTpmLGdldFVuaWZvcm1zOigpPT4oe3RleHR1cmU6SSh0LGQub3V0cHV0KX0pfSksdGhpcy5hZGRTdGVwKHtwcm9ncmFtOmEsZ2V0VW5pZm9ybXM6KCk9Pih7dGV4dHVyZTpJKHQsZi5vdXRwdXQpfSl9KSx0aGlzLmFkZFN0ZXAoe3Byb2dyYW06dGhpcy5qb2ludEJpbGF0ZXJhbCxnZXRVbmlmb3JtczooKT0+e3ZhciBHLHosSCwkLEtlLFRlLGxlLFc7Y29uc3QgZz0oej0oRz10aGlzLmlucHV0SW1hZ2UpPT1udWxsP3ZvaWQgMDpHLndpZHRoKSE9bnVsbD96OjEsYj0oJD0oSD10aGlzLmlucHV0SW1hZ2UpPT1udWxsP3ZvaWQgMDpILmhlaWdodCkhPW51bGw/JDoxLGg9KFRlPShLZT10aGlzLmlucHV0TWFzayk9PW51bGw/dm9pZCAwOktlLndpZHRoKSE9bnVsbD9UZToxLHg9KFc9KGxlPXRoaXMuaW5wdXRNYXNrKT09bnVsbD92b2lkIDA6bGUuaGVpZ2h0KSE9bnVsbD9XOjEsRT1NYXRoLm1heChnL2gsYi94KSx2PU1hdGgubWF4KDEsTWF0aC5zcXJ0KEUpKi42NiksRj0xL2csaz0xL2I7cmV0dXJue2lucHV0X2ZyYW1lOkkodCx0aGlzLmlucHV0SW1hZ2UpLHNlZ21lbnRhdGlvbl9tYXNrOkkodCx0aGlzLmlucHV0TWFzayksdGhyZXNob2xkOkkodCxhLm91dHB1dCksdGV4ZWxfc2l6ZTpbRixrXSxzdGVwOnYscmFkaXVzOkUsb2Zmc2V0OnY+MT92Ki41OjAsc2lnbWFfdGV4ZWw6TWF0aC5tYXgoRixrKSpFLHNpZ21hX2NvbG9yOi4xfX19KSx0aGlzLm91dHB1dD10aGlzLmpvaW50QmlsYXRlcmFsLm91dHB1dH1zZXREYXRhKHQsbil7dGhpcy5wcmV2aW91c0lucHV0SW1hZ2U9dGhpcy5pbnB1dEltYWdlP3RoaXMuaW5wdXRJbWFnZTp0LHRoaXMucHJldmlvdXNJbnB1dE1hc2s9dGhpcy5pbnB1dE1hc2s/dGhpcy5pbnB1dE1hc2s6bix0aGlzLmlucHV0SW1hZ2U9dCx0aGlzLmlucHV0TWFzaz1ufXNldE9wdGlvbnModCl7dGhpcy5vcHRpb25zPXR9cmVzaXplT3V0cHV0KHQsbil7c3VwZXIucmVzaXplT3V0cHV0KHQsbiksdGhpcy5vdXRwdXQ9dGhpcy5qb2ludEJpbGF0ZXJhbC5vdXRwdXR9fWNsYXNzICRme2NvbnN0cnVjdG9yKGUpe2wodGhpcywiY29udGV4dCIpO2wodGhpcywiZXh0ZW5zaW9uIik7bCh0aGlzLCJxdWVyaWVzIixbXSk7bCh0aGlzLCJhY3RpdmVRdWVyeSIpO3RoaXMuY29udGV4dD1lLHRoaXMuZXh0ZW5zaW9uPWUuZ2V0RXh0ZW5zaW9uKCJFWFRfZGlzam9pbnRfdGltZXJfcXVlcnlfd2ViZ2wyIil9c3RhcnQoKXt9c3RvcCgpe3RoaXMuYWN0aXZlUXVlcnkmJnRoaXMuY29udGV4dC5lbmRRdWVyeSh0aGlzLmV4dGVuc2lvbi5USU1FX0VMQVBTRURfRVhUKX1wdXNoQ29udGV4dChlKXt0aGlzLmNyZWF0ZVF1ZXJ5KCJQVVNIIixlKX1wb3BDb250ZXh0KGUpe3RoaXMuY3JlYXRlUXVlcnkoIlBPUCIsZSl9Y3JlYXRlUXVlcnkoZSx0KXt0aGlzLmFjdGl2ZVF1ZXJ5JiZ0aGlzLmNvbnRleHQuZW5kUXVlcnkodGhpcy5leHRlbnNpb24uVElNRV9FTEFQU0VEX0VYVCksdGhpcy5hY3RpdmVRdWVyeT10aGlzLmNvbnRleHQuY3JlYXRlUXVlcnkoKSx0aGlzLmNvbnRleHQuYmVnaW5RdWVyeSh0aGlzLmV4dGVuc2lvbi5USU1FX0VMQVBTRURfRVhULHRoaXMuYWN0aXZlUXVlcnkpLHRoaXMucXVlcmllcy5wdXNoKHtuYW1lOnQsYWN0aW9uOmUscXVlcnk6dGhpcy5hY3RpdmVRdWVyeX0pfWFzeW5jIGdldFJlc29sdmVkUXVlcmllcygpe2NvbnN0IGU9KGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLnF1ZXJpZXNdLm1hcCh0PT50aGlzLnJlc29sdmVRdWVyeSh0KSkpKS5maWx0ZXIodD0+dCk7Zm9yKGxldCB0PTE7dDxlLmxlbmd0aDsrK3QpZVt0XS50aW1lc3RhbXArPWVbdC0xXS5kdXJhdGlvbitlW3QtMV0udGltZXN0YW1wO3JldHVybiBlfWFzeW5jIHJlc29sdmVRdWVyeShlKXtpZighYXdhaXQgdGhpcy5hd2FpdFF1ZXJ5QXZhaWxhYmxlKGUpKXtjb25zb2xlLmxvZygiVW5hd2FpdGFibGUgcXVlcnkiLGUpO3JldHVybn1pZih0aGlzLmNvbnRleHQuZ2V0UGFyYW1ldGVyKHRoaXMuZXh0ZW5zaW9uLkdQVV9ESVNKT0lOVF9FWFQpKXtjb25zb2xlLmxvZygiRGlzam9pbnRlZCBxdWVyeSIsZSk7cmV0dXJufXJldHVybnsuLi5lLGR1cmF0aW9uOnRoaXMuY29udGV4dC5nZXRRdWVyeVBhcmFtZXRlcihlLnF1ZXJ5LHRoaXMuY29udGV4dC5RVUVSWV9SRVNVTFQpLHRpbWVzdGFtcDowfX1hc3luYyBhd2FpdFF1ZXJ5QXZhaWxhYmxlKGUpe2ZvcihsZXQgdD0wO3Q8MTA7Kyt0KXtpZih0aGlzLmNvbnRleHQuZ2V0UXVlcnlQYXJhbWV0ZXIoZS5xdWVyeSx0aGlzLmNvbnRleHQuUVVFUllfUkVTVUxUX0FWQUlMQUJMRSkpcmV0dXJuIGU7YXdhaXQgUm8oMjAwKX19fWNsYXNzIHp0e2NvbnN0cnVjdG9yKCl7bCh0aGlzLCJjYW52YXMiKTtsKHRoaXMsImNvbnRleHQiKTtsKHRoaXMsInBpcGVsaW5lIik7bCh0aGlzLCJwcmV2aW91c0ltYWdlV2lkdGgiLDApO2wodGhpcywicHJldmlvdXNJbWFnZUhlaWdodCIsMCk7bCh0aGlzLCJwcmV2aW91c01hc2tXaWR0aCIsT2UpO2wodGhpcywicHJldmlvdXNNYXNrSGVpZ2h0IixPZSk7bCh0aGlzLCJwcm9maWxlciIpO2wodGhpcywicG9zdFByb2Nlc3NpbmdFbmFibGVkIiwhMCk7bCh0aGlzLCJpbXByb3ZlTWFzayIpO2NvbnN0IGU9bmV3IE9mZnNjcmVlbkNhbnZhcygwLDApLHQ9ZS5nZXRDb250ZXh0KCJ3ZWJnbDIiKTtpZighdCl0aHJvdyJGYWlsIHRvIHJldHJpZXZlIHdlYmdsMiBjb250ZXh0Ijt0aGlzLmNhbnZhcz1lLHRoaXMuY29udGV4dD10LHRoaXMuaW1wcm92ZU1hc2s9bmV3IEdmKHRoaXMuY29udGV4dCxPZSxPZSl9c2V0RmxpY2tlcmluZ09wdGlvbnMoZSl7dGhpcy5pbXByb3ZlTWFzay5zZXRPcHRpb25zKGUpfWVuYWJsZVBvc3RQcm9jZXNzaW5nKCl7dGhpcy5wb3N0UHJvY2Vzc2luZ0VuYWJsZWQ9ITB9ZGlzYWJsZVBvc3RQcm9jZXNzaW5nKCl7dGhpcy5wb3N0UHJvY2Vzc2luZ0VuYWJsZWQ9ITF9YXN5bmMgcHJvZmlsZVdlYmdsKGUpe2NvbnN0IHQ9bmV3ICRmKHRoaXMuY29udGV4dCk7cmV0dXJuIHRoaXMucHJvZmlsZXI9dCx0LnN0YXJ0KCksYXdhaXQgUm8oZSksdGhpcy5wcm9maWxlcj12b2lkIDAsdC5zdG9wKCksdC5nZXRSZXNvbHZlZFF1ZXJpZXMoKX1hc3luYyByZW5kZXIoZSx0KXt2YXIgaSxzO2lmKCF0aGlzLnBpcGVsaW5lKXRocm93Im1pc3NpbmcgcGlwZWxpbmUiOyh0aGlzLnByZXZpb3VzSW1hZ2VIZWlnaHQhPT1lLmhlaWdodHx8dGhpcy5wcmV2aW91c0ltYWdlV2lkdGghPT1lLndpZHRoKSYmdGhpcy5yZXNpemVPdXRwdXQoZS53aWR0aCxlLmhlaWdodCksKHRoaXMucHJldmlvdXNNYXNrSGVpZ2h0IT09dC5oZWlnaHR8fHRoaXMucHJldmlvdXNNYXNrV2lkdGghPT10LndpZHRoKSYmKHRoaXMuaW1wcm92ZU1hc2sucmVzaXplT3V0cHV0KHQud2lkdGgsdC5oZWlnaHQpLHRoaXMucHJldmlvdXNNYXNrV2lkdGg9dC53aWR0aCx0aGlzLnByZXZpb3VzTWFza0hlaWdodD10LmhlaWdodCk7Y29uc3Qgbj0icmVuZGVyZXIiOyhpPXRoaXMucHJvZmlsZXIpPT1udWxsfHxpLnB1c2hDb250ZXh0KG4pLHRoaXMuaW1wcm92ZU1hc2suc2V0UHJvZmlsZXIodGhpcy5wcm9maWxlciksdGhpcy5waXBlbGluZS5zZXRQcm9maWxlcih0aGlzLnByb2ZpbGVyKTtsZXQgbz10O3JldHVybiB0aGlzLnBvc3RQcm9jZXNzaW5nRW5hYmxlZCYmKHRoaXMuaW1wcm92ZU1hc2suc2V0RGF0YShlLHQpLHRoaXMuaW1wcm92ZU1hc2sucnVuKCksbz10aGlzLmltcHJvdmVNYXNrLm91dHB1dCksdGhpcy5waXBlbGluZS5zZXREYXRhKGUsbyksYXdhaXQgdGhpcy5waXBlbGluZS5ydW4oKSwocz10aGlzLnByb2ZpbGVyKT09bnVsbHx8cy5wb3BDb250ZXh0KG4pLHRoaXMuY2FudmFzfXJlc2l6ZU91dHB1dChlLHQpe3ZhciBuO3RoaXMuY2FudmFzLndpZHRoPWUsdGhpcy5jYW52YXMuaGVpZ2h0PXQsKG49dGhpcy5waXBlbGluZSk9PW51bGx8fG4ucmVzaXplT3V0cHV0KGUsdCksdGhpcy5wcmV2aW91c0ltYWdlV2lkdGg9ZSx0aGlzLnByZXZpb3VzSW1hZ2VIZWlnaHQ9dH19Y2xhc3MgUG8gZXh0ZW5kcyB6dHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7bCh0aGlzLCJwaXBlbGluZSIpO2wodGhpcywiYmFja2dyb3VuZEltYWdlIik7bCh0aGlzLCJiYWNrZ3JvdW5kSW1hZ2VSZXNpemVyQ2FudmFzIik7bCh0aGlzLCJiYWNrZ3JvdW5kSW1hZ2VSZXNpemVyQ29udGV4dCIpO2wodGhpcywiYmFja2dyb3VuZEltYWdlUmVzaXplciIpO3RoaXMucGlwZWxpbmU9bmV3IFNvKHRoaXMuY29udGV4dCk7Y29uc3QgdD1uZXcgT2Zmc2NyZWVuQ2FudmFzKDAsMCksbj10LmdldENvbnRleHQoIndlYmdsMiIpO2lmKCFuKXRocm93IkZhaWwgdG8gcmV0cmlldmUgd2ViZ2wgY29udGV4dCI7dGhpcy5iYWNrZ3JvdW5kSW1hZ2VSZXNpemVyQ2FudmFzPXQsdGhpcy5iYWNrZ3JvdW5kSW1hZ2VSZXNpemVyQ29udGV4dD1uLHRoaXMuYmFja2dyb3VuZEltYWdlUmVzaXplcj1uZXcgVGYodGhpcy5iYWNrZ3JvdW5kSW1hZ2VSZXNpemVyQ29udGV4dCwwLDApfXNldEJhY2tncm91bmRJbWFnZSh0KXt0aGlzLmJhY2tncm91bmRJbWFnZT10LHRoaXMudXBkYXRlQmFja2dyb3VuZEltYWdlKCl9dXBkYXRlQmFja2dyb3VuZEltYWdlKCl7Y29uc3R7d2lkdGg6dCxoZWlnaHQ6bn09dGhpcy5jYW52YXM7dGhpcy5iYWNrZ3JvdW5kSW1hZ2VSZXNpemVyLnJlc2l6ZU91dHB1dCh0LG4pLHRoaXMuYmFja2dyb3VuZEltYWdlUmVzaXplci5zZXREYXRhKHRoaXMuYmFja2dyb3VuZEltYWdlKSx0aGlzLmJhY2tncm91bmRJbWFnZVJlc2l6ZXIucnVuKCksdGhpcy5waXBlbGluZS5pbnB1dEJhY2tncm91bmRJbWFnZT10aGlzLmJhY2tncm91bmRJbWFnZVJlc2l6ZXJDYW52YXN9cmVzaXplT3V0cHV0KHQsbil7c3VwZXIucmVzaXplT3V0cHV0KHQsbiksdGhpcy5iYWNrZ3JvdW5kSW1hZ2VSZXNpemVyQ2FudmFzLndpZHRoPXQsdGhpcy5iYWNrZ3JvdW5kSW1hZ2VSZXNpemVyQ2FudmFzLmhlaWdodD1uLHRoaXMuYmFja2dyb3VuZEltYWdlUmVzaXplci5yZXNpemVPdXRwdXQodCxuKSx0aGlzLnVwZGF0ZUJhY2tncm91bmRJbWFnZSgpfX1jbGFzcyBXZiBleHRlbmRzIFBve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTtsKHRoaXMsImZyYW1lUmVhZGVyIil9c2V0QmFja2dyb3VuZFZpZGVvKHQpe3RoaXMuZnJhbWVSZWFkZXI9dH1hc3luYyByZW5kZXIodCxuKXtyZXR1cm4gYXdhaXQgdGhpcy5yZWFkTmV4dFZpZGVvRnJhbWUoKSxzdXBlci5yZW5kZXIodCxuKX1hc3luYyByZWFkTmV4dFZpZGVvRnJhbWUoKXt2YXIgbjtjb25zdCB0PWF3YWl0KChuPXRoaXMuZnJhbWVSZWFkZXIpPT1udWxsP3ZvaWQgMDpuLnJlYWQoKSk7aWYodCE9bnVsbCYmdC52YWx1ZSl7Y29uc3Qgbz1hd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh0LnZhbHVlKTt0aGlzLnNldEJhY2tncm91bmRJbWFnZShvKSx0LnZhbHVlLmNsb3NlKCl9fX1jbGFzcyBrb3tibHVyQmFja2dyb3VuZChlKXtyZXR1cm4gbmV3IGxzKGUpfWJsdXJTaWxob3VldHRlKGUpe3JldHVybiBuZXcgZHMoZSl9aW1hZ2VCYWNrZ3JvdW5kKCl7cmV0dXJuIG5ldyBoc312aWRlb0JhY2tncm91bmQoKXtyZXR1cm4gbmV3IFdmfX12YXIgVmY9YHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoKdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwoKdW5pZm9ybSB2ZWMyIGNhbnZhczsKdW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTsKdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKCnZlYzQgbG9vcCgpOwoKdm9pZCBtYWluKCkgeyBnbF9GcmFnQ29sb3IgPSBsb29wKCk7IH0KYCxIZj1gdmFyeWluZyB2ZWMyIF90ZXh0dXJlX2Nvb3JkOwoKYXR0cmlidXRlIHZlYzIgcG9zaXRpb247CmF0dHJpYnV0ZSB2ZWMyIHRleHR1cmVfY29vcmQ7Cgp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uLCAwLiwgMS4pOwogIF90ZXh0dXJlX2Nvb3JkID0gdGV4dHVyZV9jb29yZDsKfQpgO2NsYXNzIGpmIGV4dGVuZHMgRWV7Z2V0RGVmaW5lcygpe3ZhciBlO3JldHVybntSQURJVVM6KGU9dGhpcy5vcHRpb25zLnJhZGl1cykhPW51bGw/ZToxfX1nZXRGcmFnbWVudFNoYWRlcigpe3JldHVybiBWZit0aGlzLmNyZWF0ZUxvb3BGdW5jdGlvbigpfWdldFZlcnRleFNoYWRlcigpe3JldHVybiBIZn1jcmVhdGVMb29wRnVuY3Rpb24oKXt2YXIgdDtsZXQgZT0odD10aGlzLm9wdGlvbnMucmFkaXVzKSE9bnVsbD90OjE7cmV0dXJuYAoKICAgICAgICB2ZWM0IGxvb3AoKSB7IAogICAgICAgICAgICB2ZWM0IHJlc3VsdCA9IHZlYzQoMCwwLDAsMCk7CiAgICAgICAgICAgIGZsb2F0IGZhY3RvclN1bSA9IDAuOwoKICAgICAgICAgICAgdmVjMiBub3JtYWxpemVkUmFkaXVzID0gdmVjMigtJHtlfS4pIC8gY2FudmFzOwogICAgICAgICAgICB2ZWMyIG5vcm1hbGl6ZWRJbmNyZW1lbnQgPSB2ZWMyKDEuKSAvIGNhbnZhczsKICAgICAgICAgICAgdmVjMiBkaWZmID0gbm9ybWFsaXplZFJhZGl1czsKICAgICAgICAgICAgZmxvYXQgbWF4TGVuZ3RoID0gbGVuZ3RoKG5vcm1hbGl6ZWRSYWRpdXMpOwoKICAgICAgICAgICAgZm9yKGludCB5PS0ke2V9OyB5PCR7ZSsxfTsgKyt5KSB7CiAgICAgICAgICAgICAgICBmb3IoaW50IHg9LSR7ZX07IHg8JHtlKzF9OyArK3gpIHsKICAgICAgICAgICAgICAgICAgICBmbG9hdCBmYWN0b3IgPSAoMS4tIHRleHR1cmUyRChtYXNrLCBfdGV4dHVyZV9jb29yZCArIGRpZmYpLmEpICogKG1heExlbmd0aCAtIGxlbmd0aChkaWZmKSkgLyBtYXhMZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGZhY3RvciAqIHRleHR1cmUyRCh0ZXh0dXJlLCBfdGV4dHVyZV9jb29yZCArIGRpZmYpOwogICAgICAgICAgICAgICAgICAgIGZhY3RvclN1bSArPSBmYWN0b3I7CiAgICAgICAgICAgICAgICAgICAgZGlmZi54ICs9IG5vcm1hbGl6ZWRJbmNyZW1lbnQueDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRpZmYueSArPSBub3JtYWxpemVkSW5jcmVtZW50Lnk7CiAgICAgICAgICAgICAgICBkaWZmLnggPSBub3JtYWxpemVkUmFkaXVzLng7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCAvIGZhY3RvclN1bTsKICAgICAgICB9YH19Y29uc3QgWWY9MTAsWGY9MixRZj04O2NsYXNzIHFmIGV4dGVuZHMgTHJ7Y29uc3RydWN0b3IodCxuKXtzdXBlcigpO2wodGhpcywiaW5wdXRJbWFnZSIpO2wodGhpcywiaW5wdXRNYXNrIik7bCh0aGlzLCJibHVyIik7dGhpcy5jb250ZXh0PXQsdGhpcy5yYWRpdXM9bjtjb25zdCBvPXtjb250ZXh0OnQsaGVpZ2h0OnQuY2FudmFzLmhlaWdodCx3aWR0aDp0LmNhbnZhcy53aWR0aH07dGhpcy5ibHVyPW5ldyBqZih7Li4ubyxyYWRpdXM6biwuLi50aGlzLmdldEJsdXJUZXh0dXJlU2l6ZSh0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpfSk7Y29uc3QgaT1uZXcgVXIoey4uLm8sZGlzYWJsZUZyYW1lYnVmZmVyOiEwfSk7dGhpcy5hZGRTdGVwKHtwcm9ncmFtOnRoaXMuYmx1cixwcmV2ZW50UmVzaXplOiEwLGdldFVuaWZvcm1zOigpPT4oe3RleHR1cmU6SSh0LHRoaXMuaW5wdXRJbWFnZSksbWFzazpJKHQsdGhpcy5pbnB1dE1hc2spfSl9KSx0aGlzLmFkZFN0ZXAoe3Byb2dyYW06aSxnZXRVbmlmb3JtczooKT0+KHtiYWNrZ3JvdW5kOkkodCx0aGlzLmJsdXIub3V0cHV0KSxmb3JlZ3JvdW5kOkkodCx0aGlzLmlucHV0SW1hZ2UpLHRocmVzaG9sZDpJKHQsdGhpcy5pbnB1dE1hc2spfSl9KX1nZXRCbHVyVGV4dHVyZVNpemUodCxuKXtjb25zdCBvPXRoaXMucmFkaXVzPllmP1FmOlhmO3JldHVybnt3aWR0aDpNYXRoLm1heChPZSx0L28pLGhlaWdodDpNYXRoLm1heChPZSxuL28pfX1zZXREYXRhKHQsbil7dGhpcy5pbnB1dEltYWdlPXQsdGhpcy5pbnB1dE1hc2s9bn1yZXNpemVPdXRwdXQodCxuKXtzdXBlci5yZXNpemVPdXRwdXQodCxuKTtjb25zdCBvPXRoaXMuZ2V0Qmx1clRleHR1cmVTaXplKHQsbik7dGhpcy5ibHVyLnJlc2l6ZU91dHB1dChvLndpZHRoLG8uaGVpZ2h0KX19Y2xhc3MgS2YgZXh0ZW5kcyB6dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpO2wodGhpcywicGlwZWxpbmUiKTt0aGlzLnBpcGVsaW5lPW5ldyBxZih0aGlzLmNvbnRleHQsdCksdGhpcy5kaXNhYmxlUG9zdFByb2Nlc3NpbmcoKX19Y2xhc3MgSmYgZXh0ZW5kcyBMcntjb25zdHJ1Y3Rvcih0LG4pe3N1cGVyKCk7bCh0aGlzLCJpbnB1dEltYWdlIik7bCh0aGlzLCJpbnB1dE1hc2siKTt0aGlzLmNvbnRleHQ9dDtjb25zdCBvPXtjb250ZXh0OnQsaGVpZ2h0OnQuY2FudmFzLmhlaWdodCx3aWR0aDp0LmNhbnZhcy53aWR0aH0saT1uZXcgRm8oey4uLm8scmFkaXVzOm4sdHlwZTp6ci5HQVVTU0lBTn0pLHM9bmV3IFVyKHsuLi5vLGRpc2FibGVGcmFtZWJ1ZmZlcjohMH0pO3RoaXMuYWRkU3RlcCh7cHJvZ3JhbTppLGdldFVuaWZvcm1zOigpPT4oe3RleHR1cmU6SSh0LHRoaXMuaW5wdXRJbWFnZSl9KX0pLHRoaXMuYWRkU3RlcCh7cHJvZ3JhbTpzLGdldFVuaWZvcm1zOigpPT4oe2JhY2tncm91bmQ6SSh0LHRoaXMuaW5wdXRJbWFnZSksZm9yZWdyb3VuZDpJKHQsaS5vdXRwdXQpLHRocmVzaG9sZDpJKHQsdGhpcy5pbnB1dE1hc2spfSl9KX1zZXREYXRhKHQsbil7dGhpcy5pbnB1dEltYWdlPXQsdGhpcy5pbnB1dE1hc2s9bn19Y2xhc3MgWmYgZXh0ZW5kcyB6dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpO2wodGhpcywicGlwZWxpbmUiKTt0aGlzLnBpcGVsaW5lPW5ldyBKZih0aGlzLmNvbnRleHQsdCksdGhpcy5kaXNhYmxlUG9zdFByb2Nlc3NpbmcoKX19Y2xhc3MgZWwgZXh0ZW5kcyBTb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyk7bCh0aGlzLCJmcmFtZVJlYWRlciIpO2wodGhpcywicHJlY2lzZU1hc2tFbmFibGVkIiwhMCl9c2V0IHJlYWRlcih0KXt0aGlzLmZyYW1lUmVhZGVyPXR9YXN5bmMgcnVuKCl7dGhpcy5mcmFtZVJlYWRlciYmKGF3YWl0IHRoaXMucmVhZE5leHRWaWRlb0ZyYW1lKCksYXdhaXQgc3VwZXIucnVuKCkpfWFzeW5jIHJlYWROZXh0VmlkZW9GcmFtZSgpe3ZhciBuO2NvbnN0IHQ9YXdhaXQoKG49dGhpcy5mcmFtZVJlYWRlcik9PW51bGw/dm9pZCAwOm4ucmVhZCgpKTt0IT1udWxsJiZ0LnZhbHVlJiYodGhpcy5pbnB1dEJhY2tncm91bmRJbWFnZT1hd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh0LnZhbHVlKSx0LnZhbHVlLmNsb3NlKCkpfX1jbGFzcyB0bCBleHRlbmRzIHp0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtsKHRoaXMsInBpcGVsaW5lIik7dGhpcy5waXBlbGluZT1uZXcgZWwodGhpcy5jb250ZXh0KX1zZXRCYWNrZ3JvdW5kVmlkZW8odCl7dGhpcy5waXBlbGluZS5yZWFkZXI9dH19Y2xhc3MgRG97Ymx1ckJhY2tncm91bmQoZSl7cmV0dXJuIG5ldyBLZihlKX1ibHVyU2lsaG91ZXR0ZShlKXtyZXR1cm4gbmV3IFpmKGUpfWltYWdlQmFja2dyb3VuZCgpe3JldHVybiBuZXcgUG99dmlkZW9CYWNrZ3JvdW5kKCl7cmV0dXJuIG5ldyB0bH19Y2xhc3Mgcmx7Y29uc3RydWN0b3IoZSl7bCh0aGlzLCJmYWN0b3J5Iik7c3dpdGNoKGUpe2Nhc2UgeXQuQ0FOVkFTOnRoaXMuZmFjdG9yeT1uZXcga287YnJlYWs7Y2FzZSB5dC5XRUJHTDp0aGlzLmZhY3Rvcnk9bmV3IERvO2JyZWFrO2RlZmF1bHQ6Y29uc3QgdD1mcygpO3RoaXMuZmFjdG9yeT10LnN1cHBvcnRlZD9uZXcgRG86bmV3IGtvfX1ibHVyQmFja2dyb3VuZChlKXtyZXR1cm4gdGhpcy5nZXRGYWN0b3J5KCkuYmx1ckJhY2tncm91bmQoZSl9Ymx1clNpbGhvdWV0dGUoZSl7cmV0dXJuIHRoaXMuZ2V0RmFjdG9yeSgpLmJsdXJTaWxob3VldHRlKGUpfWltYWdlQmFja2dyb3VuZCgpe3JldHVybiB0aGlzLmdldEZhY3RvcnkoKS5pbWFnZUJhY2tncm91bmQoKX12aWRlb0JhY2tncm91bmQoKXtyZXR1cm4gdGhpcy5nZXRGYWN0b3J5KCkudmlkZW9CYWNrZ3JvdW5kKCl9Z2V0RmFjdG9yeSgpe2lmKCF0aGlzLmZhY3RvcnkpdGhyb3ciRmFjdG9yeSBpcyBub3QgaW5pdGlhbGl6ZWQiO3JldHVybiB0aGlzLmZhY3Rvcnl9fWNsYXNzIG5se2NvbnN0cnVjdG9yKCl7bCh0aGlzLCJyZW5kZXJlciIpO2wodGhpcywiYmFja2dyb3VuZFZpZGVvIik7bCh0aGlzLCJiYWNrZ3JvdW5kSW1hZ2UiKX1zZXRCYWNrZ3JvdW5kT3B0aW9ucyhlKXt2YXIgbixvO2NvbnN0IHQ9bmV3IHJsKChuPWUucmVuZGVyaW5nT3B0aW9ucyk9PW51bGw/dm9pZCAwOm4udHlwZSk7c3dpdGNoKGUudHJhbnNmb3JtZXJUeXBlKXtjYXNlIkJhY2tncm91bmRCbHVyIjp0aGlzLnJlbmRlcmVyPXQuYmx1ckJhY2tncm91bmQodGhpcy5nZXRCbHVyU2l6ZShlLnJhZGl1cykpO2JyZWFrO2Nhc2UiU2lsaG91ZXR0ZUJsdXIiOnRoaXMucmVuZGVyZXI9dC5ibHVyU2lsaG91ZXR0ZSh0aGlzLmdldEJsdXJTaXplKGUucmFkaXVzKSk7YnJlYWs7Y2FzZSJWaWRlb0JhY2tncm91bmQiOmNvbnN0IGk9dC52aWRlb0JhY2tncm91bmQoKTt0aGlzLmJhY2tncm91bmRWaWRlbyYmaS5zZXRCYWNrZ3JvdW5kVmlkZW8odGhpcy5iYWNrZ3JvdW5kVmlkZW8pLHRoaXMucmVuZGVyZXI9aTticmVhaztjYXNlIlZpcnR1YWxCYWNrZ3JvdW5kIjpjb25zdCBzPXQuaW1hZ2VCYWNrZ3JvdW5kKCk7dGhpcy5iYWNrZ3JvdW5kSW1hZ2UmJnMuc2V0QmFja2dyb3VuZEltYWdlKHRoaXMuYmFja2dyb3VuZEltYWdlKSx0aGlzLnJlbmRlcmVyPXM7YnJlYWs7ZGVmYXVsdDp0aHJvd2BVbmtub3duIHJlbmRlcmluZyB0eXBlIFske2UudHJhbnNmb3JtZXJUeXBlfV1gfSgobz1lLnJlbmRlcmluZ09wdGlvbnMpPT1udWxsP3ZvaWQgMDpvLnR5cGUpPT09eXQuV0VCR0wmJihlLnJlbmRlcmluZ09wdGlvbnMuc2VsZmllU2VnbWVudGF0aW9uVHlwZT09PW5yLlBSRUNJU0U/dGhpcy5yZW5kZXJlci5lbmFibGVQb3N0UHJvY2Vzc2luZygpOmUucmVuZGVyaW5nT3B0aW9ucy5zZWxmaWVTZWdtZW50YXRpb25UeXBlPT09bnIuRkFTVCYmdGhpcy5yZW5kZXJlci5kaXNhYmxlUG9zdFByb2Nlc3NpbmcoKSl9c2V0RmxpY2tlcmluZ09wdGlvbnMoZSl7dmFyIHQ7KHQ9dGhpcy5yZW5kZXJlcik9PW51bGx8fHQuc2V0RmxpY2tlcmluZ09wdGlvbnMoZSl9c2V0VmlkZW9CR1JlYWRhYmxlKGUpe3RoaXMuYmFja2dyb3VuZFZpZGVvPWUuZ2V0UmVhZGVyKCk7Y29uc3QgdD10aGlzLnJlbmRlcmVyO3QhPW51bGwmJnQuc2V0QmFja2dyb3VuZFZpZGVvJiZ0LnNldEJhY2tncm91bmRWaWRlbyh0aGlzLmJhY2tncm91bmRWaWRlbyl9YXN5bmMgc2V0VmlydHVhbEJHSW1hZ2UoZSl7Y29uc3QgdD10aGlzLnJlbmRlcmVyO3QhPW51bGwmJnQuc2V0QmFja2dyb3VuZEltYWdlJiZ0LnNldEJhY2tncm91bmRJbWFnZShlKSx0aGlzLmJhY2tncm91bmRJbWFnZT1lfWFzeW5jIHByb2Nlc3MoZSx0KXtpZih0aGlzLnJlbmRlcmVyKXJldHVybiB0aGlzLnJlbmRlcmVyLnJlbmRlcihlLHQpfWFzeW5jIHJlc2l6ZUZvcmVncm91bmQoZSx0KXt9Z2V0Qmx1clNpemUoZT1ndC5Mb3cpe3N3aXRjaChlKXtjYXNlIGd0LkxvdzpyZXR1cm4gNTtjYXNlIGd0LkhpZ2g6cmV0dXJuIDEyfXJldHVybiBlfWFzeW5jIHByb2ZpbGUoZSl7dmFyIHQsbjtyZXR1cm4obj0odD10aGlzLnJlbmRlcmVyKT09bnVsbD92b2lkIDA6dC5wcm9maWxlV2ViZ2woZSkpIT1udWxsP246W119fWNsYXNzIG9se2NvbnN0cnVjdG9yKCl7bCh0aGlzLCJzZWxmaWVTZWdtZW50YXRpb24iLG5ldyBjcyk7bCh0aGlzLCJiYWNrZ3JvdW5kRmlsdGVyIik7bCh0aGlzLCJyZXBvcnRlciIsbmV3IHJzKTtsKHRoaXMsImlzRW5hYmxlZCIsITApO2wodGhpcywiYmFja2dyb3VuZE9wdGlvbnMiKX1hc3luYyBpbml0KGUsdCl7YXdhaXQgdGhpcy5zZWxmaWVTZWdtZW50YXRpb24uaW5pdCh0Lndhc21Bc3NldFVyaVBhdGgsdC50ZmxpdGVBc3NldFVyaVBhdGgpLHRoaXMuYmFja2dyb3VuZEZpbHRlcj1uZXcgbmwsdGhpcy5yZXBvcnQoe3ZhcmlhdGlvbjoiQ3JlYXRlIn0pfWFzeW5jIHRyYW5zZm9ybShlLHQpe3ZhciBhLHU7aWYoIXRoaXMuaXNFbmFibGVkKXJldHVybiB0LmVucXVldWUoZSk7bGV0IG47Y29uc3Qgbz0oYT1lLnRpbWVzdGFtcCkhPW51bGw/YTowLGk9YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAoZSkscz1hd2FpdCB0aGlzLnNlbGZpZVNlZ21lbnRhdGlvbi5wcm9jZXNzKGkpO3MmJihuPWF3YWl0KCh1PXRoaXMuYmFja2dyb3VuZEZpbHRlcik9PW51bGw/dm9pZCAwOnUucHJvY2VzcyhpLHMpKSksbj8oZS5jbG9zZSgpLHQuZW5xdWV1ZShuZXcgVmlkZW9GcmFtZShuLHt0aW1lc3RhbXA6byxhbHBoYToiZGlzY2FyZCJ9KSkpOnQuZW5xdWV1ZShlKX1hc3luYyBzZXRCYWNrZ3JvdW5kT3B0aW9ucyhlKXt2YXIgdDt0aGlzLmJhY2tncm91bmRPcHRpb25zPWUsYXdhaXQoKHQ9dGhpcy5iYWNrZ3JvdW5kRmlsdGVyKT09bnVsbD92b2lkIDA6dC5zZXRCYWNrZ3JvdW5kT3B0aW9ucyhlKSksdGhpcy5yZXBvcnQoe3ZhcmlhdGlvbjoiVXBkYXRlIn0pfWFzeW5jIHNldFZpZGVvQkdSZWFkYWJsZShlKXt2YXIgdDthd2FpdCgodD10aGlzLmJhY2tncm91bmRGaWx0ZXIpPT1udWxsP3ZvaWQgMDp0LnNldFZpZGVvQkdSZWFkYWJsZShlKSl9YXN5bmMgc2V0VmlydHVhbEJHSW1hZ2UoZSl7dmFyIHQ7YXdhaXQoKHQ9dGhpcy5iYWNrZ3JvdW5kRmlsdGVyKT09bnVsbD92b2lkIDA6dC5zZXRWaXJ0dWFsQkdJbWFnZShlKSl9c2V0RmxpY2tlcmluZ09wdGlvbnMoZSl7dmFyIHQ7KHQ9dGhpcy5iYWNrZ3JvdW5kRmlsdGVyKT09bnVsbHx8dC5zZXRGbGlja2VyaW5nT3B0aW9ucyhlKSx0aGlzLnJlcG9ydCh7dmFyaWF0aW9uOiJVcGRhdGUifSl9YXN5bmMgcHJvZmlsZShlKXt2YXIgdCxuO3JldHVybihuPSh0PXRoaXMuYmFja2dyb3VuZEZpbHRlcik9PW51bGw/dm9pZCAwOnQucHJvZmlsZShlKSkhPW51bGw/bjpbXX1nZXRUcmFuc2Zvcm1lclR5cGUoKXt2YXIgZSx0O3JldHVybih0PShlPXRoaXMuYmFja2dyb3VuZE9wdGlvbnMpPT1udWxsP3ZvaWQgMDplLnRyYW5zZm9ybWVyVHlwZSkhPW51bGw/dDoiVW5kZWZpbmVkIn1lbmFibGUoKXt0aGlzLmlzRW5hYmxlZD0hMH1kaXNhYmxlKCl7dGhpcy5pc0VuYWJsZWQ9ITF9cmVwb3J0KGUpe3ZhciB0O3RoaXMucmVwb3J0ZXIuc2VuZCh7dmVyc2lvbjpucyxhY3Rpb246Ik1sVHJhbnNmb3JtZXJzIix0cmFuc2Zvcm1lclR5cGU6KHQ9dGhpcy5iYWNrZ3JvdW5kT3B0aW9ucyk9PW51bGw/dm9pZCAwOnQudHJhbnNmb3JtZXJUeXBlLGNvbmZpZzpKU09OLnN0cmluZ2lmeSh0aGlzLmJhY2tncm91bmRPcHRpb25zKSwuLi5lfSl9fWNvbnN0ICRyPWNsYXNze2NvbnN0cnVjdG9yKCl7bCh0aGlzLCJiYWNrZ3JvdW5kVHJhbnNmb3JtZXIiLG5ldyBvbCk7bCh0aGlzLCJtZWRpYVByb2Nlc3NvciIsbmV3IERpKTtsKHRoaXMsInJhdGUiLDMwKTtsKHRoaXMsInJlc29sdmVPbk1lZGlhUHJvY2Vzc29yIik7bCh0aGlzLCJldmVudHNRdWV1ZSIsW10pfWFzeW5jIGluaXQoZSx0KXthd2FpdCB0aGlzLmJhY2tncm91bmRUcmFuc2Zvcm1lci5pbml0KGUsdCksYXdhaXQgdGhpcy5tZWRpYVByb2Nlc3Nvci5zZXRUcmFuc2Zvcm1lcnMoW3RoaXMuYmFja2dyb3VuZFRyYW5zZm9ybWVyXSksdGhpcy5tZWRpYVByb2Nlc3Nvci5zZXRUcmFja0V4cGVjdGVkUmF0ZSh0aGlzLnJhdGUpLHRoaXMubWVkaWFQcm9jZXNzb3Iub25BbnkoKG4sbyk9Pnt0aGlzLnJlc29sdmVPbk1lZGlhUHJvY2Vzc29yPyh0aGlzLnJlc29sdmVPbk1lZGlhUHJvY2Vzc29yKHtuYW1lOm4sZGF0YTpvfSksdGhpcy5yZXNvbHZlT25NZWRpYVByb2Nlc3Nvcj12b2lkIDApOnRoaXMuZXZlbnRzUXVldWUucHVzaCh7bmFtZTpuLGRhdGE6b30pfSl9ZW5hYmxlKCl7dGhpcy5iYWNrZ3JvdW5kVHJhbnNmb3JtZXIuZW5hYmxlKCl9ZGlzYWJsZSgpe3RoaXMuYmFja2dyb3VuZFRyYW5zZm9ybWVyLmRpc2FibGUoKX1hc3luYyBvbk1lZGlhUHJvY2Vzc29yRXZlbnQoKXtyZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoZT0+e3RoaXMuZXZlbnRzUXVldWUubGVuZ3RoPjA/ZSh0aGlzLmV2ZW50c1F1ZXVlLnNoaWZ0KCkpOnRoaXMucmVzb2x2ZU9uTWVkaWFQcm9jZXNzb3I9ZX0pfWFzeW5jIHNldFRyYWNrRXhwZWN0ZWRSYXRlKGUpe3RoaXMucmF0ZT1lLHRoaXMubWVkaWFQcm9jZXNzb3Iuc2V0VHJhY2tFeHBlY3RlZFJhdGUoZSl9YXN5bmMgdHJhbnNmb3JtKGUsdCl7dGhpcy5tZWRpYVByb2Nlc3Nvci50cmFuc2Zvcm0oZSx0KX1hc3luYyBzZXRCYWNrZ3JvdW5kT3B0aW9ucyhlKXt2YXIgdDthd2FpdCgodD10aGlzLmJhY2tncm91bmRUcmFuc2Zvcm1lcik9PW51bGw/dm9pZCAwOnQuc2V0QmFja2dyb3VuZE9wdGlvbnMoZSkpfXNldFZpZGVvQkdSZWFkYWJsZShlKXt0aGlzLmJhY2tncm91bmRUcmFuc2Zvcm1lci5zZXRWaWRlb0JHUmVhZGFibGUoZSl9YXN5bmMgc2V0VmlydHVhbEJHSW1hZ2UoZSl7YXdhaXQgdGhpcy5iYWNrZ3JvdW5kVHJhbnNmb3JtZXIuc2V0VmlydHVhbEJHSW1hZ2UoZSl9YXN5bmMgdGVybWluYXRlKCl7YXdhaXQgdGhpcy5tZWRpYVByb2Nlc3Nvci5kZXN0cm95KCl9c2V0RmxpY2tlcmluZ09wdGlvbnMoZSl7dGhpcy5iYWNrZ3JvdW5kVHJhbnNmb3JtZXIuc2V0RmxpY2tlcmluZ09wdGlvbnMoZSl9c2V0Vm9uYWdlTWV0YWRhdGEoZSl7SWkoZSl9YXN5bmMgcHJvZmlsZShlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgdGhpcy5iYWNrZ3JvdW5kVHJhbnNmb3JtZXIucHJvZmlsZShlKSl9fTtsZXQgQ289JHI7KCgpPT57am8oIlByb2Nlc3NvcldvcmtlciIsJHIpfSkoKX0pKCk7Cg==",AU=typeof window<"u"&&window.Blob&&new Blob([atob(gU)],{type:"text/javascript;charset=utf-8"});function J3(){const G=AU&&(window.URL||window.webkitURL).createObjectURL(AU);try{return G?new Worker(G):new Worker("data:application/javascript;base64,"+gU)}finally{G&&(window.URL||window.webkitURL).revokeObjectURL(G)}}const pU=class extends ta{constructor(G){super(),d(this,"rate",30),d(this,"worker"),d(this,"config"),d(this,"backgroundOptions"),d(this,"isEnabled",!0),this.config=G}async setTrackExpectedRate(G){var Z;await this.startWorker(),await((Z=this.worker)==null?void 0:Z.setTrackExpectedRate(G))}async setBackgroundOptions(G){this.backgroundOptions=G,await this.updateBackgroundOptions(G)}async transform(G,Z){var W;await this.startWorker(),await((W=this.worker)==null?void 0:W.transform(G,Z))}async destroy(){var G;await((G=this.worker)==null?void 0:G.terminate()),this.worker=void 0}async setFlickeringOptions(G){var Z;await this.startWorker(),await((Z=this.worker)==null?void 0:Z.setFlickeringOptions(G))}async profile(G){var Z;const W=await((Z=this.worker)==null?void 0:Z.profile(G));return JSON.parse(W??"[]")}async enable(){var G;this.isEnabled=!0,await((G=this.worker)==null?void 0:G.enable())}async disable(){var G;this.isEnabled=!1,await((G=this.worker)==null?void 0:G.disable())}async listenWorker(){for(var G,Z;(G=this.worker)!=null&&G.workerContext.worker;){const{name:W,data:se}=await((Z=this.worker)==null?void 0:Z.onMediaProcessorEvent());switch(W){case"error":case"warn":this.emit(W,se);break;case"pipelineInfo":switch(this.emit(W,se),se){case"pipeline_ended":case"pipeline_ended_with_error":await this.destroy();return}break}}}async startWorker(){!this.config||this.worker||(this.worker=await ho(G3,J3),this.isEnabled||await this.worker.disable(),await this.worker.init(`worker_${pU.initCount++}`,this.config),this.backgroundOptions&&await this.updateBackgroundOptions(this.backgroundOptions),await this.worker.setVonageMetadata(ui()),await this.setBackgroundOptions(this.config),this.listenWorker())}async updateBackgroundOptions(G){var Z,W,se;await this.startWorker();const{transformerType:Qe}=G;switch(Qe){case"VideoBackground":await((Z=this.worker)==null?void 0:Z.setVideoBGReadable(await Hd.createVideoReadable(G.backgroundAssetUri)));break;case"VirtualBackground":await((W=this.worker)==null?void 0:W.setVirtualBGImage(await Hd.createImageCanvas(G.backgroundAssetUri)));break}await((se=this.worker)==null?void 0:se.setBackgroundOptions(G))}};let mU=pU;d(mU,"initCount",0);class T3{constructor(Z){this.queries=Z}async downloadSpeedscope(){this.download(await this.convertToSpeedscope())}download(Z){const W=document.createElement("a");W.href=URL.createObjectURL(new Blob([Z],{type:"application/json"})),W.download=`profile-${+new Date}.speedscope.json`,document.body.appendChild(W),W.click(),document.body.removeChild(W)}convertToSpeedscope(){const Z=[],W={},se=[];let Qe=0;for(const Zt of this.queries){const ft=[];for(const kt of Zt)W[kt.name]===void 0&&(W[kt.name]=Z.length,Z.push({name:kt.name})),ft.push({type:kt.action==sU.PUSH?"O":"C",frame:W[kt.name],at:kt.timestamp}),Qe=Math.max(Qe,kt.timestamp+kt.duration);se.push({events:ft,type:"evented",name:"GPU Profile",unit:"nanoseconds",startValue:0,endValue:Qe})}return JSON.stringify({$schema:"https://www.speedscope.app/file-format-schema.json",shared:{frames:Z},profiles:se},null,2)}}class gF extends ta{constructor(Z){super(),d(this,"worker"),d(this,"connector"),this.worker=new mU(Z),this.connector=new St(this.worker),this.worker.onAny((W,se)=>this.emit(W,se))}async setBackgroundOptions(Z){await this.worker.setBackgroundOptions(Z)}async enable(){await this.worker.enable()}async disable(){await this.worker.disable()}setTrackExpectedRate(Z){this.worker.setTrackExpectedRate(Z)}getConnector(){return this.connector}async profile(Z){return this.worker.profile(Z)}static async profile(Z){const W=await a.all(this.instances.map(se=>se.profile(Z)));return new T3(W)}static async create(Z){const W=new this(Z);return this.instances.push(W),W}}d(gF,"instances",[]);function X3(){return Lt}function k3(){return $t}function w3(){return At}function Y3(){return bt}function D3(){return zt}function M3(){return Ot}function L3(){return Ct}async function H3(G){return await gF.create(G)}}).call(this,i(2),i(27))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(103)),l=a(i(3));const s=(u,h,f)=>{let g;const p=h==="noise-suppression"?"noise-suppression/v1.0.0":"ml-transformers/v4.0.0";return f.isProd?g="https://static.opentok.com":f.isRel?g="https://static.rel.tokbox.com":g="https://www.dev.tokbox.com",u&&(u.includes("euproxy.opentok.com")?g="https://static-eu.opentok.com":g=(0,o.default)(g,u)),`${g}/${p}`};var c={getConfig:function(h){h===void 0&&(h={});const f=h,g=f.proxyUrl,A=f.library,b=f.env,p=b===void 0?l.default:b,y=s(g,A,p);return{mediapipeBaseAssetsUri:`${y}`,wasmAssetUriPath:`${y}/`,tfliteAssetUriPath:`${y}/`,assetsDirBaseUrl:`${y}`}}};r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(112)),l=a(i(52));const s=l.default.once;function d(c,u){u===void 0&&(u={});const h=u.hasE2eeCapability||o.default,f=u.hasOpenTokSupport||s;this.publish=c.indexOf("publish")!==-1?1:0,this.subscribe=c.indexOf("subscribe")!==-1?1:0,this.forceUnpublish=c.indexOf("forceunpublish")!==-1?1:0,this.forceDisconnect=c.indexOf("forcedisconnect")!==-1?1:0,this.forceMute=c.indexOf("forcemute")!==-1?1:0,this.supportsE2ee=h()?1:0,this.supportsWebRTC=f()?1:0,this.permittedTo=g=>Object.prototype.hasOwnProperty.call(this,g)&&this[g]===1}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=g;var o=a(i(6)),l=a(i(1)),s=a(i(24)),d=a(i(7)),c=a(i(17));const u=(0,l.default)("Stream"),h=(0,c.default)(),f=["name","archiving"];function g(A,b,p,y,m,F,R){const C=this;let B;this.id=A,this.streamId=A,this.name=b,this.creationTime=Number(p),this.initials=R||"",this.connection=y,this.channel=F,this.publisher=s.default.publishers.find({streamId:this.id}),(0,o.default)(this);const N=function(H,K,Fe,z){let q=K;switch(q){case"active":q=H.type==="audio"?"hasAudio":"hasVideo",C[q]=z;break;case"disableWarning":if(q=H.type==="audio"?"audioDisableWarning":"videoDisableWarning",C[q]=z,!C[H.type==="audio"?"hasAudio":"hasVideo"])return;break;case"fitMode":q="defaultFitMode",C[q]=z;break;case"source":q=H.type==="audio"?"audioType":"videoType",C[q]=z;break;case"videoDimensions":C.videoDimensions=z;break;case"orientation":case"width":case"height":return}C.dispatchEvent(new h.StreamUpdatedEvent(C,q,Fe,z))},S=function(){return C.publisher?C.publisher:s.default.subscribers.find(H=>H.stream&&H.stream.id===C.id&&H.session.id===m.id)},X=function(){return!C.publisher};this.getChannelsOfType=function(H){return C.channel.filter(K=>K.type===H)},this.getChannel=function(H){for(let K=0;K<C.channel.length;++K)if(C.channel[K].id===H)return C.channel[K];return null};const J=this.getChannelsOfType("audio")[0],E=this.getChannelsOfType("video")[0];this.hasAudio=J!=null&&J.active,this.hasVideo=E!=null&&E.active,this.videoType=E&&E.source,this.defaultFitMode=E&&E.fitMode,this.videoDimensions={},E&&(this.videoDimensions.width=E.width,this.videoDimensions.height=E.height,this.videoDimensions.orientation=E.orientation,E.on("update",N),this.frameRate=E.frameRate),J&&J.on("update",N),this.setChannelActiveState=function(H){let K=H.channelType,Fe=H.activeState,z=H.activeReason,q=H.congestionLevel,Ae=H.subscriberId,Ke=H.isSubscriber;const pe={active:Fe};z&&(pe.activeReason=z),q!==void 0&&(pe.congestionLevel=q),Ae&&(pe.subscriberId=Ae),v(K,pe,Ke)},this.setVideoDimensions=function(H,K){v("video",{width:H,height:K,orientation:0})},this.setRestrictFrameRate=function(H){v("video",{restrictFrameRate:H},!0)},this.setPreferredResolution=function(H){if(!X()){u.warn("setPreferredResolution has no affect when called by a publisher");return}if(m.sessionInfo.p2pEnabled){u.warn("Stream.setPreferredResolution will not work in a P2P Session");return}if(H&&H.width===void 0&&H.height===void 0)return;const K=C.getChannelsOfType("video")[0];if(K){if(H&&H.width){if(isNaN(parseInt(H.width,10)))throw new d.default.Error("stream preferred width must be an integer","Subscriber");K.preferredWidth=parseInt(H.width,10)}else K.preferredWidth=void 0;if(H&&H.height){if(isNaN(parseInt(H.height,10)))throw new d.default.Error("stream preferred height must be an integer","Subscriber");K.preferredHeight=parseInt(H.height,10)}else K.preferredHeight=void 0;m._.subscriberChannelUpdate(C,S(),K,{preferredWidth:K.preferredWidth||0,preferredHeight:K.preferredHeight||0})}},this.getPreferredResolution=function(){const H=C.getChannelsOfType("video")[0];if(!(!H||!H.preferredWidth&&!H.preferredHeight))return{width:H.preferredWidth,height:H.preferredHeight}},this.setPreferredFrameRate=function(H){if(!X()){u.warn("setPreferredFrameRate has no affect when called by a publisher");return}if(m.sessionInfo.p2pEnabled){u.warn("Stream.setPreferredFrameRate will not work in a P2P Session");return}if(H&&isNaN(parseFloat(H)))throw new d.default.Error("stream preferred frameRate must be a number","Subscriber");const K=C.getChannelsOfType("video")[0];K&&(K.preferredFrameRate=H?parseFloat(H):null,m._.subscriberChannelUpdate(C,S(),K,{preferredFrameRate:K.preferredFrameRate||0}))},this.getPreferredFrameRate=function(){const H=C.getChannelsOfType("video")[0];return H?H.preferredFrameRate:null};const v=function(H,K,Fe){Fe===void 0&&(Fe=!1);let z;if(Fe){const q=S();z=Ae=>m._.subscriberChannelUpdate(C,q,Ae,K)}else z=q=>m._.streamChannelUpdate(C,q,K);C.getChannelsOfType(H).forEach(z)};this.destroyed=!1,this.destroyedReason=void 0,this.destroy=function(H,K){H===void 0&&(H="clientDisconnected"),B=H,C.destroyed=!0,C.destroyedReason=B,K!==!0&&C.dispatchEvent(new h.DestroyedEvent("destroyed",C,B))},this._={},this._.updateProperty=function(H,K){if(f.indexOf(H)===-1){u.warn(`Unknown stream property "${H}" was modified to "${K}".`);return}const Fe=C[H],z=K;switch(H){case"name":C[H]=z;break;case"archiving":var q=S();C.publisher&&q&&q._.archivingStatus(z),C[H]=z;break}const Ae=new h.StreamUpdatedEvent(C,H,Fe,z);C.dispatchEvent(Ae)},this._.update=function(H){for(const K in H)H.hasOwnProperty(K)&&C._.updateProperty(K,H[K])},this._.forceMute=function(H){H.hasOwnProperty("channels")&&H.channels.includes("audio")&&C.publisher&&C.publisher._.forceMuteAudio()},this._.updateChannel=function(H,K){const Fe=C.getChannel(H);Fe&&Fe.update(K)}}},function(n,r,i){r.__esModule=!0,r.default=r.UNSUBSCRIBE=r.SUBSCRIBE=r.STATUS=r.PONG=r.PING=r.MESSAGE=r.DISCONNECT=r.CONNECT=void 0;const a=0;r.SUBSCRIBE=a;const o=1;r.UNSUBSCRIBE=o;const l=2;r.MESSAGE=l;const s=3;r.CONNECT=s;const d=4;r.DISCONNECT=d;const c=7;r.PING=c;const u=8;r.PONG=u;const h=9;r.STATUS=h;var f={SUBSCRIBE:a,UNSUBSCRIBE:o,MESSAGE:l,CONNECT:s,DISCONNECT:d,PING:c,PONG:u,STATUS:h};r.default=f},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(9)),l=a(i(6)),s=a(i(181)),d=a(i(17)),c=a(i(781));const u=(0,d.default)();function h(g,A,b,p,y){let m;this.id=g,this.connectionId=g,this.creationTime=A?Number(A):null,this.data=b,this.capabilities=(0,c.default)(p),this.permissions=new s.default(y),this.quality=null,(0,l.default)(this),this.destroy=(F,R)=>{m=F||"clientDisconnected",R!==!0&&this.dispatchEvent(new u.DestroyedEvent("destroyed",this,m))},this.destroyed=()=>m!==void 0,this.destroyedReason=()=>m}h.fromHash=g=>{let A=g.id,b=g.creationTime,p=g.data,y=g.capablities,m=g.permissions;return new h(A,b,p,(0,o.default)(y||{},{supportsWebRTC:!0}),m||[])};var f=h;r.default=f},function(n,r){var i=typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr)&&(typeof window!==void 0?window:yr).Object===Object&&(typeof window!==void 0?window:yr);n.exports=i},function(n,r){var i=Function.prototype,a=i.toString;function o(l){if(l!=null){try{return a.call(l)}catch{}try{return l+""}catch{}}return""}n.exports=o},function(n,r,i){var a=i(43),o=function(){try{var l=a(Object,"defineProperty");return l({},"",{}),l}catch{}}();n.exports=o},function(n,r,i){var a=i(45),o=i(34);function l(s,d){return s&&a(d,o(d),s)}n.exports=l},function(n,r,i){var a=i(382),o=i(64),l=i(13),s=i(65),d=i(66),c=i(87),u=Object.prototype,h=u.hasOwnProperty;function f(g,A){var b=l(g),p=!b&&o(g),y=!b&&!p&&s(g),m=!b&&!p&&!y&&c(g),F=b||p||y||m,R=F?a(g.length,String):[],C=R.length;for(var B in g)(A||h.call(g,B))&&!(F&&(B=="length"||y&&(B=="offset"||B=="parent")||m&&(B=="buffer"||B=="byteLength"||B=="byteOffset")||d(B,C)))&&R.push(B);return R}n.exports=f},function(n,r){function i(a,o){return function(l){return a(o(l))}}n.exports=i},function(n,r,i){(function(a){var o=i(15),l=r&&!r.nodeType&&r,s=l&&typeof a=="object"&&a&&!a.nodeType&&a,d=s&&s.exports===l,c=d?o.Buffer:void 0,u=c?c.allocUnsafe:void 0;function h(f,g){if(g)return f.slice();var A=f.length,b=u?u(A):new f.constructor(A);return f.copy(b),b}a.exports=h}).call(this,i(86)(n))},function(n,r){function i(){return[]}n.exports=i},function(n,r,i){var a=i(120),o=i(121),l=i(119),s=i(192),d=Object.getOwnPropertySymbols,c=d?function(u){for(var h=[];u;)a(h,l(u)),u=o(u);return h}:s;n.exports=c},function(n,r,i){var a=i(195),o=i(119),l=i(34);function s(d){return a(d,l,o)}n.exports=s},function(n,r,i){var a=i(120),o=i(13);function l(s,d,c){var u=d(s);return o(s)?u:a(u,c(s))}n.exports=l},function(n,r,i){var a=i(195),o=i(193),l=i(54);function s(d){return a(d,l,o)}n.exports=s},function(n,r,i){var a=i(43),o=i(15),l=a(o,"Set");n.exports=l},function(n,r,i){var a=i(43),o=i(15),l=a(o,"WeakMap");n.exports=l},function(n,r,i){var a=i(15),o=a.Uint8Array;n.exports=o},function(n,r,i){var a=i(122);function o(l,s){var d=s?a(l.buffer):l.buffer;return new l.constructor(d,l.byteOffset,l.length)}n.exports=o},function(n,r,i){var a=i(88),o=i(121),l=i(68);function s(d){return typeof d.constructor=="function"&&!l(d)?a(o(d)):{}}n.exports=s},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(4)),s=o(i(5)),d=o(i(6)),c=o(i(1)),u=o(i(57)),h=o(i(461)),f=o(i(462)),g=o(i(463)),A=o(i(94)),b=o(i(3)),p=o(i(251)),y=o(i(22)),m=o(i(104)),F=o(i(141)),R=o(i(142)),C=o(i(548)),B=o(i(569)),N=o(i(7)),S=o(i(265)),X=o(i(266));const J=(0,y.default)(),E=J.hasAudioOutputApiSupport,v=m.default.getCurrentAudioOutputDeviceId;function j(z,q){const Ae=(0,X.default)();return(0,f.default)(Ae),Ae.innerHTML=z,q===!0&&(Ae.muted="true"),Ae}function H(){const z=j("");return z.setAttribute("style","display:none"),z}function K(z){z===void 0&&(z={});const q=z.audioContext||(0,F.default)(),Ae=z.canBeOrientatedMixin||C.default,Ke=z.document||(typeof window!==void 0?window:yr).document,pe=z.listenForTracksEnded||(0,B.default)(),We=z.logging||c.default,xe=z.OTHelpers||N.default,$e=z.videoElementErrorMap||(0,S.default)(),Rt=z.WebaudioAudioLevelSampler||R.default,Be=z.global||(typeof window!==void 0?window:yr);let qe=1;return function(){function Bt(Ne,Je){var ve=this;let Ye=Ne._inject,it=Ye===void 0?{}:Ye,Qt=it.createVideoElement,_t=Qt===void 0?j:Qt,Dt=it.createAudioOnlyVideoElement,Ee=Dt===void 0?H:Dt,Ge=Ne.muted,he=Ne.fallbackText,$=Ne.widgetType;this._domElement=void 0,this._domAudioOnlyVideoElement=void 0,this._blockedVolume=void 0,this._mediaStoppedListener=void 0,this._audioLevelSampler=void 0,this._playInterrupts=0,this._isVideoLoadedMetaData=!1,this._audioOnlyVideoElementWatcher=void 0,this._blinkStartTime=null,this.logging=We(`NativeVideoElementWrapper:${qe}`),qe+=1,(0,d.default)(this),this._defaultAudioVolume=Je,this._widgetType=$,this._emitVideoPlayAttempt=()=>{this._blinkStartTime=new Date().getTime(),this.trigger("amrLogEvent","AMRTransitionVideo","Attempt")},this._emitVideoPlaySuccess=()=>{const we=new Date().getTime()-this._blinkStartTime;this.trigger("amrLogEvent","AMRTransitionVideo","Success",{attemptDuration:we}),this._blinkStartTime=null},this._emitVideoPlayFailure=()=>{this.trigger("amrLogEvent","AMRTransitionVideo","Failure")};let ie=!1;const Ve=()=>{ie||(this.logging.warn("Video element paused, auto-resuming. If you intended to do this, use publishVideo(false) or subscribeToVideo(false) instead."),ie=!0),this.play()};this._domElement=_t(he,Ge),this.trigger("videoElementCreated",this._domElement),this._domElementEvents=(0,u.default)(this._domElement),this._domElementEvents.on("loadstart",()=>this._onDomElementLoadStart()),this._domElementEvents.on("timeupdate",function(){for(var we=arguments.length,nt=new Array(we),Gt=0;Gt<we;Gt++)nt[Gt]=arguments[Gt];return ve.trigger("timeupdate",...nt)}),this._domElementEvents.on("loadedmetadata",(0,s.default)(l.default.mark(function we(){var nt,Gt,An,Dn,tr=arguments;return l.default.wrap(function(zn){for(;;)switch(zn.prev=zn.next){case 0:for(ve._isVideoLoadedMetaData=!0,nt=tr.length,Gt=new Array(nt),An=0;An<nt;An++)Gt[An]=tr[An];if(ve.trigger("loadedmetadata",...Gt),!ve._domAudioOnlyVideoElement){zn.next=10;break}if(Dn=ve._domAudioOnlyVideoElement.srcObject,ve._removeAudioOnlyVideoElement(),!Dn){zn.next=10;break}return zn.next=9,(0,p.default)();case 9:ve.play();case 10:case"end":return zn.stop()}},we)})));const _e=we=>{this.trigger("error",$e(we.target.error))};this._domElementEvents.on("error",_e,!1),this._domElementEvents.on("pause",Ve),this.on("destroyed",()=>{this._domElementEvents.removeAll(),this._domAudioOnlyVideoElementEvents&&this._domAudioOnlyVideoElementEvents.removeAll()}),Ae(this,()=>this._domElement),b.default.isSafari&&this._widgetType==="subscriber"&&(this._domAudioOnlyVideoElement=Ee(),this._bindAudioOnlyVideoElementEvents())}var jt=Bt.prototype;return jt._onDomElementLoadStart=function(){var Ne=(0,s.default)(l.default.mark(function ve(){return l.default.wrap(function(it){for(;;)switch(it.prev=it.next){case 0:if(!(this._widgetType==="subscriber"&&E())){it.next=3;break}return it.next=3,this._setActiveAudioOutputDevice();case 3:case"end":return it.stop()}},ve,this)}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt._setActiveAudioOutputDevice=function(){var Ne=(0,s.default)(l.default.mark(function ve(){var Ye;return l.default.wrap(function(Qt){for(;;)switch(Qt.prev=Qt.next){case 0:if(Ye=v(),!(Ye===""||Ye==="default")){Qt.next=3;break}return Qt.abrupt("return");case 3:return Qt.next=5,this.setSinkId(Ye);case 5:case"end":return Qt.stop()}},ve,this)}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt._rebindSrcObject=function(){this._domElement&&(this._domElement.srcObject=this._domElement.srcObject)},jt._pauseAndPlay=function(){this._domElement&&(this._domElement.pause(),this._domElement.play())},jt._startAudioOnlyVideoElementWatcher=function(){var Ne=(0,s.default)(l.default.mark(function ve(){var Ye,it;return l.default.wrap(function(_t){for(;;)switch(_t.prev=_t.next){case 0:return Ye=1e3,it=b.default.isiOS,this._audioOnlyVideoElementWatcher&&clearInterval(this._audioOnlyVideoElementWatcher),this._audioOnlyVideoElementWatcher=setInterval(()=>{this._domAudioOnlyVideoElement&&this._domAudioOnlyVideoElement.paused&&(this._domAudioOnlyVideoElement.srcObject=this._domAudioOnlyVideoElement.srcObject,it&&this._domAudioOnlyVideoElement.play())},100),_t.next=6,(0,A.default)(Ye);case 6:clearInterval(this._audioOnlyVideoElementWatcher),this._audioOnlyVideoElementWatcher=null;case 8:case"end":return _t.stop()}},ve,this)}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt._removeAudioOnlyVideoElement=function(){var Ne=(0,s.default)(l.default.mark(function ve(){return l.default.wrap(function(it){for(;;)switch(it.prev=it.next){case 0:this._domAudioOnlyVideoElement.srcObject=null,this._domAudioOnlyVideoElement.parentNode.removeChild(this._domAudioOnlyVideoElement),this._domAudioOnlyVideoElementEvents&&this._domAudioOnlyVideoElementEvents.removeAll(),this._domAudioOnlyVideoElement=null;case 4:case"end":return it.stop()}},ve,this)}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt.bindAudioTrackOnly=function(){var Ne=(0,s.default)(l.default.mark(function ve(){var Ye,it,Qt,_t,Dt,Ee,Ge;return l.default.wrap(function($){for(;;)switch($.prev=$.next){case 0:return Ye=this._stream.getVideoTracks(),it=this._stream.getAudioTracks(),Qt=Ye[0],_t=Qt===void 0?{}:Qt,Dt=it[0],Ee=Dt===void 0?{}:Dt,$.next=6,(0,p.default)();case 6:Ge=!_t.enabled&&Ee.enabled,!this._isVideoLoadedMetaData&&Ge&&this._domAudioOnlyVideoElement&&(this._domAudioOnlyVideoElement.srcObject=new Be.MediaStream(it),this._startAudioOnlyVideoElementWatcher());case 8:case"end":return $.stop()}},ve,this)}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt._bindAudioOnlyVideoElementEvents=function(){var Je=this;this._domAudioOnlyVideoElementEvents=(0,u.default)(this._domAudioOnlyVideoElement),this._domAudioOnlyVideoElementEvents.on("pause",()=>this.play()),this._domAudioOnlyVideoElementEvents.on("timeupdate",function(){for(var ve=arguments.length,Ye=new Array(ve),it=0;it<ve;it++)Ye[it]=arguments[it];return Je.trigger("timeupdate",...Ye)}),this._domAudioOnlyVideoElementEvents.on("loadedmetadata",function(){for(var ve=arguments.length,Ye=new Array(ve),it=0;it<ve;it++)Ye[it]=arguments[it];return Je.trigger("loadedmetadata",...Ye)})},jt.whenTimeIncrements=function(Je,ve){this.once("timeupdate",()=>{Je.call(ve,this)})},jt.domElement=function(){return this._domElement},jt.videoWidth=function(){return this._domElement?Number(this._domElement[`video${this.isRotated()?"Height":"Width"}`]):0},jt.videoHeight=function(){return this._domElement?Number(this._domElement[`video${this.isRotated()?"Width":"Height"}`]):0},jt.aspectRatio=function(){return this.videoWidth()/this.videoHeight()},jt.imgData=function(){const Je=xe.createElement("canvas",{width:this.videoWidth(),height:this.videoHeight(),style:{display:"none"}});Ke.body.appendChild(Je);let ve=null;try{Je.getContext("2d").drawImage(this._domElement,0,0,Je.width,Je.height),ve=Je.toDataURL("image/png")}catch{}return xe.removeElement(Je),ve===null||ve==="data:,"?(this.logging.warn("Cannot get image data yet"),null):ve.replace("data:image/png;base64,","").trim()},jt.appendTo=function(Je){return Je.appendChild(this._domElement),this._domAudioOnlyVideoElement&&Je.appendChild(this._domAudioOnlyVideoElement),this},jt.isAudioBlocked=function(){return this._blockedVolume!==void 0},jt.unblockAudio=function(){var Ne=(0,s.default)(l.default.mark(function ve(){var Ye;return l.default.wrap(function(Qt){for(;;)switch(Qt.prev=Qt.next){case 0:if(this.isAudioBlocked()){Qt.next=3;break}return this.logging.warn("Unexpected call to unblockAudio() without blocked audio"),Qt.abrupt("return");case 3:return Ye=this._blockedVolume,this._blockedVolume=void 0,this.setAudioVolume(Ye),Qt.prev=6,Qt.next=9,this.play();case 9:Qt.next=16;break;case 11:throw Qt.prev=11,Qt.t0=Qt.catch(6),this._blockedVolume=Ye,this._domElement.muted=!0,Qt.t0;case 16:this.trigger("audioUnblocked");case 17:case"end":return Qt.stop()}},ve,this,[[6,11]])}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt.rebind=function(){var Ne=(0,s.default)(l.default.mark(function ve(){return l.default.wrap(function(it){for(;;)switch(it.prev=it.next){case 0:if(this._domElement){it.next=2;break}throw new Error("Can't rebind because _domElement no longer exists");case 2:this._playInterrupts++,this._domElement.srcObject=this._domElement.srcObject,this._hasAudioOnlyVideoElement()&&(this._domAudioOnlyVideoElement.srcObject=this._domAudioOnlyVideoElement.srcObject);case 5:case"end":return it.stop()}},ve,this)}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt._createAudioLevelSampler=function(){if(this._removeAudioLevelSampler(),this._stream.getAudioTracks().length>0){try{this._audioContext=q()}catch(Je){this.logging.warn("Failed to get AudioContext(), audio level visualisation will not work",Je)}this._audioContext&&(this._audioLevelSampler=new Rt(this._audioContext),this._audioLevelSampler.webRTCStream(this._stream))}},jt._removeAudioLevelSampler=function(){this._audioContext&&(delete this._audioContext,delete this._audioLevelSampler)},jt._toggleVideoTracks=function(){var Ne=(0,s.default)(l.default.mark(function ve(){var Ye,it,Qt;return l.default.wrap(function(Dt){for(;;)switch(Dt.prev=Dt.next){case 0:if(Ye=this._domElement.srcObject.getTracks().filter(Ee=>Ee.enabled),it=Ye.length>1,!it){Dt.next=8;break}return Qt=Ye.filter(Ee=>Ee.kind==="video"),Qt.forEach(Ee=>{Ee.enabled=!1}),Dt.next=7,(0,p.default)();case 7:Qt.forEach(Ee=>{Ee.enabled=!0});case 8:case"end":return Dt.stop()}},ve,this)}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt._hasAudioOnlyVideoElement=function(){return this._domAudioOnlyVideoElement&&this._domAudioOnlyVideoElement.srcObject},jt.play=function(){var Ne=(0,s.default)(l.default.mark(function ve(){var Ye,it,Qt,_t,Dt,Ee,Ge,he,$,ie,Ve,_e;return l.default.wrap(function(nt){for(;;)switch(nt.prev=nt.next){case 0:if(Ye=this._playInterrupts,it=this._hasAudioOnlyVideoElement()?this._domAudioOnlyVideoElement:this._domElement,!b.default.isSafari){nt.next=5;break}return nt.next=5,(0,p.default)();case 5:if(!(b.default.isiOS&&b.default.isSafari)){nt.next=15;break}if(this._widgetType!=="publisher"){nt.next=14;break}if(Qt=b.default.iOSVersion>=14&&b.default.iOSVersion<=14.2,_t=this._stream.getVideoTracks(),Dt=_t[0],Ee=Dt===void 0?{}:Dt,Ge=this._stream.getAudioTracks(),he=Ge[0],$=he===void 0?{}:he,!(Qt&&!(0,g.default)(it)&&Ee.enabled)){nt.next=12;break}return nt.abrupt("return");case 12:if(!$.muted){nt.next=14;break}return nt.abrupt("return");case 14:this._toggleVideoTracks();case 15:return nt.prev=15,this._emitVideoPlayAttempt(),nt.next=19,it.play();case 19:return this._emitVideoPlaySuccess(),nt.abrupt("return");case 23:if(nt.prev=23,nt.t0=nt.catch(15),this._emitVideoPlayFailure(),ie=nt.t0||{},Ve=ie.name,_e=Ve==="AbortError",_e&&this._playInterrupts++,!(this._playInterrupts>Ye)){nt.next=33;break}return nt.next=32,this.play();case 32:return nt.abrupt("return");case 33:throw nt.t0;case 34:case"end":return nt.stop()}},ve,this,[[15,23]])}));function Je(){return Ne.apply(this,arguments)}return Je}(),jt._bindToStream=function(Je){this._stream=Je,this._domElement.srcObject=Je,this._domAudioOnlyVideoElement&&this.bindAudioTrackOnly()},jt.bindToStream=function(){var Ne=(0,s.default)(l.default.mark(function ve(Ye){var it=this,Qt,_t,Dt;return l.default.wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:if(this._domElement){Ge.next=2;break}throw new Error("Can't bind because _domElement no longer exists");case 2:return this._bindToStream(Ye),(0,s.default)(l.default.mark(function he(){var $;return l.default.wrap(function(Ve){for(;;)switch(Ve.prev=Ve.next){case 0:return Ve.prev=0,Ve.next=3,it.play();case 3:Ve.next=26;break;case 5:if(Ve.prev=5,Ve.t0=Ve.catch(0),$=!!Ye.getAudioTracks().length,!(it._hasAudioOnlyVideoElement()&&Ve.t0.name==="NotAllowedError")){Ve.next=15;break}return it._domAudioOnlyVideoElement.muted=!0,Ve.next=12,it.play();case 12:it._domAudioOnlyVideoElement.muted=!1,Ve.next=26;break;case 15:if(!$){Ve.next=23;break}return it._blockedVolume=it.getAudioVolume(),it._domElement.muted=!0,Ve.next=20,it.play();case 20:it.trigger("audioBlocked"),Ve.next=26;break;case 23:return it._domElement.muted=!0,Ve.next=26,it.play();case 26:case"end":return Ve.stop()}},he,null,[[0,5]])}))().catch(he=>{this.logging.debug(".play() failed: ",he)}),Qt={width:this._domElement.videoWidth,height:this._domElement.videoHeight},this.trigger("videoDimensionsChanged",Object.assign({},Qt),Object.assign({},Qt)),this._domElementEvents.on("resize",()=>{const he=this._domElement,$=he.videoWidth,ie=he.videoHeight,Ve=$!==Qt.width,_e=ie!==Qt.height;(Ve||_e)&&(this.trigger("videoDimensionsChanged",Object.assign({},Qt),{width:$,height:ie}),Qt.width=$,Qt.height=ie)}),_t=()=>{try{this._mediaStoppedListener.stop()}catch{return}this._domElement&&(this._domElement.onended=null),this.trigger("mediaStopped")},Dt=he=>{this.trigger("mediaStopped",he)},this._domElement.onended=()=>_t(),this._mediaStoppedListener=pe(Ye,_t,Dt),this._createAudioLevelSampler(),Ge.abrupt("return",void 0);case 13:case"end":return Ge.stop()}},ve,this)}));function Je(ve){return Ne.apply(this,arguments)}return Je}(),jt.unbindStream=function(){return this._domElement&&(this._domElement.srcObject=null),this._domAudioOnlyVideoElement&&(this._domAudioOnlyVideoElement.srcObject=null),this._removeAudioLevelSampler(),this},jt.setAudioVolume=function(Je){if(this.isAudioBlocked()){this._blockedVolume=Je;return}const ve=parseFloat(Je)/100,Ye=[this.domElement()];this._domAudioOnlyVideoElement&&Ye.push(this._domAudioOnlyVideoElement),Ye.forEach(it=>{it&&(it.volume=ve,it.muted=ve===0)})},jt.getAudioVolume=function(){if(this.isAudioBlocked())return this._blockedVolume;const Je=this.domElement();return Je?Je.muted?0:Je.volume*100:this._defaultAudioVolume},jt.audioChannelType=function(Je){const ve=this.domElement();return Je!==void 0&&(ve.mozAudioChannelType=Je),"mozAudioChannelType"in this._domElement?ve.mozAudioChannelType:"unknown"},jt.getAudioInputLevel=function(){return this._audioLevelSampler.sample()},jt.refreshTracks=function(){this._mediaStoppedListener&&this._mediaStoppedListener.refresh(),this._createAudioLevelSampler()},jt.destroy=function(){this._mediaStoppedListener&&this._mediaStoppedListener.stop(),this.logging.debug("removing domElementEvents"),this._domElementEvents.removeAll(),this._domAudioOnlyVideoElementEvents&&this._domAudioOnlyVideoElementEvents.removeAll(),this._audioOnlyVideoElementWatcher&&clearInterval(this._audioOnlyVideoElementWatcher),this.unbindStream(),this._domElement&&(xe.removeElement(this._domElement),this._domElement=null),this._domAudioOnlyVideoElement&&(xe.removeElement(this._domAudioOnlyVideoElement),this._domAudioOnlyVideoElement=null),this.trigger("destroyed"),(0,h.default)("NativeVideoElementWrapper",this)},jt.setSinkId=function(Je){const Ye=[this._domElement,this._domAudioOnlyVideoElement].map(it=>{if(it)return it.setSinkId(Je)});return a.all(Ye)},Bt}()}var Fe=K;r.default=Fe}).call(this,i(2))},function(n,r,i){var a=i(89),o=i(125);function l(s){return a(function(d,c){var u=-1,h=c.length,f=h>1?c[h-1]:void 0,g=h>2?c[2]:void 0;for(f=s.length>3&&typeof f=="function"?(h--,f):void 0,g&&o(c[0],c[1],g)&&(f=h<3?void 0:f,h=1),d=Object(d);++u<h;){var A=c[u];A&&s(d,A,u,f)}return d})}n.exports=l},function(n,r,i){var a=i(123),o=Math.max;function l(s,d,c){return d=o(d===void 0?s.length-1:d,0),function(){for(var u=arguments,h=-1,f=o(u.length-d,0),g=Array(f);++h<f;)g[h]=u[d+h];h=-1;for(var A=Array(d+1);++h<d;)A[h]=u[h];return A[d]=c(g),a(s,this,A)}}n.exports=l},function(n,r){var i=800,a=16,o=Date.now;function l(s){var d=0,c=0;return function(){var u=o(),h=a-(u-c);if(c=u,h>0){if(++d>=i)return arguments[0]}else d=0;return s.apply(void 0,arguments)}}n.exports=l},function(n,r,i){n.exports=i(412)()?WeakMap:i(413)},function(n,r,i){var a=Object.create,o=Object.getPrototypeOf,l={};n.exports=function(){var s=Object.setPrototypeOf,d=arguments[0]||a;return typeof s!="function"?!1:o(s(d(null),l))===l}},function(n,r,i){var a=i(209),o=i(35),l=Object.prototype.isPrototypeOf,s=Object.defineProperty,d={configurable:!0,enumerable:!1,writable:!0,value:void 0},c;c=function(u,h){if(o(u),h===null||a(h))return u;throw new TypeError("Prototype must be null or an object")},n.exports=function(u){var h,f;return u?(u.level===2?u.set?(f=u.set,h=function(g,A){return f.call(c(g,A),A),g}):h=function(g,A){return c(g,A).__proto__=A,g}:h=function g(A,b){var p;return c(A,b),p=l.call(g.nullPolyfill,A),p&&delete g.nullPolyfill.__proto__,b===null&&(b=g.nullPolyfill),A.__proto__=b,p&&s(g.nullPolyfill,"__proto__",d),A},Object.defineProperty(h,"level",{configurable:!1,enumerable:!1,writable:!1,value:u.level})):null}(function(){var u=Object.create(null),h={},f,g=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__");if(g){try{f=g.set,f.call(u,h)}catch{}if(Object.getPrototypeOf(u)===h)return{set:f,level:2}}return u.__proto__=h,Object.getPrototypeOf(u)===h?{level:2}:(u={},u.__proto__=h,Object.getPrototypeOf(u)===h?{level:1}:!1)}()),i(415)},function(n,r,i){var a=i(47),o={function:!0,object:!0};n.exports=function(l){return a(l)&&o[typeof l]||!1}},function(n,r,i){var a=i(418),o=/^\s*class[\s{/}]/,l=Function.prototype.toString;n.exports=function(s){return!(!a(s)||o.test(l.call(s)))}},function(n,r,i){var a=i(47),o=Array.prototype.forEach,l=Object.create,s=function(d,c){var u;for(u in d)c[u]=d[u]};n.exports=function(d){var c=l(null);return o.call(arguments,function(u){a(u)&&s(Object(u),c)}),c}},function(n,r,i){n.exports=i(425)()?String.prototype.contains:i(426)},function(n,r,i){var a=i(91),o=i(92),l=i(427),s=i(456),d=i(457),c=i(48).iterator;n.exports=function(u){return typeof d(u)[c]=="function"?u[c]():a(u)?new l(u):o(u)?new s(u):new l(u)}},function(n,r,i){var a=i(432);n.exports=function(o){if(!a(o))throw new TypeError(o+" is not a symbol");return o}},function(n,r,i){var a=i(436),o=i(130),l=i(69),s=i(35),d=i(36),c=i(437),u=i(48),h=Object.defineProperty,f=Object.defineProperties,g;n.exports=g=function(A,b){if(!(this instanceof g))throw new TypeError("Constructor requires 'new'");f(this,{__list__:d("w",s(A)),__context__:d("w",b),__nextIndex__:d("w",0)}),b&&(l(b.on),b.on("_add",this._onAdd),b.on("_delete",this._onDelete),b.on("_clear",this._onClear))},delete g.prototype.constructor,f(g.prototype,o({_next:d(function(){var A;if(this.__list__){if(this.__redo__&&(A=this.__redo__.shift(),A!==void 0))return A;if(this.__nextIndex__<this.__list__.length)return this.__nextIndex__++;this._unBind()}}),next:d(function(){return this._createResult(this._next())}),_createResult:d(function(A){return A===void 0?{done:!0,value:void 0}:{done:!1,value:this._resolve(A)}}),_resolve:d(function(A){return this.__list__[A]}),_unBind:d(function(){this.__list__=null,delete this.__redo__,this.__context__&&(this.__context__.off("_add",this._onAdd),this.__context__.off("_delete",this._onDelete),this.__context__.off("_clear",this._onClear),this.__context__=null)}),toString:d(function(){return"[object "+(this[u.toStringTag]||"Object")+"]"})},c({_onAdd:d(function(A){if(!(A>=this.__nextIndex__)){if(++this.__nextIndex__,!this.__redo__){h(this,"__redo__",d("c",[A]));return}this.__redo__.forEach(function(b,p){b>=A&&(this.__redo__[p]=++b)},this),this.__redo__.push(A)}}),_onDelete:d(function(A){var b;A>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(b=this.__redo__.indexOf(A),b!==-1&&this.__redo__.splice(b,1),this.__redo__.forEach(function(p,y){p>A&&(this.__redo__[y]=--p)},this)))}),_onClear:d(function(){this.__redo__&&a.call(this.__redo__),this.__nextIndex__=0})}))),h(g.prototype,u.iterator,d(function(){return this}))},function(n,r,i){var a=i(56),o=i(129),l=i(439),s=i(440),d=function(c,u){return c.replace("%v",s(u))};n.exports=function(c,u,h){if(!o(h))throw new TypeError(d(u,c));if(!a(c)){if("default"in h)return h.default;if(h.isOptional)return null}var f=l(h.errorMessage);throw a(f)||(f=u),new TypeError(d(f,c))}},function(n,r,i){n.exports=i(467)},function(n,r,i){n.exports=function(o,l){return function(){for(var d=new Array(arguments.length),c=0;c<d.length;c++)d[c]=arguments[c];return o.apply(l,d)}}},function(n,r,i){var a=i(21);function o(l){return encodeURIComponent(l).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}n.exports=function(s,d,c){if(!d)return s;var u;if(c)u=c(d);else if(a.isURLSearchParams(d))u=d.toString();else{var h=[];a.forEach(d,function(A,b){A===null||typeof A>"u"||(a.isArray(A)?b=b+"[]":A=[A],a.forEach(A,function(y){a.isDate(y)?y=y.toISOString():a.isObject(y)&&(y=JSON.stringify(y)),h.push(o(b)+"="+o(y))}))}),u=h.join("&")}if(u){var f=s.indexOf("#");f!==-1&&(s=s.slice(0,f)),s+=(s.indexOf("?")===-1?"?":"&")+u}return s}},function(n,r,i){n.exports=function(o,l,s,d,c){return o.config=l,s&&(o.code=s),o.request=d,o.response=c,o.isAxiosError=!0,o.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},o}},function(n,r,i){(function(a){var o=i(21),l=i(473),s=i(474),d=i(219),c=i(475),u=i(478),h=i(479),f=i(222);n.exports=function(A){return new a(function(p,y){var m=A.data,F=A.headers,R=A.responseType;o.isFormData(m)&&delete F["Content-Type"];var C=new XMLHttpRequest;if(A.auth){var B=A.auth.username||"",N=A.auth.password?unescape(encodeURIComponent(A.auth.password)):"";F.Authorization="Basic "+btoa(B+":"+N)}var S=c(A.baseURL,A.url);C.open(A.method.toUpperCase(),d(S,A.params,A.paramsSerializer),!0),C.timeout=A.timeout;function X(){if(C){var E="getAllResponseHeaders"in C?u(C.getAllResponseHeaders()):null,v=!R||R==="text"||R==="json"?C.responseText:C.response,j={data:v,status:C.status,statusText:C.statusText,headers:E,config:A,request:C};l(p,y,j),C=null}}if("onloadend"in C?C.onloadend=X:C.onreadystatechange=function(){!C||C.readyState!==4||C.status===0&&!(C.responseURL&&C.responseURL.indexOf("file:")===0)||setTimeout(X)},C.onabort=function(){C&&(y(f("Request aborted",A,"ECONNABORTED",C)),C=null)},C.onerror=function(){y(f("Network Error",A,null,C)),C=null},C.ontimeout=function(){var v="timeout of "+A.timeout+"ms exceeded";A.timeoutErrorMessage&&(v=A.timeoutErrorMessage),y(f(v,A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",C)),C=null},o.isStandardBrowserEnv()){var J=(A.withCredentials||h(S))&&A.xsrfCookieName?s.read(A.xsrfCookieName):void 0;J&&(F[A.xsrfHeaderName]=J)}"setRequestHeader"in C&&o.forEach(F,function(v,j){typeof m>"u"&&j.toLowerCase()==="content-type"?delete F[j]:C.setRequestHeader(j,v)}),o.isUndefined(A.withCredentials)||(C.withCredentials=!!A.withCredentials),R&&R!=="json"&&(C.responseType=A.responseType),typeof A.onDownloadProgress=="function"&&C.addEventListener("progress",A.onDownloadProgress),typeof A.onUploadProgress=="function"&&C.upload&&C.upload.addEventListener("progress",A.onUploadProgress),A.cancelToken&&A.cancelToken.promise.then(function(v){C&&(C.abort(),y(v),C=null)}),m||(m=null),C.send(m)})}}).call(this,i(2))},function(n,r,i){var a=i(220);n.exports=function(l,s,d,c,u){var h=new Error(l);return a(h,s,d,c,u)}},function(n,r,i){n.exports=function(o){return!!(o&&o.__CANCEL__)}},function(n,r,i){var a=i(21);n.exports=function(l,s){s=s||{};var d={},c=["url","method","data"],u=["headers","auth","proxy","params"],h=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],f=["validateStatus"];function g(y,m){return a.isPlainObject(y)&&a.isPlainObject(m)?a.merge(y,m):a.isPlainObject(m)?a.merge({},m):a.isArray(m)?m.slice():m}function A(y){a.isUndefined(s[y])?a.isUndefined(l[y])||(d[y]=g(void 0,l[y])):d[y]=g(l[y],s[y])}a.forEach(c,function(m){a.isUndefined(s[m])||(d[m]=g(void 0,s[m]))}),a.forEach(u,A),a.forEach(h,function(m){a.isUndefined(s[m])?a.isUndefined(l[m])||(d[m]=g(void 0,l[m])):d[m]=g(void 0,s[m])}),a.forEach(f,function(m){m in s?d[m]=g(l[m],s[m]):m in l&&(d[m]=g(void 0,l[m]))});var b=c.concat(u).concat(h).concat(f),p=Object.keys(l).concat(Object.keys(s)).filter(function(m){return b.indexOf(m)===-1});return a.forEach(p,A),d}},function(n,r,i){function a(o){this.message=o}a.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},a.prototype.__CANCEL__=!0,n.exports=a},function(n,r,i){var a=i(486),o=i(488);function l(s,d,c){return a(o,s,d,c)}n.exports=l},function(n,r,i){var a=i(90),o=i(228),l=o?function(s,d){return o.set(s,d),s}:a;n.exports=l},function(n,r,i){var a=i(198),o=a&&new a;n.exports=o},function(n,r,i){var a=i(230),o=i(231),l=i(492),s=i(95),d=i(232),c=i(239),u=i(504),h=i(136),f=i(15),g=1,A=2,b=8,p=16,y=128,m=512;function F(R,C,B,N,S,X,J,E,v,j){var H=C&y,K=C&g,Fe=C&A,z=C&(b|p),q=C&m,Ae=Fe?void 0:s(R);function Ke(){for(var pe=arguments.length,We=Array(pe),xe=pe;xe--;)We[xe]=arguments[xe];if(z)var $e=c(Ke),Rt=l(We,$e);if(N&&(We=a(We,N,S,z)),X&&(We=o(We,X,J,z)),pe-=Rt,z&&pe<j){var Be=h(We,$e);return d(R,C,F,Ke.placeholder,B,We,Be,E,v,j-pe)}var qe=K?B:this,at=Fe?qe[R]:R;return pe=We.length,E?We=u(We,E):q&&pe>1&&We.reverse(),H&&v<pe&&(We.length=v),this&&this!==f&&this instanceof Ke&&(at=Ae||s(at)),at.apply(qe,We)}return Ke}n.exports=F},function(n,r){var i=Math.max;function a(o,l,s,d){for(var c=-1,u=o.length,h=s.length,f=-1,g=l.length,A=i(u-h,0),b=Array(g+A),p=!d;++f<g;)b[f]=l[f];for(;++c<h;)(p||c<u)&&(b[s[c]]=o[c]);for(;A--;)b[f++]=o[c++];return b}n.exports=a},function(n,r){var i=Math.max;function a(o,l,s,d){for(var c=-1,u=o.length,h=-1,f=s.length,g=-1,A=l.length,b=i(u-f,0),p=Array(b+A),y=!d;++c<b;)p[c]=o[c];for(var m=c;++g<A;)p[m+g]=l[g];for(;++h<f;)(y||c<u)&&(p[m+s[h]]=o[c++]);return p}n.exports=a},function(n,r,i){var a=i(493),o=i(236),l=i(237),s=4,d=8,c=32,u=64;function h(f,g,A,b,p,y,m,F,R,C){var B=g&d,N=B?m:void 0,S=B?void 0:m,X=B?y:void 0,J=B?void 0:y;g|=B?c:u,g&=~(B?u:c),g&s||(g&=-4);var E=[f,g,p,X,N,J,S,F,R,C],v=A.apply(void 0,E);return a(f)&&o(v,E),v.placeholder=b,l(v,f,g)}n.exports=h},function(n,r,i){var a=i(228),o=i(234),l=a?function(s){return a.get(s)}:o;n.exports=l},function(n,r){function i(){}n.exports=i},function(n,r,i){var a=i(88),o=i(135);function l(s,d){this.__wrapped__=s,this.__actions__=[],this.__chain__=!!d,this.__index__=0,this.__values__=void 0}l.prototype=a(o.prototype),l.prototype.constructor=l,n.exports=l},function(n,r,i){var a=i(227),o=i(205),l=o(a);n.exports=l},function(n,r,i){var a=i(498),o=i(499),l=i(124),s=i(500);function d(c,u,h){var f=u+"";return l(c,o(f,s(a(f),h)))}n.exports=d},function(n,r){function i(a,o,l,s){for(var d=a.length,c=l+(s?1:-1);s?c--:++c<d;)if(o(a[c],c,a))return c;return-1}n.exports=i},function(n,r){function i(a){var o=a;return o.placeholder}n.exports=i},function(n,r,i){var a=i(508),o=i(11),l=i(70),s=NaN,d=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,u=/^0o[0-7]+$/i,h=parseInt;function f(g){if(typeof g=="number")return g;if(l(g))return s;if(o(g)){var A=typeof g.valueOf=="function"?g.valueOf():g;g=o(A)?A+"":A}if(typeof g!="string")return g===0?g:+g;g=a(g);var b=c.test(g);return b||u.test(g)?h(g.slice(2),b?2:8):d.test(g)?s:+g}n.exports=f},function(n,r,i){var a=i(98),o=i(242),l=i(99),s=1,d=2;function c(u,h,f,g,A,b){var p=f&s,y=u.length,m=h.length;if(y!=m&&!(p&&m>y))return!1;var F=b.get(u),R=b.get(h);if(F&&R)return F==h&&R==u;var C=-1,B=!0,N=f&d?new a:void 0;for(b.set(u,h),b.set(h,u);++C<y;){var S=u[C],X=h[C];if(g)var J=p?g(X,S,C,h,u,b):g(S,X,C,u,h,b);if(J!==void 0){if(J)continue;B=!1;break}if(N){if(!o(h,function(E,v){if(!l(N,v)&&(S===E||A(S,E,f,g,b)))return N.push(v)})){B=!1;break}}else if(!(S===X||A(S,X,f,g,b))){B=!1;break}}return b.delete(u),b.delete(h),B}n.exports=c},function(n,r){function i(a,o){for(var l=-1,s=a==null?0:a.length;++l<s;)if(o(a[l],l,a))return!0;return!1}n.exports=i},function(n,r){function i(a){var o=-1,l=Array(a.size);return a.forEach(function(s,d){l[++o]=[d,s]}),l}n.exports=i},function(n,r,i){var a=i(11);function o(l){return l===l&&!a(l)}n.exports=o},function(n,r){function i(a,o){return function(l){return l==null?!1:l[a]===o&&(o!==void 0||a in Object(l))}}n.exports=i},function(n,r,i){var a=i(523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,l=/\\(\\)?/g,s=a(function(d){var c=[];return d.charCodeAt(0)===46&&c.push(""),d.replace(o,function(u,h,f,g){c.push(f?g.replace(l,"$1"):h||u)}),c});n.exports=s},function(n,r,i){var a=i(525),o=i(526);function l(s,d){return s!=null&&o(s,d,a)}n.exports=l},function(n,r,i){var a=i(120),o=i(532);function l(s,d,c,u,h){var f=-1,g=s.length;for(c||(c=o),h||(h=[]);++f<g;){var A=s[f];d>0&&c(A)?d>1?l(A,d-1,c,u,h):a(h,A):u||(h[h.length]=A)}return h}n.exports=l},function(n,r,i){var a=i(535),o=a();n.exports=o},function(n,r,i){var a=i(540),o=i(541);r.parse=B,r.resolve=S,r.resolveObject=X,r.format=N,r.Url=l;function l(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var s=/^([a-z0-9.+-]+:)/i,d=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,u=["<",">",'"',"`"," ","\r",` `," "],h=["{","}","|","\\","^","`"].concat(u),f=["'"].concat(h),g=["%","/","?",";","#"].concat(f),A=["/","?","#"],b=255,p=/^[+a-z0-9A-Z_-]{0,63}$/,y=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},F={javascript:!0,"javascript:":!0},R={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},C=i(542);function B(J,E,v){if(J&&o.isObject(J)&&J instanceof l)return J;var j=new l;return j.parse(J,E,v),j}l.prototype.parse=function(J,E,v){if(!o.isString(J))throw new TypeError("Parameter 'url' must be a string, not "+typeof J);var j=J.indexOf("?"),H=j!==-1&&j<J.indexOf("#")?"?":"#",K=J.split(H),Fe=/\\/g;K[0]=K[0].replace(Fe,"/"),J=K.join(H);var z=J;if(z=z.trim(),!v&&J.split("#").length===1){var q=c.exec(z);if(q)return this.path=z,this.href=z,this.pathname=q[1],q[2]?(this.search=q[2],E?this.query=C.parse(this.search.substr(1)):this.query=this.search.substr(1)):E&&(this.search="",this.query={}),this}var Ae=s.exec(z);if(Ae){Ae=Ae[0];var Ke=Ae.toLowerCase();this.protocol=Ke,z=z.substr(Ae.length)}if(v||Ae||z.match(/^\/\/[^@\/]+@[^@\/]+/)){var pe=z.substr(0,2)==="//";pe&&!(Ae&&F[Ae])&&(z=z.substr(2),this.slashes=!0)}if(!F[Ae]&&(pe||Ae&&!R[Ae])){for(var We=-1,xe=0;xe<A.length;xe++){var $e=z.indexOf(A[xe]);$e!==-1&&(We===-1||$e<We)&&(We=$e)}var Rt,Be;We===-1?Be=z.lastIndexOf("@"):Be=z.lastIndexOf("@",We),Be!==-1&&(Rt=z.slice(0,Be),z=z.slice(Be+1),this.auth=decodeURIComponent(Rt)),We=-1;for(var xe=0;xe<g.length;xe++){var $e=z.indexOf(g[xe]);$e!==-1&&(We===-1||$e<We)&&(We=$e)}We===-1&&(We=z.length),this.host=z.slice(0,We),z=z.slice(We),this.parseHost(),this.hostname=this.hostname||"";var qe=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!qe)for(var at=this.hostname.split(/\./),xe=0,Bt=at.length;xe<Bt;xe++){var jt=at[xe];if(jt&&!jt.match(p)){for(var Ne="",Je=0,ve=jt.length;Je<ve;Je++)jt.charCodeAt(Je)>127?Ne+="x":Ne+=jt[Je];if(!Ne.match(p)){var Ye=at.slice(0,xe),it=at.slice(xe+1),Qt=jt.match(y);Qt&&(Ye.push(Qt[1]),it.unshift(Qt[2])),it.length&&(z="/"+it.join(".")+z),this.hostname=Ye.join(".");break}}}this.hostname.length>b?this.hostname="":this.hostname=this.hostname.toLowerCase(),qe||(this.hostname=a.toASCII(this.hostname));var _t=this.port?":"+this.port:"",Dt=this.hostname||"";this.host=Dt+_t,this.href+=this.host,qe&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),z[0]!=="/"&&(z="/"+z))}if(!m[Ke])for(var xe=0,Bt=f.length;xe<Bt;xe++){var Ee=f[xe];if(z.indexOf(Ee)!==-1){var Ge=encodeURIComponent(Ee);Ge===Ee&&(Ge=escape(Ee)),z=z.split(Ee).join(Ge)}}var he=z.indexOf("#");he!==-1&&(this.hash=z.substr(he),z=z.slice(0,he));var $=z.indexOf("?");if($!==-1?(this.search=z.substr($),this.query=z.substr($+1),E&&(this.query=C.parse(this.query)),z=z.slice(0,$)):E&&(this.search="",this.query={}),z&&(this.pathname=z),R[Ke]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var _t=this.pathname||"",ie=this.search||"";this.path=_t+ie}return this.href=this.format(),this};function N(J){return o.isString(J)&&(J=B(J)),J instanceof l?J.format():l.prototype.format.call(J)}l.prototype.format=function(){var J=this.auth||"";J&&(J=encodeURIComponent(J),J=J.replace(/%3A/i,":"),J+="@");var E=this.protocol||"",v=this.pathname||"",j=this.hash||"",H=!1,K="";this.host?H=J+this.host:this.hostname&&(H=J+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(H+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(K=C.stringify(this.query));var Fe=this.search||K&&"?"+K||"";return E&&E.substr(-1)!==":"&&(E+=":"),this.slashes||(!E||R[E])&&H!==!1?(H="//"+(H||""),v&&v.charAt(0)!=="/"&&(v="/"+v)):H||(H=""),j&&j.charAt(0)!=="#"&&(j="#"+j),Fe&&Fe.charAt(0)!=="?"&&(Fe="?"+Fe),v=v.replace(/[?#]/g,function(z){return encodeURIComponent(z)}),Fe=Fe.replace("#","%23"),E+H+v+Fe+j};function S(J,E){return B(J,!1,!0).resolve(E)}l.prototype.resolve=function(J){return this.resolveObject(B(J,!1,!0)).format()};function X(J,E){return J?B(J,!1,!0).resolveObject(E):E}l.prototype.resolveObject=function(J){if(o.isString(J)){var E=new l;E.parse(J,!1,!0),J=E}for(var v=new l,j=Object.keys(this),H=0;H<j.length;H++){var K=j[H];v[K]=this[K]}if(v.hash=J.hash,J.href==="")return v.href=v.format(),v;if(J.slashes&&!J.protocol){for(var Fe=Object.keys(J),z=0;z<Fe.length;z++){var q=Fe[z];q!=="protocol"&&(v[q]=J[q])}return R[v.protocol]&&v.hostname&&!v.pathname&&(v.path=v.pathname="/"),v.href=v.format(),v}if(J.protocol&&J.protocol!==v.protocol){if(!R[J.protocol]){for(var Ae=Object.keys(J),Ke=0;Ke<Ae.length;Ke++){var pe=Ae[Ke];v[pe]=J[pe]}return v.href=v.format(),v}if(v.protocol=J.protocol,!J.host&&!F[J.protocol]){for(var Bt=(J.pathname||"").split("/");Bt.length&&!(J.host=Bt.shift()););J.host||(J.host=""),J.hostname||(J.hostname=""),Bt[0]!==""&&Bt.unshift(""),Bt.length<2&&Bt.unshift(""),v.pathname=Bt.join("/")}else v.pathname=J.pathname;if(v.search=J.search,v.query=J.query,v.host=J.host||"",v.auth=J.auth,v.hostname=J.hostname||J.host,v.port=J.port,v.pathname||v.search){var We=v.pathname||"",xe=v.search||"";v.path=We+xe}return v.slashes=v.slashes||J.slashes,v.href=v.format(),v}var $e=v.pathname&&v.pathname.charAt(0)==="/",Rt=J.host||J.pathname&&J.pathname.charAt(0)==="/",Be=Rt||$e||v.host&&J.pathname,qe=Be,at=v.pathname&&v.pathname.split("/")||[],Bt=J.pathname&&J.pathname.split("/")||[],jt=v.protocol&&!R[v.protocol];if(jt&&(v.hostname="",v.port=null,v.host&&(at[0]===""?at[0]=v.host:at.unshift(v.host)),v.host="",J.protocol&&(J.hostname=null,J.port=null,J.host&&(Bt[0]===""?Bt[0]=J.host:Bt.unshift(J.host)),J.host=null),Be=Be&&(Bt[0]===""||at[0]==="")),Rt)v.host=J.host||J.host===""?J.host:v.host,v.hostname=J.hostname||J.hostname===""?J.hostname:v.hostname,v.search=J.search,v.query=J.query,at=Bt;else if(Bt.length)at||(at=[]),at.pop(),at=at.concat(Bt),v.search=J.search,v.query=J.query;else if(!o.isNullOrUndefined(J.search)){if(jt){v.hostname=v.host=at.shift();var Ne=v.host&&v.host.indexOf("@")>0?v.host.split("@"):!1;Ne&&(v.auth=Ne.shift(),v.host=v.hostname=Ne.shift())}return v.search=J.search,v.query=J.query,(!o.isNull(v.pathname)||!o.isNull(v.search))&&(v.path=(v.pathname?v.pathname:"")+(v.search?v.search:"")),v.href=v.format(),v}if(!at.length)return v.pathname=null,v.search?v.path="/"+v.search:v.path=null,v.href=v.format(),v;for(var Je=at.slice(-1)[0],ve=(v.host||J.host||at.length>1)&&(Je==="."||Je==="..")||Je==="",Ye=0,it=at.length;it>=0;it--)Je=at[it],Je==="."?at.splice(it,1):Je===".."?(at.splice(it,1),Ye++):Ye&&(at.splice(it,1),Ye--);if(!Be&&!qe)for(;Ye--;Ye)at.unshift("..");Be&&at[0]!==""&&(!at[0]||at[0].charAt(0)!=="/")&&at.unshift(""),ve&&at.join("/").substr(-1)!=="/"&&at.push("");var Qt=at[0]===""||at[0]&&at[0].charAt(0)==="/";if(jt){v.hostname=v.host=Qt?"":at.length?at.shift():"";var Ne=v.host&&v.host.indexOf("@")>0?v.host.split("@"):!1;Ne&&(v.auth=Ne.shift(),v.host=v.hostname=Ne.shift())}return Be=Be||v.host&&at.length,Be&&!Qt&&at.unshift(""),at.length?v.pathname=at.join("/"):(v.pathname=null,v.path=null),(!o.isNull(v.pathname)||!o.isNull(v.search))&&(v.path=(v.pathname?v.pathname:"")+(v.search?v.search:"")),v.auth=J.auth||v.auth,v.slashes=v.slashes||J.slashes,v.href=v.format(),v},l.prototype.parseHost=function(){var J=this.host,E=d.exec(J);E&&(E=E[0],E!==":"&&(this.port=E.substr(1)),J=J.substr(0,J.length-E.length)),J&&(this.hostname=J)}},function(n,r,i){(function(a){r.__esModule=!0,r.default=o;function o(){return new a(l=>setTimeout(l))}}).call(this,i(2))},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){o===void 0&&(o={});const l=o.global||(typeof window!==void 0?window:yr);return function(){if(l.navigator.mediaDevices){const d=l.navigator.mediaDevices;return d.enumerateDevices&&d.enumerateDevices.bind(d)}}}},function(n,r,i){r.__esModule=!0,r.default=void 0;let a="";var s={getCurrentAudioInputDevice:()=>a,setCurrentAudioInputDevice:d=>{a=d}};r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(255)),s=(d,c)=>new o.default(d,c);r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(19)),l=a(i(549)),s=a(i(550)),d=a(i(551)),c=a(i(553));const u={attributes:l.default,css:s.default,classNames:d.default,observers:c.default},h=/^#([\w-]*)$/,f=function(m){return Array.prototype.slice.call(m)},g=function(m,F){let R;if(typeof m>"u")return[];if(typeof m=="string"){R=[];const C=h.exec(m);if(F=F||document,C&&C[1]){const B=F.getElementById(C[1]);B&&R.push(B)}else R=F.querySelectorAll(m)}else m&&(m.nodeType||(typeof window!==void 0?window:yr).XMLHttpRequest&&m instanceof(typeof window!==void 0?window:yr).XMLHttpRequest||m===(typeof window!==void 0?window:yr))?(R=[m],F=m):Array.isArray(m)?(R=m.slice(),F=null):R=f(R);return R},A=function(m,F){const R=g(m,F);this.context=F,this.toArray=function(){return R},this.length=R.length,this.first=R[0],this.last=R[R.length-1],this.get=function(C){return C===void 0?R:R[C]}};A._attachToOTHelpers={},A._attachToOTHelpers.removeElement=function(y){return new A(y).remove()},A.prototype.getAsArray=function(){let y=this.get();return(0,o.default)(y.forEach)||(y=f(y)),y},A.prototype.some=function(y,m){return this.getAsArray().some(y,m)},A.prototype.forEach=function(y,m){return this.getAsArray().forEach(y,m),this},A.prototype.map=function(y,m){return new A(this.getAsArray().map(y,m),this.context)},A.prototype.filter=function(y,m){return new A(this.getAsArray().filter(y,m),this.context)},A.prototype.find=function(y){return new A(y,this.first)},A.prototype.on=function(y,m){return this.forEach(F=>{F.addEventListener(y,m,!1)})},A.prototype.off=function(y,m){return this.forEach(F=>{F.removeEventListener(y,m,!1)})},A.prototype.once=function(y,m){const F=(function(){this.off(y,F),m(...arguments)}).bind(this);return this.on(y,F)},A.prototype.appendTo=function(y){if(!y)throw new Error("appendTo requires a DOMElement to append to.");return this.forEach(m=>{y.appendChild(m)})},A.prototype.append=function(){const y=this.first;return y?(Array.prototype.forEach.call(arguments,m=>{y.appendChild(m)}),this):this},A.prototype.prepend=function(){if(arguments.length===0)return this;const y=this.first;let m;return y?(m=Array.prototype.slice.call(arguments),y.firstElementChild||y.appendChild(m.shift()),m.forEach(F=>{y.insertBefore(F,y.firstElementChild)}),this):this},A.prototype.after=function(y){if(!y)throw new Error("after requires a DOMElement to insert after");return this.forEach(m=>{m.parentElement&&(y!==m.parentNode.lastChild?m.parentElement.insertBefore(m,y):m.parentElement.appendChild(m))})},A.prototype.before=function(y){if(!y)throw new Error("before requires a DOMElement to insert before");return this.forEach(m=>{m.parentElement&&m.parentElement.insertBefore(m,y)})},A.prototype.remove=function(){return this.forEach(y=>{y.parentNode&&y.parentNode.removeChild(y)})},A.prototype.empty=function(){return this.forEach(y=>{for(;y.firstChild;)y.removeChild(y.firstChild)})},A.prototype.isDisplayNone=function(){return this.some(y=>((y==null?void 0:y.offsetWidth)===0||(y==null?void 0:y.offsetHeight)===0)&&new A(y).css("display")==="none"?!0:y!=null&&y.parentNode&&y!=null&&y.parentNode.style?new A(y.parentNode).isDisplayNone():!1)};const b=function y(m){return(m.offsetWidth===0||m.offsetHeight===0)&&new A(m).css("display")==="none"?m:m.parentNode&&m.parentNode.style?y(m.parentNode):null};A._attachToOTHelpers.emptyElement=function(y){return new A(y).empty()},A._attachToOTHelpers._findElementWithDisplayNone=b,u.css(A,b),u.attributes(A),u.classNames(A),u.observers(A),["on","off","isDisplayNone","show","hide","css","makeVisibleAndYield","addClass","removeClass"].forEach(y=>{A._attachToOTHelpers[y]=function(){const m=Array.prototype.slice.apply(arguments),F=m.shift(),R=new A(F);return A.prototype[y].apply(R,m)}});var p=A;r.default=p},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(1));const l=(0,o.default)("deprecation");function s(d,c,u){let h=u===void 0?{}:u,f=h.value,g=h.name,A=g===void 0?`${c}`:g,b=h.getWarning,p=b===void 0?"":b,y=h.setWarning,m=y===void 0?"":y,F=h.canSet,R=F===void 0?!1:F,C=h.warnOnSet,B=C===void 0?!1:C,N=f,S=!1,X=!B;Object.defineProperty(d,c,{get(){return S||(S=!0,l.warn(`${A} is deprecated, and will be removed in the future. ${p}`.trim())),N},set(E){R&&(N=E),X||(X=!0,R?l.warn(`${A} is deprecated. ${m}`.trim()):l.warn(`${A} is deprecated, and will be removed in the future. ${m}`.trim()))}})}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(9)),l=a(i(3)),s=a(i(254)),d=a(i(258));const c={};function u(f){if(typeof f=="string")return f;const g=[];return Object.keys(f).forEach(A=>{g.push(`${encodeURIComponent(A)}=${encodeURIComponent(f[A])}`)}),g.join("&").replace(/\+/g,"%20")}l.default.name!=="Node"&&(c.request=function(f,g,A){const b=new(typeof window!==void 0?window:yr).XMLHttpRequest,p=g||{};if(!p.method){A(new Error("No HTTP method specified in options"));return}g.overrideMimeType&&(b.overrideMimeType&&b.overrideMimeType(g.overrideMimeType),delete g.overrideMimeType),A&&((0,s.default)(b).on("load",m=>{const F=m.target.status;F>=200&&(F<300||F===304)?A(null,m):A(m)}),(0,s.default)(b).on("error",A)),b.open(g.method,f,!0),p.headers||(p.headers={});for(const m in p.headers)Object.prototype.hasOwnProperty.call(p.headers,m)&&b.setRequestHeader(m,p.headers[m]);b.send(g.body&&u(g.body))},c.get=function(f,g,A){const b=(0,o.default)(g||{},{method:"GET"});c.request(f,b,A)},c.post=function(f,g,A){const b=(0,o.default)(g||{},{method:"POST"});c.request(f,b,A)},c.getJSON=function(f,g,A){g=g||{};const b=function(m,F){if(m)A(m,F&&F.target&&F.target.responseText);else{let R;try{R=JSON.parse(F.target.responseText)}catch(C){A(C,F&&F.target&&F.target.responseText);return}A(null,R,F)}},p=(0,o.default)({Accept:"application/json"},g.headers||{});c.get(f,(0,o.default)(g||{},{headers:p}),b)},(0,d.default)(c));var h=c;r.default=h},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=l=>{const s={};Object.keys(l).forEach(d=>{s[d]=l[d]}),l._attachToOTHelpers=s};r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=b;var o=a(i(9)),l=a(i(16)),s=a(i(1)),d=a(i(558)),c=a(i(257)),u=a(i(103)),h=i(71);const f=(0,s.default)("analytics"),g=(0,l.default)(),A=new d.default;function b(p){var y=this;let m=p.loggingUrl,F=p.queue,R=F===void 0?A:F,C=p.ajax,B=C===void 0?c.default:C;this.loggingUrl=m,this.updateEndPoints=()=>{if(!this.proxyUrl){this.proxyUrl=(0,h.getProxyUrl)();const J=(0,u.default)(this.loggingUrl,this.proxyUrl);this.loggingUrl=J}this.endPoint=`${this.loggingUrl}/logging/ClientEvent`,this.endPointQos=`${this.loggingUrl}/logging/ClientQos`},this.updateEndPoints();const N={},S=function(E,v,j){v===void 0&&(v=()=>{}),R.add(H=>{f.debug("sending analytics:",y.loggingUrl,E),B.post(j?y.endPointQos:y.endPoint,{body:E,overrideMimeType:"text/plain",headers:{Accept:"text/plain","Content-Type":"application/json"}},K=>{K&&f.debug("Failed to send ClientEvent, moving on to the next item."),v(K||void 0),H()})})},X=(J,E,v)=>{if(!v)return!1;const j=[v,E,J].join("_");return(N[j]||0)>=100};this.logError=function(J,E,v,j,H){j===void 0&&(j=null),H===void 0&&(H={});const K=H,Fe=K.partnerId;if(X(J,E,Fe))return;const z=[Fe,E,J].join("_"),q=j;N[z]=typeof N[z]<"u"?N[z]+1:1,y.logEvent((0,o.default)(H,{action:`${E}.${J}`,payload:q}),!1)},this.logEvent=function(J,E,v,j){E===void 0&&(E=!1),j===void 0&&(j=()=>{}),y.updateEndPoints();const H=Object.assign({},J,{clientInstanceId:g});if(v&&!isNaN(v)&&Math.random()>v){f.debug("skipping sending analytics due to throttle:",H);return}f.debug("queueing analytics:",y.loggingUrl,H);let K;try{K=JSON.stringify(H)}catch(Fe){j(Fe);return}S(K,j,E)},this.logQOS=J=>this.logEvent(J,!0)}},function(n,r){var i=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(i){var a=new Uint8Array(16);n.exports=function(){return i(a),a}}else{var o=new Array(16);n.exports=function(){for(var s=0,d;s<16;s++)s&3||(d=Math.random()*4294967296),o[s]=d>>>((s&3)<<3)&255;return o}}},function(n,r){for(var i=[],a=0;a<256;++a)i[a]=(a+256).toString(16).substr(1);function o(l,s){var d=s||0,c=i;return[c[l[d++]],c[l[d++]],c[l[d++]],c[l[d++]],"-",c[l[d++]],c[l[d++]],"-",c[l[d++]],c[l[d++]],"-",c[l[d++]],c[l[d++]],"-",c[l[d++]],c[l[d++]],c[l[d++]],c[l[d++]],c[l[d++]],c[l[d++]]].join("")}n.exports=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=c;var o=a(i(19)),l=a(i(6)),s=a(i(1));const d=(0,s.default)("Collection");function c(u){let h=[],f={};const g=u||"id";(0,l.default)(this);const A=function(m,F){return(0,o.default)(m[F])?m[F]():m[F]},b=(function(m){this.trigger("update",m),this.trigger(`update:${m.target.id}`,m)}).bind(this),p=(function(m){this.remove(m.target,m.reason)}).bind(this);this.reset=function(){h.forEach(function(y){y.off("updated",b,this),y.off("destroyed",p,this)},this),h=[],f={}},this.destroy=function(y){h.forEach(m=>{m&&typeof m.destroy=="function"&&m.destroy(y,!0)}),this.reset(),this.off()},this.get=function(y){return y&&f[y]!==void 0?h[f[y]]:void 0},this.has=function(y){return y&&f[y]!==void 0},this.toString=function(){return h.toString()},this.where=function(y,m){return(0,o.default)(y)?h.filter(y,m):h.filter(F=>{for(const R in y)if(y.hasOwnProperty(R)&&A(F,R)!==y[R])return!1;return!0})},this.find=function(y,m){let F;(0,o.default)(y)?F=y:F=function(C){for(const B in y)if(y.hasOwnProperty(B)&&A(C,B)!==y[B])return!1;return!0},F=F.bind(m);for(let R=0;R<h.length;++R)if(F(h[R])===!0)return h[R];return null},this.forEach=function(y,m){return h.forEach(y,m),this},this.map=function(y){return h.map(y)},this.add=function(y){const m=A(y,g);return this.has(m)?(d.warn(`Model ${m} is already in the collection`,h),this):(f[m]=h.push(y)-1,y.on("updated",b,this),y.on("destroyed",p,this),this.trigger("add",y),this.trigger(`add:${m}`,y),this)},this.remove=function(y,m){const F=A(y,g);h.splice(f[F],1);for(let R=f[F];R<h.length;++R)f[A(h[R],g)]=R;return delete f[F],y.off("updated",b,this),y.off("destroyed",p,this),this.trigger("remove",y,m),this.trigger(`remove:${F}`,y,m),this},this._triggerAddEvents=function(){this.where.apply(this,arguments).forEach(function(y){this.trigger("add",y),this.trigger(`add:${A(y,g)}`,y)},this)},this.length=function(){return h.length}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(19)),s=o(i(16)),d=o(i(1));const c=(0,d.default)("guidStorage"),u={};let h,f;const g=function(y){return!((0,l.default)(y.get)&&(0,l.default)(y.set))},A=function(y){if(f){y(null,f);return}h.get(y)};u.override=p=>{if(g(p))throw new Error("The storageInterface argument does not seem to be valid, it must implement get and set methods");h!==p&&(h=p,f&&h.set(f,y=>{y&&c.error(`Failed to send initial Guid value (${f}) to the newly assigned Guid Storage. The error was: ${y}`)}))},u.get=p=>{A((y,m)=>{if(y){p(y);return}m?f||(f=m):(m=(0,s.default)(),h.set(m,F=>{if(F){p(F);return}f=m})),p(null,f)})},u.getAsync=()=>new a((p,y)=>{u.get((m,F)=>m?y(m):p(F))}),u.override({get(p){let y;try{y=(typeof window!==void 0?window:yr).localStorage.getItem("opentok_client_id")}catch{y||(y=(0,s.default)())}p(null,y)},set(p,y){try{(typeof window!==void 0?window:yr).localStorage.setItem("opentok_client_id",p)}catch{}y(null)}}),u.set=p=>{f=p};var b=u;r.default=b}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(11)),l=a(i(3));let s;const d=["description","fileName","lineNumber","message","name","number","stack"],c=function(g,A,b){switch(arguments.length){case 1:(0,o.default)(g)&&(b=g,A=void 0,g=void 0);break;case 2:(0,o.default)(A)&&(b=A,A=void 0);break}if(b instanceof Error)for(let p=0,y=d.length;p<y;++p)this[d[p]]=b[d[p]];else if((0,o.default)(b))for(const p in b)b.hasOwnProperty(p)&&(this[p]=b[p]);if(!(this.fileName&&this.lineNumber&&this.columnNumber&&this.stack)){const p=s();!this.fileName&&p.fileName&&(this.fileName=p.fileName),!this.lineNumber&&p.lineNumber&&(this.lineNumber=p.lineNumber),!this.columnNumber&&p.columnNumber&&(this.columnNumber=p.columnNumber),!this.stack&&p.stack&&(this.stack=p.stack)}!this.message&&g&&(this.message=g),(!this.name||this.name==="Error")&&A&&(this.name=A)};c.prototype=Object.create(Error.prototype),c.prototype.toString=function(){let f="";return this.fileName&&(f+=` ${this.fileName}`),this.lineNumber&&(f+=` ${this.lineNumber}`,this.columnNumber&&(f+=`:${this.columnNumber}`)),`<${this.name?`${this.name} `:""}${this.message}${f}>`},c.prototype.valueOf=c.prototype.toString;const u=function(g,A){return A.slice(2).map(b=>{const p={fileName:b.getFileName(),linenumber:b.getLineNumber(),columnNumber:b.getColumnNumber()};return b.getFunctionName()&&(p.functionName=b.getFunctionName()),b.getMethodName()&&(p.methodName=b.getMethodName()),b.getThis()&&(p.self=b.getThis()),p})};s=function(){const g={};let A,b,p;switch(l.default.name){case"Firefox":case"Safari":try{(typeof window!==void 0?window:yr).call.js.is.explody()}catch(F){p=F}A=(p.stack||"").split(` `),A.shift(),A.shift(),g.stack=A,b=/@(.+?):([0-9]+)(:([0-9]+))?$/.exec(A[0]),b&&(g.fileName=b[1],g.lineNumber=parseInt(b[2],10),b.length>3&&(g.columnNumber=parseInt(b[4],10)));break;case"Chrome":case"Node":case"Opera":var y=Error.prepareStackTrace;Error.prepareStackTrace=u,p=new Error,g.stack=p.stack,Error.prepareStackTrace=y;var m=g.stack[0];g.lineNumber=m.lineNumber,g.columnNumber=m.columnNumber,g.fileName=m.fileName,m.functionName&&(g.functionName=m.functionName),m.methodName&&(g.methodName=m.methodName),m.self&&(g.self=m.self);break;default:p=new Error,p.stack&&(g.stack=p.stack.split(` `));break}return p.message&&(g.message=p.message),g};var h=c;r.default=h},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(14)),l=a(i(8));function s(d){d===void 0&&(d={});const c=d.Errors||l.default,u=d.otError||(0,o.default)(),h={};return(typeof window!==void 0?window:yr).MediaError&&(h[(typeof window!==void 0?window:yr).MediaError.MEDIA_ERR_ABORTED]={name:c.MEDIA_ERR_ABORTED,message:"The fetching process for the media resource was aborted by the user agent at the user's request."},h[(typeof window!==void 0?window:yr).MediaError.MEDIA_ERR_NETWORK]={name:c.MEDIA_ERR_NETWORK,message:"A network error of some description caused the user agent to stop fetching the media resource, after the resource was established to be usable."},h[(typeof window!==void 0?window:yr).MediaError.MEDIA_ERR_DECODE]={name:c.MEDIA_ERR_DECODE,message:"An error of some description occurred while decoding the media resource, after the resource was established to be usable."},h[(typeof window!==void 0?window:yr).MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED]={name:c.MEDIA_ERR_SRC_NOT_SUPPORTED,message:"The media resource indicated by the src attribute was not suitable."}),function(g){const A=h[g.code];return A?u(A.name,new Error(`There was an unexpected problem with the Video Stream: ${A.message}`)):new Error(`An unknown error occurred${g.message?`: ${g.message}`:"."}`)}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(149)),s=a(i(570)),c=function(h){h===void 0&&(h={});const f=h.hasOwnProperty("env")?h.env:o.default,g=h.createVideoElementUsingNativeAPI||l.default,A=h.createVideoElementForSafari||s.default;let b;return f!=null&&f.isSafari?b=A():b=g(),b.autoplay=!0,b.playsinline=!0,b.setAttribute("autoplay",""),b.setAttribute("playsinline",""),b};r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(50));let l=function(){function s(c,u){var h;let f=u===void 0?{}:u,g=f.requestAnimationFrame,A=g===void 0?(h=window).requestAnimationFrame.bind(h):g;this._lastCalled=(0,o.default)(),this._audioLevel=void 0,this._running=!1,this._requestAnimationFrame=A,this._getAudioLevel=c,this._startLoop()}var d=s.prototype;return d._startLoop=function(){this._running||(this._running=!0,this._requestAnimationFrame(this._loop.bind(this)))},d._loop=function(){this._getAudioLevel((u,h)=>{let f=null;if(!u){for(let g=0;g<h.length;g+=1){const A=h[g];let b=null;if(A.audioOutputLevel!==void 0){const p=parseFloat(A.audioOutputLevel)/32768;isNaN(p)||(b=p)}else A.audioLevel!==void 0&&(b=A.audioLevel);b!==null&&(f===null||b>f)&&(f=b)}this._audioLevel=f,this._running&&(0,o.default)()-this._lastCalled<1e4?this._requestAnimationFrame(this._loop.bind(this)):this._running=!1}})},d.destroy=function(){this._running=!1},d.sample=function(u){if(typeof u=="function")throw new Error("sample no longer takes a callback");return this._startLoop(),this._lastCalled=(0,o.default)(),this._audioLevel},s}();r.default=l},function(n,r,i){var a={};a.generateIdentifier=function(){return Math.random().toString(36).substr(2,10)},a.localCName=a.generateIdentifier(),a.splitLines=function(o){return o.trim().split(` `).map(function(l){return l.trim()})},a.splitSections=function(o){var l=o.split(` m=`);return l.map(function(s,d){return(d>0?"m="+s:s).trim()+`\r `})},a.getDescription=function(o){var l=a.splitSections(o);return l&&l[0]},a.getMediaSections=function(o){var l=a.splitSections(o);return l.shift(),l},a.matchPrefix=function(o,l){return a.splitLines(o).filter(function(s){return s.indexOf(l)===0})},a.parseCandidate=function(o){var l;o.indexOf("a=candidate:")===0?l=o.substring(12).split(" "):l=o.substring(10).split(" ");for(var s={foundation:l[0],component:parseInt(l[1],10),protocol:l[2].toLowerCase(),priority:parseInt(l[3],10),ip:l[4],address:l[4],port:parseInt(l[5],10),type:l[7]},d=8;d<l.length;d+=2)switch(l[d]){case"raddr":s.relatedAddress=l[d+1];break;case"rport":s.relatedPort=parseInt(l[d+1],10);break;case"tcptype":s.tcpType=l[d+1];break;case"ufrag":s.ufrag=l[d+1],s.usernameFragment=l[d+1];break;default:s[l[d]]=l[d+1];break}return s},a.writeCandidate=function(o){var l=[];l.push(o.foundation),l.push(o.component),l.push(o.protocol.toUpperCase()),l.push(o.priority),l.push(o.address||o.ip),l.push(o.port);var s=o.type;return l.push("typ"),l.push(s),s!=="host"&&o.relatedAddress&&o.relatedPort&&(l.push("raddr"),l.push(o.relatedAddress),l.push("rport"),l.push(o.relatedPort)),o.tcpType&&o.protocol.toLowerCase()==="tcp"&&(l.push("tcptype"),l.push(o.tcpType)),(o.usernameFragment||o.ufrag)&&(l.push("ufrag"),l.push(o.usernameFragment||o.ufrag)),"candidate:"+l.join(" ")},a.parseIceOptions=function(o){return o.substr(14).split(" ")},a.parseRtpMap=function(o){var l=o.substr(9).split(" "),s={payloadType:parseInt(l.shift(),10)};return l=l[0].split("/"),s.name=l[0],s.clockRate=parseInt(l[1],10),s.channels=l.length===3?parseInt(l[2],10):1,s.numChannels=s.channels,s},a.writeRtpMap=function(o){var l=o.payloadType;o.preferredPayloadType!==void 0&&(l=o.preferredPayloadType);var s=o.channels||o.numChannels||1;return"a=rtpmap:"+l+" "+o.name+"/"+o.clockRate+(s!==1?"/"+s:"")+`\r `},a.parseExtmap=function(o){var l=o.substr(9).split(" ");return{id:parseInt(l[0],10),direction:l[0].indexOf("/")>0?l[0].split("/")[1]:"sendrecv",uri:l[1]}},a.writeExtmap=function(o){return"a=extmap:"+(o.id||o.preferredId)+(o.direction&&o.direction!=="sendrecv"?"/"+o.direction:"")+" "+o.uri+`\r `},a.parseFmtp=function(o){for(var l={},s,d=o.substr(o.indexOf(" ")+1).split(";"),c=0;c<d.length;c++)s=d[c].trim().split("="),l[s[0].trim()]=s[1];return l},a.writeFmtp=function(o){var l="",s=o.payloadType;if(o.preferredPayloadType!==void 0&&(s=o.preferredPayloadType),o.parameters&&Object.keys(o.parameters).length){var d=[];Object.keys(o.parameters).forEach(function(c){o.parameters[c]?d.push(c+"="+o.parameters[c]):d.push(c)}),l+="a=fmtp:"+s+" "+d.join(";")+`\r `}return l},a.parseRtcpFb=function(o){var l=o.substr(o.indexOf(" ")+1).split(" ");return{type:l.shift(),parameter:l.join(" ")}},a.writeRtcpFb=function(o){var l="",s=o.payloadType;return o.preferredPayloadType!==void 0&&(s=o.preferredPayloadType),o.rtcpFeedback&&o.rtcpFeedback.length&&o.rtcpFeedback.forEach(function(d){l+="a=rtcp-fb:"+s+" "+d.type+(d.parameter&&d.parameter.length?" "+d.parameter:"")+`\r `}),l},a.parseSsrcMedia=function(o){var l=o.indexOf(" "),s={ssrc:parseInt(o.substr(7,l-7),10)},d=o.indexOf(":",l);return d>-1?(s.attribute=o.substr(l+1,d-l-1),s.value=o.substr(d+1)):s.attribute=o.substr(l+1),s},a.parseSsrcGroup=function(o){var l=o.substr(13).split(" ");return{semantics:l.shift(),ssrcs:l.map(function(s){return parseInt(s,10)})}},a.getMid=function(o){var l=a.matchPrefix(o,"a=mid:")[0];if(l)return l.substr(6)},a.parseFingerprint=function(o){var l=o.substr(14).split(" ");return{algorithm:l[0].toLowerCase(),value:l[1]}},a.getDtlsParameters=function(o,l){var s=a.matchPrefix(o+l,"a=fingerprint:");return{role:"auto",fingerprints:s.map(a.parseFingerprint)}},a.writeDtlsParameters=function(o,l){var s="a=setup:"+l+`\r `;return o.fingerprints.forEach(function(d){s+="a=fingerprint:"+d.algorithm+" "+d.value+`\r `}),s},a.parseCryptoLine=function(o){var l=o.substr(9).split(" ");return{tag:parseInt(l[0],10),cryptoSuite:l[1],keyParams:l[2],sessionParams:l.slice(3)}},a.writeCryptoLine=function(o){return"a=crypto:"+o.tag+" "+o.cryptoSuite+" "+(typeof o.keyParams=="object"?a.writeCryptoKeyParams(o.keyParams):o.keyParams)+(o.sessionParams?" "+o.sessionParams.join(" "):"")+`\r `},a.parseCryptoKeyParams=function(o){if(o.indexOf("inline:")!==0)return null;var l=o.substr(7).split("|");return{keyMethod:"inline",keySalt:l[0],lifeTime:l[1],mkiValue:l[2]?l[2].split(":")[0]:void 0,mkiLength:l[2]?l[2].split(":")[1]:void 0}},a.writeCryptoKeyParams=function(o){return o.keyMethod+":"+o.keySalt+(o.lifeTime?"|"+o.lifeTime:"")+(o.mkiValue&&o.mkiLength?"|"+o.mkiValue+":"+o.mkiLength:"")},a.getCryptoParameters=function(o,l){var s=a.matchPrefix(o+l,"a=crypto:");return s.map(a.parseCryptoLine)},a.getIceParameters=function(o,l){var s=a.matchPrefix(o+l,"a=ice-ufrag:")[0],d=a.matchPrefix(o+l,"a=ice-pwd:")[0];return s&&d?{usernameFragment:s.substr(12),password:d.substr(10)}:null},a.writeIceParameters=function(o){return"a=ice-ufrag:"+o.usernameFragment+`\r a=ice-pwd:`+o.password+`\r `},a.parseRtpParameters=function(o){for(var l={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},s=a.splitLines(o),d=s[0].split(" "),c=3;c<d.length;c++){var u=d[c],h=a.matchPrefix(o,"a=rtpmap:"+u+" ")[0];if(h){var f=a.parseRtpMap(h),g=a.matchPrefix(o,"a=fmtp:"+u+" ");switch(f.parameters=g.length?a.parseFmtp(g[0]):{},f.rtcpFeedback=a.matchPrefix(o,"a=rtcp-fb:"+u+" ").map(a.parseRtcpFb),l.codecs.push(f),f.name.toUpperCase()){case"RED":case"ULPFEC":l.fecMechanisms.push(f.name.toUpperCase());break}}}return a.matchPrefix(o,"a=extmap:").forEach(function(A){l.headerExtensions.push(a.parseExtmap(A))}),l},a.writeRtpDescription=function(o,l){var s="";s+="m="+o+" ",s+=l.codecs.length>0?"9":"0",s+=" UDP/TLS/RTP/SAVPF ",s+=l.codecs.map(function(c){return c.preferredPayloadType!==void 0?c.preferredPayloadType:c.payloadType}).join(" ")+`\r `,s+=`c=IN IP4 0.0.0.0\r `,s+=`a=rtcp:9 IN IP4 0.0.0.0\r `,l.codecs.forEach(function(c){s+=a.writeRtpMap(c),s+=a.writeFmtp(c),s+=a.writeRtcpFb(c)});var d=0;return l.codecs.forEach(function(c){c.maxptime>d&&(d=c.maxptime)}),d>0&&(s+="a=maxptime:"+d+`\r `),s+=`a=rtcp-mux\r `,l.headerExtensions&&l.headerExtensions.forEach(function(c){s+=a.writeExtmap(c)}),s},a.parseRtpEncodingParameters=function(o){var l=[],s=a.parseRtpParameters(o),d=s.fecMechanisms.indexOf("RED")!==-1,c=s.fecMechanisms.indexOf("ULPFEC")!==-1,u=a.matchPrefix(o,"a=ssrc:").map(function(b){return a.parseSsrcMedia(b)}).filter(function(b){return b.attribute==="cname"}),h=u.length>0&&u[0].ssrc,f,g=a.matchPrefix(o,"a=ssrc-group:FID").map(function(b){var p=b.substr(17).split(" ");return p.map(function(y){return parseInt(y,10)})});g.length>0&&g[0].length>1&&g[0][0]===h&&(f=g[0][1]),s.codecs.forEach(function(b){if(b.name.toUpperCase()==="RTX"&&b.parameters.apt){var p={ssrc:h,codecPayloadType:parseInt(b.parameters.apt,10)};h&&f&&(p.rtx={ssrc:f}),l.push(p),d&&(p=JSON.parse(JSON.stringify(p)),p.fec={ssrc:h,mechanism:c?"red+ulpfec":"red"},l.push(p))}}),l.length===0&&h&&l.push({ssrc:h});var A=a.matchPrefix(o,"b=");return A.length&&(A[0].indexOf("b=TIAS:")===0?A=parseInt(A[0].substr(7),10):A[0].indexOf("b=AS:")===0?A=parseInt(A[0].substr(5),10)*1e3*.95-50*40*8:A=void 0,l.forEach(function(b){b.maxBitrate=A})),l},a.parseRtcpParameters=function(o){var l={},s=a.matchPrefix(o,"a=ssrc:").map(function(u){return a.parseSsrcMedia(u)}).filter(function(u){return u.attribute==="cname"})[0];s&&(l.cname=s.value,l.ssrc=s.ssrc);var d=a.matchPrefix(o,"a=rtcp-rsize");l.reducedSize=d.length>0,l.compound=d.length===0;var c=a.matchPrefix(o,"a=rtcp-mux");return l.mux=c.length>0,l},a.parseMsid=function(o){var l,s=a.matchPrefix(o,"a=msid:");if(s.length===1)return l=s[0].substr(7).split(" "),{stream:l[0],track:l[1]};var d=a.matchPrefix(o,"a=ssrc:").map(function(c){return a.parseSsrcMedia(c)}).filter(function(c){return c.attribute==="msid"});if(d.length>0)return l=d[0].value.split(" "),{stream:l[0],track:l[1]}},a.parseSctpDescription=function(o){var l=a.parseMLine(o),s=a.matchPrefix(o,"a=max-message-size:"),d;s.length>0&&(d=parseInt(s[0].substr(19),10)),isNaN(d)&&(d=65536);var c=a.matchPrefix(o,"a=sctp-port:");if(c.length>0)return{port:parseInt(c[0].substr(12),10),protocol:l.fmt,maxMessageSize:d};var u=a.matchPrefix(o,"a=sctpmap:");if(u.length>0){var h=a.matchPrefix(o,"a=sctpmap:")[0].substr(10).split(" ");return{port:parseInt(h[0],10),protocol:h[1],maxMessageSize:d}}},a.writeSctpDescription=function(o,l){var s=[];return o.protocol!=="DTLS/SCTP"?s=["m="+o.kind+" 9 "+o.protocol+" "+l.protocol+`\r `,`c=IN IP4 0.0.0.0\r `,"a=sctp-port:"+l.port+`\r `]:s=["m="+o.kind+" 9 "+o.protocol+" "+l.port+`\r `,`c=IN IP4 0.0.0.0\r `,"a=sctpmap:"+l.port+" "+l.protocol+` 65535\r `],l.maxMessageSize!==void 0&&s.push("a=max-message-size:"+l.maxMessageSize+`\r `),s.join("")},a.generateSessionId=function(){return Math.random().toString().substr(2,21)},a.writeSessionBoilerplate=function(o,l,s){var d,c=l!==void 0?l:2;o?d=o:d=a.generateSessionId();var u=s||"thisisadapterortc";return`v=0\r o=`+u+" "+d+" "+c+` IN IP4 127.0.0.1\r s=-\r t=0 0\r `},a.writeMediaSection=function(o,l,s,d){var c=a.writeRtpDescription(o.kind,l);if(c+=a.writeIceParameters(o.iceGatherer.getLocalParameters()),c+=a.writeDtlsParameters(o.dtlsTransport.getLocalParameters(),s==="offer"?"actpass":"active"),c+="a=mid:"+o.mid+`\r `,o.direction?c+="a="+o.direction+`\r `:o.rtpSender&&o.rtpReceiver?c+=`a=sendrecv\r `:o.rtpSender?c+=`a=sendonly\r `:o.rtpReceiver?c+=`a=recvonly\r `:c+=`a=inactive\r `,o.rtpSender){var u="msid:"+d.id+" "+o.rtpSender.track.id+`\r `;c+="a="+u,c+="a=ssrc:"+o.sendEncodingParameters[0].ssrc+" "+u,o.sendEncodingParameters[0].rtx&&(c+="a=ssrc:"+o.sendEncodingParameters[0].rtx.ssrc+" "+u,c+="a=ssrc-group:FID "+o.sendEncodingParameters[0].ssrc+" "+o.sendEncodingParameters[0].rtx.ssrc+`\r `)}return c+="a=ssrc:"+o.sendEncodingParameters[0].ssrc+" cname:"+a.localCName+`\r `,o.rtpSender&&o.sendEncodingParameters[0].rtx&&(c+="a=ssrc:"+o.sendEncodingParameters[0].rtx.ssrc+" cname:"+a.localCName+`\r `),c},a.getDirection=function(o,l){for(var s=a.splitLines(o),d=0;d<s.length;d++)switch(s[d]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return s[d].substr(2)}return l?a.getDirection(l):"sendrecv"},a.getKind=function(o){var l=a.splitLines(o),s=l[0].split(" ");return s[0].substr(2)},a.isRejected=function(o){return o.split(" ",2)[1]==="0"},a.parseMLine=function(o){var l=a.splitLines(o),s=l[0].substr(2).split(" ");return{kind:s[0],port:parseInt(s[1],10),protocol:s[2],fmt:s.slice(3).join(" ")}},a.parseOLine=function(o){var l=a.matchPrefix(o,"o=")[0],s=l.substr(2).split(" ");return{username:s[0],sessionId:s[1],sessionVersion:parseInt(s[2],10),netType:s[3],addressType:s[4],address:s[5]}},a.isValidSDP=function(o){if(typeof o!="string"||o.length===0)return!1;for(var l=a.splitLines(o),s=0;s<l.length;s++)if(l[s].length<2||l[s].charAt(1)!=="=")return!1;return!0},n.exports=a},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){return["Chrome","Safari","Edge","Opera"].indexOf(o.browserName)===-1||o.browserName==="Edge"&&!o.isChromiumEdge||o.isScreenSharing&&!o.capableSimulcastScreenshare||o.sessionInfo.p2pEnabled||!o.constraints.video&&!o.isCustomVideoTrack||o.scalableVideo===!1?1:o.videoDimensions.width>640&&o.videoDimensions.height>480?3:2}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=f;var o=a(i(271)),l=a(i(592)),s=a(i(156));function d(g,A,b){return!g.publish&&A?!1:typeof g.source=="boolean"?g.source:b?{mandatory:{sourceId:g.source}}:(0,s.default)(g.source)?{}:{deviceId:{exact:g.source}}}function c(g){let A=d(g.audio,g.enableRenegotiation,g.usingOptionalMandatoryStyle);if(A===!1)return!1;const b=g.usingOptionalMandatoryStyle,p=g.enableStereo,y=g.echoCancellation,m=g.noiseSuppression,F=g.autoGainControl,R=g.disableAudioProcessing,C=B=>{typeof A=="object"&&(b?((0,o.default)(A,{optional:[]}),A.optional.push(B)):(0,o.default)(A,B))};return(p||R||!y||!m||!F)&&A===!0&&(A={}),p&&C({channelCount:2}),["echoCancellation","autoGainControl","noiseSuppression"].forEach(B=>{const N=!R&&g[B];C({[B]:N})}),A}function u(g){let A=d(g.video,g.enableRenegotiation,g.usingOptionalMandatoryStyle);if(A===!1)return!1;const b=g.videoDimensions,p=g.frameRate,y=g.maxResolution,m=g.facingMode,F=g.usingOptionalMandatoryStyle;if((b||p||y||m)&&A===!0&&(A={}),b){const R=b.width,C=b.height;F?((0,o.default)(A,{optional:[]}),A.optional.push({minWidth:R},{maxWidth:R},{minHeight:C},{maxHeight:C})):(0,o.default)(A,{width:{ideal:R},height:{ideal:C}})}return p&&(F?((0,o.default)(A,{optional:[]}),A.optional.push({minFrameRate:p},{maxFrameRate:p})):(0,o.default)(A,{frameRate:{ideal:p}})),y&&(F?(0,o.default)(A,{mandatory:{maxWidth:y.width,maxHeight:y.height}}):(0,o.default)(A,{width:{max:y.width},height:{max:y.height}})),m&&(F?((0,o.default)(A,{optional:[]}),A.optional.push({facingMode:m})):(0,o.default)(A,{facingMode:{ideal:m}})),A}function h(g){return{audio:c(g),video:u(g)}}function f(g){const A=(0,l.default)(g);return{constraints:h(A),publishAudio:A.audio.publish,publishVideo:A.video.publish,frameRate:A.frameRate,videoDimensions:A.videoDimensions,audioDeviceId:typeof A.audio.source=="string"?A.audio.source:void 0,videoDeviceId:typeof A.video.source=="string"?A.video.source:void 0}}},function(n,r,i){var a=i(589),o=i(203),l=o(function(s,d,c){a(s,d,c)});n.exports=l},function(n,r,i){var a=i(63),o=i(53);function l(s,d,c){(c!==void 0&&!o(s[d],c)||c===void 0&&!(d in s))&&a(s,d,c)}n.exports=l},function(n,r){function i(a,o){if(!(o==="constructor"&&typeof a[o]=="function")&&o!="__proto__")return a[o]}n.exports=i},function(n,r,i){var a=i(60),o=i(275);function l(s){return o(a(s).toLowerCase())}n.exports=l},function(n,r,i){var a=i(597),o=a("toUpperCase");n.exports=o},function(n,r){function i(a,o,l){var s=-1,d=a.length;o<0&&(o=-o>d?0:d+o),l=l>d?d:l,l<0&&(l+=d),d=o>l?0:l-o>>>0,o>>>=0;for(var c=Array(d);++s<d;)c[s]=a[s+o];return c}n.exports=i},function(n,r){var i="\\ud800-\\udfff",a="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",l="\\u20d0-\\u20ff",s=a+o+l,d="\\ufe0e\\ufe0f",c="\\u200d",u=RegExp("["+c+i+s+d+"]");function h(f){return u.test(f)}n.exports=h},function(n,r,i){var a=i(599),o=i(277),l=i(600);function s(d){return o(d)?l(d):a(d)}n.exports=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3));const l=o.default.name,s=o.default.version;var c=o.default.isChromiumEdge||l==="Chrome"&&s>=72||l==="Firefox"&&s>=66||l==="Opera"&&s>=60||l==="Safari";r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=!!(o.default.isChrome&&o.default.version>=74||o.default.isEdge&&o.default.version>=79);r.default=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=s=>o.default.isElectron?s instanceof MediaStreamTrack&&s.label==="Screen":!1;r.default=l},function(n,r,i){var a=i(102),o=i(606),l=o(a);n.exports=l},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=15e3;r.default=a},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=function(s,d){return d===void 0&&(d=!1),s===void 0?d:s==="true"||s===!0};r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(61));function l(s){const d=(0,o.default)(s);if(d.backgroundImageURI){const c=d.backgroundImageURI.split(":")[0];d.backgroundImageURI=["http","https","data"].indexOf(c)!==-1?c:"other"}return d}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=()=>!o.default.isNode&&!o.default.isElectron?(o.default.isChrome||o.default.isOpera||o.default.isChromiumEdge)&&o.default.version>=74||o.default.isFirefox&&o.default.version>=68||o.default.isSafari&&o.default.version>=11:!1;r.default=l},function(n,r){function i(a,o){return n.exports=i=Object.setPrototypeOf||function(s,d){return s.__proto__=d,s},i(a,o)}n.exports=i},function(n,r,i){var a=i(11),o=i(621),l=i(240),s="Expected a function",d=Math.max,c=Math.min;function u(h,f,g){var A,b,p,y,m,F,R=0,C=!1,B=!1,N=!0;if(typeof h!="function")throw new TypeError(s);f=l(f)||0,a(g)&&(C=!!g.leading,B="maxWait"in g,p=B?d(l(g.maxWait)||0,f):p,N="trailing"in g?!!g.trailing:N);function S(z){var q=A,Ae=b;return A=b=void 0,R=z,y=h.apply(Ae,q),y}function X(z){return R=z,m=setTimeout(v,f),C?S(z):y}function J(z){var q=z-F,Ae=z-R,Ke=f-q;return B?c(Ke,p-Ae):Ke}function E(z){var q=z-F,Ae=z-R;return F===void 0||q>=f||q<0||B&&Ae>=p}function v(){var z=o();if(E(z))return j(z);m=setTimeout(v,J(z))}function j(z){return m=void 0,N&&A?S(z):(A=b=void 0,y)}function H(){m!==void 0&&clearTimeout(m),R=0,A=F=b=m=void 0}function K(){return m===void 0?y:j(o())}function Fe(){var z=o(),q=E(z);if(A=arguments,b=this,F=z,q){if(m===void 0)return X(F);if(B)return clearTimeout(m),m=setTimeout(v,f),S(F)}return m===void 0&&(m=setTimeout(v,f)),y}return Fe.cancel=H,Fe.flush=K,Fe}n.exports=u},function(n,r,i){var a=i(39),o=i(79),l=i(622),s=i(59),d=i(45),c=i(625),u=i(140),h=i(196),f=1,g=2,A=4,b=u(function(p,y){var m={};if(p==null)return m;var F=!1;y=a(y,function(C){return C=s(C,p),F||(F=C.length>1),C}),d(p,h(p),m),F&&(m=o(m,f|g|A,c));for(var R=y.length;R--;)l(m,y[R]);return m});n.exports=b},function(n,r,i){var a=i(238),o=i(38),l=i(97),s=Math.max;function d(c,u,h){var f=c==null?0:c.length;if(!f)return-1;var g=h==null?0:l(h);return g<0&&(g=s(f+g,0)),a(c,o(u,3),g)}n.exports=d},function(n,r,i){var a=i(627);function o(l){return l&&l.length?a(l):[]}n.exports=o},function(n,r,i){r.__esModule=!0,r.default=void 0;var o={INACTIVE:"inactive",RECVONLY:"recvonly",SENDONLY:"sendonly",SENDRECV:"sendrecv"};r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),d=function(){var c=(0,l.default)(o.default.mark(function u(h,f){var g,A,b,p;return o.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return g=!1,A=!0,b=new TextEncoder,m.next=5,window.crypto.subtle.importKey("raw",b.encode(f),{name:"PBKDF2"},g,["deriveBits","deriveKey"]);case 5:return p=m.sent,m.abrupt("return",window.crypto.subtle.deriveKey({name:"PBKDF2",salt:b.encode(h),iterations:1e5,hash:"SHA-256"},p,{name:"AES-CTR",length:256},A,["encrypt","decrypt"]));case 7:case"end":return m.stop()}},u)}));return function(h,f){return c.apply(this,arguments)}}();r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(635)),l=a(i(297)),s=a(i(108));const d=(0,s.default)();var c=(u,h,f)=>{(0,l.default)(u,h,(g,A)=>{if(g){f(g);return}let b=[];d?typeof A.values=="function"?b=(0,o.default)(A.values()):typeof A.forEach!="function"?b=Object.keys(A).map(p=>A[p]):A.forEach(p=>{b.push(p)}):A.result().forEach(p=>{const y={};p.names().forEach(m=>{y[m]=p.stat(m)}),y.id=p.id,y.type=p.type,y.timestamp=p.timestamp,b.push(y)}),f(null,b)})};r.default=c},function(n,r,i){var a=i(33),o=i(13),l=i(20),s="[object String]";function d(c){return typeof c=="string"||!o(c)&&l(c)&&a(c)==s}n.exports=d},function(n,r,i){var a=i(637),o=i(34);function l(s){return s==null?[]:a(s,o(s))}n.exports=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(108));const l=(0,o.default)(),s=(h,f,g)=>{h.getStats(f).then(A=>g(null,A)).catch(g)},d=(h,f)=>{h.getStats(g=>{f(null,g)},f)};var u=(h,f,g)=>{l?s(h,f,g):d(h,g)};r.default=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(28)),l=i(12),s=a(i(42)),d=a(i(649)),c=a(i(651)),u=a(i(50)),h=a(i(1));const f=(0,h.default)("QoS");let g=function(b){(0,o.default)(p,b);function p(){for(var m,F=arguments.length,R=new Array(F),C=0;C<F;C++)R[C]=arguments[C];return m=b.call(this,...R)||this,m._peerConnection=void 0,m._isPublisher=void 0,m.timeoutId=void 0,m._creationTime=(0,u.default)(),m.offerMessagesReceived=0,m.prevStats={timeStamp:(0,u.default)()},m.changeCounters={videoCodec:new c.default,audioCodec:new c.default},m}var y=p.prototype;return y.startCollecting=function(F,R){if(!F||!F.getStats)return;this._isPublisher=R;const C=!!this._peerConnection;if(this._peerConnection=F,C)return;const B=N=>{const S=(0,u.default)(),X={timeStamp:S,duration:Math.round((S-this._creationTime)/1e3),period:Math.round((S-this.prevStats.timeStamp)/1e3)};(0,d.default)(this._peerConnection,this.prevStats,X,this._isPublisher,(J,E)=>{if(J){f.error("Failed to Parse QOS Stats:",J);return}this.handleParsedStats(E),clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>B(p.INTERVAL),N)})};this.timeoutId=setTimeout(()=>B(p.INTERVAL-p.INITIAL_INTERVAL),p.INITIAL_INTERVAL)},y.stopCollecting=function(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null),this._peerConnection=null},y.handleOfferMessageReceived=function(){this.offerMessagesReceived+=1},y.handleParsedStats=function(F){Object.keys(this.changeCounters).forEach(B=>{this.changeCounters[B].onValue(F[B]),F[`${B}ChangeCount`]=this.changeCounters[B].changeCount}),F.offerMessagesReceived=this.offerMessagesReceived;const R=(0,s.default)(F);if(["audioSentBytes","audioSentPackets","audioSentPacketsLost","videoSentBytes","videoSentPackets","videoSentPacketsLost","audioRecvBytes","audioRecvPackets","audioRecvPacketsLost","videoRecvBytes","videoRecvPackets","videoRecvPacketsLost"].forEach(B=>{R[B]=this.prevStats&&this.prevStats[B]?F[B]-this.prevStats[B]:F[B]}),this.prevStats&&this.prevStats.videoFramesReceived){const B=F.videoFramesReceived-this.prevStats.videoFramesReceived,N=F.period;R.videoFrameRateReceived=Math.round(B/N)}this.prevStats=F,delete R.framesDecoded,delete R.framesEncoded,this.emit("stats",R)},p}(l.EventEmitter);g.INITIAL_INTERVAL=1e3,g.INTERVAL=3e4;var A=g;r.default=A},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{switch(o>>24){case 0:return"TURN/TLS";case 1:return"TURN/TCP";case 2:return"TURN/UDP";default:return""}};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=c;var o=a(i(16)),l=a(i(14)),s=a(i(8)),d=a(i(165));function c(u){let h=u===void 0?{}:u,f=h.haveGetDisplayMedia,g=f===void 0?d.default:f,A=h.global,b=A===void 0?typeof window!==void 0?window:yr:A,p=h.Errors,y=p===void 0?s.default:p,m=h.otError,F=m===void 0?(0,l.default)():m;const R=!g&&!!b.navigator.webkitGetUserMedia&&!b.navigator.userAgent.match(/android/i)&&typeof b.chrome<"u";return{isSupportedInThisBrowser:R,autoRegisters:!1,extensionRequired:!0,getConstraintsShowsPermissionUI:!0,sources:{screen:!0,application:!1,window:!0,browser:!0},register(C,B){return B===2?this.registerVersion2(C):this.registerVersion1(C)},registerVersion1(C){if(!C)throw new Error("initChromeScreenSharingExtensionHelper: extensionID is required.");const B=R,N={};let S;const X=`com.tokbox.screenSharing.${C}`,J=function(K,Fe){const z={payload:Fe,from:"jsapi"};return z[X]=K,z},E=function(K,Fe){let z;const q=(0,o.default)();return N[q]=function(){clearTimeout(z),z=null,K(...arguments)},Fe&&(z=setTimeout(()=>{delete N[q],K(F(y.TIMEOUT,new Error("Timeout waiting for response to screensharing request.")))},Fe)),q},v=function(K){if(!K)throw new Error("isAvailable: callback is required.");if(!B){setTimeout(K.bind(null,!1));return}if(S!==void 0)setTimeout(K.bind(null,S));else{const Fe=E(q=>{S!==!0&&(S=q==="extensionLoaded"),K(S)},2e3),z=J("isExtensionInstalled",{requestId:Fe});b.postMessage(z,"*")}},j=function(K,Fe,z){if(!z)throw new Error("getSourceId: callback is required");v(q=>{if(!q)return z(F(y.SCREEN_SHARING_EXTENSION_NOT_INSTALLED,new Error("Extension is not installed")));const Ae=E((Ke,pe)=>{typeof Ke=="object"&&Ke.name&&Ke.stack?z(Ke):Ke==="permissionDenied"?z(F(y.USER_MEDIA_ACCESS_DENIED,new Error("User denied access to screensharing"))):(Fe.video||(Fe.video={}),Fe.video.mandatory||(Fe.video.mandatory={}),Fe.video.mandatory.chromeMediaSource="desktop",Fe.video.mandatory.chromeMediaSourceId=pe.sourceId,z(void 0,Fe))});b.postMessage(J("getSourceId",{requestId:Ae,source:K}),"*")})};return b.addEventListener("message",H=>{if(H.origin!==b.location.origin||!(H.data!=null&&typeof H.data=="object")||H.data.from!=="extension")return;const K=H.data[X],Fe=H.data.payload;if(Fe&&Fe.requestId){const z=N[Fe.requestId];delete N[Fe.requestId],z&&z(K,Fe)}K==="extensionLoaded"&&(S=!0)}),{extensionAPIVersion:1,extensionID:C,isInstalled:v,getConstraints:j}},registerVersion2(C){const B=R&&typeof b.chrome.runtime<"u",N=function(J){if(!J)throw new Error("isAvailable: callback is required.");if(!B){setTimeout(J.bind(null,!1));return}b.chrome.runtime.sendMessage(C,{type:"isInstalled"},null,E=>{setTimeout(J.bind(null,!!E))})};return{extensionAPIVersion:2,extensionID:C,isInstalled:N,getConstraints:function(J,E,v){if(!v)throw new Error("getSourceId: callback is required");N(j=>{if(!j)return v(F(y.SCREEN_SHARING_EXTENSION_NOT_INSTALLED,new Error("Extension is not installed")));b.chrome.runtime.sendMessage(C,{type:"getSourceId",source:J},null,H=>{H.error==="permissionDenied"?v(F(y.USER_MEDIA_ACCESS_DENIED,new Error("User denied access to screensharing"))):H.error?v(new Error(`UnexpectError: ${H.error}`)):(E.video||(E.video={}),E.video.mandatory||(E.video.mandatory={}),E.video.mandatory.chromeMediaSource="desktop",E.video.mandatory.chromeMediaSourceId=H.sourceId,v(void 0,E))})})}}}}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=m;var l=o(i(1)),s=o(i(109)),d=o(i(162)),c=o(i(654)),u=o(i(302)),h=o(i(152)),f=o(i(303)),g=o(i(153)),A=o(i(304)),b=o(i(305)),p=o(i(306)),y=o(i(158));function m(F){F===void 0&&(F={});const R=F.Archiving||c.default,C=F.AudioLevelMeter||u.default,B=F.AudioLevelTransformer||h.default,N=F.BackingBar||f.default,S=F.Chrome||g.default,X=F.MuteButton||(0,A.default)(),J=F.NamePanel||b.default,E=F.VideoDisabledIndicator||p.default,v=F.StylableComponent||y.default,j=F.logging||(0,l.default)("createChromeMixin");return function(K,Fe){let z=Fe===void 0?{}:Fe,q=z.name,Ae=z.publishAudio,Ke=z.publishVideo,pe=z.audioSource,We=z.showControls,xe=z.shouldAllowAudio,$e=z.logAnalyticsEvent,Rt,Be,qe;const at={},Bt=(0,d.default)(),jt=ve=>{if(ve===!1)return"off";const Ye=K.getStyle("buttonDisplayMode");return Ye===!1?"on":Ye};let Ne=new a((ve,Ye)=>{at.init=it=>{K.getStyle("showArchiveStatus")||$e("showArchiveStatus","createChrome",{mode:"off"});const Qt={backingBar:new N({nameMode:q?K.getStyle("nameDisplayMode"):"off",muteMode:jt(K.getStyle("buttonDisplayMode"))}),name:new J({name:q,mode:K.getStyle("nameDisplayMode")}),archive:new R({show:!!K.getStyle("showArchiveStatus")&&K.getStyle("archiveStatusDisplayMode")!=="off",archiving:!1}),muteButton:new X({muted:Ae===!1,mode:jt.call(null,K.getStyle("buttonDisplayMode"))})};Rt=new C({mode:K.getStyle("audioLevelDisplayMode")});const _t=new B,Dt=new s.default(()=>{const Ee=Ae?_t.transform(K.loudness):0;Rt.setValue(Ee)});Rt.watchVisibilityChanged(Ee=>{Ee?Dt.start():Dt.stop()}),Rt.audioOnly(!Ke&&Ae),Qt.audioLevel=Rt,Qt.videoDisabledIndicator=new E({mode:K.getStyle("videoDisabledDisplayMode")}),it&&it.domElement&&(qe=it,Be=new S({parent:qe.domElement}).set(Qt).on({muted:()=>K.publishAudio(!1),unmuted:()=>K.publishAudio(!0)}),(pe===null||pe===!1)&&at.removeAudioTrack(),ve())},at.reset=()=>{Ye(new Error("Chrome still being created")),Be&&(Be.destroy(),Be=null)},at.destroy=()=>{at.reset(),Bt.releaseAll(),Ne=null}});Ne.catch(ve=>{(!ve||ve.message!=="Chrome still being created")&&j.error("createChromeMixin failed to setup UI",ve)}),at.setAudioOnly=ve=>{Rt&&Rt.audioOnly(ve)},at.setArchivingStatus=ve=>{Be&&Be.archive.setArchiving(ve)},at.setMuted=ve=>{Be&&Be.muteButton&&Be.muteButton.muted(ve)},at.removeAudioTrack=()=>{Be&&Be.muteButton&&Be.muteButton.remove()},at.addAudioTrack=()=>{Be&&Be.muteButton&&Be.muteButton.add()},at.videoDisabledIndicator={disableVideo:function(){for(var Ye,it=arguments.length,Qt=new Array(it),_t=0;_t<it;_t++)Qt[_t]=arguments[_t];return(Ye=Be)==null?void 0:Ye.videoDisabledIndicator.disableVideo(...Qt)},setWarning:function(){for(var Ye,it=arguments.length,Qt=new Array(it),_t=0;_t<it;_t++)Qt[_t]=arguments[_t];return(Ye=Be)==null?void 0:Ye.videoDisabledIndicator.setWarning(...Qt)}},v(K,{showArchiveStatus:!0,nameDisplayMode:"auto",buttonDisplayMode:"auto",videoDisabledDisplayMode:"auto",audioLevelDisplayMode:xe?"auto":"off",archiveStatusDisplayMode:"auto",backgroundImageURI:null},We,ve=>{$e("SetStyle","Publisher",ve,null,.1)});const Je=(ve,Ye)=>{Ne.then(()=>{switch(ve){case"nameDisplayMode":Be.name.setDisplayMode(Ye),Be.backingBar.setNameMode(Ye);break;case"showArchiveStatus":$e("showArchiveStatus","styleChange",{mode:Ye?"on":"off"}),Be.archive.setShowArchiveStatus(!!Ye);break;case"archiveStatusDisplayMode":Be.archive.setShowArchiveStatus(Ye!=="off");break;case"buttonDisplayMode":Be.muteButton.setDisplayMode(Ye),Be.backingBar.setMuteMode(Ye);break;case"audioLevelDisplayMode":Be.audioLevel.setDisplayMode(Ye);break;case"backgroundImageURI":qe.setBackgroundImageURI(Ye);break}})};return K.on("styleValueChanged",Je),Bt.add(()=>K.off("styleValueChanged",Je)),at}}}).call(this,i(2))},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=u;var l=o(i(12)),s=o(i(105)),d=o(i(41)),c=o(i(7));function u(h){const f=this,g=new l.default;let A,b,p,y,m=!0,F=!1,R="auto";const C=h.maxValue||1,B=h.minValue||0;function N(){b=c.default.createElement("div",{className:"OT_audio-level-meter__value"},""),A=c.default.createElement("div",{className:"OT_audio-level-meter__audio-only-img"},"");const v=f.domElement;v.appendChild(A),v.appendChild(b),f.watchVisibilityChanged(j=>{j?c.default.removeClass(f.domElement,"OT_hide-forced"):c.default.addClass(f.domElement,"OT_hide-forced")})}function S(){g.removeAllListeners("visibilityChanged")}function X(){const v=(p-B)/(C-B);b.style.transform=`scale(${Math.sqrt(v)})`}function J(){const v=(F&&R==="auto"||R==="on")&&m;y!==v&&(y=v,g.emit("visibilityChanged",v))}(0,s.default)(f,{audioOnly:{get(){return F},set(v){F=v,J()}}}),f.setValue=function(v){p=v,X()},f.watchVisibilityChanged=function(v){return g.on("visibilityChanged",v),a.resolve().then(()=>{v(y)}),function(){g.removeListener("visibilityChanged",v)}};const E={mode:h?h.mode:"auto",nodeName:"div",htmlAttributes:{className:"OT_audio-level-meter"},onCreate:N,onDestroy:S};(0,d.default)(this,E),f.setDisplayMode=function(v){R=v,J()},f.getDisplayMode=function(){return R},f.showAfterLoading=function(){m=!0,J()},f.hideWhileLoading=function(){m=!1,J()},J()}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(41));function l(s){let d=s.nameMode,c=s.muteMode;function u(){return d==="on"||c==="on"?"on":d==="mini"||c==="mini"?"mini":d==="mini-auto"||c==="mini-auto"?"mini-auto":d==="auto"||c==="auto"?"auto":"off"}(0,o.default)(this,{mode:u(),nodeName:"div",htmlContent:"",htmlAttributes:{className:"OT_bar OT_edge-bar-item"}}),this.setNameMode=function(h){d=h,this.setDisplayMode(u())},this.setMuteMode=function(h){c=h,this.setDisplayMode(u())}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(7)),l=a(i(41)),s=a(i(105));function d(c){c===void 0&&(c={});const u=c.OTHelpers||o.default,h=c.Widget||l.default;return function(g){let A=g.muted||!1;const b=()=>{A?u.addClass(this.domElement,"OT_active"):u.removeClass(this.domElement,"OT_active ")},p=()=>(A=!A,b(),A?this.parent.trigger("muted",this):this.parent.trigger("unmuted",this),!1),y=C=>{u.on(C,"click",p)},m=C=>{u.off(C,"click",p)};(0,s.default)(this,{muted:{get(){return A},set(C){A=C,b()}}});const F=A?"OT_edge-bar-item OT_mute OT_active":"OT_edge-bar-item OT_mute";h(this,{mode:g.mode,nodeName:"button",htmlContent:"Mute",htmlAttributes:{className:F,type:"button"},onCreate:y,onDestroy:m});let R;this.remove=()=>{this.domElement&&this.domElement.parentNode&&(R=this.domElement.parentNode,this.domElement.parentNode.removeChild(this.domElement))},this.add=()=>{R&&this.domElement&&!this.domElement.parentNode&&R.appendChild(this.domElement)}}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(41));const l=d=>{const c=document.createElement("div");return c.textContent=d,c.innerHTML};function s(d){let c=d.name;(!c||c.trim().length==="")&&(c=null,d.mode="off"),this.setName=(function(u){c||this.setDisplayMode("auto"),c=l(u),this.domElement.innerHTML=c}).bind(this),c=l(c),(0,o.default)(this,{mode:d.mode,nodeName:"h1",htmlContent:c,htmlAttributes:{className:"OT_name OT_edge-bar-item"}})}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(41)),l=a(i(7));function s(d){let c=!1,u=!1;const h=(function(g){const A=["auto","on"].indexOf(this.getDisplayMode())>-1;l.default.removeClass(g,"OT_video-disabled OT_video-disabled-warning OT_active"),A&&(c?l.default.addClass(g,"OT_video-disabled"):u&&l.default.addClass(g,"OT_video-disabled-warning"),l.default.addClass(g,"OT_active"))}).bind(this);this.disableVideo=function(g){c=g,g===!0&&(u=!1),h(this.domElement)},this.setWarning=function(g){u=g,h(this.domElement)},(0,o.default)(this,{mode:d.mode||"auto",nodeName:"div",htmlAttributes:{className:"OT_video-disabled-indicator"}});const f=this.setDisplayMode.bind(this);this.setDisplayMode=function(g){f(g),h(this.domElement)}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(165)),d={isSupportedInThisBrowser:!o.default.isLegacyEdge&&!o.default.isElectron&&l.default&&!o.default.isAndroid,autoRegisters:!0,extensionRequired:!1,getConstraintsShowsPermissionUI:!1,sources:{screen:!0,application:!1,window:o.default.name!=="Safari",browser:o.default.name!=="Safari"},register(){return{isInstalled(c){c(void 0)},getConstraints(c,u,h){h(void 0,{video:u.video,audio:u.audio})}}}};r.default=d},function(n,r,i){i.r(r),(function(a){var o=function(u,h,f,g){return new(f||(f=a))(function(A,b){function p(F){try{m(g.next(F))}catch(R){b(R)}}function y(F){try{m(g.throw(F))}catch(R){b(R)}}function m(F){F.done?A(F.value):new f(function(R){R(F.value)}).then(p,y)}m((g=g.apply(u,[])).next())})},l=function(u,h){var f={label:0,sent:function(){if(b[0]&1)throw b[1];return b[1]},trys:[],ops:[]},g,A,b,p;return p={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(p[Symbol.iterator]=function(){return this}),p;function y(F){return function(R){return m([F,R])}}function m(F){if(g)throw new TypeError("Generator is already executing.");for(;f;)try{if(g=1,A&&(b=A[F[0]&2?"return":F[0]?"throw":"next"])&&!(b=b.call(A,F[1])).done)return b;switch(A=0,b&&(F=[0,b.value]),F[0]){case 0:case 1:b=F;break;case 4:return f.label++,{value:F[1],done:!1};case 5:f.label++,A=F[1],F=[0];continue;case 7:F=f.ops.pop(),f.trys.pop();continue;default:if(b=f.trys,!(b=b.length>0&&b[b.length-1])&&(F[0]===6||F[0]===2)){f=0;continue}if(F[0]===3&&(!b||F[1]>b[0]&&F[1]<b[3])){f.label=F[1];break}if(F[0]===6&&f.label<b[1]){f.label=b[1],b=F;break}if(b&&f.label<b[2]){f.label=b[2],f.ops.push(F);break}b[2]&&f.ops.pop(),f.trys.pop();continue}F=h.call(u,f)}catch(R){F=[6,R],A=0}finally{g=b=0}if(F[0]&5)throw F[1];return{value:F[0]?F[1]:void 0,done:!0}}};function s(){return typeof window<"u"||typeof window!==void 0?window:yr}var d="onFailure must return boolean, or delay in ms";function c(u,h,f){return f===void 0&&(f=10),function(){for(var g=[],A=0;A<arguments.length;A++)g[A]=arguments[A];return o(this,void 0,void 0,function(){var b,p,y;return l(this,function(m){switch(m.label){case 0:b=0,p=function(){var F,R,C;return l(this,function(B){switch(B.label){case 0:return B.trys.push([0,2,,6]),F={},[4,u.apply(void 0,g)];case 1:return[2,(F.value=B.sent(),F)];case 2:if(R=B.sent(),C=h(R,b),C===!1||C==null||b>=f)throw R;return typeof C!="number"?[3,4]:[4,new a(function(N){return s().setTimeout(N,C)})];case 3:return B.sent(),[3,5];case 4:if(C!==!0)throw new Error(d);B.label=5;case 5:return[3,6];case 6:return[2]}})},m.label=1;case 1:return(b+=1)?[5,p()]:[3,3];case 2:return y=m.sent(),typeof y=="object"?[2,y.value]:[3,1];case 3:return[2]}})})}}r.default=c}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.setVideoContentHint=r.isValidVideoContentHint=r.getVideoContentHint=void 0;var o=a(i(1));const l=(0,o.default)("videoContentHint"),s=["","text","motion","detail"],d=f=>s.includes(f);r.isValidVideoContentHint=d;const c=f=>{var g;return f==null||(g=f.getVideoTracks())==null?void 0:g[0]},u=(f,g)=>{if(!d(g)){l.warn('Invalid content hint. Valid content hints are "text", "detail", "motion", or ""');return}const A=c(f);if(!A){l.warn("Tried to set contentHint but no video track is present");return}if(A.contentHint===void 0){l.warn("contentHint not supported by this browser");return}A.contentHint=g};r.setVideoContentHint=u;const h=f=>{const g=c(f);return(g==null?void 0:g.contentHint)||""};r.getVideoContentHint=h},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=l=>l&&typeof l=="object"&&typeof l.kind=="string"&&typeof l.stop=="function"&&typeof l.enabled=="boolean";r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(105));function l(){return function(d,c){let u;(0,o.default)(this,{muted:{get(){return u},set(h){if(u===h)return;u=h;const f=d.getAudioTracks();for(let g=0,A=f.length;g<A;++g)f[g].enabled=!u}}}),c!==void 0?this.muted(c===!0):d.getAudioTracks().length?this.muted(!d.getAudioTracks()[0].enabled):this.muted(!1)}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=H;var l=o(i(4)),s=o(i(5)),d=o(i(9)),c=o(i(40)),u=o(i(62)),h=o(i(664)),f=o(i(665)),g=o(i(672)),A=o(i(1)),b=o(i(6)),p=o(i(316)),y=o(i(317)),m=o(i(677)),F=o(i(77)),R=o(i(7)),C=o(i(74)),B=o(i(169)),N=o(i(679)),S=i(25),X=o(i(76)),J=o(i(680));const E=X.default.ACTIVE_VIDEO,v=X.default.SUSPENDED_VIDEO,j=(0,A.default)("PublisherPeerConnection");function H(K){K===void 0&&(K={});const Fe=K.getStatsHelpers||F.default,z=K.OTHelpers||R.default,q=K.PeerConnection||(0,C.default)(),Ae=K.setCertificates||(0,B.default)(),Ke=K.watchAudioAcquisition||N.default,pe=K.createAudioFallbackStateMachine||h.default,We=K.createCongestionLevelEstimator||f.default,xe=K.createNetworkQualityMonitor||g.default,$e=K.getDelayForAmrProbe||J.default;return function(Be){var qe=this;let at=Be.iceConfig,Bt=Be.webRTCStream,jt=Be.channels,Ne=Be.sendMessage,Je=Be.capableSimulcastStreams,ve=Be.overrideSimulcastEnabled,Ye=Be.logAnalyticsEvent,it=Be.offerOverrides,Qt=Be.answerOverrides,_t=Be.sourceStreamId,Dt=Be.isP2pEnabled,Ee=Be.sessionId,Ge=Be.keyStore,he=Be.sFrameClientStore,$=Be.isE2ee,ie=Be.audioFallbackEnabled,Ve,_e=!1,we,nt,Gt,An;const Dn=function(){this.destroy(),_e&&(_e=!1,this.trigger("iceRestartFailure")),this.trigger("disconnected")},tr=function(hr){let xr=hr.reason,Hi=hr.prefix;this.trigger("error",{reason:xr,prefix:Hi})},nr=function(hr){_e&&Ve.iceConnectionStateIsConnected()&&(_e=!1,this.trigger("iceRestartSuccess")),hr==="connected"&&(z.env.name==="Chrome"&&(we&&we(),we=Ke(xr=>Ve.getStats(null,xr),()=>{Ve.iceConnectionStateIsConnected()&&this.trigger("audioAcquisitionProblem")})),this.trigger("connected")),this.trigger("iceConnectionStateChange",hr)};this._setVideoTrackEncodingActiveState=function(){var Pn=(0,s.default)(l.default.mark(function hr(xr){var Hi,Di;return l.default.wrap(function(oi){for(;;)switch(oi.prev=oi.next){case 0:return Hi=qe.getSenders().find(Ra=>Ra.track.kind==="video"),Di=Hi.getParameters(),Di.encodings.forEach(Ra=>{Ra.active=xr}),oi.prev=3,oi.next=6,Hi.setParameters(Di);case 6:oi.next=11;break;case 8:oi.prev=8,oi.t0=oi.catch(3),j.error(oi.t0);case 11:case"end":return oi.stop()}},hr,null,[[3,8]])}));return function(hr){return Pn.apply(this,arguments)}}(),(0,b.default)(this),this.setCongestionLevel=Pn=>{var hr;(hr=nt)==null||hr.setCongestionLevel(Pn,{algorithm:"manual"})},this.getAudioFallbackState=()=>{var Pn;return(Pn=nt)==null?void 0:Pn.getState()},this.startEncryption=Pn=>{Ve&&Ve.startEncryption(Pn)},this.changeMediaDirectionToInactive=()=>{Ve&&Ve.changeMediaDirectionToInactive()},this.changeMediaDirectionToRecvOnly=()=>{Ve&&Ve.changeMediaDirectionToRecvOnly()},this.getDataChannel=function(Pn,hr,xr){Ve.getDataChannel(Pn,hr,xr)},this.getSourceStreamId=()=>Ve.getSourceStreamId(),this.destroy=function(){var Pn,hr;(Pn=Gt)==null||Pn.stop(),(hr=An)==null||hr.stop(),we&&(we(),we=null),Ve&&(Ve.disconnect(),Ve=null),this.off()},this.processMessage=function(Pn,hr){Ve.processMessage(Pn,hr)},this.addTrack=function(Pn,hr,xr){return Ve.addTrack(Pn,hr,xr)},this.removeTrack=function(Pn){return Ve.removeTrack(Pn)},this.getLocalStreams=function(){return Ve.getLocalStreams()},this.init=function(Pn,hr){(0,p.default)(_t)&&(0,y.default)(at);const xr={iceConfig:at.needRumorIceServersFallback?(0,d.default)(at,{servers:[...Pn,...at.servers]}):at,channels:jt,capableSimulcastStreams:Je,overrideSimulcastEnabled:ve};Ae(xr,(Hi,Di)=>{if(Hi){hr(Hi);return}const Da=(0,d.default)({logAnalyticsEvent:Ye,isPublisher:!0,offerOverrides:it,answerOverrides:Qt,sourceStreamId:_t,p2p:Dt,sessionId:Ee,keyStore:Ge,sFrameClientStore:he,isE2ee:$},Di);Ve=new q((0,d.default)({sendMessage:Ne},Da)),Ve.on({close:Dn,error:tr,qos:oi=>this.trigger("qos",oi),iceConnectionStateChange:nr},this),Ve.addLocalStream(Bt).then(()=>{hr(void 0)}).catch(hr)})},this.setIceConfig=Pn=>{Ve.setIceConfig(Pn)},this.generateOffer=()=>{Ve.generateOfferAndSend()},this.getSenders=function(){return Ve.getSenders()},this.iceRestart=function(){Ve&&(_e=!0,Ve.iceRestart())},this.hasRelayCandidates=()=>Ve.hasRelayCandidates(),this.iceConnectionStateIsConnected=function(){return Ve.iceConnectionStateIsConnected()},this.findAndReplaceTrack=(Pn,hr)=>Ve.findAndReplaceTrack(Pn,hr),this._testOnlyGetFramesEncoded=()=>new a((Pn,hr)=>{Ve.getStats(null,(xr,Hi)=>{if(xr){hr(xr);return}const Di=(0,u.default)(Hi,Da=>Fe.isVideoStat(Da,Hi)&&Fe.isOutboundStat(Da));if(!Di){hr(new Error("Could not find framesEncoded in getStats report"));return}Pn((0,c.default)(Di,["timestamp","framesEncoded"]))})}),this.getStats=Pn=>Ve.getStats(null,Pn),this.getRtcStatsReport=Pn=>Ve.getRtcStatsReport(null,Pn),this.setVideoActiveState=Pn=>{this._setVideoTrackEncodingActiveState(Pn)},this.setP2PMaxBitrate=(0,s.default)(l.default.mark(function Pn(){var hr,xr,Hi,Di,Da,oi,Ra;return l.default.wrap(function(fi){for(;;)switch(fi.prev=fi.next){case 0:if(qe.getSourceStreamId()==="P2P"){fi.next=2;break}return fi.abrupt("return");case 2:if(xr=qe.getSenders().find(_a=>_a.track.kind==="video"),xr){fi.next=5;break}return fi.abrupt("return");case 5:return Hi=(xr==null||(hr=xr.track)==null||hr.getSettings==null?void 0:hr.getSettings())||{},Di=Hi.width,Da=Hi.height,oi=(0,m.default)(Di,Da),Ra=xr.getParameters(),Ra.encodings.forEach(_a=>{_a.maxBitrate=oi}),fi.prev=9,fi.next=12,xr.setParameters(Ra);case 12:fi.next=16;break;case 14:fi.prev=14,fi.t0=fi.catch(9);case 16:case"end":return fi.stop()}},Pn,null,[[9,14]])}));const zn=function(hr){var xr,Hi;let Di=hr===void 0?{}:hr,Da=Di.isAmrTransition,oi=Da===void 0?!1:Da;qe._setVideoTrackEncodingActiveState(!1),(xr=Gt)==null||xr.stop(),(Hi=An)==null||Hi.start(oi?{getDelayForProbeNumber:$e}:{})};this.disableCongestionLevelEstimation=()=>{if(ie){var Pn,hr,xr;(Pn=Gt)==null||Pn.stop(),(hr=An)==null||hr.stop(),(xr=nt)==null||xr.reset()}},this.enableCongestionLevelEstimation=Pn=>{if(ie){var hr,xr;if((hr=An)==null||hr.stop(),Pn){if(nt.setInternalState(Pn),Pn.videoState===v){zn({isAmrTransition:!0});return}}else nt.setCongestionLevel(S.CongestionLevels.LOW);(xr=Gt)==null||xr.start()}};const dr=()=>{nt=pe({logAnalyticsEvent:Ye}),nt.on("stateChange",Pn=>{let hr=Pn.state;switch(hr){case E:this._setVideoTrackEncodingActiveState(!0);break;case v:zn();break}this.trigger("audioFallbackStateChange",{state:hr})}),Gt.on("congestionLevel",(Pn,hr)=>{var xr;(xr=nt)==null||xr.setCongestionLevel(Pn,hr)}),An.on("networkRecovered",()=>{var Pn,hr;(Pn=nt)==null||Pn.setCongestionLevel(S.CongestionLevels.LOW),(hr=Gt)==null||hr.start()})},Dr=()=>{Gt=We({getStats:this.getStats,logAnalyticsEvent:Ye}),this.on("connected",()=>{Gt.start()})};ie&&((()=>{An=xe({getStats:this.getStats,setVideoActive:this._setVideoTrackEncodingActiveState})})(),Dr(),dr())}}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(12)),l=d(i(669));function s(g){if(typeof WeakMap!="function")return null;var A=new WeakMap,b=new WeakMap;return(s=function(y){return y?b:A})(g)}function d(g,A){if(g&&g.__esModule)return g;if(g===null||typeof g!="object"&&typeof g!="function")return{default:g};var b=s(A);if(b&&b.has(g))return b.get(g);var p={},y=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var m in g)if(m!=="default"&&Object.prototype.hasOwnProperty.call(g,m)){var F=y?Object.getOwnPropertyDescriptor(g,m):null;F&&(F.get||F.set)?Object.defineProperty(p,m,F):p[m]=g[m]}return p.default=g,b&&b.set(g,p),p}const c=1e3,u=500;var f=function(A,b){b===void 0&&(b={});const p=b.StatsUtils||l,y=new o.default;let m,F;const R=()=>{m=void 0,F=void 0},C=J=>{m===void 0&&(m=J);let E;return J.audioReportTimestamp!==m.audioReportTimestamp&&(J.audioFractionLost!==void 0?E=J.audioFractionLost:E=p.getAudioPacketLoss(J,m),m=J),E},B=J=>{F===void 0&&(F=J);let E;return J.videoReportTimestamp!==F.videoReportTimestamp&&(E=p.getVideoPacketLoss(J,F),F=J),E},N=J=>{const E=p.parseStats(J),v=C(E),j=B(E),H=E.bandwidth,K=E.videoResolution;y.emit("statsAvailable",{audioPacketLoss:v,videoPacketLoss:j,bandwidth:H,videoResolution:K})},S=()=>{A((J,E)=>{J||N(E)})};let X;return Object.assign(y,{start(){X||(X=setTimeout(()=>{S(),X=setInterval(()=>{S()},u)},c))},stop(){clearInterval(X),X=void 0,R()}})};r.default=f},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=function(s){s===void 0&&(s=0);let d=s,c=1e4,u,h=0;const f=()=>{const g=Date.now();if(!u)return u=g,1;const A=g-u,b=1-Math.exp(-A/c);return u=g,b};return{setPeriod(g){c=g},getMovingAverageValue(){return d},addValue(g){if(g===void 0||isNaN(g))return;const A=f();d=g*A+d*(1-A),h+=1},reset(){d=s,u=void 0,h=0},getDataPointCount(){return h}}};r.default=o},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=i(110);const o=30*a.ONE_SECOND_IN_MS,l=2*a.ONE_MINUTE_IN_MS,s=[o,a.ONE_MINUTE_IN_MS,l];var c=u=>{var h;return(h=s[u])!=null?h:s[s.length-1]};r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(676)),l=s=>s!=="P2P"?!1:(0,o.default)();r.default=l},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{o.transportPolicy="relay",o.customServers=o.customServers||[]};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=y;var o=a(i(9)),l=a(i(6)),s=a(i(10)),d=a(i(23)),c=a(i(316)),u=a(i(317)),h=a(i(7)),f=a(i(74)),g=a(i(681)),A=a(i(169)),b=a(i(8)),p=a(i(683));function y(m){m===void 0&&(m={});const F=m.OTHelpers||h.default,R=m.PeerConnection||(0,f.default)(),C=m.SinglePeerConnectionAdapter||(0,g.default)(),B=m.setCertificates||(0,A.default)(),N=m.Errors||b.default,S=m.ExceptionCodes||s.default,X=m.OTErrorClass||d.default,J=m.watchSubscriberAudio||p.default;return function(v){let j=v.clientCandidates,H=v.iceConfig,K=v.send,Fe=v.logAnalyticsEvent,z=v.p2p,q=v.codecFlags,Ae=v.sourceStreamId,Ke=v.remoteConnectionId,pe=v._singlePeerConnectionController,We=v.keyStore,xe=v.sFrameClientStore,$e=v.isE2ee,Rt=v.sessionId;const Be=this;let qe,at=!1,Bt=!1,jt=null;const Ne=!!pe,Je=[],ve=[],Ye=function(){this.destroy(),Bt&&this.trigger("iceRestartFailure",this),this.trigger("disconnected",this)},it=nt=>{const Gt=nt.kind==="video"?Je:ve;Gt.includes(nt)||Gt.push(nt)},Qt=nt=>{let Gt=nt.track,An=nt.transceiver,Dn=nt.stream;it(Gt),this.trigger("remoteTrackAdded",Dn,this),$e&&qe.startDecryption(Ke,An)},_t=nt=>{this.trigger("remoteVideoSupported",nt)},Dt=()=>{this.trigger("decryptFailed")},Ee=()=>{this.trigger("decryptRestored")},Ge=function(Gt){let An=Gt.reason,Dn=Gt.prefix;this.trigger("error",null,An,this,Dn)},he=function(Gt){Bt&&(Gt==="connected"||Gt==="completed")&&(Bt=!1,this.trigger("iceRestartSuccess")),Gt==="connected"&&this.trigger("connected"),this.trigger("iceConnectionStateChange",Gt)},$=function(Gt){this.trigger("signalingStateChange",Gt)},ie=function(Gt){this.trigger("signalingStateStable",Gt)},Ve=(nt,Gt,An)=>{(nt==="answer"||nt==="pranswer")&&this.trigger("connected"),K({type:nt,content:Gt},An)},_e=nt=>{var Gt;const An=ve[0];(Gt=qe)==null||Gt.getStats(An,nt)};(0,l.default)(this),this._hasAudioTracks=()=>ve.length>0,this._hasVideoTracks=()=>Je.length>0,this._getVideoTracks=()=>Je,this._getAudioTracks=()=>ve,this._getTracks=()=>[...ve,...Je],this.close=function(){at||(at=!0,qe&&(qe.disconnect(),qe=null),this.off())},this.destroy=function(){this.stopAudioStatsWatcher(),!at&&this.close()},this.getDataChannel=function(nt,Gt,An){qe.getDataChannel(nt,Gt,An)},this.getSourceStreamId=()=>qe.getSourceStreamId(),this.processMessage=function(nt,Gt){qe.processMessage(nt,Gt)},this.remoteDescription=function(){return qe.remoteDescription()},this.getStats=function(nt){if(qe)qe.getStats(null,nt);else{const Gt=S.PEER_CONNECTION_NOT_CONNECTED;nt(new F.Error(X.getTitleByCode(Gt),N.PEER_CONNECTION_NOT_CONNECTED,{code:Gt}))}},this.getAudioStats=function(nt){_e(nt)},this.getSynchronizationSources=function(nt){if(!qe){const Gt=S.PEER_CONNECTION_NOT_CONNECTED;nt(new F.Error(X.getTitleByCode(Gt),N.PEER_CONNECTION_NOT_CONNECTED,{code:Gt}));return}qe.getSynchronizationSources(nt)},this.getRtcStatsReport=function(nt){if(qe)qe.getRtcStatsReport(null,(Gt,An)=>{An instanceof RTCStatsReport||Object.getPrototypeOf(An).toString().includes("RTCStatsReport")?nt(Gt,new Map([...An])):nt(Gt,An)});else{const Gt=S.PEER_CONNECTION_NOT_CONNECTED;nt(new F.Error(X.getTitleByCode(Gt),N.PEER_CONNECTION_NOT_CONNECTED,{code:Gt}))}},this.setIceConfig=nt=>{qe.setIceConfig(nt)},this.generateOffer=()=>{qe.generateOfferAndSend()},this.startAudioStatsWatcher=function(nt){jt||(jt=J(_e,Gt=>{this.stopAudioStatsWatcher(),this.trigger("audioLevelStuckWarning",Gt)},nt))},this.stopAudioStatsWatcher=function(){jt&&jt.stop(),jt=null};const we=function(Gt){return function(An){const Dn=Gt==="video"?Je:ve;qe&&qe.remoteTracks().forEach(tr=>{tr.kind===Gt&&tr.enabled!==An&&Dn.includes(tr)&&(tr.enabled=An)})}};this.subscribeToAudio=we("audio"),this.subscribeToVideo=we("video"),this.hasRelayCandidates=function(){return qe.hasRelayCandidates()},this.iceRestart=function(){return Bt=!0,qe.iceRestart()},this.iceConnectionStateIsConnected=function(){return qe.iceConnectionStateIsConnected()},this.init=function(nt){(0,c.default)(Ae)&&(0,u.default)(H),B({iceConfig:H},(An,Dn)=>{if(An){nt(An);return}const tr=(0,o.default)({logAnalyticsEvent:Fe,clientCandidates:j,codecFlags:q,sourceStreamId:Ae,keyStore:We,sFrameClientStore:xe,isE2ee:$e,sessionId:Rt},Dn),nr=(0,o.default)({sendMessage:Ve,p2p:z},tr,{remoteConnectionId:Ke});Ne?qe=new C(nr,pe):qe=new R(nr),qe.on({iceConnected:()=>Be.emit("iceConnected"),close:Ye,trackAdded:Qt,signalingStateChange:$,signalingStateStable:ie,error:Ge,qos:zn=>this.trigger("qos",zn),iceConnectionStateChange:he,remoteVideoSupported:_t,decryptFailed:Dt,decryptRestored:Ee},Be),!Ne&&qe.remoteTracks().length>0?qe.remoteStreams().forEach(zn=>{zn.getTracks().forEach(dr=>Qt({stream:zn,track:dr}))}):nt(void 0,Be)})}}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(166));function l(s){s===void 0&&(s={});const f=(s.generateSimpleStateMachine||(0,o.default)())("NotPublishing",["NotPublishing","GetUserMedia","BindingMedia","MediaBound","PublishingToSession","Publishing","Failed","Destroyed"],{NotPublishing:["NotPublishing","GetUserMedia","Destroyed"],GetUserMedia:["BindingMedia","Failed","NotPublishing","Destroyed"],BindingMedia:["MediaBound","Failed","NotPublishing","Destroyed"],MediaBound:["NotPublishing","PublishingToSession","Failed","Destroyed"],PublishingToSession:["NotPublishing","Publishing","Failed","Destroyed","MediaBound"],Publishing:["NotPublishing","MediaBound","Failed","Destroyed"],Failed:["Destroyed"],Destroyed:[]});return f.prototype.isDestroyed=function(){return this.current==="Destroyed"},f.prototype.isAttemptingToPublish=function(){return["GetUserMedia","BindingMedia","MediaBound","PublishingToSession"].indexOf(this.current)!==-1},f.prototype.isPublishing=function(){return this.current==="Publishing"},f}},function(n,r,i){Object.defineProperty(r,"__esModule",{value:!0}),r.default=a;function a(o){this.message=o||"Operation has been canceled.",this.name="CancellationError",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}a.prototype=Object.create(Error.prototype),a.prototype.constructor=a},function(n,r,i){var a=i(2);Object.defineProperty(r,"__esModule",{value:!0});function o(l,s){return a.resolve(l).then(d=>a.resolve(s()).then(()=>d),d=>a.resolve(s()).then(()=>a.reject(d)))}r.default=o},function(n,r,i){r.__esModule=!0,r.isAmrVideoBufferError=r.createAmrVideoBufferError=void 0;const a="bufferFailed: videoBuffer failed to load or timeout",o=s=>s.message===a;r.isAmrVideoBufferError=o;const l=()=>new Error(a);r.createAmrVideoBufferError=l},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=Mi;var l=o(i(4)),s=o(i(5)),d=o(i(693)),c=i(111),u=o(i(16)),h=o(i(12)),f=o(i(9)),g=o(i(143)),A=o(i(58)),b=o(i(271)),p=o(i(51)),y=o(i(296)),m=o(i(288)),F=o(i(694)),R=o(i(6)),C=o(i(1)),B=o(i(57)),N=o(i(3)),S=o(i(324)),X=o(i(284)),J=o(i(695)),E=o(i(696)),v=o(i(10)),j=o(i(23)),H=o(i(697)),K=o(i(29)),Fe=o(i(327)),z=o(i(14)),q=o(i(698)),Ae=o(i(8)),Ke=o(i(50)),pe=o(i(109)),We=o(i(699)),xe=o(i(172)),$e=o(i(700)),Rt=o(i(302)),Be=o(i(152)),qe=o(i(303)),at=o(i(153)),Bt=o(i(17)),jt=o(i(77)),Ne=o(i(701)),Je=o(i(328)),ve=o(i(702)),Ye=o(i(168)),it=o(i(304)),Qt=o(i(305)),_t=o(i(7)),Dt=o(i(158)),Ee=o(i(151)),Ge=o(i(74)),he=o(i(318)),$=o(i(329)),ie=o(i(306)),Ve=o(i(705)),_e=o(i(706)),we=o(i(707)),nt=o(i(330)),Gt=i(107),An=o(i(175)),Dn=o(i(708)),tr=o(i(176)),nr=i(322),zn=o(i(331)),dr=o(i(110)),Dr=o(i(325)),ui=o(i(710));const Pn=["AudioLevelMeter","AudioLevelTransformer","BackingBar","Chrome","env","Errors","Events","ExceptionCodes","audioLevelSamplerFactory","getStatsHelpers","hasAudioOutputLevelStatCapability","hasRemoteStreamsWithWebAudio","interpretPeerConnectionError","logging","MuteButton","NamePanel","otError","OTErrorClass","OTHelpers","StylableComponent","SubscriberPeerConnection","SubscribingState","VideoDisabledIndicator","AudioBlockedIndicator","VideoUnsupportedIndicator","watchFrameRate","createSendMethod","parseIceServers","document","WidgetView","createAudioConnector","ResizeObserverPolyfill","MediaStream","AMRStateDurations","createMOSScoreHelper"],hr=(0,xe.default)(),xr=(0,Bt.default)(),Hi=Ae.default,Di=(0,Ye.default)(),Da=(0,it.default)(),oi=(0,Ee.default)(typeof window!==void 0?window:yr),Ra=(0,Ge.default)({global:oi}),Va=(0,he.default)({PeerConnection:Ra}),fi=(0,C.default)("Subscriber"),_a=(0,z.default)(),dn=100,St=(Fi,In)=>Fi.connection.id===In.connection.id,mn=Fi=>{let In=Fi.apiKey,Fa=Fi.sessionId,Ml=Fi.streamId,hi=Fi.subscriberId;return["/v2/partner",In,"session",Fa,"stream",Ml,"subscriber",hi].join("/")},_n=(0,H.default)();function vr(Fi){return Math.max(0,Math.min(100,parseInt(Fi,10)))}function ha(Fi){return Fi.audioVolume!==void 0?Fi.audioVolume:Fi.subscribeToAudio===!1?0:dn}function Mi(Fi){Fi===void 0&&(Fi={});let In=Fi,Fa=In.AudioLevelMeter,Ml=Fa===void 0?Rt.default:Fa,hi=In.AudioLevelTransformer,ml=hi===void 0?Be.default:hi,$o=In.BackingBar,Qa=$o===void 0?qe.default:$o,Gl=In.Chrome,Gi=Gl===void 0?at.default:Gl,Lt=In.env,$t=Lt===void 0?N.default:Lt,At=In.Errors,bt=At===void 0?Hi:At,zt=In.Events,Ot=zt===void 0?xr:zt,Ct=In.ExceptionCodes,Kt=Ct===void 0?v.default:Ct,cn=In.audioLevelSamplerFactory,Jn=cn===void 0?ve.default:cn,qt=In.getStatsHelpers,Mn=qt===void 0?jt.default:qt,mr=In.hasAudioOutputLevelStatCapability,Ur=mr===void 0?Ne.default:mr,sr=In.hasRemoteStreamsWithWebAudio,Nn=sr===void 0?Je.default:sr,Gr=In.interpretPeerConnectionError,$r=Gr===void 0?Di:Gr,kr=In.logging,Mr=kr===void 0?fi:kr,Ba=In.MuteButton,Io=Ba===void 0?Da:Ba,qo=In.NamePanel,Si=qo===void 0?Qt.default:qo,Go=In.otError,ca=Go===void 0?_a:Go,Za=In.OTErrorClass,ta=Za===void 0?j.default:Za,bo=In.OTHelpers,Eo=bo===void 0?_t.default:bo,jl=In.StylableComponent,So=jl===void 0?Dt.default:jl,so=In.SubscriberPeerConnection,Ll=so===void 0?Va:so,Ko=In.SubscribingState,Co=Ko===void 0?$.default:Ko,ti=In.VideoDisabledIndicator,yo=ti===void 0?ie.default:ti,ss=In.AudioBlockedIndicator,Zl=ss===void 0?Ve.default:ss,ll=In.VideoUnsupportedIndicator,Jl=ll===void 0?_e.default:ll,Hl=In.watchFrameRate,el=Hl===void 0?we.default:Hl,Ji=In.createSendMethod,Pr=Ji===void 0?nt.default:Ji,Ys=In.parseIceServers,_l=Ys===void 0?Gt.parseIceServers:Ys,Qn=In.document,Kn=Qn===void 0?(typeof window!==void 0?window:yr).document:Qn,Fr=In.WidgetView,li=Fr===void 0?hr:Fr,ki=In.createAudioConnector,$a=ki===void 0?Dn.default:ki,oa=In.ResizeObserverPolyfill,hl=oa===void 0?F.default:oa,wa=In.MediaStream,qa=wa===void 0?(typeof window!==void 0?window:yr).MediaStream:wa,yn=In.AMRStateDurations,En=In.createMOSScoreHelper,Un=En===void 0?ui.default:En,Rr=(0,d.default)(In,Pn);const si=3e4,Br=15e3,Jo=Rr.RESIZE_DEBOUNCE_WAIT||dr.default,ho=function Qo(Tl,ga,Zd){var gl=this,ru;if(ga===void 0&&(ga={}),Zd===void 0&&(Zd=()=>{}),ga.analytics===void 0)throw new Error("Subscriber requires an instance of analytics");const eo=ga.analytics,Hd=(0,u.default)(),$l=Qo.hasAudioOutputLevelStatCapability()||Nn(),ua=this,Id={},fd={},dt={},Ft={},Se={},le=(ge,ot,Vt)=>{Jd&&(0,zn.default)(Jd,ot,Vt),(0,zn.default)(ge,ot,Vt)},Le=$a(dt,{updateTrackOnStream:le});let Xe,Oe,mt,Wt,Mt,pn,on,gn,qn,cr,Gn,Or,un,Ar,mo=!1,ds=Tl||Hd,Kr=ga.session,Sn=ga.stream;const Il=ga,bl=Il._singlePeerConnectionController,to=bl!==void 0;let Ri,Mo,ed=!1,Ds,sa={},no=null,Gd=!1,cc=!0,pu=[],Ti=(0,g.default)({},ga,{showControls:!0,testNetwork:!1,fitMode:Sn.defaultFitMode||"cover",insertDefaultUI:!0,initials:Sn.initials}),Ec,xl;const Hc=Kr.sessionInfo.isAdaptiveEnabled,Sc={P2P:K.default.SUBSCRIBER_DISCONNECTED,MANTIS:K.default.SUBSCRIBER_DISCONNECTED};let td,Vs,qd,xd,Jd;const xc=$t.name==="Chrome"&&$t.version>=58||$t.isChromiumEdge||$t.isOpera,Es=Kr._.getSocket(),ec=(0,S.default)(yn);ec.on("transitionToP2PTimeout",()=>{Es.subscriberDestroy(Sn.id,this.widgetId,Dr.default.P2P),xl=Dr.default.P2P,ec.completeTransitionTo(xl)});const Ms=()=>(0,y.default)(fd),Cd=ge=>fd[ge],Wc=()=>fd[xl],Nc=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut;return l.default.wrap(function(kn){for(;;)switch(kn.prev=kn.next){case 0:return kn.next=2,fd[Vt];case 2:Ut=kn.sent,Ut==null||Ut.close(),delete fd[Vt];case 5:case"end":return kn.stop()}},ot)}));return function(Vt){return ge.apply(this,arguments)}}(),cs=ge=>{delete dt[ge]},uc=()=>{Ms().forEach(function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){return l.default.wrap(function(Rn){for(;;)switch(Rn.prev=Rn.next){case 0:return Rn.next=2,Vt;case 2:Rn.sent.destroy();case 3:case"end":return Rn.stop()}},ot)}));return function(ot){return ge.apply(this,arguments)}}()),Object.keys(fd).forEach(ge=>{delete fd[ge]})},fc=ge=>{Sn.setChannelActiveState(Object.assign({},ge,{isSubscriber:!0}))},Pa=(ge,ot)=>{(0,zn.default)(ge,ge.getAudioTracks()[0],ot.getAudioTracks()[0]),(0,zn.default)(ge,ge.getVideoTracks()[0],ot.getVideoTracks()[0])},go=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut,Rn,kn;return l.default.wrap(function(ni){for(;;)switch(ni.prev=ni.next){case 0:if(Vt){ni.next=2;break}return ni.abrupt("return");case 2:return Jd&&Pa(Jd,Vt),Rn={error:Td,audioVolume:Ri,hasVideo:(Ut=Sn)==null?void 0:Ut.hasVideo},kn=Hc&&xl==="P2P",ni.prev=5,ni.next=8,Xe.bindVideo(Vt,Rn,kn);case 8:ni.next=16;break;case 10:if(ni.prev=10,ni.t0=ni.catch(5),!(ni.t0 instanceof c.CancellationError||pn.isDestroyed())){ni.next=14;break}return ni.abrupt("return");case 14:throw Td(ni.t0),ni.t0;case 16:case"end":return ni.stop()}},ot,null,[[5,10]])}));return function(Vt){return ge.apply(this,arguments)}}(),Gc=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt,Ut){var Rn,kn,Bn,ni;return l.default.wrap(function(Aa){for(;;)switch(Aa.prev=Aa.next){case 0:if(Rn=!1,typeof Vt=="function"?Ut=Vt:Rn=Vt==="rtcStatsReport",Rn?al():nd(),!(Rn&&!Fe.default)){Aa.next=7;break}return kn=Kt.GET_RTC_STATS_REPORT_NOT_SUPPORTED,Ut(ca(Ae.default.GET_RTC_STATS_REPORT_NOT_SUPPORTED,new Error(ta.getTitleByCode(kn)),kn)),Aa.abrupt("return");case 7:if(Wc()){Aa.next=11;break}return kn=Kt.PEER_CONNECTION_NOT_CONNECTED,Ut(ca(bt.PEER_CONNECTION_NOT_CONNECTED,new Error(ta.getTitleByCode(kn)),kn)),Aa.abrupt("return");case 11:return Aa.next=13,Wc();case 13:Bn=Aa.sent,ni=Rn?Bn.getRtcStatsReport:Bn.getStats,ni((ji,To)=>{ji?(ji.code===Kt.PEER_CONNECTION_NOT_CONNECTED&&(ji=ca(bt.PEER_CONNECTION_NOT_CONNECTED,ji,Kt.PEER_CONNECTION_NOT_CONNECTED)),Ut(ji)):Ut(null,To)});case 16:case"end":return Aa.stop()}},ot)}));return function(Vt,Ut){return ge.apply(this,arguments)}}(),tl=ge=>Gc(ge),Jc=ge=>Gc("rtcStatsReport",ge),Ls=ge=>qn?ge==="video"?qn.getVideoTracks().length>0:qn.getAudioTracks().length>0:!1,Wi=(ge,ot,Vt,Ut,Rn)=>{let kn=(0,f.default)({action:ge,variation:ot,payload:Vt,streamId:Sn?Sn.id:null,sessionId:Kr?Kr.sessionId:null,connectionId:Kr&&Kr.isConnected()?Kr.connection.connectionId:null,partnerId:Kr&&Kr.sessionInfo?Kr.sessionInfo.partnerId:null,subscriberId:Hd,widgetType:"Subscriber",singlePeerConnection:!!bl},Ut);(ot==="Failure"||ot==="iceconnectionstatechange"&&Vt==="closed")&&(kn=(0,f.default)(kn,sa));const Bn=[kn];Rn&&Bn.push(Rn),eo.logEvent(...Bn)},da=(ge,ot,Vt)=>{ot==="Attempt"?(Ft[ge]=new Date().getTime(),Wi(ge,ot,Vt)):(ot==="Failure"||ot==="Success")&&Wi(ge,ot,Vt,{attemptDuration:new Date().getTime()-Ft[ge]})},Po=function(ot,Vt){Vt===void 0&&(Vt={}),da("RoutedToRelayedTransition",ot,Vt)},mu=function(ot,Vt){Vt===void 0&&(Vt={}),da("RelayedToRoutedTransition",ot,Vt)},Cl=(0,E.default)({onInvalidTransition(ge,ot){const Vt=`Invalid state transition: Event '${ge}' not possible in state '${ot}'`;Mr.error(Vt),Wi("Subscriber:InvalidStateTransition","Event",{details:Vt})}});{const ge="Unable to subscribe to stream in a reasonable amount of time";(0,q.default)({connectivityState:Cl,onWarning(){bu("Warning",{})},onTimeout:()=>{if(Xe&&Xe.addError(ge),pn.isAttemptingToSubscribe()){pn.set("Failed"),this._disconnect({noStateTransition:!0});const ot=ca(Ae.default.TIMEOUT,new Error(ge),Kt.UNABLE_TO_SUBSCRIBE);Cl.fail({options:{failureReason:"Subscribe",failureMessage:ge,failureCode:Kt.UNABLE_TO_SUBSCRIBE},error:ot})}},warningMs:Br,timeoutMs:si})}Id.promise=new a((ge,ot)=>{Id.resolve=ge,Id.reject=ot}),Ti.testNetwork&&Kr.sessionInfo.p2pEnabled&&Mr.warn("You cannot test your network with a relayed session. Use a routed session.");const Rc=Ti.preferredResolution==="auto"&&!Kr.sessionInfo.p2pEnabled;if(this.id=ds,this.widgetId=Hd,this.session=Kr,this.stream=Ti.stream,Sn=Ti.stream,this.streamId=Sn.id,!Kr)return ta.handleJsException({errorMsg:"OT.Subscriber must be passed a session option",code:2e3,target:this,analytics:eo}),null;(0,R.default)(this);const Hs={audioQualityScore:void 0,videoQualityScore:void 0};Un().startMonitoringInterval({getStats:tl,subscriber:this,getCurrentPeerConnection:Wc,logging:Mr,qosQualityScores:Hs}),ua.once("subscribeComplete",function(){try{Zd(...arguments)}catch(ge){Mr.error("Completion handler threw an exception",ge)}}),Kr.on("captionReceived",ge=>{ge.streamId===ua.streamId&&(this.dispatchEvent(ge),this.trigger(K.default.SUBSCRIBER_CAPTION_RECEIVED,ge))});const iu=ge=>{let ot=ge.transition,Vt=ge.from;return ot==="fail"?Vt==="connected"?"Disconnect":"Failure":ot==="disconnect"&&Vt==="connected"?"Disconnect":"Cancel"};Cl.observe({onEnterConnecting(){bu("Attempt",null,{})},onEnterConnected(){bu("Success",null,{})},onEnterDisconnected(ge,ot){let Vt=ot===void 0?{}:ot,Ut=Vt.options,Rn=Ut===void 0?{}:Ut,kn=Vt.payload,Bn=kn===void 0?null:kn;bu(iu(ge),Bn,Rn)}}),Cl.observe({onEnterConnected:()=>{this.trigger("subscribeComplete",void 0,this)},onEnterDisconnected:function(ot,Vt){let Ut=ot.from,Rn=Vt===void 0?{}:Vt,kn=Rn.error;Ut==="connecting"&&gl.trigger("subscribeComplete",kn||new Error("An unknown error occurred"),gl)}}),(0,J.default)({connectivityState:Cl,logAttempt(){Wi("Subscribe","Attempting",null,{connectionId:Kr&&Kr.isConnected()?Kr.connection.connectionId:null})}});const bu=function(ot,Vt,Ut){Vt===void 0&&(Vt={}),ot==="Failure"||ot==="Success"||ot==="Cancel"?Wi("Subscribe",ot,Vt,Object.assign({},Ut,{attemptDuration:new Date().getTime()-Or})):ot==="Attempt"?(Or=new Date().getTime(),Wi("Subscribe",ot,Object.assign({},Vt,{testNetwork:Ti.testNetwork}),Ut)):Wi("Subscribe",ot,Vt,Ut)},Tc=(ge,ot)=>{Wi("ICERestart",ge,ot)},vd=ge=>{var ot,Vt;let Ut=ge.parsedStats,Rn=ge.remoteConnectionId,kn=ge.peerId,Bn=ge.sourceStreamId;const ni=Object.assign({widgetType:"Subscriber",width:Xe.width,height:Xe.height,audioTrack:Ls("audio"),hasAudio:Sn&&Sn.hasAudio,subscribeToAudio:Ar,audioVolume:this.getAudioVolume(),videoTrack:Ls("video"),connectionId:Kr?Kr.connection.connectionId:null,hasVideo:Sn&&Sn.hasVideo,subscribeToVideo:Ti.subscribeToVideo,congestionLevel:no,streamId:Sn.id,subscriberId:Hd,duration:Math.round(((0,Ke.default)()-Mt)/1e3),remoteConnectionId:Rn,peerId:kn,sourceStreamId:(0,An.default)(Bn),preferredResolutionHeight:(ot=Ti.preferredResolution)==null?void 0:ot.height,preferredResolutionWidth:(Vt=Ti.preferredResolution)==null?void 0:Vt.width,preferredFrameRate:Ti.preferredFrameRate,audioFallback:!cr&&Gn==="auto",initials:Sn.initials},Hs),Uo=(0,f.default)(ni,Ut);eo.logQOS(Uo),this.trigger("qos",Object.assign({},eo.commonQoSFields(),Uo))},Oc=ge=>{Mr.error("OT.Subscriber State Change Failed: ",ge.message),Mr.debug(ge)},Lo=()=>{pn.isSubscribing()||!Xe||!Xe.video()||(mo=!0,Gd||(Cl.connect(),Gd=!0),Mr.debug("OT.Subscriber.onLoaded"),pn.set("Subscribing"),Mt=(0,Ke.default)(),Xe.loading(!1),Oe&&Oe.showAfterLoading(),ed&&Sn.setRestrictFrameRate(!0),Wt&&Wt.audioOnly(Xe.audioOnly()),this.setAudioVolume(Ri),this.trigger("loaded",this))},Gu=()=>Sn&&Sn.hasAudio&&Ar&&this.getAudioVolume()>0&&!this.isAudioBlocked(),Fo=()=>Sn&&Sn.hasVideo,xs=ge=>{const ot=ge==="audioLevelStuckAt0"&&(!Gu()||Fo());let Vt=!1;if(!ot&&(Wi("subscriber:onAudioWarning","Event",{reason:ge}),Xe)){if(Xe.rebindSrcObject(),Wi("subscriber:rebindSrcObject","Called"),ge==="audioLevelStuck")return;Vt=!0}Xc(Vt)},Xc=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut;return l.default.wrap(function(kn){for(;;)switch(kn.prev=kn.next){case 0:if(Vt===void 0&&(Vt=!1),!xc){kn.next=6;break}return kn.next=4,Wc();case 4:Ut=kn.sent,Ut.startAudioStatsWatcher(Vt);case 6:case"end":return kn.stop()}},ot)}));return function(Vt){return ge.apply(this,arguments)}}(),bs=ge=>{Hc&&ge.getSourceStreamId()==="P2P"&&Po("Success")},hc=()=>{Mr.debug("OT.Subscriber has been disconnected from the Publisher's PeerConnection"),Cl.fail({options:{failureReason:"PeerConnectionError",failureCode:Kt.UNABLE_TO_PUBLISH,failureMessage:"PeerConnection disconnected"},error:ca(bt.DISCONNECTED,new Error("ClientDisconnected"))}),this._disconnect({noStateTransition:!0}),(pn.isAttemptingToSubscribe()||pn.isSubscribing())&&pn.set("Failed")},Td=ge=>{const ot=ca(bt.MEDIA_ERR_DECODE,ge,ge.code||Kt.P2P_CONNECTION_FAILED);ot.message=`OT.Subscriber while playing stream: ${ot.message}`,Mr.error("OT.Subscriber.onVideoError"),Cl.fail({options:{failureReason:"VideoElement",failureMessage:ot.message,failureCode:ot.code||Kt.P2P_CONNECTION_FAILED},error:ot});const Vt=pn.isAttemptingToSubscribe();pn.set("Failed"),Vt||ua.trigger("error",ot.message),ta.handleJsException({error:ot,code:Kt.UNABLE_TO_SUBSCRIBE,target:ua,analytics:eo})},au=ge=>{const ot=(0,We.default)(ge);ta.handleJsException({error:ot,code:ot.code,target:ua,analytics:eo}),this._disconnect({noStateTransition:!0});const Vt={failureReason:"Subscribe",failureMessage:`OT.Subscriber PeerConnection Error: ${ot.message}`,failureCode:Kt.P2P_CONNECTION_FAILED};qr(ot.code,ot.message),Cl.fail({options:Vt,error:ca(ot.name,new Error(`Subscribe: Subscriber PeerConnection with connection (not found) failed: ${ot.message}`),ot.code)}),ot.name===Ae.default.STREAM_NOT_FOUND&&this._destroy({reason:"streamNotFound",noStateTransition:!0})},il=(ge,ot,Vt,Ut)=>{if(Ut==="SetRemoteDescription"&&!cc&&ot.match(/Unsupported video without audio for fallback/)){Xe&&Xe.addError("The stream is unable to be played.","Your browser does not support the video format.");let ni;Eo.env.name==="Safari"?ni=new Error("VP8 is not supported in this version of Safari. You might want to consider switching to an H264 project. See https://tokbox.com/developer/sdks/js/safari for more information."):ni=new Error("Video format not supported in this browser."),ni.code=Kt.UNSUPPORTED_VIDEO_CODEC,Td(ni);return}if(Ut==="ICEWorkflow"&&Kr.sessionInfo.reconnection&&mo){Mr.debug("Ignoring peer connection failure due to possibility of reconnection.");return}let Rn;Ut==="ICEWorkflow"?Rn=Kt.SUBSCRIBER_ICE_WORKFLOW_FAILED:ge===Kt.STREAM_LIMIT_EXCEEDED?Rn=ge:Rn=Kt.P2P_CONNECTION_FAILED;const kn={failureReason:Ut||"PeerConnectionError",failureMessage:`OT.Subscriber PeerConnection Error: ${ot}`,failureCode:Rn},Bn=$r(ge,ot,Ut,"(not found)","Subscriber");if(Cl.fail({options:kn,error:Bn}),pn.isAttemptingToSubscribe()){const ni={hasRelayCandidates:Vt&&Vt.hasRelayCandidates()};Wi("createPeerConnection","Failure",ni,kn),pn.set("Failed")}else pn.isSubscribing()&&(pn.set("Failed"),this.trigger("error",ot));this._disconnect({noStateTransition:!0}),Number(ge)===404&&this._destroy({noStateTransition:!0}),ta.handleJsException({error:Bn,errorMsg:`OT.Subscriber PeerConnection Error: ${ot}`,code:Rn,target:this,analytics:eo}),qr(ge)},ql=ge=>{const ot=ge._hasVideoTracks(),Vt=ge._hasAudioTracks(),Ut=Sn&&Sn.hasVideo&&!ot,Rn=Sn&&Sn.hasAudio&&!Vt;return!(Ut||Rn)},ys=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt,Ut){return l.default.wrap(function(kn){for(;;)switch(kn.prev=kn.next){case 0:return kn.prev=0,kn.next=3,_n(()=>ql(Ut));case 3:kn.next=12;break;case 5:if(kn.prev=5,kn.t0=kn.catch(0),kn.t0.message!=="TIMEOUT"){kn.next=11;break}Mr.error("The expected tracks never arrived"),kn.next=12;break;case 11:throw kn.t0;case 12:return kn.next=14,Ju(Vt,Ut);case 14:case"end":return kn.stop()}},ot,null,[[0,5]])}));return function(Vt,Ut){return ge.apply(this,arguments)}}(),Ju=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt,Ut){var Rn,kn,Bn,ni,Uo,Aa,ji,To;return l.default.wrap(function(Ja){for(;;)switch(Ja.prev=Ja.next){case 0:if(Rn=Object.keys(dt).length===1,kn=Ut==null?void 0:Ut.getSourceStreamId(),Bn=Kr,ni=Bn.sessionInfo,Jd||(Jd=new qa(Vt),gl.dispatchEvent(new Ot.MediaStreamAvailableEvent(Jd))),qn=Vt,kn&&(dt[kn]=Vt),Mr.debug("OT.Subscriber.onRemoteStreamAdded with sourceStreamId",kn),pn.set("BindingRemoteStream"),!td){Ja.next=15;break}if(!cr){Ja.next=14;break}return Ja.next=12,Bu(kn);case 12:Ja.next=15;break;case 14:td.destroy();case 15:return gl.subscribeToAudio(Ar),Gn==="auto"&&!Ti.subscribeToVideo||(Gn="loading",gl.subscribeToVideo(Ti.subscribeToVideo,"loading")),!ni.p2pEnabled&&kn!=="P2P"&&(Rc||gl.setPreferredResolution(Ti.preferredResolution),gl.setPreferredFrameRate(Ti.preferredFrameRate)),Ut&&Ut._getVideoTracks().forEach(vl=>{(typeof window!==void 0?window:yr).webkitMediaStream?vl.enabled=!1:vl.enabled=Sn.hasVideo&&Ti.subscribeToVideo}),Ja.prev=19,Ja.next=22,go(qn);case 22:Ja.next=33;break;case 24:if(Ja.prev=24,Ja.t0=Ja.catch(19),!(0,nr.isAmrVideoBufferError)(Ja.t0)){Ja.next=32;break}return Mr.error(`OT.Subscriber: ${Ja.t0.message}`),Lo(),ec.completeTransitionTo(xl),xl==="P2P"&&Es.subscriberDestroy(Sn.id,gl.widgetId,xl),Ja.abrupt("return");case 32:throw Ja.t0;case 33:if(Xc(),!pn.isDestroyed()){Ja.next=37;break}return Mr.error("Subscriber destroyed"),Ja.abrupt("return");case 37:return Ut&&(typeof window!==void 0?window:yr).webkitMediaStream&&Ut._getVideoTracks().forEach(vl=>{vl.enabled=Sn.hasVideo&&Ti.subscribeToVideo}),Uo=Xe&&Xe.video(),Uo&&Uo.orientation({width:Sn.videoDimensions.width,height:Sn.videoDimensions.height,videoOrientation:Sn.videoDimensions.orientation}),Aa=Oe&&Oe.videoUnsupportedIndicator,Aa&&Aa.setVideoUnsupported(!cc),ji=new a((vl,Ss)=>{const gc=Xe&&Xe.video();if(gc&&gc.domElement()){vl();return}Xe.once("videoElementCreated",vl),ua.once("destroyed",Ss)}),Ja.next=45,ji;case 45:return Ja.next=47,Id.promise;case 47:if(Rn?pn.set("Subscribing"):Lo(),on&&"webRTCStream"in on&&Ut._hasAudioTracks()&&on.webRTCStream(Vt),To=Eo.env,(To.isSafari||To.isChromiumEdge||To.isOpera||To.name==="Chrome"&&To.version>=58||To.isFirefox&&To.version>=96)&&(Ds&&(Ds.destroy(),Ds=null),Ut&&(Ds=el(Ut.getStats.bind(Ut)))),!Hc){Ja.next=63;break}if(ec.completeTransitionTo(xl),!(Ar&&Le.audioMediaProcessorConnector)){Ja.next=63;break}return Ja.prev=54,Ja.next=57,Le.applyAudioConnectorOnRoutedToRelayedTransition();case 57:Wi("setAudioMediaProcessorConnector","Success",{message:"Audio connector applied on routed to relayed transition."}),Ja.next=63;break;case 60:Ja.prev=60,Ja.t1=Ja.catch(54),Wi("setAudioMediaProcessorConnector","Failure",{message:Ja.t1.message});case 63:case"end":return Ja.stop()}},ot,null,[[19,24],[54,60]])}));return function(Vt,Ut){return ge.apply(this,arguments)}}(),Bu=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut,Rn;return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:return Vt==="P2P"&&Vs&&(Ut=dt.MANTIS.getVideoTracks(),Rn=Ut[0],(0,zn.default)(dt.MANTIS,Rn,Vs)),Bn.next=3,tn();case 3:case"end":return Bn.stop()}},ot)}));return function(Vt){return ge.apply(this,arguments)}}(),Ga=ge=>{cc!==ge&&this.dispatchEvent(new Ot.VideoEnabledChangedEvent(ge?"videoEnabled":"videoDisabled",{reason:ge?"codecChanged":"codecNotSupported"})),cc=ge},Ea=ge=>{Xe.setAudioBlockedUi(ge);const ot=Oe&&Oe.audioBlockedIndicator;ot&&ot.setAudioBlocked(ge);const Vt=Oe&&Oe.videoUnsupportedIndicator;Vt&&Vt.setVideoUnsupported(!ge&&!cc)};this.on("audioBlocked",()=>{Ea(!0)}),this.on("audioUnblocked",()=>{Ea(!1)});const Pu={new:K.default.SUBSCRIBER_DISCONNECTED,checking:K.default.SUBSCRIBER_DISCONNECTED,connected:K.default.SUBSCRIBER_CONNECTED,completed:K.default.SUBSCRIBER_CONNECTED,disconnected:K.default.SUBSCRIBER_DISCONNECTED,failed:K.default.SUBSCRIBER_DESTROYED},kc=(ge,ot)=>{const Vt=Pu[ge],Ut=ot.getSourceStreamId(),Rn=Sc[Ut];if(Vt&&Vt!==Rn){if(Sc[Ut]=Vt,ge==="failed"&&Hc&&Ut==="P2P"){Mr.warn("OT.Subscriber: relayed PeerConnection has failed, rolling back to routedPeerConnection"),Es.subscriberDestroy(Sn.id,this.widgetId,Ut),Wi("AMRMantisRollback","Event");return}ge==="disconnected"&&Ut!=="P2P"&&setTimeout((0,s.default)(l.default.mark(function Bn(){var ni;return l.default.wrap(function(Aa){for(;;)switch(Aa.prev=Aa.next){case 0:if(ni=Kr._.isSocketReconnecting,!(Sc[Ut]==="disconnected"&&Es.is("connected")&&!ni())){Aa.next=4;break}return Aa.next=4,gl._.iceRestart("peer connection disconnected");case 4:case"end":return Aa.stop()}},Bn)})),2e3),Xe&&Xe.loading(Vt!==K.default.SUBSCRIBER_CONNECTED),Mr.debug(`OT.Subscriber.connectionStateChanged to ${ge}`),this.dispatchEvent(new Ot.ConnectionStateChangedEvent(Vt,this,(0,An.default)(Ut)))}},zu=()=>{Tc("Success")},ju=()=>{Tc("Failure",{reason:"ICEWorkflow",message:"OT.Subscriber PeerConnection Error: The stream was unable to connect due to a network error. Make sure your connection isn't blocked by a firewall."})},_u=ge=>{const ot=Xe&&Xe.video();switch(ge.changedProperty){case"videoDimensions":if(!ot)break;ot.orientation({width:ge.newValue.width,height:ge.newValue.height,videoOrientation:ge.newValue.orientation}),this.dispatchEvent(new Ot.VideoDimensionsChangedEvent(this,ge.oldValue,ge.newValue));break;case"videoDisableWarning":Oe&&Oe.videoDisabledIndicator.setWarning(ge.newValue),this.dispatchEvent(new Ot.VideoDisableWarningEvent(ge.newValue?"videoDisableWarning":"videoDisableWarningLifted")),no=ge.newValue?1:null;break;case"hasVideo":Kc(!Sn.hasVideo||!Ti.subscribeToVideo),$t.isSafari&&!Sn.hasVideo&&Xe&&Xe.bindAudioTrackOnly(),this.dispatchEvent(new Ot.VideoEnabledChangedEvent(Sn.hasVideo?"videoEnabled":"videoDisabled",{reason:"publishVideo"}));break;case"hasAudio":mt.update();break}},tc=()=>Sn.getChannelsOfType("audio").length>0;mt={get(){return tc()?ua.getStyle("buttonDisplayMode"):"off"},update(){const ge=mt.get();Oe&&(Oe.muteButton.setDisplayMode(ge),Oe.backingBar.setMuteMode(ge))}};const Pe=(ge,ot)=>{if(Oe)switch(ge){case"nameDisplayMode":Oe.name.setDisplayMode(ot),Oe.backingBar.setNameMode(ot);break;case"videoUnsupportedDisplayMode":Oe.videoUnsupportedIndicator.setDisplayMode(ot);break;case"videoDisabledDisplayMode":Oe.videoDisabledIndicator.setDisplayMode(ot);break;case"audioBlockedDisplayMode":Oe.audioBlockedIndicator.setDisplayMode(ot);break;case"showArchiveStatus":Oe.archive.setShowArchiveStatus(ot);break;case"buttonDisplayMode":mt.update();break;case"audioLevelDisplayMode":Oe.audioLevel.setDisplayMode(ot);break;case"bugDisplayMode":break;case"backgroundImageURI":Xe.setBackgroundImageURI(ot);break}},ze=()=>{const ge={backingBar:new Qa({nameMode:Ti.name?this.getStyle("nameDisplayMode"):"off",muteMode:mt.get()}),name:new Si({name:Ti.name,mode:this.getStyle("nameDisplayMode")}),muteButton:new Io({muted:Ri===0,mode:mt.get()})};if($l){const ot=new ml;Wt=new Ml({mode:ua.getStyle("audioLevelDisplayMode")});const Vt=new pe.default(()=>{Wt.setValue(ot.transform(this.loudness))});Wt.watchVisibilityChanged(Ut=>{Ut?Vt.start():Vt.stop()}),Wt.setDisplayMode(this.getStyle("audioLevelDisplayMode")),Wt.audioOnly(!1),ge.audioLevel=Wt}ge.videoDisabledIndicator=new yo({mode:this.getStyle("videoDisabledDisplayMode")}),ge.audioBlockedIndicator=new Zl({mode:this.getStyle("audioBlockedDisplayMode")}),ge.videoUnsupportedIndicator=new Jl({mode:this.getStyle("videoUnsupportedDisplayMode")}),Xe&&Xe.domElement&&(Oe=new Gi({parent:Xe.domElement}).set(ge).on({muted(){ua.setAudioVolume(0)},unmuted(){ua.setAudioVolume(Mo)}},this),Oe.hideWhileLoading())},qr=(ge,ot)=>{let Vt,Ut;Xe&&(ge===Kt.STREAM_LIMIT_EXCEEDED?(Vt="The stream was unable to connect.",Ut="The limit for the number of media streams has been reached."):ot==="Tried to subscribe to an encrypted stream without enabling encryption"?(Vt="Unable to subscribe to an encrypted stream without enabling encryption.",Ut=""):(Vt="The stream was unable to connect due to a network error.",Gd?Ut="Ensure you have a stable connection and try again.":Ut="Make sure you have a stable network connection and that it isn't blocked by a firewall."),Xe.addError(Vt,Ut))};So(this,{nameDisplayMode:"auto",buttonDisplayMode:"auto",audioLevelDisplayMode:"auto",videoDisabledDisplayMode:"auto",audioBlockedDisplayMode:"auto",backgroundImageURI:null,showArchiveStatus:!0,showMicButton:!0},Ti.showControls,ge=>{Wi("SetStyle","Subscriber",ge,null,.1)});function Kc(ge){Ms().forEach(function(){var Vt=(0,s.default)(l.default.mark(function Ut(Rn){return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:return Bn.next=2,Rn;case 2:Bn.sent.subscribeToVideo(!ge);case 3:case"end":return Bn.stop()}},Ut)}));return function(Ut){return Vt.apply(this,arguments)}}());const ot=ge||!qn||!qn.getVideoTracks().length;Xe&&(Xe.audioOnly(ot),Xe.showPoster(ot)),Wt&&Wt.audioOnly(ot)}const nd=(0,p.default)(()=>{Wi("GetStats","Called")}),al=(0,p.default)(()=>{Wi("GetRtcStatsReport","Called")}),wc=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){return l.default.wrap(function(Rn){for(;;)switch(Rn.prev=Rn.next){case 0:return gn&&(gn.destroy(),gn=void 0),Rn.prev=1,Rn.next=4,_n(()=>Vt._hasAudioTracks());case 4:Rn.next=9;break;case 6:return Rn.prev=6,Rn.t0=Rn.catch(1),Rn.abrupt("return");case 9:on=Jn(Vt),on?gn=(0,$e.default)({subscriber:gl,audioLevelSampler:on}):Object.prototype.hasOwnProperty.call(gl,"loudness")||(Object.defineProperty(gl,"loudness",{value:void 0,configurable:!0,writable:!1}),Mr.error("No suitable audio level samplers found, audio level visualisation will not work"));case 11:case"end":return Rn.stop()}},ot,null,[[1,6]])}));return function(Vt){return ge.apply(this,arguments)}}(),Zu=(ge,ot)=>{if(Se[ot]){Se[ot].removeAll();const Ut=()=>{ge.off("error",Ut),ge.off("disconnected",Ut)};ge.on("error",Ut),ge.on("disconnected",Ut)}const Vt=(0,B.default)(ge);Vt.once("connected",()=>bs(ge)),Vt.on("disconnected",hc),Vt.on("error",il),Vt.once("remoteTrackAdded",(0,s.default)(l.default.mark(function Ut(){var Rn=arguments;return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:return Bn.next=2,wc(ge);case 2:return Bn.prev=2,Bn.next=5,ys(...Rn);case 5:Bn.next=10;break;case 7:Bn.prev=7,Bn.t0=Bn.catch(2),Mr.error(Bn.t0);case 10:case"end":return Bn.stop()}},Ut,null,[[2,7]])}))),Vt.on("audioLevelStuckWarning",xs),Vt.on("signalingStateStable",(0,s.default)(l.default.mark(function Ut(){var Rn;return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:ua.trigger("signalingStateStable"),Rn=Xe&&Xe.video(),Rn&&qn&&on&&"webRTCStream"in on&&ge._hasAudioTracks()&&on.webRTCStream(qn);case 3:case"end":return Bn.stop()}},Ut)}))),Vt.on("iceConnectionStateChange",Ut=>kc(Ut,ge)),Vt.on("iceRestartSuccess",zu),Vt.on("iceRestartFailure",ju),Vt.on("remoteVideoSupported",Ga),Vt.on("decryptFailed",()=>{this.trigger("encryptionSecretMismatch"),Wi("encryptionSecretMismatch","Event"),Mr.warn("Media cannot be decrypted due to an encryption secret mismatch.")}),Vt.on("decryptRestored",()=>{this.trigger("encryptionSecretMatch"),Wi("encryptionSecretMatch","Event")}),Se[ot]=Se},hd=function(){var ge=(0,s.default)(l.default.mark(function ot(){var Vt;return l.default.wrap(function(Rn){for(;;)switch(Rn.prev=Rn.next){case 0:return Po("Attempt"),Rn.next=3,Cd("MANTIS");case 3:if(Vt=Rn.sent,Vt!=null&&Vt.iceConnectionStateIsConnected()){Rn.next=7;break}return Po("Failure",{reason:"Attempted to transition to Relayed without being connected in Routed mode."}),Rn.abrupt("return");case 7:Es.subscriberCreate(Sn.id,Hd,P,"P2P",Kr._.isE2ee(),(kn,Bn)=>{kn&&!Cl.is("disconnected")&&Po("Failure",kn),Mr.debug("message received when created a subscriber with source",Bn)});case 8:case"end":return Rn.stop()}},ot)}));return function(){return ge.apply(this,arguments)}}(),Al=function(){var ge=(0,s.default)(l.default.mark(function ot(){var Vt;return l.default.wrap(function(Rn){for(;;)switch(Rn.prev=Rn.next){case 0:if(!(Ti.testNetwork||St(Sn,Kr)||xl!=="P2P")){Rn.next=2;break}return Rn.abrupt("return");case 2:if(mu("Attempt"),qn=dt.MANTIS,!(cr&&td)){Rn.next=7;break}return Rn.next=7,tn();case 7:if(!(Le.audioMediaProcessorConnector&&Ar)){Rn.next=17;break}return Rn.prev=8,Rn.next=11,Le.applyAudioConnectorOnRelayedToRoutedTransition();case 11:Wi("setAudioMediaProcessorConnector","Success",{message:"Audio connector applied on relayed to routed transition."}),Rn.next=17;break;case 14:Rn.prev=14,Rn.t0=Rn.catch(8),Wi("setAudioMediaProcessorConnector","Failure",{message:Rn.t0.message});case 17:return Rn.next=19,go(qn);case 19:return Rn.next=21,Nc("P2P");case 21:return Xe.loading(!1),xl="MANTIS",cs("P2P"),Rn.next=26,Wc();case 26:return Vt=Rn.sent,Rn.next=29,wc(Vt);case 29:on.webRTCStream(qn),mu("Success");case 31:case"end":return Rn.stop()}},ot,null,[[8,14]])}));return function(){return ge.apply(this,arguments)}}();this._destroy=ge=>{let ot=ge.reason,Vt=ot===void 0?"Unknown":ot,Ut=ge.quiet,Rn=ge.noStateTransition,kn=Rn===void 0?!1:Rn;return pn.isDestroyed()?this:(pn.set("Destroyed"),Ds&&(Ds.destroy(),Ds=null),sa={sessionId:Kr.sessionId,connectionId:Kr&&Kr.isConnected()?Kr.connection.connectionId:null,partnerId:Kr&&Kr.sessionInfo?Kr.sessionInfo.partnerId:null,streamId:Sn&&!Sn.destroyed?Sn.id:null},this._disconnect({reason:Vt,noStateTransition:kn}),Oe&&(Oe.destroy(),Oe=null),Xe&&(Xe.destroy(),Xe.off(),Xe=null,this.element=null),Sn&&!Sn.destroyed&&Wi("unsubscribe",null,{streamId:Sn.id}),Sn.off(un,this),this.id=null,ds=null,this.stream=null,Sn=null,this.streamId=null,this.session=null,Kr=null,Ti=null,Ut!==!0&&(this.dispatchEvent(new Ot.DestroyedEvent(K.default.SUBSCRIBER_DESTROYED,this,Vt)),this.off()),this)},this.destroy=function(ge,ot){ge===void 0&&(ge="Unsubscribe"),Mr.warn("Subscriber#destroy is deprecated and will be removed. Please use Session#unsubscribe instead"),gl._destroy({reason:ge,quiet:ot})},this._disconnect=function(ge){let ot=ge===void 0?{}:ge,Vt=ot.reason,Ut=Vt===void 0?"Unknown":Vt;if(!ot.noStateTransition&&!Cl.is("disconnected")){const kn=Ut==="Unsubscribe"?void 0:ca(bt.STREAM_DESTROYED,new Error("Stream was destroyed before it could be subscribed to"));Cl.disconnect({payload:{reason:Ut},error:kn})}!pn.isDestroyed()&&!pn.isFailed()&&pn.set("NotSubscribing"),Xe&&Xe.destroyVideo(),Es.is("connected")&&Sn&&!Sn.destroyed&&Es.subscriberDestroy(Sn.id,gl.widgetId),uc()},this.disconnect=()=>{Mr.warn("Subscriber#disconnect is deprecated and will be removed. Please use Session#unsubscribe instead"),this._disconnect({reason:"Unsubscribe"})};const Sa=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut,Rn,kn,Bn,ni,Uo,Aa;return l.default.wrap(function(To){for(;;)switch(To.prev=To.next){case 0:return Ut=Vt.peerId,Rn=Vt.fromConnectionId,kn=Vt.sourceStreamId,Bn=mn({apiKey:Kr.apiKey,sessionId:Kr.sessionId,streamId:Sn.id,subscriberId:gl.widgetId}),ni=Pr({socket:gl.session._.getSocket(),uri:Bn,content:{peerId:Ut,sourceStreamId:kn}}),Uo=function(Ja,vl,Ss,gc,Qh){gc===void 0&&(gc={});const $u=Object.assign({peerId:Ut,sourceStreamId:(0,An.default)(kn)},gc);return Wi(Ja,vl,Ss,$u,Qh)},Aa=es=>{xl===kn&&vd(Object.assign({},es,{peerId:Ut,remoteConnectionId:Rn,sourceStreamId:kn}))},To.abrupt("return",gl._setupPeerConnection({send:ni,log:Uo,logQoS:Aa,sourceStreamId:kn}));case 6:case"end":return To.stop()}},ot)}));return function(Vt){return ge.apply(this,arguments)}}();this.processMessage=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt,Ut,Rn){var kn,Bn,ni;return l.default.wrap(function(Aa){for(;;)switch(Aa.prev=Aa.next){case 0:return Mr.debug(`OT.Subscriber.processMessage: Received ${Vt} message from ${Ut}`),Mr.debug(Rn),kn=(0,A.default)(Rn,"content.peerId"),Bn=(0,A.default)(Rn,"content.sourceStreamId"),Aa.next=6,Cd(Bn);case 6:if(ni=Aa.sent,!ni){Aa.next=11;break}ni.processMessage(Vt,Rn),Aa.next=16;break;case 11:if(Vt!=="offer"){Aa.next=16;break}return Aa.next=14,Sa({peerId:kn,fromConnectionId:Ut,sourceStreamId:Bn});case 14:ni=Aa.sent,to&&Bn==="MANTIS"?bl.addSubscriber(()=>{ni.processMessage("offer",Rn)}):gl.session._.addSubscriberToPeerConnectionsQueue(ni,Rn);case 16:case"end":return Aa.stop()}},ot)}));return function(ot,Vt,Ut){return ge.apply(this,arguments)}}(),this.disableVideo=ge=>{if(!ge)Mr.warn("Due to high packet loss and low bandwidth, video has been disabled");else if(Gn==="auto"&&Ec===!1)Mr.info("Video has been re-enabled");else{Mr.info("Video was not re-enabled because it was manually disabled"),Oe&&Oe.videoDisabledIndicator&&Oe.videoDisabledIndicator.disableVideo(!1);return}this.subscribeToVideo(ge,"auto"),Wi("updateQuality","video",ge?{videoEnabled:!0}:{videoDisabled:!0})},this.getImgData=()=>{if(!this.isSubscribing())return Mr.error("OT.Subscriber.getImgData: Cannot getImgData before the Subscriber is subscribing."),null;const ge=Xe&&Xe.video();return ge?ge.imgData():null},this.getStats=ge=>{tl((ot,Vt)=>{if(ot){ge(ot);return}const Ut={timestamp:0};if(Vt.forEach(Rn=>{if(Mn.isInboundStat(Rn)){const kn=Mn.isVideoStat(Rn,Vt),Bn=Mn.isAudioStat(Rn,Vt);(Bn||kn)&&(Ut.timestamp=Mn.normalizeTimestamp(Rn.timestamp)),kn?((0,b.default)(Ut,{video:Mn.parseStatCategory(Rn)}),Ds&&(0,b.default)(Ut,{video:{frameRate:Ds.getFrameRateFromStat(Rn)}})):Bn&&(0,b.default)(Ut,{audio:Mn.parseStatCategory(Rn)})}}),qd){const Rn=qd,kn=Rn.maxBitrateBitsPerSecond,Bn=Rn.sentEstimatedBandwidthBitsPerSecond;Ut.senderStats={senderMaxBitrate:kn,senderCurrentBitrate:Bn}}ge(null,Ut)})},this.getRtcStatsReport=()=>new a((ge,ot)=>{Jc((Vt,Ut)=>{Vt?ot(Vt):ge(Ut)})});function Od(ge){const ot=Xe&&Xe.video();if(ot)try{ot.setAudioVolume(ge)}catch(Vt){Mr.warn(`setAudioVolume: ${Vt}`),Ri===0&&(Mr.info("Using subscribeToAudio to mute Audio because setAudioVolume(0) failed"),ua.subscribeToAudio(!1))}Oe&&Oe.muteButton.muted(ge===0)}this.setAudioVolume=ge=>{const ot=vr(ge);return Wi("setAudioVolume","Attempt",{audioVolume:ot}),isNaN(ot)?(Mr.error("OT.Subscriber.setAudioVolume: value should be an integer between 0 and 100"),Wi("setAudioVolume","Failure",{message:"value should be an integer between 0 and 100"}),this):(ot!==ge&&Mr.warn("OT.Subscriber.setAudioVolume: value should be an integer between 0 and 100"),ot===Ri?(Od(Ri),Wi("setAudioVolume","Success",{audioVolume:Ri,message:"Requested volume is same as already set audioVolume"}),this):(Ri>0&&(Mo=Ri),Ri=ot,Od(Ri),Ri>0&&!Ar&&(Mo=Ri,this.subscribeToAudio(!0)),Wi("setAudioVolume","Success",{audioVolume:Ri}),this))},this.getAudioVolume=()=>{const ge=Xe&&Xe.video();if(ge)try{return ge.getAudioVolume()}catch(ot){Mr.warn(`getAudioVolume ${ot}`)}return Ri},this.subscribeToAudio=ge=>{const ot=(0,X.default)(ge,!0);Ms().forEach(function(){var Ut=(0,s.default)(l.default.mark(function Rn(kn){return l.default.wrap(function(ni){for(;;)switch(ni.prev=ni.next){case 0:return ni.next=2,kn;case 2:ni.sent.subscribeToAudio(ot);case 3:case"end":return ni.stop()}},Rn)}));return function(Rn){return Ut.apply(this,arguments)}}()),Sn&&Ms().length!==0&&fc({channelType:"audio",activeState:ot});const Vt=Ar!==ot;if(Ar=ot,Vt&&this.setAudioVolume(ot?Mo:0),Le.audioMediaProcessorConnector)if(Ar)fn();else try{Le.resetAudioStreamAndTrack(xl),Wi("setAudioMediaProcessorConnector","Success",{message:"reset the audio track"})}catch(Ut){Wi("setAudioMediaProcessorConnector","Failure",{message:`Error resetting track: ${Ut.message}`})}return Wi("subscribeToAudio","Event",{subscribeToAudio:ot}),this};const Bc={auto:"quality",publishVideo:"publishVideo",subscribeToVideo:"subscribeToVideo"};if($t.name==="Safari"){const ge=()=>{!Kn.hidden&&Ti.subscribeToVideo&&(Mr.debug("document visibility restored in Safari - resubscribing to video"),this.subscribeToVideo(!1),this.subscribeToVideo(!0))};Kn.addEventListener("visibilitychange",ge),this.once("destroyed",()=>{Kn.removeEventListener("visibilitychange",ge)})}this.subscribeToVideo=(ge,ot)=>{const Vt=(0,X.default)(ge,!0),Ut=!Vt&&ot==="auto";return ot||(Ec=!Vt),Ut&&(no=2),Wi("subscribeToVideo","Attempt",{subscribeToVideo:Vt,reason:ot}),Kc(!Vt||!Sn.hasVideo||!qn),Sn.hasVideo&&!Ls("video")?(Vt&&Mr.info("Subscriber is audio-only due to incompatibility, can't subscribeToVideo."),Ti.subscribeToVideo=!1,Wi("subscribeToVideo","Failure",{message:"No video tracks available"}),this):(Oe&&Oe.videoDisabledIndicator&&Oe.videoDisabledIndicator.disableVideo(Ut),Ms().length>0&&Kr&&Sn&&(Vt!==Ti.subscribeToVideo||ot!==Gn)&&!(Ec&&ot)&&fc({channelType:"video",activeState:Vt,activeReason:ot}),Ti.subscribeToVideo=Vt,Gn=ot,cr=Vt,td&&(cr?tn():Xt()),Wi("subscribeToVideo","Success",{subscribeToVideo:Vt,reason:ot}),ot!=="loading"&&this.dispatchEvent(new Ot.VideoEnabledChangedEvent(Vt?"videoEnabled":"videoDisabled",{reason:Bc[ot]||"subscribeToVideo"})),this)},this.setPreferredResolution=ge=>{if(Ol("Attempt",{preferredResolution:ge}),Rc){const ot="Cannot call this method directly if in auto mode.";Ol("Failure",{preferredResolution:ge,message:ot}),Mr.warn(ot);return}if(ge==="auto"){const ot="preferredResolution 'auto' cannot be set using setPreferredResolution(), it must be set in subscriberOptions property preferredResolution.";Ol("Failure",{preferredResolution:ge,message:ot}),Mr.warn(ot);return}nc(ge)};const Ol=(ge,ot)=>{Rc||Wi("setPreferredResolution",ge,ot)},nc=ge=>{if(this._preferredResolution=ge,pn.isDestroyed()||Ms().length===0&&!pn.current==="Connecting"){const Ut="Cannot set the max Resolution when not subscribing to a publisher";Ol("Failure",{preferredResolution:ge,message:Ut}),Mr.warn(Ut);return}if(Ti.preferredResolution=ge,Kr.sessionInfo.p2pEnabled){const Ut="OT.Subscriber.setPreferredResolution will not work in a P2P Session";Ol("Failure",{preferredResolution:ge,message:Ut}),Mr.warn(Ut);return}if(!pn.isStreamAdded()){Ol("Pending");return}const ot=Sn.getPreferredResolution();if(ot&&ge&&ot.width===ge.width&&ot.height===ge.height||!ot&&!ge){Ol("Cancel");return}Sn.setPreferredResolution(ge),Ol("Success")},Zc=(0,m.default)(ge=>{if(!ge)return;const ot=ge.offsetWidth,Vt=ge.offsetHeight,Ut=window.devicePixelRatio,Rn={width:ot*Ut,height:Vt*Ut};nc(Rn)},Jo);if(this.setPreferredFrameRate=ge=>{if(this._preferredFrameRate=ge,pn.isDestroyed()||Ms().length===0&&!pn.current==="Connecting"){Mr.warn("Cannot set the max frameRate when not subscribing to a publisher");return}if(Ti.preferredFrameRate=ge,Kr.sessionInfo.p2pEnabled){Mr.warn("OT.Subscriber.setPreferredFrameRate will not work in a P2P Session");return}const ot=Sn.getPreferredFrameRate();ge&&ot&&ot===ge||!ot&&!ge||Sn.setPreferredFrameRate(ge)},this.isSubscribing=()=>pn.isSubscribing(),this.isWebRTC=!0,this.isLoading=()=>Xe&&Xe.loading(),this.isAudioBlocked=()=>!!(Xe&&Xe.isAudioBlocked()),this.videoElement=()=>{const ge=Xe&&Xe.video();return ge?ge.domElement():null},this.videoWidth=()=>{const ge=Xe&&Xe.video();return ge?ge.videoWidth():void 0},this.videoHeight=()=>{const ge=Xe&&Xe.video();return ge?ge.videoHeight():void 0},this._subscribeToSelf=(0,s.default)(l.default.mark(function ge(){var ot;return l.default.wrap(function(Ut){for(;;)switch(Ut.prev=Ut.next){case 0:if(ot=Kr.getPublisherForStream(Sn),ot&&ot._.webRtcStream()){Ut.next=5;break}Cl.fail({payload:{reason:"streamNotFound"},error:ca(bt.STREAM_DESTROYED,new Error("Tried to subscribe to a local publisher, but its stream no longer exists"))}),Ut.next=14;break;case 5:return Id.resolve(),Ut.prev=6,Ut.next=9,Ju(ot._.webRtcStream());case 9:Ut.next=14;break;case 11:Ut.prev=11,Ut.t0=Ut.catch(6),Mr.error(Ut.t0);case 14:case"end":return Ut.stop()}},ge,null,[[6,11]])})),this._setupPeerConnection=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut,Rn,kn,Bn;return l.default.wrap(function(Uo){for(;;)switch(Uo.prev=Uo.next){case 0:return Ut=Vt.send,Rn=Vt.log,kn=Vt.logQoS,Bn=Vt.sourceStreamId,Ti.testNetwork&&gl.setAudioVolume(0),Ms().length===0&&pn.set("Connecting"),xl=Bn,fd[Bn]=new a((Aa,ji)=>{Kr._.getIceConfig().then(To=>{var es;To.needRumorIceServersFallback&&(To.servers=[...pu||[],...To.servers||[]]);const Ja={iceConfig:To,subscriberId:gl.widgetId,send:Ut,logAnalyticsEvent:Rn,p2p:Kr.sessionInfo.p2pEnabled,sourceStreamId:Bn,remoteConnectionId:Sn.connection.id,_singlePeerConnectionController:Bn==="MANTIS"&&bl,keyStore:Kr.keyStore,sFrameClientStore:Kr.sFrameClientStore,isE2ee:Kr._.isE2ee(),sessionId:(es=Kr)==null?void 0:es.sessionId};Object.prototype.hasOwnProperty.call(Ti,"codecFlags")&&(Ja.codecFlags=Ti.codecFlags);const vl=new Qo.SubscriberPeerConnection(Ja);vl.once("iceConnected",Id.resolve),vl.once("error",Id.reject),vl.on("qos",kn),Zu(vl,Bn),vl.init(Ss=>{Ss?ji(Ss):Aa(vl)})})}),Uo.abrupt("return",fd[Bn]);case 6:case"end":return Uo.stop()}},ot)}));return function(ot){return ge.apply(this,arguments)}}(),this.restrictFrameRate=ge=>(Mr.debug(`OT.Subscriber.restrictFrameRate(${ge})`),Wi("restrictFrameRate",ge.toString(),{streamId:Sn.id}),Kr.sessionInfo.p2pEnabled&&Mr.warn("OT.Subscriber.restrictFrameRate: Cannot restrictFrameRate on a P2P session"),typeof ge!="boolean"?Mr.error(`OT.Subscriber.restrictFrameRate: expected a boolean value got a ${typeof ge}`):(ed=ge,Sn.setRestrictFrameRate(ge)),this),this.on("styleValueChanged",Pe,this),this._={getDataChannel(ge,ot,Vt){return(0,s.default)(l.default.mark(function Ut(){return l.default.wrap(function(kn){for(;;)switch(kn.prev=kn.next){case 0:if(Wc()){kn.next=3;break}return Vt(new Eo.Error("Cannot create a DataChannel before there is a publisher connection.")),kn.abrupt("return");case 3:return kn.next=5,Wc();case 5:kn.sent.getDataChannel(ge,ot,Vt);case 6:case"end":return kn.stop()}},Ut)}))()},iceRestart(ge,ot){return(0,s.default)(l.default.mark(function Vt(){var Ut;return l.default.wrap(function(kn){for(;;)switch(kn.prev=kn.next){case 0:return ot===void 0&&(ot=!1),kn.next=3,Cd("MANTIS");case 3:Ut=kn.sent,Ut?(Tc("Attempt",{reason:ge}),Mr.debug("Subscriber: iceRestart attempt"),Ut.iceRestart(),ot&&Ut.generateOffer()):Mr.debug("Subscriber: Skipping ice restart, we have no peer connection");case 5:case"end":return kn.stop()}},Vt)}))()},unblockAudio:()=>Xe&&Xe.unblockAudio(),webRtcStream:()=>qn,setIceConfig:function(){var ge=(0,s.default)(l.default.mark(function Vt(Ut){return l.default.wrap(function(kn){for(;;)switch(kn.prev=kn.next){case 0:Ms().forEach(function(){var Bn=(0,s.default)(l.default.mark(function ni(Uo){return l.default.wrap(function(ji){for(;;)switch(ji.prev=ji.next){case 0:return ji.next=2,Uo;case 2:return ji.abrupt("return",ji.sent.setIceConfig(Ut));case 3:case"end":return ji.stop()}},ni)}));return function(ni){return Bn.apply(this,arguments)}}());case 1:case"end":return kn.stop()}},Vt)}));function ot(Vt){return ge.apply(this,arguments)}return ot}(),privateEvents:new h.default,startRoutedToRelayedTransition(){Ti.testNetwork||St(Sn,Kr)||(ec.startTransitionToRelayed(),hd())},startRelayedToRoutedTransition(){ec.startTransitionToRouted(Al)},setSinkId(ge){if(Xe&&Xe.video())return Xe.setSinkId(ge);Mr.debug("Called setAudioOutputDevice on a subscriber without a video element")},pauseAndPlayVideoElement(){Xe&&Xe.pauseAndPlayVideoElement()},get isSubscribingToVideo(){return Ti.subscribeToVideo},getActiveSourceStreamId(){return xl}},this._onSenderStatsReceived=ge=>{let ot;try{ot=JSON.parse(ge.data)}catch(Vt){Mr.error(`Sender-Stats parsing failed: ${Vt.message}`);return}qd=ot},pn=new Co(Oc),Mr.debug(`OT.Subscriber: subscribe to ${Sn.id}`),pn.set("Init"),!Sn)return Mr.error("OT.Subscriber: No stream parameter."),!1;un={updated:_u},Sn.on(un,this),Ti.name=Ti.name||Sn.name,Ti.classNames="OT_root OT_subscriber",Ti.style&&this.setStyle(Ti.style,null,!0),Mo=dn,Ti.subscribeToVideo=(0,X.default)(Ti.subscribeToVideo,!0),Ec=!Ti.subscribeToVideo,Ti.subscribeToAudio=(0,X.default)(Ti.subscribeToAudio,!0),this.subscribeToAudio(Ti.subscribeToAudio),this.setAudioVolume(ha(Ti)),Xe=new Qo.WidgetView(Tl,Object.assign({},Ti,{widgetType:"subscriber"})),Xe.on("error",Td),Xe.on("audioBlocked",()=>this.trigger("audioBlocked")),Xe.on("audioUnblocked",()=>this.trigger("audioUnblocked")),Xe.on("amrLogEvent",(ge,ot,Vt)=>{Wi(ge,ot,{},Vt)}),this.id=Xe.domId(),ds=Xe.domId(),this.element=Xe.domElement,Xe.on("videoElementCreated",ge=>{const ot=new Ot.VideoElementCreatedEvent(ge),Vt=this;mo?this.dispatchEvent(ot):this.once("loaded",()=>{Vt.dispatchEvent(ot)}),Rc&&ge&&(ge.height!==0&&ge.width!==0&&Zc(ge),xd=new hl(()=>{Zc(ge)}),xd.observe(ge))}),Xe.on("destroy",()=>{var ge;(ge=xd)==null||ge.disconnect()}),this.element&&ze.call(this);const co=Sn.getChannelsOfType("audio"),gd=Sn.getChannelsOfType("video"),us=Sn.getChannelsOfType("data");let ht=us.some(ge=>ge.id==="caption1"&&ge.active);this.subscribeToCaptions=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut,Rn;return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:Ut=(0,X.default)(Vt,!0),Rn={active:Ut},ht=Ut,Wi("subscribeToCaptions","Attempt",{subscribeToCaptions:Ut}),Es.subscriberChannelUpdate(Sn.id,gl.widgetId,"caption1",Rn),Wi("subscribeToCaptions","Success",{subscribeToCaptions:Ut});case 6:case"end":return Bn.stop()}},ot)}));return function(ot){return ge.apply(this,arguments)}}(),this.isSubscribedToCaptions=()=>ht;const P=co.map(ge=>({id:ge.id,type:ge.type,active:Ti.subscribeToAudio})).concat(gd.map(ge=>{const ot={id:ge.id,type:ge.type,active:Ti.subscribeToVideo,restrictFrameRate:Ti.restrictFrameRate!==void 0?Ti.restrictFrameRate:!1};return Ti.preferredFrameRate!==void 0&&(ot.preferredFrameRate=parseFloat(Ti.preferredFrameRate),this._preferredFrameRate=ot.preferredFrameRate),Ti.preferredHeight!==void 0&&(ot.preferredHeight=parseInt(Ti.preferredHeight,10)),Ti.preferredWidth!==void 0&&(ot.preferredWidth=parseInt(Ti.preferredWidth,10)),ot})).concat(us.map(ge=>({id:ge.id,type:ge.type,active:ge.active}))),ee=(ru=Sn.getChannelsOfType("data")[0])==null?void 0:ru.active,Re=!Ti.testNetwork&&St(Sn,Kr)&&!ee;(()=>{var ge;const ot=Kr.getPublisherForStream(Sn);if(ot!=null&&(ge=ot._)!=null&&ge.privateEvents&&Re){let Vt=!1;ot._.privateEvents.on("publisherCaptionsEnabled",Ut=>{!Vt&&Ut.captionsEnabled&&(P.find(Rn=>Rn.id==="caption1").active=!0,st(),Vt=!0)})}})();const st=()=>{Cl.beginConnect(),Es.subscriberCreate(Sn.id,Hd,P,null,Kr._.isE2ee(),(ge,ot)=>{const Vt=Object.assign({status:ot==null?void 0:ot.status},(ge==null?void 0:ge.message)&&{error:ge==null?void 0:ge.message});Wi("subscriberCreate","Event",Vt),ge&&!Cl.is("disconnected")&&au(ge),pu=_l(ot)})};if(Re)return Cl.beginConnect(),this._subscribeToSelf(),this;st(),this.setVideoMediaProcessorConnector=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut;return l.default.wrap(function(kn){for(;;)switch(kn.prev=kn.next){case 0:if(Wi("setVideoMediaProcessorConnector","Attempt",{message:Vt?"setting the connector":"clearing the connector"}),en(),Vt){kn.next=6;break}return Xt(),Wi("setVideoMediaProcessorConnector","Success",{message:"clearing the connector"}),kn.abrupt("return");case 6:if(tr.default.isValidConnector(Vt)){kn.next=9;break}throw Wi("setVideoMediaProcessorConnector","Failure",{message:"Invalid MediaProcessorConnector"}),ca(Ae.default.INVALID_PARAMETER,new Error("setVideoMediaProcessorConnector: Tried to set invalid MediaProcessorConnector"));case 9:if(td=new tr.default(Vt),Ut=ec.isTransitioning(),!(Ut||!cr)){kn.next=14;break}return Wi("setVideoMediaProcessorConnector","Pending",{isTransitioning:Ut,isVideoEnabled:cr}),kn.abrupt("return");case 14:return Xt(),kn.prev=15,kn.next=18,tn();case 18:kn.next=24;break;case 20:throw kn.prev=20,kn.t0=kn.catch(15),Wi("setVideoMediaProcessorConnector","Failure",{message:kn.t0.message}),kn.t0;case 24:case"end":return kn.stop()}},ot,null,[[15,20]])}));return function(ot){return ge.apply(this,arguments)}}();const tn=function(){var ge=(0,s.default)(l.default.mark(function ot(){var Vt,Ut,Rn;return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:if(Vt=qn.getVideoTracks(),Vs=Vt[0],Vs){Bn.next=7;break}throw Ut="Connector not set as no video is present.",Mr.warn(`setVideoMediaProcessorConnector: ${Ut}`),td=null,Error("setVideoMediaProcessorConnector","Failure",{message:Ut});case 7:return Bn.prev=7,Bn.next=10,td.setTrack(Vs);case 10:Rn=Bn.sent,le(qn,Vs,Rn),Wi("setVideoMediaProcessorConnector","Success"),Bn.next=20;break;case 15:throw Bn.prev=15,Bn.t0=Bn.catch(7),td=null,Mr.error(`setVideoMediaProcessorConnector: Error getting track from MediaProcessorConnector: ${Bn.t0}`),Error("setVideoMediaProcessorConnector","Failure",{message:Bn.t0.message});case 20:case"end":return Bn.stop()}},ot,null,[[7,15]])}));return function(){return ge.apply(this,arguments)}}(),Xt=()=>{if(Vs){try{const ge=qn.getVideoTracks(),ot=ge[0];le(qn,ot,Vs),Wi("setVideoMediaProcessorConnector","Success",{message:"reset the video track"})}catch(ge){throw Mr.error(`setVideoMediaProcessorConnector: Error resetting track: ${ge}`),Error("setVideoMediaProcessorConnector","Failure",{message:ge.message})}Vs=null}},en=()=>{var ge;(ge=td)==null||ge.destroy(),td=null};this.setAudioMediaProcessorConnector=function(){var ge=(0,s.default)(l.default.mark(function ot(Vt){var Ut,Rn;return l.default.wrap(function(Bn){for(;;)switch(Bn.prev=Bn.next){case 0:if(Wi("setAudioMediaProcessorConnector","Attempt",{message:Vt?"setting the connector":"clearing the connector"}),Le==null||Le.clearAudioMediaProcessorConnector(xl),Vt){Bn.next=6;break}return Le==null||Le.resetAudioStreamAndTrack(),Wi("setAudioMediaProcessorConnector","Success",{message:"clearing the connector"}),Bn.abrupt("return");case 6:if(tr.default.isValidConnector(Vt)){Bn.next=11;break}throw Ut="Tried to set invalid MediaProcessorConnector",Mr.error(`setAudioMediaProcessorConnector: ${Ut}`),Wi("setAudioMediaProcessorConnector","Failure",{message:Ut}),ca(Ae.default.INVALID_PARAMETER,new Error(`setAudioVideoMediaProcessorConnector: ${Ut}`));case 11:if(Le.initializeConnector(Vt),Rn=ec.isTransitioning(),!(Rn||!Ar)){Bn.next=16;break}return Wi("setAudioMediaProcessorConnector","Pending",{isTransitioning:Rn,subscribingToAudio:Ar}),Bn.abrupt("return");case 16:Le.resetAudioStreamAndTrack(),fn();case 18:case"end":return Bn.stop()}},ot)}));return function(ot){return ge.apply(this,arguments)}}();const fn=function(){var ge=(0,s.default)(l.default.mark(function ot(){return l.default.wrap(function(Ut){for(;;)switch(Ut.prev=Ut.next){case 0:return Ut.prev=0,Ut.next=3,Le==null?void 0:Le.setAudioMediaProcessorConnector(xl);case 3:Ut.next=10;break;case 5:throw Ut.prev=5,Ut.t0=Ut.catch(0),Mr.error(`setAudioMediaProcessorConnector: ${Ut.t0.message}`),Wi("setAudioMediaProcessorConnector","Failure",{message:Ut.t0.message}),Ut.t0;case 10:Wi("setAudioMediaProcessorConnector","Success");case 11:case"end":return Ut.stop()}},ot,null,[[0,5]])}));return function(){return ge.apply(this,arguments)}}();return this};return ho.hasAudioOutputLevelStatCapability=Ur,ho.WidgetView=li,ho.SubscriberPeerConnection=Ll,ho}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(12)),l=a(i(325)),s=a(i(174)),c=function(h){h===void 0&&(h={});const f=Object.assign({},s.default,h),g=f.TRANSITION_TIMEOUT,A=new o.default,b={state:l.default.MANTIS,pendingTransitions:[],timeout:void 0,isTransitioning(){return this.state===l.default.TRANSITIONING},clearTransitionTimeout(){this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)},startTransitionToRelayed(){this.state=l.default.TRANSITIONING,this.clearTransitionTimeout(),this.timeout=setTimeout(()=>{A.emit("transitionToP2PTimeout")},g)},completeTransitionTo(p){p===l.default.P2P&&(this.clearTransitionTimeout(),this._transitionTo(p))},startTransitionToRouted(p){this.state===l.default.TRANSITIONING?this.pendingTransitions.push({to:l.default.MANTIS,process:p}):this._transitionTo(l.default.MANTIS,p)},_transitionTo(p,y){y&&(this.state=l.default.TRANSITIONING,y()),this.state=p,this._onTransitionCompleted()},_onTransitionCompleted(){if(this.pendingTransitions.length){const p=this.pendingTransitions.shift(),y=p.to,m=p.process;this._transitionTo(y,m)}}};return Object.assign(A,b)};r.default=c},function(n,r,i){r.__esModule=!0,r.default=void 0;var a={MANTIS:"MANTIS",P2P:"P2P",TRANSITIONING:"TRANSITIONING"};r.default=a},function(n,r,i){(function(o,l){n.exports=l()})(this,function(){return function(a){var o={};function l(s){if(o[s])return o[s].exports;var d=o[s]={i:s,l:!1,exports:{}};return a[s].call(d.exports,d,d.exports,l),d.l=!0,d.exports}return l.m=a,l.c=o,l.i=function(s){return s},l.d=function(s,d,c){l.o(s,d)||Object.defineProperty(s,d,{configurable:!1,enumerable:!0,get:c})},l.n=function(s){var d=s&&s.__esModule?function(){return s.default}:function(){return s};return l.d(d,"a",d),d},l.o=function(s,d){return Object.prototype.hasOwnProperty.call(s,d)},l.p="",l(l.s=5)}([function(a,o,l){a.exports=function(s,d){var c,u,h;for(c=1;c<arguments.length;c++){u=arguments[c];for(h in u)u.hasOwnProperty(h)&&(s[h]=u[h])}return s}},function(a,o,l){var s=l(0);a.exports={build:function(d,c){var u,h,f,g=c.plugins;for(u=0,h=g.length;u<h;u++)f=g[u],f.methods&&s(d,f.methods),f.properties&&Object.defineProperties(d,f.properties)},hook:function(d,c,u){var h,f,g,A,b=d.config.plugins,p=[d.context];for(u&&(p=p.concat(u)),h=0,f=b.length;h<f;h++)A=b[h],g=b[h][c],g&&g.apply(A,p)}}},function(a,o,l){function s(d){if(d.length===0)return d;var c,u,h=d.split(/[_-]/);if(h.length===1&&h[0][0].toLowerCase()===h[0][0])return d;for(u=h[0].toLowerCase(),c=1;c<h.length;c++)u=u+h[c].charAt(0).toUpperCase()+h[c].substring(1).toLowerCase();return u}s.prepended=function(d,c){return c=s(c),d+c[0].toUpperCase()+c.substring(1)},a.exports=s},function(a,o,l){var s=l(0),d=l(2);function c(u,h){u=u||{},this.options=u,this.defaults=h.defaults,this.states=[],this.transitions=[],this.map={},this.lifecycle=this.configureLifecycle(),this.init=this.configureInitTransition(u.init),this.data=this.configureData(u.data),this.methods=this.configureMethods(u.methods),this.map[this.defaults.wildcard]={},this.configureTransitions(u.transitions||[]),this.plugins=this.configurePlugins(u.plugins,h.plugin)}s(c.prototype,{addState:function(u){this.map[u]||(this.states.push(u),this.addStateLifecycleNames(u),this.map[u]={})},addStateLifecycleNames:function(u){this.lifecycle.onEnter[u]=d.prepended("onEnter",u),this.lifecycle.onLeave[u]=d.prepended("onLeave",u),this.lifecycle.on[u]=d.prepended("on",u)},addTransition:function(u){this.transitions.indexOf(u)<0&&(this.transitions.push(u),this.addTransitionLifecycleNames(u))},addTransitionLifecycleNames:function(u){this.lifecycle.onBefore[u]=d.prepended("onBefore",u),this.lifecycle.onAfter[u]=d.prepended("onAfter",u),this.lifecycle.on[u]=d.prepended("on",u)},mapTransition:function(u){var h=u.name,f=u.from,g=u.to;return this.addState(f),typeof g!="function"&&this.addState(g),this.addTransition(h),this.map[f][h]=u,u},configureLifecycle:function(){return{onBefore:{transition:"onBeforeTransition"},onAfter:{transition:"onAfterTransition"},onEnter:{state:"onEnterState"},onLeave:{state:"onLeaveState"},on:{transition:"onTransition"}}},configureInitTransition:function(u){return typeof u=="string"?this.mapTransition(s({},this.defaults.init,{to:u,active:!0})):typeof u=="object"?this.mapTransition(s({},this.defaults.init,u,{active:!0})):(this.addState(this.defaults.init.from),this.defaults.init)},configureData:function(u){return typeof u=="function"?u:typeof u=="object"?function(){return u}:function(){return{}}},configureMethods:function(u){return u||{}},configurePlugins:function(u,h){u=u||[];var f,g,A;for(f=0,g=u.length;f<g;f++)A=u[f],typeof A=="function"&&(u[f]=A=A()),A.configure&&A.configure(this);return u},configureTransitions:function(u){var h,f,g,A,b,p=this.defaults.wildcard;for(f=0;f<u.length;f++)for(g=u[f],A=Array.isArray(g.from)?g.from:[g.from||p],b=g.to||p,h=0;h<A.length;h++)this.mapTransition({name:g.name,from:A[h],to:b})},transitionFor:function(u,h){var f=this.defaults.wildcard;return this.map[u][h]||this.map[f][h]},transitionsFor:function(u){var h=this.defaults.wildcard;return Object.keys(this.map[u]).concat(Object.keys(this.map[h]))},allStates:function(){return this.states},allTransitions:function(){return this.transitions}}),a.exports=c},function(a,o,l){var s=l(0),d=l(6),c=l(1),u=[null,[]];function h(f,g){this.context=f,this.config=g,this.state=g.init.from,this.observers=[f]}s(h.prototype,{init:function(f){if(s(this.context,this.config.data.apply(this.context,f)),c.hook(this,"init"),this.config.init.active)return this.fire(this.config.init.name,[])},is:function(f){return Array.isArray(f)?f.indexOf(this.state)>=0:this.state===f},isPending:function(){return this.pending},can:function(f){return!this.isPending()&&!!this.seek(f)},cannot:function(f){return!this.can(f)},allStates:function(){return this.config.allStates()},allTransitions:function(){return this.config.allTransitions()},transitions:function(){return this.config.transitionsFor(this.state)},seek:function(f,g){var A=this.config.defaults.wildcard,b=this.config.transitionFor(this.state,f),p=b&&b.to;return typeof p=="function"?p.apply(this.context,g):p===A?this.state:p},fire:function(f,g){return this.transit(f,this.state,this.seek(f,g),g)},transit:function(f,g,A,b){var p=this.config.lifecycle,y=this.config.options.observeUnchangedState||g!==A;return A?this.isPending()?this.context.onPendingTransition(f,g,A):(this.config.addState(A),this.beginTransit(),b.unshift({transition:f,from:g,to:A,fsm:this.context}),this.observeEvents([this.observersForEvent(p.onBefore.transition),this.observersForEvent(p.onBefore[f]),y?this.observersForEvent(p.onLeave.state):u,y?this.observersForEvent(p.onLeave[g]):u,this.observersForEvent(p.on.transition),y?["doTransit",[this]]:u,y?this.observersForEvent(p.onEnter.state):u,y?this.observersForEvent(p.onEnter[A]):u,y?this.observersForEvent(p.on[A]):u,this.observersForEvent(p.onAfter.transition),this.observersForEvent(p.onAfter[f]),this.observersForEvent(p.on[f])],b)):this.context.onInvalidTransition(f,g,A)},beginTransit:function(){this.pending=!0},endTransit:function(f){return this.pending=!1,f},failTransit:function(f){throw this.pending=!1,f},doTransit:function(f){this.state=f.to},observe:function(f){if(f.length===2){var g={};g[f[0]]=f[1],this.observers.push(g)}else this.observers.push(f[0])},observersForEvent:function(f){for(var g=0,A=this.observers.length,b,p=[];g<A;g++)b=this.observers[g],b[f]&&p.push(b);return[f,p,!0]},observeEvents:function(f,g,A,b){if(f.length===0)return this.endTransit(b===void 0?!0:b);var p=f[0][0],y=f[0][1],m=f[0][2];if(g[0].event=p,p&&m&&p!==A&&c.hook(this,"lifecycle",g),y.length===0)return f.shift(),this.observeEvents(f,g,p,b);var F=y.shift(),R=F[p].apply(F,g);return R&&typeof R.then=="function"?R.then(this.observeEvents.bind(this,f,g,p)).catch(this.failTransit.bind(this)):R===!1?this.endTransit(!1):this.observeEvents(f,g,p,R)},onInvalidTransition:function(f,g,A){throw new d("transition is invalid in current state",f,g,A,this.state)},onPendingTransition:function(f,g,A){throw new d("transition is invalid while previous transition is still in progress",f,g,A,this.state)}}),a.exports=h},function(a,o,l){var s=l(0),d=l(2),c=l(1),u=l(3),h=l(4),f={is:function(m){return this._fsm.is(m)},can:function(m){return this._fsm.can(m)},cannot:function(m){return this._fsm.cannot(m)},observe:function(){return this._fsm.observe(arguments)},transitions:function(){return this._fsm.transitions()},allTransitions:function(){return this._fsm.allTransitions()},allStates:function(){return this._fsm.allStates()},onInvalidTransition:function(m,F,R){return this._fsm.onInvalidTransition(m,F,R)},onPendingTransition:function(m,F,R){return this._fsm.onPendingTransition(m,F,R)}},g={state:{configurable:!1,enumerable:!0,get:function(){return this._fsm.state},set:function(m){throw Error("use transitions to change state")}}};function A(m){return p(this||{},m)}function b(){var m,F;typeof arguments[0]=="function"?(m=arguments[0],F=arguments[1]||{}):(m=function(){this._fsm.apply(this,arguments)},F=arguments[0]||{});var R=new u(F,A);return y(m.prototype,R),m.prototype._fsm.config=R,m}function p(m,F){var R=new u(F,A);return y(m,R),m._fsm(),m}function y(m,F){if(typeof m!="object"||Array.isArray(m))throw Error("StateMachine can only be applied to objects");c.build(m,F),Object.defineProperties(m,g),s(m,f),s(m,F.methods),F.allTransitions().forEach(function(R){m[d(R)]=function(){return this._fsm.fire(R,[].slice.call(arguments))}}),m._fsm=function(){this._fsm=new h(this,F),this._fsm.init(arguments)}}A.version="3.0.1",A.factory=b,A.apply=p,A.defaults={wildcard:"*",init:{name:"init",from:"none"}},a.exports=A},function(a,o,l){a.exports=function(s,d,c,u,h){this.message=s,this.transition=d,this.from=c,this.to=u,this.current=h}}])})},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(108)),s=(0,o.default)();r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=()=>["Firefox","Safari","Edge","Chrome","Opera"].indexOf(o.default.name)>-1;r.default=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(166));const u=(0,o.default)()("NotSubscribing",["NotSubscribing","Init","Connecting","BindingRemoteStream","Subscribing","Failed","Destroyed"],{NotSubscribing:["NotSubscribing","Init","Destroyed"],Init:["NotSubscribing","Connecting","BindingRemoteStream","Destroyed"],Connecting:["NotSubscribing","BindingRemoteStream","Failed","Destroyed"],BindingRemoteStream:["NotSubscribing","Subscribing","Failed","Destroyed","BindingRemoteStream"],Subscribing:["NotSubscribing","Failed","Destroyed","BindingRemoteStream"],Failed:["Destroyed"],Destroyed:[]});u.prototype.isDestroyed=function(){return this.current==="Destroyed"},u.prototype.isFailed=function(){return this.current==="Failed"},u.prototype.isSubscribing=function(){return this.current==="Subscribing"},u.prototype.isAttemptingToSubscribe=function(){return["Init","Connecting","BindingRemoteStream"].indexOf(this.current)!==-1},u.prototype.isStreamAdded=function(){return this.current==="BindingRemoteStream"||this.isSubscribing()};var h=u;r.default=h},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{let l=o.socket,s=o.uri,d=o.content;return(c,u)=>{let h=c.type,f=c.content;return l.send({message:{uri:s,method:h,content:Object.assign({},d,f)}},u)}};r.default=a},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=(o,l,s)=>{l!==s&&(o.removeTrack(l),o.addTrack(s))};r.default=a},function(n,r){function i(a){if(a==null)throw new TypeError("Cannot destructure undefined")}n.exports=i},function(n,r){function i(){return n.exports=i=Object.assign||function(a){for(var o=1;o<arguments.length;o++){var l=arguments[o];for(var s in l)Object.prototype.hasOwnProperty.call(l,s)&&(a[s]=l[s])}return a},i.apply(this,arguments)}n.exports=i},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{var l;const s=Object.assign({},o);return(o==null||(l=o.backgroundImgUrl)==null?void 0:l.includes("base64"))&&delete s.backgroundImgUrl,s};r.default=a},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=i(732),o=i(179),d={isSupported:()=>typeof MediaStreamTrackProcessor<"u"&&typeof MediaStreamTrackGenerator<"u",setMetadata:a.setVonageMetadata,createProcessor:o.createVonageMediaProcessor};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=y;var o=a(i(19)),l=a(i(11)),s=a(i(1)),d=a(i(10)),c=a(i(747)),u=a(i(24)),h=a(i(14)),f=a(i(8)),g=a(i(7)),A=a(i(748)),b=a(i(749)),p=a(i(177));function y(m){m===void 0&&(m={});const F=m.Errors||f.default,R=m.ExceptionCodes||d.default,C=m.logging||(0,s.default)("publisherInit"),B=m.otError||(0,h.default)(),N=m.OTHelpers||g.default,S=m.Publisher||(0,p.default)(),X=m.sessionObjects||u.default;return function(E,v,j){C.debug(`OT.initPublisher(${E})`),typeof E=="string"&&!document.getElementById(E)&&(E=v,v=j,j=arguments[3]),typeof E=="function"?(j=E,v=void 0,E=void 0):(0,l.default)(E)&&!N.isElementNode(E)&&(j=v,v=E,E=void 0),typeof v=="function"&&(j=v,v=void 0);let H;v&&((0,l.default)(v)?v.insertDefaultUI===!1&&E?H="You cannot specify a target element if insertDefaultUI is false":(0,c.default)(v.audioSource)&&(0,c.default)(v.videoSource)&&(H="You cannot specify both audioSource and videoSource as null or false"):(H="properties argument to Publisher constructor, if provided, should be an object",v=void 0)),(0,A.default)(v),(0,b.default)(v);const K=new S(v||{});X.publishers.add(K);const Fe=function(){j&&(0,o.default)(j)&&(j(...arguments),j=void 0)};H!==void 0&&(C.error(H),Fe(B(F.INVALID_PARAMETER,new Error(H),R.INVALID_PARAMETER)));const z=function(Ke){K.off("publishComplete",q),Fe(Ke)};let q=function(Ke){K.off("initSuccess",z),Ke&&Fe(Ke)};return K.once("initSuccess",z),K.once("publishComplete",q),K.publish(E),K}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=$;var l=o(i(4)),s=o(i(5)),d=o(i(12)),c=o(i(9)),u=o(i(750)),h=o(i(19)),f=o(i(11)),g=o(i(16)),A=o(i(6)),b=o(i(1)),p=o(i(73)),y=o(i(752)),m=o(i(10)),F=o(i(23)),R=o(i(103)),C=o(i(29)),B=o(i(30)),N=o(i(171)),S=o(i(753)),X=o(i(754)),J=o(i(112)),E=o(i(338)),v=o(i(24)),j=o(i(14)),H=o(i(755)),K=o(i(8)),Fe=o(i(758)),z=i(71),q=o(i(759)),Ae=i(107),Ke=o(i(72)),pe=o(i(181)),We=o(i(339)),xe=o(i(17)),$e=o(i(182)),Rt=o(i(7)),Be=o(i(177)),qe=o(i(760)),at=o(i(346)),Bt=o(i(345)),jt=o(i(323)),Ne=o(i(159)),Je=o(i(784)),ve=o(i(148)),Ye=o(i(787)),it=o(i(788)),Qt=o(i(336)),_t=o(i(37)),Dt=o(i(797)),Ee=o(i(78)),Ge=o(i(807));const he=(0,_t.default)();function $(ie){var Ve;ie===void 0&&(ie={});const _e=ie.adaptIceServers||Ae.adaptIceServers,we=ie.AnalyticsHelper||B.default,nt=ie.APIKEY||Ke.default,Gt=ie.Capabilities||pe.default,An=ie.convertRumorError||We.default,Dn=ie.Errors||K.default,tr=ie.Events||(0,xe.default)(),nr=ie.Stream||$e.default,zn=ie.ExceptionCodes||m.default,dr=ie.hasIceRestartsCapability||E.default,Dr=ie.hasE2eeCapability||J.default,ui=ie.logging||(0,b.default)("Session"),Pn=ie.otError||(0,j.default)(),hr=ie.OTErrorClass||F.default,xr=ie.OTHelpers||Rt.default,Hi=ie.PressureObserver||((Ve=typeof window!==void 0?window:yr)==null?void 0:Ve.PressureObserver),Di=ie.StaticConfig||he,Da=ie.staticConfig||Di.onlyLocal(),oi=ie.Publisher||(0,Be.default)(),Ra=ie.RaptorSocket||(0,qe.default)(),Va=ie.SessionDispatcher||at.default,fi=ie.sessionObjects||v.default,_a=ie.sessionTag||Bt.default,dn=ie.socketCloseCodes||Ee.default,St=ie.Subscriber||(0,jt.default)(),mn=ie.systemRequirements||Ne.default,_n=ie.uuid||g.default,vr=(0,X.default)({otError:Pn}),ha=ie.global||(typeof window!==void 0?window:yr),Mi=ie.getSessionInfo||(0,Je.default)(),Fi=ie.KeyStore||Ye.default,In=ie.SFrameClientStore||(0,it.default)(),Fa=ie.SinglePeerConnectionController||Dt.default,Ml=ie.initPublisher||(0,Qt.default)({Publisher:oi});return function($o,Qa,Gl){var Gi=this;let Lt=Gl===void 0?{}:Gl,$t=Lt.iceConfig,At=Lt.connectionEventsSuppressed,bt=Lt.ipWhitelist,zt=bt===void 0?!1:bt,Ot=Lt.encryptionSecret,Ct=Lt.singlePeerConnection,Kt=Ct===void 0?!1:Ct,cn=Lt._prioritizeVP9,Jn=cn===void 0?!1:cn;const qt=(0,z.getProxyUrl)(),Mn=new we,mr=yn=>typeof yn=="string"?this.streams.get(yn)||{id:yn}:yn;(0,A.default)(this),this._tag=_a,mn.check()||mn.upgrade(),Qa==null&&(Qa=$o,$o=null),vr($t),this.id=Qa,this.sessionId=Qa,this.keyStore=new Fi,this.sFrameClientStore=new In;let Ur,sr,Nn,Gr,$r,kr,Mr,Ba,Io=!1,qo=$o;const Si=this;let Go=Qa,ca=_n(),Za=ui,ta=!1;const bo=[];let Eo=null,jl=!1,So,so=Ot,Ll,Ko,Co,ti;const yo=xr.statable(this,["disconnected","connecting","connected","disconnecting"],"disconnected");this.connection=null,this.connections=new xr.Collection,this.streams=new xr.Collection,this.archives=new xr.Collection;let ss,Zl;Hi&&(Zl=new Ge.default,Zl.initMonitoring(Hi),Zl.startMonitoring(),Zl.on("pressureMonitorEvent",yn=>{this.dispatchEvent(new tr.CpuPerformanceChangedEvent(yn))}));const ll=function(En){yo("disconnected"),En.code||(En.code=zn.CONNECT_FAILED),Za.error(`${En.name||"Unknown Error"}: ${En.message}`),hr.handleJsException({error:En,target:this,analytics:Mn}),this.trigger("sessionConnectFailed",En)},Jl=function(En){Io=!1;const Un=En.reason;this.logEvent("Connect","Disconnected",{reason:En.reason});const Rr=new tr.SessionDisconnectEvent("sessionDisconnected",Un.replace("networkTimedout","networkDisconnected"));this.isConnected()&&this.disconnect(),Ko(),Ll.call(this,Un),setTimeout(()=>{this.dispatchEvent(Rr),Co.call(this,Rr.reason),Rr.isDefaultPrevented()||ti.call(this,Rr.reason)})},Hl=function(En){At||En.id.match(/^symphony\./)||this.dispatchEvent(new tr.ConnectionEvent(C.default.CONNECTION_CREATED,En))},el=function(En,Un){En.id.match(/^symphony\./)||Ur&&En.id===Ur.id()||this.dispatchEvent(new tr.ConnectionEvent(C.default.CONNECTION_DESTROYED,En,Un))},Ji=function(En){En&&En.connection&&(!this.connection||En.connection.id!==this.connection.id)&&this.dispatchEvent(new tr.StreamEvent(C.default.STREAM_CREATED,En,null,!1))},Pr=function(En){const Un=En.target,Rr=En.changedProperty;let si=En.newValue;Rr==="videoDisableWarning"||Rr==="audioDisableWarning"||(Rr==="videoDimensions"&&(si={width:si.width,height:si.height}),this.dispatchEvent(new tr.StreamPropertyChangedEvent(C.default.STREAM_PROPERTY_CHANGED,Un,Rr,En.oldValue,si)))},Ys=function(En,Un){Un===void 0&&(Un="clientDisconnected");const Rr=new tr.StreamEvent("streamDestroyed",En,Un,!0),si=()=>{fi.subscribers.where({streamId:En.id}).filter(Br=>Br.session.id===this.id&&Br.stream).forEach(Br=>{Br._disconnect({reason:Un}),Rr.isDefaultPrevented()||Br._destroy({reason:Un,noStateTransition:!0})})};En.connection.id===this.connection.id?fi.publishers.where({streamId:En.id}).forEach(function(Br){Br._.unpublishStreamFromSession(En,this,Un)},this):this.dispatchEvent(Rr),si()},_l=function(En){this.dispatchEvent(new tr.ArchiveEvent("archiveStarted",En))},Qn=function(En){this.dispatchEvent(new tr.ArchiveEvent("archiveDestroyed",En))},Kn=function(En){const Un=En.target,Rr=En.changedProperty,si=En.newValue;Rr==="status"&&si==="stopped"?this.dispatchEvent(new tr.ArchiveEvent("archiveStopped",Un)):this.dispatchEvent(new tr.ArchiveEvent("archiveUpdated",Un))},Fr=()=>fi.subscribers.forEach(yn=>yn._.pauseAndPlayVideoElement()),li=function(){Si.token=null,Nn=null,yo("disconnected"),Ur=null,sr&&(sr.stop(),sr=null),Si.connection=null,Si.capabilities=new Gt([],{hasE2eeCapability:Dr}),Si.connections.destroy(),Si.streams.destroy(),Si.archives.destroy()};Ko=function(){ca=_n(),li()},Ll=function(En){fi.publishers.where({session:this}).forEach(Un=>{Un.disconnect(En)}),fi.subscribers.where({session:this}).forEach(Un=>{Un._disconnect()})},Co=function(En){fi.publishers.where({session:this}).forEach(Un=>{Un._.streamDestroyed(En)})},ti=function(En){fi.subscribers.where({session:this}).forEach(Un=>{Un._destroy({reason:En})})};const ki=function(){Za.debug("OT.Session: connecting to Raptor");const En=(0,R.default)(this.sessionInfo.messagingURL,qt),Un=["forceMute"];this.sessionInfo.isAdaptiveEnabled&&Un.push("amr"),So&&Un.push("spc"),Ur=new Ra({connectionId:ca,sessionId:Qa,messagingSocketUrl:En,symphonyUrl:this.sessionInfo.symphonyAddress,dispatcher:Va(this,{connectionEventsSuppressed:At}),analytics:Mn,requestedCapabilities:Un});function si(Br,Jo){let ho;switch(Br){case"WebSocketConnection":if(ho=(0,u.default)(dn.codes,Qo=>Qo===Jo),ho)return Dn[`SOCKET_${ho}`];break;case"ConnectToSession":case"GetSessionState":switch(Jo){case zn.CONNECT_FAILED:return Dn.CONNECT_FAILED;case zn.UNEXPECTED_SERVER_RESPONSE:return Dn.UNEXPECTED_SERVER_RESPONSE;case zn.CONNECTION_LIMIT_EXCEEDED:return Dn.CONNECTION_LIMIT_EXCEEDED}break}}Ur.connect(Nn,this.sessionInfo,{connectionEventsSuppressed:At},(Br,Jo)=>{if(Br){const Qo={};let Tl;if(Br.reason==="ConnectToSession"||Br.reason==="GetSessionState"){const Zd=An(Br);(0,c.default)(Qo,{originalMessage:Br.message,originalCode:Br.code}),Br.code=Zd.code,Br.message=Zd.message}(Br.code||Br.message||Br.reason)&&(Tl={failureCode:Br.code,failureMessage:Br.message,failureReason:Br.reason,socketId:Ur.socketId}),Ur=null,this.logConnectivityEvent("Failure",Qo,Tl);const ga=si(Br.reason,Br.code);ga&&(Br=Pn(ga,new Error(Br.message),Br.code)),ll.call(this,Br);return}Za.debug("OT.Session: Received session state from Raptor",Jo),this.connection=this.connections.get(Ur.id()),this.connection&&(this.capabilities=this.connection.permissions),yo("connected"),this.logConnectivityEvent("Success",{connectionId:this.connection.id}),this.connection.on("destroyed",Jl,this),this.dispatchEvent(new tr.SessionConnectEvent(C.default.SESSION_CONNECTED)),this.connections.on({add:Hl,remove:el},this),this.streams.on({add:Ji,remove:Ys,update:Pr},this),this.archives.on({add:_l,remove:Qn,update:Kn},this),this.connections._triggerAddEvents(),this.streams._triggerAddEvents(),this.archives._triggerAddEvents(),xr.env.isiOS&&xr.env.iOSVersion>=13.3&&this.on("gsmCallEnded",Fr)})},$a=yn=>this.capabilities.permittedTo(yn),oa=(yn,En)=>{ui.error(`${yn.name}: ${yn.message}`),typeof En=="function"&&En(yn),hr.handleJsException({error:yn,target:this,analytics:Mn})},hl=yn=>{const En=Pn(yn.code,new Error(yn.message),yn.exceptionCode);return oa(En),En},wa=()=>this.isNot("connected")?hl(Fe.default.NOT_CONNECTED):$a("forceMute")?null:hl(Fe.default.PERMISSION_DENIED),qa=yn=>yn.code==="404"?hl(Fe.default.NOT_FOUND):yn.code==="403"?hl(Fe.default.PERMISSION_DENIED):hl(Fe.default.UNEXPECTED_SERVER_RESPONSE);this.reportIssue=yn=>{let En=yn.id;return(0,N.default)(Mn.logEvent.bind(Mn))({action:"ReportIssue",variation:"Event",connectionId:ca,payload:{reportIssueId:En}},null)},this.logEvent=function(yn,En,Un,Rr){let si={action:yn,variation:En,payload:Un,sessionId:Go,messagingServer:$r,p2p:Gr,partnerId:qo,connectionId:ca,singlePeerConnection:So};Rr&&(si=(0,c.default)(Rr,si)),Mn.logEvent(si)},this.logConfigurationFileEvent=function(yn,En,Un){if(En===void 0&&(En=null),Un===void 0&&(Un={}),yn==="Attempt")Mr=new Date().getTime();else if(yn==="Failure"||yn==="Success"){const Rr=new Date().getTime()-Mr;(0,c.default)(Un,{attemptDuration:Rr})}qt&&(Un.proxyUrl=qt),this.logEvent("ConfigurationFile",yn,En,Object.assign({},Un))},this.logConnectivityEvent=function(yn,En,Un){if(En===void 0&&(En=null),Un===void 0&&(Un={}),qt&&(Un.proxyUrl=qt),yn==="Attempt"&&(sr&&(sr.stop(),ui.error("_connectivityAttemptPinger should have been cleaned up")),kr=new Date().getTime(),sr=new p.default(()=>{this.logEvent("Connect","Attempting",En,Object.assign({},Un))},1/5,6),sr.start()),yn==="Failure"||yn==="Success"||yn==="Cancel"){const Rr=si=>{sr&&(sr.stop(),sr=void 0),this.logEvent("Connect",yn,En,Object.assign({},Un,{attemptDuration:new Date().getTime()-kr,iceConfig:si,ipWhitelist:zt}))};yn==="Success"?this._.getIceConfig().then(si=>{const Br={includeServers:$t&&$t.includeServers||"all",transportPolicy:si.transportPolicy};Br.servers=si.servers?si.servers.map(Jo=>({url:Jo.urls})):[],Rr(Br)}):Rr()}else this.logEvent("Connect",yn,En,Un)},this.connect=function(){let yn;for(var En=arguments.length,Un=new Array(En),Rr=0;Rr<En;Rr++)Un[Rr]=arguments[Rr];Un.length>1&&(typeof Un[0]=="string"||typeof Un[0]=="number")&&typeof Un[1]=="string"?($o==null&&(qo=Un[0].toString()),yn=Un[1]):yn=Un[0];const si=Un[Un.length-1];if(Gi.is("connecting","connected"))return Za.warn(`OT.Session: Cannot connect, the session is already ${Gi.currentState}`),Gi;Gi.is("disconnecting")&&(Za.warn("OT.Session: trying to connect while the session is not done disconnecting."),ca=_n()),Mn.sessionInfo=new ve.default,li(),yo("connecting");const Br=ca;function Jo(){const ga=ca!==Br;return ga&&ui.debug("Connection was interrupted"),ga}if(Gi.token=!(0,h.default)(yn)&&yn,Nn=!(0,h.default)(yn)&&yn,si&&(0,h.default)(si)){let ga;const Zd=function(){ga();for(var eo=arguments.length,Hd=new Array(eo),$l=0;$l<eo;$l++)Hd[$l]=arguments[$l];si(void 0,...Hd)},gl=function(){ga(),si(...arguments)};ga=()=>{Gi.off("sessionConnected",Zd),Gi.off("sessionConnectFailed",gl)},Gi.once("sessionConnected",Zd),Gi.once("sessionConnectFailed",gl)}if(qo==null||(0,h.default)(qo))return setTimeout(ll.bind(Gi,Pn(Dn.AUTHENTICATION_ERROR,new Error("API Key is undefined. You must pass an API Key to initSession."),zn.AUTHENTICATION_ERROR))),Gi;if(!Go||(0,f.default)(Go)||Array.isArray(Go)){let ga;return Go?(ga="SessionID is not a string. You must use string as the session ID passed into OT.initSession().",Go=Go.toString()):ga="SessionID is undefined. You must pass a sessionID to initSession.",setTimeout(ll.bind(Gi,Pn(Dn.INVALID_SESSION_ID,new Error(ga),zn.INVALID_SESSION_ID))),Gi.logConnectivityEvent("Attempt"),Gi.logConnectivityEvent("Failure",null,{failureReason:"ConnectToSession",failureCode:zn.INVALID_SESSION_ID,failureMessage:ga}),Gi}if(Gi.apiKey=qo.toString(),qo=qo.toString(),Zl&&Zl.startMonitoring(),so){if(!Dr())return setTimeout(ll.bind(Gi,Pn(Dn.UNSUPPORTED_BROWSER,new Error("E2E Encryption is not supported in your browser.")))),Gi;try{(0,q.default)(so),Gi.keyStore.set(Qa,so),jl=!0}catch(ga){return setTimeout(ll.bind(Gi,Pn(Dn.INVALID_ENCRYPTION_SECRET,new Error(`Invalid encryptionSecret: ${ga.message}`)))),Gi}}nt.value.length===0&&(nt.value=qo);const ho=!!Di.onlyLocal().configUrl,Qo=zt===!0&&!!Di.onlyLocal().ipWhitelistConfigUrl;return!ho&&!Qo?Gi.logConfigurationFileEvent("Event",{message:"No configUrl, using local config only"}):Gi.logConfigurationFileEvent("Attempt"),(ho||Qo?Di.get({partnerId:qo,token:yn,useIpWhitelistConfigUrl:Qo,proxyUrl:qt}):a.resolve(Di.onlyLocal())).then(ga=>((ho||Qo)&&Gi.logConfigurationFileEvent("Success"),ga),ga=>((ho||Qo)&&Gi.logConfigurationFileEvent("Failure",{failureMessage:ga.message,failureStack:ga.stack}),Di.onlyLocal())).then(ga=>{if(Gi.staticConfig=ga,Mn.staticConfig=ga,ga.apiEnabled===!1)throw Pn(Dn.API_KEY_DISABLED,new Error("The API KEY has been disabled. Access to the service is currently being restricted. Please contact support."));if(Jo())return;Gi.logConnectivityEvent("Attempt"),qt?Gi.logEvent("SessionInfo","Attempt",null,{proxyUrl:qt}):Gi.logEvent("SessionInfo","Attempt");const Zd=eo=>{eo.code=(0,y.default)(eo.code),Gi.logConnectivityEvent("Failure",null,{failureReason:"GetSessionInfo",failureCode:eo.code||"No code",failureMessage:eo.message,failureName:eo.name}),eo.name&&(eo=Pn(eo.name,new Error(`${eo.message}${eo.code?` (${eo.code})`:""}`),eo.code)),ll.call(Gi,eo)},gl=eo=>{if(Jo())return;if(eo.partnerId&&eo.partnerId!==qo){const $l="Authentication Error: The API key does not match the token or session.";Zd(Pn(Dn.AUTHENTICATION_ERROR,new Error($l),zn.AUTHENTICATION_ERROR));return}So=(0,H.default)(eo,Kt),So&&(ss=new Fa(Gi)),Mn.sessionInfo=eo;const Hd={features:{reconnection:eo.reconnection,renegotiation:dr()&&eo.renegotiation,simulcast:eo.simulcast===void 0?!1:eo.simulcast&&xr.env.name==="Chrome"}};if(qt&&(Hd.proxyUrl=qt),Gi.is("connecting")){Gi.sessionInfo=eo,Gi._.setIceServers(Gi.sessionInfo.iceServers),Gr=eo.p2pEnabled,$r=eo.messagingServer,Gi.logEvent("SessionInfo","Success",null,Hd,{messagingServer:eo.messagingServer});const $l=ga.sessionInfoOverrides||{};Jn&&($l.priorityVideoCodec="vp9"),$l!=null&&typeof $l=="object"&&Object.keys($l).forEach(ua=>{Object.defineProperty(Gi.sessionInfo,ua,{value:$l[ua]})}),ki.call(Gi)}},ru=(0,R.default)(ga.apiUrl,qt);return Mi({anvilUrl:ru,sessionId:Qa,token:Nn,connectionId:ca,clientVersion:ga.clientVersion}).then(gl,Zd)}).catch(ga=>{ll.call(Gi,ga)}),Gi},this.disconnect=function(){ss&&(ss.destroy(),ss=null),Zl&&Zl.stopMonitoring(),Ur&&Ur.isNot("disconnected")?Ur.isNot("disconnecting")&&(Ur.isNot("connecting")||this.logConnectivityEvent("Cancel"),yo("disconnecting"),Ur.disconnect(),this.off("gsmCallEnded",Fr)):Ko()},this.destroy=function(){this.streams.destroy(),this.connections.destroy(),this.archives.destroy(),this.disconnect()},this.publish=(yn,En,Un)=>{if(typeof yn=="function"&&(Un=yn,yn=void 0),typeof En=="function"&&(Un=En,En=void 0),Un=Un||function(){},this.isNot("connected"))return Mn.logError(1010,"OT.exception","We need to be connected before you can publish",null,{action:"Publish",variation:"Failure",failureReason:"unconnected",failureCode:zn.NOT_CONNECTED,failureMessage:"We need to be connected before you can publish",sessionId:Go,streamId:yn&&yn.stream?yn.stream.id:null,p2p:this.sessionInfo?this.sessionInfo.p2pEnabled:void 0,messagingServer:this.sessionInfo?this.sessionInfo.messagingServer:null,partnerId:qo}),oa(Pn(Dn.NOT_CONNECTED,new Error("We need to be connected before you can publish"),zn.NOT_CONNECTED),Un),null;if(!$a("publish")){const Br="This token does not allow publishing. The role must be at least `publisher` to enable this functionality",Jo={failureReason:"Permission",failureCode:zn.UNABLE_TO_PUBLISH,failureMessage:Br};return this.logEvent("Publish","Failure",null,Jo),oa(Pn(Dn.PERMISSION_DENIED,new Error(Br),zn.UNABLE_TO_PUBLISH),Un),null}const Rr=!yn||typeof yn=="string"||xr.isElementNode(yn),si=yn instanceof oi;if(!Rr&&!si){oa(Pn(Dn.INVALID_PARAMETER,new Error("Session.publish :: First parameter passed in is neither a string nor an instance of the Publisher"),zn.UNABLE_TO_PUBLISH),Un);return}if(si){if("session"in yn&&yn.session&&"sessionId"in yn.session)return yn.session.sessionId===this.sessionId?Za.warn(`Cannot publish ${yn.guid()} again to ${this.sessionId}. Please call session.unpublish(publisher) first.`):Za.warn(`Cannot publish ${yn.guid()} publisher already attached to ${yn.session.sessionId}. Please call session.unpublish(publisher) first.`),Un(null,yn),yn}else Rr&&(yn=Ml(yn,En));return ta&&yn._.forceMuteAudio(),yn._.publishToSession(this,Mn).then(()=>Un(null,yn),Br=>{Br.message=`Session.publish :: ${Br.message}`,Za.error(Br.code,Br.message),Un(Br)}),yn},this.unpublish=function(yn){if(!yn){Za.error("OT.Session.unpublish: publisher parameter missing.");return}yn._.unpublishFromSession(this,"unpublished")},this.setIceConfig=function(){var yn=(0,s.default)(l.default.mark(function En(Un){var Rr,si,Br;return l.default.wrap(function(ho){for(;;)switch(ho.prev=ho.next){case 0:if(vr(Un),Mn.logEvent({action:"setIceConfig",variation:"Attempt",payload:{newIceConfig:Un}}),$t=Object.assign({},Un),Un.includeServers!=="all"){ho.next=8;break}return ho.next=6,Si._.getOtIceServerInfo();case 6:Rr=ho.sent,Un.customServers=Un.customServers.concat(Rr.servers);case 8:return si=Qo=>({iceServers:Qo.customServers,iceTransportPolicy:Qo.transportPolicy}),Br=si(Un),ho.prev=10,ho.next=13,a.all(fi.publishers.map(Qo=>Qo._.setIceConfig(Br)).concat(fi.subscribers.map(Qo=>Qo._.setIceConfig(Br))));case 13:ho.next=19;break;case 15:throw ho.prev=15,ho.t0=ho.catch(10),Mn.logEvent({action:"setIceConfig",variation:"Failure",payload:{newIceConfig:Un}}),ho.t0;case 19:Mn.logEvent({action:"setIceConfig",variation:"Success",payload:{newIceConfig:Un}});case 20:case"end":return ho.stop()}},En,null,[[10,15]])}));return function(En){return yn.apply(this,arguments)}}(),this.subscribe=function(yn,En,Un,Rr){if(typeof En=="function"&&(Rr=En,En=void 0,Un=void 0),typeof Un=="function"&&(Rr=Un,Un=void 0),Rr=Rr||function(){},!this.connection||!this.connection.connectionId){oa(Pn(Dn.NOT_CONNECTED,new Error("Session.subscribe :: Connection required to subscribe"),zn.UNABLE_TO_SUBSCRIBE),Rr);return}if(!yn){oa(Pn(Dn.INVALID_PARAMETER,new Error("Session.subscribe :: stream cannot be null"),zn.UNABLE_TO_SUBSCRIBE),Rr);return}if(!Object.prototype.hasOwnProperty.call(yn,"streamId")){oa(Pn(Dn.INVALID_PARAMETER,new Error("Session.subscribe :: invalid stream object"),zn.UNABLE_TO_SUBSCRIBE),Rr);return}if(Un&&Un.insertDefaultUI===!1&&En){oa(Pn(Dn.INVALID_PARAMETER,new Error("You cannot specify a target element if insertDefaultUI is false"),zn.INVALID_PARAMETER),Rr);return}En&&En.insertDefaultUI===!1&&(Un=En,En=void 0);const si=new St(En,(0,c.default)(Un||{},{stream:yn,session:this,analytics:Mn,_singlePeerConnectionController:ss}),Br=>{if(Br){oa(Br,Rr);return}Rr(null,si)});return fi.subscribers.add(si),si},this.unsubscribe=function(yn){if(!yn){const En="OT.Session.unsubscribe: subscriber cannot be null";throw Za.error(En),new Error(En)}return yn.stream?(Za.debug(`OT.Session.unsubscribe: subscriber ${yn.id}`),yn._destroy({reason:"Unsubscribe"}),!0):(Za.warn("OT.Session.unsubscribe:: tried to unsubscribe a subscriber that had no stream"),!1)},this.getSubscribersForStream=function(yn){return fi.subscribers.where({streamId:yn.id})},this.getPublisherForStream=function(yn){let En,Un;if(typeof yn=="string")En=yn;else if(typeof yn=="object"&&yn&&Object.hasOwnProperty.call(yn,"id"))En=yn.id;else throw Un="Session.getPublisherForStream :: Invalid stream type",Za.error(Un),new Error(Un);return fi.publishers.where({streamId:En})[0]},this._={getProxyUrl(){return qt},isE2ee(){return Si.sessionInfo.e2ee&&jl&&!!Si.capabilities.supportsE2ee},isSpc(){return So},isSocketReconnecting(){return Io},getSocket(){return Ur},reconnecting:(function(){Io=!0,this.dispatchEvent(new tr.SessionReconnectingEvent)}).bind(this),reconnected:(function(){Io=!1,this.dispatchEvent(new tr.SessionReconnectedEvent),this.sessionInfo.reconnection&&(fi.publishers.where({session:this}).forEach(yn=>{yn._.iceRestart()}),this.sessionInfo.p2pEnabled||fi.subscribers.where({session:this}).forEach(yn=>{yn._.iceRestart("socket reconnected")}))}).bind(this),dispatchSignal:(function(yn,En,Un){const Rr=new tr.SignalEvent(En,Un,yn);Rr.target=this,this.trigger(C.default.SIGNAL,Rr),En&&this.dispatchEvent(Rr)}).bind(this),dispatchCaption:(function(yn,En){let Un,Rr,si;try{const Jo=JSON.parse(En.data);Un=Jo.caption.text,Rr=Jo.streamId,si=Jo.isFinal}catch(Jo){Za.error(`Caption parsing failed: ${Jo.message}`);return}const Br=new tr.CaptionReceivedEvent(Un,Rr,si);Br.target=this,this.trigger(C.default.SUBSCRIBER_CAPTION_RECEIVED,Br),this.dispatchEvent(Br)}).bind(this),subscriberChannelUpdate(yn,En,Un,Rr){return Ur?Ur.subscriberChannelUpdate(yn.id,En.widgetId,Un.id,Rr):(Za.warn("You are disconnected, cannot update subscriber properties ",Rr),null)},streamCreate(yn,En){let Un=yn===void 0?{}:yn,Rr=Un.name,si=Un.streamId,Br=Un.subscriberAudioFallbackEnabled,Jo=Un.channels,ho=Un.minBitrate,Qo=Un.sourceStreamId,Tl=Un.e2ee,ga=Un.publisherAudioFallbackEnabled,Zd=Un.customProperties;if(!Ur){Za.warn("You are disconnected, cannot create stream ",si);return}Ur.streamCreate({name:Rr,streamId:si,subscriberAudioFallbackEnabled:Br,channels:Jo,minBitrate:ho,maxBitrate:void 0,sourceStreamId:Qo,e2ee:Tl,publisherAudioFallbackEnabled:ga,customProperties:Zd},En)},streamDestroy(yn,En){if(!Ur){Za.warn("You are disconnected, cannot destroy stream ",yn);return}Ur.streamDestroy(yn,En)},streamChannelUpdate(yn,En,Un){if(!Ur){Za.warn("You are disconnected, cannot update stream properties ",Un);return}Ur.streamChannelUpdate(yn.id,En.id,Un)},setSocket(yn){Ur=yn},setLogging(yn){Za=yn},setState:yo,setIceServers(yn){yn&&(Ba={iceServers:_e(yn),timestamp:Date.now()})},getOtIceServerInfo(){const yn=Ba?Date.now()-Ba.timestamp:1/0,Un=24*60*60*1e3-yn,Rr=5*60*1e3;if(Un>Rr)return a.resolve({transportPolicy:Si&&Si.sessionInfo&&Si.sessionInfo.clientCandidates,servers:Ba&&Ba.iceServers});if(!Nn)return a.resolve({transportPolicy:Si&&Si.sessionInfo&&Si.sessionInfo.clientCandidates,servers:[],needRumorIceServersFallback:!0});const si=Da.clientVersion;return Mi({anvilUrl:(this.staticConfig||Da).apiUrl,sessionId:Qa,token:Nn,connectionId:ca,clientVersion:si}).then(Br=>(Si._.setIceServers(Br.iceServers),Ba?{transportPolicy:Si&&Si.sessionInfo&&Si.sessionInfo.clientCandidates,servers:Ba&&Ba.iceServers}:{transportPolicy:Si.sessionInfo.clientCandidates,servers:[],needRumorIceServersFallback:!0}))},getCodecFlags:()=>({h264:Si.sessionInfo.h264,vp9:Si.sessionInfo.vp9,vp8:Si.sessionInfo.vp8}),getVideoCodecsCompatible:yn=>(0,S.default)({RTCPeerConnection:ha.RTCPeerConnection,env:xr.env,stream:yn,codecFlags:Si._.getCodecFlags()}),getIceConfig:()=>{if(!$t)return Si._.getOtIceServerInfo();const yn=$t&&$t.transportPolicy==="relay"?"relay":Si.sessionInfo.clientCandidates;return($t.includeServers==="custom"?a.resolve({servers:[]}):Si._.getOtIceServerInfo()).then(Un=>(0,c.default)(Un,{transportPolicy:yn,servers:[...Un.servers,...$t.customServers]}))},forceMute:(function(yn){this.dispatchEvent(new tr.MuteForcedEvent(yn))}).bind(this),enableMuteOnEntry:()=>{ta=!0},addSubscriberToPeerConnectionsQueue:(yn,En)=>{bo.push({pc:yn,message:En}),Eo||(Eo=setInterval(()=>{const Un=bo.shift();Un?Un.pc.processMessage("offer",Un.message):(clearInterval(Eo),Eo=null)},100))},disableMuteOnEntry:()=>{ta=!1},privateEvents:new d.default},this.signal=function(yn,En){let Un=yn,Rr=En||function(){};if((0,h.default)(Un)&&(Rr=Un,Un=null),this.isNot("connected")){const Br="Unable to send signal - you are not connected to the session.";oa(Pn(Dn.NOT_CONNECTED,new Error(Br),500),Rr);return}function si(Br){switch(Br){case 400:case 413:return Dn.INVALID_PARAMETER;case 429:return Dn.RATE_LIMIT_EXCEEDED;case 404:return Dn.NOT_FOUND;case 500:return Dn.NOT_CONNECTED;case 403:return Dn.PERMISSION_DENIED;case 2001:return Dn.UNEXPECTED_SERVER_RESPONSE;default:return}}Ur.signal(Un,function(Br){if(Br){const Tl=si(Br.code);Tl&&(Br=Pn(Tl,new Error(Br.message),Br.code)),Rr(Br);return}for(var Jo=arguments.length,ho=new Array(Jo>1?Jo-1:0),Qo=1;Qo<Jo;Qo++)ho[Qo-1]=arguments[Qo];Rr(Br,...ho)},this.logEvent),yn&&yn.data&&typeof yn.data!="string"&&Za.warn("Signaling of anything other than Strings is deprecated. Please update the data property to be a string.")},this.forceDisconnect=function(yn,En){if(this.isNot("connected")){const Br="Cannot call forceDisconnect(). You are not connected to the session.";oa(Pn(Dn.NOT_CONNECTED,new Error(Br),zn.NOT_CONNECTED),En);return}const Un=typeof yn=="string"?yn:yn.id,Rr="Invalid Parameter. Check that you have passed valid parameter values into the method call.";if(!Un){oa(Pn(Dn.INVALID_PARAMETER,new Error(Rr),zn.INVALID_PARAMETER),En);return}const si="This token does not allow forceDisconnect. The role must be at least `moderator` to enable this functionality";if(!$a("forceDisconnect")){oa(Pn(Dn.PERMISSION_DENIED,new Error(si),zn.UNABLE_TO_FORCE_DISCONNECT),En);return}Ur.forceDisconnect(Un,function(Br){if(Br)oa(Pn(Dn.INVALID_PARAMETER,new Error(Rr),zn.INVALID_PARAMETER),En);else if(En&&(0,h.default)(En)){for(var Jo=arguments.length,ho=new Array(Jo>1?Jo-1:0),Qo=1;Qo<Jo;Qo++)ho[Qo-1]=arguments[Qo];En(Br,...ho)}})},this.forceUnpublish=function(yn,En){En===void 0&&(En=()=>{});const Un=Tl=>oa(Pn(Tl.name,new Error(Tl.msg),Tl.code),En),Rr={msg:"Invalid Parameter. Check that you have passed valid parameter values into the method call.",code:zn.INVALID_PARAMETER,name:Dn.INVALID_PARAMETER},si={msg:"Cannot call forceUnpublish(). You are not connected to the session.",code:zn.NOT_CONNECTED,name:Dn.NOT_CONNECTED},Br={msg:"This token does not allow forceUnpublish. The role must be at least `moderator` to enable this functionality",code:zn.UNABLE_TO_FORCE_UNPUBLISH,name:Dn.PERMISSION_DENIED},Jo={msg:"The stream does not exist.",name:Dn.NOT_FOUND},ho={msg:"An unexpected error occurred.",name:Dn.UNEXPECTED_SERVER_RESPONSE,code:zn.UNEXPECTED_SERVER_RESPONSE};if(!yn){Un(Rr);return}if(Gi.isNot("connected")){Un(si);return}const Qo=mr(yn);if(!$a("forceUnpublish")){Un(Br);return}Ur.forceUnpublish(Qo.id,Tl=>{if(!Tl){En(null);return}Tl.code==="404"?Un(Jo):Tl.code==="403"?Un(Br):Un(ho)})},this.forceMuteStream=yn=>new a((En,Un)=>{const Rr=wa();if(Rr){Un(Rr);return}if(!yn||!yn.id){Un(hl(Fe.default.INVALID_PARAMETER));return}Ur.forceMuteStream(yn.id,si=>{si?Un(qa(si)):En()})}),this.forceMuteAll=yn=>new a((En,Un)=>{const Rr=wa();if(Rr){Un(Rr);return}if(Array.isArray(yn)&&!yn.every(Br=>Br instanceof nr)||yn&&!Array.isArray(yn)){Un(hl(Fe.default.INVALID_PARAMETER));return}const si=(yn||[]).map(Br=>Br.id);Ur.forceMuteAll(si,!0,Br=>{Br?Un(qa(Br)):En()})}),this.disableForceMute=()=>new a((yn,En)=>{const Un=wa();if(Un){En(Un);return}Ur.forceMuteAll([],!1,Rr=>{Rr?En(qa(Rr)):yn()})}),this.setEncryptionSecret=function(){var yn=(0,s.default)(l.default.mark(function En(Un){return l.default.wrap(function(si){for(;;)switch(si.prev=si.next){case 0:if(so){si.next=3;break}return ui.error("Encryption secret must first be set in initSession."),si.abrupt("return");case 3:si.prev=3,(0,q.default)(Un),si.next=10;break;case 7:throw si.prev=7,si.t0=si.catch(3),Pn(Dn.INVALID_ENCRYPTION_SECRET,new Error(`setEncryptionSecret: ${si.t0.message}`));case 10:return si.prev=10,si.next=13,Gi.keyStore.set(Qa,Un);case 13:so=Un,si.next=19;break;case 16:si.prev=16,si.t1=si.catch(10),Za.error(`Error in setEncryptionSecret}: ${si.t1.message}`);case 19:case"end":return si.stop()}},En,null,[[3,7],[10,16]])}));return function(En){return yn.apply(this,arguments)}}(),this.isConnected=()=>this.is("connected"),this.capabilities=new Gt([],{hasE2eeCapability:Dr})}}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(52));const s=l.default.once;var d=()=>s()&&(o.default.isChromiumEdge||["Chrome","Safari","Firefox","Opera"].includes(o.default.name));r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=c;var o=a(i(10)),l=a(i(23));const s=[400,403,409,o.default.CONNECTION_LIMIT_EXCEEDED],d={CONNECT:"ConnectToSession",SESSION_STATE:"GetSessionState"};function c(u){let h,f;if(u.reason===d.CONNECT&&u.code===o.default.CONNECT_FAILED)h=u.code,f=l.default.getTitleByCode(u.code);else if(u.code&&s.indexOf(Number(u.code))>-1)switch(h=o.default.CONNECT_FAILED,u.reason){case d.CONNECT:switch(u.code){case o.default.CONNECTION_LIMIT_EXCEEDED:h=u.code,f="Cannot connect -- the limit for concurrent connections to the session has been reached";break;default:f="Received error response to connection create message.";break}break;case d.SESSION_STATE:f="Received error response to session read";break;default:f="";break}else h=o.default.UNEXPECTED_SERVER_RESPONSE,f="Unexpected server response. Try this operation again later.";return{code:h,message:f}}},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){return JSON.stringify(o)}},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{let l=o.logger,s=o.obj;o.eventNames.forEach(c=>{s.on(c,function(){for(var u=arguments.length,h=new Array(u),f=0;f<u;f++)h[f]=arguments[f];return l.spam("emitted",c,h)})})};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(19)),l=a(i(6)),s=a(i(1)),d=a(i(23)),c=a(i(183)),u=a(i(776));const h=(0,s.default)("Dispatcher"),f=function(){(0,l.default)(this),this.callbacks={}};f.prototype.registerCallback=function(A,b){this.callbacks[A]=b},f.prototype.triggerCallback=function(A){if(!A)return;const b=this.callbacks[A];if(b&&(0,o.default)(b)){const p=Array.prototype.slice.call(arguments);p.shift(),b(...p)}delete this.callbacks[A]},f.prototype.onClose=function(A){this.emit("close",A)},f.prototype.onReconnected=function(){this.emit("reconnected")},f.prototype.onReconnecting=function(){this.emit("reconnecting")},f.prototype.dispatch=function(A){var b,p;if(A.type===c.default.STATUS){var y;h.debug(A);let F;if(A.isError){let C;if(typeof A.data=="string")try{const B=JSON.parse(A.data);B&&typeof B=="object"&&(C=B.reason)}catch(B){h.warn("Failed to parse rumorMessage.data",B)}F=new d.default(A.status,C)}const R=A.data?JSON.parse(A.data):"";R!=null&&(y=R.mute)!=null&&y.active&&this.dispatchMuteOnEntry(),this.triggerCallback(A.transactionId,F,A);return}const m=(0,u.default)(A);switch(m.resource==="data"?h.spam(`${m.signature}:`,m):h.debug(`${m.signature}:`,m),m.resource){case"session":this.dispatchSession(m);break;case"connection":if(m!=null&&(b=m.content)!=null&&(p=b.userAgent)!=null&&p.includes("auriga"))return;this.dispatchConnection(m);break;case"stream":this.dispatchStream(m);break;case"stream_channel":this.dispatchStreamChannel(m);break;case"subscriber":this.dispatchSubscriber(m);break;case"subscriber_channel":this.dispatchSubscriberChannel(m);break;case"signal":this.dispatchSignal(m);break;case"data":m.params.channel==="caption1"?this.dispatchCaption(m):m.params.channel==="downlinkStats1"&&this.dispatchSenderStats(m);break;case"archive":this.dispatchArchive(m);break;case"source":this.dispatchSource(m);break;default:h.debug(`Type ${m.resource} is not currently implemented`)}},f.prototype.dispatchSession=function(A){switch(A.method){case"read":this.emit("session#read",A.content,A.transactionId);break;case"update":this.emit("session#update",A.content);break;default:h.debug(`${A.signature} is not currently implemented`)}},f.prototype.dispatchMuteOnEntry=function(){this.emit("session#muted")},f.prototype.dispatchConnection=function(A){switch(A.method){case"created":this.emit("connection#created",A.content);break;case"deleted":this.emit("connection#deleted",A.params.connection,A.reason);break;default:h.debug(`${A.signature} is not currently implemented`)}},f.prototype.dispatchStream=function(A){switch(A.method){case"created":this.emit("stream#created",A.content,A.transactionId);break;case"deleted":this.emit("stream#deleted",A.params.stream,A.reason,A.content);break;case"updated":this.emit("stream#updated",A.params.stream,A.content);break;case"update":this.emit("stream#update",A.params.stream,A.content);break;case"generateoffer":case"answer":case"pranswer":case"offer":case"candidate":this.dispatchJsep(A.method,A);break;default:h.debug(`${A.signature} is not currently implemented`)}},f.prototype.dispatchStreamChannel=function(A){switch(A.method){case"updated":this.emit("streamChannel#updated",A.params.stream,A.params.channel,A.content);break;default:h.debug(`${A.signature} is not currently implemented`)}},f.prototype.dispatchJsep=function(A,b){this.emit(`jsep#${A}`,b.params.stream,b.fromAddress,b)},f.prototype.dispatchSubscriberChannel=function(A){switch(A.method){case"updated":this.emit("subscriberChannel#updated",A.params.stream,A.params.channel,A.content);break;case"update":this.emit("subscriberChannel#update",A.params.subscriber,A.params.stream,A.content);break;default:h.debug(`${A.signature} is not currently implemented`)}},f.prototype.dispatchSubscriber=function(A){switch(A.method){case"created":this.emit("subscriber#created",A.params.stream,A.fromAddress,A.content.id);break;case"deleted":this.dispatchJsep("unsubscribe",A),this.emit("subscriber#deleted",A.params.stream,A.fromAddress);break;case"generateoffer":case"answer":case"pranswer":case"offer":case"candidate":this.dispatchJsep(A.method,A);break;default:h.debug(`${A.signature} is not currently implemented`)}},f.prototype.dispatchSignal=function(A){if(A.method!=="signal"){h.debug(`${A.signature} is not currently implemented`);return}this.emit("signal",A.fromAddress,A.content)},f.prototype.dispatchCaption=function(A){this.emit("caption",A.fromAddress,A.content)},f.prototype.dispatchSenderStats=function(A){this.emit("senderStatsReceived",A.params.subscriber,A.content)},f.prototype.dispatchArchive=function(A){switch(A.method){case"created":this.emit("archive#created",A.content);break;case"updated":this.emit("archive#updated",A.params.archive,A.content);break}},f.prototype.dispatchSource=function(A){switch(A.method){case"create":this.emit("source#create",A.params.source,A.params.stream,A.reason);break;case"delete":this.emit("source#delete",A.params.source,A.params.stream,A.reason);break;default:h.debug(`${A.signature} is not currently implemented`)}};var g=f;r.default=g},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(16)),l=a(i(778)),s=a(i(779)),d=a(i(7)),c=a(i(780)),u=a(i(340)),h=a(i(37));const f=(0,h.default)().onlyLocal(),g={};g.connections={},g.connections.create=function(b){const p=b.apiKey,y=b.sessionId,m=b.connectionId,F=b.connectionEventsSuppressed,R=b.capabilities;return(0,u.default)({method:"create",uri:`/v2/partner/${p}/session/${y}/connection/${m}`,content:{userAgent:d.default.env.userAgent,clientVersion:f.clientVersion,capabilities:R||[],connectionEventsSuppressed:F}})},g.connections.destroy=function(b){const p=b.apiKey,y=b.sessionId,m=b.connectionId;return(0,u.default)({method:"delete",uri:`/v2/partner/${p}/session/${y}/connection/${m}`,content:{}})},g.sessions={},g.sessions.get=function(b,p){return(0,u.default)({method:"read",uri:`/v2/partner/${b}/session/${p}`,content:{}})},g.streams={},g.streams.get=function(b,p,y){return(0,u.default)({method:"read",uri:`/v2/partner/${b}/session/${p}/stream/${y}`,content:{}})},g.streams.channelFromOTChannel=function(b){const p={id:b.id,type:b.type,active:b.active};return b.type==="video"&&(p.width=b.width,p.height=b.height,p.orientation=b.orientation,p.frameRate=b.frameRate,b.source!=="default"&&(p.source=b.source),p.fitMode=b.fitMode),p},g.streams.create=function(b){b===void 0&&(b={});const p=b,y=p.apiKey,m=p.sessionId,F=p.streamId,R=p.name,C=p.audioFallbackEnabled,B=p.publisherAudioFallbackEnabled,N=p.subscriberAudioFallbackEnabled,S=p.channels,X=p.minBitrate,J=p.maxBitrate,E=p.sourceStreamId,v=p.e2ee,j=p.customProperties,H={id:F,name:R,audioFallbackEnabled:C,publisherAudioFallbackEnabled:B,subscriberAudioFallbackEnabled:N,channel:S.map(K=>g.streams.channelFromOTChannel(K)),e2ee:v,customProperties:j};return X&&(H.minBitrate=Math.round(X)),J&&(H.maxBitrate=Math.round(J)),E&&(H.sourceStreamId=E),typeof v=="boolean"&&(H.e2ee=v),(0,u.default)({method:"create",uri:`/v2/partner/${y}/session/${m}/stream/${F}`,content:H})},g.streams.destroy=function(b,p,y,m){const F={};return m&&(F.sourceStreamId=m),(0,u.default)({method:"delete",uri:`/v2/partner/${b}/session/${p}/stream/${y}`,content:F})},g.streamChannels={},g.streamChannels.update=function(b,p,y,m,F){return(0,u.default)({method:"update",uri:`/v2/partner/${b}/session/${p}/stream/${y}/channel/${m}`,content:F})},g.subscribers={},g.subscribers.create=function(b){b===void 0&&(b={});const p=b,y=p.apiKey,m=p.sessionId,F=p.streamId,R=p.subscriberId,C=p.connectionId,B=p.channelsToSubscribeTo,N=p.sourceStreamId,S=p.e2ee,X={id:R,connection:C,keyManagementMethod:l.default,bundleSupport:(0,c.default)(),rtcpMuxSupport:(0,s.default)(),e2ee:S};return B&&(X.channel=B),N&&(X.sourceStreamId=N),(0,u.default)({method:"create",uri:`/v2/partner/${y}/session/${m}/stream/${F}/subscriber/${R}`,content:X})},g.subscribers.destroy=function(b,p,y,m,F){const R={};return F&&(R.sourceStreamId=F),(0,u.default)({method:"delete",uri:`/v2/partner/${b}/session/${p}/stream/${y}/subscriber/${m}`,content:R})},g.subscribers.update=function(b,p,y,m,F){return(0,u.default)({method:"update",uri:`/v2/partner/${b}/session/${p}/stream/${y}/subscriber/${m}`,content:F})},g.subscriberChannels={},g.subscriberChannels.update=function(b,p,y,m,F,R){return(0,u.default)({method:"update",uri:`/v2/partner/${b}/session/${p}/stream/${y}/subscriber/${m}/channel/${F}`,content:R})},g.signals={},g.signals.create=function(b,p,y,m,F){const R={};return m!==void 0&&(R.type=m),F!==void 0&&(R.data=F),(0,u.default)({method:"signal",uri:`/v2/partner/${b}/session/${p}${y!==void 0?`/connection/${y}`:""}/signal/${(0,o.default)()}`,content:R})},g.forceMute={},g.forceMute.update=b=>{const p=b.apiKey,y=b.sessionId,m=b.streamId,F=b.active,R=b.excludedStreamIds,C={reason:"mute",channels:["audio"],active:F,locked:!1};return R&&(C.exclusion=R),(0,u.default)({method:"update",uri:`/v2/partner/${p}/session/${y}${m?`/stream/${m}`:""}`,content:C})};var A=g;r.default=A},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=f;var o=a(i(42)),l=a(i(72)),s=a(i(184)),d=a(i(343)),c=a(i(345));const u=8192,h=128;function f(g,A,b){const p=function(B){return!/^[a-zA-Z0-9\-\._~]+$/.exec(B)},y=function(B){return B?B instanceof s.default||B._tag===c.default?null:{code:400,reason:"The To field was invalid"}:{code:400,reason:"The signal to field was invalid. Either set it to a OT.Connection, OT.Session, or omit it entirely"}},m=function(B){let N=null;return B==null?N={code:400,reason:"The signal type was null or undefined. Either set it to a String value or omit it"}:B.length>h?N={code:413,reason:`The signal type was too long, the maximum length of it is ${h} characters`}:p(B)&&(N={code:400,reason:"The signal type was invalid, it can only contain letters, numbers, '-', '_', and '~'."}),N},F=function(B){let N=null;if(B==null)N={code:400,reason:"The signal data was null or undefined. Either set it to a String value or omit it"};else try{JSON.stringify(B).length>u&&(N={code:413,reason:`The data field was too long, the maximum size of it is ${u} characters`})}catch{N={code:400,reason:"The data field was not valid JSON"}}return N},R=function(B){let N=null;return B===!0||B===!1||(N={code:400,reason:"The signal retryAfterReconnect was not true or false. Either set it to a Boolean value or omit it"}),N};this.toRaptorMessage=function(){let C=this.to;return C&&typeof C!="string"&&(C=C.id),d.default.signals.create(l.default.value,g,C,this.type,this.data)},this.toHash=function(){return b},this.error=null,this.retryAfterReconnect=!0,b&&(b.hasOwnProperty("data")&&(this.data=(0,o.default)(b.data),this.error=F(this.data)),b.hasOwnProperty("to")&&(this.to=b.to,this.error||(this.error=y(this.to))),b.hasOwnProperty("type")&&(this.error||(this.error=m(b.type)),this.type=b.type),b.hasOwnProperty("retryAfterReconnect")&&(this.error||(this.error=R(b.retryAfterReconnect)),this.retryAfterReconnect=b.retryAfterReconnect)),this.valid=this.error===null}},function(n,r,i){r.__esModule=!0,r.default=void 0;var a={};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=X;var o=a(i(4)),l=a(i(5)),s=a(i(1)),d=a(i(24)),c=a(i(347)),u=a(i(50)),h=a(i(184)),f=a(i(783)),g=a(i(342)),A=a(i(182)),b=a(i(157)),p=a(i(175));const y=(0,s.default)("SessionDispatcher");function m(J){return{id:J,creationTime:new Date().getTime(),data:{},capablities:{},permissions:[]}}function F(J,E){const v=J.channel.map(H=>new b.default(H)),j=J.connectionId?J.connectionId:J.connection.id;return new A.default(J.id,J.name,J.creationTime,E.connections.get(j),E,v,J.customProperties&&J.customProperties.initials)}function R(J,E){if(E.streams.has(J.id))return;const v=F(J,E);return E.streams.add(v),v}function C(J){return new c.default(J.id,J.name,J.status)}function B(J,E){if(E.archives.has(J.id))return;const v=C(J);return E.archives.add(v),v}const N=function(E){const v={};this.enqueue=function(){const H=arguments[0],K=Array.prototype.slice.call(arguments,1);v[H]||(v[H]=new f.default(E)),v[H].enqueue.apply(v[H],K)},this.triggerConnectionCreated=function(H){v[`connectionCreated${H.id}`]&&v[`connectionCreated${H.id}`].triggerAll()},this.triggerSessionConnected=function(H){v.sessionConnected&&v.sessionConnected.triggerAll(),H.forEach(function(K){this.triggerConnectionCreated(K)},this)}},S={};function X(J,E){let v=E===void 0?{}:E,j=v.connectionEventsSuppressed;const H=new g.default;let K=!1;const Fe=new N(H);H.on("reconnecting",()=>{J._.reconnecting()}),H.on("reconnected",()=>{J._.reconnected()}),H.on("close",Ae=>{const Ke=J.connection;if(Ke){if(Ke.destroyedReason()){y.debug(`Socket was closed but the connection had already been destroyed. Reason: ${Ke.destroyedReason()}`);return}Ke.destroy(Ae)}});const z=function(Ke,pe){return J.connections.has(Ke.id)?J.connections.get(Ke.id):(Ke=h.default.fromHash(Ke),(pe||J.connection&&Ke.id!==J.connection.id)&&(J.connections.add(Ke),Fe.triggerConnectionCreated(Ke)),Object.keys(S).forEach(We=>{const xe=S[We];if(xe&&Ke.id===xe.connection.id){R(xe,J),delete S[xe.id];const $e={debug:pe?"connection came in session#read":"connection came in connection#created",streamId:xe.id,connectionId:Ke.id};J.logEvent("streamCreated","warning",$e)}}),Ke)};H.on("session#read",(Ae,Ke)=>{let pe;const We={};We.streams=[],We.connections=[],We.archives=[],Ae.connection.forEach(xe=>{pe=z(xe,!0),We.connections.push(pe)}),Ae.stream.forEach(xe=>{We.streams.push(R(xe,J))}),(Ae.archive||Ae.archives).forEach(xe=>{We.archives.push(B(xe,J))}),H.triggerCallback(Ke,null,We),K=!0,Fe.triggerSessionConnected(J.connections)}),H.on("session#update",Ae=>{if(Ae.reason!=="mute"){y.debug("session#update that handle this reason is not currently implemented");return}const Ke=Ae.active===!0;J._.forceMute({active:Ke}),Ke?J._.enableMuteOnEntry():J._.disableMuteOnEntry()}),H.on("session#muted",()=>{J._.enableMuteOnEntry(),J._.forceMute({active:!0})}),H.on("connection#created",Ae=>{z(Ae)}),H.on("connection#deleted",(Ae,Ke)=>{if(Ae=J.connections.get(Ae),!Ae){y.warn("A connection was deleted that we do not know about");return}Ae.destroy(Ke)}),H.on("stream#created",(Ae,Ke)=>{const pe=Ae.id,We=Ae.sourceStreamId,xe=Ae.connection;let $e;if(j){if(xe==null||xe.id==null){J.logEvent("SessionDispatcher:stream#created","Event",{connection:xe,info:"Stream did not contain a connection object. Event ignored"});return}z(xe)}const Rt=Ae.connectionId||xe.id;if(J.connections.has(Rt))$e=R(Ae,J);else{S[pe]=Ae;const Be={debug:"eventOrderError -- streamCreated event before connectionCreated",streamId:pe,sourceStreamId:(0,p.default)(We)};J.logEvent("streamCreated","warning",Be)}$e?($e.publisher&&$e.publisher.setStream($e),H.triggerCallback(Ke,null,$e)):J.sessionInfo.isAdaptiveEnabled&&We==="P2P"&&d.default.subscribers.where({streamId:pe}).forEach(Be=>{Be._.startRoutedToRelayedTransition()})}),H.on("stream#deleted",(Ae,Ke,pe)=>{const We=J.streams.get(Ae),xe=pe.sourceStreamId,$e=d.default.subscribers,Be=J.sessionInfo.isAdaptiveEnabled&&xe==="P2P";!We&&!Be||(Be?$e.where({streamId:Ae}).forEach(qe=>{qe._.startRelayedToRoutedTransition()}):We.destroy(Ke))}),H.on("stream#updated",(Ae,Ke)=>{const pe=J.streams.get(Ae);if(!pe){y.error(`A stream does not exist with the id of ${Ae}, for stream#updated message!`);return}pe._.update(Ke)}),H.on("stream#update",(Ae,Ke)=>{const pe=J.streams.get(Ae),We=Ke.reason,xe=Ke.active;if(!pe){y.error(`A stream does not exist with the id of ${Ae}, for stream#updated message!`);return}if(We!=="mute"){y.debug("stream#update that handle this reason is not currently implemented");return}xe&&pe._.forceMute(Ke)}),H.on("streamChannel#updated",(Ae,Ke,pe)=>{let We;if(!(J.sessionInfo.isAdaptiveEnabled&&pe.sourceStreamId==="P2P")){if(!(Ae&&(We=J.streams.get(Ae)))){y.error("Unable to determine streamId, or the stream does not exist, for streamChannel message!");return}We._.updateChannel(Ke,pe)}});const q=(Ae,Ke,pe,We)=>{let xe,$e;const Rt={streamId:Ke},Be=d.default.subscribers,qe=d.default.publishers;switch(We.params.subscriber?xe={widgetId:We.params.subscriber}:xe=Rt,Ae){case"offer":$e=[].concat(Be.where(xe),qe.where(Rt)).slice(0,1);break;case"answer":case"pranswer":$e=[].concat(qe.where(Rt),Be.where(xe)).slice(0,1);break;case"generateoffer":case"unsubscribe":$e=qe.where(Rt);break;case"candidate":$e=[].concat(Be.where(xe),qe.where(Rt));break;default:y.debug(`jsep#${Ae} is not currently implemented`);return}if($e.length===0)return;let at=J.connections.get(pe);!at&&pe.match(/^symphony\./)&&(at=h.default.fromHash({id:pe,creationTime:Math.floor((0,u.default)())}),J.connections.add(at)),$e.forEach(function(){var Bt=(0,l.default)(o.default.mark(function jt(Ne){return o.default.wrap(function(ve){for(;;)switch(ve.prev=ve.next){case 0:return ve.prev=0,ve.next=3,Ne.processMessage(Ae,pe,We);case 3:ve.next=8;break;case 5:ve.prev=5,ve.t0=ve.catch(0),y.error("Error occurred during processMessage",ve.t0);case 8:case"end":return ve.stop()}},jt,null,[[0,5]])}));return function(jt){return Bt.apply(this,arguments)}}())};return H.on("jsep#offer",q.bind(null,"offer")),H.on("jsep#answer",q.bind(null,"answer")),H.on("jsep#pranswer",q.bind(null,"pranswer")),H.on("jsep#generateoffer",q.bind(null,"generateoffer")),H.on("jsep#unsubscribe",q.bind(null,"unsubscribe")),H.on("jsep#candidate",q.bind(null,"candidate")),H.on("subscriberChannel#updated",(Ae,Ke,pe)=>{if(!Ae||!J.streams.has(Ae)){y.error("Unable to determine streamId, or the stream does not exist, for subscriberChannel#updated message!");return}J.streams.get(Ae)._.updateChannel(Ke,pe)}),H.on("subscriberChannel#update",(Ae,Ke,pe)=>{if(!Ke||!J.streams.has(Ke)){y.error("Unable to determine streamId, or the stream does not exist, for subscriberChannel#update message!");return}if(!d.default.subscribers.has(Ae)){y.error("Unable to determine subscriberId, or the subscriber does not exist, for subscriberChannel#update message!");return}d.default.subscribers.get(Ae).disableVideo(pe.active)}),H.on("signal",(Ae,Ke)=>{if(j){let $e=Ke.connection||Ke.fromConnection;($e==null||$e.id==null)&&($e=m(Ae),J.logEvent("SessionDispatcher:Signal","Event",{fromAddress:Ae,connection:Ke.connection,fromConnection:Ke.fromConnection,info:"Signal did not contain a connection object. One has been constructed",constructedConnection:$e})),z($e)}const pe=Ke.type,We=Ke.data,xe=J.connections.get(Ae);J.connection&&Ae===J.connection.connectionId?K?J._.dispatchSignal(xe,pe,We):Fe.enqueue("sessionConnected","signal",Ae,pe,We):J.connections.get(Ae)?J._.dispatchSignal(xe,pe,We):Ae===""?J._.dispatchSignal(null,pe,We):Fe.enqueue(`connectionCreated${Ae}`,"signal",Ae,pe,We)}),H.on("caption",(Ae,Ke)=>{J._.dispatchCaption(Ae,Ke)}),H.on("senderStatsReceived",(Ae,Ke)=>{var pe;(pe=d.default.subscribers.get(Ae))==null||pe._onSenderStatsReceived(Ke)}),H.on("archive#created",Ae=>{B(Ae,J)}),H.on("archive#updated",(Ae,Ke)=>{const pe=J.archives.get(Ae);if(!pe){y.error(`An archive does not exist with the id of ${Ae}, for archive#updated message!`);return}pe._.update(Ke)}),H.on("source#create",(Ae,Ke,pe)=>{const We=(0,p.default)(Ae);J.logEvent("SessionDispatcher:source#create","Event",{sourceStreamId:We,streamId:Ke,reason:pe}),y.debug(`Received a request from RUMOR to start a transition to ${Ae} for the stream ID ${Ke} with the reason: ${pe}`),d.default.publishers.where({streamId:Ke}).forEach(xe=>{xe._.startRoutedToRelayedTransition()})}),H.on("source#delete",(Ae,Ke,pe)=>{J.logEvent("SessionDispatcher:source#delete","Event",{sourceStreamId:(0,p.default)(Ae),streamId:Ke,reason:pe}),y.debug(`Received a request from RUMOR to start a transition from P2P to MANTIS for the stream ID ${Ke} with the reason: ${pe}`),d.default.publishers.where({streamId:Ke}).forEach(We=>{We._.startRelayedToRoutedTransition()})}),H}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(6)),l=a(i(17));const s=(0,l.default)();function d(c,u,h){this.id=c,this.name=u,this.status=h,this._={},(0,o.default)(this),this._.update=f=>{Object.keys(f).forEach(g=>{const A=this[g];this[g]=f[g];const b=new s.ArchiveUpdatedEvent(this,g,A,this[g]);this.dispatchEvent(b)})},this.destroy=()=>{}}},function(n,r,i){(function(a){function o(c,u){for(var h=0,f=c.length-1;f>=0;f--){var g=c[f];g==="."?c.splice(f,1):g===".."?(c.splice(f,1),h++):h&&(c.splice(f,1),h--)}if(u)for(;h--;h)c.unshift("..");return c}r.resolve=function(){for(var c="",u=!1,h=arguments.length-1;h>=-1&&!u;h--){var f=h>=0?arguments[h]:a.cwd();if(typeof f!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!f)continue;c=f+"/"+c,u=f.charAt(0)==="/"}return c=o(s(c.split("/"),function(g){return!!g}),!u).join("/"),(u?"/":"")+c||"."},r.normalize=function(c){var u=r.isAbsolute(c),h=d(c,-1)==="/";return c=o(s(c.split("/"),function(f){return!!f}),!u).join("/"),!c&&!u&&(c="."),c&&h&&(c+="/"),(u?"/":"")+c},r.isAbsolute=function(c){return c.charAt(0)==="/"},r.join=function(){var c=Array.prototype.slice.call(arguments,0);return r.normalize(s(c,function(u,h){if(typeof u!="string")throw new TypeError("Arguments to path.join must be strings");return u}).join("/"))},r.relative=function(c,u){c=r.resolve(c).substr(1),u=r.resolve(u).substr(1);function h(m){for(var F=0;F<m.length&&m[F]==="";F++);for(var R=m.length-1;R>=0&&m[R]==="";R--);return F>R?[]:m.slice(F,R-F+1)}for(var f=h(c.split("/")),g=h(u.split("/")),A=Math.min(f.length,g.length),b=A,p=0;p<A;p++)if(f[p]!==g[p]){b=p;break}for(var y=[],p=b;p<f.length;p++)y.push("..");return y=y.concat(g.slice(b)),y.join("/")},r.sep="/",r.delimiter=":",r.dirname=function(c){if(typeof c!="string"&&(c=c+""),c.length===0)return".";for(var u=c.charCodeAt(0),h=u===47,f=-1,g=!0,A=c.length-1;A>=1;--A)if(u=c.charCodeAt(A),u===47){if(!g){f=A;break}}else g=!1;return f===-1?h?"/":".":h&&f===1?"/":c.slice(0,f)};function l(c){typeof c!="string"&&(c=c+"");var u=0,h=-1,f=!0,g;for(g=c.length-1;g>=0;--g)if(c.charCodeAt(g)===47){if(!f){u=g+1;break}}else h===-1&&(f=!1,h=g+1);return h===-1?"":c.slice(u,h)}r.basename=function(c,u){var h=l(c);return u&&h.substr(-1*u.length)===u&&(h=h.substr(0,h.length-u.length)),h},r.extname=function(c){typeof c!="string"&&(c=c+"");for(var u=-1,h=0,f=-1,g=!0,A=0,b=c.length-1;b>=0;--b){var p=c.charCodeAt(b);if(p===47){if(!g){h=b+1;break}continue}f===-1&&(g=!1,f=b+1),p===46?u===-1?u=b:A!==1&&(A=1):u!==-1&&(A=-1)}return u===-1||f===-1||A===0||A===1&&u===f-1&&u===h+1?"":c.slice(u,f)};function s(c,u){if(c.filter)return c.filter(u);for(var h=[],f=0;f<c.length;f++)u(c[f],f,c)&&h.push(c[f]);return h}var d="ab".substr(-1)==="b"?function(c,u,h){return c.substr(u,h)}:function(c,u,h){return u<0&&(u=c.length+u),c.substr(u,h)}}).call(this,i(27))},function(n,r,i){var a=i(801),o=i(248),l=i(89),s=i(147),d=l(function(c,u){return s(c)?a(c,o(u,1,s,!0)):[]});n.exports=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(22));const l=(0,o.default)(),s=l.getAudioOutputMediaDevices;var d=()=>s();r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(22));const l=(0,o.default)(),s=l.getActiveAudioOutputDevice;var d=()=>s();r.default=d},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(4)),s=o(i(5)),d=o(i(104)),c=o(i(22)),u=o(i(251)),h=o(i(30)),f=o(i(24)),g=o(i(351));const A=d.default.setCurrentAudioOutputDeviceId,b=(0,c.default)(),p=b.getDefaultAudioOutputDeviceId,y=b.getAudioOutputMediaDevices,m=new h.default,F=(X,J)=>{m.logEvent({action:"updateSubscribersSinkId",variation:X,payload:J})},R=X=>{const J=f.default.subscribers.map(E=>E._.setSinkId(X));return a.all(J)},C=function(){var X=(0,s.default)(l.default.mark(function J(E){return l.default.wrap(function(j){for(;;)switch(j.prev=j.next){case 0:return j.next=2,(0,u.default)();case 2:return j.prev=2,F("Attempt",{deviceId:E}),j.next=6,R(E);case 6:F("Success",{deviceId:E}),j.next=13;break;case 9:throw j.prev=9,j.t0=j.catch(2),F("Failure",{deviceId:E,error:j.t0==null?void 0:j.t0.message}),j.t0;case 13:case"end":return j.stop()}},J,null,[[2,9]])}));return function(E){return X.apply(this,arguments)}}(),B=function(){var X=(0,s.default)(l.default.mark(function J(){var E,v;return l.default.wrap(function(H){for(;;)switch(H.prev=H.next){case 0:return H.next=2,y();case 2:return E=H.sent,v=p(E),H.prev=4,H.next=7,C(v);case 7:A(v),H.next=12;break;case 10:H.prev=10,H.t0=H.catch(4);case 12:case"end":return H.stop()}},J,null,[[4,10]])}));return function(){return X.apply(this,arguments)}}(),N=function(){var X=(0,s.default)(l.default.mark(function J(){var E;return l.default.wrap(function(j){for(;;)switch(j.prev=j.next){case 0:return j.next=2,(0,g.default)();case 2:return E=j.sent,j.prev=3,j.next=6,C(E.deviceId);case 6:j.next=12;break;case 8:return j.prev=8,j.t0=j.catch(3),j.next=12,B();case 12:case"end":return j.stop()}},J,null,[[3,8]])}));return function(){return X.apply(this,arguments)}}();var S=function(){var X=(0,s.default)(l.default.mark(function J(E){return l.default.wrap(function(j){for(;;)switch(j.prev=j.next){case 0:return j.prev=0,F("Attempt",{deviceId:E}),j.next=4,R(E);case 4:F("Success",{deviceId:E}),A(E),j.next=14;break;case 8:return j.prev=8,j.t0=j.catch(0),F("Failure",{deviceId:E,error:j.t0==null?void 0:j.t0.message}),j.next=13,N();case 13:throw j.t0;case 14:case"end":return j.stop()}},J,null,[[0,8]])}));return function(J){return X.apply(this,arguments)}}();r.default=S}).call(this,i(2))},function(n,r,i){var a=i(0),o=a(i(42)),l=a(i(202)),s=a(i(6)),d=a(i(1)),c=a(i(127)),u=a(i(22)),h=a(i(141)),f=a(i(267)),g=a(i(142)),A=a(i(73)),b=a(i(10)),p=a(i(23)),y=a(i(252)),m=a(i(106)),F=a(i(150)),R=a(i(29)),C=a(i(144)),B=a(i(37)),N=a(i(30)),S=a(i(256)),X=a(i(572)),J=a(i(573)),E=a(i(574)),v=a(i(24)),j=a(i(14)),H=a(i(8)),K=a(i(151)),Fe=a(i(7)),z=a(i(72)),q=a(i(152)),Ae=a(i(269)),Ke=a(i(153)),pe=a(i(154)),We=a(i(270)),xe=a(i(263)),$e=a(i(602)),Rt=i(107),Be=a(i(283)),qe=a(i(157)),at=a(i(158)),Bt=a(i(159)),jt=a(i(74)),Ne=a(i(300)),Je=a(i(301)),ve=a(i(17)),Ye=a(i(166)),it=a(i(655)),Qt=a(i(167)),_t=a(i(660)),Dt=a(i(663)),Ee=a(i(168)),Ge=a(i(311)),he=a(i(265)),$=a(i(169)),ie=a(i(312)),Ve=a(i(318)),_e=a(i(319)),we=a(i(684)),nt=a(i(172)),Gt=a(i(323)),An=a(i(177)),Dn=a(i(336)),tr=a(i(337)),nr=a(i(808)),zn=a(i(809)),dr=a(i(810)),Dr=a(i(811)),ui=a(i(347)),Pn=a(i(181)),hr=a(i(184)),xr=a(i(812)),Hi=a(i(350)),Di=a(i(351)),Da=a(i(813)),oi=a(i(298)),Ra=a(i(346)),Va=a(i(344)),fi=a(i(182)),_a=a(i(329)),dn=a(i(77)),St=a(i(294)),mn=i(71),_n=a(i(173)),vr=a(i(814));i(816);const ha=(0,B.default)(),Mi=(0,d.default)("OT"),Fi=ha.onlyLocal(),In={};In.noConflict=(0,E.default)(),(typeof window!==void 0?window:yr).OT=In,n.exports=In,(()=>{let ta=In;Object.defineProperty(typeof window!==void 0?window:yr,"TB",{get:()=>(ta===In&&console.warn("window.TB is deprecated, and will be removed in the future. Please access via window.OT"),ta),set:bo=>{ta=bo},configurable:!0})})();const Fa=(0,K.default)(typeof window!==void 0?window:yr),Ml=(0,jt.default)({global:Fa}),hi=(0,j.default)({}),ml=(0,h.default)(),$o=(0,Ne.default)({otError:hi}),Qa=(0,Je.default)(),Gl=(0,y.default)({global:Fa}),Gi=(0,u.default)({getNativeEnumerateDevices:Gl}),Lt=(0,ve.default)(),$t=(0,Ye.default)(),At=(0,it.default)({otError:hi,global:Fa}),bt=(0,Qt.default)({chromeExtensionHelper:$o,otError:hi}),zt=(0,_t.default)({deviceHelpers:Gi,generateConstraintInfo:We.default,getUserMediaHelper:At,global:Fa,OTHelpers:Fe.default,screenSharing:bt}),Ot=(0,Dt.default)({otError:hi,processPubOptions:zt}),Ct=(0,Ee.default)({otError:hi}),Kt=(0,Ge.default)(),cn=(0,he.default)({otError:hi}),Jn=(0,l.default)({global:Fa,videoElementErrorMap:cn}),qt=(0,$.default)({global:Fa}),Mn=(0,ie.default)({PeerConnection:Ml,setCertificates:qt}),mr=(0,Ve.default)({PeerConnection:Ml,setCertificates:qt}),Ur=(0,_e.default)(),sr=(0,we.default)({otError:hi}),Nn=(0,m.default)({NativeVideoElementWrapper:Jn}),Gr=(0,F.default)(),$r=(0,nt.default)({VideoElementFacade:Nn}),kr=(0,Gt.default)({interpretPeerConnectionError:Ct,otError:hi,SubscriberPeerConnection:mr,WidgetView:$r}),Mr=(0,An.default)({APIKEY:z.default,createChromeMixin:Qa,deviceHelpers:Gi,EnvironmentLoader:pe.default,Errors:H.default,Events:Lt,ExceptionCodes:b.default,calculateCapableSimulcastStreams:Ae.default,global:Fa,interpretPeerConnectionError:Ct,IntervalRunner:A.default,Microphone:Kt,otError:hi,OTErrorClass:p.default,OTHelpers:Fe.default,parseIceServers:Rt.parseIceServers,processPubOptions:zt,PUBLISH_MAX_DELAY:Be.default,PublisherPeerConnection:Mn,PublishingState:Ur,StreamChannel:qe.default,systemRequirements:Bt.default,VideoOrientation:Gr,WidgetView:$r}),Ba=(0,Dn.default)({otError:hi,Publisher:Mr}),Io=(0,tr.default)({global:Fa,initPublisher:Ba,otError:hi,Publisher:Mr,Subscriber:kr}),qo=(0,nr.default)({Session:Io});(0,s.default)(In),(0,S.default)(In,"$",{name:"OT.$",getMessage:"Please use an external library like jQuery to select elements from the page.",value:Fe.default}),In.APIKEY=z.default.value,In.AnalyserAudioLevelSampler=g.default,In.Archive=ui.default,In.ArchiveEvent=Lt.ArchiveEvent,In.ArchiveUpdatedEvent=Lt.ArchiveUpdatedEvent,In.AudioLevelTransformer=q.default,In.AudioLevelUpdatedEvent=Lt.AudioLevelUpdatedEvent,In.AudioInputDeviceChangedEvent=Lt.AudioInputDeviceChangedEvent,In.Capabilities=Pn.default,In.Chrome=Ke.default,In.Connection=hr.default,In.ConnectionCapabilities=In.Connection.Capabilities,In.ConnectionEvent=Lt.ConnectionEvent,In.CpuPerformanceChangedEvent=Lt.CpuPerformanceChangedEvent,Object.keys(c.default).forEach(ta=>{In[ta.toUpperCase()]=c.default[ta].priority}),In.NONE=0,In.debug=Mi.debug,In.error=Mi.error,In.info=Mi.info,In.log=Mi.log,In.warn=Mi.warn,In.DestroyedEvent=Lt.DestroyedEvent,In.EnvLoadedEvent=Lt.EnvLoadedEvent,In.Error=p.default,In.Error.on(R.default.EXCEPTION,ta=>{if(ta.target===In.Error){const bo=(0,o.default)(ta);bo.target=In,In.dispatchEvent(bo)}else In.dispatchEvent(ta)}),In.Event=C.default,In.ExceptionCodes=b.default,In.ExceptionEvent=Lt.ExceptionEvent,In.getDevices=xr.default,In.getAudioOutputDevices=Hi.default,In.getActiveAudioOutputDevice=Di.default,In.setAudioOutputDevice=(0,Da.default)(),In.GetAudioLevelSampler=f.default,In.HAS_REQUIREMENTS=1,In.IntervalRunner=A.default,In.IssueReportedEvent=Lt.IssueReportedEvent,In.MediaStoppedEvent=Lt.MediaStoppedEvent,In.MediaStreamAvailableEvent=Lt.MediaStreamAvailableEvent,In.Microphone=Kt,In.NOT_HAS_REQUIREMENTS=0,In.PeerConnection=Ml,In.PeerConnection.QOS=oi.default,In.Publisher=Mr,In.PublisherPeerConnection=Mn,In.PublishingState=Ur,In.MuteForcedEvent=Lt.MuteForcedEvent,In.Session=Io,In.SessionConnectEvent=Lt.SessionConnectEvent,In.SessionDisconnectEvent=Lt.SessionDisconnectEvent,In.SessionDispatcher=Ra.default,In.Signal=Va.default,In.SignalEvent=Lt.SignalEvent,In.Stream=fi.default,In.StreamChannel=qe.default,In.StreamEvent=Lt.StreamEvent,In.StreamPropertyChangedEvent=Lt.StreamPropertyChangedEvent,In.StreamUpdatedEvent=Lt.StreamUpdatedEvent,In.StylableComponent=at.default,In.Subscriber=kr,In.SubscriberPeerConnection=mr,In.SubscribingState=_a.default,In.VideoDimensionsChangedEvent=Lt.VideoDimensionsChangedEvent,In.VideoDisableWarningEvent=Lt.VideoDisableWarningEvent,In.VideoElement=Nn,In.VideoEnabledChangedEvent=Lt.VideoEnabledChangedEvent,In.VideoOrientation=Gr,In.WidgetView=$r,In.getSupportedCodecs=zn.default,In.hasMediaProcessorSupport=dr.default,In.hasEndToEndEncryptionSupport=Dr.default,In._={AnalyticsHelper:N.default,getClientGuid:xe.default.get,StaticConfig:ha},Object.defineProperty(In,"version",{value:Fi.version});const Si={},Go=ta=>J.default.includes(ta);(0,S.default)(Si,"version",{value:Fi.version,name:"OT.properties.version",getWarning:"Please use OT.version instead",warnOnSet:!0,setWarning:"Mutating version has no effect"}),X.default.forEach(ta=>{let bo,Eo;if(Array.isArray(ta)){const So=ta[0],so=ta[1];Eo=So,bo=Fi[so]||so}else bo=Fi[ta],Eo=ta;const jl=Go(Eo);(0,S.default)(Si,Eo,{value:bo,name:`OT.properties.${Eo}`,warnOnSet:!0,canSet:jl,setWarning:jl?`Mutating ${Eo} can cause side effects`:`Mutating ${Eo} has no effect`})}),In.properties=Si,In.audioContext=ml,In.checkScreenSharingCapability=bt.checkCapability,In.checkSystemRequirements=Bt.default.check,In.components={},In.generateSimpleStateMachine=$t,In.getErrorTitleByCode=p.default.getTitleByCode,In.getLogs=Mi.getLogs,In.getStatsAdpater=St.default,In.getStatsHelpers=dn.default,In.getUserMedia=Ot,In.handleJsException=p.default.handleJsException,In.initPublisher=Ba,In.setProxyUrl=mn.setProxyUrl,In.initSession=function(ta,bo,Eo){return bo==null&&(bo=ta,ta=null),z.default.value.length===0&&ta&&(z.default.value=ta,In.APIKEY=ta),qo(ta,bo,Eo)};const ca=ta=>`${ta} is deprecated and will be removed in a future version of OpenTok`,Za=(ta,bo)=>()=>(console.warn(ca(ta)),bo);Object.defineProperties(In,{isUnloaded:{get:Za("OT.isUnloaded",pe.default.isUnloaded)},onLoad:{get:Za("OT.onLoad",pe.default.onLoad)},onUnload:{get:Za("OT.onUnload",pe.default.onUnload)},overrideGuidStorage:{get:Za("OT.overrideGuidStorage",xe.default.override)}}),In.pickScreenSharingHelper=bt.pickHelper,In.publishers=v.default.publishers,In.registerScreenSharingExtension=bt.registerExtension,In.registerScreenSharingExtensionHelper=bt.registerExtensionHelper,In.reportIssue=sr,In.sessions=v.default.sessions,In.setLogLevel=$e.default,In.shouldLog=Mi.shouldLog,In.subscribers=v.default.subscribers,In.unblockAudio=_n.default,In.upgradeSystemRequirements=Bt.default.upgrade,pe.default.onUnload(()=>{v.default.publishers.destroy(),v.default.subscribers.destroy(),v.default.sessions.destroy("unloaded")}),(0,vr.default)()},function(n,r){function i(){this.__data__=[],this.size=0}n.exports=i},function(n,r,i){var a=i(82),o=Array.prototype,l=o.splice;function s(d){var c=this.__data__,u=a(c,d);if(u<0)return!1;var h=c.length-1;return u==h?c.pop():l.call(c,u,1),--this.size,!0}n.exports=s},function(n,r,i){var a=i(82);function o(l){var s=this.__data__,d=a(s,l);return d<0?void 0:s[d][1]}n.exports=o},function(n,r,i){var a=i(82);function o(l){return a(this.__data__,l)>-1}n.exports=o},function(n,r,i){var a=i(82);function o(l,s){var d=this.__data__,c=a(d,l);return c<0?(++this.size,d.push([l,s])):d[c][1]=s,this}n.exports=o},function(n,r,i){var a=i(81);function o(){this.__data__=new a,this.size=0}n.exports=o},function(n,r){function i(a){var o=this.__data__,l=o.delete(a);return this.size=o.size,l}n.exports=i},function(n,r){function i(a){return this.__data__.get(a)}n.exports=i},function(n,r){function i(a){return this.__data__.has(a)}n.exports=i},function(n,r,i){var a=i(81),o=i(113),l=i(114),s=200;function d(c,u){var h=this.__data__;if(h instanceof a){var f=h.__data__;if(!o||f.length<s-1)return f.push([c,u]),this.size=++h.size,this;h=this.__data__=new l(f)}return h.set(c,u),this.size=h.size,this}n.exports=d},function(n,r,i){var a=i(19),o=i(367),l=i(11),s=i(186),d=/[\\^$.*+?()[\]{}|]/g,c=/^\[object .+?Constructor\]$/,u=Function.prototype,h=Object.prototype,f=u.toString,g=h.hasOwnProperty,A=RegExp("^"+f.call(g).replace(d,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function b(p){if(!l(p)||o(p))return!1;var y=a(p)?A:c;return y.test(s(p))}n.exports=b},function(n,r,i){var a=i(44),o=Object.prototype,l=o.hasOwnProperty,s=o.toString,d=a?a.toStringTag:void 0;function c(u){var h=l.call(u,d),f=u[d];try{u[d]=void 0;var g=!0}catch{}var A=s.call(u);return g&&(h?u[d]=f:delete u[d]),A}n.exports=c},function(n,r){var i=Object.prototype,a=i.toString;function o(l){return a.call(l)}n.exports=o},function(n,r,i){var a=i(368),o=function(){var s=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""}();function l(s){return!!o&&o in s}n.exports=l},function(n,r,i){var a=i(15),o=a["__core-js_shared__"];n.exports=o},function(n,r){function i(a,o){return a==null?void 0:a[o]}n.exports=i},function(n,r,i){var a=i(371),o=i(81),l=i(113);function s(){this.size=0,this.__data__={hash:new a,map:new(l||o),string:new a}}n.exports=s},function(n,r,i){var a=i(372),o=i(373),l=i(374),s=i(375),d=i(376);function c(u){var h=-1,f=u==null?0:u.length;for(this.clear();++h<f;){var g=u[h];this.set(g[0],g[1])}}c.prototype.clear=a,c.prototype.delete=o,c.prototype.get=l,c.prototype.has=s,c.prototype.set=d,n.exports=c},function(n,r,i){var a=i(83);function o(){this.__data__=a?a(null):{},this.size=0}n.exports=o},function(n,r){function i(a){var o=this.has(a)&&delete this.__data__[a];return this.size-=o?1:0,o}n.exports=i},function(n,r,i){var a=i(83),o="__lodash_hash_undefined__",l=Object.prototype,s=l.hasOwnProperty;function d(c){var u=this.__data__;if(a){var h=u[c];return h===o?void 0:h}return s.call(u,c)?u[c]:void 0}n.exports=d},function(n,r,i){var a=i(83),o=Object.prototype,l=o.hasOwnProperty;function s(d){var c=this.__data__;return a?c[d]!==void 0:l.call(c,d)}n.exports=s},function(n,r,i){var a=i(83),o="__lodash_hash_undefined__";function l(s,d){var c=this.__data__;return this.size+=this.has(s)?0:1,c[s]=a&&d===void 0?o:d,this}n.exports=l},function(n,r,i){var a=i(84);function o(l){var s=a(this,l).delete(l);return this.size-=s?1:0,s}n.exports=o},function(n,r){function i(a){var o=typeof a;return o=="string"||o=="number"||o=="symbol"||o=="boolean"?a!=="__proto__":a===null}n.exports=i},function(n,r,i){var a=i(84);function o(l){return a(this,l).get(l)}n.exports=o},function(n,r,i){var a=i(84);function o(l){return a(this,l).has(l)}n.exports=o},function(n,r,i){var a=i(84);function o(l,s){var d=a(this,l),c=d.size;return d.set(l,s),this.size+=d.size==c?0:1,this}n.exports=o},function(n,r){function i(a,o){for(var l=-1,s=Array(a);++l<a;)s[l]=o(l);return s}n.exports=i},function(n,r,i){var a=i(33),o=i(20),l="[object Arguments]";function s(d){return o(d)&&a(d)==l}n.exports=s},function(n,r){function i(){return!1}n.exports=i},function(n,r,i){var a=i(33),o=i(116),l=i(20),s="[object Arguments]",d="[object Array]",c="[object Boolean]",u="[object Date]",h="[object Error]",f="[object Function]",g="[object Map]",A="[object Number]",b="[object Object]",p="[object RegExp]",y="[object Set]",m="[object String]",F="[object WeakMap]",R="[object ArrayBuffer]",C="[object DataView]",B="[object Float32Array]",N="[object Float64Array]",S="[object Int8Array]",X="[object Int16Array]",J="[object Int32Array]",E="[object Uint8Array]",v="[object Uint8ClampedArray]",j="[object Uint16Array]",H="[object Uint32Array]",K={};K[B]=K[N]=K[S]=K[X]=K[J]=K[E]=K[v]=K[j]=K[H]=!0,K[s]=K[d]=K[R]=K[c]=K[C]=K[u]=K[h]=K[f]=K[g]=K[A]=K[b]=K[p]=K[y]=K[m]=K[F]=!1;function Fe(z){return l(z)&&o(z.length)&&!!K[a(z)]}n.exports=Fe},function(n,r,i){var a=i(190),o=a(Object.keys,Object);n.exports=o},function(n,r,i){var a=i(45),o=i(54);function l(s,d){return s&&a(d,o(d),s)}n.exports=l},function(n,r,i){var a=i(11),o=i(68),l=i(389),s=Object.prototype,d=s.hasOwnProperty;function c(u){if(!a(u))return l(u);var h=o(u),f=[];for(var g in u)g=="constructor"&&(h||!d.call(u,g))||f.push(g);return f}n.exports=c},function(n,r){function i(a){var o=[];if(a!=null)for(var l in Object(a))o.push(l);return o}n.exports=i},function(n,r,i){var a=i(45),o=i(119);function l(s,d){return a(s,o(s),d)}n.exports=l},function(n,r){function i(a,o){for(var l=-1,s=a==null?0:a.length,d=0,c=[];++l<s;){var u=a[l];o(u,l,a)&&(c[d++]=u)}return c}n.exports=i},function(n,r,i){var a=i(45),o=i(193);function l(s,d){return a(s,o(s),d)}n.exports=l},function(n,r,i){var a=i(43),o=i(15),l=a(o,"DataView");n.exports=l},function(n,r,i){var a=i(43),o=i(15),l=a(o,"Promise");n.exports=l},function(n,r){var i=Object.prototype,a=i.hasOwnProperty;function o(l){var s=l.length,d=new l.constructor(s);return s&&typeof l[0]=="string"&&a.call(l,"index")&&(d.index=l.index,d.input=l.input),d}n.exports=o},function(n,r,i){var a=i(122),o=i(397),l=i(398),s=i(399),d=i(200),c="[object Boolean]",u="[object Date]",h="[object Map]",f="[object Number]",g="[object RegExp]",A="[object Set]",b="[object String]",p="[object Symbol]",y="[object ArrayBuffer]",m="[object DataView]",F="[object Float32Array]",R="[object Float64Array]",C="[object Int8Array]",B="[object Int16Array]",N="[object Int32Array]",S="[object Uint8Array]",X="[object Uint8ClampedArray]",J="[object Uint16Array]",E="[object Uint32Array]";function v(j,H,K){var Fe=j.constructor;switch(H){case y:return a(j);case c:case u:return new Fe(+j);case m:return o(j,K);case F:case R:case C:case B:case N:case S:case X:case J:case E:return d(j,K);case h:return new Fe;case f:case b:return new Fe(j);case g:return l(j);case A:return new Fe;case p:return s(j)}}n.exports=v},function(n,r,i){var a=i(122);function o(l,s){var d=s?a(l.buffer):l.buffer;return new l.constructor(d,l.byteOffset,l.byteLength)}n.exports=o},function(n,r){var i=/\w*$/;function a(o){var l=new o.constructor(o.source,i.exec(o));return l.lastIndex=o.lastIndex,l}n.exports=a},function(n,r,i){var a=i(44),o=a?a.prototype:void 0,l=o?o.valueOf:void 0;function s(d){return l?Object(l.call(d)):{}}n.exports=s},function(n,r,i){var a=i(401),o=i(67),l=i(117),s=l&&l.isMap,d=s?o(s):a;n.exports=d},function(n,r,i){var a=i(46),o=i(20),l="[object Map]";function s(d){return o(d)&&a(d)==l}n.exports=s},function(n,r,i){var a=i(403),o=i(67),l=i(117),s=l&&l.isSet,d=s?o(s):a;n.exports=d},function(n,r,i){var a=i(46),o=i(20),l="[object Set]";function s(d){return o(d)&&a(d)==l}n.exports=s},function(n,r,i){var a=function(){return this||typeof self=="object"&&self}()||Function("return this")(),o=a.regeneratorRuntime&&Object.getOwnPropertyNames(a).indexOf("regeneratorRuntime")>=0,l=o&&a.regeneratorRuntime;if(a.regeneratorRuntime=void 0,n.exports=i(405),o)a.regeneratorRuntime=l;else try{delete a.regeneratorRuntime}catch{a.regeneratorRuntime=void 0}},function(n,r,i){(function(a){(function(o){var l=Object.prototype,s=l.hasOwnProperty,d,c=typeof Symbol=="function"?Symbol:{},u=c.iterator||"@@iterator",h=c.asyncIterator||"@@asyncIterator",f=c.toStringTag||"@@toStringTag",g=typeof n=="object",A=o.regeneratorRuntime;if(A){g&&(n.exports=A);return}A=o.regeneratorRuntime=g?n.exports:{};function b(We,xe,$e,Rt){var Be=xe&&xe.prototype instanceof B?xe:B,qe=Object.create(Be.prototype),at=new Ae(Rt||[]);return qe._invoke=K(We,$e,at),qe}A.wrap=b;function p(We,xe,$e){try{return{type:"normal",arg:We.call(xe,$e)}}catch(Rt){return{type:"throw",arg:Rt}}}var y="suspendedStart",m="suspendedYield",F="executing",R="completed",C={};function B(){}function N(){}function S(){}var X={};X[u]=function(){return this};var J=Object.getPrototypeOf,E=J&&J(J(Ke([])));E&&E!==l&&s.call(E,u)&&(X=E);var v=S.prototype=B.prototype=Object.create(X);N.prototype=v.constructor=S,S.constructor=N,S[f]=N.displayName="GeneratorFunction";function j(We){["next","throw","return"].forEach(function(xe){We[xe]=function($e){return this._invoke(xe,$e)}})}A.isGeneratorFunction=function(We){var xe=typeof We=="function"&&We.constructor;return xe?xe===N||(xe.displayName||xe.name)==="GeneratorFunction":!1},A.mark=function(We){return Object.setPrototypeOf?Object.setPrototypeOf(We,S):(We.__proto__=S,f in We||(We[f]="GeneratorFunction")),We.prototype=Object.create(v),We},A.awrap=function(We){return{__await:We}};function H(We){function xe(Be,qe,at,Bt){var jt=p(We[Be],We,qe);if(jt.type==="throw")Bt(jt.arg);else{var Ne=jt.arg,Je=Ne.value;return Je&&typeof Je=="object"&&s.call(Je,"__await")?a.resolve(Je.__await).then(function(ve){xe("next",ve,at,Bt)},function(ve){xe("throw",ve,at,Bt)}):a.resolve(Je).then(function(ve){Ne.value=ve,at(Ne)},function(ve){return xe("throw",ve,at,Bt)})}}var $e;function Rt(Be,qe){function at(){return new a(function(Bt,jt){xe(Be,qe,Bt,jt)})}return $e=$e?$e.then(at,at):at()}this._invoke=Rt}j(H.prototype),H.prototype[h]=function(){return this},A.AsyncIterator=H,A.async=function(We,xe,$e,Rt){var Be=new H(b(We,xe,$e,Rt));return A.isGeneratorFunction(xe)?Be:Be.next().then(function(qe){return qe.done?qe.value:Be.next()})};function K(We,xe,$e){var Rt=y;return function(qe,at){if(Rt===F)throw new Error("Generator is already running");if(Rt===R){if(qe==="throw")throw at;return pe()}for($e.method=qe,$e.arg=at;;){var Bt=$e.delegate;if(Bt){var jt=Fe(Bt,$e);if(jt){if(jt===C)continue;return jt}}if($e.method==="next")$e.sent=$e._sent=$e.arg;else if($e.method==="throw"){if(Rt===y)throw Rt=R,$e.arg;$e.dispatchException($e.arg)}else $e.method==="return"&&$e.abrupt("return",$e.arg);Rt=F;var Ne=p(We,xe,$e);if(Ne.type==="normal"){if(Rt=$e.done?R:m,Ne.arg===C)continue;return{value:Ne.arg,done:$e.done}}else Ne.type==="throw"&&(Rt=R,$e.method="throw",$e.arg=Ne.arg)}}}function Fe(We,xe){var $e=We.iterator[xe.method];if($e===d){if(xe.delegate=null,xe.method==="throw"){if(We.iterator.return&&(xe.method="return",xe.arg=d,Fe(We,xe),xe.method==="throw"))return C;xe.method="throw",xe.arg=new TypeError("The iterator does not provide a 'throw' method")}return C}var Rt=p($e,We.iterator,xe.arg);if(Rt.type==="throw")return xe.method="throw",xe.arg=Rt.arg,xe.delegate=null,C;var Be=Rt.arg;if(!Be)return xe.method="throw",xe.arg=new TypeError("iterator result is not an object"),xe.delegate=null,C;if(Be.done)xe[We.resultName]=Be.value,xe.next=We.nextLoc,xe.method!=="return"&&(xe.method="next",xe.arg=d);else return Be;return xe.delegate=null,C}j(v),v[f]="Generator",v[u]=function(){return this},v.toString=function(){return"[object Generator]"};function z(We){var xe={tryLoc:We[0]};1 in We&&(xe.catchLoc=We[1]),2 in We&&(xe.finallyLoc=We[2],xe.afterLoc=We[3]),this.tryEntries.push(xe)}function q(We){var xe=We.completion||{};xe.type="normal",delete xe.arg,We.completion=xe}function Ae(We){this.tryEntries=[{tryLoc:"root"}],We.forEach(z,this),this.reset(!0)}A.keys=function(We){var xe=[];for(var $e in We)xe.push($e);return xe.reverse(),function Rt(){for(;xe.length;){var Be=xe.pop();if(Be in We)return Rt.value=Be,Rt.done=!1,Rt}return Rt.done=!0,Rt}};function Ke(We){if(We){var xe=We[u];if(xe)return xe.call(We);if(typeof We.next=="function")return We;if(!isNaN(We.length)){var $e=-1,Rt=function Be(){for(;++$e<We.length;)if(s.call(We,$e))return Be.value=We[$e],Be.done=!1,Be;return Be.value=d,Be.done=!0,Be};return Rt.next=Rt}}return{next:pe}}A.values=Ke;function pe(){return{value:d,done:!0}}Ae.prototype={constructor:Ae,reset:function(We){if(this.prev=0,this.next=0,this.sent=this._sent=d,this.done=!1,this.delegate=null,this.method="next",this.arg=d,this.tryEntries.forEach(q),!We)for(var xe in this)xe.charAt(0)==="t"&&s.call(this,xe)&&!isNaN(+xe.slice(1))&&(this[xe]=d)},stop:function(){this.done=!0;var We=this.tryEntries[0],xe=We.completion;if(xe.type==="throw")throw xe.arg;return this.rval},dispatchException:function(We){if(this.done)throw We;var xe=this;function $e(jt,Ne){return qe.type="throw",qe.arg=We,xe.next=jt,Ne&&(xe.method="next",xe.arg=d),!!Ne}for(var Rt=this.tryEntries.length-1;Rt>=0;--Rt){var Be=this.tryEntries[Rt],qe=Be.completion;if(Be.tryLoc==="root")return $e("end");if(Be.tryLoc<=this.prev){var at=s.call(Be,"catchLoc"),Bt=s.call(Be,"finallyLoc");if(at&&Bt){if(this.prev<Be.catchLoc)return $e(Be.catchLoc,!0);if(this.prev<Be.finallyLoc)return $e(Be.finallyLoc)}else if(at){if(this.prev<Be.catchLoc)return $e(Be.catchLoc,!0)}else if(Bt){if(this.prev<Be.finallyLoc)return $e(Be.finallyLoc)}else throw new Error("try statement without catch or finally")}}},abrupt:function(We,xe){for(var $e=this.tryEntries.length-1;$e>=0;--$e){var Rt=this.tryEntries[$e];if(Rt.tryLoc<=this.prev&&s.call(Rt,"finallyLoc")&&this.prev<Rt.finallyLoc){var Be=Rt;break}}Be&&(We==="break"||We==="continue")&&Be.tryLoc<=xe&&xe<=Be.finallyLoc&&(Be=null);var qe=Be?Be.completion:{};return qe.type=We,qe.arg=xe,Be?(this.method="next",this.next=Be.finallyLoc,C):this.complete(qe)},complete:function(We,xe){if(We.type==="throw")throw We.arg;return We.type==="break"||We.type==="continue"?this.next=We.arg:We.type==="return"?(this.rval=this.arg=We.arg,this.method="return",this.next="end"):We.type==="normal"&&xe&&(this.next=xe),C},finish:function(We){for(var xe=this.tryEntries.length-1;xe>=0;--xe){var $e=this.tryEntries[xe];if($e.finallyLoc===We)return this.complete($e.completion,$e.afterLoc),q($e),C}},catch:function(We){for(var xe=this.tryEntries.length-1;xe>=0;--xe){var $e=this.tryEntries[xe];if($e.tryLoc===We){var Rt=$e.completion;if(Rt.type==="throw"){var Be=Rt.arg;q($e)}return Be}}throw new Error("illegal catch attempt")},delegateYield:function(We,xe,$e){return this.delegate={iterator:Ke(We),resultName:xe,nextLoc:$e},this.method==="next"&&(this.arg=d),C}}})(function(){return this||typeof self=="object"&&self}()||Function("return this")())}).call(this,i(2))},function(n,r,i){var a=i(407),o=i(187),l=i(90),s=o?function(d,c){return o(d,"toString",{configurable:!0,enumerable:!1,value:a(c),writable:!0})}:l;n.exports=s},function(n,r){function i(a){return function(){return a}}n.exports=i},function(n,r,i){(function(a){r.log=s,r.formatArgs=l,r.save=d,r.load=c,r.useColors=o,r.storage=h(),r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function o(){var g=u("colors");return/^(no|off|false|disabled)$/i.test(g)?!1:typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:!!(typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function l(g){var A=this.useColors;if(g[0]=(A?"%c":"")+this.namespace+(A?" %c":" ")+g[0]+(A?"%c ":" ")+"+"+n.exports.humanize(this.diff),!!A){var b="color: "+this.color;g.splice(1,0,b,"color: inherit");var p=0,y=0;g[0].replace(/%[a-zA-Z%]/g,function(m){m!=="%%"&&(p++,m==="%c"&&(y=p))}),g.splice(y,0,b)}}function s(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function d(g){try{g==null?r.storage.removeItem("debug"):r.storage.setItem("debug",g)}catch{}}function c(){var g;try{g=r.storage.getItem("debug")}catch{}return!g&&typeof a<"u"&&"env"in a&&(g=a.env.DEBUG),g}function u(g){var A="debug_"+g.toLowerCase();try{return r.storage.getItem(A)}catch{return typeof a<"u"&&"env"in a?a.env[A.toUpperCase()]:void 0}}function h(){try{return localStorage}catch{}}n.exports=i(409)(r);var f=n.exports.formatters;f.j=function(g){try{return JSON.stringify(g)}catch(A){return"[UnexpectedJSONParseError]: "+A.message}}}).call(this,i(27))},function(n,r,i){n.exports=function(o){s.debug=s.default=s,s.coerce=f,s.disable=u,s.enable=c,s.enabled=h,s.humanize=i(410),Object.keys(o).forEach(function(g){s[g]=o[g]}),s.instances=[],s.names=[],s.skips=[],s.formatters={};function l(g){var A=0,b;for(b in g)A=(A<<5)-A+g.charCodeAt(b),A|=0;return s.colors[Math.abs(A)%s.colors.length]}s.selectColor=l;function s(g){var A;function b(){if(b.enabled){var p=b,y=+new Date,m=y-(A||y);p.diff=m,p.prev=A,p.curr=y,A=y;for(var F=new Array(arguments.length),R=0;R<F.length;R++)F[R]=arguments[R];F[0]=s.coerce(F[0]),typeof F[0]!="string"&&F.unshift("%O");var C=0;F[0]=F[0].replace(/%([a-zA-Z%])/g,function(N,S){if(N==="%%")return N;C++;var X=s.formatters[S];if(typeof X=="function"){var J=F[C];N=X.call(p,J),F.splice(C,1),C--}return N}),s.formatArgs.call(p,F);var B=p.log||s.log;B.apply(p,F)}}return b.namespace=g,b.enabled=s.enabled(g),b.useColors=s.useColors(),b.color=l(g),b.destroy=d,typeof s.init=="function"&&s.init(b),s.instances.push(b),b}function d(){var g=s.instances.indexOf(this);return g!==-1?(s.instances.splice(g,1),!0):!1}function c(g){s.save(g),s.names=[],s.skips=[];var A,b=(typeof g=="string"?g:"").split(/[\s,]+/),p=b.length;for(A=0;A<p;A++)b[A]&&(g=b[A].replace(/\*/g,".*?"),g[0]==="-"?s.skips.push(new RegExp("^"+g.substr(1)+"$")):s.names.push(new RegExp("^"+g+"$")));for(A=0;A<s.instances.length;A++){var y=s.instances[A];y.enabled=s.enabled(y.namespace)}}function u(){s.enable("")}function h(g){if(g[g.length-1]==="*")return!0;var A,b;for(A=0,b=s.skips.length;A<b;A++)if(s.skips[A].test(g))return!1;for(A=0,b=s.names.length;A<b;A++)if(s.names[A].test(g))return!0;return!1}function f(g){return g instanceof Error?g.stack||g.message:g}return s.enable(s.load()),s}},function(n,r){var i=1e3,a=i*60,o=a*60,l=o*24,s=l*7,d=l*365.25;n.exports=function(g,A){A=A||{};var b=typeof g;if(b==="string"&&g.length>0)return c(g);if(b==="number"&&isFinite(g))return A.long?h(g):u(g);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(g))};function c(g){if(g=String(g),!(g.length>100)){var A=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(g);if(A){var b=parseFloat(A[1]),p=(A[2]||"ms").toLowerCase();switch(p){case"years":case"year":case"yrs":case"yr":case"y":return b*d;case"weeks":case"week":case"w":return b*s;case"days":case"day":case"d":return b*l;case"hours":case"hour":case"hrs":case"hr":case"h":return b*o;case"minutes":case"minute":case"mins":case"min":case"m":return b*a;case"seconds":case"second":case"secs":case"sec":case"s":return b*i;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return b;default:return}}}}function u(g){var A=Math.abs(g);return A>=l?Math.round(g/l)+"d":A>=o?Math.round(g/o)+"h":A>=a?Math.round(g/a)+"m":A>=i?Math.round(g/i)+"s":g+"ms"}function h(g){var A=Math.abs(g);return A>=l?f(g,A,l,"day"):A>=o?f(g,A,o,"hour"):A>=a?f(g,A,a,"minute"):A>=i?f(g,A,i,"second"):g+" ms"}function f(g,A,b,p){var y=A>=b*1.5;return Math.round(g/b)+" "+p+(y?"s":"")}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(206));const l=new o.default;function s(c,u){if(u===void 0)return c;l.has(u)||l.set(u,new o.default);const h=l.get(u);return h.has(c)||h.set(c,c.bind(u)),h.get(c)}var d=s;r.default=d},function(n,r,i){n.exports=function(){var a,o;if(typeof WeakMap!="function")return!1;try{a=new WeakMap([[o={},"one"],[{},"two"],[{},"three"]])}catch{return!1}return!(String(a)!=="[object WeakMap]"||typeof a.set!="function"||a.set({},1)!==a||typeof a.delete!="function"||typeof a.has!="function"||a.get(o)!=="one")}},function(n,r,i){var a=i(47),o=i(128),l=i(416),s=i(35),d=i(417),c=i(36),u=i(213),h=i(459),f=i(48).toStringTag,g=i(460),A=Array.isArray,b=Object.defineProperty,p=Object.prototype.hasOwnProperty,y=Object.getPrototypeOf,m;n.exports=m=function(){var F=arguments[0],R;if(!(this instanceof m))throw new TypeError("Constructor requires 'new'");return R=g&&o&&WeakMap!==m?o(new WeakMap,y(this)):this,a(F)&&(A(F)||(F=u(F))),b(R,"__weakMapData__",c("c","$weakMap$"+d())),F&&h(F,function(C){s(C),R.set(C[0],C[1])}),R},g&&(o&&o(m,WeakMap),m.prototype=Object.create(WeakMap.prototype,{constructor:c(m)})),Object.defineProperties(m.prototype,{delete:c(function(F){return p.call(l(F),this.__weakMapData__)?(delete F[this.__weakMapData__],!0):!1}),get:c(function(F){if(p.call(l(F),this.__weakMapData__))return F[this.__weakMapData__]}),has:c(function(F){return p.call(l(F),this.__weakMapData__)}),set:c(function(F,R){return b(l(F),this.__weakMapData__,c("c",R)),this}),toString:c(function(){return"[object WeakMap]"})}),b(m.prototype,f,c("c","WeakMap"))},function(n,r,i){n.exports=function(){}},function(n,r,i){var a=Object.create,o;i(207)()||(o=i(208)),n.exports=function(){var l,s,d;return!o||o.level!==1?a:(l={},s={},d={configurable:!1,enumerable:!1,writable:!0,value:void 0},Object.getOwnPropertyNames(Object.prototype).forEach(function(c){if(c==="__proto__"){s[c]={configurable:!0,enumerable:!1,writable:!0,value:void 0};return}s[c]=d}),Object.defineProperties(l,s),Object.defineProperty(o,"nullPolyfill",{configurable:!1,enumerable:!1,writable:!1,value:l}),function(c,u){return a(c===null?l:c,u)})}()},function(n,r,i){var a=i(209);n.exports=function(o){if(!a(o))throw new TypeError(o+" is not an Object");return o}},function(n,r,i){var a=Object.create(null),o=Math.random;n.exports=function(){var l;do l=o().toString(36).slice(2);while(a[l]);return l}},function(n,r,i){var a=i(419);n.exports=function(o){if(typeof o!="function"||!hasOwnProperty.call(o,"length"))return!1;try{if(typeof o.length!="number"||typeof o.call!="function"||typeof o.apply!="function")return!1}catch{return!1}return!a(o)}},function(n,r,i){var a=i(129);n.exports=function(o){if(!a(o))return!1;try{return o.constructor?o.constructor.prototype===o:!1}catch{return!1}}},function(n,r,i){n.exports=function(){var a=Object.assign,o;return typeof a!="function"?!1:(o={foo:"raz"},a(o,{bar:"dwa"},{trzy:"trzy"}),o.foo+o.bar+o.trzy==="razdwatrzy")}},function(n,r,i){var a=i(422),o=i(35),l=Math.max;n.exports=function(s,d){var c,u,h=l(arguments.length,2),f;for(s=Object(o(s)),f=function(g){try{s[g]=d[g]}catch(A){c||(c=A)}},u=1;u<h;++u)d=arguments[u],a(d).forEach(f);if(c!==void 0)throw c;return s}},function(n,r,i){n.exports=i(423)()?Object.keys:i(424)},function(n,r,i){n.exports=function(){try{return Object.keys("primitive"),!0}catch{return!1}}},function(n,r,i){var a=i(47),o=Object.keys;n.exports=function(l){return o(a(l)?Object(l):l)}},function(n,r,i){var a="razdwatrzy";n.exports=function(){return typeof a.contains!="function"?!1:a.contains("dwa")===!0&&a.contains("foo")===!1}},function(n,r,i){var a=String.prototype.indexOf;n.exports=function(o){return a.call(this,o,arguments[1])>-1}},function(n,r,i){var a=i(128),o=i(212),l=i(36),s=i(48),d=i(215),c=Object.defineProperty,u;u=n.exports=function(h,f){if(!(this instanceof u))throw new TypeError("Constructor requires 'new'");d.call(this,h),f?o.call(f,"key+value")?f="key+value":o.call(f,"key")?f="key":f="value":f="value",c(this,"__kind__",l("",f))},a&&a(u,d),delete u.prototype.constructor,u.prototype=Object.create(d.prototype,{_resolve:l(function(h){return this.__kind__==="value"?this.__list__[h]:this.__kind__==="key+value"?[h,this.__list__[h]]:h})}),c(u.prototype,s.toStringTag,l("c","Array Iterator"))},function(n,r,i){var a=i(93),o={object:!0,symbol:!0};n.exports=function(){var l=a.Symbol,s;if(typeof l!="function")return!1;s=l("test symbol");try{String(s)}catch{return!1}return!(!o[typeof l.iterator]||!o[typeof l.toPrimitive]||!o[typeof l.toStringTag])}},function(n,r,i){n.exports=function(){return typeof globalThis!="object"||!globalThis?!1:globalThis.Array===Array}},function(n,r){var i=function(){if(typeof self=="object"&&self)return self;if(typeof window=="object"&&window)return window;throw new Error("Unable to resolve global `this`")};n.exports=function(){if(this)return this;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch{return i()}try{return __global__||i()}finally{delete Object.prototype.__global__}}()},function(n,r,i){var a=i(36),o=i(214),l=i(93).Symbol,s=i(433),d=i(434),c=i(435),u=Object.create,h=Object.defineProperties,f=Object.defineProperty,g,A,b;if(typeof l=="function")try{String(l()),b=!0}catch{}else l=null;A=function(y){if(this instanceof A)throw new TypeError("Symbol is not a constructor");return g(y)},n.exports=g=function p(y){var m;if(this instanceof p)throw new TypeError("Symbol is not a constructor");return b?l(y):(m=u(A.prototype),y=y===void 0?"":String(y),h(m,{__description__:a("",y),__name__:a("",s(y))}))},d(g),c(g),h(A.prototype,{constructor:a(g),toString:a("",function(){return this.__name__})}),h(g.prototype,{toString:a(function(){return"Symbol ("+o(this).__description__+")"}),valueOf:a(function(){return o(this)})}),f(g.prototype,g.toPrimitive,a("",function(){var p=o(this);return typeof p=="symbol"?p:p.toString()})),f(g.prototype,g.toStringTag,a("c","Symbol")),f(A.prototype,g.toStringTag,a("c",g.prototype[g.toStringTag])),f(A.prototype,g.toPrimitive,a("c",g.prototype[g.toPrimitive]))},function(n,r,i){n.exports=function(a){return a?typeof a=="symbol"?!0:!a.constructor||a.constructor.name!=="Symbol"?!1:a[a.constructor.toStringTag]==="Symbol":!1}},function(n,r,i){var a=i(36),o=Object.create,l=Object.defineProperty,s=Object.prototype,d=o(null);n.exports=function(c){for(var u=0,h,f;d[c+(u||"")];)++u;return c+=u||"",d[c]=!0,h="@@"+c,l(s,h,a.gs(null,function(g){f||(f=!0,l(this,h,a(g)),f=!1)})),h}},function(n,r,i){var a=i(36),o=i(93).Symbol;n.exports=function(l){return Object.defineProperties(l,{hasInstance:a("",o&&o.hasInstance||l("hasInstance")),isConcatSpreadable:a("",o&&o.isConcatSpreadable||l("isConcatSpreadable")),iterator:a("",o&&o.iterator||l("iterator")),match:a("",o&&o.match||l("match")),replace:a("",o&&o.replace||l("replace")),search:a("",o&&o.search||l("search")),species:a("",o&&o.species||l("species")),split:a("",o&&o.split||l("split")),toPrimitive:a("",o&&o.toPrimitive||l("toPrimitive")),toStringTag:a("",o&&o.toStringTag||l("toStringTag")),unscopables:a("",o&&o.unscopables||l("unscopables"))})}},function(n,r,i){var a=i(36),o=i(214),l=Object.create(null);n.exports=function(s){return Object.defineProperties(s,{for:a(function(d){return l[d]?l[d]:l[d]=s(String(d))}),keyFor:a(function(d){var c;o(d);for(c in l)if(l[c]===d)return c})})}},function(n,r,i){var a=i(35);n.exports=function(){return a(this).length=0,this}},function(n,r,i){var a=i(56),o=i(438),l=i(442),s=i(443),d=i(211),c=i(453),u=Function.prototype.bind,h=Object.defineProperty,f=Object.prototype.hasOwnProperty,g;g=function(A,b,p){var y=o(b)&&l(b.value),m;return m=s(b),delete m.writable,delete m.value,m.get=function(){return!p.overwriteDefinition&&f.call(this,A)?y:(b.value=u.call(y,p.resolveContext?p.resolveContext(this):this),h(this,A,b),this[A])},m},n.exports=function(A){var b=d(arguments[1]);return a(b.resolveContext)&&l(b.resolveContext),c(A,function(p,y){return g(y,p,b)})}},function(n,r,i){var a=i(216),o=i(56);n.exports=function(l){return o(l)?l:a(l,"Cannot use %v",arguments[1])}},function(n,r,i){var a=i(56),o=i(129),l=Object.prototype.toString;n.exports=function(s){if(!a(s))return null;if(o(s)){var d=s.toString;if(typeof d!="function"||d===l)return null}try{return""+s}catch{return null}}},function(n,r,i){var a=i(441),o=/[\n\r\u2028\u2029]/g;n.exports=function(l){var s=a(l);return s===null?"<Non-coercible to string value>":(s.length>100&&(s=s.slice(0,99)+"…"),s=s.replace(o,function(d){switch(d){case` `:return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}}),s)}},function(n,r,i){n.exports=function(a){try{return a.toString()}catch{try{return String(a)}catch{return null}}}},function(n,r,i){var a=i(216),o=i(210);n.exports=function(l){return o(l)?l:a(l,"%v is not a plain function",arguments[1])}},function(n,r,i){var a=i(444),o=i(130),l=i(35);n.exports=function(s){var d=Object(l(s)),c=arguments[1],u=Object(arguments[2]);if(d!==s&&!c)return d;var h={};return c?a(c,function(f){(u.ensure||f in s)&&(h[f]=s[f])}):o(h,s),h}},function(n,r,i){n.exports=i(445)()?Array.from:i(446)},function(n,r,i){n.exports=function(){var a=Array.from,o,l;return typeof a!="function"?!1:(o=["raz","dwa"],l=a(o),!!(l&&l!==o&&l[1]==="dwa"))}},function(n,r,i){var a=i(48).iterator,o=i(91),l=i(447),s=i(448),d=i(69),c=i(35),u=i(47),h=i(92),f=Array.isArray,g=Function.prototype.call,A={configurable:!0,enumerable:!0,writable:!0,value:null},b=Object.defineProperty;n.exports=function(p){var y=arguments[1],m=arguments[2],F,R,C,B,N,S,X,J,E,v;if(p=Object(c(p)),u(y)&&d(y),!this||this===Array||!l(this)){if(!y){if(o(p))return N=p.length,N!==1?Array.apply(null,p):(B=new Array(1),B[0]=p[0],B);if(f(p)){for(B=new Array(N=p.length),R=0;R<N;++R)B[R]=p[R];return B}}B=[]}else F=this;if(!f(p)){if((E=p[a])!==void 0){for(X=d(E).call(p),F&&(B=new F),J=X.next(),R=0;!J.done;)v=y?g.call(y,m,J.value,R):J.value,F?(A.value=v,b(B,R,A)):B[R]=v,J=X.next(),++R;N=R}else if(h(p)){for(N=p.length,F&&(B=new F),R=0,C=0;R<N;++R)v=p[R],R+1<N&&(S=v.charCodeAt(0),S>=55296&&S<=56319&&(v+=p[++R])),v=y?g.call(y,m,v,C):v,F?(A.value=v,b(B,C,A)):B[C]=v,++C;N=C}}if(N===void 0)for(N=s(p.length),F&&(B=new F(N)),R=0;R<N;++R)v=y?g.call(y,m,p[R],R):p[R],F?(A.value=v,b(B,R,A)):B[R]=v;return F&&(A.value=null,B.length=N),B}},function(n,r,i){var a=Object.prototype.toString,o=RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);n.exports=function(l){return typeof l=="function"&&o(a.call(l))}},function(n,r,i){var a=i(449),o=Math.max;n.exports=function(l){return o(0,a(l))}},function(n,r,i){var a=i(450),o=Math.abs,l=Math.floor;n.exports=function(s){return isNaN(s)?0:(s=Number(s),s===0||!isFinite(s)?s:a(s)*l(o(s)))}},function(n,r,i){n.exports=i(451)()?Math.sign:i(452)},function(n,r,i){n.exports=function(){var a=Math.sign;return typeof a!="function"?!1:a(10)===1&&a(-20)===-1}},function(n,r,i){n.exports=function(a){return a=Number(a),isNaN(a)||a===0?a:a>0?1:-1}},function(n,r,i){var a=i(69),o=i(454),l=Function.prototype.call;n.exports=function(s,d){var c={},u=arguments[2];return a(d),o(s,function(h,f,g,A){c[f]=l.call(d,u,h,f,g,A)}),c}},function(n,r,i){n.exports=i(455)("forEach")},function(n,r,i){var a=i(69),o=i(35),l=Function.prototype.bind,s=Function.prototype.call,d=Object.keys,c=Object.prototype.propertyIsEnumerable;n.exports=function(u,h){return function(f,g){var A,b=arguments[2],p=arguments[3];return f=Object(o(f)),a(g),A=d(f),p&&A.sort(typeof p=="function"?l.call(p,f):void 0),typeof u!="function"&&(u=A[u]),s.call(u,A,function(y,m){return c.call(f,y)?s.call(g,b,f[y],y,f,m):h})}}},function(n,r,i){var a=i(128),o=i(36),l=i(48),s=i(215),d=Object.defineProperty,c;c=n.exports=function(u){if(!(this instanceof c))throw new TypeError("Constructor requires 'new'");u=String(u),s.call(this,u),d(this,"__length__",o("",u.length))},a&&a(c,s),delete c.prototype.constructor,c.prototype=Object.create(s.prototype,{_next:o(function(){if(this.__list__){if(this.__nextIndex__<this.__length__)return this.__nextIndex__++;this._unBind()}}),_resolve:o(function(u){var h=this.__list__[u],f;return this.__nextIndex__===this.__length__?h:(f=h.charCodeAt(0),f>=55296&&f<=56319?h+this.__list__[this.__nextIndex__++]:h)})}),d(c.prototype,l.toStringTag,o("c","String Iterator"))},function(n,r,i){var a=i(458);n.exports=function(o){if(!a(o))throw new TypeError(o+" is not iterable");return o}},function(n,r,i){var a=i(91),o=i(47),l=i(92),s=i(48).iterator,d=Array.isArray;n.exports=function(c){return o(c)?d(c)||l(c)||a(c)?!0:typeof c[s]=="function":!1}},function(n,r,i){var a=i(91),o=i(69),l=i(92),s=i(213),d=Array.isArray,c=Function.prototype.call,u=Array.prototype.some;n.exports=function(h,f){var g,A=arguments[2],b,p,y,m,F,R,C;if(d(h)||a(h)?g="array":l(h)?g="string":h=s(h),o(f),p=function(){y=!0},g==="array"){u.call(h,function(B){return c.call(f,A,B,p),y});return}if(g==="string"){for(F=h.length,m=0;m<F&&(R=h[m],m+1<F&&(C=R.charCodeAt(0),C>=55296&&C<=56319&&(R+=h[++m])),c.call(f,A,R,p),!y);++m);return}for(b=h.next();!b.done;){if(c.call(f,A,b.value,p),y)return;b=h.next()}}},function(n,r,i){n.exports=function(){return typeof WeakMap!="function"?!1:Object.prototype.toString.call(new WeakMap)==="[object WeakMap]"}()},function(n,r,i){r.__esModule=!0,r.default=a;function a(o,l){const s=(d,c)=>()=>{throw new Error(`Cannot ${d} ${c}, ${o} is destroyed`)};Object.keys(l).forEach(d=>{typeof l[d]=="function"?l[d]=s("call",d):Object.defineProperty(l,d,{get:s("get",d),set:s("set",d)})})}},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=l=>{if("srcObject"in l)return;const s=window&&window.URL;"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(l,"srcObject",{get(){return this._srcObject},set(d){const c=this;if(this._srcObject=d,this.src&&s.revokeObjectURL(this.src),!d){this.src="";return}return this.src=s.createObjectURL(d),d.addEventListener("addtrack",()=>{c.src&&s.revokeObjectURL(c.src),c.src=s.createObjectURL(d)}),d.addEventListener("removetrack",()=>{c.src&&s.revokeObjectURL(c.src),c.src=s.createObjectURL(d)}),this._srcObject}})};r.default=o},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=d=>!(!d||typeof d.getBoundingClientRect!="function"),o=d=>{const c=d.getBoundingClientRect(),u=window.innerHeight||document.documentElement.clientHeight,h=window.innerWidth||document.documentElement.clientWidth,f=c.top<=u&&c.top+c.height>=0,g=c.left<=h&&c.left+c.width>=0;return f&&g},l=d=>{const c=u=>u.style&&u.style.visibility==="hidden"?!0:u.parentNode?c(u.parentNode):!1;return d.offsetParent!==null&&!c(d)};var s=d=>a(d)&&o(d)&&l(d);r.default=s},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=i(465),s=i(466),d=o(i(545)),c=o(i(546));const u=m=>{var F,R;return m=m||((F=typeof window!==void 0?window:yr)==null?void 0:F.navigator),((R=m)==null?void 0:R.userAgent.toLowerCase().indexOf("electron"))>=0},h=()=>{var m,F,R;return typeof((m=typeof window!==void 0?window:yr)==null||(F=m.process)==null||(R=F.versions)==null?void 0:R.node)=="string"&&!u()};let f;const g=()=>{f={version:-1,name:"unknown"}},A=()=>{f.name="Node",f.isNode=!0,f.version=parseInt(a.versions.node,10),f.userAgent=`${f.name} ${f.version}`},b=m=>{if(m=m||(typeof window!==void 0?window:yr).navigator,f.userAgent=m.userAgent.toLowerCase(),f.name="unknown",f.userAgent.indexOf("opera")>-1||f.userAgent.indexOf("opr/")>-1)f.name="Opera",f.isOpera=!0,/opr\/([0-9]{1,}[.0-9]{0,})/.exec(f.userAgent)!==null&&(f.version=parseFloat(RegExp.$1));else if(f.userAgent.indexOf("firefox")>-1)f.name="Firefox",f.isFirefox=!0,/firefox\/([0-9]{1,}[.0-9]{0,})/.exec(f.userAgent)!==null&&(f.version=parseFloat(RegExp.$1));else if(f.userAgent.match(/edge?\/(\d+)(?:\.\d+)+$/)){f.name="Edge",f.isEdge=!0;const F=RegExp.$1;f.version=parseInt(F,10)}else f.userAgent.indexOf("chrome")>-1?(f.name="Chrome",f.isElectron=u(m),f.isElectron?f.electronVersion=(0,c.default)(m.userAgent):f.isChrome=!0,/chrome\/([0-9]{1,}[.0-9]{0,})/.exec(f.userAgent)!==null&&(f.version=parseFloat(RegExp.$1))):m.vendor&&m.vendor.toLowerCase().indexOf("apple")>-1?(f.name="Safari",f.isSafari=!0,f.isiPhone=(0,l.isiPhone)(m.userAgent),f.isiPad=(0,l.isiPad)(m.userAgent),f.isiOS=(0,l.isiOS)(m.userAgent),f.isiOS&&(f.iOSVersion=(0,d.default)(m.userAgent)),(/version\/([0-9]{1,}[.0-9]{0,})/.exec(f.userAgent)!==null||/fxios\/([0-9]{1,}[.0-9]{0,})/.exec(f.userAgent)!==null||/crios\/([0-9]{1,}[.0-9]{0,})/.exec(f.userAgent)!==null)&&(f.version=parseFloat(RegExp.$1))):f.userAgent.indexOf("applewebkit")>-1&&f.userAgent.indexOf("version")===-1&&(f.isIosWebView=!0);f.isChromiumEdge=f.name==="Edge"&&f.version>=79,f.isLegacyEdge=f.name==="Edge"&&f.version<79,f.isLegacyElectron=f.isElectron&&f.electronVersion<16,f.isLegacyChrome=f.isChrome&&f.version<87,f.isLegacyFirefox=f.isFirefox&&f.version<=98,f.isChromium=!!(f.isChrome||f.isChromiumEdge||f.isElectron||f.isOpera),f.isAndroid=f.userAgent.indexOf("android")>-1,f.userAgent=m.userAgent,f.protocol=location.protocol,f.hostName=location.hostName,f.isProd=(0,s.isProd)(),f.isRel=(0,s.isRel)(),f.isDev=(0,s.isDev)(),(f.version===-1||f.name==="unknown"||f.isiOS&&!f.iOSVersion)&&(f.error=!0)};var y={parse:m=>(g(),h()?A():b(m),f),isNode:h};r.default=y}).call(this,i(27))},function(n,r,i){r.__esModule=!0,r.isiPhone=r.isiPad=r.isiOS=void 0;const a=d=>/iPhone/.test(d);r.isiPhone=a;const o=d=>{try{return d.includes("Mac")&&"ontouchend"in document}catch{return!1}},l=d=>/iPad/.test(d)||o(d);r.isiPad=l;const s=d=>a(d)||l(d);r.isiOS=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.isRel=r.isProd=r.isDev=void 0;var o=a(i(37));const l=(0,o.default)(),s=(h,f)=>(f.StaticConfig||l.onlyLocal()).apiUrl.includes(h),d=function(f){return f===void 0&&(f={}),s("anvil.opentok.com",f)};r.isProd=d;const c=function(f){return f===void 0&&(f={}),s("api.dev.opentok.com",f)};r.isDev=c;const u=function(f){return f===void 0&&(f={}),s("api.rel.opentok.com",f)};r.isRel=u},function(n,r,i){(function(a){var o=i(21),l=i(218),s=i(468),d=i(224),c=i(131);function u(f){var g=new s(f),A=l(s.prototype.request,g);return o.extend(A,s.prototype,g),o.extend(A,g),A}var h=u(c);h.Axios=s,h.create=function(g){return u(d(h.defaults,g))},h.Cancel=i(225),h.CancelToken=i(482),h.isCancel=i(223),h.all=function(g){return a.all(g)},h.spread=i(483),h.isAxiosError=i(484),n.exports=h,n.exports.default=h}).call(this,i(2))},function(n,r,i){(function(a){var o=i(21),l=i(219),s=i(469),d=i(470),c=i(224),u=i(480),h=u.validators;function f(g){this.defaults=g,this.interceptors={request:new s,response:new s}}f.prototype.request=function(A){typeof A=="string"?(A=arguments[1]||{},A.url=arguments[0]):A=A||{},A=c(this.defaults,A),A.method?A.method=A.method.toLowerCase():this.defaults.method?A.method=this.defaults.method.toLowerCase():A.method="get";var b=A.transitional;b!==void 0&&u.assertOptions(b,{silentJSONParsing:h.transitional(h.boolean,"1.0.0"),forcedJSONParsing:h.transitional(h.boolean,"1.0.0"),clarifyTimeoutError:h.transitional(h.boolean,"1.0.0")},!1);var p=[],y=!0;this.interceptors.request.forEach(function(X){typeof X.runWhen=="function"&&X.runWhen(A)===!1||(y=y&&X.synchronous,p.unshift(X.fulfilled,X.rejected))});var m=[];this.interceptors.response.forEach(function(X){m.push(X.fulfilled,X.rejected)});var F;if(!y){var R=[d,void 0];for(Array.prototype.unshift.apply(R,p),R=R.concat(m),F=a.resolve(A);R.length;)F=F.then(R.shift(),R.shift());return F}for(var C=A;p.length;){var B=p.shift(),N=p.shift();try{C=B(C)}catch(S){N(S);break}}try{F=d(C)}catch(S){return a.reject(S)}for(;m.length;)F=F.then(m.shift(),m.shift());return F},f.prototype.getUri=function(A){return A=c(this.defaults,A),l(A.url,A.params,A.paramsSerializer).replace(/^\?/,"")},o.forEach(["delete","get","head","options"],function(A){f.prototype[A]=function(b,p){return this.request(c(p||{},{method:A,url:b,data:(p||{}).data}))}}),o.forEach(["post","put","patch"],function(A){f.prototype[A]=function(b,p,y){return this.request(c(y||{},{method:A,url:b,data:p}))}}),n.exports=f}).call(this,i(2))},function(n,r,i){var a=i(21);function o(){this.handlers=[]}o.prototype.use=function(s,d,c){return this.handlers.push({fulfilled:s,rejected:d,synchronous:c?c.synchronous:!1,runWhen:c?c.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(s){this.handlers[s]&&(this.handlers[s]=null)},o.prototype.forEach=function(s){a.forEach(this.handlers,function(c){c!==null&&s(c)})},n.exports=o},function(n,r,i){(function(a){var o=i(21),l=i(471),s=i(223),d=i(131);function c(u){u.cancelToken&&u.cancelToken.throwIfRequested()}n.exports=function(h){c(h),h.headers=h.headers||{},h.data=l.call(h,h.data,h.headers,h.transformRequest),h.headers=o.merge(h.headers.common||{},h.headers[h.method]||{},h.headers),o.forEach(["delete","get","head","post","put","patch","common"],function(A){delete h.headers[A]});var f=h.adapter||d.adapter;return f(h).then(function(A){return c(h),A.data=l.call(h,A.data,A.headers,h.transformResponse),A},function(A){return s(A)||(c(h),A&&A.response&&(A.response.data=l.call(h,A.response.data,A.response.headers,h.transformResponse))),a.reject(A)})}}).call(this,i(2))},function(n,r,i){var a=i(21),o=i(131);n.exports=function(s,d,c){var u=this||o;return a.forEach(c,function(f){s=f.call(u,s,d)}),s}},function(n,r,i){var a=i(21);n.exports=function(l,s){a.forEach(l,function(c,u){u!==s&&u.toUpperCase()===s.toUpperCase()&&(l[s]=c,delete l[u])})}},function(n,r,i){var a=i(222);n.exports=function(l,s,d){var c=d.config.validateStatus;!d.status||!c||c(d.status)?l(d):s(a("Request failed with status code "+d.status,d.config,null,d.request,d))}},function(n,r,i){var a=i(21);n.exports=a.isStandardBrowserEnv()?function(){return{write:function(s,d,c,u,h,f){var g=[];g.push(s+"="+encodeURIComponent(d)),a.isNumber(c)&&g.push("expires="+new Date(c).toGMTString()),a.isString(u)&&g.push("path="+u),a.isString(h)&&g.push("domain="+h),f===!0&&g.push("secure"),document.cookie=g.join("; ")},read:function(s){var d=document.cookie.match(new RegExp("(^|;\\s*)("+s+")=([^;]*)"));return d?decodeURIComponent(d[3]):null},remove:function(s){this.write(s,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(n,r,i){var a=i(476),o=i(477);n.exports=function(s,d){return s&&!a(d)?o(s,d):d}},function(n,r,i){n.exports=function(o){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(o)}},function(n,r,i){n.exports=function(o,l){return l?o.replace(/\/+$/,"")+"/"+l.replace(/^\/+/,""):o}},function(n,r,i){var a=i(21),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];n.exports=function(s){var d={},c,u,h;return s&&a.forEach(s.split(` `),function(g){if(h=g.indexOf(":"),c=a.trim(g.substr(0,h)).toLowerCase(),u=a.trim(g.substr(h+1)),c){if(d[c]&&o.indexOf(c)>=0)return;c==="set-cookie"?d[c]=(d[c]?d[c]:[]).concat([u]):d[c]=d[c]?d[c]+", "+u:u}}),d}},function(n,r,i){var a=i(21);n.exports=a.isStandardBrowserEnv()?function(){var l=/(msie|trident)/i.test(navigator.userAgent),s=document.createElement("a"),d;function c(u){var h=u;return l&&(s.setAttribute("href",h),h=s.href),s.setAttribute("href",h),{href:s.href,protocol:s.protocol?s.protocol.replace(/:$/,""):"",host:s.host,search:s.search?s.search.replace(/^\?/,""):"",hash:s.hash?s.hash.replace(/^#/,""):"",hostname:s.hostname,port:s.port,pathname:s.pathname.charAt(0)==="/"?s.pathname:"/"+s.pathname}}return d=c(window.location.href),function(h){var f=a.isString(h)?c(h):h;return f.protocol===d.protocol&&f.host===d.host}}():function(){return function(){return!0}}()},function(n,r,i){var a=i(481),o={};["object","boolean","number","function","string","symbol"].forEach(function(u,h){o[u]=function(g){return typeof g===u||"a"+(h<1?"n ":" ")+u}});var l={},s=a.version.split(".");function d(u,h){for(var f=h?h.split("."):s,g=u.split("."),A=0;A<3;A++){if(f[A]>g[A])return!0;if(f[A]<g[A])return!1}return!1}o.transitional=function(h,f,g){var A=f&&d(f);function b(p,y){return"[Axios v"+a.version+"] Transitional option '"+p+"'"+y+(g?". "+g:"")}return function(p,y,m){if(h===!1)throw new Error(b(y," has been removed in "+f));return A&&!l[y]&&(l[y]=!0,console.warn(b(y," has been deprecated since v"+f+" and will be removed in the near future"))),h?h(p,y,m):!0}};function c(u,h,f){if(typeof u!="object")throw new TypeError("options must be an object");for(var g=Object.keys(u),A=g.length;A-- >0;){var b=g[A],p=h[b];if(p){var y=u[b],m=y===void 0||p(y,b,u);if(m!==!0)throw new TypeError("option "+b+" must be "+m);continue}if(f!==!0)throw Error("Unknown option "+b)}}n.exports={isOlderVersion:d,assertOptions:c,validators:o}},function(n){n.exports=JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}')},function(n,r,i){(function(a){var o=i(225);function l(s){if(typeof s!="function")throw new TypeError("executor must be a function.");var d;this.promise=new a(function(h){d=h});var c=this;s(function(h){c.reason||(c.reason=new o(h),d(c.reason))})}l.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},l.source=function(){var d,c=new l(function(h){d=h});return{token:c,cancel:d}},n.exports=l}).call(this,i(2))},function(n,r,i){n.exports=function(o){return function(s){return o.apply(null,s)}}},function(n,r,i){n.exports=function(o){return typeof o=="object"&&o.isAxiosError===!0}},function(n,r,i){var a=i(226),o=a("mapKeys",i(534));o.placeholder=i(132),n.exports=o},function(n,r,i){var a=i(487),o=i(132),l=Array.prototype.push;function s(A,b){return b==2?function(p,y){return A.apply(void 0,arguments)}:function(p){return A.apply(void 0,arguments)}}function d(A,b){return b==2?function(p,y){return A(p,y)}:function(p){return A(p)}}function c(A){for(var b=A?A.length:0,p=Array(b);b--;)p[b]=A[b];return p}function u(A){return function(b){return A({},b)}}function h(A,b){return function(){for(var p=arguments.length,y=p-1,m=Array(p);p--;)m[p]=arguments[p];var F=m[b],R=m.slice(0,b);return F&&l.apply(R,F),b!=y&&l.apply(R,m.slice(b+1)),A.apply(this,R)}}function f(A,b){return function(){var p=arguments.length;if(p){for(var y=Array(p);p--;)y[p]=arguments[p];var m=y[0]=b.apply(void 0,y);return A.apply(void 0,y),m}}}function g(A,b,p,y){var m=typeof b=="function",F=b===Object(b);if(F&&(y=p,p=b,b=void 0),p==null)throw new TypeError;y||(y={});var R={cap:"cap"in y?y.cap:!0,curry:"curry"in y?y.curry:!0,fixed:"fixed"in y?y.fixed:!0,immutable:"immutable"in y?y.immutable:!0,rearg:"rearg"in y?y.rearg:!0},C=m?p:o,B="curry"in y&&y.curry,N="fixed"in y&&y.fixed,S="rearg"in y&&y.rearg,X=m?p.runInContext():void 0,J=m?p:{ary:A.ary,assign:A.assign,clone:A.clone,curry:A.curry,forEach:A.forEach,isArray:A.isArray,isError:A.isError,isFunction:A.isFunction,isWeakMap:A.isWeakMap,iteratee:A.iteratee,keys:A.keys,rearg:A.rearg,toInteger:A.toInteger,toPath:A.toPath},E=J.ary,v=J.assign,j=J.clone,H=J.curry,K=J.forEach,Fe=J.isArray,z=J.isError,q=J.isFunction,Ae=J.isWeakMap,Ke=J.keys,pe=J.rearg,We=J.toInteger,xe=J.toPath,$e=Ke(a.aryMethod),Rt={castArray:function(Ee){return function(){var Ge=arguments[0];return Fe(Ge)?Ee(c(Ge)):Ee.apply(void 0,arguments)}},iteratee:function(Ee){return function(){var Ge=arguments[0],he=arguments[1],$=Ee(Ge,he),ie=$.length;return R.cap&&typeof he=="number"?(he=he>2?he-2:1,ie&&ie<=he?$:d($,he)):$}},mixin:function(Ee){return function(Ge){var he=this;if(!q(he))return Ee(he,Object(Ge));var $=[];return K(Ke(Ge),function(ie){q(Ge[ie])&&$.push([ie,he.prototype[ie]])}),Ee(he,Object(Ge)),K($,function(ie){var Ve=ie[1];q(Ve)?he.prototype[ie[0]]=Ve:delete he.prototype[ie[0]]}),he}},nthArg:function(Ee){return function(Ge){var he=Ge<0?1:We(Ge)+1;return H(Ee(Ge),he)}},rearg:function(Ee){return function(Ge,he){var $=he?he.length:0;return H(Ee(Ge,he),$)}},runInContext:function(Ee){return function(Ge){return g(A,Ee(Ge),y)}}};function Be(Ee,Ge){if(R.cap){var he=a.iterateeRearg[Ee];if(he)return Ye(Ge,he);var $=!m&&a.iterateeAry[Ee];if($)return ve(Ge,$)}return Ge}function qe(Ee,Ge,he){return B||R.curry&&he>1?H(Ge,he):Ge}function at(Ee,Ge,he){if(R.fixed&&(N||!a.skipFixed[Ee])){var $=a.methodSpread[Ee],ie=$&&$.start;return ie===void 0?E(Ge,he):h(Ge,ie)}return Ge}function Bt(Ee,Ge,he){return R.rearg&&he>1&&(S||!a.skipRearg[Ee])?pe(Ge,a.methodRearg[Ee]||a.aryRearg[he]):Ge}function jt(Ee,Ge){Ge=xe(Ge);for(var he=-1,$=Ge.length,ie=$-1,Ve=j(Object(Ee)),_e=Ve;_e!=null&&++he<$;){var we=Ge[he],nt=_e[we];nt!=null&&!(q(nt)||z(nt)||Ae(nt))&&(_e[we]=j(he==ie?nt:Object(nt))),_e=_e[we]}return Ve}function Ne(Ee){return _t.runInContext.convert(Ee)(void 0)}function Je(Ee,Ge){var he=a.aliasToReal[Ee]||Ee,$=a.remap[he]||he,ie=y;return function(Ve){var _e=m?X:J,we=m?X[$]:Ge,nt=v(v({},ie),Ve);return g(_e,he,we,nt)}}function ve(Ee,Ge){return it(Ee,function(he){return typeof he=="function"?d(he,Ge):he})}function Ye(Ee,Ge){return it(Ee,function(he){var $=Ge.length;return s(pe(d(he,$),Ge),$)})}function it(Ee,Ge){return function(){var he=arguments.length;if(!he)return Ee();for(var $=Array(he);he--;)$[he]=arguments[he];var ie=R.rearg?0:he-1;return $[ie]=Ge($[ie]),Ee.apply(void 0,$)}}function Qt(Ee,Ge,he){var $,ie=a.aliasToReal[Ee]||Ee,Ve=Ge,_e=Rt[ie];return _e?Ve=_e(Ge):R.immutable&&(a.mutate.array[ie]?Ve=f(Ge,c):a.mutate.object[ie]?Ve=f(Ge,u(Ge)):a.mutate.set[ie]&&(Ve=f(Ge,jt))),K($e,function(we){return K(a.aryMethod[we],function(nt){if(ie==nt){var Gt=a.methodSpread[ie],An=Gt&&Gt.afterRearg;return $=An?at(ie,Bt(ie,Ve,we),we):Bt(ie,at(ie,Ve,we),we),$=Be(ie,$),$=qe(ie,$,we),!1}}),!$}),$||($=Ve),$==Ge&&($=B?H($,1):function(){return Ge.apply(this,arguments)}),$.convert=Je(ie,Ge),$.placeholder=Ge.placeholder=he,$}if(!F)return Qt(b,p,C);var _t=p,Dt=[];return K($e,function(Ee){K(a.aryMethod[Ee],function(Ge){var he=_t[a.remap[Ge]||Ge];he&&Dt.push([Ge,Qt(Ge,he,_t)])})}),K(Ke(_t),function(Ee){var Ge=_t[Ee];if(typeof Ge=="function"){for(var he=Dt.length;he--;)if(Dt[he][0]==Ee)return;Ge.convert=Je(Ee,Ge),Dt.push([Ee,Ge])}}),K(Dt,function(Ee){_t[Ee[0]]=Ee[1]}),_t.convert=Ne,_t.placeholder=_t,K(Ke(_t),function(Ee){K(a.realToAlias[Ee]||[],function(Ge){_t[Ge]=_t[Ee]})}),_t}n.exports=g},function(n,r){r.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},r.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},r.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},r.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},r.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},r.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},r.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},r.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},r.realToAlias=function(){var i=Object.prototype.hasOwnProperty,a=r.aliasToReal,o={};for(var l in a){var s=a[l];i.call(o,s)?o[s].push(l):o[s]=[l]}return o}(),r.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},r.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},r.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},function(n,r,i){n.exports={ary:i(489),assign:i(188),clone:i(42),curry:i(510),forEach:i(115),isArray:i(13),isError:i(511),isFunction:i(19),isWeakMap:i(512),iteratee:i(513),keys:i(118),rearg:i(530),toInteger:i(97),toPath:i(533)}},function(n,r,i){var a=i(133),o=128;function l(s,d,c){return d=c?void 0:d,d=s&&d==null?s.length:d,a(s,o,void 0,void 0,void 0,void 0,d)}n.exports=l},function(n,r,i){var a=i(95),o=i(15),l=1;function s(d,c,u){var h=c&l,f=a(d);function g(){var A=this&&this!==o&&this instanceof g?f:d;return A.apply(h?u:this,arguments)}return g}n.exports=s},function(n,r,i){var a=i(123),o=i(95),l=i(229),s=i(232),d=i(239),c=i(136),u=i(15);function h(f,g,A){var b=o(f);function p(){for(var y=arguments.length,m=Array(y),F=y,R=d(p);F--;)m[F]=arguments[F];var C=y<3&&m[0]!==R&&m[y-1]!==R?[]:c(m,R);if(y-=C.length,y<A)return s(f,g,l,p.placeholder,void 0,m,C,void 0,void 0,A-y);var B=this&&this!==u&&this instanceof p?b:f;return a(B,this,m)}return p}n.exports=h},function(n,r){function i(a,o){for(var l=a.length,s=0;l--;)a[l]===o&&++s;return s}n.exports=i},function(n,r,i){var a=i(134),o=i(233),l=i(494),s=i(496);function d(c){var u=l(c),h=s[u];if(typeof h!="function"||!(u in a.prototype))return!1;if(c===h)return!0;var f=o(h);return!!f&&c===f[0]}n.exports=d},function(n,r,i){var a=i(495),o=Object.prototype,l=o.hasOwnProperty;function s(d){for(var c=d.name+"",u=a[c],h=l.call(a,c)?u.length:0;h--;){var f=u[h],g=f.func;if(g==null||g==d)return f.name}return c}n.exports=s},function(n,r){var i={};n.exports=i},function(n,r,i){var a=i(134),o=i(235),l=i(135),s=i(13),d=i(20),c=i(497),u=Object.prototype,h=u.hasOwnProperty;function f(g){if(d(g)&&!s(g)&&!(g instanceof a)){if(g instanceof o)return g;if(h.call(g,"__wrapped__"))return c(g)}return new o(g)}f.prototype=l.prototype,f.prototype.constructor=f,n.exports=f},function(n,r,i){var a=i(134),o=i(235),l=i(55);function s(d){if(d instanceof a)return d.clone();var c=new o(d.__wrapped__,d.__chain__);return c.__actions__=l(d.__actions__),c.__index__=d.__index__,c.__values__=d.__values__,c}n.exports=s},function(n,r){var i=/\{\n\/\* \[wrapped with (.+)\] \*/,a=/,? & /;function o(l){var s=l.match(i);return s?s[1].split(a):[]}n.exports=o},function(n,r){var i=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function a(o,l){var s=l.length;if(!s)return o;var d=s-1;return l[d]=(s>1?"& ":"")+l[d],l=l.join(s>2?", ":" "),o.replace(i,`{ /* [wrapped with `+l+`] */ `)}n.exports=a},function(n,r,i){var a=i(115),o=i(96),l=1,s=2,d=8,c=16,u=32,h=64,f=128,g=256,A=512,b=[["ary",f],["bind",l],["bindKey",s],["curry",d],["curryRight",c],["flip",A],["partial",u],["partialRight",h],["rearg",g]];function p(y,m){return a(b,function(F){var R="_."+F[0];m&F[1]&&!o(y,R)&&y.push(R)}),y.sort()}n.exports=p},function(n,r,i){var a=i(238),o=i(502),l=i(503);function s(d,c,u){return c===c?l(d,c,u):a(d,o,u)}n.exports=s},function(n,r){function i(a){return a!==a}n.exports=i},function(n,r){function i(a,o,l){for(var s=l-1,d=a.length;++s<d;)if(a[s]===o)return s;return-1}n.exports=i},function(n,r,i){var a=i(55),o=i(66),l=Math.min;function s(d,c){for(var u=d.length,h=l(c.length,u),f=a(d);h--;){var g=c[h];d[h]=o(g,u)?f[g]:void 0}return d}n.exports=s},function(n,r,i){var a=i(123),o=i(95),l=i(15),s=1;function d(c,u,h,f){var g=u&s,A=o(c);function b(){for(var p=-1,y=arguments.length,m=-1,F=f.length,R=Array(F+y),C=this&&this!==l&&this instanceof b?A:c;++m<F;)R[m]=f[m];for(;y--;)R[m++]=arguments[++p];return a(C,g?h:this,R)}return b}n.exports=d},function(n,r,i){var a=i(230),o=i(231),l=i(136),s="__lodash_placeholder__",d=1,c=2,u=4,h=8,f=128,g=256,A=Math.min;function b(p,y){var m=p[1],F=y[1],R=m|F,C=R<(d|c|f),B=F==f&&m==h||F==f&&m==g&&p[7].length<=y[8]||F==(f|g)&&y[7].length<=y[8]&&m==h;if(!(C||B))return p;F&d&&(p[2]=y[2],R|=m&d?0:u);var N=y[3];if(N){var S=p[3];p[3]=S?a(S,N,y[4]):N,p[4]=S?l(p[3],s):y[4]}return N=y[5],N&&(S=p[5],p[5]=S?o(S,N,y[6]):N,p[6]=S?l(p[5],s):y[6]),N=y[7],N&&(p[7]=N),F&f&&(p[8]=p[8]==null?y[8]:A(p[8],y[8])),p[9]==null&&(p[9]=y[9]),p[0]=y[0],p[1]=R,p}n.exports=b},function(n,r,i){var a=i(240),o=1/0,l=17976931348623157e292;function s(d){if(!d)return d===0?d:0;if(d=a(d),d===o||d===-1/0){var c=d<0?-1:1;return c*l}return d===d?d:0}n.exports=s},function(n,r,i){var a=i(509),o=/^\s+/;function l(s){return s&&s.slice(0,a(s)+1).replace(o,"")}n.exports=l},function(n,r){var i=/\s/;function a(o){for(var l=o.length;l--&&i.test(o.charAt(l)););return l}n.exports=a},function(n,r,i){var a=i(133),o=8;function l(s,d,c){d=c?void 0:d;var u=a(s,o,void 0,void 0,void 0,void 0,void 0,d);return u.placeholder=l.placeholder,u}l.placeholder={},n.exports=l},function(n,r,i){var a=i(33),o=i(20),l=i(137),s="[object DOMException]",d="[object Error]";function c(u){if(!o(u))return!1;var h=a(u);return h==d||h==s||typeof u.message=="string"&&typeof u.name=="string"&&!l(u)}n.exports=c},function(n,r,i){var a=i(46),o=i(20),l="[object WeakMap]";function s(d){return o(d)&&a(d)==l}n.exports=s},function(n,r,i){var a=i(79),o=i(38),l=1;function s(d){return o(typeof d=="function"?d:a(d,l))}n.exports=s},function(n,r,i){var a=i(515),o=i(521),l=i(245);function s(d){var c=o(d);return c.length==1&&c[0][2]?l(c[0][0],c[0][1]):function(u){return u===d||a(u,d,c)}}n.exports=s},function(n,r,i){var a=i(80),o=i(138),l=1,s=2;function d(c,u,h,f){var g=h.length,A=g,b=!f;if(c==null)return!A;for(c=Object(c);g--;){var p=h[g];if(b&&p[2]?p[1]!==c[p[0]]:!(p[0]in c))return!1}for(;++g<A;){p=h[g];var y=p[0],m=c[y],F=p[1];if(b&&p[2]){if(m===void 0&&!(y in c))return!1}else{var R=new a;if(f)var C=f(m,F,y,c,u,R);if(!(C===void 0?o(F,m,l|s,f,R):C))return!1}}return!0}n.exports=d},function(n,r,i){var a=i(80),o=i(241),l=i(519),s=i(520),d=i(46),c=i(13),u=i(65),h=i(87),f=1,g="[object Arguments]",A="[object Array]",b="[object Object]",p=Object.prototype,y=p.hasOwnProperty;function m(F,R,C,B,N,S){var X=c(F),J=c(R),E=X?A:d(F),v=J?A:d(R);E=E==g?b:E,v=v==g?b:v;var j=E==b,H=v==b,K=E==v;if(K&&u(F)){if(!u(R))return!1;X=!0,j=!1}if(K&&!j)return S||(S=new a),X||h(F)?o(F,R,C,B,N,S):l(F,R,E,C,B,N,S);if(!(C&f)){var Fe=j&&y.call(F,"__wrapped__"),z=H&&y.call(R,"__wrapped__");if(Fe||z){var q=Fe?F.value():F,Ae=z?R.value():R;return S||(S=new a),N(q,Ae,C,B,S)}}return K?(S||(S=new a),s(F,R,C,B,N,S)):!1}n.exports=m},function(n,r){var i="__lodash_hash_undefined__";function a(o){return this.__data__.set(o,i),this}n.exports=a},function(n,r){function i(a){return this.__data__.has(a)}n.exports=i},function(n,r,i){var a=i(44),o=i(199),l=i(53),s=i(241),d=i(243),c=i(100),u=1,h=2,f="[object Boolean]",g="[object Date]",A="[object Error]",b="[object Map]",p="[object Number]",y="[object RegExp]",m="[object Set]",F="[object String]",R="[object Symbol]",C="[object ArrayBuffer]",B="[object DataView]",N=a?a.prototype:void 0,S=N?N.valueOf:void 0;function X(J,E,v,j,H,K,Fe){switch(v){case B:if(J.byteLength!=E.byteLength||J.byteOffset!=E.byteOffset)return!1;J=J.buffer,E=E.buffer;case C:return!(J.byteLength!=E.byteLength||!K(new o(J),new o(E)));case f:case g:case p:return l(+J,+E);case A:return J.name==E.name&&J.message==E.message;case y:case F:return J==E+"";case b:var z=d;case m:var q=j&u;if(z||(z=c),J.size!=E.size&&!q)return!1;var Ae=Fe.get(J);if(Ae)return Ae==E;j|=h,Fe.set(J,E);var Ke=s(z(J),z(E),j,H,K,Fe);return Fe.delete(J),Ke;case R:if(S)return S.call(J)==S.call(E)}return!1}n.exports=X},function(n,r,i){var a=i(194),o=1,l=Object.prototype,s=l.hasOwnProperty;function d(c,u,h,f,g,A){var b=h&o,p=a(c),y=p.length,m=a(u),F=m.length;if(y!=F&&!b)return!1;for(var R=y;R--;){var C=p[R];if(!(b?C in u:s.call(u,C)))return!1}var B=A.get(c),N=A.get(u);if(B&&N)return B==u&&N==c;var S=!0;A.set(c,u),A.set(u,c);for(var X=b;++R<y;){C=p[R];var J=c[C],E=u[C];if(f)var v=b?f(E,J,C,u,c,A):f(J,E,C,c,u,A);if(!(v===void 0?J===E||g(J,E,h,f,A):v)){S=!1;break}X||(X=C=="constructor")}if(S&&!X){var j=c.constructor,H=u.constructor;j!=H&&"constructor"in c&&"constructor"in u&&!(typeof j=="function"&&j instanceof j&&typeof H=="function"&&H instanceof H)&&(S=!1)}return A.delete(c),A.delete(u),S}n.exports=d},function(n,r,i){var a=i(244),o=i(34);function l(s){for(var d=o(s),c=d.length;c--;){var u=d[c],h=s[u];d[c]=[u,h,a(h)]}return d}n.exports=l},function(n,r,i){var a=i(138),o=i(58),l=i(247),s=i(139),d=i(244),c=i(245),u=i(49),h=1,f=2;function g(A,b){return s(A)&&d(b)?c(u(A),b):function(p){var y=o(p,A);return y===void 0&&y===b?l(p,A):a(b,y,h|f)}}n.exports=g},function(n,r,i){var a=i(126),o=500;function l(s){var d=a(s,function(u){return c.size===o&&c.clear(),u}),c=d.cache;return d}n.exports=l},function(n,r,i){var a=i(44),o=i(39),l=i(13),s=i(70),d=a?a.prototype:void 0,c=d?d.toString:void 0;function u(h){if(typeof h=="string")return h;if(l(h))return o(h,u)+"";if(s(h))return c?c.call(h):"";var f=h+"";return f=="0"&&1/h==-1/0?"-0":f}n.exports=u},function(n,r){function i(a,o){return a!=null&&o in Object(a)}n.exports=i},function(n,r,i){var a=i(59),o=i(64),l=i(13),s=i(66),d=i(116),c=i(49);function u(h,f,g){f=a(f,h);for(var A=-1,b=f.length,p=!1;++A<b;){var y=c(f[A]);if(!(p=h!=null&&g(h,y)))break;h=h[y]}return p||++A!=b?p:(b=h==null?0:h.length,!!b&&d(b)&&s(y,b)&&(l(h)||o(h)))}n.exports=u},function(n,r,i){var a=i(528),o=i(529),l=i(139),s=i(49);function d(c){return l(c)?a(s(c)):o(c)}n.exports=d},function(n,r){function i(a){return function(o){return o==null?void 0:o[a]}}n.exports=i},function(n,r,i){var a=i(101);function o(l){return function(s){return a(s,l)}}n.exports=o},function(n,r,i){var a=i(133),o=i(140),l=256,s=o(function(d,c){return a(d,l,void 0,void 0,void 0,c)});n.exports=s},function(n,r,i){var a=i(248);function o(l){var s=l==null?0:l.length;return s?a(l,1):[]}n.exports=o},function(n,r,i){var a=i(44),o=i(64),l=i(13),s=a?a.isConcatSpreadable:void 0;function d(c){return l(c)||o(c)||!!(s&&c&&c[s])}n.exports=d},function(n,r,i){var a=i(39),o=i(55),l=i(13),s=i(70),d=i(246),c=i(49),u=i(60);function h(f){return l(f)?a(f,c):s(f)?[f]:o(d(u(f)))}n.exports=h},function(n,r,i){var a=i(63),o=i(102),l=i(38);function s(d,c){var u={};return c=l(c,3),o(d,function(h,f,g){a(u,c(h,f,g),h)}),u}n.exports=s},function(n,r){function i(a){return function(o,l,s){for(var d=-1,c=Object(o),u=s(o),h=u.length;h--;){var f=u[a?h:++d];if(l(c[f],f,c)===!1)break}return o}}n.exports=i},function(n,r,i){var a=i(226),o=a("pick",i(40));o.placeholder=i(132),n.exports=o},function(n,r,i){var a=i(538),o=i(247);function l(s,d){return a(s,d,function(c,u){return o(s,u)})}n.exports=l},function(n,r,i){var a=i(101),o=i(539),l=i(59);function s(d,c,u){for(var h=-1,f=c.length,g={};++h<f;){var A=c[h],b=a(d,A);u(b,A)&&o(g,l(A,d),b)}return g}n.exports=s},function(n,r,i){var a=i(85),o=i(59),l=i(66),s=i(11),d=i(49);function c(u,h,f,g){if(!s(u))return u;h=o(h,u);for(var A=-1,b=h.length,p=b-1,y=u;y!=null&&++A<b;){var m=d(h[A]),F=f;if(m==="__proto__"||m==="constructor"||m==="prototype")return u;if(A!=p){var R=y[m];F=g?g(R,m,y):void 0,F===void 0&&(F=s(R)?R:l(h[A+1])?[]:{})}a(y,m,F),y=y[m]}return u}n.exports=c},function(n,r,i){(function(a){var o;(function(l){r&&r.nodeType,a&&a.nodeType;var s=typeof(typeof window!==void 0?window:yr)=="object"&&(typeof window!==void 0?window:yr);s.global===s||s.window===s||s.self;var d,c=2147483647,u=36,h=1,f=26,g=38,A=700,b=72,p=128,y="-",m=/^xn--/,F=/[^\x20-\x7E]/,R=/[\x2E\u3002\uFF0E\uFF61]/g,C={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},B=u-h,N=Math.floor,S=String.fromCharCode;function X(pe){throw new RangeError(C[pe])}function J(pe,We){for(var xe=pe.length,$e=[];xe--;)$e[xe]=We(pe[xe]);return $e}function E(pe,We){var xe=pe.split("@"),$e="";xe.length>1&&($e=xe[0]+"@",pe=xe[1]),pe=pe.replace(R,".");var Rt=pe.split("."),Be=J(Rt,We).join(".");return $e+Be}function v(pe){for(var We=[],xe=0,$e=pe.length,Rt,Be;xe<$e;)Rt=pe.charCodeAt(xe++),Rt>=55296&&Rt<=56319&&xe<$e?(Be=pe.charCodeAt(xe++),(Be&64512)==56320?We.push(((Rt&1023)<<10)+(Be&1023)+65536):(We.push(Rt),xe--)):We.push(Rt);return We}function j(pe){return J(pe,function(We){var xe="";return We>65535&&(We-=65536,xe+=S(We>>>10&1023|55296),We=56320|We&1023),xe+=S(We),xe}).join("")}function H(pe){return pe-48<10?pe-22:pe-65<26?pe-65:pe-97<26?pe-97:u}function K(pe,We){return pe+22+75*(pe<26)-((We!=0)<<5)}function Fe(pe,We,xe){var $e=0;for(pe=xe?N(pe/A):pe>>1,pe+=N(pe/We);pe>B*f>>1;$e+=u)pe=N(pe/B);return N($e+(B+1)*pe/(pe+g))}function z(pe){var We=[],xe=pe.length,$e,Rt=0,Be=p,qe=b,at,Bt,jt,Ne,Je,ve,Ye,it,Qt;for(at=pe.lastIndexOf(y),at<0&&(at=0),Bt=0;Bt<at;++Bt)pe.charCodeAt(Bt)>=128&&X("not-basic"),We.push(pe.charCodeAt(Bt));for(jt=at>0?at+1:0;jt<xe;){for(Ne=Rt,Je=1,ve=u;jt>=xe&&X("invalid-input"),Ye=H(pe.charCodeAt(jt++)),(Ye>=u||Ye>N((c-Rt)/Je))&&X("overflow"),Rt+=Ye*Je,it=ve<=qe?h:ve>=qe+f?f:ve-qe,!(Ye<it);ve+=u)Qt=u-it,Je>N(c/Qt)&&X("overflow"),Je*=Qt;$e=We.length+1,qe=Fe(Rt-Ne,$e,Ne==0),N(Rt/$e)>c-Be&&X("overflow"),Be+=N(Rt/$e),Rt%=$e,We.splice(Rt++,0,Be)}return j(We)}function q(pe){var We,xe,$e,Rt,Be,qe,at,Bt,jt,Ne,Je,ve=[],Ye,it,Qt,_t;for(pe=v(pe),Ye=pe.length,We=p,xe=0,Be=b,qe=0;qe<Ye;++qe)Je=pe[qe],Je<128&&ve.push(S(Je));for($e=Rt=ve.length,Rt&&ve.push(y);$e<Ye;){for(at=c,qe=0;qe<Ye;++qe)Je=pe[qe],Je>=We&&Je<at&&(at=Je);for(it=$e+1,at-We>N((c-xe)/it)&&X("overflow"),xe+=(at-We)*it,We=at,qe=0;qe<Ye;++qe)if(Je=pe[qe],Je<We&&++xe>c&&X("overflow"),Je==We){for(Bt=xe,jt=u;Ne=jt<=Be?h:jt>=Be+f?f:jt-Be,!(Bt<Ne);jt+=u)_t=Bt-Ne,Qt=u-Ne,ve.push(S(K(Ne+_t%Qt,0))),Bt=N(_t/Qt);ve.push(S(K(Bt,0))),Be=Fe(xe,it,$e==Rt),xe=0,++$e}++xe,++We}return ve.join("")}function Ae(pe){return E(pe,function(We){return m.test(We)?z(We.slice(4).toLowerCase()):We})}function Ke(pe){return E(pe,function(We){return F.test(We)?"xn--"+q(We):We})}d={version:"1.4.1",ucs2:{decode:v,encode:j},decode:z,encode:q,toASCII:Ke,toUnicode:Ae},o=(function(){return d}).call(r,i,r,a),o!==void 0&&(a.exports=o)})()}).call(this,i(86)(n))},function(n,r,i){n.exports={isString:function(a){return typeof a=="string"},isObject:function(a){return typeof a=="object"&&a!==null},isNull:function(a){return a===null},isNullOrUndefined:function(a){return a==null}}},function(n,r,i){r.decode=r.parse=i(543),r.encode=r.stringify=i(544)},function(n,r,i){function a(l,s){return Object.prototype.hasOwnProperty.call(l,s)}n.exports=function(l,s,d,c){s=s||"&",d=d||"=";var u={};if(typeof l!="string"||l.length===0)return u;var h=/\+/g;l=l.split(s);var f=1e3;c&&typeof c.maxKeys=="number"&&(f=c.maxKeys);var g=l.length;f>0&&g>f&&(g=f);for(var A=0;A<g;++A){var b=l[A].replace(h,"%20"),p=b.indexOf(d),y,m,F,R;p>=0?(y=b.substr(0,p),m=b.substr(p+1)):(y=b,m=""),F=decodeURIComponent(y),R=decodeURIComponent(m),a(u,F)?o(u[F])?u[F].push(R):u[F]=[u[F],R]:u[F]=R}return u};var o=Array.isArray||function(l){return Object.prototype.toString.call(l)==="[object Array]"}},function(n,r,i){var a=function(d){switch(typeof d){case"string":return d;case"boolean":return d?"true":"false";case"number":return isFinite(d)?d:"";default:return""}};n.exports=function(d,c,u,h){return c=c||"&",u=u||"=",d===null&&(d=void 0),typeof d=="object"?l(s(d),function(f){var g=encodeURIComponent(a(f))+u;return o(d[f])?l(d[f],function(A){return g+encodeURIComponent(a(A))}).join(c):g+encodeURIComponent(a(d[f]))}).join(c):h?encodeURIComponent(a(h))+u+encodeURIComponent(a(d)):""};var o=Array.isArray||function(d){return Object.prototype.toString.call(d)==="[object Array]"};function l(d,c){if(d.map)return d.map(c);for(var u=[],h=0;h<d.length;h++)u.push(c(d[h],h));return u}var s=Object.keys||function(d){var c=[];for(var u in d)Object.prototype.hasOwnProperty.call(d,u)&&c.push(u);return c}},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){const l=o.match(/OS (\d+_\d+).* like Mac/);if(!(l===null||!l[1]))return parseFloat(l[1].replace("_","."))}},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=/(Electron)\/([0-9]{1,}[.0-9]{0,})/;var l=s=>{const d=s.match(a);return d&&parseFloat(d[2])};r.default=l},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=function(l){l===void 0&&(l={});const s=l.global||(typeof window!==void 0?window:yr);return()=>s.navigator&&s.navigator.mediaDevices};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(105)),l=a(i(7));const s={0:"rotate(0deg)",270:"rotate(90deg)",90:"rotate(-90deg)",180:"rotate(180deg)"};function d(c,u,h){let f=h;(0,o.default)(c,{isRotated:{get(){return this.orientation()&&(this.orientation().videoOrientation===270||this.orientation().videoOrientation===90)}},orientation:{get(){return f},set(g){f=g;const A=s[g.videoOrientation]||s.ROTATED_NORMAL;switch(l.default.env.name){case"Chrome":case"Safari":u().style.webkitTransform=A;break;default:u().style.transform=A}c.trigger("orientationChanged",f)}},audioChannelType:{get(){return"mozAudioChannelType"in this.domElement?this.domElement.mozAudioChannelType:"unknown"},set(g){"mozAudioChannelType"in this.domElement&&(this.domElement.mozAudioChannelType=g)}}})}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(11));const l={for:"htmlFor",class:"className"};var d=c=>{c.prototype.attr=function(f,g){if((0,o.default)(f)){let A;Object.keys(f).forEach(b=>{A=l[b]||b,this.first.setAttribute(A,f[b])})}else{if(g===void 0)return this.first.getAttribute(l[f]||f);this.first.setAttribute(l[f]||f,g)}return this},c.prototype.removeAttr=function(f){const g=l[f]||f;return this.forEach(A=>{A.removeAttribute(g)}),this},c.prototype.html=function(f){return f!==void 0&&(this.first.innerHTML=f),this.first.innerHTML},c.prototype.center=function(f,g){let A;return this.forEach(b=>{A=new c(b),f=f||parseInt(A.width(),10),g=g||parseInt(A.height(),10);const p=`${-.5*f}px`,y=`${-.5*g}px`;A.css("margin",`${y} 0 0 ${p}`).addClass("OT_centered")}),this},c._attachToOTHelpers.centerElement=function(f,g,A){return new c(f).center(g,A)};const u=function(g){return g.offsetWidth>0?`${g.offsetWidth}px`:new c(g).css("width")},h=function(g){return g.offsetHeight>0?`${g.offsetHeight}px`:new c(g).css("height")};c.prototype.width=function(f){return f?(this.css("width",f),this):this.isDisplayNone()?this.makeVisibleAndYield(g=>u(g))[0]:u(this.get(0))},c._attachToOTHelpers.width=function(f,g){const A=new c(f).width(g);return g?c._attachToOTHelpers:A},c.prototype.height=function(f){return f?(this.css("height",f),this):this.isDisplayNone()?this.makeVisibleAndYield(g=>h(g))[0]:h(this.get(0))},c._attachToOTHelpers.height=function(f,g){const A=new c(f).height(g);return g?c._attachToOTHelpers:A}};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3));const l=(typeof window!==void 0?window:yr).getComputedStyle,s={Firefox:"moz",Opera:"O",Chrome:"Webkit",Safari:"Webkit"};function d(){return s[o.default.name]}var u=(h,f)=>{const g={},A={},b=function(N){if(A[N.ownerDocument]&&A[N.ownerDocument][N.nodeName])return A[N.ownerDocument][N.nodeName];A[N.ownerDocument]||(A[N.ownerDocument]={});let S=N.ownerDocument.createElement(N.nodeName),X;return N.ownerDocument.body.appendChild(S),X=new h(S).css("display"),A[N.ownerDocument][N.nodeName]=X,new h(S).remove(),S=null,X},p=function(N){return l(N).getPropertyValue("display")==="none"},y=function(N,S){if(S in N.style)return S;const J=d()+S[0].toUpperCase()+S.slice(1);return J in N.style?J:S},m=function(N,S){const X=N.style;for(const J in S)S.hasOwnProperty(J)&&(X[y(N,J)]=S[J])},F=function(N,S,X){N.style[y(N,S)]=X},R=function(N,S){const X=y(N,S);let E=l(N).getPropertyValue(X);return E===""&&(E=N.style[X]),E},C=function(N,S,X){const J=new h(N),E={};let v,j;for(v in S)S.hasOwnProperty(v)&&(E[v]=N.style[v],J.css(v,S[v]));j=X(N);for(v in S)S.hasOwnProperty(v)&&J.css(v,E[v]||"");return j};h.prototype.show=function(){return this.forEach(B=>{const N=B.style.display;(N===""||N==="none")&&(B.style.display=g[B]||"",delete g[B]),p(B)&&(g[B]="none",B.style.display=b(B))})},h.prototype.hide=function(){return this.forEach(B=>{B.style.display!=="none"&&(g[B]=B.style.display,B.style.display="none")})},h.prototype.css=function(B,N){if(this.length!==0)return typeof B!="string"?this.forEach(S=>{m(S,B)}):N!==void 0?this.forEach(S=>{F(S,B,N)}):R(this.first,B)},h.prototype.makeVisibleAndYield=function(B){const N={display:"block",visibility:"hidden"},S=[];return this.forEach(X=>{const J=f(X);J?S.push(C(J,N,B)):S.push(void 0)}),S}};r.default=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(552));function l(f,g){return g?(0,o.default)()?f.classList.contains(g):f.className.indexOf(g)>-1:!1}function s(f,g){if(!g||g.length===0||f.nodeType!==1)return;const A=g.length;let b=0;if((0,o.default)()){for(;b<A;++b)f.classList.toggle(g[b]);return}let p=` ${f.className} `.replace(/[\s+]/," ");for(;b<A;++b)l(f,g[b])?p=p.replace(` ${g[b]} `," "):p+=`${g[b]} `;f.className=p.trim()}function d(f,g){if(!g||g.length===0||f.nodeType!==1)return;const A=g.length;let b=0;if((0,o.default)()){for(;b<A;++b)f.classList.add(g[b]);return}if(!f.className&&g.length===1)f.className=g.join(" ");else{let p=` ${f.className} `;for(;b<A;++b)~p.indexOf(` ${g[b]} `)||(p+=`${g[b]} `);f.className=p.trim()}}function c(f,g){if(!g||g.length===0||f.nodeType!==1)return;const A=g.length;let b=0;if((0,o.default)()){for(;b<A;++b)f.classList.remove(g[b]);return}let p=` ${f.className} `.replace(/[\s+]/," ");for(;b<A;++b)p=p.replace(` ${g[b]} `," ");f.className=p.trim()}var h=f=>{f.prototype.addClass=function(g){if(g){const A=g.trim().split(/\s+/);this.forEach(b=>{d(b,A)})}return this},f.prototype.removeClass=function(g){if(g){const A=g.trim().split(/\s+/);this.forEach(b=>{c(b,A)})}return this},f.prototype.toggleClass=function(g){if(g){const A=g.trim().split(/\s+/);this.forEach(b=>{s(b,A)})}return this},f.prototype.hasClass=function(g){return this.some(A=>l(A,g))}};r.default=h},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=()=>typeof document<"u"&&"classList"in document.createElement("a");r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(554)),s=d=>{let c=0,u=0;const h=function(b,p,y){const m={},F=function(B){switch(B){case"width":return new d(b).width();case"height":return new d(b).height();default:return new d(b).css(B)}};p.forEach(C=>{m[C]=F(C)});const R=new(typeof window!==void 0?window:yr).MutationObserver(C=>{const B={};C.forEach(N=>{if(N.attributeName!=="style")return;const S=new d(b).isDisplayNone();p.forEach(X=>{if(S&&(X==="width"||X==="height"))return;const J=F(X);J!==m[X]&&(B[X]=[m[X],J],m[X]=J)})}),(0,o.default)(B)||setTimeout(()=>{y.call(null,B)})});return R.observe(b,{attributes:!0,attributeFilter:["style"],childList:!1,characterData:!1,subtree:!1}),R},f=function(b,p){const y=new(typeof window!==void 0?window:yr).MutationObserver(F=>{let R=[];F.forEach(C=>{C.removedNodes.length&&(R=R.concat(Array.prototype.slice.call(C.removedNodes)))}),R.length&&setTimeout(()=>{p(new d(R))})});y.observe(b,{attributes:!1,childList:!0,characterData:!1,subtree:!0}),u++;const m=y.disconnect;return y.disconnect=function(){m.apply(y,arguments),u--},y},g=function(b,p){let y={width:0,height:0};const m=setInterval(()=>{const F=b.getBoundingClientRect();(y.width!==F.width||y.height!==F.height)&&(p(F,y),y={width:F.width,height:F.height})},1e3/5);return c++,{disconnect(){clearInterval(m),c--}}};d.prototype.observeStyleChanges=function(A,b){const p=[];return this.forEach(y=>{p.push(h(y,A,b))}),p},d.prototype.observeNodeOrChildNodeRemoval=function(A){const b=[];return this.forEach(p=>{b.push(f(p,A))}),b},d.prototype.observeSize=function(A){const b=[];return this.forEach(p=>{b.push(g(p,A))}),b},d._attachToOTHelpers.observeStyleChanges=function(A,b,p){return new d(A).observeStyleChanges(b,p)[0]},d._attachToOTHelpers.observeNodeOrChildNodeRemoval=function(A,b){return new d(A).observeNodeOrChildNodeRemoval(b)[0]},d.__testOnly||(d.__testOnly={}),d.__testOnly.sizeObserverCount=function(){return c},d.__testOnly.nodeRemovalObserverCount=function(){return u}};r.default=s},function(n,r,i){var a=i(118),o=i(46),l=i(64),s=i(13),d=i(26),c=i(65),u=i(68),h=i(87),f="[object Map]",g="[object Set]",A=Object.prototype,b=A.hasOwnProperty;function p(y){if(y==null)return!0;if(d(y)&&(s(y)||typeof y=="string"||typeof y.splice=="function"||c(y)||h(y)||l(y)))return!y.length;var m=o(y);if(m==f||m==g)return!y.size;if(u(y))return!a(y).length;for(var F in y)if(b.call(y,F))return!1;return!0}n.exports=p},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(19));function l(s,d,c,u,h){let f,g=c;s.currentState=c;const A=function(p){if(g!==p){if(d.indexOf(p)===-1){h&&(0,o.default)(h)&&h("invalidState",p);return}s.previousState=g,f=g,s.currentState=p,g=p,u&&(0,o.default)(u)&&u(p,f)}};return s.is=function(){return Array.prototype.indexOf.call(arguments,g)!==-1},s.isNot=function(){return Array.prototype.indexOf.call(arguments,g)===-1},A}},function(n,r,i){var a=i(260),o=i(261),l,s,d=0,c=0;function u(h,f,g){var A=f&&g||0,b=f||[];h=h||{};var p=h.node||l,y=h.clockseq!==void 0?h.clockseq:s;if(p==null||y==null){var m=a();p==null&&(p=l=[m[0]|1,m[1],m[2],m[3],m[4],m[5]]),y==null&&(y=s=(m[6]<<8|m[7])&16383)}var F=h.msecs!==void 0?h.msecs:new Date().getTime(),R=h.nsecs!==void 0?h.nsecs:c+1,C=F-d+(R-c)/1e4;if(C<0&&h.clockseq===void 0&&(y=y+1&16383),(C<0||F>d)&&h.nsecs===void 0&&(R=0),R>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");d=F,c=R,s=y,F+=122192928e5;var B=((F&268435455)*1e4+R)%4294967296;b[A++]=B>>>24&255,b[A++]=B>>>16&255,b[A++]=B>>>8&255,b[A++]=B&255;var N=F/4294967296*1e4&268435455;b[A++]=N>>>8&255,b[A++]=N&255,b[A++]=N>>>24&15|16,b[A++]=N>>>16&255,b[A++]=y>>>8|128,b[A++]=y&255;for(var S=0;S<6;++S)b[A+S]=p[S];return f||o(b)}n.exports=u},function(n,r,i){var a=i(260),o=i(261);function l(s,d,c){var u=d&&c||0;typeof s=="string"&&(d=s==="binary"?new Array(16):null,s=null),s=s||{};var h=s.random||(s.rng||a)();if(h[6]=h[6]&15|64,h[8]=h[8]&63|128,d)for(var f=0;f<16;++f)d[u+f]=h[f];return d||o(h)}n.exports=l},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=function(){function l(d){let c=d===void 0?{}:d,u=c.waitTime,h=u===void 0?50:u;this.queue=[],this.running=!1,this.waitTime=h}var s=l.prototype;return s.add=function(c){this.queue.push(c),this.run()},s.run=function(){if(this.running)return;this.running=!0;const c=()=>{if(this.queue.length===0){this.running=!1;return}this.queue.shift()(()=>{setTimeout(c,this.waitTime)})};c()},l}();r.default=o},function(n,r,i){var a=i(98),o=i(96),l=i(146),s=i(39),d=i(67),c=i(99),u=Math.min;function h(f,g,A){for(var b=A?l:o,p=f[0].length,y=f.length,m=y,F=Array(y),R=1/0,C=[];m--;){var B=f[m];m&&g&&(B=s(B,d(g))),R=u(B.length,R),F[m]=!A&&(g||p>=120&&B.length>=120)?new a(m&&B):void 0}B=f[0];var N=-1,S=F[0];e:for(;++N<p&&C.length<R;){var X=B[N],J=g?g(X):X;if(X=A||X!==0?X:0,!(S?c(S,J):b(C,J,A))){for(m=y;--m;){var E=F[m];if(!(E?c(E,J):b(f[m],J,A)))continue e}S&&S.push(J),C.push(X)}}return C}n.exports=h},function(n,r,i){var a=i(147);function o(l){return a(l)?l:[]}n.exports=o},function(n,r,i){r.__esModule=!0,r.default=void 0;var a={1004:"Authentication error",1005:"Invalid Session ID",1006:"Connect Failed",1007:"Connect Rejected",1008:"Connect Time-out",1009:"Security Error",1010:"Not Connected",1011:"Invalid Parameter",1012:"Peer-to-peer Stream Play Failed",1013:"Connection Failed",1014:"API Response Failure",1015:"PeerConnection not connected, cannot call this method",1021:"Request Timeout",1026:"Terms of Service Violation: Export Compliance",1027:"Connection Limit Exceeded",1040:"Set Video Source Failure",1041:"Invalid Video Source",1500:"Unable to Publish",1501:"Unable to Subscribe",1502:"Unsupported Video Codec",1503:"No TURN server found",1520:"Unable to Force Disconnect",1530:"Unable to Force Unpublish",1540:"Unable to Force Mute",1553:"Publisher ICEWorkflow failed",1554:"Subscriber ICEWorkflow failed",1600:"createOffer, createAnswer, setLocalDescription, setRemoteDescription",1605:"Stream Limit Exceeded",2e3:"Internal Error",2001:"Unexpected Server Response",2021:"Proxy URL Timing Error",2022:"Proxy URL Already Set Error",2031:"getRtcStatsReport is not supported in this browser",4e3:"WebSocket Connection Failed",4001:"WebSocket Network Disconnected",5001:"Unable to access media engine"};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(563)),l=(s,d)=>{if(typeof s=="string"&&typeof d=="string"){const c=(0,o.default)(s),u=d.match(/(\w+:\/\/)(.*)/),h=u[1],f=u[2];return`${h}${c}/${f}`}return d};r.default=l},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=l=>l.replace(/\/+$/,"").replace(/^.*:\/+/,"");r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(565)),l=a(i(566));function s(d){d===void 0&&(d={});const c=d.isSessionProxied||l.default,u=d,h=u.sessionId;c(h)&&o.default.forEach(f=>{f in d&&(d[f]="")})}},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=["audioLocalAddress","audioRemoteAddress","videoLocalAddress","videoRemoteAddress"];r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(24));const l=o.default.sessions;var s=d=>{const c=l.get(d);return c?!!c._.getProxyUrl():!1};r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5));const s={architecture:"event_ua_arch",bitness:"event_ua_bitness",model:"event_ua_model",platformVersion:"event_ua_platform_version"};var c=function(){var u=(0,l.default)(o.default.mark(function h(f){var g,A;return o.default.wrap(function(p){for(;;)switch(p.prev=p.next){case 0:if(g={},!(f!=null&&f.getHighEntropyValues)){p.next=6;break}return p.next=4,f.getHighEntropyValues(Object.keys(s));case 4:A=p.sent,A&&Object.entries(s).forEach(y=>{let m=y[0],F=y[1];A[m]!==void 0&&(g[F]=A[m])});case 6:return p.abrupt("return",g);case 7:case"end":return p.stop()}},h)}));return function(f){return u.apply(this,arguments)}}();r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(258));const l={};l.isElementNode=function(d){return d&&typeof d=="object"&&d.nodeType===1},l.createElement=function(d,c,u,h){const f=(h||document).createElement(d);c=c||{},Object.keys(c).forEach(A=>{if(typeof c[A]=="object"){f[A]||(f[A]={});const b=c[A];Object.keys(b).forEach(p=>{f[A][p]=b[p]})}else A==="className"?f.className=c[A]:f.setAttribute(A,c[A])});const g=function(b){typeof b=="string"?f.innerHTML+=b:f.appendChild(b)};return Array.isArray(u)?u.forEach(g):u&&g(u),f},(0,o.default)(l);var s=l;r.default=s},function(n,r,i){r.__esModule=!0,r.default=a;function a(){function o(l){return l.getTracks().every(s=>s.readyState==="ended")}return function(s,d,c){const u=[];function h(b){setTimeout(()=>{if(u.length)if(o(s))g(),typeof d=="function"&&d();else{const p=b.target;f(p),typeof c=="function"&&c(p)}},100)}function f(b){b.onended===h&&(b.onended=null);const p=u.indexOf(b);p>=0&&u.splice(p,1)}function g(){u.slice().forEach(f)}function A(){s.getTracks().forEach(b=>{u.push(b),b.onended=h})}return A(),{stop:g,refresh:()=>{g(),A()}}}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(149)),l=d(i(571));function s(h){if(typeof WeakMap!="function")return null;var f=new WeakMap,g=new WeakMap;return(s=function(b){return b?g:f})(h)}function d(h,f){if(h&&h.__esModule)return h;if(h===null||typeof h!="object"&&typeof h!="function")return{default:h};var g=s(f);if(g&&g.has(h))return g.get(h);var A={},b=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in h)if(p!=="default"&&Object.prototype.hasOwnProperty.call(h,p)){var y=b?Object.getOwnPropertyDescriptor(h,p):null;y&&(y.get||y.set)?Object.defineProperty(A,p,y):A[p]=h[p]}return A.default=h,g&&g.set(h,A),A}var u=function(f){f===void 0&&(f={});const g=f.document||document,A=f.videoElementBuffer||l,b=f.createVideoElementUsingNativeAPI||o.default;return g.hasFocus()?(A.fillBuffer(),b()):A.getNext()||b()};r.default=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.sizeOfBuffer=r.getNext=r.fillBuffer=r.clearBuffer=r.MAX_VIDEO_ELEMENTS=void 0;var o=a(i(149));const l=20;r.MAX_VIDEO_ELEMENTS=l;const s=[],d=()=>s.length;r.sizeOfBuffer=d;const c=()=>{for(;d()<l;){const f=(0,o.default)();f.play().catch(()=>{}),s.push(f)}};r.fillBuffer=c;const u=()=>s.shift();r.getNext=u;const h=()=>{s.length=0};r.clearBuffer=h},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=["buildHash","minimumVersion","debug",["websiteURL","websiteUrl"],["cdnURL","cdnUrl"],["loggingURL","loggingUrl"],["apiURL","apiUrl"],["supportSSL",!0],["cdnURLSSL","cdnUrl"],["loggingURLSSL","loggingUrl"],["apiURLSSL","apiUrl"],["assetURL","assetUrl"]];r.default=o},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=["apiUrl","apiURL","apiURLSSL"];r.default=o},function(n,r,i){r.__esModule=!0,r.default=a;function a(){const o=(typeof window!==void 0?window:yr).OT,l=(typeof window!==void 0?window:yr).TB;return()=>{const s=(typeof window!==void 0?window:yr).OT;return(typeof window!==void 0?window:yr).OT=o,(typeof window!==void 0?window:yr).TB=l,s}}},function(n,r,i){var a=i(32);n.exports=function(o,l){var s=o&&o.window,d={shimChrome:!0,shimFirefox:!0,shimEdge:!0,shimSafari:!0};for(var c in l)hasOwnProperty.call(l,c)&&(d[c]=l[c]);var u=a.log,h=a.detectBrowser(s),f=i(576)||null,g=i(578)||null,A=i(582)||null,b=i(584)||null,p=i(585)||null,y={browserDetails:h,commonShim:p,extractVersion:a.extractVersion,disableLog:a.disableLog,disableWarnings:a.disableWarnings};switch(h.browser){case"chrome":if(!f||!f.shimPeerConnection||!d.shimChrome)return u("Chrome shim is not included in this adapter release."),y;u("adapter.js shimming chrome."),y.browserShim=f,p.shimCreateObjectURL(s),f.shimGetUserMedia(s),f.shimMediaStream(s),f.shimSourceObject(s),f.shimPeerConnection(s),f.shimOnTrack(s),f.shimAddTrackRemoveTrack(s),f.shimGetSendersWithDtmf(s),f.shimSenderReceiverGetStats(s),f.fixNegotiationNeeded(s),p.shimRTCIceCandidate(s),p.shimMaxMessageSize(s),p.shimSendThrowTypeError(s);break;case"firefox":if(!A||!A.shimPeerConnection||!d.shimFirefox)return u("Firefox shim is not included in this adapter release."),y;u("adapter.js shimming firefox."),y.browserShim=A,p.shimCreateObjectURL(s),A.shimGetUserMedia(s),A.shimSourceObject(s),A.shimPeerConnection(s),A.shimOnTrack(s),A.shimRemoveStream(s),A.shimSenderGetStats(s),A.shimReceiverGetStats(s),A.shimRTCDataChannel(s),p.shimRTCIceCandidate(s),p.shimMaxMessageSize(s),p.shimSendThrowTypeError(s);break;case"edge":if(!g||!g.shimPeerConnection||!d.shimEdge)return u("MS edge shim is not included in this adapter release."),y;u("adapter.js shimming edge."),y.browserShim=g,p.shimCreateObjectURL(s),g.shimGetUserMedia(s),g.shimPeerConnection(s),g.shimReplaceTrack(s),g.shimGetDisplayMedia(s),p.shimMaxMessageSize(s),p.shimSendThrowTypeError(s);break;case"safari":if(!b||!d.shimSafari)return u("Safari shim is not included in this adapter release."),y;u("adapter.js shimming safari."),y.browserShim=b,p.shimCreateObjectURL(s),b.shimRTCIceServerUrls(s),b.shimCreateOfferLegacy(s),b.shimCallbacksAPI(s),b.shimLocalStreamsAPI(s),b.shimRemoteStreamsAPI(s),b.shimTrackEventTransceiver(s),b.shimGetUserMedia(s),p.shimRTCIceCandidate(s),p.shimMaxMessageSize(s),p.shimSendThrowTypeError(s);break;default:u("Unsupported browser!");break}return y}},function(n,r,i){(function(a){var o=i(32),l=o.log;function s(c,u,h){!u||h.has(u.id)||(h.set(u.id,u),Object.keys(u).forEach(function(f){f.endsWith("Id")?s(c,c.get(u[f]),h):f.endsWith("Ids")&&u[f].forEach(function(g){s(c,c.get(g),h)})}))}function d(c,u,h){var f=h?"outbound-rtp":"inbound-rtp",g=new Map;if(u===null)return g;var A=[];return c.forEach(function(b){b.type==="track"&&b.trackIdentifier===u.id&&A.push(b)}),A.forEach(function(b){c.forEach(function(p){p.type===f&&p.trackId===b.id&&s(c,p,g)})}),g}n.exports={shimGetUserMedia:i(577),shimMediaStream:function(c){c.MediaStream=c.MediaStream||c.webkitMediaStream},shimOnTrack:function(c){if(typeof c=="object"&&c.RTCPeerConnection&&!("ontrack"in c.RTCPeerConnection.prototype)){Object.defineProperty(c.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(h){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=h)},enumerable:!0,configurable:!0});var u=c.RTCPeerConnection.prototype.setRemoteDescription;c.RTCPeerConnection.prototype.setRemoteDescription=function(){var h=this;return h._ontrackpoly||(h._ontrackpoly=function(f){f.stream.addEventListener("addtrack",function(g){var A;c.RTCPeerConnection.prototype.getReceivers?A=h.getReceivers().find(function(p){return p.track&&p.track.id===g.track.id}):A={track:g.track};var b=new Event("track");b.track=g.track,b.receiver=A,b.transceiver={receiver:A},b.streams=[f.stream],h.dispatchEvent(b)}),f.stream.getTracks().forEach(function(g){var A;c.RTCPeerConnection.prototype.getReceivers?A=h.getReceivers().find(function(p){return p.track&&p.track.id===g.id}):A={track:g};var b=new Event("track");b.track=g,b.receiver=A,b.transceiver={receiver:A},b.streams=[f.stream],h.dispatchEvent(b)})},h.addEventListener("addstream",h._ontrackpoly)),u.apply(h,arguments)}}else o.wrapPeerConnectionEvent(c,"track",function(h){return h.transceiver||Object.defineProperty(h,"transceiver",{value:{receiver:h.receiver}}),h})},shimGetSendersWithDtmf:function(c){if(typeof c=="object"&&c.RTCPeerConnection&&!("getSenders"in c.RTCPeerConnection.prototype)&&"createDTMFSender"in c.RTCPeerConnection.prototype){var u=function(p,y){return{track:y,get dtmf(){return this._dtmf===void 0&&(y.kind==="audio"?this._dtmf=p.createDTMFSender(y):this._dtmf=null),this._dtmf},_pc:p}};if(!c.RTCPeerConnection.prototype.getSenders){c.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};var h=c.RTCPeerConnection.prototype.addTrack;c.RTCPeerConnection.prototype.addTrack=function(p,y){var m=this,F=h.apply(m,arguments);return F||(F=u(m,p),m._senders.push(F)),F};var f=c.RTCPeerConnection.prototype.removeTrack;c.RTCPeerConnection.prototype.removeTrack=function(p){var y=this;f.apply(y,arguments);var m=y._senders.indexOf(p);m!==-1&&y._senders.splice(m,1)}}var g=c.RTCPeerConnection.prototype.addStream;c.RTCPeerConnection.prototype.addStream=function(p){var y=this;y._senders=y._senders||[],g.apply(y,[p]),p.getTracks().forEach(function(m){y._senders.push(u(y,m))})};var A=c.RTCPeerConnection.prototype.removeStream;c.RTCPeerConnection.prototype.removeStream=function(p){var y=this;y._senders=y._senders||[],A.apply(y,[p]),p.getTracks().forEach(function(m){var F=y._senders.find(function(R){return R.track===m});F&&y._senders.splice(y._senders.indexOf(F),1)})}}else if(typeof c=="object"&&c.RTCPeerConnection&&"getSenders"in c.RTCPeerConnection.prototype&&"createDTMFSender"in c.RTCPeerConnection.prototype&&c.RTCRtpSender&&!("dtmf"in c.RTCRtpSender.prototype)){var b=c.RTCPeerConnection.prototype.getSenders;c.RTCPeerConnection.prototype.getSenders=function(){var p=this,y=b.apply(p,[]);return y.forEach(function(m){m._pc=p}),y},Object.defineProperty(c.RTCRtpSender.prototype,"dtmf",{get:function(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}},shimSenderReceiverGetStats:function(c){if(typeof c=="object"&&c.RTCPeerConnection&&c.RTCRtpSender&&c.RTCRtpReceiver){if(!("getStats"in c.RTCRtpSender.prototype)){var u=c.RTCPeerConnection.prototype.getSenders;u&&(c.RTCPeerConnection.prototype.getSenders=function(){var A=this,b=u.apply(A,[]);return b.forEach(function(p){p._pc=A}),b});var h=c.RTCPeerConnection.prototype.addTrack;h&&(c.RTCPeerConnection.prototype.addTrack=function(){var A=h.apply(this,arguments);return A._pc=this,A}),c.RTCRtpSender.prototype.getStats=function(){var A=this;return this._pc.getStats().then(function(b){return d(b,A.track,!0)})}}if(!("getStats"in c.RTCRtpReceiver.prototype)){var f=c.RTCPeerConnection.prototype.getReceivers;f&&(c.RTCPeerConnection.prototype.getReceivers=function(){var A=this,b=f.apply(A,[]);return b.forEach(function(p){p._pc=A}),b}),o.wrapPeerConnectionEvent(c,"track",function(A){return A.receiver._pc=A.srcElement,A}),c.RTCRtpReceiver.prototype.getStats=function(){var A=this;return this._pc.getStats().then(function(b){return d(b,A.track,!1)})}}if("getStats"in c.RTCRtpSender.prototype&&"getStats"in c.RTCRtpReceiver.prototype){var g=c.RTCPeerConnection.prototype.getStats;c.RTCPeerConnection.prototype.getStats=function(){var A=this;if(arguments.length>0&&arguments[0]instanceof c.MediaStreamTrack){var b=arguments[0],p,y,m;return A.getSenders().forEach(function(F){F.track===b&&(p?m=!0:p=F)}),A.getReceivers().forEach(function(F){return F.track===b&&(y?m=!0:y=F),F.track===b}),m||p&&y?a.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):p?p.getStats():y?y.getStats():a.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return g.apply(A,arguments)}}}},shimSourceObject:function(c){var u=c&&c.URL;typeof c=="object"&&c.HTMLMediaElement&&!("srcObject"in c.HTMLMediaElement.prototype)&&Object.defineProperty(c.HTMLMediaElement.prototype,"srcObject",{get:function(){return this._srcObject},set:function(h){var f=this;if(this._srcObject=h,this.src&&u.revokeObjectURL(this.src),!h){this.src="";return}this.src=u.createObjectURL(h),h.addEventListener("addtrack",function(){f.src&&u.revokeObjectURL(f.src),f.src=u.createObjectURL(h)}),h.addEventListener("removetrack",function(){f.src&&u.revokeObjectURL(f.src),f.src=u.createObjectURL(h)})}})},shimAddTrackRemoveTrackWithNative:function(c){c.RTCPeerConnection.prototype.getLocalStreams=function(){var A=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(function(b){return A._shimmedLocalStreams[b][0]})};var u=c.RTCPeerConnection.prototype.addTrack;c.RTCPeerConnection.prototype.addTrack=function(A,b){if(!b)return u.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};var p=u.apply(this,arguments);return this._shimmedLocalStreams[b.id]?this._shimmedLocalStreams[b.id].indexOf(p)===-1&&this._shimmedLocalStreams[b.id].push(p):this._shimmedLocalStreams[b.id]=[b,p],p};var h=c.RTCPeerConnection.prototype.addStream;c.RTCPeerConnection.prototype.addStream=function(A){var b=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{},A.getTracks().forEach(function(m){var F=b.getSenders().find(function(R){return R.track===m});if(F)throw new DOMException("Track already exists.","InvalidAccessError")});var p=b.getSenders();h.apply(this,arguments);var y=b.getSenders().filter(function(m){return p.indexOf(m)===-1});this._shimmedLocalStreams[A.id]=[A].concat(y)};var f=c.RTCPeerConnection.prototype.removeStream;c.RTCPeerConnection.prototype.removeStream=function(A){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[A.id],f.apply(this,arguments)};var g=c.RTCPeerConnection.prototype.removeTrack;c.RTCPeerConnection.prototype.removeTrack=function(A){var b=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},A&&Object.keys(this._shimmedLocalStreams).forEach(function(p){var y=b._shimmedLocalStreams[p].indexOf(A);y!==-1&&b._shimmedLocalStreams[p].splice(y,1),b._shimmedLocalStreams[p].length===1&&delete b._shimmedLocalStreams[p]}),g.apply(this,arguments)}},shimAddTrackRemoveTrack:function(c){if(!c.RTCPeerConnection)return;var u=o.detectBrowser(c);if(c.RTCPeerConnection.prototype.addTrack&&u.version>=65)return this.shimAddTrackRemoveTrackWithNative(c);var h=c.RTCPeerConnection.prototype.getLocalStreams;c.RTCPeerConnection.prototype.getLocalStreams=function(){var m=this,F=h.apply(this);return m._reverseStreams=m._reverseStreams||{},F.map(function(R){return m._reverseStreams[R.id]})};var f=c.RTCPeerConnection.prototype.addStream;c.RTCPeerConnection.prototype.addStream=function(m){var F=this;if(F._streams=F._streams||{},F._reverseStreams=F._reverseStreams||{},m.getTracks().forEach(function(C){var B=F.getSenders().find(function(N){return N.track===C});if(B)throw new DOMException("Track already exists.","InvalidAccessError")}),!F._reverseStreams[m.id]){var R=new c.MediaStream(m.getTracks());F._streams[m.id]=R,F._reverseStreams[R.id]=m,m=R}f.apply(F,[m])};var g=c.RTCPeerConnection.prototype.removeStream;c.RTCPeerConnection.prototype.removeStream=function(m){var F=this;F._streams=F._streams||{},F._reverseStreams=F._reverseStreams||{},g.apply(F,[F._streams[m.id]||m]),delete F._reverseStreams[F._streams[m.id]?F._streams[m.id].id:m.id],delete F._streams[m.id]},c.RTCPeerConnection.prototype.addTrack=function(m,F){var R=this;if(R.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");var C=[].slice.call(arguments,1);if(C.length!==1||!C[0].getTracks().find(function(X){return X===m}))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");var B=R.getSenders().find(function(X){return X.track===m});if(B)throw new DOMException("Track already exists.","InvalidAccessError");R._streams=R._streams||{},R._reverseStreams=R._reverseStreams||{};var N=R._streams[F.id];if(N)N.addTrack(m),a.resolve().then(function(){R.dispatchEvent(new Event("negotiationneeded"))});else{var S=new c.MediaStream([m]);R._streams[F.id]=S,R._reverseStreams[S.id]=F,R.addStream(S)}return R.getSenders().find(function(X){return X.track===m})};function A(m,F){var R=F.sdp;return Object.keys(m._reverseStreams||[]).forEach(function(C){var B=m._reverseStreams[C],N=m._streams[B.id];R=R.replace(new RegExp(N.id,"g"),B.id)}),new RTCSessionDescription({type:F.type,sdp:R})}function b(m,F){var R=F.sdp;return Object.keys(m._reverseStreams||[]).forEach(function(C){var B=m._reverseStreams[C],N=m._streams[B.id];R=R.replace(new RegExp(B.id,"g"),N.id)}),new RTCSessionDescription({type:F.type,sdp:R})}["createOffer","createAnswer"].forEach(function(m){var F=c.RTCPeerConnection.prototype[m];c.RTCPeerConnection.prototype[m]=function(){var R=this,C=arguments,B=arguments.length&&typeof arguments[0]=="function";return B?F.apply(R,[function(N){var S=A(R,N);C[0].apply(null,[S])},function(N){C[1]&&C[1].apply(null,N)},arguments[2]]):F.apply(R,arguments).then(function(N){return A(R,N)})}});var p=c.RTCPeerConnection.prototype.setLocalDescription;c.RTCPeerConnection.prototype.setLocalDescription=function(){var m=this;return!arguments.length||!arguments[0].type||(arguments[0]=b(m,arguments[0])),p.apply(m,arguments)};var y=Object.getOwnPropertyDescriptor(c.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(c.RTCPeerConnection.prototype,"localDescription",{get:function(){var m=this,F=y.get.apply(this);return F.type===""?F:A(m,F)}}),c.RTCPeerConnection.prototype.removeTrack=function(m){var F=this;if(F.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!m._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");var R=m._pc===F;if(!R)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");F._streams=F._streams||{};var C;Object.keys(F._streams).forEach(function(B){var N=F._streams[B].getTracks().find(function(S){return m.track===S});N&&(C=F._streams[B])}),C&&(C.getTracks().length===1?F.removeStream(F._reverseStreams[C.id]):C.removeTrack(m.track),F.dispatchEvent(new Event("negotiationneeded")))}},shimPeerConnection:function(c){var u=o.detectBrowser(c);if(!c.RTCPeerConnection&&c.webkitRTCPeerConnection&&(c.RTCPeerConnection=function(g,A){return l("PeerConnection"),g&&g.iceTransportPolicy&&(g.iceTransports=g.iceTransportPolicy),new c.webkitRTCPeerConnection(g,A)},c.RTCPeerConnection.prototype=c.webkitRTCPeerConnection.prototype,c.webkitRTCPeerConnection.generateCertificate&&Object.defineProperty(c.RTCPeerConnection,"generateCertificate",{get:function(){return c.webkitRTCPeerConnection.generateCertificate}})),!!c.RTCPeerConnection){var h=c.RTCPeerConnection.prototype.getStats;c.RTCPeerConnection.prototype.getStats=function(g,A,b){var p=this,y=arguments;if(arguments.length>0&&typeof g=="function")return h.apply(this,arguments);if(h.length===0&&(arguments.length===0||typeof arguments[0]!="function"))return h.apply(this,[]);var m=function(C){var B={},N=C.result();return N.forEach(function(S){var X={id:S.id,timestamp:S.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[S.type]||S.type};S.names().forEach(function(J){X[J]=S.stat(J)}),B[X.id]=X}),B},F=function(C){return new Map(Object.keys(C).map(function(B){return[B,C[B]]}))};if(arguments.length>=2){var R=function(C){y[1](F(m(C)))};return h.apply(this,[R,arguments[0]])}return new a(function(C,B){h.apply(p,[function(N){C(F(m(N)))},B])}).then(A,b)},u.version<51&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(g){var A=c.RTCPeerConnection.prototype[g];c.RTCPeerConnection.prototype[g]=function(){var b=arguments,p=this,y=new a(function(m,F){A.apply(p,[b[0],m,F])});return b.length<2?y:y.then(function(){b[1].apply(null,[])},function(m){b.length>=3&&b[2].apply(null,[m])})}}),u.version<52&&["createOffer","createAnswer"].forEach(function(g){var A=c.RTCPeerConnection.prototype[g];c.RTCPeerConnection.prototype[g]=function(){var b=this;if(arguments.length<1||arguments.length===1&&typeof arguments[0]=="object"){var p=arguments.length===1?arguments[0]:void 0;return new a(function(y,m){A.apply(b,[y,m,p])})}return A.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(g){var A=c.RTCPeerConnection.prototype[g];c.RTCPeerConnection.prototype[g]=function(){return arguments[0]=new(g==="addIceCandidate"?c.RTCIceCandidate:c.RTCSessionDescription)(arguments[0]),A.apply(this,arguments)}});var f=c.RTCPeerConnection.prototype.addIceCandidate;c.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?f.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),a.resolve())}}},fixNegotiationNeeded:function(c){o.wrapPeerConnectionEvent(c,"negotiationneeded",function(u){var h=u.target;if(h.signalingState==="stable")return u})},shimGetDisplayMedia:function(c,u){if(!(!c.navigator||!c.navigator.mediaDevices||"getDisplayMedia"in c.navigator.mediaDevices)){if(typeof u!="function"){console.error("shimGetDisplayMedia: getSourceId argument is not a function");return}c.navigator.mediaDevices.getDisplayMedia=function(h){return u(h).then(function(f){var g=h.video&&h.video.width,A=h.video&&h.video.height,b=h.video&&h.video.frameRate;return h.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:f,maxFrameRate:b||3}},g&&(h.video.mandatory.maxWidth=g),A&&(h.video.mandatory.maxHeight=A),c.navigator.mediaDevices.getUserMedia(h)})},c.navigator.getDisplayMedia=function(h){return o.deprecated("navigator.getDisplayMedia","navigator.mediaDevices.getDisplayMedia"),c.navigator.mediaDevices.getDisplayMedia(h)}}}}}).call(this,i(2))},function(n,r,i){(function(a){var o=i(32),l=o.log;n.exports=function(s){var d=o.detectBrowser(s),c=s&&s.navigator,u=function(p){if(typeof p!="object"||p.mandatory||p.optional)return p;var y={};return Object.keys(p).forEach(function(m){if(!(m==="require"||m==="advanced"||m==="mediaSource")){var F=typeof p[m]=="object"?p[m]:{ideal:p[m]};F.exact!==void 0&&typeof F.exact=="number"&&(F.min=F.max=F.exact);var R=function(B,N){return B?B+N.charAt(0).toUpperCase()+N.slice(1):N==="deviceId"?"sourceId":N};if(F.ideal!==void 0){y.optional=y.optional||[];var C={};typeof F.ideal=="number"?(C[R("min",m)]=F.ideal,y.optional.push(C),C={},C[R("max",m)]=F.ideal,y.optional.push(C)):(C[R("",m)]=F.ideal,y.optional.push(C))}F.exact!==void 0&&typeof F.exact!="number"?(y.mandatory=y.mandatory||{},y.mandatory[R("",m)]=F.exact):["min","max"].forEach(function(B){F[B]!==void 0&&(y.mandatory=y.mandatory||{},y.mandatory[R(B,m)]=F[B])})}}),p.advanced&&(y.optional=(y.optional||[]).concat(p.advanced)),y},h=function(p,y){if(d.version>=61)return y(p);if(p=JSON.parse(JSON.stringify(p)),p&&typeof p.audio=="object"){var m=function(B,N,S){N in B&&!(S in B)&&(B[S]=B[N],delete B[N])};p=JSON.parse(JSON.stringify(p)),m(p.audio,"autoGainControl","googAutoGainControl"),m(p.audio,"noiseSuppression","googNoiseSuppression"),p.audio=u(p.audio)}if(p&&typeof p.video=="object"){var F=p.video.facingMode;F=F&&(typeof F=="object"?F:{ideal:F});var R=d.version<66;if(F&&(F.exact==="user"||F.exact==="environment"||F.ideal==="user"||F.ideal==="environment")&&!(c.mediaDevices.getSupportedConstraints&&c.mediaDevices.getSupportedConstraints().facingMode&&!R)){delete p.video.facingMode;var C;if(F.exact==="environment"||F.ideal==="environment"?C=["back","rear"]:(F.exact==="user"||F.ideal==="user")&&(C=["front"]),C)return c.mediaDevices.enumerateDevices().then(function(B){B=B.filter(function(S){return S.kind==="videoinput"});var N=B.find(function(S){return C.some(function(X){return S.label.toLowerCase().indexOf(X)!==-1})});return!N&&B.length&&C.indexOf("back")!==-1&&(N=B[B.length-1]),N&&(p.video.deviceId=F.exact?{exact:N.deviceId}:{ideal:N.deviceId}),p.video=u(p.video),l("chrome: "+JSON.stringify(p)),y(p)})}p.video=u(p.video)}return l("chrome: "+JSON.stringify(p)),y(p)},f=function(p){return d.version>=64?p:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[p.name]||p.name,message:p.message,constraint:p.constraint||p.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},g=function(p,y,m){h(p,function(F){c.webkitGetUserMedia(F,y,function(R){m&&m(f(R))})})};c.getUserMedia=g;var A=function(p){return new a(function(y,m){c.getUserMedia(p,y,m)})};if(c.mediaDevices||(c.mediaDevices={getUserMedia:A,enumerateDevices:function(){return new a(function(p){var y={audio:"audioinput",video:"videoinput"};return s.MediaStreamTrack.getSources(function(m){p(m.map(function(F){return{label:F.label,kind:y[F.kind],deviceId:F.id,groupId:""}}))})})},getSupportedConstraints:function(){return{deviceId:!0,echoCancellation:!0,facingMode:!0,frameRate:!0,height:!0,width:!0}}}),!c.mediaDevices.getUserMedia)c.mediaDevices.getUserMedia=function(p){return A(p)};else{var b=c.mediaDevices.getUserMedia.bind(c.mediaDevices);c.mediaDevices.getUserMedia=function(p){return h(p,function(y){return b(y).then(function(m){if(y.audio&&!m.getAudioTracks().length||y.video&&!m.getVideoTracks().length)throw m.getTracks().forEach(function(F){F.stop()}),new DOMException("","NotFoundError");return m},function(m){return a.reject(f(m))})})}}typeof c.mediaDevices.addEventListener>"u"&&(c.mediaDevices.addEventListener=function(){l("Dummy mediaDevices.addEventListener called.")}),typeof c.mediaDevices.removeEventListener>"u"&&(c.mediaDevices.removeEventListener=function(){l("Dummy mediaDevices.removeEventListener called.")})}}).call(this,i(2))},function(n,r,i){var a=i(32),o=i(579),l=i(580);n.exports={shimGetUserMedia:i(581),shimPeerConnection:function(s){var d=a.detectBrowser(s);if(s.RTCIceGatherer&&(s.RTCIceCandidate||(s.RTCIceCandidate=function(h){return h}),s.RTCSessionDescription||(s.RTCSessionDescription=function(h){return h}),d.version<15025)){var c=Object.getOwnPropertyDescriptor(s.MediaStreamTrack.prototype,"enabled");Object.defineProperty(s.MediaStreamTrack.prototype,"enabled",{set:function(h){c.set.call(this,h);var f=new Event("enabled");f.enabled=h,this.dispatchEvent(f)}})}s.RTCRtpSender&&!("dtmf"in s.RTCRtpSender.prototype)&&Object.defineProperty(s.RTCRtpSender.prototype,"dtmf",{get:function(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=new s.RTCDtmfSender(this):this.track.kind==="video"&&(this._dtmf=null)),this._dtmf}}),s.RTCDtmfSender&&!s.RTCDTMFSender&&(s.RTCDTMFSender=s.RTCDtmfSender);var u=l(s,d.version);s.RTCPeerConnection=function(h){return h&&h.iceServers&&(h.iceServers=o(h.iceServers)),new u(h)},s.RTCPeerConnection.prototype=u.prototype},shimReplaceTrack:function(s){s.RTCRtpSender&&!("replaceTrack"in s.RTCRtpSender.prototype)&&(s.RTCRtpSender.prototype.replaceTrack=s.RTCRtpSender.prototype.setTrack)},shimGetDisplayMedia:function(s,d){if(!(!("getDisplayMedia"in s.navigator)||!s.navigator.mediaDevices||"getDisplayMedia"in s.navigator.mediaDevices)){var c=s.navigator.getDisplayMedia;s.navigator.mediaDevices.getDisplayMedia=function(u){return c.call(s.navigator,u)},s.navigator.getDisplayMedia=function(u){return a.deprecated("navigator.getDisplayMedia","navigator.mediaDevices.getDisplayMedia"),c.call(s.navigator,u)}}}}},function(n,r,i){var a=i(32);n.exports=function(o,l){var s=!1;return o=JSON.parse(JSON.stringify(o)),o.filter(function(d){if(d&&(d.urls||d.url)){var c=d.urls||d.url;d.url&&!d.urls&&a.deprecated("RTCIceServer.url","RTCIceServer.urls");var u=typeof c=="string";return u&&(c=[c]),c=c.filter(function(h){var f=h.indexOf("turn:")===0&&h.indexOf("transport=udp")!==-1&&h.indexOf("turn:[")===-1&&!s;return f?(s=!0,!0):h.indexOf("stun:")===0&&l>=14393&&h.indexOf("?transport=udp")===-1}),delete d.url,d.urls=u?c[0]:c,!!c.length}})}},function(n,r,i){(function(a){var o=i(268);function l(g){return{inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[g.type]||g.type}function s(g,A,b,p,y){var m=o.writeRtpDescription(g.kind,A);if(m+=o.writeIceParameters(g.iceGatherer.getLocalParameters()),m+=o.writeDtlsParameters(g.dtlsTransport.getLocalParameters(),b==="offer"?"actpass":y||"active"),m+="a=mid:"+g.mid+`\r `,g.rtpSender&&g.rtpReceiver?m+=`a=sendrecv\r `:g.rtpSender?m+=`a=sendonly\r `:g.rtpReceiver?m+=`a=recvonly\r `:m+=`a=inactive\r `,g.rtpSender){var F=g.rtpSender._initialTrackId||g.rtpSender.track.id;g.rtpSender._initialTrackId=F;var R="msid:"+(p?p.id:"-")+" "+F+`\r `;m+="a="+R,m+="a=ssrc:"+g.sendEncodingParameters[0].ssrc+" "+R,g.sendEncodingParameters[0].rtx&&(m+="a=ssrc:"+g.sendEncodingParameters[0].rtx.ssrc+" "+R,m+="a=ssrc-group:FID "+g.sendEncodingParameters[0].ssrc+" "+g.sendEncodingParameters[0].rtx.ssrc+`\r `)}return m+="a=ssrc:"+g.sendEncodingParameters[0].ssrc+" cname:"+o.localCName+`\r `,g.rtpSender&&g.sendEncodingParameters[0].rtx&&(m+="a=ssrc:"+g.sendEncodingParameters[0].rtx.ssrc+" cname:"+o.localCName+`\r `),m}function d(g,A){var b=!1;return g=JSON.parse(JSON.stringify(g)),g.filter(function(p){if(p&&(p.urls||p.url)){var y=p.urls||p.url;p.url&&!p.urls&&console.warn("RTCIceServer.url is deprecated! Use urls instead.");var m=typeof y=="string";return m&&(y=[y]),y=y.filter(function(F){var R=F.indexOf("turn:")===0&&F.indexOf("transport=udp")!==-1&&F.indexOf("turn:[")===-1&&!b;return R?(b=!0,!0):F.indexOf("stun:")===0&&A>=14393&&F.indexOf("?transport=udp")===-1}),delete p.url,p.urls=m?y[0]:y,!!y.length}})}function c(g,A){var b={codecs:[],headerExtensions:[],fecMechanisms:[]},p=function(m,F){m=parseInt(m,10);for(var R=0;R<F.length;R++)if(F[R].payloadType===m||F[R].preferredPayloadType===m)return F[R]},y=function(m,F,R,C){var B=p(m.parameters.apt,R),N=p(F.parameters.apt,C);return B&&N&&B.name.toLowerCase()===N.name.toLowerCase()};return g.codecs.forEach(function(m){for(var F=0;F<A.codecs.length;F++){var R=A.codecs[F];if(m.name.toLowerCase()===R.name.toLowerCase()&&m.clockRate===R.clockRate){if(m.name.toLowerCase()==="rtx"&&m.parameters&&R.parameters.apt&&!y(m,R,g.codecs,A.codecs))continue;R=JSON.parse(JSON.stringify(R)),R.numChannels=Math.min(m.numChannels,R.numChannels),b.codecs.push(R),R.rtcpFeedback=R.rtcpFeedback.filter(function(C){for(var B=0;B<m.rtcpFeedback.length;B++)if(m.rtcpFeedback[B].type===C.type&&m.rtcpFeedback[B].parameter===C.parameter)return!0;return!1});break}}}),g.headerExtensions.forEach(function(m){for(var F=0;F<A.headerExtensions.length;F++){var R=A.headerExtensions[F];if(m.uri===R.uri){b.headerExtensions.push(R);break}}}),b}function u(g,A,b){return{offer:{setLocalDescription:["stable","have-local-offer"],setRemoteDescription:["stable","have-remote-offer"]},answer:{setLocalDescription:["have-remote-offer","have-local-pranswer"],setRemoteDescription:["have-local-offer","have-remote-pranswer"]}}[A][g].indexOf(b)!==-1}function h(g,A){var b=g.getRemoteCandidates().find(function(p){return A.foundation===p.foundation&&A.ip===p.ip&&A.port===p.port&&A.priority===p.priority&&A.protocol===p.protocol&&A.type===p.type});return b||g.addRemoteCandidate(A),!b}function f(g,A){var b=new Error(A);return b.name=g,b.code={NotSupportedError:9,InvalidStateError:11,InvalidAccessError:15,TypeError:void 0,OperationError:void 0}[g],b}n.exports=function(g,A){function b(C,B){B.addTrack(C),B.dispatchEvent(new g.MediaStreamTrackEvent("addtrack",{track:C}))}function p(C,B){B.removeTrack(C),B.dispatchEvent(new g.MediaStreamTrackEvent("removetrack",{track:C}))}function y(C,B,N,S){var X=new Event("track");X.track=B,X.receiver=N,X.transceiver={receiver:N},X.streams=S,g.setTimeout(function(){C._dispatchEvent("track",X)})}var m=function(C){var B=this,N=document.createDocumentFragment();if(["addEventListener","removeEventListener","dispatchEvent"].forEach(function(X){B[X]=N[X].bind(N)}),this.canTrickleIceCandidates=null,this.needNegotiation=!1,this.localStreams=[],this.remoteStreams=[],this._localDescription=null,this._remoteDescription=null,this.signalingState="stable",this.iceConnectionState="new",this.connectionState="new",this.iceGatheringState="new",C=JSON.parse(JSON.stringify(C||{})),this.usingBundle=C.bundlePolicy==="max-bundle",C.rtcpMuxPolicy==="negotiate")throw f("NotSupportedError","rtcpMuxPolicy 'negotiate' is not supported");switch(C.rtcpMuxPolicy||(C.rtcpMuxPolicy="require"),C.iceTransportPolicy){case"all":case"relay":break;default:C.iceTransportPolicy="all";break}switch(C.bundlePolicy){case"balanced":case"max-compat":case"max-bundle":break;default:C.bundlePolicy="balanced";break}if(C.iceServers=d(C.iceServers||[],A),this._iceGatherers=[],C.iceCandidatePoolSize)for(var S=C.iceCandidatePoolSize;S>0;S--)this._iceGatherers.push(new g.RTCIceGatherer({iceServers:C.iceServers,gatherPolicy:C.iceTransportPolicy}));else C.iceCandidatePoolSize=0;this._config=C,this.transceivers=[],this._sdpSessionId=o.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1};Object.defineProperty(m.prototype,"localDescription",{configurable:!0,get:function(){return this._localDescription}}),Object.defineProperty(m.prototype,"remoteDescription",{configurable:!0,get:function(){return this._remoteDescription}}),m.prototype.onicecandidate=null,m.prototype.onaddstream=null,m.prototype.ontrack=null,m.prototype.onremovestream=null,m.prototype.onsignalingstatechange=null,m.prototype.oniceconnectionstatechange=null,m.prototype.onconnectionstatechange=null,m.prototype.onicegatheringstatechange=null,m.prototype.onnegotiationneeded=null,m.prototype.ondatachannel=null,m.prototype._dispatchEvent=function(C,B){this._isClosed||(this.dispatchEvent(B),typeof this["on"+C]=="function"&&this["on"+C](B))},m.prototype._emitGatheringStateChange=function(){var C=new Event("icegatheringstatechange");this._dispatchEvent("icegatheringstatechange",C)},m.prototype.getConfiguration=function(){return this._config},m.prototype.getLocalStreams=function(){return this.localStreams},m.prototype.getRemoteStreams=function(){return this.remoteStreams},m.prototype._createTransceiver=function(C,B){var N=this.transceivers.length>0,S={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:C,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};if(this.usingBundle&&N)S.iceTransport=this.transceivers[0].iceTransport,S.dtlsTransport=this.transceivers[0].dtlsTransport;else{var X=this._createIceAndDtlsTransports();S.iceTransport=X.iceTransport,S.dtlsTransport=X.dtlsTransport}return B||this.transceivers.push(S),S},m.prototype.addTrack=function(C,B){if(this._isClosed)throw f("InvalidStateError","Attempted to call addTrack on a closed peerconnection.");var N=this.transceivers.find(function(J){return J.track===C});if(N)throw f("InvalidAccessError","Track already exists.");for(var S,X=0;X<this.transceivers.length;X++)!this.transceivers[X].track&&this.transceivers[X].kind===C.kind&&(S=this.transceivers[X]);return S||(S=this._createTransceiver(C.kind)),this._maybeFireNegotiationNeeded(),this.localStreams.indexOf(B)===-1&&this.localStreams.push(B),S.track=C,S.stream=B,S.rtpSender=new g.RTCRtpSender(C,S.dtlsTransport),S.rtpSender},m.prototype.addStream=function(C){var B=this;if(A>=15025)C.getTracks().forEach(function(S){B.addTrack(S,C)});else{var N=C.clone();C.getTracks().forEach(function(S,X){var J=N.getTracks()[X];S.addEventListener("enabled",function(E){J.enabled=E.enabled})}),N.getTracks().forEach(function(S){B.addTrack(S,N)})}},m.prototype.removeTrack=function(C){if(this._isClosed)throw f("InvalidStateError","Attempted to call removeTrack on a closed peerconnection.");if(!(C instanceof g.RTCRtpSender))throw new TypeError("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.");var B=this.transceivers.find(function(X){return X.rtpSender===C});if(!B)throw f("InvalidAccessError","Sender was not created by this connection.");var N=B.stream;B.rtpSender.stop(),B.rtpSender=null,B.track=null,B.stream=null;var S=this.transceivers.map(function(X){return X.stream});S.indexOf(N)===-1&&this.localStreams.indexOf(N)>-1&&this.localStreams.splice(this.localStreams.indexOf(N),1),this._maybeFireNegotiationNeeded()},m.prototype.removeStream=function(C){var B=this;C.getTracks().forEach(function(N){var S=B.getSenders().find(function(X){return X.track===N});S&&B.removeTrack(S)})},m.prototype.getSenders=function(){return this.transceivers.filter(function(C){return!!C.rtpSender}).map(function(C){return C.rtpSender})},m.prototype.getReceivers=function(){return this.transceivers.filter(function(C){return!!C.rtpReceiver}).map(function(C){return C.rtpReceiver})},m.prototype._createIceGatherer=function(C,B){var N=this;if(B&&C>0)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var S=new g.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(S,"state",{value:"new",writable:!0}),this.transceivers[C].bufferedCandidateEvents=[],this.transceivers[C].bufferCandidates=function(X){var J=!X.candidate||Object.keys(X.candidate).length===0;S.state=J?"completed":"gathering",N.transceivers[C].bufferedCandidateEvents!==null&&N.transceivers[C].bufferedCandidateEvents.push(X)},S.addEventListener("localcandidate",this.transceivers[C].bufferCandidates),S},m.prototype._gather=function(C,B){var N=this,S=this.transceivers[B].iceGatherer;if(!S.onlocalcandidate){var X=this.transceivers[B].bufferedCandidateEvents;this.transceivers[B].bufferedCandidateEvents=null,S.removeEventListener("localcandidate",this.transceivers[B].bufferCandidates),S.onlocalcandidate=function(J){if(!(N.usingBundle&&B>0)){var E=new Event("icecandidate");E.candidate={sdpMid:C,sdpMLineIndex:B};var v=J.candidate,j=!v||Object.keys(v).length===0;if(j)(S.state==="new"||S.state==="gathering")&&(S.state="completed");else{S.state==="new"&&(S.state="gathering"),v.component=1,v.ufrag=S.getLocalParameters().usernameFragment;var H=o.writeCandidate(v);E.candidate=Object.assign(E.candidate,o.parseCandidate(H)),E.candidate.candidate=H,E.candidate.toJSON=function(){return{candidate:E.candidate.candidate,sdpMid:E.candidate.sdpMid,sdpMLineIndex:E.candidate.sdpMLineIndex,usernameFragment:E.candidate.usernameFragment}}}var K=o.getMediaSections(N._localDescription.sdp);j?K[E.candidate.sdpMLineIndex]+=`a=end-of-candidates\r `:K[E.candidate.sdpMLineIndex]+="a="+E.candidate.candidate+`\r `,N._localDescription.sdp=o.getDescription(N._localDescription.sdp)+K.join("");var Fe=N.transceivers.every(function(z){return z.iceGatherer&&z.iceGatherer.state==="completed"});N.iceGatheringState!=="gathering"&&(N.iceGatheringState="gathering",N._emitGatheringStateChange()),j||N._dispatchEvent("icecandidate",E),Fe&&(N._dispatchEvent("icecandidate",new Event("icecandidate")),N.iceGatheringState="complete",N._emitGatheringStateChange())}},g.setTimeout(function(){X.forEach(function(J){S.onlocalcandidate(J)})},0)}},m.prototype._createIceAndDtlsTransports=function(){var C=this,B=new g.RTCIceTransport(null);B.onicestatechange=function(){C._updateIceConnectionState(),C._updateConnectionState()};var N=new g.RTCDtlsTransport(B);return N.ondtlsstatechange=function(){C._updateConnectionState()},N.onerror=function(){Object.defineProperty(N,"state",{value:"failed",writable:!0}),C._updateConnectionState()},{iceTransport:B,dtlsTransport:N}},m.prototype._disposeIceAndDtlsTransports=function(C){var B=this.transceivers[C].iceGatherer;B&&(delete B.onlocalcandidate,delete this.transceivers[C].iceGatherer);var N=this.transceivers[C].iceTransport;N&&(delete N.onicestatechange,delete this.transceivers[C].iceTransport);var S=this.transceivers[C].dtlsTransport;S&&(delete S.ondtlsstatechange,delete S.onerror,delete this.transceivers[C].dtlsTransport)},m.prototype._transceive=function(C,B,N){var S=c(C.localCapabilities,C.remoteCapabilities);B&&C.rtpSender&&(S.encodings=C.sendEncodingParameters,S.rtcp={cname:o.localCName,compound:C.rtcpParameters.compound},C.recvEncodingParameters.length&&(S.rtcp.ssrc=C.recvEncodingParameters[0].ssrc),C.rtpSender.send(S)),N&&C.rtpReceiver&&S.codecs.length>0&&(C.kind==="video"&&C.recvEncodingParameters&&A<15019&&C.recvEncodingParameters.forEach(function(X){delete X.rtx}),C.recvEncodingParameters.length?S.encodings=C.recvEncodingParameters:S.encodings=[{}],S.rtcp={compound:C.rtcpParameters.compound},C.rtcpParameters.cname&&(S.rtcp.cname=C.rtcpParameters.cname),C.sendEncodingParameters.length&&(S.rtcp.ssrc=C.sendEncodingParameters[0].ssrc),C.rtpReceiver.receive(S))},m.prototype.setLocalDescription=function(C){var B=this;if(["offer","answer"].indexOf(C.type)===-1)return a.reject(f("TypeError",'Unsupported type "'+C.type+'"'));if(!u("setLocalDescription",C.type,B.signalingState)||B._isClosed)return a.reject(f("InvalidStateError","Can not set local "+C.type+" in state "+B.signalingState));var N,S;if(C.type==="offer")N=o.splitSections(C.sdp),S=N.shift(),N.forEach(function(J,E){var v=o.parseRtpParameters(J);B.transceivers[E].localCapabilities=v}),B.transceivers.forEach(function(J,E){B._gather(J.mid,E)});else if(C.type==="answer"){N=o.splitSections(B._remoteDescription.sdp),S=N.shift();var X=o.matchPrefix(S,"a=ice-lite").length>0;N.forEach(function(J,E){var v=B.transceivers[E],j=v.iceGatherer,H=v.iceTransport,K=v.dtlsTransport,Fe=v.localCapabilities,z=v.remoteCapabilities,q=o.isRejected(J)&&o.matchPrefix(J,"a=bundle-only").length===0;if(!q&&!v.rejected){var Ae=o.getIceParameters(J,S),Ke=o.getDtlsParameters(J,S);X&&(Ke.role="server"),(!B.usingBundle||E===0)&&(B._gather(v.mid,E),H.state==="new"&&H.start(j,Ae,X?"controlling":"controlled"),K.state==="new"&&K.start(Ke));var pe=c(Fe,z);B._transceive(v,pe.codecs.length>0,!1)}})}return B._localDescription={type:C.type,sdp:C.sdp},C.type==="offer"?B._updateSignalingState("have-local-offer"):B._updateSignalingState("stable"),a.resolve()},m.prototype.setRemoteDescription=function(C){var B=this;if(["offer","answer"].indexOf(C.type)===-1)return a.reject(f("TypeError",'Unsupported type "'+C.type+'"'));if(!u("setRemoteDescription",C.type,B.signalingState)||B._isClosed)return a.reject(f("InvalidStateError","Can not set remote "+C.type+" in state "+B.signalingState));var N={};B.remoteStreams.forEach(function(H){N[H.id]=H});var S=[],X=o.splitSections(C.sdp),J=X.shift(),E=o.matchPrefix(J,"a=ice-lite").length>0,v=o.matchPrefix(J,"a=group:BUNDLE ").length>0;B.usingBundle=v;var j=o.matchPrefix(J,"a=ice-options:")[0];return j?B.canTrickleIceCandidates=j.substr(14).split(" ").indexOf("trickle")>=0:B.canTrickleIceCandidates=!1,X.forEach(function(H,K){var Fe=o.splitLines(H),z=o.getKind(H),q=o.isRejected(H)&&o.matchPrefix(H,"a=bundle-only").length===0,Ae=Fe[0].substr(2).split(" ")[2],Ke=o.getDirection(H,J),pe=o.parseMsid(H),We=o.getMid(H)||o.generateIdentifier();if(q||z==="application"&&(Ae==="DTLS/SCTP"||Ae==="UDP/DTLS/SCTP")){B.transceivers[K]={mid:We,kind:z,protocol:Ae,rejected:!0};return}!q&&B.transceivers[K]&&B.transceivers[K].rejected&&(B.transceivers[K]=B._createTransceiver(z,!0));var xe,$e,Rt,Be,qe,at,Bt,jt,Ne,Je=o.parseRtpParameters(H),ve,Ye;q||(ve=o.getIceParameters(H,J),Ye=o.getDtlsParameters(H,J),Ye.role="client"),Bt=o.parseRtpEncodingParameters(H);var it=o.parseRtcpParameters(H),Qt=o.matchPrefix(H,"a=end-of-candidates",J).length>0,_t=o.matchPrefix(H,"a=candidate:").map(function($){return o.parseCandidate($)}).filter(function($){return $.component===1});if((C.type==="offer"||C.type==="answer")&&!q&&v&&K>0&&B.transceivers[K]&&(B._disposeIceAndDtlsTransports(K),B.transceivers[K].iceGatherer=B.transceivers[0].iceGatherer,B.transceivers[K].iceTransport=B.transceivers[0].iceTransport,B.transceivers[K].dtlsTransport=B.transceivers[0].dtlsTransport,B.transceivers[K].rtpSender&&B.transceivers[K].rtpSender.setTransport(B.transceivers[0].dtlsTransport),B.transceivers[K].rtpReceiver&&B.transceivers[K].rtpReceiver.setTransport(B.transceivers[0].dtlsTransport)),C.type==="offer"&&!q){xe=B.transceivers[K]||B._createTransceiver(z),xe.mid=We,xe.iceGatherer||(xe.iceGatherer=B._createIceGatherer(K,v)),_t.length&&xe.iceTransport.state==="new"&&(Qt&&(!v||K===0)?xe.iceTransport.setRemoteCandidates(_t):_t.forEach(function($){h(xe.iceTransport,$)})),jt=g.RTCRtpReceiver.getCapabilities(z),A<15019&&(jt.codecs=jt.codecs.filter(function($){return $.name!=="rtx"})),at=xe.sendEncodingParameters||[{ssrc:(2*K+2)*1001}];var Dt=!1;if(Ke==="sendrecv"||Ke==="sendonly"){if(Dt=!xe.rtpReceiver,qe=xe.rtpReceiver||new g.RTCRtpReceiver(xe.dtlsTransport,z),Dt){var Ee;Ne=qe.track,pe&&pe.stream==="-"||(pe?(N[pe.stream]||(N[pe.stream]=new g.MediaStream,Object.defineProperty(N[pe.stream],"id",{get:function(){return pe.stream}})),Object.defineProperty(Ne,"id",{get:function(){return pe.track}}),Ee=N[pe.stream]):(N.default||(N.default=new g.MediaStream),Ee=N.default)),Ee&&(b(Ne,Ee),xe.associatedRemoteMediaStreams.push(Ee)),S.push([Ne,qe,Ee])}}else xe.rtpReceiver&&xe.rtpReceiver.track&&(xe.associatedRemoteMediaStreams.forEach(function($){var ie=$.getTracks().find(function(Ve){return Ve.id===xe.rtpReceiver.track.id});ie&&p(ie,$)}),xe.associatedRemoteMediaStreams=[]);xe.localCapabilities=jt,xe.remoteCapabilities=Je,xe.rtpReceiver=qe,xe.rtcpParameters=it,xe.sendEncodingParameters=at,xe.recvEncodingParameters=Bt,B._transceive(B.transceivers[K],!1,Dt)}else if(C.type==="answer"&&!q){xe=B.transceivers[K],$e=xe.iceGatherer,Rt=xe.iceTransport,Be=xe.dtlsTransport,qe=xe.rtpReceiver,at=xe.sendEncodingParameters,jt=xe.localCapabilities,B.transceivers[K].recvEncodingParameters=Bt,B.transceivers[K].remoteCapabilities=Je,B.transceivers[K].rtcpParameters=it,_t.length&&Rt.state==="new"&&((E||Qt)&&(!v||K===0)?Rt.setRemoteCandidates(_t):_t.forEach(function($){h(xe.iceTransport,$)})),(!v||K===0)&&(Rt.state==="new"&&Rt.start($e,ve,"controlling"),Be.state==="new"&&Be.start(Ye));var Ge=c(xe.localCapabilities,xe.remoteCapabilities),he=Ge.codecs.filter(function($){return $.name.toLowerCase()==="rtx"}).length;!he&&xe.sendEncodingParameters[0].rtx&&delete xe.sendEncodingParameters[0].rtx,B._transceive(xe,Ke==="sendrecv"||Ke==="recvonly",Ke==="sendrecv"||Ke==="sendonly"),qe&&(Ke==="sendrecv"||Ke==="sendonly")?(Ne=qe.track,pe?(N[pe.stream]||(N[pe.stream]=new g.MediaStream),b(Ne,N[pe.stream]),S.push([Ne,qe,N[pe.stream]])):(N.default||(N.default=new g.MediaStream),b(Ne,N.default),S.push([Ne,qe,N.default]))):delete xe.rtpReceiver}}),B._dtlsRole===void 0&&(B._dtlsRole=C.type==="offer"?"active":"passive"),B._remoteDescription={type:C.type,sdp:C.sdp},C.type==="offer"?B._updateSignalingState("have-remote-offer"):B._updateSignalingState("stable"),Object.keys(N).forEach(function(H){var K=N[H];if(K.getTracks().length){if(B.remoteStreams.indexOf(K)===-1){B.remoteStreams.push(K);var Fe=new Event("addstream");Fe.stream=K,g.setTimeout(function(){B._dispatchEvent("addstream",Fe)})}S.forEach(function(z){var q=z[0],Ae=z[1];K.id===z[2].id&&y(B,q,Ae,[K])})}}),S.forEach(function(H){H[2]||y(B,H[0],H[1],[])}),g.setTimeout(function(){B&&B.transceivers&&B.transceivers.forEach(function(H){H.iceTransport&&H.iceTransport.state==="new"&&H.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),H.iceTransport.addRemoteCandidate({}))})},4e3),a.resolve()},m.prototype.close=function(){this.transceivers.forEach(function(C){C.iceTransport&&C.iceTransport.stop(),C.dtlsTransport&&C.dtlsTransport.stop(),C.rtpSender&&C.rtpSender.stop(),C.rtpReceiver&&C.rtpReceiver.stop()}),this._isClosed=!0,this._updateSignalingState("closed")},m.prototype._updateSignalingState=function(C){this.signalingState=C;var B=new Event("signalingstatechange");this._dispatchEvent("signalingstatechange",B)},m.prototype._maybeFireNegotiationNeeded=function(){var C=this;this.signalingState!=="stable"||this.needNegotiation===!0||(this.needNegotiation=!0,g.setTimeout(function(){if(C.needNegotiation){C.needNegotiation=!1;var B=new Event("negotiationneeded");C._dispatchEvent("negotiationneeded",B)}},0))},m.prototype._updateIceConnectionState=function(){var C,B={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(S){S.iceTransport&&!S.rejected&&B[S.iceTransport.state]++}),C="new",B.failed>0?C="failed":B.checking>0?C="checking":B.disconnected>0?C="disconnected":B.new>0?C="new":B.connected>0?C="connected":B.completed>0&&(C="completed"),C!==this.iceConnectionState){this.iceConnectionState=C;var N=new Event("iceconnectionstatechange");this._dispatchEvent("iceconnectionstatechange",N)}},m.prototype._updateConnectionState=function(){var C,B={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(S){S.iceTransport&&S.dtlsTransport&&!S.rejected&&(B[S.iceTransport.state]++,B[S.dtlsTransport.state]++)}),B.connected+=B.completed,C="new",B.failed>0?C="failed":B.connecting>0?C="connecting":B.disconnected>0?C="disconnected":B.new>0?C="new":B.connected>0&&(C="connected"),C!==this.connectionState){this.connectionState=C;var N=new Event("connectionstatechange");this._dispatchEvent("connectionstatechange",N)}},m.prototype.createOffer=function(){var C=this;if(C._isClosed)return a.reject(f("InvalidStateError","Can not call createOffer after close"));var B=C.transceivers.filter(function(E){return E.kind==="audio"}).length,N=C.transceivers.filter(function(E){return E.kind==="video"}).length,S=arguments[0];if(S){if(S.mandatory||S.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");S.offerToReceiveAudio!==void 0&&(S.offerToReceiveAudio===!0?B=1:S.offerToReceiveAudio===!1?B=0:B=S.offerToReceiveAudio),S.offerToReceiveVideo!==void 0&&(S.offerToReceiveVideo===!0?N=1:S.offerToReceiveVideo===!1?N=0:N=S.offerToReceiveVideo)}for(C.transceivers.forEach(function(E){E.kind==="audio"?(B--,B<0&&(E.wantReceive=!1)):E.kind==="video"&&(N--,N<0&&(E.wantReceive=!1))});B>0||N>0;)B>0&&(C._createTransceiver("audio"),B--),N>0&&(C._createTransceiver("video"),N--);var X=o.writeSessionBoilerplate(C._sdpSessionId,C._sdpSessionVersion++);C.transceivers.forEach(function(E,v){var j=E.track,H=E.kind,K=E.mid||o.generateIdentifier();E.mid=K,E.iceGatherer||(E.iceGatherer=C._createIceGatherer(v,C.usingBundle));var Fe=g.RTCRtpSender.getCapabilities(H);A<15019&&(Fe.codecs=Fe.codecs.filter(function(q){return q.name!=="rtx"})),Fe.codecs.forEach(function(q){q.name==="H264"&&q.parameters["level-asymmetry-allowed"]===void 0&&(q.parameters["level-asymmetry-allowed"]="1"),E.remoteCapabilities&&E.remoteCapabilities.codecs&&E.remoteCapabilities.codecs.forEach(function(Ae){q.name.toLowerCase()===Ae.name.toLowerCase()&&q.clockRate===Ae.clockRate&&(q.preferredPayloadType=Ae.payloadType)})}),Fe.headerExtensions.forEach(function(q){var Ae=E.remoteCapabilities&&E.remoteCapabilities.headerExtensions||[];Ae.forEach(function(Ke){q.uri===Ke.uri&&(q.id=Ke.id)})});var z=E.sendEncodingParameters||[{ssrc:(2*v+1)*1001}];j&&A>=15019&&H==="video"&&!z[0].rtx&&(z[0].rtx={ssrc:z[0].ssrc+1}),E.wantReceive&&(E.rtpReceiver=new g.RTCRtpReceiver(E.dtlsTransport,H)),E.localCapabilities=Fe,E.sendEncodingParameters=z}),C._config.bundlePolicy!=="max-compat"&&(X+="a=group:BUNDLE "+C.transceivers.map(function(E){return E.mid}).join(" ")+`\r `),X+=`a=ice-options:trickle\r `,C.transceivers.forEach(function(E,v){X+=s(E,E.localCapabilities,"offer",E.stream,C._dtlsRole),X+=`a=rtcp-rsize\r `,E.iceGatherer&&C.iceGatheringState!=="new"&&(v===0||!C.usingBundle)&&(E.iceGatherer.getLocalCandidates().forEach(function(j){j.component=1,X+="a="+o.writeCandidate(j)+`\r `}),E.iceGatherer.state==="completed"&&(X+=`a=end-of-candidates\r `))});var J=new g.RTCSessionDescription({type:"offer",sdp:X});return a.resolve(J)},m.prototype.createAnswer=function(){var C=this;if(C._isClosed)return a.reject(f("InvalidStateError","Can not call createAnswer after close"));if(!(C.signalingState==="have-remote-offer"||C.signalingState==="have-local-pranswer"))return a.reject(f("InvalidStateError","Can not call createAnswer in signalingState "+C.signalingState));var B=o.writeSessionBoilerplate(C._sdpSessionId,C._sdpSessionVersion++);C.usingBundle&&(B+="a=group:BUNDLE "+C.transceivers.map(function(X){return X.mid}).join(" ")+`\r `),B+=`a=ice-options:trickle\r `;var N=o.getMediaSections(C._remoteDescription.sdp).length;C.transceivers.forEach(function(X,J){if(!(J+1>N)){if(X.rejected){X.kind==="application"?X.protocol==="DTLS/SCTP"?B+=`m=application 0 DTLS/SCTP 5000\r `:B+="m=application 0 "+X.protocol+` webrtc-datachannel\r `:X.kind==="audio"?B+=`m=audio 0 UDP/TLS/RTP/SAVPF 0\r a=rtpmap:0 PCMU/8000\r `:X.kind==="video"&&(B+=`m=video 0 UDP/TLS/RTP/SAVPF 120\r a=rtpmap:120 VP8/90000\r `),B+=`c=IN IP4 0.0.0.0\r a=inactive\r a=mid:`+X.mid+`\r `;return}if(X.stream){var E;X.kind==="audio"?E=X.stream.getAudioTracks()[0]:X.kind==="video"&&(E=X.stream.getVideoTracks()[0]),E&&A>=15019&&X.kind==="video"&&!X.sendEncodingParameters[0].rtx&&(X.sendEncodingParameters[0].rtx={ssrc:X.sendEncodingParameters[0].ssrc+1})}var v=c(X.localCapabilities,X.remoteCapabilities),j=v.codecs.filter(function(H){return H.name.toLowerCase()==="rtx"}).length;!j&&X.sendEncodingParameters[0].rtx&&delete X.sendEncodingParameters[0].rtx,B+=s(X,v,"answer",X.stream,C._dtlsRole),X.rtcpParameters&&X.rtcpParameters.reducedSize&&(B+=`a=rtcp-rsize\r `)}});var S=new g.RTCSessionDescription({type:"answer",sdp:B});return a.resolve(S)},m.prototype.addIceCandidate=function(C){var B=this,N;return C&&!(C.sdpMLineIndex!==void 0||C.sdpMid)?a.reject(new TypeError("sdpMLineIndex or sdpMid required")):new a(function(S,X){if(B._remoteDescription)if(!C||C.candidate==="")for(var J=0;J<B.transceivers.length&&!(!B.transceivers[J].rejected&&(B.transceivers[J].iceTransport.addRemoteCandidate({}),N=o.getMediaSections(B._remoteDescription.sdp),N[J]+=`a=end-of-candidates\r `,B._remoteDescription.sdp=o.getDescription(B._remoteDescription.sdp)+N.join(""),B.usingBundle));J++);else{var E=C.sdpMLineIndex;if(C.sdpMid){for(var v=0;v<B.transceivers.length;v++)if(B.transceivers[v].mid===C.sdpMid){E=v;break}}var j=B.transceivers[E];if(j){if(j.rejected)return S();var H=Object.keys(C.candidate).length>0?o.parseCandidate(C.candidate):{};if(H.protocol==="tcp"&&(H.port===0||H.port===9)||H.component&&H.component!==1)return S();if((E===0||E>0&&j.iceTransport!==B.transceivers[0].iceTransport)&&!h(j.iceTransport,H))return X(f("OperationError","Can not add ICE candidate"));var K=C.candidate.trim();K.indexOf("a=")===0&&(K=K.substr(2)),N=o.getMediaSections(B._remoteDescription.sdp),N[E]+="a="+(H.type?K:"end-of-candidates")+`\r `,B._remoteDescription.sdp=o.getDescription(B._remoteDescription.sdp)+N.join("")}else return X(f("OperationError","Can not add ICE candidate"))}else return X(f("InvalidStateError","Can not add ICE candidate without a remote description"));S()})},m.prototype.getStats=function(C){if(C&&C instanceof g.MediaStreamTrack){var B=null;if(this.transceivers.forEach(function(S){S.rtpSender&&S.rtpSender.track===C?B=S.rtpSender:S.rtpReceiver&&S.rtpReceiver.track===C&&(B=S.rtpReceiver)}),!B)throw f("InvalidAccessError","Invalid selector.");return B.getStats()}var N=[];return this.transceivers.forEach(function(S){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach(function(X){S[X]&&N.push(S[X].getStats())})}),a.all(N).then(function(S){var X=new Map;return S.forEach(function(J){J.forEach(function(E){X.set(E.id,E)})}),X})};var F=["RTCRtpSender","RTCRtpReceiver","RTCIceGatherer","RTCIceTransport","RTCDtlsTransport"];F.forEach(function(C){var B=g[C];if(B&&B.prototype&&B.prototype.getStats){var N=B.prototype.getStats;B.prototype.getStats=function(){return N.apply(this).then(function(S){var X=new Map;return Object.keys(S).forEach(function(J){S[J].type=l(S[J]),X.set(J,S[J])}),X})}}});var R=["createOffer","createAnswer"];return R.forEach(function(C){var B=m.prototype[C];m.prototype[C]=function(){var N=arguments;return typeof N[0]=="function"||typeof N[1]=="function"?B.apply(this,[arguments[2]]).then(function(S){typeof N[0]=="function"&&N[0].apply(null,[S])},function(S){typeof N[1]=="function"&&N[1].apply(null,[S])}):B.apply(this,arguments)}}),R=["setLocalDescription","setRemoteDescription","addIceCandidate"],R.forEach(function(C){var B=m.prototype[C];m.prototype[C]=function(){var N=arguments;return typeof N[1]=="function"||typeof N[2]=="function"?B.apply(this,arguments).then(function(){typeof N[1]=="function"&&N[1].apply(null)},function(S){typeof N[2]=="function"&&N[2].apply(null,[S])}):B.apply(this,arguments)}}),["getStats"].forEach(function(C){var B=m.prototype[C];m.prototype[C]=function(){var N=arguments;return typeof N[1]=="function"?B.apply(this,arguments).then(function(){typeof N[1]=="function"&&N[1].apply(null)}):B.apply(this,arguments)}}),m}}).call(this,i(2))},function(n,r,i){(function(a){n.exports=function(o){var l=o&&o.navigator,s=function(c){return{name:{PermissionDeniedError:"NotAllowedError"}[c.name]||c.name,message:c.message,constraint:c.constraint,toString:function(){return this.name}}},d=l.mediaDevices.getUserMedia.bind(l.mediaDevices);l.mediaDevices.getUserMedia=function(c){return d(c).catch(function(u){return a.reject(s(u))})}}}).call(this,i(2))},function(n,r,i){(function(a){var o=i(32);n.exports={shimGetUserMedia:i(583),shimOnTrack:function(l){typeof l=="object"&&l.RTCPeerConnection&&!("ontrack"in l.RTCPeerConnection.prototype)&&Object.defineProperty(l.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(s){this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=s),this.addEventListener("addstream",this._ontrackpoly=(function(d){d.stream.getTracks().forEach((function(c){var u=new Event("track");u.track=c,u.receiver={track:c},u.transceiver={receiver:u.receiver},u.streams=[d.stream],this.dispatchEvent(u)}).bind(this))}).bind(this))},enumerable:!0,configurable:!0}),typeof l=="object"&&l.RTCTrackEvent&&"receiver"in l.RTCTrackEvent.prototype&&!("transceiver"in l.RTCTrackEvent.prototype)&&Object.defineProperty(l.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})},shimSourceObject:function(l){typeof l=="object"&&l.HTMLMediaElement&&!("srcObject"in l.HTMLMediaElement.prototype)&&Object.defineProperty(l.HTMLMediaElement.prototype,"srcObject",{get:function(){return this.mozSrcObject},set:function(s){this.mozSrcObject=s}})},shimPeerConnection:function(l){var s=o.detectBrowser(l);if(!(typeof l!="object"||!(l.RTCPeerConnection||l.mozRTCPeerConnection))){l.RTCPeerConnection||(l.RTCPeerConnection=function(f,g){if(s.version<38&&f&&f.iceServers){for(var A=[],b=0;b<f.iceServers.length;b++){var p=f.iceServers[b];if(p.hasOwnProperty("urls"))for(var y=0;y<p.urls.length;y++){var m={url:p.urls[y]};p.urls[y].indexOf("turn")===0&&(m.username=p.username,m.credential=p.credential),A.push(m)}else A.push(f.iceServers[b])}f.iceServers=A}return new l.mozRTCPeerConnection(f,g)},l.RTCPeerConnection.prototype=l.mozRTCPeerConnection.prototype,l.mozRTCPeerConnection.generateCertificate&&Object.defineProperty(l.RTCPeerConnection,"generateCertificate",{get:function(){return l.mozRTCPeerConnection.generateCertificate}}),l.RTCSessionDescription=l.mozRTCSessionDescription,l.RTCIceCandidate=l.mozRTCIceCandidate),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(f){var g=l.RTCPeerConnection.prototype[f];l.RTCPeerConnection.prototype[f]=function(){return arguments[0]=new(f==="addIceCandidate"?l.RTCIceCandidate:l.RTCSessionDescription)(arguments[0]),g.apply(this,arguments)}});var d=l.RTCPeerConnection.prototype.addIceCandidate;l.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?d.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),a.resolve())};var c=function(f){var g=new Map;return Object.keys(f).forEach(function(A){g.set(A,f[A]),g[A]=f[A]}),g},u={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},h=l.RTCPeerConnection.prototype.getStats;l.RTCPeerConnection.prototype.getStats=function(f,g,A){return h.apply(this,[f||null]).then(function(b){if(s.version<48&&(b=c(b)),s.version<53&&!g)try{b.forEach(function(p){p.type=u[p.type]||p.type})}catch(p){if(p.name!=="TypeError")throw p;b.forEach(function(y,m){b.set(m,Object.assign({},y,{type:u[y.type]||y.type}))})}return b}).then(g,A)}}},shimSenderGetStats:function(l){if(typeof l=="object"&&l.RTCPeerConnection&&l.RTCRtpSender&&!(l.RTCRtpSender&&"getStats"in l.RTCRtpSender.prototype)){var s=l.RTCPeerConnection.prototype.getSenders;s&&(l.RTCPeerConnection.prototype.getSenders=function(){var c=this,u=s.apply(c,[]);return u.forEach(function(h){h._pc=c}),u});var d=l.RTCPeerConnection.prototype.addTrack;d&&(l.RTCPeerConnection.prototype.addTrack=function(){var c=d.apply(this,arguments);return c._pc=this,c}),l.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):a.resolve(new Map)}}},shimReceiverGetStats:function(l){if(typeof l=="object"&&l.RTCPeerConnection&&l.RTCRtpSender&&!(l.RTCRtpSender&&"getStats"in l.RTCRtpReceiver.prototype)){var s=l.RTCPeerConnection.prototype.getReceivers;s&&(l.RTCPeerConnection.prototype.getReceivers=function(){var d=this,c=s.apply(d,[]);return c.forEach(function(u){u._pc=d}),c}),o.wrapPeerConnectionEvent(l,"track",function(d){return d.receiver._pc=d.srcElement,d}),l.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}},shimRemoveStream:function(l){!l.RTCPeerConnection||"removeStream"in l.RTCPeerConnection.prototype||(l.RTCPeerConnection.prototype.removeStream=function(s){var d=this;o.deprecated("removeStream","removeTrack"),this.getSenders().forEach(function(c){c.track&&s.getTracks().indexOf(c.track)!==-1&&d.removeTrack(c)})})},shimRTCDataChannel:function(l){l.DataChannel&&!l.RTCDataChannel&&(l.RTCDataChannel=l.DataChannel)},shimGetDisplayMedia:function(l,s){!l.navigator||!l.navigator.mediaDevices||"getDisplayMedia"in l.navigator.mediaDevices||(l.navigator.mediaDevices.getDisplayMedia=function(d){if(!(d&&d.video)){var c=new DOMException("getDisplayMedia without video constraints is undefined");return c.name="NotFoundError",c.code=8,a.reject(c)}return d.video===!0?d.video={mediaSource:s}:d.video.mediaSource=s,l.navigator.mediaDevices.getUserMedia(d)},l.navigator.getDisplayMedia=function(d){return o.deprecated("navigator.getDisplayMedia","navigator.mediaDevices.getDisplayMedia"),l.navigator.mediaDevices.getDisplayMedia(d)})}}}).call(this,i(2))},function(n,r,i){(function(a){var o=i(32),l=o.log;n.exports=function(s){var d=o.detectBrowser(s),c=s&&s.navigator,u=s&&s.MediaStreamTrack,h=function(R){return{name:{InternalError:"NotReadableError",NotSupportedError:"TypeError",PermissionDeniedError:"NotAllowedError",SecurityError:"NotAllowedError"}[R.name]||R.name,message:{"The operation is insecure.":"The request is not allowed by the user agent or the platform in the current context."}[R.message]||R.message,constraint:R.constraint,toString:function(){return this.name+(this.message&&": ")+this.message}}},f=function(R,C,B){var N=function(S){if(typeof S!="object"||S.require)return S;var X=[];return Object.keys(S).forEach(function(J){if(!(J==="require"||J==="advanced"||J==="mediaSource")){var E=S[J]=typeof S[J]=="object"?S[J]:{ideal:S[J]};if((E.min!==void 0||E.max!==void 0||E.exact!==void 0)&&X.push(J),E.exact!==void 0&&(typeof E.exact=="number"?E.min=E.max=E.exact:S[J]=E.exact,delete E.exact),E.ideal!==void 0){S.advanced=S.advanced||[];var v={};typeof E.ideal=="number"?v[J]={min:E.ideal,max:E.ideal}:v[J]=E.ideal,S.advanced.push(v),delete E.ideal,Object.keys(E).length||delete S[J]}}}),X.length&&(S.require=X),S};return R=JSON.parse(JSON.stringify(R)),d.version<38&&(l("spec: "+JSON.stringify(R)),R.audio&&(R.audio=N(R.audio)),R.video&&(R.video=N(R.video)),l("ff37: "+JSON.stringify(R))),c.mozGetUserMedia(R,C,function(S){B(h(S))})},g=function(R){return new a(function(C,B){f(R,C,B)})};if(c.mediaDevices||(c.mediaDevices={getUserMedia:g,addEventListener:function(){},removeEventListener:function(){}}),c.mediaDevices.enumerateDevices=c.mediaDevices.enumerateDevices||function(){return new a(function(R){var C=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];R(C)})},d.version<41){var A=c.mediaDevices.enumerateDevices.bind(c.mediaDevices);c.mediaDevices.enumerateDevices=function(){return A().then(void 0,function(R){if(R.name==="NotFoundError")return[];throw R})}}if(d.version<49){var b=c.mediaDevices.getUserMedia.bind(c.mediaDevices);c.mediaDevices.getUserMedia=function(R){return b(R).then(function(C){if(R.audio&&!C.getAudioTracks().length||R.video&&!C.getVideoTracks().length)throw C.getTracks().forEach(function(B){B.stop()}),new DOMException("The object can not be found here.","NotFoundError");return C},function(C){return a.reject(h(C))})}}if(!(d.version>55&&"autoGainControl"in c.mediaDevices.getSupportedConstraints())){var p=function(R,C,B){C in R&&!(B in R)&&(R[B]=R[C],delete R[C])},y=c.mediaDevices.getUserMedia.bind(c.mediaDevices);if(c.mediaDevices.getUserMedia=function(R){return typeof R=="object"&&typeof R.audio=="object"&&(R=JSON.parse(JSON.stringify(R)),p(R.audio,"autoGainControl","mozAutoGainControl"),p(R.audio,"noiseSuppression","mozNoiseSuppression")),y(R)},u&&u.prototype.getSettings){var m=u.prototype.getSettings;u.prototype.getSettings=function(){var R=m.apply(this,arguments);return p(R,"mozAutoGainControl","autoGainControl"),p(R,"mozNoiseSuppression","noiseSuppression"),R}}if(u&&u.prototype.applyConstraints){var F=u.prototype.applyConstraints;u.prototype.applyConstraints=function(R){return this.kind==="audio"&&typeof R=="object"&&(R=JSON.parse(JSON.stringify(R)),p(R,"autoGainControl","mozAutoGainControl"),p(R,"noiseSuppression","mozNoiseSuppression")),F.apply(this,[R])}}}c.getUserMedia=function(R,C,B){if(d.version<44)return f(R,C,B);o.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),c.mediaDevices.getUserMedia(R).then(C,B)}}}).call(this,i(2))},function(n,r,i){(function(a){var o=i(32);n.exports={shimLocalStreamsAPI:function(l){if(!(typeof l!="object"||!l.RTCPeerConnection)){if("getLocalStreams"in l.RTCPeerConnection.prototype||(l.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),"getStreamById"in l.RTCPeerConnection.prototype||(l.RTCPeerConnection.prototype.getStreamById=function(d){var c=null;return this._localStreams&&this._localStreams.forEach(function(u){u.id===d&&(c=u)}),this._remoteStreams&&this._remoteStreams.forEach(function(u){u.id===d&&(c=u)}),c}),!("addStream"in l.RTCPeerConnection.prototype)){var s=l.RTCPeerConnection.prototype.addTrack;l.RTCPeerConnection.prototype.addStream=function(d){this._localStreams||(this._localStreams=[]),this._localStreams.indexOf(d)===-1&&this._localStreams.push(d);var c=this;d.getTracks().forEach(function(u){s.call(c,u,d)})},l.RTCPeerConnection.prototype.addTrack=function(d,c){return c&&(this._localStreams?this._localStreams.indexOf(c)===-1&&this._localStreams.push(c):this._localStreams=[c]),s.call(this,d,c)}}"removeStream"in l.RTCPeerConnection.prototype||(l.RTCPeerConnection.prototype.removeStream=function(d){this._localStreams||(this._localStreams=[]);var c=this._localStreams.indexOf(d);if(c!==-1){this._localStreams.splice(c,1);var u=this,h=d.getTracks();this.getSenders().forEach(function(f){h.indexOf(f.track)!==-1&&u.removeTrack(f)})}})}},shimRemoteStreamsAPI:function(l){if(!(typeof l!="object"||!l.RTCPeerConnection)&&("getRemoteStreams"in l.RTCPeerConnection.prototype||(l.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in l.RTCPeerConnection.prototype))){Object.defineProperty(l.RTCPeerConnection.prototype,"onaddstream",{get:function(){return this._onaddstream},set:function(d){this._onaddstream&&this.removeEventListener("addstream",this._onaddstream),this.addEventListener("addstream",this._onaddstream=d)}});var s=l.RTCPeerConnection.prototype.setRemoteDescription;l.RTCPeerConnection.prototype.setRemoteDescription=function(){var d=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(c){c.streams.forEach(function(u){if(d._remoteStreams||(d._remoteStreams=[]),!(d._remoteStreams.indexOf(u)>=0)){d._remoteStreams.push(u);var h=new Event("addstream");h.stream=u,d.dispatchEvent(h)}})}),s.apply(d,arguments)}}},shimCallbacksAPI:function(l){if(!(typeof l!="object"||!l.RTCPeerConnection)){var s=l.RTCPeerConnection.prototype,d=s.createOffer,c=s.createAnswer,u=s.setLocalDescription,h=s.setRemoteDescription,f=s.addIceCandidate;s.createOffer=function(A,b){var p=arguments.length>=2?arguments[2]:arguments[0],y=d.apply(this,[p]);return b?(y.then(A,b),a.resolve()):y},s.createAnswer=function(A,b){var p=arguments.length>=2?arguments[2]:arguments[0],y=c.apply(this,[p]);return b?(y.then(A,b),a.resolve()):y};var g=function(A,b,p){var y=u.apply(this,[A]);return p?(y.then(b,p),a.resolve()):y};s.setLocalDescription=g,g=function(A,b,p){var y=h.apply(this,[A]);return p?(y.then(b,p),a.resolve()):y},s.setRemoteDescription=g,g=function(A,b,p){var y=f.apply(this,[A]);return p?(y.then(b,p),a.resolve()):y},s.addIceCandidate=g}},shimGetUserMedia:function(l){var s=l&&l.navigator;s.getUserMedia||(s.webkitGetUserMedia?s.getUserMedia=s.webkitGetUserMedia.bind(s):s.mediaDevices&&s.mediaDevices.getUserMedia&&(s.getUserMedia=(function(d,c,u){s.mediaDevices.getUserMedia(d).then(c,u)}).bind(s)))},shimRTCIceServerUrls:function(l){var s=l.RTCPeerConnection;l.RTCPeerConnection=function(d,c){if(d&&d.iceServers){for(var u=[],h=0;h<d.iceServers.length;h++){var f=d.iceServers[h];!f.hasOwnProperty("urls")&&f.hasOwnProperty("url")?(o.deprecated("RTCIceServer.url","RTCIceServer.urls"),f=JSON.parse(JSON.stringify(f)),f.urls=f.url,delete f.url,u.push(f)):u.push(d.iceServers[h])}d.iceServers=u}return new s(d,c)},l.RTCPeerConnection.prototype=s.prototype,"generateCertificate"in l.RTCPeerConnection&&Object.defineProperty(l.RTCPeerConnection,"generateCertificate",{get:function(){return s.generateCertificate}})},shimTrackEventTransceiver:function(l){typeof l=="object"&&l.RTCPeerConnection&&"receiver"in l.RTCTrackEvent.prototype&&!l.RTCTransceiver&&Object.defineProperty(l.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})},shimCreateOfferLegacy:function(l){var s=l.RTCPeerConnection.prototype.createOffer;l.RTCPeerConnection.prototype.createOffer=function(d){var c=this;if(d){typeof d.offerToReceiveAudio<"u"&&(d.offerToReceiveAudio=!!d.offerToReceiveAudio);var u=c.getTransceivers().find(function(f){return f.sender.track&&f.sender.track.kind==="audio"});d.offerToReceiveAudio===!1&&u?u.direction==="sendrecv"?u.setDirection?u.setDirection("sendonly"):u.direction="sendonly":u.direction==="recvonly"&&(u.setDirection?u.setDirection("inactive"):u.direction="inactive"):d.offerToReceiveAudio===!0&&!u&&c.addTransceiver("audio"),typeof d.offerToReceiveVideo<"u"&&(d.offerToReceiveVideo=!!d.offerToReceiveVideo);var h=c.getTransceivers().find(function(f){return f.sender.track&&f.sender.track.kind==="video"});d.offerToReceiveVideo===!1&&h?h.direction==="sendrecv"?h.setDirection("sendonly"):h.direction==="recvonly"&&h.setDirection("inactive"):d.offerToReceiveVideo===!0&&!h&&c.addTransceiver("video")}return s.apply(c,arguments)}}}}).call(this,i(2))},function(n,r,i){var a=i(268),o=i(32);n.exports={shimRTCIceCandidate:function(l){if(!(!l.RTCIceCandidate||l.RTCIceCandidate&&"foundation"in l.RTCIceCandidate.prototype)){var s=l.RTCIceCandidate;l.RTCIceCandidate=function(d){if(typeof d=="object"&&d.candidate&&d.candidate.indexOf("a=")===0&&(d=JSON.parse(JSON.stringify(d)),d.candidate=d.candidate.substr(2)),d.candidate&&d.candidate.length){var c=new s(d),u=a.parseCandidate(d.candidate),h=Object.assign(c,u);return h.toJSON=function(){return{candidate:h.candidate,sdpMid:h.sdpMid,sdpMLineIndex:h.sdpMLineIndex,usernameFragment:h.usernameFragment}},h}return new s(d)},l.RTCIceCandidate.prototype=s.prototype,o.wrapPeerConnectionEvent(l,"icecandidate",function(d){return d.candidate&&Object.defineProperty(d,"candidate",{value:new l.RTCIceCandidate(d.candidate),writable:"false"}),d})}},shimCreateObjectURL:function(l){var s=l&&l.URL;if(typeof l=="object"&&l.HTMLMediaElement&&"srcObject"in l.HTMLMediaElement.prototype&&s.createObjectURL&&s.revokeObjectURL){var d=s.createObjectURL.bind(s),c=s.revokeObjectURL.bind(s),u=new Map,h=0;s.createObjectURL=function(A){if("getTracks"in A){var b="polyblob:"+ ++h;return u.set(b,A),o.deprecated("URL.createObjectURL(stream)","elem.srcObject = stream"),b}return d(A)},s.revokeObjectURL=function(A){c(A),u.delete(A)};var f=Object.getOwnPropertyDescriptor(l.HTMLMediaElement.prototype,"src");Object.defineProperty(l.HTMLMediaElement.prototype,"src",{get:function(){return f.get.apply(this)},set:function(A){return this.srcObject=u.get(A)||null,f.set.apply(this,[A])}});var g=l.HTMLMediaElement.prototype.setAttribute;l.HTMLMediaElement.prototype.setAttribute=function(){return arguments.length===2&&(""+arguments[0]).toLowerCase()==="src"&&(this.srcObject=u.get(arguments[1])||null),g.apply(this,arguments)}}},shimMaxMessageSize:function(l){if(!(l.RTCSctpTransport||!l.RTCPeerConnection)){var s=o.detectBrowser(l);"sctp"in l.RTCPeerConnection.prototype||Object.defineProperty(l.RTCPeerConnection.prototype,"sctp",{get:function(){return typeof this._sctp>"u"?null:this._sctp}});var d=function(g){var A=a.splitSections(g.sdp);return A.shift(),A.some(function(b){var p=a.parseMLine(b);return p&&p.kind==="application"&&p.protocol.indexOf("SCTP")!==-1})},c=function(g){var A=g.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(A===null||A.length<2)return-1;var b=parseInt(A[1],10);return b!==b?-1:b},u=function(g){var A=65536;return s.browser==="firefox"&&(s.version<57?g===-1?A=16384:A=2147483637:s.version<60?A=s.version===57?65535:65536:A=2147483637),A},h=function(g,A){var b=65536;s.browser==="firefox"&&s.version===57&&(b=65535);var p=a.matchPrefix(g.sdp,"a=max-message-size:");return p.length>0?b=parseInt(p[0].substr(19),10):s.browser==="firefox"&&A!==-1&&(b=2147483637),b},f=l.RTCPeerConnection.prototype.setRemoteDescription;l.RTCPeerConnection.prototype.setRemoteDescription=function(){var g=this;if(g._sctp=null,d(arguments[0])){var A=c(arguments[0]),b=u(A),p=h(arguments[0],A),y;b===0&&p===0?y=Number.POSITIVE_INFINITY:b===0||p===0?y=Math.max(b,p):y=Math.min(b,p);var m={};Object.defineProperty(m,"maxMessageSize",{get:function(){return y}}),g._sctp=m}return f.apply(g,arguments)}}},shimSendThrowTypeError:function(l){if(!(l.RTCPeerConnection&&"createDataChannel"in l.RTCPeerConnection.prototype))return;function s(c,u){var h=c.send;c.send=function(){var f=arguments[0],g=f.length||f.size||f.byteLength;if(c.readyState==="open"&&u.sctp&&g>u.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+u.sctp.maxMessageSize+" bytes)");return h.apply(c,arguments)}}var d=l.RTCPeerConnection.prototype.createDataChannel;l.RTCPeerConnection.prototype.createDataChannel=function(){var c=this,u=d.apply(c,arguments);return s(u,c),u},o.wrapPeerConnectionEvent(l,"datachannel",function(c){return s(c.channel,c.target),c})}}},function(n,r,i){r.__esModule=!0,r.default=o;const a=l=>{const s={};return Object.getOwnPropertyNames(l).forEach(d=>{s[d]=Object.getOwnPropertyDescriptor(l,d)}),s};function o(l){function s(){for(var d=arguments.length,c=new Array(d),u=0;u<d;u++)c[u]=arguments[u];const h=new l(...c);return Object.setPrototypeOf(h,s.prototype),h}return s.prototype=Object.create(l.prototype),Object.defineProperties(s.prototype,a(l.prototype)),Object.keys(l).forEach(d=>{s[d]=l[d]}),s}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(6)),s=o(i(588));function d(){return typeof document>"u"||document.readyState==="complete"||document.readyState==="interactive"&&document.body}let c=!1;var h=function(g){g===void 0&&(g={});const A=g.window||window,b=g.isPageHideSupported||s.default,p={isDomLoaded:d,isDomUnloaded(){return c},whenUnloaded:new a(y=>{if(typeof A<"u"){const m=()=>{c=!0,y()},F=b()?"pagehide":"unload";A.addEventListener(F,m)}}),whenLoaded:new a(y=>{if(d()){y();return}const m=()=>{document.removeEventListener("DOMContentLoaded",m),document.removeEventListener("load",m),p.emit("load"),y()};document.addEventListener("DOMContentLoaded",m),document.addEventListener("load",m)})};return(0,l.default)(p),p};r.default=h}).call(this,i(2))},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=function(l){return l===void 0&&(l={}),"onpagehide"in(l.window||window)};r.default=a},function(n,r,i){var a=i(80),o=i(272),l=i(249),s=i(590),d=i(11),c=i(54),u=i(273);function h(f,g,A,b,p){f!==g&&l(g,function(y,m){if(p||(p=new a),d(y))s(f,g,m,A,h,b,p);else{var F=b?b(u(f,m),y,m+"",f,g,p):void 0;F===void 0&&(F=y),o(f,m,F)}},c)}n.exports=h},function(n,r,i){var a=i(272),o=i(191),l=i(200),s=i(55),d=i(201),c=i(64),u=i(13),h=i(147),f=i(65),g=i(19),A=i(11),b=i(137),p=i(87),y=i(273),m=i(591);function F(R,C,B,N,S,X,J){var E=y(R,B),v=y(C,B),j=J.get(v);if(j){a(R,B,j);return}var H=X?X(E,v,B+"",R,C,J):void 0,K=H===void 0;if(K){var Fe=u(v),z=!Fe&&f(v),q=!Fe&&!z&&p(v);H=v,Fe||z||q?u(E)?H=E:h(E)?H=s(E):z?(K=!1,H=o(v,!0)):q?(K=!1,H=l(v,!0)):H=[]:b(v)||c(v)?(H=E,c(E)?H=m(E):(!A(E)||g(E))&&(H=d(v))):K=!1}K&&(J.set(v,H),S(H,v,N,X,J),J.delete(v)),a(R,B,H)}n.exports=F},function(n,r,i){var a=i(45),o=i(54);function l(s){return a(s,o(s))}n.exports=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=F;var o=a(i(155)),l=a(i(274)),s=a(i(1)),d=a(i(279)),c=a(i(280));const u=(0,s.default)("normalizeConstraintInput"),h={"320x240":{width:320,height:240},"320x180":{width:320,height:180},"640x480":{width:640,height:480},"640x360":{width:640,height:360},"1280x720":{width:1280,height:720},"1280x960":{width:1280,height:960},"1920x1080":{width:1920,height:1080}},f=[1,7,15,30];function g(R){return R._inject&&R._inject.logging||u}function A(R,C,B,N,S){if(C===void 0)return;const X=B(C);return X||S.warn(`Invalid ${R} passed to the Publisher. Got: ${C}, expecting one of ${N}`),X}function b(R,C){const B=g(C),N=(()=>{const X=C[`publish${(0,l.default)(R)}`];return X!==void 0?!!X:!0})();let S=(()=>{const X=C[`${R}Source`];return X===void 0?!0:X===null||X===!1?!1:typeof X=="object"?C[`isCustom${(0,l.default)(R)}Track`]?!1:typeof X.deviceId!="string"?(B.warn(`Invalid ${R}Source passed to Publisher. Expected either a device ID or device.`),!0):X.deviceId:typeof X!="string"?(B.warn(`Ignoring invalid ${R}Source parameter`),!0):X})();return R==="audio"&&C.isScreenSharing&&!c.default&&S!==!1&&(C.audioSource&&g(C).warn("Invalid audioSource passed to Publisher - when using screen sharing no audioSource may be used"),S=!1),{source:S,publish:N}}function p(R,C){return R.name==="Chrome"&&R.userAgent.indexOf("Mac OS X")!==-1&&C===1?2:C}const y=["user","environment","left","right"],m=(R,C)=>{if(R===void 0||y.indexOf(R)>=0)return R;g(C).warn(`Invalid facingMode passed to Publisher. Expected one of: ${y.join(", ")}`)};function F(R){const C=g(R),B=R.env||{},N=R.isScreenSharing,S=R.isCustomAudioTrack,X=R.isCustomVideoTrack;return N&&!d.default&&(0,o.default)(R.usingOptionalMandatoryStyle,"Screensharing only uses optional-mandatory constraints right now"),["echoCancellation","autoGainControl","noiseSuppression"].forEach(J=>{R[J]!==!1&&Object.assign(R,{[J]:!0})}),{isScreenSharing:N,isCustomAudioTrack:S,isCustomVideoTrack:X,audio:b("audio",R),video:b("video",R),usingOptionalMandatoryStyle:R.usingOptionalMandatoryStyle,enableRenegotiation:R.enableRenegotiation,enableStereo:R.enableStereo,noiseSuppression:R.noiseSuppression,autoGainControl:R.autoGainControl,echoCancellation:R.echoCancellation,disableAudioProcessing:R.disableAudioProcessing,videoDimensions:A("resolution",R.resolution,J=>h[J],`"${Object.keys(h).join('", "')}"`,C),frameRate:p(B,A("frameRate",R.frameRate,J=>f.indexOf(J)!==-1?J:void 0,f.join(","),C)),maxResolution:function(){if(R.maxResolution===void 0)return N?{width:1920,height:1920}:void 0;const J={width:R.maxResolution.width,height:R.maxResolution.height};return Object.keys(J).forEach(E=>{const v=J[E];(typeof v!="number"||v>1920)&&(C.warn(`Invalid maxResolution passed to the Publisher. maxResolution.${E} must be less than or equal to 1920`),J[E]=1920)}),J}(),facingMode:m(R.facingMode,R)}}},function(n,r,i){/* object-assign (c) Sindre Sorhus @license MIT */var a=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;function s(c){if(c==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(c)}function d(){try{if(!Object.assign)return!1;var c=new String("abc");if(c[5]="de",Object.getOwnPropertyNames(c)[0]==="5")return!1;for(var u={},h=0;h<10;h++)u["_"+String.fromCharCode(h)]=h;var f=Object.getOwnPropertyNames(u).map(function(A){return u[A]});if(f.join("")!=="0123456789")return!1;var g={};return"abcdefghijklmnopqrst".split("").forEach(function(A){g[A]=A}),Object.keys(Object.assign({},g)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}n.exports=d()?Object.assign:function(c,u){for(var h,f=s(c),g,A=1;A<arguments.length;A++){h=Object(arguments[A]);for(var b in h)o.call(h,b)&&(f[b]=h[b]);if(a){g=a(h);for(var p=0;p<g.length;p++)l.call(h,g[p])&&(f[g[p]]=h[g[p]])}}return f}},function(n,r,i){(function(a,o){var l=Object.getOwnPropertyDescriptors||function(qe){for(var at=Object.keys(qe),Bt={},jt=0;jt<at.length;jt++)Bt[at[jt]]=Object.getOwnPropertyDescriptor(qe,at[jt]);return Bt},s=/%[sdj%]/g;r.format=function(Be){if(!X(Be)){for(var qe=[],at=0;at<arguments.length;at++)qe.push(u(arguments[at]));return qe.join(" ")}for(var at=1,Bt=arguments,jt=Bt.length,Ne=String(Be).replace(s,function(ve){if(ve==="%%")return"%";if(at>=jt)return ve;switch(ve){case"%s":return String(Bt[at++]);case"%d":return Number(Bt[at++]);case"%j":try{return JSON.stringify(Bt[at++])}catch{return"[Circular]"}default:return ve}}),Je=Bt[at];at<jt;Je=Bt[++at])B(Je)||!j(Je)?Ne+=" "+Je:Ne+=" "+u(Je);return Ne},r.deprecate=function(Be,qe){if(typeof a<"u"&&a.noDeprecation===!0)return Be;if(typeof a>"u")return function(){return r.deprecate(Be,qe).apply(this,arguments)};var at=!1;function Bt(){if(!at){if(a.throwDeprecation)throw new Error(qe);a.traceDeprecation?console.trace(qe):console.error(qe),at=!0}return Be.apply(this,arguments)}return Bt};var d={},c;r.debuglog=function(Be){if(E(c)&&(c=a.env.NODE_DEBUG||""),Be=Be.toUpperCase(),!d[Be])if(new RegExp("\\b"+Be+"\\b","i").test(c)){var qe=a.pid;d[Be]=function(){var at=r.format.apply(r,arguments);console.error("%s %d: %s",Be,qe,at)}}else d[Be]=function(){};return d[Be]};function u(Be,qe){var at={seen:[],stylize:f};return arguments.length>=3&&(at.depth=arguments[2]),arguments.length>=4&&(at.colors=arguments[3]),C(qe)?at.showHidden=qe:qe&&r._extend(at,qe),E(at.showHidden)&&(at.showHidden=!1),E(at.depth)&&(at.depth=2),E(at.colors)&&(at.colors=!1),E(at.customInspect)&&(at.customInspect=!0),at.colors&&(at.stylize=h),A(at,Be,at.depth)}r.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function h(Be,qe){var at=u.styles[qe];return at?"\x1B["+u.colors[at][0]+"m"+Be+"\x1B["+u.colors[at][1]+"m":Be}function f(Be,qe){return Be}function g(Be){var qe={};return Be.forEach(function(at,Bt){qe[at]=!0}),qe}function A(Be,qe,at){if(Be.customInspect&&qe&&Fe(qe.inspect)&&qe.inspect!==r.inspect&&!(qe.constructor&&qe.constructor.prototype===qe)){var Bt=qe.inspect(at,Be);return X(Bt)||(Bt=A(Be,Bt,at)),Bt}var jt=b(Be,qe);if(jt)return jt;var Ne=Object.keys(qe),Je=g(Ne);if(Be.showHidden&&(Ne=Object.getOwnPropertyNames(qe)),K(qe)&&(Ne.indexOf("message")>=0||Ne.indexOf("description")>=0))return p(qe);if(Ne.length===0){if(Fe(qe)){var ve=qe.name?": "+qe.name:"";return Be.stylize("[Function"+ve+"]","special")}if(v(qe))return Be.stylize(RegExp.prototype.toString.call(qe),"regexp");if(H(qe))return Be.stylize(Date.prototype.toString.call(qe),"date");if(K(qe))return p(qe)}var Ye="",it=!1,Qt=["{","}"];if(R(qe)&&(it=!0,Qt=["[","]"]),Fe(qe)){var _t=qe.name?": "+qe.name:"";Ye=" [Function"+_t+"]"}if(v(qe)&&(Ye=" "+RegExp.prototype.toString.call(qe)),H(qe)&&(Ye=" "+Date.prototype.toUTCString.call(qe)),K(qe)&&(Ye=" "+p(qe)),Ne.length===0&&(!it||qe.length==0))return Qt[0]+Ye+Qt[1];if(at<0)return v(qe)?Be.stylize(RegExp.prototype.toString.call(qe),"regexp"):Be.stylize("[Object]","special");Be.seen.push(qe);var Dt;return it?Dt=y(Be,qe,at,Je,Ne):Dt=Ne.map(function(Ee){return m(Be,qe,at,Je,Ee,it)}),Be.seen.pop(),F(Dt,Ye,Qt)}function b(Be,qe){if(E(qe))return Be.stylize("undefined","undefined");if(X(qe)){var at="'"+JSON.stringify(qe).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Be.stylize(at,"string")}if(S(qe))return Be.stylize(""+qe,"number");if(C(qe))return Be.stylize(""+qe,"boolean");if(B(qe))return Be.stylize("null","null")}function p(Be){return"["+Error.prototype.toString.call(Be)+"]"}function y(Be,qe,at,Bt,jt){for(var Ne=[],Je=0,ve=qe.length;Je<ve;++Je)We(qe,String(Je))?Ne.push(m(Be,qe,at,Bt,String(Je),!0)):Ne.push("");return jt.forEach(function(Ye){Ye.match(/^\d+$/)||Ne.push(m(Be,qe,at,Bt,Ye,!0))}),Ne}function m(Be,qe,at,Bt,jt,Ne){var Je,ve,Ye;if(Ye=Object.getOwnPropertyDescriptor(qe,jt)||{value:qe[jt]},Ye.get?Ye.set?ve=Be.stylize("[Getter/Setter]","special"):ve=Be.stylize("[Getter]","special"):Ye.set&&(ve=Be.stylize("[Setter]","special")),We(Bt,jt)||(Je="["+jt+"]"),ve||(Be.seen.indexOf(Ye.value)<0?(B(at)?ve=A(Be,Ye.value,null):ve=A(Be,Ye.value,at-1),ve.indexOf(` `)>-1&&(Ne?ve=ve.split(` `).map(function(it){return" "+it}).join(` `).substr(2):ve=` `+ve.split(` `).map(function(it){return" "+it}).join(` `))):ve=Be.stylize("[Circular]","special")),E(Je)){if(Ne&&jt.match(/^\d+$/))return ve;Je=JSON.stringify(""+jt),Je.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(Je=Je.substr(1,Je.length-2),Je=Be.stylize(Je,"name")):(Je=Je.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),Je=Be.stylize(Je,"string"))}return Je+": "+ve}function F(Be,qe,at){var Bt=Be.reduce(function(jt,Ne){return Ne.indexOf(` `)>=0,jt+Ne.replace(/\u001b\[\d\d?m/g,"").length+1},0);return Bt>60?at[0]+(qe===""?"":qe+` `)+" "+Be.join(`, `)+" "+at[1]:at[0]+qe+" "+Be.join(", ")+" "+at[1]}function R(Be){return Array.isArray(Be)}r.isArray=R;function C(Be){return typeof Be=="boolean"}r.isBoolean=C;function B(Be){return Be===null}r.isNull=B;function N(Be){return Be==null}r.isNullOrUndefined=N;function S(Be){return typeof Be=="number"}r.isNumber=S;function X(Be){return typeof Be=="string"}r.isString=X;function J(Be){return typeof Be=="symbol"}r.isSymbol=J;function E(Be){return Be===void 0}r.isUndefined=E;function v(Be){return j(Be)&&q(Be)==="[object RegExp]"}r.isRegExp=v;function j(Be){return typeof Be=="object"&&Be!==null}r.isObject=j;function H(Be){return j(Be)&&q(Be)==="[object Date]"}r.isDate=H;function K(Be){return j(Be)&&(q(Be)==="[object Error]"||Be instanceof Error)}r.isError=K;function Fe(Be){return typeof Be=="function"}r.isFunction=Fe;function z(Be){return Be===null||typeof Be=="boolean"||typeof Be=="number"||typeof Be=="string"||typeof Be=="symbol"||typeof Be>"u"}r.isPrimitive=z,r.isBuffer=i(595);function q(Be){return Object.prototype.toString.call(Be)}function Ae(Be){return Be<10?"0"+Be.toString(10):Be.toString(10)}var Ke=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function pe(){var Be=new Date,qe=[Ae(Be.getHours()),Ae(Be.getMinutes()),Ae(Be.getSeconds())].join(":");return[Be.getDate(),Ke[Be.getMonth()],qe].join(" ")}r.log=function(){console.log("%s - %s",pe(),r.format.apply(r,arguments))},r.inherits=i(596),r._extend=function(Be,qe){if(!qe||!j(qe))return Be;for(var at=Object.keys(qe),Bt=at.length;Bt--;)Be[at[Bt]]=qe[at[Bt]];return Be};function We(Be,qe){return Object.prototype.hasOwnProperty.call(Be,qe)}var xe=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;r.promisify=function(qe){if(typeof qe!="function")throw new TypeError('The "original" argument must be of type Function');if(xe&&qe[xe]){var at=qe[xe];if(typeof at!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(at,xe,{value:at,enumerable:!1,writable:!1,configurable:!0}),at}function at(){for(var Bt,jt,Ne=new o(function(Ye,it){Bt=Ye,jt=it}),Je=[],ve=0;ve<arguments.length;ve++)Je.push(arguments[ve]);Je.push(function(Ye,it){Ye?jt(Ye):Bt(it)});try{qe.apply(this,Je)}catch(Ye){jt(Ye)}return Ne}return Object.setPrototypeOf(at,Object.getPrototypeOf(qe)),xe&&Object.defineProperty(at,xe,{value:at,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(at,l(qe))},r.promisify.custom=xe;function $e(Be,qe){if(!Be){var at=new Error("Promise was rejected with a falsy value");at.reason=Be,Be=at}return qe(Be)}function Rt(Be){if(typeof Be!="function")throw new TypeError('The "original" argument must be of type Function');function qe(){for(var at=[],Bt=0;Bt<arguments.length;Bt++)at.push(arguments[Bt]);var jt=at.pop();if(typeof jt!="function")throw new TypeError("The last argument must be of type Function");var Ne=this,Je=function(){return jt.apply(Ne,arguments)};Be.apply(this,at).then(function(ve){a.nextTick(Je,null,ve)},function(ve){a.nextTick($e,ve,Je)})}return Object.setPrototypeOf(qe,Object.getPrototypeOf(Be)),Object.defineProperties(qe,l(Be)),qe}r.callbackify=Rt}).call(this,i(27),i(2))},function(n,r){n.exports=function(a){return a&&typeof a=="object"&&typeof a.copy=="function"&&typeof a.fill=="function"&&typeof a.readUInt8=="function"}},function(n,r){typeof Object.create=="function"?n.exports=function(a,o){a.super_=o,a.prototype=Object.create(o.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:n.exports=function(a,o){a.super_=o;var l=function(){};l.prototype=o.prototype,a.prototype=new l,a.prototype.constructor=a}},function(n,r,i){var a=i(598),o=i(277),l=i(278),s=i(60);function d(c){return function(u){u=s(u);var h=o(u)?l(u):void 0,f=h?h[0]:u.charAt(0),g=h?a(h,1).join(""):u.slice(1);return f[c]()+g}}n.exports=d},function(n,r,i){var a=i(276);function o(l,s,d){var c=l.length;return d=d===void 0?c:d,!s&&d>=c?l:a(l,s,d)}n.exports=o},function(n,r){function i(a){return a.split("")}n.exports=i},function(n,r){var i="\\ud800-\\udfff",a="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",l="\\u20d0-\\u20ff",s=a+o+l,d="\\ufe0e\\ufe0f",c="["+i+"]",u="["+s+"]",h="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+h+")",g="[^"+i+"]",A="(?:\\ud83c[\\udde6-\\uddff]){2}",b="[\\ud800-\\udbff][\\udc00-\\udfff]",p="\\u200d",y=f+"?",m="["+d+"]?",F="(?:"+p+"(?:"+[g,A,b].join("|")+")"+m+y+")*",R=m+y+F,C="(?:"+[g+u+"?",u,A,b,c].join("|")+")",B=RegExp(h+"(?="+h+")|"+C+R,"g");function N(S){return S.match(B)||[]}n.exports=N},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=["screen","window","tab","browser","application"];r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(51)),l=a(i(604)),s=a(i(607)),d=a(i(1)),c=a(i(127)),u=a(i(37));const h=(0,u.default)(),f="/opentok/webrtc/docs/js/release-notes.html",g=h.onlyLocal(),A=(0,d.default)("setLogLevel"),b=` ██████╗ ██████╗ ███████╗███╗ ██╗████████╗ ██████╗ ██╗ ██╗ ██╔═══██╗██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔═══██╗██║ ██╔╝ ██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ ██║ ██║█████╔╝ ██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██║ ██║██╔═██╗ ╚██████╔╝██║ ███████╗██║ ╚████║ ██║ ╚██████╔╝██║ ██╗ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝`,p=(0,o.default)(()=>{A.info(`%c${b}`,'font-family: "Fire Code", Courier, "Courier New", Consolas, "DejaVu Sans Mono"'),A.info(`OpenTok JS SDK ${g.version}`),A.info(`Release notes: ${g.websiteUrl}${f}`),A.info(`Known issues: ${g.websiteUrl}${f}l#knownIssues`)});function y(F){if(F===void 0||!(0,l.default)(c.default,{priority:F})&&F!==0){const C=(0,s.default)(c.default,(B,N)=>`OT.${N.toUpperCase()} = ${B.priority}`).join(", ");A.error(`level must be one of: OT.NONE = 0, ${C}`),A.warn("Using OT.WARN instead"),F=c.default.warn.priority}return d.default.setLogLevel(F),F>=c.default.debug.priority&&p(),A.info("OpenTok JS SDK now uses the debug library. More info at https://www.npmjs.com/package/debug#browser-support"),A.info(`Changed log level to: ${F}`),F}y(g.debug?c.default.debug.priority:c.default.warn.priority);var m=y;r.default=m},function(n,r,i){var a=i(97),o="Expected a function";function l(s,d){var c;if(typeof d!="function")throw new TypeError(o);return s=a(s),function(){return--s>0&&(c=d.apply(this,arguments)),s<=1&&(d=void 0),c}}n.exports=l},function(n,r,i){var a=i(242),o=i(38),l=i(605),s=i(13),d=i(125);function c(u,h,f){var g=s(u)?a:l;return f&&d(u,h,f)&&(h=void 0),g(u,o(h,3))}n.exports=c},function(n,r,i){var a=i(282);function o(l,s){var d;return a(l,function(c,u,h){return d=s(c,u,h),!d}),!!d}n.exports=o},function(n,r,i){var a=i(26);function o(l,s){return function(d,c){if(d==null)return d;if(!a(d))return l(d,c);for(var u=d.length,h=s?u:-1,f=Object(d);(s?h--:++h<u)&&c(f[h],h,f)!==!1;);return d}}n.exports=o},function(n,r,i){var a=i(39),o=i(38),l=i(608),s=i(13);function d(c,u){var h=s(c)?a:l;return h(c,o(u,3))}n.exports=d},function(n,r,i){var a=i(282),o=i(26);function l(s,d){var c=-1,u=o(s)?Array(s.length):[];return a(s,function(h,f,g){u[++c]=d(h,f,g)}),u}n.exports=l},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){return o.substr(0,5)!=="http:"&&o.substr(0,6)!=="https:"&&o.substr(0,22)!=="data:image/png;base64,"?`data:image/png;base64,${o}`:o}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(61)),l=a(i(1));const s=(0,l.default)("Style");function d(c,u){const h=this,f={},g={buttonDisplayMode:["auto","mini","mini-auto","off","on"],nameDisplayMode:["auto","off","on"],audioLevelDisplayMode:["auto","off","on"],showSettingsButton:[!0,!1],showSpeakerButton:null,showMicButton:[!0,!1],backgroundImageURI:null,showControlBar:[!0,!1],showArchiveStatus:[!0,!1],archiveStatusDisplayMode:["auto","off","on"],videoDisabledDisplayMode:["auto","off","on"],audioBlockedDisplayMode:["auto","off","on"]},A=function(y,m){const F=g[y];return F===void 0?!1:F===null?!0:F.indexOf(m)!==-1},b=function(y){switch(y){case"true":return!0;case"false":return!1;default:return y}};h.getAll=function(){return(0,o.default)(f)},h.get=function(p){return p?f[p]:h.getAll()},h.setAll=function(p,y){return Object.keys(p).forEach(m=>{h.set(m,p[m],y)}),h},h.set=function(p,y,m){s.debug(`setStyle: ${p.toString()}`);let F;const R=b(y);return A(p,R)?(F=f[p],R!==F&&(f[p]=R,m||u(p,y,F)),h):(s.warn(`Style.set::Invalid style property passed ${p} : ${R}`),h)},c&&h.setAll(c,!0)}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(286));const s=()=>o.default.isIosWebView?!1:(0,l.default)()?!0:(typeof window!==void 0?window:yr).navigator.mediaDevices&&(typeof window!==void 0?window:yr).navigator.mediaDevices.getUserMedia||(typeof window!==void 0?window:yr).navigator.webkitGetUserMedia||(typeof window!==void 0?window:yr).navigator.mozGetUserMedia;var d=()=>!!(o.default.name!=="Node"&&s());r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),s=()=>o.default.name==="Node"?!1:typeof(typeof window!==void 0?window:yr).webkitRTCPeerConnection=="function"&&(typeof window!==void 0?window:yr).webkitRTCPeerConnection.prototype.addTrack||typeof(typeof window!==void 0?window:yr).RTCPeerConnection=="function"?!0:typeof(typeof window!==void 0?window:yr).mozRTCPeerConnection=="function"&&o.default.version>20;r.default=s},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=(typeof window!==void 0?window:yr).WebSocket!==void 0;r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(28)),l=a(i(12));let s=function(d){(0,o.default)(c,d);function c(h,f){var g;let A=f===void 0?{}:f,b=A.destroyOnClose,p=b===void 0?!0:b;g=d.call(this)||this,g.modalDiv=document.createElement("div"),g.modalDiv.classList.add("OT_ModalDialog"),g.modalDiv.innerHTML=h;const y=g.modalDiv.querySelectorAll("[role=OT_close]");return[].forEach.call(y,m=>m.addEventListener("click",F=>{F.preventDefault(),g.close()})),g.close(),document.body.appendChild(g.modalDiv),p&&g.on("closed",()=>g.destroy()),g}var u=c.prototype;return u.open=function(){this.modalDiv.style.display="block",this.emit("opened")},u.close=function(){this.modalDiv.style.display="none",this.emit("closed")},u.destroy=function(){this.modalDiv.innerHTML="",this.modalDiv.parentNode.removeChild(this.modalDiv),this.emit("destroyed")},u.el=function(f){return this.modalDiv.querySelector(f)},c}(l.default);r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(30)),s=function(c){c===void 0&&(c={});const u=c.env||o.default,h=c.analytics||new l.default;h.logEvent({action:"UserAgentParsing",variation:"Attempt",payload:{userAgent:u.userAgent}}),h.logEvent({action:"UserAgentParsing",variation:u.error?"Failure":"Success",payload:{userAgent:u.userAgent}})};r.default=s},function(n,r){n.exports=`<div id="tb_alert"><div id="section-normal-install" class="OT_alert"><div class="OT_alert-exclamation">!</div><button class="OT_alert-close-button" role="OT_close">×</button><div class="OT_alert-header" data-text="Incompatible Browser">Incompatible Browser</div><div class="OT_alert-body">The video component of this application requires <a target="_blank" href="https://www.google.com/chrome/">Google Chrome</a>, <a target="_blank" href="http://www.mozilla.org/firefox">Firefox</a>, <a target="_blank" href="https://www.microsoft.com/en-us/edge">Edge</a>, or <a target="_blank" href="https://www.apple.com/safari/">Safari</a>.</div></div><div id="section-upgrade-install" class="OT_alert"><div class="OT_alert-exclamation">!</div><button class="OT_alert-close-button" role="OT_close">×</button><div class="OT_alert-header" data-text="Incompatible Browser">Incompatible Browser</div><div class="OT_alert-body">The video component of this application requires a newer version of <a target="_blank" href="https://www.google.com/chrome/">Google Chrome</a>, <a target="_blank" href="http://www.mozilla.org/firefox">Firefox</a>, <a target="_blank" href="https://www.microsoft.com/en-us/edge">Edge</a>, or <a target="_blank" href="https://www.apple.com/safari/">Safari</a>.</div><div class="continue-text"><a href="#" role="OT_close">Continue at my own risk.</a></div></div><div id="section-supported-mobile-browser" class="OT_alert"><div class="OT_alert-exclamation">!</div><button class="OT_alert-close-button" role="OT_close">×</button><div class="OT_alert-header" data-text="Incompatible Browser">Incompatible Browser</div><div class="OT_alert-body">The video component of this application requires a newer version of <a target="_blank" href="https://www.google.com.au/chrome/browser/mobile/">Google Chrome</a>.</div><div class="continue-text"><a href="#" role="OT_close">Continue at my own risk.</a></div></div><div id="section-mobile-browser" class="OT_alert"><div class="OT_alert-exclamation">!</div><button class="OT_alert-close-button" role="OT_close">×</button><div class="OT_alert-header" data-text="Incompatible Browser">Incompatible Browser</div><div class="OT_alert-body">The video component of this application is not supported on your mobile device's browser at this time.</div></div></div>`},function(n,r){function i(a){return n.exports=i=Object.setPrototypeOf?Object.getPrototypeOf:function(l){return l.__proto__||Object.getPrototypeOf(l)},i(a)}n.exports=i},function(n,r){function i(a){return Function.toString.call(a).indexOf("[native code]")!==-1}n.exports=i},function(n,r,i){var a=i(287);function o(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function l(s,d,c){return o()?n.exports=l=Reflect.construct:n.exports=l=function(h,f,g){var A=[null];A.push.apply(A,f);var b=Function.bind.apply(h,A),p=new b;return g&&a(p,g.prototype),p},l.apply(null,arguments)}n.exports=l},function(n,r,i){(function(a){n.exports=(o,l)=>(l=l||(()=>{}),o.then(s=>new a(d=>{d(l())}).then(()=>s),s=>new a(d=>{d(l())}).then(()=>{throw s})))}).call(this,i(2))},function(n,r,i){var a=i(15),o=function(){return a.Date.now()};n.exports=o},function(n,r,i){var a=i(59),o=i(623),l=i(624),s=i(49);function d(c,u){return u=a(u,c),c=l(c,u),c==null||delete c[s(o(u))]}n.exports=d},function(n,r){function i(a){var o=a==null?0:a.length;return o?a[o-1]:void 0}n.exports=i},function(n,r,i){var a=i(101),o=i(276);function l(s,d){return d.length<2?s:a(s,o(d,0,-1))}n.exports=l},function(n,r,i){var a=i(137);function o(l){return a(l)?void 0:l}n.exports=o},function(n,r,i){var a=i(38),o=i(26),l=i(34);function s(d){return function(c,u,h){var f=Object(c);if(!o(c)){var g=a(u,3);c=l(c),u=function(b){return g(f[b],b,f)}}var A=d(c,u,h);return A>-1?f[g?c[A]:A]:void 0}}n.exports=s},function(n,r,i){var a=i(98),o=i(96),l=i(146),s=i(99),d=i(628),c=i(100),u=200;function h(f,g,A){var b=-1,p=o,y=f.length,m=!0,F=[],R=F;if(A)m=!1,p=l;else if(y>=u){var C=g?null:d(f);if(C)return c(C);m=!1,p=s,R=new a}else R=g?[]:F;e:for(;++b<y;){var B=f[b],N=g?g(B):B;if(B=A||B!==0?B:0,m&&N===N){for(var S=R.length;S--;)if(R[S]===N)continue e;g&&R.push(N),F.push(B)}else p(R,N,A)||(R!==F&&R.push(N),F.push(B))}return F}n.exports=h},function(n,r,i){var a=i(197),o=i(234),l=i(100),s=1/0,d=a&&1/l(new a([,-0]))[1]==s?function(c){return new a(c)}:o;n.exports=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(126)),d=a(i(293)),c=a(i(630)),h=function(g){let A=g===void 0?{}:g,b=A.memoize,p=b===void 0?s.default:b,y=A.generateKey,m=y===void 0?d.default:y,F=A.arrayBufferToHex,R=F===void 0?c.default:F;return p(function(){var B=(0,l.default)(o.default.mark(function N(S){var X,J,E,v,j,H;return o.default.wrap(function(Fe){for(;;)switch(Fe.prev=Fe.next){case 0:return X=S.sessionId,J=S.connectionId,Fe.next=3,m(X,J);case 3:return E=Fe.sent,Fe.next=6,window.crypto.subtle.exportKey("raw",E);case 6:return v=Fe.sent,j=[...new Uint8Array(v)],j.splice(6),H=R(j),Fe.abrupt("return",parseInt(H,16));case 11:case"end":return Fe.stop()}},N)}));return function(N){return B.apply(this,arguments)}}(),B=>{let N=B.sessionId,S=B.connectionId;return`${N}${S}`})};r.default=h},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>Array.isArray(o)?`0x${o.map(s=>s.toString(16).padStart(2,"0")).join("")}`:null;r.default=a},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(4)),s=o(i(5)),d=o(i(1));const c=(0,d.default)("hasValidPeerConnection");function u(A){return new a(b=>{A.addEventListener("signalingstatechange",()=>b(!0)),A.createOffer({offerToReceiveAudio:1}).then(p=>A.setLocalDescription(p)).then(()=>setTimeout(()=>{b(!1)},1e3))})}function h(A){return f.apply(this,arguments)}function f(){return f=(0,s.default)(l.default.mark(function A(b){var p;return l.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:m.prev=0,p=new b({iceServers:[]}),m.next=8;break;case 4:return m.prev=4,m.t0=m.catch(0),c.error("Error occurred creating PeerConnection",m.t0),m.abrupt("return",!1);case 8:return m.prev=8,m.next=11,u(p);case 11:m.next=18;break;case 13:m.prev=13,m.t1=m.catch(8),c.error("Error occurred checking the validity of the PeerConnection",m.t1);try{p.close()}catch{}return m.abrupt("return",!1);case 18:m.prev=18,p.close(),m.next=26;break;case 22:return m.prev=22,m.t2=m.catch(18),c.error("Error occurred closing PeerConnection",m.t2),m.abrupt("return",!1);case 26:return m.abrupt("return",!0);case 27:case"end":return m.stop()}},A,null,[[0,4],[8,13],[18,22]])})),f.apply(this,arguments)}var g=h;r.default=g}).call(this,i(2))},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=f;var l=o(i(42)),s=o(i(1)),d=o(i(3)),c=o(i(633)),u=o(i(75));const h=(0,s.default)("createPeerConnection");function f(g){let A=g.window,b=g.config,p=g.constraints;h.debug("called");const y=(0,l.default)(b);y.iceServers=(0,c.default)(d.default,y.iceServers),(0,u.default)()&&(y.sdpSemantics="plan-b");const m=new A.RTCPeerConnection(y,p);return a.resolve(m)}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(9)),l=a(i(289));const s={Edge(c){let u=!1;return c.map(h=>{if(!h)return;const f=h.urls||h.url&&[h.url];if(!f)return;const g=f.filter(A=>A.indexOf("turn:")===0&&A.indexOf("transport=udp")!==-1&&A.indexOf("turn:[")===-1&&!u?(u=!0,!0):A.indexOf("stun:")===0);if(g.length!==0)return(0,o.default)((0,l.default)(h,["url","urls"]),{urls:g})}).filter(h=>h!==void 0)},Safari(c){return c.map(u=>{if(u.urls!==void 0&&u.url===void 0)return u;const h=u.urls||u.url&&[u.url];return(0,o.default)((0,l.default)(u,["url","urls"]),{urls:h})})}};function d(c,u){let h=c.name;c.isEdge&&(h=c.isLegacyEdge?"Edge":"ChromiumEdge");const f=s[h];return f?f(u):u}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(18)),l=a(i(3));const s={h264:{baseline:"42001f",constBaseline:"42e01f"}},d=u=>{let h=u.sdp,f=u.from,g=u.to;return h.replace(new RegExp(`^(a=fmtp:\\d+ .*profile-level-id=)${f}`,"gmi"),`$1${g}`)};var c={local:{offer:function(h,f){let g=h===void 0?{}:h,A=g.numSimulcastStreams,b=g.audioBitrate,p=g.priorityVideoCodec,y=p===void 0?"":p,m=g.codecFlags,F=m===void 0?{}:m,R=g.enableStereo,C=R===void 0?!1:R,B=g.enableDtx,N=B===void 0?!1:B,S=g.replaceBaselineProfile,X=S===void 0?!1:S,J=g.removeVideoOrientation,E=J===void 0?!1:J,v=o.default.filterExcessSSRCs(f);A>1&&(v=o.default.enableSimulcast(v,A)),b>0&&(v=o.default.setAudioBitrate(v,b)),E&&(v=o.default.removeVideoOrientation(v)),v=o.default.modifyReceiveStereo(v,!1),v=o.default.modifySendStereo(v,!!C),v=o.default.modifyDtx(v,!!N),l.default.isLegacyEdge||Object.keys(F).filter(H=>F[H]===!1).forEach(H=>{v=o.default.removeVideoCodec(v,H)}),y==="vp9"&&!l.default.isLegacyEdge?(v=o.default.reprioritizeVideoCodec(v,"vp8","top"),v=o.default.reprioritizeVideoCodec(v,"vp9","top")):y&&!l.default.isLegacyEdge?v=o.default.reprioritizeVideoCodec(v,y,"top"):y!=="h264"&&(v=o.default.reprioritizeVideoCodec(v,"h264","bottom"));let j=v;return X&&(j=d({sdp:j,from:s.h264.baseline,to:s.h264.constBaseline})),{local:v,remote:j}},answer:function(h,f){let g=h===void 0?{}:h,A=g.audioBitrate,b=g.codecFlags,p=g.enableStereo,y=p===void 0?!1:p,m=g.enableDtx,F=m===void 0?!1:m,R=g.replaceBaselineProfile,C=R===void 0?!1:R,B=g.sourceStreamId,N=f;A>0&&(N=o.default.setAudioBitrate(N,A)),N=o.default.modifyReceiveStereo(N,!!y),N=o.default.modifySendStereo(N,!1),N=o.default.modifyDtx(N,!!F),B==="MANTIS"&&o.default.getSetupRole(N)==="passive"&&(N=o.default.setSetupRole(N,"active")),b&&Object.keys(b).filter(X=>b[X]===!1).forEach(X=>{N=o.default.removeVideoCodec(N,X)});let S=N;return C&&(S=d({sdp:S,from:s.h264.baseline,to:s.h264.constBaseline})),{local:N,remote:S}}},remote:{offer:(u,h)=>{let f=u.replaceBaselineProfile,g=f===void 0?!1:f,A=h;return A.indexOf("a=rtcp-fb")===-1&&(A=A.replace(/^m=video(.*)$/gmi,`m=video$1\r a=rtcp-fb:* ccm fir\r a=rtcp-fb:* nack `)),g&&(A=d({sdp:A,from:s.h264.constBaseline,to:s.h264.baseline})),{local:A}},answer:function(h,f){let g=h===void 0?{}:h,A=g.audioBitrate,b=g.replaceBaselineProfile,p=b===void 0?!1:b,y=f;return A>0&&(y=o.default.setAudioBitrate(y,A)),p&&(y=d({sdp:y,from:s.h264.constBaseline,to:s.h264.baseline})),{local:y}}}};r.default=c},function(n,r,i){var a=i(44),o=i(55),l=i(46),s=i(26),d=i(295),c=i(636),u=i(243),h=i(100),f=i(278),g=i(296),A="[object Map]",b="[object Set]",p=a?a.iterator:void 0;function y(m){if(!m)return[];if(s(m))return d(m)?f(m):o(m);if(p&&m[p])return c(m[p]());var F=l(m),R=F==A?u:F==b?h:g;return R(m)}n.exports=y},function(n,r){function i(a){for(var o,l=[];!(o=a.next()).done;)l.push(o.value);return l}n.exports=i},function(n,r,i){var a=i(39);function o(l,s){return a(s,function(d){return l[d]})}n.exports=o},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=(o,l)=>{let s=[],d=null;if(typeof o.getReceivers=="function"){const c=o.getReceivers().find(u=>u.track.kind==="audio");c&&(s=c.getSynchronizationSources())}else d=new Error("peerConnection does not support getReceivers function");l&&l(d,s)};r.default=a},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(640));const s=function(u){this.pending=[],this._processBinding=this.maybeProcessPending.bind(this),u&&this.setPeerConnection(u)};s.prototype.setPeerConnection=function(u){if(this.pc)throw new Error("Peer connection already set");this.pc=u,this._forwardIceCandidate=(0,l.default)(this.pc,"addIceCandidate"),this.pc.addEventListener("signalingstatechange",this._processBinding),this.maybeProcessPending()},s.prototype.canAddCandidates=function(){return!!(this.pc&&this.pc.iceConnectionState!=="closed"&&this.pc.remoteDescription&&this.pc.remoteDescription.type&&this.pc.localDescription&&this.pc.localDescription.type)},s.prototype.addIceCandidate=function(u){if(this.canAddCandidates())return this._forwardIceCandidate(u);const h=this.pending;return new a((f,g)=>{h.push({iceCandidate:u,resolve:f,reject:g})})},s.prototype.maybeProcessPending=function(){this.canAddCandidates()&&this.process()},s.prototype.process=function(){for(;this.pending.length;){const u=this.pending.shift();this._forwardIceCandidate(u.iceCandidate).then(u.resolve).catch(u.reject)}},s.prototype.destroy=function(){this.pc&&this.pc.removeEventListener("signalingstatechange",this._processBinding),this._processBinding=null,this.pc=null};var d=s;r.default=d}).call(this,i(2))},function(n,r,i){(function(a){r.__esModule=!0,r.default=o;function o(l,s){const d=l[s];return function(c){return new a((u,h)=>{const f=d.apply(l,[c,u,h]);f&&typeof f.then=="function"&&u(f)})}}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=h;var o=a(i(1)),l=a(i(3)),s=a(i(163)),d=a(i(18)),c=a(i(642));const u=(0,o.default)("offerProcessor");function h(f,g,A,b,p,y,m,F,R,C,B,N,S){const X=(K,Fe)=>z=>{u.error(K),u.error(z),C&&C(K,z,Fe)},J=K=>{const Fe=d.default.hasSendStereo(y.sdp),z=d.default.hasSendDtx(y.sdp),q=d.default.getAudioBitrate(y.sdp),Ae=(0,s.default)(p,"local","answer",{enableStereo:Fe,enableDtx:z,audioBitrate:q,replaceBaselineProfile:N,codecFlags:m,sourceStreamId:S},K.sdp),Ke=new b({type:K.type,sdp:Ae.local}),pe={type:K.type,sdp:Ae.remote};return f.setLocalDescription(Ke).then(()=>R(pe)).catch(X("Error while setting LocalDescription","SetLocalDescription"))},E=()=>f.createAnswer().then(J).catch(X("Error while setting createAnswer","CreateAnswer")),v=new b({type:y.type,sdp:(0,s.default)(p,"remote","offer",{replaceBaselineProfile:N},y.sdp).local}),j=X("Error while setting RemoteDescription","SetRemoteDescription");return(0,c.default)(v,F,l.default,g,A).then(()=>(B(!0),v)).catch(K=>{if(B(!1),!d.default.hasMediaType(v.sdp,"audio"))throw new Error("Unsupported video without audio for fallback");u.debug("Couldn't set remote description",v,K,", trying without video");const Fe=new b({type:y.type,sdp:d.default.disableMediaType(v.sdp,"video")});return u.debug("offer without video",Fe.sdp),Fe}).then(K=>f.setRemoteDescription(K)).then(E).catch(j)}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(75)),d=(c,u,h,f,g)=>{if(!f)return a.resolve(!0);const A={iceServers:[]};(0,l.default)()&&(A.sdpSemantics="plan-b");const b=new f(A),p=()=>{try{b.close()}catch{}};return b.setRemoteDescription(new g(c)).then(()=>{p()}).catch(y=>{throw p(),y})};r.default=d}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(62)),l=a(i(644));function s(d){let c=[];const u={};let h={sentMessages:0,recvMessages:0};const f=function(b){c.filter(p=>b!==p)},g=function(b){const p=new l.default(b);return c.push(p),p.on("close",()=>{f(p)}),p};return u.add=function(A,b){return g(d.createDataChannel(A,b))},u.addMany=function(A){for(const b in A)A.hasOwnProperty(b)&&u.add(b,A[b])},u.get=function(A,b){return(0,o.default)(c,p=>p.equals(A,b))},u.getOrAdd=function(A,b){let p=u.get(A,b);return p||(p=u.add(A,b)),p},u.getQosData=function(){const A={sentMessages:0,recvMessages:0};return c.forEach(b=>{A.sentMessages+=b.getQosData().sentMessages,A.recvMessages+=b.getQosData().recvMessages}),A},u.sampleQos=function(){const A=u.getQosData(),b={sentMessages:A.sentMessages-h.sentMessages,recvMessages:A.recvMessages-h.recvMessages};return h=A,b},u.destroy=function(){c.forEach(A=>{A.close()}),c=[]},d.addEventListener("datachannel",A=>{g(A.channel)}),u}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=c;var o=a(i(6)),l=a(i(1));const s=(0,l.default)("DataChannel"),d=function(h){this.data=h.data,this.source=h.source,this.lastEventId=h.lastEventId,this.origin=h.origin,this.timeStamp=h.timeStamp,this.type=h.type,this.ports=h.ports,this.path=h.path};function c(u){const h={},f=[],g={sentMessages:0,recvMessages:0},A=function(B){return f.push(B),h},b=function(B){return u.send(B),g.sentMessages++,h},p=function(){let B;for(;B=f.shift();)h.send(B)},y=function(){h.send=b,p()},m=function(B){h.send=A,h.trigger("close",B)},F=function(B){s.error(B)},R=function(B){const N=new d(B);g.recvMessages++,h.trigger("message",N)};return(0,o.default)(h,!0),h.label=u.label,h.id=u.id,h.reliable=u.reliable,h.negotiated=u.negotiated,h.ordered=u.ordered,h.protocol=u.protocol,h._channel=u,h.close=function(){u.close()},h.equals=function(C,B){if(h.label!==C)return!1;for(const N in B)if(B.hasOwnProperty(N)&&h[N]!==B[N])return!1;return!0},h.getQosData=function(){return g},h.send=A,u.addEventListener("open",y,!1),u.addEventListener("close",m,!1),u.addEventListener("error",F,!1),u.addEventListener("message",R,!1),h}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=u;var o=a(i(9)),l=a(i(1)),s=a(i(163)),d=a(i(18));const c=(0,l.default)("subscribeProcessor");function u(h){let f=h.peerConnection,g=h.NativeRTCSessionDescription,A=h.sdpTransforms,b=h.numSimulcastStreams,p=h.offerOverrides,y=h.offerConstraints,m=h.replaceBaselineProfile,F=h.removeVideoOrientation,R=h.removeUnusedCodecs;const C=(N,S)=>X=>{c.error(N,X);const J=new Error(N);throw J.reason=X,J.prefix=S,J},B=N=>{c.debug("subscribeProcessor: offer created",N);let S=N.sdp;if(R){var X;S=d.default.removeUnusedCodecs(S,(X=f.currentLocalDescription)==null?void 0:X.sdp)}const J=(0,s.default)(A,"local","offer",(0,o.default)({numSimulcastStreams:b,replaceBaselineProfile:m,removeVideoOrientation:F},p),S),E=new g({type:N.type,sdp:J.local}),v=new g({type:N.type,sdp:J.remote});return c.debug("subscribeProcessor: setting local description"),f.setLocalDescription(E).then(()=>v,C("Error while setting LocalDescription","SetLocalDescription"))};return c.debug("subscribeProcessor: creating offer"),f.createOffer(y).then(B,C("Error while creating Offer","CreateOffer")).then(N=>({sdp:N.sdp,type:N.type}))}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(647)),s=function(){function d(u){this.state=o.default.RESOLVED,this.offerAnswerQueue=[],this.logAnalyticsEvent=u}var c=d.prototype;return c.setPending=function(){this.state=o.default.PENDING},c.setResolved=function(){this.state=o.default.RESOLVED;const h=this.offerAnswerQueue.shift();h&&(this.logAnalyticsEvent("dequeueOfferAnswer","Event"),this.setPending(),h())},c.isPending=function(){return this.state===o.default.PENDING},c.enqueueOfferAnswer=function(h){this.isPending()?(this.offerAnswerQueue.push(h),this.logAnalyticsEvent("enqueueOfferAnswer","Event")):(this.setPending(),h())},d}();r.default=s},function(n,r,i){r.__esModule=!0,r.default=void 0;var a={PENDING:"pending",RESOLVED:"resolved"};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(18));const d=s.default.MediaDirection,c=d.RECVONLY,u=d.INACTIVE,h=function(){var g=(0,l.default)(o.default.mark(function A(b,p){var y,m,F;return o.default.wrap(function(C){for(;;)switch(C.prev=C.next){case 0:if(b){C.next=2;break}return C.abrupt("return");case 2:return C.next=4,b.createOffer();case 4:return y=C.sent,C.next=7,b.setLocalDescription(y);case 7:m=b.remoteDescription.sdp,F=s.default.changeMediaDirection(m,p),b.setRemoteDescription({type:b.remoteDescription.type,sdp:F});case 10:case"end":return C.stop()}},A)}));return function(b,p){return g.apply(this,arguments)}}();var f={changeMediaDirectionToInactive:g=>h(g,u),changeMediaDirectionToRecvOnly:g=>h(g,c)};r.default=f},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=S,r.parseStatsNewAPI=N,r.parseStatsOldAPI=B;var o=a(i(1)),l=a(i(3)),s=a(i(7)),d=a(i(18)),c=a(i(299)),u=a(i(650)),h=a(i(108)),f=a(i(164));function g(J,E){var v=typeof Symbol<"u"&&J[Symbol.iterator]||J["@@iterator"];if(v)return(v=v.call(J)).next.bind(v);if(Array.isArray(J)||(v=A(J))||E){v&&(J=v);var j=0;return function(){return j>=J.length?{done:!0}:{done:!1,value:J[j++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function A(J,E){if(J){if(typeof J=="string")return b(J,E);var v=Object.prototype.toString.call(J).slice(8,-1);if(v==="Object"&&J.constructor&&(v=J.constructor.name),v==="Map"||v==="Set")return Array.from(J);if(v==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(v))return b(J,E)}}function b(J,E){(E==null||E>J.length)&&(E=J.length);for(var v=0,j=new Array(E);v<E;v++)j[v]=J[v];return j}const p=(0,h.default)(),y=(0,o.default)("QoS"),m=["audioCodec","audioSentBytes","audioSentPackets","audioSentPacketsLost","audioRtt","videoCodec","videoHeight","videoHeightInput","videoSentBytes","videoFrameRateSent","videoSentPackets","videoRtt","videoSentPacketsLost","videoWidthInput","videoWidth","srtpCipher"],F=["audioCodec","audioRecvBytes","audioRecvPackets","audioRecvPacketsLost","videoCodec","videoHeight","videoRecvBytes","videoRecvPackets","videoRecvPacketsLost","videoFrameRateReceived","videoWidth","srtpCipher"],R=(J,E)=>y.debug(`Raw stats for peer conn ${J.id}:`,E),C=J=>{const E=J.portNumber||J.port;return`${J.ipAddress||J.address||J.ip}:${E}`};function B(J,E,v,j,H){const K=q=>(Number(q.stat("googFrameRateSent"))>0?(v.videoSentBytes=Number(q.stat("bytesSent")),v.videoSentPackets=Number(q.stat("packetsSent")),v.videoSentPacketsLost=Number(q.stat("packetsLost")),v.videoRtt=Number(q.stat("googRtt"))/1e3,v.videoFrameRate=Number(q.stat("googFrameRateInput")),v.videoWidth=Number(q.stat("googFrameWidthSent")),v.videoHeight=Number(q.stat("googFrameHeightSent")),v.videoFrameRateSent=Number(q.stat("googFrameRateSent")),v.videoWidthInput=Number(q.stat("googFrameWidthInput")),v.videoHeightInput=Number(q.stat("googFrameHeightInput")),v.videoCodec=q.stat("googCodecName"),v.videoBandwidthLimitedResolution=q.stat("googBandwidthLimitedResolution")==="true",v.cpuLimitedResolution=q.stat("googCpuLimitedResolution")==="true"):Number(q.stat("googFrameRateReceived"))>0&&(v.videoRecvBytes=Number(q.stat("bytesReceived")),v.videoRecvPackets=Number(q.stat("packetsReceived")),v.videoRecvPacketsLost=Number(q.stat("packetsLost")),v.videoFrameRate=Number(q.stat("googFrameRateOutput")),v.videoFrameRateReceived=Number(q.stat("googFrameRateReceived")),v.videoFrameRateDecoded=Number(q.stat("googFrameRateDecoded")),v.videoWidth=Number(q.stat("googFrameWidthReceived")),v.videoHeight=Number(q.stat("googFrameHeightReceived")),v.videoCodec=q.stat("googCodecName")),null),Fe=q=>{Number(q.stat("audioInputLevel"))>0?(v.audioSentPackets=Number(q.stat("packetsSent")),v.audioSentPacketsLost=Number(q.stat("packetsLost")),v.audioSentBytes=Number(q.stat("bytesSent")),v.audioCodec=q.stat("googCodecName"),v.audioRtt=Number(q.stat("googRtt"))/1e3):Number(q.stat("audioOutputLevel"))>0&&(v.audioRecvPackets=Number(q.stat("packetsReceived")),v.audioRecvPacketsLost=Number(q.stat("packetsLost")),v.audioRecvBytes=Number(q.stat("bytesReceived")),v.audioCodec=q.stat("googCodecName"))},z=q=>{if(q.result){const Ae=q.result();R(J,Ae);const Ke=(xe,$e)=>Ae.filter(Rt=>Rt.id===$e.stat(xe))[0],pe=xe=>Ke("localCandidateId",xe),We=xe=>Ke("remoteCandidateId",xe);for(let xe=0;xe<Ae.length;xe++){const $e=Ae[xe];$e.stat&&($e.stat("googActiveConnection")==="true"&&($e.stat("googChannelId").indexOf("audio")>-1?(v.audioLocalAddress=$e.stat("googLocalAddress"),v.audioRemoteAddress=$e.stat("googRemoteAddress"),v.audioLocalCandidateType=$e.stat("googLocalCandidateType"),v.audioRemoteCandidateType=$e.stat("googRemoteCandidateType"),v.audioTransportType=$e.stat("googTransportType"),v.audioLocalRelayProtocol=(0,c.default)(pe($e).stat("priority")),v.audioRemoteRelayProtocol=(0,c.default)(We($e).stat("priority"))):$e.stat("googChannelId").indexOf("video")>-1&&(v.videoLocalAddress=$e.stat("googLocalAddress"),v.videoRemoteAddress=$e.stat("googRemoteAddress"),v.videoLocalCandidateType=$e.stat("googLocalCandidateType"),v.videoRemoteCandidateType=$e.stat("googRemoteCandidateType"),v.videoTransportType=$e.stat("googTransportType"),v.videoLocalRelayProtocol=(0,c.default)(pe($e).stat("priority")),v.videoRemoteRelayProtocol=(0,c.default)(We($e).stat("priority")))),Number($e.stat("googAvailableSendBandwidth"))>0&&(v.videoSentEstimatedBandwidth=Number($e.stat("googAvailableSendBandwidth"))),Number($e.stat("googAvailableReceiveBandwidth"))>0&&(v.videoRecvEstimatedBandwidth=Number($e.stat("googAvailableReceiveBandwidth"))),Fe($e),K($e))}"videoCodec"in v&&!v.videoLocalAddress&&["LocalAddress","RemoteAddress","LocalCandidateType","RemoteCandidateType","TransportType","LocalRelayProtocol","RemoteRelayProtocol"].forEach(xe=>{v[`video${xe}`]=v[`audio${xe}`]})}H(null,v)};J.getStats(z)}function N(J,E,v,j,H){const K=function(Ke){H(Ke)},Fe=(Ae,Ke)=>{if(Ke==="outboundrtp"?(v.audioSentPackets=Ae.packetsSent,v.audioSentPacketsLost=Ae.packetsLost,v.audioSentBytes=Ae.bytesSent):Ke==="inboundrtp"&&(v.audioRecvPackets=Ae.packetsReceived,v.audioRecvPacketsLost=Ae.packetsLost,v.audioRecvBytes=Ae.bytesReceived),v.audioCodec===void 0&&["Safari"].indexOf(s.default.env.name)!==-1&&Ae.codecId!==void 0){const pe=J.remoteDescription.type==="answer"?J.remoteDescription:J.localDescription,We=pe.sdp,xe=Ae.codecId.lastIndexOf("_"),$e=d.default.getCodecsAndCodecMap(We,"audio");xe!==-1&&$e!==void 0&&(v.audioCodec=$e.codecMap[Ae.codecId.substring(xe+1)])}},z=Ae=>{const Ke={packetsSent:"videoSentPackets",packetsLost:"videoSentPacketsLost",bytesSent:"videoSentBytes",framesPerSecond:"videoFrameRate",framesSent:"videoFrameRateSent",framesReceived:"videoFramesReceived",frameWidth:"videoWidth",frameHeight:"videoHeight"},pe=["videoSentPackets","videoSentBytes"];for(const We in Ke)if(We in Ae){const xe=Ke[We];pe.includes(xe)&&Number.isSafeInteger(v[xe])?v[xe]+=Ae[We]:v[xe]=Ae[We]}},q=(Ae,Ke)=>{const pe=()=>{if(!("videoSentBytes"in v?v.videoSentBytes>0:v.videoRecvBytes>0))return 0;let xe=0;if(l.default.isFirefox&&l.default.version<96)xe=Number(Ae.framerateMean);else{const $e=Ke==="outboundrtp"?"framesEncoded":"framesDecoded";v[$e]=Ae[$e],xe=(0,f.default)({currentStatFrames:Ae[$e],currentTimestamp:Ae.timestamp,prevStatFrames:E[$e],prevTimestamp:E.timeStamp||Date.now()})}return xe};if(Ke==="outboundrtp"?(Ae.hasOwnProperty("qualityLimitationReason")&&(v.videoBandwidthLimitedResolution=Ae.qualityLimitationReason==="bandwidth",v.cpuLimitedResolution=Ae.qualityLimitationReason==="cpu"),z(Ae)):Ke==="inboundrtp"&&(v.videoRecvPackets=Ae.packetsReceived,v.videoRecvPacketsLost=Ae.packetsLost,v.videoRecvBytes=Ae.bytesReceived,v.videoWidth=Ae.frameWidth,v.videoHeight=Ae.frameHeight,v.videoFramesReceived=Ae.framesReceived),(l.default.isFirefox&&["outboundrtp","inboundrtp"].includes(Ke)||!j&&Ke==="inboundrtp")&&(v.videoFrameRate=pe()),v.videoCodec===void 0&&["Safari"].indexOf(s.default.env.name)!==-1&&Ae.codecId!==void 0){const We=J.remoteDescription.type==="answer"?J.remoteDescription:J.localDescription,xe=We.sdp,$e=Ae.codecId.lastIndexOf("_"),Rt=d.default.getCodecsAndCodecMap(xe,"video");$e!==-1&&Rt!==void 0&&(v.videoCodec=Rt.codecMap[Ae.codecId.substring($e+1)])}};J.getStats(null).then(Ae=>{let Ke,pe,We,xe,$e,Rt,Be,qe;const at=[],Bt=()=>{if(at.length===0)return null;const Ye=at.filter(_t=>_t>0),it=Ye.reduce((_t,Dt)=>_t+Dt,0);return Ye.length?it/Ye.length:0},jt=Ye=>Ye.toLowerCase().replace(/[^a-z]/g,""),Ne=Ye=>{const it=jt(Ye.type),Qt=Ye.id.toLowerCase();if(/(in|out)boundrtp$/.test(it)){const _t=/rtp/.test(Qt),Dt=_t&&/audio/.test(Qt),Ee=_t&&/video/.test(Qt),Ge=Dt||Ye.kind==="audio",he=Ee||Ye.kind==="video";if(Ge?Fe(Ye,it):he&&q(Ye,it),Ye.hasOwnProperty("roundTripTime")){const $=Ye.mediaType||Ye.kind;$==="video"?at.push(Ye.roundTripTime):$==="audio"&&(v.audioRtt=Ye.roundTripTime)}if(it==="remoteinboundrtp"&&Ye.hasOwnProperty("packetsLost")){const ie=`${Ye.kind}SentPacketsLost`;v[ie]||(v[ie]=0),v[ie]+=Ye.packetsLost}}else if(it==="transport"){const _t=Ye.selectedCandidatePairId,Dt=Ye.srtpCipher;v.srtpCipher=Dt,_t&&(xe=(0,u.default)(_t,Ae))}else if(it==="localcandidate")Ke=Ye.candidateType,We=C(Ye),Rt=Ye.protocol||Ye.transport;else if(it==="remotecandidate")pe=Ye.candidateType,$e=C(Ye);else if(it==="track"&&Qt.indexOf("video")!==0)Be=Ye.frameWidth,qe=Ye.frameHeight,z(Ye);else if(it==="mediasource")Ye.hasOwnProperty("framesPerSecond")&&(v.videoFrameRate=Ye.framesPerSecond),Ye.hasOwnProperty("width")&&(v.videoWidthInput=Ye.width),Ye.hasOwnProperty("height")&&(v.videoHeightInput=Ye.height);else if(it==="candidatepair"&&Ye.hasOwnProperty("availableOutgoingBitrate")){const _t=`video${j?"Sent":"Recv"}EstimatedBandwidth`;v[_t]=parseInt(Ye.availableOutgoingBitrate,10)}};if(typeof Ae[Symbol.iterator]=="function"){R(J,Array.from(Ae));for(var Je=g(Ae),ve;!(ve=Je()).done;){const Ye=ve.value,it=Array.isArray(Ye)?Ye[1]:Ye;Ne(it)}}else{R(J,Ae);for(const Ye in Ae)Ae.hasOwnProperty(Ye)&&Ne(Ae[Ye])}if(J.currentRemoteDescription&&(v.useDtx=d.default.hasSendDtx(J.currentRemoteDescription.sdp)),j&&(v.videoRtt=Bt()),(v.audioRecvBytes||v.audioSentBytes)&&(v.audioLocalCandidateType=Ke,v.audioLocalAddress=We,v.audioRemoteCandidateType=pe,v.audioRemoteAddress=$e,v.audioTransportType=Rt,v.audioLocalRelayProtocol=xe,v.audioCodec===void 0)){const Ye=J.remoteDescription.type==="answer"?J.remoteDescription:J.localDescription,it=Ye.sdp,Qt=d.default.getCodecs(it,"audio");v.audioCodec=Qt[0]}if((v.videoRecvBytes||v.videoSentBytes)&&(v.videoLocalCandidateType=Ke,v.videoLocalAddress=We,v.videoRemoteCandidateType=pe,v.videoRemoteAddress=$e,v.videoTransportType=Rt,v.videoLocalRelayProtocol=xe,v.videoCodec===void 0)){const Ye=J.remoteDescription.type==="answer"?J.remoteDescription:J.localDescription,it=Ye.sdp,Qt=d.default.getCodecs(it,"video");v.videoCodec=Qt[0]}X(v,j),v.videoWidth=v.videoWidth||Be,v.videoHeight=v.videoHeight||qe,H(null,v)}).catch(K)}function S(J,E,v,j,H){return p?N(J,E,v,j,H):B(J,E,v,j,H)}function X(J,E){(E?m:F).forEach(j=>{J.hasOwnProperty(j)||(J[j]=null)})}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(299)),l=(s,d)=>{let c="";if(!s||!d)return c;const u=d.get(s);if(u){const h=u.localCandidateId;if(h){const f=d.get(h);if(f){const g=f.relayProtocol,A=f.priority;g?c=`TURN/${g.toUpperCase()}`:c=(0,o.default)(A)}}}return c};r.default=l},function(n,r,i){r.__esModule=!0,r.default=void 0;let a=function(){function o(){this.value=null,this.changeCount=0}var l=o.prototype;return l.onValue=function(d){d&&d!==this.value&&(this.value&&(this.changeCount+=1),this.value=d)},o}();r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(51)),l=a(i(3));const s=function(h){h===void 0&&(h={});const f=h.env||l.default;return f.name==="Chrome"&&f.userAgent.toLowerCase().indexOf("android")>-1&&f.version<65};var c={once:(0,o.default)(()=>s()),check:s};r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=function(d){d===void 0&&(d={});const c=d,u=c.env,h=u===void 0?o.default:u;return!!(h.isiOS&&h.iOSVersion>10)};r.default=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(41)),l=a(i(7));function s(d){let c,u,h,f,g;const A=this;let b=d.archiving;const p=d.archivingStarted||"Archiving on",y=d.archivingEnded||"Archiving off";let m=!0;const F=function(B){f.nodeValue=B,c.setAttribute("title",B)},R=function(){g&&(clearTimeout(g),g=null),b?l.default.addClass(u,"OT_active"):l.default.removeClass(u,"OT_active"),l.default.removeClass(A.domElement,`OT_archiving-${b?"off":"on"}`),l.default.addClass(A.domElement,`OT_archiving-${b?"on":"off"}`),d.show&&b?(F(p),l.default.addClass(h,"OT_mode-on"),l.default.removeClass(h,"OT_mode-auto"),A.setDisplayMode("on"),g=setTimeout(()=>{l.default.addClass(h,"OT_mode-auto"),l.default.removeClass(h,"OT_mode-on")},5e3)):d.show&&!m?(l.default.addClass(h,"OT_mode-on"),l.default.removeClass(h,"OT_mode-auto"),A.setDisplayMode("on"),F(y),g=setTimeout(()=>{A.setDisplayMode("off")},5e3)):A.setDisplayMode("off")};(0,o.default)(this,{mode:b&&d.show&&"on"||"off",nodeName:"h1",htmlAttributes:{className:"OT_archiving OT_edge-bar-item OT_edge-bottom"},onCreate(){c=l.default.createElement("div",{className:"OT_archiving-light-box"},""),u=l.default.createElement("div",{className:"OT_archiving-light"},""),c.appendChild(u),h=l.default.createElement("div",{className:"OT_archiving-status OT_mode-on OT_edge-bar-item OT_edge-bottom"},""),f=document.createTextNode(""),h.appendChild(f),A.domElement.appendChild(c),A.domElement.appendChild(h),R()}}),this.setShowArchiveStatus=function(C){d.show=C,A.domElement&&R.call(A)},this.setArchiving=function(C){b=C,m=!1,A.domElement&&R.call(A)}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=F;var l=o(i(9)),s=o(i(11)),d=o(i(6)),c=o(i(1)),u=o(i(23)),h=o(i(94)),f=o(i(656)),g=o(i(30)),A=o(i(3)),b=o(i(8)),p=o(i(14)),y=o(i(167)),m=o(i(307));function F(R){R===void 0&&(R={});const C=R.env||A.default,B=R.Errors||b.default,N=R.otError||(0,p.default)(),S=R.logging||(0,c.default)("getUserMedia"),X=R.screenSharing||(0,y.default)(),J=R.getDisplayMediaExtensionHelper||m.default,E=R.customGetUserMedia,v=R.global||(typeof window!==void 0?window:yr),j=R.analytics||new g.default,H=v.navigator,K=v.location,Fe=()=>{if(E)return E;if(H.mediaDevices){var $e;return($e=H.mediaDevices).getUserMedia.bind($e)}},z=function(){const Rt=Fe();return Rt?Rt(...arguments):a.reject(new Error("Cannot find getUserMedia"))},q=()=>{if(E)return E;if(H.mediaDevices&&H.getDisplayMedia)return H.getDisplayMedia.bind(H);if(H.mediaDevices&&H.mediaDevices.getDisplayMedia){var $e;return($e=H.mediaDevices).getDisplayMedia.bind($e)}},Ae=function(){const Rt=q();return Rt?Rt(...arguments):a.reject(new Error("Cannot find getDisplayMedia"))},Ke=(()=>{const $e={name:B.USER_MEDIA_ACCESS_DENIED,message:"End-user denied permission to hardware devices"},Rt={name:B.NOT_SUPPORTED,message:"A constraint specified is not supported by the browser."},Be={name:B.CONSTRAINTS_NOT_SATISFIED,message:"It's not possible to satisfy one or more constraints passed into the getUserMedia function"},qe={name:B.NO_DEVICES_FOUND,message:"No voice or video input devices are available on this machine."},at={name:B.HARDWARE_UNAVAILABLE,message:"The selected voice or video devices are unavailable. Verify that the chosen devices are not in use by another application."},Bt={name:B.UNABLE_TO_CAPTURE_SCREEN,message:"Unable to capture screen. Unknown error occurred"},Ne={AbortError:{name:B.UNABLE_TO_CAPTURE_MEDIA,message:"Unable to capture media. Unknown error occurred"},NotAllowedError:$e,NotFoundError:qe,NotReadableError:at,OverconstrainedError:Be,SecurityError:(0,l.default)({},$e,{message:"End-user denied permission to hardware devices or user media support may be disabled on this page"}),TypeError:Be,PermissionDeniedError:$e,PermissionDismissedError:$e,NotSupportedError:Rt,ConstraintNotSatisfiedError:Be,MandatoryUnsatisfiedError:Be,OverConstrainedError:Be,DevicesNotFoundError:qe,NoDevicesFoundError:qe,HardwareUnavailableError:at,SourceUnavailableError:at,TrackStartError:at,ScreenCaptureError:Bt,TabCaptureError:Bt};return(0,f.default)({objectToTrack:Ne,keys:["PermissionDeniedError","PermissionDismissedError","NotSupportedError","ConstraintNotSatisfiedError","MandatoryUnsatisfiedError","OverConstrainedError","DevicesNotFoundError","NoDevicesFoundError","HardwareUnavailableError","SourceUnavailableError","TrackStartError","ScreenCaptureError","TabCaptureError"],onUsage(Je){j.logEvent({action:"DeprecatedPropertyUsage:getUserMedia:errorMap",variation:"Event",payload:{key:Je}})}}),Ne})(),pe=($e,Rt)=>{let Be=$e;Be==="AbortError"&&typeof Rt=="string"&&Rt.match(/(screen|tab).?capture/i)&&(Be="ScreenCaptureError");const qe=Ke[Be];let at;return qe?at=N(qe.name,new Error(`${qe.message} (getUserMedia error: ${$e})`)):at=new Error(`Unknown error while getting user media: ${$e}`),at.originalMessage=Rt,at.originalName=$e,at},We=$e=>{if((0,s.default)($e)&&$e.name){let Rt=$e.name,Be=$e.message;if((Be==="Cannot find getUserMedia"||Be==="Cannot find getDisplayMedia")&&(C.name==="Chrome"&&C.version>73&&v.location.protocol!=="https:"?Rt="NotAllowedError":Rt="NotSupportedError"),C.name==="Safari"&&Rt==="Error"){const Bt=Object.prototype.toString.call($e).match(/^\[object (\w+Error)\]$/);Bt&&(Rt=Bt[1])}const qe=pe(Rt,Be);return qe.constraintName=$e.constraint||$e.constraintName,qe instanceof u.default||j.logEvent({action:"UnexpectedError:getUserMedia:parseErrorEvent",variation:"Event",payload:{name:qe.name,message:qe.message,originalMessage:qe.originalMessage}}),qe}if(typeof $e=="string"){const Rt=pe($e);return j.logEvent({action:"CheckUnreachable:getUserMedia:parseErrorEvent",variation:"Event",payload:{info:"error is string",error:$e}}),Rt}return j.logEvent({action:"CheckUnreachable:getUserMedia:parseErrorEvent",variation:"Event",payload:{info:"error was not string or object with name property",error:$e}}),new Error("Unknown error type while getting media")},xe=function(Rt){if(!Rt||!(0,s.default)(Rt))return!0;for(const Be in Rt)if(Rt.hasOwnProperty(Be)&&Rt[Be])return!1;return!0};return function($e,Rt){if(Rt===void 0&&(Rt=!1),S.debug("getUserMedia wrapper called with",$e),xe($e))return S.error("Couldn't get UserMedia: All constraints were false"),(0,d.default)(a.reject(N(B.NO_VALID_CONSTRAINTS,new Error("Video and Audio was disabled, you need to enable at least one"))));const Be=Rt&&J.isSupportedInThisBrowser?Ae:z,qe=(0,d.default)(Be($e).catch(Ne=>{const Je=We(Ne);if(Je.name===B.UNABLE_TO_CAPTURE_SCREEN)return new a((ve,Ye)=>{X.checkCapability(it=>{if(it.extensionRequired==="chrome"){if(it.extensionRegistered&&!it.extensionInstalled){const Qt=N(B.SCREEN_SHARING_EXTENSION_NOT_INSTALLED,Je);Qt.message="Screen sharing extension not installed see https://tokbox.com/developer/guides/screen-sharing/js/#chrome-extension",Ye(Qt)}else if(!it.extensionRegistered){const Qt=N(B.SCREEN_SHARING_EXTENSION_NOT_REGISTERED,Je);Qt.message="Screen sharing extension not registered see https://tokbox.com/developer/guides/screen-sharing/js/#chrome-extension",Ye(Qt)}}else Ye(Je)})});throw Je}).then(Ne=>(S.debug("got stream:",{stream:Ne,tracks:Ne.getTracks(),trackLabels:Ne.getTracks().map(Je=>Je.label)}),Ne))),at=K.protocol.indexOf("https")!==-1?500:100;let Bt=!0;const jt=()=>{Bt=!1};return qe.then(jt,jt),(0,h.default)(at).then(()=>{if(!Bt)return;const Ne=()=>{qe.emit("accessDialogClosed")};qe.emit("accessDialogOpened"),qe.then(Ne,Ne)}),qe}}}).call(this,i(2))},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=function(l){let s=l===void 0?{}:l,d=s.objectToTrack,c=s.keys,u=s.onUsage;if(!Array.isArray(c)&&c!==void 0)throw new Error("keys must be an array, or undefined");if(typeof u!="function")throw new Error("onUsage must be a function");if(d==null)throw new Error("Expected objectToTrack to be a trackable object");Object.keys(d).forEach(h=>{if(c!==void 0&&c.indexOf(h)===-1)return;let f=d[h];Object.defineProperty(d,h,{get(){return u(h),f},set(g){f=g,u(h,f)},enumerable:!0})})};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=b;var o=a(i(3)),l=a(i(658)),s=a(i(281));const d=l.default.isCallbackBasedAPI;let c=s.default,u=null;const h=(p,y)=>{u.getSources(p,y)},f=(p,y)=>{u.getSources(p).then(m=>{y(void 0,m)},y)},g=()=>d?h:f,A=(p,y)=>{g()({types:[p]},(F,R)=>{if(F){y(F);return}const C=R[0];if(!C){y(new Error("Could not find Electron source for screensharing"));return}const B={audio:!1,video:{mandatory:{chromeMediaSource:p,chromeMediaSourceId:C.id}}};y(void 0,B)})};function b(p){p===void 0&&(p={});try{const y=()=>{let F=typeof window!==void 0?window:yr;for(;typeof F.require!="function"&&F.parent&&F.parent!==F;)F=F.parent;return F},m=()=>{const F=y();return(F.require?F.require("electron"):F.electron).desktopCapturer};u=p.desktopCapturer||(o.default.isElectron?m():null),c=p.isElectronScreenSharingSource||c}catch{}return{isSupportedInThisBrowser:u!==null,autoRegisters:!0,extensionRequired:!1,getConstraintsShowsPermissionUI:!1,sources:{screen:!0,application:!0,window:!0,browser:!0},register:()=>({isInstalled:y=>y(!0),getConstraints(y,m,F){c(y)?F(void 0,{audio:!0,video:!1}):A(y,F)}})}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3));const l=o.default.version<78;var d={isCallbackBasedAPI:l,isPromiseBasedAPI:!l};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(165)),d={isSupportedInThisBrowser:o.default.isFirefox?!l.default:!1,autoRegisters:!0,extensionRequired:!1,extensionInstalled:!1,getConstraintsShowsPermissionUI:!1,sources:{screen:!0,application:!1,window:!0,browser:!1},register(){return{isInstalled(c){c(typeof OTScreenSharing=="object")},getConstraints(c,u,h){u.video={mediaSource:c},u.browserWindow&&(u.video.browserWindow=u.browserWindow,delete u.browserWindow),typeof u.scrollWithPage<"u"&&(u.video.scrollWithPage=u.scrollWithPage,delete u.scrollWithPage),h(void 0,u)}}}};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=E;var o=a(i(4)),l=a(i(5)),s=a(i(155)),d=a(i(308)),c=a(i(9)),u=a(i(143)),h=a(i(40)),f=a(i(6)),g=a(i(1)),A=a(i(3)),b=i(309),p=a(i(661)),y=a(i(310)),m=a(i(14)),F=a(i(8)),R=a(i(156)),C=a(i(280)),B=a(i(270)),N=a(i(167)),S=a(i(662));const X=(0,m.default)(),J="getUserMedia request was aborted";function E(v){v===void 0&&(v={}),["deviceHelpers","getUserMediaHelper"].forEach(xe=>{(0,s.default)(v[xe],`${xe} dependency must be injected into processPubOptions`)});const j=v.generateConstraintInfo||B.default,H=v.global||(typeof window!==void 0?window:yr),K=v.logging||(0,g.default)("processPubOptions"),Fe=v.navigator||H.navigator,z=v.screenSharing||(0,N.default)(),q=v.env||A.default,Ae=(0,S.default)({navigator:Fe||{}}),Ke=v,pe=Ke.deviceHelpers,We=Ke.getUserMediaHelper;return(xe,$e,Rt)=>{var Be,qe,at;const Bt=(0,p.default)(xe,$e,K),jt=(0,R.default)(Bt.videoSource),Ne=(0,y.default)(Bt.audioSource),Je=(0,y.default)(Bt.videoSource),ve=!Ne&&Bt.audioSource!==null,Ye=!Je&&Bt.videoSource!==null,it=ve||Ye,Qt=ie=>typeof ie=="boolean",_t=!jt||Ne||C.default,Dt=(0,u.default)(Bt,{mirror:!jt&&!Je,publishAudio:!0,publishVideo:!0,showControls:!0,fitMode:jt?"contain":"cover",insertDefaultUI:!0,enableRenegotiation:!1,enableStereo:!1,enableDtx:!1,disableAudioProcessing:!1,echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}),Ee=Bt.audioFallback,Ge=Ee===void 0?{}:Ee,he=Bt.audioFallbackEnabled;if(Dt.publisherAudioFallbackEnabled=(Be=Ge.publisher)!=null?Be:!1,Dt.subscriberAudioFallbackEnabled=(qe=(at=Ge.subscriber)!=null?at:he)!=null?qe:!jt,Dt.videoContentHint!==void 0&&!(0,b.isValidVideoContentHint)(Dt.videoContentHint)&&(K.warn(`${$e}: Invalid content hint. Valid content hints are "text", "detail", "motion", or ""`),Dt.videoContentHint=""),Dt.name&&(Dt.name=String(Dt.name)),Qt(Dt.enableDtx)||(Dt.enableDtx=!1),Qt(Dt.enableStereo)||(Dt.enableStereo=!1),Dt.initials&&(typeof Dt.initials!="string"&&(Dt.initials=""),Dt.initials.length>2&&(Dt.initials="",K.warn("Publisher initials cleared. Only one or two characters allowed for publisher initials.")),Dt.initials=Dt.initials.toUpperCase()),Dt.constraints)K.warn(`${$e}: You have passed your own constraints not using ours`);else{const ie=j(Object.assign({isScreenSharing:jt,isCustomAudioTrack:Ne,isCustomVideoTrack:Je},(0,h.default)(Dt,["audioSource","publishAudio","videoSource","publishVideo","resolution","maxResolution","frameRate","facingMode","enableRenegotiation","enableStereo","disableAudioProcessing","echoCancellation","noiseSuppression","autoGainControl"]),{env:q,usingOptionalMandatoryStyle:Ae(jt)}));(0,c.default)(Dt,ie)}const $={isScreenSharing:jt,isCustomAudioTrack:Ne,isCustomVideoTrack:Je,shouldAllowAudio:_t,properties:Dt};return(0,f.default)($),$.getUserMedia=(0,l.default)(o.default.mark(function ie(){var Ve,_e,we,nt,Gt,An,Dn,tr,nr;return o.default.wrap(function(dr){for(;;)switch(dr.prev=dr.next){case 0:if(Ve=function(){for(var ui=arguments.length,Pn=new Array(ui),hr=0;hr<ui;hr++)Pn[hr]=arguments[hr];return $.emit("accessDialogOpened",...Pn)},_e=function(){for(var ui=arguments.length,Pn=new Array(ui),hr=0;hr<ui;hr++)Pn[hr]=arguments[hr];return $.emit("accessDialogClosed",...Pn)},it){dr.next=7;break}return we=new H.MediaStream,Ne&&we.addTrack(Bt.audioSource),Je&&we.addTrack(Bt.videoSource),dr.abrupt("return",we);case 7:if(!jt){dr.next=15;break}return dr.next=10,z.getConstraints({onAccessDialogOpened:Ve,onAccessDialogClosed:_e,videoSource:Bt.videoSource,constraints:Dt.constraints});case 10:if(Dt.constraints=dr.sent,!Rt()){dr.next=13;break}throw X(F.default.CANCEL,new Error(J));case 13:dr.next=25;break;case 15:return dr.next=17,pe.shouldAskForDevices();case 17:if(nt=dr.sent,!Rt()){dr.next=20;break}throw X(F.default.CANCEL,new Error(J));case 20:K.debug(`${$e}: shouldAskForDevices:`,nt),nt.video||(K.warn(`${$e}: Setting video constraint to false, there are no video sources`),Dt.constraints.video=!1),nt.audio||(K.warn(`${$e}: Setting audio constraint to false, there are no audio sources`),Dt.constraints.audio=!1),$.videoDevices=nt.videoDevices,$.audioDevices=nt.audioDevices;case 25:if(Gt=Dt.constraints,K.debug(`${$e}: onConstraintsFound`,Gt),!Rt()){dr.next=29;break}throw X(F.default.CANCEL,new Error(J));case 29:return An="Failed to acquire functional stream, this might be caused by the following iOS bug: https://bugs.webkit.org/show_bug.cgi?id=188088",Dn="Failed to acquire functional stream, this might be caused by the following iOS bug: https://bugs.webkit.org/show_bug.cgi?id=204106",tr=Dr=>Dr.originalName==="NotReadableError"&&Dr.originalMessage==="Failed starting capture of a video track",nr=function(){var Dr=(0,l.default)(o.default.mark(function ui(){var Pn,hr,xr,Hi,Di;return o.default.wrap(function(oi){for(;;)switch(oi.prev=oi.next){case 0:return Pn=We(Gt,jt),Pn.on("accessDialogOpened",Ve),Pn.on("accessDialogClosed",_e),oi.prev=3,oi.next=6,Pn;case 6:if(hr=oi.sent,!(q.isiOS&&Dt.publishVideo&&hr.getVideoTracks().length&&hr.getVideoTracks()[0].readyState==="ended")){oi.next=11;break}throw hr.getTracks().forEach(Ra=>Ra.stop()),xr=new Error(An),xr;case 11:return oi.abrupt("return",hr);case 14:if(oi.prev=14,oi.t0=oi.catch(3),!q.isiOS){oi.next=34;break}if(!(tr(oi.t0)&&q.iOSVersion>=13&&q.iOSVersion<13.4)){oi.next=32;break}return oi.prev=18,Hi=We({audio:!0,video:!1},!1),oi.next=22,Hi;case 22:Di=oi.sent,Di.getTracks().forEach(Ra=>Ra.stop()),oi.next=29;break;case 26:oi.prev=26,oi.t1=oi.catch(18),K.debug(`${$e}: error disposing audio track`,oi.t1);case 29:throw new Error(Dn);case 32:if(oi.t0.name!==F.default.HARDWARE_UNAVAILABLE){oi.next=34;break}throw new Error(An);case 34:throw oi.t0;case 35:return oi.prev=35,setTimeout(()=>{Pn.off("accessDialogOpened",Ve),Pn.off("accessDialogClosed",_e)}),oi.finish(35);case 38:case"end":return oi.stop()}},ui,null,[[3,14,35,38],[18,26]])}));return function(){return Dr.apply(this,arguments)}}(),dr.next=35,(0,d.default)(nr,(Dr,ui)=>[An,Dn].includes(Dr.message)&&ui===1&&!Rt()?1e3:!1)();case 35:if(we=dr.sent,!Rt()){dr.next=39;break}throw we.getTracks().forEach(Dr=>{Dr.stop()}),X(F.default.CANCEL,new Error(J));case 39:return Ne&&we.addTrack(Bt.audioSource),Je&&we.addTrack(Bt.videoSource),dr.abrupt("return",we);case 42:case"end":return dr.stop()}},ie)})),$}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(42)),l=a(i(3)),s=a(i(310)),c=(u,h,f)=>{const g=u&&typeof u=="object"?(0,o.default)(u):{};if(g.audioSource===!1&&(g.audioSource=null),g.videoSource===!1&&(g.videoSource=null),g.minVideoBitrate!==void 0&&!(typeof g.minVideoBitrate=="number"&&g.minVideoBitrate>0)&&(f.warn(`${h}: Invalid minVideoBitrate in publisher properties. minVideoBitrate must be a positive number`),delete g.minVideoBitrate),g.audioBitrate!==void 0&&!(g.audioBitrate>=6*1e3&&g.audioBitrate<=510*1e3)&&(f.warn(`${h}: Invalid audioBitrate in publisher properties. audioBitrate must be a number between ${6*1e3} and ${510*1e3} bits per second`),delete g.audioBitrate),l.default.name==="Firefox"&&l.default.version<49){const A="Firefox 48 and below";(0,s.default)(g.audioSource)&&(g.audioSource=null,f.warn(`${h}: Cannot use custom tracks with ${A}. Setting audioSource to null`)),(0,s.default)(g.videoSource)&&(g.videoSource=null,f.warn(`${h}: Cannot use custom tracks with ${A}. Setting videoSource to null`))}return g};r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=c;var o=a(i(3)),l=a(i(279));const s=o.default.name,d=o.default.version;function c(u){let h=u===void 0?{}:u,f=h.navigator,g=f===void 0?window.navigator:f;return function(b){return b&&!l.default||!(g.mediaDevices&&g.mediaDevices.getUserMedia)||s==="Chrome"&&d<61}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(1));function l(s){s===void 0&&(s={}),["processPubOptions"].forEach(f=>{if(!s[f])throw new Error(`${f} dependency must be injected into OT.getUserMedia`)});const d=s.logging||(0,o.default)("getUserMedia"),c=s,u=c.processPubOptions;return function(g){return g===void 0&&(g={}),u(g,"OT.getUserMedia",()=>!1).getUserMedia().catch(b=>{throw d.error(`OT.getUserMedia failed to getUserMedia: ${b}`),b})}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(12)),l=a(i(1)),s=a(i(76)),d=i(25);const c=(0,l.default)("AudioFallbackState");var h=function(g){g===void 0&&(g={});const A=g.logAnalyticsEvent,b=new o.default;let p=d.CongestionLevels.LOW,y=s.default.ACTIVE_VIDEO;const m=function(X,J){var E,v;J===void 0&&(J={}),A("congestionLevelChanged","Event",J.payload,{congestionLevel:X,algorithm:J.algorithm,audioPL:J.audioPacketLoss,videoPL:J.videoPacketLoss,videoSentEstimatedBandwidth:parseInt(J.bandwidth,10),videoHeight:(E=J.resolution)==null?void 0:E.height,videoWidth:(v=J.resolution)==null?void 0:v.width})},F=S=>{y=S,b.emit("stateChange",{state:S})},R=()=>{p=d.CongestionLevels.LOW,F(s.default.ACTIVE_VIDEO)},C=()=>{p===d.CongestionLevels.LOW&&F(s.default.ACTIVE_VIDEO_WITH_WARNING),p=d.CongestionLevels.MEDIUM},B=()=>{p=d.CongestionLevels.CRITICAL,F(s.default.SUSPENDED_VIDEO)},N={[d.CongestionLevels.LOW]:R,[d.CongestionLevels.MEDIUM]:C,[d.CongestionLevels.CRITICAL]:B};return Object.assign(b,{setCongestionLevel(S,X){if(p===S)return;const J=N[S];J?(J(X),m(S,X)):c.warn(`Invalid congestion level: ${S}`)},getState(){return{videoState:y,congestionLevel:p}},setInternalState(S){y=S.videoState,p=S.congestionLevel},reset(){p=d.CongestionLevels.LOW,y=s.default.ACTIVE_VIDEO}})};r.default=h},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(666)),l=a(i(12)),s=a(i(667)),d=a(i(668)),c=a(i(313)),u=a(i(314)),h=a(i(670)),f=i(25),g=a(i(671)),b=function(y){y===void 0&&(y={});const m=new l.default,F=y,R=F.getStats,C=F.createMovingAverageTracker,B=C===void 0?u.default:C,N=F.createTimeBasedCongestionLevel,S=N===void 0?s.default:N,X=F.createBasicCongestionLevel,J=X===void 0?d.default:X,E=F.createCongestionLevelStats,v=E===void 0?c.default:E,j=F.getFairQualityBandwidthForResolution,H=j===void 0?h.default:j,K=S(),Fe=J(),z=B(),q=B(),Ae=B();let Ke;const pe=(0,g.default)(),We=()=>z.getDataPointCount()===0?f.LOW:K.getLevel({audioPacketLoss:z.getMovingAverageValue()}),xe=()=>Ae.getDataPointCount()===0||z.getDataPointCount()===0?f.LOW:Fe.getLevel({bandwidth:Ae.getMovingAverageValue(),audioPacketLoss:z.getMovingAverageValue(),bandwidthFairThreshold:H(Ke)}),$e=jt=>{let Ne=jt.audioPacketLoss,Je=jt.videoPacketLoss,ve=jt.bandwidth;pe.addData({timestamp:Date.now(),rawAudioPL:Ne.toFixed(3),rawVideoPL:Je.toFixed(3),rawBW:parseInt(ve,10),videoWidth:Ke.width,videoHeight:Ke.height,avgAudioPL:z.getMovingAverageValue().toFixed(3),avgVideoPL:q.getMovingAverageValue().toFixed(3),avgBW:parseInt(Ae.getMovingAverageValue(),10)})},Rt=jt=>{let Ne=jt.timeLevel,Je=jt.basicLevel;return Je===Ne?"basic,timeBased":Je>Ne?"basic":"timeBased"},Be=jt=>{let Ne=jt.congestionLevel,Je=jt.timeLevel,ve=jt.basicLevel;if(Ne!==f.LOW)return{resolution:Ke,algorithm:Rt({timeLevel:Je,basicLevel:ve}),videoPacketLoss:q.getMovingAverageValue(),audioPacketLoss:z.getMovingAverageValue(),bandwidth:Ae.getMovingAverageValue(),payload:pe.getCsvString()}},qe=()=>{const jt=We(),Ne=xe(),Je=Math.max(jt,Ne);m.emit("congestionLevel",Je,Be({congestionLevel:Je,timeLevel:jt,basicLevel:Ne}))},at=jt=>{let Ne=jt.audioPacketLoss,Je=jt.videoPacketLoss,ve=jt.bandwidth,Ye=jt.videoResolution;Ke&&!(0,o.default)(Ke,Ye)&&(z.reset(),q.reset(),Ae.reset()),Ke=Ye,Ae.addValue(ve),q.addValue(Je),z.addValue(Ne),$e({audioPacketLoss:Ne,videoPacketLoss:Je,bandwidth:ve}),qe()},Bt=v(R);return Bt.on("statsAvailable",jt=>{at(jt)}),Object.assign(m,{start(){Bt.start()},stop(){Bt.stop(),pe.reset()}})};r.default=b},function(n,r,i){var a=i(138);function o(l,s){return a(l,s)}n.exports=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(170)),l=i(25),d=function(u){u===void 0&&(u={});const h=Object.assign({},o.default,u);let f=!1,g;return{getLevel(A){if(A.audioPacketLoss<h.packetLossCriticalThreshold)return f=!1,l.LOW;const p=Date.now();return f||(g=p,f=!0),p>g+h.criticalCongestionPeriod?l.CRITICAL:p>g+h.criticalCongestionPeriod/2?l.MEDIUM:l.LOW}}};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(170)),l=i(25),d=function(u){u===void 0&&(u={});const h=Object.assign({},o.default,u);return{getLevel(f){let g=f.bandwidth,A=f.audioPacketLoss,b=f.bandwidthFairThreshold,p;if(g<=0)return A>h.packetLossCriticalThresholdMediumBw?p=l.CRITICAL:p=l.LOW,p;if(g>=b?p=l.LOW:g>=h.bandwidthCriticalThreshold?g>=(h.bandwidthCriticalThreshold+b)/2?A>h.packetLossCriticalThresholdMediumBw*2?p=l.CRITICAL:p=l.MEDIUM:A>h.packetLossCriticalThresholdMediumBw?p=l.CRITICAL:p=l.MEDIUM:A>h.packetLossCriticalThreshold?p=l.CRITICAL:p=l.MEDIUM,p===void 0)throw new Error("undefined congestion level");return p}}};r.default=d},function(n,r,i){r.__esModule=!0,r.parseStats=r.getVideoResolution=r.getVideoPacketStats=r.getVideoPacketLoss=r.getSelectedCandidatePairId=r.getBandwidth=r.getAudioPacketStats=r.getAudioPacketLoss=void 0;const a=(p,y)=>{const m=p.filter(S=>{let X=S.type,J=S.kind;return X==="outbound-rtp"&&J===y}),F=p.filter(S=>{let X=S.type,J=S.kind;return X==="remote-inbound-rtp"&&J===y}),R=F[0].timestamp,C=F[0].fractionLost,B=m.reduce((S,X)=>S+X.packetsSent,0),N=F.reduce((S,X)=>S+X.packetsLost,0);return{[`${y}ReportTimestamp`]:R,[`${y}PacketsSent`]:B,[`${y}PacketsLost`]:N,[`${y}FractionLost`]:C}},o=p=>p.filter(F=>{let R=F.type,C=F.kind;return R==="outbound-rtp"&&C==="video"}).filter(F=>F.frameHeight!==void 0&&F.frameWidth!==void 0).reduce((F,R)=>({width:Math.max(F.width,R.frameWidth),height:Math.max(F.height,R.frameHeight)}),{width:0,height:0});r.getVideoResolution=o;const l=p=>a(p,"audio");r.getAudioPacketStats=l;const s=p=>a(p,"video");r.getVideoPacketStats=s;const d=p=>{const y=p.find(m=>m.type==="transport");return y==null?void 0:y.selectedCandidatePairId};r.getSelectedCandidatePairId=d;const c=(p,y)=>{if(y){const m=p.find(F=>{let R=F.id,C=F.type;return R===y&&C==="candidate-pair"});return m==null?void 0:m.availableOutgoingBitrate}},u=p=>{const y=c(p,d(p));if(y!==void 0)return y;const m=p.find(F=>{let R=F.type,C=F.availableOutgoingBitrate;return R==="candidate-pair"&&C!==void 0});return m==null?void 0:m.availableOutgoingBitrate};r.getBandwidth=u;const h=p=>{const y=l(p),m=y.audioPacketsSent,F=y.audioPacketsLost,R=y.audioReportTimestamp,C=y.audioFractionLost,B=s(p),N=B.videoPacketsSent,S=B.videoPacketsLost,X=B.videoReportTimestamp,J=u(p),E=o(p);return{bandwidth:J,audioFractionLost:C,audioReportTimestamp:R,audioPacketsSent:m,audioPacketsLost:F,videoReportTimestamp:X,videoPacketsSent:N,videoPacketsLost:S,videoResolution:E}};r.parseStats=h;const f=(p,y)=>y===0?0:p/y,g=(p,y,m)=>{const F=y[`${p}PacketsSent`]-m[`${p}PacketsSent`],R=y[`${p}PacketsLost`]-m[`${p}PacketsLost`];return f(R,F)},A=(p,y)=>g("audio",p,y);r.getAudioPacketLoss=A;const b=(p,y)=>g("video",p,y);r.getVideoPacketLoss=b},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=[{width:"320",height:"180",fairQualityBitrate:12e4},{width:"320",height:"240",fairQualityBitrate:12e4},{width:"352",height:"288",fairQualityBitrate:125e3},{width:"480",height:"270",fairQualityBitrate:125e3},{width:"640",height:"360",fairQualityBitrate:15e4},{width:"640",height:"480",fairQualityBitrate:15e4},{width:"960",height:"540",fairQualityBitrate:15e4},{width:"1280",height:"720",fairQualityBitrate:4e5},{width:"1920",height:"1080",fairQualityBitrate:5e5}].sort((c,u)=>c.fairQualityBitrate-u.fairQualityBitrate),o=25e4,l=a.reduce((c,u)=>{let h=u.fairQualityBitrate;return Math.max(c,h)},o);var d=c=>{var u;let h=c.width,f=c.height;return!h||!f?o:((u=a.find(A=>{let b=A.height,p=A.width;return f*h<=b*p}))==null?void 0:u.fairQualityBitrate)||l};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(40));const l=["timestamp","rawAudioPL","rawVideoPL","rawBW","videoWidth","videoHeight","avgAudioPL","avgVideoPL","avgBW"];var d=function(u){u===void 0&&(u=10);let h=[];return{addData(f){h.push((0,o.default)(f,l)),h.length>u&&h.shift()},reset(){h=[]},getCsvString(){const f=h.map(g=>l.map(b=>g[b]).join(","));return[l.join(","),...f].join(`\r `)}}};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(12)),l=a(i(673)),s=i(25),d=a(i(315)),u=function(f){f===void 0&&(f={});const g=new o.default,A=f,b=A.getStats,p=A.setVideoActive,y=A.createNetworkProbe,m=y===void 0?l.default:y;let F,R;const C=()=>{var N,S;(N=F)==null||N.removeAllListeners(),clearTimeout(R),(S=F)==null||S.stop(),F=void 0};return Object.assign(g,{start:function(S){let X=S===void 0?{}:S,J=X.getDelayForProbeNumber,E=J===void 0?d.default:J;F&&C(),F=m({getStats:b});let v=0;const j=()=>{const H=E(v);v++,R=setTimeout(()=>{p(!0),F.start()},H)};F.on("probeResult",H=>{H===s.LOW?g.emit("networkRecovered"):(p(!1),j())}),j()},stop:C})};r.default=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(12)),l=a(i(674)),s=i(25),d=a(i(1)),c=i(110);const u=(0,d.default)("networkProbe"),h=10*c.ONE_SECOND_IN_MS;var g=function(b){b===void 0&&(b={});const p=new o.default,y=b,m=y.getStats,F=y.createRecoveryCongestionLevelCalculator,R=F===void 0?l.default:F;let C;const B=R({getStats:m}),N=S=>{B.stop(),u.info(`Network probe result ${S}`),p.emit("probeResult",S)};return B.on("congestionLevel",S=>{const X=Date.now()-C;S===s.CRITICAL?N(s.CRITICAL):X>h&&(S===s.LOW?N(s.LOW):N(s.CRITICAL))}),Object.assign(p,{start(){C=Date.now(),u.info("Start network probe"),B.start()},stop(){u.info("Stop network probe"),B.stop()}})};r.default=g},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(12)),l=a(i(675)),s=a(i(313)),d=a(i(314)),c=i(25),h=function(g){g===void 0&&(g={});const A=new o.default,b=g,p=b.getStats,y=b.createMovingAverageTracker,m=y===void 0?d.default:y,F=b.createBandwidthCongestionLevel,R=F===void 0?l.default:F,C=b.createCongestionLevelStats,B=C===void 0?s.default:C,N=R(),S=m(),X=m(),J=B(p),E=()=>{S.reset(),X.reset()},v=()=>{J.stop(),E()},j=()=>X.getDataPointCount()===0||S.getDataPointCount()===0?c.LOW:N.getLevel({audioPacketLoss:S.getMovingAverageValue(),videoPacketLoss:X.getMovingAverageValue()}),H=K=>{let Fe=K.audioPacketLoss,z=K.videoPacketLoss;S.addValue(Fe),X.addValue(z);const q=j();A.emit("congestionLevel",q)};return J.on("statsAvailable",H),Object.assign(A,{start(){J.start()},stop(){v()}})};r.default=h},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(170)),l=i(25);const s=.8,d=.5;var u=function(f){f===void 0&&(f={});const A=Object.assign({},o.default,f).packetLossCriticalThreshold,b=A*d,p=A*s,y=p*d;return{getLevel(m){let F=m.audioPacketLoss,R=m.videoPacketLoss;return F>p||R>A?l.CRITICAL:F>y||R>b?l.MEDIUM:l.LOW}}};r.default=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3));const l=d=>d>=15&&d<15.4;var s=d=>(d=d||o.default,d.isiPad?!0:d.isiPhone?l(d.iOSVersion):d.isSafari?l(d.version):!1);r.default=s},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=[{width:320,height:180,maxBitrate:3e5},{width:320,height:240,maxBitrate:4e5},{width:352,height:288,maxBitrate:5e5},{width:480,height:270,maxBitrate:55e4},{width:640,height:360,maxBitrate:8e5},{width:640,height:480,maxBitrate:8e5},{width:960,height:540,maxBitrate:11e5},{width:1280,height:720,maxBitrate:25e5},{width:1920,height:1080,maxBitrate:45e5}].sort((d,c)=>d.maxBitrate-c.maxBitrate),o=45e5;var s=(d,c)=>{var u;return!d||!c?o:((u=a.find(f=>{let g=f.height,A=f.width;return c*d<=g*A}))==null?void 0:u.maxBitrate)||o};r.default=s},function(n,r,i){var a=i(63),o=i(102),l=i(38);function s(d,c){var u={};return c=l(c,3),o(d,function(h,f,g){a(u,f,c(h,f,g))}),u}n.exports=s},function(n,r,i){r.__esModule=!0,r.default=a;function a(o,l){let s=0,d=!0;const c=A=>A.type==="outbound-rtp"&&A.ssrc&&(A.kind==="audio"||A.mediaType==="audio"),u=A=>A===s&&d,h=A=>A!==s,f=(A,b)=>{A||b.forEach(p=>{if(c(p)){const y=typeof p.bytesSent;let m;const F=15;if(y==="number")m=p.bytesSent%Math.pow(10,F);else if(y==="string"){const R=p.bytesSent.slice(p.bytesSent.length-F);m=parseInt(R,10)}else return;u(m)?(l(),d=!1):h(m)&&(d=!0),s=m}})},g=setInterval(()=>{o(f)},3e3);return function(){clearInterval(g)}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=i(110),l=a(i(315)),d=c=>c===0?5*o.ONE_SECOND_IN_MS:(0,l.default)(c-1);r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=h;var o=a(i(4)),l=a(i(5)),s=a(i(16)),d=a(i(6)),c=i(682);const u=()=>new MediaStream;function h(f){f===void 0&&(f={});const g=f.createMediaStream||u;return function(b,p){const y={},m=[],F=g();this._id=(0,s.default)();let R=!1;const C=()=>{R||(this.trigger("iceConnected"),R=!0)};let B=!1;const N=z=>{z==="connected"&&B||(B=z==="connected",this.trigger("iceConnectionStateChange",z))},S=()=>this.trigger("close"),X=z=>this.trigger("remoteVideoSupported",z),J=z=>{let q=z.reason,Ae=z.prefix;return this.trigger("error",{reason:q,prefix:Ae})},E=z=>{z.parsedStats.singlePeerConnection=!0,this.trigger("qos",z)},v=z=>this.trigger("signalingStateChange",z),j=z=>this.trigger("signalingStateStable",z),H=()=>this.trigger("decryptFailed"),K=()=>this.trigger("decryptRestored");(0,d.default)(this);const Fe=p.getPeerConnection(b,this);Fe.on({iceConnected:C,close:S,signalingStateChange:v,signalingStateStable:j,error:J,qos:E,iceConnectionStateChange:N,remoteVideoSupported:X,decryptFailed:H,decryptRestored:K},this),this.onTrackAdded=z=>{let q=z.track,Ae=z.transceiver;y[q.id]=Ae.mid,p.addSubscriberMid(Ae.mid,this._id),m.push(q),F.addTrack(q),Fe.iceConnectionStateIsConnected()&&(C(),N("connected")),this.trigger("trackAdded",{stream:F,track:q,transceiver:Ae})},this.disconnect=()=>{p.removeSubscriber(this._id,Object.values(y))},this.remoteTracks=()=>m,this.generateOfferAndSend=()=>Fe.generateOfferAndSend(),this.getDataChannel=(z,q,Ae)=>{Fe.getDataChannel(z,q,Ae)},this.getSourceStreamId=()=>Fe.getSourceStreamId(),this.processOffer=function(){var z=(0,l.default)(o.default.mark(function q(Ae){return o.default.wrap(function(pe){for(;;)switch(pe.prev=pe.next){case 0:return pe.next=2,p.processOffer(Ae.content.sdp);case 2:Ae.content.sdp=pe.sent,Fe.processMessage("offer",Ae);case 4:case"end":return pe.stop()}},q)}));return function(q){return z.apply(this,arguments)}}(),this.processAnswer=z=>{z.content.sdp=p.processAnswer(z.content.sdp),Fe.processMessage("answer",z),p.subscriberComplete()},this.processMessage=(z,q)=>{z==="offer"?this.processOffer(q):z==="answer"?this.processAnswer(q):Fe.processMessage(z,q)},this.remoteDescription=()=>Fe.remoteDescription(),this.getStats=(z,q)=>{z?Fe.getStats(z,q):(0,c.collectGetStatsHelper)(Fe,m,q)},this.getSynchronizationSources=z=>{Fe.getSynchronizationSources(z)},this.getRtcStatsReport=(z,q)=>{z?Fe.getRtcStatsReport(z,q):(0,c.collectRtcStatsReportHelper)(Fe,m,q)},this.remoteStreams=()=>Fe.remoteStreams(),this.hasRelayCandidates=()=>Fe.hasRelayCandidates(),this.iceRestart=()=>Fe.iceRestart(),this.iceConnectionStateIsConnected=()=>Fe.iceConnectionStateIsConnected(),this.startDecryption=(z,q)=>Fe.startDecryption(z,q)}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.collectStatsHelper=r.collectRtcStatsReportHelper=r.collectGetStatsHelper=void 0;var l=o(i(4)),s=o(i(5)),d=o(i(171));const c=function(){var f=(0,s.default)(l.default.mark(function g(A,b){var p,y,m,F,R,C,B;return l.default.wrap(function(S){for(;;)switch(S.prev=S.next){case 0:return A===void 0&&(A={}),p=A,y=p.tracks,m=p.getStats,F=p.merge,R=(0,d.default)(m),S.prev=3,S.next=6,a.all(y.map(X=>R(X)));case 6:B=S.sent,C=B.reduce(F),S.next=14;break;case 10:return S.prev=10,S.t0=S.catch(3),b(S.t0),S.abrupt("return");case 14:b(null,C);case 15:case"end":return S.stop()}},g,null,[[3,10]])}));return function(A,b){return f.apply(this,arguments)}}();r.collectStatsHelper=c;const u=(f,g,A)=>{c({tracks:g,getStats:(p,y)=>f.getStats(p,y),merge:function(y,m){return y===void 0&&(y=[]),[...y,...m]}},A)};r.collectGetStatsHelper=u;const h=(f,g,A)=>{c({tracks:g,getStats:(p,y)=>f.getRtcStatsReport(p,y),merge:function(y,m){return y===void 0&&(y=new Map),new Map([...y,...m])}},A)};r.collectRtcStatsReportHelper=h}).call(this,i(2))},function(n,r,i){r.__esModule=!0,r.default=o;const a=3e3;function o(l,s,d){d===void 0&&(d=!1);let c=null,u=0,h=null,f=d;const g=F=>F.type==="inbound-rtp"&&(F.kind||F.mediaType)==="audio",A=F=>F.id===h&&F.type==="track"&&(F.kind||F.mediaType)==="audio",b=(F,R)=>F===c&&R===u,p=(F,R)=>!f&&F===0&&c===0&&R>u,y=()=>{setTimeout(()=>{f=!0},a)},m=setInterval(()=>{l((F,R)=>{if(F)return;h=(R.find(g)||{}).trackId;const B=R.find(A);if(B){const N=B.audioLevel,S=B.totalSamplesReceived;if(N===void 0)return;b(N,S)?(clearInterval(m),s("audioLevelStuck")):p(N,S)&&(clearInterval(m),s("audioLevelStuckAt0")),c=N,u=S}})},500);return d||y(),{stop:()=>{clearInterval(m)}}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=g;var l=o(i(16)),s=o(i(10)),d=o(i(30)),c=o(i(24)),u=o(i(14)),h=o(i(8));const f=new d.default;function g(A){A===void 0&&(A={});const b=A.analytics||f,p=A.errors||h.default,y=A.ExceptionCodes||s.default,m=A.otError||(0,u.default)(),F=A.sessionObjects||c.default,R=A.uuid||l.default;return function(B){B===void 0&&(B=()=>{});const N=R();function S(X){X?B(m(p.REPORT_ISSUE_FAILED,new Error("Error calling OT.reportIssue(). Check the client's network connection."),y.REPORT_ISSUE_ERROR)):B(null,N)}F.sessions.length()===0?b.logEvent({action:"ReportIssue",variation:"Event",payload:{reportIssueId:N}},null,S):a.all(F.sessions.map(X=>X.reportIssue({id:N}))).then(()=>S(),X=>S(X))}}}).call(this,i(2))},function(n,r,i){Object.defineProperty(r,"__esModule",{value:!0});var a=function(){function h(f,g){for(var A=0;A<g.length;A++){var b=g[A];b.enumerable=b.enumerable||!1,b.configurable=!0,"value"in b&&(b.writable=!0),Object.defineProperty(f,b.key,b)}}return function(f,g,A){return g&&h(f.prototype,g),A&&h(f,A),f}}(),o=i(320),l=s(o);function s(h){return h&&h.__esModule?h:{default:h}}function d(h,f){if(!(h instanceof f))throw new TypeError("Cannot call a class as a function")}var c=function(){},u=function(){function h(){d(this,h),this.internalIsCanceled=!1,this.listeners=[]}return a(h,[{key:"isCanceled",value:function(){return this.internalIsCanceled}},{key:"cancel",value:function(){this.internalIsCanceled||(this.internalIsCanceled=!0,this.listeners.forEach(function(g){return g()}),this.listeners=null)}},{key:"throwIfCanceled",value:function(){if(this.internalIsCanceled)throw new l.default("Operation has been canceled.")}},{key:"onCancel",value:function(g){var A=this;return this.internalIsCanceled?c:(this.listeners.push(g),function(){if(A.listeners){var b=A.listeners.indexOf(g);b!==-1&&A.listeners.splice(b,1)}})}},{key:"fork",value:function(){if(this.internalIsCanceled)return h.CANCELED;var g=new h;return this.onCancel(function(){return g.cancel()}),g}}]),h}();r.default=u,u.CANCELED=new u,u.CANCELED.internalIsCanceled=!0},function(n,r,i){r.__esModule=!0,r.default=a;function a(o,l){return l===void 0&&(l="px"),String(parseFloat(o,10))===String(o).trim()?`${String(o).trim()}${l}`:o}},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{let l=o.window,s=!1;try{const d=Object.defineProperty({},"passive",{get(){s=!0}});l.addEventListener("testPassive",null,d),l.removeEventListener("testPassive",null,d)}catch{}return s};r.default=a},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=()=>{const s=document.createElementNS("http://www.w3.org/2000/svg","circle");return s.setAttribute("cx","50%"),s.setAttribute("cy","50%"),s.setAttribute("r","50%"),s.setAttribute("fill","%23000000"),s},o=s=>{const d=document.createElementNS("http://www.w3.org/2000/svg","text");d.setAttribute("x","50%"),d.setAttribute("y","50%"),d.setAttribute("dy","5%"),d.setAttribute("line-height","133%"),d.setAttribute("font-size","108"),d.setAttribute("font-weight","500"),d.setAttribute("font-style","normal"),d.setAttribute("fill","%23FFFFFF"),d.setAttribute("font-family","spezia,sans-serif"),d.setAttribute("dominant-baseline","middle"),d.setAttribute("text-anchor","middle");const c=document.createTextNode(s);return d.appendChild(c),d};var l=s=>{const d=document.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("viewBox","0 0 300 300"),d.setAttribute("style","width: 50%; dominant-baseline: middle; text-anchor: middle;");const c=a(),u=o(s);return d.appendChild(c),d.appendChild(u),d};r.default=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(16));function l(s,d){let c,u;if(s&&s.nodeName?(c=s,(!c.getAttribute("id")||c.getAttribute("id").length===0)&&c.setAttribute("id",`OT_${(0,o.default)()}`),u=c.getAttribute("id")):s&&(c=document.getElementById(s),c&&(u=s)),u||(u=`OT_${(0,o.default)().replace(/-/g,"_")}`),!c)return c=document.createElement("div"),c.id=u,c.setAttribute("id",u),c.style.backgroundColor="#000000",document.body.appendChild(c),c;const h=document.createElement("div");switch(h.id=`OT_${(0,o.default)()}`,d){case"append":return c.appendChild(h),h;case"before":return c.parentNode.insertBefore(h,c),h;case"after":return c.parentNode.insertBefore(h,c.nextSibling),h;case"replace":default:for(;c.firstChild;)c.removeChild(c.firstChild);return c}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=h;var o=a(i(1));const l=(0,o.default)("WidgetView:fixMini"),s=128,d=128,c=64,u=64;function h(f){const g=f.clientWidth,A=f.clientHeight;f.classList.remove("OT_micro"),f.classList.remove("OT_mini"),(g<c||A<u)&&(f.classList.add("OT_micro"),l.debug("OT_micro class added",{clientWidth:g,clientHeight:A,microWidth:c,microHeight:u})),(g<s||A<d)&&(f.classList.add("OT_mini"),l.debug("OT_mini class added",{clientWidth:g,clientHeight:A,miniWidth:s,miniHeight:d}))}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(321)),s=o(i(160)),d=o(i(57)),c=o(i(106));(0,c.default)();function u(f,g){g===void 0&&(g=5e3);const A=(0,d.default)(f),b=new a(p=>{A.on("timeupdate",p),A.on("loadedmetadata",p)});return(0,l.default)((0,s.default)(b,g,()=>!1),()=>A.removeAll())}var h=u;r.default=h}).call(this,i(2))},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(321)),s=o(i(160)),d=o(i(57)),c=o(i(106));(0,c.default)();function u(f,g){const A=(0,d.default)(f),b=new a(p=>{const y=()=>{(f.videoWidth()>2||f.videoHeight()>2)&&p(!0)};A.on("videoDimensionsChanged",y),y()});return(0,l.default)((0,s.default)(b,g,()=>!1),()=>A.removeAll())}var h=u;r.default=h}).call(this,i(2))},function(n,r){function i(a,o){if(a==null)return{};var l={},s=Object.keys(a),d,c;for(c=0;c<s.length;c++)d=s[c],!(o.indexOf(d)>=0)&&(l[d]=a[d]);return l}n.exports=i},function(n,r,i){i.r(r);var a=function(){if(typeof Map<"u")return Map;function z(q,Ae){var Ke=-1;return q.some(function(pe,We){return pe[0]===Ae?(Ke=We,!0):!1}),Ke}return function(){function q(){this.__entries__=[]}return Object.defineProperty(q.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),q.prototype.get=function(Ae){var Ke=z(this.__entries__,Ae),pe=this.__entries__[Ke];return pe&&pe[1]},q.prototype.set=function(Ae,Ke){var pe=z(this.__entries__,Ae);~pe?this.__entries__[pe][1]=Ke:this.__entries__.push([Ae,Ke])},q.prototype.delete=function(Ae){var Ke=this.__entries__,pe=z(Ke,Ae);~pe&&Ke.splice(pe,1)},q.prototype.has=function(Ae){return!!~z(this.__entries__,Ae)},q.prototype.clear=function(){this.__entries__.splice(0)},q.prototype.forEach=function(Ae,Ke){Ke===void 0&&(Ke=null);for(var pe=0,We=this.__entries__;pe<We.length;pe++){var xe=We[pe];Ae.call(Ke,xe[1],xe[0])}},q}()}(),o=typeof window<"u"&&typeof document<"u"&&window.document===document,l=function(){return typeof(typeof window!==void 0?window:yr)<"u"&&(typeof window!==void 0?window:yr).Math===Math?typeof window!==void 0?window:yr:typeof self<"u"&&self.Math===Math?self:typeof window<"u"&&window.Math===Math?window:Function("return this")()}(),s=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(l):function(z){return setTimeout(function(){return z(Date.now())},1e3/60)}}(),d=2;function c(z,q){var Ae=!1,Ke=!1,pe=0;function We(){Ae&&(Ae=!1,z()),Ke&&$e()}function xe(){s(We)}function $e(){var Rt=Date.now();if(Ae){if(Rt-pe<d)return;Ke=!0}else Ae=!0,Ke=!1,setTimeout(xe,q);pe=Rt}return $e}var u=20,h=["top","right","bottom","left","width","height","size","weight"],f=typeof MutationObserver<"u",g=function(){function z(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=c(this.refresh.bind(this),u)}return z.prototype.addObserver=function(q){~this.observers_.indexOf(q)||this.observers_.push(q),this.connected_||this.connect_()},z.prototype.removeObserver=function(q){var Ae=this.observers_,Ke=Ae.indexOf(q);~Ke&&Ae.splice(Ke,1),!Ae.length&&this.connected_&&this.disconnect_()},z.prototype.refresh=function(){var q=this.updateObservers_();q&&this.refresh()},z.prototype.updateObservers_=function(){var q=this.observers_.filter(function(Ae){return Ae.gatherActive(),Ae.hasActive()});return q.forEach(function(Ae){return Ae.broadcastActive()}),q.length>0},z.prototype.connect_=function(){!o||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),f?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},z.prototype.disconnect_=function(){!o||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},z.prototype.onTransitionEnd_=function(q){var Ae=q.propertyName,Ke=Ae===void 0?"":Ae,pe=h.some(function(We){return!!~Ke.indexOf(We)});pe&&this.refresh()},z.getInstance=function(){return this.instance_||(this.instance_=new z),this.instance_},z.instance_=null,z}(),A=function(z,q){for(var Ae=0,Ke=Object.keys(q);Ae<Ke.length;Ae++){var pe=Ke[Ae];Object.defineProperty(z,pe,{value:q[pe],enumerable:!1,writable:!1,configurable:!0})}return z},b=function(z){var q=z&&z.ownerDocument&&z.ownerDocument.defaultView;return q||l},p=J(0,0,0,0);function y(z){return parseFloat(z)||0}function m(z){for(var q=[],Ae=1;Ae<arguments.length;Ae++)q[Ae-1]=arguments[Ae];return q.reduce(function(Ke,pe){var We=z["border-"+pe+"-width"];return Ke+y(We)},0)}function F(z){for(var q=["top","right","bottom","left"],Ae={},Ke=0,pe=q;Ke<pe.length;Ke++){var We=pe[Ke],xe=z["padding-"+We];Ae[We]=y(xe)}return Ae}function R(z){var q=z.getBBox();return J(0,0,q.width,q.height)}function C(z){var q=z.clientWidth,Ae=z.clientHeight;if(!q&&!Ae)return p;var Ke=b(z).getComputedStyle(z),pe=F(Ke),We=pe.left+pe.right,xe=pe.top+pe.bottom,$e=y(Ke.width),Rt=y(Ke.height);if(Ke.boxSizing==="border-box"&&(Math.round($e+We)!==q&&($e-=m(Ke,"left","right")+We),Math.round(Rt+xe)!==Ae&&(Rt-=m(Ke,"top","bottom")+xe)),!N(z)){var Be=Math.round($e+We)-q,qe=Math.round(Rt+xe)-Ae;Math.abs(Be)!==1&&($e-=Be),Math.abs(qe)!==1&&(Rt-=qe)}return J(pe.left,pe.top,$e,Rt)}var B=function(){return typeof SVGGraphicsElement<"u"?function(z){return z instanceof b(z).SVGGraphicsElement}:function(z){return z instanceof b(z).SVGElement&&typeof z.getBBox=="function"}}();function N(z){return z===b(z).document.documentElement}function S(z){return o?B(z)?R(z):C(z):p}function X(z){var q=z.x,Ae=z.y,Ke=z.width,pe=z.height,We=typeof DOMRectReadOnly<"u"?DOMRectReadOnly:Object,xe=Object.create(We.prototype);return A(xe,{x:q,y:Ae,width:Ke,height:pe,top:Ae,right:q+Ke,bottom:pe+Ae,left:q}),xe}function J(z,q,Ae,Ke){return{x:z,y:q,width:Ae,height:Ke}}var E=function(){function z(q){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=J(0,0,0,0),this.target=q}return z.prototype.isActive=function(){var q=S(this.target);return this.contentRect_=q,q.width!==this.broadcastWidth||q.height!==this.broadcastHeight},z.prototype.broadcastRect=function(){var q=this.contentRect_;return this.broadcastWidth=q.width,this.broadcastHeight=q.height,q},z}(),v=function(){function z(q,Ae){var Ke=X(Ae);A(this,{target:q,contentRect:Ke})}return z}(),j=function(){function z(q,Ae,Ke){if(this.activeObservations_=[],this.observations_=new a,typeof q!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=q,this.controller_=Ae,this.callbackCtx_=Ke}return z.prototype.observe=function(q){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(q instanceof b(q).Element))throw new TypeError('parameter 1 is not of type "Element".');var Ae=this.observations_;Ae.has(q)||(Ae.set(q,new E(q)),this.controller_.addObserver(this),this.controller_.refresh())}},z.prototype.unobserve=function(q){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(q instanceof b(q).Element))throw new TypeError('parameter 1 is not of type "Element".');var Ae=this.observations_;Ae.has(q)&&(Ae.delete(q),Ae.size||this.controller_.removeObserver(this))}},z.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},z.prototype.gatherActive=function(){var q=this;this.clearActive(),this.observations_.forEach(function(Ae){Ae.isActive()&&q.activeObservations_.push(Ae)})},z.prototype.broadcastActive=function(){if(this.hasActive()){var q=this.callbackCtx_,Ae=this.activeObservations_.map(function(Ke){return new v(Ke.target,Ke.broadcastRect())});this.callback_.call(q,Ae,q),this.clearActive()}},z.prototype.clearActive=function(){this.activeObservations_.splice(0)},z.prototype.hasActive=function(){return this.activeObservations_.length>0},z}(),H=typeof WeakMap<"u"?new WeakMap:new a,K=function(){function z(q){if(!(this instanceof z))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var Ae=g.getInstance(),Ke=new j(q,Ae,this);H.set(this,Ke)}return z}();["observe","unobserve","disconnect"].forEach(function(z){K.prototype[z]=function(){var q;return(q=H.get(this))[z].apply(q,arguments)}});var Fe=function(){return typeof l.ResizeObserver<"u"?l.ResizeObserver:K}();r.default=Fe},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(73)),s=d=>{let c=d.connectivityState,u=d.logAttempt;const h=new o.default(u,1/5,6);c.observe({onEnterConnecting(){h.start()},onEnterDisconnected(){h.stop()},onEnterConnected(){h.stop()}})};r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(326)),s=d=>{let c=d.onInvalidTransition;return new o.default({init:"disconnected",transitions:[{name:"beginConnect",from:"disconnected",to:"connecting"},{name:"connect",from:"connecting",to:"connected"},{name:"fail",from:["connecting","connected"],to:"disconnected"},{name:"cancel",from:["connecting","connected"],to:"disconnected"},{name:"disconnect",from:["connecting","connected"],to:"disconnected"}],methods:{onInvalidTransition:c}})};r.default=s},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(4)),s=o(i(5)),d=o(i(73)),c=function(h){let f=h===void 0?{}:h,g=f.asynchronous;return(g===void 0?!1:g)?function(b,p){let y=p===void 0?{}:p,m=y.frequency,F=m===void 0?10:m,R=y.timeout,C=R===void 0?2e3:R;return new a((B,N)=>{let S;const X=new d.default((0,s.default)(l.default.mark(function J(){var E,v,j;return l.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:return v=function(){return v=(0,s.default)(l.default.mark(function z(){return l.default.wrap(function(Ae){for(;;)switch(Ae.prev=Ae.next){case 0:return Ae.prev=0,Ae.next=3,b();case 3:return Ae.abrupt("return",Ae.sent);case 6:return Ae.prev=6,Ae.t0=Ae.catch(0),Ae.abrupt("return",!1);case 9:case"end":return Ae.stop()}},z,null,[[0,6]])})),v.apply(this,arguments)},E=function(){return v.apply(this,arguments)},K.next=4,E();case 4:j=K.sent,j&&(clearTimeout(S),X.stop(),B());case 6:case"end":return K.stop()}},J)})),F);S=setTimeout(()=>{X.stop(),N(new Error("TIMEOUT"))},C),X.start()})}:function(b,p){let y=p===void 0?{}:p,m=y.frequency,F=m===void 0?60:m,R=y.timeout,C=R===void 0?2e3:R;return new a((B,N)=>{let S;const X=new d.default(()=>{function J(){try{return b()}catch{return!1}}J()&&(clearTimeout(S),X.stop(),B())},F);S=setTimeout(()=>{X.stop(),N(new Error("TIMEOUT"))},C),X.start()})}};r.default=c}).call(this,i(2))},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{let l=o.connectivityState,s=o.onWarning,d=o.onTimeout,c=o.warningMs,u=o.timeoutMs;const h=[],f=()=>{h.forEach(g=>clearTimeout(g))};l.observe({onEnterConnecting(){h.push(setTimeout(s,c),setTimeout(d,u))},onEnterConnected:f,onEnterDisconnected:f})};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(10)),l=a(i(14)),s=a(i(8));const d=(0,l.default)();var c=u=>String(u.code)==="404"?d(s.default.STREAM_NOT_FOUND,new Error("stream not found"),o.default.UNABLE_TO_SUBSCRIBE):String(u.code)==="409"&&u.message==="streamLimitExceeded"?d(s.default.STREAM_LIMIT_EXCEEDED,new Error("The limit for concurrent streams in the session has been reached"),o.default.STREAM_LIMIT_EXCEEDED):String(u.code)==="405"&&u.message==="IncompatibleEncryptionSettings"?d(s.default.UNABLE_TO_SUBSCRIBE,new Error("Tried to subscribe to an encrypted stream without enabling encryption"),o.default.UNABLE_TO_SUBSCRIBE):String(u.code)==="500"&&u.message==="Not connected."?d(s.default.UNABLE_TO_SUBSCRIBE,new Error("Tried to subscribe to a stream while disconnected."),o.default.UNABLE_TO_SUBSCRIBE):d(s.default.UNABLE_TO_SUBSCRIBE,new Error(`subscriberCreate failed with unexpected code ${u.code}: ${u.message}`),o.default.UNEXPECTED_SERVER_RESPONSE);r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(29)),l=a(i(50)),s=a(i(109)),d=a(i(17));const c=(0,d.default)();var u=h=>{let f=h.subscriber,g=h.audioLevelSampler,A=0,b=0;const p=new s.default(()=>{const C=f.listenerCount(o.default.AUDIO_LEVEL_UPDATED);if((0,l.default)()-b>1e4&&C===0){p.stop();return}A=g.sample(),C>0&&f.dispatchEvent(new c.AudioLevelUpdatedEvent(A))}),y=()=>p.start(),m=()=>p.stop(),F=()=>{f.on("audioLevelUpdated:added",y),f.once(o.default.SUBSCRIBER_DESTROYED,m)},R=()=>{f.off("audioLevelUpdated:added",y),f.off(o.default.SUBSCRIBER_DESTROYED,m)};return Object.defineProperty(f,"loudness",{get(){return p.start(),b=(0,l.default)(),A},set(){throw new TypeError("Cannot set readonly property loudness")},configurable:!0}),f.listenerCount(o.default.AUDIO_LEVEL_UPDATED)&&p.start(),F(),{destroy(){g.destroy(),p.stop(),R(),f=void 0}}};r.default=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),s=()=>["Chrome","Opera","Safari"].indexOf(o.default.name)>-1;r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(1)),l=a(i(267)),s=a(i(142)),d=a(i(703)),c=a(i(328)),u=a(i(141)),h=a(i(704));const f=(0,u.default)(),g=(0,o.default)("Subscriber");var b=function(y,m){m===void 0&&(m={});const F=m.hasGetSynchronizationSupport;if(y){if((0,c.default)()){let R;try{R=m.audioContext||f()}catch(C){g.warn("Failed to get AudioContext()",C)}if((0,h.default)(R))return new s.default(R)}if((0,d.default)({hasGetSynchronizationSupport:F}))return new l.default(y.getSynchronizationSources)}};r.default=b},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3));const l=!1,s=()=>window.RTCRtpReceiver&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype;var c=function(h){h===void 0&&(h={});const f=h.hasGetSynchronizationSupport||s;return(typeof h.isEnabled=="boolean"?h.isEnabled:l)&&f()&&!o.default.isFirefox};r.default=c},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>(typeof window!==void 0?window:yr).AudioContext&&o instanceof(typeof window!==void 0?window:yr).AudioContext||(typeof window!==void 0?window:yr).webkitAudioContext&&o instanceof(typeof window!==void 0?window:yr).webkitAudioContext;r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(41)),l=a(i(7));function s(d){let c=!1;const u=f=>{const g=["auto","on"].indexOf(this.getDisplayMode())>-1;l.default.removeClass(f,["OT_audio-blocked","OT_active"].join(" ")),g&&(c&&l.default.addClass(f,"OT_audio-blocked"),l.default.addClass(f,"OT_active"))};this.setAudioBlocked=f=>{c=f,u(this.domElement)},(0,o.default)(this,{mode:d.mode||"auto",nodeName:"div",htmlAttributes:{className:"OT_audio-blocked-indicator"}});const h=this.setDisplayMode.bind(this);this.setDisplayMode=f=>{h(f),u(this.domElement)}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(41)),l=a(i(7));function s(d){let c=!1;const u=f=>{const g=["auto","on"].indexOf(this.getDisplayMode())>-1;l.default.removeClass(f,["OT_active"].join(" ")),!(!g||!c)&&l.default.addClass(f,"OT_active")};this.setVideoUnsupported=f=>{c=f,u(this.domElement)},(0,o.default)(this,{mode:d.mode||"auto",nodeName:"div",htmlAttributes:{className:"OT_video-unsupported"},htmlContent:'<div class="OT_video-unsupported-bar"></div><div class="OT_video-unsupported-img"></div><span class="OT_video-unsupported-text">Video format not supported</span>'});const h=this.setDisplayMode.bind(this);this.setDisplayMode=f=>{h(f),u(this.domElement)}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(9)),l=a(i(62)),s=a(i(40)),d=a(i(77)),c=a(i(164)),h=function(g,A){A===void 0&&(A=5e3);let b,p=!1;const y={},m=function(C){return C===void 0&&(C=[]),(0,l.default)(C,B=>d.default.isVideoInboundRtpStat(B))},F=()=>{p||g((R,C)=>{if(!p){if(!R){const B=m(C);B?(0,o.default)(y,(0,s.default)(B,["timestamp","framesDecoded"])):y.timestamp||(0,o.default)(y,{timestamp:Date.now(),framesDecoded:0})}b=setTimeout(F,A)}})};return F(),{getFrameRateFromStat(R){return(0,c.default)({currentStatFrames:R.framesDecoded,currentTimestamp:R.timestamp,prevStatFrames:y.framesDecoded,prevTimestamp:y.timestamp})},destroy(){p=!0,b&&(clearTimeout(b),b=null)}}};r.default=h},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(176)),d=a(i(1)),c=a(i(331)),u=a(i(709));const h=(0,d.default)("Subscriber"),f="MANTIS",g="P2P";var b=function(y,m){m===void 0&&(m={});const F=m.updateTrackOnStream||c.default,R=m.createAudioTrackHolder||u.default,C=y;let B,N,S;const X=()=>{var v;(v=B)==null||v.destroy(),B=null,S&&(S.srcObject=null,S=null),N=null},J=function(){var v=(0,l.default)(o.default.mark(function j(H){var K,Fe,z,q,Ae,Ke;return o.default.wrap(function(We){for(;;)switch(We.prev=We.next){case 0:if(Fe=(K=C[H])==null?void 0:K.getAudioTracks(),z=Fe[0],z){We.next=7;break}throw q="Connector not set as no audio track is present.",Ae=new Error(q),h.error(`setAudioMediaProcessorConnector: ${q}`),B=null,Ae;case 7:return We.prev=7,S=R(z),We.next=11,B.setTrack(z);case 11:Ke=We.sent,N=z,F(C[H],z,Ke),We.next=20;break;case 16:throw We.prev=16,We.t0=We.catch(7),X(),We.t0;case 20:case"end":return We.stop()}},j,null,[[7,16]])}));return function(H){return v.apply(this,arguments)}}(),E=v=>{try{const j=C[v].getAudioTracks(),H=j[0];F(C[v],H,N)}catch(j){throw Error(`setAudioMediaProcessorConnector: Error resetting track: ${j.message}`)}};return{get audioMediaProcessorConnector(){return B},initializeConnector(v){B=new s.default(v)},setAudioMediaProcessorConnector(v){return(0,l.default)(o.default.mark(function j(){return o.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:return K.next=2,J(v);case 2:case"end":return K.stop()}},j)}))()},applyAudioConnectorOnRoutedToRelayedTransition(){var v=this;return(0,l.default)(o.default.mark(function j(){return o.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:if(v.resetAudioStreamAndTrack(f),B){K.next=3;break}return K.abrupt("return");case 3:return K.next=5,J(g);case 5:case"end":return K.stop()}},j)}))()},applyAudioConnectorOnRelayedToRoutedTransition(){return(0,l.default)(o.default.mark(function v(){return o.default.wrap(function(H){for(;;)switch(H.prev=H.next){case 0:if(B){H.next=2;break}return H.abrupt("return");case 2:return H.next=4,J(f);case 4:case"end":return H.stop()}},v)}))()},clearAudioMediaProcessorConnector(v){N&&(E(v),X())},resetAudioStreamAndTrack(v){N&&(E(v),N=null)}}};r.default=b},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=function(l,s){s===void 0&&(s={});const d=s.document||document,c=s.MediaStream||(typeof window!==void 0?window:yr).MediaStream,u=d.createElement("video"),h=new c([l]);return u.srcObject=h,u};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=i(711),d=a(i(17)),c=a(i(18));const u=(0,d.default)(),h=(m,F)=>{const R=(m.timestamp-F.timestamp)/1e3;return(m.bytesReceived-F.bytesReceived)/R*8},f=(m,F)=>{const R=m.jitterBufferEmittedCount-F.jitterBufferEmittedCount;return(m.jitterBufferDelay-F.jitterBufferDelay)/R},g=m=>m.packetsLost/(m.packetsLost+m.packetsReceived)*100,A=m=>(Object.keys(m).forEach(F=>{m[F]===void 0&&delete m[F]}),m),b=m=>{const F=m.mimeType.split("/"),R=F[0],C=F[1].toLowerCase();if(R==="video")return C};var y=()=>({startMonitoringInterval(m){const F=m.getStats,R=m.subscriber,C=m.getCurrentPeerConnection,B=m.logging,N=m.qosQualityScores,S=m.rtcScore,X=S===void 0?s.score:S,J=m.samplingInterval,E=J===void 0?2e3:J;let v,j,H,K,Fe;const z=function(){var q=(0,l.default)(o.default.mark(function Ae(Ke,pe){var We,xe,$e,Rt,Be,qe,at,Bt;return o.default.wrap(function(Ne){for(;;)switch(Ne.prev=Ne.next){case 0:if(!Ke){Ne.next=4;break}return clearInterval(H),B.warn(`getStats failed with "${Ke}"`),Ne.abrupt("return");case 4:return Ne.next=6,C();case 6:We=Ne.sent,xe=c.default.hasSendDtx(We.remoteDescription().sdp),$e=c.default.hasOpusFec(We.remoteDescription().sdp),Rt={audio:{packetLoss:void 0,bitrate:void 0,roundTripTime:void 0,bufferDelay:void 0,fec:$e,dtx:xe},video:{packetLoss:void 0,bitrate:void 0,roundTripTime:void 0,bufferDelay:void 0,codec:void 0,width:void 0,height:void 0,expectedWidth:void 0,expectedHeight:void 0,frameRate:void 0,expectedFrameRate:void 0}},pe.forEach(Je=>{if(Je.type==="codec"){const Ye=b(Je);Ye&&(Rt.video.codec=Ye)}if(Je.kind==="audio"&&(Je.type==="remote-outbound-rtp"&&(Rt.audio.roundTripTime=Je.totalRoundTripTime),Je.type==="inbound-rtp")){const Ye=Je;Rt.audio.packetLoss=g(Ye),j&&(Rt.audio.bitrate=h(Ye,j),Rt.audio.bufferDelay=f(Ye,j)),j=Ye}if(Je.kind==="video"&&(Je.type==="remote-outbound-rtp"&&(Rt.video.roundTripTime=Je.totalRoundTripTime),Je.type==="inbound-rtp")){var ve;const Ye=Je;Rt.video.packetLoss=g(Ye),v&&(Rt.video.bitrate=h(Ye,v),Rt.video.bufferDelay=f(Ye,v));const it=(ve=R.stream)==null?void 0:ve.videoDimensions;it&&(Rt.video.width=it==null?void 0:it.width,Rt.video.height=it==null?void 0:it.height),(R==null?void 0:R._preferredResolution)&&(Rt.video.expectedWidth=R==null?void 0:R._preferredResolution.width,Rt.video.expectedHeight=R==null?void 0:R._preferredResolution.height),Rt.video.frameRate=Ye.framesPerSecond,Rt.video.expectedFrameRate=R==null?void 0:R._preferredFrameRate,v=Ye}}),Rt.video=A(Rt.video),Rt.audio=A(Rt.audio),Be=X(Rt),qe={},at=Number.isNaN(Be.audio)?void 0:Be.audio,Bt=Number.isNaN(Be.video)?void 0:Be.video,N&&(N.audioQualityScore=at,N.videoQualityScore=Bt),Be.audio&&R.stream.hasAudio&&(qe.audioQualityScore=Be.audio),Be.video&&R.stream.hasVideo&&(qe.videoQualityScore=Be.video),(Fe!==Bt||K!==at)&&Object.keys(qe).length>0&&R.dispatchEvent(new u.QualityScoreChangedEvent(qe)),K=at,Fe=Bt;case 23:case"end":return Ne.stop()}},Ae)}));return function(Ke,pe){return q.apply(this,arguments)}}();H=setInterval(()=>{F(z)},E),R.on("destroyed",()=>{clearInterval(H)})}});r.default=y},function(n,r){function i(l){const s={},{audio:d,video:c}=a(l);if(d){const u=20+d.bufferDelay+d.roundTripTime/2,h=d.packetLoss,f=100,g=d.dtx?8:d.bitrate?o(55-4.6*Math.log(d.bitrate),0,30):6,A=d.fec?20:10,b=g+(100-g)*(h/(h+A)),p=u*.03+(u>150?.1*(u-150):0),y=o(f-b-p,0,100),m=1+.035*y+y*(y-60)*(100-y)*7/1e6;s.audio=o(Math.round(m*100)/100,1,5)}if(c){const u=c.expectedWidth*c.expectedHeight,h=c.codec==="vp9"?1.2:1,f=c.bufferDelay+c.roundTripTime/2;if(c.frameRate!==0){const g=h*c.bitrate/u/c.frameRate,b=o(.56*Math.log(g)+5.36,1,5)-1.9*Math.log(c.expectedFrameRate/c.frameRate)-f*.002;s.video=o(Math.round(b*100)/100,1,5)}else s.video=1}return s}function a(l){return{audio:l.audio?{packetLoss:0,bufferDelay:50,roundTripTime:50,fec:!0,...l.audio}:void 0,video:l.video?{packetLoss:0,bufferDelay:0,roundTripTime:50,fec:!1,expectedHeight:l.video.height||640,expectedWidth:l.video.width||480,frameRate:l.video.expectedFrameRate||30,expectedFrameRate:l.video.frameRate||30,...l.video}:void 0}}function o(l,s,d){return Math.max(s,Math.min(l,d))}n.exports={score:i}},function(n,r,i){var a=i(713),o=i(275),l=a(function(s,d,c){return s+(c?" ":"")+o(d)});n.exports=l},function(n,r,i){var a=i(714),o=i(715),l=i(718),s="['’]",d=RegExp(s,"g");function c(u){return function(h){return a(l(o(h).replace(d,"")),u,"")}}n.exports=c},function(n,r){function i(a,o,l,s){var d=-1,c=a==null?0:a.length;for(s&&c&&(l=a[++d]);++d<c;)l=o(l,a[d],d,a);return l}n.exports=i},function(n,r,i){var a=i(716),o=i(60),l=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,s="\\u0300-\\u036f",d="\\ufe20-\\ufe2f",c="\\u20d0-\\u20ff",u=s+d+c,h="["+u+"]",f=RegExp(h,"g");function g(A){return A=o(A),A&&A.replace(l,a).replace(f,"")}n.exports=g},function(n,r,i){var a=i(717),o={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},l=a(o);n.exports=l},function(n,r){function i(a){return function(o){return a==null?void 0:a[o]}}n.exports=i},function(n,r,i){var a=i(719),o=i(720),l=i(60),s=i(721);function d(c,u,h){return c=l(c),u=h?void 0:u,u===void 0?o(c)?s(c):a(c):c.match(u)||[]}n.exports=d},function(n,r){var i=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function a(o){return o.match(i)||[]}n.exports=a},function(n,r){var i=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function a(o){return i.test(o)}n.exports=a},function(n,r){var i="\\ud800-\\udfff",a="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",l="\\u20d0-\\u20ff",s=a+o+l,d="\\u2700-\\u27bf",c="a-z\\xdf-\\xf6\\xf8-\\xff",u="\\xac\\xb1\\xd7\\xf7",h="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",f="\\u2000-\\u206f",g=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",A="A-Z\\xc0-\\xd6\\xd8-\\xde",b="\\ufe0e\\ufe0f",p=u+h+f+g,y="['’]",m="["+p+"]",F="["+s+"]",R="\\d+",C="["+d+"]",B="["+c+"]",N="[^"+i+p+R+d+c+A+"]",S="\\ud83c[\\udffb-\\udfff]",X="(?:"+F+"|"+S+")",J="[^"+i+"]",E="(?:\\ud83c[\\udde6-\\uddff]){2}",v="[\\ud800-\\udbff][\\udc00-\\udfff]",j="["+A+"]",H="\\u200d",K="(?:"+B+"|"+N+")",Fe="(?:"+j+"|"+N+")",z="(?:"+y+"(?:d|ll|m|re|s|t|ve))?",q="(?:"+y+"(?:D|LL|M|RE|S|T|VE))?",Ae=X+"?",Ke="["+b+"]?",pe="(?:"+H+"(?:"+[J,E,v].join("|")+")"+Ke+Ae+")*",We="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",xe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",$e=Ke+Ae+pe,Rt="(?:"+[C,E,v].join("|")+")"+$e,Be=RegExp([j+"?"+B+"+"+z+"(?="+[m,j,"$"].join("|")+")",Fe+"+"+q+"(?="+[m,j+K,"$"].join("|")+")",j+"?"+K+"+"+z,j+"+"+q,xe,We,R,Rt].join("|"),"g");function qe(at){return at.match(Be)||[]}n.exports=qe},function(n,r,i){(function(a,o){var l=i(0);r.__esModule=!0,r.WavExporterTransformer=r.VonageNoiseSuppression=r.NoiseSuppressionTransformer=void 0,r.createVonageNoiseSuppression=ua;var s=l(i(4)),d=l(i(178)),c=l(i(31)),u=l(i(5)),h=l(i(28)),f=l(i(161)),g=function(dt){function Ft(){var le=this||self;return delete dt.prototype.__magic__,le}if(typeof globalThis=="object")return globalThis;if(this)return Ft();dt.defineProperty(dt.prototype,"__magic__",{configurable:!0,get:Ft});var Se=__magic__;return Se}(Object);function A(dt,Ft){var Se=typeof Symbol<"u"&&dt[Symbol.iterator]||dt["@@iterator"];if(Se)return(Se=Se.call(dt)).next.bind(Se);if(Array.isArray(dt)||(Se=b(dt))||Ft){Se&&(dt=Se);var le=0;return function(){return le>=dt.length?{done:!0}:{done:!1,value:dt[le++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function b(dt,Ft){if(dt){if(typeof dt=="string")return p(dt,Ft);var Se=Object.prototype.toString.call(dt).slice(8,-1);if(Se==="Object"&&dt.constructor&&(Se=dt.constructor.name),Se==="Map"||Se==="Set")return Array.from(dt);if(Se==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Se))return p(dt,Ft)}}function p(dt,Ft){(Ft==null||Ft>dt.length)&&(Ft=dt.length);for(var Se=0,le=new Array(Ft);Se<Ft;Se++)le[Se]=dt[Se];return le}let y;{var m=(()=>{var dt=location.href;return function(Ft){Ft===void 0&&(Ft={});var Se=Ft,le,Le;Se.ready=new a((T,Y)=>{le=T,Le=Y});var Xe=Object.assign({},Se),Oe="./this.program",mt=(T,Y)=>{throw Y},Wt=typeof window=="object",Mt=typeof importScripts=="function";typeof o=="object"&&typeof o.versions=="object"&&o.versions.node;var pn="";function on(T){return Se.locateFile?Se.locateFile(T,pn):pn+T}var gn,qn,cr;(Wt||Mt)&&(Mt?pn=self.location.href:typeof document<"u"&&document.currentScript&&(pn=document.currentScript.src),dt&&(pn=dt),pn.indexOf("blob:")!==0?pn=pn.substr(0,pn.replace(/[?#].*/,"").lastIndexOf("/")+1):pn="",gn=T=>{var Y=new XMLHttpRequest;return Y.open("GET",T,!1),Y.send(null),Y.responseText},Mt&&(cr=T=>{var Y=new XMLHttpRequest;return Y.open("GET",T,!1),Y.responseType="arraybuffer",Y.send(null),new Uint8Array(Y.response)}),qn=(T,Y,ne)=>{var me=new XMLHttpRequest;me.open("GET",T,!0),me.responseType="arraybuffer",me.onload=()=>{if(me.status==200||me.status==0&&me.response){Y(me.response);return}ne()},me.onerror=ne,me.send(null)});var Gn=Se.print||console.log.bind(console),Or=Se.printErr||console.error.bind(console);Object.assign(Se,Xe),Xe=null,Se.arguments&&Se.arguments,Se.thisProgram&&(Oe=Se.thisProgram),Se.quit&&(mt=Se.quit);var un;Se.wasmBinary&&(un=Se.wasmBinary),typeof WebAssembly!="object"&&Es("no native wasm support detected");var Ar,mo=!1;function ds(T,Y){T||Es(Y)}var Kr,Sn,Il,bl,to,Ri,Mo,ed;function Ds(){var T=Ar.buffer;Se.HEAP8=Kr=new Int8Array(T),Se.HEAP16=Il=new Int16Array(T),Se.HEAPU8=Sn=new Uint8Array(T),Se.HEAPU16=bl=new Uint16Array(T),Se.HEAP32=to=new Int32Array(T),Se.HEAPU32=Ri=new Uint32Array(T),Se.HEAPF32=Mo=new Float32Array(T),Se.HEAPF64=ed=new Float64Array(T)}var sa=[],no=[],Gd=[],cc=[];function pu(){if(Se.preRun)for(typeof Se.preRun=="function"&&(Se.preRun=[Se.preRun]);Se.preRun.length;)Hc(Se.preRun.shift());Jc(sa)}function Ti(){!Se.noFSInit&&!ze.init.initialized&&ze.init(),ze.ignorePermissions=!1,Jc(no)}function Ec(){kA(),Jc(Gd),ze.quit()}function xl(){if(Se.postRun)for(typeof Se.postRun=="function"&&(Se.postRun=[Se.postRun]);Se.postRun.length;)td(Se.postRun.shift());Jc(cc)}function Hc(T){sa.unshift(T)}function Sc(T){no.unshift(T)}function td(T){cc.unshift(T)}var Vs=0,qd=null;function xd(T){return T}function Jd(T){Vs++,Se.monitorRunDependencies&&Se.monitorRunDependencies(Vs)}function xc(T){if(Vs--,Se.monitorRunDependencies&&Se.monitorRunDependencies(Vs),Vs==0&&qd){var Y=qd;qd=null,Y()}}function Es(T){Se.onAbort&&Se.onAbort(T),T="Aborted("+T+")",Or(T),mo=!0,T+=". Build with -sASSERTIONS for more info.";var Y=new WebAssembly.RuntimeError(T);throw Le(Y),Y}var ec="data:application/octet-stream;base64,",Ms=T=>T.startsWith(ec),Cd;Se.locateFile?(Cd="main-bin-mono.wasm",Ms(Cd)||(Cd=on(Cd))):Cd=new URL("main-bin-mono.wasm",location.href).href;function Wc(T){if(T==Cd&&un)return new Uint8Array(un);if(cr)return cr(T);throw"both async and sync fetching of the wasm failed"}function Nc(T){return!un&&(Wt||Mt)&&typeof fetch=="function"?fetch(T,{credentials:"same-origin"}).then(Y=>{if(!Y.ok)throw"failed to load wasm binary file at '"+T+"'";return Y.arrayBuffer()}).catch(()=>Wc(T)):a.resolve().then(()=>Wc(T))}function cs(T,Y,ne){return Nc(T).then(me=>WebAssembly.instantiate(me,Y)).then(me=>me).then(ne,me=>{Or(`failed to asynchronously prepare wasm: ${me}`),Es(me)})}function uc(T,Y,ne,me){return!T&&typeof WebAssembly.instantiateStreaming=="function"&&!Ms(Y)&&typeof fetch=="function"?fetch(Y,{credentials:"same-origin"}).then(tt=>{var yt=WebAssembly.instantiateStreaming(tt,ne);return yt.then(me,function(Nt){return Or(`wasm streaming compile failed: ${Nt}`),Or("falling back to ArrayBuffer instantiation"),cs(Y,ne,me)})}):cs(Y,ne,me)}function fc(){var T={a:Jg};function Y(me,tt){return Ho=me.exports,Ar=Ho.ua,Ds(),Bh=Ho.wa,Sc(Ho.va),xc(),Ho}Jd();function ne(me){Y(me.instance)}if(Se.instantiateWasm)try{return Se.instantiateWasm(T,Y)}catch(me){Or(`Module.instantiateWasm callback failed with error: ${me}`),Le(me)}return uc(un,Cd,T,ne).catch(Le),{}}var Pa,go;function Gc(T,Y,ne,me){const tt=Bh.length,yt=new Uint8Array(Sn.slice(T+Y,T+ne));try{var Nt=new WebAssembly.Module(yt),Ht=new WebAssembly.Instance(Nt,{env:{memory:Ar}});for(var xn in Ht.exports){var ar=Ht.exports[xn];addFunction(ar)}return tt<Bh.length?tt:me}catch(ei){return console.log(ei),me}}function tl(T){this.name="ExitStatus",this.message=`Program terminated with exit(${T})`,this.status=T}var Jc=T=>{for(;T.length>0;)T.shift()(Se)},Ls=Se.noExitRuntime||!1,Wi=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,da=(T,Y,ne)=>{for(var me=Y+ne,tt=Y;T[tt]&&!(tt>=me);)++tt;if(tt-Y>16&&T.buffer&&Wi)return Wi.decode(T.subarray(Y,tt));for(var yt="";Y<tt;){var Nt=T[Y++];if(!(Nt&128)){yt+=String.fromCharCode(Nt);continue}var Ht=T[Y++]&63;if((Nt&224)==192){yt+=String.fromCharCode((Nt&31)<<6|Ht);continue}var xn=T[Y++]&63;if((Nt&240)==224?Nt=(Nt&15)<<12|Ht<<6|xn:Nt=(Nt&7)<<18|Ht<<12|xn<<6|T[Y++]&63,Nt<65536)yt+=String.fromCharCode(Nt);else{var ar=Nt-65536;yt+=String.fromCharCode(55296|ar>>10,56320|ar&1023)}}return yt},Po=(T,Y)=>T?da(Sn,T,Y):"",mu=(T,Y,ne,me)=>{Es(`Assertion failed: ${Po(T)}, at: `+[Y?Po(Y):"unknown filename",ne,me?Po(me):"unknown function"])},Cl=[],Rc=T=>{var Y=new iu(T);return Y.get_caught()||Y.set_caught(!0),Y.set_rethrown(!1),Cl.push(Y),MA(Y.excPtr),Y.get_exception_ptr()},Hs=0,Ku=()=>{gs(0,0);var T=Cl.pop();DA(T.excPtr),Hs=0};function iu(T){this.excPtr=T,this.ptr=T-24,this.set_type=function(Y){Ri[this.ptr+4>>2]=Y},this.get_type=function(){return Ri[this.ptr+4>>2]},this.set_destructor=function(Y){Ri[this.ptr+8>>2]=Y},this.get_destructor=function(){return Ri[this.ptr+8>>2]},this.set_caught=function(Y){Y=Y?1:0,Kr[this.ptr+12>>0]=Y},this.get_caught=function(){return Kr[this.ptr+12>>0]!=0},this.set_rethrown=function(Y){Y=Y?1:0,Kr[this.ptr+13>>0]=Y},this.get_rethrown=function(){return Kr[this.ptr+13>>0]!=0},this.init=function(Y,ne){this.set_adjusted_ptr(0),this.set_type(Y),this.set_destructor(ne)},this.set_adjusted_ptr=function(Y){Ri[this.ptr+16>>2]=Y},this.get_adjusted_ptr=function(){return Ri[this.ptr+16>>2]},this.get_exception_ptr=function(){var Y=LA(this.get_type());if(Y)return Ri[this.excPtr>>2];var ne=this.get_adjusted_ptr();return ne!==0?ne:this.excPtr}}var bu=T=>{throw Hs||(Hs=T),Hs},Tc=T=>{var Y=Hs;if(!Y)return eh(0),0;var ne=new iu(Y);ne.set_adjusted_ptr(Y);var me=ne.get_type();if(!me)return eh(0),Y;for(var tt in T){var yt=T[tt];if(yt===0||yt===me)break;var Nt=ne.ptr+16;if(Th(yt,me,Nt))return eh(yt),Y}return eh(me),Y},vd=()=>Tc([]),Oc=T=>Tc([T]),Lo=()=>{var T=Cl.pop();T||Es("no exception to throw");var Y=T.excPtr;throw T.get_rethrown()||(Cl.push(T),T.set_rethrown(!0),T.set_caught(!1)),Hs=Y,Hs},Gu=(T,Y,ne)=>{var me=new iu(T);throw me.init(Y,ne),Hs=T,Hs},Fo={isAbs:T=>T.charAt(0)==="/",splitPath:T=>{var Y=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return Y.exec(T).slice(1)},normalizeArray:(T,Y)=>{for(var ne=0,me=T.length-1;me>=0;me--){var tt=T[me];tt==="."?T.splice(me,1):tt===".."?(T.splice(me,1),ne++):ne&&(T.splice(me,1),ne--)}if(Y)for(;ne;ne--)T.unshift("..");return T},normalize:T=>{var Y=Fo.isAbs(T),ne=T.substr(-1)==="/";return T=Fo.normalizeArray(T.split("/").filter(me=>!!me),!Y).join("/"),!T&&!Y&&(T="."),T&&ne&&(T+="/"),(Y?"/":"")+T},dirname:T=>{var Y=Fo.splitPath(T),ne=Y[0],me=Y[1];return!ne&&!me?".":(me&&(me=me.substr(0,me.length-1)),ne+me)},basename:T=>{if(T==="/")return"/";T=Fo.normalize(T),T=T.replace(/\/$/,"");var Y=T.lastIndexOf("/");return Y===-1?T:T.substr(Y+1)},join:function(){var Y=Array.prototype.slice.call(arguments);return Fo.normalize(Y.join("/"))},join2:(T,Y)=>Fo.normalize(T+"/"+Y)},xs=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return T=>crypto.getRandomValues(T);Es("initRandomDevice")},Xc=T=>(Xc=xs())(T),bs={resolve:function(){for(var Y="",ne=!1,me=arguments.length-1;me>=-1&&!ne;me--){var tt=me>=0?arguments[me]:ze.cwd();if(typeof tt!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!tt)return"";Y=tt+"/"+Y,ne=Fo.isAbs(tt)}return Y=Fo.normalizeArray(Y.split("/").filter(yt=>!!yt),!ne).join("/"),(ne?"/":"")+Y||"."},relative:(T,Y)=>{T=bs.resolve(T).substr(1),Y=bs.resolve(Y).substr(1);function ne(ar){for(var ei=0;ei<ar.length&&ar[ei]==="";ei++);for(var _i=ar.length-1;_i>=0&&ar[_i]==="";_i--);return ei>_i?[]:ar.slice(ei,_i-ei+1)}for(var me=ne(T.split("/")),tt=ne(Y.split("/")),yt=Math.min(me.length,tt.length),Nt=yt,Ht=0;Ht<yt;Ht++)if(me[Ht]!==tt[Ht]){Nt=Ht;break}for(var xn=[],Ht=Nt;Ht<me.length;Ht++)xn.push("..");return xn=xn.concat(tt.slice(Nt)),xn.join("/")}},hc=[],Td=T=>{for(var Y=0,ne=0;ne<T.length;++ne){var me=T.charCodeAt(ne);me<=127?Y++:me<=2047?Y+=2:me>=55296&&me<=57343?(Y+=4,++ne):Y+=3}return Y},au=(T,Y,ne,me)=>{if(!(me>0))return 0;for(var tt=ne,yt=ne+me-1,Nt=0;Nt<T.length;++Nt){var Ht=T.charCodeAt(Nt);if(Ht>=55296&&Ht<=57343){var xn=T.charCodeAt(++Nt);Ht=65536+((Ht&1023)<<10)|xn&1023}if(Ht<=127){if(ne>=yt)break;Y[ne++]=Ht}else if(Ht<=2047){if(ne+1>=yt)break;Y[ne++]=192|Ht>>6,Y[ne++]=128|Ht&63}else if(Ht<=65535){if(ne+2>=yt)break;Y[ne++]=224|Ht>>12,Y[ne++]=128|Ht>>6&63,Y[ne++]=128|Ht&63}else{if(ne+3>=yt)break;Y[ne++]=240|Ht>>18,Y[ne++]=128|Ht>>12&63,Y[ne++]=128|Ht>>6&63,Y[ne++]=128|Ht&63}}return Y[ne]=0,ne-tt};function il(T,Y,ne){var me=Td(T)+1,tt=new Array(me),yt=au(T,tt,0,tt.length);return Y&&(tt.length=yt),tt}var ql=()=>{if(!hc.length){var T=null;if(typeof window<"u"&&typeof window.prompt=="function"?(T=window.prompt("Input: "),T!==null&&(T+=` `)):typeof readline=="function"&&(T=readline(),T!==null&&(T+=` `)),!T)return null;hc=il(T,!0)}return hc.shift()},ys={ttys:[],init(){},shutdown(){},register(T,Y){ys.ttys[T]={input:[],output:[],ops:Y},ze.registerDevice(T,ys.stream_ops)},stream_ops:{open(T){var Y=ys.ttys[T.node.rdev];if(!Y)throw new ze.ErrnoError(43);T.tty=Y,T.seekable=!1},close(T){T.tty.ops.fsync(T.tty)},fsync(T){T.tty.ops.fsync(T.tty)},read(T,Y,ne,me,tt){if(!T.tty||!T.tty.ops.get_char)throw new ze.ErrnoError(60);for(var yt=0,Nt=0;Nt<me;Nt++){var Ht;try{Ht=T.tty.ops.get_char(T.tty)}catch{throw new ze.ErrnoError(29)}if(Ht===void 0&&yt===0)throw new ze.ErrnoError(6);if(Ht==null)break;yt++,Y[ne+Nt]=Ht}return yt&&(T.node.timestamp=Date.now()),yt},write(T,Y,ne,me,tt){if(!T.tty||!T.tty.ops.put_char)throw new ze.ErrnoError(60);try{for(var yt=0;yt<me;yt++)T.tty.ops.put_char(T.tty,Y[ne+yt])}catch{throw new ze.ErrnoError(29)}return me&&(T.node.timestamp=Date.now()),yt}},default_tty_ops:{get_char(T){return ql()},put_char(T,Y){Y===null||Y===10?(Gn(da(T.output,0)),T.output=[]):Y!=0&&T.output.push(Y)},fsync(T){T.output&&T.output.length>0&&(Gn(da(T.output,0)),T.output=[])},ioctl_tcgets(T){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(T,Y,ne){return 0},ioctl_tiocgwinsz(T){return[24,80]}},default_tty1_ops:{put_char(T,Y){Y===null||Y===10?(Or(da(T.output,0)),T.output=[]):Y!=0&&T.output.push(Y)},fsync(T){T.output&&T.output.length>0&&(Or(da(T.output,0)),T.output=[])}}},Ju=(T,Y)=>(Sn.fill(0,T,T+Y),T),Bu=(T,Y)=>Math.ceil(T/Y)*Y,Ga=T=>{T=Bu(T,65536);var Y=YA(65536,T);return Y?Ju(Y,T):0},Ea={ops_table:null,mount(T){return Ea.createNode(null,"/",16895,0)},createNode(T,Y,ne,me){if(ze.isBlkdev(ne)||ze.isFIFO(ne))throw new ze.ErrnoError(63);Ea.ops_table||(Ea.ops_table={dir:{node:{getattr:Ea.node_ops.getattr,setattr:Ea.node_ops.setattr,lookup:Ea.node_ops.lookup,mknod:Ea.node_ops.mknod,rename:Ea.node_ops.rename,unlink:Ea.node_ops.unlink,rmdir:Ea.node_ops.rmdir,readdir:Ea.node_ops.readdir,symlink:Ea.node_ops.symlink},stream:{llseek:Ea.stream_ops.llseek}},file:{node:{getattr:Ea.node_ops.getattr,setattr:Ea.node_ops.setattr},stream:{llseek:Ea.stream_ops.llseek,read:Ea.stream_ops.read,write:Ea.stream_ops.write,allocate:Ea.stream_ops.allocate,mmap:Ea.stream_ops.mmap,msync:Ea.stream_ops.msync}},link:{node:{getattr:Ea.node_ops.getattr,setattr:Ea.node_ops.setattr,readlink:Ea.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ea.node_ops.getattr,setattr:Ea.node_ops.setattr},stream:ze.chrdev_stream_ops}});var tt=ze.createNode(T,Y,ne,me);return ze.isDir(tt.mode)?(tt.node_ops=Ea.ops_table.dir.node,tt.stream_ops=Ea.ops_table.dir.stream,tt.contents={}):ze.isFile(tt.mode)?(tt.node_ops=Ea.ops_table.file.node,tt.stream_ops=Ea.ops_table.file.stream,tt.usedBytes=0,tt.contents=null):ze.isLink(tt.mode)?(tt.node_ops=Ea.ops_table.link.node,tt.stream_ops=Ea.ops_table.link.stream):ze.isChrdev(tt.mode)&&(tt.node_ops=Ea.ops_table.chrdev.node,tt.stream_ops=Ea.ops_table.chrdev.stream),tt.timestamp=Date.now(),T&&(T.contents[Y]=tt,T.timestamp=tt.timestamp),tt},getFileDataAsTypedArray(T){return T.contents?T.contents.subarray?T.contents.subarray(0,T.usedBytes):new Uint8Array(T.contents):new Uint8Array(0)},expandFileStorage(T,Y){var ne=T.contents?T.contents.length:0;if(!(ne>=Y)){var me=1024*1024;Y=Math.max(Y,ne*(ne<me?2:1.125)>>>0),ne!=0&&(Y=Math.max(Y,256));var tt=T.contents;T.contents=new Uint8Array(Y),T.usedBytes>0&&T.contents.set(tt.subarray(0,T.usedBytes),0)}},resizeFileStorage(T,Y){if(T.usedBytes!=Y)if(Y==0)T.contents=null,T.usedBytes=0;else{var ne=T.contents;T.contents=new Uint8Array(Y),ne&&T.contents.set(ne.subarray(0,Math.min(Y,T.usedBytes))),T.usedBytes=Y}},node_ops:{getattr(T){var Y={};return Y.dev=ze.isChrdev(T.mode)?T.id:1,Y.ino=T.id,Y.mode=T.mode,Y.nlink=1,Y.uid=0,Y.gid=0,Y.rdev=T.rdev,ze.isDir(T.mode)?Y.size=4096:ze.isFile(T.mode)?Y.size=T.usedBytes:ze.isLink(T.mode)?Y.size=T.link.length:Y.size=0,Y.atime=new Date(T.timestamp),Y.mtime=new Date(T.timestamp),Y.ctime=new Date(T.timestamp),Y.blksize=4096,Y.blocks=Math.ceil(Y.size/Y.blksize),Y},setattr(T,Y){Y.mode!==void 0&&(T.mode=Y.mode),Y.timestamp!==void 0&&(T.timestamp=Y.timestamp),Y.size!==void 0&&Ea.resizeFileStorage(T,Y.size)},lookup(T,Y){throw ze.genericErrors[44]},mknod(T,Y,ne,me){return Ea.createNode(T,Y,ne,me)},rename(T,Y,ne){if(ze.isDir(T.mode)){var me;try{me=ze.lookupNode(Y,ne)}catch{}if(me)for(var tt in me.contents)throw new ze.ErrnoError(55)}delete T.parent.contents[T.name],T.parent.timestamp=Date.now(),T.name=ne,Y.contents[ne]=T,Y.timestamp=T.parent.timestamp,T.parent=Y},unlink(T,Y){delete T.contents[Y],T.timestamp=Date.now()},rmdir(T,Y){var ne=ze.lookupNode(T,Y);for(var me in ne.contents)throw new ze.ErrnoError(55);delete T.contents[Y],T.timestamp=Date.now()},readdir(T){var Y=[".",".."];for(var ne in T.contents)T.contents.hasOwnProperty(ne)&&Y.push(ne);return Y},symlink(T,Y,ne){var me=Ea.createNode(T,Y,41471,0);return me.link=ne,me},readlink(T){if(!ze.isLink(T.mode))throw new ze.ErrnoError(28);return T.link}},stream_ops:{read(T,Y,ne,me,tt){var yt=T.node.contents;if(tt>=T.node.usedBytes)return 0;var Nt=Math.min(T.node.usedBytes-tt,me);if(Nt>8&&yt.subarray)Y.set(yt.subarray(tt,tt+Nt),ne);else for(var Ht=0;Ht<Nt;Ht++)Y[ne+Ht]=yt[tt+Ht];return Nt},write(T,Y,ne,me,tt,yt){if(!me)return 0;var Nt=T.node;if(Nt.timestamp=Date.now(),Y.subarray&&(!Nt.contents||Nt.contents.subarray)){if(yt)return Nt.contents=Y.subarray(ne,ne+me),Nt.usedBytes=me,me;if(Nt.usedBytes===0&&tt===0)return Nt.contents=Y.slice(ne,ne+me),Nt.usedBytes=me,me;if(tt+me<=Nt.usedBytes)return Nt.contents.set(Y.subarray(ne,ne+me),tt),me}if(Ea.expandFileStorage(Nt,tt+me),Nt.contents.subarray&&Y.subarray)Nt.contents.set(Y.subarray(ne,ne+me),tt);else for(var Ht=0;Ht<me;Ht++)Nt.contents[tt+Ht]=Y[ne+Ht];return Nt.usedBytes=Math.max(Nt.usedBytes,tt+me),me},llseek(T,Y,ne){var me=Y;if(ne===1?me+=T.position:ne===2&&ze.isFile(T.node.mode)&&(me+=T.node.usedBytes),me<0)throw new ze.ErrnoError(28);return me},allocate(T,Y,ne){Ea.expandFileStorage(T.node,Y+ne),T.node.usedBytes=Math.max(T.node.usedBytes,Y+ne)},mmap(T,Y,ne,me,tt){if(!ze.isFile(T.node.mode))throw new ze.ErrnoError(43);var yt,Nt,Ht=T.node.contents;if(!(tt&2)&&Ht.buffer===Kr.buffer)Nt=!1,yt=Ht.byteOffset;else{if((ne>0||ne+Y<Ht.length)&&(Ht.subarray?Ht=Ht.subarray(ne,ne+Y):Ht=Array.prototype.slice.call(Ht,ne,ne+Y)),Nt=!0,yt=Ga(Y),!yt)throw new ze.ErrnoError(48);Kr.set(Ht,yt)}return{ptr:yt,allocated:Nt}},msync(T,Y,ne,me,tt){return Ea.stream_ops.write(T,Y,0,me,ne,!1),0}}},Pu=(T,Y,ne,me)=>{var tt=`al ${T}`;qn(T,yt=>{ds(yt,`Loading data file "${T}" failed (no arrayBuffer).`),Y(new Uint8Array(yt)),tt&&xc()},yt=>{if(ne)ne();else throw`Loading data file "${T}" failed.`}),tt&&Jd()},kc=(T,Y,ne,me,tt,yt)=>{ze.createDataFile(T,Y,ne,me,tt,yt)},zu=Se.preloadPlugins||[],ju=(T,Y,ne,me)=>{typeof Browser<"u"&&Browser.init();var tt=!1;return zu.forEach(yt=>{tt||yt.canHandle(Y)&&(yt.handle(T,Y,ne,me),tt=!0)}),tt},_u=(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar)=>{var ei=Y?bs.resolve(Fo.join2(T,Y)):T;function _i(di){function wr(pa){ar&&ar(),Ht||kc(T,Y,pa,me,tt,xn),yt&&yt(),xc()}ju(di,ei,wr,()=>{Nt&&Nt(),xc()})||wr(di)}Jd(),typeof ne=="string"?Pu(ne,di=>_i(di),Nt):_i(ne)},tc=T=>{var Y={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},ne=Y[T];if(typeof ne>"u")throw new Error(`Unknown file open mode: ${T}`);return ne},Pe=(T,Y)=>{var ne=0;return T&&(ne|=365),Y&&(ne|=146),ne},ze={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(T,Y){if(Y===void 0&&(Y={}),T=bs.resolve(T),!T)return{path:"",node:null};var ne={follow_mount:!0,recurse_count:0};if(Y=Object.assign(ne,Y),Y.recurse_count>8)throw new ze.ErrnoError(32);for(var me=T.split("/").filter(_i=>!!_i),tt=ze.root,yt="/",Nt=0;Nt<me.length;Nt++){var Ht=Nt===me.length-1;if(Ht&&Y.parent)break;if(tt=ze.lookupNode(tt,me[Nt]),yt=Fo.join2(yt,me[Nt]),ze.isMountpoint(tt)&&(!Ht||Ht&&Y.follow_mount)&&(tt=tt.mounted.root),!Ht||Y.follow)for(var xn=0;ze.isLink(tt.mode);){var ar=ze.readlink(yt);yt=bs.resolve(Fo.dirname(yt),ar);var ei=ze.lookupPath(yt,{recurse_count:Y.recurse_count+1});if(tt=ei.node,xn++>40)throw new ze.ErrnoError(32)}}return{path:yt,node:tt}},getPath(T){for(var Y;;){if(ze.isRoot(T)){var ne=T.mount.mountpoint;return Y?ne[ne.length-1]!=="/"?`${ne}/${Y}`:ne+Y:ne}Y=Y?`${T.name}/${Y}`:T.name,T=T.parent}},hashName(T,Y){for(var ne=0,me=0;me<Y.length;me++)ne=(ne<<5)-ne+Y.charCodeAt(me)|0;return(T+ne>>>0)%ze.nameTable.length},hashAddNode(T){var Y=ze.hashName(T.parent.id,T.name);T.name_next=ze.nameTable[Y],ze.nameTable[Y]=T},hashRemoveNode(T){var Y=ze.hashName(T.parent.id,T.name);if(ze.nameTable[Y]===T)ze.nameTable[Y]=T.name_next;else for(var ne=ze.nameTable[Y];ne;){if(ne.name_next===T){ne.name_next=T.name_next;break}ne=ne.name_next}},lookupNode(T,Y){var ne=ze.mayLookup(T);if(ne)throw new ze.ErrnoError(ne,T);for(var me=ze.hashName(T.id,Y),tt=ze.nameTable[me];tt;tt=tt.name_next){var yt=tt.name;if(tt.parent.id===T.id&&yt===Y)return tt}return ze.lookup(T,Y)},createNode(T,Y,ne,me){var tt=new ze.FSNode(T,Y,ne,me);return ze.hashAddNode(tt),tt},destroyNode(T){ze.hashRemoveNode(T)},isRoot(T){return T===T.parent},isMountpoint(T){return!!T.mounted},isFile(T){return(T&61440)===32768},isDir(T){return(T&61440)===16384},isLink(T){return(T&61440)===40960},isChrdev(T){return(T&61440)===8192},isBlkdev(T){return(T&61440)===24576},isFIFO(T){return(T&61440)===4096},isSocket(T){return(T&49152)===49152},flagsToPermissionString(T){var Y=["r","w","rw"][T&3];return T&512&&(Y+="w"),Y},nodePermissions(T,Y){return ze.ignorePermissions?0:Y.includes("r")&&!(T.mode&292)||Y.includes("w")&&!(T.mode&146)||Y.includes("x")&&!(T.mode&73)?2:0},mayLookup(T){var Y=ze.nodePermissions(T,"x");return Y||(T.node_ops.lookup?0:2)},mayCreate(T,Y){try{var ne=ze.lookupNode(T,Y);return 20}catch{}return ze.nodePermissions(T,"wx")},mayDelete(T,Y,ne){var me;try{me=ze.lookupNode(T,Y)}catch(yt){return yt.errno}var tt=ze.nodePermissions(T,"wx");if(tt)return tt;if(ne){if(!ze.isDir(me.mode))return 54;if(ze.isRoot(me)||ze.getPath(me)===ze.cwd())return 10}else if(ze.isDir(me.mode))return 31;return 0},mayOpen(T,Y){return T?ze.isLink(T.mode)?32:ze.isDir(T.mode)&&(ze.flagsToPermissionString(Y)!=="r"||Y&512)?31:ze.nodePermissions(T,ze.flagsToPermissionString(Y)):44},MAX_OPEN_FDS:4096,nextfd(){for(var T=0;T<=ze.MAX_OPEN_FDS;T++)if(!ze.streams[T])return T;throw new ze.ErrnoError(33)},getStreamChecked(T){var Y=ze.getStream(T);if(!Y)throw new ze.ErrnoError(8);return Y},getStream:T=>ze.streams[T],createStream(T,Y){return Y===void 0&&(Y=-1),ze.FSStream||(ze.FSStream=function(){this.shared={}},ze.FSStream.prototype={},Object.defineProperties(ze.FSStream.prototype,{object:{get(){return this.node},set(ne){this.node=ne}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(ne){this.shared.flags=ne}},position:{get(){return this.shared.position},set(ne){this.shared.position=ne}}})),T=Object.assign(new ze.FSStream,T),Y==-1&&(Y=ze.nextfd()),T.fd=Y,ze.streams[Y]=T,T},closeStream(T){ze.streams[T]=null},chrdev_stream_ops:{open(T){var Y=ze.getDevice(T.node.rdev);T.stream_ops=Y.stream_ops,T.stream_ops.open&&T.stream_ops.open(T)},llseek(){throw new ze.ErrnoError(70)}},major:T=>T>>8,minor:T=>T&255,makedev:(T,Y)=>T<<8|Y,registerDevice(T,Y){ze.devices[T]={stream_ops:Y}},getDevice:T=>ze.devices[T],getMounts(T){for(var Y=[],ne=[T];ne.length;){var me=ne.pop();Y.push(me),ne.push.apply(ne,me.mounts)}return Y},syncfs(T,Y){typeof T=="function"&&(Y=T,T=!1),ze.syncFSRequests++,ze.syncFSRequests>1&&Or(`warning: ${ze.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var ne=ze.getMounts(ze.root.mount),me=0;function tt(Nt){return ze.syncFSRequests--,Y(Nt)}function yt(Nt){if(Nt)return yt.errored?void 0:(yt.errored=!0,tt(Nt));++me>=ne.length&&tt(null)}ne.forEach(Nt=>{if(!Nt.type.syncfs)return yt(null);Nt.type.syncfs(Nt,T,yt)})},mount(T,Y,ne){var me=ne==="/",tt=!ne,yt;if(me&&ze.root)throw new ze.ErrnoError(10);if(!me&&!tt){var Nt=ze.lookupPath(ne,{follow_mount:!1});if(ne=Nt.path,yt=Nt.node,ze.isMountpoint(yt))throw new ze.ErrnoError(10);if(!ze.isDir(yt.mode))throw new ze.ErrnoError(54)}var Ht={type:T,opts:Y,mountpoint:ne,mounts:[]},xn=T.mount(Ht);return xn.mount=Ht,Ht.root=xn,me?ze.root=xn:yt&&(yt.mounted=Ht,yt.mount&&yt.mount.mounts.push(Ht)),xn},unmount(T){var Y=ze.lookupPath(T,{follow_mount:!1});if(!ze.isMountpoint(Y.node))throw new ze.ErrnoError(28);var ne=Y.node,me=ne.mounted,tt=ze.getMounts(me);Object.keys(ze.nameTable).forEach(Nt=>{for(var Ht=ze.nameTable[Nt];Ht;){var xn=Ht.name_next;tt.includes(Ht.mount)&&ze.destroyNode(Ht),Ht=xn}}),ne.mounted=null;var yt=ne.mount.mounts.indexOf(me);ne.mount.mounts.splice(yt,1)},lookup(T,Y){return T.node_ops.lookup(T,Y)},mknod(T,Y,ne){var me=ze.lookupPath(T,{parent:!0}),tt=me.node,yt=Fo.basename(T);if(!yt||yt==="."||yt==="..")throw new ze.ErrnoError(28);var Nt=ze.mayCreate(tt,yt);if(Nt)throw new ze.ErrnoError(Nt);if(!tt.node_ops.mknod)throw new ze.ErrnoError(63);return tt.node_ops.mknod(tt,yt,Y,ne)},create(T,Y){return Y=Y!==void 0?Y:438,Y&=4095,Y|=32768,ze.mknod(T,Y,0)},mkdir(T,Y){return Y=Y!==void 0?Y:511,Y&=1023,Y|=16384,ze.mknod(T,Y,0)},mkdirTree(T,Y){for(var ne=T.split("/"),me="",tt=0;tt<ne.length;++tt)if(ne[tt]){me+="/"+ne[tt];try{ze.mkdir(me,Y)}catch(yt){if(yt.errno!=20)throw yt}}},mkdev(T,Y,ne){return typeof ne>"u"&&(ne=Y,Y=438),Y|=8192,ze.mknod(T,Y,ne)},symlink(T,Y){if(!bs.resolve(T))throw new ze.ErrnoError(44);var ne=ze.lookupPath(Y,{parent:!0}),me=ne.node;if(!me)throw new ze.ErrnoError(44);var tt=Fo.basename(Y),yt=ze.mayCreate(me,tt);if(yt)throw new ze.ErrnoError(yt);if(!me.node_ops.symlink)throw new ze.ErrnoError(63);return me.node_ops.symlink(me,tt,T)},rename(T,Y){var ne=Fo.dirname(T),me=Fo.dirname(Y),tt=Fo.basename(T),yt=Fo.basename(Y),Nt,Ht,xn;if(Nt=ze.lookupPath(T,{parent:!0}),Ht=Nt.node,Nt=ze.lookupPath(Y,{parent:!0}),xn=Nt.node,!Ht||!xn)throw new ze.ErrnoError(44);if(Ht.mount!==xn.mount)throw new ze.ErrnoError(75);var ar=ze.lookupNode(Ht,tt),ei=bs.relative(T,me);if(ei.charAt(0)!==".")throw new ze.ErrnoError(28);if(ei=bs.relative(Y,ne),ei.charAt(0)!==".")throw new ze.ErrnoError(55);var _i;try{_i=ze.lookupNode(xn,yt)}catch{}if(ar!==_i){var di=ze.isDir(ar.mode),wr=ze.mayDelete(Ht,tt,di);if(wr)throw new ze.ErrnoError(wr);if(wr=_i?ze.mayDelete(xn,yt,di):ze.mayCreate(xn,yt),wr)throw new ze.ErrnoError(wr);if(!Ht.node_ops.rename)throw new ze.ErrnoError(63);if(ze.isMountpoint(ar)||_i&&ze.isMountpoint(_i))throw new ze.ErrnoError(10);if(xn!==Ht&&(wr=ze.nodePermissions(Ht,"w"),wr))throw new ze.ErrnoError(wr);ze.hashRemoveNode(ar);try{Ht.node_ops.rename(ar,xn,yt)}catch(pa){throw pa}finally{ze.hashAddNode(ar)}}},rmdir(T){var Y=ze.lookupPath(T,{parent:!0}),ne=Y.node,me=Fo.basename(T),tt=ze.lookupNode(ne,me),yt=ze.mayDelete(ne,me,!0);if(yt)throw new ze.ErrnoError(yt);if(!ne.node_ops.rmdir)throw new ze.ErrnoError(63);if(ze.isMountpoint(tt))throw new ze.ErrnoError(10);ne.node_ops.rmdir(ne,me),ze.destroyNode(tt)},readdir(T){var Y=ze.lookupPath(T,{follow:!0}),ne=Y.node;if(!ne.node_ops.readdir)throw new ze.ErrnoError(54);return ne.node_ops.readdir(ne)},unlink(T){var Y=ze.lookupPath(T,{parent:!0}),ne=Y.node;if(!ne)throw new ze.ErrnoError(44);var me=Fo.basename(T),tt=ze.lookupNode(ne,me),yt=ze.mayDelete(ne,me,!1);if(yt)throw new ze.ErrnoError(yt);if(!ne.node_ops.unlink)throw new ze.ErrnoError(63);if(ze.isMountpoint(tt))throw new ze.ErrnoError(10);ne.node_ops.unlink(ne,me),ze.destroyNode(tt)},readlink(T){var Y=ze.lookupPath(T),ne=Y.node;if(!ne)throw new ze.ErrnoError(44);if(!ne.node_ops.readlink)throw new ze.ErrnoError(28);return bs.resolve(ze.getPath(ne.parent),ne.node_ops.readlink(ne))},stat(T,Y){var ne=ze.lookupPath(T,{follow:!Y}),me=ne.node;if(!me)throw new ze.ErrnoError(44);if(!me.node_ops.getattr)throw new ze.ErrnoError(63);return me.node_ops.getattr(me)},lstat(T){return ze.stat(T,!0)},chmod(T,Y,ne){var me;if(typeof T=="string"){var tt=ze.lookupPath(T,{follow:!ne});me=tt.node}else me=T;if(!me.node_ops.setattr)throw new ze.ErrnoError(63);me.node_ops.setattr(me,{mode:Y&4095|me.mode&-4096,timestamp:Date.now()})},lchmod(T,Y){ze.chmod(T,Y,!0)},fchmod(T,Y){var ne=ze.getStreamChecked(T);ze.chmod(ne.node,Y)},chown(T,Y,ne,me){var tt;if(typeof T=="string"){var yt=ze.lookupPath(T,{follow:!me});tt=yt.node}else tt=T;if(!tt.node_ops.setattr)throw new ze.ErrnoError(63);tt.node_ops.setattr(tt,{timestamp:Date.now()})},lchown(T,Y,ne){ze.chown(T,Y,ne,!0)},fchown(T,Y,ne){var me=ze.getStreamChecked(T);ze.chown(me.node,Y,ne)},truncate(T,Y){if(Y<0)throw new ze.ErrnoError(28);var ne;if(typeof T=="string"){var me=ze.lookupPath(T,{follow:!0});ne=me.node}else ne=T;if(!ne.node_ops.setattr)throw new ze.ErrnoError(63);if(ze.isDir(ne.mode))throw new ze.ErrnoError(31);if(!ze.isFile(ne.mode))throw new ze.ErrnoError(28);var tt=ze.nodePermissions(ne,"w");if(tt)throw new ze.ErrnoError(tt);ne.node_ops.setattr(ne,{size:Y,timestamp:Date.now()})},ftruncate(T,Y){var ne=ze.getStreamChecked(T);if(!(ne.flags&2097155))throw new ze.ErrnoError(28);ze.truncate(ne.node,Y)},utime(T,Y,ne){var me=ze.lookupPath(T,{follow:!0}),tt=me.node;tt.node_ops.setattr(tt,{timestamp:Math.max(Y,ne)})},open(T,Y,ne){if(T==="")throw new ze.ErrnoError(44);Y=typeof Y=="string"?tc(Y):Y,ne=typeof ne>"u"?438:ne,Y&64?ne=ne&4095|32768:ne=0;var me;if(typeof T=="object")me=T;else{T=Fo.normalize(T);try{var tt=ze.lookupPath(T,{follow:!(Y&131072)});me=tt.node}catch{}}var yt=!1;if(Y&64)if(me){if(Y&128)throw new ze.ErrnoError(20)}else me=ze.mknod(T,ne,0),yt=!0;if(!me)throw new ze.ErrnoError(44);if(ze.isChrdev(me.mode)&&(Y&=-513),Y&65536&&!ze.isDir(me.mode))throw new ze.ErrnoError(54);if(!yt){var Nt=ze.mayOpen(me,Y);if(Nt)throw new ze.ErrnoError(Nt)}Y&512&&!yt&&ze.truncate(me,0),Y&=-131713;var Ht=ze.createStream({node:me,path:ze.getPath(me),flags:Y,seekable:!0,position:0,stream_ops:me.stream_ops,ungotten:[],error:!1});return Ht.stream_ops.open&&Ht.stream_ops.open(Ht),Se.logReadFiles&&!(Y&1)&&(ze.readFiles||(ze.readFiles={}),T in ze.readFiles||(ze.readFiles[T]=1)),Ht},close(T){if(ze.isClosed(T))throw new ze.ErrnoError(8);T.getdents&&(T.getdents=null);try{T.stream_ops.close&&T.stream_ops.close(T)}catch(Y){throw Y}finally{ze.closeStream(T.fd)}T.fd=null},isClosed(T){return T.fd===null},llseek(T,Y,ne){if(ze.isClosed(T))throw new ze.ErrnoError(8);if(!T.seekable||!T.stream_ops.llseek)throw new ze.ErrnoError(70);if(ne!=0&&ne!=1&&ne!=2)throw new ze.ErrnoError(28);return T.position=T.stream_ops.llseek(T,Y,ne),T.ungotten=[],T.position},read(T,Y,ne,me,tt){if(me<0||tt<0)throw new ze.ErrnoError(28);if(ze.isClosed(T))throw new ze.ErrnoError(8);if((T.flags&2097155)===1)throw new ze.ErrnoError(8);if(ze.isDir(T.node.mode))throw new ze.ErrnoError(31);if(!T.stream_ops.read)throw new ze.ErrnoError(28);var yt=typeof tt<"u";if(!yt)tt=T.position;else if(!T.seekable)throw new ze.ErrnoError(70);var Nt=T.stream_ops.read(T,Y,ne,me,tt);return yt||(T.position+=Nt),Nt},write(T,Y,ne,me,tt,yt){if(me<0||tt<0)throw new ze.ErrnoError(28);if(ze.isClosed(T))throw new ze.ErrnoError(8);if(!(T.flags&2097155))throw new ze.ErrnoError(8);if(ze.isDir(T.node.mode))throw new ze.ErrnoError(31);if(!T.stream_ops.write)throw new ze.ErrnoError(28);T.seekable&&T.flags&1024&&ze.llseek(T,0,2);var Nt=typeof tt<"u";if(!Nt)tt=T.position;else if(!T.seekable)throw new ze.ErrnoError(70);var Ht=T.stream_ops.write(T,Y,ne,me,tt,yt);return Nt||(T.position+=Ht),Ht},allocate(T,Y,ne){if(ze.isClosed(T))throw new ze.ErrnoError(8);if(Y<0||ne<=0)throw new ze.ErrnoError(28);if(!(T.flags&2097155))throw new ze.ErrnoError(8);if(!ze.isFile(T.node.mode)&&!ze.isDir(T.node.mode))throw new ze.ErrnoError(43);if(!T.stream_ops.allocate)throw new ze.ErrnoError(138);T.stream_ops.allocate(T,Y,ne)},mmap(T,Y,ne,me,tt){if(me&2&&!(tt&2)&&(T.flags&2097155)!==2)throw new ze.ErrnoError(2);if((T.flags&2097155)===1)throw new ze.ErrnoError(2);if(!T.stream_ops.mmap)throw new ze.ErrnoError(43);return T.stream_ops.mmap(T,Y,ne,me,tt)},msync(T,Y,ne,me,tt){return T.stream_ops.msync?T.stream_ops.msync(T,Y,ne,me,tt):0},munmap:T=>0,ioctl(T,Y,ne){if(!T.stream_ops.ioctl)throw new ze.ErrnoError(59);return T.stream_ops.ioctl(T,Y,ne)},readFile(T,Y){if(Y===void 0&&(Y={}),Y.flags=Y.flags||0,Y.encoding=Y.encoding||"binary",Y.encoding!=="utf8"&&Y.encoding!=="binary")throw new Error(`Invalid encoding type "${Y.encoding}"`);var ne,me=ze.open(T,Y.flags),tt=ze.stat(T),yt=tt.size,Nt=new Uint8Array(yt);return ze.read(me,Nt,0,yt,0),Y.encoding==="utf8"?ne=da(Nt,0):Y.encoding==="binary"&&(ne=Nt),ze.close(me),ne},writeFile(T,Y,ne){ne===void 0&&(ne={}),ne.flags=ne.flags||577;var me=ze.open(T,ne.flags,ne.mode);if(typeof Y=="string"){var tt=new Uint8Array(Td(Y)+1),yt=au(Y,tt,0,tt.length);ze.write(me,tt,0,yt,void 0,ne.canOwn)}else if(ArrayBuffer.isView(Y))ze.write(me,Y,0,Y.byteLength,void 0,ne.canOwn);else throw new Error("Unsupported data type");ze.close(me)},cwd:()=>ze.currentPath,chdir(T){var Y=ze.lookupPath(T,{follow:!0});if(Y.node===null)throw new ze.ErrnoError(44);if(!ze.isDir(Y.node.mode))throw new ze.ErrnoError(54);var ne=ze.nodePermissions(Y.node,"x");if(ne)throw new ze.ErrnoError(ne);ze.currentPath=Y.path},createDefaultDirectories(){ze.mkdir("/tmp"),ze.mkdir("/home"),ze.mkdir("/home/web_user")},createDefaultDevices(){ze.mkdir("/dev"),ze.registerDevice(ze.makedev(1,3),{read:()=>0,write:(me,tt,yt,Nt,Ht)=>Nt}),ze.mkdev("/dev/null",ze.makedev(1,3)),ys.register(ze.makedev(5,0),ys.default_tty_ops),ys.register(ze.makedev(6,0),ys.default_tty1_ops),ze.mkdev("/dev/tty",ze.makedev(5,0)),ze.mkdev("/dev/tty1",ze.makedev(6,0));var T=new Uint8Array(1024),Y=0,ne=()=>(Y===0&&(Y=Xc(T).byteLength),T[--Y]);ze.createDevice("/dev","random",ne),ze.createDevice("/dev","urandom",ne),ze.mkdir("/dev/shm"),ze.mkdir("/dev/shm/tmp")},createSpecialDirectories(){ze.mkdir("/proc");var T=ze.mkdir("/proc/self");ze.mkdir("/proc/self/fd"),ze.mount({mount(){var Y=ze.createNode(T,"fd",16895,73);return Y.node_ops={lookup(ne,me){var tt=+me,yt=ze.getStreamChecked(tt),Nt={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>yt.path}};return Nt.parent=Nt,Nt}},Y}},{},"/proc/self/fd")},createStandardStreams(){Se.stdin?ze.createDevice("/dev","stdin",Se.stdin):ze.symlink("/dev/tty","/dev/stdin"),Se.stdout?ze.createDevice("/dev","stdout",null,Se.stdout):ze.symlink("/dev/tty","/dev/stdout"),Se.stderr?ze.createDevice("/dev","stderr",null,Se.stderr):ze.symlink("/dev/tty1","/dev/stderr"),ze.open("/dev/stdin",0),ze.open("/dev/stdout",1),ze.open("/dev/stderr",1)},ensureErrnoError(){ze.ErrnoError||(ze.ErrnoError=function(Y,ne){this.name="ErrnoError",this.node=ne,this.setErrno=function(me){this.errno=me},this.setErrno(Y),this.message="FS error"},ze.ErrnoError.prototype=new Error,ze.ErrnoError.prototype.constructor=ze.ErrnoError,[44].forEach(T=>{ze.genericErrors[T]=new ze.ErrnoError(T),ze.genericErrors[T].stack="<generic error, no stack>"}))},staticInit(){ze.ensureErrnoError(),ze.nameTable=new Array(4096),ze.mount(Ea,{},"/"),ze.createDefaultDirectories(),ze.createDefaultDevices(),ze.createSpecialDirectories(),ze.filesystems={MEMFS:Ea}},init(T,Y,ne){ze.init.initialized=!0,ze.ensureErrnoError(),Se.stdin=T||Se.stdin,Se.stdout=Y||Se.stdout,Se.stderr=ne||Se.stderr,ze.createStandardStreams()},quit(){ze.init.initialized=!1,wA(0);for(var T=0;T<ze.streams.length;T++){var Y=ze.streams[T];Y&&ze.close(Y)}},findObject(T,Y){var ne=ze.analyzePath(T,Y);return ne.exists?ne.object:null},analyzePath(T,Y){try{var ne=ze.lookupPath(T,{follow:!Y});T=ne.path}catch{}var me={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var ne=ze.lookupPath(T,{parent:!0});me.parentExists=!0,me.parentPath=ne.path,me.parentObject=ne.node,me.name=Fo.basename(T),ne=ze.lookupPath(T,{follow:!Y}),me.exists=!0,me.path=ne.path,me.object=ne.node,me.name=ne.node.name,me.isRoot=ne.path==="/"}catch(tt){me.error=tt.errno}return me},createPath(T,Y,ne,me){T=typeof T=="string"?T:ze.getPath(T);for(var tt=Y.split("/").reverse();tt.length;){var yt=tt.pop();if(yt){var Nt=Fo.join2(T,yt);try{ze.mkdir(Nt)}catch{}T=Nt}}return Nt},createFile(T,Y,ne,me,tt){var yt=Fo.join2(typeof T=="string"?T:ze.getPath(T),Y),Nt=Pe(me,tt);return ze.create(yt,Nt)},createDataFile(T,Y,ne,me,tt,yt){var Nt=Y;T&&(T=typeof T=="string"?T:ze.getPath(T),Nt=Y?Fo.join2(T,Y):T);var Ht=Pe(me,tt),xn=ze.create(Nt,Ht);if(ne){if(typeof ne=="string"){for(var ar=new Array(ne.length),ei=0,_i=ne.length;ei<_i;++ei)ar[ei]=ne.charCodeAt(ei);ne=ar}ze.chmod(xn,Ht|146);var di=ze.open(xn,577);ze.write(di,ne,0,ne.length,0,yt),ze.close(di),ze.chmod(xn,Ht)}},createDevice(T,Y,ne,me){var tt=Fo.join2(typeof T=="string"?T:ze.getPath(T),Y),yt=Pe(!!ne,!!me);ze.createDevice.major||(ze.createDevice.major=64);var Nt=ze.makedev(ze.createDevice.major++,0);return ze.registerDevice(Nt,{open(Ht){Ht.seekable=!1},close(Ht){me&&me.buffer&&me.buffer.length&&me(10)},read(Ht,xn,ar,ei,_i){for(var di=0,wr=0;wr<ei;wr++){var pa;try{pa=ne()}catch{throw new ze.ErrnoError(29)}if(pa===void 0&&di===0)throw new ze.ErrnoError(6);if(pa==null)break;di++,xn[ar+wr]=pa}return di&&(Ht.node.timestamp=Date.now()),di},write(Ht,xn,ar,ei,_i){for(var di=0;di<ei;di++)try{me(xn[ar+di])}catch{throw new ze.ErrnoError(29)}return ei&&(Ht.node.timestamp=Date.now()),di}}),ze.mkdev(tt,yt,Nt)},forceLoadFile(T){if(T.isDevice||T.isFolder||T.link||T.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(gn)try{T.contents=il(gn(T.url),!0),T.usedBytes=T.contents.length}catch{throw new ze.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile(T,Y,ne,me,tt){function yt(){this.lengthKnown=!1,this.chunks=[]}if(yt.prototype.get=function(wr){if(!(wr>this.length-1||wr<0)){var pa=wr%this.chunkSize,Vl=wr/this.chunkSize|0;return this.getter(Vl)[pa]}},yt.prototype.setDataGetter=function(wr){this.getter=wr},yt.prototype.cacheLength=function(){var wr=new XMLHttpRequest;if(wr.open("HEAD",ne,!1),wr.send(null),!(wr.status>=200&&wr.status<300||wr.status===304))throw new Error("Couldn't load "+ne+". Status: "+wr.status);var pa=Number(wr.getResponseHeader("Content-length")),Vl,ma=(Vl=wr.getResponseHeader("Accept-Ranges"))&&Vl==="bytes",Ia=(Vl=wr.getResponseHeader("Content-Encoding"))&&Vl==="gzip",Zr=1024*1024;ma||(Zr=pa);var Zi=(yl,mc)=>{if(yl>mc)throw new Error("invalid range ("+yl+", "+mc+") or no bytes requested!");if(mc>pa-1)throw new Error("only "+pa+" bytes available! programmer error!");var Ws=new XMLHttpRequest;if(Ws.open("GET",ne,!1),pa!==Zr&&Ws.setRequestHeader("Range","bytes="+yl+"-"+mc),Ws.responseType="arraybuffer",Ws.overrideMimeType&&Ws.overrideMimeType("text/plain; charset=x-user-defined"),Ws.send(null),!(Ws.status>=200&&Ws.status<300||Ws.status===304))throw new Error("Couldn't load "+ne+". Status: "+Ws.status);return Ws.response!==void 0?new Uint8Array(Ws.response||[]):il(Ws.responseText||"",!0)},xi=this;xi.setDataGetter(yl=>{var mc=yl*Zr,Ws=(yl+1)*Zr-1;if(Ws=Math.min(Ws,pa-1),typeof xi.chunks[yl]>"u"&&(xi.chunks[yl]=Zi(mc,Ws)),typeof xi.chunks[yl]>"u")throw new Error("doXHR failed!");return xi.chunks[yl]}),(Ia||!pa)&&(Zr=pa=1,pa=this.getter(0).length,Zr=pa,Gn("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=pa,this._chunkSize=Zr,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!Mt)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var Nt=new yt;Object.defineProperties(Nt,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ht={isDevice:!1,contents:Nt}}else var Ht={isDevice:!1,url:ne};var xn=ze.createFile(T,Y,Ht,me,tt);Ht.contents?xn.contents=Ht.contents:Ht.url&&(xn.contents=null,xn.url=Ht.url),Object.defineProperties(xn,{usedBytes:{get:function(){return this.contents.length}}});var ar={},ei=Object.keys(xn.stream_ops);ei.forEach(di=>{var wr=xn.stream_ops[di];ar[di]=function(){return ze.forceLoadFile(xn),wr.apply(null,arguments)}});function _i(di,wr,pa,Vl,ma){var Ia=di.node.contents;if(ma>=Ia.length)return 0;var Zr=Math.min(Ia.length-ma,Vl);if(Ia.slice)for(var Zi=0;Zi<Zr;Zi++)wr[pa+Zi]=Ia[ma+Zi];else for(var Zi=0;Zi<Zr;Zi++)wr[pa+Zi]=Ia.get(ma+Zi);return Zr}return ar.read=(di,wr,pa,Vl,ma)=>(ze.forceLoadFile(xn),_i(di,wr,pa,Vl,ma)),ar.mmap=(di,wr,pa,Vl,ma)=>{ze.forceLoadFile(xn);var Ia=Ga(wr);if(!Ia)throw new ze.ErrnoError(48);return _i(di,Kr,Ia,wr,pa),{ptr:Ia,allocated:!0}},xn.stream_ops=ar,xn}},qr={DEFAULT_POLLMASK:5,calculateAt(T,Y,ne){if(Fo.isAbs(Y))return Y;var me;if(T===-100)me=ze.cwd();else{var tt=qr.getStreamFromFD(T);me=tt.path}if(Y.length==0){if(!ne)throw new ze.ErrnoError(44);return me}return Fo.join2(me,Y)},doStat(T,Y,ne){try{var me=T(Y)}catch(Ht){if(Ht&&Ht.node&&Fo.normalize(Y)!==Fo.normalize(ze.getPath(Ht.node)))return-54;throw Ht}to[ne>>2]=me.dev,to[ne+4>>2]=me.mode,Ri[ne+8>>2]=me.nlink,to[ne+12>>2]=me.uid,to[ne+16>>2]=me.gid,to[ne+20>>2]=me.rdev,go=[me.size>>>0,(Pa=me.size,+Math.abs(Pa)>=1?Pa>0?+Math.floor(Pa/4294967296)>>>0:~~+Math.ceil((Pa-+(~~Pa>>>0))/4294967296)>>>0:0)],to[ne+24>>2]=go[0],to[ne+28>>2]=go[1],to[ne+32>>2]=4096,to[ne+36>>2]=me.blocks;var tt=me.atime.getTime(),yt=me.mtime.getTime(),Nt=me.ctime.getTime();return go=[Math.floor(tt/1e3)>>>0,(Pa=Math.floor(tt/1e3),+Math.abs(Pa)>=1?Pa>0?+Math.floor(Pa/4294967296)>>>0:~~+Math.ceil((Pa-+(~~Pa>>>0))/4294967296)>>>0:0)],to[ne+40>>2]=go[0],to[ne+44>>2]=go[1],Ri[ne+48>>2]=tt%1e3*1e3,go=[Math.floor(yt/1e3)>>>0,(Pa=Math.floor(yt/1e3),+Math.abs(Pa)>=1?Pa>0?+Math.floor(Pa/4294967296)>>>0:~~+Math.ceil((Pa-+(~~Pa>>>0))/4294967296)>>>0:0)],to[ne+56>>2]=go[0],to[ne+60>>2]=go[1],Ri[ne+64>>2]=yt%1e3*1e3,go=[Math.floor(Nt/1e3)>>>0,(Pa=Math.floor(Nt/1e3),+Math.abs(Pa)>=1?Pa>0?+Math.floor(Pa/4294967296)>>>0:~~+Math.ceil((Pa-+(~~Pa>>>0))/4294967296)>>>0:0)],to[ne+72>>2]=go[0],to[ne+76>>2]=go[1],Ri[ne+80>>2]=Nt%1e3*1e3,go=[me.ino>>>0,(Pa=me.ino,+Math.abs(Pa)>=1?Pa>0?+Math.floor(Pa/4294967296)>>>0:~~+Math.ceil((Pa-+(~~Pa>>>0))/4294967296)>>>0:0)],to[ne+88>>2]=go[0],to[ne+92>>2]=go[1],0},doMsync(T,Y,ne,me,tt){if(!ze.isFile(Y.node.mode))throw new ze.ErrnoError(43);if(me&2)return 0;var yt=Sn.slice(T,T+ne);ze.msync(Y,yt,tt,ne,me)},varargs:void 0,get(){var T=to[+qr.varargs>>2];return qr.varargs+=4,T},getp(){return qr.get()},getStr(T){var Y=Po(T);return Y},getStreamFromFD(T){var Y=ze.getStreamChecked(T);return Y}};function Kc(T,Y){try{var ne=qr.getStreamFromFD(T);return qr.doStat(ze.stat,ne.path,Y)}catch(me){if(typeof ze>"u"||me.name!=="ErrnoError")throw me;return-me.errno}}var nd=(T,Y)=>Y+2097152>>>0<4194305-!!T?(T>>>0)+Y*4294967296:NaN;function al(T,Y,ne){var me=nd(Y,ne);try{return isNaN(me)?61:(ze.ftruncate(T,me),0)}catch(tt){if(typeof ze>"u"||tt.name!=="ErrnoError")throw tt;return-tt.errno}}function wc(T,Y,ne,me){try{Y=qr.getStr(Y);var tt=me&256,yt=me&4096;return me=me&-6401,Y=qr.calculateAt(T,Y,yt),qr.doStat(tt?ze.lstat:ze.stat,Y,ne)}catch(Nt){if(typeof ze>"u"||Nt.name!=="ErrnoError")throw Nt;return-Nt.errno}}function Zu(T,Y,ne,me){qr.varargs=me;try{Y=qr.getStr(Y),Y=qr.calculateAt(T,Y);var tt=me?qr.get():0;return ze.open(Y,ne,tt).fd}catch(yt){if(typeof ze>"u"||yt.name!=="ErrnoError")throw yt;return-yt.errno}}var hd=(T,Y,ne)=>au(T,Sn,Y,ne);function Al(T,Y,ne,me){try{if(Y=qr.getStr(Y),Y=qr.calculateAt(T,Y),me<=0)return-28;var tt=ze.readlink(Y),yt=Math.min(me,Td(tt)),Nt=Kr[ne+yt];return hd(tt,ne,me+1),Kr[ne+yt]=Nt,yt}catch(Ht){if(typeof ze>"u"||Ht.name!=="ErrnoError")throw Ht;return-Ht.errno}}function Sa(T,Y,ne,me){try{return Y=qr.getStr(Y),me=qr.getStr(me),Y=qr.calculateAt(T,Y),me=qr.calculateAt(ne,me),ze.rename(Y,me),0}catch(tt){if(typeof ze>"u"||tt.name!=="ErrnoError")throw tt;return-tt.errno}}function Od(T,Y){try{return T=qr.getStr(T),qr.doStat(ze.stat,T,Y)}catch(ne){if(typeof ze>"u"||ne.name!=="ErrnoError")throw ne;return-ne.errno}}function Bc(T,Y,ne){try{return Y=qr.getStr(Y),Y=qr.calculateAt(T,Y),ne===0?ze.unlink(Y):ne===512?ze.rmdir(Y):Es("Invalid flags passed to unlinkat"),0}catch(me){if(typeof ze>"u"||me.name!=="ErrnoError")throw me;return-me.errno}}var Ol=(T,Y,ne,me,tt)=>{},nc=()=>{for(var T=new Array(256),Y=0;Y<256;++Y)T[Y]=String.fromCharCode(Y);Zc=T},Zc,co=T=>{for(var Y="",ne=T;Sn[ne];)Y+=Zc[Sn[ne++]];return Y},gd={},us={},ht={},P,ee=T=>{throw new P(T)},Re,rt=T=>{throw new Re(T)},st=(T,Y,ne)=>{T.forEach(function(Ht){ht[Ht]=Y});function me(Ht){var xn=ne(Ht);xn.length!==T.length&&rt("Mismatched type converter count");for(var ar=0;ar<T.length;++ar)Xt(T[ar],xn[ar])}var tt=new Array(Y.length),yt=[],Nt=0;Y.forEach((Ht,xn)=>{us.hasOwnProperty(Ht)?tt[xn]=us[Ht]:(yt.push(Ht),gd.hasOwnProperty(Ht)||(gd[Ht]=[]),gd[Ht].push(()=>{tt[xn]=us[Ht],++Nt,Nt===yt.length&&me(tt)}))}),yt.length===0&&me(tt)};function tn(T,Y,ne){ne===void 0&&(ne={});var me=Y.name;if(T||ee(`type "${me}" must have a positive integer typeid pointer`),us.hasOwnProperty(T)){if(ne.ignoreDuplicateRegistrations)return;ee(`Cannot register type '${me}' twice`)}if(us[T]=Y,delete ht[T],gd.hasOwnProperty(T)){var tt=gd[T];delete gd[T],tt.forEach(yt=>yt())}}function Xt(T,Y,ne){if(ne===void 0&&(ne={}),!("argPackAdvance"in Y))throw new TypeError("registerType registeredInstance requires argPackAdvance");return tn(T,Y,ne)}var en=8,fn=(T,Y,ne,me)=>{Y=co(Y),Xt(T,{name:Y,fromWireType:function(yt){return!!yt},toWireType:function(yt,Nt){return Nt?ne:me},argPackAdvance:en,readValueFromPointer:function(yt){return this.fromWireType(Sn[yt])},destructorFunction:null})},ge=T=>({count:T.count,deleteScheduled:T.deleteScheduled,preservePointerOnDelete:T.preservePointerOnDelete,ptr:T.ptr,ptrType:T.ptrType,smartPtr:T.smartPtr,smartPtrType:T.smartPtrType}),ot=T=>{function Y(ne){return ne.$$.ptrType.registeredClass.name}ee(Y(T)+" instance already deleted")},Vt=!1,Ut=T=>{},Rn=T=>{T.smartPtr?T.smartPtrType.rawDestructor(T.smartPtr):T.ptrType.registeredClass.rawDestructor(T.ptr)},kn=T=>{T.count.value-=1;var Y=T.count.value===0;Y&&Rn(T)},Bn=(T,Y,ne)=>{if(Y===ne)return T;if(ne.baseClass===void 0)return null;var me=Bn(T,Y,ne.baseClass);return me===null?null:ne.downcast(me)},ni={},Uo=()=>Object.keys(Ss).length,Aa=()=>{var T=[];for(var Y in Ss)Ss.hasOwnProperty(Y)&&T.push(Ss[Y]);return T},ji=[],To=()=>{for(;ji.length;){var T=ji.pop();T.$$.deleteScheduled=!1,T.delete()}},es,Ja=T=>{es=T,ji.length&&es&&es(To)},vl=()=>{Se.getInheritedInstanceCount=Uo,Se.getLiveInheritedInstances=Aa,Se.flushPendingDeletes=To,Se.setDelayFunction=Ja},Ss={},gc=(T,Y)=>{for(Y===void 0&&ee("ptr should not be undefined");T.baseClass;)Y=T.upcast(Y),T=T.baseClass;return Y},Qh=(T,Y)=>(Y=gc(T,Y),Ss[Y]),$u=(T,Y)=>{(!Y.ptrType||!Y.ptr)&&rt("makeClassHandle requires ptr and ptrType");var ne=!!Y.smartPtrType,me=!!Y.smartPtr;return ne!==me&&rt("Both smartPtrType and smartPtr must be specified"),Y.count={value:1},Mf(Object.create(T,{$$:{value:Y}}))};function RA(T){var Y=this.getPointee(T);if(!Y)return this.destructor(T),null;var ne=Qh(this.registeredClass,Y);if(ne!==void 0){if(ne.$$.count.value===0)return ne.$$.ptr=Y,ne.$$.smartPtr=T,ne.clone();var me=ne.clone();return this.destructor(T),me}function tt(){return this.isSmartPointer?$u(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:Y,smartPtrType:this,smartPtr:T}):$u(this.registeredClass.instancePrototype,{ptrType:this,ptr:T})}var yt=this.registeredClass.getActualType(Y),Nt=ni[yt];if(!Nt)return tt.call(this);var Ht;this.isConst?Ht=Nt.constPointerType:Ht=Nt.pointerType;var xn=Bn(Y,this.registeredClass,Ht.registeredClass);return xn===null?tt.call(this):this.isSmartPointer?$u(Ht.registeredClass.instancePrototype,{ptrType:Ht,ptr:xn,smartPtrType:this,smartPtr:T}):$u(Ht.registeredClass.instancePrototype,{ptrType:Ht,ptr:xn})}var Mf=T=>typeof FinalizationRegistry>"u"?(Mf=Y=>Y,T):(Vt=new FinalizationRegistry(Y=>{kn(Y.$$)}),Mf=Y=>{var ne=Y.$$,me=!!ne.smartPtr;if(me){var tt={$$:ne};Vt.register(Y,tt,Y)}return Y},Ut=Y=>Vt.unregister(Y),Mf(T)),Tp=()=>{Object.assign(Lf.prototype,{isAliasOf(T){if(!(this instanceof Lf)||!(T instanceof Lf))return!1;var Y=this.$$.ptrType.registeredClass,ne=this.$$.ptr;T.$$=T.$$;for(var me=T.$$.ptrType.registeredClass,tt=T.$$.ptr;Y.baseClass;)ne=Y.upcast(ne),Y=Y.baseClass;for(;me.baseClass;)tt=me.upcast(tt),me=me.baseClass;return Y===me&&ne===tt},clone(){if(this.$$.ptr||ot(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var T=Mf(Object.create(Object.getPrototypeOf(this),{$$:{value:ge(this.$$)}}));return T.$$.count.value+=1,T.$$.deleteScheduled=!1,T},delete(){this.$$.ptr||ot(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ee("Object already scheduled for deletion"),Ut(this),kn(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||ot(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ee("Object already scheduled for deletion"),ji.push(this),ji.length===1&&es&&es(To),this.$$.deleteScheduled=!0,this}})};function Lf(){}var Ac=(T,Y)=>Object.defineProperty(Y,"name",{value:T}),qu=(T,Y,ne)=>{if(T[Y].overloadTable===void 0){var me=T[Y];T[Y]=function(){return T[Y].overloadTable.hasOwnProperty(arguments.length)||ee(`Function '${ne}' called with an invalid number of arguments (${arguments.length}) - expects one of (${T[Y].overloadTable})!`),T[Y].overloadTable[arguments.length].apply(this,arguments)},T[Y].overloadTable=[],T[Y].overloadTable[me.argCount]=me}},ef=(T,Y,ne)=>{Se.hasOwnProperty(T)?(ee(`Cannot register public name '${T}' twice`),qu(Se,T,T),Se.hasOwnProperty(ne)&&ee(`Cannot register multiple overloads of a function with the same number of arguments (${ne})!`),Se[T].overloadTable[ne]=Y):Se[T]=Y},Uh=48,Ff=57,sl=T=>{if(T===void 0)return"_unknown";T=T.replace(/[^a-zA-Z0-9_]/g,"$");var Y=T.charCodeAt(0);return Y>=Uh&&Y<=Ff?`_${T}`:T};function BA(T,Y,ne,me,tt,yt,Nt,Ht){this.name=T,this.constructor=Y,this.instancePrototype=ne,this.rawDestructor=me,this.baseClass=tt,this.getActualType=yt,this.upcast=Nt,this.downcast=Ht,this.pureVirtualFunctions=[]}var Qf=(T,Y,ne)=>{for(;Y!==ne;)Y.upcast||ee(`Expected null or instance of ${ne.name}, got an instance of ${Y.name}`),T=Y.upcast(T),Y=Y.baseClass;return T};function Hf(T,Y){if(Y===null)return this.isReference&&ee(`null is not a valid ${this.name}`),0;Y.$$||ee(`Cannot pass "${zf(Y)}" as a ${this.name}`),Y.$$.ptr||ee(`Cannot pass deleted object as a pointer of type ${this.name}`);var ne=Y.$$.ptrType.registeredClass,me=Qf(Y.$$.ptr,ne,this.registeredClass);return me}function Xp(T,Y){var ne;if(Y===null)return this.isReference&&ee(`null is not a valid ${this.name}`),this.isSmartPointer?(ne=this.rawConstructor(),T!==null&&T.push(this.rawDestructor,ne),ne):0;Y.$$||ee(`Cannot pass "${zf(Y)}" as a ${this.name}`),Y.$$.ptr||ee(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&Y.$$.ptrType.isConst&&ee(`Cannot convert argument of type ${Y.$$.smartPtrType?Y.$$.smartPtrType.name:Y.$$.ptrType.name} to parameter type ${this.name}`);var me=Y.$$.ptrType.registeredClass;if(ne=Qf(Y.$$.ptr,me,this.registeredClass),this.isSmartPointer)switch(Y.$$.smartPtr===void 0&&ee("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:Y.$$.smartPtrType===this?ne=Y.$$.smartPtr:ee(`Cannot convert argument of type ${Y.$$.smartPtrType?Y.$$.smartPtrType.name:Y.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:ne=Y.$$.smartPtr;break;case 2:if(Y.$$.smartPtrType===this)ne=Y.$$.smartPtr;else{var tt=Y.clone();ne=this.rawShare(ne,Ch.toHandle(()=>tt.delete())),T!==null&&T.push(this.rawDestructor,ne)}break;default:ee("Unsupporting sharing policy")}return ne}function Iu(T,Y){if(Y===null)return this.isReference&&ee(`null is not a valid ${this.name}`),0;Y.$$||ee(`Cannot pass "${zf(Y)}" as a ${this.name}`),Y.$$.ptr||ee(`Cannot pass deleted object as a pointer of type ${this.name}`),Y.$$.ptrType.isConst&&ee(`Cannot convert argument of type ${Y.$$.ptrType.name} to parameter type ${this.name}`);var ne=Y.$$.ptrType.registeredClass,me=Qf(Y.$$.ptr,ne,this.registeredClass);return me}function Cu(T){return this.fromWireType(Ri[T>>2])}var kp=()=>{Object.assign(Rh.prototype,{getPointee(T){return this.rawGetPointee&&(T=this.rawGetPointee(T)),T},destructor(T){this.rawDestructor&&this.rawDestructor(T)},argPackAdvance:en,readValueFromPointer:Cu,deleteObject(T){T!==null&&T.delete()},fromWireType:RA})};function Rh(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar,ei){this.name=T,this.registeredClass=Y,this.isReference=ne,this.isConst=me,this.isSmartPointer=tt,this.pointeeType=yt,this.sharingPolicy=Nt,this.rawGetPointee=Ht,this.rawConstructor=xn,this.rawShare=ar,this.rawDestructor=ei,!tt&&Y.baseClass===void 0?me?(this.toWireType=Hf,this.destructorFunction=null):(this.toWireType=Iu,this.destructorFunction=null):this.toWireType=Xp}var Ug=(T,Y,ne)=>{Se.hasOwnProperty(T)||rt("Replacing nonexistant public symbol"),Se[T].overloadTable!==void 0&&ne!==void 0||(Se[T]=Y,Se[T].argCount=ne)},Rg=(T,Y,ne)=>{var me=Se["dynCall_"+T];return ne&&ne.length?me.apply(null,[Y].concat(ne)):me.call(null,Y)},xf=[],Bh,fs=T=>{var Y=xf[T];return Y||(T>=xf.length&&(xf.length=T+1),xf[T]=Y=Bh.get(T)),Y},ZA=(T,Y,ne)=>{if(T.includes("j"))return Rg(T,Y,ne);var me=fs(Y).apply(null,ne);return me},IA=(T,Y)=>{var ne=[];return function(){return ne.length=0,Object.assign(ne,arguments),ZA(T,Y,ne)}},Uf=(T,Y)=>{T=co(T);function ne(){return T.includes("j")?IA(T,Y):fs(Y)}var me=ne();return typeof me!="function"&&ee(`unknown function pointer with signature ${T}: ${Y}`),me},wp=(T,Y)=>{var ne=Ac(Y,function(me){this.name=Y,this.message=me;var tt=new Error(me).stack;tt!==void 0&&(this.stack=this.toString()+` `+tt.replace(/^Error(:[^\n]*)?\n/,""))});return ne.prototype=Object.create(T.prototype),ne.prototype.constructor=ne,ne.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},ne},Rf,Zh=T=>{var Y=XA(T),ne=co(Y);return zc(Y),ne},tf=(T,Y)=>{var ne=[],me={};function tt(yt){if(!me[yt]&&!us[yt]){if(ht[yt]){ht[yt].forEach(tt);return}ne.push(yt),me[yt]=!0}}throw Y.forEach(tt),new Rf(`${T}: `+ne.map(Zh).join([", "]))},Yp=(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar,ei,_i,di)=>{ei=co(ei),yt=Uf(tt,yt),Ht&&(Ht=Uf(Nt,Ht)),ar&&(ar=Uf(xn,ar)),di=Uf(_i,di);var wr=sl(ei);ef(wr,function(){tf(`Cannot construct ${ei} due to unbound types`,[me])}),st([T,Y,ne],me?[me]:[],function(pa){pa=pa[0];var Vl,ma;me?(Vl=pa.registeredClass,ma=Vl.instancePrototype):ma=Lf.prototype;var Ia=Ac(ei,function(){if(Object.getPrototypeOf(this)!==Zr)throw new P("Use 'new' to construct "+ei);if(Zi.constructor_body===void 0)throw new P(ei+" has no accessible constructor");var Ws=Zi.constructor_body[arguments.length];if(Ws===void 0)throw new P(`Tried to invoke ctor of ${ei} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Zi.constructor_body).toString()}) parameters instead!`);return Ws.apply(this,arguments)}),Zr=Object.create(ma,{constructor:{value:Ia}});Ia.prototype=Zr;var Zi=new BA(ei,Ia,Zr,di,Vl,yt,Ht,ar);Zi.baseClass&&(Zi.baseClass.__derivedClasses===void 0&&(Zi.baseClass.__derivedClasses=[]),Zi.baseClass.__derivedClasses.push(Zi));var xi=new Rh(ei,Zi,!0,!1,!1),yl=new Rh(ei+"*",Zi,!1,!1,!1),mc=new Rh(ei+" const*",Zi,!1,!0,!1);return ni[T]={pointerType:yl,constPointerType:mc},Ug(wr,Ia),[xi,yl,mc]})},CA=(T,Y)=>{for(var ne=[],me=0;me<T;me++)ne.push(Ri[Y+me*4>>2]);return ne},Of=T=>{for(;T.length;){var Y=T.pop(),ne=T.pop();ne(Y)}};function Dp(T,Y){if(!(T instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof T} which is not a function`);var ne=Ac(T.name||"unknownFunctionName",function(){});ne.prototype=T.prototype;var me=new ne,tt=T.apply(me,Y);return tt instanceof Object?tt:me}function vA(T,Y,ne,me,tt,yt){var Nt=Y.length;Nt<2&&ee("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Ht=Y[1]!==null&&ne!==null,xn=!1,ar=1;ar<Y.length;++ar)if(Y[ar]!==null&&Y[ar].destructorFunction===void 0){xn=!0;break}for(var ei=Y[0].name!=="void",_i="",di="",ar=0;ar<Nt-2;++ar)_i+=(ar!==0?", ":"")+"arg"+ar,di+=(ar!==0?", ":"")+"arg"+ar+"Wired";var wr=` return function (${_i}) { if (arguments.length !== ${Nt-2}) { throwBindingError('function ${T} called with ' + arguments.length + ' arguments, expected ${Nt-2}'); }`;xn&&(wr+=`var destructors = []; `);var pa=xn?"destructors":"null",Vl=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],ma=[ee,me,tt,Of,Y[0],Y[1]];Ht&&(wr+="var thisWired = classParam.toWireType("+pa+`, this); `);for(var ar=0;ar<Nt-2;++ar)wr+="var arg"+ar+"Wired = argType"+ar+".toWireType("+pa+", arg"+ar+"); // "+Y[ar+2].name+` `,Vl.push("argType"+ar),ma.push(Y[ar+2]);if(Ht&&(di="thisWired"+(di.length>0?", ":"")+di),wr+=(ei||yt?"var rv = ":"")+"invoker(fn"+(di.length>0?", ":"")+di+`); `,xn)wr+=`runDestructors(destructors); `;else for(var ar=Ht?1:2;ar<Y.length;++ar){var Ia=ar===1?"thisWired":"arg"+(ar-2)+"Wired";Y[ar].destructorFunction!==null&&(wr+=Ia+"_dtor("+Ia+"); // "+Y[ar].name+` `,Vl.push(Ia+"_dtor"),ma.push(Y[ar].destructorFunction))}ei&&(wr+=`var ret = retType.fromWireType(rv); return ret; `),wr+=`} `,Vl.push(wr);var Zr=Dp(Function,Vl).apply(null,ma);return Ac(T,Zr)}var Ih=(T,Y,ne,me,tt,yt)=>{var Nt=CA(Y,ne);tt=Uf(me,tt),st([],[T],function(Ht){Ht=Ht[0];var xn=`constructor ${Ht.name}`;if(Ht.registeredClass.constructor_body===void 0&&(Ht.registeredClass.constructor_body=[]),Ht.registeredClass.constructor_body[Y-1]!==void 0)throw new P(`Cannot register multiple constructors with identical number of parameters (${Y-1}) for class '${Ht.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Ht.registeredClass.constructor_body[Y-1]=()=>{tf(`Cannot construct ${Ht.name} due to unbound types`,Nt)},st([],Nt,ar=>(ar.splice(1,0,null),Ht.registeredClass.constructor_body[Y-1]=vA(xn,ar,null,tt,yt),[])),[]})},Mp=T=>{T=T.trim();const Y=T.indexOf("(");return Y!==-1?T.substr(0,Y):T},Kf=(T,Y,ne,me,tt,yt,Nt,Ht,xn)=>{var ar=CA(ne,me);Y=co(Y),Y=Mp(Y),yt=Uf(tt,yt),st([],[T],function(ei){ei=ei[0];var _i=`${ei.name}.${Y}`;Y.startsWith("@@")&&(Y=Symbol[Y.substring(2)]),Ht&&ei.registeredClass.pureVirtualFunctions.push(Y);function di(){tf(`Cannot call ${_i} due to unbound types`,ar)}var wr=ei.registeredClass.instancePrototype,pa=wr[Y];return pa===void 0||pa.overloadTable===void 0&&pa.className!==ei.name&&pa.argCount===ne-2?(di.argCount=ne-2,di.className=ei.name,wr[Y]=di):(qu(wr,Y,_i),wr[Y].overloadTable[ne-2]=di),st([],ar,function(Vl){var ma=vA(_i,Vl,ei,yt,Nt,xn);return wr[Y].overloadTable===void 0?(ma.argCount=ne-2,wr[Y]=ma):wr[Y].overloadTable[ne-2]=ma,[]}),[]})};function Lp(){Object.assign(Pf.prototype,{get(T){return this.allocated[T]},has(T){return this.allocated[T]!==void 0},allocate(T){var Y=this.freelist.pop()||this.allocated.length;return this.allocated[Y]=T,Y},free(T){this.allocated[T]=void 0,this.freelist.push(T)}})}function Pf(){this.allocated=[void 0],this.freelist=[]}var pc=new Pf,Bg=T=>{T>=pc.reserved&&--pc.get(T).refcount===0&&pc.free(T)},Hp=()=>{for(var T=0,Y=pc.reserved;Y<pc.allocated.length;++Y)pc.allocated[Y]!==void 0&&++T;return T},xp=()=>{pc.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),pc.reserved=pc.allocated.length,Se.count_emval_handles=Hp},Ch={toValue:T=>(T||ee("Cannot use deleted val. handle = "+T),pc.get(T).value),toHandle:T=>{switch(T){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return pc.allocate({refcount:1,value:T})}}};function VA(T){return this.fromWireType(to[T>>2])}var Op=(T,Y)=>{Y=co(Y),Xt(T,{name:Y,fromWireType:ne=>{var me=Ch.toValue(ne);return Bg(ne),me},toWireType:(ne,me)=>Ch.toHandle(me),argPackAdvance:en,readValueFromPointer:VA,destructorFunction:null})},zf=T=>{if(T===null)return"null";var Y=typeof T;return Y==="object"||Y==="array"||Y==="function"?T.toString():""+T},Kp=(T,Y)=>{switch(Y){case 4:return function(ne){return this.fromWireType(Mo[ne>>2])};case 8:return function(ne){return this.fromWireType(ed[ne>>3])};default:throw new TypeError(`invalid float width (${Y}): ${T}`)}},Pp=(T,Y,ne)=>{Y=co(Y),Xt(T,{name:Y,fromWireType:me=>me,toWireType:(me,tt)=>tt,argPackAdvance:en,readValueFromPointer:Kp(Y,ne),destructorFunction:null})},zp=(T,Y,ne)=>{switch(Y){case 1:return ne?me=>Kr[me>>0]:me=>Sn[me>>0];case 2:return ne?me=>Il[me>>1]:me=>bl[me>>1];case 4:return ne?me=>to[me>>2]:me=>Ri[me>>2];default:throw new TypeError(`invalid integer width (${Y}): ${T}`)}},EA=(T,Y,ne,me,tt)=>{Y=co(Y);var yt=ei=>ei;if(me===0){var Nt=32-8*ne;yt=ei=>ei<<Nt>>>Nt}var Ht=Y.includes("unsigned"),xn=(ei,_i)=>{},ar;Ht?ar=function(_i,di){return xn(di,this.name),di>>>0}:ar=function(_i,di){return xn(di,this.name),di},Xt(T,{name:Y,fromWireType:yt,toWireType:ar,argPackAdvance:en,readValueFromPointer:zp(Y,ne,me!==0),destructorFunction:null})},jp=(T,Y,ne)=>{var me=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],tt=me[Y];function yt(Nt){var Ht=Ri[Nt>>2],xn=Ri[Nt+4>>2];return new tt(Kr.buffer,xn,Ht)}ne=co(ne),Xt(T,{name:ne,fromWireType:yt,argPackAdvance:en,readValueFromPointer:yt},{ignoreDuplicateRegistrations:!0})},ou=(T,Y)=>{Y=co(Y);var ne=Y==="std::string";Xt(T,{name:Y,fromWireType(me){var tt=Ri[me>>2],yt=me+4,Nt;if(ne)for(var Ht=yt,xn=0;xn<=tt;++xn){var ar=yt+xn;if(xn==tt||Sn[ar]==0){var ei=ar-Ht,_i=Po(Ht,ei);Nt===void 0?Nt=_i:(Nt+="\0",Nt+=_i),Ht=ar+1}}else{for(var di=new Array(tt),xn=0;xn<tt;++xn)di[xn]=String.fromCharCode(Sn[yt+xn]);Nt=di.join("")}return zc(me),Nt},toWireType(me,tt){tt instanceof ArrayBuffer&&(tt=new Uint8Array(tt));var yt,Nt=typeof tt=="string";Nt||tt instanceof Uint8Array||tt instanceof Uint8ClampedArray||tt instanceof Int8Array||ee("Cannot pass non-string to std::string"),ne&&Nt?yt=Td(tt):yt=tt.length;var Ht=of(4+yt+1),xn=Ht+4;if(Ri[Ht>>2]=yt,ne&&Nt)hd(tt,xn,yt+1);else if(Nt)for(var ar=0;ar<yt;++ar){var ei=tt.charCodeAt(ar);ei>255&&(zc(xn),ee("String has UTF-16 code units that do not fit in 8 bits")),Sn[xn+ar]=ei}else for(var ar=0;ar<yt;++ar)Sn[xn+ar]=tt[ar];return me!==null&&me.push(zc,Ht),Ht},argPackAdvance:en,readValueFromPointer:Cu,destructorFunction(me){zc(me)}})},hs=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,vh=(T,Y)=>{for(var ne=T,me=ne>>1,tt=me+Y/2;!(me>=tt)&&bl[me];)++me;if(ne=me<<1,ne-T>32&&hs)return hs.decode(Sn.subarray(T,ne));for(var yt="",Nt=0;!(Nt>=Y/2);++Nt){var Ht=Il[T+Nt*2>>1];if(Ht==0)break;yt+=String.fromCharCode(Ht)}return yt},Bf=(T,Y,ne)=>{if(ne===void 0&&(ne=2147483647),ne<2)return 0;ne-=2;for(var me=Y,tt=ne<T.length*2?ne/2:T.length,yt=0;yt<tt;++yt){var Nt=T.charCodeAt(yt);Il[Y>>1]=Nt,Y+=2}return Il[Y>>1]=0,Y-me},Vh=T=>T.length*2,Pc=(T,Y)=>{for(var ne=0,me="";!(ne>=Y/4);){var tt=to[T+ne*4>>2];if(tt==0)break;if(++ne,tt>=65536){var yt=tt-65536;me+=String.fromCharCode(55296|yt>>10,56320|yt&1023)}else me+=String.fromCharCode(tt)}return me},rc=(T,Y,ne)=>{if(ne===void 0&&(ne=2147483647),ne<4)return 0;for(var me=Y,tt=me+ne-4,yt=0;yt<T.length;++yt){var Nt=T.charCodeAt(yt);if(Nt>=55296&&Nt<=57343){var Ht=T.charCodeAt(++yt);Nt=65536+((Nt&1023)<<10)|Ht&1023}if(to[Y>>2]=Nt,Y+=4,Y+4>tt)break}return to[Y>>2]=0,Y-me},Zg=T=>{for(var Y=0,ne=0;ne<T.length;++ne){var me=T.charCodeAt(ne);me>=55296&&me<=57343&&++ne,Y+=4}return Y},Ig=(T,Y,ne)=>{ne=co(ne);var me,tt,yt,Nt,Ht;Y===2?(me=vh,tt=Bf,Nt=Vh,yt=()=>bl,Ht=1):Y===4&&(me=Pc,tt=rc,Nt=Zg,yt=()=>Ri,Ht=2),Xt(T,{name:ne,fromWireType:xn=>{for(var ar=Ri[xn>>2],ei=yt(),_i,di=xn+4,wr=0;wr<=ar;++wr){var pa=xn+4+wr*Y;if(wr==ar||ei[pa>>Ht]==0){var Vl=pa-di,ma=me(di,Vl);_i===void 0?_i=ma:(_i+="\0",_i+=ma),di=pa+Y}}return zc(xn),_i},toWireType:(xn,ar)=>{typeof ar!="string"&&ee(`Cannot pass non-string to C++ string type ${ne}`);var ei=Nt(ar),_i=of(4+ei+Y);return Ri[_i>>2]=ei>>Ht,tt(ar,_i+4,ei+Y),xn!==null&&xn.push(zc,_i),_i},argPackAdvance:en,readValueFromPointer:VA,destructorFunction(xn){zc(xn)}})},Eh=(T,Y)=>{Y=co(Y),Xt(T,{isVoid:!0,name:Y,argPackAdvance:0,fromWireType:()=>{},toWireType:(ne,me)=>{}})},lu=1,Zf=()=>lu,Cg=T=>{T>4&&(pc.get(T).refcount+=1)},_p=(T,Y)=>{var ne=us[T];return ne===void 0&&ee(Y+" has unknown type "+Zh(T)),ne},SA=(T,Y)=>{T=_p(T,"_emval_take_value");var ne=T.readValueFromPointer(Y);return Ch.toHandle(ne)};function $p(T,Y,ne,me,tt,yt,Nt,Ht){var xn=nd(tt,yt);try{if(isNaN(xn))return 61;var ar=qr.getStreamFromFD(me),ei=ze.mmap(ar,T,xn,Y,ne),_i=ei.ptr;return to[Nt>>2]=ei.allocated,Ri[Ht>>2]=_i,0}catch(di){if(typeof ze>"u"||di.name!=="ErrnoError")throw di;return-di.errno}}function qp(T,Y,ne,me,tt,yt,Nt){var Ht=nd(yt,Nt);try{if(isNaN(Ht))return 61;var xn=qr.getStreamFromFD(tt);ne&2&&qr.doMsync(T,xn,Y,me,Ht),ze.munmap(xn)}catch(ar){if(typeof ze>"u"||ar.name!=="ErrnoError")throw ar;return-ar.errno}}var Sh=()=>{Es("")},If=()=>Date.now(),jf=()=>Sn.length,Kd=()=>jf(),Tu;Tu=()=>performance.now();var nf=(T,Y,ne)=>Sn.copyWithin(T,Y,Y+ne),vg=T=>{Es("OOM")},rf=T=>{Sn.length,vg()},Wh={},_f=()=>Oe||"./this.program",Xu=()=>{if(!Xu.strings){var T=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",Y={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:T,_:_f()};for(var ne in Wh)Wh[ne]===void 0?delete Y[ne]:Y[ne]=Wh[ne];var me=[];for(var ne in Y)me.push(`${ne}=${Y[ne]}`);Xu.strings=me}return Xu.strings},em=(T,Y)=>{for(var ne=0;ne<T.length;++ne)Kr[Y++>>0]=T.charCodeAt(ne);Kr[Y>>0]=0},tm=(T,Y)=>{var ne=0;return Xu().forEach((me,tt)=>{var yt=Y+ne;Ri[T+tt*4>>2]=yt,em(me,yt),ne+=me.length+1}),0},nm=(T,Y)=>{var ne=Xu();Ri[T>>2]=ne.length;var me=0;return ne.forEach(tt=>me+=tt.length+1),Ri[Y>>2]=me,0},Nh=0,af=()=>Ls||Nh>0,WA=T=>{af()||(Se.onExit&&Se.onExit(T),mo=!0),mt(T,new tl(T))},NA=(T,Y)=>{af()||Ec(),WA(T)},GA=NA;function rm(T){try{var Y=qr.getStreamFromFD(T);return ze.close(Y),0}catch(ne){if(typeof ze>"u"||ne.name!=="ErrnoError")throw ne;return ne.errno}}var Vg=(T,Y,ne,me)=>{for(var tt=0,yt=0;yt<ne;yt++){var Nt=Ri[Y>>2],Ht=Ri[Y+4>>2];Y+=8;var xn=ze.read(T,Kr,Nt,Ht,me);if(xn<0)return-1;if(tt+=xn,xn<Ht)break}return tt};function $f(T,Y,ne,me){try{var tt=qr.getStreamFromFD(T),yt=Vg(tt,Y,ne);return Ri[me>>2]=yt,0}catch(Nt){if(typeof ze>"u"||Nt.name!=="ErrnoError")throw Nt;return Nt.errno}}function Eg(T,Y,ne,me,tt){var yt=nd(Y,ne);try{if(isNaN(yt))return 61;var Nt=qr.getStreamFromFD(T);return ze.llseek(Nt,yt,me),go=[Nt.position>>>0,(Pa=Nt.position,+Math.abs(Pa)>=1?Pa>0?+Math.floor(Pa/4294967296)>>>0:~~+Math.ceil((Pa-+(~~Pa>>>0))/4294967296)>>>0:0)],to[tt>>2]=go[0],to[tt+4>>2]=go[1],Nt.getdents&&yt===0&&me===0&&(Nt.getdents=null),0}catch(Ht){if(typeof ze>"u"||Ht.name!=="ErrnoError")throw Ht;return Ht.errno}}function Sg(T){try{var Y=qr.getStreamFromFD(T);return Y.stream_ops&&Y.stream_ops.fsync?Y.stream_ops.fsync(Y):0}catch(ne){if(typeof ze>"u"||ne.name!=="ErrnoError")throw ne;return ne.errno}}var JA=(T,Y,ne,me)=>{for(var tt=0,yt=0;yt<ne;yt++){var Nt=Ri[Y>>2],Ht=Ri[Y+4>>2];Y+=8;var xn=ze.write(T,Kr,Nt,Ht,me);if(xn<0)return-1;tt+=xn}return tt};function qf(T,Y,ne,me){try{var tt=qr.getStreamFromFD(T),yt=JA(tt,Y,ne);return Ri[me>>2]=yt,0}catch(Nt){if(typeof ze>"u"||Nt.name!=="ErrnoError")throw Nt;return Nt.errno}}var im=(T,Y)=>(Xc(Sn.subarray(T,T+Y)),0),Gh=T=>T%4===0&&(T%100!==0||T%400===0),am=(T,Y)=>{for(var ne=0,me=0;me<=Y;ne+=T[me++]);return ne},Wg=[31,29,31,30,31,30,31,31,30,31,30,31],Cf=[31,28,31,30,31,30,31,31,30,31,30,31],vf=(T,Y)=>{for(var ne=new Date(T.getTime());Y>0;){var me=Gh(ne.getFullYear()),tt=ne.getMonth(),yt=(me?Wg:Cf)[tt];if(Y>yt-ne.getDate())Y-=yt-ne.getDate()+1,ne.setDate(1),tt<11?ne.setMonth(tt+1):(ne.setMonth(0),ne.setFullYear(ne.getFullYear()+1));else return ne.setDate(ne.getDate()+Y),ne}return ne},om=(T,Y)=>{Kr.set(T,Y)},Ng=(T,Y,ne,me)=>{var tt=Ri[me+40>>2],yt={tm_sec:to[me>>2],tm_min:to[me+4>>2],tm_hour:to[me+8>>2],tm_mday:to[me+12>>2],tm_mon:to[me+16>>2],tm_year:to[me+20>>2],tm_wday:to[me+24>>2],tm_yday:to[me+28>>2],tm_isdst:to[me+32>>2],tm_gmtoff:to[me+36>>2],tm_zone:tt?Po(tt):""},Nt=Po(ne),Ht={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var xn in Ht)Nt=Nt.replace(new RegExp(xn,"g"),Ht[xn]);var ar=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ei=["January","February","March","April","May","June","July","August","September","October","November","December"];function _i(Zr,Zi,xi){for(var yl=typeof Zr=="number"?Zr.toString():Zr||"";yl.length<Zi;)yl=xi[0]+yl;return yl}function di(Zr,Zi){return _i(Zr,Zi,"0")}function wr(Zr,Zi){function xi(mc){return mc<0?-1:mc>0?1:0}var yl;return(yl=xi(Zr.getFullYear()-Zi.getFullYear()))===0&&(yl=xi(Zr.getMonth()-Zi.getMonth()))===0&&(yl=xi(Zr.getDate()-Zi.getDate())),yl}function pa(Zr){switch(Zr.getDay()){case 0:return new Date(Zr.getFullYear()-1,11,29);case 1:return Zr;case 2:return new Date(Zr.getFullYear(),0,3);case 3:return new Date(Zr.getFullYear(),0,2);case 4:return new Date(Zr.getFullYear(),0,1);case 5:return new Date(Zr.getFullYear()-1,11,31);case 6:return new Date(Zr.getFullYear()-1,11,30)}}function Vl(Zr){var Zi=vf(new Date(Zr.tm_year+1900,0,1),Zr.tm_yday),xi=new Date(Zi.getFullYear(),0,4),yl=new Date(Zi.getFullYear()+1,0,4),mc=pa(xi),Ws=pa(yl);return wr(mc,Zi)<=0?wr(Ws,Zi)<=0?Zi.getFullYear()+1:Zi.getFullYear():Zi.getFullYear()-1}var ma={"%a":Zr=>ar[Zr.tm_wday].substring(0,3),"%A":Zr=>ar[Zr.tm_wday],"%b":Zr=>ei[Zr.tm_mon].substring(0,3),"%B":Zr=>ei[Zr.tm_mon],"%C":Zr=>{var Zi=Zr.tm_year+1900;return di(Zi/100|0,2)},"%d":Zr=>di(Zr.tm_mday,2),"%e":Zr=>_i(Zr.tm_mday,2," "),"%g":Zr=>Vl(Zr).toString().substring(2),"%G":Zr=>Vl(Zr),"%H":Zr=>di(Zr.tm_hour,2),"%I":Zr=>{var Zi=Zr.tm_hour;return Zi==0?Zi=12:Zi>12&&(Zi-=12),di(Zi,2)},"%j":Zr=>di(Zr.tm_mday+am(Gh(Zr.tm_year+1900)?Wg:Cf,Zr.tm_mon-1),3),"%m":Zr=>di(Zr.tm_mon+1,2),"%M":Zr=>di(Zr.tm_min,2),"%n":()=>` `,"%p":Zr=>Zr.tm_hour>=0&&Zr.tm_hour<12?"AM":"PM","%S":Zr=>di(Zr.tm_sec,2),"%t":()=>" ","%u":Zr=>Zr.tm_wday||7,"%U":Zr=>{var Zi=Zr.tm_yday+7-Zr.tm_wday;return di(Math.floor(Zi/7),2)},"%V":Zr=>{var Zi=Math.floor((Zr.tm_yday+7-(Zr.tm_wday+6)%7)/7);if((Zr.tm_wday+371-Zr.tm_yday-2)%7<=2&&Zi++,Zi){if(Zi==53){var yl=(Zr.tm_wday+371-Zr.tm_yday)%7;yl!=4&&(yl!=3||!Gh(Zr.tm_year))&&(Zi=1)}}else{Zi=52;var xi=(Zr.tm_wday+7-Zr.tm_yday-1)%7;(xi==4||xi==5&&Gh(Zr.tm_year%400-1))&&Zi++}return di(Zi,2)},"%w":Zr=>Zr.tm_wday,"%W":Zr=>{var Zi=Zr.tm_yday+7-(Zr.tm_wday+6)%7;return di(Math.floor(Zi/7),2)},"%y":Zr=>(Zr.tm_year+1900).toString().substring(2),"%Y":Zr=>Zr.tm_year+1900,"%z":Zr=>{var Zi=Zr.tm_gmtoff,xi=Zi>=0;return Zi=Math.abs(Zi)/60,Zi=Zi/60*100+Zi%60,(xi?"+":"-")+("0000"+Zi).slice(-4)},"%Z":Zr=>Zr.tm_zone,"%%":()=>"%"};Nt=Nt.replace(/%%/g,"\0\0");for(var xn in ma)Nt.includes(xn)&&(Nt=Nt.replace(new RegExp(xn,"g"),ma[xn](yt)));Nt=Nt.replace(/\0\0/g,"%");var Ia=il(Nt,!1);return Ia.length>Y?0:(om(Ia,T),Ia.length-1)},lm=(T,Y,ne,me,tt)=>Ng(T,Y,ne,me),TA=function(Y,ne,me,tt){Y||(Y=this),this.parent=Y,this.mount=Y.mount,this.mounted=null,this.id=ze.nextInode++,this.name=ne,this.mode=me,this.node_ops={},this.stream_ops={},this.rdev=tt},Gg=365,Jh=146;Object.defineProperties(TA.prototype,{read:{get:function(){return(this.mode&Gg)===Gg},set:function(Y){Y?this.mode|=Gg:this.mode&=-366}},write:{get:function(){return(this.mode&Jh)===Jh},set:function(Y){Y?this.mode|=Jh:this.mode&=-147}},isFolder:{get:function(){return ze.isDir(this.mode)}},isDevice:{get:function(){return ze.isChrdev(this.mode)}}}),ze.FSNode=TA,ze.createPreloadedFile=_u,ze.staticInit(),nc(),P=Se.BindingError=function(T){(0,h.default)(Y,T);function Y(ne){var me;return me=T.call(this,ne)||this,me.name="BindingError",me}return Y}((0,f.default)(Error)),Re=Se.InternalError=function(T){(0,h.default)(Y,T);function Y(ne){var me;return me=T.call(this,ne)||this,me.name="InternalError",me}return Y}((0,f.default)(Error)),Tp(),vl(),kp(),Rf=Se.UnboundTypeError=wp(Error,"UnboundTypeError"),Lp(),xp();var Jg={a:mu,t:Rc,s:Ku,c:vd,j:Oc,oa:Lo,m:Gu,g:bu,ea:Kc,R:al,ca:wc,fa:Zu,_:Al,Z:Sa,da:Od,X:Bc,S:Ol,ja:fn,N:Yp,M:Ih,l:Kf,ia:Op,H:Pp,o:EA,k:jp,G:ou,z:Ig,ka:Eh,ga:Zf,sa:Bg,ta:Cg,q:SA,O:$p,P:qp,b:Sh,E:If,Y:Kd,w:Tu,ha:nf,W:rf,$:tm,aa:nm,la:GA,F:rm,D:$f,Q:Eg,ba:Sg,y:qf,U:im,ra:xA,C:kg,f:sm,na:Hg,qa:Yg,d:th,e:Xh,B:zA,v:HA,K:OA,T:fm,p:nh,i:Xg,h:Tg,r:cm,A:Lg,n:Mg,pa:dm,L:wg,I:PA,J:KA,u:Dg,x:um,V:lm,ma:Gc},Ho=fc(),of=T=>(of=Ho.xa)(T),zc=T=>(zc=Ho.ya)(T),XA=T=>(XA=Ho.Aa)(T),kA=()=>(kA=Ho.Ba)(),wA=Se._fflush=T=>(wA=Se._fflush=Ho.Ca)(T),YA=(T,Y)=>(YA=Ho.Da)(T,Y),gs=(T,Y)=>(gs=Ho.Ea)(T,Y),eh=T=>(eh=Ho.Fa)(T),ts=()=>(ts=Ho.Ga)(),Fs=T=>(Fs=Ho.Ha)(T),DA=T=>(DA=Ho.Ia)(T),MA=T=>(MA=Ho.Ja)(T),Th=(T,Y,ne)=>(Th=Ho.Ka)(T,Y,ne),LA=T=>(LA=Ho.La)(T);Se.dynCall_viijj=(T,Y,ne,me,tt,yt,Nt)=>(Se.dynCall_viijj=Ho.Ma)(T,Y,ne,me,tt,yt,Nt),Se.dynCall_viiijjj=(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar)=>(Se.dynCall_viiijjj=Ho.Na)(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar),Se.dynCall_iiiij=(T,Y,ne,me,tt,yt)=>(Se.dynCall_iiiij=Ho.Oa)(T,Y,ne,me,tt,yt),Se.dynCall_jii=(T,Y,ne)=>(Se.dynCall_jii=Ho.Pa)(T,Y,ne),Se.dynCall_jjj=(T,Y,ne,me,tt)=>(Se.dynCall_jjj=Ho.Qa)(T,Y,ne,me,tt),Se.dynCall_iiiijj=(T,Y,ne,me,tt,yt,Nt,Ht)=>(Se.dynCall_iiiijj=Ho.Ra)(T,Y,ne,me,tt,yt,Nt,Ht),Se.dynCall_viijji=(T,Y,ne,me,tt,yt,Nt,Ht)=>(Se.dynCall_viijji=Ho.Sa)(T,Y,ne,me,tt,yt,Nt,Ht),Se.dynCall_iiijj=(T,Y,ne,me,tt,yt,Nt)=>(Se.dynCall_iiijj=Ho.Ta)(T,Y,ne,me,tt,yt,Nt),Se.dynCall_viijjj=(T,Y,ne,me,tt,yt,Nt,Ht,xn)=>(Se.dynCall_viijjj=Ho.Ua)(T,Y,ne,me,tt,yt,Nt,Ht,xn);var Vf=Se.dynCall_iij=(T,Y,ne,me)=>(Vf=Se.dynCall_iij=Ho.Va)(T,Y,ne,me);Se.dynCall_iijjiiii=(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar)=>(Se.dynCall_iijjiiii=Ho.Wa)(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar),Se.dynCall_jiji=(T,Y,ne,me,tt)=>(Se.dynCall_jiji=Ho.Xa)(T,Y,ne,me,tt),Se.dynCall_viijii=(T,Y,ne,me,tt,yt,Nt)=>(Se.dynCall_viijii=Ho.Ya)(T,Y,ne,me,tt,yt,Nt),Se.dynCall_iiiiij=(T,Y,ne,me,tt,yt,Nt)=>(Se.dynCall_iiiiij=Ho.Za)(T,Y,ne,me,tt,yt,Nt),Se.dynCall_iiiiijj=(T,Y,ne,me,tt,yt,Nt,Ht,xn)=>(Se.dynCall_iiiiijj=Ho._a)(T,Y,ne,me,tt,yt,Nt,Ht,xn),Se.dynCall_iiiiiijj=(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar)=>(Se.dynCall_iiiiiijj=Ho.$a)(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar),Se.___start_em_js=261460,Se.___stop_em_js=262072;function sm(T,Y){var ne=ts();try{return fs(T)(Y)}catch(me){if(Fs(ne),me!==me+0)throw me;gs(1,0)}}function th(T,Y,ne){var me=ts();try{return fs(T)(Y,ne)}catch(tt){if(Fs(me),tt!==tt+0)throw tt;gs(1,0)}}function Tg(T,Y,ne){var me=ts();try{fs(T)(Y,ne)}catch(tt){if(Fs(me),tt!==tt+0)throw tt;gs(1,0)}}function Xg(T,Y){var ne=ts();try{fs(T)(Y)}catch(me){if(Fs(ne),me!==me+0)throw me;gs(1,0)}}function HA(T,Y,ne,me,tt,yt){var Nt=ts();try{return fs(T)(Y,ne,me,tt,yt)}catch(Ht){if(Fs(Nt),Ht!==Ht+0)throw Ht;gs(1,0)}}function Xh(T,Y,ne,me){var tt=ts();try{return fs(T)(Y,ne,me)}catch(yt){if(Fs(tt),yt!==yt+0)throw yt;gs(1,0)}}function kg(T){var Y=ts();try{return fs(T)()}catch(ne){if(Fs(Y),ne!==ne+0)throw ne;gs(1,0)}}function wg(T,Y,ne,me,tt){var yt=ts();try{fs(T)(Y,ne,me,tt)}catch(Nt){if(Fs(yt),Nt!==Nt+0)throw Nt;gs(1,0)}}function xA(T,Y){var ne=ts();try{return fs(T)(Y)}catch(me){if(Fs(ne),me!==me+0)throw me;gs(1,0)}}function Yg(T,Y,ne){var me=ts();try{return fs(T)(Y,ne)}catch(tt){if(Fs(me),tt!==tt+0)throw tt;gs(1,0)}}function OA(T,Y,ne,me,tt,yt,Nt){var Ht=ts();try{return fs(T)(Y,ne,me,tt,yt,Nt)}catch(xn){if(Fs(Ht),xn!==xn+0)throw xn;gs(1,0)}}function nh(T){var Y=ts();try{fs(T)()}catch(ne){if(Fs(Y),ne!==ne+0)throw ne;gs(1,0)}}function KA(T,Y,ne,me,tt,yt){var Nt=ts();try{fs(T)(Y,ne,me,tt,yt)}catch(Ht){if(Fs(Nt),Ht!==Ht+0)throw Ht;gs(1,0)}}function Dg(T,Y,ne,me,tt,yt,Nt,Ht,xn,ar){var ei=ts();try{fs(T)(Y,ne,me,tt,yt,Nt,Ht,xn,ar)}catch(_i){if(Fs(ei),_i!==_i+0)throw _i;gs(1,0)}}function Mg(T,Y,ne,me){var tt=ts();try{fs(T)(Y,ne,me)}catch(yt){if(Fs(tt),yt!==yt+0)throw yt;gs(1,0)}}function PA(T,Y,ne,me,tt,yt,Nt){var Ht=ts();try{fs(T)(Y,ne,me,tt,yt,Nt)}catch(xn){if(Fs(Ht),xn!==xn+0)throw xn;gs(1,0)}}function dm(T,Y,ne,me,tt,yt,Nt,Ht){var xn=ts();try{fs(T)(Y,ne,me,tt,yt,Nt,Ht)}catch(ar){if(Fs(xn),ar!==ar+0)throw ar;gs(1,0)}}function cm(T,Y,ne,me){var tt=ts();try{fs(T)(Y,ne,me)}catch(yt){if(Fs(tt),yt!==yt+0)throw yt;gs(1,0)}}function um(T,Y,ne,me,tt,yt,Nt,Ht,xn){var ar=ts();try{fs(T)(Y,ne,me,tt,yt,Nt,Ht,xn)}catch(ei){if(Fs(ar),ei!==ei+0)throw ei;gs(1,0)}}function zA(T,Y,ne,me,tt){var yt=ts();try{return fs(T)(Y,ne,me,tt)}catch(Nt){if(Fs(yt),Nt!==Nt+0)throw Nt;gs(1,0)}}function Lg(T,Y,ne,me,tt){var yt=ts();try{fs(T)(Y,ne,me,tt)}catch(Nt){if(Fs(yt),Nt!==Nt+0)throw Nt;gs(1,0)}}function Hg(T,Y,ne,me,tt){var yt=ts();try{return fs(T)(Y,ne,me,tt)}catch(Nt){if(Fs(yt),Nt!==Nt+0)throw Nt;gs(1,0)}}function fm(T,Y,ne,me){var tt=ts();try{return Vf(T,Y,ne,me)}catch(yt){if(Fs(tt),yt!==yt+0)throw yt;gs(1,0)}}var kh;qd=function T(){kh||Ma(),kh||(qd=T)};function Ma(){if(Vs>0||(pu(),Vs>0))return;function T(){kh||(kh=!0,Se.calledRun=!0,!mo&&(Ti(),le(Se),Se.onRuntimeInitialized&&Se.onRuntimeInitialized(),xl()))}Se.setStatus?(Se.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Se.setStatus("")},1),T()},1)):T()}if(Se.preInit)for(typeof Se.preInit=="function"&&(Se.preInit=[Se.preInit]);Se.preInit.length>0;)Se.preInit.pop()();return Ma(),Ft.ready}})();y=m}let F;{var m=(()=>{var Ft=location.href;return function(Se){Se===void 0&&(Se={});var le=Se,Le,Xe;le.ready=new a((V,k)=>{Le=V,Xe=k});var Oe=Object.assign({},le),mt="./this.program",Wt=(V,k)=>{throw k},Mt=typeof window=="object",pn=typeof importScripts=="function",on=typeof o=="object"&&typeof o.versions=="object"&&typeof o.versions.node=="string",gn=le.ENVIRONMENT_IS_PTHREAD||!1,qn="";function cr(V){return le.locateFile?le.locateFile(V,qn):qn+V}var Gn,Or,un;(Mt||pn)&&(pn?qn=self.location.href:typeof document<"u"&&document.currentScript&&(qn=document.currentScript.src),Ft&&(qn=Ft),qn.indexOf("blob:")!==0?qn=qn.substr(0,qn.replace(/[?#].*/,"").lastIndexOf("/")+1):qn="",Gn=V=>{var k=new XMLHttpRequest;return k.open("GET",V,!1),k.send(null),k.responseText},pn&&(un=V=>{var k=new XMLHttpRequest;return k.open("GET",V,!1),k.responseType="arraybuffer",k.send(null),new Uint8Array(k.response)}),Or=(V,k,_)=>{var de=new XMLHttpRequest;de.open("GET",V,!0),de.responseType="arraybuffer",de.onload=()=>{if(de.status==200||de.status==0&&de.response){k(de.response);return}_()},de.onerror=_,de.send(null)});var Ar=le.print||console.log.bind(console),mo=le.printErr||console.error.bind(console);Object.assign(le,Oe),Oe=null,le.arguments&&le.arguments,le.thisProgram&&(mt=le.thisProgram),le.quit&&(Wt=le.quit);var ds;le.wasmBinary&&(ds=le.wasmBinary),typeof WebAssembly!="object"&&uc("no native wasm support detected");var Kr,Sn,Il=!1,bl;function to(V,k){V||uc(k)}var Ri,Mo,ed,Ds,sa,no,Gd,cc;function pu(){var V=Kr.buffer;le.HEAP8=Ri=new Int8Array(V),le.HEAP16=ed=new Int16Array(V),le.HEAPU8=Mo=new Uint8Array(V),le.HEAPU16=Ds=new Uint16Array(V),le.HEAP32=sa=new Int32Array(V),le.HEAPU32=no=new Uint32Array(V),le.HEAPF32=Gd=new Float32Array(V),le.HEAPF64=cc=new Float64Array(V)}var Ti=le.INITIAL_MEMORY||134217728;if(gn)Kr=le.wasmMemory;else if(le.wasmMemory)Kr=le.wasmMemory;else if(Kr=new WebAssembly.Memory({initial:Ti/65536,maximum:Ti/65536,shared:!0}),!(Kr.buffer instanceof SharedArrayBuffer))throw mo("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),on&&mo("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");pu(),Ti=Kr.buffer.byteLength;var Ec=[],xl=[],Hc=[],Sc=[],td=!1;function Vs(){if(le.preRun)for(typeof le.preRun=="function"&&(le.preRun=[le.preRun]);le.preRun.length;)xc(le.preRun.shift());Od(Ec)}function qd(){gn||(!le.noFSInit&&!Pe.init.initialized&&Pe.init(),Pe.ignorePermissions=!1,Od(xl))}function xd(){gn||(Nt(),Od(Hc),Pe.quit(),Sa.terminateAllThreads(),td=!0)}function Jd(){if(!gn){if(le.postRun)for(typeof le.postRun=="function"&&(le.postRun=[le.postRun]);le.postRun.length;)ec(le.postRun.shift());Od(Sc)}}function xc(V){Ec.unshift(V)}function Es(V){xl.unshift(V)}function ec(V){Sc.unshift(V)}var Ms=0,Cd=null;function Wc(V){return V}function Nc(V){Ms++,le.monitorRunDependencies&&le.monitorRunDependencies(Ms)}function cs(V){if(Ms--,le.monitorRunDependencies&&le.monitorRunDependencies(Ms),Ms==0&&Cd){var k=Cd;Cd=null,k()}}function uc(V){le.onAbort&&le.onAbort(V),V="Aborted("+V+")",mo(V),Il=!0,bl=1,V+=". Build with -sASSERTIONS for more info.";var k=new WebAssembly.RuntimeError(V);throw Xe(k),k}var fc="data:application/octet-stream;base64,",Pa=V=>V.startsWith(fc),go;le.locateFile?(go="main-bin-multi.wasm",Pa(go)||(go=cr(go))):go=new URL("main-bin-multi.wasm",location.href).href;function Gc(V){if(V==go&&ds)return new Uint8Array(ds);if(un)return un(V);throw"both async and sync fetching of the wasm failed"}function tl(V){return!ds&&(Mt||pn)&&typeof fetch=="function"?fetch(V,{credentials:"same-origin"}).then(k=>{if(!k.ok)throw"failed to load wasm binary file at '"+V+"'";return k.arrayBuffer()}).catch(()=>Gc(V)):a.resolve().then(()=>Gc(V))}function Jc(V,k,_){return tl(V).then(de=>WebAssembly.instantiate(de,k)).then(de=>de).then(_,de=>{mo(`failed to asynchronously prepare wasm: ${de}`),uc(de)})}function Ls(V,k,_,de){return!V&&typeof WebAssembly.instantiateStreaming=="function"&&!Pa(k)&&typeof fetch=="function"?fetch(k,{credentials:"same-origin"}).then(He=>{var ut=WebAssembly.instantiateStreaming(He,_);return ut.then(de,function(It){return mo(`wasm streaming compile failed: ${It}`),mo("falling back to ArrayBuffer instantiation"),Jc(k,_,de)})}):Jc(k,_,de)}function Wi(){var V={a:kh};function k(de,He){return Ma=de.exports,ht(Ma.Ka),Zc=Ma.Ga,Es(Ma.Ea),Sn=He,cs(),Ma}Nc();function _(de){k(de.instance,de.module)}if(le.instantiateWasm)try{return le.instantiateWasm(V,k)}catch(de){mo(`Module.instantiateWasm callback failed with error: ${de}`),Xe(de)}return Ls(ds,go,V,_).catch(Xe),{}}var da,Po;function mu(V,k,_,de){const He=Zc.length,ut=new Uint8Array(Mo.slice(V+k,V+_));try{var It=new WebAssembly.Module(ut),Tt=new WebAssembly.Instance(It,{env:{memory:Kr}});for(var Cn in Tt.exports){var er=Tt.exports[Cn];addFunction(er)}return He<Zc.length?He:de}catch(zr){return console.log(zr),de}}function Cl(V){this.name="ExitStatus",this.message=`Program terminated with exit(${V})`,this.status=V}var Rc=V=>{V.terminate(),V.onmessage=k=>{}},Hs=V=>{var k=Sa.pthreads[V];delete Sa.pthreads[V],Rc(k),ei(V),Sa.runningWorkers.splice(Sa.runningWorkers.indexOf(k),1),k.pthread_ptr=0},Ku=V=>{var k=Sa.pthreads[V];k.postMessage({cmd:"cancel"})},iu=V=>{var k=Sa.pthreads[V];Sa.returnWorkerToPool(k)},bu=(V,k)=>(Mo.fill(0,V,V+k),V),Tc=V=>{var k=Sa.getNewWorker();if(!k)return 6;Sa.runningWorkers.push(k),Sa.pthreads[V.pthread_ptr]=k,k.pthread_ptr=V.pthread_ptr;var _={cmd:"run",start_routine:V.startRoutine,arg:V.arg,pthread_ptr:V.pthread_ptr};return k.postMessage(_,V.transferList),0},vd=0,Oc=()=>us||vd>0,Lo={isAbs:V=>V.charAt(0)==="/",splitPath:V=>{var k=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return k.exec(V).slice(1)},normalizeArray:(V,k)=>{for(var _=0,de=V.length-1;de>=0;de--){var He=V[de];He==="."?V.splice(de,1):He===".."?(V.splice(de,1),_++):_&&(V.splice(de,1),_--)}if(k)for(;_;_--)V.unshift("..");return V},normalize:V=>{var k=Lo.isAbs(V),_=V.substr(-1)==="/";return V=Lo.normalizeArray(V.split("/").filter(de=>!!de),!k).join("/"),!V&&!k&&(V="."),V&&_&&(V+="/"),(k?"/":"")+V},dirname:V=>{var k=Lo.splitPath(V),_=k[0],de=k[1];return!_&&!de?".":(de&&(de=de.substr(0,de.length-1)),_+de)},basename:V=>{if(V==="/")return"/";V=Lo.normalize(V),V=V.replace(/\/$/,"");var k=V.lastIndexOf("/");return k===-1?V:V.substr(k+1)},join:function(){var k=Array.prototype.slice.call(arguments);return Lo.normalize(k.join("/"))},join2:(V,k)=>Lo.normalize(V+"/"+k)},Gu=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return V=>(V.set(crypto.getRandomValues(new Uint8Array(V.byteLength))),V);uc("initRandomDevice")},Fo=V=>(Fo=Gu())(V),xs={resolve:function(){for(var k="",_=!1,de=arguments.length-1;de>=-1&&!_;de--){var He=de>=0?arguments[de]:Pe.cwd();if(typeof He!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!He)return"";k=He+"/"+k,_=Lo.isAbs(He)}return k=Lo.normalizeArray(k.split("/").filter(ut=>!!ut),!_).join("/"),(_?"/":"")+k||"."},relative:(V,k)=>{V=xs.resolve(V).substr(1),k=xs.resolve(k).substr(1);function _(er){for(var zr=0;zr<er.length&&er[zr]==="";zr++);for(var na=er.length-1;na>=0&&er[na]==="";na--);return zr>na?[]:er.slice(zr,na-zr+1)}for(var de=_(V.split("/")),He=_(k.split("/")),ut=Math.min(de.length,He.length),It=ut,Tt=0;Tt<ut;Tt++)if(de[Tt]!==He[Tt]){It=Tt;break}for(var Cn=[],Tt=It;Tt<de.length;Tt++)Cn.push("..");return Cn=Cn.concat(He.slice(It)),Cn.join("/")}},Xc=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,bs=(V,k,_)=>{for(var de=k+_,He=k;V[He]&&!(He>=de);)++He;if(He-k>16&&V.buffer&&Xc)return Xc.decode(V.buffer instanceof SharedArrayBuffer?V.slice(k,He):V.subarray(k,He));for(var ut="";k<He;){var It=V[k++];if(!(It&128)){ut+=String.fromCharCode(It);continue}var Tt=V[k++]&63;if((It&224)==192){ut+=String.fromCharCode((It&31)<<6|Tt);continue}var Cn=V[k++]&63;if((It&240)==224?It=(It&15)<<12|Tt<<6|Cn:It=(It&7)<<18|Tt<<12|Cn<<6|V[k++]&63,It<65536)ut+=String.fromCharCode(It);else{var er=It-65536;ut+=String.fromCharCode(55296|er>>10,56320|er&1023)}}return ut},hc=[],Td=V=>{for(var k=0,_=0;_<V.length;++_){var de=V.charCodeAt(_);de<=127?k++:de<=2047?k+=2:de>=55296&&de<=57343?(k+=4,++_):k+=3}return k},au=(V,k,_,de)=>{if(!(de>0))return 0;for(var He=_,ut=_+de-1,It=0;It<V.length;++It){var Tt=V.charCodeAt(It);if(Tt>=55296&&Tt<=57343){var Cn=V.charCodeAt(++It);Tt=65536+((Tt&1023)<<10)|Cn&1023}if(Tt<=127){if(_>=ut)break;k[_++]=Tt}else if(Tt<=2047){if(_+1>=ut)break;k[_++]=192|Tt>>6,k[_++]=128|Tt&63}else if(Tt<=65535){if(_+2>=ut)break;k[_++]=224|Tt>>12,k[_++]=128|Tt>>6&63,k[_++]=128|Tt&63}else{if(_+3>=ut)break;k[_++]=240|Tt>>18,k[_++]=128|Tt>>12&63,k[_++]=128|Tt>>6&63,k[_++]=128|Tt&63}}return k[_]=0,_-He};function il(V,k,_){var de=Td(V)+1,He=new Array(de),ut=au(V,He,0,He.length);return k&&(He.length=ut),He}var ql=()=>{if(!hc.length){var V=null;if(typeof window<"u"&&typeof window.prompt=="function"?(V=window.prompt("Input: "),V!==null&&(V+=` `)):typeof readline=="function"&&(V=readline(),V!==null&&(V+=` `)),!V)return null;hc=il(V,!0)}return hc.shift()},ys={ttys:[],init(){},shutdown(){},register(V,k){ys.ttys[V]={input:[],output:[],ops:k},Pe.registerDevice(V,ys.stream_ops)},stream_ops:{open(V){var k=ys.ttys[V.node.rdev];if(!k)throw new Pe.ErrnoError(43);V.tty=k,V.seekable=!1},close(V){V.tty.ops.fsync(V.tty)},fsync(V){V.tty.ops.fsync(V.tty)},read(V,k,_,de,He){if(!V.tty||!V.tty.ops.get_char)throw new Pe.ErrnoError(60);for(var ut=0,It=0;It<de;It++){var Tt;try{Tt=V.tty.ops.get_char(V.tty)}catch{throw new Pe.ErrnoError(29)}if(Tt===void 0&&ut===0)throw new Pe.ErrnoError(6);if(Tt==null)break;ut++,k[_+It]=Tt}return ut&&(V.node.timestamp=Date.now()),ut},write(V,k,_,de,He){if(!V.tty||!V.tty.ops.put_char)throw new Pe.ErrnoError(60);try{for(var ut=0;ut<de;ut++)V.tty.ops.put_char(V.tty,k[_+ut])}catch{throw new Pe.ErrnoError(29)}return de&&(V.node.timestamp=Date.now()),ut}},default_tty_ops:{get_char(V){return ql()},put_char(V,k){k===null||k===10?(Ar(bs(V.output,0)),V.output=[]):k!=0&&V.output.push(k)},fsync(V){V.output&&V.output.length>0&&(Ar(bs(V.output,0)),V.output=[])},ioctl_tcgets(V){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(V,k,_){return 0},ioctl_tiocgwinsz(V){return[24,80]}},default_tty1_ops:{put_char(V,k){k===null||k===10?(mo(bs(V.output,0)),V.output=[]):k!=0&&V.output.push(k)},fsync(V){V.output&&V.output.length>0&&(mo(bs(V.output,0)),V.output=[])}}},Ju=(V,k)=>Math.ceil(V/k)*k,Bu=V=>{V=Ju(V,65536);var k=tt(65536,V);return k?bu(k,V):0},Ga={ops_table:null,mount(V){return Ga.createNode(null,"/",16895,0)},createNode(V,k,_,de){if(Pe.isBlkdev(_)||Pe.isFIFO(_))throw new Pe.ErrnoError(63);Ga.ops_table||(Ga.ops_table={dir:{node:{getattr:Ga.node_ops.getattr,setattr:Ga.node_ops.setattr,lookup:Ga.node_ops.lookup,mknod:Ga.node_ops.mknod,rename:Ga.node_ops.rename,unlink:Ga.node_ops.unlink,rmdir:Ga.node_ops.rmdir,readdir:Ga.node_ops.readdir,symlink:Ga.node_ops.symlink},stream:{llseek:Ga.stream_ops.llseek}},file:{node:{getattr:Ga.node_ops.getattr,setattr:Ga.node_ops.setattr},stream:{llseek:Ga.stream_ops.llseek,read:Ga.stream_ops.read,write:Ga.stream_ops.write,allocate:Ga.stream_ops.allocate,mmap:Ga.stream_ops.mmap,msync:Ga.stream_ops.msync}},link:{node:{getattr:Ga.node_ops.getattr,setattr:Ga.node_ops.setattr,readlink:Ga.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ga.node_ops.getattr,setattr:Ga.node_ops.setattr},stream:Pe.chrdev_stream_ops}});var He=Pe.createNode(V,k,_,de);return Pe.isDir(He.mode)?(He.node_ops=Ga.ops_table.dir.node,He.stream_ops=Ga.ops_table.dir.stream,He.contents={}):Pe.isFile(He.mode)?(He.node_ops=Ga.ops_table.file.node,He.stream_ops=Ga.ops_table.file.stream,He.usedBytes=0,He.contents=null):Pe.isLink(He.mode)?(He.node_ops=Ga.ops_table.link.node,He.stream_ops=Ga.ops_table.link.stream):Pe.isChrdev(He.mode)&&(He.node_ops=Ga.ops_table.chrdev.node,He.stream_ops=Ga.ops_table.chrdev.stream),He.timestamp=Date.now(),V&&(V.contents[k]=He,V.timestamp=He.timestamp),He},getFileDataAsTypedArray(V){return V.contents?V.contents.subarray?V.contents.subarray(0,V.usedBytes):new Uint8Array(V.contents):new Uint8Array(0)},expandFileStorage(V,k){var _=V.contents?V.contents.length:0;if(!(_>=k)){var de=1024*1024;k=Math.max(k,_*(_<de?2:1.125)>>>0),_!=0&&(k=Math.max(k,256));var He=V.contents;V.contents=new Uint8Array(k),V.usedBytes>0&&V.contents.set(He.subarray(0,V.usedBytes),0)}},resizeFileStorage(V,k){if(V.usedBytes!=k)if(k==0)V.contents=null,V.usedBytes=0;else{var _=V.contents;V.contents=new Uint8Array(k),_&&V.contents.set(_.subarray(0,Math.min(k,V.usedBytes))),V.usedBytes=k}},node_ops:{getattr(V){var k={};return k.dev=Pe.isChrdev(V.mode)?V.id:1,k.ino=V.id,k.mode=V.mode,k.nlink=1,k.uid=0,k.gid=0,k.rdev=V.rdev,Pe.isDir(V.mode)?k.size=4096:Pe.isFile(V.mode)?k.size=V.usedBytes:Pe.isLink(V.mode)?k.size=V.link.length:k.size=0,k.atime=new Date(V.timestamp),k.mtime=new Date(V.timestamp),k.ctime=new Date(V.timestamp),k.blksize=4096,k.blocks=Math.ceil(k.size/k.blksize),k},setattr(V,k){k.mode!==void 0&&(V.mode=k.mode),k.timestamp!==void 0&&(V.timestamp=k.timestamp),k.size!==void 0&&Ga.resizeFileStorage(V,k.size)},lookup(V,k){throw Pe.genericErrors[44]},mknod(V,k,_,de){return Ga.createNode(V,k,_,de)},rename(V,k,_){if(Pe.isDir(V.mode)){var de;try{de=Pe.lookupNode(k,_)}catch{}if(de)for(var He in de.contents)throw new Pe.ErrnoError(55)}delete V.parent.contents[V.name],V.parent.timestamp=Date.now(),V.name=_,k.contents[_]=V,k.timestamp=V.parent.timestamp,V.parent=k},unlink(V,k){delete V.contents[k],V.timestamp=Date.now()},rmdir(V,k){var _=Pe.lookupNode(V,k);for(var de in _.contents)throw new Pe.ErrnoError(55);delete V.contents[k],V.timestamp=Date.now()},readdir(V){var k=[".",".."];for(var _ in V.contents)V.contents.hasOwnProperty(_)&&k.push(_);return k},symlink(V,k,_){var de=Ga.createNode(V,k,41471,0);return de.link=_,de},readlink(V){if(!Pe.isLink(V.mode))throw new Pe.ErrnoError(28);return V.link}},stream_ops:{read(V,k,_,de,He){var ut=V.node.contents;if(He>=V.node.usedBytes)return 0;var It=Math.min(V.node.usedBytes-He,de);if(It>8&&ut.subarray)k.set(ut.subarray(He,He+It),_);else for(var Tt=0;Tt<It;Tt++)k[_+Tt]=ut[He+Tt];return It},write(V,k,_,de,He,ut){if(!de)return 0;var It=V.node;if(It.timestamp=Date.now(),k.subarray&&(!It.contents||It.contents.subarray)){if(ut)return It.contents=k.subarray(_,_+de),It.usedBytes=de,de;if(It.usedBytes===0&&He===0)return It.contents=k.slice(_,_+de),It.usedBytes=de,de;if(He+de<=It.usedBytes)return It.contents.set(k.subarray(_,_+de),He),de}if(Ga.expandFileStorage(It,He+de),It.contents.subarray&&k.subarray)It.contents.set(k.subarray(_,_+de),He);else for(var Tt=0;Tt<de;Tt++)It.contents[He+Tt]=k[_+Tt];return It.usedBytes=Math.max(It.usedBytes,He+de),de},llseek(V,k,_){var de=k;if(_===1?de+=V.position:_===2&&Pe.isFile(V.node.mode)&&(de+=V.node.usedBytes),de<0)throw new Pe.ErrnoError(28);return de},allocate(V,k,_){Ga.expandFileStorage(V.node,k+_),V.node.usedBytes=Math.max(V.node.usedBytes,k+_)},mmap(V,k,_,de,He){if(!Pe.isFile(V.node.mode))throw new Pe.ErrnoError(43);var ut,It,Tt=V.node.contents;if(!(He&2)&&Tt.buffer===Ri.buffer)It=!1,ut=Tt.byteOffset;else{if((_>0||_+k<Tt.length)&&(Tt.subarray?Tt=Tt.subarray(_,_+k):Tt=Array.prototype.slice.call(Tt,_,_+k)),It=!0,ut=Bu(k),!ut)throw new Pe.ErrnoError(48);Ri.set(Tt,ut)}return{ptr:ut,allocated:It}},msync(V,k,_,de,He){return Ga.stream_ops.write(V,k,0,de,_,!1),0}}},Ea=(V,k,_,de)=>{var He=`al ${V}`;Or(V,ut=>{to(ut,`Loading data file "${V}" failed (no arrayBuffer).`),k(new Uint8Array(ut)),He&&cs()},ut=>{if(_)_();else throw`Loading data file "${V}" failed.`}),He&&Nc()},Pu=(V,k,_,de,He,ut)=>{Pe.createDataFile(V,k,_,de,He,ut)},kc=le.preloadPlugins||[],zu=(V,k,_,de)=>{typeof Browser<"u"&&Browser.init();var He=!1;return kc.forEach(ut=>{He||ut.canHandle(k)&&(ut.handle(V,k,_,de),He=!0)}),He},ju=(V,k,_,de,He,ut,It,Tt,Cn,er)=>{var zr=k?xs.resolve(Lo.join2(V,k)):V;function na(ci){function Qi(La){er&&er(),Tt||Pu(V,k,La,de,He,Cn),ut&&ut(),cs()}zu(ci,zr,Qi,()=>{It&&It(),cs()})||Qi(ci)}Nc(),typeof _=="string"?Ea(_,ci=>na(ci),It):na(_)},_u=V=>{var k={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},_=k[V];if(typeof _>"u")throw new Error(`Unknown file open mode: ${V}`);return _},tc=(V,k)=>{var _=0;return V&&(_|=365),k&&(_|=146),_},Pe={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(V,k){if(k===void 0&&(k={}),V=xs.resolve(V),!V)return{path:"",node:null};var _={follow_mount:!0,recurse_count:0};if(k=Object.assign(_,k),k.recurse_count>8)throw new Pe.ErrnoError(32);for(var de=V.split("/").filter(na=>!!na),He=Pe.root,ut="/",It=0;It<de.length;It++){var Tt=It===de.length-1;if(Tt&&k.parent)break;if(He=Pe.lookupNode(He,de[It]),ut=Lo.join2(ut,de[It]),Pe.isMountpoint(He)&&(!Tt||Tt&&k.follow_mount)&&(He=He.mounted.root),!Tt||k.follow)for(var Cn=0;Pe.isLink(He.mode);){var er=Pe.readlink(ut);ut=xs.resolve(Lo.dirname(ut),er);var zr=Pe.lookupPath(ut,{recurse_count:k.recurse_count+1});if(He=zr.node,Cn++>40)throw new Pe.ErrnoError(32)}}return{path:ut,node:He}},getPath(V){for(var k;;){if(Pe.isRoot(V)){var _=V.mount.mountpoint;return k?_[_.length-1]!=="/"?`${_}/${k}`:_+k:_}k=k?`${V.name}/${k}`:V.name,V=V.parent}},hashName(V,k){for(var _=0,de=0;de<k.length;de++)_=(_<<5)-_+k.charCodeAt(de)|0;return(V+_>>>0)%Pe.nameTable.length},hashAddNode(V){var k=Pe.hashName(V.parent.id,V.name);V.name_next=Pe.nameTable[k],Pe.nameTable[k]=V},hashRemoveNode(V){var k=Pe.hashName(V.parent.id,V.name);if(Pe.nameTable[k]===V)Pe.nameTable[k]=V.name_next;else for(var _=Pe.nameTable[k];_;){if(_.name_next===V){_.name_next=V.name_next;break}_=_.name_next}},lookupNode(V,k){var _=Pe.mayLookup(V);if(_)throw new Pe.ErrnoError(_,V);for(var de=Pe.hashName(V.id,k),He=Pe.nameTable[de];He;He=He.name_next){var ut=He.name;if(He.parent.id===V.id&&ut===k)return He}return Pe.lookup(V,k)},createNode(V,k,_,de){var He=new Pe.FSNode(V,k,_,de);return Pe.hashAddNode(He),He},destroyNode(V){Pe.hashRemoveNode(V)},isRoot(V){return V===V.parent},isMountpoint(V){return!!V.mounted},isFile(V){return(V&61440)===32768},isDir(V){return(V&61440)===16384},isLink(V){return(V&61440)===40960},isChrdev(V){return(V&61440)===8192},isBlkdev(V){return(V&61440)===24576},isFIFO(V){return(V&61440)===4096},isSocket(V){return(V&49152)===49152},flagsToPermissionString(V){var k=["r","w","rw"][V&3];return V&512&&(k+="w"),k},nodePermissions(V,k){return Pe.ignorePermissions?0:k.includes("r")&&!(V.mode&292)||k.includes("w")&&!(V.mode&146)||k.includes("x")&&!(V.mode&73)?2:0},mayLookup(V){var k=Pe.nodePermissions(V,"x");return k||(V.node_ops.lookup?0:2)},mayCreate(V,k){try{var _=Pe.lookupNode(V,k);return 20}catch{}return Pe.nodePermissions(V,"wx")},mayDelete(V,k,_){var de;try{de=Pe.lookupNode(V,k)}catch(ut){return ut.errno}var He=Pe.nodePermissions(V,"wx");if(He)return He;if(_){if(!Pe.isDir(de.mode))return 54;if(Pe.isRoot(de)||Pe.getPath(de)===Pe.cwd())return 10}else if(Pe.isDir(de.mode))return 31;return 0},mayOpen(V,k){return V?Pe.isLink(V.mode)?32:Pe.isDir(V.mode)&&(Pe.flagsToPermissionString(k)!=="r"||k&512)?31:Pe.nodePermissions(V,Pe.flagsToPermissionString(k)):44},MAX_OPEN_FDS:4096,nextfd(){for(var V=0;V<=Pe.MAX_OPEN_FDS;V++)if(!Pe.streams[V])return V;throw new Pe.ErrnoError(33)},getStreamChecked(V){var k=Pe.getStream(V);if(!k)throw new Pe.ErrnoError(8);return k},getStream:V=>Pe.streams[V],createStream(V,k){return k===void 0&&(k=-1),Pe.FSStream||(Pe.FSStream=function(){this.shared={}},Pe.FSStream.prototype={},Object.defineProperties(Pe.FSStream.prototype,{object:{get(){return this.node},set(_){this.node=_}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(_){this.shared.flags=_}},position:{get(){return this.shared.position},set(_){this.shared.position=_}}})),V=Object.assign(new Pe.FSStream,V),k==-1&&(k=Pe.nextfd()),V.fd=k,Pe.streams[k]=V,V},closeStream(V){Pe.streams[V]=null},chrdev_stream_ops:{open(V){var k=Pe.getDevice(V.node.rdev);V.stream_ops=k.stream_ops,V.stream_ops.open&&V.stream_ops.open(V)},llseek(){throw new Pe.ErrnoError(70)}},major:V=>V>>8,minor:V=>V&255,makedev:(V,k)=>V<<8|k,registerDevice(V,k){Pe.devices[V]={stream_ops:k}},getDevice:V=>Pe.devices[V],getMounts(V){for(var k=[],_=[V];_.length;){var de=_.pop();k.push(de),_.push.apply(_,de.mounts)}return k},syncfs(V,k){typeof V=="function"&&(k=V,V=!1),Pe.syncFSRequests++,Pe.syncFSRequests>1&&mo(`warning: ${Pe.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var _=Pe.getMounts(Pe.root.mount),de=0;function He(It){return Pe.syncFSRequests--,k(It)}function ut(It){if(It)return ut.errored?void 0:(ut.errored=!0,He(It));++de>=_.length&&He(null)}_.forEach(It=>{if(!It.type.syncfs)return ut(null);It.type.syncfs(It,V,ut)})},mount(V,k,_){var de=_==="/",He=!_,ut;if(de&&Pe.root)throw new Pe.ErrnoError(10);if(!de&&!He){var It=Pe.lookupPath(_,{follow_mount:!1});if(_=It.path,ut=It.node,Pe.isMountpoint(ut))throw new Pe.ErrnoError(10);if(!Pe.isDir(ut.mode))throw new Pe.ErrnoError(54)}var Tt={type:V,opts:k,mountpoint:_,mounts:[]},Cn=V.mount(Tt);return Cn.mount=Tt,Tt.root=Cn,de?Pe.root=Cn:ut&&(ut.mounted=Tt,ut.mount&&ut.mount.mounts.push(Tt)),Cn},unmount(V){var k=Pe.lookupPath(V,{follow_mount:!1});if(!Pe.isMountpoint(k.node))throw new Pe.ErrnoError(28);var _=k.node,de=_.mounted,He=Pe.getMounts(de);Object.keys(Pe.nameTable).forEach(It=>{for(var Tt=Pe.nameTable[It];Tt;){var Cn=Tt.name_next;He.includes(Tt.mount)&&Pe.destroyNode(Tt),Tt=Cn}}),_.mounted=null;var ut=_.mount.mounts.indexOf(de);_.mount.mounts.splice(ut,1)},lookup(V,k){return V.node_ops.lookup(V,k)},mknod(V,k,_){var de=Pe.lookupPath(V,{parent:!0}),He=de.node,ut=Lo.basename(V);if(!ut||ut==="."||ut==="..")throw new Pe.ErrnoError(28);var It=Pe.mayCreate(He,ut);if(It)throw new Pe.ErrnoError(It);if(!He.node_ops.mknod)throw new Pe.ErrnoError(63);return He.node_ops.mknod(He,ut,k,_)},create(V,k){return k=k!==void 0?k:438,k&=4095,k|=32768,Pe.mknod(V,k,0)},mkdir(V,k){return k=k!==void 0?k:511,k&=1023,k|=16384,Pe.mknod(V,k,0)},mkdirTree(V,k){for(var _=V.split("/"),de="",He=0;He<_.length;++He)if(_[He]){de+="/"+_[He];try{Pe.mkdir(de,k)}catch(ut){if(ut.errno!=20)throw ut}}},mkdev(V,k,_){return typeof _>"u"&&(_=k,k=438),k|=8192,Pe.mknod(V,k,_)},symlink(V,k){if(!xs.resolve(V))throw new Pe.ErrnoError(44);var _=Pe.lookupPath(k,{parent:!0}),de=_.node;if(!de)throw new Pe.ErrnoError(44);var He=Lo.basename(k),ut=Pe.mayCreate(de,He);if(ut)throw new Pe.ErrnoError(ut);if(!de.node_ops.symlink)throw new Pe.ErrnoError(63);return de.node_ops.symlink(de,He,V)},rename(V,k){var _=Lo.dirname(V),de=Lo.dirname(k),He=Lo.basename(V),ut=Lo.basename(k),It,Tt,Cn;if(It=Pe.lookupPath(V,{parent:!0}),Tt=It.node,It=Pe.lookupPath(k,{parent:!0}),Cn=It.node,!Tt||!Cn)throw new Pe.ErrnoError(44);if(Tt.mount!==Cn.mount)throw new Pe.ErrnoError(75);var er=Pe.lookupNode(Tt,He),zr=xs.relative(V,de);if(zr.charAt(0)!==".")throw new Pe.ErrnoError(28);if(zr=xs.relative(k,_),zr.charAt(0)!==".")throw new Pe.ErrnoError(55);var na;try{na=Pe.lookupNode(Cn,ut)}catch{}if(er!==na){var ci=Pe.isDir(er.mode),Qi=Pe.mayDelete(Tt,He,ci);if(Qi)throw new Pe.ErrnoError(Qi);if(Qi=na?Pe.mayDelete(Cn,ut,ci):Pe.mayCreate(Cn,ut),Qi)throw new Pe.ErrnoError(Qi);if(!Tt.node_ops.rename)throw new Pe.ErrnoError(63);if(Pe.isMountpoint(er)||na&&Pe.isMountpoint(na))throw new Pe.ErrnoError(10);if(Cn!==Tt&&(Qi=Pe.nodePermissions(Tt,"w"),Qi))throw new Pe.ErrnoError(Qi);Pe.hashRemoveNode(er);try{Tt.node_ops.rename(er,Cn,ut)}catch(La){throw La}finally{Pe.hashAddNode(er)}}},rmdir(V){var k=Pe.lookupPath(V,{parent:!0}),_=k.node,de=Lo.basename(V),He=Pe.lookupNode(_,de),ut=Pe.mayDelete(_,de,!0);if(ut)throw new Pe.ErrnoError(ut);if(!_.node_ops.rmdir)throw new Pe.ErrnoError(63);if(Pe.isMountpoint(He))throw new Pe.ErrnoError(10);_.node_ops.rmdir(_,de),Pe.destroyNode(He)},readdir(V){var k=Pe.lookupPath(V,{follow:!0}),_=k.node;if(!_.node_ops.readdir)throw new Pe.ErrnoError(54);return _.node_ops.readdir(_)},unlink(V){var k=Pe.lookupPath(V,{parent:!0}),_=k.node;if(!_)throw new Pe.ErrnoError(44);var de=Lo.basename(V),He=Pe.lookupNode(_,de),ut=Pe.mayDelete(_,de,!1);if(ut)throw new Pe.ErrnoError(ut);if(!_.node_ops.unlink)throw new Pe.ErrnoError(63);if(Pe.isMountpoint(He))throw new Pe.ErrnoError(10);_.node_ops.unlink(_,de),Pe.destroyNode(He)},readlink(V){var k=Pe.lookupPath(V),_=k.node;if(!_)throw new Pe.ErrnoError(44);if(!_.node_ops.readlink)throw new Pe.ErrnoError(28);return xs.resolve(Pe.getPath(_.parent),_.node_ops.readlink(_))},stat(V,k){var _=Pe.lookupPath(V,{follow:!k}),de=_.node;if(!de)throw new Pe.ErrnoError(44);if(!de.node_ops.getattr)throw new Pe.ErrnoError(63);return de.node_ops.getattr(de)},lstat(V){return Pe.stat(V,!0)},chmod(V,k,_){var de;if(typeof V=="string"){var He=Pe.lookupPath(V,{follow:!_});de=He.node}else de=V;if(!de.node_ops.setattr)throw new Pe.ErrnoError(63);de.node_ops.setattr(de,{mode:k&4095|de.mode&-4096,timestamp:Date.now()})},lchmod(V,k){Pe.chmod(V,k,!0)},fchmod(V,k){var _=Pe.getStreamChecked(V);Pe.chmod(_.node,k)},chown(V,k,_,de){var He;if(typeof V=="string"){var ut=Pe.lookupPath(V,{follow:!de});He=ut.node}else He=V;if(!He.node_ops.setattr)throw new Pe.ErrnoError(63);He.node_ops.setattr(He,{timestamp:Date.now()})},lchown(V,k,_){Pe.chown(V,k,_,!0)},fchown(V,k,_){var de=Pe.getStreamChecked(V);Pe.chown(de.node,k,_)},truncate(V,k){if(k<0)throw new Pe.ErrnoError(28);var _;if(typeof V=="string"){var de=Pe.lookupPath(V,{follow:!0});_=de.node}else _=V;if(!_.node_ops.setattr)throw new Pe.ErrnoError(63);if(Pe.isDir(_.mode))throw new Pe.ErrnoError(31);if(!Pe.isFile(_.mode))throw new Pe.ErrnoError(28);var He=Pe.nodePermissions(_,"w");if(He)throw new Pe.ErrnoError(He);_.node_ops.setattr(_,{size:k,timestamp:Date.now()})},ftruncate(V,k){var _=Pe.getStreamChecked(V);if(!(_.flags&2097155))throw new Pe.ErrnoError(28);Pe.truncate(_.node,k)},utime(V,k,_){var de=Pe.lookupPath(V,{follow:!0}),He=de.node;He.node_ops.setattr(He,{timestamp:Math.max(k,_)})},open(V,k,_){if(V==="")throw new Pe.ErrnoError(44);k=typeof k=="string"?_u(k):k,_=typeof _>"u"?438:_,k&64?_=_&4095|32768:_=0;var de;if(typeof V=="object")de=V;else{V=Lo.normalize(V);try{var He=Pe.lookupPath(V,{follow:!(k&131072)});de=He.node}catch{}}var ut=!1;if(k&64)if(de){if(k&128)throw new Pe.ErrnoError(20)}else de=Pe.mknod(V,_,0),ut=!0;if(!de)throw new Pe.ErrnoError(44);if(Pe.isChrdev(de.mode)&&(k&=-513),k&65536&&!Pe.isDir(de.mode))throw new Pe.ErrnoError(54);if(!ut){var It=Pe.mayOpen(de,k);if(It)throw new Pe.ErrnoError(It)}k&512&&!ut&&Pe.truncate(de,0),k&=-131713;var Tt=Pe.createStream({node:de,path:Pe.getPath(de),flags:k,seekable:!0,position:0,stream_ops:de.stream_ops,ungotten:[],error:!1});return Tt.stream_ops.open&&Tt.stream_ops.open(Tt),le.logReadFiles&&!(k&1)&&(Pe.readFiles||(Pe.readFiles={}),V in Pe.readFiles||(Pe.readFiles[V]=1)),Tt},close(V){if(Pe.isClosed(V))throw new Pe.ErrnoError(8);V.getdents&&(V.getdents=null);try{V.stream_ops.close&&V.stream_ops.close(V)}catch(k){throw k}finally{Pe.closeStream(V.fd)}V.fd=null},isClosed(V){return V.fd===null},llseek(V,k,_){if(Pe.isClosed(V))throw new Pe.ErrnoError(8);if(!V.seekable||!V.stream_ops.llseek)throw new Pe.ErrnoError(70);if(_!=0&&_!=1&&_!=2)throw new Pe.ErrnoError(28);return V.position=V.stream_ops.llseek(V,k,_),V.ungotten=[],V.position},read(V,k,_,de,He){if(de<0||He<0)throw new Pe.ErrnoError(28);if(Pe.isClosed(V))throw new Pe.ErrnoError(8);if((V.flags&2097155)===1)throw new Pe.ErrnoError(8);if(Pe.isDir(V.node.mode))throw new Pe.ErrnoError(31);if(!V.stream_ops.read)throw new Pe.ErrnoError(28);var ut=typeof He<"u";if(!ut)He=V.position;else if(!V.seekable)throw new Pe.ErrnoError(70);var It=V.stream_ops.read(V,k,_,de,He);return ut||(V.position+=It),It},write(V,k,_,de,He,ut){if(de<0||He<0)throw new Pe.ErrnoError(28);if(Pe.isClosed(V))throw new Pe.ErrnoError(8);if(!(V.flags&2097155))throw new Pe.ErrnoError(8);if(Pe.isDir(V.node.mode))throw new Pe.ErrnoError(31);if(!V.stream_ops.write)throw new Pe.ErrnoError(28);V.seekable&&V.flags&1024&&Pe.llseek(V,0,2);var It=typeof He<"u";if(!It)He=V.position;else if(!V.seekable)throw new Pe.ErrnoError(70);var Tt=V.stream_ops.write(V,k,_,de,He,ut);return It||(V.position+=Tt),Tt},allocate(V,k,_){if(Pe.isClosed(V))throw new Pe.ErrnoError(8);if(k<0||_<=0)throw new Pe.ErrnoError(28);if(!(V.flags&2097155))throw new Pe.ErrnoError(8);if(!Pe.isFile(V.node.mode)&&!Pe.isDir(V.node.mode))throw new Pe.ErrnoError(43);if(!V.stream_ops.allocate)throw new Pe.ErrnoError(138);V.stream_ops.allocate(V,k,_)},mmap(V,k,_,de,He){if(de&2&&!(He&2)&&(V.flags&2097155)!==2)throw new Pe.ErrnoError(2);if((V.flags&2097155)===1)throw new Pe.ErrnoError(2);if(!V.stream_ops.mmap)throw new Pe.ErrnoError(43);return V.stream_ops.mmap(V,k,_,de,He)},msync(V,k,_,de,He){return V.stream_ops.msync?V.stream_ops.msync(V,k,_,de,He):0},munmap:V=>0,ioctl(V,k,_){if(!V.stream_ops.ioctl)throw new Pe.ErrnoError(59);return V.stream_ops.ioctl(V,k,_)},readFile(V,k){if(k===void 0&&(k={}),k.flags=k.flags||0,k.encoding=k.encoding||"binary",k.encoding!=="utf8"&&k.encoding!=="binary")throw new Error(`Invalid encoding type "${k.encoding}"`);var _,de=Pe.open(V,k.flags),He=Pe.stat(V),ut=He.size,It=new Uint8Array(ut);return Pe.read(de,It,0,ut,0),k.encoding==="utf8"?_=bs(It,0):k.encoding==="binary"&&(_=It),Pe.close(de),_},writeFile(V,k,_){_===void 0&&(_={}),_.flags=_.flags||577;var de=Pe.open(V,_.flags,_.mode);if(typeof k=="string"){var He=new Uint8Array(Td(k)+1),ut=au(k,He,0,He.length);Pe.write(de,He,0,ut,void 0,_.canOwn)}else if(ArrayBuffer.isView(k))Pe.write(de,k,0,k.byteLength,void 0,_.canOwn);else throw new Error("Unsupported data type");Pe.close(de)},cwd:()=>Pe.currentPath,chdir(V){var k=Pe.lookupPath(V,{follow:!0});if(k.node===null)throw new Pe.ErrnoError(44);if(!Pe.isDir(k.node.mode))throw new Pe.ErrnoError(54);var _=Pe.nodePermissions(k.node,"x");if(_)throw new Pe.ErrnoError(_);Pe.currentPath=k.path},createDefaultDirectories(){Pe.mkdir("/tmp"),Pe.mkdir("/home"),Pe.mkdir("/home/web_user")},createDefaultDevices(){Pe.mkdir("/dev"),Pe.registerDevice(Pe.makedev(1,3),{read:()=>0,write:(de,He,ut,It,Tt)=>It}),Pe.mkdev("/dev/null",Pe.makedev(1,3)),ys.register(Pe.makedev(5,0),ys.default_tty_ops),ys.register(Pe.makedev(6,0),ys.default_tty1_ops),Pe.mkdev("/dev/tty",Pe.makedev(5,0)),Pe.mkdev("/dev/tty1",Pe.makedev(6,0));var V=new Uint8Array(1024),k=0,_=()=>(k===0&&(k=Fo(V).byteLength),V[--k]);Pe.createDevice("/dev","random",_),Pe.createDevice("/dev","urandom",_),Pe.mkdir("/dev/shm"),Pe.mkdir("/dev/shm/tmp")},createSpecialDirectories(){Pe.mkdir("/proc");var V=Pe.mkdir("/proc/self");Pe.mkdir("/proc/self/fd"),Pe.mount({mount(){var k=Pe.createNode(V,"fd",16895,73);return k.node_ops={lookup(_,de){var He=+de,ut=Pe.getStreamChecked(He),It={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>ut.path}};return It.parent=It,It}},k}},{},"/proc/self/fd")},createStandardStreams(){le.stdin?Pe.createDevice("/dev","stdin",le.stdin):Pe.symlink("/dev/tty","/dev/stdin"),le.stdout?Pe.createDevice("/dev","stdout",null,le.stdout):Pe.symlink("/dev/tty","/dev/stdout"),le.stderr?Pe.createDevice("/dev","stderr",null,le.stderr):Pe.symlink("/dev/tty1","/dev/stderr"),Pe.open("/dev/stdin",0),Pe.open("/dev/stdout",1),Pe.open("/dev/stderr",1)},ensureErrnoError(){Pe.ErrnoError||(Pe.ErrnoError=function(k,_){this.name="ErrnoError",this.node=_,this.setErrno=function(de){this.errno=de},this.setErrno(k),this.message="FS error"},Pe.ErrnoError.prototype=new Error,Pe.ErrnoError.prototype.constructor=Pe.ErrnoError,[44].forEach(V=>{Pe.genericErrors[V]=new Pe.ErrnoError(V),Pe.genericErrors[V].stack="<generic error, no stack>"}))},staticInit(){Pe.ensureErrnoError(),Pe.nameTable=new Array(4096),Pe.mount(Ga,{},"/"),Pe.createDefaultDirectories(),Pe.createDefaultDevices(),Pe.createSpecialDirectories(),Pe.filesystems={MEMFS:Ga}},init(V,k,_){Pe.init.initialized=!0,Pe.ensureErrnoError(),le.stdin=V||le.stdin,le.stdout=k||le.stdout,le.stderr=_||le.stderr,Pe.createStandardStreams()},quit(){Pe.init.initialized=!1,xn(0);for(var V=0;V<Pe.streams.length;V++){var k=Pe.streams[V];k&&Pe.close(k)}},findObject(V,k){var _=Pe.analyzePath(V,k);return _.exists?_.object:null},analyzePath(V,k){try{var _=Pe.lookupPath(V,{follow:!k});V=_.path}catch{}var de={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var _=Pe.lookupPath(V,{parent:!0});de.parentExists=!0,de.parentPath=_.path,de.parentObject=_.node,de.name=Lo.basename(V),_=Pe.lookupPath(V,{follow:!k}),de.exists=!0,de.path=_.path,de.object=_.node,de.name=_.node.name,de.isRoot=_.path==="/"}catch(He){de.error=He.errno}return de},createPath(V,k,_,de){V=typeof V=="string"?V:Pe.getPath(V);for(var He=k.split("/").reverse();He.length;){var ut=He.pop();if(ut){var It=Lo.join2(V,ut);try{Pe.mkdir(It)}catch{}V=It}}return It},createFile(V,k,_,de,He){var ut=Lo.join2(typeof V=="string"?V:Pe.getPath(V),k),It=tc(de,He);return Pe.create(ut,It)},createDataFile(V,k,_,de,He,ut){var It=k;V&&(V=typeof V=="string"?V:Pe.getPath(V),It=k?Lo.join2(V,k):V);var Tt=tc(de,He),Cn=Pe.create(It,Tt);if(_){if(typeof _=="string"){for(var er=new Array(_.length),zr=0,na=_.length;zr<na;++zr)er[zr]=_.charCodeAt(zr);_=er}Pe.chmod(Cn,Tt|146);var ci=Pe.open(Cn,577);Pe.write(ci,_,0,_.length,0,ut),Pe.close(ci),Pe.chmod(Cn,Tt)}},createDevice(V,k,_,de){var He=Lo.join2(typeof V=="string"?V:Pe.getPath(V),k),ut=tc(!!_,!!de);Pe.createDevice.major||(Pe.createDevice.major=64);var It=Pe.makedev(Pe.createDevice.major++,0);return Pe.registerDevice(It,{open(Tt){Tt.seekable=!1},close(Tt){de&&de.buffer&&de.buffer.length&&de(10)},read(Tt,Cn,er,zr,na){for(var ci=0,Qi=0;Qi<zr;Qi++){var La;try{La=_()}catch{throw new Pe.ErrnoError(29)}if(La===void 0&&ci===0)throw new Pe.ErrnoError(6);if(La==null)break;ci++,Cn[er+Qi]=La}return ci&&(Tt.node.timestamp=Date.now()),ci},write(Tt,Cn,er,zr,na){for(var ci=0;ci<zr;ci++)try{de(Cn[er+ci])}catch{throw new Pe.ErrnoError(29)}return zr&&(Tt.node.timestamp=Date.now()),ci}}),Pe.mkdev(He,ut,It)},forceLoadFile(V){if(V.isDevice||V.isFolder||V.link||V.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(Gn)try{V.contents=il(Gn(V.url),!0),V.usedBytes=V.contents.length}catch{throw new Pe.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile(V,k,_,de,He){function ut(){this.lengthKnown=!1,this.chunks=[]}if(ut.prototype.get=function(Qi){if(!(Qi>this.length-1||Qi<0)){var La=Qi%this.chunkSize,ns=Qi/this.chunkSize|0;return this.getter(ns)[La]}},ut.prototype.setDataGetter=function(Qi){this.getter=Qi},ut.prototype.cacheLength=function(){var Qi=new XMLHttpRequest;if(Qi.open("HEAD",_,!1),Qi.send(null),!(Qi.status>=200&&Qi.status<300||Qi.status===304))throw new Error("Couldn't load "+_+". Status: "+Qi.status);var La=Number(Qi.getResponseHeader("Content-length")),ns,As=(ns=Qi.getResponseHeader("Accept-Ranges"))&&ns==="bytes",Os=(ns=Qi.getResponseHeader("Content-Encoding"))&&ns==="gzip",Sr=1024*1024;As||(Sr=La);var wi=(rs,jc)=>{if(rs>jc)throw new Error("invalid range ("+rs+", "+jc+") or no bytes requested!");if(jc>La-1)throw new Error("only "+La+" bytes available! programmer error!");var Ad=new XMLHttpRequest;if(Ad.open("GET",_,!1),La!==Sr&&Ad.setRequestHeader("Range","bytes="+rs+"-"+jc),Ad.responseType="arraybuffer",Ad.overrideMimeType&&Ad.overrideMimeType("text/plain; charset=x-user-defined"),Ad.send(null),!(Ad.status>=200&&Ad.status<300||Ad.status===304))throw new Error("Couldn't load "+_+". Status: "+Ad.status);return Ad.response!==void 0?new Uint8Array(Ad.response||[]):il(Ad.responseText||"",!0)},Vd=this;Vd.setDataGetter(rs=>{var jc=rs*Sr,Ad=(rs+1)*Sr-1;if(Ad=Math.min(Ad,La-1),typeof Vd.chunks[rs]>"u"&&(Vd.chunks[rs]=wi(jc,Ad)),typeof Vd.chunks[rs]>"u")throw new Error("doXHR failed!");return Vd.chunks[rs]}),(Os||!La)&&(Sr=La=1,La=this.getter(0).length,Sr=La,Ar("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=La,this._chunkSize=Sr,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!pn)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var It=new ut;Object.defineProperties(It,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Tt={isDevice:!1,contents:It}}else var Tt={isDevice:!1,url:_};var Cn=Pe.createFile(V,k,Tt,de,He);Tt.contents?Cn.contents=Tt.contents:Tt.url&&(Cn.contents=null,Cn.url=Tt.url),Object.defineProperties(Cn,{usedBytes:{get:function(){return this.contents.length}}});var er={},zr=Object.keys(Cn.stream_ops);zr.forEach(ci=>{var Qi=Cn.stream_ops[ci];er[ci]=function(){return Pe.forceLoadFile(Cn),Qi.apply(null,arguments)}});function na(ci,Qi,La,ns,As){var Os=ci.node.contents;if(As>=Os.length)return 0;var Sr=Math.min(Os.length-As,ns);if(Os.slice)for(var wi=0;wi<Sr;wi++)Qi[La+wi]=Os[As+wi];else for(var wi=0;wi<Sr;wi++)Qi[La+wi]=Os.get(As+wi);return Sr}return er.read=(ci,Qi,La,ns,As)=>(Pe.forceLoadFile(Cn),na(ci,Qi,La,ns,As)),er.mmap=(ci,Qi,La,ns,As)=>{Pe.forceLoadFile(Cn);var Os=Bu(Qi);if(!Os)throw new Pe.ErrnoError(48);return na(ci,Ri,Os,Qi,La),{ptr:Os,allocated:!0}},Cn.stream_ops=er,Cn}},ze=(V,k)=>V?bs(Mo,V,k):"",qr={DEFAULT_POLLMASK:5,calculateAt(V,k,_){if(Lo.isAbs(k))return k;var de;if(V===-100)de=Pe.cwd();else{var He=qr.getStreamFromFD(V);de=He.path}if(k.length==0){if(!_)throw new Pe.ErrnoError(44);return de}return Lo.join2(de,k)},doStat(V,k,_){try{var de=V(k)}catch(Tt){if(Tt&&Tt.node&&Lo.normalize(k)!==Lo.normalize(Pe.getPath(Tt.node)))return-54;throw Tt}sa[_>>2]=de.dev,sa[_+4>>2]=de.mode,no[_+8>>2]=de.nlink,sa[_+12>>2]=de.uid,sa[_+16>>2]=de.gid,sa[_+20>>2]=de.rdev,Po=[de.size>>>0,(da=de.size,+Math.abs(da)>=1?da>0?+Math.floor(da/4294967296)>>>0:~~+Math.ceil((da-+(~~da>>>0))/4294967296)>>>0:0)],sa[_+24>>2]=Po[0],sa[_+28>>2]=Po[1],sa[_+32>>2]=4096,sa[_+36>>2]=de.blocks;var He=de.atime.getTime(),ut=de.mtime.getTime(),It=de.ctime.getTime();return Po=[Math.floor(He/1e3)>>>0,(da=Math.floor(He/1e3),+Math.abs(da)>=1?da>0?+Math.floor(da/4294967296)>>>0:~~+Math.ceil((da-+(~~da>>>0))/4294967296)>>>0:0)],sa[_+40>>2]=Po[0],sa[_+44>>2]=Po[1],no[_+48>>2]=He%1e3*1e3,Po=[Math.floor(ut/1e3)>>>0,(da=Math.floor(ut/1e3),+Math.abs(da)>=1?da>0?+Math.floor(da/4294967296)>>>0:~~+Math.ceil((da-+(~~da>>>0))/4294967296)>>>0:0)],sa[_+56>>2]=Po[0],sa[_+60>>2]=Po[1],no[_+64>>2]=ut%1e3*1e3,Po=[Math.floor(It/1e3)>>>0,(da=Math.floor(It/1e3),+Math.abs(da)>=1?da>0?+Math.floor(da/4294967296)>>>0:~~+Math.ceil((da-+(~~da>>>0))/4294967296)>>>0:0)],sa[_+72>>2]=Po[0],sa[_+76>>2]=Po[1],no[_+80>>2]=It%1e3*1e3,Po=[de.ino>>>0,(da=de.ino,+Math.abs(da)>=1?da>0?+Math.floor(da/4294967296)>>>0:~~+Math.ceil((da-+(~~da>>>0))/4294967296)>>>0:0)],sa[_+88>>2]=Po[0],sa[_+92>>2]=Po[1],0},doMsync(V,k,_,de,He){if(!Pe.isFile(k.node.mode))throw new Pe.ErrnoError(43);if(de&2)return 0;var ut=Mo.slice(V,V+_);Pe.msync(k,ut,He,_,de)},varargs:void 0,get(){var V=sa[+qr.varargs>>2];return qr.varargs+=4,V},getp(){return qr.get()},getStr(V){var k=ze(V);return k},getStreamFromFD(V){var k=Pe.getStreamChecked(V);return k}},Kc=V=>{var k=ma(),_=V();return Ia(k),_},nd=(V,k)=>k+2097152>>>0<4194305-!!V?(V>>>0)+k*4294967296:NaN,al=function(k,_){var de=arguments.length-2,He=arguments;return Kc(()=>{for(var ut=de,It=Zr(ut*8),Tt=It>>3,Cn=0;Cn<de;Cn++){var er=He[2+Cn];cc[Tt+Cn]=er}return ar(k,ut,It,_)})};function wc(V){if(gn)return al(0,1,V);bl=V,Oc()||(Sa.terminateAllThreads(),le.onExit&&le.onExit(V),Il=!0),Wt(V,new Cl(V))}var Zu=(V,k)=>{if(bl=V,gn)throw Ol(V),"unwind";Oc()||xd(),wc(V)},hd=Zu,Al=V=>{if(V instanceof Cl||V=="unwind")return bl;Wt(1,V)},Sa={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){gn?Sa.initWorker():Sa.initMainThread()},initMainThread(){for(var V=4;V--;)Sa.allocateUnusedWorker();xc(()=>{Nc(),Sa.loadWasmModuleToAllWorkers(()=>cs())})},initWorker(){us=!1},setExitStatus:V=>{bl=V},terminateAllThreads__deps:["$terminateWorker"],terminateAllThreads:()=>{for(var V=A(Sa.runningWorkers),k;!(k=V()).done;){var _=k.value;Rc(_)}for(var de=A(Sa.unusedWorkers),He;!(He=de()).done;){var _=He.value;Rc(_)}Sa.unusedWorkers=[],Sa.runningWorkers=[],Sa.pthreads=[]},returnWorkerToPool:V=>{var k=V.pthread_ptr;delete Sa.pthreads[k],Sa.unusedWorkers.push(V),Sa.runningWorkers.splice(Sa.runningWorkers.indexOf(V),1),V.pthread_ptr=0,ei(k)},receiveObjectTransfer(V){},threadInitTLS(){Sa.tlsInitFunctions.forEach(V=>V())},loadWasmModuleToWorker:V=>new a(k=>{V.onmessage=Tt=>{var Cn=Tt.data,er=Cn.cmd;if(Cn.targetThread&&Cn.targetThread!=T()){var zr=Sa.pthreads[Cn.targetThread];zr?zr.postMessage(Cn,Cn.transferList):mo(`Internal error! Worker sent a message "${er}" to target pthread ${Cn.targetThread}, but that thread no longer exists!`);return}er==="checkMailbox"?vf():er==="spawnThread"?Tc(Cn):er==="cleanupThread"?iu(Cn.thread):er==="killThread"?Hs(Cn.thread):er==="cancelThread"?Ku(Cn.thread):er==="loaded"?(V.loaded=!0,k(V)):er==="alert"?alert(`Thread ${Cn.threadId}: ${Cn.text}`):Cn.target==="setimmediate"?V.postMessage(Cn):er==="callHandler"?le[Cn.handler](...Cn.args):er&&mo(`worker sent an unknown command ${er}`)},V.onerror=Tt=>{var Cn="worker sent an error!";throw mo(`${Cn} ${Tt.filename}:${Tt.lineno}: ${Tt.message}`),Tt};for(var _=[],de=["onExit","onAbort","print","printErr"],He=0,ut=de;He<ut.length;He++){var It=ut[He];le.hasOwnProperty(It)&&_.push(It)}V.postMessage({cmd:"load",handlers:_,urlOrBlob:le.mainScriptUrlOrBlob,wasmMemory:Kr,wasmModule:Sn})}),loadWasmModuleToAllWorkers(V){if(gn)return V();a.all(Sa.unusedWorkers.map(Sa.loadWasmModuleToWorker)).then(V)},allocateUnusedWorker(){var V;if(!le.locateFile)V=new Worker(new URL("main-bin-multi.worker.js",location.href),{type:"module"});else{var k=cr("main-bin-multi.worker.js");V=new Worker(k,{type:"module"})}Sa.unusedWorkers.push(V)},getNewWorker(){return Sa.unusedWorkers.length==0&&(Sa.allocateUnusedWorker(),Sa.loadWasmModuleToWorker(Sa.unusedWorkers[0])),Sa.unusedWorkers.pop()}};le.PThread=Sa;var Od=V=>{for(;V.length>0;)V.shift()(le)},Bc=()=>{var V=T(),k=no[V+52>>2],_=no[V+56>>2],de=k-_;Vl(k,de),Ia(k)};le.establishStackSpace=Bc;function Ol(V){if(gn)return al(1,0,V);hd(V)}var nc=[],Zc,co=V=>{var k=nc[V];return k||(V>=nc.length&&(nc.length=V+1),nc[V]=k=Zc.get(V)),k},gd=(V,k)=>{vd=0;var _=co(V)(k);function de(He){Oc()?Sa.setExitStatus(He):_i(He)}de(_)};le.invokeEntryPoint=gd;var us=le.noExitRuntime||!1,ht=V=>{Sa.tlsInitFunctions.push(V)},P=(V,k,_,de)=>{uc(`Assertion failed: ${ze(V)}, at: `+[k?ze(k):"unknown filename",_,de?ze(de):"unknown function"])},ee=[],Re=V=>{var k=new tn(V);return k.get_caught()||k.set_caught(!0),k.set_rethrown(!1),ee.push(k),xi(k.excPtr),k.get_exception_ptr()},rt=0,st=()=>{wr(0,0);var V=ee.pop();Zi(V.excPtr),rt=0};function tn(V){this.excPtr=V,this.ptr=V-24,this.set_type=function(k){no[this.ptr+4>>2]=k},this.get_type=function(){return no[this.ptr+4>>2]},this.set_destructor=function(k){no[this.ptr+8>>2]=k},this.get_destructor=function(){return no[this.ptr+8>>2]},this.set_caught=function(k){k=k?1:0,Ri[this.ptr+12>>0]=k},this.get_caught=function(){return Ri[this.ptr+12>>0]!=0},this.set_rethrown=function(k){k=k?1:0,Ri[this.ptr+13>>0]=k},this.get_rethrown=function(){return Ri[this.ptr+13>>0]!=0},this.init=function(k,_){this.set_adjusted_ptr(0),this.set_type(k),this.set_destructor(_)},this.set_adjusted_ptr=function(k){no[this.ptr+16>>2]=k},this.get_adjusted_ptr=function(){return no[this.ptr+16>>2]},this.get_exception_ptr=function(){var k=mc(this.get_type());if(k)return no[this.excPtr>>2];var _=this.get_adjusted_ptr();return _!==0?_:this.excPtr}}var Xt=V=>{throw rt||(rt=V),rt},en=V=>{var k=rt;if(!k)return pa(0),0;var _=new tn(k);_.set_adjusted_ptr(k);var de=_.get_type();if(!de)return pa(0),k;for(var He in V){var ut=V[He];if(ut===0||ut===de)break;var It=_.ptr+16;if(yl(ut,de,It))return pa(ut),k}return pa(de),k},fn=()=>en([]),ge=V=>en([V]),ot=()=>{var V=ee.pop();V||uc("no exception to throw");var k=V.excPtr;throw V.get_rethrown()||(ee.push(V),V.set_rethrown(!0),V.set_caught(!1)),rt=k,rt},Vt=(V,k,_)=>{var de=new tn(V);throw de.init(k,_),rt=V,rt},Ut=V=>{Ht(V,!pn,1,!Mt,65536,!1),Sa.threadInitTLS()},Rn=V=>{gn?postMessage({cmd:"cleanupThread",thread:V}):iu(V)};function kn(V,k,_,de){return gn?al(2,1,V,k,_,de):Bn(V,k,_,de)}var Bn=(V,k,_,de)=>{if(typeof SharedArrayBuffer>"u")return mo("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var He=[],ut=0;if(gn&&(He.length===0||ut))return kn(V,k,_,de);var It={startRoutine:_,pthread_ptr:V,arg:de,transferList:He};return gn?(It.cmd="spawnThread",postMessage(It,He),0):Tc(It)},ni=V=>(sa[me()>>2]=V,V);function Uo(V,k,_){if(gn)return al(3,1,V,k,_);qr.varargs=_;try{var de=qr.getStreamFromFD(V);switch(k){case 0:{var He=qr.get();if(He<0)return-28;for(;Pe.streams[He];)He++;var ut;return ut=Pe.createStream(de,He),ut.fd}case 1:case 2:return 0;case 3:return de.flags;case 4:{var He=qr.get();return de.flags|=He,0}case 5:{var He=qr.getp(),It=0;return ed[He+It>>1]=2,0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:return ni(28),-1;default:return-28}}catch(Tt){if(typeof Pe>"u"||Tt.name!=="ErrnoError")throw Tt;return-Tt.errno}}function Aa(V,k){if(gn)return al(4,1,V,k);try{var _=qr.getStreamFromFD(V);return qr.doStat(Pe.stat,_.path,k)}catch(de){if(typeof Pe>"u"||de.name!=="ErrnoError")throw de;return-de.errno}}function ji(V,k,_){if(gn)return al(5,1,V,k,_);var de=nd(k,_);try{return isNaN(de)?61:(Pe.ftruncate(V,de),0)}catch(He){if(typeof Pe>"u"||He.name!=="ErrnoError")throw He;return-He.errno}}function To(V,k,_){if(gn)return al(6,1,V,k,_);qr.varargs=_;try{var de=qr.getStreamFromFD(V);switch(k){case 21509:return de.tty?0:-59;case 21505:{if(!de.tty)return-59;if(de.tty.ops.ioctl_tcgets){var He=de.tty.ops.ioctl_tcgets(de),ut=qr.getp();sa[ut>>2]=He.c_iflag||0,sa[ut+4>>2]=He.c_oflag||0,sa[ut+8>>2]=He.c_cflag||0,sa[ut+12>>2]=He.c_lflag||0;for(var It=0;It<32;It++)Ri[ut+It+17>>0]=He.c_cc[It]||0;return 0}return 0}case 21510:case 21511:case 21512:return de.tty?0:-59;case 21506:case 21507:case 21508:{if(!de.tty)return-59;if(de.tty.ops.ioctl_tcsets){for(var ut=qr.getp(),Tt=sa[ut>>2],Cn=sa[ut+4>>2],er=sa[ut+8>>2],zr=sa[ut+12>>2],na=[],It=0;It<32;It++)na.push(Ri[ut+It+17>>0]);return de.tty.ops.ioctl_tcsets(de.tty,k,{c_iflag:Tt,c_oflag:Cn,c_cflag:er,c_lflag:zr,c_cc:na})}return 0}case 21519:{if(!de.tty)return-59;var ut=qr.getp();return sa[ut>>2]=0,0}case 21520:return de.tty?-28:-59;case 21531:{var ut=qr.getp();return Pe.ioctl(de,k,ut)}case 21523:{if(!de.tty)return-59;if(de.tty.ops.ioctl_tiocgwinsz){var ci=de.tty.ops.ioctl_tiocgwinsz(de.tty),ut=qr.getp();ed[ut>>1]=ci[0],ed[ut+2>>1]=ci[1]}return 0}case 21524:return de.tty?0:-59;case 21515:return de.tty?0:-59;default:return-28}}catch(Qi){if(typeof Pe>"u"||Qi.name!=="ErrnoError")throw Qi;return-Qi.errno}}function es(V,k){if(gn)return al(7,1,V,k);try{return V=qr.getStr(V),qr.doStat(Pe.lstat,V,k)}catch(_){if(typeof Pe>"u"||_.name!=="ErrnoError")throw _;return-_.errno}}function Ja(V,k,_,de){if(gn)return al(8,1,V,k,_,de);try{k=qr.getStr(k);var He=de&256,ut=de&4096;return de=de&-6401,k=qr.calculateAt(V,k,ut),qr.doStat(He?Pe.lstat:Pe.stat,k,_)}catch(It){if(typeof Pe>"u"||It.name!=="ErrnoError")throw It;return-It.errno}}function vl(V,k,_,de){if(gn)return al(9,1,V,k,_,de);qr.varargs=de;try{k=qr.getStr(k),k=qr.calculateAt(V,k);var He=de?qr.get():0;return Pe.open(k,_,He).fd}catch(ut){if(typeof Pe>"u"||ut.name!=="ErrnoError")throw ut;return-ut.errno}}var Ss=(V,k,_)=>au(V,Mo,k,_);function gc(V,k,_,de){if(gn)return al(10,1,V,k,_,de);try{if(k=qr.getStr(k),k=qr.calculateAt(V,k),de<=0)return-28;var He=Pe.readlink(k),ut=Math.min(de,Td(He)),It=Ri[_+ut];return Ss(He,_,de+1),Ri[_+ut]=It,ut}catch(Tt){if(typeof Pe>"u"||Tt.name!=="ErrnoError")throw Tt;return-Tt.errno}}function Qh(V,k,_,de){if(gn)return al(11,1,V,k,_,de);try{return k=qr.getStr(k),de=qr.getStr(de),k=qr.calculateAt(V,k),de=qr.calculateAt(_,de),Pe.rename(k,de),0}catch(He){if(typeof Pe>"u"||He.name!=="ErrnoError")throw He;return-He.errno}}function $u(V,k){if(gn)return al(12,1,V,k);try{return V=qr.getStr(V),qr.doStat(Pe.stat,V,k)}catch(_){if(typeof Pe>"u"||_.name!=="ErrnoError")throw _;return-_.errno}}function RA(V,k,_){if(gn)return al(13,1,V,k,_);try{return k=qr.getStr(k),k=qr.calculateAt(V,k),_===0?Pe.unlink(k):_===512?Pe.rmdir(k):uc("Invalid flags passed to unlinkat"),0}catch(de){if(typeof Pe>"u"||de.name!=="ErrnoError")throw de;return-de.errno}}var Mf=(V,k,_,de,He)=>{},Tp=()=>{for(var V=new Array(256),k=0;k<256;++k)V[k]=String.fromCharCode(k);Lf=V},Lf,Ac=V=>{for(var k="",_=V;Mo[_];)k+=Lf[Mo[_++]];return k},qu={},ef={},Uh={},Ff,sl=V=>{throw new Ff(V)},BA,Qf=V=>{throw new BA(V)},Hf=(V,k,_)=>{V.forEach(function(Tt){Uh[Tt]=k});function de(Tt){var Cn=_(Tt);Cn.length!==V.length&&Qf("Mismatched type converter count");for(var er=0;er<V.length;++er)Iu(V[er],Cn[er])}var He=new Array(k.length),ut=[],It=0;k.forEach((Tt,Cn)=>{ef.hasOwnProperty(Tt)?He[Cn]=ef[Tt]:(ut.push(Tt),qu.hasOwnProperty(Tt)||(qu[Tt]=[]),qu[Tt].push(()=>{He[Cn]=ef[Tt],++It,It===ut.length&&de(He)}))}),ut.length===0&&de(He)};function Xp(V,k,_){_===void 0&&(_={});var de=k.name;if(V||sl(`type "${de}" must have a positive integer typeid pointer`),ef.hasOwnProperty(V)){if(_.ignoreDuplicateRegistrations)return;sl(`Cannot register type '${de}' twice`)}if(ef[V]=k,delete Uh[V],qu.hasOwnProperty(V)){var He=qu[V];delete qu[V],He.forEach(ut=>ut())}}function Iu(V,k,_){if(_===void 0&&(_={}),!("argPackAdvance"in k))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Xp(V,k,_)}var Cu=8,kp=(V,k,_,de)=>{k=Ac(k),Iu(V,{name:k,fromWireType:function(ut){return!!ut},toWireType:function(ut,It){return It?_:de},argPackAdvance:Cu,readValueFromPointer:function(ut){return this.fromWireType(Mo[ut])},destructorFunction:null})},Rh=V=>({count:V.count,deleteScheduled:V.deleteScheduled,preservePointerOnDelete:V.preservePointerOnDelete,ptr:V.ptr,ptrType:V.ptrType,smartPtr:V.smartPtr,smartPtrType:V.smartPtrType}),Ug=V=>{function k(_){return _.$$.ptrType.registeredClass.name}sl(k(V)+" instance already deleted")},Rg=!1,xf=V=>{},Bh=V=>{V.smartPtr?V.smartPtrType.rawDestructor(V.smartPtr):V.ptrType.registeredClass.rawDestructor(V.ptr)},fs=V=>{V.count.value-=1;var k=V.count.value===0;k&&Bh(V)},ZA=(V,k,_)=>{if(k===_)return V;if(_.baseClass===void 0)return null;var de=ZA(V,k,_.baseClass);return de===null?null:_.downcast(de)},IA={},Uf=()=>Object.keys(Of).length,wp=()=>{var V=[];for(var k in Of)Of.hasOwnProperty(k)&&V.push(Of[k]);return V},Rf=[],Zh=()=>{for(;Rf.length;){var V=Rf.pop();V.$$.deleteScheduled=!1,V.delete()}},tf,Yp=V=>{tf=V,Rf.length&&tf&&tf(Zh)},CA=()=>{le.getInheritedInstanceCount=Uf,le.getLiveInheritedInstances=wp,le.flushPendingDeletes=Zh,le.setDelayFunction=Yp},Of={},Dp=(V,k)=>{for(k===void 0&&sl("ptr should not be undefined");V.baseClass;)k=V.upcast(k),V=V.baseClass;return k},vA=(V,k)=>(k=Dp(V,k),Of[k]),Ih=(V,k)=>{(!k.ptrType||!k.ptr)&&Qf("makeClassHandle requires ptr and ptrType");var _=!!k.smartPtrType,de=!!k.smartPtr;return _!==de&&Qf("Both smartPtrType and smartPtr must be specified"),k.count={value:1},Kf(Object.create(V,{$$:{value:k}}))};function Mp(V){var k=this.getPointee(V);if(!k)return this.destructor(V),null;var _=vA(this.registeredClass,k);if(_!==void 0){if(_.$$.count.value===0)return _.$$.ptr=k,_.$$.smartPtr=V,_.clone();var de=_.clone();return this.destructor(V),de}function He(){return this.isSmartPointer?Ih(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:k,smartPtrType:this,smartPtr:V}):Ih(this.registeredClass.instancePrototype,{ptrType:this,ptr:V})}var ut=this.registeredClass.getActualType(k),It=IA[ut];if(!It)return He.call(this);var Tt;this.isConst?Tt=It.constPointerType:Tt=It.pointerType;var Cn=ZA(k,this.registeredClass,Tt.registeredClass);return Cn===null?He.call(this):this.isSmartPointer?Ih(Tt.registeredClass.instancePrototype,{ptrType:Tt,ptr:Cn,smartPtrType:this,smartPtr:V}):Ih(Tt.registeredClass.instancePrototype,{ptrType:Tt,ptr:Cn})}var Kf=V=>typeof FinalizationRegistry>"u"?(Kf=k=>k,V):(Rg=new FinalizationRegistry(k=>{fs(k.$$)}),Kf=k=>{var _=k.$$,de=!!_.smartPtr;if(de){var He={$$:_};Rg.register(k,He,k)}return k},xf=k=>Rg.unregister(k),Kf(V)),Lp=()=>{Object.assign(Pf.prototype,{isAliasOf(V){if(!(this instanceof Pf)||!(V instanceof Pf))return!1;var k=this.$$.ptrType.registeredClass,_=this.$$.ptr;V.$$=V.$$;for(var de=V.$$.ptrType.registeredClass,He=V.$$.ptr;k.baseClass;)_=k.upcast(_),k=k.baseClass;for(;de.baseClass;)He=de.upcast(He),de=de.baseClass;return k===de&&_===He},clone(){if(this.$$.ptr||Ug(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var V=Kf(Object.create(Object.getPrototypeOf(this),{$$:{value:Rh(this.$$)}}));return V.$$.count.value+=1,V.$$.deleteScheduled=!1,V},delete(){this.$$.ptr||Ug(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&sl("Object already scheduled for deletion"),xf(this),fs(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Ug(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&sl("Object already scheduled for deletion"),Rf.push(this),Rf.length===1&&tf&&tf(Zh),this.$$.deleteScheduled=!0,this}})};function Pf(){}var pc=(V,k)=>Object.defineProperty(k,"name",{value:V}),Bg=(V,k,_)=>{if(V[k].overloadTable===void 0){var de=V[k];V[k]=function(){return V[k].overloadTable.hasOwnProperty(arguments.length)||sl(`Function '${_}' called with an invalid number of arguments (${arguments.length}) - expects one of (${V[k].overloadTable})!`),V[k].overloadTable[arguments.length].apply(this,arguments)},V[k].overloadTable=[],V[k].overloadTable[de.argCount]=de}},Hp=(V,k,_)=>{le.hasOwnProperty(V)?(sl(`Cannot register public name '${V}' twice`),Bg(le,V,V),le.hasOwnProperty(_)&&sl(`Cannot register multiple overloads of a function with the same number of arguments (${_})!`),le[V].overloadTable[_]=k):le[V]=k},xp=48,Ch=57,VA=V=>{if(V===void 0)return"_unknown";V=V.replace(/[^a-zA-Z0-9_]/g,"$");var k=V.charCodeAt(0);return k>=xp&&k<=Ch?`_${V}`:V};function Op(V,k,_,de,He,ut,It,Tt){this.name=V,this.constructor=k,this.instancePrototype=_,this.rawDestructor=de,this.baseClass=He,this.getActualType=ut,this.upcast=It,this.downcast=Tt,this.pureVirtualFunctions=[]}var zf=(V,k,_)=>{for(;k!==_;)k.upcast||sl(`Expected null or instance of ${_.name}, got an instance of ${k.name}`),V=k.upcast(V),k=k.baseClass;return V};function Kp(V,k){if(k===null)return this.isReference&&sl(`null is not a valid ${this.name}`),0;k.$$||sl(`Cannot pass "${Xu(k)}" as a ${this.name}`),k.$$.ptr||sl(`Cannot pass deleted object as a pointer of type ${this.name}`);var _=k.$$.ptrType.registeredClass,de=zf(k.$$.ptr,_,this.registeredClass);return de}function Pp(V,k){var _;if(k===null)return this.isReference&&sl(`null is not a valid ${this.name}`),this.isSmartPointer?(_=this.rawConstructor(),V!==null&&V.push(this.rawDestructor,_),_):0;k.$$||sl(`Cannot pass "${Xu(k)}" as a ${this.name}`),k.$$.ptr||sl(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&k.$$.ptrType.isConst&&sl(`Cannot convert argument of type ${k.$$.smartPtrType?k.$$.smartPtrType.name:k.$$.ptrType.name} to parameter type ${this.name}`);var de=k.$$.ptrType.registeredClass;if(_=zf(k.$$.ptr,de,this.registeredClass),this.isSmartPointer)switch(k.$$.smartPtr===void 0&&sl("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:k.$$.smartPtrType===this?_=k.$$.smartPtr:sl(`Cannot convert argument of type ${k.$$.smartPtrType?k.$$.smartPtrType.name:k.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:_=k.$$.smartPtr;break;case 2:if(k.$$.smartPtrType===this)_=k.$$.smartPtr;else{var He=k.clone();_=this.rawShare(_,rf.toHandle(()=>He.delete())),V!==null&&V.push(this.rawDestructor,_)}break;default:sl("Unsupporting sharing policy")}return _}function zp(V,k){if(k===null)return this.isReference&&sl(`null is not a valid ${this.name}`),0;k.$$||sl(`Cannot pass "${Xu(k)}" as a ${this.name}`),k.$$.ptr||sl(`Cannot pass deleted object as a pointer of type ${this.name}`),k.$$.ptrType.isConst&&sl(`Cannot convert argument of type ${k.$$.ptrType.name} to parameter type ${this.name}`);var _=k.$$.ptrType.registeredClass,de=zf(k.$$.ptr,_,this.registeredClass);return de}function EA(V){return this.fromWireType(no[V>>2])}var jp=()=>{Object.assign(ou.prototype,{getPointee(V){return this.rawGetPointee&&(V=this.rawGetPointee(V)),V},destructor(V){this.rawDestructor&&this.rawDestructor(V)},argPackAdvance:Cu,readValueFromPointer:EA,deleteObject(V){V!==null&&V.delete()},fromWireType:Mp})};function ou(V,k,_,de,He,ut,It,Tt,Cn,er,zr){this.name=V,this.registeredClass=k,this.isReference=_,this.isConst=de,this.isSmartPointer=He,this.pointeeType=ut,this.sharingPolicy=It,this.rawGetPointee=Tt,this.rawConstructor=Cn,this.rawShare=er,this.rawDestructor=zr,!He&&k.baseClass===void 0?de?(this.toWireType=Kp,this.destructorFunction=null):(this.toWireType=zp,this.destructorFunction=null):this.toWireType=Pp}var hs=(V,k,_)=>{le.hasOwnProperty(V)||Qf("Replacing nonexistant public symbol"),le[V].overloadTable!==void 0&&_!==void 0||(le[V]=k,le[V].argCount=_)},vh=(V,k,_)=>{var de=le["dynCall_"+V];return _&&_.length?de.apply(null,[k].concat(_)):de.call(null,k)},Bf=(V,k,_)=>{if(V.includes("j"))return vh(V,k,_);var de=co(k).apply(null,_);return de},Vh=(V,k)=>{var _=[];return function(){return _.length=0,Object.assign(_,arguments),Bf(V,k,_)}},Pc=(V,k)=>{V=Ac(V);function _(){return V.includes("j")?Vh(V,k):co(k)}var de=_();return typeof de!="function"&&sl(`unknown function pointer with signature ${V}: ${k}`),de},rc=(V,k)=>{var _=pc(k,function(de){this.name=k,this.message=de;var He=new Error(de).stack;He!==void 0&&(this.stack=this.toString()+` `+He.replace(/^Error(:[^\n]*)?\n/,""))});return _.prototype=Object.create(V.prototype),_.prototype.constructor=_,_.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},_},Zg,Ig=V=>{var k=yt(V),_=Ac(k);return ne(k),_},Eh=(V,k)=>{var _=[],de={};function He(ut){if(!de[ut]&&!ef[ut]){if(Uh[ut]){Uh[ut].forEach(He);return}_.push(ut),de[ut]=!0}}throw k.forEach(He),new Zg(`${V}: `+_.map(Ig).join([", "]))},lu=(V,k,_,de,He,ut,It,Tt,Cn,er,zr,na,ci)=>{zr=Ac(zr),ut=Pc(He,ut),Tt&&(Tt=Pc(It,Tt)),er&&(er=Pc(Cn,er)),ci=Pc(na,ci);var Qi=VA(zr);Hp(Qi,function(){Eh(`Cannot construct ${zr} due to unbound types`,[de])}),Hf([V,k,_],de?[de]:[],function(La){La=La[0];var ns,As;de?(ns=La.registeredClass,As=ns.instancePrototype):As=Pf.prototype;var Os=pc(zr,function(){if(Object.getPrototypeOf(this)!==Sr)throw new Ff("Use 'new' to construct "+zr);if(wi.constructor_body===void 0)throw new Ff(zr+" has no accessible constructor");var Ad=wi.constructor_body[arguments.length];if(Ad===void 0)throw new Ff(`Tried to invoke ctor of ${zr} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(wi.constructor_body).toString()}) parameters instead!`);return Ad.apply(this,arguments)}),Sr=Object.create(As,{constructor:{value:Os}});Os.prototype=Sr;var wi=new Op(zr,Os,Sr,ci,ns,ut,Tt,er);wi.baseClass&&(wi.baseClass.__derivedClasses===void 0&&(wi.baseClass.__derivedClasses=[]),wi.baseClass.__derivedClasses.push(wi));var Vd=new ou(zr,wi,!0,!1,!1),rs=new ou(zr+"*",wi,!1,!1,!1),jc=new ou(zr+" const*",wi,!1,!0,!1);return IA[V]={pointerType:rs,constPointerType:jc},hs(Qi,Os),[Vd,rs,jc]})},Zf=(V,k)=>{for(var _=[],de=0;de<V;de++)_.push(no[k+de*4>>2]);return _},Cg=V=>{for(;V.length;){var k=V.pop(),_=V.pop();_(k)}};function _p(V,k){if(!(V instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof V} which is not a function`);var _=pc(V.name||"unknownFunctionName",function(){});_.prototype=V.prototype;var de=new _,He=V.apply(de,k);return He instanceof Object?He:de}function SA(V,k,_,de,He,ut){var It=k.length;It<2&&sl("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Tt=k[1]!==null&&_!==null,Cn=!1,er=1;er<k.length;++er)if(k[er]!==null&&k[er].destructorFunction===void 0){Cn=!0;break}for(var zr=k[0].name!=="void",na="",ci="",er=0;er<It-2;++er)na+=(er!==0?", ":"")+"arg"+er,ci+=(er!==0?", ":"")+"arg"+er+"Wired";var Qi=` return function (${na}) { if (arguments.length !== ${It-2}) { throwBindingError('function ${V} called with ' + arguments.length + ' arguments, expected ${It-2}'); }`;Cn&&(Qi+=`var destructors = []; `);var La=Cn?"destructors":"null",ns=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],As=[sl,de,He,Cg,k[0],k[1]];Tt&&(Qi+="var thisWired = classParam.toWireType("+La+`, this); `);for(var er=0;er<It-2;++er)Qi+="var arg"+er+"Wired = argType"+er+".toWireType("+La+", arg"+er+"); // "+k[er+2].name+` `,ns.push("argType"+er),As.push(k[er+2]);if(Tt&&(ci="thisWired"+(ci.length>0?", ":"")+ci),Qi+=(zr||ut?"var rv = ":"")+"invoker(fn"+(ci.length>0?", ":"")+ci+`); `,Cn)Qi+=`runDestructors(destructors); `;else for(var er=Tt?1:2;er<k.length;++er){var Os=er===1?"thisWired":"arg"+(er-2)+"Wired";k[er].destructorFunction!==null&&(Qi+=Os+"_dtor("+Os+"); // "+k[er].name+` `,ns.push(Os+"_dtor"),As.push(k[er].destructorFunction))}zr&&(Qi+=`var ret = retType.fromWireType(rv); return ret; `),Qi+=`} `,ns.push(Qi);var Sr=_p(Function,ns).apply(null,As);return pc(V,Sr)}var $p=(V,k,_,de,He,ut)=>{var It=Zf(k,_);He=Pc(de,He),Hf([],[V],function(Tt){Tt=Tt[0];var Cn=`constructor ${Tt.name}`;if(Tt.registeredClass.constructor_body===void 0&&(Tt.registeredClass.constructor_body=[]),Tt.registeredClass.constructor_body[k-1]!==void 0)throw new Ff(`Cannot register multiple constructors with identical number of parameters (${k-1}) for class '${Tt.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Tt.registeredClass.constructor_body[k-1]=()=>{Eh(`Cannot construct ${Tt.name} due to unbound types`,It)},Hf([],It,er=>(er.splice(1,0,null),Tt.registeredClass.constructor_body[k-1]=SA(Cn,er,null,He,ut),[])),[]})},qp=V=>{V=V.trim();const k=V.indexOf("(");return k!==-1?V.substr(0,k):V},Sh=(V,k,_,de,He,ut,It,Tt,Cn)=>{var er=Zf(_,de);k=Ac(k),k=qp(k),ut=Pc(He,ut),Hf([],[V],function(zr){zr=zr[0];var na=`${zr.name}.${k}`;k.startsWith("@@")&&(k=Symbol[k.substring(2)]),Tt&&zr.registeredClass.pureVirtualFunctions.push(k);function ci(){Eh(`Cannot call ${na} due to unbound types`,er)}var Qi=zr.registeredClass.instancePrototype,La=Qi[k];return La===void 0||La.overloadTable===void 0&&La.className!==zr.name&&La.argCount===_-2?(ci.argCount=_-2,ci.className=zr.name,Qi[k]=ci):(Bg(Qi,k,na),Qi[k].overloadTable[_-2]=ci),Hf([],er,function(ns){var As=SA(na,ns,zr,ut,It,Cn);return Qi[k].overloadTable===void 0?(As.argCount=_-2,Qi[k]=As):Qi[k].overloadTable[_-2]=As,[]}),[]})};function If(){Object.assign(jf.prototype,{get(V){return this.allocated[V]},has(V){return this.allocated[V]!==void 0},allocate(V){var k=this.freelist.pop()||this.allocated.length;return this.allocated[k]=V,k},free(V){this.allocated[V]=void 0,this.freelist.push(V)}})}function jf(){this.allocated=[void 0],this.freelist=[]}var Kd=new jf,Tu=V=>{V>=Kd.reserved&&--Kd.get(V).refcount===0&&Kd.free(V)},nf=()=>{for(var V=0,k=Kd.reserved;k<Kd.allocated.length;++k)Kd.allocated[k]!==void 0&&++V;return V},vg=()=>{Kd.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Kd.reserved=Kd.allocated.length,le.count_emval_handles=nf},rf={toValue:V=>(V||sl("Cannot use deleted val. handle = "+V),Kd.get(V).value),toHandle:V=>{switch(V){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Kd.allocate({refcount:1,value:V})}}};function Wh(V){return this.fromWireType(sa[V>>2])}var _f=(V,k)=>{k=Ac(k),Iu(V,{name:k,fromWireType:_=>{var de=rf.toValue(_);return Tu(_),de},toWireType:(_,de)=>rf.toHandle(de),argPackAdvance:Cu,readValueFromPointer:Wh,destructorFunction:null})},Xu=V=>{if(V===null)return"null";var k=typeof V;return k==="object"||k==="array"||k==="function"?V.toString():""+V},em=(V,k)=>{switch(k){case 4:return function(_){return this.fromWireType(Gd[_>>2])};case 8:return function(_){return this.fromWireType(cc[_>>3])};default:throw new TypeError(`invalid float width (${k}): ${V}`)}},tm=(V,k,_)=>{k=Ac(k),Iu(V,{name:k,fromWireType:de=>de,toWireType:(de,He)=>He,argPackAdvance:Cu,readValueFromPointer:em(k,_),destructorFunction:null})},nm=(V,k,_)=>{switch(k){case 1:return _?de=>Ri[de>>0]:de=>Mo[de>>0];case 2:return _?de=>ed[de>>1]:de=>Ds[de>>1];case 4:return _?de=>sa[de>>2]:de=>no[de>>2];default:throw new TypeError(`invalid integer width (${k}): ${V}`)}},Nh=(V,k,_,de,He)=>{k=Ac(k);var ut=zr=>zr;if(de===0){var It=32-8*_;ut=zr=>zr<<It>>>It}var Tt=k.includes("unsigned"),Cn=(zr,na)=>{},er;Tt?er=function(na,ci){return Cn(ci,this.name),ci>>>0}:er=function(na,ci){return Cn(ci,this.name),ci},Iu(V,{name:k,fromWireType:ut,toWireType:er,argPackAdvance:Cu,readValueFromPointer:nm(k,_,de!==0),destructorFunction:null})},af=(V,k,_)=>{var de=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],He=de[k];function ut(It){var Tt=no[It>>2],Cn=no[It+4>>2];return new He(Ri.buffer,Cn,Tt)}_=Ac(_),Iu(V,{name:_,fromWireType:ut,argPackAdvance:Cu,readValueFromPointer:ut},{ignoreDuplicateRegistrations:!0})},WA=(V,k)=>{k=Ac(k);var _=k==="std::string";Iu(V,{name:k,fromWireType(de){var He=no[de>>2],ut=de+4,It;if(_)for(var Tt=ut,Cn=0;Cn<=He;++Cn){var er=ut+Cn;if(Cn==He||Mo[er]==0){var zr=er-Tt,na=ze(Tt,zr);It===void 0?It=na:(It+="\0",It+=na),Tt=er+1}}else{for(var ci=new Array(He),Cn=0;Cn<He;++Cn)ci[Cn]=String.fromCharCode(Mo[ut+Cn]);It=ci.join("")}return ne(de),It},toWireType(de,He){He instanceof ArrayBuffer&&(He=new Uint8Array(He));var ut,It=typeof He=="string";It||He instanceof Uint8Array||He instanceof Uint8ClampedArray||He instanceof Int8Array||sl("Cannot pass non-string to std::string"),_&&It?ut=Td(He):ut=He.length;var Tt=Y(4+ut+1),Cn=Tt+4;if(no[Tt>>2]=ut,_&&It)Ss(He,Cn,ut+1);else if(It)for(var er=0;er<ut;++er){var zr=He.charCodeAt(er);zr>255&&(ne(Cn),sl("String has UTF-16 code units that do not fit in 8 bits")),Mo[Cn+er]=zr}else for(var er=0;er<ut;++er)Mo[Cn+er]=He[er];return de!==null&&de.push(ne,Tt),Tt},argPackAdvance:Cu,readValueFromPointer:EA,destructorFunction(de){ne(de)}})},NA=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,GA=(V,k)=>{for(var _=V,de=_>>1,He=de+k/2;!(de>=He)&&Ds[de];)++de;if(_=de<<1,_-V>32&&NA)return NA.decode(Mo.slice(V,_));for(var ut="",It=0;!(It>=k/2);++It){var Tt=ed[V+It*2>>1];if(Tt==0)break;ut+=String.fromCharCode(Tt)}return ut},rm=(V,k,_)=>{if(_===void 0&&(_=2147483647),_<2)return 0;_-=2;for(var de=k,He=_<V.length*2?_/2:V.length,ut=0;ut<He;++ut){var It=V.charCodeAt(ut);ed[k>>1]=It,k+=2}return ed[k>>1]=0,k-de},Vg=V=>V.length*2,$f=(V,k)=>{for(var _=0,de="";!(_>=k/4);){var He=sa[V+_*4>>2];if(He==0)break;if(++_,He>=65536){var ut=He-65536;de+=String.fromCharCode(55296|ut>>10,56320|ut&1023)}else de+=String.fromCharCode(He)}return de},Eg=(V,k,_)=>{if(_===void 0&&(_=2147483647),_<4)return 0;for(var de=k,He=de+_-4,ut=0;ut<V.length;++ut){var It=V.charCodeAt(ut);if(It>=55296&&It<=57343){var Tt=V.charCodeAt(++ut);It=65536+((It&1023)<<10)|Tt&1023}if(sa[k>>2]=It,k+=4,k+4>He)break}return sa[k>>2]=0,k-de},Sg=V=>{for(var k=0,_=0;_<V.length;++_){var de=V.charCodeAt(_);de>=55296&&de<=57343&&++_,k+=4}return k},JA=(V,k,_)=>{_=Ac(_);var de,He,ut,It,Tt;k===2?(de=GA,He=rm,It=Vg,ut=()=>Ds,Tt=1):k===4&&(de=$f,He=Eg,It=Sg,ut=()=>no,Tt=2),Iu(V,{name:_,fromWireType:Cn=>{for(var er=no[Cn>>2],zr=ut(),na,ci=Cn+4,Qi=0;Qi<=er;++Qi){var La=Cn+4+Qi*k;if(Qi==er||zr[La>>Tt]==0){var ns=La-ci,As=de(ci,ns);na===void 0?na=As:(na+="\0",na+=As),ci=La+k}}return ne(Cn),na},toWireType:(Cn,er)=>{typeof er!="string"&&sl(`Cannot pass non-string to C++ string type ${_}`);var zr=It(er),na=Y(4+zr+k);return no[na>>2]=zr>>Tt,He(er,na+4,zr+k),Cn!==null&&Cn.push(ne,na),na},argPackAdvance:Cu,readValueFromPointer:Wh,destructorFunction(Cn){ne(Cn)}})},qf=(V,k)=>{k=Ac(k),Iu(V,{isVoid:!0,name:k,argPackAdvance:0,fromWireType:()=>{},toWireType:(_,de)=>{}})},im=1,Gh=()=>im,am=()=>{if(!td&&!Oc())try{gn?_i(bl):hd(bl)}catch(V){Al(V)}},Wg=V=>{if(!(td||Il))try{V(),am()}catch(k){Al(k)}},Cf=V=>{if(typeof Atomics.waitAsync=="function"){var k=Atomics.waitAsync(sa,V>>2,V);k.value.then(vf);var _=V+128;Atomics.store(sa,_>>2,1)}};le.__emscripten_thread_mailbox_await=Cf;var vf=()=>{var V=T();V&&(Cf(V),Wg(di))};le.checkMailbox=vf;var om=(V,k,_)=>{if(V==k)setTimeout(()=>vf());else if(gn)postMessage({targetThread:V,cmd:"checkMailbox"});else{var de=Sa.pthreads[V];if(!de)return;de.postMessage({cmd:"checkMailbox"})}},Ng=[],lm=(V,k,_,de)=>{Ng.length=_;for(var He=de>>3,ut=0;ut<_;ut++)Ng[ut]=cc[He+ut];var It=fm[V];Sa.currentProxiedOperationCallerThread=k;var Tt=It.apply(null,Ng);return Sa.currentProxiedOperationCallerThread=0,Tt},TA=V=>{},Gg=V=>{V>4&&(Kd.get(V).refcount+=1)},Jh=(V,k)=>{var _=ef[V];return _===void 0&&sl(k+" has unknown type "+Ig(V)),_},Jg=(V,k)=>{V=Jh(V,"_emval_take_value");var _=V.readValueFromPointer(k);return rf.toHandle(_)};function Ho(V,k,_,de,He,ut,It,Tt){if(gn)return al(14,1,V,k,_,de,He,ut,It,Tt);var Cn=nd(He,ut);try{if(isNaN(Cn))return 61;var er=qr.getStreamFromFD(de),zr=Pe.mmap(er,V,Cn,k,_),na=zr.ptr;return sa[It>>2]=zr.allocated,no[Tt>>2]=na,0}catch(ci){if(typeof Pe>"u"||ci.name!=="ErrnoError")throw ci;return-ci.errno}}function of(V,k,_,de,He,ut,It){if(gn)return al(15,1,V,k,_,de,He,ut,It);var Tt=nd(ut,It);try{if(isNaN(Tt))return 61;var Cn=qr.getStreamFromFD(He);_&2&&qr.doMsync(V,Cn,k,de,Tt),Pe.munmap(Cn)}catch(er){if(typeof Pe>"u"||er.name!=="ErrnoError")throw er;return-er.errno}}var zc=()=>{uc("")},XA=()=>{},kA=()=>Date.now(),wA=()=>{vd+=1},YA=()=>{throw wA(),"unwind"},gs=()=>Mo.length,eh=()=>gs(),ts;ts=()=>performance.timeOrigin+performance.now();var Fs=()=>navigator.hardwareConcurrency,DA=V=>{uc("OOM")},MA=V=>{Mo.length,DA()},Th={},LA=()=>mt||"./this.program",Vf=()=>{if(!Vf.strings){var V=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",k={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:V,_:LA()};for(var _ in Th)Th[_]===void 0?delete k[_]:k[_]=Th[_];var de=[];for(var _ in k)de.push(`${_}=${k[_]}`);Vf.strings=de}return Vf.strings},sm=(V,k)=>{for(var _=0;_<V.length;++_)Ri[k++>>0]=V.charCodeAt(_);Ri[k>>0]=0},th=function(k,_){if(gn)return al(16,1,k,_);var de=0;return Vf().forEach((He,ut)=>{var It=_+de;no[k+ut*4>>2]=It,sm(He,It),de+=He.length+1}),0},Tg=function(k,_){if(gn)return al(17,1,k,_);var de=Vf();no[k>>2]=de.length;var He=0;return de.forEach(ut=>He+=ut.length+1),no[_>>2]=He,0};function Xg(V){if(gn)return al(18,1,V);try{var k=qr.getStreamFromFD(V);return Pe.close(k),0}catch(_){if(typeof Pe>"u"||_.name!=="ErrnoError")throw _;return _.errno}}var HA=(V,k,_,de)=>{for(var He=0,ut=0;ut<_;ut++){var It=no[k>>2],Tt=no[k+4>>2];k+=8;var Cn=Pe.read(V,Ri,It,Tt,de);if(Cn<0)return-1;if(He+=Cn,Cn<Tt)break}return He};function Xh(V,k,_,de){if(gn)return al(19,1,V,k,_,de);try{var He=qr.getStreamFromFD(V),ut=HA(He,k,_);return no[de>>2]=ut,0}catch(It){if(typeof Pe>"u"||It.name!=="ErrnoError")throw It;return It.errno}}function kg(V,k,_,de,He){if(gn)return al(20,1,V,k,_,de,He);var ut=nd(k,_);try{if(isNaN(ut))return 61;var It=qr.getStreamFromFD(V);return Pe.llseek(It,ut,de),Po=[It.position>>>0,(da=It.position,+Math.abs(da)>=1?da>0?+Math.floor(da/4294967296)>>>0:~~+Math.ceil((da-+(~~da>>>0))/4294967296)>>>0:0)],sa[He>>2]=Po[0],sa[He+4>>2]=Po[1],It.getdents&&ut===0&&de===0&&(It.getdents=null),0}catch(Tt){if(typeof Pe>"u"||Tt.name!=="ErrnoError")throw Tt;return Tt.errno}}function wg(V){if(gn)return al(21,1,V);try{var k=qr.getStreamFromFD(V);return k.stream_ops&&k.stream_ops.fsync?k.stream_ops.fsync(k):0}catch(_){if(typeof Pe>"u"||_.name!=="ErrnoError")throw _;return _.errno}}var xA=(V,k,_,de)=>{for(var He=0,ut=0;ut<_;ut++){var It=no[k>>2],Tt=no[k+4>>2];k+=8;var Cn=Pe.write(V,Ri,It,Tt,de);if(Cn<0)return-1;He+=Cn}return He};function Yg(V,k,_,de){if(gn)return al(22,1,V,k,_,de);try{var He=qr.getStreamFromFD(V),ut=xA(He,k,_);return no[de>>2]=ut,0}catch(It){if(typeof Pe>"u"||It.name!=="ErrnoError")throw It;return It.errno}}var OA=(V,k)=>(Fo(Mo.subarray(V,V+k)),0),nh=V=>V%4===0&&(V%100!==0||V%400===0),KA=(V,k)=>{for(var _=0,de=0;de<=k;_+=V[de++]);return _},Dg=[31,29,31,30,31,30,31,31,30,31,30,31],Mg=[31,28,31,30,31,30,31,31,30,31,30,31],PA=(V,k)=>{for(var _=new Date(V.getTime());k>0;){var de=nh(_.getFullYear()),He=_.getMonth(),ut=(de?Dg:Mg)[He];if(k>ut-_.getDate())k-=ut-_.getDate()+1,_.setDate(1),He<11?_.setMonth(He+1):(_.setMonth(0),_.setFullYear(_.getFullYear()+1));else return _.setDate(_.getDate()+k),_}return _},dm=(V,k)=>{Ri.set(V,k)},cm=(V,k,_,de)=>{var He=no[de+40>>2],ut={tm_sec:sa[de>>2],tm_min:sa[de+4>>2],tm_hour:sa[de+8>>2],tm_mday:sa[de+12>>2],tm_mon:sa[de+16>>2],tm_year:sa[de+20>>2],tm_wday:sa[de+24>>2],tm_yday:sa[de+28>>2],tm_isdst:sa[de+32>>2],tm_gmtoff:sa[de+36>>2],tm_zone:He?ze(He):""},It=ze(_),Tt={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var Cn in Tt)It=It.replace(new RegExp(Cn,"g"),Tt[Cn]);var er=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],zr=["January","February","March","April","May","June","July","August","September","October","November","December"];function na(Sr,wi,Vd){for(var rs=typeof Sr=="number"?Sr.toString():Sr||"";rs.length<wi;)rs=Vd[0]+rs;return rs}function ci(Sr,wi){return na(Sr,wi,"0")}function Qi(Sr,wi){function Vd(jc){return jc<0?-1:jc>0?1:0}var rs;return(rs=Vd(Sr.getFullYear()-wi.getFullYear()))===0&&(rs=Vd(Sr.getMonth()-wi.getMonth()))===0&&(rs=Vd(Sr.getDate()-wi.getDate())),rs}function La(Sr){switch(Sr.getDay()){case 0:return new Date(Sr.getFullYear()-1,11,29);case 1:return Sr;case 2:return new Date(Sr.getFullYear(),0,3);case 3:return new Date(Sr.getFullYear(),0,2);case 4:return new Date(Sr.getFullYear(),0,1);case 5:return new Date(Sr.getFullYear()-1,11,31);case 6:return new Date(Sr.getFullYear()-1,11,30)}}function ns(Sr){var wi=PA(new Date(Sr.tm_year+1900,0,1),Sr.tm_yday),Vd=new Date(wi.getFullYear(),0,4),rs=new Date(wi.getFullYear()+1,0,4),jc=La(Vd),Ad=La(rs);return Qi(jc,wi)<=0?Qi(Ad,wi)<=0?wi.getFullYear()+1:wi.getFullYear():wi.getFullYear()-1}var As={"%a":Sr=>er[Sr.tm_wday].substring(0,3),"%A":Sr=>er[Sr.tm_wday],"%b":Sr=>zr[Sr.tm_mon].substring(0,3),"%B":Sr=>zr[Sr.tm_mon],"%C":Sr=>{var wi=Sr.tm_year+1900;return ci(wi/100|0,2)},"%d":Sr=>ci(Sr.tm_mday,2),"%e":Sr=>na(Sr.tm_mday,2," "),"%g":Sr=>ns(Sr).toString().substring(2),"%G":Sr=>ns(Sr),"%H":Sr=>ci(Sr.tm_hour,2),"%I":Sr=>{var wi=Sr.tm_hour;return wi==0?wi=12:wi>12&&(wi-=12),ci(wi,2)},"%j":Sr=>ci(Sr.tm_mday+KA(nh(Sr.tm_year+1900)?Dg:Mg,Sr.tm_mon-1),3),"%m":Sr=>ci(Sr.tm_mon+1,2),"%M":Sr=>ci(Sr.tm_min,2),"%n":()=>` `,"%p":Sr=>Sr.tm_hour>=0&&Sr.tm_hour<12?"AM":"PM","%S":Sr=>ci(Sr.tm_sec,2),"%t":()=>" ","%u":Sr=>Sr.tm_wday||7,"%U":Sr=>{var wi=Sr.tm_yday+7-Sr.tm_wday;return ci(Math.floor(wi/7),2)},"%V":Sr=>{var wi=Math.floor((Sr.tm_yday+7-(Sr.tm_wday+6)%7)/7);if((Sr.tm_wday+371-Sr.tm_yday-2)%7<=2&&wi++,wi){if(wi==53){var rs=(Sr.tm_wday+371-Sr.tm_yday)%7;rs!=4&&(rs!=3||!nh(Sr.tm_year))&&(wi=1)}}else{wi=52;var Vd=(Sr.tm_wday+7-Sr.tm_yday-1)%7;(Vd==4||Vd==5&&nh(Sr.tm_year%400-1))&&wi++}return ci(wi,2)},"%w":Sr=>Sr.tm_wday,"%W":Sr=>{var wi=Sr.tm_yday+7-(Sr.tm_wday+6)%7;return ci(Math.floor(wi/7),2)},"%y":Sr=>(Sr.tm_year+1900).toString().substring(2),"%Y":Sr=>Sr.tm_year+1900,"%z":Sr=>{var wi=Sr.tm_gmtoff,Vd=wi>=0;return wi=Math.abs(wi)/60,wi=wi/60*100+wi%60,(Vd?"+":"-")+("0000"+wi).slice(-4)},"%Z":Sr=>Sr.tm_zone,"%%":()=>"%"};It=It.replace(/%%/g,"\0\0");for(var Cn in As)It.includes(Cn)&&(It=It.replace(new RegExp(Cn,"g"),As[Cn](ut)));It=It.replace(/\0\0/g,"%");var Os=il(It,!1);return Os.length>k?0:(dm(Os,V),Os.length-1)},um=(V,k,_,de,He)=>cm(V,k,_,de);Sa.init();var zA=function(k,_,de,He){k||(k=this),this.parent=k,this.mount=k.mount,this.mounted=null,this.id=Pe.nextInode++,this.name=_,this.mode=de,this.node_ops={},this.stream_ops={},this.rdev=He},Lg=365,Hg=146;Object.defineProperties(zA.prototype,{read:{get:function(){return(this.mode&Lg)===Lg},set:function(k){k?this.mode|=Lg:this.mode&=-366}},write:{get:function(){return(this.mode&Hg)===Hg},set:function(k){k?this.mode|=Hg:this.mode&=-147}},isFolder:{get:function(){return Pe.isDir(this.mode)}},isDevice:{get:function(){return Pe.isChrdev(this.mode)}}}),Pe.FSNode=zA,Pe.createPreloadedFile=ju,Pe.staticInit(),Tp(),Ff=le.BindingError=function(V){(0,h.default)(k,V);function k(_){var de;return de=V.call(this,_)||this,de.name="BindingError",de}return k}((0,f.default)(Error)),BA=le.InternalError=function(V){(0,h.default)(k,V);function k(_){var de;return de=V.call(this,_)||this,de.name="InternalError",de}return k}((0,f.default)(Error)),Lp(),CA(),jp(),Zg=le.UnboundTypeError=rc(Error,"UnboundTypeError"),If(),vg();var fm=[wc,Ol,kn,Uo,Aa,ji,To,es,Ja,vl,gc,Qh,$u,RA,Ho,of,th,Tg,Xg,Xh,kg,wg,Yg],kh={b:P,w:Re,v:st,d:fn,k:ge,ya:ot,n:Vt,ia:Ut,E:Rn,fa:Bn,h:Xt,oa:Aa,W:ji,ma:Ja,pa:vl,ea:gc,da:Qh,na:$u,aa:RA,X:Mf,ua:kp,S:lu,R:$p,m:Sh,ta:_f,K:tm,q:Nh,l:af,J:WA,B:JA,va:qf,sa:Gh,ba:om,ga:lm,ha:Cf,ra:TA,Ca:Tu,Da:Gg,s:Jg,T:Ho,U:of,c:zc,F:XA,H:kA,qa:YA,ca:eh,p:ts,M:Fs,$:MA,ja:th,ka:Tg,L:hd,I:Xg,G:Xh,V:kg,la:wg,A:Yg,Z:OA,Ba:Hy,D:nb,g:Dy,xa:rF,Aa:xy,e:My,f:tb,z:tF,y:eb,Q:Oy,Y:Yc,r:Ky,j:$0,i:Ly,t:qy,C:nF,o:jy,za:$y,u:q0,O:_y,P:Py,x:zy,N:eF,a:Kr||le.wasmMemory,_:um,wa:mu},Ma=Wi(),T=le._pthread_self=()=>(T=le._pthread_self=Ma.Fa)(),Y=V=>(Y=Ma.Ha)(V),ne=V=>(ne=Ma.Ia)(V),me=()=>(me=Ma.Ja)();le.__emscripten_tls_init=()=>(le.__emscripten_tls_init=Ma.Ka)();var tt=(V,k)=>(tt=Ma.La)(V,k),yt=V=>(yt=Ma.Ma)(V);le.__embind_initialize_bindings=()=>(le.__embind_initialize_bindings=Ma.Na)();var Nt=()=>(Nt=Ma.Oa)(),Ht=le.__emscripten_thread_init=(V,k,_,de,He,ut)=>(Ht=le.__emscripten_thread_init=Ma.Pa)(V,k,_,de,He,ut);le.__emscripten_thread_crashed=()=>(le.__emscripten_thread_crashed=Ma.Qa)();var xn=le._fflush=V=>(xn=le._fflush=Ma.Ra)(V),ar=(V,k,_,de)=>(ar=Ma.Sa)(V,k,_,de),ei=V=>(ei=Ma.Ta)(V),_i=le.__emscripten_thread_exit=V=>(_i=le.__emscripten_thread_exit=Ma.Ua)(V),di=()=>(di=Ma.Va)(),wr=(V,k)=>(wr=Ma.Wa)(V,k),pa=V=>(pa=Ma.Xa)(V),Vl=(V,k)=>(Vl=Ma.Ya)(V,k),ma=()=>(ma=Ma.Za)(),Ia=V=>(Ia=Ma._a)(V),Zr=V=>(Zr=Ma.$a)(V),Zi=V=>(Zi=Ma.ab)(V),xi=V=>(xi=Ma.bb)(V),yl=(V,k,_)=>(yl=Ma.cb)(V,k,_),mc=V=>(mc=Ma.db)(V);le.dynCall_viijj=(V,k,_,de,He,ut,It)=>(le.dynCall_viijj=Ma.eb)(V,k,_,de,He,ut,It),le.dynCall_viiijjj=(V,k,_,de,He,ut,It,Tt,Cn,er)=>(le.dynCall_viiijjj=Ma.fb)(V,k,_,de,He,ut,It,Tt,Cn,er),le.dynCall_iiiij=(V,k,_,de,He,ut)=>(le.dynCall_iiiij=Ma.gb)(V,k,_,de,He,ut),le.dynCall_jii=(V,k,_)=>(le.dynCall_jii=Ma.hb)(V,k,_),le.dynCall_jjj=(V,k,_,de,He)=>(le.dynCall_jjj=Ma.ib)(V,k,_,de,He),le.dynCall_iiiijj=(V,k,_,de,He,ut,It,Tt)=>(le.dynCall_iiiijj=Ma.jb)(V,k,_,de,He,ut,It,Tt),le.dynCall_viijji=(V,k,_,de,He,ut,It,Tt)=>(le.dynCall_viijji=Ma.kb)(V,k,_,de,He,ut,It,Tt),le.dynCall_iiijj=(V,k,_,de,He,ut,It)=>(le.dynCall_iiijj=Ma.lb)(V,k,_,de,He,ut,It),le.dynCall_viijjj=(V,k,_,de,He,ut,It,Tt,Cn)=>(le.dynCall_viijjj=Ma.mb)(V,k,_,de,He,ut,It,Tt,Cn);var Ws=le.dynCall_iij=(V,k,_,de)=>(Ws=le.dynCall_iij=Ma.nb)(V,k,_,de);le.dynCall_iijjiiii=(V,k,_,de,He,ut,It,Tt,Cn,er)=>(le.dynCall_iijjiiii=Ma.ob)(V,k,_,de,He,ut,It,Tt,Cn,er),le.dynCall_jiji=(V,k,_,de,He)=>(le.dynCall_jiji=Ma.pb)(V,k,_,de,He),le.dynCall_viijii=(V,k,_,de,He,ut,It)=>(le.dynCall_viijii=Ma.qb)(V,k,_,de,He,ut,It),le.dynCall_iiiiij=(V,k,_,de,He,ut,It)=>(le.dynCall_iiiiij=Ma.rb)(V,k,_,de,He,ut,It),le.dynCall_iiiiijj=(V,k,_,de,He,ut,It,Tt,Cn)=>(le.dynCall_iiiiijj=Ma.sb)(V,k,_,de,He,ut,It,Tt,Cn),le.dynCall_iiiiiijj=(V,k,_,de,He,ut,It,Tt,Cn,er)=>(le.dynCall_iiiiiijj=Ma.tb)(V,k,_,de,He,ut,It,Tt,Cn,er),le.___start_em_js=262148,le.___stop_em_js=262760;function Dy(V,k){var _=ma();try{return co(V)(k)}catch(de){if(Ia(_),de!==de+0)throw de;wr(1,0)}}function My(V,k,_){var de=ma();try{return co(V)(k,_)}catch(He){if(Ia(de),He!==He+0)throw He;wr(1,0)}}function Ly(V,k,_){var de=ma();try{co(V)(k,_)}catch(He){if(Ia(de),He!==He+0)throw He;wr(1,0)}}function $0(V,k){var _=ma();try{co(V)(k)}catch(de){if(Ia(_),de!==de+0)throw de;wr(1,0)}}function q0(V,k,_,de,He){var ut=ma();try{co(V)(k,_,de,He)}catch(It){if(Ia(ut),It!==It+0)throw It;wr(1,0)}}function eb(V,k,_,de,He,ut){var It=ma();try{return co(V)(k,_,de,He,ut)}catch(Tt){if(Ia(It),Tt!==Tt+0)throw Tt;wr(1,0)}}function tb(V,k,_,de){var He=ma();try{return co(V)(k,_,de)}catch(ut){if(Ia(He),ut!==ut+0)throw ut;wr(1,0)}}function nb(V){var k=ma();try{return co(V)()}catch(_){if(Ia(k),_!==_+0)throw _;wr(1,0)}}function Hy(V,k){var _=ma();try{return co(V)(k)}catch(de){if(Ia(_),de!==de+0)throw de;wr(1,0)}}function xy(V,k,_){var de=ma();try{return co(V)(k,_)}catch(He){if(Ia(de),He!==He+0)throw He;wr(1,0)}}function Oy(V,k,_,de,He,ut,It){var Tt=ma();try{return co(V)(k,_,de,He,ut,It)}catch(Cn){if(Ia(Tt),Cn!==Cn+0)throw Cn;wr(1,0)}}function Ky(V){var k=ma();try{co(V)()}catch(_){if(Ia(k),_!==_+0)throw _;wr(1,0)}}function Py(V,k,_,de,He,ut){var It=ma();try{co(V)(k,_,de,He,ut)}catch(Tt){if(Ia(It),Tt!==Tt+0)throw Tt;wr(1,0)}}function zy(V,k,_,de,He,ut,It,Tt,Cn,er){var zr=ma();try{co(V)(k,_,de,He,ut,It,Tt,Cn,er)}catch(na){if(Ia(zr),na!==na+0)throw na;wr(1,0)}}function jy(V,k,_,de){var He=ma();try{co(V)(k,_,de)}catch(ut){if(Ia(He),ut!==ut+0)throw ut;wr(1,0)}}function _y(V,k,_,de,He,ut,It){var Tt=ma();try{co(V)(k,_,de,He,ut,It)}catch(Cn){if(Ia(Tt),Cn!==Cn+0)throw Cn;wr(1,0)}}function $y(V,k,_,de,He,ut,It,Tt){var Cn=ma();try{co(V)(k,_,de,He,ut,It,Tt)}catch(er){if(Ia(Cn),er!==er+0)throw er;wr(1,0)}}function qy(V,k,_,de){var He=ma();try{co(V)(k,_,de)}catch(ut){if(Ia(He),ut!==ut+0)throw ut;wr(1,0)}}function eF(V,k,_,de,He,ut,It,Tt,Cn){var er=ma();try{co(V)(k,_,de,He,ut,It,Tt,Cn)}catch(zr){if(Ia(er),zr!==zr+0)throw zr;wr(1,0)}}function tF(V,k,_,de,He){var ut=ma();try{return co(V)(k,_,de,He)}catch(It){if(Ia(ut),It!==It+0)throw It;wr(1,0)}}function nF(V,k,_,de,He){var ut=ma();try{co(V)(k,_,de,He)}catch(It){if(Ia(ut),It!==It+0)throw It;wr(1,0)}}function rF(V,k,_,de,He){var ut=ma();try{return co(V)(k,_,de,He)}catch(It){if(Ia(ut),It!==It+0)throw It;wr(1,0)}}function Yc(V,k,_,de){var He=ma();try{return Ws(V,k,_,de)}catch(ut){if(Ia(He),ut!==ut+0)throw ut;wr(1,0)}}le.wasmMemory=Kr,le.keepRuntimeAlive=Oc,le.ExitStatus=Cl,le.PThread=Sa;var ic;Cd=function V(){ic||xg(),ic||(Cd=V)};function xg(){if(Ms>0)return;if(gn){Le(le),qd(),startWorker(le);return}if(Vs(),Ms>0)return;function V(){ic||(ic=!0,le.calledRun=!0,!Il&&(qd(),Le(le),le.onRuntimeInitialized&&le.onRuntimeInitialized(),Jd()))}le.setStatus?(le.setStatus("Running..."),setTimeout(function(){setTimeout(function(){le.setStatus("")},1),V()},1)):V()}if(le.preInit)for(typeof le.preInit=="function"&&(le.preInit=[le.preInit]);le.preInit.length>0;)le.preInit.pop()();return xg(),Se.ready}})();F=m}let R=function(){};R.updates={transformer_new:"New transformer",transformer_null:"Null transformer"},R.errors={transformer_none:"No transformers provided",transformer_start:"Cannot start transformer",transformer_transform:"Cannot transform frame",transformer_flush:"Cannot flush transformer",readable_null:"Readable is null",writable_null:"Writable is null"};function C(dt){return dt.__esModule&&Object.prototype.hasOwnProperty.call(dt,"default")?dt.default:dt}const B=new WeakMap,N=new WeakMap,S=new WeakMap,X=Symbol("anyProducer"),J=a.resolve(),E=Symbol("listenerAdded"),v=Symbol("listenerRemoved");let j=!1;function H(dt){if(typeof dt!="string"&&typeof dt!="symbol")throw new TypeError("eventName must be a string or a symbol")}function K(dt){if(typeof dt!="function")throw new TypeError("listener must be a function")}function Fe(dt,Ft){const Se=N.get(dt);return Se.has(Ft)||Se.set(Ft,new Set),Se.get(Ft)}function z(dt,Ft){const Se=typeof Ft=="string"||typeof Ft=="symbol"?Ft:X,le=S.get(dt);return le.has(Se)||le.set(Se,new Set),le.get(Se)}function q(dt,Ft,Se){const le=S.get(dt);if(le.has(Ft))for(var Le=A(le.get(Ft)),Xe;!(Xe=Le()).done;)Xe.value.enqueue(Se);if(le.has(X)){const Wt=a.all([Ft,Se]);for(var Oe=A(le.get(X)),mt;!(mt=Oe()).done;)mt.value.enqueue(Wt)}}function Ae(dt,Ft){Ft=Array.isArray(Ft)?Ft:[Ft];let Se=!1,le=()=>{},Le=[];const Xe={enqueue(Wt){Le.push(Wt),le()},finish(){Se=!0,le()}};for(var Oe=A(Ft),mt;!(mt=Oe()).done;){const Wt=mt.value;z(dt,Wt).add(Xe)}return{next(){var Wt=this;return(0,u.default)(s.default.mark(function Mt(){return s.default.wrap(function(on){for(;;)switch(on.prev=on.next){case 0:if(!Le){on.next=19;break}if(Le.length!==0){on.next=12;break}if(!Se){on.next=6;break}on.t2=(Le=void 0,Wt.next()),on.next=9;break;case 6:return on.next=8,new a(gn=>{le=gn});case 8:on.t2=Wt.next();case 9:on.t1=on.t2,on.next=16;break;case 12:return on.next=14,Le.shift();case 14:on.t3=on.sent,on.t1={done:!1,value:on.t3};case 16:on.t0=on.t1,on.next=20;break;case 19:on.t0={done:!0};case 20:return on.abrupt("return",on.t0);case 21:case"end":return on.stop()}},Mt)}))()},return(Wt){var Mt=arguments;return(0,u.default)(s.default.mark(function pn(){var on,gn,qn;return s.default.wrap(function(Gn){for(;;)switch(Gn.prev=Gn.next){case 0:for(Le=void 0,on=A(Ft);!(gn=on()).done;)qn=gn.value,z(dt,qn).delete(Xe);if(le(),!(Mt.length>0)){Gn.next=10;break}return Gn.next=6,Wt;case 6:Gn.t1=Gn.sent,Gn.t0={done:!0,value:Gn.t1},Gn.next=11;break;case 10:Gn.t0={done:!0};case 11:return Gn.abrupt("return",Gn.t0);case 12:case"end":return Gn.stop()}},pn)}))()},[Symbol.asyncIterator](){return this}}}function Ke(dt){if(dt===void 0)return xe;if(!Array.isArray(dt))throw new TypeError("`methodNames` must be an array of strings");for(var Ft=A(dt),Se;!(Se=Ft()).done;){const le=Se.value;if(!xe.includes(le))throw typeof le!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${le} is not Emittery method`)}return dt}const pe=dt=>dt===E||dt===v;let We=function(){dt.mixin=function(le,Le){return Le=Ke(Le),Xe=>{if(typeof Xe!="function")throw new TypeError("`target` must be function");for(var Oe=A(Le),mt;!(mt=Oe()).done;){const gn=mt.value;if(Xe.prototype[gn]!==void 0)throw new Error(`The property \`${gn}\` already exists on \`target\``)}function Wt(){return Object.defineProperty(this,le,{enumerable:!1,value:new dt}),this[le]}Object.defineProperty(Xe.prototype,le,{enumerable:!1,get:Wt});const Mt=gn=>function(){return this[le][gn](...arguments)};for(var pn=A(Le),on;!(on=pn()).done;){const gn=on.value;Object.defineProperty(Xe.prototype,gn,{enumerable:!1,value:Mt(gn)})}return Xe}};function dt(Se){Se===void 0&&(Se={}),B.set(this,new Set),N.set(this,new Map),S.set(this,new Map),this.debug=Se.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(le,Le,Xe,Oe)=>{try{Oe=JSON.stringify(Oe)}catch{Oe=`Object with the following keys failed to stringify: ${Object.keys(Oe).join(",")}`}typeof Xe=="symbol"&&(Xe=Xe.toString());const mt=new Date,Wt=`${mt.getHours()}:${mt.getMinutes()}:${mt.getSeconds()}.${mt.getMilliseconds()}`;console.log(`[${Wt}][emittery:${le}][${Le}] Event Name: ${Xe} data: ${Oe}`)})}var Ft=dt.prototype;return Ft.logIfDebugEnabled=function(le,Le,Xe){(dt.isDebugEnabled||this.debug.enabled)&&this.debug.logger(le,this.debug.name,Le,Xe)},Ft.on=function(le,Le){K(Le),le=Array.isArray(le)?le:[le];for(var Xe=A(le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;H(mt),Fe(this,mt).add(Le),this.logIfDebugEnabled("subscribe",mt,void 0),pe(mt)||this.emit(E,{eventName:mt,listener:Le})}return this.off.bind(this,le,Le)},Ft.off=function(le,Le){K(Le),le=Array.isArray(le)?le:[le];for(var Xe=A(le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;H(mt),Fe(this,mt).delete(Le),this.logIfDebugEnabled("unsubscribe",mt,void 0),pe(mt)||this.emit(v,{eventName:mt,listener:Le})}},Ft.once=function(le){return new a(Le=>{const Xe=this.on(le,Oe=>{Xe(),Le(Oe)})})},Ft.events=function(le){le=Array.isArray(le)?le:[le];for(var Le=A(le),Xe;!(Xe=Le()).done;){const Oe=Xe.value;H(Oe)}return Ae(this,le)},Ft.emit=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe,Oe){var mt,Wt,Mt,pn;return s.default.wrap(function(gn){for(;;)switch(gn.prev=gn.next){case 0:return H(Xe),this.logIfDebugEnabled("emit",Xe,Oe),q(this,Xe,Oe),mt=Fe(this,Xe),Wt=B.get(this),Mt=[...mt],pn=pe(Xe)?[]:[...Wt],gn.next=4,J;case 4:return gn.next=6,a.all([...Mt.map(function(){var qn=(0,u.default)(s.default.mark(function cr(Gn){return s.default.wrap(function(un){for(;;)switch(un.prev=un.next){case 0:if(!mt.has(Gn)){un.next=2;break}return un.abrupt("return",Gn(Oe));case 2:case"end":return un.stop()}},cr)}));return function(cr){return qn.apply(this,arguments)}}()),...pn.map(function(){var qn=(0,u.default)(s.default.mark(function cr(Gn){return s.default.wrap(function(un){for(;;)switch(un.prev=un.next){case 0:if(!Wt.has(Gn)){un.next=2;break}return un.abrupt("return",Gn(Xe,Oe));case 2:case"end":return un.stop()}},cr)}));return function(cr){return qn.apply(this,arguments)}}())]);case 6:case"end":return gn.stop()}},Le,this)}));function le(Le,Xe){return Se.apply(this,arguments)}return le}(),Ft.emitSerial=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe,Oe){var mt,Wt,Mt,pn,on,gn,qn,cr,Gn;return s.default.wrap(function(un){for(;;)switch(un.prev=un.next){case 0:return H(Xe),this.logIfDebugEnabled("emitSerial",Xe,Oe),mt=Fe(this,Xe),Wt=B.get(this),Mt=[...mt],pn=[...Wt],un.next=4,J;case 4:on=0,gn=Mt;case 5:if(!(on<gn.length)){un.next=14;break}if(qn=gn[on],un.t0=mt.has(qn),!un.t0){un.next=11;break}return un.next=11,qn(Oe);case 11:on++,un.next=5;break;case 14:cr=0,Gn=pn;case 15:if(!(cr<Gn.length)){un.next=24;break}if(qn=Gn[cr],un.t1=Wt.has(qn),!un.t1){un.next=21;break}return un.next=21,qn(Xe,Oe);case 21:cr++,un.next=15;break;case 24:case"end":return un.stop()}},Le,this)}));function le(Le,Xe){return Se.apply(this,arguments)}return le}(),Ft.onAny=function(le){return K(le),this.logIfDebugEnabled("subscribeAny",void 0,void 0),B.get(this).add(le),this.emit(E,{listener:le}),this.offAny.bind(this,le)},Ft.anyEvent=function(){return Ae(this)},Ft.offAny=function(le){K(le),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(v,{listener:le}),B.get(this).delete(le)},Ft.clearListeners=function(le){le=Array.isArray(le)?le:[le];for(var Le=A(le),Xe;!(Xe=Le()).done;){const cr=Xe.value;if(this.logIfDebugEnabled("clear",cr,void 0),typeof cr=="string"||typeof cr=="symbol"){Fe(this,cr).clear();const Gn=z(this,cr);for(var Oe=A(Gn),mt;!(mt=Oe()).done;)mt.value.finish();Gn.clear()}else{B.get(this).clear();for(var Wt=A(N.get(this).values()),Mt;!(Mt=Wt()).done;)Mt.value.clear();for(var pn=A(S.get(this).values()),on;!(on=pn()).done;){const Gn=on.value;for(var gn=A(Gn),qn;!(qn=gn()).done;)qn.value.finish();Gn.clear()}}}},Ft.listenerCount=function(le){le=Array.isArray(le)?le:[le];let Le=0;for(var Xe=A(le),Oe;!(Oe=Xe()).done;){const on=Oe.value;if(typeof on=="string"){Le+=B.get(this).size+Fe(this,on).size+z(this,on).size+z(this).size;continue}typeof on<"u"&&H(on),Le+=B.get(this).size;for(var mt=A(N.get(this).values()),Wt;!(Wt=mt()).done;){const gn=Wt.value;Le+=gn.size}for(var Mt=A(S.get(this).values()),pn;!(pn=Mt()).done;){const gn=pn.value;Le+=gn.size}}return Le},Ft.bindMethods=function(le,Le){if(typeof le!="object"||le===null)throw new TypeError("`target` must be an object");Le=Ke(Le);for(var Xe=A(Le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;if(le[mt]!==void 0)throw new Error(`The property \`${mt}\` already exists on \`target\``);Object.defineProperty(le,mt,{enumerable:!1,value:this[mt].bind(this)})}},(0,c.default)(dt,null,[{key:"isDebugEnabled",get:function(){if(typeof o!="object")return j;const le=o||{env:{}},Le=le.env;return Le.DEBUG==="emittery"||Le.DEBUG==="*"||j},set:function(le){j=le}}]),dt}();const xe=Object.getOwnPropertyNames(We.prototype).filter(dt=>dt!=="constructor");Object.defineProperty(We,"listenerAdded",{value:E,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(We,"listenerRemoved",{value:v,writable:!1,enumerable:!0,configurable:!1});var $e=We;const Rt=C($e);function Be(dt){return typeof dt=="object"&&dt!==null&&"message"in dt&&typeof dt.message=="string"}function qe(dt){if(Be(dt))return dt;try{return new Error(JSON.stringify(dt))}catch{return new Error(String(dt))}}function at(dt){return qe(dt).message}var Bt=Object.defineProperty,jt=(dt,Ft,Se)=>Ft in dt?Bt(dt,Ft,{enumerable:!0,configurable:!0,writable:!0,value:Se}):dt[Ft]=Se,Ne=(dt,Ft,Se)=>(jt(dt,Ft+"",Se),Se);const Je="hlg.tokbox.com/prod/logging/vcp_webrtc",ve="https://",Ye=1e4;let it;const Qt=new Uint8Array(16);function _t(){if(!it&&(it=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!it))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return it(Qt)}const Dt=[];for(let dt=0;dt<256;++dt)Dt.push((dt+256).toString(16).slice(1));function Ee(dt,Ft){return Ft===void 0&&(Ft=0),(Dt[dt[Ft+0]]+Dt[dt[Ft+1]]+Dt[dt[Ft+2]]+Dt[dt[Ft+3]]+"-"+Dt[dt[Ft+4]]+Dt[dt[Ft+5]]+"-"+Dt[dt[Ft+6]]+Dt[dt[Ft+7]]+"-"+Dt[dt[Ft+8]]+Dt[dt[Ft+9]]+"-"+Dt[dt[Ft+10]]+Dt[dt[Ft+11]]+Dt[dt[Ft+12]]+Dt[dt[Ft+13]]+Dt[dt[Ft+14]]+Dt[dt[Ft+15]]).toLowerCase()}const Ge=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),he={randomUUID:Ge};function $(dt,Ft,Se){if(he.randomUUID&&!dt)return he.randomUUID();dt=dt||{};const le=dt.random||(dt.rng||_t)();return le[6]=le[6]&15|64,le[8]=le[8]&63|128,Ee(le)}function ie(dt,Ft){g.vonage||(g.vonage={}),g.vonage.workerizer||(g.vonage.workerizer={});let Se=g.vonage.workerizer;return Se[dt]||(Se[dt]=Ft),Se[dt]}const Ve=ie("globals",{});var _e=(dt=>(dt.INIT="INIT",dt.FORWARD="FORWARD",dt.TERMINATE="TERMINATE",dt.GLOBALS_SYNC="GLOBALS_SYNC",dt))(_e||{});function we(dt){return[ImageBitmap,ReadableStream,WritableStream].some(Ft=>dt instanceof Ft)}let nt=0;function Gt(dt,Ft,Se,le,Le){const Xe=nt++;return dt.postMessage({id:Xe,type:Ft,functionName:Se,args:le},le.filter(Oe=>we(Oe))),new a(Oe=>{Le==null||Le.set(Xe,Oe)})}function An(dt,Ft){const Se=dt.id,le=dt.type,Le=Array.isArray(Ft)?Ft:[Ft];postMessage({id:Se,type:le,result:Ft},Le.filter(Xe=>we(Xe)))}const Dn=ie("workerized",{});function tr(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function nr(){return zn.apply(this,arguments)}function zn(){return zn=(0,u.default)(s.default.mark(function dt(){var Ft,Se,le,Le,Xe;return s.default.wrap(function(mt){for(;;)switch(mt.prev=mt.next){case 0:if(!tr()){mt.next=4;break}An({type:_e.GLOBALS_SYNC},Ve),mt.next=8;break;case 4:Ft=[];for(Se in Dn)le=Dn[Se].workerContext,Le=le.worker,Xe=le.resolvers,Le&&Ft.push(Gt(Le,_e.GLOBALS_SYNC,"",[Ve],Xe));return mt.next=8,a.all(Ft);case 8:case"end":return mt.stop()}},dt)})),zn.apply(this,arguments)}function dr(dt,Ft){if(Array.isArray(Ft))Ft.splice(0,Ft.length);else if(typeof Ft=="object")for(const Se in Ft)delete Ft[Se];for(const Se in dt)Array.isArray(dt[Se])?(Ft[Se]=[],dr(dt[Se],Ft[Se])):typeof dt[Se]=="object"?(Ft[Se]={},dr(dt[Se],Ft[Se])):Ft[Se]=dt[Se]}function Dr(dt,Ft){return ui.apply(this,arguments)}function ui(){return ui=(0,u.default)(s.default.mark(function dt(Ft,Se){var le,Le;return s.default.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:if(le=Ft.functionName,Le=Ft.args,Se.instance){Oe.next=3;break}throw"instance not initialized";case 3:if(le){Oe.next=5;break}throw"missing function name to call";case 5:if(Se.instance[le]){Oe.next=7;break}throw`undefined function [${le}] in class ${Se.instance.constructor.workerId}`;case 7:return Oe.t0=An,Oe.t1=Ft,Oe.next=11,Se.instance[le](...Le??[]);case 11:Oe.t2=Oe.sent,(0,Oe.t0)(Oe.t1,Oe.t2);case 13:case"end":return Oe.stop()}},dt)})),ui.apply(this,arguments)}const Pn=ie("registeredWorkers",{});function hr(dt,Ft){if(!dt.args)throw"Missing className while initializing worker";const Se=dt.args,le=Se[0],Le=Se[1],Xe=Pn[le];if(Xe)Ft.instance=new Xe(dt.args.slice(1));else throw`unknown worker class ${le}`;dr(Le,Ve),An(dt,typeof Ft.instance!==void 0)}function xr(dt,Ft){return Hi.apply(this,arguments)}function Hi(){return Hi=(0,u.default)(s.default.mark(function dt(Ft,Se){var le,Le;return s.default.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:if(le=Ft.args,Se.instance){Oe.next=3;break}throw"instance not initialized";case 3:if(Oe.t0=Se.instance.terminate,!Oe.t0){Oe.next=8;break}return Oe.next=7,Se.instance.terminate(...le??[]);case 7:Le=Oe.sent;case 8:An(Ft,Le);case 9:case"end":return Oe.stop()}},dt)})),Hi.apply(this,arguments)}function Di(dt){if(!dt.args)throw"Missing globals while syncing";dr(dt.args[0],Ve),An(dt,{})}function Da(){const dt={};onmessage=function(){var Ft=(0,u.default)(s.default.mark(function Se(le){var Le;return s.default.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:Le=le.data,Oe.t0=Le.type,Oe.next=Oe.t0===_e.INIT?4:Oe.t0===_e.FORWARD?6:Oe.t0===_e.TERMINATE?8:Oe.t0===_e.GLOBALS_SYNC?10:12;break;case 4:return hr(Le,dt),Oe.abrupt("break",12);case 6:return Dr(Le,dt),Oe.abrupt("break",12);case 8:return xr(Le,dt),Oe.abrupt("break",12);case 10:return Di(Le),Oe.abrupt("break",12);case 12:case"end":return Oe.stop()}},Se)}));return function(le){return Ft.apply(this,arguments)}}()}tr()&&Da();function oi(dt,Ft){return Ve[dt]||(Ve[dt]=Ft),[()=>Ve[dt],function(){var Se=(0,u.default)(s.default.mark(function le(Le){return s.default.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:return Ve[dt]=Le,Oe.next=3,nr();case 3:case"end":return Oe.stop()}},le)}));return function(le){return Se.apply(this,arguments)}}()]}function Ra(dt,Ft){return oi(dt,Ft)}const Va=Ra("metadata"),fi=Va[0];function _a(){return fi()}let dn=function(){function dt(Se,le){Ne(this,"uuid"),this.config=Se,this.uuid=le??$()}var Ft=dt.prototype;return Ft.send=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe){var Oe,mt,Wt,Mt,pn,on,gn,qn;return s.default.wrap(function(Gn){for(;;)switch(Gn.prev=Gn.next){case 0:if(Mt=(Oe=_a())!=null?Oe:{},pn=Mt.appId,on=Mt.sourceType,!(!pn||!on)){Gn.next=3;break}return Gn.abrupt("return","metadata missing");case 3:return gn=new AbortController,qn=setTimeout(()=>gn.abort(),Ye),Gn.next=6,((Wt=(mt=this.config)==null?void 0:mt.fetch)!=null?Wt:fetch)(this.getUrl(),{method:"POST",headers:this.getHeaders(),body:JSON.stringify(this.buildReport(Xe)),signal:gn.signal});case 6:return clearTimeout(qn),Gn.abrupt("return","success");case 8:case"end":return Gn.stop()}},Le,this)}));function le(Le){return Se.apply(this,arguments)}return le}(),Ft.getUrl=function(){var le;let Le=(le=_a().proxyUrl)!=null?le:ve;return Le+=(Le.at(-1)==="/"?"":"/")+Je,Le},Ft.getHeaders=function(){return{"Content-Type":"application/json"}},Ft.buildReport=function(le){const Le=_a();return Object.assign({guid:this.uuid},le,{applicationId:Le.appId,timestamp:Date.now(),proxyUrl:Le.proxyUrl,source:Le.sourceType})},dt}();const St="2.0.4";let mn=function(){function dt(Se,le){this.config=Se,this.frameTransformedCount=0,this.frameFromSourceCount=0,this.startAt=0,this.reporter=new dn(Se,le)}var Ft=dt.prototype;return Ft.onFrameFromSource=function(){var Se=(0,u.default)(s.default.mark(function Le(){return s.default.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:this.frameFromSourceCount++;case 1:case"end":return Oe.stop()}},Le,this)}));function le(){return Se.apply(this,arguments)}return le}(),Ft.onFrameTransformed=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe,Oe){var mt,Wt,Mt,pn,on,gn,qn;return s.default.wrap(function(Gn){for(;;)switch(Gn.prev=Gn.next){case 0:return Xe===void 0&&(Xe={}),Oe===void 0&&(Oe=!1),this.startAt===0&&(this.startAt=Date.now()),this.frameTransformedCount++,mt=this.startAt,Wt=this.frameTransformedCount,Mt=this.frameFromSourceCount,pn=Date.now(),on=(pn-mt)/1e3,gn=Wt/on,qn=Mt/on,Gn.abrupt("return",Oe||this.frameTransformedCount>=this.config.loggingIntervalFrameCount?(this.frameFromSourceCount=0,this.frameTransformedCount=0,this.startAt=pn,this.reporter.config=this.config,this.reporter.send(Object.assign({},this.config.report,{variation:"QoS",fps:qn,transformedFps:gn,framesTransformed:Wt},Xe))):"success");case 5:case"end":return Gn.stop()}},Le,this)}));function le(Le,Xe){return Se.apply(this,arguments)}return le}(),(0,c.default)(dt,[{key:"fps",get:function(){const le=this.startAt,Le=this.frameFromSourceCount,Xe=(Date.now()-le)/1e3;return Le/Xe}}]),dt}();var _n=(dt=>(dt.pipeline_ended="pipeline_ended",dt.pipeline_ended_with_error="pipeline_ended_with_error",dt.pipeline_started="pipeline_started",dt.pipeline_started_with_error="pipeline_started_with_error",dt.pipeline_restarted="pipeline_restarted",dt.pipeline_restarted_with_error="pipeline_restarted_with_error",dt))(_n||{});const vr=500,ha=.8;let Mi=function(dt){(0,h.default)(Ft,dt);function Ft(le,Le){var Xe;return Xe=dt.call(this)||this,Xe.reporter_=new dn,Xe.reporterQos_=new mn({loggingIntervalFrameCount:vr,report:{version:St}}),Xe.index_=Le,Xe.transformer_=le,Xe.shouldStop_=!1,Xe.isFlashed_=!1,Xe.mediaTransformerQosReportStartTimestamp_=0,Xe.videoHeight_=0,Xe.videoWidth_=0,Xe.trackExpectedRate_=-1,Xe.transformerType_="Custom","getTransformerType"in le&&(Xe.transformerType_=le.getTransformerType()),Xe.report({variation:"Create"}),Xe}var Se=Ft.prototype;return Se.setTrackExpectedRate=function(Le){this.trackExpectedRate_=Le},Se.start=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe){var mt;return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:if(this.controller_=Oe,!(this.transformer_&&typeof this.transformer_.start=="function")){Mt.next=11;break}return Mt.prev=1,Mt.next=4,this.transformer_.start(Oe);case 4:Mt.next=11;break;case 6:Mt.prev=6,Mt.t0=Mt.catch(1),this.report({message:R.errors.transformer_start,variation:"Error",error:at(Mt.t0)}),mt={eventMetaData:{transformerIndex:this.index_},error:Mt.t0,function:"start"},this.emit("error",mt);case 11:case"end":return Mt.stop()}},Xe,this,[[1,6]])}));function Le(Xe){return le.apply(this,arguments)}return Le}(),Se.transform=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe,mt){var Wt,Mt,pn,on,gn,qn;return s.default.wrap(function(Gn){for(;;)switch(Gn.prev=Gn.next){case 0:if(this.mediaTransformerQosReportStartTimestamp_===0&&(this.mediaTransformerQosReportStartTimestamp_=Date.now()),Oe instanceof VideoFrame&&(this.videoHeight_=(Wt=Oe==null?void 0:Oe.displayHeight)!=null?Wt:0,this.videoWidth_=(Mt=Oe==null?void 0:Oe.displayWidth)!=null?Mt:0),this.reporterQos_.onFrameFromSource(),!this.transformer_){Gn.next=17;break}if(!this.shouldStop_){Gn.next=5;break}console.warn("[Pipeline] flush from transform"),Oe.close(),this.flush(mt),mt.terminate(),Gn.next=17;break;case 5:return Gn.prev=5,Gn.next=8,(on=(pn=this.transformer_).transform)==null?void 0:on.call(pn,Oe,mt);case 8:this.reportQos(),Gn.next=16;break;case 11:Gn.prev=11,Gn.t0=Gn.catch(5),this.report({message:R.errors.transformer_transform,variation:"Error",error:at(Gn.t0)}),gn={eventMetaData:{transformerIndex:this.index_},error:Gn.t0,function:"transform"},this.emit("error",gn);case 16:this.trackExpectedRate_!=-1&&this.trackExpectedRate_*ha>this.reporterQos_.fps&&(qn={eventMetaData:{transformerIndex:this.index_},warningType:"fps_drop",dropInfo:{requested:this.trackExpectedRate_,current:this.reporterQos_.fps}},this.emit("warn",qn));case 17:case"end":return Gn.stop()}},Xe,this,[[5,11]])}));function Le(Xe,Oe){return le.apply(this,arguments)}return Le}(),Se.flush=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe){var mt;return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:if(!(this.transformer_&&typeof this.transformer_.flush=="function"&&!this.isFlashed_)){Mt.next=12;break}return this.isFlashed_=!0,Mt.prev=2,Mt.next=5,this.transformer_.flush(Oe);case 5:Mt.next=12;break;case 7:Mt.prev=7,Mt.t0=Mt.catch(2),this.report({message:R.errors.transformer_flush,variation:"Error",error:at(Mt.t0)}),mt={eventMetaData:{transformerIndex:this.index_},error:Mt.t0,function:"flush"},this.emit("error",mt);case 12:this.reportQos(!0),this.report({variation:"Delete"});case 13:case"end":return Mt.stop()}},Xe,this,[[2,7]])}));function Le(Xe){return le.apply(this,arguments)}return Le}(),Se.stop=function(){console.log("[Pipeline] Stop stream."),this.controller_&&(this.flush(this.controller_),this.controller_.terminate()),this.shouldStop_=!0},Se.report=function(Le){this.reporter_.send(Object.assign({version:St,action:"MediaTransformer",transformerType:this.transformerType_},Le))},Se.reportQos=function(Le){Le===void 0&&(Le=!1),this.reporterQos_.config=Object.assign({},this.reporterQos_.config),this.reporterQos_.onFrameTransformed({version:St,action:"MediaTransformer",transformerType:this.transformerType_,videoWidth:this.videoWidth_,videoHeight:this.videoHeight_},Le)},Ft}(Rt),Fi=function(dt){(0,h.default)(Ft,dt);function Ft(le){var Le;Le=dt.call(this)||this,Le.transformers_=[],Le.trackExpectedRate_=-1;for(let Xe=0;Xe<le.length;Xe++){let Oe=new Mi(le[Xe],Xe);Oe.on("error",mt=>{Le.emit("error",mt)}),Oe.on("warn",mt=>{Le.emit("warn",mt)}),Le.transformers_.push(Oe)}return Le}var Se=Ft.prototype;return Se.setTrackExpectedRate=function(Le){this.trackExpectedRate_=Le;for(var Xe=A(this.transformers_),Oe;!(Oe=Xe()).done;)Oe.value.setTrackExpectedRate(this.trackExpectedRate_)},Se.start=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe,mt){var Wt=this,Mt,pn,on,gn;return s.default.wrap(function(cr){for(;;)switch(cr.prev=cr.next){case 0:if(!(!this.transformers_||this.transformers_.length===0)){cr.next=3;break}return console.log("[Pipeline] No transformers."),cr.abrupt("return");case 3:for(cr.prev=3,Mt=Oe,pn=A(this.transformers_);!(on=pn()).done;)gn=on.value,Oe=Oe.pipeThrough(new TransformStream(gn));Oe.pipeTo(mt).then((0,u.default)(s.default.mark(function Gn(){return s.default.wrap(function(un){for(;;)switch(un.prev=un.next){case 0:return console.log("[Pipeline] Setup."),un.next=3,mt.abort();case 3:return un.next=5,Mt.cancel();case 5:Wt.emit("pipelineInfo","pipeline_ended");case 6:case"end":return un.stop()}},Gn)}))).catch(function(){var Gn=(0,u.default)(s.default.mark(function Or(un){return s.default.wrap(function(mo){for(;;)switch(mo.prev=mo.next){case 0:return Oe.cancel().then(()=>{console.log("[Pipeline] Shutting down streams after abort.")}).catch(ds=>{console.error("[Pipeline] Error from stream transform:",ds)}),mo.next=3,mt.abort(un);case 3:return mo.next=5,Mt.cancel(un);case 5:Wt.emit("pipelineInfo","pipeline_ended_with_error");case 6:case"end":return mo.stop()}},Or)}));return function(Or){return Gn.apply(this,arguments)}}()),cr.next=13;break;case 9:return cr.prev=9,cr.t0=cr.catch(3),this.emit("pipelineInfo","pipeline_started_with_error"),this.destroy(),cr.abrupt("return");case 13:this.emit("pipelineInfo","pipeline_started"),console.log("[Pipeline] Pipeline started.");case 14:case"end":return cr.stop()}},Xe,this,[[3,9]])}));function Le(Xe,Oe){return le.apply(this,arguments)}return Le}(),Se.destroy=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe,mt,Wt;return s.default.wrap(function(pn){for(;;)switch(pn.prev=pn.next){case 0:for(console.log("[Pipeline] Destroying Pipeline."),Oe=A(this.transformers_);!(mt=Oe()).done;)Wt=mt.value,Wt.stop();case 2:case"end":return pn.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Ft}(Rt),In=function(dt){(0,h.default)(Ft,dt);function Ft(){var le;return le=dt.call(this)||this,le.reporter_=new dn,le.trackExpectedRate_=-1,le.report({variation:"Create"}),le}var Se=Ft.prototype;return Se.setTrackExpectedRate=function(Le){this.trackExpectedRate_=Le,this.pipeline_&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_)},Se.transform=function(Le,Xe){return this.readable_=Le,this.writable_=Xe,this.transformInternal()},Se.transformInternal=function(){var Le=this;return new a(function(){var Xe=(0,u.default)(s.default.mark(function Oe(mt,Wt){var Mt;return s.default.wrap(function(on){for(;;)switch(on.prev=on.next){case 0:if(!(!Le.transformers_||Le.transformers_.length===0)){on.next=3;break}return Le.report({message:R.errors.transformer_none,variation:"Error"}),Wt("[MediaProcessor] Need to set transformers."),on.abrupt("return");case 3:if(Le.readable_){on.next=6;break}return Le.report({variation:"Error",message:R.errors.readable_null}),Wt("[MediaProcessor] Readable is null."),on.abrupt("return");case 6:if(Le.writable_){on.next=9;break}return Le.report({variation:"Error",message:R.errors.writable_null}),Wt("[MediaProcessor] Writable is null."),on.abrupt("return");case 9:Mt=!1,Le.pipeline_&&(Mt=!0,Le.pipeline_.clearListeners(),Le.pipeline_.destroy()),Le.pipeline_=new Fi(Le.transformers_),Le.pipeline_.on("warn",gn=>{Le.emit("warn",gn)}),Le.pipeline_.on("error",gn=>{Le.emit("error",gn)}),Le.pipeline_.on("pipelineInfo",gn=>{Mt&&(gn==="pipeline_started"?gn=_n.pipeline_restarted:gn==="pipeline_started_with_error"&&(gn=_n.pipeline_restarted_with_error)),Le.emit("pipelineInfo",gn)}),Le.trackExpectedRate_!=-1&&Le.pipeline_.setTrackExpectedRate(Le.trackExpectedRate_),Le.pipeline_.start(Le.readable_,Le.writable_).then(()=>{mt()}).catch(gn=>{Wt(gn)});case 11:case"end":return on.stop()}},Oe)}));return function(Oe,mt){return Xe.apply(this,arguments)}}())},Se.setTransformers=function(Le){return this.report({variation:"Update",message:R.updates.transformer_new}),this.transformers_=Le,this.readable_&&this.writable_?this.transformInternal():a.resolve()},Se.destroy=function(){var Le=this;return new a(function(){var Xe=(0,u.default)(s.default.mark(function Oe(mt){return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:Le.pipeline_&&Le.pipeline_.destroy(),Le.report({variation:"Delete"}),mt();case 1:case"end":return Mt.stop()}},Oe)}));return function(Oe){return Xe.apply(this,arguments)}}())},Se.report=function(Le){this.reporter_.send(Object.assign({version:St,action:"MediaProcessor"},Le))},Ft}(Rt),Fa=function(){function dt(){this.processor_=null,this.generator_=null}var Ft=dt.prototype;return Ft.init=function(le){return new a((Le,Xe)=>{try{this.processor_=new MediaStreamTrackProcessor(le)}catch(Oe){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${Oe}`),Xe(Oe)}try{le.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):le.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):Xe("kind not supported")}catch(Oe){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${Oe}`),Xe(Oe)}Le()})},Ft.getReadable=function(){return this.processor_.readable},Ft.getWriteable=function(){return this.generator_.writable},Ft.getProccesorTrack=function(){return this.generator_},dt}(),Ml=function(){function dt(Se){this.insertableStreamHelper_=new Fa,this.mediaProcessor_=Se}var Ft=dt.prototype;return Ft.setTrack=function(le){return new a((Le,Xe)=>{this.insertableStreamHelper_.init(le).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{Le(this.insertableStreamHelper_.getProccesorTrack())}).catch(Oe=>{Xe(Oe)})}).catch(Oe=>{Xe(Oe)})})},Ft.destroy=function(){return new a((le,Le)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{le()}).catch(Xe=>{Le(Xe)}):Le("no processor")})},dt}();const hi=new WeakMap,ml=new WeakMap,$o=new WeakMap,Qa=Symbol("anyProducer"),Gl=a.resolve(),Gi=Symbol("listenerAdded"),Lt=Symbol("listenerRemoved");let $t=!1,At=!1;function bt(dt){if(typeof dt!="string"&&typeof dt!="symbol"&&typeof dt!="number")throw new TypeError("`eventName` must be a string, symbol, or number")}function zt(dt){if(typeof dt!="function")throw new TypeError("listener must be a function")}function Ot(dt,Ft){const Se=ml.get(dt);if(Se.has(Ft))return Se.get(Ft)}function Ct(dt,Ft){const Se=typeof Ft=="string"||typeof Ft=="symbol"||typeof Ft=="number"?Ft:Qa,le=$o.get(dt);if(le.has(Se))return le.get(Se)}function Kt(dt,Ft,Se){const le=$o.get(dt);if(le.has(Ft))for(var Le=A(le.get(Ft)),Xe;!(Xe=Le()).done;)Xe.value.enqueue(Se);if(le.has(Qa)){const Wt=a.all([Ft,Se]);for(var Oe=A(le.get(Qa)),mt;!(mt=Oe()).done;)mt.value.enqueue(Wt)}}function cn(dt,Ft){Ft=Array.isArray(Ft)?Ft:[Ft];let Se=!1,le=()=>{},Le=[];const Xe={enqueue(Wt){Le.push(Wt),le()},finish(){Se=!0,le()}};for(var Oe=A(Ft),mt;!(mt=Oe()).done;){const Wt=mt.value;let Mt=Ct(dt,Wt);Mt||(Mt=new Set,$o.get(dt).set(Wt,Mt)),Mt.add(Xe)}return{next(){var Wt=this;return(0,u.default)(s.default.mark(function Mt(){return s.default.wrap(function(on){for(;;)switch(on.prev=on.next){case 0:if(Le){on.next=2;break}return on.abrupt("return",{done:!0});case 2:if(Le.length!==0){on.next=9;break}if(!Se){on.next=6;break}return Le=void 0,on.abrupt("return",Wt.next());case 6:return on.next=8,new a(gn=>{le=gn});case 8:return on.abrupt("return",Wt.next());case 9:return on.next=11,Le.shift();case 11:return on.t0=on.sent,on.abrupt("return",{done:!1,value:on.t0});case 13:case"end":return on.stop()}},Mt)}))()},return(Wt){var Mt=arguments;return(0,u.default)(s.default.mark(function pn(){var on,gn,qn,cr,Gn;return s.default.wrap(function(un){for(;;)switch(un.prev=un.next){case 0:for(Le=void 0,on=A(Ft);!(gn=on()).done;)qn=gn.value,cr=Ct(dt,qn),cr&&(cr.delete(Xe),cr.size===0&&(Gn=$o.get(dt),Gn.delete(qn)));if(le(),!(Mt.length>0)){un.next=10;break}return un.next=6,Wt;case 6:un.t1=un.sent,un.t0={done:!0,value:un.t1},un.next=11;break;case 10:un.t0={done:!0};case 11:return un.abrupt("return",un.t0);case 12:case"end":return un.stop()}},pn)}))()},[Symbol.asyncIterator](){return this}}}function Jn(dt){if(dt===void 0)return Ur;if(!Array.isArray(dt))throw new TypeError("`methodNames` must be an array of strings");for(var Ft=A(dt),Se;!(Se=Ft()).done;){const le=Se.value;if(!Ur.includes(le))throw typeof le!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${le} is not Emittery method`)}return dt}const qt=dt=>dt===Gi||dt===Lt;function Mn(dt,Ft,Se){if(qt(Ft))try{$t=!0,dt.emit(Ft,Se)}finally{$t=!1}}let mr=function(){dt.mixin=function(le,Le){return Le=Jn(Le),Xe=>{if(typeof Xe!="function")throw new TypeError("`target` must be function");for(var Oe=A(Le),mt;!(mt=Oe()).done;){const gn=mt.value;if(Xe.prototype[gn]!==void 0)throw new Error(`The property \`${gn}\` already exists on \`target\``)}function Wt(){return Object.defineProperty(this,le,{enumerable:!1,value:new dt}),this[le]}Object.defineProperty(Xe.prototype,le,{enumerable:!1,get:Wt});const Mt=gn=>function(){return this[le][gn](...arguments)};for(var pn=A(Le),on;!(on=pn()).done;){const gn=on.value;Object.defineProperty(Xe.prototype,gn,{enumerable:!1,value:Mt(gn)})}return Xe}};function dt(Se){var le;Se===void 0&&(Se={}),hi.set(this,new Set),ml.set(this,new Map),$o.set(this,new Map),$o.get(this).set(Qa,new Set),this.debug=(le=Se.debug)!=null?le:{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(Le,Xe,Oe,mt)=>{try{mt=JSON.stringify(mt)}catch{mt=`Object with the following keys failed to stringify: ${Object.keys(mt).join(",")}`}(typeof Oe=="symbol"||typeof Oe=="number")&&(Oe=Oe.toString());const Wt=new Date,Mt=`${Wt.getHours()}:${Wt.getMinutes()}:${Wt.getSeconds()}.${Wt.getMilliseconds()}`;console.log(`[${Mt}][emittery:${Le}][${Xe}] Event Name: ${Oe} data: ${mt}`)})}var Ft=dt.prototype;return Ft.logIfDebugEnabled=function(le,Le,Xe){(dt.isDebugEnabled||this.debug.enabled)&&this.debug.logger(le,this.debug.name,Le,Xe)},Ft.on=function(le,Le){zt(Le),le=Array.isArray(le)?le:[le];for(var Xe=A(le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;bt(mt);let Wt=Ot(this,mt);Wt||(Wt=new Set,ml.get(this).set(mt,Wt)),Wt.add(Le),this.logIfDebugEnabled("subscribe",mt,void 0),qt(mt)||Mn(this,Gi,{eventName:mt,listener:Le})}return this.off.bind(this,le,Le)},Ft.off=function(le,Le){zt(Le),le=Array.isArray(le)?le:[le];for(var Xe=A(le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;bt(mt);const Wt=Ot(this,mt);Wt&&(Wt.delete(Le),Wt.size===0&&ml.get(this).delete(mt)),this.logIfDebugEnabled("unsubscribe",mt,void 0),qt(mt)||Mn(this,Lt,{eventName:mt,listener:Le})}},Ft.once=function(le){let Le;const Xe=new a(Oe=>{Le=this.on(le,mt=>{Le(),Oe(mt)})});return Xe.off=Le,Xe},Ft.events=function(le){le=Array.isArray(le)?le:[le];for(var Le=A(le),Xe;!(Xe=Le()).done;){const Oe=Xe.value;bt(Oe)}return cn(this,le)},Ft.emit=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe,Oe){var mt,Wt,Mt,pn,on;return s.default.wrap(function(qn){for(;;)switch(qn.prev=qn.next){case 0:if(bt(Xe),!(qt(Xe)&&!$t)){qn.next=3;break}throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");case 3:return this.logIfDebugEnabled("emit",Xe,Oe),Kt(this,Xe,Oe),Wt=(mt=Ot(this,Xe))!=null?mt:new Set,Mt=hi.get(this),pn=[...Wt],on=qt(Xe)?[]:[...Mt],qn.next=11,Gl;case 11:return qn.next=13,a.all([...pn.map(function(){var cr=(0,u.default)(s.default.mark(function Gn(Or){return s.default.wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:if(!Wt.has(Or)){Ar.next=2;break}return Ar.abrupt("return",Or(Oe));case 2:case"end":return Ar.stop()}},Gn)}));return function(Gn){return cr.apply(this,arguments)}}()),...on.map(function(){var cr=(0,u.default)(s.default.mark(function Gn(Or){return s.default.wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:if(!Mt.has(Or)){Ar.next=2;break}return Ar.abrupt("return",Or(Xe,Oe));case 2:case"end":return Ar.stop()}},Gn)}));return function(Gn){return cr.apply(this,arguments)}}())]);case 13:case"end":return qn.stop()}},Le,this)}));function le(Le,Xe){return Se.apply(this,arguments)}return le}(),Ft.emitSerial=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe,Oe){var mt,Wt,Mt,pn,on,gn,qn,cr,Gn,Or;return s.default.wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:if(bt(Xe),!(qt(Xe)&&!$t)){Ar.next=3;break}throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");case 3:return this.logIfDebugEnabled("emitSerial",Xe,Oe),Wt=(mt=Ot(this,Xe))!=null?mt:new Set,Mt=hi.get(this),pn=[...Wt],on=[...Mt],Ar.next=10,Gl;case 10:gn=0,qn=pn;case 11:if(!(gn<qn.length)){Ar.next=19;break}if(cr=qn[gn],!Wt.has(cr)){Ar.next=16;break}return Ar.next=16,cr(Oe);case 16:gn++,Ar.next=11;break;case 19:Gn=0,Or=on;case 20:if(!(Gn<Or.length)){Ar.next=28;break}if(cr=Or[Gn],!Mt.has(cr)){Ar.next=25;break}return Ar.next=25,cr(Xe,Oe);case 25:Gn++,Ar.next=20;break;case 28:case"end":return Ar.stop()}},Le,this)}));function le(Le,Xe){return Se.apply(this,arguments)}return le}(),Ft.onAny=function(le){return zt(le),this.logIfDebugEnabled("subscribeAny",void 0,void 0),hi.get(this).add(le),Mn(this,Gi,{listener:le}),this.offAny.bind(this,le)},Ft.anyEvent=function(){return cn(this)},Ft.offAny=function(le){zt(le),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),Mn(this,Lt,{listener:le}),hi.get(this).delete(le)},Ft.clearListeners=function(le){le=Array.isArray(le)?le:[le];for(var Le=A(le),Xe;!(Xe=Le()).done;){const cr=Xe.value;if(this.logIfDebugEnabled("clear",cr,void 0),typeof cr=="string"||typeof cr=="symbol"||typeof cr=="number"){const Gn=Ot(this,cr);Gn&&Gn.clear();const Or=Ct(this,cr);if(Or){for(var Oe=A(Or),mt;!(mt=Oe()).done;)mt.value.finish();Or.clear()}}else{hi.get(this).clear();for(var Wt=A(ml.get(this).entries()),Mt;!(Mt=Wt()).done;){const Gn=Mt.value,Or=Gn[0];Gn[1].clear(),ml.get(this).delete(Or)}for(var pn=A($o.get(this).entries()),on;!(on=pn()).done;){const Gn=on.value,Or=Gn[0],un=Gn[1];for(var gn=A(un),qn;!(qn=gn()).done;)qn.value.finish();un.clear(),$o.get(this).delete(Or)}}}},Ft.listenerCount=function(le){le=Array.isArray(le)?le:[le];let Le=0;for(var Xe=A(le),Oe;!(Oe=Xe()).done;){const un=Oe.value;if(typeof un=="string"){var mt,Wt,Mt,pn,on,gn;Le+=hi.get(this).size+((mt=(Wt=Ot(this,un))==null?void 0:Wt.size)!=null?mt:0)+((Mt=(pn=Ct(this,un))==null?void 0:pn.size)!=null?Mt:0)+((on=(gn=Ct(this))==null?void 0:gn.size)!=null?on:0);continue}typeof un<"u"&&bt(un),Le+=hi.get(this).size;for(var qn=A(ml.get(this).values()),cr;!(cr=qn()).done;){const Ar=cr.value;Le+=Ar.size}for(var Gn=A($o.get(this).values()),Or;!(Or=Gn()).done;){const Ar=Or.value;Le+=Ar.size}}return Le},Ft.bindMethods=function(le,Le){if(typeof le!="object"||le===null)throw new TypeError("`target` must be an object");Le=Jn(Le);for(var Xe=A(Le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;if(le[mt]!==void 0)throw new Error(`The property \`${mt}\` already exists on \`target\``);Object.defineProperty(le,mt,{enumerable:!1,value:this[mt].bind(this)})}},(0,c.default)(dt,null,[{key:"isDebugEnabled",get:function(){var le,Le;if(typeof((le=g.process)==null?void 0:le.env)!="object")return At;const Xe=(Le=g.process)!=null?Le:{env:{}},Oe=Xe.env;return Oe.DEBUG==="emittery"||Oe.DEBUG==="*"||At},set:function(le){At=le}}]),dt}();const Ur=Object.getOwnPropertyNames(mr.prototype).filter(dt=>dt!=="constructor");Object.defineProperty(mr,"listenerAdded",{value:Gi,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(mr,"listenerRemoved",{value:Lt,writable:!1,enumerable:!0,configurable:!1});const sr="1.0.0";let Nn=function(){function dt(Se){this.size=Se,this.values=[],this.sum=0}var Ft=dt.prototype;return Ft.push=function(le){for(this.values.push(le),this.sum+=le;this.size<this.values.length;){var Le;this.sum-=(Le=this.values.shift())!=null?Le:0}},Ft.value=function(){return this.sum/Math.max(1,this.values.length)},dt}();const Gr=`https://d3opqjmqzxf057.cloudfront.net/noise-suppression/${sr}`;let $r=function(dt){(0,h.default)(Ft,dt);function Ft(){var le;return le=dt.call(this)||this,le.isEnabled=!0,le.internalResampleSupported=!1,le.latency=new Nn(100),le.transform=le.transformAudioData.bind((0,d.default)(le)),le}var Se=Ft.prototype;return Se.init=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe){var mt,Wt,Mt,pn,on,gn,qn,cr,Gn,Or;return s.default.wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:return Oe===void 0&&(Oe={}),console.log("Noise suppression transformer initialization"),this.transform=Oe.debug?this.transformDebug.bind(this):this.transformAudioData.bind(this),Mt=(mt=Oe.assetsDirBaseUrl)!=null?mt:Gr,pn=mo=>`${Mt}/${mo}`,on=1,Ar.next=8,this.isMonoThread(Oe);case 8:if(!Ar.sent){Ar.next=14;break}return Ar.next=11,y({locateFile:pn,mainScriptUrlOrBlob:pn("main-bin-mono.js")});case 11:this.wasmInstance=Ar.sent,Ar.next=18;break;case 14:return Ar.next=16,F({locateFile:pn,mainScriptUrlOrBlob:pn("main-bin-multi.js")});case 16:this.wasmInstance=Ar.sent,on=4;case 18:return this.wasmTransformer=new this.wasmInstance.DtlnTransformer,Ar.next=21,a.all([this.loadModel(`${Mt}/model_1.tflite`,1),this.loadModel(`${Mt}/model_2.tflite`,2)]);case 21:return Ar.prev=21,Ar.next=24,(qn=this.wasmTransformer)==null?void 0:qn.init(on);case 24:gn=Ar.sent,Ar.next=30;break;case 27:if(Ar.prev=27,Ar.t0=Ar.catch(21),typeof Ar.t0=="number"){for(cr="",Gn=0;Gn<500;++Gn)cr+=String.fromCharCode(this.wasmInstance.HEAP8[Ar.t0+Gn]);console.error(cr)}else console.error(Ar.t0);case 30:if(gn===0){Ar.next=34;break}throw cr=`Fail to init wasm transformer, error code = ${gn}`,console.error(cr),cr;case 34:if(this.internalResampleSupported=(Wt=this.wasmTransformer)==null?void 0:Wt.getInternalResampleSupported(),this.internalResampleSupported){Ar.next=39;break}throw cr="Internal resampling not supported",console.error(cr),cr;case 39:Oe.debug&&((Or=this.wasmTransformer)==null||Or.enableWavExport()),console.log("Noise suppression transformer ready");case 41:case"end":return Ar.stop()}},Xe,this,[[21,27]])}));function Le(Xe){return le.apply(this,arguments)}return Le}(),Se.getWav=function(){if(!this.wasmTransformer)return"";this.wasmTransformer.closeWav();const Le=this.wasmTransformer.getWav();return`data:audio/wav;base64,${btoa(new Uint8Array(Le).reduce((Oe,mt)=>Oe+String.fromCharCode(mt),""))}`},Se.setAudioOptions=function(Le,Xe,Oe,mt,Wt){var Mt;(Mt=this.wasmTransformer)==null||Mt.setAudioOptions(Le,Xe,Oe,mt,Wt)},Se.enable=function(){this.isEnabled=!0},Se.disable=function(){this.isEnabled=!1},Se.getLatency=function(){return this.latency.value()},Se.getWasmLatencyNs=function(){var Le,Xe;return(Le=(Xe=this.wasmTransformer)==null?void 0:Xe.getLatencyNs())!=null?Le:0},Se.transformDebug=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe,mt){var Wt;return s.default.wrap(function(pn){for(;;)switch(pn.prev=pn.next){case 0:return pn.prev=0,Wt=performance.now(),pn.next=4,this.transformAudioData(Oe,mt);case 4:this.latency.push(performance.now()-Wt),pn.next=10;break;case 7:pn.prev=7,pn.t0=pn.catch(0),console.error(pn.t0);case 10:case"end":return pn.stop()}},Xe,this,[[0,7]])}));function Le(Xe,Oe){return le.apply(this,arguments)}return Le}(),Se.transformAudioData=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe,mt){var Wt,Mt,pn,on,gn,qn,cr,Gn,Or,un,Ar,mo;return s.default.wrap(function(Kr){for(;;)switch(Kr.prev=Kr.next){case 0:if(this.wasmTransformer||this.emit("warning","transformer not initialized"),this.isEnabled&&this.wasmTransformer)try{Wt=Oe,Mt=Wt.numberOfFrames,pn=Wt.sampleRate,on=Wt.numberOfChannels,gn=Wt.timestamp,qn=this.getAudioDataAsFloat32(Oe),cr=this.convertTypedArray(qn,Int16Array,Math.pow(2,15)-1),this.wasmTransformer.getInputFrame(cr.length).set(cr),Gn=0;try{Gn=this.wasmTransformer.runAlgorithm(Mt,pn,on)}catch(Sn){if(typeof Sn=="number"){for(Or="",un=0;un<500;++un)Or+=String.fromCharCode(this.wasmInstance.HEAP8[Sn+un]);console.error(Or)}else console.error(Sn)}Gn>0&&(Ar=this.wasmTransformer.getOutputFrame().slice(0,Gn),mo=this.convertTypedArray(Ar,Float32Array,1/(Math.pow(2,15)-1)),Oe=new AudioData({data:mo,format:"f32",numberOfChannels:on,numberOfFrames:Mt,sampleRate:pn,timestamp:gn}))}catch(Sn){console.error(Sn)}mt.enqueue(Oe);case 3:case"end":return Kr.stop()}},Xe,this)}));function Le(Xe,Oe){return le.apply(this,arguments)}return Le}(),Se.loadModel=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe,mt){var Wt,Mt,pn,on,gn,qn;return s.default.wrap(function(Gn){for(;;)switch(Gn.prev=Gn.next){case 0:if(this.wasmTransformer){Gn.next=2;break}return Gn.abrupt("return");case 2:return Gn.next=4,fetch(Oe);case 4:return Wt=Gn.sent,Gn.next=7,Wt.arrayBuffer();case 7:Mt=Gn.sent,pn=Mt.byteLength,on=`getModel${mt}`,gn=this.wasmTransformer[on](pn),gn&&(qn=new Uint8Array(Mt),gn.set(qn));case 12:case"end":return Gn.stop()}},Xe,this)}));function Le(Xe,Oe){return le.apply(this,arguments)}return Le}(),Se.getAudioDataAsFloat32=function(Le){return this.audioDataToTypedArray(Le,Float32Array,"f32-planar")},Se.audioDataToTypedArray=function(Le,Xe,Oe,mt){mt===void 0&&(mt=Le.numberOfChannels);const Wt=Le.numberOfFrames*mt,Mt=new Xe(Wt);for(let pn=0;pn<mt;++pn){const on=Le.numberOfFrames*pn,gn=Mt.subarray(on,on+Le.numberOfFrames);Le.copyTo(gn,{planeIndex:pn,format:Oe})}if(mt>1){const pn=new Xe(Wt);for(let on=0;on<Le.numberOfFrames;++on){const gn=on*2;for(let qn=0;qn<mt;++qn)pn[gn+qn]=Mt[on+qn*Le.numberOfFrames]}return pn}return Mt},Se.convertTypedArray=function(Le,Xe,Oe){const mt=Le.length,Wt=new Xe(mt);for(let Mt=0;Mt<mt;++Mt)Wt[Mt]=Le[Mt]*Oe;return Wt},Se.isMonoThread=function(Le){if(Le.disableWasmMultiThread)return!0;try{if(new SharedArrayBuffer(1024)===void 0)throw new Error("not supported")}catch{return this.emit("warning",` Multithread is not available, noise-suppresion is now running on a single thread. This is impacting the performance and increase the latency. To enable multithread, you need to serve the application via https with these http headers : - Cross-Origin-Opener-Policy: same-origin - Cross-Origin-Embedder-Policy: require-corp. More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements You can disable this warning by enabling disableWasmMultiThread within the noiseSuppression options. `),!0}return!1},Ft}(mr);r.NoiseSuppressionTransformer=$r;function kr(dt,Ft){g.vonage||(g.vonage={}),g.vonage.workerizer||(g.vonage.workerizer={});let Se=g.vonage.workerizer;return Se[dt]||(Se[dt]=Ft),Se[dt]}const Mr=kr("globals",{});var Ba=(dt=>(dt.INIT="INIT",dt.FORWARD="FORWARD",dt.TERMINATE="TERMINATE",dt.GLOBALS_SYNC="GLOBALS_SYNC",dt.EVENT="EVENT",dt))(Ba||{});function Io(dt){return[ImageBitmap,ReadableStream,WritableStream].some(Se=>dt instanceof Se)}let qo=0;function Si(dt,Ft,Se,le,Le){const Xe=qo++;return dt.postMessage({id:Xe,type:Ft,functionName:Se,args:le},le.filter(mt=>Io(mt))),new a(mt=>{Le==null||Le.set(Xe,mt)})}function Go(dt,Ft){const Se=dt.id,le=dt.type,Le=Array.isArray(Ft)?Ft:[Ft];postMessage({id:Se,type:le,result:Ft},Le.filter(Xe=>Io(Xe)))}const ca=kr("workerized",{});function Za(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function ta(){return bo.apply(this,arguments)}function bo(){return bo=(0,u.default)(s.default.mark(function dt(){var Ft,Se,le,Le,Xe;return s.default.wrap(function(mt){for(;;)switch(mt.prev=mt.next){case 0:if(!Za()){mt.next=4;break}Go({type:Ba.GLOBALS_SYNC},Mr),mt.next=8;break;case 4:Ft=[];for(Se in ca)le=ca[Se].workerContext,Le=le.worker,Xe=le.resolvers,Le&&Ft.push(Si(Le,Ba.GLOBALS_SYNC,"",[Mr],Xe));return mt.next=8,a.all(Ft);case 8:case"end":return mt.stop()}},dt)})),bo.apply(this,arguments)}function Eo(dt,Ft){if(Array.isArray(Ft))Ft.splice(0,Ft.length);else if(typeof Ft=="object")for(const Se in Ft)delete Ft[Se];for(const Se in dt)Array.isArray(dt[Se])?(Ft[Se]=[],Eo(dt[Se],Ft[Se])):typeof dt[Se]=="object"?(Ft[Se]={},Eo(dt[Se],Ft[Se])):Ft[Se]=dt[Se]}function jl(dt,Ft,Se,le){return So.apply(this,arguments)}function So(){return So=(0,u.default)(s.default.mark(function dt(Ft,Se,le,Le){var Xe,Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Xe=new Se,Xe.addEventListener("message",function(){var Mt=(0,u.default)(s.default.mark(function pn(on){var gn,qn,cr,Gn,Or,un,Ar,mo,ds,Kr;return s.default.wrap(function(Il){for(;;)switch(Il.prev=Il.next){case 0:gn=on.data,Il.t0=gn.type,Il.next=Il.t0===Ba.GLOBALS_SYNC?4:Il.t0===Ba.EVENT?13:19;break;case 4:if(!gn.id){Il.next=9;break}(cr=le.get((qn=gn.id)!=null?qn:-1))==null||cr(gn.result),le.delete((Gn=gn.id)!=null?Gn:-1),Il.next=12;break;case 9:return Eo((Or=gn.result)!=null?Or:{},Mr),Il.next=12,ta();case 12:return Il.abrupt("break",21);case 13:if(ds=gn.result,Kr=ds,(Kr==null?void 0:Kr.name)!=null){Il.next=17;break}throw"Missing event name";case 17:return Le(Kr.name,Kr.data),Il.abrupt("break",21);case 19:(Ar=le.get((un=gn.id)!=null?un:-1))==null||Ar(gn.result),le.delete((mo=gn.id)!=null?mo:-1);case 21:case"end":return Il.stop()}},pn)}));return function(pn){return Mt.apply(this,arguments)}}()),Wt.next=4,Si(Xe,Ba.INIT,"",[Ft.workerId,Mr],le);case 4:if(Oe=Wt.sent,Oe){Wt.next=7;break}throw"Failed to instantiate workerized class";case 7:return Wt.abrupt("return",Xe);case 8:case"end":return Wt.stop()}},dt)})),So.apply(this,arguments)}const so=new WeakMap,Ll=new WeakMap,Ko=new WeakMap,Co=Symbol("anyProducer"),ti=a.resolve(),yo=Symbol("listenerAdded"),ss=Symbol("listenerRemoved");let Zl=!1,ll=!1;function Jl(dt){if(typeof dt!="string"&&typeof dt!="symbol"&&typeof dt!="number")throw new TypeError("`eventName` must be a string, symbol, or number")}function Hl(dt){if(typeof dt!="function")throw new TypeError("listener must be a function")}function el(dt,Ft){const Se=Ll.get(dt);if(Se.has(Ft))return Se.get(Ft)}function Ji(dt,Ft){const Se=typeof Ft=="string"||typeof Ft=="symbol"||typeof Ft=="number"?Ft:Co,le=Ko.get(dt);if(le.has(Se))return le.get(Se)}function Pr(dt,Ft,Se){const le=Ko.get(dt);if(le.has(Ft))for(var Le=A(le.get(Ft)),Xe;!(Xe=Le()).done;)Xe.value.enqueue(Se);if(le.has(Co)){const Wt=a.all([Ft,Se]);for(var Oe=A(le.get(Co)),mt;!(mt=Oe()).done;)mt.value.enqueue(Wt)}}function Ys(dt,Ft){Ft=Array.isArray(Ft)?Ft:[Ft];let Se=!1,le=()=>{},Le=[];const Xe={enqueue(Wt){Le.push(Wt),le()},finish(){Se=!0,le()}};for(var Oe=A(Ft),mt;!(mt=Oe()).done;){const Wt=mt.value;let Mt=Ji(dt,Wt);Mt||(Mt=new Set,Ko.get(dt).set(Wt,Mt)),Mt.add(Xe)}return{next(){var Wt=this;return(0,u.default)(s.default.mark(function Mt(){return s.default.wrap(function(on){for(;;)switch(on.prev=on.next){case 0:if(Le){on.next=2;break}return on.abrupt("return",{done:!0});case 2:if(Le.length!==0){on.next=9;break}if(!Se){on.next=6;break}return Le=void 0,on.abrupt("return",Wt.next());case 6:return on.next=8,new a(gn=>{le=gn});case 8:return on.abrupt("return",Wt.next());case 9:return on.next=11,Le.shift();case 11:return on.t0=on.sent,on.abrupt("return",{done:!1,value:on.t0});case 13:case"end":return on.stop()}},Mt)}))()},return(Wt){var Mt=arguments;return(0,u.default)(s.default.mark(function pn(){var on,gn,qn,cr,Gn;return s.default.wrap(function(un){for(;;)switch(un.prev=un.next){case 0:for(Le=void 0,on=A(Ft);!(gn=on()).done;)qn=gn.value,cr=Ji(dt,qn),cr&&(cr.delete(Xe),cr.size===0&&(Gn=Ko.get(dt),Gn.delete(qn)));if(le(),!(Mt.length>0)){un.next=10;break}return un.next=6,Wt;case 6:un.t1=un.sent,un.t0={done:!0,value:un.t1},un.next=11;break;case 10:un.t0={done:!0};case 11:return un.abrupt("return",un.t0);case 12:case"end":return un.stop()}},pn)}))()},[Symbol.asyncIterator](){return this}}}function _l(dt){if(dt===void 0)return li;if(!Array.isArray(dt))throw new TypeError("`methodNames` must be an array of strings");for(var Ft=A(dt),Se;!(Se=Ft()).done;){const le=Se.value;if(!li.includes(le))throw typeof le!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${le} is not Emittery method`)}return dt}const Qn=dt=>dt===yo||dt===ss;function Kn(dt,Ft,Se){if(Qn(Ft))try{Zl=!0,dt.emit(Ft,Se)}finally{Zl=!1}}let Fr=function(){dt.mixin=function(le,Le){return Le=_l(Le),Xe=>{if(typeof Xe!="function")throw new TypeError("`target` must be function");for(var Oe=A(Le),mt;!(mt=Oe()).done;){const gn=mt.value;if(Xe.prototype[gn]!==void 0)throw new Error(`The property \`${gn}\` already exists on \`target\``)}function Wt(){return Object.defineProperty(this,le,{enumerable:!1,value:new dt}),this[le]}Object.defineProperty(Xe.prototype,le,{enumerable:!1,get:Wt});const Mt=gn=>function(){return this[le][gn](...arguments)};for(var pn=A(Le),on;!(on=pn()).done;){const gn=on.value;Object.defineProperty(Xe.prototype,gn,{enumerable:!1,value:Mt(gn)})}return Xe}};function dt(Se){Se===void 0&&(Se={});var le;so.set(this,new Set),Ll.set(this,new Map),Ko.set(this,new Map),Ko.get(this).set(Co,new Set),this.debug=(le=Se.debug)!=null?le:{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(Le,Xe,Oe,mt)=>{try{mt=JSON.stringify(mt)}catch{mt=`Object with the following keys failed to stringify: ${Object.keys(mt).join(",")}`}(typeof Oe=="symbol"||typeof Oe=="number")&&(Oe=Oe.toString());const Wt=new Date,Mt=`${Wt.getHours()}:${Wt.getMinutes()}:${Wt.getSeconds()}.${Wt.getMilliseconds()}`;console.log(`[${Mt}][emittery:${Le}][${Xe}] Event Name: ${Oe} data: ${mt}`)})}var Ft=dt.prototype;return Ft.logIfDebugEnabled=function(le,Le,Xe){(dt.isDebugEnabled||this.debug.enabled)&&this.debug.logger(le,this.debug.name,Le,Xe)},Ft.on=function(le,Le){Hl(Le),le=Array.isArray(le)?le:[le];for(var Xe=A(le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;Jl(mt);let Wt=el(this,mt);Wt||(Wt=new Set,Ll.get(this).set(mt,Wt)),Wt.add(Le),this.logIfDebugEnabled("subscribe",mt,void 0),Qn(mt)||Kn(this,yo,{eventName:mt,listener:Le})}return this.off.bind(this,le,Le)},Ft.off=function(le,Le){Hl(Le),le=Array.isArray(le)?le:[le];for(var Xe=A(le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;Jl(mt);const Wt=el(this,mt);Wt&&(Wt.delete(Le),Wt.size===0&&Ll.get(this).delete(mt)),this.logIfDebugEnabled("unsubscribe",mt,void 0),Qn(mt)||Kn(this,ss,{eventName:mt,listener:Le})}},Ft.once=function(le){let Le;const Xe=new a(Oe=>{Le=this.on(le,mt=>{Le(),Oe(mt)})});return Xe.off=Le,Xe},Ft.events=function(le){le=Array.isArray(le)?le:[le];for(var Le=A(le),Xe;!(Xe=Le()).done;){const Oe=Xe.value;Jl(Oe)}return Ys(this,le)},Ft.emit=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe,Oe){var mt,Wt,Mt,pn,on;return s.default.wrap(function(qn){for(;;)switch(qn.prev=qn.next){case 0:if(Jl(Xe),!(Qn(Xe)&&!Zl)){qn.next=3;break}throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");case 3:return this.logIfDebugEnabled("emit",Xe,Oe),Pr(this,Xe,Oe),Wt=(mt=el(this,Xe))!=null?mt:new Set,Mt=so.get(this),pn=[...Wt],on=Qn(Xe)?[]:[...Mt],qn.next=11,ti;case 11:return qn.next=13,a.all([...pn.map(function(){var cr=(0,u.default)(s.default.mark(function Gn(Or){return s.default.wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:if(!Wt.has(Or)){Ar.next=2;break}return Ar.abrupt("return",Or(Oe));case 2:case"end":return Ar.stop()}},Gn)}));return function(Gn){return cr.apply(this,arguments)}}()),...on.map(function(){var cr=(0,u.default)(s.default.mark(function Gn(Or){return s.default.wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:if(!Mt.has(Or)){Ar.next=2;break}return Ar.abrupt("return",Or(Xe,Oe));case 2:case"end":return Ar.stop()}},Gn)}));return function(Gn){return cr.apply(this,arguments)}}())]);case 13:case"end":return qn.stop()}},Le,this)}));function le(Le,Xe){return Se.apply(this,arguments)}return le}(),Ft.emitSerial=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe,Oe){var mt,Wt,Mt,pn,on,gn,qn,cr,Gn,Or;return s.default.wrap(function(Ar){for(;;)switch(Ar.prev=Ar.next){case 0:if(Jl(Xe),!(Qn(Xe)&&!Zl)){Ar.next=3;break}throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");case 3:return this.logIfDebugEnabled("emitSerial",Xe,Oe),Wt=(mt=el(this,Xe))!=null?mt:new Set,Mt=so.get(this),pn=[...Wt],on=[...Mt],Ar.next=10,ti;case 10:gn=0,qn=pn;case 11:if(!(gn<qn.length)){Ar.next=19;break}if(cr=qn[gn],!Wt.has(cr)){Ar.next=16;break}return Ar.next=16,cr(Oe);case 16:gn++,Ar.next=11;break;case 19:Gn=0,Or=on;case 20:if(!(Gn<Or.length)){Ar.next=28;break}if(cr=Or[Gn],!Mt.has(cr)){Ar.next=25;break}return Ar.next=25,cr(Xe,Oe);case 25:Gn++,Ar.next=20;break;case 28:case"end":return Ar.stop()}},Le,this)}));function le(Le,Xe){return Se.apply(this,arguments)}return le}(),Ft.onAny=function(le){return Hl(le),this.logIfDebugEnabled("subscribeAny",void 0,void 0),so.get(this).add(le),Kn(this,yo,{listener:le}),this.offAny.bind(this,le)},Ft.anyEvent=function(){return Ys(this)},Ft.offAny=function(le){Hl(le),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),Kn(this,ss,{listener:le}),so.get(this).delete(le)},Ft.clearListeners=function(le){le=Array.isArray(le)?le:[le];for(var Le=A(le),Xe;!(Xe=Le()).done;){const cr=Xe.value;if(this.logIfDebugEnabled("clear",cr,void 0),typeof cr=="string"||typeof cr=="symbol"||typeof cr=="number"){const Gn=el(this,cr);Gn&&Gn.clear();const Or=Ji(this,cr);if(Or){for(var Oe=A(Or),mt;!(mt=Oe()).done;)mt.value.finish();Or.clear()}}else{so.get(this).clear();for(var Wt=A(Ll.get(this).entries()),Mt;!(Mt=Wt()).done;){const Gn=Mt.value,Or=Gn[0];Gn[1].clear(),Ll.get(this).delete(Or)}for(var pn=A(Ko.get(this).entries()),on;!(on=pn()).done;){const Gn=on.value,Or=Gn[0],un=Gn[1];for(var gn=A(un),qn;!(qn=gn()).done;)qn.value.finish();un.clear(),Ko.get(this).delete(Or)}}}},Ft.listenerCount=function(le){var Le,Xe,Oe,mt,Wt,Mt;le=Array.isArray(le)?le:[le];let pn=0;for(var on=A(le),gn;!(gn=on()).done;){const un=gn.value;if(typeof un=="string"){pn+=so.get(this).size+((Xe=(Le=el(this,un))==null?void 0:Le.size)!=null?Xe:0)+((mt=(Oe=Ji(this,un))==null?void 0:Oe.size)!=null?mt:0)+((Mt=(Wt=Ji(this))==null?void 0:Wt.size)!=null?Mt:0);continue}typeof un<"u"&&Jl(un),pn+=so.get(this).size;for(var qn=A(Ll.get(this).values()),cr;!(cr=qn()).done;){const Ar=cr.value;pn+=Ar.size}for(var Gn=A(Ko.get(this).values()),Or;!(Or=Gn()).done;){const Ar=Or.value;pn+=Ar.size}}return pn},Ft.bindMethods=function(le,Le){if(typeof le!="object"||le===null)throw new TypeError("`target` must be an object");Le=_l(Le);for(var Xe=A(Le),Oe;!(Oe=Xe()).done;){const mt=Oe.value;if(le[mt]!==void 0)throw new Error(`The property \`${mt}\` already exists on \`target\``);Object.defineProperty(le,mt,{enumerable:!1,value:this[mt].bind(this)})}},(0,c.default)(dt,null,[{key:"isDebugEnabled",get:function(){var le,Le;if(typeof((le=g.process)==null?void 0:le.env)!="object")return ll;const Xe=(Le=g.process)!=null?Le:{env:{}},Oe=Xe.env;return Oe.DEBUG==="emittery"||Oe.DEBUG==="*"||ll},set:function(le){ll=le}}]),dt}();const li=Object.getOwnPropertyNames(Fr.prototype).filter(dt=>dt!=="constructor");Object.defineProperty(Fr,"listenerAdded",{value:yo,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(Fr,"listenerRemoved",{value:ss,writable:!1,enumerable:!0,configurable:!1});function ki(dt){return dt.onAny&&dt.emit}function $a(dt){return dt.prototype.onAny&&dt.prototype.emit}let oa=0;function hl(dt,Ft,Se){return wa.apply(this,arguments)}function wa(){return wa=(0,u.default)(s.default.mark(function dt(Ft,Se,le){var Le,Xe,Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Le=$a(Ft),Xe=Le?new Fr:{},Oe=oa++,Object.getOwnPropertyNames(Ft.prototype).forEach(Mt=>{Xe[Mt]=function(){for(var pn=arguments.length,on=new Array(pn),gn=0;gn<pn;gn++)on[gn]=arguments[gn];return Si(Se,Ba.FORWARD,Mt,on,le)}}),Xe.terminate=(0,u.default)(s.default.mark(function Mt(){var pn,on,gn,qn,cr=arguments;return s.default.wrap(function(Or){for(;;)switch(Or.prev=Or.next){case 0:for(pn=cr.length,on=new Array(pn),gn=0;gn<pn;gn++)on[gn]=cr[gn];return Or.next=3,Si(Se,Ba.TERMINATE,"",on,le);case 3:return qn=Or.sent,delete ca[Oe],Se.terminate(),Xe.workerContext.worker=void 0,Or.abrupt("return",qn);case 8:case"end":return Or.stop()}},Mt)})),Xe.workerContext={id:Oe,worker:Se,resolvers:le},ca[Oe]=Xe,Wt.abrupt("return",Xe);case 8:case"end":return Wt.stop()}},dt)})),wa.apply(this,arguments)}function qa(dt,Ft){return yn.apply(this,arguments)}function yn(){return yn=(0,u.default)(s.default.mark(function dt(Ft,Se){var le,Le,Xe;return s.default.wrap(function(mt){for(;;)switch(mt.prev=mt.next){case 0:return le=new Map,mt.next=3,jl(Ft,Se,le,(Wt,Mt)=>{Le!=null&&Le.emit&&(Le==null||Le.emit(Wt,Mt))});case 3:return Xe=mt.sent,mt.next=6,hl(Ft,Xe,le);case 6:return Le=mt.sent,mt.abrupt("return",Le);case 8:case"end":return mt.stop()}},dt)})),yn.apply(this,arguments)}function En(dt,Ft){return Un.apply(this,arguments)}function Un(){return Un=(0,u.default)(s.default.mark(function dt(Ft,Se){var le,Le;return s.default.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:if(le=Ft.functionName,Le=Ft.args,Se.instance){Oe.next=3;break}throw"instance not initialized";case 3:if(le){Oe.next=5;break}throw"missing function name to call";case 5:if(Se.instance[le]){Oe.next=7;break}throw`undefined function [${le}] in class ${Se.instance.constructor.workerId}`;case 7:return Oe.t0=Go,Oe.t1=Ft,Oe.next=11,Se.instance[le](...Le??[]);case 11:Oe.t2=Oe.sent,(0,Oe.t0)(Oe.t1,Oe.t2);case 13:case"end":return Oe.stop()}},dt)})),Un.apply(this,arguments)}const Rr=kr("registeredWorkers",{});function si(dt,Ft){Ft.workerId=dt,Za()&&(Rr[Ft.workerId]=Ft)}function Br(dt,Ft){if(!dt.args)throw"Missing className while initializing worker";const Se=dt.args,le=Se[0],Le=Se[1],Xe=Rr[le];if(Xe)Ft.instance=new Xe(dt.args.slice(1));else throw`unknown worker class ${le}`;Eo(Le,Mr),ki(Ft.instance)&&Ft.instance.onAny((Oe,mt)=>{Go({type:Ba.EVENT},{name:Oe,data:mt})}),Go(dt,typeof Ft.instance!==void 0)}function Jo(dt,Ft){return ho.apply(this,arguments)}function ho(){return ho=(0,u.default)(s.default.mark(function dt(Ft,Se){var le,Le;return s.default.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:if(le=Ft.args,Se.instance){Oe.next=3;break}throw"instance not initialized";case 3:if(!Se.instance.terminate){Oe.next=7;break}return Oe.next=6,Se.instance.terminate(...le??[]);case 6:Le=Oe.sent;case 7:Go(Ft,Le);case 8:case"end":return Oe.stop()}},dt)})),ho.apply(this,arguments)}function Qo(dt){if(!dt.args)throw"Missing globals while syncing";Eo(dt.args[0],Mr),Go(dt,{})}function Tl(){const dt={};onmessage=function(){var Ft=(0,u.default)(s.default.mark(function Se(le){var Le;return s.default.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:Le=le.data,Oe.t0=Le.type,Oe.next=Oe.t0===Ba.INIT?4:Oe.t0===Ba.FORWARD?6:Oe.t0===Ba.TERMINATE?8:Oe.t0===Ba.GLOBALS_SYNC?10:12;break;case 4:return Br(Le,dt),Oe.abrupt("break",12);case 6:return En(Le,dt),Oe.abrupt("break",12);case 8:return Jo(Le,dt),Oe.abrupt("break",12);case 10:return Qo(Le),Oe.abrupt("break",12);case 12:case"end":return Oe.stop()}},Se)}));return function(le){return Ft.apply(this,arguments)}}()}Za()&&Tl();const ga=function(dt){(0,h.default)(Ft,dt);function Ft(){var le;return le=dt.apply(this,arguments)||this,le.processor=new In,le}var Se=Ft.prototype;return Se.init=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe){return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Oe===void 0&&(Oe={}),this.transformer=new $r,this.processor.onAny((Mt,pn)=>this.emit(Mt,pn)),this.transformer.onAny((Mt,pn)=>this.emit(Mt,pn)),Wt.next=6,this.transformer.init(Oe);case 6:return Wt.next=8,this.processor.setTransformers([this.transformer]);case 8:case"end":return Wt.stop()}},Xe,this)}));function Le(Xe){return le.apply(this,arguments)}return Le}(),Se.transform=function(Le,Xe){this.processor.transform(Le,Xe)},Se.setAudioOptions=function(Le,Xe,Oe,mt,Wt){var Mt;(Mt=this.transformer)==null||Mt.setAudioOptions(Le,Xe,Oe,mt,Wt)},Se.enable=function(){var Le;(Le=this.transformer)==null||Le.enable()},Se.disable=function(){var Le;(Le=this.transformer)==null||Le.disable()},Se.terminate=function(){var le=(0,u.default)(s.default.mark(function Xe(){return s.default.wrap(function(mt){for(;;)switch(mt.prev=mt.next){case 0:return mt.next=2,this.processor.destroy();case 2:case"end":return mt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.getWav=function(){var Le,Xe;return(Le=(Xe=this.transformer)==null?void 0:Xe.getWav())!=null?Le:""},Se.getLatency=function(){var Le,Xe;return(Le=(Xe=this.transformer)==null?void 0:Xe.getLatency())!=null?Le:0},Se.getWasmLatencyNs=function(){var Le,Xe;return(Le=(Xe=this.transformer)==null?void 0:Xe.getWasmLatencyNs())!=null?Le:0},Ft}(mr);si("ProcessorWorker",ga);let Zd=ga;const gl="bGV0IGNyZWF0ZVdhc21Nb25vSW5zdGFuY2U7IHsKCnZhciBNb2R1bGUgPSAoKCkgPT4gewogIHZhciBfc2NyaXB0RGlyID0gbG9jYXRpb24uaHJlZjsKICAKICByZXR1cm4gKApmdW5jdGlvbihtb2R1bGVBcmcgPSB7fSkgewoKdmFyIE1vZHVsZT1tb2R1bGVBcmc7dmFyIHJlYWR5UHJvbWlzZVJlc29sdmUscmVhZHlQcm9taXNlUmVqZWN0O01vZHVsZVsicmVhZHkiXT1uZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57cmVhZHlQcm9taXNlUmVzb2x2ZT1yZXNvbHZlO3JlYWR5UHJvbWlzZVJlamVjdD1yZWplY3R9KTt2YXIgbW9kdWxlT3ZlcnJpZGVzPU9iamVjdC5hc3NpZ24oe30sTW9kdWxlKTt2YXIgYXJndW1lbnRzXz1bXTt2YXIgdGhpc1Byb2dyYW09Ii4vdGhpcy5wcm9ncmFtIjt2YXIgcXVpdF89KHN0YXR1cyx0b1Rocm93KT0+e3Rocm93IHRvVGhyb3d9O3ZhciBFTlZJUk9OTUVOVF9JU19XRUI9dHlwZW9mIHdpbmRvdz09Im9iamVjdCI7dmFyIEVOVklST05NRU5UX0lTX1dPUktFUj10eXBlb2YgaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIjt2YXIgRU5WSVJPTk1FTlRfSVNfTk9ERT10eXBlb2YgcHJvY2Vzcz09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMubm9kZT09InN0cmluZyI7dmFyIHNjcmlwdERpcmVjdG9yeT0iIjtmdW5jdGlvbiBsb2NhdGVGaWxlKHBhdGgpe2lmKE1vZHVsZVsibG9jYXRlRmlsZSJdKXtyZXR1cm4gTW9kdWxlWyJsb2NhdGVGaWxlIl0ocGF0aCxzY3JpcHREaXJlY3RvcnkpfXJldHVybiBzY3JpcHREaXJlY3RvcnkrcGF0aH12YXIgcmVhZF8scmVhZEFzeW5jLHJlYWRCaW5hcnk7aWYoRU5WSVJPTk1FTlRfSVNfV0VCfHxFTlZJUk9OTUVOVF9JU19XT1JLRVIpe2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7c2NyaXB0RGlyZWN0b3J5PXNlbGYubG9jYXRpb24uaHJlZn1lbHNlIGlmKHR5cGVvZiBkb2N1bWVudCE9InVuZGVmaW5lZCImJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQpe3NjcmlwdERpcmVjdG9yeT1kb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyY31pZihfc2NyaXB0RGlyKXtzY3JpcHREaXJlY3Rvcnk9X3NjcmlwdERpcn1pZihzY3JpcHREaXJlY3RvcnkuaW5kZXhPZigiYmxvYjoiKSE9PTApe3NjcmlwdERpcmVjdG9yeT1zY3JpcHREaXJlY3Rvcnkuc3Vic3RyKDAsc2NyaXB0RGlyZWN0b3J5LnJlcGxhY2UoL1s/I10uKi8sIiIpLmxhc3RJbmRleE9mKCIvIikrMSl9ZWxzZXtzY3JpcHREaXJlY3Rvcnk9IiJ9e3JlYWRfPXVybD0+e3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJHRVQiLHVybCxmYWxzZSk7eGhyLnNlbmQobnVsbCk7cmV0dXJuIHhoci5yZXNwb25zZVRleHR9O2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7cmVhZEJpbmFyeT11cmw9Pnt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbigiR0VUIix1cmwsZmFsc2UpO3hoci5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIjt4aHIuc2VuZChudWxsKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeGhyLnJlc3BvbnNlKX19cmVhZEFzeW5jPSh1cmwsb25sb2FkLG9uZXJyb3IpPT57dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4oIkdFVCIsdXJsLHRydWUpO3hoci5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIjt4aHIub25sb2FkPSgpPT57aWYoeGhyLnN0YXR1cz09MjAwfHx4aHIuc3RhdHVzPT0wJiZ4aHIucmVzcG9uc2Upe29ubG9hZCh4aHIucmVzcG9uc2UpO3JldHVybn1vbmVycm9yKCl9O3hoci5vbmVycm9yPW9uZXJyb3I7eGhyLnNlbmQobnVsbCl9fX1lbHNle312YXIgb3V0PU1vZHVsZVsicHJpbnQiXXx8Y29uc29sZS5sb2cuYmluZChjb25zb2xlKTt2YXIgZXJyPU1vZHVsZVsicHJpbnRFcnIiXXx8Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24oTW9kdWxlLG1vZHVsZU92ZXJyaWRlcyk7bW9kdWxlT3ZlcnJpZGVzPW51bGw7aWYoTW9kdWxlWyJhcmd1bWVudHMiXSlhcmd1bWVudHNfPU1vZHVsZVsiYXJndW1lbnRzIl07aWYoTW9kdWxlWyJ0aGlzUHJvZ3JhbSJdKXRoaXNQcm9ncmFtPU1vZHVsZVsidGhpc1Byb2dyYW0iXTtpZihNb2R1bGVbInF1aXQiXSlxdWl0Xz1Nb2R1bGVbInF1aXQiXTt2YXIgd2FzbUJpbmFyeTtpZihNb2R1bGVbIndhc21CaW5hcnkiXSl3YXNtQmluYXJ5PU1vZHVsZVsid2FzbUJpbmFyeSJdO2lmKHR5cGVvZiBXZWJBc3NlbWJseSE9Im9iamVjdCIpe2Fib3J0KCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIil9dmFyIHdhc21NZW1vcnk7dmFyIEFCT1JUPWZhbHNlO3ZhciBFWElUU1RBVFVTO2Z1bmN0aW9uIGFzc2VydChjb25kaXRpb24sdGV4dCl7aWYoIWNvbmRpdGlvbil7YWJvcnQodGV4dCl9fXZhciBIRUFQOCxIRUFQVTgsSEVBUDE2LEhFQVBVMTYsSEVBUDMyLEhFQVBVMzIsSEVBUEYzMixIRUFQRjY0O2Z1bmN0aW9uIHVwZGF0ZU1lbW9yeVZpZXdzKCl7dmFyIGI9d2FzbU1lbW9yeS5idWZmZXI7TW9kdWxlWyJIRUFQOCJdPUhFQVA4PW5ldyBJbnQ4QXJyYXkoYik7TW9kdWxlWyJIRUFQMTYiXT1IRUFQMTY9bmV3IEludDE2QXJyYXkoYik7TW9kdWxlWyJIRUFQVTgiXT1IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoYik7TW9kdWxlWyJIRUFQVTE2Il09SEVBUFUxNj1uZXcgVWludDE2QXJyYXkoYik7TW9kdWxlWyJIRUFQMzIiXT1IRUFQMzI9bmV3IEludDMyQXJyYXkoYik7TW9kdWxlWyJIRUFQVTMyIl09SEVBUFUzMj1uZXcgVWludDMyQXJyYXkoYik7TW9kdWxlWyJIRUFQRjMyIl09SEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KGIpO01vZHVsZVsiSEVBUEY2NCJdPUhFQVBGNjQ9bmV3IEZsb2F0NjRBcnJheShiKX12YXIgX19BVFBSRVJVTl9fPVtdO3ZhciBfX0FUSU5JVF9fPVtdO3ZhciBfX0FURVhJVF9fPVtdO3ZhciBfX0FUUE9TVFJVTl9fPVtdO3ZhciBydW50aW1lSW5pdGlhbGl6ZWQ9ZmFsc2U7dmFyIHJ1bnRpbWVFeGl0ZWQ9ZmFsc2U7ZnVuY3Rpb24gcHJlUnVuKCl7aWYoTW9kdWxlWyJwcmVSdW4iXSl7aWYodHlwZW9mIE1vZHVsZVsicHJlUnVuIl09PSJmdW5jdGlvbiIpTW9kdWxlWyJwcmVSdW4iXT1bTW9kdWxlWyJwcmVSdW4iXV07d2hpbGUoTW9kdWxlWyJwcmVSdW4iXS5sZW5ndGgpe2FkZE9uUHJlUnVuKE1vZHVsZVsicHJlUnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQUkVSVU5fXyl9ZnVuY3Rpb24gaW5pdFJ1bnRpbWUoKXtydW50aW1lSW5pdGlhbGl6ZWQ9dHJ1ZTtpZighTW9kdWxlWyJub0ZTSW5pdCJdJiYhRlMuaW5pdC5pbml0aWFsaXplZClGUy5pbml0KCk7RlMuaWdub3JlUGVybWlzc2lvbnM9ZmFsc2U7VFRZLmluaXQoKTtjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKX1mdW5jdGlvbiBleGl0UnVudGltZSgpe19fX2Z1bmNzX29uX2V4aXQoKTtjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FURVhJVF9fKTtGUy5xdWl0KCk7VFRZLnNodXRkb3duKCk7cnVudGltZUV4aXRlZD10cnVlfWZ1bmN0aW9uIHBvc3RSdW4oKXtpZihNb2R1bGVbInBvc3RSdW4iXSl7aWYodHlwZW9mIE1vZHVsZVsicG9zdFJ1biJdPT0iZnVuY3Rpb24iKU1vZHVsZVsicG9zdFJ1biJdPVtNb2R1bGVbInBvc3RSdW4iXV07d2hpbGUoTW9kdWxlWyJwb3N0UnVuIl0ubGVuZ3RoKXthZGRPblBvc3RSdW4oTW9kdWxlWyJwb3N0UnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQT1NUUlVOX18pfWZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKXtfX0FUUFJFUlVOX18udW5zaGlmdChjYil9ZnVuY3Rpb24gYWRkT25Jbml0KGNiKXtfX0FUSU5JVF9fLnVuc2hpZnQoY2IpfWZ1bmN0aW9uIGFkZE9uUG9zdFJ1bihjYil7X19BVFBPU1RSVU5fXy51bnNoaWZ0KGNiKX12YXIgcnVuRGVwZW5kZW5jaWVzPTA7dmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyPW51bGw7dmFyIGRlcGVuZGVuY2llc0Z1bGZpbGxlZD1udWxsO2Z1bmN0aW9uIGdldFVuaXF1ZVJ1bkRlcGVuZGVuY3koaWQpe3JldHVybiBpZH1mdW5jdGlvbiBhZGRSdW5EZXBlbmRlbmN5KGlkKXtydW5EZXBlbmRlbmNpZXMrKztpZihNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXSl7TW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0ocnVuRGVwZW5kZW5jaWVzKX19ZnVuY3Rpb24gcmVtb3ZlUnVuRGVwZW5kZW5jeShpZCl7cnVuRGVwZW5kZW5jaWVzLS07aWYoTW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0pe01vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdKHJ1bkRlcGVuZGVuY2llcyl9aWYocnVuRGVwZW5kZW5jaWVzPT0wKXtpZihydW5EZXBlbmRlbmN5V2F0Y2hlciE9PW51bGwpe2NsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpO3J1bkRlcGVuZGVuY3lXYXRjaGVyPW51bGx9aWYoZGVwZW5kZW5jaWVzRnVsZmlsbGVkKXt2YXIgY2FsbGJhY2s9ZGVwZW5kZW5jaWVzRnVsZmlsbGVkO2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1udWxsO2NhbGxiYWNrKCl9fX1mdW5jdGlvbiBhYm9ydCh3aGF0KXtpZihNb2R1bGVbIm9uQWJvcnQiXSl7TW9kdWxlWyJvbkFib3J0Il0od2hhdCl9d2hhdD0iQWJvcnRlZCgiK3doYXQrIikiO2Vycih3aGF0KTtBQk9SVD10cnVlO0VYSVRTVEFUVVM9MTt3aGF0Kz0iLiBCdWlsZCB3aXRoIC1zQVNTRVJUSU9OUyBmb3IgbW9yZSBpbmZvLiI7dmFyIGU9bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcih3aGF0KTtyZWFkeVByb21pc2VSZWplY3QoZSk7dGhyb3cgZX12YXIgZGF0YVVSSVByZWZpeD0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7dmFyIGlzRGF0YVVSST1maWxlbmFtZT0+ZmlsZW5hbWUuc3RhcnRzV2l0aChkYXRhVVJJUHJlZml4KTt2YXIgd2FzbUJpbmFyeUZpbGU7aWYoTW9kdWxlWyJsb2NhdGVGaWxlIl0pe3dhc21CaW5hcnlGaWxlPSJtYWluLWJpbi1tb25vLndhc20iO2lmKCFpc0RhdGFVUkkod2FzbUJpbmFyeUZpbGUpKXt3YXNtQmluYXJ5RmlsZT1sb2NhdGVGaWxlKHdhc21CaW5hcnlGaWxlKX19ZWxzZXt3YXNtQmluYXJ5RmlsZT1uZXcgVVJMKCJtYWluLWJpbi1tb25vLndhc20iLGxvY2F0aW9uLmhyZWYpLmhyZWZ9ZnVuY3Rpb24gZ2V0QmluYXJ5U3luYyhmaWxlKXtpZihmaWxlPT13YXNtQmluYXJ5RmlsZSYmd2FzbUJpbmFyeSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHdhc21CaW5hcnkpfWlmKHJlYWRCaW5hcnkpe3JldHVybiByZWFkQmluYXJ5KGZpbGUpfXRocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1mdW5jdGlvbiBnZXRCaW5hcnlQcm9taXNlKGJpbmFyeUZpbGUpe2lmKCF3YXNtQmluYXJ5JiYoRU5WSVJPTk1FTlRfSVNfV0VCfHxFTlZJUk9OTUVOVF9JU19XT1JLRVIpKXtpZih0eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiIpe3JldHVybiBmZXRjaChiaW5hcnlGaWxlLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihyZXNwb25zZT0+e2lmKCFyZXNwb25zZVsib2siXSl7dGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitiaW5hcnlGaWxlKyInIn1yZXR1cm4gcmVzcG9uc2VbImFycmF5QnVmZmVyIl0oKX0pLmNhdGNoKCgpPT5nZXRCaW5hcnlTeW5jKGJpbmFyeUZpbGUpKX19cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmdldEJpbmFyeVN5bmMoYmluYXJ5RmlsZSkpfWZ1bmN0aW9uIGluc3RhbnRpYXRlQXJyYXlCdWZmZXIoYmluYXJ5RmlsZSxpbXBvcnRzLHJlY2VpdmVyKXtyZXR1cm4gZ2V0QmluYXJ5UHJvbWlzZShiaW5hcnlGaWxlKS50aGVuKGJpbmFyeT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYmluYXJ5LGltcG9ydHMpKS50aGVuKGluc3RhbmNlPT5pbnN0YW5jZSkudGhlbihyZWNlaXZlcixyZWFzb249PntlcnIoYGZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdhc206ICR7cmVhc29ufWApO2Fib3J0KHJlYXNvbil9KX1mdW5jdGlvbiBpbnN0YW50aWF0ZUFzeW5jKGJpbmFyeSxiaW5hcnlGaWxlLGltcG9ydHMsY2FsbGJhY2spe2lmKCFiaW5hcnkmJnR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZz09ImZ1bmN0aW9uIiYmIWlzRGF0YVVSSShiaW5hcnlGaWxlKSYmdHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iKXtyZXR1cm4gZmV0Y2goYmluYXJ5RmlsZSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4ocmVzcG9uc2U9Pnt2YXIgcmVzdWx0PVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKHJlc3BvbnNlLGltcG9ydHMpO3JldHVybiByZXN1bHQudGhlbihjYWxsYmFjayxmdW5jdGlvbihyZWFzb24pe2Vycihgd2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICR7cmVhc29ufWApO2VycigiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKTtyZXR1cm4gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihiaW5hcnlGaWxlLGltcG9ydHMsY2FsbGJhY2spfSl9KX1yZXR1cm4gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihiaW5hcnlGaWxlLGltcG9ydHMsY2FsbGJhY2spfWZ1bmN0aW9uIGNyZWF0ZVdhc20oKXt2YXIgaW5mbz17ImEiOndhc21JbXBvcnRzfTtmdW5jdGlvbiByZWNlaXZlSW5zdGFuY2UoaW5zdGFuY2UsbW9kdWxlKXt3YXNtRXhwb3J0cz1pbnN0YW5jZS5leHBvcnRzO3dhc21NZW1vcnk9d2FzbUV4cG9ydHNbInVhIl07dXBkYXRlTWVtb3J5Vmlld3MoKTt3YXNtVGFibGU9d2FzbUV4cG9ydHNbIndhIl07YWRkT25Jbml0KHdhc21FeHBvcnRzWyJ2YSJdKTtyZW1vdmVSdW5EZXBlbmRlbmN5KCJ3YXNtLWluc3RhbnRpYXRlIik7cmV0dXJuIHdhc21FeHBvcnRzfWFkZFJ1bkRlcGVuZGVuY3koIndhc20taW5zdGFudGlhdGUiKTtmdW5jdGlvbiByZWNlaXZlSW5zdGFudGlhdGlvblJlc3VsdChyZXN1bHQpe3JlY2VpdmVJbnN0YW5jZShyZXN1bHRbImluc3RhbmNlIl0pfWlmKE1vZHVsZVsiaW5zdGFudGlhdGVXYXNtIl0pe3RyeXtyZXR1cm4gTW9kdWxlWyJpbnN0YW50aWF0ZVdhc20iXShpbmZvLHJlY2VpdmVJbnN0YW5jZSl9Y2F0Y2goZSl7ZXJyKGBNb2R1bGUuaW5zdGFudGlhdGVXYXNtIGNhbGxiYWNrIGZhaWxlZCB3aXRoIGVycm9yOiAke2V9YCk7cmVhZHlQcm9taXNlUmVqZWN0KGUpfX1pbnN0YW50aWF0ZUFzeW5jKHdhc21CaW5hcnksd2FzbUJpbmFyeUZpbGUsaW5mbyxyZWNlaXZlSW5zdGFudGlhdGlvblJlc3VsdCkuY2F0Y2gocmVhZHlQcm9taXNlUmVqZWN0KTtyZXR1cm57fX12YXIgdGVtcERvdWJsZTt2YXIgdGVtcEk2NDtmdW5jdGlvbiB4bm5Mb2FkV2FzbU1vZHVsZUpTKGNvZGUsb2Zmc2V0LG9mZnNldF9lbmQsaW52YWxpZF9mdW5jdGlvbl9pbmRleCl7Y29uc3QgdGFibGVPcmlnaW5hbFNpemU9d2FzbVRhYmxlLmxlbmd0aDtjb25zdCBiaW5hcnk9bmV3IFVpbnQ4QXJyYXkoSEVBUFU4LnNsaWNlKGNvZGUrb2Zmc2V0LGNvZGUrb2Zmc2V0X2VuZCkpO3RyeXt2YXIgbW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluYXJ5KTt2YXIgaW5zdGFuY2U9bmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG1vZHVsZSx7ZW52OnttZW1vcnk6d2FzbU1lbW9yeX19KTtmb3IodmFyIHN5bU5hbWUgaW4gaW5zdGFuY2UuZXhwb3J0cyl7dmFyIHZhbHVlPWluc3RhbmNlLmV4cG9ydHNbc3ltTmFtZV07YWRkRnVuY3Rpb24odmFsdWUpfWlmKHRhYmxlT3JpZ2luYWxTaXplPHdhc21UYWJsZS5sZW5ndGgpe3JldHVybiB0YWJsZU9yaWdpbmFsU2l6ZX1yZXR1cm4gaW52YWxpZF9mdW5jdGlvbl9pbmRleH1jYXRjaChlcnJvcil7Y29uc29sZS5sb2coZXJyb3IpO3JldHVybiBpbnZhbGlkX2Z1bmN0aW9uX2luZGV4fX1mdW5jdGlvbiBFeGl0U3RhdHVzKHN0YXR1cyl7dGhpcy5uYW1lPSJFeGl0U3RhdHVzIjt0aGlzLm1lc3NhZ2U9YFByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoJHtzdGF0dXN9KWA7dGhpcy5zdGF0dXM9c3RhdHVzfXZhciBjYWxsUnVudGltZUNhbGxiYWNrcz1jYWxsYmFja3M9Pnt3aGlsZShjYWxsYmFja3MubGVuZ3RoPjApe2NhbGxiYWNrcy5zaGlmdCgpKE1vZHVsZSl9fTt2YXIgbm9FeGl0UnVudGltZT1Nb2R1bGVbIm5vRXhpdFJ1bnRpbWUiXXx8ZmFsc2U7dmFyIFVURjhEZWNvZGVyPXR5cGVvZiBUZXh0RGVjb2RlciE9InVuZGVmaW5lZCI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dW5kZWZpbmVkO3ZhciBVVEY4QXJyYXlUb1N0cmluZz0oaGVhcE9yQXJyYXksaWR4LG1heEJ5dGVzVG9SZWFkKT0+e3ZhciBlbmRJZHg9aWR4K21heEJ5dGVzVG9SZWFkO3ZhciBlbmRQdHI9aWR4O3doaWxlKGhlYXBPckFycmF5W2VuZFB0cl0mJiEoZW5kUHRyPj1lbmRJZHgpKSsrZW5kUHRyO2lmKGVuZFB0ci1pZHg+MTYmJmhlYXBPckFycmF5LmJ1ZmZlciYmVVRGOERlY29kZXIpe3JldHVybiBVVEY4RGVjb2Rlci5kZWNvZGUoaGVhcE9yQXJyYXkuc3ViYXJyYXkoaWR4LGVuZFB0cikpfXZhciBzdHI9IiI7d2hpbGUoaWR4PGVuZFB0cil7dmFyIHUwPWhlYXBPckFycmF5W2lkeCsrXTtpZighKHUwJjEyOCkpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSh1MCk7Y29udGludWV9dmFyIHUxPWhlYXBPckFycmF5W2lkeCsrXSY2MztpZigodTAmMjI0KT09MTkyKXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoKHUwJjMxKTw8Nnx1MSk7Y29udGludWV9dmFyIHUyPWhlYXBPckFycmF5W2lkeCsrXSY2MztpZigodTAmMjQwKT09MjI0KXt1MD0odTAmMTUpPDwxMnx1MTw8Nnx1Mn1lbHNle3UwPSh1MCY3KTw8MTh8dTE8PDEyfHUyPDw2fGhlYXBPckFycmF5W2lkeCsrXSY2M31pZih1MDw2NTUzNil7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHUwKX1lbHNle3ZhciBjaD11MC02NTUzNjtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8Y2g+PjEwLDU2MzIwfGNoJjEwMjMpfX1yZXR1cm4gc3RyfTt2YXIgVVRGOFRvU3RyaW5nPShwdHIsbWF4Qnl0ZXNUb1JlYWQpPT5wdHI/VVRGOEFycmF5VG9TdHJpbmcoSEVBUFU4LHB0cixtYXhCeXRlc1RvUmVhZCk6IiI7dmFyIF9fX2Fzc2VydF9mYWlsPShjb25kaXRpb24sZmlsZW5hbWUsbGluZSxmdW5jKT0+e2Fib3J0KGBBc3NlcnRpb24gZmFpbGVkOiAke1VURjhUb1N0cmluZyhjb25kaXRpb24pfSwgYXQ6IGArW2ZpbGVuYW1lP1VURjhUb1N0cmluZyhmaWxlbmFtZSk6InVua25vd24gZmlsZW5hbWUiLGxpbmUsZnVuYz9VVEY4VG9TdHJpbmcoZnVuYyk6InVua25vd24gZnVuY3Rpb24iXSl9O3ZhciBleGNlcHRpb25DYXVnaHQ9W107dmFyIHVuY2F1Z2h0RXhjZXB0aW9uQ291bnQ9MDt2YXIgX19fY3hhX2JlZ2luX2NhdGNoPXB0cj0+e3ZhciBpbmZvPW5ldyBFeGNlcHRpb25JbmZvKHB0cik7aWYoIWluZm8uZ2V0X2NhdWdodCgpKXtpbmZvLnNldF9jYXVnaHQodHJ1ZSk7dW5jYXVnaHRFeGNlcHRpb25Db3VudC0tfWluZm8uc2V0X3JldGhyb3duKGZhbHNlKTtleGNlcHRpb25DYXVnaHQucHVzaChpbmZvKTtfX19jeGFfaW5jcmVtZW50X2V4Y2VwdGlvbl9yZWZjb3VudChpbmZvLmV4Y1B0cik7cmV0dXJuIGluZm8uZ2V0X2V4Y2VwdGlvbl9wdHIoKX07dmFyIGV4Y2VwdGlvbkxhc3Q9MDt2YXIgX19fY3hhX2VuZF9jYXRjaD0oKT0+e19zZXRUaHJldygwLDApO3ZhciBpbmZvPWV4Y2VwdGlvbkNhdWdodC5wb3AoKTtfX19jeGFfZGVjcmVtZW50X2V4Y2VwdGlvbl9yZWZjb3VudChpbmZvLmV4Y1B0cik7ZXhjZXB0aW9uTGFzdD0wfTtmdW5jdGlvbiBFeGNlcHRpb25JbmZvKGV4Y1B0cil7dGhpcy5leGNQdHI9ZXhjUHRyO3RoaXMucHRyPWV4Y1B0ci0yNDt0aGlzLnNldF90eXBlPWZ1bmN0aW9uKHR5cGUpe0hFQVBVMzJbdGhpcy5wdHIrND4+Ml09dHlwZX07dGhpcy5nZXRfdHlwZT1mdW5jdGlvbigpe3JldHVybiBIRUFQVTMyW3RoaXMucHRyKzQ+PjJdfTt0aGlzLnNldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKGRlc3RydWN0b3Ipe0hFQVBVMzJbdGhpcy5wdHIrOD4+Ml09ZGVzdHJ1Y3Rvcn07dGhpcy5nZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbigpe3JldHVybiBIRUFQVTMyW3RoaXMucHRyKzg+PjJdfTt0aGlzLnNldF9jYXVnaHQ9ZnVuY3Rpb24oY2F1Z2h0KXtjYXVnaHQ9Y2F1Z2h0PzE6MDtIRUFQOFt0aGlzLnB0cisxMj4+MF09Y2F1Z2h0fTt0aGlzLmdldF9jYXVnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gSEVBUDhbdGhpcy5wdHIrMTI+PjBdIT0wfTt0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihyZXRocm93bil7cmV0aHJvd249cmV0aHJvd24/MTowO0hFQVA4W3RoaXMucHRyKzEzPj4wXT1yZXRocm93bn07dGhpcy5nZXRfcmV0aHJvd249ZnVuY3Rpb24oKXtyZXR1cm4gSEVBUDhbdGhpcy5wdHIrMTM+PjBdIT0wfTt0aGlzLmluaXQ9ZnVuY3Rpb24odHlwZSxkZXN0cnVjdG9yKXt0aGlzLnNldF9hZGp1c3RlZF9wdHIoMCk7dGhpcy5zZXRfdHlwZSh0eXBlKTt0aGlzLnNldF9kZXN0cnVjdG9yKGRlc3RydWN0b3IpfTt0aGlzLnNldF9hZGp1c3RlZF9wdHI9ZnVuY3Rpb24oYWRqdXN0ZWRQdHIpe0hFQVBVMzJbdGhpcy5wdHIrMTY+PjJdPWFkanVzdGVkUHRyfTt0aGlzLmdldF9hZGp1c3RlZF9wdHI9ZnVuY3Rpb24oKXtyZXR1cm4gSEVBUFUzMlt0aGlzLnB0cisxNj4+Ml19O3RoaXMuZ2V0X2V4Y2VwdGlvbl9wdHI9ZnVuY3Rpb24oKXt2YXIgaXNQb2ludGVyPV9fX2N4YV9pc19wb2ludGVyX3R5cGUodGhpcy5nZXRfdHlwZSgpKTtpZihpc1BvaW50ZXIpe3JldHVybiBIRUFQVTMyW3RoaXMuZXhjUHRyPj4yXX12YXIgYWRqdXN0ZWQ9dGhpcy5nZXRfYWRqdXN0ZWRfcHRyKCk7aWYoYWRqdXN0ZWQhPT0wKXJldHVybiBhZGp1c3RlZDtyZXR1cm4gdGhpcy5leGNQdHJ9fXZhciBfX19yZXN1bWVFeGNlcHRpb249cHRyPT57aWYoIWV4Y2VwdGlvbkxhc3Qpe2V4Y2VwdGlvbkxhc3Q9cHRyfXRocm93IGV4Y2VwdGlvbkxhc3R9O3ZhciBmaW5kTWF0Y2hpbmdDYXRjaD1hcmdzPT57dmFyIHRocm93bj1leGNlcHRpb25MYXN0O2lmKCF0aHJvd24pe3NldFRlbXBSZXQwKDApO3JldHVybiAwfXZhciBpbmZvPW5ldyBFeGNlcHRpb25JbmZvKHRocm93bik7aW5mby5zZXRfYWRqdXN0ZWRfcHRyKHRocm93bik7dmFyIHRocm93blR5cGU9aW5mby5nZXRfdHlwZSgpO2lmKCF0aHJvd25UeXBlKXtzZXRUZW1wUmV0MCgwKTtyZXR1cm4gdGhyb3dufWZvcih2YXIgYXJnIGluIGFyZ3Mpe3ZhciBjYXVnaHRUeXBlPWFyZ3NbYXJnXTtpZihjYXVnaHRUeXBlPT09MHx8Y2F1Z2h0VHlwZT09PXRocm93blR5cGUpe2JyZWFrfXZhciBhZGp1c3RlZF9wdHJfYWRkcj1pbmZvLnB0cisxNjtpZihfX19jeGFfY2FuX2NhdGNoKGNhdWdodFR5cGUsdGhyb3duVHlwZSxhZGp1c3RlZF9wdHJfYWRkcikpe3NldFRlbXBSZXQwKGNhdWdodFR5cGUpO3JldHVybiB0aHJvd259fXNldFRlbXBSZXQwKHRocm93blR5cGUpO3JldHVybiB0aHJvd259O3ZhciBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaF8yPSgpPT5maW5kTWF0Y2hpbmdDYXRjaChbXSk7dmFyIF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoXzM9YXJnMD0+ZmluZE1hdGNoaW5nQ2F0Y2goW2FyZzBdKTt2YXIgX19fY3hhX3JldGhyb3c9KCk9Pnt2YXIgaW5mbz1leGNlcHRpb25DYXVnaHQucG9wKCk7aWYoIWluZm8pe2Fib3J0KCJubyBleGNlcHRpb24gdG8gdGhyb3ciKX12YXIgcHRyPWluZm8uZXhjUHRyO2lmKCFpbmZvLmdldF9yZXRocm93bigpKXtleGNlcHRpb25DYXVnaHQucHVzaChpbmZvKTtpbmZvLnNldF9yZXRocm93bih0cnVlKTtpbmZvLnNldF9jYXVnaHQoZmFsc2UpO3VuY2F1Z2h0RXhjZXB0aW9uQ291bnQrK31leGNlcHRpb25MYXN0PXB0cjt0aHJvdyBleGNlcHRpb25MYXN0fTt2YXIgX19fY3hhX3Rocm93PShwdHIsdHlwZSxkZXN0cnVjdG9yKT0+e3ZhciBpbmZvPW5ldyBFeGNlcHRpb25JbmZvKHB0cik7aW5mby5pbml0KHR5cGUsZGVzdHJ1Y3Rvcik7ZXhjZXB0aW9uTGFzdD1wdHI7dW5jYXVnaHRFeGNlcHRpb25Db3VudCsrO3Rocm93IGV4Y2VwdGlvbkxhc3R9O3ZhciBQQVRIPXtpc0FiczpwYXRoPT5wYXRoLmNoYXJBdCgwKT09PSIvIixzcGxpdFBhdGg6ZmlsZW5hbWU9Pnt2YXIgc3BsaXRQYXRoUmU9L14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvO3JldHVybiBzcGxpdFBhdGhSZS5leGVjKGZpbGVuYW1lKS5zbGljZSgxKX0sbm9ybWFsaXplQXJyYXk6KHBhcnRzLGFsbG93QWJvdmVSb290KT0+e3ZhciB1cD0wO2Zvcih2YXIgaT1wYXJ0cy5sZW5ndGgtMTtpPj0wO2ktLSl7dmFyIGxhc3Q9cGFydHNbaV07aWYobGFzdD09PSIuIil7cGFydHMuc3BsaWNlKGksMSl9ZWxzZSBpZihsYXN0PT09Ii4uIil7cGFydHMuc3BsaWNlKGksMSk7dXArK31lbHNlIGlmKHVwKXtwYXJ0cy5zcGxpY2UoaSwxKTt1cC0tfX1pZihhbGxvd0Fib3ZlUm9vdCl7Zm9yKDt1cDt1cC0tKXtwYXJ0cy51bnNoaWZ0KCIuLiIpfX1yZXR1cm4gcGFydHN9LG5vcm1hbGl6ZTpwYXRoPT57dmFyIGlzQWJzb2x1dGU9UEFUSC5pc0FicyhwYXRoKSx0cmFpbGluZ1NsYXNoPXBhdGguc3Vic3RyKC0xKT09PSIvIjtwYXRoPVBBVEgubm9ybWFsaXplQXJyYXkocGF0aC5zcGxpdCgiLyIpLmZpbHRlcihwPT4hIXApLCFpc0Fic29sdXRlKS5qb2luKCIvIik7aWYoIXBhdGgmJiFpc0Fic29sdXRlKXtwYXRoPSIuIn1pZihwYXRoJiZ0cmFpbGluZ1NsYXNoKXtwYXRoKz0iLyJ9cmV0dXJuKGlzQWJzb2x1dGU/Ii8iOiIiKStwYXRofSxkaXJuYW1lOnBhdGg9Pnt2YXIgcmVzdWx0PVBBVEguc3BsaXRQYXRoKHBhdGgpLHJvb3Q9cmVzdWx0WzBdLGRpcj1yZXN1bHRbMV07aWYoIXJvb3QmJiFkaXIpe3JldHVybiIuIn1pZihkaXIpe2Rpcj1kaXIuc3Vic3RyKDAsZGlyLmxlbmd0aC0xKX1yZXR1cm4gcm9vdCtkaXJ9LGJhc2VuYW1lOnBhdGg9PntpZihwYXRoPT09Ii8iKXJldHVybiIvIjtwYXRoPVBBVEgubm9ybWFsaXplKHBhdGgpO3BhdGg9cGF0aC5yZXBsYWNlKC9cLyQvLCIiKTt2YXIgbGFzdFNsYXNoPXBhdGgubGFzdEluZGV4T2YoIi8iKTtpZihsYXN0U2xhc2g9PT0tMSlyZXR1cm4gcGF0aDtyZXR1cm4gcGF0aC5zdWJzdHIobGFzdFNsYXNoKzEpfSxqb2luOmZ1bmN0aW9uKCl7dmFyIHBhdGhzPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIFBBVEgubm9ybWFsaXplKHBhdGhzLmpvaW4oIi8iKSl9LGpvaW4yOihsLHIpPT5QQVRILm5vcm1hbGl6ZShsKyIvIityKX07dmFyIGluaXRSYW5kb21GaWxsPSgpPT57aWYodHlwZW9mIGNyeXB0bz09Im9iamVjdCImJnR5cGVvZiBjcnlwdG9bImdldFJhbmRvbVZhbHVlcyJdPT0iZnVuY3Rpb24iKXtyZXR1cm4gdmlldz0+Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyh2aWV3KX1lbHNlIGFib3J0KCJpbml0UmFuZG9tRGV2aWNlIil9O3ZhciByYW5kb21GaWxsPXZpZXc9PihyYW5kb21GaWxsPWluaXRSYW5kb21GaWxsKCkpKHZpZXcpO3ZhciBQQVRIX0ZTPXtyZXNvbHZlOmZ1bmN0aW9uKCl7dmFyIHJlc29sdmVkUGF0aD0iIixyZXNvbHZlZEFic29sdXRlPWZhbHNlO2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoLTE7aT49LTEmJiFyZXNvbHZlZEFic29sdXRlO2ktLSl7dmFyIHBhdGg9aT49MD9hcmd1bWVudHNbaV06RlMuY3dkKCk7aWYodHlwZW9mIHBhdGghPSJzdHJpbmciKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncyIpfWVsc2UgaWYoIXBhdGgpe3JldHVybiIifXJlc29sdmVkUGF0aD1wYXRoKyIvIityZXNvbHZlZFBhdGg7cmVzb2x2ZWRBYnNvbHV0ZT1QQVRILmlzQWJzKHBhdGgpfXJlc29sdmVkUGF0aD1QQVRILm5vcm1hbGl6ZUFycmF5KHJlc29sdmVkUGF0aC5zcGxpdCgiLyIpLmZpbHRlcihwPT4hIXApLCFyZXNvbHZlZEFic29sdXRlKS5qb2luKCIvIik7cmV0dXJuKHJlc29sdmVkQWJzb2x1dGU/Ii8iOiIiKStyZXNvbHZlZFBhdGh8fCIuIn0scmVsYXRpdmU6KGZyb20sdG8pPT57ZnJvbT1QQVRIX0ZTLnJlc29sdmUoZnJvbSkuc3Vic3RyKDEpO3RvPVBBVEhfRlMucmVzb2x2ZSh0bykuc3Vic3RyKDEpO2Z1bmN0aW9uIHRyaW0oYXJyKXt2YXIgc3RhcnQ9MDtmb3IoO3N0YXJ0PGFyci5sZW5ndGg7c3RhcnQrKyl7aWYoYXJyW3N0YXJ0XSE9PSIiKWJyZWFrfXZhciBlbmQ9YXJyLmxlbmd0aC0xO2Zvcig7ZW5kPj0wO2VuZC0tKXtpZihhcnJbZW5kXSE9PSIiKWJyZWFrfWlmKHN0YXJ0PmVuZClyZXR1cm5bXTtyZXR1cm4gYXJyLnNsaWNlKHN0YXJ0LGVuZC1zdGFydCsxKX12YXIgZnJvbVBhcnRzPXRyaW0oZnJvbS5zcGxpdCgiLyIpKTt2YXIgdG9QYXJ0cz10cmltKHRvLnNwbGl0KCIvIikpO3ZhciBsZW5ndGg9TWF0aC5taW4oZnJvbVBhcnRzLmxlbmd0aCx0b1BhcnRzLmxlbmd0aCk7dmFyIHNhbWVQYXJ0c0xlbmd0aD1sZW5ndGg7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXtpZihmcm9tUGFydHNbaV0hPT10b1BhcnRzW2ldKXtzYW1lUGFydHNMZW5ndGg9aTticmVha319dmFyIG91dHB1dFBhcnRzPVtdO2Zvcih2YXIgaT1zYW1lUGFydHNMZW5ndGg7aTxmcm9tUGFydHMubGVuZ3RoO2krKyl7b3V0cHV0UGFydHMucHVzaCgiLi4iKX1vdXRwdXRQYXJ0cz1vdXRwdXRQYXJ0cy5jb25jYXQodG9QYXJ0cy5zbGljZShzYW1lUGFydHNMZW5ndGgpKTtyZXR1cm4gb3V0cHV0UGFydHMuam9pbigiLyIpfX07dmFyIEZTX3N0ZGluX2dldENoYXJfYnVmZmVyPVtdO3ZhciBsZW5ndGhCeXRlc1VURjg9c3RyPT57dmFyIGxlbj0wO2Zvcih2YXIgaT0wO2k8c3RyLmxlbmd0aDsrK2kpe3ZhciBjPXN0ci5jaGFyQ29kZUF0KGkpO2lmKGM8PTEyNyl7bGVuKyt9ZWxzZSBpZihjPD0yMDQ3KXtsZW4rPTJ9ZWxzZSBpZihjPj01NTI5NiYmYzw9NTczNDMpe2xlbis9NDsrK2l9ZWxzZXtsZW4rPTN9fXJldHVybiBsZW59O3ZhciBzdHJpbmdUb1VURjhBcnJheT0oc3RyLGhlYXAsb3V0SWR4LG1heEJ5dGVzVG9Xcml0ZSk9PntpZighKG1heEJ5dGVzVG9Xcml0ZT4wKSlyZXR1cm4gMDt2YXIgc3RhcnRJZHg9b3V0SWR4O3ZhciBlbmRJZHg9b3V0SWR4K21heEJ5dGVzVG9Xcml0ZS0xO2Zvcih2YXIgaT0wO2k8c3RyLmxlbmd0aDsrK2kpe3ZhciB1PXN0ci5jaGFyQ29kZUF0KGkpO2lmKHU+PTU1Mjk2JiZ1PD01NzM0Myl7dmFyIHUxPXN0ci5jaGFyQ29kZUF0KCsraSk7dT02NTUzNisoKHUmMTAyMyk8PDEwKXx1MSYxMDIzfWlmKHU8PTEyNyl7aWYob3V0SWR4Pj1lbmRJZHgpYnJlYWs7aGVhcFtvdXRJZHgrK109dX1lbHNlIGlmKHU8PTIwNDcpe2lmKG91dElkeCsxPj1lbmRJZHgpYnJlYWs7aGVhcFtvdXRJZHgrK109MTkyfHU+PjY7aGVhcFtvdXRJZHgrK109MTI4fHUmNjN9ZWxzZSBpZih1PD02NTUzNSl7aWYob3V0SWR4KzI+PWVuZElkeClicmVhaztoZWFwW291dElkeCsrXT0yMjR8dT4+MTI7aGVhcFtvdXRJZHgrK109MTI4fHU+PjYmNjM7aGVhcFtvdXRJZHgrK109MTI4fHUmNjN9ZWxzZXtpZihvdXRJZHgrMz49ZW5kSWR4KWJyZWFrO2hlYXBbb3V0SWR4KytdPTI0MHx1Pj4xODtoZWFwW291dElkeCsrXT0xMjh8dT4+MTImNjM7aGVhcFtvdXRJZHgrK109MTI4fHU+PjYmNjM7aGVhcFtvdXRJZHgrK109MTI4fHUmNjN9fWhlYXBbb3V0SWR4XT0wO3JldHVybiBvdXRJZHgtc3RhcnRJZHh9O2Z1bmN0aW9uIGludEFycmF5RnJvbVN0cmluZyhzdHJpbmd5LGRvbnRBZGROdWxsLGxlbmd0aCl7dmFyIGxlbj1sZW5ndGg+MD9sZW5ndGg6bGVuZ3RoQnl0ZXNVVEY4KHN0cmluZ3kpKzE7dmFyIHU4YXJyYXk9bmV3IEFycmF5KGxlbik7dmFyIG51bUJ5dGVzV3JpdHRlbj1zdHJpbmdUb1VURjhBcnJheShzdHJpbmd5LHU4YXJyYXksMCx1OGFycmF5Lmxlbmd0aCk7aWYoZG9udEFkZE51bGwpdThhcnJheS5sZW5ndGg9bnVtQnl0ZXNXcml0dGVuO3JldHVybiB1OGFycmF5fXZhciBGU19zdGRpbl9nZXRDaGFyPSgpPT57aWYoIUZTX3N0ZGluX2dldENoYXJfYnVmZmVyLmxlbmd0aCl7dmFyIHJlc3VsdD1udWxsO2lmKHR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ0eXBlb2Ygd2luZG93LnByb21wdD09ImZ1bmN0aW9uIil7cmVzdWx0PXdpbmRvdy5wcm9tcHQoIklucHV0OiAiKTtpZihyZXN1bHQhPT1udWxsKXtyZXN1bHQrPSJcbiJ9fWVsc2UgaWYodHlwZW9mIHJlYWRsaW5lPT0iZnVuY3Rpb24iKXtyZXN1bHQ9cmVhZGxpbmUoKTtpZihyZXN1bHQhPT1udWxsKXtyZXN1bHQrPSJcbiJ9fWlmKCFyZXN1bHQpe3JldHVybiBudWxsfUZTX3N0ZGluX2dldENoYXJfYnVmZmVyPWludEFycmF5RnJvbVN0cmluZyhyZXN1bHQsdHJ1ZSl9cmV0dXJuIEZTX3N0ZGluX2dldENoYXJfYnVmZmVyLnNoaWZ0KCl9O3ZhciBUVFk9e3R0eXM6W10saW5pdCgpe30sc2h1dGRvd24oKXt9LHJlZ2lzdGVyKGRldixvcHMpe1RUWS50dHlzW2Rldl09e2lucHV0OltdLG91dHB1dDpbXSxvcHM6b3BzfTtGUy5yZWdpc3RlckRldmljZShkZXYsVFRZLnN0cmVhbV9vcHMpfSxzdHJlYW1fb3BzOntvcGVuKHN0cmVhbSl7dmFyIHR0eT1UVFkudHR5c1tzdHJlYW0ubm9kZS5yZGV2XTtpZighdHR5KXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0Myl9c3RyZWFtLnR0eT10dHk7c3RyZWFtLnNlZWthYmxlPWZhbHNlfSxjbG9zZShzdHJlYW0pe3N0cmVhbS50dHkub3BzLmZzeW5jKHN0cmVhbS50dHkpfSxmc3luYyhzdHJlYW0pe3N0cmVhbS50dHkub3BzLmZzeW5jKHN0cmVhbS50dHkpfSxyZWFkKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3Mpe2lmKCFzdHJlYW0udHR5fHwhc3RyZWFtLnR0eS5vcHMuZ2V0X2NoYXIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDYwKX12YXIgYnl0ZXNSZWFkPTA7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXt2YXIgcmVzdWx0O3RyeXtyZXN1bHQ9c3RyZWFtLnR0eS5vcHMuZ2V0X2NoYXIoc3RyZWFtLnR0eSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjkpfWlmKHJlc3VsdD09PXVuZGVmaW5lZCYmYnl0ZXNSZWFkPT09MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNil9aWYocmVzdWx0PT09bnVsbHx8cmVzdWx0PT09dW5kZWZpbmVkKWJyZWFrO2J5dGVzUmVhZCsrO2J1ZmZlcltvZmZzZXQraV09cmVzdWx0fWlmKGJ5dGVzUmVhZCl7c3RyZWFtLm5vZGUudGltZXN0YW1wPURhdGUubm93KCl9cmV0dXJuIGJ5dGVzUmVhZH0sd3JpdGUoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvcyl7aWYoIXN0cmVhbS50dHl8fCFzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNjApfXRyeXtmb3IodmFyIGk9MDtpPGxlbmd0aDtpKyspe3N0cmVhbS50dHkub3BzLnB1dF9jaGFyKHN0cmVhbS50dHksYnVmZmVyW29mZnNldCtpXSl9fWNhdGNoKGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI5KX1pZihsZW5ndGgpe3N0cmVhbS5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpfXJldHVybiBpfX0sZGVmYXVsdF90dHlfb3BzOntnZXRfY2hhcih0dHkpe3JldHVybiBGU19zdGRpbl9nZXRDaGFyKCl9LHB1dF9jaGFyKHR0eSx2YWwpe2lmKHZhbD09PW51bGx8fHZhbD09PTEwKXtvdXQoVVRGOEFycmF5VG9TdHJpbmcodHR5Lm91dHB1dCwwKSk7dHR5Lm91dHB1dD1bXX1lbHNle2lmKHZhbCE9MCl0dHkub3V0cHV0LnB1c2godmFsKX19LGZzeW5jKHR0eSl7aWYodHR5Lm91dHB1dCYmdHR5Lm91dHB1dC5sZW5ndGg+MCl7b3V0KFVURjhBcnJheVRvU3RyaW5nKHR0eS5vdXRwdXQsMCkpO3R0eS5vdXRwdXQ9W119fSxpb2N0bF90Y2dldHModHR5KXtyZXR1cm57Y19pZmxhZzoyNTg1NixjX29mbGFnOjUsY19jZmxhZzoxOTEsY19sZmxhZzozNTM4NyxjX2NjOlszLDI4LDEyNywyMSw0LDAsMSwwLDE3LDE5LDI2LDAsMTgsMTUsMjMsMjIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF19fSxpb2N0bF90Y3NldHModHR5LG9wdGlvbmFsX2FjdGlvbnMsZGF0YSl7cmV0dXJuIDB9LGlvY3RsX3Rpb2Nnd2luc3oodHR5KXtyZXR1cm5bMjQsODBdfX0sZGVmYXVsdF90dHkxX29wczp7cHV0X2NoYXIodHR5LHZhbCl7aWYodmFsPT09bnVsbHx8dmFsPT09MTApe2VycihVVEY4QXJyYXlUb1N0cmluZyh0dHkub3V0cHV0LDApKTt0dHkub3V0cHV0PVtdfWVsc2V7aWYodmFsIT0wKXR0eS5vdXRwdXQucHVzaCh2YWwpfX0sZnN5bmModHR5KXtpZih0dHkub3V0cHV0JiZ0dHkub3V0cHV0Lmxlbmd0aD4wKXtlcnIoVVRGOEFycmF5VG9TdHJpbmcodHR5Lm91dHB1dCwwKSk7dHR5Lm91dHB1dD1bXX19fX07dmFyIHplcm9NZW1vcnk9KGFkZHJlc3Msc2l6ZSk9PntIRUFQVTguZmlsbCgwLGFkZHJlc3MsYWRkcmVzcytzaXplKTtyZXR1cm4gYWRkcmVzc307dmFyIGFsaWduTWVtb3J5PShzaXplLGFsaWdubWVudCk9Pk1hdGguY2VpbChzaXplL2FsaWdubWVudCkqYWxpZ25tZW50O3ZhciBtbWFwQWxsb2M9c2l6ZT0+e3NpemU9YWxpZ25NZW1vcnkoc2l6ZSw2NTUzNik7dmFyIHB0cj1fZW1zY3JpcHRlbl9idWlsdGluX21lbWFsaWduKDY1NTM2LHNpemUpO2lmKCFwdHIpcmV0dXJuIDA7cmV0dXJuIHplcm9NZW1vcnkocHRyLHNpemUpfTt2YXIgTUVNRlM9e29wc190YWJsZTpudWxsLG1vdW50KG1vdW50KXtyZXR1cm4gTUVNRlMuY3JlYXRlTm9kZShudWxsLCIvIiwxNjM4NHw1MTEsMCl9LGNyZWF0ZU5vZGUocGFyZW50LG5hbWUsbW9kZSxkZXYpe2lmKEZTLmlzQmxrZGV2KG1vZGUpfHxGUy5pc0ZJRk8obW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDYzKX1pZighTUVNRlMub3BzX3RhYmxlKXtNRU1GUy5vcHNfdGFibGU9e2Rpcjp7bm9kZTp7Z2V0YXR0cjpNRU1GUy5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6TUVNRlMubm9kZV9vcHMuc2V0YXR0cixsb29rdXA6TUVNRlMubm9kZV9vcHMubG9va3VwLG1rbm9kOk1FTUZTLm5vZGVfb3BzLm1rbm9kLHJlbmFtZTpNRU1GUy5ub2RlX29wcy5yZW5hbWUsdW5saW5rOk1FTUZTLm5vZGVfb3BzLnVubGluayxybWRpcjpNRU1GUy5ub2RlX29wcy5ybWRpcixyZWFkZGlyOk1FTUZTLm5vZGVfb3BzLnJlYWRkaXIsc3ltbGluazpNRU1GUy5ub2RlX29wcy5zeW1saW5rfSxzdHJlYW06e2xsc2VlazpNRU1GUy5zdHJlYW1fb3BzLmxsc2Vla319LGZpbGU6e25vZGU6e2dldGF0dHI6TUVNRlMubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOk1FTUZTLm5vZGVfb3BzLnNldGF0dHJ9LHN0cmVhbTp7bGxzZWVrOk1FTUZTLnN0cmVhbV9vcHMubGxzZWVrLHJlYWQ6TUVNRlMuc3RyZWFtX29wcy5yZWFkLHdyaXRlOk1FTUZTLnN0cmVhbV9vcHMud3JpdGUsYWxsb2NhdGU6TUVNRlMuc3RyZWFtX29wcy5hbGxvY2F0ZSxtbWFwOk1FTUZTLnN0cmVhbV9vcHMubW1hcCxtc3luYzpNRU1GUy5zdHJlYW1fb3BzLm1zeW5jfX0sbGluazp7bm9kZTp7Z2V0YXR0cjpNRU1GUy5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6TUVNRlMubm9kZV9vcHMuc2V0YXR0cixyZWFkbGluazpNRU1GUy5ub2RlX29wcy5yZWFkbGlua30sc3RyZWFtOnt9fSxjaHJkZXY6e25vZGU6e2dldGF0dHI6TUVNRlMubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOk1FTUZTLm5vZGVfb3BzLnNldGF0dHJ9LHN0cmVhbTpGUy5jaHJkZXZfc3RyZWFtX29wc319fXZhciBub2RlPUZTLmNyZWF0ZU5vZGUocGFyZW50LG5hbWUsbW9kZSxkZXYpO2lmKEZTLmlzRGlyKG5vZGUubW9kZSkpe25vZGUubm9kZV9vcHM9TUVNRlMub3BzX3RhYmxlLmRpci5ub2RlO25vZGUuc3RyZWFtX29wcz1NRU1GUy5vcHNfdGFibGUuZGlyLnN0cmVhbTtub2RlLmNvbnRlbnRzPXt9fWVsc2UgaWYoRlMuaXNGaWxlKG5vZGUubW9kZSkpe25vZGUubm9kZV9vcHM9TUVNRlMub3BzX3RhYmxlLmZpbGUubm9kZTtub2RlLnN0cmVhbV9vcHM9TUVNRlMub3BzX3RhYmxlLmZpbGUuc3RyZWFtO25vZGUudXNlZEJ5dGVzPTA7bm9kZS5jb250ZW50cz1udWxsfWVsc2UgaWYoRlMuaXNMaW5rKG5vZGUubW9kZSkpe25vZGUubm9kZV9vcHM9TUVNRlMub3BzX3RhYmxlLmxpbmsubm9kZTtub2RlLnN0cmVhbV9vcHM9TUVNRlMub3BzX3RhYmxlLmxpbmsuc3RyZWFtfWVsc2UgaWYoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSl7bm9kZS5ub2RlX29wcz1NRU1GUy5vcHNfdGFibGUuY2hyZGV2Lm5vZGU7bm9kZS5zdHJlYW1fb3BzPU1FTUZTLm9wc190YWJsZS5jaHJkZXYuc3RyZWFtfW5vZGUudGltZXN0YW1wPURhdGUubm93KCk7aWYocGFyZW50KXtwYXJlbnQuY29udGVudHNbbmFtZV09bm9kZTtwYXJlbnQudGltZXN0YW1wPW5vZGUudGltZXN0YW1wfXJldHVybiBub2RlfSxnZXRGaWxlRGF0YUFzVHlwZWRBcnJheShub2RlKXtpZighbm9kZS5jb250ZW50cylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7aWYobm9kZS5jb250ZW50cy5zdWJhcnJheSlyZXR1cm4gbm9kZS5jb250ZW50cy5zdWJhcnJheSgwLG5vZGUudXNlZEJ5dGVzKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobm9kZS5jb250ZW50cyl9LGV4cGFuZEZpbGVTdG9yYWdlKG5vZGUsbmV3Q2FwYWNpdHkpe3ZhciBwcmV2Q2FwYWNpdHk9bm9kZS5jb250ZW50cz9ub2RlLmNvbnRlbnRzLmxlbmd0aDowO2lmKHByZXZDYXBhY2l0eT49bmV3Q2FwYWNpdHkpcmV0dXJuO3ZhciBDQVBBQ0lUWV9ET1VCTElOR19NQVg9MTAyNCoxMDI0O25ld0NhcGFjaXR5PU1hdGgubWF4KG5ld0NhcGFjaXR5LHByZXZDYXBhY2l0eSoocHJldkNhcGFjaXR5PENBUEFDSVRZX0RPVUJMSU5HX01BWD8yOjEuMTI1KT4+PjApO2lmKHByZXZDYXBhY2l0eSE9MCluZXdDYXBhY2l0eT1NYXRoLm1heChuZXdDYXBhY2l0eSwyNTYpO3ZhciBvbGRDb250ZW50cz1ub2RlLmNvbnRlbnRzO25vZGUuY29udGVudHM9bmV3IFVpbnQ4QXJyYXkobmV3Q2FwYWNpdHkpO2lmKG5vZGUudXNlZEJ5dGVzPjApbm9kZS5jb250ZW50cy5zZXQob2xkQ29udGVudHMuc3ViYXJyYXkoMCxub2RlLnVzZWRCeXRlcyksMCl9LHJlc2l6ZUZpbGVTdG9yYWdlKG5vZGUsbmV3U2l6ZSl7aWYobm9kZS51c2VkQnl0ZXM9PW5ld1NpemUpcmV0dXJuO2lmKG5ld1NpemU9PTApe25vZGUuY29udGVudHM9bnVsbDtub2RlLnVzZWRCeXRlcz0wfWVsc2V7dmFyIG9sZENvbnRlbnRzPW5vZGUuY29udGVudHM7bm9kZS5jb250ZW50cz1uZXcgVWludDhBcnJheShuZXdTaXplKTtpZihvbGRDb250ZW50cyl7bm9kZS5jb250ZW50cy5zZXQob2xkQ29udGVudHMuc3ViYXJyYXkoMCxNYXRoLm1pbihuZXdTaXplLG5vZGUudXNlZEJ5dGVzKSkpfW5vZGUudXNlZEJ5dGVzPW5ld1NpemV9fSxub2RlX29wczp7Z2V0YXR0cihub2RlKXt2YXIgYXR0cj17fTthdHRyLmRldj1GUy5pc0NocmRldihub2RlLm1vZGUpP25vZGUuaWQ6MTthdHRyLmlubz1ub2RlLmlkO2F0dHIubW9kZT1ub2RlLm1vZGU7YXR0ci5ubGluaz0xO2F0dHIudWlkPTA7YXR0ci5naWQ9MDthdHRyLnJkZXY9bm9kZS5yZGV2O2lmKEZTLmlzRGlyKG5vZGUubW9kZSkpe2F0dHIuc2l6ZT00MDk2fWVsc2UgaWYoRlMuaXNGaWxlKG5vZGUubW9kZSkpe2F0dHIuc2l6ZT1ub2RlLnVzZWRCeXRlc31lbHNlIGlmKEZTLmlzTGluayhub2RlLm1vZGUpKXthdHRyLnNpemU9bm9kZS5saW5rLmxlbmd0aH1lbHNle2F0dHIuc2l6ZT0wfWF0dHIuYXRpbWU9bmV3IERhdGUobm9kZS50aW1lc3RhbXApO2F0dHIubXRpbWU9bmV3IERhdGUobm9kZS50aW1lc3RhbXApO2F0dHIuY3RpbWU9bmV3IERhdGUobm9kZS50aW1lc3RhbXApO2F0dHIuYmxrc2l6ZT00MDk2O2F0dHIuYmxvY2tzPU1hdGguY2VpbChhdHRyLnNpemUvYXR0ci5ibGtzaXplKTtyZXR1cm4gYXR0cn0sc2V0YXR0cihub2RlLGF0dHIpe2lmKGF0dHIubW9kZSE9PXVuZGVmaW5lZCl7bm9kZS5tb2RlPWF0dHIubW9kZX1pZihhdHRyLnRpbWVzdGFtcCE9PXVuZGVmaW5lZCl7bm9kZS50aW1lc3RhbXA9YXR0ci50aW1lc3RhbXB9aWYoYXR0ci5zaXplIT09dW5kZWZpbmVkKXtNRU1GUy5yZXNpemVGaWxlU3RvcmFnZShub2RlLGF0dHIuc2l6ZSl9fSxsb29rdXAocGFyZW50LG5hbWUpe3Rocm93IEZTLmdlbmVyaWNFcnJvcnNbNDRdfSxta25vZChwYXJlbnQsbmFtZSxtb2RlLGRldil7cmV0dXJuIE1FTUZTLmNyZWF0ZU5vZGUocGFyZW50LG5hbWUsbW9kZSxkZXYpfSxyZW5hbWUob2xkX25vZGUsbmV3X2RpcixuZXdfbmFtZSl7aWYoRlMuaXNEaXIob2xkX25vZGUubW9kZSkpe3ZhciBuZXdfbm9kZTt0cnl7bmV3X25vZGU9RlMubG9va3VwTm9kZShuZXdfZGlyLG5ld19uYW1lKX1jYXRjaChlKXt9aWYobmV3X25vZGUpe2Zvcih2YXIgaSBpbiBuZXdfbm9kZS5jb250ZW50cyl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNTUpfX19ZGVsZXRlIG9sZF9ub2RlLnBhcmVudC5jb250ZW50c1tvbGRfbm9kZS5uYW1lXTtvbGRfbm9kZS5wYXJlbnQudGltZXN0YW1wPURhdGUubm93KCk7b2xkX25vZGUubmFtZT1uZXdfbmFtZTtuZXdfZGlyLmNvbnRlbnRzW25ld19uYW1lXT1vbGRfbm9kZTtuZXdfZGlyLnRpbWVzdGFtcD1vbGRfbm9kZS5wYXJlbnQudGltZXN0YW1wO29sZF9ub2RlLnBhcmVudD1uZXdfZGlyfSx1bmxpbmsocGFyZW50LG5hbWUpe2RlbGV0ZSBwYXJlbnQuY29udGVudHNbbmFtZV07cGFyZW50LnRpbWVzdGFtcD1EYXRlLm5vdygpfSxybWRpcihwYXJlbnQsbmFtZSl7dmFyIG5vZGU9RlMubG9va3VwTm9kZShwYXJlbnQsbmFtZSk7Zm9yKHZhciBpIGluIG5vZGUuY29udGVudHMpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDU1KX1kZWxldGUgcGFyZW50LmNvbnRlbnRzW25hbWVdO3BhcmVudC50aW1lc3RhbXA9RGF0ZS5ub3coKX0scmVhZGRpcihub2RlKXt2YXIgZW50cmllcz1bIi4iLCIuLiJdO2Zvcih2YXIga2V5IGluIG5vZGUuY29udGVudHMpe2lmKCFub2RlLmNvbnRlbnRzLmhhc093blByb3BlcnR5KGtleSkpe2NvbnRpbnVlfWVudHJpZXMucHVzaChrZXkpfXJldHVybiBlbnRyaWVzfSxzeW1saW5rKHBhcmVudCxuZXduYW1lLG9sZHBhdGgpe3ZhciBub2RlPU1FTUZTLmNyZWF0ZU5vZGUocGFyZW50LG5ld25hbWUsNTExfDQwOTYwLDApO25vZGUubGluaz1vbGRwYXRoO3JldHVybiBub2RlfSxyZWFkbGluayhub2RlKXtpZighRlMuaXNMaW5rKG5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX1yZXR1cm4gbm9kZS5saW5rfX0sc3RyZWFtX29wczp7cmVhZChzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zaXRpb24pe3ZhciBjb250ZW50cz1zdHJlYW0ubm9kZS5jb250ZW50cztpZihwb3NpdGlvbj49c3RyZWFtLm5vZGUudXNlZEJ5dGVzKXJldHVybiAwO3ZhciBzaXplPU1hdGgubWluKHN0cmVhbS5ub2RlLnVzZWRCeXRlcy1wb3NpdGlvbixsZW5ndGgpO2lmKHNpemU+OCYmY29udGVudHMuc3ViYXJyYXkpe2J1ZmZlci5zZXQoY29udGVudHMuc3ViYXJyYXkocG9zaXRpb24scG9zaXRpb24rc2l6ZSksb2Zmc2V0KX1lbHNle2Zvcih2YXIgaT0wO2k8c2l6ZTtpKyspYnVmZmVyW29mZnNldCtpXT1jb250ZW50c1twb3NpdGlvbitpXX1yZXR1cm4gc2l6ZX0sd3JpdGUoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uLGNhbk93bil7aWYoIWxlbmd0aClyZXR1cm4gMDt2YXIgbm9kZT1zdHJlYW0ubm9kZTtub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpO2lmKGJ1ZmZlci5zdWJhcnJheSYmKCFub2RlLmNvbnRlbnRzfHxub2RlLmNvbnRlbnRzLnN1YmFycmF5KSl7aWYoY2FuT3duKXtub2RlLmNvbnRlbnRzPWJ1ZmZlci5zdWJhcnJheShvZmZzZXQsb2Zmc2V0K2xlbmd0aCk7bm9kZS51c2VkQnl0ZXM9bGVuZ3RoO3JldHVybiBsZW5ndGh9ZWxzZSBpZihub2RlLnVzZWRCeXRlcz09PTAmJnBvc2l0aW9uPT09MCl7bm9kZS5jb250ZW50cz1idWZmZXIuc2xpY2Uob2Zmc2V0LG9mZnNldCtsZW5ndGgpO25vZGUudXNlZEJ5dGVzPWxlbmd0aDtyZXR1cm4gbGVuZ3RofWVsc2UgaWYocG9zaXRpb24rbGVuZ3RoPD1ub2RlLnVzZWRCeXRlcyl7bm9kZS5jb250ZW50cy5zZXQoYnVmZmVyLnN1YmFycmF5KG9mZnNldCxvZmZzZXQrbGVuZ3RoKSxwb3NpdGlvbik7cmV0dXJuIGxlbmd0aH19TUVNRlMuZXhwYW5kRmlsZVN0b3JhZ2Uobm9kZSxwb3NpdGlvbitsZW5ndGgpO2lmKG5vZGUuY29udGVudHMuc3ViYXJyYXkmJmJ1ZmZlci5zdWJhcnJheSl7bm9kZS5jb250ZW50cy5zZXQoYnVmZmVyLnN1YmFycmF5KG9mZnNldCxvZmZzZXQrbGVuZ3RoKSxwb3NpdGlvbil9ZWxzZXtmb3IodmFyIGk9MDtpPGxlbmd0aDtpKyspe25vZGUuY29udGVudHNbcG9zaXRpb24raV09YnVmZmVyW29mZnNldCtpXX19bm9kZS51c2VkQnl0ZXM9TWF0aC5tYXgobm9kZS51c2VkQnl0ZXMscG9zaXRpb24rbGVuZ3RoKTtyZXR1cm4gbGVuZ3RofSxsbHNlZWsoc3RyZWFtLG9mZnNldCx3aGVuY2Upe3ZhciBwb3NpdGlvbj1vZmZzZXQ7aWYod2hlbmNlPT09MSl7cG9zaXRpb24rPXN0cmVhbS5wb3NpdGlvbn1lbHNlIGlmKHdoZW5jZT09PTIpe2lmKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSl7cG9zaXRpb24rPXN0cmVhbS5ub2RlLnVzZWRCeXRlc319aWYocG9zaXRpb248MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfXJldHVybiBwb3NpdGlvbn0sYWxsb2NhdGUoc3RyZWFtLG9mZnNldCxsZW5ndGgpe01FTUZTLmV4cGFuZEZpbGVTdG9yYWdlKHN0cmVhbS5ub2RlLG9mZnNldCtsZW5ndGgpO3N0cmVhbS5ub2RlLnVzZWRCeXRlcz1NYXRoLm1heChzdHJlYW0ubm9kZS51c2VkQnl0ZXMsb2Zmc2V0K2xlbmd0aCl9LG1tYXAoc3RyZWFtLGxlbmd0aCxwb3NpdGlvbixwcm90LGZsYWdzKXtpZighRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0Myl9dmFyIHB0cjt2YXIgYWxsb2NhdGVkO3ZhciBjb250ZW50cz1zdHJlYW0ubm9kZS5jb250ZW50cztpZighKGZsYWdzJjIpJiZjb250ZW50cy5idWZmZXI9PT1IRUFQOC5idWZmZXIpe2FsbG9jYXRlZD1mYWxzZTtwdHI9Y29udGVudHMuYnl0ZU9mZnNldH1lbHNle2lmKHBvc2l0aW9uPjB8fHBvc2l0aW9uK2xlbmd0aDxjb250ZW50cy5sZW5ndGgpe2lmKGNvbnRlbnRzLnN1YmFycmF5KXtjb250ZW50cz1jb250ZW50cy5zdWJhcnJheShwb3NpdGlvbixwb3NpdGlvbitsZW5ndGgpfWVsc2V7Y29udGVudHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoY29udGVudHMscG9zaXRpb24scG9zaXRpb24rbGVuZ3RoKX19YWxsb2NhdGVkPXRydWU7cHRyPW1tYXBBbGxvYyhsZW5ndGgpO2lmKCFwdHIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ4KX1IRUFQOC5zZXQoY29udGVudHMscHRyKX1yZXR1cm57cHRyOnB0cixhbGxvY2F0ZWQ6YWxsb2NhdGVkfX0sbXN5bmMoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLG1tYXBGbGFncyl7TUVNRlMuc3RyZWFtX29wcy53cml0ZShzdHJlYW0sYnVmZmVyLDAsbGVuZ3RoLG9mZnNldCxmYWxzZSk7cmV0dXJuIDB9fX07dmFyIGFzeW5jTG9hZD0odXJsLG9ubG9hZCxvbmVycm9yLG5vUnVuRGVwKT0+e3ZhciBkZXA9IW5vUnVuRGVwP2dldFVuaXF1ZVJ1bkRlcGVuZGVuY3koYGFsICR7dXJsfWApOiIiO3JlYWRBc3luYyh1cmwsYXJyYXlCdWZmZXI9Pnthc3NlcnQoYXJyYXlCdWZmZXIsYExvYWRpbmcgZGF0YSBmaWxlICIke3VybH0iIGZhaWxlZCAobm8gYXJyYXlCdWZmZXIpLmApO29ubG9hZChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpO2lmKGRlcClyZW1vdmVSdW5EZXBlbmRlbmN5KGRlcCl9LGV2ZW50PT57aWYob25lcnJvcil7b25lcnJvcigpfWVsc2V7dGhyb3dgTG9hZGluZyBkYXRhIGZpbGUgIiR7dXJsfSIgZmFpbGVkLmB9fSk7aWYoZGVwKWFkZFJ1bkRlcGVuZGVuY3koZGVwKX07dmFyIEZTX2NyZWF0ZURhdGFGaWxlPShwYXJlbnQsbmFtZSxmaWxlRGF0YSxjYW5SZWFkLGNhbldyaXRlLGNhbk93bik9PntGUy5jcmVhdGVEYXRhRmlsZShwYXJlbnQsbmFtZSxmaWxlRGF0YSxjYW5SZWFkLGNhbldyaXRlLGNhbk93bil9O3ZhciBwcmVsb2FkUGx1Z2lucz1Nb2R1bGVbInByZWxvYWRQbHVnaW5zIl18fFtdO3ZhciBGU19oYW5kbGVkQnlQcmVsb2FkUGx1Z2luPShieXRlQXJyYXksZnVsbG5hbWUsZmluaXNoLG9uZXJyb3IpPT57aWYodHlwZW9mIEJyb3dzZXIhPSJ1bmRlZmluZWQiKUJyb3dzZXIuaW5pdCgpO3ZhciBoYW5kbGVkPWZhbHNlO3ByZWxvYWRQbHVnaW5zLmZvckVhY2gocGx1Z2luPT57aWYoaGFuZGxlZClyZXR1cm47aWYocGx1Z2luWyJjYW5IYW5kbGUiXShmdWxsbmFtZSkpe3BsdWdpblsiaGFuZGxlIl0oYnl0ZUFycmF5LGZ1bGxuYW1lLGZpbmlzaCxvbmVycm9yKTtoYW5kbGVkPXRydWV9fSk7cmV0dXJuIGhhbmRsZWR9O3ZhciBGU19jcmVhdGVQcmVsb2FkZWRGaWxlPShwYXJlbnQsbmFtZSx1cmwsY2FuUmVhZCxjYW5Xcml0ZSxvbmxvYWQsb25lcnJvcixkb250Q3JlYXRlRmlsZSxjYW5Pd24scHJlRmluaXNoKT0+e3ZhciBmdWxsbmFtZT1uYW1lP1BBVEhfRlMucmVzb2x2ZShQQVRILmpvaW4yKHBhcmVudCxuYW1lKSk6cGFyZW50O3ZhciBkZXA9Z2V0VW5pcXVlUnVuRGVwZW5kZW5jeShgY3AgJHtmdWxsbmFtZX1gKTtmdW5jdGlvbiBwcm9jZXNzRGF0YShieXRlQXJyYXkpe2Z1bmN0aW9uIGZpbmlzaChieXRlQXJyYXkpe2lmKHByZUZpbmlzaClwcmVGaW5pc2goKTtpZighZG9udENyZWF0ZUZpbGUpe0ZTX2NyZWF0ZURhdGFGaWxlKHBhcmVudCxuYW1lLGJ5dGVBcnJheSxjYW5SZWFkLGNhbldyaXRlLGNhbk93bil9aWYob25sb2FkKW9ubG9hZCgpO3JlbW92ZVJ1bkRlcGVuZGVuY3koZGVwKX1pZihGU19oYW5kbGVkQnlQcmVsb2FkUGx1Z2luKGJ5dGVBcnJheSxmdWxsbmFtZSxmaW5pc2gsKCk9PntpZihvbmVycm9yKW9uZXJyb3IoKTtyZW1vdmVSdW5EZXBlbmRlbmN5KGRlcCl9KSl7cmV0dXJufWZpbmlzaChieXRlQXJyYXkpfWFkZFJ1bkRlcGVuZGVuY3koZGVwKTtpZih0eXBlb2YgdXJsPT0ic3RyaW5nIil7YXN5bmNMb2FkKHVybCxieXRlQXJyYXk9PnByb2Nlc3NEYXRhKGJ5dGVBcnJheSksb25lcnJvcil9ZWxzZXtwcm9jZXNzRGF0YSh1cmwpfX07dmFyIEZTX21vZGVTdHJpbmdUb0ZsYWdzPXN0cj0+e3ZhciBmbGFnTW9kZXM9eyJyIjowLCJyKyI6MiwidyI6NTEyfDY0fDEsIncrIjo1MTJ8NjR8MiwiYSI6MTAyNHw2NHwxLCJhKyI6MTAyNHw2NHwyfTt2YXIgZmxhZ3M9ZmxhZ01vZGVzW3N0cl07aWYodHlwZW9mIGZsYWdzPT0idW5kZWZpbmVkIil7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGZpbGUgb3BlbiBtb2RlOiAke3N0cn1gKX1yZXR1cm4gZmxhZ3N9O3ZhciBGU19nZXRNb2RlPShjYW5SZWFkLGNhbldyaXRlKT0+e3ZhciBtb2RlPTA7aWYoY2FuUmVhZCltb2RlfD0yOTJ8NzM7aWYoY2FuV3JpdGUpbW9kZXw9MTQ2O3JldHVybiBtb2RlfTt2YXIgRlM9e3Jvb3Q6bnVsbCxtb3VudHM6W10sZGV2aWNlczp7fSxzdHJlYW1zOltdLG5leHRJbm9kZToxLG5hbWVUYWJsZTpudWxsLGN1cnJlbnRQYXRoOiIvIixpbml0aWFsaXplZDpmYWxzZSxpZ25vcmVQZXJtaXNzaW9uczp0cnVlLEVycm5vRXJyb3I6bnVsbCxnZW5lcmljRXJyb3JzOnt9LGZpbGVzeXN0ZW1zOm51bGwsc3luY0ZTUmVxdWVzdHM6MCxsb29rdXBQYXRoKHBhdGgsb3B0cz17fSl7cGF0aD1QQVRIX0ZTLnJlc29sdmUocGF0aCk7aWYoIXBhdGgpcmV0dXJue3BhdGg6IiIsbm9kZTpudWxsfTt2YXIgZGVmYXVsdHM9e2ZvbGxvd19tb3VudDp0cnVlLHJlY3Vyc2VfY291bnQ6MH07b3B0cz1PYmplY3QuYXNzaWduKGRlZmF1bHRzLG9wdHMpO2lmKG9wdHMucmVjdXJzZV9jb3VudD44KXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigzMil9dmFyIHBhcnRzPXBhdGguc3BsaXQoIi8iKS5maWx0ZXIocD0+ISFwKTt2YXIgY3VycmVudD1GUy5yb290O3ZhciBjdXJyZW50X3BhdGg9Ii8iO2Zvcih2YXIgaT0wO2k8cGFydHMubGVuZ3RoO2krKyl7dmFyIGlzbGFzdD1pPT09cGFydHMubGVuZ3RoLTE7aWYoaXNsYXN0JiZvcHRzLnBhcmVudCl7YnJlYWt9Y3VycmVudD1GUy5sb29rdXBOb2RlKGN1cnJlbnQscGFydHNbaV0pO2N1cnJlbnRfcGF0aD1QQVRILmpvaW4yKGN1cnJlbnRfcGF0aCxwYXJ0c1tpXSk7aWYoRlMuaXNNb3VudHBvaW50KGN1cnJlbnQpKXtpZighaXNsYXN0fHxpc2xhc3QmJm9wdHMuZm9sbG93X21vdW50KXtjdXJyZW50PWN1cnJlbnQubW91bnRlZC5yb290fX1pZighaXNsYXN0fHxvcHRzLmZvbGxvdyl7dmFyIGNvdW50PTA7d2hpbGUoRlMuaXNMaW5rKGN1cnJlbnQubW9kZSkpe3ZhciBsaW5rPUZTLnJlYWRsaW5rKGN1cnJlbnRfcGF0aCk7Y3VycmVudF9wYXRoPVBBVEhfRlMucmVzb2x2ZShQQVRILmRpcm5hbWUoY3VycmVudF9wYXRoKSxsaW5rKTt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgoY3VycmVudF9wYXRoLHtyZWN1cnNlX2NvdW50Om9wdHMucmVjdXJzZV9jb3VudCsxfSk7Y3VycmVudD1sb29rdXAubm9kZTtpZihjb3VudCsrPjQwKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigzMil9fX19cmV0dXJue3BhdGg6Y3VycmVudF9wYXRoLG5vZGU6Y3VycmVudH19LGdldFBhdGgobm9kZSl7dmFyIHBhdGg7d2hpbGUodHJ1ZSl7aWYoRlMuaXNSb290KG5vZGUpKXt2YXIgbW91bnQ9bm9kZS5tb3VudC5tb3VudHBvaW50O2lmKCFwYXRoKXJldHVybiBtb3VudDtyZXR1cm4gbW91bnRbbW91bnQubGVuZ3RoLTFdIT09Ii8iP2Ake21vdW50fS8ke3BhdGh9YDptb3VudCtwYXRofXBhdGg9cGF0aD9gJHtub2RlLm5hbWV9LyR7cGF0aH1gOm5vZGUubmFtZTtub2RlPW5vZGUucGFyZW50fX0saGFzaE5hbWUocGFyZW50aWQsbmFtZSl7dmFyIGhhc2g9MDtmb3IodmFyIGk9MDtpPG5hbWUubGVuZ3RoO2krKyl7aGFzaD0oaGFzaDw8NSktaGFzaCtuYW1lLmNoYXJDb2RlQXQoaSl8MH1yZXR1cm4ocGFyZW50aWQraGFzaD4+PjApJUZTLm5hbWVUYWJsZS5sZW5ndGh9LGhhc2hBZGROb2RlKG5vZGUpe3ZhciBoYXNoPUZTLmhhc2hOYW1lKG5vZGUucGFyZW50LmlkLG5vZGUubmFtZSk7bm9kZS5uYW1lX25leHQ9RlMubmFtZVRhYmxlW2hhc2hdO0ZTLm5hbWVUYWJsZVtoYXNoXT1ub2RlfSxoYXNoUmVtb3ZlTm9kZShub2RlKXt2YXIgaGFzaD1GUy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCxub2RlLm5hbWUpO2lmKEZTLm5hbWVUYWJsZVtoYXNoXT09PW5vZGUpe0ZTLm5hbWVUYWJsZVtoYXNoXT1ub2RlLm5hbWVfbmV4dH1lbHNle3ZhciBjdXJyZW50PUZTLm5hbWVUYWJsZVtoYXNoXTt3aGlsZShjdXJyZW50KXtpZihjdXJyZW50Lm5hbWVfbmV4dD09PW5vZGUpe2N1cnJlbnQubmFtZV9uZXh0PW5vZGUubmFtZV9uZXh0O2JyZWFrfWN1cnJlbnQ9Y3VycmVudC5uYW1lX25leHR9fX0sbG9va3VwTm9kZShwYXJlbnQsbmFtZSl7dmFyIGVyckNvZGU9RlMubWF5TG9va3VwKHBhcmVudCk7aWYoZXJyQ29kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyQ29kZSxwYXJlbnQpfXZhciBoYXNoPUZTLmhhc2hOYW1lKHBhcmVudC5pZCxuYW1lKTtmb3IodmFyIG5vZGU9RlMubmFtZVRhYmxlW2hhc2hdO25vZGU7bm9kZT1ub2RlLm5hbWVfbmV4dCl7dmFyIG5vZGVOYW1lPW5vZGUubmFtZTtpZihub2RlLnBhcmVudC5pZD09PXBhcmVudC5pZCYmbm9kZU5hbWU9PT1uYW1lKXtyZXR1cm4gbm9kZX19cmV0dXJuIEZTLmxvb2t1cChwYXJlbnQsbmFtZSl9LGNyZWF0ZU5vZGUocGFyZW50LG5hbWUsbW9kZSxyZGV2KXt2YXIgbm9kZT1uZXcgRlMuRlNOb2RlKHBhcmVudCxuYW1lLG1vZGUscmRldik7RlMuaGFzaEFkZE5vZGUobm9kZSk7cmV0dXJuIG5vZGV9LGRlc3Ryb3lOb2RlKG5vZGUpe0ZTLmhhc2hSZW1vdmVOb2RlKG5vZGUpfSxpc1Jvb3Qobm9kZSl7cmV0dXJuIG5vZGU9PT1ub2RlLnBhcmVudH0saXNNb3VudHBvaW50KG5vZGUpe3JldHVybiEhbm9kZS5tb3VudGVkfSxpc0ZpbGUobW9kZSl7cmV0dXJuKG1vZGUmNjE0NDApPT09MzI3Njh9LGlzRGlyKG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTE2Mzg0fSxpc0xpbmsobW9kZSl7cmV0dXJuKG1vZGUmNjE0NDApPT09NDA5NjB9LGlzQ2hyZGV2KG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTgxOTJ9LGlzQmxrZGV2KG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTI0NTc2fSxpc0ZJRk8obW9kZSl7cmV0dXJuKG1vZGUmNjE0NDApPT09NDA5Nn0saXNTb2NrZXQobW9kZSl7cmV0dXJuKG1vZGUmNDkxNTIpPT09NDkxNTJ9LGZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKGZsYWcpe3ZhciBwZXJtcz1bInIiLCJ3IiwicnciXVtmbGFnJjNdO2lmKGZsYWcmNTEyKXtwZXJtcys9IncifXJldHVybiBwZXJtc30sbm9kZVBlcm1pc3Npb25zKG5vZGUscGVybXMpe2lmKEZTLmlnbm9yZVBlcm1pc3Npb25zKXtyZXR1cm4gMH1pZihwZXJtcy5pbmNsdWRlcygiciIpJiYhKG5vZGUubW9kZSYyOTIpKXtyZXR1cm4gMn1lbHNlIGlmKHBlcm1zLmluY2x1ZGVzKCJ3IikmJiEobm9kZS5tb2RlJjE0Nikpe3JldHVybiAyfWVsc2UgaWYocGVybXMuaW5jbHVkZXMoIngiKSYmIShub2RlLm1vZGUmNzMpKXtyZXR1cm4gMn1yZXR1cm4gMH0sbWF5TG9va3VwKGRpcil7dmFyIGVyckNvZGU9RlMubm9kZVBlcm1pc3Npb25zKGRpciwieCIpO2lmKGVyckNvZGUpcmV0dXJuIGVyckNvZGU7aWYoIWRpci5ub2RlX29wcy5sb29rdXApcmV0dXJuIDI7cmV0dXJuIDB9LG1heUNyZWF0ZShkaXIsbmFtZSl7dHJ5e3ZhciBub2RlPUZTLmxvb2t1cE5vZGUoZGlyLG5hbWUpO3JldHVybiAyMH1jYXRjaChlKXt9cmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsInd4Iil9LG1heURlbGV0ZShkaXIsbmFtZSxpc2Rpcil7dmFyIG5vZGU7dHJ5e25vZGU9RlMubG9va3VwTm9kZShkaXIsbmFtZSl9Y2F0Y2goZSl7cmV0dXJuIGUuZXJybm99dmFyIGVyckNvZGU9RlMubm9kZVBlcm1pc3Npb25zKGRpciwid3giKTtpZihlcnJDb2RlKXtyZXR1cm4gZXJyQ29kZX1pZihpc2Rpcil7aWYoIUZTLmlzRGlyKG5vZGUubW9kZSkpe3JldHVybiA1NH1pZihGUy5pc1Jvb3Qobm9kZSl8fEZTLmdldFBhdGgobm9kZSk9PT1GUy5jd2QoKSl7cmV0dXJuIDEwfX1lbHNle2lmKEZTLmlzRGlyKG5vZGUubW9kZSkpe3JldHVybiAzMX19cmV0dXJuIDB9LG1heU9wZW4obm9kZSxmbGFncyl7aWYoIW5vZGUpe3JldHVybiA0NH1pZihGUy5pc0xpbmsobm9kZS5tb2RlKSl7cmV0dXJuIDMyfWVsc2UgaWYoRlMuaXNEaXIobm9kZS5tb2RlKSl7aWYoRlMuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoZmxhZ3MpIT09InIifHxmbGFncyY1MTIpe3JldHVybiAzMX19cmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhub2RlLEZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKGZsYWdzKSl9LE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZCgpe2Zvcih2YXIgZmQ9MDtmZDw9RlMuTUFYX09QRU5fRkRTO2ZkKyspe2lmKCFGUy5zdHJlYW1zW2ZkXSl7cmV0dXJuIGZkfX10aHJvdyBuZXcgRlMuRXJybm9FcnJvcigzMyl9LGdldFN0cmVhbUNoZWNrZWQoZmQpe3ZhciBzdHJlYW09RlMuZ2V0U3RyZWFtKGZkKTtpZighc3RyZWFtKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig4KX1yZXR1cm4gc3RyZWFtfSxnZXRTdHJlYW06ZmQ9PkZTLnN0cmVhbXNbZmRdLGNyZWF0ZVN0cmVhbShzdHJlYW0sZmQ9LTEpe2lmKCFGUy5GU1N0cmVhbSl7RlMuRlNTdHJlYW09ZnVuY3Rpb24oKXt0aGlzLnNoYXJlZD17fX07RlMuRlNTdHJlYW0ucHJvdG90eXBlPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEZTLkZTU3RyZWFtLnByb3RvdHlwZSx7b2JqZWN0OntnZXQoKXtyZXR1cm4gdGhpcy5ub2RlfSxzZXQodmFsKXt0aGlzLm5vZGU9dmFsfX0saXNSZWFkOntnZXQoKXtyZXR1cm4odGhpcy5mbGFncyYyMDk3MTU1KSE9PTF9fSxpc1dyaXRlOntnZXQoKXtyZXR1cm4odGhpcy5mbGFncyYyMDk3MTU1KSE9PTB9fSxpc0FwcGVuZDp7Z2V0KCl7cmV0dXJuIHRoaXMuZmxhZ3MmMTAyNH19LGZsYWdzOntnZXQoKXtyZXR1cm4gdGhpcy5zaGFyZWQuZmxhZ3N9LHNldCh2YWwpe3RoaXMuc2hhcmVkLmZsYWdzPXZhbH19LHBvc2l0aW9uOntnZXQoKXtyZXR1cm4gdGhpcy5zaGFyZWQucG9zaXRpb259LHNldCh2YWwpe3RoaXMuc2hhcmVkLnBvc2l0aW9uPXZhbH19fSl9c3RyZWFtPU9iamVjdC5hc3NpZ24obmV3IEZTLkZTU3RyZWFtLHN0cmVhbSk7aWYoZmQ9PS0xKXtmZD1GUy5uZXh0ZmQoKX1zdHJlYW0uZmQ9ZmQ7RlMuc3RyZWFtc1tmZF09c3RyZWFtO3JldHVybiBzdHJlYW19LGNsb3NlU3RyZWFtKGZkKXtGUy5zdHJlYW1zW2ZkXT1udWxsfSxjaHJkZXZfc3RyZWFtX29wczp7b3BlbihzdHJlYW0pe3ZhciBkZXZpY2U9RlMuZ2V0RGV2aWNlKHN0cmVhbS5ub2RlLnJkZXYpO3N0cmVhbS5zdHJlYW1fb3BzPWRldmljZS5zdHJlYW1fb3BzO2lmKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pe3N0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKX19LGxsc2Vlaygpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDcwKX19LG1ham9yOmRldj0+ZGV2Pj44LG1pbm9yOmRldj0+ZGV2JjI1NSxtYWtlZGV2OihtYSxtaSk9Pm1hPDw4fG1pLHJlZ2lzdGVyRGV2aWNlKGRldixvcHMpe0ZTLmRldmljZXNbZGV2XT17c3RyZWFtX29wczpvcHN9fSxnZXREZXZpY2U6ZGV2PT5GUy5kZXZpY2VzW2Rldl0sZ2V0TW91bnRzKG1vdW50KXt2YXIgbW91bnRzPVtdO3ZhciBjaGVjaz1bbW91bnRdO3doaWxlKGNoZWNrLmxlbmd0aCl7dmFyIG09Y2hlY2sucG9wKCk7bW91bnRzLnB1c2gobSk7Y2hlY2sucHVzaC5hcHBseShjaGVjayxtLm1vdW50cyl9cmV0dXJuIG1vdW50c30sc3luY2ZzKHBvcHVsYXRlLGNhbGxiYWNrKXtpZih0eXBlb2YgcG9wdWxhdGU9PSJmdW5jdGlvbiIpe2NhbGxiYWNrPXBvcHVsYXRlO3BvcHVsYXRlPWZhbHNlfUZTLnN5bmNGU1JlcXVlc3RzKys7aWYoRlMuc3luY0ZTUmVxdWVzdHM+MSl7ZXJyKGB3YXJuaW5nOiAke0ZTLnN5bmNGU1JlcXVlc3RzfSBGUy5zeW5jZnMgb3BlcmF0aW9ucyBpbiBmbGlnaHQgYXQgb25jZSwgcHJvYmFibHkganVzdCBkb2luZyBleHRyYSB3b3JrYCl9dmFyIG1vdW50cz1GUy5nZXRNb3VudHMoRlMucm9vdC5tb3VudCk7dmFyIGNvbXBsZXRlZD0wO2Z1bmN0aW9uIGRvQ2FsbGJhY2soZXJyQ29kZSl7RlMuc3luY0ZTUmVxdWVzdHMtLTtyZXR1cm4gY2FsbGJhY2soZXJyQ29kZSl9ZnVuY3Rpb24gZG9uZShlcnJDb2RlKXtpZihlcnJDb2RlKXtpZighZG9uZS5lcnJvcmVkKXtkb25lLmVycm9yZWQ9dHJ1ZTtyZXR1cm4gZG9DYWxsYmFjayhlcnJDb2RlKX1yZXR1cm59aWYoKytjb21wbGV0ZWQ+PW1vdW50cy5sZW5ndGgpe2RvQ2FsbGJhY2sobnVsbCl9fW1vdW50cy5mb3JFYWNoKG1vdW50PT57aWYoIW1vdW50LnR5cGUuc3luY2ZzKXtyZXR1cm4gZG9uZShudWxsKX1tb3VudC50eXBlLnN5bmNmcyhtb3VudCxwb3B1bGF0ZSxkb25lKX0pfSxtb3VudCh0eXBlLG9wdHMsbW91bnRwb2ludCl7dmFyIHJvb3Q9bW91bnRwb2ludD09PSIvIjt2YXIgcHNldWRvPSFtb3VudHBvaW50O3ZhciBub2RlO2lmKHJvb3QmJkZTLnJvb3Qpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDEwKX1lbHNlIGlmKCFyb290JiYhcHNldWRvKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgobW91bnRwb2ludCx7Zm9sbG93X21vdW50OmZhbHNlfSk7bW91bnRwb2ludD1sb29rdXAucGF0aDtub2RlPWxvb2t1cC5ub2RlO2lmKEZTLmlzTW91bnRwb2ludChub2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMTApfWlmKCFGUy5pc0Rpcihub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig1NCl9fXZhciBtb3VudD17dHlwZTp0eXBlLG9wdHM6b3B0cyxtb3VudHBvaW50Om1vdW50cG9pbnQsbW91bnRzOltdfTt2YXIgbW91bnRSb290PXR5cGUubW91bnQobW91bnQpO21vdW50Um9vdC5tb3VudD1tb3VudDttb3VudC5yb290PW1vdW50Um9vdDtpZihyb290KXtGUy5yb290PW1vdW50Um9vdH1lbHNlIGlmKG5vZGUpe25vZGUubW91bnRlZD1tb3VudDtpZihub2RlLm1vdW50KXtub2RlLm1vdW50Lm1vdW50cy5wdXNoKG1vdW50KX19cmV0dXJuIG1vdW50Um9vdH0sdW5tb3VudChtb3VudHBvaW50KXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgobW91bnRwb2ludCx7Zm9sbG93X21vdW50OmZhbHNlfSk7aWYoIUZTLmlzTW91bnRwb2ludChsb29rdXAubm9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX12YXIgbm9kZT1sb29rdXAubm9kZTt2YXIgbW91bnQ9bm9kZS5tb3VudGVkO3ZhciBtb3VudHM9RlMuZ2V0TW91bnRzKG1vdW50KTtPYmplY3Qua2V5cyhGUy5uYW1lVGFibGUpLmZvckVhY2goaGFzaD0+e3ZhciBjdXJyZW50PUZTLm5hbWVUYWJsZVtoYXNoXTt3aGlsZShjdXJyZW50KXt2YXIgbmV4dD1jdXJyZW50Lm5hbWVfbmV4dDtpZihtb3VudHMuaW5jbHVkZXMoY3VycmVudC5tb3VudCkpe0ZTLmRlc3Ryb3lOb2RlKGN1cnJlbnQpfWN1cnJlbnQ9bmV4dH19KTtub2RlLm1vdW50ZWQ9bnVsbDt2YXIgaWR4PW5vZGUubW91bnQubW91bnRzLmluZGV4T2YobW91bnQpO25vZGUubW91bnQubW91bnRzLnNwbGljZShpZHgsMSl9LGxvb2t1cChwYXJlbnQsbmFtZSl7cmV0dXJuIHBhcmVudC5ub2RlX29wcy5sb29rdXAocGFyZW50LG5hbWUpfSxta25vZChwYXRoLG1vZGUsZGV2KXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7cGFyZW50OnRydWV9KTt2YXIgcGFyZW50PWxvb2t1cC5ub2RlO3ZhciBuYW1lPVBBVEguYmFzZW5hbWUocGF0aCk7aWYoIW5hbWV8fG5hbWU9PT0iLiJ8fG5hbWU9PT0iLi4iKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOCl9dmFyIGVyckNvZGU9RlMubWF5Q3JlYXRlKHBhcmVudCxuYW1lKTtpZihlcnJDb2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnJDb2RlKX1pZighcGFyZW50Lm5vZGVfb3BzLm1rbm9kKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9cmV0dXJuIHBhcmVudC5ub2RlX29wcy5ta25vZChwYXJlbnQsbmFtZSxtb2RlLGRldil9LGNyZWF0ZShwYXRoLG1vZGUpe21vZGU9bW9kZSE9PXVuZGVmaW5lZD9tb2RlOjQzODttb2RlJj00MDk1O21vZGV8PTMyNzY4O3JldHVybiBGUy5ta25vZChwYXRoLG1vZGUsMCl9LG1rZGlyKHBhdGgsbW9kZSl7bW9kZT1tb2RlIT09dW5kZWZpbmVkP21vZGU6NTExO21vZGUmPTUxMXw1MTI7bW9kZXw9MTYzODQ7cmV0dXJuIEZTLm1rbm9kKHBhdGgsbW9kZSwwKX0sbWtkaXJUcmVlKHBhdGgsbW9kZSl7dmFyIGRpcnM9cGF0aC5zcGxpdCgiLyIpO3ZhciBkPSIiO2Zvcih2YXIgaT0wO2k8ZGlycy5sZW5ndGg7KytpKXtpZighZGlyc1tpXSljb250aW51ZTtkKz0iLyIrZGlyc1tpXTt0cnl7RlMubWtkaXIoZCxtb2RlKX1jYXRjaChlKXtpZihlLmVycm5vIT0yMCl0aHJvdyBlfX19LG1rZGV2KHBhdGgsbW9kZSxkZXYpe2lmKHR5cGVvZiBkZXY9PSJ1bmRlZmluZWQiKXtkZXY9bW9kZTttb2RlPTQzOH1tb2RlfD04MTkyO3JldHVybiBGUy5ta25vZChwYXRoLG1vZGUsZGV2KX0sc3ltbGluayhvbGRwYXRoLG5ld3BhdGgpe2lmKCFQQVRIX0ZTLnJlc29sdmUob2xkcGF0aCkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ0KX12YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgobmV3cGF0aCx7cGFyZW50OnRydWV9KTt2YXIgcGFyZW50PWxvb2t1cC5ub2RlO2lmKCFwYXJlbnQpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ0KX12YXIgbmV3bmFtZT1QQVRILmJhc2VuYW1lKG5ld3BhdGgpO3ZhciBlcnJDb2RlPUZTLm1heUNyZWF0ZShwYXJlbnQsbmV3bmFtZSk7aWYoZXJyQ29kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyQ29kZSl9aWYoIXBhcmVudC5ub2RlX29wcy5zeW1saW5rKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9cmV0dXJuIHBhcmVudC5ub2RlX29wcy5zeW1saW5rKHBhcmVudCxuZXduYW1lLG9sZHBhdGgpfSxyZW5hbWUob2xkX3BhdGgsbmV3X3BhdGgpe3ZhciBvbGRfZGlybmFtZT1QQVRILmRpcm5hbWUob2xkX3BhdGgpO3ZhciBuZXdfZGlybmFtZT1QQVRILmRpcm5hbWUobmV3X3BhdGgpO3ZhciBvbGRfbmFtZT1QQVRILmJhc2VuYW1lKG9sZF9wYXRoKTt2YXIgbmV3X25hbWU9UEFUSC5iYXNlbmFtZShuZXdfcGF0aCk7dmFyIGxvb2t1cCxvbGRfZGlyLG5ld19kaXI7bG9va3VwPUZTLmxvb2t1cFBhdGgob2xkX3BhdGgse3BhcmVudDp0cnVlfSk7b2xkX2Rpcj1sb29rdXAubm9kZTtsb29rdXA9RlMubG9va3VwUGF0aChuZXdfcGF0aCx7cGFyZW50OnRydWV9KTtuZXdfZGlyPWxvb2t1cC5ub2RlO2lmKCFvbGRfZGlyfHwhbmV3X2Rpcil0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0NCk7aWYob2xkX2Rpci5tb3VudCE9PW5ld19kaXIubW91bnQpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDc1KX12YXIgb2xkX25vZGU9RlMubG9va3VwTm9kZShvbGRfZGlyLG9sZF9uYW1lKTt2YXIgcmVsYXRpdmU9UEFUSF9GUy5yZWxhdGl2ZShvbGRfcGF0aCxuZXdfZGlybmFtZSk7aWYocmVsYXRpdmUuY2hhckF0KDApIT09Ii4iKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOCl9cmVsYXRpdmU9UEFUSF9GUy5yZWxhdGl2ZShuZXdfcGF0aCxvbGRfZGlybmFtZSk7aWYocmVsYXRpdmUuY2hhckF0KDApIT09Ii4iKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig1NSl9dmFyIG5ld19ub2RlO3RyeXtuZXdfbm9kZT1GUy5sb29rdXBOb2RlKG5ld19kaXIsbmV3X25hbWUpfWNhdGNoKGUpe31pZihvbGRfbm9kZT09PW5ld19ub2RlKXtyZXR1cm59dmFyIGlzZGlyPUZTLmlzRGlyKG9sZF9ub2RlLm1vZGUpO3ZhciBlcnJDb2RlPUZTLm1heURlbGV0ZShvbGRfZGlyLG9sZF9uYW1lLGlzZGlyKTtpZihlcnJDb2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnJDb2RlKX1lcnJDb2RlPW5ld19ub2RlP0ZTLm1heURlbGV0ZShuZXdfZGlyLG5ld19uYW1lLGlzZGlyKTpGUy5tYXlDcmVhdGUobmV3X2RpcixuZXdfbmFtZSk7aWYoZXJyQ29kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyQ29kZSl9aWYoIW9sZF9kaXIubm9kZV9vcHMucmVuYW1lKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9aWYoRlMuaXNNb3VudHBvaW50KG9sZF9ub2RlKXx8bmV3X25vZGUmJkZTLmlzTW91bnRwb2ludChuZXdfbm9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDEwKX1pZihuZXdfZGlyIT09b2xkX2Rpcil7ZXJyQ29kZT1GUy5ub2RlUGVybWlzc2lvbnMob2xkX2RpciwidyIpO2lmKGVyckNvZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVyckNvZGUpfX1GUy5oYXNoUmVtb3ZlTm9kZShvbGRfbm9kZSk7dHJ5e29sZF9kaXIubm9kZV9vcHMucmVuYW1lKG9sZF9ub2RlLG5ld19kaXIsbmV3X25hbWUpfWNhdGNoKGUpe3Rocm93IGV9ZmluYWxseXtGUy5oYXNoQWRkTm9kZShvbGRfbm9kZSl9fSxybWRpcihwYXRoKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7cGFyZW50OnRydWV9KTt2YXIgcGFyZW50PWxvb2t1cC5ub2RlO3ZhciBuYW1lPVBBVEguYmFzZW5hbWUocGF0aCk7dmFyIG5vZGU9RlMubG9va3VwTm9kZShwYXJlbnQsbmFtZSk7dmFyIGVyckNvZGU9RlMubWF5RGVsZXRlKHBhcmVudCxuYW1lLHRydWUpO2lmKGVyckNvZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVyckNvZGUpfWlmKCFwYXJlbnQubm9kZV9vcHMucm1kaXIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDYzKX1pZihGUy5pc01vdW50cG9pbnQobm9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDEwKX1wYXJlbnQubm9kZV9vcHMucm1kaXIocGFyZW50LG5hbWUpO0ZTLmRlc3Ryb3lOb2RlKG5vZGUpfSxyZWFkZGlyKHBhdGgpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6dHJ1ZX0pO3ZhciBub2RlPWxvb2t1cC5ub2RlO2lmKCFub2RlLm5vZGVfb3BzLnJlYWRkaXIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDU0KX1yZXR1cm4gbm9kZS5ub2RlX29wcy5yZWFkZGlyKG5vZGUpfSx1bmxpbmsocGF0aCl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse3BhcmVudDp0cnVlfSk7dmFyIHBhcmVudD1sb29rdXAubm9kZTtpZighcGFyZW50KXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0NCl9dmFyIG5hbWU9UEFUSC5iYXNlbmFtZShwYXRoKTt2YXIgbm9kZT1GUy5sb29rdXBOb2RlKHBhcmVudCxuYW1lKTt2YXIgZXJyQ29kZT1GUy5tYXlEZWxldGUocGFyZW50LG5hbWUsZmFsc2UpO2lmKGVyckNvZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVyckNvZGUpfWlmKCFwYXJlbnQubm9kZV9vcHMudW5saW5rKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9aWYoRlMuaXNNb3VudHBvaW50KG5vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigxMCl9cGFyZW50Lm5vZGVfb3BzLnVubGluayhwYXJlbnQsbmFtZSk7RlMuZGVzdHJveU5vZGUobm9kZSl9LHJlYWRsaW5rKHBhdGgpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoKTt2YXIgbGluaz1sb29rdXAubm9kZTtpZighbGluayl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDQpfWlmKCFsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOCl9cmV0dXJuIFBBVEhfRlMucmVzb2x2ZShGUy5nZXRQYXRoKGxpbmsucGFyZW50KSxsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKGxpbmspKX0sc3RhdChwYXRoLGRvbnRGb2xsb3cpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6IWRvbnRGb2xsb3d9KTt2YXIgbm9kZT1sb29rdXAubm9kZTtpZighbm9kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDQpfWlmKCFub2RlLm5vZGVfb3BzLmdldGF0dHIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDYzKX1yZXR1cm4gbm9kZS5ub2RlX29wcy5nZXRhdHRyKG5vZGUpfSxsc3RhdChwYXRoKXtyZXR1cm4gRlMuc3RhdChwYXRoLHRydWUpfSxjaG1vZChwYXRoLG1vZGUsZG9udEZvbGxvdyl7dmFyIG5vZGU7aWYodHlwZW9mIHBhdGg9PSJzdHJpbmciKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OiFkb250Rm9sbG93fSk7bm9kZT1sb29rdXAubm9kZX1lbHNle25vZGU9cGF0aH1pZighbm9kZS5ub2RlX29wcy5zZXRhdHRyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9bm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUse21vZGU6bW9kZSY0MDk1fG5vZGUubW9kZSZ+NDA5NSx0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfSxsY2htb2QocGF0aCxtb2RlKXtGUy5jaG1vZChwYXRoLG1vZGUsdHJ1ZSl9LGZjaG1vZChmZCxtb2RlKXt2YXIgc3RyZWFtPUZTLmdldFN0cmVhbUNoZWNrZWQoZmQpO0ZTLmNobW9kKHN0cmVhbS5ub2RlLG1vZGUpfSxjaG93bihwYXRoLHVpZCxnaWQsZG9udEZvbGxvdyl7dmFyIG5vZGU7aWYodHlwZW9mIHBhdGg9PSJzdHJpbmciKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OiFkb250Rm9sbG93fSk7bm9kZT1sb29rdXAubm9kZX1lbHNle25vZGU9cGF0aH1pZighbm9kZS5ub2RlX29wcy5zZXRhdHRyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9bm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUse3RpbWVzdGFtcDpEYXRlLm5vdygpfSl9LGxjaG93bihwYXRoLHVpZCxnaWQpe0ZTLmNob3duKHBhdGgsdWlkLGdpZCx0cnVlKX0sZmNob3duKGZkLHVpZCxnaWQpe3ZhciBzdHJlYW09RlMuZ2V0U3RyZWFtQ2hlY2tlZChmZCk7RlMuY2hvd24oc3RyZWFtLm5vZGUsdWlkLGdpZCl9LHRydW5jYXRlKHBhdGgsbGVuKXtpZihsZW48MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfXZhciBub2RlO2lmKHR5cGVvZiBwYXRoPT0ic3RyaW5nIil7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzp0cnVlfSk7bm9kZT1sb29rdXAubm9kZX1lbHNle25vZGU9cGF0aH1pZighbm9kZS5ub2RlX29wcy5zZXRhdHRyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9aWYoRlMuaXNEaXIobm9kZS5tb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMzEpfWlmKCFGUy5pc0ZpbGUobm9kZS5tb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfXZhciBlcnJDb2RlPUZTLm5vZGVQZXJtaXNzaW9ucyhub2RlLCJ3Iik7aWYoZXJyQ29kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyQ29kZSl9bm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUse3NpemU6bGVuLHRpbWVzdGFtcDpEYXRlLm5vdygpfSl9LGZ0cnVuY2F0ZShmZCxsZW4pe3ZhciBzdHJlYW09RlMuZ2V0U3RyZWFtQ2hlY2tlZChmZCk7aWYoKHN0cmVhbS5mbGFncyYyMDk3MTU1KT09PTApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX1GUy50cnVuY2F0ZShzdHJlYW0ubm9kZSxsZW4pfSx1dGltZShwYXRoLGF0aW1lLG10aW1lKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OnRydWV9KTt2YXIgbm9kZT1sb29rdXAubm9kZTtub2RlLm5vZGVfb3BzLnNldGF0dHIobm9kZSx7dGltZXN0YW1wOk1hdGgubWF4KGF0aW1lLG10aW1lKX0pfSxvcGVuKHBhdGgsZmxhZ3MsbW9kZSl7aWYocGF0aD09PSIiKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0NCl9ZmxhZ3M9dHlwZW9mIGZsYWdzPT0ic3RyaW5nIj9GU19tb2RlU3RyaW5nVG9GbGFncyhmbGFncyk6ZmxhZ3M7bW9kZT10eXBlb2YgbW9kZT09InVuZGVmaW5lZCI/NDM4Om1vZGU7aWYoZmxhZ3MmNjQpe21vZGU9bW9kZSY0MDk1fDMyNzY4fWVsc2V7bW9kZT0wfXZhciBub2RlO2lmKHR5cGVvZiBwYXRoPT0ib2JqZWN0Iil7bm9kZT1wYXRofWVsc2V7cGF0aD1QQVRILm5vcm1hbGl6ZShwYXRoKTt0cnl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzohKGZsYWdzJjEzMTA3Mil9KTtub2RlPWxvb2t1cC5ub2RlfWNhdGNoKGUpe319dmFyIGNyZWF0ZWQ9ZmFsc2U7aWYoZmxhZ3MmNjQpe2lmKG5vZGUpe2lmKGZsYWdzJjEyOCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjApfX1lbHNle25vZGU9RlMubWtub2QocGF0aCxtb2RlLDApO2NyZWF0ZWQ9dHJ1ZX19aWYoIW5vZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ0KX1pZihGUy5pc0NocmRldihub2RlLm1vZGUpKXtmbGFncyY9fjUxMn1pZihmbGFncyY2NTUzNiYmIUZTLmlzRGlyKG5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDU0KX1pZighY3JlYXRlZCl7dmFyIGVyckNvZGU9RlMubWF5T3Blbihub2RlLGZsYWdzKTtpZihlcnJDb2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnJDb2RlKX19aWYoZmxhZ3MmNTEyJiYhY3JlYXRlZCl7RlMudHJ1bmNhdGUobm9kZSwwKX1mbGFncyY9figxMjh8NTEyfDEzMTA3Mik7dmFyIHN0cmVhbT1GUy5jcmVhdGVTdHJlYW0oe25vZGU6bm9kZSxwYXRoOkZTLmdldFBhdGgobm9kZSksZmxhZ3M6ZmxhZ3Msc2Vla2FibGU6dHJ1ZSxwb3NpdGlvbjowLHN0cmVhbV9vcHM6bm9kZS5zdHJlYW1fb3BzLHVuZ290dGVuOltdLGVycm9yOmZhbHNlfSk7aWYoc3RyZWFtLnN0cmVhbV9vcHMub3Blbil7c3RyZWFtLnN0cmVhbV9vcHMub3BlbihzdHJlYW0pfWlmKE1vZHVsZVsibG9nUmVhZEZpbGVzIl0mJiEoZmxhZ3MmMSkpe2lmKCFGUy5yZWFkRmlsZXMpRlMucmVhZEZpbGVzPXt9O2lmKCEocGF0aCBpbiBGUy5yZWFkRmlsZXMpKXtGUy5yZWFkRmlsZXNbcGF0aF09MX19cmV0dXJuIHN0cmVhbX0sY2xvc2Uoc3RyZWFtKXtpZihGUy5pc0Nsb3NlZChzdHJlYW0pKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig4KX1pZihzdHJlYW0uZ2V0ZGVudHMpc3RyZWFtLmdldGRlbnRzPW51bGw7dHJ5e2lmKHN0cmVhbS5zdHJlYW1fb3BzLmNsb3NlKXtzdHJlYW0uc3RyZWFtX29wcy5jbG9zZShzdHJlYW0pfX1jYXRjaChlKXt0aHJvdyBlfWZpbmFsbHl7RlMuY2xvc2VTdHJlYW0oc3RyZWFtLmZkKX1zdHJlYW0uZmQ9bnVsbH0saXNDbG9zZWQoc3RyZWFtKXtyZXR1cm4gc3RyZWFtLmZkPT09bnVsbH0sbGxzZWVrKHN0cmVhbSxvZmZzZXQsd2hlbmNlKXtpZihGUy5pc0Nsb3NlZChzdHJlYW0pKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig4KX1pZighc3RyZWFtLnNlZWthYmxlfHwhc3RyZWFtLnN0cmVhbV9vcHMubGxzZWVrKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig3MCl9aWYod2hlbmNlIT0wJiZ3aGVuY2UhPTEmJndoZW5jZSE9Mil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfXN0cmVhbS5wb3NpdGlvbj1zdHJlYW0uc3RyZWFtX29wcy5sbHNlZWsoc3RyZWFtLG9mZnNldCx3aGVuY2UpO3N0cmVhbS51bmdvdHRlbj1bXTtyZXR1cm4gc3RyZWFtLnBvc2l0aW9ufSxyZWFkKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbil7aWYobGVuZ3RoPDB8fHBvc2l0aW9uPDApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX1pZihGUy5pc0Nsb3NlZChzdHJlYW0pKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig4KX1pZigoc3RyZWFtLmZsYWdzJjIwOTcxNTUpPT09MSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoOCl9aWYoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDMxKX1pZighc3RyZWFtLnN0cmVhbV9vcHMucmVhZCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfXZhciBzZWVraW5nPXR5cGVvZiBwb3NpdGlvbiE9InVuZGVmaW5lZCI7aWYoIXNlZWtpbmcpe3Bvc2l0aW9uPXN0cmVhbS5wb3NpdGlvbn1lbHNlIGlmKCFzdHJlYW0uc2Vla2FibGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDcwKX12YXIgYnl0ZXNSZWFkPXN0cmVhbS5zdHJlYW1fb3BzLnJlYWQoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKTtpZighc2Vla2luZylzdHJlYW0ucG9zaXRpb24rPWJ5dGVzUmVhZDtyZXR1cm4gYnl0ZXNSZWFkfSx3cml0ZShzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zaXRpb24sY2FuT3duKXtpZihsZW5ndGg8MHx8cG9zaXRpb248MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfWlmKEZTLmlzQ2xvc2VkKHN0cmVhbSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDgpfWlmKChzdHJlYW0uZmxhZ3MmMjA5NzE1NSk9PT0wKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig4KX1pZihGUy5pc0RpcihzdHJlYW0ubm9kZS5tb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMzEpfWlmKCFzdHJlYW0uc3RyZWFtX29wcy53cml0ZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfWlmKHN0cmVhbS5zZWVrYWJsZSYmc3RyZWFtLmZsYWdzJjEwMjQpe0ZTLmxsc2VlayhzdHJlYW0sMCwyKX12YXIgc2Vla2luZz10eXBlb2YgcG9zaXRpb24hPSJ1bmRlZmluZWQiO2lmKCFzZWVraW5nKXtwb3NpdGlvbj1zdHJlYW0ucG9zaXRpb259ZWxzZSBpZighc3RyZWFtLnNlZWthYmxlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig3MCl9dmFyIGJ5dGVzV3JpdHRlbj1zdHJlYW0uc3RyZWFtX29wcy53cml0ZShzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zaXRpb24sY2FuT3duKTtpZighc2Vla2luZylzdHJlYW0ucG9zaXRpb24rPWJ5dGVzV3JpdHRlbjtyZXR1cm4gYnl0ZXNXcml0dGVufSxhbGxvY2F0ZShzdHJlYW0sb2Zmc2V0LGxlbmd0aCl7aWYoRlMuaXNDbG9zZWQoc3RyZWFtKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoOCl9aWYob2Zmc2V0PDB8fGxlbmd0aDw9MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfWlmKChzdHJlYW0uZmxhZ3MmMjA5NzE1NSk9PT0wKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig4KX1pZighRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpJiYhRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQzKX1pZighc3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDEzOCl9c3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUoc3RyZWFtLG9mZnNldCxsZW5ndGgpfSxtbWFwKHN0cmVhbSxsZW5ndGgscG9zaXRpb24scHJvdCxmbGFncyl7aWYoKHByb3QmMikhPT0wJiYoZmxhZ3MmMik9PT0wJiYoc3RyZWFtLmZsYWdzJjIwOTcxNTUpIT09Mil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMil9aWYoKHN0cmVhbS5mbGFncyYyMDk3MTU1KT09PTEpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDIpfWlmKCFzdHJlYW0uc3RyZWFtX29wcy5tbWFwKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0Myl9cmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLm1tYXAoc3RyZWFtLGxlbmd0aCxwb3NpdGlvbixwcm90LGZsYWdzKX0sbXN5bmMoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLG1tYXBGbGFncyl7aWYoIXN0cmVhbS5zdHJlYW1fb3BzLm1zeW5jKXtyZXR1cm4gMH1yZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMubXN5bmMoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLG1tYXBGbGFncyl9LG11bm1hcDpzdHJlYW09PjAsaW9jdGwoc3RyZWFtLGNtZCxhcmcpe2lmKCFzdHJlYW0uc3RyZWFtX29wcy5pb2N0bCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNTkpfXJldHVybiBzdHJlYW0uc3RyZWFtX29wcy5pb2N0bChzdHJlYW0sY21kLGFyZyl9LHJlYWRGaWxlKHBhdGgsb3B0cz17fSl7b3B0cy5mbGFncz1vcHRzLmZsYWdzfHwwO29wdHMuZW5jb2Rpbmc9b3B0cy5lbmNvZGluZ3x8ImJpbmFyeSI7aWYob3B0cy5lbmNvZGluZyE9PSJ1dGY4IiYmb3B0cy5lbmNvZGluZyE9PSJiaW5hcnkiKXt0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW5jb2RpbmcgdHlwZSAiJHtvcHRzLmVuY29kaW5nfSJgKX12YXIgcmV0O3ZhciBzdHJlYW09RlMub3BlbihwYXRoLG9wdHMuZmxhZ3MpO3ZhciBzdGF0PUZTLnN0YXQocGF0aCk7dmFyIGxlbmd0aD1zdGF0LnNpemU7dmFyIGJ1Zj1uZXcgVWludDhBcnJheShsZW5ndGgpO0ZTLnJlYWQoc3RyZWFtLGJ1ZiwwLGxlbmd0aCwwKTtpZihvcHRzLmVuY29kaW5nPT09InV0ZjgiKXtyZXQ9VVRGOEFycmF5VG9TdHJpbmcoYnVmLDApfWVsc2UgaWYob3B0cy5lbmNvZGluZz09PSJiaW5hcnkiKXtyZXQ9YnVmfUZTLmNsb3NlKHN0cmVhbSk7cmV0dXJuIHJldH0sd3JpdGVGaWxlKHBhdGgsZGF0YSxvcHRzPXt9KXtvcHRzLmZsYWdzPW9wdHMuZmxhZ3N8fDU3Nzt2YXIgc3RyZWFtPUZTLm9wZW4ocGF0aCxvcHRzLmZsYWdzLG9wdHMubW9kZSk7aWYodHlwZW9mIGRhdGE9PSJzdHJpbmciKXt2YXIgYnVmPW5ldyBVaW50OEFycmF5KGxlbmd0aEJ5dGVzVVRGOChkYXRhKSsxKTt2YXIgYWN0dWFsTnVtQnl0ZXM9c3RyaW5nVG9VVEY4QXJyYXkoZGF0YSxidWYsMCxidWYubGVuZ3RoKTtGUy53cml0ZShzdHJlYW0sYnVmLDAsYWN0dWFsTnVtQnl0ZXMsdW5kZWZpbmVkLG9wdHMuY2FuT3duKX1lbHNlIGlmKEFycmF5QnVmZmVyLmlzVmlldyhkYXRhKSl7RlMud3JpdGUoc3RyZWFtLGRhdGEsMCxkYXRhLmJ5dGVMZW5ndGgsdW5kZWZpbmVkLG9wdHMuY2FuT3duKX1lbHNle3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgZGF0YSB0eXBlIil9RlMuY2xvc2Uoc3RyZWFtKX0sY3dkOigpPT5GUy5jdXJyZW50UGF0aCxjaGRpcihwYXRoKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OnRydWV9KTtpZihsb29rdXAubm9kZT09PW51bGwpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ0KX1pZighRlMuaXNEaXIobG9va3VwLm5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDU0KX12YXIgZXJyQ29kZT1GUy5ub2RlUGVybWlzc2lvbnMobG9va3VwLm5vZGUsIngiKTtpZihlcnJDb2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnJDb2RlKX1GUy5jdXJyZW50UGF0aD1sb29rdXAucGF0aH0sY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzKCl7RlMubWtkaXIoIi90bXAiKTtGUy5ta2RpcigiL2hvbWUiKTtGUy5ta2RpcigiL2hvbWUvd2ViX3VzZXIiKX0sY3JlYXRlRGVmYXVsdERldmljZXMoKXtGUy5ta2RpcigiL2RldiIpO0ZTLnJlZ2lzdGVyRGV2aWNlKEZTLm1ha2VkZXYoMSwzKSx7cmVhZDooKT0+MCx3cml0ZTooc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvcyk9Pmxlbmd0aH0pO0ZTLm1rZGV2KCIvZGV2L251bGwiLEZTLm1ha2VkZXYoMSwzKSk7VFRZLnJlZ2lzdGVyKEZTLm1ha2VkZXYoNSwwKSxUVFkuZGVmYXVsdF90dHlfb3BzKTtUVFkucmVnaXN0ZXIoRlMubWFrZWRldig2LDApLFRUWS5kZWZhdWx0X3R0eTFfb3BzKTtGUy5ta2RldigiL2Rldi90dHkiLEZTLm1ha2VkZXYoNSwwKSk7RlMubWtkZXYoIi9kZXYvdHR5MSIsRlMubWFrZWRldig2LDApKTt2YXIgcmFuZG9tQnVmZmVyPW5ldyBVaW50OEFycmF5KDEwMjQpLHJhbmRvbUxlZnQ9MDt2YXIgcmFuZG9tQnl0ZT0oKT0+e2lmKHJhbmRvbUxlZnQ9PT0wKXtyYW5kb21MZWZ0PXJhbmRvbUZpbGwocmFuZG9tQnVmZmVyKS5ieXRlTGVuZ3RofXJldHVybiByYW5kb21CdWZmZXJbLS1yYW5kb21MZWZ0XX07RlMuY3JlYXRlRGV2aWNlKCIvZGV2IiwicmFuZG9tIixyYW5kb21CeXRlKTtGUy5jcmVhdGVEZXZpY2UoIi9kZXYiLCJ1cmFuZG9tIixyYW5kb21CeXRlKTtGUy5ta2RpcigiL2Rldi9zaG0iKTtGUy5ta2RpcigiL2Rldi9zaG0vdG1wIil9LGNyZWF0ZVNwZWNpYWxEaXJlY3Rvcmllcygpe0ZTLm1rZGlyKCIvcHJvYyIpO3ZhciBwcm9jX3NlbGY9RlMubWtkaXIoIi9wcm9jL3NlbGYiKTtGUy5ta2RpcigiL3Byb2Mvc2VsZi9mZCIpO0ZTLm1vdW50KHttb3VudCgpe3ZhciBub2RlPUZTLmNyZWF0ZU5vZGUocHJvY19zZWxmLCJmZCIsMTYzODR8NTExLDczKTtub2RlLm5vZGVfb3BzPXtsb29rdXAocGFyZW50LG5hbWUpe3ZhciBmZD0rbmFtZTt2YXIgc3RyZWFtPUZTLmdldFN0cmVhbUNoZWNrZWQoZmQpO3ZhciByZXQ9e3BhcmVudDpudWxsLG1vdW50Onttb3VudHBvaW50OiJmYWtlIn0sbm9kZV9vcHM6e3JlYWRsaW5rOigpPT5zdHJlYW0ucGF0aH19O3JldC5wYXJlbnQ9cmV0O3JldHVybiByZXR9fTtyZXR1cm4gbm9kZX19LHt9LCIvcHJvYy9zZWxmL2ZkIil9LGNyZWF0ZVN0YW5kYXJkU3RyZWFtcygpe2lmKE1vZHVsZVsic3RkaW4iXSl7RlMuY3JlYXRlRGV2aWNlKCIvZGV2Iiwic3RkaW4iLE1vZHVsZVsic3RkaW4iXSl9ZWxzZXtGUy5zeW1saW5rKCIvZGV2L3R0eSIsIi9kZXYvc3RkaW4iKX1pZihNb2R1bGVbInN0ZG91dCJdKXtGUy5jcmVhdGVEZXZpY2UoIi9kZXYiLCJzdGRvdXQiLG51bGwsTW9kdWxlWyJzdGRvdXQiXSl9ZWxzZXtGUy5zeW1saW5rKCIvZGV2L3R0eSIsIi9kZXYvc3Rkb3V0Iil9aWYoTW9kdWxlWyJzdGRlcnIiXSl7RlMuY3JlYXRlRGV2aWNlKCIvZGV2Iiwic3RkZXJyIixudWxsLE1vZHVsZVsic3RkZXJyIl0pfWVsc2V7RlMuc3ltbGluaygiL2Rldi90dHkxIiwiL2Rldi9zdGRlcnIiKX12YXIgc3RkaW49RlMub3BlbigiL2Rldi9zdGRpbiIsMCk7dmFyIHN0ZG91dD1GUy5vcGVuKCIvZGV2L3N0ZG91dCIsMSk7dmFyIHN0ZGVycj1GUy5vcGVuKCIvZGV2L3N0ZGVyciIsMSl9LGVuc3VyZUVycm5vRXJyb3IoKXtpZihGUy5FcnJub0Vycm9yKXJldHVybjtGUy5FcnJub0Vycm9yPWZ1bmN0aW9uIEVycm5vRXJyb3IoZXJybm8sbm9kZSl7dGhpcy5uYW1lPSJFcnJub0Vycm9yIjt0aGlzLm5vZGU9bm9kZTt0aGlzLnNldEVycm5vPWZ1bmN0aW9uKGVycm5vKXt0aGlzLmVycm5vPWVycm5vfTt0aGlzLnNldEVycm5vKGVycm5vKTt0aGlzLm1lc3NhZ2U9IkZTIGVycm9yIn07RlMuRXJybm9FcnJvci5wcm90b3R5cGU9bmV3IEVycm9yO0ZTLkVycm5vRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yPUZTLkVycm5vRXJyb3I7WzQ0XS5mb3JFYWNoKGNvZGU9PntGUy5nZW5lcmljRXJyb3JzW2NvZGVdPW5ldyBGUy5FcnJub0Vycm9yKGNvZGUpO0ZTLmdlbmVyaWNFcnJvcnNbY29kZV0uc3RhY2s9IjxnZW5lcmljIGVycm9yLCBubyBzdGFjaz4ifSl9LHN0YXRpY0luaXQoKXtGUy5lbnN1cmVFcnJub0Vycm9yKCk7RlMubmFtZVRhYmxlPW5ldyBBcnJheSg0MDk2KTtGUy5tb3VudChNRU1GUyx7fSwiLyIpO0ZTLmNyZWF0ZURlZmF1bHREaXJlY3RvcmllcygpO0ZTLmNyZWF0ZURlZmF1bHREZXZpY2VzKCk7RlMuY3JlYXRlU3BlY2lhbERpcmVjdG9yaWVzKCk7RlMuZmlsZXN5c3RlbXM9eyJNRU1GUyI6TUVNRlN9fSxpbml0KGlucHV0LG91dHB1dCxlcnJvcil7RlMuaW5pdC5pbml0aWFsaXplZD10cnVlO0ZTLmVuc3VyZUVycm5vRXJyb3IoKTtNb2R1bGVbInN0ZGluIl09aW5wdXR8fE1vZHVsZVsic3RkaW4iXTtNb2R1bGVbInN0ZG91dCJdPW91dHB1dHx8TW9kdWxlWyJzdGRvdXQiXTtNb2R1bGVbInN0ZGVyciJdPWVycm9yfHxNb2R1bGVbInN0ZGVyciJdO0ZTLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygpfSxxdWl0KCl7RlMuaW5pdC5pbml0aWFsaXplZD1mYWxzZTtfZmZsdXNoKDApO2Zvcih2YXIgaT0wO2k8RlMuc3RyZWFtcy5sZW5ndGg7aSsrKXt2YXIgc3RyZWFtPUZTLnN0cmVhbXNbaV07aWYoIXN0cmVhbSl7Y29udGludWV9RlMuY2xvc2Uoc3RyZWFtKX19LGZpbmRPYmplY3QocGF0aCxkb250UmVzb2x2ZUxhc3RMaW5rKXt2YXIgcmV0PUZTLmFuYWx5emVQYXRoKHBhdGgsZG9udFJlc29sdmVMYXN0TGluayk7aWYoIXJldC5leGlzdHMpe3JldHVybiBudWxsfXJldHVybiByZXQub2JqZWN0fSxhbmFseXplUGF0aChwYXRoLGRvbnRSZXNvbHZlTGFzdExpbmspe3RyeXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OiFkb250UmVzb2x2ZUxhc3RMaW5rfSk7cGF0aD1sb29rdXAucGF0aH1jYXRjaChlKXt9dmFyIHJldD17aXNSb290OmZhbHNlLGV4aXN0czpmYWxzZSxlcnJvcjowLG5hbWU6bnVsbCxwYXRoOm51bGwsb2JqZWN0Om51bGwscGFyZW50RXhpc3RzOmZhbHNlLHBhcmVudFBhdGg6bnVsbCxwYXJlbnRPYmplY3Q6bnVsbH07dHJ5e3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtwYXJlbnQ6dHJ1ZX0pO3JldC5wYXJlbnRFeGlzdHM9dHJ1ZTtyZXQucGFyZW50UGF0aD1sb29rdXAucGF0aDtyZXQucGFyZW50T2JqZWN0PWxvb2t1cC5ub2RlO3JldC5uYW1lPVBBVEguYmFzZW5hbWUocGF0aCk7bG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OiFkb250UmVzb2x2ZUxhc3RMaW5rfSk7cmV0LmV4aXN0cz10cnVlO3JldC5wYXRoPWxvb2t1cC5wYXRoO3JldC5vYmplY3Q9bG9va3VwLm5vZGU7cmV0Lm5hbWU9bG9va3VwLm5vZGUubmFtZTtyZXQuaXNSb290PWxvb2t1cC5wYXRoPT09Ii8ifWNhdGNoKGUpe3JldC5lcnJvcj1lLmVycm5vfXJldHVybiByZXR9LGNyZWF0ZVBhdGgocGFyZW50LHBhdGgsY2FuUmVhZCxjYW5Xcml0ZSl7cGFyZW50PXR5cGVvZiBwYXJlbnQ9PSJzdHJpbmciP3BhcmVudDpGUy5nZXRQYXRoKHBhcmVudCk7dmFyIHBhcnRzPXBhdGguc3BsaXQoIi8iKS5yZXZlcnNlKCk7d2hpbGUocGFydHMubGVuZ3RoKXt2YXIgcGFydD1wYXJ0cy5wb3AoKTtpZighcGFydCljb250aW51ZTt2YXIgY3VycmVudD1QQVRILmpvaW4yKHBhcmVudCxwYXJ0KTt0cnl7RlMubWtkaXIoY3VycmVudCl9Y2F0Y2goZSl7fXBhcmVudD1jdXJyZW50fXJldHVybiBjdXJyZW50fSxjcmVhdGVGaWxlKHBhcmVudCxuYW1lLHByb3BlcnRpZXMsY2FuUmVhZCxjYW5Xcml0ZSl7dmFyIHBhdGg9UEFUSC5qb2luMih0eXBlb2YgcGFyZW50PT0ic3RyaW5nIj9wYXJlbnQ6RlMuZ2V0UGF0aChwYXJlbnQpLG5hbWUpO3ZhciBtb2RlPUZTX2dldE1vZGUoY2FuUmVhZCxjYW5Xcml0ZSk7cmV0dXJuIEZTLmNyZWF0ZShwYXRoLG1vZGUpfSxjcmVhdGVEYXRhRmlsZShwYXJlbnQsbmFtZSxkYXRhLGNhblJlYWQsY2FuV3JpdGUsY2FuT3duKXt2YXIgcGF0aD1uYW1lO2lmKHBhcmVudCl7cGFyZW50PXR5cGVvZiBwYXJlbnQ9PSJzdHJpbmciP3BhcmVudDpGUy5nZXRQYXRoKHBhcmVudCk7cGF0aD1uYW1lP1BBVEguam9pbjIocGFyZW50LG5hbWUpOnBhcmVudH12YXIgbW9kZT1GU19nZXRNb2RlKGNhblJlYWQsY2FuV3JpdGUpO3ZhciBub2RlPUZTLmNyZWF0ZShwYXRoLG1vZGUpO2lmKGRhdGEpe2lmKHR5cGVvZiBkYXRhPT0ic3RyaW5nIil7dmFyIGFycj1uZXcgQXJyYXkoZGF0YS5sZW5ndGgpO2Zvcih2YXIgaT0wLGxlbj1kYXRhLmxlbmd0aDtpPGxlbjsrK2kpYXJyW2ldPWRhdGEuY2hhckNvZGVBdChpKTtkYXRhPWFycn1GUy5jaG1vZChub2RlLG1vZGV8MTQ2KTt2YXIgc3RyZWFtPUZTLm9wZW4obm9kZSw1NzcpO0ZTLndyaXRlKHN0cmVhbSxkYXRhLDAsZGF0YS5sZW5ndGgsMCxjYW5Pd24pO0ZTLmNsb3NlKHN0cmVhbSk7RlMuY2htb2Qobm9kZSxtb2RlKX19LGNyZWF0ZURldmljZShwYXJlbnQsbmFtZSxpbnB1dCxvdXRwdXQpe3ZhciBwYXRoPVBBVEguam9pbjIodHlwZW9mIHBhcmVudD09InN0cmluZyI/cGFyZW50OkZTLmdldFBhdGgocGFyZW50KSxuYW1lKTt2YXIgbW9kZT1GU19nZXRNb2RlKCEhaW5wdXQsISFvdXRwdXQpO2lmKCFGUy5jcmVhdGVEZXZpY2UubWFqb3IpRlMuY3JlYXRlRGV2aWNlLm1ham9yPTY0O3ZhciBkZXY9RlMubWFrZWRldihGUy5jcmVhdGVEZXZpY2UubWFqb3IrKywwKTtGUy5yZWdpc3RlckRldmljZShkZXYse29wZW4oc3RyZWFtKXtzdHJlYW0uc2Vla2FibGU9ZmFsc2V9LGNsb3NlKHN0cmVhbSl7aWYob3V0cHV0JiZvdXRwdXQuYnVmZmVyJiZvdXRwdXQuYnVmZmVyLmxlbmd0aCl7b3V0cHV0KDEwKX19LHJlYWQoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvcyl7dmFyIGJ5dGVzUmVhZD0wO2Zvcih2YXIgaT0wO2k8bGVuZ3RoO2krKyl7dmFyIHJlc3VsdDt0cnl7cmVzdWx0PWlucHV0KCl9Y2F0Y2goZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjkpfWlmKHJlc3VsdD09PXVuZGVmaW5lZCYmYnl0ZXNSZWFkPT09MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNil9aWYocmVzdWx0PT09bnVsbHx8cmVzdWx0PT09dW5kZWZpbmVkKWJyZWFrO2J5dGVzUmVhZCsrO2J1ZmZlcltvZmZzZXQraV09cmVzdWx0fWlmKGJ5dGVzUmVhZCl7c3RyZWFtLm5vZGUudGltZXN0YW1wPURhdGUubm93KCl9cmV0dXJuIGJ5dGVzUmVhZH0sd3JpdGUoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvcyl7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXt0cnl7b3V0cHV0KGJ1ZmZlcltvZmZzZXQraV0pfWNhdGNoKGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI5KX19aWYobGVuZ3RoKXtzdHJlYW0ubm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKX1yZXR1cm4gaX19KTtyZXR1cm4gRlMubWtkZXYocGF0aCxtb2RlLGRldil9LGZvcmNlTG9hZEZpbGUob2JqKXtpZihvYmouaXNEZXZpY2V8fG9iai5pc0ZvbGRlcnx8b2JqLmxpbmt8fG9iai5jb250ZW50cylyZXR1cm4gdHJ1ZTtpZih0eXBlb2YgWE1MSHR0cFJlcXVlc3QhPSJ1bmRlZmluZWQiKXt0aHJvdyBuZXcgRXJyb3IoIkxhenkgbG9hZGluZyBzaG91bGQgaGF2ZSBiZWVuIHBlcmZvcm1lZCAoY29udGVudHMgc2V0KSBpbiBjcmVhdGVMYXp5RmlsZSwgYnV0IGl0IHdhcyBub3QuIExhenkgbG9hZGluZyBvbmx5IHdvcmtzIGluIHdlYiB3b3JrZXJzLiBVc2UgLS1lbWJlZC1maWxlIG9yIC0tcHJlbG9hZC1maWxlIGluIGVtY2Mgb24gdGhlIG1haW4gdGhyZWFkLiIpfWVsc2UgaWYocmVhZF8pe3RyeXtvYmouY29udGVudHM9aW50QXJyYXlGcm9tU3RyaW5nKHJlYWRfKG9iai51cmwpLHRydWUpO29iai51c2VkQnl0ZXM9b2JqLmNvbnRlbnRzLmxlbmd0aH1jYXRjaChlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOSl9fWVsc2V7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgbG9hZCB3aXRob3V0IHJlYWQoKSBvciBYTUxIdHRwUmVxdWVzdC4iKX19LGNyZWF0ZUxhenlGaWxlKHBhcmVudCxuYW1lLHVybCxjYW5SZWFkLGNhbldyaXRlKXtmdW5jdGlvbiBMYXp5VWludDhBcnJheSgpe3RoaXMubGVuZ3RoS25vd249ZmFsc2U7dGhpcy5jaHVua3M9W119TGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmdldD1mdW5jdGlvbiBMYXp5VWludDhBcnJheV9nZXQoaWR4KXtpZihpZHg+dGhpcy5sZW5ndGgtMXx8aWR4PDApe3JldHVybiB1bmRlZmluZWR9dmFyIGNodW5rT2Zmc2V0PWlkeCV0aGlzLmNodW5rU2l6ZTt2YXIgY2h1bmtOdW09aWR4L3RoaXMuY2h1bmtTaXplfDA7cmV0dXJuIHRoaXMuZ2V0dGVyKGNodW5rTnVtKVtjaHVua09mZnNldF19O0xhenlVaW50OEFycmF5LnByb3RvdHlwZS5zZXREYXRhR2V0dGVyPWZ1bmN0aW9uIExhenlVaW50OEFycmF5X3NldERhdGFHZXR0ZXIoZ2V0dGVyKXt0aGlzLmdldHRlcj1nZXR0ZXJ9O0xhenlVaW50OEFycmF5LnByb3RvdHlwZS5jYWNoZUxlbmd0aD1mdW5jdGlvbiBMYXp5VWludDhBcnJheV9jYWNoZUxlbmd0aCgpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJIRUFEIix1cmwsZmFsc2UpO3hoci5zZW5kKG51bGwpO2lmKCEoeGhyLnN0YXR1cz49MjAwJiZ4aHIuc3RhdHVzPDMwMHx8eGhyLnN0YXR1cz09PTMwNCkpdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIrdXJsKyIuIFN0YXR1czogIit4aHIuc3RhdHVzKTt2YXIgZGF0YWxlbmd0aD1OdW1iZXIoeGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LWxlbmd0aCIpKTt2YXIgaGVhZGVyO3ZhciBoYXNCeXRlU2VydmluZz0oaGVhZGVyPXhoci5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSYmaGVhZGVyPT09ImJ5dGVzIjt2YXIgdXNlc0d6aXA9KGhlYWRlcj14aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtRW5jb2RpbmciKSkmJmhlYWRlcj09PSJnemlwIjt2YXIgY2h1bmtTaXplPTEwMjQqMTAyNDtpZighaGFzQnl0ZVNlcnZpbmcpY2h1bmtTaXplPWRhdGFsZW5ndGg7dmFyIGRvWEhSPShmcm9tLHRvKT0+e2lmKGZyb20+dG8pdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHJhbmdlICgiK2Zyb20rIiwgIit0bysiKSBvciBubyBieXRlcyByZXF1ZXN0ZWQhIik7aWYodG8+ZGF0YWxlbmd0aC0xKXRocm93IG5ldyBFcnJvcigib25seSAiK2RhdGFsZW5ndGgrIiBieXRlcyBhdmFpbGFibGUhIHByb2dyYW1tZXIgZXJyb3IhIik7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4oIkdFVCIsdXJsLGZhbHNlKTtpZihkYXRhbGVuZ3RoIT09Y2h1bmtTaXplKXhoci5zZXRSZXF1ZXN0SGVhZGVyKCJSYW5nZSIsImJ5dGVzPSIrZnJvbSsiLSIrdG8pO3hoci5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIjtpZih4aHIub3ZlcnJpZGVNaW1lVHlwZSl7eGhyLm92ZXJyaWRlTWltZVR5cGUoInRleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQiKX14aHIuc2VuZChudWxsKTtpZighKHhoci5zdGF0dXM+PTIwMCYmeGhyLnN0YXR1czwzMDB8fHhoci5zdGF0dXM9PT0zMDQpKXRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiK3VybCsiLiBTdGF0dXM6ICIreGhyLnN0YXR1cyk7aWYoeGhyLnJlc3BvbnNlIT09dW5kZWZpbmVkKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeGhyLnJlc3BvbnNlfHxbXSl9cmV0dXJuIGludEFycmF5RnJvbVN0cmluZyh4aHIucmVzcG9uc2VUZXh0fHwiIix0cnVlKX07dmFyIGxhenlBcnJheT10aGlzO2xhenlBcnJheS5zZXREYXRhR2V0dGVyKGNodW5rTnVtPT57dmFyIHN0YXJ0PWNodW5rTnVtKmNodW5rU2l6ZTt2YXIgZW5kPShjaHVua051bSsxKSpjaHVua1NpemUtMTtlbmQ9TWF0aC5taW4oZW5kLGRhdGFsZW5ndGgtMSk7aWYodHlwZW9mIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dPT0idW5kZWZpbmVkIil7bGF6eUFycmF5LmNodW5rc1tjaHVua051bV09ZG9YSFIoc3RhcnQsZW5kKX1pZih0eXBlb2YgbGF6eUFycmF5LmNodW5rc1tjaHVua051bV09PSJ1bmRlZmluZWQiKXRocm93IG5ldyBFcnJvcigiZG9YSFIgZmFpbGVkISIpO3JldHVybiBsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXX0pO2lmKHVzZXNHemlwfHwhZGF0YWxlbmd0aCl7Y2h1bmtTaXplPWRhdGFsZW5ndGg9MTtkYXRhbGVuZ3RoPXRoaXMuZ2V0dGVyKDApLmxlbmd0aDtjaHVua1NpemU9ZGF0YWxlbmd0aDtvdXQoIkxhenlGaWxlcyBvbiBnemlwIGZvcmNlcyBkb3dubG9hZCBvZiB0aGUgd2hvbGUgZmlsZSB3aGVuIGxlbmd0aCBpcyBhY2Nlc3NlZCIpfXRoaXMuX2xlbmd0aD1kYXRhbGVuZ3RoO3RoaXMuX2NodW5rU2l6ZT1jaHVua1NpemU7dGhpcy5sZW5ndGhLbm93bj10cnVlfTtpZih0eXBlb2YgWE1MSHR0cFJlcXVlc3QhPSJ1bmRlZmluZWQiKXtpZighRU5WSVJPTk1FTlRfSVNfV09SS0VSKXRocm93IkNhbm5vdCBkbyBzeW5jaHJvbm91cyBiaW5hcnkgWEhScyBvdXRzaWRlIHdlYndvcmtlcnMgaW4gbW9kZXJuIGJyb3dzZXJzLiBVc2UgLS1lbWJlZC1maWxlIG9yIC0tcHJlbG9hZC1maWxlIGluIGVtY2MiO3ZhciBsYXp5QXJyYXk9bmV3IExhenlVaW50OEFycmF5O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGxhenlBcnJheSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5sZW5ndGhLbm93bil7dGhpcy5jYWNoZUxlbmd0aCgpfXJldHVybiB0aGlzLl9sZW5ndGh9fSxjaHVua1NpemU6e2dldDpmdW5jdGlvbigpe2lmKCF0aGlzLmxlbmd0aEtub3duKXt0aGlzLmNhY2hlTGVuZ3RoKCl9cmV0dXJuIHRoaXMuX2NodW5rU2l6ZX19fSk7dmFyIHByb3BlcnRpZXM9e2lzRGV2aWNlOmZhbHNlLGNvbnRlbnRzOmxhenlBcnJheX19ZWxzZXt2YXIgcHJvcGVydGllcz17aXNEZXZpY2U6ZmFsc2UsdXJsOnVybH19dmFyIG5vZGU9RlMuY3JlYXRlRmlsZShwYXJlbnQsbmFtZSxwcm9wZXJ0aWVzLGNhblJlYWQsY2FuV3JpdGUpO2lmKHByb3BlcnRpZXMuY29udGVudHMpe25vZGUuY29udGVudHM9cHJvcGVydGllcy5jb250ZW50c31lbHNlIGlmKHByb3BlcnRpZXMudXJsKXtub2RlLmNvbnRlbnRzPW51bGw7bm9kZS51cmw9cHJvcGVydGllcy51cmx9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobm9kZSx7dXNlZEJ5dGVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50cy5sZW5ndGh9fX0pO3ZhciBzdHJlYW1fb3BzPXt9O3ZhciBrZXlzPU9iamVjdC5rZXlzKG5vZGUuc3RyZWFtX29wcyk7a2V5cy5mb3JFYWNoKGtleT0+e3ZhciBmbj1ub2RlLnN0cmVhbV9vcHNba2V5XTtzdHJlYW1fb3BzW2tleV09ZnVuY3Rpb24gZm9yY2VMb2FkTGF6eUZpbGUoKXtGUy5mb3JjZUxvYWRGaWxlKG5vZGUpO3JldHVybiBmbi5hcHBseShudWxsLGFyZ3VtZW50cyl9fSk7ZnVuY3Rpb24gd3JpdGVDaHVua3Moc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKXt2YXIgY29udGVudHM9c3RyZWFtLm5vZGUuY29udGVudHM7aWYocG9zaXRpb24+PWNvbnRlbnRzLmxlbmd0aClyZXR1cm4gMDt2YXIgc2l6ZT1NYXRoLm1pbihjb250ZW50cy5sZW5ndGgtcG9zaXRpb24sbGVuZ3RoKTtpZihjb250ZW50cy5zbGljZSl7Zm9yKHZhciBpPTA7aTxzaXplO2krKyl7YnVmZmVyW29mZnNldCtpXT1jb250ZW50c1twb3NpdGlvbitpXX19ZWxzZXtmb3IodmFyIGk9MDtpPHNpemU7aSsrKXtidWZmZXJbb2Zmc2V0K2ldPWNvbnRlbnRzLmdldChwb3NpdGlvbitpKX19cmV0dXJuIHNpemV9c3RyZWFtX29wcy5yZWFkPShzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zaXRpb24pPT57RlMuZm9yY2VMb2FkRmlsZShub2RlKTtyZXR1cm4gd3JpdGVDaHVua3Moc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKX07c3RyZWFtX29wcy5tbWFwPShzdHJlYW0sbGVuZ3RoLHBvc2l0aW9uLHByb3QsZmxhZ3MpPT57RlMuZm9yY2VMb2FkRmlsZShub2RlKTt2YXIgcHRyPW1tYXBBbGxvYyhsZW5ndGgpO2lmKCFwdHIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ4KX13cml0ZUNodW5rcyhzdHJlYW0sSEVBUDgscHRyLGxlbmd0aCxwb3NpdGlvbik7cmV0dXJue3B0cjpwdHIsYWxsb2NhdGVkOnRydWV9fTtub2RlLnN0cmVhbV9vcHM9c3RyZWFtX29wcztyZXR1cm4gbm9kZX19O3ZhciBTWVNDQUxMUz17REVGQVVMVF9QT0xMTUFTSzo1LGNhbGN1bGF0ZUF0KGRpcmZkLHBhdGgsYWxsb3dFbXB0eSl7aWYoUEFUSC5pc0FicyhwYXRoKSl7cmV0dXJuIHBhdGh9dmFyIGRpcjtpZihkaXJmZD09PS0xMDApe2Rpcj1GUy5jd2QoKX1lbHNle3ZhciBkaXJzdHJlYW09U1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKGRpcmZkKTtkaXI9ZGlyc3RyZWFtLnBhdGh9aWYocGF0aC5sZW5ndGg9PTApe2lmKCFhbGxvd0VtcHR5KXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0NCl9cmV0dXJuIGRpcn1yZXR1cm4gUEFUSC5qb2luMihkaXIscGF0aCl9LGRvU3RhdChmdW5jLHBhdGgsYnVmKXt0cnl7dmFyIHN0YXQ9ZnVuYyhwYXRoKX1jYXRjaChlKXtpZihlJiZlLm5vZGUmJlBBVEgubm9ybWFsaXplKHBhdGgpIT09UEFUSC5ub3JtYWxpemUoRlMuZ2V0UGF0aChlLm5vZGUpKSl7cmV0dXJuLTU0fXRocm93IGV9SEVBUDMyW2J1Zj4+Ml09c3RhdC5kZXY7SEVBUDMyW2J1Zis0Pj4yXT1zdGF0Lm1vZGU7SEVBUFUzMltidWYrOD4+Ml09c3RhdC5ubGluaztIRUFQMzJbYnVmKzEyPj4yXT1zdGF0LnVpZDtIRUFQMzJbYnVmKzE2Pj4yXT1zdGF0LmdpZDtIRUFQMzJbYnVmKzIwPj4yXT1zdGF0LnJkZXY7dGVtcEk2ND1bc3RhdC5zaXplPj4+MCwodGVtcERvdWJsZT1zdGF0LnNpemUsK01hdGguYWJzKHRlbXBEb3VibGUpPj0xP3RlbXBEb3VibGU+MD8rTWF0aC5mbG9vcih0ZW1wRG91YmxlLzQyOTQ5NjcyOTYpPj4+MDp+fitNYXRoLmNlaWwoKHRlbXBEb3VibGUtKyh+fnRlbXBEb3VibGU+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxIRUFQMzJbYnVmKzI0Pj4yXT10ZW1wSTY0WzBdLEhFQVAzMltidWYrMjg+PjJdPXRlbXBJNjRbMV07SEVBUDMyW2J1ZiszMj4+Ml09NDA5NjtIRUFQMzJbYnVmKzM2Pj4yXT1zdGF0LmJsb2Nrczt2YXIgYXRpbWU9c3RhdC5hdGltZS5nZXRUaW1lKCk7dmFyIG10aW1lPXN0YXQubXRpbWUuZ2V0VGltZSgpO3ZhciBjdGltZT1zdGF0LmN0aW1lLmdldFRpbWUoKTt0ZW1wSTY0PVtNYXRoLmZsb29yKGF0aW1lLzFlMyk+Pj4wLCh0ZW1wRG91YmxlPU1hdGguZmxvb3IoYXRpbWUvMWUzKSwrTWF0aC5hYnModGVtcERvdWJsZSk+PTE/dGVtcERvdWJsZT4wPytNYXRoLmZsb29yKHRlbXBEb3VibGUvNDI5NDk2NzI5Nik+Pj4wOn5+K01hdGguY2VpbCgodGVtcERvdWJsZS0rKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLEhFQVAzMltidWYrNDA+PjJdPXRlbXBJNjRbMF0sSEVBUDMyW2J1Zis0ND4+Ml09dGVtcEk2NFsxXTtIRUFQVTMyW2J1Zis0OD4+Ml09YXRpbWUlMWUzKjFlMzt0ZW1wSTY0PVtNYXRoLmZsb29yKG10aW1lLzFlMyk+Pj4wLCh0ZW1wRG91YmxlPU1hdGguZmxvb3IobXRpbWUvMWUzKSwrTWF0aC5hYnModGVtcERvdWJsZSk+PTE/dGVtcERvdWJsZT4wPytNYXRoLmZsb29yKHRlbXBEb3VibGUvNDI5NDk2NzI5Nik+Pj4wOn5+K01hdGguY2VpbCgodGVtcERvdWJsZS0rKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLEhFQVAzMltidWYrNTY+PjJdPXRlbXBJNjRbMF0sSEVBUDMyW2J1Zis2MD4+Ml09dGVtcEk2NFsxXTtIRUFQVTMyW2J1Zis2ND4+Ml09bXRpbWUlMWUzKjFlMzt0ZW1wSTY0PVtNYXRoLmZsb29yKGN0aW1lLzFlMyk+Pj4wLCh0ZW1wRG91YmxlPU1hdGguZmxvb3IoY3RpbWUvMWUzKSwrTWF0aC5hYnModGVtcERvdWJsZSk+PTE/dGVtcERvdWJsZT4wPytNYXRoLmZsb29yKHRlbXBEb3VibGUvNDI5NDk2NzI5Nik+Pj4wOn5+K01hdGguY2VpbCgodGVtcERvdWJsZS0rKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLEhFQVAzMltidWYrNzI+PjJdPXRlbXBJNjRbMF0sSEVBUDMyW2J1Zis3Nj4+Ml09dGVtcEk2NFsxXTtIRUFQVTMyW2J1Zis4MD4+Ml09Y3RpbWUlMWUzKjFlMzt0ZW1wSTY0PVtzdGF0Lmlubz4+PjAsKHRlbXBEb3VibGU9c3RhdC5pbm8sK01hdGguYWJzKHRlbXBEb3VibGUpPj0xP3RlbXBEb3VibGU+MD8rTWF0aC5mbG9vcih0ZW1wRG91YmxlLzQyOTQ5NjcyOTYpPj4+MDp+fitNYXRoLmNlaWwoKHRlbXBEb3VibGUtKyh+fnRlbXBEb3VibGU+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxIRUFQMzJbYnVmKzg4Pj4yXT10ZW1wSTY0WzBdLEhFQVAzMltidWYrOTI+PjJdPXRlbXBJNjRbMV07cmV0dXJuIDB9LGRvTXN5bmMoYWRkcixzdHJlYW0sbGVuLGZsYWdzLG9mZnNldCl7aWYoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDMpfWlmKGZsYWdzJjIpe3JldHVybiAwfXZhciBidWZmZXI9SEVBUFU4LnNsaWNlKGFkZHIsYWRkcitsZW4pO0ZTLm1zeW5jKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbixmbGFncyl9LHZhcmFyZ3M6dW5kZWZpbmVkLGdldCgpe3ZhciByZXQ9SEVBUDMyWytTWVNDQUxMUy52YXJhcmdzPj4yXTtTWVNDQUxMUy52YXJhcmdzKz00O3JldHVybiByZXR9LGdldHAoKXtyZXR1cm4gU1lTQ0FMTFMuZ2V0KCl9LGdldFN0cihwdHIpe3ZhciByZXQ9VVRGOFRvU3RyaW5nKHB0cik7cmV0dXJuIHJldH0sZ2V0U3RyZWFtRnJvbUZEKGZkKXt2YXIgc3RyZWFtPUZTLmdldFN0cmVhbUNoZWNrZWQoZmQpO3JldHVybiBzdHJlYW19fTtmdW5jdGlvbiBfX19zeXNjYWxsX2ZzdGF0NjQoZmQsYnVmKXt0cnl7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO3JldHVybiBTWVNDQUxMUy5kb1N0YXQoRlMuc3RhdCxzdHJlYW0ucGF0aCxidWYpfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybi1lLmVycm5vfX12YXIgY29udmVydEkzMlBhaXJUb0k1M0NoZWNrZWQ9KGxvLGhpKT0+aGkrMjA5NzE1Mj4+PjA8NDE5NDMwNS0hIWxvPyhsbz4+PjApK2hpKjQyOTQ5NjcyOTY6TmFOO2Z1bmN0aW9uIF9fX3N5c2NhbGxfZnRydW5jYXRlNjQoZmQsbGVuZ3RoX2xvdyxsZW5ndGhfaGlnaCl7dmFyIGxlbmd0aD1jb252ZXJ0STMyUGFpclRvSTUzQ2hlY2tlZChsZW5ndGhfbG93LGxlbmd0aF9oaWdoKTt0cnl7aWYoaXNOYU4obGVuZ3RoKSlyZXR1cm4gNjE7RlMuZnRydW5jYXRlKGZkLGxlbmd0aCk7cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuLWUuZXJybm99fWZ1bmN0aW9uIF9fX3N5c2NhbGxfbmV3ZnN0YXRhdChkaXJmZCxwYXRoLGJ1ZixmbGFncyl7dHJ5e3BhdGg9U1lTQ0FMTFMuZ2V0U3RyKHBhdGgpO3ZhciBub2ZvbGxvdz1mbGFncyYyNTY7dmFyIGFsbG93RW1wdHk9ZmxhZ3MmNDA5NjtmbGFncz1mbGFncyZ+NjQwMDtwYXRoPVNZU0NBTExTLmNhbGN1bGF0ZUF0KGRpcmZkLHBhdGgsYWxsb3dFbXB0eSk7cmV0dXJuIFNZU0NBTExTLmRvU3RhdChub2ZvbGxvdz9GUy5sc3RhdDpGUy5zdGF0LHBhdGgsYnVmKX1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19fc3lzY2FsbF9vcGVuYXQoZGlyZmQscGF0aCxmbGFncyx2YXJhcmdzKXtTWVNDQUxMUy52YXJhcmdzPXZhcmFyZ3M7dHJ5e3BhdGg9U1lTQ0FMTFMuZ2V0U3RyKHBhdGgpO3BhdGg9U1lTQ0FMTFMuY2FsY3VsYXRlQXQoZGlyZmQscGF0aCk7dmFyIG1vZGU9dmFyYXJncz9TWVNDQUxMUy5nZXQoKTowO3JldHVybiBGUy5vcGVuKHBhdGgsZmxhZ3MsbW9kZSkuZmR9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuLWUuZXJybm99fXZhciBzdHJpbmdUb1VURjg9KHN0cixvdXRQdHIsbWF4Qnl0ZXNUb1dyaXRlKT0+c3RyaW5nVG9VVEY4QXJyYXkoc3RyLEhFQVBVOCxvdXRQdHIsbWF4Qnl0ZXNUb1dyaXRlKTtmdW5jdGlvbiBfX19zeXNjYWxsX3JlYWRsaW5rYXQoZGlyZmQscGF0aCxidWYsYnVmc2l6ZSl7dHJ5e3BhdGg9U1lTQ0FMTFMuZ2V0U3RyKHBhdGgpO3BhdGg9U1lTQ0FMTFMuY2FsY3VsYXRlQXQoZGlyZmQscGF0aCk7aWYoYnVmc2l6ZTw9MClyZXR1cm4tMjg7dmFyIHJldD1GUy5yZWFkbGluayhwYXRoKTt2YXIgbGVuPU1hdGgubWluKGJ1ZnNpemUsbGVuZ3RoQnl0ZXNVVEY4KHJldCkpO3ZhciBlbmRDaGFyPUhFQVA4W2J1ZitsZW5dO3N0cmluZ1RvVVRGOChyZXQsYnVmLGJ1ZnNpemUrMSk7SEVBUDhbYnVmK2xlbl09ZW5kQ2hhcjtyZXR1cm4gbGVufWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybi1lLmVycm5vfX1mdW5jdGlvbiBfX19zeXNjYWxsX3JlbmFtZWF0KG9sZGRpcmZkLG9sZHBhdGgsbmV3ZGlyZmQsbmV3cGF0aCl7dHJ5e29sZHBhdGg9U1lTQ0FMTFMuZ2V0U3RyKG9sZHBhdGgpO25ld3BhdGg9U1lTQ0FMTFMuZ2V0U3RyKG5ld3BhdGgpO29sZHBhdGg9U1lTQ0FMTFMuY2FsY3VsYXRlQXQob2xkZGlyZmQsb2xkcGF0aCk7bmV3cGF0aD1TWVNDQUxMUy5jYWxjdWxhdGVBdChuZXdkaXJmZCxuZXdwYXRoKTtGUy5yZW5hbWUob2xkcGF0aCxuZXdwYXRoKTtyZXR1cm4gMH1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19fc3lzY2FsbF9zdGF0NjQocGF0aCxidWYpe3RyeXtwYXRoPVNZU0NBTExTLmdldFN0cihwYXRoKTtyZXR1cm4gU1lTQ0FMTFMuZG9TdGF0KEZTLnN0YXQscGF0aCxidWYpfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybi1lLmVycm5vfX1mdW5jdGlvbiBfX19zeXNjYWxsX3VubGlua2F0KGRpcmZkLHBhdGgsZmxhZ3Mpe3RyeXtwYXRoPVNZU0NBTExTLmdldFN0cihwYXRoKTtwYXRoPVNZU0NBTExTLmNhbGN1bGF0ZUF0KGRpcmZkLHBhdGgpO2lmKGZsYWdzPT09MCl7RlMudW5saW5rKHBhdGgpfWVsc2UgaWYoZmxhZ3M9PT01MTIpe0ZTLnJtZGlyKHBhdGgpfWVsc2V7YWJvcnQoIkludmFsaWQgZmxhZ3MgcGFzc2VkIHRvIHVubGlua2F0Iil9cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuLWUuZXJybm99fXZhciBfX2VtYmluZF9yZWdpc3Rlcl9iaWdpbnQ9KHByaW1pdGl2ZVR5cGUsbmFtZSxzaXplLG1pblJhbmdlLG1heFJhbmdlKT0+e307dmFyIGVtYmluZF9pbml0X2NoYXJDb2Rlcz0oKT0+e3ZhciBjb2Rlcz1uZXcgQXJyYXkoMjU2KTtmb3IodmFyIGk9MDtpPDI1NjsrK2kpe2NvZGVzW2ldPVN0cmluZy5mcm9tQ2hhckNvZGUoaSl9ZW1iaW5kX2NoYXJDb2Rlcz1jb2Rlc307dmFyIGVtYmluZF9jaGFyQ29kZXM7dmFyIHJlYWRMYXRpbjFTdHJpbmc9cHRyPT57dmFyIHJldD0iIjt2YXIgYz1wdHI7d2hpbGUoSEVBUFU4W2NdKXtyZXQrPWVtYmluZF9jaGFyQ29kZXNbSEVBUFU4W2MrK11dfXJldHVybiByZXR9O3ZhciBhd2FpdGluZ0RlcGVuZGVuY2llcz17fTt2YXIgcmVnaXN0ZXJlZFR5cGVzPXt9O3ZhciB0eXBlRGVwZW5kZW5jaWVzPXt9O3ZhciBCaW5kaW5nRXJyb3I7dmFyIHRocm93QmluZGluZ0Vycm9yPW1lc3NhZ2U9Pnt0aHJvdyBuZXcgQmluZGluZ0Vycm9yKG1lc3NhZ2UpfTt2YXIgSW50ZXJuYWxFcnJvcjt2YXIgdGhyb3dJbnRlcm5hbEVycm9yPW1lc3NhZ2U9Pnt0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKX07dmFyIHdoZW5EZXBlbmRlbnRUeXBlc0FyZVJlc29sdmVkPShteVR5cGVzLGRlcGVuZGVudFR5cGVzLGdldFR5cGVDb252ZXJ0ZXJzKT0+e215VHlwZXMuZm9yRWFjaChmdW5jdGlvbih0eXBlKXt0eXBlRGVwZW5kZW5jaWVzW3R5cGVdPWRlcGVuZGVudFR5cGVzfSk7ZnVuY3Rpb24gb25Db21wbGV0ZSh0eXBlQ29udmVydGVycyl7dmFyIG15VHlwZUNvbnZlcnRlcnM9Z2V0VHlwZUNvbnZlcnRlcnModHlwZUNvbnZlcnRlcnMpO2lmKG15VHlwZUNvbnZlcnRlcnMubGVuZ3RoIT09bXlUeXBlcy5sZW5ndGgpe3Rocm93SW50ZXJuYWxFcnJvcigiTWlzbWF0Y2hlZCB0eXBlIGNvbnZlcnRlciBjb3VudCIpfWZvcih2YXIgaT0wO2k8bXlUeXBlcy5sZW5ndGg7KytpKXtyZWdpc3RlclR5cGUobXlUeXBlc1tpXSxteVR5cGVDb252ZXJ0ZXJzW2ldKX19dmFyIHR5cGVDb252ZXJ0ZXJzPW5ldyBBcnJheShkZXBlbmRlbnRUeXBlcy5sZW5ndGgpO3ZhciB1bnJlZ2lzdGVyZWRUeXBlcz1bXTt2YXIgcmVnaXN0ZXJlZD0wO2RlcGVuZGVudFR5cGVzLmZvckVhY2goKGR0LGkpPT57aWYocmVnaXN0ZXJlZFR5cGVzLmhhc093blByb3BlcnR5KGR0KSl7dHlwZUNvbnZlcnRlcnNbaV09cmVnaXN0ZXJlZFR5cGVzW2R0XX1lbHNle3VucmVnaXN0ZXJlZFR5cGVzLnB1c2goZHQpO2lmKCFhd2FpdGluZ0RlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShkdCkpe2F3YWl0aW5nRGVwZW5kZW5jaWVzW2R0XT1bXX1hd2FpdGluZ0RlcGVuZGVuY2llc1tkdF0ucHVzaCgoKT0+e3R5cGVDb252ZXJ0ZXJzW2ldPXJlZ2lzdGVyZWRUeXBlc1tkdF07KytyZWdpc3RlcmVkO2lmKHJlZ2lzdGVyZWQ9PT11bnJlZ2lzdGVyZWRUeXBlcy5sZW5ndGgpe29uQ29tcGxldGUodHlwZUNvbnZlcnRlcnMpfX0pfX0pO2lmKDA9PT11bnJlZ2lzdGVyZWRUeXBlcy5sZW5ndGgpe29uQ29tcGxldGUodHlwZUNvbnZlcnRlcnMpfX07ZnVuY3Rpb24gc2hhcmVkUmVnaXN0ZXJUeXBlKHJhd1R5cGUscmVnaXN0ZXJlZEluc3RhbmNlLG9wdGlvbnM9e30pe3ZhciBuYW1lPXJlZ2lzdGVyZWRJbnN0YW5jZS5uYW1lO2lmKCFyYXdUeXBlKXt0aHJvd0JpbmRpbmdFcnJvcihgdHlwZSAiJHtuYW1lfSIgbXVzdCBoYXZlIGEgcG9zaXRpdmUgaW50ZWdlciB0eXBlaWQgcG9pbnRlcmApfWlmKHJlZ2lzdGVyZWRUeXBlcy5oYXNPd25Qcm9wZXJ0eShyYXdUeXBlKSl7aWYob3B0aW9ucy5pZ25vcmVEdXBsaWNhdGVSZWdpc3RyYXRpb25zKXtyZXR1cm59ZWxzZXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IHJlZ2lzdGVyIHR5cGUgJyR7bmFtZX0nIHR3aWNlYCl9fXJlZ2lzdGVyZWRUeXBlc1tyYXdUeXBlXT1yZWdpc3RlcmVkSW5zdGFuY2U7ZGVsZXRlIHR5cGVEZXBlbmRlbmNpZXNbcmF3VHlwZV07aWYoYXdhaXRpbmdEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocmF3VHlwZSkpe3ZhciBjYWxsYmFja3M9YXdhaXRpbmdEZXBlbmRlbmNpZXNbcmF3VHlwZV07ZGVsZXRlIGF3YWl0aW5nRGVwZW5kZW5jaWVzW3Jhd1R5cGVdO2NhbGxiYWNrcy5mb3JFYWNoKGNiPT5jYigpKX19ZnVuY3Rpb24gcmVnaXN0ZXJUeXBlKHJhd1R5cGUscmVnaXN0ZXJlZEluc3RhbmNlLG9wdGlvbnM9e30pe2lmKCEoImFyZ1BhY2tBZHZhbmNlImluIHJlZ2lzdGVyZWRJbnN0YW5jZSkpe3Rocm93IG5ldyBUeXBlRXJyb3IoInJlZ2lzdGVyVHlwZSByZWdpc3RlcmVkSW5zdGFuY2UgcmVxdWlyZXMgYXJnUGFja0FkdmFuY2UiKX1yZXR1cm4gc2hhcmVkUmVnaXN0ZXJUeXBlKHJhd1R5cGUscmVnaXN0ZXJlZEluc3RhbmNlLG9wdGlvbnMpfXZhciBHZW5lcmljV2lyZVR5cGVTaXplPTg7dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX2Jvb2w9KHJhd1R5cGUsbmFtZSx0cnVlVmFsdWUsZmFsc2VWYWx1ZSk9PntuYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7cmVnaXN0ZXJUeXBlKHJhd1R5cGUse25hbWU6bmFtZSwiZnJvbVdpcmVUeXBlIjpmdW5jdGlvbih3dCl7cmV0dXJuISF3dH0sInRvV2lyZVR5cGUiOmZ1bmN0aW9uKGRlc3RydWN0b3JzLG8pe3JldHVybiBvP3RydWVWYWx1ZTpmYWxzZVZhbHVlfSwiYXJnUGFja0FkdmFuY2UiOkdlbmVyaWNXaXJlVHlwZVNpemUsInJlYWRWYWx1ZUZyb21Qb2ludGVyIjpmdW5jdGlvbihwb2ludGVyKXtyZXR1cm4gdGhpc1siZnJvbVdpcmVUeXBlIl0oSEVBUFU4W3BvaW50ZXJdKX0sZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX07dmFyIHNoYWxsb3dDb3B5SW50ZXJuYWxQb2ludGVyPW89Pih7Y291bnQ6by5jb3VudCxkZWxldGVTY2hlZHVsZWQ6by5kZWxldGVTY2hlZHVsZWQscHJlc2VydmVQb2ludGVyT25EZWxldGU6by5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSxwdHI6by5wdHIscHRyVHlwZTpvLnB0clR5cGUsc21hcnRQdHI6by5zbWFydFB0cixzbWFydFB0clR5cGU6by5zbWFydFB0clR5cGV9KTt2YXIgdGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkPW9iaj0+e2Z1bmN0aW9uIGdldEluc3RhbmNlVHlwZU5hbWUoaGFuZGxlKXtyZXR1cm4gaGFuZGxlLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLm5hbWV9dGhyb3dCaW5kaW5nRXJyb3IoZ2V0SW5zdGFuY2VUeXBlTmFtZShvYmopKyIgaW5zdGFuY2UgYWxyZWFkeSBkZWxldGVkIil9O3ZhciBmaW5hbGl6YXRpb25SZWdpc3RyeT1mYWxzZTt2YXIgZGV0YWNoRmluYWxpemVyPWhhbmRsZT0+e307dmFyIHJ1bkRlc3RydWN0b3I9JCQ9PntpZigkJC5zbWFydFB0cil7JCQuc21hcnRQdHJUeXBlLnJhd0Rlc3RydWN0b3IoJCQuc21hcnRQdHIpfWVsc2V7JCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MucmF3RGVzdHJ1Y3RvcigkJC5wdHIpfX07dmFyIHJlbGVhc2VDbGFzc0hhbmRsZT0kJD0+eyQkLmNvdW50LnZhbHVlLT0xO3ZhciB0b0RlbGV0ZT0wPT09JCQuY291bnQudmFsdWU7aWYodG9EZWxldGUpe3J1bkRlc3RydWN0b3IoJCQpfX07dmFyIGRvd25jYXN0UG9pbnRlcj0ocHRyLHB0ckNsYXNzLGRlc2lyZWRDbGFzcyk9PntpZihwdHJDbGFzcz09PWRlc2lyZWRDbGFzcyl7cmV0dXJuIHB0cn1pZih1bmRlZmluZWQ9PT1kZXNpcmVkQ2xhc3MuYmFzZUNsYXNzKXtyZXR1cm4gbnVsbH12YXIgcnY9ZG93bmNhc3RQb2ludGVyKHB0cixwdHJDbGFzcyxkZXNpcmVkQ2xhc3MuYmFzZUNsYXNzKTtpZihydj09PW51bGwpe3JldHVybiBudWxsfXJldHVybiBkZXNpcmVkQ2xhc3MuZG93bmNhc3QocnYpfTt2YXIgcmVnaXN0ZXJlZFBvaW50ZXJzPXt9O3ZhciBnZXRJbmhlcml0ZWRJbnN0YW5jZUNvdW50PSgpPT5PYmplY3Qua2V5cyhyZWdpc3RlcmVkSW5zdGFuY2VzKS5sZW5ndGg7dmFyIGdldExpdmVJbmhlcml0ZWRJbnN0YW5jZXM9KCk9Pnt2YXIgcnY9W107Zm9yKHZhciBrIGluIHJlZ2lzdGVyZWRJbnN0YW5jZXMpe2lmKHJlZ2lzdGVyZWRJbnN0YW5jZXMuaGFzT3duUHJvcGVydHkoaykpe3J2LnB1c2gocmVnaXN0ZXJlZEluc3RhbmNlc1trXSl9fXJldHVybiBydn07dmFyIGRlbGV0aW9uUXVldWU9W107dmFyIGZsdXNoUGVuZGluZ0RlbGV0ZXM9KCk9Pnt3aGlsZShkZWxldGlvblF1ZXVlLmxlbmd0aCl7dmFyIG9iaj1kZWxldGlvblF1ZXVlLnBvcCgpO29iai4kJC5kZWxldGVTY2hlZHVsZWQ9ZmFsc2U7b2JqWyJkZWxldGUiXSgpfX07dmFyIGRlbGF5RnVuY3Rpb247dmFyIHNldERlbGF5RnVuY3Rpb249Zm49PntkZWxheUZ1bmN0aW9uPWZuO2lmKGRlbGV0aW9uUXVldWUubGVuZ3RoJiZkZWxheUZ1bmN0aW9uKXtkZWxheUZ1bmN0aW9uKGZsdXNoUGVuZGluZ0RlbGV0ZXMpfX07dmFyIGluaXRfZW1iaW5kPSgpPT57TW9kdWxlWyJnZXRJbmhlcml0ZWRJbnN0YW5jZUNvdW50Il09Z2V0SW5oZXJpdGVkSW5zdGFuY2VDb3VudDtNb2R1bGVbImdldExpdmVJbmhlcml0ZWRJbnN0YW5jZXMiXT1nZXRMaXZlSW5oZXJpdGVkSW5zdGFuY2VzO01vZHVsZVsiZmx1c2hQZW5kaW5nRGVsZXRlcyJdPWZsdXNoUGVuZGluZ0RlbGV0ZXM7TW9kdWxlWyJzZXREZWxheUZ1bmN0aW9uIl09c2V0RGVsYXlGdW5jdGlvbn07dmFyIHJlZ2lzdGVyZWRJbnN0YW5jZXM9e307dmFyIGdldEJhc2VzdFBvaW50ZXI9KGNsYXNzXyxwdHIpPT57aWYocHRyPT09dW5kZWZpbmVkKXt0aHJvd0JpbmRpbmdFcnJvcigicHRyIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkIil9d2hpbGUoY2xhc3NfLmJhc2VDbGFzcyl7cHRyPWNsYXNzXy51cGNhc3QocHRyKTtjbGFzc189Y2xhc3NfLmJhc2VDbGFzc31yZXR1cm4gcHRyfTt2YXIgZ2V0SW5oZXJpdGVkSW5zdGFuY2U9KGNsYXNzXyxwdHIpPT57cHRyPWdldEJhc2VzdFBvaW50ZXIoY2xhc3NfLHB0cik7cmV0dXJuIHJlZ2lzdGVyZWRJbnN0YW5jZXNbcHRyXX07dmFyIG1ha2VDbGFzc0hhbmRsZT0ocHJvdG90eXBlLHJlY29yZCk9PntpZighcmVjb3JkLnB0clR5cGV8fCFyZWNvcmQucHRyKXt0aHJvd0ludGVybmFsRXJyb3IoIm1ha2VDbGFzc0hhbmRsZSByZXF1aXJlcyBwdHIgYW5kIHB0clR5cGUiKX12YXIgaGFzU21hcnRQdHJUeXBlPSEhcmVjb3JkLnNtYXJ0UHRyVHlwZTt2YXIgaGFzU21hcnRQdHI9ISFyZWNvcmQuc21hcnRQdHI7aWYoaGFzU21hcnRQdHJUeXBlIT09aGFzU21hcnRQdHIpe3Rocm93SW50ZXJuYWxFcnJvcigiQm90aCBzbWFydFB0clR5cGUgYW5kIHNtYXJ0UHRyIG11c3QgYmUgc3BlY2lmaWVkIil9cmVjb3JkLmNvdW50PXt2YWx1ZToxfTtyZXR1cm4gYXR0YWNoRmluYWxpemVyKE9iamVjdC5jcmVhdGUocHJvdG90eXBlLHskJDp7dmFsdWU6cmVjb3JkfX0pKX07ZnVuY3Rpb24gUmVnaXN0ZXJlZFBvaW50ZXJfZnJvbVdpcmVUeXBlKHB0cil7dmFyIHJhd1BvaW50ZXI9dGhpcy5nZXRQb2ludGVlKHB0cik7aWYoIXJhd1BvaW50ZXIpe3RoaXMuZGVzdHJ1Y3RvcihwdHIpO3JldHVybiBudWxsfXZhciByZWdpc3RlcmVkSW5zdGFuY2U9Z2V0SW5oZXJpdGVkSW5zdGFuY2UodGhpcy5yZWdpc3RlcmVkQ2xhc3MscmF3UG9pbnRlcik7aWYodW5kZWZpbmVkIT09cmVnaXN0ZXJlZEluc3RhbmNlKXtpZigwPT09cmVnaXN0ZXJlZEluc3RhbmNlLiQkLmNvdW50LnZhbHVlKXtyZWdpc3RlcmVkSW5zdGFuY2UuJCQucHRyPXJhd1BvaW50ZXI7cmVnaXN0ZXJlZEluc3RhbmNlLiQkLnNtYXJ0UHRyPXB0cjtyZXR1cm4gcmVnaXN0ZXJlZEluc3RhbmNlWyJjbG9uZSJdKCl9ZWxzZXt2YXIgcnY9cmVnaXN0ZXJlZEluc3RhbmNlWyJjbG9uZSJdKCk7dGhpcy5kZXN0cnVjdG9yKHB0cik7cmV0dXJuIHJ2fX1mdW5jdGlvbiBtYWtlRGVmYXVsdEhhbmRsZSgpe2lmKHRoaXMuaXNTbWFydFBvaW50ZXIpe3JldHVybiBtYWtlQ2xhc3NIYW5kbGUodGhpcy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dGhpcy5wb2ludGVlVHlwZSxwdHI6cmF3UG9pbnRlcixzbWFydFB0clR5cGU6dGhpcyxzbWFydFB0cjpwdHJ9KX1lbHNle3JldHVybiBtYWtlQ2xhc3NIYW5kbGUodGhpcy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dGhpcyxwdHI6cHRyfSl9fXZhciBhY3R1YWxUeXBlPXRoaXMucmVnaXN0ZXJlZENsYXNzLmdldEFjdHVhbFR5cGUocmF3UG9pbnRlcik7dmFyIHJlZ2lzdGVyZWRQb2ludGVyUmVjb3JkPXJlZ2lzdGVyZWRQb2ludGVyc1thY3R1YWxUeXBlXTtpZighcmVnaXN0ZXJlZFBvaW50ZXJSZWNvcmQpe3JldHVybiBtYWtlRGVmYXVsdEhhbmRsZS5jYWxsKHRoaXMpfXZhciB0b1R5cGU7aWYodGhpcy5pc0NvbnN0KXt0b1R5cGU9cmVnaXN0ZXJlZFBvaW50ZXJSZWNvcmQuY29uc3RQb2ludGVyVHlwZX1lbHNle3RvVHlwZT1yZWdpc3RlcmVkUG9pbnRlclJlY29yZC5wb2ludGVyVHlwZX12YXIgZHA9ZG93bmNhc3RQb2ludGVyKHJhd1BvaW50ZXIsdGhpcy5yZWdpc3RlcmVkQ2xhc3MsdG9UeXBlLnJlZ2lzdGVyZWRDbGFzcyk7aWYoZHA9PT1udWxsKXtyZXR1cm4gbWFrZURlZmF1bHRIYW5kbGUuY2FsbCh0aGlzKX1pZih0aGlzLmlzU21hcnRQb2ludGVyKXtyZXR1cm4gbWFrZUNsYXNzSGFuZGxlKHRvVHlwZS5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dG9UeXBlLHB0cjpkcCxzbWFydFB0clR5cGU6dGhpcyxzbWFydFB0cjpwdHJ9KX1lbHNle3JldHVybiBtYWtlQ2xhc3NIYW5kbGUodG9UeXBlLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTp0b1R5cGUscHRyOmRwfSl9fXZhciBhdHRhY2hGaW5hbGl6ZXI9aGFuZGxlPT57aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnkpe2F0dGFjaEZpbmFsaXplcj1oYW5kbGU9PmhhbmRsZTtyZXR1cm4gaGFuZGxlfWZpbmFsaXphdGlvblJlZ2lzdHJ5PW5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShpbmZvPT57cmVsZWFzZUNsYXNzSGFuZGxlKGluZm8uJCQpfSk7YXR0YWNoRmluYWxpemVyPWhhbmRsZT0+e3ZhciAkJD1oYW5kbGUuJCQ7dmFyIGhhc1NtYXJ0UHRyPSEhJCQuc21hcnRQdHI7aWYoaGFzU21hcnRQdHIpe3ZhciBpbmZvPXskJDokJH07ZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIoaGFuZGxlLGluZm8saGFuZGxlKX1yZXR1cm4gaGFuZGxlfTtkZXRhY2hGaW5hbGl6ZXI9aGFuZGxlPT5maW5hbGl6YXRpb25SZWdpc3RyeS51bnJlZ2lzdGVyKGhhbmRsZSk7cmV0dXJuIGF0dGFjaEZpbmFsaXplcihoYW5kbGUpfTt2YXIgaW5pdF9DbGFzc0hhbmRsZT0oKT0+e09iamVjdC5hc3NpZ24oQ2xhc3NIYW5kbGUucHJvdG90eXBlLHsiaXNBbGlhc09mIihvdGhlcil7aWYoISh0aGlzIGluc3RhbmNlb2YgQ2xhc3NIYW5kbGUpKXtyZXR1cm4gZmFsc2V9aWYoIShvdGhlciBpbnN0YW5jZW9mIENsYXNzSGFuZGxlKSl7cmV0dXJuIGZhbHNlfXZhciBsZWZ0Q2xhc3M9dGhpcy4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzczt2YXIgbGVmdD10aGlzLiQkLnB0cjtvdGhlci4kJD1vdGhlci4kJDt2YXIgcmlnaHRDbGFzcz1vdGhlci4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzczt2YXIgcmlnaHQ9b3RoZXIuJCQucHRyO3doaWxlKGxlZnRDbGFzcy5iYXNlQ2xhc3Mpe2xlZnQ9bGVmdENsYXNzLnVwY2FzdChsZWZ0KTtsZWZ0Q2xhc3M9bGVmdENsYXNzLmJhc2VDbGFzc313aGlsZShyaWdodENsYXNzLmJhc2VDbGFzcyl7cmlnaHQ9cmlnaHRDbGFzcy51cGNhc3QocmlnaHQpO3JpZ2h0Q2xhc3M9cmlnaHRDbGFzcy5iYXNlQ2xhc3N9cmV0dXJuIGxlZnRDbGFzcz09PXJpZ2h0Q2xhc3MmJmxlZnQ9PT1yaWdodH0sImNsb25lIigpe2lmKCF0aGlzLiQkLnB0cil7dGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkKHRoaXMpfWlmKHRoaXMuJCQucHJlc2VydmVQb2ludGVyT25EZWxldGUpe3RoaXMuJCQuY291bnQudmFsdWUrPTE7cmV0dXJuIHRoaXN9ZWxzZXt2YXIgY2xvbmU9YXR0YWNoRmluYWxpemVyKE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLHskJDp7dmFsdWU6c2hhbGxvd0NvcHlJbnRlcm5hbFBvaW50ZXIodGhpcy4kJCl9fSkpO2Nsb25lLiQkLmNvdW50LnZhbHVlKz0xO2Nsb25lLiQkLmRlbGV0ZVNjaGVkdWxlZD1mYWxzZTtyZXR1cm4gY2xvbmV9fSwiZGVsZXRlIigpe2lmKCF0aGlzLiQkLnB0cil7dGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkKHRoaXMpfWlmKHRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkJiYhdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSl7dGhyb3dCaW5kaW5nRXJyb3IoIk9iamVjdCBhbHJlYWR5IHNjaGVkdWxlZCBmb3IgZGVsZXRpb24iKX1kZXRhY2hGaW5hbGl6ZXIodGhpcyk7cmVsZWFzZUNsYXNzSGFuZGxlKHRoaXMuJCQpO2lmKCF0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlKXt0aGlzLiQkLnNtYXJ0UHRyPXVuZGVmaW5lZDt0aGlzLiQkLnB0cj11bmRlZmluZWR9fSwiaXNEZWxldGVkIigpe3JldHVybiF0aGlzLiQkLnB0cn0sImRlbGV0ZUxhdGVyIigpe2lmKCF0aGlzLiQkLnB0cil7dGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkKHRoaXMpfWlmKHRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkJiYhdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSl7dGhyb3dCaW5kaW5nRXJyb3IoIk9iamVjdCBhbHJlYWR5IHNjaGVkdWxlZCBmb3IgZGVsZXRpb24iKX1kZWxldGlvblF1ZXVlLnB1c2godGhpcyk7aWYoZGVsZXRpb25RdWV1ZS5sZW5ndGg9PT0xJiZkZWxheUZ1bmN0aW9uKXtkZWxheUZ1bmN0aW9uKGZsdXNoUGVuZGluZ0RlbGV0ZXMpfXRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkPXRydWU7cmV0dXJuIHRoaXN9fSl9O2Z1bmN0aW9uIENsYXNzSGFuZGxlKCl7fXZhciBjcmVhdGVOYW1lZEZ1bmN0aW9uPShuYW1lLGJvZHkpPT5PYmplY3QuZGVmaW5lUHJvcGVydHkoYm9keSwibmFtZSIse3ZhbHVlOm5hbWV9KTt2YXIgZW5zdXJlT3ZlcmxvYWRUYWJsZT0ocHJvdG8sbWV0aG9kTmFtZSxodW1hbk5hbWUpPT57aWYodW5kZWZpbmVkPT09cHJvdG9bbWV0aG9kTmFtZV0ub3ZlcmxvYWRUYWJsZSl7dmFyIHByZXZGdW5jPXByb3RvW21ldGhvZE5hbWVdO3Byb3RvW21ldGhvZE5hbWVdPWZ1bmN0aW9uKCl7aWYoIXByb3RvW21ldGhvZE5hbWVdLm92ZXJsb2FkVGFibGUuaGFzT3duUHJvcGVydHkoYXJndW1lbnRzLmxlbmd0aCkpe3Rocm93QmluZGluZ0Vycm9yKGBGdW5jdGlvbiAnJHtodW1hbk5hbWV9JyBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgKCR7YXJndW1lbnRzLmxlbmd0aH0pIC0gZXhwZWN0cyBvbmUgb2YgKCR7cHJvdG9bbWV0aG9kTmFtZV0ub3ZlcmxvYWRUYWJsZX0pIWApfXJldHVybiBwcm90b1ttZXRob2ROYW1lXS5vdmVybG9hZFRhYmxlW2FyZ3VtZW50cy5sZW5ndGhdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07cHJvdG9bbWV0aG9kTmFtZV0ub3ZlcmxvYWRUYWJsZT1bXTtwcm90b1ttZXRob2ROYW1lXS5vdmVybG9hZFRhYmxlW3ByZXZGdW5jLmFyZ0NvdW50XT1wcmV2RnVuY319O3ZhciBleHBvc2VQdWJsaWNTeW1ib2w9KG5hbWUsdmFsdWUsbnVtQXJndW1lbnRzKT0+e2lmKE1vZHVsZS5oYXNPd25Qcm9wZXJ0eShuYW1lKSl7aWYodW5kZWZpbmVkPT09bnVtQXJndW1lbnRzfHx1bmRlZmluZWQhPT1Nb2R1bGVbbmFtZV0ub3ZlcmxvYWRUYWJsZSYmdW5kZWZpbmVkIT09TW9kdWxlW25hbWVdLm92ZXJsb2FkVGFibGVbbnVtQXJndW1lbnRzXSl7dGhyb3dCaW5kaW5nRXJyb3IoYENhbm5vdCByZWdpc3RlciBwdWJsaWMgbmFtZSAnJHtuYW1lfScgdHdpY2VgKX1lbnN1cmVPdmVybG9hZFRhYmxlKE1vZHVsZSxuYW1lLG5hbWUpO2lmKE1vZHVsZS5oYXNPd25Qcm9wZXJ0eShudW1Bcmd1bWVudHMpKXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IHJlZ2lzdGVyIG11bHRpcGxlIG92ZXJsb2FkcyBvZiBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGFyZ3VtZW50cyAoJHtudW1Bcmd1bWVudHN9KSFgKX1Nb2R1bGVbbmFtZV0ub3ZlcmxvYWRUYWJsZVtudW1Bcmd1bWVudHNdPXZhbHVlfWVsc2V7TW9kdWxlW25hbWVdPXZhbHVlO2lmKHVuZGVmaW5lZCE9PW51bUFyZ3VtZW50cyl7TW9kdWxlW25hbWVdLm51bUFyZ3VtZW50cz1udW1Bcmd1bWVudHN9fX07dmFyIGNoYXJfMD00ODt2YXIgY2hhcl85PTU3O3ZhciBtYWtlTGVnYWxGdW5jdGlvbk5hbWU9bmFtZT0+e2lmKHVuZGVmaW5lZD09PW5hbWUpe3JldHVybiJfdW5rbm93biJ9bmFtZT1uYW1lLnJlcGxhY2UoL1teYS16QS1aMC05X10vZywiJCIpO3ZhciBmPW5hbWUuY2hhckNvZGVBdCgwKTtpZihmPj1jaGFyXzAmJmY8PWNoYXJfOSl7cmV0dXJuYF8ke25hbWV9YH1yZXR1cm4gbmFtZX07ZnVuY3Rpb24gUmVnaXN0ZXJlZENsYXNzKG5hbWUsY29uc3RydWN0b3IsaW5zdGFuY2VQcm90b3R5cGUscmF3RGVzdHJ1Y3RvcixiYXNlQ2xhc3MsZ2V0QWN0dWFsVHlwZSx1cGNhc3QsZG93bmNhc3Qpe3RoaXMubmFtZT1uYW1lO3RoaXMuY29uc3RydWN0b3I9Y29uc3RydWN0b3I7dGhpcy5pbnN0YW5jZVByb3RvdHlwZT1pbnN0YW5jZVByb3RvdHlwZTt0aGlzLnJhd0Rlc3RydWN0b3I9cmF3RGVzdHJ1Y3Rvcjt0aGlzLmJhc2VDbGFzcz1iYXNlQ2xhc3M7dGhpcy5nZXRBY3R1YWxUeXBlPWdldEFjdHVhbFR5cGU7dGhpcy51cGNhc3Q9dXBjYXN0O3RoaXMuZG93bmNhc3Q9ZG93bmNhc3Q7dGhpcy5wdXJlVmlydHVhbEZ1bmN0aW9ucz1bXX12YXIgdXBjYXN0UG9pbnRlcj0ocHRyLHB0ckNsYXNzLGRlc2lyZWRDbGFzcyk9Pnt3aGlsZShwdHJDbGFzcyE9PWRlc2lyZWRDbGFzcyl7aWYoIXB0ckNsYXNzLnVwY2FzdCl7dGhyb3dCaW5kaW5nRXJyb3IoYEV4cGVjdGVkIG51bGwgb3IgaW5zdGFuY2Ugb2YgJHtkZXNpcmVkQ2xhc3MubmFtZX0sIGdvdCBhbiBpbnN0YW5jZSBvZiAke3B0ckNsYXNzLm5hbWV9YCl9cHRyPXB0ckNsYXNzLnVwY2FzdChwdHIpO3B0ckNsYXNzPXB0ckNsYXNzLmJhc2VDbGFzc31yZXR1cm4gcHRyfTtmdW5jdGlvbiBjb25zdE5vU21hcnRQdHJSYXdQb2ludGVyVG9XaXJlVHlwZShkZXN0cnVjdG9ycyxoYW5kbGUpe2lmKGhhbmRsZT09PW51bGwpe2lmKHRoaXMuaXNSZWZlcmVuY2Upe3Rocm93QmluZGluZ0Vycm9yKGBudWxsIGlzIG5vdCBhIHZhbGlkICR7dGhpcy5uYW1lfWApfXJldHVybiAwfWlmKCFoYW5kbGUuJCQpe3Rocm93QmluZGluZ0Vycm9yKGBDYW5ub3QgcGFzcyAiJHtlbWJpbmRSZXByKGhhbmRsZSl9IiBhcyBhICR7dGhpcy5uYW1lfWApfWlmKCFoYW5kbGUuJCQucHRyKXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IHBhc3MgZGVsZXRlZCBvYmplY3QgYXMgYSBwb2ludGVyIG9mIHR5cGUgJHt0aGlzLm5hbWV9YCl9dmFyIGhhbmRsZUNsYXNzPWhhbmRsZS4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzczt2YXIgcHRyPXVwY2FzdFBvaW50ZXIoaGFuZGxlLiQkLnB0cixoYW5kbGVDbGFzcyx0aGlzLnJlZ2lzdGVyZWRDbGFzcyk7cmV0dXJuIHB0cn1mdW5jdGlvbiBnZW5lcmljUG9pbnRlclRvV2lyZVR5cGUoZGVzdHJ1Y3RvcnMsaGFuZGxlKXt2YXIgcHRyO2lmKGhhbmRsZT09PW51bGwpe2lmKHRoaXMuaXNSZWZlcmVuY2Upe3Rocm93QmluZGluZ0Vycm9yKGBudWxsIGlzIG5vdCBhIHZhbGlkICR7dGhpcy5uYW1lfWApfWlmKHRoaXMuaXNTbWFydFBvaW50ZXIpe3B0cj10aGlzLnJhd0NvbnN0cnVjdG9yKCk7aWYoZGVzdHJ1Y3RvcnMhPT1udWxsKXtkZXN0cnVjdG9ycy5wdXNoKHRoaXMucmF3RGVzdHJ1Y3RvcixwdHIpfXJldHVybiBwdHJ9ZWxzZXtyZXR1cm4gMH19aWYoIWhhbmRsZS4kJCl7dGhyb3dCaW5kaW5nRXJyb3IoYENhbm5vdCBwYXNzICIke2VtYmluZFJlcHIoaGFuZGxlKX0iIGFzIGEgJHt0aGlzLm5hbWV9YCl9aWYoIWhhbmRsZS4kJC5wdHIpe3Rocm93QmluZGluZ0Vycm9yKGBDYW5ub3QgcGFzcyBkZWxldGVkIG9iamVjdCBhcyBhIHBvaW50ZXIgb2YgdHlwZSAke3RoaXMubmFtZX1gKX1pZighdGhpcy5pc0NvbnN0JiZoYW5kbGUuJCQucHRyVHlwZS5pc0NvbnN0KXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAke2hhbmRsZS4kJC5zbWFydFB0clR5cGU/aGFuZGxlLiQkLnNtYXJ0UHRyVHlwZS5uYW1lOmhhbmRsZS4kJC5wdHJUeXBlLm5hbWV9IHRvIHBhcmFtZXRlciB0eXBlICR7dGhpcy5uYW1lfWApfXZhciBoYW5kbGVDbGFzcz1oYW5kbGUuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3M7cHRyPXVwY2FzdFBvaW50ZXIoaGFuZGxlLiQkLnB0cixoYW5kbGVDbGFzcyx0aGlzLnJlZ2lzdGVyZWRDbGFzcyk7aWYodGhpcy5pc1NtYXJ0UG9pbnRlcil7aWYodW5kZWZpbmVkPT09aGFuZGxlLiQkLnNtYXJ0UHRyKXt0aHJvd0JpbmRpbmdFcnJvcigiUGFzc2luZyByYXcgcG9pbnRlciB0byBzbWFydCBwb2ludGVyIGlzIGlsbGVnYWwiKX1zd2l0Y2godGhpcy5zaGFyaW5nUG9saWN5KXtjYXNlIDA6aWYoaGFuZGxlLiQkLnNtYXJ0UHRyVHlwZT09PXRoaXMpe3B0cj1oYW5kbGUuJCQuc21hcnRQdHJ9ZWxzZXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAke2hhbmRsZS4kJC5zbWFydFB0clR5cGU/aGFuZGxlLiQkLnNtYXJ0UHRyVHlwZS5uYW1lOmhhbmRsZS4kJC5wdHJUeXBlLm5hbWV9IHRvIHBhcmFtZXRlciB0eXBlICR7dGhpcy5uYW1lfWApfWJyZWFrO2Nhc2UgMTpwdHI9aGFuZGxlLiQkLnNtYXJ0UHRyO2JyZWFrO2Nhc2UgMjppZihoYW5kbGUuJCQuc21hcnRQdHJUeXBlPT09dGhpcyl7cHRyPWhhbmRsZS4kJC5zbWFydFB0cn1lbHNle3ZhciBjbG9uZWRIYW5kbGU9aGFuZGxlWyJjbG9uZSJdKCk7cHRyPXRoaXMucmF3U2hhcmUocHRyLEVtdmFsLnRvSGFuZGxlKCgpPT5jbG9uZWRIYW5kbGVbImRlbGV0ZSJdKCkpKTtpZihkZXN0cnVjdG9ycyE9PW51bGwpe2Rlc3RydWN0b3JzLnB1c2godGhpcy5yYXdEZXN0cnVjdG9yLHB0cil9fWJyZWFrO2RlZmF1bHQ6dGhyb3dCaW5kaW5nRXJyb3IoIlVuc3VwcG9ydGluZyBzaGFyaW5nIHBvbGljeSIpfX1yZXR1cm4gcHRyfWZ1bmN0aW9uIG5vbkNvbnN0Tm9TbWFydFB0clJhd1BvaW50ZXJUb1dpcmVUeXBlKGRlc3RydWN0b3JzLGhhbmRsZSl7aWYoaGFuZGxlPT09bnVsbCl7aWYodGhpcy5pc1JlZmVyZW5jZSl7dGhyb3dCaW5kaW5nRXJyb3IoYG51bGwgaXMgbm90IGEgdmFsaWQgJHt0aGlzLm5hbWV9YCl9cmV0dXJuIDB9aWYoIWhhbmRsZS4kJCl7dGhyb3dCaW5kaW5nRXJyb3IoYENhbm5vdCBwYXNzICIke2VtYmluZFJlcHIoaGFuZGxlKX0iIGFzIGEgJHt0aGlzLm5hbWV9YCl9aWYoIWhhbmRsZS4kJC5wdHIpe3Rocm93QmluZGluZ0Vycm9yKGBDYW5ub3QgcGFzcyBkZWxldGVkIG9iamVjdCBhcyBhIHBvaW50ZXIgb2YgdHlwZSAke3RoaXMubmFtZX1gKX1pZihoYW5kbGUuJCQucHRyVHlwZS5pc0NvbnN0KXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAke2hhbmRsZS4kJC5wdHJUeXBlLm5hbWV9IHRvIHBhcmFtZXRlciB0eXBlICR7dGhpcy5uYW1lfWApfXZhciBoYW5kbGVDbGFzcz1oYW5kbGUuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3M7dmFyIHB0cj11cGNhc3RQb2ludGVyKGhhbmRsZS4kJC5wdHIsaGFuZGxlQ2xhc3MsdGhpcy5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiBwdHJ9ZnVuY3Rpb24gcmVhZFBvaW50ZXIocG9pbnRlcil7cmV0dXJuIHRoaXNbImZyb21XaXJlVHlwZSJdKEhFQVBVMzJbcG9pbnRlcj4+Ml0pfXZhciBpbml0X1JlZ2lzdGVyZWRQb2ludGVyPSgpPT57T2JqZWN0LmFzc2lnbihSZWdpc3RlcmVkUG9pbnRlci5wcm90b3R5cGUse2dldFBvaW50ZWUocHRyKXtpZih0aGlzLnJhd0dldFBvaW50ZWUpe3B0cj10aGlzLnJhd0dldFBvaW50ZWUocHRyKX1yZXR1cm4gcHRyfSxkZXN0cnVjdG9yKHB0cil7aWYodGhpcy5yYXdEZXN0cnVjdG9yKXt0aGlzLnJhd0Rlc3RydWN0b3IocHRyKX19LCJhcmdQYWNrQWR2YW5jZSI6R2VuZXJpY1dpcmVUeXBlU2l6ZSwicmVhZFZhbHVlRnJvbVBvaW50ZXIiOnJlYWRQb2ludGVyLCJkZWxldGVPYmplY3QiKGhhbmRsZSl7aWYoaGFuZGxlIT09bnVsbCl7aGFuZGxlWyJkZWxldGUiXSgpfX0sImZyb21XaXJlVHlwZSI6UmVnaXN0ZXJlZFBvaW50ZXJfZnJvbVdpcmVUeXBlfSl9O2Z1bmN0aW9uIFJlZ2lzdGVyZWRQb2ludGVyKG5hbWUscmVnaXN0ZXJlZENsYXNzLGlzUmVmZXJlbmNlLGlzQ29uc3QsaXNTbWFydFBvaW50ZXIscG9pbnRlZVR5cGUsc2hhcmluZ1BvbGljeSxyYXdHZXRQb2ludGVlLHJhd0NvbnN0cnVjdG9yLHJhd1NoYXJlLHJhd0Rlc3RydWN0b3Ipe3RoaXMubmFtZT1uYW1lO3RoaXMucmVnaXN0ZXJlZENsYXNzPXJlZ2lzdGVyZWRDbGFzczt0aGlzLmlzUmVmZXJlbmNlPWlzUmVmZXJlbmNlO3RoaXMuaXNDb25zdD1pc0NvbnN0O3RoaXMuaXNTbWFydFBvaW50ZXI9aXNTbWFydFBvaW50ZXI7dGhpcy5wb2ludGVlVHlwZT1wb2ludGVlVHlwZTt0aGlzLnNoYXJpbmdQb2xpY3k9c2hhcmluZ1BvbGljeTt0aGlzLnJhd0dldFBvaW50ZWU9cmF3R2V0UG9pbnRlZTt0aGlzLnJhd0NvbnN0cnVjdG9yPXJhd0NvbnN0cnVjdG9yO3RoaXMucmF3U2hhcmU9cmF3U2hhcmU7dGhpcy5yYXdEZXN0cnVjdG9yPXJhd0Rlc3RydWN0b3I7aWYoIWlzU21hcnRQb2ludGVyJiZyZWdpc3RlcmVkQ2xhc3MuYmFzZUNsYXNzPT09dW5kZWZpbmVkKXtpZihpc0NvbnN0KXt0aGlzWyJ0b1dpcmVUeXBlIl09Y29uc3ROb1NtYXJ0UHRyUmF3UG9pbnRlclRvV2lyZVR5cGU7dGhpcy5kZXN0cnVjdG9yRnVuY3Rpb249bnVsbH1lbHNle3RoaXNbInRvV2lyZVR5cGUiXT1ub25Db25zdE5vU21hcnRQdHJSYXdQb2ludGVyVG9XaXJlVHlwZTt0aGlzLmRlc3RydWN0b3JGdW5jdGlvbj1udWxsfX1lbHNle3RoaXNbInRvV2lyZVR5cGUiXT1nZW5lcmljUG9pbnRlclRvV2lyZVR5cGV9fXZhciByZXBsYWNlUHVibGljU3ltYm9sPShuYW1lLHZhbHVlLG51bUFyZ3VtZW50cyk9PntpZighTW9kdWxlLmhhc093blByb3BlcnR5KG5hbWUpKXt0aHJvd0ludGVybmFsRXJyb3IoIlJlcGxhY2luZyBub25leGlzdGFudCBwdWJsaWMgc3ltYm9sIil9aWYodW5kZWZpbmVkIT09TW9kdWxlW25hbWVdLm92ZXJsb2FkVGFibGUmJnVuZGVmaW5lZCE9PW51bUFyZ3VtZW50cyl7TW9kdWxlW25hbWVdLm92ZXJsb2FkVGFibGVbbnVtQXJndW1lbnRzXT12YWx1ZX1lbHNle01vZHVsZVtuYW1lXT12YWx1ZTtNb2R1bGVbbmFtZV0uYXJnQ291bnQ9bnVtQXJndW1lbnRzfX07dmFyIGR5bkNhbGxMZWdhY3k9KHNpZyxwdHIsYXJncyk9Pnt2YXIgZj1Nb2R1bGVbImR5bkNhbGxfIitzaWddO3JldHVybiBhcmdzJiZhcmdzLmxlbmd0aD9mLmFwcGx5KG51bGwsW3B0cl0uY29uY2F0KGFyZ3MpKTpmLmNhbGwobnVsbCxwdHIpfTt2YXIgd2FzbVRhYmxlTWlycm9yPVtdO3ZhciB3YXNtVGFibGU7dmFyIGdldFdhc21UYWJsZUVudHJ5PWZ1bmNQdHI9Pnt2YXIgZnVuYz13YXNtVGFibGVNaXJyb3JbZnVuY1B0cl07aWYoIWZ1bmMpe2lmKGZ1bmNQdHI+PXdhc21UYWJsZU1pcnJvci5sZW5ndGgpd2FzbVRhYmxlTWlycm9yLmxlbmd0aD1mdW5jUHRyKzE7d2FzbVRhYmxlTWlycm9yW2Z1bmNQdHJdPWZ1bmM9d2FzbVRhYmxlLmdldChmdW5jUHRyKX1yZXR1cm4gZnVuY307dmFyIGR5bkNhbGw9KHNpZyxwdHIsYXJncyk9PntpZihzaWcuaW5jbHVkZXMoImoiKSl7cmV0dXJuIGR5bkNhbGxMZWdhY3koc2lnLHB0cixhcmdzKX12YXIgcnRuPWdldFdhc21UYWJsZUVudHJ5KHB0cikuYXBwbHkobnVsbCxhcmdzKTtyZXR1cm4gcnRufTt2YXIgZ2V0RHluQ2FsbGVyPShzaWcscHRyKT0+e3ZhciBhcmdDYWNoZT1bXTtyZXR1cm4gZnVuY3Rpb24oKXthcmdDYWNoZS5sZW5ndGg9MDtPYmplY3QuYXNzaWduKGFyZ0NhY2hlLGFyZ3VtZW50cyk7cmV0dXJuIGR5bkNhbGwoc2lnLHB0cixhcmdDYWNoZSl9fTt2YXIgZW1iaW5kX19yZXF1aXJlRnVuY3Rpb249KHNpZ25hdHVyZSxyYXdGdW5jdGlvbik9PntzaWduYXR1cmU9cmVhZExhdGluMVN0cmluZyhzaWduYXR1cmUpO2Z1bmN0aW9uIG1ha2VEeW5DYWxsZXIoKXtpZihzaWduYXR1cmUuaW5jbHVkZXMoImoiKSl7cmV0dXJuIGdldER5bkNhbGxlcihzaWduYXR1cmUscmF3RnVuY3Rpb24pfXJldHVybiBnZXRXYXNtVGFibGVFbnRyeShyYXdGdW5jdGlvbil9dmFyIGZwPW1ha2VEeW5DYWxsZXIoKTtpZih0eXBlb2YgZnAhPSJmdW5jdGlvbiIpe3Rocm93QmluZGluZ0Vycm9yKGB1bmtub3duIGZ1bmN0aW9uIHBvaW50ZXIgd2l0aCBzaWduYXR1cmUgJHtzaWduYXR1cmV9OiAke3Jhd0Z1bmN0aW9ufWApfXJldHVybiBmcH07dmFyIGV4dGVuZEVycm9yPShiYXNlRXJyb3JUeXBlLGVycm9yTmFtZSk9Pnt2YXIgZXJyb3JDbGFzcz1jcmVhdGVOYW1lZEZ1bmN0aW9uKGVycm9yTmFtZSxmdW5jdGlvbihtZXNzYWdlKXt0aGlzLm5hbWU9ZXJyb3JOYW1lO3RoaXMubWVzc2FnZT1tZXNzYWdlO3ZhciBzdGFjaz1uZXcgRXJyb3IobWVzc2FnZSkuc3RhY2s7aWYoc3RhY2shPT11bmRlZmluZWQpe3RoaXMuc3RhY2s9dGhpcy50b1N0cmluZygpKyJcbiIrc3RhY2sucmVwbGFjZSgvXkVycm9yKDpbXlxuXSopP1xuLywiIil9fSk7ZXJyb3JDbGFzcy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShiYXNlRXJyb3JUeXBlLnByb3RvdHlwZSk7ZXJyb3JDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3I9ZXJyb3JDbGFzcztlcnJvckNsYXNzLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2lmKHRoaXMubWVzc2FnZT09PXVuZGVmaW5lZCl7cmV0dXJuIHRoaXMubmFtZX1lbHNle3JldHVybmAke3RoaXMubmFtZX06ICR7dGhpcy5tZXNzYWdlfWB9fTtyZXR1cm4gZXJyb3JDbGFzc307dmFyIFVuYm91bmRUeXBlRXJyb3I7dmFyIGdldFR5cGVOYW1lPXR5cGU9Pnt2YXIgcHRyPV9fX2dldFR5cGVOYW1lKHR5cGUpO3ZhciBydj1yZWFkTGF0aW4xU3RyaW5nKHB0cik7X2ZyZWUocHRyKTtyZXR1cm4gcnZ9O3ZhciB0aHJvd1VuYm91bmRUeXBlRXJyb3I9KG1lc3NhZ2UsdHlwZXMpPT57dmFyIHVuYm91bmRUeXBlcz1bXTt2YXIgc2Vlbj17fTtmdW5jdGlvbiB2aXNpdCh0eXBlKXtpZihzZWVuW3R5cGVdKXtyZXR1cm59aWYocmVnaXN0ZXJlZFR5cGVzW3R5cGVdKXtyZXR1cm59aWYodHlwZURlcGVuZGVuY2llc1t0eXBlXSl7dHlwZURlcGVuZGVuY2llc1t0eXBlXS5mb3JFYWNoKHZpc2l0KTtyZXR1cm59dW5ib3VuZFR5cGVzLnB1c2godHlwZSk7c2Vlblt0eXBlXT10cnVlfXR5cGVzLmZvckVhY2godmlzaXQpO3Rocm93IG5ldyBVbmJvdW5kVHlwZUVycm9yKGAke21lc3NhZ2V9OiBgK3VuYm91bmRUeXBlcy5tYXAoZ2V0VHlwZU5hbWUpLmpvaW4oWyIsICJdKSl9O3ZhciBfX2VtYmluZF9yZWdpc3Rlcl9jbGFzcz0ocmF3VHlwZSxyYXdQb2ludGVyVHlwZSxyYXdDb25zdFBvaW50ZXJUeXBlLGJhc2VDbGFzc1Jhd1R5cGUsZ2V0QWN0dWFsVHlwZVNpZ25hdHVyZSxnZXRBY3R1YWxUeXBlLHVwY2FzdFNpZ25hdHVyZSx1cGNhc3QsZG93bmNhc3RTaWduYXR1cmUsZG93bmNhc3QsbmFtZSxkZXN0cnVjdG9yU2lnbmF0dXJlLHJhd0Rlc3RydWN0b3IpPT57bmFtZT1yZWFkTGF0aW4xU3RyaW5nKG5hbWUpO2dldEFjdHVhbFR5cGU9ZW1iaW5kX19yZXF1aXJlRnVuY3Rpb24oZ2V0QWN0dWFsVHlwZVNpZ25hdHVyZSxnZXRBY3R1YWxUeXBlKTtpZih1cGNhc3Qpe3VwY2FzdD1lbWJpbmRfX3JlcXVpcmVGdW5jdGlvbih1cGNhc3RTaWduYXR1cmUsdXBjYXN0KX1pZihkb3duY2FzdCl7ZG93bmNhc3Q9ZW1iaW5kX19yZXF1aXJlRnVuY3Rpb24oZG93bmNhc3RTaWduYXR1cmUsZG93bmNhc3QpfXJhd0Rlc3RydWN0b3I9ZW1iaW5kX19yZXF1aXJlRnVuY3Rpb24oZGVzdHJ1Y3RvclNpZ25hdHVyZSxyYXdEZXN0cnVjdG9yKTt2YXIgbGVnYWxGdW5jdGlvbk5hbWU9bWFrZUxlZ2FsRnVuY3Rpb25OYW1lKG5hbWUpO2V4cG9zZVB1YmxpY1N5bWJvbChsZWdhbEZ1bmN0aW9uTmFtZSxmdW5jdGlvbigpe3Rocm93VW5ib3VuZFR5cGVFcnJvcihgQ2Fubm90IGNvbnN0cnVjdCAke25hbWV9IGR1ZSB0byB1bmJvdW5kIHR5cGVzYCxbYmFzZUNsYXNzUmF3VHlwZV0pfSk7d2hlbkRlcGVuZGVudFR5cGVzQXJlUmVzb2x2ZWQoW3Jhd1R5cGUscmF3UG9pbnRlclR5cGUscmF3Q29uc3RQb2ludGVyVHlwZV0sYmFzZUNsYXNzUmF3VHlwZT9bYmFzZUNsYXNzUmF3VHlwZV06W10sZnVuY3Rpb24oYmFzZSl7YmFzZT1iYXNlWzBdO3ZhciBiYXNlQ2xhc3M7dmFyIGJhc2VQcm90b3R5cGU7aWYoYmFzZUNsYXNzUmF3VHlwZSl7YmFzZUNsYXNzPWJhc2UucmVnaXN0ZXJlZENsYXNzO2Jhc2VQcm90b3R5cGU9YmFzZUNsYXNzLmluc3RhbmNlUHJvdG90eXBlfWVsc2V7YmFzZVByb3RvdHlwZT1DbGFzc0hhbmRsZS5wcm90b3R5cGV9dmFyIGNvbnN0cnVjdG9yPWNyZWF0ZU5hbWVkRnVuY3Rpb24obmFtZSxmdW5jdGlvbigpe2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSE9PWluc3RhbmNlUHJvdG90eXBlKXt0aHJvdyBuZXcgQmluZGluZ0Vycm9yKCJVc2UgJ25ldycgdG8gY29uc3RydWN0ICIrbmFtZSl9aWYodW5kZWZpbmVkPT09cmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHkpe3Rocm93IG5ldyBCaW5kaW5nRXJyb3IobmFtZSsiIGhhcyBubyBhY2Nlc3NpYmxlIGNvbnN0cnVjdG9yIil9dmFyIGJvZHk9cmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHlbYXJndW1lbnRzLmxlbmd0aF07aWYodW5kZWZpbmVkPT09Ym9keSl7dGhyb3cgbmV3IEJpbmRpbmdFcnJvcihgVHJpZWQgdG8gaW52b2tlIGN0b3Igb2YgJHtuYW1lfSB3aXRoIGludmFsaWQgbnVtYmVyIG9mIHBhcmFtZXRlcnMgKCR7YXJndW1lbnRzLmxlbmd0aH0pIC0gZXhwZWN0ZWQgKCR7T2JqZWN0LmtleXMocmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHkpLnRvU3RyaW5nKCl9KSBwYXJhbWV0ZXJzIGluc3RlYWQhYCl9cmV0dXJuIGJvZHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSk7dmFyIGluc3RhbmNlUHJvdG90eXBlPU9iamVjdC5jcmVhdGUoYmFzZVByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmNvbnN0cnVjdG9yfX0pO2NvbnN0cnVjdG9yLnByb3RvdHlwZT1pbnN0YW5jZVByb3RvdHlwZTt2YXIgcmVnaXN0ZXJlZENsYXNzPW5ldyBSZWdpc3RlcmVkQ2xhc3MobmFtZSxjb25zdHJ1Y3RvcixpbnN0YW5jZVByb3RvdHlwZSxyYXdEZXN0cnVjdG9yLGJhc2VDbGFzcyxnZXRBY3R1YWxUeXBlLHVwY2FzdCxkb3duY2FzdCk7aWYocmVnaXN0ZXJlZENsYXNzLmJhc2VDbGFzcyl7aWYocmVnaXN0ZXJlZENsYXNzLmJhc2VDbGFzcy5fX2Rlcml2ZWRDbGFzc2VzPT09dW5kZWZpbmVkKXtyZWdpc3RlcmVkQ2xhc3MuYmFzZUNsYXNzLl9fZGVyaXZlZENsYXNzZXM9W119cmVnaXN0ZXJlZENsYXNzLmJhc2VDbGFzcy5fX2Rlcml2ZWRDbGFzc2VzLnB1c2gocmVnaXN0ZXJlZENsYXNzKX12YXIgcmVmZXJlbmNlQ29udmVydGVyPW5ldyBSZWdpc3RlcmVkUG9pbnRlcihuYW1lLHJlZ2lzdGVyZWRDbGFzcyx0cnVlLGZhbHNlLGZhbHNlKTt2YXIgcG9pbnRlckNvbnZlcnRlcj1uZXcgUmVnaXN0ZXJlZFBvaW50ZXIobmFtZSsiKiIscmVnaXN0ZXJlZENsYXNzLGZhbHNlLGZhbHNlLGZhbHNlKTt2YXIgY29uc3RQb2ludGVyQ29udmVydGVyPW5ldyBSZWdpc3RlcmVkUG9pbnRlcihuYW1lKyIgY29uc3QqIixyZWdpc3RlcmVkQ2xhc3MsZmFsc2UsdHJ1ZSxmYWxzZSk7cmVnaXN0ZXJlZFBvaW50ZXJzW3Jhd1R5cGVdPXtwb2ludGVyVHlwZTpwb2ludGVyQ29udmVydGVyLGNvbnN0UG9pbnRlclR5cGU6Y29uc3RQb2ludGVyQ29udmVydGVyfTtyZXBsYWNlUHVibGljU3ltYm9sKGxlZ2FsRnVuY3Rpb25OYW1lLGNvbnN0cnVjdG9yKTtyZXR1cm5bcmVmZXJlbmNlQ29udmVydGVyLHBvaW50ZXJDb252ZXJ0ZXIsY29uc3RQb2ludGVyQ29udmVydGVyXX0pfTt2YXIgaGVhcDMyVmVjdG9yVG9BcnJheT0oY291bnQsZmlyc3RFbGVtZW50KT0+e3ZhciBhcnJheT1bXTtmb3IodmFyIGk9MDtpPGNvdW50O2krKyl7YXJyYXkucHVzaChIRUFQVTMyW2ZpcnN0RWxlbWVudCtpKjQ+PjJdKX1yZXR1cm4gYXJyYXl9O3ZhciBydW5EZXN0cnVjdG9ycz1kZXN0cnVjdG9ycz0+e3doaWxlKGRlc3RydWN0b3JzLmxlbmd0aCl7dmFyIHB0cj1kZXN0cnVjdG9ycy5wb3AoKTt2YXIgZGVsPWRlc3RydWN0b3JzLnBvcCgpO2RlbChwdHIpfX07ZnVuY3Rpb24gbmV3RnVuYyhjb25zdHJ1Y3Rvcixhcmd1bWVudExpc3Qpe2lmKCEoY29uc3RydWN0b3IgaW5zdGFuY2VvZiBGdW5jdGlvbikpe3Rocm93IG5ldyBUeXBlRXJyb3IoYG5ld18gY2FsbGVkIHdpdGggY29uc3RydWN0b3IgdHlwZSAke3R5cGVvZiBjb25zdHJ1Y3Rvcn0gd2hpY2ggaXMgbm90IGEgZnVuY3Rpb25gKX12YXIgZHVtbXk9Y3JlYXRlTmFtZWRGdW5jdGlvbihjb25zdHJ1Y3Rvci5uYW1lfHwidW5rbm93bkZ1bmN0aW9uTmFtZSIsZnVuY3Rpb24oKXt9KTtkdW1teS5wcm90b3R5cGU9Y29uc3RydWN0b3IucHJvdG90eXBlO3ZhciBvYmo9bmV3IGR1bW15O3ZhciByPWNvbnN0cnVjdG9yLmFwcGx5KG9iaixhcmd1bWVudExpc3QpO3JldHVybiByIGluc3RhbmNlb2YgT2JqZWN0P3I6b2JqfWZ1bmN0aW9uIGNyYWZ0SW52b2tlckZ1bmN0aW9uKGh1bWFuTmFtZSxhcmdUeXBlcyxjbGFzc1R5cGUsY3BwSW52b2tlckZ1bmMsY3BwVGFyZ2V0RnVuYyxpc0FzeW5jKXt2YXIgYXJnQ291bnQ9YXJnVHlwZXMubGVuZ3RoO2lmKGFyZ0NvdW50PDIpe3Rocm93QmluZGluZ0Vycm9yKCJhcmdUeXBlcyBhcnJheSBzaXplIG1pc21hdGNoISBNdXN0IGF0IGxlYXN0IGdldCByZXR1cm4gdmFsdWUgYW5kICd0aGlzJyB0eXBlcyEiKX12YXIgaXNDbGFzc01ldGhvZEZ1bmM9YXJnVHlwZXNbMV0hPT1udWxsJiZjbGFzc1R5cGUhPT1udWxsO3ZhciBuZWVkc0Rlc3RydWN0b3JTdGFjaz1mYWxzZTtmb3IodmFyIGk9MTtpPGFyZ1R5cGVzLmxlbmd0aDsrK2kpe2lmKGFyZ1R5cGVzW2ldIT09bnVsbCYmYXJnVHlwZXNbaV0uZGVzdHJ1Y3RvckZ1bmN0aW9uPT09dW5kZWZpbmVkKXtuZWVkc0Rlc3RydWN0b3JTdGFjaz10cnVlO2JyZWFrfX12YXIgcmV0dXJucz1hcmdUeXBlc1swXS5uYW1lIT09InZvaWQiO3ZhciBhcmdzTGlzdD0iIjt2YXIgYXJnc0xpc3RXaXJlZD0iIjtmb3IodmFyIGk9MDtpPGFyZ0NvdW50LTI7KytpKXthcmdzTGlzdCs9KGkhPT0wPyIsICI6IiIpKyJhcmciK2k7YXJnc0xpc3RXaXJlZCs9KGkhPT0wPyIsICI6IiIpKyJhcmciK2krIldpcmVkIn12YXIgaW52b2tlckZuQm9keT1gXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoJHthcmdzTGlzdH0pIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggIT09ICR7YXJnQ291bnQtMn0pIHtcbiAgICAgICAgICB0aHJvd0JpbmRpbmdFcnJvcignZnVuY3Rpb24gJHtodW1hbk5hbWV9IGNhbGxlZCB3aXRoICcgKyBhcmd1bWVudHMubGVuZ3RoICsgJyBhcmd1bWVudHMsIGV4cGVjdGVkICR7YXJnQ291bnQtMn0nKTtcbiAgICAgICAgfWA7aWYobmVlZHNEZXN0cnVjdG9yU3RhY2spe2ludm9rZXJGbkJvZHkrPSJ2YXIgZGVzdHJ1Y3RvcnMgPSBbXTtcbiJ9dmFyIGR0b3JTdGFjaz1uZWVkc0Rlc3RydWN0b3JTdGFjaz8iZGVzdHJ1Y3RvcnMiOiJudWxsIjt2YXIgYXJnczE9WyJ0aHJvd0JpbmRpbmdFcnJvciIsImludm9rZXIiLCJmbiIsInJ1bkRlc3RydWN0b3JzIiwicmV0VHlwZSIsImNsYXNzUGFyYW0iXTt2YXIgYXJnczI9W3Rocm93QmluZGluZ0Vycm9yLGNwcEludm9rZXJGdW5jLGNwcFRhcmdldEZ1bmMscnVuRGVzdHJ1Y3RvcnMsYXJnVHlwZXNbMF0sYXJnVHlwZXNbMV1dO2lmKGlzQ2xhc3NNZXRob2RGdW5jKXtpbnZva2VyRm5Cb2R5Kz0idmFyIHRoaXNXaXJlZCA9IGNsYXNzUGFyYW0udG9XaXJlVHlwZSgiK2R0b3JTdGFjaysiLCB0aGlzKTtcbiJ9Zm9yKHZhciBpPTA7aTxhcmdDb3VudC0yOysraSl7aW52b2tlckZuQm9keSs9InZhciBhcmciK2krIldpcmVkID0gYXJnVHlwZSIraSsiLnRvV2lyZVR5cGUoIitkdG9yU3RhY2srIiwgYXJnIitpKyIpOyAvLyAiK2FyZ1R5cGVzW2krMl0ubmFtZSsiXG4iO2FyZ3MxLnB1c2goImFyZ1R5cGUiK2kpO2FyZ3MyLnB1c2goYXJnVHlwZXNbaSsyXSl9aWYoaXNDbGFzc01ldGhvZEZ1bmMpe2FyZ3NMaXN0V2lyZWQ9InRoaXNXaXJlZCIrKGFyZ3NMaXN0V2lyZWQubGVuZ3RoPjA/IiwgIjoiIikrYXJnc0xpc3RXaXJlZH1pbnZva2VyRm5Cb2R5Kz0ocmV0dXJuc3x8aXNBc3luYz8idmFyIHJ2ID0gIjoiIikrImludm9rZXIoZm4iKyhhcmdzTGlzdFdpcmVkLmxlbmd0aD4wPyIsICI6IiIpK2FyZ3NMaXN0V2lyZWQrIik7XG4iO2lmKG5lZWRzRGVzdHJ1Y3RvclN0YWNrKXtpbnZva2VyRm5Cb2R5Kz0icnVuRGVzdHJ1Y3RvcnMoZGVzdHJ1Y3RvcnMpO1xuIn1lbHNle2Zvcih2YXIgaT1pc0NsYXNzTWV0aG9kRnVuYz8xOjI7aTxhcmdUeXBlcy5sZW5ndGg7KytpKXt2YXIgcGFyYW1OYW1lPWk9PT0xPyJ0aGlzV2lyZWQiOiJhcmciKyhpLTIpKyJXaXJlZCI7aWYoYXJnVHlwZXNbaV0uZGVzdHJ1Y3RvckZ1bmN0aW9uIT09bnVsbCl7aW52b2tlckZuQm9keSs9cGFyYW1OYW1lKyJfZHRvcigiK3BhcmFtTmFtZSsiKTsgLy8gIithcmdUeXBlc1tpXS5uYW1lKyJcbiI7YXJnczEucHVzaChwYXJhbU5hbWUrIl9kdG9yIik7YXJnczIucHVzaChhcmdUeXBlc1tpXS5kZXN0cnVjdG9yRnVuY3Rpb24pfX19aWYocmV0dXJucyl7aW52b2tlckZuQm9keSs9InZhciByZXQgPSByZXRUeXBlLmZyb21XaXJlVHlwZShydik7XG4iKyJyZXR1cm4gcmV0O1xuIn1lbHNle31pbnZva2VyRm5Cb2R5Kz0ifVxuIjthcmdzMS5wdXNoKGludm9rZXJGbkJvZHkpO3ZhciBpbnZva2VyRm49bmV3RnVuYyhGdW5jdGlvbixhcmdzMSkuYXBwbHkobnVsbCxhcmdzMik7cmV0dXJuIGNyZWF0ZU5hbWVkRnVuY3Rpb24oaHVtYW5OYW1lLGludm9rZXJGbil9dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2NvbnN0cnVjdG9yPShyYXdDbGFzc1R5cGUsYXJnQ291bnQscmF3QXJnVHlwZXNBZGRyLGludm9rZXJTaWduYXR1cmUsaW52b2tlcixyYXdDb25zdHJ1Y3Rvcik9Pnt2YXIgcmF3QXJnVHlwZXM9aGVhcDMyVmVjdG9yVG9BcnJheShhcmdDb3VudCxyYXdBcmdUeXBlc0FkZHIpO2ludm9rZXI9ZW1iaW5kX19yZXF1aXJlRnVuY3Rpb24oaW52b2tlclNpZ25hdHVyZSxpbnZva2VyKTt3aGVuRGVwZW5kZW50VHlwZXNBcmVSZXNvbHZlZChbXSxbcmF3Q2xhc3NUeXBlXSxmdW5jdGlvbihjbGFzc1R5cGUpe2NsYXNzVHlwZT1jbGFzc1R5cGVbMF07dmFyIGh1bWFuTmFtZT1gY29uc3RydWN0b3IgJHtjbGFzc1R5cGUubmFtZX1gO2lmKHVuZGVmaW5lZD09PWNsYXNzVHlwZS5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keSl7Y2xhc3NUeXBlLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5PVtdfWlmKHVuZGVmaW5lZCE9PWNsYXNzVHlwZS5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVthcmdDb3VudC0xXSl7dGhyb3cgbmV3IEJpbmRpbmdFcnJvcihgQ2Fubm90IHJlZ2lzdGVyIG11bHRpcGxlIGNvbnN0cnVjdG9ycyB3aXRoIGlkZW50aWNhbCBudW1iZXIgb2YgcGFyYW1ldGVycyAoJHthcmdDb3VudC0xfSkgZm9yIGNsYXNzICcke2NsYXNzVHlwZS5uYW1lfSchIE92ZXJsb2FkIHJlc29sdXRpb24gaXMgY3VycmVudGx5IG9ubHkgcGVyZm9ybWVkIHVzaW5nIHRoZSBwYXJhbWV0ZXIgY291bnQsIG5vdCBhY3R1YWwgdHlwZSBpbmZvIWApfWNsYXNzVHlwZS5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVthcmdDb3VudC0xXT0oKT0+e3Rocm93VW5ib3VuZFR5cGVFcnJvcihgQ2Fubm90IGNvbnN0cnVjdCAke2NsYXNzVHlwZS5uYW1lfSBkdWUgdG8gdW5ib3VuZCB0eXBlc2AscmF3QXJnVHlwZXMpfTt3aGVuRGVwZW5kZW50VHlwZXNBcmVSZXNvbHZlZChbXSxyYXdBcmdUeXBlcyxhcmdUeXBlcz0+e2FyZ1R5cGVzLnNwbGljZSgxLDAsbnVsbCk7Y2xhc3NUeXBlLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5W2FyZ0NvdW50LTFdPWNyYWZ0SW52b2tlckZ1bmN0aW9uKGh1bWFuTmFtZSxhcmdUeXBlcyxudWxsLGludm9rZXIscmF3Q29uc3RydWN0b3IpO3JldHVybltdfSk7cmV0dXJuW119KX07dmFyIGdldEZ1bmN0aW9uTmFtZT1zaWduYXR1cmU9PntzaWduYXR1cmU9c2lnbmF0dXJlLnRyaW0oKTtjb25zdCBhcmdzSW5kZXg9c2lnbmF0dXJlLmluZGV4T2YoIigiKTtpZihhcmdzSW5kZXghPT0tMSl7cmV0dXJuIHNpZ25hdHVyZS5zdWJzdHIoMCxhcmdzSW5kZXgpfWVsc2V7cmV0dXJuIHNpZ25hdHVyZX19O3ZhciBfX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19mdW5jdGlvbj0ocmF3Q2xhc3NUeXBlLG1ldGhvZE5hbWUsYXJnQ291bnQscmF3QXJnVHlwZXNBZGRyLGludm9rZXJTaWduYXR1cmUscmF3SW52b2tlcixjb250ZXh0LGlzUHVyZVZpcnR1YWwsaXNBc3luYyk9Pnt2YXIgcmF3QXJnVHlwZXM9aGVhcDMyVmVjdG9yVG9BcnJheShhcmdDb3VudCxyYXdBcmdUeXBlc0FkZHIpO21ldGhvZE5hbWU9cmVhZExhdGluMVN0cmluZyhtZXRob2ROYW1lKTttZXRob2ROYW1lPWdldEZ1bmN0aW9uTmFtZShtZXRob2ROYW1lKTtyYXdJbnZva2VyPWVtYmluZF9fcmVxdWlyZUZ1bmN0aW9uKGludm9rZXJTaWduYXR1cmUscmF3SW52b2tlcik7d2hlbkRlcGVuZGVudFR5cGVzQXJlUmVzb2x2ZWQoW10sW3Jhd0NsYXNzVHlwZV0sZnVuY3Rpb24oY2xhc3NUeXBlKXtjbGFzc1R5cGU9Y2xhc3NUeXBlWzBdO3ZhciBodW1hbk5hbWU9YCR7Y2xhc3NUeXBlLm5hbWV9LiR7bWV0aG9kTmFtZX1gO2lmKG1ldGhvZE5hbWUuc3RhcnRzV2l0aCgiQEAiKSl7bWV0aG9kTmFtZT1TeW1ib2xbbWV0aG9kTmFtZS5zdWJzdHJpbmcoMildfWlmKGlzUHVyZVZpcnR1YWwpe2NsYXNzVHlwZS5yZWdpc3RlcmVkQ2xhc3MucHVyZVZpcnR1YWxGdW5jdGlvbnMucHVzaChtZXRob2ROYW1lKX1mdW5jdGlvbiB1bmJvdW5kVHlwZXNIYW5kbGVyKCl7dGhyb3dVbmJvdW5kVHlwZUVycm9yKGBDYW5ub3QgY2FsbCAke2h1bWFuTmFtZX0gZHVlIHRvIHVuYm91bmQgdHlwZXNgLHJhd0FyZ1R5cGVzKX12YXIgcHJvdG89Y2xhc3NUeXBlLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZTt2YXIgbWV0aG9kPXByb3RvW21ldGhvZE5hbWVdO2lmKHVuZGVmaW5lZD09PW1ldGhvZHx8dW5kZWZpbmVkPT09bWV0aG9kLm92ZXJsb2FkVGFibGUmJm1ldGhvZC5jbGFzc05hbWUhPT1jbGFzc1R5cGUubmFtZSYmbWV0aG9kLmFyZ0NvdW50PT09YXJnQ291bnQtMil7dW5ib3VuZFR5cGVzSGFuZGxlci5hcmdDb3VudD1hcmdDb3VudC0yO3VuYm91bmRUeXBlc0hhbmRsZXIuY2xhc3NOYW1lPWNsYXNzVHlwZS5uYW1lO3Byb3RvW21ldGhvZE5hbWVdPXVuYm91bmRUeXBlc0hhbmRsZXJ9ZWxzZXtlbnN1cmVPdmVybG9hZFRhYmxlKHByb3RvLG1ldGhvZE5hbWUsaHVtYW5OYW1lKTtwcm90b1ttZXRob2ROYW1lXS5vdmVybG9hZFRhYmxlW2FyZ0NvdW50LTJdPXVuYm91bmRUeXBlc0hhbmRsZXJ9d2hlbkRlcGVuZGVudFR5cGVzQXJlUmVzb2x2ZWQoW10scmF3QXJnVHlwZXMsZnVuY3Rpb24oYXJnVHlwZXMpe3ZhciBtZW1iZXJGdW5jdGlvbj1jcmFmdEludm9rZXJGdW5jdGlvbihodW1hbk5hbWUsYXJnVHlwZXMsY2xhc3NUeXBlLHJhd0ludm9rZXIsY29udGV4dCxpc0FzeW5jKTtpZih1bmRlZmluZWQ9PT1wcm90b1ttZXRob2ROYW1lXS5vdmVybG9hZFRhYmxlKXttZW1iZXJGdW5jdGlvbi5hcmdDb3VudD1hcmdDb3VudC0yO3Byb3RvW21ldGhvZE5hbWVdPW1lbWJlckZ1bmN0aW9ufWVsc2V7cHJvdG9bbWV0aG9kTmFtZV0ub3ZlcmxvYWRUYWJsZVthcmdDb3VudC0yXT1tZW1iZXJGdW5jdGlvbn1yZXR1cm5bXX0pO3JldHVybltdfSl9O2Z1bmN0aW9uIGhhbmRsZUFsbG9jYXRvckluaXQoKXtPYmplY3QuYXNzaWduKEhhbmRsZUFsbG9jYXRvci5wcm90b3R5cGUse2dldChpZCl7cmV0dXJuIHRoaXMuYWxsb2NhdGVkW2lkXX0saGFzKGlkKXtyZXR1cm4gdGhpcy5hbGxvY2F0ZWRbaWRdIT09dW5kZWZpbmVkfSxhbGxvY2F0ZShoYW5kbGUpe3ZhciBpZD10aGlzLmZyZWVsaXN0LnBvcCgpfHx0aGlzLmFsbG9jYXRlZC5sZW5ndGg7dGhpcy5hbGxvY2F0ZWRbaWRdPWhhbmRsZTtyZXR1cm4gaWR9LGZyZWUoaWQpe3RoaXMuYWxsb2NhdGVkW2lkXT11bmRlZmluZWQ7dGhpcy5mcmVlbGlzdC5wdXNoKGlkKX19KX1mdW5jdGlvbiBIYW5kbGVBbGxvY2F0b3IoKXt0aGlzLmFsbG9jYXRlZD1bdW5kZWZpbmVkXTt0aGlzLmZyZWVsaXN0PVtdfXZhciBlbXZhbF9oYW5kbGVzPW5ldyBIYW5kbGVBbGxvY2F0b3I7dmFyIF9fZW12YWxfZGVjcmVmPWhhbmRsZT0+e2lmKGhhbmRsZT49ZW12YWxfaGFuZGxlcy5yZXNlcnZlZCYmMD09PS0tZW12YWxfaGFuZGxlcy5nZXQoaGFuZGxlKS5yZWZjb3VudCl7ZW12YWxfaGFuZGxlcy5mcmVlKGhhbmRsZSl9fTt2YXIgY291bnRfZW12YWxfaGFuZGxlcz0oKT0+e3ZhciBjb3VudD0wO2Zvcih2YXIgaT1lbXZhbF9oYW5kbGVzLnJlc2VydmVkO2k8ZW12YWxfaGFuZGxlcy5hbGxvY2F0ZWQubGVuZ3RoOysraSl7aWYoZW12YWxfaGFuZGxlcy5hbGxvY2F0ZWRbaV0hPT11bmRlZmluZWQpeysrY291bnR9fXJldHVybiBjb3VudH07dmFyIGluaXRfZW12YWw9KCk9PntlbXZhbF9oYW5kbGVzLmFsbG9jYXRlZC5wdXNoKHt2YWx1ZTp1bmRlZmluZWR9LHt2YWx1ZTpudWxsfSx7dmFsdWU6dHJ1ZX0se3ZhbHVlOmZhbHNlfSk7ZW12YWxfaGFuZGxlcy5yZXNlcnZlZD1lbXZhbF9oYW5kbGVzLmFsbG9jYXRlZC5sZW5ndGg7TW9kdWxlWyJjb3VudF9lbXZhbF9oYW5kbGVzIl09Y291bnRfZW12YWxfaGFuZGxlc307dmFyIEVtdmFsPXt0b1ZhbHVlOmhhbmRsZT0+e2lmKCFoYW5kbGUpe3Rocm93QmluZGluZ0Vycm9yKCJDYW5ub3QgdXNlIGRlbGV0ZWQgdmFsLiBoYW5kbGUgPSAiK2hhbmRsZSl9cmV0dXJuIGVtdmFsX2hhbmRsZXMuZ2V0KGhhbmRsZSkudmFsdWV9LHRvSGFuZGxlOnZhbHVlPT57c3dpdGNoKHZhbHVlKXtjYXNlIHVuZGVmaW5lZDpyZXR1cm4gMTtjYXNlIG51bGw6cmV0dXJuIDI7Y2FzZSB0cnVlOnJldHVybiAzO2Nhc2UgZmFsc2U6cmV0dXJuIDQ7ZGVmYXVsdDp7cmV0dXJuIGVtdmFsX2hhbmRsZXMuYWxsb2NhdGUoe3JlZmNvdW50OjEsdmFsdWU6dmFsdWV9KX19fX07ZnVuY3Rpb24gc2ltcGxlUmVhZFZhbHVlRnJvbVBvaW50ZXIocG9pbnRlcil7cmV0dXJuIHRoaXNbImZyb21XaXJlVHlwZSJdKEhFQVAzMltwb2ludGVyPj4yXSl9dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX2VtdmFsPShyYXdUeXBlLG5hbWUpPT57bmFtZT1yZWFkTGF0aW4xU3RyaW5nKG5hbWUpO3JlZ2lzdGVyVHlwZShyYXdUeXBlLHtuYW1lOm5hbWUsImZyb21XaXJlVHlwZSI6aGFuZGxlPT57dmFyIHJ2PUVtdmFsLnRvVmFsdWUoaGFuZGxlKTtfX2VtdmFsX2RlY3JlZihoYW5kbGUpO3JldHVybiBydn0sInRvV2lyZVR5cGUiOihkZXN0cnVjdG9ycyx2YWx1ZSk9PkVtdmFsLnRvSGFuZGxlKHZhbHVlKSwiYXJnUGFja0FkdmFuY2UiOkdlbmVyaWNXaXJlVHlwZVNpemUsInJlYWRWYWx1ZUZyb21Qb2ludGVyIjpzaW1wbGVSZWFkVmFsdWVGcm9tUG9pbnRlcixkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfTt2YXIgZW1iaW5kUmVwcj12PT57aWYodj09PW51bGwpe3JldHVybiJudWxsIn12YXIgdD10eXBlb2YgdjtpZih0PT09Im9iamVjdCJ8fHQ9PT0iYXJyYXkifHx0PT09ImZ1bmN0aW9uIil7cmV0dXJuIHYudG9TdHJpbmcoKX1lbHNle3JldHVybiIiK3Z9fTt2YXIgZmxvYXRSZWFkVmFsdWVGcm9tUG9pbnRlcj0obmFtZSx3aWR0aCk9Pntzd2l0Y2god2lkdGgpe2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24ocG9pbnRlcil7cmV0dXJuIHRoaXNbImZyb21XaXJlVHlwZSJdKEhFQVBGMzJbcG9pbnRlcj4+Ml0pfTtjYXNlIDg6cmV0dXJuIGZ1bmN0aW9uKHBvaW50ZXIpe3JldHVybiB0aGlzWyJmcm9tV2lyZVR5cGUiXShIRUFQRjY0W3BvaW50ZXI+PjNdKX07ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKGBpbnZhbGlkIGZsb2F0IHdpZHRoICgke3dpZHRofSk6ICR7bmFtZX1gKX19O3ZhciBfX2VtYmluZF9yZWdpc3Rlcl9mbG9hdD0ocmF3VHlwZSxuYW1lLHNpemUpPT57bmFtZT1yZWFkTGF0aW4xU3RyaW5nKG5hbWUpO3JlZ2lzdGVyVHlwZShyYXdUeXBlLHtuYW1lOm5hbWUsImZyb21XaXJlVHlwZSI6dmFsdWU9PnZhbHVlLCJ0b1dpcmVUeXBlIjooZGVzdHJ1Y3RvcnMsdmFsdWUpPT52YWx1ZSwiYXJnUGFja0FkdmFuY2UiOkdlbmVyaWNXaXJlVHlwZVNpemUsInJlYWRWYWx1ZUZyb21Qb2ludGVyIjpmbG9hdFJlYWRWYWx1ZUZyb21Qb2ludGVyKG5hbWUsc2l6ZSksZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX07dmFyIGludGVnZXJSZWFkVmFsdWVGcm9tUG9pbnRlcj0obmFtZSx3aWR0aCxzaWduZWQpPT57c3dpdGNoKHdpZHRoKXtjYXNlIDE6cmV0dXJuIHNpZ25lZD9wb2ludGVyPT5IRUFQOFtwb2ludGVyPj4wXTpwb2ludGVyPT5IRUFQVThbcG9pbnRlcj4+MF07Y2FzZSAyOnJldHVybiBzaWduZWQ/cG9pbnRlcj0+SEVBUDE2W3BvaW50ZXI+PjFdOnBvaW50ZXI9PkhFQVBVMTZbcG9pbnRlcj4+MV07Y2FzZSA0OnJldHVybiBzaWduZWQ/cG9pbnRlcj0+SEVBUDMyW3BvaW50ZXI+PjJdOnBvaW50ZXI9PkhFQVBVMzJbcG9pbnRlcj4+Ml07ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKGBpbnZhbGlkIGludGVnZXIgd2lkdGggKCR7d2lkdGh9KTogJHtuYW1lfWApfX07dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX2ludGVnZXI9KHByaW1pdGl2ZVR5cGUsbmFtZSxzaXplLG1pblJhbmdlLG1heFJhbmdlKT0+e25hbWU9cmVhZExhdGluMVN0cmluZyhuYW1lKTtpZihtYXhSYW5nZT09PS0xKXttYXhSYW5nZT00Mjk0OTY3Mjk1fXZhciBmcm9tV2lyZVR5cGU9dmFsdWU9PnZhbHVlO2lmKG1pblJhbmdlPT09MCl7dmFyIGJpdHNoaWZ0PTMyLTgqc2l6ZTtmcm9tV2lyZVR5cGU9dmFsdWU9PnZhbHVlPDxiaXRzaGlmdD4+PmJpdHNoaWZ0fXZhciBpc1Vuc2lnbmVkVHlwZT1uYW1lLmluY2x1ZGVzKCJ1bnNpZ25lZCIpO3ZhciBjaGVja0Fzc2VydGlvbnM9KHZhbHVlLHRvVHlwZU5hbWUpPT57fTt2YXIgdG9XaXJlVHlwZTtpZihpc1Vuc2lnbmVkVHlwZSl7dG9XaXJlVHlwZT1mdW5jdGlvbihkZXN0cnVjdG9ycyx2YWx1ZSl7Y2hlY2tBc3NlcnRpb25zKHZhbHVlLHRoaXMubmFtZSk7cmV0dXJuIHZhbHVlPj4+MH19ZWxzZXt0b1dpcmVUeXBlPWZ1bmN0aW9uKGRlc3RydWN0b3JzLHZhbHVlKXtjaGVja0Fzc2VydGlvbnModmFsdWUsdGhpcy5uYW1lKTtyZXR1cm4gdmFsdWV9fXJlZ2lzdGVyVHlwZShwcmltaXRpdmVUeXBlLHtuYW1lOm5hbWUsImZyb21XaXJlVHlwZSI6ZnJvbVdpcmVUeXBlLCJ0b1dpcmVUeXBlIjp0b1dpcmVUeXBlLCJhcmdQYWNrQWR2YW5jZSI6R2VuZXJpY1dpcmVUeXBlU2l6ZSwicmVhZFZhbHVlRnJvbVBvaW50ZXIiOmludGVnZXJSZWFkVmFsdWVGcm9tUG9pbnRlcihuYW1lLHNpemUsbWluUmFuZ2UhPT0wKSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfTt2YXIgX19lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXc9KHJhd1R5cGUsZGF0YVR5cGVJbmRleCxuYW1lKT0+e3ZhciB0eXBlTWFwcGluZz1bSW50OEFycmF5LFVpbnQ4QXJyYXksSW50MTZBcnJheSxVaW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXldO3ZhciBUQT10eXBlTWFwcGluZ1tkYXRhVHlwZUluZGV4XTtmdW5jdGlvbiBkZWNvZGVNZW1vcnlWaWV3KGhhbmRsZSl7dmFyIHNpemU9SEVBUFUzMltoYW5kbGU+PjJdO3ZhciBkYXRhPUhFQVBVMzJbaGFuZGxlKzQ+PjJdO3JldHVybiBuZXcgVEEoSEVBUDguYnVmZmVyLGRhdGEsc2l6ZSl9bmFtZT1yZWFkTGF0aW4xU3RyaW5nKG5hbWUpO3JlZ2lzdGVyVHlwZShyYXdUeXBlLHtuYW1lOm5hbWUsImZyb21XaXJlVHlwZSI6ZGVjb2RlTWVtb3J5VmlldywiYXJnUGFja0FkdmFuY2UiOkdlbmVyaWNXaXJlVHlwZVNpemUsInJlYWRWYWx1ZUZyb21Qb2ludGVyIjpkZWNvZGVNZW1vcnlWaWV3fSx7aWdub3JlRHVwbGljYXRlUmVnaXN0cmF0aW9uczp0cnVlfSl9O3ZhciBfX2VtYmluZF9yZWdpc3Rlcl9zdGRfc3RyaW5nPShyYXdUeXBlLG5hbWUpPT57bmFtZT1yZWFkTGF0aW4xU3RyaW5nKG5hbWUpO3ZhciBzdGRTdHJpbmdJc1VURjg9bmFtZT09PSJzdGQ6OnN0cmluZyI7cmVnaXN0ZXJUeXBlKHJhd1R5cGUse25hbWU6bmFtZSwiZnJvbVdpcmVUeXBlIih2YWx1ZSl7dmFyIGxlbmd0aD1IRUFQVTMyW3ZhbHVlPj4yXTt2YXIgcGF5bG9hZD12YWx1ZSs0O3ZhciBzdHI7aWYoc3RkU3RyaW5nSXNVVEY4KXt2YXIgZGVjb2RlU3RhcnRQdHI9cGF5bG9hZDtmb3IodmFyIGk9MDtpPD1sZW5ndGg7KytpKXt2YXIgY3VycmVudEJ5dGVQdHI9cGF5bG9hZCtpO2lmKGk9PWxlbmd0aHx8SEVBUFU4W2N1cnJlbnRCeXRlUHRyXT09MCl7dmFyIG1heFJlYWQ9Y3VycmVudEJ5dGVQdHItZGVjb2RlU3RhcnRQdHI7dmFyIHN0cmluZ1NlZ21lbnQ9VVRGOFRvU3RyaW5nKGRlY29kZVN0YXJ0UHRyLG1heFJlYWQpO2lmKHN0cj09PXVuZGVmaW5lZCl7c3RyPXN0cmluZ1NlZ21lbnR9ZWxzZXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoMCk7c3RyKz1zdHJpbmdTZWdtZW50fWRlY29kZVN0YXJ0UHRyPWN1cnJlbnRCeXRlUHRyKzF9fX1lbHNle3ZhciBhPW5ldyBBcnJheShsZW5ndGgpO2Zvcih2YXIgaT0wO2k8bGVuZ3RoOysraSl7YVtpXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEhFQVBVOFtwYXlsb2FkK2ldKX1zdHI9YS5qb2luKCIiKX1fZnJlZSh2YWx1ZSk7cmV0dXJuIHN0cn0sInRvV2lyZVR5cGUiKGRlc3RydWN0b3JzLHZhbHVlKXtpZih2YWx1ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXt2YWx1ZT1uZXcgVWludDhBcnJheSh2YWx1ZSl9dmFyIGxlbmd0aDt2YXIgdmFsdWVJc09mVHlwZVN0cmluZz10eXBlb2YgdmFsdWU9PSJzdHJpbmciO2lmKCEodmFsdWVJc09mVHlwZVN0cmluZ3x8dmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5fHx2YWx1ZSBpbnN0YW5jZW9mIEludDhBcnJheSkpe3Rocm93QmluZGluZ0Vycm9yKCJDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIHN0ZDo6c3RyaW5nIil9aWYoc3RkU3RyaW5nSXNVVEY4JiZ2YWx1ZUlzT2ZUeXBlU3RyaW5nKXtsZW5ndGg9bGVuZ3RoQnl0ZXNVVEY4KHZhbHVlKX1lbHNle2xlbmd0aD12YWx1ZS5sZW5ndGh9dmFyIGJhc2U9X21hbGxvYyg0K2xlbmd0aCsxKTt2YXIgcHRyPWJhc2UrNDtIRUFQVTMyW2Jhc2U+PjJdPWxlbmd0aDtpZihzdGRTdHJpbmdJc1VURjgmJnZhbHVlSXNPZlR5cGVTdHJpbmcpe3N0cmluZ1RvVVRGOCh2YWx1ZSxwdHIsbGVuZ3RoKzEpfWVsc2V7aWYodmFsdWVJc09mVHlwZVN0cmluZyl7Zm9yKHZhciBpPTA7aTxsZW5ndGg7KytpKXt2YXIgY2hhckNvZGU9dmFsdWUuY2hhckNvZGVBdChpKTtpZihjaGFyQ29kZT4yNTUpe19mcmVlKHB0cik7dGhyb3dCaW5kaW5nRXJyb3IoIlN0cmluZyBoYXMgVVRGLTE2IGNvZGUgdW5pdHMgdGhhdCBkbyBub3QgZml0IGluIDggYml0cyIpfUhFQVBVOFtwdHIraV09Y2hhckNvZGV9fWVsc2V7Zm9yKHZhciBpPTA7aTxsZW5ndGg7KytpKXtIRUFQVThbcHRyK2ldPXZhbHVlW2ldfX19aWYoZGVzdHJ1Y3RvcnMhPT1udWxsKXtkZXN0cnVjdG9ycy5wdXNoKF9mcmVlLGJhc2UpfXJldHVybiBiYXNlfSwiYXJnUGFja0FkdmFuY2UiOkdlbmVyaWNXaXJlVHlwZVNpemUsInJlYWRWYWx1ZUZyb21Qb2ludGVyIjpyZWFkUG9pbnRlcixkZXN0cnVjdG9yRnVuY3Rpb24ocHRyKXtfZnJlZShwdHIpfX0pfTt2YXIgVVRGMTZEZWNvZGVyPXR5cGVvZiBUZXh0RGVjb2RlciE9InVuZGVmaW5lZCI/bmV3IFRleHREZWNvZGVyKCJ1dGYtMTZsZSIpOnVuZGVmaW5lZDt2YXIgVVRGMTZUb1N0cmluZz0ocHRyLG1heEJ5dGVzVG9SZWFkKT0+e3ZhciBlbmRQdHI9cHRyO3ZhciBpZHg9ZW5kUHRyPj4xO3ZhciBtYXhJZHg9aWR4K21heEJ5dGVzVG9SZWFkLzI7d2hpbGUoIShpZHg+PW1heElkeCkmJkhFQVBVMTZbaWR4XSkrK2lkeDtlbmRQdHI9aWR4PDwxO2lmKGVuZFB0ci1wdHI+MzImJlVURjE2RGVjb2RlcilyZXR1cm4gVVRGMTZEZWNvZGVyLmRlY29kZShIRUFQVTguc3ViYXJyYXkocHRyLGVuZFB0cikpO3ZhciBzdHI9IiI7Zm9yKHZhciBpPTA7IShpPj1tYXhCeXRlc1RvUmVhZC8yKTsrK2kpe3ZhciBjb2RlVW5pdD1IRUFQMTZbcHRyK2kqMj4+MV07aWYoY29kZVVuaXQ9PTApYnJlYWs7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGVVbml0KX1yZXR1cm4gc3RyfTt2YXIgc3RyaW5nVG9VVEYxNj0oc3RyLG91dFB0cixtYXhCeXRlc1RvV3JpdGUpPT57aWYobWF4Qnl0ZXNUb1dyaXRlPT09dW5kZWZpbmVkKXttYXhCeXRlc1RvV3JpdGU9MjE0NzQ4MzY0N31pZihtYXhCeXRlc1RvV3JpdGU8MilyZXR1cm4gMDttYXhCeXRlc1RvV3JpdGUtPTI7dmFyIHN0YXJ0UHRyPW91dFB0cjt2YXIgbnVtQ2hhcnNUb1dyaXRlPW1heEJ5dGVzVG9Xcml0ZTxzdHIubGVuZ3RoKjI/bWF4Qnl0ZXNUb1dyaXRlLzI6c3RyLmxlbmd0aDtmb3IodmFyIGk9MDtpPG51bUNoYXJzVG9Xcml0ZTsrK2kpe3ZhciBjb2RlVW5pdD1zdHIuY2hhckNvZGVBdChpKTtIRUFQMTZbb3V0UHRyPj4xXT1jb2RlVW5pdDtvdXRQdHIrPTJ9SEVBUDE2W291dFB0cj4+MV09MDtyZXR1cm4gb3V0UHRyLXN0YXJ0UHRyfTt2YXIgbGVuZ3RoQnl0ZXNVVEYxNj1zdHI9PnN0ci5sZW5ndGgqMjt2YXIgVVRGMzJUb1N0cmluZz0ocHRyLG1heEJ5dGVzVG9SZWFkKT0+e3ZhciBpPTA7dmFyIHN0cj0iIjt3aGlsZSghKGk+PW1heEJ5dGVzVG9SZWFkLzQpKXt2YXIgdXRmMzI9SEVBUDMyW3B0citpKjQ+PjJdO2lmKHV0ZjMyPT0wKWJyZWFrOysraTtpZih1dGYzMj49NjU1MzYpe3ZhciBjaD11dGYzMi02NTUzNjtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8Y2g+PjEwLDU2MzIwfGNoJjEwMjMpfWVsc2V7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHV0ZjMyKX19cmV0dXJuIHN0cn07dmFyIHN0cmluZ1RvVVRGMzI9KHN0cixvdXRQdHIsbWF4Qnl0ZXNUb1dyaXRlKT0+e2lmKG1heEJ5dGVzVG9Xcml0ZT09PXVuZGVmaW5lZCl7bWF4Qnl0ZXNUb1dyaXRlPTIxNDc0ODM2NDd9aWYobWF4Qnl0ZXNUb1dyaXRlPDQpcmV0dXJuIDA7dmFyIHN0YXJ0UHRyPW91dFB0cjt2YXIgZW5kUHRyPXN0YXJ0UHRyK21heEJ5dGVzVG9Xcml0ZS00O2Zvcih2YXIgaT0wO2k8c3RyLmxlbmd0aDsrK2kpe3ZhciBjb2RlVW5pdD1zdHIuY2hhckNvZGVBdChpKTtpZihjb2RlVW5pdD49NTUyOTYmJmNvZGVVbml0PD01NzM0Myl7dmFyIHRyYWlsU3Vycm9nYXRlPXN0ci5jaGFyQ29kZUF0KCsraSk7Y29kZVVuaXQ9NjU1MzYrKChjb2RlVW5pdCYxMDIzKTw8MTApfHRyYWlsU3Vycm9nYXRlJjEwMjN9SEVBUDMyW291dFB0cj4+Ml09Y29kZVVuaXQ7b3V0UHRyKz00O2lmKG91dFB0cis0PmVuZFB0cilicmVha31IRUFQMzJbb3V0UHRyPj4yXT0wO3JldHVybiBvdXRQdHItc3RhcnRQdHJ9O3ZhciBsZW5ndGhCeXRlc1VURjMyPXN0cj0+e3ZhciBsZW49MDtmb3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7KytpKXt2YXIgY29kZVVuaXQ9c3RyLmNoYXJDb2RlQXQoaSk7aWYoY29kZVVuaXQ+PTU1Mjk2JiZjb2RlVW5pdDw9NTczNDMpKytpO2xlbis9NH1yZXR1cm4gbGVufTt2YXIgX19lbWJpbmRfcmVnaXN0ZXJfc3RkX3dzdHJpbmc9KHJhd1R5cGUsY2hhclNpemUsbmFtZSk9PntuYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7dmFyIGRlY29kZVN0cmluZyxlbmNvZGVTdHJpbmcsZ2V0SGVhcCxsZW5ndGhCeXRlc1VURixzaGlmdDtpZihjaGFyU2l6ZT09PTIpe2RlY29kZVN0cmluZz1VVEYxNlRvU3RyaW5nO2VuY29kZVN0cmluZz1zdHJpbmdUb1VURjE2O2xlbmd0aEJ5dGVzVVRGPWxlbmd0aEJ5dGVzVVRGMTY7Z2V0SGVhcD0oKT0+SEVBUFUxNjtzaGlmdD0xfWVsc2UgaWYoY2hhclNpemU9PT00KXtkZWNvZGVTdHJpbmc9VVRGMzJUb1N0cmluZztlbmNvZGVTdHJpbmc9c3RyaW5nVG9VVEYzMjtsZW5ndGhCeXRlc1VURj1sZW5ndGhCeXRlc1VURjMyO2dldEhlYXA9KCk9PkhFQVBVMzI7c2hpZnQ9Mn1yZWdpc3RlclR5cGUocmF3VHlwZSx7bmFtZTpuYW1lLCJmcm9tV2lyZVR5cGUiOnZhbHVlPT57dmFyIGxlbmd0aD1IRUFQVTMyW3ZhbHVlPj4yXTt2YXIgSEVBUD1nZXRIZWFwKCk7dmFyIHN0cjt2YXIgZGVjb2RlU3RhcnRQdHI9dmFsdWUrNDtmb3IodmFyIGk9MDtpPD1sZW5ndGg7KytpKXt2YXIgY3VycmVudEJ5dGVQdHI9dmFsdWUrNCtpKmNoYXJTaXplO2lmKGk9PWxlbmd0aHx8SEVBUFtjdXJyZW50Qnl0ZVB0cj4+c2hpZnRdPT0wKXt2YXIgbWF4UmVhZEJ5dGVzPWN1cnJlbnRCeXRlUHRyLWRlY29kZVN0YXJ0UHRyO3ZhciBzdHJpbmdTZWdtZW50PWRlY29kZVN0cmluZyhkZWNvZGVTdGFydFB0cixtYXhSZWFkQnl0ZXMpO2lmKHN0cj09PXVuZGVmaW5lZCl7c3RyPXN0cmluZ1NlZ21lbnR9ZWxzZXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoMCk7c3RyKz1zdHJpbmdTZWdtZW50fWRlY29kZVN0YXJ0UHRyPWN1cnJlbnRCeXRlUHRyK2NoYXJTaXplfX1fZnJlZSh2YWx1ZSk7cmV0dXJuIHN0cn0sInRvV2lyZVR5cGUiOihkZXN0cnVjdG9ycyx2YWx1ZSk9PntpZighKHR5cGVvZiB2YWx1ZT09InN0cmluZyIpKXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IHBhc3Mgbm9uLXN0cmluZyB0byBDKysgc3RyaW5nIHR5cGUgJHtuYW1lfWApfXZhciBsZW5ndGg9bGVuZ3RoQnl0ZXNVVEYodmFsdWUpO3ZhciBwdHI9X21hbGxvYyg0K2xlbmd0aCtjaGFyU2l6ZSk7SEVBUFUzMltwdHI+PjJdPWxlbmd0aD4+c2hpZnQ7ZW5jb2RlU3RyaW5nKHZhbHVlLHB0cis0LGxlbmd0aCtjaGFyU2l6ZSk7aWYoZGVzdHJ1Y3RvcnMhPT1udWxsKXtkZXN0cnVjdG9ycy5wdXNoKF9mcmVlLHB0cil9cmV0dXJuIHB0cn0sImFyZ1BhY2tBZHZhbmNlIjpHZW5lcmljV2lyZVR5cGVTaXplLCJyZWFkVmFsdWVGcm9tUG9pbnRlciI6c2ltcGxlUmVhZFZhbHVlRnJvbVBvaW50ZXIsZGVzdHJ1Y3RvckZ1bmN0aW9uKHB0cil7X2ZyZWUocHRyKX19KX07dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX3ZvaWQ9KHJhd1R5cGUsbmFtZSk9PntuYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7cmVnaXN0ZXJUeXBlKHJhd1R5cGUse2lzVm9pZDp0cnVlLG5hbWU6bmFtZSwiYXJnUGFja0FkdmFuY2UiOjAsImZyb21XaXJlVHlwZSI6KCk9PnVuZGVmaW5lZCwidG9XaXJlVHlwZSI6KGRlc3RydWN0b3JzLG8pPT51bmRlZmluZWR9KX07dmFyIG5vd0lzTW9ub3RvbmljPTE7dmFyIF9fZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYz0oKT0+bm93SXNNb25vdG9uaWM7dmFyIF9fZW12YWxfaW5jcmVmPWhhbmRsZT0+e2lmKGhhbmRsZT40KXtlbXZhbF9oYW5kbGVzLmdldChoYW5kbGUpLnJlZmNvdW50Kz0xfX07dmFyIHJlcXVpcmVSZWdpc3RlcmVkVHlwZT0ocmF3VHlwZSxodW1hbk5hbWUpPT57dmFyIGltcGw9cmVnaXN0ZXJlZFR5cGVzW3Jhd1R5cGVdO2lmKHVuZGVmaW5lZD09PWltcGwpe3Rocm93QmluZGluZ0Vycm9yKGh1bWFuTmFtZSsiIGhhcyB1bmtub3duIHR5cGUgIitnZXRUeXBlTmFtZShyYXdUeXBlKSl9cmV0dXJuIGltcGx9O3ZhciBfX2VtdmFsX3Rha2VfdmFsdWU9KHR5cGUsYXJnKT0+e3R5cGU9cmVxdWlyZVJlZ2lzdGVyZWRUeXBlKHR5cGUsIl9lbXZhbF90YWtlX3ZhbHVlIik7dmFyIHY9dHlwZVsicmVhZFZhbHVlRnJvbVBvaW50ZXIiXShhcmcpO3JldHVybiBFbXZhbC50b0hhbmRsZSh2KX07ZnVuY3Rpb24gX19tbWFwX2pzKGxlbixwcm90LGZsYWdzLGZkLG9mZnNldF9sb3csb2Zmc2V0X2hpZ2gsYWxsb2NhdGVkLGFkZHIpe3ZhciBvZmZzZXQ9Y29udmVydEkzMlBhaXJUb0k1M0NoZWNrZWQob2Zmc2V0X2xvdyxvZmZzZXRfaGlnaCk7dHJ5e2lmKGlzTmFOKG9mZnNldCkpcmV0dXJuIDYxO3ZhciBzdHJlYW09U1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKGZkKTt2YXIgcmVzPUZTLm1tYXAoc3RyZWFtLGxlbixvZmZzZXQscHJvdCxmbGFncyk7dmFyIHB0cj1yZXMucHRyO0hFQVAzMlthbGxvY2F0ZWQ+PjJdPXJlcy5hbGxvY2F0ZWQ7SEVBUFUzMlthZGRyPj4yXT1wdHI7cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuLWUuZXJybm99fWZ1bmN0aW9uIF9fbXVubWFwX2pzKGFkZHIsbGVuLHByb3QsZmxhZ3MsZmQsb2Zmc2V0X2xvdyxvZmZzZXRfaGlnaCl7dmFyIG9mZnNldD1jb252ZXJ0STMyUGFpclRvSTUzQ2hlY2tlZChvZmZzZXRfbG93LG9mZnNldF9oaWdoKTt0cnl7aWYoaXNOYU4ob2Zmc2V0KSlyZXR1cm4gNjE7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO2lmKHByb3QmMil7U1lTQ0FMTFMuZG9Nc3luYyhhZGRyLHN0cmVhbSxsZW4sZmxhZ3Msb2Zmc2V0KX1GUy5tdW5tYXAoc3RyZWFtKX1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319dmFyIF9hYm9ydD0oKT0+e2Fib3J0KCIiKX07dmFyIF9lbXNjcmlwdGVuX2RhdGVfbm93PSgpPT5EYXRlLm5vdygpO3ZhciBnZXRIZWFwTWF4PSgpPT5IRUFQVTgubGVuZ3RoO3ZhciBfZW1zY3JpcHRlbl9nZXRfaGVhcF9tYXg9KCk9PmdldEhlYXBNYXgoKTt2YXIgX2Vtc2NyaXB0ZW5fZ2V0X25vdztfZW1zY3JpcHRlbl9nZXRfbm93PSgpPT5wZXJmb3JtYW5jZS5ub3coKTt2YXIgX2Vtc2NyaXB0ZW5fbWVtY3B5X2pzPShkZXN0LHNyYyxudW0pPT5IRUFQVTguY29weVdpdGhpbihkZXN0LHNyYyxzcmMrbnVtKTt2YXIgYWJvcnRPbkNhbm5vdEdyb3dNZW1vcnk9cmVxdWVzdGVkU2l6ZT0+e2Fib3J0KCJPT00iKX07dmFyIF9lbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwPXJlcXVlc3RlZFNpemU9Pnt2YXIgb2xkU2l6ZT1IRUFQVTgubGVuZ3RoO3JlcXVlc3RlZFNpemU+Pj49MDthYm9ydE9uQ2Fubm90R3Jvd01lbW9yeShyZXF1ZXN0ZWRTaXplKX07dmFyIEVOVj17fTt2YXIgZ2V0RXhlY3V0YWJsZU5hbWU9KCk9PnRoaXNQcm9ncmFtfHwiLi90aGlzLnByb2dyYW0iO3ZhciBnZXRFbnZTdHJpbmdzPSgpPT57aWYoIWdldEVudlN0cmluZ3Muc3RyaW5ncyl7dmFyIGxhbmc9KHR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCI7dmFyIGVudj17IlVTRVIiOiJ3ZWJfdXNlciIsIkxPR05BTUUiOiJ3ZWJfdXNlciIsIlBBVEgiOiIvIiwiUFdEIjoiLyIsIkhPTUUiOiIvaG9tZS93ZWJfdXNlciIsIkxBTkciOmxhbmcsIl8iOmdldEV4ZWN1dGFibGVOYW1lKCl9O2Zvcih2YXIgeCBpbiBFTlYpe2lmKEVOVlt4XT09PXVuZGVmaW5lZClkZWxldGUgZW52W3hdO2Vsc2UgZW52W3hdPUVOVlt4XX12YXIgc3RyaW5ncz1bXTtmb3IodmFyIHggaW4gZW52KXtzdHJpbmdzLnB1c2goYCR7eH09JHtlbnZbeF19YCl9Z2V0RW52U3RyaW5ncy5zdHJpbmdzPXN0cmluZ3N9cmV0dXJuIGdldEVudlN0cmluZ3Muc3RyaW5nc307dmFyIHN0cmluZ1RvQXNjaWk9KHN0cixidWZmZXIpPT57Zm9yKHZhciBpPTA7aTxzdHIubGVuZ3RoOysraSl7SEVBUDhbYnVmZmVyKys+PjBdPXN0ci5jaGFyQ29kZUF0KGkpfUhFQVA4W2J1ZmZlcj4+MF09MH07dmFyIF9lbnZpcm9uX2dldD0oX19lbnZpcm9uLGVudmlyb25fYnVmKT0+e3ZhciBidWZTaXplPTA7Z2V0RW52U3RyaW5ncygpLmZvckVhY2goKHN0cmluZyxpKT0+e3ZhciBwdHI9ZW52aXJvbl9idWYrYnVmU2l6ZTtIRUFQVTMyW19fZW52aXJvbitpKjQ+PjJdPXB0cjtzdHJpbmdUb0FzY2lpKHN0cmluZyxwdHIpO2J1ZlNpemUrPXN0cmluZy5sZW5ndGgrMX0pO3JldHVybiAwfTt2YXIgX2Vudmlyb25fc2l6ZXNfZ2V0PShwZW52aXJvbl9jb3VudCxwZW52aXJvbl9idWZfc2l6ZSk9Pnt2YXIgc3RyaW5ncz1nZXRFbnZTdHJpbmdzKCk7SEVBUFUzMltwZW52aXJvbl9jb3VudD4+Ml09c3RyaW5ncy5sZW5ndGg7dmFyIGJ1ZlNpemU9MDtzdHJpbmdzLmZvckVhY2goc3RyaW5nPT5idWZTaXplKz1zdHJpbmcubGVuZ3RoKzEpO0hFQVBVMzJbcGVudmlyb25fYnVmX3NpemU+PjJdPWJ1ZlNpemU7cmV0dXJuIDB9O3ZhciBydW50aW1lS2VlcGFsaXZlQ291bnRlcj0wO3ZhciBrZWVwUnVudGltZUFsaXZlPSgpPT5ub0V4aXRSdW50aW1lfHxydW50aW1lS2VlcGFsaXZlQ291bnRlcj4wO3ZhciBfcHJvY19leGl0PWNvZGU9PntFWElUU1RBVFVTPWNvZGU7aWYoIWtlZXBSdW50aW1lQWxpdmUoKSl7aWYoTW9kdWxlWyJvbkV4aXQiXSlNb2R1bGVbIm9uRXhpdCJdKGNvZGUpO0FCT1JUPXRydWV9cXVpdF8oY29kZSxuZXcgRXhpdFN0YXR1cyhjb2RlKSl9O3ZhciBleGl0SlM9KHN0YXR1cyxpbXBsaWNpdCk9PntFWElUU1RBVFVTPXN0YXR1cztpZigha2VlcFJ1bnRpbWVBbGl2ZSgpKXtleGl0UnVudGltZSgpfV9wcm9jX2V4aXQoc3RhdHVzKX07dmFyIF9leGl0PWV4aXRKUztmdW5jdGlvbiBfZmRfY2xvc2UoZmQpe3RyeXt2YXIgc3RyZWFtPVNZU0NBTExTLmdldFN0cmVhbUZyb21GRChmZCk7RlMuY2xvc2Uoc3RyZWFtKTtyZXR1cm4gMH1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4gZS5lcnJub319dmFyIGRvUmVhZHY9KHN0cmVhbSxpb3YsaW92Y250LG9mZnNldCk9Pnt2YXIgcmV0PTA7Zm9yKHZhciBpPTA7aTxpb3ZjbnQ7aSsrKXt2YXIgcHRyPUhFQVBVMzJbaW92Pj4yXTt2YXIgbGVuPUhFQVBVMzJbaW92KzQ+PjJdO2lvdis9ODt2YXIgY3Vycj1GUy5yZWFkKHN0cmVhbSxIRUFQOCxwdHIsbGVuLG9mZnNldCk7aWYoY3VycjwwKXJldHVybi0xO3JldCs9Y3VycjtpZihjdXJyPGxlbilicmVhaztpZih0eXBlb2Ygb2Zmc2V0IT09InVuZGVmaW5lZCIpe29mZnNldCs9Y3Vycn19cmV0dXJuIHJldH07ZnVuY3Rpb24gX2ZkX3JlYWQoZmQsaW92LGlvdmNudCxwbnVtKXt0cnl7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO3ZhciBudW09ZG9SZWFkdihzdHJlYW0saW92LGlvdmNudCk7SEVBUFUzMltwbnVtPj4yXT1udW07cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuIGUuZXJybm99fWZ1bmN0aW9uIF9mZF9zZWVrKGZkLG9mZnNldF9sb3csb2Zmc2V0X2hpZ2gsd2hlbmNlLG5ld09mZnNldCl7dmFyIG9mZnNldD1jb252ZXJ0STMyUGFpclRvSTUzQ2hlY2tlZChvZmZzZXRfbG93LG9mZnNldF9oaWdoKTt0cnl7aWYoaXNOYU4ob2Zmc2V0KSlyZXR1cm4gNjE7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO0ZTLmxsc2VlayhzdHJlYW0sb2Zmc2V0LHdoZW5jZSk7dGVtcEk2ND1bc3RyZWFtLnBvc2l0aW9uPj4+MCwodGVtcERvdWJsZT1zdHJlYW0ucG9zaXRpb24sK01hdGguYWJzKHRlbXBEb3VibGUpPj0xP3RlbXBEb3VibGU+MD8rTWF0aC5mbG9vcih0ZW1wRG91YmxlLzQyOTQ5NjcyOTYpPj4+MDp+fitNYXRoLmNlaWwoKHRlbXBEb3VibGUtKyh+fnRlbXBEb3VibGU+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxIRUFQMzJbbmV3T2Zmc2V0Pj4yXT10ZW1wSTY0WzBdLEhFQVAzMltuZXdPZmZzZXQrND4+Ml09dGVtcEk2NFsxXTtpZihzdHJlYW0uZ2V0ZGVudHMmJm9mZnNldD09PTAmJndoZW5jZT09PTApc3RyZWFtLmdldGRlbnRzPW51bGw7cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuIGUuZXJybm99fWZ1bmN0aW9uIF9mZF9zeW5jKGZkKXt0cnl7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO2lmKHN0cmVhbS5zdHJlYW1fb3BzJiZzdHJlYW0uc3RyZWFtX29wcy5mc3luYyl7cmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLmZzeW5jKHN0cmVhbSl9cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuIGUuZXJybm99fXZhciBkb1dyaXRldj0oc3RyZWFtLGlvdixpb3ZjbnQsb2Zmc2V0KT0+e3ZhciByZXQ9MDtmb3IodmFyIGk9MDtpPGlvdmNudDtpKyspe3ZhciBwdHI9SEVBUFUzMltpb3Y+PjJdO3ZhciBsZW49SEVBUFUzMltpb3YrND4+Ml07aW92Kz04O3ZhciBjdXJyPUZTLndyaXRlKHN0cmVhbSxIRUFQOCxwdHIsbGVuLG9mZnNldCk7aWYoY3VycjwwKXJldHVybi0xO3JldCs9Y3VycjtpZih0eXBlb2Ygb2Zmc2V0IT09InVuZGVmaW5lZCIpe29mZnNldCs9Y3Vycn19cmV0dXJuIHJldH07ZnVuY3Rpb24gX2ZkX3dyaXRlKGZkLGlvdixpb3ZjbnQscG51bSl7dHJ5e3ZhciBzdHJlYW09U1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKGZkKTt2YXIgbnVtPWRvV3JpdGV2KHN0cmVhbSxpb3YsaW92Y250KTtIRUFQVTMyW3BudW0+PjJdPW51bTtyZXR1cm4gMH1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4gZS5lcnJub319dmFyIF9nZXRlbnRyb3B5PShidWZmZXIsc2l6ZSk9PntyYW5kb21GaWxsKEhFQVBVOC5zdWJhcnJheShidWZmZXIsYnVmZmVyK3NpemUpKTtyZXR1cm4gMH07dmFyIGlzTGVhcFllYXI9eWVhcj0+eWVhciU0PT09MCYmKHllYXIlMTAwIT09MHx8eWVhciU0MDA9PT0wKTt2YXIgYXJyYXlTdW09KGFycmF5LGluZGV4KT0+e3ZhciBzdW09MDtmb3IodmFyIGk9MDtpPD1pbmRleDtzdW0rPWFycmF5W2krK10pe31yZXR1cm4gc3VtfTt2YXIgTU9OVEhfREFZU19MRUFQPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07dmFyIE1PTlRIX0RBWVNfUkVHVUxBUj1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO3ZhciBhZGREYXlzPShkYXRlLGRheXMpPT57dmFyIG5ld0RhdGU9bmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO3doaWxlKGRheXM+MCl7dmFyIGxlYXA9aXNMZWFwWWVhcihuZXdEYXRlLmdldEZ1bGxZZWFyKCkpO3ZhciBjdXJyZW50TW9udGg9bmV3RGF0ZS5nZXRNb250aCgpO3ZhciBkYXlzSW5DdXJyZW50TW9udGg9KGxlYXA/TU9OVEhfREFZU19MRUFQOk1PTlRIX0RBWVNfUkVHVUxBUilbY3VycmVudE1vbnRoXTtpZihkYXlzPmRheXNJbkN1cnJlbnRNb250aC1uZXdEYXRlLmdldERhdGUoKSl7ZGF5cy09ZGF5c0luQ3VycmVudE1vbnRoLW5ld0RhdGUuZ2V0RGF0ZSgpKzE7bmV3RGF0ZS5zZXREYXRlKDEpO2lmKGN1cnJlbnRNb250aDwxMSl7bmV3RGF0ZS5zZXRNb250aChjdXJyZW50TW9udGgrMSl9ZWxzZXtuZXdEYXRlLnNldE1vbnRoKDApO25ld0RhdGUuc2V0RnVsbFllYXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpKzEpfX1lbHNle25ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKStkYXlzKTtyZXR1cm4gbmV3RGF0ZX19cmV0dXJuIG5ld0RhdGV9O3ZhciB3cml0ZUFycmF5VG9NZW1vcnk9KGFycmF5LGJ1ZmZlcik9PntIRUFQOC5zZXQoYXJyYXksYnVmZmVyKX07dmFyIF9zdHJmdGltZT0ocyxtYXhzaXplLGZvcm1hdCx0bSk9Pnt2YXIgdG1fem9uZT1IRUFQVTMyW3RtKzQwPj4yXTt2YXIgZGF0ZT17dG1fc2VjOkhFQVAzMlt0bT4+Ml0sdG1fbWluOkhFQVAzMlt0bSs0Pj4yXSx0bV9ob3VyOkhFQVAzMlt0bSs4Pj4yXSx0bV9tZGF5OkhFQVAzMlt0bSsxMj4+Ml0sdG1fbW9uOkhFQVAzMlt0bSsxNj4+Ml0sdG1feWVhcjpIRUFQMzJbdG0rMjA+PjJdLHRtX3dkYXk6SEVBUDMyW3RtKzI0Pj4yXSx0bV95ZGF5OkhFQVAzMlt0bSsyOD4+Ml0sdG1faXNkc3Q6SEVBUDMyW3RtKzMyPj4yXSx0bV9nbXRvZmY6SEVBUDMyW3RtKzM2Pj4yXSx0bV96b25lOnRtX3pvbmU/VVRGOFRvU3RyaW5nKHRtX3pvbmUpOiIifTt2YXIgcGF0dGVybj1VVEY4VG9TdHJpbmcoZm9ybWF0KTt2YXIgRVhQQU5TSU9OX1JVTEVTXzE9eyIlYyI6IiVhICViICVkICVIOiVNOiVTICVZIiwiJUQiOiIlbS8lZC8leSIsIiVGIjoiJVktJW0tJWQiLCIlaCI6IiViIiwiJXIiOiIlSTolTTolUyAlcCIsIiVSIjoiJUg6JU0iLCIlVCI6IiVIOiVNOiVTIiwiJXgiOiIlbS8lZC8leSIsIiVYIjoiJUg6JU06JVMiLCIlRWMiOiIlYyIsIiVFQyI6IiVDIiwiJUV4IjoiJW0vJWQvJXkiLCIlRVgiOiIlSDolTTolUyIsIiVFeSI6IiV5IiwiJUVZIjoiJVkiLCIlT2QiOiIlZCIsIiVPZSI6IiVlIiwiJU9IIjoiJUgiLCIlT0kiOiIlSSIsIiVPbSI6IiVtIiwiJU9NIjoiJU0iLCIlT1MiOiIlUyIsIiVPdSI6IiV1IiwiJU9VIjoiJVUiLCIlT1YiOiIlViIsIiVPdyI6IiV3IiwiJU9XIjoiJVciLCIlT3kiOiIleSJ9O2Zvcih2YXIgcnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMSl7cGF0dGVybj1wYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cChydWxlLCJnIiksRVhQQU5TSU9OX1JVTEVTXzFbcnVsZV0pfXZhciBXRUVLREFZUz1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il07dmFyIE1PTlRIUz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07ZnVuY3Rpb24gbGVhZGluZ1NvbWV0aGluZyh2YWx1ZSxkaWdpdHMsY2hhcmFjdGVyKXt2YXIgc3RyPXR5cGVvZiB2YWx1ZT09Im51bWJlciI/dmFsdWUudG9TdHJpbmcoKTp2YWx1ZXx8IiI7d2hpbGUoc3RyLmxlbmd0aDxkaWdpdHMpe3N0cj1jaGFyYWN0ZXJbMF0rc3RyfXJldHVybiBzdHJ9ZnVuY3Rpb24gbGVhZGluZ051bGxzKHZhbHVlLGRpZ2l0cyl7cmV0dXJuIGxlYWRpbmdTb21ldGhpbmcodmFsdWUsZGlnaXRzLCIwIil9ZnVuY3Rpb24gY29tcGFyZUJ5RGF5KGRhdGUxLGRhdGUyKXtmdW5jdGlvbiBzZ24odmFsdWUpe3JldHVybiB2YWx1ZTwwPy0xOnZhbHVlPjA/MTowfXZhciBjb21wYXJlO2lmKChjb21wYXJlPXNnbihkYXRlMS5nZXRGdWxsWWVhcigpLWRhdGUyLmdldEZ1bGxZZWFyKCkpKT09PTApe2lmKChjb21wYXJlPXNnbihkYXRlMS5nZXRNb250aCgpLWRhdGUyLmdldE1vbnRoKCkpKT09PTApe2NvbXBhcmU9c2duKGRhdGUxLmdldERhdGUoKS1kYXRlMi5nZXREYXRlKCkpfX1yZXR1cm4gY29tcGFyZX1mdW5jdGlvbiBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoKXtzd2l0Y2goamFuRm91cnRoLmdldERheSgpKXtjYXNlIDA6cmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsMTEsMjkpO2Nhc2UgMTpyZXR1cm4gamFuRm91cnRoO2Nhc2UgMjpyZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCksMCwzKTtjYXNlIDM6cmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLDAsMik7Y2FzZSA0OnJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSwwLDEpO2Nhc2UgNTpyZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwxMSwzMSk7Y2FzZSA2OnJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKS0xLDExLDMwKX19ZnVuY3Rpb24gZ2V0V2Vla0Jhc2VkWWVhcihkYXRlKXt2YXIgdGhpc0RhdGU9YWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwwLDEpLGRhdGUudG1feWRheSk7dmFyIGphbkZvdXJ0aFRoaXNZZWFyPW5ldyBEYXRlKHRoaXNEYXRlLmdldEZ1bGxZZWFyKCksMCw0KTt2YXIgamFuRm91cnRoTmV4dFllYXI9bmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxLDAsNCk7dmFyIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXI9Z2V0Rmlyc3RXZWVrU3RhcnREYXRlKGphbkZvdXJ0aFRoaXNZZWFyKTt2YXIgZmlyc3RXZWVrU3RhcnROZXh0WWVhcj1nZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpO2lmKGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydFRoaXNZZWFyLHRoaXNEYXRlKTw9MCl7aWYoY29tcGFyZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIsdGhpc0RhdGUpPD0wKXtyZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxfXJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpfXJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpLTF9dmFyIEVYUEFOU0lPTl9SVUxFU18yPXsiJWEiOmRhdGU9PldFRUtEQVlTW2RhdGUudG1fd2RheV0uc3Vic3RyaW5nKDAsMyksIiVBIjpkYXRlPT5XRUVLREFZU1tkYXRlLnRtX3dkYXldLCIlYiI6ZGF0ZT0+TU9OVEhTW2RhdGUudG1fbW9uXS5zdWJzdHJpbmcoMCwzKSwiJUIiOmRhdGU9Pk1PTlRIU1tkYXRlLnRtX21vbl0sIiVDIjpkYXRlPT57dmFyIHllYXI9ZGF0ZS50bV95ZWFyKzE5MDA7cmV0dXJuIGxlYWRpbmdOdWxscyh5ZWFyLzEwMHwwLDIpfSwiJWQiOmRhdGU9PmxlYWRpbmdOdWxscyhkYXRlLnRtX21kYXksMiksIiVlIjpkYXRlPT5sZWFkaW5nU29tZXRoaW5nKGRhdGUudG1fbWRheSwyLCIgIiksIiVnIjpkYXRlPT5nZXRXZWVrQmFzZWRZZWFyKGRhdGUpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpLCIlRyI6ZGF0ZT0+Z2V0V2Vla0Jhc2VkWWVhcihkYXRlKSwiJUgiOmRhdGU9PmxlYWRpbmdOdWxscyhkYXRlLnRtX2hvdXIsMiksIiVJIjpkYXRlPT57dmFyIHR3ZWx2ZUhvdXI9ZGF0ZS50bV9ob3VyO2lmKHR3ZWx2ZUhvdXI9PTApdHdlbHZlSG91cj0xMjtlbHNlIGlmKHR3ZWx2ZUhvdXI+MTIpdHdlbHZlSG91ci09MTI7cmV0dXJuIGxlYWRpbmdOdWxscyh0d2VsdmVIb3VyLDIpfSwiJWoiOmRhdGU9PmxlYWRpbmdOdWxscyhkYXRlLnRtX21kYXkrYXJyYXlTdW0oaXNMZWFwWWVhcihkYXRlLnRtX3llYXIrMTkwMCk/TU9OVEhfREFZU19MRUFQOk1PTlRIX0RBWVNfUkVHVUxBUixkYXRlLnRtX21vbi0xKSwzKSwiJW0iOmRhdGU9PmxlYWRpbmdOdWxscyhkYXRlLnRtX21vbisxLDIpLCIlTSI6ZGF0ZT0+bGVhZGluZ051bGxzKGRhdGUudG1fbWluLDIpLCIlbiI6KCk9PiJcbiIsIiVwIjpkYXRlPT57aWYoZGF0ZS50bV9ob3VyPj0wJiZkYXRlLnRtX2hvdXI8MTIpe3JldHVybiJBTSJ9cmV0dXJuIlBNIn0sIiVTIjpkYXRlPT5sZWFkaW5nTnVsbHMoZGF0ZS50bV9zZWMsMiksIiV0IjooKT0+Ilx0IiwiJXUiOmRhdGU9PmRhdGUudG1fd2RheXx8NywiJVUiOmRhdGU9Pnt2YXIgZGF5cz1kYXRlLnRtX3lkYXkrNy1kYXRlLnRtX3dkYXk7cmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmZsb29yKGRheXMvNyksMil9LCIlViI6ZGF0ZT0+e3ZhciB2YWw9TWF0aC5mbG9vcigoZGF0ZS50bV95ZGF5KzctKGRhdGUudG1fd2RheSs2KSU3KS83KTtpZigoZGF0ZS50bV93ZGF5KzM3MS1kYXRlLnRtX3lkYXktMiklNzw9Mil7dmFsKyt9aWYoIXZhbCl7dmFsPTUyO3ZhciBkZWMzMT0oZGF0ZS50bV93ZGF5KzctZGF0ZS50bV95ZGF5LTEpJTc7aWYoZGVjMzE9PTR8fGRlYzMxPT01JiZpc0xlYXBZZWFyKGRhdGUudG1feWVhciU0MDAtMSkpe3ZhbCsrfX1lbHNlIGlmKHZhbD09NTMpe3ZhciBqYW4xPShkYXRlLnRtX3dkYXkrMzcxLWRhdGUudG1feWRheSklNztpZihqYW4xIT00JiYoamFuMSE9M3x8IWlzTGVhcFllYXIoZGF0ZS50bV95ZWFyKSkpdmFsPTF9cmV0dXJuIGxlYWRpbmdOdWxscyh2YWwsMil9LCIldyI6ZGF0ZT0+ZGF0ZS50bV93ZGF5LCIlVyI6ZGF0ZT0+e3ZhciBkYXlzPWRhdGUudG1feWRheSs3LShkYXRlLnRtX3dkYXkrNiklNztyZXR1cm4gbGVhZGluZ051bGxzKE1hdGguZmxvb3IoZGF5cy83KSwyKX0sIiV5IjpkYXRlPT4oZGF0ZS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpLCIlWSI6ZGF0ZT0+ZGF0ZS50bV95ZWFyKzE5MDAsIiV6IjpkYXRlPT57dmFyIG9mZj1kYXRlLnRtX2dtdG9mZjt2YXIgYWhlYWQ9b2ZmPj0wO29mZj1NYXRoLmFicyhvZmYpLzYwO29mZj1vZmYvNjAqMTAwK29mZiU2MDtyZXR1cm4oYWhlYWQ/IisiOiItIikrU3RyaW5nKCIwMDAwIitvZmYpLnNsaWNlKC00KX0sIiVaIjpkYXRlPT5kYXRlLnRtX3pvbmUsIiUlIjooKT0+IiUifTtwYXR0ZXJuPXBhdHRlcm4ucmVwbGFjZSgvJSUvZywiXDBcMCIpO2Zvcih2YXIgcnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMil7aWYocGF0dGVybi5pbmNsdWRlcyhydWxlKSl7cGF0dGVybj1wYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cChydWxlLCJnIiksRVhQQU5TSU9OX1JVTEVTXzJbcnVsZV0oZGF0ZSkpfX1wYXR0ZXJuPXBhdHRlcm4ucmVwbGFjZSgvXDBcMC9nLCIlIik7dmFyIGJ5dGVzPWludEFycmF5RnJvbVN0cmluZyhwYXR0ZXJuLGZhbHNlKTtpZihieXRlcy5sZW5ndGg+bWF4c2l6ZSl7cmV0dXJuIDB9d3JpdGVBcnJheVRvTWVtb3J5KGJ5dGVzLHMpO3JldHVybiBieXRlcy5sZW5ndGgtMX07dmFyIF9zdHJmdGltZV9sPShzLG1heHNpemUsZm9ybWF0LHRtLGxvYyk9Pl9zdHJmdGltZShzLG1heHNpemUsZm9ybWF0LHRtKTt2YXIgRlNOb2RlPWZ1bmN0aW9uKHBhcmVudCxuYW1lLG1vZGUscmRldil7aWYoIXBhcmVudCl7cGFyZW50PXRoaXN9dGhpcy5wYXJlbnQ9cGFyZW50O3RoaXMubW91bnQ9cGFyZW50Lm1vdW50O3RoaXMubW91bnRlZD1udWxsO3RoaXMuaWQ9RlMubmV4dElub2RlKys7dGhpcy5uYW1lPW5hbWU7dGhpcy5tb2RlPW1vZGU7dGhpcy5ub2RlX29wcz17fTt0aGlzLnN0cmVhbV9vcHM9e307dGhpcy5yZGV2PXJkZXZ9O3ZhciByZWFkTW9kZT0yOTJ8NzM7dmFyIHdyaXRlTW9kZT0xNDY7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRlNOb2RlLnByb3RvdHlwZSx7cmVhZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMubW9kZSZyZWFkTW9kZSk9PT1yZWFkTW9kZX0sc2V0OmZ1bmN0aW9uKHZhbCl7dmFsP3RoaXMubW9kZXw9cmVhZE1vZGU6dGhpcy5tb2RlJj1+cmVhZE1vZGV9fSx3cml0ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMubW9kZSZ3cml0ZU1vZGUpPT09d3JpdGVNb2RlfSxzZXQ6ZnVuY3Rpb24odmFsKXt2YWw/dGhpcy5tb2RlfD13cml0ZU1vZGU6dGhpcy5tb2RlJj1+d3JpdGVNb2RlfX0saXNGb2xkZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiBGUy5pc0Rpcih0aGlzLm1vZGUpfX0saXNEZXZpY2U6e2dldDpmdW5jdGlvbigpe3JldHVybiBGUy5pc0NocmRldih0aGlzLm1vZGUpfX19KTtGUy5GU05vZGU9RlNOb2RlO0ZTLmNyZWF0ZVByZWxvYWRlZEZpbGU9RlNfY3JlYXRlUHJlbG9hZGVkRmlsZTtGUy5zdGF0aWNJbml0KCk7ZW1iaW5kX2luaXRfY2hhckNvZGVzKCk7QmluZGluZ0Vycm9yPU1vZHVsZVsiQmluZGluZ0Vycm9yIl09Y2xhc3MgQmluZGluZ0Vycm9yIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IobWVzc2FnZSl7c3VwZXIobWVzc2FnZSk7dGhpcy5uYW1lPSJCaW5kaW5nRXJyb3IifX07SW50ZXJuYWxFcnJvcj1Nb2R1bGVbIkludGVybmFsRXJyb3IiXT1jbGFzcyBJbnRlcm5hbEVycm9yIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IobWVzc2FnZSl7c3VwZXIobWVzc2FnZSk7dGhpcy5uYW1lPSJJbnRlcm5hbEVycm9yIn19O2luaXRfQ2xhc3NIYW5kbGUoKTtpbml0X2VtYmluZCgpO2luaXRfUmVnaXN0ZXJlZFBvaW50ZXIoKTtVbmJvdW5kVHlwZUVycm9yPU1vZHVsZVsiVW5ib3VuZFR5cGVFcnJvciJdPWV4dGVuZEVycm9yKEVycm9yLCJVbmJvdW5kVHlwZUVycm9yIik7aGFuZGxlQWxsb2NhdG9ySW5pdCgpO2luaXRfZW12YWwoKTt2YXIgd2FzbUltcG9ydHM9e2E6X19fYXNzZXJ0X2ZhaWwsdDpfX19jeGFfYmVnaW5fY2F0Y2gsczpfX19jeGFfZW5kX2NhdGNoLGM6X19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2hfMixqOl9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoXzMsb2E6X19fY3hhX3JldGhyb3csbTpfX19jeGFfdGhyb3csZzpfX19yZXN1bWVFeGNlcHRpb24sZWE6X19fc3lzY2FsbF9mc3RhdDY0LFI6X19fc3lzY2FsbF9mdHJ1bmNhdGU2NCxjYTpfX19zeXNjYWxsX25ld2ZzdGF0YXQsZmE6X19fc3lzY2FsbF9vcGVuYXQsXzpfX19zeXNjYWxsX3JlYWRsaW5rYXQsWjpfX19zeXNjYWxsX3JlbmFtZWF0LGRhOl9fX3N5c2NhbGxfc3RhdDY0LFg6X19fc3lzY2FsbF91bmxpbmthdCxTOl9fZW1iaW5kX3JlZ2lzdGVyX2JpZ2ludCxqYTpfX2VtYmluZF9yZWdpc3Rlcl9ib29sLE46X19lbWJpbmRfcmVnaXN0ZXJfY2xhc3MsTTpfX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19jb25zdHJ1Y3RvcixsOl9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2Z1bmN0aW9uLGlhOl9fZW1iaW5kX3JlZ2lzdGVyX2VtdmFsLEg6X19lbWJpbmRfcmVnaXN0ZXJfZmxvYXQsbzpfX2VtYmluZF9yZWdpc3Rlcl9pbnRlZ2VyLGs6X19lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcsRzpfX2VtYmluZF9yZWdpc3Rlcl9zdGRfc3RyaW5nLHo6X19lbWJpbmRfcmVnaXN0ZXJfc3RkX3dzdHJpbmcsa2E6X19lbWJpbmRfcmVnaXN0ZXJfdm9pZCxnYTpfX2Vtc2NyaXB0ZW5fZ2V0X25vd19pc19tb25vdG9uaWMsc2E6X19lbXZhbF9kZWNyZWYsdGE6X19lbXZhbF9pbmNyZWYscTpfX2VtdmFsX3Rha2VfdmFsdWUsTzpfX21tYXBfanMsUDpfX211bm1hcF9qcyxiOl9hYm9ydCxFOl9lbXNjcmlwdGVuX2RhdGVfbm93LFk6X2Vtc2NyaXB0ZW5fZ2V0X2hlYXBfbWF4LHc6X2Vtc2NyaXB0ZW5fZ2V0X25vdyxoYTpfZW1zY3JpcHRlbl9tZW1jcHlfanMsVzpfZW1zY3JpcHRlbl9yZXNpemVfaGVhcCwkOl9lbnZpcm9uX2dldCxhYTpfZW52aXJvbl9zaXplc19nZXQsbGE6X2V4aXQsRjpfZmRfY2xvc2UsRDpfZmRfcmVhZCxROl9mZF9zZWVrLGJhOl9mZF9zeW5jLHk6X2ZkX3dyaXRlLFU6X2dldGVudHJvcHkscmE6aW52b2tlX2ZpLEM6aW52b2tlX2ksZjppbnZva2VfaWksbmE6aW52b2tlX2lpZGlpLHFhOmludm9rZV9paWYsZDppbnZva2VfaWlpLGU6aW52b2tlX2lpaWksQjppbnZva2VfaWlpaWksdjppbnZva2VfaWlpaWlpLEs6aW52b2tlX2lpaWlpaWksVDppbnZva2VfaWlqLHA6aW52b2tlX3YsaTppbnZva2VfdmksaDppbnZva2VfdmlpLHI6aW52b2tlX3ZpaWQsQTppbnZva2VfdmlpZGksbjppbnZva2VfdmlpaSxwYTppbnZva2VfdmlpaWRpaWksTDppbnZva2VfdmlpaWksSTppbnZva2VfdmlpaWlkaSxKOmludm9rZV92aWlpaWksdTppbnZva2VfdmlpaWlpaWlkaSx4Omludm9rZV92aWlpaWlpaWksVjpfc3RyZnRpbWVfbCxtYTp4bm5Mb2FkV2FzbU1vZHVsZUpTfTt2YXIgd2FzbUV4cG9ydHM9Y3JlYXRlV2FzbSgpO3ZhciBfX193YXNtX2NhbGxfY3RvcnM9KCk9PihfX193YXNtX2NhbGxfY3RvcnM9d2FzbUV4cG9ydHNbInZhIl0pKCk7dmFyIF9tYWxsb2M9YTA9PihfbWFsbG9jPXdhc21FeHBvcnRzWyJ4YSJdKShhMCk7dmFyIF9mcmVlPWEwPT4oX2ZyZWU9d2FzbUV4cG9ydHNbInlhIl0pKGEwKTt2YXIgX19fZXJybm9fbG9jYXRpb249KCk9PihfX19lcnJub19sb2NhdGlvbj13YXNtRXhwb3J0c1siemEiXSkoKTt2YXIgX19fZ2V0VHlwZU5hbWU9YTA9PihfX19nZXRUeXBlTmFtZT13YXNtRXhwb3J0c1siQWEiXSkoYTApO3ZhciBfX19mdW5jc19vbl9leGl0PSgpPT4oX19fZnVuY3Nfb25fZXhpdD13YXNtRXhwb3J0c1siQmEiXSkoKTt2YXIgX2ZmbHVzaD1Nb2R1bGVbIl9mZmx1c2giXT1hMD0+KF9mZmx1c2g9TW9kdWxlWyJfZmZsdXNoIl09d2FzbUV4cG9ydHNbIkNhIl0pKGEwKTt2YXIgX2Vtc2NyaXB0ZW5fYnVpbHRpbl9tZW1hbGlnbj0oYTAsYTEpPT4oX2Vtc2NyaXB0ZW5fYnVpbHRpbl9tZW1hbGlnbj13YXNtRXhwb3J0c1siRGEiXSkoYTAsYTEpO3ZhciBfc2V0VGhyZXc9KGEwLGExKT0+KF9zZXRUaHJldz13YXNtRXhwb3J0c1siRWEiXSkoYTAsYTEpO3ZhciBzZXRUZW1wUmV0MD1hMD0+KHNldFRlbXBSZXQwPXdhc21FeHBvcnRzWyJGYSJdKShhMCk7dmFyIHN0YWNrU2F2ZT0oKT0+KHN0YWNrU2F2ZT13YXNtRXhwb3J0c1siR2EiXSkoKTt2YXIgc3RhY2tSZXN0b3JlPWEwPT4oc3RhY2tSZXN0b3JlPXdhc21FeHBvcnRzWyJIYSJdKShhMCk7dmFyIF9fX2N4YV9kZWNyZW1lbnRfZXhjZXB0aW9uX3JlZmNvdW50PWEwPT4oX19fY3hhX2RlY3JlbWVudF9leGNlcHRpb25fcmVmY291bnQ9d2FzbUV4cG9ydHNbIklhIl0pKGEwKTt2YXIgX19fY3hhX2luY3JlbWVudF9leGNlcHRpb25fcmVmY291bnQ9YTA9PihfX19jeGFfaW5jcmVtZW50X2V4Y2VwdGlvbl9yZWZjb3VudD13YXNtRXhwb3J0c1siSmEiXSkoYTApO3ZhciBfX19jeGFfY2FuX2NhdGNoPShhMCxhMSxhMik9PihfX19jeGFfY2FuX2NhdGNoPXdhc21FeHBvcnRzWyJLYSJdKShhMCxhMSxhMik7dmFyIF9fX2N4YV9pc19wb2ludGVyX3R5cGU9YTA9PihfX19jeGFfaXNfcG9pbnRlcl90eXBlPXdhc21FeHBvcnRzWyJMYSJdKShhMCk7dmFyIGR5bkNhbGxfdmlpamo9TW9kdWxlWyJkeW5DYWxsX3ZpaWpqIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2KT0+KGR5bkNhbGxfdmlpamo9TW9kdWxlWyJkeW5DYWxsX3ZpaWpqIl09d2FzbUV4cG9ydHNbIk1hIl0pKGEwLGExLGEyLGEzLGE0LGE1LGE2KTt2YXIgZHluQ2FsbF92aWlpampqPU1vZHVsZVsiZHluQ2FsbF92aWlpampqIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4LGE5KT0+KGR5bkNhbGxfdmlpaWpqaj1Nb2R1bGVbImR5bkNhbGxfdmlpaWpqaiJdPXdhc21FeHBvcnRzWyJOYSJdKShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7dmFyIGR5bkNhbGxfaWlpaWo9TW9kdWxlWyJkeW5DYWxsX2lpaWlqIl09KGEwLGExLGEyLGEzLGE0LGE1KT0+KGR5bkNhbGxfaWlpaWo9TW9kdWxlWyJkeW5DYWxsX2lpaWlqIl09d2FzbUV4cG9ydHNbIk9hIl0pKGEwLGExLGEyLGEzLGE0LGE1KTt2YXIgZHluQ2FsbF9qaWk9TW9kdWxlWyJkeW5DYWxsX2ppaSJdPShhMCxhMSxhMik9PihkeW5DYWxsX2ppaT1Nb2R1bGVbImR5bkNhbGxfamlpIl09d2FzbUV4cG9ydHNbIlBhIl0pKGEwLGExLGEyKTt2YXIgZHluQ2FsbF9qamo9TW9kdWxlWyJkeW5DYWxsX2pqaiJdPShhMCxhMSxhMixhMyxhNCk9PihkeW5DYWxsX2pqaj1Nb2R1bGVbImR5bkNhbGxfampqIl09d2FzbUV4cG9ydHNbIlFhIl0pKGEwLGExLGEyLGEzLGE0KTt2YXIgZHluQ2FsbF9paWlpamo9TW9kdWxlWyJkeW5DYWxsX2lpaWlqaiJdPShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyk9PihkeW5DYWxsX2lpaWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpaWpqIl09d2FzbUV4cG9ydHNbIlJhIl0pKGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3KTt2YXIgZHluQ2FsbF92aWlqamk9TW9kdWxlWyJkeW5DYWxsX3ZpaWpqaSJdPShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyk9PihkeW5DYWxsX3ZpaWpqaT1Nb2R1bGVbImR5bkNhbGxfdmlpamppIl09d2FzbUV4cG9ydHNbIlNhIl0pKGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3KTt2YXIgZHluQ2FsbF9paWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpamoiXT0oYTAsYTEsYTIsYTMsYTQsYTUsYTYpPT4oZHluQ2FsbF9paWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpamoiXT13YXNtRXhwb3J0c1siVGEiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYpO3ZhciBkeW5DYWxsX3ZpaWpqaj1Nb2R1bGVbImR5bkNhbGxfdmlpampqIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KT0+KGR5bkNhbGxfdmlpampqPU1vZHVsZVsiZHluQ2FsbF92aWlqamoiXT13YXNtRXhwb3J0c1siVWEiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpO3ZhciBkeW5DYWxsX2lpaj1Nb2R1bGVbImR5bkNhbGxfaWlqIl09KGEwLGExLGEyLGEzKT0+KGR5bkNhbGxfaWlqPU1vZHVsZVsiZHluQ2FsbF9paWoiXT13YXNtRXhwb3J0c1siVmEiXSkoYTAsYTEsYTIsYTMpO3ZhciBkeW5DYWxsX2lpamppaWlpPU1vZHVsZVsiZHluQ2FsbF9paWpqaWlpaSJdPShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk9PihkeW5DYWxsX2lpamppaWlpPU1vZHVsZVsiZHluQ2FsbF9paWpqaWlpaSJdPXdhc21FeHBvcnRzWyJXYSJdKShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7dmFyIGR5bkNhbGxfamlqaT1Nb2R1bGVbImR5bkNhbGxfamlqaSJdPShhMCxhMSxhMixhMyxhNCk9PihkeW5DYWxsX2ppamk9TW9kdWxlWyJkeW5DYWxsX2ppamkiXT13YXNtRXhwb3J0c1siWGEiXSkoYTAsYTEsYTIsYTMsYTQpO3ZhciBkeW5DYWxsX3ZpaWppaT1Nb2R1bGVbImR5bkNhbGxfdmlpamlpIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2KT0+KGR5bkNhbGxfdmlpamlpPU1vZHVsZVsiZHluQ2FsbF92aWlqaWkiXT13YXNtRXhwb3J0c1siWWEiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYpO3ZhciBkeW5DYWxsX2lpaWlpaj1Nb2R1bGVbImR5bkNhbGxfaWlpaWlqIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2KT0+KGR5bkNhbGxfaWlpaWlqPU1vZHVsZVsiZHluQ2FsbF9paWlpaWoiXT13YXNtRXhwb3J0c1siWmEiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYpO3ZhciBkeW5DYWxsX2lpaWlpamo9TW9kdWxlWyJkeW5DYWxsX2lpaWlpamoiXT0oYTAsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpPT4oZHluQ2FsbF9paWlpaWpqPU1vZHVsZVsiZHluQ2FsbF9paWlpaWpqIl09d2FzbUV4cG9ydHNbIl9hIl0pKGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KTt2YXIgZHluQ2FsbF9paWlpaWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpaWlpamoiXT0oYTAsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpPT4oZHluQ2FsbF9paWlpaWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpaWlpamoiXT13YXNtRXhwb3J0c1siJGEiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpO3ZhciBfX19zdGFydF9lbV9qcz1Nb2R1bGVbIl9fX3N0YXJ0X2VtX2pzIl09MjYxNDYwO3ZhciBfX19zdG9wX2VtX2pzPU1vZHVsZVsiX19fc3RvcF9lbV9qcyJdPTI2MjA3MjtmdW5jdGlvbiBpbnZva2VfaWkoaW5kZXgsYTEpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWkoaW5kZXgsYTEsYTIpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMil9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV92aWkoaW5kZXgsYTEsYTIpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7Z2V0V2FzbVRhYmxlRW50cnkoaW5kZXgpKGExLGEyKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX3ZpKGluZGV4LGExKXt2YXIgc3A9c3RhY2tTYXZlKCk7dHJ5e2dldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMixhMyxhNCxhNSl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWlpKGluZGV4LGExLGEyLGEzKXt2YXIgc3A9c3RhY2tTYXZlKCk7dHJ5e3JldHVybiBnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfaShpbmRleCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtyZXR1cm4gZ2V0V2FzbVRhYmxlRW50cnkoaW5kZXgpKCl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV92aWlpaShpbmRleCxhMSxhMixhMyxhNCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfZmkoaW5kZXgsYTEpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWYoaW5kZXgsYTEsYTIpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMil9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KXt2YXIgc3A9c3RhY2tTYXZlKCk7dHJ5e3JldHVybiBnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUsYTYpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdihpbmRleCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX3ZpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlkaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdmlpaShpbmRleCxhMSxhMixhMyl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdmlpaWlkaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNil7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUsYTYpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdmlpaWRpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7Z2V0V2FzbVRhYmxlRW50cnkoaW5kZXgpKGExLGEyLGEzLGE0LGE1LGE2LGE3KX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX3ZpaWQoaW5kZXgsYTEsYTIsYTMpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7Z2V0V2FzbVRhYmxlRW50cnkoaW5kZXgpKGExLGEyLGEzKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMixhMyxhNCl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV92aWlkaShpbmRleCxhMSxhMixhMyxhNCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfaWlkaWkoaW5kZXgsYTEsYTIsYTMsYTQpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMixhMyxhNCl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWooaW5kZXgsYTEsYTIsYTMpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGR5bkNhbGxfaWlqKGluZGV4LGExLGEyLGEzKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19dmFyIGNhbGxlZFJ1bjtkZXBlbmRlbmNpZXNGdWxmaWxsZWQ9ZnVuY3Rpb24gcnVuQ2FsbGVyKCl7aWYoIWNhbGxlZFJ1bilydW4oKTtpZighY2FsbGVkUnVuKWRlcGVuZGVuY2llc0Z1bGZpbGxlZD1ydW5DYWxsZXJ9O2Z1bmN0aW9uIHJ1bigpe2lmKHJ1bkRlcGVuZGVuY2llcz4wKXtyZXR1cm59cHJlUnVuKCk7aWYocnVuRGVwZW5kZW5jaWVzPjApe3JldHVybn1mdW5jdGlvbiBkb1J1bigpe2lmKGNhbGxlZFJ1bilyZXR1cm47Y2FsbGVkUnVuPXRydWU7TW9kdWxlWyJjYWxsZWRSdW4iXT10cnVlO2lmKEFCT1JUKXJldHVybjtpbml0UnVudGltZSgpO3JlYWR5UHJvbWlzZVJlc29sdmUoTW9kdWxlKTtpZihNb2R1bGVbIm9uUnVudGltZUluaXRpYWxpemVkIl0pTW9kdWxlWyJvblJ1bnRpbWVJbml0aWFsaXplZCJdKCk7cG9zdFJ1bigpfWlmKE1vZHVsZVsic2V0U3RhdHVzIl0pe01vZHVsZVsic2V0U3RhdHVzIl0oIlJ1bm5pbmcuLi4iKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe01vZHVsZVsic2V0U3RhdHVzIl0oIiIpfSwxKTtkb1J1bigpfSwxKX1lbHNle2RvUnVuKCl9fWlmKE1vZHVsZVsicHJlSW5pdCJdKXtpZih0eXBlb2YgTW9kdWxlWyJwcmVJbml0Il09PSJmdW5jdGlvbiIpTW9kdWxlWyJwcmVJbml0Il09W01vZHVsZVsicHJlSW5pdCJdXTt3aGlsZShNb2R1bGVbInByZUluaXQiXS5sZW5ndGg+MCl7TW9kdWxlWyJwcmVJbml0Il0ucG9wKCkoKX19cnVuKCk7CgoKICByZXR1cm4gbW9kdWxlQXJnLnJlYWR5Cn0KKTsKfSkoKTsKOwpjcmVhdGVXYXNtTW9ub0luc3RhbmNlID0gTW9kdWxlOyB9ICAgIAogICAgCiAgICAgICAgICAgIGxldCBjcmVhdGVXYXNtTXVsdGlJbnN0YW5jZTsgewoKdmFyIE1vZHVsZSA9ICgoKSA9PiB7CiAgdmFyIF9zY3JpcHREaXIgPSBsb2NhdGlvbi5ocmVmOwogIAogIHJldHVybiAoCmZ1bmN0aW9uKG1vZHVsZUFyZyA9IHt9KSB7Cgp2YXIgTW9kdWxlPW1vZHVsZUFyZzt2YXIgcmVhZHlQcm9taXNlUmVzb2x2ZSxyZWFkeVByb21pc2VSZWplY3Q7TW9kdWxlWyJyZWFkeSJdPW5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntyZWFkeVByb21pc2VSZXNvbHZlPXJlc29sdmU7cmVhZHlQcm9taXNlUmVqZWN0PXJlamVjdH0pO3ZhciBtb2R1bGVPdmVycmlkZXM9T2JqZWN0LmFzc2lnbih7fSxNb2R1bGUpO3ZhciBhcmd1bWVudHNfPVtdO3ZhciB0aGlzUHJvZ3JhbT0iLi90aGlzLnByb2dyYW0iO3ZhciBxdWl0Xz0oc3RhdHVzLHRvVGhyb3cpPT57dGhyb3cgdG9UaHJvd307dmFyIEVOVklST05NRU5UX0lTX1dFQj10eXBlb2Ygd2luZG93PT0ib2JqZWN0Ijt2YXIgRU5WSVJPTk1FTlRfSVNfV09SS0VSPXR5cGVvZiBpbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iO3ZhciBFTlZJUk9OTUVOVF9JU19OT0RFPXR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM9PSJvYmplY3QiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucy5ub2RlPT0ic3RyaW5nIjt2YXIgRU5WSVJPTk1FTlRfSVNfUFRIUkVBRD1Nb2R1bGVbIkVOVklST05NRU5UX0lTX1BUSFJFQUQiXXx8ZmFsc2U7dmFyIHNjcmlwdERpcmVjdG9yeT0iIjtmdW5jdGlvbiBsb2NhdGVGaWxlKHBhdGgpe2lmKE1vZHVsZVsibG9jYXRlRmlsZSJdKXtyZXR1cm4gTW9kdWxlWyJsb2NhdGVGaWxlIl0ocGF0aCxzY3JpcHREaXJlY3RvcnkpfXJldHVybiBzY3JpcHREaXJlY3RvcnkrcGF0aH12YXIgcmVhZF8scmVhZEFzeW5jLHJlYWRCaW5hcnk7aWYoRU5WSVJPTk1FTlRfSVNfV0VCfHxFTlZJUk9OTUVOVF9JU19XT1JLRVIpe2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7c2NyaXB0RGlyZWN0b3J5PXNlbGYubG9jYXRpb24uaHJlZn1lbHNlIGlmKHR5cGVvZiBkb2N1bWVudCE9InVuZGVmaW5lZCImJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQpe3NjcmlwdERpcmVjdG9yeT1kb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyY31pZihfc2NyaXB0RGlyKXtzY3JpcHREaXJlY3Rvcnk9X3NjcmlwdERpcn1pZihzY3JpcHREaXJlY3RvcnkuaW5kZXhPZigiYmxvYjoiKSE9PTApe3NjcmlwdERpcmVjdG9yeT1zY3JpcHREaXJlY3Rvcnkuc3Vic3RyKDAsc2NyaXB0RGlyZWN0b3J5LnJlcGxhY2UoL1s/I10uKi8sIiIpLmxhc3RJbmRleE9mKCIvIikrMSl9ZWxzZXtzY3JpcHREaXJlY3Rvcnk9IiJ9e3JlYWRfPXVybD0+e3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJHRVQiLHVybCxmYWxzZSk7eGhyLnNlbmQobnVsbCk7cmV0dXJuIHhoci5yZXNwb25zZVRleHR9O2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7cmVhZEJpbmFyeT11cmw9Pnt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbigiR0VUIix1cmwsZmFsc2UpO3hoci5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIjt4aHIuc2VuZChudWxsKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeGhyLnJlc3BvbnNlKX19cmVhZEFzeW5jPSh1cmwsb25sb2FkLG9uZXJyb3IpPT57dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4oIkdFVCIsdXJsLHRydWUpO3hoci5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIjt4aHIub25sb2FkPSgpPT57aWYoeGhyLnN0YXR1cz09MjAwfHx4aHIuc3RhdHVzPT0wJiZ4aHIucmVzcG9uc2Upe29ubG9hZCh4aHIucmVzcG9uc2UpO3JldHVybn1vbmVycm9yKCl9O3hoci5vbmVycm9yPW9uZXJyb3I7eGhyLnNlbmQobnVsbCl9fX1lbHNle312YXIgb3V0PU1vZHVsZVsicHJpbnQiXXx8Y29uc29sZS5sb2cuYmluZChjb25zb2xlKTt2YXIgZXJyPU1vZHVsZVsicHJpbnRFcnIiXXx8Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24oTW9kdWxlLG1vZHVsZU92ZXJyaWRlcyk7bW9kdWxlT3ZlcnJpZGVzPW51bGw7aWYoTW9kdWxlWyJhcmd1bWVudHMiXSlhcmd1bWVudHNfPU1vZHVsZVsiYXJndW1lbnRzIl07aWYoTW9kdWxlWyJ0aGlzUHJvZ3JhbSJdKXRoaXNQcm9ncmFtPU1vZHVsZVsidGhpc1Byb2dyYW0iXTtpZihNb2R1bGVbInF1aXQiXSlxdWl0Xz1Nb2R1bGVbInF1aXQiXTt2YXIgd2FzbUJpbmFyeTtpZihNb2R1bGVbIndhc21CaW5hcnkiXSl3YXNtQmluYXJ5PU1vZHVsZVsid2FzbUJpbmFyeSJdO2lmKHR5cGVvZiBXZWJBc3NlbWJseSE9Im9iamVjdCIpe2Fib3J0KCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIil9dmFyIHdhc21NZW1vcnk7dmFyIHdhc21Nb2R1bGU7dmFyIEFCT1JUPWZhbHNlO3ZhciBFWElUU1RBVFVTO2Z1bmN0aW9uIGFzc2VydChjb25kaXRpb24sdGV4dCl7aWYoIWNvbmRpdGlvbil7YWJvcnQodGV4dCl9fXZhciBIRUFQOCxIRUFQVTgsSEVBUDE2LEhFQVBVMTYsSEVBUDMyLEhFQVBVMzIsSEVBUEYzMixIRUFQRjY0O2Z1bmN0aW9uIHVwZGF0ZU1lbW9yeVZpZXdzKCl7dmFyIGI9d2FzbU1lbW9yeS5idWZmZXI7TW9kdWxlWyJIRUFQOCJdPUhFQVA4PW5ldyBJbnQ4QXJyYXkoYik7TW9kdWxlWyJIRUFQMTYiXT1IRUFQMTY9bmV3IEludDE2QXJyYXkoYik7TW9kdWxlWyJIRUFQVTgiXT1IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoYik7TW9kdWxlWyJIRUFQVTE2Il09SEVBUFUxNj1uZXcgVWludDE2QXJyYXkoYik7TW9kdWxlWyJIRUFQMzIiXT1IRUFQMzI9bmV3IEludDMyQXJyYXkoYik7TW9kdWxlWyJIRUFQVTMyIl09SEVBUFUzMj1uZXcgVWludDMyQXJyYXkoYik7TW9kdWxlWyJIRUFQRjMyIl09SEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KGIpO01vZHVsZVsiSEVBUEY2NCJdPUhFQVBGNjQ9bmV3IEZsb2F0NjRBcnJheShiKX12YXIgSU5JVElBTF9NRU1PUlk9TW9kdWxlWyJJTklUSUFMX01FTU9SWSJdfHwxMzQyMTc3Mjg7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRCl7d2FzbU1lbW9yeT1Nb2R1bGVbIndhc21NZW1vcnkiXX1lbHNle2lmKE1vZHVsZVsid2FzbU1lbW9yeSJdKXt3YXNtTWVtb3J5PU1vZHVsZVsid2FzbU1lbW9yeSJdfWVsc2V7d2FzbU1lbW9yeT1uZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHsiaW5pdGlhbCI6SU5JVElBTF9NRU1PUlkvNjU1MzYsIm1heGltdW0iOklOSVRJQUxfTUVNT1JZLzY1NTM2LCJzaGFyZWQiOnRydWV9KTtpZighKHdhc21NZW1vcnkuYnVmZmVyIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXIpKXtlcnIoInJlcXVlc3RlZCBhIHNoYXJlZCBXZWJBc3NlbWJseS5NZW1vcnkgYnV0IHRoZSByZXR1cm5lZCBidWZmZXIgaXMgbm90IGEgU2hhcmVkQXJyYXlCdWZmZXIsIGluZGljYXRpbmcgdGhhdCB3aGlsZSB0aGUgYnJvd3NlciBoYXMgU2hhcmVkQXJyYXlCdWZmZXIgaXQgZG9lcyBub3QgaGF2ZSBXZWJBc3NlbWJseSB0aHJlYWRzIHN1cHBvcnQgLSB5b3UgbWF5IG5lZWQgdG8gc2V0IGEgZmxhZyIpO2lmKEVOVklST05NRU5UX0lTX05PREUpe2VycigiKG9uIG5vZGUgeW91IG1heSBuZWVkOiAtLWV4cGVyaW1lbnRhbC13YXNtLXRocmVhZHMgLS1leHBlcmltZW50YWwtd2FzbS1idWxrLW1lbW9yeSBhbmQvb3IgcmVjZW50IHZlcnNpb24pIil9dGhyb3cgRXJyb3IoImJhZCBtZW1vcnkiKX19fXVwZGF0ZU1lbW9yeVZpZXdzKCk7SU5JVElBTF9NRU1PUlk9d2FzbU1lbW9yeS5idWZmZXIuYnl0ZUxlbmd0aDt2YXIgX19BVFBSRVJVTl9fPVtdO3ZhciBfX0FUSU5JVF9fPVtdO3ZhciBfX0FURVhJVF9fPVtdO3ZhciBfX0FUUE9TVFJVTl9fPVtdO3ZhciBydW50aW1lSW5pdGlhbGl6ZWQ9ZmFsc2U7dmFyIHJ1bnRpbWVFeGl0ZWQ9ZmFsc2U7ZnVuY3Rpb24gcHJlUnVuKCl7aWYoTW9kdWxlWyJwcmVSdW4iXSl7aWYodHlwZW9mIE1vZHVsZVsicHJlUnVuIl09PSJmdW5jdGlvbiIpTW9kdWxlWyJwcmVSdW4iXT1bTW9kdWxlWyJwcmVSdW4iXV07d2hpbGUoTW9kdWxlWyJwcmVSdW4iXS5sZW5ndGgpe2FkZE9uUHJlUnVuKE1vZHVsZVsicHJlUnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQUkVSVU5fXyl9ZnVuY3Rpb24gaW5pdFJ1bnRpbWUoKXtydW50aW1lSW5pdGlhbGl6ZWQ9dHJ1ZTtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybjtpZighTW9kdWxlWyJub0ZTSW5pdCJdJiYhRlMuaW5pdC5pbml0aWFsaXplZClGUy5pbml0KCk7RlMuaWdub3JlUGVybWlzc2lvbnM9ZmFsc2U7VFRZLmluaXQoKTtjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKX1mdW5jdGlvbiBleGl0UnVudGltZSgpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpcmV0dXJuO19fX2Z1bmNzX29uX2V4aXQoKTtjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FURVhJVF9fKTtGUy5xdWl0KCk7VFRZLnNodXRkb3duKCk7UFRocmVhZC50ZXJtaW5hdGVBbGxUaHJlYWRzKCk7cnVudGltZUV4aXRlZD10cnVlfWZ1bmN0aW9uIHBvc3RSdW4oKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybjtpZihNb2R1bGVbInBvc3RSdW4iXSl7aWYodHlwZW9mIE1vZHVsZVsicG9zdFJ1biJdPT0iZnVuY3Rpb24iKU1vZHVsZVsicG9zdFJ1biJdPVtNb2R1bGVbInBvc3RSdW4iXV07d2hpbGUoTW9kdWxlWyJwb3N0UnVuIl0ubGVuZ3RoKXthZGRPblBvc3RSdW4oTW9kdWxlWyJwb3N0UnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQT1NUUlVOX18pfWZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKXtfX0FUUFJFUlVOX18udW5zaGlmdChjYil9ZnVuY3Rpb24gYWRkT25Jbml0KGNiKXtfX0FUSU5JVF9fLnVuc2hpZnQoY2IpfWZ1bmN0aW9uIGFkZE9uUG9zdFJ1bihjYil7X19BVFBPU1RSVU5fXy51bnNoaWZ0KGNiKX12YXIgcnVuRGVwZW5kZW5jaWVzPTA7dmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyPW51bGw7dmFyIGRlcGVuZGVuY2llc0Z1bGZpbGxlZD1udWxsO2Z1bmN0aW9uIGdldFVuaXF1ZVJ1bkRlcGVuZGVuY3koaWQpe3JldHVybiBpZH1mdW5jdGlvbiBhZGRSdW5EZXBlbmRlbmN5KGlkKXtydW5EZXBlbmRlbmNpZXMrKztpZihNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXSl7TW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0ocnVuRGVwZW5kZW5jaWVzKX19ZnVuY3Rpb24gcmVtb3ZlUnVuRGVwZW5kZW5jeShpZCl7cnVuRGVwZW5kZW5jaWVzLS07aWYoTW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0pe01vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdKHJ1bkRlcGVuZGVuY2llcyl9aWYocnVuRGVwZW5kZW5jaWVzPT0wKXtpZihydW5EZXBlbmRlbmN5V2F0Y2hlciE9PW51bGwpe2NsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpO3J1bkRlcGVuZGVuY3lXYXRjaGVyPW51bGx9aWYoZGVwZW5kZW5jaWVzRnVsZmlsbGVkKXt2YXIgY2FsbGJhY2s9ZGVwZW5kZW5jaWVzRnVsZmlsbGVkO2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1udWxsO2NhbGxiYWNrKCl9fX1mdW5jdGlvbiBhYm9ydCh3aGF0KXtpZihNb2R1bGVbIm9uQWJvcnQiXSl7TW9kdWxlWyJvbkFib3J0Il0od2hhdCl9d2hhdD0iQWJvcnRlZCgiK3doYXQrIikiO2Vycih3aGF0KTtBQk9SVD10cnVlO0VYSVRTVEFUVVM9MTt3aGF0Kz0iLiBCdWlsZCB3aXRoIC1zQVNTRVJUSU9OUyBmb3IgbW9yZSBpbmZvLiI7dmFyIGU9bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcih3aGF0KTtyZWFkeVByb21pc2VSZWplY3QoZSk7dGhyb3cgZX12YXIgZGF0YVVSSVByZWZpeD0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7dmFyIGlzRGF0YVVSST1maWxlbmFtZT0+ZmlsZW5hbWUuc3RhcnRzV2l0aChkYXRhVVJJUHJlZml4KTt2YXIgd2FzbUJpbmFyeUZpbGU7aWYoTW9kdWxlWyJsb2NhdGVGaWxlIl0pe3dhc21CaW5hcnlGaWxlPSJtYWluLWJpbi1tdWx0aS53YXNtIjtpZighaXNEYXRhVVJJKHdhc21CaW5hcnlGaWxlKSl7d2FzbUJpbmFyeUZpbGU9bG9jYXRlRmlsZSh3YXNtQmluYXJ5RmlsZSl9fWVsc2V7d2FzbUJpbmFyeUZpbGU9bmV3IFVSTCgibWFpbi1iaW4tbXVsdGkud2FzbSIsbG9jYXRpb24uaHJlZikuaHJlZn1mdW5jdGlvbiBnZXRCaW5hcnlTeW5jKGZpbGUpe2lmKGZpbGU9PXdhc21CaW5hcnlGaWxlJiZ3YXNtQmluYXJ5KXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkod2FzbUJpbmFyeSl9aWYocmVhZEJpbmFyeSl7cmV0dXJuIHJlYWRCaW5hcnkoZmlsZSl9dGhyb3ciYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifWZ1bmN0aW9uIGdldEJpbmFyeVByb21pc2UoYmluYXJ5RmlsZSl7aWYoIXdhc21CaW5hcnkmJihFTlZJUk9OTUVOVF9JU19XRUJ8fEVOVklST05NRU5UX0lTX1dPUktFUikpe2lmKHR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIil7cmV0dXJuIGZldGNoKGJpbmFyeUZpbGUse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKHJlc3BvbnNlPT57aWYoIXJlc3BvbnNlWyJvayJdKXt0aHJvdyJmYWlsZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICciK2JpbmFyeUZpbGUrIicifXJldHVybiByZXNwb25zZVsiYXJyYXlCdWZmZXIiXSgpfSkuY2F0Y2goKCk9PmdldEJpbmFyeVN5bmMoYmluYXJ5RmlsZSkpfX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+Z2V0QmluYXJ5U3luYyhiaW5hcnlGaWxlKSl9ZnVuY3Rpb24gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihiaW5hcnlGaWxlLGltcG9ydHMscmVjZWl2ZXIpe3JldHVybiBnZXRCaW5hcnlQcm9taXNlKGJpbmFyeUZpbGUpLnRoZW4oYmluYXJ5PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShiaW5hcnksaW1wb3J0cykpLnRoZW4oaW5zdGFuY2U9Pmluc3RhbmNlKS50aGVuKHJlY2VpdmVyLHJlYXNvbj0+e2VycihgZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogJHtyZWFzb259YCk7YWJvcnQocmVhc29uKX0pfWZ1bmN0aW9uIGluc3RhbnRpYXRlQXN5bmMoYmluYXJ5LGJpbmFyeUZpbGUsaW1wb3J0cyxjYWxsYmFjayl7aWYoIWJpbmFyeSYmdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nPT0iZnVuY3Rpb24iJiYhaXNEYXRhVVJJKGJpbmFyeUZpbGUpJiZ0eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiIpe3JldHVybiBmZXRjaChiaW5hcnlGaWxlLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihyZXNwb25zZT0+e3ZhciByZXN1bHQ9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcocmVzcG9uc2UsaW1wb3J0cyk7cmV0dXJuIHJlc3VsdC50aGVuKGNhbGxiYWNrLGZ1bmN0aW9uKHJlYXNvbil7ZXJyKGB3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogJHtyZWFzb259YCk7ZXJyKCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvbiIpO3JldHVybiBpbnN0YW50aWF0ZUFycmF5QnVmZmVyKGJpbmFyeUZpbGUsaW1wb3J0cyxjYWxsYmFjayl9KX0pfXJldHVybiBpbnN0YW50aWF0ZUFycmF5QnVmZmVyKGJpbmFyeUZpbGUsaW1wb3J0cyxjYWxsYmFjayl9ZnVuY3Rpb24gY3JlYXRlV2FzbSgpe3ZhciBpbmZvPXsiYSI6d2FzbUltcG9ydHN9O2Z1bmN0aW9uIHJlY2VpdmVJbnN0YW5jZShpbnN0YW5jZSxtb2R1bGUpe3dhc21FeHBvcnRzPWluc3RhbmNlLmV4cG9ydHM7cmVnaXN0ZXJUTFNJbml0KHdhc21FeHBvcnRzWyJLYSJdKTt3YXNtVGFibGU9d2FzbUV4cG9ydHNbIkdhIl07YWRkT25Jbml0KHdhc21FeHBvcnRzWyJFYSJdKTt3YXNtTW9kdWxlPW1vZHVsZTtyZW1vdmVSdW5EZXBlbmRlbmN5KCJ3YXNtLWluc3RhbnRpYXRlIik7cmV0dXJuIHdhc21FeHBvcnRzfWFkZFJ1bkRlcGVuZGVuY3koIndhc20taW5zdGFudGlhdGUiKTtmdW5jdGlvbiByZWNlaXZlSW5zdGFudGlhdGlvblJlc3VsdChyZXN1bHQpe3JlY2VpdmVJbnN0YW5jZShyZXN1bHRbImluc3RhbmNlIl0scmVzdWx0WyJtb2R1bGUiXSl9aWYoTW9kdWxlWyJpbnN0YW50aWF0ZVdhc20iXSl7dHJ5e3JldHVybiBNb2R1bGVbImluc3RhbnRpYXRlV2FzbSJdKGluZm8scmVjZWl2ZUluc3RhbmNlKX1jYXRjaChlKXtlcnIoYE1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICR7ZX1gKTtyZWFkeVByb21pc2VSZWplY3QoZSl9fWluc3RhbnRpYXRlQXN5bmMod2FzbUJpbmFyeSx3YXNtQmluYXJ5RmlsZSxpbmZvLHJlY2VpdmVJbnN0YW50aWF0aW9uUmVzdWx0KS5jYXRjaChyZWFkeVByb21pc2VSZWplY3QpO3JldHVybnt9fXZhciB0ZW1wRG91YmxlO3ZhciB0ZW1wSTY0O2Z1bmN0aW9uIHhubkxvYWRXYXNtTW9kdWxlSlMoY29kZSxvZmZzZXQsb2Zmc2V0X2VuZCxpbnZhbGlkX2Z1bmN0aW9uX2luZGV4KXtjb25zdCB0YWJsZU9yaWdpbmFsU2l6ZT13YXNtVGFibGUubGVuZ3RoO2NvbnN0IGJpbmFyeT1uZXcgVWludDhBcnJheShIRUFQVTguc2xpY2UoY29kZStvZmZzZXQsY29kZStvZmZzZXRfZW5kKSk7dHJ5e3ZhciBtb2R1bGU9bmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW5hcnkpO3ZhciBpbnN0YW5jZT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobW9kdWxlLHtlbnY6e21lbW9yeTp3YXNtTWVtb3J5fX0pO2Zvcih2YXIgc3ltTmFtZSBpbiBpbnN0YW5jZS5leHBvcnRzKXt2YXIgdmFsdWU9aW5zdGFuY2UuZXhwb3J0c1tzeW1OYW1lXTthZGRGdW5jdGlvbih2YWx1ZSl9aWYodGFibGVPcmlnaW5hbFNpemU8d2FzbVRhYmxlLmxlbmd0aCl7cmV0dXJuIHRhYmxlT3JpZ2luYWxTaXplfXJldHVybiBpbnZhbGlkX2Z1bmN0aW9uX2luZGV4fWNhdGNoKGVycm9yKXtjb25zb2xlLmxvZyhlcnJvcik7cmV0dXJuIGludmFsaWRfZnVuY3Rpb25faW5kZXh9fWZ1bmN0aW9uIEV4aXRTdGF0dXMoc3RhdHVzKXt0aGlzLm5hbWU9IkV4aXRTdGF0dXMiO3RoaXMubWVzc2FnZT1gUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgke3N0YXR1c30pYDt0aGlzLnN0YXR1cz1zdGF0dXN9dmFyIHRlcm1pbmF0ZVdvcmtlcj13b3JrZXI9Pnt3b3JrZXIudGVybWluYXRlKCk7d29ya2VyLm9ubWVzc2FnZT1lPT57fX07dmFyIGtpbGxUaHJlYWQ9cHRocmVhZF9wdHI9Pnt2YXIgd29ya2VyPVBUaHJlYWQucHRocmVhZHNbcHRocmVhZF9wdHJdO2RlbGV0ZSBQVGhyZWFkLnB0aHJlYWRzW3B0aHJlYWRfcHRyXTt0ZXJtaW5hdGVXb3JrZXIod29ya2VyKTtfX2Vtc2NyaXB0ZW5fdGhyZWFkX2ZyZWVfZGF0YShwdGhyZWFkX3B0cik7UFRocmVhZC5ydW5uaW5nV29ya2Vycy5zcGxpY2UoUFRocmVhZC5ydW5uaW5nV29ya2Vycy5pbmRleE9mKHdvcmtlciksMSk7d29ya2VyLnB0aHJlYWRfcHRyPTB9O3ZhciBjYW5jZWxUaHJlYWQ9cHRocmVhZF9wdHI9Pnt2YXIgd29ya2VyPVBUaHJlYWQucHRocmVhZHNbcHRocmVhZF9wdHJdO3dvcmtlci5wb3N0TWVzc2FnZSh7ImNtZCI6ImNhbmNlbCJ9KX07dmFyIGNsZWFudXBUaHJlYWQ9cHRocmVhZF9wdHI9Pnt2YXIgd29ya2VyPVBUaHJlYWQucHRocmVhZHNbcHRocmVhZF9wdHJdO1BUaHJlYWQucmV0dXJuV29ya2VyVG9Qb29sKHdvcmtlcil9O3ZhciB6ZXJvTWVtb3J5PShhZGRyZXNzLHNpemUpPT57SEVBUFU4LmZpbGwoMCxhZGRyZXNzLGFkZHJlc3Mrc2l6ZSk7cmV0dXJuIGFkZHJlc3N9O3ZhciBzcGF3blRocmVhZD10aHJlYWRQYXJhbXM9Pnt2YXIgd29ya2VyPVBUaHJlYWQuZ2V0TmV3V29ya2VyKCk7aWYoIXdvcmtlcil7cmV0dXJuIDZ9UFRocmVhZC5ydW5uaW5nV29ya2Vycy5wdXNoKHdvcmtlcik7UFRocmVhZC5wdGhyZWFkc1t0aHJlYWRQYXJhbXMucHRocmVhZF9wdHJdPXdvcmtlcjt3b3JrZXIucHRocmVhZF9wdHI9dGhyZWFkUGFyYW1zLnB0aHJlYWRfcHRyO3ZhciBtc2c9eyJjbWQiOiJydW4iLCJzdGFydF9yb3V0aW5lIjp0aHJlYWRQYXJhbXMuc3RhcnRSb3V0aW5lLCJhcmciOnRocmVhZFBhcmFtcy5hcmcsInB0aHJlYWRfcHRyIjp0aHJlYWRQYXJhbXMucHRocmVhZF9wdHJ9O3dvcmtlci5wb3N0TWVzc2FnZShtc2csdGhyZWFkUGFyYW1zLnRyYW5zZmVyTGlzdCk7cmV0dXJuIDB9O3ZhciBydW50aW1lS2VlcGFsaXZlQ291bnRlcj0wO3ZhciBrZWVwUnVudGltZUFsaXZlPSgpPT5ub0V4aXRSdW50aW1lfHxydW50aW1lS2VlcGFsaXZlQ291bnRlcj4wO3ZhciBQQVRIPXtpc0FiczpwYXRoPT5wYXRoLmNoYXJBdCgwKT09PSIvIixzcGxpdFBhdGg6ZmlsZW5hbWU9Pnt2YXIgc3BsaXRQYXRoUmU9L14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvO3JldHVybiBzcGxpdFBhdGhSZS5leGVjKGZpbGVuYW1lKS5zbGljZSgxKX0sbm9ybWFsaXplQXJyYXk6KHBhcnRzLGFsbG93QWJvdmVSb290KT0+e3ZhciB1cD0wO2Zvcih2YXIgaT1wYXJ0cy5sZW5ndGgtMTtpPj0wO2ktLSl7dmFyIGxhc3Q9cGFydHNbaV07aWYobGFzdD09PSIuIil7cGFydHMuc3BsaWNlKGksMSl9ZWxzZSBpZihsYXN0PT09Ii4uIil7cGFydHMuc3BsaWNlKGksMSk7dXArK31lbHNlIGlmKHVwKXtwYXJ0cy5zcGxpY2UoaSwxKTt1cC0tfX1pZihhbGxvd0Fib3ZlUm9vdCl7Zm9yKDt1cDt1cC0tKXtwYXJ0cy51bnNoaWZ0KCIuLiIpfX1yZXR1cm4gcGFydHN9LG5vcm1hbGl6ZTpwYXRoPT57dmFyIGlzQWJzb2x1dGU9UEFUSC5pc0FicyhwYXRoKSx0cmFpbGluZ1NsYXNoPXBhdGguc3Vic3RyKC0xKT09PSIvIjtwYXRoPVBBVEgubm9ybWFsaXplQXJyYXkocGF0aC5zcGxpdCgiLyIpLmZpbHRlcihwPT4hIXApLCFpc0Fic29sdXRlKS5qb2luKCIvIik7aWYoIXBhdGgmJiFpc0Fic29sdXRlKXtwYXRoPSIuIn1pZihwYXRoJiZ0cmFpbGluZ1NsYXNoKXtwYXRoKz0iLyJ9cmV0dXJuKGlzQWJzb2x1dGU/Ii8iOiIiKStwYXRofSxkaXJuYW1lOnBhdGg9Pnt2YXIgcmVzdWx0PVBBVEguc3BsaXRQYXRoKHBhdGgpLHJvb3Q9cmVzdWx0WzBdLGRpcj1yZXN1bHRbMV07aWYoIXJvb3QmJiFkaXIpe3JldHVybiIuIn1pZihkaXIpe2Rpcj1kaXIuc3Vic3RyKDAsZGlyLmxlbmd0aC0xKX1yZXR1cm4gcm9vdCtkaXJ9LGJhc2VuYW1lOnBhdGg9PntpZihwYXRoPT09Ii8iKXJldHVybiIvIjtwYXRoPVBBVEgubm9ybWFsaXplKHBhdGgpO3BhdGg9cGF0aC5yZXBsYWNlKC9cLyQvLCIiKTt2YXIgbGFzdFNsYXNoPXBhdGgubGFzdEluZGV4T2YoIi8iKTtpZihsYXN0U2xhc2g9PT0tMSlyZXR1cm4gcGF0aDtyZXR1cm4gcGF0aC5zdWJzdHIobGFzdFNsYXNoKzEpfSxqb2luOmZ1bmN0aW9uKCl7dmFyIHBhdGhzPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIFBBVEgubm9ybWFsaXplKHBhdGhzLmpvaW4oIi8iKSl9LGpvaW4yOihsLHIpPT5QQVRILm5vcm1hbGl6ZShsKyIvIityKX07dmFyIGluaXRSYW5kb21GaWxsPSgpPT57aWYodHlwZW9mIGNyeXB0bz09Im9iamVjdCImJnR5cGVvZiBjcnlwdG9bImdldFJhbmRvbVZhbHVlcyJdPT0iZnVuY3Rpb24iKXtyZXR1cm4gdmlldz0+KHZpZXcuc2V0KGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkodmlldy5ieXRlTGVuZ3RoKSkpLHZpZXcpfWVsc2UgYWJvcnQoImluaXRSYW5kb21EZXZpY2UiKX07dmFyIHJhbmRvbUZpbGw9dmlldz0+KHJhbmRvbUZpbGw9aW5pdFJhbmRvbUZpbGwoKSkodmlldyk7dmFyIFBBVEhfRlM9e3Jlc29sdmU6ZnVuY3Rpb24oKXt2YXIgcmVzb2x2ZWRQYXRoPSIiLHJlc29sdmVkQWJzb2x1dGU9ZmFsc2U7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgtMTtpPj0tMSYmIXJlc29sdmVkQWJzb2x1dGU7aS0tKXt2YXIgcGF0aD1pPj0wP2FyZ3VtZW50c1tpXTpGUy5jd2QoKTtpZih0eXBlb2YgcGF0aCE9InN0cmluZyIpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzIil9ZWxzZSBpZighcGF0aCl7cmV0dXJuIiJ9cmVzb2x2ZWRQYXRoPXBhdGgrIi8iK3Jlc29sdmVkUGF0aDtyZXNvbHZlZEFic29sdXRlPVBBVEguaXNBYnMocGF0aCl9cmVzb2x2ZWRQYXRoPVBBVEgubm9ybWFsaXplQXJyYXkocmVzb2x2ZWRQYXRoLnNwbGl0KCIvIikuZmlsdGVyKHA9PiEhcCksIXJlc29sdmVkQWJzb2x1dGUpLmpvaW4oIi8iKTtyZXR1cm4ocmVzb2x2ZWRBYnNvbHV0ZT8iLyI6IiIpK3Jlc29sdmVkUGF0aHx8Ii4ifSxyZWxhdGl2ZTooZnJvbSx0byk9Pntmcm9tPVBBVEhfRlMucmVzb2x2ZShmcm9tKS5zdWJzdHIoMSk7dG89UEFUSF9GUy5yZXNvbHZlKHRvKS5zdWJzdHIoMSk7ZnVuY3Rpb24gdHJpbShhcnIpe3ZhciBzdGFydD0wO2Zvcig7c3RhcnQ8YXJyLmxlbmd0aDtzdGFydCsrKXtpZihhcnJbc3RhcnRdIT09IiIpYnJlYWt9dmFyIGVuZD1hcnIubGVuZ3RoLTE7Zm9yKDtlbmQ+PTA7ZW5kLS0pe2lmKGFycltlbmRdIT09IiIpYnJlYWt9aWYoc3RhcnQ+ZW5kKXJldHVybltdO3JldHVybiBhcnIuc2xpY2Uoc3RhcnQsZW5kLXN0YXJ0KzEpfXZhciBmcm9tUGFydHM9dHJpbShmcm9tLnNwbGl0KCIvIikpO3ZhciB0b1BhcnRzPXRyaW0odG8uc3BsaXQoIi8iKSk7dmFyIGxlbmd0aD1NYXRoLm1pbihmcm9tUGFydHMubGVuZ3RoLHRvUGFydHMubGVuZ3RoKTt2YXIgc2FtZVBhcnRzTGVuZ3RoPWxlbmd0aDtmb3IodmFyIGk9MDtpPGxlbmd0aDtpKyspe2lmKGZyb21QYXJ0c1tpXSE9PXRvUGFydHNbaV0pe3NhbWVQYXJ0c0xlbmd0aD1pO2JyZWFrfX12YXIgb3V0cHV0UGFydHM9W107Zm9yKHZhciBpPXNhbWVQYXJ0c0xlbmd0aDtpPGZyb21QYXJ0cy5sZW5ndGg7aSsrKXtvdXRwdXRQYXJ0cy5wdXNoKCIuLiIpfW91dHB1dFBhcnRzPW91dHB1dFBhcnRzLmNvbmNhdCh0b1BhcnRzLnNsaWNlKHNhbWVQYXJ0c0xlbmd0aCkpO3JldHVybiBvdXRwdXRQYXJ0cy5qb2luKCIvIil9fTt2YXIgVVRGOERlY29kZXI9dHlwZW9mIFRleHREZWNvZGVyIT0idW5kZWZpbmVkIj9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp1bmRlZmluZWQ7dmFyIFVURjhBcnJheVRvU3RyaW5nPShoZWFwT3JBcnJheSxpZHgsbWF4Qnl0ZXNUb1JlYWQpPT57dmFyIGVuZElkeD1pZHgrbWF4Qnl0ZXNUb1JlYWQ7dmFyIGVuZFB0cj1pZHg7d2hpbGUoaGVhcE9yQXJyYXlbZW5kUHRyXSYmIShlbmRQdHI+PWVuZElkeCkpKytlbmRQdHI7aWYoZW5kUHRyLWlkeD4xNiYmaGVhcE9yQXJyYXkuYnVmZmVyJiZVVEY4RGVjb2Rlcil7cmV0dXJuIFVURjhEZWNvZGVyLmRlY29kZShoZWFwT3JBcnJheS5idWZmZXIgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9oZWFwT3JBcnJheS5zbGljZShpZHgsZW5kUHRyKTpoZWFwT3JBcnJheS5zdWJhcnJheShpZHgsZW5kUHRyKSl9dmFyIHN0cj0iIjt3aGlsZShpZHg8ZW5kUHRyKXt2YXIgdTA9aGVhcE9yQXJyYXlbaWR4KytdO2lmKCEodTAmMTI4KSl7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHUwKTtjb250aW51ZX12YXIgdTE9aGVhcE9yQXJyYXlbaWR4KytdJjYzO2lmKCh1MCYyMjQpPT0xOTIpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSgodTAmMzEpPDw2fHUxKTtjb250aW51ZX12YXIgdTI9aGVhcE9yQXJyYXlbaWR4KytdJjYzO2lmKCh1MCYyNDApPT0yMjQpe3UwPSh1MCYxNSk8PDEyfHUxPDw2fHUyfWVsc2V7dTA9KHUwJjcpPDwxOHx1MTw8MTJ8dTI8PDZ8aGVhcE9yQXJyYXlbaWR4KytdJjYzfWlmKHUwPDY1NTM2KXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUodTApfWVsc2V7dmFyIGNoPXUwLTY1NTM2O3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxjaD4+MTAsNTYzMjB8Y2gmMTAyMyl9fXJldHVybiBzdHJ9O3ZhciBGU19zdGRpbl9nZXRDaGFyX2J1ZmZlcj1bXTt2YXIgbGVuZ3RoQnl0ZXNVVEY4PXN0cj0+e3ZhciBsZW49MDtmb3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7KytpKXt2YXIgYz1zdHIuY2hhckNvZGVBdChpKTtpZihjPD0xMjcpe2xlbisrfWVsc2UgaWYoYzw9MjA0Nyl7bGVuKz0yfWVsc2UgaWYoYz49NTUyOTYmJmM8PTU3MzQzKXtsZW4rPTQ7KytpfWVsc2V7bGVuKz0zfX1yZXR1cm4gbGVufTt2YXIgc3RyaW5nVG9VVEY4QXJyYXk9KHN0cixoZWFwLG91dElkeCxtYXhCeXRlc1RvV3JpdGUpPT57aWYoIShtYXhCeXRlc1RvV3JpdGU+MCkpcmV0dXJuIDA7dmFyIHN0YXJ0SWR4PW91dElkeDt2YXIgZW5kSWR4PW91dElkeCttYXhCeXRlc1RvV3JpdGUtMTtmb3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7KytpKXt2YXIgdT1zdHIuY2hhckNvZGVBdChpKTtpZih1Pj01NTI5NiYmdTw9NTczNDMpe3ZhciB1MT1zdHIuY2hhckNvZGVBdCgrK2kpO3U9NjU1MzYrKCh1JjEwMjMpPDwxMCl8dTEmMTAyM31pZih1PD0xMjcpe2lmKG91dElkeD49ZW5kSWR4KWJyZWFrO2hlYXBbb3V0SWR4KytdPXV9ZWxzZSBpZih1PD0yMDQ3KXtpZihvdXRJZHgrMT49ZW5kSWR4KWJyZWFrO2hlYXBbb3V0SWR4KytdPTE5Mnx1Pj42O2hlYXBbb3V0SWR4KytdPTEyOHx1JjYzfWVsc2UgaWYodTw9NjU1MzUpe2lmKG91dElkeCsyPj1lbmRJZHgpYnJlYWs7aGVhcFtvdXRJZHgrK109MjI0fHU+PjEyO2hlYXBbb3V0SWR4KytdPTEyOHx1Pj42JjYzO2hlYXBbb3V0SWR4KytdPTEyOHx1JjYzfWVsc2V7aWYob3V0SWR4KzM+PWVuZElkeClicmVhaztoZWFwW291dElkeCsrXT0yNDB8dT4+MTg7aGVhcFtvdXRJZHgrK109MTI4fHU+PjEyJjYzO2hlYXBbb3V0SWR4KytdPTEyOHx1Pj42JjYzO2hlYXBbb3V0SWR4KytdPTEyOHx1JjYzfX1oZWFwW291dElkeF09MDtyZXR1cm4gb3V0SWR4LXN0YXJ0SWR4fTtmdW5jdGlvbiBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5neSxkb250QWRkTnVsbCxsZW5ndGgpe3ZhciBsZW49bGVuZ3RoPjA/bGVuZ3RoOmxlbmd0aEJ5dGVzVVRGOChzdHJpbmd5KSsxO3ZhciB1OGFycmF5PW5ldyBBcnJheShsZW4pO3ZhciBudW1CeXRlc1dyaXR0ZW49c3RyaW5nVG9VVEY4QXJyYXkoc3RyaW5neSx1OGFycmF5LDAsdThhcnJheS5sZW5ndGgpO2lmKGRvbnRBZGROdWxsKXU4YXJyYXkubGVuZ3RoPW51bUJ5dGVzV3JpdHRlbjtyZXR1cm4gdThhcnJheX12YXIgRlNfc3RkaW5fZ2V0Q2hhcj0oKT0+e2lmKCFGU19zdGRpbl9nZXRDaGFyX2J1ZmZlci5sZW5ndGgpe3ZhciByZXN1bHQ9bnVsbDtpZih0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmdHlwZW9mIHdpbmRvdy5wcm9tcHQ9PSJmdW5jdGlvbiIpe3Jlc3VsdD13aW5kb3cucHJvbXB0KCJJbnB1dDogIik7aWYocmVzdWx0IT09bnVsbCl7cmVzdWx0Kz0iXG4ifX1lbHNlIGlmKHR5cGVvZiByZWFkbGluZT09ImZ1bmN0aW9uIil7cmVzdWx0PXJlYWRsaW5lKCk7aWYocmVzdWx0IT09bnVsbCl7cmVzdWx0Kz0iXG4ifX1pZighcmVzdWx0KXtyZXR1cm4gbnVsbH1GU19zdGRpbl9nZXRDaGFyX2J1ZmZlcj1pbnRBcnJheUZyb21TdHJpbmcocmVzdWx0LHRydWUpfXJldHVybiBGU19zdGRpbl9nZXRDaGFyX2J1ZmZlci5zaGlmdCgpfTt2YXIgVFRZPXt0dHlzOltdLGluaXQoKXt9LHNodXRkb3duKCl7fSxyZWdpc3RlcihkZXYsb3BzKXtUVFkudHR5c1tkZXZdPXtpbnB1dDpbXSxvdXRwdXQ6W10sb3BzOm9wc307RlMucmVnaXN0ZXJEZXZpY2UoZGV2LFRUWS5zdHJlYW1fb3BzKX0sc3RyZWFtX29wczp7b3BlbihzdHJlYW0pe3ZhciB0dHk9VFRZLnR0eXNbc3RyZWFtLm5vZGUucmRldl07aWYoIXR0eSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDMpfXN0cmVhbS50dHk9dHR5O3N0cmVhbS5zZWVrYWJsZT1mYWxzZX0sY2xvc2Uoc3RyZWFtKXtzdHJlYW0udHR5Lm9wcy5mc3luYyhzdHJlYW0udHR5KX0sZnN5bmMoc3RyZWFtKXtzdHJlYW0udHR5Lm9wcy5mc3luYyhzdHJlYW0udHR5KX0scmVhZChzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zKXtpZighc3RyZWFtLnR0eXx8IXN0cmVhbS50dHkub3BzLmdldF9jaGFyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2MCl9dmFyIGJ5dGVzUmVhZD0wO2Zvcih2YXIgaT0wO2k8bGVuZ3RoO2krKyl7dmFyIHJlc3VsdDt0cnl7cmVzdWx0PXN0cmVhbS50dHkub3BzLmdldF9jaGFyKHN0cmVhbS50dHkpfWNhdGNoKGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI5KX1pZihyZXN1bHQ9PT11bmRlZmluZWQmJmJ5dGVzUmVhZD09PTApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDYpfWlmKHJlc3VsdD09PW51bGx8fHJlc3VsdD09PXVuZGVmaW5lZClicmVhaztieXRlc1JlYWQrKztidWZmZXJbb2Zmc2V0K2ldPXJlc3VsdH1pZihieXRlc1JlYWQpe3N0cmVhbS5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpfXJldHVybiBieXRlc1JlYWR9LHdyaXRlKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3Mpe2lmKCFzdHJlYW0udHR5fHwhc3RyZWFtLnR0eS5vcHMucHV0X2NoYXIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDYwKX10cnl7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXtzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcihzdHJlYW0udHR5LGJ1ZmZlcltvZmZzZXQraV0pfX1jYXRjaChlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOSl9aWYobGVuZ3RoKXtzdHJlYW0ubm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKX1yZXR1cm4gaX19LGRlZmF1bHRfdHR5X29wczp7Z2V0X2NoYXIodHR5KXtyZXR1cm4gRlNfc3RkaW5fZ2V0Q2hhcigpfSxwdXRfY2hhcih0dHksdmFsKXtpZih2YWw9PT1udWxsfHx2YWw9PT0xMCl7b3V0KFVURjhBcnJheVRvU3RyaW5nKHR0eS5vdXRwdXQsMCkpO3R0eS5vdXRwdXQ9W119ZWxzZXtpZih2YWwhPTApdHR5Lm91dHB1dC5wdXNoKHZhbCl9fSxmc3luYyh0dHkpe2lmKHR0eS5vdXRwdXQmJnR0eS5vdXRwdXQubGVuZ3RoPjApe291dChVVEY4QXJyYXlUb1N0cmluZyh0dHkub3V0cHV0LDApKTt0dHkub3V0cHV0PVtdfX0saW9jdGxfdGNnZXRzKHR0eSl7cmV0dXJue2NfaWZsYWc6MjU4NTYsY19vZmxhZzo1LGNfY2ZsYWc6MTkxLGNfbGZsYWc6MzUzODcsY19jYzpbMywyOCwxMjcsMjEsNCwwLDEsMCwxNywxOSwyNiwwLDE4LDE1LDIzLDIyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdfX0saW9jdGxfdGNzZXRzKHR0eSxvcHRpb25hbF9hY3Rpb25zLGRhdGEpe3JldHVybiAwfSxpb2N0bF90aW9jZ3dpbnN6KHR0eSl7cmV0dXJuWzI0LDgwXX19LGRlZmF1bHRfdHR5MV9vcHM6e3B1dF9jaGFyKHR0eSx2YWwpe2lmKHZhbD09PW51bGx8fHZhbD09PTEwKXtlcnIoVVRGOEFycmF5VG9TdHJpbmcodHR5Lm91dHB1dCwwKSk7dHR5Lm91dHB1dD1bXX1lbHNle2lmKHZhbCE9MCl0dHkub3V0cHV0LnB1c2godmFsKX19LGZzeW5jKHR0eSl7aWYodHR5Lm91dHB1dCYmdHR5Lm91dHB1dC5sZW5ndGg+MCl7ZXJyKFVURjhBcnJheVRvU3RyaW5nKHR0eS5vdXRwdXQsMCkpO3R0eS5vdXRwdXQ9W119fX19O3ZhciBhbGlnbk1lbW9yeT0oc2l6ZSxhbGlnbm1lbnQpPT5NYXRoLmNlaWwoc2l6ZS9hbGlnbm1lbnQpKmFsaWdubWVudDt2YXIgbW1hcEFsbG9jPXNpemU9PntzaXplPWFsaWduTWVtb3J5KHNpemUsNjU1MzYpO3ZhciBwdHI9X2Vtc2NyaXB0ZW5fYnVpbHRpbl9tZW1hbGlnbig2NTUzNixzaXplKTtpZighcHRyKXJldHVybiAwO3JldHVybiB6ZXJvTWVtb3J5KHB0cixzaXplKX07dmFyIE1FTUZTPXtvcHNfdGFibGU6bnVsbCxtb3VudChtb3VudCl7cmV0dXJuIE1FTUZTLmNyZWF0ZU5vZGUobnVsbCwiLyIsMTYzODR8NTExLDApfSxjcmVhdGVOb2RlKHBhcmVudCxuYW1lLG1vZGUsZGV2KXtpZihGUy5pc0Jsa2Rldihtb2RlKXx8RlMuaXNGSUZPKG1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9aWYoIU1FTUZTLm9wc190YWJsZSl7TUVNRlMub3BzX3RhYmxlPXtkaXI6e25vZGU6e2dldGF0dHI6TUVNRlMubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOk1FTUZTLm5vZGVfb3BzLnNldGF0dHIsbG9va3VwOk1FTUZTLm5vZGVfb3BzLmxvb2t1cCxta25vZDpNRU1GUy5ub2RlX29wcy5ta25vZCxyZW5hbWU6TUVNRlMubm9kZV9vcHMucmVuYW1lLHVubGluazpNRU1GUy5ub2RlX29wcy51bmxpbmsscm1kaXI6TUVNRlMubm9kZV9vcHMucm1kaXIscmVhZGRpcjpNRU1GUy5ub2RlX29wcy5yZWFkZGlyLHN5bWxpbms6TUVNRlMubm9kZV9vcHMuc3ltbGlua30sc3RyZWFtOntsbHNlZWs6TUVNRlMuc3RyZWFtX29wcy5sbHNlZWt9fSxmaWxlOntub2RlOntnZXRhdHRyOk1FTUZTLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjpNRU1GUy5ub2RlX29wcy5zZXRhdHRyfSxzdHJlYW06e2xsc2VlazpNRU1GUy5zdHJlYW1fb3BzLmxsc2VlayxyZWFkOk1FTUZTLnN0cmVhbV9vcHMucmVhZCx3cml0ZTpNRU1GUy5zdHJlYW1fb3BzLndyaXRlLGFsbG9jYXRlOk1FTUZTLnN0cmVhbV9vcHMuYWxsb2NhdGUsbW1hcDpNRU1GUy5zdHJlYW1fb3BzLm1tYXAsbXN5bmM6TUVNRlMuc3RyZWFtX29wcy5tc3luY319LGxpbms6e25vZGU6e2dldGF0dHI6TUVNRlMubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOk1FTUZTLm5vZGVfb3BzLnNldGF0dHIscmVhZGxpbms6TUVNRlMubm9kZV9vcHMucmVhZGxpbmt9LHN0cmVhbTp7fX0sY2hyZGV2Ontub2RlOntnZXRhdHRyOk1FTUZTLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjpNRU1GUy5ub2RlX29wcy5zZXRhdHRyfSxzdHJlYW06RlMuY2hyZGV2X3N0cmVhbV9vcHN9fX12YXIgbm9kZT1GUy5jcmVhdGVOb2RlKHBhcmVudCxuYW1lLG1vZGUsZGV2KTtpZihGUy5pc0Rpcihub2RlLm1vZGUpKXtub2RlLm5vZGVfb3BzPU1FTUZTLm9wc190YWJsZS5kaXIubm9kZTtub2RlLnN0cmVhbV9vcHM9TUVNRlMub3BzX3RhYmxlLmRpci5zdHJlYW07bm9kZS5jb250ZW50cz17fX1lbHNlIGlmKEZTLmlzRmlsZShub2RlLm1vZGUpKXtub2RlLm5vZGVfb3BzPU1FTUZTLm9wc190YWJsZS5maWxlLm5vZGU7bm9kZS5zdHJlYW1fb3BzPU1FTUZTLm9wc190YWJsZS5maWxlLnN0cmVhbTtub2RlLnVzZWRCeXRlcz0wO25vZGUuY29udGVudHM9bnVsbH1lbHNlIGlmKEZTLmlzTGluayhub2RlLm1vZGUpKXtub2RlLm5vZGVfb3BzPU1FTUZTLm9wc190YWJsZS5saW5rLm5vZGU7bm9kZS5zdHJlYW1fb3BzPU1FTUZTLm9wc190YWJsZS5saW5rLnN0cmVhbX1lbHNlIGlmKEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkpe25vZGUubm9kZV9vcHM9TUVNRlMub3BzX3RhYmxlLmNocmRldi5ub2RlO25vZGUuc3RyZWFtX29wcz1NRU1GUy5vcHNfdGFibGUuY2hyZGV2LnN0cmVhbX1ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpO2lmKHBhcmVudCl7cGFyZW50LmNvbnRlbnRzW25hbWVdPW5vZGU7cGFyZW50LnRpbWVzdGFtcD1ub2RlLnRpbWVzdGFtcH1yZXR1cm4gbm9kZX0sZ2V0RmlsZURhdGFBc1R5cGVkQXJyYXkobm9kZSl7aWYoIW5vZGUuY29udGVudHMpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2lmKG5vZGUuY29udGVudHMuc3ViYXJyYXkpcmV0dXJuIG5vZGUuY29udGVudHMuc3ViYXJyYXkoMCxub2RlLnVzZWRCeXRlcyk7cmV0dXJuIG5ldyBVaW50OEFycmF5KG5vZGUuY29udGVudHMpfSxleHBhbmRGaWxlU3RvcmFnZShub2RlLG5ld0NhcGFjaXR5KXt2YXIgcHJldkNhcGFjaXR5PW5vZGUuY29udGVudHM/bm9kZS5jb250ZW50cy5sZW5ndGg6MDtpZihwcmV2Q2FwYWNpdHk+PW5ld0NhcGFjaXR5KXJldHVybjt2YXIgQ0FQQUNJVFlfRE9VQkxJTkdfTUFYPTEwMjQqMTAyNDtuZXdDYXBhY2l0eT1NYXRoLm1heChuZXdDYXBhY2l0eSxwcmV2Q2FwYWNpdHkqKHByZXZDYXBhY2l0eTxDQVBBQ0lUWV9ET1VCTElOR19NQVg/MjoxLjEyNSk+Pj4wKTtpZihwcmV2Q2FwYWNpdHkhPTApbmV3Q2FwYWNpdHk9TWF0aC5tYXgobmV3Q2FwYWNpdHksMjU2KTt2YXIgb2xkQ29udGVudHM9bm9kZS5jb250ZW50cztub2RlLmNvbnRlbnRzPW5ldyBVaW50OEFycmF5KG5ld0NhcGFjaXR5KTtpZihub2RlLnVzZWRCeXRlcz4wKW5vZGUuY29udGVudHMuc2V0KG9sZENvbnRlbnRzLnN1YmFycmF5KDAsbm9kZS51c2VkQnl0ZXMpLDApfSxyZXNpemVGaWxlU3RvcmFnZShub2RlLG5ld1NpemUpe2lmKG5vZGUudXNlZEJ5dGVzPT1uZXdTaXplKXJldHVybjtpZihuZXdTaXplPT0wKXtub2RlLmNvbnRlbnRzPW51bGw7bm9kZS51c2VkQnl0ZXM9MH1lbHNle3ZhciBvbGRDb250ZW50cz1ub2RlLmNvbnRlbnRzO25vZGUuY29udGVudHM9bmV3IFVpbnQ4QXJyYXkobmV3U2l6ZSk7aWYob2xkQ29udGVudHMpe25vZGUuY29udGVudHMuc2V0KG9sZENvbnRlbnRzLnN1YmFycmF5KDAsTWF0aC5taW4obmV3U2l6ZSxub2RlLnVzZWRCeXRlcykpKX1ub2RlLnVzZWRCeXRlcz1uZXdTaXplfX0sbm9kZV9vcHM6e2dldGF0dHIobm9kZSl7dmFyIGF0dHI9e307YXR0ci5kZXY9RlMuaXNDaHJkZXYobm9kZS5tb2RlKT9ub2RlLmlkOjE7YXR0ci5pbm89bm9kZS5pZDthdHRyLm1vZGU9bm9kZS5tb2RlO2F0dHIubmxpbms9MTthdHRyLnVpZD0wO2F0dHIuZ2lkPTA7YXR0ci5yZGV2PW5vZGUucmRldjtpZihGUy5pc0Rpcihub2RlLm1vZGUpKXthdHRyLnNpemU9NDA5Nn1lbHNlIGlmKEZTLmlzRmlsZShub2RlLm1vZGUpKXthdHRyLnNpemU9bm9kZS51c2VkQnl0ZXN9ZWxzZSBpZihGUy5pc0xpbmsobm9kZS5tb2RlKSl7YXR0ci5zaXplPW5vZGUubGluay5sZW5ndGh9ZWxzZXthdHRyLnNpemU9MH1hdHRyLmF0aW1lPW5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTthdHRyLm10aW1lPW5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTthdHRyLmN0aW1lPW5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTthdHRyLmJsa3NpemU9NDA5NjthdHRyLmJsb2Nrcz1NYXRoLmNlaWwoYXR0ci5zaXplL2F0dHIuYmxrc2l6ZSk7cmV0dXJuIGF0dHJ9LHNldGF0dHIobm9kZSxhdHRyKXtpZihhdHRyLm1vZGUhPT11bmRlZmluZWQpe25vZGUubW9kZT1hdHRyLm1vZGV9aWYoYXR0ci50aW1lc3RhbXAhPT11bmRlZmluZWQpe25vZGUudGltZXN0YW1wPWF0dHIudGltZXN0YW1wfWlmKGF0dHIuc2l6ZSE9PXVuZGVmaW5lZCl7TUVNRlMucmVzaXplRmlsZVN0b3JhZ2Uobm9kZSxhdHRyLnNpemUpfX0sbG9va3VwKHBhcmVudCxuYW1lKXt0aHJvdyBGUy5nZW5lcmljRXJyb3JzWzQ0XX0sbWtub2QocGFyZW50LG5hbWUsbW9kZSxkZXYpe3JldHVybiBNRU1GUy5jcmVhdGVOb2RlKHBhcmVudCxuYW1lLG1vZGUsZGV2KX0scmVuYW1lKG9sZF9ub2RlLG5ld19kaXIsbmV3X25hbWUpe2lmKEZTLmlzRGlyKG9sZF9ub2RlLm1vZGUpKXt2YXIgbmV3X25vZGU7dHJ5e25ld19ub2RlPUZTLmxvb2t1cE5vZGUobmV3X2RpcixuZXdfbmFtZSl9Y2F0Y2goZSl7fWlmKG5ld19ub2RlKXtmb3IodmFyIGkgaW4gbmV3X25vZGUuY29udGVudHMpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDU1KX19fWRlbGV0ZSBvbGRfbm9kZS5wYXJlbnQuY29udGVudHNbb2xkX25vZGUubmFtZV07b2xkX25vZGUucGFyZW50LnRpbWVzdGFtcD1EYXRlLm5vdygpO29sZF9ub2RlLm5hbWU9bmV3X25hbWU7bmV3X2Rpci5jb250ZW50c1tuZXdfbmFtZV09b2xkX25vZGU7bmV3X2Rpci50aW1lc3RhbXA9b2xkX25vZGUucGFyZW50LnRpbWVzdGFtcDtvbGRfbm9kZS5wYXJlbnQ9bmV3X2Rpcn0sdW5saW5rKHBhcmVudCxuYW1lKXtkZWxldGUgcGFyZW50LmNvbnRlbnRzW25hbWVdO3BhcmVudC50aW1lc3RhbXA9RGF0ZS5ub3coKX0scm1kaXIocGFyZW50LG5hbWUpe3ZhciBub2RlPUZTLmxvb2t1cE5vZGUocGFyZW50LG5hbWUpO2Zvcih2YXIgaSBpbiBub2RlLmNvbnRlbnRzKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig1NSl9ZGVsZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXTtwYXJlbnQudGltZXN0YW1wPURhdGUubm93KCl9LHJlYWRkaXIobm9kZSl7dmFyIGVudHJpZXM9WyIuIiwiLi4iXTtmb3IodmFyIGtleSBpbiBub2RlLmNvbnRlbnRzKXtpZighbm9kZS5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShrZXkpKXtjb250aW51ZX1lbnRyaWVzLnB1c2goa2V5KX1yZXR1cm4gZW50cmllc30sc3ltbGluayhwYXJlbnQsbmV3bmFtZSxvbGRwYXRoKXt2YXIgbm9kZT1NRU1GUy5jcmVhdGVOb2RlKHBhcmVudCxuZXduYW1lLDUxMXw0MDk2MCwwKTtub2RlLmxpbms9b2xkcGF0aDtyZXR1cm4gbm9kZX0scmVhZGxpbmsobm9kZSl7aWYoIUZTLmlzTGluayhub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOCl9cmV0dXJuIG5vZGUubGlua319LHN0cmVhbV9vcHM6e3JlYWQoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKXt2YXIgY29udGVudHM9c3RyZWFtLm5vZGUuY29udGVudHM7aWYocG9zaXRpb24+PXN0cmVhbS5ub2RlLnVzZWRCeXRlcylyZXR1cm4gMDt2YXIgc2l6ZT1NYXRoLm1pbihzdHJlYW0ubm9kZS51c2VkQnl0ZXMtcG9zaXRpb24sbGVuZ3RoKTtpZihzaXplPjgmJmNvbnRlbnRzLnN1YmFycmF5KXtidWZmZXIuc2V0KGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0aW9uLHBvc2l0aW9uK3NpemUpLG9mZnNldCl9ZWxzZXtmb3IodmFyIGk9MDtpPHNpemU7aSsrKWJ1ZmZlcltvZmZzZXQraV09Y29udGVudHNbcG9zaXRpb24raV19cmV0dXJuIHNpemV9LHdyaXRlKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbixjYW5Pd24pe2lmKCFsZW5ndGgpcmV0dXJuIDA7dmFyIG5vZGU9c3RyZWFtLm5vZGU7bm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKTtpZihidWZmZXIuc3ViYXJyYXkmJighbm9kZS5jb250ZW50c3x8bm9kZS5jb250ZW50cy5zdWJhcnJheSkpe2lmKGNhbk93bil7bm9kZS5jb250ZW50cz1idWZmZXIuc3ViYXJyYXkob2Zmc2V0LG9mZnNldCtsZW5ndGgpO25vZGUudXNlZEJ5dGVzPWxlbmd0aDtyZXR1cm4gbGVuZ3RofWVsc2UgaWYobm9kZS51c2VkQnl0ZXM9PT0wJiZwb3NpdGlvbj09PTApe25vZGUuY29udGVudHM9YnVmZmVyLnNsaWNlKG9mZnNldCxvZmZzZXQrbGVuZ3RoKTtub2RlLnVzZWRCeXRlcz1sZW5ndGg7cmV0dXJuIGxlbmd0aH1lbHNlIGlmKHBvc2l0aW9uK2xlbmd0aDw9bm9kZS51c2VkQnl0ZXMpe25vZGUuY29udGVudHMuc2V0KGJ1ZmZlci5zdWJhcnJheShvZmZzZXQsb2Zmc2V0K2xlbmd0aCkscG9zaXRpb24pO3JldHVybiBsZW5ndGh9fU1FTUZTLmV4cGFuZEZpbGVTdG9yYWdlKG5vZGUscG9zaXRpb24rbGVuZ3RoKTtpZihub2RlLmNvbnRlbnRzLnN1YmFycmF5JiZidWZmZXIuc3ViYXJyYXkpe25vZGUuY29udGVudHMuc2V0KGJ1ZmZlci5zdWJhcnJheShvZmZzZXQsb2Zmc2V0K2xlbmd0aCkscG9zaXRpb24pfWVsc2V7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXtub2RlLmNvbnRlbnRzW3Bvc2l0aW9uK2ldPWJ1ZmZlcltvZmZzZXQraV19fW5vZGUudXNlZEJ5dGVzPU1hdGgubWF4KG5vZGUudXNlZEJ5dGVzLHBvc2l0aW9uK2xlbmd0aCk7cmV0dXJuIGxlbmd0aH0sbGxzZWVrKHN0cmVhbSxvZmZzZXQsd2hlbmNlKXt2YXIgcG9zaXRpb249b2Zmc2V0O2lmKHdoZW5jZT09PTEpe3Bvc2l0aW9uKz1zdHJlYW0ucG9zaXRpb259ZWxzZSBpZih3aGVuY2U9PT0yKXtpZihGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpe3Bvc2l0aW9uKz1zdHJlYW0ubm9kZS51c2VkQnl0ZXN9fWlmKHBvc2l0aW9uPDApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX1yZXR1cm4gcG9zaXRpb259LGFsbG9jYXRlKHN0cmVhbSxvZmZzZXQsbGVuZ3RoKXtNRU1GUy5leHBhbmRGaWxlU3RvcmFnZShzdHJlYW0ubm9kZSxvZmZzZXQrbGVuZ3RoKTtzdHJlYW0ubm9kZS51c2VkQnl0ZXM9TWF0aC5tYXgoc3RyZWFtLm5vZGUudXNlZEJ5dGVzLG9mZnNldCtsZW5ndGgpfSxtbWFwKHN0cmVhbSxsZW5ndGgscG9zaXRpb24scHJvdCxmbGFncyl7aWYoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDMpfXZhciBwdHI7dmFyIGFsbG9jYXRlZDt2YXIgY29udGVudHM9c3RyZWFtLm5vZGUuY29udGVudHM7aWYoIShmbGFncyYyKSYmY29udGVudHMuYnVmZmVyPT09SEVBUDguYnVmZmVyKXthbGxvY2F0ZWQ9ZmFsc2U7cHRyPWNvbnRlbnRzLmJ5dGVPZmZzZXR9ZWxzZXtpZihwb3NpdGlvbj4wfHxwb3NpdGlvbitsZW5ndGg8Y29udGVudHMubGVuZ3RoKXtpZihjb250ZW50cy5zdWJhcnJheSl7Y29udGVudHM9Y29udGVudHMuc3ViYXJyYXkocG9zaXRpb24scG9zaXRpb24rbGVuZ3RoKX1lbHNle2NvbnRlbnRzPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNvbnRlbnRzLHBvc2l0aW9uLHBvc2l0aW9uK2xlbmd0aCl9fWFsbG9jYXRlZD10cnVlO3B0cj1tbWFwQWxsb2MobGVuZ3RoKTtpZighcHRyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0OCl9SEVBUDguc2V0KGNvbnRlbnRzLHB0cil9cmV0dXJue3B0cjpwdHIsYWxsb2NhdGVkOmFsbG9jYXRlZH19LG1zeW5jKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxtbWFwRmxhZ3Mpe01FTUZTLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFtLGJ1ZmZlciwwLGxlbmd0aCxvZmZzZXQsZmFsc2UpO3JldHVybiAwfX19O3ZhciBhc3luY0xvYWQ9KHVybCxvbmxvYWQsb25lcnJvcixub1J1bkRlcCk9Pnt2YXIgZGVwPSFub1J1bkRlcD9nZXRVbmlxdWVSdW5EZXBlbmRlbmN5KGBhbCAke3VybH1gKToiIjtyZWFkQXN5bmModXJsLGFycmF5QnVmZmVyPT57YXNzZXJ0KGFycmF5QnVmZmVyLGBMb2FkaW5nIGRhdGEgZmlsZSAiJHt1cmx9IiBmYWlsZWQgKG5vIGFycmF5QnVmZmVyKS5gKTtvbmxvYWQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtpZihkZXApcmVtb3ZlUnVuRGVwZW5kZW5jeShkZXApfSxldmVudD0+e2lmKG9uZXJyb3Ipe29uZXJyb3IoKX1lbHNle3Rocm93YExvYWRpbmcgZGF0YSBmaWxlICIke3VybH0iIGZhaWxlZC5gfX0pO2lmKGRlcClhZGRSdW5EZXBlbmRlbmN5KGRlcCl9O3ZhciBGU19jcmVhdGVEYXRhRmlsZT0ocGFyZW50LG5hbWUsZmlsZURhdGEsY2FuUmVhZCxjYW5Xcml0ZSxjYW5Pd24pPT57RlMuY3JlYXRlRGF0YUZpbGUocGFyZW50LG5hbWUsZmlsZURhdGEsY2FuUmVhZCxjYW5Xcml0ZSxjYW5Pd24pfTt2YXIgcHJlbG9hZFBsdWdpbnM9TW9kdWxlWyJwcmVsb2FkUGx1Z2lucyJdfHxbXTt2YXIgRlNfaGFuZGxlZEJ5UHJlbG9hZFBsdWdpbj0oYnl0ZUFycmF5LGZ1bGxuYW1lLGZpbmlzaCxvbmVycm9yKT0+e2lmKHR5cGVvZiBCcm93c2VyIT0idW5kZWZpbmVkIilCcm93c2VyLmluaXQoKTt2YXIgaGFuZGxlZD1mYWxzZTtwcmVsb2FkUGx1Z2lucy5mb3JFYWNoKHBsdWdpbj0+e2lmKGhhbmRsZWQpcmV0dXJuO2lmKHBsdWdpblsiY2FuSGFuZGxlIl0oZnVsbG5hbWUpKXtwbHVnaW5bImhhbmRsZSJdKGJ5dGVBcnJheSxmdWxsbmFtZSxmaW5pc2gsb25lcnJvcik7aGFuZGxlZD10cnVlfX0pO3JldHVybiBoYW5kbGVkfTt2YXIgRlNfY3JlYXRlUHJlbG9hZGVkRmlsZT0ocGFyZW50LG5hbWUsdXJsLGNhblJlYWQsY2FuV3JpdGUsb25sb2FkLG9uZXJyb3IsZG9udENyZWF0ZUZpbGUsY2FuT3duLHByZUZpbmlzaCk9Pnt2YXIgZnVsbG5hbWU9bmFtZT9QQVRIX0ZTLnJlc29sdmUoUEFUSC5qb2luMihwYXJlbnQsbmFtZSkpOnBhcmVudDt2YXIgZGVwPWdldFVuaXF1ZVJ1bkRlcGVuZGVuY3koYGNwICR7ZnVsbG5hbWV9YCk7ZnVuY3Rpb24gcHJvY2Vzc0RhdGEoYnl0ZUFycmF5KXtmdW5jdGlvbiBmaW5pc2goYnl0ZUFycmF5KXtpZihwcmVGaW5pc2gpcHJlRmluaXNoKCk7aWYoIWRvbnRDcmVhdGVGaWxlKXtGU19jcmVhdGVEYXRhRmlsZShwYXJlbnQsbmFtZSxieXRlQXJyYXksY2FuUmVhZCxjYW5Xcml0ZSxjYW5Pd24pfWlmKG9ubG9hZClvbmxvYWQoKTtyZW1vdmVSdW5EZXBlbmRlbmN5KGRlcCl9aWYoRlNfaGFuZGxlZEJ5UHJlbG9hZFBsdWdpbihieXRlQXJyYXksZnVsbG5hbWUsZmluaXNoLCgpPT57aWYob25lcnJvcilvbmVycm9yKCk7cmVtb3ZlUnVuRGVwZW5kZW5jeShkZXApfSkpe3JldHVybn1maW5pc2goYnl0ZUFycmF5KX1hZGRSdW5EZXBlbmRlbmN5KGRlcCk7aWYodHlwZW9mIHVybD09InN0cmluZyIpe2FzeW5jTG9hZCh1cmwsYnl0ZUFycmF5PT5wcm9jZXNzRGF0YShieXRlQXJyYXkpLG9uZXJyb3IpfWVsc2V7cHJvY2Vzc0RhdGEodXJsKX19O3ZhciBGU19tb2RlU3RyaW5nVG9GbGFncz1zdHI9Pnt2YXIgZmxhZ01vZGVzPXsiciI6MCwicisiOjIsInciOjUxMnw2NHwxLCJ3KyI6NTEyfDY0fDIsImEiOjEwMjR8NjR8MSwiYSsiOjEwMjR8NjR8Mn07dmFyIGZsYWdzPWZsYWdNb2Rlc1tzdHJdO2lmKHR5cGVvZiBmbGFncz09InVuZGVmaW5lZCIpe3Rocm93IG5ldyBFcnJvcihgVW5rbm93biBmaWxlIG9wZW4gbW9kZTogJHtzdHJ9YCl9cmV0dXJuIGZsYWdzfTt2YXIgRlNfZ2V0TW9kZT0oY2FuUmVhZCxjYW5Xcml0ZSk9Pnt2YXIgbW9kZT0wO2lmKGNhblJlYWQpbW9kZXw9MjkyfDczO2lmKGNhbldyaXRlKW1vZGV8PTE0NjtyZXR1cm4gbW9kZX07dmFyIEZTPXtyb290Om51bGwsbW91bnRzOltdLGRldmljZXM6e30sc3RyZWFtczpbXSxuZXh0SW5vZGU6MSxuYW1lVGFibGU6bnVsbCxjdXJyZW50UGF0aDoiLyIsaW5pdGlhbGl6ZWQ6ZmFsc2UsaWdub3JlUGVybWlzc2lvbnM6dHJ1ZSxFcnJub0Vycm9yOm51bGwsZ2VuZXJpY0Vycm9yczp7fSxmaWxlc3lzdGVtczpudWxsLHN5bmNGU1JlcXVlc3RzOjAsbG9va3VwUGF0aChwYXRoLG9wdHM9e30pe3BhdGg9UEFUSF9GUy5yZXNvbHZlKHBhdGgpO2lmKCFwYXRoKXJldHVybntwYXRoOiIiLG5vZGU6bnVsbH07dmFyIGRlZmF1bHRzPXtmb2xsb3dfbW91bnQ6dHJ1ZSxyZWN1cnNlX2NvdW50OjB9O29wdHM9T2JqZWN0LmFzc2lnbihkZWZhdWx0cyxvcHRzKTtpZihvcHRzLnJlY3Vyc2VfY291bnQ+OCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMzIpfXZhciBwYXJ0cz1wYXRoLnNwbGl0KCIvIikuZmlsdGVyKHA9PiEhcCk7dmFyIGN1cnJlbnQ9RlMucm9vdDt2YXIgY3VycmVudF9wYXRoPSIvIjtmb3IodmFyIGk9MDtpPHBhcnRzLmxlbmd0aDtpKyspe3ZhciBpc2xhc3Q9aT09PXBhcnRzLmxlbmd0aC0xO2lmKGlzbGFzdCYmb3B0cy5wYXJlbnQpe2JyZWFrfWN1cnJlbnQ9RlMubG9va3VwTm9kZShjdXJyZW50LHBhcnRzW2ldKTtjdXJyZW50X3BhdGg9UEFUSC5qb2luMihjdXJyZW50X3BhdGgscGFydHNbaV0pO2lmKEZTLmlzTW91bnRwb2ludChjdXJyZW50KSl7aWYoIWlzbGFzdHx8aXNsYXN0JiZvcHRzLmZvbGxvd19tb3VudCl7Y3VycmVudD1jdXJyZW50Lm1vdW50ZWQucm9vdH19aWYoIWlzbGFzdHx8b3B0cy5mb2xsb3cpe3ZhciBjb3VudD0wO3doaWxlKEZTLmlzTGluayhjdXJyZW50Lm1vZGUpKXt2YXIgbGluaz1GUy5yZWFkbGluayhjdXJyZW50X3BhdGgpO2N1cnJlbnRfcGF0aD1QQVRIX0ZTLnJlc29sdmUoUEFUSC5kaXJuYW1lKGN1cnJlbnRfcGF0aCksbGluayk7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKGN1cnJlbnRfcGF0aCx7cmVjdXJzZV9jb3VudDpvcHRzLnJlY3Vyc2VfY291bnQrMX0pO2N1cnJlbnQ9bG9va3VwLm5vZGU7aWYoY291bnQrKz40MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMzIpfX19fXJldHVybntwYXRoOmN1cnJlbnRfcGF0aCxub2RlOmN1cnJlbnR9fSxnZXRQYXRoKG5vZGUpe3ZhciBwYXRoO3doaWxlKHRydWUpe2lmKEZTLmlzUm9vdChub2RlKSl7dmFyIG1vdW50PW5vZGUubW91bnQubW91bnRwb2ludDtpZighcGF0aClyZXR1cm4gbW91bnQ7cmV0dXJuIG1vdW50W21vdW50Lmxlbmd0aC0xXSE9PSIvIj9gJHttb3VudH0vJHtwYXRofWA6bW91bnQrcGF0aH1wYXRoPXBhdGg/YCR7bm9kZS5uYW1lfS8ke3BhdGh9YDpub2RlLm5hbWU7bm9kZT1ub2RlLnBhcmVudH19LGhhc2hOYW1lKHBhcmVudGlkLG5hbWUpe3ZhciBoYXNoPTA7Zm9yKHZhciBpPTA7aTxuYW1lLmxlbmd0aDtpKyspe2hhc2g9KGhhc2g8PDUpLWhhc2grbmFtZS5jaGFyQ29kZUF0KGkpfDB9cmV0dXJuKHBhcmVudGlkK2hhc2g+Pj4wKSVGUy5uYW1lVGFibGUubGVuZ3RofSxoYXNoQWRkTm9kZShub2RlKXt2YXIgaGFzaD1GUy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCxub2RlLm5hbWUpO25vZGUubmFtZV9uZXh0PUZTLm5hbWVUYWJsZVtoYXNoXTtGUy5uYW1lVGFibGVbaGFzaF09bm9kZX0saGFzaFJlbW92ZU5vZGUobm9kZSl7dmFyIGhhc2g9RlMuaGFzaE5hbWUobm9kZS5wYXJlbnQuaWQsbm9kZS5uYW1lKTtpZihGUy5uYW1lVGFibGVbaGFzaF09PT1ub2RlKXtGUy5uYW1lVGFibGVbaGFzaF09bm9kZS5uYW1lX25leHR9ZWxzZXt2YXIgY3VycmVudD1GUy5uYW1lVGFibGVbaGFzaF07d2hpbGUoY3VycmVudCl7aWYoY3VycmVudC5uYW1lX25leHQ9PT1ub2RlKXtjdXJyZW50Lm5hbWVfbmV4dD1ub2RlLm5hbWVfbmV4dDticmVha31jdXJyZW50PWN1cnJlbnQubmFtZV9uZXh0fX19LGxvb2t1cE5vZGUocGFyZW50LG5hbWUpe3ZhciBlcnJDb2RlPUZTLm1heUxvb2t1cChwYXJlbnQpO2lmKGVyckNvZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVyckNvZGUscGFyZW50KX12YXIgaGFzaD1GUy5oYXNoTmFtZShwYXJlbnQuaWQsbmFtZSk7Zm9yKHZhciBub2RlPUZTLm5hbWVUYWJsZVtoYXNoXTtub2RlO25vZGU9bm9kZS5uYW1lX25leHQpe3ZhciBub2RlTmFtZT1ub2RlLm5hbWU7aWYobm9kZS5wYXJlbnQuaWQ9PT1wYXJlbnQuaWQmJm5vZGVOYW1lPT09bmFtZSl7cmV0dXJuIG5vZGV9fXJldHVybiBGUy5sb29rdXAocGFyZW50LG5hbWUpfSxjcmVhdGVOb2RlKHBhcmVudCxuYW1lLG1vZGUscmRldil7dmFyIG5vZGU9bmV3IEZTLkZTTm9kZShwYXJlbnQsbmFtZSxtb2RlLHJkZXYpO0ZTLmhhc2hBZGROb2RlKG5vZGUpO3JldHVybiBub2RlfSxkZXN0cm95Tm9kZShub2RlKXtGUy5oYXNoUmVtb3ZlTm9kZShub2RlKX0saXNSb290KG5vZGUpe3JldHVybiBub2RlPT09bm9kZS5wYXJlbnR9LGlzTW91bnRwb2ludChub2RlKXtyZXR1cm4hIW5vZGUubW91bnRlZH0saXNGaWxlKG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTMyNzY4fSxpc0Rpcihtb2RlKXtyZXR1cm4obW9kZSY2MTQ0MCk9PT0xNjM4NH0saXNMaW5rKG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTQwOTYwfSxpc0NocmRldihtb2RlKXtyZXR1cm4obW9kZSY2MTQ0MCk9PT04MTkyfSxpc0Jsa2Rldihtb2RlKXtyZXR1cm4obW9kZSY2MTQ0MCk9PT0yNDU3Nn0saXNGSUZPKG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTQwOTZ9LGlzU29ja2V0KG1vZGUpe3JldHVybihtb2RlJjQ5MTUyKT09PTQ5MTUyfSxmbGFnc1RvUGVybWlzc2lvblN0cmluZyhmbGFnKXt2YXIgcGVybXM9WyJyIiwidyIsInJ3Il1bZmxhZyYzXTtpZihmbGFnJjUxMil7cGVybXMrPSJ3In1yZXR1cm4gcGVybXN9LG5vZGVQZXJtaXNzaW9ucyhub2RlLHBlcm1zKXtpZihGUy5pZ25vcmVQZXJtaXNzaW9ucyl7cmV0dXJuIDB9aWYocGVybXMuaW5jbHVkZXMoInIiKSYmIShub2RlLm1vZGUmMjkyKSl7cmV0dXJuIDJ9ZWxzZSBpZihwZXJtcy5pbmNsdWRlcygidyIpJiYhKG5vZGUubW9kZSYxNDYpKXtyZXR1cm4gMn1lbHNlIGlmKHBlcm1zLmluY2x1ZGVzKCJ4IikmJiEobm9kZS5tb2RlJjczKSl7cmV0dXJuIDJ9cmV0dXJuIDB9LG1heUxvb2t1cChkaXIpe3ZhciBlcnJDb2RlPUZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsIngiKTtpZihlcnJDb2RlKXJldHVybiBlcnJDb2RlO2lmKCFkaXIubm9kZV9vcHMubG9va3VwKXJldHVybiAyO3JldHVybiAwfSxtYXlDcmVhdGUoZGlyLG5hbWUpe3RyeXt2YXIgbm9kZT1GUy5sb29rdXBOb2RlKGRpcixuYW1lKTtyZXR1cm4gMjB9Y2F0Y2goZSl7fXJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCJ3eCIpfSxtYXlEZWxldGUoZGlyLG5hbWUsaXNkaXIpe3ZhciBub2RlO3RyeXtub2RlPUZTLmxvb2t1cE5vZGUoZGlyLG5hbWUpfWNhdGNoKGUpe3JldHVybiBlLmVycm5vfXZhciBlcnJDb2RlPUZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsInd4Iik7aWYoZXJyQ29kZSl7cmV0dXJuIGVyckNvZGV9aWYoaXNkaXIpe2lmKCFGUy5pc0Rpcihub2RlLm1vZGUpKXtyZXR1cm4gNTR9aWYoRlMuaXNSb290KG5vZGUpfHxGUy5nZXRQYXRoKG5vZGUpPT09RlMuY3dkKCkpe3JldHVybiAxMH19ZWxzZXtpZihGUy5pc0Rpcihub2RlLm1vZGUpKXtyZXR1cm4gMzF9fXJldHVybiAwfSxtYXlPcGVuKG5vZGUsZmxhZ3Mpe2lmKCFub2RlKXtyZXR1cm4gNDR9aWYoRlMuaXNMaW5rKG5vZGUubW9kZSkpe3JldHVybiAzMn1lbHNlIGlmKEZTLmlzRGlyKG5vZGUubW9kZSkpe2lmKEZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKGZsYWdzKSE9PSJyInx8ZmxhZ3MmNTEyKXtyZXR1cm4gMzF9fXJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMobm9kZSxGUy5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhmbGFncykpfSxNQVhfT1BFTl9GRFM6NDA5NixuZXh0ZmQoKXtmb3IodmFyIGZkPTA7ZmQ8PUZTLk1BWF9PUEVOX0ZEUztmZCsrKXtpZighRlMuc3RyZWFtc1tmZF0pe3JldHVybiBmZH19dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMzMpfSxnZXRTdHJlYW1DaGVja2VkKGZkKXt2YXIgc3RyZWFtPUZTLmdldFN0cmVhbShmZCk7aWYoIXN0cmVhbSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoOCl9cmV0dXJuIHN0cmVhbX0sZ2V0U3RyZWFtOmZkPT5GUy5zdHJlYW1zW2ZkXSxjcmVhdGVTdHJlYW0oc3RyZWFtLGZkPS0xKXtpZighRlMuRlNTdHJlYW0pe0ZTLkZTU3RyZWFtPWZ1bmN0aW9uKCl7dGhpcy5zaGFyZWQ9e319O0ZTLkZTU3RyZWFtLnByb3RvdHlwZT17fTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhGUy5GU1N0cmVhbS5wcm90b3R5cGUse29iamVjdDp7Z2V0KCl7cmV0dXJuIHRoaXMubm9kZX0sc2V0KHZhbCl7dGhpcy5ub2RlPXZhbH19LGlzUmVhZDp7Z2V0KCl7cmV0dXJuKHRoaXMuZmxhZ3MmMjA5NzE1NSkhPT0xfX0saXNXcml0ZTp7Z2V0KCl7cmV0dXJuKHRoaXMuZmxhZ3MmMjA5NzE1NSkhPT0wfX0saXNBcHBlbmQ6e2dldCgpe3JldHVybiB0aGlzLmZsYWdzJjEwMjR9fSxmbGFnczp7Z2V0KCl7cmV0dXJuIHRoaXMuc2hhcmVkLmZsYWdzfSxzZXQodmFsKXt0aGlzLnNoYXJlZC5mbGFncz12YWx9fSxwb3NpdGlvbjp7Z2V0KCl7cmV0dXJuIHRoaXMuc2hhcmVkLnBvc2l0aW9ufSxzZXQodmFsKXt0aGlzLnNoYXJlZC5wb3NpdGlvbj12YWx9fX0pfXN0cmVhbT1PYmplY3QuYXNzaWduKG5ldyBGUy5GU1N0cmVhbSxzdHJlYW0pO2lmKGZkPT0tMSl7ZmQ9RlMubmV4dGZkKCl9c3RyZWFtLmZkPWZkO0ZTLnN0cmVhbXNbZmRdPXN0cmVhbTtyZXR1cm4gc3RyZWFtfSxjbG9zZVN0cmVhbShmZCl7RlMuc3RyZWFtc1tmZF09bnVsbH0sY2hyZGV2X3N0cmVhbV9vcHM6e29wZW4oc3RyZWFtKXt2YXIgZGV2aWNlPUZTLmdldERldmljZShzdHJlYW0ubm9kZS5yZGV2KTtzdHJlYW0uc3RyZWFtX29wcz1kZXZpY2Uuc3RyZWFtX29wcztpZihzdHJlYW0uc3RyZWFtX29wcy5vcGVuKXtzdHJlYW0uc3RyZWFtX29wcy5vcGVuKHN0cmVhbSl9fSxsbHNlZWsoKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig3MCl9fSxtYWpvcjpkZXY9PmRldj4+OCxtaW5vcjpkZXY9PmRldiYyNTUsbWFrZWRldjoobWEsbWkpPT5tYTw8OHxtaSxyZWdpc3RlckRldmljZShkZXYsb3BzKXtGUy5kZXZpY2VzW2Rldl09e3N0cmVhbV9vcHM6b3BzfX0sZ2V0RGV2aWNlOmRldj0+RlMuZGV2aWNlc1tkZXZdLGdldE1vdW50cyhtb3VudCl7dmFyIG1vdW50cz1bXTt2YXIgY2hlY2s9W21vdW50XTt3aGlsZShjaGVjay5sZW5ndGgpe3ZhciBtPWNoZWNrLnBvcCgpO21vdW50cy5wdXNoKG0pO2NoZWNrLnB1c2guYXBwbHkoY2hlY2ssbS5tb3VudHMpfXJldHVybiBtb3VudHN9LHN5bmNmcyhwb3B1bGF0ZSxjYWxsYmFjayl7aWYodHlwZW9mIHBvcHVsYXRlPT0iZnVuY3Rpb24iKXtjYWxsYmFjaz1wb3B1bGF0ZTtwb3B1bGF0ZT1mYWxzZX1GUy5zeW5jRlNSZXF1ZXN0cysrO2lmKEZTLnN5bmNGU1JlcXVlc3RzPjEpe2Vycihgd2FybmluZzogJHtGUy5zeW5jRlNSZXF1ZXN0c30gRlMuc3luY2ZzIG9wZXJhdGlvbnMgaW4gZmxpZ2h0IGF0IG9uY2UsIHByb2JhYmx5IGp1c3QgZG9pbmcgZXh0cmEgd29ya2ApfXZhciBtb3VudHM9RlMuZ2V0TW91bnRzKEZTLnJvb3QubW91bnQpO3ZhciBjb21wbGV0ZWQ9MDtmdW5jdGlvbiBkb0NhbGxiYWNrKGVyckNvZGUpe0ZTLnN5bmNGU1JlcXVlc3RzLS07cmV0dXJuIGNhbGxiYWNrKGVyckNvZGUpfWZ1bmN0aW9uIGRvbmUoZXJyQ29kZSl7aWYoZXJyQ29kZSl7aWYoIWRvbmUuZXJyb3JlZCl7ZG9uZS5lcnJvcmVkPXRydWU7cmV0dXJuIGRvQ2FsbGJhY2soZXJyQ29kZSl9cmV0dXJufWlmKCsrY29tcGxldGVkPj1tb3VudHMubGVuZ3RoKXtkb0NhbGxiYWNrKG51bGwpfX1tb3VudHMuZm9yRWFjaChtb3VudD0+e2lmKCFtb3VudC50eXBlLnN5bmNmcyl7cmV0dXJuIGRvbmUobnVsbCl9bW91bnQudHlwZS5zeW5jZnMobW91bnQscG9wdWxhdGUsZG9uZSl9KX0sbW91bnQodHlwZSxvcHRzLG1vdW50cG9pbnQpe3ZhciByb290PW1vdW50cG9pbnQ9PT0iLyI7dmFyIHBzZXVkbz0hbW91bnRwb2ludDt2YXIgbm9kZTtpZihyb290JiZGUy5yb290KXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigxMCl9ZWxzZSBpZighcm9vdCYmIXBzZXVkbyl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKG1vdW50cG9pbnQse2ZvbGxvd19tb3VudDpmYWxzZX0pO21vdW50cG9pbnQ9bG9va3VwLnBhdGg7bm9kZT1sb29rdXAubm9kZTtpZihGUy5pc01vdW50cG9pbnQobm9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDEwKX1pZighRlMuaXNEaXIobm9kZS5tb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNTQpfX12YXIgbW91bnQ9e3R5cGU6dHlwZSxvcHRzOm9wdHMsbW91bnRwb2ludDptb3VudHBvaW50LG1vdW50czpbXX07dmFyIG1vdW50Um9vdD10eXBlLm1vdW50KG1vdW50KTttb3VudFJvb3QubW91bnQ9bW91bnQ7bW91bnQucm9vdD1tb3VudFJvb3Q7aWYocm9vdCl7RlMucm9vdD1tb3VudFJvb3R9ZWxzZSBpZihub2RlKXtub2RlLm1vdW50ZWQ9bW91bnQ7aWYobm9kZS5tb3VudCl7bm9kZS5tb3VudC5tb3VudHMucHVzaChtb3VudCl9fXJldHVybiBtb3VudFJvb3R9LHVubW91bnQobW91bnRwb2ludCl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKG1vdW50cG9pbnQse2ZvbGxvd19tb3VudDpmYWxzZX0pO2lmKCFGUy5pc01vdW50cG9pbnQobG9va3VwLm5vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOCl9dmFyIG5vZGU9bG9va3VwLm5vZGU7dmFyIG1vdW50PW5vZGUubW91bnRlZDt2YXIgbW91bnRzPUZTLmdldE1vdW50cyhtb3VudCk7T2JqZWN0LmtleXMoRlMubmFtZVRhYmxlKS5mb3JFYWNoKGhhc2g9Pnt2YXIgY3VycmVudD1GUy5uYW1lVGFibGVbaGFzaF07d2hpbGUoY3VycmVudCl7dmFyIG5leHQ9Y3VycmVudC5uYW1lX25leHQ7aWYobW91bnRzLmluY2x1ZGVzKGN1cnJlbnQubW91bnQpKXtGUy5kZXN0cm95Tm9kZShjdXJyZW50KX1jdXJyZW50PW5leHR9fSk7bm9kZS5tb3VudGVkPW51bGw7dmFyIGlkeD1ub2RlLm1vdW50Lm1vdW50cy5pbmRleE9mKG1vdW50KTtub2RlLm1vdW50Lm1vdW50cy5zcGxpY2UoaWR4LDEpfSxsb29rdXAocGFyZW50LG5hbWUpe3JldHVybiBwYXJlbnQubm9kZV9vcHMubG9va3VwKHBhcmVudCxuYW1lKX0sbWtub2QocGF0aCxtb2RlLGRldil7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse3BhcmVudDp0cnVlfSk7dmFyIHBhcmVudD1sb29rdXAubm9kZTt2YXIgbmFtZT1QQVRILmJhc2VuYW1lKHBhdGgpO2lmKCFuYW1lfHxuYW1lPT09Ii4ifHxuYW1lPT09Ii4uIil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfXZhciBlcnJDb2RlPUZTLm1heUNyZWF0ZShwYXJlbnQsbmFtZSk7aWYoZXJyQ29kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyQ29kZSl9aWYoIXBhcmVudC5ub2RlX29wcy5ta25vZCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNjMpfXJldHVybiBwYXJlbnQubm9kZV9vcHMubWtub2QocGFyZW50LG5hbWUsbW9kZSxkZXYpfSxjcmVhdGUocGF0aCxtb2RlKXttb2RlPW1vZGUhPT11bmRlZmluZWQ/bW9kZTo0Mzg7bW9kZSY9NDA5NTttb2RlfD0zMjc2ODtyZXR1cm4gRlMubWtub2QocGF0aCxtb2RlLDApfSxta2RpcihwYXRoLG1vZGUpe21vZGU9bW9kZSE9PXVuZGVmaW5lZD9tb2RlOjUxMTttb2RlJj01MTF8NTEyO21vZGV8PTE2Mzg0O3JldHVybiBGUy5ta25vZChwYXRoLG1vZGUsMCl9LG1rZGlyVHJlZShwYXRoLG1vZGUpe3ZhciBkaXJzPXBhdGguc3BsaXQoIi8iKTt2YXIgZD0iIjtmb3IodmFyIGk9MDtpPGRpcnMubGVuZ3RoOysraSl7aWYoIWRpcnNbaV0pY29udGludWU7ZCs9Ii8iK2RpcnNbaV07dHJ5e0ZTLm1rZGlyKGQsbW9kZSl9Y2F0Y2goZSl7aWYoZS5lcnJubyE9MjApdGhyb3cgZX19fSxta2RldihwYXRoLG1vZGUsZGV2KXtpZih0eXBlb2YgZGV2PT0idW5kZWZpbmVkIil7ZGV2PW1vZGU7bW9kZT00Mzh9bW9kZXw9ODE5MjtyZXR1cm4gRlMubWtub2QocGF0aCxtb2RlLGRldil9LHN5bWxpbmsob2xkcGF0aCxuZXdwYXRoKXtpZighUEFUSF9GUy5yZXNvbHZlKG9sZHBhdGgpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0NCl9dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKG5ld3BhdGgse3BhcmVudDp0cnVlfSk7dmFyIHBhcmVudD1sb29rdXAubm9kZTtpZighcGFyZW50KXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0NCl9dmFyIG5ld25hbWU9UEFUSC5iYXNlbmFtZShuZXdwYXRoKTt2YXIgZXJyQ29kZT1GUy5tYXlDcmVhdGUocGFyZW50LG5ld25hbWUpO2lmKGVyckNvZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVyckNvZGUpfWlmKCFwYXJlbnQubm9kZV9vcHMuc3ltbGluayl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNjMpfXJldHVybiBwYXJlbnQubm9kZV9vcHMuc3ltbGluayhwYXJlbnQsbmV3bmFtZSxvbGRwYXRoKX0scmVuYW1lKG9sZF9wYXRoLG5ld19wYXRoKXt2YXIgb2xkX2Rpcm5hbWU9UEFUSC5kaXJuYW1lKG9sZF9wYXRoKTt2YXIgbmV3X2Rpcm5hbWU9UEFUSC5kaXJuYW1lKG5ld19wYXRoKTt2YXIgb2xkX25hbWU9UEFUSC5iYXNlbmFtZShvbGRfcGF0aCk7dmFyIG5ld19uYW1lPVBBVEguYmFzZW5hbWUobmV3X3BhdGgpO3ZhciBsb29rdXAsb2xkX2RpcixuZXdfZGlyO2xvb2t1cD1GUy5sb29rdXBQYXRoKG9sZF9wYXRoLHtwYXJlbnQ6dHJ1ZX0pO29sZF9kaXI9bG9va3VwLm5vZGU7bG9va3VwPUZTLmxvb2t1cFBhdGgobmV3X3BhdGgse3BhcmVudDp0cnVlfSk7bmV3X2Rpcj1sb29rdXAubm9kZTtpZighb2xkX2Rpcnx8IW5ld19kaXIpdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDQpO2lmKG9sZF9kaXIubW91bnQhPT1uZXdfZGlyLm1vdW50KXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig3NSl9dmFyIG9sZF9ub2RlPUZTLmxvb2t1cE5vZGUob2xkX2RpcixvbGRfbmFtZSk7dmFyIHJlbGF0aXZlPVBBVEhfRlMucmVsYXRpdmUob2xkX3BhdGgsbmV3X2Rpcm5hbWUpO2lmKHJlbGF0aXZlLmNoYXJBdCgwKSE9PSIuIil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfXJlbGF0aXZlPVBBVEhfRlMucmVsYXRpdmUobmV3X3BhdGgsb2xkX2Rpcm5hbWUpO2lmKHJlbGF0aXZlLmNoYXJBdCgwKSE9PSIuIil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNTUpfXZhciBuZXdfbm9kZTt0cnl7bmV3X25vZGU9RlMubG9va3VwTm9kZShuZXdfZGlyLG5ld19uYW1lKX1jYXRjaChlKXt9aWYob2xkX25vZGU9PT1uZXdfbm9kZSl7cmV0dXJufXZhciBpc2Rpcj1GUy5pc0RpcihvbGRfbm9kZS5tb2RlKTt2YXIgZXJyQ29kZT1GUy5tYXlEZWxldGUob2xkX2RpcixvbGRfbmFtZSxpc2Rpcik7aWYoZXJyQ29kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyQ29kZSl9ZXJyQ29kZT1uZXdfbm9kZT9GUy5tYXlEZWxldGUobmV3X2RpcixuZXdfbmFtZSxpc2Rpcik6RlMubWF5Q3JlYXRlKG5ld19kaXIsbmV3X25hbWUpO2lmKGVyckNvZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVyckNvZGUpfWlmKCFvbGRfZGlyLm5vZGVfb3BzLnJlbmFtZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNjMpfWlmKEZTLmlzTW91bnRwb2ludChvbGRfbm9kZSl8fG5ld19ub2RlJiZGUy5pc01vdW50cG9pbnQobmV3X25vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigxMCl9aWYobmV3X2RpciE9PW9sZF9kaXIpe2VyckNvZGU9RlMubm9kZVBlcm1pc3Npb25zKG9sZF9kaXIsInciKTtpZihlcnJDb2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnJDb2RlKX19RlMuaGFzaFJlbW92ZU5vZGUob2xkX25vZGUpO3RyeXtvbGRfZGlyLm5vZGVfb3BzLnJlbmFtZShvbGRfbm9kZSxuZXdfZGlyLG5ld19uYW1lKX1jYXRjaChlKXt0aHJvdyBlfWZpbmFsbHl7RlMuaGFzaEFkZE5vZGUob2xkX25vZGUpfX0scm1kaXIocGF0aCl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse3BhcmVudDp0cnVlfSk7dmFyIHBhcmVudD1sb29rdXAubm9kZTt2YXIgbmFtZT1QQVRILmJhc2VuYW1lKHBhdGgpO3ZhciBub2RlPUZTLmxvb2t1cE5vZGUocGFyZW50LG5hbWUpO3ZhciBlcnJDb2RlPUZTLm1heURlbGV0ZShwYXJlbnQsbmFtZSx0cnVlKTtpZihlcnJDb2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnJDb2RlKX1pZighcGFyZW50Lm5vZGVfb3BzLnJtZGlyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9aWYoRlMuaXNNb3VudHBvaW50KG5vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigxMCl9cGFyZW50Lm5vZGVfb3BzLnJtZGlyKHBhcmVudCxuYW1lKTtGUy5kZXN0cm95Tm9kZShub2RlKX0scmVhZGRpcihwYXRoKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OnRydWV9KTt2YXIgbm9kZT1sb29rdXAubm9kZTtpZighbm9kZS5ub2RlX29wcy5yZWFkZGlyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig1NCl9cmV0dXJuIG5vZGUubm9kZV9vcHMucmVhZGRpcihub2RlKX0sdW5saW5rKHBhdGgpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtwYXJlbnQ6dHJ1ZX0pO3ZhciBwYXJlbnQ9bG9va3VwLm5vZGU7aWYoIXBhcmVudCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDQpfXZhciBuYW1lPVBBVEguYmFzZW5hbWUocGF0aCk7dmFyIG5vZGU9RlMubG9va3VwTm9kZShwYXJlbnQsbmFtZSk7dmFyIGVyckNvZGU9RlMubWF5RGVsZXRlKHBhcmVudCxuYW1lLGZhbHNlKTtpZihlcnJDb2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnJDb2RlKX1pZighcGFyZW50Lm5vZGVfb3BzLnVubGluayl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNjMpfWlmKEZTLmlzTW91bnRwb2ludChub2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMTApfXBhcmVudC5ub2RlX29wcy51bmxpbmsocGFyZW50LG5hbWUpO0ZTLmRlc3Ryb3lOb2RlKG5vZGUpfSxyZWFkbGluayhwYXRoKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCk7dmFyIGxpbms9bG9va3VwLm5vZGU7aWYoIWxpbmspe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ0KX1pZighbGluay5ub2RlX29wcy5yZWFkbGluayl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjgpfXJldHVybiBQQVRIX0ZTLnJlc29sdmUoRlMuZ2V0UGF0aChsaW5rLnBhcmVudCksbGluay5ub2RlX29wcy5yZWFkbGluayhsaW5rKSl9LHN0YXQocGF0aCxkb250Rm9sbG93KXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OiFkb250Rm9sbG93fSk7dmFyIG5vZGU9bG9va3VwLm5vZGU7aWYoIW5vZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ0KX1pZighbm9kZS5ub2RlX29wcy5nZXRhdHRyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig2Myl9cmV0dXJuIG5vZGUubm9kZV9vcHMuZ2V0YXR0cihub2RlKX0sbHN0YXQocGF0aCl7cmV0dXJuIEZTLnN0YXQocGF0aCx0cnVlKX0sY2htb2QocGF0aCxtb2RlLGRvbnRGb2xsb3cpe3ZhciBub2RlO2lmKHR5cGVvZiBwYXRoPT0ic3RyaW5nIil7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzohZG9udEZvbGxvd30pO25vZGU9bG9va3VwLm5vZGV9ZWxzZXtub2RlPXBhdGh9aWYoIW5vZGUubm9kZV9vcHMuc2V0YXR0cil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNjMpfW5vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLHttb2RlOm1vZGUmNDA5NXxub2RlLm1vZGUmfjQwOTUsdGltZXN0YW1wOkRhdGUubm93KCl9KX0sbGNobW9kKHBhdGgsbW9kZSl7RlMuY2htb2QocGF0aCxtb2RlLHRydWUpfSxmY2htb2QoZmQsbW9kZSl7dmFyIHN0cmVhbT1GUy5nZXRTdHJlYW1DaGVja2VkKGZkKTtGUy5jaG1vZChzdHJlYW0ubm9kZSxtb2RlKX0sY2hvd24ocGF0aCx1aWQsZ2lkLGRvbnRGb2xsb3cpe3ZhciBub2RlO2lmKHR5cGVvZiBwYXRoPT0ic3RyaW5nIil7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzohZG9udEZvbGxvd30pO25vZGU9bG9va3VwLm5vZGV9ZWxzZXtub2RlPXBhdGh9aWYoIW5vZGUubm9kZV9vcHMuc2V0YXR0cil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNjMpfW5vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLHt0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfSxsY2hvd24ocGF0aCx1aWQsZ2lkKXtGUy5jaG93bihwYXRoLHVpZCxnaWQsdHJ1ZSl9LGZjaG93bihmZCx1aWQsZ2lkKXt2YXIgc3RyZWFtPUZTLmdldFN0cmVhbUNoZWNrZWQoZmQpO0ZTLmNob3duKHN0cmVhbS5ub2RlLHVpZCxnaWQpfSx0cnVuY2F0ZShwYXRoLGxlbil7aWYobGVuPDApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX12YXIgbm9kZTtpZih0eXBlb2YgcGF0aD09InN0cmluZyIpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6dHJ1ZX0pO25vZGU9bG9va3VwLm5vZGV9ZWxzZXtub2RlPXBhdGh9aWYoIW5vZGUubm9kZV9vcHMuc2V0YXR0cil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNjMpfWlmKEZTLmlzRGlyKG5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDMxKX1pZighRlMuaXNGaWxlKG5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX12YXIgZXJyQ29kZT1GUy5ub2RlUGVybWlzc2lvbnMobm9kZSwidyIpO2lmKGVyckNvZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVyckNvZGUpfW5vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLHtzaXplOmxlbix0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfSxmdHJ1bmNhdGUoZmQsbGVuKXt2YXIgc3RyZWFtPUZTLmdldFN0cmVhbUNoZWNrZWQoZmQpO2lmKChzdHJlYW0uZmxhZ3MmMjA5NzE1NSk9PT0wKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOCl9RlMudHJ1bmNhdGUoc3RyZWFtLm5vZGUsbGVuKX0sdXRpbWUocGF0aCxhdGltZSxtdGltZSl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzp0cnVlfSk7dmFyIG5vZGU9bG9va3VwLm5vZGU7bm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUse3RpbWVzdGFtcDpNYXRoLm1heChhdGltZSxtdGltZSl9KX0sb3BlbihwYXRoLGZsYWdzLG1vZGUpe2lmKHBhdGg9PT0iIil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDQpfWZsYWdzPXR5cGVvZiBmbGFncz09InN0cmluZyI/RlNfbW9kZVN0cmluZ1RvRmxhZ3MoZmxhZ3MpOmZsYWdzO21vZGU9dHlwZW9mIG1vZGU9PSJ1bmRlZmluZWQiPzQzODptb2RlO2lmKGZsYWdzJjY0KXttb2RlPW1vZGUmNDA5NXwzMjc2OH1lbHNle21vZGU9MH12YXIgbm9kZTtpZih0eXBlb2YgcGF0aD09Im9iamVjdCIpe25vZGU9cGF0aH1lbHNle3BhdGg9UEFUSC5ub3JtYWxpemUocGF0aCk7dHJ5e3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6IShmbGFncyYxMzEwNzIpfSk7bm9kZT1sb29rdXAubm9kZX1jYXRjaChlKXt9fXZhciBjcmVhdGVkPWZhbHNlO2lmKGZsYWdzJjY0KXtpZihub2RlKXtpZihmbGFncyYxMjgpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDIwKX19ZWxzZXtub2RlPUZTLm1rbm9kKHBhdGgsbW9kZSwwKTtjcmVhdGVkPXRydWV9fWlmKCFub2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0NCl9aWYoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSl7ZmxhZ3MmPX41MTJ9aWYoZmxhZ3MmNjU1MzYmJiFGUy5pc0Rpcihub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig1NCl9aWYoIWNyZWF0ZWQpe3ZhciBlcnJDb2RlPUZTLm1heU9wZW4obm9kZSxmbGFncyk7aWYoZXJyQ29kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyQ29kZSl9fWlmKGZsYWdzJjUxMiYmIWNyZWF0ZWQpe0ZTLnRydW5jYXRlKG5vZGUsMCl9ZmxhZ3MmPX4oMTI4fDUxMnwxMzEwNzIpO3ZhciBzdHJlYW09RlMuY3JlYXRlU3RyZWFtKHtub2RlOm5vZGUscGF0aDpGUy5nZXRQYXRoKG5vZGUpLGZsYWdzOmZsYWdzLHNlZWthYmxlOnRydWUscG9zaXRpb246MCxzdHJlYW1fb3BzOm5vZGUuc3RyZWFtX29wcyx1bmdvdHRlbjpbXSxlcnJvcjpmYWxzZX0pO2lmKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pe3N0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKX1pZihNb2R1bGVbImxvZ1JlYWRGaWxlcyJdJiYhKGZsYWdzJjEpKXtpZighRlMucmVhZEZpbGVzKUZTLnJlYWRGaWxlcz17fTtpZighKHBhdGggaW4gRlMucmVhZEZpbGVzKSl7RlMucmVhZEZpbGVzW3BhdGhdPTF9fXJldHVybiBzdHJlYW19LGNsb3NlKHN0cmVhbSl7aWYoRlMuaXNDbG9zZWQoc3RyZWFtKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoOCl9aWYoc3RyZWFtLmdldGRlbnRzKXN0cmVhbS5nZXRkZW50cz1udWxsO3RyeXtpZihzdHJlYW0uc3RyZWFtX29wcy5jbG9zZSl7c3RyZWFtLnN0cmVhbV9vcHMuY2xvc2Uoc3RyZWFtKX19Y2F0Y2goZSl7dGhyb3cgZX1maW5hbGx5e0ZTLmNsb3NlU3RyZWFtKHN0cmVhbS5mZCl9c3RyZWFtLmZkPW51bGx9LGlzQ2xvc2VkKHN0cmVhbSl7cmV0dXJuIHN0cmVhbS5mZD09PW51bGx9LGxsc2VlayhzdHJlYW0sb2Zmc2V0LHdoZW5jZSl7aWYoRlMuaXNDbG9zZWQoc3RyZWFtKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoOCl9aWYoIXN0cmVhbS5zZWVrYWJsZXx8IXN0cmVhbS5zdHJlYW1fb3BzLmxsc2Vlayl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNzApfWlmKHdoZW5jZSE9MCYmd2hlbmNlIT0xJiZ3aGVuY2UhPTIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX1zdHJlYW0ucG9zaXRpb249c3RyZWFtLnN0cmVhbV9vcHMubGxzZWVrKHN0cmVhbSxvZmZzZXQsd2hlbmNlKTtzdHJlYW0udW5nb3R0ZW49W107cmV0dXJuIHN0cmVhbS5wb3NpdGlvbn0scmVhZChzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zaXRpb24pe2lmKGxlbmd0aDwwfHxwb3NpdGlvbjwwKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOCl9aWYoRlMuaXNDbG9zZWQoc3RyZWFtKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoOCl9aWYoKHN0cmVhbS5mbGFncyYyMDk3MTU1KT09PTEpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDgpfWlmKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigzMSl9aWYoIXN0cmVhbS5zdHJlYW1fb3BzLnJlYWQpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX12YXIgc2Vla2luZz10eXBlb2YgcG9zaXRpb24hPSJ1bmRlZmluZWQiO2lmKCFzZWVraW5nKXtwb3NpdGlvbj1zdHJlYW0ucG9zaXRpb259ZWxzZSBpZighc3RyZWFtLnNlZWthYmxlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig3MCl9dmFyIGJ5dGVzUmVhZD1zdHJlYW0uc3RyZWFtX29wcy5yZWFkKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbik7aWYoIXNlZWtpbmcpc3RyZWFtLnBvc2l0aW9uKz1ieXRlc1JlYWQ7cmV0dXJuIGJ5dGVzUmVhZH0sd3JpdGUoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uLGNhbk93bil7aWYobGVuZ3RoPDB8fHBvc2l0aW9uPDApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX1pZihGUy5pc0Nsb3NlZChzdHJlYW0pKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig4KX1pZigoc3RyZWFtLmZsYWdzJjIwOTcxNTUpPT09MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoOCl9aWYoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDMxKX1pZighc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX1pZihzdHJlYW0uc2Vla2FibGUmJnN0cmVhbS5mbGFncyYxMDI0KXtGUy5sbHNlZWsoc3RyZWFtLDAsMil9dmFyIHNlZWtpbmc9dHlwZW9mIHBvc2l0aW9uIT0idW5kZWZpbmVkIjtpZighc2Vla2luZyl7cG9zaXRpb249c3RyZWFtLnBvc2l0aW9ufWVsc2UgaWYoIXN0cmVhbS5zZWVrYWJsZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNzApfXZhciBieXRlc1dyaXR0ZW49c3RyZWFtLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uLGNhbk93bik7aWYoIXNlZWtpbmcpc3RyZWFtLnBvc2l0aW9uKz1ieXRlc1dyaXR0ZW47cmV0dXJuIGJ5dGVzV3JpdHRlbn0sYWxsb2NhdGUoc3RyZWFtLG9mZnNldCxsZW5ndGgpe2lmKEZTLmlzQ2xvc2VkKHN0cmVhbSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDgpfWlmKG9mZnNldDwwfHxsZW5ndGg8PTApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI4KX1pZigoc3RyZWFtLmZsYWdzJjIwOTcxNTUpPT09MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoOCl9aWYoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSYmIUZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0Myl9aWYoIXN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigxMzgpfXN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKHN0cmVhbSxvZmZzZXQsbGVuZ3RoKX0sbW1hcChzdHJlYW0sbGVuZ3RoLHBvc2l0aW9uLHByb3QsZmxhZ3Mpe2lmKChwcm90JjIpIT09MCYmKGZsYWdzJjIpPT09MCYmKHN0cmVhbS5mbGFncyYyMDk3MTU1KSE9PTIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDIpfWlmKChzdHJlYW0uZmxhZ3MmMjA5NzE1NSk9PT0xKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyKX1pZighc3RyZWFtLnN0cmVhbV9vcHMubW1hcCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoNDMpfXJldHVybiBzdHJlYW0uc3RyZWFtX29wcy5tbWFwKHN0cmVhbSxsZW5ndGgscG9zaXRpb24scHJvdCxmbGFncyl9LG1zeW5jKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxtbWFwRmxhZ3Mpe2lmKCFzdHJlYW0uc3RyZWFtX29wcy5tc3luYyl7cmV0dXJuIDB9cmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLm1zeW5jKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxtbWFwRmxhZ3MpfSxtdW5tYXA6c3RyZWFtPT4wLGlvY3RsKHN0cmVhbSxjbWQsYXJnKXtpZighc3RyZWFtLnN0cmVhbV9vcHMuaW9jdGwpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDU5KX1yZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMuaW9jdGwoc3RyZWFtLGNtZCxhcmcpfSxyZWFkRmlsZShwYXRoLG9wdHM9e30pe29wdHMuZmxhZ3M9b3B0cy5mbGFnc3x8MDtvcHRzLmVuY29kaW5nPW9wdHMuZW5jb2Rpbmd8fCJiaW5hcnkiO2lmKG9wdHMuZW5jb2RpbmchPT0idXRmOCImJm9wdHMuZW5jb2RpbmchPT0iYmluYXJ5Iil7dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGVuY29kaW5nIHR5cGUgIiR7b3B0cy5lbmNvZGluZ30iYCl9dmFyIHJldDt2YXIgc3RyZWFtPUZTLm9wZW4ocGF0aCxvcHRzLmZsYWdzKTt2YXIgc3RhdD1GUy5zdGF0KHBhdGgpO3ZhciBsZW5ndGg9c3RhdC5zaXplO3ZhciBidWY9bmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTtGUy5yZWFkKHN0cmVhbSxidWYsMCxsZW5ndGgsMCk7aWYob3B0cy5lbmNvZGluZz09PSJ1dGY4Iil7cmV0PVVURjhBcnJheVRvU3RyaW5nKGJ1ZiwwKX1lbHNlIGlmKG9wdHMuZW5jb2Rpbmc9PT0iYmluYXJ5Iil7cmV0PWJ1Zn1GUy5jbG9zZShzdHJlYW0pO3JldHVybiByZXR9LHdyaXRlRmlsZShwYXRoLGRhdGEsb3B0cz17fSl7b3B0cy5mbGFncz1vcHRzLmZsYWdzfHw1Nzc7dmFyIHN0cmVhbT1GUy5vcGVuKHBhdGgsb3B0cy5mbGFncyxvcHRzLm1vZGUpO2lmKHR5cGVvZiBkYXRhPT0ic3RyaW5nIil7dmFyIGJ1Zj1uZXcgVWludDhBcnJheShsZW5ndGhCeXRlc1VURjgoZGF0YSkrMSk7dmFyIGFjdHVhbE51bUJ5dGVzPXN0cmluZ1RvVVRGOEFycmF5KGRhdGEsYnVmLDAsYnVmLmxlbmd0aCk7RlMud3JpdGUoc3RyZWFtLGJ1ZiwwLGFjdHVhbE51bUJ5dGVzLHVuZGVmaW5lZCxvcHRzLmNhbk93bil9ZWxzZSBpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZGF0YSkpe0ZTLndyaXRlKHN0cmVhbSxkYXRhLDAsZGF0YS5ieXRlTGVuZ3RoLHVuZGVmaW5lZCxvcHRzLmNhbk93bil9ZWxzZXt0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGRhdGEgdHlwZSIpfUZTLmNsb3NlKHN0cmVhbSl9LGN3ZDooKT0+RlMuY3VycmVudFBhdGgsY2hkaXIocGF0aCl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzp0cnVlfSk7aWYobG9va3VwLm5vZGU9PT1udWxsKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0NCl9aWYoIUZTLmlzRGlyKGxvb2t1cC5ub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig1NCl9dmFyIGVyckNvZGU9RlMubm9kZVBlcm1pc3Npb25zKGxvb2t1cC5ub2RlLCJ4Iik7aWYoZXJyQ29kZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyQ29kZSl9RlMuY3VycmVudFBhdGg9bG9va3VwLnBhdGh9LGNyZWF0ZURlZmF1bHREaXJlY3Rvcmllcygpe0ZTLm1rZGlyKCIvdG1wIik7RlMubWtkaXIoIi9ob21lIik7RlMubWtkaXIoIi9ob21lL3dlYl91c2VyIil9LGNyZWF0ZURlZmF1bHREZXZpY2VzKCl7RlMubWtkaXIoIi9kZXYiKTtGUy5yZWdpc3RlckRldmljZShGUy5tYWtlZGV2KDEsMykse3JlYWQ6KCk9PjAsd3JpdGU6KHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3MpPT5sZW5ndGh9KTtGUy5ta2RldigiL2Rldi9udWxsIixGUy5tYWtlZGV2KDEsMykpO1RUWS5yZWdpc3RlcihGUy5tYWtlZGV2KDUsMCksVFRZLmRlZmF1bHRfdHR5X29wcyk7VFRZLnJlZ2lzdGVyKEZTLm1ha2VkZXYoNiwwKSxUVFkuZGVmYXVsdF90dHkxX29wcyk7RlMubWtkZXYoIi9kZXYvdHR5IixGUy5tYWtlZGV2KDUsMCkpO0ZTLm1rZGV2KCIvZGV2L3R0eTEiLEZTLm1ha2VkZXYoNiwwKSk7dmFyIHJhbmRvbUJ1ZmZlcj1uZXcgVWludDhBcnJheSgxMDI0KSxyYW5kb21MZWZ0PTA7dmFyIHJhbmRvbUJ5dGU9KCk9PntpZihyYW5kb21MZWZ0PT09MCl7cmFuZG9tTGVmdD1yYW5kb21GaWxsKHJhbmRvbUJ1ZmZlcikuYnl0ZUxlbmd0aH1yZXR1cm4gcmFuZG9tQnVmZmVyWy0tcmFuZG9tTGVmdF19O0ZTLmNyZWF0ZURldmljZSgiL2RldiIsInJhbmRvbSIscmFuZG9tQnl0ZSk7RlMuY3JlYXRlRGV2aWNlKCIvZGV2IiwidXJhbmRvbSIscmFuZG9tQnl0ZSk7RlMubWtkaXIoIi9kZXYvc2htIik7RlMubWtkaXIoIi9kZXYvc2htL3RtcCIpfSxjcmVhdGVTcGVjaWFsRGlyZWN0b3JpZXMoKXtGUy5ta2RpcigiL3Byb2MiKTt2YXIgcHJvY19zZWxmPUZTLm1rZGlyKCIvcHJvYy9zZWxmIik7RlMubWtkaXIoIi9wcm9jL3NlbGYvZmQiKTtGUy5tb3VudCh7bW91bnQoKXt2YXIgbm9kZT1GUy5jcmVhdGVOb2RlKHByb2Nfc2VsZiwiZmQiLDE2Mzg0fDUxMSw3Myk7bm9kZS5ub2RlX29wcz17bG9va3VwKHBhcmVudCxuYW1lKXt2YXIgZmQ9K25hbWU7dmFyIHN0cmVhbT1GUy5nZXRTdHJlYW1DaGVja2VkKGZkKTt2YXIgcmV0PXtwYXJlbnQ6bnVsbCxtb3VudDp7bW91bnRwb2ludDoiZmFrZSJ9LG5vZGVfb3BzOntyZWFkbGluazooKT0+c3RyZWFtLnBhdGh9fTtyZXQucGFyZW50PXJldDtyZXR1cm4gcmV0fX07cmV0dXJuIG5vZGV9fSx7fSwiL3Byb2Mvc2VsZi9mZCIpfSxjcmVhdGVTdGFuZGFyZFN0cmVhbXMoKXtpZihNb2R1bGVbInN0ZGluIl0pe0ZTLmNyZWF0ZURldmljZSgiL2RldiIsInN0ZGluIixNb2R1bGVbInN0ZGluIl0pfWVsc2V7RlMuc3ltbGluaygiL2Rldi90dHkiLCIvZGV2L3N0ZGluIil9aWYoTW9kdWxlWyJzdGRvdXQiXSl7RlMuY3JlYXRlRGV2aWNlKCIvZGV2Iiwic3Rkb3V0IixudWxsLE1vZHVsZVsic3Rkb3V0Il0pfWVsc2V7RlMuc3ltbGluaygiL2Rldi90dHkiLCIvZGV2L3N0ZG91dCIpfWlmKE1vZHVsZVsic3RkZXJyIl0pe0ZTLmNyZWF0ZURldmljZSgiL2RldiIsInN0ZGVyciIsbnVsbCxNb2R1bGVbInN0ZGVyciJdKX1lbHNle0ZTLnN5bWxpbmsoIi9kZXYvdHR5MSIsIi9kZXYvc3RkZXJyIil9dmFyIHN0ZGluPUZTLm9wZW4oIi9kZXYvc3RkaW4iLDApO3ZhciBzdGRvdXQ9RlMub3BlbigiL2Rldi9zdGRvdXQiLDEpO3ZhciBzdGRlcnI9RlMub3BlbigiL2Rldi9zdGRlcnIiLDEpfSxlbnN1cmVFcnJub0Vycm9yKCl7aWYoRlMuRXJybm9FcnJvcilyZXR1cm47RlMuRXJybm9FcnJvcj1mdW5jdGlvbiBFcnJub0Vycm9yKGVycm5vLG5vZGUpe3RoaXMubmFtZT0iRXJybm9FcnJvciI7dGhpcy5ub2RlPW5vZGU7dGhpcy5zZXRFcnJubz1mdW5jdGlvbihlcnJubyl7dGhpcy5lcnJubz1lcnJub307dGhpcy5zZXRFcnJubyhlcnJubyk7dGhpcy5tZXNzYWdlPSJGUyBlcnJvciJ9O0ZTLkVycm5vRXJyb3IucHJvdG90eXBlPW5ldyBFcnJvcjtGUy5FcnJub0Vycm9yLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1GUy5FcnJub0Vycm9yO1s0NF0uZm9yRWFjaChjb2RlPT57RlMuZ2VuZXJpY0Vycm9yc1tjb2RlXT1uZXcgRlMuRXJybm9FcnJvcihjb2RlKTtGUy5nZW5lcmljRXJyb3JzW2NvZGVdLnN0YWNrPSI8Z2VuZXJpYyBlcnJvciwgbm8gc3RhY2s+In0pfSxzdGF0aWNJbml0KCl7RlMuZW5zdXJlRXJybm9FcnJvcigpO0ZTLm5hbWVUYWJsZT1uZXcgQXJyYXkoNDA5Nik7RlMubW91bnQoTUVNRlMse30sIi8iKTtGUy5jcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXMoKTtGUy5jcmVhdGVEZWZhdWx0RGV2aWNlcygpO0ZTLmNyZWF0ZVNwZWNpYWxEaXJlY3RvcmllcygpO0ZTLmZpbGVzeXN0ZW1zPXsiTUVNRlMiOk1FTUZTfX0saW5pdChpbnB1dCxvdXRwdXQsZXJyb3Ipe0ZTLmluaXQuaW5pdGlhbGl6ZWQ9dHJ1ZTtGUy5lbnN1cmVFcnJub0Vycm9yKCk7TW9kdWxlWyJzdGRpbiJdPWlucHV0fHxNb2R1bGVbInN0ZGluIl07TW9kdWxlWyJzdGRvdXQiXT1vdXRwdXR8fE1vZHVsZVsic3Rkb3V0Il07TW9kdWxlWyJzdGRlcnIiXT1lcnJvcnx8TW9kdWxlWyJzdGRlcnIiXTtGUy5jcmVhdGVTdGFuZGFyZFN0cmVhbXMoKX0scXVpdCgpe0ZTLmluaXQuaW5pdGlhbGl6ZWQ9ZmFsc2U7X2ZmbHVzaCgwKTtmb3IodmFyIGk9MDtpPEZTLnN0cmVhbXMubGVuZ3RoO2krKyl7dmFyIHN0cmVhbT1GUy5zdHJlYW1zW2ldO2lmKCFzdHJlYW0pe2NvbnRpbnVlfUZTLmNsb3NlKHN0cmVhbSl9fSxmaW5kT2JqZWN0KHBhdGgsZG9udFJlc29sdmVMYXN0TGluayl7dmFyIHJldD1GUy5hbmFseXplUGF0aChwYXRoLGRvbnRSZXNvbHZlTGFzdExpbmspO2lmKCFyZXQuZXhpc3RzKXtyZXR1cm4gbnVsbH1yZXR1cm4gcmV0Lm9iamVjdH0sYW5hbHl6ZVBhdGgocGF0aCxkb250UmVzb2x2ZUxhc3RMaW5rKXt0cnl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzohZG9udFJlc29sdmVMYXN0TGlua30pO3BhdGg9bG9va3VwLnBhdGh9Y2F0Y2goZSl7fXZhciByZXQ9e2lzUm9vdDpmYWxzZSxleGlzdHM6ZmFsc2UsZXJyb3I6MCxuYW1lOm51bGwscGF0aDpudWxsLG9iamVjdDpudWxsLHBhcmVudEV4aXN0czpmYWxzZSxwYXJlbnRQYXRoOm51bGwscGFyZW50T2JqZWN0Om51bGx9O3RyeXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7cGFyZW50OnRydWV9KTtyZXQucGFyZW50RXhpc3RzPXRydWU7cmV0LnBhcmVudFBhdGg9bG9va3VwLnBhdGg7cmV0LnBhcmVudE9iamVjdD1sb29rdXAubm9kZTtyZXQubmFtZT1QQVRILmJhc2VuYW1lKHBhdGgpO2xvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzohZG9udFJlc29sdmVMYXN0TGlua30pO3JldC5leGlzdHM9dHJ1ZTtyZXQucGF0aD1sb29rdXAucGF0aDtyZXQub2JqZWN0PWxvb2t1cC5ub2RlO3JldC5uYW1lPWxvb2t1cC5ub2RlLm5hbWU7cmV0LmlzUm9vdD1sb29rdXAucGF0aD09PSIvIn1jYXRjaChlKXtyZXQuZXJyb3I9ZS5lcnJub31yZXR1cm4gcmV0fSxjcmVhdGVQYXRoKHBhcmVudCxwYXRoLGNhblJlYWQsY2FuV3JpdGUpe3BhcmVudD10eXBlb2YgcGFyZW50PT0ic3RyaW5nIj9wYXJlbnQ6RlMuZ2V0UGF0aChwYXJlbnQpO3ZhciBwYXJ0cz1wYXRoLnNwbGl0KCIvIikucmV2ZXJzZSgpO3doaWxlKHBhcnRzLmxlbmd0aCl7dmFyIHBhcnQ9cGFydHMucG9wKCk7aWYoIXBhcnQpY29udGludWU7dmFyIGN1cnJlbnQ9UEFUSC5qb2luMihwYXJlbnQscGFydCk7dHJ5e0ZTLm1rZGlyKGN1cnJlbnQpfWNhdGNoKGUpe31wYXJlbnQ9Y3VycmVudH1yZXR1cm4gY3VycmVudH0sY3JlYXRlRmlsZShwYXJlbnQsbmFtZSxwcm9wZXJ0aWVzLGNhblJlYWQsY2FuV3JpdGUpe3ZhciBwYXRoPVBBVEguam9pbjIodHlwZW9mIHBhcmVudD09InN0cmluZyI/cGFyZW50OkZTLmdldFBhdGgocGFyZW50KSxuYW1lKTt2YXIgbW9kZT1GU19nZXRNb2RlKGNhblJlYWQsY2FuV3JpdGUpO3JldHVybiBGUy5jcmVhdGUocGF0aCxtb2RlKX0sY3JlYXRlRGF0YUZpbGUocGFyZW50LG5hbWUsZGF0YSxjYW5SZWFkLGNhbldyaXRlLGNhbk93bil7dmFyIHBhdGg9bmFtZTtpZihwYXJlbnQpe3BhcmVudD10eXBlb2YgcGFyZW50PT0ic3RyaW5nIj9wYXJlbnQ6RlMuZ2V0UGF0aChwYXJlbnQpO3BhdGg9bmFtZT9QQVRILmpvaW4yKHBhcmVudCxuYW1lKTpwYXJlbnR9dmFyIG1vZGU9RlNfZ2V0TW9kZShjYW5SZWFkLGNhbldyaXRlKTt2YXIgbm9kZT1GUy5jcmVhdGUocGF0aCxtb2RlKTtpZihkYXRhKXtpZih0eXBlb2YgZGF0YT09InN0cmluZyIpe3ZhciBhcnI9bmV3IEFycmF5KGRhdGEubGVuZ3RoKTtmb3IodmFyIGk9MCxsZW49ZGF0YS5sZW5ndGg7aTxsZW47KytpKWFycltpXT1kYXRhLmNoYXJDb2RlQXQoaSk7ZGF0YT1hcnJ9RlMuY2htb2Qobm9kZSxtb2RlfDE0Nik7dmFyIHN0cmVhbT1GUy5vcGVuKG5vZGUsNTc3KTtGUy53cml0ZShzdHJlYW0sZGF0YSwwLGRhdGEubGVuZ3RoLDAsY2FuT3duKTtGUy5jbG9zZShzdHJlYW0pO0ZTLmNobW9kKG5vZGUsbW9kZSl9fSxjcmVhdGVEZXZpY2UocGFyZW50LG5hbWUsaW5wdXQsb3V0cHV0KXt2YXIgcGF0aD1QQVRILmpvaW4yKHR5cGVvZiBwYXJlbnQ9PSJzdHJpbmciP3BhcmVudDpGUy5nZXRQYXRoKHBhcmVudCksbmFtZSk7dmFyIG1vZGU9RlNfZ2V0TW9kZSghIWlucHV0LCEhb3V0cHV0KTtpZighRlMuY3JlYXRlRGV2aWNlLm1ham9yKUZTLmNyZWF0ZURldmljZS5tYWpvcj02NDt2YXIgZGV2PUZTLm1ha2VkZXYoRlMuY3JlYXRlRGV2aWNlLm1ham9yKyssMCk7RlMucmVnaXN0ZXJEZXZpY2UoZGV2LHtvcGVuKHN0cmVhbSl7c3RyZWFtLnNlZWthYmxlPWZhbHNlfSxjbG9zZShzdHJlYW0pe2lmKG91dHB1dCYmb3V0cHV0LmJ1ZmZlciYmb3V0cHV0LmJ1ZmZlci5sZW5ndGgpe291dHB1dCgxMCl9fSxyZWFkKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3Mpe3ZhciBieXRlc1JlYWQ9MDtmb3IodmFyIGk9MDtpPGxlbmd0aDtpKyspe3ZhciByZXN1bHQ7dHJ5e3Jlc3VsdD1pbnB1dCgpfWNhdGNoKGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDI5KX1pZihyZXN1bHQ9PT11bmRlZmluZWQmJmJ5dGVzUmVhZD09PTApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDYpfWlmKHJlc3VsdD09PW51bGx8fHJlc3VsdD09PXVuZGVmaW5lZClicmVhaztieXRlc1JlYWQrKztidWZmZXJbb2Zmc2V0K2ldPXJlc3VsdH1pZihieXRlc1JlYWQpe3N0cmVhbS5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpfXJldHVybiBieXRlc1JlYWR9LHdyaXRlKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3Mpe2Zvcih2YXIgaT0wO2k8bGVuZ3RoO2krKyl7dHJ5e291dHB1dChidWZmZXJbb2Zmc2V0K2ldKX1jYXRjaChlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcigyOSl9fWlmKGxlbmd0aCl7c3RyZWFtLm5vZGUudGltZXN0YW1wPURhdGUubm93KCl9cmV0dXJuIGl9fSk7cmV0dXJuIEZTLm1rZGV2KHBhdGgsbW9kZSxkZXYpfSxmb3JjZUxvYWRGaWxlKG9iail7aWYob2JqLmlzRGV2aWNlfHxvYmouaXNGb2xkZXJ8fG9iai5saW5rfHxvYmouY29udGVudHMpcmV0dXJuIHRydWU7aWYodHlwZW9mIFhNTEh0dHBSZXF1ZXN0IT0idW5kZWZpbmVkIil7dGhyb3cgbmV3IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3JtZWQgKGNvbnRlbnRzIHNldCkgaW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5IGxvYWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKX1lbHNlIGlmKHJlYWRfKXt0cnl7b2JqLmNvbnRlbnRzPWludEFycmF5RnJvbVN0cmluZyhyZWFkXyhvYmoudXJsKSx0cnVlKTtvYmoudXNlZEJ5dGVzPW9iai5jb250ZW50cy5sZW5ndGh9Y2F0Y2goZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoMjkpfX1lbHNle3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGxvYWQgd2l0aG91dCByZWFkKCkgb3IgWE1MSHR0cFJlcXVlc3QuIil9fSxjcmVhdGVMYXp5RmlsZShwYXJlbnQsbmFtZSx1cmwsY2FuUmVhZCxjYW5Xcml0ZSl7ZnVuY3Rpb24gTGF6eVVpbnQ4QXJyYXkoKXt0aGlzLmxlbmd0aEtub3duPWZhbHNlO3RoaXMuY2h1bmtzPVtdfUxhenlVaW50OEFycmF5LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24gTGF6eVVpbnQ4QXJyYXlfZ2V0KGlkeCl7aWYoaWR4PnRoaXMubGVuZ3RoLTF8fGlkeDwwKXtyZXR1cm4gdW5kZWZpbmVkfXZhciBjaHVua09mZnNldD1pZHgldGhpcy5jaHVua1NpemU7dmFyIGNodW5rTnVtPWlkeC90aGlzLmNodW5rU2l6ZXwwO3JldHVybiB0aGlzLmdldHRlcihjaHVua051bSlbY2h1bmtPZmZzZXRdfTtMYXp5VWludDhBcnJheS5wcm90b3R5cGUuc2V0RGF0YUdldHRlcj1mdW5jdGlvbiBMYXp5VWludDhBcnJheV9zZXREYXRhR2V0dGVyKGdldHRlcil7dGhpcy5nZXR0ZXI9Z2V0dGVyfTtMYXp5VWludDhBcnJheS5wcm90b3R5cGUuY2FjaGVMZW5ndGg9ZnVuY3Rpb24gTGF6eVVpbnQ4QXJyYXlfY2FjaGVMZW5ndGgoKXt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbigiSEVBRCIsdXJsLGZhbHNlKTt4aHIuc2VuZChudWxsKTtpZighKHhoci5zdGF0dXM+PTIwMCYmeGhyLnN0YXR1czwzMDB8fHhoci5zdGF0dXM9PT0zMDQpKXRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiK3VybCsiLiBTdGF0dXM6ICIreGhyLnN0YXR1cyk7dmFyIGRhdGFsZW5ndGg9TnVtYmVyKHhoci5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1sZW5ndGgiKSk7dmFyIGhlYWRlcjt2YXIgaGFzQnl0ZVNlcnZpbmc9KGhlYWRlcj14aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkFjY2VwdC1SYW5nZXMiKSkmJmhlYWRlcj09PSJieXRlcyI7dmFyIHVzZXNHemlwPShoZWFkZXI9eGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LUVuY29kaW5nIikpJiZoZWFkZXI9PT0iZ3ppcCI7dmFyIGNodW5rU2l6ZT0xMDI0KjEwMjQ7aWYoIWhhc0J5dGVTZXJ2aW5nKWNodW5rU2l6ZT1kYXRhbGVuZ3RoO3ZhciBkb1hIUj0oZnJvbSx0byk9PntpZihmcm9tPnRvKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCByYW5nZSAoIitmcm9tKyIsICIrdG8rIikgb3Igbm8gYnl0ZXMgcmVxdWVzdGVkISIpO2lmKHRvPmRhdGFsZW5ndGgtMSl0aHJvdyBuZXcgRXJyb3IoIm9ubHkgIitkYXRhbGVuZ3RoKyIgYnl0ZXMgYXZhaWxhYmxlISBwcm9ncmFtbWVyIGVycm9yISIpO3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJHRVQiLHVybCxmYWxzZSk7aWYoZGF0YWxlbmd0aCE9PWNodW5rU2l6ZSl4aHIuc2V0UmVxdWVzdEhlYWRlcigiUmFuZ2UiLCJieXRlcz0iK2Zyb20rIi0iK3RvKTt4aHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciI7aWYoeGhyLm92ZXJyaWRlTWltZVR5cGUpe3hoci5vdmVycmlkZU1pbWVUeXBlKCJ0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkIil9eGhyLnNlbmQobnVsbCk7aWYoISh4aHIuc3RhdHVzPj0yMDAmJnhoci5zdGF0dXM8MzAwfHx4aHIuc3RhdHVzPT09MzA0KSl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIit1cmwrIi4gU3RhdHVzOiAiK3hoci5zdGF0dXMpO2lmKHhoci5yZXNwb25zZSE9PXVuZGVmaW5lZCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25zZXx8W10pfXJldHVybiBpbnRBcnJheUZyb21TdHJpbmcoeGhyLnJlc3BvbnNlVGV4dHx8IiIsdHJ1ZSl9O3ZhciBsYXp5QXJyYXk9dGhpcztsYXp5QXJyYXkuc2V0RGF0YUdldHRlcihjaHVua051bT0+e3ZhciBzdGFydD1jaHVua051bSpjaHVua1NpemU7dmFyIGVuZD0oY2h1bmtOdW0rMSkqY2h1bmtTaXplLTE7ZW5kPU1hdGgubWluKGVuZCxkYXRhbGVuZ3RoLTEpO2lmKHR5cGVvZiBsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXT09InVuZGVmaW5lZCIpe2xhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dPWRvWEhSKHN0YXJ0LGVuZCl9aWYodHlwZW9mIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dPT0idW5kZWZpbmVkIil0aHJvdyBuZXcgRXJyb3IoImRvWEhSIGZhaWxlZCEiKTtyZXR1cm4gbGF6eUFycmF5LmNodW5rc1tjaHVua051bV19KTtpZih1c2VzR3ppcHx8IWRhdGFsZW5ndGgpe2NodW5rU2l6ZT1kYXRhbGVuZ3RoPTE7ZGF0YWxlbmd0aD10aGlzLmdldHRlcigwKS5sZW5ndGg7Y2h1bmtTaXplPWRhdGFsZW5ndGg7b3V0KCJMYXp5RmlsZXMgb24gZ3ppcCBmb3JjZXMgZG93bmxvYWQgb2YgdGhlIHdob2xlIGZpbGUgd2hlbiBsZW5ndGggaXMgYWNjZXNzZWQiKX10aGlzLl9sZW5ndGg9ZGF0YWxlbmd0aDt0aGlzLl9jaHVua1NpemU9Y2h1bmtTaXplO3RoaXMubGVuZ3RoS25vd249dHJ1ZX07aWYodHlwZW9mIFhNTEh0dHBSZXF1ZXN0IT0idW5kZWZpbmVkIil7aWYoIUVOVklST05NRU5UX0lTX1dPUktFUil0aHJvdyJDYW5ub3QgZG8gc3luY2hyb25vdXMgYmluYXJ5IFhIUnMgb3V0c2lkZSB3ZWJ3b3JrZXJzIGluIG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjIjt2YXIgbGF6eUFycmF5PW5ldyBMYXp5VWludDhBcnJheTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsYXp5QXJyYXkse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMubGVuZ3RoS25vd24pe3RoaXMuY2FjaGVMZW5ndGgoKX1yZXR1cm4gdGhpcy5fbGVuZ3RofX0sY2h1bmtTaXplOntnZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5sZW5ndGhLbm93bil7dGhpcy5jYWNoZUxlbmd0aCgpfXJldHVybiB0aGlzLl9jaHVua1NpemV9fX0pO3ZhciBwcm9wZXJ0aWVzPXtpc0RldmljZTpmYWxzZSxjb250ZW50czpsYXp5QXJyYXl9fWVsc2V7dmFyIHByb3BlcnRpZXM9e2lzRGV2aWNlOmZhbHNlLHVybDp1cmx9fXZhciBub2RlPUZTLmNyZWF0ZUZpbGUocGFyZW50LG5hbWUscHJvcGVydGllcyxjYW5SZWFkLGNhbldyaXRlKTtpZihwcm9wZXJ0aWVzLmNvbnRlbnRzKXtub2RlLmNvbnRlbnRzPXByb3BlcnRpZXMuY29udGVudHN9ZWxzZSBpZihwcm9wZXJ0aWVzLnVybCl7bm9kZS5jb250ZW50cz1udWxsO25vZGUudXJsPXByb3BlcnRpZXMudXJsfU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5vZGUse3VzZWRCeXRlczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudHMubGVuZ3RofX19KTt2YXIgc3RyZWFtX29wcz17fTt2YXIga2V5cz1PYmplY3Qua2V5cyhub2RlLnN0cmVhbV9vcHMpO2tleXMuZm9yRWFjaChrZXk9Pnt2YXIgZm49bm9kZS5zdHJlYW1fb3BzW2tleV07c3RyZWFtX29wc1trZXldPWZ1bmN0aW9uIGZvcmNlTG9hZExhenlGaWxlKCl7RlMuZm9yY2VMb2FkRmlsZShub2RlKTtyZXR1cm4gZm4uYXBwbHkobnVsbCxhcmd1bWVudHMpfX0pO2Z1bmN0aW9uIHdyaXRlQ2h1bmtzKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbil7dmFyIGNvbnRlbnRzPXN0cmVhbS5ub2RlLmNvbnRlbnRzO2lmKHBvc2l0aW9uPj1jb250ZW50cy5sZW5ndGgpcmV0dXJuIDA7dmFyIHNpemU9TWF0aC5taW4oY29udGVudHMubGVuZ3RoLXBvc2l0aW9uLGxlbmd0aCk7aWYoY29udGVudHMuc2xpY2Upe2Zvcih2YXIgaT0wO2k8c2l6ZTtpKyspe2J1ZmZlcltvZmZzZXQraV09Y29udGVudHNbcG9zaXRpb24raV19fWVsc2V7Zm9yKHZhciBpPTA7aTxzaXplO2krKyl7YnVmZmVyW29mZnNldCtpXT1jb250ZW50cy5nZXQocG9zaXRpb24raSl9fXJldHVybiBzaXplfXN0cmVhbV9vcHMucmVhZD0oc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKT0+e0ZTLmZvcmNlTG9hZEZpbGUobm9kZSk7cmV0dXJuIHdyaXRlQ2h1bmtzKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbil9O3N0cmVhbV9vcHMubW1hcD0oc3RyZWFtLGxlbmd0aCxwb3NpdGlvbixwcm90LGZsYWdzKT0+e0ZTLmZvcmNlTG9hZEZpbGUobm9kZSk7dmFyIHB0cj1tbWFwQWxsb2MobGVuZ3RoKTtpZighcHRyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0OCl9d3JpdGVDaHVua3Moc3RyZWFtLEhFQVA4LHB0cixsZW5ndGgscG9zaXRpb24pO3JldHVybntwdHI6cHRyLGFsbG9jYXRlZDp0cnVlfX07bm9kZS5zdHJlYW1fb3BzPXN0cmVhbV9vcHM7cmV0dXJuIG5vZGV9fTt2YXIgVVRGOFRvU3RyaW5nPShwdHIsbWF4Qnl0ZXNUb1JlYWQpPT5wdHI/VVRGOEFycmF5VG9TdHJpbmcoSEVBUFU4LHB0cixtYXhCeXRlc1RvUmVhZCk6IiI7dmFyIFNZU0NBTExTPXtERUZBVUxUX1BPTExNQVNLOjUsY2FsY3VsYXRlQXQoZGlyZmQscGF0aCxhbGxvd0VtcHR5KXtpZihQQVRILmlzQWJzKHBhdGgpKXtyZXR1cm4gcGF0aH12YXIgZGlyO2lmKGRpcmZkPT09LTEwMCl7ZGlyPUZTLmN3ZCgpfWVsc2V7dmFyIGRpcnN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZGlyZmQpO2Rpcj1kaXJzdHJlYW0ucGF0aH1pZihwYXRoLmxlbmd0aD09MCl7aWYoIWFsbG93RW1wdHkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKDQ0KX1yZXR1cm4gZGlyfXJldHVybiBQQVRILmpvaW4yKGRpcixwYXRoKX0sZG9TdGF0KGZ1bmMscGF0aCxidWYpe3RyeXt2YXIgc3RhdD1mdW5jKHBhdGgpfWNhdGNoKGUpe2lmKGUmJmUubm9kZSYmUEFUSC5ub3JtYWxpemUocGF0aCkhPT1QQVRILm5vcm1hbGl6ZShGUy5nZXRQYXRoKGUubm9kZSkpKXtyZXR1cm4tNTR9dGhyb3cgZX1IRUFQMzJbYnVmPj4yXT1zdGF0LmRldjtIRUFQMzJbYnVmKzQ+PjJdPXN0YXQubW9kZTtIRUFQVTMyW2J1Zis4Pj4yXT1zdGF0Lm5saW5rO0hFQVAzMltidWYrMTI+PjJdPXN0YXQudWlkO0hFQVAzMltidWYrMTY+PjJdPXN0YXQuZ2lkO0hFQVAzMltidWYrMjA+PjJdPXN0YXQucmRldjt0ZW1wSTY0PVtzdGF0LnNpemU+Pj4wLCh0ZW1wRG91YmxlPXN0YXQuc2l6ZSwrTWF0aC5hYnModGVtcERvdWJsZSk+PTE/dGVtcERvdWJsZT4wPytNYXRoLmZsb29yKHRlbXBEb3VibGUvNDI5NDk2NzI5Nik+Pj4wOn5+K01hdGguY2VpbCgodGVtcERvdWJsZS0rKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLEhFQVAzMltidWYrMjQ+PjJdPXRlbXBJNjRbMF0sSEVBUDMyW2J1ZisyOD4+Ml09dGVtcEk2NFsxXTtIRUFQMzJbYnVmKzMyPj4yXT00MDk2O0hFQVAzMltidWYrMzY+PjJdPXN0YXQuYmxvY2tzO3ZhciBhdGltZT1zdGF0LmF0aW1lLmdldFRpbWUoKTt2YXIgbXRpbWU9c3RhdC5tdGltZS5nZXRUaW1lKCk7dmFyIGN0aW1lPXN0YXQuY3RpbWUuZ2V0VGltZSgpO3RlbXBJNjQ9W01hdGguZmxvb3IoYXRpbWUvMWUzKT4+PjAsKHRlbXBEb3VibGU9TWF0aC5mbG9vcihhdGltZS8xZTMpLCtNYXRoLmFicyh0ZW1wRG91YmxlKT49MT90ZW1wRG91YmxlPjA/K01hdGguZmxvb3IodGVtcERvdWJsZS80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKCh0ZW1wRG91YmxlLSsofn50ZW1wRG91YmxlPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sSEVBUDMyW2J1Zis0MD4+Ml09dGVtcEk2NFswXSxIRUFQMzJbYnVmKzQ0Pj4yXT10ZW1wSTY0WzFdO0hFQVBVMzJbYnVmKzQ4Pj4yXT1hdGltZSUxZTMqMWUzO3RlbXBJNjQ9W01hdGguZmxvb3IobXRpbWUvMWUzKT4+PjAsKHRlbXBEb3VibGU9TWF0aC5mbG9vcihtdGltZS8xZTMpLCtNYXRoLmFicyh0ZW1wRG91YmxlKT49MT90ZW1wRG91YmxlPjA/K01hdGguZmxvb3IodGVtcERvdWJsZS80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKCh0ZW1wRG91YmxlLSsofn50ZW1wRG91YmxlPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sSEVBUDMyW2J1Zis1Nj4+Ml09dGVtcEk2NFswXSxIRUFQMzJbYnVmKzYwPj4yXT10ZW1wSTY0WzFdO0hFQVBVMzJbYnVmKzY0Pj4yXT1tdGltZSUxZTMqMWUzO3RlbXBJNjQ9W01hdGguZmxvb3IoY3RpbWUvMWUzKT4+PjAsKHRlbXBEb3VibGU9TWF0aC5mbG9vcihjdGltZS8xZTMpLCtNYXRoLmFicyh0ZW1wRG91YmxlKT49MT90ZW1wRG91YmxlPjA/K01hdGguZmxvb3IodGVtcERvdWJsZS80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKCh0ZW1wRG91YmxlLSsofn50ZW1wRG91YmxlPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sSEVBUDMyW2J1Zis3Mj4+Ml09dGVtcEk2NFswXSxIRUFQMzJbYnVmKzc2Pj4yXT10ZW1wSTY0WzFdO0hFQVBVMzJbYnVmKzgwPj4yXT1jdGltZSUxZTMqMWUzO3RlbXBJNjQ9W3N0YXQuaW5vPj4+MCwodGVtcERvdWJsZT1zdGF0LmlubywrTWF0aC5hYnModGVtcERvdWJsZSk+PTE/dGVtcERvdWJsZT4wPytNYXRoLmZsb29yKHRlbXBEb3VibGUvNDI5NDk2NzI5Nik+Pj4wOn5+K01hdGguY2VpbCgodGVtcERvdWJsZS0rKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLEhFQVAzMltidWYrODg+PjJdPXRlbXBJNjRbMF0sSEVBUDMyW2J1Zis5Mj4+Ml09dGVtcEk2NFsxXTtyZXR1cm4gMH0sZG9Nc3luYyhhZGRyLHN0cmVhbSxsZW4sZmxhZ3Msb2Zmc2V0KXtpZighRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcig0Myl9aWYoZmxhZ3MmMil7cmV0dXJuIDB9dmFyIGJ1ZmZlcj1IRUFQVTguc2xpY2UoYWRkcixhZGRyK2xlbik7RlMubXN5bmMoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuLGZsYWdzKX0sdmFyYXJnczp1bmRlZmluZWQsZ2V0KCl7dmFyIHJldD1IRUFQMzJbK1NZU0NBTExTLnZhcmFyZ3M+PjJdO1NZU0NBTExTLnZhcmFyZ3MrPTQ7cmV0dXJuIHJldH0sZ2V0cCgpe3JldHVybiBTWVNDQUxMUy5nZXQoKX0sZ2V0U3RyKHB0cil7dmFyIHJldD1VVEY4VG9TdHJpbmcocHRyKTtyZXR1cm4gcmV0fSxnZXRTdHJlYW1Gcm9tRkQoZmQpe3ZhciBzdHJlYW09RlMuZ2V0U3RyZWFtQ2hlY2tlZChmZCk7cmV0dXJuIHN0cmVhbX19O3ZhciB3aXRoU3RhY2tTYXZlPWY9Pnt2YXIgc3RhY2s9c3RhY2tTYXZlKCk7dmFyIHJldD1mKCk7c3RhY2tSZXN0b3JlKHN0YWNrKTtyZXR1cm4gcmV0fTt2YXIgY29udmVydEkzMlBhaXJUb0k1M0NoZWNrZWQ9KGxvLGhpKT0+aGkrMjA5NzE1Mj4+PjA8NDE5NDMwNS0hIWxvPyhsbz4+PjApK2hpKjQyOTQ5NjcyOTY6TmFOO3ZhciBwcm94eVRvTWFpblRocmVhZD1mdW5jdGlvbihpbmRleCxzeW5jKXt2YXIgbnVtQ2FsbEFyZ3M9YXJndW1lbnRzLmxlbmd0aC0yO3ZhciBvdXRlckFyZ3M9YXJndW1lbnRzO3JldHVybiB3aXRoU3RhY2tTYXZlKCgpPT57dmFyIHNlcmlhbGl6ZWROdW1DYWxsQXJncz1udW1DYWxsQXJnczt2YXIgYXJncz1zdGFja0FsbG9jKHNlcmlhbGl6ZWROdW1DYWxsQXJncyo4KTt2YXIgYj1hcmdzPj4zO2Zvcih2YXIgaT0wO2k8bnVtQ2FsbEFyZ3M7aSsrKXt2YXIgYXJnPW91dGVyQXJnc1syK2ldO0hFQVBGNjRbYitpXT1hcmd9cmV0dXJuIF9fZW1zY3JpcHRlbl9ydW5fb25fbWFpbl90aHJlYWRfanMoaW5kZXgsc2VyaWFsaXplZE51bUNhbGxBcmdzLGFyZ3Msc3luYyl9KX07ZnVuY3Rpb24gX3Byb2NfZXhpdChjb2RlKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCgwLDEsY29kZSk7RVhJVFNUQVRVUz1jb2RlO2lmKCFrZWVwUnVudGltZUFsaXZlKCkpe1BUaHJlYWQudGVybWluYXRlQWxsVGhyZWFkcygpO2lmKE1vZHVsZVsib25FeGl0Il0pTW9kdWxlWyJvbkV4aXQiXShjb2RlKTtBQk9SVD10cnVlfXF1aXRfKGNvZGUsbmV3IEV4aXRTdGF0dXMoY29kZSkpfXZhciBleGl0SlM9KHN0YXR1cyxpbXBsaWNpdCk9PntFWElUU1RBVFVTPXN0YXR1cztpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXtleGl0T25NYWluVGhyZWFkKHN0YXR1cyk7dGhyb3cidW53aW5kIn1pZigha2VlcFJ1bnRpbWVBbGl2ZSgpKXtleGl0UnVudGltZSgpfV9wcm9jX2V4aXQoc3RhdHVzKX07dmFyIF9leGl0PWV4aXRKUzt2YXIgaGFuZGxlRXhjZXB0aW9uPWU9PntpZihlIGluc3RhbmNlb2YgRXhpdFN0YXR1c3x8ZT09InVud2luZCIpe3JldHVybiBFWElUU1RBVFVTfXF1aXRfKDEsZSl9O3ZhciBQVGhyZWFkPXt1bnVzZWRXb3JrZXJzOltdLHJ1bm5pbmdXb3JrZXJzOltdLHRsc0luaXRGdW5jdGlvbnM6W10scHRocmVhZHM6e30saW5pdCgpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpe1BUaHJlYWQuaW5pdFdvcmtlcigpfWVsc2V7UFRocmVhZC5pbml0TWFpblRocmVhZCgpfX0saW5pdE1haW5UaHJlYWQoKXt2YXIgcHRocmVhZFBvb2xTaXplPTQ7d2hpbGUocHRocmVhZFBvb2xTaXplLS0pe1BUaHJlYWQuYWxsb2NhdGVVbnVzZWRXb3JrZXIoKX1hZGRPblByZVJ1bigoKT0+e2FkZFJ1bkRlcGVuZGVuY3koImxvYWRpbmctd29ya2VycyIpO1BUaHJlYWQubG9hZFdhc21Nb2R1bGVUb0FsbFdvcmtlcnMoKCk9PnJlbW92ZVJ1bkRlcGVuZGVuY3koImxvYWRpbmctd29ya2VycyIpKX0pfSxpbml0V29ya2VyKCl7bm9FeGl0UnVudGltZT1mYWxzZX0sc2V0RXhpdFN0YXR1czpzdGF0dXM9PntFWElUU1RBVFVTPXN0YXR1c30sdGVybWluYXRlQWxsVGhyZWFkc19fZGVwczpbIiR0ZXJtaW5hdGVXb3JrZXIiXSx0ZXJtaW5hdGVBbGxUaHJlYWRzOigpPT57Zm9yKHZhciB3b3JrZXIgb2YgUFRocmVhZC5ydW5uaW5nV29ya2Vycyl7dGVybWluYXRlV29ya2VyKHdvcmtlcil9Zm9yKHZhciB3b3JrZXIgb2YgUFRocmVhZC51bnVzZWRXb3JrZXJzKXt0ZXJtaW5hdGVXb3JrZXIod29ya2VyKX1QVGhyZWFkLnVudXNlZFdvcmtlcnM9W107UFRocmVhZC5ydW5uaW5nV29ya2Vycz1bXTtQVGhyZWFkLnB0aHJlYWRzPVtdfSxyZXR1cm5Xb3JrZXJUb1Bvb2w6d29ya2VyPT57dmFyIHB0aHJlYWRfcHRyPXdvcmtlci5wdGhyZWFkX3B0cjtkZWxldGUgUFRocmVhZC5wdGhyZWFkc1twdGhyZWFkX3B0cl07UFRocmVhZC51bnVzZWRXb3JrZXJzLnB1c2god29ya2VyKTtQVGhyZWFkLnJ1bm5pbmdXb3JrZXJzLnNwbGljZShQVGhyZWFkLnJ1bm5pbmdXb3JrZXJzLmluZGV4T2Yod29ya2VyKSwxKTt3b3JrZXIucHRocmVhZF9wdHI9MDtfX2Vtc2NyaXB0ZW5fdGhyZWFkX2ZyZWVfZGF0YShwdGhyZWFkX3B0cil9LHJlY2VpdmVPYmplY3RUcmFuc2ZlcihkYXRhKXt9LHRocmVhZEluaXRUTFMoKXtQVGhyZWFkLnRsc0luaXRGdW5jdGlvbnMuZm9yRWFjaChmPT5mKCkpfSxsb2FkV2FzbU1vZHVsZVRvV29ya2VyOndvcmtlcj0+bmV3IFByb21pc2Uob25GaW5pc2hlZExvYWRpbmc9Pnt3b3JrZXIub25tZXNzYWdlPWU9Pnt2YXIgZD1lWyJkYXRhIl07dmFyIGNtZD1kWyJjbWQiXTtpZihkWyJ0YXJnZXRUaHJlYWQiXSYmZFsidGFyZ2V0VGhyZWFkIl0hPV9wdGhyZWFkX3NlbGYoKSl7dmFyIHRhcmdldFdvcmtlcj1QVGhyZWFkLnB0aHJlYWRzW2RbInRhcmdldFRocmVhZCJdXTtpZih0YXJnZXRXb3JrZXIpe3RhcmdldFdvcmtlci5wb3N0TWVzc2FnZShkLGRbInRyYW5zZmVyTGlzdCJdKX1lbHNle2VycihgSW50ZXJuYWwgZXJyb3IhIFdvcmtlciBzZW50IGEgbWVzc2FnZSAiJHtjbWR9IiB0byB0YXJnZXQgcHRocmVhZCAke2RbInRhcmdldFRocmVhZCJdfSwgYnV0IHRoYXQgdGhyZWFkIG5vIGxvbmdlciBleGlzdHMhYCl9cmV0dXJufWlmKGNtZD09PSJjaGVja01haWxib3giKXtjaGVja01haWxib3goKX1lbHNlIGlmKGNtZD09PSJzcGF3blRocmVhZCIpe3NwYXduVGhyZWFkKGQpfWVsc2UgaWYoY21kPT09ImNsZWFudXBUaHJlYWQiKXtjbGVhbnVwVGhyZWFkKGRbInRocmVhZCJdKX1lbHNlIGlmKGNtZD09PSJraWxsVGhyZWFkIil7a2lsbFRocmVhZChkWyJ0aHJlYWQiXSl9ZWxzZSBpZihjbWQ9PT0iY2FuY2VsVGhyZWFkIil7Y2FuY2VsVGhyZWFkKGRbInRocmVhZCJdKX1lbHNlIGlmKGNtZD09PSJsb2FkZWQiKXt3b3JrZXIubG9hZGVkPXRydWU7b25GaW5pc2hlZExvYWRpbmcod29ya2VyKX1lbHNlIGlmKGNtZD09PSJhbGVydCIpe2FsZXJ0KGBUaHJlYWQgJHtkWyJ0aHJlYWRJZCJdfTogJHtkWyJ0ZXh0Il19YCl9ZWxzZSBpZihkLnRhcmdldD09PSJzZXRpbW1lZGlhdGUiKXt3b3JrZXIucG9zdE1lc3NhZ2UoZCl9ZWxzZSBpZihjbWQ9PT0iY2FsbEhhbmRsZXIiKXtNb2R1bGVbZFsiaGFuZGxlciJdXSguLi5kWyJhcmdzIl0pfWVsc2UgaWYoY21kKXtlcnIoYHdvcmtlciBzZW50IGFuIHVua25vd24gY29tbWFuZCAke2NtZH1gKX19O3dvcmtlci5vbmVycm9yPWU9Pnt2YXIgbWVzc2FnZT0id29ya2VyIHNlbnQgYW4gZXJyb3IhIjtlcnIoYCR7bWVzc2FnZX0gJHtlLmZpbGVuYW1lfToke2UubGluZW5vfTogJHtlLm1lc3NhZ2V9YCk7dGhyb3cgZX07dmFyIGhhbmRsZXJzPVtdO3ZhciBrbm93bkhhbmRsZXJzPVsib25FeGl0Iiwib25BYm9ydCIsInByaW50IiwicHJpbnRFcnIiXTtmb3IodmFyIGhhbmRsZXIgb2Yga25vd25IYW5kbGVycyl7aWYoTW9kdWxlLmhhc093blByb3BlcnR5KGhhbmRsZXIpKXtoYW5kbGVycy5wdXNoKGhhbmRsZXIpfX13b3JrZXIucG9zdE1lc3NhZ2UoeyJjbWQiOiJsb2FkIiwiaGFuZGxlcnMiOmhhbmRsZXJzLCJ1cmxPckJsb2IiOk1vZHVsZVsibWFpblNjcmlwdFVybE9yQmxvYiJdLCJ3YXNtTWVtb3J5Ijp3YXNtTWVtb3J5LCJ3YXNtTW9kdWxlIjp3YXNtTW9kdWxlfSl9KSxsb2FkV2FzbU1vZHVsZVRvQWxsV29ya2Vycyhvbk1heWJlUmVhZHkpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpe3JldHVybiBvbk1heWJlUmVhZHkoKX1sZXQgcHRocmVhZFBvb2xSZWFkeT1Qcm9taXNlLmFsbChQVGhyZWFkLnVudXNlZFdvcmtlcnMubWFwKFBUaHJlYWQubG9hZFdhc21Nb2R1bGVUb1dvcmtlcikpO3B0aHJlYWRQb29sUmVhZHkudGhlbihvbk1heWJlUmVhZHkpfSxhbGxvY2F0ZVVudXNlZFdvcmtlcigpe3ZhciB3b3JrZXI7aWYoIU1vZHVsZVsibG9jYXRlRmlsZSJdKXt3b3JrZXI9bmV3IFdvcmtlcihuZXcgVVJMKCJtYWluLWJpbi1tdWx0aS53b3JrZXIuanMiLGxvY2F0aW9uLmhyZWYpLHt0eXBlOiJtb2R1bGUifSl9ZWxzZXt2YXIgcHRocmVhZE1haW5Kcz1sb2NhdGVGaWxlKCJtYWluLWJpbi1tdWx0aS53b3JrZXIuanMiKTt3b3JrZXI9bmV3IFdvcmtlcihwdGhyZWFkTWFpbkpzLHt0eXBlOiJtb2R1bGUifSl9UFRocmVhZC51bnVzZWRXb3JrZXJzLnB1c2god29ya2VyKX0sZ2V0TmV3V29ya2VyKCl7aWYoUFRocmVhZC51bnVzZWRXb3JrZXJzLmxlbmd0aD09MCl7UFRocmVhZC5hbGxvY2F0ZVVudXNlZFdvcmtlcigpO1BUaHJlYWQubG9hZFdhc21Nb2R1bGVUb1dvcmtlcihQVGhyZWFkLnVudXNlZFdvcmtlcnNbMF0pfXJldHVybiBQVGhyZWFkLnVudXNlZFdvcmtlcnMucG9wKCl9fTtNb2R1bGVbIlBUaHJlYWQiXT1QVGhyZWFkO3ZhciBjYWxsUnVudGltZUNhbGxiYWNrcz1jYWxsYmFja3M9Pnt3aGlsZShjYWxsYmFja3MubGVuZ3RoPjApe2NhbGxiYWNrcy5zaGlmdCgpKE1vZHVsZSl9fTt2YXIgZXN0YWJsaXNoU3RhY2tTcGFjZT0oKT0+e3ZhciBwdGhyZWFkX3B0cj1fcHRocmVhZF9zZWxmKCk7dmFyIHN0YWNrSGlnaD1IRUFQVTMyW3B0aHJlYWRfcHRyKzUyPj4yXTt2YXIgc3RhY2tTaXplPUhFQVBVMzJbcHRocmVhZF9wdHIrNTY+PjJdO3ZhciBzdGFja0xvdz1zdGFja0hpZ2gtc3RhY2tTaXplO19lbXNjcmlwdGVuX3N0YWNrX3NldF9saW1pdHMoc3RhY2tIaWdoLHN0YWNrTG93KTtzdGFja1Jlc3RvcmUoc3RhY2tIaWdoKX07TW9kdWxlWyJlc3RhYmxpc2hTdGFja1NwYWNlIl09ZXN0YWJsaXNoU3RhY2tTcGFjZTtmdW5jdGlvbiBleGl0T25NYWluVGhyZWFkKHJldHVybkNvZGUpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpcmV0dXJuIHByb3h5VG9NYWluVGhyZWFkKDEsMCxyZXR1cm5Db2RlKTtfZXhpdChyZXR1cm5Db2RlKX12YXIgd2FzbVRhYmxlTWlycm9yPVtdO3ZhciB3YXNtVGFibGU7dmFyIGdldFdhc21UYWJsZUVudHJ5PWZ1bmNQdHI9Pnt2YXIgZnVuYz13YXNtVGFibGVNaXJyb3JbZnVuY1B0cl07aWYoIWZ1bmMpe2lmKGZ1bmNQdHI+PXdhc21UYWJsZU1pcnJvci5sZW5ndGgpd2FzbVRhYmxlTWlycm9yLmxlbmd0aD1mdW5jUHRyKzE7d2FzbVRhYmxlTWlycm9yW2Z1bmNQdHJdPWZ1bmM9d2FzbVRhYmxlLmdldChmdW5jUHRyKX1yZXR1cm4gZnVuY307dmFyIGludm9rZUVudHJ5UG9pbnQ9KHB0cixhcmcpPT57cnVudGltZUtlZXBhbGl2ZUNvdW50ZXI9MDt2YXIgcmVzdWx0PWdldFdhc21UYWJsZUVudHJ5KHB0cikoYXJnKTtmdW5jdGlvbiBmaW5pc2gocmVzdWx0KXtpZihrZWVwUnVudGltZUFsaXZlKCkpe1BUaHJlYWQuc2V0RXhpdFN0YXR1cyhyZXN1bHQpfWVsc2V7X19lbXNjcmlwdGVuX3RocmVhZF9leGl0KHJlc3VsdCl9fWZpbmlzaChyZXN1bHQpfTtNb2R1bGVbImludm9rZUVudHJ5UG9pbnQiXT1pbnZva2VFbnRyeVBvaW50O3ZhciBub0V4aXRSdW50aW1lPU1vZHVsZVsibm9FeGl0UnVudGltZSJdfHxmYWxzZTt2YXIgcmVnaXN0ZXJUTFNJbml0PXRsc0luaXRGdW5jPT57UFRocmVhZC50bHNJbml0RnVuY3Rpb25zLnB1c2godGxzSW5pdEZ1bmMpfTt2YXIgX19fYXNzZXJ0X2ZhaWw9KGNvbmRpdGlvbixmaWxlbmFtZSxsaW5lLGZ1bmMpPT57YWJvcnQoYEFzc2VydGlvbiBmYWlsZWQ6ICR7VVRGOFRvU3RyaW5nKGNvbmRpdGlvbil9LCBhdDogYCtbZmlsZW5hbWU/VVRGOFRvU3RyaW5nKGZpbGVuYW1lKToidW5rbm93biBmaWxlbmFtZSIsbGluZSxmdW5jP1VURjhUb1N0cmluZyhmdW5jKToidW5rbm93biBmdW5jdGlvbiJdKX07dmFyIGV4Y2VwdGlvbkNhdWdodD1bXTt2YXIgdW5jYXVnaHRFeGNlcHRpb25Db3VudD0wO3ZhciBfX19jeGFfYmVnaW5fY2F0Y2g9cHRyPT57dmFyIGluZm89bmV3IEV4Y2VwdGlvbkluZm8ocHRyKTtpZighaW5mby5nZXRfY2F1Z2h0KCkpe2luZm8uc2V0X2NhdWdodCh0cnVlKTt1bmNhdWdodEV4Y2VwdGlvbkNvdW50LS19aW5mby5zZXRfcmV0aHJvd24oZmFsc2UpO2V4Y2VwdGlvbkNhdWdodC5wdXNoKGluZm8pO19fX2N4YV9pbmNyZW1lbnRfZXhjZXB0aW9uX3JlZmNvdW50KGluZm8uZXhjUHRyKTtyZXR1cm4gaW5mby5nZXRfZXhjZXB0aW9uX3B0cigpfTt2YXIgZXhjZXB0aW9uTGFzdD0wO3ZhciBfX19jeGFfZW5kX2NhdGNoPSgpPT57X3NldFRocmV3KDAsMCk7dmFyIGluZm89ZXhjZXB0aW9uQ2F1Z2h0LnBvcCgpO19fX2N4YV9kZWNyZW1lbnRfZXhjZXB0aW9uX3JlZmNvdW50KGluZm8uZXhjUHRyKTtleGNlcHRpb25MYXN0PTB9O2Z1bmN0aW9uIEV4Y2VwdGlvbkluZm8oZXhjUHRyKXt0aGlzLmV4Y1B0cj1leGNQdHI7dGhpcy5wdHI9ZXhjUHRyLTI0O3RoaXMuc2V0X3R5cGU9ZnVuY3Rpb24odHlwZSl7SEVBUFUzMlt0aGlzLnB0cis0Pj4yXT10eXBlfTt0aGlzLmdldF90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIEhFQVBVMzJbdGhpcy5wdHIrND4+Ml19O3RoaXMuc2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oZGVzdHJ1Y3Rvcil7SEVBUFUzMlt0aGlzLnB0cis4Pj4yXT1kZXN0cnVjdG9yfTt0aGlzLmdldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIEhFQVBVMzJbdGhpcy5wdHIrOD4+Ml19O3RoaXMuc2V0X2NhdWdodD1mdW5jdGlvbihjYXVnaHQpe2NhdWdodD1jYXVnaHQ/MTowO0hFQVA4W3RoaXMucHRyKzEyPj4wXT1jYXVnaHR9O3RoaXMuZ2V0X2NhdWdodD1mdW5jdGlvbigpe3JldHVybiBIRUFQOFt0aGlzLnB0cisxMj4+MF0hPTB9O3RoaXMuc2V0X3JldGhyb3duPWZ1bmN0aW9uKHJldGhyb3duKXtyZXRocm93bj1yZXRocm93bj8xOjA7SEVBUDhbdGhpcy5wdHIrMTM+PjBdPXJldGhyb3dufTt0aGlzLmdldF9yZXRocm93bj1mdW5jdGlvbigpe3JldHVybiBIRUFQOFt0aGlzLnB0cisxMz4+MF0hPTB9O3RoaXMuaW5pdD1mdW5jdGlvbih0eXBlLGRlc3RydWN0b3Ipe3RoaXMuc2V0X2FkanVzdGVkX3B0cigwKTt0aGlzLnNldF90eXBlKHR5cGUpO3RoaXMuc2V0X2Rlc3RydWN0b3IoZGVzdHJ1Y3Rvcil9O3RoaXMuc2V0X2FkanVzdGVkX3B0cj1mdW5jdGlvbihhZGp1c3RlZFB0cil7SEVBUFUzMlt0aGlzLnB0cisxNj4+Ml09YWRqdXN0ZWRQdHJ9O3RoaXMuZ2V0X2FkanVzdGVkX3B0cj1mdW5jdGlvbigpe3JldHVybiBIRUFQVTMyW3RoaXMucHRyKzE2Pj4yXX07dGhpcy5nZXRfZXhjZXB0aW9uX3B0cj1mdW5jdGlvbigpe3ZhciBpc1BvaW50ZXI9X19fY3hhX2lzX3BvaW50ZXJfdHlwZSh0aGlzLmdldF90eXBlKCkpO2lmKGlzUG9pbnRlcil7cmV0dXJuIEhFQVBVMzJbdGhpcy5leGNQdHI+PjJdfXZhciBhZGp1c3RlZD10aGlzLmdldF9hZGp1c3RlZF9wdHIoKTtpZihhZGp1c3RlZCE9PTApcmV0dXJuIGFkanVzdGVkO3JldHVybiB0aGlzLmV4Y1B0cn19dmFyIF9fX3Jlc3VtZUV4Y2VwdGlvbj1wdHI9PntpZighZXhjZXB0aW9uTGFzdCl7ZXhjZXB0aW9uTGFzdD1wdHJ9dGhyb3cgZXhjZXB0aW9uTGFzdH07dmFyIGZpbmRNYXRjaGluZ0NhdGNoPWFyZ3M9Pnt2YXIgdGhyb3duPWV4Y2VwdGlvbkxhc3Q7aWYoIXRocm93bil7c2V0VGVtcFJldDAoMCk7cmV0dXJuIDB9dmFyIGluZm89bmV3IEV4Y2VwdGlvbkluZm8odGhyb3duKTtpbmZvLnNldF9hZGp1c3RlZF9wdHIodGhyb3duKTt2YXIgdGhyb3duVHlwZT1pbmZvLmdldF90eXBlKCk7aWYoIXRocm93blR5cGUpe3NldFRlbXBSZXQwKDApO3JldHVybiB0aHJvd259Zm9yKHZhciBhcmcgaW4gYXJncyl7dmFyIGNhdWdodFR5cGU9YXJnc1thcmddO2lmKGNhdWdodFR5cGU9PT0wfHxjYXVnaHRUeXBlPT09dGhyb3duVHlwZSl7YnJlYWt9dmFyIGFkanVzdGVkX3B0cl9hZGRyPWluZm8ucHRyKzE2O2lmKF9fX2N4YV9jYW5fY2F0Y2goY2F1Z2h0VHlwZSx0aHJvd25UeXBlLGFkanVzdGVkX3B0cl9hZGRyKSl7c2V0VGVtcFJldDAoY2F1Z2h0VHlwZSk7cmV0dXJuIHRocm93bn19c2V0VGVtcFJldDAodGhyb3duVHlwZSk7cmV0dXJuIHRocm93bn07dmFyIF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoXzI9KCk9PmZpbmRNYXRjaGluZ0NhdGNoKFtdKTt2YXIgX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2hfMz1hcmcwPT5maW5kTWF0Y2hpbmdDYXRjaChbYXJnMF0pO3ZhciBfX19jeGFfcmV0aHJvdz0oKT0+e3ZhciBpbmZvPWV4Y2VwdGlvbkNhdWdodC5wb3AoKTtpZighaW5mbyl7YWJvcnQoIm5vIGV4Y2VwdGlvbiB0byB0aHJvdyIpfXZhciBwdHI9aW5mby5leGNQdHI7aWYoIWluZm8uZ2V0X3JldGhyb3duKCkpe2V4Y2VwdGlvbkNhdWdodC5wdXNoKGluZm8pO2luZm8uc2V0X3JldGhyb3duKHRydWUpO2luZm8uc2V0X2NhdWdodChmYWxzZSk7dW5jYXVnaHRFeGNlcHRpb25Db3VudCsrfWV4Y2VwdGlvbkxhc3Q9cHRyO3Rocm93IGV4Y2VwdGlvbkxhc3R9O3ZhciBfX19jeGFfdGhyb3c9KHB0cix0eXBlLGRlc3RydWN0b3IpPT57dmFyIGluZm89bmV3IEV4Y2VwdGlvbkluZm8ocHRyKTtpbmZvLmluaXQodHlwZSxkZXN0cnVjdG9yKTtleGNlcHRpb25MYXN0PXB0cjt1bmNhdWdodEV4Y2VwdGlvbkNvdW50Kys7dGhyb3cgZXhjZXB0aW9uTGFzdH07dmFyIF9fX2Vtc2NyaXB0ZW5faW5pdF9tYWluX3RocmVhZF9qcz10Yj0+e19fZW1zY3JpcHRlbl90aHJlYWRfaW5pdCh0YiwhRU5WSVJPTk1FTlRfSVNfV09SS0VSLDEsIUVOVklST05NRU5UX0lTX1dFQiw2NTUzNixmYWxzZSk7UFRocmVhZC50aHJlYWRJbml0VExTKCl9O3ZhciBfX19lbXNjcmlwdGVuX3RocmVhZF9jbGVhbnVwPXRocmVhZD0+e2lmKCFFTlZJUk9OTUVOVF9JU19QVEhSRUFEKWNsZWFudXBUaHJlYWQodGhyZWFkKTtlbHNlIHBvc3RNZXNzYWdlKHsiY21kIjoiY2xlYW51cFRocmVhZCIsInRocmVhZCI6dGhyZWFkfSl9O2Z1bmN0aW9uIHB0aHJlYWRDcmVhdGVQcm94aWVkKHB0aHJlYWRfcHRyLGF0dHIsc3RhcnRSb3V0aW5lLGFyZyl7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gcHJveHlUb01haW5UaHJlYWQoMiwxLHB0aHJlYWRfcHRyLGF0dHIsc3RhcnRSb3V0aW5lLGFyZyk7cmV0dXJuIF9fX3B0aHJlYWRfY3JlYXRlX2pzKHB0aHJlYWRfcHRyLGF0dHIsc3RhcnRSb3V0aW5lLGFyZyl9dmFyIF9fX3B0aHJlYWRfY3JlYXRlX2pzPShwdGhyZWFkX3B0cixhdHRyLHN0YXJ0Um91dGluZSxhcmcpPT57aWYodHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyPT0idW5kZWZpbmVkIil7ZXJyKCJDdXJyZW50IGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgU2hhcmVkQXJyYXlCdWZmZXIsIHB0aHJlYWRzIGFyZSBub3QgYXZhaWxhYmxlISIpO3JldHVybiA2fXZhciB0cmFuc2Zlckxpc3Q9W107dmFyIGVycm9yPTA7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRCYmKHRyYW5zZmVyTGlzdC5sZW5ndGg9PT0wfHxlcnJvcikpe3JldHVybiBwdGhyZWFkQ3JlYXRlUHJveGllZChwdGhyZWFkX3B0cixhdHRyLHN0YXJ0Um91dGluZSxhcmcpfWlmKGVycm9yKXJldHVybiBlcnJvcjt2YXIgdGhyZWFkUGFyYW1zPXtzdGFydFJvdXRpbmU6c3RhcnRSb3V0aW5lLHB0aHJlYWRfcHRyOnB0aHJlYWRfcHRyLGFyZzphcmcsdHJhbnNmZXJMaXN0OnRyYW5zZmVyTGlzdH07aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRCl7dGhyZWFkUGFyYW1zLmNtZD0ic3Bhd25UaHJlYWQiO3Bvc3RNZXNzYWdlKHRocmVhZFBhcmFtcyx0cmFuc2Zlckxpc3QpO3JldHVybiAwfXJldHVybiBzcGF3blRocmVhZCh0aHJlYWRQYXJhbXMpfTt2YXIgc2V0RXJyTm89dmFsdWU9PntIRUFQMzJbX19fZXJybm9fbG9jYXRpb24oKT4+Ml09dmFsdWU7cmV0dXJuIHZhbHVlfTtmdW5jdGlvbiBfX19zeXNjYWxsX2ZjbnRsNjQoZmQsY21kLHZhcmFyZ3Mpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpcmV0dXJuIHByb3h5VG9NYWluVGhyZWFkKDMsMSxmZCxjbWQsdmFyYXJncyk7U1lTQ0FMTFMudmFyYXJncz12YXJhcmdzO3RyeXt2YXIgc3RyZWFtPVNZU0NBTExTLmdldFN0cmVhbUZyb21GRChmZCk7c3dpdGNoKGNtZCl7Y2FzZSAwOnt2YXIgYXJnPVNZU0NBTExTLmdldCgpO2lmKGFyZzwwKXtyZXR1cm4tMjh9d2hpbGUoRlMuc3RyZWFtc1thcmddKXthcmcrK312YXIgbmV3U3RyZWFtO25ld1N0cmVhbT1GUy5jcmVhdGVTdHJlYW0oc3RyZWFtLGFyZyk7cmV0dXJuIG5ld1N0cmVhbS5mZH1jYXNlIDE6Y2FzZSAyOnJldHVybiAwO2Nhc2UgMzpyZXR1cm4gc3RyZWFtLmZsYWdzO2Nhc2UgNDp7dmFyIGFyZz1TWVNDQUxMUy5nZXQoKTtzdHJlYW0uZmxhZ3N8PWFyZztyZXR1cm4gMH1jYXNlIDU6e3ZhciBhcmc9U1lTQ0FMTFMuZ2V0cCgpO3ZhciBvZmZzZXQ9MDtIRUFQMTZbYXJnK29mZnNldD4+MV09MjtyZXR1cm4gMH1jYXNlIDY6Y2FzZSA3OnJldHVybiAwO2Nhc2UgMTY6Y2FzZSA4OnJldHVybi0yODtjYXNlIDk6c2V0RXJyTm8oMjgpO3JldHVybi0xO2RlZmF1bHQ6e3JldHVybi0yOH19fWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybi1lLmVycm5vfX1mdW5jdGlvbiBfX19zeXNjYWxsX2ZzdGF0NjQoZmQsYnVmKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCg0LDEsZmQsYnVmKTt0cnl7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO3JldHVybiBTWVNDQUxMUy5kb1N0YXQoRlMuc3RhdCxzdHJlYW0ucGF0aCxidWYpfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybi1lLmVycm5vfX1mdW5jdGlvbiBfX19zeXNjYWxsX2Z0cnVuY2F0ZTY0KGZkLGxlbmd0aF9sb3csbGVuZ3RoX2hpZ2gpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpcmV0dXJuIHByb3h5VG9NYWluVGhyZWFkKDUsMSxmZCxsZW5ndGhfbG93LGxlbmd0aF9oaWdoKTt2YXIgbGVuZ3RoPWNvbnZlcnRJMzJQYWlyVG9JNTNDaGVja2VkKGxlbmd0aF9sb3csbGVuZ3RoX2hpZ2gpO3RyeXtpZihpc05hTihsZW5ndGgpKXJldHVybiA2MTtGUy5mdHJ1bmNhdGUoZmQsbGVuZ3RoKTtyZXR1cm4gMH1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19fc3lzY2FsbF9pb2N0bChmZCxvcCx2YXJhcmdzKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCg2LDEsZmQsb3AsdmFyYXJncyk7U1lTQ0FMTFMudmFyYXJncz12YXJhcmdzO3RyeXt2YXIgc3RyZWFtPVNZU0NBTExTLmdldFN0cmVhbUZyb21GRChmZCk7c3dpdGNoKG9wKXtjYXNlIDIxNTA5OntpZighc3RyZWFtLnR0eSlyZXR1cm4tNTk7cmV0dXJuIDB9Y2FzZSAyMTUwNTp7aWYoIXN0cmVhbS50dHkpcmV0dXJuLTU5O2lmKHN0cmVhbS50dHkub3BzLmlvY3RsX3RjZ2V0cyl7dmFyIHRlcm1pb3M9c3RyZWFtLnR0eS5vcHMuaW9jdGxfdGNnZXRzKHN0cmVhbSk7dmFyIGFyZ3A9U1lTQ0FMTFMuZ2V0cCgpO0hFQVAzMlthcmdwPj4yXT10ZXJtaW9zLmNfaWZsYWd8fDA7SEVBUDMyW2FyZ3ArND4+Ml09dGVybWlvcy5jX29mbGFnfHwwO0hFQVAzMlthcmdwKzg+PjJdPXRlcm1pb3MuY19jZmxhZ3x8MDtIRUFQMzJbYXJncCsxMj4+Ml09dGVybWlvcy5jX2xmbGFnfHwwO2Zvcih2YXIgaT0wO2k8MzI7aSsrKXtIRUFQOFthcmdwK2krMTc+PjBdPXRlcm1pb3MuY19jY1tpXXx8MH1yZXR1cm4gMH1yZXR1cm4gMH1jYXNlIDIxNTEwOmNhc2UgMjE1MTE6Y2FzZSAyMTUxMjp7aWYoIXN0cmVhbS50dHkpcmV0dXJuLTU5O3JldHVybiAwfWNhc2UgMjE1MDY6Y2FzZSAyMTUwNzpjYXNlIDIxNTA4OntpZighc3RyZWFtLnR0eSlyZXR1cm4tNTk7aWYoc3RyZWFtLnR0eS5vcHMuaW9jdGxfdGNzZXRzKXt2YXIgYXJncD1TWVNDQUxMUy5nZXRwKCk7dmFyIGNfaWZsYWc9SEVBUDMyW2FyZ3A+PjJdO3ZhciBjX29mbGFnPUhFQVAzMlthcmdwKzQ+PjJdO3ZhciBjX2NmbGFnPUhFQVAzMlthcmdwKzg+PjJdO3ZhciBjX2xmbGFnPUhFQVAzMlthcmdwKzEyPj4yXTt2YXIgY19jYz1bXTtmb3IodmFyIGk9MDtpPDMyO2krKyl7Y19jYy5wdXNoKEhFQVA4W2FyZ3AraSsxNz4+MF0pfXJldHVybiBzdHJlYW0udHR5Lm9wcy5pb2N0bF90Y3NldHMoc3RyZWFtLnR0eSxvcCx7Y19pZmxhZzpjX2lmbGFnLGNfb2ZsYWc6Y19vZmxhZyxjX2NmbGFnOmNfY2ZsYWcsY19sZmxhZzpjX2xmbGFnLGNfY2M6Y19jY30pfXJldHVybiAwfWNhc2UgMjE1MTk6e2lmKCFzdHJlYW0udHR5KXJldHVybi01OTt2YXIgYXJncD1TWVNDQUxMUy5nZXRwKCk7SEVBUDMyW2FyZ3A+PjJdPTA7cmV0dXJuIDB9Y2FzZSAyMTUyMDp7aWYoIXN0cmVhbS50dHkpcmV0dXJuLTU5O3JldHVybi0yOH1jYXNlIDIxNTMxOnt2YXIgYXJncD1TWVNDQUxMUy5nZXRwKCk7cmV0dXJuIEZTLmlvY3RsKHN0cmVhbSxvcCxhcmdwKX1jYXNlIDIxNTIzOntpZighc3RyZWFtLnR0eSlyZXR1cm4tNTk7aWYoc3RyZWFtLnR0eS5vcHMuaW9jdGxfdGlvY2d3aW5zeil7dmFyIHdpbnNpemU9c3RyZWFtLnR0eS5vcHMuaW9jdGxfdGlvY2d3aW5zeihzdHJlYW0udHR5KTt2YXIgYXJncD1TWVNDQUxMUy5nZXRwKCk7SEVBUDE2W2FyZ3A+PjFdPXdpbnNpemVbMF07SEVBUDE2W2FyZ3ArMj4+MV09d2luc2l6ZVsxXX1yZXR1cm4gMH1jYXNlIDIxNTI0OntpZighc3RyZWFtLnR0eSlyZXR1cm4tNTk7cmV0dXJuIDB9Y2FzZSAyMTUxNTp7aWYoIXN0cmVhbS50dHkpcmV0dXJuLTU5O3JldHVybiAwfWRlZmF1bHQ6cmV0dXJuLTI4fX1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19fc3lzY2FsbF9sc3RhdDY0KHBhdGgsYnVmKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCg3LDEscGF0aCxidWYpO3RyeXtwYXRoPVNZU0NBTExTLmdldFN0cihwYXRoKTtyZXR1cm4gU1lTQ0FMTFMuZG9TdGF0KEZTLmxzdGF0LHBhdGgsYnVmKX1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19fc3lzY2FsbF9uZXdmc3RhdGF0KGRpcmZkLHBhdGgsYnVmLGZsYWdzKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCg4LDEsZGlyZmQscGF0aCxidWYsZmxhZ3MpO3RyeXtwYXRoPVNZU0NBTExTLmdldFN0cihwYXRoKTt2YXIgbm9mb2xsb3c9ZmxhZ3MmMjU2O3ZhciBhbGxvd0VtcHR5PWZsYWdzJjQwOTY7ZmxhZ3M9ZmxhZ3MmfjY0MDA7cGF0aD1TWVNDQUxMUy5jYWxjdWxhdGVBdChkaXJmZCxwYXRoLGFsbG93RW1wdHkpO3JldHVybiBTWVNDQUxMUy5kb1N0YXQobm9mb2xsb3c/RlMubHN0YXQ6RlMuc3RhdCxwYXRoLGJ1Zil9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuLWUuZXJybm99fWZ1bmN0aW9uIF9fX3N5c2NhbGxfb3BlbmF0KGRpcmZkLHBhdGgsZmxhZ3MsdmFyYXJncyl7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gcHJveHlUb01haW5UaHJlYWQoOSwxLGRpcmZkLHBhdGgsZmxhZ3MsdmFyYXJncyk7U1lTQ0FMTFMudmFyYXJncz12YXJhcmdzO3RyeXtwYXRoPVNZU0NBTExTLmdldFN0cihwYXRoKTtwYXRoPVNZU0NBTExTLmNhbGN1bGF0ZUF0KGRpcmZkLHBhdGgpO3ZhciBtb2RlPXZhcmFyZ3M/U1lTQ0FMTFMuZ2V0KCk6MDtyZXR1cm4gRlMub3BlbihwYXRoLGZsYWdzLG1vZGUpLmZkfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybi1lLmVycm5vfX12YXIgc3RyaW5nVG9VVEY4PShzdHIsb3V0UHRyLG1heEJ5dGVzVG9Xcml0ZSk9PnN0cmluZ1RvVVRGOEFycmF5KHN0cixIRUFQVTgsb3V0UHRyLG1heEJ5dGVzVG9Xcml0ZSk7ZnVuY3Rpb24gX19fc3lzY2FsbF9yZWFkbGlua2F0KGRpcmZkLHBhdGgsYnVmLGJ1ZnNpemUpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpcmV0dXJuIHByb3h5VG9NYWluVGhyZWFkKDEwLDEsZGlyZmQscGF0aCxidWYsYnVmc2l6ZSk7dHJ5e3BhdGg9U1lTQ0FMTFMuZ2V0U3RyKHBhdGgpO3BhdGg9U1lTQ0FMTFMuY2FsY3VsYXRlQXQoZGlyZmQscGF0aCk7aWYoYnVmc2l6ZTw9MClyZXR1cm4tMjg7dmFyIHJldD1GUy5yZWFkbGluayhwYXRoKTt2YXIgbGVuPU1hdGgubWluKGJ1ZnNpemUsbGVuZ3RoQnl0ZXNVVEY4KHJldCkpO3ZhciBlbmRDaGFyPUhFQVA4W2J1ZitsZW5dO3N0cmluZ1RvVVRGOChyZXQsYnVmLGJ1ZnNpemUrMSk7SEVBUDhbYnVmK2xlbl09ZW5kQ2hhcjtyZXR1cm4gbGVufWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybi1lLmVycm5vfX1mdW5jdGlvbiBfX19zeXNjYWxsX3JlbmFtZWF0KG9sZGRpcmZkLG9sZHBhdGgsbmV3ZGlyZmQsbmV3cGF0aCl7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gcHJveHlUb01haW5UaHJlYWQoMTEsMSxvbGRkaXJmZCxvbGRwYXRoLG5ld2RpcmZkLG5ld3BhdGgpO3RyeXtvbGRwYXRoPVNZU0NBTExTLmdldFN0cihvbGRwYXRoKTtuZXdwYXRoPVNZU0NBTExTLmdldFN0cihuZXdwYXRoKTtvbGRwYXRoPVNZU0NBTExTLmNhbGN1bGF0ZUF0KG9sZGRpcmZkLG9sZHBhdGgpO25ld3BhdGg9U1lTQ0FMTFMuY2FsY3VsYXRlQXQobmV3ZGlyZmQsbmV3cGF0aCk7RlMucmVuYW1lKG9sZHBhdGgsbmV3cGF0aCk7cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuLWUuZXJybm99fWZ1bmN0aW9uIF9fX3N5c2NhbGxfc3RhdDY0KHBhdGgsYnVmKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCgxMiwxLHBhdGgsYnVmKTt0cnl7cGF0aD1TWVNDQUxMUy5nZXRTdHIocGF0aCk7cmV0dXJuIFNZU0NBTExTLmRvU3RhdChGUy5zdGF0LHBhdGgsYnVmKX1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19fc3lzY2FsbF91bmxpbmthdChkaXJmZCxwYXRoLGZsYWdzKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCgxMywxLGRpcmZkLHBhdGgsZmxhZ3MpO3RyeXtwYXRoPVNZU0NBTExTLmdldFN0cihwYXRoKTtwYXRoPVNZU0NBTExTLmNhbGN1bGF0ZUF0KGRpcmZkLHBhdGgpO2lmKGZsYWdzPT09MCl7RlMudW5saW5rKHBhdGgpfWVsc2UgaWYoZmxhZ3M9PT01MTIpe0ZTLnJtZGlyKHBhdGgpfWVsc2V7YWJvcnQoIkludmFsaWQgZmxhZ3MgcGFzc2VkIHRvIHVubGlua2F0Iil9cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuLWUuZXJybm99fXZhciBfX2VtYmluZF9yZWdpc3Rlcl9iaWdpbnQ9KHByaW1pdGl2ZVR5cGUsbmFtZSxzaXplLG1pblJhbmdlLG1heFJhbmdlKT0+e307dmFyIGVtYmluZF9pbml0X2NoYXJDb2Rlcz0oKT0+e3ZhciBjb2Rlcz1uZXcgQXJyYXkoMjU2KTtmb3IodmFyIGk9MDtpPDI1NjsrK2kpe2NvZGVzW2ldPVN0cmluZy5mcm9tQ2hhckNvZGUoaSl9ZW1iaW5kX2NoYXJDb2Rlcz1jb2Rlc307dmFyIGVtYmluZF9jaGFyQ29kZXM7dmFyIHJlYWRMYXRpbjFTdHJpbmc9cHRyPT57dmFyIHJldD0iIjt2YXIgYz1wdHI7d2hpbGUoSEVBUFU4W2NdKXtyZXQrPWVtYmluZF9jaGFyQ29kZXNbSEVBUFU4W2MrK11dfXJldHVybiByZXR9O3ZhciBhd2FpdGluZ0RlcGVuZGVuY2llcz17fTt2YXIgcmVnaXN0ZXJlZFR5cGVzPXt9O3ZhciB0eXBlRGVwZW5kZW5jaWVzPXt9O3ZhciBCaW5kaW5nRXJyb3I7dmFyIHRocm93QmluZGluZ0Vycm9yPW1lc3NhZ2U9Pnt0aHJvdyBuZXcgQmluZGluZ0Vycm9yKG1lc3NhZ2UpfTt2YXIgSW50ZXJuYWxFcnJvcjt2YXIgdGhyb3dJbnRlcm5hbEVycm9yPW1lc3NhZ2U9Pnt0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKX07dmFyIHdoZW5EZXBlbmRlbnRUeXBlc0FyZVJlc29sdmVkPShteVR5cGVzLGRlcGVuZGVudFR5cGVzLGdldFR5cGVDb252ZXJ0ZXJzKT0+e215VHlwZXMuZm9yRWFjaChmdW5jdGlvbih0eXBlKXt0eXBlRGVwZW5kZW5jaWVzW3R5cGVdPWRlcGVuZGVudFR5cGVzfSk7ZnVuY3Rpb24gb25Db21wbGV0ZSh0eXBlQ29udmVydGVycyl7dmFyIG15VHlwZUNvbnZlcnRlcnM9Z2V0VHlwZUNvbnZlcnRlcnModHlwZUNvbnZlcnRlcnMpO2lmKG15VHlwZUNvbnZlcnRlcnMubGVuZ3RoIT09bXlUeXBlcy5sZW5ndGgpe3Rocm93SW50ZXJuYWxFcnJvcigiTWlzbWF0Y2hlZCB0eXBlIGNvbnZlcnRlciBjb3VudCIpfWZvcih2YXIgaT0wO2k8bXlUeXBlcy5sZW5ndGg7KytpKXtyZWdpc3RlclR5cGUobXlUeXBlc1tpXSxteVR5cGVDb252ZXJ0ZXJzW2ldKX19dmFyIHR5cGVDb252ZXJ0ZXJzPW5ldyBBcnJheShkZXBlbmRlbnRUeXBlcy5sZW5ndGgpO3ZhciB1bnJlZ2lzdGVyZWRUeXBlcz1bXTt2YXIgcmVnaXN0ZXJlZD0wO2RlcGVuZGVudFR5cGVzLmZvckVhY2goKGR0LGkpPT57aWYocmVnaXN0ZXJlZFR5cGVzLmhhc093blByb3BlcnR5KGR0KSl7dHlwZUNvbnZlcnRlcnNbaV09cmVnaXN0ZXJlZFR5cGVzW2R0XX1lbHNle3VucmVnaXN0ZXJlZFR5cGVzLnB1c2goZHQpO2lmKCFhd2FpdGluZ0RlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShkdCkpe2F3YWl0aW5nRGVwZW5kZW5jaWVzW2R0XT1bXX1hd2FpdGluZ0RlcGVuZGVuY2llc1tkdF0ucHVzaCgoKT0+e3R5cGVDb252ZXJ0ZXJzW2ldPXJlZ2lzdGVyZWRUeXBlc1tkdF07KytyZWdpc3RlcmVkO2lmKHJlZ2lzdGVyZWQ9PT11bnJlZ2lzdGVyZWRUeXBlcy5sZW5ndGgpe29uQ29tcGxldGUodHlwZUNvbnZlcnRlcnMpfX0pfX0pO2lmKDA9PT11bnJlZ2lzdGVyZWRUeXBlcy5sZW5ndGgpe29uQ29tcGxldGUodHlwZUNvbnZlcnRlcnMpfX07ZnVuY3Rpb24gc2hhcmVkUmVnaXN0ZXJUeXBlKHJhd1R5cGUscmVnaXN0ZXJlZEluc3RhbmNlLG9wdGlvbnM9e30pe3ZhciBuYW1lPXJlZ2lzdGVyZWRJbnN0YW5jZS5uYW1lO2lmKCFyYXdUeXBlKXt0aHJvd0JpbmRpbmdFcnJvcihgdHlwZSAiJHtuYW1lfSIgbXVzdCBoYXZlIGEgcG9zaXRpdmUgaW50ZWdlciB0eXBlaWQgcG9pbnRlcmApfWlmKHJlZ2lzdGVyZWRUeXBlcy5oYXNPd25Qcm9wZXJ0eShyYXdUeXBlKSl7aWYob3B0aW9ucy5pZ25vcmVEdXBsaWNhdGVSZWdpc3RyYXRpb25zKXtyZXR1cm59ZWxzZXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IHJlZ2lzdGVyIHR5cGUgJyR7bmFtZX0nIHR3aWNlYCl9fXJlZ2lzdGVyZWRUeXBlc1tyYXdUeXBlXT1yZWdpc3RlcmVkSW5zdGFuY2U7ZGVsZXRlIHR5cGVEZXBlbmRlbmNpZXNbcmF3VHlwZV07aWYoYXdhaXRpbmdEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocmF3VHlwZSkpe3ZhciBjYWxsYmFja3M9YXdhaXRpbmdEZXBlbmRlbmNpZXNbcmF3VHlwZV07ZGVsZXRlIGF3YWl0aW5nRGVwZW5kZW5jaWVzW3Jhd1R5cGVdO2NhbGxiYWNrcy5mb3JFYWNoKGNiPT5jYigpKX19ZnVuY3Rpb24gcmVnaXN0ZXJUeXBlKHJhd1R5cGUscmVnaXN0ZXJlZEluc3RhbmNlLG9wdGlvbnM9e30pe2lmKCEoImFyZ1BhY2tBZHZhbmNlImluIHJlZ2lzdGVyZWRJbnN0YW5jZSkpe3Rocm93IG5ldyBUeXBlRXJyb3IoInJlZ2lzdGVyVHlwZSByZWdpc3RlcmVkSW5zdGFuY2UgcmVxdWlyZXMgYXJnUGFja0FkdmFuY2UiKX1yZXR1cm4gc2hhcmVkUmVnaXN0ZXJUeXBlKHJhd1R5cGUscmVnaXN0ZXJlZEluc3RhbmNlLG9wdGlvbnMpfXZhciBHZW5lcmljV2lyZVR5cGVTaXplPTg7dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX2Jvb2w9KHJhd1R5cGUsbmFtZSx0cnVlVmFsdWUsZmFsc2VWYWx1ZSk9PntuYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7cmVnaXN0ZXJUeXBlKHJhd1R5cGUse25hbWU6bmFtZSwiZnJvbVdpcmVUeXBlIjpmdW5jdGlvbih3dCl7cmV0dXJuISF3dH0sInRvV2lyZVR5cGUiOmZ1bmN0aW9uKGRlc3RydWN0b3JzLG8pe3JldHVybiBvP3RydWVWYWx1ZTpmYWxzZVZhbHVlfSwiYXJnUGFja0FkdmFuY2UiOkdlbmVyaWNXaXJlVHlwZVNpemUsInJlYWRWYWx1ZUZyb21Qb2ludGVyIjpmdW5jdGlvbihwb2ludGVyKXtyZXR1cm4gdGhpc1siZnJvbVdpcmVUeXBlIl0oSEVBUFU4W3BvaW50ZXJdKX0sZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX07dmFyIHNoYWxsb3dDb3B5SW50ZXJuYWxQb2ludGVyPW89Pih7Y291bnQ6by5jb3VudCxkZWxldGVTY2hlZHVsZWQ6by5kZWxldGVTY2hlZHVsZWQscHJlc2VydmVQb2ludGVyT25EZWxldGU6by5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSxwdHI6by5wdHIscHRyVHlwZTpvLnB0clR5cGUsc21hcnRQdHI6by5zbWFydFB0cixzbWFydFB0clR5cGU6by5zbWFydFB0clR5cGV9KTt2YXIgdGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkPW9iaj0+e2Z1bmN0aW9uIGdldEluc3RhbmNlVHlwZU5hbWUoaGFuZGxlKXtyZXR1cm4gaGFuZGxlLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLm5hbWV9dGhyb3dCaW5kaW5nRXJyb3IoZ2V0SW5zdGFuY2VUeXBlTmFtZShvYmopKyIgaW5zdGFuY2UgYWxyZWFkeSBkZWxldGVkIil9O3ZhciBmaW5hbGl6YXRpb25SZWdpc3RyeT1mYWxzZTt2YXIgZGV0YWNoRmluYWxpemVyPWhhbmRsZT0+e307dmFyIHJ1bkRlc3RydWN0b3I9JCQ9PntpZigkJC5zbWFydFB0cil7JCQuc21hcnRQdHJUeXBlLnJhd0Rlc3RydWN0b3IoJCQuc21hcnRQdHIpfWVsc2V7JCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MucmF3RGVzdHJ1Y3RvcigkJC5wdHIpfX07dmFyIHJlbGVhc2VDbGFzc0hhbmRsZT0kJD0+eyQkLmNvdW50LnZhbHVlLT0xO3ZhciB0b0RlbGV0ZT0wPT09JCQuY291bnQudmFsdWU7aWYodG9EZWxldGUpe3J1bkRlc3RydWN0b3IoJCQpfX07dmFyIGRvd25jYXN0UG9pbnRlcj0ocHRyLHB0ckNsYXNzLGRlc2lyZWRDbGFzcyk9PntpZihwdHJDbGFzcz09PWRlc2lyZWRDbGFzcyl7cmV0dXJuIHB0cn1pZih1bmRlZmluZWQ9PT1kZXNpcmVkQ2xhc3MuYmFzZUNsYXNzKXtyZXR1cm4gbnVsbH12YXIgcnY9ZG93bmNhc3RQb2ludGVyKHB0cixwdHJDbGFzcyxkZXNpcmVkQ2xhc3MuYmFzZUNsYXNzKTtpZihydj09PW51bGwpe3JldHVybiBudWxsfXJldHVybiBkZXNpcmVkQ2xhc3MuZG93bmNhc3QocnYpfTt2YXIgcmVnaXN0ZXJlZFBvaW50ZXJzPXt9O3ZhciBnZXRJbmhlcml0ZWRJbnN0YW5jZUNvdW50PSgpPT5PYmplY3Qua2V5cyhyZWdpc3RlcmVkSW5zdGFuY2VzKS5sZW5ndGg7dmFyIGdldExpdmVJbmhlcml0ZWRJbnN0YW5jZXM9KCk9Pnt2YXIgcnY9W107Zm9yKHZhciBrIGluIHJlZ2lzdGVyZWRJbnN0YW5jZXMpe2lmKHJlZ2lzdGVyZWRJbnN0YW5jZXMuaGFzT3duUHJvcGVydHkoaykpe3J2LnB1c2gocmVnaXN0ZXJlZEluc3RhbmNlc1trXSl9fXJldHVybiBydn07dmFyIGRlbGV0aW9uUXVldWU9W107dmFyIGZsdXNoUGVuZGluZ0RlbGV0ZXM9KCk9Pnt3aGlsZShkZWxldGlvblF1ZXVlLmxlbmd0aCl7dmFyIG9iaj1kZWxldGlvblF1ZXVlLnBvcCgpO29iai4kJC5kZWxldGVTY2hlZHVsZWQ9ZmFsc2U7b2JqWyJkZWxldGUiXSgpfX07dmFyIGRlbGF5RnVuY3Rpb247dmFyIHNldERlbGF5RnVuY3Rpb249Zm49PntkZWxheUZ1bmN0aW9uPWZuO2lmKGRlbGV0aW9uUXVldWUubGVuZ3RoJiZkZWxheUZ1bmN0aW9uKXtkZWxheUZ1bmN0aW9uKGZsdXNoUGVuZGluZ0RlbGV0ZXMpfX07dmFyIGluaXRfZW1iaW5kPSgpPT57TW9kdWxlWyJnZXRJbmhlcml0ZWRJbnN0YW5jZUNvdW50Il09Z2V0SW5oZXJpdGVkSW5zdGFuY2VDb3VudDtNb2R1bGVbImdldExpdmVJbmhlcml0ZWRJbnN0YW5jZXMiXT1nZXRMaXZlSW5oZXJpdGVkSW5zdGFuY2VzO01vZHVsZVsiZmx1c2hQZW5kaW5nRGVsZXRlcyJdPWZsdXNoUGVuZGluZ0RlbGV0ZXM7TW9kdWxlWyJzZXREZWxheUZ1bmN0aW9uIl09c2V0RGVsYXlGdW5jdGlvbn07dmFyIHJlZ2lzdGVyZWRJbnN0YW5jZXM9e307dmFyIGdldEJhc2VzdFBvaW50ZXI9KGNsYXNzXyxwdHIpPT57aWYocHRyPT09dW5kZWZpbmVkKXt0aHJvd0JpbmRpbmdFcnJvcigicHRyIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkIil9d2hpbGUoY2xhc3NfLmJhc2VDbGFzcyl7cHRyPWNsYXNzXy51cGNhc3QocHRyKTtjbGFzc189Y2xhc3NfLmJhc2VDbGFzc31yZXR1cm4gcHRyfTt2YXIgZ2V0SW5oZXJpdGVkSW5zdGFuY2U9KGNsYXNzXyxwdHIpPT57cHRyPWdldEJhc2VzdFBvaW50ZXIoY2xhc3NfLHB0cik7cmV0dXJuIHJlZ2lzdGVyZWRJbnN0YW5jZXNbcHRyXX07dmFyIG1ha2VDbGFzc0hhbmRsZT0ocHJvdG90eXBlLHJlY29yZCk9PntpZighcmVjb3JkLnB0clR5cGV8fCFyZWNvcmQucHRyKXt0aHJvd0ludGVybmFsRXJyb3IoIm1ha2VDbGFzc0hhbmRsZSByZXF1aXJlcyBwdHIgYW5kIHB0clR5cGUiKX12YXIgaGFzU21hcnRQdHJUeXBlPSEhcmVjb3JkLnNtYXJ0UHRyVHlwZTt2YXIgaGFzU21hcnRQdHI9ISFyZWNvcmQuc21hcnRQdHI7aWYoaGFzU21hcnRQdHJUeXBlIT09aGFzU21hcnRQdHIpe3Rocm93SW50ZXJuYWxFcnJvcigiQm90aCBzbWFydFB0clR5cGUgYW5kIHNtYXJ0UHRyIG11c3QgYmUgc3BlY2lmaWVkIil9cmVjb3JkLmNvdW50PXt2YWx1ZToxfTtyZXR1cm4gYXR0YWNoRmluYWxpemVyKE9iamVjdC5jcmVhdGUocHJvdG90eXBlLHskJDp7dmFsdWU6cmVjb3JkfX0pKX07ZnVuY3Rpb24gUmVnaXN0ZXJlZFBvaW50ZXJfZnJvbVdpcmVUeXBlKHB0cil7dmFyIHJhd1BvaW50ZXI9dGhpcy5nZXRQb2ludGVlKHB0cik7aWYoIXJhd1BvaW50ZXIpe3RoaXMuZGVzdHJ1Y3RvcihwdHIpO3JldHVybiBudWxsfXZhciByZWdpc3RlcmVkSW5zdGFuY2U9Z2V0SW5oZXJpdGVkSW5zdGFuY2UodGhpcy5yZWdpc3RlcmVkQ2xhc3MscmF3UG9pbnRlcik7aWYodW5kZWZpbmVkIT09cmVnaXN0ZXJlZEluc3RhbmNlKXtpZigwPT09cmVnaXN0ZXJlZEluc3RhbmNlLiQkLmNvdW50LnZhbHVlKXtyZWdpc3RlcmVkSW5zdGFuY2UuJCQucHRyPXJhd1BvaW50ZXI7cmVnaXN0ZXJlZEluc3RhbmNlLiQkLnNtYXJ0UHRyPXB0cjtyZXR1cm4gcmVnaXN0ZXJlZEluc3RhbmNlWyJjbG9uZSJdKCl9ZWxzZXt2YXIgcnY9cmVnaXN0ZXJlZEluc3RhbmNlWyJjbG9uZSJdKCk7dGhpcy5kZXN0cnVjdG9yKHB0cik7cmV0dXJuIHJ2fX1mdW5jdGlvbiBtYWtlRGVmYXVsdEhhbmRsZSgpe2lmKHRoaXMuaXNTbWFydFBvaW50ZXIpe3JldHVybiBtYWtlQ2xhc3NIYW5kbGUodGhpcy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dGhpcy5wb2ludGVlVHlwZSxwdHI6cmF3UG9pbnRlcixzbWFydFB0clR5cGU6dGhpcyxzbWFydFB0cjpwdHJ9KX1lbHNle3JldHVybiBtYWtlQ2xhc3NIYW5kbGUodGhpcy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dGhpcyxwdHI6cHRyfSl9fXZhciBhY3R1YWxUeXBlPXRoaXMucmVnaXN0ZXJlZENsYXNzLmdldEFjdHVhbFR5cGUocmF3UG9pbnRlcik7dmFyIHJlZ2lzdGVyZWRQb2ludGVyUmVjb3JkPXJlZ2lzdGVyZWRQb2ludGVyc1thY3R1YWxUeXBlXTtpZighcmVnaXN0ZXJlZFBvaW50ZXJSZWNvcmQpe3JldHVybiBtYWtlRGVmYXVsdEhhbmRsZS5jYWxsKHRoaXMpfXZhciB0b1R5cGU7aWYodGhpcy5pc0NvbnN0KXt0b1R5cGU9cmVnaXN0ZXJlZFBvaW50ZXJSZWNvcmQuY29uc3RQb2ludGVyVHlwZX1lbHNle3RvVHlwZT1yZWdpc3RlcmVkUG9pbnRlclJlY29yZC5wb2ludGVyVHlwZX12YXIgZHA9ZG93bmNhc3RQb2ludGVyKHJhd1BvaW50ZXIsdGhpcy5yZWdpc3RlcmVkQ2xhc3MsdG9UeXBlLnJlZ2lzdGVyZWRDbGFzcyk7aWYoZHA9PT1udWxsKXtyZXR1cm4gbWFrZURlZmF1bHRIYW5kbGUuY2FsbCh0aGlzKX1pZih0aGlzLmlzU21hcnRQb2ludGVyKXtyZXR1cm4gbWFrZUNsYXNzSGFuZGxlKHRvVHlwZS5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dG9UeXBlLHB0cjpkcCxzbWFydFB0clR5cGU6dGhpcyxzbWFydFB0cjpwdHJ9KX1lbHNle3JldHVybiBtYWtlQ2xhc3NIYW5kbGUodG9UeXBlLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTp0b1R5cGUscHRyOmRwfSl9fXZhciBhdHRhY2hGaW5hbGl6ZXI9aGFuZGxlPT57aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnkpe2F0dGFjaEZpbmFsaXplcj1oYW5kbGU9PmhhbmRsZTtyZXR1cm4gaGFuZGxlfWZpbmFsaXphdGlvblJlZ2lzdHJ5PW5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShpbmZvPT57cmVsZWFzZUNsYXNzSGFuZGxlKGluZm8uJCQpfSk7YXR0YWNoRmluYWxpemVyPWhhbmRsZT0+e3ZhciAkJD1oYW5kbGUuJCQ7dmFyIGhhc1NtYXJ0UHRyPSEhJCQuc21hcnRQdHI7aWYoaGFzU21hcnRQdHIpe3ZhciBpbmZvPXskJDokJH07ZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIoaGFuZGxlLGluZm8saGFuZGxlKX1yZXR1cm4gaGFuZGxlfTtkZXRhY2hGaW5hbGl6ZXI9aGFuZGxlPT5maW5hbGl6YXRpb25SZWdpc3RyeS51bnJlZ2lzdGVyKGhhbmRsZSk7cmV0dXJuIGF0dGFjaEZpbmFsaXplcihoYW5kbGUpfTt2YXIgaW5pdF9DbGFzc0hhbmRsZT0oKT0+e09iamVjdC5hc3NpZ24oQ2xhc3NIYW5kbGUucHJvdG90eXBlLHsiaXNBbGlhc09mIihvdGhlcil7aWYoISh0aGlzIGluc3RhbmNlb2YgQ2xhc3NIYW5kbGUpKXtyZXR1cm4gZmFsc2V9aWYoIShvdGhlciBpbnN0YW5jZW9mIENsYXNzSGFuZGxlKSl7cmV0dXJuIGZhbHNlfXZhciBsZWZ0Q2xhc3M9dGhpcy4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzczt2YXIgbGVmdD10aGlzLiQkLnB0cjtvdGhlci4kJD1vdGhlci4kJDt2YXIgcmlnaHRDbGFzcz1vdGhlci4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzczt2YXIgcmlnaHQ9b3RoZXIuJCQucHRyO3doaWxlKGxlZnRDbGFzcy5iYXNlQ2xhc3Mpe2xlZnQ9bGVmdENsYXNzLnVwY2FzdChsZWZ0KTtsZWZ0Q2xhc3M9bGVmdENsYXNzLmJhc2VDbGFzc313aGlsZShyaWdodENsYXNzLmJhc2VDbGFzcyl7cmlnaHQ9cmlnaHRDbGFzcy51cGNhc3QocmlnaHQpO3JpZ2h0Q2xhc3M9cmlnaHRDbGFzcy5iYXNlQ2xhc3N9cmV0dXJuIGxlZnRDbGFzcz09PXJpZ2h0Q2xhc3MmJmxlZnQ9PT1yaWdodH0sImNsb25lIigpe2lmKCF0aGlzLiQkLnB0cil7dGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkKHRoaXMpfWlmKHRoaXMuJCQucHJlc2VydmVQb2ludGVyT25EZWxldGUpe3RoaXMuJCQuY291bnQudmFsdWUrPTE7cmV0dXJuIHRoaXN9ZWxzZXt2YXIgY2xvbmU9YXR0YWNoRmluYWxpemVyKE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLHskJDp7dmFsdWU6c2hhbGxvd0NvcHlJbnRlcm5hbFBvaW50ZXIodGhpcy4kJCl9fSkpO2Nsb25lLiQkLmNvdW50LnZhbHVlKz0xO2Nsb25lLiQkLmRlbGV0ZVNjaGVkdWxlZD1mYWxzZTtyZXR1cm4gY2xvbmV9fSwiZGVsZXRlIigpe2lmKCF0aGlzLiQkLnB0cil7dGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkKHRoaXMpfWlmKHRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkJiYhdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSl7dGhyb3dCaW5kaW5nRXJyb3IoIk9iamVjdCBhbHJlYWR5IHNjaGVkdWxlZCBmb3IgZGVsZXRpb24iKX1kZXRhY2hGaW5hbGl6ZXIodGhpcyk7cmVsZWFzZUNsYXNzSGFuZGxlKHRoaXMuJCQpO2lmKCF0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlKXt0aGlzLiQkLnNtYXJ0UHRyPXVuZGVmaW5lZDt0aGlzLiQkLnB0cj11bmRlZmluZWR9fSwiaXNEZWxldGVkIigpe3JldHVybiF0aGlzLiQkLnB0cn0sImRlbGV0ZUxhdGVyIigpe2lmKCF0aGlzLiQkLnB0cil7dGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkKHRoaXMpfWlmKHRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkJiYhdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSl7dGhyb3dCaW5kaW5nRXJyb3IoIk9iamVjdCBhbHJlYWR5IHNjaGVkdWxlZCBmb3IgZGVsZXRpb24iKX1kZWxldGlvblF1ZXVlLnB1c2godGhpcyk7aWYoZGVsZXRpb25RdWV1ZS5sZW5ndGg9PT0xJiZkZWxheUZ1bmN0aW9uKXtkZWxheUZ1bmN0aW9uKGZsdXNoUGVuZGluZ0RlbGV0ZXMpfXRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkPXRydWU7cmV0dXJuIHRoaXN9fSl9O2Z1bmN0aW9uIENsYXNzSGFuZGxlKCl7fXZhciBjcmVhdGVOYW1lZEZ1bmN0aW9uPShuYW1lLGJvZHkpPT5PYmplY3QuZGVmaW5lUHJvcGVydHkoYm9keSwibmFtZSIse3ZhbHVlOm5hbWV9KTt2YXIgZW5zdXJlT3ZlcmxvYWRUYWJsZT0ocHJvdG8sbWV0aG9kTmFtZSxodW1hbk5hbWUpPT57aWYodW5kZWZpbmVkPT09cHJvdG9bbWV0aG9kTmFtZV0ub3ZlcmxvYWRUYWJsZSl7dmFyIHByZXZGdW5jPXByb3RvW21ldGhvZE5hbWVdO3Byb3RvW21ldGhvZE5hbWVdPWZ1bmN0aW9uKCl7aWYoIXByb3RvW21ldGhvZE5hbWVdLm92ZXJsb2FkVGFibGUuaGFzT3duUHJvcGVydHkoYXJndW1lbnRzLmxlbmd0aCkpe3Rocm93QmluZGluZ0Vycm9yKGBGdW5jdGlvbiAnJHtodW1hbk5hbWV9JyBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgKCR7YXJndW1lbnRzLmxlbmd0aH0pIC0gZXhwZWN0cyBvbmUgb2YgKCR7cHJvdG9bbWV0aG9kTmFtZV0ub3ZlcmxvYWRUYWJsZX0pIWApfXJldHVybiBwcm90b1ttZXRob2ROYW1lXS5vdmVybG9hZFRhYmxlW2FyZ3VtZW50cy5sZW5ndGhdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07cHJvdG9bbWV0aG9kTmFtZV0ub3ZlcmxvYWRUYWJsZT1bXTtwcm90b1ttZXRob2ROYW1lXS5vdmVybG9hZFRhYmxlW3ByZXZGdW5jLmFyZ0NvdW50XT1wcmV2RnVuY319O3ZhciBleHBvc2VQdWJsaWNTeW1ib2w9KG5hbWUsdmFsdWUsbnVtQXJndW1lbnRzKT0+e2lmKE1vZHVsZS5oYXNPd25Qcm9wZXJ0eShuYW1lKSl7aWYodW5kZWZpbmVkPT09bnVtQXJndW1lbnRzfHx1bmRlZmluZWQhPT1Nb2R1bGVbbmFtZV0ub3ZlcmxvYWRUYWJsZSYmdW5kZWZpbmVkIT09TW9kdWxlW25hbWVdLm92ZXJsb2FkVGFibGVbbnVtQXJndW1lbnRzXSl7dGhyb3dCaW5kaW5nRXJyb3IoYENhbm5vdCByZWdpc3RlciBwdWJsaWMgbmFtZSAnJHtuYW1lfScgdHdpY2VgKX1lbnN1cmVPdmVybG9hZFRhYmxlKE1vZHVsZSxuYW1lLG5hbWUpO2lmKE1vZHVsZS5oYXNPd25Qcm9wZXJ0eShudW1Bcmd1bWVudHMpKXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IHJlZ2lzdGVyIG11bHRpcGxlIG92ZXJsb2FkcyBvZiBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGFyZ3VtZW50cyAoJHtudW1Bcmd1bWVudHN9KSFgKX1Nb2R1bGVbbmFtZV0ub3ZlcmxvYWRUYWJsZVtudW1Bcmd1bWVudHNdPXZhbHVlfWVsc2V7TW9kdWxlW25hbWVdPXZhbHVlO2lmKHVuZGVmaW5lZCE9PW51bUFyZ3VtZW50cyl7TW9kdWxlW25hbWVdLm51bUFyZ3VtZW50cz1udW1Bcmd1bWVudHN9fX07dmFyIGNoYXJfMD00ODt2YXIgY2hhcl85PTU3O3ZhciBtYWtlTGVnYWxGdW5jdGlvbk5hbWU9bmFtZT0+e2lmKHVuZGVmaW5lZD09PW5hbWUpe3JldHVybiJfdW5rbm93biJ9bmFtZT1uYW1lLnJlcGxhY2UoL1teYS16QS1aMC05X10vZywiJCIpO3ZhciBmPW5hbWUuY2hhckNvZGVBdCgwKTtpZihmPj1jaGFyXzAmJmY8PWNoYXJfOSl7cmV0dXJuYF8ke25hbWV9YH1yZXR1cm4gbmFtZX07ZnVuY3Rpb24gUmVnaXN0ZXJlZENsYXNzKG5hbWUsY29uc3RydWN0b3IsaW5zdGFuY2VQcm90b3R5cGUscmF3RGVzdHJ1Y3RvcixiYXNlQ2xhc3MsZ2V0QWN0dWFsVHlwZSx1cGNhc3QsZG93bmNhc3Qpe3RoaXMubmFtZT1uYW1lO3RoaXMuY29uc3RydWN0b3I9Y29uc3RydWN0b3I7dGhpcy5pbnN0YW5jZVByb3RvdHlwZT1pbnN0YW5jZVByb3RvdHlwZTt0aGlzLnJhd0Rlc3RydWN0b3I9cmF3RGVzdHJ1Y3Rvcjt0aGlzLmJhc2VDbGFzcz1iYXNlQ2xhc3M7dGhpcy5nZXRBY3R1YWxUeXBlPWdldEFjdHVhbFR5cGU7dGhpcy51cGNhc3Q9dXBjYXN0O3RoaXMuZG93bmNhc3Q9ZG93bmNhc3Q7dGhpcy5wdXJlVmlydHVhbEZ1bmN0aW9ucz1bXX12YXIgdXBjYXN0UG9pbnRlcj0ocHRyLHB0ckNsYXNzLGRlc2lyZWRDbGFzcyk9Pnt3aGlsZShwdHJDbGFzcyE9PWRlc2lyZWRDbGFzcyl7aWYoIXB0ckNsYXNzLnVwY2FzdCl7dGhyb3dCaW5kaW5nRXJyb3IoYEV4cGVjdGVkIG51bGwgb3IgaW5zdGFuY2Ugb2YgJHtkZXNpcmVkQ2xhc3MubmFtZX0sIGdvdCBhbiBpbnN0YW5jZSBvZiAke3B0ckNsYXNzLm5hbWV9YCl9cHRyPXB0ckNsYXNzLnVwY2FzdChwdHIpO3B0ckNsYXNzPXB0ckNsYXNzLmJhc2VDbGFzc31yZXR1cm4gcHRyfTtmdW5jdGlvbiBjb25zdE5vU21hcnRQdHJSYXdQb2ludGVyVG9XaXJlVHlwZShkZXN0cnVjdG9ycyxoYW5kbGUpe2lmKGhhbmRsZT09PW51bGwpe2lmKHRoaXMuaXNSZWZlcmVuY2Upe3Rocm93QmluZGluZ0Vycm9yKGBudWxsIGlzIG5vdCBhIHZhbGlkICR7dGhpcy5uYW1lfWApfXJldHVybiAwfWlmKCFoYW5kbGUuJCQpe3Rocm93QmluZGluZ0Vycm9yKGBDYW5ub3QgcGFzcyAiJHtlbWJpbmRSZXByKGhhbmRsZSl9IiBhcyBhICR7dGhpcy5uYW1lfWApfWlmKCFoYW5kbGUuJCQucHRyKXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IHBhc3MgZGVsZXRlZCBvYmplY3QgYXMgYSBwb2ludGVyIG9mIHR5cGUgJHt0aGlzLm5hbWV9YCl9dmFyIGhhbmRsZUNsYXNzPWhhbmRsZS4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzczt2YXIgcHRyPXVwY2FzdFBvaW50ZXIoaGFuZGxlLiQkLnB0cixoYW5kbGVDbGFzcyx0aGlzLnJlZ2lzdGVyZWRDbGFzcyk7cmV0dXJuIHB0cn1mdW5jdGlvbiBnZW5lcmljUG9pbnRlclRvV2lyZVR5cGUoZGVzdHJ1Y3RvcnMsaGFuZGxlKXt2YXIgcHRyO2lmKGhhbmRsZT09PW51bGwpe2lmKHRoaXMuaXNSZWZlcmVuY2Upe3Rocm93QmluZGluZ0Vycm9yKGBudWxsIGlzIG5vdCBhIHZhbGlkICR7dGhpcy5uYW1lfWApfWlmKHRoaXMuaXNTbWFydFBvaW50ZXIpe3B0cj10aGlzLnJhd0NvbnN0cnVjdG9yKCk7aWYoZGVzdHJ1Y3RvcnMhPT1udWxsKXtkZXN0cnVjdG9ycy5wdXNoKHRoaXMucmF3RGVzdHJ1Y3RvcixwdHIpfXJldHVybiBwdHJ9ZWxzZXtyZXR1cm4gMH19aWYoIWhhbmRsZS4kJCl7dGhyb3dCaW5kaW5nRXJyb3IoYENhbm5vdCBwYXNzICIke2VtYmluZFJlcHIoaGFuZGxlKX0iIGFzIGEgJHt0aGlzLm5hbWV9YCl9aWYoIWhhbmRsZS4kJC5wdHIpe3Rocm93QmluZGluZ0Vycm9yKGBDYW5ub3QgcGFzcyBkZWxldGVkIG9iamVjdCBhcyBhIHBvaW50ZXIgb2YgdHlwZSAke3RoaXMubmFtZX1gKX1pZighdGhpcy5pc0NvbnN0JiZoYW5kbGUuJCQucHRyVHlwZS5pc0NvbnN0KXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAke2hhbmRsZS4kJC5zbWFydFB0clR5cGU/aGFuZGxlLiQkLnNtYXJ0UHRyVHlwZS5uYW1lOmhhbmRsZS4kJC5wdHJUeXBlLm5hbWV9IHRvIHBhcmFtZXRlciB0eXBlICR7dGhpcy5uYW1lfWApfXZhciBoYW5kbGVDbGFzcz1oYW5kbGUuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3M7cHRyPXVwY2FzdFBvaW50ZXIoaGFuZGxlLiQkLnB0cixoYW5kbGVDbGFzcyx0aGlzLnJlZ2lzdGVyZWRDbGFzcyk7aWYodGhpcy5pc1NtYXJ0UG9pbnRlcil7aWYodW5kZWZpbmVkPT09aGFuZGxlLiQkLnNtYXJ0UHRyKXt0aHJvd0JpbmRpbmdFcnJvcigiUGFzc2luZyByYXcgcG9pbnRlciB0byBzbWFydCBwb2ludGVyIGlzIGlsbGVnYWwiKX1zd2l0Y2godGhpcy5zaGFyaW5nUG9saWN5KXtjYXNlIDA6aWYoaGFuZGxlLiQkLnNtYXJ0UHRyVHlwZT09PXRoaXMpe3B0cj1oYW5kbGUuJCQuc21hcnRQdHJ9ZWxzZXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAke2hhbmRsZS4kJC5zbWFydFB0clR5cGU/aGFuZGxlLiQkLnNtYXJ0UHRyVHlwZS5uYW1lOmhhbmRsZS4kJC5wdHJUeXBlLm5hbWV9IHRvIHBhcmFtZXRlciB0eXBlICR7dGhpcy5uYW1lfWApfWJyZWFrO2Nhc2UgMTpwdHI9aGFuZGxlLiQkLnNtYXJ0UHRyO2JyZWFrO2Nhc2UgMjppZihoYW5kbGUuJCQuc21hcnRQdHJUeXBlPT09dGhpcyl7cHRyPWhhbmRsZS4kJC5zbWFydFB0cn1lbHNle3ZhciBjbG9uZWRIYW5kbGU9aGFuZGxlWyJjbG9uZSJdKCk7cHRyPXRoaXMucmF3U2hhcmUocHRyLEVtdmFsLnRvSGFuZGxlKCgpPT5jbG9uZWRIYW5kbGVbImRlbGV0ZSJdKCkpKTtpZihkZXN0cnVjdG9ycyE9PW51bGwpe2Rlc3RydWN0b3JzLnB1c2godGhpcy5yYXdEZXN0cnVjdG9yLHB0cil9fWJyZWFrO2RlZmF1bHQ6dGhyb3dCaW5kaW5nRXJyb3IoIlVuc3VwcG9ydGluZyBzaGFyaW5nIHBvbGljeSIpfX1yZXR1cm4gcHRyfWZ1bmN0aW9uIG5vbkNvbnN0Tm9TbWFydFB0clJhd1BvaW50ZXJUb1dpcmVUeXBlKGRlc3RydWN0b3JzLGhhbmRsZSl7aWYoaGFuZGxlPT09bnVsbCl7aWYodGhpcy5pc1JlZmVyZW5jZSl7dGhyb3dCaW5kaW5nRXJyb3IoYG51bGwgaXMgbm90IGEgdmFsaWQgJHt0aGlzLm5hbWV9YCl9cmV0dXJuIDB9aWYoIWhhbmRsZS4kJCl7dGhyb3dCaW5kaW5nRXJyb3IoYENhbm5vdCBwYXNzICIke2VtYmluZFJlcHIoaGFuZGxlKX0iIGFzIGEgJHt0aGlzLm5hbWV9YCl9aWYoIWhhbmRsZS4kJC5wdHIpe3Rocm93QmluZGluZ0Vycm9yKGBDYW5ub3QgcGFzcyBkZWxldGVkIG9iamVjdCBhcyBhIHBvaW50ZXIgb2YgdHlwZSAke3RoaXMubmFtZX1gKX1pZihoYW5kbGUuJCQucHRyVHlwZS5pc0NvbnN0KXt0aHJvd0JpbmRpbmdFcnJvcihgQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAke2hhbmRsZS4kJC5wdHJUeXBlLm5hbWV9IHRvIHBhcmFtZXRlciB0eXBlICR7dGhpcy5uYW1lfWApfXZhciBoYW5kbGVDbGFzcz1oYW5kbGUuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3M7dmFyIHB0cj11cGNhc3RQb2ludGVyKGhhbmRsZS4kJC5wdHIsaGFuZGxlQ2xhc3MsdGhpcy5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiBwdHJ9ZnVuY3Rpb24gcmVhZFBvaW50ZXIocG9pbnRlcil7cmV0dXJuIHRoaXNbImZyb21XaXJlVHlwZSJdKEhFQVBVMzJbcG9pbnRlcj4+Ml0pfXZhciBpbml0X1JlZ2lzdGVyZWRQb2ludGVyPSgpPT57T2JqZWN0LmFzc2lnbihSZWdpc3RlcmVkUG9pbnRlci5wcm90b3R5cGUse2dldFBvaW50ZWUocHRyKXtpZih0aGlzLnJhd0dldFBvaW50ZWUpe3B0cj10aGlzLnJhd0dldFBvaW50ZWUocHRyKX1yZXR1cm4gcHRyfSxkZXN0cnVjdG9yKHB0cil7aWYodGhpcy5yYXdEZXN0cnVjdG9yKXt0aGlzLnJhd0Rlc3RydWN0b3IocHRyKX19LCJhcmdQYWNrQWR2YW5jZSI6R2VuZXJpY1dpcmVUeXBlU2l6ZSwicmVhZFZhbHVlRnJvbVBvaW50ZXIiOnJlYWRQb2ludGVyLCJkZWxldGVPYmplY3QiKGhhbmRsZSl7aWYoaGFuZGxlIT09bnVsbCl7aGFuZGxlWyJkZWxldGUiXSgpfX0sImZyb21XaXJlVHlwZSI6UmVnaXN0ZXJlZFBvaW50ZXJfZnJvbVdpcmVUeXBlfSl9O2Z1bmN0aW9uIFJlZ2lzdGVyZWRQb2ludGVyKG5hbWUscmVnaXN0ZXJlZENsYXNzLGlzUmVmZXJlbmNlLGlzQ29uc3QsaXNTbWFydFBvaW50ZXIscG9pbnRlZVR5cGUsc2hhcmluZ1BvbGljeSxyYXdHZXRQb2ludGVlLHJhd0NvbnN0cnVjdG9yLHJhd1NoYXJlLHJhd0Rlc3RydWN0b3Ipe3RoaXMubmFtZT1uYW1lO3RoaXMucmVnaXN0ZXJlZENsYXNzPXJlZ2lzdGVyZWRDbGFzczt0aGlzLmlzUmVmZXJlbmNlPWlzUmVmZXJlbmNlO3RoaXMuaXNDb25zdD1pc0NvbnN0O3RoaXMuaXNTbWFydFBvaW50ZXI9aXNTbWFydFBvaW50ZXI7dGhpcy5wb2ludGVlVHlwZT1wb2ludGVlVHlwZTt0aGlzLnNoYXJpbmdQb2xpY3k9c2hhcmluZ1BvbGljeTt0aGlzLnJhd0dldFBvaW50ZWU9cmF3R2V0UG9pbnRlZTt0aGlzLnJhd0NvbnN0cnVjdG9yPXJhd0NvbnN0cnVjdG9yO3RoaXMucmF3U2hhcmU9cmF3U2hhcmU7dGhpcy5yYXdEZXN0cnVjdG9yPXJhd0Rlc3RydWN0b3I7aWYoIWlzU21hcnRQb2ludGVyJiZyZWdpc3RlcmVkQ2xhc3MuYmFzZUNsYXNzPT09dW5kZWZpbmVkKXtpZihpc0NvbnN0KXt0aGlzWyJ0b1dpcmVUeXBlIl09Y29uc3ROb1NtYXJ0UHRyUmF3UG9pbnRlclRvV2lyZVR5cGU7dGhpcy5kZXN0cnVjdG9yRnVuY3Rpb249bnVsbH1lbHNle3RoaXNbInRvV2lyZVR5cGUiXT1ub25Db25zdE5vU21hcnRQdHJSYXdQb2ludGVyVG9XaXJlVHlwZTt0aGlzLmRlc3RydWN0b3JGdW5jdGlvbj1udWxsfX1lbHNle3RoaXNbInRvV2lyZVR5cGUiXT1nZW5lcmljUG9pbnRlclRvV2lyZVR5cGV9fXZhciByZXBsYWNlUHVibGljU3ltYm9sPShuYW1lLHZhbHVlLG51bUFyZ3VtZW50cyk9PntpZighTW9kdWxlLmhhc093blByb3BlcnR5KG5hbWUpKXt0aHJvd0ludGVybmFsRXJyb3IoIlJlcGxhY2luZyBub25leGlzdGFudCBwdWJsaWMgc3ltYm9sIil9aWYodW5kZWZpbmVkIT09TW9kdWxlW25hbWVdLm92ZXJsb2FkVGFibGUmJnVuZGVmaW5lZCE9PW51bUFyZ3VtZW50cyl7TW9kdWxlW25hbWVdLm92ZXJsb2FkVGFibGVbbnVtQXJndW1lbnRzXT12YWx1ZX1lbHNle01vZHVsZVtuYW1lXT12YWx1ZTtNb2R1bGVbbmFtZV0uYXJnQ291bnQ9bnVtQXJndW1lbnRzfX07dmFyIGR5bkNhbGxMZWdhY3k9KHNpZyxwdHIsYXJncyk9Pnt2YXIgZj1Nb2R1bGVbImR5bkNhbGxfIitzaWddO3JldHVybiBhcmdzJiZhcmdzLmxlbmd0aD9mLmFwcGx5KG51bGwsW3B0cl0uY29uY2F0KGFyZ3MpKTpmLmNhbGwobnVsbCxwdHIpfTt2YXIgZHluQ2FsbD0oc2lnLHB0cixhcmdzKT0+e2lmKHNpZy5pbmNsdWRlcygiaiIpKXtyZXR1cm4gZHluQ2FsbExlZ2FjeShzaWcscHRyLGFyZ3MpfXZhciBydG49Z2V0V2FzbVRhYmxlRW50cnkocHRyKS5hcHBseShudWxsLGFyZ3MpO3JldHVybiBydG59O3ZhciBnZXREeW5DYWxsZXI9KHNpZyxwdHIpPT57dmFyIGFyZ0NhY2hlPVtdO3JldHVybiBmdW5jdGlvbigpe2FyZ0NhY2hlLmxlbmd0aD0wO09iamVjdC5hc3NpZ24oYXJnQ2FjaGUsYXJndW1lbnRzKTtyZXR1cm4gZHluQ2FsbChzaWcscHRyLGFyZ0NhY2hlKX19O3ZhciBlbWJpbmRfX3JlcXVpcmVGdW5jdGlvbj0oc2lnbmF0dXJlLHJhd0Z1bmN0aW9uKT0+e3NpZ25hdHVyZT1yZWFkTGF0aW4xU3RyaW5nKHNpZ25hdHVyZSk7ZnVuY3Rpb24gbWFrZUR5bkNhbGxlcigpe2lmKHNpZ25hdHVyZS5pbmNsdWRlcygiaiIpKXtyZXR1cm4gZ2V0RHluQ2FsbGVyKHNpZ25hdHVyZSxyYXdGdW5jdGlvbil9cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KHJhd0Z1bmN0aW9uKX12YXIgZnA9bWFrZUR5bkNhbGxlcigpO2lmKHR5cGVvZiBmcCE9ImZ1bmN0aW9uIil7dGhyb3dCaW5kaW5nRXJyb3IoYHVua25vd24gZnVuY3Rpb24gcG9pbnRlciB3aXRoIHNpZ25hdHVyZSAke3NpZ25hdHVyZX06ICR7cmF3RnVuY3Rpb259YCl9cmV0dXJuIGZwfTt2YXIgZXh0ZW5kRXJyb3I9KGJhc2VFcnJvclR5cGUsZXJyb3JOYW1lKT0+e3ZhciBlcnJvckNsYXNzPWNyZWF0ZU5hbWVkRnVuY3Rpb24oZXJyb3JOYW1lLGZ1bmN0aW9uKG1lc3NhZ2Upe3RoaXMubmFtZT1lcnJvck5hbWU7dGhpcy5tZXNzYWdlPW1lc3NhZ2U7dmFyIHN0YWNrPW5ldyBFcnJvcihtZXNzYWdlKS5zdGFjaztpZihzdGFjayE9PXVuZGVmaW5lZCl7dGhpcy5zdGFjaz10aGlzLnRvU3RyaW5nKCkrIlxuIitzdGFjay5yZXBsYWNlKC9eRXJyb3IoOlteXG5dKik/XG4vLCIiKX19KTtlcnJvckNsYXNzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGJhc2VFcnJvclR5cGUucHJvdG90eXBlKTtlcnJvckNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lcnJvckNsYXNzO2Vycm9yQ2xhc3MucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5tZXNzYWdlPT09dW5kZWZpbmVkKXtyZXR1cm4gdGhpcy5uYW1lfWVsc2V7cmV0dXJuYCR7dGhpcy5uYW1lfTogJHt0aGlzLm1lc3NhZ2V9YH19O3JldHVybiBlcnJvckNsYXNzfTt2YXIgVW5ib3VuZFR5cGVFcnJvcjt2YXIgZ2V0VHlwZU5hbWU9dHlwZT0+e3ZhciBwdHI9X19fZ2V0VHlwZU5hbWUodHlwZSk7dmFyIHJ2PXJlYWRMYXRpbjFTdHJpbmcocHRyKTtfZnJlZShwdHIpO3JldHVybiBydn07dmFyIHRocm93VW5ib3VuZFR5cGVFcnJvcj0obWVzc2FnZSx0eXBlcyk9Pnt2YXIgdW5ib3VuZFR5cGVzPVtdO3ZhciBzZWVuPXt9O2Z1bmN0aW9uIHZpc2l0KHR5cGUpe2lmKHNlZW5bdHlwZV0pe3JldHVybn1pZihyZWdpc3RlcmVkVHlwZXNbdHlwZV0pe3JldHVybn1pZih0eXBlRGVwZW5kZW5jaWVzW3R5cGVdKXt0eXBlRGVwZW5kZW5jaWVzW3R5cGVdLmZvckVhY2godmlzaXQpO3JldHVybn11bmJvdW5kVHlwZXMucHVzaCh0eXBlKTtzZWVuW3R5cGVdPXRydWV9dHlwZXMuZm9yRWFjaCh2aXNpdCk7dGhyb3cgbmV3IFVuYm91bmRUeXBlRXJyb3IoYCR7bWVzc2FnZX06IGArdW5ib3VuZFR5cGVzLm1hcChnZXRUeXBlTmFtZSkuam9pbihbIiwgIl0pKX07dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzPShyYXdUeXBlLHJhd1BvaW50ZXJUeXBlLHJhd0NvbnN0UG9pbnRlclR5cGUsYmFzZUNsYXNzUmF3VHlwZSxnZXRBY3R1YWxUeXBlU2lnbmF0dXJlLGdldEFjdHVhbFR5cGUsdXBjYXN0U2lnbmF0dXJlLHVwY2FzdCxkb3duY2FzdFNpZ25hdHVyZSxkb3duY2FzdCxuYW1lLGRlc3RydWN0b3JTaWduYXR1cmUscmF3RGVzdHJ1Y3Rvcik9PntuYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7Z2V0QWN0dWFsVHlwZT1lbWJpbmRfX3JlcXVpcmVGdW5jdGlvbihnZXRBY3R1YWxUeXBlU2lnbmF0dXJlLGdldEFjdHVhbFR5cGUpO2lmKHVwY2FzdCl7dXBjYXN0PWVtYmluZF9fcmVxdWlyZUZ1bmN0aW9uKHVwY2FzdFNpZ25hdHVyZSx1cGNhc3QpfWlmKGRvd25jYXN0KXtkb3duY2FzdD1lbWJpbmRfX3JlcXVpcmVGdW5jdGlvbihkb3duY2FzdFNpZ25hdHVyZSxkb3duY2FzdCl9cmF3RGVzdHJ1Y3Rvcj1lbWJpbmRfX3JlcXVpcmVGdW5jdGlvbihkZXN0cnVjdG9yU2lnbmF0dXJlLHJhd0Rlc3RydWN0b3IpO3ZhciBsZWdhbEZ1bmN0aW9uTmFtZT1tYWtlTGVnYWxGdW5jdGlvbk5hbWUobmFtZSk7ZXhwb3NlUHVibGljU3ltYm9sKGxlZ2FsRnVuY3Rpb25OYW1lLGZ1bmN0aW9uKCl7dGhyb3dVbmJvdW5kVHlwZUVycm9yKGBDYW5ub3QgY29uc3RydWN0ICR7bmFtZX0gZHVlIHRvIHVuYm91bmQgdHlwZXNgLFtiYXNlQ2xhc3NSYXdUeXBlXSl9KTt3aGVuRGVwZW5kZW50VHlwZXNBcmVSZXNvbHZlZChbcmF3VHlwZSxyYXdQb2ludGVyVHlwZSxyYXdDb25zdFBvaW50ZXJUeXBlXSxiYXNlQ2xhc3NSYXdUeXBlP1tiYXNlQ2xhc3NSYXdUeXBlXTpbXSxmdW5jdGlvbihiYXNlKXtiYXNlPWJhc2VbMF07dmFyIGJhc2VDbGFzczt2YXIgYmFzZVByb3RvdHlwZTtpZihiYXNlQ2xhc3NSYXdUeXBlKXtiYXNlQ2xhc3M9YmFzZS5yZWdpc3RlcmVkQ2xhc3M7YmFzZVByb3RvdHlwZT1iYXNlQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGV9ZWxzZXtiYXNlUHJvdG90eXBlPUNsYXNzSGFuZGxlLnByb3RvdHlwZX12YXIgY29uc3RydWN0b3I9Y3JlYXRlTmFtZWRGdW5jdGlvbihuYW1lLGZ1bmN0aW9uKCl7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpIT09aW5zdGFuY2VQcm90b3R5cGUpe3Rocm93IG5ldyBCaW5kaW5nRXJyb3IoIlVzZSAnbmV3JyB0byBjb25zdHJ1Y3QgIituYW1lKX1pZih1bmRlZmluZWQ9PT1yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keSl7dGhyb3cgbmV3IEJpbmRpbmdFcnJvcihuYW1lKyIgaGFzIG5vIGFjY2Vzc2libGUgY29uc3RydWN0b3IiKX12YXIgYm9keT1yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVthcmd1bWVudHMubGVuZ3RoXTtpZih1bmRlZmluZWQ9PT1ib2R5KXt0aHJvdyBuZXcgQmluZGluZ0Vycm9yKGBUcmllZCB0byBpbnZva2UgY3RvciBvZiAke25hbWV9IHdpdGggaW52YWxpZCBudW1iZXIgb2YgcGFyYW1ldGVycyAoJHthcmd1bWVudHMubGVuZ3RofSkgLSBleHBlY3RlZCAoJHtPYmplY3Qua2V5cyhyZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keSkudG9TdHJpbmcoKX0pIHBhcmFtZXRlcnMgaW5zdGVhZCFgKX1yZXR1cm4gYm9keS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KTt2YXIgaW5zdGFuY2VQcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShiYXNlUHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6Y29uc3RydWN0b3J9fSk7Y29uc3RydWN0b3IucHJvdG90eXBlPWluc3RhbmNlUHJvdG90eXBlO3ZhciByZWdpc3RlcmVkQ2xhc3M9bmV3IFJlZ2lzdGVyZWRDbGFzcyhuYW1lLGNvbnN0cnVjdG9yLGluc3RhbmNlUHJvdG90eXBlLHJhd0Rlc3RydWN0b3IsYmFzZUNsYXNzLGdldEFjdHVhbFR5cGUsdXBjYXN0LGRvd25jYXN0KTtpZihyZWdpc3RlcmVkQ2xhc3MuYmFzZUNsYXNzKXtpZihyZWdpc3RlcmVkQ2xhc3MuYmFzZUNsYXNzLl9fZGVyaXZlZENsYXNzZXM9PT11bmRlZmluZWQpe3JlZ2lzdGVyZWRDbGFzcy5iYXNlQ2xhc3MuX19kZXJpdmVkQ2xhc3Nlcz1bXX1yZWdpc3RlcmVkQ2xhc3MuYmFzZUNsYXNzLl9fZGVyaXZlZENsYXNzZXMucHVzaChyZWdpc3RlcmVkQ2xhc3MpfXZhciByZWZlcmVuY2VDb252ZXJ0ZXI9bmV3IFJlZ2lzdGVyZWRQb2ludGVyKG5hbWUscmVnaXN0ZXJlZENsYXNzLHRydWUsZmFsc2UsZmFsc2UpO3ZhciBwb2ludGVyQ29udmVydGVyPW5ldyBSZWdpc3RlcmVkUG9pbnRlcihuYW1lKyIqIixyZWdpc3RlcmVkQ2xhc3MsZmFsc2UsZmFsc2UsZmFsc2UpO3ZhciBjb25zdFBvaW50ZXJDb252ZXJ0ZXI9bmV3IFJlZ2lzdGVyZWRQb2ludGVyKG5hbWUrIiBjb25zdCoiLHJlZ2lzdGVyZWRDbGFzcyxmYWxzZSx0cnVlLGZhbHNlKTtyZWdpc3RlcmVkUG9pbnRlcnNbcmF3VHlwZV09e3BvaW50ZXJUeXBlOnBvaW50ZXJDb252ZXJ0ZXIsY29uc3RQb2ludGVyVHlwZTpjb25zdFBvaW50ZXJDb252ZXJ0ZXJ9O3JlcGxhY2VQdWJsaWNTeW1ib2wobGVnYWxGdW5jdGlvbk5hbWUsY29uc3RydWN0b3IpO3JldHVybltyZWZlcmVuY2VDb252ZXJ0ZXIscG9pbnRlckNvbnZlcnRlcixjb25zdFBvaW50ZXJDb252ZXJ0ZXJdfSl9O3ZhciBoZWFwMzJWZWN0b3JUb0FycmF5PShjb3VudCxmaXJzdEVsZW1lbnQpPT57dmFyIGFycmF5PVtdO2Zvcih2YXIgaT0wO2k8Y291bnQ7aSsrKXthcnJheS5wdXNoKEhFQVBVMzJbZmlyc3RFbGVtZW50K2kqND4+Ml0pfXJldHVybiBhcnJheX07dmFyIHJ1bkRlc3RydWN0b3JzPWRlc3RydWN0b3JzPT57d2hpbGUoZGVzdHJ1Y3RvcnMubGVuZ3RoKXt2YXIgcHRyPWRlc3RydWN0b3JzLnBvcCgpO3ZhciBkZWw9ZGVzdHJ1Y3RvcnMucG9wKCk7ZGVsKHB0cil9fTtmdW5jdGlvbiBuZXdGdW5jKGNvbnN0cnVjdG9yLGFyZ3VtZW50TGlzdCl7aWYoIShjb25zdHJ1Y3RvciBpbnN0YW5jZW9mIEZ1bmN0aW9uKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihgbmV3XyBjYWxsZWQgd2l0aCBjb25zdHJ1Y3RvciB0eXBlICR7dHlwZW9mIGNvbnN0cnVjdG9yfSB3aGljaCBpcyBub3QgYSBmdW5jdGlvbmApfXZhciBkdW1teT1jcmVhdGVOYW1lZEZ1bmN0aW9uKGNvbnN0cnVjdG9yLm5hbWV8fCJ1bmtub3duRnVuY3Rpb25OYW1lIixmdW5jdGlvbigpe30pO2R1bW15LnByb3RvdHlwZT1jb25zdHJ1Y3Rvci5wcm90b3R5cGU7dmFyIG9iaj1uZXcgZHVtbXk7dmFyIHI9Y29uc3RydWN0b3IuYXBwbHkob2JqLGFyZ3VtZW50TGlzdCk7cmV0dXJuIHIgaW5zdGFuY2VvZiBPYmplY3Q/cjpvYmp9ZnVuY3Rpb24gY3JhZnRJbnZva2VyRnVuY3Rpb24oaHVtYW5OYW1lLGFyZ1R5cGVzLGNsYXNzVHlwZSxjcHBJbnZva2VyRnVuYyxjcHBUYXJnZXRGdW5jLGlzQXN5bmMpe3ZhciBhcmdDb3VudD1hcmdUeXBlcy5sZW5ndGg7aWYoYXJnQ291bnQ8Mil7dGhyb3dCaW5kaW5nRXJyb3IoImFyZ1R5cGVzIGFycmF5IHNpemUgbWlzbWF0Y2ghIE11c3QgYXQgbGVhc3QgZ2V0IHJldHVybiB2YWx1ZSBhbmQgJ3RoaXMnIHR5cGVzISIpfXZhciBpc0NsYXNzTWV0aG9kRnVuYz1hcmdUeXBlc1sxXSE9PW51bGwmJmNsYXNzVHlwZSE9PW51bGw7dmFyIG5lZWRzRGVzdHJ1Y3RvclN0YWNrPWZhbHNlO2Zvcih2YXIgaT0xO2k8YXJnVHlwZXMubGVuZ3RoOysraSl7aWYoYXJnVHlwZXNbaV0hPT1udWxsJiZhcmdUeXBlc1tpXS5kZXN0cnVjdG9yRnVuY3Rpb249PT11bmRlZmluZWQpe25lZWRzRGVzdHJ1Y3RvclN0YWNrPXRydWU7YnJlYWt9fXZhciByZXR1cm5zPWFyZ1R5cGVzWzBdLm5hbWUhPT0idm9pZCI7dmFyIGFyZ3NMaXN0PSIiO3ZhciBhcmdzTGlzdFdpcmVkPSIiO2Zvcih2YXIgaT0wO2k8YXJnQ291bnQtMjsrK2kpe2FyZ3NMaXN0Kz0oaSE9PTA/IiwgIjoiIikrImFyZyIraTthcmdzTGlzdFdpcmVkKz0oaSE9PTA/IiwgIjoiIikrImFyZyIraSsiV2lyZWQifXZhciBpbnZva2VyRm5Cb2R5PWBcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgke2FyZ3NMaXN0fSkge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPT0gJHthcmdDb3VudC0yfSkge1xuICAgICAgICAgIHRocm93QmluZGluZ0Vycm9yKCdmdW5jdGlvbiAke2h1bWFuTmFtZX0gY2FsbGVkIHdpdGggJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cywgZXhwZWN0ZWQgJHthcmdDb3VudC0yfScpO1xuICAgICAgICB9YDtpZihuZWVkc0Rlc3RydWN0b3JTdGFjayl7aW52b2tlckZuQm9keSs9InZhciBkZXN0cnVjdG9ycyA9IFtdO1xuIn12YXIgZHRvclN0YWNrPW5lZWRzRGVzdHJ1Y3RvclN0YWNrPyJkZXN0cnVjdG9ycyI6Im51bGwiO3ZhciBhcmdzMT1bInRocm93QmluZGluZ0Vycm9yIiwiaW52b2tlciIsImZuIiwicnVuRGVzdHJ1Y3RvcnMiLCJyZXRUeXBlIiwiY2xhc3NQYXJhbSJdO3ZhciBhcmdzMj1bdGhyb3dCaW5kaW5nRXJyb3IsY3BwSW52b2tlckZ1bmMsY3BwVGFyZ2V0RnVuYyxydW5EZXN0cnVjdG9ycyxhcmdUeXBlc1swXSxhcmdUeXBlc1sxXV07aWYoaXNDbGFzc01ldGhvZEZ1bmMpe2ludm9rZXJGbkJvZHkrPSJ2YXIgdGhpc1dpcmVkID0gY2xhc3NQYXJhbS50b1dpcmVUeXBlKCIrZHRvclN0YWNrKyIsIHRoaXMpO1xuIn1mb3IodmFyIGk9MDtpPGFyZ0NvdW50LTI7KytpKXtpbnZva2VyRm5Cb2R5Kz0idmFyIGFyZyIraSsiV2lyZWQgPSBhcmdUeXBlIitpKyIudG9XaXJlVHlwZSgiK2R0b3JTdGFjaysiLCBhcmciK2krIik7IC8vICIrYXJnVHlwZXNbaSsyXS5uYW1lKyJcbiI7YXJnczEucHVzaCgiYXJnVHlwZSIraSk7YXJnczIucHVzaChhcmdUeXBlc1tpKzJdKX1pZihpc0NsYXNzTWV0aG9kRnVuYyl7YXJnc0xpc3RXaXJlZD0idGhpc1dpcmVkIisoYXJnc0xpc3RXaXJlZC5sZW5ndGg+MD8iLCAiOiIiKSthcmdzTGlzdFdpcmVkfWludm9rZXJGbkJvZHkrPShyZXR1cm5zfHxpc0FzeW5jPyJ2YXIgcnYgPSAiOiIiKSsiaW52b2tlcihmbiIrKGFyZ3NMaXN0V2lyZWQubGVuZ3RoPjA/IiwgIjoiIikrYXJnc0xpc3RXaXJlZCsiKTtcbiI7aWYobmVlZHNEZXN0cnVjdG9yU3RhY2spe2ludm9rZXJGbkJvZHkrPSJydW5EZXN0cnVjdG9ycyhkZXN0cnVjdG9ycyk7XG4ifWVsc2V7Zm9yKHZhciBpPWlzQ2xhc3NNZXRob2RGdW5jPzE6MjtpPGFyZ1R5cGVzLmxlbmd0aDsrK2kpe3ZhciBwYXJhbU5hbWU9aT09PTE/InRoaXNXaXJlZCI6ImFyZyIrKGktMikrIldpcmVkIjtpZihhcmdUeXBlc1tpXS5kZXN0cnVjdG9yRnVuY3Rpb24hPT1udWxsKXtpbnZva2VyRm5Cb2R5Kz1wYXJhbU5hbWUrIl9kdG9yKCIrcGFyYW1OYW1lKyIpOyAvLyAiK2FyZ1R5cGVzW2ldLm5hbWUrIlxuIjthcmdzMS5wdXNoKHBhcmFtTmFtZSsiX2R0b3IiKTthcmdzMi5wdXNoKGFyZ1R5cGVzW2ldLmRlc3RydWN0b3JGdW5jdGlvbil9fX1pZihyZXR1cm5zKXtpbnZva2VyRm5Cb2R5Kz0idmFyIHJldCA9IHJldFR5cGUuZnJvbVdpcmVUeXBlKHJ2KTtcbiIrInJldHVybiByZXQ7XG4ifWVsc2V7fWludm9rZXJGbkJvZHkrPSJ9XG4iO2FyZ3MxLnB1c2goaW52b2tlckZuQm9keSk7dmFyIGludm9rZXJGbj1uZXdGdW5jKEZ1bmN0aW9uLGFyZ3MxKS5hcHBseShudWxsLGFyZ3MyKTtyZXR1cm4gY3JlYXRlTmFtZWRGdW5jdGlvbihodW1hbk5hbWUsaW52b2tlckZuKX12YXIgX19lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfY29uc3RydWN0b3I9KHJhd0NsYXNzVHlwZSxhcmdDb3VudCxyYXdBcmdUeXBlc0FkZHIsaW52b2tlclNpZ25hdHVyZSxpbnZva2VyLHJhd0NvbnN0cnVjdG9yKT0+e3ZhciByYXdBcmdUeXBlcz1oZWFwMzJWZWN0b3JUb0FycmF5KGFyZ0NvdW50LHJhd0FyZ1R5cGVzQWRkcik7aW52b2tlcj1lbWJpbmRfX3JlcXVpcmVGdW5jdGlvbihpbnZva2VyU2lnbmF0dXJlLGludm9rZXIpO3doZW5EZXBlbmRlbnRUeXBlc0FyZVJlc29sdmVkKFtdLFtyYXdDbGFzc1R5cGVdLGZ1bmN0aW9uKGNsYXNzVHlwZSl7Y2xhc3NUeXBlPWNsYXNzVHlwZVswXTt2YXIgaHVtYW5OYW1lPWBjb25zdHJ1Y3RvciAke2NsYXNzVHlwZS5uYW1lfWA7aWYodW5kZWZpbmVkPT09Y2xhc3NUeXBlLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5KXtjbGFzc1R5cGUucmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHk9W119aWYodW5kZWZpbmVkIT09Y2xhc3NUeXBlLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5W2FyZ0NvdW50LTFdKXt0aHJvdyBuZXcgQmluZGluZ0Vycm9yKGBDYW5ub3QgcmVnaXN0ZXIgbXVsdGlwbGUgY29uc3RydWN0b3JzIHdpdGggaWRlbnRpY2FsIG51bWJlciBvZiBwYXJhbWV0ZXJzICgke2FyZ0NvdW50LTF9KSBmb3IgY2xhc3MgJyR7Y2xhc3NUeXBlLm5hbWV9JyEgT3ZlcmxvYWQgcmVzb2x1dGlvbiBpcyBjdXJyZW50bHkgb25seSBwZXJmb3JtZWQgdXNpbmcgdGhlIHBhcmFtZXRlciBjb3VudCwgbm90IGFjdHVhbCB0eXBlIGluZm8hYCl9Y2xhc3NUeXBlLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5W2FyZ0NvdW50LTFdPSgpPT57dGhyb3dVbmJvdW5kVHlwZUVycm9yKGBDYW5ub3QgY29uc3RydWN0ICR7Y2xhc3NUeXBlLm5hbWV9IGR1ZSB0byB1bmJvdW5kIHR5cGVzYCxyYXdBcmdUeXBlcyl9O3doZW5EZXBlbmRlbnRUeXBlc0FyZVJlc29sdmVkKFtdLHJhd0FyZ1R5cGVzLGFyZ1R5cGVzPT57YXJnVHlwZXMuc3BsaWNlKDEsMCxudWxsKTtjbGFzc1R5cGUucmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHlbYXJnQ291bnQtMV09Y3JhZnRJbnZva2VyRnVuY3Rpb24oaHVtYW5OYW1lLGFyZ1R5cGVzLG51bGwsaW52b2tlcixyYXdDb25zdHJ1Y3Rvcik7cmV0dXJuW119KTtyZXR1cm5bXX0pfTt2YXIgZ2V0RnVuY3Rpb25OYW1lPXNpZ25hdHVyZT0+e3NpZ25hdHVyZT1zaWduYXR1cmUudHJpbSgpO2NvbnN0IGFyZ3NJbmRleD1zaWduYXR1cmUuaW5kZXhPZigiKCIpO2lmKGFyZ3NJbmRleCE9PS0xKXtyZXR1cm4gc2lnbmF0dXJlLnN1YnN0cigwLGFyZ3NJbmRleCl9ZWxzZXtyZXR1cm4gc2lnbmF0dXJlfX07dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2Z1bmN0aW9uPShyYXdDbGFzc1R5cGUsbWV0aG9kTmFtZSxhcmdDb3VudCxyYXdBcmdUeXBlc0FkZHIsaW52b2tlclNpZ25hdHVyZSxyYXdJbnZva2VyLGNvbnRleHQsaXNQdXJlVmlydHVhbCxpc0FzeW5jKT0+e3ZhciByYXdBcmdUeXBlcz1oZWFwMzJWZWN0b3JUb0FycmF5KGFyZ0NvdW50LHJhd0FyZ1R5cGVzQWRkcik7bWV0aG9kTmFtZT1yZWFkTGF0aW4xU3RyaW5nKG1ldGhvZE5hbWUpO21ldGhvZE5hbWU9Z2V0RnVuY3Rpb25OYW1lKG1ldGhvZE5hbWUpO3Jhd0ludm9rZXI9ZW1iaW5kX19yZXF1aXJlRnVuY3Rpb24oaW52b2tlclNpZ25hdHVyZSxyYXdJbnZva2VyKTt3aGVuRGVwZW5kZW50VHlwZXNBcmVSZXNvbHZlZChbXSxbcmF3Q2xhc3NUeXBlXSxmdW5jdGlvbihjbGFzc1R5cGUpe2NsYXNzVHlwZT1jbGFzc1R5cGVbMF07dmFyIGh1bWFuTmFtZT1gJHtjbGFzc1R5cGUubmFtZX0uJHttZXRob2ROYW1lfWA7aWYobWV0aG9kTmFtZS5zdGFydHNXaXRoKCJAQCIpKXttZXRob2ROYW1lPVN5bWJvbFttZXRob2ROYW1lLnN1YnN0cmluZygyKV19aWYoaXNQdXJlVmlydHVhbCl7Y2xhc3NUeXBlLnJlZ2lzdGVyZWRDbGFzcy5wdXJlVmlydHVhbEZ1bmN0aW9ucy5wdXNoKG1ldGhvZE5hbWUpfWZ1bmN0aW9uIHVuYm91bmRUeXBlc0hhbmRsZXIoKXt0aHJvd1VuYm91bmRUeXBlRXJyb3IoYENhbm5vdCBjYWxsICR7aHVtYW5OYW1lfSBkdWUgdG8gdW5ib3VuZCB0eXBlc2AscmF3QXJnVHlwZXMpfXZhciBwcm90bz1jbGFzc1R5cGUucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlO3ZhciBtZXRob2Q9cHJvdG9bbWV0aG9kTmFtZV07aWYodW5kZWZpbmVkPT09bWV0aG9kfHx1bmRlZmluZWQ9PT1tZXRob2Qub3ZlcmxvYWRUYWJsZSYmbWV0aG9kLmNsYXNzTmFtZSE9PWNsYXNzVHlwZS5uYW1lJiZtZXRob2QuYXJnQ291bnQ9PT1hcmdDb3VudC0yKXt1bmJvdW5kVHlwZXNIYW5kbGVyLmFyZ0NvdW50PWFyZ0NvdW50LTI7dW5ib3VuZFR5cGVzSGFuZGxlci5jbGFzc05hbWU9Y2xhc3NUeXBlLm5hbWU7cHJvdG9bbWV0aG9kTmFtZV09dW5ib3VuZFR5cGVzSGFuZGxlcn1lbHNle2Vuc3VyZU92ZXJsb2FkVGFibGUocHJvdG8sbWV0aG9kTmFtZSxodW1hbk5hbWUpO3Byb3RvW21ldGhvZE5hbWVdLm92ZXJsb2FkVGFibGVbYXJnQ291bnQtMl09dW5ib3VuZFR5cGVzSGFuZGxlcn13aGVuRGVwZW5kZW50VHlwZXNBcmVSZXNvbHZlZChbXSxyYXdBcmdUeXBlcyxmdW5jdGlvbihhcmdUeXBlcyl7dmFyIG1lbWJlckZ1bmN0aW9uPWNyYWZ0SW52b2tlckZ1bmN0aW9uKGh1bWFuTmFtZSxhcmdUeXBlcyxjbGFzc1R5cGUscmF3SW52b2tlcixjb250ZXh0LGlzQXN5bmMpO2lmKHVuZGVmaW5lZD09PXByb3RvW21ldGhvZE5hbWVdLm92ZXJsb2FkVGFibGUpe21lbWJlckZ1bmN0aW9uLmFyZ0NvdW50PWFyZ0NvdW50LTI7cHJvdG9bbWV0aG9kTmFtZV09bWVtYmVyRnVuY3Rpb259ZWxzZXtwcm90b1ttZXRob2ROYW1lXS5vdmVybG9hZFRhYmxlW2FyZ0NvdW50LTJdPW1lbWJlckZ1bmN0aW9ufXJldHVybltdfSk7cmV0dXJuW119KX07ZnVuY3Rpb24gaGFuZGxlQWxsb2NhdG9ySW5pdCgpe09iamVjdC5hc3NpZ24oSGFuZGxlQWxsb2NhdG9yLnByb3RvdHlwZSx7Z2V0KGlkKXtyZXR1cm4gdGhpcy5hbGxvY2F0ZWRbaWRdfSxoYXMoaWQpe3JldHVybiB0aGlzLmFsbG9jYXRlZFtpZF0hPT11bmRlZmluZWR9LGFsbG9jYXRlKGhhbmRsZSl7dmFyIGlkPXRoaXMuZnJlZWxpc3QucG9wKCl8fHRoaXMuYWxsb2NhdGVkLmxlbmd0aDt0aGlzLmFsbG9jYXRlZFtpZF09aGFuZGxlO3JldHVybiBpZH0sZnJlZShpZCl7dGhpcy5hbGxvY2F0ZWRbaWRdPXVuZGVmaW5lZDt0aGlzLmZyZWVsaXN0LnB1c2goaWQpfX0pfWZ1bmN0aW9uIEhhbmRsZUFsbG9jYXRvcigpe3RoaXMuYWxsb2NhdGVkPVt1bmRlZmluZWRdO3RoaXMuZnJlZWxpc3Q9W119dmFyIGVtdmFsX2hhbmRsZXM9bmV3IEhhbmRsZUFsbG9jYXRvcjt2YXIgX19lbXZhbF9kZWNyZWY9aGFuZGxlPT57aWYoaGFuZGxlPj1lbXZhbF9oYW5kbGVzLnJlc2VydmVkJiYwPT09LS1lbXZhbF9oYW5kbGVzLmdldChoYW5kbGUpLnJlZmNvdW50KXtlbXZhbF9oYW5kbGVzLmZyZWUoaGFuZGxlKX19O3ZhciBjb3VudF9lbXZhbF9oYW5kbGVzPSgpPT57dmFyIGNvdW50PTA7Zm9yKHZhciBpPWVtdmFsX2hhbmRsZXMucmVzZXJ2ZWQ7aTxlbXZhbF9oYW5kbGVzLmFsbG9jYXRlZC5sZW5ndGg7KytpKXtpZihlbXZhbF9oYW5kbGVzLmFsbG9jYXRlZFtpXSE9PXVuZGVmaW5lZCl7Kytjb3VudH19cmV0dXJuIGNvdW50fTt2YXIgaW5pdF9lbXZhbD0oKT0+e2VtdmFsX2hhbmRsZXMuYWxsb2NhdGVkLnB1c2goe3ZhbHVlOnVuZGVmaW5lZH0se3ZhbHVlOm51bGx9LHt2YWx1ZTp0cnVlfSx7dmFsdWU6ZmFsc2V9KTtlbXZhbF9oYW5kbGVzLnJlc2VydmVkPWVtdmFsX2hhbmRsZXMuYWxsb2NhdGVkLmxlbmd0aDtNb2R1bGVbImNvdW50X2VtdmFsX2hhbmRsZXMiXT1jb3VudF9lbXZhbF9oYW5kbGVzfTt2YXIgRW12YWw9e3RvVmFsdWU6aGFuZGxlPT57aWYoIWhhbmRsZSl7dGhyb3dCaW5kaW5nRXJyb3IoIkNhbm5vdCB1c2UgZGVsZXRlZCB2YWwuIGhhbmRsZSA9ICIraGFuZGxlKX1yZXR1cm4gZW12YWxfaGFuZGxlcy5nZXQoaGFuZGxlKS52YWx1ZX0sdG9IYW5kbGU6dmFsdWU9Pntzd2l0Y2godmFsdWUpe2Nhc2UgdW5kZWZpbmVkOnJldHVybiAxO2Nhc2UgbnVsbDpyZXR1cm4gMjtjYXNlIHRydWU6cmV0dXJuIDM7Y2FzZSBmYWxzZTpyZXR1cm4gNDtkZWZhdWx0OntyZXR1cm4gZW12YWxfaGFuZGxlcy5hbGxvY2F0ZSh7cmVmY291bnQ6MSx2YWx1ZTp2YWx1ZX0pfX19fTtmdW5jdGlvbiBzaW1wbGVSZWFkVmFsdWVGcm9tUG9pbnRlcihwb2ludGVyKXtyZXR1cm4gdGhpc1siZnJvbVdpcmVUeXBlIl0oSEVBUDMyW3BvaW50ZXI+PjJdKX12YXIgX19lbWJpbmRfcmVnaXN0ZXJfZW12YWw9KHJhd1R5cGUsbmFtZSk9PntuYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7cmVnaXN0ZXJUeXBlKHJhd1R5cGUse25hbWU6bmFtZSwiZnJvbVdpcmVUeXBlIjpoYW5kbGU9Pnt2YXIgcnY9RW12YWwudG9WYWx1ZShoYW5kbGUpO19fZW12YWxfZGVjcmVmKGhhbmRsZSk7cmV0dXJuIHJ2fSwidG9XaXJlVHlwZSI6KGRlc3RydWN0b3JzLHZhbHVlKT0+RW12YWwudG9IYW5kbGUodmFsdWUpLCJhcmdQYWNrQWR2YW5jZSI6R2VuZXJpY1dpcmVUeXBlU2l6ZSwicmVhZFZhbHVlRnJvbVBvaW50ZXIiOnNpbXBsZVJlYWRWYWx1ZUZyb21Qb2ludGVyLGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9O3ZhciBlbWJpbmRSZXByPXY9PntpZih2PT09bnVsbCl7cmV0dXJuIm51bGwifXZhciB0PXR5cGVvZiB2O2lmKHQ9PT0ib2JqZWN0Inx8dD09PSJhcnJheSJ8fHQ9PT0iZnVuY3Rpb24iKXtyZXR1cm4gdi50b1N0cmluZygpfWVsc2V7cmV0dXJuIiIrdn19O3ZhciBmbG9hdFJlYWRWYWx1ZUZyb21Qb2ludGVyPShuYW1lLHdpZHRoKT0+e3N3aXRjaCh3aWR0aCl7Y2FzZSA0OnJldHVybiBmdW5jdGlvbihwb2ludGVyKXtyZXR1cm4gdGhpc1siZnJvbVdpcmVUeXBlIl0oSEVBUEYzMltwb2ludGVyPj4yXSl9O2Nhc2UgODpyZXR1cm4gZnVuY3Rpb24ocG9pbnRlcil7cmV0dXJuIHRoaXNbImZyb21XaXJlVHlwZSJdKEhFQVBGNjRbcG9pbnRlcj4+M10pfTtkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoYGludmFsaWQgZmxvYXQgd2lkdGggKCR7d2lkdGh9KTogJHtuYW1lfWApfX07dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX2Zsb2F0PShyYXdUeXBlLG5hbWUsc2l6ZSk9PntuYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7cmVnaXN0ZXJUeXBlKHJhd1R5cGUse25hbWU6bmFtZSwiZnJvbVdpcmVUeXBlIjp2YWx1ZT0+dmFsdWUsInRvV2lyZVR5cGUiOihkZXN0cnVjdG9ycyx2YWx1ZSk9PnZhbHVlLCJhcmdQYWNrQWR2YW5jZSI6R2VuZXJpY1dpcmVUeXBlU2l6ZSwicmVhZFZhbHVlRnJvbVBvaW50ZXIiOmZsb2F0UmVhZFZhbHVlRnJvbVBvaW50ZXIobmFtZSxzaXplKSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfTt2YXIgaW50ZWdlclJlYWRWYWx1ZUZyb21Qb2ludGVyPShuYW1lLHdpZHRoLHNpZ25lZCk9Pntzd2l0Y2god2lkdGgpe2Nhc2UgMTpyZXR1cm4gc2lnbmVkP3BvaW50ZXI9PkhFQVA4W3BvaW50ZXI+PjBdOnBvaW50ZXI9PkhFQVBVOFtwb2ludGVyPj4wXTtjYXNlIDI6cmV0dXJuIHNpZ25lZD9wb2ludGVyPT5IRUFQMTZbcG9pbnRlcj4+MV06cG9pbnRlcj0+SEVBUFUxNltwb2ludGVyPj4xXTtjYXNlIDQ6cmV0dXJuIHNpZ25lZD9wb2ludGVyPT5IRUFQMzJbcG9pbnRlcj4+Ml06cG9pbnRlcj0+SEVBUFUzMltwb2ludGVyPj4yXTtkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoYGludmFsaWQgaW50ZWdlciB3aWR0aCAoJHt3aWR0aH0pOiAke25hbWV9YCl9fTt2YXIgX19lbWJpbmRfcmVnaXN0ZXJfaW50ZWdlcj0ocHJpbWl0aXZlVHlwZSxuYW1lLHNpemUsbWluUmFuZ2UsbWF4UmFuZ2UpPT57bmFtZT1yZWFkTGF0aW4xU3RyaW5nKG5hbWUpO2lmKG1heFJhbmdlPT09LTEpe21heFJhbmdlPTQyOTQ5NjcyOTV9dmFyIGZyb21XaXJlVHlwZT12YWx1ZT0+dmFsdWU7aWYobWluUmFuZ2U9PT0wKXt2YXIgYml0c2hpZnQ9MzItOCpzaXplO2Zyb21XaXJlVHlwZT12YWx1ZT0+dmFsdWU8PGJpdHNoaWZ0Pj4+Yml0c2hpZnR9dmFyIGlzVW5zaWduZWRUeXBlPW5hbWUuaW5jbHVkZXMoInVuc2lnbmVkIik7dmFyIGNoZWNrQXNzZXJ0aW9ucz0odmFsdWUsdG9UeXBlTmFtZSk9Pnt9O3ZhciB0b1dpcmVUeXBlO2lmKGlzVW5zaWduZWRUeXBlKXt0b1dpcmVUeXBlPWZ1bmN0aW9uKGRlc3RydWN0b3JzLHZhbHVlKXtjaGVja0Fzc2VydGlvbnModmFsdWUsdGhpcy5uYW1lKTtyZXR1cm4gdmFsdWU+Pj4wfX1lbHNle3RvV2lyZVR5cGU9ZnVuY3Rpb24oZGVzdHJ1Y3RvcnMsdmFsdWUpe2NoZWNrQXNzZXJ0aW9ucyh2YWx1ZSx0aGlzLm5hbWUpO3JldHVybiB2YWx1ZX19cmVnaXN0ZXJUeXBlKHByaW1pdGl2ZVR5cGUse25hbWU6bmFtZSwiZnJvbVdpcmVUeXBlIjpmcm9tV2lyZVR5cGUsInRvV2lyZVR5cGUiOnRvV2lyZVR5cGUsImFyZ1BhY2tBZHZhbmNlIjpHZW5lcmljV2lyZVR5cGVTaXplLCJyZWFkVmFsdWVGcm9tUG9pbnRlciI6aW50ZWdlclJlYWRWYWx1ZUZyb21Qb2ludGVyKG5hbWUsc2l6ZSxtaW5SYW5nZSE9PTApLGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9O3ZhciBfX2VtYmluZF9yZWdpc3Rlcl9tZW1vcnlfdmlldz0ocmF3VHlwZSxkYXRhVHlwZUluZGV4LG5hbWUpPT57dmFyIHR5cGVNYXBwaW5nPVtJbnQ4QXJyYXksVWludDhBcnJheSxJbnQxNkFycmF5LFVpbnQxNkFycmF5LEludDMyQXJyYXksVWludDMyQXJyYXksRmxvYXQzMkFycmF5LEZsb2F0NjRBcnJheV07dmFyIFRBPXR5cGVNYXBwaW5nW2RhdGFUeXBlSW5kZXhdO2Z1bmN0aW9uIGRlY29kZU1lbW9yeVZpZXcoaGFuZGxlKXt2YXIgc2l6ZT1IRUFQVTMyW2hhbmRsZT4+Ml07dmFyIGRhdGE9SEVBUFUzMltoYW5kbGUrND4+Ml07cmV0dXJuIG5ldyBUQShIRUFQOC5idWZmZXIsZGF0YSxzaXplKX1uYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7cmVnaXN0ZXJUeXBlKHJhd1R5cGUse25hbWU6bmFtZSwiZnJvbVdpcmVUeXBlIjpkZWNvZGVNZW1vcnlWaWV3LCJhcmdQYWNrQWR2YW5jZSI6R2VuZXJpY1dpcmVUeXBlU2l6ZSwicmVhZFZhbHVlRnJvbVBvaW50ZXIiOmRlY29kZU1lbW9yeVZpZXd9LHtpZ25vcmVEdXBsaWNhdGVSZWdpc3RyYXRpb25zOnRydWV9KX07dmFyIF9fZW1iaW5kX3JlZ2lzdGVyX3N0ZF9zdHJpbmc9KHJhd1R5cGUsbmFtZSk9PntuYW1lPXJlYWRMYXRpbjFTdHJpbmcobmFtZSk7dmFyIHN0ZFN0cmluZ0lzVVRGOD1uYW1lPT09InN0ZDo6c3RyaW5nIjtyZWdpc3RlclR5cGUocmF3VHlwZSx7bmFtZTpuYW1lLCJmcm9tV2lyZVR5cGUiKHZhbHVlKXt2YXIgbGVuZ3RoPUhFQVBVMzJbdmFsdWU+PjJdO3ZhciBwYXlsb2FkPXZhbHVlKzQ7dmFyIHN0cjtpZihzdGRTdHJpbmdJc1VURjgpe3ZhciBkZWNvZGVTdGFydFB0cj1wYXlsb2FkO2Zvcih2YXIgaT0wO2k8PWxlbmd0aDsrK2kpe3ZhciBjdXJyZW50Qnl0ZVB0cj1wYXlsb2FkK2k7aWYoaT09bGVuZ3RofHxIRUFQVThbY3VycmVudEJ5dGVQdHJdPT0wKXt2YXIgbWF4UmVhZD1jdXJyZW50Qnl0ZVB0ci1kZWNvZGVTdGFydFB0cjt2YXIgc3RyaW5nU2VnbWVudD1VVEY4VG9TdHJpbmcoZGVjb2RlU3RhcnRQdHIsbWF4UmVhZCk7aWYoc3RyPT09dW5kZWZpbmVkKXtzdHI9c3RyaW5nU2VnbWVudH1lbHNle3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSgwKTtzdHIrPXN0cmluZ1NlZ21lbnR9ZGVjb2RlU3RhcnRQdHI9Y3VycmVudEJ5dGVQdHIrMX19fWVsc2V7dmFyIGE9bmV3IEFycmF5KGxlbmd0aCk7Zm9yKHZhciBpPTA7aTxsZW5ndGg7KytpKXthW2ldPVN0cmluZy5mcm9tQ2hhckNvZGUoSEVBUFU4W3BheWxvYWQraV0pfXN0cj1hLmpvaW4oIiIpfV9mcmVlKHZhbHVlKTtyZXR1cm4gc3RyfSwidG9XaXJlVHlwZSIoZGVzdHJ1Y3RvcnMsdmFsdWUpe2lmKHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe3ZhbHVlPW5ldyBVaW50OEFycmF5KHZhbHVlKX12YXIgbGVuZ3RoO3ZhciB2YWx1ZUlzT2ZUeXBlU3RyaW5nPXR5cGVvZiB2YWx1ZT09InN0cmluZyI7aWYoISh2YWx1ZUlzT2ZUeXBlU3RyaW5nfHx2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHZhbHVlIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fHZhbHVlIGluc3RhbmNlb2YgSW50OEFycmF5KSl7dGhyb3dCaW5kaW5nRXJyb3IoIkNhbm5vdCBwYXNzIG5vbi1zdHJpbmcgdG8gc3RkOjpzdHJpbmciKX1pZihzdGRTdHJpbmdJc1VURjgmJnZhbHVlSXNPZlR5cGVTdHJpbmcpe2xlbmd0aD1sZW5ndGhCeXRlc1VURjgodmFsdWUpfWVsc2V7bGVuZ3RoPXZhbHVlLmxlbmd0aH12YXIgYmFzZT1fbWFsbG9jKDQrbGVuZ3RoKzEpO3ZhciBwdHI9YmFzZSs0O0hFQVBVMzJbYmFzZT4+Ml09bGVuZ3RoO2lmKHN0ZFN0cmluZ0lzVVRGOCYmdmFsdWVJc09mVHlwZVN0cmluZyl7c3RyaW5nVG9VVEY4KHZhbHVlLHB0cixsZW5ndGgrMSl9ZWxzZXtpZih2YWx1ZUlzT2ZUeXBlU3RyaW5nKXtmb3IodmFyIGk9MDtpPGxlbmd0aDsrK2kpe3ZhciBjaGFyQ29kZT12YWx1ZS5jaGFyQ29kZUF0KGkpO2lmKGNoYXJDb2RlPjI1NSl7X2ZyZWUocHRyKTt0aHJvd0JpbmRpbmdFcnJvcigiU3RyaW5nIGhhcyBVVEYtMTYgY29kZSB1bml0cyB0aGF0IGRvIG5vdCBmaXQgaW4gOCBiaXRzIil9SEVBUFU4W3B0citpXT1jaGFyQ29kZX19ZWxzZXtmb3IodmFyIGk9MDtpPGxlbmd0aDsrK2kpe0hFQVBVOFtwdHIraV09dmFsdWVbaV19fX1pZihkZXN0cnVjdG9ycyE9PW51bGwpe2Rlc3RydWN0b3JzLnB1c2goX2ZyZWUsYmFzZSl9cmV0dXJuIGJhc2V9LCJhcmdQYWNrQWR2YW5jZSI6R2VuZXJpY1dpcmVUeXBlU2l6ZSwicmVhZFZhbHVlRnJvbVBvaW50ZXIiOnJlYWRQb2ludGVyLGRlc3RydWN0b3JGdW5jdGlvbihwdHIpe19mcmVlKHB0cil9fSl9O3ZhciBVVEYxNkRlY29kZXI9dHlwZW9mIFRleHREZWNvZGVyIT0idW5kZWZpbmVkIj9uZXcgVGV4dERlY29kZXIoInV0Zi0xNmxlIik6dW5kZWZpbmVkO3ZhciBVVEYxNlRvU3RyaW5nPShwdHIsbWF4Qnl0ZXNUb1JlYWQpPT57dmFyIGVuZFB0cj1wdHI7dmFyIGlkeD1lbmRQdHI+PjE7dmFyIG1heElkeD1pZHgrbWF4Qnl0ZXNUb1JlYWQvMjt3aGlsZSghKGlkeD49bWF4SWR4KSYmSEVBUFUxNltpZHhdKSsraWR4O2VuZFB0cj1pZHg8PDE7aWYoZW5kUHRyLXB0cj4zMiYmVVRGMTZEZWNvZGVyKXJldHVybiBVVEYxNkRlY29kZXIuZGVjb2RlKEhFQVBVOC5zbGljZShwdHIsZW5kUHRyKSk7dmFyIHN0cj0iIjtmb3IodmFyIGk9MDshKGk+PW1heEJ5dGVzVG9SZWFkLzIpOysraSl7dmFyIGNvZGVVbml0PUhFQVAxNltwdHIraSoyPj4xXTtpZihjb2RlVW5pdD09MClicmVhaztzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoY29kZVVuaXQpfXJldHVybiBzdHJ9O3ZhciBzdHJpbmdUb1VURjE2PShzdHIsb3V0UHRyLG1heEJ5dGVzVG9Xcml0ZSk9PntpZihtYXhCeXRlc1RvV3JpdGU9PT11bmRlZmluZWQpe21heEJ5dGVzVG9Xcml0ZT0yMTQ3NDgzNjQ3fWlmKG1heEJ5dGVzVG9Xcml0ZTwyKXJldHVybiAwO21heEJ5dGVzVG9Xcml0ZS09Mjt2YXIgc3RhcnRQdHI9b3V0UHRyO3ZhciBudW1DaGFyc1RvV3JpdGU9bWF4Qnl0ZXNUb1dyaXRlPHN0ci5sZW5ndGgqMj9tYXhCeXRlc1RvV3JpdGUvMjpzdHIubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bnVtQ2hhcnNUb1dyaXRlOysraSl7dmFyIGNvZGVVbml0PXN0ci5jaGFyQ29kZUF0KGkpO0hFQVAxNltvdXRQdHI+PjFdPWNvZGVVbml0O291dFB0cis9Mn1IRUFQMTZbb3V0UHRyPj4xXT0wO3JldHVybiBvdXRQdHItc3RhcnRQdHJ9O3ZhciBsZW5ndGhCeXRlc1VURjE2PXN0cj0+c3RyLmxlbmd0aCoyO3ZhciBVVEYzMlRvU3RyaW5nPShwdHIsbWF4Qnl0ZXNUb1JlYWQpPT57dmFyIGk9MDt2YXIgc3RyPSIiO3doaWxlKCEoaT49bWF4Qnl0ZXNUb1JlYWQvNCkpe3ZhciB1dGYzMj1IRUFQMzJbcHRyK2kqND4+Ml07aWYodXRmMzI9PTApYnJlYWs7KytpO2lmKHV0ZjMyPj02NTUzNil7dmFyIGNoPXV0ZjMyLTY1NTM2O3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxjaD4+MTAsNTYzMjB8Y2gmMTAyMyl9ZWxzZXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUodXRmMzIpfX1yZXR1cm4gc3RyfTt2YXIgc3RyaW5nVG9VVEYzMj0oc3RyLG91dFB0cixtYXhCeXRlc1RvV3JpdGUpPT57aWYobWF4Qnl0ZXNUb1dyaXRlPT09dW5kZWZpbmVkKXttYXhCeXRlc1RvV3JpdGU9MjE0NzQ4MzY0N31pZihtYXhCeXRlc1RvV3JpdGU8NClyZXR1cm4gMDt2YXIgc3RhcnRQdHI9b3V0UHRyO3ZhciBlbmRQdHI9c3RhcnRQdHIrbWF4Qnl0ZXNUb1dyaXRlLTQ7Zm9yKHZhciBpPTA7aTxzdHIubGVuZ3RoOysraSl7dmFyIGNvZGVVbml0PXN0ci5jaGFyQ29kZUF0KGkpO2lmKGNvZGVVbml0Pj01NTI5NiYmY29kZVVuaXQ8PTU3MzQzKXt2YXIgdHJhaWxTdXJyb2dhdGU9c3RyLmNoYXJDb2RlQXQoKytpKTtjb2RlVW5pdD02NTUzNisoKGNvZGVVbml0JjEwMjMpPDwxMCl8dHJhaWxTdXJyb2dhdGUmMTAyM31IRUFQMzJbb3V0UHRyPj4yXT1jb2RlVW5pdDtvdXRQdHIrPTQ7aWYob3V0UHRyKzQ+ZW5kUHRyKWJyZWFrfUhFQVAzMltvdXRQdHI+PjJdPTA7cmV0dXJuIG91dFB0ci1zdGFydFB0cn07dmFyIGxlbmd0aEJ5dGVzVVRGMzI9c3RyPT57dmFyIGxlbj0wO2Zvcih2YXIgaT0wO2k8c3RyLmxlbmd0aDsrK2kpe3ZhciBjb2RlVW5pdD1zdHIuY2hhckNvZGVBdChpKTtpZihjb2RlVW5pdD49NTUyOTYmJmNvZGVVbml0PD01NzM0MykrK2k7bGVuKz00fXJldHVybiBsZW59O3ZhciBfX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZz0ocmF3VHlwZSxjaGFyU2l6ZSxuYW1lKT0+e25hbWU9cmVhZExhdGluMVN0cmluZyhuYW1lKTt2YXIgZGVjb2RlU3RyaW5nLGVuY29kZVN0cmluZyxnZXRIZWFwLGxlbmd0aEJ5dGVzVVRGLHNoaWZ0O2lmKGNoYXJTaXplPT09Mil7ZGVjb2RlU3RyaW5nPVVURjE2VG9TdHJpbmc7ZW5jb2RlU3RyaW5nPXN0cmluZ1RvVVRGMTY7bGVuZ3RoQnl0ZXNVVEY9bGVuZ3RoQnl0ZXNVVEYxNjtnZXRIZWFwPSgpPT5IRUFQVTE2O3NoaWZ0PTF9ZWxzZSBpZihjaGFyU2l6ZT09PTQpe2RlY29kZVN0cmluZz1VVEYzMlRvU3RyaW5nO2VuY29kZVN0cmluZz1zdHJpbmdUb1VURjMyO2xlbmd0aEJ5dGVzVVRGPWxlbmd0aEJ5dGVzVVRGMzI7Z2V0SGVhcD0oKT0+SEVBUFUzMjtzaGlmdD0yfXJlZ2lzdGVyVHlwZShyYXdUeXBlLHtuYW1lOm5hbWUsImZyb21XaXJlVHlwZSI6dmFsdWU9Pnt2YXIgbGVuZ3RoPUhFQVBVMzJbdmFsdWU+PjJdO3ZhciBIRUFQPWdldEhlYXAoKTt2YXIgc3RyO3ZhciBkZWNvZGVTdGFydFB0cj12YWx1ZSs0O2Zvcih2YXIgaT0wO2k8PWxlbmd0aDsrK2kpe3ZhciBjdXJyZW50Qnl0ZVB0cj12YWx1ZSs0K2kqY2hhclNpemU7aWYoaT09bGVuZ3RofHxIRUFQW2N1cnJlbnRCeXRlUHRyPj5zaGlmdF09PTApe3ZhciBtYXhSZWFkQnl0ZXM9Y3VycmVudEJ5dGVQdHItZGVjb2RlU3RhcnRQdHI7dmFyIHN0cmluZ1NlZ21lbnQ9ZGVjb2RlU3RyaW5nKGRlY29kZVN0YXJ0UHRyLG1heFJlYWRCeXRlcyk7aWYoc3RyPT09dW5kZWZpbmVkKXtzdHI9c3RyaW5nU2VnbWVudH1lbHNle3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSgwKTtzdHIrPXN0cmluZ1NlZ21lbnR9ZGVjb2RlU3RhcnRQdHI9Y3VycmVudEJ5dGVQdHIrY2hhclNpemV9fV9mcmVlKHZhbHVlKTtyZXR1cm4gc3RyfSwidG9XaXJlVHlwZSI6KGRlc3RydWN0b3JzLHZhbHVlKT0+e2lmKCEodHlwZW9mIHZhbHVlPT0ic3RyaW5nIikpe3Rocm93QmluZGluZ0Vycm9yKGBDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIEMrKyBzdHJpbmcgdHlwZSAke25hbWV9YCl9dmFyIGxlbmd0aD1sZW5ndGhCeXRlc1VURih2YWx1ZSk7dmFyIHB0cj1fbWFsbG9jKDQrbGVuZ3RoK2NoYXJTaXplKTtIRUFQVTMyW3B0cj4+Ml09bGVuZ3RoPj5zaGlmdDtlbmNvZGVTdHJpbmcodmFsdWUscHRyKzQsbGVuZ3RoK2NoYXJTaXplKTtpZihkZXN0cnVjdG9ycyE9PW51bGwpe2Rlc3RydWN0b3JzLnB1c2goX2ZyZWUscHRyKX1yZXR1cm4gcHRyfSwiYXJnUGFja0FkdmFuY2UiOkdlbmVyaWNXaXJlVHlwZVNpemUsInJlYWRWYWx1ZUZyb21Qb2ludGVyIjpzaW1wbGVSZWFkVmFsdWVGcm9tUG9pbnRlcixkZXN0cnVjdG9yRnVuY3Rpb24ocHRyKXtfZnJlZShwdHIpfX0pfTt2YXIgX19lbWJpbmRfcmVnaXN0ZXJfdm9pZD0ocmF3VHlwZSxuYW1lKT0+e25hbWU9cmVhZExhdGluMVN0cmluZyhuYW1lKTtyZWdpc3RlclR5cGUocmF3VHlwZSx7aXNWb2lkOnRydWUsbmFtZTpuYW1lLCJhcmdQYWNrQWR2YW5jZSI6MCwiZnJvbVdpcmVUeXBlIjooKT0+dW5kZWZpbmVkLCJ0b1dpcmVUeXBlIjooZGVzdHJ1Y3RvcnMsbyk9PnVuZGVmaW5lZH0pfTt2YXIgbm93SXNNb25vdG9uaWM9MTt2YXIgX19lbXNjcmlwdGVuX2dldF9ub3dfaXNfbW9ub3RvbmljPSgpPT5ub3dJc01vbm90b25pYzt2YXIgbWF5YmVFeGl0PSgpPT57aWYocnVudGltZUV4aXRlZCl7cmV0dXJufWlmKCFrZWVwUnVudGltZUFsaXZlKCkpe3RyeXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKV9fZW1zY3JpcHRlbl90aHJlYWRfZXhpdChFWElUU1RBVFVTKTtlbHNlIF9leGl0KEVYSVRTVEFUVVMpfWNhdGNoKGUpe2hhbmRsZUV4Y2VwdGlvbihlKX19fTt2YXIgY2FsbFVzZXJDYWxsYmFjaz1mdW5jPT57aWYocnVudGltZUV4aXRlZHx8QUJPUlQpe3JldHVybn10cnl7ZnVuYygpO21heWJlRXhpdCgpfWNhdGNoKGUpe2hhbmRsZUV4Y2VwdGlvbihlKX19O3ZhciBfX2Vtc2NyaXB0ZW5fdGhyZWFkX21haWxib3hfYXdhaXQ9cHRocmVhZF9wdHI9PntpZih0eXBlb2YgQXRvbWljcy53YWl0QXN5bmM9PT0iZnVuY3Rpb24iKXt2YXIgd2FpdD1BdG9taWNzLndhaXRBc3luYyhIRUFQMzIscHRocmVhZF9wdHI+PjIscHRocmVhZF9wdHIpO3dhaXQudmFsdWUudGhlbihjaGVja01haWxib3gpO3ZhciB3YWl0aW5nQXN5bmM9cHRocmVhZF9wdHIrMTI4O0F0b21pY3Muc3RvcmUoSEVBUDMyLHdhaXRpbmdBc3luYz4+MiwxKX19O01vZHVsZVsiX19lbXNjcmlwdGVuX3RocmVhZF9tYWlsYm94X2F3YWl0Il09X19lbXNjcmlwdGVuX3RocmVhZF9tYWlsYm94X2F3YWl0O3ZhciBjaGVja01haWxib3g9KCk9Pnt2YXIgcHRocmVhZF9wdHI9X3B0aHJlYWRfc2VsZigpO2lmKHB0aHJlYWRfcHRyKXtfX2Vtc2NyaXB0ZW5fdGhyZWFkX21haWxib3hfYXdhaXQocHRocmVhZF9wdHIpO2NhbGxVc2VyQ2FsbGJhY2soX19lbXNjcmlwdGVuX2NoZWNrX21haWxib3gpfX07TW9kdWxlWyJjaGVja01haWxib3giXT1jaGVja01haWxib3g7dmFyIF9fZW1zY3JpcHRlbl9ub3RpZnlfbWFpbGJveF9wb3N0bWVzc2FnZT0odGFyZ2V0VGhyZWFkSWQsY3VyclRocmVhZElkLG1haW5UaHJlYWRJZCk9PntpZih0YXJnZXRUaHJlYWRJZD09Y3VyclRocmVhZElkKXtzZXRUaW1lb3V0KCgpPT5jaGVja01haWxib3goKSl9ZWxzZSBpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXtwb3N0TWVzc2FnZSh7InRhcmdldFRocmVhZCI6dGFyZ2V0VGhyZWFkSWQsImNtZCI6ImNoZWNrTWFpbGJveCJ9KX1lbHNle3ZhciB3b3JrZXI9UFRocmVhZC5wdGhyZWFkc1t0YXJnZXRUaHJlYWRJZF07aWYoIXdvcmtlcil7cmV0dXJufXdvcmtlci5wb3N0TWVzc2FnZSh7ImNtZCI6ImNoZWNrTWFpbGJveCJ9KX19O3ZhciBwcm94aWVkSlNDYWxsQXJncz1bXTt2YXIgX19lbXNjcmlwdGVuX3JlY2VpdmVfb25fbWFpbl90aHJlYWRfanM9KGluZGV4LGNhbGxpbmdUaHJlYWQsbnVtQ2FsbEFyZ3MsYXJncyk9Pntwcm94aWVkSlNDYWxsQXJncy5sZW5ndGg9bnVtQ2FsbEFyZ3M7dmFyIGI9YXJncz4+Mztmb3IodmFyIGk9MDtpPG51bUNhbGxBcmdzO2krKyl7cHJveGllZEpTQ2FsbEFyZ3NbaV09SEVBUEY2NFtiK2ldfXZhciBmdW5jPXByb3hpZWRGdW5jdGlvblRhYmxlW2luZGV4XTtQVGhyZWFkLmN1cnJlbnRQcm94aWVkT3BlcmF0aW9uQ2FsbGVyVGhyZWFkPWNhbGxpbmdUaHJlYWQ7dmFyIHJ0bj1mdW5jLmFwcGx5KG51bGwscHJveGllZEpTQ2FsbEFyZ3MpO1BUaHJlYWQuY3VycmVudFByb3hpZWRPcGVyYXRpb25DYWxsZXJUaHJlYWQ9MDtyZXR1cm4gcnRufTt2YXIgX19lbXNjcmlwdGVuX3RocmVhZF9zZXRfc3Ryb25ncmVmPXRocmVhZD0+e307dmFyIF9fZW12YWxfaW5jcmVmPWhhbmRsZT0+e2lmKGhhbmRsZT40KXtlbXZhbF9oYW5kbGVzLmdldChoYW5kbGUpLnJlZmNvdW50Kz0xfX07dmFyIHJlcXVpcmVSZWdpc3RlcmVkVHlwZT0ocmF3VHlwZSxodW1hbk5hbWUpPT57dmFyIGltcGw9cmVnaXN0ZXJlZFR5cGVzW3Jhd1R5cGVdO2lmKHVuZGVmaW5lZD09PWltcGwpe3Rocm93QmluZGluZ0Vycm9yKGh1bWFuTmFtZSsiIGhhcyB1bmtub3duIHR5cGUgIitnZXRUeXBlTmFtZShyYXdUeXBlKSl9cmV0dXJuIGltcGx9O3ZhciBfX2VtdmFsX3Rha2VfdmFsdWU9KHR5cGUsYXJnKT0+e3R5cGU9cmVxdWlyZVJlZ2lzdGVyZWRUeXBlKHR5cGUsIl9lbXZhbF90YWtlX3ZhbHVlIik7dmFyIHY9dHlwZVsicmVhZFZhbHVlRnJvbVBvaW50ZXIiXShhcmcpO3JldHVybiBFbXZhbC50b0hhbmRsZSh2KX07ZnVuY3Rpb24gX19tbWFwX2pzKGxlbixwcm90LGZsYWdzLGZkLG9mZnNldF9sb3csb2Zmc2V0X2hpZ2gsYWxsb2NhdGVkLGFkZHIpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpcmV0dXJuIHByb3h5VG9NYWluVGhyZWFkKDE0LDEsbGVuLHByb3QsZmxhZ3MsZmQsb2Zmc2V0X2xvdyxvZmZzZXRfaGlnaCxhbGxvY2F0ZWQsYWRkcik7dmFyIG9mZnNldD1jb252ZXJ0STMyUGFpclRvSTUzQ2hlY2tlZChvZmZzZXRfbG93LG9mZnNldF9oaWdoKTt0cnl7aWYoaXNOYU4ob2Zmc2V0KSlyZXR1cm4gNjE7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO3ZhciByZXM9RlMubW1hcChzdHJlYW0sbGVuLG9mZnNldCxwcm90LGZsYWdzKTt2YXIgcHRyPXJlcy5wdHI7SEVBUDMyW2FsbG9jYXRlZD4+Ml09cmVzLmFsbG9jYXRlZDtIRUFQVTMyW2FkZHI+PjJdPXB0cjtyZXR1cm4gMH1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19tdW5tYXBfanMoYWRkcixsZW4scHJvdCxmbGFncyxmZCxvZmZzZXRfbG93LG9mZnNldF9oaWdoKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCgxNSwxLGFkZHIsbGVuLHByb3QsZmxhZ3MsZmQsb2Zmc2V0X2xvdyxvZmZzZXRfaGlnaCk7dmFyIG9mZnNldD1jb252ZXJ0STMyUGFpclRvSTUzQ2hlY2tlZChvZmZzZXRfbG93LG9mZnNldF9oaWdoKTt0cnl7aWYoaXNOYU4ob2Zmc2V0KSlyZXR1cm4gNjE7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO2lmKHByb3QmMil7U1lTQ0FMTFMuZG9Nc3luYyhhZGRyLHN0cmVhbSxsZW4sZmxhZ3Msb2Zmc2V0KX1GUy5tdW5tYXAoc3RyZWFtKX1jYXRjaChlKXtpZih0eXBlb2YgRlM9PSJ1bmRlZmluZWQifHwhKGUubmFtZT09PSJFcnJub0Vycm9yIikpdGhyb3cgZTtyZXR1cm4tZS5lcnJub319dmFyIF9hYm9ydD0oKT0+e2Fib3J0KCIiKX07dmFyIHdhcm5PbmNlPXRleHQ9PntpZighd2Fybk9uY2Uuc2hvd24pd2Fybk9uY2Uuc2hvd249e307aWYoIXdhcm5PbmNlLnNob3duW3RleHRdKXt3YXJuT25jZS5zaG93blt0ZXh0XT0xO2Vycih0ZXh0KX19O3ZhciBfZW1zY3JpcHRlbl9jaGVja19ibG9ja2luZ19hbGxvd2VkPSgpPT57fTt2YXIgX2Vtc2NyaXB0ZW5fZGF0ZV9ub3c9KCk9PkRhdGUubm93KCk7dmFyIHJ1bnRpbWVLZWVwYWxpdmVQdXNoPSgpPT57cnVudGltZUtlZXBhbGl2ZUNvdW50ZXIrPTF9O3ZhciBfZW1zY3JpcHRlbl9leGl0X3dpdGhfbGl2ZV9ydW50aW1lPSgpPT57cnVudGltZUtlZXBhbGl2ZVB1c2goKTt0aHJvdyJ1bndpbmQifTt2YXIgZ2V0SGVhcE1heD0oKT0+SEVBUFU4Lmxlbmd0aDt2YXIgX2Vtc2NyaXB0ZW5fZ2V0X2hlYXBfbWF4PSgpPT5nZXRIZWFwTWF4KCk7dmFyIF9lbXNjcmlwdGVuX2dldF9ub3c7X2Vtc2NyaXB0ZW5fZ2V0X25vdz0oKT0+cGVyZm9ybWFuY2UudGltZU9yaWdpbitwZXJmb3JtYW5jZS5ub3coKTt2YXIgX2Vtc2NyaXB0ZW5fbnVtX2xvZ2ljYWxfY29yZXM9KCk9Pm5hdmlnYXRvclsiaGFyZHdhcmVDb25jdXJyZW5jeSJdO3ZhciBhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeT1yZXF1ZXN0ZWRTaXplPT57YWJvcnQoIk9PTSIpfTt2YXIgX2Vtc2NyaXB0ZW5fcmVzaXplX2hlYXA9cmVxdWVzdGVkU2l6ZT0+e3ZhciBvbGRTaXplPUhFQVBVOC5sZW5ndGg7cmVxdWVzdGVkU2l6ZT4+Pj0wO2Fib3J0T25DYW5ub3RHcm93TWVtb3J5KHJlcXVlc3RlZFNpemUpfTt2YXIgRU5WPXt9O3ZhciBnZXRFeGVjdXRhYmxlTmFtZT0oKT0+dGhpc1Byb2dyYW18fCIuL3RoaXMucHJvZ3JhbSI7dmFyIGdldEVudlN0cmluZ3M9KCk9PntpZighZ2V0RW52U3RyaW5ncy5zdHJpbmdzKXt2YXIgbGFuZz0odHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvci5sYW5ndWFnZXMmJm5hdmlnYXRvci5sYW5ndWFnZXNbMF18fCJDIikucmVwbGFjZSgiLSIsIl8iKSsiLlVURi04Ijt2YXIgZW52PXsiVVNFUiI6IndlYl91c2VyIiwiTE9HTkFNRSI6IndlYl91c2VyIiwiUEFUSCI6Ii8iLCJQV0QiOiIvIiwiSE9NRSI6Ii9ob21lL3dlYl91c2VyIiwiTEFORyI6bGFuZywiXyI6Z2V0RXhlY3V0YWJsZU5hbWUoKX07Zm9yKHZhciB4IGluIEVOVil7aWYoRU5WW3hdPT09dW5kZWZpbmVkKWRlbGV0ZSBlbnZbeF07ZWxzZSBlbnZbeF09RU5WW3hdfXZhciBzdHJpbmdzPVtdO2Zvcih2YXIgeCBpbiBlbnYpe3N0cmluZ3MucHVzaChgJHt4fT0ke2Vudlt4XX1gKX1nZXRFbnZTdHJpbmdzLnN0cmluZ3M9c3RyaW5nc31yZXR1cm4gZ2V0RW52U3RyaW5ncy5zdHJpbmdzfTt2YXIgc3RyaW5nVG9Bc2NpaT0oc3RyLGJ1ZmZlcik9Pntmb3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7KytpKXtIRUFQOFtidWZmZXIrKz4+MF09c3RyLmNoYXJDb2RlQXQoaSl9SEVBUDhbYnVmZmVyPj4wXT0wfTt2YXIgX2Vudmlyb25fZ2V0PWZ1bmN0aW9uKF9fZW52aXJvbixlbnZpcm9uX2J1Zil7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gcHJveHlUb01haW5UaHJlYWQoMTYsMSxfX2Vudmlyb24sZW52aXJvbl9idWYpO3ZhciBidWZTaXplPTA7Z2V0RW52U3RyaW5ncygpLmZvckVhY2goKHN0cmluZyxpKT0+e3ZhciBwdHI9ZW52aXJvbl9idWYrYnVmU2l6ZTtIRUFQVTMyW19fZW52aXJvbitpKjQ+PjJdPXB0cjtzdHJpbmdUb0FzY2lpKHN0cmluZyxwdHIpO2J1ZlNpemUrPXN0cmluZy5sZW5ndGgrMX0pO3JldHVybiAwfTt2YXIgX2Vudmlyb25fc2l6ZXNfZ2V0PWZ1bmN0aW9uKHBlbnZpcm9uX2NvdW50LHBlbnZpcm9uX2J1Zl9zaXplKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCgxNywxLHBlbnZpcm9uX2NvdW50LHBlbnZpcm9uX2J1Zl9zaXplKTt2YXIgc3RyaW5ncz1nZXRFbnZTdHJpbmdzKCk7SEVBUFUzMltwZW52aXJvbl9jb3VudD4+Ml09c3RyaW5ncy5sZW5ndGg7dmFyIGJ1ZlNpemU9MDtzdHJpbmdzLmZvckVhY2goc3RyaW5nPT5idWZTaXplKz1zdHJpbmcubGVuZ3RoKzEpO0hFQVBVMzJbcGVudmlyb25fYnVmX3NpemU+PjJdPWJ1ZlNpemU7cmV0dXJuIDB9O2Z1bmN0aW9uIF9mZF9jbG9zZShmZCl7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gcHJveHlUb01haW5UaHJlYWQoMTgsMSxmZCk7dHJ5e3ZhciBzdHJlYW09U1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKGZkKTtGUy5jbG9zZShzdHJlYW0pO3JldHVybiAwfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybiBlLmVycm5vfX12YXIgZG9SZWFkdj0oc3RyZWFtLGlvdixpb3ZjbnQsb2Zmc2V0KT0+e3ZhciByZXQ9MDtmb3IodmFyIGk9MDtpPGlvdmNudDtpKyspe3ZhciBwdHI9SEVBUFUzMltpb3Y+PjJdO3ZhciBsZW49SEVBUFUzMltpb3YrND4+Ml07aW92Kz04O3ZhciBjdXJyPUZTLnJlYWQoc3RyZWFtLEhFQVA4LHB0cixsZW4sb2Zmc2V0KTtpZihjdXJyPDApcmV0dXJuLTE7cmV0Kz1jdXJyO2lmKGN1cnI8bGVuKWJyZWFrO2lmKHR5cGVvZiBvZmZzZXQhPT0idW5kZWZpbmVkIil7b2Zmc2V0Kz1jdXJyfX1yZXR1cm4gcmV0fTtmdW5jdGlvbiBfZmRfcmVhZChmZCxpb3YsaW92Y250LHBudW0pe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpcmV0dXJuIHByb3h5VG9NYWluVGhyZWFkKDE5LDEsZmQsaW92LGlvdmNudCxwbnVtKTt0cnl7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO3ZhciBudW09ZG9SZWFkdihzdHJlYW0saW92LGlvdmNudCk7SEVBUFUzMltwbnVtPj4yXT1udW07cmV0dXJuIDB9Y2F0Y2goZSl7aWYodHlwZW9mIEZTPT0idW5kZWZpbmVkInx8IShlLm5hbWU9PT0iRXJybm9FcnJvciIpKXRocm93IGU7cmV0dXJuIGUuZXJybm99fWZ1bmN0aW9uIF9mZF9zZWVrKGZkLG9mZnNldF9sb3csb2Zmc2V0X2hpZ2gsd2hlbmNlLG5ld09mZnNldCl7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gcHJveHlUb01haW5UaHJlYWQoMjAsMSxmZCxvZmZzZXRfbG93LG9mZnNldF9oaWdoLHdoZW5jZSxuZXdPZmZzZXQpO3ZhciBvZmZzZXQ9Y29udmVydEkzMlBhaXJUb0k1M0NoZWNrZWQob2Zmc2V0X2xvdyxvZmZzZXRfaGlnaCk7dHJ5e2lmKGlzTmFOKG9mZnNldCkpcmV0dXJuIDYxO3ZhciBzdHJlYW09U1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKGZkKTtGUy5sbHNlZWsoc3RyZWFtLG9mZnNldCx3aGVuY2UpO3RlbXBJNjQ9W3N0cmVhbS5wb3NpdGlvbj4+PjAsKHRlbXBEb3VibGU9c3RyZWFtLnBvc2l0aW9uLCtNYXRoLmFicyh0ZW1wRG91YmxlKT49MT90ZW1wRG91YmxlPjA/K01hdGguZmxvb3IodGVtcERvdWJsZS80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKCh0ZW1wRG91YmxlLSsofn50ZW1wRG91YmxlPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sSEVBUDMyW25ld09mZnNldD4+Ml09dGVtcEk2NFswXSxIRUFQMzJbbmV3T2Zmc2V0KzQ+PjJdPXRlbXBJNjRbMV07aWYoc3RyZWFtLmdldGRlbnRzJiZvZmZzZXQ9PT0wJiZ3aGVuY2U9PT0wKXN0cmVhbS5nZXRkZW50cz1udWxsO3JldHVybiAwfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybiBlLmVycm5vfX1mdW5jdGlvbiBfZmRfc3luYyhmZCl7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gcHJveHlUb01haW5UaHJlYWQoMjEsMSxmZCk7dHJ5e3ZhciBzdHJlYW09U1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKGZkKTtpZihzdHJlYW0uc3RyZWFtX29wcyYmc3RyZWFtLnN0cmVhbV9vcHMuZnN5bmMpe3JldHVybiBzdHJlYW0uc3RyZWFtX29wcy5mc3luYyhzdHJlYW0pfXJldHVybiAwfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybiBlLmVycm5vfX12YXIgZG9Xcml0ZXY9KHN0cmVhbSxpb3YsaW92Y250LG9mZnNldCk9Pnt2YXIgcmV0PTA7Zm9yKHZhciBpPTA7aTxpb3ZjbnQ7aSsrKXt2YXIgcHRyPUhFQVBVMzJbaW92Pj4yXTt2YXIgbGVuPUhFQVBVMzJbaW92KzQ+PjJdO2lvdis9ODt2YXIgY3Vycj1GUy53cml0ZShzdHJlYW0sSEVBUDgscHRyLGxlbixvZmZzZXQpO2lmKGN1cnI8MClyZXR1cm4tMTtyZXQrPWN1cnI7aWYodHlwZW9mIG9mZnNldCE9PSJ1bmRlZmluZWQiKXtvZmZzZXQrPWN1cnJ9fXJldHVybiByZXR9O2Z1bmN0aW9uIF9mZF93cml0ZShmZCxpb3YsaW92Y250LHBudW0pe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpcmV0dXJuIHByb3h5VG9NYWluVGhyZWFkKDIyLDEsZmQsaW92LGlvdmNudCxwbnVtKTt0cnl7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoZmQpO3ZhciBudW09ZG9Xcml0ZXYoc3RyZWFtLGlvdixpb3ZjbnQpO0hFQVBVMzJbcG51bT4+Ml09bnVtO3JldHVybiAwfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09InVuZGVmaW5lZCJ8fCEoZS5uYW1lPT09IkVycm5vRXJyb3IiKSl0aHJvdyBlO3JldHVybiBlLmVycm5vfX12YXIgX2dldGVudHJvcHk9KGJ1ZmZlcixzaXplKT0+e3JhbmRvbUZpbGwoSEVBUFU4LnN1YmFycmF5KGJ1ZmZlcixidWZmZXIrc2l6ZSkpO3JldHVybiAwfTt2YXIgaXNMZWFwWWVhcj15ZWFyPT55ZWFyJTQ9PT0wJiYoeWVhciUxMDAhPT0wfHx5ZWFyJTQwMD09PTApO3ZhciBhcnJheVN1bT0oYXJyYXksaW5kZXgpPT57dmFyIHN1bT0wO2Zvcih2YXIgaT0wO2k8PWluZGV4O3N1bSs9YXJyYXlbaSsrXSl7fXJldHVybiBzdW19O3ZhciBNT05USF9EQVlTX0xFQVA9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTt2YXIgTU9OVEhfREFZU19SRUdVTEFSPVszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07dmFyIGFkZERheXM9KGRhdGUsZGF5cyk9Pnt2YXIgbmV3RGF0ZT1uZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7d2hpbGUoZGF5cz4wKXt2YXIgbGVhcD1pc0xlYXBZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSk7dmFyIGN1cnJlbnRNb250aD1uZXdEYXRlLmdldE1vbnRoKCk7dmFyIGRheXNJbkN1cnJlbnRNb250aD0obGVhcD9NT05USF9EQVlTX0xFQVA6TU9OVEhfREFZU19SRUdVTEFSKVtjdXJyZW50TW9udGhdO2lmKGRheXM+ZGF5c0luQ3VycmVudE1vbnRoLW5ld0RhdGUuZ2V0RGF0ZSgpKXtkYXlzLT1kYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkrMTtuZXdEYXRlLnNldERhdGUoMSk7aWYoY3VycmVudE1vbnRoPDExKXtuZXdEYXRlLnNldE1vbnRoKGN1cnJlbnRNb250aCsxKX1lbHNle25ld0RhdGUuc2V0TW9udGgoMCk7bmV3RGF0ZS5zZXRGdWxsWWVhcihuZXdEYXRlLmdldEZ1bGxZZWFyKCkrMSl9fWVsc2V7bmV3RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpK2RheXMpO3JldHVybiBuZXdEYXRlfX1yZXR1cm4gbmV3RGF0ZX07dmFyIHdyaXRlQXJyYXlUb01lbW9yeT0oYXJyYXksYnVmZmVyKT0+e0hFQVA4LnNldChhcnJheSxidWZmZXIpfTt2YXIgX3N0cmZ0aW1lPShzLG1heHNpemUsZm9ybWF0LHRtKT0+e3ZhciB0bV96b25lPUhFQVBVMzJbdG0rNDA+PjJdO3ZhciBkYXRlPXt0bV9zZWM6SEVBUDMyW3RtPj4yXSx0bV9taW46SEVBUDMyW3RtKzQ+PjJdLHRtX2hvdXI6SEVBUDMyW3RtKzg+PjJdLHRtX21kYXk6SEVBUDMyW3RtKzEyPj4yXSx0bV9tb246SEVBUDMyW3RtKzE2Pj4yXSx0bV95ZWFyOkhFQVAzMlt0bSsyMD4+Ml0sdG1fd2RheTpIRUFQMzJbdG0rMjQ+PjJdLHRtX3lkYXk6SEVBUDMyW3RtKzI4Pj4yXSx0bV9pc2RzdDpIRUFQMzJbdG0rMzI+PjJdLHRtX2dtdG9mZjpIRUFQMzJbdG0rMzY+PjJdLHRtX3pvbmU6dG1fem9uZT9VVEY4VG9TdHJpbmcodG1fem9uZSk6IiJ9O3ZhciBwYXR0ZXJuPVVURjhUb1N0cmluZyhmb3JtYXQpO3ZhciBFWFBBTlNJT05fUlVMRVNfMT17IiVjIjoiJWEgJWIgJWQgJUg6JU06JVMgJVkiLCIlRCI6IiVtLyVkLyV5IiwiJUYiOiIlWS0lbS0lZCIsIiVoIjoiJWIiLCIlciI6IiVJOiVNOiVTICVwIiwiJVIiOiIlSDolTSIsIiVUIjoiJUg6JU06JVMiLCIleCI6IiVtLyVkLyV5IiwiJVgiOiIlSDolTTolUyIsIiVFYyI6IiVjIiwiJUVDIjoiJUMiLCIlRXgiOiIlbS8lZC8leSIsIiVFWCI6IiVIOiVNOiVTIiwiJUV5IjoiJXkiLCIlRVkiOiIlWSIsIiVPZCI6IiVkIiwiJU9lIjoiJWUiLCIlT0giOiIlSCIsIiVPSSI6IiVJIiwiJU9tIjoiJW0iLCIlT00iOiIlTSIsIiVPUyI6IiVTIiwiJU91IjoiJXUiLCIlT1UiOiIlVSIsIiVPViI6IiVWIiwiJU93IjoiJXciLCIlT1ciOiIlVyIsIiVPeSI6IiV5In07Zm9yKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18xKXtwYXR0ZXJuPXBhdHRlcm4ucmVwbGFjZShuZXcgUmVnRXhwKHJ1bGUsImciKSxFWFBBTlNJT05fUlVMRVNfMVtydWxlXSl9dmFyIFdFRUtEQVlTPVsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXTt2YXIgTU9OVEhTPVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXTtmdW5jdGlvbiBsZWFkaW5nU29tZXRoaW5nKHZhbHVlLGRpZ2l0cyxjaGFyYWN0ZXIpe3ZhciBzdHI9dHlwZW9mIHZhbHVlPT0ibnVtYmVyIj92YWx1ZS50b1N0cmluZygpOnZhbHVlfHwiIjt3aGlsZShzdHIubGVuZ3RoPGRpZ2l0cyl7c3RyPWNoYXJhY3RlclswXStzdHJ9cmV0dXJuIHN0cn1mdW5jdGlvbiBsZWFkaW5nTnVsbHModmFsdWUsZGlnaXRzKXtyZXR1cm4gbGVhZGluZ1NvbWV0aGluZyh2YWx1ZSxkaWdpdHMsIjAiKX1mdW5jdGlvbiBjb21wYXJlQnlEYXkoZGF0ZTEsZGF0ZTIpe2Z1bmN0aW9uIHNnbih2YWx1ZSl7cmV0dXJuIHZhbHVlPDA/LTE6dmFsdWU+MD8xOjB9dmFyIGNvbXBhcmU7aWYoKGNvbXBhcmU9c2duKGRhdGUxLmdldEZ1bGxZZWFyKCktZGF0ZTIuZ2V0RnVsbFllYXIoKSkpPT09MCl7aWYoKGNvbXBhcmU9c2duKGRhdGUxLmdldE1vbnRoKCktZGF0ZTIuZ2V0TW9udGgoKSkpPT09MCl7Y29tcGFyZT1zZ24oZGF0ZTEuZ2V0RGF0ZSgpLWRhdGUyLmdldERhdGUoKSl9fXJldHVybiBjb21wYXJlfWZ1bmN0aW9uIGdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGgpe3N3aXRjaChqYW5Gb3VydGguZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwxMSwyOSk7Y2FzZSAxOnJldHVybiBqYW5Gb3VydGg7Y2FzZSAyOnJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCksMCwyKTtjYXNlIDQ6cmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLDAsMSk7Y2FzZSA1OnJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsMTEsMzApfX1mdW5jdGlvbiBnZXRXZWVrQmFzZWRZZWFyKGRhdGUpe3ZhciB0aGlzRGF0ZT1hZGREYXlzKG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLDAsMSksZGF0ZS50bV95ZGF5KTt2YXIgamFuRm91cnRoVGhpc1llYXI9bmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSwwLDQpO3ZhciBqYW5Gb3VydGhOZXh0WWVhcj1uZXcgRGF0ZSh0aGlzRGF0ZS5nZXRGdWxsWWVhcigpKzEsMCw0KTt2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhcj1nZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoVGhpc1llYXIpO3ZhciBmaXJzdFdlZWtTdGFydE5leHRZZWFyPWdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGhOZXh0WWVhcik7aWYoY29tcGFyZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIsdGhpc0RhdGUpPD0wKXtpZihjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnROZXh0WWVhcix0aGlzRGF0ZSk8PTApe3JldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpKzF9cmV0dXJuIHRoaXNEYXRlLmdldEZ1bGxZZWFyKCl9cmV0dXJuIHRoaXNEYXRlLmdldEZ1bGxZZWFyKCktMX12YXIgRVhQQU5TSU9OX1JVTEVTXzI9eyIlYSI6ZGF0ZT0+V0VFS0RBWVNbZGF0ZS50bV93ZGF5XS5zdWJzdHJpbmcoMCwzKSwiJUEiOmRhdGU9PldFRUtEQVlTW2RhdGUudG1fd2RheV0sIiViIjpkYXRlPT5NT05USFNbZGF0ZS50bV9tb25dLnN1YnN0cmluZygwLDMpLCIlQiI6ZGF0ZT0+TU9OVEhTW2RhdGUudG1fbW9uXSwiJUMiOmRhdGU9Pnt2YXIgeWVhcj1kYXRlLnRtX3llYXIrMTkwMDtyZXR1cm4gbGVhZGluZ051bGxzKHllYXIvMTAwfDAsMil9LCIlZCI6ZGF0ZT0+bGVhZGluZ051bGxzKGRhdGUudG1fbWRheSwyKSwiJWUiOmRhdGU9PmxlYWRpbmdTb21ldGhpbmcoZGF0ZS50bV9tZGF5LDIsIiAiKSwiJWciOmRhdGU9PmdldFdlZWtCYXNlZFllYXIoZGF0ZSkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiksIiVHIjpkYXRlPT5nZXRXZWVrQmFzZWRZZWFyKGRhdGUpLCIlSCI6ZGF0ZT0+bGVhZGluZ051bGxzKGRhdGUudG1faG91ciwyKSwiJUkiOmRhdGU9Pnt2YXIgdHdlbHZlSG91cj1kYXRlLnRtX2hvdXI7aWYodHdlbHZlSG91cj09MCl0d2VsdmVIb3VyPTEyO2Vsc2UgaWYodHdlbHZlSG91cj4xMil0d2VsdmVIb3VyLT0xMjtyZXR1cm4gbGVhZGluZ051bGxzKHR3ZWx2ZUhvdXIsMil9LCIlaiI6ZGF0ZT0+bGVhZGluZ051bGxzKGRhdGUudG1fbWRheSthcnJheVN1bShpc0xlYXBZZWFyKGRhdGUudG1feWVhcisxOTAwKT9NT05USF9EQVlTX0xFQVA6TU9OVEhfREFZU19SRUdVTEFSLGRhdGUudG1fbW9uLTEpLDMpLCIlbSI6ZGF0ZT0+bGVhZGluZ051bGxzKGRhdGUudG1fbW9uKzEsMiksIiVNIjpkYXRlPT5sZWFkaW5nTnVsbHMoZGF0ZS50bV9taW4sMiksIiVuIjooKT0+IlxuIiwiJXAiOmRhdGU9PntpZihkYXRlLnRtX2hvdXI+PTAmJmRhdGUudG1faG91cjwxMil7cmV0dXJuIkFNIn1yZXR1cm4iUE0ifSwiJVMiOmRhdGU9PmxlYWRpbmdOdWxscyhkYXRlLnRtX3NlYywyKSwiJXQiOigpPT4iXHQiLCIldSI6ZGF0ZT0+ZGF0ZS50bV93ZGF5fHw3LCIlVSI6ZGF0ZT0+e3ZhciBkYXlzPWRhdGUudG1feWRheSs3LWRhdGUudG1fd2RheTtyZXR1cm4gbGVhZGluZ051bGxzKE1hdGguZmxvb3IoZGF5cy83KSwyKX0sIiVWIjpkYXRlPT57dmFyIHZhbD1NYXRoLmZsb29yKChkYXRlLnRtX3lkYXkrNy0oZGF0ZS50bV93ZGF5KzYpJTcpLzcpO2lmKChkYXRlLnRtX3dkYXkrMzcxLWRhdGUudG1feWRheS0yKSU3PD0yKXt2YWwrK31pZighdmFsKXt2YWw9NTI7dmFyIGRlYzMxPShkYXRlLnRtX3dkYXkrNy1kYXRlLnRtX3lkYXktMSklNztpZihkZWMzMT09NHx8ZGVjMzE9PTUmJmlzTGVhcFllYXIoZGF0ZS50bV95ZWFyJTQwMC0xKSl7dmFsKyt9fWVsc2UgaWYodmFsPT01Myl7dmFyIGphbjE9KGRhdGUudG1fd2RheSszNzEtZGF0ZS50bV95ZGF5KSU3O2lmKGphbjEhPTQmJihqYW4xIT0zfHwhaXNMZWFwWWVhcihkYXRlLnRtX3llYXIpKSl2YWw9MX1yZXR1cm4gbGVhZGluZ051bGxzKHZhbCwyKX0sIiV3IjpkYXRlPT5kYXRlLnRtX3dkYXksIiVXIjpkYXRlPT57dmFyIGRheXM9ZGF0ZS50bV95ZGF5KzctKGRhdGUudG1fd2RheSs2KSU3O3JldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5mbG9vcihkYXlzLzcpLDIpfSwiJXkiOmRhdGU9PihkYXRlLnRtX3llYXIrMTkwMCkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiksIiVZIjpkYXRlPT5kYXRlLnRtX3llYXIrMTkwMCwiJXoiOmRhdGU9Pnt2YXIgb2ZmPWRhdGUudG1fZ210b2ZmO3ZhciBhaGVhZD1vZmY+PTA7b2ZmPU1hdGguYWJzKG9mZikvNjA7b2ZmPW9mZi82MCoxMDArb2ZmJTYwO3JldHVybihhaGVhZD8iKyI6Ii0iKStTdHJpbmcoIjAwMDAiK29mZikuc2xpY2UoLTQpfSwiJVoiOmRhdGU9PmRhdGUudG1fem9uZSwiJSUiOigpPT4iJSJ9O3BhdHRlcm49cGF0dGVybi5yZXBsYWNlKC8lJS9nLCJcMFwwIik7Zm9yKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18yKXtpZihwYXR0ZXJuLmluY2x1ZGVzKHJ1bGUpKXtwYXR0ZXJuPXBhdHRlcm4ucmVwbGFjZShuZXcgUmVnRXhwKHJ1bGUsImciKSxFWFBBTlNJT05fUlVMRVNfMltydWxlXShkYXRlKSl9fXBhdHRlcm49cGF0dGVybi5yZXBsYWNlKC9cMFwwL2csIiUiKTt2YXIgYnl0ZXM9aW50QXJyYXlGcm9tU3RyaW5nKHBhdHRlcm4sZmFsc2UpO2lmKGJ5dGVzLmxlbmd0aD5tYXhzaXplKXtyZXR1cm4gMH13cml0ZUFycmF5VG9NZW1vcnkoYnl0ZXMscyk7cmV0dXJuIGJ5dGVzLmxlbmd0aC0xfTt2YXIgX3N0cmZ0aW1lX2w9KHMsbWF4c2l6ZSxmb3JtYXQsdG0sbG9jKT0+X3N0cmZ0aW1lKHMsbWF4c2l6ZSxmb3JtYXQsdG0pO1BUaHJlYWQuaW5pdCgpO3ZhciBGU05vZGU9ZnVuY3Rpb24ocGFyZW50LG5hbWUsbW9kZSxyZGV2KXtpZighcGFyZW50KXtwYXJlbnQ9dGhpc310aGlzLnBhcmVudD1wYXJlbnQ7dGhpcy5tb3VudD1wYXJlbnQubW91bnQ7dGhpcy5tb3VudGVkPW51bGw7dGhpcy5pZD1GUy5uZXh0SW5vZGUrKzt0aGlzLm5hbWU9bmFtZTt0aGlzLm1vZGU9bW9kZTt0aGlzLm5vZGVfb3BzPXt9O3RoaXMuc3RyZWFtX29wcz17fTt0aGlzLnJkZXY9cmRldn07dmFyIHJlYWRNb2RlPTI5Mnw3Mzt2YXIgd3JpdGVNb2RlPTE0NjtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhGU05vZGUucHJvdG90eXBlLHtyZWFkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5tb2RlJnJlYWRNb2RlKT09PXJlYWRNb2RlfSxzZXQ6ZnVuY3Rpb24odmFsKXt2YWw/dGhpcy5tb2RlfD1yZWFkTW9kZTp0aGlzLm1vZGUmPX5yZWFkTW9kZX19LHdyaXRlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5tb2RlJndyaXRlTW9kZSk9PT13cml0ZU1vZGV9LHNldDpmdW5jdGlvbih2YWwpe3ZhbD90aGlzLm1vZGV8PXdyaXRlTW9kZTp0aGlzLm1vZGUmPX53cml0ZU1vZGV9fSxpc0ZvbGRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZTLmlzRGlyKHRoaXMubW9kZSl9fSxpc0RldmljZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZTLmlzQ2hyZGV2KHRoaXMubW9kZSl9fX0pO0ZTLkZTTm9kZT1GU05vZGU7RlMuY3JlYXRlUHJlbG9hZGVkRmlsZT1GU19jcmVhdGVQcmVsb2FkZWRGaWxlO0ZTLnN0YXRpY0luaXQoKTtlbWJpbmRfaW5pdF9jaGFyQ29kZXMoKTtCaW5kaW5nRXJyb3I9TW9kdWxlWyJCaW5kaW5nRXJyb3IiXT1jbGFzcyBCaW5kaW5nRXJyb3IgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihtZXNzYWdlKXtzdXBlcihtZXNzYWdlKTt0aGlzLm5hbWU9IkJpbmRpbmdFcnJvciJ9fTtJbnRlcm5hbEVycm9yPU1vZHVsZVsiSW50ZXJuYWxFcnJvciJdPWNsYXNzIEludGVybmFsRXJyb3IgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihtZXNzYWdlKXtzdXBlcihtZXNzYWdlKTt0aGlzLm5hbWU9IkludGVybmFsRXJyb3IifX07aW5pdF9DbGFzc0hhbmRsZSgpO2luaXRfZW1iaW5kKCk7aW5pdF9SZWdpc3RlcmVkUG9pbnRlcigpO1VuYm91bmRUeXBlRXJyb3I9TW9kdWxlWyJVbmJvdW5kVHlwZUVycm9yIl09ZXh0ZW5kRXJyb3IoRXJyb3IsIlVuYm91bmRUeXBlRXJyb3IiKTtoYW5kbGVBbGxvY2F0b3JJbml0KCk7aW5pdF9lbXZhbCgpO3ZhciBwcm94aWVkRnVuY3Rpb25UYWJsZT1bX3Byb2NfZXhpdCxleGl0T25NYWluVGhyZWFkLHB0aHJlYWRDcmVhdGVQcm94aWVkLF9fX3N5c2NhbGxfZmNudGw2NCxfX19zeXNjYWxsX2ZzdGF0NjQsX19fc3lzY2FsbF9mdHJ1bmNhdGU2NCxfX19zeXNjYWxsX2lvY3RsLF9fX3N5c2NhbGxfbHN0YXQ2NCxfX19zeXNjYWxsX25ld2ZzdGF0YXQsX19fc3lzY2FsbF9vcGVuYXQsX19fc3lzY2FsbF9yZWFkbGlua2F0LF9fX3N5c2NhbGxfcmVuYW1lYXQsX19fc3lzY2FsbF9zdGF0NjQsX19fc3lzY2FsbF91bmxpbmthdCxfX21tYXBfanMsX19tdW5tYXBfanMsX2Vudmlyb25fZ2V0LF9lbnZpcm9uX3NpemVzX2dldCxfZmRfY2xvc2UsX2ZkX3JlYWQsX2ZkX3NlZWssX2ZkX3N5bmMsX2ZkX3dyaXRlXTt2YXIgd2FzbUltcG9ydHM9e2I6X19fYXNzZXJ0X2ZhaWwsdzpfX19jeGFfYmVnaW5fY2F0Y2gsdjpfX19jeGFfZW5kX2NhdGNoLGQ6X19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2hfMixrOl9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoXzMseWE6X19fY3hhX3JldGhyb3csbjpfX19jeGFfdGhyb3csaWE6X19fZW1zY3JpcHRlbl9pbml0X21haW5fdGhyZWFkX2pzLEU6X19fZW1zY3JpcHRlbl90aHJlYWRfY2xlYW51cCxmYTpfX19wdGhyZWFkX2NyZWF0ZV9qcyxoOl9fX3Jlc3VtZUV4Y2VwdGlvbixvYTpfX19zeXNjYWxsX2ZzdGF0NjQsVzpfX19zeXNjYWxsX2Z0cnVuY2F0ZTY0LG1hOl9fX3N5c2NhbGxfbmV3ZnN0YXRhdCxwYTpfX19zeXNjYWxsX29wZW5hdCxlYTpfX19zeXNjYWxsX3JlYWRsaW5rYXQsZGE6X19fc3lzY2FsbF9yZW5hbWVhdCxuYTpfX19zeXNjYWxsX3N0YXQ2NCxhYTpfX19zeXNjYWxsX3VubGlua2F0LFg6X19lbWJpbmRfcmVnaXN0ZXJfYmlnaW50LHVhOl9fZW1iaW5kX3JlZ2lzdGVyX2Jvb2wsUzpfX2VtYmluZF9yZWdpc3Rlcl9jbGFzcyxSOl9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2NvbnN0cnVjdG9yLG06X19lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfZnVuY3Rpb24sdGE6X19lbWJpbmRfcmVnaXN0ZXJfZW12YWwsSzpfX2VtYmluZF9yZWdpc3Rlcl9mbG9hdCxxOl9fZW1iaW5kX3JlZ2lzdGVyX2ludGVnZXIsbDpfX2VtYmluZF9yZWdpc3Rlcl9tZW1vcnlfdmlldyxKOl9fZW1iaW5kX3JlZ2lzdGVyX3N0ZF9zdHJpbmcsQjpfX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZyx2YTpfX2VtYmluZF9yZWdpc3Rlcl92b2lkLHNhOl9fZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYyxiYTpfX2Vtc2NyaXB0ZW5fbm90aWZ5X21haWxib3hfcG9zdG1lc3NhZ2UsZ2E6X19lbXNjcmlwdGVuX3JlY2VpdmVfb25fbWFpbl90aHJlYWRfanMsaGE6X19lbXNjcmlwdGVuX3RocmVhZF9tYWlsYm94X2F3YWl0LHJhOl9fZW1zY3JpcHRlbl90aHJlYWRfc2V0X3N0cm9uZ3JlZixDYTpfX2VtdmFsX2RlY3JlZixEYTpfX2VtdmFsX2luY3JlZixzOl9fZW12YWxfdGFrZV92YWx1ZSxUOl9fbW1hcF9qcyxVOl9fbXVubWFwX2pzLGM6X2Fib3J0LEY6X2Vtc2NyaXB0ZW5fY2hlY2tfYmxvY2tpbmdfYWxsb3dlZCxIOl9lbXNjcmlwdGVuX2RhdGVfbm93LHFhOl9lbXNjcmlwdGVuX2V4aXRfd2l0aF9saXZlX3J1bnRpbWUsY2E6X2Vtc2NyaXB0ZW5fZ2V0X2hlYXBfbWF4LHA6X2Vtc2NyaXB0ZW5fZ2V0X25vdyxNOl9lbXNjcmlwdGVuX251bV9sb2dpY2FsX2NvcmVzLCQ6X2Vtc2NyaXB0ZW5fcmVzaXplX2hlYXAsamE6X2Vudmlyb25fZ2V0LGthOl9lbnZpcm9uX3NpemVzX2dldCxMOl9leGl0LEk6X2ZkX2Nsb3NlLEc6X2ZkX3JlYWQsVjpfZmRfc2VlayxsYTpfZmRfc3luYyxBOl9mZF93cml0ZSxaOl9nZXRlbnRyb3B5LEJhOmludm9rZV9maSxEOmludm9rZV9pLGc6aW52b2tlX2lpLHhhOmludm9rZV9paWRpaSxBYTppbnZva2VfaWlmLGU6aW52b2tlX2lpaSxmOmludm9rZV9paWlpLHo6aW52b2tlX2lpaWlpLHk6aW52b2tlX2lpaWlpaSxROmludm9rZV9paWlpaWlpLFk6aW52b2tlX2lpaixyOmludm9rZV92LGo6aW52b2tlX3ZpLGk6aW52b2tlX3ZpaSx0Omludm9rZV92aWlkLEM6aW52b2tlX3ZpaWRpLG86aW52b2tlX3ZpaWksemE6aW52b2tlX3ZpaWlkaWlpLHU6aW52b2tlX3ZpaWlpLE86aW52b2tlX3ZpaWlpZGksUDppbnZva2VfdmlpaWlpLHg6aW52b2tlX3ZpaWlpaWlpZGksTjppbnZva2VfdmlpaWlpaWlpLGE6d2FzbU1lbW9yeXx8TW9kdWxlWyJ3YXNtTWVtb3J5Il0sXzpfc3RyZnRpbWVfbCx3YTp4bm5Mb2FkV2FzbU1vZHVsZUpTfTt2YXIgd2FzbUV4cG9ydHM9Y3JlYXRlV2FzbSgpO3ZhciBfX193YXNtX2NhbGxfY3RvcnM9KCk9PihfX193YXNtX2NhbGxfY3RvcnM9d2FzbUV4cG9ydHNbIkVhIl0pKCk7dmFyIF9wdGhyZWFkX3NlbGY9TW9kdWxlWyJfcHRocmVhZF9zZWxmIl09KCk9PihfcHRocmVhZF9zZWxmPU1vZHVsZVsiX3B0aHJlYWRfc2VsZiJdPXdhc21FeHBvcnRzWyJGYSJdKSgpO3ZhciBfbWFsbG9jPWEwPT4oX21hbGxvYz13YXNtRXhwb3J0c1siSGEiXSkoYTApO3ZhciBfZnJlZT1hMD0+KF9mcmVlPXdhc21FeHBvcnRzWyJJYSJdKShhMCk7dmFyIF9fX2Vycm5vX2xvY2F0aW9uPSgpPT4oX19fZXJybm9fbG9jYXRpb249d2FzbUV4cG9ydHNbIkphIl0pKCk7dmFyIF9fZW1zY3JpcHRlbl90bHNfaW5pdD1Nb2R1bGVbIl9fZW1zY3JpcHRlbl90bHNfaW5pdCJdPSgpPT4oX19lbXNjcmlwdGVuX3Rsc19pbml0PU1vZHVsZVsiX19lbXNjcmlwdGVuX3Rsc19pbml0Il09d2FzbUV4cG9ydHNbIkthIl0pKCk7dmFyIF9lbXNjcmlwdGVuX2J1aWx0aW5fbWVtYWxpZ249KGEwLGExKT0+KF9lbXNjcmlwdGVuX2J1aWx0aW5fbWVtYWxpZ249d2FzbUV4cG9ydHNbIkxhIl0pKGEwLGExKTt2YXIgX19fZ2V0VHlwZU5hbWU9YTA9PihfX19nZXRUeXBlTmFtZT13YXNtRXhwb3J0c1siTWEiXSkoYTApO3ZhciBfX2VtYmluZF9pbml0aWFsaXplX2JpbmRpbmdzPU1vZHVsZVsiX19lbWJpbmRfaW5pdGlhbGl6ZV9iaW5kaW5ncyJdPSgpPT4oX19lbWJpbmRfaW5pdGlhbGl6ZV9iaW5kaW5ncz1Nb2R1bGVbIl9fZW1iaW5kX2luaXRpYWxpemVfYmluZGluZ3MiXT13YXNtRXhwb3J0c1siTmEiXSkoKTt2YXIgX19fZnVuY3Nfb25fZXhpdD0oKT0+KF9fX2Z1bmNzX29uX2V4aXQ9d2FzbUV4cG9ydHNbIk9hIl0pKCk7dmFyIF9fZW1zY3JpcHRlbl90aHJlYWRfaW5pdD1Nb2R1bGVbIl9fZW1zY3JpcHRlbl90aHJlYWRfaW5pdCJdPShhMCxhMSxhMixhMyxhNCxhNSk9PihfX2Vtc2NyaXB0ZW5fdGhyZWFkX2luaXQ9TW9kdWxlWyJfX2Vtc2NyaXB0ZW5fdGhyZWFkX2luaXQiXT13YXNtRXhwb3J0c1siUGEiXSkoYTAsYTEsYTIsYTMsYTQsYTUpO3ZhciBfX2Vtc2NyaXB0ZW5fdGhyZWFkX2NyYXNoZWQ9TW9kdWxlWyJfX2Vtc2NyaXB0ZW5fdGhyZWFkX2NyYXNoZWQiXT0oKT0+KF9fZW1zY3JpcHRlbl90aHJlYWRfY3Jhc2hlZD1Nb2R1bGVbIl9fZW1zY3JpcHRlbl90aHJlYWRfY3Jhc2hlZCJdPXdhc21FeHBvcnRzWyJRYSJdKSgpO3ZhciBfZW1zY3JpcHRlbl9tYWluX3RocmVhZF9wcm9jZXNzX3F1ZXVlZF9jYWxscz0oKT0+KF9lbXNjcmlwdGVuX21haW5fdGhyZWFkX3Byb2Nlc3NfcXVldWVkX2NhbGxzPXdhc21FeHBvcnRzWyJlbXNjcmlwdGVuX21haW5fdGhyZWFkX3Byb2Nlc3NfcXVldWVkX2NhbGxzIl0pKCk7dmFyIF9mZmx1c2g9TW9kdWxlWyJfZmZsdXNoIl09YTA9PihfZmZsdXNoPU1vZHVsZVsiX2ZmbHVzaCJdPXdhc21FeHBvcnRzWyJSYSJdKShhMCk7dmFyIF9lbXNjcmlwdGVuX21haW5fcnVudGltZV90aHJlYWRfaWQ9KCk9PihfZW1zY3JpcHRlbl9tYWluX3J1bnRpbWVfdGhyZWFkX2lkPXdhc21FeHBvcnRzWyJlbXNjcmlwdGVuX21haW5fcnVudGltZV90aHJlYWRfaWQiXSkoKTt2YXIgX19lbXNjcmlwdGVuX3J1bl9vbl9tYWluX3RocmVhZF9qcz0oYTAsYTEsYTIsYTMpPT4oX19lbXNjcmlwdGVuX3J1bl9vbl9tYWluX3RocmVhZF9qcz13YXNtRXhwb3J0c1siU2EiXSkoYTAsYTEsYTIsYTMpO3ZhciBfX2Vtc2NyaXB0ZW5fdGhyZWFkX2ZyZWVfZGF0YT1hMD0+KF9fZW1zY3JpcHRlbl90aHJlYWRfZnJlZV9kYXRhPXdhc21FeHBvcnRzWyJUYSJdKShhMCk7dmFyIF9fZW1zY3JpcHRlbl90aHJlYWRfZXhpdD1Nb2R1bGVbIl9fZW1zY3JpcHRlbl90aHJlYWRfZXhpdCJdPWEwPT4oX19lbXNjcmlwdGVuX3RocmVhZF9leGl0PU1vZHVsZVsiX19lbXNjcmlwdGVuX3RocmVhZF9leGl0Il09d2FzbUV4cG9ydHNbIlVhIl0pKGEwKTt2YXIgX19lbXNjcmlwdGVuX2NoZWNrX21haWxib3g9KCk9PihfX2Vtc2NyaXB0ZW5fY2hlY2tfbWFpbGJveD13YXNtRXhwb3J0c1siVmEiXSkoKTt2YXIgX3NldFRocmV3PShhMCxhMSk9Pihfc2V0VGhyZXc9d2FzbUV4cG9ydHNbIldhIl0pKGEwLGExKTt2YXIgc2V0VGVtcFJldDA9YTA9PihzZXRUZW1wUmV0MD13YXNtRXhwb3J0c1siWGEiXSkoYTApO3ZhciBfZW1zY3JpcHRlbl9zdGFja19zZXRfbGltaXRzPShhMCxhMSk9PihfZW1zY3JpcHRlbl9zdGFja19zZXRfbGltaXRzPXdhc21FeHBvcnRzWyJZYSJdKShhMCxhMSk7dmFyIHN0YWNrU2F2ZT0oKT0+KHN0YWNrU2F2ZT13YXNtRXhwb3J0c1siWmEiXSkoKTt2YXIgc3RhY2tSZXN0b3JlPWEwPT4oc3RhY2tSZXN0b3JlPXdhc21FeHBvcnRzWyJfYSJdKShhMCk7dmFyIHN0YWNrQWxsb2M9YTA9PihzdGFja0FsbG9jPXdhc21FeHBvcnRzWyIkYSJdKShhMCk7dmFyIF9fX2N4YV9kZWNyZW1lbnRfZXhjZXB0aW9uX3JlZmNvdW50PWEwPT4oX19fY3hhX2RlY3JlbWVudF9leGNlcHRpb25fcmVmY291bnQ9d2FzbUV4cG9ydHNbImFiIl0pKGEwKTt2YXIgX19fY3hhX2luY3JlbWVudF9leGNlcHRpb25fcmVmY291bnQ9YTA9PihfX19jeGFfaW5jcmVtZW50X2V4Y2VwdGlvbl9yZWZjb3VudD13YXNtRXhwb3J0c1siYmIiXSkoYTApO3ZhciBfX19jeGFfY2FuX2NhdGNoPShhMCxhMSxhMik9PihfX19jeGFfY2FuX2NhdGNoPXdhc21FeHBvcnRzWyJjYiJdKShhMCxhMSxhMik7dmFyIF9fX2N4YV9pc19wb2ludGVyX3R5cGU9YTA9PihfX19jeGFfaXNfcG9pbnRlcl90eXBlPXdhc21FeHBvcnRzWyJkYiJdKShhMCk7dmFyIGR5bkNhbGxfdmlpamo9TW9kdWxlWyJkeW5DYWxsX3ZpaWpqIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2KT0+KGR5bkNhbGxfdmlpamo9TW9kdWxlWyJkeW5DYWxsX3ZpaWpqIl09d2FzbUV4cG9ydHNbImViIl0pKGEwLGExLGEyLGEzLGE0LGE1LGE2KTt2YXIgZHluQ2FsbF92aWlpampqPU1vZHVsZVsiZHluQ2FsbF92aWlpampqIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4LGE5KT0+KGR5bkNhbGxfdmlpaWpqaj1Nb2R1bGVbImR5bkNhbGxfdmlpaWpqaiJdPXdhc21FeHBvcnRzWyJmYiJdKShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7dmFyIGR5bkNhbGxfaWlpaWo9TW9kdWxlWyJkeW5DYWxsX2lpaWlqIl09KGEwLGExLGEyLGEzLGE0LGE1KT0+KGR5bkNhbGxfaWlpaWo9TW9kdWxlWyJkeW5DYWxsX2lpaWlqIl09d2FzbUV4cG9ydHNbImdiIl0pKGEwLGExLGEyLGEzLGE0LGE1KTt2YXIgZHluQ2FsbF9qaWk9TW9kdWxlWyJkeW5DYWxsX2ppaSJdPShhMCxhMSxhMik9PihkeW5DYWxsX2ppaT1Nb2R1bGVbImR5bkNhbGxfamlpIl09d2FzbUV4cG9ydHNbImhiIl0pKGEwLGExLGEyKTt2YXIgZHluQ2FsbF9qamo9TW9kdWxlWyJkeW5DYWxsX2pqaiJdPShhMCxhMSxhMixhMyxhNCk9PihkeW5DYWxsX2pqaj1Nb2R1bGVbImR5bkNhbGxfampqIl09d2FzbUV4cG9ydHNbImliIl0pKGEwLGExLGEyLGEzLGE0KTt2YXIgZHluQ2FsbF9paWlpamo9TW9kdWxlWyJkeW5DYWxsX2lpaWlqaiJdPShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyk9PihkeW5DYWxsX2lpaWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpaWpqIl09d2FzbUV4cG9ydHNbImpiIl0pKGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3KTt2YXIgZHluQ2FsbF92aWlqamk9TW9kdWxlWyJkeW5DYWxsX3ZpaWpqaSJdPShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyk9PihkeW5DYWxsX3ZpaWpqaT1Nb2R1bGVbImR5bkNhbGxfdmlpamppIl09d2FzbUV4cG9ydHNbImtiIl0pKGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3KTt2YXIgZHluQ2FsbF9paWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpamoiXT0oYTAsYTEsYTIsYTMsYTQsYTUsYTYpPT4oZHluQ2FsbF9paWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpamoiXT13YXNtRXhwb3J0c1sibGIiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYpO3ZhciBkeW5DYWxsX3ZpaWpqaj1Nb2R1bGVbImR5bkNhbGxfdmlpampqIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KT0+KGR5bkNhbGxfdmlpampqPU1vZHVsZVsiZHluQ2FsbF92aWlqamoiXT13YXNtRXhwb3J0c1sibWIiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpO3ZhciBkeW5DYWxsX2lpaj1Nb2R1bGVbImR5bkNhbGxfaWlqIl09KGEwLGExLGEyLGEzKT0+KGR5bkNhbGxfaWlqPU1vZHVsZVsiZHluQ2FsbF9paWoiXT13YXNtRXhwb3J0c1sibmIiXSkoYTAsYTEsYTIsYTMpO3ZhciBkeW5DYWxsX2lpamppaWlpPU1vZHVsZVsiZHluQ2FsbF9paWpqaWlpaSJdPShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk9PihkeW5DYWxsX2lpamppaWlpPU1vZHVsZVsiZHluQ2FsbF9paWpqaWlpaSJdPXdhc21FeHBvcnRzWyJvYiJdKShhMCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7dmFyIGR5bkNhbGxfamlqaT1Nb2R1bGVbImR5bkNhbGxfamlqaSJdPShhMCxhMSxhMixhMyxhNCk9PihkeW5DYWxsX2ppamk9TW9kdWxlWyJkeW5DYWxsX2ppamkiXT13YXNtRXhwb3J0c1sicGIiXSkoYTAsYTEsYTIsYTMsYTQpO3ZhciBkeW5DYWxsX3ZpaWppaT1Nb2R1bGVbImR5bkNhbGxfdmlpamlpIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2KT0+KGR5bkNhbGxfdmlpamlpPU1vZHVsZVsiZHluQ2FsbF92aWlqaWkiXT13YXNtRXhwb3J0c1sicWIiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYpO3ZhciBkeW5DYWxsX2lpaWlpaj1Nb2R1bGVbImR5bkNhbGxfaWlpaWlqIl09KGEwLGExLGEyLGEzLGE0LGE1LGE2KT0+KGR5bkNhbGxfaWlpaWlqPU1vZHVsZVsiZHluQ2FsbF9paWlpaWoiXT13YXNtRXhwb3J0c1sicmIiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYpO3ZhciBkeW5DYWxsX2lpaWlpamo9TW9kdWxlWyJkeW5DYWxsX2lpaWlpamoiXT0oYTAsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpPT4oZHluQ2FsbF9paWlpaWpqPU1vZHVsZVsiZHluQ2FsbF9paWlpaWpqIl09d2FzbUV4cG9ydHNbInNiIl0pKGEwLGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KTt2YXIgZHluQ2FsbF9paWlpaWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpaWlpamoiXT0oYTAsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpPT4oZHluQ2FsbF9paWlpaWlqaj1Nb2R1bGVbImR5bkNhbGxfaWlpaWlpamoiXT13YXNtRXhwb3J0c1sidGIiXSkoYTAsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpO3ZhciBfX19zdGFydF9lbV9qcz1Nb2R1bGVbIl9fX3N0YXJ0X2VtX2pzIl09MjYyMTQ4O3ZhciBfX19zdG9wX2VtX2pzPU1vZHVsZVsiX19fc3RvcF9lbV9qcyJdPTI2Mjc2MDtmdW5jdGlvbiBpbnZva2VfaWkoaW5kZXgsYTEpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWkoaW5kZXgsYTEsYTIpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMil9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV92aWkoaW5kZXgsYTEsYTIpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7Z2V0V2FzbVRhYmxlRW50cnkoaW5kZXgpKGExLGEyKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX3ZpKGluZGV4LGExKXt2YXIgc3A9c3RhY2tTYXZlKCk7dHJ5e2dldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV92aWlpaShpbmRleCxhMSxhMixhMyxhNCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1KXt2YXIgc3A9c3RhY2tTYXZlKCk7dHJ5e3JldHVybiBnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfaWlpaShpbmRleCxhMSxhMixhMyl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtyZXR1cm4gZ2V0V2FzbVRhYmxlRW50cnkoaW5kZXgpKGExLGEyLGEzKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX2koaW5kZXgpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KSgpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfZmkoaW5kZXgsYTEpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWYoaW5kZXgsYTEsYTIpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMil9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KXt2YXIgc3A9c3RhY2tTYXZlKCk7dHJ5e3JldHVybiBnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUsYTYpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdihpbmRleCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX3ZpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlkaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdmlpaShpbmRleCxhMSxhMixhMyl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdmlpaWlkaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNil7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUsYTYpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfdmlpaWRpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7Z2V0V2FzbVRhYmxlRW50cnkoaW5kZXgpKGExLGEyLGEzLGE0LGE1LGE2LGE3KX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX3ZpaWQoaW5kZXgsYTEsYTIsYTMpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7Z2V0V2FzbVRhYmxlRW50cnkoaW5kZXgpKGExLGEyLGEzKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMixhMyxhNCl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV92aWlkaShpbmRleCxhMSxhMixhMyxhNCl7dmFyIHNwPXN0YWNrU2F2ZSgpO3RyeXtnZXRXYXNtVGFibGVFbnRyeShpbmRleCkoYTEsYTIsYTMsYTQpfWNhdGNoKGUpe3N0YWNrUmVzdG9yZShzcCk7aWYoZSE9PWUrMCl0aHJvdyBlO19zZXRUaHJldygxLDApfX1mdW5jdGlvbiBpbnZva2VfaWlkaWkoaW5kZXgsYTEsYTIsYTMsYTQpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGdldFdhc21UYWJsZUVudHJ5KGluZGV4KShhMSxhMixhMyxhNCl9Y2F0Y2goZSl7c3RhY2tSZXN0b3JlKHNwKTtpZihlIT09ZSswKXRocm93IGU7X3NldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGludm9rZV9paWooaW5kZXgsYTEsYTIsYTMpe3ZhciBzcD1zdGFja1NhdmUoKTt0cnl7cmV0dXJuIGR5bkNhbGxfaWlqKGluZGV4LGExLGEyLGEzKX1jYXRjaChlKXtzdGFja1Jlc3RvcmUoc3ApO2lmKGUhPT1lKzApdGhyb3cgZTtfc2V0VGhyZXcoMSwwKX19TW9kdWxlWyJ3YXNtTWVtb3J5Il09d2FzbU1lbW9yeTtNb2R1bGVbImtlZXBSdW50aW1lQWxpdmUiXT1rZWVwUnVudGltZUFsaXZlO01vZHVsZVsiRXhpdFN0YXR1cyJdPUV4aXRTdGF0dXM7TW9kdWxlWyJQVGhyZWFkIl09UFRocmVhZDt2YXIgY2FsbGVkUnVuO2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1mdW5jdGlvbiBydW5DYWxsZXIoKXtpZighY2FsbGVkUnVuKXJ1bigpO2lmKCFjYWxsZWRSdW4pZGVwZW5kZW5jaWVzRnVsZmlsbGVkPXJ1bkNhbGxlcn07ZnVuY3Rpb24gcnVuKCl7aWYocnVuRGVwZW5kZW5jaWVzPjApe3JldHVybn1pZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXtyZWFkeVByb21pc2VSZXNvbHZlKE1vZHVsZSk7aW5pdFJ1bnRpbWUoKTtzdGFydFdvcmtlcihNb2R1bGUpO3JldHVybn1wcmVSdW4oKTtpZihydW5EZXBlbmRlbmNpZXM+MCl7cmV0dXJufWZ1bmN0aW9uIGRvUnVuKCl7aWYoY2FsbGVkUnVuKXJldHVybjtjYWxsZWRSdW49dHJ1ZTtNb2R1bGVbImNhbGxlZFJ1biJdPXRydWU7aWYoQUJPUlQpcmV0dXJuO2luaXRSdW50aW1lKCk7cmVhZHlQcm9taXNlUmVzb2x2ZShNb2R1bGUpO2lmKE1vZHVsZVsib25SdW50aW1lSW5pdGlhbGl6ZWQiXSlNb2R1bGVbIm9uUnVudGltZUluaXRpYWxpemVkIl0oKTtwb3N0UnVuKCl9aWYoTW9kdWxlWyJzZXRTdGF0dXMiXSl7TW9kdWxlWyJzZXRTdGF0dXMiXSgiUnVubmluZy4uLiIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7TW9kdWxlWyJzZXRTdGF0dXMiXSgiIil9LDEpO2RvUnVuKCl9LDEpfWVsc2V7ZG9SdW4oKX19aWYoTW9kdWxlWyJwcmVJbml0Il0pe2lmKHR5cGVvZiBNb2R1bGVbInByZUluaXQiXT09ImZ1bmN0aW9uIilNb2R1bGVbInByZUluaXQiXT1bTW9kdWxlWyJwcmVJbml0Il1dO3doaWxlKE1vZHVsZVsicHJlSW5pdCJdLmxlbmd0aD4wKXtNb2R1bGVbInByZUluaXQiXS5wb3AoKSgpfX1ydW4oKTsKCgogIHJldHVybiBtb2R1bGVBcmcucmVhZHkKfQopOwp9KSgpOwo7CmNyZWF0ZVdhc21NdWx0aUluc3RhbmNlID0gTW9kdWxlOyB9ICAgIAogICAgCiAgICAgICAgICAgICFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtjbGFzcyBse31mdW5jdGlvbiBqKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJkZWZhdWx0Iik/ZS5kZWZhdWx0OmV9bC51cGRhdGVzPXt0cmFuc2Zvcm1lcl9uZXc6Ik5ldyB0cmFuc2Zvcm1lciIsdHJhbnNmb3JtZXJfbnVsbDoiTnVsbCB0cmFuc2Zvcm1lciJ9LGwuZXJyb3JzPXt0cmFuc2Zvcm1lcl9ub25lOiJObyB0cmFuc2Zvcm1lcnMgcHJvdmlkZWQiLHRyYW5zZm9ybWVyX3N0YXJ0OiJDYW5ub3Qgc3RhcnQgdHJhbnNmb3JtZXIiLHRyYW5zZm9ybWVyX3RyYW5zZm9ybToiQ2Fubm90IHRyYW5zZm9ybSBmcmFtZSIsdHJhbnNmb3JtZXJfZmx1c2g6IkNhbm5vdCBmbHVzaCB0cmFuc2Zvcm1lciIscmVhZGFibGVfbnVsbDoiUmVhZGFibGUgaXMgbnVsbCIsd3JpdGFibGVfbnVsbDoiV3JpdGFibGUgaXMgbnVsbCJ9O2NvbnN0IGU9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcCxyPW5ldyBXZWFrTWFwLG89U3ltYm9sKCJhbnlQcm9kdWNlciIpLGE9UHJvbWlzZS5yZXNvbHZlKCksYz1TeW1ib2woImxpc3RlbmVyQWRkZWQiKSxmPVN5bWJvbCgibGlzdGVuZXJSZW1vdmVkIik7bGV0IGg9ITE7ZnVuY3Rpb24gcChlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUmJiJzeW1ib2wiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJldmVudE5hbWUgbXVzdCBiZSBhIHN0cmluZyBvciBhIHN5bWJvbCIpfWZ1bmN0aW9uIGIoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigibGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbShlLHIpe2NvbnN0IG89dC5nZXQoZSk7cmV0dXJuIG8uaGFzKHIpfHxvLnNldChyLG5ldyBTZXQpLG8uZ2V0KHIpfWZ1bmN0aW9uIF8oZSx0KXtjb25zdCBhPSJzdHJpbmciPT10eXBlb2YgdHx8InN5bWJvbCI9PXR5cGVvZiB0P3Q6byxjPXIuZ2V0KGUpO3JldHVybiBjLmhhcyhhKXx8Yy5zZXQoYSxuZXcgU2V0KSxjLmdldChhKX1mdW5jdGlvbiBEKGUsdCl7dD1BcnJheS5pc0FycmF5KHQpP3Q6W3RdO2xldCByPSExLHM9KCk9Pnt9LG89W107Y29uc3QgYT17ZW5xdWV1ZShlKXtvLnB1c2goZSkscygpfSxmaW5pc2goKXtyPSEwLHMoKX19O2Zvcihjb25zdCBjIG9mIHQpXyhlLGMpLmFkZChhKTtyZXR1cm57YXN5bmMgbmV4dCgpe3JldHVybiBvPzA9PT1vLmxlbmd0aD9yPyhvPXZvaWQgMCx0aGlzLm5leHQoKSk6KGF3YWl0IG5ldyBQcm9taXNlKChlPT57cz1lfSkpLHRoaXMubmV4dCgpKTp7ZG9uZTohMSx2YWx1ZTphd2FpdCBvLnNoaWZ0KCl9Ontkb25lOiEwfX0sYXN5bmMgcmV0dXJuKHIpe289dm9pZCAwO2Zvcihjb25zdCBvIG9mIHQpXyhlLG8pLmRlbGV0ZShhKTtyZXR1cm4gcygpLGFyZ3VtZW50cy5sZW5ndGg+MD97ZG9uZTohMCx2YWx1ZTphd2FpdCByfTp7ZG9uZTohMH19LFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKXtyZXR1cm4gdGhpc319fWZ1bmN0aW9uICQoZSl7aWYodm9pZCAwPT09ZSlyZXR1cm4gdTtpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyIpO2Zvcihjb25zdCB0IG9mIGUpaWYoIXUuaW5jbHVkZXModCkpdGhyb3cic3RyaW5nIiE9dHlwZW9mIHQ/bmV3IFR5cGVFcnJvcigiYG1ldGhvZE5hbWVzYCBlbGVtZW50IG11c3QgYmUgYSBzdHJpbmciKTpuZXcgRXJyb3IoYCR7dH0gaXMgbm90IEVtaXR0ZXJ5IG1ldGhvZGApO3JldHVybiBlfWNvbnN0IE09ZT0+ZT09PWN8fGU9PT1mO2NsYXNzIGR7c3RhdGljIG1peGluKGUsdCl7cmV0dXJuIHQ9JCh0KSxyPT57aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBmdW5jdGlvbiIpO2Zvcihjb25zdCBlIG9mIHQpaWYodm9pZCAwIT09ci5wcm90b3R5cGVbZV0pdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvcGVydHkgXGAke2V9XGAgYWxyZWFkeSBleGlzdHMgb24gXGB0YXJnZXRcYGApO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLnByb3RvdHlwZSxlLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBpKCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGUse2VudW1lcmFibGU6ITEsdmFsdWU6bmV3IGR9KSx0aGlzW2VdfX0pO2NvbnN0IG49dD0+ZnVuY3Rpb24oLi4ucil7cmV0dXJuIHRoaXNbZV1bdF0oLi4ucil9O2Zvcihjb25zdCBlIG9mIHQpT2JqZWN0LmRlZmluZVByb3BlcnR5KHIucHJvdG90eXBlLGUse2VudW1lcmFibGU6ITEsdmFsdWU6bihlKX0pO3JldHVybiByfX1zdGF0aWMgZ2V0IGlzRGVidWdFbmFibGVkKCl7aWYoIm9iamVjdCIhPXR5cGVvZiBwcm9jZXNzKXJldHVybiBoO2NvbnN0e2VudjplfT1wcm9jZXNzfHx7ZW52Ont9fTtyZXR1cm4iZW1pdHRlcnkiPT09ZS5ERUJVR3x8IioiPT09ZS5ERUJVR3x8aH1zdGF0aWMgc2V0IGlzRGVidWdFbmFibGVkKGUpe2g9ZX1jb25zdHJ1Y3RvcihvPXt9KXtlLnNldCh0aGlzLG5ldyBTZXQpLHQuc2V0KHRoaXMsbmV3IE1hcCksci5zZXQodGhpcyxuZXcgTWFwKSx0aGlzLmRlYnVnPW8uZGVidWd8fHt9LHZvaWQgMD09PXRoaXMuZGVidWcuZW5hYmxlZCYmKHRoaXMuZGVidWcuZW5hYmxlZD0hMSksdGhpcy5kZWJ1Zy5sb2dnZXJ8fCh0aGlzLmRlYnVnLmxvZ2dlcj0oZSx0LHIsbyk9Pnt0cnl7bz1KU09OLnN0cmluZ2lmeShvKX1jYXRjaHtvPWBPYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIGtleXMgZmFpbGVkIHRvIHN0cmluZ2lmeTogJHtPYmplY3Qua2V5cyhvKS5qb2luKCIsIil9YH0ic3ltYm9sIj09dHlwZW9mIHImJihyPXIudG9TdHJpbmcoKSk7Y29uc3QgYT1uZXcgRGF0ZSxjPWAke2EuZ2V0SG91cnMoKX06JHthLmdldE1pbnV0ZXMoKX06JHthLmdldFNlY29uZHMoKX0uJHthLmdldE1pbGxpc2Vjb25kcygpfWA7Y29uc29sZS5sb2coYFske2N9XVtlbWl0dGVyeToke2V9XVske3R9XSBFdmVudCBOYW1lOiAke3J9XG5cdGRhdGE6ICR7b31gKX0pfWxvZ0lmRGVidWdFbmFibGVkKGUsdCxyKXsoZC5pc0RlYnVnRW5hYmxlZHx8dGhpcy5kZWJ1Zy5lbmFibGVkKSYmdGhpcy5kZWJ1Zy5sb2dnZXIoZSx0aGlzLmRlYnVnLm5hbWUsdCxyKX1vbihlLHQpe2IodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCByIG9mIGUpcChyKSxtKHRoaXMscikuYWRkKHQpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInN1YnNjcmliZSIscix2b2lkIDApLE0ocil8fHRoaXMuZW1pdChjLHtldmVudE5hbWU6cixsaXN0ZW5lcjp0fSk7cmV0dXJuIHRoaXMub2ZmLmJpbmQodGhpcyxlLHQpfW9mZihlLHQpe2IodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCByIG9mIGUpcChyKSxtKHRoaXMscikuZGVsZXRlKHQpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInVuc3Vic2NyaWJlIixyLHZvaWQgMCksTShyKXx8dGhpcy5lbWl0KGYse2V2ZW50TmFtZTpyLGxpc3RlbmVyOnR9KX1vbmNlKGUpe3JldHVybiBuZXcgUHJvbWlzZSgodD0+e2NvbnN0IHI9dGhpcy5vbihlLChlPT57cigpLHQoZSl9KSl9KSl9ZXZlbnRzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKXAodCk7cmV0dXJuIEQodGhpcyxlKX1hc3luYyBlbWl0KHQsYyl7cCh0KSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0Iix0LGMpLGZ1bmN0aW9uIEIoZSx0LGEpe2NvbnN0IGM9ci5nZXQoZSk7aWYoYy5oYXModCkpZm9yKGNvbnN0IHIgb2YgYy5nZXQodCkpci5lbnF1ZXVlKGEpO2lmKGMuaGFzKG8pKXtjb25zdCBlPVByb21pc2UuYWxsKFt0LGFdKTtmb3IoY29uc3QgdCBvZiBjLmdldChvKSl0LmVucXVldWUoZSl9fSh0aGlzLHQsYyk7Y29uc3QgZj1tKHRoaXMsdCksaD1lLmdldCh0aGlzKSx1PVsuLi5mXSxnPU0odCk/W106Wy4uLmhdO2F3YWl0IGEsYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnUubWFwKChhc3luYyBlPT57aWYoZi5oYXMoZSkpcmV0dXJuIGUoYyl9KSksLi4uZy5tYXAoKGFzeW5jIGU9PntpZihoLmhhcyhlKSlyZXR1cm4gZSh0LGMpfSkpXSl9YXN5bmMgZW1pdFNlcmlhbCh0LHIpe3AodCksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiZW1pdFNlcmlhbCIsdCxyKTtjb25zdCBvPW0odGhpcyx0KSxjPWUuZ2V0KHRoaXMpLGY9Wy4uLm9dLGg9Wy4uLmNdO2F3YWl0IGE7Zm9yKGNvbnN0IGUgb2YgZilvLmhhcyhlKSYmYXdhaXQgZShyKTtmb3IoY29uc3QgZSBvZiBoKWMuaGFzKGUpJiZhd2FpdCBlKHQscil9b25BbnkodCl7cmV0dXJuIGIodCksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSxlLmdldCh0aGlzKS5hZGQodCksdGhpcy5lbWl0KGMse2xpc3RlbmVyOnR9KSx0aGlzLm9mZkFueS5iaW5kKHRoaXMsdCl9YW55RXZlbnQoKXtyZXR1cm4gRCh0aGlzKX1vZmZBbnkodCl7Yih0KSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJ1bnN1YnNjcmliZUFueSIsdm9pZCAwLHZvaWQgMCksdGhpcy5lbWl0KGYse2xpc3RlbmVyOnR9KSxlLmdldCh0aGlzKS5kZWxldGUodCl9Y2xlYXJMaXN0ZW5lcnMobyl7bz1BcnJheS5pc0FycmF5KG8pP286W29dO2Zvcihjb25zdCBhIG9mIG8paWYodGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiY2xlYXIiLGEsdm9pZCAwKSwic3RyaW5nIj09dHlwZW9mIGF8fCJzeW1ib2wiPT10eXBlb2YgYSl7bSh0aGlzLGEpLmNsZWFyKCk7Y29uc3QgZT1fKHRoaXMsYSk7Zm9yKGNvbnN0IHQgb2YgZSl0LmZpbmlzaCgpO2UuY2xlYXIoKX1lbHNle2UuZ2V0KHRoaXMpLmNsZWFyKCk7Zm9yKGNvbnN0IGUgb2YgdC5nZXQodGhpcykudmFsdWVzKCkpZS5jbGVhcigpO2Zvcihjb25zdCBlIG9mIHIuZ2V0KHRoaXMpLnZhbHVlcygpKXtmb3IoY29uc3QgdCBvZiBlKXQuZmluaXNoKCk7ZS5jbGVhcigpfX19bGlzdGVuZXJDb3VudChvKXtvPUFycmF5LmlzQXJyYXkobyk/bzpbb107bGV0IGE9MDtmb3IoY29uc3QgYyBvZiBvKWlmKCJzdHJpbmciIT10eXBlb2YgYyl7dHlwZW9mIGM8InUiJiZwKGMpLGErPWUuZ2V0KHRoaXMpLnNpemU7Zm9yKGNvbnN0IGUgb2YgdC5nZXQodGhpcykudmFsdWVzKCkpYSs9ZS5zaXplO2Zvcihjb25zdCBlIG9mIHIuZ2V0KHRoaXMpLnZhbHVlcygpKWErPWUuc2l6ZX1lbHNlIGErPWUuZ2V0KHRoaXMpLnNpemUrbSh0aGlzLGMpLnNpemUrXyh0aGlzLGMpLnNpemUrXyh0aGlzKS5zaXplO3JldHVybiBhfWJpbmRNZXRob2RzKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgdGFyZ2V0YCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9JCh0KTtmb3IoY29uc3QgciBvZiB0KXtpZih2b2lkIDAhPT1lW3JdKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtyfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiExLHZhbHVlOnRoaXNbcl0uYmluZCh0aGlzKX0pfX19Y29uc3QgdT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhkLnByb3RvdHlwZSkuZmlsdGVyKChlPT4iY29uc3RydWN0b3IiIT09ZSkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJsaXN0ZW5lckFkZGVkIix7dmFsdWU6Yyx3cml0YWJsZTohMSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJsaXN0ZW5lclJlbW92ZWQiLHt2YWx1ZTpmLHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExfSk7Y29uc3QgZz1qKGQpO2Z1bmN0aW9uIEkoZSl7cmV0dXJuIGZ1bmN0aW9uIEooZSl7aWYoZnVuY3Rpb24gcShlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYibWVzc2FnZSJpbiBlJiYic3RyaW5nIj09dHlwZW9mIGUubWVzc2FnZX0oZSkpcmV0dXJuIGU7dHJ5e3JldHVybiBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoZSkpfWNhdGNoe3JldHVybiBuZXcgRXJyb3IoU3RyaW5nKGUpKX19KGUpLm1lc3NhZ2V9dmFyIHc9T2JqZWN0LmRlZmluZVByb3BlcnR5LFo9KGUsdCxyKT0+KCgoZSx0LHIpPT57dCBpbiBlP3coZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6ZVt0XT1yfSkoZSwic3ltYm9sIiE9dHlwZW9mIHQ/dCsiIjp0LHIpLHIpO2xldCB2O2NvbnN0IEU9bmV3IFVpbnQ4QXJyYXkoMTYpO2Z1bmN0aW9uIGllKCl7aWYoIXYmJih2PXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQoY3J5cHRvKSwhdikpdGhyb3cgbmV3IEVycm9yKCJjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKCkgbm90IHN1cHBvcnRlZC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS91dWlkanMvdXVpZCNnZXRyYW5kb212YWx1ZXMtbm90LXN1cHBvcnRlZCIpO3JldHVybiB2KEUpfWNvbnN0IEE9W107Zm9yKGxldCBSZT0wO1JlPDI1NjsrK1JlKUEucHVzaCgoUmUrMjU2KS50b1N0cmluZygxNikuc2xpY2UoMSkpO2NvbnN0IFQ9e3JhbmRvbVVVSUQ6dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEJiZjcnlwdG8ucmFuZG9tVVVJRC5iaW5kKGNyeXB0byl9O2Z1bmN0aW9uIGFlKGUsdCxyKXtpZihULnJhbmRvbVVVSUQmJiF0JiYhZSlyZXR1cm4gVC5yYW5kb21VVUlEKCk7Y29uc3Qgbz0oZT1lfHx7fSkucmFuZG9tfHwoZS5ybmd8fGllKSgpO2lmKG9bNl09MTUmb1s2XXw2NCxvWzhdPTYzJm9bOF18MTI4LHQpe3I9cnx8MDtmb3IobGV0IGU9MDtlPDE2OysrZSl0W3IrZV09b1tlXTtyZXR1cm4gdH1yZXR1cm4gZnVuY3Rpb24gbmUoZSx0PTApe3JldHVybihBW2VbdCswXV0rQVtlW3QrMV1dK0FbZVt0KzJdXStBW2VbdCszXV0rIi0iK0FbZVt0KzRdXStBW2VbdCs1XV0rIi0iK0FbZVt0KzZdXStBW2VbdCs3XV0rIi0iK0FbZVt0KzhdXStBW2VbdCs5XV0rIi0iK0FbZVt0KzEwXV0rQVtlW3QrMTFdXStBW2VbdCsxMl1dK0FbZVt0KzEzXV0rQVtlW3QrMTRdXStBW2VbdCsxNV1dKS50b0xvd2VyQ2FzZSgpfShvKX1mdW5jdGlvbiBGKGUsdCl7Z2xvYmFsVGhpcy52b25hZ2V8fChnbG9iYWxUaGlzLnZvbmFnZT17fSksZ2xvYmFsVGhpcy52b25hZ2Uud29ya2VyaXplcnx8KGdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI9e30pO2xldCByPWdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI7cmV0dXJuIHJbZV18fChyW2VdPXQpLHJbZV19Y29uc3QgUz1GKCJnbG9iYWxzIix7fSk7dmFyIE49KGU9PihlLklOSVQ9IklOSVQiLGUuRk9SV0FSRD0iRk9SV0FSRCIsZS5URVJNSU5BVEU9IlRFUk1JTkFURSIsZS5HTE9CQUxTX1NZTkM9IkdMT0JBTFNfU1lOQyIsZSkpKE58fHt9KTtmdW5jdGlvbiB6KGUpe3JldHVybltJbWFnZUJpdG1hcCxSZWFkYWJsZVN0cmVhbSxXcml0YWJsZVN0cmVhbV0uc29tZSgodD0+ZSBpbnN0YW5jZW9mIHQpKX1sZXQgTz0wO2Z1bmN0aW9uIGxlKGUsdCxyLG8sYSl7Y29uc3QgYz1PKys7cmV0dXJuIGUucG9zdE1lc3NhZ2Uoe2lkOmMsdHlwZTp0LGZ1bmN0aW9uTmFtZTpyLGFyZ3M6b30sby5maWx0ZXIoKGU9PnooZSkpKSksbmV3IFByb21pc2UoKGU9PntudWxsPT1hfHxhLnNldChjLGUpfSkpfWZ1bmN0aW9uIHkoZSx0KXtjb25zdHtpZDpyLHR5cGU6b309ZSxhPUFycmF5LmlzQXJyYXkodCk/dDpbdF07cG9zdE1lc3NhZ2Uoe2lkOnIsdHlwZTpvLHJlc3VsdDp0fSxhLmZpbHRlcigoZT0+eihlKSkpKX1jb25zdCBrPUYoIndvcmtlcml6ZWQiLHt9KTtmdW5jdGlvbiBWKCl7cmV0dXJuIHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZX1mdW5jdGlvbiBQKGUsdCl7aWYoQXJyYXkuaXNBcnJheSh0KSl0LnNwbGljZSgwLHQubGVuZ3RoKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgdClmb3IoY29uc3QgciBpbiB0KWRlbGV0ZSB0W3JdO2Zvcihjb25zdCByIGluIGUpQXJyYXkuaXNBcnJheShlW3JdKT8odFtyXT1bXSxQKGVbcl0sdFtyXSkpOiJvYmplY3QiPT10eXBlb2YgZVtyXT8odFtyXT17fSxQKGVbcl0sdFtyXSkpOnRbcl09ZVtyXX1jb25zdCBSPUYoInJlZ2lzdGVyZWRXb3JrZXJzIix7fSk7ZnVuY3Rpb24gX2UoZSx0KXtyZXR1cm4gU1tlXXx8KFNbZV09dCksWygpPT5TW2VdLGFzeW5jIHQ9PntTW2VdPXQsYXdhaXQgYXN5bmMgZnVuY3Rpb24gZmUoKXtpZihWKCkpeSh7dHlwZTpOLkdMT0JBTFNfU1lOQ30sUyk7ZWxzZXtjb25zdCBlPVtdO2Zvcihjb25zdCB0IGluIGspe2NvbnN0e3dvcmtlcjpyLHJlc29sdmVyczpvfT1rW3RdLndvcmtlckNvbnRleHQ7ciYmZS5wdXNoKGxlKHIsTi5HTE9CQUxTX1NZTkMsIiIsW1NdLG8pKX1hd2FpdCBQcm9taXNlLmFsbChlKX19KCl9XX1WKCkmJmZ1bmN0aW9uIGdlKCl7Y29uc3QgZT17fTtvbm1lc3NhZ2U9YXN5bmMgdD0+e2NvbnN0IHI9dC5kYXRhO3N3aXRjaChyLnR5cGUpe2Nhc2UgTi5JTklUOiFmdW5jdGlvbiBkZShlLHQpe2lmKCFlLmFyZ3MpdGhyb3ciTWlzc2luZyBjbGFzc05hbWUgd2hpbGUgaW5pdGlhbGl6aW5nIHdvcmtlciI7Y29uc3RbcixvXT1lLmFyZ3MsYT1SW3JdO2lmKCFhKXRocm93YHVua25vd24gd29ya2VyIGNsYXNzICR7cn1gO3QuaW5zdGFuY2U9bmV3IGEoZS5hcmdzLnNsaWNlKDEpKSxQKG8sUykseShlLHZvaWQgMCE9PXR5cGVvZiB0Lmluc3RhbmNlKX0ocixlKTticmVhaztjYXNlIE4uRk9SV0FSRDohYXN5bmMgZnVuY3Rpb24gaGUoZSx0KXtjb25zdHtmdW5jdGlvbk5hbWU6cixhcmdzOm99PWU7aWYoIXQuaW5zdGFuY2UpdGhyb3ciaW5zdGFuY2Ugbm90IGluaXRpYWxpemVkIjtpZighcil0aHJvdyJtaXNzaW5nIGZ1bmN0aW9uIG5hbWUgdG8gY2FsbCI7aWYoIXQuaW5zdGFuY2Vbcl0pdGhyb3dgdW5kZWZpbmVkIGZ1bmN0aW9uIFske3J9XSBpbiBjbGFzcyAke3QuaW5zdGFuY2UuY29uc3RydWN0b3Iud29ya2VySWR9YDt5KGUsYXdhaXQgdC5pbnN0YW5jZVtyXSguLi5vPz9bXSkpfShyLGUpO2JyZWFrO2Nhc2UgTi5URVJNSU5BVEU6IWFzeW5jIGZ1bmN0aW9uIHBlKGUsdCl7Y29uc3R7YXJnczpyfT1lO2lmKCF0Lmluc3RhbmNlKXRocm93Imluc3RhbmNlIG5vdCBpbml0aWFsaXplZCI7bGV0IG87dC5pbnN0YW5jZS50ZXJtaW5hdGUmJihvPWF3YWl0IHQuaW5zdGFuY2UudGVybWluYXRlKC4uLnI/P1tdKSkseShlLG8pfShyLGUpO2JyZWFrO2Nhc2UgTi5HTE9CQUxTX1NZTkM6IWZ1bmN0aW9uIG1lKGUpe2lmKCFlLmFyZ3MpdGhyb3ciTWlzc2luZyBnbG9iYWxzIHdoaWxlIHN5bmNpbmciO1AoZS5hcmdzWzBdLFMpLHkoZSx7fSl9KHIpfX19KCk7Y29uc3RbQyxXXT1mdW5jdGlvbiB5ZShlLHQpe3JldHVybiBfZShlLHQpfSgibWV0YWRhdGEiKTtmdW5jdGlvbiB4KCl7cmV0dXJuIEMoKX1jbGFzcyBMe2NvbnN0cnVjdG9yKGUsdCl7Wih0aGlzLCJ1dWlkIiksdGhpcy5jb25maWc9ZSx0aGlzLnV1aWQ9dD8/YWUoKX1hc3luYyBzZW5kKGUpe3ZhciB0LHIsbztjb25zdHthcHBJZDphLHNvdXJjZVR5cGU6Y309bnVsbCE9KHQ9eCgpKT90Ont9O2lmKCFhfHwhYylyZXR1cm4ibWV0YWRhdGEgbWlzc2luZyI7Y29uc3QgZj1uZXcgQWJvcnRDb250cm9sbGVyLGg9c2V0VGltZW91dCgoKCk9PmYuYWJvcnQoKSksMWU0KTtyZXR1cm4gYXdhaXQobnVsbCE9KG89bnVsbD09KHI9dGhpcy5jb25maWcpP3ZvaWQgMDpyLmZldGNoKT9vOmZldGNoKSh0aGlzLmdldFVybCgpLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6dGhpcy5nZXRIZWFkZXJzKCksYm9keTpKU09OLnN0cmluZ2lmeSh0aGlzLmJ1aWxkUmVwb3J0KGUpKSxzaWduYWw6Zi5zaWduYWx9KSxjbGVhclRpbWVvdXQoaCksInN1Y2Nlc3MifWdldFVybCgpe3ZhciBlO2xldCB0PW51bGwhPShlPXgoKS5wcm94eVVybCk/ZToiaHR0cHM6Ly8iO3JldHVybiB0Kz0oIi8iPT09dC5hdCgtMSk/IiI6Ii8iKSsiaGxnLnRva2JveC5jb20vcHJvZC9sb2dnaW5nL3ZjcF93ZWJydGMiLHR9Z2V0SGVhZGVycygpe3JldHVybnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fWJ1aWxkUmVwb3J0KGUpe2NvbnN0IHQ9eCgpO3JldHVybntndWlkOnRoaXMudXVpZCwuLi5lLGFwcGxpY2F0aW9uSWQ6dC5hcHBJZCx0aW1lc3RhbXA6RGF0ZS5ub3coKSxwcm94eVVybDp0LnByb3h5VXJsLHNvdXJjZTp0LnNvdXJjZVR5cGV9fX1jb25zdCBVPSIyLjAuNCI7Y2xhc3MgVGV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmNvbmZpZz1lLHRoaXMuZnJhbWVUcmFuc2Zvcm1lZENvdW50PTAsdGhpcy5mcmFtZUZyb21Tb3VyY2VDb3VudD0wLHRoaXMuc3RhcnRBdD0wLHRoaXMucmVwb3J0ZXI9bmV3IEwoZSx0KX1hc3luYyBvbkZyYW1lRnJvbVNvdXJjZSgpe3RoaXMuZnJhbWVGcm9tU291cmNlQ291bnQrK31nZXQgZnBzKCl7Y29uc3R7c3RhcnRBdDplLGZyYW1lRnJvbVNvdXJjZUNvdW50OnR9PXRoaXM7cmV0dXJuIHQvKChEYXRlLm5vdygpLWUpLzFlMyl9YXN5bmMgb25GcmFtZVRyYW5zZm9ybWVkKGU9e30sdD0hMSl7MD09PXRoaXMuc3RhcnRBdCYmKHRoaXMuc3RhcnRBdD1EYXRlLm5vdygpKSx0aGlzLmZyYW1lVHJhbnNmb3JtZWRDb3VudCsrO2NvbnN0e3N0YXJ0QXQ6cixmcmFtZVRyYW5zZm9ybWVkQ291bnQ6byxmcmFtZUZyb21Tb3VyY2VDb3VudDphfT10aGlzLGM9RGF0ZS5ub3coKSxmPShjLXIpLzFlMyxoPW8vZix1PWEvZjtyZXR1cm4gdHx8dGhpcy5mcmFtZVRyYW5zZm9ybWVkQ291bnQ+PXRoaXMuY29uZmlnLmxvZ2dpbmdJbnRlcnZhbEZyYW1lQ291bnQ/KHRoaXMuZnJhbWVGcm9tU291cmNlQ291bnQ9MCx0aGlzLmZyYW1lVHJhbnNmb3JtZWRDb3VudD0wLHRoaXMuc3RhcnRBdD1jLHRoaXMucmVwb3J0ZXIuY29uZmlnPXRoaXMuY29uZmlnLHRoaXMucmVwb3J0ZXIuc2VuZCh7Li4udGhpcy5jb25maWcucmVwb3J0LHZhcmlhdGlvbjoiUW9TIixmcHM6dSx0cmFuc2Zvcm1lZEZwczpoLGZyYW1lc1RyYW5zZm9ybWVkOm8sLi4uZX0pKToic3VjY2VzcyJ9fXZhciBHPShlPT4oZS5waXBlbGluZV9lbmRlZD0icGlwZWxpbmVfZW5kZWQiLGUucGlwZWxpbmVfZW5kZWRfd2l0aF9lcnJvcj0icGlwZWxpbmVfZW5kZWRfd2l0aF9lcnJvciIsZS5waXBlbGluZV9zdGFydGVkPSJwaXBlbGluZV9zdGFydGVkIixlLnBpcGVsaW5lX3N0YXJ0ZWRfd2l0aF9lcnJvcj0icGlwZWxpbmVfc3RhcnRlZF93aXRoX2Vycm9yIixlLnBpcGVsaW5lX3Jlc3RhcnRlZD0icGlwZWxpbmVfcmVzdGFydGVkIixlLnBpcGVsaW5lX3Jlc3RhcnRlZF93aXRoX2Vycm9yPSJwaXBlbGluZV9yZXN0YXJ0ZWRfd2l0aF9lcnJvciIsZSkpKEd8fHt9KTtjbGFzcyBrZSBleHRlbmRzIGd7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMucmVwb3J0ZXJfPW5ldyBMLHRoaXMucmVwb3J0ZXJRb3NfPW5ldyBUZSh7bG9nZ2luZ0ludGVydmFsRnJhbWVDb3VudDo1MDAscmVwb3J0Ont2ZXJzaW9uOlV9fSksdGhpcy5pbmRleF89dCx0aGlzLnRyYW5zZm9ybWVyXz1lLHRoaXMuc2hvdWxkU3RvcF89ITEsdGhpcy5pc0ZsYXNoZWRfPSExLHRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXz0wLHRoaXMudmlkZW9IZWlnaHRfPTAsdGhpcy52aWRlb1dpZHRoXz0wLHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfPS0xLHRoaXMudHJhbnNmb3JtZXJUeXBlXz0iQ3VzdG9tIiwiZ2V0VHJhbnNmb3JtZXJUeXBlImluIGUmJih0aGlzLnRyYW5zZm9ybWVyVHlwZV89ZS5nZXRUcmFuc2Zvcm1lclR5cGUoKSksdGhpcy5yZXBvcnQoe3ZhcmlhdGlvbjoiQ3JlYXRlIn0pfXNldFRyYWNrRXhwZWN0ZWRSYXRlKGUpe3RoaXMudHJhY2tFeHBlY3RlZFJhdGVfPWV9YXN5bmMgc3RhcnQoZSl7aWYodGhpcy5jb250cm9sbGVyXz1lLHRoaXMudHJhbnNmb3JtZXJfJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy50cmFuc2Zvcm1lcl8uc3RhcnQpdHJ5e2F3YWl0IHRoaXMudHJhbnNmb3JtZXJfLnN0YXJ0KGUpfWNhdGNoKHQpe3RoaXMucmVwb3J0KHttZXNzYWdlOmwuZXJyb3JzLnRyYW5zZm9ybWVyX3N0YXJ0LHZhcmlhdGlvbjoiRXJyb3IiLGVycm9yOkkodCl9KTtjb25zdCBlPXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSxlcnJvcjp0LGZ1bmN0aW9uOiJzdGFydCJ9O3RoaXMuZW1pdCgiZXJyb3IiLGUpfX1hc3luYyB0cmFuc2Zvcm0oZSx0KXt2YXIgcixvO2lmKDA9PT10aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF8mJih0aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF89RGF0ZS5ub3coKSksZSBpbnN0YW5jZW9mIFZpZGVvRnJhbWUmJih0aGlzLnZpZGVvSGVpZ2h0Xz0obnVsbD09ZT92b2lkIDA6ZS5kaXNwbGF5SGVpZ2h0KT8/MCx0aGlzLnZpZGVvV2lkdGhfPShudWxsPT1lP3ZvaWQgMDplLmRpc3BsYXlXaWR0aCk/PzApLHRoaXMucmVwb3J0ZXJRb3NfLm9uRnJhbWVGcm9tU291cmNlKCksdGhpcy50cmFuc2Zvcm1lcl8paWYodGhpcy5zaG91bGRTdG9wXyljb25zb2xlLndhcm4oIltQaXBlbGluZV0gZmx1c2ggZnJvbSB0cmFuc2Zvcm0iKSxlLmNsb3NlKCksdGhpcy5mbHVzaCh0KSx0LnRlcm1pbmF0ZSgpO2Vsc2V7dHJ5e2F3YWl0KG51bGw9PShvPShyPXRoaXMudHJhbnNmb3JtZXJfKS50cmFuc2Zvcm0pP3ZvaWQgMDpvLmNhbGwocixlLHQpKSx0aGlzLnJlcG9ydFFvcygpfWNhdGNoKGEpe3RoaXMucmVwb3J0KHttZXNzYWdlOmwuZXJyb3JzLnRyYW5zZm9ybWVyX3RyYW5zZm9ybSx2YXJpYXRpb246IkVycm9yIixlcnJvcjpJKGEpfSk7Y29uc3QgZT17ZXZlbnRNZXRhRGF0YTp7dHJhbnNmb3JtZXJJbmRleDp0aGlzLmluZGV4X30sZXJyb3I6YSxmdW5jdGlvbjoidHJhbnNmb3JtIn07dGhpcy5lbWl0KCJlcnJvciIsZSl9aWYoLTEhPXRoaXMudHJhY2tFeHBlY3RlZFJhdGVfJiYuOCp0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz50aGlzLnJlcG9ydGVyUW9zXy5mcHMpe2NvbnN0IGU9e2V2ZW50TWV0YURhdGE6e3RyYW5zZm9ybWVySW5kZXg6dGhpcy5pbmRleF99LHdhcm5pbmdUeXBlOiJmcHNfZHJvcCIsZHJvcEluZm86e3JlcXVlc3RlZDp0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyxjdXJyZW50OnRoaXMucmVwb3J0ZXJRb3NfLmZwc319O3RoaXMuZW1pdCgid2FybiIsZSl9fX1hc3luYyBmbHVzaChlKXtpZih0aGlzLnRyYW5zZm9ybWVyXyYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMudHJhbnNmb3JtZXJfLmZsdXNoJiYhdGhpcy5pc0ZsYXNoZWRfKXt0aGlzLmlzRmxhc2hlZF89ITA7dHJ5e2F3YWl0IHRoaXMudHJhbnNmb3JtZXJfLmZsdXNoKGUpfWNhdGNoKHQpe3RoaXMucmVwb3J0KHttZXNzYWdlOmwuZXJyb3JzLnRyYW5zZm9ybWVyX2ZsdXNoLHZhcmlhdGlvbjoiRXJyb3IiLGVycm9yOkkodCl9KTtjb25zdCBlPXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSxlcnJvcjp0LGZ1bmN0aW9uOiJmbHVzaCJ9O3RoaXMuZW1pdCgiZXJyb3IiLGUpfX10aGlzLnJlcG9ydFFvcyghMCksdGhpcy5yZXBvcnQoe3ZhcmlhdGlvbjoiRGVsZXRlIn0pfXN0b3AoKXtjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBTdG9wIHN0cmVhbS4iKSx0aGlzLmNvbnRyb2xsZXJfJiYodGhpcy5mbHVzaCh0aGlzLmNvbnRyb2xsZXJfKSx0aGlzLmNvbnRyb2xsZXJfLnRlcm1pbmF0ZSgpKSx0aGlzLnNob3VsZFN0b3BfPSEwfXJlcG9ydChlKXt0aGlzLnJlcG9ydGVyXy5zZW5kKHt2ZXJzaW9uOlUsYWN0aW9uOiJNZWRpYVRyYW5zZm9ybWVyIix0cmFuc2Zvcm1lclR5cGU6dGhpcy50cmFuc2Zvcm1lclR5cGVfLC4uLmV9KX1yZXBvcnRRb3MoZT0hMSl7dGhpcy5yZXBvcnRlclFvc18uY29uZmlnPXsuLi50aGlzLnJlcG9ydGVyUW9zXy5jb25maWd9LHRoaXMucmVwb3J0ZXJRb3NfLm9uRnJhbWVUcmFuc2Zvcm1lZCh7dmVyc2lvbjpVLGFjdGlvbjoiTWVkaWFUcmFuc2Zvcm1lciIsdHJhbnNmb3JtZXJUeXBlOnRoaXMudHJhbnNmb3JtZXJUeXBlXyx2aWRlb1dpZHRoOnRoaXMudmlkZW9XaWR0aF8sdmlkZW9IZWlnaHQ6dGhpcy52aWRlb0hlaWdodF99LGUpfX1jbGFzcyBBZSBleHRlbmRzIGd7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnRyYW5zZm9ybWVyc189W10sdGhpcy50cmFja0V4cGVjdGVkUmF0ZV89LTE7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2xldCByPW5ldyBrZShlW3RdLHQpO3Iub24oImVycm9yIiwoZT0+e3RoaXMuZW1pdCgiZXJyb3IiLGUpfSkpLHIub24oIndhcm4iLChlPT57dGhpcy5lbWl0KCJ3YXJuIixlKX0pKSx0aGlzLnRyYW5zZm9ybWVyc18ucHVzaChyKX19c2V0VHJhY2tFeHBlY3RlZFJhdGUoZSl7dGhpcy50cmFja0V4cGVjdGVkUmF0ZV89ZTtmb3IobGV0IHQgb2YgdGhpcy50cmFuc2Zvcm1lcnNfKXQuc2V0VHJhY2tFeHBlY3RlZFJhdGUodGhpcy50cmFja0V4cGVjdGVkUmF0ZV8pfWFzeW5jIHN0YXJ0KGUsdCl7aWYodGhpcy50cmFuc2Zvcm1lcnNfJiYwIT09dGhpcy50cmFuc2Zvcm1lcnNfLmxlbmd0aCl7dHJ5e2xldCByPWU7Zm9yKGxldCB0IG9mIHRoaXMudHJhbnNmb3JtZXJzXyllPWUucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSh0KSk7ZS5waXBlVG8odCkudGhlbigoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJbUGlwZWxpbmVdIFNldHVwLiIpLGF3YWl0IHQuYWJvcnQoKSxhd2FpdCByLmNhbmNlbCgpLHRoaXMuZW1pdCgicGlwZWxpbmVJbmZvIiwicGlwZWxpbmVfZW5kZWQiKX0pKS5jYXRjaCgoYXN5bmMgbz0+e2UuY2FuY2VsKCkudGhlbigoKCk9Pntjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBTaHV0dGluZyBkb3duIHN0cmVhbXMgYWZ0ZXIgYWJvcnQuIil9KSkuY2F0Y2goKGU9Pntjb25zb2xlLmVycm9yKCJbUGlwZWxpbmVdIEVycm9yIGZyb20gc3RyZWFtIHRyYW5zZm9ybToiLGUpfSkpLGF3YWl0IHQuYWJvcnQobyksYXdhaXQgci5jYW5jZWwobyksdGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLCJwaXBlbGluZV9lbmRlZF93aXRoX2Vycm9yIil9KSl9Y2F0Y2h7cmV0dXJuIHRoaXMuZW1pdCgicGlwZWxpbmVJbmZvIiwicGlwZWxpbmVfc3RhcnRlZF93aXRoX2Vycm9yIiksdm9pZCB0aGlzLmRlc3Ryb3koKX10aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIsInBpcGVsaW5lX3N0YXJ0ZWQiKSxjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBQaXBlbGluZSBzdGFydGVkLiIpfWVsc2UgY29uc29sZS5sb2coIltQaXBlbGluZV0gTm8gdHJhbnNmb3JtZXJzLiIpfWFzeW5jIGRlc3Ryb3koKXtjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBEZXN0cm95aW5nIFBpcGVsaW5lLiIpO2ZvcihsZXQgZSBvZiB0aGlzLnRyYW5zZm9ybWVyc18pZS5zdG9wKCl9fWNsYXNzIENlIGV4dGVuZHMgZ3tjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5yZXBvcnRlcl89bmV3IEwsdGhpcy50cmFja0V4cGVjdGVkUmF0ZV89LTEsdGhpcy5yZXBvcnQoe3ZhcmlhdGlvbjoiQ3JlYXRlIn0pfXNldFRyYWNrRXhwZWN0ZWRSYXRlKGUpe3RoaXMudHJhY2tFeHBlY3RlZFJhdGVfPWUsdGhpcy5waXBlbGluZV8mJnRoaXMucGlwZWxpbmVfLnNldFRyYWNrRXhwZWN0ZWRSYXRlKHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfKX10cmFuc2Zvcm0oZSx0KXtyZXR1cm4gdGhpcy5yZWFkYWJsZV89ZSx0aGlzLndyaXRhYmxlXz10LHRoaXMudHJhbnNmb3JtSW50ZXJuYWwoKX10cmFuc2Zvcm1JbnRlcm5hbCgpe3JldHVybiBuZXcgUHJvbWlzZSgoYXN5bmMoZSx0KT0+e2lmKCF0aGlzLnRyYW5zZm9ybWVyc198fDA9PT10aGlzLnRyYW5zZm9ybWVyc18ubGVuZ3RoKXJldHVybiB0aGlzLnJlcG9ydCh7bWVzc2FnZTpsLmVycm9ycy50cmFuc2Zvcm1lcl9ub25lLHZhcmlhdGlvbjoiRXJyb3IifSksdm9pZCB0KCJbTWVkaWFQcm9jZXNzb3JdIE5lZWQgdG8gc2V0IHRyYW5zZm9ybWVycy4iKTtpZighdGhpcy5yZWFkYWJsZV8pcmV0dXJuIHRoaXMucmVwb3J0KHt2YXJpYXRpb246IkVycm9yIixtZXNzYWdlOmwuZXJyb3JzLnJlYWRhYmxlX251bGx9KSx2b2lkIHQoIltNZWRpYVByb2Nlc3Nvcl0gUmVhZGFibGUgaXMgbnVsbC4iKTtpZighdGhpcy53cml0YWJsZV8pcmV0dXJuIHRoaXMucmVwb3J0KHt2YXJpYXRpb246IkVycm9yIixtZXNzYWdlOmwuZXJyb3JzLndyaXRhYmxlX251bGx9KSx2b2lkIHQoIltNZWRpYVByb2Nlc3Nvcl0gV3JpdGFibGUgaXMgbnVsbC4iKTtsZXQgcj0hMTt0aGlzLnBpcGVsaW5lXyYmKHI9ITAsdGhpcy5waXBlbGluZV8uY2xlYXJMaXN0ZW5lcnMoKSx0aGlzLnBpcGVsaW5lXy5kZXN0cm95KCkpLHRoaXMucGlwZWxpbmVfPW5ldyBBZSh0aGlzLnRyYW5zZm9ybWVyc18pLHRoaXMucGlwZWxpbmVfLm9uKCJ3YXJuIiwoZT0+e3RoaXMuZW1pdCgid2FybiIsZSl9KSksdGhpcy5waXBlbGluZV8ub24oImVycm9yIiwoZT0+e3RoaXMuZW1pdCgiZXJyb3IiLGUpfSkpLHRoaXMucGlwZWxpbmVfLm9uKCJwaXBlbGluZUluZm8iLChlPT57ciYmKCJwaXBlbGluZV9zdGFydGVkIj09PWU/ZT1HLnBpcGVsaW5lX3Jlc3RhcnRlZDoicGlwZWxpbmVfc3RhcnRlZF93aXRoX2Vycm9yIj09PWUmJihlPUcucGlwZWxpbmVfcmVzdGFydGVkX3dpdGhfZXJyb3IpKSx0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIsZSl9KSksLTEhPXRoaXMudHJhY2tFeHBlY3RlZFJhdGVfJiZ0aGlzLnBpcGVsaW5lXy5zZXRUcmFja0V4cGVjdGVkUmF0ZSh0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyksdGhpcy5waXBlbGluZV8uc3RhcnQodGhpcy5yZWFkYWJsZV8sdGhpcy53cml0YWJsZV8pLnRoZW4oKCgpPT57ZSgpfSkpLmNhdGNoKChlPT57dChlKX0pKX0pKX1zZXRUcmFuc2Zvcm1lcnMoZSl7cmV0dXJuIHRoaXMucmVwb3J0KHt2YXJpYXRpb246IlVwZGF0ZSIsbWVzc2FnZTpsLnVwZGF0ZXMudHJhbnNmb3JtZXJfbmV3fSksdGhpcy50cmFuc2Zvcm1lcnNfPWUsdGhpcy5yZWFkYWJsZV8mJnRoaXMud3JpdGFibGVfP3RoaXMudHJhbnNmb3JtSW50ZXJuYWwoKTpQcm9taXNlLnJlc29sdmUoKX1kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKChhc3luYyBlPT57dGhpcy5waXBlbGluZV8mJnRoaXMucGlwZWxpbmVfLmRlc3Ryb3koKSx0aGlzLnJlcG9ydCh7dmFyaWF0aW9uOiJEZWxldGUifSksZSgpfSkpfXJlcG9ydChlKXt0aGlzLnJlcG9ydGVyXy5zZW5kKHt2ZXJzaW9uOlUsYWN0aW9uOiJNZWRpYVByb2Nlc3NvciIsLi4uZX0pfX1jb25zdCBRPW5ldyBXZWFrTWFwLEg9bmV3IFdlYWtNYXAsWT1uZXcgV2Vha01hcCxLPVN5bWJvbCgiYW55UHJvZHVjZXIiKSxYPVByb21pc2UucmVzb2x2ZSgpLGVlPVN5bWJvbCgibGlzdGVuZXJBZGRlZCIpLHRlPVN5bWJvbCgibGlzdGVuZXJSZW1vdmVkIik7bGV0IHJlPSExLHNlPSExO2Z1bmN0aW9uIGFzc2VydEV2ZW50TmFtZSQxKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSYmInN5bWJvbCIhPXR5cGVvZiBlJiYibnVtYmVyIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYGV2ZW50TmFtZWAgbXVzdCBiZSBhIHN0cmluZywgc3ltYm9sLCBvciBudW1iZXIiKX1mdW5jdGlvbiBhc3NlcnRMaXN0ZW5lciQxKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGdldExpc3RlbmVycyQxKGUsdCl7Y29uc3Qgcj1ILmdldChlKTtpZihyLmhhcyh0KSlyZXR1cm4gci5nZXQodCl9ZnVuY3Rpb24gZ2V0RXZlbnRQcm9kdWNlcnMkMShlLHQpe2NvbnN0IHI9InN0cmluZyI9PXR5cGVvZiB0fHwic3ltYm9sIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdD90Okssbz1ZLmdldChlKTtpZihvLmhhcyhyKSlyZXR1cm4gby5nZXQocil9ZnVuY3Rpb24gaXRlcmF0b3IkMShlLHQpe3Q9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtsZXQgcj0hMSxmbHVzaD0oKT0+e30sbz1bXTtjb25zdCBhPXtlbnF1ZXVlKGUpe28ucHVzaChlKSxmbHVzaCgpfSxmaW5pc2goKXtyPSEwLGZsdXNoKCl9fTtmb3IoY29uc3QgYyBvZiB0KXtsZXQgdD1nZXRFdmVudFByb2R1Y2VycyQxKGUsYyk7aWYoIXQpe3Q9bmV3IFNldDtZLmdldChlKS5zZXQoYyx0KX10LmFkZChhKX1yZXR1cm57YXN5bmMgbmV4dCgpe3JldHVybiBvPzA9PT1vLmxlbmd0aD9yPyhvPXZvaWQgMCx0aGlzLm5leHQoKSk6KGF3YWl0IG5ldyBQcm9taXNlKChlPT57Zmx1c2g9ZX0pKSx0aGlzLm5leHQoKSk6e2RvbmU6ITEsdmFsdWU6YXdhaXQgby5zaGlmdCgpfTp7ZG9uZTohMH19LGFzeW5jIHJldHVybihyKXtvPXZvaWQgMDtmb3IoY29uc3QgbyBvZiB0KXtjb25zdCB0PWdldEV2ZW50UHJvZHVjZXJzJDEoZSxvKTtpZih0JiYodC5kZWxldGUoYSksMD09PXQuc2l6ZSkpe1kuZ2V0KGUpLmRlbGV0ZShvKX19cmV0dXJuIGZsdXNoKCksYXJndW1lbnRzLmxlbmd0aD4wP3tkb25lOiEwLHZhbHVlOmF3YWl0IHJ9Ontkb25lOiEwfX0sW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpe3JldHVybiB0aGlzfX19ZnVuY3Rpb24gZGVmYXVsdE1ldGhvZE5hbWVzT3JBc3NlcnQkMShlKXtpZih2b2lkIDA9PT1lKXJldHVybiBjZTtpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyIpO2Zvcihjb25zdCB0IG9mIGUpaWYoIWNlLmluY2x1ZGVzKHQpKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiYG1ldGhvZE5hbWVzYCBlbGVtZW50IG11c3QgYmUgYSBzdHJpbmciKTt0aHJvdyBuZXcgRXJyb3IoYCR7dH0gaXMgbm90IEVtaXR0ZXJ5IG1ldGhvZGApfXJldHVybiBlfWNvbnN0IGlzTWV0YUV2ZW50JDE9ZT0+ZT09PWVlfHxlPT09dGU7ZnVuY3Rpb24gZW1pdE1ldGFFdmVudCQxKGUsdCxyKXtpZihpc01ldGFFdmVudCQxKHQpKXRyeXtyZT0hMCxlLmVtaXQodCxyKX1maW5hbGx5e3JlPSExfX1sZXQgb2U9Y2xhc3MgRW1pdHRlcnkye3N0YXRpYyBtaXhpbihlLHQpe3JldHVybiB0PWRlZmF1bHRNZXRob2ROYW1lc09yQXNzZXJ0JDEodCkscj0+e2lmKCJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgZnVuY3Rpb24iKTtmb3IoY29uc3QgZSBvZiB0KWlmKHZvaWQgMCE9PXIucHJvdG90eXBlW2VdKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtlfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoci5wcm90b3R5cGUsZSx7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0RW1pdHRlcnlQcm9wZXJ0eSgpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxlLHtlbnVtZXJhYmxlOiExLHZhbHVlOm5ldyBFbWl0dGVyeTJ9KSx0aGlzW2VdfX0pO2NvbnN0IGVtaXR0ZXJ5TWV0aG9kQ2FsbGVyPXQ9PmZ1bmN0aW9uKC4uLnIpe3JldHVybiB0aGlzW2VdW3RdKC4uLnIpfTtmb3IoY29uc3QgZSBvZiB0KU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLnByb3RvdHlwZSxlLHtlbnVtZXJhYmxlOiExLHZhbHVlOmVtaXR0ZXJ5TWV0aG9kQ2FsbGVyKGUpfSk7cmV0dXJuIHJ9fXN0YXRpYyBnZXQgaXNEZWJ1Z0VuYWJsZWQoKXtpZigib2JqZWN0IiE9dHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcz8uZW52KXJldHVybiBzZTtjb25zdHtlbnY6ZX09Z2xvYmFsVGhpcy5wcm9jZXNzPz97ZW52Ont9fTtyZXR1cm4iZW1pdHRlcnkiPT09ZS5ERUJVR3x8IioiPT09ZS5ERUJVR3x8c2V9c3RhdGljIHNldCBpc0RlYnVnRW5hYmxlZChlKXtzZT1lfWNvbnN0cnVjdG9yKGU9e30pe1Euc2V0KHRoaXMsbmV3IFNldCksSC5zZXQodGhpcyxuZXcgTWFwKSxZLnNldCh0aGlzLG5ldyBNYXApLFkuZ2V0KHRoaXMpLnNldChLLG5ldyBTZXQpLHRoaXMuZGVidWc9ZS5kZWJ1Zz8/e30sdm9pZCAwPT09dGhpcy5kZWJ1Zy5lbmFibGVkJiYodGhpcy5kZWJ1Zy5lbmFibGVkPSExKSx0aGlzLmRlYnVnLmxvZ2dlcnx8KHRoaXMuZGVidWcubG9nZ2VyPShlLHQscixvKT0+e3RyeXtvPUpTT04uc3RyaW5naWZ5KG8pfWNhdGNoe289YE9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcga2V5cyBmYWlsZWQgdG8gc3RyaW5naWZ5OiAke09iamVjdC5rZXlzKG8pLmpvaW4oIiwiKX1gfSJzeW1ib2wiIT10eXBlb2YgciYmIm51bWJlciIhPXR5cGVvZiByfHwocj1yLnRvU3RyaW5nKCkpO2NvbnN0IGE9bmV3IERhdGUsYz1gJHthLmdldEhvdXJzKCl9OiR7YS5nZXRNaW51dGVzKCl9OiR7YS5nZXRTZWNvbmRzKCl9LiR7YS5nZXRNaWxsaXNlY29uZHMoKX1gO2NvbnNvbGUubG9nKGBbJHtjfV1bZW1pdHRlcnk6JHtlfV1bJHt0fV0gRXZlbnQgTmFtZTogJHtyfVxuXHRkYXRhOiAke299YCl9KX1sb2dJZkRlYnVnRW5hYmxlZChlLHQscil7KEVtaXR0ZXJ5Mi5pc0RlYnVnRW5hYmxlZHx8dGhpcy5kZWJ1Zy5lbmFibGVkKSYmdGhpcy5kZWJ1Zy5sb2dnZXIoZSx0aGlzLmRlYnVnLm5hbWUsdCxyKX1vbihlLHQpe2Fzc2VydExpc3RlbmVyJDEodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCByIG9mIGUpe2Fzc2VydEV2ZW50TmFtZSQxKHIpO2xldCBlPWdldExpc3RlbmVycyQxKHRoaXMscik7aWYoIWUpe2U9bmV3IFNldDtILmdldCh0aGlzKS5zZXQocixlKX1lLmFkZCh0KSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJzdWJzY3JpYmUiLHIsdm9pZCAwKSxpc01ldGFFdmVudCQxKHIpfHxlbWl0TWV0YUV2ZW50JDEodGhpcyxlZSx7ZXZlbnROYW1lOnIsbGlzdGVuZXI6dH0pfXJldHVybiB0aGlzLm9mZi5iaW5kKHRoaXMsZSx0KX1vZmYoZSx0KXthc3NlcnRMaXN0ZW5lciQxKHQpLGU9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgciBvZiBlKXthc3NlcnRFdmVudE5hbWUkMShyKTtjb25zdCBlPWdldExpc3RlbmVycyQxKHRoaXMscik7aWYoZSYmKGUuZGVsZXRlKHQpLDA9PT1lLnNpemUpKXtILmdldCh0aGlzKS5kZWxldGUocil9dGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgidW5zdWJzY3JpYmUiLHIsdm9pZCAwKSxpc01ldGFFdmVudCQxKHIpfHxlbWl0TWV0YUV2ZW50JDEodGhpcyx0ZSx7ZXZlbnROYW1lOnIsbGlzdGVuZXI6dH0pfX1vbmNlKGUpe2xldCB0O2NvbnN0IHI9bmV3IFByb21pc2UoKHI9Pnt0PXRoaXMub24oZSwoZT0+e3QoKSxyKGUpfSkpfSkpO3JldHVybiByLm9mZj10LHJ9ZXZlbnRzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKWFzc2VydEV2ZW50TmFtZSQxKHQpO3JldHVybiBpdGVyYXRvciQxKHRoaXMsZSl9YXN5bmMgZW1pdChlLHQpe2lmKGFzc2VydEV2ZW50TmFtZSQxKGUpLGlzTWV0YUV2ZW50JDEoZSkmJiFyZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgZXZlbnROYW1lYCBjYW5ub3QgYmUgbWV0YSBldmVudCBgbGlzdGVuZXJBZGRlZGAgb3IgYGxpc3RlbmVyUmVtb3ZlZGAiKTt0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0IixlLHQpLGZ1bmN0aW9uIGVucXVldWVQcm9kdWNlcnMkMShlLHQscil7Y29uc3Qgbz1ZLmdldChlKTtpZihvLmhhcyh0KSlmb3IoY29uc3QgYSBvZiBvLmdldCh0KSlhLmVucXVldWUocik7aWYoby5oYXMoSykpe2NvbnN0IGU9UHJvbWlzZS5hbGwoW3Qscl0pO2Zvcihjb25zdCB0IG9mIG8uZ2V0KEspKXQuZW5xdWV1ZShlKX19KHRoaXMsZSx0KTtjb25zdCByPWdldExpc3RlbmVycyQxKHRoaXMsZSk/P25ldyBTZXQsbz1RLmdldCh0aGlzKSxhPVsuLi5yXSxjPWlzTWV0YUV2ZW50JDEoZSk/W106Wy4uLm9dO2F3YWl0IFgsYXdhaXQgUHJvbWlzZS5hbGwoWy4uLmEubWFwKChhc3luYyBlPT57aWYoci5oYXMoZSkpcmV0dXJuIGUodCl9KSksLi4uYy5tYXAoKGFzeW5jIHI9PntpZihvLmhhcyhyKSlyZXR1cm4gcihlLHQpfSkpXSl9YXN5bmMgZW1pdFNlcmlhbChlLHQpe2lmKGFzc2VydEV2ZW50TmFtZSQxKGUpLGlzTWV0YUV2ZW50JDEoZSkmJiFyZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgZXZlbnROYW1lYCBjYW5ub3QgYmUgbWV0YSBldmVudCBgbGlzdGVuZXJBZGRlZGAgb3IgYGxpc3RlbmVyUmVtb3ZlZGAiKTt0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0U2VyaWFsIixlLHQpO2NvbnN0IHI9Z2V0TGlzdGVuZXJzJDEodGhpcyxlKT8/bmV3IFNldCxvPVEuZ2V0KHRoaXMpLGE9Wy4uLnJdLGM9Wy4uLm9dO2F3YWl0IFg7Zm9yKGNvbnN0IGYgb2YgYSlyLmhhcyhmKSYmYXdhaXQgZih0KTtmb3IoY29uc3QgZiBvZiBjKW8uaGFzKGYpJiZhd2FpdCBmKGUsdCl9b25BbnkoZSl7cmV0dXJuIGFzc2VydExpc3RlbmVyJDEoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSxRLmdldCh0aGlzKS5hZGQoZSksZW1pdE1ldGFFdmVudCQxKHRoaXMsZWUse2xpc3RlbmVyOmV9KSx0aGlzLm9mZkFueS5iaW5kKHRoaXMsZSl9YW55RXZlbnQoKXtyZXR1cm4gaXRlcmF0b3IkMSh0aGlzKX1vZmZBbnkoZSl7YXNzZXJ0TGlzdGVuZXIkMShlKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJ1bnN1YnNjcmliZUFueSIsdm9pZCAwLHZvaWQgMCksZW1pdE1ldGFFdmVudCQxKHRoaXMsdGUse2xpc3RlbmVyOmV9KSxRLmdldCh0aGlzKS5kZWxldGUoZSl9Y2xlYXJMaXN0ZW5lcnMoZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCB0IG9mIGUpaWYodGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiY2xlYXIiLHQsdm9pZCAwKSwic3RyaW5nIj09dHlwZW9mIHR8fCJzeW1ib2wiPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0KXtjb25zdCBlPWdldExpc3RlbmVycyQxKHRoaXMsdCk7ZSYmZS5jbGVhcigpO2NvbnN0IHI9Z2V0RXZlbnRQcm9kdWNlcnMkMSh0aGlzLHQpO2lmKHIpe2Zvcihjb25zdCBlIG9mIHIpZS5maW5pc2goKTtyLmNsZWFyKCl9fWVsc2V7US5nZXQodGhpcykuY2xlYXIoKTtmb3IoY29uc3RbZSx0XW9mIEguZ2V0KHRoaXMpLmVudHJpZXMoKSl0LmNsZWFyKCksSC5nZXQodGhpcykuZGVsZXRlKGUpO2Zvcihjb25zdFtlLHRdb2YgWS5nZXQodGhpcykuZW50cmllcygpKXtmb3IoY29uc3QgZSBvZiB0KWUuZmluaXNoKCk7dC5jbGVhcigpLFkuZ2V0KHRoaXMpLmRlbGV0ZShlKX19fWxpc3RlbmVyQ291bnQoZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2xldCB0PTA7Zm9yKGNvbnN0IHIgb2YgZSlpZigic3RyaW5nIiE9dHlwZW9mIHIpe3ZvaWQgMCE9PXImJmFzc2VydEV2ZW50TmFtZSQxKHIpLHQrPVEuZ2V0KHRoaXMpLnNpemU7Zm9yKGNvbnN0IGUgb2YgSC5nZXQodGhpcykudmFsdWVzKCkpdCs9ZS5zaXplO2Zvcihjb25zdCBlIG9mIFkuZ2V0KHRoaXMpLnZhbHVlcygpKXQrPWUuc2l6ZX1lbHNlIHQrPVEuZ2V0KHRoaXMpLnNpemUrKGdldExpc3RlbmVycyQxKHRoaXMscik/LnNpemU/PzApKyhnZXRFdmVudFByb2R1Y2VycyQxKHRoaXMscik/LnNpemU/PzApKyhnZXRFdmVudFByb2R1Y2VycyQxKHRoaXMpPy5zaXplPz8wKTtyZXR1cm4gdH1iaW5kTWV0aG9kcyhlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBhbiBvYmplY3QiKTt0PWRlZmF1bHRNZXRob2ROYW1lc09yQXNzZXJ0JDEodCk7Zm9yKGNvbnN0IHIgb2YgdCl7aWYodm9pZCAwIT09ZVtyXSl0aHJvdyBuZXcgRXJyb3IoYFRoZSBwcm9wZXJ0eSBcYCR7cn1cYCBhbHJlYWR5IGV4aXN0cyBvbiBcYHRhcmdldFxgYCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMSx2YWx1ZTp0aGlzW3JdLmJpbmQodGhpcyl9KX19fTtjb25zdCBjZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvZS5wcm90b3R5cGUpLmZpbHRlcigoZT0+ImNvbnN0cnVjdG9yIiE9PWUpKTtPYmplY3QuZGVmaW5lUHJvcGVydHkob2UsImxpc3RlbmVyQWRkZWQiLHt2YWx1ZTplZSx3cml0YWJsZTohMSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvZSwibGlzdGVuZXJSZW1vdmVkIix7dmFsdWU6dGUsd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KTtjbGFzcyBBdmVyYWdle2NvbnN0cnVjdG9yKGUpe3RoaXMuc2l6ZT1lLHRoaXMudmFsdWVzPVtdLHRoaXMuc3VtPTB9cHVzaChlKXtmb3IodGhpcy52YWx1ZXMucHVzaChlKSx0aGlzLnN1bSs9ZTt0aGlzLnNpemU8dGhpcy52YWx1ZXMubGVuZ3RoOyl0aGlzLnN1bS09dGhpcy52YWx1ZXMuc2hpZnQoKT8/MH12YWx1ZSgpe3JldHVybiB0aGlzLnN1bS9NYXRoLm1heCgxLHRoaXMudmFsdWVzLmxlbmd0aCl9fWNsYXNzIE5vaXNlU3VwcHJlc3Npb25UcmFuc2Zvcm1lciBleHRlbmRzIG9le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmlzRW5hYmxlZD0hMCx0aGlzLmludGVybmFsUmVzYW1wbGVTdXBwb3J0ZWQ9ITEsdGhpcy5sYXRlbmN5PW5ldyBBdmVyYWdlKDEwMCksdGhpcy50cmFuc2Zvcm09dGhpcy50cmFuc2Zvcm1BdWRpb0RhdGEuYmluZCh0aGlzKX1hc3luYyBpbml0KGU9e30pe2NvbnNvbGUubG9nKCJOb2lzZSBzdXBwcmVzc2lvbiB0cmFuc2Zvcm1lciBpbml0aWFsaXphdGlvbiIpLHRoaXMudHJhbnNmb3JtPWUuZGVidWc/dGhpcy50cmFuc2Zvcm1EZWJ1Zy5iaW5kKHRoaXMpOnRoaXMudHJhbnNmb3JtQXVkaW9EYXRhLmJpbmQodGhpcyk7Y29uc3QgdD1lLmFzc2V0c0RpckJhc2VVcmw/PyJodHRwczovL2Qzb3Bxam1xenhmMDU3LmNsb3VkZnJvbnQubmV0L25vaXNlLXN1cHByZXNzaW9uLzEuMC4wIixsb2NhdGVGaWxlPWU9PmAke3R9LyR7ZX1gO2xldCByLG89MTthd2FpdCB0aGlzLmlzTW9ub1RocmVhZChlKT90aGlzLndhc21JbnN0YW5jZT1hd2FpdCBjcmVhdGVXYXNtTW9ub0luc3RhbmNlKHtsb2NhdGVGaWxlOmxvY2F0ZUZpbGUsbWFpblNjcmlwdFVybE9yQmxvYjpsb2NhdGVGaWxlKCJtYWluLWJpbi1tb25vLmpzIil9KToodGhpcy53YXNtSW5zdGFuY2U9YXdhaXQgY3JlYXRlV2FzbU11bHRpSW5zdGFuY2Uoe2xvY2F0ZUZpbGU6bG9jYXRlRmlsZSxtYWluU2NyaXB0VXJsT3JCbG9iOmxvY2F0ZUZpbGUoIm1haW4tYmluLW11bHRpLmpzIil9KSxvPTQpLHRoaXMud2FzbVRyYW5zZm9ybWVyPW5ldyB0aGlzLndhc21JbnN0YW5jZS5EdGxuVHJhbnNmb3JtZXIsYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZE1vZGVsKGAke3R9L21vZGVsXzEudGZsaXRlYCwxKSx0aGlzLmxvYWRNb2RlbChgJHt0fS9tb2RlbF8yLnRmbGl0ZWAsMildKTt0cnl7cj1hd2FpdCh0aGlzLndhc21UcmFuc2Zvcm1lcj8uaW5pdChvKSl9Y2F0Y2goYSl7aWYoIm51bWJlciI9PXR5cGVvZiBhKXtsZXQgZT0iIjtmb3IobGV0IHQ9MDt0PDUwMDsrK3QpZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLndhc21JbnN0YW5jZS5IRUFQOFthK3RdKTtjb25zb2xlLmVycm9yKGUpfWVsc2UgY29uc29sZS5lcnJvcihhKX1pZigwIT09cil7Y29uc3QgZT1gRmFpbCB0byBpbml0IHdhc20gdHJhbnNmb3JtZXIsIGVycm9yIGNvZGUgPSAke3J9YDt0aHJvdyBjb25zb2xlLmVycm9yKGUpLGV9aWYodGhpcy5pbnRlcm5hbFJlc2FtcGxlU3VwcG9ydGVkPXRoaXMud2FzbVRyYW5zZm9ybWVyPy5nZXRJbnRlcm5hbFJlc2FtcGxlU3VwcG9ydGVkKCksIXRoaXMuaW50ZXJuYWxSZXNhbXBsZVN1cHBvcnRlZCl7Y29uc3QgZT0iSW50ZXJuYWwgcmVzYW1wbGluZyBub3Qgc3VwcG9ydGVkIjt0aHJvdyBjb25zb2xlLmVycm9yKGUpLGV9ZS5kZWJ1ZyYmdGhpcy53YXNtVHJhbnNmb3JtZXI/LmVuYWJsZVdhdkV4cG9ydCgpLGNvbnNvbGUubG9nKCJOb2lzZSBzdXBwcmVzc2lvbiB0cmFuc2Zvcm1lciByZWFkeSIpfWdldFdhdigpe2lmKCF0aGlzLndhc21UcmFuc2Zvcm1lcilyZXR1cm4iIjt0aGlzLndhc21UcmFuc2Zvcm1lci5jbG9zZVdhdigpO2NvbnN0IGU9dGhpcy53YXNtVHJhbnNmb3JtZXIuZ2V0V2F2KCk7cmV0dXJuYGRhdGE6YXVkaW8vd2F2O2Jhc2U2NCwke2J0b2EobmV3IFVpbnQ4QXJyYXkoZSkucmVkdWNlKCgoZSx0KT0+ZStTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKSwiIikpfWB9c2V0QXVkaW9PcHRpb25zKGUsdCxyLG8sYSl7dGhpcy53YXNtVHJhbnNmb3JtZXI/LnNldEF1ZGlvT3B0aW9ucyhlLHQscixvLGEpfWVuYWJsZSgpe3RoaXMuaXNFbmFibGVkPSEwfWRpc2FibGUoKXt0aGlzLmlzRW5hYmxlZD0hMX1nZXRMYXRlbmN5KCl7cmV0dXJuIHRoaXMubGF0ZW5jeS52YWx1ZSgpfWdldFdhc21MYXRlbmN5TnMoKXtyZXR1cm4gdGhpcy53YXNtVHJhbnNmb3JtZXI/LmdldExhdGVuY3lOcygpPz8wfWFzeW5jIHRyYW5zZm9ybURlYnVnKGUsdCl7dHJ5e2NvbnN0IHI9cGVyZm9ybWFuY2Uubm93KCk7YXdhaXQgdGhpcy50cmFuc2Zvcm1BdWRpb0RhdGEoZSx0KSx0aGlzLmxhdGVuY3kucHVzaChwZXJmb3JtYW5jZS5ub3coKS1yKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKHIpfX1hc3luYyB0cmFuc2Zvcm1BdWRpb0RhdGEoZSx0KXtpZih0aGlzLndhc21UcmFuc2Zvcm1lcnx8dGhpcy5lbWl0KCJ3YXJuaW5nIiwidHJhbnNmb3JtZXIgbm90IGluaXRpYWxpemVkIiksdGhpcy5pc0VuYWJsZWQmJnRoaXMud2FzbVRyYW5zZm9ybWVyKXRyeXtjb25zdHtudW1iZXJPZkZyYW1lczp0LHNhbXBsZVJhdGU6byxudW1iZXJPZkNoYW5uZWxzOmEsdGltZXN0YW1wOmN9PWUsZj10aGlzLmdldEF1ZGlvRGF0YUFzRmxvYXQzMihlKSxoPXRoaXMuY29udmVydFR5cGVkQXJyYXkoZixJbnQxNkFycmF5LDMyNzY3KTt0aGlzLndhc21UcmFuc2Zvcm1lci5nZXRJbnB1dEZyYW1lKGgubGVuZ3RoKS5zZXQoaCk7bGV0IHU9MDt0cnl7dT10aGlzLndhc21UcmFuc2Zvcm1lci5ydW5BbGdvcml0aG0odCxvLGEpfWNhdGNoKHIpe2lmKCJudW1iZXIiPT10eXBlb2Ygcil7bGV0IGU9IiI7Zm9yKGxldCB0PTA7dDw1MDA7Kyt0KWUrPVN0cmluZy5mcm9tQ2hhckNvZGUodGhpcy53YXNtSW5zdGFuY2UuSEVBUDhbcit0XSk7Y29uc29sZS5lcnJvcihlKX1lbHNlIGNvbnNvbGUuZXJyb3Iocil9aWYodT4wKXtjb25zdCByPXRoaXMud2FzbVRyYW5zZm9ybWVyLmdldE91dHB1dEZyYW1lKCkuc2xpY2UoMCx1KSxmPXRoaXMuY29udmVydFR5cGVkQXJyYXkocixGbG9hdDMyQXJyYXksMS8zMjc2Nyk7ZT1uZXcgQXVkaW9EYXRhKHtkYXRhOmYsZm9ybWF0OiJmMzIiLG51bWJlck9mQ2hhbm5lbHM6YSxudW1iZXJPZkZyYW1lczp0LHNhbXBsZVJhdGU6byx0aW1lc3RhbXA6Y30pfX1jYXRjaChyKXtjb25zb2xlLmVycm9yKHIpfXQuZW5xdWV1ZShlKX1hc3luYyBsb2FkTW9kZWwoZSx0KXtpZighdGhpcy53YXNtVHJhbnNmb3JtZXIpcmV0dXJuO2NvbnN0IHI9YXdhaXQgZmV0Y2goZSksbz1hd2FpdCByLmFycmF5QnVmZmVyKCksYT1vLmJ5dGVMZW5ndGgsYz1gZ2V0TW9kZWwke3R9YCxmPXRoaXMud2FzbVRyYW5zZm9ybWVyW2NdKGEpO2lmKGYpe2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkobyk7Zi5zZXQoZSl9fWdldEF1ZGlvRGF0YUFzRmxvYXQzMihlKXtyZXR1cm4gdGhpcy5hdWRpb0RhdGFUb1R5cGVkQXJyYXkoZSxGbG9hdDMyQXJyYXksImYzMi1wbGFuYXIiKX1hdWRpb0RhdGFUb1R5cGVkQXJyYXkoZSx0LHIsbz1lLm51bWJlck9mQ2hhbm5lbHMpe2NvbnN0IGE9ZS5udW1iZXJPZkZyYW1lcypvLGM9bmV3IHQoYSk7Zm9yKGxldCBmPTA7ZjxvOysrZil7Y29uc3QgdD1lLm51bWJlck9mRnJhbWVzKmYsbz1jLnN1YmFycmF5KHQsdCtlLm51bWJlck9mRnJhbWVzKTtlLmNvcHlUbyhvLHtwbGFuZUluZGV4OmYsZm9ybWF0OnJ9KX1pZihvPjEpe2NvbnN0IHI9bmV3IHQoYSk7Zm9yKGxldCB0PTA7dDxlLm51bWJlck9mRnJhbWVzOysrdCl7Y29uc3QgYT0yKnQ7Zm9yKGxldCBmPTA7ZjxvOysrZilyW2ErZl09Y1t0K2YqZS5udW1iZXJPZkZyYW1lc119cmV0dXJuIHJ9cmV0dXJuIGN9Y29udmVydFR5cGVkQXJyYXkoZSx0LHIpe2NvbnN0IG89ZS5sZW5ndGgsYT1uZXcgdChvKTtmb3IobGV0IGM9MDtjPG87KytjKWFbY109ZVtjXSpyO3JldHVybiBhfWlzTW9ub1RocmVhZChlKXtpZihlLmRpc2FibGVXYXNtTXVsdGlUaHJlYWQpcmV0dXJuITA7dHJ5e2lmKHZvaWQgMD09PW5ldyBTaGFyZWRBcnJheUJ1ZmZlcigxMDI0KSl0aHJvdyBuZXcgRXJyb3IoIm5vdCBzdXBwb3J0ZWQiKX1jYXRjaCh0KXtyZXR1cm4gdGhpcy5lbWl0KCJ3YXJuaW5nIiwiXG5NdWx0aXRocmVhZCBpcyBub3QgYXZhaWxhYmxlLCBub2lzZS1zdXBwcmVzaW9uIGlzIG5vdyBydW5uaW5nIG9uIGEgc2luZ2xlIHRocmVhZC5cblRoaXMgaXMgaW1wYWN0aW5nIHRoZSBwZXJmb3JtYW5jZSBhbmQgaW5jcmVhc2UgdGhlIGxhdGVuY3kuXG5cblRvIGVuYWJsZSBtdWx0aXRocmVhZCwgeW91IG5lZWQgdG8gc2VydmUgdGhlIGFwcGxpY2F0aW9uIHZpYSBodHRwcyB3aXRoIHRoZXNlIGh0dHAgaGVhZGVycyA6XG4gICAtIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5OiBzYW1lLW9yaWdpblxuICAgLSBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5OiByZXF1aXJlLWNvcnAuXG5Nb3JlIGluZm86IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1NoYXJlZEFycmF5QnVmZmVyI3NlY3VyaXR5X3JlcXVpcmVtZW50c1xuXG5Zb3UgY2FuIGRpc2FibGUgdGhpcyB3YXJuaW5nIGJ5IGVuYWJsaW5nIGRpc2FibGVXYXNtTXVsdGlUaHJlYWQgd2l0aGluIHRoZSBub2lzZVN1cHByZXNzaW9uIG9wdGlvbnMuXG4iKSwhMH1yZXR1cm4hMX19ZnVuY3Rpb24gY3JlYXRlR2xvYmFsVGhpc1ZhcmlhYmxlKGUsdCl7Z2xvYmFsVGhpcy52b25hZ2V8fChnbG9iYWxUaGlzLnZvbmFnZT17fSksZ2xvYmFsVGhpcy52b25hZ2Uud29ya2VyaXplcnx8KGdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI9e30pO2xldCByPWdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI7cmV0dXJuIHJbZV18fChyW2VdPXQpLHJbZV19Y29uc3QgdWU9Y3JlYXRlR2xvYmFsVGhpc1ZhcmlhYmxlKCJnbG9iYWxzIix7fSk7dmFyIGJlPShlPT4oZS5JTklUPSJJTklUIixlLkZPUldBUkQ9IkZPUldBUkQiLGUuVEVSTUlOQVRFPSJURVJNSU5BVEUiLGUuR0xPQkFMU19TWU5DPSJHTE9CQUxTX1NZTkMiLGUuRVZFTlQ9IkVWRU5UIixlKSkoYmV8fHt9KTtmdW5jdGlvbiBwb3N0Q29tbWFuZChlLHQpe2NvbnN0e2lkOnIsdHlwZTpvfT1lLGE9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtwb3N0TWVzc2FnZSh7aWQ6cix0eXBlOm8scmVzdWx0OnR9LGEuZmlsdGVyKChlPT5mdW5jdGlvbiBpc1RyYW5zZmVyYWJsZShlKXtyZXR1cm5bSW1hZ2VCaXRtYXAsUmVhZGFibGVTdHJlYW0sV3JpdGFibGVTdHJlYW1dLnNvbWUoKHQ9PmUgaW5zdGFuY2VvZiB0KSl9KGUpKSkpfWZ1bmN0aW9uIGlzV29ya2VyKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlfWZ1bmN0aW9uIGNvcHkoZSx0KXtpZihBcnJheS5pc0FycmF5KHQpKXQuc3BsaWNlKDAsdC5sZW5ndGgpO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiB0KWZvcihjb25zdCByIGluIHQpZGVsZXRlIHRbcl07Zm9yKGNvbnN0IHIgaW4gZSlBcnJheS5pc0FycmF5KGVbcl0pPyh0W3JdPVtdLGNvcHkoZVtyXSx0W3JdKSk6Im9iamVjdCI9PXR5cGVvZiBlW3JdPyh0W3JdPXt9LGNvcHkoZVtyXSx0W3JdKSk6dFtyXT1lW3JdfWNyZWF0ZUdsb2JhbFRoaXNWYXJpYWJsZSgid29ya2VyaXplZCIse30pO2NvbnN0IHdlPW5ldyBXZWFrTWFwLHZlPW5ldyBXZWFrTWFwLEVlPW5ldyBXZWFrTWFwLFNlPVN5bWJvbCgiYW55UHJvZHVjZXIiKSxJZT1Qcm9taXNlLnJlc29sdmUoKSwkZT1TeW1ib2woImxpc3RlbmVyQWRkZWQiKSxOZT1TeW1ib2woImxpc3RlbmVyUmVtb3ZlZCIpO2xldCBQZT0hMSxEZT0hMTtmdW5jdGlvbiBhc3NlcnRFdmVudE5hbWUoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlJiYic3ltYm9sIiE9dHlwZW9mIGUmJiJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgZXZlbnROYW1lYCBtdXN0IGJlIGEgc3RyaW5nLCBzeW1ib2wsIG9yIG51bWJlciIpfWZ1bmN0aW9uIGFzc2VydExpc3RlbmVyKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGdldExpc3RlbmVycyhlLHQpe2NvbnN0IHI9dmUuZ2V0KGUpO2lmKHIuaGFzKHQpKXJldHVybiByLmdldCh0KX1mdW5jdGlvbiBnZXRFdmVudFByb2R1Y2VycyhlLHQpe2NvbnN0IHI9InN0cmluZyI9PXR5cGVvZiB0fHwic3ltYm9sIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdD90OlNlLG89RWUuZ2V0KGUpO2lmKG8uaGFzKHIpKXJldHVybiBvLmdldChyKX1mdW5jdGlvbiBpdGVyYXRvcihlLHQpe3Q9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtsZXQgcj0hMSxmbHVzaD0oKT0+e30sbz1bXTtjb25zdCBhPXtlbnF1ZXVlKGUpe28ucHVzaChlKSxmbHVzaCgpfSxmaW5pc2goKXtyPSEwLGZsdXNoKCl9fTtmb3IoY29uc3QgYyBvZiB0KXtsZXQgdD1nZXRFdmVudFByb2R1Y2VycyhlLGMpO2lmKCF0KXt0PW5ldyBTZXQ7RWUuZ2V0KGUpLnNldChjLHQpfXQuYWRkKGEpfXJldHVybnthc3luYyBuZXh0KCl7cmV0dXJuIG8/MD09PW8ubGVuZ3RoP3I/KG89dm9pZCAwLHRoaXMubmV4dCgpKTooYXdhaXQgbmV3IFByb21pc2UoKGU9PntmbHVzaD1lfSkpLHRoaXMubmV4dCgpKTp7ZG9uZTohMSx2YWx1ZTphd2FpdCBvLnNoaWZ0KCl9Ontkb25lOiEwfX0sYXN5bmMgcmV0dXJuKHIpe289dm9pZCAwO2Zvcihjb25zdCBvIG9mIHQpe2NvbnN0IHQ9Z2V0RXZlbnRQcm9kdWNlcnMoZSxvKTtpZih0JiYodC5kZWxldGUoYSksMD09PXQuc2l6ZSkpe0VlLmdldChlKS5kZWxldGUobyl9fXJldHVybiBmbHVzaCgpLGFyZ3VtZW50cy5sZW5ndGg+MD97ZG9uZTohMCx2YWx1ZTphd2FpdCByfTp7ZG9uZTohMH19LFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKXtyZXR1cm4gdGhpc319fWZ1bmN0aW9uIGRlZmF1bHRNZXRob2ROYW1lc09yQXNzZXJ0KGUpe2lmKHZvaWQgMD09PWUpcmV0dXJuIE9lO2lmKCFBcnJheS5pc0FycmF5KGUpKXRocm93IG5ldyBUeXBlRXJyb3IoImBtZXRob2ROYW1lc2AgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzIik7Zm9yKGNvbnN0IHQgb2YgZSlpZighT2UuaW5jbHVkZXModCkpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIGVsZW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpO3Rocm93IG5ldyBFcnJvcihgJHt0fSBpcyBub3QgRW1pdHRlcnkgbWV0aG9kYCl9cmV0dXJuIGV9Y29uc3QgaXNNZXRhRXZlbnQ9ZT0+ZT09PSRlfHxlPT09TmU7ZnVuY3Rpb24gZW1pdE1ldGFFdmVudChlLHQscil7aWYoaXNNZXRhRXZlbnQodCkpdHJ5e1BlPSEwLGUuZW1pdCh0LHIpfWZpbmFsbHl7UGU9ITF9fWNsYXNzIEVtaXR0ZXJ5e3N0YXRpYyBtaXhpbihlLHQpe3JldHVybiB0PWRlZmF1bHRNZXRob2ROYW1lc09yQXNzZXJ0KHQpLHI9PntpZigiZnVuY3Rpb24iIT10eXBlb2Ygcil0aHJvdyBuZXcgVHlwZUVycm9yKCJgdGFyZ2V0YCBtdXN0IGJlIGZ1bmN0aW9uIik7Zm9yKGNvbnN0IGUgb2YgdClpZih2b2lkIDAhPT1yLnByb3RvdHlwZVtlXSl0aHJvdyBuZXcgRXJyb3IoYFRoZSBwcm9wZXJ0eSBcYCR7ZX1cYCBhbHJlYWR5IGV4aXN0cyBvbiBcYHRhcmdldFxgYCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIucHJvdG90eXBlLGUse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldEVtaXR0ZXJ5UHJvcGVydHkoKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpuZXcgRW1pdHRlcnl9KSx0aGlzW2VdfX0pO2NvbnN0IGVtaXR0ZXJ5TWV0aG9kQ2FsbGVyPXQ9PmZ1bmN0aW9uKC4uLnIpe3JldHVybiB0aGlzW2VdW3RdKC4uLnIpfTtmb3IoY29uc3QgZSBvZiB0KU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLnByb3RvdHlwZSxlLHtlbnVtZXJhYmxlOiExLHZhbHVlOmVtaXR0ZXJ5TWV0aG9kQ2FsbGVyKGUpfSk7cmV0dXJuIHJ9fXN0YXRpYyBnZXQgaXNEZWJ1Z0VuYWJsZWQoKXt2YXIgZSx0O2lmKCJvYmplY3QiIT10eXBlb2YobnVsbD09KGU9Z2xvYmFsVGhpcy5wcm9jZXNzKT92b2lkIDA6ZS5lbnYpKXJldHVybiBEZTtjb25zdHtlbnY6cn09bnVsbCE9KHQ9Z2xvYmFsVGhpcy5wcm9jZXNzKT90OntlbnY6e319O3JldHVybiJlbWl0dGVyeSI9PT1yLkRFQlVHfHwiKiI9PT1yLkRFQlVHfHxEZX1zdGF0aWMgc2V0IGlzRGVidWdFbmFibGVkKGUpe0RlPWV9Y29uc3RydWN0b3IoZT17fSl7dmFyIHQ7d2Uuc2V0KHRoaXMsbmV3IFNldCksdmUuc2V0KHRoaXMsbmV3IE1hcCksRWUuc2V0KHRoaXMsbmV3IE1hcCksRWUuZ2V0KHRoaXMpLnNldChTZSxuZXcgU2V0KSx0aGlzLmRlYnVnPW51bGwhPSh0PWUuZGVidWcpP3Q6e30sdm9pZCAwPT09dGhpcy5kZWJ1Zy5lbmFibGVkJiYodGhpcy5kZWJ1Zy5lbmFibGVkPSExKSx0aGlzLmRlYnVnLmxvZ2dlcnx8KHRoaXMuZGVidWcubG9nZ2VyPShlLHQscixvKT0+e3RyeXtvPUpTT04uc3RyaW5naWZ5KG8pfWNhdGNoe289YE9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcga2V5cyBmYWlsZWQgdG8gc3RyaW5naWZ5OiAke09iamVjdC5rZXlzKG8pLmpvaW4oIiwiKX1gfSJzeW1ib2wiIT10eXBlb2YgciYmIm51bWJlciIhPXR5cGVvZiByfHwocj1yLnRvU3RyaW5nKCkpO2NvbnN0IGE9bmV3IERhdGUsYz1gJHthLmdldEhvdXJzKCl9OiR7YS5nZXRNaW51dGVzKCl9OiR7YS5nZXRTZWNvbmRzKCl9LiR7YS5nZXRNaWxsaXNlY29uZHMoKX1gO2NvbnNvbGUubG9nKGBbJHtjfV1bZW1pdHRlcnk6JHtlfV1bJHt0fV0gRXZlbnQgTmFtZTogJHtyfVxuXHRkYXRhOiAke299YCl9KX1sb2dJZkRlYnVnRW5hYmxlZChlLHQscil7KEVtaXR0ZXJ5LmlzRGVidWdFbmFibGVkfHx0aGlzLmRlYnVnLmVuYWJsZWQpJiZ0aGlzLmRlYnVnLmxvZ2dlcihlLHRoaXMuZGVidWcubmFtZSx0LHIpfW9uKGUsdCl7YXNzZXJ0TGlzdGVuZXIodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCByIG9mIGUpe2Fzc2VydEV2ZW50TmFtZShyKTtsZXQgZT1nZXRMaXN0ZW5lcnModGhpcyxyKTtpZighZSl7ZT1uZXcgU2V0O3ZlLmdldCh0aGlzKS5zZXQocixlKX1lLmFkZCh0KSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJzdWJzY3JpYmUiLHIsdm9pZCAwKSxpc01ldGFFdmVudChyKXx8ZW1pdE1ldGFFdmVudCh0aGlzLCRlLHtldmVudE5hbWU6cixsaXN0ZW5lcjp0fSl9cmV0dXJuIHRoaXMub2ZmLmJpbmQodGhpcyxlLHQpfW9mZihlLHQpe2Fzc2VydExpc3RlbmVyKHQpLGU9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgciBvZiBlKXthc3NlcnRFdmVudE5hbWUocik7Y29uc3QgZT1nZXRMaXN0ZW5lcnModGhpcyxyKTtpZihlJiYoZS5kZWxldGUodCksMD09PWUuc2l6ZSkpe3ZlLmdldCh0aGlzKS5kZWxldGUocil9dGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgidW5zdWJzY3JpYmUiLHIsdm9pZCAwKSxpc01ldGFFdmVudChyKXx8ZW1pdE1ldGFFdmVudCh0aGlzLE5lLHtldmVudE5hbWU6cixsaXN0ZW5lcjp0fSl9fW9uY2UoZSl7bGV0IHQ7Y29uc3Qgcj1uZXcgUHJvbWlzZSgocj0+e3Q9dGhpcy5vbihlLChlPT57dCgpLHIoZSl9KSl9KSk7cmV0dXJuIHIub2ZmPXQscn1ldmVudHMoZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCB0IG9mIGUpYXNzZXJ0RXZlbnROYW1lKHQpO3JldHVybiBpdGVyYXRvcih0aGlzLGUpfWFzeW5jIGVtaXQoZSx0KXt2YXIgcjtpZihhc3NlcnRFdmVudE5hbWUoZSksaXNNZXRhRXZlbnQoZSkmJiFQZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgZXZlbnROYW1lYCBjYW5ub3QgYmUgbWV0YSBldmVudCBgbGlzdGVuZXJBZGRlZGAgb3IgYGxpc3RlbmVyUmVtb3ZlZGAiKTt0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0IixlLHQpLGZ1bmN0aW9uIGVucXVldWVQcm9kdWNlcnMoZSx0LHIpe2NvbnN0IG89RWUuZ2V0KGUpO2lmKG8uaGFzKHQpKWZvcihjb25zdCBhIG9mIG8uZ2V0KHQpKWEuZW5xdWV1ZShyKTtpZihvLmhhcyhTZSkpe2NvbnN0IGU9UHJvbWlzZS5hbGwoW3Qscl0pO2Zvcihjb25zdCB0IG9mIG8uZ2V0KFNlKSl0LmVucXVldWUoZSl9fSh0aGlzLGUsdCk7Y29uc3Qgbz1udWxsIT0ocj1nZXRMaXN0ZW5lcnModGhpcyxlKSk/cjpuZXcgU2V0LGE9d2UuZ2V0KHRoaXMpLGM9Wy4uLm9dLGY9aXNNZXRhRXZlbnQoZSk/W106Wy4uLmFdO2F3YWl0IEllLGF3YWl0IFByb21pc2UuYWxsKFsuLi5jLm1hcCgoYXN5bmMgZT0+e2lmKG8uaGFzKGUpKXJldHVybiBlKHQpfSkpLC4uLmYubWFwKChhc3luYyByPT57aWYoYS5oYXMocikpcmV0dXJuIHIoZSx0KX0pKV0pfWFzeW5jIGVtaXRTZXJpYWwoZSx0KXt2YXIgcjtpZihhc3NlcnRFdmVudE5hbWUoZSksaXNNZXRhRXZlbnQoZSkmJiFQZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgZXZlbnROYW1lYCBjYW5ub3QgYmUgbWV0YSBldmVudCBgbGlzdGVuZXJBZGRlZGAgb3IgYGxpc3RlbmVyUmVtb3ZlZGAiKTt0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0U2VyaWFsIixlLHQpO2NvbnN0IG89bnVsbCE9KHI9Z2V0TGlzdGVuZXJzKHRoaXMsZSkpP3I6bmV3IFNldCxhPXdlLmdldCh0aGlzKSxjPVsuLi5vXSxmPVsuLi5hXTthd2FpdCBJZTtmb3IoY29uc3QgaCBvZiBjKW8uaGFzKGgpJiZhd2FpdCBoKHQpO2Zvcihjb25zdCBoIG9mIGYpYS5oYXMoaCkmJmF3YWl0IGgoZSx0KX1vbkFueShlKXtyZXR1cm4gYXNzZXJ0TGlzdGVuZXIoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSx3ZS5nZXQodGhpcykuYWRkKGUpLGVtaXRNZXRhRXZlbnQodGhpcywkZSx7bGlzdGVuZXI6ZX0pLHRoaXMub2ZmQW55LmJpbmQodGhpcyxlKX1hbnlFdmVudCgpe3JldHVybiBpdGVyYXRvcih0aGlzKX1vZmZBbnkoZSl7YXNzZXJ0TGlzdGVuZXIoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgidW5zdWJzY3JpYmVBbnkiLHZvaWQgMCx2b2lkIDApLGVtaXRNZXRhRXZlbnQodGhpcyxOZSx7bGlzdGVuZXI6ZX0pLHdlLmdldCh0aGlzKS5kZWxldGUoZSl9Y2xlYXJMaXN0ZW5lcnMoZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCB0IG9mIGUpaWYodGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiY2xlYXIiLHQsdm9pZCAwKSwic3RyaW5nIj09dHlwZW9mIHR8fCJzeW1ib2wiPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0KXtjb25zdCBlPWdldExpc3RlbmVycyh0aGlzLHQpO2UmJmUuY2xlYXIoKTtjb25zdCByPWdldEV2ZW50UHJvZHVjZXJzKHRoaXMsdCk7aWYocil7Zm9yKGNvbnN0IGUgb2YgcillLmZpbmlzaCgpO3IuY2xlYXIoKX19ZWxzZXt3ZS5nZXQodGhpcykuY2xlYXIoKTtmb3IoY29uc3RbZSx0XW9mIHZlLmdldCh0aGlzKS5lbnRyaWVzKCkpdC5jbGVhcigpLHZlLmdldCh0aGlzKS5kZWxldGUoZSk7Zm9yKGNvbnN0W2UsdF1vZiBFZS5nZXQodGhpcykuZW50cmllcygpKXtmb3IoY29uc3QgZSBvZiB0KWUuZmluaXNoKCk7dC5jbGVhcigpLEVlLmdldCh0aGlzKS5kZWxldGUoZSl9fX1saXN0ZW5lckNvdW50KGUpe3ZhciB0LHIsbyxhLGMsZjtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07bGV0IGg9MDtmb3IoY29uc3QgdSBvZiBlKWlmKCJzdHJpbmciIT10eXBlb2YgdSl7dm9pZCAwIT09dSYmYXNzZXJ0RXZlbnROYW1lKHUpLGgrPXdlLmdldCh0aGlzKS5zaXplO2Zvcihjb25zdCBlIG9mIHZlLmdldCh0aGlzKS52YWx1ZXMoKSloKz1lLnNpemU7Zm9yKGNvbnN0IGUgb2YgRWUuZ2V0KHRoaXMpLnZhbHVlcygpKWgrPWUuc2l6ZX1lbHNlIGgrPXdlLmdldCh0aGlzKS5zaXplKyhudWxsIT0ocj1udWxsPT0odD1nZXRMaXN0ZW5lcnModGhpcyx1KSk/dm9pZCAwOnQuc2l6ZSk/cjowKSsobnVsbCE9KGE9bnVsbD09KG89Z2V0RXZlbnRQcm9kdWNlcnModGhpcyx1KSk/dm9pZCAwOm8uc2l6ZSk/YTowKSsobnVsbCE9KGY9bnVsbD09KGM9Z2V0RXZlbnRQcm9kdWNlcnModGhpcykpP3ZvaWQgMDpjLnNpemUpP2Y6MCk7cmV0dXJuIGh9YmluZE1ldGhvZHMoZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgYW4gb2JqZWN0Iik7dD1kZWZhdWx0TWV0aG9kTmFtZXNPckFzc2VydCh0KTtmb3IoY29uc3QgciBvZiB0KXtpZih2b2lkIDAhPT1lW3JdKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtyfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiExLHZhbHVlOnRoaXNbcl0uYmluZCh0aGlzKX0pfX19Y29uc3QgT2U9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoRW1pdHRlcnkucHJvdG90eXBlKS5maWx0ZXIoKGU9PiJjb25zdHJ1Y3RvciIhPT1lKSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEVtaXR0ZXJ5LCJsaXN0ZW5lckFkZGVkIix7dmFsdWU6JGUsd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRW1pdHRlcnksImxpc3RlbmVyUmVtb3ZlZCIse3ZhbHVlOk5lLHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExfSk7Y29uc3QgTWU9Y3JlYXRlR2xvYmFsVGhpc1ZhcmlhYmxlKCJyZWdpc3RlcmVkV29ya2VycyIse30pO2lzV29ya2VyKCkmJmZ1bmN0aW9uIGluaXRXb3JrZXIoKXtjb25zdCBlPXt9O29ubWVzc2FnZT1hc3luYyB0PT57Y29uc3Qgcj10LmRhdGE7c3dpdGNoKHIudHlwZSl7Y2FzZSBiZS5JTklUOiFmdW5jdGlvbiBoYW5kbGVDb21tYW5kSW5pdChlLHQpe2lmKCFlLmFyZ3MpdGhyb3ciTWlzc2luZyBjbGFzc05hbWUgd2hpbGUgaW5pdGlhbGl6aW5nIHdvcmtlciI7Y29uc3RbcixvXT1lLmFyZ3MsYT1NZVtyXTtpZighYSl0aHJvd2B1bmtub3duIHdvcmtlciBjbGFzcyAke3J9YDt0Lmluc3RhbmNlPW5ldyBhKGUuYXJncy5zbGljZSgxKSksY29weShvLHVlKSxmdW5jdGlvbiBpc0luc3RhbmNlT2ZFbWl0dGVyeShlKXtyZXR1cm4gZS5vbkFueSYmZS5lbWl0fSh0Lmluc3RhbmNlKSYmdC5pbnN0YW5jZS5vbkFueSgoKGUsdCk9Pntwb3N0Q29tbWFuZCh7dHlwZTpiZS5FVkVOVH0se25hbWU6ZSxkYXRhOnR9KX0pKSxwb3N0Q29tbWFuZChlLHZvaWQgMCE9PXR5cGVvZiB0Lmluc3RhbmNlKX0ocixlKTticmVhaztjYXNlIGJlLkZPUldBUkQ6IWFzeW5jIGZ1bmN0aW9uIGhhbmRsZUNvbW1hbmRGb3J3YXJkKGUsdCl7Y29uc3R7ZnVuY3Rpb25OYW1lOnIsYXJnczpvfT1lO2lmKCF0Lmluc3RhbmNlKXRocm93Imluc3RhbmNlIG5vdCBpbml0aWFsaXplZCI7aWYoIXIpdGhyb3cibWlzc2luZyBmdW5jdGlvbiBuYW1lIHRvIGNhbGwiO2lmKCF0Lmluc3RhbmNlW3JdKXRocm93YHVuZGVmaW5lZCBmdW5jdGlvbiBbJHtyfV0gaW4gY2xhc3MgJHt0Lmluc3RhbmNlLmNvbnN0cnVjdG9yLndvcmtlcklkfWA7cG9zdENvbW1hbmQoZSxhd2FpdCB0Lmluc3RhbmNlW3JdKC4uLm51bGwhPW8/bzpbXSkpfShyLGUpO2JyZWFrO2Nhc2UgYmUuVEVSTUlOQVRFOiFhc3luYyBmdW5jdGlvbiBoYW5kbGVDb21tYW5kVGVybWluYXRlKGUsdCl7Y29uc3R7YXJnczpyfT1lO2lmKCF0Lmluc3RhbmNlKXRocm93Imluc3RhbmNlIG5vdCBpbml0aWFsaXplZCI7bGV0IG87dC5pbnN0YW5jZS50ZXJtaW5hdGUmJihvPWF3YWl0IHQuaW5zdGFuY2UudGVybWluYXRlKC4uLm51bGwhPXI/cjpbXSkpLHBvc3RDb21tYW5kKGUsbyl9KHIsZSk7YnJlYWs7Y2FzZSBiZS5HTE9CQUxTX1NZTkM6IWZ1bmN0aW9uIGhhbmRsZUNvbW1hbmRHbG9iYWxzU3luYyhlKXtpZighZS5hcmdzKXRocm93Ik1pc3NpbmcgZ2xvYmFscyB3aGlsZSBzeW5jaW5nIjtjb3B5KGUuYXJnc1swXSx1ZSkscG9zdENvbW1hbmQoZSx7fSl9KHIpfX19KCk7IWZ1bmN0aW9uIHJlZ2lzdGVyV29ya2VyKGUsdCl7dC53b3JrZXJJZD1lLGlzV29ya2VyKCkmJihNZVt0LndvcmtlcklkXT10KX0oIlByb2Nlc3NvcldvcmtlciIsY2xhc3MgX1Byb2Nlc3NvcldvcmtlciBleHRlbmRzIG9le2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnByb2Nlc3Nvcj1uZXcgQ2V9YXN5bmMgaW5pdChlPXt9KXt0aGlzLnRyYW5zZm9ybWVyPW5ldyBOb2lzZVN1cHByZXNzaW9uVHJhbnNmb3JtZXIsdGhpcy5wcm9jZXNzb3Iub25BbnkoKChlLHQpPT50aGlzLmVtaXQoZSx0KSkpLHRoaXMudHJhbnNmb3JtZXIub25BbnkoKChlLHQpPT50aGlzLmVtaXQoZSx0KSkpLGF3YWl0IHRoaXMudHJhbnNmb3JtZXIuaW5pdChlKSxhd2FpdCB0aGlzLnByb2Nlc3Nvci5zZXRUcmFuc2Zvcm1lcnMoW3RoaXMudHJhbnNmb3JtZXJdKX10cmFuc2Zvcm0oZSx0KXt0aGlzLnByb2Nlc3Nvci50cmFuc2Zvcm0oZSx0KX1zZXRBdWRpb09wdGlvbnMoZSx0LHIsbyxhKXt0aGlzLnRyYW5zZm9ybWVyPy5zZXRBdWRpb09wdGlvbnMoZSx0LHIsbyxhKX1lbmFibGUoKXt0aGlzLnRyYW5zZm9ybWVyPy5lbmFibGUoKX1kaXNhYmxlKCl7dGhpcy50cmFuc2Zvcm1lcj8uZGlzYWJsZSgpfWFzeW5jIHRlcm1pbmF0ZSgpe2F3YWl0IHRoaXMucHJvY2Vzc29yLmRlc3Ryb3koKX1nZXRXYXYoKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm1lcj8uZ2V0V2F2KCk/PyIifWdldExhdGVuY3koKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm1lcj8uZ2V0TGF0ZW5jeSgpPz8wfWdldFdhc21MYXRlbmN5TnMoKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm1lcj8uZ2V0V2FzbUxhdGVuY3lOcygpPz8wfX0pfSgpOwo=",ru=typeof window<"u"&&window.Blob&&new Blob([atob(gl)],{type:"text/javascript;charset=utf-8"});function eo(){let dt;try{if(dt=ru&&(window.URL||window.webkitURL).createObjectURL(ru),!dt)throw"";return new Worker(dt)}catch{return new Worker("data:application/javascript;base64,"+gl)}finally{dt&&(window.URL||window.webkitURL).revokeObjectURL(dt)}}let Hd=function(dt){(0,h.default)(Ft,dt);function Ft(){var le;return le=dt.apply(this,arguments)||this,le.isEnabled=!0,le}var Se=Ft.prototype;return Se.init=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe){return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Oe===void 0&&(Oe={}),Wt.next=3,this.startWorker(Oe);case 3:case"end":return Wt.stop()}},Xe,this)}));function Le(Xe){return le.apply(this,arguments)}return Le}(),Se.enable=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return this.isEnabled=!0,Wt.next=3,(Oe=this.worker)==null?void 0:Oe.enable();case 3:case"end":return Wt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.disable=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return this.isEnabled=!1,Wt.next=3,(Oe=this.worker)==null?void 0:Oe.disable();case 3:case"end":return Wt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.transform=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe,mt){var Wt;return s.default.wrap(function(pn){for(;;)switch(pn.prev=pn.next){case 0:return pn.next=2,this.startWorker();case 2:return pn.next=4,(Wt=this.worker)==null?void 0:Wt.transform(Oe,mt);case 4:case"end":return pn.stop()}},Xe,this)}));function Le(Xe,Oe){return le.apply(this,arguments)}return Le}(),Se.destroy=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Wt.next=2,(Oe=this.worker)==null?void 0:Oe.terminate();case 2:this.worker=void 0;case 3:case"end":return Wt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.setAudioOptions=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe,mt,Wt,Mt,pn){var on;return s.default.wrap(function(qn){for(;;)switch(qn.prev=qn.next){case 0:return qn.next=2,(on=this.worker)==null?void 0:on.setAudioOptions(Oe,mt,Wt,Mt,pn);case 2:case"end":return qn.stop()}},Xe,this)}));function Le(Xe,Oe,mt,Wt,Mt){return le.apply(this,arguments)}return Le}(),Se.getLatency=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe,mt;return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:return Mt.abrupt("return",(Oe=(mt=this.worker)==null?void 0:mt.getLatency())!=null?Oe:0);case 1:case"end":return Mt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.getWasmLatencyNs=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe,mt;return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:return Mt.abrupt("return",(Oe=(mt=this.worker)==null?void 0:mt.getWasmLatencyNs())!=null?Oe:0);case 1:case"end":return Mt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.startWorker=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe){return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:if(Oe===void 0&&(Oe={}),!this.worker){Wt.next=3;break}return Wt.abrupt("return");case 3:return Wt.next=5,qa(Zd,eo);case 5:return this.worker=Wt.sent,this.worker.onAny((Mt,pn)=>this.emit(Mt,pn)),Wt.next=9,this.worker.init(Oe);case 9:if(this.isEnabled){Wt.next=12;break}return Wt.next=12,this.worker.disable();case 12:case"end":return Wt.stop()}},Xe,this)}));function Le(Xe){return le.apply(this,arguments)}return Le}(),Se.close=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Wt.next=2,(Oe=this.worker)==null?void 0:Oe.terminate();case 2:case"end":return Wt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.getWav=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe,mt;return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:return Mt.next=2,(mt=this.worker)==null?void 0:mt.getWav();case 2:if(Mt.t0=Oe=Mt.sent,Mt.t0==null){Mt.next=7;break}Mt.t1=Oe,Mt.next=8;break;case 7:Mt.t1="";case 8:return Mt.abrupt("return",Mt.t1);case 9:case"end":return Mt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Ft}(mr),$l=function(dt){(0,h.default)(Ft,dt);function Ft(){return dt.apply(this,arguments)||this}var Se=Ft.prototype;return Se.init=function(){var le=(0,u.default)(s.default.mark(function Xe(Oe){return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Oe===void 0&&(Oe={}),this.worker=new Hd,this.worker.onAny((Mt,pn)=>this.emit(Mt,pn)),Wt.next=5,this.worker.init(Oe);case 5:this.connector=new Ml(this.worker);case 6:case"end":return Wt.stop()}},Xe,this)}));function Le(Xe){return le.apply(this,arguments)}return Le}(),Se.getConnector=function(){return this.connector},Se.close=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Wt.next=2,(Oe=this.worker)==null?void 0:Oe.close();case 2:case"end":return Wt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.enable=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Wt.next=2,(Oe=this.worker)==null?void 0:Oe.enable();case 2:case"end":return Wt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.disable=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe;return s.default.wrap(function(Wt){for(;;)switch(Wt.prev=Wt.next){case 0:return Wt.next=2,(Oe=this.worker)==null?void 0:Oe.disable();case 2:case"end":return Wt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.getLatency=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe,mt;return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:return Mt.abrupt("return",(Oe=(mt=this.worker)==null?void 0:mt.getLatency())!=null?Oe:0);case 1:case"end":return Mt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.getWasmLatencyNs=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe,mt;return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:return Mt.abrupt("return",(Oe=(mt=this.worker)==null?void 0:mt.getWasmLatencyNs())!=null?Oe:0);case 1:case"end":return Mt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Se.getWav=function(){var le=(0,u.default)(s.default.mark(function Xe(){var Oe,mt;return s.default.wrap(function(Mt){for(;;)switch(Mt.prev=Mt.next){case 0:return Mt.next=2,(mt=this.worker)==null?void 0:mt.getWav();case 2:if(Mt.t0=Oe=Mt.sent,Mt.t0==null){Mt.next=7;break}Mt.t1=Oe,Mt.next=8;break;case 7:Mt.t1="";case 8:return Mt.abrupt("return",Mt.t1);case 9:case"end":return Mt.stop()}},Xe,this)}));function Le(){return le.apply(this,arguments)}return Le}(),Ft}(mr);r.VonageNoiseSuppression=$l;function ua(){return new $l}const Id=`https://d3opqjmqzxf057.cloudfront.net/noise-suppression/${sr}`;let fd=function(){function dt(){}var Ft=dt.prototype;return Ft.init=function(){var Se=(0,u.default)(s.default.mark(function Le(Xe){var Oe,mt,Wt;return s.default.wrap(function(pn){for(;;)switch(pn.prev=pn.next){case 0:return Xe===void 0&&(Xe={}),console.log("Wav exporter transformer initialization"),mt=(Oe=Xe.assetsDirBaseUrl)!=null?Oe:Id,Wt=on=>`${mt}/${on}`,pn.next=6,y({locateFile:Wt,mainScriptUrlOrBlob:Wt("main-bin-mono.js")});case 6:this.wasmInstance=pn.sent,console.log("Wav exporter transformer ready");case 8:case"end":return pn.stop()}},Le,this)}));function le(Le){return Se.apply(this,arguments)}return le}(),Ft.transform=function(le,Le){if(this.wasmTransformer||(this.wasmTransformer=new this.wasmInstance.WavExporter(le.sampleRate,1)),this.wasmTransformer){const Xe=this.getAudioDataAsInt16(le);this.wasmTransformer.getInputFrame(Xe.length).set(Xe),this.wasmTransformer.push(le.numberOfFrames,le.sampleRate,le.numberOfChannels)}Le.enqueue(le)},Ft.getWav=function(){if(!this.wasmTransformer)return"";this.wasmTransformer.close();const le=this.wasmTransformer.getWav();return`data:audio/wav;base64,${btoa(new Uint8Array(le).reduce((Xe,Oe)=>Xe+String.fromCharCode(Oe),""))}`},Ft.getAudioDataAsInt16=function(le){const Le=this.getAudioDataAsFloat32(le),Xe=new Int16Array(Le.length);for(let Oe=0;Oe<Le.length;++Oe)Xe[Oe]=Math.round(Le[Oe]*65535);return Xe},Ft.getAudioDataAsFloat32=function(le){return this.audioDataToTypedArray(le,Float32Array,"f32-planar",1)},Ft.audioDataToTypedArray=function(le,Le,Xe,Oe){Oe===void 0&&(Oe=le.numberOfChannels);const mt=le.numberOfFrames*Oe,Wt=new Le(mt);for(let Mt=0;Mt<Oe;++Mt){const pn=le.numberOfFrames*Mt,on=Wt.subarray(pn,pn+le.numberOfFrames);le.copyTo(on,{planeIndex:Mt,format:Xe})}return Wt},dt}();r.WavExporterTransformer=fd}).call(this,i(2),i(27))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(12)),d=a(i(724)),c=a(i(76)),u=i(25);const h=c.default.ACTIVE_VIDEO,f=c.default.ACTIVE_VIDEO_WITH_WARNING,g=c.default.SUSPENDED_VIDEO;var b=p=>{let y=p.getAllPeerConnections;const m=new s.default,F=(0,d.default)();F.on("stateChange",function(){for(var B=arguments.length,N=new Array(B),S=0;S<B;S++)N[S]=arguments[S];return m.emit("stateChange",...N)});const R=function(){var B=(0,l.default)(o.default.mark(function N(){var S,X;return o.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:return E.next=2,y();case 2:S=E.sent,X=S.reduce((v,j)=>{var H;return Math.max(v,(H=j.getAudioFallbackState())==null?void 0:H.videoState)},h),F.setState(X);case 5:case"end":return E.stop()}},N)}));return function(){return B.apply(this,arguments)}}();return Object.assign(m,{onPeerConnectionStateChange:B=>{let N=B.state,S=B.peerConnection,X=B.publishVideo,J=B.stream,E=B.peerId;if(X){const v=S.getSourceStreamId()==="MANTIS"?void 0:E,j=H=>{let K=H.activeState,Fe=H.congestionLevel;J.setChannelActiveState({activeState:K,congestionLevel:Fe,channelType:"video",activeReason:"auto",subscriberId:v})};switch(N){case h:j({activeState:!0,congestionLevel:u.LOW});break;case f:j({activeState:!0,congestionLevel:u.MEDIUM});break;case g:j({activeState:!1,congestionLevel:u.CRITICAL});break}}R()},onPeerConnectionDisconnected:()=>{R()},reset:()=>F.reset(),getState:()=>F.getState()})};r.default=b},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(12)),l=a(i(76)),d=()=>{const c=new o.default;let u=l.default.ACTIVE_VIDEO;return Object.assign(c,{getState(){return u},setState(h){if(!Object.values(l.default).includes(h))throw new Error("Invalid video state: ",h);if(h===u)return;const f=u;u=h,c.emit("stateChange",{state:u,previousState:f})},reset(){u=l.default.ACTIVE_VIDEO}})};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(4)),l=a(i(5));function s(d){let c=!1;return function(){var u=(0,l.default)(o.default.mark(function f(){var g,A,b,p=arguments;return o.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:if(!c){m.next=2;break}throw new Error("The previous call to this function has not yet completed.");case 2:for(c=!0,m.prev=3,g=p.length,A=new Array(g),b=0;b<g;b++)A[b]=p[b];return m.next=7,d.call(this,...A);case 7:return m.abrupt("return",m.sent);case 8:return m.prev=8,c=!1,m.finish(8);case 11:case"end":return m.stop()}},f,this,[[3,,8,11]])}));function h(){return u.apply(this,arguments)}return h}()}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(40)),l=a(i(334)),s=a(i(285)),d=c=>{const u=(0,o.default)(c,["audioDeviceId","audioFallback","audioFallbackEnabled","audioSource","audioFilter","channels","classNames","constraints","disableAudioInputDeviceManagement","disableAudioProcessing","echoCancellation","noiseSuppression","autoGainControl","enableRenegotiation","enableStereo","facingMode","fitMode","frameRate","height","insertDefaultUI","insertMode","audioBitrate","maxResolution","minVideoBitrate","mirror","name","publishAudio","publishVideo","publishCaptions","resolution","scalableScreenshare","scalableVideo","showControls","style","videoContentHint","videoDeviceId","videoDimensions","videoFilter","videoSource","width"]);return u.style&&(u.style=(0,s.default)(u.style)),u.videoFilter&&(u.videoFilter=(0,l.default)(u.videoFilter)),u};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(29)),l=a(i(50)),s=a(i(109)),d=a(i(17));const c=(0,d.default)();var u=h=>{let f=h.publisher,g=h.widgetView,A=0,b=0;const p=new s.default(()=>{const y=f.listenerCount(o.default.AUDIO_LEVEL_UPDATED);if((0,l.default)()-b>1e4&&y===0){p.stop();return}const F=g&&g.video();if(F){const R=F.getAudioInputLevel();A=R,y>0&&f.dispatchEvent(new c.AudioLevelUpdatedEvent(R))}});Object.defineProperty(f,"loudness",{get(){return p.start(),b=(0,l.default)(),A},set(){throw new TypeError("Cannot set readonly property loudness")}}),f.listenerCount(o.default.AUDIO_LEVEL_UPDATED)&&p.start(),f.on("audioLevelUpdated:added",()=>{p.start()}),f.once(o.default.PUBLISHER_DESTROYED,()=>{p.stop()})};r.default=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(14)),l=a(i(8));const s=(0,o.default)();function d(c){const u=document.createElement("canvas");if(!u.captureStream)throw s(l.default.NOT_SUPPORTED,new Error("Your browser does not support HTMLCanvasElement.captureStream()"));u.width=c.width,u.height=c.height,u.getContext("2d").fillRect(0,0,1,1);const h=u.captureStream().getVideoTracks(),f=h[0];return f.isCreatedCanvas=!0,f.enabled=!1,f}},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=c=>c.getSettings&&c.getSettings().deviceId,o=c=>{let u;return c.getConstraints&&c.getConstraints().deviceId&&(u=c.getConstraints().deviceId.exact),u},l=(c,u)=>{let h;if(u&&u.length){const f=u.find(g=>g.label===c.label);f&&(h=f.deviceId)}return h},s=(c,u)=>a(c)||o(c)||l(c,u);var d=(c,u)=>{if(!c)return null;const h=c.getVideoTracks(),f=h[0];return f?s(f,u):null};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(10)),l=a(i(8)),s=a(i(14));const d=(0,s.default)();var c=u=>{const h=["403","404","409"],f=String(u.code);return f==="405"&&u.message==="IncompatibleEncryptionSettings"?d(l.default.STREAM_CREATE_FAILED,new Error("IncompatibleEncryptionSettings: Tried to publish a stream to an encrypted session without enabling encryption"),o.default.UNABLE_TO_PUBLISH):h.includes(f)?d(l.default.STREAM_CREATE_FAILED,new Error(`Failed to create stream in server model: ${u.message}`),o.default.UNABLE_TO_PUBLISH):d(l.default.UNEXPECTED_SERVER_RESPONSE,new Error(`Unexpected server response: ${u.message}`),o.default.UNEXPECTED_SERVER_RESPONSE)};r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(1)),d=a(i(3)),c=a(i(335)),u=a(i(733)),h=i(71);const f=(0,s.default)("MediaProcessor");function g(b){var p=this;b===void 0&&(b={});const y=b,m=y.ML,F=m===void 0?c.default:m,R=y.MediaTransform,C=R===void 0?u.default:R,B=y.getProxyUrl,N=B===void 0?h.getProxyUrl:B;let S,X,J,E;this.isValidVideoFilter=v=>{const j=v.type;return C.isSupported(j)&&C.isValidConfig(v)},this.canUpdateVideoFilter=v=>["backgroundBlur","backgroundReplacement"].includes(v),this.updateVideoFilter=function(){var v=(0,l.default)(o.default.mark(function j(H){var K,Fe,z;return o.default.wrap(function(Ae){for(;;)switch(Ae.prev=Ae.next){case 0:if(K=H.type,p.canUpdateVideoFilter(K)){Ae.next=4;break}return f.warn(`Ignoring: filter "${K}" doesn't support real-time updates`),Ae.abrupt("return");case 4:return Fe=C.getConfigurator(K),z=Fe.getConfig(Object.assign({proxyUrl:N()},H)),Ae.next=8,X.setBackgroundOptions(z);case 8:J=H;case 9:case"end":return Ae.stop()}},j)}));return function(j){return v.apply(this,arguments)}}(),this.setVideoFilter=function(){var v=(0,l.default)(o.default.mark(function j(H){var K,Fe,z,q;return o.default.wrap(function(Ke){for(;;)switch(Ke.prev=Ke.next){case 0:if(K=H.type,Fe=C.getConfigurator(K),Fe){Ke.next=5;break}return f.warn(`Ignoring: filter "${K}" isn't supported`),Ke.abrupt("return");case 5:if(z=Fe.getConfig(Object.assign({proxyUrl:N()},H)),z){Ke.next=9;break}return f.warn(`Ignoring: couldn't configure filter ${K}`),Ke.abrupt("return");case 9:if(q=!!p.getVideoFilter(),!q){Ke.next=20;break}return Ke.prev=11,Ke.next=14,p.destroy();case 14:Ke.next=20;break;case 16:return Ke.prev=16,Ke.t0=Ke.catch(11),f.warn(`Ignoring, couldn't remove previous filter: ${Ke.t0}`),Ke.abrupt("return");case 20:return Ke.next=22,F.createProcessor(z);case 22:return X=Ke.sent,Ke.next=25,X.getConnector();case 25:S=Ke.sent,J=H;case 27:case"end":return Ke.stop()}},j,null,[[11,16]])}));return function(j){return v.apply(this,arguments)}}(),this.getVideoFilter=()=>J,this.getOriginalVideoTrack=()=>E,this.setMediaStream=function(){var v=(0,l.default)(o.default.mark(function j(H){var K,Fe,z;return o.default.wrap(function(Ae){for(;;)switch(Ae.prev=Ae.next){case 0:if(K=H.getVideoTracks(),Fe=K[0],Fe){Ae.next=4;break}return f.warn("Ignoring. No video track found"),Ae.abrupt("return",null);case 4:return z=null,Ae.prev=5,Ae.next=8,S.setTrack(Fe);case 8:z=Ae.sent,E=Fe,Ae.next=15;break;case 12:Ae.prev=12,Ae.t0=Ae.catch(5),f.error(`Error setting media stream: ${Ae.t0}`);case 15:return Ae.abrupt("return",z);case 16:case"end":return Ae.stop()}},j,null,[[5,12]])}));return function(j){return v.apply(this,arguments)}}(),this.setVideoTrack=function(){var v=(0,l.default)(o.default.mark(function j(H){var K;return o.default.wrap(function(z){for(;;)switch(z.prev=z.next){case 0:return K=null,z.prev=1,z.next=4,S.setTrack(H);case 4:K=z.sent,E=H,z.next=11;break;case 8:z.prev=8,z.t0=z.catch(1),f.error(`Error setting video track: ${z.t0}`);case 11:return z.abrupt("return",K);case 12:case"end":return z.stop()}},j,null,[[1,8]])}));return function(j){return v.apply(this,arguments)}}(),this._setConnector=v=>{S=v},this.destroy=(0,l.default)(o.default.mark(function v(){return o.default.wrap(function(H){for(;;)switch(H.prev=H.next){case 0:return H.prev=0,H.next=3,S.destroy();case 3:H.next=8;break;case 5:H.prev=5,H.t0=H.catch(0),f.warn(`Error destroying connector: ${H.t0}`);case 8:S=null,J=null,E=null;case 11:case"end":return H.stop()}},v,null,[[0,5]])})),this.enableLogging=v=>{if(!v){f.warn("Error enabling logging: invalid API key");return}const j={appId:v,sourceType:"video"},H=N();H&&(j.proxyUrl=H),F.setMetadata(j)},this.disableLogging=()=>{F.setMetadata()}}g.isSupported=function(b){b===void 0&&(b={});const p=b,y=p.env,m=y===void 0?d.default:y,F=p.ML,R=F===void 0?c.default:F;return!!m.isChromium&&R.isSupported()};var A=g;r.default=A},function(n,r,i){i.r(r),(function(a,o){i.d(r,"ErrorFunction",function(){return xr}),i.d(r,"MediaProcessor",function(){return Va}),i.d(r,"MediaProcessorConnector",function(){return _a}),i.d(r,"PipelineInfoData",function(){return Hi}),i.d(r,"VonageSourceType",function(){return Ke}),i.d(r,"WarningType",function(){return hr}),i.d(r,"getVonageMetadata",function(){return dr}),i.d(r,"isSupported",function(){return c}),i.d(r,"setVonageMetadata",function(){return zn});var l=Object.defineProperty,s=(dn,St,mn)=>St in dn?l(dn,St,{enumerable:!0,configurable:!0,writable:!0,value:mn}):dn[St]=mn,d=(dn,St,mn)=>(s(dn,typeof St!="symbol"?St+"":St,mn),mn);function c(){return new a((dn,St)=>{typeof MediaStreamTrackProcessor>"u"||typeof MediaStreamTrackGenerator>"u"?St("Your browser does not support the MediaStreamTrack API for Insertable Streams of Media."):dn()})}class u{}d(u,"updates",{transformer_new:"New transformer",transformer_null:"Null transformer"}),d(u,"errors",{transformer_none:"No transformers provided",transformer_start:"Cannot start transformer",transformer_transform:"Cannot transform frame",transformer_flush:"Cannot flush transformer",readable_null:"Readable is null",writable_null:"Writable is null"});const h=new WeakMap,f=new WeakMap,g=new WeakMap,A=Symbol("anyProducer"),b=a.resolve(),p=Symbol("listenerAdded"),y=Symbol("listenerRemoved");let m=!1;function F(dn){if(typeof dn!="string"&&typeof dn!="symbol")throw new TypeError("eventName must be a string or a symbol")}function R(dn){if(typeof dn!="function")throw new TypeError("listener must be a function")}function C(dn,St){const mn=f.get(dn);return mn.has(St)||mn.set(St,new Set),mn.get(St)}function B(dn,St){const mn=typeof St=="string"||typeof St=="symbol"?St:A,_n=g.get(dn);return _n.has(mn)||_n.set(mn,new Set),_n.get(mn)}function N(dn,St,mn){const _n=g.get(dn);if(_n.has(St))for(const vr of _n.get(St))vr.enqueue(mn);if(_n.has(A)){const vr=a.all([St,mn]);for(const ha of _n.get(A))ha.enqueue(vr)}}function S(dn,St){St=Array.isArray(St)?St:[St];let mn=!1,_n=()=>{},vr=[];const ha={enqueue(Mi){vr.push(Mi),_n()},finish(){mn=!0,_n()}};for(const Mi of St)B(dn,Mi).add(ha);return{async next(){return vr?vr.length===0?mn?(vr=void 0,this.next()):(await new a(Mi=>{_n=Mi}),this.next()):{done:!1,value:await vr.shift()}:{done:!0}},async return(Mi){vr=void 0;for(const Fi of St)B(dn,Fi).delete(ha);return _n(),arguments.length>0?{done:!0,value:await Mi}:{done:!0}},[Symbol.asyncIterator](){return this}}}function X(dn){if(dn===void 0)return v;if(!Array.isArray(dn))throw new TypeError("`methodNames` must be an array of strings");for(const St of dn)if(!v.includes(St))throw typeof St!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${St} is not Emittery method`);return dn}const J=dn=>dn===p||dn===y;class E{static mixin(St,mn){return mn=X(mn),_n=>{if(typeof _n!="function")throw new TypeError("`target` must be function");for(const Mi of mn)if(_n.prototype[Mi]!==void 0)throw new Error(`The property \`${Mi}\` already exists on \`target\``);function vr(){return Object.defineProperty(this,St,{enumerable:!1,value:new E}),this[St]}Object.defineProperty(_n.prototype,St,{enumerable:!1,get:vr});const ha=Mi=>function(...Fi){return this[St][Mi](...Fi)};for(const Mi of mn)Object.defineProperty(_n.prototype,Mi,{enumerable:!1,value:ha(Mi)});return _n}}static get isDebugEnabled(){if(typeof o!="object")return m;const{env:St}=o||{env:{}};return St.DEBUG==="emittery"||St.DEBUG==="*"||m}static set isDebugEnabled(St){m=St}constructor(St={}){h.set(this,new Set),f.set(this,new Map),g.set(this,new Map),this.debug=St.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(mn,_n,vr,ha)=>{try{ha=JSON.stringify(ha)}catch{ha=`Object with the following keys failed to stringify: ${Object.keys(ha).join(",")}`}typeof vr=="symbol"&&(vr=vr.toString());const Mi=new Date,Fi=`${Mi.getHours()}:${Mi.getMinutes()}:${Mi.getSeconds()}.${Mi.getMilliseconds()}`;console.log(`[${Fi}][emittery:${mn}][${_n}] Event Name: ${vr} data: ${ha}`)})}logIfDebugEnabled(St,mn,_n){(E.isDebugEnabled||this.debug.enabled)&&this.debug.logger(St,this.debug.name,mn,_n)}on(St,mn){R(mn),St=Array.isArray(St)?St:[St];for(const _n of St)F(_n),C(this,_n).add(mn),this.logIfDebugEnabled("subscribe",_n,void 0),J(_n)||this.emit(p,{eventName:_n,listener:mn});return this.off.bind(this,St,mn)}off(St,mn){R(mn),St=Array.isArray(St)?St:[St];for(const _n of St)F(_n),C(this,_n).delete(mn),this.logIfDebugEnabled("unsubscribe",_n,void 0),J(_n)||this.emit(y,{eventName:_n,listener:mn})}once(St){return new a(mn=>{const _n=this.on(St,vr=>{_n(),mn(vr)})})}events(St){St=Array.isArray(St)?St:[St];for(const mn of St)F(mn);return S(this,St)}async emit(St,mn){F(St),this.logIfDebugEnabled("emit",St,mn),N(this,St,mn);const _n=C(this,St),vr=h.get(this),ha=[..._n],Mi=J(St)?[]:[...vr];await b,await a.all([...ha.map(async Fi=>{if(_n.has(Fi))return Fi(mn)}),...Mi.map(async Fi=>{if(vr.has(Fi))return Fi(St,mn)})])}async emitSerial(St,mn){F(St),this.logIfDebugEnabled("emitSerial",St,mn);const _n=C(this,St),vr=h.get(this),ha=[..._n],Mi=[...vr];await b;for(const Fi of ha)_n.has(Fi)&&await Fi(mn);for(const Fi of Mi)vr.has(Fi)&&await Fi(St,mn)}onAny(St){return R(St),this.logIfDebugEnabled("subscribeAny",void 0,void 0),h.get(this).add(St),this.emit(p,{listener:St}),this.offAny.bind(this,St)}anyEvent(){return S(this)}offAny(St){R(St),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(y,{listener:St}),h.get(this).delete(St)}clearListeners(St){St=Array.isArray(St)?St:[St];for(const mn of St)if(this.logIfDebugEnabled("clear",mn,void 0),typeof mn=="string"||typeof mn=="symbol"){C(this,mn).clear();const _n=B(this,mn);for(const vr of _n)vr.finish();_n.clear()}else{h.get(this).clear();for(const _n of f.get(this).values())_n.clear();for(const _n of g.get(this).values()){for(const vr of _n)vr.finish();_n.clear()}}}listenerCount(St){St=Array.isArray(St)?St:[St];let mn=0;for(const _n of St){if(typeof _n=="string"){mn+=h.get(this).size+C(this,_n).size+B(this,_n).size+B(this).size;continue}typeof _n<"u"&&F(_n),mn+=h.get(this).size;for(const vr of f.get(this).values())mn+=vr.size;for(const vr of g.get(this).values())mn+=vr.size}return mn}bindMethods(St,mn){if(typeof St!="object"||St===null)throw new TypeError("`target` must be an object");mn=X(mn);for(const _n of mn){if(St[_n]!==void 0)throw new Error(`The property \`${_n}\` already exists on \`target\``);Object.defineProperty(St,_n,{enumerable:!1,value:this[_n].bind(this)})}}}const v=Object.getOwnPropertyNames(E.prototype).filter(dn=>dn!=="constructor");Object.defineProperty(E,"listenerAdded",{value:p,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(E,"listenerRemoved",{value:y,writable:!1,enumerable:!0,configurable:!1});var j=E;function H(dn){return typeof dn=="object"&&dn!==null&&"message"in dn&&typeof dn.message=="string"}function K(dn){if(H(dn))return dn;try{return new Error(JSON.stringify(dn))}catch{return new Error(String(dn))}}function Fe(dn){return K(dn).message}var z=Object.defineProperty,q=(dn,St,mn)=>St in dn?z(dn,St,{enumerable:!0,configurable:!0,writable:!0,value:mn}):dn[St]=mn,Ae=(dn,St,mn)=>(q(dn,St+"",mn),mn),Ke=(dn=>(dn.automation="automation",dn.test="test",dn.vbc="vbc",dn.video="video",dn.voice="voice",dn))(Ke||{});const pe="hlg.tokbox.com/prod/logging/vcp_webrtc",We="https://",xe=1e4;let $e;const Rt=new Uint8Array(16);function Be(){if(!$e&&($e=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!$e))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return $e(Rt)}const qe=[];for(let dn=0;dn<256;++dn)qe.push((dn+256).toString(16).slice(1));function at(dn,St=0){return(qe[dn[St+0]]+qe[dn[St+1]]+qe[dn[St+2]]+qe[dn[St+3]]+"-"+qe[dn[St+4]]+qe[dn[St+5]]+"-"+qe[dn[St+6]]+qe[dn[St+7]]+"-"+qe[dn[St+8]]+qe[dn[St+9]]+"-"+qe[dn[St+10]]+qe[dn[St+11]]+qe[dn[St+12]]+qe[dn[St+13]]+qe[dn[St+14]]+qe[dn[St+15]]).toLowerCase()}const Bt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),jt={randomUUID:Bt};function Ne(dn,St,mn){if(jt.randomUUID&&!dn)return jt.randomUUID();dn=dn||{};const _n=dn.random||(dn.rng||Be)();return _n[6]=_n[6]&15|64,_n[8]=_n[8]&63|128,at(_n)}function Je(dn,St){globalThis.vonage||(globalThis.vonage={}),globalThis.vonage.workerizer||(globalThis.vonage.workerizer={});let mn=globalThis.vonage.workerizer;return mn[dn]||(mn[dn]=St),mn[dn]}const ve=Je("globals",{});var Ye=(dn=>(dn.INIT="INIT",dn.FORWARD="FORWARD",dn.TERMINATE="TERMINATE",dn.GLOBALS_SYNC="GLOBALS_SYNC",dn))(Ye||{});function it(dn){return[ImageBitmap,ReadableStream,WritableStream].some(St=>dn instanceof St)}let Qt=0;function _t(dn,St,mn,_n,vr){const ha=Qt++;return dn.postMessage({id:ha,type:St,functionName:mn,args:_n},_n.filter(Mi=>it(Mi))),new a(Mi=>{vr==null||vr.set(ha,Mi)})}function Dt(dn,St){const{id:mn,type:_n}=dn,vr=Array.isArray(St)?St:[St];postMessage({id:mn,type:_n,result:St},vr.filter(ha=>it(ha)))}const Ee=Je("workerized",{});function Ge(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}async function he(){if(Ge())Dt({type:Ye.GLOBALS_SYNC},ve);else{const dn=[];for(const St in Ee){const{worker:mn,resolvers:_n}=Ee[St].workerContext;mn&&dn.push(_t(mn,Ye.GLOBALS_SYNC,"",[ve],_n))}await a.all(dn)}}function $(dn,St){if(Array.isArray(St))St.splice(0,St.length);else if(typeof St=="object")for(const mn in St)delete St[mn];for(const mn in dn)Array.isArray(dn[mn])?(St[mn]=[],$(dn[mn],St[mn])):typeof dn[mn]=="object"?(St[mn]={},$(dn[mn],St[mn])):St[mn]=dn[mn]}async function ie(dn,St){const{functionName:mn,args:_n}=dn;if(!St.instance)throw"instance not initialized";if(!mn)throw"missing function name to call";if(!St.instance[mn])throw`undefined function [${mn}] in class ${St.instance.constructor.workerId}`;Dt(dn,await St.instance[mn](..._n??[]))}const Ve=Je("registeredWorkers",{});function _e(dn,St){if(!dn.args)throw"Missing className while initializing worker";const[mn,_n]=dn.args,vr=Ve[mn];if(vr)St.instance=new vr(dn.args.slice(1));else throw`unknown worker class ${mn}`;$(_n,ve),Dt(dn,typeof St.instance!==void 0)}async function we(dn,St){const{args:mn}=dn;if(!St.instance)throw"instance not initialized";let _n;St.instance.terminate&&(_n=await St.instance.terminate(...mn??[])),Dt(dn,_n)}function nt(dn){if(!dn.args)throw"Missing globals while syncing";$(dn.args[0],ve),Dt(dn,{})}function Gt(){const dn={};onmessage=async St=>{const mn=St.data;switch(mn.type){case Ye.INIT:_e(mn,dn);break;case Ye.FORWARD:ie(mn,dn);break;case Ye.TERMINATE:we(mn,dn);break;case Ye.GLOBALS_SYNC:nt(mn);break}}}Ge()&&Gt();function An(dn,St){return ve[dn]||(ve[dn]=St),[()=>ve[dn],async mn=>{ve[dn]=mn,await he()}]}function Dn(dn,St){return An(dn,St)}const[tr,nr]=Dn("metadata");function zn(dn){nr(dn)}function dr(){return tr()}class Dr{constructor(St){Ae(this,"uuid",Ne()),this.config=St}async send(St){var mn,_n,vr;const{appId:ha,sourceType:Mi}=(mn=dr())!=null?mn:{};if(!ha||!Mi)return"metadata missing";const Fi=new AbortController,In=setTimeout(()=>Fi.abort(),xe);return await((vr=(_n=this.config)==null?void 0:_n.fetch)!=null?vr:fetch)(this.getUrl(),{method:"POST",headers:this.getHeaders(),body:JSON.stringify(this.buildReport(St)),signal:Fi.signal}),clearTimeout(In),"success"}getUrl(){var St;let mn=(St=dr().proxyUrl)!=null?St:We;return mn+=(mn.at(-1)==="/"?"":"/")+pe,mn}getHeaders(){return{"Content-Type":"application/json"}}buildReport(St){const mn=dr();return{guid:this.uuid,...St,applicationId:mn.appId,timestamp:Date.now(),proxyUrl:mn.proxyUrl,source:mn.sourceType}}}const ui="2.0.3";class Pn{constructor(St){d(this,"frameTransformedCount",0),d(this,"frameFromSourceCount",0),d(this,"startAt",0),d(this,"reporter"),this.config=St,this.reporter=new Dr(St)}async onFrameFromSource(){this.frameFromSourceCount++}get fps(){const{startAt:St,frameFromSourceCount:mn}=this,_n=(Date.now()-St)/1e3;return mn/_n}async onFrameTransformed(St={},mn=!1){this.startAt===0&&(this.startAt=Date.now()),this.frameTransformedCount++;const{startAt:_n,frameTransformedCount:vr,frameFromSourceCount:ha}=this,Mi=Date.now(),Fi=(Mi-_n)/1e3,In=vr/Fi,Fa=ha/Fi;return mn||this.frameTransformedCount>=this.config.loggingIntervalFrameCount?(this.frameFromSourceCount=0,this.frameTransformedCount=0,this.startAt=Mi,this.reporter.config=this.config,this.reporter.send({...this.config.report,variation:"QoS",fps:Fa,transformedFps:In,framesTransformed:vr,...St})):"success"}}var hr=(dn=>(dn.FPS_DROP="fps_drop",dn))(hr||{}),xr=(dn=>(dn.start="start",dn.transform="transform",dn.flush="flush",dn))(xr||{}),Hi=(dn=>(dn.pipeline_ended="pipeline_ended",dn.pipeline_ended_with_error="pipeline_ended_with_error",dn.pipeline_started="pipeline_started",dn.pipeline_started_with_error="pipeline_started_with_error",dn.pipeline_restarted="pipeline_restarted",dn.pipeline_restarted_with_error="pipeline_restarted_with_error",dn))(Hi||{});const Di=500,Da=.8;class oi extends j{constructor(St,mn){super(),d(this,"reporter_",new Dr),d(this,"reporterQos_",new Pn({loggingIntervalFrameCount:Di,report:{version:ui}})),d(this,"transformerType_"),d(this,"transformer_"),d(this,"shouldStop_"),d(this,"isFlashed_"),d(this,"mediaTransformerQosReportStartTimestamp_"),d(this,"videoHeight_"),d(this,"videoWidth_"),d(this,"trackExpectedRate_"),d(this,"index_"),d(this,"controller_"),this.index_=mn,this.transformer_=St,this.shouldStop_=!1,this.isFlashed_=!1,this.mediaTransformerQosReportStartTimestamp_=0,this.videoHeight_=0,this.videoWidth_=0,this.trackExpectedRate_=-1,this.transformerType_="Custom","getTransformerType"in St&&(this.transformerType_=St.getTransformerType()),this.report({variation:"Create"})}setTrackExpectedRate(St){this.trackExpectedRate_=St}async start(St){if(this.controller_=St,this.transformer_&&typeof this.transformer_.start=="function")try{await this.transformer_.start(St)}catch(mn){this.report({message:u.errors.transformer_start,variation:"Error",error:Fe(mn)});const _n={eventMetaData:{transformerIndex:this.index_},error:mn,function:"start"};this.emit("error",_n)}}async transform(St,mn){var _n,vr,ha,Mi;if(this.mediaTransformerQosReportStartTimestamp_===0&&(this.mediaTransformerQosReportStartTimestamp_=Date.now()),St instanceof VideoFrame&&(this.videoHeight_=(_n=St==null?void 0:St.displayHeight)!=null?_n:0,this.videoWidth_=(vr=St==null?void 0:St.displayWidth)!=null?vr:0),this.reporterQos_.onFrameFromSource(),this.transformer_)if(this.shouldStop_)console.warn("[Pipeline] flush from transform"),St.close(),this.flush(mn),mn.terminate();else{try{await((Mi=(ha=this.transformer_).transform)==null?void 0:Mi.call(ha,St,mn)),this.reportQos()}catch(Fi){this.report({message:u.errors.transformer_transform,variation:"Error",error:Fe(Fi)});const In={eventMetaData:{transformerIndex:this.index_},error:Fi,function:"transform"};this.emit("error",In)}if(this.trackExpectedRate_!=-1&&this.trackExpectedRate_*Da>this.reporterQos_.fps){const Fi={eventMetaData:{transformerIndex:this.index_},warningType:"fps_drop",dropInfo:{requested:this.trackExpectedRate_,current:this.reporterQos_.fps}};this.emit("warn",Fi)}}}async flush(St){if(this.transformer_&&typeof this.transformer_.flush=="function"&&!this.isFlashed_){this.isFlashed_=!0;try{await this.transformer_.flush(St)}catch(mn){this.report({message:u.errors.transformer_flush,variation:"Error",error:Fe(mn)});const _n={eventMetaData:{transformerIndex:this.index_},error:mn,function:"flush"};this.emit("error",_n)}}this.reportQos(!0),this.report({variation:"Delete"})}stop(){console.log("[Pipeline] Stop stream."),this.controller_&&(this.flush(this.controller_),this.controller_.terminate()),this.shouldStop_=!0}report(St){this.reporter_.send({version:ui,action:"MediaTransformer",transformerType:this.transformerType_,...St})}reportQos(St=!1){this.reporterQos_.config={...this.reporterQos_.config},this.reporterQos_.onFrameTransformed({version:ui,action:"MediaTransformer",transformerType:this.transformerType_,videoWidth:this.videoWidth_,videoHeight:this.videoHeight_},St)}}class Ra extends j{constructor(St){super(),d(this,"transformers_"),d(this,"trackExpectedRate_"),this.transformers_=[],this.trackExpectedRate_=-1;for(let mn=0;mn<St.length;mn++){let _n=new oi(St[mn],mn);_n.on("error",vr=>{this.emit("error",vr)}),_n.on("warn",vr=>{this.emit("warn",vr)}),this.transformers_.push(_n)}}setTrackExpectedRate(St){this.trackExpectedRate_=St;for(let mn of this.transformers_)mn.setTrackExpectedRate(this.trackExpectedRate_)}async start(St,mn){if(!this.transformers_||this.transformers_.length===0){console.log("[Pipeline] No transformers.");return}try{let _n=St;for(let vr of this.transformers_)St=St.pipeThrough(new TransformStream(vr));St.pipeTo(mn).then(async()=>{console.log("[Pipeline] Setup."),await mn.abort(),await _n.cancel(),this.emit("pipelineInfo","pipeline_ended")}).catch(async vr=>{St.cancel().then(()=>{console.log("[Pipeline] Shutting down streams after abort.")}).catch(ha=>{console.error("[Pipeline] Error from stream transform:",ha)}),await mn.abort(vr),await _n.cancel(vr),this.emit("pipelineInfo","pipeline_ended_with_error")})}catch{this.emit("pipelineInfo","pipeline_started_with_error"),this.destroy();return}this.emit("pipelineInfo","pipeline_started"),console.log("[Pipeline] Pipeline started.")}async destroy(){console.log("[Pipeline] Destroying Pipeline.");for(let St of this.transformers_)St.stop()}}class Va extends j{constructor(){super(),d(this,"reporter_"),d(this,"pipeline_"),d(this,"transformers_"),d(this,"readable_"),d(this,"writable_"),d(this,"trackExpectedRate_"),this.reporter_=new Dr,this.trackExpectedRate_=-1,this.report({variation:"Create"})}setTrackExpectedRate(St){this.trackExpectedRate_=St,this.pipeline_&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_)}transform(St,mn){return this.readable_=St,this.writable_=mn,this.transformInternal()}transformInternal(){return new a(async(St,mn)=>{if(!this.transformers_||this.transformers_.length===0){this.report({message:u.errors.transformer_none,variation:"Error"}),mn("[MediaProcessor] Need to set transformers.");return}if(!this.readable_){this.report({variation:"Error",message:u.errors.readable_null}),mn("[MediaProcessor] Readable is null.");return}if(!this.writable_){this.report({variation:"Error",message:u.errors.writable_null}),mn("[MediaProcessor] Writable is null.");return}let _n=!1;this.pipeline_&&(_n=!0,this.pipeline_.clearListeners(),this.pipeline_.destroy()),this.pipeline_=new Ra(this.transformers_),this.pipeline_.on("warn",vr=>{this.emit("warn",vr)}),this.pipeline_.on("error",vr=>{this.emit("error",vr)}),this.pipeline_.on("pipelineInfo",vr=>{_n&&(vr==="pipeline_started"?vr=Hi.pipeline_restarted:vr==="pipeline_started_with_error"&&(vr=Hi.pipeline_restarted_with_error)),this.emit("pipelineInfo",vr)}),this.trackExpectedRate_!=-1&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_),this.pipeline_.start(this.readable_,this.writable_).then(()=>{St()}).catch(vr=>{mn(vr)})})}setTransformers(St){return this.report({variation:"Update",message:u.updates.transformer_new}),this.transformers_=St,this.readable_&&this.writable_?this.transformInternal():a.resolve()}destroy(){return new a(async St=>{this.pipeline_&&this.pipeline_.destroy(),this.report({variation:"Delete"}),St()})}report(St){this.reporter_.send({version:ui,action:"MediaProcessor",...St})}}class fi{constructor(){d(this,"processor_"),d(this,"generator_"),this.processor_=null,this.generator_=null}init(St){return new a((mn,_n)=>{try{this.processor_=new MediaStreamTrackProcessor(St)}catch(vr){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${vr}`),_n(vr)}try{St.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):St.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):_n("kind not supported")}catch(vr){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${vr}`),_n(vr)}mn()})}getReadable(){return this.processor_.readable}getWriteable(){return this.generator_.writable}getProccesorTrack(){return this.generator_}}class _a{constructor(St){d(this,"insertableStreamHelper_"),d(this,"mediaProcessor_"),this.insertableStreamHelper_=new fi,this.mediaProcessor_=St}setTrack(St){return new a((mn,_n)=>{this.insertableStreamHelper_.init(St).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{mn(this.insertableStreamHelper_.getProccesorTrack())}).catch(vr=>{_n(vr)})}).catch(vr=>{_n(vr)})})}destroy(){return new a((St,mn)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{St()}).catch(_n=>{mn(_n)}):mn("no processor")})}}}).call(this,i(2),i(27))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(734)),l=a(i(735));const s={backgroundBlur:l.default,backgroundReplacement:o.default},d=g=>!!s[g],c=g=>d(g)?s[g]:null;var f={isSupported:d,getConfigurator:c,isValidConfig:g=>{const A=g.type;return d(A)?c(A).isValidConfig(g):!1}};r.default=f},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=i(179),l=a(i(180));const s=f=>Object.assign({},l.default.getConfig(f),{transformerType:"VirtualBackground",renderingOptions:{type:o.RenderingType.CANVAS}}),d=f=>/^data:image\/(?:png|jpeg|bmp|gif);base64/.test(f)||/\.(?:png|jpe?g|bmp|gif)$/i.test(f);var h={isValidConfig:f=>{if((f==null?void 0:f.type)!=="backgroundReplacement")return!1;const g=f.backgroundImgUrl;return d(g)},getConfig:function(g){g===void 0&&(g={});const A=s(g),b=g,p=b.backgroundImgUrl;return d(p)&&(A.backgroundAssetUri=p),A}};r.default=h},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=i(179),l=a(i(180));const s=o.BlurRadius.High,d=A=>Object.assign({},l.default.getConfig(A),{transformerType:"BackgroundBlur",radius:s,renderingOptions:{type:o.RenderingType.CANVAS}}),c=A=>A==="low"||A==="high",u=A=>A==="low"?o.BlurRadius.Low:o.BlurRadius.High;var g={isValidConfig:A=>{if((A==null?void 0:A.type)!=="backgroundBlur")return!1;const b=A.blurStrength;return b?c(b):!0},getConfig:function(b){b===void 0&&(b={});const p=d(b),y=b,m=y.blurStrength;return c(m)&&(p.radius=u(m)),p}};r.default=g},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>o?!!o.apiKey:!1;r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(738)),d=a(i(22)),c=a(i(17)),u=function(f){f===void 0&&(f={});const g=f.getAudioInputDevicesChangeHandler||s.default,A=f.getNativeMediaDevicesFactory||d.default,b=g(),p=A(),y=p.getNativeMediaDevices,m=(0,c.default)();return R=>{let C=!1;const B=function(){var X=(0,l.default)(o.default.mark(function J(){var E;return o.default.wrap(function(j){for(;;)switch(j.prev=j.next){case 0:if(!C){j.next=2;break}return j.abrupt("return");case 2:return C=!0,j.next=5,b();case 5:return E=j.sent,C=!1,j.next=9,R.setAudioSource(E.deviceId);case 9:R.dispatchEvent(m.AudioInputDeviceChangedEvent(E));case 10:case"end":return j.stop()}},J)}));return function(){return X.apply(this,arguments)}}(),N=y();return N.addEventListener("devicechange",B),()=>{N.removeEventListener("devicechange",B)}}};r.default=u},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(22)),d=a(i(253)),c=function(h){h===void 0&&(h={});const f=h.deviceHelpers||(0,s.default)(),g=f.getAudioInputMediaDevices,A=f.getDefaultAudioInputDevice,b=f.hasDevice,p=h.currentAudioOutputDevice||d.default,y=p.getCurrentAudioInputDevice,m=p.setCurrentAudioInputDevice;return function(){var R=(0,l.default)(o.default.mark(function C(){var B,N,S,X;return o.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:return E.next=2,g();case 2:if(B=E.sent,B.length!==0){E.next=6;break}return m(""),E.abrupt("return");case 6:if(N=y(),S=b(B,N.deviceId),X=A(B),!(S&&N.label===X.label)){E.next=11;break}return E.abrupt("return");case 11:return m(X),E.abrupt("return",X);case 13:case"end":return E.stop()}},C)}));return function(){return R.apply(this,arguments)}}()};r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(1));let d=function(u){var h=this;u===void 0&&(u={}),this.replaceTrackInMutedAudioTracks=function(){var f=(0,l.default)(o.default.mark(function g(A,b,p){var y,m;return o.default.wrap(function(R){for(;;)switch(R.prev=R.next){case 0:if(!(h.mutedMantisAudioTracksInAMR[p.id]&&A!=null&&A.hasTrack(h.mutedMantisAudioTracksInAMR[p.id]))){R.next=2;break}return R.abrupt("return");case 2:return y=p.clone(),y.enabled=!1,m=h.mutedMantisAudioTracksInAMR[b.id],R.prev=5,R.next=8,A.findAndReplaceTrack(m,y);case 8:R.next=14;break;case 10:return R.prev=10,R.t0=R.catch(5),h.logging.error(`Error swapping AMR audio track: ${R.t0}`),R.abrupt("return");case 14:h.mutedMantisAudioTracksInAMR[p.id]=y,delete h.mutedMantisAudioTracksInAMR[b.id];case 16:case"end":return R.stop()}},g,null,[[5,10]])}));return function(g,A,b){return f.apply(this,arguments)}}(),this.unmuteAudioInPeerConnection=function(){var f=(0,l.default)(o.default.mark(function g(A,b){return o.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:A.getAudioTracks().forEach(function(){var m=(0,l.default)(o.default.mark(function F(R){return o.default.wrap(function(B){for(;;)switch(B.prev=B.next){case 0:return B.prev=0,B.next=3,b.findAndReplaceTrack(h.mutedMantisAudioTracksInAMR[R.id],R);case 3:B.next=8;break;case 5:return B.prev=5,B.t0=B.catch(0),B.abrupt("return");case 8:delete h.mutedMantisAudioTracksInAMR[R.id];case 9:case"end":return B.stop()}},F,null,[[0,5]])}));return function(F){return m.apply(this,arguments)}}()),h.amrAudioMuted=!1;case 2:case"end":return y.stop()}},g)}));return function(g,A){return f.apply(this,arguments)}}(),this.muteAudioInPeerConnection=function(){var f=(0,l.default)(o.default.mark(function g(A,b){return o.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:if(!h.amrAudioMuted){y.next=2;break}return y.abrupt("return");case 2:h.amrAudioMuted=!0,A.getAudioTracks().forEach(function(){var m=(0,l.default)(o.default.mark(function F(R){var C;return o.default.wrap(function(N){for(;;)switch(N.prev=N.next){case 0:return C=R.clone(),C.enabled=!1,N.prev=2,N.next=5,b.findAndReplaceTrack(R,C);case 5:N.next=10;break;case 7:return N.prev=7,N.t0=N.catch(2),N.abrupt("return");case 10:h.mutedMantisAudioTracksInAMR[R.id]=C;case 11:case"end":return N.stop()}},F,null,[[2,7]])}));return function(F){return m.apply(this,arguments)}}());case 4:case"end":return y.stop()}},g)}));return function(g,A){return f.apply(this,arguments)}}(),this.destroy=()=>{Object.entries(this.mutedMantisAudioTracksInAMR).forEach(f=>{let g=f[0],A=f[1];A==null||A.stop(),delete this.mutedMantisAudioTracksInAMR[g]}),this.amrAudioMuted=!1},this.logging=u.logging||(0,s.default)("AMRTrackProcessor"),this.mutedMantisAudioTracksInAMR={},this.amrAudioMuted=!1};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.createCancellationFactory=r.callWithCancellation=void 0;var o=a(i(111));const l=()=>{let d=new o.default;return()=>(d.cancel(),d=new o.default,d)};r.createCancellationFactory=l;const s=d=>{const c=l();return function(){const u=c();for(var h=arguments.length,f=new Array(h),g=0;g<h;g++)f[g]=arguments[g];return d(...f,u)}};r.callWithCancellation=s},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=["advancedNoiseSuppression"];var o=l=>a.includes(l==null?void 0:l.type);r.default=o},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{let l;switch(o){case"motion":l="L3T1";break;case"detail":case"text":case"":default:l="L1T3";break}return l};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),d=function(){var c=(0,l.default)(o.default.mark(function u(h,f){var g,A,b;return o.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:if(!(!h||!f)){y.next=2;break}return y.abrupt("return");case 2:return y.next=4,f._getVideoSenders();case 4:return g=y.sent,A=g[0],b=A.getParameters(),b.encodings.forEach(m=>{m.scalabilityMode=h}),y.prev=8,y.next=11,A.setParameters(b);case 11:y.next=16;break;case 13:y.prev=13,y.t0=y.catch(8),console.error(`Unable to set scalabilityMode. ${y.t0.message}`);case 16:case"end":return y.stop()}},u,null,[[8,13]])}));return function(h,f){return c.apply(this,arguments)}}();r.default=d},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=function(l){return l===void 0&&(l=()=>{}),{onResolve:function(){for(var d=arguments.length,c=new Array(d),u=0;u<d;u++)c[u]=arguments[u];l(void 0,...c)},onReject:function(){l(...arguments)}}};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(12)),c=function(){var u=(0,l.default)(o.default.mark(function h(f,g){var A,b,p,y,m,F,R,C,B;return o.default.wrap(function(S){for(;;)switch(S.prev=S.next){case 0:return g===void 0&&(g={}),A=new s.default,b=g.navigator||(typeof window!==void 0?window:yr).navigator,m=function(){var X=(0,l.default)(o.default.mark(function J(){return o.default.wrap(function(v){for(;;)switch(v.prev=v.next){case 0:if(!(typeof b.permissions<"u"&&typeof b.permissions.query=="function")){v.next=12;break}return v.prev=1,v.next=4,b.permissions.query({name:"camera"});case 4:return p=v.sent,v.next=7,b.permissions.query({name:"microphone"});case 7:y=v.sent,v.next=12;break;case 10:v.prev=10,v.t0=v.catch(1);case 12:case"end":return v.stop()}},J,null,[[1,10]])}));return function(){return X.apply(this,arguments)}}(),S.next=6,m();case 6:return F=()=>{y.state==="denied"&&f&&A.emit("accessDenied","microphone")},R=()=>{p.state==="denied"&&f&&A.emit("accessDenied","camera")},C=()=>{y.removeEventListener("change",F)},B=()=>{p.removeEventListener("change",R)},p&&y&&(y.addEventListener("change",()=>{F(),C()}),p.addEventListener("change",()=>{R(),B()})),S.abrupt("return",A);case 12:case"end":return S.stop()}},h)}));return function(f,g){return u.apply(this,arguments)}}();r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(29)),l=a(i(10)),s=a(i(17));const d=(0,s.default)();var c=u=>new d.ExceptionEvent(o.default.ACCESS_DENIED,`${u} permission denied during the call`,"accessDenied",l.default.UNABLE_TO_PUBLISH);r.default=c},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=l=>l===null||l===!1;r.default=o},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{var l;const s=!!(o&&(l=o.videoSource)!=null&&l.canvas),d=!!(o&&"videoContentHint"in o);s&&!d&&(o.videoContentHint="detail")};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(156));const l=d=>!!(d!=null&&d.scalableScreenshare);var s=d=>{var c;d||(d={});const u=!!(0,o.default)((c=d)==null?void 0:c.videoSource);d.capableSimulcastScreenshare=u&&l(d)};r.default=s},function(n,r,i){var a=i(751),o=i(102),l=i(38);function s(d,c){return a(d,l(c,3),o)}n.exports=s},function(n,r){function i(a,o,l){var s;return l(a,function(d,c,u){if(o(d,c,u))return s=c,!1}),s}n.exports=i},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(10));function l(s){switch(s){case o.default.AUTHENTICATION_ERROR:case o.default.INVALID_SESSION_ID:case o.default.TERMS_OF_SERVICE_FAILURE:case o.default.UNEXPECTED_SERVER_RESPONSE:return s;case o.default.ANVIL_EMPTY_RESPONSE_BODY:case o.default.ANVIL_CONNECT_FAILED:return o.default.CONNECT_FAILED;case o.default.ANVIL_BADLY_FORMED_RESPONSE:case o.default.ANVIL_INVALID_HTTP_STATUS:case o.default.ANVIL_XDOMAIN_OR_PARSING_ERROR:case o.default.ANVIL_UNKNOWN_HTTP_ERROR:case o.default.ANVIL_UNEXPECTED_ERROR_CODE:default:return o.default.UNEXPECTED_SERVER_RESPONSE}}},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(18)),s=o(i(75)),d=c=>{let u=c.RTCPeerConnection,h=c.env,f=c.stream,g=c.codecFlags;if(h.isLegacyEdge)return!0;let A,b;const p=()=>{try{A.close()}catch{}try{b.close()}catch{}A=null,b=null};try{const y={iceServers:[]};(0,s.default)()&&(y.sdpSemantics="plan-b"),A=new u(y),b=new u(y),f.getTracks().forEach(m=>A.addTrack(m,f))}catch{return p(),a.resolve(!1)}return A.createOffer().then(y=>{const m={type:y.type,sdp:y.sdp};return Object.keys(g).forEach(F=>{g[F]||(m.sdp=l.default.removeVideoCodec(m.sdp,F))}),b.setRemoteDescription(m)}).then(()=>!0).catch(()=>!1).then(y=>(p(),y))};r.default=d}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(8));const l=o.default.INVALID_PARAMETER;var d=c=>{let u=c.otError;return h=>{if(!h)return;const f=(g,A)=>{if(!g)throw u(l,new Error(`iceConfig invalid: ${A}`))};"includeServers"in h&&f(["all","custom"].indexOf(h.includeServers)!==-1,".includeServers must be all or custom"),"transportPolicy"in h&&f(["all","relay"].indexOf(h.transportPolicy)!==-1,".transportPolicy must be all or relay"),f(Array.isArray(h.customServers),".customServers must be an array"),h.customServers.forEach(g=>{f(g.urls||!("url"in g),"ice servers need .urls, not .url"),f(typeof g.urls=="string"||Array.isArray(g.urls),"ice server .urls must be a string or an array"),f(!g.username||typeof g.username=="string","ice server .username must be a string if present"),f(!g.credential||typeof g.credential=="string","ice server .credential must be a string if present")})}};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(756)),l=(s,d)=>{const c=s||{},u=c.p2pEnabled,h=c.singlePeerConnection;return u?!1:!!h&&!(d!==!0)&&(0,o.default)()};r.default=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(757)),s=()=>{if(!(o.default.isChromium||o.default.isFirefox||o.default.isSafari))return!1;const c=o.default.name,u=o.default.version,h=l.default[c];return u>=h};r.default=s},function(n,r,i){r.__esModule=!0,r.default=void 0;var a={Chrome:118,Firefox:118,Safari:17,Edge:118,Opera:104};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(10)),l=a(i(8)),s={NOT_CONNECTED:{code:l.default.NOT_CONNECTED,message:"Cannot use forceMute functionality. You are not connected to the session.",exceptionCode:o.default.NOT_CONNECTED},PERMISSION_DENIED:{code:l.default.PERMISSION_DENIED,message:"This token does not allow forceMute usage. The role must be at least `moderator` to enable this functionality",exceptionCode:o.default.UNABLE_TO_FORCE_MUTE},INVALID_PARAMETER:{code:l.default.INVALID_PARAMETER,message:"Invalid Parameter. Check that you have passed valid parameter values into the method call.",exceptionCode:o.default.INVALID_PARAMETER},NOT_FOUND:{code:l.default.NOT_FOUND,message:"The stream does not exist."},UNEXPECTED_SERVER_RESPONSE:{code:l.default.UNEXPECTED_SERVER_RESPONSE,message:"An unexpected error occurred.",exceptionCode:o.default.UNEXPECTED_SERVER_RESPONSE}};r.default=s},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=8,o=256;var s=d=>{if(typeof d!="string")throw new Error("secret must be a string");if(d.length<a)throw new Error("secret must have at least 8 characters");if(d.length>o)throw new Error("secret must not exceed 256 characters")};r.default=s},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=N;var l=o(i(19)),s=o(i(9)),d=o(i(51)),c=o(i(16)),u=o(i(340)),h=o(i(761)),f=o(i(1)),g=o(i(10)),A=o(i(112)),b=o(i(338)),p=o(i(775)),y=o(i(339)),m=o(i(342)),F=o(i(343)),R=o(i(7)),C=o(i(344)),B=o(i(782));function N(S){S===void 0&&(S={});const X=S.convertRumorError||y.default,J=S.Dispatcher||m.default,E=S.ExceptionCodes||g.default,v=S.hasIceRestartsCapability||b.default,j=S.hasRenegotiationCapability||p.default,H=S.hasE2eeCapability||A.default,K=S.logging||(0,f.default)("RaptorSocket"),Fe=S.Message||F.default,z=S.OTHelpers||R.default,q=S.RumorSocket||(0,h.default)(),Ae=S.Signal||C.default,Ke=S.SignalError||B.default,pe=function We(xe){var $e=this;let Rt=xe.connectionId,Be=xe.sessionId,qe=xe.messagingSocketUrl,at=xe.symphonyUrl,Bt=xe.dispatcher,jt=xe.analytics,Ne=xe.requestedCapabilities,Je=Ne===void 0?[]:Ne,ve,Ye,it,Qt,_t,Dt,Ee,Ge;const he=["disconnected","connecting","connected","error","disconnecting"],$=Bt||new J,ie=z.statable(this,he,"disconnected"),Ve=function(zn){(!zn.action||!zn.variation)&&K.debug("Expected action and variation"),jt.logEvent((0,s.default)({sessionId:Ye,partnerId:ve,p2p:Dt,messagingServer:Ee,connectionId:Rt},zn))},_e=function(){for(var zn=arguments.length,dr=new Array(zn),Dr=0;Dr<zn;Dr++)dr[Dr]=arguments[Dr];const ui=dr[0];ie(ui?"error":"connected"),_t(...dr)},we=nr=>{let zn="clientDisconnected";!this.is("disconnecting")&&Ge&&(zn="networkDisconnected"),nr&&nr.code===4001&&(zn="networkTimedout"),ie("disconnected"),$.onClose(zn)},nt=nr=>{Ge=!0,K.error(nr)},Gt=()=>{$.onReconnecting()},An=()=>{Ve({action:"Reconnect",variation:"Success",retries:this._rumor.reconnectRetriesCount(),messageQueueSize:this._rumor.messageQueueSize(),socketId:this.socketId}),$.onReconnected()},Dn=()=>{Ve({action:"Reconnect",variation:"Attempt",retries:this._rumor.reconnectRetriesCount(),messageQueueSize:this._rumor.messageQueueSize(),socketId:this.socketId})},tr=nr=>{nr.message==="connectionLimitExceeded"&&(nr.code=E.CONNECTION_LIMIT_EXCEEDED),nr.reason="ConnectToSession";const zn=X(nr);Ve({action:"Reconnect",variation:"Failure",failureReason:nr.reason,failureCode:zn.code,failureMessage:zn.message,messageQueueSize:this._rumor.messageQueueSize(),socketId:this.socketId})};Object.defineProperty(this,"socketId",{get(){return this._rumor.socketID}}),this.connect=function(zn,dr,Dr,ui){if(!this.is("disconnected","error")){K.warn("Cannot connect the Raptor Socket as it is currently connected. You should disconnect first.");return}ie("connecting"),ve=dr.partnerId,Ye=dr.sessionId,Dt=dr.p2pEnabled,Ee=dr.messagingServer,it=zn,_t=ui,Qt={apiKey:ve,sessionId:Ye};const Pn=`/v2/partner/${ve}/session/${Ye}`;this._rumor=new We.RumorSocket({messagingURL:qe,notifyDisconnectAddress:at,connectionId:Rt,sessionId:Be,enableReconnection:dr.reconnection}),this._rumor.on("close",we),this._rumor.on("error",nt),this._rumor.on("reconnecting",Gt),this._rumor.on("reconnectAttempt",Dn),this._rumor.on("reconnectFailure",tr),this._rumor.on("reconnected",An),this._rumor.on("message",$.dispatch.bind($));const hr=xr=>{_e({reason:"WebSocketConnection",code:xr.code,message:xr.message})};this._rumor.once("error",hr),this._rumor.once("open",()=>{this._rumor.removeListener("error",hr),K.debug(`connected. Subscribing to ${Pn} on ${qe}`),this._rumor.subscribe([Pn]);const xr=Je;(We.hasIceRestartsCapability()||We.hasRenegotiationCapability())&&dr.renegotiation&&xr.push("renegotiation"),We.hasE2eeCapability()&&dr.e2ee&&xr.push("e2ee");const Da=Fe.connections.create({apiKey:ve,sessionId:Ye,connectionId:this._rumor.id,connectionEventsSuppressed:Dr.connectionEventsSuppressed,capabilities:xr}),oi=new a(Ra=>{const Va=fi=>{fi.id===this._rumor.id&&(Ra(fi),Bt.off("connection#created",Va))};Bt.on("connection#created",Va)});this.publish(Da,{"X-TB-TOKEN-AUTH":it},!0,(Ra,Va)=>{if(Ra){Ra.message==="connectionLimitExceeded"&&(Ra.code=E.CONNECTION_LIMIT_EXCEEDED),_e({reason:"ConnectToSession",code:Ra.code,message:Ra.message,socketId:this.socketId});return}const fi=Va&&Va.data?JSON.parse(Va.data):null;fi&&(!fi.connection||fi.connection.length===0)&&(fi.connection=[],Array.isArray(fi.stream)&&fi.stream.forEach(dn=>{let St=dn.connection;return fi.connection.push(St)}));const _a=(dn,St)=>{dn?_e({reason:"GetSessionState",code:dn.code,message:dn.message,socketId:this.socketId}):_e(void 0,St)};oi.then(dn=>{fi.connection.some(mn=>mn.id===dn.id)||fi.connection.unshift(dn);const St=(0,c.default)();$.registerCallback(St,_a),$.emit("session#read",fi,St)})})})},this.disconnect=function(){this.is("disconnected")||(ie("disconnecting"),this._rumor.disconnect())},this.publish=function(nr,zn,dr,Dr){Dr=Dr||function(){};const ui=(0,d.default)(Dr),Pn=(0,c.default)();if(K.debug(`Publish (ID:${Pn}) ${nr}`),this._rumor.readyState!==q.OPEN||this._rumor.reconnecting&&!dr){const hr=new Error("Not connected.");hr.code=500,ui(hr),K.error("cannot publish until the socket is connected.");return}return $.registerCallback(Pn,ui),this._rumor.publish([at],nr,(0,s.default)({},zn,{"Content-Type":"application/x-raptor+v2","TRANSACTION-ID":Pn,"X-TB-FROM-ADDRESS":this._rumor.id}),dr,function(hr){hr&&ui(...arguments)}),Pn},this.send=function(nr,zn){let dr=nr.message,Dr=nr.headers,ui=nr.retryAfterReconnect,Pn=ui===void 0?!0:ui;zn===void 0&&(zn=()=>{}),$e.publish((0,u.default)(dr),Dr,Pn,zn)},this.streamCreate=function(nr,zn){nr===void 0&&(nr={}),zn===void 0&&(zn=()=>{});const dr=nr,Dr=dr.name,ui=dr.streamId,Pn=dr.subscriberAudioFallbackEnabled,hr=dr.channels,xr=dr.minBitrate,Hi=dr.maxBitrate,Di=dr.sourceStreamId,Da=dr.e2ee,oi=dr.publisherAudioFallbackEnabled,Ra=dr.customProperties,Va={apiKey:ve,sessionId:Ye,streamId:ui,name:Dr,audioFallbackEnabled:Pn,subscriberAudioFallbackEnabled:Pn,channels:hr,minBitrate:xr,maxBitrate:Hi,sourceStreamId:Di,e2ee:Da,publisherAudioFallbackEnabled:oi,customProperties:Ra},fi=Fe.streams.create(Va);this.publish(fi,{},!0,(_a,dn)=>{zn(_a,ui,dn)})},this.streamDestroy=function(nr,zn){this.publish(Fe.streams.destroy(ve,Ye,nr,zn),{},!0)},this.streamChannelUpdate=function(nr,zn,dr){this.publish(Fe.streamChannels.update(ve,Ye,nr,zn,dr),{},!0)},this.subscriberCreate=function(nr,zn,dr,Dr,ui,Pn){const hr={apiKey:ve,sessionId:Ye,streamId:nr,subscriberId:zn,connectionId:this._rumor.id,channelsToSubscribeTo:dr,sourceStreamId:Dr,e2ee:ui};this.publish(Fe.subscribers.create(hr),{},!0,Pn)},this.subscriberDestroy=function(nr,zn,dr){this.publish(Fe.subscribers.destroy(ve,Ye,nr,zn,dr),{},!0)},this.subscriberUpdate=function(nr,zn,dr){this.publish(Fe.subscribers.update(ve,Ye,nr,zn,dr),{},!0)},this.subscriberChannelUpdate=function(nr,zn,dr,Dr){this.publish(Fe.subscriberChannels.update(ve,Ye,nr,zn,dr,Dr),{},!0)},this.forceDisconnect=function(nr,zn){this.publish(Fe.connections.destroy({apiKey:ve,sessionId:Ye,connectionId:nr}),{},!0,zn)},this.forceUnpublish=function(nr,zn){this.publish(Fe.streams.destroy(ve,Ye,nr),{},!0,zn)},this.forceMuteStream=function(nr,zn){const dr={streamId:nr,active:!0};this.publish(Fe.forceMute.update(Object.assign({},Qt,dr)),{},!0,zn)},this.forceMuteAll=function(nr,zn,dr){const Dr={excludedStreamIds:nr,active:zn};this.publish(Fe.forceMute.update(Object.assign({},Qt,Dr)),{},!0,dr)},this.signal=function(nr,zn,dr){const Dr=new Ae(Ye,this._rumor.id,nr||{});if(!Dr.valid){zn&&(0,l.default)(zn)&&zn(new Ke(Dr.error.code,Dr.error.reason),Dr.toHash());return}this.publish(Dr.toRaptorMessage(),{},Dr.retryAfterReconnect,ui=>{let Pn,hr,xr;const Hi=[400,403,404,413,500];if(ui){const Di=parseInt(ui.code,10);Hi.includes(Di)?(hr=Di,xr=ui.message):(hr=E.UNEXPECTED_SERVER_RESPONSE,xr="Unexpected server response. Try this operation again later."),Pn=new Ke(hr,xr)}else{const Di=Dr.data?typeof Dr.data:null;dr("signal","send",{type:Di})}zn&&(0,l.default)(zn)&&zn(Pn,Dr.toHash())})},this.id=function(){return this._rumor&&this._rumor.id}};return pe.hasIceRestartsCapability=v,pe.hasRenegotiationCapability=j,pe.hasE2eeCapability=H,pe.RumorSocket=q,pe}}).call(this,i(2))},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=f;var o=a(i(12)),l=a(i(762)),s=a(i(1)),d=a(i(763)),c=a(i(768)),u=a(i(773)),h=a(i(30));function f(g){let A=g===void 0?{}:g,b=A.WebSocket,p=b===void 0?u.default:b;const y=(0,l.default)(),m=(0,d.default)({AnalyticsHelper:h.default,EventEmitter:o.default,WebSocket:p,logging:s.default,allocateId:y});return(0,c.default)({EventEmitter:o.default,ReconnectableSocket:m,logging:s.default,allocateId:y})}},function(n,r,i){r.__esModule=!0,r.default=a;function a(){let o=0;return()=>(o+=1,o)}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(31)),d=a(i(178)),c=a(i(28)),u=a(i(341)),h=i(78),f=a(i(764)),g=a(i(57)),A=a(i(765)),b=a(i(767));const p=R=>function(){R(...arguments)},y=R=>R===1e3||R>=3e3&&R<=4999,m=h.codes.CLOSE_TIMEOUT;var F=R=>{var C;let B=R.AnalyticsHelper,N=R.EventEmitter,S=R.WebSocket,X=R.logging,J=R.allocateId,E=R.BUFFER_DRAIN_INTERVAL,v=E===void 0?100:E,j=R.BUFFER_DRAIN_MAX_RETRIES,H=j===void 0?10:j;return C=function(K){(0,c.default)(Fe,K);function Fe(q){var Ae;Ae=K.call(this)||this,Ae._url=void 0,Ae._id=J(),Ae._logger=X(`ReconnectableSocket:${Ae._id}`),Ae._webSocket=void 0,Ae._connectTimer=void 0,Ae._pingTimer=void 0,Ae._pingWarningTimer=void 0,Ae._disconnectTimer=void 0,Ae._queuedMessages=[],Ae._draining=!1,Ae._analytics=new B,Ae._logAnalyticsEvent=Ye=>{let it=Ye.action,Qt=Ye.variation,_t=Ye.payload;Ae._analytics.logEvent({action:it,variation:Qt,payload:_t,sessionId:Ae.sessionId,connectionId:Ae.connectionId})};const Ke=q.url,pe=q.connectionId,We=q.sessionId,xe=q.connectTimeout,$e=xe===void 0?15e3:xe,Rt=q.pingThreshold,Be=Rt===void 0?3e3:Rt,qe=q.pingWarningDelay,at=qe===void 0?100:qe,Bt=q.disconnectThreshold,jt=Bt===void 0?5900:Bt,Ne=q.reconnectMaxDuration,Je=Ne===void 0?6e4:Ne;if(!Ke)throw new Error("Must provide url");Ae.connectionId=pe,Ae.sessionId=We,Ae.readyStateMachine=(0,A.default)({reconnectMaxDuration:Je,CLOSED:Fe.CLOSED,CLOSING:Fe.CLOSING}),Ae._url=Ke,(0,u.default)({logger:Ae._logger,obj:(0,d.default)(Ae),eventNames:["error","open","message","needsPing","reconnecting","reconnectAttempt","reconnectFailure","reconnected","close"]}),Ae.readyStateMachine.observe("onEnterOpen",Ye=>{let it=Ye.from;Ae._resetPingTimers(),Ae._resetDisconnectTimer(),Ae._connectTimer.clear(),it==="reconnecting"?(Ae._queuedMessages.forEach(Qt=>Ae.send(Qt,!0)),Ae._queuedMessages=[],Ae.emit("reconnected"),Ae._logAnalyticsEvent({action:"WebSocket:reconnect",variation:"Success"})):(Ae.emit("open"),Ae._logAnalyticsEvent({action:"WebSocket:open"}))}),Ae.readyStateMachine.observe("onEnterClosed",(Ye,it)=>{let Qt=Ye.from,_t=Ye.code,Dt=Ye.reason;Ae.emit("close",it),Qt==="reconnecting"&&Ae._logAnalyticsEvent({action:"WebSocket:reconnect",variation:"Failure",payload:{code:_t,reason:Dt}})}),Ae.readyStateMachine.observe("onEnterClosing",p(function(){var Ye=(0,l.default)(o.default.mark(function it(Qt,_t){var Dt,Ee,Ge;return o.default.wrap(function($){for(;;)switch($.prev=$.next){case 0:return Dt=Qt.from,Ee=_t.code,Ge=_t.reason,Ae._clearTimers(),$.next=5,Ae._clearSocket({drain:Dt==="open",code:Ee,reason:Ge});case 5:Dt==="reconnecting"&&(Ae.emit("reconnectFailure",{code:Ee,reason:Ge}),Ae._logAnalyticsEvent({action:"WebSocket:reconnect",variation:"Failure"})),setTimeout(()=>{Ae.readyStateMachine.closed({code:Ee,reason:Ge})});case 7:case"end":return $.stop()}},it)}));return function(it,Qt){return Ye.apply(this,arguments)}}())),Ae.readyStateMachine.observe("onEnterReconnecting",()=>{Ae.emit("reconnecting"),Ae._logAnalyticsEvent({action:"WebSocket:reconnect",variation:"Attempt"})}),Ae.readyStateMachine.observe("onDisconnect",p(function(){var Ye=(0,l.default)(o.default.mark(function it(Qt,_t){var Dt,Ee,Ge,he;return o.default.wrap(function(ie){for(;;)switch(ie.prev=ie.next){case 0:if(Dt=Qt.from,Ee=Qt.to,Ge=_t.code,he=_t.reason,Ee!=="reconnecting"){ie.next=12;break}if(!Ae._draining){ie.next=5;break}return ie.abrupt("return");case 5:return Ae._clearTimers(),Ae.emit("reconnectAttempt"),ie.next=9,Ae._clearSocket({drain:Dt==="open",code:Ge,reason:he});case 9:Ae._createSocket(),ie.next=13;break;case 12:Ae._logAnalyticsEvent({action:"WebSocket:disconnect",payload:{code:Ge,reason:he}});case 13:case"end":return ie.stop()}},it)}));return function(it,Qt){return Ye.apply(this,arguments)}}()));const ve=(Ye,it)=>new f.default({name:Ye,duration:it,logger:Ae._logger});return Ae._connectTimer=ve("connect",$e),Ae._pingTimer=ve("ping",Be),Ae._pingWarningTimer=ve("pingWarning",at),Ae._disconnectTimer=ve("disconnect",jt),Ae._createSocket(),Ae}var z=Fe.prototype;return z._createSocket=function(){const Ae=new S(this.url);Ae.binaryType="arraybuffer";const Ke=(0,g.default)(Ae);Ke.on("open",()=>{this.readyStateMachine.open()}),Ke.on("close",pe=>{let We=pe.code,xe=pe.reason;this.readyStateMachine.disconnect({code:We,reason:xe})}),Ke.on("error",pe=>{this.emit("error",pe)}),Ke.on("message",pe=>{this.readyState!==Fe.CLOSING&&this._resetDisconnectTimer(),this.emit("message",pe)}),this._webSocket=Ae,this._webSocketEvents=Ke,this._connectTimer.reset(()=>{const pe={code:m,reason:"Timeout while opening connection"},We=new Error(pe.reason);We.code=m,this.emit("error",We),this.readyStateMachine.disconnect(pe)})},z._clearSocket=function(){var q=(0,l.default)(o.default.mark(function Ke(pe){var We,xe,$e,Rt,Be;return o.default.wrap(function(at){for(;;)switch(at.prev=at.next){case 0:if(We=pe===void 0?{}:pe,xe=We.drain,$e=xe===void 0?!1:xe,Rt=We.code,Be=We.reason,this._draining=!0,this._webSocketEvents&&this._webSocketEvents.removeAll(),this._webSocket.readyState===Fe.CLOSED){at.next=9;break}if(!$e){at.next=7;break}return at.next=7,(0,b.default)(this._webSocket,{BUFFER_DRAIN_INTERVAL:v,BUFFER_DRAIN_MAX_RETRIES:H});case 7:this._logAnalyticsEvent({action:"WebSocket:close",payload:{code:Rt,reason:Be},variation:"Attempt"});try{!y(Rt)||Rt===void 0&&Be===void 0?this._webSocket.close():this._webSocket.close(Rt,Be),this._logAnalyticsEvent({action:"WebSocket:close",payload:{code:Rt,reason:Be},variation:"Success"})}catch(Bt){X.error("Could not close websocket",Bt),this._logAnalyticsEvent({action:"WebSocket:close",payload:{err:Bt},variation:"Failure"})}case 9:this._draining=!1;case 10:case"end":return at.stop()}},Ke,this)}));function Ae(Ke){return q.apply(this,arguments)}return Ae}(),z.send=function(Ae,Ke){Ke===void 0&&(Ke=!0),this.readyState===Fe.OPEN&&this._resetPingTimers();const pe=()=>{try{return this._webSocket.send(Ae),"sent"}catch(We){if(this._webSocket.readyState===S.OPEN)return this._logger.debug("webSocket.send threw exception even though it was open:",We),"dropped";throw We}};if(this.readyStateMachine.state==="reconnecting"){if(this._webSocket.readyState===S.OPEN)try{pe()}catch{}return Ke?(this._queuedMessages.push(Ae),"queued"):(this._logger.debug("Dropping message during reconnection since retryAfterReconnect is false:",Ae),"dropped")}return pe()},z.close=function(Ae,Ke){if(this.readyState===Fe.CLOSING)throw new Error("Can not call close on a closing ReconnectableSocket");if(this.readyState===Fe.CLOSED)throw new Error("Can not call close on an already closed ReconnectableSocket");this.readyStateMachine.close({code:Ae,reason:Ke})},z._resetPingTimers=function(){this._pingWarningTimer.clear(),this._pingTimer.reset(()=>{this._pingWarningTimer.reset(()=>{this._logger.warn("Did not send message after needsPing event. Other side may disconnect.")}),this.emit("needsPing")})},z._resetDisconnectTimer=function(){this._disconnectTimer.reset(()=>this.readyStateMachine.disconnect({code:m,reason:"No activity"}))},z._clearTimers=function(){[this._disconnectTimer,this._connectTimer,this._pingTimer,this._pingWarningTimer].forEach(Ae=>Ae.clear())},(0,s.default)(Fe,[{key:"url",get:function(){return typeof this._url=="function"?this._url():this._url}},{key:"reconnecting",get:function(){return this.readyStateMachine.state==="reconnecting"}},{key:"binaryType",get:function(){return this._webSocket.binaryType}},{key:"bufferedAmount",get:function(){return this._webSocket.bufferedAmount}},{key:"protocol",get:function(){return this._webSocket.protocol}},{key:"extensions",get:function(){return this._webSocket.extensions}},{key:"readyState",get:function(){return{reconnecting:Fe.OPEN,open:Fe.OPEN,closing:Fe.CLOSING,closed:Fe.CLOSED,connecting:Fe.CONNECTING}[this.readyStateMachine.state]}}]),Fe}(N),C.CONNECTING=S.CONNECTING,C.OPEN=S.OPEN,C.CLOSING=S.CLOSING,C.CLOSED=S.CLOSED,C};r.default=F},function(n,r,i){r.__esModule=!0,r.default=void 0;let a=function(){function o(s){let d=s.name,c=s.logger,u=s.duration;this.name=void 0,this.logger=void 0,this.duration=void 0,this.currId=void 0,this.name=d,this.logger=c,this.duration=u}var l=o.prototype;return l.reset=function(d){this.clear();const c=setTimeout(()=>{this.currId!==void 0&&(this.logger.spam(`${this.name} timer with id ${this.currId} expired, entering callback`),this.currId=void 0,d())},this.duration);this.currId=c,this.logger.spam(`Started ${this.name} timer with id ${this.currId}, expires in ${this.duration}ms`)},l.clear=function(){this.currId!==void 0&&(clearTimeout(this.currId),this.logger.spam(`Cleared ${this.name} timer with id ${this.currId}`),this.currId=void 0)},l.isRunning=function(){return this.currId!==void 0},o}();r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(326)),l=a(i(766)),s=i(78),d=a(i(1));const c=(0,d.default)("ReconnectableSocketStateMachine"),u=s.codes.CLOSE_UNSUPPORTED,h=s.codes.CLOSE_UNEXPECTED_CONDITION;var f=g=>{let A=g.reconnectMaxDuration,b=g.CLOSED,p=g.CLOSING,y;function m(F){let R=F.code;return(this.state==="open"||!y)&&(y=(0,l.default)(A)),A>0&&!y()&&[u,h].indexOf(R)===-1&&[b,p].indexOf(this.readyState)===-1?"reconnecting":"closing"}return new o.default({init:"connecting",methods:{onInvalidTransition(F,R,C){c.error("Invalid state transition",{transition:F,from:R,to:C})}},transitions:[{name:"open",from:["connecting","reconnecting"],to:"open"},{name:"close",from:["connecting","reconnecting","open"],to:"closing"},{name:"closed",from:"closing",to:"closed"},{name:"disconnect",from:["reconnecting","open","connecting"],to:m}]})};r.default=f},function(n,r,i){r.__esModule=!0,r.default=void 0;var a=o=>{let l=!1;return setTimeout(()=>{l=!0},o),()=>l};r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(94)),d=function(){var c=(0,l.default)(o.default.mark(function u(h,f){var g,A,b,p,y,m;return o.default.wrap(function(R){for(;;)switch(R.prev=R.next){case 0:g=f===void 0?{}:f,A=g.BUFFER_DRAIN_INTERVAL,b=A===void 0?100:A,p=g.BUFFER_DRAIN_MAX_RETRIES,y=p===void 0?10:p,m=0;case 2:if(!(m<y)){R.next=10;break}if(h.bufferedAmount!==0){R.next=5;break}return R.abrupt("break",10);case 5:return R.next=7,(0,s.default)(b);case 7:m+=1,R.next=2;break;case 10:case"end":return R.stop()}},u)}));return function(u,h){return c.apply(this,arguments)}}();r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(31)),l=a(i(178)),s=a(i(28)),d=a(i(16)),c=a(i(341)),u=a(i(769)),h=b(i(183)),f=a(i(772)),g=i(78);function A(y){if(typeof WeakMap!="function")return null;var m=new WeakMap,F=new WeakMap;return(A=function(C){return C?F:m})(y)}function b(y,m){if(y&&y.__esModule)return y;if(y===null||typeof y!="object"&&typeof y!="function")return{default:y};var F=A(m);if(F&&F.has(y))return F.get(y);var R={},C=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var B in y)if(B!=="default"&&Object.prototype.hasOwnProperty.call(y,B)){var N=C?Object.getOwnPropertyDescriptor(y,B):null;N&&(N.get||N.set)?Object.defineProperty(R,B,N):R[B]=y[B]}return R.default=y,F&&F.set(y,R),R}var p=y=>{var m;let F=y.EventEmitter,R=y.ReconnectableSocket,C=y.logging,B=y.allocateId;return m=function(N){(0,s.default)(S,N);function S(J){var E;let v=J.messagingURL,j=J.notifyDisconnectAddress,H=J.connectionId,K=J.sessionId,Fe=J.enableReconnection,z=J.pingThreshold,q=z===void 0?2e3:z,Ae=J.disconnectThreshold,Ke=Ae===void 0?(Fe?3:25)*q-100:Ae,pe=J.reconnectMaxDuration,We=pe===void 0?Fe?6e4:0:pe;E=N.call(this)||this,E.url=void 0,E.id=void 0,E._opened=!1,E._socket=void 0,E._reconnectAttempts=0,E._socketID=(0,d.default)(),E._receivedTransactionIDs=[],E._notifyDisconnectAddress=void 0,E._enableReconnection=void 0,E._pendingMessages=[],E._logger=C(`RumorSocket:${B()}`),(0,c.default)({logger:E._logger,obj:(0,l.default)(E),eventNames:["open","message","error","reconnecting","reconnectAttempt","reconnectFailure","reconnected","close"]}),E.url=v,E.id=H,E._notifyDisconnectAddress=j,E._enableReconnection=Fe,E.on("error",$e=>{E._logger.error($e.message)});try{E._socket=new R({url:()=>E._enableReconnection?[E.url,E.url.indexOf("?")>=0?"&":"?",`socketId=${E._socketID}`,E._socket&&E._socket.reconnecting?"&reconnect=true":"",`&attempt=${(0,d.default)()}`].join(""):E.url,pingThreshold:q,disconnectThreshold:Ke,reconnectMaxDuration:We,connectionId:H,sessionId:K})}catch($e){E._logger.error($e),E.emit("error",new f.default(g.codes.CLOSE_CONNECT_EXCEPTION))}const xe=()=>{E._opened=!0,E._socket.send(u.default.Connect(E.id,j).serialize()),E.emit("open",E.id)};return E._socket.once("open",xe),E._socket.on("message",$e=>E._receiveMessage($e)),E._socket.once("close",$e=>{E._logger.debug(`ReconnectableSocket closed (code: ${$e.code})`),E._clearPendingMessages();const Rt=g.codes.CLOSE_NORMAL,Be=g.codes.CLOSE_GOING_AWAY,qe=g.codes.CLOSE_TIMEOUT;[Rt,Be,qe].indexOf($e.code)===-1&&E.emit("error",new f.default($e.code)),E.emit("close",$e)}),E._socket.on("error",$e=>{let Rt=$e.code;return E.emit("error",new f.default(Rt))}),E._socket.on("needsPing",()=>{E._socket.send(u.default.Ping().serialize())}),E._socket.on("reconnecting",()=>{E._opened&&(E._clearPendingMessagesWhichShouldntRetry(),E.emit("reconnecting"),E._reconnectAttempts=0)}),E._socket.on("reconnectAttempt",()=>{E._opened&&(E._reconnectAttempts+=1,E._socket.send(u.default.Disconnect("1").serialize(),!1),E.emit("reconnectAttempt"))}),E._socket.on("reconnected",()=>{if(!E._opened){xe();return}E._pendingMessages.forEach($e=>{E._socket.send($e.rumorMessage.serialize())}),E.emit("reconnected")}),E._socket.on("reconnectFailure",()=>{E._opened&&(E._logger.debug(`Reconnecting failed as connectivity was not restored within ${We}ms`),E.emit("reconnectFailure",new f.default))}),E}var X=S.prototype;return X._clearPendingMessagesWhichShouldntRetry=function(){const E=this._pendingMessages.filter(v=>!v.retryAfterReconnect);this._pendingMessages=this._pendingMessages.filter(v=>v.retryAfterReconnect),E.forEach(v=>{const j=new Error("Not connected.");j.code=500,v.completion(j)})},X._clearPendingMessages=function(){this._pendingMessages.forEach(E=>{const v=new Error("Not connected.");v.code=500,E.completion(v)}),this._pendingMessages=[]},X._sendAck=function(E){this._socket.send(u.default.Status([E.fromAddress],{"TRANSACTION-ID":E.headers["TRANSACTION-ID"],"X-TB-FROM-ADDRESS":this.id}).serialize())},X._receiveMessage=function(E){var v,j;const H=u.default.deserialize(E.data);if(H.type===h.PONG)return;let K;if(H.data)try{K=JSON.parse(H.data)}catch(Fe){this._logger.error(`Failed to parse JSON with error ${Fe}`)}if(((v=K)==null||(j=v.content)==null?void 0:j.type)==="data"?this._logger.spam("Received:",H):this._logger.debug("Received:",H),H.transactionId&&(this._pendingMessages=this._pendingMessages.filter(Fe=>(Fe.rumorMessage.transactionId===H.transactionId&&(this._logger.debug("Marking",H.transactionId," as received"),Fe.completion(void 0,H)),Fe.rumorMessage.transactionId!==H.transactionId))),H.transactionId&&H.type!==h.STATUS){if(this._sendAck(H),this._receivedTransactionIDs.indexOf(H.transactionId)>=0)return;this._receivedTransactionIDs.push(H.transactionId)}this.emit("message",H)},X.publish=function(E,v,j,H,K){K===void 0&&(K=()=>{});const Fe=u.default.Publish(E,v,j);if(this._socket.send(Fe.serialize(),!1)==="dropped"&&!H){const q=new Error("Not connected.");q.code=500,K(q);return}this._pendingMessages.push({rumorMessage:Fe,retryAfterReconnect:H,completion:K})},X.subscribe=function(E){this._socket.send(u.default.Subscribe(E).serialize())},X.unsubscribe=function(E){this._socket.send(u.default.Unsubscribe(E).serialize())},X.disconnect=function(){if(this.readyState===S.OPEN&&this._socket.send(u.default.Disconnect().serialize()),this._socket.readyState!==R.CLOSED&&this._socket.readyState!==R.CLOSING){const E=g.codes.CLOSE_NORMAL;this._socket.close(E,g.messages[E])}},X.status=function(E,v){this._socket.send(u.default.Status(E,{"TRANSACTION-ID":v,"X-TB-FROM-ADDRESS":this.id}).serialize())},X.reconnectRetriesCount=function(){return this._reconnectAttempts},X.messageQueueSize=function(){return this._pendingMessages.length},(0,o.default)(S,[{key:"readyState",get:function(){return this._socket?this._socket.readyState:R.CONNECTING}},{key:"reconnecting",get:function(){return this._opened&&this._socket&&this._socket.reconnecting}},{key:"socketID",get:function(){return this._socketID}}]),S}(F),m.CONNECTING=R.CONNECTING,m.OPEN=R.OPEN,m.CLOSING=R.CLOSING,m.CLOSED=R.CLOSED,m};r.default=p},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(16)),l=i(770),s=c(i(183));function d(f){if(typeof WeakMap!="function")return null;var g=new WeakMap,A=new WeakMap;return(d=function(p){return p?A:g})(f)}function c(f,g){if(f&&f.__esModule)return f;if(f===null||typeof f!="object"&&typeof f!="function")return{default:f};var A=d(g);if(A&&A.has(f))return A.get(f);var b={},p=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var y in f)if(y!=="default"&&Object.prototype.hasOwnProperty.call(f,y)){var m=p?Object.getOwnPropertyDescriptor(f,y):null;m&&(m.get||m.set)?Object.defineProperty(b,y,m):b[y]=f[y]}return b.default=f,A&&A.set(f,b),b}const u=f=>{const g=new ArrayBuffer(f.length),A=new Uint8Array(g);for(let b=0;b<f.length;++b)A[b]=f[b];return g};let h=function(){function f(A,b,p,y){this.type=void 0,this.toAddress=void 0,this.headers=void 0,this.data=void 0,this.type=A,this.toAddress=b,this.headers=p,this.data=y,this.fromAddress=this.headers["X-TB-FROM-ADDRESS"],this.transactionId=this.headers["TRANSACTION-ID"],this.status=this.headers.STATUS,this.isError=this.status&&this.status[0]!=="2"}var g=f.prototype;return g.serialize=function(){let b,p,y,m,F=8,R=7;const C=[],B=[],N=[];for(R++,y=0;y<this.toAddress.length;y++)C.push(new l.TextEncoder().encode(this.toAddress[y])),R+=2,R+=C[y].length;R++,y=0;for(const J in this.headers)this.headers.hasOwnProperty(J)&&(B.push(new l.TextEncoder().encode(J)),N.push(new l.TextEncoder().encode(this.headers[J])),R+=4,R+=B[y].length,R+=N[y].length,y++);p=new l.TextEncoder("utf-8").encode(this.data),R+=p.length;const S=new ArrayBuffer(R),X=new Uint8Array(S,0,R);for(R-=4,X[0]=(R&4278190080)>>>24,X[1]=(R&16711680)>>>16,X[2]=(R&65280)>>>8,X[3]=(R&255)>>>0,X[4]=0,X[5]=0,X[6]=this.type,X[7]=this.toAddress.length,y=0;y<C.length;y++)for(b=C[y],X[F++]=b.length>>8&255,X[F++]=b.length>>0&255,m=0;m<b.length;m++)X[F++]=b[m];for(X[F++]=B.length,y=0;y<B.length;y++){for(b=B[y],X[F++]=b.length>>8&255,X[F++]=b.length>>0&255,m=0;m<b.length;m++)X[F++]=b[m];for(b=N[y],X[F++]=b.length>>8&255,X[F++]=b.length>>0&255,m=0;m<b.length;m++)X[F++]=b[m]}for(y=0;y<p.length;y++)X[F++]=p[y];return S},f.deserialize=function(b){(typeof window!==void 0?window:yr).Buffer&&(typeof window!==void 0?window:yr).Buffer.isBuffer(b)&&(b=u(b));let p,y,m,F,R,C,B,N,S=8;const X=new Uint8Array(b);p=X[6];const J=[];for(N=0;N<X[7];N++)B=X[S++]<<8,B+=X[S++],y=new Uint8Array(b,S,B),J[N]=new l.TextDecoder("utf-8").decode(y),S+=B;for(m=X[S++],F={},N=0;N<m;N++)B=X[S++]<<8,B+=X[S++],y=new Uint8Array(b,S,B),R=new l.TextDecoder("utf-8").decode(y),S+=B,B=X[S++]<<8,B+=X[S++],y=new Uint8Array(b,S,B),C=new l.TextDecoder("utf-8").decode(y),F[R]=C,S+=B;const E=new Uint8Array(b,S),v=new l.TextDecoder("utf-8").decode(E);return new f(p,J,F,v)},f.Connect=function(b,p){const y={uniqueId:b,"TRANSACTION-ID":(0,o.default)(),notifyDisconnectAddress:p};return new f(s.CONNECT,[],y,"")},f.Disconnect=function(b){return new f(s.DISCONNECT,[],{reconnect:b},"")},f.Subscribe=function(b){return new f(s.SUBSCRIBE,b,{},"")},f.Unsubscribe=function(b){return new f(s.UNSUBSCRIBE,b,{},"")},f.Publish=function(b,p,y){return new f(s.MESSAGE,b,y||{},p||"")},f.Status=function(b,p){return new f(s.STATUS,b,p||{},"")},f.Ping=function(){return new f(s.PING,[],{},"")},f}();r.default=h},function(n,r,i){r.__esModule=!0,r.TextEncoder=r.TextDecoder=void 0;var a=l(i(771));function o(c){if(typeof WeakMap!="function")return null;var u=new WeakMap,h=new WeakMap;return(o=function(g){return g?h:u})(c)}function l(c,u){if(c&&c.__esModule)return c;if(c===null||typeof c!="object"&&typeof c!="function")return{default:c};var h=o(u);if(h&&h.has(c))return h.get(c);var f={},g=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var A in c)if(A!=="default"&&Object.prototype.hasOwnProperty.call(c,A)){var b=g?Object.getOwnPropertyDescriptor(c,A):null;b&&(b.get||b.set)?Object.defineProperty(f,A,b):f[A]=c[A]}return f.default=c,h&&h.set(c,f),f}const s=(typeof window!==void 0?window:yr).TextEncoder||a.TextEncoder;r.TextEncoder=s;const d=(typeof window!==void 0?window:yr).TextDecoder||a.TextDecoder;r.TextDecoder=d},function(n,r,i){i.r(r),i.d(r,"TextEncoder",function(){return A}),i.d(r,"TextDecoder",function(){return g});function a(y,m,F){return m<=y&&y<=F}function o(y){if(y===void 0)return{};if(y===Object(y))return y;throw TypeError("Could not convert argument to dictionary")}function l(y){for(var m=String(y),F=m.length,R=0,C=[];R<F;){var B=m.charCodeAt(R);if(B<55296||B>57343)C.push(B);else if(56320<=B&&B<=57343)C.push(65533);else if(55296<=B&&B<=56319)if(R===F-1)C.push(65533);else{var N=y.charCodeAt(R+1);if(56320<=N&&N<=57343){var S=B&1023,X=N&1023;C.push(65536+(S<<10)+X),R+=1}else C.push(65533)}R+=1}return C}function s(y){for(var m="",F=0;F<y.length;++F){var R=y[F];R<=65535?m+=String.fromCharCode(R):(R-=65536,m+=String.fromCharCode((R>>10)+55296,(R&1023)+56320))}return m}var d=-1;function c(y){this.tokens=[].slice.call(y)}c.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.shift():d},prepend:function(y){if(Array.isArray(y))for(var m=y;m.length;)this.tokens.unshift(m.pop());else this.tokens.unshift(y)},push:function(y){if(Array.isArray(y))for(var m=y;m.length;)this.tokens.push(m.shift());else this.tokens.push(y)}};var u=-1;function h(y,m){if(y)throw TypeError("Decoder error");return m||65533}var f="utf-8";function g(y,m){if(!(this instanceof g))return new g(y,m);if(y=y!==void 0?String(y).toLowerCase():f,y!==f)throw new Error("Encoding not supported. Only utf-8 is supported");m=o(m),this._streaming=!1,this._BOMseen=!1,this._decoder=null,this._fatal=!!m.fatal,this._ignoreBOM=!!m.ignoreBOM,Object.defineProperty(this,"encoding",{value:"utf-8"}),Object.defineProperty(this,"fatal",{value:this._fatal}),Object.defineProperty(this,"ignoreBOM",{value:this._ignoreBOM})}g.prototype={decode:function(m,F){var R;typeof m=="object"&&m instanceof ArrayBuffer?R=new Uint8Array(m):typeof m=="object"&&"buffer"in m&&m.buffer instanceof ArrayBuffer?R=new Uint8Array(m.buffer,m.byteOffset,m.byteLength):R=new Uint8Array(0),F=o(F),this._streaming||(this._decoder=new b({fatal:this._fatal}),this._BOMseen=!1),this._streaming=!!F.stream;for(var C=new c(R),B=[],N;!C.endOfStream()&&(N=this._decoder.handler(C,C.read()),N!==u);)N!==null&&(Array.isArray(N)?B.push.apply(B,N):B.push(N));if(!this._streaming){do{if(N=this._decoder.handler(C,C.read()),N===u)break;N!==null&&(Array.isArray(N)?B.push.apply(B,N):B.push(N))}while(!C.endOfStream());this._decoder=null}return B.length&&["utf-8"].indexOf(this.encoding)!==-1&&!this._ignoreBOM&&!this._BOMseen&&(B[0]===65279?(this._BOMseen=!0,B.shift()):this._BOMseen=!0),s(B)}};function A(y,m){if(!(this instanceof A))return new A(y,m);if(y=y!==void 0?String(y).toLowerCase():f,y!==f)throw new Error("Encoding not supported. Only utf-8 is supported");m=o(m),this._streaming=!1,this._encoder=null,this._options={fatal:!!m.fatal},Object.defineProperty(this,"encoding",{value:"utf-8"})}A.prototype={encode:function(m,F){m=m?String(m):"",F=o(F),this._streaming||(this._encoder=new p(this._options)),this._streaming=!!F.stream;for(var R=[],C=new c(l(m)),B;!C.endOfStream()&&(B=this._encoder.handler(C,C.read()),B!==u);)Array.isArray(B)?R.push.apply(R,B):R.push(B);if(!this._streaming){for(;B=this._encoder.handler(C,C.read()),B!==u;)Array.isArray(B)?R.push.apply(R,B):R.push(B);this._encoder=null}return new Uint8Array(R)}};function b(y){var m=y.fatal,F=0,R=0,C=0,B=128,N=191;this.handler=function(S,X){if(X===d&&C!==0)return C=0,h(m);if(X===d)return u;if(C===0){if(a(X,0,127))return X;if(a(X,194,223))C=1,F=X-192;else if(a(X,224,239))X===224&&(B=160),X===237&&(N=159),C=2,F=X-224;else if(a(X,240,244))X===240&&(B=144),X===244&&(N=143),C=3,F=X-240;else return h(m);return F=F<<6*C,null}if(!a(X,B,N))return F=C=R=0,B=128,N=191,S.prepend(X),h(m);if(B=128,N=191,R+=1,F+=X-128<<6*(C-R),R!==C)return null;var J=F;return F=C=R=0,J}}function p(y){y.fatal,this.handler=function(m,F){if(F===d)return u;if(a(F,0,127))return F;var R,C;a(F,128,2047)?(R=1,C=192):a(F,2048,65535)?(R=2,C=224):a(F,65536,1114111)&&(R=3,C=240);for(var B=[(F>>6*R)+C];R>0;){var N=F>>6*(R-1);B.push(128|N&63),R-=1}return B}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=d(i(78)),l=a(i(8));function s(u){if(typeof WeakMap!="function")return null;var h=new WeakMap,f=new WeakMap;return(s=function(A){return A?f:h})(u)}function d(u,h){if(u&&u.__esModule)return u;if(u===null||typeof u!="object"&&typeof u!="function")return{default:u};var f=s(h);if(f&&f.has(u))return f.get(u);var g={},A=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var b in u)if(b!=="default"&&Object.prototype.hasOwnProperty.call(u,b)){var p=A?Object.getOwnPropertyDescriptor(u,b):null;p&&(p.get||p.set)?Object.defineProperty(g,b,p):g[b]=u[b]}return g.default=u,f&&f.set(u,g),g}let c=function(h){if(this.code=void 0,this.message=void 0,this.name=void 0,this.code=o.codes.CLOSE_FALLBACK_CODE,Object.values(o.codes).includes(h))switch(this.code=h,this.code){case o.codes.CLOSE_GOING_AWAY:case o.codes.CLOSE_PROTOCOL_ERROR:case o.codes.CLOSE_UNSUPPORTED:case o.codes.CLOSE_NO_STATUS:case o.codes.CLOSE_ABNORMAL:case o.codes.CLOSE_INCONSISTENT_DATA:case o.codes.CLOSE_POLICY_VIOLATION:case o.codes.CLOSE_TOO_LARGE:case o.codes.CLOSE_UNEXPECTED_CONDITION:case o.codes.CLOSE_CONNECTIVITY_LOSS:case o.codes.CLOSE_CONNECT_EXCEPTION:case o.codes.CLOSE_TIMEOUT:this.name=l.default.DISCONNECTED,this.message="Action failed due to session disconnection.";return}this.message=o.messages[this.code]||"No message available from code."};r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(774)),l=(typeof window!==void 0?window:yr).WebSocket?(typeof window!==void 0?window:yr).WebSocket:o.default;r.default=l},function(n,r,i){n.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(52)),l=a(i(3));const s=l.default.name,d=o.default.once;var c=()=>d()&&["Chrome","Firefox","Safari"].indexOf(s)>-1;r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=l;var o=a(i(777));function l(s){const d=(0,o.default)(s.data);return d.transactionId=s.transactionId,d.fromAddress=s.headers["X-TB-FROM-ADDRESS"],d}},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){if(o.length===0)return{};const l=JSON.parse(o),s=l.uri.substr(1).split("/");s.shift(),s[s.length-1]===""&&s.pop(),l.params={};for(let d=0,c=s.length;d<c-1;d+=2)l.params[s[d]]=s[d+1];return s.length%2===0?s[s.length-2]==="channel"&&s.length>6?l.resource=`${s[s.length-4]}_${s[s.length-2]}`:l.resource=s[s.length-2]:s[s.length-1]==="channel"&&s.length>5?l.resource=`${s[s.length-3]}_${s[s.length-1]}`:l.resource=s[s.length-1],l.signature=`${l.resource}#${l.method}`,l}},function(n,r,i){r.__esModule=!0,r.default=void 0;var a="DTLS_SRTP";r.default=a},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(52));const l=o.default.once;var s=()=>l();r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(3)),l=a(i(52));const s=l.default.once;var d=()=>s()&&(o.default.name==="Chrome"||o.default.name==="Firefox"||o.default.name==="Node"||o.default.name==="Safari"||o.default.name==="Edge");r.default=d},function(n,r,i){r.__esModule=!0,r.default=a;function a(o){let l=o.supportsWebRTC;return{supportsWebRTC:l==="true"||l===!0}}},function(n,r,i){r.__esModule=!0,r.default=a;function a(o,l){this.code=o,this.message=l,this.reason=l}},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=function(s){const d=[];this.enqueue=function(){d.push(Array.prototype.slice.call(arguments))},this.triggerAll=function(){let u;for(;u=d.shift();)s.trigger(...u)}};r.default=o},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(250)),l=a(i(217)),s=a(i(308)),d=a(i(58)),c=a(i(9)),u=a(i(10)),h=a(i(148)),f=a(i(785)),g=a(i(786));const A={EMPTY_RESPONSE:"Response body was empty, probably due to connectivity loss",BADLY_FORMED:"Unknown error: JSON response was badly formed",NO_ERROR:"No error message",UNEXPECTED_SERVER_RESPONSE:m=>`Unexpected server response (${m}). Try this operation again later.`},b=[0,600,1200];function p(m){let F=m===void 0?{}:m,R=F.axios,C=R===void 0?l.default:R,B=F.retryDelays,N=B===void 0?b:B;function S(J){let E=J.anvilUrl,v=J.sessionId,j=J.token,H=J.clientVersion,K=J.connectionId;const Fe=o.default.parse(E,!0),z=o.default.format({protocol:Fe.protocol,auth:Fe.auth,host:Fe.host,pathname:o.default.resolve((Fe.pathname||"").replace(/\/?$/,"/"),`session/${v}`),query:Object.assign({},Fe.query,{extended:!0})});return C.get(z,{validateStatus:q=>q>=200&&q<300,headers:{"X-OPENTOK-AUTH":j,"X-TB-VERSION":1,"X-TB-CLIENT-VERSION":H,"X-TB-CONNECTIONID":K,Accept:"application/json"}}).catch(q=>{if(q.response){const Ae=new Error(A.UNEXPECTED_SERVER_RESPONSE(`${q.response.statusCode}${q.response.status?` ${q.response.status}`:""}`));throw Ae.code=u.default.ANVIL_INVALID_HTTP_STATUS,Ae.name=(0,f.default)(Ae.code),Ae}else if(q.request){const Ae=new Error(A.CONNECT_FAILED);throw Ae.code=u.default.ANVIL_CONNECT_FAILED,Ae.name=(0,f.default)(Ae.code),Ae}else{const Ae=u.default.ANVIL_UNKNOWN_HTTP_ERROR,Ke=(0,f.default)(q.code);throw(0,c.default)(q,{code:Ae,name:Ke}),q}}).then(q=>{let Ae=q.data;if(typeof Ae=="string"){if(Ae.length>0)try{JSON.parse(Ae)}catch(xe){throw xe.message=A.UNEXPECTED_SERVER_RESPONSE(xe.toString()),xe.code=u.default.ANVIL_XDOMAIN_OR_PARSING_ERROR,xe.name=(0,f.default)(xe.code),xe}const We=new Error(Ae.length===0?A.EMPTY_RESPONSE:A.BADLY_FORMED);throw We.code=Ae.length===0?u.default.ANVIL_EMPTY_RESPONSE_BODY:u.default.ANVIL_BADLY_FORMED_RESPONSE,We.name=(0,f.default)(We.code),We}if(Ae===null||Ae.length===0){const We=new Error(A.EMPTY_RESPONSE);throw We.code=u.default.ANVIL_EMPTY_RESPONSE_BODY,We.name=(0,f.default)(We.code),We}const Ke=Ae.filter(We=>We.error!=null),pe=Ke[0];if(pe){const We=(0,g.default)((0,d.default)(pe,"error.code","500"));(0,d.default)(pe,"error.errorMessage.message")==="Invalid token format"&&(pe.error.errorMessage.message+=` Token: ${j}`);const xe=new Error((0,d.default)(pe,"error.errorMessage.message",We===void 0?`Unknown error: ${pe.error.code}`:A.NO_ERROR));throw xe.code=We||u.default.ANVIL_UNEXPECTED_ERROR_CODE,xe.name=(0,f.default)(xe.code),xe}return new h.default(Ae[0])})}return(0,s.default)(S,(J,E)=>J.code&&J.code>=3e3&&J.code<=3007&&N[E])}var y=p;r.default=y},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(10)),l=a(i(8));const s={[o.default.ANVIL_BADLY_FORMED_RESPONSE]:l.default.BADLY_FORMED_RESPONSE,[o.default.ANVIL_INVALID_HTTP_STATUS]:l.default.INVALID_HTTP_STATUS,[o.default.ANVIL_XDOMAIN_OR_PARSING_ERROR]:l.default.XDOMAIN_OR_PARSING_ERROR,[o.default.ANVIL_UNKNOWN_HTTP_ERROR]:l.default.UNKNOWN_HTTP_ERROR,[o.default.ANVIL_UNEXPECTED_ERROR_CODE]:l.default.UNEXPECTED_ERROR_CODE,[o.default.ANVIL_EMPTY_RESPONSE_BODY]:l.default.EMPTY_RESPONSE_BODY,[o.default.ANVIL_CONNECT_FAILED]:l.default.CONNECT_FAILED,[o.default.AUTHENTICATION_ERROR]:l.default.AUTHENTICATION_ERROR,[o.default.INVALID_SESSION_ID]:l.default.INVALID_SESSION_ID,[o.default.TERMS_OF_SERVICE_FAILURE]:l.default.TERMS_OF_SERVICE_FAILURE,[o.default.UNEXPECTED_SERVER_RESPONSE]:l.default.UNEXPECTED_SERVER_RESPONSE};function d(u){return s[u]}var c=d;r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(10));const l={400:o.default.INVALID_SESSION_ID,403:o.default.AUTHENTICATION_ERROR,404:o.default.INVALID_SESSION_ID,409:o.default.TERMS_OF_SERVICE_FAILURE,500:o.default.UNEXPECTED_SERVER_RESPONSE};function s(c){return l[c]}var d=s;r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(28)),d=a(i(12)),c=a(i(293)),h=function(f){(0,s.default)(g,f);function g(b){var p;return b===void 0&&(b={}),p=f.call(this)||this,p._generateKey=b.generateKey||c.default,p}var A=g.prototype;return A.set=function(){var b=(0,l.default)(o.default.mark(function y(m,F){var R;return o.default.wrap(function(B){for(;;)switch(B.prev=B.next){case 0:return this.keyPromise=this._generateKey(m,F),B.next=3,this.keyPromise;case 3:R=B.sent,this.emit("keyChanged",R);case 5:case"end":return B.stop()}},y,this)}));function p(y,m){return b.apply(this,arguments)}return p}(),A.get=function(){var b=(0,l.default)(o.default.mark(function y(){var m;return o.default.wrap(function(R){for(;;)switch(R.prev=R.next){case 0:return R.next=2,this.keyPromise;case 2:return m=R.sent,R.abrupt("return",m);case 4:case"end":return R.stop()}},y,this)}));function p(){return b.apply(this,arguments)}return p}(),A.clear=function(){this.keyPromise=void 0},g}(d.default);r.default=h},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=u;var o=a(i(4)),l=a(i(5)),s=a(i(332)),d=a(i(333)),c=a(i(789));function u(h){h===void 0&&(h={});let f=h,g=(0,d.default)({},((0,s.default)(f),f)),A;const b=function(){var y=(0,l.default)(o.default.mark(function m(F){return o.default.wrap(function(C){for(;;)switch(C.prev=C.next){case 0:return C.abrupt("return",A.create(F));case 1:case"end":return C.stop()}},m)}));return function(F){return y.apply(this,arguments)}}();return function(){var m=this;this._clientStore={},A=g.sframe||c.default,this._initClientStore=F=>{this._clientStore=F},this.createSender=function(){var F=(0,l.default)(o.default.mark(function R(C){var B;return o.default.wrap(function(S){for(;;)switch(S.prev=S.next){case 0:if(C===void 0&&(C=0),!m.getSender(C)){S.next=3;break}return S.abrupt("return",m.getSender(C));case 3:return m._clientStore[C]||(m._clientStore[C]={}),S.prev=4,S.next=7,b(C);case 7:m._clientStore[C].sender=S.sent,S.next=13;break;case 10:S.prev=10,S.t0=S.catch(4),(B=m._clientStore[C])==null||delete B.sender;case 13:return S.abrupt("return",m.getSender(C));case 14:case"end":return S.stop()}},R,null,[[4,10]])}));return function(R){return F.apply(this,arguments)}}(),this.createReceiver=function(){var F=(0,l.default)(o.default.mark(function R(C){var B;return o.default.wrap(function(S){for(;;)switch(S.prev=S.next){case 0:if(!m.getReceiver(C)){S.next=2;break}return S.abrupt("return",m.getReceiver(C));case 2:return m._clientStore[C]||(m._clientStore[C]={}),S.prev=3,S.next=6,b(C);case 6:m._clientStore[C].receiver=S.sent,S.next=12;break;case 9:S.prev=9,S.t0=S.catch(3),(B=m._clientStore[C])==null||delete B.receiver;case 12:return S.abrupt("return",m.getReceiver(C));case 13:case"end":return S.stop()}},R,null,[[3,9]])}));return function(R){return F.apply(this,arguments)}}(),this.getSender=F=>{var R;return(R=this._clientStore[F])==null?void 0:R.sender},this.getReceiver=F=>{var R;return(R=this._clientStore[F])==null?void 0:R.receiver},this.deleteReceiver=F=>{var R;(R=this._clientStore[F])==null||delete R.receiver},this.deleteSender=F=>{var R;(R=this._clientStore[F])==null||delete R.sender}}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=i(790),d=a(i(796));const c=function(){var g=(0,l.default)(o.default.mark(function A(b){var p,y;return o.default.wrap(function(F){for(;;)switch(F.prev=F.next){case 0:return F.next=2,b.setEnableOnSuccess(!0);case 2:p=()=>{b.removeEventListener("error",p),b.addEventListener("success",y),b.dispatchEvent(new Event("decryptFailed"))},y=()=>{b.removeEventListener("success",y),b.addEventListener("error",p),b.dispatchEvent(new Event("decryptionRestored"))},b.addEventListener("error",p);case 5:case"end":return F.stop()}},A)}));return function(b){return g.apply(this,arguments)}}();var f={create:function(){var g=(0,l.default)(o.default.mark(function A(b,p){var y,m,F;return o.default.wrap(function(C){for(;;)switch(C.prev=C.next){case 0:return p===void 0&&(p={}),y=p.SFrameClient||s.Client,m=p.normalizeKey||d.default,C.next=5,y.create(b);case 5:return F=C.sent,F._setReceiverEncryptionKey=F.setReceiverEncryptionKey,F.setReceiverEncryptionKey=function(){var B=(0,l.default)(o.default.mark(function N(S,X){var J;return o.default.wrap(function(v){for(;;)switch(v.prev=v.next){case 0:return v.next=2,m(X);case 2:return J=v.sent,v.abrupt("return",F._setReceiverEncryptionKey(S,J));case 4:case"end":return v.stop()}},N)}));return function(N,S){return B.apply(this,arguments)}}(),F._setSenderEncryptionKey=F.setSenderEncryptionKey,F.setSenderEncryptionKey=function(){var B=(0,l.default)(o.default.mark(function N(S){var X;return o.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:return E.next=2,m(S);case 2:return X=E.sent,E.abrupt("return",F._setSenderEncryptionKey(X));case 4:case"end":return E.stop()}},N)}));return function(N){return B.apply(this,arguments)}}(),c(F),C.abrupt("return",F);case 12:case"end":return C.stop()}},A)}));return function(b,p){return g.apply(this,arguments)}}()};r.default=f},function(n,r,i){(function(a,o,l,s){function d(Lt){const $t=i.p;let At="";return(!$t||$t.indexOf("://")<0)&&(At+=window.location.protocol+"//"+window.location.host),$t?At+=$t:At+="/",At+Lt}var c=i(0);r.__esModule=!0,r.VideoCodec=r.Codec=r.Client=r.AudioCodec=void 0;var u=c(i(4)),h=c(i(161)),f=c(i(28)),g=c(i(31)),A=c(i(5)),b=function(Lt){function $t(){var bt=this||self;return delete Lt.prototype.__magic__,bt}if(typeof globalThis=="object")return globalThis;if(this)return $t();Lt.defineProperty(Lt.prototype,"__magic__",{configurable:!0,get:$t});var At=__magic__;return At}(Object);function p(Lt,$t){var At=typeof Symbol<"u"&&Lt[Symbol.iterator]||Lt["@@iterator"];if(At)return(At=At.call(Lt)).next.bind(At);if(Array.isArray(Lt)||(At=y(Lt))||$t){At&&(Lt=At);var bt=0;return function(){return bt>=Lt.length?{done:!0}:{done:!1,value:Lt[bt++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function y(Lt,$t){if(Lt){if(typeof Lt=="string")return m(Lt,$t);var At=Object.prototype.toString.call(Lt).slice(8,-1);if(At==="Object"&&Lt.constructor&&(At=Lt.constructor.name),At==="Map"||At==="Set")return Array.from(Lt);if(At==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(At))return m(Lt,$t)}}function m(Lt,$t){($t==null||$t>Lt.length)&&($t=Lt.length);for(var At=0,bt=new Array($t);At<$t;At++)bt[At]=Lt[At];return bt}var F=(Lt=>(Lt[Lt.VP8=0]="VP8",Lt[Lt.H264=1]="H264",Lt[Lt.OPUS=2]="OPUS",Lt))(F||{});r.Codec=F;var R=(Lt=>(Lt[Lt.VP8=0]="VP8",Lt[Lt.H264=1]="H264",Lt))(R||{});r.VideoCodec=R;var C=(Lt=>(Lt[Lt.OPUS=2]="OPUS",Lt))(C||{});r.AudioCodec=C;function B(Lt,$t){b.vonage||(b.vonage={}),b.vonage.workerizer||(b.vonage.workerizer={});let At=b.vonage.workerizer;return At[Lt]||(At[Lt]=$t),At[Lt]}const N=B("globals",{});var S=(Lt=>(Lt.INIT="INIT",Lt.FORWARD="FORWARD",Lt.TERMINATE="TERMINATE",Lt.GLOBALS_SYNC="GLOBALS_SYNC",Lt.EVENT="EVENT",Lt))(S||{});function X(Lt){return[ImageBitmap,ReadableStream,WritableStream].some(At=>Lt instanceof At)}let J=0;function E(Lt,$t,At,bt,zt){const Ot=J++;return Lt.postMessage({id:Ot,type:$t,functionName:At,args:bt},bt.filter(Kt=>X(Kt))),new a(Kt=>{zt==null||zt.set(Ot,Kt)})}function v(Lt,$t){const At=Lt.id,bt=Lt.type,zt=Array.isArray($t)?$t:[$t];postMessage({id:At,type:bt,result:$t},zt.filter(Ot=>X(Ot)))}const j=B("workerized",{});function H(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function K(){return Fe.apply(this,arguments)}function Fe(){return Fe=(0,A.default)(u.default.mark(function Lt(){var $t,At,bt,zt,Ot;return u.default.wrap(function(Kt){for(;;)switch(Kt.prev=Kt.next){case 0:if(!H()){Kt.next=4;break}v({type:S.GLOBALS_SYNC},N),Kt.next=8;break;case 4:$t=[];for(At in j)bt=j[At].workerContext,zt=bt.worker,Ot=bt.resolvers,zt&&$t.push(E(zt,S.GLOBALS_SYNC,"",[N],Ot));return Kt.next=8,a.all($t);case 8:case"end":return Kt.stop()}},Lt)})),Fe.apply(this,arguments)}function z(Lt,$t){if(Array.isArray($t))$t.splice(0,$t.length);else if(typeof $t=="object")for(const At in $t)delete $t[At];for(const At in Lt)Array.isArray(Lt[At])?($t[At]=[],z(Lt[At],$t[At])):typeof Lt[At]=="object"?($t[At]={},z(Lt[At],$t[At])):$t[At]=Lt[At]}function q(Lt,$t,At,bt){return Ae.apply(this,arguments)}function Ae(){return Ae=(0,A.default)(u.default.mark(function Lt($t,At,bt,zt){var Ot,Ct;return u.default.wrap(function(cn){for(;;)switch(cn.prev=cn.next){case 0:return Ot=new At,Ot.addEventListener("message",function(){var Jn=(0,A.default)(u.default.mark(function qt(Mn){var mr,Ur,sr,Nn,Gr,$r,kr,Mr,Ba,Io;return u.default.wrap(function(Si){for(;;)switch(Si.prev=Si.next){case 0:mr=Mn.data,Si.t0=mr.type,Si.next=Si.t0===S.GLOBALS_SYNC?4:Si.t0===S.EVENT?13:19;break;case 4:if(!mr.id){Si.next=9;break}(sr=bt.get((Ur=mr.id)!=null?Ur:-1))==null||sr(mr.result),bt.delete((Nn=mr.id)!=null?Nn:-1),Si.next=12;break;case 9:return z((Gr=mr.result)!=null?Gr:{},N),Si.next=12,K();case 12:return Si.abrupt("break",21);case 13:if(Ba=mr.result,Io=Ba,(Io==null?void 0:Io.name)!=null){Si.next=17;break}throw"Missing event name";case 17:return zt(Io.name,Io.data),Si.abrupt("break",21);case 19:(kr=bt.get(($r=mr.id)!=null?$r:-1))==null||kr(mr.result),bt.delete((Mr=mr.id)!=null?Mr:-1);case 21:case"end":return Si.stop()}},qt)}));return function(qt){return Jn.apply(this,arguments)}}()),cn.next=4,E(Ot,S.INIT,"",[$t.workerId,N],bt);case 4:if(Ct=cn.sent,Ct){cn.next=7;break}throw"Failed to instantiate workerized class";case 7:return cn.abrupt("return",Ot);case 8:case"end":return cn.stop()}},Lt)})),Ae.apply(this,arguments)}const Ke=new WeakMap,pe=new WeakMap,We=new WeakMap,xe=Symbol("anyProducer"),$e=a.resolve(),Rt=Symbol("listenerAdded"),Be=Symbol("listenerRemoved");let qe=!1,at=!1;function Bt(Lt){if(typeof Lt!="string"&&typeof Lt!="symbol"&&typeof Lt!="number")throw new TypeError("`eventName` must be a string, symbol, or number")}function jt(Lt){if(typeof Lt!="function")throw new TypeError("listener must be a function")}function Ne(Lt,$t){const At=pe.get(Lt);if(At.has($t))return At.get($t)}function Je(Lt,$t){const At=typeof $t=="string"||typeof $t=="symbol"||typeof $t=="number"?$t:xe,bt=We.get(Lt);if(bt.has(At))return bt.get(At)}function ve(Lt,$t,At){const bt=We.get(Lt);if(bt.has($t))for(var zt=p(bt.get($t)),Ot;!(Ot=zt()).done;)Ot.value.enqueue(At);if(bt.has(xe)){const cn=a.all([$t,At]);for(var Ct=p(bt.get(xe)),Kt;!(Kt=Ct()).done;)Kt.value.enqueue(cn)}}function Ye(Lt,$t){$t=Array.isArray($t)?$t:[$t];let At=!1,bt=()=>{},zt=[];const Ot={enqueue(cn){zt.push(cn),bt()},finish(){At=!0,bt()}};for(var Ct=p($t),Kt;!(Kt=Ct()).done;){const cn=Kt.value;let Jn=Je(Lt,cn);Jn||(Jn=new Set,We.get(Lt).set(cn,Jn)),Jn.add(Ot)}return{next(){var cn=this;return(0,A.default)(u.default.mark(function Jn(){return u.default.wrap(function(Mn){for(;;)switch(Mn.prev=Mn.next){case 0:if(zt){Mn.next=2;break}return Mn.abrupt("return",{done:!0});case 2:if(zt.length!==0){Mn.next=9;break}if(!At){Mn.next=6;break}return zt=void 0,Mn.abrupt("return",cn.next());case 6:return Mn.next=8,new a(mr=>{bt=mr});case 8:return Mn.abrupt("return",cn.next());case 9:return Mn.next=11,zt.shift();case 11:return Mn.t0=Mn.sent,Mn.abrupt("return",{done:!1,value:Mn.t0});case 13:case"end":return Mn.stop()}},Jn)}))()},return(cn){var Jn=arguments;return(0,A.default)(u.default.mark(function qt(){var Mn,mr,Ur,sr,Nn;return u.default.wrap(function($r){for(;;)switch($r.prev=$r.next){case 0:for(zt=void 0,Mn=p($t);!(mr=Mn()).done;)Ur=mr.value,sr=Je(Lt,Ur),sr&&(sr.delete(Ot),sr.size===0&&(Nn=We.get(Lt),Nn.delete(Ur)));if(bt(),!(Jn.length>0)){$r.next=10;break}return $r.next=6,cn;case 6:$r.t1=$r.sent,$r.t0={done:!0,value:$r.t1},$r.next=11;break;case 10:$r.t0={done:!0};case 11:return $r.abrupt("return",$r.t0);case 12:case"end":return $r.stop()}},qt)}))()},[Symbol.asyncIterator](){return this}}}function it(Lt){if(Lt===void 0)return Ee;if(!Array.isArray(Lt))throw new TypeError("`methodNames` must be an array of strings");for(var $t=p(Lt),At;!(At=$t()).done;){const bt=At.value;if(!Ee.includes(bt))throw typeof bt!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${bt} is not Emittery method`)}return Lt}const Qt=Lt=>Lt===Rt||Lt===Be;function _t(Lt,$t,At){if(Qt($t))try{qe=!0,Lt.emit($t,At)}finally{qe=!1}}let Dt=function(){Lt.mixin=function(bt,zt){return zt=it(zt),Ot=>{if(typeof Ot!="function")throw new TypeError("`target` must be function");for(var Ct=p(zt),Kt;!(Kt=Ct()).done;){const mr=Kt.value;if(Ot.prototype[mr]!==void 0)throw new Error(`The property \`${mr}\` already exists on \`target\``)}function cn(){return Object.defineProperty(this,bt,{enumerable:!1,value:new Lt}),this[bt]}Object.defineProperty(Ot.prototype,bt,{enumerable:!1,get:cn});const Jn=mr=>function(){return this[bt][mr](...arguments)};for(var qt=p(zt),Mn;!(Mn=qt()).done;){const mr=Mn.value;Object.defineProperty(Ot.prototype,mr,{enumerable:!1,value:Jn(mr)})}return Ot}};function Lt(At){At===void 0&&(At={});var bt;Ke.set(this,new Set),pe.set(this,new Map),We.set(this,new Map),We.get(this).set(xe,new Set),this.debug=(bt=At.debug)!=null?bt:{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(zt,Ot,Ct,Kt)=>{try{Kt=JSON.stringify(Kt)}catch{Kt=`Object with the following keys failed to stringify: ${Object.keys(Kt).join(",")}`}(typeof Ct=="symbol"||typeof Ct=="number")&&(Ct=Ct.toString());const cn=new Date,Jn=`${cn.getHours()}:${cn.getMinutes()}:${cn.getSeconds()}.${cn.getMilliseconds()}`;console.log(`[${Jn}][emittery:${zt}][${Ot}] Event Name: ${Ct} data: ${Kt}`)})}var $t=Lt.prototype;return $t.logIfDebugEnabled=function(bt,zt,Ot){(Lt.isDebugEnabled||this.debug.enabled)&&this.debug.logger(bt,this.debug.name,zt,Ot)},$t.on=function(bt,zt){jt(zt),bt=Array.isArray(bt)?bt:[bt];for(var Ot=p(bt),Ct;!(Ct=Ot()).done;){const Kt=Ct.value;Bt(Kt);let cn=Ne(this,Kt);cn||(cn=new Set,pe.get(this).set(Kt,cn)),cn.add(zt),this.logIfDebugEnabled("subscribe",Kt,void 0),Qt(Kt)||_t(this,Rt,{eventName:Kt,listener:zt})}return this.off.bind(this,bt,zt)},$t.off=function(bt,zt){jt(zt),bt=Array.isArray(bt)?bt:[bt];for(var Ot=p(bt),Ct;!(Ct=Ot()).done;){const Kt=Ct.value;Bt(Kt);const cn=Ne(this,Kt);cn&&(cn.delete(zt),cn.size===0&&pe.get(this).delete(Kt)),this.logIfDebugEnabled("unsubscribe",Kt,void 0),Qt(Kt)||_t(this,Be,{eventName:Kt,listener:zt})}},$t.once=function(bt){let zt;const Ot=new a(Ct=>{zt=this.on(bt,Kt=>{zt(),Ct(Kt)})});return Ot.off=zt,Ot},$t.events=function(bt){bt=Array.isArray(bt)?bt:[bt];for(var zt=p(bt),Ot;!(Ot=zt()).done;){const Ct=Ot.value;Bt(Ct)}return Ye(this,bt)},$t.emit=function(){var At=(0,A.default)(u.default.mark(function zt(Ot,Ct){var Kt,cn,Jn,qt,Mn;return u.default.wrap(function(Ur){for(;;)switch(Ur.prev=Ur.next){case 0:if(Bt(Ot),!(Qt(Ot)&&!qe)){Ur.next=3;break}throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");case 3:return this.logIfDebugEnabled("emit",Ot,Ct),ve(this,Ot,Ct),cn=(Kt=Ne(this,Ot))!=null?Kt:new Set,Jn=Ke.get(this),qt=[...cn],Mn=Qt(Ot)?[]:[...Jn],Ur.next=11,$e;case 11:return Ur.next=13,a.all([...qt.map(function(){var sr=(0,A.default)(u.default.mark(function Nn(Gr){return u.default.wrap(function(kr){for(;;)switch(kr.prev=kr.next){case 0:if(!cn.has(Gr)){kr.next=2;break}return kr.abrupt("return",Gr(Ct));case 2:case"end":return kr.stop()}},Nn)}));return function(Nn){return sr.apply(this,arguments)}}()),...Mn.map(function(){var sr=(0,A.default)(u.default.mark(function Nn(Gr){return u.default.wrap(function(kr){for(;;)switch(kr.prev=kr.next){case 0:if(!Jn.has(Gr)){kr.next=2;break}return kr.abrupt("return",Gr(Ot,Ct));case 2:case"end":return kr.stop()}},Nn)}));return function(Nn){return sr.apply(this,arguments)}}())]);case 13:case"end":return Ur.stop()}},zt,this)}));function bt(zt,Ot){return At.apply(this,arguments)}return bt}(),$t.emitSerial=function(){var At=(0,A.default)(u.default.mark(function zt(Ot,Ct){var Kt,cn,Jn,qt,Mn,mr,Ur,sr,Nn,Gr;return u.default.wrap(function(kr){for(;;)switch(kr.prev=kr.next){case 0:if(Bt(Ot),!(Qt(Ot)&&!qe)){kr.next=3;break}throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");case 3:return this.logIfDebugEnabled("emitSerial",Ot,Ct),cn=(Kt=Ne(this,Ot))!=null?Kt:new Set,Jn=Ke.get(this),qt=[...cn],Mn=[...Jn],kr.next=10,$e;case 10:mr=0,Ur=qt;case 11:if(!(mr<Ur.length)){kr.next=19;break}if(sr=Ur[mr],!cn.has(sr)){kr.next=16;break}return kr.next=16,sr(Ct);case 16:mr++,kr.next=11;break;case 19:Nn=0,Gr=Mn;case 20:if(!(Nn<Gr.length)){kr.next=28;break}if(sr=Gr[Nn],!Jn.has(sr)){kr.next=25;break}return kr.next=25,sr(Ot,Ct);case 25:Nn++,kr.next=20;break;case 28:case"end":return kr.stop()}},zt,this)}));function bt(zt,Ot){return At.apply(this,arguments)}return bt}(),$t.onAny=function(bt){return jt(bt),this.logIfDebugEnabled("subscribeAny",void 0,void 0),Ke.get(this).add(bt),_t(this,Rt,{listener:bt}),this.offAny.bind(this,bt)},$t.anyEvent=function(){return Ye(this)},$t.offAny=function(bt){jt(bt),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),_t(this,Be,{listener:bt}),Ke.get(this).delete(bt)},$t.clearListeners=function(bt){bt=Array.isArray(bt)?bt:[bt];for(var zt=p(bt),Ot;!(Ot=zt()).done;){const sr=Ot.value;if(this.logIfDebugEnabled("clear",sr,void 0),typeof sr=="string"||typeof sr=="symbol"||typeof sr=="number"){const Nn=Ne(this,sr);Nn&&Nn.clear();const Gr=Je(this,sr);if(Gr){for(var Ct=p(Gr),Kt;!(Kt=Ct()).done;)Kt.value.finish();Gr.clear()}}else{Ke.get(this).clear();for(var cn=p(pe.get(this).entries()),Jn;!(Jn=cn()).done;){const Nn=Jn.value,Gr=Nn[0];Nn[1].clear(),pe.get(this).delete(Gr)}for(var qt=p(We.get(this).entries()),Mn;!(Mn=qt()).done;){const Nn=Mn.value,Gr=Nn[0],$r=Nn[1];for(var mr=p($r),Ur;!(Ur=mr()).done;)Ur.value.finish();$r.clear(),We.get(this).delete(Gr)}}}},$t.listenerCount=function(bt){var zt,Ot,Ct,Kt,cn,Jn;bt=Array.isArray(bt)?bt:[bt];let qt=0;for(var Mn=p(bt),mr;!(mr=Mn()).done;){const $r=mr.value;if(typeof $r=="string"){qt+=Ke.get(this).size+((Ot=(zt=Ne(this,$r))==null?void 0:zt.size)!=null?Ot:0)+((Kt=(Ct=Je(this,$r))==null?void 0:Ct.size)!=null?Kt:0)+((Jn=(cn=Je(this))==null?void 0:cn.size)!=null?Jn:0);continue}typeof $r<"u"&&Bt($r),qt+=Ke.get(this).size;for(var Ur=p(pe.get(this).values()),sr;!(sr=Ur()).done;){const kr=sr.value;qt+=kr.size}for(var Nn=p(We.get(this).values()),Gr;!(Gr=Nn()).done;){const kr=Gr.value;qt+=kr.size}}return qt},$t.bindMethods=function(bt,zt){if(typeof bt!="object"||bt===null)throw new TypeError("`target` must be an object");zt=it(zt);for(var Ot=p(zt),Ct;!(Ct=Ot()).done;){const Kt=Ct.value;if(bt[Kt]!==void 0)throw new Error(`The property \`${Kt}\` already exists on \`target\``);Object.defineProperty(bt,Kt,{enumerable:!1,value:this[Kt].bind(this)})}},(0,g.default)(Lt,null,[{key:"isDebugEnabled",get:function(){var bt,zt;if(typeof((bt=b.process)==null?void 0:bt.env)!="object")return at;const Ot=(zt=b.process)!=null?zt:{env:{}},Ct=Ot.env;return Ct.DEBUG==="emittery"||Ct.DEBUG==="*"||at},set:function(bt){at=bt}}]),Lt}();const Ee=Object.getOwnPropertyNames(Dt.prototype).filter(Lt=>Lt!=="constructor");Object.defineProperty(Dt,"listenerAdded",{value:Rt,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(Dt,"listenerRemoved",{value:Be,writable:!1,enumerable:!0,configurable:!1});function Ge(Lt){return Lt.onAny&&Lt.emit}function he(Lt){return Lt.prototype.onAny&&Lt.prototype.emit}let $=0;function ie(Lt,$t,At){return Ve.apply(this,arguments)}function Ve(){return Ve=(0,A.default)(u.default.mark(function Lt($t,At,bt){var zt,Ot,Ct;return u.default.wrap(function(cn){for(;;)switch(cn.prev=cn.next){case 0:return zt=he($t),Ot=zt?new Dt:{},Ct=$++,Object.getOwnPropertyNames($t.prototype).forEach(Jn=>{Ot[Jn]=function(){for(var qt=arguments.length,Mn=new Array(qt),mr=0;mr<qt;mr++)Mn[mr]=arguments[mr];return E(At,S.FORWARD,Jn,Mn,bt)}}),Ot.terminate=(0,A.default)(u.default.mark(function Jn(){var qt,Mn,mr,Ur,sr=arguments;return u.default.wrap(function(Gr){for(;;)switch(Gr.prev=Gr.next){case 0:for(qt=sr.length,Mn=new Array(qt),mr=0;mr<qt;mr++)Mn[mr]=sr[mr];return Gr.next=3,E(At,S.TERMINATE,"",Mn,bt);case 3:return Ur=Gr.sent,delete j[Ct],At.terminate(),Ot.workerContext.worker=void 0,Gr.abrupt("return",Ur);case 8:case"end":return Gr.stop()}},Jn)})),Ot.workerContext={id:Ct,worker:At,resolvers:bt},j[Ct]=Ot,cn.abrupt("return",Ot);case 8:case"end":return cn.stop()}},Lt)})),Ve.apply(this,arguments)}function _e(Lt,$t){return we.apply(this,arguments)}function we(){return we=(0,A.default)(u.default.mark(function Lt($t,At){var bt,zt,Ot;return u.default.wrap(function(Kt){for(;;)switch(Kt.prev=Kt.next){case 0:return bt=new Map,Kt.next=3,q($t,At,bt,(cn,Jn)=>{zt!=null&&zt.emit&&(zt==null||zt.emit(cn,Jn))});case 3:return Ot=Kt.sent,Kt.next=6,ie($t,Ot,bt);case 6:return zt=Kt.sent,Kt.abrupt("return",zt);case 8:case"end":return Kt.stop()}},Lt)})),we.apply(this,arguments)}function nt(Lt,$t){return Gt.apply(this,arguments)}function Gt(){return Gt=(0,A.default)(u.default.mark(function Lt($t,At){var bt,zt;return u.default.wrap(function(Ct){for(;;)switch(Ct.prev=Ct.next){case 0:if(bt=$t.functionName,zt=$t.args,At.instance){Ct.next=3;break}throw"instance not initialized";case 3:if(bt){Ct.next=5;break}throw"missing function name to call";case 5:if(At.instance[bt]){Ct.next=7;break}throw`undefined function [${bt}] in class ${At.instance.constructor.workerId}`;case 7:return Ct.t0=v,Ct.t1=$t,Ct.next=11,At.instance[bt](...zt??[]);case 11:Ct.t2=Ct.sent,(0,Ct.t0)(Ct.t1,Ct.t2);case 13:case"end":return Ct.stop()}},Lt)})),Gt.apply(this,arguments)}const An=B("registeredWorkers",{});function Dn(Lt,$t){$t.workerId=Lt,H()&&(An[$t.workerId]=$t)}function tr(Lt,$t){if(!Lt.args)throw"Missing className while initializing worker";const At=Lt.args,bt=At[0],zt=At[1],Ot=An[bt];if(Ot)$t.instance=new Ot(Lt.args.slice(1));else throw`unknown worker class ${bt}`;z(zt,N),Ge($t.instance)&&$t.instance.onAny((Ct,Kt)=>{v({type:S.EVENT},{name:Ct,data:Kt})}),v(Lt,typeof $t.instance!==void 0)}function nr(Lt,$t){return zn.apply(this,arguments)}function zn(){return zn=(0,A.default)(u.default.mark(function Lt($t,At){var bt,zt;return u.default.wrap(function(Ct){for(;;)switch(Ct.prev=Ct.next){case 0:if(bt=$t.args,At.instance){Ct.next=3;break}throw"instance not initialized";case 3:if(!At.instance.terminate){Ct.next=7;break}return Ct.next=6,At.instance.terminate(...bt??[]);case 6:zt=Ct.sent;case 7:v($t,zt);case 8:case"end":return Ct.stop()}},Lt)})),zn.apply(this,arguments)}function dr(Lt){if(!Lt.args)throw"Missing globals while syncing";z(Lt.args[0],N),v(Lt,{})}function Dr(){const Lt={};onmessage=function(){var $t=(0,A.default)(u.default.mark(function At(bt){var zt;return u.default.wrap(function(Ct){for(;;)switch(Ct.prev=Ct.next){case 0:zt=bt.data,Ct.t0=zt.type,Ct.next=Ct.t0===S.INIT?4:Ct.t0===S.FORWARD?6:Ct.t0===S.TERMINATE?8:Ct.t0===S.GLOBALS_SYNC?10:12;break;case 4:return tr(zt,Lt),Ct.abrupt("break",12);case 6:return nt(zt,Lt),Ct.abrupt("break",12);case 8:return nr(zt,Lt),Ct.abrupt("break",12);case 10:return dr(zt),Ct.abrupt("break",12);case 12:case"end":return Ct.stop()}},At)}));return function(bt){return $t.apply(this,arguments)}}()}H()&&Dr();var ui=(()=>{var Lt={url:d("node_modules/@vonage/js-sframe/dist/js-sframe.es.js")}.url;return function(At){At=At||{};var At=typeof At<"u"?At:{},bt,zt;At.ready=new a(function(P,ee){bt=P,zt=ee});var Ot=Object.assign({},At),Ct=(P,ee)=>{throw ee},Kt=typeof window=="object",cn=typeof importScripts=="function",Jn=typeof o=="object"&&typeof o.versions=="object"&&typeof o.versions.node=="string",qt="";function Mn(P){return At.locateFile?At.locateFile(P,qt):qt+P}var mr,Ur,sr;if(Jn){cn?qt=i(348).dirname(qt)+"/":qt=l+"/";var Nn,Gr;Nn=i(795),Gr=i(348),mr=(P,ee)=>{var Re=Od(P);return Re?ee?Re:Re.toString():(P=Gr.normalize(P),Nn.readFileSync(P,ee?void 0:"utf8"))},sr=P=>{var ee=mr(P,!0);return ee.buffer||(ee=new Uint8Array(ee)),ee},Ur=(P,ee,Re)=>{var rt=Od(P);rt&&ee(rt),P=Gr.normalize(P),Nn.readFile(P,function(st,tn){st?Re(st):ee(tn.buffer)})},o.argv.length>1&&o.argv[1].replace(/\\/g,"/"),o.argv.slice(2),o.on("uncaughtException",function(P){if(!(P instanceof Tl))throw P}),o.on("unhandledRejection",function(P){throw P}),Ct=(P,ee)=>{throw o.exitCode=P,ee},At.inspect=function(){return"[Emscripten Module object]"}}else(Kt||cn)&&(cn?qt=self.location.href:typeof document<"u"&&document.currentScript&&(qt=document.currentScript.src),Lt&&(qt=Lt),qt.indexOf("blob:")!==0?qt=qt.substr(0,qt.replace(/[?#].*/,"").lastIndexOf("/")+1):qt="",mr=P=>{try{var ee=new XMLHttpRequest;return ee.open("GET",P,!1),ee.send(null),ee.responseText}catch(rt){var Re=Od(P);if(Re)return gl(Re);throw rt}},cn&&(sr=P=>{try{var ee=new XMLHttpRequest;return ee.open("GET",P,!1),ee.responseType="arraybuffer",ee.send(null),new Uint8Array(ee.response)}catch(rt){var Re=Od(P);if(Re)return Re;throw rt}}),Ur=(P,ee,Re)=>{var rt=new XMLHttpRequest;rt.open("GET",P,!0),rt.responseType="arraybuffer",rt.onload=()=>{if(rt.status==200||rt.status==0&&rt.response){ee(rt.response);return}var st=Od(P);if(st){ee(st.buffer);return}Re()},rt.onerror=Re,rt.send(null)});At.print||console.log.bind(console);var $r=At.printErr||console.warn.bind(console);Object.assign(At,Ot),Ot=null,At.arguments&&At.arguments,At.thisProgram&&At.thisProgram,At.quit&&(Ct=At.quit);var kr;At.wasmBinary&&(kr=At.wasmBinary);var Mr=At.noExitRuntime||!0;typeof WebAssembly!="object"&&En("no native wasm support detected");var Ba,Io=!1,qo;function Si(P,ee){P||En(ee)}var Go=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function ca(P,ee,Re){for(var rt=ee+Re,st=ee;P[st]&&!(st>=rt);)++st;if(st-ee>16&&P.buffer&&Go)return Go.decode(P.subarray(ee,st));for(var tn="";ee<st;){var Xt=P[ee++];if(!(Xt&128)){tn+=String.fromCharCode(Xt);continue}var en=P[ee++]&63;if((Xt&224)==192){tn+=String.fromCharCode((Xt&31)<<6|en);continue}var fn=P[ee++]&63;if((Xt&240)==224?Xt=(Xt&15)<<12|en<<6|fn:Xt=(Xt&7)<<18|en<<12|fn<<6|P[ee++]&63,Xt<65536)tn+=String.fromCharCode(Xt);else{var ge=Xt-65536;tn+=String.fromCharCode(55296|ge>>10,56320|ge&1023)}}return tn}function Za(P,ee){return P?ca(so,P,ee):""}function ta(P,ee,Re,rt){if(!(rt>0))return 0;for(var st=Re,tn=Re+rt-1,Xt=0;Xt<P.length;++Xt){var en=P.charCodeAt(Xt);if(en>=55296&&en<=57343){var fn=P.charCodeAt(++Xt);en=65536+((en&1023)<<10)|fn&1023}if(en<=127){if(Re>=tn)break;ee[Re++]=en}else if(en<=2047){if(Re+1>=tn)break;ee[Re++]=192|en>>6,ee[Re++]=128|en&63}else if(en<=65535){if(Re+2>=tn)break;ee[Re++]=224|en>>12,ee[Re++]=128|en>>6&63,ee[Re++]=128|en&63}else{if(Re+3>=tn)break;ee[Re++]=240|en>>18,ee[Re++]=128|en>>12&63,ee[Re++]=128|en>>6&63,ee[Re++]=128|en&63}}return ee[Re]=0,Re-st}function bo(P,ee,Re){return ta(P,so,ee,Re)}function Eo(P){for(var ee=0,Re=0;Re<P.length;++Re){var rt=P.charCodeAt(Re);rt<=127?ee++:rt<=2047?ee+=2:rt>=55296&&rt<=57343?(ee+=4,++Re):ee+=3}return ee}var jl,So,so,Ll,Ko,Co,ti,yo,ss,Zl,ll;function Jl(P){jl=P,At.HEAP8=So=new Int8Array(P),At.HEAP16=Ll=new Int16Array(P),At.HEAP32=Co=new Int32Array(P),At.HEAPU8=so=new Uint8Array(P),At.HEAPU16=Ko=new Uint16Array(P),At.HEAPU32=ti=new Uint32Array(P),At.HEAPF32=yo=new Float32Array(P),At.HEAPF64=ll=new Float64Array(P),At.HEAP64=ss=new BigInt64Array(P),At.HEAPU64=Zl=new BigUint64Array(P)}At.INITIAL_MEMORY;var Hl,el=[],Ji=[],Pr=[],Ys=[];function _l(){return Mr}function Qn(){if(At.preRun)for(typeof At.preRun=="function"&&(At.preRun=[At.preRun]);At.preRun.length;)ki(At.preRun.shift());ga(el)}function Kn(){ga(Ji)}function Fr(){ga(Pr)}function li(){if(At.postRun)for(typeof At.postRun=="function"&&(At.postRun=[At.postRun]);At.postRun.length;)oa(At.postRun.shift());ga(Ys)}function ki(P){el.unshift(P)}function $a(P){Ji.unshift(P)}function oa(P){Ys.unshift(P)}var hl=0,wa=null;function qa(P){hl++,At.monitorRunDependencies&&At.monitorRunDependencies(hl)}function yn(P){if(hl--,At.monitorRunDependencies&&At.monitorRunDependencies(hl),hl==0&&wa){var ee=wa;wa=null,ee()}}function En(P){At.onAbort&&At.onAbort(P),P="Aborted("+P+")",$r(P),Io=!0,qo=1,P+=". Build with -sASSERTIONS for more info.";var ee=new WebAssembly.RuntimeError(P);throw zt(ee),ee}var Un="data:application/octet-stream;base64,";function Rr(P){return P.startsWith(Un)}function si(P){return P.startsWith("file://")}var Br;Br="data:application/octet-stream;base64,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ahBhIABBQGskACMAQRBrIgAkACAAIAE2AgwjAEEQayIBIAAoAgw2AgwjAEEQayICIAEoAgwoAgBBEGo2AgwgAigCDCEBIABBEGokACABECZBBGohACAIQTBqJAAgAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIAFBCGogARDBASABQRBqJAALugIBA38jAEFAaiICJAAgACgCACIDQQRrKAIAIQQgA0EIaygCACEDIAJCADcDICACQgA3AyggAkIANwMwIAJCADcANyACQgA3AxggAkEANgIUIAJBgOIANgIQIAIgADYCDCACIAE2AgggACADaiEAQQAhAwJAIAQgAUEAECAEQCACQQE2AjggBCACQQhqIAAgAEEBQQAgBCgCACgCFBEKACAAQQAgAigCIEEBRhshAwwBCyAEIAJBCGogAEEBQQAgBCgCACgCGBEIAAJAAkAgAigCLA4CAAECCyACKAIcQQAgAigCKEEBRhtBACACKAIkQQFGG0EAIAIoAjBBAUYbIQMMAQsgAigCIEEBRwRAIAIoAjANASACKAIkQQFHDQEgAigCKEEBRw0BCyACKAIYIQMLIAJBQGskACADCyYBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQJiEAIAFBEGokACAAC0EBAX8jAEEQayICIAA2AgwgAiABNgIIIAIgAigCDCgCADYCBCACKAIMIAIoAggoAgA2AgAgAigCCCACKAIENgIAC04BAX8jAEEQayIBJAAgASAANgIMIAEoAgwiAEEANgIAIABBADYCBCABQQA2AgggAEEIaiABQQhqIAEQwAEjAEEQayAANgIMIAFBEGokAAszAQF/IABBASAAGyEAAkADQCAAEDsiAQ0BQZD0ACgCACIBBEAgAREJAAwBCwsQAwALIAELKQEBfyMAQRBrIgEkACABIAA2AgwgASgCDEEQahAXIQAgAUEQaiQAIAALUAEBfyMAQRBrIgEkACABIAA2AgwgAUEANgIIIAEgASgCDCIAEBcoAgA2AgQgABAXQQA2AgAgASgCBARAIAAQFyABKAIEELgBCyABQRBqJAALWgECfyMAQRBrIgIkACACIAA2AgwgAigCDEEMaiEBIwBBEGsiACQAIAAgATYCDCMAQRBrIgEgACgCDEEEajYCDCABKAIMKAIAIQEgAEEQaiQAIAJBEGok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C0EAQRAgAUELakF4cSABQQtJGyIIIABqQQxqEDsiAkUNABogAkEIayEDAkAgAEEBayACcUUEQCADIQAMAQsgAkEEayILKAIAIgpBeHEgACACakEBa0EAIABrcUEIayICIABBACACIANrQQ9NG2oiACADayIJayECIApBA3FFBEAgAygCACEDIAAgAjYCBCAAIAMgCWo2AgAMAQsgACACIAAoAgRBAXFyQQJyNgIEIAAgAmoiAiACKAIEQQFyNgIEIAsgCSALKAIAQQFxckECcjYCACADIAlqIgIgAigCBEEBcjYCBCADIAkQywELAkAgACgCBCICQQNxRQ0AIAJBeHEiAyAIQRBqTQ0AIAAgCCACQQFxckECcjYCBCAAIAhqIgogAyAIayICQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEIAogAhDLAQsgAEEIagsLIgBFDQAgByAANgIMCyAHKAIMIQMgB0EQaiQAIAMNAEGQ9AAoAgAiAEUNACAAEQkADAELCyAGQRBqJAAgBCADNgIMDAELIAQoAgghACMAQRBrIgEkACABIAA2AgwgASgCDBAvIQAgAUEQaiQAIAQgADYCDAsgBCgCDCEAIARBEGokACAACz4BAX8jAEEQayIBJAAgASAANgIMIAEgASgCDCIAEBcoAgA2AgggABAXQQA2AgAgASgCCCEAIAFBEGokACAAC4ECAQJ/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIwBBEGsiACADKAIENgIMAkAgACgCDEEISwRAIAMgAygCBDYCACADKAIMIQEgAygCCCECIAMoAgAhBCMAQRBrIgAkACAAIAE2AgwgACACNgIIIAAgBDYCBCAAKAIMIQIgACgCBCEEIwBBEGsiASQAIAEgAjYCDCABIAQ2AgggASgCCBoMAQsgAygCDCEBIAMoAgghAiMAQRBrIgAkACAAIAE2AgwgACACNgIIIAAoAgwhAiMAQRBrIgEkACABIAI2AgwLIAEoAgwQIiABQRBqJAAgAEEQaiQAIANBEGokAAs/AQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCCCEAIwBBEGsiASACKAIMNgIMIAEgADYCCCACQRBqJAALUgECf0Gs6QAoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABAPRQ0BC0Gs6QAgADYCACABDwtBkOsAQTA2AgBBfwvwAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiADYCACADIAIgBGtBfHEiAmoiAUEEayAANgIAIAJBCUkNACADIAA2AgggAyAANgIEIAFBCGsgADYCACABQQxrIAA2AgAgAkEZSQ0AIAMgADYCGCADIAA2AhQgAyAANgIQIAMgADYCDCABQRBrIAA2AgAgAUEUayAANgIAIAFBGGsgADYCACABQRxrIAA2AgAgAiADQQRxQRhyIgFrIgJBIEkNACAArUKBgICAEH4hBSABIANqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsLMQEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAEBgoAgAgACgCAGshACABQRBqJAAgAAs8AQJ/IwBBEGsiASQAIAEgADYCDCABKAIMQQRqEBchACMAQRBrIgIgADYCDCACKAIMIQAgAUEQaiQAIAALRAEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIKAI8RQRAIAEQ3AE2AgwMAQsgAUEANgIMCyABKAIMIQAgAUEQaiQAIAALoAEBA38jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQEgAigCCCEDIwBBEGsiACQAIAAgATYCBCAAIAM2AgACfyAAKAIEIQMgACgCACEEIwBBEGsiASAAQQhqNgIMIAEgAzYCCCABIAQ2AgQgASgCCCgCACABKAIEKAIASQRAIAAoAgAMAQsgACgCBAshASAAQRBqJAAgAkEQaiQAIAELBgAgABAiCz0BAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACIAIoAggQ6QE2AgggAigCDCACQQhqQQQQHiACQRBqJAALmwEBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACQQA2AgQDQCACKAIEQQhJBEAgAigCBEECdCIAIAIoAgxqKAIAIQEgACACKAIIaigCACED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ACAAIAMtAAdBAXE6AAQLTgEDfyMAQRBrIgEkACABIAA2AgxBCBAvIQAgASgCDCICKAIAIQMgACACKAIENgIEIAAgAzYCACABIAA2AgggASgCCCEAIAFBEGokACAACzQBAn8jAEEQayIBJAAgASAANgIMIwBBEGsiACABKAIMIgI2AgwgACgCDBogAUEQaiQAIAILlgIBAX8jAEEgayIBJAAgASAANgIYAkACQEG46gAoAgAEQEG86gAoAgBFBEBB0RhBrRNB6QFBzRAQAAALQcDqACgCAEUEQEGxGEGtE0HqAUHNEBAAAAsgASABKAIYQbjqACgCABEAADYCFAJAIAEoAhQNACABKAIYRQ0ADAILIAEgASgCFDYCHAwCCyABKAIYIgBBCGogAEkEQCABQaA2LQAAOgATDAELIAEgASgCGEEIahA7NgIMIAEoAgxFDQAgASgCDCABKAIYNgIAIwBBEGsiACABKAIMNgIMIABBCDYCCCABIAEoAgxBCGo2AhwMAQtBDkHBAEGtE0GKAhAcIAFBADYCHAsgASgCHCEAIAFBIGokACAAC0cBAX8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCIAIAMoAgggAygCBCAAKAIAKAIQEQMAIANBEGokAEEBC18BAX8jAEEQayIBJAAgASAANgIMIAEoAgwiACAAQQRqEGogASgCDEEIaiABKAIMQQxqEGogASgCDEEQaiABKAIMQRRqEGogASgCDEEYaiABKAIMQRxqEGogAUEQaiQAC2cBAX8jAEEwayICJAAgAiAANgIsIAIgATYCKCACQgA3AyAgAkIANwMYIAJCADcDECACQgA3AwggAkEIaiIAIAIoAihBABCaASAAEFkgABB2IAAQWSAAIAIoAixBABDsASACQTBqJAALtQQBAX8jAEHQAGsiAyQAIAMgADYCTCADIAE2AkggAyACNgJEIAMgAygCRCIAKQIYNwM4IAMgACkCEDcDMCADIAApAgg3AyggAyAAKQIANwMgIANBIGoQWSADKAJIQQJLBEBB8BhB3BBB7wNB5QwQAAALIANBADYCHANAIAMoAhwgAygCSEkEQCADQSBqIAMgAygCHBDsASADKAJMIAMoAhxBBHRqIQEjAEEwayIAJAAgACABNgIsIAAgAzYCKCAAIAAoAigoAgA2AiQgACAAKAIoKAIENgIgIAAgACgCKCgCCDYCHCAAIAAoAigoAgw2AhggACAAKAIkQf8BcSAAKAIgQf8BcSAAKAIcQf8BcSAAKAIYQf8BcRA8NgIUIAAgACgCJEEIdkH/AXEgACgCIEEIdkH/AXEgACgCHEEIdkH/AXEgACgCGEEIdkH/AXEQPDYCECAAIAAoAiRBEHZB/wFxIAAoAiBBEHZB/wFxIAAoAhxBEHZB/wFxIAAoAhhBEHZB/wFxEDw2AgwgACAAKAIkQRh2IAAoAiBBGHYgACgCHEEYdiAAKAIYQRh2EDw2AgggACAAKAIUEGk2AhQgACAAKAIQEGk2AhAgACAAKAIMEGk2AgwgACAAKAIIEGk2AgggACgCLCAAKAIUNgAAIAAoAiwgACgCEDYABCAAKAIsIAAoAgw2AAggACgCLCAAKAIINgAMIABBMGokACADIAMoAhxBAWo2AhwMAQsLIANB0ABqJAALtAEBAX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgAygCHCIAQgA3AgAgAEIANwIYIABCADcCECAAQgA3AgggAygCFEECSwRAQfAYQdwQQd4DQdMMEAAACyADQQA2AhADQCADKAIQIAMoAhRPRQRAIAMgAygCGCADKAIQQQR0ahBOIAMoAhwgAyADKAIQEJoBIAMgAygCEEEBajYCEAwBCwsgAygCHBBZIANBIGokAAuuAQEDfyMAQRBrIgIkACACIAA2AgwgAigCDCEAIwBBEGsiAyQAIAMgADYCDCADKAIMIQEjAEEQayIAJAAgACABNgIMIABBADYCCCAAQQA2AgQgACgCDCEBIABBADYCAANAIAAoAgAgASgCBEkEQCAAIAAoAgBBAWo2AgAMAQsLIAEoAgAQKCABIAAoAgg2AgAgASAAKAIENgIEIABBEGokACADQRBqJAAgAkEQaiQACzQBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABAYKAIAIAAoAgBrQQJ1IQAgAUEQaiQAIAALkgEBA38jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQEjAEEQayIAJAAgACABNgIMIAAgAkEIajYCCCAAIAI2AgQgACgCCCEDIwBBEGsiASAAKAIMIgQ2AgwgASADNgIIIAEoAgwgASgCCCgCADYCACMAQRBrIgEgBDYCBCABKAIEGiAAQRBqJAAgAkEQaiQACykBAX8jAEEQayIBJAAgASAANgIMIAEoAgxBBGoQFyEAIAFBEGokACAAC0ABAX8jAEEQayIDIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIgAgAygCCCgCADYCACAAIAMoAgQtAABBAXE6AAQL3wEBBn8jAEEQayIDJAAgAyAANgIMIAMoAgwhASMAQRBrIgAkACAAIAE2AgwgAEEANgIIIAAgACgCDCIBEBcoAgA2AgQgACgCCCECIAEQFyACNgIAIAAoAgQEQCABEFIhAiAAKAIEIQQjAEEQayIBJAAgASACNgIMIAEgBDYCCCABKAIMIgItAARBAXEEQCACKAIAIQQgASgCCEEQahAsIQUjAEEQayIGIAQ2AgwgBiAFNgIICyABKAIIBEAgAigCACABKAIIELIBCyABQRBqJAALIABBEGokACADQRBqJAALVwEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIgAigCDCIAEBcoAgA2AgQgAigCCCEBIAAQFyABNgIAIAIoAgQEQCAAEBcgAigCBBC4AQsgAkEQaiQAC6ABAQN/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEBIAIoAgghAyMAQRBrIgAkACAAIAE2AgQgACADNgIAAn8gACgCACEDIAAoAgQhBCMAQRBrIgEgAEEIajYCDCABIAM2AgggASAENgIEIAEoAggoAgAgASgCBCgCAEkEQCAAKAIADAELIAAoAgQLIQEgAEEQaiQAIAJBEGokACABCygBAX8jAEEQayIBJAAgASAANgIMIwBBEGsiACQAIABBogs2AgwQAwALSQECfyAAKAIEIgVBCHUhBiAAKAIAIgAgASAFQQFxBH8gBiACKAIAaigCAAUgBgsgAmogA0ECIAVBAnEbIAQgACgCACgCGBEIAAtNAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCCCEAIAIoAgwiASgCAEHft96aAUcEQCAAEQkAIAFB37femgE2AgALIAJBEGokAAuSAgEFfyMAQSBrIgEkACABIAA2AhggASABKAIYNgIUIwBBEGsiACABKAIUNgIMIAAgACgCDCgCADYCCCABIAAoAgg2AhADQCABKAIQRQRAEAMACwJAIAEoAhBBf0YEQCABQQA2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7AMgASABKALsAygCHDYC6AMgASABKALsAygCGDYC5AMgASABKALsAygCFDYC4AMgASABKALsAygCEDYC3AMgASABKALsAygCDDYC2AMgASABKALsAygCCDYC1AMgASABKALsAygCBDYC0AMgASABKALsAygCADYCzAMgASgC1AMhAiMAQRBrIgAgASgC3AM2AgwgACACNgIIIAEgACgCDCAAKAIIczYCyAMgASgC0AMhAiAAIAEoAugDNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AsQDIAEoAtwDIQIgACABKALoAzYCDCAAIAI2AgggASAAKAIMIAAoAghzNgLAAyABKALUAyECIAAgASgC6AM2AgwgACACNgIIIAEgACgCDCAAKAIIczYCvAMgASgC4AMhAiAAIAEoAuQDNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2ArgDIAEoAswDIQIgACABKAK4AzYCDCAAIAI2AgggASAAKAIMIAAoAghzNgK0AyABKALcAyECIAAgASgCtAM2AgwgACACNgIIIAEgACgCDCAAKAIIczYCsAMgASgCyAMhAiAAIAEoAsQDNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AqwDIAEoAugDIQIgACABKAK0AzYCDCAAIAI2AgggASAAKAIMIAAoAghzNgKoAyABKALQAyECIAAgASgCtAM2AgwgACACNgIIIAEgACgCDCAAKAIIczYCpAMgASgCvAMhAiAAIAEoAqQDNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AqADIAEoAqwDIQIgACABKALYAzYCDCAAIAI2AgggASAAKAIMIAAoAghzNgKcAyABKALUAyECIAAgASgCnAM2AgwgACACNgIIIAEgACgCDCAAKAIIczYCmAMgASgC5AMhAiAAIAEoApwDNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2ApQDIAEoAswDIQIgACABKAKYAzYCDCAAIAI2AgggASAAKAIMIAAoAghzNgKQAyABKAK4AyECIAAgASgCmAM2AgwgACACNgIIIAEgACgCDCAAKAIIczYCjAMgASgCwAMhAiAAIAEoApQDNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AogDIAEoAogDIQIgACABKALMAzYCDCAAIAI2AgggASAAKAIMIAAoAghzNgKEAyABKAKIAyECIAAgASgCjAM2AgwgACACNgIIIAEgACgCDCAAKAIIczYCgAMgASgCvAMhAiAAIAEoAowDNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AvwCIAEoAogDIQIgACABKAK4AzYCDCAAIAI2AgggASAAKAIMIAAoAghzNgL4AiABKAL4AiECIAAgASgCxAM2AgwgACACNgIIIAEgACgCDCAAKAIIczYC9AIgASgC+AIhAiAAIAEoAugDNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AvACIAEoApgDIQIgACABKAKsAzYCDCAAIAI2AgggASAAKAIMIAAoAghxNgLsAiABKAKQAyECIAAgASgCoAM2AgwgACACNgIIIAEgACgCDCAAKAIIcTYC6AIgASgC7AIhAiAAIAEoAugCNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AuQCIAEoAswDIQIgACABKAKwAzYCDCAAIAI2AgggASAAKAIMIAAoAghxNgLgAiABKALsAiECIAAgASgC4AI2AgwgACACNgIIIAEgACgCDCAAKAIIczYC3AIgASgC+AIhAiAAIAEoAsQDNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2AtgCIAEoArQDIQIgACABKAKkAzYCDCAAIAI2AgggASAAKAIMIAAoAghxNgLUAiABKALYAiECIAAgASgC1AI2AgwgACACNgIIIAEgACgCDCAAKAIIczYC0AIgASgChAMhAiAAIAEoAqgDNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2AswCIAEoAtgCIQIgACABKALMAjYCDCAAIAI2AgggASAAKAIMIAAoAghzNgLIAiABKAKIAyECIAAgASgCwAM2AgwgACACNgIIIAEgACgCDCAAKAIIcTYCxAIgASgCgAMhAiAAIAEoAsgDNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2AsACIAEoAsQCIQIgACABKALAAjYCDCAAIAI2AgggASAAKAIMIAAoAghzNgK8AiABKAKMAyECIAAgASgCvAM2AgwgACACNgIIIAEgACgCDCAAKAIIcTYCuAIgASgCxAIhAiAAIAEoArgCNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2ArQCIAEoArwCIQIgACABKALkAjYCDCAAIAI2AgggASAAKAIMIAAoAghzNgKwAiABKAK0AiECIAAgASgC3AI2AgwgACACNgIIIAEgACgCDCAAKAIIczYCrAIgASgCvAIhAiAAIAEoAtACNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AqgCIAEoArQCIQIgACABKALIAjYCDCAAIAI2AgggASAAKAIMIAAoAghzNgKkAiABKAKUAyECIAAgASgCsAI2AgwgACACNgIIIAEgACgCDCAAKAIIczYCoAIgASgC/AIhAiAAIAEoAqwCNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2ApwCIAEoAvQCIQIgACABKAKoAjYCDCAAIAI2AgggASAAKAIMIAAoAghzNgKYAiABKALwAiECIAAgASgCpAI2AgwgACACNgIIIAEgACgCDCAAKAIIczYClAIgASgCnAIhAiAAIAEoAqACNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2ApACIAEoApgCIQIgACABKAKgAjYCDCAAIAI2AgggASAAKAIMIAAoAghxNgKMAiABKAKMAiECIAAgASgClAI2AgwgACACNgIIIAEgACgCDCAAKAIIczYCiAIgASgCiAIhAiAAIAEoApACNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2AoQCIAEoApwCIQIgACABKAKEAjYCDCAAIAI2AgggASAAKAIMIAAoAghzNgKAAiABKAKUAiECIAAgASgCmAI2AgwgACACNgIIIAEgACgCDCAAKAIIczYC/AEgASgCjAIhAiAAIAEoApwCNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AvgBIAEoAvwBIQIgACABKAL4ATYCDCAAIAI2AgggASAAKAIMIAAoAghxNgL0ASABKAKUAiECIAAgASgC9AE2AgwgACACNgIIIAEgACgCDCAAKAIIczYC8AEgASgC8AEhAiAAIAEoApgCNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AuwBIAEoAvABIQIgACABKAKIAjYCDCAAIAI2AgggASAAKAIMIAAoAghzNgLoASABKALoASECIAAgASgClAI2AgwgACACNgIIIAEgACgCDCAAKAIIcTYC5AEgASgC7AEhAiAAIAEoAuQBNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AuABIAEoAuQBIQIgACABKAKIAjYCDCAAIAI2AgggASAAKAIMIAAoAghzNgLcASABKALcASECIAAgASgCgAI2AgwgACACNgIIIAEgACgCDCAAKAIIcTYC2AEgASgC2AEhAiAAIAEoApACNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AtQBIAEoAuABIQIgACABKALUATYCDCAAIAI2AgggASAAKAIMIAAoAghzNgLQASABKALwASECIAAgASgCgAI2AgwgACACNgIIIAEgACgCDCAAKAIIczYCzAEgASgC1AEhAiAAIAEoAoACNgIMIAAgAjYCCCABIAAoAgwgACgCCHM2AsgBIAEoAuABIQIgACABKALwATYCDCAAIAI2AgggASAAKAIMIAAoAghzNgLEASABKALQASECIAAgASgCzAE2AgwgACACNgIIIAEgACgCDCAAKAIIczYCwAEgASgCmAMhAiAAIAEoAsQBNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2ArwBIAEoApADIQIgACABKALgATYCDCAAIAI2AgggASAAKAIMIAAoAghxNgK4ASABKALMAyECIAAgASgC8AE2AgwgACACNgIIIAEgACgCDCAAKAIIcTYCtAEgASgC+AIhAiAAIAEoAsgBNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2ArABIAEoArQDIQIgACABKALUATYCDCAAIAI2AgggASAAKAIMIAAoAghxNgKsASABKAKEAyECIAAgASgCgAI2AgwgACACNgIIIAEgACgCDCAAKAIIcTYCqAEgASgCiAMhAiAAIAEoAswBNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2AqQBIAEoAoADIQIgACABKALAATYCDCAAIAI2AgggASAAKAIMIAAoAghxNgKgASABKAKMAyECIAAgASgC0AE2AgwgACACNgIIIAEgACgCDCAAKAIIcTYCnAEgASgCrAMhAiAAIAEoAsQBNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2ApgBIAEoAqADIQIgACABKALgATYCDCAAIAI2AgggASAAKAIMIAAoAghxNgKUASABKAKwAyECIAAgASgC8AE2AgwgACACNgIIIAEgACgCDCAAKAIIcTYCkAEgASgCxAMhAiAAIAEoAsgBNgIMIAAgAjYCCCABIAAoAgwgACgCCHE2AowBIAEoAqQDIQIgACABKALUATYCDCAAIAI2AgggASAAKAIM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EGsiASQAIAEgAzYCDCABIAU2AgggASABKAIIKAIENgIEIAEoAgRBf0sEQEG9FkG+DUHuAUHkDxAAAAsgASgCDCgCACABKAIIKAIANgIAIAEoAgwoAgAgASgCBDYCBCABKAIMIgMgAygCAEEIajYCACABQRBqJAAjAEEQayAAKAIcNgIMIABBIGokACAEQewoIAIQFxAINgIAIAJBEGokAAu9AQEBfyMAQSBrIgIkACACIAA2AhwgAiABNgIYIAJBADYCFANAIAIoAhQgAigCGCgC8AFLRQRAIAJBADYCEANAIAIoAhBBAk9FBEAgAiACKAIYIAIoAhRBBHRqIgApAgA3AgAgAiAAKQIINwIIIAIoAhwgAigCFEEFdGogAiACKAIQEJoBIAIgAigCEEEBajYCEAwBCwsgAigCHCACKAIUQQV0ahBZIAIgAigCFEEBajYCFAwBCwsgAkEgaiQACyUBAX8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQQAwALMQEBfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIAAgAygCDCADKAIIELwBIANBEGokAAt/AQN/IwBBEGsiAiQAIAIgADYCDCACKAIMIQEjAEEQayIAJAAgACABNgIMIAAgACgCDCgCADYCCCMAQRBrIgEgAEEIajYCDCABKAIMIgEgASgCAEEMazYCACMAQRBrIgMgATYCDCADKAIMKAIAIQEgAEEQaiQAIAJBEGokACABC28BAn8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBIAMoAggQJiECIAMoAgQhBCMAQRBrIgAgATYCDCAAIAI2AgggACAENgIEIAAoAggpAwAgACgCBCkDAFEhACADQRBqJAAgAAv+AwICfwF+IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAygCDCEAIAMoAggpAwAhBCMAQSBrIgEkACABIAA2AhwgASAENwMQIAEgASkDEDcDCCMAQSBrIgAkACAAIAE2AhwgACABQQhqNgIYIABBCDYCFCAAQZXTx94FNgIQIABBGDYCDCAAIAAoAhQ2AgggACAAKAIYNgIEA0AgACgCFEEETwRAIwBBEGsiAiAAKAIENgIMIAIgAigCDCgAADYCCCAAIAIoAgg2AgAgACAAKAIAQZXTx94FbDYCACAAIAAoAgAgACgCAEEYdnM2AgAgACAAKAIAQZXTx94FbDYCACAAIAAoAghBldPH3gVsNgIIIAAgACgCACAAKAIIczYCCCAAIAAoAgRBBGo2AgQgACAAKAIUQQRrNgIUDAELCwJAAkACQAJAIAAoAhRBAWsOAwIBAAMLIAAgACgCCCAAKAIELQACQRB0czYCCAsgACAAKAIIIAAoAgQtAAFBCHRzNgIICyAAIAAoAgQtAAAgACgCCHM2AgggACAAKAIIQZXTx94FbDYCCAsgACAAKAIIIgJBDXYgAnM2AgggACAAKAIIQZXTx94FbDYCCCAAIAAoAgggACgCCEEPdnM2AgggACgCCCECIABBIGokACACIQAgAUEgaiQAIANBEGokACAAC3QBA38jAEEQayICJAAgAiAANgIMIAIgATYCCCACQQE2AgQgAigCDCEBIAIoAgghAyACKAIEIQQjAEEQayIAJAAgACABNgIMIAAgAzYCCCAAIAQ2AgQgACgCCCAAKAIEQRhsQQgQQyAAQRBqJAAgAkEQaiQAC0cBAX8jAEEQayIBJAAgASAANgIEIwBBEGsiACABQQhqNgIMIABBADYCCCAAKAIMIAAoAgg2AgAgASgCCCEAIAFBEGokACAACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgxBDGoQqwEhACABQRBqJAAgAAs5AQF/IwBBEGsiASQAIAEgADYCDCMAQRBrIgAgASgCDDYCDCAAKAIMKAIAQRBqIQAgAUEQaiQAIAALbwECfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIQEgAygCCBAmIQIgAygCBCEEIwBBEGsiACABNgIMIAAgAjYCCCAAIAQ2AgQgACgCCCgCACAAKAIEKAIASCEAIANBEGokACAAC28BAn8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBIAMoAgghAiADKAIEECYhBCMAQRBrIgAgATYCDCAAIAI2AgggACAENgIEIAAoAggoAgAgACgCBCgCAEghACADQRBqJAAgAAspAQF/IwBBEGsiASQAIAEgADYCDCABKAIMEEgoAgAhACABQRBqJAAgAAvpAgEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhgiABCFATYCDCMA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KAIIKAIINgIAIAMoAgwgAygCBEEGakECdGogAygCCCgCDDYCACADQRBqJAALpicBCH8jAEEQayIFJAAgBSAANgIIIAUgATYCBCAFIAI2AgACQAJAAkACQCAFKAIEIgBBgAFHBEAgAEHAAUYNASAAQYACRg0CDAMLIAUoAgAhASAFKAIIIQIjAEHQAGsiACQAIAAgATYCTCAAIAI2AkggACgCTEEKNgLwASAAQTBqIAAoAkgQTiAAKAJMIgEgACkCMDcCACABIAApAjg3AgggAEEBNgIsA0AgACgCLEEKTQRAIABBEGogAEEwahBaIAAgACgCLEEBay0AjDQ6AA8gAEEANgIIA0AgACgCCEEESQRAIABBMGoiAiAAKAIIIgFBAnRqKAIAIQMgAC0ADyABEHchBiMAQRBrIgQiASADNgIMIAEgBjYCCCABKAIMIAEoAghzIQEgACgCCEECdCACaiABNgIAIAAoAghBAnQgAmooAgAhAiAEIgEhByABIABBEGogACgCCEECdGooAgA2AgwgByABKAIMIgNBAnZBv/78+QNxIANBBnRBwIGDhnxxcjYCDCABQQw2AgggASgCDCABKAIIQQF0diEDIAEgAjYCDCABIAM2AgggASgCDCABKAIIcyEBIABBMGogACgCCEECdGogATYCACAAIABBMGogACgCCEECdGooAgA2AgQgAEEwaiAAKAIIQQJ0aigCACECIAQiASAAKAIENgIMIAFBBDYCCCABKAIMIAEoAghBAXR0IQMgASACNgIMIAEgAzYCCCABKAIMIAEoAghzIQEgAEEwaiAAKAIIQQJ0aiABNgIAIABBMGogACgCCEECdGooAgAhAiAEIgEgACgCBDYCDCABQQg2AgggASgCDCABKAIIQQF0dCEDIAEgAjYCDCABIAM2AgggASgCDCABKAIIcyEBIABBMGogACgCCEECdGogATYCACAAQTBqIAAoAghBAnRqKAIAIQIgBCIBIAAoAgQ2AgwgAUEMNgIIIAEoAgwgASgCCEEBdHQhAyABIAI2AgwgASADNgIIIAEoAgwgASgCCHMhASAAQTBqIAAoAghBAnRqIAE2AgAgACAAKAIIQQFqNgIIDAELCyAAKAJMIAAoAixBBHRqIgEgACkCMDcCACABIAApAjg3AgggACAAKAIsQQFqNgIsDAELCyAAQdAAaiQAIAVBADYCDAwDCyAFKAIAIQEgBSgCCCECIwBBkAFrIgAkACAAIAE2AowBIAAgAjYCiAEgACgCjAFBDDYC8AEgACAAQfAAajYCXCAAIABB4ABqNgJYIAAoAlwgACgCiAEQTiAAKAKMASIBIAAoAlwiAikCADcCACABIAIpAgg3AgggAEIANwNIIABCADcDQCAAQUBrIgEgACgCiAEpABA3AAAgACgCWCABEE4gAEEANgI8A0AgACgCPEEESQRAIABBIGogACgCWBBaIAAgACgCPEEBdC0AjDQ6AB8gAEEANgIYA0AgACgCGEEESQRAIAAoAhgiAUECdCICIAAoAlhqKAIAIQMgAiAAKAJcaigCACECIAAtAB8gARB3IQYjAEEQayIEIgEgAjYCDCABIAY2AgggASgCDCABKAIIcyECIAQiASACNgIMIAFBCDYCCCABKAIMIAEoAghBAXR0IQIgASADNgIMIAEgAjYCCCABKAIMIAEoAghyIQEgACgCWCAAKAIYQQJ0aiABNgIAIAAoAlggACgCGEECdGooAgAhAyAEIgEhCCABIABBIGogACgCGEECdGooAgA2AgwgASABKAIMIgZBAnZBv/78+QNxIAZBBnRBwIGDhnxxcjYCDCABQQQ2AgggCCABKAIMIAEoAghBAXR0NgIMIAFBgID8BzYCCCABKAIMIAEoAghxIQIgASADNgIMIAEgAjYCCCABKAIMIAEoAghzIQEgACgCWCAAKAIYQQJ0aiABNgIAIAAoAlggACgCGEECdGooAgAhAyAEIgEhCSABIAAoAlggACgCGEECdGooAgA2AgwgAUEENgIIIAkgASgCDCABKAIIQQF0dDYCDCABQYCAgHg2AgggASgCDCABKAIIcSECIAEgAzYCDCABIAI2AgggASgCDCABKAIIcyEBIAAoAlggACgCGEECdGogATYCACAEIgEgACgCXCAAKAIYQQJ0aigCADYCDCABQQg2AgggASgCDCABKAIIQQF0diEBIAAoAlwgACgCGEECdGogATYCACAAKAJcIAAoAhhBAnRqKAIAIQIgBCIBIAAoAlggACgCGEECdGooAgA2AgwgAUEINgIIIAEoAgwgASgCCEEBdHQhAyABIAI2AgwgASADNgIIIAEoAgwgASgCCHIhASAAKAJcIAAoAhhBAnRqIAE2AgAgACgCXCAAKAIYQQJ0aigCACECIAQiASAAKAJYIAAoAhhBAnRqKAIANgIMIAFBDDYCCCABKAIMIAEoAghBAXR2IQMgASACNgIMIAEgAzYCCCABKAIMIAEoAghzIQEgACgCXCAAKAIYQQJ0aiABNgIAIAAgACgCXCAAKAIYQQJ0aigCADYCFCAAKAJcIAAoAhhBAnRqKAIAIQIgBCIBIAAoAhQ2AgwgAUEENgIIIAEoAgwgASgCCEEBdHQhAyABIAI2AgwgASADNgIIIAEoAgwgASgCCHMhASAAKAJcIAAoAhhBAnRqIAE2AgAgACgCXCAAKAIYQQJ0aigCACECIAQiASAAKAIUNgIMIAFBCDYCCCABKAIMIAEoAghBAXR0IQMgASACNgIMIAEgAzYCCCABKAIMIAEoAghzIQEgACgCXCAAKAIYQQJ0aiABNgIAIAAoAlwgACgCGEECdGooAgAhAiAEIgEgACgCFDYCDCABQQw2AgggASgCDCABKAIIQQF0dCEDIAEgAjYCDCABIAM2AgggASgCDCABKAIIcyEBIAAoAlwgACgCGEECdGogATYCACAAIAAoAhhBAWo2AhgMAQsLIAAoAowBIAAoAjxBA2xBAWpBBHRqIgEgACgCWCICKQIANwIAIAEgAikCCDcCCCAAKAKMASAAKAI8QQNsQQJqQQR0aiIBIAAoAlwiAikCADcCACABIAIpAgg3AgggAEEgaiAAKAJcEFogACAAKAI8QQF0QQFqLQCMNDoAHyAAQQA2AhADQCAAKAIQQQRJBEAjAEEQayIEIgEgACgCWCAAKAIQQQJ0aigCADYCDCABQQg2AgggASgCDCABKAIIQQF0diEBIAAoAlggACgCEEECdGogATYCACAAKAJYIAAoAhBBAnRqKAIAIQIgBCIBIAAoAlwgACgCEEECdGooAgA2AgwgAUEINgIIIAEoAgwgASgCCEEBdHQhAyABIAI2AgwgASADNgIIIAEoAgwgASgCCHIhASAAKAJYIAAoAhBBAnRqIAE2AgAgACgCWCAAKAIQQQJ0aigCACECIAAtAB8gACgCEBB3IQMjAEEQayIBIAI2AgwgASADNgIIIAEoAgwgASgCCHMhASAAKAJYIAAoAhBBAnRqIAE2AgAgACgCWCAAKAIQQQJ0aigCACECIwBBEGsiAyAAQSBqIAAoAhBBAnRqKAIANgIMIwBBEGsiASADKAIMIgNBAnZBv/78+QNxIANBBnRBwIGDhnxxcjYCDCABQQw2AgggASgCDCABKAIIQQF0diEDIwBBEGsiASACNgIMIAEgAzYCCCABKAIMIAEoAghzIQEgACgCWCAAKAIQQQJ0aiABNgIAIAAgACgCWCAAKAIQQQJ0aigCADYCDCAAKAJYIAAoAhBBAnRqKAIAIQIjAEEQayIBIAAoAgw2AgwgAUEENgIIIAEoAgwgASgCCEEBdHQhAyMAQRBrIgEgAjYCDCABIAM2AgggASgCDCABKAIIcyEBIAAoAlggACgCEEECdGogATYCACAAKAJYIAAoAhBBAnRqKAIAIQIjAEEQayIBIAAoAgw2AgwgAUEINgIIIAEoAgwgASgCCEEBdHQhAyMAQRBrIgEgAjYCDCABIAM2AgggASgCDCABKAIIcyEBIAAoAlggACgCEEECdGogATYCACAAKAJYIAAoAhBBAnRqKAIAIQIjAEEQayIBIAAoAgw2AgwgAUEMNgIIIAEoAgwgASgCCEEBdHQhAyMAQRBrIgEgAjYCDCABIAM2AgggASgCDCABKAIIcyEBIAAoAlggACgCEEECdGogATYCACMAQRBrIgEgACgCXCAAKAIQQQJ0aigCADYCDCABQQg2AgggASgCDCABKAIIQQF0diEBIAAoAlwgACgCEEECdGogATYCACAAKAJcIAAoAhBBAnRqKAIAIQIjAEEQayIBIAAoAlggACgCEEECdGooAgA2AgwgAUEMNgIIIAEoAgwgASgCCEEBdHYhAyMAQRBrIgEgAjYCDCABIAM2AgggASgCDCABKAIIcyEBIAAoAlwgACgCEEECdGogATYCACAAKAJcIAAoAhBBAnRqKAIAIQIjAEEQayIBIAAoAlwgACgCEEECdGooAgA2AgwgAUEENgIIIAEoAgwgASgCCEEBdHQhAyMAQRBrIgEgAjYCDCABIAM2AgggASgCDCABKAIIcyEBIAAoAlwgACgCEEECdGogATYCACMAQRBrIgEgACgCXCAAKAIQQQJ0aigCADYCDCABQf//AzYCCCABKAIMIAEoAghxIQEgACgCXCAAKAIQQQJ0aiABNgIAIAAgACgCEEEBajYCEAwBCwsgACgCjAEgACgCPEEDbEEDakEEdGoiASAAKAJYIgIpAgA3AgAgASACKQII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JAAgAkEQaiQAIwBBEGsiACQAIAAgBEEcaiIBNgIMIABBADYCCCAAKAIMQQAQkAEgAEEQaiQAIAEQcyMAQRBrIgAkACAAIAU2AgwgACgCDCECIwBBEGsiASQAIAEgAjYCDCABKAIMIgIgAkEIahAXKAIAEJACIAIQjwIgAUEQaiQAIABBEGokACADQRBqJAAgBAtRAQF/IwBBEGsiASQAIAEgADYCDCABIAEoAgw2AggjAEEQayIAIAEoAgg2AgwgASAAKAIMNgIEIAEgASgCBDYCACABKAIAIQAgAUEQaiQAIAALhwEBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQAgAigCCARAIAAgAigCCCgCABCsASAAIAIoAggoAgQQrAEgAiAAEGA2AgQgAigCBCEAIAIoAghBEGoQLCEBIwBBEGsiAyAANgIMIAMgATYCCCACKAIEIAIoAggQsgELIAJBEGokAAuHAQECfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwhACACKAIIBEAgACACKAIIKAIAEK0BIAAgAigCCCgCBBCtASACIAAQYDYCBCACKAIEIQAgAigCCEEQahAsIQEjAEEQayIDIAA2AgwgAyABNgIIIAIoAgQgAigCCBCyAQsgAkEQaiQAC1ABAn8jAEEQayIBJAAgASAANgIEIAEoAgQQSCECIwBBEGsiACABQQhqNgIMIAAgAjYCCCAAKAIMIAAoAgg2AgAgASgCCCEAIAFBEGokACAAC0oBAX8jAEEQayICIAA2AgwgAiABNgIIIAIoAgwiACACKAIIKAIANgIAIAAgAigCCCgCBDYCBCACKAIIQQA2AgAgAigCCEEANgIECw0AIwBBEGsgADYCDAAL5AEBA38jAEEQayIDJAAgAyAANgIMIAMgATYCCCADKAIMIQEgAyADKAIIEEI2AgQgAygCCBAmIQIjAEEQayIAJAAgACABNgIMIAAgA0EEajYCCCAAIAI2AgQgACgCCCECIwBBEGsiASAAKAIMIgQ2AgwgASACNgIIIAEoAgwgASgCCCgCADYCACAAKAIEIQIjAEEQayIBJAAgASAENgIMIAEgAjYCCCABKAIIIQQjAEEQayICIAEoAgw2AgwgAiAENgIIIAJBADYCBCACKAIMGiABQRBqJAAgAEEQaiQAIANBEGok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ARBDIABBEGokACADQRBqJAAL4QMBAX8jAEFAaiICJAAgAiAANgI8IAIgATYCOCACQTBqIAJBKGogAigCPCkDACACKAI4KQMIEJEBIAJBIGogAkEYaiACKAI8KQMIIAIoAjgpAwAQkQEgAkEQaiACQQhqIAIoAjwpAwAgAigCPCkDCIUgAigCOCkDACACKAI4KQMIhRCRASACIAIpAxAgAikDMCACKQMghYU3AxAgAiACKQMIIAIpAyggAikDGIWFNwMIIAIgAikDCCACKQMghTcDICACIAIpAxAgAikDKIU3AyggAiACKQMoIAIpAzBCP4YgAikDMEI+hoUgAikDMEI5hoWFNwMoIAIgAikDMCACKQMghTcDICACIAIpAyggAikDGIU3AxggAiACKQMgIAIpAzBCAYiFNwMgIAIgAikDICACKQMoQj+GhTcDICACIAIpAxggAikDKEIBiIU3AxggAiACKQMgIAIpAzBCAoiFNwMgIAIgAikDICACKQMoQj6GhTcDICACIAIpAxggAikDKEICiIU3AxggAiACKQMgIAIpAzBCB4iFNwMgIAIgAikDICACKQMoQjmGhTcDICACIAIpAxggAikDKEIHiIU3AxggAigCPCACKQMgNwMAIAIoAjwgAikDGDcDCCACQUBrJAALcgEBfyMAQRBrIgEgADcDCCABKQMIIgBCOIggAEIoiEKA/gODhCAAQhiIQoCA/AeDIABCCIhCgICA+A+DhIQgAEIIhkKAgICA8B+DIABCGIZCgICAgIDgP4OEIABCKIZCgICAgICAwP8AgyAAQjiGhISEC0MBAX8jAEEQayIBJAAgASAANgIMIAEoAgxBFGoQcSABKAIMQSRqEHEgASgCDEEEahBxIAEoAgxBNBCOASABQRBqJAALxQEBAX8jAEHgAGsiAyQAIAMgADYCXCADIAE2AlggAyACNgJUIANBADYCUAJAAkACQCADKAJcQQRqIAMgA0HMAGoQlQFFDQAgAygCXCIAQQRqIABBJGoQ3QFFDQAgAygCXEEEaiADIAMoAkwQWEUNACADKAJcQQRqIAMoAlggAygCVBCVAQ0BCyADKAJUQQA2AgAMAQsgA0EBNgJQCyADKAJQBEAjAEEQayADKAJcKAIANgIMCyADKAJQIQAgA0HgAGokACAAC0MBAX8jAEEQayIBJAAgASAA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A38jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQEgAigCCCEDIwBBEGsiACQAIAAgATYCDCAAIAM2AgggACgCCCEEIAAoAgwhAyMAQRBrIgEkACABIAM2AgwjAEEQayABKAIMNgIMIAFBEGokACAEQf////8DSwRAEDkACyAAKAIIQQJ0QQQQQSEBIABBEGokACACQRBqJAAgAQuHBgEFfyMAQTBrIgIkACACIAA2AiwgAiABNgIoIAIgAigCLCIAED8QJjYCJAJ/IAIoAigEQCACKAIkIAIoAigQiAIMAQtBAAshAyMAQRBrIgEkACABIAA2AgwgASADNgIIIAEgASgCDCIDEBcoAgA2AgQgASgCCCEEIAMQFyAENgIAIAEoAgQEQCADEFIgASgCBBCNAgsgAUEQaiQAIAIoAighASAAED8QJiABNgIAIAIoAigEQCACQQA2AiADQCACKAIgIAIoAihJBEAgACACKAIgECNBADYCACACIAIoAiBBAWo2AiAMAQsLIAIgAEEIahAXEBc2AhwgAiACKAIcKAIANgIYIAIoAhgEQCMAQRBrIgEgAigCGDYCDCACIAEoAgwoAgQgAigCKBAlNgIUIAIoAhwhASAAIAIoAhQQIyABNgIAIAIgAigCFDYCECACIAIoAhg2AhwgAiACKAIYKAIANgIYA0AgAigCGARAIwBBEGsiASACKAIYNgIMIAIgASgCDCgCBCACKAIoECU2AhQCQCACKAIUIAIoAhBGBEAgAiACKAIYNgIcDAELAkAgACACKAIUECMoAgBFBEAgAigCHCEBIAAgAigCFBAjIAE2AgAgAiACKAIYNgIcIAIgAigCFDYCEAwBCyACIAIoAhg2AgwDQCACKAIMKAIABH8gABAwIQMgAigCGBAXQQhqIQQgAigCDCgCABAXQQhqIQUjAEEQayIBJAAgASADNgIMIAEgBDYCCCABIAU2AgQgASgCDCEEIAEoAggQJiEFIAEoAgQQJiEGIwBBEGsiAyAENgIMIAMgBTYCCCADIAY2AgQgAygCCCkDACADKAIEKQMAUSEDIAFBEGokACADBUEAC0EBcQRAIAIgAigCDCgCADYCDAwBCwsgAigCHCACKAIMKAIANgIAIAAgAigCFBAjKAIAKAIAIQEgAigCDCABNgIAIAIoAhghASAAIAIoAhQQIygCACABNgIACwsgAiACKAIcKAIANgIYDAELCwsLIAJBMGokAAufAQEEfyMAQRBrIgIkACACIAA2AgwgAkEBNgIIIAIoAgwhASACKAIIIQMjAEEQayIAJAAgACABNgIMIAAgAzYCCCAAKAIIIQQgACgCDCEDIwBBEGsiASQAIAEgAzYCDCMAQRBrIAEoAgw2AgwgAUEQaiQAIARBqtWq1QBLBEAQOQALIAAoAghBGGxBCBBBIQEgAEEQaiQAIAJBEGokACABC6sDAgJ/AX0jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQCACKAIIQQFGBEAgAkECNgIIDAELIAIoAggiASABQQFrcQRAIAIgAigCCBDKATYCCAsLIAIgABA0NgIEAkAgAigCCCACKAIESwRAIAAgAigCCBCJAgwBCyACKAIIIAIoAgRJBEAgAgJ/IAIoAgQQowFBAXEEQAJ/IAAQHSgCALMgABAwKgIAlSEEIwBBEGsiASAEOAIMIAEqAgyNIgRDAACAT10gBEMAAAAAYHEEQCAEqQwBC0EACyEDIwBBEGsiASQAIAEgAzYCDAJ/IAEoAgxBAkkEQCABKAIMDAELIwBBEGsiAyABKAIMQQFrNgIMQQFBICADKAIMZ2t0CyEDIAFBEGokACADDAELAn8gABAdKAIAsyAAEDAqAgCVIQQjAEEQayIBIAQ4AgwgASoCDI0iBEMAAIBPXSAEQwAAAABgcQRAIASpDAELQQALEMoBCzYCACACIAJBCGogAhBKKAIANgIIIAIoAgggAigCBEkEQCAAIAIoAggQiQILCwsgAkEQaiQAC3QBAn8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBIAMoAgghAiADKAIEIQQjAEEQayIAJAAgACABNgIMIAAgAjYCCCAAIAQ2AgQgACgCCCAAKAIEQQJ0QQQQQyAAQRBqJAAgA0EQaiQACzoBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIgAQJiACKAIIIAAQJigCABCMAiACQRBqJAALSgEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgghASMAQRBrIgAkACAAIAE2AgwgACgCDEEIahA4IABBEGokACACQRBqJAALbgECfyMAQRBrIgIkACACIAA2AgwgAigCDCEBIwBBEGsiACQAIAAgATYCDCAAQQA2AgggACAAKAIMIgEQFygCADYCBCABEBdBADYCACAAKAIEBEAgARBSIAAoAgQQjQILIABBEGokACACQRBqJAALfAEBfyMAQSBrIgIkACACIAA2AhwgAiABNgIYIAIgAigCHBAYNgIUA0AgAigCGARAIAIgAigCGCgCADYCECACIAIoAhgQFzYCDCACKAIUIAIoAgxBCGoQLBCOAiACKAIUIAIoAgwQfyACIAIoAhA2AhgMAQsLIAJBIGokAAswAQF/IwBBEGsiASQAIAEgADYCBCMAQRBrIgAgASgCBDYCDCAAKAIMGiABQRBqJAALjwEBAn8jAEEgayICJAAgASgCACEDIAEoAgQhASACIAA2AhggAiABNgIUIAIgAzYCECACQRM2AgwgAigCGCEBIwBBEGsiACACQQhqIgM2AgwgACQAIAAgAzYCDCAAQRBqJAAgAiACKAIMNgIcQbQnIAFBA0GUKUGQKCACKAIMIAJBEGoQVUEAEAQgAkEgaiQAC0IBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIgAgAigCCBCeAiAAQYQyNgIAIABBAToAICACQRBqJAAgAAvoAgEBfyMAQSBrIgIkACACIAA2AhQgAiABNgIQIAIgAigCFCIAEB0gAigCEBB+NgIMIAIgABA0NgIIAkAgAigCCARAIAIgAigCDCACKAIIECU2AgQgAiAAIAIoAgQQIygCADYCACACKAIABEAgAiACKAIAKAIANgIAA0AgAigCAAR/IwBBEGsiASACKAIANgIMIAEoAgwoAgQgAigCDEcEfyMAQRBrIgEgAigCADYCDCABKAIMKAIEIAIoAggQJSACKAIERgVBAQsFQQALQQFxBEAjAEEQayIBIAIoAgA2AgwCQCABKAIMKAIEIAIoAgxHDQAgABAwIAIoAgAQF0EIaiACKAIQEH1BAXFFDQAgAigCACEBIwBBEGsiACACQRhqNgIMIAAgATYCCCAAKAIMIAAoAgg2AgAMBQsgAiACKAIAKAIANgIADAELCwsLIAIgABCAATYCGAsgAigCGCEAIAJBIGokACAAC6cFAgR/An4jAEEQayIDJAAgAyAANgIEIAMgATYCAEEgEC8iBSEAIAMoAgQpAwAhBiADKAIAKQMAIQcjAEEgayIE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IgMgAygCACgCIBEAACEEIwBBEGsiAyACNgIMIAMoAgwoAgAiAyADKAIAKAIkEQAAIQYgDCgCKCEHIAwoAiQhCCAMKAIgIQkgDCgCHCAMKAIQayEKIwBBQGoiAyQAIAMgBTYCOCADIAE2AjQgAyAENgIwIAMgBjYCLCADIAc2AiggAyAINgIkIAMgCTYCICADIAo2AhwCQCADKAI4IgEoAgwgAygCJEkEQCADQQA6AD8MAQsgAyABKAIMEB82AhggA0EYahAWIAMoAiggAygCJBAbGiADEOIBNgIUAkAgAygCFEUEQCADQQA6AD8MAQsgAygCFCEEEJcBIQUgAygCMCEGIANBGGoQFiEHIwBBIGsiASQAIAEgBDYCHCABIAU2AhggAUEANgIUIAEgBjYCECABIAc2AgwgASgCHCABKAIYIAEoAhQgASgCECABKAIMQQAQ3wEhBCABQSBqJAAgBEUEQCADKAIUEDMgA0EAOgA/DAELIAMoAhQhBCADKAI0IQUgAygCICEGIAMoAhwhByMAQTBrIgEkACABIAQ2AiggASAFNgIkIAEgA0EMajYCICABIAY2AhwgASAHNgIYAkAgASgCKCgChAEEQEEeQcIAQfQSQZMDEBwgAUEANgIsDAELIAEgASgCKCgCACgCBDYCFAJAIAEoAhRBAU0NACABKAIYQf////8HIAEoAhRrTA0AQR5BxQBB9BJBmwMQHCABQQA2AiwMAQsgASgCKCgCACgCFEGACHEEQCABIAEoAigiBCABKAIkIAEoAhwgASgCGCAEKAIAKAIgEQYANgIQIAEoAhBBAEgEQCABKAIgQQA2AgAgAUEANgIsDAILIAEoAiAgASgCEDYCACABQQE2AiwMAQsgASgCGEEATARAIAEoAiBBADYCACABIAEoAhhFNgIsDAELIAEoAigoAhRBgBBxBEAgASABKAIoIAEoAiQgASgCICABKAIcIAEoAhgQmAE2AiwMAQsgASgCFEEgSwRAQZgjQfQSQbMDQdIPEAAACyABQQA2AgwgASgCKCgCYARAIAEoAiQgASgCKEHkAGogASgCFBAeIAEgASgCFCABKAIkajYCJCABQQE2AgwLIAEoAiggASgCJCABKAIgIAEoAhwgASgCGBCYAUUEQCABQQA2AiwMAQsCQAJAIAEoAhRBAU0NACABKAIoKAJYDQAg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IAMgAygCDEEUakEPcUECdCACaigCADYCXCADIAMoAlxBERAVIAMoAlxBExAVcyADKAJcQQp2czYCXCADKAIMQQZqQQ9xQQJ0IAJqIgEoAgAgAygCDEEPakEPcUECdCACaigCACADKAJgIAMoAlxqamohACABIAA2AgAgAyAANgJYIAMgAygCfCADKAJoQQYQFSADKAJoQQsQFXMgAygCaEEZEBVzaiADKAJoIAMoAmRxIAMoAoABIAMoAmhBf3Nxc2ogAygCDEECdEG4NGooAgBqIAMoAlhqNgJYIAMgAygCeEECEBUgAygCeEENEBVzIAMoAnhBFhAVcyADKAJ0IAMoAnBxIAMoAnggAygCdHEgAygCeCADKAJwcXNzajYCfCADIAMoAlggAygCbGo2AmwgAyADKAJYIAMoAnxqNgJ8IAMgAygCDEEIakEPcUECdCACaigCADYCYCADIAMoAmBBBxAVIAMoAmBBEhAVcyADKAJgQQN2czYCYCADIAMoAgxBFWpBD3FBAnQgAmooAgA2AlwgAyADKAJcQREQFSADKAJcQRMQFXMgAygCXEEKdnM2AlwgAygCDEEHakEPcUECdCACaiIBKAIAIAMoAgxBEGpBD3FBAnQgAmooAgAgAygCYCADKAJcampqIQAgASAANgIAIAMgADYCWCADIAMoAoABIAMoAmxBBhAVIAMoAmxBCxAVcyADKAJsQRkQFXNqIAMoAmwgAygCaHEgAygCZCADKAJsQX9zcXNqIAMoAgxBAnRBvDRqKAIAaiADKAJYajYCWCADIAMoAnxBAhAVIAMoAnxBDRAVcyADKAJ8QRYQFXMgAygCeCADKAJ0cSADKAJ8IAMoAnhxIAMoAnwgAygCdHFzc2o2AoABIAMgAygCWCADKAJwajYCcCADIAMoAlggAygCgAFqNgKAASADIAMoAgxBCGo2AgwMAQsLIAMoAowBIgAgAygCgAEgACgCAGo2AgAgAygCjAEiACADKAJ8IAAoAgRqNgIEIAMoAowBIgAgAygCeCAAKAIIajYCCCADKAKMASIAIAMoAnQgACgCDGo2AgwgAygCjAEiACADKAJwIAAoAhBqNgIQIAMoAowBIgAgAygCbCAAKAIUajYCFCADKAKMASIAIAMoAmggACgCGGo2AhggAygCjAEiACADKAJkIAAoAhxqNgIcDAEL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AyAAIAI2AsgDIAAoAtQDIQEgACgC0AMhAiAAKALIAyEDIAAgACgCzAM2AsQDIAAgAzYCwAMgACAAKQPAAzcDCCACIABBCGoQkgIgAEEANgJUIABBDTYCUCAAIAApA1A3A/gBIAAoAvgBIQIgACgC/AEhAyAAIAE2ApQCIABBkRA2ApACIAAgAzYCjAIgACACNgKIAiAAKAKQAiEBIAAoAogCIQIgACAAKAKMAjYChAIgACACNgKAAiAAIAApA4ACNwNIIAEgAEHIAGoQswEgAEGQBGokAAsL8F0MAEGACAv+ImFlc19pbml0X2tleQBhZXNfY3RyX3NldF9rZXkAcmVtb3ZlQmFzZUtleQBhZGRPclVwZGF0ZUJhc2VLZXkARVZQX01EX0NUWF9jb3B5X2V4AEVWUF9EaWdlc3RJbml0X2V4AEVWUF9DaXBoZXJJbml0X2V4AEhNQUNfSW5pdF9leABFVlBfRGlnZXN0RmluYWxfZXgARVZQX0VuY3J5cHRGaW5hbF9leABFVlBfRGVjcnlwdEZpbmFsX2V4AF9fbmV4dF9wcmltZSBvdmVyZmxvdwB1bnNpZ25lZCBzaG9ydABhZXNfbm9od19jYmNfZW5jcnlwdABDUllQVE9fY3RyMTI4X2VuY3J5cHQAdW5zaWduZWQgaW50AHNoYTI1Nl9pbml0AHNldFNraXBPZmZzZXQAYWVzX25vaHdfYmF0Y2hfc2V0AGFlc19ub2h3X2JhdGNoX2dldABIS0RGX2V4dHJhY3QAZmxvYXQAdWludDY0X3QAZ2V0U3RhdHVzAGxoLT5udW1fYnVja2V0cyA+PSBrTWluTnVtQnVja2V0cwB2ZWN0b3IAZ2V0S2V5QnVmZmVyAGJsb2NrX3JlbWFpbmRlcgB1bnNpZ25lZCBjaGFyAEVWUF9NRF9DVFhfY2xlYW51cABrZXkgJiYgZWNvdW50X2J1ZiAmJiBudW0AcnVuQWxnb3JpdGhtAHNoYTI1Nl9maW5hbF9pbXBsAGJvb2wAZW1zY3JpcHRlbjo6dmFsAHNoYTI1Nl9maW5hbABjcnlwdG9fbWQzMl9maW5hbABhZXNfbm9od190b19iYXRjaABhZXNfbm9od19mcm9tX2JhdGNoAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ0Ly4uL2RpZ2VzdC9tZDMyX2NvbW1vbi5oAGV4dGVybmFsL2Vtc2NyaXB0ZW5fYmluX2xpbnV4L2Vtc2NyaXB0ZW4vY2FjaGUvc3lzcm9vdC9pbmNsdWRlL2Vtc2NyaXB0ZW4vdmFsLmgAZ2V0RGVidWcAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAc3RkOjpzdHJpbmcAc3RkOjp1MTZzdHJpbmcAc3RkOjp1MzJzdHJpbmcAZm91bmQgPT0gYnVmAGxoX21heWJlX3Jlc2l6ZQBFVlBfTURfc2l6ZShtZCkgPD0gYmxvY2tfc2l6ZQBuIDwgYmxvY2tfc2l6ZQBDaXBoZXJTdWl0ZQBzaGEyNTZfdXBkYXRlAEVWUF9FbmNyeXB0VXBkYXRlAEVWUF9EZWNyeXB0VXBkYXRlAHdyaXRlR2VuZXJpY1dpcmVUeXBlAEVuZ2luZVR5cGUAU0ZyYW1lRW5naW5lAGdldE91dHB1dEZyYW1lAGdldElucHV0RnJhbWUAZG91YmxlAENSWVBUT19CVUZGRVJfZnJlZQB2b2lkAE9QRU5TU0xfbWFsbG9jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2Flc19ub2h3LmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9kaWdlc3QvZGlnZXN0LmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9kaWdlc3QvZGlnZXN0cy5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvY2lwaGVyL2VfYWVzLmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9jdHIuYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2NpcGhlci9jaXBoZXIuYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9tZW0uYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wb29sL3Bvb2wuYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9saGFzaC9saGFzaC5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvaGtkZi9oa2RmLmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL2VfYWVzY3RyaG1hYy5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvaG1hYy9obWFjLmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXhfZGF0YS5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL3NoYTI1Ni5jAENSWVBUT19mcmVlX2V4X2RhdGEAc2hvcnRfcHRyIDw9IFVJTlQzMl9NQVgARkFJTEVEX1RPX0VOQ1JZUFQARkFJTEVEX1RPX0RFQ1JZUFQAT1BVUwBFTkNSWVBUT1IAREVDUllQVE9SAEZBSUxfUEFSU0VfQ09ERUNfSEVBREVSAFVOS05PV04AY3R4LT5wY3R4ID09IE5VTEwgfHwgY3R4LT5wY3R4X29wcyAhPSBOVUxMAG91dC0+cGN0eCA9PSBOVUxMIHx8IG91dC0+cGN0eF9vcHMgIT0gTlVMTABpbi0+cGN0eCA9PSBOVUxMIHx8IGluLT5wY3R4X29wcyAhPSBOVUxMAE9QRU5TU0xfbWVtb3J5X2dldF9zaXplICE9IE5VTEwAT1BFTlNTTF9tZW1vcnlfZnJlZSAhPSBOVUxMAE9LAG51bV9ibG9ja3MgPD0gQUVTX05PSFdfQkFUQ0hfU0laRQBpIDwgQUVTX05PSFdfQkFUQ0hfU0laRQBjdHgtPmRpZ2VzdC0+bWRfc2l6ZSA8PSBFVlBfTUFYX01EX1NJWkUARkFJTEVEX1RPX0FVVEhFTlRJQ0FURQBOT05FAE5VTExfT1VUUFVUX0ZSQU1FAE5VTExfSU5QVVRfRlJBTUUAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBWUDgAa2V5X2J5dGVzID09IDEyOCAvIDggfHwga2V5X2J5dGVzID09IDE5MiAvIDggfHwga2V5X2J5dGVzID09IDI1NiAvIDgAY3R4LT5jaXBoZXItPmJsb2NrX3NpemUgPT0gMSB8fCBjdHgtPmNpcGhlci0+YmxvY2tfc2l6ZSA9PSA4IHx8IGN0eC0+Y2lwaGVyLT5ibG9ja19zaXplID09IDE2ACpudW0gPCAxNgBIMjY0AENSWVBUT19jdHIxMjhfZW5jcnlwdF9jdHIzMgBBRVNfQ1RSXzEyOF9ITUFDX1NIQTI1Nl84MABsZW4gJSAxNiA9PSAwAG1kX2xlbiAlIDQgPT0gMAAoY3R4LT5jaXBoZXItPmJsb2NrX3NpemUgJiAoY3R4LT5jaXBoZXItPmJsb2NrX3NpemUgLSAxKSkgPT0gMABpbi0+ZGlnZXN0LT5jdHhfc2l6ZSAhPSAwAHR5cGUtPmN0eF9zaXplICE9IDAAY3R4LT5jaXBoZXItPmJsb2NrX3NpemUgIT0gMABFVlBfQ0lQSEVSX0NUWF9pdl9sZW5ndGgoY3R4KSA8PSBzaXplb2YoY3R4LT5pdikAbGVuID09IDAgfHwgKGluICYmIG91dCkAKm91dF9sZW4gPT0gRVZQX01EX3NpemUoZGlnZXN0KQBTSEEyNTZfVXBkYXRlKGN0eC0+bWRfZGF0YSwgZGF0YSwgY291bnQpAGIgPD0gc2l6ZW9mKGN0eC0+ZmluYWwpAGtleV9sZW4gPD0gc2l6ZW9mKGtleV9ibG9jaykAYmxvY2tfc2l6ZSA8PSBzaXplb2Yoa2V5X2Jsb2NrKQBibCA8PSAoaW50KXNpemVvZihjdHgtPmJ1ZikAYiA8PSBzaXplb2YoY3R4LT5idWYpAG51bV9mdW5jcyA8PSAoc2l6ZV90KShJTlRfTUFYIC0gZXhfZGF0YV9jbGFzcy0+bnVtX3Jlc2VydmVkKQBTSEEyNTZfSW5pdChjdHgtPm1kX2RhdGEpAFNIQTI1Nl9GaW5hbChtZCwgY3R4LT5tZF9kYXRhKQB2cGFlc19jYXBhYmxlKCkAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEATjZ2b25hZ2UyMVNGcmFtZUVuZ2luZUludGVyZmFjZTRUeXBlRQAAAAAkMwAAwxIAAE42dm9uYWdlMjZTRnJhbWVDaXBoZXJzdWl0ZUludGVyZmFjZTIzU0ZyYW1lRW5naW5lQ2lwaGVyU3VpdGVFAAAkMwAA9BIAAE42dm9uYWdlMjFTRnJhbWVFbmdpbmVJbnRlcmZhY2UyNlRhcmdldFBheWxvYWRGb3JTa2lwT2Zmc2V0RQAAAAAkMwAAPBMAAE42dm9uYWdlMTJTZnJhbWVTdGF0dXNFACQzAACEEwAAMTBTRnJhbWVXYXNtAAAAAHAzAACkEwAAUDEwU0ZyYW1lV2FzbQAAAFA0AAC8EwAAAAAAALQTAABQSzEwU0ZyYW1lV2FzbQAAUDQAANwTAAABAAAAtBMAAGlpAHYAdmkAzBMAAOwSAAA0EwAAaWlpaQAAAADAMgAAzBMAAPwyAABAFAAAzBMAAE4xMGVtc2NyaXB0ZW4zdmFsRQAAcDMAACwUAABpaWkATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAABwMwAATBQAAHgyAADMEwAA/DIAAGAyAADMEwAAfBMAAHZpaWkAAAAAQBQAAMwTAADkMgAAAAAAAAAVAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAABONnZvbmFnZTUxQm9yaW5nU1NMU0ZyYW1lX0FFU19DVFJfMTI4X0hNQUNfU0hBMjU2X0NpcGhlcnN1aXRlRQAAmDMAAMAUAADMFQAAAAAAAHQVAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAJwAAAE42dm9uYWdlMjVCb3JpbmdTU0xTRnJhbWVEZXJpdmVkS2V5RQAAAACYMwAATBUAAEwYAEGIKwtYzBUAACgAAAApAAAAFgAAACoAAAAqAAAAKgAAAE42dm9uYWdlMjZTRnJhbWVDaXBoZXJzdWl0ZUludGVyZmFjZUUAAABwMwAApBUAAAAAAABTRnJhbWUxMABBqCwLHQgAAAABAAAAU0ZyYW1lMTAgQUVTIENUUiBBRUFEAEGALQsLFQAAAAAAAABrZXkAQdgtCwwDAAAAAQAAAHNhbHQAQbAuCwsEAAAAAgAAAGVuYwBBiC8LDAMAAAADAAAAYXV0aABB4C8LoQQEAAAAAAAAAEwYAAAtAAAALgAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAKgAAAE42dm9uYWdlMjVTRnJhbWVEZXJpdmVkS2V5SW50ZXJmYWNlRQAAAABwMwAAJBgAAAAAAADIGAAALwAAADAAAAAxAAAAMgAAADMAAABOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONnZvbmFnZTI1Qm9yaW5nU1NMU0ZyYW1lRGVyaXZlZEtleUVOU185YWxsb2NhdG9ySVMyX0VFRUUAmDMAAHAYAADEMAAAAAAAADQZAAA4AAAAOQAAACoAAAAAAAAAYBkAADYAAAA6AAAAOwAAAAAAAACQGQAANwAAADwAAAA9AAAATjZ2b25hZ2UyMVNGcmFtZUVuZ2luZUludGVyZmFjZUUAAAAAcDMAABAZAABONnZvbmFnZTIxU0ZyYW1lRW5naW5lRW5jcnlwdG9yRQAAAACYMwAAPBkAADQZAABONnZvbmFnZTIxU0ZyYW1lRW5naW5lRGVjcnlwdG9yRQAAAACYMwAAbBkAADQZAAAAAAAAxBkAAD4AAAA/AAAATjZ2b25hZ2UxMlNmcmFtZVJlc3VsdEUAcDMAAKwZAAABAAAAEAAAAAABAABGBQAAACAAAABAAAAwDCAgAAAAAEUAAAAAAAAARgAAAAAAAABHAAAASABBjDQLCgECBAgQIECAGzYAQaA0C6gpmC+KQpFEN3HP+8C1pdu16VvCVjnxEfFZpII/ktVeHKuYqgfYAVuDEr6FMSTDfQxVdF2+cv6x3oCnBtybdPGbwcFpm+SGR77vxp3BD8yhDCRvLOktqoR0StypsFzaiPl2UlE+mG3GMajIJwOwx39Zv/ML4MZHkafVUWPKBmcpKRSFCrcnOCEbLvxtLE0TDThTVHMKZbsKanYuycKBhSxykqHov6JLZhqocItLwqNRbMcZ6JLRJAaZ1oU1DvRwoGoQFsGkGQhsNx5Md0gntbywNLMMHDlKqthOT8qcW/NvLmjugo90b2OleBR4yIQIAseM+v++kOtsUKT3o/m+8nhxxoxiIAvSoHJYRKiWaa1VfuwDAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAAHAzAAAyGwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAAHAzAAB8GwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAAHAzAADEGwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAABwMwAADBwAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAcDMAAFgcAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAHAzAACkHAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAABwMwAAzBwAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAcDMAAPQcAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAHAzAAAcHQAATjEwZW1zY3JpcHRlbjExbWVt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",Rr(Br)||(Br=Mn(Br));function Jo(P){try{if(P==Br&&kr)return new Uint8Array(kr);var ee=Od(P);if(ee)return ee;if(sr)return sr(P);throw"both async and sync fetching of the wasm failed"}catch(Re){En(Re)}}function ho(){if(!kr&&(Kt||cn)){if(typeof fetch=="function"&&!si(Br))return fetch(Br,{credentials:"same-origin"}).then(function(P){if(!P.ok)throw"failed to load wasm binary file at '"+Br+"'";return P.arrayBuffer()}).catch(function(){return Jo(Br)});if(Ur)return new a(function(P,ee){Ur(Br,function(Re){P(new Uint8Array(Re))},ee)})}return a.resolve().then(function(){return Jo(Br)})}function Qo(){var P={a:Bc};function ee(Xt,en){var fn=Xt.exports;At.asm=fn,Ba=At.asm.v,Jl(Ba.buffer),Hl=At.asm.y,$a(At.asm.w),yn()}qa();function Re(Xt){ee(Xt.instance)}function rt(Xt){return ho().then(function(en){return WebAssembly.instantiate(en,P)}).then(function(en){return en}).then(Xt,function(en){$r("failed to asynchronously prepare wasm: "+en),En(en)})}function st(){return!kr&&typeof WebAssembly.instantiateStreaming=="function"&&!Rr(Br)&&!si(Br)&&!Jn&&typeof fetch=="function"?fetch(Br,{credentials:"same-origin"}).then(function(Xt){var en=WebAssembly.instantiateStreaming(Xt,P);return en.then(Re,function(fn){return $r("wasm streaming compile failed: "+fn),$r("falling back to ArrayBuffer instantiation"),rt(Re)})}):rt(Re)}if(At.instantiateWasm)try{var tn=At.instantiateWasm(P,ee);return tn}catch(Xt){$r("Module.instantiateWasm callback failed with error: "+Xt),zt(Xt)}return st().catch(zt),{}}function Tl(P){this.name="ExitStatus",this.message="Program terminated with exit("+P+")",this.status=P}function ga(P){for(;P.length>0;)P.shift()(At)}function Zd(P){if(P instanceof Tl||P=="unwind")return qo;Ct(1,P)}function gl(P){for(var ee=[],Re=0;Re<P.length;Re++){var rt=P[Re];rt>255&&(rt&=255),ee.push(String.fromCharCode(rt))}return ee.join("")}function ru(P,ee,Re,rt){En("Assertion failed: "+Za(P)+", at: "+[ee?Za(ee):"unknown filename",Re,rt?Za(rt):"unknown function"])}function eo(P){if(P===null)return"null";var ee=typeof P;return ee==="object"||ee==="array"||ee==="function"?P.toString():""+P}function Hd(){for(var P=new Array(256),ee=0;ee<256;++ee)P[ee]=String.fromCharCode(ee);$l=P}var $l=void 0;function ua(P){for(var ee="",Re=P;so[Re];)ee+=$l[so[Re++]];return ee}var Id={},fd={},dt={},Ft=48,Se=57;function le(P){if(P===void 0)return"_unknown";P=P.replace(/[^a-zA-Z0-9_]/g,"$");var ee=P.charCodeAt(0);return ee>=Ft&&ee<=Se?"_"+P:P}function Le(P,ee){return P=le(P),new Function("body","return function "+P+`() { "use strict"; return body.apply(this, arguments); }; `)(ee)}function Xe(P,ee){var Re=Le(ee,function(rt){this.name=ee,this.message=rt;var st=new Error(rt).stack;st!==void 0&&(this.stack=this.toString()+` `+st.replace(/^Error(:[^\n]*)?\n/,""))});return Re.prototype=Object.create(P.prototype),Re.prototype.constructor=Re,Re.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Re}var Oe=void 0;function mt(P){throw new Oe(P)}var Wt=void 0;function Mt(P){throw new Wt(P)}function pn(P,ee,Re){P.forEach(function(en){dt[en]=ee});function rt(en){var fn=Re(en);fn.length!==P.length&&Mt("Mismatched type converter count");for(var ge=0;ge<P.length;++ge)on(P[ge],fn[ge])}var st=new Array(ee.length),tn=[],Xt=0;ee.forEach((en,fn)=>{fd.hasOwnProperty(en)?st[fn]=fd[en]:(tn.push(en),Id.hasOwnProperty(en)||(Id[en]=[]),Id[en].push(()=>{st[fn]=fd[en],++Xt,Xt===tn.length&&rt(st)}))}),tn.length===0&&rt(st)}function on(P,ee,Re){if(Re===void 0&&(Re={}),!("argPackAdvance"in ee))throw new TypeError("registerType registeredInstance requires argPackAdvance");var rt=ee.name;if(P||mt('type "'+rt+'" must have a positive integer typeid pointer'),fd.hasOwnProperty(P)){if(Re.ignoreDuplicateRegistrations)return;mt("Cannot register type '"+rt+"' twice")}if(fd[P]=ee,delete dt[P],Id.hasOwnProperty(P)){var st=Id[P];delete Id[P],st.forEach(tn=>tn())}}function gn(P,ee,Re){switch(ee){case 0:return Re?function(st){return So[st]}:function(st){return so[st]};case 1:return Re?function(st){return Ll[st>>1]}:function(st){return Ko[st>>1]};case 2:return Re?function(st){return Co[st>>2]}:function(st){return ti[st>>2]};case 3:return Re?function(st){return ss[st>>3]}:function(st){return Zl[st>>3]};default:throw new TypeError("Unknown integer type: "+P)}}function qn(P,ee,Re,rt,st){ee=ua(ee);var tn=cr(Re),Xt=ee.indexOf("u")!=-1;Xt&&(st=(1n<<64n)-1n),on(P,{name:ee,fromWireType:function(fn){return fn},toWireType:function(fn,ge){if(typeof ge!="bigint"&&typeof ge!="number")throw new TypeError('Cannot convert "'+eo(ge)+'" to '+this.name);if(ge<rt||ge>st)throw new TypeError('Passing a number "'+eo(ge)+'" from JS side to C/C++ side to an argument of type "'+ee+'", which is outside the valid range ['+rt+", "+st+"]!");return ge},argPackAdvance:8,readValueFromPointer:gn(ee,tn,!Xt),destructorFunction:null})}function cr(P){switch(P){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+P)}}function Gn(P,ee,Re,rt,st){var tn=cr(Re);ee=ua(ee),on(P,{name:ee,fromWireType:function(en){return!!en},toWireType:function(en,fn){return fn?rt:st},argPackAdvance:8,readValueFromPointer:function(en){var fn;if(Re===1)fn=So;else if(Re===2)fn=Ll;else if(Re===4)fn=Co;else throw new TypeError("Unknown boolean type size: "+ee);return this.fromWireType(fn[en>>tn])},destructorFunction:null})}function Or(P){if(!(this instanceof xd)||!(P instanceof xd))return!1;for(var ee=this.$$.ptrType.registeredClass,Re=this.$$.ptr,rt=P.$$.ptrType.registeredClass,st=P.$$.ptr;ee.baseClass;)Re=ee.upcast(Re),ee=ee.baseClass;for(;rt.baseClass;)st=rt.upcast(st),rt=rt.baseClass;return ee===rt&&Re===st}function un(P){return{count:P.count,deleteScheduled:P.deleteScheduled,preservePointerOnDelete:P.preservePointerOnDelete,ptr:P.ptr,ptrType:P.ptrType,smartPtr:P.smartPtr,smartPtrType:P.smartPtrType}}function Ar(P){function ee(Re){return Re.$$.ptrType.registeredClass.name}mt(ee(P)+" instance already deleted")}var mo=!1;function ds(P){}function Kr(P){P.smartPtr?P.smartPtrType.rawDestructor(P.smartPtr):P.ptrType.registeredClass.rawDestructor(P.ptr)}function Sn(P){P.count.value-=1;var ee=P.count.value===0;ee&&Kr(P)}function Il(P,ee,Re){if(ee===Re)return P;if(Re.baseClass===void 0)return null;var rt=Il(P,ee,Re.baseClass);return rt===null?null:Re.downcast(rt)}var bl={};function to(){return Object.keys(Gd).length}function Ri(){var P=[];for(var ee in Gd)Gd.hasOwnProperty(ee)&&P.push(Gd[ee]);return P}var Mo=[];function ed(){for(;Mo.length;){var P=Mo.pop();P.$$.deleteScheduled=!1,P.delete()}}var Ds=void 0;function sa(P){Ds=P,Mo.length&&Ds&&Ds(ed)}function no(){At.getInheritedInstanceCount=to,At.getLiveInheritedInstances=Ri,At.flushPendingDeletes=ed,At.setDelayFunction=sa}var Gd={};function cc(P,ee){for(ee===void 0&&mt("ptr should not be undefined");P.baseClass;)ee=P.upcast(ee),P=P.baseClass;return ee}function pu(P,ee){return ee=cc(P,ee),Gd[ee]}function Ti(P,ee){(!ee.ptrType||!ee.ptr)&&Mt("makeClassHandle requires ptr and ptrType");var Re=!!ee.smartPtrType,rt=!!ee.smartPtr;return Re!==rt&&Mt("Both smartPtrType and smartPtr must be specified"),ee.count={value:1},xl(Object.create(P,{$$:{value:ee}}))}function Ec(P){var ee=this.getPointee(P);if(!ee)return this.destructor(P),null;var Re=pu(this.registeredClass,ee);if(Re!==void 0){if(Re.$$.count.value===0)return Re.$$.ptr=ee,Re.$$.smartPtr=P,Re.clone();var rt=Re.clone();return this.destructor(P),rt}function st(){return this.isSmartPointer?Ti(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:ee,smartPtrType:this,smartPtr:P}):Ti(this.registeredClass.instancePrototype,{ptrType:this,ptr:P})}var tn=this.registeredClass.getActualType(ee),Xt=bl[tn];if(!Xt)return st.call(this);var en;this.isConst?en=Xt.constPointerType:en=Xt.pointerType;var fn=Il(ee,this.registeredClass,en.registeredClass);return fn===null?st.call(this):this.isSmartPointer?Ti(en.registeredClass.instancePrototype,{ptrType:en,ptr:fn,smartPtrType:this,smartPtr:P}):Ti(en.registeredClass.instancePrototype,{ptrType:en,ptr:fn})}function xl(P){return typeof FinalizationRegistry>"u"?(xl=ee=>ee,P):(mo=new FinalizationRegistry(ee=>{Sn(ee.$$)}),xl=ee=>{var Re=ee.$$,rt=!!Re.smartPtr;if(rt){var st={$$:Re};mo.register(ee,st,ee)}return ee},ds=ee=>mo.unregister(ee),xl(P))}function Hc(){if(this.$$.ptr||Ar(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var P=xl(Object.create(Object.getPrototypeOf(this),{$$:{value:un(this.$$)}}));return P.$$.count.value+=1,P.$$.deleteScheduled=!1,P}function Sc(){this.$$.ptr||Ar(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&mt("Object already scheduled for deletion"),ds(this),Sn(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function td(){return!this.$$.ptr}function Vs(){return this.$$.ptr||Ar(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&mt("Object already scheduled for deletion"),Mo.push(this),Mo.length===1&&Ds&&Ds(ed),this.$$.deleteScheduled=!0,this}function qd(){xd.prototype.isAliasOf=Or,xd.prototype.clone=Hc,xd.prototype.delete=Sc,xd.prototype.isDeleted=td,xd.prototype.deleteLater=Vs}function xd(){}function Jd(P,ee,Re){if(P[ee].overloadTable===void 0){var rt=P[ee];P[ee]=function(){return P[ee].overloadTable.hasOwnProperty(arguments.length)||mt("Function '"+Re+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+P[ee].overloadTable+")!"),P[ee].overloadTable[arguments.length].apply(this,arguments)},P[ee].overloadTable=[],P[ee].overloadTable[rt.argCount]=rt}}function xc(P,ee,Re){At.hasOwnProperty(P)?(mt("Cannot register public name '"+P+"' twice"),Jd(At,P,P),At.hasOwnProperty(Re)&&mt("Cannot register multiple overloads of a function with the same number of arguments ("+Re+")!"),At[P].overloadTable[Re]=ee):At[P]=ee}function Es(P,ee,Re,rt,st,tn,Xt,en){this.name=P,this.constructor=ee,this.instancePrototype=Re,this.rawDestructor=rt,this.baseClass=st,this.getActualType=tn,this.upcast=Xt,this.downcast=en,this.pureVirtualFunctions=[]}function ec(P,ee,Re){for(;ee!==Re;)ee.upcast||mt("Expected null or instance of "+Re.name+", got an instance of "+ee.name),P=ee.upcast(P),ee=ee.baseClass;return P}function Ms(P,ee){if(ee===null)return this.isReference&&mt("null is not a valid "+this.name),0;ee.$$||mt('Cannot pass "'+eo(ee)+'" as a '+this.name),ee.$$.ptr||mt("Cannot pass deleted object as a pointer of type "+this.name);var Re=ee.$$.ptrType.registeredClass,rt=ec(ee.$$.ptr,Re,this.registeredClass);return rt}function Cd(P,ee){var Re;if(ee===null)return this.isReference&&mt("null is not a valid "+this.name),this.isSmartPointer?(Re=this.rawConstructor(),P!==null&&P.push(this.rawDestructor,Re),Re):0;ee.$$||mt('Cannot pass "'+eo(ee)+'" as a '+this.name),ee.$$.ptr||mt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&ee.$$.ptrType.isConst&&mt("Cannot convert argument of type "+(ee.$$.smartPtrType?ee.$$.smartPtrType.name:ee.$$.ptrType.name)+" to parameter type "+this.name);var rt=ee.$$.ptrType.registeredClass;if(Re=ec(ee.$$.ptr,rt,this.registeredClass),this.isSmartPointer)switch(ee.$$.smartPtr===void 0&&mt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:ee.$$.smartPtrType===this?Re=ee.$$.smartPtr:mt("Cannot convert argument of type "+(ee.$$.smartPtrType?ee.$$.smartPtrType.name:ee.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:Re=ee.$$.smartPtr;break;case 2:if(ee.$$.smartPtrType===this)Re=ee.$$.smartPtr;else{var st=ee.clone();Re=this.rawShare(Re,xs.toHandle(function(){st.delete()})),P!==null&&P.push(this.rawDestructor,Re)}break;default:mt("Unsupporting sharing policy")}return Re}function Wc(P,ee){if(ee===null)return this.isReference&&mt("null is not a valid "+this.name),0;ee.$$||mt('Cannot pass "'+eo(ee)+'" as a '+this.name),ee.$$.ptr||mt("Cannot pass deleted object as a pointer of type "+this.name),ee.$$.ptrType.isConst&&mt("Cannot convert argument of type "+ee.$$.ptrType.name+" to parameter type "+this.name);var Re=ee.$$.ptrType.registeredClass,rt=ec(ee.$$.ptr,Re,this.registeredClass);return rt}function Nc(P){return this.fromWireType(Co[P>>2])}function cs(P){return this.rawGetPointee&&(P=this.rawGetPointee(P)),P}function uc(P){this.rawDestructor&&this.rawDestructor(P)}function fc(P){P!==null&&P.delete()}function Pa(){go.prototype.getPointee=cs,go.prototype.destructor=uc,go.prototype.argPackAdvance=8,go.prototype.readValueFromPointer=Nc,go.prototype.deleteObject=fc,go.prototype.fromWireType=Ec}function go(P,ee,Re,rt,st,tn,Xt,en,fn,ge,ot){this.name=P,this.registeredClass=ee,this.isReference=Re,this.isConst=rt,this.isSmartPointer=st,this.pointeeType=tn,this.sharingPolicy=Xt,this.rawGetPointee=en,this.rawConstructor=fn,this.rawShare=ge,this.rawDestructor=ot,!st&&ee.baseClass===void 0?rt?(this.toWireType=Ms,this.destructorFunction=null):(this.toWireType=Wc,this.destructorFunction=null):this.toWireType=Cd}function Gc(P,ee,Re){At.hasOwnProperty(P)||Mt("Replacing nonexistant public symbol"),At[P].overloadTable!==void 0&&Re!==void 0||(At[P]=ee,At[P].argCount=Re)}var tl=[];function Jc(P){var ee=tl[P];return ee||(P>=tl.length&&(tl.length=P+1),tl[P]=ee=Hl.get(P)),ee}function Ls(P,ee){P=ua(P);function Re(){return Jc(ee)}var rt=Re();return typeof rt!="function"&&mt("unknown function pointer with signature "+P+": "+ee),rt}var Wi=void 0;function da(P){var ee=Zc(P),Re=ua(ee);return Ol(ee),Re}function Po(P,ee){var Re=[],rt={};function st(tn){if(!rt[tn]&&!fd[tn]){if(dt[tn]){dt[tn].forEach(st);return}Re.push(tn),rt[tn]=!0}}throw ee.forEach(st),new Wi(P+": "+Re.map(da).join([", "]))}function mu(P,ee,Re,rt,st,tn,Xt,en,fn,ge,ot,Vt,Ut){ot=ua(ot),tn=Ls(st,tn),en&&(en=Ls(Xt,en)),ge&&(ge=Ls(fn,ge)),Ut=Ls(Vt,Ut);var Rn=le(ot);xc(Rn,function(){Po("Cannot construct "+ot+" due to unbound types",[rt])}),pn([P,ee,Re],rt?[rt]:[],function(kn){kn=kn[0];var Bn,ni;rt?(Bn=kn.registeredClass,ni=Bn.instancePrototype):ni=xd.prototype;var Uo=Le(Rn,function(){if(Object.getPrototypeOf(this)!==Aa)throw new Oe("Use 'new' to construct "+ot);if(ji.constructor_body===void 0)throw new Oe(ot+" has no accessible constructor");var vl=ji.constructor_body[arguments.length];if(vl===void 0)throw new Oe("Tried to invoke ctor of "+ot+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(ji.constructor_body).toString()+") parameters instead!");return vl.apply(this,arguments)}),Aa=Object.create(ni,{constructor:{value:Uo}});Uo.prototype=Aa;var ji=new Es(ot,Uo,Aa,Ut,Bn,tn,en,ge),To=new go(ot,ji,!0,!1,!1),es=new go(ot+"*",ji,!1,!1,!1),Ja=new go(ot+" const*",ji,!1,!0,!1);return bl[P]={pointerType:es,constPointerType:Ja},Gc(Rn,Uo),[To,es,Ja]})}function Cl(P,ee){for(var Re=[],rt=0;rt<P;rt++)Re.push(ti[ee+rt*4>>2]);return Re}function Rc(P){for(;P.length;){var ee=P.pop(),Re=P.pop();Re(ee)}}function Hs(P,ee){if(!(P instanceof Function))throw new TypeError("new_ called with constructor type "+typeof P+" which is not a function");var Re=Le(P.name||"unknownFunctionName",function(){});Re.prototype=P.prototype;var rt=new Re,st=P.apply(rt,ee);return st instanceof Object?st:rt}function Ku(P,ee,Re,rt,st){var tn=ee.length;tn<2&&mt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Xt=ee[1]!==null&&Re!==null,en=!1,fn=1;fn<ee.length;++fn)if(ee[fn]!==null&&ee[fn].destructorFunction===void 0){en=!0;break}for(var ge=ee[0].name!=="void",ot="",Vt="",fn=0;fn<tn-2;++fn)ot+=(fn!==0?", ":"")+"arg"+fn,Vt+=(fn!==0?", ":"")+"arg"+fn+"Wired";var Ut="return function "+le(P)+"("+ot+`) { if (arguments.length !== `+(tn-2)+`) { throwBindingError('function `+P+" called with ' + arguments.length + ' arguments, expected "+(tn-2)+` args!'); } `;en&&(Ut+=`var destructors = []; `);var Rn=en?"destructors":"null",kn=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Bn=[mt,rt,st,Rc,ee[0],ee[1]];Xt&&(Ut+="var thisWired = classParam.toWireType("+Rn+`, this); `);for(var fn=0;fn<tn-2;++fn)Ut+="var arg"+fn+"Wired = argType"+fn+".toWireType("+Rn+", arg"+fn+"); // "+ee[fn+2].name+` `,kn.push("argType"+fn),Bn.push(ee[fn+2]);if(Xt&&(Vt="thisWired"+(Vt.length>0?", ":"")+Vt),Ut+=(ge?"var rv = ":"")+"invoker(fn"+(Vt.length>0?", ":"")+Vt+`); `,en)Ut+=`runDestructors(destructors); `;else for(var fn=Xt?1:2;fn<ee.length;++fn){var ni=fn===1?"thisWired":"arg"+(fn-2)+"Wired";ee[fn].destructorFunction!==null&&(Ut+=ni+"_dtor("+ni+"); // "+ee[fn].name+` `,kn.push(ni+"_dtor"),Bn.push(ee[fn].destructorFunction))}ge&&(Ut+=`var ret = retType.fromWireType(rv); return ret; `),Ut+=`} `,kn.push(Ut);var Uo=Hs(Function,kn).apply(null,Bn);return Uo}function iu(P,ee,Re,rt,st,tn){Si(ee>0);var Xt=Cl(ee,Re);st=Ls(rt,st),pn([],[P],function(en){en=en[0];var fn="constructor "+en.name;if(en.registeredClass.constructor_body===void 0&&(en.registeredClass.constructor_body=[]),en.registeredClass.constructor_body[ee-1]!==void 0)throw new Oe("Cannot register multiple constructors with identical number of parameters ("+(ee-1)+") for class '"+en.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return en.registeredClass.constructor_body[ee-1]=()=>{Po("Cannot construct "+en.name+" due to unbound types",Xt)},pn([],Xt,function(ge){return ge.splice(1,0,null),en.registeredClass.constructor_body[ee-1]=Ku(fn,ge,null,st,tn),[]}),[]})}function bu(P,ee,Re,rt,st,tn,Xt,en){var fn=Cl(Re,rt);ee=ua(ee),tn=Ls(st,tn),pn([],[P],function(ge){ge=ge[0];var ot=ge.name+"."+ee;ee.startsWith("@@")&&(ee=Symbol[ee.substring(2)]),en&&ge.registeredClass.pureVirtualFunctions.push(ee);function Vt(){Po("Cannot call "+ot+" due to unbound types",fn)}var Ut=ge.registeredClass.instancePrototype,Rn=Ut[ee];return Rn===void 0||Rn.overloadTable===void 0&&Rn.className!==ge.name&&Rn.argCount===Re-2?(Vt.argCount=Re-2,Vt.className=ge.name,Ut[ee]=Vt):(Jd(Ut,ee,ot),Ut[ee].overloadTable[Re-2]=Vt),pn([],fn,function(kn){var Bn=Ku(ot,kn,ge,tn,Xt);return Ut[ee].overloadTable===void 0?(Bn.argCount=Re-2,Ut[ee]=Bn):Ut[ee].overloadTable[Re-2]=Bn,[]}),[]})}var Tc=[],vd=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Oc(P){P>4&&--vd[P].refcount===0&&(vd[P]=void 0,Tc.push(P))}function Lo(){for(var P=0,ee=5;ee<vd.length;++ee)vd[ee]!==void 0&&++P;return P}function Gu(){for(var P=5;P<vd.length;++P)if(vd[P]!==void 0)return vd[P];return null}function Fo(){At.count_emval_handles=Lo,At.get_first_emval=Gu}var xs={toValue:P=>(P||mt("Cannot use deleted val. handle = "+P),vd[P].value),toHandle:P=>{switch(P){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var ee=Tc.length?Tc.pop():vd.length;return vd[ee]={refcount:1,value:P},ee}}}};function Xc(P,ee){ee=ua(ee),on(P,{name:ee,fromWireType:function(rt){var st=xs.toValue(rt);return Oc(rt),st},toWireType:function(rt,st){return xs.toHandle(st)},argPackAdvance:8,readValueFromPointer:Nc,destructorFunction:null})}function bs(P,ee,Re){switch(ee){case 0:return function(rt){var st=Re?So:so;return this.fromWireType(st[rt])};case 1:return function(rt){var st=Re?Ll:Ko;return this.fromWireType(st[rt>>1])};case 2:return function(rt){var st=Re?Co:ti;return this.fromWireType(st[rt>>2])};default:throw new TypeError("Unknown integer type: "+P)}}function hc(P,ee,Re,rt){var st=cr(Re);ee=ua(ee);function tn(){}tn.values={},on(P,{name:ee,constructor:tn,fromWireType:function(en){return this.constructor.values[en]},toWireType:function(en,fn){return fn.value},argPackAdvance:8,readValueFromPointer:bs(ee,st,rt),destructorFunction:null}),xc(ee,tn)}function Td(P,ee){var Re=fd[P];return Re===void 0&&mt(ee+" has unknown type "+da(P)),Re}function au(P,ee,Re){var rt=Td(P,"enum");ee=ua(ee);var st=rt.constructor,tn=Object.create(rt.constructor.prototype,{value:{value:Re},constructor:{value:Le(rt.name+"_"+ee,function(){})}});st.values[Re]=tn,st[ee]=tn}function il(P,ee){switch(ee){case 2:return function(Re){return this.fromWireType(yo[Re>>2])};case 3:return function(Re){return this.fromWireType(ll[Re>>3])};default:throw new TypeError("Unknown float type: "+P)}}function ql(P,ee,Re){var rt=cr(Re);ee=ua(ee),on(P,{name:ee,fromWireType:function(tn){return tn},toWireType:function(tn,Xt){return Xt},argPackAdvance:8,readValueFromPointer:il(ee,rt),destructorFunction:null})}function ys(P,ee,Re,rt,st){ee=ua(ee);var tn=cr(Re),Xt=Vt=>Vt;if(rt===0){var en=32-8*Re;Xt=Vt=>Vt<<en>>>en}var fn=ee.includes("unsigned"),ge=(Vt,Ut)=>{},ot;fn?ot=function(Ut,Rn){return ge(Rn,this.name),Rn>>>0}:ot=function(Ut,Rn){return ge(Rn,this.name),Rn},on(P,{name:ee,fromWireType:Xt,toWireType:ot,argPackAdvance:8,readValueFromPointer:gn(ee,tn,rt!==0),destructorFunction:null})}function Ju(P,ee,Re){var rt=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],st=rt[ee];function tn(Xt){Xt=Xt>>2;var en=ti,fn=en[Xt],ge=en[Xt+1];return new st(jl,ge,fn)}Re=ua(Re),on(P,{name:Re,fromWireType:tn,argPackAdvance:8,readValueFromPointer:tn},{ignoreDuplicateRegistrations:!0})}function Bu(P,ee){ee=ua(ee);var Re=ee==="std::string";on(P,{name:ee,fromWireType:function(st){var tn=ti[st>>2],Xt=st+4,en;if(Re)for(var fn=Xt,ge=0;ge<=tn;++ge){var ot=Xt+ge;if(ge==tn||so[ot]==0){var Vt=ot-fn,Ut=Za(fn,Vt);en===void 0?en=Ut:(en+="\0",en+=Ut),fn=ot+1}}else{for(var Rn=new Array(tn),ge=0;ge<tn;++ge)Rn[ge]=String.fromCharCode(so[Xt+ge]);en=Rn.join("")}return Ol(st),en},toWireType:function(st,tn){tn instanceof ArrayBuffer&&(tn=new Uint8Array(tn));var Xt,en=typeof tn=="string";en||tn instanceof Uint8Array||tn instanceof Uint8ClampedArray||tn instanceof Int8Array||mt("Cannot pass non-string to std::string"),Re&&en?Xt=Eo(tn):Xt=tn.length;var fn=nc(4+Xt+1),ge=fn+4;if(ti[fn>>2]=Xt,Re&&en)bo(tn,ge,Xt+1);else if(en)for(var ot=0;ot<Xt;++ot){var Vt=tn.charCodeAt(ot);Vt>255&&(Ol(ge),mt("String has UTF-16 code units that do not fit in 8 bits")),so[ge+ot]=Vt}else for(var ot=0;ot<Xt;++ot)so[ge+ot]=tn[ot];return st!==null&&st.push(Ol,fn),fn},argPackAdvance:8,readValueFromPointer:Nc,destructorFunction:function(st){Ol(st)}})}var Ga=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Ea(P,ee){for(var Re=P,rt=Re>>1,st=rt+ee/2;!(rt>=st)&&Ko[rt];)++rt;if(Re=rt<<1,Re-P>32&&Ga)return Ga.decode(so.subarray(P,Re));for(var tn="",Xt=0;!(Xt>=ee/2);++Xt){var en=Ll[P+Xt*2>>1];if(en==0)break;tn+=String.fromCharCode(en)}return tn}function Pu(P,ee,Re){if(Re===void 0&&(Re=2147483647),Re<2)return 0;Re-=2;for(var rt=ee,st=Re<P.length*2?Re/2:P.length,tn=0;tn<st;++tn){var Xt=P.charCodeAt(tn);Ll[ee>>1]=Xt,ee+=2}return Ll[ee>>1]=0,ee-rt}function kc(P){return P.length*2}function zu(P,ee){for(var Re=0,rt="";!(Re>=ee/4);){var st=Co[P+Re*4>>2];if(st==0)break;if(++Re,st>=65536){var tn=st-65536;rt+=String.fromCharCode(55296|tn>>10,56320|tn&1023)}else rt+=String.fromCharCode(st)}return rt}function ju(P,ee,Re){if(Re===void 0&&(Re=2147483647),Re<4)return 0;for(var rt=ee,st=rt+Re-4,tn=0;tn<P.length;++tn){var Xt=P.charCodeAt(tn);if(Xt>=55296&&Xt<=57343){var en=P.charCodeAt(++tn);Xt=65536+((Xt&1023)<<10)|en&1023}if(Co[ee>>2]=Xt,ee+=4,ee+4>st)break}return Co[ee>>2]=0,ee-rt}function _u(P){for(var ee=0,Re=0;Re<P.length;++Re){var rt=P.charCodeAt(Re);rt>=55296&&rt<=57343&&++Re,ee+=4}return ee}function tc(P,ee,Re){Re=ua(Re);var rt,st,tn,Xt,en;ee===2?(rt=Ea,st=Pu,Xt=kc,tn=()=>Ko,en=1):ee===4&&(rt=zu,st=ju,Xt=_u,tn=()=>ti,en=2),on(P,{name:Re,fromWireType:function(ge){for(var ot=ti[ge>>2],Vt=tn(),Ut,Rn=ge+4,kn=0;kn<=ot;++kn){var Bn=ge+4+kn*ee;if(kn==ot||Vt[Bn>>en]==0){var ni=Bn-Rn,Uo=rt(Rn,ni);Ut===void 0?Ut=Uo:(Ut+="\0",Ut+=Uo),Rn=Bn+ee}}return Ol(ge),Ut},toWireType:function(ge,ot){typeof ot!="string"&&mt("Cannot pass non-string to C++ string type "+Re);var Vt=Xt(ot),Ut=nc(4+Vt+ee);return ti[Ut>>2]=Vt>>en,st(ot,Ut+4,Vt+ee),ge!==null&&ge.push(Ol,Ut),Ut},argPackAdvance:8,readValueFromPointer:Nc,destructorFunction:function(ge){Ol(ge)}})}function Pe(P,ee){ee=ua(ee),on(P,{isVoid:!0,name:ee,argPackAdvance:0,fromWireType:function(){},toWireType:function(rt,st){}})}function ze(P){P>4&&(vd[P].refcount+=1)}function qr(P,ee){P=Td(P,"_emval_take_value");var Re=P.readValueFromPointer(ee);return xs.toHandle(Re)}function Kc(){En("")}function nd(P,ee,Re){so.copyWithin(P,ee,ee+Re)}function al(P){En("OOM")}function wc(P){so.length,al()}function Zu(P){qo=P,_l()||(At.onExit&&At.onExit(P),Io=!0),Ct(P,new Tl(P))}function hd(P,ee){qo=P,Zu(P)}Hd(),Oe=At.BindingError=Xe(Error,"BindingError"),Wt=At.InternalError=Xe(Error,"InternalError"),qd(),no(),Pa(),Wi=At.UnboundTypeError=Xe(Error,"UnboundTypeError"),Fo();var Al=typeof atob=="function"?atob:function(P){var ee="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Re="",rt,st,tn,Xt,en,fn,ge,ot=0;P=P.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Xt=ee.indexOf(P.charAt(ot++)),en=ee.indexOf(P.charAt(ot++)),fn=ee.indexOf(P.charAt(ot++)),ge=ee.indexOf(P.charAt(ot++)),rt=Xt<<2|en>>4,st=(en&15)<<4|fn>>2,tn=(fn&3)<<6|ge,Re=Re+String.fromCharCode(rt),fn!==64&&(Re=Re+String.fromCharCode(st)),ge!==64&&(Re=Re+String.fromCharCode(tn));while(ot<P.length);return Re};function Sa(P){if(typeof Jn=="boolean"&&Jn){var ee=s.from(P,"base64");return new Uint8Array(ee.buffer,ee.byteOffset,ee.byteLength)}try{for(var Re=Al(P),rt=new Uint8Array(Re.length),st=0;st<Re.length;++st)rt[st]=Re.charCodeAt(st);return rt}catch{throw new Error("Converting base64 string to bytes failed.")}}function Od(P){if(Rr(P))return Sa(P.slice(Un.length))}var Bc={a:ru,l:qn,s:Gn,u:mu,o:iu,e:bu,r:Xc,g:hc,f:au,k:ql,c:ys,b:Ju,j:Bu,h:tc,t:Pe,m:Oc,n:ze,i:qr,d:Kc,q:nd,p:wc};Qo(),At.___wasm_call_ctors=function(){return(At.___wasm_call_ctors=At.asm.w).apply(null,arguments)},At._main=function(){return(At._main=At.asm.x).apply(null,arguments)};var Ol=At._free=function(){return(Ol=At._free=At.asm.z).apply(null,arguments)},nc=At._malloc=function(){return(nc=At._malloc=At.asm.A).apply(null,arguments)},Zc=At.___getTypeName=function(){return(Zc=At.___getTypeName=At.asm.B).apply(null,arguments)};At.__embind_initialize_bindings=function(){return(At.__embind_initialize_bindings=At.asm.C).apply(null,arguments)};var co;wa=function P(){co||us(),co||(wa=P)};function gd(P){var ee=At._main,Re=0,rt=0;try{var st=ee(Re,rt);return hd(st,!0),st}catch(tn){return Zd(tn)}}function us(P){if(hl>0||(Qn(),hl>0))return;function ee(){co||(co=!0,At.calledRun=!0,!Io&&(Kn(),Fr(),bt(At),At.onRuntimeInitialized&&At.onRuntimeInitialized(),ht&&gd(),li()))}At.setStatus?(At.setStatus("Running..."),setTimeout(function(){setTimeout(function(){At.setStatus("")},1),ee()},1)):ee()}if(At.preInit)for(typeof At.preInit=="function"&&(At.preInit=[At.preInit]);At.preInit.length>0;)At.preInit.pop()();var ht=!0;return At.noInitialRun&&(ht=!1),us(),At.ready}})();function Pn(){return hr.apply(this,arguments)}function hr(){return hr=(0,A.default)(u.default.mark(function Lt(){return u.default.wrap(function(At){for(;;)switch(At.prev=At.next){case 0:return At.abrupt("return",ui());case 1:case"end":return At.stop()}},Lt)})),hr.apply(this,arguments)}const xr=new WeakMap,Hi=new WeakMap,Di=new WeakMap,Da=Symbol("anyProducer"),oi=a.resolve(),Ra=Symbol("listenerAdded"),Va=Symbol("listenerRemoved");let fi=!1,_a=!1;function dn(Lt){if(typeof Lt!="string"&&typeof Lt!="symbol"&&typeof Lt!="number")throw new TypeError("`eventName` must be a string, symbol, or number")}function St(Lt){if(typeof Lt!="function")throw new TypeError("listener must be a function")}function mn(Lt,$t){const At=Hi.get(Lt);if(At.has($t))return At.get($t)}function _n(Lt,$t){const At=typeof $t=="string"||typeof $t=="symbol"||typeof $t=="number"?$t:Da,bt=Di.get(Lt);if(bt.has(At))return bt.get(At)}function vr(Lt,$t,At){const bt=Di.get(Lt);if(bt.has($t))for(var zt=p(bt.get($t)),Ot;!(Ot=zt()).done;)Ot.value.enqueue(At);if(bt.has(Da)){const cn=a.all([$t,At]);for(var Ct=p(bt.get(Da)),Kt;!(Kt=Ct()).done;)Kt.value.enqueue(cn)}}function ha(Lt,$t){$t=Array.isArray($t)?$t:[$t];let At=!1,bt=()=>{},zt=[];const Ot={enqueue(cn){zt.push(cn),bt()},finish(){At=!0,bt()}};for(var Ct=p($t),Kt;!(Kt=Ct()).done;){const cn=Kt.value;let Jn=_n(Lt,cn);Jn||(Jn=new Set,Di.get(Lt).set(cn,Jn)),Jn.add(Ot)}return{next(){var cn=this;return(0,A.default)(u.default.mark(function Jn(){return u.default.wrap(function(Mn){for(;;)switch(Mn.prev=Mn.next){case 0:if(zt){Mn.next=2;break}return Mn.abrupt("return",{done:!0});case 2:if(zt.length!==0){Mn.next=9;break}if(!At){Mn.next=6;break}return zt=void 0,Mn.abrupt("return",cn.next());case 6:return Mn.next=8,new a(mr=>{bt=mr});case 8:return Mn.abrupt("return",cn.next());case 9:return Mn.next=11,zt.shift();case 11:return Mn.t0=Mn.sent,Mn.abrupt("return",{done:!1,value:Mn.t0});case 13:case"end":return Mn.stop()}},Jn)}))()},return(cn){var Jn=arguments;return(0,A.default)(u.default.mark(function qt(){var Mn,mr,Ur,sr,Nn;return u.default.wrap(function($r){for(;;)switch($r.prev=$r.next){case 0:for(zt=void 0,Mn=p($t);!(mr=Mn()).done;)Ur=mr.value,sr=_n(Lt,Ur),sr&&(sr.delete(Ot),sr.size===0&&(Nn=Di.get(Lt),Nn.delete(Ur)));if(bt(),!(Jn.length>0)){$r.next=10;break}return $r.next=6,cn;case 6:$r.t1=$r.sent,$r.t0={done:!0,value:$r.t1},$r.next=11;break;case 10:$r.t0={done:!0};case 11:return $r.abrupt("return",$r.t0);case 12:case"end":return $r.stop()}},qt)}))()},[Symbol.asyncIterator](){return this}}}function Mi(Lt){if(Lt===void 0)return Ml;if(!Array.isArray(Lt))throw new TypeError("`methodNames` must be an array of strings");for(var $t=p(Lt),At;!(At=$t()).done;){const bt=At.value;if(!Ml.includes(bt))throw typeof bt!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${bt} is not Emittery method`)}return Lt}const Fi=Lt=>Lt===Ra||Lt===Va;function In(Lt,$t,At){if(Fi($t))try{fi=!0,Lt.emit($t,At)}finally{fi=!1}}let Fa=function(){Lt.mixin=function(bt,zt){return zt=Mi(zt),Ot=>{if(typeof Ot!="function")throw new TypeError("`target` must be function");for(var Ct=p(zt),Kt;!(Kt=Ct()).done;){const mr=Kt.value;if(Ot.prototype[mr]!==void 0)throw new Error(`The property \`${mr}\` already exists on \`target\``)}function cn(){return Object.defineProperty(this,bt,{enumerable:!1,value:new Lt}),this[bt]}Object.defineProperty(Ot.prototype,bt,{enumerable:!1,get:cn});const Jn=mr=>function(){return this[bt][mr](...arguments)};for(var qt=p(zt),Mn;!(Mn=qt()).done;){const mr=Mn.value;Object.defineProperty(Ot.prototype,mr,{enumerable:!1,value:Jn(mr)})}return Ot}};function Lt(At){var bt;At===void 0&&(At={}),xr.set(this,new Set),Hi.set(this,new Map),Di.set(this,new Map),Di.get(this).set(Da,new Set),this.debug=(bt=At.debug)!=null?bt:{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(zt,Ot,Ct,Kt)=>{try{Kt=JSON.stringify(Kt)}catch{Kt=`Object with the following keys failed to stringify: ${Object.keys(Kt).join(",")}`}(typeof Ct=="symbol"||typeof Ct=="number")&&(Ct=Ct.toString());const cn=new Date,Jn=`${cn.getHours()}:${cn.getMinutes()}:${cn.getSeconds()}.${cn.getMilliseconds()}`;console.log(`[${Jn}][emittery:${zt}][${Ot}] Event Name: ${Ct} data: ${Kt}`)})}var $t=Lt.prototype;return $t.logIfDebugEnabled=function(bt,zt,Ot){(Lt.isDebugEnabled||this.debug.enabled)&&this.debug.logger(bt,this.debug.name,zt,Ot)},$t.on=function(bt,zt){St(zt),bt=Array.isArray(bt)?bt:[bt];for(var Ot=p(bt),Ct;!(Ct=Ot()).done;){const Kt=Ct.value;dn(Kt);let cn=mn(this,Kt);cn||(cn=new Set,Hi.get(this).set(Kt,cn)),cn.add(zt),this.logIfDebugEnabled("subscribe",Kt,void 0),Fi(Kt)||In(this,Ra,{eventName:Kt,listener:zt})}return this.off.bind(this,bt,zt)},$t.off=function(bt,zt){St(zt),bt=Array.isArray(bt)?bt:[bt];for(var Ot=p(bt),Ct;!(Ct=Ot()).done;){const Kt=Ct.value;dn(Kt);const cn=mn(this,Kt);cn&&(cn.delete(zt),cn.size===0&&Hi.get(this).delete(Kt)),this.logIfDebugEnabled("unsubscribe",Kt,void 0),Fi(Kt)||In(this,Va,{eventName:Kt,listener:zt})}},$t.once=function(bt){let zt;const Ot=new a(Ct=>{zt=this.on(bt,Kt=>{zt(),Ct(Kt)})});return Ot.off=zt,Ot},$t.events=function(bt){bt=Array.isArray(bt)?bt:[bt];for(var zt=p(bt),Ot;!(Ot=zt()).done;){const Ct=Ot.value;dn(Ct)}return ha(this,bt)},$t.emit=function(){var At=(0,A.default)(u.default.mark(function zt(Ot,Ct){var Kt,cn,Jn,qt,Mn;return u.default.wrap(function(Ur){for(;;)switch(Ur.prev=Ur.next){case 0:if(dn(Ot),!(Fi(Ot)&&!fi)){Ur.next=3;break}throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");case 3:return this.logIfDebugEnabled("emit",Ot,Ct),vr(this,Ot,Ct),cn=(Kt=mn(this,Ot))!=null?Kt:new Set,Jn=xr.get(this),qt=[...cn],Mn=Fi(Ot)?[]:[...Jn],Ur.next=11,oi;case 11:return Ur.next=13,a.all([...qt.map(function(){var sr=(0,A.default)(u.default.mark(function Nn(Gr){return u.default.wrap(function(kr){for(;;)switch(kr.prev=kr.next){case 0:if(!cn.has(Gr)){kr.next=2;break}return kr.abrupt("return",Gr(Ct));case 2:case"end":return kr.stop()}},Nn)}));return function(Nn){return sr.apply(this,arguments)}}()),...Mn.map(function(){var sr=(0,A.default)(u.default.mark(function Nn(Gr){return u.default.wrap(function(kr){for(;;)switch(kr.prev=kr.next){case 0:if(!Jn.has(Gr)){kr.next=2;break}return kr.abrupt("return",Gr(Ot,Ct));case 2:case"end":return kr.stop()}},Nn)}));return function(Nn){return sr.apply(this,arguments)}}())]);case 13:case"end":return Ur.stop()}},zt,this)}));function bt(zt,Ot){return At.apply(this,arguments)}return bt}(),$t.emitSerial=function(){var At=(0,A.default)(u.default.mark(function zt(Ot,Ct){var Kt,cn,Jn,qt,Mn,mr,Ur,sr,Nn,Gr;return u.default.wrap(function(kr){for(;;)switch(kr.prev=kr.next){case 0:if(dn(Ot),!(Fi(Ot)&&!fi)){kr.next=3;break}throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`");case 3:return this.logIfDebugEnabled("emitSerial",Ot,Ct),cn=(Kt=mn(this,Ot))!=null?Kt:new Set,Jn=xr.get(this),qt=[...cn],Mn=[...Jn],kr.next=10,oi;case 10:mr=0,Ur=qt;case 11:if(!(mr<Ur.length)){kr.next=19;break}if(sr=Ur[mr],!cn.has(sr)){kr.next=16;break}return kr.next=16,sr(Ct);case 16:mr++,kr.next=11;break;case 19:Nn=0,Gr=Mn;case 20:if(!(Nn<Gr.length)){kr.next=28;break}if(sr=Gr[Nn],!Jn.has(sr)){kr.next=25;break}return kr.next=25,sr(Ot,Ct);case 25:Nn++,kr.next=20;break;case 28:case"end":return kr.stop()}},zt,this)}));function bt(zt,Ot){return At.apply(this,arguments)}return bt}(),$t.onAny=function(bt){return St(bt),this.logIfDebugEnabled("subscribeAny",void 0,void 0),xr.get(this).add(bt),In(this,Ra,{listener:bt}),this.offAny.bind(this,bt)},$t.anyEvent=function(){return ha(this)},$t.offAny=function(bt){St(bt),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),In(this,Va,{listener:bt}),xr.get(this).delete(bt)},$t.clearListeners=function(bt){bt=Array.isArray(bt)?bt:[bt];for(var zt=p(bt),Ot;!(Ot=zt()).done;){const sr=Ot.value;if(this.logIfDebugEnabled("clear",sr,void 0),typeof sr=="string"||typeof sr=="symbol"||typeof sr=="number"){const Nn=mn(this,sr);Nn&&Nn.clear();const Gr=_n(this,sr);if(Gr){for(var Ct=p(Gr),Kt;!(Kt=Ct()).done;)Kt.value.finish();Gr.clear()}}else{xr.get(this).clear();for(var cn=p(Hi.get(this).entries()),Jn;!(Jn=cn()).done;){const Nn=Jn.value,Gr=Nn[0];Nn[1].clear(),Hi.get(this).delete(Gr)}for(var qt=p(Di.get(this).entries()),Mn;!(Mn=qt()).done;){const Nn=Mn.value,Gr=Nn[0],$r=Nn[1];for(var mr=p($r),Ur;!(Ur=mr()).done;)Ur.value.finish();$r.clear(),Di.get(this).delete(Gr)}}}},$t.listenerCount=function(bt){bt=Array.isArray(bt)?bt:[bt];let zt=0;for(var Ot=p(bt),Ct;!(Ct=Ot()).done;){const $r=Ct.value;if(typeof $r=="string"){var Kt,cn,Jn,qt,Mn,mr;zt+=xr.get(this).size+((Kt=(cn=mn(this,$r))==null?void 0:cn.size)!=null?Kt:0)+((Jn=(qt=_n(this,$r))==null?void 0:qt.size)!=null?Jn:0)+((Mn=(mr=_n(this))==null?void 0:mr.size)!=null?Mn:0);continue}typeof $r<"u"&&dn($r),zt+=xr.get(this).size;for(var Ur=p(Hi.get(this).values()),sr;!(sr=Ur()).done;){const kr=sr.value;zt+=kr.size}for(var Nn=p(Di.get(this).values()),Gr;!(Gr=Nn()).done;){const kr=Gr.value;zt+=kr.size}}return zt},$t.bindMethods=function(bt,zt){if(typeof bt!="object"||bt===null)throw new TypeError("`target` must be an object");zt=Mi(zt);for(var Ot=p(zt),Ct;!(Ct=Ot()).done;){const Kt=Ct.value;if(bt[Kt]!==void 0)throw new Error(`The property \`${Kt}\` already exists on \`target\``);Object.defineProperty(bt,Kt,{enumerable:!1,value:this[Kt].bind(this)})}},(0,g.default)(Lt,null,[{key:"isDebugEnabled",get:function(){var bt,zt;if(typeof((bt=b.process)==null?void 0:bt.env)!="object")return _a;const Ot=(zt=b.process)!=null?zt:{env:{}},Ct=Ot.env;return Ct.DEBUG==="emittery"||Ct.DEBUG==="*"||_a},set:function(bt){_a=bt}}]),Lt}();const Ml=Object.getOwnPropertyNames(Fa.prototype).filter(Lt=>Lt!=="constructor");Object.defineProperty(Fa,"listenerAdded",{value:Ra,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(Fa,"listenerRemoved",{value:Va,writable:!1,enumerable:!0,configurable:!1});const hi=function(Lt){(0,f.default)($t,Lt);function $t(){var bt;return bt=Lt.apply(this,arguments)||this,bt.isDecryptionEnabled=!0,bt.payloadTypes={},bt.isOnSuccessEnabled=!1,bt}var At=$t.prototype;return At.init=function(){var bt=(0,A.default)(u.default.mark(function Ot(){return u.default.wrap(function(Kt){for(;;)switch(Kt.prev=Kt.next){case 0:return Kt.prev=0,Kt.next=3,Pn();case 3:this.instance=Kt.sent,this.encryptor=new this.instance.SFrameEngine(this.instance.EngineType.ENCRYPTOR,this.instance.CipherSuite.AES_CTR_128_HMAC_SHA256_80),this.decryptor=new this.instance.SFrameEngine(this.instance.EngineType.DECRYPTOR,this.instance.CipherSuite.AES_CTR_128_HMAC_SHA256_80),self.addEventListener("rtctransform",cn=>{console.log("rtctransform",cn);const Jn=cn.transformer,qt=Jn.options,Mn=qt.type,mr=qt.id,Ur=Jn.readable,sr=Jn.writable;switch(Mn){case"encrypt":this.encrypt(mr,Ur,sr);break;case"decrypt":this.decrypt(mr,Ur,sr);break}}),Kt.next=12;break;case 9:Kt.prev=9,Kt.t0=Kt.catch(0),console.error("INIT ERRROR",Kt.t0);case 12:case"end":return Kt.stop()}},Ot,this,[[0,9]])}));function zt(){return bt.apply(this,arguments)}return zt}(),At.setEnableOnSuccess=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct){return u.default.wrap(function(cn){for(;;)switch(cn.prev=cn.next){case 0:this.isOnSuccessEnabled=Ct;case 1:case"end":return cn.stop()}},Ot,this)}));function zt(Ot){return bt.apply(this,arguments)}return zt}(),At.enableDecryption=function(){this.isDecryptionEnabled=!0},At.disableDecryption=function(){this.isDecryptionEnabled=!1},At.setKey=function(zt){if(!this.encryptor||!this.decryptor)throw console.error("Engine must be initialized"),"Engine must be initialized";this.updateEngineKey(this.encryptor,zt),this.updateEngineKey(this.decryptor,zt)},At.addPayloadTypes=function(zt){this.payloadTypes=Object.assign({},this.payloadTypes,zt)},At.removeKey=function(zt){if(!this.encryptor||!this.decryptor)throw console.error("Engine must be initialized"),"Engine must be initialized";this.encryptor.removeBaseKey(BigInt(zt)),this.decryptor.removeBaseKey(BigInt(zt))},At.encrypt=function(zt,Ot,Ct){this.transformStream(Ot,Ct,Kt=>{if(!this.encryptor)throw console.error("Engine must be initialized"),"Engine must be initialized";this.processFrame(this.encryptor,zt,Kt)})},At.decrypt=function(zt,Ot,Ct){this.transformStream(Ot,Ct,Kt=>{if(!this.decryptor)throw console.error("Engine must be initialized"),"Engine must be initialized";this.isDecryptionEnabled&&this.processFrame(this.decryptor,zt,Kt)})},At.setCodecs=function(zt,Ot){this.audioCodec=zt,this.videoCodec=Ot},At.transformStream=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct,Kt,cn){var Jn,qt,Mn,mr;return u.default.wrap(function(sr){for(;;)switch(sr.prev=sr.next){case 0:Jn=Ct.getReader(),qt=Kt.getWriter();case 2:return sr.prev=3,sr.next=6,Jn.read();case 6:return Mn=sr.sent,mr=Mn.value,cn(mr),sr.next=11,qt.ready;case 11:return sr.next=13,qt.write(mr);case 13:sr.next=18;break;case 15:sr.prev=15,sr.t0=sr.catch(3),console.log("ERROR",sr.t0);case 18:sr.next=2;break;case 20:case"end":return sr.stop()}},Ot,null,[[3,15]])}));function zt(Ot,Ct,Kt){return bt.apply(this,arguments)}return zt}(),At.updateEngineKey=function(zt,Ot){const Ct=zt.getKeyBuffer(Ot.key.length);let Kt=Ot.key;typeof Kt=="string"&&(Kt=Uint8Array.from(Kt.split("").map(cn=>cn.charCodeAt(0)))),Ct.set(Kt),zt.addOrUpdateBaseKey(BigInt(Ot.kid))},At.processFrame=function(zt,Ot,Ct){var Kt,cn,Jn;if(Ct.data.byteLength===0){this.emit("emptyFrame",{message:`EMPTY ${Ct instanceof RTCEncodedAudioFrame?"AUDIO":"VIDEO"} FRAME`});return}if(!this.instance)throw console.error("Engine must be initialized"),"Not initialized";let qt;if(this.audioCodec!==void 0&&Ct instanceof RTCEncodedAudioFrame)qt=this.audioCodec;else if(this.videoCodec!==void 0&&Ct instanceof RTCEncodedVideoFrame)qt=this.videoCodec;else{const sr=Ct.getMetadata();qt=this.payloadTypes[sr.payloadType]}switch(qt){case F.VP8:zt.setSkipOffset((Kt=this.instance)==null?void 0:Kt.SkipOffset.VP8);break;case F.H264:zt.setSkipOffset((cn=this.instance)==null?void 0:cn.SkipOffset.H264);break;case F.OPUS:zt.setSkipOffset((Jn=this.instance)==null?void 0:Jn.SkipOffset.OPUS);break;default:this.emit("warning",{message:"Unknown codec"});break}const Mn=new Uint8Array(Ct.data),mr=this.runEngineAlgorithm(zt,Ot,Mn),Ur=zt.getStatus();if(Ur===this.instance.Status.OK&&mr.byteLength>0)Ct.data=new ArrayBuffer(mr.byteLength),new Uint8Array(Ct.data).set(mr),this.isOnSuccessEnabled&&this.emit("success",{});else switch(Ur){case this.instance.Status.FAILED_TO_AUTHENTICATE:this.emit("error",{message:"ERROR: FAILED_TO_AUTHENTICATE"});break;case this.instance.Status.FAILED_TO_DECRYPT:this.emit("error",{message:"ERROR: FAILED_TO_DECRYPT"});break;case this.instance.Status.FAILED_TO_ENCRYPT:this.emit("error",{message:"ERROR: FAILED_TO_ENCRYPT"});break;case this.instance.Status.FAIL_PARSE_CODEC_HEADER:this.emit("error",{message:"ERROR: FAIL_PARSE_CODEC_HEADER"});break;case this.instance.Status.NULL_INPUT_FRAME:this.emit("error",{message:"ERROR: NULL_INPUT_FRAME"});break;case this.instance.Status.NULL_OUTPUT_FRAME:this.emit("error",{message:"ERROR: NULL_OUTPUT_FRAME"});break;case this.instance.Status.UNKNOWN:this.emit("error",{message:"ERROR: UNKNOWN"});break;case this.instance.Status.OK:this.emit("error",{message:"ERROR: EMPTY OUTPUT"});break}},At.runEngineAlgorithm=function(zt,Ot,Ct){try{zt.getInputFrame(Ct.length).set(Ct);const cn=zt.runAlgorithm(BigInt(Ot));return zt.getOutputFrame().slice(0,cn)}catch(Kt){return console.log("FAIL",Ct.length,Kt),new Uint8Array([])}},$t}(Fa);Dn("encryption-engine",hi);let ml=hi;const $o="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBBLGc9KEE9c2VsZi5sb2NhdGlvbi5ocmVmLGZ1bmN0aW9uKGcpe3ZhciBJLEM7KGc9dm9pZCAwIT09KGc9Z3x8e30pP2c6e30pLnJlYWR5PW5ldyBQcm9taXNlKChmdW5jdGlvbihBLGcpe0k9QSxDPWd9KSk7dmFyIEIsRSxRLG8saSxEPU9iamVjdC5hc3NpZ24oe30sZykscXVpdF89KEEsZyk9Pnt0aHJvdyBnfSxlPSJvYmplY3QiPT10eXBlb2Ygd2luZG93LHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGltcG9ydFNjcmlwdHMscj0ib2JqZWN0Ij09dHlwZW9mIHByb2Nlc3MmJiJvYmplY3QiPT10eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucyYmInN0cmluZyI9PXR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGUsYT0iIjtyPyhhPXQ/cmVxdWlyZSgicGF0aCIpLmRpcm5hbWUoYSkrIi8iOl9fZGlybmFtZSsiLyIsImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJihvPXJlcXVpcmUoImZzIiksaT1yZXF1aXJlKCJwYXRoIikpLEI9KEEsZyk9Pnt2YXIgST10cnlQYXJzZUFzRGF0YVVSSShBKTtyZXR1cm4gST9nP0k6SS50b1N0cmluZygpOihBPWkubm9ybWFsaXplKEEpLG8ucmVhZEZpbGVTeW5jKEEsZz92b2lkIDA6InV0ZjgiKSl9LFE9QT0+e3ZhciBnPUIoQSwhMCk7cmV0dXJuIGcuYnVmZmVyfHwoZz1uZXcgVWludDhBcnJheShnKSksZ30sRT0oQSxnLEkpPT57dmFyIEM9dHJ5UGFyc2VBc0RhdGFVUkkoQSk7QyYmZyhDKSxBPWkubm9ybWFsaXplKEEpLG8ucmVhZEZpbGUoQSwoZnVuY3Rpb24oQSxDKXtBP0koQSk6ZyhDLmJ1ZmZlcil9KSl9LHByb2Nlc3MuYXJndi5sZW5ndGg+MSYmcHJvY2Vzcy5hcmd2WzFdLnJlcGxhY2UoL1xcL2csIi8iKSxwcm9jZXNzLmFyZ3Yuc2xpY2UoMikscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLChmdW5jdGlvbihBKXtpZighKEEgaW5zdGFuY2VvZiBFeGl0U3RhdHVzKSl0aHJvdyBBfSkpLHByb2Nlc3Mub24oInVuaGFuZGxlZFJlamVjdGlvbiIsKGZ1bmN0aW9uKEEpe3Rocm93IEF9KSkscXVpdF89KEEsZyk9PntpZihrZWVwUnVudGltZUFsaXZlKCkpdGhyb3cgcHJvY2Vzcy5leGl0Q29kZT1BLGc7IWZ1bmN0aW9uIGxvZ0V4Y2VwdGlvbk9uRXhpdChBKXtBIGluc3RhbmNlb2YgRXhpdFN0YXR1c3x8bigiZXhpdGluZyBkdWUgdG8gZXhjZXB0aW9uOiAiK0EpfShnKSxwcm9jZXNzLmV4aXQoQSl9LGcuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiJbRW1zY3JpcHRlbiBNb2R1bGUgb2JqZWN0XSJ9KTooZXx8dCkmJih0P2E9c2VsZi5sb2NhdGlvbi5ocmVmOiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQmJihhPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjKSxBJiYoYT1BKSxhPTAhPT1hLmluZGV4T2YoImJsb2I6Iik/YS5zdWJzdHIoMCxhLnJlcGxhY2UoL1s/I10uKi8sIiIpLmxhc3RJbmRleE9mKCIvIikrMSk6IiIsQj1BPT57dHJ5e3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gZy5vcGVuKCJHRVQiLEEsITEpLGcuc2VuZChudWxsKSxnLnJlc3BvbnNlVGV4dH1jYXRjaChDKXt2YXIgST10cnlQYXJzZUFzRGF0YVVSSShBKTtpZihJKXJldHVybiBmdW5jdGlvbiBpbnRBcnJheVRvU3RyaW5nKEEpe2Zvcih2YXIgZz1bXSxJPTA7STxBLmxlbmd0aDtJKyspe3ZhciBDPUFbSV07Qz4yNTUmJihDJj0yNTUpLGcucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKEMpKX1yZXR1cm4gZy5qb2luKCIiKX0oSSk7dGhyb3cgQ319LHQmJihRPUE9Pnt0cnl7dmFyIGc9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBnLm9wZW4oIkdFVCIsQSwhMSksZy5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixnLnNlbmQobnVsbCksbmV3IFVpbnQ4QXJyYXkoZy5yZXNwb25zZSl9Y2F0Y2goQyl7dmFyIEk9dHJ5UGFyc2VBc0RhdGFVUkkoQSk7aWYoSSlyZXR1cm4gSTt0aHJvdyBDfX0pLEU9KEEsZyxJKT0+e3ZhciBDPW5ldyBYTUxIdHRwUmVxdWVzdDtDLm9wZW4oIkdFVCIsQSwhMCksQy5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixDLm9ubG9hZD0oKT0+e2lmKDIwMD09Qy5zdGF0dXN8fDA9PUMuc3RhdHVzJiZDLnJlc3BvbnNlKWcoQy5yZXNwb25zZSk7ZWxzZXt2YXIgQj10cnlQYXJzZUFzRGF0YVVSSShBKTtCP2coQi5idWZmZXIpOkkoKX19LEMub25lcnJvcj1JLEMuc2VuZChudWxsKX0pLGcucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7dmFyIE0sbj1nLnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtPYmplY3QuYXNzaWduKGcsRCksRD1udWxsLGcuYXJndW1lbnRzJiZnLmFyZ3VtZW50cyxnLnRoaXNQcm9ncmFtJiZnLnRoaXNQcm9ncmFtLGcucXVpdCYmKHF1aXRfPWcucXVpdCksZy53YXNtQmluYXJ5JiYoTT1nLndhc21CaW5hcnkpO3ZhciB3PWcubm9FeGl0UnVudGltZXx8ITA7Im9iamVjdCIhPXR5cGVvZiBXZWJBc3NlbWJseSYmYWJvcnQoIm5vIG5hdGl2ZSB3YXNtIHN1cHBvcnQgZGV0ZWN0ZWQiKTt2YXIgcyxLLHksaCxZLE4sYyxHLFMsUixGLEosayxsPSExLGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2Rlcj9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp2b2lkIDA7ZnVuY3Rpb24gVVRGOFRvU3RyaW5nKEEsZyl7cmV0dXJuIEE/ZnVuY3Rpb24gVVRGOEFycmF5VG9TdHJpbmcoQSxnLEkpe2Zvcih2YXIgQz1nK0ksQj1nO0FbQl0mJiEoQj49Qyk7KSsrQjtpZihCLWc+MTYmJkEuYnVmZmVyJiZkKXJldHVybiBkLmRlY29kZShBLnN1YmFycmF5KGcsQikpO2Zvcih2YXIgRT0iIjtnPEI7KXt2YXIgUT1BW2crK107aWYoMTI4JlEpe3ZhciBvPTYzJkFbZysrXTtpZigxOTIhPSgyMjQmUSkpe3ZhciBpPTYzJkFbZysrXTtpZigoUT0yMjQ9PSgyNDAmUSk/KDE1JlEpPDwxMnxvPDw2fGk6KDcmUSk8PDE4fG88PDEyfGk8PDZ8NjMmQVtnKytdKTw2NTUzNilFKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFEpO2Vsc2V7dmFyIEQ9US02NTUzNjtFKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fEQ+PjEwLDU2MzIwfDEwMjMmRCl9fWVsc2UgRSs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMzEmUSk8PDZ8byl9ZWxzZSBFKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFEpfXJldHVybiBFfShoLEEsZyk6IiJ9Zy5JTklUSUFMX01FTU9SWTt2YXIgZj1bXSx1PVtdLFU9W10saj1bXTtmdW5jdGlvbiBrZWVwUnVudGltZUFsaXZlKCl7cmV0dXJuIHd9dmFyIEg9MCxtPW51bGw7ZnVuY3Rpb24gYWJvcnQoQSl7Zy5vbkFib3J0JiZnLm9uQWJvcnQoQSksbihBPSJBYm9ydGVkKCIrQSsiKSIpLGw9ITAscz0xLEErPSIuIEJ1aWxkIHdpdGggLXNBU1NFUlRJT05TIGZvciBtb3JlIGluZm8uIjt2YXIgST1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKEEpO3Rocm93IEMoSSksSX12YXIgTCxwPSJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIjtmdW5jdGlvbiBpc0RhdGFVUkkoQSl7cmV0dXJuIEEuc3RhcnRzV2l0aChwKX1mdW5jdGlvbiBpc0ZpbGVVUkkoQSl7cmV0dXJuIEEuc3RhcnRzV2l0aCgiZmlsZTovLyIpfWZ1bmN0aW9uIGdldEJpbmFyeShBKXt0cnl7aWYoQT09TCYmTSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoTSk7dmFyIGc9dHJ5UGFyc2VBc0RhdGFVUkkoQSk7aWYoZylyZXR1cm4gZztpZihRKXJldHVybiBRKEEpO3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1jYXRjaChJKXthYm9ydChJKX19ZnVuY3Rpb24gRXhpdFN0YXR1cyhBKXt0aGlzLm5hbWU9IkV4aXRTdGF0dXMiLHRoaXMubWVzc2FnZT0iUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgiK0ErIikiLHRoaXMuc3RhdHVzPUF9ZnVuY3Rpb24gY2FsbFJ1bnRpbWVDYWxsYmFja3MoQSl7Zm9yKDtBLmxlbmd0aD4wOylBLnNoaWZ0KCkoZyl9ZnVuY3Rpb24gZW1iaW5kUmVwcihBKXtpZihudWxsPT09QSlyZXR1cm4ibnVsbCI7dmFyIGc9dHlwZW9mIEE7cmV0dXJuIm9iamVjdCI9PT1nfHwiYXJyYXkiPT09Z3x8ImZ1bmN0aW9uIj09PWc/QS50b1N0cmluZygpOiIiK0F9aXNEYXRhVVJJKEw9ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCxBR0Z6YlFFQUFBQUJsd0lpWUFGL0FYOWdBWDhBWUFKL2Z3QmdBMzkvZndCZ0FuOS9BWDlnQTM5L2Z3Ri9ZQVIvZjM5L0FYOWdCSDkvZjM4QVlBVi9mMzkvZndCZ0FBQmdCbjkvZjM5L2Z3QmdBbjkrQVg5Z0NIOS9mMzkvZjM5L0FHQU1mMzkvZjM5L2YzOS9mMzkvQUdBSGYzOS9mMzkvZndGL1lBQUJmMkFKZjM5K2YzOS9mMzkvQUdBQ2YzNEFZQU4vZjM0QmYyQUZmMzkvZm40QVlBMS9mMzkvZjM5L2YzOS9mMzkvQUdBQmZ3RitZQUovZndGK1lBUi9mMzUrQUdBRmYzOS9mMzhCZjJBRGZuOS9BWDlnQzM5L2YzOS9mMzkvZjM5L0FYOWdBWHdCZkdBQmZnRitZQVovZjM5L2YzOEJmMkFDZjM0QmZtQUZmMzUrZjM4QmYyQUtmMzkvZjM5L2YzOS9md0YvWUExL2YzOS9mMzkvZjM5L2YzOS9BWDhDZnhVQllRRmhBQWNCWVFGaUFBTUJZUUZqQUFnQllRRmtBQWtCWVFGbEFBd0JZUUZtQUFNQllRRm5BQWNCWVFGb0FBTUJZUUZwQUFRQllRRnFBQUlCWVFGckFBTUJZUUZzQUJNQllRRnRBQUVCWVFGdUFBRUJZUUZ2QUFvQllRRndBQUFCWVFGeEFBTUJZUUZ5QUFJQllRRnpBQWdCWVFGMEFBSUJZUUYxQUJRRDd3THRBZ1FBQUFBQUFRVUhBQU1BQlFNQkJBQUVBQUVCQkFFRUFBSUJBQUFCQUFFQUJRSUJBUWtGQUFZVkFBQUNCQUFEQWdBREFBQUFCQUVDQWdJQUF3QUFBd01BQUFBRkFRSURBd0VBQWdBREFRSUVBUWdDQUFBQ0JRQUZFUVVPQVFFQkF3RUJCQUlDQXdNQUJRUUNBQUFBQlFVQUJRQURBZ0VLQndNQ0ZnSVhCZ1FBQlFVUEdBSURCUU1EQXdNWkFBRUFBQUVFQUFJREFBQUNBZ0FDQVFJQ0Fna0FCd0FDQUJvRUF3RUFBZ01EQWdRSEJRRUJBQVVBQWhzSkFRRUNBZ1lCQXdJY0FRVUJEZzRQQkFRZEFRRVBBQW9CQVF3TUFBRUJBd0VCQXdFUkRBZ0FBQUVCQXdRREFRUUVBQUFFQUFVQUhnRUNCd1FDQUFJREFnSUJBZ0VDQkFRRUJBUUFId0VCQWdFQ0FRQURBZ0lBQVFBREFRRUJBZ0VMQUEwRURRRUZBeElFQVFBU0FRb0tDZ2dJQlFnRkJ3Y0hCUWtBQVFrRkJBSURBUVlHQXdjQ0NRa0lDZ2dEQXdFZ0lRWUNBUUVCQWdNQkVBRVFBd0VDQ3dFQkFRQUFBQUFBQ3dBQUFBQUFBUUVDQUFBSkJBVUJjQUY5ZlFVR0FRR0FBb0FDQmdrQmZ3RkJvUFRBQWdzSEpRZ0JkZ0lBQVhjQXRBRUJlQUM3QVFGNUFRQUJlZ0FpQVVFQU93RkNBTWdDQVVNQXh3SUo4Z0VCQUVFQkMzeUJBN2dDdHdLd0FxMENxd0wrQXZZQzdRTHNBdW9DNVFMa0FzQUN1UUsyQXJVQ3RBS3pBbGF5QXY4Q3NRS3ZBcTRDaHdHc0F2c0NnQVA2QXZrQytBTDNBdlVDOUFMekF2SUM4UUszQWZVQnNBRTUvUUw4QXFZQ3NBR2dBdkFDN3dLN0FlNENsZ0tUQXFjQnBBR3FBYkFCNndMcEF1Z0M1d0wxQWVZQzR3TGlBdUVDNEFMMEFkOEN1Z0xlQXQwQzNBSjYxd0o2MndMWkF0UUMwd0xXQXRFQzBBTFZBczhDemdMTkF0SUNldVFCNUFGNjJnTFlBc3dDeXdMS0Fza0N6UUhJQWNjQnh3SElBVXZHQWNZQnhRRkx4UUZMeGdLN0FyNEN4UUpMdkFLL0FzUUNTNzBDd1FMREFrdkNBZ3F3d3dmdEFpOEJBWDhqQUVFUWF5SUNJQUEyQWd3Z0FpQUJOZ0lJSUFJb0Fnd2lBQ0FDS0FJSUlnRjJJQUJCQUNBQmEzUnlDeWtCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFb0Fnd1FGeWdDQUNFQUlBRkJFR29rQUNBQUN6TUJBWDhqQUVFUWF5SUJKQUFnQVNBQU5nSU1Jd0JCRUdzaUFDQUJLQUlNTmdJTUlBQW9BZ3doQUNBQlFSQnFKQUFnQUFzcEFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJLQUlNUVFocUVCY2hBQ0FCUVJCcUpBQWdBQXMyQVFGL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENNQVFSQnJJZ0FnQVNnQ0RDZ0NBRFlDRENBQUtBSU1JUUFnQVVFUWFpUUFJQUFMSWdFQmZ5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTZ0NEQkF4SUFGQkVHb2tBQXVBQkFFRGZ5QUNRWUFFVHdSQUlBQWdBU0FDRUJBZ0FBOExJQUFnQW1vaEF3SkFJQUFnQVhOQkEzRkZCRUFDUUNBQVFRTnhSUVJBSUFBaEFnd0JDeUFDUlFSQUlBQWhBZ3dCQ3lBQUlRSURRQ0FDSUFFdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaUFrRURjVVVOQVNBQ0lBTkpEUUFMQ3dKQUlBTkJmSEVpQkVIQUFFa05BQ0FDSUFSQlFHb2lCVXNOQUFOQUlBSWdBU2dDQURZQ0FDQUNJQUVvQWdRMkFnUWdBaUFCS0FJSU5nSUlJQUlnQVNnQ0REWUNEQ0FDSUFFb0FoQTJBaEFnQWlBQktBSVVOZ0lVSUFJZ0FTZ0NHRFlDR0NBQ0lBRW9BaHcyQWh3Z0FpQUJLQUlnTmdJZ0lBSWdBU2dDSkRZQ0pDQUNJQUVvQWlnMkFpZ2dBaUFCS0FJc05nSXNJQUlnQVNnQ01EWUNNQ0FDSUFFb0FqUTJBalFnQWlBQktBSTROZ0k0SUFJZ0FTZ0NQRFlDUENBQlFVQnJJUUVnQWtGQWF5SUNJQVZORFFBTEN5QUNJQVJQRFFFRFFDQUNJQUVvQWdBMkFnQWdBVUVFYWlFQklBSkJCR29pQWlBRVNRMEFDd3dCQ3lBRFFRUkpCRUFnQUNFQ0RBRUxJQUFnQTBFRWF5SUVTd1JBSUFBaEFnd0JDeUFBSVFJRFFDQUNJQUV0QUFBNkFBQWdBaUFCTFFBQk9nQUJJQUlnQVMwQUFqb0FBaUFDSUFFdEFBTTZBQU1nQVVFRWFpRUJJQUpCQkdvaUFpQUVUUTBBQ3dzZ0FpQURTUVJBQTBBZ0FpQUJMUUFBT2dBQUlBRkJBV29oQVNBQ1FRRnFJZ0lnQTBjTkFBc0xJQUFMOFFZQkFuOGpBRUVnYXlJRUpBQWdCQ0FBTmdJY0lBUkJBRFlDR0NBRUlBRTJBaFFnQkNBQ05nSVFJQVFnQXpZQ0RFRUFJUUlqQUVFUWF5SUJKQUFqQUVFUWF5SUFKQUFnQUVFQU5nSUlRY2pxQUVIaEFCQm5Ba0JCek9vQUtBSUFSUVJBSUFCQkFEWUNEQXdCQ3dKQVFkRHFBQ2dDQUNJRFFmOEFTdzBBSUFOQm9Pc0FhaTBBQUVVTkFDQURRUUowUWFEc0FHb29BZ0FoQWdzZ0FDQUNOZ0lFSUFBb0FnUkZCRUFnQUVFQU5nSU1EQUVMSUFBZ0FDZ0NCQ0FBS0FJSVFRSjBhaWdDQURZQ0RBc2dBQ2dDRENFQ0lBQkJFR29rQUNBQklBSTJBZ2dDUUNBQktBSUlSUVJBSUFGQmpBSVFPellDQ0NBQktBSUlSUVJBSUFGQkFEWUNEQXdDQ3lBQktBSUlRUUJCakFJUUlTQUJLQUlJSVFJakFFRWdheUlBSkFBZ0FFRUFOZ0lZSUFBZ0FqWUNGQ0FBUWNrQU5nSVFRY2pxQUVIaEFCQm5Ba0JCek9vQUtBSUFSUVJBSUFBb0FoUWdBQ2dDRUJFQkFDQUFRUUEyQWh3TUFRdEJBQ0VDQWtCQjBPb0FLQUlBSWdOQi93QkxEUUFnQTBHZzZ3QnFMUUFBUlEwQUlBTkJBblJCb093QWFpZ0NBQ0VDQ3lBQUlBSTJBZ3dnQUNnQ0RFVUVRQ0FBUVJRUU96WUNEQ0FBS0FJTVJRUkFJQUFvQWhRZ0FDZ0NFQkVCQUNBQVFRQTJBaHdNQWdzZ0FDZ0NERUVBUVJRUUlTQUFLQUlNSVFWQkhDRUNBa0JCME9vQUtBSUFJZ05CL3dCTERRQWdBMEdnNndCcUxRQUFSUTBBSUFOQkFuUkJvT3dBYWlBRk5nSUFRUUFoQWdzZ0FnUkFJQUFvQWd3UUlpQUFLQUlVSUFBb0FoQVJBUUFnQUVFQU5nSWNEQUlMQ3lBQUtBSVlRUUowUWZEcUFHb2dBQ2dDRURZQ0FDQUFLQUlNSUFBb0FoaEJBblJxSUFBb0FoUTJBZ0FnQUVFQk5nSWNDeUFBS0FJY0lRSWdBRUVnYWlRQUlBSkZCRUFnQVVFQU5nSU1EQUlMQ3lBQklBRW9BZ2cyQWd3TElBRW9BZ3doQUNBQlFSQnFKQUFnQkNBQU5nSUlJQVFvQWdnRVFBSkFJQVFvQWh4QkFrY05BQ0FFS0FJVURRQWdCRUdRNndBb0FnQTJBaFFMSUFRb0FnZ2lBQ0FBS0FLQUFrRUJha0VQY1RZQ2dBSWdCQ2dDQ0NnQ2dBSWdCQ2dDQ0NnQ2hBSkdCRUFnQkNnQ0NDSUFJQUFvQW9RQ1FRRnFRUTl4TmdLRUFnc2dCQ0FFS0FJSUlnQWdBQ2dDZ0FKQkJIUnFOZ0lFSUFRb0FnUVE4QUVnQkNnQ0JDQUVLQUlRTmdJQUlBUW9BZ1FnQkNnQ0REc0JEQ0FFS0FJRUlBUW9BaFJCL3g5eElBUW9BaHhCL3dGeFFSaDBjallDQ0FzZ0JFRWdhaVFBQ3lrQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3hCREdvUUZ5RUFJQUZCRUdva0FDQUFDMklCQVg4akFFRVFheUlESkFBZ0F5QUFOZ0lJSUFNZ0FUWUNCQ0FESUFJMkFnQUNRQ0FES0FJQVJRUkFJQU1nQXlnQ0NEWUNEQXdCQ3lBREtBSUlJZ0FnQXlnQ0JDQURLQUlBRUJzYUlBTWdBRFlDREFzZ0F5Z0NEQm9nQTBFUWFpUUFDMzRCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lFQWtBZ0FTZ0NCRUVBU1FSQUlBRkJDR29RcUFJTUFRc2dBVUVBT2dBRElBRkJDR29pQUJBcUlBQWdBU2dDQkJBdkVHTWdBQkFXUVFBZ0FTZ0NCQkJHSUFGQkFUb0FBeUFCTFFBRFFRRnhSUVJBSUFGQkNHb1FHZ3NMSUFFb0FnZ2hBQ0FCUVJCcUpBQWdBQXQwQVFGL0lBSkZCRUFnQUNnQ0JDQUJLQUlFUmc4TElBQWdBVVlFUUVFQkR3c2dBU2dDQkNJQ0xRQUFJUUVDUUNBQUtBSUVJZ010QUFBaUFFVU5BQ0FBSUFGSERRQURRQ0FDTFFBQklRRWdBeTBBQVNJQVJRMEJJQUpCQVdvaEFpQURRUUZxSVFNZ0FDQUJSZzBBQ3dzZ0FDQUJSZ3RoQVFGL0l3QkJFR3NpQXlRQUlBTWdBRFlDQ0NBRElBRTJBZ1FnQXlBQ05nSUFBa0FnQXlnQ0FFVUVRQ0FESUFNb0FnZzJBZ3dNQVFzZ0F5Z0NDQ0lBSUFNb0FnUWdBeWdDQUJCR0lBTWdBRFlDREFzZ0F5Z0NEQm9nQTBFUWFpUUFDOG9NQVFkL0FrQWdBRVVOQUNBQVFRaHJJZ0lnQUVFRWF5Z0NBQ0lCUVhoeElnQnFJUVVDUUNBQlFRRnhEUUFnQVVFRGNVVU5BU0FDSUFJb0FnQWlBV3NpQWtHdzhBQW9BZ0JKRFFFZ0FDQUJhaUVBUWJUd0FDZ0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FpZ0NDQ0lFSUFGQkEzWWlBVUVEZEVISThBQnFSaG9nQkNBQ0tBSU1JZ05HQkVCQm9QQUFRYUR3QUNnQ0FFRitJQUYzY1RZQ0FBd0RDeUFFSUFNMkFnd2dBeUFFTmdJSURBSUxJQUlvQWhnaEJnSkFJQUlnQWlnQ0RDSUJSd1JBSUFJb0FnZ2lBeUFCTmdJTUlBRWdBellDQ0F3QkN3SkFJQUpCRkdvaUJDZ0NBQ0lERFFBZ0FrRVFhaUlFS0FJQUlnTU5BRUVBSVFFTUFRc0RRQ0FFSVFjZ0F5SUJRUlJxSWdRb0FnQWlBdzBBSUFGQkVHb2hCQ0FCS0FJUUlnTU5BQXNnQjBFQU5nSUFDeUFHUlEwQkFrQWdBaWdDSENJRVFRSjBRZER5QUdvaUF5Z0NBQ0FDUmdSQUlBTWdBVFlDQUNBQkRRRkJwUEFBUWFUd0FDZ0NBRUYrSUFSM2NUWUNBQXdEQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBDQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEJJQUVnQXpZQ0ZDQURJQUUyQWhnTUFRc2dCU2dDQkNJQlFRTnhRUU5IRFFCQnFQQUFJQUEyQWdBZ0JTQUJRWDV4TmdJRUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFDSUFWUERRQWdCU2dDQkNJQlFRRnhSUTBBQWtBZ0FVRUNjVVVFUUVHNDhBQW9BZ0FnQlVZRVFFRzQ4QUFnQWpZQ0FFR3M4QUJCclBBQUtBSUFJQUJxSWdBMkFnQWdBaUFBUVFGeU5nSUVJQUpCdFBBQUtBSUFSdzBEUWFqd0FFRUFOZ0lBUWJUd0FFRUFOZ0lBRHd0QnRQQUFLQUlBSUFWR0JFQkJ0UEFBSUFJMkFnQkJxUEFBUWFqd0FDZ0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBQ1FDQUJRZjhCVFFSQUlBVW9BZ2dpQkNBQlFRTjJJZ0ZCQTNSQnlQQUFha1lhSUFRZ0JTZ0NEQ0lEUmdSQVFhRHdBRUdnOEFBb0FnQkJmaUFCZDNFMkFnQU1BZ3NnQkNBRE5nSU1JQU1nQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUNBRktBSUlJZ05Cc1BBQUtBSUFTUm9nQXlBQk5nSU1JQUVnQXpZQ0NBd0JDd0pBSUFWQkZHb2lCQ2dDQUNJRERRQWdCVUVRYWlJRUtBSUFJZ01OQUVFQUlRRU1BUXNEUUNBRUlRY2dBeUlCUVJScUlnUW9BZ0FpQXcwQUlBRkJFR29oQkNBQktBSVFJZ01OQUFzZ0IwRUFOZ0lBQ3lBR1JRMEFBa0FnQlNnQ0hDSUVRUUowUWREeUFHb2lBeWdDQUNBRlJnUkFJQU1nQVRZQ0FDQUJEUUZCcFBBQVFhVHdBQ2dDQUVGK0lBUjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQVZHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0JTZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQlNnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FnQWtHMDhBQW9BZ0JIRFFGQnFQQUFJQUEyQWdBUEN5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXNnQUVIL0FVMEVRQ0FBUVhoeFFjandBR29oQVFKL1FhRHdBQ2dDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCb1BBQUlBQWdBM0kyQWdBZ0FRd0JDeUFCS0FJSUN5RUFJQUVnQWpZQ0NDQUFJQUkyQWd3Z0FpQUJOZ0lNSUFJZ0FEWUNDQThMUVI4aEJDQUFRZi8vL3dkTkJFQWdBRUVJZGlJQklBRkJnUDQvYWtFUWRrRUljU0lFZENJQklBRkJnT0FmYWtFUWRrRUVjU0lEZENJQklBRkJnSUFQYWtFUWRrRUNjU0lCZEVFUGRpQURJQVJ5SUFGeWF5SUJRUUYwSUFBZ0FVRVZhblpCQVhGeVFSeHFJUVFMSUFJZ0JEWUNIQ0FDUWdBM0FoQWdCRUVDZEVIUThnQnFJUWNDUUFKQUFrQkJwUEFBS0FJQUlnTkJBU0FFZENJQmNVVUVRRUdrOEFBZ0FTQURjallDQUNBSElBSTJBZ0FnQWlBSE5nSVlEQUVMSUFCQkdTQUVRUUYyYTBFQUlBUkJIMGNiZENFRUlBY29BZ0FoQVFOQUlBRWlBeWdDQkVGNGNTQUFSZzBDSUFSQkhYWWhBU0FFUVFGMElRUWdBeUFCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQXpZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QURLQUlJSWdBZ0FqWUNEQ0FESUFJMkFnZ2dBa0VBTmdJWUlBSWdBellDRENBQ0lBQTJBZ2dMUWNEd0FFSEE4QUFvQWdCQkFXc2lBRUYvSUFBYk5nSUFDd3M1QVFGL0l3QkJFR3NpQWlRQUlBSWdBRFlDRENBQ0lBRTJBZ2dnQWlnQ0RCQVhLQUlBSUFJb0FnaEJBblJxSVFBZ0FrRVFhaVFBSUFBTE5RRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2dBVUVJYWlBQktBSU1RUVFRSGlBQktBSUlFT2tCSVFBZ0FVRVFhaVFBSUFBTFhnRUJmeU1BUVJCcklnSWdBRFlDRENBQ0lBRTJBZ2dDZnlBQ0tBSUlJZ0FnQUVFQmEzRkZCRUFnQWlnQ0RDQUNLQUlJUVFGcmNRd0JDd0ovSUFJb0Fnd2dBaWdDQ0VrRVFDQUNLQUlNREFFTElBSW9BZ3dnQWlnQ0NIQUxDd3NtQVFGL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQktBSU1FQmNoQUNBQlFSQnFKQUFnQUF0UEFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0NDQUJJQUVvQWdnaUFEWUNEQ0FBRUpzQ0lBQW9BZ0FFUUNBQUVKb0NJQUFRR0NBQUtBSUFJQUFRUGhDcEFRc2dBU2dDREJvZ0FVRVFhaVFBQzYwQkFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RBSkFJQUVvQWd4RkRRQkJ2T29BS0FJQUJFQWdBU2dDREVHODZnQW9BZ0FSQVFBTUFRc2dBU0FCS0FJTVFRaHJOZ0lJSXdCQkVHc2lBQ0FCS0FJSU5nSU1JQUJCQ0RZQ0NDQUJJQUVvQWdnb0FnQTJBZ1FnQVNnQ0NDQUJLQUlFUVFocUVJNEJRY1RxQUNnQ0FBUkFJQUVvQWdnZ0FTZ0NCRUVJYWtFQVFjVHFBQ2dDQUJFREFBd0JDeUFCS0FJSUVDSUxJQUZCRUdva0FBdjlCd0VMZnlNQVFUQnJJZ2drQUNBSUlBQTJBaXdnQ0NBQk5nSW9JQWdvQWl3aEJTQUlLQUlvSVFZakFFRVFheUlBSkFBZ0FDQUdOZ0lFSUFBb0FnUWhBaU1BUVRCcklnRWtBQ0FCSUFCQkNHbzJBaXdnQVNBQ05nSW9JQUVvQWl3aEF5QUJLQUlvSVFRakFFRXdheUlDSkFBZ0FpQUROZ0lNSUFJZ0JEWUNDQ0FDS0FJSUlRUWpBRUVRYXlJRElBSW9BZ3cyQWd3Z0F5QUVOZ0lJSUFNb0Fnd2dBeWdDQ0RZQ0FDQUNRVEJxSkFBZ0FVRXdhaVFBSUFBb0FnZ2hBU0FBUVJCcUpBQWdDQ0FCTmdJWUl3QkJRR29pQUNRQUlBQWdCVFlDUENBQUlBWTJBamdnQUVHQUt6WUNOQ0FBSUFoQkdHbzJBakFnQUNBSVFSQnFOZ0lzSUFBZ0FDZ0NQQ0lMSUFCQktHb2dBQ2dDT0JDR0FUWUNKQ0FBSUFBb0FpUW9BZ0EyQWlBZ0FFRUFPZ0FmSUFBb0FpUW9BZ0JGQkVBZ0FDZ0NOQ0VDSUFBb0FqQWhBeUFBS0FJc0lRWWpBRUVnYXlJQkpBQWdBU0FMTmdJY0lBRWdBallDR0NBQklBTTJBaFFnQVNBR05nSVFJQUVnQVNnQ0hCQmdOZ0lNSUFGQkFEb0FDeUFCS0FJTUVMVUJJUUlnQVNBQktBSU1RUUFRVkNBQVFSQnFJZ1lnQWlBQkVGTWdBU2dDRENFRElBWVFGa0VRYWhBc0lRVWdBU2dDR0NFRUlBRW9BaFFoQnlBQktBSVFJUW9qQUVFZ2F5SUNKQUFnQWlBRE5nSWNJQUlnQlRZQ0dDQUNJQVEyQWhRZ0FpQUhOZ0lRSUFJZ0NqWUNEQ0FDS0FJY0lRVWdBaWdDR0NFRUlBSW9BaFFoQnlBQ0tBSVFJUW9nQWlnQ0RDRUpJd0JCTUdzaUF5UUFJQU1nQlRZQ0xDQURJQVEyQWlnZ0F5QUhOZ0lrSUFNZ0NqWUNJQ0FESUFrMkFod2dBeWdDS0NFRUlBTWdBeWdDSUNnQ0FEWUNFQ0FES0FJUUlRY2pBRUV3YXlJRkpBQWdCU0FITmdJZ0lBVWdCRFlDRkNBRktBSVVJUWNqQUVFd2F5SUVKQUFnQkNBSE5nSVVJQVFnQlVFZ2FqWUNFQ0FFSUFWQkdHbzJBZ3dnQkNnQ0ZDSUtJUXdnQkNnQ0VDRUpJd0JCRUdzaUJ5UUFJQWNnQ1RZQ0RDTUFRUkJySWdrZ0J5Z0NERFlDRENBSktBSU1LQUlBSVFrZ0IwRVFhaVFBSUF3Z0NTZ0NBRFlDQUNBS1FRUnFRUUJCMUFBUVJpQUVRVEJxSkFBZ0JVRXdhaVFBSUFOQk1Hb2tBQ0FDUVNCcUpBQWdCaEEvUVFFNkFBUWdBVUVCT2dBTElBRXRBQXRCQVhGRkJFQWdCaEJpQ3lBQlFTQnFKQUFnQ3lBQUtBSW9JQUFvQWlRZ0JoQVdFTFlCSUFBZ0JoQkNOZ0lnSUFCQkFUb0FIeUFHRUdJTElBQW9BaUFoQWlNQVFSQnJJZ0VnQUVFSWFpSUROZ0lNSUFFZ0FqWUNDQ0FCS0FJTUlBRW9BZ2cyQWdBZ0NFRWdhaUlCSUFNZ0FFRWZhaEJoSUFCQlFHc2tBQ01BUVJCcklnQWtBQ0FBSUFFMkFnd2pBRUVRYXlJQklBQW9BZ3cyQWd3akFFRVFheUlDSUFFb0Fnd29BZ0JCRUdvMkFnd2dBaWdDRENFQklBQkJFR29rQUNBQkVDWkJCR29oQUNBSVFUQnFKQUFnQUFzcUFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJLQUlNSUFGQkNHb2dBUkRCQVNBQlFSQnFKQUFMdWdJQkEzOGpBRUZBYWlJQ0pBQWdBQ2dDQUNJRFFRUnJLQUlBSVFRZ0EwRUlheWdDQUNFRElBSkNBRGNESUNBQ1FnQTNBeWdnQWtJQU53TXdJQUpDQURjQU55QUNRZ0EzQXhnZ0FrRUFOZ0lVSUFKQmdPSUFOZ0lRSUFJZ0FEWUNEQ0FDSUFFMkFnZ2dBQ0FEYWlFQVFRQWhBd0pBSUFRZ0FVRUFFQ0FFUUNBQ1FRRTJBamdnQkNBQ1FRaHFJQUFnQUVFQlFRQWdCQ2dDQUNnQ0ZCRUtBQ0FBUVFBZ0FpZ0NJRUVCUmhzaEF3d0JDeUFFSUFKQkNHb2dBRUVCUVFBZ0JDZ0NBQ2dDR0JFSUFBSkFBa0FnQWlnQ0xBNENBQUVDQ3lBQ0tBSWNRUUFnQWlnQ0tFRUJSaHRCQUNBQ0tBSWtRUUZHRzBFQUlBSW9BakJCQVVZYklRTU1BUXNnQWlnQ0lFRUJSd1JBSUFJb0FqQU5BU0FDS0FJa1FRRkhEUUVnQWlnQ0tFRUJSdzBCQ3lBQ0tBSVlJUU1MSUFKQlFHc2tBQ0FEQ3lZQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3dRSmlFQUlBRkJFR29rQUNBQUMwRUJBWDhqQUVFUWF5SUNJQUEyQWd3Z0FpQUJOZ0lJSUFJZ0FpZ0NEQ2dDQURZQ0JDQUNLQUlNSUFJb0FnZ29BZ0EyQWdBZ0FpZ0NDQ0FDS0FJRU5nSUFDMDRCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFb0Fnd2lBRUVBTmdJQUlBQkJBRFlDQkNBQlFRQTJBZ2dnQUVFSWFpQUJRUWhxSUFFUXdBRWpBRUVRYXlBQU5nSU1JQUZCRUdva0FBc3pBUUYvSUFCQkFTQUFHeUVBQWtBRFFDQUFFRHNpQVEwQlFaRDBBQ2dDQUNJQkJFQWdBUkVKQUF3QkN3c1FBd0FMSUFFTEtRRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2dBU2dDREVFUWFoQVhJUUFnQVVFUWFpUUFJQUFMVUFFQmZ5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FVRUFOZ0lJSUFFZ0FTZ0NEQ0lBRUJjb0FnQTJBZ1FnQUJBWFFRQTJBZ0FnQVNnQ0JBUkFJQUFRRnlBQktBSUVFTGdCQ3lBQlFSQnFKQUFMV2dFQ2Z5TUFRUkJySWdJa0FDQUNJQUEyQWd3Z0FpZ0NERUVNYWlFQkl3QkJFR3NpQUNRQUlBQWdBVFlDRENNQVFSQnJJZ0VnQUNnQ0RFRUVhallDRENBQktBSU1LQUlBSVFFZ0FFRVFhaVFBSUFKQkVHb2tBQ0FCQ3pJQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3dFUUNBQktBSU1FT0VCSUFFb0Fnd1FLQXNnQVVFUWFpUUFDeWdCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFb0Fnd1FQeEFXSVFBZ0FVRVFhaVFBSUFBTDhBUUJBbjhqQUVFUWF5SURKQUFnQXlBQU5nSU1JQU1nQVRZQ0NDQURJQUkyQWdRZ0F5Z0NEQ0VCSUFNb0FnZ2hBaUFES0FJRUlRUWpBRUV3YXlJQUpBQWdBRUhZQURZQ0xDQUFJQUUyQWlnZ0FDQUJRU2hxTmdJa0lBQkJ3QUEyQWlBZ0FDQUJRZWdBYWpZQ0hDQUFJQUZCSkdvMkFoZ2dBQ0FCUVNCcU5nSVVJQUFnQWpZQ0VDQUFJQVEyQWd3Q1FDQUFLQUlNUlEwQUlBQWdBQ2dDRkNnQ0FDQUFLQUlNUVFOMGFqWUNDQ0FBS0FJSUlBQW9BaFFvQWdCSkJFQWdBQ2dDR0NJQklBRW9BZ0JCQVdvMkFnQUxJQUFvQWhnaUFTQUJLQUlBSUFBb0FneEJIWFpxTmdJQUlBQW9BaFFnQUNnQ0NEWUNBQ0FBSUFBb0Fod29BZ0EyQWdRZ0FDZ0NCQVJBQWtBQ1FDQUFLQUlNSUFBb0FpQkpCRUFnQUNnQ0lDQUFLQUlNSUFBb0FnUnFTdzBCQ3lBQUtBSUVJZ0VnQUNnQ0pHb2dBQ2dDRUNBQUtBSWdJQUZyRUI0Z0FDZ0NLQ0FBS0FJa1FRRWdBQ2dDTEJFREFDQUFJQUFvQWlBZ0FDZ0NCR3MyQWdRZ0FDQUFLQUlFSUFBb0FoQnFOZ0lRSUFBZ0FDZ0NEQ0FBS0FJRWF6WUNEQ0FBS0FJY1FRQTJBZ0FnQUNnQ0pFRUFJQUFvQWlBUUlRd0JDeUFBS0FJa0lBQW9BZ1JxSUFBb0FoQWdBQ2dDREJBZUlBQW9BaHdpQVNBQUtBSU1JQUVvQWdCcU5nSUFEQUlMQ3lBQUlBQW9BZ3dnQUNnQ0lHNDJBZ1FnQUNnQ0JBUkFJQUFvQWlnZ0FDZ0NFQ0FBS0FJRUlBQW9BaXdSQXdBZ0FDQUFLQUlnSUFBb0FnUnNOZ0lFSUFBZ0FDZ0NCQ0FBS0FJUWFqWUNFQ0FBSUFBb0Fnd2dBQ2dDQkdzMkFnd0xJQUFvQWd4RkRRQWdBQ2dDSENBQUtBSU1OZ0lBSUFBb0FpUWdBQ2dDRUNBQUtBSU1FQjRMSUFCQk1Hb2tBQ0FEUVJCcUpBQkJBUXZFQkFFTmZ5TUFRUkJySWdZa0FDQUdJQUEyQWd3Z0JpQUJOZ0lJSUFZb0Fnd2hBU0FHS0FJSUlRSWpBRUVRYXlJQUpBQWdBQ0FCTmdJRUlBQWdBallDQUNBQUtBSUVJZ2NoQVNNQVFSQnJJZ2drQUNBSUlBRTJBZ3dnQ0NnQ0RDSUJLQUlBQkVBakFFRVFheUlESkFBZ0F5QUJOZ0lNSXdCQkVHc2lBaUFES0FJTUlnazJBZ3dnQXlBQ0tBSU1JZ0lvQWdRZ0FpZ0NBR3RCQTNVMkFnZ2dDUkNhQWlBREtBSUlJUUlqQUVFUWF5SUZKQUFnQlNBSk5nSU1JQVVnQWpZQ0NDQUZLQUlNSWdJUUdTRUtJQUlRR1NBQ0VENUJBM1JxSVFzZ0FoQVpJQVVvQWdoQkEzUnFJUXdnQWhBWklRNGpBRUVRYXlJRUlBSTJBZ3dnRGlBRUtBSU1JZ1FvQWdRZ0JDZ0NBR3RCZUhGcUlRMGpBRUVnYXlJRUlBSTJBaHdnQkNBS05nSVlJQVFnQ3pZQ0ZDQUVJQXcyQWhBZ0JDQU5OZ0lNSUFWQkVHb2tBQ01BUVJCcklBazJBZ3dnQTBFUWFpUUFJQUVRR0NBQktBSUFJQUVRUGhDcEFTQUJFQmhCQURZQ0FDQUJRUUEyQWdRZ0FVRUFOZ0lBQ3lBSVFSQnFKQUFnQUNnQ0FDRUNJd0JCRUdzaUFTUUFJQUVnQnpZQ0RDQUJJQUkyQWdnZ0FTZ0NEQ0VESUFFb0FnZ2hCU01BUVJCcklnSWtBQ0FDSUFNMkFnUWdBaUFGTmdJQUlBSW9BZ1FoQXlBQ0tBSUFFQmdhSUFNUUdCb2dBa0VRYWlRQUlBRkJFR29rQUNBSElBQW9BZ0FvQWdBMkFnQWdCeUFBS0FJQUtBSUVOZ0lFSUFBb0FnQVFHQ2dDQUNFQklBY1FHQ0FCTmdJQUlBQW9BZ0FRR0VFQU5nSUFJQUFvQWdCQkFEWUNCQ0FBS0FJQVFRQTJBZ0FnQUVFUWFpUUFJQVpCRUdva0FBc3BBUUYvSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCUVFBMkFnZ2dBU2dDREJBeElBRkJFR29rQUF2ZEFRRUVmeU1BUVJCcklnSWtBQ0FDSUFBMkFnZ2dBaUFDS0FJSUlnQTJBZ3dnQUNnQ0JBUkFJQUFvQWdRaEFDTUFRUkJySWdRa0FDQUVJQUEyQWd3Z0JDZ0NEQ0VBSXdCQkVHc2lBU1FBSUFFZ0FEWUNDQUpBSUFFb0FnZ2lBMEVFYWhDNUFVRi9SZ1JBSUFNZ0F5Z0NBQ2dDQ0JFQkFDQUJRUUU2QUE4TUFRc2dBVUVBT2dBUEN5QUJMUUFQUVFGeElRTWdBVUVRYWlRQUlBTkJBWEVFUUFKQUlBQkJDR29pQVNnQ0FBUkFJQUVRdVFGQmYwY05BUXNnQUNBQUtBSUFLQUlRRVFFQUN3c2dCRUVRYWlRQUN5QUNLQUlNR2lBQ1FSQnFKQUFMQlFBUUF3QUxRUUVCZnlNQVFSQnJJZ01rQUNBRElBQTJBZ3dnQXlBQk5nSUlJQU1nQWpZQ0JDQURLQUlNSVFCQm5DY2dBeWdDQ0NBREtBSUVFQVVnQTBFUWFpUUFJQUFMOXkwQkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCb1BBQUtBSUFJZ1ZCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1pCQTNZaUFIWWlBVUVEY1FSQUFrQWdBVUYvYzBFQmNTQUFhaUlDUVFOMElnRkJ5UEFBYWlJQUlBRkIwUEFBYWlnQ0FDSUJLQUlJSWdOR0JFQkJvUEFBSUFWQmZpQUNkM0UyQWdBTUFRc2dBeUFBTmdJTUlBQWdBellDQ0FzZ0FVRUlhaUVBSUFFZ0FrRURkQ0lDUVFOeU5nSUVJQUVnQW1vaUFTQUJLQUlFUVFGeU5nSUVEQXdMSUFaQnFQQUFLQUlBSWdkTkRRRWdBUVJBQWtCQkFpQUFkQ0lDUVFBZ0FtdHlJQUVnQUhSeElnQkJBV3NnQUVGL2MzRWlBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFpSUJRUU4wSWdCQnlQQUFhaUlDSUFCQjBQQUFhaWdDQUNJQUtBSUlJZ05HQkVCQm9QQUFJQVZCZmlBQmQzRWlCVFlDQUF3QkN5QURJQUkyQWd3Z0FpQUROZ0lJQ3lBQUlBWkJBM0kyQWdRZ0FDQUdhaUlJSUFGQkEzUWlBU0FHYXlJRFFRRnlOZ0lFSUFBZ0FXb2dBellDQUNBSEJFQWdCMEY0Y1VISThBQnFJUUZCdFBBQUtBSUFJUUlDZnlBRlFRRWdCMEVEZG5RaUJIRkZCRUJCb1BBQUlBUWdCWEkyQWdBZ0FRd0JDeUFCS0FJSUN5RUVJQUVnQWpZQ0NDQUVJQUkyQWd3Z0FpQUJOZ0lNSUFJZ0JEWUNDQXNnQUVFSWFpRUFRYlR3QUNBSU5nSUFRYWp3QUNBRE5nSUFEQXdMUWFUd0FDZ0NBQ0lLUlEwQklBcEJBV3NnQ2tGL2MzRWlBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhROGdCcUtBSUFJZ0lvQWdSQmVIRWdCbXNoQkNBQ0lRRURRQUpBSUFFb0FoQWlBRVVFUUNBQktBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0Jtc2lBU0FFSUFFZ0JFa2lBUnNoQkNBQUlBSWdBUnNoQWlBQUlRRU1BUXNMSUFJb0FoZ2hDU0FDSUFJb0Fnd2lBMGNFUUNBQ0tBSUlJZ0JCc1BBQUtBSUFTUm9nQUNBRE5nSU1JQU1nQURZQ0NBd0xDeUFDUVJScUlnRW9BZ0FpQUVVRVFDQUNLQUlRSWdCRkRRTWdBa0VRYWlFQkN3TkFJQUVoQ0NBQUlnTkJGR29pQVNnQ0FDSUFEUUFnQTBFUWFpRUJJQU1vQWhBaUFBMEFDeUFJUVFBMkFnQU1DZ3RCZnlFR0lBQkJ2MzlMRFFBZ0FFRUxhaUlBUVhoeElRWkJwUEFBS0FJQUlnaEZEUUJCQUNBR2F5RUVBa0FDUUFKQUFuOUJBQ0FHUVlBQ1NRMEFHa0VmSUFaQi8vLy9CMHNOQUJvZ0FFRUlkaUlBSUFCQmdQNC9ha0VRZGtFSWNTSUFkQ0lCSUFGQmdPQWZha0VRZGtFRWNTSUJkQ0lDSUFKQmdJQVBha0VRZGtFQ2NTSUNkRUVQZGlBQUlBRnlJQUp5YXlJQVFRRjBJQVlnQUVFVmFuWkJBWEZ5UVJ4cUN5SUhRUUowUWREeUFHb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVpCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBWnJJZ1VnQkU4TkFDQUJJUU1nQlNJRURRQkJBQ0VFSUFFaEFBd0RDeUFBSUFFb0FoUWlCU0FGSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0JSc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQURja1VFUUVFQUlRTkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUVFQmF5QUFRWDl6Y1NJQUlBQkJESFpCRUhFaUFIWWlBVUVGZGtFSWNTSUNJQUJ5SUFFZ0FuWWlBRUVDZGtFRWNTSUJjaUFBSUFGMklnQkJBWFpCQW5FaUFYSWdBQ0FCZGlJQVFRRjJRUUZ4SWdGeUlBQWdBWFpxUVFKMFFkRHlBR29vQWdBaEFBc2dBRVVOQVFzRFFDQUFLQUlFUVhoeElBWnJJZ0lnQkVraEFTQUNJQVFnQVJzaEJDQUFJQU1nQVJzaEF5QUFLQUlRSWdFRWZ5QUJCU0FBS0FJVUN5SUFEUUFMQ3lBRFJRMEFJQVJCcVBBQUtBSUFJQVpyVHcwQUlBTW9BaGdoQnlBRElBTW9BZ3dpQWtjRVFDQURLQUlJSWdCQnNQQUFLQUlBU1JvZ0FDQUNOZ0lNSUFJZ0FEWUNDQXdKQ3lBRFFSUnFJZ0VvQWdBaUFFVUVRQ0FES0FJUUlnQkZEUU1nQTBFUWFpRUJDd05BSUFFaEJTQUFJZ0pCRkdvaUFTZ0NBQ0lBRFFBZ0FrRVFhaUVCSUFJb0FoQWlBQTBBQ3lBRlFRQTJBZ0FNQ0FzZ0JrR284QUFvQWdBaUFVMEVRRUcwOEFBb0FnQWhBQUpBSUFFZ0Jtc2lBa0VRVHdSQVFhandBQ0FDTmdJQVFiVHdBQ0FBSUFacUlnTTJBZ0FnQXlBQ1FRRnlOZ0lFSUFBZ0FXb2dBallDQUNBQUlBWkJBM0kyQWdRTUFRdEJ0UEFBUVFBMkFnQkJxUEFBUVFBMkFnQWdBQ0FCUVFOeU5nSUVJQUFnQVdvaUFTQUJLQUlFUVFGeU5nSUVDeUFBUVFocUlRQU1DZ3NnQmtHczhBQW9BZ0FpQWtrRVFFR3M4QUFnQWlBR2F5SUJOZ0lBUWJqd0FFRzQ4QUFvQWdBaUFDQUdhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVpCQTNJMkFnUWdBRUVJYWlFQURBb0xRUUFoQUNBR1FTOXFJZ1FDZjBINDh3QW9BZ0FFUUVHQTlBQW9BZ0FNQVF0QmhQUUFRbjgzQWdCQi9QTUFRb0NnZ0lDQWdBUTNBZ0JCK1BNQUlBdEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFZejBBRUVBTmdJQVFkenpBRUVBTmdJQVFZQWdDeUlCYWlJRlFRQWdBV3NpQ0hFaUFTQUdUUTBKUWRqekFDZ0NBQ0lEQkVCQjBQTUFLQUlBSWdjZ0FXb2lDU0FIVFEwS0lBTWdDVWtOQ2d0QjNQTUFMUUFBUVFSeERRUUNRQUpBUWJqd0FDZ0NBQ0lEQkVCQjRQTUFJUUFEUUNBRElBQW9BZ0FpQjA4RVFDQUhJQUFvQWdScUlBTkxEUU1MSUFBb0FnZ2lBQTBBQ3d0QkFCQkZJZ0pCZjBZTkJTQUJJUVZCL1BNQUtBSUFJZ0JCQVdzaUF5QUNjUVJBSUFFZ0Ftc2dBaUFEYWtFQUlBQnJjV29oQlFzZ0JTQUdUUTBGSUFWQi92Ly8vd2RMRFFWQjJQTUFLQUlBSWdBRVFFSFE4d0FvQWdBaUF5QUZhaUlJSUFOTkRRWWdBQ0FJU1EwR0N5QUZFRVVpQUNBQ1J3MEJEQWNMSUFVZ0Ftc2dDSEVpQlVIKy8vLy9CMHNOQkNBRkVFVWlBaUFBS0FJQUlBQW9BZ1JxUmcwRElBSWhBQXNDUUNBQVFYOUdEUUFnQmtFd2FpQUZUUTBBUVlEMEFDZ0NBQ0lDSUFRZ0JXdHFRUUFnQW10eElnSkIvdi8vL3dkTEJFQWdBQ0VDREFjTElBSVFSVUYvUndSQUlBSWdCV29oQlNBQUlRSU1Cd3RCQUNBRmF4QkZHZ3dFQ3lBQUlnSkJmMGNOQlF3REMwRUFJUU1NQnd0QkFDRUNEQVVMSUFKQmYwY05BZ3RCM1BNQVFkenpBQ2dDQUVFRWNqWUNBQXNnQVVIKy8vLy9CMHNOQVNBQkVFVWhBa0VBRUVVaEFDQUNRWDlHRFFFZ0FFRi9SZzBCSUFBZ0FrME5BU0FBSUFKcklnVWdCa0VvYWswTkFRdEIwUE1BUWREekFDZ0NBQ0FGYWlJQU5nSUFRZFR6QUNnQ0FDQUFTUVJBUWRUekFDQUFOZ0lBQ3dKQUFrQUNRRUc0OEFBb0FnQWlCQVJBUWVEekFDRUFBMEFnQWlBQUtBSUFJZ0VnQUNnQ0JDSURha1lOQWlBQUtBSUlJZ0FOQUFzTUFndEJzUEFBS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUd3OEFBZ0FqWUNBQXRCQUNFQVFlVHpBQ0FGTmdJQVFlRHpBQ0FDTmdJQVFjRHdBRUYvTmdJQVFjVHdBRUg0OHdBb0FnQTJBZ0JCN1BNQVFRQTJBZ0FEUUNBQVFRTjBJZ0ZCMFBBQWFpQUJRY2p3QUdvaUF6WUNBQ0FCUWRUd0FHb2dBellDQUNBQVFRRnFJZ0JCSUVjTkFBdEJyUEFBSUFWQktHc2lBRUY0SUFKclFRZHhRUUFnQWtFSWFrRUhjUnNpQVdzaUF6WUNBRUc0OEFBZ0FTQUNhaUlCTmdJQUlBRWdBMEVCY2pZQ0JDQUFJQUpxUVNnMkFnUkJ2UEFBUVlqMEFDZ0NBRFlDQUF3Q0N5QUFMUUFNUVFoeERRQWdBU0FFU3cwQUlBSWdCRTBOQUNBQUlBTWdCV28yQWdSQnVQQUFJQVJCZUNBRWEwRUhjVUVBSUFSQkNHcEJCM0ViSWdCcUlnRTJBZ0JCclBBQVFhendBQ2dDQUNBRmFpSUNJQUJySWdBMkFnQWdBU0FBUVFGeU5nSUVJQUlnQkdwQktEWUNCRUc4OEFCQmlQUUFLQUlBTmdJQURBRUxRYkR3QUNnQ0FDQUNTd1JBUWJEd0FDQUNOZ0lBQ3lBQ0lBVnFJUUZCNFBNQUlRQUNRQUpBQWtBQ1FBSkFBa0FEUUNBQklBQW9BZ0JIQkVBZ0FDZ0NDQ0lBRFFFTUFnc0xJQUF0QUF4QkNIRkZEUUVMUWVEekFDRUFBMEFnQkNBQUtBSUFJZ0ZQQkVBZ0FTQUFLQUlFYWlJRElBUkxEUU1MSUFBb0FnZ2hBQXdBQ3dBTElBQWdBallDQUNBQUlBQW9BZ1FnQldvMkFnUWdBa0Y0SUFKclFRZHhRUUFnQWtFSWFrRUhjUnRxSWdjZ0JrRURjallDQkNBQlFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEcyb2lCU0FHSUFkcUlnWnJJUUFnQkNBRlJnUkFRYmp3QUNBR05nSUFRYXp3QUVHczhBQW9BZ0FnQUdvaUFEWUNBQ0FHSUFCQkFYSTJBZ1FNQXd0QnRQQUFLQUlBSUFWR0JFQkJ0UEFBSUFZMkFnQkJxUEFBUWFqd0FDZ0NBQ0FBYWlJQU5nSUFJQVlnQUVFQmNqWUNCQ0FBSUFacUlBQTJBZ0FNQXdzZ0JTZ0NCQ0lFUVFOeFFRRkdCRUFnQkVGNGNTRUpBa0FnQkVIL0FVMEVRQ0FGS0FJSUlnRWdCRUVEZGlJRFFRTjBRY2p3QUdwR0dpQUJJQVVvQWd3aUFrWUVRRUdnOEFCQm9QQUFLQUlBUVg0Z0EzZHhOZ0lBREFJTElBRWdBallDRENBQ0lBRTJBZ2dNQVFzZ0JTZ0NHQ0VJQWtBZ0JTQUZLQUlNSWdKSEJFQWdCU2dDQ0NJQklBSTJBZ3dnQWlBQk5nSUlEQUVMQWtBZ0JVRVVhaUlFS0FJQUlnRU5BQ0FGUVJCcUlnUW9BZ0FpQVEwQVFRQWhBZ3dCQ3dOQUlBUWhBeUFCSWdKQkZHb2lCQ2dDQUNJQkRRQWdBa0VRYWlFRUlBSW9BaEFpQVEwQUN5QURRUUEyQWdBTElBaEZEUUFDUUNBRktBSWNJZ0ZCQW5SQjBQSUFhaUlES0FJQUlBVkdCRUFnQXlBQ05nSUFJQUlOQVVHazhBQkJwUEFBS0FJQVFYNGdBWGR4TmdJQURBSUxJQWhCRUVFVUlBZ29BaEFnQlVZYmFpQUNOZ0lBSUFKRkRRRUxJQUlnQ0RZQ0dDQUZLQUlRSWdFRVFDQUNJQUUyQWhBZ0FTQUNOZ0lZQ3lBRktBSVVJZ0ZGRFFBZ0FpQUJOZ0lVSUFFZ0FqWUNHQXNnQlNBSmFpSUZLQUlFSVFRZ0FDQUphaUVBQ3lBRklBUkJmbkUyQWdRZ0JpQUFRUUZ5TmdJRUlBQWdCbW9nQURZQ0FDQUFRZjhCVFFSQUlBQkJlSEZCeVBBQWFpRUJBbjlCb1BBQUtBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR2c4QUFnQUNBQ2NqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUdOZ0lJSUFBZ0JqWUNEQ0FHSUFFMkFnd2dCaUFBTmdJSURBTUxRUjhoQkNBQVFmLy8vd2ROQkVBZ0FFRUlkaUlCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUlRUUxJQVlnQkRZQ0hDQUdRZ0EzQWhBZ0JFRUNkRUhROGdCcUlRRUNRRUdrOEFBb0FnQWlBa0VCSUFSMElnTnhSUVJBUWFUd0FDQUNJQU55TmdJQUlBRWdCallDQUF3QkN5QUFRUmtnQkVFQmRtdEJBQ0FFUVI5SEczUWhCQ0FCS0FJQUlRSURRQ0FDSWdFb0FnUkJlSEVnQUVZTkF5QUVRUjEySVFJZ0JFRUJkQ0VFSUFFZ0FrRUVjV29pQXlnQ0VDSUNEUUFMSUFNZ0JqWUNFQXNnQmlBQk5nSVlJQVlnQmpZQ0RDQUdJQVkyQWdnTUFndEJyUEFBSUFWQktHc2lBRUY0SUFKclFRZHhRUUFnQWtFSWFrRUhjUnNpQVdzaUNEWUNBRUc0OEFBZ0FTQUNhaUlCTmdJQUlBRWdDRUVCY2pZQ0JDQUFJQUpxUVNnMkFnUkJ2UEFBUVlqMEFDZ0NBRFlDQUNBRUlBTkJKeUFEYTBFSGNVRUFJQU5CSjJ0QkIzRWJha0V2YXlJQUlBQWdCRUVRYWtrYklnRkJHellDQkNBQlFlanpBQ2tDQURjQ0VDQUJRZUR6QUNrQ0FEY0NDRUhvOHdBZ0FVRUlhallDQUVIazh3QWdCVFlDQUVIZzh3QWdBallDQUVIczh3QkJBRFlDQUNBQlFSaHFJUUFEUUNBQVFRYzJBZ1FnQUVFSWFpRUNJQUJCQkdvaEFDQUNJQU5KRFFBTElBRWdCRVlOQXlBQklBRW9BZ1JCZm5FMkFnUWdCQ0FCSUFScklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVSEk4QUJxSVFBQ2YwR2c4QUFvQWdBaUFVRUJJQUpCQTNaMElnSnhSUVJBUWFEd0FDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFRMkFnZ2dBU0FFTmdJTUlBUWdBRFlDRENBRUlBRTJBZ2dNQkF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVFoMklnQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29oQUFzZ0JDQUFOZ0ljSUFSQ0FEY0NFQ0FBUVFKMFFkRHlBR29oQVFKQVFhVHdBQ2dDQUNJRFFRRWdBSFFpQlhGRkJFQkJwUEFBSUFNZ0JYSTJBZ0FnQVNBRU5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQXdOQUlBTWlBU2dDQkVGNGNTQUNSZzBFSUFCQkhYWWhBeUFBUVFGMElRQWdBU0FEUVFSeGFpSUZLQUlRSWdNTkFBc2dCU0FFTmdJUUN5QUVJQUUyQWhnZ0JDQUVOZ0lNSUFRZ0JEWUNDQXdEQ3lBQktBSUlJZ0FnQmpZQ0RDQUJJQVkyQWdnZ0JrRUFOZ0lZSUFZZ0FUWUNEQ0FHSUFBMkFnZ0xJQWRCQ0dvaEFBd0ZDeUFCS0FJSUlnQWdCRFlDRENBQklBUTJBZ2dnQkVFQU5nSVlJQVFnQVRZQ0RDQUVJQUEyQWdnTFFhendBQ2dDQUNJQUlBWk5EUUJCclBBQUlBQWdCbXNpQVRZQ0FFRzQ4QUJCdVBBQUtBSUFJZ0FnQm1vaUFqWUNBQ0FDSUFGQkFYSTJBZ1FnQUNBR1FRTnlOZ0lFSUFCQkNHb2hBQXdEQzBHUTZ3QkJNRFlDQUVFQUlRQU1BZ3NDUUNBSFJRMEFBa0FnQXlnQ0hDSUFRUUowUWREeUFHb2lBU2dDQUNBRFJnUkFJQUVnQWpZQ0FDQUNEUUZCcFBBQUlBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBTkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQXlnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dBeWdDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdCRUVQVFFSQUlBTWdCQ0FHYWlJQVFRTnlOZ0lFSUFBZ0Eyb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBTWdCa0VEY2pZQ0JDQURJQVpxSWdJZ0JFRUJjallDQkNBQ0lBUnFJQVEyQWdBZ0JFSC9BVTBFUUNBRVFYaHhRY2p3QUdvaEFBSi9RYUR3QUNnQ0FDSUJRUUVnQkVFRGRuUWlCSEZGQkVCQm9QQUFJQUVnQkhJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQkVILy8vOEhUUVJBSUFSQkNIWWlBQ0FBUVlEK1AycEJFSFpCQ0hFaUFIUWlBU0FCUVlEZ0gycEJFSFpCQkhFaUFYUWlCU0FGUVlDQUQycEJFSFpCQW5FaUJYUkJEM1lnQUNBQmNpQUZjbXNpQUVFQmRDQUVJQUJCRldwMlFRRnhja0VjYWlFQUN5QUNJQUEyQWh3Z0FrSUFOd0lRSUFCQkFuUkIwUElBYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCWEZGQkVCQnBQQUFJQVVnQ0hJMkFnQWdBU0FDTmdJQURBRUxJQVJCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCZ05BSUFZaUFTZ0NCRUY0Y1NBRVJnMENJQUJCSFhZaEJTQUFRUUYwSVFBZ0FTQUZRUVJ4YWlJRktBSVFJZ1lOQUFzZ0JTQUNOZ0lRQ3lBQ0lBRTJBaGdnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFCS0FJSUlnQWdBallDRENBQklBSTJBZ2dnQWtFQU5nSVlJQUlnQVRZQ0RDQUNJQUEyQWdnTElBTkJDR29oQUF3QkN3SkFJQWxGRFFBQ1FDQUNLQUljSWdCQkFuUkIwUElBYWlJQktBSUFJQUpHQkVBZ0FTQUROZ0lBSUFNTkFVR2s4QUFnQ2tGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0F6WUNBQ0FEUlEwQkN5QURJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0F5QUFOZ0lRSUFBZ0F6WUNHQXNnQWlnQ0ZDSUFSUTBBSUFNZ0FEWUNGQ0FBSUFNMkFoZ0xBa0FnQkVFUFRRUkFJQUlnQkNBR2FpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQmtFRGNqWUNCQ0FDSUFacUlnTWdCRUVCY2pZQ0JDQURJQVJxSUFRMkFnQWdCd1JBSUFkQmVIRkJ5UEFBYWlFQVFiVHdBQ2dDQUNFQkFuOUJBU0FIUVFOMmRDSUdJQVZ4UlFSQVFhRHdBQ0FGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQlNBQUlBRTJBZ2dnQlNBQk5nSU1JQUVnQURZQ0RDQUJJQVUyQWdnTFFiVHdBQ0FETmdJQVFhandBQ0FFTmdJQUN5QUNRUWhxSVFBTElBdEJFR29rQUNBQUMwVUJBWDhqQUVFUWF5SUVJQUE2QUE4Z0JDQUJPZ0FPSUFRZ0Fqb0FEU0FFSUFNNkFBd2dCQzBBRHlBRUxRQU9RUWgwY2lBRUxRQU5RUkIwY2lBRUxRQU1RUmgwY2dzMEFnRi9BWDRqQUVFUWF5SUJKQUFnQVNBQU5nSU1JQUVnQVNnQ0RFRUlFQjRnQVNrREFCRFdBU0VDSUFGQkVHb2tBQ0FDQ3pRQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3dpQUJBWUtBSUFJQUFvQWdCclFRTjFJUUFnQVVFUWFpUUFJQUFMSmdFQmZ5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTZ0NEQkJTSVFBZ0FVRVFhaVFBSUFBTFB3RUJmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBaUFCTmdJSUlBSW9BZ3dpQUNBQ0tBSUlFRUlRWXlBQ0tBSUlFQ1lhSUFBUUZ4b2dBa0VRYWlRQUMvNEZBUXAvSXdCQkVHc2lCQ1FBSUFRZ0FEWUNDQ0FFSUFFMkFnUWpBRUVRYXlJQUlBUW9BZ1EyQWd3Q1FDQUFLQUlNUVFoTEJFQWdCQ0FFS0FJRU5nSUFJQVFvQWdnaEFTQUVLQUlBSVFBakFFRVFheUlHSkFBZ0JpQUJOZ0lNSUFZZ0FEWUNDRUVFSUFZb0FnZ2lBQ0FBUVFSTkd5RUZJQVlvQWd3aUFFRUJJQUFiSVFFRFFBSkFJd0JCRUdzaUJ5UUFJQWRCQURZQ0RBSkFBbjhnQlVFSVJnUkFJQUVRT3d3QkN5QUZRUVJKRFFFZ0JVRURjUTBCSUFWQkFuWWlBQ0FBUVFGcmNRMEJRVUFnQldzZ0FVa05BUUovUVJBaEF3SkFRUkJCRUNBRklBVkJFRTBiSWdBZ0FFRVFUUnNpQWlBQ1FRRnJjVVVFUUNBQ0lRQU1BUXNEUUNBRElnQkJBWFFoQXlBQUlBSkpEUUFMQ3lBQlFVQWdBR3RQQkVCQmtPc0FRVEEyQWdCQkFBd0JDMEVBUVJBZ0FVRUxha0Y0Y1NBQlFRdEpHeUlJSUFCcVFReHFFRHNpQWtVTkFCb2dBa0VJYXlFREFrQWdBRUVCYXlBQ2NVVUVRQ0FESVFBTUFRc2dBa0VFYXlJTEtBSUFJZ3BCZUhFZ0FDQUNha0VCYTBFQUlBQnJjVUVJYXlJQ0lBQkJBQ0FDSUFOclFROU5HMm9pQUNBRGF5SUpheUVDSUFwQkEzRkZCRUFnQXlnQ0FDRURJQUFnQWpZQ0JDQUFJQU1nQ1dvMkFnQU1BUXNnQUNBQ0lBQW9BZ1JCQVhGeVFRSnlOZ0lFSUFBZ0Ftb2lBaUFDS0FJRVFRRnlOZ0lFSUFzZ0NTQUxLQUlBUVFGeGNrRUNjallDQUNBRElBbHFJZ0lnQWlnQ0JFRUJjallDQkNBRElBa1F5d0VMQWtBZ0FDZ0NCQ0lDUVFOeFJRMEFJQUpCZUhFaUF5QUlRUkJxVFEwQUlBQWdDQ0FDUVFGeGNrRUNjallDQkNBQUlBaHFJZ29nQXlBSWF5SUNRUU55TmdJRUlBQWdBMm9pQXlBREtBSUVRUUZ5TmdJRUlBb2dBaERMQVFzZ0FFRUlhZ3NMSWdCRkRRQWdCeUFBTmdJTUN5QUhLQUlNSVFNZ0IwRVFhaVFBSUFNTkFFR1E5QUFvQWdBaUFFVU5BQ0FBRVFrQURBRUxDeUFHUVJCcUpBQWdCQ0FETmdJTURBRUxJQVFvQWdnaEFDTUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTZ0NEQkF2SVFBZ0FVRVFhaVFBSUFRZ0FEWUNEQXNnQkNnQ0RDRUFJQVJCRUdva0FDQUFDejRCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFZ0FTZ0NEQ0lBRUJjb0FnQTJBZ2dnQUJBWFFRQTJBZ0FnQVNnQ0NDRUFJQUZCRUdva0FDQUFDNEVDQVFKL0l3QkJFR3NpQXlRQUlBTWdBRFlDRENBRElBRTJBZ2dnQXlBQ05nSUVJd0JCRUdzaUFDQURLQUlFTmdJTUFrQWdBQ2dDREVFSVN3UkFJQU1nQXlnQ0JEWUNBQ0FES0FJTUlRRWdBeWdDQ0NFQ0lBTW9BZ0FoQkNNQVFSQnJJZ0FrQUNBQUlBRTJBZ3dnQUNBQ05nSUlJQUFnQkRZQ0JDQUFLQUlNSVFJZ0FDZ0NCQ0VFSXdCQkVHc2lBU1FBSUFFZ0FqWUNEQ0FCSUFRMkFnZ2dBU2dDQ0JvTUFRc2dBeWdDRENFQklBTW9BZ2doQWlNQVFSQnJJZ0FrQUNBQUlBRTJBZ3dnQUNBQ05nSUlJQUFvQWd3aEFpTUFRUkJySWdFa0FDQUJJQUkyQWd3TElBRW9BZ3dRSWlBQlFSQnFKQUFnQUVFUWFpUUFJQU5CRUdva0FBcy9BUUYvSXdCQkVHc2lBaVFBSUFJZ0FEWUNEQ0FDSUFFMkFnZ2dBaWdDQ0NFQUl3QkJFR3NpQVNBQ0tBSU1OZ0lNSUFFZ0FEWUNDQ0FDUVJCcUpBQUxVZ0VDZjBHczZRQW9BZ0FpQVNBQVFRZHFRWGh4SWdKcUlRQUNRQ0FDUVFBZ0FDQUJUUnNOQUNBQVB3QkJFSFJMQkVBZ0FCQVBSUTBCQzBHczZRQWdBRFlDQUNBQkR3dEJrT3NBUVRBMkFnQkJmd3Z3QWdJQ2Z3RitBa0FnQWtVTkFDQUFJQUU2QUFBZ0FDQUNhaUlEUVFGcklBRTZBQUFnQWtFRFNRMEFJQUFnQVRvQUFpQUFJQUU2QUFFZ0EwRURheUFCT2dBQUlBTkJBbXNnQVRvQUFDQUNRUWRKRFFBZ0FDQUJPZ0FESUFOQkJHc2dBVG9BQUNBQ1FRbEpEUUFnQUVFQUlBQnJRUU54SWdScUlnTWdBVUgvQVhGQmdZS0VDR3dpQURZQ0FDQURJQUlnQkd0QmZIRWlBbW9pQVVFRWF5QUFOZ0lBSUFKQkNVa05BQ0FESUFBMkFnZ2dBeUFBTmdJRUlBRkJDR3NnQURZQ0FDQUJRUXhySUFBMkFnQWdBa0VaU1EwQUlBTWdBRFlDR0NBRElBQTJBaFFnQXlBQU5nSVFJQU1nQURZQ0RDQUJRUkJySUFBMkFnQWdBVUVVYXlBQU5nSUFJQUZCR0dzZ0FEWUNBQ0FCUVJ4cklBQTJBZ0FnQWlBRFFRUnhRUmh5SWdGcklnSkJJRWtOQUNBQXJVS0JnSUNBRUg0aEJTQUJJQU5xSVFFRFFDQUJJQVUzQXhnZ0FTQUZOd01RSUFFZ0JUY0RDQ0FCSUFVM0F3QWdBVUVnYWlFQklBSkJJR3NpQWtFZlN3MEFDd3NMTVFFQmZ5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTZ0NEQ0lBRUJnb0FnQWdBQ2dDQUdzaEFDQUJRUkJxSkFBZ0FBczhBUUovSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCS0FJTVFRUnFFQmNoQUNNQVFSQnJJZ0lnQURZQ0RDQUNLQUlNSVFBZ0FVRVFhaVFBSUFBTFJBRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnZ0NRQ0FCS0FJSUtBSThSUVJBSUFFUTNBRTJBZ3dNQVFzZ0FVRUFOZ0lNQ3lBQktBSU1JUUFnQVVFUWFpUUFJQUFMb0FFQkEzOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSU1JUUVnQWlnQ0NDRURJd0JCRUdzaUFDUUFJQUFnQVRZQ0JDQUFJQU0yQWdBQ2Z5QUFLQUlFSVFNZ0FDZ0NBQ0VFSXdCQkVHc2lBU0FBUVFocU5nSU1JQUVnQXpZQ0NDQUJJQVEyQWdRZ0FTZ0NDQ2dDQUNBQktBSUVLQUlBU1FSQUlBQW9BZ0FNQVFzZ0FDZ0NCQXNoQVNBQVFSQnFKQUFnQWtFUWFpUUFJQUVMQmdBZ0FCQWlDejBCQVg4akFFRVFheUlDSkFBZ0FpQUFOZ0lNSUFJZ0FUWUNDQ0FDSUFJb0FnZ1E2UUUyQWdnZ0FpZ0NEQ0FDUVFocVFRUVFIaUFDUVJCcUpBQUxtd0VCQW44akFFRVFheUlDSkFBZ0FpQUFOZ0lNSUFJZ0FUWUNDQ0FDUVFBMkFnUURRQ0FDS0FJRVFRaEpCRUFnQWlnQ0JFRUNkQ0lBSUFJb0FneHFLQUlBSVFFZ0FDQUNLQUlJYWlnQ0FDRURJd0JCRUdzaUFDQUJOZ0lNSUFBZ0F6WUNDQ0FBS0FJTUlBQW9BZ2h6SVFBZ0FpZ0NEQ0FDS0FJRVFRSjBhaUFBTmdJQUlBSWdBaWdDQkVFQmFqWUNCQXdCQ3dzZ0FrRVFhaVFBQzlnQ0FRRi9Jd0JCSUdzaUFpUUFJQUlnQURZQ0hDQUNJQUUyQWhnZ0FpZ0NIQ0lBSUFJb0FoZ2lBU2tBQURjQUFDQUFJQUVwQUFnM0FBZ2dBaUFDS0FJY0tBSUFFR3cyQWhRZ0FpQUNLQUljS0FJRUVHdzJBaEFnQWlBQ0tBSWNLQUlJRUd3MkFnd2dBaUFDS0FJY0tBSU1FR3cyQWdnZ0FpZ0NGRUgvQVhFZ0FpZ0NFRUgvQVhFZ0FpZ0NERUgvQVhFZ0FpZ0NDRUgvQVhFUVBDRUFJQUlvQWh3Z0FEWUNBQ0FDS0FJVVFRaDJRZjhCY1NBQ0tBSVFRUWgyUWY4QmNTQUNLQUlNUVFoMlFmOEJjU0FDS0FJSVFRaDJRZjhCY1JBOElRQWdBaWdDSENBQU5nSUVJQUlvQWhSQkVIWkIvd0Z4SUFJb0FoQkJFSFpCL3dGeElBSW9BZ3hCRUhaQi93RnhJQUlvQWdoQkVIWkIvd0Z4RUR3aEFDQUNLQUljSUFBMkFnZ2dBaWdDRkVFWWRpQUNLQUlRUVJoMklBSW9BZ3hCR0hZZ0FpZ0NDRUVZZGhBOElRQWdBaWdDSENBQU5nSU1JQUpCSUdva0FBczBBUUYvSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCS0FJTUlnQVFHQ2dDQUNBQUtBSUFhMEVNYlNFQUlBRkJFR29rQUNBQUM1Z09BUkIvSXdCQkVHc2lCeVFBSUFjZ0FEWUNEQ0FISUFFMkFnZ2dCeUFDTmdJRUFrQWdCeWdDRENJS0tBSUVJQW9RR0NnQ0FFa0VRQ0FIS0FJSUlRRWdCeWdDQkNFQ0l3QkJJR3NpQUNRQUlBQWdDallDSENBQUlBRTJBaGdnQUNBQ05nSVVJQUFvQWh3aUF5RUNJd0JCRUdzaUFTQUFRUWhxSWdRMkFnd2dBU0FDTmdJSUlBRkJBVFlDQkNBQktBSU1JZ0lnQVNnQ0NEWUNBQ0FDSUFFb0FnZ29BZ1EyQWdRZ0FpQUJLQUlJS0FJRUlBRW9BZ1JCQTNScU5nSUlJQU1RR0NFTkl3QkJFR3NpQVNBQUtBSU1OZ0lNSUEwZ0FTZ0NEQ0FBS0FJWUlBQW9BaFFRaHdJZ0FDQUFLQUlNUVFocU5nSU1Jd0JCRUdzaUFTQUVOZ0lNSUFFb0Fnd2lBU2dDQUNBQktBSUVOZ0lFSUFCQklHb2tBQXdCQ3lBSEtBSUlJUUFnQnlnQ0JDRUNJd0JCTUdzaUFTUUFJQUVnQ2pZQ0xDQUJJQUEyQWlnZ0FTQUNOZ0lrSUFFZ0FTZ0NMQ0lGRUJnMkFpQWpBRUVRYXlJQUlBVTJBZ3dnQUNnQ0RDSUFLQUlFSUFBb0FnQnJRUU4xUVFGcUlRSWpBRUVnYXlJQUpBQWdBQ0FGTmdJWUlBQWdBallDRkNBQUtBSVlJUU1qQUVFUWF5SUNKQUFnQWlBRE5nSU1JQUlvQWd3UUdDRUlJd0JCRUdzaUJDUUFJQVFnQ0RZQ0RDTUFRUkJySUFRb0FndzJBZ3dnQkVFUWFpUUFJQUpCLy8vLy93RTJBZ2dnQWtILy8vLy9CellDQkNBQ1FRaHFJQUpCQkdvUVpDZ0NBQ0VFSUFKQkVHb2tBQ0FBSUFRMkFoQWdBQ2dDRkNBQUtBSVFTd1JBSUFNUVpRQUxJQUZCQ0dvaENDQUFJQU1RUGpZQ0RBSkFJQUFvQWd3Z0FDZ0NFRUVCZGs4RVFDQUFJQUFvQWhBMkFod01BUXNnQUNBQUtBSU1RUUYwTmdJSUlBQWdBRUVJYWlBQVFSUnFFRW9vQWdBMkFod0xJQUFvQWh3aEFpQUFRU0JxSkFBakFDSUFRUkJySWdNZ0JUWUNEQ0FES0FJTUlnTW9BZ1FnQXlnQ0FHdEJBM1VoQXlBQktBSWdJUVFnQUVFZ2F5SUFKQUFnQUNBSU5nSVlJQUFnQWpZQ0ZDQUFJQU0yQWhBZ0FDQUVOZ0lNSUFBZ0FDZ0NHQ0lDTmdJY0lBQkJBRFlDQ0NBQ1FReHFJQUJCQ0dvZ0FDZ0NEQkNJQVNBQ0FuOGdBQ2dDRkFSQUlBSVFNaUVESUFBb0FoUWhCaU1BUVJCcklnUWtBQ0FFSUFNMkFnd2dCQ0FHTmdJSUlBUW9BZ3doQmlBRUtBSUlJUWtqQUVFUWF5SURKQUFnQXlBR05nSU1JQU1nQ1RZQ0NDQURLQUlJSVE0Z0F5Z0NEQ0VKSXdCQkVHc2lCaVFBSUFZZ0NUWUNEQ01BUVJCcklBWW9BZ3cyQWd3Z0JrRVFhaVFBSUE1Qi8vLy8vd0ZMQkVBUU9RQUxJQU1vQWdoQkEzUkJCQkJCSVFZZ0EwRVFhaVFBSUFZaEF5QUVRUkJxSkFBZ0F3d0JDMEVBQ3pZQ0FDQUNJQUlvQWdBZ0FDZ0NFRUVEZEdvaUF6WUNDQ0FDSUFNMkFnUWdBaWdDQUNBQUtBSVVRUU4wYWlFRElBSVFIU0FETmdJQUlBQW9BaHdhSUFCQklHb2tBQ0FCS0FJZ0lROGpBRUVRYXlJQUlBRW9BaEEyQWd3Z0R5QUFLQUlNSUFFb0FpZ2dBU2dDSkJDSEFpQUJJQUVvQWhCQkNHbzJBaEFqQUVFUWF5SUNKQUFnQWlBRk5nSU1JQUlnQ0RZQ0NDQUNLQUlNSWdNUW13SWdBeEFZSVFRZ0F5Z0NBQ0VGSUFNb0FnUWhCaUFDS0FJSVFRUnFJUWtqQUVFZ2F5SUFKQUFnQUNBRU5nSWNJQUFnQlRZQ0dDQUFJQVkyQWhRZ0FDQUpOZ0lRSUFBZ0FDZ0NGQ0FBS0FJWWEwRURkVFlDRENBQUtBSVFJZ1FnQkNnQ0FFRUFJQUFvQWd4clFRTjBhallDQUNBQUtBSU1RUUJLQkVBZ0FDZ0NFQ2dDQUNBQUtBSVlJQUFvQWd4QkEzUVFHeG9MSUFCQklHb2tBQ0FESUFJb0FnaEJCR29RTFNBRFFRUnFJQUlvQWdoQkNHb1FMU0FERUJnZ0FpZ0NDQkFkRUMwZ0FpZ0NDQ0FDS0FJSUtBSUVOZ0lBSXdCQkVHc2lBQ0FETmdJTUlBQW9BZ3dpQkNnQ0JDQUVLQUlBYTBFRGRTRUVJQUFrQUNBQUlBTTJBZ3dnQUNBRU5nSUlJQUFvQWd3aUJCQVpJUVlnQkJBWklBUVFQa0VEZEdvaENTQUVFQmtnQkJBK1FRTjBhaUVMSUFRUUdTQUFLQUlJUVFOMGFpRU1Jd0JCSUdzaUJTQUVOZ0ljSUFVZ0JqWUNHQ0FGSUFrMkFoUWdCU0FMTmdJUUlBVWdERFlDRENBQVFSQnFKQUFqQUVFUWF5QUROZ0lNSUFKQkVHb2tBQ01BUVJCcklnQWtBQ0FBSUFnMkFnZ2dBQ0FBS0FJSUlnSTJBZ3dqQUVFUWF5SUlKQUFnQ0NBQ05nSU1JQWdvQWd3aUF5RUVJQU1vQWdRaEJTTUFRUkJySWdNa0FDQURJQVEyQWd3Z0F5QUZOZ0lJSUFNb0Fnd2hCU0FES0FJSUlRWWpBRUVRYXlJRUpBQWdCQ0FGTmdJRUlBUWdCallDQUNBRUtBSUVJUVVEUUNBRUtBSUFJQVVvQWdoSEJFQWdCUkF5SVFZZ0JTQUZLQUlJUVFocklnazJBZ2dnQmlFUUl3QkJFR3NpQmlBSk5nSU1JQkFnQmlnQ0RCQkVEQUVMQ3lBRVFSQnFKQUFnQTBFUWFpUUFJQWhCRUdva0FDQUNLQUlBQkVBZ0FoQXlJUklnQWlnQ0FDRVJJd0JCRUdzaUF5UUFJQU1nQWpZQ0RDQURLQUlNSWdJUUhTZ0NBQ0FDS0FJQWEwRURkU0VDSUFOQkVHb2tBQ0FTSUJFZ0FoQ3BBUXNnQUNnQ0RCb2dBRUVRYWlRQUlBRkJNR29rQUFzakFFRVFheUlBSUFvMkFnd2dBQ2dDRENnQ0JCb2dCMEVRYWlRQUMzWUJBMzhqQUVFUWF5SUNKQUFnQWlBQU5nSU1JQUlvQWd3aEFTTUFRUkJySWdBa0FDQUFJQUUyQWd3Z0FDZ0NEQ2dDQUJBWFFRaHFJUUVqQUVFUWF5SURJQUUyQWd3Z0F5Z0NEQ0VCSUFCQkVHb2tBQ0FCRUNZaEFDTUFRUkJySWdFZ0FEWUNEQ0FCS0FJTUlRQWdBa0VRYWlRQUlBQUxOZ0VCZnlNQVFSQnJJZ0VrQUNBQklBQTJBZ3dqQUVFUWF5SUFJQUVvQWd4QkJHbzJBZ3dnQUNnQ0RDRUFJQUZCRUdva0FDQUFDN3NCQVFKL0l3QkJFR3NpQXlRQUlBTWdBRFlDRENBRElBRTJBZ2dnQXlBQ05nSUVJQU1vQWd3aEFTQURLQUlFSVFJakFFRVFheUlBSkFBZ0FDQUJOZ0lNSUFBZ0EwRUlhallDQ0NBQUlBSTJBZ1FnQUNnQ0NDRUNJd0JCRUdzaUFTQUFLQUlNSWdRMkFnd2dBU0FDTmdJSUlBRW9BZ3dnQVNnQ0NDZ0NBRFlDQUNBQUtBSUVJUUlqQUVFUWF5SUJJQVJCQkdvMkFnd2dBU0FDTmdJSUlBRW9BZ3dnQVNnQ0NDa0NBRGNDQUNBQVFSQnFKQUFnQTBFUWFpUUFDem9CQVg4akFFRVFheUlESUFBMkFnd2dBeUFCTmdJSUlBTWdBam9BQnlBREtBSU1JZ0FnQXlnQ0NEWUNBQ0FBSUFNdEFBZEJBWEU2QUFRTFRnRURmeU1BUVJCcklnRWtBQ0FCSUFBMkFneEJDQkF2SVFBZ0FTZ0NEQ0lDS0FJQUlRTWdBQ0FDS0FJRU5nSUVJQUFnQXpZQ0FDQUJJQUEyQWdnZ0FTZ0NDQ0VBSUFGQkVHb2tBQ0FBQ3pRQkFuOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUl3QkJFR3NpQUNBQktBSU1JZ0kyQWd3Z0FDZ0NEQm9nQVVFUWFpUUFJQUlMbGdJQkFYOGpBRUVnYXlJQkpBQWdBU0FBTmdJWUFrQUNRRUc0NmdBb0FnQUVRRUc4NmdBb0FnQkZCRUJCMFJoQnJSTkI2UUZCelJBUUFBQUxRY0RxQUNnQ0FFVUVRRUd4R0VHdEUwSHFBVUhORUJBQUFBc2dBU0FCS0FJWVFianFBQ2dDQUJFQUFEWUNGQUpBSUFFb0FoUU5BQ0FCS0FJWVJRMEFEQUlMSUFFZ0FTZ0NGRFlDSEF3Q0N5QUJLQUlZSWdCQkNHb2dBRWtFUUNBQlFhQTJMUUFBT2dBVERBRUxJQUVnQVNnQ0dFRUlhaEE3TmdJTUlBRW9BZ3hGRFFBZ0FTZ0NEQ0FCS0FJWU5nSUFJd0JCRUdzaUFDQUJLQUlNTmdJTUlBQkJDRFlDQ0NBQklBRW9BZ3hCQ0dvMkFod01BUXRCRGtIQkFFR3RFMEdLQWhBY0lBRkJBRFlDSEFzZ0FTZ0NIQ0VBSUFGQklHb2tBQ0FBQzBjQkFYOGpBRUVRYXlJREpBQWdBeUFBTmdJTUlBTWdBVFlDQ0NBRElBSTJBZ1FnQXlnQ0RDSUFJQU1vQWdnZ0F5Z0NCQ0FBS0FJQUtBSVFFUU1BSUFOQkVHb2tBRUVCQzE4QkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3dpQUNBQVFRUnFFR29nQVNnQ0RFRUlhaUFCS0FJTVFReHFFR29nQVNnQ0RFRVFhaUFCS0FJTVFSUnFFR29nQVNnQ0RFRVlhaUFCS0FJTVFSeHFFR29nQVVFUWFpUUFDMmNCQVg4akFFRXdheUlDSkFBZ0FpQUFOZ0lzSUFJZ0FUWUNLQ0FDUWdBM0F5QWdBa0lBTndNWUlBSkNBRGNERUNBQ1FnQTNBd2dnQWtFSWFpSUFJQUlvQWloQkFCQ2FBU0FBRUZrZ0FCQjJJQUFRV1NBQUlBSW9BaXhCQUJEc0FTQUNRVEJxSkFBTHRRUUJBWDhqQUVIUUFHc2lBeVFBSUFNZ0FEWUNUQ0FESUFFMkFrZ2dBeUFDTmdKRUlBTWdBeWdDUkNJQUtRSVlOd000SUFNZ0FDa0NFRGNETUNBRElBQXBBZ2czQXlnZ0F5QUFLUUlBTndNZ0lBTkJJR29RV1NBREtBSklRUUpMQkVCQjhCaEIzQkJCN3dOQjVRd1FBQUFMSUFOQkFEWUNIQU5BSUFNb0Fod2dBeWdDU0VrRVFDQURRU0JxSUFNZ0F5Z0NIQkRzQVNBREtBSk1JQU1vQWh4QkJIUnFJUUVqQUVFd2F5SUFKQUFnQUNBQk5nSXNJQUFnQXpZQ0tDQUFJQUFvQWlnb0FnQTJBaVFnQUNBQUtBSW9LQUlFTmdJZ0lBQWdBQ2dDS0NnQ0NEWUNIQ0FBSUFBb0FpZ29BZ3cyQWhnZ0FDQUFLQUlrUWY4QmNTQUFLQUlnUWY4QmNTQUFLQUljUWY4QmNTQUFLQUlZUWY4QmNSQThOZ0lVSUFBZ0FDZ0NKRUVJZGtIL0FYRWdBQ2dDSUVFSWRrSC9BWEVnQUNnQ0hFRUlka0gvQVhFZ0FDZ0NHRUVJZGtIL0FYRVFQRFlDRUNBQUlBQW9BaVJCRUhaQi93RnhJQUFvQWlCQkVIWkIvd0Z4SUFBb0FoeEJFSFpCL3dGeElBQW9BaGhCRUhaQi93RnhFRHcyQWd3Z0FDQUFLQUlrUVJoMklBQW9BaUJCR0hZZ0FDZ0NIRUVZZGlBQUtBSVlRUmgyRUR3MkFnZ2dBQ0FBS0FJVUVHazJBaFFnQUNBQUtBSVFFR2syQWhBZ0FDQUFLQUlNRUdrMkFnd2dBQ0FBS0FJSUVHazJBZ2dnQUNnQ0xDQUFLQUlVTmdBQUlBQW9BaXdnQUNnQ0VEWUFCQ0FBS0FJc0lBQW9BZ3cyQUFnZ0FDZ0NMQ0FBS0FJSU5nQU1JQUJCTUdva0FDQURJQU1vQWh4QkFXbzJBaHdNQVFzTElBTkIwQUJxSkFBTHRBRUJBWDhqQUVFZ2F5SURKQUFnQXlBQU5nSWNJQU1nQVRZQ0dDQURJQUkyQWhRZ0F5Z0NIQ0lBUWdBM0FnQWdBRUlBTndJWUlBQkNBRGNDRUNBQVFnQTNBZ2dnQXlnQ0ZFRUNTd1JBUWZBWVFkd1FRZDREUWRNTUVBQUFDeUFEUVFBMkFoQURRQ0FES0FJUUlBTW9BaFJQUlFSQUlBTWdBeWdDR0NBREtBSVFRUVIwYWhCT0lBTW9BaHdnQXlBREtBSVFFSm9CSUFNZ0F5Z0NFRUVCYWpZQ0VBd0JDd3NnQXlnQ0hCQlpJQU5CSUdva0FBdXVBUUVEZnlNQVFSQnJJZ0lrQUNBQ0lBQTJBZ3dnQWlnQ0RDRUFJd0JCRUdzaUF5UUFJQU1nQURZQ0RDQURLQUlNSVFFakFFRVFheUlBSkFBZ0FDQUJOZ0lNSUFCQkFEWUNDQ0FBUVFBMkFnUWdBQ2dDRENFQklBQkJBRFlDQUFOQUlBQW9BZ0FnQVNnQ0JFa0VRQ0FBSUFBb0FnQkJBV28yQWdBTUFRc0xJQUVvQWdBUUtDQUJJQUFvQWdnMkFnQWdBU0FBS0FJRU5nSUVJQUJCRUdva0FDQURRUkJxSkFBZ0FrRVFhaVFBQ3pRQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3dpQUJBWUtBSUFJQUFvQWdCclFRSjFJUUFnQVVFUWFpUUFJQUFMa2dFQkEzOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSU1JUUVqQUVFUWF5SUFKQUFnQUNBQk5nSU1JQUFnQWtFSWFqWUNDQ0FBSUFJMkFnUWdBQ2dDQ0NFREl3QkJFR3NpQVNBQUtBSU1JZ1EyQWd3Z0FTQUROZ0lJSUFFb0Fnd2dBU2dDQ0NnQ0FEWUNBQ01BUVJCcklnRWdCRFlDQkNBQktBSUVHaUFBUVJCcUpBQWdBa0VRYWlRQUN5a0JBWDhqQUVFUWF5SUJKQUFnQVNBQU5nSU1JQUVvQWd4QkJHb1FGeUVBSUFGQkVHb2tBQ0FBQzBBQkFYOGpBRUVRYXlJRElBQTJBZ3dnQXlBQk5nSUlJQU1nQWpZQ0JDQURLQUlNSWdBZ0F5Z0NDQ2dDQURZQ0FDQUFJQU1vQWdRdEFBQkJBWEU2QUFRTDN3RUJCbjhqQUVFUWF5SURKQUFnQXlBQU5nSU1JQU1vQWd3aEFTTUFRUkJySWdBa0FDQUFJQUUyQWd3Z0FFRUFOZ0lJSUFBZ0FDZ0NEQ0lCRUJjb0FnQTJBZ1FnQUNnQ0NDRUNJQUVRRnlBQ05nSUFJQUFvQWdRRVFDQUJFRkloQWlBQUtBSUVJUVFqQUVFUWF5SUJKQUFnQVNBQ05nSU1JQUVnQkRZQ0NDQUJLQUlNSWdJdEFBUkJBWEVFUUNBQ0tBSUFJUVFnQVNnQ0NFRVFhaEFzSVFVakFFRVFheUlHSUFRMkFnd2dCaUFGTmdJSUN5QUJLQUlJQkVBZ0FpZ0NBQ0FCS0FJSUVMSUJDeUFCUVJCcUpBQUxJQUJCRUdva0FDQURRUkJxSkFBTFZ3RUJmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBaUFCTmdJSUlBSWdBaWdDRENJQUVCY29BZ0EyQWdRZ0FpZ0NDQ0VCSUFBUUZ5QUJOZ0lBSUFJb0FnUUVRQ0FBRUJjZ0FpZ0NCQkM0QVFzZ0FrRVFhaVFBQzZBQkFRTi9Jd0JCRUdzaUFpUUFJQUlnQURZQ0RDQUNJQUUyQWdnZ0FpZ0NEQ0VCSUFJb0FnZ2hBeU1BUVJCcklnQWtBQ0FBSUFFMkFnUWdBQ0FETmdJQUFuOGdBQ2dDQUNFRElBQW9BZ1FoQkNNQVFSQnJJZ0VnQUVFSWFqWUNEQ0FCSUFNMkFnZ2dBU0FFTmdJRUlBRW9BZ2dvQWdBZ0FTZ0NCQ2dDQUVrRVFDQUFLQUlBREFFTElBQW9BZ1FMSVFFZ0FFRVFhaVFBSUFKQkVHb2tBQ0FCQ3lnQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUl3QkJFR3NpQUNRQUlBQkJvZ3MyQWd3UUF3QUxTUUVDZnlBQUtBSUVJZ1ZCQ0hVaEJpQUFLQUlBSWdBZ0FTQUZRUUZ4Qkg4Z0JpQUNLQUlBYWlnQ0FBVWdCZ3NnQW1vZ0EwRUNJQVZCQW5FYklBUWdBQ2dDQUNnQ0dCRUlBQXROQVFGL0l3QkJFR3NpQWlRQUlBSWdBRFlDRENBQ0lBRTJBZ2dnQWlnQ0NDRUFJQUlvQWd3aUFTZ0NBRUhmdDk2YUFVY0VRQ0FBRVFrQUlBRkIzN2ZlbWdFMkFnQUxJQUpCRUdva0FBdVNBZ0VGZnlNQVFTQnJJZ0VrQUNBQklBQTJBaGdnQVNBQktBSVlOZ0lVSXdCQkVHc2lBQ0FCS0FJVU5nSU1JQUFnQUNnQ0RDZ0NBRFlDQ0NBQklBQW9BZ2cyQWhBRFFDQUJLQUlRUlFSQUVBTUFDd0pBSUFFb0FoQkJmMFlFUUNBQlFRQTJBaHdNQVFzZ0FTQUJLQUlRUVFGck5nSU1JQUVvQWd3aEFpTUFRU0JySWdBZ0FTZ0NGRFlDSENBQUlBRkJFR28yQWhnZ0FDQUNOZ0lVSUFBb0Fod2hBeUFBS0FJWUlRUWdBQ0FBS0FJVU5nSVFJQU1vQWdBaUJTQUVLQUlBUmlFQ0lBTWdBQ2dDRUNBRklBSWJOZ0lBSUFKRkJFQWdCQ0FGTmdJQUN5QUFJQUk2QUE4Z0FDMEFEMEVCY1FSQUlBRWdBU2dDREVVMkFod01BUXNNQVFzTElBRW9BaHdoQUNBQlFTQnFKQUFnQUF0SkFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJJQUVvQWd4QjhPRURRUXdRYXpZQ0RDQUJJQUVvQWd4QnpJR3dCa0VHRUdzMkFnd2dBU2dDRENFQUlBRkJFR29rQUNBQUM0VUJBUUYvSXdCQklHc2lBaUFBTmdJY0lBSWdBVFlDR0NBQ1FkV3ExYW9GTmdJVUlBSkJBVFlDRUNBQ0lBSW9BaFEyQWd3Z0FpQUNLQUlNSUFJb0FoZ29BZ0FnQWlnQ0hDZ0NBQ0FDS0FJUWRuTnhOZ0lJSUFJb0Fod2lBQ0FBS0FJQUlBSW9BZ2dnQWlnQ0VIUnpOZ0lBSUFJb0FoZ2lBQ0FDS0FJSUlBQW9BZ0J6TmdJQUMwOEJBWDhqQUVFUWF5SURJQUEyQWd3Z0F5QUJOZ0lJSUFNZ0FqWUNCQ0FESUFNb0FnZ2dBeWdDRENJQUlBQWdBeWdDQkhaemNUWUNBQ0FES0FJQUlnQWdBeWdDREhNZ0FDQURLQUlFZEhNTFNRRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2dBU0FCS0FJTVFjeUJzQVpCQmhCck5nSU1JQUVnQVNnQ0RFSHc0UU5CREJCck5nSU1JQUVvQWd3aEFDQUJRUkJxSkFBZ0FBdEJBUUYvSXdCQkVHc2lBeVFBSUFNZ0FEWUNEQ0FESUFFMkFnZ2dBeUFDTmdJRUlBTW9BZ3doQUVIOEppQURLQUlJSUFNb0FnUVFCU0FEUVJCcUpBQWdBQXM2QVFGL0l3QkJFR3NpQWlRQUlBSWdBRFlDRENBQ0lBRTNBd0FnQWlBQ0tRTUFFTllCTndNQUlBSW9BZ3dnQWtFSUVCNGdBa0VRYWlRQUMwRUJBWDhqQUVFUWF5SURKQUFnQXlBQU5nSU1JQU1nQVRZQ0NDQURJQUkyQWdRZ0F5Z0NERUVFYWlBREtBSUlJQU1vQWdRUVdDRUFJQU5CRUdva0FDQUFDN0FFQVFGL0l3QkJ3QUZySWdja0FDQUhJQUEyQXJnQklBY2dBVFlDdEFFZ0J5QUNOZ0t3QVNBSElBTTJBcXdCSUFjZ0JEWUNxQUVnQnlBRk5nS2tBU0FISUFZMkFxQUJJd0JCRUdzaUFDQUhLQUt3QVRZQ0RDQUhJQUFvQWd3b0FnUTJBcHdCSUFkQkFEWUNTQ0FIUVFBMkFrQWdCeUFIS0FLY0FTSUFJQWNvQXJRQmFrRUJheUFBYmpZQ1RBSkFBa0FnQnlnQ3RBRWdCeWdDdEFFZ0J5Z0NuQUZxVFFSQUlBY29Ba3hCL3dGTkRRRUxRUjlCNUFCQnB4UkJ5UUFRSENBSFFRQTJBcndCREFFTElBZEJDR29pQUJEWkFRSkFJQUFnQnlnQ3JBRWdCeWdDcUFFZ0J5Z0NzQUVRa2dGRkRRQWdCMEVBTmdKRUEwQWdCeWdDUkNBSEtBSk1TUVJBSUFjZ0J5Z0NSRUVCYWpvQUJ3SkFJQWNvQWtSRkRRQWdCMEVJYWtFQVFRQkJBQkNTQVFSQUlBZEJDR29nQjBIUUFHb2dCeWdDbkFFUWJ3MEJDd3dEQ3lBSFFRaHFJQWNvQXFRQklBY29BcUFCRUc5RkRRSWdCMEVJYWlBSFFRZHFRUUVRYjBVTkFpQUhRUWhxSUFkQjBBQnFRUUFRMkFGRkRRSWdCeUFIS0FLY0FUWUNBQ0FIS0FJQUlBY29BclFCSUFjb0FraHJTd1JBSUFjZ0J5Z0N0QUVnQnlnQ1NHczJBZ0FMSUFjb0FyZ0JJQWNvQWtocUlBZEIwQUJxSUFjb0FnQVFIaUFISUFjb0FnQWdCeWdDU0dvMkFrZ2dCeUFIS0FKRVFRRnFOZ0pFREFFTEN5QUhRUUUyQWtBTElBZEJDR29RMXdFZ0J5Z0NRRUVCUndSQVFSOUJIRUduRkVIdEFCQWNDeUFISUFjb0FrQTJBcndCQ3lBSEtBSzhBU0VBSUFkQndBRnFKQUFnQUF0ekFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJLQUlNS0FJRUVDZ0NRQ0FCS0FJTUtBSUlSUTBBSUFFb0Fnd29BZ3dOQUVHeUYwR1VFVUhqQUVIVUN4QUFBQXNnQVNnQ0RDZ0NEQVJBSUFFb0Fnd2lBQ2dDQ0NBQUtBSU1LQUlBRVFFQUN5QUJLQUlNRUhJZ0FVRVFhaVFBQ3lZQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3hCQUVFUUVDRWdBVUVRYWlRQUN5VUJBWDhqQUVFUWF5SUJKQUFnQVNBQU5nSU1JQUVvQWd4QkFCQ1FBU0FCUVJCcUpBQUxzd0VCQVg4akFFRWdheUlESkFBZ0F5QUFOZ0ljSUFNZ0FUWUNHQ0FESUFJMkFoUWdBMEVBTmdJUUEwQWdBeWdDRUVFUVNRUkFJQU1nQXlnQ0dDQURLQUlRYWlnQUFEWUNEQ0FESUFNb0FoUWdBeWdDRUdvb0FBQTJBZ2dnQXlnQ0NDRUJJd0JCRUdzaUFDQURLQUlNTmdJTUlBQWdBVFlDQ0NBRElBQW9BZ3dnQUNnQ0NITTJBZ3dnQXlnQ0hDQURLQUlRYWlBREtBSU1OZ0FBSUFNZ0F5Z0NFRUVFYWpZQ0VBd0JDd3NnQTBFZ2FpUUFDM0FCQTM4akFFRVFheUlCSkFBZ0FTQUFOZ0lJSUFFZ0FTZ0NDQ0lBTmdJTUlBQVE0QUVnQUNnQ0FBUkFJd0JCRUdzaUFpUUFJQUlnQURZQ0RDQUNLQUlNSWdNZ0F5Z0NBQkRRQVNBQ1FSQnFKQUFnQUJBWUlBQW9BZ0FnQUJCSEVOUUJDeUFCS0FJTUdpQUJRUkJxSkFBTDJ5Z0JBMzhqQUVId0Eyc2lBU1FBSUFFZ0FEWUM3QU1nQVNBQktBTHNBeWdDSERZQzZBTWdBU0FCS0FMc0F5Z0NHRFlDNUFNZ0FTQUJLQUxzQXlnQ0ZEWUM0QU1nQVNBQktBTHNBeWdDRURZQzNBTWdBU0FCS0FMc0F5Z0NERFlDMkFNZ0FTQUJLQUxzQXlnQ0NEWUMxQU1nQVNBQktBTHNBeWdDQkRZQzBBTWdBU0FCS0FMc0F5Z0NBRFlDekFNZ0FTZ0MxQU1oQWlNQVFSQnJJZ0FnQVNnQzNBTTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQ3lBTWdBU2dDMEFNaEFpQUFJQUVvQXVnRE5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQXNRRElBRW9BdHdESVFJZ0FDQUJLQUxvQXpZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0xBQXlBQktBTFVBeUVDSUFBZ0FTZ0M2QU0yQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUN2QU1nQVNnQzRBTWhBaUFBSUFFb0F1UUROZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFyZ0RJQUVvQXN3RElRSWdBQ0FCS0FLNEF6WUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdLMEF5QUJLQUxjQXlFQ0lBQWdBU2dDdEFNMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljellDc0FNZ0FTZ0N5QU1oQWlBQUlBRW9Bc1FETmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBcXdESUFFb0F1Z0RJUUlnQUNBQktBSzBBellDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nS29BeUFCS0FMUUF5RUNJQUFnQVNnQ3RBTTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQ3BBTWdBU2dDdkFNaEFpQUFJQUVvQXFRRE5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQXFBRElBRW9BcXdESVFJZ0FDQUJLQUxZQXpZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0tjQXlBQktBTFVBeUVDSUFBZ0FTZ0NuQU0yQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUNtQU1nQVNnQzVBTWhBaUFBSUFFb0Fwd0ROZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFwUURJQUVvQXN3RElRSWdBQ0FCS0FLWUF6WUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdLUUF5QUJLQUs0QXlFQ0lBQWdBU2dDbUFNMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljellDakFNZ0FTZ0N3QU1oQWlBQUlBRW9BcFFETmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBb2dESUFFb0FvZ0RJUUlnQUNBQktBTE1BellDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nS0VBeUFCS0FLSUF5RUNJQUFnQVNnQ2pBTTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQ2dBTWdBU2dDdkFNaEFpQUFJQUVvQW93RE5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQXZ3Q0lBRW9Bb2dESVFJZ0FDQUJLQUs0QXpZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0w0QWlBQktBTDRBaUVDSUFBZ0FTZ0N4QU0yQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUM5QUlnQVNnQytBSWhBaUFBSUFFb0F1Z0ROZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkF2QUNJQUVvQXBnRElRSWdBQ0FCS0FLc0F6WUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h4TmdMc0FpQUJLQUtRQXlFQ0lBQWdBU2dDb0FNMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljVFlDNkFJZ0FTZ0M3QUloQWlBQUlBRW9BdWdDTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBdVFDSUFFb0Fzd0RJUUlnQUNBQktBS3dBellDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoeE5nTGdBaUFCS0FMc0FpRUNJQUFnQVNnQzRBSTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQzNBSWdBU2dDK0FJaEFpQUFJQUVvQXNRRE5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSEUyQXRnQ0lBRW9BclFESVFJZ0FDQUJLQUtrQXpZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHhOZ0xVQWlBQktBTFlBaUVDSUFBZ0FTZ0MxQUkyQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUMwQUlnQVNnQ2hBTWhBaUFBSUFFb0FxZ0ROZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hFMkFzd0NJQUVvQXRnQ0lRSWdBQ0FCS0FMTUFqWUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdMSUFpQUJLQUtJQXlFQ0lBQWdBU2dDd0FNMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljVFlDeEFJZ0FTZ0NnQU1oQWlBQUlBRW9Bc2dETmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NIRTJBc0FDSUFFb0FzUUNJUUlnQUNBQktBTEFBallDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nSzhBaUFCS0FLTUF5RUNJQUFnQVNnQ3ZBTTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY1RZQ3VBSWdBU2dDeEFJaEFpQUFJQUVvQXJnQ05nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQXJRQ0lBRW9BcndDSVFJZ0FDQUJLQUxrQWpZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0t3QWlBQktBSzBBaUVDSUFBZ0FTZ0MzQUkyQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUNyQUlnQVNnQ3ZBSWhBaUFBSUFFb0F0QUNOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFxZ0NJQUVvQXJRQ0lRSWdBQ0FCS0FMSUFqWUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdLa0FpQUJLQUtVQXlFQ0lBQWdBU2dDc0FJMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljellDb0FJZ0FTZ0MvQUloQWlBQUlBRW9BcXdDTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBcHdDSUFFb0F2UUNJUUlnQUNBQktBS29BallDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nS1lBaUFCS0FMd0FpRUNJQUFnQVNnQ3BBSTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQ2xBSWdBU2dDbkFJaEFpQUFJQUVvQXFBQ05nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQXBBQ0lBRW9BcGdDSVFJZ0FDQUJLQUtnQWpZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHhOZ0tNQWlBQktBS01BaUVDSUFBZ0FTZ0NsQUkyQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUNpQUlnQVNnQ2lBSWhBaUFBSUFFb0FwQUNOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hFMkFvUUNJQUVvQXB3Q0lRSWdBQ0FCS0FLRUFqWUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdLQUFpQUJLQUtVQWlFQ0lBQWdBU2dDbUFJMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljellDL0FFZ0FTZ0NqQUloQWlBQUlBRW9BcHdDTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBdmdCSUFFb0F2d0JJUUlnQUNBQktBTDRBVFlDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoeE5nTDBBU0FCS0FLVUFpRUNJQUFnQVNnQzlBRTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQzhBRWdBU2dDOEFFaEFpQUFJQUVvQXBnQ05nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQXV3QklBRW9BdkFCSVFJZ0FDQUJLQUtJQWpZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0xvQVNBQktBTG9BU0VDSUFBZ0FTZ0NsQUkyQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWNUWUM1QUVnQVNnQzdBRWhBaUFBSUFFb0F1UUJOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkF1QUJJQUVvQXVRQklRSWdBQ0FCS0FLSUFqWUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdMY0FTQUJLQUxjQVNFQ0lBQWdBU2dDZ0FJMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljVFlDMkFFZ0FTZ0MyQUVoQWlBQUlBRW9BcEFDTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBdFFCSUFFb0F1QUJJUUlnQUNBQktBTFVBVFlDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nTFFBU0FCS0FMd0FTRUNJQUFnQVNnQ2dBSTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQ3pBRWdBU2dDMUFFaEFpQUFJQUVvQW9BQ05nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQXNnQklBRW9BdUFCSVFJZ0FDQUJLQUx3QVRZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0xFQVNBQktBTFFBU0VDSUFBZ0FTZ0N6QUUyQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUN3QUVnQVNnQ21BTWhBaUFBSUFFb0FzUUJOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hFMkFyd0JJQUVvQXBBRElRSWdBQ0FCS0FMZ0FUWUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h4TmdLNEFTQUJLQUxNQXlFQ0lBQWdBU2dDOEFFMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljVFlDdEFFZ0FTZ0MrQUloQWlBQUlBRW9Bc2dCTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NIRTJBckFCSUFFb0FyUURJUUlnQUNBQktBTFVBVFlDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoeE5nS3NBU0FCS0FLRUF5RUNJQUFnQVNnQ2dBSTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY1RZQ3FBRWdBU2dDaUFNaEFpQUFJQUVvQXN3Qk5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSEUyQXFRQklBRW9Bb0FESVFJZ0FDQUJLQUxBQVRZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHhOZ0tnQVNBQktBS01BeUVDSUFBZ0FTZ0MwQUUyQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWNUWUNuQUVnQVNnQ3JBTWhBaUFBSUFFb0FzUUJOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hFMkFwZ0JJQUVvQXFBRElRSWdBQ0FCS0FMZ0FUWUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h4TmdLVUFTQUJLQUt3QXlFQ0lBQWdBU2dDOEFFMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljVFlDa0FFZ0FTZ0N4QU1oQWlBQUlBRW9Bc2dCTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NIRTJBb3dCSUFFb0FxUURJUUlnQUNBQktBTFVBVFlDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoeE5nS0lBU0FCS0FLb0F5RUNJQUFnQVNnQ2dBSTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY1RZQ2hBRWdBU2dDd0FNaEFpQUFJQUVvQXN3Qk5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSEUyQW9BQklBRW9Bc2dESVFJZ0FDQUJLQUxBQVRZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHhOZ0o4SUFFb0Fyd0RJUUlnQUNBQktBTFFBVFlDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoeE5nSjRJQUVvQW53aEFpQUFJQUVvQW9BQk5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQW5RZ0FTZ0NrQUVoQWlBQUlBRW9BcFFCTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBbkFnQVNnQ2lBRWhBaUFBSUFFb0FxZ0JOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFtd2dBU2dDbEFFaEFpQUFJQUVvQXBnQk5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQW1nZ0FTZ0NqQUVoQWlBQUlBRW9BclFCTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBbVFnQVNnQ3FBRWhBaUFBSUFFb0FyUUJOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFtQWdBU2dDbkFFaEFpQUFJQUVvQXFBQk5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQWx3Z0FTZ0NzQUVoQWlBQUlBRW9BcndCTmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBbGdnQVNnQ29BRWhBaUFBSUFFb0FxUUJOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFsUWdBU2dDZUNFQ0lBQWdBU2dDZkRZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0pRSUFFb0Ftd2hBaUFBSUFFb0Fvd0JOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFrd2dBU2dDV0NFQ0lBQWdBU2dDWkRZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0pJSUFFb0FuUWhBaUFBSUFFb0Fxd0JOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFrUWdBU2dDVkNFQ0lBQWdBU2dDc0FFMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljellDUUNBQktBSklJUUlnQUNBQktBSjBOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFqd2dBU2dDU0NFQ0lBQWdBU2dDaEFFMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljellDT0NBQktBSkVJUUlnQUNBQktBSmNOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFqUWdBU2dDUkNFQ0lBQWdBU2dDYURZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0l3SUFFb0FrQWhBaUFBSUFFb0Fxd0JOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFpd2dBU2dDTkNFQ0lBQWdBU2dDT0RZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0lvSUFFb0FqQWhBaUFBSUFFb0FyZ0JOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFpUWdBU2dDTUNFQ0lBQWdBU2dDUURZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0lnSUFFb0Frd2hBaUFBSUFFb0FqUTJBZ3dnQUNnQ0RFRi9jeUVESUFBZ0FqWUNEQ0FBSUFNMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdJY0lBRW9BbXdoQWlBQUlBRW9BancyQWd3Z0FDZ0NERUYvY3lFRElBQWdBallDRENBQUlBTTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nSVlJQUVvQWlnaEFpQUFJQUVvQWl3MkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljellDRkNBQktBSWtJUUlnQUNBQktBSllOZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFoQWdBU2dDSkNFQ0lBQWdBU2dDWURZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0lNSUFFb0FpZ2hBaUFBSUFFb0FuQTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQ0NDQUJLQUlzSVFJZ0FDQUJLQUlRTmdJTUlBQW9BZ3hCZjNNaEF5QUFJQUkyQWd3Z0FDQUROZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUNCQ0FCS0FKUUlRSWdBQ0FCS0FJVU5nSU1JQUFvQWd4QmYzTWhBeUFBSUFJMkFnd2dBQ0FETmdJSUlBRWdBQ2dDRENBQUtBSUljellDQUNBQktBTHNBeUFCS0FJWU5nSUFJQUVvQXV3RElBRW9BaHcyQWdRZ0FTZ0M3QU1nQVNnQ0NEWUNDQ0FCS0FMc0F5QUJLQUlNTmdJTUlBRW9BdXdESUFFb0FoQTJBaEFnQVNnQzdBTWdBU2dDQURZQ0ZDQUJLQUxzQXlBQktBSUVOZ0lZSUFFb0F1d0RJQUVvQWlBMkFod2dBVUh3QTJva0FBc3lBUUYvSXdCQkVHc2lBaUFBT2dBUElBSWdBVFlDQ0NBQ0lBSXRBQThnQWlnQ0NFRUJkSFZCQTNFNkFBOGdBaTBBRHd1OEFnRUVmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBaUFCTmdJSUlBSW9BZ3doQkNBQ0tBSUlJUUVqQUVFZ2F5SUFKQUFnQUNBQ05nSU1JQUFnQVRZQ0NDTUFRUkJySWdFZ0FDZ0NERFlDRENBQUlBRW9BZ3cyQWdRZ0FDZ0NDQ0VCSUFBZ0FFRUVhallDSENBQUlBRTJBaGdnQUNnQ0hDRURJd0JCRUdzaUFTQUFLQUlZTmdJTUlBQkJFR29pQlNBQktBSU1LUUlBTndJQUl3QkJFR3NpQVNRQUlBRWdBellDRENBQklBVTJBZ2dnQVNBQktBSUlLQUlFTmdJRUlBRW9BZ1JCZjBzRVFFRzlGa0crRFVIdUFVSGtEeEFBQUFzZ0FTZ0NEQ2dDQUNBQktBSUlLQUlBTmdJQUlBRW9BZ3dvQWdBZ0FTZ0NCRFlDQkNBQktBSU1JZ01nQXlnQ0FFRUlhallDQUNBQlFSQnFKQUFqQUVFUWF5QUFLQUljTmdJTUlBQkJJR29rQUNBRVFld29JQUlRRnhBSU5nSUFJQUpCRUdva0FBdTlBUUVCZnlNQVFTQnJJZ0lrQUNBQ0lBQTJBaHdnQWlBQk5nSVlJQUpCQURZQ0ZBTkFJQUlvQWhRZ0FpZ0NHQ2dDOEFGTFJRUkFJQUpCQURZQ0VBTkFJQUlvQWhCQkFrOUZCRUFnQWlBQ0tBSVlJQUlvQWhSQkJIUnFJZ0FwQWdBM0FnQWdBaUFBS1FJSU53SUlJQUlvQWh3Z0FpZ0NGRUVGZEdvZ0FpQUNLQUlRRUpvQklBSWdBaWdDRUVFQmFqWUNFQXdCQ3dzZ0FpZ0NIQ0FDS0FJVVFRVjBhaEJaSUFJZ0FpZ0NGRUVCYWpZQ0ZBd0JDd3NnQWtFZ2FpUUFDeVVCQVg4akFFRVFheUlESkFBZ0F5QUFOZ0lNSUFNZ0FUWUNDQ0FESUFJMkFnUVFBd0FMTVFFQmZ5TUFRUkJySWdNa0FDQURJQUUyQWd3Z0F5QUNOZ0lJSUFBZ0F5Z0NEQ0FES0FJSUVMd0JJQU5CRUdva0FBdC9BUU4vSXdCQkVHc2lBaVFBSUFJZ0FEWUNEQ0FDS0FJTUlRRWpBRUVRYXlJQUpBQWdBQ0FCTmdJTUlBQWdBQ2dDRENnQ0FEWUNDQ01BUVJCcklnRWdBRUVJYWpZQ0RDQUJLQUlNSWdFZ0FTZ0NBRUVNYXpZQ0FDTUFRUkJySWdNZ0FUWUNEQ0FES0FJTUtBSUFJUUVnQUVFUWFpUUFJQUpCRUdva0FDQUJDMjhCQW44akFFRVFheUlESkFBZ0F5QUFOZ0lNSUFNZ0FUWUNDQ0FESUFJMkFnUWdBeWdDRENFQklBTW9BZ2dRSmlFQ0lBTW9BZ1FoQkNNQVFSQnJJZ0FnQVRZQ0RDQUFJQUkyQWdnZ0FDQUVOZ0lFSUFBb0FnZ3BBd0FnQUNnQ0JDa0RBRkVoQUNBRFFSQnFKQUFnQUF2K0F3SUNmd0YrSXdCQkVHc2lBeVFBSUFNZ0FEWUNEQ0FESUFFMkFnZ2dBeWdDRENFQUlBTW9BZ2dwQXdBaEJDTUFRU0JySWdFa0FDQUJJQUEyQWh3Z0FTQUVOd01RSUFFZ0FTa0RFRGNEQ0NNQVFTQnJJZ0FrQUNBQUlBRTJBaHdnQUNBQlFRaHFOZ0lZSUFCQkNEWUNGQ0FBUVpYVHg5NEZOZ0lRSUFCQkdEWUNEQ0FBSUFBb0FoUTJBZ2dnQUNBQUtBSVlOZ0lFQTBBZ0FDZ0NGRUVFVHdSQUl3QkJFR3NpQWlBQUtBSUVOZ0lNSUFJZ0FpZ0NEQ2dBQURZQ0NDQUFJQUlvQWdnMkFnQWdBQ0FBS0FJQVFaWFR4OTRGYkRZQ0FDQUFJQUFvQWdBZ0FDZ0NBRUVZZG5NMkFnQWdBQ0FBS0FJQVFaWFR4OTRGYkRZQ0FDQUFJQUFvQWdoQmxkUEgzZ1ZzTmdJSUlBQWdBQ2dDQUNBQUtBSUljellDQ0NBQUlBQW9BZ1JCQkdvMkFnUWdBQ0FBS0FJVVFRUnJOZ0lVREFFTEN3SkFBa0FDUUFKQUlBQW9BaFJCQVdzT0F3SUJBQU1MSUFBZ0FDZ0NDQ0FBS0FJRUxRQUNRUkIwY3pZQ0NBc2dBQ0FBS0FJSUlBQW9BZ1F0QUFGQkNIUnpOZ0lJQ3lBQUlBQW9BZ1F0QUFBZ0FDZ0NDSE0yQWdnZ0FDQUFLQUlJUVpYVHg5NEZiRFlDQ0FzZ0FDQUFLQUlJSWdKQkRYWWdBbk0yQWdnZ0FDQUFLQUlJUVpYVHg5NEZiRFlDQ0NBQUlBQW9BZ2dnQUNnQ0NFRVBkbk0yQWdnZ0FDZ0NDQ0VDSUFCQklHb2tBQ0FDSVFBZ0FVRWdhaVFBSUFOQkVHb2tBQ0FBQzNRQkEzOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ1FRRTJBZ1FnQWlnQ0RDRUJJQUlvQWdnaEF5QUNLQUlFSVFRakFFRVFheUlBSkFBZ0FDQUJOZ0lNSUFBZ0F6WUNDQ0FBSUFRMkFnUWdBQ2dDQ0NBQUtBSUVRUmhzUVFnUVF5QUFRUkJxSkFBZ0FrRVFhaVFBQzBjQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJRUl3QkJFR3NpQUNBQlFRaHFOZ0lNSUFCQkFEWUNDQ0FBS0FJTUlBQW9BZ2cyQWdBZ0FTZ0NDQ0VBSUFGQkVHb2tBQ0FBQ3lvQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3hCREdvUXF3RWhBQ0FCUVJCcUpBQWdBQXM1QVFGL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENNQVFSQnJJZ0FnQVNnQ0REWUNEQ0FBS0FJTUtBSUFRUkJxSVFBZ0FVRVFhaVFBSUFBTGJ3RUNmeU1BUVJCcklnTWtBQ0FESUFBMkFnd2dBeUFCTmdJSUlBTWdBallDQkNBREtBSU1JUUVnQXlnQ0NCQW1JUUlnQXlnQ0JDRUVJd0JCRUdzaUFDQUJOZ0lNSUFBZ0FqWUNDQ0FBSUFRMkFnUWdBQ2dDQ0NnQ0FDQUFLQUlFS0FJQVNDRUFJQU5CRUdva0FDQUFDMjhCQW44akFFRVFheUlESkFBZ0F5QUFOZ0lNSUFNZ0FUWUNDQ0FESUFJMkFnUWdBeWdDRENFQklBTW9BZ2doQWlBREtBSUVFQ1loQkNNQVFSQnJJZ0FnQVRZQ0RDQUFJQUkyQWdnZ0FDQUVOZ0lFSUFBb0FnZ29BZ0FnQUNnQ0JDZ0NBRWdoQUNBRFFSQnFKQUFnQUFzcEFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJLQUlNRUVnb0FnQWhBQ0FCUVJCcUpBQWdBQXZwQWdFQmZ5TUFRU0JySWdNa0FDQURJQUEyQWhnZ0F5QUJOZ0lVSUFNZ0FqWUNFQ0FESUFNb0FoZ2lBQkNGQVRZQ0RDTUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTZ0NEQkJJSVFJZ0FVRVFhaVFBSUFNZ0FqWUNDQUpBSUFNb0Fnd0VRQU5BSUFBUUdDQURLQUlRSUFNb0FneEJFR29RaEFGQkFYRUVRQ0FES0FJTUtBSUFCRUFnQXlBREtBSU1OZ0lJSUFNZ0F5Z0NEQ2dDQURZQ0RBd0NDeUFES0FJVUlBTW9BZ3cyQWdBZ0F5QURLQUlVS0FJQU5nSWNEQU1MQWtBZ0FCQVlJQU1vQWd4QkVHb2dBeWdDRUJDREFVRUJjUVJBSUFNb0Fnd29BZ1FFUUNBRElBTW9BZ3hCQkdvMkFnZ2dBeUFES0FJTUtBSUVOZ0lNREFJTElBTW9BaFFnQXlnQ0REWUNBQ0FESUFNb0FneEJCR28yQWh3TUJBc2dBeWdDRkNBREtBSU1OZ0lBSUFNZ0F5Z0NDRFlDSEF3REN3d0FDd0FMSUFBUVNDRUFJQU1vQWhRZ0FEWUNBQ0FESUFNb0FoUW9BZ0EyQWh3TElBTW9BaHdoQUNBRFFTQnFKQUFnQUF2QUFRRUNmeU1BUVJCcklnSWtBQ0FDSUFBMkFnZ2dBaUFDS0FJSUlnQTJBZ3dnQUVFMGFoQVdCRUFnQUVFMGFpSUJFREVnQVJBM0N5QUFRU3hxRUJZRVFDQUFRU3hxSWdFUU1TQUJFRGNMSUFCQkpHb1FGZ1JBSUFCQkpHb2lBUkF4SUFFUU53c2dBRUVjYWhBV0JFQWdBRUVjYWlJQkVERWdBUkEzQ3lBQVFSUnFFQllFUUNBQVFSUnFJZ0VRTVNBQkVEY0xJQUJCREdvUUZnUkFJQUJCREdvaUFSQXhJQUVRTndzZ0FCQ21BaG9nQWlnQ0RDRUFJQUpCRUdva0FDQUFDM3dCQVg4akFFRVFheUlESkFBZ0F5QUFOZ0lNSUFNZ0FUWUNDQ0FESUFJMkFnUWdBeWdDQ0NFQkl3QkJFR3NpQUNBREtBSU1JZ0kyQWd3Z0FDQUJOZ0lJSUFBb0FneEJBRFlDQUNBREtBSUVJUUVqQUVFUWF5SUFJQUpCQkdvMkFnd2dBQ0FCTmdJSUlBQW9BZ3dnQUNnQ0NEWUNBQ0FEUVJCcUpBQUwyeEVCRUg4akFFRVFheUlJSkFBZ0NDQUFOZ0lNSUFnZ0FUWUNDQ01BUVJCcklnQWdDQ2dDRENJQ05nSU1JQWdnQUNnQ0RDSUFLQUlFSUFBb0FnQnJOZ0lFQWtBZ0NDZ0NCQ0FJS0FJSVNRUkFJQWdvQWdnZ0NDZ0NCR3NoQUNNQVFTQnJJZ0VrQUNBQklBSTJBaHdnQVNBQU5nSVlBa0FnQVNnQ0hDSUVFQmdvQWdBZ0JDZ0NCR3NnQVNnQ0dFOEVRQ0FCS0FJWUlRSWpBRUVnYXlJQUpBQWdBQ0FFTmdJY0lBQWdBallDR0NBQUtBSWNJUVFnQUNnQ0dDRURJd0JCRUdzaUFpQUFRUWhxTmdJTUlBSWdCRFlDQ0NBQ0lBTTJBZ1FnQWlnQ0RDSURJQUlvQWdnMkFnQWdBeUFDS0FJSUtBSUVOZ0lFSUFNZ0FpZ0NDQ2dDQkNBQ0tBSUVhallDQ0NBQUlBQW9BaEEyQWdRZ0FDQUFLQUlNTmdJQUEwQWdBQ2dDQUNBQUtBSUVSd1JBSUFRUUdDRUxJd0JCRUdzaUFpQUFLQUlBTmdJTUlBc2dBaWdDREJDL0FTQUFJQUFvQWdCQkFXb2lBallDQUNBQUlBSTJBZ3dNQVFzTEl3QkJFR3NpQWlBQVFRaHFOZ0lNSUFJb0Fnd2lBaWdDQUNBQ0tBSUVOZ0lFSUFCQklHb2tBQXdCQ3lBQklBUVFHRFlDRkNNQUlnQkJFR3NpQWlBRU5nSU1JQUVvQWhnZ0FpZ0NEQ0lDS0FJRUlBSW9BZ0JyYWlFQ0lBQkJJR3NpQUNRQUlBQWdCRFlDR0NBQUlBSTJBaFFnQUNnQ0dDRURJd0JCRUdzaUFpUUFJQUlnQXpZQ0RDQUNLQUlNRUJnaEJpTUFRUkJySWdVa0FDQUZJQVkyQWd3akFFRVFheUFGS0FJTU5nSU1JQVZCRUdva0FDQUNRWDgyQWdnZ0FrSC8vLy8vQnpZQ0JDQUNRUWhxSUFKQkJHb1FaQ2dDQUNFRklBSkJFR29rQUNBQUlBVTJBaEFnQUNnQ0ZDQUFLQUlRU3dSQUlBTVFaUUFMSUFBZ0F4QkhOZ0lNQWtBZ0FDZ0NEQ0FBS0FJUVFRRjJUd1JBSUFBZ0FDZ0NFRFlDSEF3QkN5QUFJQUFvQWd4QkFYUTJBZ2dnQUNBQVFRaHFJQUJCRkdvUVNpZ0NBRFlDSEFzZ0FDZ0NIQ0VDSUFCQklHb2tBQ01BSWdCQkVHc2lBeUFFTmdJTUlBTW9BZ3dpQXlnQ0JDQURLQUlBYXlFRElBRW9BaFFoQlNBQVFTQnJJZ0FrQUNBQUlBRTJBaGdnQUNBQ05nSVVJQUFnQXpZQ0VDQUFJQVUyQWd3Z0FDQUFLQUlZSWdJMkFod2dBRUVBTmdJSUlBSkJER29nQUVFSWFpQUFLQUlNRUlnQklBSUNmeUFBS0FJVUJFQWdBaEF5SVFNZ0FDZ0NGQ0VHSXdCQkVHc2lCU1FBSUFVZ0F6WUNEQ0FGSUFZMkFnZ2dCU2dDRENFR0lBVW9BZ2doQnlNQVFSQnJJZ01rQUNBRElBWTJBZ3dnQXlBSE5nSUlJQU1vQWdnaERDQURLQUlNSVFjakFFRVFheUlHSkFBZ0JpQUhOZ0lNSXdCQkVHc2dCaWdDRERZQ0RDQUdRUkJxSkFBZ0RFRi9Td1JBRURrQUN5QURLQUlJUVFFUVFTRUdJQU5CRUdva0FDQUdJUU1nQlVFUWFpUUFJQU1NQVF0QkFBczJBZ0FnQWlBQ0tBSUFJQUFvQWhCcUlnTTJBZ2dnQWlBRE5nSUVJQUlvQWdBZ0FDZ0NGR29oQXlBQ0VCMGdBellDQUNBQUtBSWNHaUFBUVNCcUpBQWdBU2dDR0NFQ0l3QkJJR3NpQUNRQUlBQWdBVFlDSENBQUlBSTJBaGdnQUNnQ0hDSUZRUWhxSVFNZ0FDZ0NHQ0VHSXdCQkVHc2lBaUFBUVFocU5nSU1JQUlnQXpZQ0NDQUNJQVkyQWdRZ0FpZ0NEQ0lESUFJb0FnZ29BZ0EyQWdBZ0F5QUNLQUlJS0FJQUlBSW9BZ1JxTmdJRUlBTWdBaWdDQ0RZQ0NBTkFJQUFvQWdnZ0FDZ0NERWNFUUNBRkVESWhEU01BUVJCcklnSWdBQ2dDQ0RZQ0RDQU5JQUlvQWd3UXZ3RWdBQ0FBS0FJSVFRRnFOZ0lJREFFTEN5TUFRUkJySWdJZ0FFRUlhallDRENBQ0tBSU1JZ0lvQWdnZ0FpZ0NBRFlDQUNBQVFTQnFKQUFqQUVFUWF5SUNKQUFnQWlBRU5nSU1JQUlnQVRZQ0NDQUNLQUlNSWdRUTRBRWdCQkFZSVFNZ0JDZ0NBQ0VGSUFRb0FnUWhCaUFDS0FJSVFRUnFJUWNqQUVFZ2F5SUFKQUFnQUNBRE5nSWNJQUFnQlRZQ0dDQUFJQVkyQWhRZ0FDQUhOZ0lRSUFBZ0FDZ0NGQ0FBS0FJWWF6WUNEQ0FBS0FJUUlnTWdBeWdDQUNBQUtBSU1hellDQUNBQUtBSU1RUUJLQkVBZ0FDZ0NFQ2dDQUNBQUtBSVlJQUFvQWd3UUd4b0xJQUJCSUdva0FDQUVJQUlvQWdoQkJHb1FMU0FFUVFScUlBSW9BZ2hCQ0dvUUxTQUVFQmdnQWlnQ0NCQWRFQzBnQWlnQ0NDQUNLQUlJS0FJRU5nSUFJd0JCRUdzaUFDQUVOZ0lNSUFBb0Fnd2lBeWdDQkNBREtBSUFheUVESUFBa0FDQUFJQVEyQWd3Z0FDQUROZ0lJSUFBb0Fnd2lBeEFaSVFZZ0F4QVpJQU1RUjJvaEJ5QURFQmtnQXhCSGFpRUpJQU1RR1NBQUtBSUlhaUVLSXdCQklHc2lCU0FETmdJY0lBVWdCallDR0NBRklBYzJBaFFnQlNBSk5nSVFJQVVnQ2pZQ0RDQUFRUkJxSkFBakFFRVFheUFFTmdJTUlBSkJFR29rQUNNQVFSQnJJZ0FrQUNBQUlBRTJBZ2dnQUNBQUtBSUlJZ0kyQWd3akFFRVFheUlHSkFBZ0JpQUNOZ0lNSUFZb0Fnd2lCQ0VESUFRb0FnUWhCU01BUVJCcklnUWtBQ0FFSUFNMkFnd2dCQ0FGTmdJSUlBUW9BZ3doQlNBRUtBSUlJUWNqQUVFUWF5SURKQUFnQXlBRk5nSUVJQU1nQnpZQ0FDQURLQUlFSVFVRFFDQURLQUlBSUFVb0FnaEhCRUFnQlJBeUlRY2dCU0FGS0FJSVFRRnJJZ2syQWdnZ0J5RU9Jd0JCRUdzaUJ5QUpOZ0lNSUE0Z0J5Z0NEQkJFREFFTEN5QURRUkJxSkFBZ0JFRVFhaVFBSUFaQkVHb2tBQ0FDS0FJQUJFQWdBaEF5SVJFZ0FpZ0NBQ0VQSXdCQkVHc2lCQ1FBSUFRZ0FqWUNEQ0FFS0FJTUlnSVFIU2dDQUNBQ0tBSUFheUVDSUFSQkVHb2tBQ0FSSUE4Z0FoRFVBUXNnQUNnQ0RCb2dBRUVRYWlRQUN5QUJRU0JxSkFBTUFRc2dDQ2dDQkNBSUtBSUlTd1JBSUFJb0FnQWdDQ2dDQ0dvaEFTTUFRUkJySWdBa0FDQUFJQUkyQWd3Z0FDQUJOZ0lJSUFBb0FnZ2hBaU1BUVJCcklnUWdBQ2dDRENJQk5nSU1JQVFnQWpZQ0NDTUFRUkJySWdJZ0FUWUNEQ0FBSUFJb0Fnd2lBaWdDQkNBQ0tBSUFhellDQkNBQklBQW9BZ2dRMEFFZ0FDZ0NCQ0VFSXdCQkVHc2lBaVFBSUFJZ0FUWUNEQ0FDSUFRMkFnZ2dBaWdDRENJQkVCa2hBeUFCRUJrZ0FSQkhhaUVGSUFFUUdTQUNLQUlJYWlFR0lBRVFHU0VRSXdCQkVHc2lCQ0FCTmdJTUlCQWdCQ2dDRENJRUtBSUVJQVFvQWdCcmFpRUhJd0JCSUdzaUJDQUJOZ0ljSUFRZ0F6WUNHQ0FFSUFVMkFoUWdCQ0FHTmdJUUlBUWdCellDRENBQ1FSQnFKQUFnQUVFUWFpUUFDd3NnQ0VFUWFpUUFDeU1CQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lFSUFFb0FnUVFWaG9nQVVFUWFpUUFDMHNCQW44Z0FDZ0NCQ0lHUVFoMUlRY2dBQ2dDQUNJQUlBRWdBaUFHUVFGeEJIOGdCeUFES0FJQWFpZ0NBQVVnQndzZ0Eyb2dCRUVDSUFaQkFuRWJJQVVnQUNnQ0FDZ0NGQkVLQUF1YUFRQWdBRUVCT2dBMUFrQWdBQ2dDQkNBQ1J3MEFJQUJCQVRvQU5BSkFJQUFvQWhBaUFrVUVRQ0FBUVFFMkFpUWdBQ0FETmdJWUlBQWdBVFlDRUNBRFFRRkhEUUlnQUNnQ01FRUJSZzBCREFJTElBRWdBa1lFUUNBQUtBSVlJZ0pCQWtZRVFDQUFJQU0yQWhnZ0F5RUNDeUFBS0FJd1FRRkhEUUlnQWtFQlJnMEJEQUlMSUFBZ0FDZ0NKRUVCYWpZQ0pBc2dBRUVCT2dBMkN3dGRBUUYvSUFBb0FoQWlBMFVFUUNBQVFRRTJBaVFnQUNBQ05nSVlJQUFnQVRZQ0VBOExBa0FnQVNBRFJnUkFJQUFvQWhoQkFrY05BU0FBSUFJMkFoZ1BDeUFBUVFFNkFEWWdBRUVDTmdJWUlBQWdBQ2dDSkVFQmFqWUNKQXNMTmdFQmZ5TUFRUkJySWdJa0FDQUNJQUEyQWd3Z0FpQUJOZ0lJSUFJb0FneEJBQ0FDS0FJSUVDRWdBaWdDREJvZ0FrRVFhaVFBQzdVREFRRi9Jd0JCMEFCcklnSWdBRFlDVENBQ0lBRTJBa2dnQWlBQ0tBSk1RWkdpeElnQmNUWUNSQ0FDSUFJb0FreEJvc1NJa1FKeE5nSkFJQUlnQWlnQ1RFSEVpSkdpQkhFMkFqd2dBaUFDS0FKTVFZaVJvc1I0Y1RZQ09DQUNJQUlvQWtoQmthTEVpQUZ4TmdJMElBSWdBaWdDU0VHaXhJaVJBbkUyQWpBZ0FpQUNLQUpJUWNTSWthSUVjVFlDTENBQ0lBSW9Ba2hCaUpHaXhIaHhOZ0lvSUFJZ0FqVUNPQ0FDTlFJd2ZpQUNOUUk4SUFJMUFpeCtJQUkxQWtRZ0FqVUNOSDRnQWpVQ1FDQUNOUUlvZm9XRmhUY0RJQ0FDSUFJMUFqZ2dBalVDTEg0Z0FqVUNQQ0FDTlFJb2ZpQUNOUUpFSUFJMUFqQitJQUkxQWtBZ0FqVUNOSDZGaFlVM0F4Z2dBaUFDTlFJNElBSTFBaWgrSUFJMUFqd2dBalVDTkg0Z0FqVUNSQ0FDTlFJc2ZpQUNOUUpBSUFJMUFqQitoWVdGTndNUUlBSWdBalVDT0NBQ05RSTBmaUFDTlFJOElBSTFBakIrSUFJMUFrUWdBalVDS0g0Z0FqVUNRQ0FDTlFJc2ZvV0ZoVGNEQ0NBQ0tRTUlRb2lSb3NTSWthTEVpSCtESUFJcEF4QkN4SWlSb3NTSWthTEVBSU1nQWlrRElFS1Jvc1NJa2FMRWlCR0RJQUlwQXhoQ29zU0lrYUxFaUpFaWc0U0VoQXVOQVFFQ2Z5TUFRUkJySWdJa0FDQUNJQUEyQWd3Z0FpQUJOZ0lJSUFJZ0FpZ0NEQ0lBRUJjb0FnQTJBZ1FnQWlnQ0NDRUJJQUFRRnlBQk5nSUFJQUlvQWdRRVFDQUFFQmNoQVNBQ0tBSUVJUU1qQUVFUWF5SUFKQUFnQUNBQk5nSU1JQUFnQXpZQ0NDQUFLQUlJSWdFRVFDQUJJQUVvQWdBb0FnUVJBUUFMSUFCQkVHb2tBQXNnQWtFUWFpUUFDK1lCQVFGL0l3QkJRR29pQkNRQUlBUWdBRFlDUENBRUlBRTJBamdnQkNBQ053TXdJQVFnQXpjREtDQUVJQVFwQXpCQy8vLy8vdytEUGdJa0lBUWdCQ2tETUVJZ2lENENJQ0FFSUFRcEF5aEMvLy8vL3crRFBnSWNJQVFnQkNrREtFSWdpRDRDR0NBRUlBUW9BaVFnQkNnQ0hCQ1BBVGNERUNBRUlBUW9BaUFnQkNnQ0dCQ1BBVGNEQ0NBRUlBUW9BaVFnQkNnQ0lITWdCQ2dDSENBRUtBSVljeENQQVNBRUtRTVFoU0FFS1FNSWhUY0RBQ0FFS0FJOElBUXBBeEFnQkNrREFFSWdob1UzQXdBZ0JDZ0NPQ0FFS1FNSUlBUXBBd0JDSUlpRk53TUFJQVJCUUdza0FBdkVCUUVCZnlNQVFiQUNheUlFSkFBZ0JDQUFOZ0tzQWlBRUlBRTJBcWdDSUFRZ0FqWUNwQUlnQkNBRE5nS2dBaUFFUVFBMkFwd0NJQVJCQURZQ21BSWdCQ2dDb0FKRkJFQWdCQ0FFS0FLc0FpZ0NBRFlDb0FJTEFrQUNRQ0FFS0FLZ0FpQUVLQUtzQWlnQ0FFWUVRQ0FFS0FLb0FrVU5BUXNqQUVFUWF5SUFJQVFvQXFBQ05nSU1JQVFnQUNnQ0RDZ0NHRFlDQ0NBRUtBSUlRWUFCU3dSQVFjMGpRWllWUVprQlFmVUlFQUFBQ3lNQVFSQnJJZ0FnQkNnQ29BSTJBZ3dnQUNnQ0RDZ0NCQ0FFS0FJSVN3UkFRZmtPUVpZVlFab0JRZlVJRUFBQUN3SkFJQVFvQWdnZ0JDZ0NwQUpKQkVBZ0JDZ0NyQUpCQkdvZ0JDZ0NvQUlnQkNnQ25BSVFsZ0ZGRFFNZ0JDZ0NyQUpCQkdvZ0JDZ0NxQUlnQkNnQ3BBSVFXRVVOQXlBRUtBS3NBa0VFYWlBRVFSQnFJQVJCREdvUWxRRU5BUXdEQ3lBRUtBS2tBa0dBQVVzRVFFR3dJMEdXRlVHakFVSDFDQkFBQUFzZ0JFRVFhaUFFS0FLb0FpQUVLQUtrQWhBZUlBUWdCQ2dDcEFJMkFnd0xJQVFvQWd3aUFDQUVRUkJxYWtFQUlBUW9BZ2dnQUdzUUlTQUVRUUEyQWdRRFFDQUVLQUlFSUFRb0FnaEpCRUFnQkNnQ0JDSUFJQVJCa0FGcWFpQUVRUkJxSUFCcUxRQUFRVFp6T2dBQUlBUWdCQ2dDQkVFQmFqWUNCQXdCQ3dzZ0JDZ0NyQUpCRkdvZ0JDZ0NvQUlnQkNnQ25BSVFsZ0ZGRFFFZ0JDZ0NyQUpCRkdvZ0JFR1FBV29nQkNnQ0NCQllSUTBCSUFSQkFEWUNBQU5BSUFRb0FnQWdCQ2dDQ0VrRVFDQUVLQUlBSWdBZ0JFR1FBV3BxSUFSQkVHb2dBR290QUFCQjNBQnpPZ0FBSUFRZ0JDZ0NBRUVCYWpZQ0FBd0JDd3NnQkNnQ3JBSkJKR29nQkNnQ29BSWdCQ2dDbkFJUWxnRkZEUUVnQkNnQ3JBSkJKR29nQkVHUUFXb2dCQ2dDQ0JCWVJRMEJJQVFvQXF3Q0lBUW9BcUFDTmdJQUN5QUVJQVFvQXF3Q0lnQkJCR29nQUVFVWFoRGRBVFlDbUFJTElBUW9BcGdDSVFBZ0JFR3dBbW9rQUNBQUM1QUZBUVIvSXdCQkVHc2lBeVFBSUFNZ0FEWUNEQ0FESUFFMkFnZ2dBeWdDRENFQUlBTW9BZ2dpQWlnQ2JDRUVJd0JCSUdzaUFTUUFJQUVnQURZQ0dDQUJJQVEyQWhRZ0FTQUNOZ0lRSUFFb0FoQWlBaWdDSkNFRUlBSW9BaUFoQlNNQVFUQnJJZ0FrQUNBQVFkZ0FOZ0lzSUFBZ0FqWUNLQ0FBSUFKQktHbzJBaVFnQUVIQUFEWUNJQ0FBSUFKQjZBQnFOZ0ljSUFBZ0JEWUNHQ0FBSUFVMkFoUWdBRUVCTmdJUUlBQWdBQ2dDSENnQ0FEWUNEQ0FBS0FJTUlBQW9BaUJQQkVCQmx3OUIrUXhCcFFGQndRd1FBQUFMSUFBb0FpUWdBQ2dDREdwQmdBRTZBQUFnQUNBQUtBSU1RUUZxTmdJTUlBQW9BZ3dnQUNnQ0lFRUlhMHNFUUNBQUtBSU1JZ0lnQUNnQ0pHcEJBQ0FBS0FJZ0lBSnJFQ0VnQUVFQU5nSU1JQUFvQWlnZ0FDZ0NKRUVCSUFBb0Fpd1JBd0FMSUFBb0Fnd2lBaUFBS0FJa2FrRUFJQUFvQWlCQkNHc2dBbXNRSVFKQUlBQW9BaEFFUUNBQUtBSWtJQUFvQWlCcVFRaHJJQUFvQWhnUVRDQUFLQUlrSUFBb0FpQnFRUVJySUFBb0FoUVFUQXdCQ3lBQUtBSWtJQUFvQWlCcVFRaHJJQUFvQWhRUW1RRWdBQ2dDSkNBQUtBSWdha0VFYXlBQUtBSVlFSmtCQ3lBQUtBSW9JQUFvQWlSQkFTQUFLQUlzRVFNQUlBQW9BaHhCQURZQ0FDQUFLQUlrUVFBZ0FDZ0NJQkFoSUFCQk1Hb2tBQUpBSUFFb0FoUkJJRXNFUUNBQlFRQTJBaHdNQVFzZ0FTZ0NGRUVEY1FSQVFld2dRZk1WUVpRQlFZME1FQUFBQ3lBQklBRW9BaFJCQW5ZMkFnd2dBVUVBTmdJSUEwQWdBU2dDQ0NBQktBSU1TUVJBSUFFb0FoZ2dBU2dDRUNBQktBSUlRUUowYWlnQ0FCQk1JQUVnQVNnQ0dFRUVhallDR0NBQklBRW9BZ2hCQVdvMkFnZ01BUXNMSUFGQkFUWUNIQXNnQVNnQ0hDRUFJQUZCSUdva0FDQURRUkJxSkFBZ0FBdWpBUUVCZnlNQVFSQnJJZ0VrQUNBQklBQTJBZ3dnQVNnQ0RFRUFRZkFBRUNFZ0FTZ0NERUhuektmUUJqWUNBQ0FCS0FJTVFZWGRudHQ3TmdJRUlBRW9BZ3hCOHVhNzR3TTJBZ2dnQVNnQ0RFRzY2citxZWpZQ0RDQUJLQUlNUWYra3VZZ0ZOZ0lRSUFFb0FneEJqTkdWMkhrMkFoUWdBU2dDREVHcnM0LzhBVFlDR0NBQktBSU1RWm1hZzk4Rk5nSWNJQUVvQWd4QklEWUNiQ0FCUVJCcUpBQkJBUXVUQVFFQmZ5TUFRUkJySWdNa0FDQURJQUEyQWd3Z0F5QUJOZ0lJSUFNZ0FqWUNCQ0FES0FJTUtBSUFLQUlFUWNBQVN3UkFRYW9aUVpRUlFla0JRWUlKRUFBQUN5QURLQUlNSWdBZ0F5Z0NDQ0FBS0FJQUtBSVVFUUlBSUFNb0FnUUVRQ0FES0FJRUlBTW9BZ3dvQWdBb0FnUTJBZ0FMSUFNb0Fnd2lBQ2dDQkNBQUtBSUFLQUljRUk0QklBTkJFR29rQUVFQkMrWUJBUUYvSXdCQklHc2lBeVFBSUFNZ0FEWUNHQ0FESUFFMkFoUWdBeUFDTmdJUUFrQWdBeWdDR0NnQ0FDQURLQUlVUndSQUlBTW9BaFFvQWh4RkJFQkIxU0ZCbEJGQnpRRkIwUWdRQUFBTElBTWdBeWdDRkNnQ0hCQlhOZ0lNSUFNb0FneEZCRUFnQTBFQU5nSWNEQUlMSUFNb0FoZ29BZ1FRS0NBREtBSVlJQU1vQWd3MkFnUWdBeWdDR0NBREtBSVVOZ0lBQ3dKQUlBTW9BaGdvQWdoRkRRQWdBeWdDR0NnQ0RBMEFRYklYUVpRUlFkZ0JRZEVJRUFBQUN5QURLQUlZSWdBZ0FDZ0NBQ2dDREJFQkFDQURRUUUyQWh3TElBTW9BaHdoQUNBRFFTQnFKQUFnQUFzUEFFSGs2UUJCMFFBUVowSG82UUFMdkFjQkFYOGpBRUV3YXlJRkpBQWdCU0FBTmdJb0lBVWdBVFlDSkNBRklBSTJBaUFnQlNBRE5nSWNJQVVnQkRZQ0dBSkFJQVVvQWlnb0FvUUJCRUJCSGtIQ0FFSDBFa0dFQWhBY0lBVkJBRFlDTEF3QkN5QUZLQUlvUVFFMkFvUUJJQVVnQlNnQ0tDZ0NBQ2dDQkRZQ0ZBSkFJQVVvQWhSQkFVd05BQ0FGS0FJWVFmLy8vLzhISUFVb0FoUnJUQTBBUVI1QnhRQkI5QkpCa0FJUUhDQUZRUUEyQWl3TUFRc2dCU2dDS0NnQ0FDZ0NGRUdBQ0hFRVFDQUZJQVVvQWlnaUFDQUZLQUlrSUFVb0Fod2dCU2dDR0NBQUtBSUFLQUlnRVFZQU5nSVFJQVVvQWhCQkFFZ0VRQ0FGUVFBMkFpd01BZ3NnQlNnQ0lDQUZLQUlRTmdJQUlBVW9BaWhCQURZQ2hBRWdCVUVCTmdJc0RBRUxJQVVvQWhoQkFFd0VRQ0FGS0FJZ1FRQTJBZ0FnQlNnQ0dFVUVRQ0FGS0FJb1FRQTJBb1FCSUFWQkFUWUNMQXdDQ3lBRlFRQTJBaXdNQVFzQ1FDQUZLQUlvS0FKWURRQWdCU2dDS0NBRktBSVlFTjRCRFFBZ0JTZ0NLQ0lBSUFVb0FpUWdCU2dDSENBRktBSVlJQUFvQWdBb0FpQVJCZ0FFUUNBRktBSWdJQVVvQWhnMkFnQWdCU2dDS0VFQU5nS0VBU0FGUVFFMkFpd01BZ3NnQlNnQ0lFRUFOZ0lBSUFWQkFEWUNMQXdCQ3lBRklBVW9BaWdvQWxnMkFnd2dCU2dDRkVFZ1NnUkFRZTBqUWZRU1FiUUNRY0FQRUFBQUN3SkFJQVVvQWd3RVFDQUZLQUlZSUFVb0FoUWdCU2dDREd0SUJFQWdCU2dDRENBRktBSW9RVGhxYWlBRktBSWNJQVVvQWhnUUhpQUZLQUlvSWdBZ0JTZ0NHQ0FBS0FKWWFqWUNXQ0FGS0FJZ1FRQTJBZ0FnQlNnQ0tFRUFOZ0tFQVNBRlFRRTJBaXdNQXdzZ0JTQUZLQUlVSUFVb0FneHJOZ0lJSUFVb0Fnd2dCU2dDS0VFNGFtb2dCU2dDSENBRktBSUlFQjRnQlNnQ0tDQUZLQUlrSUFVb0FpaEJPR29nQlNnQ0ZDQUZLQUlvS0FJQUtBSWdFUVlBUlFSQUlBVkJBRFlDTEF3REN5QUZJQVVvQWhnZ0JTZ0NDR3MyQWhnZ0JTQUZLQUlJSUFVb0FoeHFOZ0ljSUFVZ0JTZ0NGQ0FGS0FJa2FqWUNKQ0FGS0FJZ0lBVW9BaFEyQWdBTUFRc2dCU2dDSUVFQU5nSUFDeUFGSUFVb0FpZ2dCU2dDR0JEZUFUWUNEQ0FGSUFVb0FoZ2dCU2dDREdzMkFoZ2dCU2dDR0VFQVNnUkFJQVVvQWlnaUFDQUZLQUlrSUFVb0Fod2dCU2dDR0NBQUtBSUFLQUlnRVFZQVJRUkFJQVZCQURZQ0xBd0NDeUFGS0FJZ0lnQWdCU2dDR0NBQUtBSUFhallDQUFzZ0JTZ0NEQVJBSUFVb0FpaEJPR29nQlNnQ0hDQUZLQUlZYWlBRktBSU1FQjRMSUFVb0FpZ2dCU2dDRERZQ1dDQUZLQUlvUVFBMkFvUUJJQVZCQVRZQ0xBc2dCU2dDTENFQUlBVkJNR29rQUNBQUN6QUJBWDhqQUVFUWF5SUNKQUFnQWlBQU5nSU1JQUlnQVRZQ0NDQUNLQUlNSUFKQkNHcEJCQkFlSUFKQkVHb2tBQXV3QVFFQmZ5TUFRUkJySWdNa0FDQURJQUEyQWd3Z0F5QUJOZ0lJSUFNZ0FqWUNCQ0FES0FJRVFRSlBCRUJCa2hsQjNCQkI3d0ZCdEFvUUFBQUxJQU1vQWd3Z0F5Z0NCRUVDZEdvZ0F5Z0NDQ2dDQURZQ0FDQURLQUlNSUFNb0FnUkJBbXBCQW5ScUlBTW9BZ2dvQWdRMkFnQWdBeWdDRENBREtBSUVRUVJxUVFKMGFpQURLQUlJS0FJSU5nSUFJQU1vQWd3Z0F5Z0NCRUVHYWtFQ2RHb2dBeWdDQ0NnQ0REWUNBQ0FEUVJCcUpBQUxwaWNCQ0g4akFFRVFheUlGSkFBZ0JTQUFOZ0lJSUFVZ0FUWUNCQ0FGSUFJMkFnQUNRQUpBQWtBQ1FDQUZLQUlFSWdCQmdBRkhCRUFnQUVIQUFVWU5BU0FBUVlBQ1JnMENEQU1MSUFVb0FnQWhBU0FGS0FJSUlRSWpBRUhRQUdzaUFDUUFJQUFnQVRZQ1RDQUFJQUkyQWtnZ0FDZ0NURUVLTmdMd0FTQUFRVEJxSUFBb0FrZ1FUaUFBS0FKTUlnRWdBQ2tDTURjQ0FDQUJJQUFwQWpnM0FnZ2dBRUVCTmdJc0EwQWdBQ2dDTEVFS1RRUkFJQUJCRUdvZ0FFRXdhaEJhSUFBZ0FDZ0NMRUVCYXkwQWpEUTZBQThnQUVFQU5nSUlBMEFnQUNnQ0NFRUVTUVJBSUFCQk1Hb2lBaUFBS0FJSUlnRkJBblJxS0FJQUlRTWdBQzBBRHlBQkVIY2hCaU1BUVJCcklnUWlBU0FETmdJTUlBRWdCallDQ0NBQktBSU1JQUVvQWdoeklRRWdBQ2dDQ0VFQ2RDQUNhaUFCTmdJQUlBQW9BZ2hCQW5RZ0Ftb29BZ0FoQWlBRUlnRWhCeUFCSUFCQkVHb2dBQ2dDQ0VFQ2RHb29BZ0EyQWd3Z0J5QUJLQUlNSWdOQkFuWkJ2Lzc4K1FOeElBTkJCblJCd0lHRGhueHhjallDRENBQlFRdzJBZ2dnQVNnQ0RDQUJLQUlJUVFGMGRpRURJQUVnQWpZQ0RDQUJJQU0yQWdnZ0FTZ0NEQ0FCS0FJSWN5RUJJQUJCTUdvZ0FDZ0NDRUVDZEdvZ0FUWUNBQ0FBSUFCQk1Hb2dBQ2dDQ0VFQ2RHb29BZ0EyQWdRZ0FFRXdhaUFBS0FJSVFRSjBhaWdDQUNFQ0lBUWlBU0FBS0FJRU5nSU1JQUZCQkRZQ0NDQUJLQUlNSUFFb0FnaEJBWFIwSVFNZ0FTQUNOZ0lNSUFFZ0F6WUNDQ0FCS0FJTUlBRW9BZ2h6SVFFZ0FFRXdhaUFBS0FJSVFRSjBhaUFCTmdJQUlBQkJNR29nQUNnQ0NFRUNkR29vQWdBaEFpQUVJZ0VnQUNnQ0JEWUNEQ0FCUVFnMkFnZ2dBU2dDRENBQktBSUlRUUYwZENFRElBRWdBallDRENBQklBTTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQklBQkJNR29nQUNnQ0NFRUNkR29nQVRZQ0FDQUFRVEJxSUFBb0FnaEJBblJxS0FJQUlRSWdCQ0lCSUFBb0FnUTJBZ3dnQVVFTU5nSUlJQUVvQWd3Z0FTZ0NDRUVCZEhRaEF5QUJJQUkyQWd3Z0FTQUROZ0lJSUFFb0Fnd2dBU2dDQ0hNaEFTQUFRVEJxSUFBb0FnaEJBblJxSUFFMkFnQWdBQ0FBS0FJSVFRRnFOZ0lJREFFTEN5QUFLQUpNSUFBb0FpeEJCSFJxSWdFZ0FDa0NNRGNDQUNBQklBQXBBamczQWdnZ0FDQUFLQUlzUVFGcU5nSXNEQUVMQ3lBQVFkQUFhaVFBSUFWQkFEWUNEQXdEQ3lBRktBSUFJUUVnQlNnQ0NDRUNJd0JCa0FGcklnQWtBQ0FBSUFFMkFvd0JJQUFnQWpZQ2lBRWdBQ2dDakFGQkREWUM4QUVnQUNBQVFmQUFhallDWENBQUlBQkI0QUJxTmdKWUlBQW9BbHdnQUNnQ2lBRVFUaUFBS0FLTUFTSUJJQUFvQWx3aUFpa0NBRGNDQUNBQklBSXBBZ2czQWdnZ0FFSUFOd05JSUFCQ0FEY0RRQ0FBUVVCcklnRWdBQ2dDaUFFcEFCQTNBQUFnQUNnQ1dDQUJFRTRnQUVFQU5nSThBMEFnQUNnQ1BFRUVTUVJBSUFCQklHb2dBQ2dDV0JCYUlBQWdBQ2dDUEVFQmRDMEFqRFE2QUI4Z0FFRUFOZ0lZQTBBZ0FDZ0NHRUVFU1FSQUlBQW9BaGdpQVVFQ2RDSUNJQUFvQWxocUtBSUFJUU1nQWlBQUtBSmNhaWdDQUNFQ0lBQXRBQjhnQVJCM0lRWWpBRUVRYXlJRUlnRWdBallDRENBQklBWTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQ0lBUWlBU0FDTmdJTUlBRkJDRFlDQ0NBQktBSU1JQUVvQWdoQkFYUjBJUUlnQVNBRE5nSU1JQUVnQWpZQ0NDQUJLQUlNSUFFb0FnaHlJUUVnQUNnQ1dDQUFLQUlZUVFKMGFpQUJOZ0lBSUFBb0FsZ2dBQ2dDR0VFQ2RHb29BZ0FoQXlBRUlnRWhDQ0FCSUFCQklHb2dBQ2dDR0VFQ2RHb29BZ0EyQWd3Z0FTQUJLQUlNSWdaQkFuWkJ2Lzc4K1FOeElBWkJCblJCd0lHRGhueHhjallDRENBQlFRUTJBZ2dnQ0NBQktBSU1JQUVvQWdoQkFYUjBOZ0lNSUFGQmdJRDhCellDQ0NBQktBSU1JQUVvQWdoeElRSWdBU0FETmdJTUlBRWdBallDQ0NBQktBSU1JQUVvQWdoeklRRWdBQ2dDV0NBQUtBSVlRUUowYWlBQk5nSUFJQUFvQWxnZ0FDZ0NHRUVDZEdvb0FnQWhBeUFFSWdFaENTQUJJQUFvQWxnZ0FDZ0NHRUVDZEdvb0FnQTJBZ3dnQVVFRU5nSUlJQWtnQVNnQ0RDQUJLQUlJUVFGMGREWUNEQ0FCUVlDQWdIZzJBZ2dnQVNnQ0RDQUJLQUlJY1NFQ0lBRWdBellDRENBQklBSTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQklBQW9BbGdnQUNnQ0dFRUNkR29nQVRZQ0FDQUVJZ0VnQUNnQ1hDQUFLQUlZUVFKMGFpZ0NBRFlDRENBQlFRZzJBZ2dnQVNnQ0RDQUJLQUlJUVFGMGRpRUJJQUFvQWx3Z0FDZ0NHRUVDZEdvZ0FUWUNBQ0FBS0FKY0lBQW9BaGhCQW5ScUtBSUFJUUlnQkNJQklBQW9BbGdnQUNnQ0dFRUNkR29vQWdBMkFnd2dBVUVJTmdJSUlBRW9BZ3dnQVNnQ0NFRUJkSFFoQXlBQklBSTJBZ3dnQVNBRE5nSUlJQUVvQWd3Z0FTZ0NDSEloQVNBQUtBSmNJQUFvQWhoQkFuUnFJQUUyQWdBZ0FDZ0NYQ0FBS0FJWVFRSjBhaWdDQUNFQ0lBUWlBU0FBS0FKWUlBQW9BaGhCQW5ScUtBSUFOZ0lNSUFGQkREWUNDQ0FCS0FJTUlBRW9BZ2hCQVhSMklRTWdBU0FDTmdJTUlBRWdBellDQ0NBQktBSU1JQUVvQWdoeklRRWdBQ2dDWENBQUtBSVlRUUowYWlBQk5nSUFJQUFnQUNnQ1hDQUFLQUlZUVFKMGFpZ0NBRFlDRkNBQUtBSmNJQUFvQWhoQkFuUnFLQUlBSVFJZ0JDSUJJQUFvQWhRMkFnd2dBVUVFTmdJSUlBRW9BZ3dnQVNnQ0NFRUJkSFFoQXlBQklBSTJBZ3dnQVNBRE5nSUlJQUVvQWd3Z0FTZ0NDSE1oQVNBQUtBSmNJQUFvQWhoQkFuUnFJQUUyQWdBZ0FDZ0NYQ0FBS0FJWVFRSjBhaWdDQUNFQ0lBUWlBU0FBS0FJVU5nSU1JQUZCQ0RZQ0NDQUJLQUlNSUFFb0FnaEJBWFIwSVFNZ0FTQUNOZ0lNSUFFZ0F6WUNDQ0FCS0FJTUlBRW9BZ2h6SVFFZ0FDZ0NYQ0FBS0FJWVFRSjBhaUFCTmdJQUlBQW9BbHdnQUNnQ0dFRUNkR29vQWdBaEFpQUVJZ0VnQUNnQ0ZEWUNEQ0FCUVF3MkFnZ2dBU2dDRENBQktBSUlRUUYwZENFRElBRWdBallDRENBQklBTTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQklBQW9BbHdnQUNnQ0dFRUNkR29nQVRZQ0FDQUFJQUFvQWhoQkFXbzJBaGdNQVFzTElBQW9Bb3dCSUFBb0FqeEJBMnhCQVdwQkJIUnFJZ0VnQUNnQ1dDSUNLUUlBTndJQUlBRWdBaWtDQ0RjQ0NDQUFLQUtNQVNBQUtBSThRUU5zUVFKcVFRUjBhaUlCSUFBb0Fsd2lBaWtDQURjQ0FDQUJJQUlwQWdnM0FnZ2dBRUVnYWlBQUtBSmNFRm9nQUNBQUtBSThRUUYwUVFGcUxRQ01ORG9BSHlBQVFRQTJBaEFEUUNBQUtBSVFRUVJKQkVBakFFRVFheUlFSWdFZ0FDZ0NXQ0FBS0FJUVFRSjBhaWdDQURZQ0RDQUJRUWcyQWdnZ0FTZ0NEQ0FCS0FJSVFRRjBkaUVCSUFBb0FsZ2dBQ2dDRUVFQ2RHb2dBVFlDQUNBQUtBSllJQUFvQWhCQkFuUnFLQUlBSVFJZ0JDSUJJQUFvQWx3Z0FDZ0NFRUVDZEdvb0FnQTJBZ3dnQVVFSU5nSUlJQUVvQWd3Z0FTZ0NDRUVCZEhRaEF5QUJJQUkyQWd3Z0FTQUROZ0lJSUFFb0Fnd2dBU2dDQ0hJaEFTQUFLQUpZSUFBb0FoQkJBblJxSUFFMkFnQWdBQ2dDV0NBQUtBSVFRUUowYWlnQ0FDRUNJQUF0QUI4Z0FDZ0NFQkIzSVFNakFFRVFheUlCSUFJMkFnd2dBU0FETmdJSUlBRW9BZ3dnQVNnQ0NITWhBU0FBS0FKWUlBQW9BaEJCQW5ScUlBRTJBZ0FnQUNnQ1dDQUFLQUlRUVFKMGFpZ0NBQ0VDSXdCQkVHc2lBeUFBUVNCcUlBQW9BaEJCQW5ScUtBSUFOZ0lNSXdCQkVHc2lBU0FES0FJTUlnTkJBblpCdi83OCtRTnhJQU5CQm5SQndJR0Robnh4Y2pZQ0RDQUJRUXcyQWdnZ0FTZ0NEQ0FCS0FJSVFRRjBkaUVESXdCQkVHc2lBU0FDTmdJTUlBRWdBellDQ0NBQktBSU1JQUVvQWdoeklRRWdBQ2dDV0NBQUtBSVFRUUowYWlBQk5nSUFJQUFnQUNnQ1dDQUFLQUlRUVFKMGFpZ0NBRFlDRENBQUtBSllJQUFvQWhCQkFuUnFLQUlBSVFJakFFRVFheUlCSUFBb0FndzJBZ3dnQVVFRU5nSUlJQUVvQWd3Z0FTZ0NDRUVCZEhRaEF5TUFRUkJySWdFZ0FqWUNEQ0FCSUFNMkFnZ2dBU2dDRENBQktBSUljeUVCSUFBb0FsZ2dBQ2dDRUVFQ2RHb2dBVFlDQUNBQUtBSllJQUFvQWhCQkFuUnFLQUlBSVFJakFFRVFheUlCSUFBb0FndzJBZ3dnQVVFSU5nSUlJQUVvQWd3Z0FTZ0NDRUVCZEhRaEF5TUFRUkJySWdFZ0FqWUNEQ0FCSUFNMkFnZ2dBU2dDRENBQktBSUljeUVCSUFBb0FsZ2dBQ2dDRUVFQ2RHb2dBVFlDQUNBQUtBSllJQUFvQWhCQkFuUnFLQUlBSVFJakFFRVFheUlCSUFBb0FndzJBZ3dnQVVFTU5nSUlJQUVvQWd3Z0FTZ0NDRUVCZEhRaEF5TUFRUkJySWdFZ0FqWUNEQ0FCSUFNMkFnZ2dBU2dDRENBQktBSUljeUVCSUFBb0FsZ2dBQ2dDRUVFQ2RHb2dBVFlDQUNNQVFSQnJJZ0VnQUNnQ1hDQUFLQUlRUVFKMGFpZ0NBRFlDRENBQlFRZzJBZ2dnQVNnQ0RDQUJLQUlJUVFGMGRpRUJJQUFvQWx3Z0FDZ0NFRUVDZEdvZ0FUWUNBQ0FBS0FKY0lBQW9BaEJCQW5ScUtBSUFJUUlqQUVFUWF5SUJJQUFvQWxnZ0FDZ0NFRUVDZEdvb0FnQTJBZ3dnQVVFTU5nSUlJQUVvQWd3Z0FTZ0NDRUVCZEhZaEF5TUFRUkJySWdFZ0FqWUNEQ0FCSUFNMkFnZ2dBU2dDRENBQktBSUljeUVCSUFBb0Fsd2dBQ2dDRUVFQ2RHb2dBVFlDQUNBQUtBSmNJQUFvQWhCQkFuUnFLQUlBSVFJakFFRVFheUlCSUFBb0Fsd2dBQ2dDRUVFQ2RHb29BZ0EyQWd3Z0FVRUVOZ0lJSUFFb0Fnd2dBU2dDQ0VFQmRIUWhBeU1BUVJCcklnRWdBallDRENBQklBTTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQklBQW9BbHdnQUNnQ0VFRUNkR29nQVRZQ0FDTUFRUkJySWdFZ0FDZ0NYQ0FBS0FJUVFRSjBhaWdDQURZQ0RDQUJRZi8vQXpZQ0NDQUJLQUlNSUFFb0FnaHhJUUVnQUNnQ1hDQUFLQUlRUVFKMGFpQUJOZ0lBSUFBZ0FDZ0NFRUVCYWpZQ0VBd0JDd3NnQUNnQ2pBRWdBQ2dDUEVFRGJFRURha0VFZEdvaUFTQUFLQUpZSWdJcEFnQTNBZ0FnQVNBQ0tRSUlOd0lJSUFBZ0FDZ0NYRFlDQ0NBQUlBQW9BbGcyQWx3Z0FDQUFLQUlJTmdKWUlBQWdBQ2dDUEVFQmFqWUNQQXdCQ3dzZ0FFR1FBV29rQUNBRlFRQTJBZ3dNQWdzZ0JTZ0NBQ0VCSUFVb0FnZ2hBaU1BUWZBQWF5SUFKQUFnQUNBQk5nSnNJQUFnQWpZQ2FDQUFLQUpzUVE0MkF2QUJJQUJCMEFCcUlBQW9BbWdRVGlBQUtBSnNJZ0VnQUNrQ1VEY0NBQ0FCSUFBcEFsZzNBZ2dnQUVGQWF5SUJJQUFvQW1oQkVHb1FUaUFBS0FKc0lnSWdBU2tDQURjQ0VDQUNJQUVwQWdnM0FoZ2dBRUVDTmdJOEEwQUNRQ0FBS0FJOFFRNUxEUUFnQUVFZ2FpQUFRVUJyRUZvZ0FDQUFLQUk4UVFGMlFRRnJMUUNNTkRvQUh5QUFRUUEyQWhnRFFDQUFLQUlZUVFSSkJFQWdBRUhRQUdvaUFpQUFLQUlZSWdGQkFuUnFLQUlBSVFNZ0FDMEFIeUFCRUhjaEJpTUFRUkJySWdRaUFTQUROZ0lNSUFFZ0JqWUNDQ0FCS0FJTUlBRW9BZ2h6SVFFZ0FDZ0NHRUVDZENBQ2FpQUJOZ0lBSUFBb0FoaEJBblFnQW1vb0FnQWhBaUFFSWdFaENpQUJJQUJCSUdvZ0FDZ0NHRUVDZEdvb0FnQTJBZ3dnQ2lBQktBSU1JZ05CQW5aQnYvNzgrUU54SUFOQkJuUkJ3SUdEaG54eGNqWUNEQ0FCUVF3MkFnZ2dBU2dDRENBQktBSUlRUUYwZGlFRElBRWdBallDRENBQklBTTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQklBQkIwQUJxSUFBb0FoaEJBblJxSUFFMkFnQWdBQ0FBUWRBQWFpQUFLQUlZUVFKMGFpZ0NBRFlDRkNBQVFkQUFhaUFBS0FJWVFRSjBhaWdDQUNFQ0lBUWlBU0FBS0FJVU5nSU1JQUZCQkRZQ0NDQUJLQUlNSUFFb0FnaEJBWFIwSVFNZ0FTQUNOZ0lNSUFFZ0F6WUNDQ0FCS0FJTUlBRW9BZ2h6SVFFZ0FFSFFBR29nQUNnQ0dFRUNkR29nQVRZQ0FDQUFRZEFBYWlBQUtBSVlRUUowYWlnQ0FDRUNJQVFpQVNBQUtBSVVOZ0lNSUFGQkNEWUNDQ0FCS0FJTUlBRW9BZ2hCQVhSMElRTWdBU0FDTmdJTUlBRWdBellDQ0NBQktBSU1JQUVvQWdoeklRRWdBRUhRQUdvZ0FDZ0NHRUVDZEdvZ0FUWUNBQ0FBUWRBQWFpQUFLQUlZUVFKMGFpZ0NBQ0VDSUFRaUFTQUFLQUlVTmdJTUlBRkJERFlDQ0NBQktBSU1JQUVvQWdoQkFYUjBJUU1nQVNBQ05nSU1JQUVnQXpZQ0NDQUJLQUlNSUFFb0FnaHpJUUVnQUVIUUFHb2dBQ2dDR0VFQ2RHb2dBVFlDQUNBQUlBQW9BaGhCQVdvMkFoZ01BUXNMSUFBb0Ftd2dBQ2dDUEVFRWRHb2lBU0FBS1FKUU53SUFJQUVnQUNrQ1dEY0NDQ0FBS0FJOFFRNUdEUUFnQUVFZ2FpQUFRZEFBYWhCYUlBQkJBRFlDRUFOQUlBQW9BaEJCQkVrRVFDQUFLQUlRUVFKMElnSWdBRUZBYXlJRGFpZ0NBQ0VHSXdCQkVHc2lCQ0lCSUFJZ0FFRWdhbW9vQWdBMkFnd2dBVUVNTmdJSUlBRW9BZ3dnQVNnQ0NFRUJkSFloQWlBRUlnRWdCallDRENBQklBSTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQklBQW9BaEJCQW5RZ0Eyb2dBVFlDQUNBQUlBQW9BaEJCQW5RZ0Eyb29BZ0EyQWd3Z0FFRkFheUFBS0FJUVFRSjBhaWdDQUNFQ0lBUWlBU0FBS0FJTU5nSU1JQUZCQkRZQ0NDQUJLQUlNSUFFb0FnaEJBWFIwSVFNZ0FTQUNOZ0lNSUFFZ0F6WUNDQ0FCS0FJTUlBRW9BZ2h6SVFFZ0FFRkFheUFBS0FJUVFRSjBhaUFCTmdJQUlBQkJRR3NnQUNnQ0VFRUNkR29vQWdBaEFpQUVJZ0VnQUNnQ0REWUNEQ0FCUVFnMkFnZ2dBU2dDRENBQktBSUlRUUYwZENFRElBRWdBallDRENBQklBTTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQklBQkJRR3NnQUNnQ0VFRUNkR29nQVRZQ0FDQUFRVUJySUFBb0FoQkJBblJxS0FJQUlRSWdCQ0lCSUFBb0FndzJBZ3dnQVVFTU5nSUlJQUVvQWd3Z0FTZ0NDRUVCZEhRaEF5QUJJQUkyQWd3Z0FTQUROZ0lJSUFFb0Fnd2dBU2dDQ0hNaEFTQUFRVUJySUFBb0FoQkJBblJxSUFFMkFnQWdBQ0FBS0FJUVFRRnFOZ0lRREFFTEN5QUFLQUpzSUFBb0FqeEJBV3BCQkhScUlnRWdBRUZBYXlJQ0tRSUFOd0lBSUFFZ0Fpa0NDRGNDQ0NBQUlBQW9BanhCQW1vMkFqd01BUXNMSUFCQjhBQnFKQUFnQlVFQU5nSU1EQUVMSUFWQkFUWUNEQXNnQlNnQ0RDRUFJQVZCRUdva0FDQUFDNjBCQVFGL0l3QkJFR3NpQXlRQUlBTWdBRFlDRENBRElBRTJBZ2dnQXlBQ05nSUVJQU1vQWdRZ0F5Z0NEQkJOSUFOQkFUWUNBQU5BSUFNb0FnQWdBeWdDQ0U5RkJFQWdBeWdDQkJCMklBTW9BZ1FRN2dFZ0F5Z0NCQkR0QVNBREtBSUVJQU1vQWd3Z0F5Z0NBRUVGZEdvUVRTQURJQU1vQWdCQkFXbzJBZ0FNQVFzTElBTW9BZ1FRZGlBREtBSUVFTzRCSUFNb0FnUWdBeWdDRENBREtBSUlRUVYwYWhCTklBTkJFR29rQUF2YkZBRVJmeU1BUVlBQmF5SURKQUFnQXlBQU5nSjhJQU1nQVRZQ2VDQURJQUkyQW5RZ0EwRUFPZ0J6SUFBUUxpQURRZUFBYWhBdUlBTW9BblJCQTA4RVFDQURJQU1vQW5SQkEyczJBbGdnQTBFQU5nSlVBMEFnQXlnQ1ZDQURLQUpZU1FSQUlBTW9BbmdnQXlnQ1ZFRUNhbW90QUFCQkFVc0VRQ0FESUFNb0FsUkJBMm8yQWxRTUFnc0NRQ0FES0FKNElBTW9BbFJCQW1wcUxRQUFRUUZHQkVBQ1FDQURLQUo0SUFNb0FsUkJBV3BxTFFBQURRQWdBeWdDZUNBREtBSlVhaTBBQUEwQUlBTWdBeWdDVkRZQ1NDQURJQU1vQWxSQkEybzJBa3dnQTBFQU5nSlFBa0FnQXlnQ1NFVU5BQ0FES0FKNElBTW9Ba2hCQVd0cUxRQUFEUUFnQXlBREtBSklRUUZyTmdKSUN5QURJQU5CNEFCcUlnRVFnd0kyQWtBZ0F5QUJFSUVDTmdJNElBTkJRR3NnQTBFNGFoQ0FBa0VCY1FSQUlBTW9Ba2dnQTBGQWF4QjhLQUlFYXlFQklBTkJRR3NRZkNBQk5nSUlDeU1BUVJCcklnb2tBQ0FLSUFOQjRBQnFOZ0lNSUFvZ0EwSElBR28yQWdnQ1FDQUtLQUlNSWdRb0FnUWdCQkFZS0FJQVJ3UkFJQW9vQWdnaEFpTUFRU0JySWdFa0FDQUJJQVEyQWh3Z0FTQUNOZ0lZSUFFb0Fod2lCU0VFSXdCQkVHc2lBaUFCUVFocUlnWTJBZ3dnQWlBRU5nSUlJQUpCQVRZQ0JDQUNLQUlNSWdRZ0FpZ0NDRFlDQUNBRUlBSW9BZ2dvQWdRMkFnUWdCQ0FDS0FJSUtBSUVJQUlvQWdSQkRHeHFOZ0lJSUFVUUdDRU5Jd0JCRUdzaUFpQUJLQUlNTmdJTUlBMGdBaWdDRENBQktBSVlFUGdCSUFFZ0FTZ0NERUVNYWpZQ0RDTUFRUkJySWdJZ0JqWUNEQ0FDS0FJTUlnSW9BZ0FnQWlnQ0JEWUNCQ0FCUVNCcUpBQU1BUXNnQ2lnQ0NDRUJJd0JCSUdzaUFpUUFJQUlnQkRZQ0hDQUNJQUUyQWhnZ0FpQUNLQUljSWdjUUdEWUNGQ01BUVJCcklnRWdCellDRENBQktBSU1JZ0VvQWdRZ0FTZ0NBR3RCREcxQkFXb2hCQ01BUVNCcklnRWtBQ0FCSUFjMkFoZ2dBU0FFTmdJVUlBRW9BaGdpQmlFRkl3QkJFR3NpQkNRQUlBUWdCVFlDRENBRUtBSU1FQmdoQ0NNQVFSQnJJZ1VrQUNBRklBZzJBZ3dqQUVFUWF5QUZLQUlNTmdJTUlBVkJFR29rQUNBRVFkV3ExYW9CTmdJSUlBUkIvLy8vL3djMkFnUWdCRUVJYWlBRVFRUnFFR1FvQWdBaEJTQUVRUkJxSkFBZ0FTQUZOZ0lRSUFFb0FoUWdBU2dDRUVzRVFDQUdFR1VBQ3lBQklBWVFUellDREFKQUlBRW9BZ3dnQVNnQ0VFRUJkazhFUUNBQklBRW9BaEEyQWh3TUFRc2dBU0FCS0FJTVFRRjBOZ0lJSUFFZ0FVRUlhaUFCUVJScUVFb29BZ0EyQWh3TElBRW9BaHdoQkNBQlFTQnFKQUFqQUNJQlFSQnJJZ1VnQnpZQ0RDQUZLQUlNSWdVb0FnUWdCU2dDQUd0QkRHMGhCU0FDS0FJVUlRWWdBVUVnYXlJQkpBQWdBU0FDTmdJWUlBRWdCRFlDRkNBQklBVTJBaEFnQVNBR05nSU1JQUVnQVNnQ0dDSUVOZ0ljSUFGQkFEWUNDQ0FFUVF4cUlBRkJDR29nQVNnQ0RCQ0lBU0FFQW44Z0FTZ0NGQVJBSUFRUU1pRUZJQUVvQWhRaENDTUFRUkJySWdZa0FDQUdJQVUyQWd3Z0JpQUlOZ0lJSUFZb0Fnd2hDQ0FHS0FJSUlRa2pBRUVRYXlJRkpBQWdCU0FJTmdJTUlBVWdDVFlDQ0NBRktBSUlJUTRnQlNnQ0RDRUpJd0JCRUdzaUNDUUFJQWdnQ1RZQ0RDTUFRUkJySUFnb0FndzJBZ3dnQ0VFUWFpUUFJQTVCMWFyVnFnRkxCRUFRT1FBTElBVW9BZ2hCREd4QkJCQkJJUWdnQlVFUWFpUUFJQVpCRUdva0FDQUlEQUVMUVFBTE5nSUFJQVFnQkNnQ0FDQUJLQUlRUVF4c2FpSUZOZ0lJSUFRZ0JUWUNCQ0FFS0FJQUlBRW9BaFJCREd4cUlRVWdCQkFkSUFVMkFnQWdBU2dDSEJvZ0FVRWdhaVFBSUFJb0FoUWhEeU1BUVJCcklnRWdBaWdDQ0RZQ0RDQVBJQUVvQWd3Z0FpZ0NHQkQ0QVNBQ0lBSW9BZ2hCREdvMkFnZ2pBRUVRYXlJRUpBQWdCQ0FITmdJTUlBUWdBallDQ0NBRUtBSU1JZ1VRK3dFZ0JSQVlJUVlnQlNnQ0FDRUhJQVVvQWdRaENDQUVLQUlJUVFScUlRa2pBRUVnYXlJQkpBQWdBU0FHTmdJY0lBRWdCellDR0NBQklBZzJBaFFnQVNBSk5nSVFJQUVnQVNnQ0ZDQUJLQUlZYTBFTWJUWUNEQ0FCS0FJUUlnWWdCaWdDQUNBQktBSU1RWFJzYWpZQ0FDQUJLQUlNUVFCS0JFQWdBU2dDRUNnQ0FDQUJLQUlZSUFFb0FneEJER3dRR3hvTElBRkJJR29rQUNBRklBUW9BZ2hCQkdvUUxTQUZRUVJxSUFRb0FnaEJDR29RTFNBRkVCZ2dCQ2dDQ0JBZEVDMGdCQ2dDQ0NBRUtBSUlLQUlFTmdJQUl3QkJFR3NpQmlJQklBVTJBZ3dnQVNnQ0RDSUJLQUlFSUFFb0FnQnJRUXh0SVFFZ0JpUUFJQVlnQlRZQ0RDQUdJQUUyQWdnZ0JpZ0NEQ0lCRUJraENDQUJFQmtnQVJCUFFReHNhaUVKSUFFUUdTQUJFRTlCREd4cUlRc2dBUkFaSUFZb0FnaEJER3hxSVF3akFFRWdheUlISUFFMkFod2dCeUFJTmdJWUlBY2dDVFlDRkNBSElBczJBaEFnQnlBTU5nSU1JQVpCRUdva0FDTUFRUkJySUFVMkFnd2dCRUVRYWlRQUl3QkJFR3NpQVNRQUlBRWdBallDQ0NBQklBRW9BZ2dpQkRZQ0RDTUFRUkJySWdna0FDQUlJQVEyQWd3Z0NDZ0NEQ0lGSVFZZ0JTZ0NCQ0VISXdCQkVHc2lCU1FBSUFVZ0JqWUNEQ0FGSUFjMkFnZ2dCU2dDRENFSElBVW9BZ2doQ1NNQVFSQnJJZ1lrQUNBR0lBYzJBZ1FnQmlBSk5nSUFJQVlvQWdRaEJ3TkFJQVlvQWdBZ0J5Z0NDRWNFUUNBSEVESWhDU0FISUFjb0FnaEJER3NpQ3pZQ0NDQUpJUkFqQUVFUWF5SUpJQXMyQWd3Z0VDQUpLQUlNRUVRTUFRc0xJQVpCRUdva0FDQUZRUkJxSkFBZ0NFRVFhaVFBSUFRb0FnQUVRQ0FFRURJaEV5QUVLQUlBSVJFakFFRVFheUlGSkFBZ0JTQUVOZ0lNSUFVb0Fnd2lCQkFkS0FJQUlBUW9BZ0JyUVF4dElRUWdCVUVRYWlRQUlCTWdFU0FFRVBvQkN5QUJLQUlNR2lBQlFSQnFKQUFnQWtFZ2FpUUFDeUFLUVJCcUpBQUxJQU1nQXlnQ1ZFRURhallDVkF3QkN5QURJQU1vQWxSQkFXbzJBbFFMREFFTEN5QURJQU5CNEFCcUlnRVFnd0kyQWpBZ0F5QUJFSUVDTmdJb0lBTkJNR29nQTBFb2FoQ0FBa0VCY1FSQUlBTW9BblFnQTBFd2FoQjhLQUlFYXlFQklBTkJNR29RZkNBQk5nSUlDeUFESUFOQjRBQnFOZ0lrSUFNZ0F5Z0NKQkQvQVRZQ0lDQURJQU1vQWlRUS9nRTJBaGdEUUNBRFFTQnFJQU5CR0dvUS9RRkJBWEVFUUNNQVFSQnJJZ0VnQTBFZ2FpSUNOZ0lNSUFNZ0FTZ0NEQ2dDQUNJQktBSUlOZ0lRSUFNZ0FTa0NBRGNEQ0NBRElBTW9BZ3dnQXlnQ0NHdEJBbW8yQWdRZ0F5QURLQUlRUVFKck5nSUFJQUFnQTBFRWFpQURFRkFqQUVFUWF5SUJJQUkyQWd3Z0FTZ0NEQ0lCSUFFb0FnQkJER28yQWdBTUFRc0xDeUFEUVFFNkFITWdBMEVCTmdKY0l3QkJFR3NpQkNRQUlBUWdBMEhnQUdvMkFnZ2dCQ0FFS0FJSUlnSTJBZ3dnQWhEN0FTQUNLQUlBQkVBakFFRVFheUlGSkFBZ0JTQUNOZ0lNSUFVb0Fnd2lBU0VLSUFFb0FnQWhCaU1BUVJCcklnRWtBQ0FCSUFvMkFnd2dBU0FHTmdJSUlBRWdBU2dDRENJS0tBSUVOZ0lFQTBBZ0FTZ0NDQ0FCS0FJRVJ3UkFJQW9RR0NFR0lBRWdBU2dDQkVFTWF5SUhOZ0lFSUFZaEVpTUFRUkJySWdZZ0J6WUNEQ0FTSUFZb0Fnd1FSQXdCQ3dzZ0NpQUJLQUlJTmdJRUlBRkJFR29rQUNBRlFSQnFKQUFnQWhBWUlBSW9BZ0FnQWhCUEVQb0JDeUFFS0FJTUdpQUVRUkJxSkFBZ0F5MEFjMEVCY1VVRVFDQUFFQ2NMSUFOQmdBRnFKQUFMb1FFQkFYOGpBRUVnYXlJREpBQWdBeUFBTmdJY0lBTWdBVFlDR0NBRElBSTJBaFFnQTBFQU9nQVRJQUFRTGlBREtBSVVJUUlqQUVFUWF5SUJJQU1vQWhnMkFnd2dBU0FDTmdJSUlBTkJDa0VESUFFb0Fnd3RBQUJCQVhGQmYzTkJBWEViTmdJTUlBTWdBeWdDRkNBREtBSU1hellDQ0NBQUlBTkJER29nQTBFSWFoQlFJQU5CQVRvQUV5QURMUUFUUVFGeFJRUkFJQUFRSndzZ0EwRWdhaVFBQzIwQkFYOGpBRUVnYXlJREpBQWdBeUFBTmdJY0lBTWdBVFlDR0NBRElBSTJBaFFnQTBFQU9nQVRJQUFRTGlBRFFRRTJBZ3dnQXlBREtBSVVRUUZyTmdJSUlBQWdBMEVNYWlBRFFRaHFFRkFnQTBFQk9nQVRJQU10QUJOQkFYRkZCRUFnQUJBbkN5QURRU0JxSkFBTHhBRUJBWDhqQUVFZ2F5SURKQUFnQXlBQU53TVFJQU1nQVRZQ0RDQURJQUkyQWdnQ1FBSkFJQU1vQWd3RVFDQURLQUlJUVFoUERRRUxJQU5CQURvQUh3d0JDd0pBUWN3ekxRQUFRUUZIQkVBZ0F5Z0NEQ0FES1FNUU53QUFEQUVMSUFOQkFEWUNCQU5BSUFNb0FnUkJDRWtFUUNBREtBSU1JQU1vQWdoQkFXc2dBeWdDQkNJQmEyb2dBeWtERUNBQlFRTjByWWc4QUFBZ0F5QURLQUlFUVFGcU5nSUVEQUVMQ3dzZ0EwRUJPZ0FmQ3lBRExRQWZRUUZ4SVFFZ0EwRWdhaVFBSUFFTEtRRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2dBU2dDREVFUWFoQVdJUUFnQVVFUWFpUUFJQUFMeWdFQkJIOGpBRUVRYXlJREpBQWdBeUFBTmdJTUlBTW9BZ3doQVNNQVFSQnJJZ0FrQUNBQUlBRTJBZ3dnQUVFQU5nSUlJQUFnQUNnQ0RDSUJFQmNvQWdBMkFnUWdBQ2dDQ0NFQ0lBRVFGeUFDTmdJQUlBQW9BZ1FFUUNBQkVGSWhBaUFBS0FJRUlRUWpBRUVRYXlJQkpBQWdBU0FDTmdJTUlBRWdCRFlDQ0NBQktBSU1JZ0l0QUFSQkFYRUVRQ0FDS0FJQUlBRW9BZ2hCQ0dvUUxCQ09BZ3NnQVNnQ0NBUkFJQUlvQWdBZ0FTZ0NDQkIvQ3lBQlFSQnFKQUFMSUFCQkVHb2tBQ0FEUVJCcUpBQUxPQUVCZnlNQVFSQnJJZ0VnQURZQ0RFRUFJUUFnQVNnQ0RFRUNTd1IvSUFFb0Fnd2lBQ0FBUVFGcmNVRUFSMEYvY3dWQkFBdEJBWEVMS0FFQmZ5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTZ0NEQ0lBRUtvQkdpQUJRUkJxSkFBZ0FBdjlBUUVHZnlNQVFSQnJJZ1FrQUNBRUlBQTJBZ3dnQkNnQ0RDRUJJd0JCRUdzaUFDUUFJQUFnQVRZQ0RDQUFRUUEyQWdnZ0FDQUFLQUlNSWdFUUZ5Z0NBRFlDQkNBQUtBSUlJUUlnQVJBWElBSTJBZ0FnQUNnQ0JBUkFJQUVRRnlFQklBQW9BZ1FoQXlNQVFSQnJJZ0lrQUNBQ0lBRTJBZ3dnQWlBRE5nSUlJQUlvQWdnaUJRUkFJd0JCRUdzaUFTUUFJQUVnQlRZQ0NDQUJJQUVvQWdnaUF6WUNEQUpBSUFOQkVHb1FGa1VFUUNBQlFRRTJBZ1FNQVFzZ0EwRVFhaUlHRURFZ0JoQTNJQUZCQURZQ0JBc2dBMEVRYWhBYUlBRW9BZ3dhSUFGQkVHb2tBQ0FGRUNJTElBSkJFR29rQUFzZ0FFRVFhaVFBSUFSQkVHb2tBQXRqQVFGL0l3QkJJR3NpQWlRQUlBSWdBRFlDRkNBQ0lBRTJBaEFnQWlBQ0tBSVVJQUlvQWhBUWxBSTJBZ2dqQUVFUWF5SUFJQUlvQWdnMkFnZ2dBQ0FDUVJocU5nSUVJQUFvQWdRZ0FDZ0NDRFlDQUNBQ0tBSVlJUUFnQWtFZ2FpUUFJQUFMcGdJQkJIOGpBRUVRYXlJREpBQWdBeUFBTmdJTUlBTW9BZ3dpQkVFZ2FpRUFJd0JCRUdzaUFpUUFJQUlnQURZQ0RDQUNLQUlNSVFFakFFRVFheUlBSkFBZ0FDQUJOZ0lNSUFBb0Fnd2lBUkFkS0FJQUJFQWdBU0FCUVFocUVCY29BZ0FRaGdJZ0FVRUlhaEFYUVFBMkFnQWdBQ0FCRURRMkFnZ2dBRUVBTmdJRUEwQWdBQ2dDQkNBQUtBSUlTUVJBSUFFZ0FDZ0NCQkFqUVFBMkFnQWdBQ0FBS0FJRVFRRnFOZ0lFREFFTEN5QUJFQjFCQURZQ0FBc2dBRUVRYWlRQUlBSkJFR29rQUNNQVFSQnJJZ0FrQUNBQUlBUkJJR28yQWd3Z0FDZ0NEQ0VDSXdCQkVHc2lBU1FBSUFFZ0FqWUNEQ0FCS0FJTUlnSWdBa0VJYWhBWEtBSUFFSVlDSUFJUWp3SWdBVUVRYWlRQUlBQkJFR29rQUNBRUVLb0JHaUFEUVJCcUpBQWdCQXZXQVFFRWZ5TUFRUkJySWdJa0FDQUNJQUEyQWdnZ0FpQUJOZ0lFSUFJZ0FpZ0NDQ0lBTmdJTUlBQWdBaWdDQkNnQ0FEWUNBQ0FBSUFJb0FnUW9BZ1EyQWdRZ0FDZ0NCQVJBSUFBb0FnUWhBQ01BUVJCcklnRWtBQ0FCSUFBMkFnd2dBU2dDRENFQUl3QkJFR3NpQkNRQUlBUWdBRFlDRENNQVFSQnJJZ0FnQkNnQ0RFRUVhallDRENBQUtBSU1JUU1nQUVFQk5nSUlJQU1nQUNnQ0NDSUZJQU1vQWdBaUEybzJBZ0FnQUNBRElBVnFOZ0lFSUFBb0FnUWFJQVJCRUdva0FDQUJRUkJxSkFBTElBSW9BZ3dhSUFKQkVHb2tBQXQwQVFKL0l3QkJFR3NpQXlRQUlBTWdBRFlDRENBRElBRTJBZ2dnQXlBQ05nSUVJQU1vQWd3aEFTQURLQUlJSVFJZ0F5Z0NCQ0VFSXdCQkVHc2lBQ1FBSUFBZ0FUWUNEQ0FBSUFJMkFnZ2dBQ0FFTmdJRUlBQW9BZ2dnQUNnQ0JFRURkRUVFRUVNZ0FFRVFhaVFBSUFOQkVHb2tBQXZVQWdFRmZ5TUFRUkJySWdNa0FDQURJQUEyQWd3Z0F5Z0NEQ0lFUWR3eE5nSUFJd0JCRUdzaUFpUUFJQUlnQkVFSWFpSUZOZ0lNSUFJb0Fnd2hBU01BUVJCcklnQWtBQ0FBSUFFMkFnd2dBQ2dDRENJQkVCMG9BZ0FFUUNBQklBRkJDR29RRnlnQ0FCQ1FBaUFCUVFocUVCZEJBRFlDQUNBQUlBRVFORFlDQ0NBQVFRQTJBZ1FEUUNBQUtBSUVJQUFvQWdoSkJFQWdBU0FBS0FJRUVDTkJBRFlDQUNBQUlBQW9BZ1JCQVdvMkFnUU1BUXNMSUFFUUhVRUFOZ0lBQ3lBQVFSQnFKQUFnQWtFUWFpUUFJd0JCRUdzaUFDUUFJQUFnQkVFY2FpSUJOZ0lNSUFCQkFEWUNDQ0FBS0FJTVFRQVFrQUVnQUVFUWFpUUFJQUVRY3lNQVFSQnJJZ0FrQUNBQUlBVTJBZ3dnQUNnQ0RDRUNJd0JCRUdzaUFTUUFJQUVnQWpZQ0RDQUJLQUlNSWdJZ0FrRUlhaEFYS0FJQUVKQUNJQUlRandJZ0FVRVFhaVFBSUFCQkVHb2tBQ0FEUVJCcUpBQWdCQXRSQVFGL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQklBRW9BZ3cyQWdnakFFRVFheUlBSUFFb0FnZzJBZ3dnQVNBQUtBSU1OZ0lFSUFFZ0FTZ0NCRFlDQUNBQktBSUFJUUFnQVVFUWFpUUFJQUFMaHdFQkFuOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSU1JUUFnQWlnQ0NBUkFJQUFnQWlnQ0NDZ0NBQkNzQVNBQUlBSW9BZ2dvQWdRUXJBRWdBaUFBRUdBMkFnUWdBaWdDQkNFQUlBSW9BZ2hCRUdvUUxDRUJJd0JCRUdzaUF5QUFOZ0lNSUFNZ0FUWUNDQ0FDS0FJRUlBSW9BZ2dRc2dFTElBSkJFR29rQUF1SEFRRUNmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBaUFCTmdJSUlBSW9BZ3doQUNBQ0tBSUlCRUFnQUNBQ0tBSUlLQUlBRUswQklBQWdBaWdDQ0NnQ0JCQ3RBU0FDSUFBUVlEWUNCQ0FDS0FJRUlRQWdBaWdDQ0VFUWFoQXNJUUVqQUVFUWF5SURJQUEyQWd3Z0F5QUJOZ0lJSUFJb0FnUWdBaWdDQ0JDeUFRc2dBa0VRYWlRQUMxQUJBbjhqQUVFUWF5SUJKQUFnQVNBQU5nSUVJQUVvQWdRUVNDRUNJd0JCRUdzaUFDQUJRUWhxTmdJTUlBQWdBallDQ0NBQUtBSU1JQUFvQWdnMkFnQWdBU2dDQ0NFQUlBRkJFR29rQUNBQUMwb0JBWDhqQUVFUWF5SUNJQUEyQWd3Z0FpQUJOZ0lJSUFJb0Fnd2lBQ0FDS0FJSUtBSUFOZ0lBSUFBZ0FpZ0NDQ2dDQkRZQ0JDQUNLQUlJUVFBMkFnQWdBaWdDQ0VFQU5nSUVDdzBBSXdCQkVHc2dBRFlDREFBTDVBRUJBMzhqQUVFUWF5SURKQUFnQXlBQU5nSU1JQU1nQVRZQ0NDQURLQUlNSVFFZ0F5QURLQUlJRUVJMkFnUWdBeWdDQ0JBbUlRSWpBRUVRYXlJQUpBQWdBQ0FCTmdJTUlBQWdBMEVFYWpZQ0NDQUFJQUkyQWdRZ0FDZ0NDQ0VDSXdCQkVHc2lBU0FBS0FJTUlnUTJBZ3dnQVNBQ05nSUlJQUVvQWd3Z0FTZ0NDQ2dDQURZQ0FDQUFLQUlFSVFJakFFRVFheUlCSkFBZ0FTQUVOZ0lNSUFFZ0FqWUNDQ0FCS0FJSUlRUWpBRUVRYXlJQ0lBRW9BZ3cyQWd3Z0FpQUVOZ0lJSUFKQkFEWUNCQ0FDS0FJTUdpQUJRUkJxSkFBZ0FFRVFhaVFBSUFOQkVHb2tBQXQxQVFOL0l3QkJFR3NpQWlRQUlBSWdBRFlDRENBQ0lBRTJBZ2dnQWtFQk5nSUVJQUlvQWd3aEFTQUNLQUlJSVFNZ0FpZ0NCQ0VFSXdCQkVHc2lBQ1FBSUFBZ0FUWUNEQ0FBSUFNMkFnZ2dBQ0FFTmdJRUlBQW9BZ2dnQUNnQ0JFSG9BR3hCQkJCRElBQkJFR29rQUNBQ1FSQnFKQUFMandFQkFuOGpBRUVnYXlJQ0pBQWdBU2dDQUNFRElBRW9BZ1FoQVNBQ0lBQTJBaGdnQWlBQk5nSVVJQUlnQXpZQ0VDQUNRUkEyQWd3Z0FpZ0NHQ0VCSXdCQkVHc2lBQ0FDUVFocUlnTTJBZ3dnQUNRQUlBQWdBellDRENBQVFSQnFKQUFnQWlBQ0tBSU1OZ0ljUWJRbklBRkJBa0drS0VISUtDQUNLQUlNSUFKQkVHb1FWVUVBRUFRZ0FrRWdhaVFBQytzSkFRMS9Jd0JCRUdzaUFTUUFJQUZCc09rQU5nSU1JQUVvQWd3aEF5TUFRUkJySWdBa0FDQUFJQU0yQWd3Z0FFRUJOZ0lJSUFBb0Fnd2lBeUFBS0FJSU5nSUFJQU5CQURZQ0JDQUFLQUlJRVFrQUlBTkJoT3NBS0FJQU5nSUVRWVRyQUNBRE5nSUFJQUJCRUdva0FDQUJRUkJxSkFBakFFSFFBV3NpQUNRQUlBQkJHR29pQVVIVUswR3dBUkFiR2lBQUlBRTJBc2dCSUFCQkFqWUN6QUVnQUNBQUtRUElBVGNEQ0VHNDZRQWdBRUVJYWlBQVFSQnFFS2NDSUFCQjBBRnFKQUFqQUVHQUEyc2lBQ1FBSUFCQkdHb2lBVUdFTFVIZ0FoQWJHaUFBSUFFMkF2Z0NJQUJCQkRZQy9BSWdBQ0FBS1FQNEFqY0RDRUhFNlFBZ0FFRUlhaUFBUVJCcUVLY0NJQUJCZ0FOcUpBQWpBRUV3YXlJREpBQWdBMEhnTXlnQ0FEWUNJQ0FEUWRnektRSUFOd01ZSUFOQjBETXBBZ0EzQXhBZ0F5QURRUkJxTmdJb0lBTkJCVFlDTENBRElBTXBBeWczQXdnakFFRVFheUlISkFBZ0IwSFk2UUEyQWdnZ0J5QUhLQUlJSWdRMkFnd2dCRUVBTmdJQUlBUkJBRFlDQkNBSFFRQTJBZ1FnQkVFSWFpQUhRUVJxSUFjUXdBRWpBRUVRYXlBRU5nSU1Jd0JCRUdzaUFDQURRUWhxSWdVMkFnd2dBQ2dDRENnQ0JBUkFJd0JCRUdzaUFTSUFJQVUyQWd3Z0FDZ0NEQ2dDQkNFQUlBRWtBQ0FCSUFRMkFnd2dBU0FBTmdJSUlBRW9BZ2doRENBQktBSU1JUUFqQUVFUWF5SUNKQUFnQWlBQU5nSU1JQUlvQWd3UUdDRUlJd0JCRUdzaUJpUUFJQVlnQ0RZQ0RDTUFRUkJySUFZb0FndzJBZ3dnQmtFUWFpUUFJQUpCLy8vLy93TTJBZ2dnQWtILy8vLy9CellDQkNBQ1FRaHFJQUpCQkdvUVpDZ0NBQ0VHSUFKQkVHb2tBQ0FNSUFaTEJFQWdBQkJsQUFzZ0FDQUFFQmdnQVNnQ0NCQ0lBaUlDTmdJRUlBQWdBallDQUNBQUtBSUFJQUVvQWdoQkFuUnFJUUlnQUJBWUlBSTJBZ0FqQUVFUWF5SUNKQUFnQWlBQU5nSU1JQUpCQURZQ0NDQUNLQUlNSWdBUUdTRUlJQUFRR1NBQUVGNUJBblJxSVFrZ0FCQVpJQUFRWGtFQ2RHb2hDaUFBRUJrZ0FpZ0NDRUVDZEdvaEN5TUFRU0JySWdZZ0FEWUNIQ0FHSUFnMkFoZ2dCaUFKTmdJVUlBWWdDallDRUNBR0lBczJBZ3dnQWtFUWFpUUFJQUZCRUdva0FDTUFRUkJySWdBZ0JUWUNEQ0FBS0FJTUtBSUFJUUFqQUVFUWF5SUJJQVUyQWd3Z0FTZ0NEQ0lCS0FJQUlBRW9BZ1JCQW5ScUlRSWpBRUVRYXlJQklBVTJBZ3dnQVNnQ0RDZ0NCQ0VGSXdCQklHc2lBU1FBSUFFZ0JEWUNIQ0FCSUFBMkFoZ2dBU0FDTmdJVUlBRWdCVFlDRUNBQktBSWNJZ1FoQWlBQktBSVFJUVVqQUVFUWF5SUFJQUUyQWd3Z0FDQUNOZ0lJSUFBZ0JUWUNCQ0FBS0FJTUlnSWdBQ2dDQ0RZQ0FDQUNJQUFvQWdnb0FnUTJBZ1FnQWlBQUtBSUlLQUlFSUFBb0FnUkJBblJxTmdJSUlBUVFHQ0VDSUFFb0FoZ2hCQ0FCS0FJVUlRVWpBRUVnYXlJQUpBQWdBQ0FDTmdJY0lBQWdCRFlDR0NBQUlBVTJBaFFnQUNBQlFRUnFOZ0lRSUFBZ0FDZ0NGQ0FBS0FJWWEwRUNkVFlDRENBQUtBSU1RUUJLQkVBZ0FDZ0NFQ2dDQUNBQUtBSVlJQUFvQWd4QkFuUVFHeG9nQUNnQ0VDSUNJQUlvQWdBZ0FDZ0NERUVDZEdvMkFnQUxJQUJCSUdva0FDTUFRUkJySWdBZ0FUWUNEQ0FBS0FJTUlnQW9BZ0FnQUNnQ0JEWUNCQ0FCUVNCcUpBQUxJQWNvQWd3YUlBZEJFR29rQUNBRFFUQnFKQUJCaU9zQVFlTUFOZ0lBUVl6ckFFRUFOZ0lBRU0wQlFZenJBRUdFNndBb0FnQTJBZ0JCaE9zQVFZanJBRFlDQUF1ZkFRRUVmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBa0VCTmdJSUlBSW9BZ3doQVNBQ0tBSUlJUU1qQUVFUWF5SUFKQUFnQUNBQk5nSU1JQUFnQXpZQ0NDQUFLQUlJSVFRZ0FDZ0NEQ0VESXdCQkVHc2lBU1FBSUFFZ0F6WUNEQ01BUVJCcklBRW9BZ3cyQWd3Z0FVRVFhaVFBSUFSQjRzN1lFMHNFUUJBNUFBc2dBQ2dDQ0VIb0FHeEJCQkJCSVFFZ0FFRVFhaVFBSUFKQkVHb2tBQ0FCQytNSEFRTi9Jd0JCRUdzaUJDUUFJQVFnQURZQ0RDQUVJQUUyQWdnZ0JDQUNOZ0lFSUFRZ0F6WUNBQ0FFS0FJTUlRRWdCQ2dDQUVFQU5nSUFJQVFvQWdCQkFEWUNCQ0FFS0FJQUlBUW9BZ2cyQWdnZ0JDZ0NCQ0FFS0FJQU5nSUFJd0JCRUdzaUFDQUJOZ0lNSUFBb0Fnd29BZ0FvQWdBRVFDTUFRUkJySWdBZ0FUWUNEQ0FBS0FJTUtBSUFLQUlBSVFJZ0FDQUJOZ0lNSUFBb0Fnd2dBallDQUFzZ0FSQklLQUlBSVFJZ0JDZ0NCQ2dDQUNFREl3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBTTJBZ2dnQUNnQ0NDSUNJQUlnQUNnQ0RFWTZBQXdEUUFKQUlBQW9BZ2dnQUNnQ0RFY0VmeU1BUVJCcklnSWdBQ2dDQ0RZQ0RDQUNLQUlNS0FJSUxRQU1RWDl6QlVFQUMwRUJjVVVOQUNNQVFSQnJJZ01pQWlFRklBTWdBQ2dDQ0RZQ0RDQUZJQU1vQWd3b0FnZzJBZ3dDUUNBQ0tBSU1JZ0lnQWlnQ0NDZ0NBRVlFUUNNQVFSQnJJZ01pQWlFR0lBTWdBQ2dDQ0RZQ0RDQUdJQU1vQWd3b0FnZzJBZ3dnQUNBQ0tBSU1LQUlJS0FJRU5nSUVBa0FDUUNBQUtBSUVSUTBBSUFBb0FnUXRBQXhCQVhFTkFDTUFRUkJySWdJZ0FDZ0NDRFlDRENBQUlBSW9BZ3dvQWdnMkFnZ2dBQ2dDQ0VFQk9nQU1JQUlnQUNnQ0NEWUNEQ0FBSUFJb0Fnd29BZ2cyQWdnZ0FDZ0NDQ0FBS0FJSUlBQW9BZ3hHT2dBTUlBQW9BZ1JCQVRvQURBd0JDeU1BUVJCcklnSWdBQ2dDQ0RZQ0RDQUNLQUlNSWdJZ0FpZ0NDQ2dDQUVjRVFDTUFRUkJySWdJZ0FDZ0NDRFlDRENBQUlBSW9BZ3dvQWdnMkFnZ2dBQ2dDQ0JDcUFnc2pBRUVRYXlJQ0lBQW9BZ2cyQWd3Z0FDQUNLQUlNS0FJSU5nSUlJQUFvQWdoQkFUb0FEQ0FDSUFBb0FnZzJBZ3dnQUNBQ0tBSU1LQUlJTmdJSUlBQW9BZ2hCQURvQURDQUFLQUlJRUtrQ0RBTUxEQUVMSXdCQkVHc2lBaUFBS0FJSU5nSU1JQUFnQWlnQ0RDZ0NDQ2dDQ0NnQ0FEWUNBQUpBQWtBZ0FDZ0NBRVVOQUNBQUtBSUFMUUFNUVFGeERRQWpBRUVRYXlJQ0lBQW9BZ2cyQWd3Z0FDQUNLQUlNS0FJSU5nSUlJQUFvQWdoQkFUb0FEQ0FDSUFBb0FnZzJBZ3dnQUNBQ0tBSU1LQUlJTmdJSUlBQW9BZ2dnQUNnQ0NDQUFLQUlNUmpvQURDQUFLQUlBUVFFNkFBd01BUXNqQUVFUWF5SUNJQUFvQWdnMkFnd2dBaWdDRENJQ0lBSW9BZ2dvQWdCR0JFQWpBRUVRYXlJQ0lBQW9BZ2cyQWd3Z0FDQUNLQUlNS0FJSU5nSUlJQUFvQWdnUXFRSUxJd0JCRUdzaUFpQUFLQUlJTmdJTUlBQWdBaWdDRENnQ0NEWUNDQ0FBS0FJSVFRRTZBQXdnQWlBQUtBSUlOZ0lNSUFBZ0FpZ0NEQ2dDQ0RZQ0NDQUFLQUlJUVFBNkFBd2dBQ2dDQ0JDcUFnd0NDd3NNQVFzTElBQkJFR29rQUNBQkVCZ2lBQ0FBS0FJQVFRRnFOZ0lBSUFSQkVHb2tBQXY1QlFFSGZ5TUFRVUJxSWdFa0FDQUJJQUEyQWpnZ0FTZ0NPQ0lBUVF4cUVCWWhBaUFBRUVraEF5QUFRUVJxRUJZaEJDQUFLQUlJSVFVZ0FVRUFOZ0l3UWJqcEFDQUJRVEJxRUNraEJpQUJRUUEyQWl3Z0FTQUNJQUJCRUdvZ0F5QUVJQVVnQmtHNDZRQWdBVUVzYWhBcEtBSlFFTnNCTmdJMEFrQWdBU2dDTkVVRVFDQUJRUUE2QUQ4TUFRc2dBRUVVYWhBV0lRSWdBQ2dDR0NFRElBQVFTU0VFSUFCQkRHb1FGaUVGSUFBb0FoQWhCaUFCUVFBMkFpaEJ4T2tBSUFGQktHb1FLU0VISUFGQkFEWUNKQ0FCSUFJZ0F5QUVJQVVnQmlBSFFjVHBBQ0FCUVNScUVDa29BbEFRY0RZQ05DQUJLQUkwUlFSQUlBRkJBRG9BUHd3QkN5QUFRUnhxRUJZaEFpQUFLQUlnSVFNZ0FCQkpJUVFnQUVFTWFoQVdJUVVnQUNnQ0VDRUdJQUZCQVRZQ0lFSEU2UUFnQVVFZ2FoQXBJUWNnQVVFQk5nSWNJQUVnQWlBRElBUWdCU0FHSUFkQnhPa0FJQUZCSEdvUUtTZ0NVQkJ3TmdJMElBRW9BalJGQkVBZ0FVRUFPZ0EvREFFTElBQW9BandFUUNBQlFRRTZBRDhNQVFzZ0FFRWthaEFXSVFJZ0FCQkpJUU1nQUVFVWFoQVdJUVFnQUNnQ0dDRUZJQUZCQVRZQ0dFRzQ2UUFnQVVFWWFoQXBJUVlnQVVFQk5nSVVJQUVnQWlBQVFTaHFJQU1nQkNBRklBWkJ1T2tBSUFGQkZHb1FLU2dDVUJEYkFUWUNOQ0FCS0FJMFJRUkFJQUZCQURvQVB3d0JDeUFBUVN4cUVCWWhBaUFBS0FJd0lRTWdBQkJKSVFRZ0FFRWthaEFXSVFVZ0FDZ0NLQ0VHSUFGQkFqWUNFRUhFNlFBZ0FVRVFhaEFwSVFjZ0FVRUNOZ0lNSUFFZ0FpQURJQVFnQlNBR0lBZEJ4T2tBSUFGQkRHb1FLU2dDVUJCd05nSTBJQUVvQWpSRkJFQWdBVUVBT2dBL0RBRUxJQUJCTkdvUUZpRUNJQUFvQWpnaEF5QUFFRWtoQkNBQVFTUnFFQlloQlNBQUtBSW9JUUFnQVVFRE5nSUlRY1RwQUNBQlFRaHFFQ2toQmlBQlFRTTJBZ1FnQVNBQ0lBTWdCQ0FGSUFBZ0JrSEU2UUFnQVVFRWFoQXBLQUpRRUhBMkFqUWdBU2dDTkVVRVFDQUJRUUE2QUQ4TUFRc2dBVUVCT2dBL0N5QUJMUUEvUVFGeElRQWdBVUZBYXlRQUlBQUxNQUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQTJBZ3dnQWlBQk5nSUlJQUlvQWdnaUFBUkFJQUFRSWdzZ0FrRVFhaVFBQzBFQkFuOGpBRUVRYXlJQklBQTJBZ3dnQVNnQ0RDRUFJQUZCZnpZQ0NDQUFJQUVvQWdnaUFpQUFLQUlBSWdCcU5nSUFJQUVnQUNBQ2FqWUNCQ0FCS0FJRUMrY0RBUUYvSXdCQjRBQnJJZ3NrQUNBTElBQTJBbGdnQ3lBQk5nSlVJQXNnQWpZQ1VDQUxJQU0yQWt3Z0N5QUVOZ0pJSUFzZ0JUWUNSQ0FMSUFZMkFrQWdDeUFITmdJOElBc2dDRFlDT0NBTElBazJBalFnQ3lBS05nSXdJQXRCQ0JBZk5nSW9JQXMxQWpnZ0MwRW9haEFXUVFnUW9BRWFJQXRCQ0JBZk5nSWdJQXMxQWpBZ0MwRWdhaEFXUVFnUW9BRWFJQXNRM0FFMkFod2dDeUFMS0FJd0lBc29BamdnQ3lnQ1FFRVFhbXBxTmdJWUlBc2dDeWdDR0JBZk5nSVFJQXRCRUdvUUZpQUxRU2hxRUJZcEFBQTNBQUFnQzBFUWFoQVdJQXRCSUdvUUZpa0FBRGNBQ0NBTFFSQnFFQlpCRUdvZ0N5Z0NSQ0FMS0FKQUVCc2FJQXRCRUdvUUZrRVFhaUFMS0FKQWFpQUxLQUk4SUFzb0FqZ1FHeG9nQzBFUWFoQVdRUkJxSUFzb0FrQnFJQXNvQWpocUlBc29BalFnQ3lnQ01CQWJHaU1BUVJCcklnQWdDeWdDSERZQ0RDQUxJQUFvQWd3b0FnUVFIellDQ0FKQUlBc29BaHdnQ3lnQ1RDQUxLQUpJSUF0QkVHb1FGaUFMS0FJWUlBdEJDR29RRmlBTFFReHFFTm9CUlFSQUlBdEJBRG9BWHd3QkN5QUxLQUpVSUF0QkNHb1FGaUFMS0FKUUVCc2FJQXRCQVRvQVh3c2dDMEVCTmdJRUlBdEJDR29RR2lBTFFSQnFFQm9nQzBFZ2FoQWFJQXRCS0dvUUdpQUxMUUJmUVFGeElRQWdDMEhnQUdva0FDQUFDd1FBUVFBTE53RUJmeU1BUVJCcklnTWdBRFlDRENBRElBRTJBZ2dnQXlBQ05nSUVJQU1vQWd3aUFDQURLQUlJTmdJQUlBQWdBeWdDQkRZQ0JBc2xBUUYvSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCS0FJTUtBSUFFQXdnQVVFUWFpUUFDekVCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFb0Fnd29BZ0FRRFNBQktBSU1LQUlBSVFBZ0FVRVFhaVFBSUFBTFNRRUJmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBaUFCTmdJSUlBSW9BZ2doQVNNQVFSQnJJZ0FnQWlnQ0REWUNEQ0FBSUFFMkFnZ2dBQ2dDQ0VFQU9nQUFJQUpCRUdva0FBdFhBUUYvSXdCQkVHc2lBeVFBSUFNZ0FEWUNEQ0FESUFFMkFnZ2dBeUFDTmdJRUlBTW9BZ2doQVNNQVFSQnJJZ0FnQXlnQ0RDSUNOZ0lNSUFBZ0FUWUNDQ0FBS0FJTVFRQTJBZ0FnQWhDS0FTQURRUkJxSkFBTFVRRUJmeU1BUVNCcklnTWtBQ0FESUFBMkFod2dBeUFCTmdJWUlBTWdBallDRkNNQVFSQnJJZ0FnQXlnQ0hDSUJOZ0lFSUFBb0FnUkJBRFlDQUNBQUlBRTJBZ1FnQUNnQ0JCb2dBMEVnYWlRQUMwQUJBWDhqQUVFUWF5SUNKQUFnQWlBQU5nSU1JQUlnQVRZQ0NDQUNLQUlNSWdBZ0FpZ0NDQkJDRUpBQklBSW9BZ2dRSmhvZ0FCQVhHaUFDUVJCcUpBQUxUQUVCZndKQUlBRkZEUUFnQVVHQTVBQVFLeUlCUlEwQUlBRW9BZ2dnQUNnQ0NFRi9jM0VOQUNBQUtBSU1JQUVvQWd4QkFCQWdSUTBBSUFBb0FoQWdBU2dDRUVFQUVDQWhBZ3NnQWd0U0FRRi9JQUFvQWdRaEJDQUFLQUlBSWdBZ0FRSi9RUUFnQWtVTkFCb2dCRUVJZFNJQklBUkJBWEZGRFFBYUlBRWdBaWdDQUdvb0FnQUxJQUpxSUFOQkFpQUVRUUp4R3lBQUtBSUFLQUljRVFjQUN3b0FJQUFnQVVFQUVDQUxBd0FCQ3dNQUFBc0VBQ0FBQzVRQkFRUi9Jd0JCRUdzaUJpUUFJd0JCRUdzaUF5UUFJQUVnQUd0QkFuVWhBUU5BSUFFRVFDQURJQUEyQWd3akFFRVFheUlFSUFGQkFYWWlCVFlDRENBRUtBSU1JUVFnQXlBREtBSU1JQVJCQW5ScU5nSU1JQUVnQlVGL2Myb2dCU0FES0FJTUlnVW9BZ0FnQWlnQ0FFa2lCQnNoQVNBRlFRUnFJQUFnQkJzaEFBd0JDd3NnQTBFUWFpUUFJQVpCRUdva0FDQUFDNjBNQVFaL0l3QkJFR3NpQkNRQUlBUWdBRFlDREFKQUlBQkIwd0ZOQkVCQjBOMEFRWkRmQUNBRVFReHFFTWtCS0FJQUlRSU1BUXNnQUVGOFR3UkFFQU1BQ3lBRUlBQWdBRUhTQVc0aUJrSFNBV3dpQW1zMkFnaEJrTjhBUWREZ0FDQUVRUWhxRU1rQlFaRGZBR3RCQW5VaEJRTkFJQVZCQW5SQmtOOEFhaWdDQUNBQ2FpRUNRUVVoQUFOQUFrQWdBRUV2UmdSQVFkTUJJUUFEUUNBQ0lBQnVJZ0VnQUVrTkJTQUNJQUFnQVd4R0RRSWdBaUFBUVFwcUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVF4cUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVJCcUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVJKcUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVJacUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVJ4cUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVI1cUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVNScUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVNocUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVNwcUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVM1cUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVRScUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVRwcUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVR4cUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUWNJQWFpSUJiaUlESUFGSkRRVWdBaUFCSUFOc1JnMENJQUlnQUVIR0FHb2lBVzRpQXlBQlNRMEZJQUlnQVNBRGJFWU5BaUFDSUFCQnlBQnFJZ0Z1SWdNZ0FVa05CU0FDSUFFZ0EyeEdEUUlnQWlBQVFjNEFhaUlCYmlJRElBRkpEUVVnQWlBQklBTnNSZzBDSUFJZ0FFSFNBR29pQVc0aUF5QUJTUTBGSUFJZ0FTQURiRVlOQWlBQ0lBQkIyQUJxSWdGdUlnTWdBVWtOQlNBQ0lBRWdBMnhHRFFJZ0FpQUFRZUFBYWlJQmJpSURJQUZKRFFVZ0FpQUJJQU5zUmcwQ0lBSWdBRUhrQUdvaUFXNGlBeUFCU1EwRklBSWdBU0FEYkVZTkFpQUNJQUJCNWdCcUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUWVvQWFpSUJiaUlESUFGSkRRVWdBaUFCSUFOc1JnMENJQUlnQUVIc0FHb2lBVzRpQXlBQlNRMEZJQUlnQVNBRGJFWU5BaUFDSUFCQjhBQnFJZ0Z1SWdNZ0FVa05CU0FDSUFFZ0EyeEdEUUlnQWlBQVFmZ0FhaUlCYmlJRElBRkpEUVVnQWlBQklBTnNSZzBDSUFJZ0FFSCtBR29pQVc0aUF5QUJTUTBGSUFJZ0FTQURiRVlOQWlBQ0lBQkJnZ0ZxSWdGdUlnTWdBVWtOQlNBQ0lBRWdBMnhHRFFJZ0FpQUFRWWdCYWlJQmJpSURJQUZKRFFVZ0FpQUJJQU5zUmcwQ0lBSWdBRUdLQVdvaUFXNGlBeUFCU1EwRklBSWdBU0FEYkVZTkFpQUNJQUJCamdGcUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUVpRQmFpSUJiaUlESUFGSkRRVWdBaUFCSUFOc1JnMENJQUlnQUVHV0FXb2lBVzRpQXlBQlNRMEZJQUlnQVNBRGJFWU5BaUFDSUFCQm5BRnFJZ0Z1SWdNZ0FVa05CU0FDSUFFZ0EyeEdEUUlnQWlBQVFhSUJhaUlCYmlJRElBRkpEUVVnQWlBQklBTnNSZzBDSUFJZ0FFR21BV29pQVc0aUF5QUJTUTBGSUFJZ0FTQURiRVlOQWlBQ0lBQkJxQUZxSWdGdUlnTWdBVWtOQlNBQ0lBRWdBMnhHRFFJZ0FpQUFRYXdCYWlJQmJpSURJQUZKRFFVZ0FpQUJJQU5zUmcwQ0lBSWdBRUd5QVdvaUFXNGlBeUFCU1EwRklBSWdBU0FEYkVZTkFpQUNJQUJCdEFGcUlnRnVJZ01nQVVrTkJTQUNJQUVnQTJ4R0RRSWdBaUFBUWJvQmFpSUJiaUlESUFGSkRRVWdBaUFCSUFOc1JnMENJQUlnQUVHK0FXb2lBVzRpQXlBQlNRMEZJQUlnQVNBRGJFWU5BaUFDSUFCQndBRnFJZ0Z1SWdNZ0FVa05CU0FDSUFFZ0EyeEdEUUlnQWlBQVFjUUJhaUlCYmlJRElBRkpEUVVnQWlBQklBTnNSZzBDSUFJZ0FFSEdBV29pQVc0aUF5QUJTUTBGSUFJZ0FTQURiRVlOQWlBQ0lBQkIwQUZxSWdGdUlnTWdBVWtOQlNBQVFkSUJhaUVBSUFJZ0FTQURiRWNOQUFzTUFRc2dBaUFBUVFKMFFkRGRBR29vQWdBaUFXNGlBeUFCU1EwRElBQkJBV29oQUNBQ0lBRWdBMnhIRFFFTEMwRUFJQVZCQVdvaUFDQUFRVEJHSWdBYklRVWdBQ0FHYWlJR1FkSUJiQ0VDREFBTEFBc2dCRUVRYWlRQUlBSUxpUXdCQm44Z0FDQUJhaUVGQWtBQ1FDQUFLQUlFSWdKQkFYRU5BQ0FDUVFOeFJRMEJJQUFvQWdBaUFpQUJhaUVCQWtBZ0FDQUNheUlBUWJUd0FDZ0NBRWNFUUNBQ1FmOEJUUVJBSUFBb0FnZ2lCQ0FDUVFOMklnSkJBM1JCeVBBQWFrWWFJQUFvQWd3aUF5QUVSdzBDUWFEd0FFR2c4QUFvQWdCQmZpQUNkM0UyQWdBTUF3c2dBQ2dDR0NFR0FrQWdBQ0FBS0FJTUlnSkhCRUFnQUNnQ0NDSURRYkR3QUNnQ0FFa2FJQU1nQWpZQ0RDQUNJQU0yQWdnTUFRc0NRQ0FBUVJScUlnUW9BZ0FpQXcwQUlBQkJFR29pQkNnQ0FDSUREUUJCQUNFQ0RBRUxBMEFnQkNFSElBTWlBa0VVYWlJRUtBSUFJZ01OQUNBQ1FSQnFJUVFnQWlnQ0VDSUREUUFMSUFkQkFEWUNBQXNnQmtVTkFnSkFJQUFvQWh3aUJFRUNkRUhROGdCcUlnTW9BZ0FnQUVZRVFDQURJQUkyQWdBZ0FnMEJRYVR3QUVHazhBQW9BZ0JCZmlBRWQzRTJBZ0FNQkFzZ0JrRVFRUlFnQmlnQ0VDQUFSaHRxSUFJMkFnQWdBa1VOQXdzZ0FpQUdOZ0lZSUFBb0FoQWlBd1JBSUFJZ0F6WUNFQ0FESUFJMkFoZ0xJQUFvQWhRaUEwVU5BaUFDSUFNMkFoUWdBeUFDTmdJWURBSUxJQVVvQWdRaUFrRURjVUVEUncwQlFhandBQ0FCTmdJQUlBVWdBa0YrY1RZQ0JDQUFJQUZCQVhJMkFnUWdCU0FCTmdJQUR3c2dCQ0FETmdJTUlBTWdCRFlDQ0FzQ1FDQUZLQUlFSWdKQkFuRkZCRUJCdVBBQUtBSUFJQVZHQkVCQnVQQUFJQUEyQWdCQnJQQUFRYXp3QUNnQ0FDQUJhaUlCTmdJQUlBQWdBVUVCY2pZQ0JDQUFRYlR3QUNnQ0FFY05BMEdvOEFCQkFEWUNBRUcwOEFCQkFEWUNBQThMUWJUd0FDZ0NBQ0FGUmdSQVFiVHdBQ0FBTmdJQVFhandBRUdvOEFBb0FnQWdBV29pQVRZQ0FDQUFJQUZCQVhJMkFnUWdBQ0FCYWlBQk5nSUFEd3NnQWtGNGNTQUJhaUVCQWtBZ0FrSC9BVTBFUUNBRktBSUlJZ1FnQWtFRGRpSUNRUU4wUWNqd0FHcEdHaUFFSUFVb0Fnd2lBMFlFUUVHZzhBQkJvUEFBS0FJQVFYNGdBbmR4TmdJQURBSUxJQVFnQXpZQ0RDQURJQVEyQWdnTUFRc2dCU2dDR0NFR0FrQWdCU0FGS0FJTUlnSkhCRUFnQlNnQ0NDSURRYkR3QUNnQ0FFa2FJQU1nQWpZQ0RDQUNJQU0yQWdnTUFRc0NRQ0FGUVJScUlnTW9BZ0FpQkEwQUlBVkJFR29pQXlnQ0FDSUVEUUJCQUNFQ0RBRUxBMEFnQXlFSElBUWlBa0VVYWlJREtBSUFJZ1FOQUNBQ1FSQnFJUU1nQWlnQ0VDSUVEUUFMSUFkQkFEWUNBQXNnQmtVTkFBSkFJQVVvQWh3aUJFRUNkRUhROGdCcUlnTW9BZ0FnQlVZRVFDQURJQUkyQWdBZ0FnMEJRYVR3QUVHazhBQW9BZ0JCZmlBRWQzRTJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUZSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUdOZ0lZSUFVb0FoQWlBd1JBSUFJZ0F6WUNFQ0FESUFJMkFoZ0xJQVVvQWhRaUEwVU5BQ0FDSUFNMkFoUWdBeUFDTmdJWUN5QUFJQUZCQVhJMkFnUWdBQ0FCYWlBQk5nSUFJQUJCdFBBQUtBSUFSdzBCUWFqd0FDQUJOZ0lBRHdzZ0JTQUNRWDV4TmdJRUlBQWdBVUVCY2pZQ0JDQUFJQUZxSUFFMkFnQUxJQUZCL3dGTkJFQWdBVUY0Y1VISThBQnFJUUlDZjBHZzhBQW9BZ0FpQTBFQklBRkJBM1owSWdGeFJRUkFRYUR3QUNBQklBTnlOZ0lBSUFJTUFRc2dBaWdDQ0FzaEFTQUNJQUEyQWdnZ0FTQUFOZ0lNSUFBZ0FqWUNEQ0FBSUFFMkFnZ1BDMEVmSVFRZ0FVSC8vLzhIVFFSQUlBRkJDSFlpQWlBQ1FZRCtQMnBCRUhaQkNIRWlCSFFpQWlBQ1FZRGdIMnBCRUhaQkJIRWlBM1FpQWlBQ1FZQ0FEMnBCRUhaQkFuRWlBblJCRDNZZ0F5QUVjaUFDY21zaUFrRUJkQ0FCSUFKQkZXcDJRUUZ4Y2tFY2FpRUVDeUFBSUFRMkFod2dBRUlBTndJUUlBUkJBblJCMFBJQWFpRUhBa0FDUUVHazhBQW9BZ0FpQTBFQklBUjBJZ0p4UlFSQVFhVHdBQ0FDSUFOeU5nSUFJQWNnQURZQ0FDQUFJQWMyQWhnTUFRc2dBVUVaSUFSQkFYWnJRUUFnQkVFZlJ4dDBJUVFnQnlnQ0FDRUNBMEFnQWlJREtBSUVRWGh4SUFGR0RRSWdCRUVkZGlFQ0lBUkJBWFFoQkNBRElBSkJCSEZxSWdkQkVHb29BZ0FpQWcwQUN5QUhJQUEyQWhBZ0FDQUROZ0lZQ3lBQUlBQTJBZ3dnQUNBQU5nSUlEd3NnQXlnQ0NDSUJJQUEyQWd3Z0F5QUFOZ0lJSUFCQkFEWUNHQ0FBSUFNMkFnd2dBQ0FCTmdJSUN3dlVCQU1CZndaOEFuNGdBTDBpQ0VJd2lLY2hBU0FJUW9DQWdJQ0FnSUQzUDMxQy8vLy8vLytmd2dGWUJFQWdDRUtBZ0lDQWdJQ0ErRDlSQkVCRUFBQUFBQUFBQUFBUEN5QUFSQUFBQUFBQUFQQy9vQ0lBSUFBZ0FFUUFBQUFBQUFDZ1FhSWlBcUFnQXFFaUFpQUNva0h3UENzREFDSUZvaUlHb0NJSElBQWdBQ0FBb2lJRG9pSUVJQVFnQkNBRVFjQTlLd01Bb2lBRFFiZzlLd01Bb2lBQVFiQTlLd01Bb2tHb1BTc0RBS0Nnb0tJZ0EwR2dQU3NEQUtJZ0FFR1lQU3NEQUtKQmtEMHJBd0Nnb0tDaUlBTkJpRDByQXdDaUlBQkJnRDByQXdDaVFmZzhLd01Bb0tDZ29pQUFJQUtoSUFXaUlBQWdBcUNpSUFZZ0FDQUhvYUNnb0tBUEN3SkFJQUZCOFA4QmEwR2ZnSDVOQkVBZ0NFTC8vLy8vLy8vLy8vOEFnMUFFUUNNQVFSQnJJZ0ZFQUFBQUFBQUE4TDg1QXdnZ0FTc0RDRVFBQUFBQUFBQUFBS01QQ3lBSVFvQ0FnSUNBZ0lENC93QlJEUUVnQVVHQWdBSnhSU0FCUWZEL0FYRkI4UDhCUjNGRkJFQWdBQ0FBb1NJQUlBQ2pEd3NnQUVRQUFBQUFBQUF3UTZLOVFvQ0FnSUNBZ0lDZ0EzMGhDQXNnQ0VLQWdJQ0FnSUNBOHo5OUlnbENOSWVudHlJRFFiZzhLd01Bb2lBSlFpMklwMEgvQUhGQkJIUWlBVUhRUFdvckF3Q2dJZ1FnQVVISVBXb3JBd0FnQ0NBSlFvQ0FnSUNBZ0lCNGczMi9JQUZCeU0wQWFpc0RBS0VnQVVIUXpRQnFLd01Bb2FJaUFLQWlCU0FBSUFBZ0FLSWlBcUlnQWlBQVFlZzhLd01Bb2tIZ1BDc0RBS0NpSUFCQjJEd3JBd0NpUWRBOEt3TUFvS0NpSUFKQnlEd3JBd0NpSUFOQndEd3JBd0NpSUFBZ0JDQUZvYUNnb0tDZ0lRQUxJQUFMNGdNQVFlRGtBRUhJRUJBVFFmamtBRUdmREVFQlFRRkJBQkFTUVlUbEFFSFBDMEVCUVlCL1FmOEFFQUpCbk9VQVFjZ0xRUUZCZ0g5Qi93QVFBa0dRNVFCQnhndEJBVUVBUWY4QkVBSkJxT1VBUWR3SlFRSkJnSUIrUWYvL0FSQUNRYlRsQUVIVENVRUNRUUJCLy84REVBSkJ3T1VBUVpZS1FRUkJnSUNBZ0hoQi8vLy8vd2NRQWtITTVRQkJqUXBCQkVFQVFYOFFBa0hZNVFCQm9BNUJCRUdBZ0lDQWVFSC8vLy8vQnhBQ1FlVGxBRUdYRGtFRVFRQkJmeEFDUWZEbEFFSHVDa0VJUW9DQWdJQ0FnSUNBZ0g5Qy8vLy8vLy8vLy8vL0FCQUxRZnpsQUVIdENrRUlRZ0JDZnhBTFFZam1BRUhuQ2tFRUVBcEJsT1lBUWE0UVFRZ1FDa0gwTmtHeURoQUpRYnczUWNZZEVBbEJoRGhCQkVHbERoQUhRZEE0UVFKQnZnNFFCMEdjT1VFRVFjME9FQWRCd0NoQnBBd1FFVUhFT1VFQVFZRWRFQUZCN0RsQkFFSG5IUkFCUWV3b1FRRkJueDBRQVVHVU9rRUNRWkVhRUFGQnZEcEJBMEd3R2hBQlFlUTZRUVJCMkJvUUFVR01PMEVGUWZVYUVBRkJ0RHRCQkVHTUhoQUJRZHc3UVFWQnFoNFFBVUhzT1VFQVFkc2JFQUZCN0NoQkFVRzZHeEFCUVpRNlFRSkJuUndRQVVHOE9rRURRZnNiRUFGQjVEcEJCRUhnSEJBQlFZdzdRUVZCdmh3UUFVR0VQRUVHUVpzYkVBRkJyRHhCQjBIUkhoQUJDelFCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFb0Fnd0VRQ0FCS0FJTUtBSUVFQ2dnQVNnQ0RCQW9DeUFCUVJCcUpBQUxPQUVCZnlNQVFSQnJJZ0VrQUNBQklBQTJBZ3dnQVNnQ0RDZ0NFRVVFUUNBQktBSU1LQUlFRUNnTElBRW9BZ3dRS0NBQlFSQnFKQUFMZkFFRGZ5TUFRUkJySWdJa0FDQUNJQUEyQWd3Z0FpQUJOZ0lJSUFJZ0FpZ0NEQ0lBS0FJRU5nSUVBMEFnQWlnQ0NDQUNLQUlFUndSQUlBQVFHQ0VCSUFJZ0FpZ0NCRUVCYXlJRE5nSUVJQUVoQkNNQVFSQnJJZ0VnQXpZQ0RDQUVJQUVvQWd3UVJBd0JDd3NnQUNBQ0tBSUlOZ0lFSUFKQkVHb2tBQXV5QWdFQmZ5TUFRU0JySWdJa0FDQUNJQUEyQWh3Z0FpQUJOZ0lZSUFJZ0FpZ0NHRUVDZERZQ0JBSkFJQUlvQWhnZ0FpZ0NCRUVDZGtjTkFDQUNJQUlvQWdRUVZ6WUNGQ0FDS0FJVVJRMEFJQUlvQWhSQkFDQUNLQUlFRUNFZ0FrRUFOZ0lJQTBBZ0FpZ0NDQ0FDS0FJY0tBSUlUMFVFUUNBQ0lBSW9BaHdvQWdRZ0FpZ0NDRUVDZEdvb0FnQTJBaEFEUUNBQ0tBSVFCRUFnQWlBQ0tBSVFLQUlJSUFJb0FoaHdOZ0lBSUFJZ0FpZ0NFQ2dDQkRZQ0RDQUNLQUlRSUFJb0FoUWdBaWdDQUVFQ2RHb29BZ0EyQWdRZ0FpZ0NGQ0FDS0FJQVFRSjBhaUFDS0FJUU5nSUFJQUlnQWlnQ0REWUNFQXdCQ3dzZ0FpQUNLQUlJUVFGcU5nSUlEQUVMQ3lBQ0tBSWNLQUlFRUNnZ0FpZ0NIQ0FDS0FJWU5nSUlJQUlvQWh3Z0FpZ0NGRFlDQkFzZ0FrRWdhaVFBQytRQkFRRi9Jd0JCSUdzaUJDUUFJQVFnQURZQ0hDQUVRUUEyQWhnZ0JDQUJOZ0lVSUFRZ0FqWUNFQ0FFSUFNMkFnd2dCQ0FFS0FJY0tBSVVJQVFvQWhRZ0JDZ0NFQkVFQURZQ0NDQUVLQUlZQkVBZ0JDZ0NHQ0FFS0FJSU5nSUFDeUFFSUFRb0Fod2lBQ2dDQkNBRUtBSUlJQUFvQWdod1FRSjBhallDQkNBRUlBUW9BZ1FvQWdBMkFnQURRQUpBSUFRb0FnQkZEUUFnQkNnQ0hDZ0NFQ0FFS0FJQUtBSUFJQVFvQWhRZ0JDZ0NEQkVGQUVVTkFDQUVJQVFvQWdCQkJHbzJBZ1FnQkNBRUtBSUVLQUlBTmdJQURBRUxDeUFFS0FJRUlRQWdCRUVnYWlRQUlBQUw2Z1lCQkg4akFFSFFBR3NpQVNRQUlBRWdBRFlDVENBQklBRW9Ba3dvQWdBMkFrZ2dBU0FCS0FKTUtBSUVOZ0pFSUFFZ0FTZ0NUQ2dDQ0RZQ1FDQUJJQUVvQWt3b0FndzJBandnQVNBQktBSk1LQUlRTmdJNElBRWdBU2dDVENnQ0ZEWUNOQ0FCSUFFb0Frd29BaGcyQWpBZ0FTQUJLQUpNS0FJY05nSXNJQUVvQWtBaEF5QUJLQUlzSVFJakFFRVFheUlFSWdBZ0FTZ0NORFlDRENBQUlBSTJBZ2dnQUNnQ0RDQUFLQUlJY3lFQ0lBUWlBQ0FETmdJTUlBQWdBallDQ0NBQklBQW9BZ3dnQUNnQ0NITTJBaWdnQVNnQ1BDRURJQUVvQWtnaEFpQUFJQUVvQWpBMkFnd2dBQ0FDTmdJSUlBQW9BZ3dnQUNnQ0NITWhBaUFBSUFNMkFnd2dBQ0FDTmdJSUlBRWdBQ2dDRENBQUtBSUljellDSkNBQktBSTRJUU1nQVNnQ1JDRUNJQUFnQVNnQ0xEWUNEQ0FBSUFJMkFnZ2dBQ2dDRENBQUtBSUljeUVDSUFBZ0F6WUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdJZ0lBRW9BalFoQXlBQktBSkFJUUlnQUNBQktBSklOZ0lNSUFBZ0FqWUNDQ0FBS0FJTUlBQW9BZ2h6SVFJZ0FDQUROZ0lNSUFBZ0FqWUNDQ0FCSUFBb0Fnd2dBQ2dDQ0hNMkFod2dBU2dDTUNFRElBRW9BandoQWlBQUlBRW9Ba1EyQWd3Z0FDQUNOZ0lJSUFBb0Fnd2dBQ2dDQ0hNaEFpQUFJQU0yQWd3Z0FDQUNOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWN6WUNHQ0FCS0FJc0lRTWdBU2dDT0NFQ0lBQWdBU2dDUURZQ0RDQUFJQUkyQWdnZ0FDZ0NEQ0FBS0FJSWN5RUNJQUFnQXpZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0lVSUFFb0FrZ2hBeUFCS0FJMElRSWdBQ0FCS0FJOE5nSU1JQUFnQWpZQ0NDQUFLQUlNSUFBb0FnaHpJUUlnQUNBRE5nSU1JQUFnQWpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSE0yQWhBZ0FTZ0NSQ0VESUFFb0FqQWhBaUFBSUFFb0FqZzJBZ3dnQUNBQ05nSUlJQUFvQWd3Z0FDZ0NDSE1oQWlBQUlBTTJBZ3dnQUNBQ05nSUlJQUVnQUNnQ0RDQUFLQUlJY3pZQ0RDQUFJQUVvQWlnMkFnd2dBQ2dDREVGL2N5RUFJQUVvQWt3Z0FEWUNBQ0FCS0FKTUlBRW9BaVEyQWdRZ0JDSUFJQUVvQWlBMkFnd2dBQ2dDREVGL2N5RUFJQUVvQWt3Z0FEWUNDQ0FCS0FKTUlBRW9BaHcyQWd3Z0FTZ0NUQ0FCS0FJWU5nSVFJQUVvQWt3Z0FTZ0NGRFlDRkNBQktBSk1JQUVvQWhBMkFoZ2dBU2dDVENBQktBSU1OZ0ljSUFGQjBBQnFKQUFMY1FFQ2Z5TUFRUkJySWdNa0FDQURJQUEyQWd3Z0F5QUJOZ0lJSUFNZ0FqWUNCQ0FES0FJTUlRRWdBeWdDQ0NFQ0lBTW9BZ1FoQkNNQVFSQnJJZ0FrQUNBQUlBRTJBZ3dnQUNBQ05nSUlJQUFnQkRZQ0JDQUFLQUlJSUFBb0FnUkJBUkJESUFCQkVHb2tBQ0FEUVJCcUpBQUw0UU1CQVg4akFFRkFhaUlDSkFBZ0FpQUFOZ0k4SUFJZ0FUWUNPQ0FDUVRCcUlBSkJLR29nQWlnQ1BDa0RBQ0FDS0FJNEtRTUlFSkVCSUFKQklHb2dBa0VZYWlBQ0tBSThLUU1JSUFJb0FqZ3BBd0FRa1FFZ0FrRVFhaUFDUVFocUlBSW9BandwQXdBZ0FpZ0NQQ2tEQ0lVZ0FpZ0NPQ2tEQUNBQ0tBSTRLUU1JaFJDUkFTQUNJQUlwQXhBZ0Fpa0RNQ0FDS1FNZ2hZVTNBeEFnQWlBQ0tRTUlJQUlwQXlnZ0Fpa0RHSVdGTndNSUlBSWdBaWtEQ0NBQ0tRTWdoVGNESUNBQ0lBSXBBeEFnQWlrREtJVTNBeWdnQWlBQ0tRTW9JQUlwQXpCQ1A0WWdBaWtETUVJK2hvVWdBaWtETUVJNWhvV0ZOd01vSUFJZ0Fpa0RNQ0FDS1FNZ2hUY0RJQ0FDSUFJcEF5Z2dBaWtER0lVM0F4Z2dBaUFDS1FNZ0lBSXBBekJDQVlpRk53TWdJQUlnQWlrRElDQUNLUU1vUWorR2hUY0RJQ0FDSUFJcEF4Z2dBaWtES0VJQmlJVTNBeGdnQWlBQ0tRTWdJQUlwQXpCQ0FvaUZOd01nSUFJZ0Fpa0RJQ0FDS1FNb1FqNkdoVGNESUNBQ0lBSXBBeGdnQWlrREtFSUNpSVUzQXhnZ0FpQUNLUU1nSUFJcEF6QkNCNGlGTndNZ0lBSWdBaWtESUNBQ0tRTW9Ram1HaFRjRElDQUNJQUlwQXhnZ0Fpa0RLRUlIaUlVM0F4Z2dBaWdDUENBQ0tRTWdOd01BSUFJb0Fqd2dBaWtER0RjRENDQUNRVUJySkFBTGNnRUJmeU1BUVJCcklnRWdBRGNEQ0NBQktRTUlJZ0JDT0lnZ0FFSW9pRUtBL2dPRGhDQUFRaGlJUW9DQS9BZURJQUJDQ0loQ2dJQ0ErQStEaElRZ0FFSUloa0tBZ0lDQThCK0RJQUJDR0laQ2dJQ0FnSURnUDRPRUlBQkNLSVpDZ0lDQWdJQ0F3UDhBZ3lBQVFqaUdoSVNFQzBNQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3hCRkdvUWNTQUJLQUlNUVNScUVIRWdBU2dDREVFRWFoQnhJQUVvQWd4Qk5CQ09BU0FCUVJCcUpBQUx4UUVCQVg4akFFSGdBR3NpQXlRQUlBTWdBRFlDWENBRElBRTJBbGdnQXlBQ05nSlVJQU5CQURZQ1VBSkFBa0FDUUNBREtBSmNRUVJxSUFNZ0EwSE1BR29RbFFGRkRRQWdBeWdDWENJQVFRUnFJQUJCSkdvUTNRRkZEUUFnQXlnQ1hFRUVhaUFESUFNb0Frd1FXRVVOQUNBREtBSmNRUVJxSUFNb0FsZ2dBeWdDVkJDVkFRMEJDeUFES0FKVVFRQTJBZ0FNQVFzZ0EwRUJOZ0pRQ3lBREtBSlFCRUFqQUVFUWF5QURLQUpjS0FJQU5nSU1DeUFES0FKUUlRQWdBMEhnQUdva0FDQUFDME1CQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFb0FneEJBRFlDQUNBQktBSU1RUlJxRUhJZ0FTZ0NERUVrYWhCeUlBRW9BZ3hCQkdvUWNpQUJRUkJxSkFBTDN3RUJBWDhqQUVIZ0FHc2lCeVFBSUFjZ0FEWUNXQ0FISUFFMkFsUWdCeUFDTmdKUUlBY2dBellDVENBSElBUTJBa2dnQnlBRk5nSkVJQWNnQmpZQ1FDQUhRUWhxSWdBUTJRRWdCd0ovUVFBZ0FDQUhLQUpVSUFjb0FsQWdCeWdDV0JDU0FVVU5BQnBCQUNBSFFRaHFJQWNvQWt3Z0J5Z0NTQkJ2UlEwQUdpQUhRUWhxSUFjb0FrUWdCeWdDUUJEWUFVRUFSd3RCQVhFMkFnUWdCMEVJYWhEWEFRSkFJQWNvQWdSRkJFQWdCMEVBTmdKY0RBRUxJd0JCRUdzZ0J5Z0NXRFlDRENBSElBY29Ba1EyQWx3TElBY29BbHdoQUNBSFFlQUFhaVFBSUFBTDJBRUJBbjhqQUVFd2F5SUhKQUFnQnlBQU5nSW9JQWNnQVRZQ0pDQUhJQUkyQWlBZ0J5QUROZ0ljSUFjZ0JEWUNHQ0FISUFVMkFoUWdCeUFHTmdJUUFrQWdCeWdDSUNBSEtBSVVJQWNvQWhBZ0J5Z0NIQ0FIS0FJWUlBY29BaWdnQjBFTWFoRGFBVVVFUUVFZlFSeEJweFJCTXhBY0lBZEJBRFlDTEF3QkN5QUhLQUlrSUFjb0FndzJBZ0FnQnlnQ0pDZ0NBQ0VJSXdCQkVHc2lBQ0FIS0FJZ05nSU1JQWdnQUNnQ0RDZ0NCRWNFUUVIUElrR25GRUUzUWRvS0VBQUFDeUFIUVFFMkFpd0xJQWNvQWl3aEFDQUhRVEJxSkFBZ0FBc1BBRUdVNmdCQjFBQVFaMEdZNmdBTC9RTUJBWDhqQUVFZ2F5SUNKQUFnQWlBQU5nSVlJQUlnQVRZQ0ZBSkFBa0FnQWlnQ0ZBUkFJQUlvQWhRb0FnZ05BU0FDS0FJVUtBSUFEUUVMUVIxQjVBQkJsQkZCaWdFUUhDQUNRUUEyQWh3TUFRc2dBa0VBTmdJUUFrQWdBaWdDRkNnQ0NFVU5BQ0FDS0FJVUtBSU1EUUJCaUJoQmxCRkJqd0ZCdmdnUUFBQUxJQUlvQWhRb0FnZ0VRQ0FDSUFJb0FoUWlBQ2dDQ0NBQUtBSU1LQUlFRVFBQU5nSVFJQUlvQWhCRkJFQWdBa0VBTmdJY0RBSUxDeUFDUVFBMkFnd2dBaWdDRkNnQ0FBUkFBa0FnQWlnQ0dDZ0NBQ0FDS0FJVUtBSUFSd1JBSUFJb0FoUW9BZ0FvQWh4RkJFQkJ1eUZCbEJGQm1nRkJ2Z2dRQUFBTElBSWdBaWdDRkNnQ0FDZ0NIQkJYTmdJTUlBSW9BZ3hGQkVBZ0FpZ0NFQVJBSUFJb0FoQWdBaWdDRkNnQ0RDZ0NBQkVCQUFzZ0FrRUFOZ0ljREFRTERBRUxJQUlnQWlnQ0dDZ0NCRFlDRENBQ0tBSVlRUUEyQWdRTEN5QUNLQUlZRUhFZ0FpZ0NHQ0FDS0FJVUtBSUFOZ0lBSUFJb0FoZ2dBaWdDRERZQ0JDQUNLQUlVS0FJQUJFQWdBaWdDR0NnQ0JDQUNLQUlVSWdBb0FnUWdBQ2dDQUNnQ0hCQWVDeUFDS0FJWUlBSW9BaEEyQWdnZ0FpZ0NHQ0FDS0FJVUtBSU1OZ0lNQWtBZ0FpZ0NHQ2dDQ0VVTkFDQUNLQUlZS0FJTURRQkIzUmRCbEJGQnRBRkJ2Z2dRQUFBTElBSkJBVFlDSEFzZ0FpZ0NIQ0VBSUFKQklHb2tBQ0FBQzMwQkFYOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSU1LQUlBS0FJRVJRUkFRZWtoUWZRU1Fmd0JRYllMRUFBQUN5QUNLQUlNS0FJQUtBSUVJZ0FnQUVFQmEzRUVRRUg4SUVIMEVrSDlBVUcyQ3hBQUFBc2dBaWdDQ0NBQ0tBSU1LQUlBS0FJRVFRRnJjU0VBSUFKQkVHb2tBQ0FBQzlZSUFRZC9Jd0JCSUdzaUJpUUFJQVlnQURZQ0dDQUdJQUUyQWhRZ0JpQUNOZ0lRSUFZZ0F6WUNEQ0FHSUFRMkFnZ2dCaUFGTmdJRUFrQWdCaWdDQkVGL1JnUkFJQVlnQmlnQ0dDZ0NFRFlDQkF3QkN5QUdLQUlFQkVBZ0JrRUJOZ0lFQ3lBR0tBSVlJQVlvQWdRMkFoQUxBa0FDUUNBR0tBSVVCRUFnQmlnQ0dDZ0NBQVJBSUFZb0FoZ1E0UUVnQmlnQ0dDQUdLQUlFTmdJUUN5QUdLQUlZSUFZb0FoUTJBZ0FDUUNBR0tBSVlLQUlBS0FJUUJFQWdCaWdDR0NnQ0FDZ0NFQkJYSVFBZ0JpZ0NHQ0FBTmdJSUlBWW9BaGdvQWdoRkJFQWdCaWdDR0VFQU5nSUFJQVpCQURZQ0hBd0ZDd3dCQ3lBR0tBSVlRUUEyQWdnTElBWW9BaGdnQmlnQ0ZDZ0NDRFlDRENBR0tBSVlRUUEyQWhRZ0JpZ0NHQ2dDQUNnQ0ZFR0FCSEVFUUNBR0tBSVlJUUVqQUVFZ2F5SUFKQUFnQUNBQk5nSVlJQUJCQURZQ0ZDQUFRUUEyQWhBZ0FFRUFOZ0lNQWtBZ0FDZ0NHQ2dDQUVVRVFFRWVRZklBUWZRU1FlTUVFQndnQUVFQU5nSWNEQUVMSUFBb0FoZ29BZ0FvQWloRkJFQkJIa0hvQUVIMEVrSG9CQkFjSUFCQkFEWUNIQXdCQ3lBQUlBQW9BaGdpQVNBQUtBSVVJQUFvQWhBZ0FDZ0NEQ0FCS0FJQUtBSW9FUVlBTmdJSUlBQW9BZ2hCZjBZRVFFRWVRZWtBUWZRU1FlNEVFQndnQUVFQU5nSWNEQUVMSUFBZ0FDZ0NDRFlDSEFzZ0FDZ0NIQ0VCSUFCQklHb2tBQ0FCUlFSQUlBWW9BaGhCQURZQ0FFRWVRZXNBUWZRU1FiTUJFQndnQmtFQU5nSWNEQVFMQ3d3QkN5QUdLQUlZS0FJQVJRUkFRUjVCOGdCQjlCSkJ1QUVRSENBR1FRQTJBaHdNQWdzTEFrQWdCaWdDR0NnQ0FDZ0NCRUVCUmcwQUlBWW9BaGdvQWdBb0FnUkJDRVlOQUNBR0tBSVlLQUlBS0FJRVFSQkdEUUJCdWg5QjlCSkJ2Z0ZCNHdnUUFBQUxJd0JCRUdzaUFDQUdLQUlZTmdJTUlBQW9BZ3dvQWdBb0FoUkJnQUp4UlFSQUFrQWpBRUVRYXlJQUlBWW9BaGcyQWd3Q1FBSkFBa0FDUUNBQUtBSU1LQUlBS0FJVVFUOXhEZ1lFQkFFQUFnSURDeUFHS0FJWVFRQTJBbHdMSXdCQkVHc2lBQ0FHS0FJWU5nSU1JQUFvQWd3b0FnQW9BZ3hCRUVzRVFFR0dJa0gwRWtITEFVSGpDQkFBQUFzZ0JpZ0NDQVJBSUFZb0FoZ2lBRUVZYWlFS0lBWW9BZ2doQnlNQVFSQnJJZ0VnQURZQ0RDQUtJQWNnQVNnQ0RDZ0NBQ2dDREJBZUN5QUdLQUlZSWdCQktHb2hDeUFBUVJocUlRZ2pBRUVRYXlJQklBQTJBZ3dnQ3lBSUlBRW9BZ3dvQWdBb0Fnd1FIZ3dDQ3lBR0tBSVlRUUEyQWx3Z0JpZ0NDQVJBSUFZb0FoZ2lBRUVvYWlFTUlBWW9BZ2doQ1NNQVFSQnJJZ0VnQURZQ0RDQU1JQWtnQVNnQ0RDZ0NBQ2dDREJBZUN3d0JDeUFHUVFBMkFod01BZ3NMQWtBZ0JpZ0NERVVFUUNBR0tBSVlLQUlBS0FJVVFZQUJjVVVOQVFzZ0JpZ0NHQ0lBSUFZb0Fnd2dCaWdDQ0NBR0tBSUVJQUFvQWdBb0Fod1JCZ0JGQkVBZ0JrRUFOZ0ljREFJTEN5QUdLQUlZUVFBMkFsZ2dCaWdDR0VFQU5nSmdJQVlvQWhoQkFEWUNoQUVnQmtFQk5nSWNDeUFHS0FJY0lRQWdCa0VnYWlRQUlBQUxpd0VCQjM4akFFRVFheUlDSkFBZ0FpQUFOZ0lNSUFJb0Fnd2lBQkFaSVFNZ0FCQVpJQUFRUjJvaEJDQUFFQmtoQnlNQVFSQnJJZ0VnQURZQ0RDQUhJQUVvQWd3aUFTZ0NCQ0FCS0FJQWEyb2hCU0FBRUJrZ0FCQkhhaUVHSXdCQklHc2lBU0FBTmdJY0lBRWdBellDR0NBQklBUTJBaFFnQVNBRk5nSVFJQUVnQmpZQ0RDQUNRUkJxSkFBTFh3RUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd0NRQ0FCS0FJTUtBSUFSUTBBSUFFb0Fnd29BZ0FvQWlSRkRRQWdBU2dDRENJQUlBQW9BZ0FvQWlRUkFRQUxJQUVvQWd3b0FnZ1FLQ0FCS0FJTVFRQkJpQUVRSVNBQlFSQnFKQUFMV1FFRGZ5TUFRUkJySWdBa0FDQUFRWWdCRUZjMkFnd2dBQ2dDREFSQUlBQW9BZ3doQWlNQVFSQnJJZ0VrQUNBQklBSTJBZ3dnQVNnQ0RFRUFRWWdCRUNFZ0FVRVFhaVFBQ3lBQUtBSU1JUUVnQUVFUWFpUUFJQUVMTWdFQmZ5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FVRUlhaUFCS0FJTVFRUVFIaUFCS0FJSUlRQWdBVUVRYWlRQUlBQUxPZ0VCZnlNQVFTQnJJZ1lrQUNBR0lBQTJBaHdnQmlBQk5nSVlJQVlnQWpZQ0ZDQUdJQU0yQWhBZ0JpQUVOZ0lNSUFZZ0JUWUNDQkFEQUF0dUFRRi9Jd0JCRUdzaUFTQUFOZ0lNSUFGQkVEWUNDQ0FCUVFFMkFnUURRQ0FCSUFFb0FnaEJBV3MyQWdnZ0FTQUJLQUlNSUFFb0FnaHFMUUFBSUFFb0FnUnFOZ0lFSUFFb0Fnd2dBU2dDQ0dvZ0FTZ0NCRG9BQUNBQklBRW9BZ1JCQ0hZMkFnUWdBU2dDQ0EwQUN3dHVBUUYvSXdCQkVHc2lBU0FBTmdJTUlBRkJERFlDQ0NBQlFRRTJBZ1FEUUNBQklBRW9BZ2hCQVdzMkFnZ2dBU0FCS0FJTUlBRW9BZ2hxTFFBQUlBRW9BZ1JxTmdJRUlBRW9BZ3dnQVNnQ0NHb2dBU2dDQkRvQUFDQUJJQUVvQWdSQkNIWTJBZ1FnQVNnQ0NBMEFDd3VuQlFFQmZ5TUFRVEJySWdna0FDQUlJQUEyQWl3Z0NDQUJOZ0lvSUFnZ0FqWUNKQ0FJSUFNMkFpQWdDQ0FFTmdJY0lBZ2dCVFlDR0NBSUlBWTJBaFFnQ0NBSE5nSVFBa0FDUUNBSUtBSWdSUTBBSUFnb0FoaEZEUUFnQ0NnQ0ZBMEJDMEhuQzBHL0VrSGFBRUgzQ1JBQUFBc0NRQ0FJS0FJa1JRMEFJQWdvQWl3RVFDQUlLQUlvRFFFTFFiY2lRYjhTUWRzQVFmY0pFQUFBQ3lBSUtBSVVLQUlBUVJCUEJFQkJtQ0JCdnhKQjNBQkI5d2tRQUFBTElBZ2dDQ2dDRkNnQ0FEWUNEQU5BSUFnb0Fnd0VmeUFJS0FJa1FRQkhCVUVBQzBFQmNRUkFJQWdnQ0NnQ0xDSUFRUUZxTmdJc0lBQXRBQUFnQ0NnQ0dDQUlLQUlNYWkwQUFITWhBQ0FJSUFnb0FpZ2lBVUVCYWpZQ0tDQUJJQUE2QUFBZ0NDQUlLQUlrUVFGck5nSWtJQWdnQ0NnQ0RFRUJha0VQY1RZQ0RBd0JDd3NEUUNBSUtBSWtRUkJQQkVBZ0NDZ0NIQ0FJS0FJWUlBZ29BaUFnQ0NnQ0VCRURBQ0FJS0FJY0VPVUJJQWdvQWlnaEFTQUlLQUlzSVFJZ0NDZ0NHQ0VESXdCQkVHc2lBQ1FBSUFBZ0FUWUNEQ0FBSUFJMkFnZ2dBQ0FETmdJRUlBQkJBRFlDQUFOQUlBQW9BZ0JCRUVrRVFDQUFLQUlBSWdFZ0FDZ0NER29nQVNBQUtBSUlhaERqQVNBQUtBSUVJQUFvQWdCcUVPTUJjeENaQVNBQUlBQW9BZ0JCQkdvMkFnQU1BUXNMSUFCQkVHb2tBQ0FJSUFnb0FpUkJFR3MyQWlRZ0NDQUlLQUlvUVJCcU5nSW9JQWdnQ0NnQ0xFRVFhallDTENBSVFRQTJBZ3dNQVFzTElBZ29BaVFFUUNBSUtBSWNJQWdvQWhnZ0NDZ0NJQ0FJS0FJUUVRTUFJQWdvQWh3UTVRRURRQ0FJSUFnb0FpUWlBRUVCYXpZQ0pDQUFCRUFnQ0NnQ0RDSUFJQWdvQWlocUlBQWdDQ2dDTEdvdEFBQWdBQ0FJS0FJWWFpMEFBSE02QUFBZ0NDQUlLQUlNUVFGcU5nSU1EQUVMQ3dzZ0NDZ0NGQ0FJS0FJTU5nSUFJQWhCTUdva0FBdmNCUUVCZnlNQVFUQnJJZ2drQUNBSUlBQTJBaXdnQ0NBQk5nSW9JQWdnQWpZQ0pDQUlJQU0yQWlBZ0NDQUVOZ0ljSUFnZ0JUWUNHQ0FJSUFZMkFoUWdDQ0FITmdJUUFrQUNRQ0FJS0FJZ1JRMEFJQWdvQWhoRkRRQWdDQ2dDRkEwQkMwSG5DMEcvRWtHTEFVR25JQkFBQUFzQ1FDQUlLQUlrUlEwQUlBZ29BaXdFUUNBSUtBSW9EUUVMUWJjaVFiOFNRWXdCUWFjZ0VBQUFDeUFJS0FJVUtBSUFRUkJQQkVCQm1DQkJ2eEpCalFGQnB5QVFBQUFMSUFnZ0NDZ0NGQ2dDQURZQ0RBTkFRUUFoQUNBSUtBSU1CSDhnQ0NnQ0pFRUFSd1ZCQUF0QkFYRUVRQ0FJSUFnb0Fpd2lBRUVCYWpZQ0xDQUFMUUFBSUFnb0FoZ2dDQ2dDREdvdEFBQnpJUUFnQ0NBSUtBSW9JZ0ZCQVdvMkFpZ2dBU0FBT2dBQUlBZ2dDQ2dDSkVFQmF6WUNKQ0FJSUFnb0FneEJBV3BCRDNFMkFnd01BUXNMSUFnZ0NDZ0NIRUVNYWhBa05nSUlBMEFnQ0NnQ0pFRVFUd1JBSUFnZ0NDZ0NKRUVFZGpZQ0JDQUlJQWdvQWdRZ0NDZ0NDR28yQWdnZ0NDZ0NDQ0FJS0FJRVNRUkFJQWdnQ0NnQ0JDQUlLQUlJYXpZQ0JDQUlRUUEyQWdnTElBZ29BaXdnQ0NnQ0tDQUlLQUlFSUFnb0FpQWdDQ2dDSENBSUtBSVFFUWdBSUFnb0FoeEJER29nQ0NnQ0NCQk1JQWdvQWdoRkJFQWdDQ2dDSEJEbUFRc2dDQ0FJS0FJRVFRUjBOZ0lFSUFnZ0NDZ0NKQ0FJS0FJRWF6WUNKQ0FJSUFnb0FnUWdDQ2dDS0dvMkFpZ2dDQ0FJS0FJRUlBZ29BaXhxTmdJc0RBRUxDeUFJS0FJa0JFQWdDQ2dDR0VFQVFSQVFJU0FJS0FJWUlBZ29BaGhCQVNBSUtBSWdJQWdvQWh3Z0NDZ0NFQkVJQUNBSUlBZ29BZ2hCQVdvMkFnZ2dDQ2dDSEVFTWFpQUlLQUlJRUV3Z0NDZ0NDRVVFUUNBSUtBSWNFT1lCQ3dOQUlBZ2dDQ2dDSkNJQVFRRnJOZ0lrSUFBRVFDQUlLQUlNSWdBZ0NDZ0NLR29nQUNBSUtBSXNhaTBBQUNBQUlBZ29BaGhxTFFBQWN6b0FBQ0FJSUFnb0FneEJBV28yQWd3TUFRc0xDeUFJS0FJVUlBZ29BZ3cyQWdBZ0NFRXdhaVFBQ3pjQkFYOGpBRUVRYXlJQklBQTJBZ3dnQVNnQ0RDSUFRUmgySUFCQkNIWkJnUDREY1hJZ0FFRUlkRUdBZ1B3SGNTQUFRUmgwY25JTE1nRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2dBU2dDREJEVEFTQUJLQUlNRUhZZ0FTZ0NEQkRUQVNBQlFSQnFKQUFMbndVQkEzOGpBRUVnYXlJQkpBQWdBU0FBTmdJY0lBRkJBRFlDR0FOQUlBRW9BaGhCQ0VrRVFDTUFRUkJySWdBZ0FTZ0NIQ0FCS0FJWVFRSjBhaWdDQURZQ0RDQUFRWU9HakJnMkFnZ2dBU0FBS0FJTUlBQW9BZ2h4TmdJVUlBQWdBU2dDSENBQktBSVlRUUowYWlnQ0FEWUNEQ0FBUVl5WXNPQUFOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWNUWUNFQ0FBSUFFb0Fod2dBU2dDR0VFQ2RHb29BZ0EyQWd3Z0FFR3c0TUNCQXpZQ0NDQUJJQUFvQWd3Z0FDZ0NDSEUyQWd3Z0FDQUJLQUljSUFFb0FoaEJBblJxS0FJQU5nSU1JQUJCd0lHRGhudzJBZ2dnQVNBQUtBSU1JQUFvQWdoeE5nSUlJQUFnQVNnQ0VEWUNEQ0FBUVF3MkFnZ2dBQ2dDRENBQUtBSUlRUUYwZGlFQ0lBQWdBU2dDRURZQ0RDQUFRUVEyQWdnZ0FDZ0NEQ0FBS0FJSVFRRjBkQ0VESUFBZ0FqWUNEQ0FBSUFNMkFnZ2dBU0FBS0FJTUlBQW9BZ2h5TmdJUUlBQWdBU2dDRERZQ0RDQUFRUWcyQWdnZ0FDZ0NEQ0FBS0FJSVFRRjBkaUVDSUFBZ0FTZ0NERFlDRENBQVFRZzJBZ2dnQUNnQ0RDQUFLQUlJUVFGMGRDRURJQUFnQWpZQ0RDQUFJQU0yQWdnZ0FTQUFLQUlNSUFBb0FnaHlOZ0lNSUFBZ0FTZ0NDRFlDRENBQVFRUTJBZ2dnQUNnQ0RDQUFLQUlJUVFGMGRpRUNJQUFnQVNnQ0NEWUNEQ0FBUVF3MkFnZ2dBQ2dDRENBQUtBSUlRUUYwZENFRElBQWdBallDRENBQUlBTTJBZ2dnQVNBQUtBSU1JQUFvQWdoeU5nSUlJQUVvQWhBaEFpQUFJQUVvQWhRMkFnd2dBQ0FDTmdJSUlBQW9BZ3dnQUNnQ0NISWhBaUFCS0FJSUlRTWdBQ0FCS0FJTU5nSU1JQUFnQXpZQ0NDQUFLQUlNSUFBb0FnaHlJUU1nQUNBQ05nSU1JQUFnQXpZQ0NDQUFLQUlNSUFBb0FnaHlJUUFnQVNnQ0hDQUJLQUlZUVFKMGFpQUFOZ0lBSUFFZ0FTZ0NHRUVCYWpZQ0dBd0JDd3NnQVVFZ2FpUUFDN0FCQVFGL0l3QkJFR3NpQXlRQUlBTWdBRFlDRENBRElBRTJBZ2dnQXlBQ05nSUVJQU1vQWdSQkFrOEVRRUdTR1VIY0VFR0NBa0hIQ2hBQUFBc2dBeWdDQ0NBREtBSU1JQU1vQWdSQkFuUnFLQUlBTmdJQUlBTW9BZ2dnQXlnQ0RDQURLQUlFUVFKcVFRSjBhaWdDQURZQ0JDQURLQUlJSUFNb0Fnd2dBeWdDQkVFRWFrRUNkR29vQWdBMkFnZ2dBeWdDQ0NBREtBSU1JQU1vQWdSQkJtcEJBblJxS0FJQU5nSU1JQU5CRUdva0FBdm9EZ0VGZnlNQVFmQUFheUlCSkFBZ0FTQUFOZ0pzSUFFZ0FTZ0NiQ2dDQURZQ2FDQUJJQUVvQW13b0FnUTJBbVFnQVNBQktBSnNLQUlJTmdKZ0lBRWdBU2dDYkNnQ0REWUNYQ0FCSUFFb0Ftd29BaEEyQWxnZ0FTQUJLQUpzS0FJVU5nSlVJQUVnQVNnQ2JDZ0NHRFlDVUNBQklBRW9BbXdvQWh3MkFrd2pBRUVRYXlJRElnQWdBU2dDYURZQ0RDQUJJQUFvQWd3aUFFRUNka0cvL3Z6NUEzRWdBRUVHZEVIQWdZT0dmSEZ5TmdKSUlBRW9Ba2doQWlBRElnQWdBU2dDYURZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0pFSUFBZ0FTZ0NaRFlDRENBQklBQW9BZ3dpQUVFQ2RrRy8vdno1QTNFZ0FFRUdkRUhBZ1lPR2ZIRnlOZ0pBSUFFb0FrQWhBaUFESWdBZ0FTZ0NaRFlDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nSThJQUFnQVNnQ1lEWUNEQ0FCSUFBb0Fnd2lBRUVDZGtHLy92ejVBM0VnQUVFR2RFSEFnWU9HZkhGeU5nSTRJQUVvQWpnaEFpQURJZ0FnQVNnQ1lEWUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdJMElBQWdBU2dDWERZQ0RDQUJJQUFvQWd3aUFFRUNka0cvL3Z6NUEzRWdBRUVHZEVIQWdZT0dmSEZ5TmdJd0lBRW9BakFoQWlBRElnQWdBU2dDWERZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0lzSUFBZ0FTZ0NXRFlDRENBQklBQW9BZ3dpQUVFQ2RrRy8vdno1QTNFZ0FFRUdkRUhBZ1lPR2ZIRnlOZ0lvSUFFb0FpZ2hBaUFESWdBZ0FTZ0NXRFlDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nSWtJQUFnQVNnQ1ZEWUNEQ0FCSUFBb0Fnd2lBRUVDZGtHLy92ejVBM0VnQUVFR2RFSEFnWU9HZkhGeU5nSWdJQUVvQWlBaEFpQURJZ0FnQVNnQ1ZEWUNEQ0FBSUFJMkFnZ2dBU0FBS0FJTUlBQW9BZ2h6TmdJY0lBQWdBU2dDVURZQ0RDQUJJQUFvQWd3aUFFRUNka0cvL3Z6NUEzRWdBRUVHZEVIQWdZT0dmSEZ5TmdJWUlBRW9BaGdoQWlBRElnQWdBU2dDVURZQ0RDQUFJQUkyQWdnZ0FTQUFLQUlNSUFBb0FnaHpOZ0lVSUFBZ0FTZ0NURFlDRENBQklBQW9BZ3dpQUVFQ2RrRy8vdno1QTNFZ0FFRUdkRUhBZ1lPR2ZIRnlOZ0lRSUFFb0FoQWhBaUFESWdBZ0FTZ0NURFlDRENBQUlBSTJBZ2dnQVNBQUtBSU1JQUFvQWdoek5nSU1JQUVvQWtnaEFpQUFJQUVvQWd3MkFnd2dBQ0FDTmdJSUlBQW9BZ3dnQUNnQ0NITWhBaUFBSUFFb0FrUTJBZ3dnQUNnQ0RDSUFRUVIyUVkrZXZQZ0FjU0FBUVFSMFFmRGh3NGQvY1hJaEJDQURJZ0FnQWpZQ0RDQUFJQVEyQWdnZ0FDZ0NEQ0FBS0FJSWN5RUFJQUVvQW13Z0FEWUNBQ0FCS0FJTUlRSWdBeUlBSUFFb0FrUTJBZ3dnQUNBQ05nSUlJQUFvQWd3Z0FDZ0NDSE1oQWlBQktBSkFJUVFnQUNBQktBSThOZ0lNSUFBb0Fnd2lBRUVFZGtHUG5yejRBSEVnQUVFRWRFSHc0Y09IZjNGeUlRVWdBeUlBSUFRMkFnd2dBQ0FGTmdJSUlBQW9BZ3dnQUNnQ0NITWhCQ0FBSUFJMkFnd2dBQ0FFTmdJSUlBQW9BZ3dnQUNnQ0NITWhBQ0FCS0FKc0lBQTJBZ1FnQVNnQ09DRUNJQU1pQUNBQktBSThOZ0lNSUFBZ0FqWUNDQ0FBS0FJTUlBQW9BZ2h6SVFJZ0FDQUJLQUkwTmdJTUlBQW9BZ3dpQUVFRWRrR1Bucno0QUhFZ0FFRUVkRUh3NGNPSGYzRnlJUVFnQXlJQUlBSTJBZ3dnQUNBRU5nSUlJQUFvQWd3Z0FDZ0NDSE1oQUNBQktBSnNJQUEyQWdnZ0FTZ0NEQ0VDSUFNaUFDQUJLQUkwTmdJTUlBQWdBallDQ0NBQUtBSU1JQUFvQWdoeklRSWdBU2dDTUNFRUlBQWdBU2dDTERZQ0RDQUFLQUlNSWdCQkJIWkJqNTY4K0FCeElBQkJCSFJCOE9IRGgzOXhjaUVGSUFNaUFDQUVOZ0lNSUFBZ0JUWUNDQ0FBS0FJTUlBQW9BZ2h6SVFRZ0FDQUNOZ0lNSUFBZ0JEWUNDQ0FBS0FJTUlBQW9BZ2h6SVFBZ0FTZ0NiQ0FBTmdJTUlBRW9BZ3doQWlBRElnQWdBU2dDTERZQ0RDQUFJQUkyQWdnZ0FDZ0NEQ0FBS0FJSWN5RUNJQUVvQWlnaEJDQUFJQUVvQWlRMkFnd2dBQ2dDRENJQVFRUjJRWStldlBnQWNTQUFRUVIwUWZEaHc0ZC9jWEloQlNBRElnQWdCRFlDRENBQUlBVTJBZ2dnQUNnQ0RDQUFLQUlJY3lFRUlBQWdBallDRENBQUlBUTJBZ2dnQUNnQ0RDQUFLQUlJY3lFQUlBRW9BbXdnQURZQ0VDQUJLQUlnSVFJZ0F5SUFJQUVvQWlRMkFnd2dBQ0FDTmdJSUlBQW9BZ3dnQUNnQ0NITWhBaUFBSUFFb0FodzJBZ3dnQUNnQ0RDSUFRUVIyUVkrZXZQZ0FjU0FBUVFSMFFmRGh3NGQvY1hJaEJDQURJZ0FnQWpZQ0RDQUFJQVEyQWdnZ0FDZ0NEQ0FBS0FJSWN5RUFJQUVvQW13Z0FEWUNGQ0FCS0FJWUlRSWdBeUlBSUFFb0FodzJBZ3dnQUNBQ05nSUlJQUFvQWd3Z0FDZ0NDSE1oQWlBQUlBRW9BaFEyQWd3Z0FDZ0NEQ0lBUVFSMlFZK2V2UGdBY1NBQVFRUjBRZkRodzRkL2NYSWhCQ0FESWdBZ0FqWUNEQ0FBSUFRMkFnZ2dBQ2dDRENBQUtBSUljeUVBSUFFb0Ftd2dBRFlDR0NBQktBSVFJUUlnQXlJQUlBRW9BaFEyQWd3Z0FDQUNOZ0lJSUFBb0Fnd2dBQ2dDQ0hNaEFpQUFJQUVvQWd3MkFnd2dBQ2dDRENJQVFRUjJRWStldlBnQWNTQUFRUVIwUWZEaHc0ZC9jWEloQkNBRElnQWdBallDRENBQUlBUTJBZ2dnQUNnQ0RDQUFLQUlJY3lFQUlBRW9BbXdnQURZQ0hDQUJRZkFBYWlRQUM1OEZBUU4vSXdCQklHc2lBU1FBSUFFZ0FEWUNIQ0FCUVFBMkFoZ0RRQ0FCS0FJWVFRaEpCRUFqQUVFUWF5SUFJQUVvQWh3Z0FTZ0NHRUVDZEdvb0FnQTJBZ3dnQUVHRGhvd1lOZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWNUWUNGQ0FBSUFFb0Fod2dBU2dDR0VFQ2RHb29BZ0EyQWd3Z0FFR01tTERnQURZQ0NDQUJJQUFvQWd3Z0FDZ0NDSEUyQWhBZ0FDQUJLQUljSUFFb0FoaEJBblJxS0FJQU5nSU1JQUJCc09EQWdRTTJBZ2dnQVNBQUtBSU1JQUFvQWdoeE5nSU1JQUFnQVNnQ0hDQUJLQUlZUVFKMGFpZ0NBRFlDRENBQVFjQ0JnNFo4TmdJSUlBRWdBQ2dDRENBQUtBSUljVFlDQ0NBQUlBRW9BaEEyQWd3Z0FFRUVOZ0lJSUFBb0Fnd2dBQ2dDQ0VFQmRIWWhBaUFBSUFFb0FoQTJBZ3dnQUVFTU5nSUlJQUFvQWd3Z0FDZ0NDRUVCZEhRaEF5QUFJQUkyQWd3Z0FDQUROZ0lJSUFFZ0FDZ0NEQ0FBS0FJSWNqWUNFQ0FBSUFFb0FndzJBZ3dnQUVFSU5nSUlJQUFvQWd3Z0FDZ0NDRUVCZEhZaEFpQUFJQUVvQWd3MkFnd2dBRUVJTmdJSUlBQW9BZ3dnQUNnQ0NFRUJkSFFoQXlBQUlBSTJBZ3dnQUNBRE5nSUlJQUVnQUNnQ0RDQUFLQUlJY2pZQ0RDQUFJQUVvQWdnMkFnd2dBRUVNTmdJSUlBQW9BZ3dnQUNnQ0NFRUJkSFloQWlBQUlBRW9BZ2cyQWd3Z0FFRUVOZ0lJSUFBb0Fnd2dBQ2dDQ0VFQmRIUWhBeUFBSUFJMkFnd2dBQ0FETmdJSUlBRWdBQ2dDRENBQUtBSUljallDQ0NBQktBSVFJUUlnQUNBQktBSVVOZ0lNSUFBZ0FqWUNDQ0FBS0FJTUlBQW9BZ2h5SVFJZ0FTZ0NDQ0VESUFBZ0FTZ0NERFlDRENBQUlBTTJBZ2dnQUNnQ0RDQUFLQUlJY2lFRElBQWdBallDRENBQUlBTTJBZ2dnQUNnQ0RDQUFLQUlJY2lFQUlBRW9BaHdnQVNnQ0dFRUNkR29nQURZQ0FDQUJJQUVvQWhoQkFXbzJBaGdNQVFzTElBRkJJR29rQUF1TERBRURmeU1BUVJCcklnVWtBQ0FGSUFBMkFnd2dCU0FCTmdJSUlBVWdBallDQkNBRktBSUVJQVVvQWd3Z0JTZ0NDRUVGZEdvUVRTQUZLQUlFRU9zQklBVW9BZ1FRNmdFZ0JTQUZLQUlJUVFGck5nSUFBMEFnQlNnQ0FBUkFJQVVvQWdRZ0JTZ0NEQ0FGS0FJQVFRVjBhaEJOSUFVb0FnUWhBU01BUWRBQWF5SUFKQUFnQUNBQk5nSk1JQUFnQUNnQ1RDZ0NBRFlDU0NBQUlBQW9Ba3dvQWdRMkFrUWdBQ0FBS0FKTUtBSUlOZ0pBSUFBZ0FDZ0NUQ2dDRERZQ1BDQUFJQUFvQWt3b0FoQTJBamdnQUNBQUtBSk1LQUlVTmdJMElBQWdBQ2dDVENnQ0dEWUNNQ0FBSUFBb0Frd29BaHcyQWl3Z0FDZ0NTQ0lCSVFJakFFRVFheUlFSWdNZ0FUWUNEQ0FES0FJTUlnRkJCSFpCajU2OCtBQnhJQUZCQkhSQjhPSERoMzl4Y2lFRElBUWlBU0FDTmdJTUlBRWdBellDQ0NBQUlBRW9BZ3dnQVNnQ0NITTJBaWdnQUNnQ1JDSUJJUUlnQkNBQk5nSU1JQVFvQWd3aUFVRUVka0dQbnJ6NEFIRWdBVUVFZEVIdzRjT0hmM0Z5SVFNZ0JDSUJJQUkyQWd3Z0FTQUROZ0lJSUFBZ0FTZ0NEQ0FCS0FJSWN6WUNKQ0FBS0FKQUlnRWhBaUFFSUFFMkFnd2dCQ2dDRENJQlFRUjJRWStldlBnQWNTQUJRUVIwUWZEaHc0ZC9jWEloQXlBRUlnRWdBallDRENBQklBTTJBZ2dnQUNBQktBSU1JQUVvQWdoek5nSWdJQUFvQWp3aUFTRUNJQVFnQVRZQ0RDQUVLQUlNSWdGQkJIWkJqNTY4K0FCeElBRkJCSFJCOE9IRGgzOXhjaUVESUFRaUFTQUNOZ0lNSUFFZ0F6WUNDQ0FBSUFFb0Fnd2dBU2dDQ0hNMkFod2dBQ2dDT0NJQklRSWdCQ0FCTmdJTUlBUW9BZ3dpQVVFRWRrR1Bucno0QUhFZ0FVRUVkRUh3NGNPSGYzRnlJUU1nQkNJQklBSTJBZ3dnQVNBRE5nSUlJQUFnQVNnQ0RDQUJLQUlJY3pZQ0dDQUFLQUkwSWdFaEFpQUVJQUUyQWd3Z0JDZ0NEQ0lCUVFSMlFZK2V2UGdBY1NBQlFRUjBRZkRodzRkL2NYSWhBeUFFSWdFZ0FqWUNEQ0FCSUFNMkFnZ2dBQ0FCS0FJTUlBRW9BZ2h6TmdJVUlBQW9BakFpQVNFQ0lBUWdBVFlDRENBRUtBSU1JZ0ZCQkhaQmo1NjgrQUJ4SUFGQkJIUkI4T0hEaDM5eGNpRURJQVFpQVNBQ05nSU1JQUVnQXpZQ0NDQUFJQUVvQWd3Z0FTZ0NDSE0yQWhBZ0FDZ0NMQ0lCSVFJZ0JDQUJOZ0lNSUFRb0Fnd2lBVUVFZGtHUG5yejRBSEVnQVVFRWRFSHc0Y09IZjNGeUlRTWdCQ0lCSUFJMkFnd2dBU0FETmdJSUlBQWdBU2dDRENBQktBSUljellDRENBQUtBSVFJUUlnQVNBQUtBSklOZ0lNSUFFZ0FqWUNDQ0FCS0FJTUlBRW9BZ2h6SVFFZ0FDZ0NUQ0FCTmdJQUlBQW9Ba1FoQWlBQUtBSU1JUU1nQkNJQklBQW9BaEEyQWd3Z0FTQUROZ0lJSUFFb0Fnd2dBU2dDQ0hNaEF5QUJJQUkyQWd3Z0FTQUROZ0lJSUFFb0Fnd2dBU2dDQ0hNaEFTQUFLQUpNSUFFMkFnUWdBQ2dDUUNFQ0lBQW9BZ3doQXlBRUlnRWdBQ2dDS0RZQ0RDQUJJQU0yQWdnZ0FTZ0NEQ0FCS0FJSWN5RURJQUVnQWpZQ0RDQUJJQU0yQWdnZ0FTZ0NEQ0FCS0FJSWN5RUJJQUFvQWt3Z0FUWUNDQ0FBS0FJOElRSWdBQ2dDRUNFRElBUWlBU0FBS0FJa05nSU1JQUVnQXpZQ0NDQUJLQUlNSUFFb0FnaHpJUU1nQVNBQ05nSU1JQUVnQXpZQ0NDQUJLQUlNSUFFb0FnaHpJUUVnQUNnQ1RDQUJOZ0lNSUFBb0FpQWhBaUFFSWdFZ0FDZ0NPRFlDRENBQklBSTJBZ2dnQVNnQ0RDQUJLQUlJY3lFQ0lBQW9BZ3doQXlBQklBQW9BaEEyQWd3Z0FTQUROZ0lJSUFFb0Fnd2dBU2dDQ0hNaEF5QUJJQUkyQWd3Z0FTQUROZ0lJSUFFb0Fnd2dBU2dDQ0hNaEFTQUFLQUpNSUFFMkFoQWdBQ2dDTkNFQ0lBQW9BZ3doQXlBRUlnRWdBQ2dDSERZQ0RDQUJJQU0yQWdnZ0FTZ0NEQ0FCS0FJSWN5RURJQUVnQWpZQ0RDQUJJQU0yQWdnZ0FTZ0NEQ0FCS0FJSWN5RUJJQUFvQWt3Z0FUWUNGQ0FBS0FJWUlRSWdCQ0lCSUFBb0FqQTJBZ3dnQVNBQ05nSUlJQUVvQWd3Z0FTZ0NDSE1oQVNBQUtBSk1JQUUyQWhnZ0FDZ0NGQ0VDSUFRaUFTQUFLQUlzTmdJTUlBRWdBallDQ0NBQktBSU1JQUVvQWdoeklRRWdBQ2dDVENBQk5nSWNJQUFvQWt3UTdRRWdBRUhRQUdva0FDQUZLQUlFRU9zQklBVW9BZ1FRNmdFZ0JTQUZLQUlBUVFGck5nSUFEQUVMQ3lBRktBSUVJQVVvQWd3UVRTQUZRUkJxSkFBTE1BRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2dBU2dDRENnQ0JCQWlJQUVvQWd4QkFFRVFFQ0VnQVVFUWFpUUFDM29CQVg4akFFRWdheUlDSkFBZ0FpQUFOZ0ljSUFJZ0FUY0RFQ0FDUVFBMkFnd0RRQ0FDS0FJTVFRaFBSUVJBSUFJb0Fnd2dBa0VFYW1vZ0Fpa0RFRUwvQVlNOEFBQWdBaUFDS1FNUVFnaUlOd01RSUFJZ0FpZ0NERUVCYWpZQ0RBd0JDd3NnQWlnQ0hDQUNRUVJxUVFnUU5Sb2dBa0VnYWlRQUM0d0NBUUYvSXdCQmdBSnJJZ2drQUNBSUlBQTJBdndCSUFnZ0FUWUMrQUVnQ0NBQ05nTDBBU0FJSUFNMkF2QUJJQWdnQkRZQzdBRWdDQ0FGTmdMb0FTQUlJQVkyQXVRQklBZ2dCellDNEFFZ0NFSHdBR29pQUNBSUtBTDRBVUh3QUJBZUlBQWdDRFVDN0FFUThRRWdBQ0FJTlFMZ0FSRHhBU0FBSUFnb0F1Z0JRUXdRTlJvZ0FDQUlLQUx3QVNBSUtBTHNBUkExR2lBSVFjQUFJQWdvQXV3QlFSeHFRVDl4YTBFL2NUWUNiQ0FJUVNCcUlnRkJBQ0FJS0FKc0VDRWdBQ0FCSUFnb0Ftd1FOUm9nQUNBSUtBTGtBU0FJS0FMZ0FSQTFHaUFJSUFBUWt3RWFJQUFnQ0NnQzlBRkI4QUFRSGlBQUlBaEJJQkExR2lBSUtBTDhBU0FBRUpNQkdpQUlRWUFDYWlRQUM4Z0JBUUYvSXdCQjBBQnJJZ1VrQUNBRklBQTJBa3dnQlNBQk5nSklJQVVnQWpZQ1JDQUZJQU0yQWtBZ0JTQUVOZ0k4SUFWQkFEWUNIQ0FGUVNCcVFRQkJFQkFoSUFVZ0JTZ0NQRUVNRUI0Z0JVRU1ha0VBUVFRUUlRSkFJQVVvQWt3b0F2Z0JCRUFnQlNnQ1JDQUZLQUpJSUFVb0FrQWdCU2dDVENJQUlBVWdCVUVnYWlBRlFSeHFJQUFvQXZnQkVPZ0JEQUVMSUFVb0FrUWdCU2dDU0NBRktBSkFJQVVvQWt3aUFDQUZJQVZCSUdvZ0JVRWNhaUFBS0FMOEFSRG5BUXNnQlVIUUFHb2tBQXV4Q2dFSWZ5TUFRUkJySWdZa0FDQUdJQUEyQWd3Z0JpZ0NEQ0VFSXdCQklHc2lBQ1FBSUFCQi9PZ0FOZ0ljSUFBZ0JEWUNHQ0FBSUFSQnRBRnFOZ0lVSUFBb0FoUW9BZ0FFUUNNQVFSQnJJZ0VnQUNnQ0hFRW9hallDRENBQklBRW9BZ3dvQWdBMkFnZ2dBQ0FCS0FJSU5nSVFJQUFvQWhCQi8vLy8vd2NnQUNnQ0hDMEFMR3RMQkVCQm55UkJ5eFZCMndGQnFSWVFBQUFMSUFBZ0FDZ0NIRUVnYWpZQ0RDQUFRUUEyQWdnRFFDQUFLQUlJSUFBb0FoQkpCRUFnQUNnQ0RDZ0NBQ2dDQ0FSQUlBQWdBQ2dDQ0NBQUtBSWNMUUFzYWpZQ0JDQUFLQUlVSVFJZ0FDZ0NCQ0VESXdCQkVHc2lBU1FBSUFFZ0FqWUNDQ0FCSUFNMkFnUUNRQUpBQWtBZ0FTZ0NDQ2dDQUVVTkFDQUJLQUlFUVFCSURRQWdBU2dDQkNFSUlBRW9BZ2dvQWdBaEFpTUFRUkJySWdNa0FDQURJQUkyQWd3akFFRVFheUlDSUFNb0FndzJBZ2dDUUNBQ0tBSUlSUVJBSUFKQkFEWUNEQXdCQ3lBQ0lBSW9BZ2dvQWdBMkFnd0xJQUlvQWd3aEFpQURRUkJxSkFBZ0NDQUNTUTBCQ3lBQlFRQTJBZ3dNQVFzZ0FTZ0NDQ2dDQUNFQ0lBRW9BZ1FoQlNNQVFSQnJJZ01rQUNBRElBSTJBZ3dnQXlBRk5nSUlJQU1vQWdnaEJTTUFRUkJySWdJZ0F5Z0NERFlDQ0NBQ0lBVTJBZ1FDUUFKQUlBSW9BZ2dFUUNBQ0tBSUVJQUlvQWdnb0FnQkpEUUVMSUFKQkFEWUNEQXdCQ3lBQ0lBSW9BZ2dvQWdRZ0FpZ0NCRUVDZEdvb0FnQTJBZ3dMSUFJb0Fnd2hBaUFEUVJCcUpBQWdBU0FDTmdJTUN5QUJLQUlNSVFJZ0FVRVFhaVFBSUFBZ0FqWUNBQ0FBS0FJWUlBQW9BZ0FnQUNnQ0ZDQUFLQUlFSUFBb0Fnd29BZ0FpQVNnQ0FDQUJLQUlFSUFFb0FnZ1JDZ0FMSUFBZ0FDZ0NEQ2dDQUVFTWFqWUNEQ0FBSUFBb0FnaEJBV28yQWdnTUFRc0xJQUFvQWhRb0FnQWhBaU1BUVJCcklnRWtBQ0FCSUFJMkFnd2dBU2dDREJET0FTQUJRUkJxSkFBZ0FDZ0NGRUVBTmdJQUN5QUFRU0JxSkFBZ0JDQUVLQUtJQVNnQ0lCRUJBQ0FFUWR3Q2FoQmRJQVJCMEFKcUVGMGdCRUhJQW1vUVhTQUVRY0FDYWhCZElBUkJ6QUZxRVBZQklBUkJ5QUZxRVBZQklBUkJ3QUZxRUYwakFFRVFheUlGSkFBZ0JTQUVRWVFCYWpZQ0RDQUZLQUlNSVFBakFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFGQkFEWUNDQ0FCSUFFb0Fnd2lBQkFYS0FJQU5nSUVJQUVvQWdnaEFpQUFFQmNnQWpZQ0FDQUJLQUlFQkVBZ0FCQVhJUUFnQVNnQ0JDRURJd0JCRUdzaUFpUUFJQUlnQURZQ0RDQUNJQU0yQWdnZ0FpZ0NDQ0VBSXdCQkVHc2lBeVFBSUFNZ0FEWUNEQ0FES0FJTUlRY2pBRUVRYXlBRFFRaHFOZ0lNSXdCQkVHc2lBQ1FBSUFBZ0J6WUNEQ0FBUWNNQU5nSUlJQUJCQURZQ0JDQUFLQUlNQkVBZ0FFRUFOZ0lBQTBBZ0FDZ0NBQ0FBS0FJTUtBSUFTUVJBSUFBb0Fnd29BZ1FnQUNnQ0FFRUNkR29vQWdBRVFDQUFLQUlFSUFBb0Fnd29BZ1FnQUNnQ0FFRUNkR29vQWdBZ0FDZ0NDQkVDQUFzZ0FDQUFLQUlBUVFGcU5nSUFEQUVMQ3lBQUtBSU1FTTRCQ3lBQVFSQnFKQUFnQTBFUWFpUUFJQUpCRUdva0FBc2dBVUVRYWlRQUlBVkJFR29rQUNNQVFSQnJJZ0lrQUNBQ0lBUkJnQUZxTmdJTUlBSW9BZ3doQVNNQVFSQnJJZ0FrQUNBQUlBRTJBZ3dnQUVFQU5nSUlJQUFnQUNnQ0RDSUJFQmNvQWdBMkFnUWdBQ2dDQ0NFRElBRVFGeUFETmdJQUlBQW9BZ1FFUUNBQkVCY2hBeUFBS0FJRUlRVWpBRUVRYXlJQkpBQWdBU0FETmdJTUlBRWdCVFlDQ0NBQktBSUlJUVVqQUVFUWF5SURKQUFnQXlBRk5nSU1JQU1vQWd3UUtDQURRUkJxSkFBZ0FVRVFhaVFBQ3lBQVFSQnFKQUFnQWtFUWFpUUFJQVpCRUdva0FDQUVDeFVCQVg4akFFRVFheUlCSUFBMkFnd2dBU2dDREF1Y0FRRUVmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBaWdDRENFQkl3QkJFR3NpQUNRQUlBQWdBVFlDRENBQVFRQTJBZ2dnQUNBQUtBSU1JZ0VRRnlnQ0FEWUNCQ0FBS0FJSUlRTWdBUkFYSUFNMkFnQWdBQ2dDQkFSQUlBRVFGeUVESUFBb0FnUWhCQ01BUVJCcklnRWtBQ0FCSUFNMkFnd2dBU0FFTmdJSUlBRW9BZ2dROXdFZ0FVRVFhaVFBQ3lBQVFSQnFKQUFnQWtFUWFpUUFDN1FIQVFWL0l3QkJFR3NpQlNRQUlBVWdBRFlDRENBRktBSU1JUUFqQUVFUWF5SUNKQUFnQWlBQU5nSU1Ba0FnQWlnQ0RFVU5BQ0FDSUFJb0Fnd29BZ0EyQWdnZ0FpZ0NDRVVFUUNBQ0tBSU1RUXhxRUdnRVFDQUNLQUlNRU04QkN3d0JDeUFDS0FJSVFRUnFJUUVqQUVFUWF5SUFKQUFnQUNBQk5nSU1JQUFvQWd3YUlBQkJFR29rQUNBQ0tBSU1RUXhxRUdoRkJFQWdBaWdDRENnQ0FFRUVhaUVCSXdCQkVHc2lBQ1FBSUFBZ0FUWUNEQ0FBS0FJTUdpQUFRUkJxSkFBTUFRc2dBaWdDQ0NnQ0FDRUFJQUlvQWd3aEF5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTQUROZ0lJSUFFb0Fnd2hBeUFCS0FJSUlRUWpBRUVnYXlJQUpBQWdBQ0FETmdJY0lBQWdCRFlDR0NBQVFkOEFOZ0lVSUFCQjRBQTJBaEFnQUNBQUtBSWNJQUFvQWhnZ0FDZ0NGQ0FBS0FJUUVOSUJOZ0lNSUFBb0Fnd29BZ0FFZnlBQUtBSU1LQUlBS0FJQUJVRUFDeUVESUFCQklHb2tBQ0FCUVJCcUpBQWdBaUFETmdJRUlBSW9BZ1FnQWlnQ0RFWUVRQ0FDS0FJSUtBSUFJUUFnQWlnQ0RDRUJJd0JCRUdzaUF5UUFJQU1nQURZQ0RDQURJQUUyQWdnZ0F5Z0NEQ0VCSUFNb0FnZ2hCQ01BUVNCcklnQWtBQ0FBSUFFMkFoZ2dBQ0FFTmdJVUlBQkIzd0EyQWhBZ0FFSGdBRFlDRENBQUlBQW9BaGdnQUNnQ0ZDQUFLQUlRSUFBb0Fnd1EwZ0UyQWdnQ1FDQUFLQUlJS0FJQVJRUkFJQUJCQURZQ0hBd0JDeUFBSUFBb0FnZ29BZ0EyQWdRZ0FDZ0NDQ0FBS0FJRUtBSUVOZ0lBSUFBZ0FDZ0NCQ2dDQURZQ0FDQUFLQUlFRUNnZ0FDZ0NHQ0lCSUFFb0FnQkJBV3MyQWdBZ0FDZ0NHQ0VFSXdCQkVHc2lBU1FBSUFFZ0JEWUNEQUpBSUFFb0Fnd29BZ3dOQUNBQktBSU1LQUlJUVJCSkJFQkJnQXRCK3hOQjl3RkI2UTRRQUFBTElBRWdBU2dDRENJRUtBSUFJQVFvQWdodU5nSUlJQUVvQWdoQkFrc0VRQ0FCSUFFb0Fnd29BZ2hCQVhRMkFnUWdBU2dDQkNBQktBSU1LQUlJU3dSQUlBRW9BZ3dnQVNnQ0JCRFJBUXNNQVFzQ1FDQUJLQUlJRFFBZ0FTZ0NEQ2dDQ0VFUVRRMEFJQUVnQVNnQ0RDZ0NDRUVCZGpZQ0FDQUJLQUlBUVJCSkJFQWdBVUVRTmdJQUN5QUJLQUlNSUFFb0FnQVEwUUVMQ3lBQlFSQnFKQUFnQUNBQUtBSUFOZ0ljQ3lBQUtBSWNJUUVnQUVFZ2FpUUFJQUVoQUNBRFFSQnFKQUFnQWlBQU5nSUVJQUlvQWdRZ0FpZ0NERWNFUUVIY0RrSFJFMEhyQVVHMUVCQUFBQXNMSUFJb0Fnd29BZ0JCQkdvaEFTTUFRUkJySWdBa0FDQUFJQUUyQWd3Z0FDZ0NEQm9nQUVFUWFpUUFJQUlvQWd3UXp3RUxJQUpCRUdva0FDQUZRUkJxSkFBTGNnRUJmeU1BUVJCcklnTWtBQ0FESUFBMkFnd2dBeUFCTmdJSUlBTWdBallDQkNBREtBSUlJUUVnQXlnQ0JDRUNJd0JCRUdzaUFDQURLQUlNTmdJTUlBQWdBVFlDQ0NBQUlBSTJBZ1FnQUNnQ0NDSUJJQUFvQWdRaUFDa0NBRGNDQUNBQklBQW9BZ2cyQWdnZ0EwRVFhaVFBQzFvQkFYOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSUlJUUVqQUVFUWF5SUFJQUlvQWd3MkFnd2dBQ0FCTmdJSUlBQW9BZ3dnQUNnQ0NFRUNhMm90QUFCQkgzRkJCVXNoQUNBQ1FSQnFKQUFnQUF0MEFRSi9Jd0JCRUdzaUF5UUFJQU1nQURZQ0RDQURJQUUyQWdnZ0F5QUNOZ0lFSUFNb0Fnd2hBU0FES0FJSUlRSWdBeWdDQkNFRUl3QkJFR3NpQUNRQUlBQWdBVFlDRENBQUlBSTJBZ2dnQUNBRU5nSUVJQUFvQWdnZ0FDZ0NCRUVNYkVFRUVFTWdBRUVRYWlRQUlBTkJFR29rQUF1WEFRRUhmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBaWdDRENJQUVCa2hBeUFBRUJrZ0FCQlBRUXhzYWlFRUlBQVFHU0VISXdCQkVHc2lBU0FBTmdJTUlBY2dBU2dDRENJQktBSUVJQUVvQWdCclFReHRRUXhzYWlFRklBQVFHU0FBRUU5QkRHeHFJUVlqQUVFZ2F5SUJJQUEyQWh3Z0FTQUROZ0lZSUFFZ0JEWUNGQ0FCSUFVMkFoQWdBU0FHTmdJTUlBSkJFR29rQUF0VkFRRi9Jd0JCRUdzaUFpUUFJQUlnQURZQ0JDQUNJQUUyQWdBZ0FpZ0NBQ0VCSXdCQkVHc2lBQ0FDUVFocU5nSU1JQUFnQVRZQ0NDQUFLQUlNSUFBb0FnZzJBZ0FnQWlnQ0NDRUFJQUpCRUdva0FDQUFDNHNCQVFOL0l3QkJFR3NpQWlRQUlBSWdBRFlDRENBQ0lBRTJBZ2dnQWlnQ0RDRUJJQUlvQWdnaEF5TUFRUkJySWdBa0FDQUFJQUUyQWd3Z0FDQUROZ0lJSXdCQkVHc2lBU0FBS0FJTU5nSU1JQUVvQWd3b0FnQWhCQ01BUVJCcklnRWdBQ2dDQ0RZQ0RDQUVJQUVvQWd3b0FnQkdJUUVnQUVFUWFpUUFJQUpCRUdva0FDQUJRWDl6UVFGeEN6Z0JBWDhqQUVFUWF5SUJKQUFnQVNBQU5nSUVJQUVnQVNnQ0JDSUFJQUFvQWdRUS9BRTJBZ2dnQVNnQ0NDRUFJQUZCRUdva0FDQUFDemdCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lFSUFFZ0FTZ0NCQ0lBSUFBb0FnQVEvQUUyQWdnZ0FTZ0NDQ0VBSUFGQkVHb2tBQ0FBQzMwQkFYOGpBRUVnYXlJQ0pBQWdBaUFBTmdJY0lBSWdBVFlDR0NNQVFSQnJJZ0FnQWlnQ0hEWUNCQ0FBSUFBb0FnUW9BZ0EyQWdnZ0FpQUFLQUlJTmdJUUlBQWdBaWdDR0RZQ0JDQUFJQUFvQWdRb0FnQTJBZ2dnQWlBQUtBSUlOZ0lJSUFKQkVHb2dBa0VJYWhEOUFVRUJjU0VBSUFKQklHb2tBQ0FBQzFjQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJRUlBRWdBU2dDQkJEL0FUWUNBQ01BUVJCcklnQWdBU2dDQURZQ0NDQUFJQUZCQ0dvMkFnUWdBQ2dDQkNBQUtBSUlOZ0lBSUFFb0FnZ2hBQ0FCUVJCcUpBQWdBQXRCQVFGL0l3QkJFR3NpQXlRQUlBTWdBRFlDRENBRElBRTJBZ2dnQXlBQ05nSUVJQU1vQWd3aEFFSHNKU0FES0FJSUlBTW9BZ1FRQlNBRFFSQnFKQUFnQUF0WEFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0JDQUJJQUVvQWdRUS9nRTJBZ0FqQUVFUWF5SUFJQUVvQWdBMkFnZ2dBQ0FCUVFocU5nSUVJQUFvQWdRZ0FDZ0NDRFlDQUNBQktBSUlJUUFnQVVFUWFpUUFJQUFMc2dFQ0Fud0JmeU1BUVJCcklnUWtBQ0FFSUFBMkFnd2dCQ0FCTndNQUlBUXBBd0JRQkg1Q0FRVUNmaUFFS1FNQUlRRWpBRUVRYXlJQUpBQWdBQ0FCTndNSUlBQXBBd2k2RU13QklRSWdBRUVRYWlRQUlBSWhBeU1BUVJCcklnQWtBQ0FBUVlBQ05nSU1JQUFvQWd5M0VNd0JJUUlnQUVFUWFpUUFJQU1nQXFNaUFrUUFBQUFBQUFEd1EyTWdBa1FBQUFBQUFBQUFBR1p4QkVBZ0FyRU1BUXRDQUF0Q0FYd0xJUUVnQkVFUWFpUUFJQUVMM2dFQkJuOGpBRUVRYXlJREpBQWdBeUFBTmdJTUlBTW9BZ3doQVNNQVFSQnJJZ0FrQUNBQUlBRTJBZ3dnQUVFQU5nSUlJQUFnQUNnQ0RDSUJFQmNvQWdBMkFnUWdBQ2dDQ0NFQ0lBRVFGeUFDTmdJQUlBQW9BZ1FFUUNBQkVGSWhBaUFBS0FJRUlRUWpBRUVRYXlJQkpBQWdBU0FDTmdJTUlBRWdCRFlDQ0NBQktBSU1JZ0l0QUFSQkFYRUVRQ0FDS0FJQUlRUWdBU2dDQ0VFSWFoQXNJUVVqQUVFUWF5SUdJQVEyQWd3Z0JpQUZOZ0lJQ3lBQktBSUlCRUFnQWlnQ0FDQUJLQUlJRUg4TElBRkJFR29rQUFzZ0FFRVFhaVFBSUFOQkVHb2tBQXVRQVFFQ2Z5TUFRU0JySWdJa0FDQUNJQUEyQWh3Z0FpQUJOZ0lZSUFJZ0FpZ0NIQkFZTmdJVUEwQWdBaWdDR0FSQUlBSWdBaWdDR0NnQ0FEWUNFQ0FDSUFJb0FoZ1FGellDRENBQ0tBSVVJUUFnQWlnQ0RFRUlhaEFzSVFFakFFRVFheUlESUFBMkFnd2dBeUFCTmdJSUlBSW9BaFFnQWlnQ0RCQi9JQUlnQWlnQ0VEWUNHQXdCQ3dzZ0FrRWdhaVFBQzVBQkFRSi9Jd0JCRUdzaUJDUUFJQVFnQURZQ0RDQUVJQUUyQWdnZ0JDQUNOZ0lFSUFRZ0F6WUNBQ0FFS0FJTUlRRWdCQ2dDQ0NFQ0lBUW9BZ1FoQXlBRUtBSUFJUVVqQUVFUWF5SUFKQUFnQUNBQk5nSU1JQUFnQWpZQ0NDQUFJQU0yQWdRZ0FDQUZOZ0lBSUFBb0FnZ2dBQ2dDQkNnQ0FDQUFLQUlBS0FJQUVMd0JJQUJCRUdva0FDQUVRUkJxSkFBTG53RUJBMzhqQUVFUWF5SUNKQUFnQWlBQU5nSU1JQUlnQVRZQ0NDQUNLQUlNSVFFZ0FpZ0NDQ0VESXdCQkVHc2lBQ1FBSUFBZ0FUWUNEQ0FBSUFNMkFnZ2dBQ2dDQ0NFRUlBQW9BZ3doQXlNQVFSQnJJZ0VrQUNBQklBTTJBZ3dqQUVFUWF5QUJLQUlNTmdJTUlBRkJFR29rQUNBRVFmLy8vLzhEU3dSQUVEa0FDeUFBS0FJSVFRSjBRUVFRUVNFQklBQkJFR29rQUNBQ1FSQnFKQUFnQVF1SEJnRUZmeU1BUVRCcklnSWtBQ0FDSUFBMkFpd2dBaUFCTmdJb0lBSWdBaWdDTENJQUVEOFFKallDSkFKL0lBSW9BaWdFUUNBQ0tBSWtJQUlvQWlnUWlBSU1BUXRCQUFzaEF5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTQUROZ0lJSUFFZ0FTZ0NEQ0lERUJjb0FnQTJBZ1FnQVNnQ0NDRUVJQU1RRnlBRU5nSUFJQUVvQWdRRVFDQURFRklnQVNnQ0JCQ05BZ3NnQVVFUWFpUUFJQUlvQWlnaEFTQUFFRDhRSmlBQk5nSUFJQUlvQWlnRVFDQUNRUUEyQWlBRFFDQUNLQUlnSUFJb0FpaEpCRUFnQUNBQ0tBSWdFQ05CQURZQ0FDQUNJQUlvQWlCQkFXbzJBaUFNQVFzTElBSWdBRUVJYWhBWEVCYzJBaHdnQWlBQ0tBSWNLQUlBTmdJWUlBSW9BaGdFUUNNQVFSQnJJZ0VnQWlnQ0dEWUNEQ0FDSUFFb0Fnd29BZ1FnQWlnQ0tCQWxOZ0lVSUFJb0Fod2hBU0FBSUFJb0FoUVFJeUFCTmdJQUlBSWdBaWdDRkRZQ0VDQUNJQUlvQWhnMkFod2dBaUFDS0FJWUtBSUFOZ0lZQTBBZ0FpZ0NHQVJBSXdCQkVHc2lBU0FDS0FJWU5nSU1JQUlnQVNnQ0RDZ0NCQ0FDS0FJb0VDVTJBaFFDUUNBQ0tBSVVJQUlvQWhCR0JFQWdBaUFDS0FJWU5nSWNEQUVMQWtBZ0FDQUNLQUlVRUNNb0FnQkZCRUFnQWlnQ0hDRUJJQUFnQWlnQ0ZCQWpJQUUyQWdBZ0FpQUNLQUlZTmdJY0lBSWdBaWdDRkRZQ0VBd0JDeUFDSUFJb0FoZzJBZ3dEUUNBQ0tBSU1LQUlBQkg4Z0FCQXdJUU1nQWlnQ0dCQVhRUWhxSVFRZ0FpZ0NEQ2dDQUJBWFFRaHFJUVVqQUVFUWF5SUJKQUFnQVNBRE5nSU1JQUVnQkRZQ0NDQUJJQVUyQWdRZ0FTZ0NEQ0VFSUFFb0FnZ1FKaUVGSUFFb0FnUVFKaUVHSXdCQkVHc2lBeUFFTmdJTUlBTWdCVFlDQ0NBRElBWTJBZ1FnQXlnQ0NDa0RBQ0FES0FJRUtRTUFVU0VESUFGQkVHb2tBQ0FEQlVFQUMwRUJjUVJBSUFJZ0FpZ0NEQ2dDQURZQ0RBd0JDd3NnQWlnQ0hDQUNLQUlNS0FJQU5nSUFJQUFnQWlnQ0ZCQWpLQUlBS0FJQUlRRWdBaWdDRENBQk5nSUFJQUlvQWhnaEFTQUFJQUlvQWhRUUl5Z0NBQ0FCTmdJQUN3c2dBaUFDS0FJY0tBSUFOZ0lZREFFTEN3c0xJQUpCTUdva0FBdWZBUUVFZnlNQVFSQnJJZ0lrQUNBQ0lBQTJBZ3dnQWtFQk5nSUlJQUlvQWd3aEFTQUNLQUlJSVFNakFFRVFheUlBSkFBZ0FDQUJOZ0lNSUFBZ0F6WUNDQ0FBS0FJSUlRUWdBQ2dDRENFREl3QkJFR3NpQVNRQUlBRWdBellDRENNQVFSQnJJQUVvQWd3MkFnd2dBVUVRYWlRQUlBUkJxdFdxMVFCTEJFQVFPUUFMSUFBb0FnaEJHR3hCQ0JCQklRRWdBRUVRYWlRQUlBSkJFR29rQUNBQkM2c0RBZ0ovQVgwakFFRVFheUlDSkFBZ0FpQUFOZ0lNSUFJZ0FUWUNDQ0FDS0FJTUlRQUNRQ0FDS0FJSVFRRkdCRUFnQWtFQ05nSUlEQUVMSUFJb0FnZ2lBU0FCUVFGcmNRUkFJQUlnQWlnQ0NCREtBVFlDQ0FzTElBSWdBQkEwTmdJRUFrQWdBaWdDQ0NBQ0tBSUVTd1JBSUFBZ0FpZ0NDQkNKQWd3QkN5QUNLQUlJSUFJb0FnUkpCRUFnQWdKL0lBSW9BZ1FRb3dGQkFYRUVRQUovSUFBUUhTZ0NBTE1nQUJBd0tnSUFsU0VFSXdCQkVHc2lBU0FFT0FJTUlBRXFBZ3lOSWdSREFBQ0FUMTBnQkVNQUFBQUFZSEVFUUNBRXFRd0JDMEVBQ3lFREl3QkJFR3NpQVNRQUlBRWdBellDREFKL0lBRW9BZ3hCQWtrRVFDQUJLQUlNREFFTEl3QkJFR3NpQXlBQktBSU1RUUZyTmdJTVFRRkJJQ0FES0FJTVoydDBDeUVESUFGQkVHb2tBQ0FEREFFTEFuOGdBQkFkS0FJQXN5QUFFREFxQWdDVklRUWpBRUVRYXlJQklBUTRBZ3dnQVNvQ0RJMGlCRU1BQUlCUFhTQUVRd0FBQUFCZ2NRUkFJQVNwREFFTFFRQUxFTW9CQ3pZQ0FDQUNJQUpCQ0dvZ0FoQktLQUlBTmdJSUlBSW9BZ2dnQWlnQ0JFa0VRQ0FBSUFJb0FnZ1FpUUlMQ3dzZ0FrRVFhaVFBQzNRQkFuOGpBRUVRYXlJREpBQWdBeUFBTmdJTUlBTWdBVFlDQ0NBRElBSTJBZ1FnQXlnQ0RDRUJJQU1vQWdnaEFpQURLQUlFSVFRakFFRVFheUlBSkFBZ0FDQUJOZ0lNSUFBZ0FqWUNDQ0FBSUFRMkFnUWdBQ2dDQ0NBQUtBSUVRUUowUVFRUVF5QUFRUkJxSkFBZ0EwRVFhaVFBQ3pvQkFYOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSU1JZ0FRSmlBQ0tBSUlJQUFRSmlnQ0FCQ01BaUFDUVJCcUpBQUxTZ0VCZnlNQVFSQnJJZ0lrQUNBQ0lBQTJBZ3dnQWlBQk5nSUlJQUlvQWdnaEFTTUFRUkJySWdBa0FDQUFJQUUyQWd3Z0FDZ0NERUVJYWhBNElBQkJFR29rQUNBQ1FSQnFKQUFMYmdFQ2Z5TUFRUkJySWdJa0FDQUNJQUEyQWd3Z0FpZ0NEQ0VCSXdCQkVHc2lBQ1FBSUFBZ0FUWUNEQ0FBUVFBMkFnZ2dBQ0FBS0FJTUlnRVFGeWdDQURZQ0JDQUJFQmRCQURZQ0FDQUFLQUlFQkVBZ0FSQlNJQUFvQWdRUWpRSUxJQUJCRUdva0FDQUNRUkJxSkFBTGZBRUJmeU1BUVNCcklnSWtBQ0FDSUFBMkFod2dBaUFCTmdJWUlBSWdBaWdDSEJBWU5nSVVBMEFnQWlnQ0dBUkFJQUlnQWlnQ0dDZ0NBRFlDRUNBQ0lBSW9BaGdRRnpZQ0RDQUNLQUlVSUFJb0FneEJDR29RTEJDT0FpQUNLQUlVSUFJb0Fnd1FmeUFDSUFJb0FoQTJBaGdNQVFzTElBSkJJR29rQUFzd0FRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0JDTUFRUkJySWdBZ0FTZ0NCRFlDRENBQUtBSU1HaUFCUVJCcUpBQUxqd0VCQW44akFFRWdheUlDSkFBZ0FTZ0NBQ0VESUFFb0FnUWhBU0FDSUFBMkFoZ2dBaUFCTmdJVUlBSWdBellDRUNBQ1FSTTJBZ3dnQWlnQ0dDRUJJd0JCRUdzaUFDQUNRUWhxSWdNMkFnd2dBQ1FBSUFBZ0F6WUNEQ0FBUVJCcUpBQWdBaUFDS0FJTU5nSWNRYlFuSUFGQkEwR1VLVUdRS0NBQ0tBSU1JQUpCRUdvUVZVRUFFQVFnQWtFZ2FpUUFDMElCQVg4akFFRVFheUlDSkFBZ0FpQUFOZ0lNSUFJZ0FUWUNDQ0FDS0FJTUlnQWdBaWdDQ0JDZUFpQUFRWVF5TmdJQUlBQkJBVG9BSUNBQ1FSQnFKQUFnQUF2b0FnRUJmeU1BUVNCcklnSWtBQ0FDSUFBMkFoUWdBaUFCTmdJUUlBSWdBaWdDRkNJQUVCMGdBaWdDRUJCK05nSU1JQUlnQUJBME5nSUlBa0FnQWlnQ0NBUkFJQUlnQWlnQ0RDQUNLQUlJRUNVMkFnUWdBaUFBSUFJb0FnUVFJeWdDQURZQ0FDQUNLQUlBQkVBZ0FpQUNLQUlBS0FJQU5nSUFBMEFnQWlnQ0FBUi9Jd0JCRUdzaUFTQUNLQUlBTmdJTUlBRW9BZ3dvQWdRZ0FpZ0NERWNFZnlNQVFSQnJJZ0VnQWlnQ0FEWUNEQ0FCS0FJTUtBSUVJQUlvQWdnUUpTQUNLQUlFUmdWQkFRc0ZRUUFMUVFGeEJFQWpBRUVRYXlJQklBSW9BZ0EyQWd3Q1FDQUJLQUlNS0FJRUlBSW9BZ3hIRFFBZ0FCQXdJQUlvQWdBUUYwRUlhaUFDS0FJUUVIMUJBWEZGRFFBZ0FpZ0NBQ0VCSXdCQkVHc2lBQ0FDUVJocU5nSU1JQUFnQVRZQ0NDQUFLQUlNSUFBb0FnZzJBZ0FNQlFzZ0FpQUNLQUlBS0FJQU5nSUFEQUVMQ3dzTElBSWdBQkNBQVRZQ0dBc2dBaWdDR0NFQUlBSkJJR29rQUNBQUM2Y0ZBZ1IvQW40akFFRVFheUlESkFBZ0F5QUFOZ0lFSUFNZ0FUWUNBRUVnRUM4aUJTRUFJQU1vQWdRcEF3QWhCaUFES0FJQUtRTUFJUWNqQUVFZ2F5SUVKQUFnQkNBQU5nSWNJQVFnQmpjREVDQUVJQWMzQXdnZ0JDZ0NIQ0lCSUFRcEF4QTNBd0FnQVNBRUtRTUlOd01JSUFGQkVHb1FLaUFCUWdBM0F4Z2pBRUV3YXlJQUpBQWdBQ0FCTmdJc0FrQWdBQ2dDTENJQktRTUFRZ0JVRFFBZ0FTa0RDRUlBVkEwQUlBQWdBU0FCS1FNSUVJUUNOd01nSUFBZ0FTa0RBRUlIVmpvQUh5QUFBbjRnQUMwQUgwRUJjUVJBSUFFZ0FTa0RBQkNFQWd3QkN5QUJLUU1BQ3pjREVDQUJBbjRnQUMwQUgwRUJjUVJBSUFBcEF5QWdBQ2tERUVJQmZId01BUXNnQUNrRElFSUJmQXMzQXhnZ0FVRVFhaUlDSUFFcEF4aW5FQzhRWXlBQ0VCWkJBQ0FCS1FNWXB4QkdJQUFnQWhBV05nSU1JQUFvQWd3aUFpQUNMUUFBUVFOMHJDQUFLUU1nUWdGOVFnZURoRHdBQUNBQUtBSU1JQUF0QUI5QkFYRWdBQ2dDREMwQUFFRUJkSEk2QUFBZ0FDZ0NEQ0FBS0FJTUxRQUFRUU4wckFKK0lBQXRBQjlCQVhFRVFDQUFLUU1RUWdGOURBRUxJQUFwQXhBTFFnZURoRHdBQUNBQUxRQWZRUUZ4QkVBZ0FFRUFOZ0lJQTBBZ0FEUUNDQ0FBS1FNUVZBUkFJQUFvQWd3Z0FDZ0NDQ0lDUVFGcWFpQUJLUU1BSUFBcEF4QkNBWDBnQXF4OVFnT0dpRUwvQVlNOEFBQWdBQ0FBS0FJSVFRRnFOZ0lJREFFTEN3c2dBQUorSUFBdEFCOUJBWEVFUUNBQUtRTVFRZ0Y4REFFTFFnRUxQZ0lFSUFCQkFEWUNBQU5BSUFBMEFnQWdBQ2tESUZvTkFTQUFLQUlNSUFBb0FnQWlBaUFBS0FJRWFtb2dBU2tEQ0NBQUtRTWdRZ0Y5SUFLc2ZVSURob2hDL3dHRFBBQUFJQUFnQUNnQ0FFRUJhallDQUF3QUN3QUxJQUJCTUdva0FDQUVRU0JxSkFBZ0EwRUlhaUFGRUY4Z0F5Z0NDQ0VBSUFOQkVHb2tBQ0FBQzBNQkFYOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSU1JZ0FnQWlnQ0NCQ2VBaUFBUWZBeE5nSUFJQUJCSUdvUW5RSWdBa0VRYWlRQUlBQUxWQUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQTJBZ3dnQWlBQk5nSUlJQUlvQWdnaEFTTUFRUkJySWdBZ0FpZ0NERFlDRENBQUlBRTJBZ2dnQUNnQ0RDZ0NBQ0FBS0FJSUtBSUFSaUVBSUFKQkVHb2tBQ0FBQzFjQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJRUlBRWdBU2dDQkJDQUFUWUNBQ01BUVJCcklnQWdBU2dDQURZQ0NDQUFJQUZCQ0dvMkFnUWdBQ2dDQkNBQUtBSUlOZ0lBSUFFb0FnZ2hBQ0FCUVJCcUpBQWdBQXV1QndFRWZ5TUFRVUJxSWdVa0FDQUZJQUEyQWpnZ0JTQUJOd013SUFVZ0FqY0RLQ0FGSUFNMkFpUWdCU0FFTmdJZ0lBVW9BamdpQjBFSWFpRUFJd0JCSUdzaUF5UUFJQU1nQURZQ0ZDQURJQVZCTUdvMkFoQWdBeWdDRkNFRUlBTW9BaEFoQmlNQVFTQnJJZ0FrQUNBQUlBUTJBaFFnQUNBR05nSVFJQUFnQUNnQ0ZDSUVFQjBnQUNnQ0VCQitOZ0lNSUFBZ0JCQTBOZ0lJQWtBZ0FDZ0NDQVJBSUFBZ0FDZ0NEQ0FBS0FJSUVDVTJBZ1FnQUNBRUlBQW9BZ1FRSXlnQ0FEWUNBQ0FBS0FJQUJFQWdBQ0FBS0FJQUtBSUFOZ0lBQTBBZ0FDZ0NBQVIvSUFBb0Fnd2hDQ01BUVJCcklnWWdBQ2dDQURZQ0RDQUlJQVlvQWd3b0FnUkhCSDhqQUVFUWF5SUdJQUFvQWdBMkFnd2dCaWdDRENnQ0JDQUFLQUlJRUNVZ0FDZ0NCRVlGUVFFTEJVRUFDMEVCY1FSQUl3QkJFR3NpQmlBQUtBSUFOZ0lNQWtBZ0JpZ0NEQ2dDQkNBQUtBSU1SdzBBSUFRUU1DQUFLQUlBRUJkQkNHb2dBQ2dDRUJCOVFRRnhSUTBBSUFBb0FnQWhCaU1BUVJCcklnUWdBRUVZYWpZQ0RDQUVJQVkyQWdnZ0JDZ0NEQ0FFS0FJSU5nSUFEQVVMSUFBZ0FDZ0NBQ2dDQURZQ0FBd0JDd3NMQ3lBQUlBUVFnQUUyQWhnTElBQW9BaGdoQkNBQVFTQnFKQUFnQXlBRU5nSUlJd0JCRUdzaUFDQURLQUlJTmdJSUlBQWdBMEVZYWpZQ0JDQUFLQUlFSUFBb0FnZzJBZ0FnQXlnQ0dDRUFJQU5CSUdva0FDQUZJQUEyQWhnZ0JTQUhRUWhxRUpnQ05nSVFBa0FnQlVFWWFpQUZRUkJxRUpjQ1FRRnhCRUFnQlVFQU9nQS9EQUVMSUFWQkNHb2lBQ0FGUVJocUVGRkJDR29RcUFFakFFRVFheUlESUFBMkFnd0NRQ0FES0FJTUtBSUFSUVJBSUFWQkFEb0FQd3dCQ3lBRktRTW9JQVVvQWlRZ0JTZ0NJQkNnQVVFQmNVVUVRQ0FGUVFBNkFEOE1BUXNnQlNnQ0pDSUFJUU1nQlNnQ0lDQUFhaUVFSXdCQkVHc2lBQ0FGUVFocU5nSU1JQUFvQWd3b0FnQWlBQ0FBS0FJQUtBSVlFUUFBSVFjZ0JTZ0NKQ0VHSXdCQklHc2lBQ1FBSUFBZ0F6WUNGQ0FBSUFRMkFoQWdBQ0FITmdJTUlBQWdCallDQ0FOQUlBQW9BaFFnQUNnQ0VFY0VRQ0FBS0FJVUlRUWdBQ2dDRENFSEl3QkJFR3NpQXlBQVFSaHFOZ0lNSUFNZ0JEWUNDQ0FESUFjMkFnUWdBeWdDQ0MwQUFDQURLQUlFTFFBQWN5RURJQUFvQWdnZ0F6b0FBQ0FBSUFBb0FoUkJBV28yQWhRZ0FDQUFLQUlNUVFGcU5nSU1JQUFnQUNnQ0NFRUJhallDQ0F3QkN3c2dBQ2dDQ0JvZ0FFRWdhaVFBSUFWQkFUb0FQd3NnQlVFQk5nSUVJQVZCQ0dvUU9Bc2dCUzBBUDBFQmNTRUFJQVZCUUdza0FDQUFDNk1CQVFWL0l3QkJFR3NpQXlRQUlBTWdBRFlDRENBREtBSU1JZ0FoQWlBQUtBSUFJUUVqQUVFUWF5SUFKQUFnQUNBQ05nSU1JQUFnQVRZQ0NDQUFJQUFvQWd3aUFpZ0NCRFlDQkFOQUlBQW9BZ2dnQUNnQ0JFY0VRQ0FDRUJnaEFTQUFJQUFvQWdSQkNHc2lCRFlDQkNBQklRVWpBRUVRYXlJQklBUTJBZ3dnQlNBQktBSU1FRVFNQVFzTElBSWdBQ2dDQ0RZQ0JDQUFRUkJxSkFBZ0EwRVFhaVFBQzVRQkFRZC9Jd0JCRUdzaUFpUUFJQUlnQURZQ0RDQUNLQUlNSWdBUUdTRURJQUFRR1NBQUVENUJBM1JxSVFRZ0FCQVpJUWNqQUVFUWF5SUJJQUEyQWd3Z0J5QUJLQUlNSWdFb0FnUWdBU2dDQUd0QmVIRnFJUVVnQUJBWklBQVFQa0VEZEdvaEJpTUFRU0JySWdFZ0FEWUNIQ0FCSUFNMkFoZ2dBU0FFTmdJVUlBRWdCVFlDRUNBQklBWTJBZ3dnQWtFUWFpUUFDMmtCQVg4akFFRVFheUlDSkFBZ0FpQUFOZ0lNSUFJZ0FUWUNDQ0FDS0FJTUlRRWdBaUFDS0FJSUtBSUFOZ0lBSXdCQkVHc2lBQ0FDS0FJQU5nSUlJQUFnQVRZQ0JDQUFLQUlFSUFBb0FnZzJBZ0FnQVNBQ0tBSUlMUUFFUVFGeE9nQUVJQUpCRUdva0FBdXVCQUVMZnlNQVFSQnJJZ1lrQUNBR0lBQTJBZ3dnQmlnQ0RDSUpJUUVqQUVFZ2F5SUFKQUFnQUNBQk5nSWNJQUFvQWh3aUJ5RUJJd0JCRUdzaUF5UUFJQU1nQVRZQ0RDQURLQUlNSVFFakFFRWdheUlFSkFBZ0JDQUJOZ0ljSUFRZ0EwRUlhallDR0NBRUlBTTJBaFFqQUVFUWF5SUJJQVFvQWh3aUFqWUNCQ0FCS0FJRVFRQTJBZ0FqQUVFUWF5SUlKQUFnQ0NBQ1FRUnFOZ0lFSUFnb0FnUWhBaU1BUVJCcklnRWtBQ0FCSUFJMkFnd2dBU2dDRENFRklBRkJBRFlDQ0NNQVFSQnJJZ0lrQUNBQ0lBVTJBZ3dnQWlBQlFRaHFOZ0lJSUFJZ0FUWUNCQ0FDS0FJSUlRb2pBRUVRYXlJRklBSW9BZ3dpQ3pZQ0RDQUZJQW8yQWdnZ0JTZ0NEQ0FGS0FJSUtBSUFOZ0lBSUFzUWlnRWdBa0VRYWlRQUlBRkJFR29rQUNBSVFSQnFKQUFnQkVFZ2FpUUFJQU5CRUdva0FDQUhRUWhxRUtVQ0lBQkJBRFlDR0NNQVFSQnJJZ0VrQUNBQklBZEJER28yQWd3Z0FTQUFRUmhxTmdJSUlBRWdBRUVRYWpZQ0JDQUJLQUlJSVFNakFFRVFheUlDSUFFb0Fnd2lCRFlDRENBQ0lBTTJBZ2dnQWlnQ0RDQUNLQUlJS0FJQU5nSUFJQVFRa1FJZ0FVRVFhaVFBSUFCREFBQ0FQemdDRENNQVFSQnJJZ0VrQUNBQklBZEJFR28yQWd3Z0FTQUFRUXhxTmdJSUlBRWdBRUVJYWpZQ0JDQUJLQUlJSVFNakFFRVFheUlDSUFFb0Fnd2lCRFlDRENBQ0lBTTJBZ2dnQWlnQ0RDQUNLQUlJS2dJQU9BSUFJQVFRa1FJZ0FVRVFhaVFBSUFCQklHb2tBQ01BUVJCcklBazJBZ3dnQmtFUWFpUUFDK3NEQVFoL0l3QkJFR3NpQlNRQUlBVWdBRFlDRENBRklBRTJBZ2dnQlNnQ0RDSUFRZHd4TmdJQUlBQWdCU2dDQ0RZQ0JDQUFRUWhxRUowQ0lBQkJIR29pQnhBcUlBVW9BZ2doQVNNQVFSQnJJZ0FrQUNBQUlBRTJBZ1FDUUNBQUtBSUVSUVJBSXdCQkVHc2lBU1FBUVJBUUx5SUdJUVFqQUVFUWF5SUNKQUFnQWlBRU5nSU1Jd0JCRUdzaUJDQUNLQUlNSWdNMkFnd2dCRUVBTmdJSUlBUW9BZ3dpQ0VHTUt6WUNBQ0FJSUFRb0FnZzJBZ1FnQTBHb0tUWUNBQ0FEUWVRek5nSUlJQU1oQ1JDWEFTRUVJd0JCRUdzaUF5QUVOZ0lNSUFrZ0F5Z0NEQ2dDRERZQ0RDQUNRUkJxSkFBZ0FVRUlhaUFHRUY4Z0FTZ0NDQ0VDSUFGQkVHb2tBQ0FBSUFJMkFnQWdBRUVJYWlBQUVMRUJJd0JCRUdzaUJDUUFJQVFnQURZQ0RDQUVLQUlNSVFJakFFRVFheUlCSkFBZ0FTQUNOZ0lNSUFGQkFEWUNDQ0FCSUFFb0Fnd2lBaEFYS0FJQU5nSUVJQUVvQWdnaEF5QUNFQmNnQXpZQ0FDQUJLQUlFQkVBZ0FoQVhJUU1nQVNnQ0JDRUdJd0JCRUdzaUFpUUFJQUlnQXpZQ0RDQUNJQVkyQWdnZ0FpZ0NDQ0lEQkVBZ0F4QldHaUFERUNJTElBSkJFR29rQUFzZ0FVRVFhaVFBSUFSQkVHb2tBQXdCQ3lBQVFRaHFFS2dDQ3lBQUtBSUlJUUVnQUVFUWFpUUFJQVVnQVRZQ0FDQUhJQVVRd2dFZ0JSQnpJQVZCRUdva0FBc2tBUUYvSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCS0FJTUVLc0JHaUFCUVJCcUpBQUxNZ0VCZnlNQVFSQnJJZ0VrQUNBQklBQTJBZ3dnQVNnQ0RDSUFRZHd3TmdJQUlBQkJER29RbndJZ0FVRVFhaVFBSUFBTGRRRUNmeU1BUVJCcklnTWtBQ0FESUFBMkFnd2dBeUFCTmdJSUlBTWdBallDQkNBREtBSU1JUUVnQXlnQ0NDRUNJQU1vQWdRaEJDTUFRUkJySWdBa0FDQUFJQUUyQWd3Z0FDQUNOZ0lJSUFBZ0JEWUNCQ0FBS0FJSUlBQW9BZ1JCekFCc1FRUVFReUFBUVJCcUpBQWdBMEVRYWlRQUN6Y0JBWDhqQUVFUWF5SUNKQUFnQWlBQU5nSU1JQUlnQVRZQ0NDTUFRUkJySWdBZ0FpZ0NERFlDRENBQUtBSU1HaUFDUVJCcUpBQUxqd0VCQW44akFFRWdheUlDSkFBZ0FTZ0NBQ0VESUFFb0FnUWhBU0FDSUFBMkFoZ2dBaUFCTmdJVUlBSWdBellDRUNBQ1FSRTJBZ3dnQWlnQ0dDRUJJd0JCRUdzaUFDQUNRUWhxSWdNMkFnd2dBQ1FBSUFBZ0F6WUNEQ0FBUVJCcUpBQWdBaUFDS0FJTU5nSWNRYlFuSUFGQkEwSDBLRUdRS0NBQ0tBSU1JQUpCRUdvUVZVRUFFQVFnQWtFZ2FpUUFDNFFDQVFSL0l3QkJFR3NpQWlRQUlBSWdBRFlDRENBQ0tBSU1JZ01oQkNBREtBSUFJUUVqQUVFUWF5SUFKQUFnQUNBQk5nSUlBa0FnQUNnQ0NDZ0NBQVJBSXdCQkVHc2lBU0FBS0FJSUtBSUFOZ0lNQTBBZ0FTZ0NEQ2dDQkFSQUlBRWdBU2dDRENnQ0JEWUNEQXdCQ3dzZ0FDQUJLQUlNTmdJTURBRUxJQUFnQUNnQ0NEWUNCQU5BSXdCQkVHc2lBU0FBS0FJRU5nSU1JQUVvQWd3aUFTQUJLQUlJS0FJQVJnUkFJd0JCRUdzaUFTQUFLQUlFTmdJTUlBQWdBU2dDRENnQ0NEWUNCQXdCQ3dzakFFRVFheUlCSUFBb0FnUTJBZ3dnQUNBQktBSU1LQUlJTmdJTUN5QUFLQUlNSVFFZ0FFRVFhaVFBSUFRZ0FUWUNBQ0FDUVJCcUpBQWdBd3RYQVFOL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQktBSU1JUUlqQUVFUWF5SUFKQUFnQUNBQ05nSUVJd0JCRUdzaUF5QUFLQUlFTmdJTUlBTW9BZ3hCQURZQ0FDQUFRUkJxSkFBZ0FoQ0tBU0FCUVJCcUpBQUxnQUVCQW44akFFRVFheUlCSkFBZ0FTQUFOZ0lJSUFFZ0FTZ0NDQ0lBTmdJTUlBQkI3QzgyQWdBZ0FFRUVhaEFXQkVBZ0FFRUVhaUlDRURFZ0FoQTNDeUFBUVRScUVCb2dBRUVzYWhBYUlBQkJKR29RR2lBQVFSeHFFQm9nQUVFVWFoQWFJQUJCREdvUUdpQUFRUVJxRUJvZ0FTZ0NEQ0VBSUFGQkVHb2tBQ0FBQzZzVUFRMS9Jd0JCSUdzaUN5UUFJQXNnQURZQ0hDQUxJQUkyQWhnZ0N5Z0NIQ0VESXdCQkVHc2lBQ0FMUVJCcUlnSTJBZ1FnQUNnQ0JCb2dBQ1FBSUFBZ0F6WUNEQ0FBSUFJMkFnZ2dBQ2dDRENJRlFRUnFFS1VDSUFCQkFEWUNCQ0FBS0FJSUlRWWpBRUVRYXlJQ0pBQWdBaUFGUVFocU5nSU1JQUlnQUVFRWFqWUNDQ0FDSUFZMkFnUWdBaWdDQ0NFRUl3QkJFR3NpQmlBQ0tBSU1JZ2MyQWd3Z0JpQUVOZ0lJSUFZb0Fnd2dCaWdDQ0NnQ0FEWUNBQ0FDS0FJRUlRUWpBRUVRYXlJR0lBYzJBZ3dnQmlBRU5nSUlJQVlvQWd3YUlBSkJFR29rQUNBRkVFZ2hBaU1BUVJCcklnWWdCVFlDRENBR0tBSU1JQUkyQWdBZ0FFRVFhaVFBSXdCQkVHc2lBQ0FCTmdJTUlBQW9BZ3dvQWdBaEFDTUFRUkJySWdJZ0FUWUNEQ0FDS0FJTUlnRW9BZ0FnQVNnQ0JFSFlBR3hxSVFFakFFRXdheUlDSkFBZ0FpQUROZ0lzSUFJZ0FEWUNLQ0FDSUFFMkFpUWdBaWdDTENJT0lRQWpBRUVRYXlJQkpBQWdBU0FBTmdJRUlBRW9BZ1FoQlNNQVFSQnJJZ0FrQUNBQUlBVTJBZ1FnQUNBQUtBSUVFSzRCTmdJQUl3QkJFR3NpQlNBQUtBSUFOZ0lJSUFVZ0FFRUlhallDQkNBRktBSUVJQVVvQWdnMkFnQWdBQ2dDQ0NFRklBQkJFR29rQUNBQklBVTJBZ2dnQVNnQ0NDRUFJQUZCRUdva0FDQUNJQUEyQWlBRFFDQUNLQUlvSUFJb0FpUkhCRUFnQWlBQ0tBSWdOZ0lRSXdBaUFVRVFheUlBSUFJb0FoQTJBZ2dnQUNBQ1FSaHFOZ0lFSUFBb0FnUWdBQ2dDQ0RZQ0FDQUNLQUlZSVFBZ0FpZ0NLQ0VGSUFGQk1Hc2lCaVFBSUFZZ0FEWUNJQ0FHSUE0MkFod2dCaUFGTmdJWUlBWW9BaHdoQUNBR0lBWW9BaUEyQWdnZ0JpZ0NDQ0VCSUFZb0FoZ2hBeU1BUVRCcklnVWtBQ0FGSUFFMkFpQWdCU0FBTmdJY0lBVWdBellDR0NBRktBSWNJUUFnQlNBRktBSWdOZ0lJSXdCQkVHc2lBU0FGS0FJWU5nSU1JQUVvQWd3aEF5QUZLQUlJSVFRZ0JTZ0NHQ0VISXdCQjBBQnJJZ0VrQUNBQklBUTJBa2dnQVNBQU5nSkVJQUVnQXpZQ1FDQUJJQWMyQWp3Z0FTZ0NSQ0VNSUFFZ0FTZ0NTRFlDS0NBQktBSW9JUU1nQVNnQ1FDRUVJd0JCNEFCcklnQWtBQ0FBSUFNMkFsZ2dBQ0FNTmdKVUlBQWdBVUU0YWpZQ1VDQUFJQUZCTkdvMkFrd2dBQ0FFTmdKSUlBQWdBQ2dDVkNJSEVLNEJOZ0k0SXdCQkVHc2lBeUFBS0FJNE5nSUlJQU1nQUVGQWF5SUVOZ0lFSUFNb0FnUWdBeWdDQ0RZQ0FDQURJQUJCMkFCcU5nSU1JQU1nQkRZQ0NBSkFJQU1vQWd3b0FnQWdBeWdDQ0NnQ0FFWUVmMEVCQlNBSEVCZ2dBQ2dDU0NBQVFkZ0FhaENDQVJDRUFRdEJBWEVFUUNBQUlBQW9BbGcyQWpBakFFRVFheUlESkFBZ0F5QUhOZ0lFSXdCQkVHc2lCQ0FES0FJRU5nSU1JQVFvQWd3b0FnQWhDU01BUVJCcklnUWdBMEVJYWpZQ0RDQUVJQWsyQWdnZ0JDZ0NEQ0FFS0FJSU5nSUFJQU1vQWdnaEJDQURRUkJxSkFBZ0FDQUVOZ0lnSXdCQkVHc2lBeUFBS0FJZ05nSUlJQU1nQUVFb2FpSUVOZ0lFSUFNb0FnUWdBeWdDQ0RZQ0FDTUFRUkJySWdNZ0FFRXdhallDRENBRElBUTJBZ2dnQXlnQ0RDZ0NBQ0FES0FJSUtBSUFSZ1IvUVFFRklBY1FHQ0FBUVRCcUVLUUNFSUlCSUFBb0FrZ1Fnd0VMUVFGeEJFQWdBQ2dDV0NnQ0FFVUVRQ0FBS0FKUUlBQW9BbGcyQWdBZ0FDQUFLQUpRS0FJQU5nSmNEQU1MSUFBb0FsQWdBQ2dDTURZQ0FDQUFJQUFvQWpCQkJHbzJBbHdNQWdzZ0FDQUhJQUFvQWxBZ0FDZ0NTQkNHQVRZQ1hBd0JDeUFIRUJnZ0FFSFlBR29RZ2dFZ0FDZ0NTQkNEQVVFQmNRUkFJQUFnQUNnQ1dEWUNFQ0FBS0FJUUlRTWpBRUVnYXlJSkpBQWdDU0FETmdJUUlBbEJBVFlDRENBSktBSU1JUU1qQUVFUWF5SUtKQUFnQ2lBSlFSQnFOZ0lNSUFvZ0F6WUNDQ01BUVJCcklnTWdDaWdDQ0RZQ0RDQUtJQU1vQWd3MkFnUWdDaWdDRENFRUlBb29BZ1FoQ0NNQVFSQnJJZ01rQUNBRElBUTJBZ1FnQXlBSU5nSUFBa0FnQXlnQ0FFRUFUZ1JBQTBBZ0F5Z0NBRUVBU2dSQUlBTW9BZ1FoQkNNQVFSQnJJZzBrQUNBTklBUTJBZ3dnRFNnQ0RDSUVJUThnQkNnQ0FDRUlJd0JCRUdzaUJDUUFJQVFnQ0RZQ0NBSkFJQVFvQWdnb0FnUUVRQ01BUVJCcklnZ2dCQ2dDQ0NnQ0JEWUNEQU5BSUFnb0Fnd29BZ0FFUUNBSUlBZ29BZ3dvQWdBMkFnd01BUXNMSUFRZ0NDZ0NERFlDREF3QkN3TkFJd0JCRUdzaUNDQUVLQUlJTmdJTUlBZ29BZ3dpQ0NBSUtBSUlLQUlBUmtGL2MwRUJjUVJBSXdCQkVHc2lDQ0FFS0FJSU5nSU1JQVFnQ0NnQ0RDZ0NDRFlDQ0F3QkN3c2dCQ0FFS0FJSUtBSUlOZ0lNQ3lBRUtBSU1JUWdnQkVFUWFpUUFJQThnQ0RZQ0FDQU5RUkJxSkFBZ0F5QURLQUlBUVFGck5nSUFEQUVMQ3d3QkN3TkFJQU1vQWdCQkFFZ0VRQ0FES0FJRUVLUUNHaUFESUFNb0FnQkJBV28yQWdBTUFRc0xDeUFEUVJCcUpBQWdDa0VRYWlRQUlBa2dDU2dDRURZQ0dDQUpLQUlZSVFNZ0NVRWdhaVFBSUFBZ0F6WUNHQ0FBSUFjUXJnRTJBZ0FqQUVFUWF5SURJQUFvQWdBMkFnZ2dBeUFBUVFocUlnUTJBZ1FnQXlnQ0JDQURLQUlJTmdJQUlBTWdBRUVZYWpZQ0RDQURJQVEyQWdnZ0F5Z0NEQ2dDQUNBREtBSUlLQUlBUmdSL1FRRUZJQWNRR0NBQUtBSklJQUJCR0dvUWdnRVFoQUVMUVFGeEJFQWpBRUVRYXlJRElBQkIyQUJxTmdJTUlBTW9BZ3dvQWdBb0FnUkZCRUFnQUNnQ1VDQUFLQUpZTmdJQUlBQWdBQ2dDV0VFRWFqWUNYQXdEQ3lBQUtBSlFJQUFvQWhnMkFnQWdBQ0FBS0FKUUtBSUFOZ0pjREFJTElBQWdCeUFBS0FKUUlBQW9Ba2dRaGdFMkFsd01BUXNnQUNnQ1VDQUFLQUpZTmdJQUlBQW9Ba3dnQUNnQ1dEWUNBQ0FBSUFBb0FrdzJBbHdMSUFBb0Fsd2hBeUFBUWVBQWFpUUFJQUVnQXpZQ01DQUJJQUVvQWpBb0FnQTJBaVFnQVVFQU9nQWpJQUVvQWpBb0FnQkZCRUFnQVNnQ1BDRURJd0JCSUdzaUFDUUFJQUFnRERZQ0hDQUFJQU0yQWhnZ0FDQUFLQUljRUdBMkFoUWdBRUVBT2dBVElBQW9BaFFRdFFFaEF5QUFRUWhxSWdjZ0FDZ0NGRUVBRUZRZ0FVRVFhaUlFSUFNZ0J4QlRJQUFvQWhRaEJ5QUVFQlpCRUdvUUxDRUpJQUFvQWhnaENpTUFRUkJySWdNa0FDQURJQWMyQWd3Z0F5QUpOZ0lJSUFNZ0NqWUNCQ0FES0FJTUlRa2dBeWdDQ0NFS0lBTW9BZ1FoQ0NNQVFSQnJJZ2NrQUNBSElBazJBZ3dnQnlBS05nSUlJQWNnQ0RZQ0JDQUhLQUlJSUFjb0FnUkIyQUFRR3hvZ0IwRVFhaVFBSUFOQkVHb2tBQ0FFRUQ5QkFUb0FCQ0FBUVFFNkFCTWdBQzBBRTBFQmNVVUVRQ0FFRUdJTElBQkJJR29rQUNBTUlBRW9BamdnQVNnQ01DQUVFQllRdGdFZ0FTQUVFRUkyQWlRZ0FVRUJPZ0FqSUFRUVlnc2dBU2dDSkNFREl3QkJFR3NpQUNBQlFRaHFJZ1EyQWd3Z0FDQUROZ0lJSUFBb0Fnd2dBQ2dDQ0RZQ0FDQUZRUkJxSUFRZ0FVRWphaEJoSUFGQjBBQnFKQUFnQlNBRktBSVFOZ0lvSUFVb0FpZ2hBQ0FGUVRCcUpBQWdCaUFBTmdJUUl3QkJFR3NpQUNBR0tBSVFOZ0lJSUFBZ0JrRW9hallDQkNBQUtBSUVJQUFvQWdnMkFnQWdCaWdDS0NFQUlBWkJNR29rQUNBQ0lBQTJBZ2dnQWlBQ0tBSW9RZGdBYWpZQ0tBd0JDd3NnQWtFd2FpUUFJQXRCSUdva0FBczBBUUYvSXdCQklHc2lBU1FBSUFFZ0FEWUNIQ0FCUVFBMkFoZ2dBU2dDSENBQlFSQnFJQUZCQ0dvUXdRRWdBVUVnYWlRQUM0d0NBUUovSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCSUFFb0Fnd29BZ0EyQWdnZ0FTZ0NEQ0FCS0FJSUtBSUVOZ0lBSUFFb0Fnd29BZ0FFUUNNQVFSQnJJZ0FnQVNnQ0RDSUNLQUlBTmdJTUlBQWdBallDQ0NBQUtBSU1JQUFvQWdnMkFnZ0xJQUVvQWdnZ0FTZ0NEQ2dDQ0RZQ0NDTUFRUkJySWdBZ0FTZ0NERFlDREFKQUlBQW9BZ3dpQUNBQUtBSUlLQUlBUmdSQUlBRW9BZ3dvQWdnZ0FTZ0NDRFlDQUF3QkN5QUJLQUlJSVFBakFFRVFheUlDSUFFb0FndzJBZ3dnQWlnQ0RDZ0NDQ0FBTmdJRUN5QUJLQUlJSUFFb0FndzJBZ1FnQVNnQ0NDRUNJd0JCRUdzaUFDQUJLQUlNTmdJTUlBQWdBallDQ0NBQUtBSU1JQUFvQWdnMkFnZ2dBVUVRYWlRQUM0d0NBUUovSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCSUFFb0Fnd29BZ1EyQWdnZ0FTZ0NEQ0FCS0FJSUtBSUFOZ0lFSUFFb0Fnd29BZ1FFUUNNQVFSQnJJZ0FnQVNnQ0RDSUNLQUlFTmdJTUlBQWdBallDQ0NBQUtBSU1JQUFvQWdnMkFnZ0xJQUVvQWdnZ0FTZ0NEQ2dDQ0RZQ0NDTUFRUkJySWdBZ0FTZ0NERFlDREFKQUlBQW9BZ3dpQUNBQUtBSUlLQUlBUmdSQUlBRW9BZ3dvQWdnZ0FTZ0NDRFlDQUF3QkN5QUJLQUlJSVFBakFFRVFheUlDSUFFb0FndzJBZ3dnQWlnQ0RDZ0NDQ0FBTmdJRUN5QUJLQUlJSUFFb0FndzJBZ0FnQVNnQ0NDRUNJd0JCRUdzaUFDQUJLQUlNTmdJTUlBQWdBallDQ0NBQUtBSU1JQUFvQWdnMkFnZ2dBVUVRYWlRQUMxY0JBbjhqQUVFUWF5SUNKQUFnQWlBQU5nSU1JQUlnQVRZQ0NDTUFRUkJySWdFZ0FpZ0NDQ0lEUVRocU5nSU1JQUlnQVNnQ0RDSUJLQUlFSUFFb0FnQnJJQU5CT0dvUUdSQjdJQUFnQWhCNElBSkJFR29rQUFzcUFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJLQUlNSWdBUWh3RWFJQUFRSWlBQlFSQnFKQUFMc2dVQkNYOGpBRUVnYXlJRUpBQWdCQ0FBTmdJY0lBUWdBVGNERUNBRUtBSWNJUU1nQkVFQU5nSU1JQU1RRmlFQ0lBTkJGR29RR1NFRklBTW9BaUFoQmlBREtBSkVJUWNqQUVIZ0FHc2lBQ1FBSUFBZ0FqWUNXQ0FBSUFVMkFsUWdBQ0FHTmdKUUlBQWdCRUVNYWpZQ1RDQUFJQWMyQWtnZ0FDZ0NXQ0VDSUFCQkFEWUNSQUpBQWtBZ0FpZ0NCRVVFUUNBQVFRbzJBa1FNQVFzZ0FFRUFPZ0JmREFFTElBQkJPR29RTGdKQUlBQW9Ba2hGQkVBZ0FFRW9haUlDSUFBb0FsUWdBQ2dDVUJDZkFTQUFRVGhxSUFJUU5pQUNFQ2NNQVFzQ1FDQUFLQUpJUVFGR0JFQWdBRUVZYWlJQ0lBQW9BbFFnQUNnQ1VCQ2VBU0FBUVRocUlBSVFOaUFDRUNjTUFRc0NRQ0FBS0FKSVFRSkdCRUFnQUVFSWFpSUNJQUFvQWxRZ0FDZ0NVQkNkQVNBQVFUaHFJQUlRTmlBQ0VDY01BUXNnQUNnQ1NFRURSZ1JBSUFCQkFEWUNCQ0FBUVRocUlBQkJCR29nQUVIUUFHb1FVQXNMQ3dzZ0FDZ0NSRUVSYWlFSUl3QkJFR3NpQWlBQVFUaHFJZ1UyQWd3Z0NDQUNLQUlNSWdJb0FnUWdBaWdDQUd0QkEzVnNJUUlnQUNnQ1RDQUFLQUpRSUFKcU5nSUFJQUJCQVRvQVh5QUZFQ2NMSUFBdEFGOGFJQUJCNEFCcUpBQWdCQ2dDRENFQ0l3QkJFR3NpQUNRQUlBQWdBellDRENBQUlBSTJBZ2dqQUVFUWF5SUNJQUFvQWd3aUJVRWthallDRENBQUtBSUlJQUlvQWd3aUFpZ0NCQ0FDS0FJQWEwc0VRQ0FGUVNScUlBQW9BZ2dRaVFFTElBQkJFR29rQUNBRUlBTVFGaUlBSUFRcEF4QWdBMEVVYWhBWklBTW9BaUFnQXlnQ1JDQURRU1JxSWdJUUdTRUtJQU5CTUdvaENTTUFRUkJySWdVZ0FqWUNEQ0FLSUFrZ0JTZ0NEQ0lDS0FJRUlBSW9BZ0JySUFBb0FnQW9BZ2dSRUFBakFFRVFheUlBSUFRMkFnd2dBeUFBS0FJTUtBSUVOZ0kwSUFNb0FqQWhBQ01BUVJCcklnTWdCRFlDRENBREtBSU1HaUFFUVNCcUpBQWdBQXM1QVFGL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENNQVFSQnJJZ0FnQVNnQ0RDZ0NDRFlDRENBQUtBSU1MUUFDSVFBZ0FVRVFhaVFBSUFBTDB4VUJCWDhqQUVGQWFpSU1KQUFnRENBQU5nSThJQXdnQVRZQ09DQU1JQU0yQWpRZ0RDQUVOZ0l3SUF3Z0JUWUNMQ0FNSUFZMkFpZ2dEQ0FITmdJa0lBd2dDRFlDSUNBTUlBazJBaHdnRENBS05nSVlJQXdnQ3pZQ0ZBSkFBa0FnRENnQ09DSUZLQUlFUlFSQUlBeEJDallDRUF3QkN5TUFRUkJySWdFZ0FEWUNEQ0FCUVFJMkFnZ2dBU2dDRENJQVFhUXpOZ0lBSUFBZ0FTZ0NDRFlDQkNBTVFRRTJBZ3dNQVFzZ0RDQU1LQUlRRUI4MkFnZ0NRQ0FGSUF4QkNHb1FGaUVRSUF3b0FoQWhEaU1BUVJCcklnRWdBallDRENBUUlBNGhEeUFCS0FJTUtBSUFJZ0VnQVNnQ0FDZ0NLQkVBQUNFTkl3QkJFR3NpQVNBQ05nSU1JQThnRFNBQktBSU1LQUlBSWdFZ0FTZ0NBQ2dDTEJFQUFDQU1LQUlvSUF3b0FpUWdEQ2dDR0NBTUtBSVVJQXdvQWlBZ0RDZ0NIQ0FNS0FJUWF4QzZBVUVCY1VVRVFDTUFRUkJySWdFZ0FEWUNEQ0FCUVFJMkFnZ2dBU2dDRENJQVFhUXpOZ0lBSUFBZ0FTZ0NDRFlDQkNBTVFRRTJBZ3dNQVFzZ0RDZ0NJQ0FNS0FJY2FpSUJJQXdvQWhCcklRUWdERUVJYWhBV0lRWWpBRUVRYXlJREpBQWdBeUFFTmdJTUlBTWdBVFlDQ0NBRElBWTJBZ1FnQXlnQ0RDRUVJQU1vQWdnaEJpQURLQUlFSVFjakFFRWdheUlCSkFBZ0FTQUVOZ0lVSUFFZ0JqWUNFQ0FCSUFjMkFnd0NRQU5BSUFFb0FoUWdBU2dDRUVjRVFDQUJLQUlVSVFZZ0FTZ0NEQ0VISXdCQkVHc2lCQ0FCUVJocU5nSU1JQVFnQmpZQ0NDQUVJQWMyQWdRZ0JDZ0NDQzBBQUNBRUtBSUVMUUFBUmdSQUlBRWdBU2dDRkVFQmFqWUNGQ0FCSUFFb0FneEJBV28yQWd3TUFnVWdBVUVBT2dBZkRBTUxBQXNMSUFGQkFUb0FId3NnQVMwQUgwRUJjU0VFSUFGQklHb2tBQ0FFUVFGeElRRWdBMEVRYWlRQUlBRkZCRUFqQUVFUWF5SUJJQUEyQWd3Z0FVRUROZ0lJSUFFb0Fnd2lBRUdrTXpZQ0FDQUFJQUVvQWdnMkFnUWdERUVCTmdJTURBRUxJQXdnRENnQ0hDQU1LQUlRYXpZQ0JDQU1JQXdvQWdRUUh6WUNBQ0FNRUJZaEFTTUFRUkJySWdNZ0FqWUNEQ0FES0FJTUtBSUFJZ01nQXlnQ0FDZ0NJQkVBQUNFRUl3QkJFR3NpQXlBQ05nSU1JQU1vQWd3b0FnQWlBeUFES0FJQUtBSWtFUUFBSVFZZ0RDZ0NLQ0VISUF3b0FpUWhDQ0FNS0FJZ0lRa2dEQ2dDSENBTUtBSVFheUVLSXdCQlFHb2lBeVFBSUFNZ0JUWUNPQ0FESUFFMkFqUWdBeUFFTmdJd0lBTWdCallDTENBRElBYzJBaWdnQXlBSU5nSWtJQU1nQ1RZQ0lDQURJQW8yQWh3Q1FDQURLQUk0SWdFb0Fnd2dBeWdDSkVrRVFDQURRUUE2QUQ4TUFRc2dBeUFCS0FJTUVCODJBaGdnQTBFWWFoQVdJQU1vQWlnZ0F5Z0NKQkFiR2lBREVPSUJOZ0lVQWtBZ0F5Z0NGRVVFUUNBRFFRQTZBRDhNQVFzZ0F5Z0NGQ0VFRUpjQklRVWdBeWdDTUNFR0lBTkJHR29RRmlFSEl3QkJJR3NpQVNRQUlBRWdCRFlDSENBQklBVTJBaGdnQVVFQU5nSVVJQUVnQmpZQ0VDQUJJQWMyQWd3Z0FTZ0NIQ0FCS0FJWUlBRW9BaFFnQVNnQ0VDQUJLQUlNUVFBUTN3RWhCQ0FCUVNCcUpBQWdCRVVFUUNBREtBSVVFRE1nQTBFQU9nQS9EQUVMSUFNb0FoUWhCQ0FES0FJMElRVWdBeWdDSUNFR0lBTW9BaHdoQnlNQVFUQnJJZ0VrQUNBQklBUTJBaWdnQVNBRk5nSWtJQUVnQTBFTWFqWUNJQ0FCSUFZMkFod2dBU0FITmdJWUFrQWdBU2dDS0NnQ2hBRUVRRUVlUWNJQVFmUVNRWk1ERUJ3Z0FVRUFOZ0lzREFFTElBRWdBU2dDS0NnQ0FDZ0NCRFlDRkFKQUlBRW9BaFJCQVUwTkFDQUJLQUlZUWYvLy8vOEhJQUVvQWhSclRBMEFRUjVCeFFCQjlCSkJtd01RSENBQlFRQTJBaXdNQVFzZ0FTZ0NLQ2dDQUNnQ0ZFR0FDSEVFUUNBQklBRW9BaWdpQkNBQktBSWtJQUVvQWh3Z0FTZ0NHQ0FFS0FJQUtBSWdFUVlBTmdJUUlBRW9BaEJCQUVnRVFDQUJLQUlnUVFBMkFnQWdBVUVBTmdJc0RBSUxJQUVvQWlBZ0FTZ0NFRFlDQUNBQlFRRTJBaXdNQVFzZ0FTZ0NHRUVBVEFSQUlBRW9BaUJCQURZQ0FDQUJJQUVvQWhoRk5nSXNEQUVMSUFFb0FpZ29BaFJCZ0JCeEJFQWdBU0FCS0FJb0lBRW9BaVFnQVNnQ0lDQUJLQUljSUFFb0FoZ1FtQUUyQWl3TUFRc2dBU2dDRkVFZ1N3UkFRWmdqUWZRU1FiTURRZElQRUFBQUN5QUJRUUEyQWd3Z0FTZ0NLQ2dDWUFSQUlBRW9BaVFnQVNnQ0tFSGtBR29nQVNnQ0ZCQWVJQUVnQVNnQ0ZDQUJLQUlrYWpZQ0pDQUJRUUUyQWd3TElBRW9BaWdnQVNnQ0pDQUJLQUlnSUFFb0Fod2dBU2dDR0JDWUFVVUVRQ0FCUVFBMkFpd01BUXNDUUFKQUlBRW9BaFJCQVUwTkFDQUJLQUlvS0FKWURRQWdBU2dDSUNJRUlBUW9BZ0FnQVNnQ0ZHczJBZ0FnQVNnQ0tFRUJOZ0pnSUFFb0FpaEI1QUJxSUFFb0FpUWdBU2dDSUNnQ0FHb2dBU2dDRkJBZURBRUxJQUVvQWloQkFEWUNZQXNnQVNnQ0RBUkFJQUVvQWlBaUJDQUJLQUlVSUFRb0FnQnFOZ0lBQ3lBQlFRRTJBaXdMSUFFb0Fpd2hCQ0FCUVRCcUpBQWdCRVVFUUNBREtBSVVFRE1nQTBFQU9nQS9EQUVMSUFNZ0F5Z0NERFlDQ0NBREtBSVVJUVFnQXlnQ05DQURLQUlNYWlFRkl3QkJJR3NpQVNRQUlBRWdCRFlDR0NBQklBVTJBaFFnQVNBRFFReHFOZ0lRSUFFb0FoQkJBRFlDQUFKQUlBRW9BaGdvQW9RQkJFQkJIa0hDQUVIMEVrSFdBeEFjSUFGQkFEWUNIQXdCQ3dKQUlBRW9BaGdvQWdBb0FoUkJnQWh4QkVBZ0FTQUJLQUlZSWdRZ0FTZ0NGRUVBUVFBZ0JDZ0NBQ2dDSUJFR0FEWUNEQ0FCS0FJTVFRQklCRUFnQVVFQU5nSWNEQU1MSUFFb0FoQWdBU2dDRERZQ0FBd0JDeUFCSUFFb0FoZ29BZ0FvQWdRMkFnUWdBU2dDR0NnQ0ZFR0FFSEVFUUNBQktBSVlLQUpZQkVCQkhrSHFBRUgwRWtIbkF4QWNJQUZCQURZQ0hBd0RDeUFCS0FJUVFRQTJBZ0FNQVFzQ1FDQUJLQUlFUVFGTEJFQUNRQ0FCS0FJWUtBSllSUVJBSUFFb0FoZ29BbUFOQVF0QkhrSDdBRUgwRWtId0F4QWNJQUZCQURZQ0hBd0VDeUFCS0FJRVFTQkxCRUJCbUNOQjlCSkI4d05CcVFrUUFBQUxJQUVnQVNnQ0dDQUJLQUlFYWkwQVl6WUNDQUpBSUFFb0FnZ0VRQ0FCS0FJSUlBRW9BZ1JNRFFFTFFSNUI1UUJCOUJKQitRTVFIQ0FCUVFBMkFod01CQXNnQVVFQU5nSU1BMEFnQVNnQ0RDQUJLQUlJU0FSQUlBRW9BaGhCNUFCcUlRUWdBU0FCS0FJRVFRRnJJZ1UyQWdRZ0JDQUZhaTBBQUNBQktBSUlSd1JBUVI1QjVRQkI5QkpCL3dNUUhDQUJRUUEyQWh3TUJnVWdBU0FCS0FJTVFRRnFOZ0lNREFJTEFBc0xJQUVnQVNnQ0dDZ0NBQ2dDQkNBQktBSUlhellDQ0NBQlFRQTJBZ3dEUUNBQktBSU1JQUVvQWdoSUJFQWdBU2dDRENJRUlBRW9BaFJxSUFRZ0FTZ0NHRUhrQUdwcUxRQUFPZ0FBSUFFZ0FTZ0NERUVCYWpZQ0RBd0JDd3NnQVNnQ0VDQUJLQUlJTmdJQURBRUxJQUVvQWhCQkFEWUNBQXNMSXdCQkVHc2dBU2dDR0RZQ0RDQUJRUUUyQWh3TElBRW9BaHdoQkNBQlFTQnFKQUFnQkVVRVFDQURLQUlVRURNZ0EwRUFPZ0EvREFFTElBTWdBeWdDRENBREtBSUlhallDQ0NBREtBSUlJQU1vQWh4SEJFQWdBeWdDRkJBeklBTkJBRG9BUHd3QkN5QURLQUlVRURNZ0EwRUJPZ0EvQ3lBRFFRRTJBaEFnQTBFWWFoQWFDeUFETFFBL1FRRnhJUUVnQTBGQWF5UUFBa0FnQVVVRVFDTUFRUkJySWdFZ0FEWUNEQ0FCUVFJMkFnZ01BUXNnRENnQ0xDQU1LQUlFU1FSQUl3QkJFR3NpQVNBQU5nSU1JQUZCQWpZQ0NBd0JDeUFNS0FJMElBd1FGaUFNS0FJRUVCc2FJQXdvQWpBZ0RDZ0NCRFlDQUNNQVFSQnJJZ0VnQURZQ0RDQUJRUUEyQWdnTElBRW9BZ3dpQUVHa016WUNBQ0FBSUFFb0FnZzJBZ1FnREVFQk5nSU1JQXdRR2dzZ0RFRUlhaEFhQ3lBQ0VEZ2dERUZBYXlRQUM4TUZBUWgvSXdCQkVHc2lCeVFBSUFjZ0FEWUNEQ0FISUFFMkFnaEJ5QUFRTHlFSklBY29BZ3dvQWdBaEFDQUhLQUlJS0FJQUlRSWpBRUVRYXlJQkpBQWdBU0FKTmdJTUlBRWdBRFlDQ0NBQklBSTJBZ1FnQVNnQ0RDSUdFQ29nQmtFRWFoQXVJQVpCRkdvUUxpQUdRU1JxRUM0Z0JrRTRhaEF1SUFaQkF6WUNSQ0FCS0FJSUlRSWdBU2dDQkNFRUl3QkJJR3NpQUNRQUlBQWdBallDRkNBQUlBUTJBaEFDUUNBQUtBSVVSUVJBSXdCQkVHc2lBaVFBSUFJZ0FFRVFhallDQkVFMEVDOGlCQ0FDS0FJRUtBSUFFSllDR2lBQ1FRaHFJQVFRWHlBQ0tBSUlJUVFnQWtFUWFpUUFJQUFnQkRZQ0NDQUFRUmhxSUFCQkNHb2lBaEN4QVNNQVFSQnJJZ1FrQUNBRUlBSTJBZ3dnQkNnQ0RDRURJd0JCRUdzaUFpUUFJQUlnQXpZQ0RDQUNRUUEyQWdnZ0FpQUNLQUlNSWdNUUZ5Z0NBRFlDQkNBQ0tBSUlJUVVnQXhBWElBVTJBZ0FnQWlnQ0JBUkFJQU1RRnlFRklBSW9BZ1FoQ0NNQVFSQnJJZ01rQUNBRElBVTJBZ3dnQXlBSU5nSUlJQU1vQWdnaUJRUkFJQVVRcHdFYUlBVVFJZ3NnQTBFUWFpUUFDeUFDUVJCcUpBQU1BUXNqQUVFUWF5SUNKQUFnQWlBQVFSQnFOZ0lFUVNRUUx5SUVJQUlvQWdRb0FnQVFrd0lhSUFKQkNHb2dCQkJmSUFJb0FnZ2hCQ0FDUVJCcUpBQWdBQ0FFTmdJQUlBQkJHR29nQUJDeEFTTUFRUkJySWdRa0FDQUVJQUEyQWd3Z0JDZ0NEQ0VESXdCQkVHc2lBaVFBSUFJZ0F6WUNEQ0FDUVFBMkFnZ2dBaUFDS0FJTUlnTVFGeWdDQURZQ0JDQUNLQUlJSVFVZ0F4QVhJQVUyQWdBZ0FpZ0NCQVJBSUFNUUZ5RUZJQUlvQWdRaENDTUFRUkJySWdNa0FDQURJQVUyQWd3Z0F5QUlOZ0lJSUFNb0FnZ2lCUVJBSUFVUXBBRWFJQVVRSWdzZ0EwRVFhaVFBQ3lBQ1FSQnFKQUFMSUFSQkVHb2tBQ0FBS0FJWUlRSWdBRUVnYWlRQUlBRWdBallDQUNBR0lBRVF3Z0VnQVJCeklBRkJFR29rQUNBSFFSQnFKQUFnQ1F2OURBRUZmeU1BUWRBQWF5SU1KQUFnRENBQU5nSk1JQXdnQVRZQ1NDQU1JQU0yQWtRZ0RDQUVOZ0pBSUF3Z0JUWUNQQ0FNSUFZMkFqZ2dEQ0FITmdJMElBd2dDRFlDTUNBTUlBazJBaXdnRENBS05nSW9JQXdnQ3pZQ0pDQU1LQUpJSVFRZ0RDQU1LQUlzTmdJZ0lBd2dEQ2dDSUJBZk5nSVlJQXhCR0dvUUZpRURJd0JCRUdzaUFTQUNOZ0lNSUFFb0Fnd29BZ0FpQVNBQktBSUFLQUlnRVFBQUlRVWpBRUVRYXlJQklBSTJBZ3dnQVNnQ0RDZ0NBQ0lCSUFFb0FnQW9BaVFSQUFBaEJpQU1LQUk0SVFjZ0RDZ0NOQ0VJSUF3b0FqQWhDU0FNS0FJc0lRb2pBRUZBYWlJQkpBQWdBU0FFTmdJNElBRWdBellDTkNBQklBVTJBakFnQVNBR05nSXNJQUVnQnpZQ0tDQUJJQWcyQWlRZ0FTQUpOZ0lnSUFFZ0NqWUNIQUpBSUFFb0FqZ2lBeWdDRENBQktBSWtTUVJBSUFGQkFEb0FQd3dCQ3lBQklBTW9BZ3dRSHpZQ0dDQUJRUmhxRUJZZ0FTZ0NLQ0FCS0FJa0VCc2FJQUVRNGdFMkFoUUNRQ0FCS0FJVVJRUkFJQUZCQURvQVB3d0JDeUFCS0FJVUlRVVFsd0VoQmlBQktBSXdJUWNnQVVFWWFoQVdJUWdqQUVFZ2F5SURKQUFnQXlBRk5nSWNJQU1nQmpZQ0dDQURRUUEyQWhRZ0F5QUhOZ0lRSUFNZ0NEWUNEQ0FES0FJY0lBTW9BaGdnQXlnQ0ZDQURLQUlRSUFNb0FneEJBUkRmQVNFRklBTkJJR29rQUNBRlJRUkFJQUVvQWhRUU15QUJRUUE2QUQ4TUFRc2dBU2dDRkNBQktBSTBJQUZCREdvZ0FTZ0NJQ0FCS0FJY0VKZ0JSUVJBSUFFb0FoUVFNeUFCUVFBNkFEOE1BUXNnQVNBQktBSU1OZ0lJSUFFb0FoUWhCU0FCS0FJMElBRW9BZ3hxSVFZakFFRXdheUlESkFBZ0F5QUZOZ0lvSUFNZ0JqWUNKQ0FESUFGQkRHbzJBaUFDUUNBREtBSW9LQUtFQVFSQVFSNUJ3Z0JCOUJKQjRRSVFIQ0FEUVFBMkFpd01BUXNDUUNBREtBSW9LQUlBS0FJVVFZQUljUVJBSUFNZ0F5Z0NLQ0lGSUFNb0FpUkJBRUVBSUFVb0FnQW9BaUFSQmdBMkFnd2dBeWdDREVFQVNBUkFJQU5CQURZQ0xBd0RDeUFES0FJZ0lBTW9BZ3cyQWdBTUFRc2dBeUFES0FJb0tBSUFLQUlFTmdJVUlBTW9BaFJCSUVzRVFFR0pKRUgwRWtIeUFrR1ZDUkFBQUFzZ0F5Z0NGRUVCUmdSQUlBTW9BaUJCQURZQ0FBd0JDeUFESUFNb0FpZ29BbGcyQWhBZ0F5Z0NLQ2dDRkVHQUVIRUVRQ0FES0FJUUJFQkJIa0hxQUVIMEVrSDdBaEFjSUFOQkFEWUNMQXdEQ3lBREtBSWdRUUEyQWdBTUFRc2dBeUFES0FJVUlBTW9BaEJyTmdJY0lBTWdBeWdDRURZQ0dBTkFJQU1vQWhnZ0F5Z0NGRWtFUUNBREtBSVlJQU1vQWloQk9HcHFJQU1vQWh3NkFBQWdBeUFES0FJWVFRRnFOZ0lZREFFTEN5QURLQUlvSWdVZ0F5Z0NKQ0FGUVRocUlBTW9BaFFnQlNnQ0FDZ0NJQkVHQUVVRVFDQURRUUEyQWl3TUFnc2dBeWdDSUNBREtBSVVOZ0lBQ3lNQVFSQnJJQU1vQWlnMkFnd2dBMEVCTmdJc0N5QURLQUlzSVFVZ0EwRXdhaVFBSUFWRkJFQWdBU2dDRkJBeklBRkJBRG9BUHd3QkN5QUJJQUVvQWd3Z0FTZ0NDR28yQWdnZ0FTZ0NDQ0FCS0FJY1J3UkFJQUVvQWhRUU15QUJRUUE2QUQ4TUFRc2dBU2dDRkJBeklBRkJBVG9BUHdzZ0FVRUJOZ0lRSUFGQkdHb1FHZ3NnQVMwQVAwRUJjU0VESUFGQlFHc2tBQUpBSUFORkJFQWpBRUVRYXlJQklBQTJBZ3dnQVVFQk5nSUlJQUVvQWd3aUFFR2tNellDQUNBQUlBRW9BZ2cyQWdRZ0RFRUJOZ0lVREFFTEFrQWdCQ2dDQkVVRVFDQU1RUW8yQWhBTUFRc2pBRUVRYXlJQklBQTJBZ3dnQVVFQk5nSUlJQUVvQWd3aUFFR2tNellDQUNBQUlBRW9BZ2cyQWdRZ0RFRUJOZ0lVREFFTElBd2dEQ2dDRUJBZk5nSUlBa0FnQkNBTVFRaHFFQlloRUNBTUtBSVFJUTRqQUVFUWF5SUJJQUkyQWd3Z0VDQU9JUThnQVNnQ0RDZ0NBQ0lCSUFFb0FnQW9BaWdSQUFBaERTTUFRUkJySWdFZ0FqWUNEQ0FQSUEwZ0FTZ0NEQ2dDQUNJQklBRW9BZ0FvQWl3UkFBQWdEQ2dDT0NBTUtBSTBJQXdvQWlnZ0RDZ0NKQ0FNUVJocUVCWWdEQ2dDSUJDNkFVRUJjVVVFUUNNQVFSQnJJZ0VnQURZQ0RDQUJRUUUyQWdnTUFRc2dEQ2dDUENBTUtBSWdJQXdvQWhCcVNRUkFJd0JCRUdzaUFTQUFOZ0lNSUFGQkFUWUNDQXdCQ3lBTUtBSkVJQXhCR0dvUUZpQU1LQUlnRUJzYUlBd29Ba1FnRENnQ0lHb2dERUVJYWhBV0lBd29BaEFRR3hvZ0RDZ0NRQ0FNS0FJZ0lBd29BaEJxTmdJQUl3QkJFR3NpQVNBQU5nSU1JQUZCQURZQ0NBc2dBU2dDRENJQVFhUXpOZ0lBSUFBZ0FTZ0NDRFlDQkNBTVFRRTJBaFFnREVFSWFoQWFDeUFNUVJocUVCb2dBaEE0SUF4QjBBQnFKQUFMS1FFQmZ5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTZ0NEQ0lBRUZZYUlBQVFJaUFCUVJCcUpBQUxuQUVCQVg4akFFRVFheUlESkFBZ0F5QUFOZ0lNSUFNZ0FUWUNDQ0FESUFJMkFnUWpBRUVRYXlJQUlBTW9BZ2cyQWd3Z0FDZ0NEQ0VDSUFNb0Fnd2lBQ2dDQkNFQklBQW9BZ0FoQUNBQlFRRjFJQUpxSVFJZ0FVRUJjUVJBSUFJb0FnQWdBR29vQWdBaEFBc2pBRUVRYXlJQklBTW9BZ1EyQWd3Z0F5QUNJQUVvQWd3Z0FCRURBQ0FERUw0QklRQWdBeEM5QVNBRFFSQnFKQUFnQUF1TUFRRUJmeU1BUVJCcklnTWtBQ0FESUFBMkFnd2dBeUFCTmdJSUlBTWdBallDQkNNQVFSQnJJZ0FnQXlnQ0NEWUNEQ0FBS0FJTUlRSWdBeWdDRENJQUtBSUVJUUVnQUNnQ0FDRUFJQUZCQVhVZ0Ftb2hBaUFCUVFGeEJFQWdBaWdDQUNBQWFpZ0NBQ0VBQ3lNQVFSQnJJZ0VnQXlnQ0JEWUNEQ0FDSUFFb0Fnd2dBQkVDQUNBRFFSQnFKQUFMcVFFQkFuOGpBRUVRYXlJREpBQWdBeUFBTmdJTUlBTWdBVFlDQ0NBRElBSTNBd0FqQUVFUWF5SUFJQU1vQWdnMkFnd2dBQ2dDRENFRUlBTW9BZ3dpQUNnQ0JDRUJJQUFvQWdBaEFDQUJRUUYxSUFScUlRUWdBVUVCY1FSQUlBUW9BZ0FnQUdvb0FnQWhBQXNqQUVFUWF5SUJJQU1wQXdBM0F3Z2dCQ0FCS1FNSUlBQVJDd0JCQVhFaEFDTUFRUkJySWdFZ0FEb0FEeUFCTFFBUFFRRnhJUUFnQTBFUWFpUUFJQUFMZmdFQ2Z5TUFRUkJySWdJa0FDQUNJQUEyQWd3Z0FpQUJOZ0lJSXdCQkVHc2lBQ0FDS0FJSU5nSU1JQUFvQWd3aEF5QUNLQUlNSWdBb0FnUWhBU0FBS0FJQUlRQWdBaUFCUVFGMUlBTnFJZ01nQVVFQmNRUi9JQU1vQWdBZ0FHb29BZ0FGSUFBTEVRSUFJQUlRdmdFaEFDQUNFTDBCSUFKQkVHb2tBQ0FBQzJVQkEzOGpBRUVRYXlJQkpBQWdBU0FBTmdJTUlBRW9BZ3dpQXdSQUl3QkJFR3NpQWlRQUlBSWdBellDRENBQ0tBSU1JZ0JCT0dvUWRTQUFRU1JxRUhVZ0FFRVVhaEIxSUFCQkJHb1FkU0FBRUhNZ0FrRVFhaVFBSUFNUUlnc2dBVUVRYWlRQUN5c0JBWDhqQUVFUWF5SUJKQUFnQVNBQU5nSU1Jd0JCRUdzZ0FTZ0NERFlDRENBQlFSQnFKQUJCdENjTHJBRUJBbjhqQUVFZ2F5SURKQUFnQXlBQU5nSWNJQU1nQVRZQ0dDQURJQUkzQXhBakFFRVFheUlBSUFNb0FoZzJBZ3dnQUNnQ0RDRUVJQU1vQWh3aUFDZ0NCQ0VCSUFBb0FnQWhBQ0FCUVFGMUlBUnFJUVFnQVVFQmNRUkFJQVFvQWdBZ0FHb29BZ0FoQUFzakFFRVFheUlCSUFNcEF4QTNBd2dnQXlBRUlBRXBBd2dnQUJFTEFEWUNEQ01BUVJCcklnQWdBMEVNYWpZQ0RDQUFLQUlNS0FJQUlRQWdBMEVnYWlRQUlBQUxEQUFqQUVFUWF5QUFOZ0lNQ3hzQUlBQWdBU2dDQ0NBRkVDQUVRQ0FCSUFJZ0F5QUVFSXdCQ3dzNEFDQUFJQUVvQWdnZ0JSQWdCRUFnQVNBQ0lBTWdCQkNNQVE4TElBQW9BZ2dpQUNBQklBSWdBeUFFSUFVZ0FDZ0NBQ2dDRkJFS0FBdWdBZ0VIZnlBQUlBRW9BZ2dnQlJBZ0JFQWdBU0FDSUFNZ0JCQ01BUThMSUFFdEFEVWhCaUFBS0FJTUlRZ2dBVUVBT2dBMUlBRXRBRFFoQnlBQlFRQTZBRFFnQUVFUWFpSU1JQUVnQWlBRElBUWdCUkNMQVNBR0lBRXRBRFVpQ25JaEJpQUhJQUV0QURRaUMzSWhCd0pBSUFCQkdHb2lDU0FNSUFoQkEzUnFJZ2hQRFFBRFFDQUhRUUZ4SVFjZ0JrRUJjU0VHSUFFdEFEWU5BUUpBSUFzRVFDQUJLQUlZUVFGR0RRTWdBQzBBQ0VFQ2NRMEJEQU1MSUFwRkRRQWdBQzBBQ0VFQmNVVU5BZ3NnQVVFQU93RTBJQWtnQVNBQ0lBTWdCQ0FGRUlzQklBRXRBRFVpQ2lBR2NpRUdJQUV0QURRaUN5QUhjaUVISUFsQkNHb2lDU0FJU1EwQUN3c2dBU0FHUWY4QmNVRUFSem9BTlNBQklBZEIvd0Z4UVFCSE9nQTBDNmNCQUNBQUlBRW9BZ2dnQkJBZ0JFQUNRQ0FCS0FJRUlBSkhEUUFnQVNnQ0hFRUJSZzBBSUFFZ0F6WUNIQXNQQ3dKQUlBQWdBU2dDQUNBRUVDQkZEUUFDUUNBQ0lBRW9BaEJIQkVBZ0FTZ0NGQ0FDUncwQkN5QURRUUZIRFFFZ0FVRUJOZ0lnRHdzZ0FTQUNOZ0lVSUFFZ0F6WUNJQ0FCSUFFb0FpaEJBV28yQWlnQ1FDQUJLQUlrUVFGSERRQWdBU2dDR0VFQ1J3MEFJQUZCQVRvQU5nc2dBVUVFTmdJc0N3dUlBZ0FnQUNBQktBSUlJQVFRSUFSQUFrQWdBU2dDQkNBQ1J3MEFJQUVvQWh4QkFVWU5BQ0FCSUFNMkFod0xEd3NDUUNBQUlBRW9BZ0FnQkJBZ0JFQUNRQ0FDSUFFb0FoQkhCRUFnQVNnQ0ZDQUNSdzBCQ3lBRFFRRkhEUUlnQVVFQk5nSWdEd3NnQVNBRE5nSWdBa0FnQVNnQ0xFRUVSZzBBSUFGQkFEc0JOQ0FBS0FJSUlnQWdBU0FDSUFKQkFTQUVJQUFvQWdBb0FoUVJDZ0FnQVMwQU5RUkFJQUZCQXpZQ0xDQUJMUUEwUlEwQkRBTUxJQUZCQkRZQ0xBc2dBU0FDTmdJVUlBRWdBU2dDS0VFQmFqWUNLQ0FCS0FJa1FRRkhEUUVnQVNnQ0dFRUNSdzBCSUFGQkFUb0FOZzhMSUFBb0FnZ2lBQ0FCSUFJZ0F5QUVJQUFvQWdBb0FoZ1JDQUFMQzI0QkFYOGpBRUVnYXlJREpBQWdBeUFBTmdJY0lBTWdBVFlDR0NBRElBSTJBaFFnQXlnQ0hDRUFJQU1nQXlnQ0dCQVhOZ0lRSUFNZ0F5Z0NGQkFYTmdJTUlBTkJFR29nQTBFTWFpQUFFUVFBSVFBakFFRVFheUlCSUFBMkFnd2dBU2dDRENFQUlBTkJJR29rQUNBQUM2b0VBUU4vSUFBZ0FTZ0NDQ0FFRUNBRVFBSkFJQUVvQWdRZ0FrY05BQ0FCS0FJY1FRRkdEUUFnQVNBRE5nSWNDdzhMQWtBZ0FDQUJLQUlBSUFRUUlBUkFBa0FnQWlBQktBSVFSd1JBSUFFb0FoUWdBa2NOQVFzZ0EwRUJSdzBDSUFGQkFUWUNJQThMSUFFZ0F6WUNJQ0FCS0FJc1FRUkhCRUFnQUVFUWFpSUZJQUFvQWd4QkEzUnFJUWRCQUNFRElBRUNmd0pBQTBBQ1FDQUZJQWRQRFFBZ0FVRUFPd0UwSUFVZ0FTQUNJQUpCQVNBRUVJc0JJQUV0QURZTkFBSkFJQUV0QURWRkRRQWdBUzBBTkFSQVFRRWhBeUFCS0FJWVFRRkdEUVJCQVNFR0lBQXRBQWhCQW5FTkFRd0VDMEVCSVFZZ0FDMEFDRUVCY1VVTkF3c2dCVUVJYWlFRkRBRUxDMEVFSUFaRkRRRWFDMEVEQ3pZQ0xDQURRUUZ4RFFJTElBRWdBallDRkNBQklBRW9BaWhCQVdvMkFpZ2dBU2dDSkVFQlJ3MEJJQUVvQWhoQkFrY05BU0FCUVFFNkFEWVBDeUFBS0FJTUlRWWdBRUVRYWlJSElBRWdBaUFESUFRUVppQUFRUmhxSWdVZ0J5QUdRUU4wYWlJR1R3MEFBa0FnQUNnQ0NDSUFRUUp4UlFSQUlBRW9BaVJCQVVjTkFRc0RRQ0FCTFFBMkRRSWdCU0FCSUFJZ0F5QUVFR1lnQlVFSWFpSUZJQVpKRFFBTERBRUxJQUJCQVhGRkJFQURRQ0FCTFFBMkRRSWdBU2dDSkVFQlJnMENJQVVnQVNBQ0lBTWdCQkJtSUFWQkNHb2lCU0FHU1EwQURBSUxBQXNEUUNBQkxRQTJEUUVnQVNnQ0pFRUJSZ1JBSUFFb0FoaEJBVVlOQWdzZ0JTQUJJQUlnQXlBRUVHWWdCVUVJYWlJRklBWkpEUUFMQ3d1SEJRRUVmeU1BUVVCcUlnWWtBQUpBSUFGQjdPUUFRUUFRSUFSQUlBSkJBRFlDQUVFQklRUU1BUXNDUUNBQUlBRWdBQzBBQ0VFWWNRUi9RUUVGSUFGRkRRRWdBVUhnNGdBUUt5SURSUTBCSUFNdEFBaEJHSEZCQUVjTEVDQWhCUXNnQlFSQVFRRWhCQ0FDS0FJQUlnQkZEUUVnQWlBQUtBSUFOZ0lBREFFTEFrQWdBVVVOQUNBQlFaRGpBQkFySWdWRkRRRWdBaWdDQUNJQkJFQWdBaUFCS0FJQU5nSUFDeUFGS0FJSUlnTWdBQ2dDQ0NJQlFYOXpjVUVIY1EwQklBTkJmM01nQVhGQjRBQnhEUUZCQVNFRUlBQW9BZ3dnQlNnQ0RFRUFFQ0FOQVNBQUtBSU1RZURrQUVFQUVDQUVRQ0FGS0FJTUlnQkZEUUlnQUVIRTR3QVFLMFVoQkF3Q0N5QUFLQUlNSWdORkRRQkJBQ0VFSUFOQmtPTUFFQ3NpQVFSQUlBQXRBQWhCQVhGRkRRSUNmeUFGS0FJTUlRQkJBQ0VDQWtBRFFFRUFJQUJGRFFJYUlBQkJrT01BRUNzaUEwVU5BU0FES0FJSUlBRW9BZ2hCZjNOeERRRkJBU0FCS0FJTUlBTW9BZ3hCQUJBZ0RRSWFJQUV0QUFoQkFYRkZEUUVnQVNnQ0RDSUFSUTBCSUFCQmtPTUFFQ3NpQVFSQUlBTW9BZ3doQUF3QkN3c2dBRUdBNUFBUUt5SUFSUTBBSUFBZ0F5Z0NEQkREQVNFQ0N5QUNDeUVFREFJTElBTkJnT1FBRUNzaUFRUkFJQUF0QUFoQkFYRkZEUUlnQVNBRktBSU1FTU1CSVFRTUFnc2dBMEd3NGdBUUt5SUJSUTBCSUFVb0Fnd2lBRVVOQVNBQVFiRGlBQkFySWdORkRRRWdCa0VJYWlJQVFRUnlRUUJCTkJCR0lBWkJBVFlDT0NBR1FYODJBaFFnQmlBQk5nSVFJQVlnQXpZQ0NDQURJQUFnQWlnQ0FFRUJJQU1vQWdBb0Fod1JCd0FDUUNBR0tBSWdJZ0JCQVVjTkFDQUNLQUlBUlEwQUlBSWdCaWdDR0RZQ0FBc2dBRUVCUmlFRURBRUxRUUFoQkFzZ0JrRkFheVFBSUFRTGF3RUNmeUFBSUFFb0FnaEJBQkFnQkVBZ0FTQUNJQU1RalFFUEN5QUFLQUlNSVFRZ0FFRVFhaUlGSUFFZ0FpQURFTVFCQWtBZ0FFRVlhaUlBSUFVZ0JFRURkR29pQkU4TkFBTkFJQUFnQVNBQ0lBTVF4QUVnQVMwQU5nMEJJQUJCQ0dvaUFDQUVTUTBBQ3dzTE1nQWdBQ0FCS0FJSVFRQVFJQVJBSUFFZ0FpQURFSTBCRHdzZ0FDZ0NDQ0lBSUFFZ0FpQURJQUFvQWdBb0Fod1JCd0FMR1FBZ0FDQUJLQUlJUVFBUUlBUkFJQUVnQWlBREVJMEJDd3VlQVFFQ2Z5TUFRVUJxSWdNa0FBSi9RUUVnQUNBQlFRQVFJQTBBR2tFQUlBRkZEUUFhUVFBZ0FVR3c0Z0FRS3lJQlJRMEFHaUFEUVFocUlnUkJCSEpCQUVFMEVFWWdBMEVCTmdJNElBTkJmellDRkNBRElBQTJBaEFnQXlBQk5nSUlJQUVnQkNBQ0tBSUFRUUVnQVNnQ0FDZ0NIQkVIQUNBREtBSWdJZ0JCQVVZRVFDQUNJQU1vQWhnMkFnQUxJQUJCQVVZTElRQWdBMEZBYXlRQUlBQUxKQUVCZjBHRTZ3QW9BZ0FpQUFSQUEwQWdBQ2dDQUJFSkFDQUFLQUlFSWdBTkFBc0xDNFVCQVFOL0FrQWdBQ2dDQkNJQ0lnQkJBM0VFUUFOQUlBQXRBQUJGRFFJZ0FFRUJhaUlBUVFOeERRQUxDd05BSUFBaUFVRUVhaUVBSUFFb0FnQWlBMEYvY3lBRFFZR0NoQWhyY1VHQWdZS0VlSEZGRFFBTEEwQWdBU0lBUVFGcUlRRWdBQzBBQUEwQUN3c2dBQ0FDYTBFQmFpSUFFRHNpQVFSL0lBRWdBaUFBRUJzRlFRQUxDNTBCQVFGL0l3QkJNR3NpQVNRQUlBRWdBRFlDTEFKQUlBRW9BaXhGRFFBZ0FVRVFha0h3NmdCQkZCQWVJQUVnQVNnQ0xEWUNDQ0FCUVFBMkFnd0RRQ0FCS0FJTVFRVkpCRUFnQVVFUWFpQUJLQUlNUVFKMGFpZ0NBQVJBSUFFb0FneEJBblFpQUNBQktBSUlhaWdDQUNBQUlBRkJFR3BxS0FJQUVRRUFDeUFCSUFFb0FneEJBV28yQWd3TUFRc0xJQUVvQWdnUUlnc2dBVUV3YWlRQUMxY0JBWDlCek9vQUFuOERRQ0FBUWFEckFHb3RBQUJGQkVBZ0FFR2c2d0JxUVFFNkFBQWdBRUVDZEVHZzdBQnFRUUEyQWdCQjBPb0FJQUEyQWdCQkFBd0NDeUFBUVFGcUlnQkJnQUZIRFFBTFFRWUxSVFlDQUFzL0FRRi9Jd0JCRUdzaUF5UUFJQU1nQURZQ0RDQURJQUUyQWdnZ0F5QUNOZ0lFSUFNb0FnZ2dBeWdDQkNBREtBSU1FUVFBSVFBZ0EwRVFhaVFBSUFBTE13RUJmeU1BUVJCcklnSWtBQ0FDSUFBMkFnd2dBaUFCTmdJSUlBSW9BZ2dnQWlnQ0RCRUFBQ0VBSUFKQkVHb2tBQ0FBQzBVQkFYOGpBRUVRYXlJQ0pBQWdBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSUlJQUlvQWd3b0FnUVFrd0ZGQkVCQjlpUkJ6UkZCdHdGQnRBd1FBQUFMSUFKQkVHb2tBQXRRQVFGL0l3QkJFR3NpQXlRQUlBTWdBRFlDRENBRElBRTJBZ2dnQXlBQ05nSUVJQU1vQWd3b0FnUWdBeWdDQ0NBREtBSUVFRFZGQkVCQjd5SkJ6UkZCc3dGQnNnOFFBQUFMSUFOQkVHb2tBQXM1QVFGL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQktBSU1LQUlFRUpRQlJRUkFRZHdrUWMwUlFhOEJRWm9LRUFBQUN5QUJRUkJxSkFBTHVBRUJBWDhqQUVFZ2F5SUVKQUFnQkNBQU5nSWNJQVFnQVRZQ0dDQUVJQUkyQWhRZ0JDQUROZ0lRSUFRZ0JDZ0NIQ2dDQ0RZQ0RBSkFJQVFvQWd3b0F2d0JCRUFnQkNnQ0ZDQUVLQUlZSUFRb0FoQWdCQ2dDRENJQklBUW9BaHdpQUVFb2FpQUFRVGhxSUFCQjNBQnFJQUVvQXZ3QkVPZ0JEQUVMSUFRb0FoUWdCQ2dDR0NBRUtBSVFJQVFvQWd3aUFTQUVLQUljSWdCQktHb2dBRUU0YWlBQVFkd0FhaUFCS0FMNEFSRG5BUXNnQkVFZ2FpUUFRUUVMeFFNQkFYOGpBRUVnYXlJRUpBQWdCQ0FBTmdJWUlBUWdBVFlDRkNBRUlBSTJBaEFnQkNBRE5nSU1JQVFnQkNnQ0dDZ0NDRFlDQkNBRUlBUW9BaGdvQWdBb0FoUkJQM0UyQWdBZ0JDZ0NBRUVGUmdSQUFrQUNRQUpBSUFRb0FoZ29BZ3hCRUdzT0VRQUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQkFnc2pBRUVRYTBFQ05nSU1EQUVMSXdCQkVHdEJBellDREFzTEFrQUNRQ0FFS0FJQVFRRkhCRUFnQkNnQ0FFRUNSdzBCQ3lBRUtBSU1EUUFnQkNnQ0ZDRUJJQVFvQWhnb0FneEJBM1FoQWlBRUtBSUVJUU1qQUVFUWF5SUFKQUFnQUNBQk5nSU1JQUFnQWpZQ0NDQUFJQU0yQWdRZ0FDZ0NEQ0FBS0FJSUlBQW9BZ1FRbXdFaEFTQUFRUkJxSkFBZ0JDQUJOZ0lJSUFRb0FnUkIzUUEyQXZnQklBUW9BZ1JCQURZQy9BRWdCQ2dDQUVFQ1JnUkFJQVFvQWdSQjNnQTJBdndCQ3d3QkN5QUVJQVFvQWhRZ0JDZ0NHQ2dDREVFRGRDQUVLQUlFRUpzQk5nSUlJQVFvQWdSQnpRQTJBdmdCSUFRb0FnUkJBRFlDL0FFZ0JDZ0NBRUVDUmdSQUlBUW9BZ1JCM2dBMkF2d0JDd3NDUUNBRUtBSUlRUUJJQkVCQkhrSGtBRUdIRWtIa0FSQWNJQVJCQURZQ0hBd0JDeUFFUVFFMkFod0xJQVFvQWh3aEFDQUVRU0JxSkFBZ0FBdlJOZ0VCZnlNQVFaQUJheUlESkFBZ0F5QUFOZ0tNQVNBRElBRTJBb2dCSUFNZ0FqWUNoQUVEUUNBRElBTW9Bb1FCSWdCQkFXczJBb1FCSUFBRVFDQURJQU1vQW93QktBSUFOZ0tBQVNBRElBTW9Bb3dCS0FJRU5nSjhJQU1nQXlnQ2pBRW9BZ2cyQW5nZ0F5QURLQUtNQVNnQ0REWUNkQ0FESUFNb0Fvd0JLQUlRTmdKd0lBTWdBeWdDakFFb0FoUTJBbXdnQXlBREtBS01BU2dDR0RZQ2FDQURJQU1vQW93QktBSWNOZ0prSUFNZ0F5Z0NpQUVRSkNJQU5nSVFJQU1nQURZQ1dDQURJQU1vQW9nQlFRUnFOZ0tJQVNBRElBTW9BbVFnQXlnQ2NFRUdFQlVnQXlnQ2NFRUxFQlZ6SUFNb0FuQkJHUkFWYzJvZ0F5Z0NjQ0FES0FKc2NTQURLQUpvSUFNb0FuQkJmM054YzJwQm9EUW9BZ0JxSUFNb0FsaHFOZ0pZSUFNZ0F5Z0NnQUZCQWhBVklBTW9Bb0FCUVEwUUZYTWdBeWdDZ0FGQkZoQVZjeUFES0FKOElnQWdBeWdDZ0FGeElBTW9BbmdpQVNBREtBS0FBWEZ6SUFBZ0FYRnphallDWkNBRElBTW9BbGdnQXlnQ2RHbzJBblFnQXlBREtBSllJQU1vQW1ScU5nSmtJQU1nQXlnQ2lBRVFKQ0lBTmdJVUlBTWdBRFlDV0NBRElBTW9Bb2dCUVFScU5nS0lBU0FESUFNb0FtZ2dBeWdDZEVFR0VCVWdBeWdDZEVFTEVCVnpJQU1vQW5SQkdSQVZjMm9nQXlnQ2RDQURLQUp3Y1NBREtBSnNJQU1vQW5SQmYzTnhjMnBCcERRb0FnQnFJQU1vQWxocU5nSllJQU1nQXlnQ1pFRUNFQlVnQXlnQ1pFRU5FQlZ6SUFNb0FtUkJGaEFWY3lBREtBS0FBU0FES0FKOGNTQURLQUprSUFNb0FvQUJjU0FES0FKa0lBTW9Bbnh4YzNOcU5nSm9JQU1nQXlnQ1dDQURLQUo0YWpZQ2VDQURJQU1vQWxnZ0F5Z0NhR28yQW1nZ0F5QURLQUtJQVJBa0lnQTJBaGdnQXlBQU5nSllJQU1nQXlnQ2lBRkJCR28yQW9nQklBTWdBeWdDYkNBREtBSjRRUVlRRlNBREtBSjRRUXNRRlhNZ0F5Z0NlRUVaRUJWemFpQURLQUo0SUFNb0FuUnhJQU1vQW5BZ0F5Z0NlRUYvYzNGemFrR29OQ2dDQUdvZ0F5Z0NXR28yQWxnZ0F5QURLQUpvUVFJUUZTQURLQUpvUVEwUUZYTWdBeWdDYUVFV0VCVnpJQU1vQW1RZ0F5Z0NnQUZ4SUFNb0FtZ2dBeWdDWkhFZ0F5Z0NhQ0FES0FLQUFYRnpjMm8yQW13Z0F5QURLQUpZSUFNb0FueHFOZ0o4SUFNZ0F5Z0NXQ0FES0FKc2FqWUNiQ0FESUFNb0FvZ0JFQ1FpQURZQ0hDQURJQUEyQWxnZ0F5QURLQUtJQVVFRWFqWUNpQUVnQXlBREtBSndJQU1vQW54QkJoQVZJQU1vQW54QkN4QVZjeUFES0FKOFFSa1FGWE5xSUFNb0Fud2dBeWdDZUhFZ0F5Z0NkQ0FES0FKOFFYOXpjWE5xUWF3MEtBSUFhaUFES0FKWWFqWUNXQ0FESUFNb0FteEJBaEFWSUFNb0FteEJEUkFWY3lBREtBSnNRUllRRlhNZ0F5Z0NhQ0FES0FKa2NTQURLQUpzSUFNb0FtaHhJQU1vQW13Z0F5Z0NaSEZ6YzJvMkFuQWdBeUFES0FKWUlBTW9Bb0FCYWpZQ2dBRWdBeUFES0FKWUlBTW9BbkJxTmdKd0lBTWdBeWdDaUFFUUpDSUFOZ0lnSUFNZ0FEWUNXQ0FESUFNb0FvZ0JRUVJxTmdLSUFTQURJQU1vQW5RZ0F5Z0NnQUZCQmhBVklBTW9Bb0FCUVFzUUZYTWdBeWdDZ0FGQkdSQVZjMm9nQXlnQ2dBRWdBeWdDZkhFZ0F5Z0NlQ0FES0FLQUFVRi9jM0Z6YWtHd05DZ0NBR29nQXlnQ1dHbzJBbGdnQXlBREtBSndRUUlRRlNBREtBSndRUTBRRlhNZ0F5Z0NjRUVXRUJWeklBTW9BbXdnQXlnQ2FIRWdBeWdDY0NBREtBSnNjU0FES0FKd0lBTW9BbWh4YzNOcU5nSjBJQU1nQXlnQ1dDQURLQUprYWpZQ1pDQURJQU1vQWxnZ0F5Z0NkR28yQW5RZ0F5QURLQUtJQVJBa0lnQTJBaVFnQXlBQU5nSllJQU1nQXlnQ2lBRkJCR28yQW9nQklBTWdBeWdDZUNBREtBSmtRUVlRRlNBREtBSmtRUXNRRlhNZ0F5Z0NaRUVaRUJWemFpQURLQUprSUFNb0FvQUJjU0FES0FKOElBTW9BbVJCZjNOeGMycEJ0RFFvQWdCcUlBTW9BbGhxTmdKWUlBTWdBeWdDZEVFQ0VCVWdBeWdDZEVFTkVCVnpJQU1vQW5SQkZoQVZjeUFES0FKd0lBTW9BbXh4SUFNb0FuUWdBeWdDY0hFZ0F5Z0NkQ0FES0FKc2NYTnphallDZUNBRElBTW9BbGdnQXlnQ2FHbzJBbWdnQXlBREtBSllJQU1vQW5ocU5nSjRJQU1nQXlnQ2lBRVFKQ0lBTmdJb0lBTWdBRFlDV0NBRElBTW9Bb2dCUVFScU5nS0lBU0FESUFNb0Fud2dBeWdDYUVFR0VCVWdBeWdDYUVFTEVCVnpJQU1vQW1oQkdSQVZjMm9nQXlnQ2FDQURLQUprY1NBREtBS0FBU0FES0FKb1FYOXpjWE5xUWJnMEtBSUFhaUFES0FKWWFqWUNXQ0FESUFNb0FuaEJBaEFWSUFNb0FuaEJEUkFWY3lBREtBSjRRUllRRlhNZ0F5Z0NkQ0FES0FKd2NTQURLQUo0SUFNb0FuUnhJQU1vQW5nZ0F5Z0NjSEZ6YzJvMkFud2dBeUFES0FKWUlBTW9BbXhxTmdKc0lBTWdBeWdDV0NBREtBSjhhallDZkNBRElBTW9Bb2dCRUNRaUFEWUNMQ0FESUFBMkFsZ2dBeUFES0FLSUFVRUVhallDaUFFZ0F5QURLQUtBQVNBREtBSnNRUVlRRlNBREtBSnNRUXNRRlhNZ0F5Z0NiRUVaRUJWemFpQURLQUpzSUFNb0FtaHhJQU1vQW1RZ0F5Z0NiRUYvYzNGemFrRzhOQ2dDQUdvZ0F5Z0NXR28yQWxnZ0F5QURLQUo4UVFJUUZTQURLQUo4UVEwUUZYTWdBeWdDZkVFV0VCVnpJQU1vQW5nZ0F5Z0NkSEVnQXlnQ2ZDQURLQUo0Y1NBREtBSjhJQU1vQW5SeGMzTnFOZ0tBQVNBRElBTW9BbGdnQXlnQ2NHbzJBbkFnQXlBREtBSllJQU1vQW9BQmFqWUNnQUVnQXlBREtBS0lBUkFrSWdBMkFqQWdBeUFBTmdKWUlBTWdBeWdDaUFGQkJHbzJBb2dCSUFNZ0F5Z0NaQ0FES0FKd1FRWVFGU0FES0FKd1FRc1FGWE1nQXlnQ2NFRVpFQlZ6YWlBREtBSndJQU1vQW14eElBTW9BbWdnQXlnQ2NFRi9jM0Z6YWtIQU5DZ0NBR29nQXlnQ1dHbzJBbGdnQXlBREtBS0FBVUVDRUJVZ0F5Z0NnQUZCRFJBVmN5QURLQUtBQVVFV0VCVnpJQU1vQW53Z0F5Z0NlSEVnQXlnQ2dBRWdBeWdDZkhFZ0F5Z0NnQUVnQXlnQ2VIRnpjMm8yQW1RZ0F5QURLQUpZSUFNb0FuUnFOZ0owSUFNZ0F5Z0NXQ0FES0FKa2FqWUNaQ0FESUFNb0FvZ0JFQ1FpQURZQ05DQURJQUEyQWxnZ0F5QURLQUtJQVVFRWFqWUNpQUVnQXlBREtBSm9JQU1vQW5SQkJoQVZJQU1vQW5SQkN4QVZjeUFES0FKMFFSa1FGWE5xSUFNb0FuUWdBeWdDY0hFZ0F5Z0NiQ0FES0FKMFFYOXpjWE5xUWNRMEtBSUFhaUFES0FKWWFqWUNXQ0FESUFNb0FtUkJBaEFWSUFNb0FtUkJEUkFWY3lBREtBSmtRUllRRlhNZ0F5Z0NnQUVnQXlnQ2ZIRWdBeWdDWkNBREtBS0FBWEVnQXlnQ1pDQURLQUo4Y1hOemFqWUNhQ0FESUFNb0FsZ2dBeWdDZUdvMkFuZ2dBeUFES0FKWUlBTW9BbWhxTmdKb0lBTWdBeWdDaUFFUUpDSUFOZ0k0SUFNZ0FEWUNXQ0FESUFNb0FvZ0JRUVJxTmdLSUFTQURJQU1vQW13Z0F5Z0NlRUVHRUJVZ0F5Z0NlRUVMRUJWeklBTW9BbmhCR1JBVmMyb2dBeWdDZUNBREtBSjBjU0FES0FKd0lBTW9BbmhCZjNOeGMycEJ5RFFvQWdCcUlBTW9BbGhxTmdKWUlBTWdBeWdDYUVFQ0VCVWdBeWdDYUVFTkVCVnpJQU1vQW1oQkZoQVZjeUFES0FKa0lBTW9Bb0FCY1NBREtBSm9JQU1vQW1SeElBTW9BbWdnQXlnQ2dBRnhjM05xTmdKc0lBTWdBeWdDV0NBREtBSjhhallDZkNBRElBTW9BbGdnQXlnQ2JHbzJBbXdnQXlBREtBS0lBUkFrSWdBMkFqd2dBeUFBTmdKWUlBTWdBeWdDaUFGQkJHbzJBb2dCSUFNZ0F5Z0NjQ0FES0FKOFFRWVFGU0FES0FKOFFRc1FGWE1nQXlnQ2ZFRVpFQlZ6YWlBREtBSjhJQU1vQW5oeElBTW9BblFnQXlnQ2ZFRi9jM0Z6YWtITU5DZ0NBR29nQXlnQ1dHbzJBbGdnQXlBREtBSnNRUUlRRlNBREtBSnNRUTBRRlhNZ0F5Z0NiRUVXRUJWeklBTW9BbWdnQXlnQ1pIRWdBeWdDYkNBREtBSm9jU0FES0FKc0lBTW9BbVJ4YzNOcU5nSndJQU1nQXlnQ1dDQURLQUtBQVdvMkFvQUJJQU1nQXlnQ1dDQURLQUp3YWpZQ2NDQURJQU1vQW9nQkVDUWlBRFlDUUNBRElBQTJBbGdnQXlBREtBS0lBVUVFYWpZQ2lBRWdBeUFES0FKMElBTW9Bb0FCUVFZUUZTQURLQUtBQVVFTEVCVnpJQU1vQW9BQlFSa1FGWE5xSUFNb0FvQUJJQU1vQW54eElBTW9BbmdnQXlnQ2dBRkJmM054YzJwQjBEUW9BZ0JxSUFNb0FsaHFOZ0pZSUFNZ0F5Z0NjRUVDRUJVZ0F5Z0NjRUVORUJWeklBTW9BbkJCRmhBVmN5QURLQUpzSUFNb0FtaHhJQU1vQW5BZ0F5Z0NiSEVnQXlnQ2NDQURLQUpvY1hOemFqWUNkQ0FESUFNb0FsZ2dBeWdDWkdvMkFtUWdBeUFES0FKWUlBTW9BblJxTmdKMElBTWdBeWdDaUFFUUpDSUFOZ0pFSUFNZ0FEWUNXQ0FESUFNb0FvZ0JRUVJxTmdLSUFTQURJQU1vQW5nZ0F5Z0NaRUVHRUJVZ0F5Z0NaRUVMRUJWeklBTW9BbVJCR1JBVmMyb2dBeWdDWkNBREtBS0FBWEVnQXlnQ2ZDQURLQUprUVg5emNYTnFRZFEwS0FJQWFpQURLQUpZYWpZQ1dDQURJQU1vQW5SQkFoQVZJQU1vQW5SQkRSQVZjeUFES0FKMFFSWVFGWE1nQXlnQ2NDQURLQUpzY1NBREtBSjBJQU1vQW5CeElBTW9BblFnQXlnQ2JIRnpjMm8yQW5nZ0F5QURLQUpZSUFNb0FtaHFOZ0pvSUFNZ0F5Z0NXQ0FES0FKNGFqWUNlQ0FESUFNb0FvZ0JFQ1FpQURZQ1NDQURJQUEyQWxnZ0F5QURLQUtJQVVFRWFqWUNpQUVnQXlBREtBSjhJQU1vQW1oQkJoQVZJQU1vQW1oQkN4QVZjeUFES0FKb1FSa1FGWE5xSUFNb0FtZ2dBeWdDWkhFZ0F5Z0NnQUVnQXlnQ2FFRi9jM0Z6YWtIWU5DZ0NBR29nQXlnQ1dHbzJBbGdnQXlBREtBSjRRUUlRRlNBREtBSjRRUTBRRlhNZ0F5Z0NlRUVXRUJWeklBTW9BblFnQXlnQ2NIRWdBeWdDZUNBREtBSjBjU0FES0FKNElBTW9BbkJ4YzNOcU5nSjhJQU1nQXlnQ1dDQURLQUpzYWpZQ2JDQURJQU1vQWxnZ0F5Z0NmR28yQW53Z0F5QURLQUtJQVJBa0lnQTJBa3dnQXlBQU5nSllJQU1nQXlnQ2lBRkJCR28yQW9nQklBTWdBeWdDZ0FFZ0F5Z0NiRUVHRUJVZ0F5Z0NiRUVMRUJWeklBTW9BbXhCR1JBVmMyb2dBeWdDYkNBREtBSm9jU0FES0FKa0lBTW9BbXhCZjNOeGMycEIzRFFvQWdCcUlBTW9BbGhxTmdKWUlBTWdBeWdDZkVFQ0VCVWdBeWdDZkVFTkVCVnpJQU1vQW54QkZoQVZjeUFES0FKNElBTW9BblJ4SUFNb0Fud2dBeWdDZUhFZ0F5Z0NmQ0FES0FKMGNYTnphallDZ0FFZ0F5QURLQUpZSUFNb0FuQnFOZ0p3SUFNZ0F5Z0NXQ0FES0FLQUFXbzJBb0FCSUFOQkVEWUNEQU5BSUFNb0FneEJ3QUJPUlFSQUlBTWdBMEVRYWlJQ0lBTW9BZ3hCQVdwQkQzRkJBblJxS0FJQU5nSmdJQU1nQXlnQ1lFRUhFQlVnQXlnQ1lFRVNFQlZ6SUFNb0FtQkJBM1p6TmdKZ0lBTWdBeWdDREVFT2FrRVBjVUVDZENBQ2FpZ0NBRFlDWENBRElBTW9BbHhCRVJBVklBTW9BbHhCRXhBVmN5QURLQUpjUVFwMmN6WUNYQ0FES0FJTVFROXhRUUowSUFKcUlnRW9BZ0FnQXlnQ0RFRUpha0VQY1VFQ2RDQUNhaWdDQUNBREtBSmdJQU1vQWx4cWFtb2hBQ0FCSUFBMkFnQWdBeUFBTmdKWUlBTWdBeWdDWkNBREtBSndRUVlRRlNBREtBSndRUXNRRlhNZ0F5Z0NjRUVaRUJWemFpQURLQUp3SUFNb0FteHhJQU1vQW1nZ0F5Z0NjRUYvYzNGemFpQURLQUlNUVFKMFFhQTBhaWdDQUdvZ0F5Z0NXR28yQWxnZ0F5QURLQUtBQVVFQ0VCVWdBeWdDZ0FGQkRSQVZjeUFES0FLQUFVRVdFQlZ6SUFNb0Fud2lBQ0FES0FLQUFYRWdBeWdDZUNJQklBTW9Bb0FCY1hNZ0FDQUJjWE5xTmdKa0lBTWdBeWdDV0NBREtBSjBhallDZENBRElBTW9BbGdnQXlnQ1pHbzJBbVFnQXlBREtBSU1RUUpxUVE5eFFRSjBJQUpxS0FJQU5nSmdJQU1nQXlnQ1lFRUhFQlVnQXlnQ1lFRVNFQlZ6SUFNb0FtQkJBM1p6TmdKZ0lBTWdBeWdDREVFUGFrRVBjVUVDZENBQ2FpZ0NBRFlDWENBRElBTW9BbHhCRVJBVklBTW9BbHhCRXhBVmN5QURLQUpjUVFwMmN6WUNYQ0FES0FJTVFRRnFRUTl4UVFKMElBSnFJZ0VvQWdBZ0F5Z0NERUVLYWtFUGNVRUNkQ0FDYWlnQ0FDQURLQUpnSUFNb0FseHFhbW9oQUNBQklBQTJBZ0FnQXlBQU5nSllJQU1nQXlnQ2FDQURLQUowUVFZUUZTQURLQUowUVFzUUZYTWdBeWdDZEVFWkVCVnphaUFES0FKMElBTW9BbkJ4SUFNb0Ftd2dBeWdDZEVGL2MzRnphaUFES0FJTVFRSjBRYVEwYWlnQ0FHb2dBeWdDV0dvMkFsZ2dBeUFES0FKa1FRSVFGU0FES0FKa1FRMFFGWE1nQXlnQ1pFRVdFQlZ6SUFNb0FvQUJJQU1vQW54eElBTW9BbVFnQXlnQ2dBRnhJQU1vQW1RZ0F5Z0NmSEZ6YzJvMkFtZ2dBeUFES0FKWUlBTW9BbmhxTmdKNElBTWdBeWdDV0NBREtBSm9hallDYUNBRElBTW9BZ3hCQTJwQkQzRkJBblFnQW1vb0FnQTJBbUFnQXlBREtBSmdRUWNRRlNBREtBSmdRUklRRlhNZ0F5Z0NZRUVEZG5NMkFtQWdBeUFES0FJTVFSQnFRUTl4UVFKMElBSnFLQUlBTmdKY0lBTWdBeWdDWEVFUkVCVWdBeWdDWEVFVEVCVnpJQU1vQWx4QkNuWnpOZ0pjSUFNb0FneEJBbXBCRDNGQkFuUWdBbW9pQVNnQ0FDQURLQUlNUVF0cVFROXhRUUowSUFKcUtBSUFJQU1vQW1BZ0F5Z0NYR3BxYWlFQUlBRWdBRFlDQUNBRElBQTJBbGdnQXlBREtBSnNJQU1vQW5oQkJoQVZJQU1vQW5oQkN4QVZjeUFES0FKNFFSa1FGWE5xSUFNb0FuZ2dBeWdDZEhFZ0F5Z0NjQ0FES0FKNFFYOXpjWE5xSUFNb0FneEJBblJCcURScUtBSUFhaUFES0FKWWFqWUNXQ0FESUFNb0FtaEJBaEFWSUFNb0FtaEJEUkFWY3lBREtBSm9RUllRRlhNZ0F5Z0NaQ0FES0FLQUFYRWdBeWdDYUNBREtBSmtjU0FES0FKb0lBTW9Bb0FCY1hOemFqWUNiQ0FESUFNb0FsZ2dBeWdDZkdvMkFud2dBeUFES0FKWUlBTW9BbXhxTmdKc0lBTWdBeWdDREVFRWFrRVBjVUVDZENBQ2FpZ0NBRFlDWUNBRElBTW9BbUJCQnhBVklBTW9BbUJCRWhBVmN5QURLQUpnUVFOMmN6WUNZQ0FESUFNb0FneEJFV3BCRDNGQkFuUWdBbW9vQWdBMkFsd2dBeUFES0FKY1FSRVFGU0FES0FKY1FSTVFGWE1nQXlnQ1hFRUtkbk0yQWx3Z0F5Z0NERUVEYWtFUGNVRUNkQ0FDYWlJQktBSUFJQU1vQWd4QkRHcEJEM0ZCQW5RZ0Ftb29BZ0FnQXlnQ1lDQURLQUpjYW1wcUlRQWdBU0FBTmdJQUlBTWdBRFlDV0NBRElBTW9BbkFnQXlnQ2ZFRUdFQlVnQXlnQ2ZFRUxFQlZ6SUFNb0FueEJHUkFWYzJvZ0F5Z0NmQ0FES0FKNGNTQURLQUowSUFNb0FueEJmM054YzJvZ0F5Z0NERUVDZEVHc05Hb29BZ0JxSUFNb0FsaHFOZ0pZSUFNZ0F5Z0NiRUVDRUJVZ0F5Z0NiRUVORUJWeklBTW9BbXhCRmhBVmN5QURLQUpvSUFNb0FtUnhJQU1vQW13Z0F5Z0NhSEVnQXlnQ2JDQURLQUprY1hOemFqWUNjQ0FESUFNb0FsZ2dBeWdDZ0FGcU5nS0FBU0FESUFNb0FsZ2dBeWdDY0dvMkFuQWdBeUFES0FJTVFRVnFRUTl4UVFKMElBSnFLQUlBTmdKZ0lBTWdBeWdDWUVFSEVCVWdBeWdDWUVFU0VCVnpJQU1vQW1CQkEzWnpOZ0pnSUFNZ0F5Z0NERUVTYWtFUGNVRUNkQ0FDYWlnQ0FEWUNYQ0FESUFNb0FseEJFUkFWSUFNb0FseEJFeEFWY3lBREtBSmNRUXAyY3pZQ1hDQURLQUlNUVFScVFROXhRUUowSUFKcUlnRW9BZ0FnQXlnQ0RFRU5ha0VQY1VFQ2RDQUNhaWdDQUNBREtBSmdJQU1vQWx4cWFtb2hBQ0FCSUFBMkFnQWdBeUFBTmdKWUlBTWdBeWdDZENBREtBS0FBVUVHRUJVZ0F5Z0NnQUZCQ3hBVmN5QURLQUtBQVVFWkVCVnphaUFES0FLQUFTQURLQUo4Y1NBREtBSjRJQU1vQW9BQlFYOXpjWE5xSUFNb0FneEJBblJCc0RScUtBSUFhaUFES0FKWWFqWUNXQ0FESUFNb0FuQkJBaEFWSUFNb0FuQkJEUkFWY3lBREtBSndRUllRRlhNZ0F5Z0NiQ0FES0FKb2NTQURLQUp3SUFNb0FteHhJQU1vQW5BZ0F5Z0NhSEZ6YzJvMkFuUWdBeUFES0FKWUlBTW9BbVJxTmdKa0lBTWdBeWdDV0NBREtBSjBhallDZENBRElBTW9BZ3hCQm1wQkQzRkJBblFnQW1vb0FnQTJBbUFnQXlBREtBSmdRUWNRRlNBREtBSmdRUklRRlhNZ0F5Z0NZRUVEZG5NMkFtQWdBeUFES0FJTVFSTnFRUTl4UVFKMElBSnFLQUlBTmdKY0lBTWdBeWdDWEVFUkVCVWdBeWdDWEVFVEVCVnpJQU1vQWx4QkNuWnpOZ0pjSUFNb0FneEJCV3BCRDNGQkFuUWdBbW9pQVNnQ0FDQURLQUlNUVE1cVFROXhRUUowSUFKcUtBSUFJQU1vQW1BZ0F5Z0NYR3BxYWlFQUlBRWdBRFlDQUNBRElBQTJBbGdnQXlBREtBSjRJQU1vQW1SQkJoQVZJQU1vQW1SQkN4QVZjeUFES0FKa1FSa1FGWE5xSUFNb0FtUWdBeWdDZ0FGeElBTW9BbndnQXlnQ1pFRi9jM0Z6YWlBREtBSU1RUUowUWJRMGFpZ0NBR29nQXlnQ1dHbzJBbGdnQXlBREtBSjBRUUlRRlNBREtBSjBRUTBRRlhNZ0F5Z0NkRUVXRUJWeklBTW9BbkFnQXlnQ2JIRWdBeWdDZENBREtBSndjU0FES0FKMElBTW9BbXh4YzNOcU5nSjRJQU1nQXlnQ1dDQURLQUpvYWpZQ2FDQURJQU1vQWxnZ0F5Z0NlR28yQW5nZ0F5QURLQUlNUVFkcVFROXhRUUowSUFKcUtBSUFOZ0pnSUFNZ0F5Z0NZRUVIRUJVZ0F5Z0NZRUVTRUJWeklBTW9BbUJCQTNaek5nSmdJQU1nQXlnQ0RFRVVha0VQY1VFQ2RDQUNhaWdDQURZQ1hDQURJQU1vQWx4QkVSQVZJQU1vQWx4QkV4QVZjeUFES0FKY1FRcDJjellDWENBREtBSU1RUVpxUVE5eFFRSjBJQUpxSWdFb0FnQWdBeWdDREVFUGFrRVBjVUVDZENBQ2FpZ0NBQ0FES0FKZ0lBTW9BbHhxYW1vaEFDQUJJQUEyQWdBZ0F5QUFOZ0pZSUFNZ0F5Z0NmQ0FES0FKb1FRWVFGU0FES0FKb1FRc1FGWE1nQXlnQ2FFRVpFQlZ6YWlBREtBSm9JQU1vQW1SeElBTW9Bb0FCSUFNb0FtaEJmM054YzJvZ0F5Z0NERUVDZEVHNE5Hb29BZ0JxSUFNb0FsaHFOZ0pZSUFNZ0F5Z0NlRUVDRUJVZ0F5Z0NlRUVORUJWeklBTW9BbmhCRmhBVmN5QURLQUowSUFNb0FuQnhJQU1vQW5nZ0F5Z0NkSEVnQXlnQ2VDQURLQUp3Y1hOemFqWUNmQ0FESUFNb0FsZ2dBeWdDYkdvMkFtd2dBeUFES0FKWUlBTW9BbnhxTmdKOElBTWdBeWdDREVFSWFrRVBjVUVDZENBQ2FpZ0NBRFlDWUNBRElBTW9BbUJCQnhBVklBTW9BbUJCRWhBVmN5QURLQUpnUVFOMmN6WUNZQ0FESUFNb0FneEJGV3BCRDNGQkFuUWdBbW9vQWdBMkFsd2dBeUFES0FKY1FSRVFGU0FES0FKY1FSTVFGWE1nQXlnQ1hFRUtkbk0yQWx3Z0F5Z0NERUVIYWtFUGNVRUNkQ0FDYWlJQktBSUFJQU1vQWd4QkVHcEJEM0ZCQW5RZ0Ftb29BZ0FnQXlnQ1lDQURLQUpjYW1wcUlRQWdBU0FBTmdJQUlBTWdBRFlDV0NBRElBTW9Bb0FCSUFNb0FteEJCaEFWSUFNb0FteEJDeEFWY3lBREtBSnNRUmtRRlhOcUlBTW9BbXdnQXlnQ2FIRWdBeWdDWkNBREtBSnNRWDl6Y1hOcUlBTW9BZ3hCQW5SQnZEUnFLQUlBYWlBREtBSllhallDV0NBRElBTW9BbnhCQWhBVklBTW9BbnhCRFJBVmN5QURLQUo4UVJZUUZYTWdBeWdDZUNBREtBSjBjU0FES0FKOElBTW9Bbmh4SUFNb0Fud2dBeWdDZEhGemMybzJBb0FCSUFNZ0F5Z0NXQ0FES0FKd2FqWUNjQ0FESUFNb0FsZ2dBeWdDZ0FGcU5nS0FBU0FESUFNb0FneEJDR28yQWd3TUFRc0xJQU1vQW93QklnQWdBeWdDZ0FFZ0FDZ0NBR28yQWdBZ0F5Z0NqQUVpQUNBREtBSjhJQUFvQWdScU5nSUVJQU1vQW93QklnQWdBeWdDZUNBQUtBSUlhallDQ0NBREtBS01BU0lBSUFNb0FuUWdBQ2dDREdvMkFnd2dBeWdDakFFaUFDQURLQUp3SUFBb0FoQnFOZ0lRSUFNb0Fvd0JJZ0FnQXlnQ2JDQUFLQUlVYWpZQ0ZDQURLQUtNQVNJQUlBTW9BbWdnQUNnQ0dHbzJBaGdnQXlnQ2pBRWlBQ0FES0FKa0lBQW9BaHhxTmdJY0RBRUxDeUFEUVpBQmFpUUFDOElCQVFGL0l3QkJJR3NpQkNRQUlBUWdBRFlDSENBRUlBRTJBaGdnQkNBQ05nSVVJQVFnQXpZQ0VDQUVJQVFvQWh4QkNHb1FQVGNEQUNBRUlBUW9BaHdRUFRjRENBTkFJQVFvQWhCQkVFbEZCRUFnQkNBRUtBSVVRUWhxRUQwZ0JDa0RBSVUzQXdBZ0JDQUVLQUlVRUQwZ0JDa0RDSVUzQXdnZ0JDQUVLQUlZRU5VQklBUWdCQ2dDRkVFUWFqWUNGQ0FFSUFRb0FoQkJFR3MyQWhBTUFRc0xJQVFvQWh3Z0JDa0RDQkJ1SUFRb0FoeEJDR29nQkNrREFCQnVJQVJCSUdva0FBdGlBUUYvSXdCQklHc2lBaVFBSUFJZ0FEWUNIQ0FDSUFFMkFoZ2dBaUFDS0FJY1FRaHFFRDAzQXdBZ0FpQUNLQUljRUQwM0F3Z2dBaUFDS0FJWUVOVUJJQUlvQWh3Z0Fpa0RDQkJ1SUFJb0FoeEJDR29nQWlrREFCQnVJQUpCSUdva0FBdG9BUUYvSXdCQkVHc2lBRUdZNmdBMkFnd2dBQ2dDREVHZ0JUWUNBQ0FBS0FJTVFTQTJBZ1FnQUNnQ0RFRUFOZ0lJSUFBb0FneEIxUUEyQWd3Z0FDZ0NERUhXQURZQ0VDQUFLQUlNUWRjQU5nSVVJQUFvQWd4QndBQTJBaGdnQUNnQ0RFSHdBRFlDSEF1VkFRRUNmeU1BUVJCcklnQkI2T2tBTmdJTUlBQW9BZ3dpQVVJQU53SUFJQUZCQURZQ0tDQUJRZ0EzQWlBZ0FVSUFOd0lZSUFGQ0FEY0NFQ0FCUWdBM0FnZ2dBQ2dDREVHSUJ6WUNBQ0FBS0FJTVFRRTJBZ1FnQUNnQ0RFRVFOZ0lJSUFBb0FneEJFRFlDRENBQUtBSU1RWUFDTmdJUUlBQW9BZ3hCQlRZQ0ZDQUFLQUlNUWRJQU5nSWNJQUFvQWd4QjB3QTJBaUFMTXdFQmZ5TUFRU0JySWdVa0FDQUZJQUEyQWh3Z0JTQUJOZ0lZSUFVZ0FqWUNGQ0FGSUFNMkFoQWdCU0FFTmdJTUVBTUFDN2NGQVFGL0l3QkJnQVZySWdZa0FDQUdJQUEyQXZ3RUlBWWdBVFlDK0FRZ0JpQUNOZ0wwQkNBR0lBTTJBdkFFSUFZZ0JEWUM3QVFnQmlBRk5nTG9CQ0FHS0FMMEJFRVBjUVJBUWQ0Z1Fkd1FRY1VKUWVJSkVBQUFDeUFHSUFZb0F2UUVRUVIyTmdMa0JBSkFJQVlvQXVRRVJRMEFJQVpCZ0FGcUlBWW9BdkFFRUhrZ0JrSHdBR29pQUNBR0tBTHNCQ0lCS1FBQU53QUFJQUFnQVNrQUNEY0FDQ0FHS0FMb0JBUkFBMEFnQmlnQzVBUUVRQ0FHUWZBQWFpSUFJQUFnQmlnQy9BUVFkQ0FHUWRBQWFpSUJJQUJCQVJCY0lBWkJnQUZxSUFZb0F2QUVLQUx3QVNBQkVKd0JJQVlvQXZnRVFRRWdBUkJiSUFBZ0JpZ0MrQVFpQVNrQUFEY0FBQ0FBSUFFcEFBZzNBQWdnQmlBR0tBTDhCRUVRYWpZQy9BUWdCaUFHS0FMNEJFRVFhallDK0FRZ0JpQUdLQUxrQkVFQmF6WUM1QVFNQVFzTElBWW9BdXdFSWdBZ0JrSHdBR29pQVNrQUFEY0FBQ0FBSUFFcEFBZzNBQWdNQVFzRFFDQUdJQVlvQXVRRVFRSlBCSDlCQWdVZ0JpZ0M1QVFMTmdKTUlBWkJMR29nQmlnQy9BUWdCaWdDVEVFRWRCQWJHaUFHUVFocUlnQWdCaWdDL0FRZ0JpZ0NUQkJjSUFaQmdBRnFJQVlvQXZBRUtBTHdBU0FBRU84QklBWW9BdmdFSUFZb0Frd2dBQkJiSUFZb0F2Z0VJQVlvQXZnRUlBWkI4QUJxRUhRZ0JrRUJOZ0lFQTBBZ0JpZ0NCQ0FHS0FKTVQwVUVRQ0FHS0FMNEJDQUdLQUlFSWdCQkJIUnFJZ0VnQVNBR0lBQkJCSFJxUVJ4cUVIUWdCaUFHS0FJRVFRRnFOZ0lFREFFTEN5QUdRZkFBYWlJQUlBWWdCaWdDVEVFRWRHcEJIR29pQVNrQUFEY0FBQ0FBSUFFcEFBZzNBQWdnQmlBR0tBTGtCQ0FHS0FKTWF6WUM1QVFnQmlnQzVBUUVRQ0FHSUFZb0F2d0VRU0JxTmdMOEJDQUdJQVlvQXZnRVFTQnFOZ0w0QkF3QkN3c2dCaWdDN0FRaUFDQUdRZkFBYWlJQktRQUFOd0FBSUFBZ0FTa0FDRGNBQ0FzZ0JrR0FCV29rQUF2Y0F3RUJmeU1BUWZBRWF5SUZKQUFnQlNBQU5nTHNCQ0FGSUFFMkF1Z0VJQVVnQWpZQzVBUWdCU0FETmdMZ0JDQUZJQVEyQXR3RUFrQWdCU2dDNUFSRkRRQWdCVUg0QUdvZ0JTZ0M0QVFRZVNBRlFRQTJBalFEUUNBRktBSTBRUUpQUlFSQUlBVkIyQUJxSUFVb0FqUkJCSFJxSWdBZ0JTZ0MzQVFpQVNrQUFEY0FBQ0FBSUFFcEFBZzNBQWdnQlNBRktBSTBRUUZxTmdJMERBRUxDeUFGSUFWQjVBQnFFQ1EyQWpBRFFDQUZRUUEyQWl3RFFDQUZLQUlzUVFKUFJRUkFJQVVnQlNnQ0xDSUFRUVIwYWtIa0FHb2dBQ0FGS0FJd2FoQk1JQVVnQlNnQ0xFRUJhallDTEF3QkN3c2dCU0FGS0FMa0JFRUNUd1IvUVFJRklBVW9BdVFFQ3pZQ0tDQUZRUWhxSWdBZ0JVSFlBR29nQlNnQ0tCQmNJQVZCK0FCcUlBVW9BdUFFS0FMd0FTQUFFSndCSUFWQk9Hb2dCU2dDS0NBQUVGc2dCVUVBTmdJRUEwQWdCU2dDQkNBRktBSW9UMFVFUUNBRktBSUVRUVIwSWdBZ0JTZ0M2QVJxSUFBZ0JTZ0M3QVJxSUFBZ0JVRTRhbW9RZENBRklBVW9BZ1JCQVdvMkFnUU1BUXNMSUFVZ0JTZ0M1QVFnQlNnQ0tHczJBdVFFSUFVb0F1UUVSUTBCSUFVZ0JTZ0M3QVJCSUdvMkF1d0VJQVVnQlNnQzZBUkJJR28yQXVnRUlBVWdCU2dDTUVFQ2FqWUNNQXdBQ3dBTElBVkI4QVJxSkFBTFpnRUJmeU1BUVpBRWF5SURKQUFnQXlBQU5nS01CQ0FESUFFMkFvZ0VJQU1nQWpZQ2hBUWdBMEVnYWlJQUlBTW9Bb1FFRUhrZ0F5QURLQUtNQkVFQkVGd2dBQ0FES0FLRUJDZ0M4QUVnQXhEdkFTQURLQUtJQkVFQklBTVFXeUFEUVpBRWFpUUFDMllCQVg4akFFR1FCR3NpQXlRQUlBTWdBRFlDakFRZ0F5QUJOZ0tJQkNBRElBSTJBb1FFSUFOQklHb2lBQ0FES0FLRUJCQjVJQU1nQXlnQ2pBUkJBUkJjSUFBZ0F5Z0NoQVFvQXZBQklBTVFuQUVnQXlnQ2lBUkJBU0FERUZzZ0EwR1FCR29rQUF0MUFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJJQUVvQWd3MkFnZ2dBU2dDQ0FSQUlBRkJBRFlDQkFOQUlBRW9BZ1JCRUU5RkJFQWdBU2dDQ0NBQktBSUVRUVIwYWhEd0FTQUJJQUVvQWdSQkFXbzJBZ1FNQVFzTElBRW9BZ2dvQW9nQ0VDSWdBU2dDQ0JBaUN5QUJRUkJxSkFBTHd3TUJBWDhqQUVIUUFHc2lDaVFBSUFvZ0FEWUNTQ0FLSUFFMkFrUWdDaUFDTmdKQUlBb2dBellDUENBS0lBUTJBamdnQ2lBRk5nSTBJQW9nQmpZQ01DQUtJQWMyQWl3Z0NpQUlOZ0lvSUFvZ0NUWUNKQ0FLSUFvb0FraEJDR28yQWlBQ1FDQUtLQUlzSUFvb0FrZ3RBTUFFUndSQVFSNUI1UUJCM0JSQjNRRVFIQ0FLUVFBMkFrd01BUXNnQ2lnQ1BFRU1Sd1JBUVI1QitRQkIzQlJCNGdFUUhDQUtRUUEyQWt3TUFRc2dDaUFLS0FJZ0lnQkJnQUpxSUFCQjhBSnFJQW9vQWlnZ0NpZ0NKQ0FLS0FKQUlBb29BamdnQ2lnQ05CRHlBU0FLS0FJd0lRRWdDaWdDU0MwQXdBUWhBaU1BUVNCcklnQWdDallDSENBQUlBRTJBaGdnQUNBQ05nSVVJQUFnQUNnQ0hEWUNFQ0FBSUFBb0FoZzJBZ3dnQUVFQU9nQUxJQUJCQURZQ0JBTkFJQUFvQWdRZ0FDZ0NGRWtFUUNBQUlBQXRBQXNnQUNnQ0JDSUJJQUFvQWhCcUxRQUFJQUVnQUNnQ0RHb3RBQUJ6Y2pvQUN5QUFJQUFvQWdSQkFXbzJBZ1FNQVFzTElBQXRBQXNFUUVFZVFlVUFRZHdVUWVzQkVCd2dDa0VBTmdKTURBRUxJQW9vQWlBZ0NpZ0NSQ0FLS0FJNElBb29BalFnQ2lnQ1FCRHpBU0FLUVFFMkFrd0xJQW9vQWt3aEFDQUtRZEFBYWlRQUlBQUwrUUlCQVg4akFFSHdBR3NpRFNRQUlBMGdBRFlDYUNBTklBRTJBbVFnRFNBQ05nSmdJQTBnQXpZQ1hDQU5JQVEyQWxnZ0RTQUZOZ0pVSUEwZ0JqWUNVQ0FOSUFjMkFrd2dEU0FJTmdKSUlBMGdDVFlDUkNBTklBbzJBa0FnRFNBTE5nSThJQTBnRERZQ09DQU5JQTBvQW1oQkNHbzJBalFnRFNBTk5RSklOd01vQWtBZ0RTa0RLRUtBZ0lDQWdBSmFCRUJCSGtIMUFFSGNGRUc4QVJBY0lBMUJBRFlDYkF3QkN5QU5LQUpZSUEwb0FtZ3RBTUFFU1FSQVFSNUI1d0JCM0JSQndRRVFIQ0FOUVFBMkFtd01BUXNnRFNnQ1VFRU1Sd1JBUVI1QitRQkIzQlJCeGdFUUhDQU5RUUEyQW13TUFRc2dEU2dDTkNBTktBSmtJQTBvQWt3Z0RTZ0NTQ0FOS0FKVUVQTUJJQTBnRFNnQ05FR0FBbW9nRFNnQ05FSHdBbW9nRFNnQ1BDQU5LQUk0SUEwb0FsUWdEU2dDWkNBTktBSklFUElCSUEwb0FtQWdEU0FOS0FKb0xRREFCQkFlSUEwb0Fsd2dEU2dDYUMwQXdBUTJBZ0FnRFVFQk5nSnNDeUFOS0FKc0lRQWdEVUh3QUdva0FDQUFDOFVKQVFSL0l3QkJJR3NpQkNRQUlBUWdBRFlDR0NBRUlBRTJBaFFnQkNBQ05nSVFJQVFnQXpZQ0RDQUVJQVFvQWhoQkNHbzJBZ2dDUUNBRUtBSVFRU0JKQkVCQkhrSG1BRUhjRkVIUEFCQWNJQVJCQURZQ0hBd0JDeUFFSUFRb0FoQkJJR3MyQWdRQ1FDQUVLQUlFUVJCR0RRQWdCQ2dDQkVFZ1JnMEFRUjVCNWdCQjNCUkIxUUFRSENBRVFRQTJBaHdNQVFzZ0JDZ0NERVVFUUNBRVFTQTJBZ3dMSUFRb0FneEJJRXNFUUVFZVFmUUFRZHdVUWQ0QUVCd2dCRUVBTmdJY0RBRUxJQVFvQWdnaEFTQUVLQUlVSVFJZ0JDZ0NCQ0VESXdCQklHc2lBQ1FBSUFBZ0FUWUNHQ0FBUVFBMkFoUWdBQ0FCUWZ3QmFqWUNFQ0FBSUFJMkFnd2dBQ0FETmdJSUFrQWdBQ2dDQ0VFUVJnMEFJQUFvQWdoQkdFWU5BQ0FBS0FJSVFTQkdEUUJCOVI1Qmh4SkJwZ0pCalFnUUFBQUxJQUFvQWd3Z0FDZ0NDRUVEZENBQUtBSVlFSnNCR2lBQUtBSVVCRUFnQUNnQ0ZDRUNJQUFvQWhnaEF5TUFRVEJySWdFa0FDQUJJQUkyQWl3Z0FTQUROZ0lvSUFGQnpRQTJBaVFnQVVFQU5nSWdJQUVvQWl4QkFFR1FBaEFoSUFFb0Fpd2dBU2dDSkRZQ2lBSWdBVUVRYWlJQ1FRQkJFQkFoSUFJZ0FpQUJLQUlvSUFFb0FpUVJBd0FnQVNnQ0xFR0FBbW9oQlNBQktBSXNRWVFDYWlFR0lBRW9BaXdoQnlNQVFUQnJJZ01rQUNBRElBVTJBaXdnQXlBR05nSW9JQU1nQnpZQ0pDQURJQUZCREdvMkFpQWdBeUFDTmdJY0lBTW9BaUJCQURZQ0FDQURJQU1vQWh3UVBUY0RBQ0FESUFNb0FoeEJDR29RUFRjRENDTUFRUkJySWdJZ0F5Z0NKRFlDRENBQ0lBTTJBZ2dnQWlnQ0RDQUNLQUlJS1FNSU53TUlJQUlvQWd3Z0FpZ0NDQ2tEQURjREFDQUNJQUlvQWd3cEF3QkNQNGczQXdBZ0FrSUFJQUlwQXdCOU53TUFJQUlvQWd3aUJTQUZLUU1BUWdHR053TUFJQUlvQWd3aUJTQUZLUU1BSUFJb0Fnd3BBd2hDUDRpRU53TUFJQUlvQWd3aUJTQUZLUU1JUWdHR053TUlJQUlvQWd3aUJTQUZLUU1JSUFJcEF3QkNBWU9GTndNSUlBSW9BZ3dpQlNBRktRTUFJQUlwQXdCQ2dJQ0FnSUNBZ0lCQ2c0VTNBd0FnQXlnQ0xFSFBBRFlDQUNBREtBSW9RZEFBTmdJQUlBTkJNR29rQUNBQktBSXNJZ0lnQVNnQ0RBUi9JQUVvQWlCQkFFY0ZRUUFMUVFGeElBSXRBSXdDUVg1eGNqb0FqQUlnQVVFd2FpUUFDeUFBS0FJUUJFQWdBQ2dDRUVITkFEWUNBQXNnQUVIT0FEWUNIQ0FBS0FJY0lRRWdBRUVnYWlRQUlBUW9BZ2dnQVRZQytBRWdCQ2dDR0NBRUtBSU1PZ0RBQkNBRUtBSUlRWUFDYWlFQklBUW9BZ2hCOEFKcUlRSWdCQ2dDRkNBRUtBSUVhaUVESXdCQjRBQnJJZ0FrQUNBQUlBRTJBbHdnQUNBQ05nSllJQUFnQXpZQ1ZDQUFRUkJxSWdFZ0FDZ0NWRUVnRUI0Z0FVRWdha0UyUVNBUUlTQUFRUUEyQWd3RFFDQUFLQUlNUVNCSkJFQWdBQ2dDRENBQVFSQnFhaUlCSUFFdEFBQkJObk02QUFBZ0FDQUFLQUlNUVFGcU5nSU1EQUVMQ3lBQUtBSmNFSlFCR2lBQUtBSmNJQUJCRUdvaUFVSEFBQkExR2lBQlFTQnFRZHdBUVNBUUlTQUFRUUEyQWd3RFFDQUFLQUlNUVNCSkJFQWdBQ2dDRENBQVFSQnFhaUlCSUFFdEFBQkI2Z0J6T2dBQUlBQWdBQ2dDREVFQmFqWUNEQXdCQ3dzZ0FDZ0NXQkNVQVJvZ0FDZ0NXQ0FBUVJCcVFjQUFFRFVhSUFCQjRBQnFKQUFnQkVFQk5nSWNDeUFFS0FJY0lRQWdCRUVnYWlRQUlBQUxYUUVDZnlNQVFSQnJJZ0lrQUNBQ0lBQTJBZ3dnQWlBQk5nSUlJQUlvQWd3aEFTQUNLQUlJSVFNakFFRVFheUlBSkFBZ0FDQUNOZ0lNSUFBZ0FUWUNDQ0FBSUFNMkFnUWdBQ2dDQkJEM0FTQUFRUkJxSkFBZ0FrRVFhaVFBQzQwREFRdC9Jd0JCRUdzaUJ5UUFJQWNnQURZQ0RDTUFRUkJySWdVa0FDQUZRZGpwQURZQ0NDQUZJQVVvQWdnaUJEWUNEQ01BUVJCcklnSWtBQ0FDSUFRMkFnd2dBaWdDRENJQUVCa2hBeUFBRUJrZ0FCQmVRUUowYWlFR0lBQVFHU0VLSXdCQkVHc2lBU0FBTmdJTUlBb2dBU2dDRENJQktBSUVJQUVvQWdCclFYeHhhaUVJSUFBUUdTQUFFRjVCQW5ScUlRa2pBRUVnYXlJQklBQTJBaHdnQVNBRE5nSVlJQUVnQmpZQ0ZDQUJJQWcyQWhBZ0FTQUpOZ0lNSUFKQkVHb2tBQ0FFS0FJQUJFQWpBRUVRYXlJQkpBQWdBU0FFTmdJTUlBRW9BZ3dpQUNFQ0lBQW9BZ0FoQXlNQVFSQnJJZ0FrQUNBQUlBSTJBZ3dnQUNBRE5nSUlJQUFnQUNnQ0RDSUNLQUlFTmdJRUEwQWdBQ2dDQ0NBQUtBSUVSd1JBSUFJUUdDRURJQUFnQUNnQ0JFRUVheUlHTmdJRUlBTWhDeU1BUVJCcklnTWdCallDRENBTElBTW9BZ3dRUkF3QkN3c2dBaUFBS0FJSU5nSUVJQUJCRUdva0FDQUJRUkJxSkFBZ0JCQVlJQVFvQWdBZ0JCQmVFSXdDQ3lBRktBSU1HaUFGUVJCcUpBQWdCMEVRYWlRQUM0NENBUVovSXdCQkVHc2lCU1FBSUFVZ0FEWUNEQ01BUVJCcklnUWtBQ0FFUWRUcEFEWUNEQ0FFS0FJTUlRRWpBRUVRYXlJQUpBQWdBQ0FCTmdJTUlBQkJBRFlDQ0NBQUlBQW9BZ3dpQVJBWEtBSUFOZ0lFSUFBb0FnZ2hBaUFCRUJjZ0FqWUNBQ0FBS0FJRUJFQWdBUkFYSVFFZ0FDZ0NCQ0VESXdCQkVHc2lBaVFBSUFJZ0FUWUNEQ0FDSUFNMkFnZ2dBaWdDQ0NFQkl3QkJFR3NpQXlRQUlBTWdBVFlDRENBREtBSU1JUVlqQUVFUWF5SUJKQUFnQVNBR05nSU1Ba0FnQVNnQ0RFVU5BQ0FCS0FJTUVHaEZEUUFnQVNnQ0RCRDBBUm9nQVNnQ0RCQW9DeUFCUVJCcUpBQWdBMEVRYWlRQUlBSkJFR29rQUFzZ0FFRVFhaVFBSUFSQkVHb2tBQ0FGUVJCcUpBQUxyUU1CQm44akFFRVFheUlHSkFBZ0JpQUFOZ0lNSXdCQkVHc2lCQ1FBSUFSQjBPa0FOZ0lNSUFRb0Fnd2hBQ01BUVJCcklnSWtBQ0FDSUFBMkFnd2dBa0VBTmdJSUlBSWdBaWdDRENJQUVCY29BZ0EyQWdRZ0FpZ0NDQ0VCSUFBUUZ5QUJOZ0lBSUFJb0FnUUVRQ0FBRUJjaEFDQUNLQUlFSVFFakFFRVFheUlESkFBZ0F5QUFOZ0lNSUFNZ0FUWUNDQ0FES0FJSUlRQWpBRUVRYXlJRkpBQWdCU0FBTmdJTUlBVW9BZ3doQVNNQVFSQnJJZ0FrQUNBQUlBRTJBZ2dDUUFOQUlBQW9BZ2dFUUNBQUtBSUlRUmhxRUdnRVFDTUFRUkJySWdFZ0FDZ0NDRFlDQ0FKQUlBRW9BZ2hGQkVBZ0FVRUFOZ0lNREFFTElBRWdBU2dDQ0NnQ0lEWUNCQ0FCS0FJSVFRQTJBaUFnQVNBQktBSUVOZ0lNQ3lBQUlBRW9BZ3cyQWdRQ1FDQUFLQUlJS0FJQVJRMEFJQUFvQWdnb0FnQW9BaUJGRFFBZ0FDZ0NDQ0lCSUFFb0FnQW9BaUFSQUFBYUN5QUFLQUlJRUNnZ0FDQUFLQUlFTmdJSURBSUZJQUJCQURZQ0RBd0RDd0FMQ3lBQVFRRTJBZ3dMSUFBb0Fnd2FJQUJCRUdva0FDQUZRUkJxSkFBZ0EwRVFhaVFBQ3lBQ1FSQnFKQUFnQkVFUWFpUUFJQVpCRUdva0FBdFhBUUovSXdCQkVHc2lBaVFBSUFJZ0FEWUNEQ0FDSUFFMkFnZ2pBRUVRYXlJQklBSW9BZ2dpQTBFa2FqWUNEQ0FDSUFFb0Fnd2lBU2dDQkNBQktBSUFheUFEUVNScUVCa1FleUFBSUFJUWVDQUNRUkJxSkFBTHpRRUJBMzhqQUVFZ2F5SURKQUFnQXlBQU5nSWNJQU1nQVRZQ0dDQURJQUkyQWhRZ0F5Z0NHQ0VDSUFNb0FoUWhCQ01BUVJCcklnRWtBQ0FCSUFJMkFnd2dBU0FFTmdJSUl3QkJFR3NpQlNBQktBSU1JZ1JCRkdvMkFnd2dBU2dDQ0NBRktBSU1JZ1VvQWdRZ0JTZ0NBR3RMQkVBZ0JFRVVhaUFCS0FJSUVJa0JDeUFFSUFFb0FnZzJBaUFnQVVFUWFpUUFJd0JCRUdzaUFTQUNRUlJxSWdJMkFnd2dBMEVJYWlJRUlBRW9BZ3dpQVNnQ0JDQUJLQUlBYXlBQ0VCa1FleUFBSUFRUWVDQURRU0JxSkFBTE5nRUNmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2pBRUVRYXlJQUlBRW9BZ3dpQWpZQ0RDQUFLQUlNR2lBQ0VDSWdBVUVRYWlRQUMrTWNBaE4vQVg0akFFR0FBV3NpQ1NRQUlBa2dBRFlDZkNBSklBRTJBbmdnQ1NBQ053TndJQWtnQXpZQ2JDQUpJQVEyQW1nZ0NTQUZOZ0prSUFrZ0JqWUNZQ0FKSUFjMkFsd2dDU0FJTmdKWUlBa29BbmdoRGlBSktBSmNRUUEyQWdBQ1FDQUpLQUpzUlFSQUl3QkJFR3NpQVNBQU5nSU1JQUZCQkRZQ0NDQUJLQUlNSWdCQnBETTJBZ0FnQUNBQktBSUlOZ0lFREFFTElBa29BbUJGQkVBakFFRVFheUlCSUFBMkFnd2dBVUVGTmdJSUlBRW9BZ3dpQUVHa016WUNBQ0FBSUFFb0FnZzJBZ1FNQVFzZ0RrRWNhaEFXUlFSQUl3QkJFR3NpQVNBQU5nSU1JQUZCQWpZQ0NDQUJLQUlNSWdCQnBETTJBZ0FnQUNBQktBSUlOZ0lFREFFTElBbEJ5QUJxRUM0Q1FDQUpLQUprUlFSQUlBbEJPR29pQVNBSktBSnNJQWtvQW1nUW53RWdDVUhJQUdvZ0FSQTJJQUVRSnd3QkN3SkFJQWtvQW1SQkFVWUVRQ0FKUVNocUlnRWdDU2dDYkNBSktBSm9FSjRCSUFsQnlBQnFJQUVRTmlBQkVDY01BUXNDUUNBSktBSmtRUUpHQkVBZ0NVRVlhaUlCSUFrb0Ftd2dDU2dDYUJDZEFTQUpRY2dBYWlBQkVEWWdBUkFuREFFTElBa29BbVJCQTBZRVFDQUpRUUEyQWhRZ0NVSElBR29nQ1VFVWFpQUpRZWdBYWhCUUN3c0xDeU1BUVJCcklnRWdDVUhJQUdvMkFnd0NRQ0FCS0FJTUlnRW9BZ0FnQVNnQ0JFWUVRQ01BUVJCcklnRWdBRFlDRENBQlFRWTJBZ2dnQVNnQ0RDSUFRYVF6TmdJQUlBQWdBU2dDQ0RZQ0JDQUpRUUUyQWhBTUFRc2dDVUVBTmdJTUEwQWdDU2dDRENFUUl3QkJFR3NpQVNBSlFjZ0FhallDRENBUUlBRW9BZ3dpQVNnQ0JDQUJLQUlBYTBFRGRVa0VRQ0FKUVFBMkFnZ0NRQUpBSUFrb0FtUkJBa2NOQUNBSktBSnNJUkVnQ1NnQ0RDRURJd0JCRUdzaUFTQUpRY2dBYWpZQ0RDQUJJQU0yQWdnZ0VTQUJLQUlNS0FJQUlBRW9BZ2hCQTNScUtBSUFFUGtCUVFGeFJRMEFJQWtvQWd3aEF5TUFRUkJySWdFZ0NVSElBR29pQkRZQ0RDQUJJQU0yQWdnZ0NTRVhJQUVvQWd3b0FnQWdBU2dDQ0VFRGRHb29BZ0FoRWlBSktBSU1JUU1nQVNBRU5nSU1JQUVnQXpZQ0NDQVhJQklnQVNnQ0RDZ0NBQ0FCS0FJSVFRTjBhaWdDQkdvMkFnZ2dDU2dDWUNBSktBSnNJQWtvQWdnUUd4b01BUXNnQ1VFQU9nQUhJQWtwQTNBaEFpQUpLQUpzSVFNZ0NTZ0NEQ0VFSXdBaUJVRVFheUlCSUFsQnlBQnFJZ1kyQWd3Z0FTQUVOZ0lJSUFFb0Fnd29BZ0FnQVNnQ0NFRURkR29vQWdRaEJDQUpLQUlNSVFjZ0FTQUdOZ0lNSUFFZ0J6WUNDQ0FCS0FJTUtBSUFJQUVvQWdoQkEzUnFLQUlBSVFZZ0NTZ0NZQ0VISUFrb0FsZ2hDQ0FGUWFBQmF5SUJKQUFnQVNBQU5nS2NBU0FCSUE0MkFwZ0JJQUVnQWpjRGtBRWdBU0FETmdLTUFTQUJJQVEyQW9nQklBRWdCallDaEFFZ0FTQUhOZ0tBQVNBQklBbEJDR28yQW53Z0FTQUlOZ0o0SUFFb0FwZ0JJUWNnQVNBQktBS01BU0FCS0FLRUFXbzJBbXdnQVVFUk5nSm9Jd0JCRUdzaUJpUUFJQVlnQVVIc0FHbzJBZ1FnQmlBQlFlZ0FhallDQUVFZ0VDOGhEQ0FHS0FJRUtBSUFJUU1nQmlnQ0FDZ0NBQ0VGSXdCQkVHc2lCQ1FBSUFRZ0REWUNDQ0FFSUFNMkFnUWdCQ0FGTmdJQUlBUWdCQ2dDQ0NJRk5nSU1JQVZDQURjREFDQUZRZ0EzQXdnZ0JVRVFhaEFxSUFVZ0JEVUNBRGNER0FKQUlBUW9BZ1JGRFFBZ0JDZ0NBRVVOQUNBRUtBSUFRUkZMRFFBZ0JVRVFhaUlESUFRb0FnQVFMeEJqSUFNUUZrRUFJQVFvQWdBUVJpQURFQllnQkNnQ0JDQUVLQUlBRUJzYUl3QkJJR3NpQXlRQUlBTWdCVFlDSENBREtBSWNJZ1ZCRUdvaENpTUFRUkJySWdna0FDQUlJQW8yQWd3Z0NFRUFOZ0lJSUFnb0Fnd2hDeU1BUVJCcklnb2tBQ0FLSUFzMkFnd2dDaWdDREJBWEtBSUFRUUJISVFzZ0NrRVFhaVFBSUFoQkVHb2tBQUpBSUF0QmYzTkJBWEVOQUNBRktRTVlVQTBBSUFVcEF4aENFVllOQUNBRElBVkJFR29RRmpZQ0dDQURJQU1vQWhndEFBQkJCSFpCQjNGQkFXbzJBaFFnQXlBREtBSVlMUUFBUVFoeFFRQkhPZ0FUSUFNQ2Z5QURMUUFUUVFGeEJFQWdBeWdDR0MwQUFFRUhjVUVCYWd3QkN5QURLQUlZTFFBQVFRZHhDellDRENBRktRTVlBbjhnQXkwQUUwRUJjUVJBSUFNb0FneEJBV3NNQVF0QkFRc2dBeWdDRkdxdFZBMEFBa0FnQXkwQUUwRUJjUVJBSUFOQkFEWUNDQU5BSUFNb0FnZ2dBeWdDREVrRVFDQUZJQU1vQWhnZ0F5Z0NDRUVCYW1veEFBQWdCU2tEQUVJSWhudzNBd0FnQXlBREtBSUlRUUZxTmdJSURBRUxDd3dCQ3lBRklBTTFBZ3czQXdBTElBTUNmeUFETFFBVFFRRnhCRUFnQXlnQ0RFRUJhZ3dCQzBFQkN6WUNCQ0FEUVFBMkFnQURRQ0FES0FJQUlBTW9BaFJQRFFFZ0JTQURLQUlZSUFNb0FnQWdBeWdDQkdwcU1RQUFJQVVwQXdoQ0NJWjhOd01JSUFNZ0F5Z0NBRUVCYWpZQ0FBd0FDd0FMSUFOQklHb2tBQXNnQkNnQ0RCb2dCRUVRYWlRQUlBWkJDR29nREJCZklBWW9BZ2doQXlBR1FSQnFKQUFnQVNBRE5nSndBa0FnQVVId0FHb1FGa1VFUUNNQVFSQnJJZ01nQURZQ0RDQURRUUkyQWdnZ0F5Z0NEQ0lFUWFRek5nSUFJQVFnQXlnQ0NEWUNCQ0FCUVFFMkFtUU1BUXNnQVVId0FHb1FGaUVESXdCQkVHc2lCQ0FETmdJTUlBRWdCQ2dDRENrREFEY0RXQ0FCUWZBQWFoQVdJUU1qQUVFUWF5SUVJQU0yQWd3Z0FTQUVLQUlNS1FNSU53TlFJQUVnQVVIWUFHb2dBVUhRQUdvUWxRSTJBbUFDUUNBQlFlQUFhaEFXUlFSQUl3QkJFR3NpQXlBQU5nSU1JQU5CQWpZQ0NDQURLQUlNSWdSQnBETTJBZ0FnQkNBREtBSUlOZ0lFSUFGQkFUWUNaQXdCQ3lBQlFRQTJBa3dDUUNBSEtBSUVSUVJBSUFGQkREWUNUQXdCQ3lNQVFSQnJJZ01nQURZQ0RDQURRUUkyQWdnZ0F5Z0NEQ0lFUWFRek5nSUFJQVFnQXlnQ0NEWUNCQ0FCUVFFMkFtUU1BUXNnQVNBQktBSk1FQjgyQWtnZ0FVSGdBR29RRmlFREl3QkJFR3NpQkNBRE5nSU1JQUVnQnlFWUlBUW9BZ3dwQXdBaEhDQUJRZUFBYWhBV0lRTWpBRUVRYXlJRUlBTTJBZ3dnR0NBY0lBUW9BZ3dwQXdnZ0FVSElBR29RRmlBQktBSk1FSmtDUVFGeE9nQkhBa0FnQVMwQVIwRUJjVVVFUUNNQVFSQnJJZ01nQURZQ0RDQURRUUkyQWdnZ0F5Z0NEQ0lFUWFRek5nSUFJQVFnQXlnQ0NEWUNCQ0FCUVFFMkFtUU1BUXNnQVNFWklBRW9Bb2dCSVJNZ0FVSGdBR29RRmlFREl3QkJFR3NpQkNBRE5nSU1JQmtnRXlBRUtBSU1LUU1ZcDJzMkFrQWdBU0FCS0FKQUVCODJBamdnQVVFNGFoQVdJUm9nQVNnQ2pBRWhGQ0FCUWVBQWFoQVdJUU1qQUVFUWF5SUVJQU0yQWd3Z0dpQVVJQVFvQWd3cEF4aW5haUFCS0FLRUFXb2dBU2dDUUJBYkdnSkFJQWN0QUNCQkFYRkZCRUFnQVVFQU5nSTBBa0FnQnlnQ0JFVUVRQ0FCUVFvMkFqUU1BUXNqQUVFUWF5SURJQUEyQWd3Z0EwRUNOZ0lJSUFNb0Fnd2lCRUdrTXpZQ0FDQUVJQU1vQWdnMkFnUWdBVUVCTmdKa0RBSUxJQUVvQW5nZ0FTZ0NoQUVnQVNnQ1FHb2dBU2dDTkd0SkJFQWpBRUVRYXlJRElBQTJBZ3dnQTBFQ05nSUlJQU1vQWd3aUJFR2tNellDQUNBRUlBTW9BZ2cyQWdRZ0FVRUJOZ0prREFJTElBRW9Bb0FCSUFFb0Fvd0JJQUVvQW9RQkVCc2FJQUVvQW9BQklBRW9Bb1FCYWlBQlFUaHFFQllnQVNnQ1FDQUJLQUkwYXhBYkdpQUJLQUo4SUFFb0FvUUJJQUVvQWtCcUlBRW9BalJyTmdJQUl3QkJFR3NpQXlBQU5nSU1JQU5CQURZQ0NDQURLQUlNSWdSQnBETTJBZ0FnQkNBREtBSUlOZ0lFSUFGQkFUWUNaQXdCQ3lBQlFRQTJBakFnQVNBQktBSkFOZ0lzSUFFZ0FTZ0NMQkFmTmdJb0lBRkI0QUJxRUJZaEF5TUFRUkJySWdRZ0F6WUNEQ0FCSUFRb0Fnd3BBd0EzQXhnZ0FTQUhRUWhxSUFGQkdHb1FwZ0UyQWlBZ0IwRWNhaEFXSVFNZ0FVRUlhaUFCUVNCcUVGRkJDR29RcUFFZ0FVRW9haEFXSVFRZ0FTZ0NMQ0VGSUFGQnlBQnFFQlloQmlBQktBSk1JUWNnQVVFNGFoQVdJUWdnQVNnQ1FDRUtJQUZCNEFCcUVCWVFvUUVoRENBQlFlQUFhaEFXSVFzakFFRVFheUlOSUFzMkFnd2dEU2dDRENrREdLY2hDeUFES0FJQUtBSVFJUTBnQVNBQktRTUlOd01BSUFGQkVHb2lEeUFESUFFZ0JDQUJRVEJxSUFVZ0JpQUhJQWdnQ2lBTUlBc2dEUkVOQUNNQVFSQnJJZ01nRHpZQ0RBSkFJQU1vQWd3b0FnUUVRQ0FCS0FKOFFRQTJBZ0FqQUVFUWF5SURJQUEyQWd3Z0F5QUJRUkJxTmdJSUlBTW9BZ3dpQkVHa016WUNBQ0FFSUFNb0FnZ29BZ1EyQWdRTUFRc2dBU2dDZ0FFZ0FTZ0NqQUVnQVNnQ2hBRVFHeG9nQVNnQ2dBRWdBU2dDaEFGcUlBRkJLR29RRmlBQktBSXdFQnNhSUFFb0Fud2dBU2dDaEFFZ0FTZ0NNR28yQWdBakFFRVFheUlESUFBMkFnd2dBMEVBTmdJSUlBTW9BZ3dpQkVHa016WUNBQ0FFSUFNb0FnZzJBZ1FMSUFGQkFUWUNaQ01BUVJCcklnTWdBVUVRYWpZQ0RDQURLQUlNR2lBQlFTaHFFQm9MSUFGQk9Hb1FHZ3NnQVVISUFHb1FHZ3NnQVVIZ0FHb1FwUUVMSUFGQjhBQnFFS1VCSUFGQm9BRnFKQUFqQUVFUWF5SUJJQUEyQWd3Q1FDQUJLQUlNS0FJRUJFQWdDU2dDWEVFQU5nSUFJQWxCQVRvQUJ5QUpRUUUyQWhBTUFRc2dDVUVBTmdJUUN5QUpMUUFIUVFGeFJRUkFJd0JCRUdzaUFTQUFOZ0lNSUFFb0Fnd2FDeUFKS0FJUURRTUxJQWtvQWd3aEJDTUFRUkJySWdFZ0NVSElBR29pQXpZQ0RDQUJJQVEyQWdnZ0NTRWJJQUVvQWd3b0FnQWdBU2dDQ0VFRGRHb29BZ0FoRlNBSktBSU1JUVFnQVNBRE5nSU1JQUVnQkRZQ0NDQWJJQlVnQVNnQ0RDZ0NBQ0FCS0FJSVFRTjBhaWdDQkdvZ0NTZ0NiR28yQW13Z0NTZ0NEQ0VFSUFFZ0F6WUNEQ0FCSUFRMkFnZ2dBU2dDRENnQ0FDQUJLQUlJUVFOMGFpZ0NBQ0VXSUFrb0Fnd2hCQ0FCSUFNMkFnd2dBU0FFTmdJSUlCWWdBU2dDRENnQ0FDQUJLQUlJUVFOMGFpZ0NCR29oQVNBSklBa29BbWdnQVdzMkFtZ2dDU0FKS0FJSUlBa29BbUJxTmdKZ0lBa2dDU2dDV0NBSktBSUlhellDV0NBSktBSmNJZ0VnQ1NnQ0NDQUJLQUlBYWpZQ0FDQUpJQWtvQWd4QkFXbzJBZ3dNQVFzTEl3QkJFR3NpQVNBQU5nSU1JQUZCQURZQ0NDQUJLQUlNSWdCQnBETTJBZ0FnQUNBQktBSUlOZ0lFSUFsQkFUWUNFQXNnQ1VISUFHb1FKd3NnQ1VHQUFXb2tBQXNxQVFGL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQktBSU1JZ0FRcEFFYUlBQVFJaUFCUVJCcUpBQUw1UjRDRW44QmZTTUFRYkFCYXlJSkpBQWdDU0FBTmdLc0FTQUpJQUUyQXFnQklBa2dBamNEb0FFZ0NTQUROZ0tjQVNBSklBUTJBcGdCSUFrZ0JUWUNsQUVnQ1NBR05nS1FBU0FKSUFjMkFvd0JJQWtnQ0RZQ2lBRWdDU2dDcUFFaEF5QUpLQUtNQVVFQU5nSUFBa0FnQ1NnQ25BRkZCRUFqQUVFUWF5SUJJQUEyQWd3Z0FVRUVOZ0lJSUFFb0Fnd2lBRUdrTXpZQ0FDQUFJQUVvQWdnMkFnUU1BUXNnQ1NnQ2tBRkZCRUFqQUVFUWF5SUJJQUEyQWd3Z0FVRUZOZ0lJSUFFb0Fnd2lBRUdrTXpZQ0FDQUFJQUVvQWdnMkFnUU1BUXNnQTBFY2FoQVdSUVJBSXdCQkVHc2lBU0FBTmdJTUlBRkJBVFlDQ0NBQktBSU1JZ0JCcERNMkFnQWdBQ0FCS0FJSU5nSUVEQUVMSUFrZ0EwRWdhaUlCSUFsQm9BRnFFS1lCTmdLQUFTQUpJQUVRbUFJMkFuQWdDU0FKUVlBQmFpQUpRZkFBYWhDWEFrRUJjUVIrUWdBRklBbEJnQUZxRUZFcEF3Z0xOd040SUFsQkFEWUNiQUpBSUFNb0FnUkZCRUFnQ1VFTU5nSnNEQUVMSXdCQkVHc2lBU0FBTmdJTUlBRkJBVFlDQ0NBQktBSU1JZ0JCcERNMkFnQWdBQ0FCS0FJSU5nSUVEQUVMSUFrZ0NVR2dBV29nQ1VINEFHb1FsUUkyQW1nQ1FDQUpRZWdBYWhBV1JRUkFJd0JCRUdzaUFTQUFOZ0lNSUFGQkFUWUNDQ0FCS0FJTUlnQkJwRE0yQWdBZ0FDQUJLQUlJTmdJRUlBbEJBVFlDWkF3QkN5QUpJQWtvQW13UUh6WUNZQ0FKSUFNZ0NTa0RvQUVnQ1NrRGVDQUpRZUFBYWhBV0lBa29BbXdRbVFKQkFYRTZBRjhDUUNBSkxRQmZRUUZ4UlFSQUl3QkJFR3NpQVNBQU5nSU1JQUZCQVRZQ0NDQUJLQUlNSWdCQnBETTJBZ0FnQUNBQktBSUlOZ0lFSUFsQkFUWUNaQXdCQ3lBSlFkQUFhaEF1QWtBZ0NTZ0NsQUZGQkVBZ0NVRkFheUlCSUFrb0Fwd0JJQWtvQXBnQkVKOEJJQWxCMEFCcUlBRVFOaUFCRUNjTUFRc0NRQ0FKS0FLVUFVRUJSZ1JBSUFsQk1Hb2lBU0FKS0FLY0FTQUpLQUtZQVJDZUFTQUpRZEFBYWlBQkVEWWdBUkFuREFFTEFrQWdDU2dDbEFGQkFrWUVRQ0FKUVNCcUlnRWdDU2dDbkFFZ0NTZ0NtQUVRblFFZ0NVSFFBR29nQVJBMklBRVFKd3dCQ3lBSktBS1VBVUVEUmdSQUlBbEJBRFlDSENBSlFkQUFhaUFKUVJ4cUlBbEJtQUZxRUZBTEN3c0xJd0JCRUdzaUFTQUpRZEFBYWpZQ0RBSkFJQUVvQWd3aUFTZ0NBQ0FCS0FJRVJnUkFJd0JCRUdzaUFTQUFOZ0lNSUFGQkJqWUNDQ0FCS0FJTUlnQkJwRE0yQWdBZ0FDQUJLQUlJTmdJRUlBbEJBVFlDWkF3QkN5QUpRUUEyQWhnRFFDQUpLQUlZSVJBakFFRVFheUlCSUFsQjBBQnFOZ0lNSUJBZ0FTZ0NEQ0lCS0FJRUlBRW9BZ0JyUVFOMVNRUkFJQWxCQURZQ0ZBSkFBa0FnQ1NnQ2xBRkJBa2NOQUNBSktBS2NBU0VSSUFrb0FoZ2hCQ01BUVJCcklnRWdDVUhRQUdvMkFnd2dBU0FFTmdJSUlCRWdBU2dDRENnQ0FDQUJLQUlJUVFOMGFpZ0NBQkQ1QVVFQmNVVU5BQ0FKS0FJWUlRUWpBRUVRYXlJQklBbEIwQUJxSWdVMkFnd2dBU0FFTmdJSUlBa2hHQ0FCS0FJTUtBSUFJQUVvQWdoQkEzUnFLQUlBSVJJZ0NTZ0NHQ0VFSUFFZ0JUWUNEQ0FCSUFRMkFnZ2dHQ0FTSUFFb0Fnd29BZ0FnQVNnQ0NFRURkR29vQWdScU5nSVVJQWtvQXBBQklBa29BcHdCSUFrb0FoUVFHeG9NQVFzZ0NVRUFPZ0FUSUFrcEE2QUJJUUlnQ1NnQ25BRWhCQ0FKS0FJWUlRVWpBRUVRYXlJQklBbEIwQUJxSWdZMkFnd2dBU0FGTmdJSUlBRW9BZ3dvQWdBZ0FTZ0NDRUVEZEdvb0FnUWhCU0FKS0FJWUlRY2dBU0FHTmdJTUlBRWdCellDQ0NBQktBSU1LQUlBSUFFb0FnaEJBM1JxS0FJQUlRWWdDU2dDa0FFaEJ5QUpLQUtJQVNFSUlBbEI2QUJxRUJZaENpQUpRZUFBYWhBV0lRMGdDU2dDYkNFTEl3QkI4QUJySWdFa0FDQUJJQUEyQW13Z0FTQUROZ0pvSUFFZ0FqY0RZQ0FCSUFRMkFsd2dBU0FGTmdKWUlBRWdCallDVkNBQklBYzJBbEFnQVNBSlFSUnFOZ0pNSUFFZ0NEWUNTQ0FCSUFvMkFrUWdBU0FOTmdKQUlBRWdDellDUENBQktBSm9JUVFnQVNBQktBSllFQjgyQWpnZ0FVRTRhaEFXSUFFb0Fsd2dBU2dDVkdvZ0FTZ0NXQkFiR2lBQklBRW9BbGdnQkVFY2FoQVdJZ1VnQlNnQ0FDZ0NGQkVBQUdvMkFqUWdBU0FCS0FJMEVCODJBakFnQVNBRVFRaHFJQUZCNEFCcUVLWUJOZ0lvSUFSQkhHb1FGaUVFSUFGQkdHb2dBVUVvYWhCUlFRaHFFS2dCSUFGQk1Hb1FGaUVGSUFFb0FqUWhCaUFCS0FKQUlRY2dBU2dDUENFSUlBRkJPR29RRmlFS0lBRW9BbGdoRFNBQktBSkVFS0VCSVFzakFFRVFheUlNSUFFb0FrUTJBZ3dnRENnQ0RDa0RHS2NoRENBRUtBSUFLQUlNSVE0Z0FTQUJLUU1ZTndNSUlBRkJJR29pRHlBRUlBRkJDR29nQlNBQlFUUnFJQVlnQnlBSUlBb2dEU0FMSUF3Z0RoRU5BQ01BUVJCcklnUWdEellDREFKQUlBUW9BZ3dvQWdRRVFDQUJLQUpNUVFBMkFnQWpBRUVRYXlJRUlBQTJBZ3dnQkNBQlFTQnFOZ0lJSUFRb0Fnd2lCVUdrTXpZQ0FDQUZJQVFvQWdnb0FnUTJBZ1FNQVFzZ0FTZ0NTQ0VUSXdCQkVHc2lCQ0FCS0FKRU5nSU1JQk1nQVNnQ05DQUJLQUpVSUFRb0Fnd3BBeGluYW1wSkJFQWpBRUVRYXlJRUlBQTJBZ3dnQkVFQk5nSUlJQVFvQWd3aUJVR2tNellDQUNBRklBUW9BZ2cyQWdRTUFRc2dBU2dDVUNBQktBSmNJQUVvQWxRUUd4b2dBU2dDVUNBQktBSlVhaUVaSUFFb0FrUVFvUUVoRkNNQVFSQnJJZ1FnQVNnQ1JEWUNEQ0FaSUJRZ0JDZ0NEQ2tER0tjUUd4b2dBU2dDVUNFVkl3QkJFR3NpQkNBQktBSkVOZ0lNSUJVZ0JDZ0NEQ2tER0tkcUlBRW9BbFJxSUFGQk1Hb1FGaUFCS0FJMEVCc2FJd0JCRUdzaUJDQUJLQUpFTmdJTUlBRW9Ba3dnQVNnQ05DQUJLQUpVSUFRb0Fnd3BBeGluYW1vMkFnQWpBRUVRYXlJRUlBQTJBZ3dnQkVFQU5nSUlJQVFvQWd3aUJVR2tNellDQUNBRklBUW9BZ2cyQWdRTElBRkJBVFlDRkNNQVFSQnJJZ1FnQVVFZ2FqWUNEQ0FFS0FJTUdpQUJRVEJxRUJvZ0FVRTRhaEFhSUFGQjhBQnFKQUFqQUVFUWF5SUJJQUEyQWd3Q1FDQUJLQUlNS0FJRUJFQWdDU2dDakFGQkFEWUNBQ0FKUVFFNkFCTWdDVUVCTmdKa0RBRUxJQWxCQURZQ1pBc2dDUzBBRTBFQmNVVUVRQ01BUVJCcklnRWdBRFlDRENBQktBSU1HZ3NnQ1NnQ1pBMERDeUFKS0FJWUlRVWpBRUVRYXlJQklBbEIwQUJxSWdRMkFnd2dBU0FGTmdJSUlBa2hHaUFCS0FJTUtBSUFJQUVvQWdoQkEzUnFLQUlBSVJZZ0NTZ0NHQ0VGSUFFZ0JEWUNEQ0FCSUFVMkFnZ2dHaUFXSUFFb0Fnd29BZ0FnQVNnQ0NFRURkR29vQWdScUlBa29BcHdCYWpZQ25BRWdDU2dDR0NFRklBRWdCRFlDRENBQklBVTJBZ2dnQVNnQ0RDZ0NBQ0FCS0FJSVFRTjBhaWdDQUNFWElBa29BaGdoQlNBQklBUTJBZ3dnQVNBRk5nSUlJQmNnQVNnQ0RDZ0NBQ0FCS0FJSVFRTjBhaWdDQkdvaEFTQUpJQWtvQXBnQklBRnJOZ0tZQVNBSklBa29BaFFnQ1NnQ2tBRnFOZ0tRQVNBSklBa29Bb2dCSUFrb0FoUnJOZ0tJQVNBSktBS01BU0lCSUFrb0FoUWdBU2dDQUdvMkFnQWdDU0FKS0FJWVFRRnFOZ0lZREFFTEN5QUpJQWtwQTNoQ0FYdzNBd2dqQUVFZ2F5SUZKQUFnQlNBRFFTQnFOZ0ljSUFVZ0NVR2dBV28yQWhnZ0JTQUpRUWhxTmdJVUlBVkJDR29oRFNBRktBSWNJUVFnQlNnQ0dDRURJQVVvQWhRaEJpTUFRVUJxSWdFa0FDQUJJQVEyQWp3Z0FTQUROZ0k0SUFFZ0F6WUNOQ0FCSUFZMkFqQWdBU0FCS0FJOElnUVFIU0FCS0FJNEVINDJBaXdnQVNBRUVEUTJBaWdnQVVFQU9nQW5Ba0FnQVNnQ0tBUkFJQUVnQVNnQ0xDQUJLQUlvRUNVMkFod2dBU0FFSUFFb0Fod1FJeWdDQURZQ0lDQUJLQUlnQkVBZ0FTQUJLQUlnS0FJQU5nSWdBMEFnQVNnQ0lBUi9Jd0JCRUdzaUF5QUJLQUlnTmdJTUlBTW9BZ3dvQWdRZ0FTZ0NMRWNFZnlNQVFSQnJJZ01nQVNnQ0lEWUNEQ0FES0FJTUtBSUVJQUVvQWlnUUpTQUJLQUljUmdWQkFRc0ZRUUFMUVFGeEJFQWdCQkF3SUFFb0FpQVFGMEVJYWlBQktBSTRFSDFCQVhFTkJDQUJJQUVvQWlBb0FnQTJBaUFNQVFzTEN3c2dBU2dDTENFR0lBRW9BalFoQnlBQktBSXdJUWdqQUVFZ2F5SURKQUFnQXlBRU5nSWNJQU1nQmpZQ0dDQURJQWMyQWhRZ0F5QUlOZ0lRSUFNZ0F5Z0NIQkFZTmdJTUlBTkJBRG9BQ3lBREtBSU1FSW9DSVFZZ0F5QURLQUlNUVFBUVZDQUJRUkJxSWdnZ0JpQURFRk1nQXlnQ0RDRUhJQWdRRmtFSWFoQXNJUW9nQXlnQ0ZDRUxJQU1vQWhBaERDTUFRUkJySWdZa0FDQUdJQWMyQWd3Z0JpQUtOZ0lJSUFZZ0N6WUNCQ0FHSUF3MkFnQWdCaWdDRENFS0lBWW9BZ2doQ3lBR0tBSUVJUXdnQmlnQ0FDRU9Jd0JCRUdzaUJ5UUFJQWNnQ2pZQ0RDQUhJQXMyQWdnZ0J5QU1OZ0lFSUFjZ0RqWUNBQ0FIS0FJRUlRc2dCeWdDQUNFTUl3QkJFR3NpQ2lBSEtBSUlOZ0lNSUFvZ0N6WUNDQ0FLSUF3MkFnUWdDaWdDRENJTElBb29BZ2dwQXdBM0F3QWdDeUFLS0FJRUtRTUFOd01JSUFkQkVHb2tBQ0FHUVJCcUpBQWdDQkEvUVFFNkFBUWdBeWdDR0NFR0lBZ1FGaUFHTmdJRUlBZ1FGa0VBTmdJQUlBTkJBVG9BQ3lBRExRQUxRUUZ4UlFSQUlBZ1FoUUlMSUFOQklHb2tBQUpBSUFRUUhTZ0NBRUVCYXJNZ0FTZ0NLTE1nQkJBd0tnSUFsRjVGQkVBZ0FTZ0NLQTBCQ3lBQklBRW9BaWdpQTBFQmRDQURFS01CUVFGemNqWUNEQ0FCQW44Z0JCQWRLQUlBUVFGcXN5QUVFREFxQWdDVklSc2pBRUVRYXlJRElCczRBZ3dnQXlvQ0RJMGlHME1BQUlCUFhTQWJRd0FBQUFCZ2NRUkFJQnVwREFFTFFRQUxOZ0lJSUFRZ0FVRU1haUFCUVFocUVFb29BZ0FRaXdJZ0FTQUVFRFEyQWlnZ0FTQUJLQUlzSUFFb0FpZ1FKVFlDSEFzZ0FTQUVJQUVvQWh3UUl5Z0NBRFlDQkFKQUlBRW9BZ1JGQkVBZ0FTQUVRUWhxRUJjUUZ6WUNCQ0FCS0FJRUtBSUFJUU1nQVVFUWFoQVdJQU0yQWdBZ0FVRVFhaEFXRUJjaEF5QUJLQUlFSUFNMkFnQWdBU2dDQkNFRElBUWdBU2dDSEJBaklBTTJBZ0FnQVVFUWFoQVdLQUlBQkVBZ0FVRVFhaEFXRUJjaEF5QUJRUkJxRUJZb0FnQWhCaU1BUVJCcklnY2dCallDRENBRUlBY29BZ3dvQWdRZ0FTZ0NLQkFsRUNNZ0F6WUNBQXNNQVFzZ0FTZ0NCQ2dDQUNFRElBRkJFR29RRmlBRE5nSUFJQUZCRUdvUUZpRURJQUVvQWdRZ0F6WUNBQXNnQVNBQlFSQnFJZ01RUWpZQ0lDQUVFQjBpQkNBRUtBSUFRUUZxTmdJQUlBRkJBVG9BSnlBREVJVUNDeUFCS0FJZ0lRUWpBRUVRYXlJRElBRTJBZ3dnQXlBRU5nSUlJQU1vQWd3Z0F5Z0NDRFlDQUNBTklBRWdBVUVuYWhCaElBRkJRR3NrQUNBSklBMFFuQUlnQ1MwQUJFRUJjVVVFUUNBRktBSVVLUU1BSVFJZ0NSQlJJQUkzQXdnTElBVkJJR29rQUNNQVFSQnJJZ0VnQURZQ0RDQUJRUUEyQWdnZ0FTZ0NEQ0lBUWFRek5nSUFJQUFnQVNnQ0NEWUNCQ0FKUVFFMkFtUUxJQWxCMEFCcUVDY0xJQWxCNEFCcUVCb0xJQWxCNkFCcUVLVUJDeUFKUWJBQmFpUUFDODBCQVFOL0l3QkJJR3NpQXlRQUlBTWdBRFlDSENBRElBRTJBaGdnQXlBQ05nSVVJQU1vQWhnaEFpQURLQUlVSVFRakFFRVFheUlCSkFBZ0FTQUNOZ0lNSUFFZ0JEWUNDQ01BUVJCcklnVWdBU2dDRENJRVFRUnFOZ0lNSUFFb0FnZ2dCU2dDRENJRktBSUVJQVVvQWdCclN3UkFJQVJCQkdvZ0FTZ0NDQkNKQVFzZ0JDQUJLQUlJTmdJUUlBRkJFR29rQUNNQVFSQnJJZ0VnQWtFRWFpSUNOZ0lNSUFOQkNHb2lCQ0FCS0FJTUlnRW9BZ1FnQVNnQ0FHc2dBaEFaRUhzZ0FDQUVFSGdnQTBFZ2FpUUFDeW9CQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFb0Fnd2lBQkNuQVJvZ0FCQWlJQUZCRUdva0FBc2tBUUYvSXdCQkVHc2lBaUFBTmdJTUlBSWdBVFlDQ0NBQ0tBSU1JQUlvQWdnMkFrUUxpd2NCQ0g4akFFRVFheUlHSkFBZ0JpQUFOZ0lNSUFZZ0FUY0RBQ0FHS0FJTUVCWWhBQ0FHS1FNQUlRRWpBRUVRYXlJSEpBQWdCeUFBTmdJTUlBY2dBVGNEQUNBSEtBSU1RUWhxSVFBakFFRVFheUlJSkFBZ0NDQUFOZ0lNSUFnZ0J6WUNDQ0FJS0FJTUlRQWdDQ2dDQ0NFRUl3QkJNR3NpQXlRQUlBTWdBRFlDS0NBRElBUTJBaVFnQXlBREtBSW9JZ1VnQXlnQ0pCQ1VBallDSUNBRElBVVFnQUUyQWhnakFFRVFheUlBSUFOQklHbzJBZ3dnQUNBRFFSaHFOZ0lJQWtBZ0FDZ0NEQ2dDQUNBQUtBSUlLQUlBUmdSQUlBTkJBRFlDTEF3QkN5TUFJZ0pCRUdzaUFDQURRUkJxTmdJTUlBQWdBMEVnYWpZQ0NDQUFLQUlNSUFBb0FnZ29BZ0EyQWdBZ0F5Z0NFQ0VBSUFKQk1Hc2lCQ1FBSUFRZ0FEWUNJQ0FFSUFVMkFod2dCQ2dDSENFRklBUWdCQ2dDSURZQ0dDQUVLQUlZSVFJakFFRVFheUlBSUFSQktHb2lDVFlDRENBQUlBSTJBZ2dnQUNnQ0RDQUFLQUlJTmdJQUlBQWdDVFlDRENBQUtBSU1JZ0FnQUNnQ0FDZ0NBRFlDQUNBRUlBUW9BaUEyQWdBZ0JDZ0NBQ0VDSXdCQk1Hc2lBQ1FBSUFBZ0FqWUNLQ0FBSUFVMkFpUWdBQ2dDSkNFRklBQWdBQ2dDS0RZQ0lDQUFJQVVRTkRZQ0hDTUFRUkJySWdJZ0FDZ0NJRFlDRENBQUlBSW9BZ3dvQWdRZ0FDZ0NIQkFsTmdJWUlBQWdCU0FBS0FJWUVDTW9BZ0EyQWhRRFFDQUFLQUlVS0FJQUlBQW9BaUJIQkVBZ0FDQUFLQUlVS0FJQU5nSVVEQUVMQ3dKQUlBQW9BaFFnQlVFSWFoQVhFQmRIQkVBakFFRVFheUlDSUFBb0FoUTJBZ3dnQWlnQ0RDZ0NCQ0FBS0FJY0VDVWdBQ2dDR0VZTkFRc0NRQ0FBS0FJZ0tBSUFCRUFqQUVFUWF5SUNJQUFvQWlBb0FnQTJBZ3dnQWlnQ0RDZ0NCQ0FBS0FJY0VDVWdBQ2dDR0VZTkFRc2dCU0FBS0FJWUVDTkJBRFlDQUFzTElBQW9BaUFvQWdBRVFDTUFRUkJySWdJZ0FDZ0NJQ2dDQURZQ0RDQUFJQUlvQWd3b0FnUWdBQ2dDSEJBbE5nSVFJQUFvQWhBZ0FDZ0NHRWNFUUNBQUtBSVVJUUlnQlNBQUtBSVFFQ01nQWpZQ0FBc0xJQUFvQWhRZ0FDZ0NJQ2dDQURZQ0FDQUFLQUlnUVFBMkFnQWdCUkFkSWdJZ0FpZ0NBRUVCYXpZQ0FDQUFLQUlnRUJjaEFpQUFRUWhxSWdrZ0JSQVlRUUVRVkNBRVFRaHFJZ1VnQWlBSkVGTWdBRUV3YWlRQUlBVVFvZ0VnQkNnQ0tDRUFJQVJCTUdva0FDQURJQUEyQWdnZ0EwRUJOZ0lzQ3lBREtBSXNJUUFnQTBFd2FpUUFJQWhCRUdva0FDQUhRUkJxSkFBZ0JrRVFhaVFBSUFCQkFVWUxVd0VEZnlNQVFSQnJJZ0VrQUNBQklBQTJBZ3dnQVVFSWFpSUNJQUVvQWd3aUFCQ0JBUkNpQWlBQVFReHFFSjhDSUFJaEF5TUFRUkJySWdJZ0FEWUNEQ0FESUFJb0FneEJBUkNoQWlBQlFSQnFKQUFMSndFQmZ5TUFRUkJySWdFa0FDQUJJQUEyQWd3Z0FTZ0NEQkNCQVJDSEFSb2dBVUVRYWlRQUN5b0JBWDhqQUVFUWF5SUJKQUFnQVNBQU5nSU1JQUVvQWd3aUFCQ2dBaG9nQUJBaUlBRkJFR29rQUFzWUFRRi9Jd0JCRUdzaUFTQUFOZ0lNSUFFb0Fnd29BandMR0FFQmZ5TUFRUkJySWdFZ0FEWUNEQ0FCS0FJTUtBSTRDeWtCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lNSUFFb0FneEJOR29RRmlFQUlBRkJFR29rQUNBQUN4Z0JBWDhqQUVFUWF5SUJJQUEyQWd3Z0FTZ0NEQ2dDTUFzcEFRRi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJLQUlNUVN4cUVCWWhBQ0FCUVJCcUpBQWdBQXZ3RndJUmZ3RjlJd0JCRUdzaURTUUFJQTBnQURZQ0RDQU5JQUUzQXdBZ0RTZ0NEQ0lBRUJZaEFpQU5LUU1BSVFFZ0FFRUVhaEFaSVFNZ0FDZ0NFQ0VBSXdCQk1Hc2lDaVFBSUFvZ0FqWUNMQ0FLSUFFM0F5QWdDaUFETmdJY0lBb2dBRFlDR0NBS0tBSWNJUUFnQ2lnQ0dDRUNJQW9vQWl3aUR5Z0NCQ0VESXdCQklHc2lDU1FBSUFrZ0FEWUNIQ0FKSUFJMkFoZ2dDU0FETmdJVUl3QkJFR3NpQmlRQUlBWWdDVUVjYWpZQ0RDQUdJQWxCR0dvMkFnZ2dCaUFKUVJScU5nSUVJQVlRVmhvZ0JpZ0NEQ0VBSUFZb0FnZ2hBaUFHS0FJRUlRTWpBRUZBYWlJSEpBQWdCeUFHTmdJOElBY2dBRFlDT0NBSElBSTJBalFnQnlBRE5nSXdJd0JCRUdzaUFDUUFJQUFnQjBFZ2FpSU1OZ0lFSUFCQkFUWUNBQ0FBS0FJRUlnSWdBRUVJYWhDaUFpQUNJQUFvQWdBMkFnUWdBaUVTSUFJb0FnUWhCQ01BUVJCcklnTWtBQ0FESUFJMkFnd2dBeUFFTmdJSUlBTW9BZ3doQkNBREtBSUlJUVVqQUVFUWF5SUNKQUFnQWlBRU5nSU1JQUlnQlRZQ0NDQUNLQUlJSVJFZ0FpZ0NEQ0VGSXdCQkVHc2lCQ1FBSUFRZ0JUWUNEQ01BUVJCcklBUW9BZ3cyQWd3Z0JFRVFhaVFBSUJGQjE2SDVHa3NFUUJBNUFBc2dBaWdDQ0VITUFHeEJCQkJCSVFRZ0FrRVFhaVFBSUFOQkVHb2tBQ0FTSUFRMkFnZ2dBRUVRYWlRQUl3QWlBRUVRYXlJQ0lBdzJBZ3dnQWlnQ0RDZ0NDQ0VDSUFjb0FqZ2hBeUFIS0FJMElRUWdCeWdDTUNFSUlBQkJJR3NpQlNRQUlBVWdBallDRkNBRklBTTJBaEFnQlNBRU5nSU1JQVVnQ0RZQ0NDQUZLQUlVSVFJakFFRVFheUlBSkFBZ0FDQUNOZ0lNSUFCQkFEWUNDQ0FBS0FJSUlRZ2pBRUVRYXlJRElBQW9BZ3dpQkRZQ0RDQURJQWcyQWdnZ0F5Z0NEQ0lJUWRqZ0FEWUNBQ0FJSUFNb0FnZzJBZ1FnQkVHUTRRQTJBZ0FnQkNBQUtBSUlOZ0lJSUFCQkVHb2tBQ0FDUWR3d05nSUFJd0JCRUdzaUFDUUFJQUFnQWtFTWFqWUNEQ0FBSUFWQkdHbzJBZ2dnQUNnQ0RCQ3JBUm9nQUVFUWFpUUFJQUlRZ1FFaEFpQUZLQUlRS0FJQUlRTWdCU2dDRENnQ0FDRUVJQVVvQWdnb0FnQWhDQ01BUVVCcUlnQWtBQ0FBSUFJMkFqZ2dBQ0FETmdJMElBQWdCRFlDTUNBQUlBZzJBaXdnQUNBQUtBSTRJZ0kyQWp3Z0FDZ0NOQ0VESUFBb0FqQWhDQ0FBS0FJc0lRc2pBRUVnYXlJRUpBQWdCQ0FDTmdJY0lBUWdBellDR0NBRUlBZzJBaFFnQkNBTE5nSVFJQVFvQWh3aUEwSHNMellDQUNBRFFRUnFJZ2dRS2lBRElBUW9BaFEyQWdnZ0EwRU1haEFxSUFOQkFEWUNFQ0FEUVJScUVDb2dBMEVBTmdJWUlBTkJIR29RS2lBRFFRQTJBaUFnQTBFa2FoQXFJQU5CQURZQ0tDQURRU3hxRUNvZ0EwRUFOZ0l3SUFOQk5Hb1FLaUFEUVFBMkFqZ2dBMEVBTmdJOElBUWdCQ2dDRkJBZk5nSUlJQWdnQkVFSWFpSURFRUFnQXhBYUlBZ1FGaUFFS0FJWUlBUW9BaFFRR3hvZ0JFRWdhaVFBSUFKQmxDbzJBZ0FnQWlnQ1BFVUVRQ0FDUVJBMkFoZ2dBa0VNTmdJZ0lBSkJFRFlDTUNBQ1FTQTJBamdnQWtIQUFEWUNFQ0FBSUFJb0FoQVFIellDS0NBQ1FReHFJQUJCS0dvaUF4QkFJQU1RR2lBQUlBSW9BaGdRSHpZQ0lDQUNRUlJxSUFCQklHb2lBeEJBSUFNUUdpQUFJQUlvQWlBUUh6WUNHQ0FDUVJ4cUlBQkJHR29pQXhCQUlBTVFHaUFDUWNBQU5nSW9JQUFnQWlnQ0tCQWZOZ0lRSUFKQkpHb2dBRUVRYWlJREVFQWdBeEFhSUFBZ0FpZ0NNQkFmTmdJSUlBSkJMR29nQUVFSWFpSURFRUFnQXhBYUlBQWdBaWdDT0JBZk5nSUFJQUpCTkdvZ0FCQkFJQUFRR2lBQ0VMY0JHZ3NnQUNnQ1BCb2dBRUZBYXlRQUlBVkJJR29rQUNNQVFSQnJJZ0FnRERZQ0RDQUFJQUFvQWd3aUFpZ0NDRFlDQ0NBQ1FRQTJBZ2dnQnlBQUtBSUlOZ0lNSUFjb0Fnd1FnUUVoQWlBSEtBSU1JUU1qQUVFZ2F5SUFKQUFnQUNBQ05nSWNJQUFnQXpZQ0dDQUFRUUE2QUJjakFFRVFheUlESUFsQkNHb2lBallDRENBREtBSU1JZ05CQURZQ0FDQURRUUEyQWdRZ0FpQUFLQUljTmdJQUlBSWdBQ2dDR0RZQ0JDQUFJQUlvQWdBaUF6WUNCQ0FBSUFNMkFnQWpBRUVRYXlBQ05nSU1JQUJCQVRvQUZ5QUFMUUFYUVFGeFJRUkFJQUlRT0FzZ0FFRWdhaVFBSXdCQkVHc2lBQ1FBSUFBZ0REWUNDQ0FBSUFBb0FnZ2lBellDRENBREtBSUlCRUFnQXlBREtBSUlJQU1vQWdRUW9RSUxJQUFvQWd3YUlBQkJFR29rQUNBSFFVQnJKQUFnQmtFUWFpUUFJQXBCRUdvaUNDQUNFSzhCSUFJUU9DQUpRU0JxSkFBZ0NrRUlhaUVNSXdCQklHc2lCeVFBSUFjZ0QwRUlhallDSENBSElBcEJJR28yQWhnZ0J5QUlOZ0lVSUFkQkNHb2hEeUFIS0FJY0lRTWdCeWdDR0NFQ0lBY29BaFFoQkNNQVFVQnFJZ0FrQUNBQUlBTTJBandnQUNBQ05nSTRJQUFnQWpZQ05DQUFJQVEyQWpBZ0FDQUFLQUk4SWdNUUhTQUFLQUk0RUg0MkFpd2dBQ0FERURRMkFpZ2dBRUVBT2dBbkFrQWdBQ2dDS0FSQUlBQWdBQ2dDTENBQUtBSW9FQ1UyQWh3Z0FDQURJQUFvQWh3UUl5Z0NBRFlDSUNBQUtBSWdCRUFnQUNBQUtBSWdLQUlBTmdJZ0EwQWdBQ2dDSUFSL0l3QkJFR3NpQWlBQUtBSWdOZ0lNSUFJb0Fnd29BZ1FnQUNnQ0xFY0VmeU1BUVJCcklnSWdBQ2dDSURZQ0RDQUNLQUlNS0FJRUlBQW9BaWdRSlNBQUtBSWNSZ1ZCQVFzRlFRQUxRUUZ4QkVBZ0F4QXdJQUFvQWlBUUYwRUlhaUFBS0FJNEVIMUJBWEVOQkNBQUlBQW9BaUFvQWdBMkFpQU1BUXNMQ3dzZ0FDZ0NMQ0VFSUFBb0FqUWhCU0FBS0FJd0lRWWpBRUVnYXlJQ0pBQWdBaUFETmdJY0lBSWdCRFlDR0NBQ0lBVTJBaFFnQWlBR05nSVFJQUlnQWlnQ0hCQVlOZ0lNSUFKQkFEb0FDeUFDS0FJTUVJb0NJUVFnQWlBQ0tBSU1RUUFRVkNBQVFSQnFJZ2tnQkNBQ0VGTWdBaWdDRENFRklBa1FGa0VJYWhBc0lRWWdBaWdDRkNFTElBSW9BaEFoRGlNQVFSQnJJZ1FrQUNBRUlBVTJBZ3dnQkNBR05nSUlJQVFnQ3pZQ0JDQUVJQTQyQWdBZ0JDZ0NEQ0VHSUFRb0FnZ2hDeUFFS0FJRUlRNGdCQ2dDQUNFUUl3QkJFR3NpQlNRQUlBVWdCallDRENBRklBczJBZ2dnQlNBT05nSUVJQVVnRURZQ0FDQUZLQUlJSVFzZ0JTZ0NCQ0VPSUFVb0FnQWhFQ01BUVJCcklnWWtBQ0FHSUFzMkFnd2dCaUFPTmdJSUlBWWdFRFlDQkNBR0tBSU1JZ3NnQmlnQ0NDa0RBRGNEQUNBTFFRaHFJQVlvQWdRUXJ3RWdCa0VRYWlRQUlBVkJFR29rQUNBRVFSQnFKQUFnQ1JBL1FRRTZBQVFnQWlnQ0dDRUVJQWtRRmlBRU5nSUVJQWtRRmtFQU5nSUFJQUpCQVRvQUN5QUNMUUFMUVFGeFJRUkFJQWtRb2dFTElBSkJJR29rQUFKQUlBTVFIU2dDQUVFQmFyTWdBQ2dDS0xNZ0F4QXdLZ0lBbEY1RkJFQWdBQ2dDS0EwQkN5QUFJQUFvQWlnaUFrRUJkQ0FDRUtNQlFRRnpjallDRENBQUFuOGdBeEFkS0FJQVFRRnFzeUFERURBcUFnQ1ZJUk1qQUVFUWF5SUNJQk00QWd3Z0Fpb0NESTBpRTBNQUFJQlBYU0FUUXdBQUFBQmdjUVJBSUJPcERBRUxRUUFMTmdJSUlBTWdBRUVNYWlBQVFRaHFFRW9vQWdBUWl3SWdBQ0FERURRMkFpZ2dBQ0FBS0FJc0lBQW9BaWdRSlRZQ0hBc2dBQ0FESUFBb0Fod1FJeWdDQURZQ0JBSkFJQUFvQWdSRkJFQWdBQ0FEUVFocUVCY1FGellDQkNBQUtBSUVLQUlBSVFJZ0FFRVFhaEFXSUFJMkFnQWdBRUVRYWhBV0VCY2hBaUFBS0FJRUlBSTJBZ0FnQUNnQ0JDRUNJQU1nQUNnQ0hCQWpJQUkyQWdBZ0FFRVFhaEFXS0FJQUJFQWdBRUVRYWhBV0VCY2hBaUFBUVJCcUVCWW9BZ0FoQkNNQVFSQnJJZ1VnQkRZQ0RDQURJQVVvQWd3b0FnUWdBQ2dDS0JBbEVDTWdBallDQUFzTUFRc2dBQ2dDQkNnQ0FDRUNJQUJCRUdvUUZpQUNOZ0lBSUFCQkVHb1FGaUVDSUFBb0FnUWdBallDQUFzZ0FDQUFRUkJxSWdJUVFqWUNJQ0FERUIwaUF5QURLQUlBUVFGcU5nSUFJQUJCQVRvQUp5QUNFS0lCQ3lBQUtBSWdJUU1qQUVFUWF5SUNJQUEyQWd3Z0FpQUROZ0lJSUFJb0Fnd2dBaWdDQ0RZQ0FDQVBJQUFnQUVFbmFoQmhJQUJCUUdza0FDQU1JQThRbkFJZ0RDMEFCRUVCY1VVRVFDQUhLQUlVSVFJZ0RCQlJRUWhxSVFNakFFRVFheUlBSkFBZ0FDQUROZ0lNSUFBZ0FqWUNDQ0FBS0FJTUlRTWdBQ0FBS0FJSUVLOEJJd0JCRUdzaUFpUUFJQUlnQURZQ0RDQUNJQU0yQWdnZ0FpZ0NEQ0lESUFJb0FnZ1FMU0FEUVFScUlBSW9BZ2hCQkdvUUxTQUNRUkJxSkFBZ0FCQTRJQUJCRUdva0FBc2dCMEVnYWlRQUlBZ1FPQ0FLUVRCcUpBQWdEVUVRYWlRQVFRRUxHQUVCZnlNQVFSQnJJZ0VnQURZQ0RDQUJLQUlNS0FJZ0N5a0JBWDhqQUVFUWF5SUJKQUFnQVNBQU5nSU1JQUVvQWd4QkhHb1FGaUVBSUFGQkVHb2tBQ0FBQ3hnQkFYOGpBRUVRYXlJQklBQTJBZ3dnQVNnQ0RDZ0NHQXNwQVFGL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQktBSU1RUlJxRUJZaEFDQUJRUkJxSkFBZ0FBc3BBUUYvSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCS0FJTVFRUnFFQlloQUNBQlFSQnFKQUFnQUF0aEFRTi9Jd0JCRUdzaUF5UUFJQU1nQURZQ0RDTUFRUkJySWdBa0FDQUFRY1RwQURZQ0RDQUFLQUlNSVFFakFFRVFheUlDSkFBZ0FpQUJOZ0lNSUFJb0Fnd2lBU0FCRUlVQkVLd0JJQUpCRUdva0FDQUFRUkJxSkFBZ0EwRVFhaVFBQzJFQkEzOGpBRUVRYXlJREpBQWdBeUFBTmdJTUl3QkJFR3NpQUNRQUlBQkJ1T2tBTmdJTUlBQW9BZ3doQVNNQVFSQnJJZ0lrQUNBQ0lBRTJBZ3dnQWlnQ0RDSUJJQUVRaFFFUXJRRWdBa0VRYWlRQUlBQkJFR29rQUNBRFFSQnFKQUFMaWdJQkJYOGpBRUVRYXlJRUpBQWdCQ0FBTmdJTUlBUWdBVFlDQ0NBRUtBSUlRVFJxSVFFakFFRVFheUlDSkFBZ0FpQUFOZ0lNSUFJZ0FUWUNDQ0FDS0FJTUlRVWdBaWdDQ0NFQkl3QkJJR3NpQUNRQUlBQWdBallDRkNBQUlBRTJBaEFqQUVFUWF5SUJJQUFvQWhRMkFnd2dBQ0FCS0FJTU5nSU1JQUFvQWhBaEF5QUFJQUJCREdvMkFod2dBQ0FETmdJWUlBQW9BaHdoQXlBQklBQW9BaGdvQWdBMkFnd2dBU2dDRENFR0lBRWdBellDRENBQklBWTJBZ2dnQVNnQ0RDZ0NBQ0FCS0FJSU5nSUFJQUVvQWd3aUF5QURLQUlBUVFocU5nSUFJQUVnQUNnQ0hEWUNEQ0FBUVNCcUpBQWdCVUdjSnlBQ0VCY1FDRFlDQUNBQ1FSQnFKQUFnQkVFUWFpUUFDeGdCQVg4akFFRVFheUlCSUFBMkFnd2dBU2dDRENnQ0JBc1lBUUYvSXdCQkVHc2lBU0FBTmdJTUlBRW9BZ3dvQWdnTDB4RUJCbjhqQUVHUUJHc2lBQ1FBSXdCQkVHc2lBU1FBSUFFZ0FFRzRBV29pQWpZQ0RDQUJRZmtQTmdJSUlBRW9BZ3dhUWV3bElBRW9BZ2hCQkVFQkVBWWdBVUVRYWlRQUlBSkIvaFpCQUJDQ0FrR0lGMEVCRUlJQ0dpTUFRUkJySWdFa0FDQUJJQUJCc0FGcUlnSTJBZ3dnQVVHbUR6WUNDQ0FCS0FJTUdrRzBKaUFCS0FJSVFRUkJBUkFHSUFGQkVHb2tBQ01BUVJCcklnRWtBQ0FCSUFJMkFnd2dBVUhESURZQ0NDQUJRUUEyQWdRZ0FTZ0NEQnBCdENZZ0FTZ0NDQ0FCS0FJRUVBVWdBVUVRYWlRQUl3QkJFR3NpQVNRQUlBRWdBRUdvQVdvaUFqWUNEQ0FCUWFrS05nSUlJQUVvQWd3YVFmd21JQUVvQWdoQkJFRUJFQVlnQVVFUWFpUUFJQUpCNlJsQkF4QnRRZkVlUVFFUWJVSDVGa0VBRUcxQm9pQkJBaEJ0R2lNQVFSQnJJZ0VrQUNBQklBQkJvQUZxSWdJMkFnd2dBVUg1Q2pZQ0NDQUJLQUlNR2tHY0p5QUJLQUlJUVFSQkFSQUdJQUZCRUdva0FDQUNRZTBZUVFBUU9rSFZGa0VCRURwQjV4WkJBaEE2UWRJWlFRTVFPa0dBR2tFRUVEcEI3aGxCQlJBNlFaSVhRUVlRT2tHcUYwRUhFRG9hSUFBZ0FFR1lBV29pQVRZQzBBRWdBRUdFRURZQ3pBRWdBRUVDTmdMSUFTQUFRUUEyQXNRQklBQkJBRFlDd0FFZ0FFRUROZ0s4QVNBQUlBQW9Bc2dCTmdMNEF5QUFLQUxJQVNFQ0lBQWdBQ2dDeEFFMkFvQUVJQUFvQXNRQklRTWdBQ0FBS0FMQUFUWUMvQU1nQUNnQ3dBRWhCQ0FBS0FMTUFTRUZJQUFnQUNnQ3ZBRTJBb1FFUWJRblFjd25RZXduUVFCQi9DY2dBa0gvSnlBRFFmOG5JQVFnQlVHQktDQUFLQUs4QVJBVUlBQWdBVFlDMUFFZ0FDQUFLQUxVQVRZQ2pBUWdBRUVFTmdLSUJDQUFLQUtNQkNFRElBQW9Bb2dFSVFJakFFRWdheUlCSkFBZ0FTQUNOZ0lZSUFGQkRqWUNEQ01BUVJCcklBRkJFR29pQkRZQ0RDTUFRUkJySWdJa0FDQUNJQVEyQWd3Z0FrRVFhaVFBSUFFZ0FTZ0NERFlDSEVHMEowRURRWVFvUVpBb0lBRW9BZ3dnQVNnQ0dCQU9JQUZCSUdva0FDQUFRUUEyQXBRQklBQkJCVFlDa0FFZ0FDQUFLUU9RQVRjRDJBRWdBQ2dDMkFFaEFTQUFLQUxjQVNFQ0lBQWdBellDOUFFZ0FFR0FERFlDOEFFZ0FDQUNOZ0xzQVNBQUlBRTJBdWdCSUFBb0F2UUJJUU1nQUNnQzhBRWhBaUFBS0FMb0FTRUJJQUFnQUNnQzdBRTJBdVFCSUFBZ0FUWUM0QUVnQUNBQUtRUGdBVGNEUUNNQVFTQnJJZ0VrQUNBQVFVQnJJZ1FvQWdBaEJTQUVLQUlFSVFRZ0FTQUNOZ0lZSUFFZ0JEWUNGQ0FCSUFVMkFoQWdBVUVQTmdJTUlBRW9BaGdoQkNNQVFSQnJJQUZCQ0dvaUJUWUNEQ01BUVJCcklnSWtBQ0FDSUFVMkFnd2dBa0VRYWlRQUlBRWdBU2dDRERZQ0hFRzBKeUFFUVFOQm1DaEJrQ2dnQVNnQ0RDQUJRUkJxRUZWQkFCQUVJQUZCSUdva0FDQUFRUUEyQW93QklBQkJCallDaUFFZ0FDQUFLUU9JQVRjRHVBSWdBQ2dDdUFJaEFTQUFLQUs4QWlFQ0lBQWdBellDMUFJZ0FFR09EallDMEFJZ0FDQUNOZ0xNQWlBQUlBRTJBc2dDSUFBb0F0UUNJUUVnQUNnQzBBSWhBaUFBS0FMSUFpRURJQUFnQUNnQ3pBSTJBc1FDSUFBZ0F6WUN3QUlnQUNBQUtRUEFBamNET0NBQ0lBQkJPR29Rc3dFZ0FFRUFOZ0tFQVNBQVFRYzJBb0FCSUFBZ0FDa0RnQUUzQTVnQ0lBQW9BcGdDSVFJZ0FDZ0NuQUloQXlBQUlBRTJBclFDSUFCQjlnbzJBckFDSUFBZ0F6WUNyQUlnQUNBQ05nS29BaUFBS0FLMEFpRUJJQUFvQXJBQ0lRSWdBQ2dDcUFJaEF5QUFJQUFvQXF3Q05nS2tBaUFBSUFNMkFxQUNJQUFnQUNrRG9BSTNBekFnQWlBQVFUQnFFTE1CSUFCQkFEWUNmQ0FBUVFnMkFuZ2dBQ0FBS1FONE53UDRBaUFBS0FMNEFpRUNJQUFvQXZ3Q0lRTWdBQ0FCTmdLVUF5QUFRYXNJTmdLUUF5QUFJQU0yQW93RElBQWdBallDaUFNZ0FDZ0NsQU1oQVNBQUtBS1FBeUVDSUFBb0FvZ0RJUU1nQUNBQUtBS01BellDaEFNZ0FDQUROZ0tBQXlBQUlBQXBBNEFETndNb0lBSWdBRUVvYWhDakFpQUFRUUEyQW5RZ0FFRUpOZ0p3SUFBZ0FDa0RjRGNEMkFJZ0FDZ0MyQUloQWlBQUtBTGNBaUVESUFBZ0FUWUM5QUlnQUVHZENEWUM4QUlnQUNBRE5nTHNBaUFBSUFJMkF1Z0NJQUFvQXZRQ0lRRWdBQ2dDOEFJaEFpQUFLQUxvQWlFRElBQWdBQ2dDN0FJMkF1UUNJQUFnQXpZQzRBSWdBQ0FBS1FQZ0FqY0RJQ0FDSUFCQklHb1Fvd0lnQUVFQU5nSnNJQUJCQ2pZQ2FDQUFJQUFwQTJnM0E1Z0RJQUFvQXBnRElRSWdBQ2dDbkFNaEF5QUFJQUUyQXJRRElBQkJwZ28yQXJBRElBQWdBellDckFNZ0FDQUNOZ0tvQXlBQUtBSzBBeUVESUFBb0FyQURJUUlnQUNnQ3FBTWhBU0FBSUFBb0Fxd0ROZ0trQXlBQUlBRTJBcUFESUFBZ0FDa0RvQU0zQXhnakFFRWdheUlCSkFBZ0FDZ0NHQ0VFSUFBb0Fod2hCU0FCSUFJMkFoZ2dBU0FGTmdJVUlBRWdCRFlDRUNBQlFSSTJBZ3dnQVNnQ0dDRUVJd0JCRUdzZ0FVRUlhaUlGTmdJTUl3QkJFR3NpQWlRQUlBSWdCVFlDRENBQ1FSQnFKQUFnQVNBQktBSU1OZ0ljUWJRbklBUkJBMEdBS1VHTUtTQUJLQUlNSUFGQkVHb1FWVUVBRUFRZ0FVRWdhaVFBSUFCQkFEWUNaQ0FBUVFzMkFtQWdBQ0FBS1FOZ053UFlBeUFBS0FMWUF5RUJJQUFvQXR3RElRSWdBQ0FETmdMMEF5QUFRYWtMTmdMd0F5QUFJQUkyQXV3RElBQWdBVFlDNkFNZ0FDZ0M5QU1oQVNBQUtBTHdBeUVDSUFBb0F1Z0RJUU1nQUNBQUtBTHNBellDNUFNZ0FDQUROZ0xnQXlBQUlBQXBBK0FETndNUUlBSWdBRUVRYWhDU0FpQUFRUUEyQWx3Z0FFRU1OZ0pZSUFBZ0FDa0RXRGNEdUFNZ0FDZ0N1QU1oQWlBQUtBSzhBeUVESUFBZ0FUWUMxQU1nQUVHZ0VEWUMwQU1nQUNBRE5nTE1BeUFBSUFJMkFzZ0RJQUFvQXRRRElRRWdBQ2dDMEFNaEFpQUFLQUxJQXlFRElBQWdBQ2dDekFNMkFzUURJQUFnQXpZQ3dBTWdBQ0FBS1FQQUF6Y0RDQ0FDSUFCQkNHb1FrZ0lnQUVFQU5nSlVJQUJCRFRZQ1VDQUFJQUFwQTFBM0EvZ0JJQUFvQXZnQklRSWdBQ2dDL0FFaEF5QUFJQUUyQXBRQ0lBQkJrUkEyQXBBQ0lBQWdBellDakFJZ0FDQUNOZ0tJQWlBQUtBS1FBaUVCSUFBb0FvZ0NJUUlnQUNBQUtBS01BallDaEFJZ0FDQUNOZ0tBQWlBQUlBQXBBNEFDTndOSUlBRWdBRUhJQUdvUXN3RWdBRUdRQkdva0FBc0w4RjBNQUVHQUNBditJbUZsYzE5cGJtbDBYMnRsZVFCaFpYTmZZM1J5WDNObGRGOXJaWGtBY21WdGIzWmxRbUZ6WlV0bGVRQmhaR1JQY2xWd1pHRjBaVUpoYzJWTFpYa0FSVlpRWDAxRVgwTlVXRjlqYjNCNVgyVjRBRVZXVUY5RWFXZGxjM1JKYm1sMFgyVjRBRVZXVUY5RGFYQm9aWEpKYm1sMFgyVjRBRWhOUVVOZlNXNXBkRjlsZUFCRlZsQmZSR2xuWlhOMFJtbHVZV3hmWlhnQVJWWlFYMFZ1WTNKNWNIUkdhVzVoYkY5bGVBQkZWbEJmUkdWamNubHdkRVpwYm1Gc1gyVjRBRjlmYm1WNGRGOXdjbWx0WlNCdmRtVnlabXh2ZHdCMWJuTnBaMjVsWkNCemFHOXlkQUJoWlhOZmJtOW9kMTlqWW1OZlpXNWpjbmx3ZEFCRFVsbFFWRTlmWTNSeU1USTRYMlZ1WTNKNWNIUUFkVzV6YVdkdVpXUWdhVzUwQUhOb1lUSTFObDlwYm1sMEFITmxkRk5yYVhCUFptWnpaWFFBWVdWelgyNXZhSGRmWW1GMFkyaGZjMlYwQUdGbGMxOXViMmgzWDJKaGRHTm9YMmRsZEFCSVMwUkdYMlY0ZEhKaFkzUUFabXh2WVhRQWRXbHVkRFkwWDNRQVoyVjBVM1JoZEhWekFHeG9MVDV1ZFcxZlluVmphMlYwY3lBK1BTQnJUV2x1VG5WdFFuVmphMlYwY3dCMlpXTjBiM0lBWjJWMFMyVjVRblZtWm1WeUFHSnNiMk5yWDNKbGJXRnBibVJsY2dCMWJuTnBaMjVsWkNCamFHRnlBRVZXVUY5TlJGOURWRmhmWTJ4bFlXNTFjQUJyWlhrZ0ppWWdaV052ZFc1MFgySjFaaUFtSmlCdWRXMEFjblZ1UVd4bmIzSnBkR2h0QUhOb1lUSTFObDltYVc1aGJGOXBiWEJzQUdKdmIyd0FaVzF6WTNKcGNIUmxiam82ZG1Gc0FITm9ZVEkxTmw5bWFXNWhiQUJqY25sd2RHOWZiV1F6TWw5bWFXNWhiQUJoWlhOZmJtOW9kMTkwYjE5aVlYUmphQUJoWlhOZmJtOW9kMTltY205dFgySmhkR05vQUdWNGRHVnlibUZzTDJKdmNtbHVaM056YkM5emNtTXZZM0o1Y0hSdkwyWnBjSE50YjJSMWJHVXZiV1EwTHk0dUwyUnBaMlZ6ZEM5dFpETXlYMk52YlcxdmJpNW9BR1Y0ZEdWeWJtRnNMMlZ0YzJOeWFYQjBaVzVmWW1sdVgyeHBiblY0TDJWdGMyTnlhWEIwWlc0dlkyRmphR1V2YzNsemNtOXZkQzlwYm1Oc2RXUmxMMlZ0YzJOeWFYQjBaVzR2ZG1Gc0xtZ0FaMlYwUkdWaWRXY0FkVzV6YVdkdVpXUWdiRzl1WndCemRHUTZPbmR6ZEhKcGJtY0FjM1JrT2pwemRISnBibWNBYzNSa09qcDFNVFp6ZEhKcGJtY0FjM1JrT2pwMU16SnpkSEpwYm1jQVptOTFibVFnUFQwZ1luVm1BR3hvWDIxaGVXSmxYM0psYzJsNlpRQkZWbEJmVFVSZmMybDZaU2h0WkNrZ1BEMGdZbXh2WTJ0ZmMybDZaUUJ1SUR3Z1lteHZZMnRmYzJsNlpRQkRhWEJvWlhKVGRXbDBaUUJ6YUdFeU5UWmZkWEJrWVhSbEFFVldVRjlGYm1OeWVYQjBWWEJrWVhSbEFFVldVRjlFWldOeWVYQjBWWEJrWVhSbEFIZHlhWFJsUjJWdVpYSnBZMWRwY21WVWVYQmxBRVZ1WjJsdVpWUjVjR1VBVTBaeVlXMWxSVzVuYVc1bEFHZGxkRTkxZEhCMWRFWnlZVzFsQUdkbGRFbHVjSFYwUm5KaGJXVUFaRzkxWW14bEFFTlNXVkJVVDE5Q1ZVWkdSVkpmWm5KbFpRQjJiMmxrQUU5UVJVNVRVMHhmYldGc2JHOWpBR1Y0ZEdWeWJtRnNMMkp2Y21sdVozTnpiQzl6Y21NdlkzSjVjSFJ2TDJacGNITnRiMlIxYkdVdllXVnpMMkZsYzE5dWIyaDNMbU1BWlhoMFpYSnVZV3d2WW05eWFXNW5jM05zTDNOeVl5OWpjbmx3ZEc4dlptbHdjMjF2WkhWc1pTOWthV2RsYzNRdlpHbG5aWE4wTG1NQVpYaDBaWEp1WVd3dlltOXlhVzVuYzNOc0wzTnlZeTlqY25sd2RHOHZabWx3YzIxdlpIVnNaUzlrYVdkbGMzUXZaR2xuWlhOMGN5NWpBR1Y0ZEdWeWJtRnNMMkp2Y21sdVozTnpiQzl6Y21NdlkzSjVjSFJ2TDJacGNITnRiMlIxYkdVdlkybHdhR1Z5TDJWZllXVnpMbU1BWlhoMFpYSnVZV3d2WW05eWFXNW5jM05zTDNOeVl5OWpjbmx3ZEc4dlptbHdjMjF2WkhWc1pTOXRiMlJsY3k5amRISXVZd0JsZUhSbGNtNWhiQzlpYjNKcGJtZHpjMnd2YzNKakwyTnllWEIwYnk5bWFYQnpiVzlrZFd4bEwyTnBjR2hsY2k5amFYQm9aWEl1WXdCbGVIUmxjbTVoYkM5aWIzSnBibWR6YzJ3dmMzSmpMMk55ZVhCMGJ5OXRaVzB1WXdCbGVIUmxjbTVoYkM5aWIzSnBibWR6YzJ3dmMzSmpMMk55ZVhCMGJ5OXdiMjlzTDNCdmIyd3VZd0JsZUhSbGNtNWhiQzlpYjNKcGJtZHpjMnd2YzNKakwyTnllWEIwYnk5c2FHRnphQzlzYUdGemFDNWpBR1Y0ZEdWeWJtRnNMMkp2Y21sdVozTnpiQzl6Y21NdlkzSjVjSFJ2TDJacGNITnRiMlIxYkdVdmFHdGtaaTlvYTJSbUxtTUFaWGgwWlhKdVlXd3ZZbTl5YVc1bmMzTnNMM055WXk5amNubHdkRzh2WTJsd2FHVnlYMlY0ZEhKaEwyVmZZV1Z6WTNSeWFHMWhZeTVqQUdWNGRHVnlibUZzTDJKdmNtbHVaM056YkM5emNtTXZZM0o1Y0hSdkwyWnBjSE50YjJSMWJHVXZhRzFoWXk5b2JXRmpMbU1BWlhoMFpYSnVZV3d2WW05eWFXNW5jM05zTDNOeVl5OWpjbmx3ZEc4dlpYaGZaR0YwWVM1akFHVjRkR1Z5Ym1Gc0wySnZjbWx1WjNOemJDOXpjbU12WTNKNWNIUnZMMlpwY0hOdGIyUjFiR1V2YzJoaEwzTm9ZVEkxTmk1akFFTlNXVkJVVDE5bWNtVmxYMlY0WDJSaGRHRUFjMmh2Y25SZmNIUnlJRHc5SUZWSlRsUXpNbDlOUVZnQVJrRkpURVZFWDFSUFgwVk9RMUpaVUZRQVJrRkpURVZFWDFSUFgwUkZRMUpaVUZRQVQxQlZVd0JGVGtOU1dWQlVUMUlBUkVWRFVsbFFWRTlTQUVaQlNVeGZVRUZTVTBWZlEwOUVSVU5mU0VWQlJFVlNBRlZPUzA1UFYwNEFZM1I0TFQ1d1kzUjRJRDA5SUU1VlRFd2dmSHdnWTNSNExUNXdZM1I0WDI5d2N5QWhQU0JPVlV4TUFHOTFkQzArY0dOMGVDQTlQU0JPVlV4TUlIeDhJRzkxZEMwK2NHTjBlRjl2Y0hNZ0lUMGdUbFZNVEFCcGJpMCtjR04wZUNBOVBTQk9WVXhNSUh4OElHbHVMVDV3WTNSNFgyOXdjeUFoUFNCT1ZVeE1BRTlRUlU1VFUweGZiV1Z0YjNKNVgyZGxkRjl6YVhwbElDRTlJRTVWVEV3QVQxQkZUbE5UVEY5dFpXMXZjbmxmWm5KbFpTQWhQU0JPVlV4TUFFOUxBRzUxYlY5aWJHOWphM01nUEQwZ1FVVlRYMDVQU0ZkZlFrRlVRMGhmVTBsYVJRQnBJRHdnUVVWVFgwNVBTRmRmUWtGVVEwaGZVMGxhUlFCamRIZ3RQbVJwWjJWemRDMCtiV1JmYzJsNlpTQThQU0JGVmxCZlRVRllYMDFFWDFOSldrVUFSa0ZKVEVWRVgxUlBYMEZWVkVoRlRsUkpRMEZVUlFCT1QwNUZBRTVWVEV4ZlQxVlVVRlZVWDBaU1FVMUZBRTVWVEV4ZlNVNVFWVlJmUmxKQlRVVUFaVzF6WTNKcGNIUmxiam82YldWdGIzSjVYM1pwWlhjOGMyaHZjblErQUdWdGMyTnlhWEIwWlc0Nk9tMWxiVzl5ZVY5MmFXVjNQSFZ1YzJsbmJtVmtJSE5vYjNKMFBnQmxiWE5qY21sd2RHVnVPanB0WlcxdmNubGZkbWxsZHp4cGJuUStBR1Z0YzJOeWFYQjBaVzQ2T20xbGJXOXllVjkyYVdWM1BIVnVjMmxuYm1Wa0lHbHVkRDRBWlcxelkzSnBjSFJsYmpvNmJXVnRiM0o1WDNacFpYYzhabXh2WVhRK0FHVnRjMk55YVhCMFpXNDZPbTFsYlc5eWVWOTJhV1YzUEhWcGJuUTRYM1ErQUdWdGMyTnlhWEIwWlc0Nk9tMWxiVzl5ZVY5MmFXVjNQR2x1ZERoZmRENEFaVzF6WTNKcGNIUmxiam82YldWdGIzSjVYM1pwWlhjOGRXbHVkREUyWDNRK0FHVnRjMk55YVhCMFpXNDZPbTFsYlc5eWVWOTJhV1YzUEdsdWRERTJYM1ErQUdWdGMyTnlhWEIwWlc0Nk9tMWxiVzl5ZVY5MmFXVjNQSFZwYm5Rek1sOTBQZ0JsYlhOamNtbHdkR1Z1T2pwdFpXMXZjbmxmZG1sbGR6eHBiblF6TWw5MFBnQmxiWE5qY21sd2RHVnVPanB0WlcxdmNubGZkbWxsZHp4amFHRnlQZ0JsYlhOamNtbHdkR1Z1T2pwdFpXMXZjbmxmZG1sbGR6eDFibk5wWjI1bFpDQmphR0Z5UGdCemRHUTZPbUpoYzJsalgzTjBjbWx1Wnp4MWJuTnBaMjVsWkNCamFHRnlQZ0JsYlhOamNtbHdkR1Z1T2pwdFpXMXZjbmxmZG1sbGR6eHphV2R1WldRZ1kyaGhjajRBWlcxelkzSnBjSFJsYmpvNmJXVnRiM0o1WDNacFpYYzhiRzl1Wno0QVpXMXpZM0pwY0hSbGJqbzZiV1Z0YjNKNVgzWnBaWGM4ZFc1emFXZHVaV1FnYkc5dVp6NEFaVzF6WTNKcGNIUmxiam82YldWdGIzSjVYM1pwWlhjOFpHOTFZbXhsUGdCV1VEZ0FhMlY1WDJKNWRHVnpJRDA5SURFeU9DQXZJRGdnZkh3Z2EyVjVYMko1ZEdWeklEMDlJREU1TWlBdklEZ2dmSHdnYTJWNVgySjVkR1Z6SUQwOUlESTFOaUF2SURnQVkzUjRMVDVqYVhCb1pYSXRQbUpzYjJOclgzTnBlbVVnUFQwZ01TQjhmQ0JqZEhndFBtTnBjR2hsY2kwK1lteHZZMnRmYzJsNlpTQTlQU0E0SUh4OElHTjBlQzArWTJsd2FHVnlMVDVpYkc5amExOXphWHBsSUQwOUlERTJBQ3B1ZFcwZ1BDQXhOZ0JJTWpZMEFFTlNXVkJVVDE5amRISXhNamhmWlc1amNubHdkRjlqZEhJek1nQkJSVk5mUTFSU1h6RXlPRjlJVFVGRFgxTklRVEkxTmw4NE1BQnNaVzRnSlNBeE5pQTlQU0F3QUcxa1gyeGxiaUFsSURRZ1BUMGdNQUFvWTNSNExUNWphWEJvWlhJdFBtSnNiMk5yWDNOcGVtVWdKaUFvWTNSNExUNWphWEJvWlhJdFBtSnNiMk5yWDNOcGVtVWdMU0F4S1NrZ1BUMGdNQUJwYmkwK1pHbG5aWE4wTFQ1amRIaGZjMmw2WlNBaFBTQXdBSFI1Y0dVdFBtTjBlRjl6YVhwbElDRTlJREFBWTNSNExUNWphWEJvWlhJdFBtSnNiMk5yWDNOcGVtVWdJVDBnTUFCRlZsQmZRMGxRU0VWU1gwTlVXRjlwZGw5c1pXNW5kR2dvWTNSNEtTQThQU0J6YVhwbGIyWW9ZM1I0TFQ1cGRpa0FiR1Z1SUQwOUlEQWdmSHdnS0dsdUlDWW1JRzkxZENrQUttOTFkRjlzWlc0Z1BUMGdSVlpRWDAxRVgzTnBlbVVvWkdsblpYTjBLUUJUU0VFeU5UWmZWWEJrWVhSbEtHTjBlQzArYldSZlpHRjBZU3dnWkdGMFlTd2dZMjkxYm5RcEFHSWdQRDBnYzJsNlpXOW1LR04wZUMwK1ptbHVZV3dwQUd0bGVWOXNaVzRnUEQwZ2MybDZaVzltS0d0bGVWOWliRzlqYXlrQVlteHZZMnRmYzJsNlpTQThQU0J6YVhwbGIyWW9hMlY1WDJKc2IyTnJLUUJpYkNBOFBTQW9hVzUwS1hOcGVtVnZaaWhqZEhndFBtSjFaaWtBWWlBOFBTQnphWHBsYjJZb1kzUjRMVDVpZFdZcEFHNTFiVjltZFc1amN5QThQU0FvYzJsNlpWOTBLU2hKVGxSZlRVRllJQzBnWlhoZlpHRjBZVjlqYkdGemN5MCtiblZ0WDNKbGMyVnlkbVZrS1FCVFNFRXlOVFpmU1c1cGRDaGpkSGd0UG0xa1gyUmhkR0VwQUZOSVFUSTFObDlHYVc1aGJDaHRaQ3dnWTNSNExUNXRaRjlrWVhSaEtRQjJjR0ZsYzE5allYQmhZbXhsS0NrQVVIVnlaU0IyYVhKMGRXRnNJR1oxYm1OMGFXOXVJR05oYkd4bFpDRUFUaloyYjI1aFoyVXlNVk5HY21GdFpVVnVaMmx1WlVsdWRHVnlabUZqWlRSVWVYQmxSUUFBQUFBa013QUF3eElBQUU0MmRtOXVZV2RsTWpaVFJuSmhiV1ZEYVhCb1pYSnpkV2wwWlVsdWRHVnlabUZqWlRJelUwWnlZVzFsUlc1bmFXNWxRMmx3YUdWeVUzVnBkR1ZGQUFBa013QUE5QklBQUU0MmRtOXVZV2RsTWpGVFJuSmhiV1ZGYm1kcGJtVkpiblJsY21aaFkyVXlObFJoY21kbGRGQmhlV3h2WVdSR2IzSlRhMmx3VDJabWMyVjBSUUFBQUFBa013QUFQQk1BQUU0MmRtOXVZV2RsTVRKVFpuSmhiV1ZUZEdGMGRYTkZBQ1F6QUFDRUV3QUFNVEJUUm5KaGJXVlhZWE50QUFBQUFIQXpBQUNrRXdBQVVERXdVMFp5WVcxbFYyRnpiUUFBQUZBMEFBQzhFd0FBQUFBQUFMUVRBQUJRU3pFd1UwWnlZVzFsVjJGemJRQUFVRFFBQU53VEFBQUJBQUFBdEJNQUFHbHBBSFlBZG1rQXpCTUFBT3dTQUFBMEV3QUFhV2xwYVFBQUFBREFNZ0FBekJNQUFQd3lBQUJBRkFBQXpCTUFBRTR4TUdWdGMyTnlhWEIwWlc0emRtRnNSUUFBY0RNQUFDd1VBQUJwYVdrQVRqRXdaVzF6WTNKcGNIUmxiakV4YldWdGIzSjVYM1pwWlhkSmFFVkZBQUJ3TXdBQVRCUUFBSGd5QUFETUV3QUEvRElBQUdBeUFBRE1Fd0FBZkJNQUFIWnBhV2tBQUFBQVFCUUFBTXdUQUFEa01nQUFBQUFBQUFBVkFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFCT05uWnZibUZuWlRVeFFtOXlhVzVuVTFOTVUwWnlZVzFsWDBGRlUxOURWRkpmTVRJNFgwaE5RVU5mVTBoQk1qVTJYME5wY0dobGNuTjFhWFJsUlFBQW1ETUFBTUFVQUFETUZRQUFBQUFBQUhRVkFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQWpBQUFBSkFBQUFDVUFBQUFtQUFBQUp3QUFBRTQyZG05dVlXZGxNalZDYjNKcGJtZFRVMHhUUm5KaGJXVkVaWEpwZG1Wa1MyVjVSUUFBQUFDWU13QUFUQlVBQUV3WUFFR0lLd3RZekJVQUFDZ0FBQUFwQUFBQUZnQUFBQ29BQUFBcUFBQUFLZ0FBQUU0MmRtOXVZV2RsTWpaVFJuSmhiV1ZEYVhCb1pYSnpkV2wwWlVsdWRHVnlabUZqWlVVQUFBQndNd0FBcEJVQUFBQUFBQUJUUm5KaGJXVXhNQUJCcUN3TEhRZ0FBQUFCQUFBQVUwWnlZVzFsTVRBZ1FVVlRJRU5VVWlCQlJVRkVBRUdBTFFzTEZRQUFBQUFBQUFCclpYa0FRZGd0Q3d3REFBQUFBUUFBQUhOaGJIUUFRYkF1Q3dzRUFBQUFBZ0FBQUdWdVl3QkJpQzhMREFNQUFBQURBQUFBWVhWMGFBQkI0QzhMb1FRRUFBQUFBQUFBQUV3WUFBQXRBQUFBTGdBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQWpBQUFBSkFBQUFDVUFBQUFtQUFBQUtnQUFBRTQyZG05dVlXZGxNalZUUm5KaGJXVkVaWEpwZG1Wa1MyVjVTVzUwWlhKbVlXTmxSUUFBQUFCd013QUFKQmdBQUFBQUFBRElHQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFCT1UzUXpYMTh5TWpCZlgzTm9ZWEpsWkY5d2RISmZaVzF3YkdGalpVbE9Oblp2Ym1GblpUSTFRbTl5YVc1blUxTk1VMFp5WVcxbFJHVnlhWFpsWkV0bGVVVk9VMTg1WVd4c2IyTmhkRzl5U1ZNeVgwVkZSVVVBbURNQUFIQVlBQURFTUFBQUFBQUFBRFFaQUFBNEFBQUFPUUFBQUNvQUFBQUFBQUFBWUJrQUFEWUFBQUE2QUFBQU93QUFBQUFBQUFDUUdRQUFOd0FBQUR3QUFBQTlBQUFBVGpaMmIyNWhaMlV5TVZOR2NtRnRaVVZ1WjJsdVpVbHVkR1Z5Wm1GalpVVUFBQUFBY0RNQUFCQVpBQUJPTm5admJtRm5aVEl4VTBaeVlXMWxSVzVuYVc1bFJXNWpjbmx3ZEc5eVJRQUFBQUNZTXdBQVBCa0FBRFFaQUFCT05uWnZibUZuWlRJeFUwWnlZVzFsUlc1bmFXNWxSR1ZqY25sd2RHOXlSUUFBQUFDWU13QUFiQmtBQURRWkFBQUFBQUFBeEJrQUFENEFBQUEvQUFBQVRqWjJiMjVoWjJVeE1sTm1jbUZ0WlZKbGMzVnNkRVVBY0RNQUFLd1pBQUFCQUFBQUVBQUFBQUFCQUFCR0JRQUFBQ0FBQUFCQUFBQXdEQ0FnQUFBQUFFVUFBQUFBQUFBQVJnQUFBQUFBQUFCSEFBQUFTQUJCakRRTENnRUNCQWdRSUVDQUd6WUFRYUEwQzZncG1DK0tRcEZFTjNIUCs4QzFwZHUxNlZ2Q1ZqbnhFZkZacElJL2t0VmVIS3VZcWdmWUFWdURFcjZGTVNURGZReFZkRjIrY3Y2eDNvQ25CdHliZFBHYndjRnBtK1NHUjc3dnhwM0JEOHloRENSdkxPa3Rxb1IwU3R5cHNGemFpUGwyVWxFK21HM0dNYWpJSndPd3gzOVp2L01MNE1aSGthZlZVV1BLQm1jcEtSU0ZDcmNuT0NFYkx2eHRMRTBURFRoVFZITUtaYnNLYW5ZdXljS0JoU3h5a3FIb3Y2SkxaaHFvY0l0THdxTlJiTWNaNkpMUkpBYVoxb1UxRHZSd29Hb1FGc0drR1Foc054NU1kMGdudGJ5d05MTU1IRGxLcXRoT1Q4cWNXL052TG1qdWdvOTBiMk9sZUJSNHlJUUlBc2VNK3YrK2tPdHNVS1Qzby9tKzhuaHh4b3hpSUF2U29ISllSS2lXYWExVmZ1d0RBRTVUZEROZlh6SXhNbUpoYzJsalgzTjBjbWx1WjBsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVk9VMTg1WVd4c2IyTmhkRzl5U1dORlJVVkZBQUFBQUhBekFBQXlHd0FBVGxOME0xOWZNakV5WW1GemFXTmZjM1J5YVc1blNXaE9VMTh4TVdOb1lYSmZkSEpoYVhSelNXaEZSVTVUWHpsaGJHeHZZMkYwYjNKSmFFVkZSVVVBQUhBekFBQjhHd0FBVGxOME0xOWZNakV5WW1GemFXTmZjM1J5YVc1blNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVTVUWHpsaGJHeHZZMkYwYjNKSmQwVkZSVVVBQUhBekFBREVHd0FBVGxOME0xOWZNakV5WW1GemFXTmZjM1J5YVc1blNVUnpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbEVjMFZGVGxOZk9XRnNiRzlqWVhSdmNrbEVjMFZGUlVVQUFBQndNd0FBREJ3QUFFNVRkRE5mWHpJeE1tSmhjMmxqWDNOMGNtbHVaMGxFYVU1VFh6RXhZMmhoY2w5MGNtRnBkSE5KUkdsRlJVNVRYemxoYkd4dlkyRjBiM0pKUkdsRlJVVkZBQUFBY0RNQUFGZ2NBQUJPTVRCbGJYTmpjbWx3ZEdWdU1URnRaVzF2Y25sZmRtbGxkMGxqUlVVQUFIQXpBQUNrSEFBQVRqRXdaVzF6WTNKcGNIUmxiakV4YldWdGIzSjVYM1pwWlhkSllVVkZBQUJ3TXdBQXpCd0FBRTR4TUdWdGMyTnlhWEIwWlc0eE1XMWxiVzl5ZVY5MmFXVjNTWE5GUlFBQWNETUFBUFFjQUFCT01UQmxiWE5qY21sd2RHVnVNVEZ0WlcxdmNubGZkbWxsZDBsMFJVVUFBSEF6QUFBY0hRQUFUakV3WlcxelkzSnBjSFJsYmpFeGJXVnRiM0o1WDNacFpYZEphVVZGQUFCd013QUFSQjBBQUU0eE1HVnRjMk55YVhCMFpXNHhNVzFsYlc5eWVWOTJhV1YzU1dwRlJRQUFjRE1BQUd3ZEFBQk9NVEJsYlhOamNtbHdkR1Z1TVRGdFpXMXZjbmxmZG1sbGQwbHNSVVVBQUhBekFBQ1VIUUFBVGpFd1pXMXpZM0pwY0hSbGJqRXhiV1Z0YjNKNVgzWnBaWGRKYlVWRkFBQndNd0FBdkIwQUFFNHhNR1Z0YzJOeWFYQjBaVzR4TVcxbGJXOXllVjkyYVdWM1NXWkZSUUFBY0RNQUFPUWRBQUJPTVRCbGJYTmpjbWx3ZEdWdU1URnRaVzF2Y25sZmRtbGxkMGxrUlVVQUFIQXpBQUFNSGdBQUFBQUFBQUE0K3Y1Q0x1WS9NR2ZIazFmekxqMEJBQUFBQUFEZ3Yxc3dVVlZWVmRVL2tFWHIvLy8vejc4UkFmRWtzNW5KUDUvSUJ1VjFWY1cvQUFBQUFBQUE0TDkzVlZWVlZWWFZQOHY5Ly8vLy84Ky9ETjJWbVptWnlUK25SV2RWVlZYRnZ6RGVSS01rU2NJL1pUMUNwUC8vdjcvSzFpb29oSEc4UC85b3NFUHJtYm0vaGRDdjk0S0J0ei9OUmRGMUUxSzF2NS9lNE1Qd05QYy9BSkRtZVgvTTE3OGY2U3hxZUJQM1B3QUFEY0x1YjllL29MWDZDR0R5OWo4QTRGRVQ0eFBYdjMyTUV4K20wZlkvQUhnb09GdTQxci9SdE1VTFNiSDJQd0I0Z0pCVlhkYS91Z3d2TTBlUjlqOEFBQmgyMEFMV3Z5TkNJaGlmY2ZZL0FKQ1Foc3FvMWIvWkhxV1pUMUwyUHdCUUExWkRUOVcveENTUHFsWXo5ajhBUUd2RE4vYlV2eFRjbld1ekZQWS9BRkNvL2FlZDFMOU1YTVpTWlBiMVB3Q29pVG1TUmRTL1R5eVJ0V2ZZOVQ4QXVMQTU5TzNUdjk2UVc4dTh1dlUvQUhDUFJNNlcwNzk0R3RueVlaMzFQd0NndlJjZVFOTy9oMVpHRWxhQTlUOEFnRWJ2NHVuU3Y5TnI1ODZYWS9VL0FPQXdPQnVVMHIrVGY2ZmlKVWYxUHdDSTJvekZQdEsvZzBVR1F2OHE5VDhBa0NjcDRlblJ2OSs5c3RzaUQvVS9BUGhJSzIyVjBiL1gzalJIai9QMFB3RDR1WnBuUWRHL1FDamV6MFBZOUQ4QW1PK1UwTzNRdjhpamVNQSt2ZlEvQUJEYkdLV2EwTCtLSmVERGY2TDBQd0M0WTFMbVI5Qy9OSVRVSkFXSTlEOEE4SVpGSXV2UHZ3c3RHUnZPYmZRL0FMQVhkVXBIejc5VUdEblQyVlAwUHdBd0VEMUVwTTYvV29TMFJDYzY5RDhBc09sRURRTE92L3Y0RlVHMUlQUS9BUEIzS2FKZ3piK3g5RDdhZ2dmMFB3Q1FsUVFCd015L2ovNVhYWS91OHo4QUVJbFdLU0RNditsTUM2RFoxZk0vQUJDQmpSZUJ5Nzhyd1JEQVlMM3pQd0RRMDh6SjRzcS91TnAxS3lTbDh6OEFrQkl1UUVYS3Z3TFFuODBpamZNL0FQQWRhSGVveWI4Y2VvVEZXM1h6UHdBd1NHbHRETW0vNGphdFNjNWQ4ejhBd0VXbUlISEl2MERVVFpoNVJ2TS9BREFVdEkvV3g3OGt5Ly9PWEMvelB3QndZank0UE1lL1NRMmhkWGNZOHo4QVlEZWJtcVBHdjVBNVBqZklBZk0vQUtDM1ZERUx4cjlCK0pXN1R1dnlQd0F3SkhaOWM4Vy8wYWtaQWdyVjhqOEFNTUtQZTl6RXZ5cjl0Nmo1dnZJL0FBRFNVU3hHeEwrckd3eDZIS255UHdBQWc3eUtzTU8vTUxVVVlIS1Q4ajhBQUVscm1SdkR2L1doVjFmNmZmSS9BRUNra0ZTSHdyKy9PeDJiczJqeVB3Q2dlZmk1ODhHL3ZmV1BnNTFUOGo4QW9Dd2x5R0RCdnpzSXlhcTNQdkkvQUNEM1YzL093TCsyUUtrckFTcnlQd0NnL2tuY1BNQy9Na0hNbG5rVjhqOEFnRXU4dlZlL3Y1djgwaDBnQWZJL0FFQkFsZ2czdnI4TFNFMUo5T3p4UHdCQStUNllGNzIvYVdXUFV2WFk4VDhBb05oT1ovbTd2M3grVnhFanhmRS9BR0F2SUhuY3VyL3BKc3QwZkxIeFB3Q0FLT2ZEd0xtL3Rob3NEQUdlOFQ4QXdIS3pScWE0djcxd3RudXdpdkUvQUFDc3N3R050Nysydk84bGluZnhQd0FBT0VYeGRMYS8yakZNTlkxazhUOEFnSWR0RGw2MXY5MWZKNUM1VWZFL0FPQ2gzbHhJdEw5TTBqS2tEai94UHdDZ2FrM1pNN08vMnZrUWNvc3M4VDhBWU1YNGVTQ3l2ekcxN0Nnd0d2RS9BQ0JpbUVZT3NiK3ZOSVRhK3dmeFB3QUEwbXBzK3ErL3MydE9EKzcxOEQ4QVFIZEtqZHF0djg2ZktsMEc1UEEvQUFDRjVPeThxNzhocFN4alJOTHdQd0RBRWtDSm9hbS9HcGppZktmQThEOEF3QUl6V0lpbnY5RTJ4b012ci9BL0FJRFdaMTV4cGI4NUU2Q1kyNTN3UHdDQVpVbUtYS08vMytkU3I2dU04RDhBUUJWazQwbWh2L3NvVGkrZmUvQS9BSURyZ3NCeW5yOFpqeldNdFdyd1B3Q0FVbEx4VlpxL0xQbnNwZTVaOEQ4QWdJSFBZajJXdjVBczBjMUpTZkEvQUFDcWpQc29rcitwcmZER3hqandQd0FBK1NCN01ZeS9xVEo1RTJVbzhEOEFBS3BkTlJtRXYwaHo2aWNrR1BBL0FBRHN3Z01TZUwrVnNSUUdCQWp3UHdBQUpIa0pCR0MvR3ZvbTl4L2c3ejhBQUpDRTgrOXZQM1RxWWNJY29lOC9BQUE5TlVIY2h6OHVtWUd3RUdQdlB3Q0F3c1NqenBNL3phM3VQUFlsN3o4QUFJa1V3WitiUCtjVGtRUEk2ZTQvQUFBUnp0aXdvVCtyc2N0NGdLN3VQd0RBQWRCYmlxVS9td3lkb2hwMDdqOEFnTmhBZzF5cFA3V1pDb09ST3U0L0FJQlg3Mm9uclQ5V21tQUo0QUh1UHdEQW1PV1lkYkEvbUx0MzVRSEs3VDhBSUEzajlWT3lQd09SZkF2eWt1MC9BQUE0aTkwdXREL09YUHRtckZ6dFB3REFWNGRaQnJZL25kNWVxaXduN1Q4QUFHbzFkdHEzUDgwc2F6NXU4dXcvQUdBY1RrT3J1VDhDZWFlaWJiN3NQd0JnRGJ2SGVMcy9iUWczYlNhTDdEOEFJT2N5RTBPOVB3UllYYjJVV093L0FHRGVjVEVLdnorTW43c3p0U2JzUHdCQWtTc1ZaOEEvUCtmczdvUDE2ejhBc0pLQ2hVZkJQOEdXMjNYOXhPcy9BRERLelc0bXdqOG9Tb1lNSHBYclB3QlF4YWJYQThNL0xEN3Z4ZUpsNno4QUVETTh3OS9EUDR1SXlXZElOK3MvQUlCNmF6YTZ4RDlLTUIwaFN3bnJQd0R3MFNnNWs4VS9mdS95aGVqYjZqOEE4QmdreldyR1A2STlZREVkcitvL0FKQm03UGhBeHorbldOTS81b0xxUHdEd0d2WEFGY2cvaTNNSjcwQlg2ajhBZ1BaVUtlbklQeWRMcTVBcUxPby9BRUQ0QWphN3lUL1I4cE1Ub0FIcVB3QUFMQnp0aThvL0d6emJKSi9YNlQ4QTBBRmNVVnZMUDVDeHh3VWxydWsvQU1DOHpHY3B6RDh2enBmeUxvWHBQd0JnU05VMTlzdy9kVXVrN3JwYzZUOEF3RVkwdmNITlB6aEk1NTNHTk9rL0FPRFB1QUdNemovbVVtY3ZUdzNwUHdDUUY4QUpWYzgvbmRmL2psTG02RDhBdUI4U2JBN1FQM3dBekovT3YrZy9BTkNURHJoeDBEOE93Nzdhd0pub1B3QndocDVyMU5BLyt4Y2pxaWQwNkQ4QTBFc3poemJSUHdpYXM2d0FUK2cvQUVnalp3MlkwVDlWUG1Yb1NTcm9Qd0NBek9ELytORS9ZQUwwbFFFRzZEOEFhR1BYWDFuU1B5bWo0R01sNHVjL0FLZ1VDVEM1MGordHRkeDNzNzduUHdCZ1F4QnlHTk0vd2lXWFo2cWI1ejhBR094dEpuZlRQMWNHRi9JSGVlYy9BREN2KzAvVjB6OE1FOWJieWxiblB3RGdMK1B1TXRRL2E3WlBBUUFRNWo4OFcwS1JiQUorUEpXMFRRTUFNT1kvUVYwQVNPcS9qVHg0MUpRTkFGRG1QN2VsMW9hbmY0NDhyVzlPQndCdzVqOU1KVlJyNnZ4aFBLNFAzLzcvaitZLy9RNVpUQ2QrZkx5OHhXTUhBTERtUHdIYTNFaG93WXE4OXNGY0hnRFE1ajhSazBtZEhEK0RQRDcyQmV2LzcrWS9VeTNpR2dTQWZyeUFsNFlPQUJEblAxSjVDWEZtLzNzOEV1bG4vUDh2NXo4a2g3MG00Z0NNUEdvUmdkLy9UK2MvMGdIeGJwRUNicnlRbkdjUEFIRG5QM1NjVk0xeC9HZThOY2grK3YrUDV6K0RCUFdld2I2QlBPYkNJUDcvcitjL1pXVE1LUmQrY0x3QXlUL3QvOC9uUHh5TGV3aHlnSUM4ZGhvbTZmL3Y1eit1K1oxdEtNQ05QT2lqbkFRQUVPZy9NMHpsVWRKL2lUeVBMSk1YQUREb1A0SHpNTGJwL29xOG5ITXpCZ0JRNkQrOE5XVnJ2NytKUE1hSlFpQUFjT2cvZFhzUjgyVy9pN3dFZWZYci80L29QMWZMUGFKdUFJbTgzd1M4SWdDdzZEOEtTK0E0M3dCOXZJb2JET1gveitnL0JaLy9SbkVBaUx4RGpwSDgvKy9vUHpod2V0QjdnWU04eDEvNkhnQVE2VDhEdE45MmtUNkpQTGw3UmhNQU1Pay9kZ0tZUzA2QWZ6eHZCKzdtLzAvcFB5NWkvOW53Zm8rODBSSTgzdjl2NlQrNk9DYVdxb0p3dkEyS1JmVC9qK2svNzZoa2tSdUFoN3crTHBqZC82L3BQemVUV29yZ1FJZThadnRKN2YvUDZUOEE0SnZCQ000L1BGR2M4U0FBOE9rL0NsdUlKNm8vaXJ3R3NFVVJBQkRxUDFiYVdKbEkvM1E4K3ZhN0J3QXc2ajhZYlN1S3E3Nk1QSGtkbHhBQVVPby9NSGw0M2NyK2lEeElMdlVkQUhEcVA5dXIyRDEyUVkrOFVqTlpIQUNRNmo4U2RzS0VBcitPdkVzK1R5b0FzT28vWHovL1BBVDlhYnpSSHE3WC84L3FQN1J3a0JMblBvSzhlQVJSN3YvdjZqK2ozZzdnUGdacVBGc05aZHYvRCtzL3VRb2ZPTWdHV2p4WHlxcisveS9yUHgwOEkzUWVBWG04M0xxVjJmOVA2eitmS29ab0VQOTV2SnhsbmlRQWNPcy9QaytHMEVYL2lqeEFGb2Y1LzQvclAvbkR3cFozL253OFQ4c0Uwdit2NnovRUsvTHVKLzlqdkVWY1FkTC96K3MvSWVvNzdyZi9iTHpmQ1dQNC8rL3JQMXdMTHBjRFFZRzhVM2ExNGY4UDdEOFphcmVVWk1HTFBPTlgrdkgvTCt3LzdjWXdqZS8rWkx3azVML2MvMC9zUDNWSDdMeG9QNFM4OTdsVTdmOXY3RC9zNEZQd28zNkVQTldQbWV2L2ordy84Wkw1alFhRGN6eWFJU1VoQUxEc1B3UU9HR1NPL1dpOG5FYVUzZi9QN0Q5eTZzY2N2bjZPUEhiRS9lci83K3cvL29pZnJUbStqandyK0pvV0FCRHRQM0ZhdWFpUmZYVThIZmNQRFFBdzdUL2F4M0Jwa01HSlBNUVBlZXIvVCswL0RQNVl4VGNPV0x6bGg5d3VBSER0UDBRUHdVM1dnSCs4cW9MY0lRQ1E3VDljWFAyVWozeDB2SU1DYTlqL3IrMC9mbUVoeFIxL2pEdzVSMndwQU5EdFAxT3gvN0tlQVlnODlaQkU1Zi92N1QrSnpGTEcwZ0J1UEpUMnE4My9EKzQvMG1rdElFQ0RmN3pkeUZMYi95L3VQMlFJRzhyQkFIczg3eFpDOHY5UDdqOVJxNVN3cVA5eVBCRmVpdWovYis0L1diN3ZzWFAyVjd3Ti81NFJBSkR1UHdISUMxNk5nSVM4UkJlbDMvK3Y3aisxSUVQVkJnQjRQS0YvRWhvQTBPNC9rbHhXWVBnQ1VMekV2TG9IQVBEdVB4SG1OVjFFUUlXOEFvMTY5ZjhQN3o4RmtlODVNZnRQdk1lSzVSNEFNTzgvVlJGejhxeUJpanlVTklMMS8wL3ZQMFBIMTlSQlA0bzhhMHlwL1A5djd6OTFlSmdjOUFKaXZFSEUrZUgvais4L1MrZDM5TkY5ZHp4KzQrRFMvNi92UHpHamZKb1pBVys4bnVSM0hBRFE3eit4ck01TDdvRnhQREhENFBmLzcrOC9Xb2R3QVRjRmJyeHVZR1gwL3cvd1A5b0tIRW10Zm9xOFdIcUc4Lzh2OEQvZ3N2ekRhWCtYdkJjTi9QMy9UL0EvVzVUTE5QNi9senlDVGMwREFIRHdQOHRXNU1DREFJSTg2TXZ5K2YrUDhEOGFkVGUrMy85dHZHWGFEQUVBc1BBLzZ5Ym1ybjgva2J3NDA2UUJBTkR3UC9lZlNIbjZmWUE4L2YzYSt2L3Y4RC9BYTlad0JRUjN2SmI5dWdzQUVQRS9ZZ3R0aE5TQWpqeGQ5T1g2L3kveFArODIvV1Q2djUwODJaclZEUUJROFQrdVVCSndkd0NhUEpwVklROEFjUEUvN3Q3ajR2bjlqVHdtVkNmOC80L3hQM055Tzl3d0FKRThXVHc5RWdDdzhUK0lBUU9BZVgrWlBMZWVLZmovei9FL1o0eWZxekw1WmJ3QTFJcjAvKy94UCt0YnA1Mi9mNU04cElhTERBQVE4ajhpVy8yUmE0Q2ZQQU5EaFFNQU1QSS9NNytmNjhML2t6eUU5cnovLzAveVAzSXVMbjduQVhZODJTRXA5Zjl2OGo5aERIOTJ1L3gvUER3Nmt4UUFrUEkvSzBFQ1BNb0NjcndUWTFVVUFMRHlQd0lmOGpPQ2dKSzhPMUwrNi8vUDhqL3kzRTg0ZnYrSXZKYXR1QXNBOFBJL3hVRXdVRkgvaGJ5djRucjcvdy96UDUwb1hvaHhBSUc4ZjErcy92OHY4ejhWdDdjL1hmK1J2RlpucGd3QVVQTS92WUtMSW9KL2xUd2g5L3NSQUhEelA4elZEY1M2QUlBOHVTOVorZitQOHo5UnA3SXRuVCtVdkVMUzNRUUFzUE0vNFRoMmNHdC9oVHhYeWJMMS84L3pQekVTdnhBNkFubzhHTFN3NnYvdjh6K3dVckZtYlgrWVBQU3ZNaFVBRVBRL0pJVVpYemY0Wnp3cGkwY1hBREQwUDBOUjNITG1BWU04WTdTVjUvOVA5RDlhaWJLNGFmK0pQT0IxQk9qL2IvUS9WUExDbTdIQWxiem53Vy92LzQvMFAzSXFPdklKUUpzOEJLZSs1Zit2OUQ5RmZRMi90LytVdk40bkVCY0EwUFEvUFdyY2NXVEFtYnppUHZBUEFQRDBQeHhUaFF1SmY1YzgwVXZjRWdBUTlUODJwR1p4WlFSZ1BIb25CUllBTVBVL0NUSWp6czYvbHJ4TWNOdnMvMC8xUDllaEJRVnlBb204cVZSZjcvOXY5VDhTWk1rTzVyK2JQQklRNWhjQWtQVS9rTyt2Z2NWK2lEeVNQc2tEQUxEMVA4QU12d29JUVorOHZCbEpIUURROVQ4cFJ5WDdLb0dZdklsNnVPZi83L1UvQkdudGdMZCtsTHdBUWRUZEFBdW1Dd0lBQUFBREFBQUFCUUFBQUFjQUFBQUxBQUFBRFFBQUFCRUFBQUFUQUFBQUZ3QUFBQjBBQUFBZkFBQUFKUUFBQUNrQUFBQXJBQUFBTHdBQUFEVUFBQUE3QUFBQVBRQUFBRU1BQUFCSEFBQUFTUUFBQUU4QUFBQlRBQUFBV1FBQUFHRUFBQUJsQUFBQVp3QUFBR3NBQUFCdEFBQUFjUUFBQUg4QUFBQ0RBQUFBaVFBQUFJc0FBQUNWQUFBQWx3QUFBSjBBQUFDakFBQUFwd0FBQUswQUFBQ3pBQUFBdFFBQUFMOEFBQURCQUFBQXhRQUFBTWNBQUFEVEFBQUFBUUFBQUFzQUFBQU5BQUFBRVFBQUFCTUFBQUFYQUFBQUhRQUFBQjhBQUFBbEFBQUFLUUFBQUNzQUFBQXZBQUFBTlFBQUFEc0FBQUE5QUFBQVF3QUFBRWNBQUFCSkFBQUFUd0FBQUZNQUFBQlpBQUFBWVFBQUFHVUFBQUJuQUFBQWF3QUFBRzBBQUFCeEFBQUFlUUFBQUg4QUFBQ0RBQUFBaVFBQUFJc0FBQUNQQUFBQWxRQUFBSmNBQUFDZEFBQUFvd0FBQUtjQUFBQ3BBQUFBclFBQUFMTUFBQUMxQUFBQXV3QUFBTDhBQUFEQkFBQUF4UUFBQU1jQUFBRFJBQUFBQUFBQUFJQXdBQUJrQUFBQVpRQUFBQ29BQUFCT1UzUXpYMTh5TVRSZlgzTm9ZWEpsWkY5amIzVnVkRVVBQUFBQWNETUFBR1F3QUFBQUFBQUF4REFBQUdRQUFBQm1BQUFBS2dBQUFESUFBQUFxQUFBQVRsTjBNMTlmTWpFNVgxOXphR0Z5WldSZmQyVmhhMTlqYjNWdWRFVUFBQUQwTXdBQXBEQUFBQUFBQUFBQkFBQUFnREFBQUFBQUFBQk9NVEJmWDJONGVHRmlhWFl4TVRaZlgzTm9hVzFmZEhsd1pWOXBibVp2UlFBQUFBQ1lNd0FBM0RBQUFIUTBBQUJPTVRCZlgyTjRlR0ZpYVhZeE1UZGZYMk5zWVhOelgzUjVjR1ZmYVc1bWIwVUFBQUNZTXdBQURERUFBQUF4QUFCT01UQmZYMk40ZUdGaWFYWXhNVGRmWDNCaVlYTmxYM1I1Y0dWZmFXNW1iMFVBQUFDWU13QUFQREVBQUFBeEFBQk9NVEJmWDJONGVHRmlhWFl4TVRsZlgzQnZhVzUwWlhKZmRIbHdaVjlwYm1adlJRQ1lNd0FBYkRFQUFHQXhBQUJPTVRCZlgyTjRlR0ZpYVhZeE1qQmZYMloxYm1OMGFXOXVYM1I1Y0dWZmFXNW1iMFVBQUFBQW1ETUFBSnd4QUFBQU1RQUFUakV3WDE5amVIaGhZbWwyTVRJNVgxOXdiMmx1ZEdWeVgzUnZYMjFsYldKbGNsOTBlWEJsWDJsdVptOUZBQUFBbURNQUFOQXhBQUJnTVFBQUFBQUFBRkF5QUFCbkFBQUFhQUFBQUdrQUFBQnFBQUFBYXdBQUFFNHhNRjlmWTNoNFlXSnBkakV5TTE5ZlpuVnVaR0Z0Wlc1MFlXeGZkSGx3WlY5cGJtWnZSUUNZTXdBQUtESUFBQUF4QUFCMkFBQUFGRElBQUZ3eUFBQkViZ0FBRkRJQUFHZ3lBQUJpQUFBQUZESUFBSFF5QUFCakFBQUFGRElBQUlBeUFBQm9BQUFBRkRJQUFJd3lBQUJoQUFBQUZESUFBSmd5QUFCekFBQUFGRElBQUtReUFBQjBBQUFBRkRJQUFMQXlBQUJwQUFBQUZESUFBTHd5QUFCcUFBQUFGRElBQU1neUFBQnNBQUFBRkRJQUFOUXlBQUJ0QUFBQUZESUFBT0F5QUFCNEFBQUFGRElBQU93eUFBQjVBQUFBRkRJQUFQZ3lBQUJtQUFBQUZESUFBQVF6QUFCa0FBQUFGRElBQUJBekFBQUFBQUFBWERNQUFHY0FBQUJzQUFBQWFRQUFBR29BQUFCdEFBQUFUakV3WDE5amVIaGhZbWwyTVRFMlgxOWxiblZ0WDNSNWNHVmZhVzVtYjBVQUFBQUFtRE1BQURnekFBQUFNUUFBQUFBQUFEQXhBQUJuQUFBQWJnQUFBR2tBQUFCcUFBQUFid0FBQUhBQUFBQnhBQUFBY2dBQUFBQUFBQURnTXdBQVp3QUFBSE1BQUFCcEFBQUFhZ0FBQUc4QUFBQjBBQUFBZFFBQUFIWUFBQUJPTVRCZlgyTjRlR0ZpYVhZeE1qQmZYM05wWDJOc1lYTnpYM1I1Y0dWZmFXNW1iMFVBQUFBQW1ETUFBTGd6QUFBd01RQUFBQUFBQUR3MEFBQm5BQUFBZHdBQUFHa0FBQUJxQUFBQWJ3QUFBSGdBQUFCNUFBQUFlZ0FBQUU0eE1GOWZZM2g0WVdKcGRqRXlNVjlmZG0xcFgyTnNZWE56WDNSNWNHVmZhVzVtYjBVQUFBQ1lNd0FBRkRRQUFEQXhBQUFBQUFBQWtERUFBR2NBQUFCN0FBQUFhUUFBQUdvQUFBQjhBQUFBVTNRNWRIbHdaVjlwYm1adkFBQUFBSEF6QUFCa05BQkJxT2tBQ3djQkFBQUFJRHBRQUJvUGRHRnlaMlYwWDJabFlYUjFjbVZ6QVNzSGMybHRaREV5T0E9PSIpfHwoTD1mdW5jdGlvbiBsb2NhdGVGaWxlKEEpe3JldHVybiBnLmxvY2F0ZUZpbGU/Zy5sb2NhdGVGaWxlKEEsYSk6YStBfShMKSk7dmFyIFQ9dm9pZCAwO2Z1bmN0aW9uIHJlYWRMYXRpbjFTdHJpbmcoQSl7Zm9yKHZhciBnPSIiLEk9QTtoW0ldOylnKz1UW2hbSSsrXV07cmV0dXJuIGd9dmFyIHE9e30sYj17fSx4PXt9LHY9NDgsUD01NztmdW5jdGlvbiBtYWtlTGVnYWxGdW5jdGlvbk5hbWUoQSl7aWYodm9pZCAwPT09QSlyZXR1cm4iX3Vua25vd24iO3ZhciBnPShBPUEucmVwbGFjZSgvW15hLXpBLVowLTlfXS9nLCIkIikpLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGc+PXYmJmc8PVA/Il8iK0E6QX1mdW5jdGlvbiBjcmVhdGVOYW1lZEZ1bmN0aW9uKEEsZyl7cmV0dXJuIEE9bWFrZUxlZ2FsRnVuY3Rpb25OYW1lKEEpLG5ldyBGdW5jdGlvbigiYm9keSIsInJldHVybiBmdW5jdGlvbiAiK0ErJygpIHtcbiAgICAidXNlIHN0cmljdCI7ICAgIHJldHVybiBib2R5LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuJykoZyl9ZnVuY3Rpb24gZXh0ZW5kRXJyb3IoQSxnKXt2YXIgST1jcmVhdGVOYW1lZEZ1bmN0aW9uKGcsKGZ1bmN0aW9uKEEpe3RoaXMubmFtZT1nLHRoaXMubWVzc2FnZT1BO3ZhciBJPW5ldyBFcnJvcihBKS5zdGFjazt2b2lkIDAhPT1JJiYodGhpcy5zdGFjaz10aGlzLnRvU3RyaW5nKCkrIlxuIitJLnJlcGxhY2UoL15FcnJvcig6W15cbl0qKT9cbi8sIiIpKX0pKTtyZXR1cm4gSS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShBLnByb3RvdHlwZSksSS5wcm90b3R5cGUuY29uc3RydWN0b3I9SSxJLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLm1lc3NhZ2U/dGhpcy5uYW1lOnRoaXMubmFtZSsiOiAiK3RoaXMubWVzc2FnZX0sSX12YXIgej12b2lkIDA7ZnVuY3Rpb24gdGhyb3dCaW5kaW5nRXJyb3IoQSl7dGhyb3cgbmV3IHooQSl9dmFyIFg9dm9pZCAwO2Z1bmN0aW9uIHRocm93SW50ZXJuYWxFcnJvcihBKXt0aHJvdyBuZXcgWChBKX1mdW5jdGlvbiB3aGVuRGVwZW5kZW50VHlwZXNBcmVSZXNvbHZlZChBLGcsSSl7ZnVuY3Rpb24gb25Db21wbGV0ZShnKXt2YXIgQz1JKGcpO0MubGVuZ3RoIT09QS5sZW5ndGgmJnRocm93SW50ZXJuYWxFcnJvcigiTWlzbWF0Y2hlZCB0eXBlIGNvbnZlcnRlciBjb3VudCIpO2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKXJlZ2lzdGVyVHlwZShBW0JdLENbQl0pfUEuZm9yRWFjaCgoZnVuY3Rpb24oQSl7eFtBXT1nfSkpO3ZhciBDPW5ldyBBcnJheShnLmxlbmd0aCksQj1bXSxFPTA7Zy5mb3JFYWNoKCgoQSxnKT0+e2IuaGFzT3duUHJvcGVydHkoQSk/Q1tnXT1iW0FdOihCLnB1c2goQSkscS5oYXNPd25Qcm9wZXJ0eShBKXx8KHFbQV09W10pLHFbQV0ucHVzaCgoKCk9PntDW2ddPWJbQV0sKytFPT09Qi5sZW5ndGgmJm9uQ29tcGxldGUoQyl9KSkpfSkpLDA9PT1CLmxlbmd0aCYmb25Db21wbGV0ZShDKX1mdW5jdGlvbiByZWdpc3RlclR5cGUoQSxnLEk9e30pe2lmKCEoImFyZ1BhY2tBZHZhbmNlImluIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoInJlZ2lzdGVyVHlwZSByZWdpc3RlcmVkSW5zdGFuY2UgcmVxdWlyZXMgYXJnUGFja0FkdmFuY2UiKTt2YXIgQz1nLm5hbWU7aWYoQXx8dGhyb3dCaW5kaW5nRXJyb3IoJ3R5cGUgIicrQysnIiBtdXN0IGhhdmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHR5cGVpZCBwb2ludGVyJyksYi5oYXNPd25Qcm9wZXJ0eShBKSl7aWYoSS5pZ25vcmVEdXBsaWNhdGVSZWdpc3RyYXRpb25zKXJldHVybjt0aHJvd0JpbmRpbmdFcnJvcigiQ2Fubm90IHJlZ2lzdGVyIHR5cGUgJyIrQysiJyB0d2ljZSIpfWlmKGJbQV09ZyxkZWxldGUgeFtBXSxxLmhhc093blByb3BlcnR5KEEpKXt2YXIgQj1xW0FdO2RlbGV0ZSBxW0FdLEIuZm9yRWFjaCgoQT0+QSgpKSl9fWZ1bmN0aW9uIGludGVnZXJSZWFkVmFsdWVGcm9tUG9pbnRlcihBLGcsSSl7c3dpdGNoKGcpe2Nhc2UgMDpyZXR1cm4gST9mdW5jdGlvbiByZWFkUzhGcm9tUG9pbnRlcihBKXtyZXR1cm4geVtBXX06ZnVuY3Rpb24gcmVhZFU4RnJvbVBvaW50ZXIoQSl7cmV0dXJuIGhbQV19O2Nhc2UgMTpyZXR1cm4gST9mdW5jdGlvbiByZWFkUzE2RnJvbVBvaW50ZXIoQSl7cmV0dXJuIFlbQT4+MV19OmZ1bmN0aW9uIHJlYWRVMTZGcm9tUG9pbnRlcihBKXtyZXR1cm4gTltBPj4xXX07Y2FzZSAyOnJldHVybiBJP2Z1bmN0aW9uIHJlYWRTMzJGcm9tUG9pbnRlcihBKXtyZXR1cm4gY1tBPj4yXX06ZnVuY3Rpb24gcmVhZFUzMkZyb21Qb2ludGVyKEEpe3JldHVybiBHW0E+PjJdfTtjYXNlIDM6cmV0dXJuIEk/ZnVuY3Rpb24gcmVhZFM2NEZyb21Qb2ludGVyKEEpe3JldHVybiBSW0E+PjNdfTpmdW5jdGlvbiByZWFkVTY0RnJvbVBvaW50ZXIoQSl7cmV0dXJuIEZbQT4+M119O2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBpbnRlZ2VyIHR5cGU6ICIrQSl9fWZ1bmN0aW9uIGdldFNoaWZ0RnJvbVNpemUoQSl7c3dpdGNoKEEpe2Nhc2UgMTpyZXR1cm4gMDtjYXNlIDI6cmV0dXJuIDE7Y2FzZSA0OnJldHVybiAyO2Nhc2UgODpyZXR1cm4gMztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gdHlwZSBzaXplOiAiK0EpfX1mdW5jdGlvbiBDbGFzc0hhbmRsZV9pc0FsaWFzT2YoQSl7aWYoISh0aGlzIGluc3RhbmNlb2YgQ2xhc3NIYW5kbGUpKXJldHVybiExO2lmKCEoQSBpbnN0YW5jZW9mIENsYXNzSGFuZGxlKSlyZXR1cm4hMTtmb3IodmFyIGc9dGhpcy4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcyxJPXRoaXMuJCQucHRyLEM9QS4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcyxCPUEuJCQucHRyO2cuYmFzZUNsYXNzOylJPWcudXBjYXN0KEkpLGc9Zy5iYXNlQ2xhc3M7Zm9yKDtDLmJhc2VDbGFzczspQj1DLnVwY2FzdChCKSxDPUMuYmFzZUNsYXNzO3JldHVybiBnPT09QyYmST09PUJ9ZnVuY3Rpb24gdGhyb3dJbnN0YW5jZUFscmVhZHlEZWxldGVkKEEpe3Rocm93QmluZGluZ0Vycm9yKGZ1bmN0aW9uIGdldEluc3RhbmNlVHlwZU5hbWUoQSl7cmV0dXJuIEEuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MubmFtZX0oQSkrIiBpbnN0YW5jZSBhbHJlYWR5IGRlbGV0ZWQiKX12YXIgVz0hMTtmdW5jdGlvbiBkZXRhY2hGaW5hbGl6ZXIoQSl7fWZ1bmN0aW9uIHJlbGVhc2VDbGFzc0hhbmRsZShBKXtBLmNvdW50LnZhbHVlLT0xLDA9PT1BLmNvdW50LnZhbHVlJiZmdW5jdGlvbiBydW5EZXN0cnVjdG9yKEEpe0Euc21hcnRQdHI/QS5zbWFydFB0clR5cGUucmF3RGVzdHJ1Y3RvcihBLnNtYXJ0UHRyKTpBLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLnJhd0Rlc3RydWN0b3IoQS5wdHIpfShBKX1mdW5jdGlvbiBkb3duY2FzdFBvaW50ZXIoQSxnLEkpe2lmKGc9PT1JKXJldHVybiBBO2lmKHZvaWQgMD09PUkuYmFzZUNsYXNzKXJldHVybiBudWxsO3ZhciBDPWRvd25jYXN0UG9pbnRlcihBLGcsSS5iYXNlQ2xhc3MpO3JldHVybiBudWxsPT09Qz9udWxsOkkuZG93bmNhc3QoQyl9dmFyIFY9e307ZnVuY3Rpb24gZ2V0SW5oZXJpdGVkSW5zdGFuY2VDb3VudCgpe3JldHVybiBPYmplY3Qua2V5cyhfKS5sZW5ndGh9ZnVuY3Rpb24gZ2V0TGl2ZUluaGVyaXRlZEluc3RhbmNlcygpe3ZhciBBPVtdO2Zvcih2YXIgZyBpbiBfKV8uaGFzT3duUHJvcGVydHkoZykmJkEucHVzaChfW2ddKTtyZXR1cm4gQX12YXIgWj1bXTtmdW5jdGlvbiBmbHVzaFBlbmRpbmdEZWxldGVzKCl7Zm9yKDtaLmxlbmd0aDspe3ZhciBBPVoucG9wKCk7QS4kJC5kZWxldGVTY2hlZHVsZWQ9ITEsQS5kZWxldGUoKX19dmFyIE89dm9pZCAwO2Z1bmN0aW9uIHNldERlbGF5RnVuY3Rpb24oQSl7Tz1BLFoubGVuZ3RoJiZPJiZPKGZsdXNoUGVuZGluZ0RlbGV0ZXMpfXZhciBfPXt9O2Z1bmN0aW9uIGdldEluaGVyaXRlZEluc3RhbmNlKEEsZyl7cmV0dXJuIGc9ZnVuY3Rpb24gZ2V0QmFzZXN0UG9pbnRlcihBLGcpe2Zvcih2b2lkIDA9PT1nJiZ0aHJvd0JpbmRpbmdFcnJvcigicHRyIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkIik7QS5iYXNlQ2xhc3M7KWc9QS51cGNhc3QoZyksQT1BLmJhc2VDbGFzcztyZXR1cm4gZ30oQSxnKSxfW2ddfWZ1bmN0aW9uIG1ha2VDbGFzc0hhbmRsZShBLGcpe3JldHVybiBnLnB0clR5cGUmJmcucHRyfHx0aHJvd0ludGVybmFsRXJyb3IoIm1ha2VDbGFzc0hhbmRsZSByZXF1aXJlcyBwdHIgYW5kIHB0clR5cGUiKSwhIWcuc21hcnRQdHJUeXBlIT0hIWcuc21hcnRQdHImJnRocm93SW50ZXJuYWxFcnJvcigiQm90aCBzbWFydFB0clR5cGUgYW5kIHNtYXJ0UHRyIG11c3QgYmUgc3BlY2lmaWVkIiksZy5jb3VudD17dmFsdWU6MX0sYXR0YWNoRmluYWxpemVyKE9iamVjdC5jcmVhdGUoQSx7JCQ6e3ZhbHVlOmd9fSkpfWZ1bmN0aW9uIFJlZ2lzdGVyZWRQb2ludGVyX2Zyb21XaXJlVHlwZShBKXt2YXIgZz10aGlzLmdldFBvaW50ZWUoQSk7aWYoIWcpcmV0dXJuIHRoaXMuZGVzdHJ1Y3RvcihBKSxudWxsO3ZhciBJPWdldEluaGVyaXRlZEluc3RhbmNlKHRoaXMucmVnaXN0ZXJlZENsYXNzLGcpO2lmKHZvaWQgMCE9PUkpe2lmKDA9PT1JLiQkLmNvdW50LnZhbHVlKXJldHVybiBJLiQkLnB0cj1nLEkuJCQuc21hcnRQdHI9QSxJLmNsb25lKCk7dmFyIEM9SS5jbG9uZSgpO3JldHVybiB0aGlzLmRlc3RydWN0b3IoQSksQ31mdW5jdGlvbiBtYWtlRGVmYXVsdEhhbmRsZSgpe3JldHVybiB0aGlzLmlzU21hcnRQb2ludGVyP21ha2VDbGFzc0hhbmRsZSh0aGlzLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTp0aGlzLnBvaW50ZWVUeXBlLHB0cjpnLHNtYXJ0UHRyVHlwZTp0aGlzLHNtYXJ0UHRyOkF9KTptYWtlQ2xhc3NIYW5kbGUodGhpcy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dGhpcyxwdHI6QX0pfXZhciBCLEU9dGhpcy5yZWdpc3RlcmVkQ2xhc3MuZ2V0QWN0dWFsVHlwZShnKSxRPVZbRV07aWYoIVEpcmV0dXJuIG1ha2VEZWZhdWx0SGFuZGxlLmNhbGwodGhpcyk7Qj10aGlzLmlzQ29uc3Q/US5jb25zdFBvaW50ZXJUeXBlOlEucG9pbnRlclR5cGU7dmFyIG89ZG93bmNhc3RQb2ludGVyKGcsdGhpcy5yZWdpc3RlcmVkQ2xhc3MsQi5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiBudWxsPT09bz9tYWtlRGVmYXVsdEhhbmRsZS5jYWxsKHRoaXMpOnRoaXMuaXNTbWFydFBvaW50ZXI/bWFrZUNsYXNzSGFuZGxlKEIucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLHtwdHJUeXBlOkIscHRyOm8sc21hcnRQdHJUeXBlOnRoaXMsc21hcnRQdHI6QX0pOm1ha2VDbGFzc0hhbmRsZShCLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTpCLHB0cjpvfSl9ZnVuY3Rpb24gYXR0YWNoRmluYWxpemVyKEEpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnk/KGF0dGFjaEZpbmFsaXplcj1BPT5BLEEpOihXPW5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeSgoQT0+e3JlbGVhc2VDbGFzc0hhbmRsZShBLiQkKX0pKSxkZXRhY2hGaW5hbGl6ZXI9QT0+Vy51bnJlZ2lzdGVyKEEpLChhdHRhY2hGaW5hbGl6ZXI9QT0+e3ZhciBnPUEuJCQ7aWYoZy5zbWFydFB0cil7dmFyIEk9eyQkOmd9O1cucmVnaXN0ZXIoQSxJLEEpfXJldHVybiBBfSkoQSkpfWZ1bmN0aW9uIENsYXNzSGFuZGxlX2Nsb25lKCl7aWYodGhpcy4kJC5wdHJ8fHRocm93SW5zdGFuY2VBbHJlYWR5RGVsZXRlZCh0aGlzKSx0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlKXJldHVybiB0aGlzLiQkLmNvdW50LnZhbHVlKz0xLHRoaXM7dmFyIEEsZz1hdHRhY2hGaW5hbGl6ZXIoT2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykseyQkOnt2YWx1ZTooQT10aGlzLiQkLHtjb3VudDpBLmNvdW50LGRlbGV0ZVNjaGVkdWxlZDpBLmRlbGV0ZVNjaGVkdWxlZCxwcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZTpBLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlLHB0cjpBLnB0cixwdHJUeXBlOkEucHRyVHlwZSxzbWFydFB0cjpBLnNtYXJ0UHRyLHNtYXJ0UHRyVHlwZTpBLnNtYXJ0UHRyVHlwZX0pfX0pKTtyZXR1cm4gZy4kJC5jb3VudC52YWx1ZSs9MSxnLiQkLmRlbGV0ZVNjaGVkdWxlZD0hMSxnfWZ1bmN0aW9uIENsYXNzSGFuZGxlX2RlbGV0ZSgpe3RoaXMuJCQucHRyfHx0aHJvd0luc3RhbmNlQWxyZWFkeURlbGV0ZWQodGhpcyksdGhpcy4kJC5kZWxldGVTY2hlZHVsZWQmJiF0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlJiZ0aHJvd0JpbmRpbmdFcnJvcigiT2JqZWN0IGFscmVhZHkgc2NoZWR1bGVkIGZvciBkZWxldGlvbiIpLGRldGFjaEZpbmFsaXplcih0aGlzKSxyZWxlYXNlQ2xhc3NIYW5kbGUodGhpcy4kJCksdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZXx8KHRoaXMuJCQuc21hcnRQdHI9dm9pZCAwLHRoaXMuJCQucHRyPXZvaWQgMCl9ZnVuY3Rpb24gQ2xhc3NIYW5kbGVfaXNEZWxldGVkKCl7cmV0dXJuIXRoaXMuJCQucHRyfWZ1bmN0aW9uIENsYXNzSGFuZGxlX2RlbGV0ZUxhdGVyKCl7cmV0dXJuIHRoaXMuJCQucHRyfHx0aHJvd0luc3RhbmNlQWxyZWFkeURlbGV0ZWQodGhpcyksdGhpcy4kJC5kZWxldGVTY2hlZHVsZWQmJiF0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlJiZ0aHJvd0JpbmRpbmdFcnJvcigiT2JqZWN0IGFscmVhZHkgc2NoZWR1bGVkIGZvciBkZWxldGlvbiIpLFoucHVzaCh0aGlzKSwxPT09Wi5sZW5ndGgmJk8mJk8oZmx1c2hQZW5kaW5nRGVsZXRlcyksdGhpcy4kJC5kZWxldGVTY2hlZHVsZWQ9ITAsdGhpc31mdW5jdGlvbiBDbGFzc0hhbmRsZSgpe31mdW5jdGlvbiBlbnN1cmVPdmVybG9hZFRhYmxlKEEsZyxJKXtpZih2b2lkIDA9PT1BW2ddLm92ZXJsb2FkVGFibGUpe3ZhciBDPUFbZ107QVtnXT1mdW5jdGlvbigpe3JldHVybiBBW2ddLm92ZXJsb2FkVGFibGUuaGFzT3duUHJvcGVydHkoYXJndW1lbnRzLmxlbmd0aCl8fHRocm93QmluZGluZ0Vycm9yKCJGdW5jdGlvbiAnIitJKyInIGNhbGxlZCB3aXRoIGFuIGludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyAoIithcmd1bWVudHMubGVuZ3RoKyIpIC0gZXhwZWN0cyBvbmUgb2YgKCIrQVtnXS5vdmVybG9hZFRhYmxlKyIpISIpLEFbZ10ub3ZlcmxvYWRUYWJsZVthcmd1bWVudHMubGVuZ3RoXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LEFbZ10ub3ZlcmxvYWRUYWJsZT1bXSxBW2ddLm92ZXJsb2FkVGFibGVbQy5hcmdDb3VudF09Q319ZnVuY3Rpb24gZXhwb3NlUHVibGljU3ltYm9sKEEsSSxDKXtnLmhhc093blByb3BlcnR5KEEpPygodm9pZCAwPT09Q3x8dm9pZCAwIT09Z1tBXS5vdmVybG9hZFRhYmxlJiZ2b2lkIDAhPT1nW0FdLm92ZXJsb2FkVGFibGVbQ10pJiZ0aHJvd0JpbmRpbmdFcnJvcigiQ2Fubm90IHJlZ2lzdGVyIHB1YmxpYyBuYW1lICciK0ErIicgdHdpY2UiKSxlbnN1cmVPdmVybG9hZFRhYmxlKGcsQSxBKSxnLmhhc093blByb3BlcnR5KEMpJiZ0aHJvd0JpbmRpbmdFcnJvcigiQ2Fubm90IHJlZ2lzdGVyIG11bHRpcGxlIG92ZXJsb2FkcyBvZiBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGFyZ3VtZW50cyAoIitDKyIpISIpLGdbQV0ub3ZlcmxvYWRUYWJsZVtDXT1JKTooZ1tBXT1JLHZvaWQgMCE9PUMmJihnW0FdLm51bUFyZ3VtZW50cz1DKSl9ZnVuY3Rpb24gUmVnaXN0ZXJlZENsYXNzKEEsZyxJLEMsQixFLFEsbyl7dGhpcy5uYW1lPUEsdGhpcy5jb25zdHJ1Y3Rvcj1nLHRoaXMuaW5zdGFuY2VQcm90b3R5cGU9SSx0aGlzLnJhd0Rlc3RydWN0b3I9Qyx0aGlzLmJhc2VDbGFzcz1CLHRoaXMuZ2V0QWN0dWFsVHlwZT1FLHRoaXMudXBjYXN0PVEsdGhpcy5kb3duY2FzdD1vLHRoaXMucHVyZVZpcnR1YWxGdW5jdGlvbnM9W119ZnVuY3Rpb24gdXBjYXN0UG9pbnRlcihBLGcsSSl7Zm9yKDtnIT09STspZy51cGNhc3R8fHRocm93QmluZGluZ0Vycm9yKCJFeHBlY3RlZCBudWxsIG9yIGluc3RhbmNlIG9mICIrSS5uYW1lKyIsIGdvdCBhbiBpbnN0YW5jZSBvZiAiK2cubmFtZSksQT1nLnVwY2FzdChBKSxnPWcuYmFzZUNsYXNzO3JldHVybiBBfWZ1bmN0aW9uIGNvbnN0Tm9TbWFydFB0clJhd1BvaW50ZXJUb1dpcmVUeXBlKEEsZyl7aWYobnVsbD09PWcpcmV0dXJuIHRoaXMuaXNSZWZlcmVuY2UmJnRocm93QmluZGluZ0Vycm9yKCJudWxsIGlzIG5vdCBhIHZhbGlkICIrdGhpcy5uYW1lKSwwO2cuJCR8fHRocm93QmluZGluZ0Vycm9yKCdDYW5ub3QgcGFzcyAiJytlbWJpbmRSZXByKGcpKyciIGFzIGEgJyt0aGlzLm5hbWUpLGcuJCQucHRyfHx0aHJvd0JpbmRpbmdFcnJvcigiQ2Fubm90IHBhc3MgZGVsZXRlZCBvYmplY3QgYXMgYSBwb2ludGVyIG9mIHR5cGUgIit0aGlzLm5hbWUpO3ZhciBJPWcuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3M7cmV0dXJuIHVwY2FzdFBvaW50ZXIoZy4kJC5wdHIsSSx0aGlzLnJlZ2lzdGVyZWRDbGFzcyl9ZnVuY3Rpb24gZ2VuZXJpY1BvaW50ZXJUb1dpcmVUeXBlKEEsZyl7dmFyIEk7aWYobnVsbD09PWcpcmV0dXJuIHRoaXMuaXNSZWZlcmVuY2UmJnRocm93QmluZGluZ0Vycm9yKCJudWxsIGlzIG5vdCBhIHZhbGlkICIrdGhpcy5uYW1lKSx0aGlzLmlzU21hcnRQb2ludGVyPyhJPXRoaXMucmF3Q29uc3RydWN0b3IoKSxudWxsIT09QSYmQS5wdXNoKHRoaXMucmF3RGVzdHJ1Y3RvcixJKSxJKTowO2cuJCR8fHRocm93QmluZGluZ0Vycm9yKCdDYW5ub3QgcGFzcyAiJytlbWJpbmRSZXByKGcpKyciIGFzIGEgJyt0aGlzLm5hbWUpLGcuJCQucHRyfHx0aHJvd0JpbmRpbmdFcnJvcigiQ2Fubm90IHBhc3MgZGVsZXRlZCBvYmplY3QgYXMgYSBwb2ludGVyIG9mIHR5cGUgIit0aGlzLm5hbWUpLCF0aGlzLmlzQ29uc3QmJmcuJCQucHRyVHlwZS5pc0NvbnN0JiZ0aHJvd0JpbmRpbmdFcnJvcigiQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAiKyhnLiQkLnNtYXJ0UHRyVHlwZT9nLiQkLnNtYXJ0UHRyVHlwZS5uYW1lOmcuJCQucHRyVHlwZS5uYW1lKSsiIHRvIHBhcmFtZXRlciB0eXBlICIrdGhpcy5uYW1lKTt2YXIgQz1nLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzO2lmKEk9dXBjYXN0UG9pbnRlcihnLiQkLnB0cixDLHRoaXMucmVnaXN0ZXJlZENsYXNzKSx0aGlzLmlzU21hcnRQb2ludGVyKXN3aXRjaCh2b2lkIDA9PT1nLiQkLnNtYXJ0UHRyJiZ0aHJvd0JpbmRpbmdFcnJvcigiUGFzc2luZyByYXcgcG9pbnRlciB0byBzbWFydCBwb2ludGVyIGlzIGlsbGVnYWwiKSx0aGlzLnNoYXJpbmdQb2xpY3kpe2Nhc2UgMDpnLiQkLnNtYXJ0UHRyVHlwZT09PXRoaXM/ST1nLiQkLnNtYXJ0UHRyOnRocm93QmluZGluZ0Vycm9yKCJDYW5ub3QgY29udmVydCBhcmd1bWVudCBvZiB0eXBlICIrKGcuJCQuc21hcnRQdHJUeXBlP2cuJCQuc21hcnRQdHJUeXBlLm5hbWU6Zy4kJC5wdHJUeXBlLm5hbWUpKyIgdG8gcGFyYW1ldGVyIHR5cGUgIit0aGlzLm5hbWUpO2JyZWFrO2Nhc2UgMTpJPWcuJCQuc21hcnRQdHI7YnJlYWs7Y2FzZSAyOmlmKGcuJCQuc21hcnRQdHJUeXBlPT09dGhpcylJPWcuJCQuc21hcnRQdHI7ZWxzZXt2YXIgQj1nLmNsb25lKCk7ST10aGlzLnJhd1NoYXJlKEksQ0EudG9IYW5kbGUoKGZ1bmN0aW9uKCl7Qi5kZWxldGUoKX0pKSksbnVsbCE9PUEmJkEucHVzaCh0aGlzLnJhd0Rlc3RydWN0b3IsSSl9YnJlYWs7ZGVmYXVsdDp0aHJvd0JpbmRpbmdFcnJvcigiVW5zdXBwb3J0aW5nIHNoYXJpbmcgcG9saWN5Iil9cmV0dXJuIEl9ZnVuY3Rpb24gbm9uQ29uc3ROb1NtYXJ0UHRyUmF3UG9pbnRlclRvV2lyZVR5cGUoQSxnKXtpZihudWxsPT09ZylyZXR1cm4gdGhpcy5pc1JlZmVyZW5jZSYmdGhyb3dCaW5kaW5nRXJyb3IoIm51bGwgaXMgbm90IGEgdmFsaWQgIit0aGlzLm5hbWUpLDA7Zy4kJHx8dGhyb3dCaW5kaW5nRXJyb3IoJ0Nhbm5vdCBwYXNzICInK2VtYmluZFJlcHIoZykrJyIgYXMgYSAnK3RoaXMubmFtZSksZy4kJC5wdHJ8fHRocm93QmluZGluZ0Vycm9yKCJDYW5ub3QgcGFzcyBkZWxldGVkIG9iamVjdCBhcyBhIHBvaW50ZXIgb2YgdHlwZSAiK3RoaXMubmFtZSksZy4kJC5wdHJUeXBlLmlzQ29uc3QmJnRocm93QmluZGluZ0Vycm9yKCJDYW5ub3QgY29udmVydCBhcmd1bWVudCBvZiB0eXBlICIrZy4kJC5wdHJUeXBlLm5hbWUrIiB0byBwYXJhbWV0ZXIgdHlwZSAiK3RoaXMubmFtZSk7dmFyIEk9Zy4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcztyZXR1cm4gdXBjYXN0UG9pbnRlcihnLiQkLnB0cixJLHRoaXMucmVnaXN0ZXJlZENsYXNzKX1mdW5jdGlvbiBzaW1wbGVSZWFkVmFsdWVGcm9tUG9pbnRlcihBKXtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoY1tBPj4yXSl9ZnVuY3Rpb24gUmVnaXN0ZXJlZFBvaW50ZXJfZ2V0UG9pbnRlZShBKXtyZXR1cm4gdGhpcy5yYXdHZXRQb2ludGVlJiYoQT10aGlzLnJhd0dldFBvaW50ZWUoQSkpLEF9ZnVuY3Rpb24gUmVnaXN0ZXJlZFBvaW50ZXJfZGVzdHJ1Y3RvcihBKXt0aGlzLnJhd0Rlc3RydWN0b3ImJnRoaXMucmF3RGVzdHJ1Y3RvcihBKX1mdW5jdGlvbiBSZWdpc3RlcmVkUG9pbnRlcl9kZWxldGVPYmplY3QoQSl7bnVsbCE9PUEmJkEuZGVsZXRlKCl9ZnVuY3Rpb24gUmVnaXN0ZXJlZFBvaW50ZXIoQSxnLEksQyxCLEUsUSxvLGksRCxlKXt0aGlzLm5hbWU9QSx0aGlzLnJlZ2lzdGVyZWRDbGFzcz1nLHRoaXMuaXNSZWZlcmVuY2U9SSx0aGlzLmlzQ29uc3Q9Qyx0aGlzLmlzU21hcnRQb2ludGVyPUIsdGhpcy5wb2ludGVlVHlwZT1FLHRoaXMuc2hhcmluZ1BvbGljeT1RLHRoaXMucmF3R2V0UG9pbnRlZT1vLHRoaXMucmF3Q29uc3RydWN0b3I9aSx0aGlzLnJhd1NoYXJlPUQsdGhpcy5yYXdEZXN0cnVjdG9yPWUsQnx8dm9pZCAwIT09Zy5iYXNlQ2xhc3M/dGhpcy50b1dpcmVUeXBlPWdlbmVyaWNQb2ludGVyVG9XaXJlVHlwZTpDPyh0aGlzLnRvV2lyZVR5cGU9Y29uc3ROb1NtYXJ0UHRyUmF3UG9pbnRlclRvV2lyZVR5cGUsdGhpcy5kZXN0cnVjdG9yRnVuY3Rpb249bnVsbCk6KHRoaXMudG9XaXJlVHlwZT1ub25Db25zdE5vU21hcnRQdHJSYXdQb2ludGVyVG9XaXJlVHlwZSx0aGlzLmRlc3RydWN0b3JGdW5jdGlvbj1udWxsKX12YXIgJD1bXTtmdW5jdGlvbiBlbWJpbmRfX3JlcXVpcmVGdW5jdGlvbihBLGcpe0E9cmVhZExhdGluMVN0cmluZyhBKTt2YXIgST1mdW5jdGlvbiBtYWtlRHluQ2FsbGVyKCl7cmV0dXJuIGZ1bmN0aW9uIGdldFdhc21UYWJsZUVudHJ5KEEpe3ZhciBnPSRbQV07cmV0dXJuIGd8fChBPj0kLmxlbmd0aCYmKCQubGVuZ3RoPUErMSksJFtBXT1nPWsuZ2V0KEEpKSxnfShnKX0oKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgSSYmdGhyb3dCaW5kaW5nRXJyb3IoInVua25vd24gZnVuY3Rpb24gcG9pbnRlciB3aXRoIHNpZ25hdHVyZSAiK0ErIjogIitnKSxJfXZhciBBQT12b2lkIDA7ZnVuY3Rpb24gZ2V0VHlwZU5hbWUoQSl7dmFyIGc9ZUEoQSksST1yZWFkTGF0aW4xU3RyaW5nKGcpO3JldHVybiBpQShnKSxJfWZ1bmN0aW9uIHRocm93VW5ib3VuZFR5cGVFcnJvcihBLGcpe3ZhciBJPVtdLEM9e307dGhyb3cgZy5mb3JFYWNoKChmdW5jdGlvbiB2aXNpdChBKXtDW0FdfHxiW0FdfHwoeFtBXT94W0FdLmZvckVhY2godmlzaXQpOihJLnB1c2goQSksQ1tBXT0hMCkpfSkpLG5ldyBBQShBKyI6ICIrSS5tYXAoZ2V0VHlwZU5hbWUpLmpvaW4oWyIsICJdKSl9ZnVuY3Rpb24gaGVhcDMyVmVjdG9yVG9BcnJheShBLGcpe2Zvcih2YXIgST1bXSxDPTA7QzxBO0MrKylJLnB1c2goR1tnKzQqQz4+Ml0pO3JldHVybiBJfWZ1bmN0aW9uIHJ1bkRlc3RydWN0b3JzKEEpe2Zvcig7QS5sZW5ndGg7KXt2YXIgZz1BLnBvcCgpO0EucG9wKCkoZyl9fWZ1bmN0aW9uIGNyYWZ0SW52b2tlckZ1bmN0aW9uKEEsZyxJLEMsQil7dmFyIEU9Zy5sZW5ndGg7RTwyJiZ0aHJvd0JpbmRpbmdFcnJvcigiYXJnVHlwZXMgYXJyYXkgc2l6ZSBtaXNtYXRjaCEgTXVzdCBhdCBsZWFzdCBnZXQgcmV0dXJuIHZhbHVlIGFuZCAndGhpcycgdHlwZXMhIik7Zm9yKHZhciBRPW51bGwhPT1nWzFdJiZudWxsIT09SSxvPSExLGk9MTtpPGcubGVuZ3RoOysraSlpZihudWxsIT09Z1tpXSYmdm9pZCAwPT09Z1tpXS5kZXN0cnVjdG9yRnVuY3Rpb24pe289ITA7YnJlYWt9dmFyIEQ9InZvaWQiIT09Z1swXS5uYW1lLGU9IiIsdD0iIjtmb3IoaT0wO2k8RS0yOysraSllKz0oMCE9PWk/IiwgIjoiIikrImFyZyIraSx0Kz0oMCE9PWk/IiwgIjoiIikrImFyZyIraSsiV2lyZWQiO3ZhciByPSJyZXR1cm4gZnVuY3Rpb24gIittYWtlTGVnYWxGdW5jdGlvbk5hbWUoQSkrIigiK2UrIikge1xuaWYgKGFyZ3VtZW50cy5sZW5ndGggIT09ICIrKEUtMikrIikge1xudGhyb3dCaW5kaW5nRXJyb3IoJ2Z1bmN0aW9uICIrQSsiIGNhbGxlZCB3aXRoICcgKyBhcmd1bWVudHMubGVuZ3RoICsgJyBhcmd1bWVudHMsIGV4cGVjdGVkICIrKEUtMikrIiBhcmdzIScpO1xufVxuIjtvJiYocis9InZhciBkZXN0cnVjdG9ycyA9IFtdO1xuIik7dmFyIGE9bz8iZGVzdHJ1Y3RvcnMiOiJudWxsIixNPVsidGhyb3dCaW5kaW5nRXJyb3IiLCJpbnZva2VyIiwiZm4iLCJydW5EZXN0cnVjdG9ycyIsInJldFR5cGUiLCJjbGFzc1BhcmFtIl0sbj1bdGhyb3dCaW5kaW5nRXJyb3IsQyxCLHJ1bkRlc3RydWN0b3JzLGdbMF0sZ1sxXV07Zm9yKFEmJihyKz0idmFyIHRoaXNXaXJlZCA9IGNsYXNzUGFyYW0udG9XaXJlVHlwZSgiK2ErIiwgdGhpcyk7XG4iKSxpPTA7aTxFLTI7KytpKXIrPSJ2YXIgYXJnIitpKyJXaXJlZCA9IGFyZ1R5cGUiK2krIi50b1dpcmVUeXBlKCIrYSsiLCBhcmciK2krIik7IC8vICIrZ1tpKzJdLm5hbWUrIlxuIixNLnB1c2goImFyZ1R5cGUiK2kpLG4ucHVzaChnW2krMl0pO2lmKFEmJih0PSJ0aGlzV2lyZWQiKyh0Lmxlbmd0aD4wPyIsICI6IiIpK3QpLHIrPShEPyJ2YXIgcnYgPSAiOiIiKSsiaW52b2tlcihmbiIrKHQubGVuZ3RoPjA/IiwgIjoiIikrdCsiKTtcbiIsbylyKz0icnVuRGVzdHJ1Y3RvcnMoZGVzdHJ1Y3RvcnMpO1xuIjtlbHNlIGZvcihpPVE/MToyO2k8Zy5sZW5ndGg7KytpKXt2YXIgdz0xPT09aT8idGhpc1dpcmVkIjoiYXJnIisoaS0yKSsiV2lyZWQiO251bGwhPT1nW2ldLmRlc3RydWN0b3JGdW5jdGlvbiYmKHIrPXcrIl9kdG9yKCIrdysiKTsgLy8gIitnW2ldLm5hbWUrIlxuIixNLnB1c2godysiX2R0b3IiKSxuLnB1c2goZ1tpXS5kZXN0cnVjdG9yRnVuY3Rpb24pKX1yZXR1cm4gRCYmKHIrPSJ2YXIgcmV0ID0gcmV0VHlwZS5mcm9tV2lyZVR5cGUocnYpO1xucmV0dXJuIHJldDtcbiIpLHIrPSJ9XG4iLE0ucHVzaChyKSxmdW5jdGlvbiBuZXdfKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoIm5ld18gY2FsbGVkIHdpdGggY29uc3RydWN0b3IgdHlwZSAiK3R5cGVvZiBBKyIgd2hpY2ggaXMgbm90IGEgZnVuY3Rpb24iKTt2YXIgST1jcmVhdGVOYW1lZEZ1bmN0aW9uKEEubmFtZXx8InVua25vd25GdW5jdGlvbk5hbWUiLChmdW5jdGlvbigpe30pKTtJLnByb3RvdHlwZT1BLnByb3RvdHlwZTt2YXIgQz1uZXcgSSxCPUEuYXBwbHkoQyxnKTtyZXR1cm4gQiBpbnN0YW5jZW9mIE9iamVjdD9COkN9KEZ1bmN0aW9uLE0pLmFwcGx5KG51bGwsbil9dmFyIGdBPVtdLElBPVt7fSx7dmFsdWU6dm9pZCAwfSx7dmFsdWU6bnVsbH0se3ZhbHVlOiEwfSx7dmFsdWU6ITF9XTtmdW5jdGlvbiBfX2VtdmFsX2RlY3JlZihBKXtBPjQmJjA9PS0tSUFbQV0ucmVmY291bnQmJihJQVtBXT12b2lkIDAsZ0EucHVzaChBKSl9ZnVuY3Rpb24gY291bnRfZW12YWxfaGFuZGxlcygpe2Zvcih2YXIgQT0wLGc9NTtnPElBLmxlbmd0aDsrK2cpdm9pZCAwIT09SUFbZ10mJisrQTtyZXR1cm4gQX1mdW5jdGlvbiBnZXRfZmlyc3RfZW12YWwoKXtmb3IodmFyIEE9NTtBPElBLmxlbmd0aDsrK0EpaWYodm9pZCAwIT09SUFbQV0pcmV0dXJuIElBW0FdO3JldHVybiBudWxsfXZhciBDQT17dG9WYWx1ZTpBPT4oQXx8dGhyb3dCaW5kaW5nRXJyb3IoIkNhbm5vdCB1c2UgZGVsZXRlZCB2YWwuIGhhbmRsZSA9ICIrQSksSUFbQV0udmFsdWUpLHRvSGFuZGxlOkE9Pntzd2l0Y2goQSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSBudWxsOnJldHVybiAyO2Nhc2UhMDpyZXR1cm4gMztjYXNlITE6cmV0dXJuIDQ7ZGVmYXVsdDp2YXIgZz1nQS5sZW5ndGg/Z0EucG9wKCk6SUEubGVuZ3RoO3JldHVybiBJQVtnXT17cmVmY291bnQ6MSx2YWx1ZTpBfSxnfX19O2Z1bmN0aW9uIGVudW1SZWFkVmFsdWVGcm9tUG9pbnRlcihBLGcsSSl7c3dpdGNoKGcpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oQSl7dmFyIGc9ST95Omg7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKGdbQV0pfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKEEpe3ZhciBnPUk/WTpOO3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShnW0E+PjFdKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihBKXt2YXIgZz1JP2M6RztyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoZ1tBPj4yXSl9O2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBpbnRlZ2VyIHR5cGU6ICIrQSl9fWZ1bmN0aW9uIHJlcXVpcmVSZWdpc3RlcmVkVHlwZShBLGcpe3ZhciBJPWJbQV07cmV0dXJuIHZvaWQgMD09PUkmJnRocm93QmluZGluZ0Vycm9yKGcrIiBoYXMgdW5rbm93biB0eXBlICIrZ2V0VHlwZU5hbWUoQSkpLEl9ZnVuY3Rpb24gZmxvYXRSZWFkVmFsdWVGcm9tUG9pbnRlcihBLGcpe3N3aXRjaChnKXtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShTW0E+PjJdKX07Y2FzZSAzOnJldHVybiBmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoSltBPj4zXSl9O2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBmbG9hdCB0eXBlOiAiK0EpfX12YXIgQkE9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2Rlcj9uZXcgVGV4dERlY29kZXIoInV0Zi0xNmxlIik6dm9pZCAwO2Z1bmN0aW9uIFVURjE2VG9TdHJpbmcoQSxnKXtmb3IodmFyIEk9QSxDPUk+PjEsQj1DK2cvMjshKEM+PUIpJiZOW0NdOykrK0M7aWYoKEk9Qzw8MSktQT4zMiYmQkEpcmV0dXJuIEJBLmRlY29kZShoLnN1YmFycmF5KEEsSSkpO2Zvcih2YXIgRT0iIixRPTA7IShRPj1nLzIpOysrUSl7dmFyIG89WVtBKzIqUT4+MV07aWYoMD09bylicmVhaztFKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG8pfXJldHVybiBFfWZ1bmN0aW9uIHN0cmluZ1RvVVRGMTYoQSxnLEkpe2lmKHZvaWQgMD09PUkmJihJPTIxNDc0ODM2NDcpLEk8MilyZXR1cm4gMDtmb3IodmFyIEM9ZyxCPShJLT0yKTwyKkEubGVuZ3RoP0kvMjpBLmxlbmd0aCxFPTA7RTxCOysrRSl7dmFyIFE9QS5jaGFyQ29kZUF0KEUpO1lbZz4+MV09USxnKz0yfXJldHVybiBZW2c+PjFdPTAsZy1DfWZ1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGMTYoQSl7cmV0dXJuIDIqQS5sZW5ndGh9ZnVuY3Rpb24gVVRGMzJUb1N0cmluZyhBLGcpe2Zvcih2YXIgST0wLEM9IiI7IShJPj1nLzQpOyl7dmFyIEI9Y1tBKzQqST4+Ml07aWYoMD09QilicmVhaztpZigrK0ksQj49NjU1MzYpe3ZhciBFPUItNjU1MzY7Qys9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxFPj4xMCw1NjMyMHwxMDIzJkUpfWVsc2UgQys9U3RyaW5nLmZyb21DaGFyQ29kZShCKX1yZXR1cm4gQ31mdW5jdGlvbiBzdHJpbmdUb1VURjMyKEEsZyxJKXtpZih2b2lkIDA9PT1JJiYoST0yMTQ3NDgzNjQ3KSxJPDQpcmV0dXJuIDA7Zm9yKHZhciBDPWcsQj1DK0ktNCxFPTA7RTxBLmxlbmd0aDsrK0Upe3ZhciBRPUEuY2hhckNvZGVBdChFKTtpZihRPj01NTI5NiYmUTw9NTczNDMmJihRPTY1NTM2KygoMTAyMyZRKTw8MTApfDEwMjMmQS5jaGFyQ29kZUF0KCsrRSkpLGNbZz4+Ml09USwoZys9NCkrND5CKWJyZWFrfXJldHVybiBjW2c+PjJdPTAsZy1DfWZ1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGMzIoQSl7Zm9yKHZhciBnPTAsST0wO0k8QS5sZW5ndGg7KytJKXt2YXIgQz1BLmNoYXJDb2RlQXQoSSk7Qz49NTUyOTYmJkM8PTU3MzQzJiYrK0ksZys9NH1yZXR1cm4gZ31mdW5jdGlvbiBleGl0SlMoQSxJKXtzPUEsZnVuY3Rpb24gX3Byb2NfZXhpdChBKXtzPUEsa2VlcFJ1bnRpbWVBbGl2ZSgpfHwoZy5vbkV4aXQmJmcub25FeGl0KEEpLGw9ITApLHF1aXRfKEEsbmV3IEV4aXRTdGF0dXMoQSkpfShBKX0hZnVuY3Rpb24gZW1iaW5kX2luaXRfY2hhckNvZGVzKCl7Zm9yKHZhciBBPW5ldyBBcnJheSgyNTYpLGc9MDtnPDI1NjsrK2cpQVtnXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGcpO1Q9QX0oKSx6PWcuQmluZGluZ0Vycm9yPWV4dGVuZEVycm9yKEVycm9yLCJCaW5kaW5nRXJyb3IiKSxYPWcuSW50ZXJuYWxFcnJvcj1leHRlbmRFcnJvcihFcnJvciwiSW50ZXJuYWxFcnJvciIpLGZ1bmN0aW9uIGluaXRfQ2xhc3NIYW5kbGUoKXtDbGFzc0hhbmRsZS5wcm90b3R5cGUuaXNBbGlhc09mPUNsYXNzSGFuZGxlX2lzQWxpYXNPZixDbGFzc0hhbmRsZS5wcm90b3R5cGUuY2xvbmU9Q2xhc3NIYW5kbGVfY2xvbmUsQ2xhc3NIYW5kbGUucHJvdG90eXBlLmRlbGV0ZT1DbGFzc0hhbmRsZV9kZWxldGUsQ2xhc3NIYW5kbGUucHJvdG90eXBlLmlzRGVsZXRlZD1DbGFzc0hhbmRsZV9pc0RlbGV0ZWQsQ2xhc3NIYW5kbGUucHJvdG90eXBlLmRlbGV0ZUxhdGVyPUNsYXNzSGFuZGxlX2RlbGV0ZUxhdGVyfSgpLGZ1bmN0aW9uIGluaXRfZW1iaW5kKCl7Zy5nZXRJbmhlcml0ZWRJbnN0YW5jZUNvdW50PWdldEluaGVyaXRlZEluc3RhbmNlQ291bnQsZy5nZXRMaXZlSW5oZXJpdGVkSW5zdGFuY2VzPWdldExpdmVJbmhlcml0ZWRJbnN0YW5jZXMsZy5mbHVzaFBlbmRpbmdEZWxldGVzPWZsdXNoUGVuZGluZ0RlbGV0ZXMsZy5zZXREZWxheUZ1bmN0aW9uPXNldERlbGF5RnVuY3Rpb259KCksZnVuY3Rpb24gaW5pdF9SZWdpc3RlcmVkUG9pbnRlcigpe1JlZ2lzdGVyZWRQb2ludGVyLnByb3RvdHlwZS5nZXRQb2ludGVlPVJlZ2lzdGVyZWRQb2ludGVyX2dldFBvaW50ZWUsUmVnaXN0ZXJlZFBvaW50ZXIucHJvdG90eXBlLmRlc3RydWN0b3I9UmVnaXN0ZXJlZFBvaW50ZXJfZGVzdHJ1Y3RvcixSZWdpc3RlcmVkUG9pbnRlci5wcm90b3R5cGUuYXJnUGFja0FkdmFuY2U9OCxSZWdpc3RlcmVkUG9pbnRlci5wcm90b3R5cGUucmVhZFZhbHVlRnJvbVBvaW50ZXI9c2ltcGxlUmVhZFZhbHVlRnJvbVBvaW50ZXIsUmVnaXN0ZXJlZFBvaW50ZXIucHJvdG90eXBlLmRlbGV0ZU9iamVjdD1SZWdpc3RlcmVkUG9pbnRlcl9kZWxldGVPYmplY3QsUmVnaXN0ZXJlZFBvaW50ZXIucHJvdG90eXBlLmZyb21XaXJlVHlwZT1SZWdpc3RlcmVkUG9pbnRlcl9mcm9tV2lyZVR5cGV9KCksQUE9Zy5VbmJvdW5kVHlwZUVycm9yPWV4dGVuZEVycm9yKEVycm9yLCJVbmJvdW5kVHlwZUVycm9yIiksZnVuY3Rpb24gaW5pdF9lbXZhbCgpe2cuY291bnRfZW12YWxfaGFuZGxlcz1jb3VudF9lbXZhbF9oYW5kbGVzLGcuZ2V0X2ZpcnN0X2VtdmFsPWdldF9maXJzdF9lbXZhbH0oKTt2YXIgRUE9ImZ1bmN0aW9uIj09dHlwZW9mIGF0b2I/YXRvYjpmdW5jdGlvbihBKXt2YXIgZyxJLEMsQixFLFEsbz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLGk9IiIsRD0wO0E9QS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7ZG97Zz1vLmluZGV4T2YoQS5jaGFyQXQoRCsrKSk8PDJ8KEI9by5pbmRleE9mKEEuY2hhckF0KEQrKykpKT4+NCxJPSgxNSZCKTw8NHwoRT1vLmluZGV4T2YoQS5jaGFyQXQoRCsrKSkpPj4yLEM9KDMmRSk8PDZ8KFE9by5pbmRleE9mKEEuY2hhckF0KEQrKykpKSxpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGcpLDY0IT09RSYmKGkrPVN0cmluZy5mcm9tQ2hhckNvZGUoSSkpLDY0IT09USYmKGkrPVN0cmluZy5mcm9tQ2hhckNvZGUoQykpfXdoaWxlKEQ8QS5sZW5ndGgpO3JldHVybiBpfTtmdW5jdGlvbiB0cnlQYXJzZUFzRGF0YVVSSShBKXtpZihpc0RhdGFVUkkoQSkpcmV0dXJuIGZ1bmN0aW9uIGludEFycmF5RnJvbUJhc2U2NChBKXtpZigiYm9vbGVhbiI9PXR5cGVvZiByJiZyKXt2YXIgZz1CdWZmZXIuZnJvbShBLCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZy5idWZmZXIsZy5ieXRlT2Zmc2V0LGcuYnl0ZUxlbmd0aCl9dHJ5e2Zvcih2YXIgST1FQShBKSxDPW5ldyBVaW50OEFycmF5KEkubGVuZ3RoKSxCPTA7QjxJLmxlbmd0aDsrK0IpQ1tCXT1JLmNoYXJDb2RlQXQoQik7cmV0dXJuIEN9Y2F0Y2goRSl7dGhyb3cgbmV3IEVycm9yKCJDb252ZXJ0aW5nIGJhc2U2NCBzdHJpbmcgdG8gYnl0ZXMgZmFpbGVkLiIpfX0oQS5zbGljZShwLmxlbmd0aCkpfXZhciBRQT17YTpmdW5jdGlvbiBfX19hc3NlcnRfZmFpbChBLGcsSSxDKXthYm9ydCgiQXNzZXJ0aW9uIGZhaWxlZDogIitVVEY4VG9TdHJpbmcoQSkrIiwgYXQ6ICIrW2c/VVRGOFRvU3RyaW5nKGcpOiJ1bmtub3duIGZpbGVuYW1lIixJLEM/VVRGOFRvU3RyaW5nKEMpOiJ1bmtub3duIGZ1bmN0aW9uIl0pfSxsOmZ1bmN0aW9uIF9fZW1iaW5kX3JlZ2lzdGVyX2JpZ2ludChBLGcsSSxDLEIpe2c9cmVhZExhdGluMVN0cmluZyhnKTt2YXIgRT1nZXRTaGlmdEZyb21TaXplKEkpLFE9LTEhPWcuaW5kZXhPZigidSIpO1EmJihCPSgxbjw8NjRuKS0xbikscmVnaXN0ZXJUeXBlKEEse25hbWU6Zyxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oQSl7cmV0dXJuIEF9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oQSxJKXtpZigiYmlnaW50IiE9dHlwZW9mIEkmJiJudW1iZXIiIT10eXBlb2YgSSl0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCAiJytlbWJpbmRSZXByKEkpKyciIHRvICcrdGhpcy5uYW1lKTtpZihJPEN8fEk+Qil0aHJvdyBuZXcgVHlwZUVycm9yKCdQYXNzaW5nIGEgbnVtYmVyICInK2VtYmluZFJlcHIoSSkrJyIgZnJvbSBKUyBzaWRlIHRvIEMvQysrIHNpZGUgdG8gYW4gYXJndW1lbnQgb2YgdHlwZSAiJytnKyciLCB3aGljaCBpcyBvdXRzaWRlIHRoZSB2YWxpZCByYW5nZSBbJytDKyIsICIrQisiXSEiKTtyZXR1cm4gSX0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjppbnRlZ2VyUmVhZFZhbHVlRnJvbVBvaW50ZXIoZyxFLCFRKSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfSxzOmZ1bmN0aW9uIF9fZW1iaW5kX3JlZ2lzdGVyX2Jvb2woQSxnLEksQyxCKXt2YXIgRT1nZXRTaGlmdEZyb21TaXplKEkpO3JlZ2lzdGVyVHlwZShBLHtuYW1lOmc9cmVhZExhdGluMVN0cmluZyhnKSxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oQSl7cmV0dXJuISFBfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIGc/QzpCfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOmZ1bmN0aW9uKEEpe3ZhciBDO2lmKDE9PT1JKUM9eTtlbHNlIGlmKDI9PT1JKUM9WTtlbHNle2lmKDQhPT1JKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gYm9vbGVhbiB0eXBlIHNpemU6ICIrZyk7Qz1jfXJldHVybiB0aGlzLmZyb21XaXJlVHlwZShDW0E+PkVdKX0sZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX0sdTpmdW5jdGlvbiBfX2VtYmluZF9yZWdpc3Rlcl9jbGFzcyhBLEksQyxCLEUsUSxvLGksRCxlLHQscixhKXt0PXJlYWRMYXRpbjFTdHJpbmcodCksUT1lbWJpbmRfX3JlcXVpcmVGdW5jdGlvbihFLFEpLGkmJihpPWVtYmluZF9fcmVxdWlyZUZ1bmN0aW9uKG8saSkpLGUmJihlPWVtYmluZF9fcmVxdWlyZUZ1bmN0aW9uKEQsZSkpLGE9ZW1iaW5kX19yZXF1aXJlRnVuY3Rpb24ocixhKTt2YXIgTT1tYWtlTGVnYWxGdW5jdGlvbk5hbWUodCk7ZXhwb3NlUHVibGljU3ltYm9sKE0sKGZ1bmN0aW9uKCl7dGhyb3dVbmJvdW5kVHlwZUVycm9yKCJDYW5ub3QgY29uc3RydWN0ICIrdCsiIGR1ZSB0byB1bmJvdW5kIHR5cGVzIixbQl0pfSkpLHdoZW5EZXBlbmRlbnRUeXBlc0FyZVJlc29sdmVkKFtBLEksQ10sQj9bQl06W10sKGZ1bmN0aW9uKEkpe3ZhciBDLEU7ST1JWzBdLEU9Qj8oQz1JLnJlZ2lzdGVyZWRDbGFzcykuaW5zdGFuY2VQcm90b3R5cGU6Q2xhc3NIYW5kbGUucHJvdG90eXBlO3ZhciBvPWNyZWF0ZU5hbWVkRnVuY3Rpb24oTSwoZnVuY3Rpb24oKXtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykhPT1EKXRocm93IG5ldyB6KCJVc2UgJ25ldycgdG8gY29uc3RydWN0ICIrdCk7aWYodm9pZCAwPT09ci5jb25zdHJ1Y3Rvcl9ib2R5KXRocm93IG5ldyB6KHQrIiBoYXMgbm8gYWNjZXNzaWJsZSBjb25zdHJ1Y3RvciIpO3ZhciBBPXIuY29uc3RydWN0b3JfYm9keVthcmd1bWVudHMubGVuZ3RoXTtpZih2b2lkIDA9PT1BKXRocm93IG5ldyB6KCJUcmllZCB0byBpbnZva2UgY3RvciBvZiAiK3QrIiB3aXRoIGludmFsaWQgbnVtYmVyIG9mIHBhcmFtZXRlcnMgKCIrYXJndW1lbnRzLmxlbmd0aCsiKSAtIGV4cGVjdGVkICgiK09iamVjdC5rZXlzKHIuY29uc3RydWN0b3JfYm9keSkudG9TdHJpbmcoKSsiKSBwYXJhbWV0ZXJzIGluc3RlYWQhIik7cmV0dXJuIEEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpLEQ9T2JqZWN0LmNyZWF0ZShFLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6b319KTtvLnByb3RvdHlwZT1EO3ZhciByPW5ldyBSZWdpc3RlcmVkQ2xhc3ModCxvLEQsYSxDLFEsaSxlKSxuPW5ldyBSZWdpc3RlcmVkUG9pbnRlcih0LHIsITAsITEsITEpLHc9bmV3IFJlZ2lzdGVyZWRQb2ludGVyKHQrIioiLHIsITEsITEsITEpLHM9bmV3IFJlZ2lzdGVyZWRQb2ludGVyKHQrIiBjb25zdCoiLHIsITEsITAsITEpO3JldHVybiBWW0FdPXtwb2ludGVyVHlwZTp3LGNvbnN0UG9pbnRlclR5cGU6c30sZnVuY3Rpb24gcmVwbGFjZVB1YmxpY1N5bWJvbChBLEksQyl7Zy5oYXNPd25Qcm9wZXJ0eShBKXx8dGhyb3dJbnRlcm5hbEVycm9yKCJSZXBsYWNpbmcgbm9uZXhpc3RhbnQgcHVibGljIHN5bWJvbCIpLHZvaWQgMCE9PWdbQV0ub3ZlcmxvYWRUYWJsZSYmdm9pZCAwIT09Qz9nW0FdLm92ZXJsb2FkVGFibGVbQ109STooZ1tBXT1JLGdbQV0uYXJnQ291bnQ9Qyl9KE0sbyksW24sdyxzXX0pKX0sbzpmdW5jdGlvbiBfX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19jb25zdHJ1Y3RvcihBLGcsSSxDLEIsRSl7IWZ1bmN0aW9uIGFzc2VydChBLGcpe0F8fGFib3J0KGcpfShnPjApO3ZhciBRPWhlYXAzMlZlY3RvclRvQXJyYXkoZyxJKTtCPWVtYmluZF9fcmVxdWlyZUZ1bmN0aW9uKEMsQiksd2hlbkRlcGVuZGVudFR5cGVzQXJlUmVzb2x2ZWQoW10sW0FdLChmdW5jdGlvbihBKXt2YXIgST0iY29uc3RydWN0b3IgIisoQT1BWzBdKS5uYW1lO2lmKHZvaWQgMD09PUEucmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHkmJihBLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5PVtdKSx2b2lkIDAhPT1BLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5W2ctMV0pdGhyb3cgbmV3IHooIkNhbm5vdCByZWdpc3RlciBtdWx0aXBsZSBjb25zdHJ1Y3RvcnMgd2l0aCBpZGVudGljYWwgbnVtYmVyIG9mIHBhcmFtZXRlcnMgKCIrKGctMSkrIikgZm9yIGNsYXNzICciK0EubmFtZSsiJyEgT3ZlcmxvYWQgcmVzb2x1dGlvbiBpcyBjdXJyZW50bHkgb25seSBwZXJmb3JtZWQgdXNpbmcgdGhlIHBhcmFtZXRlciBjb3VudCwgbm90IGFjdHVhbCB0eXBlIGluZm8hIik7cmV0dXJuIEEucmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHlbZy0xXT0oKT0+e3Rocm93VW5ib3VuZFR5cGVFcnJvcigiQ2Fubm90IGNvbnN0cnVjdCAiK0EubmFtZSsiIGR1ZSB0byB1bmJvdW5kIHR5cGVzIixRKX0sd2hlbkRlcGVuZGVudFR5cGVzQXJlUmVzb2x2ZWQoW10sUSwoZnVuY3Rpb24oQyl7cmV0dXJuIEMuc3BsaWNlKDEsMCxudWxsKSxBLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5W2ctMV09Y3JhZnRJbnZva2VyRnVuY3Rpb24oSSxDLG51bGwsQixFKSxbXX0pKSxbXX0pKX0sZTpmdW5jdGlvbiBfX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19mdW5jdGlvbihBLGcsSSxDLEIsRSxRLG8pe3ZhciBpPWhlYXAzMlZlY3RvclRvQXJyYXkoSSxDKTtnPXJlYWRMYXRpbjFTdHJpbmcoZyksRT1lbWJpbmRfX3JlcXVpcmVGdW5jdGlvbihCLEUpLHdoZW5EZXBlbmRlbnRUeXBlc0FyZVJlc29sdmVkKFtdLFtBXSwoZnVuY3Rpb24oQSl7dmFyIEM9KEE9QVswXSkubmFtZSsiLiIrZztmdW5jdGlvbiB1bmJvdW5kVHlwZXNIYW5kbGVyKCl7dGhyb3dVbmJvdW5kVHlwZUVycm9yKCJDYW5ub3QgY2FsbCAiK0MrIiBkdWUgdG8gdW5ib3VuZCB0eXBlcyIsaSl9Zy5zdGFydHNXaXRoKCJAQCIpJiYoZz1TeW1ib2xbZy5zdWJzdHJpbmcoMildKSxvJiZBLnJlZ2lzdGVyZWRDbGFzcy5wdXJlVmlydHVhbEZ1bmN0aW9ucy5wdXNoKGcpO3ZhciBCPUEucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLEQ9QltnXTtyZXR1cm4gdm9pZCAwPT09RHx8dm9pZCAwPT09RC5vdmVybG9hZFRhYmxlJiZELmNsYXNzTmFtZSE9PUEubmFtZSYmRC5hcmdDb3VudD09PUktMj8odW5ib3VuZFR5cGVzSGFuZGxlci5hcmdDb3VudD1JLTIsdW5ib3VuZFR5cGVzSGFuZGxlci5jbGFzc05hbWU9QS5uYW1lLEJbZ109dW5ib3VuZFR5cGVzSGFuZGxlcik6KGVuc3VyZU92ZXJsb2FkVGFibGUoQixnLEMpLEJbZ10ub3ZlcmxvYWRUYWJsZVtJLTJdPXVuYm91bmRUeXBlc0hhbmRsZXIpLHdoZW5EZXBlbmRlbnRUeXBlc0FyZVJlc29sdmVkKFtdLGksKGZ1bmN0aW9uKG8pe3ZhciBpPWNyYWZ0SW52b2tlckZ1bmN0aW9uKEMsbyxBLEUsUSk7cmV0dXJuIHZvaWQgMD09PUJbZ10ub3ZlcmxvYWRUYWJsZT8oaS5hcmdDb3VudD1JLTIsQltnXT1pKTpCW2ddLm92ZXJsb2FkVGFibGVbSS0yXT1pLFtdfSkpLFtdfSkpfSxyOmZ1bmN0aW9uIF9fZW1iaW5kX3JlZ2lzdGVyX2VtdmFsKEEsZyl7cmVnaXN0ZXJUeXBlKEEse25hbWU6Zz1yZWFkTGF0aW4xU3RyaW5nKGcpLGZyb21XaXJlVHlwZTpmdW5jdGlvbihBKXt2YXIgZz1DQS50b1ZhbHVlKEEpO3JldHVybiBfX2VtdmFsX2RlY3JlZihBKSxnfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIENBLnRvSGFuZGxlKGcpfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOnNpbXBsZVJlYWRWYWx1ZUZyb21Qb2ludGVyLGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9LGc6ZnVuY3Rpb24gX19lbWJpbmRfcmVnaXN0ZXJfZW51bShBLGcsSSxDKXt2YXIgQj1nZXRTaGlmdEZyb21TaXplKEkpO2Z1bmN0aW9uIGN0b3IoKXt9Zz1yZWFkTGF0aW4xU3RyaW5nKGcpLGN0b3IudmFsdWVzPXt9LHJlZ2lzdGVyVHlwZShBLHtuYW1lOmcsY29uc3RydWN0b3I6Y3Rvcixmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IudmFsdWVzW0FdfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIGcudmFsdWV9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6ZW51bVJlYWRWYWx1ZUZyb21Qb2ludGVyKGcsQixDKSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pLGV4cG9zZVB1YmxpY1N5bWJvbChnLGN0b3IpfSxmOmZ1bmN0aW9uIF9fZW1iaW5kX3JlZ2lzdGVyX2VudW1fdmFsdWUoQSxnLEkpe3ZhciBDPXJlcXVpcmVSZWdpc3RlcmVkVHlwZShBLCJlbnVtIik7Zz1yZWFkTGF0aW4xU3RyaW5nKGcpO3ZhciBCPUMuY29uc3RydWN0b3IsRT1PYmplY3QuY3JlYXRlKEMuY29uc3RydWN0b3IucHJvdG90eXBlLHt2YWx1ZTp7dmFsdWU6SX0sY29uc3RydWN0b3I6e3ZhbHVlOmNyZWF0ZU5hbWVkRnVuY3Rpb24oQy5uYW1lKyJfIitnLChmdW5jdGlvbigpe30pKX19KTtCLnZhbHVlc1tJXT1FLEJbZ109RX0sazpmdW5jdGlvbiBfX2VtYmluZF9yZWdpc3Rlcl9mbG9hdChBLGcsSSl7dmFyIEM9Z2V0U2hpZnRGcm9tU2l6ZShJKTtyZWdpc3RlclR5cGUoQSx7bmFtZTpnPXJlYWRMYXRpbjFTdHJpbmcoZyksZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKEEpe3JldHVybiBBfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIGd9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6ZmxvYXRSZWFkVmFsdWVGcm9tUG9pbnRlcihnLEMpLGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9LGM6ZnVuY3Rpb24gX19lbWJpbmRfcmVnaXN0ZXJfaW50ZWdlcihBLGcsSSxDLEIpe2c9cmVhZExhdGluMVN0cmluZyhnKTt2YXIgRT1nZXRTaGlmdEZyb21TaXplKEkpLGZyb21XaXJlVHlwZT1BPT5BO2lmKDA9PT1DKXt2YXIgUT0zMi04Kkk7ZnJvbVdpcmVUeXBlPUE9PkE8PFE+Pj5RfXZhciBvPWcuaW5jbHVkZXMoInVuc2lnbmVkIik7cmVnaXN0ZXJUeXBlKEEse25hbWU6Zyxmcm9tV2lyZVR5cGU6ZnJvbVdpcmVUeXBlLHRvV2lyZVR5cGU6bz9mdW5jdGlvbihBLGcpe3JldHVybiB0aGlzLm5hbWUsZz4+PjB9OmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMubmFtZSxnfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOmludGVnZXJSZWFkVmFsdWVGcm9tUG9pbnRlcihnLEUsMCE9PUMpLGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9LGI6ZnVuY3Rpb24gX19lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcoQSxnLEkpe3ZhciBDPVtJbnQ4QXJyYXksVWludDhBcnJheSxJbnQxNkFycmF5LFVpbnQxNkFycmF5LEludDMyQXJyYXksVWludDMyQXJyYXksRmxvYXQzMkFycmF5LEZsb2F0NjRBcnJheSxCaWdJbnQ2NEFycmF5LEJpZ1VpbnQ2NEFycmF5XVtnXTtmdW5jdGlvbiBkZWNvZGVNZW1vcnlWaWV3KEEpe3ZhciBnPUcsST1nW0E+Pj0yXSxCPWdbQSsxXTtyZXR1cm4gbmV3IEMoSyxCLEkpfXJlZ2lzdGVyVHlwZShBLHtuYW1lOkk9cmVhZExhdGluMVN0cmluZyhJKSxmcm9tV2lyZVR5cGU6ZGVjb2RlTWVtb3J5VmlldyxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOmRlY29kZU1lbW9yeVZpZXd9LHtpZ25vcmVEdXBsaWNhdGVSZWdpc3RyYXRpb25zOiEwfSl9LGo6ZnVuY3Rpb24gX19lbWJpbmRfcmVnaXN0ZXJfc3RkX3N0cmluZyhBLGcpe3ZhciBJPSJzdGQ6OnN0cmluZyI9PT0oZz1yZWFkTGF0aW4xU3RyaW5nKGcpKTtyZWdpc3RlclR5cGUoQSx7bmFtZTpnLGZyb21XaXJlVHlwZTpmdW5jdGlvbihBKXt2YXIgZyxDPUdbQT4+Ml0sQj1BKzQ7aWYoSSlmb3IodmFyIEU9QixRPTA7UTw9QzsrK1Epe3ZhciBvPUIrUTtpZihRPT1DfHwwPT1oW29dKXt2YXIgaT1VVEY4VG9TdHJpbmcoRSxvLUUpO3ZvaWQgMD09PWc/Zz1pOihnKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDApLGcrPWkpLEU9bysxfX1lbHNle3ZhciBEPW5ldyBBcnJheShDKTtmb3IoUT0wO1E8QzsrK1EpRFtRXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGhbQitRXSk7Zz1ELmpvaW4oIiIpfXJldHVybiBpQShBKSxnfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKEEsZyl7dmFyIEM7ZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYoZz1uZXcgVWludDhBcnJheShnKSk7dmFyIEI9InN0cmluZyI9PXR5cGVvZiBnO0J8fGcgaW5zdGFuY2VvZiBVaW50OEFycmF5fHxnIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fGcgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fHRocm93QmluZGluZ0Vycm9yKCJDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIHN0ZDo6c3RyaW5nIiksQz1JJiZCP2Z1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGOChBKXtmb3IodmFyIGc9MCxJPTA7STxBLmxlbmd0aDsrK0kpe3ZhciBDPUEuY2hhckNvZGVBdChJKTtDPD0xMjc/ZysrOkM8PTIwNDc/Zys9MjpDPj01NTI5NiYmQzw9NTczNDM/KGcrPTQsKytJKTpnKz0zfXJldHVybiBnfShnKTpnLmxlbmd0aDt2YXIgRT1EQSg0K0MrMSksUT1FKzQ7aWYoR1tFPj4yXT1DLEkmJkIpIWZ1bmN0aW9uIHN0cmluZ1RvVVRGOChBLGcsSSl7cmV0dXJuIGZ1bmN0aW9uIHN0cmluZ1RvVVRGOEFycmF5KEEsZyxJLEMpe2lmKCEoQz4wKSlyZXR1cm4gMDtmb3IodmFyIEI9SSxFPUkrQy0xLFE9MDtRPEEubGVuZ3RoOysrUSl7dmFyIG89QS5jaGFyQ29kZUF0KFEpO2lmKG8+PTU1Mjk2JiZvPD01NzM0MyYmKG89NjU1MzYrKCgxMDIzJm8pPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytRKSksbzw9MTI3KXtpZihJPj1FKWJyZWFrO2dbSSsrXT1vfWVsc2UgaWYobzw9MjA0Nyl7aWYoSSsxPj1FKWJyZWFrO2dbSSsrXT0xOTJ8bz4+NixnW0krK109MTI4fDYzJm99ZWxzZSBpZihvPD02NTUzNSl7aWYoSSsyPj1FKWJyZWFrO2dbSSsrXT0yMjR8bz4+MTIsZ1tJKytdPTEyOHxvPj42JjYzLGdbSSsrXT0xMjh8NjMmb31lbHNle2lmKEkrMz49RSlicmVhaztnW0krK109MjQwfG8+PjE4LGdbSSsrXT0xMjh8bz4+MTImNjMsZ1tJKytdPTEyOHxvPj42JjYzLGdbSSsrXT0xMjh8NjMmb319cmV0dXJuIGdbSV09MCxJLUJ9KEEsaCxnLEkpfShnLFEsQysxKTtlbHNlIGlmKEIpZm9yKHZhciBvPTA7bzxDOysrbyl7dmFyIGk9Zy5jaGFyQ29kZUF0KG8pO2k+MjU1JiYoaUEoUSksdGhyb3dCaW5kaW5nRXJyb3IoIlN0cmluZyBoYXMgVVRGLTE2IGNvZGUgdW5pdHMgdGhhdCBkbyBub3QgZml0IGluIDggYml0cyIpKSxoW1Erb109aX1lbHNlIGZvcihvPTA7bzxDOysrbyloW1Erb109Z1tvXTtyZXR1cm4gbnVsbCE9PUEmJkEucHVzaChpQSxFKSxFfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOnNpbXBsZVJlYWRWYWx1ZUZyb21Qb2ludGVyLGRlc3RydWN0b3JGdW5jdGlvbjpmdW5jdGlvbihBKXtpQShBKX19KX0saDpmdW5jdGlvbiBfX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZyhBLGcsSSl7dmFyIEMsQixFLFEsbztJPXJlYWRMYXRpbjFTdHJpbmcoSSksMj09PWc/KEM9VVRGMTZUb1N0cmluZyxCPXN0cmluZ1RvVVRGMTYsUT1sZW5ndGhCeXRlc1VURjE2LEU9KCk9Pk4sbz0xKTo0PT09ZyYmKEM9VVRGMzJUb1N0cmluZyxCPXN0cmluZ1RvVVRGMzIsUT1sZW5ndGhCeXRlc1VURjMyLEU9KCk9Pkcsbz0yKSxyZWdpc3RlclR5cGUoQSx7bmFtZTpJLGZyb21XaXJlVHlwZTpmdW5jdGlvbihBKXtmb3IodmFyIEksQj1HW0E+PjJdLFE9RSgpLGk9QSs0LEQ9MDtEPD1COysrRCl7dmFyIGU9QSs0K0QqZztpZihEPT1CfHwwPT1RW2U+Pm9dKXt2YXIgdD1DKGksZS1pKTt2b2lkIDA9PT1JP0k9dDooSSs9U3RyaW5nLmZyb21DaGFyQ29kZSgwKSxJKz10KSxpPWUrZ319cmV0dXJuIGlBKEEpLEl9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oQSxDKXsic3RyaW5nIiE9dHlwZW9mIEMmJnRocm93QmluZGluZ0Vycm9yKCJDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIEMrKyBzdHJpbmcgdHlwZSAiK0kpO3ZhciBFPVEoQyksaT1EQSg0K0UrZyk7cmV0dXJuIEdbaT4+Ml09RT4+byxCKEMsaSs0LEUrZyksbnVsbCE9PUEmJkEucHVzaChpQSxpKSxpfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOnNpbXBsZVJlYWRWYWx1ZUZyb21Qb2ludGVyLGRlc3RydWN0b3JGdW5jdGlvbjpmdW5jdGlvbihBKXtpQShBKX19KX0sdDpmdW5jdGlvbiBfX2VtYmluZF9yZWdpc3Rlcl92b2lkKEEsZyl7cmVnaXN0ZXJUeXBlKEEse2lzVm9pZDohMCxuYW1lOmc9cmVhZExhdGluMVN0cmluZyhnKSxhcmdQYWNrQWR2YW5jZTowLGZyb21XaXJlVHlwZTpmdW5jdGlvbigpe30sdG9XaXJlVHlwZTpmdW5jdGlvbihBLGcpe319KX0sbTpfX2VtdmFsX2RlY3JlZixuOmZ1bmN0aW9uIF9fZW12YWxfaW5jcmVmKEEpe0E+NCYmKElBW0FdLnJlZmNvdW50Kz0xKX0saTpmdW5jdGlvbiBfX2VtdmFsX3Rha2VfdmFsdWUoQSxnKXt2YXIgST0oQT1yZXF1aXJlUmVnaXN0ZXJlZFR5cGUoQSwiX2VtdmFsX3Rha2VfdmFsdWUiKSkucmVhZFZhbHVlRnJvbVBvaW50ZXIoZyk7cmV0dXJuIENBLnRvSGFuZGxlKEkpfSxkOmZ1bmN0aW9uIF9hYm9ydCgpe2Fib3J0KCIiKX0scTpmdW5jdGlvbiBfZW1zY3JpcHRlbl9tZW1jcHlfYmlnKEEsZyxJKXtoLmNvcHlXaXRoaW4oQSxnLGcrSSl9LHA6ZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fcmVzaXplX2hlYXAoQSl7aC5sZW5ndGgsZnVuY3Rpb24gYWJvcnRPbkNhbm5vdEdyb3dNZW1vcnkoQSl7YWJvcnQoIk9PTSIpfSgpfX07IWZ1bmN0aW9uIGNyZWF0ZVdhc20oKXt2YXIgQT17YTpRQX07ZnVuY3Rpb24gcmVjZWl2ZUluc3RhbmNlKEEsSSl7dmFyIEM9QS5leHBvcnRzO2cuYXNtPUMsZnVuY3Rpb24gdXBkYXRlR2xvYmFsQnVmZmVyQW5kVmlld3MoQSl7Sz1BLGcuSEVBUDg9eT1uZXcgSW50OEFycmF5KEEpLGcuSEVBUDE2PVk9bmV3IEludDE2QXJyYXkoQSksZy5IRUFQMzI9Yz1uZXcgSW50MzJBcnJheShBKSxnLkhFQVBVOD1oPW5ldyBVaW50OEFycmF5KEEpLGcuSEVBUFUxNj1OPW5ldyBVaW50MTZBcnJheShBKSxnLkhFQVBVMzI9Rz1uZXcgVWludDMyQXJyYXkoQSksZy5IRUFQRjMyPVM9bmV3IEZsb2F0MzJBcnJheShBKSxnLkhFQVBGNjQ9Sj1uZXcgRmxvYXQ2NEFycmF5KEEpLGcuSEVBUDY0PVI9bmV3IEJpZ0ludDY0QXJyYXkoQSksZy5IRUFQVTY0PUY9bmV3IEJpZ1VpbnQ2NEFycmF5KEEpfShnLmFzbS52LmJ1ZmZlciksaz1nLmFzbS55LGZ1bmN0aW9uIGFkZE9uSW5pdChBKXt1LnVuc2hpZnQoQSl9KGcuYXNtLncpLGZ1bmN0aW9uIHJlbW92ZVJ1bkRlcGVuZGVuY3koQSl7aWYoSC0tLGcubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmZy5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKEgpLDA9PUgmJm0pe3ZhciBJPW07bT1udWxsLEkoKX19KCl9ZnVuY3Rpb24gcmVjZWl2ZUluc3RhbnRpYXRpb25SZXN1bHQoQSl7cmVjZWl2ZUluc3RhbmNlKEEuaW5zdGFuY2UpfWZ1bmN0aW9uIGluc3RhbnRpYXRlQXJyYXlCdWZmZXIoZyl7cmV0dXJuIGZ1bmN0aW9uIGdldEJpbmFyeVByb21pc2UoKXtpZighTSYmKGV8fHQpKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZmV0Y2gmJiFpc0ZpbGVVUkkoTCkpcmV0dXJuIGZldGNoKEwse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKChmdW5jdGlvbihBKXtpZighQS5vayl0aHJvdyJmYWlsZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICciK0wrIiciO3JldHVybiBBLmFycmF5QnVmZmVyKCl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7cmV0dXJuIGdldEJpbmFyeShMKX0pKTtpZihFKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSxnKXtFKEwsKGZ1bmN0aW9uKGcpe0EobmV3IFVpbnQ4QXJyYXkoZykpfSksZyl9KSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIGdldEJpbmFyeShMKX0pKX0oKS50aGVuKChmdW5jdGlvbihnKXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZyxBKX0pKS50aGVuKChmdW5jdGlvbihBKXtyZXR1cm4gQX0pKS50aGVuKGcsKGZ1bmN0aW9uKEEpe24oImZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdhc206ICIrQSksYWJvcnQoQSl9KSl9aWYoZnVuY3Rpb24gYWRkUnVuRGVwZW5kZW5jeShBKXtIKyssZy5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZnLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoSCl9KCksZy5pbnN0YW50aWF0ZVdhc20pdHJ5e3JldHVybiBnLmluc3RhbnRpYXRlV2FzbShBLHJlY2VpdmVJbnN0YW5jZSl9Y2F0Y2goSSl7bigiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitJKSxDKEkpfXJldHVybiBmdW5jdGlvbiBpbnN0YW50aWF0ZUFzeW5jKCl7cmV0dXJuIE18fCJmdW5jdGlvbiIhPXR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZ3x8aXNEYXRhVVJJKEwpfHxpc0ZpbGVVUkkoTCl8fHJ8fCJmdW5jdGlvbiIhPXR5cGVvZiBmZXRjaD9pbnN0YW50aWF0ZUFycmF5QnVmZmVyKHJlY2VpdmVJbnN0YW50aWF0aW9uUmVzdWx0KTpmZXRjaChMLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGcsQSkudGhlbihyZWNlaXZlSW5zdGFudGlhdGlvblJlc3VsdCwoZnVuY3Rpb24oQSl7cmV0dXJuIG4oIndhc20gc3RyZWFtaW5nIGNvbXBpbGUgZmFpbGVkOiAiK0EpLG4oImZhbGxpbmcgYmFjayB0byBBcnJheUJ1ZmZlciBpbnN0YW50aWF0aW9uIiksaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihyZWNlaXZlSW5zdGFudGlhdGlvblJlc3VsdCl9KSl9KSl9KCkuY2F0Y2goQykse319KCksZy5fX193YXNtX2NhbGxfY3RvcnM9ZnVuY3Rpb24oKXtyZXR1cm4oZy5fX193YXNtX2NhbGxfY3RvcnM9Zy5hc20udykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxnLl9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuKGcuX21haW49Zy5hc20ueCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgb0EsaUE9Zy5fZnJlZT1mdW5jdGlvbigpe3JldHVybihpQT1nLl9mcmVlPWcuYXNtLnopLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sREE9Zy5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKERBPWcuX21hbGxvYz1nLmFzbS5BKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGVBPWcuX19fZ2V0VHlwZU5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4oZUE9Zy5fX19nZXRUeXBlTmFtZT1nLmFzbS5CKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIGNhbGxNYWluKEEpe3ZhciBJPWcuX21haW47dHJ5e3ZhciBDPUkoMCwwKTtyZXR1cm4gZXhpdEpTKEMpLEN9Y2F0Y2goQil7cmV0dXJuIGZ1bmN0aW9uIGhhbmRsZUV4Y2VwdGlvbihBKXtpZihBIGluc3RhbmNlb2YgRXhpdFN0YXR1c3x8InVud2luZCI9PUEpcmV0dXJuIHM7cXVpdF8oMSxBKX0oQil9fWZ1bmN0aW9uIHJ1bihBKXtmdW5jdGlvbiBkb1J1bigpe29BfHwob0E9ITAsZy5jYWxsZWRSdW49ITAsbHx8KGZ1bmN0aW9uIGluaXRSdW50aW1lKCl7Y2FsbFJ1bnRpbWVDYWxsYmFja3ModSl9KCksZnVuY3Rpb24gcHJlTWFpbigpe2NhbGxSdW50aW1lQ2FsbGJhY2tzKFUpfSgpLEkoZyksZy5vblJ1bnRpbWVJbml0aWFsaXplZCYmZy5vblJ1bnRpbWVJbml0aWFsaXplZCgpLHRBJiZjYWxsTWFpbigpLGZ1bmN0aW9uIHBvc3RSdW4oKXtpZihnLnBvc3RSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBnLnBvc3RSdW4mJihnLnBvc3RSdW49W2cucG9zdFJ1bl0pO2cucG9zdFJ1bi5sZW5ndGg7KUE9Zy5wb3N0UnVuLnNoaWZ0KCksai51bnNoaWZ0KEEpO3ZhciBBO2NhbGxSdW50aW1lQ2FsbGJhY2tzKGopfSgpKSl9SD4wfHwoZnVuY3Rpb24gcHJlUnVuKCl7aWYoZy5wcmVSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBnLnByZVJ1biYmKGcucHJlUnVuPVtnLnByZVJ1bl0pO2cucHJlUnVuLmxlbmd0aDspQT1nLnByZVJ1bi5zaGlmdCgpLGYudW5zaGlmdChBKTt2YXIgQTtjYWxsUnVudGltZUNhbGxiYWNrcyhmKX0oKSxIPjB8fChnLnNldFN0YXR1cz8oZy5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7Zy5zZXRTdGF0dXMoIiIpfSksMSksZG9SdW4oKX0pLDEpKTpkb1J1bigpKSl9aWYoZy5fX2VtYmluZF9pbml0aWFsaXplX2JpbmRpbmdzPWZ1bmN0aW9uKCl7cmV0dXJuKGcuX19lbWJpbmRfaW5pdGlhbGl6ZV9iaW5kaW5ncz1nLmFzbS5DKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LG09ZnVuY3Rpb24gcnVuQ2FsbGVyKCl7b0F8fHJ1bigpLG9BfHwobT1ydW5DYWxsZXIpfSxnLnByZUluaXQpZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBnLnByZUluaXQmJihnLnByZUluaXQ9W2cucHJlSW5pdF0pO2cucHJlSW5pdC5sZW5ndGg+MDspZy5wcmVJbml0LnBvcCgpKCk7dmFyIHRBPSEwO3JldHVybiBnLm5vSW5pdGlhbFJ1biYmKHRBPSExKSxydW4oKSxnLnJlYWR5fSk7ZnVuY3Rpb24gY3JlYXRlR2xvYmFsVGhpc1ZhcmlhYmxlKEEsZyl7Z2xvYmFsVGhpcy52b25hZ2V8fChnbG9iYWxUaGlzLnZvbmFnZT17fSksZ2xvYmFsVGhpcy52b25hZ2Uud29ya2VyaXplcnx8KGdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI9e30pO2xldCBJPWdsb2JhbFRoaXMudm9uYWdlLndvcmtlcml6ZXI7cmV0dXJuIElbQV18fChJW0FdPWcpLElbQV19Y29uc3QgST1jcmVhdGVHbG9iYWxUaGlzVmFyaWFibGUoImdsb2JhbHMiLHt9KTt2YXIgQz0oQT0+KEEuSU5JVD0iSU5JVCIsQS5GT1JXQVJEPSJGT1JXQVJEIixBLlRFUk1JTkFURT0iVEVSTUlOQVRFIixBLkdMT0JBTFNfU1lOQz0iR0xPQkFMU19TWU5DIixBLkVWRU5UPSJFVkVOVCIsQSkpKEN8fHt9KTtmdW5jdGlvbiBwb3N0Q29tbWFuZChBLGcpe2NvbnN0e2lkOkksdHlwZTpDfT1BLEI9QXJyYXkuaXNBcnJheShnKT9nOltnXTtwb3N0TWVzc2FnZSh7aWQ6SSx0eXBlOkMscmVzdWx0Omd9LEIuZmlsdGVyKChBPT5mdW5jdGlvbiBpc1RyYW5zZmVyYWJsZShBKXtyZXR1cm5bSW1hZ2VCaXRtYXAsUmVhZGFibGVTdHJlYW0sV3JpdGFibGVTdHJlYW1dLnNvbWUoKGc9PkEgaW5zdGFuY2VvZiBnKSl9KEEpKSkpfWZ1bmN0aW9uIGlzV29ya2VyKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlfWZ1bmN0aW9uIGNvcHkoQSxnKXtpZihBcnJheS5pc0FycmF5KGcpKWcuc3BsaWNlKDAsZy5sZW5ndGgpO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiBnKWZvcihjb25zdCBJIGluIGcpZGVsZXRlIGdbSV07Zm9yKGNvbnN0IEkgaW4gQSlBcnJheS5pc0FycmF5KEFbSV0pPyhnW0ldPVtdLGNvcHkoQVtJXSxnW0ldKSk6Im9iamVjdCI9PXR5cGVvZiBBW0ldPyhnW0ldPXt9LGNvcHkoQVtJXSxnW0ldKSk6Z1tJXT1BW0ldfWNyZWF0ZUdsb2JhbFRoaXNWYXJpYWJsZSgid29ya2VyaXplZCIse30pO2NvbnN0IEI9bmV3IFdlYWtNYXAsRT1uZXcgV2Vha01hcCxRPW5ldyBXZWFrTWFwLG89U3ltYm9sKCJhbnlQcm9kdWNlciIpLGk9UHJvbWlzZS5yZXNvbHZlKCksRD1TeW1ib2woImxpc3RlbmVyQWRkZWQiKSxlPVN5bWJvbCgibGlzdGVuZXJSZW1vdmVkIik7bGV0IHQ9ITEscj0hMTtmdW5jdGlvbiBhc3NlcnRFdmVudE5hbWUkMShBKXtpZigic3RyaW5nIiE9dHlwZW9mIEEmJiJzeW1ib2wiIT10eXBlb2YgQSYmIm51bWJlciIhPXR5cGVvZiBBKXRocm93IG5ldyBUeXBlRXJyb3IoImBldmVudE5hbWVgIG11c3QgYmUgYSBzdHJpbmcsIHN5bWJvbCwgb3IgbnVtYmVyIil9ZnVuY3Rpb24gYXNzZXJ0TGlzdGVuZXIkMShBKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBuZXcgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBnZXRMaXN0ZW5lcnMkMShBLGcpe2NvbnN0IEk9RS5nZXQoQSk7aWYoSS5oYXMoZykpcmV0dXJuIEkuZ2V0KGcpfWZ1bmN0aW9uIGdldEV2ZW50UHJvZHVjZXJzJDEoQSxnKXtjb25zdCBJPSJzdHJpbmciPT10eXBlb2YgZ3x8InN5bWJvbCI9PXR5cGVvZiBnfHwibnVtYmVyIj09dHlwZW9mIGc/ZzpvLEM9US5nZXQoQSk7aWYoQy5oYXMoSSkpcmV0dXJuIEMuZ2V0KEkpfWZ1bmN0aW9uIGl0ZXJhdG9yJDEoQSxnKXtnPUFycmF5LmlzQXJyYXkoZyk/ZzpbZ107bGV0IEk9ITEsZmx1c2g9KCk9Pnt9LEM9W107Y29uc3QgQj17ZW5xdWV1ZShBKXtDLnB1c2goQSksZmx1c2goKX0sZmluaXNoKCl7ST0hMCxmbHVzaCgpfX07Zm9yKGNvbnN0IEUgb2YgZyl7bGV0IGc9Z2V0RXZlbnRQcm9kdWNlcnMkMShBLEUpO2lmKCFnKXtnPW5ldyBTZXQ7US5nZXQoQSkuc2V0KEUsZyl9Zy5hZGQoQil9cmV0dXJue2FzeW5jIG5leHQoKXtyZXR1cm4gQz8wPT09Qy5sZW5ndGg/ST8oQz12b2lkIDAsdGhpcy5uZXh0KCkpOihhd2FpdCBuZXcgUHJvbWlzZSgoQT0+e2ZsdXNoPUF9KSksdGhpcy5uZXh0KCkpOntkb25lOiExLHZhbHVlOmF3YWl0IEMuc2hpZnQoKX06e2RvbmU6ITB9fSxhc3luYyByZXR1cm4oSSl7Qz12b2lkIDA7Zm9yKGNvbnN0IEMgb2YgZyl7Y29uc3QgZz1nZXRFdmVudFByb2R1Y2VycyQxKEEsQyk7aWYoZyYmKGcuZGVsZXRlKEIpLDA9PT1nLnNpemUpKXtRLmdldChBKS5kZWxldGUoQyl9fXJldHVybiBmbHVzaCgpLGFyZ3VtZW50cy5sZW5ndGg+MD97ZG9uZTohMCx2YWx1ZTphd2FpdCBJfTp7ZG9uZTohMH19LFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKXtyZXR1cm4gdGhpc319fWZ1bmN0aW9uIGRlZmF1bHRNZXRob2ROYW1lc09yQXNzZXJ0JDEoQSl7aWYodm9pZCAwPT09QSlyZXR1cm4gTTtpZighQXJyYXkuaXNBcnJheShBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyIpO2Zvcihjb25zdCBnIG9mIEEpaWYoIU0uaW5jbHVkZXMoZykpe2lmKCJzdHJpbmciIT10eXBlb2YgZyl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIGVsZW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpO3Rocm93IG5ldyBFcnJvcihgJHtnfSBpcyBub3QgRW1pdHRlcnkgbWV0aG9kYCl9cmV0dXJuIEF9Y29uc3QgaXNNZXRhRXZlbnQkMT1BPT5BPT09RHx8QT09PWU7ZnVuY3Rpb24gZW1pdE1ldGFFdmVudCQxKEEsZyxJKXtpZihpc01ldGFFdmVudCQxKGcpKXRyeXt0PSEwLEEuZW1pdChnLEkpfWZpbmFsbHl7dD0hMX19bGV0IGE9Y2xhc3MgRW1pdHRlcnkye3N0YXRpYyBtaXhpbihBLGcpe3JldHVybiBnPWRlZmF1bHRNZXRob2ROYW1lc09yQXNzZXJ0JDEoZyksST0+e2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBJKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgZnVuY3Rpb24iKTtmb3IoY29uc3QgQSBvZiBnKWlmKHZvaWQgMCE9PUkucHJvdG90eXBlW0FdKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtBfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSS5wcm90b3R5cGUsQSx7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0RW1pdHRlcnlQcm9wZXJ0eSgpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxBLHtlbnVtZXJhYmxlOiExLHZhbHVlOm5ldyBFbWl0dGVyeTJ9KSx0aGlzW0FdfX0pO2NvbnN0IGVtaXR0ZXJ5TWV0aG9kQ2FsbGVyPWc9PmZ1bmN0aW9uKC4uLkkpe3JldHVybiB0aGlzW0FdW2ddKC4uLkkpfTtmb3IoY29uc3QgQSBvZiBnKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShJLnByb3RvdHlwZSxBLHtlbnVtZXJhYmxlOiExLHZhbHVlOmVtaXR0ZXJ5TWV0aG9kQ2FsbGVyKEEpfSk7cmV0dXJuIEl9fXN0YXRpYyBnZXQgaXNEZWJ1Z0VuYWJsZWQoKXt2YXIgQSxnO2lmKCJvYmplY3QiIT10eXBlb2YobnVsbD09KEE9Z2xvYmFsVGhpcy5wcm9jZXNzKT92b2lkIDA6QS5lbnYpKXJldHVybiByO2NvbnN0e2VudjpJfT1udWxsIT0oZz1nbG9iYWxUaGlzLnByb2Nlc3MpP2c6e2Vudjp7fX07cmV0dXJuImVtaXR0ZXJ5Ij09PUkuREVCVUd8fCIqIj09PUkuREVCVUd8fHJ9c3RhdGljIHNldCBpc0RlYnVnRW5hYmxlZChBKXtyPUF9Y29uc3RydWN0b3IoQT17fSl7dmFyIGc7Qi5zZXQodGhpcyxuZXcgU2V0KSxFLnNldCh0aGlzLG5ldyBNYXApLFEuc2V0KHRoaXMsbmV3IE1hcCksUS5nZXQodGhpcykuc2V0KG8sbmV3IFNldCksdGhpcy5kZWJ1Zz1udWxsIT0oZz1BLmRlYnVnKT9nOnt9LHZvaWQgMD09PXRoaXMuZGVidWcuZW5hYmxlZCYmKHRoaXMuZGVidWcuZW5hYmxlZD0hMSksdGhpcy5kZWJ1Zy5sb2dnZXJ8fCh0aGlzLmRlYnVnLmxvZ2dlcj0oQSxnLEksQyk9Pnt0cnl7Qz1KU09OLnN0cmluZ2lmeShDKX1jYXRjaHtDPWBPYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIGtleXMgZmFpbGVkIHRvIHN0cmluZ2lmeTogJHtPYmplY3Qua2V5cyhDKS5qb2luKCIsIil9YH0ic3ltYm9sIiE9dHlwZW9mIEkmJiJudW1iZXIiIT10eXBlb2YgSXx8KEk9SS50b1N0cmluZygpKTtjb25zdCBCPW5ldyBEYXRlLEU9YCR7Qi5nZXRIb3VycygpfToke0IuZ2V0TWludXRlcygpfToke0IuZ2V0U2Vjb25kcygpfS4ke0IuZ2V0TWlsbGlzZWNvbmRzKCl9YDtjb25zb2xlLmxvZyhgWyR7RX1dW2VtaXR0ZXJ5OiR7QX1dWyR7Z31dIEV2ZW50IE5hbWU6ICR7SX1cblx0ZGF0YTogJHtDfWApfSl9bG9nSWZEZWJ1Z0VuYWJsZWQoQSxnLEkpeyhFbWl0dGVyeTIuaXNEZWJ1Z0VuYWJsZWR8fHRoaXMuZGVidWcuZW5hYmxlZCkmJnRoaXMuZGVidWcubG9nZ2VyKEEsdGhpcy5kZWJ1Zy5uYW1lLGcsSSl9b24oQSxnKXthc3NlcnRMaXN0ZW5lciQxKGcpLEE9QXJyYXkuaXNBcnJheShBKT9BOltBXTtmb3IoY29uc3QgSSBvZiBBKXthc3NlcnRFdmVudE5hbWUkMShJKTtsZXQgQT1nZXRMaXN0ZW5lcnMkMSh0aGlzLEkpO2lmKCFBKXtBPW5ldyBTZXQ7RS5nZXQodGhpcykuc2V0KEksQSl9QS5hZGQoZyksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlIixJLHZvaWQgMCksaXNNZXRhRXZlbnQkMShJKXx8ZW1pdE1ldGFFdmVudCQxKHRoaXMsRCx7ZXZlbnROYW1lOkksbGlzdGVuZXI6Z30pfXJldHVybiB0aGlzLm9mZi5iaW5kKHRoaXMsQSxnKX1vZmYoQSxnKXthc3NlcnRMaXN0ZW5lciQxKGcpLEE9QXJyYXkuaXNBcnJheShBKT9BOltBXTtmb3IoY29uc3QgSSBvZiBBKXthc3NlcnRFdmVudE5hbWUkMShJKTtjb25zdCBBPWdldExpc3RlbmVycyQxKHRoaXMsSSk7aWYoQSYmKEEuZGVsZXRlKGcpLDA9PT1BLnNpemUpKXtFLmdldCh0aGlzKS5kZWxldGUoSSl9dGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgidW5zdWJzY3JpYmUiLEksdm9pZCAwKSxpc01ldGFFdmVudCQxKEkpfHxlbWl0TWV0YUV2ZW50JDEodGhpcyxlLHtldmVudE5hbWU6SSxsaXN0ZW5lcjpnfSl9fW9uY2UoQSl7bGV0IGc7Y29uc3QgST1uZXcgUHJvbWlzZSgoST0+e2c9dGhpcy5vbihBLChBPT57ZygpLEkoQSl9KSl9KSk7cmV0dXJuIEkub2ZmPWcsSX1ldmVudHMoQSl7QT1BcnJheS5pc0FycmF5KEEpP0E6W0FdO2Zvcihjb25zdCBnIG9mIEEpYXNzZXJ0RXZlbnROYW1lJDEoZyk7cmV0dXJuIGl0ZXJhdG9yJDEodGhpcyxBKX1hc3luYyBlbWl0KEEsZyl7dmFyIEk7aWYoYXNzZXJ0RXZlbnROYW1lJDEoQSksaXNNZXRhRXZlbnQkMShBKSYmIXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiYGV2ZW50TmFtZWAgY2Fubm90IGJlIG1ldGEgZXZlbnQgYGxpc3RlbmVyQWRkZWRgIG9yIGBsaXN0ZW5lclJlbW92ZWRgIik7dGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiZW1pdCIsQSxnKSxmdW5jdGlvbiBlbnF1ZXVlUHJvZHVjZXJzJDEoQSxnLEkpe2NvbnN0IEM9US5nZXQoQSk7aWYoQy5oYXMoZykpZm9yKGNvbnN0IEIgb2YgQy5nZXQoZykpQi5lbnF1ZXVlKEkpO2lmKEMuaGFzKG8pKXtjb25zdCBBPVByb21pc2UuYWxsKFtnLEldKTtmb3IoY29uc3QgZyBvZiBDLmdldChvKSlnLmVucXVldWUoQSl9fSh0aGlzLEEsZyk7Y29uc3QgQz1udWxsIT0oST1nZXRMaXN0ZW5lcnMkMSh0aGlzLEEpKT9JOm5ldyBTZXQsRT1CLmdldCh0aGlzKSxEPVsuLi5DXSxlPWlzTWV0YUV2ZW50JDEoQSk/W106Wy4uLkVdO2F3YWl0IGksYXdhaXQgUHJvbWlzZS5hbGwoWy4uLkQubWFwKChhc3luYyBBPT57aWYoQy5oYXMoQSkpcmV0dXJuIEEoZyl9KSksLi4uZS5tYXAoKGFzeW5jIEk9PntpZihFLmhhcyhJKSlyZXR1cm4gSShBLGcpfSkpXSl9YXN5bmMgZW1pdFNlcmlhbChBLGcpe3ZhciBJO2lmKGFzc2VydEV2ZW50TmFtZSQxKEEpLGlzTWV0YUV2ZW50JDEoQSkmJiF0KXRocm93IG5ldyBUeXBlRXJyb3IoImBldmVudE5hbWVgIGNhbm5vdCBiZSBtZXRhIGV2ZW50IGBsaXN0ZW5lckFkZGVkYCBvciBgbGlzdGVuZXJSZW1vdmVkYCIpO3RoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoImVtaXRTZXJpYWwiLEEsZyk7Y29uc3QgQz1udWxsIT0oST1nZXRMaXN0ZW5lcnMkMSh0aGlzLEEpKT9JOm5ldyBTZXQsRT1CLmdldCh0aGlzKSxRPVsuLi5DXSxvPVsuLi5FXTthd2FpdCBpO2Zvcihjb25zdCBCIG9mIFEpQy5oYXMoQikmJmF3YWl0IEIoZyk7Zm9yKGNvbnN0IEIgb2YgbylFLmhhcyhCKSYmYXdhaXQgQihBLGcpfW9uQW55KEEpe3JldHVybiBhc3NlcnRMaXN0ZW5lciQxKEEpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInN1YnNjcmliZUFueSIsdm9pZCAwLHZvaWQgMCksQi5nZXQodGhpcykuYWRkKEEpLGVtaXRNZXRhRXZlbnQkMSh0aGlzLEQse2xpc3RlbmVyOkF9KSx0aGlzLm9mZkFueS5iaW5kKHRoaXMsQSl9YW55RXZlbnQoKXtyZXR1cm4gaXRlcmF0b3IkMSh0aGlzKX1vZmZBbnkoQSl7YXNzZXJ0TGlzdGVuZXIkMShBKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJ1bnN1YnNjcmliZUFueSIsdm9pZCAwLHZvaWQgMCksZW1pdE1ldGFFdmVudCQxKHRoaXMsZSx7bGlzdGVuZXI6QX0pLEIuZ2V0KHRoaXMpLmRlbGV0ZShBKX1jbGVhckxpc3RlbmVycyhBKXtBPUFycmF5LmlzQXJyYXkoQSk/QTpbQV07Zm9yKGNvbnN0IGcgb2YgQSlpZih0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJjbGVhciIsZyx2b2lkIDApLCJzdHJpbmciPT10eXBlb2YgZ3x8InN5bWJvbCI9PXR5cGVvZiBnfHwibnVtYmVyIj09dHlwZW9mIGcpe2NvbnN0IEE9Z2V0TGlzdGVuZXJzJDEodGhpcyxnKTtBJiZBLmNsZWFyKCk7Y29uc3QgST1nZXRFdmVudFByb2R1Y2VycyQxKHRoaXMsZyk7aWYoSSl7Zm9yKGNvbnN0IEEgb2YgSSlBLmZpbmlzaCgpO0kuY2xlYXIoKX19ZWxzZXtCLmdldCh0aGlzKS5jbGVhcigpO2Zvcihjb25zdFtBLGddb2YgRS5nZXQodGhpcykuZW50cmllcygpKWcuY2xlYXIoKSxFLmdldCh0aGlzKS5kZWxldGUoQSk7Zm9yKGNvbnN0W0EsZ11vZiBRLmdldCh0aGlzKS5lbnRyaWVzKCkpe2Zvcihjb25zdCBBIG9mIGcpQS5maW5pc2goKTtnLmNsZWFyKCksUS5nZXQodGhpcykuZGVsZXRlKEEpfX19bGlzdGVuZXJDb3VudChBKXt2YXIgZyxJLEMsbyxpLEQ7QT1BcnJheS5pc0FycmF5KEEpP0E6W0FdO2xldCBlPTA7Zm9yKGNvbnN0IHQgb2YgQSlpZigic3RyaW5nIiE9dHlwZW9mIHQpe3ZvaWQgMCE9PXQmJmFzc2VydEV2ZW50TmFtZSQxKHQpLGUrPUIuZ2V0KHRoaXMpLnNpemU7Zm9yKGNvbnN0IEEgb2YgRS5nZXQodGhpcykudmFsdWVzKCkpZSs9QS5zaXplO2Zvcihjb25zdCBBIG9mIFEuZ2V0KHRoaXMpLnZhbHVlcygpKWUrPUEuc2l6ZX1lbHNlIGUrPUIuZ2V0KHRoaXMpLnNpemUrKG51bGwhPShJPW51bGw9PShnPWdldExpc3RlbmVycyQxKHRoaXMsdCkpP3ZvaWQgMDpnLnNpemUpP0k6MCkrKG51bGwhPShvPW51bGw9PShDPWdldEV2ZW50UHJvZHVjZXJzJDEodGhpcyx0KSk/dm9pZCAwOkMuc2l6ZSk/bzowKSsobnVsbCE9KEQ9bnVsbD09KGk9Z2V0RXZlbnRQcm9kdWNlcnMkMSh0aGlzKSk/dm9pZCAwOmkuc2l6ZSk/RDowKTtyZXR1cm4gZX1iaW5kTWV0aG9kcyhBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBhbiBvYmplY3QiKTtnPWRlZmF1bHRNZXRob2ROYW1lc09yQXNzZXJ0JDEoZyk7Zm9yKGNvbnN0IEkgb2YgZyl7aWYodm9pZCAwIT09QVtJXSl0aHJvdyBuZXcgRXJyb3IoYFRoZSBwcm9wZXJ0eSBcYCR7SX1cYCBhbHJlYWR5IGV4aXN0cyBvbiBcYHRhcmdldFxgYCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSSx7ZW51bWVyYWJsZTohMSx2YWx1ZTp0aGlzW0ldLmJpbmQodGhpcyl9KX19fTtjb25zdCBNPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGEucHJvdG90eXBlKS5maWx0ZXIoKEE9PiJjb25zdHJ1Y3RvciIhPT1BKSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImxpc3RlbmVyQWRkZWQiLHt2YWx1ZTpELHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImxpc3RlbmVyUmVtb3ZlZCIse3ZhbHVlOmUsd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KTtjb25zdCBuPWNyZWF0ZUdsb2JhbFRoaXNWYXJpYWJsZSgicmVnaXN0ZXJlZFdvcmtlcnMiLHt9KTtpc1dvcmtlcigpJiZmdW5jdGlvbiBpbml0V29ya2VyKCl7Y29uc3QgQT17fTtvbm1lc3NhZ2U9YXN5bmMgZz0+e2NvbnN0IEI9Zy5kYXRhO3N3aXRjaChCLnR5cGUpe2Nhc2UgQy5JTklUOiFmdW5jdGlvbiBoYW5kbGVDb21tYW5kSW5pdChBLGcpe2lmKCFBLmFyZ3MpdGhyb3ciTWlzc2luZyBjbGFzc05hbWUgd2hpbGUgaW5pdGlhbGl6aW5nIHdvcmtlciI7Y29uc3RbQixFXT1BLmFyZ3MsUT1uW0JdO2lmKCFRKXRocm93YHVua25vd24gd29ya2VyIGNsYXNzICR7Qn1gO2cuaW5zdGFuY2U9bmV3IFEoQS5hcmdzLnNsaWNlKDEpKSxjb3B5KEUsSSksZnVuY3Rpb24gaXNJbnN0YW5jZU9mRW1pdHRlcnkoQSl7cmV0dXJuIEEub25BbnkmJkEuZW1pdH0oZy5pbnN0YW5jZSkmJmcuaW5zdGFuY2Uub25BbnkoKChBLGcpPT57cG9zdENvbW1hbmQoe3R5cGU6Qy5FVkVOVH0se25hbWU6QSxkYXRhOmd9KX0pKSxwb3N0Q29tbWFuZChBLHZvaWQgMCE9PXR5cGVvZiBnLmluc3RhbmNlKX0oQixBKTticmVhaztjYXNlIEMuRk9SV0FSRDohYXN5bmMgZnVuY3Rpb24gaGFuZGxlQ29tbWFuZEZvcndhcmQoQSxnKXtjb25zdHtmdW5jdGlvbk5hbWU6SSxhcmdzOkN9PUE7aWYoIWcuaW5zdGFuY2UpdGhyb3ciaW5zdGFuY2Ugbm90IGluaXRpYWxpemVkIjtpZighSSl0aHJvdyJtaXNzaW5nIGZ1bmN0aW9uIG5hbWUgdG8gY2FsbCI7aWYoIWcuaW5zdGFuY2VbSV0pdGhyb3dgdW5kZWZpbmVkIGZ1bmN0aW9uIFske0l9XSBpbiBjbGFzcyAke2cuaW5zdGFuY2UuY29uc3RydWN0b3Iud29ya2VySWR9YDtwb3N0Q29tbWFuZChBLGF3YWl0IGcuaW5zdGFuY2VbSV0oLi4ubnVsbCE9Qz9DOltdKSl9KEIsQSk7YnJlYWs7Y2FzZSBDLlRFUk1JTkFURTohYXN5bmMgZnVuY3Rpb24gaGFuZGxlQ29tbWFuZFRlcm1pbmF0ZShBLGcpe2NvbnN0e2FyZ3M6SX09QTtpZighZy5pbnN0YW5jZSl0aHJvdyJpbnN0YW5jZSBub3QgaW5pdGlhbGl6ZWQiO2xldCBDO2cuaW5zdGFuY2UudGVybWluYXRlJiYoQz1hd2FpdCBnLmluc3RhbmNlLnRlcm1pbmF0ZSguLi5udWxsIT1JP0k6W10pKSxwb3N0Q29tbWFuZChBLEMpfShCLEEpO2JyZWFrO2Nhc2UgQy5HTE9CQUxTX1NZTkM6IWZ1bmN0aW9uIGhhbmRsZUNvbW1hbmRHbG9iYWxzU3luYyhBKXtpZighQS5hcmdzKXRocm93Ik1pc3NpbmcgZ2xvYmFscyB3aGlsZSBzeW5jaW5nIjtjb3B5KEEuYXJnc1swXSxJKSxwb3N0Q29tbWFuZChBLHt9KX0oQil9fX0oKTtjb25zdCB3PW5ldyBXZWFrTWFwLHM9bmV3IFdlYWtNYXAsSz1uZXcgV2Vha01hcCx5PVN5bWJvbCgiYW55UHJvZHVjZXIiKSxoPVByb21pc2UucmVzb2x2ZSgpLFk9U3ltYm9sKCJsaXN0ZW5lckFkZGVkIiksTj1TeW1ib2woImxpc3RlbmVyUmVtb3ZlZCIpO2xldCBjPSExLEc9ITE7ZnVuY3Rpb24gYXNzZXJ0RXZlbnROYW1lKEEpe2lmKCJzdHJpbmciIT10eXBlb2YgQSYmInN5bWJvbCIhPXR5cGVvZiBBJiYibnVtYmVyIiE9dHlwZW9mIEEpdGhyb3cgbmV3IFR5cGVFcnJvcigiYGV2ZW50TmFtZWAgbXVzdCBiZSBhIHN0cmluZywgc3ltYm9sLCBvciBudW1iZXIiKX1mdW5jdGlvbiBhc3NlcnRMaXN0ZW5lcihBKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBuZXcgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBnZXRMaXN0ZW5lcnMoQSxnKXtjb25zdCBJPXMuZ2V0KEEpO2lmKEkuaGFzKGcpKXJldHVybiBJLmdldChnKX1mdW5jdGlvbiBnZXRFdmVudFByb2R1Y2VycyhBLGcpe2NvbnN0IEk9InN0cmluZyI9PXR5cGVvZiBnfHwic3ltYm9sIj09dHlwZW9mIGd8fCJudW1iZXIiPT10eXBlb2YgZz9nOnksQz1LLmdldChBKTtpZihDLmhhcyhJKSlyZXR1cm4gQy5nZXQoSSl9ZnVuY3Rpb24gaXRlcmF0b3IoQSxnKXtnPUFycmF5LmlzQXJyYXkoZyk/ZzpbZ107bGV0IEk9ITEsZmx1c2g9KCk9Pnt9LEM9W107Y29uc3QgQj17ZW5xdWV1ZShBKXtDLnB1c2goQSksZmx1c2goKX0sZmluaXNoKCl7ST0hMCxmbHVzaCgpfX07Zm9yKGNvbnN0IEUgb2YgZyl7bGV0IGc9Z2V0RXZlbnRQcm9kdWNlcnMoQSxFKTtpZighZyl7Zz1uZXcgU2V0O0suZ2V0KEEpLnNldChFLGcpfWcuYWRkKEIpfXJldHVybnthc3luYyBuZXh0KCl7cmV0dXJuIEM/MD09PUMubGVuZ3RoP0k/KEM9dm9pZCAwLHRoaXMubmV4dCgpKTooYXdhaXQgbmV3IFByb21pc2UoKEE9PntmbHVzaD1BfSkpLHRoaXMubmV4dCgpKTp7ZG9uZTohMSx2YWx1ZTphd2FpdCBDLnNoaWZ0KCl9Ontkb25lOiEwfX0sYXN5bmMgcmV0dXJuKEkpe0M9dm9pZCAwO2Zvcihjb25zdCBDIG9mIGcpe2NvbnN0IGc9Z2V0RXZlbnRQcm9kdWNlcnMoQSxDKTtpZihnJiYoZy5kZWxldGUoQiksMD09PWcuc2l6ZSkpe0suZ2V0KEEpLmRlbGV0ZShDKX19cmV0dXJuIGZsdXNoKCksYXJndW1lbnRzLmxlbmd0aD4wP3tkb25lOiEwLHZhbHVlOmF3YWl0IEl9Ontkb25lOiEwfX0sW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpe3JldHVybiB0aGlzfX19ZnVuY3Rpb24gZGVmYXVsdE1ldGhvZE5hbWVzT3JBc3NlcnQoQSl7aWYodm9pZCAwPT09QSlyZXR1cm4gUztpZighQXJyYXkuaXNBcnJheShBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyIpO2Zvcihjb25zdCBnIG9mIEEpaWYoIVMuaW5jbHVkZXMoZykpe2lmKCJzdHJpbmciIT10eXBlb2YgZyl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIGVsZW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpO3Rocm93IG5ldyBFcnJvcihgJHtnfSBpcyBub3QgRW1pdHRlcnkgbWV0aG9kYCl9cmV0dXJuIEF9Y29uc3QgaXNNZXRhRXZlbnQ9QT0+QT09PVl8fEE9PT1OO2Z1bmN0aW9uIGVtaXRNZXRhRXZlbnQoQSxnLEkpe2lmKGlzTWV0YUV2ZW50KGcpKXRyeXtjPSEwLEEuZW1pdChnLEkpfWZpbmFsbHl7Yz0hMX19Y2xhc3MgRW1pdHRlcnl7c3RhdGljIG1peGluKEEsZyl7cmV0dXJuIGc9ZGVmYXVsdE1ldGhvZE5hbWVzT3JBc3NlcnQoZyksST0+e2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBJKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgZnVuY3Rpb24iKTtmb3IoY29uc3QgQSBvZiBnKWlmKHZvaWQgMCE9PUkucHJvdG90eXBlW0FdKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtBfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSS5wcm90b3R5cGUsQSx7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0RW1pdHRlcnlQcm9wZXJ0eSgpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxBLHtlbnVtZXJhYmxlOiExLHZhbHVlOm5ldyBFbWl0dGVyeX0pLHRoaXNbQV19fSk7Y29uc3QgZW1pdHRlcnlNZXRob2RDYWxsZXI9Zz0+ZnVuY3Rpb24oLi4uSSl7cmV0dXJuIHRoaXNbQV1bZ10oLi4uSSl9O2Zvcihjb25zdCBBIG9mIGcpT2JqZWN0LmRlZmluZVByb3BlcnR5KEkucHJvdG90eXBlLEEse2VudW1lcmFibGU6ITEsdmFsdWU6ZW1pdHRlcnlNZXRob2RDYWxsZXIoQSl9KTtyZXR1cm4gSX19c3RhdGljIGdldCBpc0RlYnVnRW5hYmxlZCgpe2lmKCJvYmplY3QiIT10eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPy5lbnYpcmV0dXJuIEc7Y29uc3R7ZW52OkF9PWdsb2JhbFRoaXMucHJvY2Vzcz8/e2Vudjp7fX07cmV0dXJuImVtaXR0ZXJ5Ij09PUEuREVCVUd8fCIqIj09PUEuREVCVUd8fEd9c3RhdGljIHNldCBpc0RlYnVnRW5hYmxlZChBKXtHPUF9Y29uc3RydWN0b3IoQT17fSl7dy5zZXQodGhpcyxuZXcgU2V0KSxzLnNldCh0aGlzLG5ldyBNYXApLEsuc2V0KHRoaXMsbmV3IE1hcCksSy5nZXQodGhpcykuc2V0KHksbmV3IFNldCksdGhpcy5kZWJ1Zz1BLmRlYnVnPz97fSx2b2lkIDA9PT10aGlzLmRlYnVnLmVuYWJsZWQmJih0aGlzLmRlYnVnLmVuYWJsZWQ9ITEpLHRoaXMuZGVidWcubG9nZ2VyfHwodGhpcy5kZWJ1Zy5sb2dnZXI9KEEsZyxJLEMpPT57dHJ5e0M9SlNPTi5zdHJpbmdpZnkoQyl9Y2F0Y2h7Qz1gT2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGZhaWxlZCB0byBzdHJpbmdpZnk6ICR7T2JqZWN0LmtleXMoQykuam9pbigiLCIpfWB9InN5bWJvbCIhPXR5cGVvZiBJJiYibnVtYmVyIiE9dHlwZW9mIEl8fChJPUkudG9TdHJpbmcoKSk7Y29uc3QgQj1uZXcgRGF0ZSxFPWAke0IuZ2V0SG91cnMoKX06JHtCLmdldE1pbnV0ZXMoKX06JHtCLmdldFNlY29uZHMoKX0uJHtCLmdldE1pbGxpc2Vjb25kcygpfWA7Y29uc29sZS5sb2coYFske0V9XVtlbWl0dGVyeToke0F9XVske2d9XSBFdmVudCBOYW1lOiAke0l9XG5cdGRhdGE6ICR7Q31gKX0pfWxvZ0lmRGVidWdFbmFibGVkKEEsZyxJKXsoRW1pdHRlcnkuaXNEZWJ1Z0VuYWJsZWR8fHRoaXMuZGVidWcuZW5hYmxlZCkmJnRoaXMuZGVidWcubG9nZ2VyKEEsdGhpcy5kZWJ1Zy5uYW1lLGcsSSl9b24oQSxnKXthc3NlcnRMaXN0ZW5lcihnKSxBPUFycmF5LmlzQXJyYXkoQSk/QTpbQV07Zm9yKGNvbnN0IEkgb2YgQSl7YXNzZXJ0RXZlbnROYW1lKEkpO2xldCBBPWdldExpc3RlbmVycyh0aGlzLEkpO2lmKCFBKXtBPW5ldyBTZXQ7cy5nZXQodGhpcykuc2V0KEksQSl9QS5hZGQoZyksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlIixJLHZvaWQgMCksaXNNZXRhRXZlbnQoSSl8fGVtaXRNZXRhRXZlbnQodGhpcyxZLHtldmVudE5hbWU6SSxsaXN0ZW5lcjpnfSl9cmV0dXJuIHRoaXMub2ZmLmJpbmQodGhpcyxBLGcpfW9mZihBLGcpe2Fzc2VydExpc3RlbmVyKGcpLEE9QXJyYXkuaXNBcnJheShBKT9BOltBXTtmb3IoY29uc3QgSSBvZiBBKXthc3NlcnRFdmVudE5hbWUoSSk7Y29uc3QgQT1nZXRMaXN0ZW5lcnModGhpcyxJKTtpZihBJiYoQS5kZWxldGUoZyksMD09PUEuc2l6ZSkpe3MuZ2V0KHRoaXMpLmRlbGV0ZShJKX10aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJ1bnN1YnNjcmliZSIsSSx2b2lkIDApLGlzTWV0YUV2ZW50KEkpfHxlbWl0TWV0YUV2ZW50KHRoaXMsTix7ZXZlbnROYW1lOkksbGlzdGVuZXI6Z30pfX1vbmNlKEEpe2xldCBnO2NvbnN0IEk9bmV3IFByb21pc2UoKEk9PntnPXRoaXMub24oQSwoQT0+e2coKSxJKEEpfSkpfSkpO3JldHVybiBJLm9mZj1nLEl9ZXZlbnRzKEEpe0E9QXJyYXkuaXNBcnJheShBKT9BOltBXTtmb3IoY29uc3QgZyBvZiBBKWFzc2VydEV2ZW50TmFtZShnKTtyZXR1cm4gaXRlcmF0b3IodGhpcyxBKX1hc3luYyBlbWl0KEEsZyl7aWYoYXNzZXJ0RXZlbnROYW1lKEEpLGlzTWV0YUV2ZW50KEEpJiYhYyl0aHJvdyBuZXcgVHlwZUVycm9yKCJgZXZlbnROYW1lYCBjYW5ub3QgYmUgbWV0YSBldmVudCBgbGlzdGVuZXJBZGRlZGAgb3IgYGxpc3RlbmVyUmVtb3ZlZGAiKTt0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0IixBLGcpLGZ1bmN0aW9uIGVucXVldWVQcm9kdWNlcnMoQSxnLEkpe2NvbnN0IEM9Sy5nZXQoQSk7aWYoQy5oYXMoZykpZm9yKGNvbnN0IEIgb2YgQy5nZXQoZykpQi5lbnF1ZXVlKEkpO2lmKEMuaGFzKHkpKXtjb25zdCBBPVByb21pc2UuYWxsKFtnLEldKTtmb3IoY29uc3QgZyBvZiBDLmdldCh5KSlnLmVucXVldWUoQSl9fSh0aGlzLEEsZyk7Y29uc3QgST1nZXRMaXN0ZW5lcnModGhpcyxBKT8/bmV3IFNldCxDPXcuZ2V0KHRoaXMpLEI9Wy4uLkldLEU9aXNNZXRhRXZlbnQoQSk/W106Wy4uLkNdO2F3YWl0IGgsYXdhaXQgUHJvbWlzZS5hbGwoWy4uLkIubWFwKChhc3luYyBBPT57aWYoSS5oYXMoQSkpcmV0dXJuIEEoZyl9KSksLi4uRS5tYXAoKGFzeW5jIEk9PntpZihDLmhhcyhJKSlyZXR1cm4gSShBLGcpfSkpXSl9YXN5bmMgZW1pdFNlcmlhbChBLGcpe2lmKGFzc2VydEV2ZW50TmFtZShBKSxpc01ldGFFdmVudChBKSYmIWMpdGhyb3cgbmV3IFR5cGVFcnJvcigiYGV2ZW50TmFtZWAgY2Fubm90IGJlIG1ldGEgZXZlbnQgYGxpc3RlbmVyQWRkZWRgIG9yIGBsaXN0ZW5lclJlbW92ZWRgIik7dGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiZW1pdFNlcmlhbCIsQSxnKTtjb25zdCBJPWdldExpc3RlbmVycyh0aGlzLEEpPz9uZXcgU2V0LEM9dy5nZXQodGhpcyksQj1bLi4uSV0sRT1bLi4uQ107YXdhaXQgaDtmb3IoY29uc3QgUSBvZiBCKUkuaGFzKFEpJiZhd2FpdCBRKGcpO2Zvcihjb25zdCBRIG9mIEUpQy5oYXMoUSkmJmF3YWl0IFEoQSxnKX1vbkFueShBKXtyZXR1cm4gYXNzZXJ0TGlzdGVuZXIoQSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSx3LmdldCh0aGlzKS5hZGQoQSksZW1pdE1ldGFFdmVudCh0aGlzLFkse2xpc3RlbmVyOkF9KSx0aGlzLm9mZkFueS5iaW5kKHRoaXMsQSl9YW55RXZlbnQoKXtyZXR1cm4gaXRlcmF0b3IodGhpcyl9b2ZmQW55KEEpe2Fzc2VydExpc3RlbmVyKEEpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInVuc3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSxlbWl0TWV0YUV2ZW50KHRoaXMsTix7bGlzdGVuZXI6QX0pLHcuZ2V0KHRoaXMpLmRlbGV0ZShBKX1jbGVhckxpc3RlbmVycyhBKXtBPUFycmF5LmlzQXJyYXkoQSk/QTpbQV07Zm9yKGNvbnN0IGcgb2YgQSlpZih0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJjbGVhciIsZyx2b2lkIDApLCJzdHJpbmciPT10eXBlb2YgZ3x8InN5bWJvbCI9PXR5cGVvZiBnfHwibnVtYmVyIj09dHlwZW9mIGcpe2NvbnN0IEE9Z2V0TGlzdGVuZXJzKHRoaXMsZyk7QSYmQS5jbGVhcigpO2NvbnN0IEk9Z2V0RXZlbnRQcm9kdWNlcnModGhpcyxnKTtpZihJKXtmb3IoY29uc3QgQSBvZiBJKUEuZmluaXNoKCk7SS5jbGVhcigpfX1lbHNle3cuZ2V0KHRoaXMpLmNsZWFyKCk7Zm9yKGNvbnN0W0EsZ11vZiBzLmdldCh0aGlzKS5lbnRyaWVzKCkpZy5jbGVhcigpLHMuZ2V0KHRoaXMpLmRlbGV0ZShBKTtmb3IoY29uc3RbQSxnXW9mIEsuZ2V0KHRoaXMpLmVudHJpZXMoKSl7Zm9yKGNvbnN0IEEgb2YgZylBLmZpbmlzaCgpO2cuY2xlYXIoKSxLLmdldCh0aGlzKS5kZWxldGUoQSl9fX1saXN0ZW5lckNvdW50KEEpe0E9QXJyYXkuaXNBcnJheShBKT9BOltBXTtsZXQgZz0wO2Zvcihjb25zdCBJIG9mIEEpaWYoInN0cmluZyIhPXR5cGVvZiBJKXt2b2lkIDAhPT1JJiZhc3NlcnRFdmVudE5hbWUoSSksZys9dy5nZXQodGhpcykuc2l6ZTtmb3IoY29uc3QgQSBvZiBzLmdldCh0aGlzKS52YWx1ZXMoKSlnKz1BLnNpemU7Zm9yKGNvbnN0IEEgb2YgSy5nZXQodGhpcykudmFsdWVzKCkpZys9QS5zaXplfWVsc2UgZys9dy5nZXQodGhpcykuc2l6ZSsoZ2V0TGlzdGVuZXJzKHRoaXMsSSk/LnNpemU/PzApKyhnZXRFdmVudFByb2R1Y2Vycyh0aGlzLEkpPy5zaXplPz8wKSsoZ2V0RXZlbnRQcm9kdWNlcnModGhpcyk/LnNpemU/PzApO3JldHVybiBnfWJpbmRNZXRob2RzKEEsZyl7aWYoIm9iamVjdCIhPXR5cGVvZiBBfHxudWxsPT09QSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgdGFyZ2V0YCBtdXN0IGJlIGFuIG9iamVjdCIpO2c9ZGVmYXVsdE1ldGhvZE5hbWVzT3JBc3NlcnQoZyk7Zm9yKGNvbnN0IEkgb2YgZyl7aWYodm9pZCAwIT09QVtJXSl0aHJvdyBuZXcgRXJyb3IoYFRoZSBwcm9wZXJ0eSBcYCR7SX1cYCBhbHJlYWR5IGV4aXN0cyBvbiBcYHRhcmdldFxgYCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSSx7ZW51bWVyYWJsZTohMSx2YWx1ZTp0aGlzW0ldLmJpbmQodGhpcyl9KX19fWNvbnN0IFM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoRW1pdHRlcnkucHJvdG90eXBlKS5maWx0ZXIoKEE9PiJjb25zdHJ1Y3RvciIhPT1BKSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEVtaXR0ZXJ5LCJsaXN0ZW5lckFkZGVkIix7dmFsdWU6WSx3cml0YWJsZTohMSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbWl0dGVyeSwibGlzdGVuZXJSZW1vdmVkIix7dmFsdWU6Tix3cml0YWJsZTohMSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pO3ZhciBSPShBPT4oQVtBLlZQOD0wXT0iVlA4IixBW0EuSDI2ND0xXT0iSDI2NCIsQVtBLk9QVVM9Ml09Ik9QVVMiLEEpKShSfHx7fSk7Y29uc3QgRj1jbGFzcyBfRW5jcnlwdGlvbkVuZ2luZSBleHRlbmRzIEVtaXR0ZXJ5e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlzRGVjcnlwdGlvbkVuYWJsZWQ9ITAsdGhpcy5wYXlsb2FkVHlwZXM9e30sdGhpcy5pc09uU3VjY2Vzc0VuYWJsZWQ9ITF9YXN5bmMgaW5pdCgpe3RyeXt0aGlzLmluc3RhbmNlPWF3YWl0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVdhc21JbnN0YW5jZSgpe3JldHVybiBnKCl9KCksdGhpcy5lbmNyeXB0b3I9bmV3IHRoaXMuaW5zdGFuY2UuU0ZyYW1lRW5naW5lKHRoaXMuaW5zdGFuY2UuRW5naW5lVHlwZS5FTkNSWVBUT1IsdGhpcy5pbnN0YW5jZS5DaXBoZXJTdWl0ZS5BRVNfQ1RSXzEyOF9ITUFDX1NIQTI1Nl84MCksdGhpcy5kZWNyeXB0b3I9bmV3IHRoaXMuaW5zdGFuY2UuU0ZyYW1lRW5naW5lKHRoaXMuaW5zdGFuY2UuRW5naW5lVHlwZS5ERUNSWVBUT1IsdGhpcy5pbnN0YW5jZS5DaXBoZXJTdWl0ZS5BRVNfQ1RSXzEyOF9ITUFDX1NIQTI1Nl84MCksc2VsZi5hZGRFdmVudExpc3RlbmVyKCJydGN0cmFuc2Zvcm0iLChBPT57Y29uc29sZS5sb2coInJ0Y3RyYW5zZm9ybSIsQSk7Y29uc3R7dHJhbnNmb3JtZXI6e29wdGlvbnM6e3R5cGU6ZyxpZDpJfSxyZWFkYWJsZTpDLHdyaXRhYmxlOkJ9fT1BO3N3aXRjaChnKXtjYXNlImVuY3J5cHQiOnRoaXMuZW5jcnlwdChJLEMsQik7YnJlYWs7Y2FzZSJkZWNyeXB0Ijp0aGlzLmRlY3J5cHQoSSxDLEIpfX0pKX1jYXRjaChBKXtjb25zb2xlLmVycm9yKCJJTklUIEVSUlJPUiIsQSl9fWFzeW5jIHNldEVuYWJsZU9uU3VjY2VzcyhBKXt0aGlzLmlzT25TdWNjZXNzRW5hYmxlZD1BfWVuYWJsZURlY3J5cHRpb24oKXt0aGlzLmlzRGVjcnlwdGlvbkVuYWJsZWQ9ITB9ZGlzYWJsZURlY3J5cHRpb24oKXt0aGlzLmlzRGVjcnlwdGlvbkVuYWJsZWQ9ITF9c2V0S2V5KEEpe2lmKCF0aGlzLmVuY3J5cHRvcnx8IXRoaXMuZGVjcnlwdG9yKXRocm93IGNvbnNvbGUuZXJyb3IoIkVuZ2luZSBtdXN0IGJlIGluaXRpYWxpemVkIiksIkVuZ2luZSBtdXN0IGJlIGluaXRpYWxpemVkIjt0aGlzLnVwZGF0ZUVuZ2luZUtleSh0aGlzLmVuY3J5cHRvcixBKSx0aGlzLnVwZGF0ZUVuZ2luZUtleSh0aGlzLmRlY3J5cHRvcixBKX1hZGRQYXlsb2FkVHlwZXMoQSl7dGhpcy5wYXlsb2FkVHlwZXM9ey4uLnRoaXMucGF5bG9hZFR5cGVzLC4uLkF9fXJlbW92ZUtleShBKXtpZighdGhpcy5lbmNyeXB0b3J8fCF0aGlzLmRlY3J5cHRvcil0aHJvdyBjb25zb2xlLmVycm9yKCJFbmdpbmUgbXVzdCBiZSBpbml0aWFsaXplZCIpLCJFbmdpbmUgbXVzdCBiZSBpbml0aWFsaXplZCI7dGhpcy5lbmNyeXB0b3IucmVtb3ZlQmFzZUtleShCaWdJbnQoQSkpLHRoaXMuZGVjcnlwdG9yLnJlbW92ZUJhc2VLZXkoQmlnSW50KEEpKX1lbmNyeXB0KEEsZyxJKXt0aGlzLnRyYW5zZm9ybVN0cmVhbShnLEksKGc9PntpZighdGhpcy5lbmNyeXB0b3IpdGhyb3cgY29uc29sZS5lcnJvcigiRW5naW5lIG11c3QgYmUgaW5pdGlhbGl6ZWQiKSwiRW5naW5lIG11c3QgYmUgaW5pdGlhbGl6ZWQiO3RoaXMucHJvY2Vzc0ZyYW1lKHRoaXMuZW5jcnlwdG9yLEEsZyl9KSl9ZGVjcnlwdChBLGcsSSl7dGhpcy50cmFuc2Zvcm1TdHJlYW0oZyxJLChnPT57aWYoIXRoaXMuZGVjcnlwdG9yKXRocm93IGNvbnNvbGUuZXJyb3IoIkVuZ2luZSBtdXN0IGJlIGluaXRpYWxpemVkIiksIkVuZ2luZSBtdXN0IGJlIGluaXRpYWxpemVkIjt0aGlzLmlzRGVjcnlwdGlvbkVuYWJsZWQmJnRoaXMucHJvY2Vzc0ZyYW1lKHRoaXMuZGVjcnlwdG9yLEEsZyl9KSl9c2V0Q29kZWNzKEEsZyl7dGhpcy5hdWRpb0NvZGVjPUEsdGhpcy52aWRlb0NvZGVjPWd9YXN5bmMgdHJhbnNmb3JtU3RyZWFtKEEsZyxJKXtjb25zdCBDPUEuZ2V0UmVhZGVyKCksQj1nLmdldFdyaXRlcigpO2Zvcig7Oyl0cnl7Y29uc3R7dmFsdWU6QX09YXdhaXQgQy5yZWFkKCk7SShBKSxhd2FpdCBCLnJlYWR5LGF3YWl0IEIud3JpdGUoQSl9Y2F0Y2goRSl7Y29uc29sZS5sb2coIkVSUk9SIixFKX19dXBkYXRlRW5naW5lS2V5KEEsZyl7Y29uc3QgST1BLmdldEtleUJ1ZmZlcihnLmtleS5sZW5ndGgpO2xldCBDPWcua2V5OyJzdHJpbmciPT10eXBlb2YgQyYmKEM9VWludDhBcnJheS5mcm9tKEMuc3BsaXQoIiIpLm1hcCgoQT0+QS5jaGFyQ29kZUF0KDApKSkpKSxJLnNldChDKSxBLmFkZE9yVXBkYXRlQmFzZUtleShCaWdJbnQoZy5raWQpKX1wcm9jZXNzRnJhbWUoQSxnLEkpe2lmKDA9PT1JLmRhdGEuYnl0ZUxlbmd0aClyZXR1cm4gdm9pZCB0aGlzLmVtaXQoImVtcHR5RnJhbWUiLHttZXNzYWdlOmBFTVBUWSAke0kgaW5zdGFuY2VvZiBSVENFbmNvZGVkQXVkaW9GcmFtZT8iQVVESU8iOiJWSURFTyJ9IEZSQU1FYH0pO2lmKCF0aGlzLmluc3RhbmNlKXRocm93IGNvbnNvbGUuZXJyb3IoIkVuZ2luZSBtdXN0IGJlIGluaXRpYWxpemVkIiksIk5vdCBpbml0aWFsaXplZCI7bGV0IEM7aWYodm9pZCAwIT09dGhpcy5hdWRpb0NvZGVjJiZJIGluc3RhbmNlb2YgUlRDRW5jb2RlZEF1ZGlvRnJhbWUpQz10aGlzLmF1ZGlvQ29kZWM7ZWxzZSBpZih2b2lkIDAhPT10aGlzLnZpZGVvQ29kZWMmJkkgaW5zdGFuY2VvZiBSVENFbmNvZGVkVmlkZW9GcmFtZSlDPXRoaXMudmlkZW9Db2RlYztlbHNle2NvbnN0IEE9SS5nZXRNZXRhZGF0YSgpO0M9dGhpcy5wYXlsb2FkVHlwZXNbQS5wYXlsb2FkVHlwZV19c3dpdGNoKEMpe2Nhc2UgUi5WUDg6QS5zZXRTa2lwT2Zmc2V0KHRoaXMuaW5zdGFuY2U/LlNraXBPZmZzZXQuVlA4KTticmVhaztjYXNlIFIuSDI2NDpBLnNldFNraXBPZmZzZXQodGhpcy5pbnN0YW5jZT8uU2tpcE9mZnNldC5IMjY0KTticmVhaztjYXNlIFIuT1BVUzpBLnNldFNraXBPZmZzZXQodGhpcy5pbnN0YW5jZT8uU2tpcE9mZnNldC5PUFVTKTticmVhaztkZWZhdWx0OnRoaXMuZW1pdCgid2FybmluZyIse21lc3NhZ2U6IlVua25vd24gY29kZWMifSl9Y29uc3QgQj1uZXcgVWludDhBcnJheShJLmRhdGEpLEU9dGhpcy5ydW5FbmdpbmVBbGdvcml0aG0oQSxnLEIpLFE9QS5nZXRTdGF0dXMoKTtpZihRPT09dGhpcy5pbnN0YW5jZS5TdGF0dXMuT0smJkUuYnl0ZUxlbmd0aD4wKUkuZGF0YT1uZXcgQXJyYXlCdWZmZXIoRS5ieXRlTGVuZ3RoKSxuZXcgVWludDhBcnJheShJLmRhdGEpLnNldChFKSx0aGlzLmlzT25TdWNjZXNzRW5hYmxlZCYmdGhpcy5lbWl0KCJzdWNjZXNzIix7fSk7ZWxzZSBzd2l0Y2goUSl7Y2FzZSB0aGlzLmluc3RhbmNlLlN0YXR1cy5GQUlMRURfVE9fQVVUSEVOVElDQVRFOnRoaXMuZW1pdCgiZXJyb3IiLHttZXNzYWdlOiJFUlJPUjogRkFJTEVEX1RPX0FVVEhFTlRJQ0FURSJ9KTticmVhaztjYXNlIHRoaXMuaW5zdGFuY2UuU3RhdHVzLkZBSUxFRF9UT19ERUNSWVBUOnRoaXMuZW1pdCgiZXJyb3IiLHttZXNzYWdlOiJFUlJPUjogRkFJTEVEX1RPX0RFQ1JZUFQifSk7YnJlYWs7Y2FzZSB0aGlzLmluc3RhbmNlLlN0YXR1cy5GQUlMRURfVE9fRU5DUllQVDp0aGlzLmVtaXQoImVycm9yIix7bWVzc2FnZToiRVJST1I6IEZBSUxFRF9UT19FTkNSWVBUIn0pO2JyZWFrO2Nhc2UgdGhpcy5pbnN0YW5jZS5TdGF0dXMuRkFJTF9QQVJTRV9DT0RFQ19IRUFERVI6dGhpcy5lbWl0KCJlcnJvciIse21lc3NhZ2U6IkVSUk9SOiBGQUlMX1BBUlNFX0NPREVDX0hFQURFUiJ9KTticmVhaztjYXNlIHRoaXMuaW5zdGFuY2UuU3RhdHVzLk5VTExfSU5QVVRfRlJBTUU6dGhpcy5lbWl0KCJlcnJvciIse21lc3NhZ2U6IkVSUk9SOiBOVUxMX0lOUFVUX0ZSQU1FIn0pO2JyZWFrO2Nhc2UgdGhpcy5pbnN0YW5jZS5TdGF0dXMuTlVMTF9PVVRQVVRfRlJBTUU6dGhpcy5lbWl0KCJlcnJvciIse21lc3NhZ2U6IkVSUk9SOiBOVUxMX09VVFBVVF9GUkFNRSJ9KTticmVhaztjYXNlIHRoaXMuaW5zdGFuY2UuU3RhdHVzLlVOS05PV046dGhpcy5lbWl0KCJlcnJvciIse21lc3NhZ2U6IkVSUk9SOiBVTktOT1dOIn0pO2JyZWFrO2Nhc2UgdGhpcy5pbnN0YW5jZS5TdGF0dXMuT0s6dGhpcy5lbWl0KCJlcnJvciIse21lc3NhZ2U6IkVSUk9SOiBFTVBUWSBPVVRQVVQifSl9fXJ1bkVuZ2luZUFsZ29yaXRobShBLGcsSSl7dHJ5e0EuZ2V0SW5wdXRGcmFtZShJLmxlbmd0aCkuc2V0KEkpO2NvbnN0IEM9QS5ydW5BbGdvcml0aG0oQmlnSW50KGcpKTtyZXR1cm4gQS5nZXRPdXRwdXRGcmFtZSgpLnNsaWNlKDAsQyl9Y2F0Y2goQyl7cmV0dXJuIGNvbnNvbGUubG9nKCJGQUlMIixJLmxlbmd0aCxDKSxuZXcgVWludDhBcnJheShbXSl9fX07IWZ1bmN0aW9uIHJlZ2lzdGVyV29ya2VyKEEsZyl7Zy53b3JrZXJJZD1BLGlzV29ya2VyKCkmJihuW2cud29ya2VySWRdPWcpfSgiZW5jcnlwdGlvbi1lbmdpbmUiLEYpfSgpOwo=",Qa=typeof window<"u"&&window.Blob&&new Blob([atob($o)],{type:"text/javascript;charset=utf-8"});function Gl(){let Lt;try{if(Lt=Qa&&(window.URL||window.webkitURL).createObjectURL(Qa),!Lt)throw"";return new Worker(Lt)}catch{return new Worker("data:application/javascript;base64,"+$o)}finally{Lt&&(window.URL||window.webkitURL).revokeObjectURL(Lt)}}let Gi=function(Lt){(0,f.default)($t,Lt);function $t(bt,zt){var Ot;return bt===void 0&&(bt=0),Ot=Lt.call(this)||this,Ot.senderId=bt,Ot.config=zt,Ot}var At=$t.prototype;return At.init=function(){var bt=(0,A.default)(u.default.mark(function Ot(){return u.default.wrap(function(Kt){for(;;)switch(Kt.prev=Kt.next){case 0:return Kt.next=2,_e(ml,Gl);case 2:return this.worker=Kt.sent,Kt.next=5,this.worker.init();case 5:this.worker.onAny((cn,Jn)=>{const qt=new Event(cn);qt.id=Jn.id,qt.senderId=Jn.senderId,this.dispatchEvent(qt)});case 6:case"end":return Kt.stop()}},Ot,this)}));function zt(){return bt.apply(this,arguments)}return zt}(),$t.create=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct,Kt){var cn;return u.default.wrap(function(qt){for(;;)switch(qt.prev=qt.next){case 0:return Kt===void 0&&(Kt={}),cn=new $t(Ct,Kt),qt.next=4,cn.init();case 4:return qt.abrupt("return",cn);case 5:case"end":return qt.stop()}},Ot)}));function zt(Ot,Ct){return bt.apply(this,arguments)}return zt}(),At.setEnableDecryption=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct){var Kt,cn;return u.default.wrap(function(qt){for(;;)switch(qt.prev=qt.next){case 0:if(!Ct){qt.next=5;break}return qt.next=3,(Kt=this.worker)==null?void 0:Kt.enableDecryption();case 3:qt.next=7;break;case 5:return qt.next=7,(cn=this.worker)==null?void 0:cn.disableDecryption();case 7:case"end":return qt.stop()}},Ot,this)}));function zt(Ot){return bt.apply(this,arguments)}return zt}(),At.setEnableOnSuccess=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct){var Kt;return u.default.wrap(function(Jn){for(;;)switch(Jn.prev=Jn.next){case 0:return Jn.next=2,(Kt=this.worker)==null?void 0:Kt.setEnableOnSuccess(Ct);case 2:case"end":return Jn.stop()}},Ot,this)}));function zt(Ot){return bt.apply(this,arguments)}return zt}(),At.setSenderEncryptionKey=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct){var Kt;return u.default.wrap(function(Jn){for(;;)switch(Jn.prev=Jn.next){case 0:return Jn.next=2,(Kt=this.worker)==null?void 0:Kt.setKey({kid:this.senderId,key:Ct});case 2:case"end":return Jn.stop()}},Ot,this)}));function zt(Ot){return bt.apply(this,arguments)}return zt}(),At.addReceiver=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct){var Kt;return u.default.wrap(function(Jn){for(;;)switch(Jn.prev=Jn.next){case 0:return Jn.next=2,(Kt=this.worker)==null?void 0:Kt.setKey({kid:Ct,key:""});case 2:case"end":return Jn.stop()}},Ot,this)}));function zt(Ot){return bt.apply(this,arguments)}return zt}(),At.setReceiverEncryptionKey=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct,Kt){var cn;return u.default.wrap(function(qt){for(;;)switch(qt.prev=qt.next){case 0:return qt.next=2,(cn=this.worker)==null?void 0:cn.setKey({kid:Ct,key:Kt});case 2:case"end":return qt.stop()}},Ot,this)}));function zt(Ot,Ct){return bt.apply(this,arguments)}return zt}(),At.deleteReceiver=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct){var Kt;return u.default.wrap(function(Jn){for(;;)switch(Jn.prev=Jn.next){case 0:return Jn.next=2,(Kt=this.worker)==null?void 0:Kt.removeKey(Ct);case 2:case"end":return Jn.stop()}},Ot,this)}));function zt(Ot){return bt.apply(this,arguments)}return zt}(),At.encrypt=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct,Kt){return u.default.wrap(function(Jn){for(;;)switch(Jn.prev=Jn.next){case 0:return Jn.abrupt("return",this.createPipeline(Ct,Kt,"encrypt"));case 1:case"end":return Jn.stop()}},Ot,this)}));function zt(Ot,Ct){return bt.apply(this,arguments)}return zt}(),At.decrypt=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct,Kt){return u.default.wrap(function(Jn){for(;;)switch(Jn.prev=Jn.next){case 0:return Jn.abrupt("return",this.createPipeline(Ct,Kt,"decrypt"));case 1:case"end":return Jn.stop()}},Ot,this)}));function zt(Ot,Ct){return bt.apply(this,arguments)}return zt}(),At.createPipeline=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct,Kt,cn){var Jn,qt,Mn,mr,Ur,sr;return u.default.wrap(function(Gr){for(;;)switch(Gr.prev=Gr.next){case 0:if(!Kt.createEncodedStreams){Gr.next=15;break}return Gr.next=3,this.updateWorkerWithParameters(Kt.getParameters());case 3:return Gr.prev=3,qt=Kt.createEncodedStreams(),Mn=qt.readable,mr=qt.writable,Gr.next=7,(Jn=this.worker)==null?void 0:Jn[cn](Ct,Mn,mr);case 7:Gr.next=13;break;case 9:throw Gr.prev=9,Gr.t0=Gr.catch(3),console.error("Fail to retrieve streams",Gr.t0),Gr.t0;case 13:Gr.next=21;break;case 15:if(!window.RTCRtpScriptTransform){Gr.next=20;break}sr=(Ur=this.worker)==null?void 0:Ur.workerContext.worker,Kt.transform=new window.RTCRtpScriptTransform(sr,{type:cn,id:Ct}),Gr.next=21;break;case 20:throw"Unsupported stream processing";case 21:case"end":return Gr.stop()}},Ot,this,[[3,9]])}));function zt(Ot,Ct,Kt){return bt.apply(this,arguments)}return zt}(),At.close=function(){var bt=(0,A.default)(u.default.mark(function Ot(){var Ct;return u.default.wrap(function(cn){for(;;)switch(cn.prev=cn.next){case 0:return cn.next=2,(Ct=this.worker)==null?void 0:Ct.terminate();case 2:case"end":return cn.stop()}},Ot,this)}));function zt(){return bt.apply(this,arguments)}return zt}(),At.setCodecs=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct,Kt){var cn;return u.default.wrap(function(qt){for(;;)switch(qt.prev=qt.next){case 0:return qt.next=2,(cn=this.worker)==null?void 0:cn.setCodecs(Ct,Kt);case 2:case"end":return qt.stop()}},Ot,this)}));function zt(Ot,Ct){return bt.apply(this,arguments)}return zt}(),At.updateWorkerWithParameters=function(){var bt=(0,A.default)(u.default.mark(function Ot(Ct){var Kt;return u.default.wrap(function(Jn){for(;;)switch(Jn.prev=Jn.next){case 0:if(this.worker){Jn.next=2;break}throw"Client not initialized, missing worker";case 2:if(Ct.codecs.length!==0){Jn.next=4;break}throw"Empty codecs list, ensure your connection are in a proper state";case 4:return Kt=this.getPayloadTypesFromCodecs(Ct.codecs),Jn.next=7,this.worker.addPayloadTypes(Kt);case 7:case"end":return Jn.stop()}},Ot,this)}));function zt(Ot){return bt.apply(this,arguments)}return zt}(),At.getPayloadTypesFromCodecs=function(zt){const Ot={};for(var Ct=p(zt),Kt;!(Kt=Ct()).done;){const cn=Kt.value,Jn=cn.mimeType.toLowerCase();Jn.includes("vp8")?Ot[cn.payloadType]=F.VP8:Jn.includes("h264")?Ot[cn.payloadType]=F.H264:Jn.includes("opus")&&(Ot[cn.payloadType]=F.OPUS)}return Ot},$t}((0,h.default)(EventTarget));r.Client=Gi}).call(this,i(2),i(27),"/",i(791).Buffer)},function(n,r,i){/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh <http://feross.org> * @license MIT */var a=i(792),o=i(793),l=i(794);r.Buffer=u,r.SlowBuffer=R,r.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=(typeof window!==void 0?window:yr).TYPED_ARRAY_SUPPORT!==void 0?(typeof window!==void 0?window:yr).TYPED_ARRAY_SUPPORT:s(),r.kMaxLength=d();function s(){try{var he=new Uint8Array(1);return he.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},he.foo()===42&&typeof he.subarray=="function"&&he.subarray(1,1).byteLength===0}catch{return!1}}function d(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function c(he,$){if(d()<$)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(he=new Uint8Array($),he.__proto__=u.prototype):(he===null&&(he=new u($)),he.length=$),he}function u(he,$,ie){if(!u.TYPED_ARRAY_SUPPORT&&!(this instanceof u))return new u(he,$,ie);if(typeof he=="number"){if(typeof $=="string")throw new Error("If encoding is specified then the first argument must be a string");return A(this,he)}return h(this,he,$,ie)}u.poolSize=8192,u._augment=function(he){return he.__proto__=u.prototype,he};function h(he,$,ie,Ve){if(typeof $=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&$ instanceof ArrayBuffer?y(he,$,ie,Ve):typeof $=="string"?b(he,$,ie):m(he,$)}u.from=function(he,$,ie){return h(null,he,$,ie)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0}));function f(he){if(typeof he!="number")throw new TypeError('"size" argument must be a number');if(he<0)throw new RangeError('"size" argument must not be negative')}function g(he,$,ie,Ve){return f($),$<=0?c(he,$):ie!==void 0?typeof Ve=="string"?c(he,$).fill(ie,Ve):c(he,$).fill(ie):c(he,$)}u.alloc=function(he,$,ie){return g(null,he,$,ie)};function A(he,$){if(f($),he=c(he,$<0?0:F($)|0),!u.TYPED_ARRAY_SUPPORT)for(var ie=0;ie<$;++ie)he[ie]=0;return he}u.allocUnsafe=function(he){return A(null,he)},u.allocUnsafeSlow=function(he){return A(null,he)};function b(he,$,ie){if((typeof ie!="string"||ie==="")&&(ie="utf8"),!u.isEncoding(ie))throw new TypeError('"encoding" must be a valid string encoding');var Ve=C($,ie)|0;he=c(he,Ve);var _e=he.write($,ie);return _e!==Ve&&(he=he.slice(0,_e)),he}function p(he,$){var ie=$.length<0?0:F($.length)|0;he=c(he,ie);for(var Ve=0;Ve<ie;Ve+=1)he[Ve]=$[Ve]&255;return he}function y(he,$,ie,Ve){if($.byteLength,ie<0||$.byteLength<ie)throw new RangeError("'offset' is out of bounds");if($.byteLength<ie+(Ve||0))throw new RangeError("'length' is out of bounds");return ie===void 0&&Ve===void 0?$=new Uint8Array($):Ve===void 0?$=new Uint8Array($,ie):$=new Uint8Array($,ie,Ve),u.TYPED_ARRAY_SUPPORT?(he=$,he.__proto__=u.prototype):he=p(he,$),he}function m(he,$){if(u.isBuffer($)){var ie=F($.length)|0;return he=c(he,ie),he.length===0||$.copy(he,0,0,ie),he}if($){if(typeof ArrayBuffer<"u"&&$.buffer instanceof ArrayBuffer||"length"in $)return typeof $.length!="number"||Ge($.length)?c(he,0):p(he,$);if($.type==="Buffer"&&l($.data))return p(he,$.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function F(he){if(he>=d())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+d().toString(16)+" bytes");return he|0}function R(he){return+he!=he&&(he=0),u.alloc(+he)}u.isBuffer=function($){return!!($!=null&&$._isBuffer)},u.compare=function($,ie){if(!u.isBuffer($)||!u.isBuffer(ie))throw new TypeError("Arguments must be Buffers");if($===ie)return 0;for(var Ve=$.length,_e=ie.length,we=0,nt=Math.min(Ve,_e);we<nt;++we)if($[we]!==ie[we]){Ve=$[we],_e=ie[we];break}return Ve<_e?-1:_e<Ve?1:0},u.isEncoding=function($){switch(String($).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function($,ie){if(!l($))throw new TypeError('"list" argument must be an Array of Buffers');if($.length===0)return u.alloc(0);var Ve;if(ie===void 0)for(ie=0,Ve=0;Ve<$.length;++Ve)ie+=$[Ve].length;var _e=u.allocUnsafe(ie),we=0;for(Ve=0;Ve<$.length;++Ve){var nt=$[Ve];if(!u.isBuffer(nt))throw new TypeError('"list" argument must be an Array of Buffers');nt.copy(_e,we),we+=nt.length}return _e};function C(he,$){if(u.isBuffer(he))return he.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(he)||he instanceof ArrayBuffer))return he.byteLength;typeof he!="string"&&(he=""+he);var ie=he.length;if(ie===0)return 0;for(var Ve=!1;;)switch($){case"ascii":case"latin1":case"binary":return ie;case"utf8":case"utf-8":case void 0:return it(he).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ie*2;case"hex":return ie>>>1;case"base64":return Dt(he).length;default:if(Ve)return it(he).length;$=(""+$).toLowerCase(),Ve=!0}}u.byteLength=C;function B(he,$,ie){var Ve=!1;if(($===void 0||$<0)&&($=0),$>this.length||((ie===void 0||ie>this.length)&&(ie=this.length),ie<=0)||(ie>>>=0,$>>>=0,ie<=$))return"";for(he||(he="utf8");;)switch(he){case"hex":return We(this,$,ie);case"utf8":case"utf-8":return z(this,$,ie);case"ascii":return Ke(this,$,ie);case"latin1":case"binary":return pe(this,$,ie);case"base64":return Fe(this,$,ie);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return xe(this,$,ie);default:if(Ve)throw new TypeError("Unknown encoding: "+he);he=(he+"").toLowerCase(),Ve=!0}}u.prototype._isBuffer=!0;function N(he,$,ie){var Ve=he[$];he[$]=he[ie],he[ie]=Ve}u.prototype.swap16=function(){var $=this.length;if($%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var ie=0;ie<$;ie+=2)N(this,ie,ie+1);return this},u.prototype.swap32=function(){var $=this.length;if($%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var ie=0;ie<$;ie+=4)N(this,ie,ie+3),N(this,ie+1,ie+2);return this},u.prototype.swap64=function(){var $=this.length;if($%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var ie=0;ie<$;ie+=8)N(this,ie,ie+7),N(this,ie+1,ie+6),N(this,ie+2,ie+5),N(this,ie+3,ie+4);return this},u.prototype.toString=function(){var $=this.length|0;return $===0?"":arguments.length===0?z(this,0,$):B.apply(this,arguments)},u.prototype.equals=function($){if(!u.isBuffer($))throw new TypeError("Argument must be a Buffer");return this===$?!0:u.compare(this,$)===0},u.prototype.inspect=function(){var $="",ie=r.INSPECT_MAX_BYTES;return this.length>0&&($=this.toString("hex",0,ie).match(/.{2}/g).join(" "),this.length>ie&&($+=" ... ")),"<Buffer "+$+">"},u.prototype.compare=function($,ie,Ve,_e,we){if(!u.isBuffer($))throw new TypeError("Argument must be a Buffer");if(ie===void 0&&(ie=0),Ve===void 0&&(Ve=$?$.length:0),_e===void 0&&(_e=0),we===void 0&&(we=this.length),ie<0||Ve>$.length||_e<0||we>this.length)throw new RangeError("out of range index");if(_e>=we&&ie>=Ve)return 0;if(_e>=we)return-1;if(ie>=Ve)return 1;if(ie>>>=0,Ve>>>=0,_e>>>=0,we>>>=0,this===$)return 0;for(var nt=we-_e,Gt=Ve-ie,An=Math.min(nt,Gt),Dn=this.slice(_e,we),tr=$.slice(ie,Ve),nr=0;nr<An;++nr)if(Dn[nr]!==tr[nr]){nt=Dn[nr],Gt=tr[nr];break}return nt<Gt?-1:Gt<nt?1:0};function S(he,$,ie,Ve,_e){if(he.length===0)return-1;if(typeof ie=="string"?(Ve=ie,ie=0):ie>2147483647?ie=2147483647:ie<-2147483648&&(ie=-2147483648),ie=+ie,isNaN(ie)&&(ie=_e?0:he.length-1),ie<0&&(ie=he.length+ie),ie>=he.length){if(_e)return-1;ie=he.length-1}else if(ie<0)if(_e)ie=0;else return-1;if(typeof $=="string"&&($=u.from($,Ve)),u.isBuffer($))return $.length===0?-1:X(he,$,ie,Ve,_e);if(typeof $=="number")return $=$&255,u.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?_e?Uint8Array.prototype.indexOf.call(he,$,ie):Uint8Array.prototype.lastIndexOf.call(he,$,ie):X(he,[$],ie,Ve,_e);throw new TypeError("val must be string, number or Buffer")}function X(he,$,ie,Ve,_e){var we=1,nt=he.length,Gt=$.length;if(Ve!==void 0&&(Ve=String(Ve).toLowerCase(),Ve==="ucs2"||Ve==="ucs-2"||Ve==="utf16le"||Ve==="utf-16le")){if(he.length<2||$.length<2)return-1;we=2,nt/=2,Gt/=2,ie/=2}function An(dr,Dr){return we===1?dr[Dr]:dr.readUInt16BE(Dr*we)}var Dn;if(_e){var tr=-1;for(Dn=ie;Dn<nt;Dn++)if(An(he,Dn)===An($,tr===-1?0:Dn-tr)){if(tr===-1&&(tr=Dn),Dn-tr+1===Gt)return tr*we}else tr!==-1&&(Dn-=Dn-tr),tr=-1}else for(ie+Gt>nt&&(ie=nt-Gt),Dn=ie;Dn>=0;Dn--){for(var nr=!0,zn=0;zn<Gt;zn++)if(An(he,Dn+zn)!==An($,zn)){nr=!1;break}if(nr)return Dn}return-1}u.prototype.includes=function($,ie,Ve){return this.indexOf($,ie,Ve)!==-1},u.prototype.indexOf=function($,ie,Ve){return S(this,$,ie,Ve,!0)},u.prototype.lastIndexOf=function($,ie,Ve){return S(this,$,ie,Ve,!1)};function J(he,$,ie,Ve){ie=Number(ie)||0;var _e=he.length-ie;Ve?(Ve=Number(Ve),Ve>_e&&(Ve=_e)):Ve=_e;var we=$.length;if(we%2!==0)throw new TypeError("Invalid hex string");Ve>we/2&&(Ve=we/2);for(var nt=0;nt<Ve;++nt){var Gt=parseInt($.substr(nt*2,2),16);if(isNaN(Gt))return nt;he[ie+nt]=Gt}return nt}function E(he,$,ie,Ve){return Ee(it($,he.length-ie),he,ie,Ve)}function v(he,$,ie,Ve){return Ee(Qt($),he,ie,Ve)}function j(he,$,ie,Ve){return v(he,$,ie,Ve)}function H(he,$,ie,Ve){return Ee(Dt($),he,ie,Ve)}function K(he,$,ie,Ve){return Ee(_t($,he.length-ie),he,ie,Ve)}u.prototype.write=function($,ie,Ve,_e){if(ie===void 0)_e="utf8",Ve=this.length,ie=0;else if(Ve===void 0&&typeof ie=="string")_e=ie,Ve=this.length,ie=0;else if(isFinite(ie))ie=ie|0,isFinite(Ve)?(Ve=Ve|0,_e===void 0&&(_e="utf8")):(_e=Ve,Ve=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var we=this.length-ie;if((Ve===void 0||Ve>we)&&(Ve=we),$.length>0&&(Ve<0||ie<0)||ie>this.length)throw new RangeError("Attempt to write outside buffer bounds");_e||(_e="utf8");for(var nt=!1;;)switch(_e){case"hex":return J(this,$,ie,Ve);case"utf8":case"utf-8":return E(this,$,ie,Ve);case"ascii":return v(this,$,ie,Ve);case"latin1":case"binary":return j(this,$,ie,Ve);case"base64":return H(this,$,ie,Ve);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return K(this,$,ie,Ve);default:if(nt)throw new TypeError("Unknown encoding: "+_e);_e=(""+_e).toLowerCase(),nt=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Fe(he,$,ie){return $===0&&ie===he.length?a.fromByteArray(he):a.fromByteArray(he.slice($,ie))}function z(he,$,ie){ie=Math.min(he.length,ie);for(var Ve=[],_e=$;_e<ie;){var we=he[_e],nt=null,Gt=we>239?4:we>223?3:we>191?2:1;if(_e+Gt<=ie){var An,Dn,tr,nr;switch(Gt){case 1:we<128&&(nt=we);break;case 2:An=he[_e+1],(An&192)===128&&(nr=(we&31)<<6|An&63,nr>127&&(nt=nr));break;case 3:An=he[_e+1],Dn=he[_e+2],(An&192)===128&&(Dn&192)===128&&(nr=(we&15)<<12|(An&63)<<6|Dn&63,nr>2047&&(nr<55296||nr>57343)&&(nt=nr));break;case 4:An=he[_e+1],Dn=he[_e+2],tr=he[_e+3],(An&192)===128&&(Dn&192)===128&&(tr&192)===128&&(nr=(we&15)<<18|(An&63)<<12|(Dn&63)<<6|tr&63,nr>65535&&nr<1114112&&(nt=nr))}}nt===null?(nt=65533,Gt=1):nt>65535&&(nt-=65536,Ve.push(nt>>>10&1023|55296),nt=56320|nt&1023),Ve.push(nt),_e+=Gt}return Ae(Ve)}var q=4096;function Ae(he){var $=he.length;if($<=q)return String.fromCharCode.apply(String,he);for(var ie="",Ve=0;Ve<$;)ie+=String.fromCharCode.apply(String,he.slice(Ve,Ve+=q));return ie}function Ke(he,$,ie){var Ve="";ie=Math.min(he.length,ie);for(var _e=$;_e<ie;++_e)Ve+=String.fromCharCode(he[_e]&127);return Ve}function pe(he,$,ie){var Ve="";ie=Math.min(he.length,ie);for(var _e=$;_e<ie;++_e)Ve+=String.fromCharCode(he[_e]);return Ve}function We(he,$,ie){var Ve=he.length;(!$||$<0)&&($=0),(!ie||ie<0||ie>Ve)&&(ie=Ve);for(var _e="",we=$;we<ie;++we)_e+=Ye(he[we]);return _e}function xe(he,$,ie){for(var Ve=he.slice($,ie),_e="",we=0;we<Ve.length;we+=2)_e+=String.fromCharCode(Ve[we]+Ve[we+1]*256);return _e}u.prototype.slice=function($,ie){var Ve=this.length;$=~~$,ie=ie===void 0?Ve:~~ie,$<0?($+=Ve,$<0&&($=0)):$>Ve&&($=Ve),ie<0?(ie+=Ve,ie<0&&(ie=0)):ie>Ve&&(ie=Ve),ie<$&&(ie=$);var _e;if(u.TYPED_ARRAY_SUPPORT)_e=this.subarray($,ie),_e.__proto__=u.prototype;else{var we=ie-$;_e=new u(we,void 0);for(var nt=0;nt<we;++nt)_e[nt]=this[nt+$]}return _e};function $e(he,$,ie){if(he%1!==0||he<0)throw new RangeError("offset is not uint");if(he+$>ie)throw new RangeError("Trying to access beyond buffer length")}u.prototype.readUIntLE=function($,ie,Ve){$=$|0,ie=ie|0,Ve||$e($,ie,this.length);for(var _e=this[$],we=1,nt=0;++nt<ie&&(we*=256);)_e+=this[$+nt]*we;return _e},u.prototype.readUIntBE=function($,ie,Ve){$=$|0,ie=ie|0,Ve||$e($,ie,this.length);for(var _e=this[$+--ie],we=1;ie>0&&(we*=256);)_e+=this[$+--ie]*we;return _e},u.prototype.readUInt8=function($,ie){return ie||$e($,1,this.length),this[$]},u.prototype.readUInt16LE=function($,ie){return ie||$e($,2,this.length),this[$]|this[$+1]<<8},u.prototype.readUInt16BE=function($,ie){return ie||$e($,2,this.length),this[$]<<8|this[$+1]},u.prototype.readUInt32LE=function($,ie){return ie||$e($,4,this.length),(this[$]|this[$+1]<<8|this[$+2]<<16)+this[$+3]*16777216},u.prototype.readUInt32BE=function($,ie){return ie||$e($,4,this.length),this[$]*16777216+(this[$+1]<<16|this[$+2]<<8|this[$+3])},u.prototype.readIntLE=function($,ie,Ve){$=$|0,ie=ie|0,Ve||$e($,ie,this.length);for(var _e=this[$],we=1,nt=0;++nt<ie&&(we*=256);)_e+=this[$+nt]*we;return we*=128,_e>=we&&(_e-=Math.pow(2,8*ie)),_e},u.prototype.readIntBE=function($,ie,Ve){$=$|0,ie=ie|0,Ve||$e($,ie,this.length);for(var _e=ie,we=1,nt=this[$+--_e];_e>0&&(we*=256);)nt+=this[$+--_e]*we;return we*=128,nt>=we&&(nt-=Math.pow(2,8*ie)),nt},u.prototype.readInt8=function($,ie){return ie||$e($,1,this.length),this[$]&128?(255-this[$]+1)*-1:this[$]},u.prototype.readInt16LE=function($,ie){ie||$e($,2,this.length);var Ve=this[$]|this[$+1]<<8;return Ve&32768?Ve|4294901760:Ve},u.prototype.readInt16BE=function($,ie){ie||$e($,2,this.length);var Ve=this[$+1]|this[$]<<8;return Ve&32768?Ve|4294901760:Ve},u.prototype.readInt32LE=function($,ie){return ie||$e($,4,this.length),this[$]|this[$+1]<<8|this[$+2]<<16|this[$+3]<<24},u.prototype.readInt32BE=function($,ie){return ie||$e($,4,this.length),this[$]<<24|this[$+1]<<16|this[$+2]<<8|this[$+3]},u.prototype.readFloatLE=function($,ie){return ie||$e($,4,this.length),o.read(this,$,!0,23,4)},u.prototype.readFloatBE=function($,ie){return ie||$e($,4,this.length),o.read(this,$,!1,23,4)},u.prototype.readDoubleLE=function($,ie){return ie||$e($,8,this.length),o.read(this,$,!0,52,8)},u.prototype.readDoubleBE=function($,ie){return ie||$e($,8,this.length),o.read(this,$,!1,52,8)};function Rt(he,$,ie,Ve,_e,we){if(!u.isBuffer(he))throw new TypeError('"buffer" argument must be a Buffer instance');if($>_e||$<we)throw new RangeError('"value" argument is out of bounds');if(ie+Ve>he.length)throw new RangeError("Index out of range")}u.prototype.writeUIntLE=function($,ie,Ve,_e){if($=+$,ie=ie|0,Ve=Ve|0,!_e){var we=Math.pow(2,8*Ve)-1;Rt(this,$,ie,Ve,we,0)}var nt=1,Gt=0;for(this[ie]=$&255;++Gt<Ve&&(nt*=256);)this[ie+Gt]=$/nt&255;return ie+Ve},u.prototype.writeUIntBE=function($,ie,Ve,_e){if($=+$,ie=ie|0,Ve=Ve|0,!_e){var we=Math.pow(2,8*Ve)-1;Rt(this,$,ie,Ve,we,0)}var nt=Ve-1,Gt=1;for(this[ie+nt]=$&255;--nt>=0&&(Gt*=256);)this[ie+nt]=$/Gt&255;return ie+Ve},u.prototype.writeUInt8=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,1,255,0),u.TYPED_ARRAY_SUPPORT||($=Math.floor($)),this[ie]=$&255,ie+1};function Be(he,$,ie,Ve){$<0&&($=65535+$+1);for(var _e=0,we=Math.min(he.length-ie,2);_e<we;++_e)he[ie+_e]=($&255<<8*(Ve?_e:1-_e))>>>(Ve?_e:1-_e)*8}u.prototype.writeUInt16LE=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[ie]=$&255,this[ie+1]=$>>>8):Be(this,$,ie,!0),ie+2},u.prototype.writeUInt16BE=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[ie]=$>>>8,this[ie+1]=$&255):Be(this,$,ie,!1),ie+2};function qe(he,$,ie,Ve){$<0&&($=4294967295+$+1);for(var _e=0,we=Math.min(he.length-ie,4);_e<we;++_e)he[ie+_e]=$>>>(Ve?_e:3-_e)*8&255}u.prototype.writeUInt32LE=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[ie+3]=$>>>24,this[ie+2]=$>>>16,this[ie+1]=$>>>8,this[ie]=$&255):qe(this,$,ie,!0),ie+4},u.prototype.writeUInt32BE=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[ie]=$>>>24,this[ie+1]=$>>>16,this[ie+2]=$>>>8,this[ie+3]=$&255):qe(this,$,ie,!1),ie+4},u.prototype.writeIntLE=function($,ie,Ve,_e){if($=+$,ie=ie|0,!_e){var we=Math.pow(2,8*Ve-1);Rt(this,$,ie,Ve,we-1,-we)}var nt=0,Gt=1,An=0;for(this[ie]=$&255;++nt<Ve&&(Gt*=256);)$<0&&An===0&&this[ie+nt-1]!==0&&(An=1),this[ie+nt]=($/Gt>>0)-An&255;return ie+Ve},u.prototype.writeIntBE=function($,ie,Ve,_e){if($=+$,ie=ie|0,!_e){var we=Math.pow(2,8*Ve-1);Rt(this,$,ie,Ve,we-1,-we)}var nt=Ve-1,Gt=1,An=0;for(this[ie+nt]=$&255;--nt>=0&&(Gt*=256);)$<0&&An===0&&this[ie+nt+1]!==0&&(An=1),this[ie+nt]=($/Gt>>0)-An&255;return ie+Ve},u.prototype.writeInt8=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,1,127,-128),u.TYPED_ARRAY_SUPPORT||($=Math.floor($)),$<0&&($=255+$+1),this[ie]=$&255,ie+1},u.prototype.writeInt16LE=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[ie]=$&255,this[ie+1]=$>>>8):Be(this,$,ie,!0),ie+2},u.prototype.writeInt16BE=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[ie]=$>>>8,this[ie+1]=$&255):Be(this,$,ie,!1),ie+2},u.prototype.writeInt32LE=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[ie]=$&255,this[ie+1]=$>>>8,this[ie+2]=$>>>16,this[ie+3]=$>>>24):qe(this,$,ie,!0),ie+4},u.prototype.writeInt32BE=function($,ie,Ve){return $=+$,ie=ie|0,Ve||Rt(this,$,ie,4,2147483647,-2147483648),$<0&&($=4294967295+$+1),u.TYPED_ARRAY_SUPPORT?(this[ie]=$>>>24,this[ie+1]=$>>>16,this[ie+2]=$>>>8,this[ie+3]=$&255):qe(this,$,ie,!1),ie+4};function at(he,$,ie,Ve,_e,we){if(ie+Ve>he.length)throw new RangeError("Index out of range");if(ie<0)throw new RangeError("Index out of range")}function Bt(he,$,ie,Ve,_e){return _e||at(he,$,ie,4),o.write(he,$,ie,Ve,23,4),ie+4}u.prototype.writeFloatLE=function($,ie,Ve){return Bt(this,$,ie,!0,Ve)},u.prototype.writeFloatBE=function($,ie,Ve){return Bt(this,$,ie,!1,Ve)};function jt(he,$,ie,Ve,_e){return _e||at(he,$,ie,8),o.write(he,$,ie,Ve,52,8),ie+8}u.prototype.writeDoubleLE=function($,ie,Ve){return jt(this,$,ie,!0,Ve)},u.prototype.writeDoubleBE=function($,ie,Ve){return jt(this,$,ie,!1,Ve)},u.prototype.copy=function($,ie,Ve,_e){if(Ve||(Ve=0),!_e&&_e!==0&&(_e=this.length),ie>=$.length&&(ie=$.length),ie||(ie=0),_e>0&&_e<Ve&&(_e=Ve),_e===Ve||$.length===0||this.length===0)return 0;if(ie<0)throw new RangeError("targetStart out of bounds");if(Ve<0||Ve>=this.length)throw new RangeError("sourceStart out of bounds");if(_e<0)throw new RangeError("sourceEnd out of bounds");_e>this.length&&(_e=this.length),$.length-ie<_e-Ve&&(_e=$.length-ie+Ve);var we=_e-Ve,nt;if(this===$&&Ve<ie&&ie<_e)for(nt=we-1;nt>=0;--nt)$[nt+ie]=this[nt+Ve];else if(we<1e3||!u.TYPED_ARRAY_SUPPORT)for(nt=0;nt<we;++nt)$[nt+ie]=this[nt+Ve];else Uint8Array.prototype.set.call($,this.subarray(Ve,Ve+we),ie);return we},u.prototype.fill=function($,ie,Ve,_e){if(typeof $=="string"){if(typeof ie=="string"?(_e=ie,ie=0,Ve=this.length):typeof Ve=="string"&&(_e=Ve,Ve=this.length),$.length===1){var we=$.charCodeAt(0);we<256&&($=we)}if(_e!==void 0&&typeof _e!="string")throw new TypeError("encoding must be a string");if(typeof _e=="string"&&!u.isEncoding(_e))throw new TypeError("Unknown encoding: "+_e)}else typeof $=="number"&&($=$&255);if(ie<0||this.length<ie||this.length<Ve)throw new RangeError("Out of range index");if(Ve<=ie)return this;ie=ie>>>0,Ve=Ve===void 0?this.length:Ve>>>0,$||($=0);var nt;if(typeof $=="number")for(nt=ie;nt<Ve;++nt)this[nt]=$;else{var Gt=u.isBuffer($)?$:it(new u($,_e).toString()),An=Gt.length;for(nt=0;nt<Ve-ie;++nt)this[nt+ie]=Gt[nt%An]}return this};var Ne=/[^+\/0-9A-Za-z-_]/g;function Je(he){if(he=ve(he).replace(Ne,""),he.length<2)return"";for(;he.length%4!==0;)he=he+"=";return he}function ve(he){return he.trim?he.trim():he.replace(/^\s+|\s+$/g,"")}function Ye(he){return he<16?"0"+he.toString(16):he.toString(16)}function it(he,$){$=$||1/0;for(var ie,Ve=he.length,_e=null,we=[],nt=0;nt<Ve;++nt){if(ie=he.charCodeAt(nt),ie>55295&&ie<57344){if(!_e){if(ie>56319){($-=3)>-1&&we.push(239,191,189);continue}else if(nt+1===Ve){($-=3)>-1&&we.push(239,191,189);continue}_e=ie;continue}if(ie<56320){($-=3)>-1&&we.push(239,191,189),_e=ie;continue}ie=(_e-55296<<10|ie-56320)+65536}else _e&&($-=3)>-1&&we.push(239,191,189);if(_e=null,ie<128){if(($-=1)<0)break;we.push(ie)}else if(ie<2048){if(($-=2)<0)break;we.push(ie>>6|192,ie&63|128)}else if(ie<65536){if(($-=3)<0)break;we.push(ie>>12|224,ie>>6&63|128,ie&63|128)}else if(ie<1114112){if(($-=4)<0)break;we.push(ie>>18|240,ie>>12&63|128,ie>>6&63|128,ie&63|128)}else throw new Error("Invalid code point")}return we}function Qt(he){for(var $=[],ie=0;ie<he.length;++ie)$.push(he.charCodeAt(ie)&255);return $}function _t(he,$){for(var ie,Ve,_e,we=[],nt=0;nt<he.length&&!(($-=2)<0);++nt)ie=he.charCodeAt(nt),Ve=ie>>8,_e=ie%256,we.push(_e),we.push(Ve);return we}function Dt(he){return a.toByteArray(Je(he))}function Ee(he,$,ie,Ve){for(var _e=0;_e<Ve&&!(_e+ie>=$.length||_e>=he.length);++_e)$[_e+ie]=he[_e];return _e}function Ge(he){return he!==he}},function(n,r,i){r.byteLength=h,r.toByteArray=g,r.fromByteArray=p;for(var a=[],o=[],l=typeof Uint8Array<"u"?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,c=s.length;d<c;++d)a[d]=s[d],o[s.charCodeAt(d)]=d;o[45]=62,o[95]=63;function u(y){var m=y.length;if(m%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var F=y.indexOf("=");F===-1&&(F=m);var R=F===m?0:4-F%4;return[F,R]}function h(y){var m=u(y),F=m[0],R=m[1];return(F+R)*3/4-R}function f(y,m,F){return(m+F)*3/4-F}function g(y){var m,F=u(y),R=F[0],C=F[1],B=new l(f(y,R,C)),N=0,S=C>0?R-4:R,X;for(X=0;X<S;X+=4)m=o[y.charCodeAt(X)]<<18|o[y.charCodeAt(X+1)]<<12|o[y.charCodeAt(X+2)]<<6|o[y.charCodeAt(X+3)],B[N++]=m>>16&255,B[N++]=m>>8&255,B[N++]=m&255;return C===2&&(m=o[y.charCodeAt(X)]<<2|o[y.charCodeAt(X+1)]>>4,B[N++]=m&255),C===1&&(m=o[y.charCodeAt(X)]<<10|o[y.charCodeAt(X+1)]<<4|o[y.charCodeAt(X+2)]>>2,B[N++]=m>>8&255,B[N++]=m&255),B}function A(y){return a[y>>18&63]+a[y>>12&63]+a[y>>6&63]+a[y&63]}function b(y,m,F){for(var R,C=[],B=m;B<F;B+=3)R=(y[B]<<16&16711680)+(y[B+1]<<8&65280)+(y[B+2]&255),C.push(A(R));return C.join("")}function p(y){for(var m,F=y.length,R=F%3,C=[],B=16383,N=0,S=F-R;N<S;N+=B)C.push(b(y,N,N+B>S?S:N+B));return R===1?(m=y[F-1],C.push(a[m>>2]+a[m<<4&63]+"==")):R===2&&(m=(y[F-2]<<8)+y[F-1],C.push(a[m>>10]+a[m>>4&63]+a[m<<2&63]+"=")),C.join("")}},function(n,r){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */r.read=function(i,a,o,l,s){var d,c,u=s*8-l-1,h=(1<<u)-1,f=h>>1,g=-7,A=o?s-1:0,b=o?-1:1,p=i[a+A];for(A+=b,d=p&(1<<-g)-1,p>>=-g,g+=u;g>0;d=d*256+i[a+A],A+=b,g-=8);for(c=d&(1<<-g)-1,d>>=-g,g+=l;g>0;c=c*256+i[a+A],A+=b,g-=8);if(d===0)d=1-f;else{if(d===h)return c?NaN:(p?-1:1)*(1/0);c=c+Math.pow(2,l),d=d-f}return(p?-1:1)*c*Math.pow(2,d-l)},r.write=function(i,a,o,l,s,d){var c,u,h,f=d*8-s-1,g=(1<<f)-1,A=g>>1,b=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=l?0:d-1,y=l?1:-1,m=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(u=isNaN(a)?1:0,c=g):(c=Math.floor(Math.log(a)/Math.LN2),a*(h=Math.pow(2,-c))<1&&(c--,h*=2),c+A>=1?a+=b/h:a+=b*Math.pow(2,1-A),a*h>=2&&(c++,h/=2),c+A>=g?(u=0,c=g):c+A>=1?(u=(a*h-1)*Math.pow(2,s),c=c+A):(u=a*Math.pow(2,A-1)*Math.pow(2,s),c=0));s>=8;i[o+p]=u&255,p+=y,u/=256,s-=8);for(c=c<<s|u,f+=s;f>0;i[o+p]=c&255,p+=y,c/=256,f-=8);i[o+p-y]|=m*128}},function(n,r){var i={}.toString;n.exports=Array.isArray||function(a){return i.call(a)=="[object Array]"}},function(n,r){},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),d=function(){var c=(0,l.default)(o.default.mark(function u(h){var f,g,A;return o.default.wrap(function(p){for(;;)switch(p.prev=p.next){case 0:if(h instanceof((f=window)==null?void 0:f.CryptoKey)){p.next=2;break}return p.abrupt("return",h);case 2:return p.next=4,(g=window)==null?void 0:g.crypto.subtle.exportKey("raw",h);case 4:return A=p.sent,p.abrupt("return",new Uint8Array(A));case 6:case"end":return p.stop()}},u)}));return function(h){return c.apply(this,arguments)}}();r.default=d},function(n,r,i){(function(a){var o=i(0);r.__esModule=!0,r.default=void 0;var l=o(i(4)),s=o(i(5)),d=o(i(798)),c=o(i(74)),u=o(i(799)),h=o(i(800)),f=o(i(18));const g=(0,c.default)();var b=function(){function p(m,F){F===void 0&&(F={}),this.createPeerConnectionSDP=F.createPeerConnectionSDP||h.default,this._session=m,this.PeerConnection=F.PeerConnection||g,this.sdpHelpers=F.helpers||f.default,this.createSubscriberPeerConnectionQueue=F.createSubscriberPeerConnectionQueue||u.default,this._init()}var y=p.prototype;return y._init=function(){this._reset()},y._reset=function(){this._originalSendMessages={},this._tracks=[],this._currentAndPreviousMids=[],this._subscriberPcs={},this._peerConnectionSDP=this.createPeerConnectionSDP({logEvent:this._session.logEvent}),this._subscriberQueue=this.createSubscriberPeerConnectionQueue(),this._subscriberPcsToAdd=[],this._sendMessage=()=>{},this._peerConnection&&(this._peerConnection.disconnect(),this._peerConnection=null)},y._parseOptions=function(F){return Object.assign({},F,{bundlePolicy:"max-bundle",removeUnusedCodecs:!0,sendMessage:(R,C)=>{const B=Object.assign({},C);if(B.sdp){const E=this._peerConnectionSDP.getPartialSdp(R,B.sdp);B.sdp=E}const N=this._createSendMessageErrorHandler(R,B),S=this._subscriberPcsToAdd,X=S[0];(this._originalSendMessages[X==null?void 0:X._id]||this._sendMessage)(R,B,N),R==="answer"&&(this._subscriberPcsToAdd.shift(),this.subscriberComplete())}})},y._addListeners=function(){this._peerConnection&&this._peerConnection.on("trackAdded",F=>{let R=F.track,C=F.transceiver;const B=this._subscriberPcsToAdd,N=B[0];!N||this._currentAndPreviousMids.includes(C.mid)||(this._subscriberPcs[N._id].push(R.id),this._tracks.push(R.id),this._currentAndPreviousMids.push(C.mid),N.onTrackAdded({track:R,transceiver:C}))})},y._removeMessageSender=function(F){delete this._originalSendMessages[F],this._sendMessage=this._getLatestSendMessage()},y._generateOffer=function(){var m=(0,s.default)(l.default.mark(function R(){return l.default.wrap(function(B){for(;;)switch(B.prev=B.next){case 0:return B.abrupt("return",new a(N=>{const S=()=>{const X=this._peerConnectionSDP.createSdp();this._peerConnection.processMessage("answer",{content:{sdp:X}}),N()};this._peerConnection.generateOffer(S)}));case 1:case"end":return B.stop()}},R,this)}));function F(){return m.apply(this,arguments)}return F}(),y._removeSubscriber=function(F){delete this._subscriberPcs[F],this._removeMessageSender(F)},y._stopTransceivers=function(F){this._peerConnectionSDP.removeMids(F),this._peerConnection.stopTransceivers(F)},y._setTransceiverToInactive=function(F){this._peerConnectionSDP.setTrackToInactive(F),this._peerConnection.setTransceiversToInactive([F])},y._getLatestSendMessage=function(){return Object.values(this._originalSendMessages).slice(-1)[0]||function(){}},y._createSendMessageErrorHandler=function(F,R){const C=(B,N)=>{if(B&&(N==null?void 0:N.status)==="404"){const S=Object.keys(this._originalSendMessages);if(S.length){const X=S.find(J=>this._originalSendMessages[J]===this._sendMessage);this._removeMessageSender(X),this._sendMessage(F,R,C)}}};return C},y.getPeerConnection=function(F,R){if(this._subscriberPcsToAdd.push(R),this._sendMessage=F.sendMessage,this._originalSendMessages[R._id]=this._sendMessage,this._peerConnection)this._peerConnection.addOptions(F);else{const C=this._parseOptions(F);this._peerConnection=new this.PeerConnection(C),this._addListeners()}return this._subscriberPcs[R._id]=[],this._peerConnection},y.removeSubscriber=function(F,R){var C=this;this._subscriberQueue.enqueue((0,s.default)(l.default.mark(function B(){var N,S,X;return l.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:if(N=R,S=C._peerConnectionSDP.isHead(F),C._removeSubscriber(F),Object.keys(C._subscriberPcs).length){E.next=6;break}return C._reset(),E.abrupt("return");case 6:return S&&(X=C._peerConnectionSDP.getHeadMid(),C._setTransceiverToInactive(X),N=R.filter(v=>v!==X)),C._stopTransceivers(N),E.next=10,C._generateOffer();case 10:C._subscriberQueue.dequeueAndProcessNext();case 11:case"end":return E.stop()}},B)})))},y.generateOfferWithIceRestart=function(){this._peerConnection.iceRestart(),this._peerConnection.generateOfferAndSend()},y.removeTrack=function(F,R){const C=F==null?void 0:F.id;C&&((0,d.default)(this._tracks,C),(0,d.default)(this._subscriberPcs[R]||[],C))},y.destroy=function(){this._reset(),this._session=null},y.addSubscriber=function(F){this._subscriberQueue.enqueue(F)},y.addSubscriberMid=function(F,R){this._peerConnectionSDP.addSubscriberMid(F,R)},y.subscriberComplete=function(){this._subscriberQueue.dequeueAndProcessNext()},y.processAnswer=function(F){return this._peerConnectionSDP.processAnswer(F)},y.processOffer=function(){var m=(0,s.default)(l.default.mark(function R(C){return l.default.wrap(function(N){for(;;)switch(N.prev=N.next){case 0:return N.abrupt("return",this._peerConnectionSDP.processOffer(C));case 1:case"end":return N.stop()}},R,this)}));function F(R){return m.apply(this,arguments)}return F}(),p}();r.default=b}).call(this,i(2))},function(n,r,i){r.__esModule=!0,r.default=void 0;var o=(l,s)=>{l.forEach((d,c)=>{const u=d.id||d,h=s.id||s;u===h&&l.splice(c,1)})};r.default=o},function(n,r,i){r.__esModule=!0,r.default=void 0;const a=100;var l=()=>{const s=[];let d=!1,c,u;const h=()=>{c=setTimeout(()=>{c=void 0,d=!0,u(),u=void 0},a)};return{enqueue:b=>{d?s.push(b):(c&&clearTimeout(c),d=!0,b())},finally:b=>{u=b,!d&&(c||h())},dequeueAndProcessNext:()=>{const b=s.shift();b?b():(u&&h(),d=!1)}}};r.default=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(349)),l=a(i(802)),s=a(i(18)),d=a(i(803)),c=a(i(804)),h=function(g){g===void 0&&(g={});const A=g.logEvent,b=g.helpers||s.default,p=g.getFullRemoteSdp||(0,c.default)();return{sdp:{mids:[],mediaSections:[],headers:[],bundle:null,version:null,tracks:[],iceCredentials:{}},subscribePcIdsByMid:{},updateParsedSdp(m){Object.assign(this.sdp,m)},updateSdpWithNewOffer(m){const F=b.updateSDPWithNewOffer({mediaSections:this.sdp.mediaSections,headers:this.sdp.headers,version:this.sdp.version},m.sdp);Object.assign(this.sdp,F)},setOfferAndCreateAnswer(m){return this.updateSdpWithNewOffer(m),b.createSDP(this.sdp.headers,this.sdp.mediaSections)},createSdp(){return b.createSDP(this.sdp.headers,this.sdp.mediaSections)},addSubscriberMid(m,F){this.subscribePcIdsByMid[m]=F},removeMidAndTrack(m){this.sdp.tracks=this.sdp.tracks.filter(R=>R!==m);const F=this.sdp.mids.findIndex(R=>R===m);F<0||(this.sdp.mids[F]=null,this.sdp.mediaSections[F]=b.getDisabledSectionForMid(m))},updateSdpHeaders(){const m=this.sdp.version+1;this.sdp.headers=b.updateVersion(this.sdp.headers,this.sdp.version,m),this.sdp.version=m,this.sdp.headers=b.updateBundleLine(this.sdp.headers,this.sdp.tracks),this.sdp.bundle=b.getBundleLine(this.sdp.headers)},processAnswer(m){const F=b.parseMantisSDP(m),R=F.version,C=F.tracks,B=F.iceCredentials,N=(0,o.default)(this.sdp.tracks,C);N.length&&A("peerConnection:spcAnswerMismatch","Event",N);const S=b.updateVersion(this.sdp.headers,this.sdp.version,R);return this.sdp.version=R,this.sdp.headers=b.updateIceCredentials(S,B),this.sdp.iceCredentials=B,this.sdp.mediaSections=b.updateFirstEnabledMediaSection(this.sdp,B),b.createSDP(this.sdp.headers,this.sdp.mediaSections)},getPartialSdpAnswer(m){if(!this.midsToAdd)return m;const F=(0,l.default)(b.parseSDP(m),this.midsToAdd);return this.midsToAdd=void 0,b.createSDP(F.headers,F.mediaSections)},getIceRestartPartialSdp(m){const F=(0,d.default)(b.parseSDP(m));return b.createSDP(F.headers,F.mediaSections)},getPartialSdp(m,F){return m==="answer"?this.getPartialSdpAnswer(F):this.getIceRestartPartialSdp(F)},processOffer(m){const F=b.parseMantisSDP(m),R=(0,o.default)(this.sdp.tracks,F.tracks);R.length!==0&&A("peerConnection:spcOfferMismatch","Event",R),this.midsToAdd=(0,o.default)(F.mids,this.sdp.mids);const C=p("offer",F,this.sdp);return this.updateParsedSdp(C),b.createSDP(C.headers,C.mediaSections)},removeMids(m){m.forEach(F=>{this.removeMidAndTrack(F),delete this.subscribePcIdsByMid[F]}),this.updateSdpHeaders()},setTrackToInactive(m){const F=this.sdp.mids.findIndex(R=>R===m);this.sdp.mediaSections[F]=b.setSubscriberMediaSectionToInactive(this.sdp.mediaSections[F])},getHeadMid(){return this.sdp.mids.find(m=>m!==null)},isHead(m){const F=this.getHeadMid();return this.subscribePcIdsByMid[F]===m}}};r.default=h},function(n,r,i){var a=i(98),o=i(96),l=i(146),s=i(39),d=i(67),c=i(99),u=200;function h(f,g,A,b){var p=-1,y=o,m=!0,F=f.length,R=[],C=g.length;if(!F)return R;A&&(g=s(g,d(A))),b?(y=l,m=!1):g.length>=u&&(y=c,m=!1,g=new a(g));e:for(;++p<F;){var B=f[p],N=A==null?B:A(B);if(B=b||B!==0?B:0,m&&N===N){for(var S=C;S--;)if(g[S]===N)continue e;R.push(B)}else y(g,N,b)||R.push(B)}return R}n.exports=h},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(1));const l=(0,o.default)("partialSdp");var d=(c,u)=>{l.debug("full answer: ",c);const h=c.mediaSections.filter(g=>u.some(b=>g.join("").includes(`a=mid:${b}`))),f={headers:c.headers,mediaSections:h};return l.debug("partial answer: ",f),f};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(1));const l=(0,o.default)("partialSdp");var d=c=>{l.debug("full offer: ",c);const u=c.mids.find(g=>g!==null),h=c.mediaSections.find(g=>g.join("").includes(`a=mid:${u}`)),f={headers:c.headers,mediaSections:[h]};return l.debug("partial offer: ",f),f};r.default=d},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(18)),l=a(i(805)),s=a(i(806)),d=a(i(1));const c=(0,d.default)("partialSdp"),u=g=>g.tracks.length!==g.mids.length;var f=function(A){A===void 0&&(A={});const b=A.getMediaSectionsForAnswer||l.default,p=A.getMediaSectionsForOffer||s.default,y=(F,R,C)=>{const B=F==="answer",N=Math.max(R.version,C.version||0),X=(B?b:p)(R,C),J=X.map(o.default.getSectionMid),E=J.filter(j=>j!==null);let v;return B?v=R.headers:v=o.default.updateHeadersInPartialSdp(C,R,E),{headers:v,version:N,bundle:o.default.createBundleLine(E),tracks:E,mediaSections:X,mids:J,iceCredentials:R.iceCredentials}};return(F,R,C)=>{if(!u(R)&&!C.bundle)return R;c.debug("partial remote sdp: ",R);let B;if(C.bundle)B=R;else{const N=R.mediaSections,S=R.iceCredentials,X=R.headers;B=Object.assign({},R,{mediaSections:o.default.addIceConfig(N,X,S)})}return y(F,B,C)}};r.default=f},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(18)),s=(d,c)=>{const u=d.mids[0],h=c.tracks.slice(0,c.tracks.indexOf(u)).filter(b=>b!==null),f=c.mids.indexOf(u);return[...c.mediaSections.slice(0,f).map(b=>{const p=o.default.getTrackMids(b),y=p[0];return y&&h.includes(y)?o.default.getDisabledSectionForMid(y):b}),...d.mediaSections,...c.mediaSections.slice(f+1)]};r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(18)),s=(d,c)=>{const u=c.mediaSections.map(f=>[...f]);let h=0;return d.mediaSections.forEach(f=>{for(h;h<u.length;h++){const g=u[h];if(o.default.isDisabledMediaSection(g)){u[h]=f;return}}u.push(f)}),u};r.default=s},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(28)),l=a(i(12));const s=2*1e3;var c=function(u){(0,o.default)(h,u);function h(){return u.apply(this,arguments)||this}var f=h.prototype;return f.initMonitoring=function(A){const b=p=>{const y=p[p.length-1].state;this.emit("pressureMonitorEvent",y)};A&&(this._observer=new A(b))},f.startMonitoring=function(){this._isMonitoring||(this._observer.observe("cpu",{sampleInterval:s}),this._isMonitoring=!0)},f.stopMonitoring=function(){this._isMonitoring=!1,this._observer.unobserve("cpu")},h}(l.default);r.default=c},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=s;var o=a(i(24)),l=a(i(337));function s(d){d===void 0&&(d={});const c=d.Session||(0,l.default)(),u=d.sessionObjects||o.default;return function(f,g,A){g==null&&(g=f,f=null),Array.isArray(g)&&g.length===1&&(g=g[0]);let b=u.sessions.get(g);return b||(b=new c(f,g,A),u.sessions.add(b)),b}}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(349)),d=a(i(291)),c=a(i(10)),u=a(i(14)),h=a(i(8)),f=a(i(3)),g=a(i(75)),A=a(i(18)),b=a(i(151));const p=(0,b.default)(typeof window!==void 0?window:yr),y=(0,u.default)();function m(C){return(0,d.default)((0,s.default)(C,["AV1X","AV1","rtx","red","ulpfec","H265","X-H264UC","x-ulpfecuc"]))}var R=function(){var C=(0,l.default)(o.default.mark(function B(){var N,S,X,J,E,v,j;return o.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:if(!(typeof window>"u")){K.next=2;break}return K.abrupt("return",{videoEncoders:[],videoDecoders:[]});case 2:if(N=p.RTCPeerConnection,!(window.RTCRtpSender&&"getCapabilities"in window.RTCRtpSender)){K.next=7;break}return S=window.RTCRtpSender.getCapabilities("video").codecs.map(Fe=>Fe.mimeType||Fe.name).map(Fe=>Fe.replace("video/","")),S=m(S),K.abrupt("return",{videoEncoders:S,videoDecoders:S});case 7:if(!(f.default.name==="Chrome"&&!("captureStream"in window.HTMLCanvasElement.prototype))){K.next=9;break}return K.abrupt("return",{videoEncoders:["VP8"],videoDecoders:["VP8"]});case 9:if(!f.default.isLegacyEdge){K.next=11;break}return K.abrupt("return",{videoEncoders:["H264","VP8"],videoDecoders:["H264","VP8"]});case 11:return X=window.document.createElement("canvas"),X.getContext("2d"),J=X.captureStream(),K.prev=14,v={iceServers:[]},(0,g.default)()&&(v.sdpSemantics="plan-b"),E=new N(v),E.addTrack?E.addTrack(J.getVideoTracks()[0],J):E.addStream&&E.addStream(J),K.next=21,E.createOffer();case 21:return j=K.sent,S=A.default.getCodecs(j.sdp,"video")||[],S=m(S),K.abrupt("return",{videoEncoders:S,videoDecoders:S});case 27:throw K.prev=27,K.t0=K.catch(14),y(h.default.UNABLE_TO_ACCESS_MEDIA_ENGINE,new Error("OT.getSupportedCodecs was not able to get the list of supported codecs"),c.default.UNABLE_TO_ACCESS_MEDIA_ENGINE);case 30:return K.prev=30,E.close(),K.finish(30);case 33:case"end":return K.stop()}},B,null,[[14,27,30,33]])}));return function(){return C.apply(this,arguments)}}();r.default=R},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(335)),l=o.default.isSupported;r.default=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(112)),l=o.default;r.default=l},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=d;var o=a(i(22));const l=(0,o.default)(),s=l.getInputMediaDevices;function d(c){s().then(u=>c(void 0,u),c)}},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(22)),d=a(i(14)),c=a(i(8)),u=a(i(350)),h=a(i(352)),f=function(A){A===void 0&&(A={});const b=A.deviceHelpers||(0,s.default)(),p=b.hasAudioOutputApiSupport,y=b.hasDevice,m=A.getAudioOutputDevices||u.default,F=A.updateSubscribersSinkId||h.default,R=(0,d.default)();return function(){var B=(0,l.default)(o.default.mark(function N(S){var X,J;return o.default.wrap(function(v){for(;;)switch(v.prev=v.next){case 0:if(p()){v.next=2;break}throw R(c.default.UNSUPPORTED_BROWSER,new Error("setAudioOutputDevice is not supported in your browser."));case 2:return v.next=4,m();case 4:if(X=v.sent,J=y(X,S),J){v.next=8;break}throw R(c.default.INVALID_AUDIO_OUTPUT_SOURCE,new Error("The requested device is not valid."));case 8:return v.prev=8,v.next=11,F(S);case 11:v.next=16;break;case 13:throw v.prev=13,v.t0=v.catch(8),R(c.default.REQUESTED_DEVICE_PERMISSION_DENIED,new Error("No permission to use the requested device."));case 16:case"end":return v.stop()}},N,null,[[8,13]])}));return function(S){return B.apply(this,arguments)}}()};r.default=f},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(22)),d=a(i(815));const c=(0,d.default)(),u=(0,s.default)(),h=u.hasAudioOutputApiSupport,f=u.getNativeMediaDevices;var g=()=>{if(h()){const A=f();let b=!1;A.addEventListener("devicechange",(0,l.default)(o.default.mark(function p(){return o.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:if(!b){m.next=2;break}return m.abrupt("return");case 2:return b=!0,m.next=5,c();case 5:b=!1;case 6:case"end":return m.stop()}},p)})))}};r.default=g},function(n,r,i){var a=i(0);r.__esModule=!0,r.default=void 0;var o=a(i(4)),l=a(i(5)),s=a(i(1)),d=a(i(104)),c=a(i(22)),u=a(i(352)),f=function(A){A===void 0&&(A={});const b=A.deviceHelpers||(0,c.default)(),p=b.getAudioOutputMediaDevices,y=b.getDefaultAudioOutputDeviceId,m=b.hasDevice,F=A.currentAudioOutputDevice||d.default,R=F.getCurrentAudioOutputDeviceId,C=F.setCurrentAudioOutputDeviceId,B=A.updateSubscribersSinkId||u.default,N=A.logging||(0,s.default)("currentAudioOutputDevice");return function(){var X=(0,l.default)(o.default.mark(function J(){var E,v,j;return o.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:return K.next=2,p();case 2:if(E=K.sent,E.length!==0){K.next=6;break}return C(""),K.abrupt("return");case 6:if(v=m(E,R()),!v){K.next=9;break}return K.abrupt("return");case 9:return j=y(E),C(j),K.prev=11,K.next=14,B(j);case 14:K.next=19;break;case 16:K.prev=16,K.t0=K.catch(11),N.debug("Failed to set the default audio output device.",K.t0);case 19:case"end":return K.stop()}},J,null,[[11,16]])}));return function(){return X.apply(this,arguments)}}()};r.default=f},function(n,r,i){var a=i(817);typeof a=="string"&&(a=[[n.i,a,""]]);var o,l={hmr:!0};l.transform=o,l.insertInto=void 0,i(831)(a,l),a.locals&&(n.exports=a.locals)},function(n,r,i){r=n.exports=i(818)(!1);var a=i(819),o=a(i(820)),l=a(i(821)),s=a(i(822)),d=a(i(823)),c=a(i(824)),u=a(i(825)),h=a(i(826)),f=a(i(827)),g=a(i(828)),A=a(i(829)),b=a(i(830));r.push([n.i,`/*! * Copyright (c) 2017 TokBox, Inc. * Released under the MIT license * http://opensource.org/licenses/MIT */ /** * OT Base styles */ /* Root OT object, this is where our CSS reset happens */ .OT_root, .OT_root * { color: #ffffff; margin: 0; padding: 0; border: 0; font-size: 100%; font-family: Arial, Helvetica, sans-serif; vertical-align: baseline; } /** * Specific Element Reset */ .OT_root h1, .OT_root h2, .OT_root h3, .OT_root h4, .OT_root h5, .OT_root h6 { color: #ffffff; font-family: Arial, Helvetica, sans-serif; font-size: 100%; font-weight: bold; } .OT_root header { } .OT_root footer { } .OT_root div { } .OT_root section { } .OT_root video { } .OT_root button { } .OT_root strong { font-weight: bold; } .OT_root em { font-style: italic; } .OT_root a, .OT_root a:link, .OT_root a:visited, .OT_root a:hover, .OT_root a:active { font-family: Arial, Helvetica, sans-serif; } .OT_root ul, .OT_root ol { margin: 1em 1em 1em 2em; } .OT_root ol { list-style: decimal outside; } .OT_root ul { list-style: disc outside; } .OT_root dl { margin: 4px; } .OT_root dl dt, .OT_root dl dd { float: left; margin: 0; padding: 0; } .OT_root dl dt { clear: left; text-align: right; width: 50px; } .OT_root dl dd { margin-left: 10px; } .OT_root img { border: 0 none; } /* Modal dialog styles */ /* Modal dialog styles */ .OT_dialog-centering { display: table; width: 100%; height: 100%; } .OT_dialog-centering-child { display: table-cell; vertical-align: middle; } .OT_dialog { position: relative; box-sizing: border-box; max-width: 576px; margin-right: auto; margin-left: auto; padding: 36px; text-align: center; /* centers all the inline content */ background-color: #363636; color: #fff; box-shadow: 2px 4px 6px #999; font-family: 'Didact Gothic', sans-serif; font-size: 13px; line-height: 1.4; } .OT_dialog * { font-family: inherit; box-sizing: inherit; } .OT_closeButton { color: #999999; cursor: pointer; font-size: 32px; line-height: 36px; position: absolute; right: 18px; top: 0; } .OT_dialog-messages { text-align: center; } .OT_dialog-messages-main { margin-bottom: 36px; line-height: 36px; font-weight: 300; font-size: 24px; } .OT_dialog-messages-minor { margin-bottom: 18px; font-size: 13px; line-height: 18px; color: #A4A4A4; } .OT_dialog-messages-minor strong { color: #ffffff; } .OT_dialog-actions-card { display: inline-block; } .OT_dialog-button-title { margin-bottom: 18px; line-height: 18px; font-weight: 300; text-align: center; font-size: 14px; color: #999999; } .OT_dialog-button-title label { color: #999999; } .OT_dialog-button-title a, .OT_dialog-button-title a:link, .OT_dialog-button-title a:active { color: #02A1DE; } .OT_dialog-button-title strong { color: #ffffff; font-weight: 100; display: block; } .OT_dialog-button { display: inline-block; margin-bottom: 18px; padding: 0 1em; background-color: #1CA3DC; text-align: center; cursor: pointer; } .OT_dialog-button:disabled { cursor: not-allowed; opacity: 0.5; } .OT_dialog-button-large { line-height: 36px; padding-top: 9px; padding-bottom: 9px; font-weight: 100; font-size: 24px; } .OT_dialog-button-small { line-height: 18px; padding-top: 9px; padding-bottom: 9px; background-color: #444444; color: #999999; font-size: 16px; } .OT_dialog-progress-bar { display: inline-block; /* prevents margin collapse */ width: 100%; margin-top: 5px; margin-bottom: 41px; border: 1px solid #4E4E4E; height: 8px; } .OT_dialog-progress-bar-fill { height: 100%; background-color: #29A4DA; } /* Helpers */ .OT_centered { position: fixed; left: 50%; top: 50%; margin: 0; } .OT_dialog-hidden { display: none; } .OT_dialog-button-block { display: block; } .OT_dialog-no-natural-margin { margin-bottom: 0; } /* Publisher and Subscriber styles */ .OT_publisher, .OT_subscriber { position: relative; min-width: 48px; min-height: 48px; } .OT_publisher .OT_video-element, .OT_subscriber .OT_video-element { display: block; position: absolute; width: 100%; height: 100%; transform-origin: 0 0; } /* Styles that are applied when the video element should be mirrored */ .OT_publisher.OT_mirrored .OT_video-element { transform: scale(-1, 1); transform-origin: 50% 50%; } .OT_subscriber_error { background-color: #000; color: #fff; text-align: center; } .OT_subscriber_error > p { padding: 20px; } /* The publisher/subscriber name/mute background */ .OT_publisher .OT_bar, .OT_subscriber .OT_bar, .OT_publisher .OT_name, .OT_subscriber .OT_name, .OT_publisher .OT_archiving, .OT_subscriber .OT_archiving, .OT_publisher .OT_archiving-status, .OT_subscriber .OT_archiving-status, .OT_publisher .OT_archiving-light-box, .OT_subscriber .OT_archiving-light-box { -ms-box-sizing: border-box; box-sizing: border-box; top: 0; left: 0; right: 0; display: block; height: 34px; position: absolute; } .OT_publisher .OT_bar, .OT_subscriber .OT_bar { background: rgba(0, 0, 0, 0.4); } .OT_publisher .OT_edge-bar-item, .OT_subscriber .OT_edge-bar-item { z-index: 1; /* required to get audio level meter underneath */ } /* The publisher/subscriber name panel/archiving status bar */ .OT_publisher .OT_name, .OT_subscriber .OT_name { background-color: transparent; color: #ffffff; font-size: 15px; line-height: 34px; font-weight: normal; padding: 0 4px 0 36px; letter-spacing: normal; } .OT_publisher .OT_archiving-status, .OT_subscriber .OT_archiving-status { background: rgba(0, 0, 0, 0.4); top: auto; bottom: 0; left: 34px; padding: 0 4px; color: rgba(255, 255, 255, 0.8); font-size: 15px; line-height: 34px; font-weight: normal; letter-spacing: normal; } .OT_micro .OT_archiving-status, .OT_micro:hover .OT_archiving-status, .OT_mini .OT_archiving-status, .OT_mini:hover .OT_archiving-status { display: none; } .OT_publisher .OT_archiving-light-box, .OT_subscriber .OT_archiving-light-box { background: rgba(0, 0, 0, 0.4); top: auto; bottom: 0; right: auto; width: 34px; height: 34px; } .OT_archiving-light { width: 7px; height: 7px; border-radius: 30px; position: absolute; top: 14px; left: 14px; background-color: #575757; box-shadow: 0 0 5px 1px #575757; } .OT_archiving-light.OT_active { background-color: #970d13; -webkit-animation: OT_pulse 1.3s ease-in; -moz-animation: OT_pulse 1.3s ease-in; -webkit-animation: OT_pulse 1.3s ease-in; -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; } .OT_mini .OT_bar, .OT_bar.OT_mode-mini, .OT_bar.OT_mode-mini-auto { bottom: 0; height: auto; } .OT_mini .OT_name.OT_mode-off, .OT_mini .OT_name.OT_mode-on, .OT_mini .OT_name.OT_mode-auto, .OT_mini:hover .OT_name.OT_mode-auto { display: none; } .OT_publisher .OT_name, .OT_subscriber .OT_name { left: 10px; right: 37px; height: 34px; padding-left: 0; } .OT_publisher .OT_mute, .OT_subscriber .OT_mute { border: none; cursor: pointer; display: block; position: absolute; text-align: center; text-indent: -9999em; background-color: transparent; background-repeat: no-repeat; } .OT_publisher .OT_mute, .OT_subscriber .OT_mute { right: 0; top: 0; border-left: 1px solid rgba(255, 255, 255, 0.2); height: 36px; width: 37px; } .OT_mini .OT_mute, .OT_publisher.OT_mini .OT_mute.OT_mode-auto.OT_mode-on-hold, .OT_subscriber.OT_mini .OT_mute.OT_mode-auto.OT_mode-on-hold { top: 50%; left: 50%; right: auto; margin-top: -18px; margin-left: -18.5px; border-left: none; } .OT_publisher .OT_mute { background-image: url(`+o+`); background-position: 9px 5px; } .OT_publisher .OT_mute.OT_active { background-image: url(`+l+`); background-position: 9px 4px; } .OT_subscriber .OT_mute { background-image: url(`+s+`); background-position: 8px 7px; } .OT_subscriber .OT_mute.OT_active { background-image: url(`+d+`); background-position: 7px 7px; } /** * Styles for display modes * * Note: It's important that these completely control the display and opacity * attributes, no other selectors should atempt to change them. */ /* Default display mode transitions for various chrome elements */ .OT_publisher .OT_edge-bar-item, .OT_subscriber .OT_edge-bar-item { transition-property: top, bottom, opacity; transition-duration: 0.5s; transition-timing-function: ease-in; } .OT_publisher .OT_edge-bar-item.OT_mode-off, .OT_subscriber .OT_edge-bar-item.OT_mode-off, .OT_publisher .OT_edge-bar-item.OT_mode-auto, .OT_subscriber .OT_edge-bar-item.OT_mode-auto, .OT_publisher .OT_edge-bar-item.OT_mode-mini-auto, .OT_subscriber .OT_edge-bar-item.OT_mode-mini-auto { top: -25px; opacity: 0; } .OT_publisher .OT_edge-bar-item.OT_mode-off, .OT_subscriber .OT_edge-bar-item.OT_mode-off { display: none; } .OT_mini .OT_mute.OT_mode-auto, .OT_publisher .OT_mute.OT_mode-mini-auto, .OT_subscriber .OT_mute.OT_mode-mini-auto { top: 50%; } .OT_publisher .OT_edge-bar-item.OT_edge-bottom.OT_mode-off, .OT_subscriber .OT_edge-bar-item.OT_edge-bottom.OT_mode-off, .OT_publisher .OT_edge-bar-item.OT_edge-bottom.OT_mode-auto, .OT_subscriber .OT_edge-bar-item.OT_edge-bottom.OT_mode-auto, .OT_publisher .OT_edge-bar-item.OT_edge-bottom.OT_mode-mini-auto, .OT_subscriber .OT_edge-bar-item.OT_edge-bottom.OT_mode-mini-auto { top: auto; bottom: -25px; } .OT_publisher .OT_edge-bar-item.OT_mode-on, .OT_subscriber .OT_edge-bar-item.OT_mode-on, .OT_publisher .OT_edge-bar-item.OT_mode-auto.OT_mode-on-hold, .OT_subscriber .OT_edge-bar-item.OT_mode-auto.OT_mode-on-hold, .OT_publisher:hover .OT_edge-bar-item.OT_mode-auto, .OT_subscriber:hover .OT_edge-bar-item.OT_mode-auto, .OT_publisher:hover .OT_edge-bar-item.OT_mode-mini-auto, .OT_subscriber:hover .OT_edge-bar-item.OT_mode-mini-auto { top: 0; opacity: 1; } .OT_mini .OT_mute.OT_mode-on, .OT_mini:hover .OT_mute.OT_mode-auto, .OT_mute.OT_mode-mini, .OT_root:hover .OT_mute.OT_mode-mini-auto { top: 50%; } .OT_publisher .OT_edge-bar-item.OT_edge-bottom.OT_mode-on, .OT_subscriber .OT_edge-bar-item.OT_edge-bottom.OT_mode-on, .OT_publisher:hover .OT_edge-bar-item.OT_edge-bottom.OT_mode-auto, .OT_subscriber:hover .OT_edge-bar-item.OT_edge-bottom.OT_mode-auto { top: auto; bottom: 0; opacity: 1; } /* Contains the video element, used to fix video letter-boxing */ .OT_widget-container { position: absolute; background: linear-gradient(60.08deg, #333333 0%, #1A1A1A 100%); overflow: hidden; } .OT_hidden-audio { position: absolute !important; height: 1px !important; width: 1px !important; } /* Load animation */ .OT_root .OT_video-loading { position: absolute; z-index: 1; width: 100%; height: 100%; display: none; background-color: rgba(0, 0, 0, .75); } .OT_root .OT_video-loading .OT_video-loading-spinner { background: url(`+c+`) no-repeat; position: absolute; width: 32px; height: 32px; left: 50%; top: 50%; margin-left: -16px; margin-top: -16px; animation: OT_spin 2s linear infinite; } @keyframes OT_spin { 100% { transform: rotate(360deg); } } .OT_publisher.OT_loading .OT_video-loading, .OT_subscriber.OT_loading .OT_video-loading { display: block; } .OT_publisher.OT_loading .OT_video-element, .OT_subscriber.OT_loading .OT_video-element { /*display: none;*/ } .OT_video-centering { display: table; width: 100%; height: 100%; } .OT_video-container { display: table-cell; vertical-align: middle; } .OT_video-poster { position: absolute; z-index: 1; width: 100%; height: 100%; display: none; opacity: 1.0; background-repeat: no-repeat; background-image: url(`+u+`); background-size: auto 55%; } .OT_fit-mode-cover .OT_video-element { object-fit: cover; } /* Workaround for iOS freezing issue when cropping videos */ /* https://bugs.webkit.org/show_bug.cgi?id=176439 */ @media only screen and (orientation: portrait) { .OT_subscriber.OT_ForceContain.OT_fit-mode-cover .OT_video-element { object-fit: contain !important; } } .OT_fit-mode-contain .OT_video-element { object-fit: contain; } .OT_fit-mode-cover .OT_video-poster { background-position: center; } .OT_fit-mode-contain .OT_video-poster { background-position: center; } .OT_audio-level-meter { position: absolute; width: 25%; max-width: 224px; min-width: 21px; top: 0; right: 0; overflow: hidden; } .OT_audio-level-meter:before { /* makes the height of the container equals its width */ content: ''; display: block; padding-top: 100%; } .OT_audio-level-meter__audio-only-img { position: absolute; top: 22%; right: 15%; width: 40%; opacity: .7; background: url(`+h+`) no-repeat center; } .OT_audio-level-meter__audio-only-img:before { /* makes the height of the container equals its width */ content: ''; display: block; padding-top: 100%; } .OT_audio-level-meter__value { will-change: transform; position: absolute; top: -100%; right: -100%; width: 200%; height: 200%; transform: scale(0); border-radius: 50%; background-image: radial-gradient(circle, rgba(151, 206, 0, 1) 0%, rgba(151, 206, 0, 0) 100%); } .OT_audio-level-meter.OT_mode-off { display: none; } .OT_audio-level-meter.OT_mode-on, .OT_audio-only .OT_audio-level-meter.OT_mode-auto { display: block; } .OT_audio-only.OT_publisher .OT_video-element, .OT_audio-only.OT_subscriber .OT_video-element { display: none; } .OT_video-disabled-indicator { opacity: 1; border: none; display: none; position: absolute; background-color: transparent; background-repeat: no-repeat; background-position: bottom right; pointer-events: none; top: 0; left: 0; bottom: 3px; right: 3px; } .OT_video-disabled { background-image: url(`+f+`); background-size: 33px auto; } .OT_video-disabled-warning { background-image: url(`+g+`); background-size: 33px auto; } .OT_video-disabled-indicator.OT_active { display: block; } .OT_audio-blocked-indicator { opacity: 1; border: none; display: none; position: absolute; background-color: transparent; background-repeat: no-repeat; background-position: center; pointer-events: none; top: 0; left: 0; bottom: 0; right: 0; } .OT_audio-blocked { background-image: url(`+A+`); background-size: 90px auto; } .OT_container-audio-blocked { cursor: pointer; } .OT_container-audio-blocked.OT_mini .OT_edge-bar-item { display: none; } .OT_container-audio-blocked .OT_mute { display: none; } .OT_audio-blocked-indicator.OT_active { display: block; } .OT_video-unsupported { opacity: 1; border: none; display: none; position: absolute; background-color: transparent; background-repeat: no-repeat; background-position: center; background-image: url(`+b+`); background-size: 58px auto; pointer-events: none; top: 0; left: 0; bottom: 0; right: 0; margin-top: -30px; } .OT_video-unsupported-bar { display: none; position: absolute; width: 192%; /* copy the size of the audio meter bar for symmetry */ height: 192%; top: -96% /* half of the size */; left: -96%; border-radius: 50%; background-color: rgba(0, 0, 0, .8); } .OT_video-unsupported-img { display: none; position: absolute; top: 11%; left: 15%; width: 70%; opacity: .7; background-image: url(`+b+`); background-repeat: no-repeat; background-position: center; background-size: 100% auto; } .OT_video-unsupported-img:before { /* makes the height of the container 93% of its width (90/97 px) */ content: ''; display: block; padding-top: 93%; } .OT_video-unsupported-text { display: flex; justify-content: center; align-items: center; text-align: center; height: 100%; margin-top: 40px; } .OT_video-unsupported.OT_active { display: block; } .OT_mini .OT_video-unsupported, .OT_micro .OT_video-unsupported { position: absolute; width: 25%; max-width: 224px; min-width: 21px; top: 0; left: 0; overflow: hidden; background: none; bottom: auto; right: auto; margin: auto; } .OT_mini .OT_video-unsupported:before, .OT_micro .OT_video-unsupported:before { /* makes the height of the container equals its width */ content: ''; display: block; padding-top: 100%; } .OT_mini .OT_video-unsupported-bar, .OT_micro .OT_video-unsupported-bar, .OT_mini .OT_video-unsupported-img, .OT_micro .OT_video-unsupported-img { display: block; } .OT_mini .OT_video-unsupported-text, .OT_micro .OT_video-unsupported-text { display: none; } .OT_hide-forced { display: none; } .OT_ModalDialog { position: fixed; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 1000; background-color: rgba(0, 0, 0, 0.2); } #tb_alert { position: fixed; width: 570px; font-family: "Lucida Grande", Arial; top: 50%; left: 50%; margin-top: -75px; margin-left: -285px; } #tb_alert * { box-sizing: border-box; } #tb_alert .OT_alert { border-top-right-radius: 5px; border-bottom-right-radius: 5px; background-color: #333; position: relative; padding: 30px; overflow: visible; margin-left: 70px; border-bottom-color: rgba(255, 255, 255, 0.1); border-left-color: rgba(255, 255, 255, 0.1); background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.2) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.2) 75%, rgba(0, 0, 0, 0.2)), linear-gradient(45deg, rgba(0, 0, 0, 0.2) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.2) 75%, rgba(0, 0, 0, 0.2)); background-image: -ms-linear-gradient(45deg, rgba(0, 0, 0, 0.2) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.2) 75%, rgba(0, 0, 0, 0.2)), -ms-linear-gradient(45deg, rgba(0, 0, 0, 0.2) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.2) 75%, rgba(0, 0, 0, 0.2)); background-size: 4px 4px; background-position: 0 0, 2px 2px; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.15); border: 1px solid rgba(255, 255, 255, 0.3); } #tb_alert .OT_alert-exclamation { background-color: #9c1408; background-image: linear-gradient(0deg, #dd0c0a 0%, #9c1408 100%); box-shadow: 0 2px 2px rgba(0, 0, 0, 0.15); border: 1px solid rgba(255, 255, 255, 0.3); margin: -1px 0; font-family: MS Trebuchet; font-weight: bold; font-size: 60px; text-shadow: -1px -1px 2px rgba(0, 0, 0, 0.5); color: white; width: 65px; position: absolute; padding: 42px 0; text-align: center; left: -70px; top: 0; bottom: 0; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-bottom-color: transparent; border-left: none; border-right: none; } #tb_alert .OT_alert-exclamation:after, #tb_alert .OT_alert-exclamation:before { content: " "; position: absolute; right: -24px; top: 40%; border: 12px solid transparent; border-left-color: #9c1408; } #tb_alert .OT_alert-exclamation:before { border-left-color: #bc3428; top: 39%; } #tb_alert .OT_alert-body { color: #c8c5c5; margin: 0; text-shadow: 0 2px 0 rgba(0, 0, 0, 0.3); font-size: 14px; line-height: 1.3em; } #tb_alert .continue-text { margin-top: 12px } #tb_alert > * a { color: #a7d8df; text-decoration: none; } #tb_alert .OT_alert-header { font-size: 24px; padding-bottom: 5px; color: #aaa; font-weight: bold; position: relative; text-shadow: 0 2px 0 rgba(0, 0, 0, 0.3); margin: 0; } #tb_alert .OT_alert-header::before { content: attr(data-text); position: absolute; left: 0; color: white; -webkit-mask-image: -webkit-gradient( linear, left top, left bottom, from(rgba(0, 0, 0, 1)), color-stop(60%, rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0)) ); } #tb_alert .OT_alert-close-button { position: absolute; right: 8px; top: 5px; background-color: #000; color: #666; border: none; font-size: 20px; /** Hack to bring it up to the proper line top */ line-height: 14px; padding: 0; padding-bottom: 3px; cursor: pointer; } #tb_alert #section-mobile-browser, #tb_alert #section-supported-mobile-browser { width: 200px; top: 0px; left: 25%; margin-top: 0; margin-left: 0; } @media all and (max-height: 300px) { #tb_alert { width: 100%; height: 100%; left: 0; top: 0; margin-left: 0; margin-top: 0; } #tb_alert #section-mobile-browser, #tb_alert #section-supported-mobile-browser { margin-left: 0; margin-top: 10px; left: 0; } } #tb_alert #section-normal-install, #tb_alert #section-upgrade-install, #tb_alert #section-mobile-browser, #tb_alert #section-supported-mobile-browser { display: none; } `,""])},function(n,r,i){n.exports=function(l){var s=[];return s.toString=function(){return this.map(function(c){var u=a(c,l);return c[2]?"@media "+c[2]+"{"+u+"}":u}).join("")},s.i=function(d,c){typeof d=="string"&&(d=[[null,d,""]]);for(var u={},h=0;h<this.length;h++){var f=this[h][0];f!=null&&(u[f]=!0)}for(h=0;h<d.length;h++){var g=d[h];(g[0]==null||!u[g[0]])&&(c&&!g[2]?g[2]=c:c&&(g[2]="("+g[2]+") and ("+c+")"),s.push(g))}},s};function a(l,s){var d=l[1]||"",c=l[3];if(!c)return d;if(s&&typeof btoa=="function"){var u=o(c),h=c.sources.map(function(f){return"/*# sourceURL="+c.sourceRoot+f+" */"});return[d].concat(h).concat([u]).join(` `)}return[d].join(` `)}function o(l){var s=btoa(unescape(encodeURIComponent(JSON.stringify(l)))),d="sourceMappingURL=data:application/json;charset=utf-8;base64,"+s;return"/*# "+d+" */"}},function(n,r,i){n.exports=function(o,l){return typeof o!="string"?o:(/^['"].*['"]$/.test(o)&&(o=o.slice(1,-1)),/["'() \t\n]/.test(o)||l?'"'+o.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':o)}},function(n,r){n.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAcCAMAAAC02HQrAAAA1VBMVEUAAAD3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pn3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pn3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj3+Pj39/j3+Pj3+Pn4+Pk/JRMlAAAAQ3RSTlMABAUHCQoLDhAQERwdHiAjLjAxOD9ASFBRVl1mbnZ6fH2LjI+QkaWqrrC1uLzAwcXJycrL1NXj5Ofo6u3w9fr7/P3+d4M3+QAAAQBJREFUGBlVwYdCglAABdCLlr5Unijm3hMUtBzlBLSr//9JgUToOQgVJgceJgU8aHgMeA38K50ZOpcQmTPwcyXn+JM8M3JJIqQypiIkeXelTyIkGZPwKS1NMia1lgKTVkaE3oQQGYsmHNqSMWnTgUFbMiZtGlD2dpaxrL1XgM0i4ZK8MeAmFhsAs29MGZniawagS63oMOQUNXYB5D0D1RMDpyoMLw/fiE2og/V+PVDR5AiBl0/2Uwik+vx4xV3a5G5Ye68Nd1czjUjZckm6VhmPciRzeCZICjwTJAViQq+3e+St167rAoHK8sLYZVkBYPCZAZ/eGa+2R5LH7Wrc0YFf/O9J3yBDFaoAAAAASUVORK5CYII="},function(n,r){n.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAdCAYAAABFRCf7AAADcElEQVRIiaWVXWhcRRTHf7NNd2aDtUKMIjTpg4ufFIuiUOmDEWm0Vi3VYhXRqIggQh4sWJFSig9+oOhTKSpIRUWMIBIr2kptoTbgU6ooxCiIjR+14kcJmf9sNceHnd3ebnc3Uv9wuXfOzPzmnDMz5zozGwdWAbc65w5RUJQ8cC2wDJgFJioh/MJCMrNxq2vOzK4HmIvRRemxKP0RJWt53o7S+d2Yzsx6gQ+AIUDAnUqpBLzXZd4RYFUlhB/bdZacc3PAOmAcCMC7wfvFwLNdoAPAyx09bXyYWRl4E7gDmAdGlNKFwLYu8GolhO9O87RJd64GbMrgEvB68P4osMWdXLtVV7czlooNpVRWSs8DO7NpR/B+3rBHsvetCgtCMTxwQCm9BbyQrc8F7/uBex3uRCeXO0PrUZ4NfKyUPgWeyj3bg/crDNsIRGwBaJQGorQ3Svdn2wHgc2BUKb0DPJHtjwfvbwRucc7tz+N+i9LFUdoXpfVN36I0CVwBTFI/q9e1LPxT8P4qYEdu70q12mYzWw1MYQzjeJF6zq+shHC4B7jklOBPP/TzSunh4P0DwKvAfb5c9krpe+CcwsEoZdbhEvBM9wxRAl5RShcA9wAngE3B+8tLpdLuwrhp4MNmK0pfRWkySr7NXS8+L5nZbWZWy/Vin1IaitJnUTqvwevJ71lgSSWEFKUfHG7Q2m/xqFJaGry/GXgfGPLl8mJgrXPur2JoUC8Qy3OpG+sAbGhEKT0ErAWOA6uBPWbW1wr9BOgFbgKezot0kAPYqJQA1gC/A9cA+82svzksSn1R+jNKX0SpnM/e1x3yqig92JhrZivM7FjO8bSZLSuCR/Ok16K0KMNHojQWpYko7Y7S1igN5PE3ROl4lNaZ2UVmNpPBU01orvZvZPCeKFXbBR+lEKVtUapFaSZKg9njqpl9aWYTrmXCImA7sCWb9lK/jj9TrwkrgA1AH3AQuKsSwkzbrLfxpgpsBtYDxf/R3xm2ExirhNCuHHZXTsmRwiat+S/zSt06eysVA/4pmGr/G3qm6ik28v29FKgCg8BS6pvS0KNRGgZ+Bb4FpsxsOkfUlMuwDcBWYOUZOHYM2AU8WQmhBifDv70O7PjX7KZ+4G7g3FM8zd6uBIaBy4AqxnIcZwFLCovPAhE4Sj38b4BDwEeVEFKD9S94Khjn486v3QAAAABJRU5ErkJggg=="},function(n,r){n.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAATCAYAAAB7u5a2AAABx0lEQVQ4jaWUv48NURiGn3ONmCs32ZBd28ht1gqyZAkF21ylQkEiSp2ehpDlD1BoFGqqVdJohYKI7MaPxMoVNghCWMF+7ybLUewnOXfcMWO9yeQ857zne8+XmZOBGjJpr0kvTIomvTZpS526UCO4DUwD64FjwCFgqZnnR+oc8LfgzKQ73vGsr42ZtGjSQFV9o8KfBCacZwCaef4YmAf2rzjcpN3A2WSpm/AssKcqPDNpDBjs410CViXzTwk/A7b1C4wxDgOngAsZcAXY2buDfp/6S4F3lDS8DjgBzDWAjX/Y/e/QgYS/AhsKHa+OMQ6GEJ4Cj4BOAxgq6aCowyZtdf4OtAr+FHDO+R4wWnVbihr3cQnICt4boO38GWj9a/icjwOACt4m4K3zEPA+AxaAtTWCnwN3lzHkEL8V/OPAGud9wK2GF9XR1Wae/1zG2AI+pGYI4VUIoRtjHAc2A9cz4LRPevYCZ+i9/4sJt4GXJU10gaPAzdI2TTro/5Tfz8XEe2LSZGmxq/SDNvP8BnA5WRrx4BwYBe6vONx1EnjovGvBLAAd4Adwuyq8UiaNmDTvr+a8SQ9MuvbfwckBHZPe+QEfTdpep+4XZmPBHiHgz74AAAAASUVORK5CYII="},function(n,r){n.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAYAAACXtf2DAAACtklEQVQ4jZ2VSYiURxTHf+/T9Nc9iRrBuYySmIsXUU9iFMEFERRBvAjJLUQi5ioiHvSScfTmgqC4XAT1ZIgLuJHkICaaQAgKI2hAUBT30bjUq7bbv4eukXK029F3+eqtv/fqK6qQdEnSNUmT6CDB/bvgfjO4N9zj2RD8007xg1IABkwEzkma0qb4PGAPMBZYLtSD8eNwAEjqTlNI0gNJM4YU7w7ut4O7gvuhZFsR3C8NC5BBLiTIY0mzM8AvqbiC++pk+zLpE95XuwAws3vAQuBPYDRwWtL84P4tsDSLv5oaug4EYOawAMF9jMdoLxqNZcDvQA04UVYqL4G/svj7AF21mhJscrvCksYBFO7xc2AAGGg2mrdjvf4rcAyomNn+slLZmUEGBgsYdh945xZJmgvckDSrEJpK6ySBgV6q12O8ABwGPjGzfWWlsjdN9rpjoSfA+DYDXARGAksK4Is3XC1Ub4z1f4CDQGFmu6tleQSYk0U+p7WVeefLJc00s4fAeWB6Qeunvj0m2ugx9gO7kmlrtSxvBfcy6fXUZS6rgG/S+jLQUwCVNmMC9HqM14EtSe+rluWazN8YEv8IqKZ1E1qnaIDO0ucx3gX6kv6TpM3AM+D/IbGjgP60/gq4WQA33gMA2OQxPgHWJX1ttSwL4FAeZGYLgB2SasBs4A8L7qOBf9M0uXQB3a+TMYSmVctyDrA9mfcBK82smSdKWgCcAaa1bTm4fxbc/8uuCQX3RanAD5Ka6Wo5IGnE0HxJPZ03pQX5Org3MsD3AO5xXLPZXJ9BjkrqdFg6QjZkgG3Jtsw93pG0VFI9QU5K6voYQBHcTydAfwheBI9HgvvPAJIWS3qeIL9JGvUxkO7gfi1BrqTvwkG/pPmSnibIqTzXPgAyEVgBjAEu1qrVPbk/PVTHgb/NbPGg/RVIzOQqzSTBaQAAAABJRU5ErkJggg=="},function(n,r){n.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAtMjAgMjQwIDI0MCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4Mj0iMCIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjEiIHgyPSIwIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iLjA4Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImMiIHgxPSIxIiB4Mj0iMCIgeTE9IjEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIuMDgiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iLjE2Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImQiIHgyPSIwIiB5MT0iMSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9Ii4xNiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIuMzMiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZSIgeDI9IjEiIHkxPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iLjMzIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9Ii42NiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJmIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIuNjYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz48L2xpbmVhckdyYWRpZW50PjxtYXNrIGlkPSJnIj48ZyBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjQwIj48cGF0aCBzdHJva2U9InVybCgjYSkiIGQ9Ik04Ni42LTUwYTEwMCAxMDAgMCAwMTAgMTAwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDAgMTAwKSIvPjxwYXRoIHN0cm9rZT0idXJsKCNiKSIgZD0iTTg2LjYgNTBBMTAwIDEwMCAwIDAxMCAxMDAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCAxMDApIi8+PHBhdGggc3Ryb2tlPSJ1cmwoI2MpIiBkPSJNMCAxMDBhMTAwIDEwMCAwIDAxLTg2LjYtNTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCAxMDApIi8+PHBhdGggc3Ryb2tlPSJ1cmwoI2QpIiBkPSJNLTg2LjYgNTBhMTAwIDEwMCAwIDAxMC0xMDAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCAxMDApIi8+PHBhdGggc3Ryb2tlPSJ1cmwoI2UpIiBkPSJNLTg2LjYtNTBBMTAwIDEwMCAwIDAxMC0xMDAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMCAxMDApIi8+PHBhdGggc3Ryb2tlPSJ1cmwoI2YpIiBkPSJNMC0xMDBhMTAwIDEwMCAwIDAxODYuNiA1MCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAwIDEwMCkiLz48L2c+PC9tYXNrPjwvZGVmcz48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4PSItMjAiIHk9Ii0yMCIgbWFzaz0idXJsKCNnKSIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg=="},function(n,r){n.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDciIGhlaWdodD0iNDciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMjMuNSIgY3k9IjIzLjUiIHI9IjIzLjUiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjcuNjM0IDE4LjUwOGE0LjMwNCA0LjMwNCAwIDExLTguNjA5IDAgNC4zMDQgNC4zMDQgMCAwMTguNjA5IDB6bTQuNzEyIDEyLjgwNGMuMTIyLjUwNi0uMjc1Ljk2OS0uNzg2Ljk2OUgxNS4xYy0uNTEyIDAtLjkwOS0uNDYyLS43ODctLjk3Ljk5My00LjEzNyA0LjY1My03LjIwOCA5LjAxNi03LjIwOHM4LjAyMyAzLjA3IDkuMDE3IDcuMjA5eiIgZmlsbD0iI0ZGRiIvPjwvc3ZnPg=="},function(n,r){n.exports="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzkgODYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTkuNzU3IDQwLjkyNGMzLjczOC01LjE5MSAxMi43MTEtNC4zMDggMTIuNzExLTQuMzA4IDIuMjIzIDMuMDE0IDUuMTI2IDI0LjU4NiAzLjYyNCAyOC43MTgtMS40MDEgMS4zMDEtMTEuNjExIDEuNjI5LTEzLjM4LTEuNDM2LTEuMjI2LTguODA0LTIuOTU1LTIyLjk3NS0yLjk1NS0yMi45NzV6bTU4Ljc4NSAwYy0zLjczNy01LjE5MS0xMi43MTEtNC4zMDgtMTIuNzExLTQuMzA4LTIuMjIzIDMuMDE0LTUuMTI2IDI0LjU4Ni0zLjYyNCAyOC43MTggMS40MDEgMS4zMDEgMTEuNjExIDEuNjI5IDEzLjM4LTEuNDM2IDEuMjI2LTguODA0IDIuOTU1LTIyLjk3NSAyLjk1NS0yMi45NzV6Ii8+PHBhdGggZD0iTTY4LjY0NyA1OC42Yy43MjktNC43NTMgMi4zOC05LjU2MSAyLjM4LTE0LjgwNCAwLTIxLjQxMi0xNC4xMTUtMzguNzctMzEuNTI4LTM4Ljc3LTE3LjQxMiAwLTMxLjUyNyAxNy4zNTgtMzEuNTI3IDM4Ljc3IDAgNC41NDEuNTE1IDguOTM2IDEuODAyIDEyLjk1IDEuNjk4IDUuMjk1LTUuNTQyIDYuOTkxLTYuNjE2IDIuMDczQzIuNDEgNTUuMzk0IDAgNTEuNzg3IDAgNDguMTAzIDAgMjEuNTM2IDE3LjY4NSAwIDM5LjUgMCA2MS4zMTYgMCA3OSAyMS41MzYgNzkgNDguMTAzYzAgLjcxOC0yLjg5OSA5LjY5My0zLjI5MiAxMS40MDgtLjc1NCAzLjI5My03Ljc1MSAzLjU4OS03LjA2MS0uOTEyeiIvPjxwYXRoIGQ9Ik01LjA4NCA1MS4zODVjLS44MDQtMy43ODIuNTY5LTcuMzM1IDMuMTM0LTcuOTIxIDIuNjM2LS42MDMgNS40ODUgMi4xNSA2LjI4OSA2LjEzMi43OTcgMy45NDgtLjc1MiA3LjQ1Ny0zLjM4OCA3Ljg1OS0yLjU2Ni4zOTEtNS4yMzctMi4zMTgtNi4wMzQtNi4wN3ptNjguODM0IDBjLjgwNC0zLjc4Mi0uNTY4LTcuMzM1LTMuMTMzLTcuOTIxLTIuNjM2LS42MDMtNS40ODUgMi4xNS02LjI4OSA2LjEzMi0uNzk3IDMuOTQ4Ljc1MiA3LjQ1NyAzLjM4OSA3Ljg1OSAyLjU2NS4zOTEgNS4yMzctMi4zMTggNi4wMzQtNi4wN3ptLTIuMDM4IDguMjg4Yy0uOTI2IDE5LjY1OS0xNS4xMTIgMjQuNzU5LTI1Ljg1OSAyMC40NzUtNS40MDUtLjYwNi0zLjAzNCAxLjI2Mi0zLjAzNCAxLjI2MiAxMy42NjEgMy41NjIgMjYuMTY4IDMuNDk3IDMxLjI3My0yMC41NDktLjU4NS00LjUxMS0yLjM3OS0xLjE4Ny0yLjM3OS0xLjE4N3oiLz48cGF0aCBkPSJNNDEuNjYyIDc4LjQyMmw3LjU1My41NWMxLjE5Mi4xMDcgMi4xMiAxLjE1MyAyLjA3MiAyLjMzNWwtLjEwOSAyLjczOGMtLjA0NyAxLjE4Mi0xLjA1MSAyLjA1NC0yLjI0MyAxLjk0NmwtNy41NTMtLjU1Yy0xLjE5MS0uMTA3LTIuMTE5LTEuMTUzLTIuMDcyLTIuMzM1bC4xMDktMi43MzdjLjA0Ny0xLjE4MiAxLjA1Mi0yLjA1NCAyLjI0My0xLjk0N3oiLz48L2c+PC9zdmc+"},function(n,r){n.exports="data:image/png;base64,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"},function(n,r){n.exports="data:image/png;base64,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"},function(n,r){n.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjkwIj48ZGVmcz48cGF0aCBkPSJNNjcgMTJMNi40NDggNzIuNTUyIDAgMzFWMThMMjYgMGw0MSAxMnptMyA3bDYgNDctMjkgMTgtMzUuNTAyLTYuNDk4TDcwIDE5eiIgaWQ9ImEiLz48L2RlZnM+PHJlY3Qgd2lkdGg9IjE1MCIgaGVpZ2h0PSI5MCIgcng9IjM1IiByeT0iNDUiIG9wYWNpdHk9Ii41Ii8+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNikiPjxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNhIi8+PC9tYXNrPjxwYXRoIGQ9Ik0zOS4yNDkgNTEuMzEyYy42OTcgMTAuMzcgMi43ODUgMTcuODk3IDUuMjUxIDE3Ljg5NyAzLjAzOCAwIDUuNS0xMS40MTcgNS41LTI1LjVzLTIuNDYyLTI1LjUtNS41LTI1LjVjLTIuNTEgMC00LjYyOCA3Ljc5Ny01LjI4NyAxOC40NTNBOC45ODkgOC45ODkgMCAwMTQzIDQ0YTguOTg4IDguOTg4IDAgMDEtMy43NTEgNy4zMTJ6TTIwLjk4NSAzMi4yMjRsMTUuNzQ2LTE2Ljg3N2E3LjM4NSA3LjM4NSAwIDAxMTAuMzc0LS40MkM1MS43MDIgMTkuMTE0IDU0IDI5LjIwOCA1NCA0NS4yMDhjMCAxNC41MjctMi4zNDMgMjMuODgtNy4wMyAyOC4wNThhNy4yOCA3LjI4IDAgMDEtMTAuMTY4LS40NjhMMjAuNDA1IDU1LjIyNEgxMmE1IDUgMCAwMS01LTV2LTEzYTUgNSAwIDAxNS01aDguOTg1eiIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIvPjwvZz48cGF0aCBkPSJNMTA2LjUgMTMuNUw0NC45OTggNzUuMDAyIiBzdHJva2U9IiNGRkYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9nPjwvc3ZnPg=="},function(n,r){n.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTciIGhlaWdodD0iOTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGQ9Ik03MCAxMkw5LjQ0OCA3Mi41NTIgMCA2MmwzLTQ0TDI5IDBsNDEgMTJ6bTggMmwxIDUyLTI5IDE4LTM1LjUwMi02LjQ5OEw3OCAxNHoiIGlkPSJhIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCAzKSI+PG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48L21hc2s+PHBhdGggZD0iTTkuMTEgMjAuOTY4SDQ4LjFhNSA1IDAgMDE1IDVWNTguMThhNSA1IDAgMDEtNSA1SDkuMTFhNSA1IDAgMDEtNS01VjI1Ljk3YTUgNSAwIDAxNS01em00Ny4wOCAxMy4zOTRjMC0uMzQ1IDUuNDcyLTMuMTU5IDE2LjQxNS04LjQ0M2EzIDMgMCAwMTQuMzA0IDIuNzAydjI2LjgzNWEzIDMgMCAwMS00LjMwNSAyLjcwMWMtMTAuOTQyLTUuMjg2LTE2LjQxMy04LjEtMTYuNDEzLTguNDQ2VjM0LjM2MnoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48L2c+PHBhdGggZD0iTTgxLjUgMTYuNUwxOS45OTggNzguMDAyIiBzdHJva2U9IiNGRkYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9nPjwvc3ZnPg=="},function(n,r,i){var a={},o=function(J){var E;return function(){return typeof E>"u"&&(E=J.apply(this,arguments)),E}},l=o(function(){return window&&document&&document.all&&!window.atob}),s=function(J,E){return E?E.querySelector(J):document.querySelector(J)},d=function(J){var E={};return function(v,j){if(typeof v=="function")return v();if(typeof E[v]>"u"){var H=s.call(this,v,j);if(window.HTMLIFrameElement&&H instanceof window.HTMLIFrameElement)try{H=H.contentDocument.head}catch{H=null}E[v]=H}return E[v]}}(),c=null,u=0,h=[],f=i(832);n.exports=function(J,E){if(typeof DEBUG<"u"&&DEBUG&&typeof document!="object")throw new Error("The style-loader cannot be used in a non-browser environment");E=E||{},E.attrs=typeof E.attrs=="object"?E.attrs:{},!E.singleton&&typeof E.singleton!="boolean"&&(E.singleton=l()),E.insertInto||(E.insertInto="head"),E.insertAt||(E.insertAt="bottom");var v=A(J,E);return g(v,E),function(H){for(var K=[],Fe=0;Fe<v.length;Fe++){var z=v[Fe],q=a[z.id];q.refs--,K.push(q)}if(H){var Ae=A(H,E);g(Ae,E)}for(var Fe=0;Fe<K.length;Fe++){var q=K[Fe];if(q.refs===0){for(var Ke=0;Ke<q.parts.length;Ke++)q.parts[Ke]();delete a[q.id]}}}};function g(J,E){for(var v=0;v<J.length;v++){var j=J[v],H=a[j.id];if(H){H.refs++;for(var K=0;K<H.parts.length;K++)H.parts[K](j.parts[K]);for(;K<j.parts.length;K++)H.parts.push(C(j.parts[K],E))}else{for(var Fe=[],K=0;K<j.parts.length;K++)Fe.push(C(j.parts[K],E));a[j.id]={id:j.id,refs:1,parts:Fe}}}}function A(J,E){for(var v=[],j={},H=0;H<J.length;H++){var K=J[H],Fe=E.base?K[0]+E.base:K[0],z=K[1],q=K[2],Ae=K[3],Ke={css:z,media:q,sourceMap:Ae};j[Fe]?j[Fe].parts.push(Ke):v.push(j[Fe]={id:Fe,parts:[Ke]})}return v}function b(J,E){var v=d(J.insertInto);if(!v)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var j=h[h.length-1];if(J.insertAt==="top")j?j.nextSibling?v.insertBefore(E,j.nextSibling):v.appendChild(E):v.insertBefore(E,v.firstChild),h.push(E);else if(J.insertAt==="bottom")v.appendChild(E);else if(typeof J.insertAt=="object"&&J.insertAt.before){var H=d(J.insertAt.before,v);v.insertBefore(E,H)}else throw new Error(`[Style Loader] Invalid value for parameter 'insertAt' ('options.insertAt') found. Must be 'top', 'bottom', or Object. (https://github.com/webpack-contrib/style-loader#insertat) `)}function p(J){if(J.parentNode===null)return!1;J.parentNode.removeChild(J);var E=h.indexOf(J);E>=0&&h.splice(E,1)}function y(J){var E=document.createElement("style");if(J.attrs.type===void 0&&(J.attrs.type="text/css"),J.attrs.nonce===void 0){var v=R();v&&(J.attrs.nonce=v)}return F(E,J.attrs),b(J,E),E}function m(J){var E=document.createElement("link");return J.attrs.type===void 0&&(J.attrs.type="text/css"),J.attrs.rel="stylesheet",F(E,J.attrs),b(J,E),E}function F(J,E){Object.keys(E).forEach(function(v){J.setAttribute(v,E[v])})}function R(){return i.nc}function C(J,E){var v,j,H,K;if(E.transform&&J.css)if(K=typeof E.transform=="function"?E.transform(J.css):E.transform.default(J.css),K)J.css=K;else return function(){};if(E.singleton){var Fe=u++;v=c||(c=y(E)),j=N.bind(null,v,Fe,!1),H=N.bind(null,v,Fe,!0)}else J.sourceMap&&typeof URL=="function"&&typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function"&&typeof Blob=="function"&&typeof btoa=="function"?(v=m(E),j=X.bind(null,v,E),H=function(){p(v),v.href&&URL.revokeObjectURL(v.href)}):(v=y(E),j=S.bind(null,v),H=function(){p(v)});return j(J),function(q){if(q){if(q.css===J.css&&q.media===J.media&&q.sourceMap===J.sourceMap)return;j(J=q)}else H()}}var B=function(){var J=[];return function(E,v){return J[E]=v,J.filter(Boolean).join(` `)}}();function N(J,E,v,j){var H=v?"":j.css;if(J.styleSheet)J.styleSheet.cssText=B(E,H);else{var K=document.createTextNode(H),Fe=J.childNodes;Fe[E]&&J.removeChild(Fe[E]),Fe.length?J.insertBefore(K,Fe[E]):J.appendChild(K)}}function S(J,E){var v=E.css,j=E.media;if(j&&J.setAttribute("media",j),J.styleSheet)J.styleSheet.cssText=v;else{for(;J.firstChild;)J.removeChild(J.firstChild);J.appendChild(document.createTextNode(v))}}function X(J,E,v){var j=v.css,H=v.sourceMap,K=E.convertToAbsoluteUrls===void 0&&H;(E.convertToAbsoluteUrls||K)&&(j=f(j)),H&&(j+=` /*# sourceMappingURL=data:application/json;base64,`+btoa(unescape(encodeURIComponent(JSON.stringify(H))))+" */");var Fe=new Blob([j],{type:"text/css"}),z=J.href;J.href=URL.createObjectURL(Fe),z&&URL.revokeObjectURL(z)}},function(n,r){n.exports=function(i){var a=typeof window<"u"&&window.location;if(!a)throw new Error("fixUrls requires window.location");if(!i||typeof i!="string")return i;var o=a.protocol+"//"+a.host,l=o+a.pathname.replace(/\/[^\/]*$/,"/"),s=i.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(d,c){var u=c.trim().replace(/^"(.*)"$/,function(f,g){return g}).replace(/^'(.*)'$/,function(f,g){return g});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(u))return d;var h;return u.indexOf("//")===0?h=u:u.indexOf("/")===0?h=o+u:h=l+u.replace(/^\.\//,""),"url("+JSON.stringify(h)+")"});return s}}])})})(ME);var vx=ME.exports;const h2=DE(vx),Vx={class:"border-top"},Ex={id:"videos"},Sx={class:"reciever_data"},Wx={class:"image"},Nx=["src"],Gx={class:"call_overlay"},Jx=["src","alt"],Tx={style:{color:"#fff"}},Xx={class:"mx-3 mx-md-5 text-white text-center"},kx={class:"d-block"},wx={class:"controls"},Yx={class:"mt-3 mb-3 mt-md-0 d-flex align-items-center"},Dx={__name:"Conversation",props:{orderID:String,orderType:String,roomID:String,apiKey:String,sessionId:String,call_token:String,api_secret:String,application_id:String,answerSecond:String},setup(t){const e=hn(),n=po(),r=t,i=hn(""),a=hn(""),o=hn(""),l=hn(""),s=hn(""),d=hn(n.orderInfo.id||""),c=hn(n.orderInfo.type||""),u=hn("");FA(()=>{r.orderID&&(d.value=r.orderID),r.orderType&&(c.value=r.orderType),r.roomID&&(u.value=r.roomID),r.apiKey&&(i.value=r.apiKey),r.sessionId&&(a.value=r.sessionId),r.call_token&&(o.value=r.call_token),r.api_secret&&(l.value=r.api_secret),r.application_id&&(s.value=r.application_id)});const h=hn("00:00"),f=hn(null),g=hn(null),A=hn(null),{getMethod:b,getResult:p,toast:y,handleToast:m}=va(),F=dc(),R=hn(),C=()=>{var pe;R!=null&&R.value&&((pe=R==null?void 0:R.value)==null||pe.play())},B=()=>{var pe;R!=null&&R.value&&((pe=R==null?void 0:R.value)==null||pe.pause())},N=hp("https://thunder-way.com:4797",{reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,transports:["websocket"],query:{sender_id:n==null?void 0:n.profile.id,sender_type:"Provider",sender_name:n==null?void 0:n.profile.name,avatar:n==null?void 0:n.profile.avatar,lang:(n==null?void 0:n.lang)||"ar"}});let S=null,X=null,J=null;const E=hn(!1),v=()=>{S=h2.initSession(s.value,a.value),X=h2.initPublisher("publisher",{insertMode:"append",publishVideo:!1,publishAudio:!0,width:"100%",height:"100%"},H()),S.on("streamCreated",function(pe){E.value=!0,S.subscribe(pe.stream,"subscriber",{insertMode:"append",width:"100%",height:"100%"},H()),Ae(),B()}),S.connect(o.value,pe=>{pe?H(pe):S.publish(X,H)})};N.on("callFinished",function(){S==null||S.disconnect(),B(),X.publishAudio(!1),n.showCoversation&&n.toggleShowConversation()});const j=()=>{i.value=i.value,a.value=a.value,o.value=o.value,l.value=l.value,s.value=s.value,f.value=n.recieverData.id,g.value=n.recieverData.name,A.value=n.recieverData.image},H=pe=>{pe&&m("error",pe.message)};let K=hn(!1),Fe=hn(!1);const z=pe=>{console.log("Talker:",pe),pe=="publisher"?(K.value?X.publishAudio(!0):X.publishAudio(!1),K.value=!K.value):(Fe.value?J.subscribeToAudio(!0):J.subscribeToAudio(!1),Fe.value=!Fe.value)},q=pe=>{pe=="end"&&(S==null||S.disconnect(),n.handleOrderInfo({}),e.value.play(),n.toggleShowConversation(),setTimeout(()=>{X.publishAudio(!1)},1e3),location.assign(c.value=="order"?`/order_details/${d.value}`:`/pending_order_details/${d.value}`)),isMicPermissionGranted.value==!0?(N.emit("call",{room_id:u.value?u.value:F.query.id,session_id:a.value,token:o.value,apiKey:i.value,api_secret:l.value,application_id:s.value,order_id:d.value,order_call_type:c.value,call_type:"voice",receiver_type:"User",receiver_id:pe!="start"?Number(n.profile.id):Number(n.recieverData.id),receiver_name:pe!="start"?n.profile.name:n.recieverData.name,receiver_image:pe!="start"?n.profile.image:n.recieverData.image,sender_id:pe=="start"?Number(n.profile.id):Number(n.recieverData.id),sender_name:pe=="start"?n.profile.name:n.recieverData.name,sender_image:pe=="start"?n.profile.image:n.recieverData.image,sender_type:"Provider",status:pe,answer_second:pe=="answer"}),console.log({room_id:u.value?u.value:F.query.id,session_id:a.value,token:o.value,apiKey:i.value,api_secret:l.value,application_id:s.value,order_id:d.value,order_call_type:c.value,call_type:"voice",receiver_type:"User",receiver_id:pe!="start"?Number(n.profile.id):Number(n.recieverData.id),receiver_name:pe!="start"?n.profile.name:n.recieverData.name,receiver_image:pe!="start"?n.profile.image:n.recieverData.image,sender_id:pe=="start"?Number(n.profile.id):Number(n.recieverData.id),sender_name:pe=="start"?n.profile.name:n.recieverData.name,sender_image:pe=="start"?n.profile.image:n.recieverData.image,sender_type:"Provider",status:pe,answer_second:pe!="start"}),console.log({store_profile_id:n.profile.id,store_profile_name:n.profile.name,store_profile_image:n.profile.image,store_recieverData_id:n.recieverData.id,store_recieverData_name:n.recieverData.name,store_recieverData_image:n.recieverData.image})):H("error",n.lang==="ar"?"الرجاء إعطاء تصريح الميكروفون":n.lang==="en"?"Please Allow Microphone Permission":"براہ کرم مائیکروفون کی اجازت دیں")},Ae=()=>{setInterval(()=>{const pe=parseInt(h.value.split(":")[1])+1,We=parseInt(h.value.split(":")[0]),xe=pe<60?pe:0,$e=pe<60?We:We+1;h.value=`${$e.toString().padStart(2,"0")}:${xe.toString().padStart(2,"0")}`},1e3)};hn(!1),hn(!1),yi(()=>p==null?void 0:p.value,pe=>{var We,xe,$e,Rt,Be;pe!=null&&pe.data&&!r.orderType&&!r.apiKey&&!r.api_secret&&!r.sessionId&&!r.call_token&&!r.application_id&&(i.value=(We=pe==null?void 0:pe.data)==null?void 0:We.api_key,l.value=(xe=pe==null?void 0:pe.data)==null?void 0:xe.api_secret,a.value=($e=pe==null?void 0:pe.data)==null?void 0:$e.session_id,o.value=(Rt=pe==null?void 0:pe.data)==null?void 0:Rt.token,s.value=(Be=pe==null?void 0:pe.data)==null?void 0:Be.application_id),(pe==null?void 0:pe.key)=="sucess"&&(Ae(),B())});const Ke=pe=>{const We=["سيتم ايقاف المكالمة","The call will be stopped","کال بند کردی جائے گی"][n.lang]||"The call will be stopped";pe.preventDefault(),pe.returnValue=We};return X&&window.addEventListener("beforeunload",Ke),Ka(()=>{c.value=="order"?b(`provider/orders/${d.value}/make-call`,!0):c.value=="negotiation"&&b(`provider/un-pricing-orders/${d.value}/make-call`,!0),setTimeout(()=>{j(),v(),C(),!r.orderID&&!r.orderType?q("start"):q("answer"),X.publishVideo(!1)},2e3)}),Ip(()=>{S==null||S.disconnect()}),(pe,We)=>(oe(),Ce("section",Vx,[Q("div",Ex,[Q("div",Sx,[Q("div",Wx,[Q("img",{src:ct(n).recieverData.image,alt:"image",loading:"lazy"},null,8,Nx),Q("button",{class:Hr(["btn-grey btn-grey-reciever nav-icon me-3",{muted:ct(Fe)}]),onClick:We[0]||(We[0]=xe=>z("subscriber"))},We[3]||(We[3]=[Q("i",{class:"pi pi-microphone"},null,-1)]),2)])]),Q("div",Gx,[Q("img",{src:ct(n).recieverData.image,alt:ct(n).profile.name,class:"avatar border border-primary w-170"},null,8,Jx),Q("h3",Tx,ce(ct(n).recieverData.name),1)]),Q("div",Xx,[Q("span",kx,ce(h.value),1)]),Q("div",wx,[Q("div",Yx,[ct(X)?(oe(),Ce("button",{key:0,class:Hr(["btn-grey nav-icon me-3",{muted:ct(K)}]),onClick:We[1]||(We[1]=xe=>z("publisher"))},We[4]||(We[4]=[Q("i",{class:"pi pi-microphone"},null,-1)]),2)):Pt("",!0),Q("button",{class:"btn-danger nav-icon",id:"close-video",onClick:We[2]||(We[2]=xe=>q("end"))},We[5]||(We[5]=[Q("i",{class:"pi pi-phone"},null,-1)]))])]),Q("audio",{ref_key:"ringtone",ref:R,controls:"",preload:"auto",class:"hidden",loop:""},We[6]||(We[6]=[Q("source",{src:wB,type:"audio/ogg"},null,-1),Q("source",{src:wB,type:"audio/mpeg"},null,-1)]),512),Q("audio",{ref_key:"endTone",ref:e,preload:"auto",controls:"",class:"hidden"},We[7]||(We[7]=[Q("source",{src:YB,type:"audio/ogg"},null,-1),Q("source",{src:YB,type:"audio/mpeg"},null,-1)]),512)]),Fn(ct(ol),{ref_key:"toast",ref:y,position:"top-right"},null,512)]))}},Mx={__name:"App",setup(t){const e=po(),n=Ag(),r=hn(),i=hp("https://thunder-way.com:4797",{reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,transports:["websocket"],query:{sender_id:e==null?void 0:e.profile.id,sender_type:"Provider",sender_name:e==null?void 0:e.profile.name,avatar:e==null?void 0:e.profile.avatar,lang:(e==null?void 0:e.lang)||"ar"}}),a=hn(""),o=hn(""),l=hn(""),s=hn(""),d=hn(""),c=hn(""),u=hn(""),h=hn(""),f=hn(!1),g=hn(null),A=hn(""),b=hn(""),p=()=>{var E;g!=null&&g.value&&((E=g.value)==null||E.play())},y=hn(!1),m=hn(null),F=hn(""),R=hn(""),C=()=>{var E;m!=null&&m.value&&((E=m==null?void 0:m.value)==null||E.play())},B=()=>{var E;m!=null&&m.value&&((E=m==null?void 0:m.value)==null||E.pause())},N=()=>{B(),e.toggleShowConversation(),y.value=!1},S=()=>{B(),y.value=!1,J("end")};let X=null;X=h2.initSession(d.value,o.value);const J=E=>{X==null||X.disconnect(),i.emit("call",{room_id:u.value,session_id:o.value,token:l.value,apiKey:a.value,api_secret:s.value,application_id:d.value,order_id:c.value,order_call_type:h.value,call_type:"voice",receiver_type:"User",receiver_id:Number(e.recieverData.id),receiver_name:e.recieverData.name,receiver_image:e.recieverData.image,sender_id:Number(e.profile.id),sender_name:e.profile.name,sender_image:e.profile.image,sender_type:"Provider",status:E,answer_second:!0})};return Ka(()=>{Hv({apiKey:"AIzaSyDMryFNsv7jbaZbRg8Boek8mAcK5LPXSt0",authDomain:"thandar-dbdda.firebaseapp.com",projectId:"thandar-dbdda",storageBucket:"thandar-dbdda.firebasestorage.app",messagingSenderId:"419462465590",appId:"1:419462465590:web:97ecdab88fabcfd0413097",measurementId:"G-P15FD86QNL"});const v=hX();AX(v,j=>{var H,K,Fe,z,q,Ae,Ke,pe,We,xe,$e,Rt,Be;console.log("Message received. ",j),j.data.type=="newCall"?(y.value=!0,R.value=(H=j==null?void 0:j.data)==null?void 0:H.image,F.value=(K=j==null?void 0:j.data)==null?void 0:K.title,c.value=(Fe=j==null?void 0:j.data)==null?void 0:Fe.order_id,u.value=(z=j==null?void 0:j.data)==null?void 0:z.room_id,h.value=(q=j==null?void 0:j.data)==null?void 0:q.order_call_type,a.value=(Ae=j==null?void 0:j.data)==null?void 0:Ae.apiKey,s.value=(Ke=j==null?void 0:j.data)==null?void 0:Ke.secretKey,o.value=(pe=j==null?void 0:j.data)==null?void 0:pe.session_id,l.value=(We=j==null?void 0:j.data)==null?void 0:We.token,d.value=(xe=j==null?void 0:j.data)==null?void 0:xe.application_id,r.value=j,e.storeRecieverData(($e=j==null?void 0:j.data)==null?void 0:$e.receiver_id,(Rt=j==null?void 0:j.data)==null?void 0:Rt.title,(Be=j==null?void 0:j.data)==null?void 0:Be.image),C()):j.data.type==="finish_call"?n.push("/orders"):j.data.type==="cancel"?(y.value=!1,B(),J("end"),y.value=!1,e.showCoversation&&e.toggleShowConversation()):j.data.type=="missedCall"?(y.value=!1,B()):j.data.type=="admin_accept_request_for_edit"?n.push("/profile"):(A.value=j.notification.title,b.value=j.notification.body,f.value=!0,e.handleIsNotificatied(!0),p()),setTimeout(()=>{f.value=!1},4e3)}),gX(v,{vapidKey:"BL6KDLenmp2cO1sVGAh7BNJqOIokv97ol1WnBqqbZWU1Yyygz6xN9MuU_eb27cimlkeOkpoUYZiOP4cJinEIvHY"}).then(j=>{j?e==null||e.storeMessageToken(j):console.log("No registration token available. Request permission to generate one.")}).catch(j=>{console.log("An error occurred while retrieving token. ",j)}),navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then(j=>{}).catch(j=>{})}),(E,v)=>(oe(),Ce("div",{style:ja({direction:E.$i18n.locale==="en"?"ltr":"rtl"})},[Fn(ct(vp)),f.value?(oe(),Vn(wD,{key:0,title:A.value,body:b.value},null,8,["title","body"])):Pt("",!0),y.value?(oe(),Vn(PD,{key:1,title:F.value,image:R.value,onAcceptCall:N,onCancelCall:S},null,8,["title","image"])):Pt("",!0),ct(e).showCoversation?(oe(),Vn(Dx,{key:2,apiKey:a.value,sessionId:o.value,call_token:l.value,api_secret:s.value,application_id:d.value,orderID:c.value,roomID:u.value,orderType:h.value},null,8,["apiKey","sessionId","call_token","api_secret","application_id","orderID","roomID","orderType"])):Pt("",!0),Q("audio",{ref_key:"notificationAudio",ref:g,preload:"auto",controls:"",class:"hidden"},v[0]||(v[0]=[Q("source",{src:aR,type:"audio/ogg"},null,-1),Q("source",{src:aR,type:"audio/mpeg"},null,-1)]),512),Q("audio",{ref_key:"callAudio",ref:m,preload:"auto",controls:"",loop:"",class:"hidden"},v[1]||(v[1]=[Q("source",{src:oR,type:"audio/ogg"},null,-1),Q("source",{src:oR,type:"audio/mpeg"},null,-1)]),512)],4))}};(function(){try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".vue3-star-ratings[data-v-7fab3f62]{width:fit-content;overflow:hidden;position:relative;white-space:nowrap}.vue3-star-ratings *[data-v-7fab3f62]{box-sizing:border-box;margin:0;padding:0;line-height:1}.vue3-star-ratings__inner[data-v-7fab3f62],.vue3-star-ratings__outer[data-v-7fab3f62]{height:inherit}.vue3-star-ratings__outer[data-v-7fab3f62]{position:absolute;top:0;left:0;width:var(--vue3StarRatingOuterWidth);max-width:100%;overflow:hidden;color:var(--vue3StarRatingsOuterColor);transition:width .32s cubic-bezier(.075,.82,.165,1)}.vue3-star-ratings__inner[data-v-7fab3f62]{color:var(--vue3StarRatingsInnerColor)}.vue3-star-ratings__icon[data-v-7fab3f62]{fill:currentColor;width:var(--vue3StarRatingIconSize);aspect-ratio:1;cursor:pointer;display:inline-block}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();const LE=(t,e)=>{const n=t.__vccOpts||t;for(const[r,i]of e)n[r]=i;return n},Lx={},Hx={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512.002 512.002"},xx=Q("path",{d:"M511.267 197.258a14.995 14.995 0 00-12.107-10.209l-158.723-23.065-70.985-143.827a14.998 14.998 0 00-26.901 0l-70.988 143.827-158.72 23.065a14.998 14.998 0 00-8.312 25.585l114.848 111.954-27.108 158.083a14.999 14.999 0 0021.763 15.812l141.967-74.638 141.961 74.637a15 15 0 0021.766-15.813l-27.117-158.081 114.861-111.955a14.994 14.994 0 003.795-15.375z"},null,-1),Ox=[xx];function Kx(t,e){return oe(),Ce("svg",Hx,Ox)}const uZ=LE(Lx,[["render",Kx]]),Px={class:"vue3-star-ratings__outer"},zx={class:"vue3-star-ratings__inner"},jx=Zp({__name:"Vue3StarRatings",props:{modelValue:{default:0},numberOfStars:{default:5},starColor:{default:"#ff9800"},inactiveColor:{default:"#333333"},starSize:{default:24},disableClick:{type:Boolean},customSvg:{default:uZ}},emits:["update:modelValue"],setup(t,{emit:e}){const n=t,r=qs(()=>n.customSvg||uZ),i={rounded(d,c){const u=Math.pow(10,c);return Math.round(d*u)/u}},a=hn(),o=qs({get(){return n.modelValue},set(d){const c=i.rounded(d,1);e("update:modelValue",c)}});function l(d){if(n.disableClick)return;const c=this.getBoundingClientRect(),{pageX:u}=d,h=u-c.left,f=c.width,g=n.numberOfStars,A=h/f*g;o.value=A}const s=qs(()=>(o.value<0?0:o.value>n.numberOfStars?n.numberOfStars:o.value)/n.numberOfStars*100);return FA(()=>{var d;const c={"--vue3StarRatingsInnerColor":n.inactiveColor,"--vue3StarRatingsOuterColor":n.starColor,"--vue3StarRatingOuterWidth":`${s.value}%`,"--vue3StarRatingIconSize":`${n.starSize}px`};for(const[u,h]of Object.entries(c))(d=a.value)==null||d.style.setProperty(u,h)}),Ka(()=>{var d;(d=a.value)==null||d.addEventListener("click",l)}),Ay(()=>{var d;(d=a.value)==null||d.removeEventListener("click",l)}),(d,c)=>(oe(),Ce("div",{class:"vue3-star-ratings",ref_key:"starsContainer",ref:a,style:ja({pointerEvents:d.disableClick?"none":"auto"})},[Q("div",Px,[(oe(!0),Ce(Er,null,ia(d.numberOfStars,u=>(oe(),Vn(ea(r.value),{key:u,class:"vue3-star-ratings__icon"}))),128))]),Q("div",zx,[(oe(!0),Ce(Er,null,ia(d.numberOfStars,u=>(oe(),Vn(ea(r.value),{key:u,class:"vue3-star-ratings__icon"}))),128))])],4))}}),_x=LE(jx,[["__scopeId","data-v-7fab3f62"]]),$x=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,qx=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,eO=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function tO(t,e){if(t==="__proto__"||t==="constructor"&&e&&typeof e=="object"&&"prototype"in e){nO(t);return}return e}function nO(t){console.warn(`[destr] Dropping "${t}" key to prevent prototype pollution.`)}function rO(t,e={}){if(typeof t!="string")return t;const n=t.trim();if(t[0]==='"'&&t.endsWith('"')&&!t.includes("\\"))return n.slice(1,-1);if(n.length<=9){const r=n.toLowerCase();if(r==="true")return!0;if(r==="false")return!1;if(r==="undefined")return;if(r==="null")return null;if(r==="nan")return Number.NaN;if(r==="infinity")return Number.POSITIVE_INFINITY;if(r==="-infinity")return Number.NEGATIVE_INFINITY}if(!eO.test(t)){if(e.strict)throw new SyntaxError("[destr] Invalid JSON");return t}try{if($x.test(t)||qx.test(t)){if(e.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(t,tO)}return JSON.parse(t)}catch(r){if(e.strict)throw r;return t}}function iO(t,e){if(t==null)return;let n=t;for(let r=0;r<e.length;r++){if(n==null||n[e[r]]==null)return;n=n[e[r]]}return n}function WQ(t,e,n){if(n.length===0)return e;const r=n[0];return n.length>1&&(e=WQ(typeof t!="object"||t===null||!Object.prototype.hasOwnProperty.call(t,r)?Number.isInteger(Number(n[1]))?[]:{}:t[r],e,Array.prototype.slice.call(n,1))),Number.isInteger(Number(r))&&Array.isArray(t)?t.slice()[r]:Object.assign({},t,{[r]:e})}function HE(t,e){if(t==null||e.length===0)return t;if(e.length===1){if(t==null)return t;if(Number.isInteger(e[0])&&Array.isArray(t))return Array.prototype.slice.call(t,0).splice(e[0],1);const n={};for(const r in t)n[r]=t[r];return delete n[e[0]],n}if(t[e[0]]==null){if(Number.isInteger(e[0])&&Array.isArray(t))return Array.prototype.concat.call([],t);const n={};for(const r in t)n[r]=t[r];return n}return WQ(t,HE(t[e[0]],Array.prototype.slice.call(e,1)),[e[0]])}function xE(t,e){return e.map(n=>n.split(".")).map(n=>[n,iO(t,n)]).filter(n=>n[1]!==void 0).reduce((n,r)=>WQ(n,r[1],r[0]),{})}function OE(t,e){return e.map(n=>n.split(".")).reduce((n,r)=>HE(n,r),t)}function fZ(t,{storage:e,serializer:n,key:r,debug:i,pick:a,omit:o,beforeHydrate:l,afterHydrate:s},d,c=!0){try{c&&(l==null||l(d));const u=e.getItem(r);if(u){const h=n.deserialize(u),f=a?xE(h,a):h,g=o?OE(f,o):f;t.$patch(g)}c&&(s==null||s(d))}catch(u){i&&console.error("[pinia-plugin-persistedstate]",u)}}function hZ(t,{storage:e,serializer:n,key:r,debug:i,pick:a,omit:o}){try{const l=a?xE(t,a):t,s=o?OE(l,o):l,d=n.serialize(s);e.setItem(r,d)}catch(l){i&&console.error("[pinia-plugin-persistedstate]",l)}}function aO(t,e,n){const{pinia:r,store:i,options:{persist:a=n}}=t;if(!a)return;if(!(i.$id in r.state.value)){const s=r._s.get(i.$id.replace("__hot:",""));s&&Promise.resolve().then(()=>s.$persist());return}const l=(Array.isArray(a)?a:a===!0?[{}]:[a]).map(e);i.$hydrate=({runHooks:s=!0}={})=>{l.forEach(d=>{fZ(i,d,t,s)})},i.$persist=()=>{l.forEach(s=>{hZ(i.$state,s)})},l.forEach(s=>{fZ(i,s,t),i.$subscribe((d,c)=>hZ(c,s),{detached:!0})})}function oO(t={}){return function(e){aO(e,n=>({key:(t.key?t.key:r=>r)(n.key??e.store.$id),debug:n.debug??t.debug??!1,serializer:n.serializer??t.serializer??{serialize:r=>JSON.stringify(r),deserialize:r=>rO(r)},storage:n.storage??t.storage??window.localStorage,beforeHydrate:n.beforeHydrate,afterHydrate:n.afterHydrate,pick:n.pick,omit:n.omit}),t.auto??!1)}}var lO=oO(),Cc={STARTS_WITH:"startsWith",CONTAINS:"contains",NOT_CONTAINS:"notContains",ENDS_WITH:"endsWith",EQUALS:"equals",NOT_EQUALS:"notEquals",IN:"in",LESS_THAN:"lt",LESS_THAN_OR_EQUAL_TO:"lte",GREATER_THAN:"gt",GREATER_THAN_OR_EQUAL_TO:"gte",BETWEEN:"between",DATE_IS:"dateIs",DATE_IS_NOT:"dateIsNot",DATE_BEFORE:"dateBefore",DATE_AFTER:"dateAfter"},ry={AND:"and",OR:"or"};function gZ(t,e){var n=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=sO(t))||e){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(d){throw d},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,l;return{s:function(){n=n.call(t)},n:function(){var d=n.next();return a=d.done,d},e:function(d){o=!0,l=d},f:function(){try{!a&&n.return!=null&&n.return()}finally{if(o)throw l}}}}function sO(t,e){if(t){if(typeof t=="string")return AZ(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return AZ(t,e)}}function AZ(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var iy={filter:function(e,n,r,i,a){var o=[];if(!e)return o;var l=gZ(e),s;try{for(l.s();!(s=l.n()).done;){var d=s.value;if(typeof d=="string"){if(this.filters[i](d,r,a)){o.push(d);continue}}else{var c=gZ(n),u;try{for(c.s();!(u=c.n()).done;){var h=u.value,f=jn.resolveFieldData(d,h);if(this.filters[i](f,r,a)){o.push(d);break}}}catch(g){c.e(g)}finally{c.f()}}}}catch(g){l.e(g)}finally{l.f()}return o},filters:{startsWith:function(e,n,r){if(n==null||n==="")return!0;if(e==null)return!1;var i=jn.removeAccents(n.toString()).toLocaleLowerCase(r),a=jn.removeAccents(e.toString()).toLocaleLowerCase(r);return a.slice(0,i.length)===i},contains:function(e,n,r){if(n==null||n==="")return!0;if(e==null)return!1;var i=jn.removeAccents(n.toString()).toLocaleLowerCase(r),a=jn.removeAccents(e.toString()).toLocaleLowerCase(r);return a.indexOf(i)!==-1},notContains:function(e,n,r){if(n==null||n==="")return!0;if(e==null)return!1;var i=jn.removeAccents(n.toString()).toLocaleLowerCase(r),a=jn.removeAccents(e.toString()).toLocaleLowerCase(r);return a.indexOf(i)===-1},endsWith:function(e,n,r){if(n==null||n==="")return!0;if(e==null)return!1;var i=jn.removeAccents(n.toString()).toLocaleLowerCase(r),a=jn.removeAccents(e.toString()).toLocaleLowerCase(r);return a.indexOf(i,a.length-i.length)!==-1},equals:function(e,n,r){return n==null||n===""?!0:e==null?!1:e.getTime&&n.getTime?e.getTime()===n.getTime():jn.removeAccents(e.toString()).toLocaleLowerCase(r)==jn.removeAccents(n.toString()).toLocaleLowerCase(r)},notEquals:function(e,n,r){return n==null||n===""?!1:e==null?!0:e.getTime&&n.getTime?e.getTime()!==n.getTime():jn.removeAccents(e.toString()).toLocaleLowerCase(r)!=jn.removeAccents(n.toString()).toLocaleLowerCase(r)},in:function(e,n){if(n==null||n.length===0)return!0;for(var r=0;r<n.length;r++)if(jn.equals(e,n[r]))return!0;return!1},between:function(e,n){return n==null||n[0]==null||n[1]==null?!0:e==null?!1:e.getTime?n[0].getTime()<=e.getTime()&&e.getTime()<=n[1].getTime():n[0]<=e&&e<=n[1]},lt:function(e,n){return n==null?!0:e==null?!1:e.getTime&&n.getTime?e.getTime()<n.getTime():e<n},lte:function(e,n){return n==null?!0:e==null?!1:e.getTime&&n.getTime?e.getTime()<=n.getTime():e<=n},gt:function(e,n){return n==null?!0:e==null?!1:e.getTime&&n.getTime?e.getTime()>n.getTime():e>n},gte:function(e,n){return n==null?!0:e==null?!1:e.getTime&&n.getTime?e.getTime()>=n.getTime():e>=n},dateIs:function(e,n){return n==null?!0:e==null?!1:e.toDateString()===n.toDateString()},dateIsNot:function(e,n){return n==null?!0:e==null?!1:e.toDateString()!==n.toDateString()},dateBefore:function(e,n){return n==null?!0:e==null?!1:e.getTime()<n.getTime()},dateAfter:function(e,n){return n==null?!0:e==null?!1:e.getTime()>n.getTime()}},register:function(e,n){this.filters[e]=n}};function p0(t){"@babel/helpers - typeof";return p0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p0(t)}function pZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function t1(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?pZ(Object(n),!0).forEach(function(r){dO(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):pZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function dO(t,e,n){return e=cO(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function cO(t){var e=uO(t,"string");return p0(e)=="symbol"?e:String(e)}function uO(t,e){if(p0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(p0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var mZ={ripple:!1,inputStyle:null,locale:{startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",completed:"Completed",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",today:"Today",weekHeader:"Wk",firstDayOfWeek:0,showMonthAfterYear:!1,dateFormat:"mm/dd/yy",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyFilterMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyMessage:"No available options",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"Page {page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List"}},filterMatchModeOptions:{text:[Cc.STARTS_WITH,Cc.CONTAINS,Cc.NOT_CONTAINS,Cc.ENDS_WITH,Cc.EQUALS,Cc.NOT_EQUALS],numeric:[Cc.EQUALS,Cc.NOT_EQUALS,Cc.LESS_THAN,Cc.LESS_THAN_OR_EQUAL_TO,Cc.GREATER_THAN,Cc.GREATER_THAN_OR_EQUAL_TO],date:[Cc.DATE_IS,Cc.DATE_IS_NOT,Cc.DATE_BEFORE,Cc.DATE_AFTER]},zIndex:{modal:1100,overlay:1e3,menu:1e3,tooltip:1100},pt:void 0,ptOptions:{mergeSections:!0,mergeProps:!1},unstyled:!1,csp:{nonce:void 0}},fO=Symbol();function hO(t,e,n,r){if(t!==e){var i=document.getElementById(n),a=i.cloneNode(!0),o=i.getAttribute("href").replace(t,e);a.setAttribute("id",n+"-clone"),a.setAttribute("href",o),a.addEventListener("load",function(){i.remove(),a.setAttribute("id",n),r&&r()}),i.parentNode&&i.parentNode.insertBefore(a,i.nextSibling)}}var gO={install:function(e,n){var r=n?t1(t1({},mZ),n):t1({},mZ),i={config:yA(r),changeTheme:hO};e.config.globalProperties.$primevue=i,e.provide(fO,i)}},AO={root:function(e){var n=e.instance,r=e.props;return["p-checkbox p-component",{"p-highlight":n.checked,"p-disabled":r.disabled,"p-invalid":r.invalid,"p-variant-filled":r.variant?r.variant==="filled":n.$primevue.config.inputStyle==="filled"}]},box:"p-checkbox-box",input:"p-checkbox-input",icon:"p-checkbox-icon"},pO=Ld.extend({name:"checkbox",classes:AO}),mO={name:"BaseCheckbox",extends:nl,props:{value:null,modelValue:null,binary:Boolean,name:{type:String,default:null},trueValue:{type:null,default:!0},falseValue:{type:null,default:!1},variant:{type:String,default:null},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},tabindex:{type:Number,default:null},inputId:{type:String,default:null},inputClass:{type:[String,Object],default:null},inputStyle:{type:Object,default:null},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null}},style:pO,provide:function(){return{$parentInstance:this}}};function bO(t){return UO(t)||QO(t)||FO(t)||yO()}function yO(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function FO(t,e){if(t){if(typeof t=="string")return g2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g2(t,e)}}function QO(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function UO(t){if(Array.isArray(t))return g2(t)}function g2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Xy={name:"Checkbox",extends:mO,inheritAttrs:!1,emits:["update:modelValue","change","focus","blur"],methods:{getPTOptions:function(e){var n=e==="root"?this.ptmi:this.ptm;return n(e,{context:{checked:this.checked,disabled:this.disabled}})},onChange:function(e){var n=this;if(!this.disabled&&!this.readonly){var r;this.binary?r=this.checked?this.falseValue:this.trueValue:this.checked?r=this.modelValue.filter(function(i){return!jn.equals(i,n.value)}):r=this.modelValue?[].concat(bO(this.modelValue),[this.value]):[this.value],this.$emit("update:modelValue",r),this.$emit("change",e)}},onFocus:function(e){this.$emit("focus",e)},onBlur:function(e){this.$emit("blur",e)}},computed:{checked:function(){return this.binary?this.modelValue===this.trueValue:jn.contains(this.value,this.modelValue)}},components:{CheckIcon:mh}},RO=["data-p-highlight","data-p-disabled"],BO=["id","value","name","checked","tabindex","disabled","readonly","required","aria-labelledby","aria-label","aria-invalid"];function ZO(t,e,n,r,i,a){var o=Li("CheckIcon");return oe(),Ce("div",Jt({class:t.cx("root")},a.getPTOptions("root"),{"data-p-highlight":a.checked,"data-p-disabled":t.disabled}),[Q("input",Jt({id:t.inputId,type:"checkbox",class:[t.cx("input"),t.inputClass],style:t.inputStyle,value:t.value,name:t.name,checked:a.checked,tabindex:t.tabindex,disabled:t.disabled,readonly:t.readonly,required:t.required,"aria-labelledby":t.ariaLabelledby,"aria-label":t.ariaLabel,"aria-invalid":t.invalid||void 0,onFocus:e[0]||(e[0]=function(){return a.onFocus&&a.onFocus.apply(a,arguments)}),onBlur:e[1]||(e[1]=function(){return a.onBlur&&a.onBlur.apply(a,arguments)}),onChange:e[2]||(e[2]=function(){return a.onChange&&a.onChange.apply(a,arguments)})},a.getPTOptions("input")),null,16,BO),Q("div",Jt({class:t.cx("box")},a.getPTOptions("box")),[Vi(t.$slots,"icon",{checked:a.checked,class:Hr(t.cx("icon"))},function(){return[a.checked?(oe(),Vn(o,Jt({key:0,class:t.cx("icon")},a.getPTOptions("icon")),null,16,["class"])):Pt("",!0)]})],16)],16,RO)}Xy.render=ZO;var P0={name:"ChevronDownIcon",extends:ls},IO=Q("path",{d:"M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z",fill:"currentColor"},null,-1),CO=[IO];function vO(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),CO,16)}P0.render=vO;var NQ={name:"SearchIcon",extends:ls},VO=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z",fill:"currentColor"},null,-1),EO=[VO];function SO(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),EO,16)}NQ.render=SO;var Gp={name:"SpinnerIcon",extends:ls},WO=Q("path",{d:"M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z",fill:"currentColor"},null,-1),NO=[WO];function GO(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),NO,16)}Gp.render=GO;var gh=QE(),JO=` @layer primevue { .p-virtualscroller { position: relative; overflow: auto; contain: strict; transform: translateZ(0); will-change: scroll-position; outline: 0 none; } .p-virtualscroller-content { position: absolute; top: 0; left: 0; /* contain: content; */ min-height: 100%; min-width: 100%; will-change: transform; } .p-virtualscroller-spacer { position: absolute; top: 0; left: 0; height: 1px; width: 1px; transform-origin: 0 0; pointer-events: none; } .p-virtualscroller .p-virtualscroller-loader { position: sticky; top: 0; left: 0; width: 100%; height: 100%; } .p-virtualscroller-loader.p-component-overlay { display: flex; align-items: center; justify-content: center; } .p-virtualscroller-loading-icon { font-size: 2rem; } .p-virtualscroller-loading-icon.p-icon { width: 2rem; height: 2rem; } .p-virtualscroller-horizontal > .p-virtualscroller-content { display: flex; } /* Inline */ .p-virtualscroller-inline .p-virtualscroller-content { position: static; } } `,bZ=Ld.extend({name:"virtualscroller",css:JO}),TO={name:"BaseVirtualScroller",extends:nl,props:{id:{type:String,default:null},style:null,class:null,items:{type:Array,default:null},itemSize:{type:[Number,Array],default:0},scrollHeight:null,scrollWidth:null,orientation:{type:String,default:"vertical"},numToleratedItems:{type:Number,default:null},delay:{type:Number,default:0},resizeDelay:{type:Number,default:10},lazy:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loaderDisabled:{type:Boolean,default:!1},columns:{type:Array,default:null},loading:{type:Boolean,default:!1},showSpacer:{type:Boolean,default:!0},showLoader:{type:Boolean,default:!1},tabindex:{type:Number,default:0},inline:{type:Boolean,default:!1},step:{type:Number,default:0},appendOnly:{type:Boolean,default:!1},autoSize:{type:Boolean,default:!1}},style:bZ,provide:function(){return{$parentInstance:this}},beforeMount:function(){var e;bZ.loadStyle({nonce:(e=this.$primevueConfig)===null||e===void 0||(e=e.csp)===null||e===void 0?void 0:e.nonce})}};function m0(t){"@babel/helpers - typeof";return m0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m0(t)}function yZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Qm(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?yZ(Object(n),!0).forEach(function(r){KE(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):yZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function KE(t,e,n){return e=XO(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function XO(t){var e=kO(t,"string");return m0(e)=="symbol"?e:String(e)}function kO(t,e){if(m0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(m0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var ky={name:"VirtualScroller",extends:TO,inheritAttrs:!1,emits:["update:numToleratedItems","scroll","scroll-index-change","lazy-load"],data:function(){var e=this.isBoth();return{first:e?{rows:0,cols:0}:0,last:e?{rows:0,cols:0}:0,page:e?{rows:0,cols:0}:0,numItemsInViewport:e?{rows:0,cols:0}:0,lastScrollPos:e?{top:0,left:0}:0,d_numToleratedItems:this.numToleratedItems,d_loading:this.loading,loaderArr:[],spacerStyle:{},contentStyle:{}}},element:null,content:null,lastScrollPos:null,scrollTimeout:null,resizeTimeout:null,defaultWidth:0,defaultHeight:0,defaultContentWidth:0,defaultContentHeight:0,isRangeChanged:!1,lazyLoadState:{},resizeListener:null,initialized:!1,watch:{numToleratedItems:function(e){this.d_numToleratedItems=e},loading:function(e,n){this.lazy&&e!==n&&e!==this.d_loading&&(this.d_loading=e)},items:function(e,n){(!n||n.length!==(e||[]).length)&&(this.init(),this.calculateAutoSize())},itemSize:function(){this.init(),this.calculateAutoSize()},orientation:function(){this.lastScrollPos=this.isBoth()?{top:0,left:0}:0},scrollHeight:function(){this.init(),this.calculateAutoSize()},scrollWidth:function(){this.init(),this.calculateAutoSize()}},mounted:function(){this.viewInit(),this.lastScrollPos=this.isBoth()?{top:0,left:0}:0,this.lazyLoadState=this.lazyLoadState||{}},updated:function(){!this.initialized&&this.viewInit()},unmounted:function(){this.unbindResizeListener(),this.initialized=!1},methods:{viewInit:function(){Wn.isVisible(this.element)&&(this.setContentEl(this.content),this.init(),this.calculateAutoSize(),this.bindResizeListener(),this.defaultWidth=Wn.getWidth(this.element),this.defaultHeight=Wn.getHeight(this.element),this.defaultContentWidth=Wn.getWidth(this.content),this.defaultContentHeight=Wn.getHeight(this.content),this.initialized=!0)},init:function(){this.disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize())},isVertical:function(){return this.orientation==="vertical"},isHorizontal:function(){return this.orientation==="horizontal"},isBoth:function(){return this.orientation==="both"},scrollTo:function(e){this.element&&this.element.scrollTo(e)},scrollToIndex:function(e){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"auto",i=this.isBoth(),a=this.isHorizontal(),o=i?e.every(function(B){return B>-1}):e>-1;if(o){var l=this.first,s=this.element,d=s.scrollTop,c=d===void 0?0:d,u=s.scrollLeft,h=u===void 0?0:u,f=this.calculateNumItems(),g=f.numToleratedItems,A=this.getContentPosition(),b=this.itemSize,p=function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,S=arguments.length>1?arguments[1]:void 0;return N<=S?0:N},y=function(N,S,X){return N*S+X},m=function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return n.scrollTo({left:N,top:S,behavior:r})},F=i?{rows:0,cols:0}:0,R=!1,C=!1;i?(F={rows:p(e[0],g[0]),cols:p(e[1],g[1])},m(y(F.cols,b[1],A.left),y(F.rows,b[0],A.top)),C=this.lastScrollPos.top!==c||this.lastScrollPos.left!==h,R=F.rows!==l.rows||F.cols!==l.cols):(F=p(e,g),a?m(y(F,b,A.left),c):m(h,y(F,b,A.top)),C=this.lastScrollPos!==(a?h:c),R=F!==l),this.isRangeChanged=R,C&&(this.first=F)}},scrollInView:function(e,n){var r=this,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"auto";if(n){var a=this.isBoth(),o=this.isHorizontal(),l=a?e.every(function(b){return b>-1}):e>-1;if(l){var s=this.getRenderedRange(),d=s.first,c=s.viewport,u=function(){var p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return r.scrollTo({left:p,top:y,behavior:i})},h=n==="to-start",f=n==="to-end";if(h){if(a)c.first.rows-d.rows>e[0]?u(c.first.cols*this.itemSize[1],(c.first.rows-1)*this.itemSize[0]):c.first.cols-d.cols>e[1]&&u((c.first.cols-1)*this.itemSize[1],c.first.rows*this.itemSize[0]);else if(c.first-d>e){var g=(c.first-1)*this.itemSize;o?u(g,0):u(0,g)}}else if(f){if(a)c.last.rows-d.rows<=e[0]+1?u(c.first.cols*this.itemSize[1],(c.first.rows+1)*this.itemSize[0]):c.last.cols-d.cols<=e[1]+1&&u((c.first.cols+1)*this.itemSize[1],c.first.rows*this.itemSize[0]);else if(c.last-d<=e+1){var A=(c.first+1)*this.itemSize;o?u(A,0):u(0,A)}}}}else this.scrollToIndex(e,i)},getRenderedRange:function(){var e=function(u,h){return Math.floor(u/(h||u))},n=this.first,r=0;if(this.element){var i=this.isBoth(),a=this.isHorizontal(),o=this.element,l=o.scrollTop,s=o.scrollLeft;if(i)n={rows:e(l,this.itemSize[0]),cols:e(s,this.itemSize[1])},r={rows:n.rows+this.numItemsInViewport.rows,cols:n.cols+this.numItemsInViewport.cols};else{var d=a?s:l;n=e(d,this.itemSize),r=n+this.numItemsInViewport}}return{first:this.first,last:this.last,viewport:{first:n,last:r}}},calculateNumItems:function(){var e=this.isBoth(),n=this.isHorizontal(),r=this.itemSize,i=this.getContentPosition(),a=this.element?this.element.offsetWidth-i.left:0,o=this.element?this.element.offsetHeight-i.top:0,l=function(h,f){return Math.ceil(h/(f||h))},s=function(h){return Math.ceil(h/2)},d=e?{rows:l(o,r[0]),cols:l(a,r[1])}:l(n?a:o,r),c=this.d_numToleratedItems||(e?[s(d.rows),s(d.cols)]:s(d));return{numItemsInViewport:d,numToleratedItems:c}},calculateOptions:function(){var e=this,n=this.isBoth(),r=this.first,i=this.calculateNumItems(),a=i.numItemsInViewport,o=i.numToleratedItems,l=function(c,u,h){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;return e.getLast(c+u+(c<h?2:3)*h,f)},s=n?{rows:l(r.rows,a.rows,o[0]),cols:l(r.cols,a.cols,o[1],!0)}:l(r,a,o);this.last=s,this.numItemsInViewport=a,this.d_numToleratedItems=o,this.$emit("update:numToleratedItems",this.d_numToleratedItems),this.showLoader&&(this.loaderArr=n?Array.from({length:a.rows}).map(function(){return Array.from({length:a.cols})}):Array.from({length:a})),this.lazy&&Promise.resolve().then(function(){var d;e.lazyLoadState={first:e.step?n?{rows:0,cols:r.cols}:0:r,last:Math.min(e.step?e.step:s,((d=e.items)===null||d===void 0?void 0:d.length)||0)},e.$emit("lazy-load",e.lazyLoadState)})},calculateAutoSize:function(){var e=this;this.autoSize&&!this.d_loading&&Promise.resolve().then(function(){if(e.content){var n=e.isBoth(),r=e.isHorizontal(),i=e.isVertical();e.content.style.minHeight=e.content.style.minWidth="auto",e.content.style.position="relative",e.element.style.contain="none";var a=[Wn.getWidth(e.element),Wn.getHeight(e.element)],o=a[0],l=a[1];(n||r)&&(e.element.style.width=o<e.defaultWidth?o+"px":e.scrollWidth||e.defaultWidth+"px"),(n||i)&&(e.element.style.height=l<e.defaultHeight?l+"px":e.scrollHeight||e.defaultHeight+"px"),e.content.style.minHeight=e.content.style.minWidth="",e.content.style.position="",e.element.style.contain=""}})},getLast:function(){var e,n,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1?arguments[1]:void 0;return this.items?Math.min(i?((e=this.columns||this.items[0])===null||e===void 0?void 0:e.length)||0:((n=this.items)===null||n===void 0?void 0:n.length)||0,r):0},getContentPosition:function(){if(this.content){var e=getComputedStyle(this.content),n=parseFloat(e.paddingLeft)+Math.max(parseFloat(e.left)||0,0),r=parseFloat(e.paddingRight)+Math.max(parseFloat(e.right)||0,0),i=parseFloat(e.paddingTop)+Math.max(parseFloat(e.top)||0,0),a=parseFloat(e.paddingBottom)+Math.max(parseFloat(e.bottom)||0,0);return{left:n,right:r,top:i,bottom:a,x:n+r,y:i+a}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},setSize:function(){var e=this;if(this.element){var n=this.isBoth(),r=this.isHorizontal(),i=this.element.parentElement,a=this.scrollWidth||"".concat(this.element.offsetWidth||i.offsetWidth,"px"),o=this.scrollHeight||"".concat(this.element.offsetHeight||i.offsetHeight,"px"),l=function(d,c){return e.element.style[d]=c};n||r?(l("height",o),l("width",a)):l("height",o)}},setSpacerSize:function(){var e=this,n=this.items;if(n){var r=this.isBoth(),i=this.isHorizontal(),a=this.getContentPosition(),o=function(s,d,c){var u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;return e.spacerStyle=Qm(Qm({},e.spacerStyle),KE({},"".concat(s),(d||[]).length*c+u+"px"))};r?(o("height",n,this.itemSize[0],a.y),o("width",this.columns||n[1],this.itemSize[1],a.x)):i?o("width",this.columns||n,this.itemSize,a.x):o("height",n,this.itemSize,a.y)}},setContentPosition:function(e){var n=this;if(this.content&&!this.appendOnly){var r=this.isBoth(),i=this.isHorizontal(),a=e?e.first:this.first,o=function(c,u){return c*u},l=function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return n.contentStyle=Qm(Qm({},n.contentStyle),{transform:"translate3d(".concat(c,"px, ").concat(u,"px, 0)")})};if(r)l(o(a.cols,this.itemSize[1]),o(a.rows,this.itemSize[0]));else{var s=o(a,this.itemSize);i?l(s,0):l(0,s)}}},onScrollPositionChange:function(e){var n=this,r=e.target,i=this.isBoth(),a=this.isHorizontal(),o=this.getContentPosition(),l=function(J,E){return J?J>E?J-E:J:0},s=function(J,E){return Math.floor(J/(E||J))},d=function(J,E,v,j,H,K){return J<=H?H:K?v-j-H:E+H-1},c=function(J,E,v,j,H,K,Fe){return J<=K?0:Math.max(0,Fe?J<E?v:J-K:J>E?v:J-2*K)},u=function(J,E,v,j,H,K){var Fe=E+j+2*H;return J>=H&&(Fe+=H+1),n.getLast(Fe,K)},h=l(r.scrollTop,o.top),f=l(r.scrollLeft,o.left),g=i?{rows:0,cols:0}:0,A=this.last,b=!1,p=this.lastScrollPos;if(i){var y=this.lastScrollPos.top<=h,m=this.lastScrollPos.left<=f;if(!this.appendOnly||this.appendOnly&&(y||m)){var F={rows:s(h,this.itemSize[0]),cols:s(f,this.itemSize[1])},R={rows:d(F.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],y),cols:d(F.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],m)};g={rows:c(F.rows,R.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],y),cols:c(F.cols,R.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],m)},A={rows:u(F.rows,g.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:u(F.cols,g.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},b=g.rows!==this.first.rows||A.rows!==this.last.rows||g.cols!==this.first.cols||A.cols!==this.last.cols||this.isRangeChanged,p={top:h,left:f}}}else{var C=a?f:h,B=this.lastScrollPos<=C;if(!this.appendOnly||this.appendOnly&&B){var N=s(C,this.itemSize),S=d(N,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,B);g=c(N,S,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,B),A=u(N,g,this.last,this.numItemsInViewport,this.d_numToleratedItems),b=g!==this.first||A!==this.last||this.isRangeChanged,p=C}}return{first:g,last:A,isRangeChanged:b,scrollPos:p}},onScrollChange:function(e){var n=this.onScrollPositionChange(e),r=n.first,i=n.last,a=n.isRangeChanged,o=n.scrollPos;if(a){var l={first:r,last:i};if(this.setContentPosition(l),this.first=r,this.last=i,this.lastScrollPos=o,this.$emit("scroll-index-change",l),this.lazy&&this.isPageChanged(r)){var s,d,c={first:this.step?Math.min(this.getPageByFirst(r)*this.step,(((s=this.items)===null||s===void 0?void 0:s.length)||0)-this.step):r,last:Math.min(this.step?(this.getPageByFirst(r)+1)*this.step:i,((d=this.items)===null||d===void 0?void 0:d.length)||0)},u=this.lazyLoadState.first!==c.first||this.lazyLoadState.last!==c.last;u&&this.$emit("lazy-load",c),this.lazyLoadState=c}}},onScroll:function(e){var n=this;if(this.$emit("scroll",e),this.delay){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),this.isPageChanged()){if(!this.d_loading&&this.showLoader){var r=this.onScrollPositionChange(e),i=r.isRangeChanged,a=i||(this.step?this.isPageChanged():!1);a&&(this.d_loading=!0)}this.scrollTimeout=setTimeout(function(){n.onScrollChange(e),n.d_loading&&n.showLoader&&(!n.lazy||n.loading===void 0)&&(n.d_loading=!1,n.page=n.getPageByFirst())},this.delay)}}else this.onScrollChange(e)},onResize:function(){var e=this;this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(function(){if(Wn.isVisible(e.element)){var n=e.isBoth(),r=e.isVertical(),i=e.isHorizontal(),a=[Wn.getWidth(e.element),Wn.getHeight(e.element)],o=a[0],l=a[1],s=o!==e.defaultWidth,d=l!==e.defaultHeight,c=n?s||d:i?s:r?d:!1;c&&(e.d_numToleratedItems=e.numToleratedItems,e.defaultWidth=o,e.defaultHeight=l,e.defaultContentWidth=Wn.getWidth(e.content),e.defaultContentHeight=Wn.getHeight(e.content),e.init())}},this.resizeDelay)},bindResizeListener:function(){this.resizeListener||(this.resizeListener=this.onResize.bind(this),window.addEventListener("resize",this.resizeListener),window.addEventListener("orientationchange",this.resizeListener))},unbindResizeListener:function(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),window.removeEventListener("orientationchange",this.resizeListener),this.resizeListener=null)},getOptions:function(e){var n=(this.items||[]).length,r=this.isBoth()?this.first.rows+e:this.first+e;return{index:r,count:n,first:r===0,last:r===n-1,even:r%2===0,odd:r%2!==0}},getLoaderOptions:function(e,n){var r=this.loaderArr.length;return Qm({index:e,count:r,first:e===0,last:e===r-1,even:e%2===0,odd:e%2!==0},n)},getPageByFirst:function(e){return Math.floor(((e??this.first)+this.d_numToleratedItems*4)/(this.step||1))},isPageChanged:function(e){return this.step?this.page!==this.getPageByFirst(e??this.first):!0},setContentEl:function(e){this.content=e||this.content||Wn.findSingle(this.element,'[data-pc-section="content"]')},elementRef:function(e){this.element=e},contentRef:function(e){this.content=e}},computed:{containerClass:function(){return["p-virtualscroller",this.class,{"p-virtualscroller-inline":this.inline,"p-virtualscroller-both p-both-scroll":this.isBoth(),"p-virtualscroller-horizontal p-horizontal-scroll":this.isHorizontal()}]},contentClass:function(){return["p-virtualscroller-content",{"p-virtualscroller-loading":this.d_loading}]},loaderClass:function(){return["p-virtualscroller-loader",{"p-component-overlay":!this.$slots.loader}]},loadedItems:function(){var e=this;return this.items&&!this.d_loading?this.isBoth()?this.items.slice(this.appendOnly?0:this.first.rows,this.last.rows).map(function(n){return e.columns?n:n.slice(e.appendOnly?0:e.first.cols,e.last.cols)}):this.isHorizontal()&&this.columns?this.items:this.items.slice(this.appendOnly?0:this.first,this.last):[]},loadedRows:function(){return this.d_loading?this.loaderDisabled?this.loaderArr:[]:this.loadedItems},loadedColumns:function(){if(this.columns){var e=this.isBoth(),n=this.isHorizontal();if(e||n)return this.d_loading&&this.loaderDisabled?e?this.loaderArr[0]:this.loaderArr:this.columns.slice(e?this.first.cols:this.first,e?this.last.cols:this.last)}return this.columns}},components:{SpinnerIcon:Gp}},wO=["tabindex"];function YO(t,e,n,r,i,a){var o=Li("SpinnerIcon");return t.disabled?(oe(),Ce(Er,{key:1},[Vi(t.$slots,"default"),Vi(t.$slots,"content",{items:t.items,rows:t.items,columns:a.loadedColumns})],64)):(oe(),Ce("div",Jt({key:0,ref:a.elementRef,class:a.containerClass,tabindex:t.tabindex,style:t.style,onScroll:e[0]||(e[0]=function(){return a.onScroll&&a.onScroll.apply(a,arguments)})},t.ptmi("root")),[Vi(t.$slots,"content",{styleClass:a.contentClass,items:a.loadedItems,getItemOptions:a.getOptions,loading:i.d_loading,getLoaderOptions:a.getLoaderOptions,itemSize:t.itemSize,rows:a.loadedRows,columns:a.loadedColumns,contentRef:a.contentRef,spacerStyle:i.spacerStyle,contentStyle:i.contentStyle,vertical:a.isVertical(),horizontal:a.isHorizontal(),both:a.isBoth()},function(){return[Q("div",Jt({ref:a.contentRef,class:a.contentClass,style:i.contentStyle},t.ptm("content")),[(oe(!0),Ce(Er,null,ia(a.loadedItems,function(l,s){return Vi(t.$slots,"item",{key:s,item:l,options:a.getOptions(s)})}),128))],16)]}),t.showSpacer?(oe(),Ce("div",Jt({key:0,class:"p-virtualscroller-spacer",style:i.spacerStyle},t.ptm("spacer")),null,16)):Pt("",!0),!t.loaderDisabled&&t.showLoader&&i.d_loading?(oe(),Ce("div",Jt({key:1,class:a.loaderClass},t.ptm("loader")),[t.$slots&&t.$slots.loader?(oe(!0),Ce(Er,{key:0},ia(i.loaderArr,function(l,s){return Vi(t.$slots,"loader",{key:s,options:a.getLoaderOptions(s,a.isBoth()&&{numCols:t.d_numItemsInViewport.cols})})}),128)):Pt("",!0),Vi(t.$slots,"loadingicon",{},function(){return[Fn(o,Jt({spin:"",class:"p-virtualscroller-loading-icon"},t.ptm("loadingIcon")),null,16)]})],16)):Pt("",!0)],16,wO))}ky.render=YO;var DO={root:function(e){var n=e.props;return{position:n.appendTo==="self"?"relative":void 0}}},MO={root:function(e){var n=e.instance,r=e.props;return["p-multiselect p-component p-inputwrapper",{"p-multiselect-chip":r.display==="chip","p-disabled":r.disabled,"p-invalid":r.invalid,"p-variant-filled":r.variant?r.variant==="filled":n.$primevue.config.inputStyle==="filled","p-focus":n.focused,"p-inputwrapper-filled":r.modelValue&&r.modelValue.length,"p-inputwrapper-focus":n.focused||n.overlayVisible,"p-overlay-open":n.overlayVisible}]},labelContainer:"p-multiselect-label-container",label:function(e){var n=e.instance,r=e.props;return["p-multiselect-label",{"p-placeholder":n.label===r.placeholder,"p-multiselect-label-empty":!r.placeholder&&(!r.modelValue||r.modelValue.length===0)}]},token:"p-multiselect-token",tokenLabel:"p-multiselect-token-label",removeTokenIcon:"p-multiselect-token-icon",trigger:"p-multiselect-trigger",loadingIcon:"p-multiselect-trigger-icon",dropdownIcon:"p-multiselect-trigger-icon",panel:function(e){e.props;var n=e.instance;return["p-multiselect-panel p-component",{"p-ripple-disabled":n.$primevue.config.ripple===!1}]},header:"p-multiselect-header",filterContainer:"p-multiselect-filter-container",filterInput:function(e){var n=e.props,r=e.instance;return["p-multiselect-filter p-inputtext p-component",{"p-variant-filled":n.variant?n.variant==="filled":r.$primevue.config.inputStyle==="filled"}]},filterIcon:"p-multiselect-filter-icon",closeButton:"p-multiselect-close p-link",closeIcon:"p-multiselect-close-icon",wrapper:"p-multiselect-items-wrapper",list:"p-multiselect-items p-component",itemGroup:"p-multiselect-item-group",item:function(e){var n=e.instance,r=e.option,i=e.index,a=e.getItemOptions,o=e.props;return["p-multiselect-item",{"p-highlight":n.isSelected(r)&&o.highlightOnSelect,"p-focus":n.focusedOptionIndex===n.getOptionIndex(i,a),"p-disabled":n.isOptionDisabled(r)}]},emptyMessage:"p-multiselect-empty-message"},LO=Ld.extend({name:"multiselect",classes:MO,inlineStyles:DO}),HO={name:"BaseMultiSelect",extends:nl,props:{modelValue:null,options:Array,optionLabel:null,optionValue:null,optionDisabled:null,optionGroupLabel:null,optionGroupChildren:null,scrollHeight:{type:String,default:"200px"},placeholder:String,variant:{type:String,default:null},invalid:{type:Boolean,default:!1},disabled:Boolean,inputId:{type:String,default:null},inputProps:{type:null,default:null},panelClass:{type:String,default:null},panelStyle:{type:null,default:null},panelProps:{type:null,default:null},filterInputProps:{type:null,default:null},closeButtonProps:{type:null,default:null},dataKey:null,filter:Boolean,filterPlaceholder:String,filterLocale:String,filterMatchMode:{type:String,default:"contains"},filterFields:{type:Array,default:null},appendTo:{type:[String,Object],default:"body"},display:{type:String,default:"comma"},selectedItemsLabel:{type:String,default:"{0} items selected"},maxSelectedLabels:{type:Number,default:null},selectionLimit:{type:Number,default:null},showToggleAll:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},checkboxIcon:{type:String,default:void 0},closeIcon:{type:String,default:void 0},dropdownIcon:{type:String,default:void 0},filterIcon:{type:String,default:void 0},loadingIcon:{type:String,default:void 0},removeTokenIcon:{type:String,default:void 0},selectAll:{type:Boolean,default:null},resetFilterOnHide:{type:Boolean,default:!1},virtualScrollerOptions:{type:Object,default:null},autoOptionFocus:{type:Boolean,default:!1},autoFilterFocus:{type:Boolean,default:!1},focusOnHover:{type:Boolean,default:!0},highlightOnSelect:{type:Boolean,default:!1},filterMessage:{type:String,default:null},selectionMessage:{type:String,default:null},emptySelectionMessage:{type:String,default:null},emptyFilterMessage:{type:String,default:null},emptyMessage:{type:String,default:null},tabindex:{type:Number,default:0},ariaLabel:{type:String,default:null},ariaLabelledby:{type:String,default:null}},style:LO,provide:function(){return{$parentInstance:this}}};function b0(t){"@babel/helpers - typeof";return b0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b0(t)}function FZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function QZ(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?FZ(Object(n),!0).forEach(function(r){PE(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):FZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function PE(t,e,n){return e=xO(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function xO(t){var e=OO(t,"string");return b0(e)=="symbol"?e:String(e)}function OO(t,e){if(b0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(b0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function UZ(t){return jO(t)||zO(t)||PO(t)||KO()}function KO(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function PO(t,e){if(t){if(typeof t=="string")return A2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return A2(t,e)}}function zO(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function jO(t){if(Array.isArray(t))return A2(t)}function A2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var zE={name:"MultiSelect",extends:HO,inheritAttrs:!1,emits:["update:modelValue","change","focus","blur","before-show","before-hide","show","hide","filter","selectall-change"],outsideClickListener:null,scrollHandler:null,resizeListener:null,overlay:null,list:null,virtualScroller:null,startRangeIndex:-1,searchTimeout:null,searchValue:"",selectOnFocus:!1,data:function(){return{id:this.$attrs.id,clicked:!1,focused:!1,focusedOptionIndex:-1,filterValue:null,overlayVisible:!1}},watch:{"$attrs.id":function(e){this.id=e||Nu()},options:function(){this.autoUpdateModel()}},mounted:function(){this.id=this.id||Nu(),this.autoUpdateModel()},beforeUnmount:function(){this.unbindOutsideClickListener(),this.unbindResizeListener(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.overlay&&(xu.clear(this.overlay),this.overlay=null)},methods:{getOptionIndex:function(e,n){return this.virtualScrollerDisabled?e:n&&n(e).index},getOptionLabel:function(e){return this.optionLabel?jn.resolveFieldData(e,this.optionLabel):e},getOptionValue:function(e){return this.optionValue?jn.resolveFieldData(e,this.optionValue):e},getOptionRenderKey:function(e,n){return this.dataKey?jn.resolveFieldData(e,this.dataKey):this.getOptionLabel(e)+"_".concat(n)},getHeaderCheckboxPTOptions:function(e){return this.ptm(e,{context:{selected:this.allSelected}})},getCheckboxPTOptions:function(e,n,r,i){return this.ptm(i,{context:{selected:this.isSelected(e),focused:this.focusedOptionIndex===this.getOptionIndex(r,n),disabled:this.isOptionDisabled(e)}})},isOptionDisabled:function(e){return this.maxSelectionLimitReached&&!this.isSelected(e)?!0:this.optionDisabled?jn.resolveFieldData(e,this.optionDisabled):!1},isOptionGroup:function(e){return this.optionGroupLabel&&e.optionGroup&&e.group},getOptionGroupLabel:function(e){return jn.resolveFieldData(e,this.optionGroupLabel)},getOptionGroupChildren:function(e){return jn.resolveFieldData(e,this.optionGroupChildren)},getAriaPosInset:function(e){var n=this;return(this.optionGroupLabel?e-this.visibleOptions.slice(0,e).filter(function(r){return n.isOptionGroup(r)}).length:e)+1},show:function(e){this.$emit("before-show"),this.overlayVisible=!0,this.focusedOptionIndex=this.focusedOptionIndex!==-1?this.focusedOptionIndex:this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.findSelectedOptionIndex(),e&&Wn.focus(this.$refs.focusInput)},hide:function(e){var n=this,r=function(){n.$emit("before-hide"),n.overlayVisible=!1,n.clicked=!1,n.focusedOptionIndex=-1,n.searchValue="",n.resetFilterOnHide&&(n.filterValue=null),e&&Wn.focus(n.$refs.focusInput)};setTimeout(function(){r()},0)},onFocus:function(e){this.disabled||(this.focused=!0,this.overlayVisible&&(this.focusedOptionIndex=this.focusedOptionIndex!==-1?this.focusedOptionIndex:this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.findSelectedOptionIndex(),this.scrollInView(this.focusedOptionIndex)),this.$emit("focus",e))},onBlur:function(e){this.clicked=!1,this.focused=!1,this.focusedOptionIndex=-1,this.searchValue="",this.$emit("blur",e)},onKeyDown:function(e){var n=this;if(this.disabled){e.preventDefault();return}var r=e.metaKey||e.ctrlKey;switch(e.code){case"ArrowDown":this.onArrowDownKey(e);break;case"ArrowUp":this.onArrowUpKey(e);break;case"Home":this.onHomeKey(e);break;case"End":this.onEndKey(e);break;case"PageDown":this.onPageDownKey(e);break;case"PageUp":this.onPageUpKey(e);break;case"Enter":case"NumpadEnter":case"Space":this.onEnterKey(e);break;case"Escape":this.onEscapeKey(e);break;case"Tab":this.onTabKey(e);break;case"ShiftLeft":case"ShiftRight":this.onShiftKey(e);break;default:if(e.code==="KeyA"&&r){var i=this.visibleOptions.filter(function(a){return n.isValidOption(a)}).map(function(a){return n.getOptionValue(a)});this.updateModel(e,i),e.preventDefault();break}!r&&jn.isPrintableCharacter(e.key)&&(!this.overlayVisible&&this.show(),this.searchOptions(e),e.preventDefault());break}this.clicked=!1},onContainerClick:function(e){this.disabled||this.loading||((!this.overlay||!this.overlay.contains(e.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.clicked=!0)},onFirstHiddenFocus:function(e){var n=e.relatedTarget===this.$refs.focusInput?Wn.getFirstFocusableElement(this.overlay,':not([data-p-hidden-focusable="true"])'):this.$refs.focusInput;Wn.focus(n)},onLastHiddenFocus:function(e){var n=e.relatedTarget===this.$refs.focusInput?Wn.getLastFocusableElement(this.overlay,':not([data-p-hidden-focusable="true"])'):this.$refs.focusInput;Wn.focus(n)},onCloseClick:function(){this.hide(!0)},onOptionSelect:function(e,n){var r=this,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!(this.disabled||this.isOptionDisabled(n))){var o=this.isSelected(n),l=null;o?l=this.modelValue.filter(function(s){return!jn.equals(s,r.getOptionValue(n),r.equalityKey)}):l=[].concat(UZ(this.modelValue||[]),[this.getOptionValue(n)]),this.updateModel(e,l),i!==-1&&(this.focusedOptionIndex=i),a&&Wn.focus(this.$refs.focusInput)}},onOptionMouseMove:function(e,n){this.focusOnHover&&this.changeFocusedOptionIndex(e,n)},onOptionSelectRange:function(e){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;if(r===-1&&(r=this.findNearestSelectedOptionIndex(i,!0)),i===-1&&(i=this.findNearestSelectedOptionIndex(r)),r!==-1&&i!==-1){var a=Math.min(r,i),o=Math.max(r,i),l=this.visibleOptions.slice(a,o+1).filter(function(s){return n.isValidOption(s)}).map(function(s){return n.getOptionValue(s)});this.updateModel(e,l)}},onFilterChange:function(e){var n=e.target.value;this.filterValue=n,this.focusedOptionIndex=-1,this.$emit("filter",{originalEvent:e,value:n}),!this.virtualScrollerDisabled&&this.virtualScroller.scrollToIndex(0)},onFilterKeyDown:function(e){switch(e.code){case"ArrowDown":this.onArrowDownKey(e);break;case"ArrowUp":this.onArrowUpKey(e,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(e,!0);break;case"Home":this.onHomeKey(e,!0);break;case"End":this.onEndKey(e,!0);break;case"Enter":case"NumpadEnter":this.onEnterKey(e);break;case"Escape":this.onEscapeKey(e);break;case"Tab":this.onTabKey(e,!0);break}},onFilterBlur:function(){this.focusedOptionIndex=-1},onFilterUpdated:function(){this.overlayVisible&&this.alignOverlay()},onOverlayClick:function(e){gh.emit("overlay-click",{originalEvent:e,target:this.$el})},onOverlayKeyDown:function(e){switch(e.code){case"Escape":this.onEscapeKey(e);break}},onArrowDownKey:function(e){if(!this.overlayVisible)this.show();else{var n=this.focusedOptionIndex!==-1?this.findNextOptionIndex(this.focusedOptionIndex):this.clicked?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();e.shiftKey&&this.onOptionSelectRange(e,this.startRangeIndex,n),this.changeFocusedOptionIndex(e,n)}e.preventDefault()},onArrowUpKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.altKey&&!n)this.focusedOptionIndex!==-1&&this.onOptionSelect(e,this.visibleOptions[this.focusedOptionIndex]),this.overlayVisible&&this.hide(),e.preventDefault();else{var r=this.focusedOptionIndex!==-1?this.findPrevOptionIndex(this.focusedOptionIndex):this.clicked?this.findLastOptionIndex():this.findLastFocusedOptionIndex();e.shiftKey&&this.onOptionSelectRange(e,r,this.startRangeIndex),this.changeFocusedOptionIndex(e,r),!this.overlayVisible&&this.show(),e.preventDefault()}},onArrowLeftKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n&&(this.focusedOptionIndex=-1)},onHomeKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(n){var r=e.currentTarget;e.shiftKey?r.setSelectionRange(0,e.target.selectionStart):(r.setSelectionRange(0,0),this.focusedOptionIndex=-1)}else{var i=e.metaKey||e.ctrlKey,a=this.findFirstOptionIndex();e.shiftKey&&i&&this.onOptionSelectRange(e,a,this.startRangeIndex),this.changeFocusedOptionIndex(e,a),!this.overlayVisible&&this.show()}e.preventDefault()},onEndKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(n){var r=e.currentTarget;if(e.shiftKey)r.setSelectionRange(e.target.selectionStart,r.value.length);else{var i=r.value.length;r.setSelectionRange(i,i),this.focusedOptionIndex=-1}}else{var a=e.metaKey||e.ctrlKey,o=this.findLastOptionIndex();e.shiftKey&&a&&this.onOptionSelectRange(e,this.startRangeIndex,o),this.changeFocusedOptionIndex(e,o),!this.overlayVisible&&this.show()}e.preventDefault()},onPageUpKey:function(e){this.scrollInView(0),e.preventDefault()},onPageDownKey:function(e){this.scrollInView(this.visibleOptions.length-1),e.preventDefault()},onEnterKey:function(e){this.overlayVisible?this.focusedOptionIndex!==-1&&(e.shiftKey?this.onOptionSelectRange(e,this.focusedOptionIndex):this.onOptionSelect(e,this.visibleOptions[this.focusedOptionIndex])):(this.focusedOptionIndex=-1,this.onArrowDownKey(e)),e.preventDefault()},onEscapeKey:function(e){this.overlayVisible&&this.hide(!0),e.preventDefault()},onTabKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n||(this.overlayVisible&&this.hasFocusableElements()?(Wn.focus(e.shiftKey?this.$refs.lastHiddenFocusableElementOnOverlay:this.$refs.firstHiddenFocusableElementOnOverlay),e.preventDefault()):(this.focusedOptionIndex!==-1&&this.onOptionSelect(e,this.visibleOptions[this.focusedOptionIndex]),this.overlayVisible&&this.hide(this.filter)))},onShiftKey:function(){this.startRangeIndex=this.focusedOptionIndex},onOverlayEnter:function(e){xu.set("overlay",e,this.$primevue.config.zIndex.overlay),Wn.addStyles(e,{position:"absolute",top:"0",left:"0"}),this.alignOverlay(),this.scrollInView(),this.autoFilterFocus&&Wn.focus(this.$refs.filterInput)},onOverlayAfterEnter:function(){this.bindOutsideClickListener(),this.bindScrollListener(),this.bindResizeListener(),this.$emit("show")},onOverlayLeave:function(){this.unbindOutsideClickListener(),this.unbindScrollListener(),this.unbindResizeListener(),this.$emit("hide"),this.overlay=null},onOverlayAfterLeave:function(e){xu.clear(e)},alignOverlay:function(){this.appendTo==="self"?Wn.relativePosition(this.overlay,this.$el):(this.overlay.style.minWidth=Wn.getOuterWidth(this.$el)+"px",Wn.absolutePosition(this.overlay,this.$el))},bindOutsideClickListener:function(){var e=this;this.outsideClickListener||(this.outsideClickListener=function(n){e.overlayVisible&&e.isOutsideClicked(n)&&e.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener:function(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindScrollListener:function(){var e=this;this.scrollHandler||(this.scrollHandler=new ZQ(this.$refs.container,function(){e.overlayVisible&&e.hide()})),this.scrollHandler.bindScrollListener()},unbindScrollListener:function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},bindResizeListener:function(){var e=this;this.resizeListener||(this.resizeListener=function(){e.overlayVisible&&!Wn.isTouchDevice()&&e.hide()},window.addEventListener("resize",this.resizeListener))},unbindResizeListener:function(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isOutsideClicked:function(e){return!(this.$el.isSameNode(e.target)||this.$el.contains(e.target)||this.overlay&&this.overlay.contains(e.target))},getLabelByValue:function(e){var n=this,r=this.optionGroupLabel?this.flatOptions(this.options):this.options||[],i=r.find(function(a){return!n.isOptionGroup(a)&&jn.equals(n.getOptionValue(a),e,n.equalityKey)});return i?this.getOptionLabel(i):null},getSelectedItemsLabel:function(){var e=/{(.*?)}/,n=this.selectedItemsLabel||this.$primevue.config.locale.selectionMessage;return e.test(n)?n.replace(n.match(e)[0],this.modelValue.length+""):n},onToggleAll:function(e){var n=this;if(this.selectAll!==null)this.$emit("selectall-change",{originalEvent:e,checked:!this.allSelected});else{var r=this.allSelected?[]:this.visibleOptions.filter(function(i){return n.isValidOption(i)}).map(function(i){return n.getOptionValue(i)});this.updateModel(e,r)}},removeOption:function(e,n){var r=this,i=this.modelValue.filter(function(a){return!jn.equals(a,n,r.equalityKey)});this.updateModel(e,i)},clearFilter:function(){this.filterValue=null},hasFocusableElements:function(){return Wn.getFocusableElements(this.overlay,':not([data-p-hidden-focusable="true"])').length>0},isOptionMatched:function(e){var n;return this.isValidOption(e)&&((n=this.getOptionLabel(e))===null||n===void 0?void 0:n.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)))},isValidOption:function(e){return jn.isNotEmpty(e)&&!(this.isOptionDisabled(e)||this.isOptionGroup(e))},isValidSelectedOption:function(e){return this.isValidOption(e)&&this.isSelected(e)},isEquals:function(e,n){return jn.equals(e,n,this.equalityKey)},isSelected:function(e){var n=this,r=this.getOptionValue(e);return(this.modelValue||[]).some(function(i){return n.isEquals(i,r)})},findFirstOptionIndex:function(){var e=this;return this.visibleOptions.findIndex(function(n){return e.isValidOption(n)})},findLastOptionIndex:function(){var e=this;return jn.findLastIndex(this.visibleOptions,function(n){return e.isValidOption(n)})},findNextOptionIndex:function(e){var n=this,r=e<this.visibleOptions.length-1?this.visibleOptions.slice(e+1).findIndex(function(i){return n.isValidOption(i)}):-1;return r>-1?r+e+1:e},findPrevOptionIndex:function(e){var n=this,r=e>0?jn.findLastIndex(this.visibleOptions.slice(0,e),function(i){return n.isValidOption(i)}):-1;return r>-1?r:e},findSelectedOptionIndex:function(){var e=this;if(this.hasSelectedOption){for(var n=function(){var o=e.modelValue[i],l=e.visibleOptions.findIndex(function(s){return e.isValidSelectedOption(s)&&e.isEquals(o,e.getOptionValue(s))});if(l>-1)return{v:l}},r,i=this.modelValue.length-1;i>=0;i--)if(r=n(),r)return r.v}return-1},findFirstSelectedOptionIndex:function(){var e=this;return this.hasSelectedOption?this.visibleOptions.findIndex(function(n){return e.isValidSelectedOption(n)}):-1},findLastSelectedOptionIndex:function(){var e=this;return this.hasSelectedOption?jn.findLastIndex(this.visibleOptions,function(n){return e.isValidSelectedOption(n)}):-1},findNextSelectedOptionIndex:function(e){var n=this,r=this.hasSelectedOption&&e<this.visibleOptions.length-1?this.visibleOptions.slice(e+1).findIndex(function(i){return n.isValidSelectedOption(i)}):-1;return r>-1?r+e+1:-1},findPrevSelectedOptionIndex:function(e){var n=this,r=this.hasSelectedOption&&e>0?jn.findLastIndex(this.visibleOptions.slice(0,e),function(i){return n.isValidSelectedOption(i)}):-1;return r>-1?r:-1},findNearestSelectedOptionIndex:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=-1;return this.hasSelectedOption&&(n?(r=this.findPrevSelectedOptionIndex(e),r=r===-1?this.findNextSelectedOptionIndex(e):r):(r=this.findNextSelectedOptionIndex(e),r=r===-1?this.findPrevSelectedOptionIndex(e):r)),r>-1?r:e},findFirstFocusedOptionIndex:function(){var e=this.findSelectedOptionIndex();return e<0?this.findFirstOptionIndex():e},findLastFocusedOptionIndex:function(){var e=this.findSelectedOptionIndex();return e<0?this.findLastOptionIndex():e},searchOptions:function(e){var n=this;this.searchValue=(this.searchValue||"")+e.key;var r=-1;jn.isNotEmpty(this.searchValue)&&(this.focusedOptionIndex!==-1?(r=this.visibleOptions.slice(this.focusedOptionIndex).findIndex(function(i){return n.isOptionMatched(i)}),r=r===-1?this.visibleOptions.slice(0,this.focusedOptionIndex).findIndex(function(i){return n.isOptionMatched(i)}):r+this.focusedOptionIndex):r=this.visibleOptions.findIndex(function(i){return n.isOptionMatched(i)}),r===-1&&this.focusedOptionIndex===-1&&(r=this.findFirstFocusedOptionIndex()),r!==-1&&this.changeFocusedOptionIndex(e,r)),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(function(){n.searchValue="",n.searchTimeout=null},500)},changeFocusedOptionIndex:function(e,n){this.focusedOptionIndex!==n&&(this.focusedOptionIndex=n,this.scrollInView(),this.selectOnFocus&&this.onOptionSelect(e,this.visibleOptions[n]))},scrollInView:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;this.$nextTick(function(){var r=n!==-1?"".concat(e.id,"_").concat(n):e.focusedOptionId,i=Wn.findSingle(e.list,'li[id="'.concat(r,'"]'));i?i.scrollIntoView&&i.scrollIntoView({block:"nearest",inline:"nearest"}):e.virtualScrollerDisabled||e.virtualScroller&&e.virtualScroller.scrollToIndex(n!==-1?n:e.focusedOptionIndex)})},autoUpdateModel:function(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption){this.focusedOptionIndex=this.findFirstFocusedOptionIndex();var e=this.getOptionValue(this.visibleOptions[this.focusedOptionIndex]);this.updateModel(null,[e])}},updateModel:function(e,n){this.$emit("update:modelValue",n),this.$emit("change",{originalEvent:e,value:n})},flatOptions:function(e){var n=this;return(e||[]).reduce(function(r,i,a){r.push({optionGroup:i,group:!0,index:a});var o=n.getOptionGroupChildren(i);return o&&o.forEach(function(l){return r.push(l)}),r},[])},overlayRef:function(e){this.overlay=e},listRef:function(e,n){this.list=e,n&&n(e)},virtualScrollerRef:function(e){this.virtualScroller=e}},computed:{visibleOptions:function(){var e=this,n=this.optionGroupLabel?this.flatOptions(this.options):this.options||[];if(this.filterValue){var r=iy.filter(n,this.searchFields,this.filterValue,this.filterMatchMode,this.filterLocale);if(this.optionGroupLabel){var i=this.options||[],a=[];return i.forEach(function(o){var l=e.getOptionGroupChildren(o),s=l.filter(function(d){return r.includes(d)});s.length>0&&a.push(QZ(QZ({},o),{},PE({},typeof e.optionGroupChildren=="string"?e.optionGroupChildren:"items",UZ(s))))}),this.flatOptions(a)}return r}return n},label:function(){var e;if(this.modelValue&&this.modelValue.length){if(jn.isNotEmpty(this.maxSelectedLabels)&&this.modelValue.length>this.maxSelectedLabels)return this.getSelectedItemsLabel();e="";for(var n=0;n<this.modelValue.length;n++)n!==0&&(e+=", "),e+=this.getLabelByValue(this.modelValue[n])}else e=this.placeholder;return e},chipSelectedItems:function(){return jn.isNotEmpty(this.maxSelectedLabels)&&this.modelValue&&this.modelValue.length>this.maxSelectedLabels?this.modelValue.slice(0,this.maxSelectedLabels):this.modelValue},allSelected:function(){var e=this;return this.selectAll!==null?this.selectAll:jn.isNotEmpty(this.visibleOptions)&&this.visibleOptions.every(function(n){return e.isOptionGroup(n)||e.isOptionDisabled(n)||e.isSelected(n)})},hasSelectedOption:function(){return jn.isNotEmpty(this.modelValue)},equalityKey:function(){return this.optionValue?null:this.dataKey},searchFields:function(){return this.filterFields||[this.optionLabel]},maxSelectionLimitReached:function(){return this.selectionLimit&&this.modelValue&&this.modelValue.length===this.selectionLimit},filterResultMessageText:function(){return jn.isNotEmpty(this.visibleOptions)?this.filterMessageText.replaceAll("{0}",this.visibleOptions.length):this.emptyFilterMessageText},filterMessageText:function(){return this.filterMessage||this.$primevue.config.locale.searchMessage||""},emptyFilterMessageText:function(){return this.emptyFilterMessage||this.$primevue.config.locale.emptySearchMessage||this.$primevue.config.locale.emptyFilterMessage||""},emptyMessageText:function(){return this.emptyMessage||this.$primevue.config.locale.emptyMessage||""},selectionMessageText:function(){return this.selectionMessage||this.$primevue.config.locale.selectionMessage||""},emptySelectionMessageText:function(){return this.emptySelectionMessage||this.$primevue.config.locale.emptySelectionMessage||""},selectedMessageText:function(){return this.hasSelectedOption?this.selectionMessageText.replaceAll("{0}",this.modelValue.length):this.emptySelectionMessageText},focusedOptionId:function(){return this.focusedOptionIndex!==-1?"".concat(this.id,"_").concat(this.focusedOptionIndex):null},ariaSetSize:function(){var e=this;return this.visibleOptions.filter(function(n){return!e.isOptionGroup(n)}).length},toggleAllAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria[this.allSelected?"selectAll":"unselectAll"]:void 0},closeAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.close:void 0},listAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.listLabel:void 0},virtualScrollerDisabled:function(){return!this.virtualScrollerOptions}},directives:{ripple:wf},components:{Checkbox:Xy,VirtualScroller:ky,Portal:O0,TimesIcon:K0,SearchIcon:NQ,TimesCircleIcon:ny,ChevronDownIcon:P0,SpinnerIcon:Gp,CheckIcon:mh}};function y0(t){"@babel/helpers - typeof";return y0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y0(t)}function RZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Hh(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?RZ(Object(n),!0).forEach(function(r){p2(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):RZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function p2(t,e,n){return e=_O(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _O(t){var e=$O(t,"string");return y0(e)=="symbol"?e:String(e)}function $O(t,e){if(y0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(y0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var qO=["id","disabled","placeholder","tabindex","aria-label","aria-labelledby","aria-expanded","aria-controls","aria-activedescendant","aria-invalid"],eK=["onClick"],tK=["value","placeholder","aria-owns","aria-activedescendant"],nK=["aria-label"],rK=["id","aria-label"],iK=["id"],aK=["id","aria-label","aria-selected","aria-disabled","aria-setsize","aria-posinset","onClick","onMousemove","data-p-highlight","data-p-focused","data-p-disabled"];function oK(t,e,n,r,i,a){var o=Li("TimesCircleIcon"),l=Li("SpinnerIcon"),s=Li("Checkbox"),d=Li("VirtualScroller"),c=Li("Portal"),u=mf("ripple");return oe(),Ce("div",Jt({ref:"container",class:t.cx("root"),style:t.sx("root"),onClick:e[13]||(e[13]=function(){return a.onContainerClick&&a.onContainerClick.apply(a,arguments)})},t.ptmi("root")),[Q("div",Jt({class:"p-hidden-accessible"},t.ptm("hiddenInputWrapper"),{"data-p-hidden-accessible":!0}),[Q("input",Jt({ref:"focusInput",id:t.inputId,type:"text",readonly:"",disabled:t.disabled,placeholder:t.placeholder,tabindex:t.disabled?-1:t.tabindex,role:"combobox","aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-haspopup":"listbox","aria-expanded":i.overlayVisible,"aria-controls":i.id+"_list","aria-activedescendant":i.focused?a.focusedOptionId:void 0,"aria-invalid":t.invalid||void 0,onFocus:e[0]||(e[0]=function(){return a.onFocus&&a.onFocus.apply(a,arguments)}),onBlur:e[1]||(e[1]=function(){return a.onBlur&&a.onBlur.apply(a,arguments)}),onKeydown:e[2]||(e[2]=function(){return a.onKeyDown&&a.onKeyDown.apply(a,arguments)})},Hh(Hh({},t.inputProps),t.ptm("hiddenInput"))),null,16,qO)],16),Q("div",Jt({class:t.cx("labelContainer")},t.ptm("labelContainer")),[Q("div",Jt({class:t.cx("label")},t.ptm("label")),[Vi(t.$slots,"value",{value:t.modelValue,placeholder:t.placeholder},function(){return[t.display==="comma"?(oe(),Ce(Er,{key:0},[Ni(ce(a.label||"empty"),1)],64)):t.display==="chip"?(oe(),Ce(Er,{key:1},[(oe(!0),Ce(Er,null,ia(a.chipSelectedItems,function(h){return oe(),Ce("div",Jt({key:a.getLabelByValue(h),class:t.cx("token")},t.ptm("token")),[Vi(t.$slots,"chip",{value:h},function(){return[Q("span",Jt({class:t.cx("tokenLabel")},t.ptm("tokenLabel")),ce(a.getLabelByValue(h)),17)]}),t.disabled?Pt("",!0):Vi(t.$slots,"removetokenicon",{key:0,class:Hr(t.cx("removeTokenIcon")),item:h,onClick:function(g){return a.removeOption(g,h)},removeCallback:function(g){return a.removeOption(g,h)}},function(){return[t.removeTokenIcon?(oe(),Ce("span",Jt({key:0,class:[t.cx("removeTokenIcon"),t.removeTokenIcon],onClick:ud(function(f){return a.removeOption(f,h)},["stop"])},t.ptm("removeTokenIcon")),null,16,eK)):(oe(),Vn(o,Jt({key:1,class:t.cx("removeTokenIcon"),onClick:ud(function(f){return a.removeOption(f,h)},["stop"])},t.ptm("removeTokenIcon")),null,16,["class","onClick"]))]})],16)}),128)),!t.modelValue||t.modelValue.length===0?(oe(),Ce(Er,{key:0},[Ni(ce(t.placeholder||"empty"),1)],64)):Pt("",!0)],64)):Pt("",!0)]})],16)],16),Q("div",Jt({class:t.cx("trigger")},t.ptm("trigger")),[t.loading?Vi(t.$slots,"loadingicon",{key:0,class:Hr(t.cx("loadingIcon"))},function(){return[t.loadingIcon?(oe(),Ce("span",Jt({key:0,class:[t.cx("loadingIcon"),"pi-spin",t.loadingIcon],"aria-hidden":"true"},t.ptm("loadingIcon")),null,16)):(oe(),Vn(l,Jt({key:1,class:t.cx("loadingIcon"),spin:"","aria-hidden":"true"},t.ptm("loadingIcon")),null,16,["class"]))]}):Vi(t.$slots,"dropdownicon",{key:1,class:Hr(t.cx("dropdownIcon"))},function(){return[(oe(),Vn(ea(t.dropdownIcon?"span":"ChevronDownIcon"),Jt({class:[t.cx("dropdownIcon"),t.dropdownIcon],"aria-hidden":"true"},t.ptm("dropdownIcon")),null,16,["class"]))]})],16),Fn(c,{appendTo:t.appendTo},{default:Yr(function(){return[Fn(Cp,Jt({name:"p-connected-overlay",onEnter:a.onOverlayEnter,onAfterEnter:a.onOverlayAfterEnter,onLeave:a.onOverlayLeave,onAfterLeave:a.onOverlayAfterLeave},t.ptm("transition")),{default:Yr(function(){return[i.overlayVisible?(oe(),Ce("div",Jt({key:0,ref:a.overlayRef,style:t.panelStyle,class:[t.cx("panel"),t.panelClass],onClick:e[11]||(e[11]=function(){return a.onOverlayClick&&a.onOverlayClick.apply(a,arguments)}),onKeydown:e[12]||(e[12]=function(){return a.onOverlayKeyDown&&a.onOverlayKeyDown.apply(a,arguments)})},Hh(Hh({},t.panelProps),t.ptm("panel"))),[Q("span",Jt({ref:"firstHiddenFocusableElementOnOverlay",role:"presentation","aria-hidden":"true",class:"p-hidden-accessible p-hidden-focusable",tabindex:0,onFocus:e[3]||(e[3]=function(){return a.onFirstHiddenFocus&&a.onFirstHiddenFocus.apply(a,arguments)})},t.ptm("hiddenFirstFocusableEl"),{"data-p-hidden-accessible":!0,"data-p-hidden-focusable":!0}),null,16),Vi(t.$slots,"header",{value:t.modelValue,options:a.visibleOptions}),t.showToggleAll&&t.selectionLimit==null||t.filter?(oe(),Ce("div",Jt({key:0,class:t.cx("header")},t.ptm("header")),[t.showToggleAll&&t.selectionLimit==null?(oe(),Vn(s,{key:0,modelValue:a.allSelected,binary:!0,disabled:t.disabled,variant:t.variant,"aria-label":a.toggleAllAriaLabel,onChange:a.onToggleAll,unstyled:t.unstyled,pt:a.getHeaderCheckboxPTOptions("headerCheckbox")},{icon:Yr(function(h){return[t.$slots.headercheckboxicon?(oe(),Vn(ea(t.$slots.headercheckboxicon),{key:0,checked:h.checked,class:Hr(h.class)},null,8,["checked","class"])):h.checked?(oe(),Vn(ea(t.checkboxIcon?"span":"CheckIcon"),Jt({key:1,class:[h.class,p2({},t.checkboxIcon,h.checked)]},a.getHeaderCheckboxPTOptions("headerCheckbox.icon")),null,16,["class"])):Pt("",!0)]}),_:1},8,["modelValue","disabled","variant","aria-label","onChange","unstyled","pt"])):Pt("",!0),t.filter?(oe(),Ce("div",Jt({key:1,class:t.cx("filterContainer")},t.ptm("filterContainer")),[Q("input",Jt({ref:"filterInput",type:"text",value:i.filterValue,onVnodeMounted:e[4]||(e[4]=function(){return a.onFilterUpdated&&a.onFilterUpdated.apply(a,arguments)}),onVnodeUpdated:e[5]||(e[5]=function(){return a.onFilterUpdated&&a.onFilterUpdated.apply(a,arguments)}),class:t.cx("filterInput"),placeholder:t.filterPlaceholder,role:"searchbox",autocomplete:"off","aria-owns":i.id+"_list","aria-activedescendant":a.focusedOptionId,onKeydown:e[6]||(e[6]=function(){return a.onFilterKeyDown&&a.onFilterKeyDown.apply(a,arguments)}),onBlur:e[7]||(e[7]=function(){return a.onFilterBlur&&a.onFilterBlur.apply(a,arguments)}),onInput:e[8]||(e[8]=function(){return a.onFilterChange&&a.onFilterChange.apply(a,arguments)})},Hh(Hh({},t.filterInputProps),t.ptm("filterInput"))),null,16,tK),Vi(t.$slots,"filtericon",{class:Hr(t.cx("filterIcon"))},function(){return[(oe(),Vn(ea(t.filterIcon?"span":"SearchIcon"),Jt({class:[t.cx("filterIcon"),t.filterIcon]},t.ptm("filterIcon")),null,16,["class"]))]})],16)):Pt("",!0),t.filter?(oe(),Ce("span",Jt({key:2,role:"status","aria-live":"polite",class:"p-hidden-accessible"},t.ptm("hiddenFilterResult"),{"data-p-hidden-accessible":!0}),ce(a.filterResultMessageText),17)):Pt("",!0),br((oe(),Ce("button",Jt({class:t.cx("closeButton"),"aria-label":a.closeAriaLabel,onClick:e[9]||(e[9]=function(){return a.onCloseClick&&a.onCloseClick.apply(a,arguments)}),type:"button"},Hh(Hh({},t.closeButtonProps),t.ptm("closeButton"))),[Vi(t.$slots,"closeicon",{class:Hr(t.cx("closeIcon"))},function(){return[(oe(),Vn(ea(t.closeIcon?"span":"TimesIcon"),Jt({class:[t.cx("closeIcon"),t.closeIcon]},t.ptm("closeIcon")),null,16,["class"]))]})],16,nK)),[[u]])],16)):Pt("",!0),Q("div",Jt({class:t.cx("wrapper"),style:{"max-height":a.virtualScrollerDisabled?t.scrollHeight:""}},t.ptm("wrapper")),[Fn(d,Jt({ref:a.virtualScrollerRef},t.virtualScrollerOptions,{items:a.visibleOptions,style:{height:t.scrollHeight},tabindex:-1,disabled:a.virtualScrollerDisabled,pt:t.ptm("virtualScroller")}),gp({content:Yr(function(h){var f=h.styleClass,g=h.contentRef,A=h.items,b=h.getItemOptions,p=h.contentStyle,y=h.itemSize;return[Q("ul",Jt({ref:function(F){return a.listRef(F,g)},id:i.id+"_list",class:[t.cx("list"),f],style:p,role:"listbox","aria-multiselectable":"true","aria-label":a.listAriaLabel},t.ptm("list")),[(oe(!0),Ce(Er,null,ia(A,function(m,F){return oe(),Ce(Er,{key:a.getOptionRenderKey(m,a.getOptionIndex(F,b))},[a.isOptionGroup(m)?(oe(),Ce("li",Jt({key:0,id:i.id+"_"+a.getOptionIndex(F,b),style:{height:y?y+"px":void 0},class:t.cx("itemGroup"),role:"option"},t.ptm("itemGroup")),[Vi(t.$slots,"optiongroup",{option:m.optionGroup,index:a.getOptionIndex(F,b)},function(){return[Ni(ce(a.getOptionGroupLabel(m.optionGroup)),1)]})],16,iK)):br((oe(),Ce("li",Jt({key:1,id:i.id+"_"+a.getOptionIndex(F,b),style:{height:y?y+"px":void 0},class:t.cx("item",{option:m,index:F,getItemOptions:b}),role:"option","aria-label":a.getOptionLabel(m),"aria-selected":a.isSelected(m),"aria-disabled":a.isOptionDisabled(m),"aria-setsize":a.ariaSetSize,"aria-posinset":a.getAriaPosInset(a.getOptionIndex(F,b)),onClick:function(C){return a.onOptionSelect(C,m,a.getOptionIndex(F,b),!0)},onMousemove:function(C){return a.onOptionMouseMove(C,a.getOptionIndex(F,b))}},a.getCheckboxPTOptions(m,b,F,"item"),{"data-p-highlight":a.isSelected(m),"data-p-focused":i.focusedOptionIndex===a.getOptionIndex(F,b),"data-p-disabled":a.isOptionDisabled(m)}),[Fn(s,{modelValue:a.isSelected(m),binary:!0,tabindex:-1,variant:t.variant,unstyled:t.unstyled,pt:a.getCheckboxPTOptions(m,b,F,"itemCheckbox")},{icon:Yr(function(R){return[t.$slots.itemcheckboxicon?(oe(),Vn(ea(t.$slots.itemcheckboxicon),{key:0,checked:R.checked,class:Hr(R.class)},null,8,["checked","class"])):R.checked?(oe(),Vn(ea(t.checkboxIcon?"span":"CheckIcon"),Jt({key:1,class:[R.class,p2({},t.checkboxIcon,R.checked)]},a.getCheckboxPTOptions(m,b,F,"itemCheckbox.icon")),null,16,["class"])):Pt("",!0)]}),_:2},1032,["modelValue","variant","unstyled","pt"]),Vi(t.$slots,"option",{option:m,index:a.getOptionIndex(F,b)},function(){return[Q("span",oA(Jm(t.ptm("option"))),ce(a.getOptionLabel(m)),17)]})],16,aK)),[[u]])],64)}),128)),i.filterValue&&(!A||A&&A.length===0)?(oe(),Ce("li",Jt({key:0,class:t.cx("emptyMessage"),role:"option"},t.ptm("emptyMessage")),[Vi(t.$slots,"emptyfilter",{},function(){return[Ni(ce(a.emptyFilterMessageText),1)]})],16)):!t.options||t.options&&t.options.length===0?(oe(),Ce("li",Jt({key:1,class:t.cx("emptyMessage"),role:"option"},t.ptm("emptyMessage")),[Vi(t.$slots,"empty",{},function(){return[Ni(ce(a.emptyMessageText),1)]})],16)):Pt("",!0)],16,rK)]}),_:2},[t.$slots.loader?{name:"loader",fn:Yr(function(h){var f=h.options;return[Vi(t.$slots,"loader",{options:f})]}),key:"0"}:void 0]),1040,["items","style","disabled","pt"])],16),Vi(t.$slots,"footer",{value:t.modelValue,options:a.visibleOptions}),!t.options||t.options&&t.options.length===0?(oe(),Ce("span",Jt({key:1,role:"status","aria-live":"polite",class:"p-hidden-accessible"},t.ptm("hiddenEmptyMessage"),{"data-p-hidden-accessible":!0}),ce(a.emptyMessageText),17)):Pt("",!0),Q("span",Jt({role:"status","aria-live":"polite",class:"p-hidden-accessible"},t.ptm("hiddenSelectedMessage"),{"data-p-hidden-accessible":!0}),ce(a.selectedMessageText),17),Q("span",Jt({ref:"lastHiddenFocusableElementOnOverlay",role:"presentation","aria-hidden":"true",class:"p-hidden-accessible p-hidden-focusable",tabindex:0,onFocus:e[10]||(e[10]=function(){return a.onLastHiddenFocus&&a.onLastHiddenFocus.apply(a,arguments)})},t.ptm("hiddenLastFocusableEl"),{"data-p-hidden-accessible":!0,"data-p-hidden-focusable":!0}),null,16)],16)):Pt("",!0)]}),_:3},16,["onEnter","onAfterEnter","onLeave","onAfterLeave"])]}),_:3},8,["appendTo"])],16)}zE.render=oK;var lK=Symbol(),sK={install:function(e){var n={add:function(i){Yu.emit("add",i)},remove:function(i){Yu.emit("remove",i)},removeGroup:function(i){Yu.emit("remove-group",i)},removeAllGroups:function(){Yu.emit("remove-all-groups")}};e.config.globalProperties.$toast=n,e.provide(lK,n)}};const jE="/assets/skew-BfT3kmEc.png",dK={class:"input"},cK={class:"languages-select"},uK={class:"image"},fK=["src"],hK={key:0,class:"dropdown"},gK=["onClick"],AK={class:"image"},pK=["src"],mK={__name:"LanguageSelect",setup(t){const e=po();QA();const{postMethod:n,toast:r}=va(),i=[{value:"ar",name:"العربية",image:"/assets/images/ar.png"},{value:"en",name:"English",image:"/assets/images/en.png"},{value:"ur",name:"اردو",image:"/assets/images/ur.png"}],a=hn(i.find(c=>c.value===window.sessionStorage.getItem("app_lang"))||i[0]),o=hn(!1),l=()=>{o.value=!o.value},s=hn({_method:"patch",lang:""}),d=c=>{e==null||e.handleLang(c.value),a.value=c,o.value=!1,s.value.lang=c.value,n("general/change-lang",s.value,!0,"","toast")};return(c,u)=>(oe(),Ce("div",dK,[Q("ul",cK,[u[0]||(u[0]=Q("i",{class:"pi pi-angle-down"},null,-1)),Q("li",{onClick:l},[Q("div",uK,[Q("img",{src:a.value.image,alt:"image",loading:"lazy"},null,8,fK)]),Q("span",null,ce(a.value.name),1)]),o.value?(oe(),Ce("ul",hK,[(oe(),Ce(Er,null,ia(i,h=>Q("li",{key:h.value,onClick:f=>d(h)},[Q("div",AK,[Q("img",{src:h.image,alt:"image",loading:"lazy"},null,8,pK)]),Q("span",null,ce(h.name),1)],8,gK)),64))])):Pt("",!0)]),Fn(ct(ol),{ref_key:"toast",ref:r,position:"top-right"},null,512)]))}},wy=Pi(mK,[["__scopeId","data-v-293879ab"]]),_E="/assets/vertical_logo-Dxd6Zsvq.png",bK={},yK={class:"logo-side"},FK={class:"copyright"};function QK(t,e){return oe(),Ce("div",yK,[e[0]||(e[0]=Q("div",{class:"image"},[Q("img",{src:_E,alt:"img",loading:"lazy"})],-1)),Q("div",FK,[Q("p",null,ce(t.$t("copyright.thunder_rights")),1),Q("p",null,ce(t.$t("copyright.awamer_rights")),1)])])}const GQ=Pi(bK,[["render",QK],["__scopeId","data-v-e8f9a378"]]),UK={class:"sign-page"},RK={class:"content"},BK={class:"form-side"},ZK={class:"upper-bar"},IK={key:0,class:"skew-image"},CK={class:"title"},vK={__name:"Login",setup(t){const e=dc(),n=hn(!0);return yi(()=>e.path,r=>{r==="/login/phone-entry"?n.value=!0:n.value=!1}),(r,i)=>(oe(),Ce("div",UK,[Q("div",RK,[Fn(GQ),Q("div",BK,[Q("div",ZK,[Fn(wy),n.value?(oe(),Ce("div",IK,[Q("img",{class:Hr({"rotate-en":r.$i18n.locale==="en"}),src:jE,alt:"img",loading:"lazy"},null,2),Q("div",CK,[Q("p",null,ce(r.$t("login.title")),1)])])):Pt("",!0)]),Fn(ct(vp))])])]))}},VK={class:"half-page"},EK={class:"content"},SK={class:"text"},WK={class:"lang-tabs"},NK={__name:"SelectLanguage",setup(t){const e=po(),n=Ag(),r=i=>{n.push("/login/phone-entry"),setTimeout(()=>{e.handleLang(i)},100)};return(i,a)=>(oe(),Ce("div",VK,[Q("div",EK,[a[4]||(a[4]=Q("div",{class:"image"},[Q("img",{src:_E,alt:"img",loading:"lazy"})],-1)),Q("div",SK,[a[3]||(a[3]=Q("h3",null,"إختر اللغه التي تود أن تكمل بها",-1)),Q("div",WK,[Q("div",{class:"tab",onClick:a[0]||(a[0]=o=>r("ar"))},"العربيه"),Q("div",{class:"tab",onClick:a[1]||(a[1]=o=>r("en"))},"English"),Q("div",{class:"tab",onClick:a[2]||(a[2]=o=>r("ur"))},"أوردو")])])])]))}},GK=Pi(NK,[["__scopeId","data-v-21b72a70"]]);var JK={root:"p-progress-spinner",spinner:"p-progress-spinner-svg",circle:"p-progress-spinner-circle"},TK=Ld.extend({name:"progressspinner",classes:JK}),XK={name:"BaseProgressSpinner",extends:nl,props:{strokeWidth:{type:String,default:"2"},fill:{type:String,default:"none"},animationDuration:{type:String,default:"2s"}},style:TK,provide:function(){return{$parentInstance:this}}},$E={name:"ProgressSpinner",extends:XK,inheritAttrs:!1,computed:{svgStyle:function(){return{"animation-duration":this.animationDuration}}}},kK=["fill","stroke-width"];function wK(t,e,n,r,i,a){return oe(),Ce("div",Jt({class:t.cx("root"),role:"progressbar"},t.ptmi("root")),[(oe(),Ce("svg",Jt({class:t.cx("spinner"),viewBox:"25 25 50 50",style:a.svgStyle},t.ptm("spinner")),[Q("circle",Jt({class:t.cx("circle"),cx:"50",cy:"50",r:"20",fill:t.fill,"stroke-width":t.strokeWidth,strokeMiterlimit:"10"},t.ptm("circle")),null,16,kK)],16))],16)}$E.render=wK;const YK={class:"card loading-card flex justify-center"},DK={__name:"Loading",setup(t){return(e,n)=>(oe(),Ce("div",YK,[Fn(ct($E),{style:{width:"50px",height:"50px"},strokeWidth:"8",fill:"transparent",animationDuration:".5s","aria-label":"Custom ProgressSpinner"})]))}},Ru=Pi(DK,[["__scopeId","data-v-62a0237b"]]),MK=["value"],F0={__name:"CountryCode",props:{country_code:{type:Number,default:966}},emits:["handleCountryCode"],setup(t,{emit:e}){const{getMethod:n,getResult:r}=va(),i=e,o=hn(t.country_code||966);return yi(()=>o.value,l=>{l&&i("handleCountryCode",l||"966")}),Ka(()=>{n("general/countries",!1)}),(l,s)=>{var d;return oe(),Ce("div",null,[br(Q("select",{id:"country_code","onUpdate:modelValue":s[0]||(s[0]=c=>o.value=c)},[(oe(!0),Ce(Er,null,ia((d=ct(r))==null?void 0:d.data,c=>(oe(),Ce("option",{key:c.id,value:c.key},ce(c.key)+"+",9,MK))),128))],512),[[yh,o.value]])])}}},LK={class:"input-wrap phonewithcode"},HK={for:"phone"},xK={class:"inputs"},OK={class:"input"},KK=["placeholder"],PK={class:"input"},zK={class:"main-btn",type:"submit"},jK={__name:"PhoneEntry",setup(t){const e=po(),{postMethod:n,toast:r,loading:i,handleToast:a}=va(),o=hn({phone:"",country_code:"966"}),l=d=>{o.value.country_code=d},s=()=>{o.value.phone===""?a("error",e.lang==="ar"?"رقم الهاتف مطلوب":(e==null?void 0:e.lang)==="en"?"Phone Number is Required":"فون نمبر درکار ہے۔"):(e==null||e.handleStorePhone(o.value.country_code,o.value.phone),n("provider/sign-in",o.value,!1,"/login/phone-activation","toast"))};return(d,c)=>{const u=Li("RouterLink");return oe(),Ce("div",null,[Q("form",{action:"",onSubmit:ud(s,["prevent"])},[Q("h5",null,ce(d.$t("login.title")),1),Q("p",null,ce(d.$t("login.welcome")),1),Q("div",LK,[Q("label",HK,ce(d.$t("login.phone")),1),Q("div",xK,[Q("div",OK,[br(Q("input",{type:"tel",placeholder:d.$t("login.phone_placeholder"),id:"phone","onUpdate:modelValue":c[0]||(c[0]=h=>o.value.phone=h)},null,8,KK),[[gi,o.value.phone]])]),Q("div",PK,[Fn(F0,{onHandleCountryCode:l})])])]),Q("button",zK,ce(d.$t("login.btn_text")),1),Q("p",null,[Ni(ce(d.$t("login.have_account"))+" ",1),Fn(u,{to:"/signup"},{default:Yr(()=>[Ni(ce(d.$t("login.signup")),1)]),_:1})])],32),Fn(ct(ol),{ref_key:"toast",ref:r,position:"top-right"},null,512),ct(i)?(oe(),Vn(Ru,{key:0})):Pt("",!0)])}}},_K=Pi(jK,[["__scopeId","data-v-2d82bf25"]]);var m2=function(){return m2=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},m2.apply(this,arguments)};function Yf(t,e,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function l(c){try{d(r.next(c))}catch(u){o(u)}}function s(c){try{d(r.throw(c))}catch(u){o(u)}}function d(c){c.done?a(c.value):i(c.value).then(l,s)}d((r=r.apply(t,e||[])).next())})}function Df(t,e){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=l(0),o.throw=l(1),o.return=l(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function l(d){return function(c){return s([d,c])}}function s(d){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,d[0]&&(n=0)),n;)try{if(r=1,i&&(a=d[0]&2?i.return:d[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,d[1])).done)return a;switch(i=0,a&&(d=[d[0]&2,a.value]),d[0]){case 0:case 1:a=d;break;case 4:return n.label++,{value:d[1],done:!1};case 5:n.label++,i=d[1],d=[0];continue;case 7:d=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(d[0]===6||d[0]===2)){n=0;continue}if(d[0]===3&&(!a||d[1]>a[0]&&d[1]<a[3])){n.label=d[1];break}if(d[0]===6&&n.label<a[1]){n.label=a[1],a=d;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(d);break}a[2]&&n.ops.pop(),n.trys.pop();continue}d=e.call(t,n)}catch(c){d=[6,c],i=0}finally{r=a=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}}function qE(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,a;r<i;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return t.concat(a||Array.prototype.slice.call(e))}var eS="4.5.1";function ay(t,e){return new Promise(function(n){return setTimeout(n,t,e)})}function $K(){return new Promise(function(t){var e=new MessageChannel;e.port1.onmessage=function(){return t()},e.port2.postMessage(null)})}function qK(t,e){e===void 0&&(e=1/0);var n=window.requestIdleCallback;return n?new Promise(function(r){return n.call(window,function(){return r()},{timeout:e})}):ay(Math.min(t,e))}function tS(t){return!!t&&typeof t.then=="function"}function BZ(t,e){try{var n=t();tS(n)?n.then(function(r){return e(!0,r)},function(r){return e(!1,r)}):e(!0,n)}catch(r){e(!1,r)}}function ZZ(t,e,n){return n===void 0&&(n=16),Yf(this,void 0,void 0,function(){var r,i,a,o;return Df(this,function(l){switch(l.label){case 0:r=Array(t.length),i=Date.now(),a=0,l.label=1;case 1:return a<t.length?(r[a]=e(t[a],a),o=Date.now(),o>=i+n?(i=o,[4,$K()]):[3,3]):[3,4];case 2:l.sent(),l.label=3;case 3:return++a,[3,1];case 4:return[2,r]}})})}function Q0(t){return t.then(void 0,function(){}),t}function eP(t,e){for(var n=0,r=t.length;n<r;++n)if(t[n]===e)return!0;return!1}function tP(t,e){return!eP(t,e)}function JQ(t){return parseInt(t)}function df(t){return parseFloat(t)}function dh(t,e){return typeof t=="number"&&isNaN(t)?e:t}function Au(t){return t.reduce(function(e,n){return e+(n?1:0)},0)}function nS(t,e){if(e===void 0&&(e=1),Math.abs(e)>=1)return Math.round(t/e)*e;var n=1/e;return Math.round(t*n)/n}function nP(t){for(var e,n,r="Unexpected syntax '".concat(t,"'"),i=/^\s*([a-z-]*)(.*)$/i.exec(t),a=i[1]||void 0,o={},l=/([.:#][\w-]+|\[.+?\])/gi,s=function(h,f){o[h]=o[h]||[],o[h].push(f)};;){var d=l.exec(i[2]);if(!d)break;var c=d[0];switch(c[0]){case".":s("class",c.slice(1));break;case"#":s("id",c.slice(1));break;case"[":{var u=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(c);if(u)s(u[1],(n=(e=u[4])!==null&&e!==void 0?e:u[5])!==null&&n!==void 0?n:"");else throw new Error(r);break}default:throw new Error(r)}}return[a,o]}function rP(t){for(var e=new Uint8Array(t.length),n=0;n<t.length;n++){var r=t.charCodeAt(n);if(r>127)return new TextEncoder().encode(t);e[n]=r}return e}function xh(t,e){var n=t[0]>>>16,r=t[0]&65535,i=t[1]>>>16,a=t[1]&65535,o=e[0]>>>16,l=e[0]&65535,s=e[1]>>>16,d=e[1]&65535,c=0,u=0,h=0,f=0;f+=a+d,h+=f>>>16,f&=65535,h+=i+s,u+=h>>>16,h&=65535,u+=r+l,c+=u>>>16,u&=65535,c+=n+o,c&=65535,t[0]=c<<16|u,t[1]=h<<16|f}function wu(t,e){var n=t[0]>>>16,r=t[0]&65535,i=t[1]>>>16,a=t[1]&65535,o=e[0]>>>16,l=e[0]&65535,s=e[1]>>>16,d=e[1]&65535,c=0,u=0,h=0,f=0;f+=a*d,h+=f>>>16,f&=65535,h+=i*d,u+=h>>>16,h&=65535,h+=a*s,u+=h>>>16,h&=65535,u+=r*d,c+=u>>>16,u&=65535,u+=i*s,c+=u>>>16,u&=65535,u+=a*l,c+=u>>>16,u&=65535,c+=n*d+r*s+i*l+a*o,c&=65535,t[0]=c<<16|u,t[1]=h<<16|f}function qA(t,e){var n=t[0];e%=64,e===32?(t[0]=t[1],t[1]=n):e<32?(t[0]=n<<e|t[1]>>>32-e,t[1]=t[1]<<e|n>>>32-e):(e-=32,t[0]=t[1]<<e|n>>>32-e,t[1]=n<<e|t[1]>>>32-e)}function vu(t,e){e%=64,e!==0&&(e<32?(t[0]=t[1]>>>32-e,t[1]=t[1]<<e):(t[0]=t[1]<<e-32,t[1]=0))}function Ud(t,e){t[0]^=e[0],t[1]^=e[1]}var iP=[4283543511,3981806797],aP=[3301882366,444984403];function IZ(t){var e=[0,t[0]>>>1];Ud(t,e),wu(t,iP),e[1]=t[0]>>>1,Ud(t,e),wu(t,aP),e[1]=t[0]>>>1,Ud(t,e)}var bb=[2277735313,289559509],yb=[1291169091,658871167],CZ=[0,5],oP=[0,1390208809],lP=[0,944331445];function sP(t,e){var n=rP(t);e=e||0;var r=[0,n.length],i=r[1]%16,a=r[1]-i,o=[0,e],l=[0,e],s=[0,0],d=[0,0],c;for(c=0;c<a;c=c+16)s[0]=n[c+4]|n[c+5]<<8|n[c+6]<<16|n[c+7]<<24,s[1]=n[c]|n[c+1]<<8|n[c+2]<<16|n[c+3]<<24,d[0]=n[c+12]|n[c+13]<<8|n[c+14]<<16|n[c+15]<<24,d[1]=n[c+8]|n[c+9]<<8|n[c+10]<<16|n[c+11]<<24,wu(s,bb),qA(s,31),wu(s,yb),Ud(o,s),qA(o,27),xh(o,l),wu(o,CZ),xh(o,oP),wu(d,yb),qA(d,33),wu(d,bb),Ud(l,d),qA(l,31),xh(l,o),wu(l,CZ),xh(l,lP);s[0]=0,s[1]=0,d[0]=0,d[1]=0;var u=[0,0];switch(i){case 15:u[1]=n[c+14],vu(u,48),Ud(d,u);case 14:u[1]=n[c+13],vu(u,40),Ud(d,u);case 13:u[1]=n[c+12],vu(u,32),Ud(d,u);case 12:u[1]=n[c+11],vu(u,24),Ud(d,u);case 11:u[1]=n[c+10],vu(u,16),Ud(d,u);case 10:u[1]=n[c+9],vu(u,8),Ud(d,u);case 9:u[1]=n[c+8],Ud(d,u),wu(d,yb),qA(d,33),wu(d,bb),Ud(l,d);case 8:u[1]=n[c+7],vu(u,56),Ud(s,u);case 7:u[1]=n[c+6],vu(u,48),Ud(s,u);case 6:u[1]=n[c+5],vu(u,40),Ud(s,u);case 5:u[1]=n[c+4],vu(u,32),Ud(s,u);case 4:u[1]=n[c+3],vu(u,24),Ud(s,u);case 3:u[1]=n[c+2],vu(u,16),Ud(s,u);case 2:u[1]=n[c+1],vu(u,8),Ud(s,u);case 1:u[1]=n[c],Ud(s,u),wu(s,bb),qA(s,31),wu(s,yb),Ud(o,s)}return Ud(o,r),Ud(l,r),xh(o,l),xh(l,o),IZ(o),IZ(l),xh(o,l),xh(l,o),("00000000"+(o[0]>>>0).toString(16)).slice(-8)+("00000000"+(o[1]>>>0).toString(16)).slice(-8)+("00000000"+(l[0]>>>0).toString(16)).slice(-8)+("00000000"+(l[1]>>>0).toString(16)).slice(-8)}function dP(t){var e;return m2({name:t.name,message:t.message,stack:(e=t.stack)===null||e===void 0?void 0:e.split(` `)},t)}function cP(t){return/^function\s.*?\{\s*\[native code]\s*}$/.test(String(t))}function uP(t){return typeof t!="function"}function fP(t,e){var n=Q0(new Promise(function(r){var i=Date.now();BZ(t.bind(null,e),function(){for(var a=[],o=0;o<arguments.length;o++)a[o]=arguments[o];var l=Date.now()-i;if(!a[0])return r(function(){return{error:a[1],duration:l}});var s=a[1];if(uP(s))return r(function(){return{value:s,duration:l}});r(function(){return new Promise(function(d){var c=Date.now();BZ(s,function(){for(var u=[],h=0;h<arguments.length;h++)u[h]=arguments[h];var f=l+Date.now()-c;if(!u[0])return d({error:u[1],duration:f});d({value:u[1],duration:f})})})})})}));return function(){return n.then(function(i){return i()})}}function hP(t,e,n,r){var i=Object.keys(t).filter(function(o){return tP(n,o)}),a=Q0(ZZ(i,function(o){return fP(t[o],e)},r));return function(){return Yf(this,void 0,void 0,function(){var l,s,d,c,u;return Df(this,function(h){switch(h.label){case 0:return[4,a];case 1:return l=h.sent(),[4,ZZ(l,function(f){return Q0(f())},r)];case 2:return s=h.sent(),[4,Promise.all(s)];case 3:for(d=h.sent(),c={},u=0;u<i.length;++u)c[i[u]]=d[u];return[2,c]}})})}}function rS(){var t=window,e=navigator;return Au(["MSCSSMatrix"in t,"msSetImmediate"in t,"msIndexedDB"in t,"msMaxTouchPoints"in e,"msPointerEnabled"in e])>=4}function gP(){var t=window,e=navigator;return Au(["msWriteProfilerMark"in t,"MSStream"in t,"msLaunchUri"in e,"msSaveBlob"in e])>=3&&!rS()}function z0(){var t=window,e=navigator;return Au(["webkitPersistentStorage"in e,"webkitTemporaryStorage"in e,e.vendor.indexOf("Google")===0,"webkitResolveLocalFileSystemURL"in t,"BatteryManager"in t,"webkitMediaStream"in t,"webkitSpeechGrammar"in t])>=5}function yf(){var t=window,e=navigator;return Au(["ApplePayError"in t,"CSSPrimitiveValue"in t,"Counter"in t,e.vendor.indexOf("Apple")===0,"RGBColor"in t,"WebKitMediaKeys"in t])>=4}function TQ(){var t=window,e=t.HTMLElement,n=t.Document;return Au(["safari"in t,!("ongestureend"in t),!("TouchEvent"in t),!("orientation"in t),e&&!("autocapitalize"in e.prototype),n&&"pointerLockElement"in n.prototype])>=4}function j0(){var t=window;return cP(t.print)&&String(t.browser)==="[object WebPageNamespace]"}function iS(){var t,e,n=window;return Au(["buildID"in navigator,"MozAppearance"in((e=(t=document.documentElement)===null||t===void 0?void 0:t.style)!==null&&e!==void 0?e:{}),"onmozfullscreenchange"in n,"mozInnerScreenX"in n,"CSSMozDocumentRule"in n,"CanvasCaptureMediaStream"in n])>=4}function AP(){var t=window;return Au([!("MediaSettingsRange"in t),"RTCEncodedAudioFrame"in t,""+t.Intl=="[object Intl]",""+t.Reflect=="[object Reflect]"])>=3}function pP(){var t=window,e=t.URLPattern;return Au(["union"in Set.prototype,"Iterator"in t,e&&"hasRegExpGroups"in e.prototype,"RGB8"in WebGLRenderingContext.prototype])>=3}function mP(){var t=window;return Au(["DOMRectList"in t,"RTCPeerConnectionIceEvent"in t,"SVGGeometryElement"in t,"ontransitioncancel"in t])>=3}function _0(){var t=window,e=navigator,n=t.CSS,r=t.HTMLButtonElement;return Au([!("getStorageUpdates"in e),r&&"popover"in r.prototype,"CSSCounterStyleRule"in t,n.supports("font-size-adjust: ex-height 0.5"),n.supports("text-transform: full-width")])>=4}function bP(){if(navigator.platform==="iPad")return!0;var t=screen,e=t.width/t.height;return Au(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,e>.65&&e<1.53])>=2}function yP(){var t=document;return t.fullscreenElement||t.msFullscreenElement||t.mozFullScreenElement||t.webkitFullscreenElement||null}function FP(){var t=document;return(t.exitFullscreen||t.msExitFullscreen||t.mozCancelFullScreen||t.webkitExitFullscreen).call(t)}function XQ(){var t=z0(),e=iS(),n=window,r=navigator,i="connection";return t?Au([!("SharedWorker"in n),r[i]&&"ontypechange"in r[i],!("sinkId"in new Audio)])>=2:e?Au(["onorientationchange"in n,"orientation"in n,/android/i.test(r.appVersion)])>=2:!1}function QP(){var t=navigator,e=window,n=Audio.prototype,r=e.visualViewport;return Au(["srLatency"in n,"srChannelCount"in n,"devicePosture"in t,r&&"segments"in r,"getTextInformation"in Image.prototype])>=3}function UP(){return ZP()?-4:RP()}function RP(){var t=window,e=t.OfflineAudioContext||t.webkitOfflineAudioContext;if(!e)return-2;if(BP())return-1;var n=4500,r=5e3,i=new e(1,r,44100),a=i.createOscillator();a.type="triangle",a.frequency.value=1e4;var o=i.createDynamicsCompressor();o.threshold.value=-50,o.knee.value=40,o.ratio.value=12,o.attack.value=0,o.release.value=.25,a.connect(o),o.connect(i.destination),a.start(0);var l=IP(i),s=l[0],d=l[1],c=Q0(s.then(function(u){return CP(u.getChannelData(0).subarray(n))},function(u){if(u.name==="timeout"||u.name==="suspended")return-3;throw u}));return function(){return d(),c}}function BP(){return yf()&&!TQ()&&!mP()}function ZP(){return yf()&&_0()&&j0()||z0()&&QP()&&pP()}function IP(t){var e=3,n=500,r=500,i=5e3,a=function(){},o=new Promise(function(l,s){var d=!1,c=0,u=0;t.oncomplete=function(g){return l(g.renderedBuffer)};var h=function(){setTimeout(function(){return s(vZ("timeout"))},Math.min(r,u+i-Date.now()))},f=function(){try{var g=t.startRendering();switch(tS(g)&&Q0(g),t.state){case"running":u=Date.now(),d&&h();break;case"suspended":document.hidden||c++,d&&c>=e?s(vZ("suspended")):setTimeout(f,n);break}}catch(A){s(A)}};f(),a=function(){d||(d=!0,u>0&&h())}});return[o,a]}function CP(t){for(var e=0,n=0;n<t.length;++n)e+=Math.abs(t[n]);return e}function vZ(t){var e=new Error(t);return e.name=t,e}function aS(t,e,n){var r,i,a;return n===void 0&&(n=50),Yf(this,void 0,void 0,function(){var o,l;return Df(this,function(s){switch(s.label){case 0:o=document,s.label=1;case 1:return o.body?[3,3]:[4,ay(n)];case 2:return s.sent(),[3,1];case 3:l=o.createElement("iframe"),s.label=4;case 4:return s.trys.push([4,,10,11]),[4,new Promise(function(d,c){var u=!1,h=function(){u=!0,d()},f=function(b){u=!0,c(b)};l.onload=h,l.onerror=f;var g=l.style;g.setProperty("display","block","important"),g.position="absolute",g.top="0",g.left="0",g.visibility="hidden",e&&"srcdoc"in l?l.srcdoc=e:l.src="about:blank",o.body.appendChild(l);var A=function(){var b,p;u||(((p=(b=l.contentWindow)===null||b===void 0?void 0:b.document)===null||p===void 0?void 0:p.readyState)==="complete"?h():setTimeout(A,10))};A()})];case 5:s.sent(),s.label=6;case 6:return!((i=(r=l.contentWindow)===null||r===void 0?void 0:r.document)===null||i===void 0)&&i.body?[3,8]:[4,ay(n)];case 7:return s.sent(),[3,6];case 8:return[4,t(l,l.contentWindow)];case 9:return[2,s.sent()];case 10:return(a=l.parentNode)===null||a===void 0||a.removeChild(l),[7];case 11:return[2]}})})}function vP(t){for(var e=nP(t),n=e[0],r=e[1],i=document.createElement(n??"div"),a=0,o=Object.keys(r);a<o.length;a++){var l=o[a],s=r[l].join(" ");l==="style"?VP(i.style,s):i.setAttribute(l,s)}return i}function VP(t,e){for(var n=0,r=e.split(";");n<r.length;n++){var i=r[n],a=/^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(i);if(a){var o=a[1],l=a[2],s=a[4];t.setProperty(o,l,s||"")}}}function EP(){for(var t=window;;){var e=t.parent;if(!e||e===t)return!1;try{if(e.location.origin!==t.location.origin)return!0}catch(n){if(n instanceof Error&&n.name==="SecurityError")return!0;throw n}t=e}}var SP="mmMwWLliI0O&1",WP="48px",ep=["monospace","sans-serif","serif"],VZ=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"];function NP(){var t=this;return aS(function(e,n){var r=n.document;return Yf(t,void 0,void 0,function(){var i,a,o,l,s,d,c,u,h,f,g,A;return Df(this,function(b){for(i=r.body,i.style.fontSize=WP,a=r.createElement("div"),a.style.setProperty("visibility","hidden","important"),o={},l={},s=function(p){var y=r.createElement("span"),m=y.style;return m.position="absolute",m.top="0",m.left="0",m.fontFamily=p,y.textContent=SP,a.appendChild(y),y},d=function(p,y){return s("'".concat(p,"',").concat(y))},c=function(){return ep.map(s)},u=function(){for(var p={},y=function(C){p[C]=ep.map(function(B){return d(C,B)})},m=0,F=VZ;m<F.length;m++){var R=F[m];y(R)}return p},h=function(p){return ep.some(function(y,m){return p[m].offsetWidth!==o[y]||p[m].offsetHeight!==l[y]})},f=c(),g=u(),i.appendChild(a),A=0;A<ep.length;A++)o[ep[A]]=f[A].offsetWidth,l[ep[A]]=f[A].offsetHeight;return[2,VZ.filter(function(p){return h(g[p])})]})})})}function GP(){var t=navigator.plugins;if(t){for(var e=[],n=0;n<t.length;++n){var r=t[n];if(r){for(var i=[],a=0;a<r.length;++a){var o=r[a];i.push({type:o.type,suffixes:o.suffixes})}e.push({name:r.name,description:r.description,mimeTypes:i})}}return e}}function JP(){return TP(LP())}function TP(t){var e,n=!1,r,i,a=XP(),o=a[0],l=a[1];return kP(o,l)?(n=wP(l),t?r=i="skipped":(e=YP(o,l),r=e[0],i=e[1])):r=i="unsupported",{winding:n,geometry:r,text:i}}function XP(){var t=document.createElement("canvas");return t.width=1,t.height=1,[t,t.getContext("2d")]}function kP(t,e){return!!(e&&t.toDataURL)}function wP(t){return t.rect(0,0,10,10),t.rect(2,2,6,6),!t.isPointInPath(5,5,"evenodd")}function YP(t,e){DP(t,e);var n=n1(t),r=n1(t);if(n!==r)return["unstable","unstable"];MP(t,e);var i=n1(t);return[i,n]}function DP(t,e){t.width=240,t.height=60,e.textBaseline="alphabetic",e.fillStyle="#f60",e.fillRect(100,1,62,20),e.fillStyle="#069",e.font='11pt "Times New Roman"';var n="Cwm fjordbank gly ".concat("😃");e.fillText(n,2,15),e.fillStyle="rgba(102, 204, 0, 0.2)",e.font="18pt Arial",e.fillText(n,4,45)}function MP(t,e){t.width=122,t.height=110,e.globalCompositeOperation="multiply";for(var n=0,r=[["#f2f",40,40],["#2ff",80,40],["#ff2",60,80]];n<r.length;n++){var i=r[n],a=i[0],o=i[1],l=i[2];e.fillStyle=a,e.beginPath(),e.arc(o,l,40,0,Math.PI*2,!0),e.closePath(),e.fill()}e.fillStyle="#f9c",e.arc(60,60,60,0,Math.PI*2,!0),e.arc(60,60,20,0,Math.PI*2,!0),e.fill("evenodd")}function n1(t){return t.toDataURL()}function LP(){return yf()&&_0()&&j0()}function HP(){var t=navigator,e=0,n;t.maxTouchPoints!==void 0?e=JQ(t.maxTouchPoints):t.msMaxTouchPoints!==void 0&&(e=t.msMaxTouchPoints);try{document.createEvent("TouchEvent"),n=!0}catch{n=!1}var r="ontouchstart"in window;return{maxTouchPoints:e,touchEvent:n,touchStart:r}}function xP(){return navigator.oscpu}function OP(){var t=navigator,e=[],n=t.language||t.userLanguage||t.browserLanguage||t.systemLanguage;if(n!==void 0&&e.push([n]),Array.isArray(t.languages))z0()&&AP()||e.push(t.languages);else if(typeof t.languages=="string"){var r=t.languages;r&&e.push(r.split(","))}return e}function KP(){return window.screen.colorDepth}function PP(){return dh(df(navigator.deviceMemory),void 0)}function zP(){if(!(yf()&&_0()&&j0()))return jP()}function jP(){var t=screen,e=function(r){return dh(JQ(r),null)},n=[e(t.width),e(t.height)];return n.sort().reverse(),n}var _P=2500,$P=10,wb,r1;function qP(){if(r1===void 0){var t=function(){var e=b2();y2(e)?r1=setTimeout(t,_P):(wb=e,r1=void 0)};t()}}function ez(){var t=this;return qP(),function(){return Yf(t,void 0,void 0,function(){var e;return Df(this,function(n){switch(n.label){case 0:return e=b2(),y2(e)?wb?[2,qE([],wb,!0)]:yP()?[4,FP()]:[3,2]:[3,2];case 1:n.sent(),e=b2(),n.label=2;case 2:return y2(e)||(wb=e),[2,e]}})})}}function tz(){var t=this;if(yf()&&_0()&&j0())return function(){return Promise.resolve(void 0)};var e=ez();return function(){return Yf(t,void 0,void 0,function(){var n,r;return Df(this,function(i){switch(i.label){case 0:return[4,e()];case 1:return n=i.sent(),r=function(a){return a===null?null:nS(a,$P)},[2,[r(n[0]),r(n[1]),r(n[2]),r(n[3])]]}})})}}function b2(){var t=screen;return[dh(df(t.availTop),null),dh(df(t.width)-df(t.availWidth)-dh(df(t.availLeft),0),null),dh(df(t.height)-df(t.availHeight)-dh(df(t.availTop),0),null),dh(df(t.availLeft),null)]}function y2(t){for(var e=0;e<4;++e)if(t[e])return!1;return!0}function nz(){return dh(JQ(navigator.hardwareConcurrency),void 0)}function rz(){var t,e=(t=window.Intl)===null||t===void 0?void 0:t.DateTimeFormat;if(e){var n=new e().resolvedOptions().timeZone;if(n)return n}var r=-iz();return"UTC".concat(r>=0?"+":"").concat(r)}function iz(){var t=new Date().getFullYear();return Math.max(df(new Date(t,0,1).getTimezoneOffset()),df(new Date(t,6,1).getTimezoneOffset()))}function az(){try{return!!window.sessionStorage}catch{return!0}}function oz(){try{return!!window.localStorage}catch{return!0}}function lz(){if(!(rS()||gP()))try{return!!window.indexedDB}catch{return!0}}function sz(){return!!window.openDatabase}function dz(){return navigator.cpuClass}function cz(){var t=navigator.platform;return t==="MacIntel"&&yf()&&!TQ()?bP()?"iPad":"iPhone":t}function uz(){return navigator.vendor||""}function fz(){for(var t=[],e=0,n=["chrome","safari","__crWeb","__gCrWeb","yandex","__yb","__ybro","__firefox__","__edgeTrackingPreventionStatistics","webkit","oprt","samsungAr","ucweb","UCShellJava","puffinDevice"];e<n.length;e++){var r=n[e],i=window[r];i&&typeof i=="object"&&t.push(r)}return t.sort()}function hz(){var t=document;try{t.cookie="cookietest=1; SameSite=Strict;";var e=t.cookie.indexOf("cookietest=")!==-1;return t.cookie="cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT",e}catch{return!1}}function gz(){var t=atob;return{abpIndo:["#Iklan-Melayang","#Kolom-Iklan-728","#SidebarIklan-wrapper",'[title="ALIENBOLA" i]',t("I0JveC1CYW5uZXItYWRz")],abpvn:[".quangcao","#mobileCatfish",t("LmNsb3NlLWFkcw=="),'[id^="bn_bottom_fixed_"]',"#pmadv"],adBlockFinland:[".mainostila",t("LnNwb25zb3JpdA=="),".ylamainos",t("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"),t("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")],adBlockPersian:["#navbar_notice_50",".kadr",'TABLE[width="140px"]',"#divAgahi",t("YVtocmVmXj0iaHR0cDovL2cxLnYuZndtcm0ubmV0L2FkLyJd")],adBlockWarningRemoval:["#adblock-honeypot",".adblocker-root",".wp_adblock_detect",t("LmhlYWRlci1ibG9ja2VkLWFk"),t("I2FkX2Jsb2NrZXI=")],adGuardAnnoyances:[".hs-sosyal","#cookieconsentdiv",'div[class^="app_gdpr"]',".as-oil",'[data-cypress="soft-push-notification-modal"]'],adGuardBase:[".BetterJsPopOverlay",t("I2FkXzMwMFgyNTA="),t("I2Jhbm5lcmZsb2F0MjI="),t("I2NhbXBhaWduLWJhbm5lcg=="),t("I0FkLUNvbnRlbnQ=")],adGuardChinese:[t("LlppX2FkX2FfSA=="),t("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"),"#widget-quan",t("YVtocmVmKj0iLzg0OTkyMDIwLnh5eiJd"),t("YVtocmVmKj0iLjE5NTZobC5jb20vIl0=")],adGuardFrench:["#pavePub",t("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"),".mobile_adhesion",".widgetadv",t("LmFkc19iYW4=")],adGuardGerman:['aside[data-portal-id="leaderboard"]'],adGuardJapanese:["#kauli_yad_1",t("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="),t("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="),t("LmFkZ29vZ2xl"),t("Ll9faXNib29zdFJldHVybkFk")],adGuardMobile:[t("YW1wLWF1dG8tYWRz"),t("LmFtcF9hZA=="),'amp-embed[type="24smi"]',"#mgid_iframe1",t("I2FkX2ludmlld19hcmVh")],adGuardRussian:[t("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="),t("LnJlY2xhbWE="),'div[id^="smi2adblock"]',t("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"),"#psyduckpockeball"],adGuardSocial:[t("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="),t("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="),".etsy-tweet","#inlineShare",".popup-social"],adGuardSpanishPortuguese:["#barraPublicidade","#Publicidade","#publiEspecial","#queTooltip",".cnt-publi"],adGuardTrackingProtection:["#qoo-counter",t("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="),t("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="),t("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="),"#top100counter"],adGuardTurkish:["#backkapat",t("I3Jla2xhbWk="),t("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="),t("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"),t("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")],bulgarian:[t("dGQjZnJlZW5ldF90YWJsZV9hZHM="),"#ea_intext_div",".lapni-pop-over","#xenium_hot_offers"],easyList:[".yb-floorad",t("LndpZGdldF9wb19hZHNfd2lkZ2V0"),t("LnRyYWZmaWNqdW5reS1hZA=="),".textad_headline",t("LnNwb25zb3JlZC10ZXh0LWxpbmtz")],easyListChina:[t("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="),t("LmZyb250cGFnZUFkdk0="),"#taotaole","#aafoot.top_box",".cfa_popup"],easyListCookie:[".ezmob-footer",".cc-CookieWarning","[data-cookie-number]",t("LmF3LWNvb2tpZS1iYW5uZXI="),".sygnal24-gdpr-modal-wrap"],easyListCzechSlovak:["#onlajny-stickers",t("I3Jla2xhbW5pLWJveA=="),t("LnJla2xhbWEtbWVnYWJvYXJk"),".sklik",t("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")],easyListDutch:[t("I2FkdmVydGVudGll"),t("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="),".adstekst",t("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="),"#semilo-lrectangle"],easyListGermany:["#SSpotIMPopSlider",t("LnNwb25zb3JsaW5rZ3J1ZW4="),t("I3dlcmJ1bmdza3k="),t("I3Jla2xhbWUtcmVjaHRzLW1pdHRl"),t("YVtocmVmXj0iaHR0cHM6Ly9iZDc0Mi5jb20vIl0=")],easyListItaly:[t("LmJveF9hZHZfYW5udW5jaQ=="),".sb-box-pubbliredazionale",t("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"),t("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"),t("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")],easyListLithuania:[t("LnJla2xhbW9zX3RhcnBhcw=="),t("LnJla2xhbW9zX251b3JvZG9z"),t("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"),t("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"),t("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")],estonian:[t("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],fanboyAnnoyances:["#ac-lre-player",".navigate-to-top","#subscribe_popup",".newsletter_holder","#back-top"],fanboyAntiFacebook:[".util-bar-module-firefly-visible"],fanboyEnhancedTrackers:[".open.pushModal","#issuem-leaky-paywall-articles-zero-remaining-nag","#sovrn_container",'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',".BlockNag__Card"],fanboySocial:["#FollowUs","#meteored_share","#social_follow",".article-sharer",".community__social-desc"],frellwitSwedish:[t("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="),t("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="),"article.category-samarbete",t("ZGl2LmhvbGlkQWRz"),"ul.adsmodern"],greekAdBlock:[t("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"),t("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="),t("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"),"DIV.agores300","TABLE.advright"],hungarian:["#cemp_doboz",".optimonk-iframe-container",t("LmFkX19tYWlu"),t("W2NsYXNzKj0iR29vZ2xlQWRzIl0="),"#hirdetesek_box"],iDontCareAboutCookies:['.alert-info[data-block-track*="CookieNotice"]',".ModuleTemplateCookieIndicator",".o--cookies--container","#cookies-policy-sticky","#stickyCookieBar"],icelandicAbp:[t("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],latvian:[t("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="),t("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")],listKr:[t("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="),t("I2xpdmVyZUFkV3JhcHBlcg=="),t("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="),t("aW5zLmZhc3R2aWV3LWFk"),".revenue_unit_item.dable"],listeAr:[t("LmdlbWluaUxCMUFk"),".right-and-left-sponsers",t("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="),t("YVtocmVmKj0iYm9vcmFxLm9yZyJd"),t("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")],listeFr:[t("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="),t("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="),t("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="),".site-pub-interstitiel",'div[id^="crt-"][data-criteo-id]'],officialPolish:["#ceneo-placeholder-ceneo-12",t("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"),t("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="),t("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="),t("ZGl2I3NrYXBpZWNfYWQ=")],ro:[t("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"),t("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"),t("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="),t("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd"),'a[href^="/url/"]'],ruAd:[t("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"),t("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="),t("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="),"#pgeldiz",".yandex-rtb-block"],thaiAds:["a[href*=macau-uta-popup]",t("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="),t("LmFkczMwMHM="),".bumq",".img-kosana"],webAnnoyancesUltralist:["#mod-social-share-2","#social-tools",t("LmN0cGwtZnVsbGJhbm5lcg=="),".zergnet-recommend",".yt.btn-link.btn-md.btn"]}}function Az(t){var e=t===void 0?{}:t,n=e.debug;return Yf(this,void 0,void 0,function(){var r,i,a,o,l,s;return Df(this,function(d){switch(d.label){case 0:return pz()?(r=gz(),i=Object.keys(r),a=(s=[]).concat.apply(s,i.map(function(c){return r[c]})),[4,mz(a)]):[2,void 0];case 1:return o=d.sent(),n&&bz(r,o),l=i.filter(function(c){var u=r[c],h=Au(u.map(function(f){return o[f]}));return h>u.length*.6}),l.sort(),[2,l]}})})}function pz(){return yf()||XQ()}function mz(t){var e;return Yf(this,void 0,void 0,function(){var n,r,i,a,s,o,l,s;return Df(this,function(d){switch(d.label){case 0:for(n=document,r=n.createElement("div"),i=new Array(t.length),a={},EZ(r),s=0;s<t.length;++s)o=vP(t[s]),o.tagName==="DIALOG"&&o.show(),l=n.createElement("div"),EZ(l),l.appendChild(o),r.appendChild(l),i[s]=o;d.label=1;case 1:return n.body?[3,3]:[4,ay(50)];case 2:return d.sent(),[3,1];case 3:n.body.appendChild(r);try{for(s=0;s<t.length;++s)i[s].offsetParent||(a[t[s]]=!0)}finally{(e=r.parentNode)===null||e===void 0||e.removeChild(r)}return[2,a]}})})}function EZ(t){t.style.setProperty("visibility","hidden","important"),t.style.setProperty("display","block","important")}function bz(t,e){for(var n="DOM blockers debug:\n```",r=0,i=Object.keys(t);r<i.length;r++){var a=i[r];n+=` `.concat(a,":");for(var o=0,l=t[a];o<l.length;o++){var s=l[o];n+=` `.concat(e[s]?"🚫":"➡️"," ").concat(s)}}console.log("".concat(n,"\n```"))}function yz(){for(var t=0,e=["rec2020","p3","srgb"];t<e.length;t++){var n=e[t];if(matchMedia("(color-gamut: ".concat(n,")")).matches)return n}}function Fz(){if(SZ("inverted"))return!0;if(SZ("none"))return!1}function SZ(t){return matchMedia("(inverted-colors: ".concat(t,")")).matches}function Qz(){if(WZ("active"))return!0;if(WZ("none"))return!1}function WZ(t){return matchMedia("(forced-colors: ".concat(t,")")).matches}var Uz=100;function Rz(){if(matchMedia("(min-monochrome: 0)").matches){for(var t=0;t<=Uz;++t)if(matchMedia("(max-monochrome: ".concat(t,")")).matches)return t;throw new Error("Too high value")}}function Bz(){if(tp("no-preference"))return 0;if(tp("high")||tp("more"))return 1;if(tp("low")||tp("less"))return-1;if(tp("forced"))return 10}function tp(t){return matchMedia("(prefers-contrast: ".concat(t,")")).matches}function Zz(){if(NZ("reduce"))return!0;if(NZ("no-preference"))return!1}function NZ(t){return matchMedia("(prefers-reduced-motion: ".concat(t,")")).matches}function Iz(){if(GZ("reduce"))return!0;if(GZ("no-preference"))return!1}function GZ(t){return matchMedia("(prefers-reduced-transparency: ".concat(t,")")).matches}function Cz(){if(JZ("high"))return!0;if(JZ("standard"))return!1}function JZ(t){return matchMedia("(dynamic-range: ".concat(t,")")).matches}var is=Math,su=function(){return 0};function vz(){var t=is.acos||su,e=is.acosh||su,n=is.asin||su,r=is.asinh||su,i=is.atanh||su,a=is.atan||su,o=is.sin||su,l=is.sinh||su,s=is.cos||su,d=is.cosh||su,c=is.tan||su,u=is.tanh||su,h=is.exp||su,f=is.expm1||su,g=is.log1p||su,A=function(N){return is.pow(is.PI,N)},b=function(N){return is.log(N+is.sqrt(N*N-1))},p=function(N){return is.log(N+is.sqrt(N*N+1))},y=function(N){return is.log((1+N)/(1-N))/2},m=function(N){return is.exp(N)-1/is.exp(N)/2},F=function(N){return(is.exp(N)+1/is.exp(N))/2},R=function(N){return is.exp(N)-1},C=function(N){return(is.exp(2*N)-1)/(is.exp(2*N)+1)},B=function(N){return is.log(1+N)};return{acos:t(.12312423423423424),acosh:e(1e308),acoshPf:b(1e154),asin:n(.12312423423423424),asinh:r(1),asinhPf:p(1),atanh:i(.5),atanhPf:y(.5),atan:a(.5),sin:o(-1e300),sinh:l(1),sinhPf:m(1),cos:s(10.000000000123),cosh:d(1),coshPf:F(1),tan:c(-1e300),tanh:u(1),tanhPf:C(1),exp:h(1),expm1:f(1),expm1Pf:R(1),log1p:g(10),log1pPf:B(10),powPI:A(-100)}}var Vz="mmMwWLliI0fiflO&1",i1={default:[],apple:[{font:"-apple-system-body"}],serif:[{fontFamily:"serif"}],sans:[{fontFamily:"sans-serif"}],mono:[{fontFamily:"monospace"}],min:[{fontSize:"1px"}],system:[{fontFamily:"system-ui"}]};function Ez(){return Sz(function(t,e){for(var n={},r={},i=0,a=Object.keys(i1);i<a.length;i++){var o=a[i],l=i1[o],s=l[0],d=s===void 0?{}:s,c=l[1],u=c===void 0?Vz:c,h=t.createElement("span");h.textContent=u,h.style.whiteSpace="nowrap";for(var f=0,g=Object.keys(d);f<g.length;f++){var A=g[f],b=d[A];b!==void 0&&(h.style[A]=b)}n[o]=h,e.append(t.createElement("br"),h)}for(var p=0,y=Object.keys(i1);p<y.length;p++){var o=y[p];r[o]=n[o].getBoundingClientRect().width}return r})}function Sz(t,e){return e===void 0&&(e=4e3),aS(function(n,r){var i=r.document,a=i.body,o=a.style;o.width="".concat(e,"px"),o.webkitTextSizeAdjust=o.textSizeAdjust="none",z0()?a.style.zoom="".concat(1/r.devicePixelRatio):yf()&&(a.style.zoom="reset");var l=i.createElement("div");return l.textContent=qE([],Array(e/20<<0),!0).map(function(){return"word"}).join(" "),a.appendChild(l),t(i,a)},'<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">')}function Wz(){return navigator.pdfViewerEnabled}function Nz(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=1/0,t[0]=t[0]-t[0],e[3]}function Gz(){var t=window.ApplePaySession;if(typeof(t==null?void 0:t.canMakePayments)!="function")return-1;if(Jz())return-3;try{return t.canMakePayments()?1:0}catch(e){return Tz(e)}}var Jz=EP;function Tz(t){if(t instanceof Error&&t.name==="InvalidAccessError"&&/\bfrom\b.*\binsecure\b/i.test(t.message))return-2;throw t}function Xz(){var t,e=document.createElement("a"),n=(t=e.attributionSourceId)!==null&&t!==void 0?t:e.attributionsourceid;return n===void 0?void 0:String(n)}var oS=-1,lS=-2,kz=new Set([10752,2849,2884,2885,2886,2928,2929,2930,2931,2932,2960,2961,2962,2963,2964,2965,2966,2967,2968,2978,3024,3042,3088,3089,3106,3107,32773,32777,32777,32823,32824,32936,32937,32938,32939,32968,32969,32970,32971,3317,33170,3333,3379,3386,33901,33902,34016,34024,34076,3408,3410,3411,3412,3413,3414,3415,34467,34816,34817,34818,34819,34877,34921,34930,35660,35661,35724,35738,35739,36003,36004,36005,36347,36348,36349,37440,37441,37443,7936,7937,7938]),wz=new Set([34047,35723,36063,34852,34853,34854,34229,36392,36795,38449]),Yz=["FRAGMENT_SHADER","VERTEX_SHADER"],Dz=["LOW_FLOAT","MEDIUM_FLOAT","HIGH_FLOAT","LOW_INT","MEDIUM_INT","HIGH_INT"],sS="WEBGL_debug_renderer_info",Mz="WEBGL_polygon_mode";function Lz(t){var e,n,r,i,a,o,l=t.cache,s=dS(l);if(!s)return oS;if(!uS(s))return lS;var d=cS()?null:s.getExtension(sS);return{version:((e=s.getParameter(s.VERSION))===null||e===void 0?void 0:e.toString())||"",vendor:((n=s.getParameter(s.VENDOR))===null||n===void 0?void 0:n.toString())||"",vendorUnmasked:d?(r=s.getParameter(d.UNMASKED_VENDOR_WEBGL))===null||r===void 0?void 0:r.toString():"",renderer:((i=s.getParameter(s.RENDERER))===null||i===void 0?void 0:i.toString())||"",rendererUnmasked:d?(a=s.getParameter(d.UNMASKED_RENDERER_WEBGL))===null||a===void 0?void 0:a.toString():"",shadingLanguageVersion:((o=s.getParameter(s.SHADING_LANGUAGE_VERSION))===null||o===void 0?void 0:o.toString())||""}}function Hz(t){var e=t.cache,n=dS(e);if(!n)return oS;if(!uS(n))return lS;var r=n.getSupportedExtensions(),i=n.getContextAttributes(),a=[],o=[],l=[],s=[],d=[];if(i)for(var c=0,u=Object.keys(i);c<u.length;c++){var h=u[c];o.push("".concat(h,"=").concat(i[h]))}for(var f=TZ(n),g=0,A=f;g<A.length;g++){var b=A[g],p=n[b];l.push("".concat(b,"=").concat(p).concat(kz.has(p)?"=".concat(n.getParameter(p)):""))}if(r)for(var y=0,m=r;y<m.length;y++){var F=m[y];if(!(F===sS&&cS()||F===Mz&&Kz())){var R=n.getExtension(F);if(!R){a.push(F);continue}for(var C=0,B=TZ(R);C<B.length;C++){var b=B[C],p=R[b];s.push("".concat(b,"=").concat(p).concat(wz.has(p)?"=".concat(n.getParameter(p)):""))}}}for(var N=0,S=Yz;N<S.length;N++)for(var X=S[N],J=0,E=Dz;J<E.length;J++){var v=E[J],j=xz(n,X,v);d.push("".concat(X,".").concat(v,"=").concat(j.join(",")))}return s.sort(),l.sort(),{contextAttributes:o,parameters:l,shaderPrecisions:d,extensions:r,extensionParameters:s,unsupportedExtensions:a}}function dS(t){if(t.webgl)return t.webgl.context;var e=document.createElement("canvas"),n;e.addEventListener("webglCreateContextError",function(){return n=void 0});for(var r=0,i=["webgl","experimental-webgl"];r<i.length;r++){var a=i[r];try{n=e.getContext(a)}catch{}if(n)break}return t.webgl={context:n},n}function xz(t,e,n){var r=t.getShaderPrecisionFormat(t[e],t[n]);return r?[r.rangeMin,r.rangeMax,r.precision]:[]}function TZ(t){var e=Object.keys(t.__proto__);return e.filter(Oz)}function Oz(t){return typeof t=="string"&&!t.match(/[^A-Z0-9_x]/)}function cS(){return iS()}function Kz(){return z0()||yf()}function uS(t){return typeof t.getParameter=="function"}function Pz(){var t,e=XQ()||yf();return e?window.AudioContext&&(t=new AudioContext().baseLatency)!==null&&t!==void 0?t:-1:-2}var zz={fonts:NP,domBlockers:Az,fontPreferences:Ez,audio:UP,screenFrame:tz,canvas:JP,osCpu:xP,languages:OP,colorDepth:KP,deviceMemory:PP,screenResolution:zP,hardwareConcurrency:nz,timezone:rz,sessionStorage:az,localStorage:oz,indexedDB:lz,openDatabase:sz,cpuClass:dz,platform:cz,plugins:GP,touchSupport:HP,vendor:uz,vendorFlavors:fz,cookiesEnabled:hz,colorGamut:yz,invertedColors:Fz,forcedColors:Qz,monochrome:Rz,contrast:Bz,reducedMotion:Zz,reducedTransparency:Iz,hdr:Cz,math:vz,pdfViewerEnabled:Wz,architecture:Nz,applePay:Gz,privateClickMeasurement:Xz,audioBaseLatency:Pz,webGlBasics:Lz,webGlExtensions:Hz};function jz(t){return hP(zz,t,[])}var _z="$ if upgrade to Pro: https://fpjs.dev/pro";function $z(t){var e=qz(t),n=e7(e);return{score:e,comment:_z.replace(/\$/g,"".concat(n))}}function qz(t){if(XQ())return .4;if(yf())return TQ()&&!(_0()&&j0())?.5:.3;var e="value"in t.platform?t.platform.value:"";return/^Win/.test(e)?.6:/^Mac/.test(e)?.5:.7}function e7(t){return nS(.99+.01*t,1e-4)}function t7(t){for(var e="",n=0,r=Object.keys(t).sort();n<r.length;n++){var i=r[n],a=t[i],o="error"in a?"error":JSON.stringify(a.value);e+="".concat(e?"|":"").concat(i.replace(/([:|\\])/g,"\\$1"),":").concat(o)}return e}function fS(t){return JSON.stringify(t,function(e,n){return n instanceof Error?dP(n):n},2)}function hS(t){return sP(t7(t))}function n7(t){var e,n=$z(t);return{get visitorId(){return e===void 0&&(e=hS(this.components)),e},set visitorId(r){e=r},confidence:n,components:t,version:eS}}function r7(t){return t===void 0&&(t=50),qK(t,t*2)}function i7(t,e){var n=Date.now();return{get:function(r){return Yf(this,void 0,void 0,function(){var i,a,o;return Df(this,function(l){switch(l.label){case 0:return i=Date.now(),[4,t()];case 1:return a=l.sent(),o=n7(a),(e||r!=null&&r.debug)&&console.log("Copy the text below to get the debug data:\n\n```\nversion: ".concat(o.version,` userAgent: `).concat(navigator.userAgent,` timeBetweenLoadAndGet: `).concat(i-n,` visitorId: `).concat(o.visitorId,` components: `).concat(fS(a),"\n```")),[2,o]}})})}}}function a7(){if(!(window.__fpjs_d_m||Math.random()>=.001))try{var t=new XMLHttpRequest;t.open("get","https://m1.openfpcdn.io/fingerprintjs/v".concat(eS,"/npm-monitoring"),!0),t.send()}catch(e){console.error(e)}}function o7(t){var e;return t===void 0&&(t={}),Yf(this,void 0,void 0,function(){var n,r,i;return Df(this,function(a){switch(a.label){case 0:return(!((e=t.monitoring)!==null&&e!==void 0)||e)&&a7(),n=t.delayFallback,r=t.debug,[4,r7(n)];case 1:return a.sent(),i=jz({cache:{},debug:r}),[2,i7(i,r)]}})})}var l7={load:o7,hashComponents:hS,componentsToDebugString:fS};const gS=async()=>{const e=await(await l7.load()).get(),n=navigator.userAgent;let r="Unknown OS",i="Unknown Identifier";return/Windows/i.test(n)?(r="Windows",i="Windows Device"):/Macintosh|Mac/i.test(n)?(r="Mac",i="Mac Device"):/iPhone|iPad|iPod/i.test(n)?(r="iOS",i="iOS Device"):/Android/i.test(n)?(r="Android",i="Android Device"):/Linux/i.test(n)&&(r="Linux",i="Linux Device"),{deviceId:e.visitorId,os:r,identifierType:i}},s7={class:"inputs"},d7=["onInput","id","onKeydown","autofocus"],c7={class:"main-btn",type:"submit"},u7=["disabled"],f7={__name:"PhoneActivation",setup(t){const e=po(),n=hn(null);Ka(async()=>{n.value=await gS()});const{postMethod:r,postResult:i,toast:a,loading:o,handleToast:l}=va(),s=hn({code:["","","","","",""]}),d=hn(!1),c=hn(60);let u=null;const h=(y,m)=>{const F=y.target.value;if(s.value.code[m-1]=F,F.length===1){const R=document.getElementById(`input-${m+1}`);R&&R.focus()}if(F.length===0){const R=document.getElementById(`input-${m-1}`);R&&R.focus()}},f=y=>{const m=y.key;!/[0-9]/.test(m)&&m!=="Backspace"&&m!=="Tab"&&y.preventDefault()},g=hn(!1),A=()=>{if(s.value.code.join("").length==0)l("error",e.lang==="ar"?"كود التحقق مطلوب":e.lang==="en"?"verification code is required.":"ایکٹیویشن کوڈ درکار ہے۔");else if(s.value.code.join("").length<6)l("error",e.lang==="ar"?"كود التحقق يجب أن يكون 6 أرقام.":e.lang==="en"?"verification code must be 6 digits.":"ایکٹیویشن کوڈ 6 اعداد پر مشتمل ہونا ضروری ہے۔");else{const y=new FormData;y.append("code",s.value.code.join("")),y.append("country_code",e==null?void 0:e.country_code),y.append("phone",e==null?void 0:e.phone),y.append("device_id",e==null?void 0:e.messagesToken),y.append("device_type","web"),r("provider/activate?_method=patch",y,!1,"/orders","toast"),g.value=!0}},b=()=>{u&&clearInterval(u),d.value=!0,c.value=60,u=setInterval(()=>{c.value<=0?(clearInterval(u),d.value=!1):c.value--},1e3)},p=()=>{const y=new FormData;y.append("country_code",e.country_code),y.append("phone",e.phone),r("provider/resend-code",y,!1,"","toast"),b()};return FA(()=>{var y,m;((y=i==null?void 0:i.value)==null?void 0:y.key)==="success"&&g.value&&e.handleStoredProfile((m=i==null?void 0:i.value)==null?void 0:m.data)}),Ka(()=>{b()}),(y,m)=>(oe(),Ce("div",null,[Q("form",{onSubmit:ud(A,["prevent"])},[Q("h5",null,ce(y.$t("activationCode.title")),1),Q("p",null,ce(y.$t("activationCode.text")),1),Q("div",s7,[(oe(),Ce(Er,null,ia(6,F=>Q("div",{class:"input",key:F},[Q("input",{type:"text",maxlength:"1",onInput:R=>h(R,F),id:"input-"+F,onKeypress:f,onKeydown:dA(ud(A,["prevent"]),["enter"]),autofocus:F==1},null,40,d7)])),64))]),Q("button",c7,ce(y.$t("activationCode.btn")),1),Q("p",null,[Ni(ce(y.$t("activationCode.have_code"))+" ",1),Q("button",{onClick:p,type:"button",disabled:d.value,style:ja(d.value?"color:grey":"")},ce(d.value?`${y.$t("activationCode.resendWait")} ${c.value} ${y.$t("activationCode.seconds")}`:y.$t("activationCode.resend")),13,u7)])],32),Fn(ct(ol),{ref_key:"toast",ref:a,position:"top-right"},null,512),ct(o)?(oe(),Vn(Ru,{key:0})):Pt("",!0)]))}},h7=Pi(f7,[["__scopeId","data-v-b18d942c"]]),g7=["dir"],A7={key:0,class:"selected-sections"},p7=["onClick"],m7={key:1,class:"selected-sections"},b7=["onClick"],y7={key:2,class:"multiSelect_placeholder"},F7={__name:"MultiSelectSections",props:{departmentError:{type:String,default:""},category_id:{type:Number,default:0},departments:{type:Object,default:()=>[]}},emits:["handleDepartments"],setup(t,{emit:e}){const n=dc(),{getMethod:r,getResult:i}=va(),a=t,o=e,l=hn(),s=hn(a.departments),d=hn(-1);yi(()=>a.category_id,u=>{u&&(d.value++,r(`general/categories/${u}`,!1))}),yi(()=>i.value,u=>{u&&((n.path=="/signup"||d.value>0)&&(s.value=[]),l.value=u.data)});const c=u=>{s.value.splice(u,1)};return yi(s,(u,h)=>{u!==h&&o("handleDepartments",s.value)}),(u,h)=>{var g;const f=Li("MultiSelect");return oe(),Ce("div",{dir:u.$i18n.locale==="ar"?"rtl":"ltr",class:"input",style:ja({marginBottom:a.departmentError?"15px":"4px"})},[Fn(f,{modelValue:s.value,"onUpdate:modelValue":h[0]||(h[0]=A=>s.value=A),options:l.value,optionLabel:"name",placeholder:u.$t("signup.departments_placeholder"),style:{direction:"inherit !important"}},null,8,["modelValue","options","placeholder"]),((g=s.value)==null?void 0:g.filter(A=>A.parent_id===a.category_id).length)>0?(oe(),Ce("div",A7,[(oe(!0),Ce(Er,null,ia(s.value.filter(A=>A.parent_id===a.category_id),(A,b)=>(oe(),Ce("div",{key:b,class:"selected-item"},[Q("span",null,ce(A.name),1),Q("button",{type:"button",onClick:p=>c(b),class:"remove-btn"},h[1]||(h[1]=[Q("i",{class:"pi pi-times"},null,-1)]),8,p7)]))),128))])):s.value.length>0?(oe(),Ce("div",m7,[(oe(!0),Ce(Er,null,ia(s.value,(A,b)=>(oe(),Ce("div",{key:b,class:"selected-item"},[Q("span",null,ce(A.name),1),Q("button",{type:"button",onClick:p=>c(b),class:"remove-btn"},h[2]||(h[2]=[Q("i",{class:"pi pi-times"},null,-1)]),8,b7)]))),128))])):(oe(),Ce("div",y7,ce(u.$t("signup.departments_placeholder")),1))],12,g7)}}},AS=Pi(F7,[["__scopeId","data-v-6c47bee6"]]),Q7={value:"0"},U7=["value"],pS={__name:"CategorySelect",props:{category_id:{type:Number,default:0}},emits:["clearError","handleCategory"],setup(t,{emit:e}){const{getMethod:n,getResult:r}=va(),i=t,a=hn(0),o=e;return yi(()=>i.category_id,l=>{l&&(a.value=l)}),Ka(()=>{n("general/categories",!1)}),(l,s)=>{var d,c;return br((oe(),Ce("select",{id:"category","onUpdate:modelValue":s[0]||(s[0]=u=>a.value=u),onInput:s[1]||(s[1]=u=>o("clearError","category")),onChange:s[2]||(s[2]=u=>o("handleCategory",a.value))},[Q("option",Q7,ce(l.$t("signup.category_placeholder")),1),(oe(!0),Ce(Er,null,ia((c=(d=ct(r))==null?void 0:d.data)==null?void 0:c.filter(u=>u==null?void 0:u.has_childs),u=>(oe(),Ce("option",{key:u.id,value:u.id},ce(u.name),9,U7))),128))],544)),[[yh,a.value]])}}},R7={value:"0"},B7=["value"],mS={__name:"CitiesSelect",props:{city_id:{type:Number,default:0}},emits:["clearError","handleCity"],setup(t,{emit:e}){const{getMethod:n,getResult:r}=va(),i=t,a=hn(0),o=e;return yi(()=>i.city_id,l=>{l&&(a.value=l)}),Ka(()=>{n("general/cities",!1)}),(l,s)=>{var d;return br((oe(),Ce("select",{id:"category","onUpdate:modelValue":s[0]||(s[0]=c=>a.value=c),onInput:s[1]||(s[1]=c=>o("clearError","city")),onChange:s[2]||(s[2]=c=>o("handleCity",a.value))},[Q("option",R7,ce(l.$t("signup.city_placeholder")),1),(oe(!0),Ce(Er,null,ia((d=ct(r))==null?void 0:d.data,c=>(oe(),Ce("option",{key:c.id,value:c.id},ce(c.name),9,B7))),128))],544)),[[yh,a.value]])}}},Z7={value:"0"},I7=["value"],bS={__name:"NeighborhoodSelect",props:{city_id:{type:Number,default:0},neighborhood_id:{type:Number,default:0},neighborhoods:{type:Object,default:()=>[]}},emits:["clearError","handleNeighborhood"],setup(t,{emit:e}){const{getMethod:n,getResult:r}=va(),i=t,a=hn(i.neighborhoods);yi(()=>i.neighborhoods,d=>{d&&(a.value=d)});const o=hn(i.neighborhood_id);yi(()=>i.neighborhood_id,d=>{d&&setTimeout(()=>{o.value=d},500)});const l=hn(!1);yi(()=>i.city_id,d=>{d&&(l.value=!0,n(`general/get_city_neighborhoods/${d}`,!1),o.value=0)});const s=e;return Ka(()=>{o.value=i.neighborhood_id}),(d,c)=>br((oe(),Ce("select",{id:"neighborhood","onUpdate:modelValue":c[0]||(c[0]=u=>o.value=u),onInput:c[1]||(c[1]=u=>s("clearError","neighborhood")),onChange:c[2]||(c[2]=u=>s("handleNeighborhood",o.value))},[Q("option",Z7,ce(d.$t("signup.neighborhood_placeholder")),1),(oe(!0),Ce(Er,null,ia(a.value,u=>(oe(),Ce("option",{key:u==null?void 0:u.id,value:u==null?void 0:u.id},ce(u==null?void 0:u.name),9,I7))),128))],544)),[[yh,o.value]])}},C7={class:"popup"},v7={class:"content"},V7={class:"bottom-field"},E7={key:0,class:"input"},S7={__name:"MapPopup",props:{selectedPosition:{type:Object,default:null},lat:{type:Number,default:null},lng:{type:Number,default:null}},emits:["handleMapClick","handleShowMap"],setup(t,{emit:e}){const n=hn(""),r=t,i=e,a=hn(null),o=hn(null);async function l(u){const h={lat:u.latLng.lat(),lng:u.latLng.lng()},f=await d(h.lat,h.lng),g=a.value.$mapObject,A={city:f,zoom:g.getZoom(),center:g.getCenter().toJSON()};o.value=h,n.value=f,i("handleMapClick",h,A),mapLocation.value=A.city}const s=()=>{i("handleShowMap")};async function d(u,h){const f=new google.maps.Geocoder;return new Promise((g,A)=>{f.geocode({location:{lat:u,lng:h},language:"ar"},(b,p)=>{if(p==="OK"&&b[0]){const m=b[0].address_components.find(F=>F.types.includes("locality")||F.types.includes("administrative_area_level_2"));g(m?m.long_name:"مدينة غير معروفة")}else A("فشل الحصول على الموقع بسبب: "+p)})})}function c(){navigator.geolocation?navigator.geolocation.getCurrentPosition(async u=>{const{latitude:h,longitude:f}=u.coords,g={lat:h,lng:f};o.value=g;const A=await d(h,f);n.value=A;const b=a.value.$mapObject,p={city:A,zoom:b.getZoom(),center:b.getCenter().toJSON()};i("handleMapClick",g,p),b.panTo(g)}):alert("الموقع الجغرافي غير مدعوم بواسطة هذا المتصفح.")}return(u,h)=>{var A;const f=Li("GMapMarker"),g=Li("GMapMap");return oe(),Ce("div",C7,[Q("div",v7,[Q("button",{class:"close-popup",onClick:h[0]||(h[0]=b=>u.$emit("handleShowMap"))},h[1]||(h[1]=[Q("i",{class:"pi pi-times"},null,-1)])),Q("button",{class:"location-btn",onClick:c},h[2]||(h[2]=[Q("i",{class:"pi pi-map-marker"},null,-1)])),Fn(g,{ref_key:"mapRef",ref:a,center:{lat:parseFloat(r.lat||24.68773),lng:parseFloat(r.lng||46.72185)},zoom:10,style:{width:"100%",height:"400px"},onClick:l},{default:Yr(()=>[o.value?(oe(),Vn(f,{key:0,position:o.value},null,8,["position"])):Pt("",!0)]),_:1},8,["center"]),Q("div",V7,[n.value!==""?(oe(),Ce("div",E7,[h[3]||(h[3]=Q("i",{class:"pi pi-map-marker"},null,-1)),Q("span",null,ce(n.value||((A=o.value)==null?void 0:A.map_desc)),1)])):Pt("",!0),Q("button",{class:"save-btn",onClick:s}," حفظ ")])])])}}},W7=Pi(S7,[["__scopeId","data-v-66e04f6d"]]);function N7(){const t=hn(!1),e=()=>{t.value=!t.value},n=hn(null);function r(i,a){typeof i.lat=="number"&&typeof i.lng=="number"?n.value={lat:i.lat,lng:i.lng,map_desc:a}:console.error("Invalid coordinates: lat or lng is not a number")}return{showMap:t,handleShowMap:e,selectedPosition:n,handleMapClick:r}}const G7=QV("form",()=>{const t=hn({});return{formData:t,saveFormData:r=>{t.value=r},clearFormData:()=>{t.value={}}}}),J7={class:"sign-page"},T7={class:"content"},X7={class:"form-side"},k7={class:"upper-bar"},w7={class:"skew-image"},Y7={class:"title"},D7={class:"image-uploader"},M7={key:0,for:"img_upload",class:"circle"},L7=["src"],H7={key:1,class:"circle",for:"img_upload"},x7={for:"img_upload"},O7={key:0,class:"error-msg",id:"imageError"},K7={for:"name"},P7=["placeholder"],z7={key:1,class:"error-msg",id:"nameError"},j7={for:"email"},_7=["placeholder"],$7={key:2,class:"error-msg",id:"emailError"},q7={class:"input-wrap phonewithcode"},e6={for:"phone"},t6={class:"input"},n6=["placeholder"],r6={class:"input"},i6={key:0,class:"error-msg",id:"phoneError"},a6={for:"identity_number"},o6=["placeholder"],l6={key:3,class:"error-msg",id:"identity_numberError"},s6={for:"civil_registration_number"},d6=["placeholder"],c6={key:4,class:"error-msg",id:"civil_registration_numberError"},u6={for:"tax_number"},f6=["placeholder"],h6={key:5,class:"error-msg",id:"tax_numberError"},g6={for:"ar_store_title"},A6=["placeholder"],p6={key:6,class:"error-msg",id:"ar_store_titleError"},m6={for:"en_store_title"},b6=["placeholder"],y6={key:7,class:"error-msg",id:"en_store_titleError"},F6={for:"ur_store_title"},Q6=["placeholder"],U6={key:8,class:"error-msg",id:"ur_store_titleError"},R6={for:"ar_store_description"},B6=["placeholder"],Z6={key:9,class:"error-msg",id:"ar_store_descriptionError"},I6={for:"en_store_description"},C6=["placeholder"],v6={key:10,class:"error-msg",id:"en_store_descriptionError"},V6={for:"ur_store_description"},E6=["placeholder"],S6={key:11,class:"error-msg",id:"ur_store_descriptionError"},W6={for:"category"},N6={key:12,class:"error-msg",id:"categoryError"},G6={for:"departments"},J6={key:13,class:"error-msg",id:"departmentsError"},T6={for:"logo_img"},X6={key:0,for:"logo_img",class:"image_placeholder"},k6={key:1,for:"logo_img",class:"images"},w6={class:"image"},Y6=["src"],D6={key:14,class:"error-msg",id:"logoImgError"},M6={class:"input-wrap phonewithcode"},L6={for:"whatsapp"},H6={class:"input"},x6=["placeholder"],O6={class:"input"},K6={key:0,class:"error-msg",id:"whatsappError"},P6={for:"minimum_order"},z6=["placeholder"],j6={key:15,class:"error-msg",id:"minimum_orderError"},_6={for:"arrangement_duration"},$6=["placeholder"],q6={key:16,class:"error-msg",id:"arrangement_durationError"},ej={for:"city"},tj={key:17,class:"error-msg",id:"cityError"},nj={key:18,for:"neighborhood"},rj={key:20,class:"error-msg",id:"neightborhoodError"},ij={for:"store_address"},aj=["placeholder"],oj={for:"owner_label"},lj=["placeholder"],sj={key:21,class:"error-msg",id:"owner_labelError"},dj={for:"account_label"},cj=["placeholder"],uj={key:22,class:"error-msg",id:"account_labelError"},fj={for:"bank_name"},hj=["placeholder"],gj={key:23,class:"error-msg",id:"bank_nameError"},Aj={for:"iban_label"},pj=["placeholder"],mj={key:24,class:"error-msg",id:"iban_labelError"},bj={for:"account_details_img"},yj={key:0,for:"account_details_img",class:"image_placeholder"},Fj={key:1,for:"account_details_img",class:"images"},Qj={class:"image"},Uj=["src"],Rj={key:25,class:"error-msg",id:"account_details_imgError"},Bj={for:"delivery_method"},Zj={class:"inputs"},Ij={class:"radio_input"},Cj=["checked"],vj={for:"delivery"},Vj={class:"radio_input"},Ej=["checked"],Sj={for:"store"},Wj={class:"radio_input"},Nj=["checked"],Gj={for:"both"},Jj={key:26,class:"error-msg",id:"delivery_methodError"},Tj={class:"terms"},Xj={for:"terms"},kj={key:27,class:"error-msg",id:"termsError"},wj={type:"submit",class:"main-btn"},Yj={__name:"Signup",setup(t){const e=G7(),n=Ag(),{showMap:r,handleShowMap:i,selectedPosition:a,handleMapClick:o}=N7(),{getMethod:l,postMethod:s,getResult:d,toast:c,loading:u,handleToast:h}=va(),f=po(),g=z=>{p.value.errors[z]&&delete p.value.errors[z]},A=z=>{p.value.country_code=z},b=z=>{p.value.whatsapp_code=z},p=hn({image:"",name:"",email:"",phone:"",country_code:"966",identity_number:"",civil_registration_number:"",tax_number:"",ar_store_title:"",en_store_title:"",ur_store_title:"",ar_store_description:"",en_store_description:"",ur_store_description:"",category:0,departments:[],lat:"31.037933",lng:"31.381523",map_desc:"ElRyadh",store_address:"ElRyadh",logoImg:"",whatsapp_code:"966",whatsapp:"",minimum_order:"",arrangement_duration:"",city:"",neighborhood:"",owner_label:"",account_label:"",bank_name:"",iban_label:"",account_details_img:"",delivery_method:"",terms:!1,errors:{}}),y=()=>{e.clearFormData()},m=()=>{e.saveFormData(p.value),n.push("/terms_and_conditions")},F=hn(),R=z=>{const q=z.target.files[0];if(!q){h("error",(f==null?void 0:f.lang)==="ar"?"لم يتم تحديد أي ملف.":(f==null?void 0:f.lang)==="en"?"No file selected.":"کوئی فائل منتخب نہیں کی گئی۔"),p.value.image="";return}if(!q.type.startsWith("image/")){h("error",(f==null?void 0:f.lang)==="ar"?"يجب أن يكون الملف صورة بصيغة مدعومة مثل JPEG, PNG، أو GIF.":(f==null?void 0:f.lang)==="en"?"The file must be an image in a supported format like JPEG, PNG, or GIF.":"فائل کو تصویر ہونا چاہیے، جیسے JPEG، PNG، یا GIF۔"),p.value.image="";return}F.value=URL.createObjectURL(q),p.value.image=q,delete p.value.errors.image},C=hn(),B=z=>{const q=z.target.files[0];if(!q){h("error",(f==null?void 0:f.lang)==="ar"?"لم يتم تحديد أي ملف.":(f==null?void 0:f.lang)==="en"?"No file selected.":"کوئی فائل منتخب نہیں کی گئی۔");return}if(!q.type.startsWith("image/")){h("error",(f==null?void 0:f.lang)==="ar"?"يجب أن يكون الملف صورة بصيغة مدعومة مثل JPEG, PNG, أو GIF.":(f==null?void 0:f.lang)==="en"?"The file must be an image in a supported format like JPEG, PNG, or GIF.":"فائل کو تصویر ہونا چاہیے، جیسے JPEG، PNG، یا GIF۔");return}p.value.errors.logoImg="",p.value.logoImg=q,C.value=URL.createObjectURL(q)},N=hn(),S=z=>{const q=z.target.files[0];if(!q){h("error",(f==null?void 0:f.lang)==="ar"?"لم يتم تحديد أي ملف.":(f==null?void 0:f.lang)==="en"?"No file selected.":"کوئی فائل منتخب نہیں کی گئی۔"),p.value.account_details_img="";return}if(!q.type.startsWith("image/")){h("error",(f==null?void 0:f.lang)==="ar"?"يجب أن يكون الملف صورة بصيغة مدعومة مثل JPEG, PNG، أو GIF.":(f==null?void 0:f.lang)==="en"?"The file must be an image in a supported format like JPEG, PNG, or GIF.":"فائل کو تصویر ہونا چاہیے، جیسے JPEG، PNG، یا GIF۔"),p.value.account_details_img="";return}p.value.errors.account_details_img="",N.value=URL.createObjectURL(q),p.value.account_details_img=q};FA(()=>{p.value.image&&(F.value=URL.createObjectURL(p.value.image)),p.value.logoImg&&(C.value=URL.createObjectURL(p.value.logoImg)),p.value.account_details_img&&(N.value=URL.createObjectURL(p.value.account_details_img))});const X=()=>{const z={};p.value.image||(z.image=(f==null?void 0:f.lang)==="ar"?"يجب إضافة الصورة الشخصية":(f==null?void 0:f.lang)==="en"?"You must add the profile picture.":"شخصی تصویر شامل کرنی چاہیے"),p.value.name?p.value.name.length<2&&(z.name=(f==null?void 0:f.lang)==="ar"?"يجب أن يكون الاسم مكونًا من حرفين على الأقل":(f==null?void 0:f.lang)==="en"?"Name must be at least 2 characters long.":"نام میں کم از کم 2 حروف ہونے چاہئیں"):z.name=(f==null?void 0:f.lang)==="ar"?"الاسم مطلوب":(f==null?void 0:f.lang)==="en"?"Name is required.":"نام ضروری ہے",p.value.email?/\S+@\S+\.\S+/.test(p.value.email)||(z.email=(f==null?void 0:f.lang)==="ar"?"البريد الإلكتروني غير صالح. يجب أن يحتوي على @ ونطاق صالح.":(f==null?void 0:f.lang)==="en"?"Invalid email. It should contain @ and a valid domain.":"غلط ای میل۔ اس میں @ اور ایک درست ڈومین ہونا چاہیے"):z.email=(f==null?void 0:f.lang)==="ar"?"البريد الإلكتروني مطلوب":(f==null?void 0:f.lang)==="en"?"Email is required.":"ایمیل ضروری ہے",p.value.phone||(z.phone=(f==null?void 0:f.lang)==="ar"?"رقم الجوال مطلوب":(f==null?void 0:f.lang)==="en"?"Phone number is required.":"فون نمبر ضروری ہے"),p.value.identity_number||(z.identity_number=(f==null?void 0:f.lang)==="ar"?"رقم الهوية مطلوب":(f==null?void 0:f.lang)==="en"?"Identity number is required.":"شناختی نمبر ضروری ہے"),p.value.civil_registration_number||(z.civil_registration_number=(f==null?void 0:f.lang)==="ar"?"رقم التسجيل التجاري مطلوب":(f==null?void 0:f.lang)==="en"?"Civil registration number is required.":"شہری رجسٹریشن نمبر ضروری ہے"),p.value.tax_number||(z.tax_number=(f==null?void 0:f.lang)==="ar"?"رقم الضريبة مطلوب":(f==null?void 0:f.lang)==="en"?"Tax number is required.":"ٹیکس نمبر ضروری ہے");const q=(Ke,pe)=>{var xe;((xe=p.value[pe])==null?void 0:xe.trim())||(z[pe]=(f==null?void 0:f.lang)==="ar"?`عنوان المتجر باللغة ${Ke} مطلوب`:(f==null?void 0:f.lang)==="en"?`Store title in ${Ke} is required.`:`متجر کا عنوان ${Ke} میں ضروری ہے`)};q("العربية","ar_store_title"),q("الإنجليزية","en_store_title"),q("الأوردو","ur_store_title");const Ae=(Ke,pe)=>{var xe;((xe=p.value[pe])==null?void 0:xe.trim())||(z[pe]=(f==null?void 0:f.lang)==="ar"?`وصف المتجر باللغة ${Ke} مطلوب`:(f==null?void 0:f.lang)==="en"?`Store description in ${Ke} is required.`:`متجر کی وضاحت ${Ke} میں ضروری ہے`)};return Ae("العربية","ar_store_description"),Ae("الإنجليزية","en_store_description"),Ae("الأوردو","ur_store_description"),p.value.category||(z.category=(f==null?void 0:f.lang)==="ar"?"التصنيف مطلوب":(f==null?void 0:f.lang)==="en"?"Category is required.":"زمرہ ضروری ہے"),p.value.departments||(z.departments=(f==null?void 0:f.lang)==="ar"?"الأقسام مطلوبة":(f==null?void 0:f.lang)==="en"?"Departments are required.":"محکمے ضروری ہیں"),p.value.logoImg||(z.logoImg=(f==null?void 0:f.lang)==="ar"?"صورة الشعار مطلوبة":(f==null?void 0:f.lang)==="en"?"Logo image is required.":"لوگو کی تصویر ضروری ہے"),p.value.whatsapp||(z.whatsapp=(f==null?void 0:f.lang)==="ar"?"رقم الواتساب مطلوب":(f==null?void 0:f.lang)==="en"?"WhatsApp number is required.":"واٹس ایپ نمبر ضروری ہے"),p.value.arrangement_duration?p.value.arrangement_duration<=0&&(z.arrangement_duration=(f==null?void 0:f.lang)==="ar"?"مدة تجهيز الطلب يجب أن تكون أكبر من صفر":(f==null?void 0:f.lang)==="en"?"Order preparation time must be greater than zero.":"آرڈر تیاری کا وقت صفر سے زیادہ ہونا چاہیے"):z.arrangement_duration=(f==null?void 0:f.lang)==="ar"?"مدة تجهيز الطلب مطلوبة":(f==null?void 0:f.lang)==="en"?"Order preparation time is required.":"آرڈر تیاری کا وقت ضروری ہے",p.value.city||(z.city=(f==null?void 0:f.lang)==="ar"?"المدينة مطلوبة":(f==null?void 0:f.lang)==="en"?"City is required.":"شہر ضروری ہے"),p.value.neighborhood||(z.neighborhood=(f==null?void 0:f.lang)==="ar"?"الحي مطلوب":(f==null?void 0:f.lang)==="en"?"Neighborhood is required.":"محلہ ضروری ہے"),p.value.store_address||(z.store_address=(f==null?void 0:f.lang)==="ar"?"عنوان المتجر مطلوب":(f==null?void 0:f.lang)==="en"?"Store address is required.":"متجر کا پتہ ضروری ہے"),p.value.owner_label||(z.owner_label=(f==null?void 0:f.lang)==="ar"?"إسم صاحب الحساب البنكي مطلوب":(f==null?void 0:f.lang)==="en"?"Account holder name is required.":"بینک اکاؤنٹ کے مالک کا نام ضروری ہے"),p.value.account_label||(z.account_label=(f==null?void 0:f.lang)==="ar"?"رقم الحساب مطلوب":(f==null?void 0:f.lang)==="en"?"Account number is required.":"اکاؤنٹ نمبر ضروری ہے"),p.value.bank_name||(z.bank_name=(f==null?void 0:f.lang)==="ar"?"اسم البنك مطلوب":(f==null?void 0:f.lang)==="en"?"Bank name is required.":"بینک کا نام ضروری ہے"),p.value.iban_label||(z.iban_label=(f==null?void 0:f.lang)==="ar"?"رقم الايبان مطلوب":(f==null?void 0:f.lang)==="en"?"IBAN number is required.":"آئبان نمبر ضروری ہے"),p.value.account_details_img||(z.account_details_img=(f==null?void 0:f.lang)==="ar"?"صورة بيانات الحساب البنكي مطلوبة":(f==null?void 0:f.lang)==="en"?"Bank account details image is required.":"بینک اکاؤنٹ کی تفصیلات کی تصویر ضروری ہے"),p.value.terms||(z.terms=(f==null?void 0:f.lang)==="ar"?"يجب قبول الشروط والأحكام":(f==null?void 0:f.lang)==="en"?"You must accept the terms and conditions.":"آپ کو شرائط و ضوابط قبول کرنے کی ضرورت ہے"),p.value.delivery_method||(z.delivery_method=(f==null?void 0:f.lang)==="ar"?"يجب إختيار طريقة التوصيل":(f==null?void 0:f.lang)==="en"?"You must select a delivery method.":"آپ کو ترسیل کے طریقہ کا انتخاب کرنا ضروری ہے"),p.value.errors=z,z};yi(()=>f==null?void 0:f.lang,z=>{z&&(p.value.errors={})});const J=hn([]);yi(d,(z,q)=>{z!==q&&(J.value=d.value.data)});const E=z=>{p.value.category=z,l(`general/categories/${z}`,!1)},v=z=>{p.value.departments=z},j=z=>{p.value.city=z,p.value.neighborhood=0,l(`general/get_city_neighborhoods/${z}`,!1)},H=z=>{p.value.neighborhood=z},K=hn();yi(()=>d==null?void 0:d.value,z=>{z&&(K.value=z.data)}),yi(()=>f==null?void 0:f.lang,z=>{z&&location.reload()});const Fe=async()=>{p.value.errors={};const z=X();if(Object.keys(z).length>0){await Bp();const q=Object.keys(z)[0],Ae=document.getElementById(`${q}Error`);Ae&&Ae.scrollIntoView({behavior:"smooth",block:"center"})}else{const q=new FormData;q.append("image",p.value.image),q.append("name",p.value.name),q.append("email",p.value.email),q.append("country_code",p.value.country_code),q.append("phone",p.value.phone),q.append("identity_number",p.value.identity_number),q.append("civil_registration_number",p.value.civil_registration_number),q.append("tax_number",p.value.tax_number),q.append("whatsapp_country_code",p.value.whatsapp_code),q.append("whatsapp_phone",p.value.whatsapp),q.append("minimum_order",p.value.minimum_order),q.append("store_name[ar]",p.value.ar_store_title),q.append("store_name[en]",p.value.en_store_title),q.append("store_name[ur]",p.value.ur_store_title),q.append("store_description[ar]",p.value.ar_store_description),q.append("store_description[en]",p.value.en_store_description),q.append("store_description[ur]",p.value.ur_store_description),q.append("category_id",p.value.category),p.value.departments.forEach((Ae,Ke)=>{q.append(`sub_categories[${Ke}]`,Ae.id)}),q.append("lat",p.value.lat),q.append("lng",p.value.lng),q.append("map_desc",p.value.map_desc),q.append("logo",p.value.logoImg),q.append("whatsapp_country_code",p.value.whatsapp_code),q.append("whatsapp_phone",p.value.whatsapp),q.append("preparing_time",p.value.arrangement_duration),q.append("city_id",p.value.city),q.append("neighborhood_id",p.value.neighborhood),q.append("account_name",p.value.owner_label),q.append("account_number",p.value.account_label),q.append("bank_name",p.value.bank_name),q.append("iban",p.value.iban_label),q.append("bank_account_image",p.value.account_details_img),q.append("delivery_method",p.value.delivery_method),q.append("is_accept_terms",Number(p.value.terms)),f==null||f.handleStorePhone(p.value.country_code,p.value.phone),s("provider/sign-up",q,!1,"/login/phone-activation","toast"),y()}};return Ka(()=>{Object.keys(e.formData).length>0&&(p.value={...e.formData})}),(z,q)=>{var Ae,Ke;return oe(),Ce("div",J7,[Q("div",T7,[Fn(GQ),Q("div",X7,[Q("div",k7,[Fn(wy),Q("div",w7,[Q("img",{class:Hr({"rotate-en":z.$i18n.locale==="en"}),src:jE,alt:"img",loading:"lazy"},null,2),Q("div",Y7,[Q("p",null,ce(z.$t("signup.title")),1)])])]),Q("form",{action:"",onSubmit:ud(Fe,["prevent"])},[Q("h5",null,ce(z.$t("signup.form_title")),1),Q("p",null,ce(z.$t("signup.welcome")),1),Q("div",D7,[p.value.image?(oe(),Ce("label",M7,[Q("img",{src:F.value,alt:"Uploaded Image",loading:"lazy"},null,8,L7)])):(oe(),Ce("label",H7,q[54]||(q[54]=[Q("i",{class:"pi pi-upload"},null,-1)]))),Q("input",{type:"file",hidden:"",id:"img_upload",accept:"image/*",onChange:R},null,32),Q("label",x7,ce(z.$t("signup.img_title")),1)]),p.value.errors.image?(oe(),Ce("h6",O7,[q[55]||(q[55]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.image),1)])):Pt("",!0),Q("label",K7,ce(z.$t("signup.name")),1),Q("div",{class:"input",style:ja(p.value.errors.name?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.name_placeholder"),"onUpdate:modelValue":q[0]||(q[0]=pe=>p.value.name=pe),onInput:q[1]||(q[1]=pe=>g("name"))},null,40,P7),[[gi,p.value.name]])],4),p.value.errors.name?(oe(),Ce("h6",z7,[q[56]||(q[56]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.name),1)])):Pt("",!0),Q("label",j7,ce(z.$t("signup.email")),1),Q("div",{class:"input",style:ja(p.value.errors.email?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.email_placeholder"),id:"email","onUpdate:modelValue":q[2]||(q[2]=pe=>p.value.email=pe),onInput:q[3]||(q[3]=pe=>g("email"))},null,40,_7),[[gi,p.value.email]])],4),p.value.errors.email?(oe(),Ce("h6",$7,[q[57]||(q[57]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.email),1)])):Pt("",!0),Q("div",q7,[Q("label",e6,ce(z.$t("signup.phone")),1),Q("div",{class:"inputs",style:ja(p.value.errors.phone?"margin-bottom:4px;":"margin-bottom:15px;")},[Q("div",t6,[br(Q("input",{type:"number",placeholder:z.$t("signup.phone_placeholder"),id:"phone","onUpdate:modelValue":q[4]||(q[4]=pe=>p.value.phone=pe),onInput:q[5]||(q[5]=pe=>g("phone"))},null,40,n6),[[gi,p.value.phone]])]),Q("div",r6,[Fn(F0,{onHandleCountryCode:A})])],4),p.value.errors.phone?(oe(),Ce("h6",i6,[q[58]||(q[58]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.phone),1)])):Pt("",!0)]),Q("label",a6,ce(z.$t("signup.identity_number")),1),Q("div",{class:"input",style:ja(p.value.errors.identity_number?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.identity_number_placeholder"),id:"identity_number","onUpdate:modelValue":q[6]||(q[6]=pe=>p.value.identity_number=pe),onInput:q[7]||(q[7]=pe=>g("identity_number"))},null,40,o6),[[gi,p.value.identity_number]])],4),p.value.errors.identity_number?(oe(),Ce("h6",l6,[q[59]||(q[59]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.identity_number),1)])):Pt("",!0),Q("label",s6,ce(z.$t("signup.civil_registration_number")),1),Q("div",{class:"input",style:ja(p.value.errors.civil_registration_number?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.civil_registration_number_placeholder"),id:"civil_registration_number","onUpdate:modelValue":q[8]||(q[8]=pe=>p.value.civil_registration_number=pe),onInput:q[9]||(q[9]=pe=>g("civil_registration_number"))},null,40,d6),[[gi,p.value.civil_registration_number]])],4),p.value.errors.civil_registration_number?(oe(),Ce("h6",c6,[q[60]||(q[60]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.civil_registration_number),1)])):Pt("",!0),Q("label",u6,ce(z.$t("signup.tax_number")),1),Q("div",{class:"input",style:ja(p.value.errors.tax_number?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.tax_number_placeholder"),id:"tax_number","onUpdate:modelValue":q[10]||(q[10]=pe=>p.value.tax_number=pe),onInput:q[11]||(q[11]=pe=>g("tax_number"))},null,40,f6),[[gi,p.value.tax_number]])],4),p.value.errors.tax_number?(oe(),Ce("h6",h6,[q[61]||(q[61]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.tax_number),1)])):Pt("",!0),Q("label",g6,ce(z.$t("signup.ar_store_title")),1),Q("div",{class:"input",style:ja(p.value.errors.ar_store_title?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("textarea",{placeholder:z.$t("signup.ar_store_title_placeholder"),id:"ar_store_title","onUpdate:modelValue":q[12]||(q[12]=pe=>p.value.ar_store_title=pe),onInput:q[13]||(q[13]=pe=>g("ar_store_title")),onBlur:q[14]||(q[14]=pe=>p.value.ar_store_title=p.value.ar_store_title.trim())},null,40,A6),[[gi,p.value.ar_store_title]])],4),p.value.errors.ar_store_title?(oe(),Ce("h6",p6,[q[62]||(q[62]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.ar_store_title),1)])):Pt("",!0),Q("label",m6,ce(z.$t("signup.en_store_title")),1),Q("div",{class:"input",style:ja(p.value.errors.en_store_title?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("textarea",{placeholder:z.$t("signup.en_store_title_placeholder"),id:"en_store_title","onUpdate:modelValue":q[15]||(q[15]=pe=>p.value.en_store_title=pe),onInput:q[16]||(q[16]=pe=>g("en_store_title")),onBlur:q[17]||(q[17]=pe=>p.value.en_store_title=p.value.en_store_title.trim())},null,40,b6),[[gi,p.value.en_store_title]])],4),p.value.errors.en_store_title?(oe(),Ce("h6",y6,[q[63]||(q[63]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.en_store_title),1)])):Pt("",!0),Q("label",F6,ce(z.$t("signup.ur_store_title")),1),Q("div",{class:"input",style:ja(p.value.errors.ur_store_title?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("textarea",{placeholder:z.$t("signup.ur_store_title_placeholder"),id:"ur_store_title","onUpdate:modelValue":q[18]||(q[18]=pe=>p.value.ur_store_title=pe),onInput:q[19]||(q[19]=pe=>g("ur_store_title")),onBlur:q[20]||(q[20]=pe=>p.value.ur_store_title=p.value.ur_store_title.trim())},null,40,Q6),[[gi,p.value.ur_store_title]])],4),p.value.errors.ur_store_title?(oe(),Ce("h6",U6,[q[64]||(q[64]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.ur_store_title),1)])):Pt("",!0),Q("label",R6,ce(z.$t("signup.ar_store_description")),1),Q("div",{class:"input",style:ja(p.value.errors.ar_store_description?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("textarea",{placeholder:z.$t("signup.ar_store_description_placeholder"),id:"ar_store_description","onUpdate:modelValue":q[21]||(q[21]=pe=>p.value.ar_store_description=pe),onInput:q[22]||(q[22]=pe=>g("ar_store_description")),onBlur:q[23]||(q[23]=pe=>p.value.ar_store_description=p.value.ar_store_description.trim())},null,40,B6),[[gi,p.value.ar_store_description]])],4),p.value.errors.ar_store_description?(oe(),Ce("h6",Z6,[q[65]||(q[65]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.ar_store_description),1)])):Pt("",!0),Q("label",I6,ce(z.$t("signup.en_store_description")),1),Q("div",{class:"input",style:ja(p.value.errors.en_store_description?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("textarea",{placeholder:z.$t("signup.en_store_description_placeholder"),id:"en_store_description","onUpdate:modelValue":q[24]||(q[24]=pe=>p.value.en_store_description=pe),onInput:q[25]||(q[25]=pe=>g("en_store_description")),onBlur:q[26]||(q[26]=pe=>p.value.en_store_description=p.value.en_store_description.trim())},null,40,C6),[[gi,p.value.en_store_description]])],4),p.value.errors.en_store_description?(oe(),Ce("h6",v6,[q[66]||(q[66]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.en_store_description),1)])):Pt("",!0),Q("label",V6,ce(z.$t("signup.ur_store_description")),1),Q("div",{class:"input",style:ja(p.value.errors.ur_store_description?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("textarea",{placeholder:z.$t("signup.ur_store_description_placeholder"),id:"ur_store_description","onUpdate:modelValue":q[27]||(q[27]=pe=>p.value.ur_store_description=pe),onInput:q[28]||(q[28]=pe=>g("ur_store_description")),onBlur:q[29]||(q[29]=pe=>p.value.ur_store_description=p.value.ur_store_description.trim())},null,40,E6),[[gi,p.value.ur_store_description]])],4),p.value.errors.ur_store_description?(oe(),Ce("h6",S6,[q[67]||(q[67]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.ur_store_description),1)])):Pt("",!0),Q("label",W6,ce(z.$t("signup.category")),1),Q("div",{class:"input",style:ja(p.value.errors.category?"margin-bottom:4px;":"margin-bottom:15px;")},[Fn(pS,{category_id:Number(p.value.category),onClearError:g,onHandleCategory:E},null,8,["category_id"])],4),p.value.errors.category?(oe(),Ce("h6",N6,[q[68]||(q[68]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.category),1)])):Pt("",!0),Q("label",G6,ce(z.$t("signup.departments")),1),Fn(AS,{category_id:Number(p.value.category),departments:J.value,departmentError:p.value.errors.departments,onHandleDepartments:v},null,8,["category_id","departments","departmentError"]),p.value.errors.departments?(oe(),Ce("h6",J6,[q[69]||(q[69]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.departments),1)])):Pt("",!0),Q("label",T6,ce(z.$t("signup.logo_label")),1),Q("div",{class:"input",style:ja(p.value.logoImg!==""?"height:60px;":p.value.errors.logoImg?"margin-bottom:4px":"margin-bottom:15px")},[Q("input",{type:"file",id:"logo_img",accept:"image/*",hidden:"",onChange:B},null,32),q[71]||(q[71]=Q("label",{class:"pi pi-camera",for:"logo_img"},null,-1)),p.value.logoImg===""?(oe(),Ce("label",X6,ce(z.$t("signup.logo_placeholder")),1)):(oe(),Ce("label",k6,[Q("div",w6,[q[70]||(q[70]=Q("i",{class:"pi pi-trash"},null,-1)),Q("img",{src:C.value,alt:"image",loading:"lazy"},null,8,Y6)])]))],4),p.value.errors.logoImg?(oe(),Ce("h6",D6,[q[72]||(q[72]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.logoImg),1)])):Pt("",!0),Q("div",M6,[Q("label",L6,ce(z.$t("signup.whatsapp_label")),1),Q("div",{class:"inputs",style:ja(p.value.errors.whatsapp?"margin-bottom:4px;":"margin-bottom:15px;")},[Q("div",H6,[br(Q("input",{type:"number",placeholder:z.$t("signup.whatsapp_placeholder"),id:"whatsapp","onUpdate:modelValue":q[30]||(q[30]=pe=>p.value.whatsapp=pe),onInput:q[31]||(q[31]=pe=>g("whatsapp"))},null,40,x6),[[gi,p.value.whatsapp]])]),Q("div",O6,[Fn(F0,{onHandleCountryCode:b})])],4),p.value.errors.whatsapp?(oe(),Ce("h6",K6,[q[73]||(q[73]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.whatsapp),1)])):Pt("",!0)]),Q("label",P6,ce(z.$t("signup.minimum_order")),1),Q("div",{class:"input",style:ja(p.value.errors.minimum_order?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.minimum_order_placeholder"),id:"minimum_order","onUpdate:modelValue":q[32]||(q[32]=pe=>p.value.minimum_order=pe),onInput:q[33]||(q[33]=pe=>g("minimum_order"))},null,40,z6),[[gi,p.value.minimum_order]])],4),p.value.errors.minimum_order?(oe(),Ce("h6",j6,[q[74]||(q[74]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.minimum_order),1)])):Pt("",!0),Q("label",_6,ce(z.$t("signup.arrangement_duration")),1),Q("div",{class:"input",style:ja(p.value.errors.arrangement_duration?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.arrangement_duration_placeholder"),id:"arrangement_duration","onUpdate:modelValue":q[34]||(q[34]=pe=>p.value.arrangement_duration=pe),onInput:q[35]||(q[35]=pe=>g("arrangement_duration"))},null,40,$6),[[gi,p.value.arrangement_duration]])],4),p.value.errors.arrangement_duration?(oe(),Ce("h6",q6,[q[75]||(q[75]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.arrangement_duration),1)])):Pt("",!0),Q("label",ej,ce(z.$t("signup.city_label")),1),Q("div",{class:"input",style:ja(p.value.errors.city?"margin-bottom:4px;":"margin-bottom:15px;")},[Fn(mS,{city_id:Number(p.value.city),onClearError:g,onHandleCity:j},null,8,["city_id"])],4),p.value.errors.city?(oe(),Ce("h6",tj,[q[76]||(q[76]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.city),1)])):Pt("",!0),p.value.city?(oe(),Ce("label",nj,ce(z.$t("signup.neighborhood_label")),1)):Pt("",!0),p.value.city?(oe(),Ce("div",{key:19,class:"input",style:ja(p.value.errors.neighborhood?"margin-bottom:4px;":"margin-bottom:15px;")},[Fn(bS,{neighborhood_id:Number(p.value.neighborhood),neighborhoods:K.value,onClearError:g,onHandleNeighborhood:H},null,8,["neighborhood_id","neighborhoods"])],4)):Pt("",!0),p.value.errors.neighborhood?(oe(),Ce("h6",rj,[q[77]||(q[77]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.neighborhood),1)])):Pt("",!0),Q("label",ij,ce(z.$t("signup.store_address")),1),Q("div",{class:"input",style:ja(p.value.errors.store_address?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.store_address_placeholder"),"onUpdate:modelValue":q[36]||(q[36]=pe=>p.value.store_address=pe),onInput:q[37]||(q[37]=pe=>g("store_address"))},null,40,aj),[[gi,p.value.store_address]]),q[78]||(q[78]=Q("i",{class:"pi pi-map-marker"},null,-1))],4),Q("label",oj,ce(z.$t("signup.owner_label")),1),Q("div",{class:"input",style:ja(p.value.errors.owner_label?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.owner_placeholder"),"onUpdate:modelValue":q[38]||(q[38]=pe=>p.value.owner_label=pe),onInput:q[39]||(q[39]=pe=>g("owner_label"))},null,40,lj),[[gi,p.value.owner_label]])],4),p.value.errors.owner_label?(oe(),Ce("h6",sj,[q[79]||(q[79]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.owner_label),1)])):Pt("",!0),Q("label",dj,ce(z.$t("signup.account_label")),1),Q("div",{class:"input",style:ja(p.value.errors.account_label?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.account_placeholder"),"onUpdate:modelValue":q[40]||(q[40]=pe=>p.value.account_label=pe),onInput:q[41]||(q[41]=pe=>g("account_label"))},null,40,cj),[[gi,p.value.account_label]])],4),p.value.errors.account_label?(oe(),Ce("h6",uj,[q[80]||(q[80]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.account_label),1)])):Pt("",!0),Q("label",fj,ce(z.$t("signup.bank_name")),1),Q("div",{class:"input",style:ja(p.value.errors.bank_name?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.bank_name_placeholder"),"onUpdate:modelValue":q[42]||(q[42]=pe=>p.value.bank_name=pe),onInput:q[43]||(q[43]=pe=>g("bank_name"))},null,40,hj),[[gi,p.value.bank_name]])],4),p.value.errors.bank_name?(oe(),Ce("h6",gj,[q[81]||(q[81]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.bank_name),1)])):Pt("",!0),Q("label",Aj,ce(z.$t("signup.iban_label")),1),Q("div",{class:"input",style:ja(p.value.errors.iban_label?"margin-bottom:4px;":"margin-bottom:15px;")},[br(Q("input",{type:"text",placeholder:z.$t("signup.iban_placeholder"),"onUpdate:modelValue":q[44]||(q[44]=pe=>p.value.iban_label=pe),onInput:q[45]||(q[45]=pe=>g("iban_label"))},null,40,pj),[[gi,p.value.iban_label]])],4),p.value.errors.iban_label?(oe(),Ce("h6",mj,[q[82]||(q[82]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.iban_label),1)])):Pt("",!0),Q("label",bj,ce(z.$t("signup.account_details_label")),1),Q("div",{class:"input",style:ja(p.value.account_details_img!==""?"height:60px;":p.value.errors.account_details_img?"margin-bottom:4px":"margin-bottom:15px")},[Q("input",{type:"file",id:"account_details_img",accept:"image/*",hidden:"",onChange:S},null,32),q[84]||(q[84]=Q("label",{class:"pi pi-camera",for:"account_details_img"},null,-1)),p.value.account_details_img===""?(oe(),Ce("label",yj,ce(z.$t("signup.account_details_placeholder")),1)):(oe(),Ce("label",Fj,[Q("div",Qj,[q[83]||(q[83]=Q("i",{class:"pi pi-trash"},null,-1)),Q("img",{src:N.value,alt:"image",loading:"lazy"},null,8,Uj)])]))],4),p.value.errors.account_details_img?(oe(),Ce("h6",Rj,[q[85]||(q[85]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.account_details_img),1)])):Pt("",!0),Q("label",Bj,ce(z.$t("signup.delivery_method")),1),Q("div",Zj,[Q("div",Ij,[br(Q("input",{type:"radio",name:"delivery_method",id:"delivery","onUpdate:modelValue":q[46]||(q[46]=pe=>p.value.delivery_method=pe),value:"2",checked:p.value.delivery_method==="2",onInput:q[47]||(q[47]=pe=>g("delivery_method"))},null,40,Cj),[[up,p.value.delivery_method]]),Q("label",vj,ce(z.$t("signup.delivery")),1)]),Q("div",Vj,[br(Q("input",{type:"radio",name:"delivery_method",id:"store","onUpdate:modelValue":q[48]||(q[48]=pe=>p.value.delivery_method=pe),value:"1",checked:p.value.delivery_method==="1",onInput:q[49]||(q[49]=pe=>g("delivery_method"))},null,40,Ej),[[up,p.value.delivery_method]]),Q("label",Sj,ce(z.$t("signup.store_method")),1)]),Q("div",Wj,[br(Q("input",{type:"radio",name:"delivery_method",id:"both","onUpdate:modelValue":q[50]||(q[50]=pe=>p.value.delivery_method=pe),value:"3",checked:p.value.delivery_method==="3",onInput:q[51]||(q[51]=pe=>g("delivery_method"))},null,40,Nj),[[up,p.value.delivery_method]]),Q("label",Gj,ce(z.$t("signup.both_methods")),1)])]),p.value.errors.delivery_method?(oe(),Ce("h6",Jj,[q[86]||(q[86]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.delivery_method),1)])):Pt("",!0),Q("div",Tj,[br(Q("input",{type:"checkbox",id:"terms","onUpdate:modelValue":q[52]||(q[52]=pe=>p.value.terms=pe),onInput:q[53]||(q[53]=pe=>g("terms"))},null,544),[[cJ,p.value.terms]]),Q("label",Xj,[Ni(ce(z.$t("signup.agreewith"))+" ",1),Q("span",{class:"terms_link",onClick:m},ce(z.$t("signup.terms")),1)])]),p.value.errors.terms?(oe(),Ce("h6",kj,[q[87]||(q[87]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(p.value.errors.terms),1)])):Pt("",!0),Q("button",wj,ce(z.$t("signup.btn")),1),Q("p",null,[Ni(ce(z.$t("signup.have_account"))+" ",1),Fn(ct(Ts),{to:"/login/phone-entry"},{default:Yr(()=>[Ni(ce(z.$t("signup.login")),1)]),_:1})])],32)])]),ct(r)?(oe(),Vn(W7,{key:0,selectedPosition:ct(a),lat:Number((Ae=ct(a))==null?void 0:Ae.lat),lng:Number((Ke=ct(a))==null?void 0:Ke.lng),onHandleShowMap:ct(i),onHandleMapClick:ct(o)},null,8,["selectedPosition","lat","lng","onHandleShowMap","onHandleMapClick"])):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:c,position:"top-right"},null,512),ct(u)?(oe(),Vn(Ru,{key:1})):Pt("",!0)])}}},Dj=Pi(Yj,[["__scopeId","data-v-078fc449"]]),Mj={class:"sign-page"},Lj={class:"content"},Hj={class:"form-side"},xj={class:"upper-bar"},Oj={class:"head"},Kj={__name:"Conditions",setup(t){const e=po(),{getMethod:n,getResult:r}=va(),i=Ag(),a=()=>{i.back()};return yi(()=>e.lang,o=>{o&&n("general/terms",!1)}),Ka(()=>{n("general/terms",!1)}),(o,l)=>{var s;return oe(),Ce("div",Mj,[Q("div",Lj,[Fn(GQ),Q("div",Hj,[Q("div",xj,[Fn(wy),Q("button",{class:"backBtn",onClick:a},l[0]||(l[0]=[Q("i",{class:"pi pi-arrow-left"},null,-1)]))]),Q("div",Oj,[Q("h3",null,ce(o.$t("terms.title")),1),Q("p",null,ce((s=ct(r))==null?void 0:s.data),1)])])])])}}},Pj=Pi(Kj,[["__scopeId","data-v-bc37c1d6"]]),kQ="data:image/png;base64,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",zj="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEQSURBVHgBtdQ9bsIwFAfw93+mWwfGHqNHoGvFwBHox9C1B6gIbY9BqXuCqhJlJTeAI4SRiTAw4oeNFMRnHGL4S5Fs671fEscKyJNaM6peK/l1QyHS8wVeYx2leT3wghUZkNBttmbhkYXv8mCcAhaFcSpYBEYZ0AejLJgHIwQ8BiMUPASv0PpzaxgC7sLq/vGtCcILnSH2CW+uYCasiKt0xgiplJWBFpIfO0spJK4faPe7kV5/fbcNDP6mkjFiHvrdD+3GlYI9I3tlb1LzFXtRuzV//1/vjWxef2q5P1Yjr4fJEyZMt25iZObvuUAuizKrhALCLMke2utEsTtnu8UiGG/OAU62C9z5lHav8xlnS0umS5Tu8wrVPAAAAABJRU5ErkJggg==",jj="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAASCAYAAACEnoQPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD6SURBVHgB7ZPLjcIwEIZnJuydElLCbgc+rrQ5bAfrBe40gGSnDyKSDhACzikhJVACZw4exsSJghAJgiu/lNjjmc/zkIyJXigg8l+5XdoSBpTMrALnlHO0HmEUrRgglgPvG4Q9CIiGIp7TBXxOY2p2iPj3rW3cF620Hfu4lkmmhlsD4CDGoYf/9BkbY9T1hBbisM/lpxDvt0Ud8sgcsiKnuyz9l1LK4K2gHmbZxlxlZi4+mOyJ4HefpXkySY2MVksFlVz01YT9TM1KFn3TMwHpTWaKC4jOwoCu4Lp6qLAezKDo5rYA+oF1++uH3wN7SAQvSJ4kF/CEGDA/AwnRgp2jB5x7AAAAAElFTkSuQmCC",_j="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIFSURBVHgBjZRNbtNQEMdn3itISK3kG+BuWAdxAOIdVEFKuAB20wPQFZuAbcG+HKC0zo5dWbQIVs0Nyg3qEyAjkaoLvzedcV331XWavIX9PmZ+M/+ZZyMsGYNw0getY5lbstOfB5+zh+xxBVC/5ZAbsukiMK4K6nDsBDfAYZh4paajZaD2IIA/c4PBLEsKWSt5bG1/DC8BvNJgREDTFUkFIKYCW4eyN9j5VNUZa4mndbTMGExlrrVNEPBdN+vWbk3TYaMKTaCfvQhkw6/197SCoUKCuVXpY42/6zO/Zs04q4izmj5R9EEp+O6ciWBfHX9LA0mdV0Ud3ed1sqHpzFrjy7kljHgv+G9wBNa+XNd0Tgjv2/LlvGnKqzDxF8icVUF5DMbxGb96bfmc8e6dplzDKDZGJdyYTSLIbxwsGzfe6Myv5QcC21AUvx1/edoA6/qFjzSdamWGJwfppshkWbuWSzHYmfRfjyfDsoRc9g3gqMq6Q75qpe8jqr034/gcwMC8xEyCWIs+Enqs4ujCwg9tyqKy4Vqzm+cy1qBjCFihOuToe+Q4yC2QjPhSeXTXofhry39Nhr+yJGfzkVu7engd8bxW8Ky0+PymKfe+5a3tJESgGPH2fvFfJqqic9aOqTQlPd5PZq7/wr+NC3aBogIVRm3QUqAL5i8iZ20eIfkn++nXh+yvAPnc+mGSFQx4AAAAAElFTkSuQmCC",$j="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIdSURBVHgBpZSxbhpBEIZnZs9dIt0jgJQiShN4Ah9dIpEIunSASJPKdo/EnfIAhgcwvjyBsZKgdOAnsMtIiQR5AwpbSrG7k5kTdkzMwUUeCW5vb/ebmX9nFiHHonYcPiXuA0LDsU8mo48pFDDcNPm2mxx48LEMw9s5Bkidw+RbGi+gKLDe7kUQmGPZXcnbwAgDZ3GYB86Ar9pxKTB8KsMICphsWuTJQPoXoD8sCsuiBCghUP91t9d4AFS9LNPAOiwzw6IAbQmIyY3Hqr5qdmtAEb8h6V4G5FtfR0nZM3a2gMdWQdbOnhg+M2DOgsCuA1fPULzGb7r9OYAD57GmUdxbN5P32rXDzh7xARgzhRyJaD0bKBHSqR6QtZCqDBrxl5OkBt7vS1RzOeVD2GJBznwk0DkwJ4GngUauzqCA0daviPu/RY482Cat8yLcYTy8dhTP0nj5eCByYi2lesr1bj/rKMlgfNuWClz+B26msD3D05UMY/mF0jltY1jhVZITbK5KZCeY2Z8TuUhhqp8D/CTPcx0LtFJ/34vuLgeteGN8jICttYik9rITB61QbBr2FURsfT5JyvedSfosDo8eXF8ZmHiKmKX0F6gtR9hEzxWpxWNd69l3CLAkGfbvHP4L/Hk1W/64vBg+q9Z+ycJQ0rkggpK0XHMyiq9evKx9dwjvxGEokWppPYeVBJNR8mHjBbvL1uSRyCXi8Y3DIy2jP3EH/dHhvbgCAAAAAElFTkSuQmCC",qj="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGXSURBVHgBnVRLUsJAEO3XmSVWcQPwBHADwlapkiOAuHCnHMAiFAeApSs+JwAWWu7EG3CEHIGFCy2SaXtSiIKAhJeaSmZe5k1/B7QFvxZks0TZT4qKzMgzc06E8jqKgHvb5lO/06M9MBfXDzUPXLJERRLKApKPlPD0cVChBCqWgMEFOgDD7IW6J9T/RwT6F8uIwkM8Ko2WUEroueEyRvllGITbHNMJUAvyxsh4F3eS4Eq1uGvZ0GmYabKmu4hUMVSR0AJNT2xBCLVEALomdvTc7wzd/HiXhRZg1A1JV1UCV5NuKONrKQ0uG61BKgsF1EvqlKhGkLYIcsn3hge2eXQMEWFKnrw6MQueeCJ3ujz85q2QD/BV+qQICiqW+3Mg08Jl3gnOiXaXwMYGsOYkdm69qTnz39w7mfmZkZa2r2+sBhqxjFcB3osYy3MIhyrcXbX56iRpZyxKInKvs+G6e6u3wUHBxQctMsZdIBrHTcx0+K6kYovyEdfBJiqNoKrWdLc8mkUx6q63UwuuhW8C372NoXDy+HNJfAEddp7oOw9H0gAAAABJRU5ErkJggg==",e8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFlSURBVHgBrZQ/UsJAFMa/t0lpgSeQyla0sjOlAxR6gyVUVowHUJbBA0gvf7xBCsHSvYGxtlBvQEFJ9rlhHAeR7CRDfkUmu2/2m5fvfVnCD83wtssgSYQqiqNBSe/p4U6nC0ofjbA7tmISO8Jsrqej/j3VwxspSIxRDvNlQsfCCnZQHhVfGCnsSw0lQkQH/pb9yBo9R04MI9gc7h9RBuLpsHeJApxLVfU9/sgUtR3WGm2bBOYv5IX4aHPr3+dbYWmNwS5s89TmDZ8M03MdFOTZAXMnt6ht1Hrbn8BBIFVlz0N+UctFs919gQMCVzmj5jvOBY4a2FFLw69RIobNmzBMjygLxjwxXuS9v+r48ORs37p0ih0hj65mI6V/A1kPlb2tVhGpZXXBGb+vIOgkocFsouKV+HqxKVUAj7dNPVok1NITletO8J3V1COi1vNQRSiASzRamPzdZYraRbwEDxIIXbS7db4B3+N3DT6b030AAAAASUVORK5CYII=",t8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHjSURBVHgBpVS9TsMwEL6zg8TII2RASAxIVJ2hdEP8CHiDlD4AsIOaAjswsUAJGxsgFcRG+wSFCYmF8gSEvfbhgySE1i4SfENkO3dfvrv7HIQhWK7WXgjAz59p0pXbxl7kyhGuFwtBON1PxpAoSjAEGeFcEI79eCF7vi1BA0zn9/15yI/5IPQ9SR2ziYkoUlo/elIe2BQyzHmklbqWUm4wJxDVm43dMCNcrNbOzCKAvyPuKSzcRWFXsLp/kjHGTIVnvJCTxVKHD5yhBDEiXLAKcLQggT9RnGl72jQE0cl2ZHqzme64Gino3sT7tmitPV8ojWWzvhoUBg/N028yBvcIBVbAUoUCXLtthFGmbXG99pL/MpHeumnsHYIFS9XaG+TalDe709i/wNlzwcY0XxzoC6JYsSUsrO8EAyQoDtJzOVUsPUGf+xP4E4USPHfa7YzMXEcp8NiicBQRV8cLs6/I6oDd7oBpcpcHlJA4476CVdkztdXNBJyByfXz4Rfwdbw52W+J5knYIqBz+CeUMsIgmfKIEuy3mP3EijVhhQi67nQ6MvWtQepfpDp79HOZhvC0W1EYp/ul6vaqmdmlha3VPK2XXXmZD/OHjJ7yHsCmDej9B3tfntPYo5//xsGyicQVDMEHZra8LONFBkAAAAAASUVORK5CYII=",n8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAQCAYAAAAbBi9cAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAF5SURBVHgBrVPLUcNADH1a545LcAkuIdz4DcQVxCHDGXKHyYYKKIAMpoKQGcJwwyWYDtwBvoNXaJ11wIEhn+Fd7JXfPklPMh33R10DcwPAx5ogIGei3uOtTuuYYhi9iYgFAwEx332PKRvEljg40+F+fNmphBZZGLk8iiVu2qhEOI43R1mGnudNDk+vLpQrNSkN7aKkSAzIrKBh02vJWS4Oag4biireUgIidaJcWe3nROctiAgjlJAvhvoPiS7Ei6AiA52nRGeWJ8dwqXLQUX/IrqVMXnK5EM+zIDVcCdpv7brVmmMnV7IZKVLW9LTlCHZqbWr60Tg7/BaD6+qHwWvByD0ParE2UhH1JP8Qdd+MgleJk3BKuefx5CvkIF692dFAUWQ+ygAroFrq3A3GYu5RJ9b+O3PBHkVKNlZ5KlwlVCWtXxnT2mxU+yGNk8I9gad/a1BXphqIVkZEg9lYp4QtsBfrwFP8AuLX2fi6+YtsAruUtgMC7eC/8QlhA5jDoyM9/wAAAABJRU5ErkJggg==",r8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI+SURBVHgBjVNLctpAEO2eESsnVTqCfILgEwSWcZEY3wBM9oS9EyTKe5M9xOIEkCooskM+QXwDkxOERZJKJTPT6RaKSuZndxWM1Orfe/0GYY/VGpcV0LpNBGVECNi14t+dIzdyTidf4nC5Kw83HZVG6D/TNAYuBEgjAJV4JbgzBgJyVOaQtuIsQtucDq6SzXy1Wey5pq/ybByeTIe9d2DN6s9vW7HG+NbhZPYpOibEEZBe1N4yikMFjzRdO4Y2HUZVD0zwutW9Z9gLpdWN1nrsabqvXXzoTgdhyFR0uOhYhtiCLHyRQuZKXRuLx+KTZNhjhNCfDaJOrdVdCLfW2tE8vpqkBV+1Lusa9DgNBPo8G/bqHCiwy3DI0Fa5LSfRYp0L8WwYNVFg8UuQOsl1rNOTfDrizSL4+VmckmNLTsdG0/diE/W/WNZl5RXeQdlz/k+cQ56GJWPxRM70E6oXkzhcFZtwXOA9QAHgG4Bl7qSUCl/pFFZ+riekb3VeiJExCiZbzrvwUs4ywSaZy99zsqwUwzWVB8UULRWvPyr4KiIDp7ADhwwpWjfW7RwMUyFCVyzUviNsMtyY3R9TLv7CamchXg5LpjMd9MI3rUiuZZDmIUY/bcrz9tUTO71432DSbwQ6NxtppJeW3O0vVkDCi5BiDlzfAp7Ph+GkmOvtKiiXn9ltOgdJiRchSuAGwZGyPmv0jIsHqLA6H4TJFhtwwE4bYVlldzuzhOHd/jDQTzYk86SCYjyRSKcuixDuHov/B//PF7pDoPT9AAAAAElFTkSuQmCC",i8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJcSURBVHgBlVU7bBNBEJ2ZNYgCIaej44wgpIttenRHFYFFnI7OTkJBl9AjfCdS0EFKpHzsks6RTICKExUVPkpIwdGlw5bScbvLLP4ktu/O9pNW2t2ZeTc7b3YPYQx21c1eJbUFiDYv8zyyPDo8AqVV4/jgZR1mAF5cPNr0thQot0+WFBBGIJ992N9pQgrEYFLa8Goa1SueXoF0ZAno8VLxfvij7X9PSWCY6ZsJq4aO5jIgghUfLZ3W3o4fZ6KVqmtpUNuTnLpxpjD3/sDLRRJzWkM4+WFRgwQQkbQ5K2tsvyMludcEVh5u1tqZDFhIuB4Tb5eePLfjiZEqcYYMqaoRkmuVR60rrT3Xj/MDSeXYeOi11Diy3G69Y3KdpcLdUtW1zWIyNVyOIyZIaS1T10hhQRkBhT6EFBitxok7Sc7cDeHHuhteEvpzjA4jyAj9q7TxYiimWCzaK5AclL1TtJeY1E5kVProVt45RYKn5rbeLtzrnrS/fCXUcJQUw6VIPM05L9WB5FAnRHptykJCYR2SyoHQERK9FN7mcd0NBNJIP2dQbWOZH51I6D8wJ4yw3C2OuQfcsoej+UBIkYhsmBfmqitcM9PxbHtmsEiDWL2wF8Re3VH4gxZM6xZC1L/5nV0/k7jQ2vcK5m1gBRz+7q4h6Y/m/zXvs49zWeAqt1c7iZT3A4QZwVpYf0mWWXVzQjvVWWtvKvGDqpsnzg7mgJJYENOcTgL/dPGuYxKwYUagkO+mEhv8/Ob7c5Er7M5EPCC/uew0kPQC9n481/umgEV9y+KvsaifuMBdXt/4B4tQ648guZ1eAAAAAElFTkSuQmCC",a8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAARCAYAAADUryzEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFsSURBVHgBlVJRTsJAEJ3Z7Y/RROIF5AhwAvBfo5wADAeAA5gAJwAOQGgvoD/GXz0CN6BewNRo/KLznK1dEklbYD66s9N5b+bNDt/0R2sQ1elAY6L4K+XmWzhO3N0cA3bm8i9scO7vQX4mBMwrkcwt/bZ3w56gBuJuJV5ziuIZAUAxRCaVBNbc6nHn/I908/mPwJm1plVFIKAGO6mGO2cWT9f9UfK8mHQyAmYnYf8wRfiKGQPOZ9HujWteQgKSyCca4rqyjrZI/c9amQ2WBiYUkpUWpBO7afsO6kxmWVgWf22rM1W/oeCZ6B4wy5ARxIaqbAecxRgTw9IDzOwlHK/MsWBKqSYqw4FdKCjDp5zeW9iBuluwCGK3ED/67D6vjCDb85Q4MkBDhxdB+NLkg9VVfvU5hQRgCrV61+n4Fm6eEk110L2i3FIJ+jRzBrq6NGsqWeNSAgYNtfoQtN8CECLtuUUHmkqJHxcP7/7+C0yMktrfSWZ0AAAAAElFTkSuQmCC",o8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHySURBVHgBpZVRUttADIYlmT61D+kN3BMQToB560M6bU9ApvQdegKvewI4ACE5ATATZngjOQE5go+QB3gilpCWcQiJ15uBf8bj9Vr6Vpa0a4SAsr7rfKaqj0j7ItBFhNTmdVzquGThEXMyuR26sskfm4BfiI8B8UQfOxCTiBsP/het4O99l35K5E7gJbptpZDyqcKD1ejxo9AQnOoXMajlVt1/2/UyXnuvvsawVC7BvT9FHouUEf+Nz92VXQJcNC6uDK3PiQdbCgDZQUSJcHc5JtoNGiIeW9Q7RFW2khFocch7R7kBO5qKrMXSt+kOIR1CTAJzrU4JBsQtWhAxI109DfKsSIgH40HxdXxe7C0Y93R6BhER4C7VO6p5YX0ncvnjKL+wZ99KItcQkRVxi+RCh996xVOhoqae3IhAcPrqgfsxe9sslopozphhYnffmgDdmL14sMA0YjRbblPfmnGx4IgSxqGO5yEjWukCEoxG68H6hXQ1dHMQPINwxGk9XgidasILnZsEqSiFfaE/3X7pFnwiuQ+1noKGWFUjBkwpoZ86lUHDWW2NcDMovnl+PWmFSUju2vq6TQat+PXY3Djo3wNfh26Aa/X+OqfWOUSJWnTCs4cFnE6sVivCkI9FTwSZ9uOhnSdrP9OZ3qeP2lHrwFrP4WLnoj9Q5HkAAAAASUVORK5CYII=",l8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAARCAYAAAAyhueAAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADxSURBVHgBrZSBDYIwEEV/iQOwgbiBI+gGbiRO4Ag4ghuIE8AGsAFsUO+kYFt6IEl/8kNTfl56Te8AkgZS8pXckbXnApZM7ogFKROsMARLcutl3hR6mFxGn4bck8+0XwepFLyYE+VYEUOtCjrpxAl+P57YppT8CoF31rqDd6oAKBPA7lVw2aacfWDvXztXkSCsDNvkXEWCeJrAMaEjODr0xm86JpSBOS92QoB/loF9Lu++BPwq9KQkeR2lpU7k8nuzPmC73BMaKT2U1IwhzIdEq8yQsQaKCJzEb4vcCN1SWDkekdXa8FEe/IR5N9XiiBP0AXAdhosp0j5iAAAAAElFTkSuQmCC",s8={key:0,class:"counter"},d8={__name:"Sidebar",props:{fullSideBarSize:{type:Boolean,default:!0}},emits:["handleSideBarSize"],setup(t){const e=hn(null);Ka(async()=>{e.value=await gS()});const n=po(),r=dc(),{getMethod:i,getResult:a,deleteMethod:o,toast:l,loading:s}=va(),d=()=>{o(`general/sign-out?device_id=${e.value.deviceId}`,!0,"","/login/phone-entry"),window.sessionStorage.clear(),console.clear(),Cm("token")},c=hn("/orders");return yi(()=>r.path,u=>{c.value=u}),Ka(()=>{i("provider/un-pricing-orders/pending-negotiation-orders-count",!0)}),(u,h)=>(oe(),Ce("div",{class:Hr(["sidebar",{active:t.fullSideBarSize}])},[Q("button",{class:Hr(["mini-bar",{rotateBtn:u.$i18n.locale==="en"}]),onClick:h[0]||(h[0]=f=>u.$emit("handleSideBarSize"))},h[13]||(h[13]=[Q("i",{class:"pi pi-angle-right"},null,-1)]),2),h[27]||(h[27]=Q("div",{class:"image"},[Q("img",{src:kQ,alt:"img",loading:"lazy"})],-1)),Q("ul",null,[Q("li",{class:Hr({active:c.value==="/orders"}),onClick:h[1]||(h[1]=f=>ct(n).handlePageName(u.$t("sidebar.home")))},[Fn(ct(Ts),{to:"/orders"},{default:Yr(()=>[h[14]||(h[14]=Q("div",{class:"image"},[Q("img",{src:zj,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.home")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value==="/pending_orders"}),onClick:h[2]||(h[2]=f=>ct(n).handlePageName(u.$t("sidebar.pending_orders")))},[Fn(ct(Ts),{to:"/pending_orders"},{default:Yr(()=>{var f,g,A,b;return[h[15]||(h[15]=Q("div",{class:"image"},[Q("img",{src:jj,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.pending_orders")),1),((g=(f=ct(a))==null?void 0:f.data)==null?void 0:g.pending_negotiation_orders_count)>0?(oe(),Ce("div",s8,ce((b=(A=ct(a))==null?void 0:A.data)==null?void 0:b.pending_negotiation_orders_count),1)):Pt("",!0)]}),_:1})],2),Q("li",{class:Hr({active:c.value==="/products"}),onClick:h[3]||(h[3]=f=>ct(n).handlePageName(u.$t("sidebar.products")))},[Fn(ct(Ts),{to:"/products"},{default:Yr(()=>[h[16]||(h[16]=Q("div",{class:"image"},[Q("img",{src:_j,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.products")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value==="/product_additions"}),onClick:h[4]||(h[4]=f=>ct(n).handlePageName(u.$t("sidebar.add_products")))},[Fn(ct(Ts),{to:"/product_additions"},{default:Yr(()=>[h[17]||(h[17]=Q("div",{class:"image"},[Q("img",{src:$j,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.add_products")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value.startsWith("/financial_transactions")}),onClick:h[5]||(h[5]=f=>ct(n).handlePageName(u.$t("sidebar.financial_transactions")))},[Fn(ct(Ts),{to:"/financial_transactions/due-transactions"},{default:Yr(()=>[h[18]||(h[18]=Q("div",{class:"image"},[Q("img",{src:qj,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.financial_transactions")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value==="/chats"}),onClick:h[6]||(h[6]=f=>ct(n).handlePageName(u.$t("sidebar.chats")))},[Fn(ct(Ts),{to:"/chats"},{default:Yr(()=>[h[19]||(h[19]=Q("div",{class:"image"},[Q("img",{src:e8,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.chats")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value.startsWith("/settings")}),onClick:h[7]||(h[7]=f=>ct(n).handlePageName(u.$t("settings.data.pageName")))},[Fn(ct(Ts),{to:"/settings/update-data"},{default:Yr(()=>[h[20]||(h[20]=Q("div",{class:"image"},[Q("img",{src:t8,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.settings")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value==="/ratings"}),onClick:h[8]||(h[8]=f=>ct(n).handlePageName(u.$t("sidebar.ratings")))},[Fn(ct(Ts),{to:"/ratings"},{default:Yr(()=>[h[21]||(h[21]=Q("div",{class:"image"},[Q("img",{src:n8,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.ratings")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value==="/contact"}),onClick:h[9]||(h[9]=f=>ct(n).handlePageName(u.$t("sidebar.contact")))},[Fn(ct(Ts),{to:"/contact"},{default:Yr(()=>[h[22]||(h[22]=Q("div",{class:"image"},[Q("img",{src:r8,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.contact")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value==="/faq"}),onClick:h[10]||(h[10]=f=>ct(n).handlePageName(u.$t("sidebar.faq")))},[Fn(ct(Ts),{to:"/faq"},{default:Yr(()=>[h[23]||(h[23]=Q("div",{class:"image"},[Q("img",{src:i8,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.faq")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value==="/terms"}),onClick:h[11]||(h[11]=f=>ct(n).handlePageName(u.$t("sidebar.terms")))},[Fn(ct(Ts),{to:"/terms"},{default:Yr(()=>[h[24]||(h[24]=Q("div",{class:"image"},[Q("img",{src:a8,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.terms")),1)]),_:1})],2),Q("li",{class:Hr({active:c.value==="/about"}),onClick:h[12]||(h[12]=f=>ct(n).handlePageName(u.$t("sidebar.about")))},[Fn(ct(Ts),{to:"/about"},{default:Yr(()=>[h[25]||(h[25]=Q("div",{class:"image"},[Q("img",{src:o8,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.about")),1)]),_:1})],2),Q("li",null,[Q("button",{class:"logout-btn",onClick:d},[h[26]||(h[26]=Q("div",{class:"image"},[Q("img",{src:l8,alt:"img",loading:"lazy"})],-1)),Q("span",null,ce(u.$t("sidebar.logout")),1)])])]),Fn(ct(ol),{ref_key:"toast",ref:l,position:"top-right"},null,512),ct(s)?(oe(),Vn(Ru,{key:0})):Pt("",!0)],2))}},c8=Pi(d8,[["__scopeId","data-v-63493cbd"]]),u8="data:image/png;base64,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",f8={class:"greet"},h8={class:"settings"},g8={class:"image"},A8=["src"],p8={class:"icon"},m8={key:0,class:"red_circle"},b8={ref:"languageSelectRef"},y8={__name:"Greet",setup(t){const{getMethod:e,getResult:n}=va(),r=po(),i=d=>{r.handleIsNotificatied(!1),r==null||r.handlePageName(d)},a=hn(!1),o=hn(null),l=()=>{a.value=!a.value},s=d=>{o.value&&!o.value.contains(d.target)&&(a.value=!1)};return yi(()=>{var d,c;return(c=(d=n==null?void 0:n.value)==null?void 0:d.data)==null?void 0:c.count},d=>{d&&r.handleIsNotificatied(!0)}),yi(()=>r==null?void 0:r.lang,d=>{d&&(r==null||r.handlePageName(""))}),Ka(()=>{e("general/count-notifications",!0),document.addEventListener("click",s)}),Ip(()=>{document.removeEventListener("click",s)}),(d,c)=>{var u,h,f,g,A;return oe(),Ce("div",f8,[Q("h6",null,ce(((u=ct(r))==null?void 0:u.pageName)||d.$t("sidebar.home")),1),c[11]||(c[11]=Q("div",{class:"image"},[Q("img",{src:u8,alt:"image",loading:"lazy"})],-1)),Q("ul",h8,[Q("li",{class:"info-settings",ref_key:"infoSettingsRef",ref:o},[Q("div",{class:"info",onClick:l},[Q("div",g8,[Q("img",{src:(f=(h=ct(r))==null?void 0:h.profile)==null?void 0:f.image,alt:"image",loading:"lazy"},null,8,A8)]),Q("h5",null,ce((A=(g=ct(r))==null?void 0:g.profile)==null?void 0:A.name),1),Q("i",{class:"pi pi-angle-down",style:ja(a.value?"transform: translateY(-50%) rotate(180deg)":"transform: translateY(-50%) rotate(0)")},null,4)]),Q("ol",{class:Hr({active:a.value})},[Q("li",{onClick:c[1]||(c[1]=b=>a.value=!1)},[Fn(ct(Ts),{to:"/work_periods",onClick:c[0]||(c[0]=b=>ct(r).handlePageName(d.$t("work_periods.pageName")))},{default:Yr(()=>[c[6]||(c[6]=Q("i",{class:"pi pi-calendar-clock"},null,-1)),Q("h4",null,ce(d.$t("greet.info_period")),1),c[7]||(c[7]=Q("i",{class:"pi pi-angle-left"},null,-1))]),_:1})]),Q("li",{onClick:c[3]||(c[3]=b=>a.value=!1)},[Fn(ct(Ts),{to:"/profile",onClick:c[2]||(c[2]=b=>ct(r).handlePageName(d.$t("profile.pageName")))},{default:Yr(()=>[c[8]||(c[8]=Q("i",{class:"pi pi-user"},null,-1)),Q("h4",null,ce(d.$t("greet.info_details")),1),c[9]||(c[9]=Q("i",{class:"pi pi-angle-left"},null,-1))]),_:1})])],2)],512),Q("li",{class:"notification",onClick:c[4]||(c[4]=b=>i(d.$t("notifications.pageName")))},[Fn(ct(Ts),{to:"/notifications"},{default:Yr(()=>[Q("div",p8,[c[10]||(c[10]=Q("i",{class:"pi pi-bell"},null,-1)),ct(r).isNotificated?(oe(),Ce("div",m8)):Pt("",!0)]),Q("h5",null,ce(d.$t("greet.notification")),1)]),_:1})]),Q("li",b8,[Q("div",{onClick:c[5]||(c[5]=(...b)=>d.handleShowLanguageSelect&&d.handleShowLanguageSelect(...b))},[Fn(wy)])],512)])])}}},F8=Pi(y8,[["__scopeId","data-v-a579ba7d"]]),Q8={class:"route-page"},U8={__name:"HomePage",setup(t){const e=hn(!0),n=()=>{e.value=!e.value};return(r,i)=>(oe(),Ce("div",{class:Hr(["home-page",{active:!e.value}])},[Q("button",{class:Hr(["maxi-bar",{active:!e.value,rotateBtn:r.$i18n.locale==="en"}]),onClick:n},i[0]||(i[0]=[Q("i",{class:"pi pi-angle-left"},null,-1)]),2),Fn(c8,{fullSideBarSize:e.value,onHandleSideBarSize:n},null,8,["fullSideBarSize"]),Q("div",{class:Hr(["content",{active:!e.value}])},[Fn(F8),Q("div",Q8,[Fn(ct(vp),null,{default:Yr(({Component:a})=>[Fn(Cp,{name:"fade-blur",mode:"out-in"},{default:Yr(()=>[(oe(),Vn(ea(a)))]),_:2},1024)]),_:1})])],2)],2))}},XZ=Pi(U8,[["__scopeId","data-v-d8f1d62e"]]),R8={__name:"SwitchInput",props:{is_available_to_recieve_orders:{type:Boolean,default:!1}},emits:["updateStatus"],setup(t,{emit:e}){const n=t,r=e,i=hn();yi(()=>n.is_available_to_recieve_orders,o=>{i.value=o});const a=()=>{i.value=!i.value,r("updateStatus",i.value)};return Ka(()=>{i.value=n.is_available_to_recieve_orders}),(o,l)=>(oe(),Ce("button",{class:"toggle-switch",onClick:a,style:ja(i.value?"background: #7C9DC4;":"background: #DBDBDB;")},[Q("div",{class:Hr(["circle",i.value?"active":""])},null,2)],4))}},B8=Pi(R8,[["__scopeId","data-v-98b21008"]]),Z8={class:"order-types"},I8={class:"head"},C8={class:"head"},v8={class:"head"},V8={class:"head"},E8={__name:"orderTypes",props:{orderType:{type:String,default:"current"}},emits:["handleFetchOrders"],setup(t,{emit:e}){const{getMethod:n,getResult:r}=va(),i=e;return Ka(()=>{n("provider/home",!0)}),(a,o)=>{var l,s,d,c,u,h,f,g;return oe(),Ce("div",null,[Q("div",Z8,[Q("div",{class:Hr(["tab",{active:t.orderType==="new"}]),onClick:o[0]||(o[0]=A=>i("handleFetchOrders","new"))},[o[4]||(o[4]=Q("div",{class:"icon"},[Q("i",{class:"pi pi-clipboard"})],-1)),Q("div",I8,[Q("h5",null,ce(a.$t("orders.new_orders")),1),Q("p",null,ce((s=(l=ct(r))==null?void 0:l.data)==null?void 0:s.new_orders),1)])],2),Q("div",{class:Hr(["tab",{active:t.orderType==="current"}]),onClick:o[1]||(o[1]=A=>i("handleFetchOrders","current"))},[o[5]||(o[5]=Q("div",{class:"icon"},[Q("i",{class:"pi pi-clipboard"})],-1)),Q("div",C8,[Q("h5",null,ce(a.$t("orders.current_orders")),1),Q("p",null,ce((c=(d=ct(r))==null?void 0:d.data)==null?void 0:c.current_orders),1)])],2),Q("div",{class:Hr(["tab",{active:t.orderType==="finished"}]),onClick:o[2]||(o[2]=A=>i("handleFetchOrders","finished"))},[o[6]||(o[6]=Q("div",{class:"icon"},[Q("i",{class:"pi pi-clipboard"})],-1)),Q("div",v8,[Q("h5",null,ce(a.$t("orders.finished_orders")),1),Q("p",null,ce((h=(u=ct(r))==null?void 0:u.data)==null?void 0:h.finished_orders),1)])],2),Q("div",{class:Hr(["tab",{active:t.orderType==="cancelled"}]),onClick:o[3]||(o[3]=A=>i("handleFetchOrders","cancelled"))},[o[7]||(o[7]=Q("div",{class:"icon"},[Q("i",{class:"pi pi-clipboard"})],-1)),Q("div",V8,[Q("h5",null,ce(a.$t("orders.cancelled_orders")),1),Q("p",null,ce((g=(f=ct(r))==null?void 0:f.data)==null?void 0:g.cancelled_orders),1)])],2)])])}}},S8=Pi(E8,[["__scopeId","data-v-fc03b204"]]);function U0(t){"@babel/helpers - typeof";return U0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U0(t)}function W8(t,e,n){return e=N8(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function N8(t){var e=G8(t,"string");return U0(e)=="symbol"?e:String(e)}function G8(t,e){if(U0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(U0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var J8={paginator:function(e){var n=e.instance,r=e.key;return["p-paginator p-component",W8({"p-paginator-default":!n.hasBreakpoints()},"p-paginator-".concat(r),n.hasBreakpoints())]},start:"p-paginator-left-content",end:"p-paginator-right-content",firstPageButton:function(e){var n=e.instance;return["p-paginator-first p-paginator-element p-link",{"p-disabled":n.$attrs.disabled}]},firstPageIcon:"p-paginator-icon",previousPageButton:function(e){var n=e.instance;return["p-paginator-prev p-paginator-element p-link",{"p-disabled":n.$attrs.disabled}]},previousPageIcon:"p-paginator-icon",nextPageButton:function(e){var n=e.instance;return["p-paginator-next p-paginator-element p-link",{"p-disabled":n.$attrs.disabled}]},nextPageIcon:"p-paginator-icon",lastPageButton:function(e){var n=e.instance;return["p-paginator-last p-paginator-element p-link",{"p-disabled":n.$attrs.disabled}]},lastPageIcon:"p-paginator-icon",pages:"p-paginator-pages",pageButton:function(e){var n=e.props,r=e.pageLink;return["p-paginator-page p-paginator-element p-link",{"p-highlight":r-1===n.page}]},current:"p-paginator-current",rowPerPageDropdown:"p-paginator-rpp-options",jumpToPageDropdown:"p-paginator-page-options",jumpToPageInput:"p-paginator-page-input"},T8=Ld.extend({name:"paginator",classes:J8}),yS={name:"AngleDoubleLeftIcon",extends:ls},X8=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z",fill:"currentColor"},null,-1),k8=[X8];function w8(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),k8,16)}yS.render=w8;var FS={name:"BlankIcon",extends:ls},Y8=Q("rect",{width:"1",height:"1",fill:"currentColor","fill-opacity":"0"},null,-1),D8=[Y8];function M8(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),D8,16)}FS.render=M8;var L8={root:function(e){var n=e.instance,r=e.props,i=e.state;return["p-dropdown p-component p-inputwrapper",{"p-disabled":r.disabled,"p-invalid":r.invalid,"p-variant-filled":r.variant?r.variant==="filled":n.$primevue.config.inputStyle==="filled","p-dropdown-clearable":r.showClear,"p-focus":i.focused,"p-inputwrapper-filled":n.hasSelectedOption,"p-inputwrapper-focus":i.focused||i.overlayVisible,"p-overlay-open":i.overlayVisible}]},input:function(e){var n,r=e.instance,i=e.props;return["p-dropdown-label p-inputtext",{"p-placeholder":!i.editable&&r.label===i.placeholder,"p-dropdown-label-empty":!i.editable&&!r.$slots.value&&(r.label==="p-emptylabel"||((n=r.label)===null||n===void 0?void 0:n.length)===0)}]},clearIcon:"p-dropdown-clear-icon",trigger:"p-dropdown-trigger",loadingicon:"p-dropdown-trigger-icon",dropdownIcon:"p-dropdown-trigger-icon",panel:function(e){e.props;var n=e.instance;return["p-dropdown-panel p-component",{"p-ripple-disabled":n.$primevue.config.ripple===!1}]},header:"p-dropdown-header",filterContainer:"p-dropdown-filter-container",filterInput:function(e){var n=e.props,r=e.instance;return["p-dropdown-filter p-inputtext p-component",{"p-variant-filled":n.variant?n.variant==="filled":r.$primevue.config.inputStyle==="filled"}]},filterIcon:"p-dropdown-filter-icon",wrapper:"p-dropdown-items-wrapper",list:"p-dropdown-items",itemGroup:"p-dropdown-item-group",itemGroupLabel:"p-dropdown-item-group-label",item:function(e){var n=e.instance,r=e.props,i=e.state,a=e.option,o=e.focusedOption;return["p-dropdown-item",{"p-highlight":n.isSelected(a)&&r.highlightOnSelect,"p-focus":i.focusedOptionIndex===o,"p-disabled":n.isOptionDisabled(a)}]},itemLabel:"p-dropdown-item-label",checkIcon:"p-dropdown-check-icon",blankIcon:"p-dropdown-blank-icon",emptyMessage:"p-dropdown-empty-message"},H8=Ld.extend({name:"dropdown",classes:L8}),x8={name:"BaseDropdown",extends:nl,props:{modelValue:null,options:Array,optionLabel:[String,Function],optionValue:[String,Function],optionDisabled:[String,Function],optionGroupLabel:[String,Function],optionGroupChildren:[String,Function],scrollHeight:{type:String,default:"200px"},filter:Boolean,filterPlaceholder:String,filterLocale:String,filterMatchMode:{type:String,default:"contains"},filterFields:{type:Array,default:null},editable:Boolean,placeholder:{type:String,default:null},variant:{type:String,default:null},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},dataKey:null,showClear:{type:Boolean,default:!1},inputId:{type:String,default:null},inputClass:{type:[String,Object],default:null},inputStyle:{type:Object,default:null},inputProps:{type:null,default:null},panelClass:{type:[String,Object],default:null},panelStyle:{type:Object,default:null},panelProps:{type:null,default:null},filterInputProps:{type:null,default:null},clearIconProps:{type:null,default:null},appendTo:{type:[String,Object],default:"body"},loading:{type:Boolean,default:!1},clearIcon:{type:String,default:void 0},dropdownIcon:{type:String,default:void 0},filterIcon:{type:String,default:void 0},loadingIcon:{type:String,default:void 0},resetFilterOnHide:{type:Boolean,default:!1},resetFilterOnClear:{type:Boolean,default:!1},virtualScrollerOptions:{type:Object,default:null},autoOptionFocus:{type:Boolean,default:!1},autoFilterFocus:{type:Boolean,default:!1},selectOnFocus:{type:Boolean,default:!1},focusOnHover:{type:Boolean,default:!0},highlightOnSelect:{type:Boolean,default:!0},checkmark:{type:Boolean,default:!1},filterMessage:{type:String,default:null},selectionMessage:{type:String,default:null},emptySelectionMessage:{type:String,default:null},emptyFilterMessage:{type:String,default:null},emptyMessage:{type:String,default:null},tabindex:{type:Number,default:0},ariaLabel:{type:String,default:null},ariaLabelledby:{type:String,default:null}},style:H8,provide:function(){return{$parentInstance:this}}};function R0(t){"@babel/helpers - typeof";return R0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R0(t)}function O8(t){return j8(t)||z8(t)||P8(t)||K8()}function K8(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function P8(t,e){if(t){if(typeof t=="string")return F2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return F2(t,e)}}function z8(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function j8(t){if(Array.isArray(t))return F2(t)}function F2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function kZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function wZ(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?kZ(Object(n),!0).forEach(function(r){QS(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):kZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function QS(t,e,n){return e=_8(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _8(t){var e=$8(t,"string");return R0(e)=="symbol"?e:String(e)}function $8(t,e){if(R0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(R0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Yy={name:"Dropdown",extends:x8,inheritAttrs:!1,emits:["update:modelValue","change","focus","blur","before-show","before-hide","show","hide","filter"],outsideClickListener:null,scrollHandler:null,resizeListener:null,labelClickListener:null,overlay:null,list:null,virtualScroller:null,searchTimeout:null,searchValue:null,isModelValueChanged:!1,data:function(){return{id:this.$attrs.id,clicked:!1,focused:!1,focusedOptionIndex:-1,filterValue:null,overlayVisible:!1}},watch:{"$attrs.id":function(e){this.id=e||Nu()},modelValue:function(){this.isModelValueChanged=!0},options:function(){this.autoUpdateModel()}},mounted:function(){this.id=this.id||Nu(),this.autoUpdateModel(),this.bindLabelClickListener()},updated:function(){this.overlayVisible&&this.isModelValueChanged&&this.scrollInView(this.findSelectedOptionIndex()),this.isModelValueChanged=!1},beforeUnmount:function(){this.unbindOutsideClickListener(),this.unbindResizeListener(),this.unbindLabelClickListener(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.overlay&&(xu.clear(this.overlay),this.overlay=null)},methods:{getOptionIndex:function(e,n){return this.virtualScrollerDisabled?e:n&&n(e).index},getOptionLabel:function(e){return this.optionLabel?jn.resolveFieldData(e,this.optionLabel):e},getOptionValue:function(e){return this.optionValue?jn.resolveFieldData(e,this.optionValue):e},getOptionRenderKey:function(e,n){return(this.dataKey?jn.resolveFieldData(e,this.dataKey):this.getOptionLabel(e))+"_"+n},getPTItemOptions:function(e,n,r,i){return this.ptm(i,{context:{option:e,index:r,selected:this.isSelected(e),focused:this.focusedOptionIndex===this.getOptionIndex(r,n),disabled:this.isOptionDisabled(e)}})},isOptionDisabled:function(e){return this.optionDisabled?jn.resolveFieldData(e,this.optionDisabled):!1},isOptionGroup:function(e){return this.optionGroupLabel&&e.optionGroup&&e.group},getOptionGroupLabel:function(e){return jn.resolveFieldData(e,this.optionGroupLabel)},getOptionGroupChildren:function(e){return jn.resolveFieldData(e,this.optionGroupChildren)},getAriaPosInset:function(e){var n=this;return(this.optionGroupLabel?e-this.visibleOptions.slice(0,e).filter(function(r){return n.isOptionGroup(r)}).length:e)+1},show:function(e){this.$emit("before-show"),this.overlayVisible=!0,this.focusedOptionIndex=this.focusedOptionIndex!==-1?this.focusedOptionIndex:this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex(),e&&Wn.focus(this.$refs.focusInput)},hide:function(e){var n=this,r=function(){n.$emit("before-hide"),n.overlayVisible=!1,n.clicked=!1,n.focusedOptionIndex=-1,n.searchValue="",n.resetFilterOnHide&&(n.filterValue=null),e&&Wn.focus(n.$refs.focusInput)};setTimeout(function(){r()},0)},onFocus:function(e){this.disabled||(this.focused=!0,this.overlayVisible&&(this.focusedOptionIndex=this.focusedOptionIndex!==-1?this.focusedOptionIndex:this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex(),this.scrollInView(this.focusedOptionIndex)),this.$emit("focus",e))},onBlur:function(e){this.focused=!1,this.focusedOptionIndex=-1,this.searchValue="",this.$emit("blur",e)},onKeyDown:function(e){if(this.disabled||Wn.isAndroid()){e.preventDefault();return}var n=e.metaKey||e.ctrlKey;switch(e.code){case"ArrowDown":this.onArrowDownKey(e);break;case"ArrowUp":this.onArrowUpKey(e,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(e,this.editable);break;case"Home":this.onHomeKey(e,this.editable);break;case"End":this.onEndKey(e,this.editable);break;case"PageDown":this.onPageDownKey(e);break;case"PageUp":this.onPageUpKey(e);break;case"Space":this.onSpaceKey(e,this.editable);break;case"Enter":case"NumpadEnter":this.onEnterKey(e);break;case"Escape":this.onEscapeKey(e);break;case"Tab":this.onTabKey(e);break;case"Backspace":this.onBackspaceKey(e,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!n&&jn.isPrintableCharacter(e.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(e,e.key));break}this.clicked=!1},onEditableInput:function(e){var n=e.target.value;this.searchValue="";var r=this.searchOptions(e,n);!r&&(this.focusedOptionIndex=-1),this.updateModel(e,n),!this.overlayVisible&&jn.isNotEmpty(n)&&this.show()},onContainerClick:function(e){this.disabled||this.loading||e.target.tagName==="INPUT"||e.target.getAttribute("data-pc-section")==="clearicon"||e.target.closest('[data-pc-section="clearicon"]')||((!this.overlay||!this.overlay.contains(e.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.clicked=!0)},onClearClick:function(e){this.updateModel(e,null),this.resetFilterOnClear&&(this.filterValue=null)},onFirstHiddenFocus:function(e){var n=e.relatedTarget===this.$refs.focusInput?Wn.getFirstFocusableElement(this.overlay,':not([data-p-hidden-focusable="true"])'):this.$refs.focusInput;Wn.focus(n)},onLastHiddenFocus:function(e){var n=e.relatedTarget===this.$refs.focusInput?Wn.getLastFocusableElement(this.overlay,':not([data-p-hidden-focusable="true"])'):this.$refs.focusInput;Wn.focus(n)},onOptionSelect:function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=this.getOptionValue(n);this.updateModel(e,i),r&&this.hide(!0)},onOptionMouseMove:function(e,n){this.focusOnHover&&this.changeFocusedOptionIndex(e,n)},onFilterChange:function(e){var n=e.target.value;this.filterValue=n,this.focusedOptionIndex=-1,this.$emit("filter",{originalEvent:e,value:n}),!this.virtualScrollerDisabled&&this.virtualScroller.scrollToIndex(0)},onFilterKeyDown:function(e){switch(e.code){case"ArrowDown":this.onArrowDownKey(e);break;case"ArrowUp":this.onArrowUpKey(e,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(e,!0);break;case"Home":this.onHomeKey(e,!0);break;case"End":this.onEndKey(e,!0);break;case"Enter":case"NumpadEnter":this.onEnterKey(e);break;case"Escape":this.onEscapeKey(e);break;case"Tab":this.onTabKey(e,!0);break}},onFilterBlur:function(){this.focusedOptionIndex=-1},onFilterUpdated:function(){this.overlayVisible&&this.alignOverlay()},onOverlayClick:function(e){gh.emit("overlay-click",{originalEvent:e,target:this.$el})},onOverlayKeyDown:function(e){switch(e.code){case"Escape":this.onEscapeKey(e);break}},onArrowDownKey:function(e){if(!this.overlayVisible)this.show(),this.editable&&this.changeFocusedOptionIndex(e,this.findSelectedOptionIndex());else{var n=this.focusedOptionIndex!==-1?this.findNextOptionIndex(this.focusedOptionIndex):this.clicked?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(e,n)}e.preventDefault()},onArrowUpKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.altKey&&!n)this.focusedOptionIndex!==-1&&this.onOptionSelect(e,this.visibleOptions[this.focusedOptionIndex]),this.overlayVisible&&this.hide(),e.preventDefault();else{var r=this.focusedOptionIndex!==-1?this.findPrevOptionIndex(this.focusedOptionIndex):this.clicked?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(e,r),!this.overlayVisible&&this.show(),e.preventDefault()}},onArrowLeftKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n&&(this.focusedOptionIndex=-1)},onHomeKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(n){var r=e.currentTarget;e.shiftKey?r.setSelectionRange(0,e.target.selectionStart):(r.setSelectionRange(0,0),this.focusedOptionIndex=-1)}else this.changeFocusedOptionIndex(e,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();e.preventDefault()},onEndKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(n){var r=e.currentTarget;if(e.shiftKey)r.setSelectionRange(e.target.selectionStart,r.value.length);else{var i=r.value.length;r.setSelectionRange(i,i),this.focusedOptionIndex=-1}}else this.changeFocusedOptionIndex(e,this.findLastOptionIndex()),!this.overlayVisible&&this.show();e.preventDefault()},onPageUpKey:function(e){this.scrollInView(0),e.preventDefault()},onPageDownKey:function(e){this.scrollInView(this.visibleOptions.length-1),e.preventDefault()},onEnterKey:function(e){this.overlayVisible?(this.focusedOptionIndex!==-1&&this.onOptionSelect(e,this.visibleOptions[this.focusedOptionIndex]),this.hide()):(this.focusedOptionIndex=-1,this.onArrowDownKey(e)),e.preventDefault()},onSpaceKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;!n&&this.onEnterKey(e)},onEscapeKey:function(e){this.overlayVisible&&this.hide(!0),e.preventDefault(),e.stopPropagation()},onTabKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n||(this.overlayVisible&&this.hasFocusableElements()?(Wn.focus(this.$refs.firstHiddenFocusableElementOnOverlay),e.preventDefault()):(this.focusedOptionIndex!==-1&&this.onOptionSelect(e,this.visibleOptions[this.focusedOptionIndex]),this.overlayVisible&&this.hide(this.filter)))},onBackspaceKey:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n&&!this.overlayVisible&&this.show()},onOverlayEnter:function(e){xu.set("overlay",e,this.$primevue.config.zIndex.overlay),Wn.addStyles(e,{position:"absolute",top:"0",left:"0"}),this.alignOverlay(),this.scrollInView(),this.autoFilterFocus&&Wn.focus(this.$refs.filterInput)},onOverlayAfterEnter:function(){this.bindOutsideClickListener(),this.bindScrollListener(),this.bindResizeListener(),this.$emit("show")},onOverlayLeave:function(){this.unbindOutsideClickListener(),this.unbindScrollListener(),this.unbindResizeListener(),this.$emit("hide"),this.overlay=null},onOverlayAfterLeave:function(e){xu.clear(e)},alignOverlay:function(){this.appendTo==="self"?Wn.relativePosition(this.overlay,this.$el):(this.overlay.style.minWidth=Wn.getOuterWidth(this.$el)+"px",Wn.absolutePosition(this.overlay,this.$el))},bindOutsideClickListener:function(){var e=this;this.outsideClickListener||(this.outsideClickListener=function(n){e.overlayVisible&&e.overlay&&!e.$el.contains(n.target)&&!e.overlay.contains(n.target)&&e.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener:function(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindScrollListener:function(){var e=this;this.scrollHandler||(this.scrollHandler=new ZQ(this.$refs.container,function(){e.overlayVisible&&e.hide()})),this.scrollHandler.bindScrollListener()},unbindScrollListener:function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},bindResizeListener:function(){var e=this;this.resizeListener||(this.resizeListener=function(){e.overlayVisible&&!Wn.isTouchDevice()&&e.hide()},window.addEventListener("resize",this.resizeListener))},unbindResizeListener:function(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},bindLabelClickListener:function(){var e=this;if(!this.editable&&!this.labelClickListener){var n=document.querySelector('label[for="'.concat(this.inputId,'"]'));n&&Wn.isVisible(n)&&(this.labelClickListener=function(){Wn.focus(e.$refs.focusInput)},n.addEventListener("click",this.labelClickListener))}},unbindLabelClickListener:function(){if(this.labelClickListener){var e=document.querySelector('label[for="'.concat(this.inputId,'"]'));e&&Wn.isVisible(e)&&e.removeEventListener("click",this.labelClickListener)}},hasFocusableElements:function(){return Wn.getFocusableElements(this.overlay,':not([data-p-hidden-focusable="true"])').length>0},isOptionMatched:function(e){var n;return this.isValidOption(e)&&((n=this.getOptionLabel(e))===null||n===void 0?void 0:n.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)))},isValidOption:function(e){return jn.isNotEmpty(e)&&!(this.isOptionDisabled(e)||this.isOptionGroup(e))},isValidSelectedOption:function(e){return this.isValidOption(e)&&this.isSelected(e)},isSelected:function(e){return this.isValidOption(e)&&jn.equals(this.modelValue,this.getOptionValue(e),this.equalityKey)},findFirstOptionIndex:function(){var e=this;return this.visibleOptions.findIndex(function(n){return e.isValidOption(n)})},findLastOptionIndex:function(){var e=this;return jn.findLastIndex(this.visibleOptions,function(n){return e.isValidOption(n)})},findNextOptionIndex:function(e){var n=this,r=e<this.visibleOptions.length-1?this.visibleOptions.slice(e+1).findIndex(function(i){return n.isValidOption(i)}):-1;return r>-1?r+e+1:e},findPrevOptionIndex:function(e){var n=this,r=e>0?jn.findLastIndex(this.visibleOptions.slice(0,e),function(i){return n.isValidOption(i)}):-1;return r>-1?r:e},findSelectedOptionIndex:function(){var e=this;return this.hasSelectedOption?this.visibleOptions.findIndex(function(n){return e.isValidSelectedOption(n)}):-1},findFirstFocusedOptionIndex:function(){var e=this.findSelectedOptionIndex();return e<0?this.findFirstOptionIndex():e},findLastFocusedOptionIndex:function(){var e=this.findSelectedOptionIndex();return e<0?this.findLastOptionIndex():e},searchOptions:function(e,n){var r=this;this.searchValue=(this.searchValue||"")+n;var i=-1,a=!1;return jn.isNotEmpty(this.searchValue)&&(this.focusedOptionIndex!==-1?(i=this.visibleOptions.slice(this.focusedOptionIndex).findIndex(function(o){return r.isOptionMatched(o)}),i=i===-1?this.visibleOptions.slice(0,this.focusedOptionIndex).findIndex(function(o){return r.isOptionMatched(o)}):i+this.focusedOptionIndex):i=this.visibleOptions.findIndex(function(o){return r.isOptionMatched(o)}),i!==-1&&(a=!0),i===-1&&this.focusedOptionIndex===-1&&(i=this.findFirstFocusedOptionIndex()),i!==-1&&this.changeFocusedOptionIndex(e,i)),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(function(){r.searchValue="",r.searchTimeout=null},500),a},changeFocusedOptionIndex:function(e,n){this.focusedOptionIndex!==n&&(this.focusedOptionIndex=n,this.scrollInView(),this.selectOnFocus&&this.onOptionSelect(e,this.visibleOptions[n],!1))},scrollInView:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;this.$nextTick(function(){var r=n!==-1?"".concat(e.id,"_").concat(n):e.focusedOptionId,i=Wn.findSingle(e.list,'li[id="'.concat(r,'"]'));i?i.scrollIntoView&&i.scrollIntoView({block:"nearest"}):e.virtualScrollerDisabled||e.virtualScroller&&e.virtualScroller.scrollToIndex(n!==-1?n:e.focusedOptionIndex)})},autoUpdateModel:function(){this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption&&(this.focusedOptionIndex=this.findFirstFocusedOptionIndex(),this.onOptionSelect(null,this.visibleOptions[this.focusedOptionIndex],!1))},updateModel:function(e,n){this.$emit("update:modelValue",n),this.$emit("change",{originalEvent:e,value:n})},flatOptions:function(e){var n=this;return(e||[]).reduce(function(r,i,a){r.push({optionGroup:i,group:!0,index:a});var o=n.getOptionGroupChildren(i);return o&&o.forEach(function(l){return r.push(l)}),r},[])},overlayRef:function(e){this.overlay=e},listRef:function(e,n){this.list=e,n&&n(e)},virtualScrollerRef:function(e){this.virtualScroller=e}},computed:{visibleOptions:function(){var e=this,n=this.optionGroupLabel?this.flatOptions(this.options):this.options||[];if(this.filterValue){var r=iy.filter(n,this.searchFields,this.filterValue,this.filterMatchMode,this.filterLocale);if(this.optionGroupLabel){var i=this.options||[],a=[];return i.forEach(function(o){var l=e.getOptionGroupChildren(o),s=l.filter(function(d){return r.includes(d)});s.length>0&&a.push(wZ(wZ({},o),{},QS({},typeof e.optionGroupChildren=="string"?e.optionGroupChildren:"items",O8(s))))}),this.flatOptions(a)}return r}return n},hasSelectedOption:function(){return jn.isNotEmpty(this.modelValue)},label:function(){var e=this.findSelectedOptionIndex();return e!==-1?this.getOptionLabel(this.visibleOptions[e]):this.placeholder||"p-emptylabel"},editableInputValue:function(){var e=this.findSelectedOptionIndex();return e!==-1?this.getOptionLabel(this.visibleOptions[e]):this.modelValue||""},equalityKey:function(){return this.optionValue?null:this.dataKey},searchFields:function(){return this.filterFields||[this.optionLabel]},filterResultMessageText:function(){return jn.isNotEmpty(this.visibleOptions)?this.filterMessageText.replaceAll("{0}",this.visibleOptions.length):this.emptyFilterMessageText},filterMessageText:function(){return this.filterMessage||this.$primevue.config.locale.searchMessage||""},emptyFilterMessageText:function(){return this.emptyFilterMessage||this.$primevue.config.locale.emptySearchMessage||this.$primevue.config.locale.emptyFilterMessage||""},emptyMessageText:function(){return this.emptyMessage||this.$primevue.config.locale.emptyMessage||""},selectionMessageText:function(){return this.selectionMessage||this.$primevue.config.locale.selectionMessage||""},emptySelectionMessageText:function(){return this.emptySelectionMessage||this.$primevue.config.locale.emptySelectionMessage||""},selectedMessageText:function(){return this.hasSelectedOption?this.selectionMessageText.replaceAll("{0}","1"):this.emptySelectionMessageText},listAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.listLabel:void 0},focusedOptionId:function(){return this.focusedOptionIndex!==-1?"".concat(this.id,"_").concat(this.focusedOptionIndex):null},ariaSetSize:function(){var e=this;return this.visibleOptions.filter(function(n){return!e.isOptionGroup(n)}).length},virtualScrollerDisabled:function(){return!this.virtualScrollerOptions}},directives:{ripple:wf},components:{VirtualScroller:ky,Portal:O0,TimesIcon:K0,ChevronDownIcon:P0,SpinnerIcon:Gp,SearchIcon:NQ,CheckIcon:mh,BlankIcon:FS}};function B0(t){"@babel/helpers - typeof";return B0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B0(t)}function YZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Wf(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?YZ(Object(n),!0).forEach(function(r){q8(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):YZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function q8(t,e,n){return e=e_(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function e_(t){var e=t_(t,"string");return B0(e)=="symbol"?e:String(e)}function t_(t,e){if(B0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(B0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var n_=["id"],r_=["id","value","placeholder","tabindex","disabled","aria-label","aria-labelledby","aria-expanded","aria-controls","aria-activedescendant","aria-invalid"],i_=["id","tabindex","aria-label","aria-labelledby","aria-expanded","aria-controls","aria-activedescendant","aria-disabled"],a_=["value","placeholder","aria-owns","aria-activedescendant"],o_=["id","aria-label"],l_=["id"],s_=["id","aria-label","aria-selected","aria-disabled","aria-setsize","aria-posinset","onClick","onMousemove","data-p-highlight","data-p-focused","data-p-disabled"];function d_(t,e,n,r,i,a){var o=Li("SpinnerIcon"),l=Li("CheckIcon"),s=Li("BlankIcon"),d=Li("VirtualScroller"),c=Li("Portal"),u=mf("ripple");return oe(),Ce("div",Jt({ref:"container",id:i.id,class:t.cx("root"),onClick:e[16]||(e[16]=function(){return a.onContainerClick&&a.onContainerClick.apply(a,arguments)})},t.ptmi("root")),[t.editable?(oe(),Ce("input",Jt({key:0,ref:"focusInput",id:t.inputId,type:"text",class:[t.cx("input"),t.inputClass],style:t.inputStyle,value:a.editableInputValue,placeholder:t.placeholder,tabindex:t.disabled?-1:t.tabindex,disabled:t.disabled,autocomplete:"off",role:"combobox","aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-haspopup":"listbox","aria-expanded":i.overlayVisible,"aria-controls":i.id+"_list","aria-activedescendant":i.focused?a.focusedOptionId:void 0,"aria-invalid":t.invalid||void 0,onFocus:e[0]||(e[0]=function(){return a.onFocus&&a.onFocus.apply(a,arguments)}),onBlur:e[1]||(e[1]=function(){return a.onBlur&&a.onBlur.apply(a,arguments)}),onKeydown:e[2]||(e[2]=function(){return a.onKeyDown&&a.onKeyDown.apply(a,arguments)}),onInput:e[3]||(e[3]=function(){return a.onEditableInput&&a.onEditableInput.apply(a,arguments)})},Wf(Wf({},t.inputProps),t.ptm("input"))),null,16,r_)):(oe(),Ce("span",Jt({key:1,ref:"focusInput",id:t.inputId,class:[t.cx("input"),t.inputClass],style:t.inputStyle,tabindex:t.disabled?-1:t.tabindex,role:"combobox","aria-label":t.ariaLabel||(a.label==="p-emptylabel"?void 0:a.label),"aria-labelledby":t.ariaLabelledby,"aria-haspopup":"listbox","aria-expanded":i.overlayVisible,"aria-controls":i.id+"_list","aria-activedescendant":i.focused?a.focusedOptionId:void 0,"aria-disabled":t.disabled,onFocus:e[4]||(e[4]=function(){return a.onFocus&&a.onFocus.apply(a,arguments)}),onBlur:e[5]||(e[5]=function(){return a.onBlur&&a.onBlur.apply(a,arguments)}),onKeydown:e[6]||(e[6]=function(){return a.onKeyDown&&a.onKeyDown.apply(a,arguments)})},Wf(Wf({},t.inputProps),t.ptm("input"))),[Vi(t.$slots,"value",{value:t.modelValue,placeholder:t.placeholder},function(){return[Ni(ce(a.label==="p-emptylabel"?" ":a.label||"empty"),1)]})],16,i_)),t.showClear&&t.modelValue!=null?Vi(t.$slots,"clearicon",{key:2,class:Hr(t.cx("clearIcon")),onClick:a.onClearClick,clearCallback:a.onClearClick},function(){return[(oe(),Vn(ea(t.clearIcon?"i":"TimesIcon"),Jt({ref:"clearIcon",class:[t.cx("clearIcon"),t.clearIcon],onClick:a.onClearClick},Wf(Wf({},t.clearIconProps),t.ptm("clearIcon")),{"data-pc-section":"clearicon"}),null,16,["class","onClick"]))]}):Pt("",!0),Q("div",Jt({class:t.cx("trigger")},t.ptm("trigger")),[t.loading?Vi(t.$slots,"loadingicon",{key:0,class:Hr(t.cx("loadingIcon"))},function(){return[t.loadingIcon?(oe(),Ce("span",Jt({key:0,class:[t.cx("loadingIcon"),"pi-spin",t.loadingIcon],"aria-hidden":"true"},t.ptm("loadingIcon")),null,16)):(oe(),Vn(o,Jt({key:1,class:t.cx("loadingIcon"),spin:"","aria-hidden":"true"},t.ptm("loadingIcon")),null,16,["class"]))]}):Vi(t.$slots,"dropdownicon",{key:1,class:Hr(t.cx("dropdownIcon"))},function(){return[(oe(),Vn(ea(t.dropdownIcon?"span":"ChevronDownIcon"),Jt({class:[t.cx("dropdownIcon"),t.dropdownIcon],"aria-hidden":"true"},t.ptm("dropdownIcon")),null,16,["class"]))]})],16),Fn(c,{appendTo:t.appendTo},{default:Yr(function(){return[Fn(Cp,Jt({name:"p-connected-overlay",onEnter:a.onOverlayEnter,onAfterEnter:a.onOverlayAfterEnter,onLeave:a.onOverlayLeave,onAfterLeave:a.onOverlayAfterLeave},t.ptm("transition")),{default:Yr(function(){return[i.overlayVisible?(oe(),Ce("div",Jt({key:0,ref:a.overlayRef,class:[t.cx("panel"),t.panelClass],style:t.panelStyle,onClick:e[14]||(e[14]=function(){return a.onOverlayClick&&a.onOverlayClick.apply(a,arguments)}),onKeydown:e[15]||(e[15]=function(){return a.onOverlayKeyDown&&a.onOverlayKeyDown.apply(a,arguments)})},Wf(Wf({},t.panelProps),t.ptm("panel"))),[Q("span",Jt({ref:"firstHiddenFocusableElementOnOverlay",role:"presentation","aria-hidden":"true",class:"p-hidden-accessible p-hidden-focusable",tabindex:0,onFocus:e[7]||(e[7]=function(){return a.onFirstHiddenFocus&&a.onFirstHiddenFocus.apply(a,arguments)})},t.ptm("hiddenFirstFocusableEl"),{"data-p-hidden-accessible":!0,"data-p-hidden-focusable":!0}),null,16),Vi(t.$slots,"header",{value:t.modelValue,options:a.visibleOptions}),t.filter?(oe(),Ce("div",Jt({key:0,class:t.cx("header")},t.ptm("header")),[Q("div",Jt({class:t.cx("filterContainer")},t.ptm("filterContainer")),[Q("input",Jt({ref:"filterInput",type:"text",value:i.filterValue,onVnodeMounted:e[8]||(e[8]=function(){return a.onFilterUpdated&&a.onFilterUpdated.apply(a,arguments)}),onVnodeUpdated:e[9]||(e[9]=function(){return a.onFilterUpdated&&a.onFilterUpdated.apply(a,arguments)}),class:t.cx("filterInput"),placeholder:t.filterPlaceholder,role:"searchbox",autocomplete:"off","aria-owns":i.id+"_list","aria-activedescendant":a.focusedOptionId,onKeydown:e[10]||(e[10]=function(){return a.onFilterKeyDown&&a.onFilterKeyDown.apply(a,arguments)}),onBlur:e[11]||(e[11]=function(){return a.onFilterBlur&&a.onFilterBlur.apply(a,arguments)}),onInput:e[12]||(e[12]=function(){return a.onFilterChange&&a.onFilterChange.apply(a,arguments)})},Wf(Wf({},t.filterInputProps),t.ptm("filterInput"))),null,16,a_),Vi(t.$slots,"filtericon",{class:Hr(t.cx("filterIcon"))},function(){return[(oe(),Vn(ea(t.filterIcon?"span":"SearchIcon"),Jt({class:[t.cx("filterIcon"),t.filterIcon]},t.ptm("filterIcon")),null,16,["class"]))]})],16),Q("span",Jt({role:"status","aria-live":"polite",class:"p-hidden-accessible"},t.ptm("hiddenFilterResult"),{"data-p-hidden-accessible":!0}),ce(a.filterResultMessageText),17)],16)):Pt("",!0),Q("div",Jt({class:t.cx("wrapper"),style:{"max-height":a.virtualScrollerDisabled?t.scrollHeight:""}},t.ptm("wrapper")),[Fn(d,Jt({ref:a.virtualScrollerRef},t.virtualScrollerOptions,{items:a.visibleOptions,style:{height:t.scrollHeight},tabindex:-1,disabled:a.virtualScrollerDisabled,pt:t.ptm("virtualScroller")}),gp({content:Yr(function(h){var f=h.styleClass,g=h.contentRef,A=h.items,b=h.getItemOptions,p=h.contentStyle,y=h.itemSize;return[Q("ul",Jt({ref:function(F){return a.listRef(F,g)},id:i.id+"_list",class:[t.cx("list"),f],style:p,role:"listbox","aria-label":a.listAriaLabel},t.ptm("list")),[(oe(!0),Ce(Er,null,ia(A,function(m,F){return oe(),Ce(Er,{key:a.getOptionRenderKey(m,a.getOptionIndex(F,b))},[a.isOptionGroup(m)?(oe(),Ce("li",Jt({key:0,id:i.id+"_"+a.getOptionIndex(F,b),style:{height:y?y+"px":void 0},class:t.cx("itemGroup"),role:"option"},t.ptm("itemGroup")),[Vi(t.$slots,"optiongroup",{option:m.optionGroup,index:a.getOptionIndex(F,b)},function(){return[Q("span",Jt({class:t.cx("itemGroupLabel")},t.ptm("itemGroupLabel")),ce(a.getOptionGroupLabel(m.optionGroup)),17)]})],16,l_)):br((oe(),Ce("li",Jt({key:1,id:i.id+"_"+a.getOptionIndex(F,b),class:t.cx("item",{option:m,focusedOption:a.getOptionIndex(F,b)}),style:{height:y?y+"px":void 0},role:"option","aria-label":a.getOptionLabel(m),"aria-selected":a.isSelected(m),"aria-disabled":a.isOptionDisabled(m),"aria-setsize":a.ariaSetSize,"aria-posinset":a.getAriaPosInset(a.getOptionIndex(F,b)),onClick:function(C){return a.onOptionSelect(C,m)},onMousemove:function(C){return a.onOptionMouseMove(C,a.getOptionIndex(F,b))},"data-p-highlight":a.isSelected(m),"data-p-focused":i.focusedOptionIndex===a.getOptionIndex(F,b),"data-p-disabled":a.isOptionDisabled(m)},a.getPTItemOptions(m,b,F,"item")),[t.checkmark?(oe(),Ce(Er,{key:0},[a.isSelected(m)?(oe(),Vn(l,Jt({key:0,class:t.cx("checkIcon")},t.ptm("checkIcon")),null,16,["class"])):(oe(),Vn(s,Jt({key:1,class:t.cx("blankIcon")},t.ptm("blankIcon")),null,16,["class"]))],64)):Pt("",!0),Vi(t.$slots,"option",{option:m,index:a.getOptionIndex(F,b)},function(){return[Q("span",Jt({class:t.cx("itemLabel")},t.ptm("itemLabel")),ce(a.getOptionLabel(m)),17)]})],16,s_)),[[u]])],64)}),128)),i.filterValue&&(!A||A&&A.length===0)?(oe(),Ce("li",Jt({key:0,class:t.cx("emptyMessage"),role:"option"},t.ptm("emptyMessage"),{"data-p-hidden-accessible":!0}),[Vi(t.$slots,"emptyfilter",{},function(){return[Ni(ce(a.emptyFilterMessageText),1)]})],16)):!t.options||t.options&&t.options.length===0?(oe(),Ce("li",Jt({key:1,class:t.cx("emptyMessage"),role:"option"},t.ptm("emptyMessage"),{"data-p-hidden-accessible":!0}),[Vi(t.$slots,"empty",{},function(){return[Ni(ce(a.emptyMessageText),1)]})],16)):Pt("",!0)],16,o_)]}),_:2},[t.$slots.loader?{name:"loader",fn:Yr(function(h){var f=h.options;return[Vi(t.$slots,"loader",{options:f})]}),key:"0"}:void 0]),1040,["items","style","disabled","pt"])],16),Vi(t.$slots,"footer",{value:t.modelValue,options:a.visibleOptions}),!t.options||t.options&&t.options.length===0?(oe(),Ce("span",Jt({key:1,role:"status","aria-live":"polite",class:"p-hidden-accessible"},t.ptm("hiddenEmptyMessage"),{"data-p-hidden-accessible":!0}),ce(a.emptyMessageText),17)):Pt("",!0),Q("span",Jt({role:"status","aria-live":"polite",class:"p-hidden-accessible"},t.ptm("hiddenSelectedMessage"),{"data-p-hidden-accessible":!0}),ce(a.selectedMessageText),17),Q("span",Jt({ref:"lastHiddenFocusableElementOnOverlay",role:"presentation","aria-hidden":"true",class:"p-hidden-accessible p-hidden-focusable",tabindex:0,onFocus:e[13]||(e[13]=function(){return a.onLastHiddenFocus&&a.onLastHiddenFocus.apply(a,arguments)})},t.ptm("hiddenLastFocusableEl"),{"data-p-hidden-accessible":!0,"data-p-hidden-focusable":!0}),null,16)],16)):Pt("",!0)]}),_:3},16,["onEnter","onAfterEnter","onLeave","onAfterLeave"])]}),_:3},8,["appendTo"])],16,n_)}Yy.render=d_;var c_={root:function(e){var n=e.props,r=e.instance;return["p-badge p-component",{"p-badge-no-gutter":jn.isNotEmpty(n.value)&&String(n.value).length===1,"p-badge-dot":jn.isEmpty(n.value)&&!r.$slots.default,"p-badge-lg":n.size==="large","p-badge-xl":n.size==="xlarge","p-badge-info":n.severity==="info","p-badge-success":n.severity==="success","p-badge-warning":n.severity==="warning","p-badge-danger":n.severity==="danger","p-badge-secondary":n.severity==="secondary","p-badge-contrast":n.severity==="contrast"}]}},u_=Ld.extend({name:"badge",classes:c_}),f_={name:"BaseBadge",extends:nl,props:{value:{type:[String,Number],default:null},severity:{type:String,default:null},size:{type:String,default:null}},style:u_,provide:function(){return{$parentInstance:this}}},US={name:"Badge",extends:f_,inheritAttrs:!1};function h_(t,e,n,r,i,a){return oe(),Ce("span",Jt({class:t.cx("root")},t.ptmi("root")),[Vi(t.$slots,"default",{},function(){return[Ni(ce(t.value),1)]})],16)}US.render=h_;function Z0(t){"@babel/helpers - typeof";return Z0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Z0(t)}function Oh(t,e,n){return e=g_(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function g_(t){var e=A_(t,"string");return Z0(e)=="symbol"?e:String(e)}function A_(t,e){if(Z0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(Z0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var p_={root:function(e){var n=e.instance,r=e.props;return["p-button p-component",Oh(Oh(Oh(Oh(Oh(Oh(Oh(Oh({"p-button-icon-only":n.hasIcon&&!r.label&&!r.badge,"p-button-vertical":(r.iconPos==="top"||r.iconPos==="bottom")&&r.label,"p-disabled":n.$attrs.disabled||n.$attrs.disabled===""||r.loading,"p-button-loading":r.loading,"p-button-loading-label-only":r.loading&&!n.hasIcon&&r.label,"p-button-link":r.link},"p-button-".concat(r.severity),r.severity),"p-button-raised",r.raised),"p-button-rounded",r.rounded),"p-button-text",r.text),"p-button-outlined",r.outlined),"p-button-sm",r.size==="small"),"p-button-lg",r.size==="large"),"p-button-plain",r.plain)]},loadingIcon:"p-button-loading-icon pi-spin",icon:function(e){var n=e.props;return["p-button-icon",{"p-button-icon-left":n.iconPos==="left"&&n.label,"p-button-icon-right":n.iconPos==="right"&&n.label,"p-button-icon-top":n.iconPos==="top"&&n.label,"p-button-icon-bottom":n.iconPos==="bottom"&&n.label}]},label:"p-button-label"},m_=Ld.extend({name:"button",classes:p_}),b_={name:"BaseButton",extends:nl,props:{label:{type:String,default:null},icon:{type:String,default:null},iconPos:{type:String,default:"left"},iconClass:{type:String,default:null},badge:{type:String,default:null},badgeClass:{type:String,default:null},badgeSeverity:{type:String,default:null},loading:{type:Boolean,default:!1},loadingIcon:{type:String,default:void 0},link:{type:Boolean,default:!1},severity:{type:String,default:null},raised:{type:Boolean,default:!1},rounded:{type:Boolean,default:!1},text:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1},size:{type:String,default:null},plain:{type:Boolean,default:!1}},style:m_,provide:function(){return{$parentInstance:this}}},wQ={name:"Button",extends:b_,inheritAttrs:!1,methods:{getPTOptions:function(e){var n=e==="root"?this.ptmi:this.ptm;return n(e,{context:{disabled:this.disabled}})}},computed:{disabled:function(){return this.$attrs.disabled||this.$attrs.disabled===""||this.loading},defaultAriaLabel:function(){return this.label?this.label+(this.badge?" "+this.badge:""):this.$attrs.ariaLabel},hasIcon:function(){return this.icon||this.$slots.icon}},components:{SpinnerIcon:Gp,Badge:US},directives:{ripple:wf}},y_=["aria-label","disabled","data-p-severity"];function F_(t,e,n,r,i,a){var o=Li("SpinnerIcon"),l=Li("Badge"),s=mf("ripple");return br((oe(),Ce("button",Jt({class:t.cx("root"),type:"button","aria-label":a.defaultAriaLabel,disabled:a.disabled},a.getPTOptions("root"),{"data-p-severity":t.severity}),[Vi(t.$slots,"default",{},function(){return[t.loading?Vi(t.$slots,"loadingicon",{key:0,class:Hr([t.cx("loadingIcon"),t.cx("icon")])},function(){return[t.loadingIcon?(oe(),Ce("span",Jt({key:0,class:[t.cx("loadingIcon"),t.cx("icon"),t.loadingIcon]},t.ptm("loadingIcon")),null,16)):(oe(),Vn(o,Jt({key:1,class:[t.cx("loadingIcon"),t.cx("icon")],spin:""},t.ptm("loadingIcon")),null,16,["class"]))]}):Vi(t.$slots,"icon",{key:1,class:Hr([t.cx("icon")])},function(){return[t.icon?(oe(),Ce("span",Jt({key:0,class:[t.cx("icon"),t.icon,t.iconClass]},t.ptm("icon")),null,16)):Pt("",!0)]}),Q("span",Jt({class:t.cx("label")},t.ptm("label")),ce(t.label||" "),17),t.badge?(oe(),Vn(l,Jt({key:2,value:t.badge,class:t.badgeClass,severity:t.badgeSeverity,unstyled:t.unstyled},t.ptm("badge")),null,16,["value","class","severity","unstyled"])):Pt("",!0)]})],16,y_)),[[s]])}wQ.render=F_;var RS={name:"AngleDownIcon",extends:ls},Q_=Q("path",{d:"M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z",fill:"currentColor"},null,-1),U_=[Q_];function R_(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),U_,16)}RS.render=R_;var BS={name:"AngleUpIcon",extends:ls},B_=Q("path",{d:"M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z",fill:"currentColor"},null,-1),Z_=[B_];function I_(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),Z_,16)}BS.render=I_;var C_={root:function(e){var n=e.instance,r=e.props;return["p-inputtext p-component",{"p-filled":n.filled,"p-inputtext-sm":r.size==="small","p-inputtext-lg":r.size==="large","p-invalid":r.invalid,"p-variant-filled":r.variant?r.variant==="filled":n.$primevue.config.inputStyle==="filled"}]}},v_=Ld.extend({name:"inputtext",classes:C_}),V_={name:"BaseInputText",extends:nl,props:{modelValue:null,size:{type:String,default:null},invalid:{type:Boolean,default:!1},variant:{type:String,default:null}},style:v_,provide:function(){return{$parentInstance:this}}},ZS={name:"InputText",extends:V_,inheritAttrs:!1,emits:["update:modelValue"],methods:{getPTOptions:function(e){var n=e==="root"?this.ptmi:this.ptm;return n(e,{context:{filled:this.filled,disabled:this.$attrs.disabled||this.$attrs.disabled===""}})},onInput:function(e){this.$emit("update:modelValue",e.target.value)}},computed:{filled:function(){return this.modelValue!=null&&this.modelValue.toString().length>0}}},E_=["value","aria-invalid"];function S_(t,e,n,r,i,a){return oe(),Ce("input",Jt({class:t.cx("root"),value:t.modelValue,"aria-invalid":t.invalid||void 0,onInput:e[0]||(e[0]=function(){return a.onInput&&a.onInput.apply(a,arguments)})},a.getPTOptions("root")),null,16,E_)}ZS.render=S_;var W_={root:function(e){var n=e.instance,r=e.props;return["p-inputnumber p-component p-inputwrapper",{"p-inputwrapper-filled":n.filled||r.allowEmpty===!1,"p-inputwrapper-focus":n.focused,"p-inputnumber-buttons-stacked":r.showButtons&&r.buttonLayout==="stacked","p-inputnumber-buttons-horizontal":r.showButtons&&r.buttonLayout==="horizontal","p-inputnumber-buttons-vertical":r.showButtons&&r.buttonLayout==="vertical","p-invalid":r.invalid}]},input:function(e){var n=e.props,r=e.instance;return["p-inputnumber-input",{"p-variant-filled":n.variant?n.variant==="filled":r.$primevue.config.inputStyle==="filled"}]},buttonGroup:"p-inputnumber-button-group",incrementButton:function(e){var n=e.instance,r=e.props;return["p-inputnumber-button p-inputnumber-button-up",{"p-disabled":r.showButtons&&r.max!==null&&n.maxBoundry()}]},decrementButton:function(e){var n=e.instance,r=e.props;return["p-inputnumber-button p-inputnumber-button-down",{"p-disabled":r.showButtons&&r.min!==null&&n.minBoundry()}]}},N_=Ld.extend({name:"inputnumber",classes:W_}),G_={name:"BaseInputNumber",extends:nl,props:{modelValue:{type:Number,default:null},format:{type:Boolean,default:!0},showButtons:{type:Boolean,default:!1},buttonLayout:{type:String,default:"stacked"},incrementButtonClass:{type:String,default:null},decrementButtonClass:{type:String,default:null},incrementButtonIcon:{type:String,default:void 0},decrementButtonIcon:{type:String,default:void 0},locale:{type:String,default:void 0},localeMatcher:{type:String,default:void 0},mode:{type:String,default:"decimal"},prefix:{type:String,default:null},suffix:{type:String,default:null},currency:{type:String,default:void 0},currencyDisplay:{type:String,default:void 0},useGrouping:{type:Boolean,default:!0},minFractionDigits:{type:Number,default:void 0},maxFractionDigits:{type:Number,default:void 0},roundingMode:{type:String,default:"halfExpand",validator:function(e){return["ceil","floor","expand","trunc","halfCeil","halfFloor","halfExpand","halfTrunc","halfEven"].includes(e)}},min:{type:Number,default:null},max:{type:Number,default:null},step:{type:Number,default:1},allowEmpty:{type:Boolean,default:!0},highlightOnFocus:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},variant:{type:String,default:null},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placeholder:{type:String,default:null},inputId:{type:String,default:null},inputClass:{type:[String,Object],default:null},inputStyle:{type:Object,default:null},inputProps:{type:null,default:null},incrementButtonProps:{type:null,default:null},decrementButtonProps:{type:null,default:null},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null}},style:N_,provide:function(){return{$parentInstance:this}}};function I0(t){"@babel/helpers - typeof";return I0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},I0(t)}function DZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function MZ(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?DZ(Object(n),!0).forEach(function(r){J_(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):DZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function J_(t,e,n){return e=T_(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function T_(t){var e=X_(t,"string");return I0(e)=="symbol"?e:String(e)}function X_(t,e){if(I0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(I0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function k_(t){return M_(t)||D_(t)||Y_(t)||w_()}function w_(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Y_(t,e){if(t){if(typeof t=="string")return Q2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Q2(t,e)}}function D_(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function M_(t){if(Array.isArray(t))return Q2(t)}function Q2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var IS={name:"InputNumber",extends:G_,inheritAttrs:!1,emits:["update:modelValue","input","focus","blur"],numberFormat:null,_numeral:null,_decimal:null,_group:null,_minusSign:null,_currency:null,_suffix:null,_prefix:null,_index:null,groupChar:"",isSpecialChar:null,prefixChar:null,suffixChar:null,timer:null,data:function(){return{d_modelValue:this.modelValue,focused:!1}},watch:{modelValue:function(e){this.d_modelValue=e},locale:function(e,n){this.updateConstructParser(e,n)},localeMatcher:function(e,n){this.updateConstructParser(e,n)},mode:function(e,n){this.updateConstructParser(e,n)},currency:function(e,n){this.updateConstructParser(e,n)},currencyDisplay:function(e,n){this.updateConstructParser(e,n)},useGrouping:function(e,n){this.updateConstructParser(e,n)},minFractionDigits:function(e,n){this.updateConstructParser(e,n)},maxFractionDigits:function(e,n){this.updateConstructParser(e,n)},suffix:function(e,n){this.updateConstructParser(e,n)},prefix:function(e,n){this.updateConstructParser(e,n)}},created:function(){this.constructParser()},methods:{getOptions:function(){var e,n;return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:(e=this.minFractionDigits)!==null&&e!==void 0?e:void 0,maximumFractionDigits:(n=this.maxFractionDigits)!==null&&n!==void 0?n:void 0,roundingMode:this.roundingMode}},constructParser:function(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());var e=k_(new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)).reverse(),n=new Map(e.map(function(r,i){return[r,i]}));this._numeral=new RegExp("[".concat(e.join(""),"]"),"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=function(r){return n.get(r)}},updateConstructParser:function(e,n){e!==n&&this.constructParser()},escapeRegExp:function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},getDecimalExpression:function(){var e=new Intl.NumberFormat(this.locale,MZ(MZ({},this.getOptions()),{},{useGrouping:!1}));return new RegExp("[".concat(e.format(1.1).replace(this._currency,"").trim().replace(this._numeral,""),"]"),"g")},getGroupingExpression:function(){var e=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=e.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp("[".concat(this.groupChar,"]"),"g")},getMinusSignExpression:function(){var e=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp("[".concat(e.format(-1).trim().replace(this._numeral,""),"]"),"g")},getCurrencyExpression:function(){if(this.currency){var e=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0,roundingMode:this.roundingMode});return new RegExp("[".concat(e.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,""),"]"),"g")}return new RegExp("[]","g")},getPrefixExpression:function(){if(this.prefix)this.prefixChar=this.prefix;else{var e=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=e.format(1).split("1")[0]}return new RegExp("".concat(this.escapeRegExp(this.prefixChar||"")),"g")},getSuffixExpression:function(){if(this.suffix)this.suffixChar=this.suffix;else{var e=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0,roundingMode:this.roundingMode});this.suffixChar=e.format(1).split("1")[1]}return new RegExp("".concat(this.escapeRegExp(this.suffixChar||"")),"g")},formatValue:function(e){if(e!=null){if(e==="-")return e;if(this.format){var n=new Intl.NumberFormat(this.locale,this.getOptions()),r=n.format(e);return this.prefix&&(r=this.prefix+r),this.suffix&&(r=r+this.suffix),r}return e.toString()}return""},parseValue:function(e){var n=e.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(n){if(n==="-")return n;var r=+n;return isNaN(r)?null:r}return null},repeat:function(e,n,r){var i=this;if(!this.readonly){var a=n||500;this.clearTimer(),this.timer=setTimeout(function(){i.repeat(e,40,r)},a),this.spin(e,r)}},spin:function(e,n){if(this.$refs.input){var r=this.step*n,i=this.parseValue(this.$refs.input.$el.value)||0,a=this.validateValue(i+r);this.updateInput(a,null,"spin"),this.updateModel(e,a),this.handleOnInput(e,i,a)}},onUpButtonMouseDown:function(e){this.disabled||(this.$refs.input.$el.focus(),this.repeat(e,null,1),e.preventDefault())},onUpButtonMouseUp:function(){this.disabled||this.clearTimer()},onUpButtonMouseLeave:function(){this.disabled||this.clearTimer()},onUpButtonKeyUp:function(){this.disabled||this.clearTimer()},onUpButtonKeyDown:function(e){(e.code==="Space"||e.code==="Enter"||e.code==="NumpadEnter")&&this.repeat(e,null,1)},onDownButtonMouseDown:function(e){this.disabled||(this.$refs.input.$el.focus(),this.repeat(e,null,-1),e.preventDefault())},onDownButtonMouseUp:function(){this.disabled||this.clearTimer()},onDownButtonMouseLeave:function(){this.disabled||this.clearTimer()},onDownButtonKeyUp:function(){this.disabled||this.clearTimer()},onDownButtonKeyDown:function(e){(e.code==="Space"||e.code==="Enter"||e.code==="NumpadEnter")&&this.repeat(e,null,-1)},onUserInput:function(){this.isSpecialChar&&(this.$refs.input.$el.value=this.lastValue),this.isSpecialChar=!1},onInputKeyDown:function(e){if(!this.readonly){if(e.altKey||e.ctrlKey||e.metaKey){this.isSpecialChar=!0,this.lastValue=this.$refs.input.$el.value;return}this.lastValue=e.target.value;var n=e.target.selectionStart,r=e.target.selectionEnd,i=e.target.value,a=null;switch(e.code){case"ArrowUp":this.spin(e,1),e.preventDefault();break;case"ArrowDown":this.spin(e,-1),e.preventDefault();break;case"ArrowLeft":this.isNumeralChar(i.charAt(n-1))||e.preventDefault();break;case"ArrowRight":this.isNumeralChar(i.charAt(n))||e.preventDefault();break;case"Tab":case"Enter":case"NumpadEnter":a=this.validateValue(this.parseValue(i)),this.$refs.input.$el.value=this.formatValue(a),this.$refs.input.$el.setAttribute("aria-valuenow",a),this.updateModel(e,a);break;case"Backspace":{if(e.preventDefault(),n===r){var o=i.charAt(n-1),l=this.getDecimalCharIndexes(i),s=l.decimalCharIndex,d=l.decimalCharIndexWithoutPrefix;if(this.isNumeralChar(o)){var c=this.getDecimalLength(i);if(this._group.test(o))this._group.lastIndex=0,a=i.slice(0,n-2)+i.slice(n-1);else if(this._decimal.test(o))this._decimal.lastIndex=0,c?this.$refs.input.$el.setSelectionRange(n-1,n-1):a=i.slice(0,n-1)+i.slice(n);else if(s>0&&n>s){var u=this.isDecimalMode()&&(this.minFractionDigits||0)<c?"":"0";a=i.slice(0,n-1)+u+i.slice(n)}else d===1?(a=i.slice(0,n-1)+"0"+i.slice(n),a=this.parseValue(a)>0?a:""):a=i.slice(0,n-1)+i.slice(n)}this.updateValue(e,a,null,"delete-single")}else a=this.deleteRange(i,n,r),this.updateValue(e,a,null,"delete-range");break}case"Delete":if(e.preventDefault(),n===r){var h=i.charAt(n),f=this.getDecimalCharIndexes(i),g=f.decimalCharIndex,A=f.decimalCharIndexWithoutPrefix;if(this.isNumeralChar(h)){var b=this.getDecimalLength(i);if(this._group.test(h))this._group.lastIndex=0,a=i.slice(0,n)+i.slice(n+2);else if(this._decimal.test(h))this._decimal.lastIndex=0,b?this.$refs.input.$el.setSelectionRange(n+1,n+1):a=i.slice(0,n)+i.slice(n+1);else if(g>0&&n>g){var p=this.isDecimalMode()&&(this.minFractionDigits||0)<b?"":"0";a=i.slice(0,n)+p+i.slice(n+1)}else A===1?(a=i.slice(0,n)+"0"+i.slice(n+1),a=this.parseValue(a)>0?a:""):a=i.slice(0,n)+i.slice(n+1)}this.updateValue(e,a,null,"delete-back-single")}else a=this.deleteRange(i,n,r),this.updateValue(e,a,null,"delete-range");break;case"Home":e.preventDefault(),jn.isEmpty(this.min)||this.updateModel(e,this.min);break;case"End":e.preventDefault(),jn.isEmpty(this.max)||this.updateModel(e,this.max);break}}},onInputKeyPress:function(e){if(!this.readonly){var n=e.key,r=this.isDecimalSign(n),i=this.isMinusSign(n);this.locale==="fr-FR"&&(e.code==="Comma"||e.code==="NumpadDecimal")&&!r&&(r=!0,n=decimalSign),e.code!=="Enter"&&e.preventDefault(),(Number(n)>=0&&Number(n)<=9||i||r)&&this.insert(e,n,{isDecimalSign:r,isMinusSign:i})}},onPaste:function(e){if(!(this.readonly||this.disabled)){e.preventDefault();var n=(e.clipboardData||window.clipboardData).getData("Text");if(n){var r=this.parseValue(n);r!=null&&this.insert(e,r.toString())}}},allowMinusSign:function(){return this.min===null||this.min<0},isMinusSign:function(e){return this._minusSign.test(e)||e==="-"?(this._minusSign.lastIndex=0,!0):!1},isDecimalSign:function(e){return this._decimal.test(e)?(this._decimal.lastIndex=0,!0):!1},isDecimalMode:function(){return this.mode==="decimal"},getDecimalCharIndexes:function(e){var n=e.search(this._decimal);this._decimal.lastIndex=0;var r=e.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,""),i=r.search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:n,decimalCharIndexWithoutPrefix:i}},getCharIndexes:function(e){var n=e.search(this._decimal);this._decimal.lastIndex=0;var r=e.search(this._minusSign);this._minusSign.lastIndex=0;var i=e.search(this._suffix);this._suffix.lastIndex=0;var a=e.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:n,minusCharIndex:r,suffixCharIndex:i,currencyCharIndex:a}},insert:function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{isDecimalSign:!1,isMinusSign:!1},i=n.search(this._minusSign);if(this._minusSign.lastIndex=0,!(!this.allowMinusSign()&&i!==-1)){var a=this.$refs.input.$el.selectionStart,o=this.$refs.input.$el.selectionEnd,l=this.$refs.input.$el.value.trim(),s=this.getCharIndexes(l),d=s.decimalCharIndex,c=s.minusCharIndex,u=s.suffixCharIndex,h=s.currencyCharIndex,f;if(r.isMinusSign)a===0&&(f=l,(c===-1||o!==0)&&(f=this.insertText(l,n,0,o)),this.updateValue(e,f,n,"insert"));else if(r.isDecimalSign)d>0&&a===d?this.updateValue(e,l,n,"insert"):d>a&&d<o?(f=this.insertText(l,n,a,o),this.updateValue(e,f,n,"insert")):d===-1&&this.maxFractionDigits&&(f=this.insertText(l,n,a,o),this.updateValue(e,f,n,"insert"));else{var g=this.numberFormat.resolvedOptions().maximumFractionDigits,A=a!==o?"range-insert":"insert";if(d>0&&a>d){if(a+n.length-(d+1)<=g){var b=h>=a?h-1:u>=a?u:l.length;f=l.slice(0,a)+n+l.slice(a+n.length,b)+l.slice(b),this.updateValue(e,f,n,A)}}else f=this.insertText(l,n,a,o),this.updateValue(e,f,n,A)}}},insertText:function(e,n,r,i){var a=n==="."?n:n.split(".");if(a.length===2){var o=e.slice(r,i).search(this._decimal);return this._decimal.lastIndex=0,o>0?e.slice(0,r)+this.formatValue(n)+e.slice(i):this.formatValue(n)||e}else return i-r===e.length?this.formatValue(n):r===0?n+e.slice(i):i===e.length?e.slice(0,r)+n:e.slice(0,r)+n+e.slice(i)},deleteRange:function(e,n,r){var i;return r-n===e.length?i="":n===0?i=e.slice(r):r===e.length?i=e.slice(0,n):i=e.slice(0,n)+e.slice(r),i},initCursor:function(){var e=this.$refs.input.$el.selectionStart,n=this.$refs.input.$el.value,r=n.length,i=null,a=(this.prefixChar||"").length;n=n.replace(this._prefix,""),e=e-a;var o=n.charAt(e);if(this.isNumeralChar(o))return e+a;for(var l=e-1;l>=0;)if(o=n.charAt(l),this.isNumeralChar(o)){i=l+a;break}else l--;if(i!==null)this.$refs.input.$el.setSelectionRange(i+1,i+1);else{for(l=e;l<r;)if(o=n.charAt(l),this.isNumeralChar(o)){i=l+a;break}else l++;i!==null&&this.$refs.input.$el.setSelectionRange(i,i)}return i||0},onInputClick:function(){var e=this.$refs.input.$el.value;!this.readonly&&e!==Wn.getSelection()&&this.initCursor()},isNumeralChar:function(e){return e.length===1&&(this._numeral.test(e)||this._decimal.test(e)||this._group.test(e)||this._minusSign.test(e))?(this.resetRegex(),!0):!1},resetRegex:function(){this._numeral.lastIndex=0,this._decimal.lastIndex=0,this._group.lastIndex=0,this._minusSign.lastIndex=0},updateValue:function(e,n,r,i){var a=this.$refs.input.$el.value,o=null;n!=null&&(o=this.parseValue(n),o=!o&&!this.allowEmpty?0:o,this.updateInput(o,r,i,n),this.handleOnInput(e,a,o))},handleOnInput:function(e,n,r){this.isValueChanged(n,r)&&this.$emit("input",{originalEvent:e,value:r,formattedValue:n})},isValueChanged:function(e,n){if(n===null&&e!==null)return!0;if(n!=null){var r=typeof e=="string"?this.parseValue(e):e;return n!==r}return!1},validateValue:function(e){return e==="-"||e==null?null:this.min!=null&&e<this.min?this.min:this.max!=null&&e>this.max?this.max:e},updateInput:function(e,n,r,i){n=n||"";var a=this.$refs.input.$el.value,o=this.formatValue(e),l=a.length;if(o!==i&&(o=this.concatValues(o,i)),l===0){this.$refs.input.$el.value=o,this.$refs.input.$el.setSelectionRange(0,0);var s=this.initCursor(),d=s+n.length;this.$refs.input.$el.setSelectionRange(d,d)}else{var c=this.$refs.input.$el.selectionStart,u=this.$refs.input.$el.selectionEnd;this.$refs.input.$el.value=o;var h=o.length;if(r==="range-insert"){var f=this.parseValue((a||"").slice(0,c)),g=f!==null?f.toString():"",A=g.split("").join("(".concat(this.groupChar,")?")),b=new RegExp(A,"g");b.test(o);var p=n.split("").join("(".concat(this.groupChar,")?")),y=new RegExp(p,"g");y.test(o.slice(b.lastIndex)),u=b.lastIndex+y.lastIndex,this.$refs.input.$el.setSelectionRange(u,u)}else if(h===l)r==="insert"||r==="delete-back-single"?this.$refs.input.$el.setSelectionRange(u+1,u+1):r==="delete-single"?this.$refs.input.$el.setSelectionRange(u-1,u-1):(r==="delete-range"||r==="spin")&&this.$refs.input.$el.setSelectionRange(u,u);else if(r==="delete-back-single"){var m=a.charAt(u-1),F=a.charAt(u),R=l-h,C=this._group.test(F);C&&R===1?u+=1:!C&&this.isNumeralChar(m)&&(u+=-1*R+1),this._group.lastIndex=0,this.$refs.input.$el.setSelectionRange(u,u)}else if(a==="-"&&r==="insert"){this.$refs.input.$el.setSelectionRange(0,0);var B=this.initCursor(),N=B+n.length+1;this.$refs.input.$el.setSelectionRange(N,N)}else u=u+(h-l),this.$refs.input.$el.setSelectionRange(u,u)}this.$refs.input.$el.setAttribute("aria-valuenow",e)},concatValues:function(e,n){if(e&&n){var r=n.search(this._decimal);return this._decimal.lastIndex=0,this.suffixChar?r!==-1?e.replace(this.suffixChar,"").split(this._decimal)[0]+n.replace(this.suffixChar,"").slice(r)+this.suffixChar:e:r!==-1?e.split(this._decimal)[0]+n.slice(r):e}return e},getDecimalLength:function(e){if(e){var n=e.split(this._decimal);if(n.length===2)return n[1].replace(this._suffix,"").trim().replace(/\s/g,"").replace(this._currency,"").length}return 0},updateModel:function(e,n){this.d_modelValue=n,this.$emit("update:modelValue",n)},onInputFocus:function(e){this.focused=!0,!this.disabled&&!this.readonly&&this.$refs.input.$el.value!==Wn.getSelection()&&this.highlightOnFocus&&e.target.select(),this.$emit("focus",e)},onInputBlur:function(e){this.focused=!1;var n=e.target,r=this.validateValue(this.parseValue(n.value));this.$emit("blur",{originalEvent:e,value:n.value}),n.value=this.formatValue(r),n.setAttribute("aria-valuenow",r),this.updateModel(e,r),!this.disabled&&!this.readonly&&this.highlightOnFocus&&Wn.clearSelection()},clearTimer:function(){this.timer&&clearInterval(this.timer)},maxBoundry:function(){return this.d_modelValue>=this.max},minBoundry:function(){return this.d_modelValue<=this.min}},computed:{filled:function(){return this.modelValue!=null&&this.modelValue.toString().length>0},upButtonListeners:function(){var e=this;return{mousedown:function(r){return e.onUpButtonMouseDown(r)},mouseup:function(r){return e.onUpButtonMouseUp(r)},mouseleave:function(r){return e.onUpButtonMouseLeave(r)},keydown:function(r){return e.onUpButtonKeyDown(r)},keyup:function(r){return e.onUpButtonKeyUp(r)}}},downButtonListeners:function(){var e=this;return{mousedown:function(r){return e.onDownButtonMouseDown(r)},mouseup:function(r){return e.onDownButtonMouseUp(r)},mouseleave:function(r){return e.onDownButtonMouseLeave(r)},keydown:function(r){return e.onDownButtonKeyDown(r)},keyup:function(r){return e.onDownButtonKeyUp(r)}}},formattedValue:function(){var e=!this.modelValue&&!this.allowEmpty?0:this.modelValue;return this.formatValue(e)},getFormatter:function(){return this.numberFormat}},components:{INInputText:ZS,INButton:wQ,AngleUpIcon:BS,AngleDownIcon:RS}};function L_(t,e,n,r,i,a){var o=Li("INInputText"),l=Li("INButton");return oe(),Ce("span",Jt({class:t.cx("root")},t.ptmi("root")),[Fn(o,Jt({ref:"input",id:t.inputId,role:"spinbutton",class:[t.cx("input"),t.inputClass],style:t.inputStyle,value:a.formattedValue,"aria-valuemin":t.min,"aria-valuemax":t.max,"aria-valuenow":t.modelValue,inputmode:t.mode==="decimal"&&!t.minFractionDigits?"numeric":"decimal",disabled:t.disabled,readonly:t.readonly,placeholder:t.placeholder,"aria-labelledby":t.ariaLabelledby,"aria-label":t.ariaLabel,"aria-invalid":t.invalid||void 0,onInput:a.onUserInput,onKeydown:a.onInputKeyDown,onKeypress:a.onInputKeyPress,onPaste:a.onPaste,onClick:a.onInputClick,onFocus:a.onInputFocus,onBlur:a.onInputBlur},t.inputProps,{pt:t.ptm("input"),unstyled:t.unstyled}),null,16,["id","class","style","value","aria-valuemin","aria-valuemax","aria-valuenow","inputmode","disabled","readonly","placeholder","aria-labelledby","aria-label","aria-invalid","onInput","onKeydown","onKeypress","onPaste","onClick","onFocus","onBlur","pt","unstyled"]),t.showButtons&&t.buttonLayout==="stacked"?(oe(),Ce("span",Jt({key:0,class:t.cx("buttonGroup")},t.ptm("buttonGroup")),[Fn(l,Jt({class:[t.cx("incrementButton"),t.incrementButtonClass]},Zm(a.upButtonListeners),{disabled:t.disabled,tabindex:-1,"aria-hidden":"true"},t.incrementButtonProps,{pt:t.ptm("incrementButton"),unstyled:t.unstyled}),{icon:Yr(function(){return[Vi(t.$slots,"incrementbuttonicon",{},function(){return[(oe(),Vn(ea(t.incrementButtonIcon?"span":"AngleUpIcon"),Jt({class:t.incrementButtonIcon},t.ptm("incrementButton").icon,{"data-pc-section":"incrementbuttonicon"}),null,16,["class"]))]})]}),_:3},16,["class","disabled","pt","unstyled"]),Fn(l,Jt({class:[t.cx("decrementButton"),t.decrementButtonClass]},Zm(a.downButtonListeners),{disabled:t.disabled,tabindex:-1,"aria-hidden":"true"},t.decrementButtonProps,{pt:t.ptm("decrementButton"),unstyled:t.unstyled}),{icon:Yr(function(){return[Vi(t.$slots,"decrementbuttonicon",{},function(){return[(oe(),Vn(ea(t.decrementButtonIcon?"span":"AngleDownIcon"),Jt({class:t.decrementButtonIcon},t.ptm("decrementButton").icon,{"data-pc-section":"decrementbuttonicon"}),null,16,["class"]))]})]}),_:3},16,["class","disabled","pt","unstyled"])],16)):Pt("",!0),t.showButtons&&t.buttonLayout!=="stacked"?(oe(),Vn(l,Jt({key:1,class:[t.cx("incrementButton"),t.incrementButtonClass]},Zm(a.upButtonListeners),{disabled:t.disabled,tabindex:-1,"aria-hidden":"true"},t.incrementButtonProps,{pt:t.ptm("incrementButton"),unstyled:t.unstyled}),{icon:Yr(function(){return[Vi(t.$slots,"incrementbuttonicon",{},function(){return[(oe(),Vn(ea(t.incrementButtonIcon?"span":"AngleUpIcon"),Jt({class:t.incrementButtonIcon},t.ptm("incrementButton").icon,{"data-pc-section":"incrementbuttonicon"}),null,16,["class"]))]})]}),_:3},16,["class","disabled","pt","unstyled"])):Pt("",!0),t.showButtons&&t.buttonLayout!=="stacked"?(oe(),Vn(l,Jt({key:2,class:[t.cx("decrementButton"),t.decrementButtonClass]},Zm(a.downButtonListeners),{disabled:t.disabled,tabindex:-1,"aria-hidden":"true"},t.decrementButtonProps,{pt:t.ptm("decrementButton"),unstyled:t.unstyled}),{icon:Yr(function(){return[Vi(t.$slots,"decrementbuttonicon",{},function(){return[(oe(),Vn(ea(t.decrementButtonIcon?"span":"AngleDownIcon"),Jt({class:t.decrementButtonIcon},t.ptm("decrementButton").icon,{"data-pc-section":"decrementbuttonicon"}),null,16,["class"]))]})]}),_:3},16,["class","disabled","pt","unstyled"])):Pt("",!0)],16)}IS.render=L_;var CS={name:"AngleDoubleRightIcon",extends:ls},H_=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z",fill:"currentColor"},null,-1),x_=[H_];function O_(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),x_,16)}CS.render=O_;var vS={name:"AngleRightIcon",extends:ls},K_=Q("path",{d:"M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z",fill:"currentColor"},null,-1),P_=[K_];function z_(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),P_,16)}vS.render=z_;var VS={name:"AngleLeftIcon",extends:ls},j_=Q("path",{d:"M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z",fill:"currentColor"},null,-1),__=[j_];function $_(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),__,16)}VS.render=$_;var q_={name:"BasePaginator",extends:nl,props:{totalRecords:{type:Number,default:0},rows:{type:Number,default:0},first:{type:Number,default:0},pageLinkSize:{type:Number,default:5},rowsPerPageOptions:{type:Array,default:null},template:{type:[Object,String],default:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown"},currentPageReportTemplate:{type:null,default:"({currentPage} of {totalPages})"},alwaysShow:{type:Boolean,default:!0}},style:T8,provide:function(){return{$parentInstance:this}}},ES={name:"CurrentPageReport",hostName:"Paginator",extends:nl,props:{pageCount:{type:Number,default:0},currentPage:{type:Number,default:0},page:{type:Number,default:0},first:{type:Number,default:0},rows:{type:Number,default:0},totalRecords:{type:Number,default:0},template:{type:String,default:"({currentPage} of {totalPages})"}},computed:{text:function(){var e=this.template.replace("{currentPage}",this.currentPage).replace("{totalPages}",this.pageCount).replace("{first}",this.pageCount>0?this.first+1:0).replace("{last}",Math.min(this.first+this.rows,this.totalRecords)).replace("{rows}",this.rows).replace("{totalRecords}",this.totalRecords);return e}}};function e$(t,e,n,r,i,a){return oe(),Ce("span",Jt({class:t.cx("current")},t.ptm("current")),ce(a.text),17)}ES.render=e$;var SS={name:"FirstPageLink",hostName:"Paginator",extends:nl,props:{template:{type:Function,default:null}},methods:{getPTOptions:function(e){return this.ptm(e,{context:{disabled:this.$attrs.disabled}})}},components:{AngleDoubleLeftIcon:yS},directives:{ripple:wf}};function t$(t,e,n,r,i,a){var o=mf("ripple");return br((oe(),Ce("button",Jt({class:t.cx("firstPageButton"),type:"button"},a.getPTOptions("firstPageButton"),{"data-pc-group-section":"pagebutton"}),[(oe(),Vn(ea(n.template||"AngleDoubleLeftIcon"),Jt({class:t.cx("firstPageIcon")},a.getPTOptions("firstPageIcon")),null,16,["class"]))],16)),[[o]])}SS.render=t$;var WS={name:"JumpToPageDropdown",hostName:"Paginator",extends:nl,emits:["page-change"],props:{page:Number,pageCount:Number,disabled:Boolean,templates:null},methods:{onChange:function(e){this.$emit("page-change",e)}},computed:{pageOptions:function(){for(var e=[],n=0;n<this.pageCount;n++)e.push({label:String(n+1),value:n});return e}},components:{JTPDropdown:Yy}};function n$(t,e,n,r,i,a){var o=Li("JTPDropdown");return oe(),Vn(o,{modelValue:n.page,options:a.pageOptions,optionLabel:"label",optionValue:"value","onUpdate:modelValue":e[0]||(e[0]=function(l){return a.onChange(l)}),class:Hr(t.cx("jumpToPageDropdown")),disabled:n.disabled,unstyled:t.unstyled,pt:t.ptm("jumpToPageDropdown"),"data-pc-group-section":"pagedropdown"},gp({_:2},[n.templates.jumptopagedropdownicon?{name:"dropdownicon",fn:Yr(function(l){return[(oe(),Vn(ea(n.templates.jumptopagedropdownicon),{class:Hr(l.class)},null,8,["class"]))]}),key:"0"}:void 0]),1032,["modelValue","options","class","disabled","unstyled","pt"])}WS.render=n$;var NS={name:"JumpToPageInput",hostName:"Paginator",extends:nl,inheritAttrs:!1,emits:["page-change"],props:{page:Number,pageCount:Number,disabled:Boolean},data:function(){return{d_page:this.page}},watch:{page:function(e){this.d_page=e}},methods:{onChange:function(e){e!==this.page&&(this.d_page=e,this.$emit("page-change",e-1))}},computed:{inputArialabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.jumpToPageInputLabel:void 0}},components:{JTPInput:IS}};function r$(t,e,n,r,i,a){var o=Li("JTPInput");return oe(),Vn(o,{ref:"jtpInput",modelValue:i.d_page,class:Hr(t.cx("jumpToPageInput")),"aria-label":a.inputArialabel,disabled:n.disabled,"onUpdate:modelValue":a.onChange,unstyled:t.unstyled,pt:t.ptm("jumpToPageInput")},null,8,["modelValue","class","aria-label","disabled","onUpdate:modelValue","unstyled","pt"])}NS.render=r$;var GS={name:"LastPageLink",hostName:"Paginator",extends:nl,props:{template:{type:Function,default:null}},methods:{getPTOptions:function(e){return this.ptm(e,{context:{disabled:this.$attrs.disabled}})}},components:{AngleDoubleRightIcon:CS},directives:{ripple:wf}};function i$(t,e,n,r,i,a){var o=mf("ripple");return br((oe(),Ce("button",Jt({class:t.cx("lastPageButton"),type:"button"},a.getPTOptions("lastPageButton"),{"data-pc-group-section":"pagebutton"}),[(oe(),Vn(ea(n.template||"AngleDoubleRightIcon"),Jt({class:t.cx("lastPageIcon")},a.getPTOptions("lastPageIcon")),null,16,["class"]))],16)),[[o]])}GS.render=i$;var JS={name:"NextPageLink",hostName:"Paginator",extends:nl,props:{template:{type:Function,default:null}},methods:{getPTOptions:function(e){return this.ptm(e,{context:{disabled:this.$attrs.disabled}})}},components:{AngleRightIcon:vS},directives:{ripple:wf}};function a$(t,e,n,r,i,a){var o=mf("ripple");return br((oe(),Ce("button",Jt({class:t.cx("nextPageButton"),type:"button"},a.getPTOptions("nextPageButton"),{"data-pc-group-section":"pagebutton"}),[(oe(),Vn(ea(n.template||"AngleRightIcon"),Jt({class:t.cx("nextPageIcon")},a.getPTOptions("nextPageIcon")),null,16,["class"]))],16)),[[o]])}JS.render=a$;var TS={name:"PageLinks",hostName:"Paginator",extends:nl,inheritAttrs:!1,emits:["click"],props:{value:Array,page:Number},methods:{getPTOptions:function(e,n){return this.ptm(n,{context:{active:e===this.page}})},onPageLinkClick:function(e,n){this.$emit("click",{originalEvent:e,value:n})},ariaPageLabel:function(e){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.pageLabel.replace(/{page}/g,e):void 0}},directives:{ripple:wf}},o$=["aria-label","aria-current","onClick","data-p-highlight"];function l$(t,e,n,r,i,a){var o=mf("ripple");return oe(),Ce("span",Jt({class:t.cx("pages")},t.ptm("pages")),[(oe(!0),Ce(Er,null,ia(n.value,function(l){return br((oe(),Ce("button",Jt({key:l,class:t.cx("pageButton",{pageLink:l}),type:"button","aria-label":a.ariaPageLabel(l),"aria-current":l-1===n.page?"page":void 0,onClick:function(d){return a.onPageLinkClick(d,l)}},a.getPTOptions(l-1,"pageButton"),{"data-p-highlight":l-1===n.page}),[Ni(ce(l),1)],16,o$)),[[o]])}),128))],16)}TS.render=l$;var XS={name:"PrevPageLink",hostName:"Paginator",extends:nl,props:{template:{type:Function,default:null}},methods:{getPTOptions:function(e){return this.ptm(e,{context:{disabled:this.$attrs.disabled}})}},components:{AngleLeftIcon:VS},directives:{ripple:wf}};function s$(t,e,n,r,i,a){var o=mf("ripple");return br((oe(),Ce("button",Jt({class:t.cx("previousPageButton"),type:"button"},a.getPTOptions("previousPageButton"),{"data-pc-group-section":"pagebutton"}),[(oe(),Vn(ea(n.template||"AngleLeftIcon"),Jt({class:t.cx("previousPageIcon")},a.getPTOptions("previousPageIcon")),null,16,["class"]))],16)),[[o]])}XS.render=s$;var kS={name:"RowsPerPageDropdown",hostName:"Paginator",extends:nl,emits:["rows-change"],props:{options:Array,rows:Number,disabled:Boolean,templates:null},methods:{onChange:function(e){this.$emit("rows-change",e)}},computed:{rowsOptions:function(){var e=[];if(this.options)for(var n=0;n<this.options.length;n++)e.push({label:String(this.options[n]),value:this.options[n]});return e}},components:{RPPDropdown:Yy}};function d$(t,e,n,r,i,a){var o=Li("RPPDropdown");return oe(),Vn(o,{modelValue:n.rows,options:a.rowsOptions,optionLabel:"label",optionValue:"value","onUpdate:modelValue":e[0]||(e[0]=function(l){return a.onChange(l)}),class:Hr(t.cx("rowPerPageDropdown")),disabled:n.disabled,unstyled:t.unstyled,pt:t.ptm("rowPerPageDropdown"),"data-pc-group-section":"pagedropdown"},gp({_:2},[n.templates.rowsperpagedropdownicon?{name:"dropdownicon",fn:Yr(function(l){return[(oe(),Vn(ea(n.templates.rowsperpagedropdownicon),{class:Hr(l.class)},null,8,["class"]))]}),key:"0"}:void 0]),1032,["modelValue","options","class","disabled","unstyled","pt"])}kS.render=d$;function c$(t){return h$(t)||f$(t)||wS(t)||u$()}function u$(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function f$(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function h$(t){if(Array.isArray(t))return R2(t)}function U2(t){"@babel/helpers - typeof";return U2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U2(t)}function LZ(t,e){return p$(t)||A$(t,e)||wS(t,e)||g$()}function g$(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wS(t,e){if(t){if(typeof t=="string")return R2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R2(t,e)}}function R2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function A$(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,a,o,l=[],s=!0,d=!1;try{if(a=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);s=!0);}catch(c){d=!0,i=c}finally{try{if(!s&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(d)throw i}}return l}}function p$(t){if(Array.isArray(t))return t}var YQ={name:"Paginator",extends:q_,inheritAttrs:!1,emits:["update:first","update:rows","page"],data:function(){return{d_first:this.first,d_rows:this.rows}},watch:{first:function(e){this.d_first=e},rows:function(e){this.d_rows=e},totalRecords:function(e){this.page>0&&e&&this.d_first>=e&&this.changePage(this.pageCount-1)}},mounted:function(){this.setPaginatorAttribute(),this.createStyle()},methods:{changePage:function(e){var n=this.pageCount;if(e>=0&&e<n){this.d_first=this.d_rows*e;var r={page:e,first:this.d_first,rows:this.d_rows,pageCount:n};this.$emit("update:first",this.d_first),this.$emit("update:rows",this.d_rows),this.$emit("page",r)}},changePageToFirst:function(e){this.isFirstPage||this.changePage(0),e.preventDefault()},changePageToPrev:function(e){this.changePage(this.page-1),e.preventDefault()},changePageLink:function(e){this.changePage(e.value-1),e.originalEvent.preventDefault()},changePageToNext:function(e){this.changePage(this.page+1),e.preventDefault()},changePageToLast:function(e){this.isLastPage||this.changePage(this.pageCount-1),e.preventDefault()},onRowChange:function(e){this.d_rows=e,this.changePage(this.page)},createStyle:function(){var e=this;if(this.hasBreakpoints()&&!this.isUnstyled){var n;this.styleElement=document.createElement("style"),this.styleElement.type="text/css",Wn.setAttribute(this.styleElement,"nonce",(n=this.$primevue)===null||n===void 0||(n=n.config)===null||n===void 0||(n=n.csp)===null||n===void 0?void 0:n.nonce),document.head.appendChild(this.styleElement);var r="",i=Object.keys(this.template),a={};i.sort(function(g,A){return parseInt(g)-parseInt(A)}).forEach(function(g){a[g]=e.template[g]});for(var o=0,l=Object.entries(Object.entries(a));o<l.length;o++){var s=LZ(l[o],2),d=s[0],c=LZ(s[1],1),u=c[0],h=void 0,f=void 0;u!=="default"&&typeof Object.keys(a)[d-1]=="string"?f=Number(Object.keys(a)[d-1].slice(0,-2))+1+"px":f=Object.keys(a)[d-1],h=Object.entries(a)[d-1]?"and (min-width:".concat(f,")"):"",u==="default"?r+=` @media screen `.concat(h,` { .paginator[`).concat(this.attributeSelector,`], display: flex; } } `):r+=` .paginator[`.concat(this.attributeSelector,"], .p-paginator-").concat(u,` { display: none; } @media screen `).concat(h," and (max-width: ").concat(u,`) { .paginator[`).concat(this.attributeSelector,"], .p-paginator-").concat(u,` { display: flex; } .paginator[`).concat(this.attributeSelector,`], .p-paginator-default{ display: none; } } `)}this.styleElement.innerHTML=r}},hasBreakpoints:function(){return U2(this.template)==="object"},setPaginatorAttribute:function(){var e=this;this.$refs.paginator&&this.$refs.paginator.length>=0&&c$(this.$refs.paginator).forEach(function(n){n.setAttribute(e.attributeSelector,"")})},getAriaLabel:function(e){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria[e]:void 0}},computed:{templateItems:function(){var e={};if(this.hasBreakpoints()){e=this.template,e.default||(e.default="FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown");for(var n in e)e[n]=this.template[n].split(" ").map(function(r){return r.trim()});return e}return e.default=this.template.split(" ").map(function(r){return r.trim()}),e},page:function(){return Math.floor(this.d_first/this.d_rows)},pageCount:function(){return Math.ceil(this.totalRecords/this.d_rows)},isFirstPage:function(){return this.page===0},isLastPage:function(){return this.page===this.pageCount-1},calculatePageLinkBoundaries:function(){var e=this.pageCount,n=Math.min(this.pageLinkSize,e),r=Math.max(0,Math.ceil(this.page-n/2)),i=Math.min(e-1,r+n-1),a=this.pageLinkSize-(i-r+1);return r=Math.max(0,r-a),[r,i]},pageLinks:function(){for(var e=[],n=this.calculatePageLinkBoundaries,r=n[0],i=n[1],a=r;a<=i;a++)e.push(a+1);return e},currentState:function(){return{page:this.page,first:this.d_first,rows:this.d_rows}},empty:function(){return this.pageCount===0},currentPage:function(){return this.pageCount>0?this.page+1:0},attributeSelector:function(){return Nu()}},components:{CurrentPageReport:ES,FirstPageLink:SS,LastPageLink:GS,NextPageLink:JS,PageLinks:TS,PrevPageLink:XS,RowsPerPageDropdown:kS,JumpToPageDropdown:WS,JumpToPageInput:NS}};function m$(t,e,n,r,i,a){var o=Li("FirstPageLink"),l=Li("PrevPageLink"),s=Li("NextPageLink"),d=Li("LastPageLink"),c=Li("PageLinks"),u=Li("CurrentPageReport"),h=Li("RowsPerPageDropdown"),f=Li("JumpToPageDropdown"),g=Li("JumpToPageInput");return t.alwaysShow||a.pageLinks&&a.pageLinks.length>1?(oe(),Ce("nav",oA(Jt({key:0},t.ptmi("paginatorWrapper"))),[(oe(!0),Ce(Er,null,ia(a.templateItems,function(A,b){return oe(),Ce("div",Jt({key:b,ref_for:!0,ref:"paginator",class:t.cx("paginator",{key:b})},t.ptm("root")),[t.$slots.start?(oe(),Ce("div",Jt({key:0,class:t.cx("start")},t.ptm("start")),[Vi(t.$slots,"start",{state:a.currentState})],16)):Pt("",!0),(oe(!0),Ce(Er,null,ia(A,function(p){return oe(),Ce(Er,{key:p},[p==="FirstPageLink"?(oe(),Vn(o,{key:0,"aria-label":a.getAriaLabel("firstPageLabel"),template:t.$slots.firstpagelinkicon,onClick:e[0]||(e[0]=function(y){return a.changePageToFirst(y)}),disabled:a.isFirstPage||a.empty,unstyled:t.unstyled,pt:t.pt},null,8,["aria-label","template","disabled","unstyled","pt"])):p==="PrevPageLink"?(oe(),Vn(l,{key:1,"aria-label":a.getAriaLabel("prevPageLabel"),template:t.$slots.prevpagelinkicon,onClick:e[1]||(e[1]=function(y){return a.changePageToPrev(y)}),disabled:a.isFirstPage||a.empty,unstyled:t.unstyled,pt:t.pt},null,8,["aria-label","template","disabled","unstyled","pt"])):p==="NextPageLink"?(oe(),Vn(s,{key:2,"aria-label":a.getAriaLabel("nextPageLabel"),template:t.$slots.nextpagelinkicon,onClick:e[2]||(e[2]=function(y){return a.changePageToNext(y)}),disabled:a.isLastPage||a.empty,unstyled:t.unstyled,pt:t.pt},null,8,["aria-label","template","disabled","unstyled","pt"])):p==="LastPageLink"?(oe(),Vn(d,{key:3,"aria-label":a.getAriaLabel("lastPageLabel"),template:t.$slots.lastpagelinkicon,onClick:e[3]||(e[3]=function(y){return a.changePageToLast(y)}),disabled:a.isLastPage||a.empty,unstyled:t.unstyled,pt:t.pt},null,8,["aria-label","template","disabled","unstyled","pt"])):p==="PageLinks"?(oe(),Vn(c,{key:4,"aria-label":a.getAriaLabel("pageLabel"),value:a.pageLinks,page:a.page,onClick:e[4]||(e[4]=function(y){return a.changePageLink(y)}),pt:t.pt},null,8,["aria-label","value","page","pt"])):p==="CurrentPageReport"?(oe(),Vn(u,{key:5,"aria-live":"polite",template:t.currentPageReportTemplate,currentPage:a.currentPage,page:a.page,pageCount:a.pageCount,first:i.d_first,rows:i.d_rows,totalRecords:t.totalRecords,unstyled:t.unstyled,pt:t.pt},null,8,["template","currentPage","page","pageCount","first","rows","totalRecords","unstyled","pt"])):p==="RowsPerPageDropdown"&&t.rowsPerPageOptions?(oe(),Vn(h,{key:6,"aria-label":a.getAriaLabel("rowsPerPageLabel"),rows:i.d_rows,options:t.rowsPerPageOptions,onRowsChange:e[5]||(e[5]=function(y){return a.onRowChange(y)}),disabled:a.empty,templates:t.$slots,unstyled:t.unstyled,pt:t.pt},null,8,["aria-label","rows","options","disabled","templates","unstyled","pt"])):p==="JumpToPageDropdown"?(oe(),Vn(f,{key:7,"aria-label":a.getAriaLabel("jumpToPageDropdownLabel"),page:a.page,pageCount:a.pageCount,onPageChange:e[6]||(e[6]=function(y){return a.changePage(y)}),disabled:a.empty,templates:t.$slots,unstyled:t.unstyled,pt:t.pt},null,8,["aria-label","page","pageCount","disabled","templates","unstyled","pt"])):p==="JumpToPageInput"?(oe(),Vn(g,{key:8,page:a.currentPage,onPageChange:e[7]||(e[7]=function(y){return a.changePage(y)}),disabled:a.empty,unstyled:t.unstyled,pt:t.pt},null,8,["page","disabled","unstyled","pt"])):Pt("",!0)],64)}),128)),t.$slots.end?(oe(),Ce("div",Jt({key:1,class:t.cx("end")},t.ptm("end")),[Vi(t.$slots,"end",{state:a.currentState})],16)):Pt("",!0)],16)}),128))],16)):Pt("",!0)}YQ.render=m$;const b$={key:0,class:"pagination"},y$={class:"card"},yg={__name:"Pagination",props:{data:{type:Object,default:()=>null}},emits:["handlePagination"],setup(t,{emit:e}){const n=e,r=t,i=a=>{n("handlePagination",a.page+1),window.scrollTo({top:0,behavior:"smooth"})};return(a,o)=>{var l;return r.data&&((l=r.data)==null?void 0:l.total_pages)!==1?(oe(),Ce("div",b$,[Q("div",y$,[Fn(ct(YQ),{rows:Number(r.data.per_page),totalRecords:r.data.total_items,page:Number(r.data.current_page),onPage:i},null,8,["rows","totalRecords","page"])])])):Pt("",!0)}}};function Fg(){const{getMethod:t,loading:e,getResult:n}=va();return{handlePagination:(i,a)=>{t(`${i}${a||1}`,!0)},loading:e,getResult:n}}const F$={class:"empty"},Fh={__name:"Empty",setup(t){const e=po(),n=hn(r(e.lang));yi(()=>e.lang,i=>{n.value=r(i)});function r(i){return i==="ar"?"لايوجد محتوي حتي الأن":i==="en"?"No Content Found Yet":"ابھی تک کوئی مواد نہیں ہے۔"}return(i,a)=>(oe(),Ce("div",F$,[a[0]||(a[0]=Q("i",{class:"pi pi-box"},null,-1)),Q("h3",null,ce(n.value),1)]))}},Q$={class:"finished_orders_details"},U$={__name:"CompletedOrdersStatistics",setup(t){const{getMethod:e,getResult:n}=va();return Ka(()=>{e("provider/orders/completed-orders-statistics",!0)}),(r,i)=>{var a,o,l,s;return oe(),Ce("div",null,[Q("div",Q$,[Q("h4",null,ce(r.$t("orders.total_orders"))+" : "+ce((o=(a=ct(n))==null?void 0:a.data)==null?void 0:o.completed_orders_today_count),1),Q("h4",null,ce(r.$t("orders.total_sold"))+" : "+ce((s=(l=ct(n))==null?void 0:l.data)==null?void 0:s.sum_final_total_today),1)])])}}},R$=Pi(U$,[["__scopeId","data-v-cd3afc2b"]]),B$={class:"upper_text"},Z$={class:"page"},I$={class:"content"},C$={key:0,class:"orders"},v$={key:0,class:"images"},V$={key:0,class:"image"},E$=["src"],S$={class:"head"},W$={class:"text"},N$={key:1,class:"timer"},G$={key:2,class:"order_text"},J$={key:0,class:"images"},T$={key:0,class:"image"},X$=["src"],k$={class:"head"},w$={class:"text"},Y$={class:"order_text"},D$={__name:"Orders",setup(t){const{t:e}=QA(),n=po(),{putMethod:r,putResult:i,handleToast:a,toast:o,loading:l}=va(),{handlePagination:s,getResult:d}=Fg(),c=hn("new"),u=yA({}),h=m=>{c.value=m,s(`provider/orders/${m}?page=`,1)},f=hn(1),g=m=>{f.value=m,s(`provider/orders/${c.value}?page=`,m)};yi(()=>n.lang,m=>{m&&s("provider/orders/new?page=",f.value)});const A=()=>{r("provider/profile/update-availability?_method=put","",!0,"")};yi(()=>i==null?void 0:i.value,m=>{var F;m&&n.handleControlRecieveNotification((F=m==null?void 0:m.data)==null?void 0:F.is_available_to_recieve_orders)});const b=()=>{var m,F;(F=(m=d.value)==null?void 0:m.data)!=null&&F.orders&&d.value.data.orders.forEach(R=>{if(!u[R.id]){const C=new Date(R.expired_at).getTime(),B=y(),N=Math.floor((C-B)/1e3);N>0&&(u[R.id]={timeRemaining:N,intervalId:setInterval(()=>{u[R.id].timeRemaining>0?(u[R.id].timeRemaining-=1,p(u[R.id].timeRemaining)):(clearInterval(u[R.id].intervalId),a("error",`Order ${R.order_number} expired!`))},1e3)})}})},p=m=>{const F=Math.floor(m/3600),R=Math.floor(m%3600/60),C=m%60;return F>0?`${F}:${R<10?"0":""}${R}:${C<10?"0":""}${C}`:`${R}:${C<10?"0":""}${C}`},y=()=>{const m=new Date().toLocaleString("en-US",{timeZone:"Asia/Riyadh"});return new Date(m).getTime()};return Ka(()=>{s("provider/orders/new?page=",1),b(),n.handlePageName(e("sidebar.home"))}),yi(()=>{var m,F;return(F=(m=d.value)==null?void 0:m.data)==null?void 0:F.orders},b),Ay(()=>{Object.keys(u).forEach(m=>{clearInterval(u[m].intervalId)})}),(m,F)=>{var R,C,B,N,S,X,J,E,v,j;return oe(),Ce("div",null,[Q("div",B$,[Ni(ce(m.$t("orders.recieve_orders"))+" ",1),Fn(B8,{is_available_to_recieve_orders:ct(n).is_available_to_recieve_orders,onUpdateStatus:A},null,8,["is_available_to_recieve_orders"])]),Fn(S8,{orderType:c.value,onHandleFetchOrders:h},null,8,["orderType"]),Q("div",Z$,[Q("div",{class:"head_title",style:ja(c.value==="Finished"?"margin-bottom:25px":"")},[Q("h4",null,ce(c.value==="new"?m.$t("orders.new_orders"):c.value==="current"?m.$t("orders.current_orders"):c.value==="finished"?m.$t("orders.finished_orders"):c.value==="cancelled"?m.$t("orders.cancelled_orders"):""),1),br(Fn(R$,null,null,512),[[Tm,c.value==="finished"]])],4),Q("div",I$,[br(Fn(Fh,null,null,512),[[Tm,!ct(l)&&((C=(R=ct(d))==null?void 0:R.data)==null?void 0:C.orders.length)===0]]),!ct(l)&&((N=(B=ct(d))==null?void 0:B.data)==null?void 0:N.orders.length)!==0?(oe(),Ce("div",C$,[(oe(!0),Ce(Er,null,ia((X=(S=ct(d))==null?void 0:S.data)==null?void 0:X.orders,H=>{var K,Fe;return br((oe(),Vn(ct(Ts),{to:"/order_details/"+H.id,key:H.id,class:"order-tab"},{default:Yr(()=>{var z,q;return[H.orders_items_images.length!==0?(oe(),Ce("div",v$,[(oe(!0),Ce(Er,null,ia(H.orders_items_images,(Ae,Ke)=>(oe(),Ce("div",{key:Ae.id},[Ke<4?(oe(),Ce("div",V$,[Q("img",{src:Ae.image,alt:"image",loading:"lazy"},null,8,E$)])):Pt("",!0)]))),128))])):Pt("",!0),Q("div",S$,[Q("h3",null,ce(m.$t("orders.order_num"))+" "+ce(H.order_number),1),Q("p",W$,ce(H.notes),1)]),c.value==="new"?(oe(),Ce("div",N$,[Q("div",{class:Hr(["time",((z=u[H==null?void 0:H.id])==null?void 0:z.timeRemaining)<=60?"pulse":""])},[Q("h5",null,ce(p((q=u[H==null?void 0:H.id])==null?void 0:q.timeRemaining)),1),Q("p",null,ce(m.$t("orders.order_minutes")),1)],2),Q("h6",null,ce(m.$t("orders.order_details")),1)])):(oe(),Ce("div",G$,[Q("h5",{class:Hr(H.status.slug)},ce(H.status.text),3),Q("p",null,ce(m.$t("orders.order_details")),1)]))]}),_:2},1032,["to"])),[[Tm,((K=u[H==null?void 0:H.id])==null?void 0:K.timeRemaining)&&((Fe=u[H==null?void 0:H.id])==null?void 0:Fe.timeRemaining)>0]])}),128)),c.value!=="new"?(oe(!0),Ce(Er,{key:0},ia((E=(J=ct(d))==null?void 0:J.data)==null?void 0:E.orders,H=>(oe(),Vn(ct(Ts),{to:"/order_details/"+H.id,key:H.id,class:"order-tab"},{default:Yr(()=>[H.orders_items_images.length!==0?(oe(),Ce("div",J$,[(oe(!0),Ce(Er,null,ia(H.orders_items_images,(K,Fe)=>(oe(),Ce("div",{key:K.id},[Fe<4?(oe(),Ce("div",T$,[Q("img",{src:K.image,alt:"image",loading:"lazy"},null,8,X$)])):Pt("",!0)]))),128))])):Pt("",!0),Q("div",k$,[Q("h3",null,ce(m.$t("orders.order_num"))+" "+ce(H.order_number),1),Q("p",w$,ce(H.notes),1)]),Q("div",Y$,[Q("h5",{class:Hr(H.status.slug)},ce(H.status.text),3),Q("p",null,ce(m.$t("orders.order_details")),1)])]),_:2},1032,["to"]))),128)):Pt("",!0)])):Pt("",!0)])]),Fn(yg,{onHandlePagination:g,data:(j=(v=ct(d))==null?void 0:v.data)==null?void 0:j.pagination},null,8,["data"]),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512),ct(l)?(oe(),Vn(Ru,{key:0})):Pt("",!0)])}}},HZ=Pi(D$,[["__scopeId","data-v-aea7cda1"]]);var YS={name:"BanIcon",extends:ls},M$=Q("path",{d:"M7 0C5.61553 0 4.26215 0.410543 3.11101 1.17971C1.95987 1.94888 1.06266 3.04213 0.532846 4.32122C0.00303296 5.6003 -0.13559 7.00776 0.134506 8.36563C0.404603 9.7235 1.07129 10.9708 2.05026 11.9497C3.02922 12.9287 4.2765 13.5954 5.63437 13.8655C6.99224 14.1356 8.3997 13.997 9.67879 13.4672C10.9579 12.9373 12.0511 12.0401 12.8203 10.889C13.5895 9.73785 14 8.38447 14 7C14 5.14348 13.2625 3.36301 11.9497 2.05025C10.637 0.737498 8.85652 0 7 0ZM1.16667 7C1.16549 5.65478 1.63303 4.35118 2.48889 3.31333L10.6867 11.5111C9.83309 12.2112 8.79816 12.6544 7.70243 12.789C6.60669 12.9236 5.49527 12.744 4.49764 12.2713C3.50001 11.7986 2.65724 11.0521 2.06751 10.1188C1.47778 9.18558 1.16537 8.10397 1.16667 7ZM11.5111 10.6867L3.31334 2.48889C4.43144 1.57388 5.84966 1.10701 7.29265 1.1789C8.73565 1.2508 10.1004 1.85633 11.1221 2.87795C12.1437 3.89956 12.7492 5.26435 12.8211 6.70735C12.893 8.15034 12.4261 9.56856 11.5111 10.6867Z",fill:"currentColor"},null,-1),L$=[M$];function H$(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),L$,16)}YS.render=H$;var DS={name:"StarIcon",extends:ls},x$=Q("path",{d:"M10.9741 13.6721C10.8806 13.6719 10.7886 13.6483 10.7066 13.6033L7.00002 11.6545L3.29345 13.6033C3.19926 13.6539 3.09281 13.6771 2.98612 13.6703C2.87943 13.6636 2.77676 13.6271 2.6897 13.5651C2.60277 13.5014 2.53529 13.4147 2.4948 13.3148C2.45431 13.215 2.44241 13.1058 2.46042 12.9995L3.17881 8.87264L0.167699 5.95324C0.0922333 5.8777 0.039368 5.78258 0.0150625 5.67861C-0.00924303 5.57463 -0.00402231 5.46594 0.030136 5.36477C0.0621323 5.26323 0.122141 5.17278 0.203259 5.10383C0.284377 5.03488 0.383311 4.99023 0.488681 4.97501L4.63087 4.37126L6.48797 0.618832C6.54083 0.530159 6.61581 0.456732 6.70556 0.405741C6.79532 0.35475 6.89678 0.327942 7.00002 0.327942C7.10325 0.327942 7.20471 0.35475 7.29447 0.405741C7.38422 0.456732 7.4592 0.530159 7.51206 0.618832L9.36916 4.37126L13.5114 4.97501C13.6167 4.99023 13.7157 5.03488 13.7968 5.10383C13.8779 5.17278 13.9379 5.26323 13.9699 5.36477C14.0041 5.46594 14.0093 5.57463 13.985 5.67861C13.9607 5.78258 13.9078 5.8777 13.8323 5.95324L10.8212 8.87264L11.532 12.9995C11.55 13.1058 11.5381 13.215 11.4976 13.3148C11.4571 13.4147 11.3896 13.5014 11.3027 13.5651C11.2059 13.632 11.0917 13.6692 10.9741 13.6721ZM7.00002 10.4393C7.09251 10.4404 7.18371 10.4613 7.2675 10.5005L10.2098 12.029L9.65193 8.75036C9.6368 8.6584 9.64343 8.56418 9.6713 8.47526C9.69918 8.38633 9.74751 8.30518 9.81242 8.23832L12.1969 5.94559L8.90298 5.45648C8.81188 5.44198 8.72555 5.406 8.65113 5.35152C8.57671 5.29703 8.51633 5.2256 8.475 5.14314L7.00002 2.1626L5.52503 5.15078C5.4837 5.23324 5.42332 5.30467 5.3489 5.35916C5.27448 5.41365 5.18815 5.44963 5.09705 5.46412L1.80318 5.94559L4.18761 8.23832C4.25252 8.30518 4.30085 8.38633 4.32873 8.47526C4.3566 8.56418 4.36323 8.6584 4.3481 8.75036L3.7902 12.0519L6.73253 10.5234C6.81451 10.4762 6.9058 10.4475 7.00002 10.4393Z",fill:"currentColor"},null,-1),O$=[x$];function K$(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),O$,16)}DS.render=K$;var MS={name:"StarFillIcon",extends:ls},P$=Q("path",{d:"M13.9718 5.36453C13.9398 5.26298 13.8798 5.17252 13.7986 5.10356C13.7175 5.0346 13.6186 4.98994 13.5132 4.97472L9.37043 4.37088L7.51307 0.617955C7.46021 0.529271 7.38522 0.455834 7.29545 0.404836C7.20568 0.353838 7.1042 0.327026 7.00096 0.327026C6.89771 0.327026 6.79624 0.353838 6.70647 0.404836C6.6167 0.455834 6.54171 0.529271 6.48885 0.617955L4.63149 4.37088L0.488746 4.97472C0.383363 4.98994 0.284416 5.0346 0.203286 5.10356C0.122157 5.17252 0.0621407 5.26298 0.03014 5.36453C-0.00402286 5.46571 -0.00924428 5.57442 0.0150645 5.67841C0.0393733 5.7824 0.0922457 5.87753 0.167722 5.95308L3.17924 8.87287L2.4684 13.0003C2.45038 13.1066 2.46229 13.2158 2.50278 13.3157C2.54328 13.4156 2.61077 13.5022 2.6977 13.5659C2.78477 13.628 2.88746 13.6644 2.99416 13.6712C3.10087 13.678 3.20733 13.6547 3.30153 13.6042L7.00096 11.6551L10.708 13.6042C10.79 13.6491 10.882 13.6728 10.9755 13.673C11.0958 13.6716 11.2129 13.6343 11.3119 13.5659C11.3988 13.5022 11.4663 13.4156 11.5068 13.3157C11.5473 13.2158 11.5592 13.1066 11.5412 13.0003L10.8227 8.87287L13.8266 5.95308C13.9033 5.87835 13.9577 5.7836 13.9833 5.67957C14.009 5.57554 14.005 5.4664 13.9718 5.36453Z",fill:"currentColor"},null,-1),z$=[P$];function j$(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),z$,16)}MS.render=j$;var _$={root:function(e){var n=e.props;return["p-rating",{"p-readonly":n.readonly,"p-disabled":n.disabled}]},cancelItem:function(e){var n=e.instance;return["p-rating-item p-rating-cancel-item",{"p-focus":n.focusedOptionIndex===0&&n.isFocusVisibleItem}]},cancelIcon:"p-rating-icon p-rating-cancel",item:function(e){var n=e.instance,r=e.props,i=e.value;return["p-rating-item",{"p-rating-item-active":i<=r.modelValue,"p-focus":i===n.focusedOptionIndex&&n.isFocusVisibleItem}]},onIcon:"p-rating-icon",offIcon:"p-rating-icon"},$$=Ld.extend({name:"rating",classes:_$}),q$={name:"BaseRating",extends:nl,props:{modelValue:{type:Number,default:null},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},stars:{type:Number,default:5},cancel:{type:Boolean,default:!0},onIcon:{type:String,default:void 0},offIcon:{type:String,default:void 0},cancelIcon:{type:String,default:void 0}},style:$$,provide:function(){return{$parentInstance:this}}},LS={name:"Rating",extends:q$,inheritAttrs:!1,emits:["update:modelValue","change","focus","blur"],data:function(){return{name:this.$attrs.name,focusedOptionIndex:-1,isFocusVisibleItem:!0}},watch:{"$attrs.name":function(e){this.name=e||Nu()}},mounted:function(){this.name=this.name||Nu()},methods:{getPTOptions:function(e,n){return this.ptm(e,{context:{active:n<=this.modelValue,focused:n===this.focusedOptionIndex}})},onOptionClick:function(e,n){if(!this.readonly&&!this.disabled){this.onOptionSelect(e,n),this.isFocusVisibleItem=!1;var r=Wn.getFirstFocusableElement(e.currentTarget);r&&Wn.focus(r)}},onFocus:function(e,n){this.focusedOptionIndex=n,this.$emit("focus",e)},onBlur:function(e){this.focusedOptionIndex=-1,this.$emit("blur",e)},onChange:function(e,n){this.onOptionSelect(e,n),this.isFocusVisibleItem=!0},onOptionSelect:function(e,n){this.focusedOptionIndex=n,this.updateModel(e,n||null)},updateModel:function(e,n){this.$emit("update:modelValue",n),this.$emit("change",{originalEvent:e,value:n})},cancelAriaLabel:function(){return this.$primevue.config.locale.clear},starAriaLabel:function(e){return e===1?this.$primevue.config.locale.aria.star:this.$primevue.config.locale.aria.stars.replace(/{star}/g,e)}},components:{StarFillIcon:MS,StarIcon:DS,BanIcon:YS}},eq=["data-p-focused"],tq=["name","checked","disabled","readonly","aria-label"],nq=["onClick","data-p-active","data-p-focused"],rq=["value","name","checked","disabled","readonly","aria-label","onFocus","onChange"];function iq(t,e,n,r,i,a){return oe(),Ce("div",Jt({class:t.cx("root")},t.ptmi("root")),[t.cancel?(oe(),Ce("div",Jt({key:0,class:t.cx("cancelItem"),onClick:e[3]||(e[3]=function(o){return a.onOptionClick(o,0)})},a.getPTOptions("cancelItem",0),{"data-p-focused":i.focusedOptionIndex===0}),[Q("span",Jt({class:"p-hidden-accessible"},t.ptm("hiddenCancelInputWrapper"),{"data-p-hidden-accessible":!0}),[Q("input",Jt({type:"radio",value:"0",name:i.name,checked:t.modelValue===0,disabled:t.disabled,readonly:t.readonly,"aria-label":a.cancelAriaLabel(),onFocus:e[0]||(e[0]=function(o){return a.onFocus(o,0)}),onBlur:e[1]||(e[1]=function(){return a.onBlur&&a.onBlur.apply(a,arguments)}),onChange:e[2]||(e[2]=function(o){return a.onChange(o,0)})},t.ptm("hiddenCancelInput")),null,16,tq)],16),Vi(t.$slots,"cancelicon",{class:Hr(t.cx("cancelIcon"))},function(){return[(oe(),Vn(ea(t.cancelIcon?"span":"BanIcon"),Jt({class:[t.cx("cancelIcon"),t.cancelIcon]},t.ptm("cancelIcon")),null,16,["class"]))]})],16,eq)):Pt("",!0),(oe(!0),Ce(Er,null,ia(t.stars,function(o){return oe(),Ce("div",Jt({key:o,class:t.cx("item",{value:o}),onClick:function(s){return a.onOptionClick(s,o)}},a.getPTOptions("item",o),{"data-p-active":o<=t.modelValue,"data-p-focused":o===i.focusedOptionIndex}),[Q("span",Jt({class:"p-hidden-accessible"},t.ptm("hiddenItemInputWrapper"),{"data-p-hidden-accessible":!0}),[Q("input",Jt({type:"radio",value:o,name:i.name,checked:t.modelValue===o,disabled:t.disabled,readonly:t.readonly,"aria-label":a.starAriaLabel(o),onFocus:function(s){return a.onFocus(s,o)},onBlur:e[4]||(e[4]=function(){return a.onBlur&&a.onBlur.apply(a,arguments)}),onChange:function(s){return a.onChange(s,o)}},t.ptm("hiddenItemInput")),null,16,rq)],16),o<=t.modelValue?Vi(t.$slots,"onicon",{key:0,value:o,class:Hr(t.cx("onIcon"))},function(){return[(oe(),Vn(ea(t.onIcon?"span":"StarFillIcon"),Jt({class:[t.cx("onIcon"),t.onIcon]},t.ptm("onIcon")),null,16,["class"]))]}):Vi(t.$slots,"officon",{key:1,value:o,class:Hr(t.cx("offIcon"))},function(){return[(oe(),Vn(ea(t.offIcon?"span":"StarIcon"),Jt({class:[t.cx("offIcon"),t.offIcon]},t.ptm("offIcon")),null,16,["class"]))]})],16,nq)}),128))],16)}LS.render=iq;const aq={class:"popup delegate_rating_popup"},oq={class:"content"},lq={class:"title centered"},sq={__name:"DelegateRatingPopup",emits:["handleShowDelegateRatingPopup"],setup(t,{emit:e}){const n=dc(),{postMethod:r,toast:i}=va(),a=e,o=hn({order_id:Number(n.params.id),delegate_rate:0}),l=()=>{r("provider/rates/rate-order",o.value,!0,"/orders","toast")};return(s,d)=>(oe(),Ce("div",aq,[Q("div",oq,[Q("button",{class:"pi pi-times close_btn",onClick:d[0]||(d[0]=c=>a("handleShowDelegateRatingPopup"))}),Q("h3",lq,ce(s.$t("delegate_rating.title")),1),Fn(ct(LS),{modelValue:o.value.delegate_rate,"onUpdate:modelValue":d[1]||(d[1]=c=>o.value.delegate_rate=c),cancel:!1},{onicon:Yr(()=>d[2]||(d[2]=[Q("i",{class:"pi pi-star-fill"},null,-1)])),officon:Yr(()=>d[3]||(d[3]=[Q("i",{class:"pi pi-star"},null,-1)])),_:1},8,["modelValue"]),Q("button",{class:"main-btn",onClick:l},ce(s.$t("delegate_rating.button")),1)]),Fn(ct(ol),{ref_key:"toast",ref:i,position:"top-right"},null,512)]))}},dq=Pi(sq,[["__scopeId","data-v-0db80007"]]),cq={class:"order_items"},uq={class:"order_item page_content"},fq={class:"content"},hq={class:"image"},gq=["src"],Aq={class:"info"},pq={class:"row"},mq={class:"row"},bq={key:0,class:"order_item page_content"},yq={class:"content"},Fq={class:"image"},Qq=["src"],Uq={class:"info"},Rq={class:"row"},Bq={class:"row"},Zq=["href"],Iq={class:"image"},Cq=["src"],vq={class:"info"},Vq={class:"product_infoText"},Eq={key:0,class:"row"},Sq={key:1,class:"row"},Wq={key:1,class:"order_item order_info page_content"},Nq={class:"content"},Gq={key:0,class:"tab"},Jq={key:1,class:"tab"},Tq={key:2,class:"tab"},Xq={key:3,class:"tab"},kq={key:4,class:"tab"},wq={key:5,class:"tab"},Yq={key:6,class:"tab"},Dq={key:7,class:"tab"},Mq={key:8,class:"tab"},Lq={key:9,class:"tab full_width"},Hq={key:10,class:"tab full_width"},xq={key:2,class:"order_item page_content fatoorah_info"},Oq={class:"content"},Kq={key:0,class:"row"},Pq={key:1,class:"row"},zq={key:2,class:"row"},jq={key:3,class:"row"},_q={class:"submit_buttons edit_buttons"},$q={__name:"OrderDetails",setup(t){const n=dc().params.id,r=hn(!1),i=()=>{r.value=!r.value},{getMethod:a,postMethod:o,getResult:l,loading:s,toast:d}=va(),c=hn(),u=hn(),h=hn(),f=hn();yi(()=>{var b;return(b=l==null?void 0:l.value)==null?void 0:b.data},b=>{var p,y;b&&(c.value=b==null?void 0:b.order_info,u.value=(p=b==null?void 0:b.order_info)==null?void 0:p.status,h.value=(y=b==null?void 0:b.receiving_method)==null?void 0:y.value,f.value=b==null?void 0:b.financial_transactions)});const g=()=>{u.value.slug=="New"?a(`provider/orders/accept/${n}`,!0):u.value.slug=="Accepted"?a(`provider/orders/preparing/${n}`,!0):u.value.slug=="Preparing"?a(`provider/orders/prepared/${n}`,!0):(u.value.slug=="Prepared"||u.value.slug=="On_my_way_to_provider")&&a(`provider/orders/finish/${n}`,!0)},A=()=>{o(`provider/orders/cancel/${n}`," ",!0,"reload_page","toast")};return Ka(()=>{a(`provider/orders/details/${n}`,!0)}),(b,p)=>{var m,F,R,C,B,N,S,X,J,E,v,j,H,K,Fe,z,q,Ae,Ke,pe,We,xe,$e,Rt,Be,qe,at,Bt,jt,Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee,Ge,he,$,ie,Ve,_e,we,nt,Gt,An,Dn,tr,nr,zn,dr,Dr,ui,Pn,hr,xr,Hi,Di,Da,oi,Ra,Va,fi,_a,dn,St,mn,_n,vr,ha,Mi,Fi,In,Fa,Ml,hi,ml,$o,Qa,Gl,Gi,Lt,$t,At,bt,zt,Ot,Ct,Kt,cn,Jn,qt,Mn,mr,Ur,sr,Nn,Gr,$r,kr,Mr,Ba,Io,qo,Si,Go,ca,Za,ta,bo,Eo,jl,So,so,Ll,Ko,Co,ti,yo,ss,Zl,ll,Jl,Hl,el,Ji,Pr,Ys,_l,Qn;const y=Li("RouterLink");return oe(),Ce("div",null,[Q("div",cq,[Q("div",uq,[Q("h4",null,ce(b.$t("order_details.info_title")),1),p[1]||(p[1]=Q("hr",null,null,-1)),Q("div",fq,[Q("div",hq,[Q("img",{src:(R=(F=(m=ct(l))==null?void 0:m.data)==null?void 0:F.user)==null?void 0:R.image,alt:"image",loading:"lazy"},null,8,gq)]),Q("div",Aq,[Q("div",pq,[Q("h3",null,ce((N=(B=(C=ct(l))==null?void 0:C.data)==null?void 0:B.user)==null?void 0:N.name),1),Q("h5",null,ce((J=(X=(S=ct(l))==null?void 0:S.data)==null?void 0:X.order_info)==null?void 0:J.created_at_time),1)]),Q("div",mq,[Q("h3",null,ce(b.$t("order_details.order_num"))+" : "+ce((v=(E=ct(l))==null?void 0:E.data)==null?void 0:v.order_number),1),Q("h5",null,[p[0]||(p[0]=Q("i",{class:"pi pi-star-fill rate"},null,-1)),Ni(" "+ce((K=(H=(j=ct(l))==null?void 0:j.data)==null?void 0:H.user)==null?void 0:K.avg_rate),1)])])])])]),(z=(Fe=ct(l))==null?void 0:Fe.data)!=null&&z.delegate?(oe(),Ce("div",bq,[Q("h4",null,ce(b.$t("order_details.delivery_title")),1),p[3]||(p[3]=Q("hr",null,null,-1)),Q("div",yq,[Q("div",Fq,[Q("img",{src:(Ke=(Ae=(q=ct(l))==null?void 0:q.data)==null?void 0:Ae.delegate)==null?void 0:Ke.image,alt:"image",loading:"lazy"},null,8,Qq)]),Q("div",Uq,[Q("div",Rq,[Q("h3",null,ce((xe=(We=(pe=ct(l))==null?void 0:pe.data)==null?void 0:We.delegate)==null?void 0:xe.name),1)]),Q("div",Bq,[Q("h3",null,ce(b.$t("order_details.car_plat_number"))+" : "+ce((Be=(Rt=($e=ct(l))==null?void 0:$e.data)==null?void 0:Rt.delegate)==null?void 0:Be.car_plat_number),1),Q("a",{href:"tel:"+((Bt=(at=(qe=ct(l))==null?void 0:qe.data)==null?void 0:at.delegate)==null?void 0:Bt.full_phone)},[Q("h5",null,[p[2]||(p[2]=Q("i",{class:"pi pi-mobile"},null,-1)),Ni(" "+ce((Je=(Ne=(jt=ct(l))==null?void 0:jt.data)==null?void 0:Ne.delegate)==null?void 0:Je.full_phone),1)])],8,Zq)])])])])):Pt("",!0),(oe(!0),Ce(Er,null,ia((Ye=(ve=ct(l))==null?void 0:ve.data)==null?void 0:Ye.order_items,Kn=>{var Fr,li,ki,$a,oa;return oe(),Ce("div",{class:"order_item page_content product_info",key:(Fr=Kn==null?void 0:Kn.product)==null?void 0:Fr.id},[Q("div",Iq,[Q("img",{src:(ki=(li=Kn==null?void 0:Kn.product)==null?void 0:li.images[0])==null?void 0:ki.image,alt:"image",loading:"lazy"},null,8,Cq)]),Q("div",vq,[Q("h2",null,ce(($a=Kn==null?void 0:Kn.product)==null?void 0:$a.name),1),Q("p",Vq,ce((oa=Kn==null?void 0:Kn.product)==null?void 0:oa.description),1),Q("ul",null,[Kn!=null&&Kn.total?(oe(),Ce("li",Eq,[Q("h3",null,[Ni(ce(b.$t("order_details.price"))+" : ",1),Q("span",null,ce(Kn==null?void 0:Kn.total)+" ر.س",1)])])):Pt("",!0),Kn!=null&&Kn.quantity?(oe(),Ce("li",Sq,[Q("h3",null,ce(b.$t("order_details.quantity"))+" :",1),Q("span",null,ce(Kn==null?void 0:Kn.quantity),1)])):Pt("",!0)])])])}),128)),c.value?(oe(),Ce("div",Wq,[Q("h4",null,ce(b.$t("order_details.order_title")),1),p[4]||(p[4]=Q("hr",null,null,-1)),Q("div",Nq,[(it=c.value)!=null&&it.car_color?(oe(),Ce("div",Gq,[Q("h5",null,ce(b.$t("order_details.car_color")),1),Q("h6",null,ce((Qt=c.value)==null?void 0:Qt.car_color),1)])):Pt("",!0),(_t=c.value)!=null&&_t.car_model?(oe(),Ce("div",Jq,[Q("h5",null,ce(b.$t("order_details.car_model")),1),Q("h6",null,ce((Dt=c.value)==null?void 0:Dt.car_model),1)])):Pt("",!0),(Ee=c.value)!=null&&Ee.car_plat_number?(oe(),Ce("div",Tq,[Q("h5",null,ce(b.$t("order_details.car_plat_number")),1),Q("h6",null,ce((Ge=c.value)==null?void 0:Ge.car_plat_number),1)])):Pt("",!0),($=(he=c.value)==null?void 0:he.receiving_method)!=null&&$.text?(oe(),Ce("div",Xq,[Q("h5",null,ce(b.$t("order_details.order_delivery")),1),Q("h6",null,ce((Ve=(ie=c.value)==null?void 0:ie.receiving_method)==null?void 0:Ve.text),1)])):Pt("",!0),(_e=c.value)!=null&&_e.order_type?(oe(),Ce("div",kq,[Q("h5",null,ce(b.$t("order_details.order_type")),1),Q("h6",null,ce((nt=(we=c.value)==null?void 0:we.order_type)==null?void 0:nt.text),1)])):Pt("",!0),(An=(Gt=ct(l))==null?void 0:Gt.data)!=null&&An.map_desc?(oe(),Ce("div",wq,[Q("h5",null,ce(b.$t("order_details.order_location")),1),Q("h6",null,ce((tr=(Dn=ct(l))==null?void 0:Dn.data)==null?void 0:tr.map_desc),1)])):Pt("",!0),(nr=u.value)!=null&&nr.text?(oe(),Ce("div",Yq,[Q("h5",null,ce(b.$t("order_details.order_status")),1),Q("h6",null,ce((zn=u.value)==null?void 0:zn.text),1)])):Pt("",!0),(Dr=(dr=c.value)==null?void 0:dr.order_type)!=null&&Dr.slug&&((ui=c.value)!=null&&ui.created_at||(Pn=c.value)!=null&&Pn.schedule_execution_date)?(oe(),Ce("div",Dq,[Q("h5",null,ce(b.$t("order_details.order_date")),1),Q("h6",null,ce(((xr=(hr=c.value)==null?void 0:hr.order_type)==null?void 0:xr.slug)=="immediately"?(Hi=c.value)==null?void 0:Hi.created_at:(Di=c.value)==null?void 0:Di.schedule_execution_date),1)])):Pt("",!0),(oi=(Da=c.value)==null?void 0:Da.order_type)!=null&&oi.slug&&((Ra=c.value)!=null&&Ra.created_at_time||(Va=c.value)!=null&&Va.schedule_execution_time)?(oe(),Ce("div",Mq,[Q("h5",null,ce(b.$t("order_details.order_time")),1),Q("h6",null,ce(((_a=(fi=c.value)==null?void 0:fi.order_type)==null?void 0:_a.slug)=="immediately"?(dn=c.value)==null?void 0:dn.created_at_time:(St=c.value)==null?void 0:St.schedule_execution_time),1)])):Pt("",!0),(mn=c.value)!=null&&mn.receiving_in_store_notes?(oe(),Ce("div",Lq,[Q("h5",null,ce(b.$t("order_details.recieve_details")),1),Q("h6",null,ce((_n=c.value)==null?void 0:_n.receiving_in_store_notes),1)])):Pt("",!0),(vr=c.value)!=null&&vr.notes?(oe(),Ce("div",Hq,[Q("h5",null,ce(b.$t("order_details.notes")),1),Q("h6",null,ce((ha=c.value)==null?void 0:ha.notes),1)])):Pt("",!0)])])):Pt("",!0),(Fi=(Mi=ct(l))==null?void 0:Mi.data)!=null&&Fi.financial_transactions&&((Fa=(In=ct(l))==null?void 0:In.data)==null?void 0:Fa.financial_transactions.pay_status)==1?(oe(),Ce("div",xq,[Q("h4",null,ce(b.$t("order_details.fatoorah_title")),1),p[5]||(p[5]=Q("hr",null,null,-1)),Q("div",Oq,[(ml=(hi=(Ml=ct(l))==null?void 0:Ml.data)==null?void 0:hi.financial_transactions)!=null&&ml.total_products?(oe(),Ce("div",Kq,[Q("h3",null,ce(b.$t("order_details.order_value")),1),Q("h5",null,ce((Gl=(Qa=($o=ct(l))==null?void 0:$o.data)==null?void 0:Qa.financial_transactions)==null?void 0:Gl.total_products)+" "+ce(b.$t("currency")),1)])):Pt("",!0),(($t=(Lt=(Gi=ct(l))==null?void 0:Gi.data)==null?void 0:Lt.receiving_method)==null?void 0:$t.value)==2&&((zt=(bt=(At=ct(l))==null?void 0:At.data)==null?void 0:bt.financial_transactions)!=null&&zt.delivery_price)?(oe(),Ce("div",Pq,[Q("h3",null,ce(b.$t("order_details.delivery_fee")),1),Q("h5",null,ce((Kt=(Ct=(Ot=ct(l))==null?void 0:Ot.data)==null?void 0:Ct.financial_transactions)==null?void 0:Kt.delivery_price)+ce(b.$t("currency")),1)])):Pt("",!0),(qt=(Jn=(cn=ct(l))==null?void 0:cn.data)==null?void 0:Jn.financial_transactions)!=null&&qt.vat_amount?(oe(),Ce("div",zq,[Q("h3",null,ce(b.$t("order_details.vat_amount")),1),Q("h5",null,ce((Ur=(mr=(Mn=ct(l))==null?void 0:Mn.data)==null?void 0:mr.financial_transactions)==null?void 0:Ur.vat_amount)+ce(b.$t("currency")),1)])):Pt("",!0),(Gr=(Nn=(sr=ct(l))==null?void 0:sr.data)==null?void 0:Nn.financial_transactions)!=null&&Gr.final_total?(oe(),Ce("div",jq,[Q("h3",null,ce(b.$t("order_details.total_amount")),1),Q("h5",null,ce((Mr=(kr=($r=ct(l))==null?void 0:$r.data)==null?void 0:kr.financial_transactions)==null?void 0:Mr.final_total)+ce(b.$t("currency")),1)])):Pt("",!0)])])):Pt("",!0)]),Q("div",_q,[((Ba=u.value)==null?void 0:Ba.value)==10&&h.value!=1&&!((qo=(Io=ct(l))==null?void 0:Io.data)!=null&&qo.is_delegate_rated)?(oe(),Ce("button",{key:0,class:"main-btn",onClick:i},ce(b.$t("order_details.delegate_rating")),1)):Pt("",!0),((Si=u.value)==null?void 0:Si.slug)!="New"&&((Go=u.value)==null?void 0:Go.value)!=10?(oe(),Vn(y,{key:1,class:"main-btn",to:"/chats?id="+((Za=(ca=ct(l))==null?void 0:ca.data)==null?void 0:Za.room_id)+"&order_num="+((bo=(ta=ct(l))==null?void 0:ta.data)==null?void 0:bo.id)},{default:Yr(()=>[Ni(ce(b.$t("order_details.chat")),1)]),_:1},8,["to"])):Pt("",!0),((Eo=u.value)==null?void 0:Eo.slug)!="Provider_delivered_to_client"&&((jl=u.value)==null?void 0:jl.slug)!="Client_delivered"&&((So=u.value)==null?void 0:So.slug)!="Delivered_to_delegate"&&!(((so=u.value)==null?void 0:so.slug)=="Prepared"&&h.value==2)&&!(((Ll=u.value)==null?void 0:Ll.slug)=="Accepted"&&f.value.pay_status==0&&f.value.pay_type!=1)&&!(((Ko=u.value)==null?void 0:Ko.slug)=="On_my_way_to_provider"&&h.value==2)&&((Co=u.value)==null?void 0:Co.value)!=6&&((ti=u.value)==null?void 0:ti.value)!=7&&((yo=u.value)==null?void 0:yo.value)!=8&&((ss=u.value)==null?void 0:ss.value)!=9&&((Zl=u.value)==null?void 0:Zl.value)!=10&&((ll=u.value)==null?void 0:ll.slug)!="Cancelled"?(oe(),Ce("button",{key:2,class:Hr(["main-btn ",{variants_btn:((Jl=u.value)==null?void 0:Jl.slug)!="New"}]),onClick:g},ce(((Hl=u.value)==null?void 0:Hl.slug)=="New"?b.$t("order_details.accept"):((el=u.value)==null?void 0:el.slug)=="Accepted"?b.$t("order_details.preparing"):((Ji=u.value)==null?void 0:Ji.slug)=="Preparing"?b.$t("order_details.prepared"):((Pr=u.value)==null?void 0:Pr.slug)=="Prepared"&&h.value==1?b.$t("order_details.store_method"):((Ys=u.value)==null?void 0:Ys.slug)=="On_my_way_to_provider"&&h.value==2?b.$t("order_details.delivery_method"):b.$t("order_details.finish")),3)):Pt("",!0),((_l=u.value)==null?void 0:_l.slug)=="On_my_way_to_provider"&&h.value==2?(oe(),Ce("button",{key:3,class:"main-btn variants_btn",onClick:g},ce(b.$t("order_details.delivery_method")),1)):Pt("",!0),((Qn=u.value)==null?void 0:Qn.slug)=="New"?(oe(),Ce("button",{key:4,class:"main-btn refuse_btn",onClick:A},ce(b.$t("order_details.refuse")),1)):Pt("",!0)]),ct(s)?(oe(),Vn(Ru,{key:0})):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:d,position:"top-right"},null,512),r.value?(oe(),Vn(dq,{key:1,onHandleShowDelegateRatingPopup:i})):Pt("",!0)])}}},xZ=Pi($q,[["__scopeId","data-v-99b2bd53"]]);var HS={name:"ArrowDownIcon",extends:ls},qq=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z",fill:"currentColor"},null,-1),eee=[qq];function tee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),eee,16)}HS.render=tee;var xS={name:"ArrowUpIcon",extends:ls},nee=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z",fill:"currentColor"},null,-1),ree=[nee];function iee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),ree,16)}xS.render=iee;var aee={root:function(e){var n=e.instance,r=e.props;return["p-datatable p-component",{"p-datatable-hoverable-rows":r.rowHover||r.selectionMode,"p-datatable-resizable":r.resizableColumns,"p-datatable-resizable-fit":r.resizableColumns&&r.columnResizeMode==="fit","p-datatable-scrollable":r.scrollable,"p-datatable-flex-scrollable":r.scrollable&&r.scrollHeight==="flex","p-datatable-responsive-stack":r.responsiveLayout==="stack","p-datatable-responsive-scroll":r.responsiveLayout==="scroll","p-datatable-striped":r.stripedRows,"p-datatable-gridlines":r.showGridlines,"p-datatable-grouped-header":n.headerColumnGroup!=null,"p-datatable-grouped-footer":n.footerColumnGroup!=null,"p-datatable-sm":r.size==="small","p-datatable-lg":r.size==="large"}]},loadingOverlay:"p-datatable-loading-overlay p-component-overlay",loadingIcon:"p-datatable-loading-icon",header:"p-datatable-header",paginator:function(e){var n=e.instance;return n.paginatorTop?"p-paginator-top":n.paginatorBottom?"p-paginator-bottom":""},wrapper:"p-datatable-wrapper",table:function(e){var n=e.props;return["p-datatable-table",{"p-datatable-scrollable-table":n.scrollable,"p-datatable-resizable-table":n.resizableColumns,"p-datatable-resizable-table-fit":n.resizableColumns&&n.columnResizeMode==="fit"}]},thead:"p-datatable-thead",headerCell:function(e){var n=e.instance,r=e.props,i=e.column;return i&&!n.columnProp(i,"hidden")&&(r.rowGroupMode!=="subheader"||r.groupRowsBy!==n.columnProp(i,"field"))?["p-filter-column",{"p-frozen-column":n.columnProp(i,"frozen")}]:[{"p-sortable-column":n.columnProp("sortable"),"p-resizable-column":n.resizableColumns,"p-highlight":n.isColumnSorted(),"p-filter-column":r.filterColumn,"p-frozen-column":n.columnProp("frozen"),"p-reorderable-column":r.reorderableColumns}]},columnResizer:"p-column-resizer",headerContent:"p-column-header-content",headerTitle:"p-column-title",sortIcon:"p-sortable-column-icon",sortBadge:"p-sortable-column-badge",columnFilter:function(e){var n=e.props;return["p-column-filter p-fluid",{"p-column-filter-row":n.display==="row","p-column-filter-menu":n.display==="menu"}]},filterInput:"p-fluid p-column-filter-element",filterMenuButton:function(e){var n=e.instance;return["p-column-filter-menu-button p-link",{"p-column-filter-menu-button-open":n.overlayVisible,"p-column-filter-menu-button-active":n.hasFilter()}]},headerFilterClearButton:function(e){var n=e.instance;return["p-column-filter-clear-button p-link",{"p-hidden-space":!n.hasRowFilter()}]},filterOverlay:function(e){var n=e.instance,r=e.props;return[{"p-column-filter-overlay p-component p-fluid":!0,"p-column-filter-overlay-menu":r.display==="menu","p-ripple-disabled":n.$primevue.config.ripple===!1}]},filterRowItems:"p-column-filter-row-items",filterRowItem:function(e){var n=e.instance,r=e.matchMode;return["p-column-filter-row-item",{"p-highlight":r&&n.isRowMatchModeSelected(r.value)}]},filterSeparator:"p-column-filter-separator",filterOperator:"p-column-filter-operator",filterOperatorDropdown:"p-column-filter-operator-dropdown",filterConstraints:"p-column-filter-constraints",filterConstraint:"p-column-filter-constraint",filterMatchModeDropdown:"p-column-filter-matchmode-dropdown",filterRemoveButton:"p-column-filter-remove-button p-button-text p-button-danger p-button-sm",filterAddRule:"p-column-filter-add-rule",filterAddRuleButton:"p-column-filter-add-button p-button-text p-button-sm",filterButtonbar:"p-column-filter-buttonbar",filterClearButton:"p-button-outlined p-button-sm",filterApplyButton:"p-button-sm",tbody:function(e){var n=e.props;return n.frozenRow?"p-datatable-tbody p-datatable-frozen-tbody":"p-datatable-tbody"},rowgroupHeader:"p-rowgroup-header",rowGroupToggler:"p-row-toggler p-link",rowGroupTogglerIcon:"p-row-toggler-icon",row:function(e){var n=e.instance,r=e.props,i=e.index,a=e.columnSelectionMode,o=[];return r.selectionMode&&o.push("p-selectable-row"),r.selection&&o.push({"p-highlight":a?n.isSelected&&n.$parentInstance.$parentInstance.highlightOnSelect:n.isSelected}),r.contextMenuSelection&&o.push({"p-highlight-contextmenu":n.isSelectedWithContextMenu}),o.push(i%2===0?"p-row-even":"p-row-odd"),o},rowExpansion:"p-datatable-row-expansion",rowgroupFooter:"p-rowgroup-footer",emptyMessage:"p-datatable-emptymessage",bodyCell:function(e){var n=e.instance;return[{"p-selection-column":n.columnProp("selectionMode")!=null,"p-editable-column":n.isEditable(),"p-cell-editing":n.d_editing,"p-frozen-column":n.columnProp("frozen")}]},columnTitle:"p-column-title",rowReorderIcon:"p-datatable-reorderablerow-handle",rowToggler:"p-row-toggler p-link",rowTogglerIcon:"p-row-toggler-icon",rowEditorInitButton:"p-row-editor-init p-link",rowEditorInitIcon:"p-row-editor-init-icon",rowEditorSaveButton:"p-row-editor-save p-link",rowEditorSaveIcon:"p-row-editor-save-icon",rowEditorCancelButton:"p-row-editor-cancel p-link",rowEditorCancelIcon:"p-row-editor-cancel-icon",tfoot:"p-datatable-tfoot",footerCell:function(e){var n=e.instance;return[{"p-frozen-column":n.columnProp("frozen")}]},virtualScrollerSpacer:"p-datatable-virtualscroller-spacer",footer:"p-datatable-footer",resizeHelper:"p-column-resizer-helper",reorderIndicatorUp:"p-datatable-reorder-indicator-up",reorderIndicatorDown:"p-datatable-reorder-indicator-down"},oee={wrapper:{overflow:"auto"},thead:{position:"sticky"},tfoot:{position:"sticky"}},lee=Ld.extend({name:"datatable",classes:aee,inlineStyles:oee}),DQ={name:"ChevronRightIcon",extends:ls},see=Q("path",{d:"M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z",fill:"currentColor"},null,-1),dee=[see];function cee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),dee,16)}DQ.render=cee;var OS={name:"BarsIcon",extends:ls},uee=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.3226 3.6129H0.677419C0.497757 3.6129 0.325452 3.54152 0.198411 3.41448C0.0713707 3.28744 0 3.11514 0 2.93548C0 2.75581 0.0713707 2.58351 0.198411 2.45647C0.325452 2.32943 0.497757 2.25806 0.677419 2.25806H13.3226C13.5022 2.25806 13.6745 2.32943 13.8016 2.45647C13.9286 2.58351 14 2.75581 14 2.93548C14 3.11514 13.9286 3.28744 13.8016 3.41448C13.6745 3.54152 13.5022 3.6129 13.3226 3.6129ZM13.3226 7.67741H0.677419C0.497757 7.67741 0.325452 7.60604 0.198411 7.479C0.0713707 7.35196 0 7.17965 0 6.99999C0 6.82033 0.0713707 6.64802 0.198411 6.52098C0.325452 6.39394 0.497757 6.32257 0.677419 6.32257H13.3226C13.5022 6.32257 13.6745 6.39394 13.8016 6.52098C13.9286 6.64802 14 6.82033 14 6.99999C14 7.17965 13.9286 7.35196 13.8016 7.479C13.6745 7.60604 13.5022 7.67741 13.3226 7.67741ZM0.677419 11.7419H13.3226C13.5022 11.7419 13.6745 11.6706 13.8016 11.5435C13.9286 11.4165 14 11.2442 14 11.0645C14 10.8848 13.9286 10.7125 13.8016 10.5855C13.6745 10.4585 13.5022 10.3871 13.3226 10.3871H0.677419C0.497757 10.3871 0.325452 10.4585 0.198411 10.5855C0.0713707 10.7125 0 10.8848 0 11.0645C0 11.2442 0.0713707 11.4165 0.198411 11.5435C0.325452 11.6706 0.497757 11.7419 0.677419 11.7419Z",fill:"currentColor"},null,-1),fee=[uee];function hee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),fee,16)}OS.render=hee;var KS={name:"PencilIcon",extends:ls},gee=Q("path",{d:"M0.609628 13.959C0.530658 13.9599 0.452305 13.9451 0.379077 13.9156C0.305849 13.8861 0.239191 13.8424 0.18294 13.787C0.118447 13.7234 0.0688234 13.6464 0.0376166 13.5614C0.00640987 13.4765 -0.00560954 13.3857 0.00241768 13.2956L0.25679 10.1501C0.267698 10.0041 0.331934 9.86709 0.437312 9.76516L9.51265 0.705715C10.0183 0.233014 10.6911 -0.0203041 11.3835 0.00127367C12.0714 0.00660201 12.7315 0.27311 13.2298 0.746671C13.7076 1.23651 13.9824 1.88848 13.9992 2.57201C14.0159 3.25554 13.7733 3.92015 13.32 4.4327L4.23648 13.5331C4.13482 13.6342 4.0017 13.6978 3.85903 13.7133L0.667067 14L0.609628 13.959ZM1.43018 10.4696L1.25787 12.714L3.50619 12.5092L12.4502 3.56444C12.6246 3.35841 12.7361 3.10674 12.7714 2.83933C12.8067 2.57193 12.7644 2.30002 12.6495 2.05591C12.5346 1.8118 12.3519 1.60575 12.1231 1.46224C11.8943 1.31873 11.6291 1.2438 11.3589 1.24633C11.1813 1.23508 11.0033 1.25975 10.8355 1.31887C10.6677 1.37798 10.5136 1.47033 10.3824 1.59036L1.43018 10.4696Z",fill:"currentColor"},null,-1),Aee=[gee];function pee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),Aee,16)}KS.render=pee;var mee={root:function(e){var n=e.instance,r=e.props;return["p-radiobutton p-component",{"p-highlight":n.checked,"p-disabled":r.disabled,"p-invalid":r.invalid,"p-variant-filled":r.variant?r.variant==="filled":n.$primevue.config.inputStyle==="filled"}]},box:"p-radiobutton-box",input:"p-radiobutton-input",icon:"p-radiobutton-icon"},bee=Ld.extend({name:"radiobutton",classes:mee}),yee={name:"BaseRadioButton",extends:nl,props:{value:null,modelValue:null,binary:Boolean,name:{type:String,default:null},variant:{type:String,default:null},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},tabindex:{type:Number,default:null},inputId:{type:String,default:null},inputClass:{type:[String,Object],default:null},inputStyle:{type:Object,default:null},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null}},style:bee,provide:function(){return{$parentInstance:this}}},PS={name:"RadioButton",extends:yee,inheritAttrs:!1,emits:["update:modelValue","change","focus","blur"],methods:{getPTOptions:function(e){var n=e==="root"?this.ptmi:this.ptm;return n(e,{context:{checked:this.checked,disabled:this.disabled}})},onChange:function(e){if(!this.disabled&&!this.readonly){var n=this.binary?!this.checked:this.value;this.$emit("update:modelValue",n),this.$emit("change",e)}},onFocus:function(e){this.$emit("focus",e)},onBlur:function(e){this.$emit("blur",e)}},computed:{checked:function(){return this.modelValue!=null&&(this.binary?!!this.modelValue:jn.equals(this.modelValue,this.value))}}},Fee=["data-p-highlight","data-p-disabled"],Qee=["id","value","name","checked","tabindex","disabled","readonly","aria-labelledby","aria-label","aria-invalid"];function Uee(t,e,n,r,i,a){return oe(),Ce("div",Jt({class:t.cx("root")},a.getPTOptions("root"),{"data-p-highlight":a.checked,"data-p-disabled":t.disabled}),[Q("input",Jt({id:t.inputId,type:"radio",class:[t.cx("input"),t.inputClass],style:t.inputStyle,value:t.value,name:t.name,checked:a.checked,tabindex:t.tabindex,disabled:t.disabled,readonly:t.readonly,"aria-labelledby":t.ariaLabelledby,"aria-label":t.ariaLabel,"aria-invalid":t.invalid||void 0,onFocus:e[0]||(e[0]=function(){return a.onFocus&&a.onFocus.apply(a,arguments)}),onBlur:e[1]||(e[1]=function(){return a.onBlur&&a.onBlur.apply(a,arguments)}),onChange:e[2]||(e[2]=function(){return a.onChange&&a.onChange.apply(a,arguments)})},a.getPTOptions("input")),null,16,Qee),Q("div",Jt({class:t.cx("box")},a.getPTOptions("box")),[Q("div",Jt({class:t.cx("icon")},a.getPTOptions("icon")),null,16)],16)],16,Fee)}PS.render=Uee;var Ree={},Bee=Nl.extend({style:Ree});function C0(t){"@babel/helpers - typeof";return C0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C0(t)}function OZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function KZ(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?OZ(Object(n),!0).forEach(function(r){Zee(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):OZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Zee(t,e,n){return e=Iee(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Iee(t){var e=Cee(t,"string");return C0(e)=="symbol"?e:String(e)}function Cee(t,e){if(C0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(C0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var vee=Bee.extend("focustrap",{mounted:function(e,n){var r=n.value||{},i=r.disabled;i||(this.createHiddenFocusableElements(e,n),this.bind(e,n),this.autoElementFocus(e,n)),e.setAttribute("data-pd-focustrap",!0),this.$el=e},updated:function(e,n){var r=n.value||{},i=r.disabled;i&&this.unbind(e)},unmounted:function(e){this.unbind(e)},methods:{getComputedSelector:function(e){return':not(.p-hidden-focusable):not([data-p-hidden-focusable="true"])'.concat(e??"")},bind:function(e,n){var r=this,i=n.value||{},a=i.onFocusIn,o=i.onFocusOut;e.$_pfocustrap_mutationobserver=new MutationObserver(function(l){l.forEach(function(s){if(s.type==="childList"&&!e.contains(document.activeElement)){var d=function c(u){var h=Wn.isFocusableElement(u)?Wn.isFocusableElement(u,r.getComputedSelector(e.$_pfocustrap_focusableselector))?u:Wn.getFirstFocusableElement(e,r.getComputedSelector(e.$_pfocustrap_focusableselector)):Wn.getFirstFocusableElement(u);return jn.isNotEmpty(h)?h:u.nextSibling&&c(u.nextSibling)};Wn.focus(d(s.nextSibling))}})}),e.$_pfocustrap_mutationobserver.disconnect(),e.$_pfocustrap_mutationobserver.observe(e,{childList:!0}),e.$_pfocustrap_focusinlistener=function(l){return a&&a(l)},e.$_pfocustrap_focusoutlistener=function(l){return o&&o(l)},e.addEventListener("focusin",e.$_pfocustrap_focusinlistener),e.addEventListener("focusout",e.$_pfocustrap_focusoutlistener)},unbind:function(e){e.$_pfocustrap_mutationobserver&&e.$_pfocustrap_mutationobserver.disconnect(),e.$_pfocustrap_focusinlistener&&e.removeEventListener("focusin",e.$_pfocustrap_focusinlistener)&&(e.$_pfocustrap_focusinlistener=null),e.$_pfocustrap_focusoutlistener&&e.removeEventListener("focusout",e.$_pfocustrap_focusoutlistener)&&(e.$_pfocustrap_focusoutlistener=null)},autoFocus:function(e){this.autoElementFocus(this.$el,{value:KZ(KZ({},e),{},{autoFocus:!0})})},autoElementFocus:function(e,n){var r=n.value||{},i=r.autoFocusSelector,a=i===void 0?"":i,o=r.firstFocusableSelector,l=o===void 0?"":o,s=r.autoFocus,d=s===void 0?!1:s,c=Wn.getFirstFocusableElement(e,"[autofocus]".concat(this.getComputedSelector(a)));d&&!c&&(c=Wn.getFirstFocusableElement(e,this.getComputedSelector(l))),Wn.focus(c)},onFirstHiddenElementFocus:function(e){var n,r=e.currentTarget,i=e.relatedTarget,a=i===r.$_pfocustrap_lasthiddenfocusableelement||!((n=this.$el)!==null&&n!==void 0&&n.contains(i))?Wn.getFirstFocusableElement(r.parentElement,this.getComputedSelector(r.$_pfocustrap_focusableselector)):r.$_pfocustrap_lasthiddenfocusableelement;Wn.focus(a)},onLastHiddenElementFocus:function(e){var n,r=e.currentTarget,i=e.relatedTarget,a=i===r.$_pfocustrap_firsthiddenfocusableelement||!((n=this.$el)!==null&&n!==void 0&&n.contains(i))?Wn.getLastFocusableElement(r.parentElement,this.getComputedSelector(r.$_pfocustrap_focusableselector)):r.$_pfocustrap_firsthiddenfocusableelement;Wn.focus(a)},createHiddenFocusableElements:function(e,n){var r=this,i=n.value||{},a=i.tabIndex,o=a===void 0?0:a,l=i.firstFocusableSelector,s=l===void 0?"":l,d=i.lastFocusableSelector,c=d===void 0?"":d,u=function(A){return Wn.createElement("span",{class:"p-hidden-accessible p-hidden-focusable",tabIndex:o,role:"presentation","aria-hidden":!0,"data-p-hidden-accessible":!0,"data-p-hidden-focusable":!0,onFocus:A==null?void 0:A.bind(r)})},h=u(this.onFirstHiddenElementFocus),f=u(this.onLastHiddenElementFocus);h.$_pfocustrap_lasthiddenfocusableelement=f,h.$_pfocustrap_focusableselector=s,h.setAttribute("data-pc-section","firstfocusableelement"),f.$_pfocustrap_firsthiddenfocusableelement=h,f.$_pfocustrap_focusableselector=c,f.setAttribute("data-pc-section","lastfocusableelement"),e.prepend(h),e.append(f)}}}),zS={name:"FilterIcon",extends:ls},Vee=Q("path",{d:"M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z",fill:"currentColor"},null,-1),Eee=[Vee];function See(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),Eee,16)}zS.render=See;var jS={name:"FilterSlashIcon",extends:ls},Wee=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z",fill:"currentColor"},null,-1),Nee=[Wee];function Gee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),Nee,16)}jS.render=Gee;var _S={name:"PlusIcon",extends:ls},Jee=Q("path",{d:"M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z",fill:"currentColor"},null,-1),Tee=[Jee];function Xee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),Tee,16)}_S.render=Xee;var $S={name:"TrashIcon",extends:ls},kee=Q("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z",fill:"currentColor"},null,-1),wee=[kee];function Yee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),wee,16)}$S.render=Yee;var B2={name:"SortAltIcon",extends:ls},Dee=Q("path",{d:"M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z",fill:"currentColor"},null,-1),Mee=Q("path",{d:"M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z",fill:"currentColor"},null,-1),Lee=Q("path",{d:"M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z",fill:"currentColor"},null,-1),Hee=Q("path",{d:"M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z",fill:"currentColor"},null,-1),xee=[Dee,Mee,Lee,Hee];function Oee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),xee,16)}B2.render=Oee;var Z2={name:"SortAmountDownIcon",extends:ls},Kee=Q("path",{d:"M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z",fill:"currentColor"},null,-1),Pee=[Kee];function zee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),Pee,16)}Z2.render=zee;var I2={name:"SortAmountUpAltIcon",extends:ls},jee=Q("path",{d:"M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z",fill:"currentColor"},null,-1),_ee=[jee];function $ee(t,e,n,r,i,a){return oe(),Ce("svg",Jt({width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.pti()),_ee,16)}I2.render=$ee;var qee={name:"BaseDataTable",extends:nl,props:{value:{type:Array,default:null},dataKey:{type:[String,Function],default:null},rows:{type:Number,default:0},first:{type:Number,default:0},totalRecords:{type:Number,default:0},paginator:{type:Boolean,default:!1},paginatorPosition:{type:String,default:"bottom"},alwaysShowPaginator:{type:Boolean,default:!0},paginatorTemplate:{type:[Object,String],default:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown"},pageLinkSize:{type:Number,default:5},rowsPerPageOptions:{type:Array,default:null},currentPageReportTemplate:{type:String,default:"({currentPage} of {totalPages})"},lazy:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingIcon:{type:String,default:void 0},sortField:{type:[String,Function],default:null},sortOrder:{type:Number,default:null},defaultSortOrder:{type:Number,default:1},nullSortOrder:{type:Number,default:1},multiSortMeta:{type:Array,default:null},sortMode:{type:String,default:"single"},removableSort:{type:Boolean,default:!1},filters:{type:Object,default:null},filterDisplay:{type:String,default:null},globalFilterFields:{type:Array,default:null},filterLocale:{type:String,default:void 0},selection:{type:[Array,Object],default:null},selectionMode:{type:String,default:null},compareSelectionBy:{type:String,default:"deepEquals"},metaKeySelection:{type:Boolean,default:!1},contextMenu:{type:Boolean,default:!1},contextMenuSelection:{type:Object,default:null},selectAll:{type:Boolean,default:null},rowHover:{type:Boolean,default:!1},csvSeparator:{type:String,default:","},exportFilename:{type:String,default:"download"},exportFunction:{type:Function,default:null},resizableColumns:{type:Boolean,default:!1},columnResizeMode:{type:String,default:"fit"},reorderableColumns:{type:Boolean,default:!1},expandedRows:{type:[Array,Object],default:null},expandedRowIcon:{type:String,default:void 0},collapsedRowIcon:{type:String,default:void 0},rowGroupMode:{type:String,default:null},groupRowsBy:{type:[Array,String,Function],default:null},expandableRowGroups:{type:Boolean,default:!1},expandedRowGroups:{type:Array,default:null},stateStorage:{type:String,default:"session"},stateKey:{type:String,default:null},editMode:{type:String,default:null},editingRows:{type:Array,default:null},rowClass:{type:Function,default:null},rowStyle:{type:Function,default:null},scrollable:{type:Boolean,default:!1},virtualScrollerOptions:{type:Object,default:null},scrollHeight:{type:String,default:null},frozenValue:{type:Array,default:null},responsiveLayout:{type:String,default:"scroll"},breakpoint:{type:String,default:"960px"},showGridlines:{type:Boolean,default:!1},stripedRows:{type:Boolean,default:!1},highlightOnSelect:{type:Boolean,default:!1},size:{type:String,default:null},tableStyle:{type:null,default:null},tableClass:{type:[String,Object],default:null},tableProps:{type:Object,default:null},filterInputProps:{type:null,default:null}},style:lee,provide:function(){return{$parentInstance:this}}},qS={name:"RowCheckbox",hostName:"DataTable",extends:nl,emits:["change"],props:{value:null,checked:null,column:null,rowCheckboxIconTemplate:{type:Function,default:null},index:{type:Number,default:null}},methods:{getColumnPT:function(e){var n={props:this.column.props,parent:{instance:this,props:this.$props,state:this.$data},context:{index:this.index,checked:this.checked,disabled:this.$attrs.disabled}};return Jt(this.ptm("column.".concat(e),{column:n}),this.ptm("column.".concat(e),n),this.ptmo(this.getColumnProp(),e,n))},getColumnProp:function(){return this.column.props&&this.column.props.pt?this.column.props.pt:void 0},onChange:function(e){this.$attrs.disabled||this.$emit("change",{originalEvent:e,data:this.value})}},computed:{checkboxAriaLabel:function(){return this.$primevue.config.locale.aria?this.checked?this.$primevue.config.locale.aria.selectRow:this.$primevue.config.locale.aria.unselectRow:void 0}},components:{CheckIcon:mh,Checkbox:Xy}};function ete(t,e,n,r,i,a){var o=Li("CheckIcon"),l=Li("Checkbox");return oe(),Vn(l,{modelValue:n.checked,binary:!0,disabled:t.$attrs.disabled,"aria-label":a.checkboxAriaLabel,onChange:a.onChange,unstyled:t.unstyled,pt:a.getColumnPT("rowCheckbox")},{icon:Yr(function(s){return[n.rowCheckboxIconTemplate?(oe(),Vn(ea(n.rowCheckboxIconTemplate),{key:0,checked:s.checked,class:Hr(s.class)},null,8,["checked","class"])):!n.rowCheckboxIconTemplate&&s.checked?(oe(),Vn(o,Jt({key:1,class:s.class},a.getColumnPT("rowCheckbox.icon")),null,16,["class"])):Pt("",!0)]}),_:1},8,["modelValue","disabled","aria-label","onChange","unstyled","pt"])}qS.render=ete;var eW={name:"RowRadioButton",hostName:"DataTable",extends:nl,emits:["change"],props:{value:null,checked:null,name:null,column:null,index:{type:Number,default:null}},methods:{getColumnPT:function(e){var n={props:this.column.props,parent:{instance:this,props:this.$props,state:this.$data},context:{index:this.index,checked:this.checked,disabled:this.$attrs.disabled}};return Jt(this.ptm("column.".concat(e),{column:n}),this.ptm("column.".concat(e),n),this.ptmo(this.getColumnProp(),e,n))},getColumnProp:function(){return this.column.props&&this.column.props.pt?this.column.props.pt:void 0},onChange:function(e){this.$attrs.disabled||this.$emit("change",{originalEvent:e,data:this.value})}},components:{RadioButton:PS}};function tte(t,e,n,r,i,a){var o=Li("RadioButton");return oe(),Vn(o,{modelValue:n.checked,binary:!0,disabled:t.$attrs.disabled,name:n.name,onChange:a.onChange,unstyled:t.unstyled,pt:a.getColumnPT("rowRadiobutton")},null,8,["modelValue","disabled","name","onChange","unstyled","pt"])}eW.render=tte;var tW={name:"BodyCell",hostName:"DataTable",extends:nl,emits:["cell-edit-init","cell-edit-complete","cell-edit-cancel","row-edit-init","row-edit-save","row-edit-cancel","row-toggle","radio-change","checkbox-change","editing-meta-change"],props:{rowData:{type:Object,default:null},column:{type:Object,default:null},frozenRow:{type:Boolean,default:!1},rowIndex:{type:Number,default:null},index:{type:Number,default:null},isRowExpanded:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},editing:{type:Boolean,default:!1},editingMeta:{type:Object,default:null},editMode:{type:String,default:null},responsiveLayout:{type:String,default:"stack"},virtualScrollerContentProps:{type:Object,default:null},ariaControls:{type:String,default:null},name:{type:String,default:null},expandedRowIcon:{type:String,default:null},collapsedRowIcon:{type:String,default:null}},documentEditListener:null,selfClick:!1,overlayEventListener:null,data:function(){return{d_editing:this.editing,styleObject:{}}},watch:{editing:function(e){this.d_editing=e},"$data.d_editing":function(e){this.$emit("editing-meta-change",{data:this.rowData,field:this.field||"field_".concat(this.index),index:this.rowIndex,editing:e})}},mounted:function(){this.columnProp("frozen")&&this.updateStickyPosition()},updated:function(){var e=this;this.columnProp("frozen")&&this.updateStickyPosition(),this.d_editing&&(this.editMode==="cell"||this.editMode==="row"&&this.columnProp("rowEditor"))&&setTimeout(function(){var n=Wn.getFirstFocusableElement(e.$el);n&&n.focus()},1)},beforeUnmount:function(){this.overlayEventListener&&(gh.off("overlay-click",this.overlayEventListener),this.overlayEventListener=null)},methods:{columnProp:function(e){return jn.getVNodeProp(this.column,e)},getColumnPT:function(e){var n,r,i={props:this.column.props,parent:{instance:this,props:this.$props,state:this.$data},context:{index:this.index,size:(n=this.$parentInstance)===null||n===void 0||(n=n.$parentInstance)===null||n===void 0?void 0:n.size,showGridlines:(r=this.$parentInstance)===null||r===void 0||(r=r.$parentInstance)===null||r===void 0?void 0:r.showGridlines}};return Jt(this.ptm("column.".concat(e),{column:i}),this.ptm("column.".concat(e),i),this.ptmo(this.getColumnProp(),e,i))},getColumnProp:function(){return this.column.props&&this.column.props.pt?this.column.props.pt:void 0},resolveFieldData:function(){return jn.resolveFieldData(this.rowData,this.field)},toggleRow:function(e){this.$emit("row-toggle",{originalEvent:e,data:this.rowData})},toggleRowWithRadio:function(e,n){this.$emit("radio-change",{originalEvent:e.originalEvent,index:n,data:e.data})},toggleRowWithCheckbox:function(e,n){this.$emit("checkbox-change",{originalEvent:e.originalEvent,index:n,data:e.data})},isEditable:function(){return this.column.children&&this.column.children.editor!=null},bindDocumentEditListener:function(){var e=this;this.documentEditListener||(this.documentEditListener=function(n){e.selfClick||e.completeEdit(n,"outside"),e.selfClick=!1},document.addEventListener("click",this.documentEditListener))},unbindDocumentEditListener:function(){this.documentEditListener&&(document.removeEventListener("click",this.documentEditListener),this.documentEditListener=null,this.selfClick=!1)},switchCellToViewMode:function(){this.d_editing=!1,this.unbindDocumentEditListener(),gh.off("overlay-click",this.overlayEventListener),this.overlayEventListener=null},onClick:function(e){var n=this;this.editMode==="cell"&&this.isEditable()&&(this.selfClick=!0,this.d_editing||(this.d_editing=!0,this.bindDocumentEditListener(),this.$emit("cell-edit-init",{originalEvent:e,data:this.rowData,field:this.field,index:this.rowIndex}),this.overlayEventListener=function(r){n.$el&&n.$el.contains(r.target)&&(n.selfClick=!0)},gh.on("overlay-click",this.overlayEventListener)))},completeEdit:function(e,n){var r={originalEvent:e,data:this.rowData,newData:this.editingRowData,value:this.rowData[this.field],newValue:this.editingRowData[this.field],field:this.field,index:this.rowIndex,type:n,defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0}};this.$emit("cell-edit-complete",r),r.defaultPrevented||this.switchCellToViewMode()},onKeyDown:function(e){if(this.editMode==="cell")switch(e.code){case"Enter":case"NumpadEnter":this.completeEdit(e,"enter");break;case"Escape":this.switchCellToViewMode(),this.$emit("cell-edit-cancel",{originalEvent:e,data:this.rowData,field:this.field,index:this.rowIndex});break;case"Tab":this.completeEdit(e,"tab"),e.shiftKey?this.moveToPreviousCell(e):this.moveToNextCell(e);break}},moveToPreviousCell:function(e){var n=this.findCell(e.target),r=this.findPreviousEditableColumn(n);r&&(Wn.invokeElementMethod(r,"click"),e.preventDefault())},moveToNextCell:function(e){var n=this.findCell(e.target),r=this.findNextEditableColumn(n);r&&(Wn.invokeElementMethod(r,"click"),e.preventDefault())},findCell:function(e){if(e){for(var n=e;n&&!Wn.getAttribute(n,"data-p-cell-editing");)n=n.parentElement;return n}else return null},findPreviousEditableColumn:function(e){var n=e==null?void 0:e.previousElementSibling;if(n)return Wn.getAttribute(n,"data-p-editable-column")?n:this.findPreviousEditableColumn(n);var r=e==null?void 0:e.parentElement.previousElementSibling;if(r)n=r.lastElementChild;else return null},findNextEditableColumn:function(e){var n=e==null?void 0:e.nextElementSibling;if(n)return Wn.getAttribute(n,"data-p-editable-column")?n:this.findNextEditableColumn(n);var r=e==null?void 0:e.parentElement.nextElementSibling;if(r)n=r.firstElementChild;else return null},onRowEditInit:function(e){this.$emit("row-edit-init",{originalEvent:e,data:this.rowData,newData:this.editingRowData,field:this.field,index:this.rowIndex})},onRowEditSave:function(e){this.$emit("row-edit-save",{originalEvent:e,data:this.rowData,newData:this.editingRowData,field:this.field,index:this.rowIndex})},onRowEditCancel:function(e){this.$emit("row-edit-cancel",{originalEvent:e,data:this.rowData,newData:this.editingRowData,field:this.field,index:this.rowIndex})},editorInitCallback:function(e){this.$emit("row-edit-init",{originalEvent:e,data:this.rowData,newData:this.editingRowData,field:this.field,index:this.rowIndex})},editorSaveCallback:function(e){this.editMode==="row"?this.$emit("row-edit-save",{originalEvent:e,data:this.rowData,newData:this.editingRowData,field:this.field,index:this.rowIndex}):this.completeEdit(e,"enter")},editorCancelCallback:function(e){this.editMode==="row"?this.$emit("row-edit-cancel",{originalEvent:e,data:this.rowData,newData:this.editingRowData,field:this.field,index:this.rowIndex}):(this.switchCellToViewMode(),this.$emit("cell-edit-cancel",{originalEvent:e,data:this.rowData,field:this.field,index:this.rowIndex}))},updateStickyPosition:function(){if(this.columnProp("frozen")){var e=this.columnProp("alignFrozen");if(e==="right"){var n=0,r=Wn.getNextElementSibling(this.$el,'[data-p-frozen-column="true"]');r&&(n=Wn.getOuterWidth(r)+parseFloat(r.style.right||0)),this.styleObject.right=n+"px"}else{var i=0,a=Wn.getPreviousElementSibling(this.$el,'[data-p-frozen-column="true"]');a&&(i=Wn.getOuterWidth(a)+parseFloat(a.style.left||0)),this.styleObject.left=i+"px"}}},getVirtualScrollerProp:function(e){return this.virtualScrollerContentProps?this.virtualScrollerContentProps[e]:null}},computed:{editingRowData:function(){return this.editingMeta[this.rowIndex]?this.editingMeta[this.rowIndex].data:this.rowData},field:function(){return this.columnProp("field")},containerClass:function(){return[this.columnProp("bodyClass"),this.columnProp("class"),this.cx("bodyCell")]},containerStyle:function(){var e=this.columnProp("bodyStyle"),n=this.columnProp("style");return this.columnProp("frozen")?[n,e,this.styleObject]:[n,e]},loading:function(){return this.getVirtualScrollerProp("loading")},loadingOptions:function(){var e=this.getVirtualScrollerProp("getLoaderOptions");return e&&e(this.rowIndex,{cellIndex:this.index,cellFirst:this.index===0,cellLast:this.index===this.getVirtualScrollerProp("columns").length-1,cellEven:this.index%2===0,cellOdd:this.index%2!==0,column:this.column,field:this.field})},expandButtonAriaLabel:function(){return this.$primevue.config.locale.aria?this.isRowExpanded?this.$primevue.config.locale.aria.expandRow:this.$primevue.config.locale.aria.collapseRow:void 0},initButtonAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.editRow:void 0},saveButtonAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.saveEdit:void 0},cancelButtonAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.cancelEdit:void 0}},components:{DTRadioButton:eW,DTCheckbox:qS,ChevronDownIcon:P0,ChevronRightIcon:DQ,BarsIcon:OS,PencilIcon:KS,CheckIcon:mh,TimesIcon:K0},directives:{ripple:wf}};function v0(t){"@babel/helpers - typeof";return v0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v0(t)}function PZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Fb(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?PZ(Object(n),!0).forEach(function(r){nte(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):PZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function nte(t,e,n){return e=rte(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function rte(t){var e=ite(t,"string");return v0(e)=="symbol"?e:String(e)}function ite(t,e){if(v0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(v0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var ate=["colspan","rowspan","data-p-selection-column","data-p-editable-column","data-p-cell-editing","data-p-frozen-column"],ote=["aria-expanded","aria-controls","aria-label"],lte=["aria-label"],ste=["aria-label"],dte=["aria-label"];function cte(t,e,n,r,i,a){var o=Li("DTRadioButton"),l=Li("DTCheckbox"),s=Li("BarsIcon"),d=Li("ChevronDownIcon"),c=Li("ChevronRightIcon"),u=mf("ripple");return a.loading?(oe(),Ce("td",Jt({key:0,style:a.containerStyle,class:a.containerClass,role:"cell"},Fb(Fb({},a.getColumnPT("root")),a.getColumnPT("bodyCell"))),[(oe(),Vn(ea(n.column.children.loading),{data:n.rowData,column:n.column,field:a.field,index:n.rowIndex,frozenRow:n.frozenRow,loadingOptions:a.loadingOptions},null,8,["data","column","field","index","frozenRow","loadingOptions"]))],16)):(oe(),Ce("td",Jt({key:1,style:a.containerStyle,class:a.containerClass,colspan:a.columnProp("colspan"),rowspan:a.columnProp("rowspan"),onClick:e[6]||(e[6]=function(){return a.onClick&&a.onClick.apply(a,arguments)}),onKeydown:e[7]||(e[7]=function(){return a.onKeyDown&&a.onKeyDown.apply(a,arguments)}),role:"cell"},Fb(Fb({},a.getColumnPT("root")),a.getColumnPT("bodyCell")),{"data-p-selection-column":a.columnProp("selectionMode")!=null,"data-p-editable-column":a.isEditable(),"data-p-cell-editing":i.d_editing,"data-p-frozen-column":a.columnProp("frozen")}),[n.responsiveLayout==="stack"?(oe(),Ce("span",Jt({key:0,class:t.cx("columnTitle")},a.getColumnPT("columnTitle")),ce(a.columnProp("header")),17)):Pt("",!0),n.column.children&&n.column.children.body&&!i.d_editing?(oe(),Vn(ea(n.column.children.body),{key:1,data:n.rowData,column:n.column,field:a.field,index:n.rowIndex,frozenRow:n.frozenRow,editorInitCallback:a.editorInitCallback,rowTogglerCallback:a.toggleRow},null,8,["data","column","field","index","frozenRow","editorInitCallback","rowTogglerCallback"])):n.column.children&&n.column.children.editor&&i.d_editing?(oe(),Vn(ea(n.column.children.editor),{key:2,data:a.editingRowData,column:n.column,field:a.field,index:n.rowIndex,frozenRow:n.frozenRow,editorSaveCallback:a.editorSaveCallback,editorCancelCallback:a.editorCancelCallback},null,8,["data","column","field","index","frozenRow","editorSaveCallback","editorCancelCallback"])):n.column.children&&n.column.children.body&&!n.column.children.editor&&i.d_editing?(oe(),Vn(ea(n.column.children.body),{key:3,data:a.editingRowData,column:n.column,field:a.field,index:n.rowIndex,frozenRow:n.frozenRow},null,8,["data","column","field","index","frozenRow"])):a.columnProp("selectionMode")?(oe(),Ce(Er,{key:4},[a.columnProp("selectionMode")==="single"?(oe(),Vn(o,{key:0,value:n.rowData,name:n.name,checked:n.selected,onChange:e[0]||(e[0]=function(h){return a.toggleRowWithRadio(h,n.rowIndex)}),column:n.column,index:n.index,unstyled:t.unstyled,pt:t.pt},null,8,["value","name","checked","column","index","unstyled","pt"])):a.columnProp("selectionMode")==="multiple"?(oe(),Vn(l,{key:1,value:n.rowData,checked:n.selected,rowCheckboxIconTemplate:n.column.children&&n.column.children.rowcheckboxicon,"aria-selected":n.selected?!0:void 0,onChange:e[1]||(e[1]=function(h){return a.toggleRowWithCheckbox(h,n.rowIndex)}),column:n.column,index:n.index,unstyled:t.unstyled,pt:t.pt},null,8,["value","checked","rowCheckboxIconTemplate","aria-selected","column","index","unstyled","pt"])):Pt("",!0)],64)):a.columnProp("rowReorder")?(oe(),Ce(Er,{key:5},[n.column.children&&n.column.children.rowreordericon?(oe(),Vn(ea(n.column.children.rowreordericon),{key:0,class:Hr(t.cx("rowReorderIcon"))},null,8,["class"])):a.columnProp("rowReorderIcon")?(oe(),Ce("i",Jt({key:1,class:[t.cx("rowReorderIcon"),a.columnProp("rowReorderIcon")]},a.getColumnPT("rowReorderIcon")),null,16)):(oe(),Vn(s,Jt({key:2,class:t.cx("rowReorderIcon")},a.getColumnPT("rowReorderIcon")),null,16,["class"]))],64)):a.columnProp("expander")?br((oe(),Ce("button",Jt({key:6,class:t.cx("rowToggler"),type:"button","aria-expanded":n.isRowExpanded,"aria-controls":n.ariaControls,"aria-label":a.expandButtonAriaLabel,onClick:e[2]||(e[2]=function(){return a.toggleRow&&a.toggleRow.apply(a,arguments)})},a.getColumnPT("rowToggler"),{"data-pc-group-section":"rowactionbutton"}),[n.column.children&&n.column.children.rowtogglericon?(oe(),Vn(ea(n.column.children.rowtogglericon),{key:0,class:Hr(t.cx("rowTogglerIcon")),rowExpanded:n.isRowExpanded},null,8,["class","rowExpanded"])):(oe(),Ce(Er,{key:1},[n.isRowExpanded&&n.expandedRowIcon?(oe(),Ce("span",{key:0,class:Hr([t.cx("rowTogglerIcon"),n.expandedRowIcon])},null,2)):n.isRowExpanded&&!n.expandedRowIcon?(oe(),Vn(d,Jt({key:1,class:t.cx("rowTogglerIcon")},a.getColumnPT("rowTogglerIcon")),null,16,["class"])):!n.isRowExpanded&&n.collapsedRowIcon?(oe(),Ce("span",{key:2,class:Hr([t.cx("rowTogglerIcon"),n.collapsedRowIcon])},null,2)):!n.isRowExpanded&&!n.collapsedRowIcon?(oe(),Vn(c,Jt({key:3,class:t.cx("rowTogglerIcon")},a.getColumnPT("rowTogglerIcon")),null,16,["class"])):Pt("",!0)],64))],16,ote)),[[u]]):n.editMode==="row"&&a.columnProp("rowEditor")?(oe(),Ce(Er,{key:7},[i.d_editing?Pt("",!0):br((oe(),Ce("button",Jt({key:0,class:t.cx("rowEditorInitButton"),type:"button","aria-label":a.initButtonAriaLabel,onClick:e[3]||(e[3]=function(){return a.onRowEditInit&&a.onRowEditInit.apply(a,arguments)})},a.getColumnPT("rowEditorInitButton"),{"data-pc-group-section":"rowactionbutton"}),[(oe(),Vn(ea(n.column.children&&n.column.children.roweditoriniticon||"PencilIcon"),Jt({class:t.cx("rowEditorInitIcon")},a.getColumnPT("rowEditorInitIcon")),null,16,["class"]))],16,lte)),[[u]]),i.d_editing?br((oe(),Ce("button",Jt({key:1,class:t.cx("rowEditorSaveButton"),type:"button","aria-label":a.saveButtonAriaLabel,onClick:e[4]||(e[4]=function(){return a.onRowEditSave&&a.onRowEditSave.apply(a,arguments)})},a.getColumnPT("rowEditorSaveButton"),{"data-pc-group-section":"rowactionbutton"}),[(oe(),Vn(ea(n.column.children&&n.column.children.roweditorsaveicon||"CheckIcon"),Jt({class:t.cx("rowEditorSaveIcon")},a.getColumnPT("rowEditorSaveIcon")),null,16,["class"]))],16,ste)),[[u]]):Pt("",!0),i.d_editing?br((oe(),Ce("button",Jt({key:2,class:t.cx("rowEditorCancelButton"),type:"button","aria-label":a.cancelButtonAriaLabel,onClick:e[5]||(e[5]=function(){return a.onRowEditCancel&&a.onRowEditCancel.apply(a,arguments)})},a.getColumnPT("rowEditorCancelButton"),{"data-pc-group-section":"rowactionbutton"}),[(oe(),Vn(ea(n.column.children&&n.column.children.roweditorcancelicon||"TimesIcon"),Jt({class:t.cx("rowEditorCancelIcon")},a.getColumnPT("rowEditorCancelIcon")),null,16,["class"]))],16,dte)),[[u]]):Pt("",!0)],64)):(oe(),Ce(Er,{key:8},[Ni(ce(a.resolveFieldData()),1)],64))],16,ate))}tW.render=cte;function V0(t){"@babel/helpers - typeof";return V0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},V0(t)}function ute(t,e){var n=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=fte(t))||e){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(d){throw d},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,l;return{s:function(){n=n.call(t)},n:function(){var d=n.next();return a=d.done,d},e:function(d){o=!0,l=d},f:function(){try{!a&&n.return!=null&&n.return()}finally{if(o)throw l}}}}function fte(t,e){if(t){if(typeof t=="string")return zZ(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zZ(t,e)}}function zZ(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function jZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function _Z(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?jZ(Object(n),!0).forEach(function(r){hte(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):jZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function hte(t,e,n){return e=gte(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function gte(t){var e=Ate(t,"string");return V0(e)=="symbol"?e:String(e)}function Ate(t,e){if(V0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(V0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var nW={name:"BodyRow",hostName:"DataTable",extends:nl,emits:["rowgroup-toggle","row-click","row-dblclick","row-rightclick","row-touchend","row-keydown","row-mousedown","row-dragstart","row-dragover","row-dragleave","row-dragend","row-drop","row-toggle","radio-change","checkbox-change","cell-edit-init","cell-edit-complete","cell-edit-cancel","row-edit-init","row-edit-save","row-edit-cancel","editing-meta-change"],props:{rowData:{type:Object,default:null},index:{type:Number,default:0},value:{type:Array,default:null},columns:{type:null,default:null},frozenRow:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},rowGroupMode:{type:String,default:null},groupRowsBy:{type:[Array,String,Function],default:null},expandableRowGroups:{type:Boolean,default:!1},expandedRowGroups:{type:Array,default:null},first:{type:Number,default:0},dataKey:{type:[String,Function],default:null},expandedRowIcon:{type:String,default:null},collapsedRowIcon:{type:String,default:null},expandedRows:{type:[Array,Object],default:null},selection:{type:[Array,Object],default:null},selectionKeys:{type:null,default:null},selectionMode:{type:String,default:null},contextMenu:{type:Boolean,default:!1},contextMenuSelection:{type:Object,default:null},rowClass:{type:null,default:null},rowStyle:{type:null,default:null},rowGroupHeaderStyle:{type:null,default:null},editMode:{type:String,default:null},compareSelectionBy:{type:String,default:"deepEquals"},editingRows:{type:Array,default:null},editingRowKeys:{type:null,default:null},editingMeta:{type:Object,default:null},templates:{type:null,default:null},scrollable:{type:Boolean,default:!1},responsiveLayout:{type:String,default:"stack"},virtualScrollerContentProps:{type:Object,default:null},isVirtualScrollerDisabled:{type:Boolean,default:!1},expandedRowId:{type:String,default:null},nameAttributeSelector:{type:String,default:null}},data:function(){return{d_rowExpanded:!1}},watch:{expandedRows:{deep:!0,immediate:!0,handler:function(e){var n=this;this.d_rowExpanded=this.dataKey?(e==null?void 0:e[jn.resolveFieldData(this.rowData,this.dataKey)])!==void 0:e==null?void 0:e.some(function(r){return n.equals(n.rowData,r)})}}},methods:{columnProp:function(e,n){return jn.getVNodeProp(e,n)},getColumnPT:function(e){var n={parent:{instance:this,props:this.$props,state:this.$data}};return Jt(this.ptm("column.".concat(e),{column:n}),this.ptm("column.".concat(e),n),this.ptmo(this.columnProp({},"pt"),e,n))},getBodyRowPTOptions:function(e){var n,r=(n=this.$parentInstance)===null||n===void 0?void 0:n.$parentInstance;return this.ptm(e,{context:{index:this.rowIndex,selectable:(r==null?void 0:r.rowHover)||(r==null?void 0:r.selectionMode),selected:this.isSelected,stripedRows:(r==null?void 0:r.stripedRows)||!1}})},shouldRenderBodyCell:function(e){var n=this.columnProp(e,"hidden");if(this.rowGroupMode&&!n){var r=this.columnProp(e,"field");if(this.rowGroupMode==="subheader")return this.groupRowsBy!==r;if(this.rowGroupMode==="rowspan")if(this.isGrouped(e)){var i=this.value[this.rowIndex-1];if(i){var a=jn.resolveFieldData(this.value[this.rowIndex],r),o=jn.resolveFieldData(i,r);return a!==o}else return!0}else return!0}else return!n},calculateRowGroupSize:function(e){if(this.isGrouped(e)){for(var n=this.rowIndex,r=this.columnProp(e,"field"),i=jn.resolveFieldData(this.value[n],r),a=i,o=0;i===a;){o++;var l=this.value[++n];if(l)a=jn.resolveFieldData(l,r);else break}return o===1?null:o}else return null},isGrouped:function(e){var n=this.columnProp(e,"field");return this.groupRowsBy&&n?Array.isArray(this.groupRowsBy)?this.groupRowsBy.indexOf(n)>-1:this.groupRowsBy===n:!1},findIndexInSelection:function(e){return this.findIndex(e,this.selection)},findIndex:function(e,n){var r=-1;if(n&&n.length){for(var i=0;i<n.length;i++)if(this.equals(e,n[i])){r=i;break}}return r},equals:function(e,n){return this.compareSelectionBy==="equals"?e===n:jn.equals(e,n,this.dataKey)},onRowGroupToggle:function(e){this.$emit("rowgroup-toggle",{originalEvent:e,data:this.rowData})},onRowClick:function(e){this.$emit("row-click",{originalEvent:e,data:this.rowData,index:this.rowIndex})},onRowDblClick:function(e){this.$emit("row-dblclick",{originalEvent:e,data:this.rowData,index:this.rowIndex})},onRowRightClick:function(e){this.$emit("row-rightclick",{originalEvent:e,data:this.rowData,index:this.rowIndex})},onRowTouchEnd:function(e){this.$emit("row-touchend",e)},onRowKeyDown:function(e){this.$emit("row-keydown",{originalEvent:e,data:this.rowData,index:this.rowIndex})},onRowMouseDown:function(e){this.$emit("row-mousedown",e)},onRowDragStart:function(e){this.$emit("row-dragstart",{originalEvent:e,index:this.rowIndex})},onRowDragOver:function(e){this.$emit("row-dragover",{originalEvent:e,index:this.rowIndex})},onRowDragLeave:function(e){this.$emit("row-dragleave",e)},onRowDragEnd:function(e){this.$emit("row-dragend",e)},onRowDrop:function(e){this.$emit("row-drop",e)},onRowToggle:function(e){this.d_rowExpanded=!this.d_rowExpanded,this.$emit("row-toggle",_Z(_Z({},e),{},{expanded:this.d_rowExpanded}))},onRadioChange:function(e){this.$emit("radio-change",e)},onCheckboxChange:function(e){this.$emit("checkbox-change",e)},onCellEditInit:function(e){this.$emit("cell-edit-init",e)},onCellEditComplete:function(e){this.$emit("cell-edit-complete",e)},onCellEditCancel:function(e){this.$emit("cell-edit-cancel",e)},onRowEditInit:function(e){this.$emit("row-edit-init",e)},onRowEditSave:function(e){this.$emit("row-edit-save",e)},onRowEditCancel:function(e){this.$emit("row-edit-cancel",e)},onEditingMetaChange:function(e){this.$emit("editing-meta-change",e)},getVirtualScrollerProp:function(e,n){return n=n||this.virtualScrollerContentProps,n?n[e]:null}},computed:{rowIndex:function(){var e=this.getVirtualScrollerProp("getItemOptions");return e?e(this.index).index:this.index},rowStyles:function(){var e;return(e=this.rowStyle)===null||e===void 0?void 0:e.call(this,this.rowData)},rowClasses:function(){var e=[],n=null;if(this.rowClass){var r=this.rowClass(this.rowData);r&&e.push(r)}if(this.columns){var i=ute(this.columns),a;try{for(i.s();!(a=i.n()).done;){var o=a.value,l=this.columnProp(o,"selectionMode");if(jn.isNotEmpty(l)&&l==="multiple"){n=l;break}}}catch(s){i.e(s)}finally{i.f()}}return[this.cx("row",{rowData:this.rowData,index:this.rowIndex,columnSelectionMode:n}),e]},rowTabindex:function(){return this.selection===null&&(this.selectionMode==="single"||this.selectionMode==="multiple")&&this.rowIndex===0?0:-1},isRowEditing:function(){return this.rowData&&this.editingRows?this.dataKey?this.editingRowKeys?this.editingRowKeys[jn.resolveFieldData(this.rowData,this.dataKey)]!==void 0:!1:this.findIndex(this.rowData,this.editingRows)>-1:!1},isRowGroupExpanded:function(){if(this.expandableRowGroups&&this.expandedRowGroups){var e=jn.resolveFieldData(this.rowData,this.groupRowsBy);return this.expandedRowGroups.indexOf(e)>-1}return!1},isSelected:function(){return this.rowData&&this.selection?this.dataKey?this.selectionKeys?this.selectionKeys[jn.resolveFieldData(this.rowData,this.dataKey)]!==void 0:!1:this.selection instanceof Array?this.findIndexInSelection(this.rowData)>-1:this.equals(this.rowData,this.selection):!1},isSelectedWithContextMenu:function(){return this.rowData&&this.contextMenuSelection?this.equals(this.rowData,this.contextMenuSelection,this.dataKey):!1},shouldRenderRowGroupHeader:function(){var e=jn.resolveFieldData(this.rowData,this.groupRowsBy),n=this.value[this.rowIndex-1];if(n){var r=jn.resolveFieldData(n,this.groupRowsBy);return e!==r}else return!0},shouldRenderRowGroupFooter:function(){if(this.expandableRowGroups&&!this.isRowGroupExpanded)return!1;var e=jn.resolveFieldData(this.rowData,this.groupRowsBy),n=this.value[this.rowIndex+1];if(n){var r=jn.resolveFieldData(n,this.groupRowsBy);return e!==r}else return!0},columnsLength:function(){var e=this;if(this.columns){var n=0;return this.columns.forEach(function(r){e.columnProp(r,"selectionMode")==="single"&&n--,e.columnProp(r,"hidden")&&n++}),this.columns.length-n}return 0}},components:{DTBodyCell:tW,ChevronDownIcon:P0,ChevronRightIcon:DQ}};function E0(t){"@babel/helpers - typeof";return E0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E0(t)}function $Z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Kh(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?$Z(Object(n),!0).forEach(function(r){pte(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):$Z(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function pte(t,e,n){return e=mte(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function mte(t){var e=bte(t,"string");return E0(e)=="symbol"?e:String(e)}function bte(t,e){if(E0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(E0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var yte=["colspan"],Fte=["tabindex","aria-selected","data-p-index","data-p-selectable-row","data-p-highlight","data-p-highlight-contextmenu"],Qte=["id"],Ute=["colspan"],Rte=["colspan"],Bte=["colspan"];function Zte(t,e,n,r,i,a){var o=Li("ChevronDownIcon"),l=Li("ChevronRightIcon"),s=Li("DTBodyCell");return n.empty?(oe(),Ce("tr",Jt({key:1,class:t.cx("emptyMessage"),role:"row"},t.ptm("emptyMessage")),[Q("td",Jt({colspan:a.columnsLength},Kh(Kh({},a.getColumnPT("bodycell")),t.ptm("emptyMessageCell"))),[n.templates.empty?(oe(),Vn(ea(n.templates.empty),{key:0})):Pt("",!0)],16,Bte)],16)):(oe(),Ce(Er,{key:0},[n.templates.groupheader&&n.rowGroupMode==="subheader"&&a.shouldRenderRowGroupHeader?(oe(),Ce("tr",Jt({key:0,class:t.cx("rowGroupHeader"),style:n.rowGroupHeaderStyle,role:"row"},t.ptm("rowGroupHeader")),[Q("td",Jt({colspan:a.columnsLength-1},Kh(Kh({},a.getColumnPT("bodycell")),t.ptm("rowGroupHeaderCell"))),[n.expandableRowGroups?(oe(),Ce("button",Jt({key:0,class:t.cx("rowGroupToggler"),onClick:e[0]||(e[0]=function(){return a.onRowGroupToggle&&a.onRowGroupToggle.apply(a,arguments)}),type:"button"},t.ptm("rowGroupToggler")),[n.templates.rowgrouptogglericon?(oe(),Vn(ea(n.templates.rowgrouptogglericon),{key:0,expanded:a.isRowGroupExpanded},null,8,["expanded"])):(oe(),Ce(Er,{key:1},[a.isRowGroupExpanded&&n.expandedRowIcon?(oe(),Ce("span",Jt({key:0,class:[t.cx("rowGroupTogglerIcon"),n.expandedRowIcon]},t.ptm("rowGroupTogglerIcon")),null,16)):a.isRowGroupExpanded&&!n.expandedRowIcon?(oe(),Vn(o,Jt({key:1,class:t.cx("rowGroupTogglerIcon")},t.ptm("rowGroupTogglerIcon")),null,16,["class"])):!a.isRowGroupExpanded&&n.collapsedRowIcon?(oe(),Ce("span",Jt({key:2,class:[t.cx("rowGroupTogglerIcon"),n.collapsedRowIcon]},t.ptm("rowGroupTogglerIcon")),null,16)):!a.isRowGroupExpanded&&!n.collapsedRowIcon?(oe(),Vn(l,Jt({key:3,class:t.cx("rowGroupTogglerIcon")},t.ptm("rowGroupTogglerIcon")),null,16,["class"])):Pt("",!0)],64))],16)):Pt("",!0),(oe(),Vn(ea(n.templates.groupheader),{data:n.rowData,index:a.rowIndex},null,8,["data","index"]))],16,yte)],16)):Pt("",!0),!n.expandableRowGroups||a.isRowGroupExpanded?(oe(),Ce("tr",Jt({key:1,class:a.rowClasses,style:a.rowStyles,tabindex:a.rowTabindex,role:"row","aria-selected":n.selectionMode?a.isSelected:null,onClick:e[1]||(e[1]=function(){return a.onRowClick&&a.onRowClick.apply(a,arguments)}),onDblclick:e[2]||(e[2]=function(){return a.onRowDblClick&&a.onRowDblClick.apply(a,arguments)}),onContextmenu:e[3]||(e[3]=function(){return a.onRowRightClick&&a.onRowRightClick.apply(a,arguments)}),onTouchend:e[4]||(e[4]=function(){return a.onRowTouchEnd&&a.onRowTouchEnd.apply(a,arguments)}),onKeydown:e[5]||(e[5]=ud(function(){return a.onRowKeyDown&&a.onRowKeyDown.apply(a,arguments)},["self"])),onMousedown:e[6]||(e[6]=function(){return a.onRowMouseDown&&a.onRowMouseDown.apply(a,arguments)}),onDragstart:e[7]||(e[7]=function(){return a.onRowDragStart&&a.onRowDragStart.apply(a,arguments)}),onDragover:e[8]||(e[8]=function(){return a.onRowDragOver&&a.onRowDragOver.apply(a,arguments)}),onDragleave:e[9]||(e[9]=function(){return a.onRowDragLeave&&a.onRowDragLeave.apply(a,arguments)}),onDragend:e[10]||(e[10]=function(){return a.onRowDragEnd&&a.onRowDragEnd.apply(a,arguments)}),onDrop:e[11]||(e[11]=function(){return a.onRowDrop&&a.onRowDrop.apply(a,arguments)})},a.getBodyRowPTOptions("bodyRow"),{"data-p-index":a.rowIndex,"data-p-selectable-row":!!n.selectionMode,"data-p-highlight":n.selection&&a.isSelected,"data-p-highlight-contextmenu":n.contextMenuSelection&&a.isSelectedWithContextMenu}),[(oe(!0),Ce(Er,null,ia(n.columns,function(d,c){return oe(),Ce(Er,null,[a.shouldRenderBodyCell(d)?(oe(),Vn(s,{key:a.columnProp(d,"columnKey")||a.columnProp(d,"field")||c,rowData:n.rowData,column:d,rowIndex:a.rowIndex,index:c,selected:a.isSelected,frozenRow:n.frozenRow,rowspan:n.rowGroupMode==="rowspan"?a.calculateRowGroupSize(d):null,editMode:n.editMode,editing:n.editMode==="row"&&a.isRowEditing,editingMeta:n.editingMeta,responsiveLayout:n.responsiveLayout,virtualScrollerContentProps:n.virtualScrollerContentProps,ariaControls:n.expandedRowId+"_"+a.rowIndex+"_expansion",name:n.nameAttributeSelector,isRowExpanded:i.d_rowExpanded,expandedRowIcon:n.expandedRowIcon,collapsedRowIcon:n.collapsedRowIcon,onRadioChange:a.onRadioChange,onCheckboxChange:a.onCheckboxChange,onRowToggle:a.onRowToggle,onCellEditInit:a.onCellEditInit,onCellEditComplete:a.onCellEditComplete,onCellEditCancel:a.onCellEditCancel,onRowEditInit:a.onRowEditInit,onRowEditSave:a.onRowEditSave,onRowEditCancel:a.onRowEditCancel,onEditingMetaChange:a.onEditingMetaChange,unstyled:t.unstyled,pt:t.pt},null,8,["rowData","column","rowIndex","index","selected","frozenRow","rowspan","editMode","editing","editingMeta","responsiveLayout","virtualScrollerContentProps","ariaControls","name","isRowExpanded","expandedRowIcon","collapsedRowIcon","onRadioChange","onCheckboxChange","onRowToggle","onCellEditInit","onCellEditComplete","onCellEditCancel","onRowEditInit","onRowEditSave","onRowEditCancel","onEditingMetaChange","unstyled","pt"])):Pt("",!0)],64)}),256))],16,Fte)):Pt("",!0),n.templates.expansion&&n.expandedRows&&i.d_rowExpanded?(oe(),Ce("tr",Jt({key:2,id:n.expandedRowId+"_"+a.rowIndex+"_expansion",class:t.cx("rowExpansion"),role:"row"},t.ptm("rowExpansion")),[Q("td",Jt({colspan:a.columnsLength},Kh(Kh({},a.getColumnPT("bodycell")),t.ptm("rowExpansionCell"))),[(oe(),Vn(ea(n.templates.expansion),{data:n.rowData,index:a.rowIndex},null,8,["data","index"]))],16,Ute)],16,Qte)):Pt("",!0),n.templates.groupfooter&&n.rowGroupMode==="subheader"&&a.shouldRenderRowGroupFooter?(oe(),Ce("tr",Jt({key:3,class:t.cx("rowGroupFooter"),role:"row"},t.ptm("rowGroupFooter")),[Q("td",Jt({colspan:a.columnsLength-1},Kh(Kh({},a.getColumnPT("bodycell")),t.ptm("rowGroupFooterCell"))),[(oe(),Vn(ea(n.templates.groupfooter),{data:n.rowData,index:a.rowIndex},null,8,["data","index"]))],16,Rte)],16)):Pt("",!0)],64))}nW.render=Zte;var rW={name:"TableBody",hostName:"DataTable",extends:nl,emits:["rowgroup-toggle","row-click","row-dblclick","row-rightclick","row-touchend","row-keydown","row-mousedown","row-dragstart","row-dragover","row-dragleave","row-dragend","row-drop","row-toggle","radio-change","checkbox-change","cell-edit-init","cell-edit-complete","cell-edit-cancel","row-edit-init","row-edit-save","row-edit-cancel","editing-meta-change"],props:{value:{type:Array,default:null},columns:{type:null,default:null},frozenRow:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},rowGroupMode:{type:String,default:null},groupRowsBy:{type:[Array,String,Function],default:null},expandableRowGroups:{type:Boolean,default:!1},expandedRowGroups:{type:Array,default:null},first:{type:Number,default:0},dataKey:{type:[String,Function],default:null},expandedRowIcon:{type:String,default:null},collapsedRowIcon:{type:String,default:null},expandedRows:{type:[Array,Object],default:null},selection:{type:[Array,Object],default:null},selectionKeys:{type:null,default:null},selectionMode:{type:String,default:null},contextMenu:{type:Boolean,default:!1},contextMenuSelection:{type:Object,default:null},rowClass:{type:null,default:null},rowStyle:{type:null,default:null},editMode:{type:String,default:null},compareSelectionBy:{type:String,default:"deepEquals"},editingRows:{type:Array,default:null},editingRowKeys:{type:null,default:null},editingMeta:{type:Object,default:null},templates:{type:null,default:null},scrollable:{type:Boolean,default:!1},responsiveLayout:{type:String,default:"stack"},virtualScrollerContentProps:{type:Object,default:null},isVirtualScrollerDisabled:{type:Boolean,default:!1}},data:function(){return{rowGroupHeaderStyleObject:{}}},mounted:function(){this.frozenRow&&this.updateFrozenRowStickyPosition(),this.scrollable&&this.rowGroupMode==="subheader"&&this.updateFrozenRowGroupHeaderStickyPosition()},updated:function(){this.frozenRow&&this.updateFrozenRowStickyPosition(),this.scrollable&&this.rowGroupMode==="subheader"&&this.updateFrozenRowGroupHeaderStickyPosition()},methods:{getRowKey:function(e,n){return this.dataKey?jn.resolveFieldData(e,this.dataKey):n},updateFrozenRowStickyPosition:function(){this.$el.style.top=Wn.getOuterHeight(this.$el.previousElementSibling)+"px"},updateFrozenRowGroupHeaderStickyPosition:function(){var e=Wn.getOuterHeight(this.$el.previousElementSibling);this.rowGroupHeaderStyleObject.top=e+"px"},getVirtualScrollerProp:function(e,n){return n=n||this.virtualScrollerContentProps,n?n[e]:null},bodyRef:function(e){var n=this.getVirtualScrollerProp("contentRef");n&&n(e)}},computed:{rowGroupHeaderStyle:function(){return this.scrollable?{top:this.rowGroupHeaderStyleObject.top}:null},bodyContentStyle:function(){return this.getVirtualScrollerProp("contentStyle")},ptmTBodyOptions:function(){var e;return{context:{scrollable:(e=this.$parentInstance)===null||e===void 0||(e=e.$parentInstance)===null||e===void 0?void 0:e.scrollable}}},expandedRowId:function(){return Nu()},nameAttributeSelector:function(){return Nu()}},components:{DTBodyRow:nW}};function Ite(t,e,n,r,i,a){var o=Li("DTBodyRow");return oe(),Ce("tbody",Jt({ref:a.bodyRef,class:t.cx("tbody"),role:"rowgroup",style:a.bodyContentStyle},t.ptm("tbody",a.ptmTBodyOptions)),[n.empty?(oe(),Vn(o,{key:1,empty:n.empty,columns:n.columns,templates:n.templates},null,8,["empty","columns","templates"])):(oe(!0),Ce(Er,{key:0},ia(n.value,function(l,s){return oe(),Vn(o,{key:a.getRowKey(l,s),rowData:l,index:s,value:n.value,columns:n.columns,frozenRow:n.frozenRow,empty:n.empty,first:n.first,dataKey:n.dataKey,selection:n.selection,selectionKeys:n.selectionKeys,selectionMode:n.selectionMode,contextMenu:n.contextMenu,contextMenuSelection:n.contextMenuSelection,rowGroupMode:n.rowGroupMode,groupRowsBy:n.groupRowsBy,expandableRowGroups:n.expandableRowGroups,rowClass:n.rowClass,rowStyle:n.rowStyle,editMode:n.editMode,compareSelectionBy:n.compareSelectionBy,scrollable:n.scrollable,expandedRowIcon:n.expandedRowIcon,collapsedRowIcon:n.collapsedRowIcon,expandedRows:n.expandedRows,expandedRowGroups:n.expandedRowGroups,editingRows:n.editingRows,editingRowKeys:n.editingRowKeys,templates:n.templates,responsiveLayout:n.responsiveLayout,virtualScrollerContentProps:n.virtualScrollerContentProps,isVirtualScrollerDisabled:n.isVirtualScrollerDisabled,editingMeta:n.editingMeta,rowGroupHeaderStyle:a.rowGroupHeaderStyle,expandedRowId:a.expandedRowId,nameAttributeSelector:a.nameAttributeSelector,onRowgroupToggle:e[0]||(e[0]=function(d){return t.$emit("rowgroup-toggle",d)}),onRowClick:e[1]||(e[1]=function(d){return t.$emit("row-click",d)}),onRowDblclick:e[2]||(e[2]=function(d){return t.$emit("row-dblclick",d)}),onRowRightclick:e[3]||(e[3]=function(d){return t.$emit("row-rightclick",d)}),onRowTouchend:e[4]||(e[4]=function(d){return t.$emit("row-touchend",d)}),onRowKeydown:e[5]||(e[5]=function(d){return t.$emit("row-keydown",d)}),onRowMousedown:e[6]||(e[6]=function(d){return t.$emit("row-mousedown",d)}),onRowDragstart:e[7]||(e[7]=function(d){return t.$emit("row-dragstart",d)}),onRowDragover:e[8]||(e[8]=function(d){return t.$emit("row-dragover",d)}),onRowDragleave:e[9]||(e[9]=function(d){return t.$emit("row-dragleave",d)}),onRowDragend:e[10]||(e[10]=function(d){return t.$emit("row-dragend",d)}),onRowDrop:e[11]||(e[11]=function(d){return t.$emit("row-drop",d)}),onRowToggle:e[12]||(e[12]=function(d){return t.$emit("row-toggle",d)}),onRadioChange:e[13]||(e[13]=function(d){return t.$emit("radio-change",d)}),onCheckboxChange:e[14]||(e[14]=function(d){return t.$emit("checkbox-change",d)}),onCellEditInit:e[15]||(e[15]=function(d){return t.$emit("cell-edit-init",d)}),onCellEditComplete:e[16]||(e[16]=function(d){return t.$emit("cell-edit-complete",d)}),onCellEditCancel:e[17]||(e[17]=function(d){return t.$emit("cell-edit-cancel",d)}),onRowEditInit:e[18]||(e[18]=function(d){return t.$emit("row-edit-init",d)}),onRowEditSave:e[19]||(e[19]=function(d){return t.$emit("row-edit-save",d)}),onRowEditCancel:e[20]||(e[20]=function(d){return t.$emit("row-edit-cancel",d)}),onEditingMetaChange:e[21]||(e[21]=function(d){return t.$emit("editing-meta-change",d)}),unstyled:t.unstyled,pt:t.pt},null,8,["rowData","index","value","columns","frozenRow","empty","first","dataKey","selection","selectionKeys","selectionMode","contextMenu","contextMenuSelection","rowGroupMode","groupRowsBy","expandableRowGroups","rowClass","rowStyle","editMode","compareSelectionBy","scrollable","expandedRowIcon","collapsedRowIcon","expandedRows","expandedRowGroups","editingRows","editingRowKeys","templates","responsiveLayout","virtualScrollerContentProps","isVirtualScrollerDisabled","editingMeta","rowGroupHeaderStyle","expandedRowId","nameAttributeSelector","unstyled","pt"])}),128))],16)}rW.render=Ite;var iW={name:"FooterCell",hostName:"DataTable",extends:nl,props:{column:{type:Object,default:null},index:{type:Number,default:null}},data:function(){return{styleObject:{}}},mounted:function(){this.columnProp("frozen")&&this.updateStickyPosition()},updated:function(){this.columnProp("frozen")&&this.updateStickyPosition()},methods:{columnProp:function(e){return jn.getVNodeProp(this.column,e)},getColumnPT:function(e){var n,r,i={props:this.column.props,parent:{instance:this,props:this.$props,state:this.$data},context:{index:this.index,size:(n=this.$parentInstance)===null||n===void 0||(n=n.$parentInstance)===null||n===void 0?void 0:n.size,showGridlines:((r=this.$parentInstance)===null||r===void 0||(r=r.$parentInstance)===null||r===void 0?void 0:r.showGridlines)||!1}};return Jt(this.ptm("column.".concat(e),{column:i}),this.ptm("column.".concat(e),i),this.ptmo(this.getColumnProp(),e,i))},getColumnProp:function(){return this.column.props&&this.column.props.pt?this.column.props.pt:void 0},updateStickyPosition:function(){if(this.columnProp("frozen")){var e=this.columnProp("alignFrozen");if(e==="right"){var n=0,r=Wn.getNextElementSibling(this.$el,'[data-p-frozen-column="true"]');r&&(n=Wn.getOuterWidth(r)+parseFloat(r.style.right||0)),this.styleObject.right=n+"px"}else{var i=0,a=Wn.getPreviousElementSibling(this.$el,'[data-p-frozen-column="true"]');a&&(i=Wn.getOuterWidth(a)+parseFloat(a.style.left||0)),this.styleObject.left=i+"px"}}}},computed:{containerClass:function(){return[this.columnProp("footerClass"),this.columnProp("class"),this.cx("footerCell")]},containerStyle:function(){var e=this.columnProp("footerStyle"),n=this.columnProp("style");return this.columnProp("frozen")?[n,e,this.styleObject]:[n,e]}}};function S0(t){"@babel/helpers - typeof";return S0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S0(t)}function qZ(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function eI(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?qZ(Object(n),!0).forEach(function(r){Cte(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):qZ(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Cte(t,e,n){return e=vte(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function vte(t){var e=Vte(t,"string");return S0(e)=="symbol"?e:String(e)}function Vte(t,e){if(S0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(S0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Ete=["colspan","rowspan","data-p-frozen-column"];function Ste(t,e,n,r,i,a){return oe(),Ce("td",Jt({style:a.containerStyle,class:a.containerClass,role:"cell",colspan:a.columnProp("colspan"),rowspan:a.columnProp("rowspan")},eI(eI({},a.getColumnPT("root")),a.getColumnPT("footerCell")),{"data-p-frozen-column":a.columnProp("frozen")}),[n.column.children&&n.column.children.footer?(oe(),Vn(ea(n.column.children.footer),{key:0,column:n.column},null,8,["column"])):Pt("",!0),Ni(" "+ce(a.columnProp("footer")),1)],16,Ete)}iW.render=Ste;function Wte(t,e){var n=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Nte(t))||e){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(d){throw d},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,l;return{s:function(){n=n.call(t)},n:function(){var d=n.next();return a=d.done,d},e:function(d){o=!0,l=d},f:function(){try{!a&&n.return!=null&&n.return()}finally{if(o)throw l}}}}function Nte(t,e){if(t){if(typeof t=="string")return tI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tI(t,e)}}function tI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var aW={name:"TableFooter",hostName:"DataTable",extends:nl,props:{columnGroup:{type:null,default:null},columns:{type:Object,default:null}},provide:function(){return{$rows:this.d_footerRows,$columns:this.d_footerColumns}},data:function(){return{d_footerRows:new Up({type:"Row"}),d_footerColumns:new Up({type:"Column"})}},beforeUnmount:function(){this.d_footerRows.clear(),this.d_footerColumns.clear()},methods:{columnProp:function(e,n){return jn.getVNodeProp(e,n)},getColumnGroupPT:function(e){var n={props:this.getColumnGroupProps(),parent:{instance:this,props:this.$props,state:this.$data},context:{type:"footer",scrollable:this.ptmTFootOptions.context.scrollable}};return Jt(this.ptm("columnGroup.".concat(e),{columnGroup:n}),this.ptm("columnGroup.".concat(e),n),this.ptmo(this.getColumnGroupProps(),e,n))},getColumnGroupProps:function(){return this.columnGroup&&this.columnGroup.props&&this.columnGroup.props.pt?this.columnGroup.props.pt:void 0},getRowPT:function(e,n,r){var i={props:e.props,parent:{instance:this,props:this.$props,state:this.$data},context:{index:r}};return Jt(this.ptm("row.".concat(n),{row:i}),this.ptm("row.".concat(n),i),this.ptmo(this.getRowProp(e),n,i))},getRowProp:function(e){return e.props&&e.props.pt?e.props.pt:void 0},getFooterRows:function(){var e;return(e=this.d_footerRows)===null||e===void 0?void 0:e.get(this.columnGroup,this.columnGroup.children)},getFooterColumns:function(e){var n;return(n=this.d_footerColumns)===null||n===void 0?void 0:n.get(e,e.children)}},computed:{hasFooter:function(){var e=!1;if(this.columnGroup)e=!0;else if(this.columns){var n=Wte(this.columns),r;try{for(n.s();!(r=n.n()).done;){var i=r.value;if(this.columnProp(i,"footer")||i.children&&i.children.footer){e=!0;break}}}catch(a){n.e(a)}finally{n.f()}}return e},ptmTFootOptions:function(){var e;return{context:{scrollable:(e=this.$parentInstance)===null||e===void 0||(e=e.$parentInstance)===null||e===void 0?void 0:e.scrollable}}}},components:{DTFooterCell:iW}};function W0(t){"@babel/helpers - typeof";return W0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},W0(t)}function nI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Qb(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?nI(Object(n),!0).forEach(function(r){Gte(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):nI(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Gte(t,e,n){return e=Jte(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Jte(t){var e=Tte(t,"string");return W0(e)=="symbol"?e:String(e)}function Tte(t,e){if(W0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(W0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Xte(t,e,n,r,i,a){var o=Li("DTFooterCell");return a.hasFooter?(oe(),Ce("tfoot",Jt({key:0,class:t.cx("tfoot"),style:t.sx("tfoot"),role:"rowgroup"},n.columnGroup?Qb(Qb({},t.ptm("tfoot",a.ptmTFootOptions)),a.getColumnGroupPT("root")):t.ptm("tfoot",a.ptmTFootOptions),{"data-pc-section":"tfoot"}),[n.columnGroup?(oe(!0),Ce(Er,{key:1},ia(a.getFooterRows(),function(l,s){return oe(),Ce("tr",Jt({key:s,role:"row"},Qb(Qb({},t.ptm("footerRow")),a.getRowPT(l,"root",s))),[(oe(!0),Ce(Er,null,ia(a.getFooterColumns(l),function(d,c){return oe(),Ce(Er,{key:a.columnProp(d,"columnKey")||a.columnProp(d,"field")||c},[a.columnProp(d,"hidden")?Pt("",!0):(oe(),Vn(o,{key:0,column:d,index:s,pt:t.pt},null,8,["column","index","pt"]))],64)}),128))],16)}),128)):(oe(),Ce("tr",Jt({key:0,role:"row"},t.ptm("footerRow")),[(oe(!0),Ce(Er,null,ia(n.columns,function(l,s){return oe(),Ce(Er,{key:a.columnProp(l,"columnKey")||a.columnProp(l,"field")||s},[a.columnProp(l,"hidden")?Pt("",!0):(oe(),Vn(o,{key:0,column:l,pt:t.pt},null,8,["column","pt"]))],64)}),128))],16))],16)):Pt("",!0)}aW.render=Xte;function N0(t){"@babel/helpers - typeof";return N0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N0(t)}function rI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function $g(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?rI(Object(n),!0).forEach(function(r){kte(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):rI(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function kte(t,e,n){return e=wte(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function wte(t){var e=Yte(t,"string");return N0(e)=="symbol"?e:String(e)}function Yte(t,e){if(N0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(N0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var MQ={name:"ColumnFilter",hostName:"DataTable",extends:nl,emits:["filter-change","filter-apply","operator-change","matchmode-change","constraint-add","constraint-remove","filter-clear","apply-click"],props:{field:{type:String,default:null},type:{type:String,default:"text"},display:{type:String,default:null},showMenu:{type:Boolean,default:!0},matchMode:{type:String,default:null},showOperator:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showApplyButton:{type:Boolean,default:!0},showMatchModes:{type:Boolean,default:!0},showAddButton:{type:Boolean,default:!0},matchModeOptions:{type:Array,default:null},maxConstraints:{type:Number,default:2},filterElement:{type:Function,default:null},filterHeaderTemplate:{type:Function,default:null},filterFooterTemplate:{type:Function,default:null},filterClearTemplate:{type:Function,default:null},filterApplyTemplate:{type:Function,default:null},filterIconTemplate:{type:Function,default:null},filterAddIconTemplate:{type:Function,default:null},filterRemoveIconTemplate:{type:Function,default:null},filterClearIconTemplate:{type:Function,default:null},filters:{type:Object,default:null},filtersStore:{type:Object,default:null},filterMenuClass:{type:String,default:null},filterMenuStyle:{type:null,default:null},filterInputProps:{type:null,default:null},column:null},data:function(){return{id:this.$attrs.id,overlayVisible:!1,defaultMatchMode:null,defaultOperator:null}},watch:{"$attrs.id":function(e){this.id=e||Nu()}},overlay:null,selfClick:!1,overlayEventListener:null,beforeUnmount:function(){this.overlayEventListener&&(gh.off("overlay-click",this.overlayEventListener),this.overlayEventListener=null),this.overlay&&(xu.clear(this.overlay),this.onOverlayHide())},mounted:function(){if(this.id=this.id||Nu(),this.filters&&this.filters[this.field]){var e=this.filters[this.field];e.operator?(this.defaultMatchMode=e.constraints[0].matchMode,this.defaultOperator=e.operator):this.defaultMatchMode=this.filters[this.field].matchMode}},methods:{getColumnPT:function(e,n){var r=$g({props:this.column.props,parent:{instance:this,props:this.$props,state:this.$data}},n);return Jt(this.ptm("column.".concat(e),{column:r}),this.ptm("column.".concat(e),r),this.ptmo(this.getColumnProp(),e,r))},getColumnProp:function(){return this.column.props&&this.column.props.pt?this.column.props.pt:void 0},ptmFilterRowItemOptions:function(e){return{context:{highlighted:e&&this.isRowMatchModeSelected(e.value)}}},clearFilter:function(){var e=$g({},this.filters);e[this.field].operator?(e[this.field].constraints.splice(1),e[this.field].operator=this.defaultOperator,e[this.field].constraints[0]={value:null,matchMode:this.defaultMatchMode}):(e[this.field].value=null,e[this.field].matchMode=this.defaultMatchMode),this.$emit("filter-clear"),this.$emit("filter-change",e),this.$emit("filter-apply"),this.hide()},applyFilter:function(){this.$emit("apply-click",{field:this.field,constraints:this.filters[this.field]}),this.$emit("filter-apply"),this.hide()},hasFilter:function(){if(this.filtersStore){var e=this.filtersStore[this.field];if(e)return e.operator?!this.isFilterBlank(e.constraints[0].value):!this.isFilterBlank(e.value)}return!1},hasRowFilter:function(){return this.filters[this.field]&&!this.isFilterBlank(this.filters[this.field].value)},isFilterBlank:function(e){return e!=null?typeof e=="string"&&e.trim().length==0||e instanceof Array&&e.length==0:!0},toggleMenu:function(e){this.overlayVisible=!this.overlayVisible,e.preventDefault()},onToggleButtonKeyDown:function(e){switch(e.code){case"Enter":case"NumpadEnter":case"Space":this.toggleMenu(e);break;case"Escape":this.overlayVisible=!1;break}},onRowMatchModeChange:function(e){var n=$g({},this.filters);n[this.field].matchMode=e,this.$emit("matchmode-change",{field:this.field,matchMode:e}),this.$emit("filter-change",n),this.$emit("filter-apply"),this.hide()},onRowMatchModeKeyDown:function(e){var n=e.target;switch(e.code){case"ArrowDown":var r=this.findNextItem(n);r&&(n.removeAttribute("tabindex"),r.tabIndex="0",r.focus()),e.preventDefault();break;case"ArrowUp":var i=this.findPrevItem(n);i&&(n.removeAttribute("tabindex"),i.tabIndex="0",i.focus()),e.preventDefault();break}},isRowMatchModeSelected:function(e){return this.filters[this.field].matchMode===e},onOperatorChange:function(e){var n=$g({},this.filters);n[this.field].operator=e,this.$emit("filter-change",n),this.$emit("operator-change",{field:this.field,operator:e}),this.showApplyButton||this.$emit("filter-apply")},onMenuMatchModeChange:function(e,n){var r=$g({},this.filters);r[this.field].constraints[n].matchMode=e,this.$emit("matchmode-change",{field:this.field,matchMode:e,index:n}),this.showApplyButton||this.$emit("filter-apply")},addConstraint:function(){var e=$g({},this.filters),n={value:null,matchMode:this.defaultMatchMode};e[this.field].constraints.push(n),this.$emit("constraint-add",{field:this.field,constraing:n}),this.$emit("filter-change",e),this.showApplyButton||this.$emit("filter-apply")},removeConstraint:function(e){var n=$g({},this.filters),r=n[this.field].constraints.splice(e,1);this.$emit("constraint-remove",{field:this.field,constraing:r}),this.$emit("filter-change",n),this.showApplyButton||this.$emit("filter-apply")},filterCallback:function(){this.$emit("filter-apply")},findNextItem:function(e){var n=e.nextElementSibling;return n?Wn.getAttribute(n,"data-pc-section")==="filterseparator"?this.findNextItem(n):n:e.parentElement.firstElementChild},findPrevItem:function(e){var n=e.previousElementSibling;return n?Wn.getAttribute(n,"data-pc-section")==="filterseparator"?this.findPrevItem(n):n:e.parentElement.lastElementChild},hide:function(){this.overlayVisible=!1,Wn.focus(this.$refs.icon)},onContentClick:function(e){this.selfClick=!0,gh.emit("overlay-click",{originalEvent:e,target:this.overlay})},onContentMouseDown:function(){this.selfClick=!0},onOverlayEnter:function(e){var n=this;this.filterMenuStyle&&Wn.applyStyle(this.overlay,this.filterMenuStyle),xu.set("overlay",e,this.$primevue.config.zIndex.overlay),Wn.addStyles(e,{position:"absolute",top:"0",left:"0"}),Wn.absolutePosition(this.overlay,this.$refs.icon),this.bindOutsideClickListener(),this.bindScrollListener(),this.bindResizeListener(),this.overlayEventListener=function(r){n.isOutsideClicked(r.target)||(n.selfClick=!0)},gh.on("overlay-click",this.overlayEventListener)},onOverlayAfterEnter:function(){var e;(e=this.overlay)===null||e===void 0||(e=e.$focustrap)===null||e===void 0||e.autoFocus()},onOverlayLeave:function(){this.onOverlayHide()},onOverlayAfterLeave:function(e){xu.clear(e)},onOverlayHide:function(){this.unbindOutsideClickListener(),this.unbindResizeListener(),this.unbindScrollListener(),this.overlay=null,gh.off("overlay-click",this.overlayEventListener),this.overlayEventListener=null},overlayRef:function(e){this.overlay=e},isOutsideClicked:function(e){return!this.isTargetClicked(e)&&this.overlay&&!(this.overlay.isSameNode(e)||this.overlay.contains(e))},isTargetClicked:function(e){return this.$refs.icon&&(this.$refs.icon.isSameNode(e)||this.$refs.icon.contains(e))},bindOutsideClickListener:function(){var e=this;this.outsideClickListener||(this.outsideClickListener=function(n){e.overlayVisible&&!e.selfClick&&e.isOutsideClicked(n.target)&&(e.overlayVisible=!1),e.selfClick=!1},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener:function(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null,this.selfClick=!1)},bindScrollListener:function(){var e=this;this.scrollHandler||(this.scrollHandler=new ZQ(this.$refs.icon,function(){e.overlayVisible&&e.hide()})),this.scrollHandler.bindScrollListener()},unbindScrollListener:function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},bindResizeListener:function(){var e=this;this.resizeListener||(this.resizeListener=function(){e.overlayVisible&&!Wn.isTouchDevice()&&e.hide()},window.addEventListener("resize",this.resizeListener))},unbindResizeListener:function(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}},computed:{showMenuButton:function(){return this.showMenu&&(this.display==="row"?this.type!=="boolean":!0)},overlayId:function(){return this.id+"_overlay"},matchModes:function(){var e=this;return this.matchModeOptions||this.$primevue.config.filterMatchModeOptions[this.type].map(function(n){return{label:e.$primevue.config.locale[n],value:n}})},isShowMatchModes:function(){return this.type!=="boolean"&&this.showMatchModes&&this.matchModes},operatorOptions:function(){return[{label:this.$primevue.config.locale.matchAll,value:ry.AND},{label:this.$primevue.config.locale.matchAny,value:ry.OR}]},noFilterLabel:function(){return this.$primevue.config.locale?this.$primevue.config.locale.noFilter:void 0},isShowOperator:function(){return this.showOperator&&this.filters[this.field].operator},operator:function(){return this.filters[this.field].operator},fieldConstraints:function(){return this.filters[this.field].constraints||[this.filters[this.field]]},showRemoveIcon:function(){return this.fieldConstraints.length>1},removeRuleButtonLabel:function(){return this.$primevue.config.locale?this.$primevue.config.locale.removeRule:void 0},addRuleButtonLabel:function(){return this.$primevue.config.locale?this.$primevue.config.locale.addRule:void 0},isShowAddConstraint:function(){return this.showAddButton&&this.filters[this.field].operator&&this.fieldConstraints&&this.fieldConstraints.length<this.maxConstraints},clearButtonLabel:function(){return this.$primevue.config.locale?this.$primevue.config.locale.clear:void 0},applyButtonLabel:function(){return this.$primevue.config.locale?this.$primevue.config.locale.apply:void 0},filterMenuButtonAriaLabel:function(){return this.$primevue.config.locale?this.overlayVisible?this.$primevue.config.locale.showFilterMenu:this.$primevue.config.locale.hideFilterMenu:void 0},filterOperatorAriaLabel:function(){return this.$primevue.config.locale?this.$primevue.config.locale.filterOperator:void 0},filterConstraintAriaLabel:function(){return this.$primevue.config.locale?this.$primevue.config.locale.filterConstraint:void 0},ptmHeaderFilterClearParams:function(){return{context:{hidden:this.hasRowFilter()}}},ptmFilterMenuParams:function(){return{context:{overlayVisible:this.overlayVisible,active:this.hasFilter()}}}},components:{CFDropdown:Yy,CFButton:wQ,Portal:O0,FilterSlashIcon:jS,FilterIcon:zS,TrashIcon:$S,PlusIcon:_S},directives:{focustrap:vee}};function G0(t){"@babel/helpers - typeof";return G0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},G0(t)}function iI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function aI(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?iI(Object(n),!0).forEach(function(r){Dte(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):iI(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Dte(t,e,n){return e=Mte(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Mte(t){var e=Lte(t,"string");return G0(e)=="symbol"?e:String(e)}function Lte(t,e){if(G0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(G0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Hte=["aria-label","aria-expanded","aria-controls"],xte=["id","aria-modal"],Ote=["onClick","onKeydown","tabindex"];function Kte(t,e,n,r,i,a){var o=Li("CFDropdown"),l=Li("CFButton"),s=Li("Portal"),d=mf("focustrap");return oe(),Ce("div",Jt({class:t.cx("columnFilter")},a.getColumnPT("columnFilter")),[n.display==="row"?(oe(),Ce("div",Jt({key:0,class:t.cx("filterInput")},aI(aI({},n.filterInputProps),a.getColumnPT("filterInput"))),[(oe(),Vn(ea(n.filterElement),{field:n.field,filterModel:n.filters[n.field],filterCallback:a.filterCallback},null,8,["field","filterModel","filterCallback"]))],16)):Pt("",!0),a.showMenuButton?(oe(),Ce("button",Jt({key:1,ref:"icon",type:"button","aria-label":a.filterMenuButtonAriaLabel,"aria-haspopup":"true","aria-expanded":i.overlayVisible,"aria-controls":a.overlayId,class:t.cx("filterMenuButton"),onClick:e[0]||(e[0]=function(c){return a.toggleMenu(c)}),onKeydown:e[1]||(e[1]=function(c){return a.onToggleButtonKeyDown(c)})},a.getColumnPT("filterMenuButton",a.ptmFilterMenuParams)),[(oe(),Vn(ea(n.filterIconTemplate||"FilterIcon"),oA(Jm(a.getColumnPT("filterMenuIcon"))),null,16))],16,Hte)):Pt("",!0),n.showClearButton&&n.display==="row"?(oe(),Ce("button",Jt({key:2,class:t.cx("headerFilterClearButton"),type:"button",onClick:e[2]||(e[2]=function(c){return a.clearFilter()})},a.getColumnPT("headerFilterClearButton",a.ptmHeaderFilterClearParams)),[(oe(),Vn(ea(n.filterClearIconTemplate||"FilterSlashIcon"),oA(Jm(a.getColumnPT("filterClearIcon"))),null,16))],16)):Pt("",!0),Fn(s,null,{default:Yr(function(){return[Fn(Cp,Jt({name:"p-connected-overlay",onEnter:a.onOverlayEnter,onAfterEnter:a.onOverlayAfterEnter,onLeave:a.onOverlayLeave,onAfterLeave:a.onOverlayAfterLeave},a.getColumnPT("transition")),{default:Yr(function(){return[i.overlayVisible?br((oe(),Ce("div",Jt({key:0,ref:a.overlayRef,id:a.overlayId,"aria-modal":i.overlayVisible,role:"dialog",class:[t.cx("filterOverlay"),n.filterMenuClass],onKeydown:e[10]||(e[10]=dA(function(){return a.hide&&a.hide.apply(a,arguments)},["escape"])),onClick:e[11]||(e[11]=function(){return a.onContentClick&&a.onContentClick.apply(a,arguments)}),onMousedown:e[12]||(e[12]=function(){return a.onContentMouseDown&&a.onContentMouseDown.apply(a,arguments)})},a.getColumnPT("filterOverlay")),[(oe(),Vn(ea(n.filterHeaderTemplate),{field:n.field,filterModel:n.filters[n.field],filterCallback:a.filterCallback},null,8,["field","filterModel","filterCallback"])),n.display==="row"?(oe(),Ce("ul",Jt({key:0,class:t.cx("filterRowItems")},a.getColumnPT("filterRowItems")),[(oe(!0),Ce(Er,null,ia(a.matchModes,function(c,u){return oe(),Ce("li",Jt({key:c.label,class:t.cx("filterRowItem",{matchMode:c}),onClick:function(f){return a.onRowMatchModeChange(c.value)},onKeydown:[e[3]||(e[3]=function(h){return a.onRowMatchModeKeyDown(h)}),dA(ud(function(h){return a.onRowMatchModeChange(c.value)},["prevent"]),["enter"])],tabindex:u===0?"0":null},a.getColumnPT("filterRowItem",a.ptmFilterRowItemOptions(c))),ce(c.label),17,Ote)}),128)),Q("li",Jt({class:t.cx("filterSeparator")},a.getColumnPT("filterSeparator")),null,16),Q("li",Jt({class:t.cx("filterRowItem"),onClick:e[4]||(e[4]=function(c){return a.clearFilter()}),onKeydown:[e[5]||(e[5]=function(c){return a.onRowMatchModeKeyDown(c)}),e[6]||(e[6]=dA(function(c){return t.onRowClearItemClick()},["enter"]))]},a.getColumnPT("filterRowItem")),ce(a.noFilterLabel),17)],16)):(oe(),Ce(Er,{key:1},[a.isShowOperator?(oe(),Ce("div",Jt({key:0,class:t.cx("filterOperator")},a.getColumnPT("filterOperator")),[Fn(o,{options:a.operatorOptions,modelValue:a.operator,"aria-label":a.filterOperatorAriaLabel,class:Hr(t.cx("filterOperatorDropdown")),optionLabel:"label",optionValue:"value","onUpdate:modelValue":e[7]||(e[7]=function(c){return a.onOperatorChange(c)}),unstyled:t.unstyled,pt:a.getColumnPT("filterOperatorDropdown")},null,8,["options","modelValue","aria-label","class","unstyled","pt"])],16)):Pt("",!0),Q("div",Jt({class:t.cx("filterConstraints")},a.getColumnPT("filterConstraints")),[(oe(!0),Ce(Er,null,ia(a.fieldConstraints,function(c,u){return oe(),Ce("div",Jt({key:u,class:t.cx("filterConstraint")},a.getColumnPT("filterConstraint")),[a.isShowMatchModes?(oe(),Vn(o,{key:0,options:a.matchModes,modelValue:c.matchMode,class:Hr(t.cx("filterMatchModeDropdown")),optionLabel:"label",optionValue:"value","aria-label":a.filterConstraintAriaLabel,"onUpdate:modelValue":function(f){return a.onMenuMatchModeChange(f,u)},unstyled:t.unstyled,pt:a.getColumnPT("filterMatchModeDropdown")},null,8,["options","modelValue","class","aria-label","onUpdate:modelValue","unstyled","pt"])):Pt("",!0),n.display==="menu"?(oe(),Vn(ea(n.filterElement),{key:1,field:n.field,filterModel:c,filterCallback:a.filterCallback,applyFilter:a.applyFilter},null,8,["field","filterModel","filterCallback","applyFilter"])):Pt("",!0),Q("div",oA(Jm(a.getColumnPT("filterRemove"))),[a.showRemoveIcon?(oe(),Vn(l,{key:0,type:"button",class:Hr(t.cx("filterRemoveButton")),onClick:function(f){return a.removeConstraint(u)},label:a.removeRuleButtonLabel,unstyled:t.unstyled,text:"",severity:"danger",size:"small",pt:a.getColumnPT("filterRemoveButton")},{icon:Yr(function(h){return[(oe(),Vn(ea(n.filterRemoveIconTemplate||"TrashIcon"),Jt({class:h.class},a.getColumnPT("filterRemoveButton").icon),null,16,["class"]))]}),_:2},1032,["class","onClick","label","unstyled","pt"])):Pt("",!0)],16)],16)}),128))],16),a.isShowAddConstraint?(oe(),Ce("div",Jt({key:1,class:t.cx("filterAddRule")},a.getColumnPT("filterAddRule")),[Fn(l,{type:"button",label:a.addRuleButtonLabel,iconPos:"left",class:Hr(t.cx("filterAddRuleButton")),onClick:e[8]||(e[8]=function(c){return a.addConstraint()}),unstyled:t.unstyled,text:"",severity:"info",size:"small",pt:a.getColumnPT("filterAddRuleButton")},{icon:Yr(function(c){return[(oe(),Vn(ea(n.filterAddIconTemplate||"PlusIcon"),Jt({class:c.class},a.getColumnPT("filterAddRuleButton").icon),null,16,["class"]))]}),_:1},8,["label","class","unstyled","pt"])],16)):Pt("",!0),Q("div",Jt({class:t.cx("filterButtonbar")},a.getColumnPT("filterButtonbar")),[!n.filterClearTemplate&&n.showClearButton?(oe(),Vn(l,{key:0,type:"button",class:Hr(t.cx("filterClearButton")),label:a.clearButtonLabel,onClick:a.clearFilter,unstyled:t.unstyled,size:"small",outlined:"",pt:a.getColumnPT("filterClearButton")},null,8,["class","label","onClick","unstyled","pt"])):(oe(),Vn(ea(n.filterClearTemplate),{key:1,field:n.field,filterModel:n.filters[n.field],filterCallback:a.clearFilter},null,8,["field","filterModel","filterCallback"])),n.showApplyButton?(oe(),Ce(Er,{key:2},[n.filterApplyTemplate?(oe(),Vn(ea(n.filterApplyTemplate),{key:1,field:n.field,filterModel:n.filters[n.field],filterCallback:a.applyFilter},null,8,["field","filterModel","filterCallback"])):(oe(),Vn(l,{key:0,type:"button",class:Hr(t.cx("filterApplyButton")),label:a.applyButtonLabel,onClick:e[9]||(e[9]=function(c){return a.applyFilter()}),unstyled:t.unstyled,size:"small",pt:a.getColumnPT("filterApplyButton")},null,8,["class","label","unstyled","pt"]))],64)):Pt("",!0)],16)],64)),(oe(),Vn(ea(n.filterFooterTemplate),{field:n.field,filterModel:n.filters[n.field],filterCallback:a.filterCallback},null,8,["field","filterModel","filterCallback"]))],16,xte)),[[d]]):Pt("",!0)]}),_:1},16,["onEnter","onAfterEnter","onLeave","onAfterLeave"])]}),_:1})],16)}MQ.render=Kte;var LQ={name:"HeaderCheckbox",hostName:"DataTable",extends:nl,emits:["change"],props:{checked:null,disabled:null,column:null,headerCheckboxIconTemplate:{type:Function,default:null}},methods:{getColumnPT:function(e){var n={props:this.column.props,parent:{instance:this,props:this.$props,state:this.$data},context:{checked:this.checked,disabled:this.disabled}};return Jt(this.ptm("column.".concat(e),{column:n}),this.ptm("column.".concat(e),n),this.ptmo(this.getColumnProp(),e,n))},getColumnProp:function(){return this.column.props&&this.column.props.pt?this.column.props.pt:void 0},onChange:function(e){this.$emit("change",{originalEvent:e,checked:!this.checked})}},computed:{headerCheckboxAriaLabel:function(){return this.$primevue.config.locale.aria?this.checked?this.$primevue.config.locale.aria.selectAll:this.$primevue.config.locale.aria.unselectAll:void 0}},components:{CheckIcon:mh,Checkbox:Xy}};function Pte(t,e,n,r,i,a){var o=Li("CheckIcon"),l=Li("Checkbox");return oe(),Vn(l,{modelValue:n.checked,binary:!0,disabled:n.disabled,"aria-label":a.headerCheckboxAriaLabel,onChange:a.onChange,pt:a.getColumnPT("headerCheckbox")},{icon:Yr(function(s){return[n.headerCheckboxIconTemplate?(oe(),Vn(ea(n.headerCheckboxIconTemplate),{key:0,checked:s.checked,class:Hr(s.class)},null,8,["checked","class"])):!n.headerCheckboxIconTemplate&&s.checked?(oe(),Vn(o,Jt({key:1,class:s.class},a.getColumnPT("headerCheckbox.icon")),null,16,["class"])):Pt("",!0)]}),_:1},8,["modelValue","disabled","aria-label","onChange","pt"])}LQ.render=Pte;var oW={name:"HeaderCell",hostName:"DataTable",extends:nl,emits:["column-click","column-mousedown","column-dragstart","column-dragover","column-dragleave","column-drop","column-resizestart","checkbox-change","filter-change","filter-apply","operator-change","matchmode-change","constraint-add","constraint-remove","filter-clear","apply-click"],props:{column:{type:Object,default:null},index:{type:Number,default:null},resizableColumns:{type:Boolean,default:!1},groupRowsBy:{type:[Array,String,Function],default:null},sortMode:{type:String,default:"single"},groupRowSortField:{type:[String,Function],default:null},sortField:{type:[String,Function],default:null},sortOrder:{type:Number,default:null},multiSortMeta:{type:Array,default:null},allRowsSelected:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},filterDisplay:{type:String,default:null},filters:{type:Object,default:null},filtersStore:{type:Object,default:null},filterColumn:{type:Boolean,default:!1},reorderableColumns:{type:Boolean,default:!1},filterInputProps:{type:null,default:null}},data:function(){return{styleObject:{}}},mounted:function(){this.columnProp("frozen")&&this.updateStickyPosition()},updated:function(){this.columnProp("frozen")&&this.updateStickyPosition()},methods:{columnProp:function(e){return jn.getVNodeProp(this.column,e)},getColumnPT:function(e){var n,r,i={props:this.column.props,parent:{instance:this,props:this.$props,state:this.$data},context:{index:this.index,sortable:this.columnProp("sortable")===""||this.columnProp("sortable"),sorted:this.isColumnSorted(),resizable:this.resizableColumns,size:(n=this.$parentInstance)===null||n===void 0||(n=n.$parentInstance)===null||n===void 0?void 0:n.size,showGridlines:((r=this.$parentInstance)===null||r===void 0||(r=r.$parentInstance)===null||r===void 0?void 0:r.showGridlines)||!1}};return Jt(this.ptm("column.".concat(e),{column:i}),this.ptm("column.".concat(e),i),this.ptmo(this.getColumnProp(),e,i))},getColumnProp:function(){return this.column.props&&this.column.props.pt?this.column.props.pt:void 0},onClick:function(e){this.$emit("column-click",{originalEvent:e,column:this.column})},onKeyDown:function(e){(e.code==="Enter"||e.code==="NumpadEnter"||e.code==="Space")&&e.currentTarget.nodeName==="TH"&&Wn.getAttribute(e.currentTarget,"data-p-sortable-column")&&(this.$emit("column-click",{originalEvent:e,column:this.column}),e.preventDefault())},onMouseDown:function(e){this.$emit("column-mousedown",{originalEvent:e,column:this.column})},onDragStart:function(e){this.$emit("column-dragstart",{originalEvent:e,column:this.column})},onDragOver:function(e){this.$emit("column-dragover",{originalEvent:e,column:this.column})},onDragLeave:function(e){this.$emit("column-dragleave",{originalEvent:e,column:this.column})},onDrop:function(e){this.$emit("column-drop",{originalEvent:e,column:this.column})},onResizeStart:function(e){this.$emit("column-resizestart",e)},getMultiSortMetaIndex:function(){var e=this;return this.multiSortMeta.findIndex(function(n){return n.field===e.columnProp("field")||n.field===e.columnProp("sortField")})},getBadgeValue:function(){var e=this.getMultiSortMetaIndex();return this.groupRowsBy&&this.groupRowsBy===this.groupRowSortField&&e>-1?e:e+1},isMultiSorted:function(){return this.sortMode==="multiple"&&this.columnProp("sortable")&&this.getMultiSortMetaIndex()>-1},isColumnSorted:function(){return this.sortMode==="single"?this.sortField&&(this.sortField===this.columnProp("field")||this.sortField===this.columnProp("sortField")):this.isMultiSorted()},updateStickyPosition:function(){if(this.columnProp("frozen")){var e=this.columnProp("alignFrozen");if(e==="right"){var n=0,r=Wn.getNextElementSibling(this.$el,'[data-p-frozen-column="true"]');r&&(n=Wn.getOuterWidth(r)+parseFloat(r.style.right||0)),this.styleObject.right=n+"px"}else{var i=0,a=Wn.getPreviousElementSibling(this.$el,'[data-p-frozen-column="true"]');a&&(i=Wn.getOuterWidth(a)+parseFloat(a.style.left||0)),this.styleObject.left=i+"px"}var o=this.$el.parentElement.nextElementSibling;if(o){var l=Wn.index(this.$el);o.children[l]&&(o.children[l].style.left=this.styleObject.left,o.children[l].style.right=this.styleObject.right)}}},onHeaderCheckboxChange:function(e){this.$emit("checkbox-change",e)}},computed:{containerClass:function(){return[this.cx("headerCell"),this.filterColumn?this.columnProp("filterHeaderClass"):this.columnProp("headerClass"),this.columnProp("class")]},containerStyle:function(){var e=this.filterColumn?this.columnProp("filterHeaderStyle"):this.columnProp("headerStyle"),n=this.columnProp("style");return this.columnProp("frozen")?[n,e,this.styleObject]:[n,e]},sortState:function(){var e=!1,n=null;if(this.sortMode==="single")e=this.sortField&&(this.sortField===this.columnProp("field")||this.sortField===this.columnProp("sortField")),n=e?this.sortOrder:0;else if(this.sortMode==="multiple"){var r=this.getMultiSortMetaIndex();r>-1&&(e=!0,n=this.multiSortMeta[r].order)}return{sorted:e,sortOrder:n}},sortableColumnIcon:function(){var e=this.sortState,n=e.sorted,r=e.sortOrder;if(n){if(n&&r>0)return I2;if(n&&r<0)return Z2}else return B2;return null},ariaSort:function(){if(this.columnProp("sortable")){var e=this.sortState,n=e.sorted,r=e.sortOrder;return n&&r<0?"descending":n&&r>0?"ascending":"none"}else return null}},components:{DTHeaderCheckbox:LQ,DTColumnFilter:MQ,SortAltIcon:B2,SortAmountUpAltIcon:I2,SortAmountDownIcon:Z2}};function J0(t){"@babel/helpers - typeof";return J0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},J0(t)}function oI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function lI(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?oI(Object(n),!0).forEach(function(r){zte(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):oI(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function zte(t,e,n){return e=jte(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function jte(t){var e=_te(t,"string");return J0(e)=="symbol"?e:String(e)}function _te(t,e){if(J0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(J0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var $te=["tabindex","colspan","rowspan","aria-sort","data-p-sortable-column","data-p-resizable-column","data-p-highlight","data-p-filter-column","data-p-frozen-column","data-p-reorderable-column"];function qte(t,e,n,r,i,a){var o=Li("DTHeaderCheckbox"),l=Li("DTColumnFilter");return oe(),Ce("th",Jt({style:a.containerStyle,class:a.containerClass,tabindex:a.columnProp("sortable")?"0":null,role:"columnheader",colspan:a.columnProp("colspan"),rowspan:a.columnProp("rowspan"),"aria-sort":a.ariaSort,onClick:e[8]||(e[8]=function(){return a.onClick&&a.onClick.apply(a,arguments)}),onKeydown:e[9]||(e[9]=function(){return a.onKeyDown&&a.onKeyDown.apply(a,arguments)}),onMousedown:e[10]||(e[10]=function(){return a.onMouseDown&&a.onMouseDown.apply(a,arguments)}),onDragstart:e[11]||(e[11]=function(){return a.onDragStart&&a.onDragStart.apply(a,arguments)}),onDragover:e[12]||(e[12]=function(){return a.onDragOver&&a.onDragOver.apply(a,arguments)}),onDragleave:e[13]||(e[13]=function(){return a.onDragLeave&&a.onDragLeave.apply(a,arguments)}),onDrop:e[14]||(e[14]=function(){return a.onDrop&&a.onDrop.apply(a,arguments)})},lI(lI({},a.getColumnPT("root")),a.getColumnPT("headerCell")),{"data-p-sortable-column":a.columnProp("sortable"),"data-p-resizable-column":n.resizableColumns,"data-p-highlight":a.isColumnSorted(),"data-p-filter-column":n.filterColumn,"data-p-frozen-column":a.columnProp("frozen"),"data-p-reorderable-column":n.reorderableColumns}),[n.resizableColumns&&!a.columnProp("frozen")?(oe(),Ce("span",Jt({key:0,class:t.cx("columnResizer"),onMousedown:e[0]||(e[0]=function(){return a.onResizeStart&&a.onResizeStart.apply(a,arguments)})},a.getColumnPT("columnResizer")),null,16)):Pt("",!0),Q("div",Jt({class:t.cx("headerContent")},a.getColumnPT("headerContent")),[n.column.children&&n.column.children.header?(oe(),Vn(ea(n.column.children.header),{key:0,column:n.column},null,8,["column"])):Pt("",!0),a.columnProp("header")?(oe(),Ce("span",Jt({key:1,class:t.cx("headerTitle")},a.getColumnPT("headerTitle")),ce(a.columnProp("header")),17)):Pt("",!0),a.columnProp("sortable")?(oe(),Ce("span",oA(Jt({key:2},a.getColumnPT("sort"))),[(oe(),Vn(ea(n.column.children&&n.column.children.sorticon||a.sortableColumnIcon),Jt({sorted:a.sortState.sorted,sortOrder:a.sortState.sortOrder,class:t.cx("sortIcon")},a.getColumnPT("sorticon")),null,16,["sorted","sortOrder","class"]))],16)):Pt("",!0),a.isMultiSorted()?(oe(),Ce("span",Jt({key:3,class:t.cx("sortBadge")},a.getColumnPT("sortBadge")),ce(a.getBadgeValue()),17)):Pt("",!0),a.columnProp("selectionMode")==="multiple"&&n.filterDisplay!=="row"?(oe(),Vn(o,{key:4,checked:n.allRowsSelected,onChange:a.onHeaderCheckboxChange,disabled:n.empty,headerCheckboxIconTemplate:n.column.children&&n.column.children.headercheckboxicon,column:n.column,unstyled:t.unstyled,pt:t.pt},null,8,["checked","onChange","disabled","headerCheckboxIconTemplate","column","unstyled","pt"])):Pt("",!0),n.filterDisplay==="menu"&&n.column.children&&n.column.children.filter?(oe(),Vn(l,{key:5,field:a.columnProp("filterField")||a.columnProp("field"),type:a.columnProp("dataType"),display:"menu",showMenu:a.columnProp("showFilterMenu"),filterElement:n.column.children&&n.column.children.filter,filterHeaderTemplate:n.column.children&&n.column.children.filterheader,filterFooterTemplate:n.column.children&&n.column.children.filterfooter,filterClearTemplate:n.column.children&&n.column.children.filterclear,filterApplyTemplate:n.column.children&&n.column.children.filterapply,filterIconTemplate:n.column.children&&n.column.children.filtericon,filterAddIconTemplate:n.column.children&&n.column.children.filteraddicon,filterRemoveIconTemplate:n.column.children&&n.column.children.filterremoveicon,filterClearIconTemplate:n.column.children&&n.column.children.filterclearicon,filters:n.filters,filtersStore:n.filtersStore,filterInputProps:n.filterInputProps,onFilterChange:e[1]||(e[1]=function(s){return t.$emit("filter-change",s)}),onFilterApply:e[2]||(e[2]=function(s){return t.$emit("filter-apply")}),filterMenuStyle:a.columnProp("filterMenuStyle"),filterMenuClass:a.columnProp("filterMenuClass"),showOperator:a.columnProp("showFilterOperator"),showClearButton:a.columnProp("showClearButton"),showApplyButton:a.columnProp("showApplyButton"),showMatchModes:a.columnProp("showFilterMatchModes"),showAddButton:a.columnProp("showAddButton"),matchModeOptions:a.columnProp("filterMatchModeOptions"),maxConstraints:a.columnProp("maxConstraints"),onOperatorChange:e[3]||(e[3]=function(s){return t.$emit("operator-change",s)}),onMatchmodeChange:e[4]||(e[4]=function(s){return t.$emit("matchmode-change",s)}),onConstraintAdd:e[5]||(e[5]=function(s){return t.$emit("constraint-add",s)}),onConstraintRemove:e[6]||(e[6]=function(s){return t.$emit("constraint-remove",s)}),onApplyClick:e[7]||(e[7]=function(s){return t.$emit("apply-click",s)}),column:n.column,unstyled:t.unstyled,pt:t.pt},null,8,["field","type","showMenu","filterElement","filterHeaderTemplate","filterFooterTemplate","filterClearTemplate","filterApplyTemplate","filterIconTemplate","filterAddIconTemplate","filterRemoveIconTemplate","filterClearIconTemplate","filters","filtersStore","filterInputProps","filterMenuStyle","filterMenuClass","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","matchModeOptions","maxConstraints","column","unstyled","pt"])):Pt("",!0)],16)],16,$te)}oW.render=qte;var lW={name:"TableHeader",hostName:"DataTable",extends:nl,emits:["column-click","column-mousedown","column-dragstart","column-dragover","column-dragleave","column-drop","column-resizestart","checkbox-change","filter-change","filter-apply","operator-change","matchmode-change","constraint-add","constraint-remove","filter-clear","apply-click"],props:{columnGroup:{type:null,default:null},columns:{type:null,default:null},rowGroupMode:{type:String,default:null},groupRowsBy:{type:[Array,String,Function],default:null},resizableColumns:{type:Boolean,default:!1},allRowsSelected:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},sortMode:{type:String,default:"single"},groupRowSortField:{type:[String,Function],default:null},sortField:{type:[String,Function],default:null},sortOrder:{type:Number,default:null},multiSortMeta:{type:Array,default:null},filterDisplay:{type:String,default:null},filters:{type:Object,default:null},filtersStore:{type:Object,default:null},reorderableColumns:{type:Boolean,default:!1},first:{type:Number,default:0},filterInputProps:{type:null,default:null}},provide:function(){return{$rows:this.d_headerRows,$columns:this.d_headerColumns}},data:function(){return{d_headerRows:new Up({type:"Row"}),d_headerColumns:new Up({type:"Column"})}},beforeUnmount:function(){this.d_headerRows.clear(),this.d_headerColumns.clear()},methods:{columnProp:function(e,n){return jn.getVNodeProp(e,n)},getColumnGroupPT:function(e){var n,r={props:this.getColumnGroupProps(),parent:{instance:this,props:this.$props,state:this.$data},context:{type:"header",scrollable:(n=this.$parentInstance)===null||n===void 0||(n=n.$parentInstance)===null||n===void 0?void 0:n.scrollable}};return Jt(this.ptm("columnGroup.".concat(e),{columnGroup:r}),this.ptm("columnGroup.".concat(e),r),this.ptmo(this.getColumnGroupProps(),e,r))},getColumnGroupProps:function(){return this.columnGroup&&this.columnGroup.props&&this.columnGroup.props.pt?this.columnGroup.props.pt:void 0},getRowPT:function(e,n,r){var i={props:e.props,parent:{instance:this,props:this.$props,state:this.$data},context:{index:r}};return Jt(this.ptm("row.".concat(n),{row:i}),this.ptm("row.".concat(n),i),this.ptmo(this.getRowProp(e),n,i))},getRowProp:function(e){return e.props&&e.props.pt?e.props.pt:void 0},getColumnPT:function(e,n,r){var i={props:e.props,parent:{instance:this,props:this.$props,state:this.$data},context:{index:r}};return Jt(this.ptm("column.".concat(n),{column:i}),this.ptm("column.".concat(n),i),this.ptmo(this.getColumnProp(e),n,i))},getColumnProp:function(e){return e.props&&e.props.pt?e.props.pt:void 0},getFilterColumnHeaderClass:function(e){return[this.cx("headerCell",{column:e}),this.columnProp(e,"filterHeaderClass"),this.columnProp(e,"class")]},getFilterColumnHeaderStyle:function(e){return[this.columnProp(e,"filterHeaderStyle"),this.columnProp(e,"style")]},getHeaderRows:function(){var e;return(e=this.d_headerRows)===null||e===void 0?void 0:e.get(this.columnGroup,this.columnGroup.children)},getHeaderColumns:function(e){var n;return(n=this.d_headerColumns)===null||n===void 0?void 0:n.get(e,e.children)}},computed:{ptmTHeadOptions:function(){var e;return{context:{scrollable:(e=this.$parentInstance)===null||e===void 0||(e=e.$parentInstance)===null||e===void 0?void 0:e.scrollable}}}},components:{DTHeaderCell:oW,DTHeaderCheckbox:LQ,DTColumnFilter:MQ}};function T0(t){"@babel/helpers - typeof";return T0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T0(t)}function sI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function np(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?sI(Object(n),!0).forEach(function(r){ene(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):sI(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function ene(t,e,n){return e=tne(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function tne(t){var e=nne(t,"string");return T0(e)=="symbol"?e:String(e)}function nne(t,e){if(T0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(T0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function rne(t,e,n,r,i,a){var o=Li("DTHeaderCell"),l=Li("DTHeaderCheckbox"),s=Li("DTColumnFilter");return oe(),Ce("thead",Jt({class:t.cx("thead"),style:t.sx("thead"),role:"rowgroup"},n.columnGroup?np(np({},t.ptm("thead",a.ptmTHeadOptions)),a.getColumnGroupPT("root")):t.ptm("thead",a.ptmTHeadOptions),{"data-pc-section":"thead"}),[n.columnGroup?(oe(!0),Ce(Er,{key:1},ia(a.getHeaderRows(),function(d,c){return oe(),Ce("tr",Jt({key:c,role:"row"},np(np({},t.ptm("headerRow")),a.getRowPT(d,"root",c))),[(oe(!0),Ce(Er,null,ia(a.getHeaderColumns(d),function(u,h){return oe(),Ce(Er,{key:a.columnProp(u,"columnKey")||a.columnProp(u,"field")||h},[!a.columnProp(u,"hidden")&&(n.rowGroupMode!=="subheader"||n.groupRowsBy!==a.columnProp(u,"field"))&&typeof u.children!="string"?(oe(),Vn(o,{key:0,column:u,onColumnClick:e[23]||(e[23]=function(f){return t.$emit("column-click",f)}),onColumnMousedown:e[24]||(e[24]=function(f){return t.$emit("column-mousedown",f)}),groupRowsBy:n.groupRowsBy,groupRowSortField:n.groupRowSortField,sortMode:n.sortMode,sortField:n.sortField,sortOrder:n.sortOrder,multiSortMeta:n.multiSortMeta,allRowsSelected:n.allRowsSelected,empty:n.empty,onCheckboxChange:e[25]||(e[25]=function(f){return t.$emit("checkbox-change",f)}),filters:n.filters,filterDisplay:n.filterDisplay,filtersStore:n.filtersStore,onFilterChange:e[26]||(e[26]=function(f){return t.$emit("filter-change",f)}),onFilterApply:e[27]||(e[27]=function(f){return t.$emit("filter-apply")}),onOperatorChange:e[28]||(e[28]=function(f){return t.$emit("operator-change",f)}),onMatchmodeChange:e[29]||(e[29]=function(f){return t.$emit("matchmode-change",f)}),onConstraintAdd:e[30]||(e[30]=function(f){return t.$emit("constraint-add",f)}),onConstraintRemove:e[31]||(e[31]=function(f){return t.$emit("constraint-remove",f)}),onApplyClick:e[32]||(e[32]=function(f){return t.$emit("apply-click",f)}),unstyled:t.unstyled,pt:t.pt},null,8,["column","groupRowsBy","groupRowSortField","sortMode","sortField","sortOrder","multiSortMeta","allRowsSelected","empty","filters","filterDisplay","filtersStore","unstyled","pt"])):Pt("",!0)],64)}),128))],16)}),128)):(oe(),Ce(Er,{key:0},[Q("tr",Jt({role:"row"},t.ptm("headerRow")),[(oe(!0),Ce(Er,null,ia(n.columns,function(d,c){return oe(),Ce(Er,{key:a.columnProp(d,"columnKey")||a.columnProp(d,"field")||c},[!a.columnProp(d,"hidden")&&(n.rowGroupMode!=="subheader"||n.groupRowsBy!==a.columnProp(d,"field"))?(oe(),Vn(o,{key:0,column:d,index:c,onColumnClick:e[0]||(e[0]=function(u){return t.$emit("column-click",u)}),onColumnMousedown:e[1]||(e[1]=function(u){return t.$emit("column-mousedown",u)}),onColumnDragstart:e[2]||(e[2]=function(u){return t.$emit("column-dragstart",u)}),onColumnDragover:e[3]||(e[3]=function(u){return t.$emit("column-dragover",u)}),onColumnDragleave:e[4]||(e[4]=function(u){return t.$emit("column-dragleave",u)}),onColumnDrop:e[5]||(e[5]=function(u){return t.$emit("column-drop",u)}),groupRowsBy:n.groupRowsBy,groupRowSortField:n.groupRowSortField,reorderableColumns:n.reorderableColumns,resizableColumns:n.resizableColumns,onColumnResizestart:e[6]||(e[6]=function(u){return t.$emit("column-resizestart",u)}),sortMode:n.sortMode,sortField:n.sortField,sortOrder:n.sortOrder,multiSortMeta:n.multiSortMeta,allRowsSelected:n.allRowsSelected,empty:n.empty,onCheckboxChange:e[7]||(e[7]=function(u){return t.$emit("checkbox-change",u)}),filters:n.filters,filterDisplay:n.filterDisplay,filtersStore:n.filtersStore,filterInputProps:n.filterInputProps,first:n.first,onFilterChange:e[8]||(e[8]=function(u){return t.$emit("filter-change",u)}),onFilterApply:e[9]||(e[9]=function(u){return t.$emit("filter-apply")}),onOperatorChange:e[10]||(e[10]=function(u){return t.$emit("operator-change",u)}),onMatchmodeChange:e[11]||(e[11]=function(u){return t.$emit("matchmode-change",u)}),onConstraintAdd:e[12]||(e[12]=function(u){return t.$emit("constraint-add",u)}),onConstraintRemove:e[13]||(e[13]=function(u){return t.$emit("constraint-remove",u)}),onApplyClick:e[14]||(e[14]=function(u){return t.$emit("apply-click",u)}),unstyled:t.unstyled,pt:t.pt},null,8,["column","index","groupRowsBy","groupRowSortField","reorderableColumns","resizableColumns","sortMode","sortField","sortOrder","multiSortMeta","allRowsSelected","empty","filters","filterDisplay","filtersStore","filterInputProps","first","unstyled","pt"])):Pt("",!0)],64)}),128))],16),n.filterDisplay==="row"?(oe(),Ce("tr",Jt({key:0,role:"row"},t.ptm("headerRow")),[(oe(!0),Ce(Er,null,ia(n.columns,function(d,c){return oe(),Ce(Er,{key:a.columnProp(d,"columnKey")||a.columnProp(d,"field")||c},[!a.columnProp(d,"hidden")&&(n.rowGroupMode!=="subheader"||n.groupRowsBy!==a.columnProp(d,"field"))?(oe(),Ce("th",Jt({key:0,style:a.getFilterColumnHeaderStyle(d),class:a.getFilterColumnHeaderClass(d)},np(np({},a.getColumnPT(d,"root",c)),a.getColumnPT(d,"headerCell",c))),[a.columnProp(d,"selectionMode")==="multiple"?(oe(),Vn(l,{key:0,checked:n.allRowsSelected,disabled:n.empty,onChange:e[15]||(e[15]=function(u){return t.$emit("checkbox-change",u)}),column:d,unstyled:t.unstyled,pt:t.pt},null,8,["checked","disabled","column","unstyled","pt"])):Pt("",!0),d.children&&d.children.filter?(oe(),Vn(s,{key:1,field:a.columnProp(d,"filterField")||a.columnProp(d,"field"),type:a.columnProp(d,"dataType"),display:"row",showMenu:a.columnProp(d,"showFilterMenu"),filterElement:d.children&&d.children.filter,filterHeaderTemplate:d.children&&d.children.filterheader,filterFooterTemplate:d.children&&d.children.filterfooter,filterClearTemplate:d.children&&d.children.filterclear,filterApplyTemplate:d.children&&d.children.filterapply,filterIconTemplate:d.children&&d.children.filtericon,filterAddIconTemplate:d.children&&d.children.filteraddicon,filterRemoveIconTemplate:d.children&&d.children.filterremoveicon,filterClearIconTemplate:d.children&&d.children.filterclearicon,filters:n.filters,filtersStore:n.filtersStore,filterInputProps:n.filterInputProps,onFilterChange:e[16]||(e[16]=function(u){return t.$emit("filter-change",u)}),onFilterApply:e[17]||(e[17]=function(u){return t.$emit("filter-apply")}),filterMenuStyle:a.columnProp(d,"filterMenuStyle"),filterMenuClass:a.columnProp(d,"filterMenuClass"),showOperator:a.columnProp(d,"showFilterOperator"),showClearButton:a.columnProp(d,"showClearButton"),showApplyButton:a.columnProp(d,"showApplyButton"),showMatchModes:a.columnProp(d,"showFilterMatchModes"),showAddButton:a.columnProp(d,"showAddButton"),matchModeOptions:a.columnProp(d,"filterMatchModeOptions"),maxConstraints:a.columnProp(d,"maxConstraints"),onOperatorChange:e[18]||(e[18]=function(u){return t.$emit("operator-change",u)}),onMatchmodeChange:e[19]||(e[19]=function(u){return t.$emit("matchmode-change",u)}),onConstraintAdd:e[20]||(e[20]=function(u){return t.$emit("constraint-add",u)}),onConstraintRemove:e[21]||(e[21]=function(u){return t.$emit("constraint-remove",u)}),onApplyClick:e[22]||(e[22]=function(u){return t.$emit("apply-click",u)}),column:d,unstyled:t.unstyled,pt:t.pt},null,8,["field","type","showMenu","filterElement","filterHeaderTemplate","filterFooterTemplate","filterClearTemplate","filterApplyTemplate","filterIconTemplate","filterAddIconTemplate","filterRemoveIconTemplate","filterClearIconTemplate","filters","filtersStore","filterInputProps","filterMenuStyle","filterMenuClass","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","matchModeOptions","maxConstraints","column","unstyled","pt"])):Pt("",!0)],16)):Pt("",!0)],64)}),128))],16)):Pt("",!0)],64))],16)}lW.render=rne;function X0(t){"@babel/helpers - typeof";return X0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},X0(t)}var ine=["expanded"];function ane(t,e){if(t==null)return{};var n=one(t,e),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)r=a[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function one(t,e){if(t==null)return{};var n={},r=Object.keys(t),i,a;for(a=0;a<r.length;a++)i=r[a],!(e.indexOf(i)>=0)&&(n[i]=t[i]);return n}function dI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function qg(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?dI(Object(n),!0).forEach(function(r){lne(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):dI(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function lne(t,e,n){return e=sne(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function sne(t){var e=dne(t,"string");return X0(e)=="symbol"?e:String(e)}function dne(t,e){if(X0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(X0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function cI(t,e){return fne(t)||une(t,e)||HQ(t,e)||cne()}function cne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function une(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,a,o,l=[],s=!0,d=!1;try{if(a=(n=n.call(t)).next,e!==0)for(;!(s=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);s=!0);}catch(c){d=!0,i=c}finally{try{if(!s&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(d)throw i}}return l}}function fne(t){if(Array.isArray(t))return t}function Um(t,e){var n=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=HQ(t))||e){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(d){throw d},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,l;return{s:function(){n=n.call(t)},n:function(){var d=n.next();return a=d.done,d},e:function(d){o=!0,l=d},f:function(){try{!a&&n.return!=null&&n.return()}finally{if(o)throw l}}}}function Qd(t){return Ane(t)||gne(t)||HQ(t)||hne()}function hne(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function HQ(t,e){if(t){if(typeof t=="string")return C2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C2(t,e)}}function gne(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Ane(t){if(Array.isArray(t))return C2(t)}function C2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Jp={name:"DataTable",extends:qee,inheritAttrs:!1,emits:["value-change","update:first","update:rows","page","update:sortField","update:sortOrder","update:multiSortMeta","sort","filter","row-click","row-dblclick","update:selection","row-select","row-unselect","update:contextMenuSelection","row-contextmenu","row-unselect-all","row-select-all","select-all-change","column-resize-end","column-reorder","row-reorder","update:expandedRows","row-collapse","row-expand","update:expandedRowGroups","rowgroup-collapse","rowgroup-expand","update:filters","state-restore","state-save","cell-edit-init","cell-edit-complete","cell-edit-cancel","update:editingRows","row-edit-init","row-edit-save","row-edit-cancel"],provide:function(){return{$columns:this.d_columns,$columnGroups:this.d_columnGroups}},data:function(){return{d_first:this.first,d_rows:this.rows,d_sortField:this.sortField,d_sortOrder:this.sortOrder,d_nullSortOrder:this.nullSortOrder,d_multiSortMeta:this.multiSortMeta?Qd(this.multiSortMeta):[],d_groupRowsSortMeta:null,d_selectionKeys:null,d_columnOrder:null,d_editingRowKeys:null,d_editingMeta:{},d_filters:this.cloneFilters(this.filters),d_columns:new Up({type:"Column"}),d_columnGroups:new Up({type:"ColumnGroup"})}},rowTouched:!1,anchorRowIndex:null,rangeRowIndex:null,documentColumnResizeListener:null,documentColumnResizeEndListener:null,lastResizeHelperX:null,resizeColumnElement:null,columnResizing:!1,colReorderIconWidth:null,colReorderIconHeight:null,draggedColumn:null,draggedColumnElement:null,draggedRowIndex:null,droppedRowIndex:null,rowDragging:null,columnWidthsState:null,tableWidthState:null,columnWidthsRestored:!1,watch:{first:function(e){this.d_first=e},rows:function(e){this.d_rows=e},sortField:function(e){this.d_sortField=e},sortOrder:function(e){this.d_sortOrder=e},nullSortOrder:function(e){this.d_nullSortOrder=e},multiSortMeta:function(e){this.d_multiSortMeta=e},selection:{immediate:!0,handler:function(e){this.dataKey&&this.updateSelectionKeys(e)}},editingRows:{immediate:!0,handler:function(e){this.dataKey&&this.updateEditingRowKeys(e)}},filters:{deep:!0,handler:function(e){this.d_filters=this.cloneFilters(e)}}},mounted:function(){this.$el.setAttribute(this.attributeSelector,""),this.responsiveLayout==="stack"&&!this.scrollable&&!this.unstyled&&this.createResponsiveStyle(),this.isStateful()&&(this.restoreState(),this.resizableColumns&&this.restoreColumnWidths()),this.editMode==="row"&&this.dataKey&&!this.d_editingRowKeys&&this.updateEditingRowKeys(this.editingRows)},beforeUnmount:function(){this.unbindColumnResizeEvents(),this.destroyStyleElement(),this.destroyResponsiveStyle(),this.d_columns.clear(),this.d_columnGroups.clear()},updated:function(){this.isStateful()&&this.saveState(),this.editMode==="row"&&this.dataKey&&!this.d_editingRowKeys&&this.updateEditingRowKeys(this.editingRows)},methods:{columnProp:function(e,n){return jn.getVNodeProp(e,n)},onPage:function(e){var n=this;this.clearEditingMetaData(),this.d_first=e.first,this.d_rows=e.rows;var r=this.createLazyLoadEvent(e);r.pageCount=e.pageCount,r.page=e.page,this.$emit("update:first",this.d_first),this.$emit("update:rows",this.d_rows),this.$emit("page",r),this.$nextTick(function(){n.$emit("value-change",n.processedData)})},onColumnHeaderClick:function(e){var n=this,r=e.originalEvent,i=e.column;if(this.columnProp(i,"sortable")){var a=r.target,o=this.columnProp(i,"sortField")||this.columnProp(i,"field");if(Wn.getAttribute(a,"data-p-sortable-column")===!0||Wn.getAttribute(a,"data-pc-section")==="headertitle"||Wn.getAttribute(a,"data-pc-section")==="headercontent"||Wn.getAttribute(a,"data-pc-section")==="sorticon"||Wn.getAttribute(a.parentElement,"data-pc-section")==="sorticon"||Wn.getAttribute(a.parentElement.parentElement,"data-pc-section")==="sorticon"||a.closest('[data-p-sortable-column="true"]')&&!a.closest('[data-pc-section="filtermenubutton"]')&&!Wn.isClickable(r.target)){if(Wn.clearSelection(),this.sortMode==="single")this.d_sortField===o?this.removableSort&&this.d_sortOrder*-1===this.defaultSortOrder?(this.d_sortOrder=null,this.d_sortField=null):this.d_sortOrder=this.d_sortOrder*-1:(this.d_sortOrder=this.defaultSortOrder,this.d_sortField=o),this.$emit("update:sortField",this.d_sortField),this.$emit("update:sortOrder",this.d_sortOrder),this.resetPage();else if(this.sortMode==="multiple"){var l=r.metaKey||r.ctrlKey;l||(this.d_multiSortMeta=this.d_multiSortMeta.filter(function(s){return s.field===o})),this.addMultiSortField(o),this.$emit("update:multiSortMeta",this.d_multiSortMeta)}this.$emit("sort",this.createLazyLoadEvent(r)),this.$nextTick(function(){n.$emit("value-change",n.processedData)})}}},sortSingle:function(e){var n=this;if(this.clearEditingMetaData(),this.groupRowsBy&&this.groupRowsBy===this.sortField)return this.d_multiSortMeta=[{field:this.sortField,order:this.sortOrder||this.defaultSortOrder},{field:this.d_sortField,order:this.d_sortOrder}],this.sortMultiple(e);var r=Qd(e),i=new Map,a=Um(r),o;try{for(a.s();!(o=a.n()).done;){var l=o.value;i.set(l,jn.resolveFieldData(l,this.d_sortField))}}catch(d){a.e(d)}finally{a.f()}var s=jn.localeComparator();return r.sort(function(d,c){var u=i.get(d),h=i.get(c);return jn.sort(u,h,n.d_sortOrder,s,n.d_nullSortOrder)}),r},sortMultiple:function(e){var n=this;if(this.clearEditingMetaData(),this.groupRowsBy&&(this.d_groupRowsSortMeta||this.d_multiSortMeta.length&&this.groupRowsBy===this.d_multiSortMeta[0].field)){var r=this.d_multiSortMeta[0];!this.d_groupRowsSortMeta&&(this.d_groupRowsSortMeta=r),r.field!==this.d_groupRowsSortMeta.field&&(this.d_multiSortMeta=[this.d_groupRowsSortMeta].concat(Qd(this.d_multiSortMeta)))}var i=Qd(e);return i.sort(function(a,o){return n.multisortField(a,o,0)}),i},multisortField:function(e,n,r){var i=jn.resolveFieldData(e,this.d_multiSortMeta[r].field),a=jn.resolveFieldData(n,this.d_multiSortMeta[r].field),o=jn.localeComparator();return i===a?this.d_multiSortMeta.length-1>r?this.multisortField(e,n,r+1):0:jn.sort(i,a,this.d_multiSortMeta[r].order,o,this.d_nullSortOrder)},addMultiSortField:function(e){var n=this.d_multiSortMeta.findIndex(function(r){return r.field===e});n>=0?this.removableSort&&this.d_multiSortMeta[n].order*-1===this.defaultSortOrder?this.d_multiSortMeta.splice(n,1):this.d_multiSortMeta[n]={field:e,order:this.d_multiSortMeta[n].order*-1}:this.d_multiSortMeta.push({field:e,order:this.defaultSortOrder}),this.d_multiSortMeta=Qd(this.d_multiSortMeta)},getActiveFilters:function(e){var n=function(o){var l=cI(o,2),s=l[0],d=l[1];if(d.constraints){var c=d.constraints.filter(function(u){return u.value!==null});if(c.length>0)return[s,qg(qg({},d),{},{constraints:c})]}else if(d.value!==null)return[s,d]},r=function(o){return o!==void 0},i=Object.entries(e).map(n).filter(r);return Object.fromEntries(i)},filter:function(e){var n=this;if(e){this.clearEditingMetaData();var r=this.getActiveFilters(this.filters),i;r.global&&(i=this.globalFilterFields||this.columns.map(function(F){return n.columnProp(F,"filterField")||n.columnProp(F,"field")}));for(var a=[],o=0;o<e.length;o++){var l=!0,s=!1,d=!1;for(var c in r)if(Object.prototype.hasOwnProperty.call(r,c)&&c!=="global"){d=!0;var u=c,h=r[u];if(h.operator){var f=Um(h.constraints),g;try{for(f.s();!(g=f.n()).done;){var A=g.value;if(l=this.executeLocalFilter(u,e[o],A),h.operator===ry.OR&&l||h.operator===ry.AND&&!l)break}}catch(F){f.e(F)}finally{f.f()}}else l=this.executeLocalFilter(u,e[o],h);if(!l)break}if(l&&r.global&&!s&&i)for(var b=0;b<i.length;b++){var p=i[b];if(s=iy.filters[r.global.matchMode||Cc.CONTAINS](jn.resolveFieldData(e[o],p),r.global.value,this.filterLocale),s)break}var y=void 0;r.global?y=d?d&&l&&s:s:y=d&&l,y&&a.push(e[o])}(a.length===this.value.length||Object.keys(r).length==0)&&(a=e);var m=this.createLazyLoadEvent();return m.filteredValue=a,this.$emit("filter",m),this.$nextTick(function(){n.$emit("value-change",n.processedData)}),a}},executeLocalFilter:function(e,n,r){var i=r.value,a=r.matchMode||Cc.STARTS_WITH,o=jn.resolveFieldData(n,e),l=iy.filters[a];return l(o,i,this.filterLocale)},onRowClick:function(e){var n=e.originalEvent,r=this.$refs.bodyRef&&this.$refs.bodyRef.$el,i=Wn.findSingle(r,'tr[data-p-selectable-row="true"][tabindex="0"]');if(!Wn.isClickable(n.target)){if(this.$emit("row-click",e),this.selectionMode){var a=e.data,o=this.d_first+e.index;if(this.isMultipleSelectionMode()&&n.shiftKey&&this.anchorRowIndex!=null)Wn.clearSelection(),this.rangeRowIndex=o,this.selectRange(n);else{var l=this.isSelected(a),s=this.rowTouched?!1:this.metaKeySelection;if(this.anchorRowIndex=o,this.rangeRowIndex=o,s){var d=n.metaKey||n.ctrlKey;if(l&&d){if(this.isSingleSelectionMode())this.$emit("update:selection",null);else{var c=this.findIndexInSelection(a),u=this.selection.filter(function(F,R){return R!=c});this.$emit("update:selection",u)}this.$emit("row-unselect",{originalEvent:n,data:a,index:o,type:"row"})}else{if(this.isSingleSelectionMode())this.$emit("update:selection",a);else if(this.isMultipleSelectionMode()){var h=d?this.selection||[]:[];h=[].concat(Qd(h),[a]),this.$emit("update:selection",h)}this.$emit("row-select",{originalEvent:n,data:a,index:o,type:"row"})}}else if(this.selectionMode==="single")l?(this.$emit("update:selection",null),this.$emit("row-unselect",{originalEvent:n,data:a,index:o,type:"row"})):(this.$emit("update:selection",a),this.$emit("row-select",{originalEvent:n,data:a,index:o,type:"row"}));else if(this.selectionMode==="multiple")if(l){var f=this.findIndexInSelection(a),g=this.selection.filter(function(F,R){return R!=f});this.$emit("update:selection",g),this.$emit("row-unselect",{originalEvent:n,data:a,index:o,type:"row"})}else{var A=this.selection?[].concat(Qd(this.selection),[a]):[a];this.$emit("update:selection",A),this.$emit("row-select",{originalEvent:n,data:a,index:o,type:"row"})}}}if(this.rowTouched=!1,i){var b,p,y;if(((b=n.target)===null||b===void 0?void 0:b.getAttribute("data-pc-section"))==="rowtogglericon"||((p=n.target)===null||p===void 0||(p=p.parentElement)===null||p===void 0?void 0:p.getAttribute("data-pc-section"))==="rowtogglericon")return;var m=(y=n.target)===null||y===void 0?void 0:y.closest('tr[data-p-selectable-row="true"]');i.tabIndex="-1",m.tabIndex="0"}}},onRowDblClick:function(e){var n=e.originalEvent;Wn.isClickable(n.target)||this.$emit("row-dblclick",e)},onRowRightClick:function(e){this.contextMenu&&(Wn.clearSelection(),e.originalEvent.target.focus()),this.$emit("update:contextMenuSelection",e.data),this.$emit("row-contextmenu",e)},onRowTouchEnd:function(){this.rowTouched=!0},onRowKeyDown:function(e,n){var r=e.originalEvent,i=e.data,a=e.index,o=r.metaKey||r.ctrlKey;if(this.selectionMode){var l=r.target;switch(r.code){case"ArrowDown":this.onArrowDownKey(r,l,a,n);break;case"ArrowUp":this.onArrowUpKey(r,l,a,n);break;case"Home":this.onHomeKey(r,l,a,n);break;case"End":this.onEndKey(r,l,a,n);break;case"Enter":case"NumpadEnter":this.onEnterKey(r,i,a);break;case"Space":this.onSpaceKey(r,i,a,n);break;case"Tab":this.onTabKey(r,a);break;default:if(r.code==="KeyA"&&o&&this.isMultipleSelectionMode()){var s=this.dataToRender(n.rows);this.$emit("update:selection",s)}var d=r.code==="KeyC"&&o;d||r.preventDefault();break}}},onArrowDownKey:function(e,n,r,i){var a=this.findNextSelectableRow(n);if(a&&this.focusRowChange(n,a),e.shiftKey){var o=this.dataToRender(i.rows),l=r+1>=o.length?o.length-1:r+1;this.onRowClick({originalEvent:e,data:o[l],index:l})}e.preventDefault()},onArrowUpKey:function(e,n,r,i){var a=this.findPrevSelectableRow(n);if(a&&this.focusRowChange(n,a),e.shiftKey){var o=this.dataToRender(i.rows),l=r-1<=0?0:r-1;this.onRowClick({originalEvent:e,data:o[l],index:l})}e.preventDefault()},onHomeKey:function(e,n,r,i){var a=this.findFirstSelectableRow();if(a&&this.focusRowChange(n,a),e.ctrlKey&&e.shiftKey){var o=this.dataToRender(i.rows);this.$emit("update:selection",o.slice(0,r+1))}e.preventDefault()},onEndKey:function(e,n,r,i){var a=this.findLastSelectableRow();if(a&&this.focusRowChange(n,a),e.ctrlKey&&e.shiftKey){var o=this.dataToRender(i.rows);this.$emit("update:selection",o.slice(r,o.length))}e.preventDefault()},onEnterKey:function(e,n,r){this.onRowClick({originalEvent:e,data:n,index:r}),e.preventDefault()},onSpaceKey:function(e,n,r,i){if(this.onEnterKey(e,n,r),e.shiftKey&&this.selection!==null){var a=this.dataToRender(i.rows),o;if(this.selection.length>0){var l,s;l=jn.findIndexInList(this.selection[0],a),s=jn.findIndexInList(this.selection[this.selection.length-1],a),o=r<=l?s:l}else o=jn.findIndexInList(this.selection,a);var d=o!==r?a.slice(Math.min(o,r),Math.max(o,r)+1):n;this.$emit("update:selection",d)}},onTabKey:function(e,n){var r=this.$refs.bodyRef&&this.$refs.bodyRef.$el,i=Wn.find(r,'tr[data-p-selectable-row="true"]');if(e.code==="Tab"&&i&&i.length>0){var a=Wn.findSingle(r,'tr[data-p-highlight="true"]'),o=Wn.findSingle(r,'tr[data-p-selectable-row="true"][tabindex="0"]');a?(a.tabIndex="0",o&&o!==a&&(o.tabIndex="-1")):(i[0].tabIndex="0",o!==i[0]&&(i[n].tabIndex="-1"))}},findNextSelectableRow:function(e){var n=e.nextElementSibling;return n?Wn.getAttribute(n,"data-p-selectable-row")===!0?n:this.findNextSelectableRow(n):null},findPrevSelectableRow:function(e){var n=e.previousElementSibling;return n?Wn.getAttribute(n,"data-p-selectable-row")===!0?n:this.findPrevSelectableRow(n):null},findFirstSelectableRow:function(){var e=Wn.findSingle(this.$refs.table,'tr[data-p-selectable-row="true"]');return e},findLastSelectableRow:function(){var e=Wn.find(this.$refs.table,'tr[data-p-selectable-row="true"]');return e?e[e.length-1]:null},focusRowChange:function(e,n){e.tabIndex="-1",n.tabIndex="0",Wn.focus(n)},toggleRowWithRadio:function(e){var n=e.data;this.isSelected(n)?(this.$emit("update:selection",null),this.$emit("row-unselect",{originalEvent:e.originalEvent,data:n,index:e.index,type:"radiobutton"})):(this.$emit("update:selection",n),this.$emit("row-select",{originalEvent:e.originalEvent,data:n,index:e.index,type:"radiobutton"}))},toggleRowWithCheckbox:function(e){var n=e.data;if(this.isSelected(n)){var r=this.findIndexInSelection(n),i=this.selection.filter(function(o,l){return l!=r});this.$emit("update:selection",i),this.$emit("row-unselect",{originalEvent:e.originalEvent,data:n,index:e.index,type:"checkbox"})}else{var a=this.selection?Qd(this.selection):[];a=[].concat(Qd(a),[n]),this.$emit("update:selection",a),this.$emit("row-select",{originalEvent:e.originalEvent,data:n,index:e.index,type:"checkbox"})}},toggleRowsWithCheckbox:function(e){if(this.selectAll!==null)this.$emit("select-all-change",e);else{var n=e.originalEvent,r=e.checked,i=[];r?(i=this.frozenValue?[].concat(Qd(this.frozenValue),Qd(this.processedData)):this.processedData,this.$emit("row-select-all",{originalEvent:n,data:i})):this.$emit("row-unselect-all",{originalEvent:n}),this.$emit("update:selection",i)}},isSingleSelectionMode:function(){return this.selectionMode==="single"},isMultipleSelectionMode:function(){return this.selectionMode==="multiple"},isSelected:function(e){return e&&this.selection?this.dataKey?this.d_selectionKeys?this.d_selectionKeys[jn.resolveFieldData(e,this.dataKey)]!==void 0:!1:this.selection instanceof Array?this.findIndexInSelection(e)>-1:this.equals(e,this.selection):!1},findIndexInSelection:function(e){return this.findIndex(e,this.selection)},findIndex:function(e,n){var r=-1;if(n&&n.length){for(var i=0;i<n.length;i++)if(this.equals(e,n[i])){r=i;break}}return r},updateSelectionKeys:function(e){if(this.d_selectionKeys={},Array.isArray(e)){var n=Um(e),r;try{for(n.s();!(r=n.n()).done;){var i=r.value;this.d_selectionKeys[String(jn.resolveFieldData(i,this.dataKey))]=1}}catch(a){n.e(a)}finally{n.f()}}else this.d_selectionKeys[String(jn.resolveFieldData(e,this.dataKey))]=1},updateEditingRowKeys:function(e){if(e&&e.length){this.d_editingRowKeys={};var n=Um(e),r;try{for(n.s();!(r=n.n()).done;){var i=r.value;this.d_editingRowKeys[String(jn.resolveFieldData(i,this.dataKey))]=1}}catch(a){n.e(a)}finally{n.f()}}else this.d_editingRowKeys=null},equals:function(e,n){return this.compareSelectionBy==="equals"?e===n:jn.equals(e,n,this.dataKey)},selectRange:function(e){var n,r;this.rangeRowIndex>this.anchorRowIndex?(n=this.anchorRowIndex,r=this.rangeRowIndex):this.rangeRowIndex<this.anchorRowIndex?(n=this.rangeRowIndex,r=this.anchorRowIndex):(n=this.rangeRowIndex,r=this.rangeRowIndex),this.lazy&&this.paginator&&(n-=this.first,r-=this.first);for(var i=this.processedData,a=[],o=n;o<=r;o++){var l=i[o];a.push(l),this.$emit("row-select",{originalEvent:e,data:l,type:"row"})}this.$emit("update:selection",a)},exportCSV:function(e,n){var r=this,i="\uFEFF";n||(n=this.processedData,e&&e.selectionOnly?n=this.selection||[]:this.frozenValue&&(n=n?[].concat(Qd(this.frozenValue),Qd(n)):this.frozenValue));for(var a=!1,o=0;o<this.columns.length;o++){var l=this.columns[o];this.columnProp(l,"exportable")!==!1&&this.columnProp(l,"field")&&(a?i+=this.csvSeparator:a=!0,i+='"'+(this.columnProp(l,"exportHeader")||this.columnProp(l,"header")||this.columnProp(l,"field"))+'"')}n&&n.forEach(function(u){i+=` `;for(var h=!1,f=0;f<r.columns.length;f++){var g=r.columns[f];if(r.columnProp(g,"exportable")!==!1&&r.columnProp(g,"field")){h?i+=r.csvSeparator:h=!0;var A=jn.resolveFieldData(u,r.columnProp(g,"field"));A!=null?r.exportFunction?A=r.exportFunction({data:A,field:r.columnProp(g,"field")}):A=String(A).replace(/"/g,'""'):A="",i+='"'+A+'"'}}});for(var s=!1,d=0;d<this.columns.length;d++){var c=this.columns[d];d===0&&(i+=` `),this.columnProp(c,"exportable")!==!1&&this.columnProp(c,"exportFooter")&&(s?i+=this.csvSeparator:s=!0,i+='"'+(this.columnProp(c,"exportFooter")||this.columnProp(c,"footer")||this.columnProp(c,"field"))+'"')}Wn.exportCSV(i,this.exportFilename)},resetPage:function(){this.d_first=0,this.$emit("update:first",this.d_first)},onColumnResizeStart:function(e){var n=Wn.getOffset(this.$el).left;this.resizeColumnElement=e.target.parentElement,this.columnResizing=!0,this.lastResizeHelperX=e.pageX-n+this.$el.scrollLeft,this.bindColumnResizeEvents()},onColumnResize:function(e){var n=Wn.getOffset(this.$el).left;this.$el.setAttribute("data-p-unselectable-text","true"),!this.isUnstyled&&Wn.addClass(this.$el,"p-unselectable-text"),this.$refs.resizeHelper.style.height=this.$el.offsetHeight+"px",this.$refs.resizeHelper.style.top="0px",this.$refs.resizeHelper.style.left=e.pageX-n+this.$el.scrollLeft+"px",this.$refs.resizeHelper.style.display="block"},onColumnResizeEnd:function(){var e=this.$refs.resizeHelper.offsetLeft-this.lastResizeHelperX,n=this.resizeColumnElement.offsetWidth,r=n+e,i=this.resizeColumnElement.style.minWidth||15;if(n+e>parseInt(i,10)){if(this.columnResizeMode==="fit"){var a=this.resizeColumnElement.nextElementSibling,o=a.offsetWidth-e;r>15&&o>15&&this.resizeTableCells(r,o)}else if(this.columnResizeMode==="expand"){var l=this.$refs.table.offsetWidth+e+"px",s=function(h){h&&(h.style.width=h.style.minWidth=l)};if(this.resizeTableCells(r),s(this.$refs.table),!this.virtualScrollerDisabled){var d=this.$refs.bodyRef&&this.$refs.bodyRef.$el,c=this.$refs.frozenBodyRef&&this.$refs.frozenBodyRef.$el;s(d),s(c)}}this.$emit("column-resize-end",{element:this.resizeColumnElement,delta:e})}this.$refs.resizeHelper.style.display="none",this.resizeColumn=null,this.$el.removeAttribute("data-p-unselectable-text"),!this.isUnstyled&&Wn.removeClass(this.$el,"p-unselectable-text"),this.unbindColumnResizeEvents(),this.isStateful()&&this.saveState()},resizeTableCells:function(e,n){var r=Wn.index(this.resizeColumnElement),i=[],a=Wn.find(this.$refs.table,'thead[data-pc-section="thead"] > tr > th');a.forEach(function(s){return i.push(Wn.getOuterWidth(s))}),this.destroyStyleElement(),this.createStyleElement();var o="",l='[data-pc-name="datatable"]['.concat(this.attributeSelector,'] > [data-pc-section="wrapper"] ').concat(this.virtualScrollerDisabled?"":'> [data-pc-name="virtualscroller"]',' > table[data-pc-section="table"]');i.forEach(function(s,d){var c=d===r?e:n&&d===r+1?n:s,u="width: ".concat(c,"px !important; max-width: ").concat(c,"px !important");o+=` `.concat(l,' > thead[data-pc-section="thead"] > tr > th:nth-child(').concat(d+1,`), `).concat(l,' > tbody[data-pc-section="tbody"] > tr > td:nth-child(').concat(d+1,`), `).concat(l,' > tfoot[data-pc-section="tfoot"] > tr > td:nth-child(').concat(d+1,`) { `).concat(u,` } `)}),this.styleElement.innerHTML=o},bindColumnResizeEvents:function(){var e=this;this.documentColumnResizeListener||(this.documentColumnResizeListener=document.addEventListener("mousemove",function(){e.columnResizing&&e.onColumnResize(event)})),this.documentColumnResizeEndListener||(this.documentColumnResizeEndListener=document.addEventListener("mouseup",function(){e.columnResizing&&(e.columnResizing=!1,e.onColumnResizeEnd())}))},unbindColumnResizeEvents:function(){this.documentColumnResizeListener&&(document.removeEventListener("document",this.documentColumnResizeListener),this.documentColumnResizeListener=null),this.documentColumnResizeEndListener&&(document.removeEventListener("document",this.documentColumnResizeEndListener),this.documentColumnResizeEndListener=null)},onColumnHeaderMouseDown:function(e){var n=e.originalEvent,r=e.column;this.reorderableColumns&&this.columnProp(r,"reorderableColumn")!==!1&&(n.target.nodeName==="INPUT"||n.target.nodeName==="TEXTAREA"||Wn.getAttribute(n.target,'[data-pc-section="columnresizer"]')?n.currentTarget.draggable=!1:n.currentTarget.draggable=!0)},onColumnHeaderDragStart:function(e){var n=e.originalEvent,r=e.column;if(this.columnResizing){n.preventDefault();return}this.colReorderIconWidth=Wn.getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp),this.colReorderIconHeight=Wn.getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp),this.draggedColumn=r,this.draggedColumnElement=this.findParentHeader(n.target),n.dataTransfer.setData("text","b")},onColumnHeaderDragOver:function(e){var n=e.originalEvent,r=e.column,i=this.findParentHeader(n.target);if(this.reorderableColumns&&this.draggedColumnElement&&i&&!this.columnProp(r,"frozen")){n.preventDefault();var a=Wn.getOffset(this.$el),o=Wn.getOffset(i);if(this.draggedColumnElement!==i){var l=o.left-a.left,s=o.left+i.offsetWidth/2;this.$refs.reorderIndicatorUp.style.top=o.top-a.top-(this.colReorderIconHeight-1)+"px",this.$refs.reorderIndicatorDown.style.top=o.top-a.top+i.offsetHeight+"px",n.pageX>s?(this.$refs.reorderIndicatorUp.style.left=l+i.offsetWidth-Math.ceil(this.colReorderIconWidth/2)+"px",this.$refs.reorderIndicatorDown.style.left=l+i.offsetWidth-Math.ceil(this.colReorderIconWidth/2)+"px",this.dropPosition=1):(this.$refs.reorderIndicatorUp.style.left=l-Math.ceil(this.colReorderIconWidth/2)+"px",this.$refs.reorderIndicatorDown.style.left=l-Math.ceil(this.colReorderIconWidth/2)+"px",this.dropPosition=-1),this.$refs.reorderIndicatorUp.style.display="block",this.$refs.reorderIndicatorDown.style.display="block"}}},onColumnHeaderDragLeave:function(e){var n=e.originalEvent;this.reorderableColumns&&this.draggedColumnElement&&(n.preventDefault(),this.$refs.reorderIndicatorUp.style.display="none",this.$refs.reorderIndicatorDown.style.display="none")},onColumnHeaderDrop:function(e){var n=this,r=e.originalEvent,i=e.column;if(r.preventDefault(),this.draggedColumnElement){var a=Wn.index(this.draggedColumnElement),o=Wn.index(this.findParentHeader(r.target)),l=a!==o;if(l&&(o-a===1&&this.dropPosition===-1||o-a===-1&&this.dropPosition===1)&&(l=!1),l){var s=function(p,y){return n.columnProp(p,"columnKey")||n.columnProp(y,"columnKey")?n.columnProp(p,"columnKey")===n.columnProp(y,"columnKey"):n.columnProp(p,"field")===n.columnProp(y,"field")},d=this.columns.findIndex(function(b){return s(b,n.draggedColumn)}),c=this.columns.findIndex(function(b){return s(b,i)}),u=[],h=Wn.find(this.$el,'thead[data-pc-section="thead"] > tr > th');h.forEach(function(b){return u.push(Wn.getOuterWidth(b))});var f=u.find(function(b,p){return p===d}),g=u.filter(function(b,p){return p!==d}),A=[].concat(Qd(g.slice(0,c)),[f],Qd(g.slice(c)));this.addColumnWidthStyles(A),c<d&&this.dropPosition===1&&c++,c>d&&this.dropPosition===-1&&c--,jn.reorderArray(this.columns,d,c),this.updateReorderableColumns(),this.$emit("column-reorder",{originalEvent:r,dragIndex:d,dropIndex:c})}this.$refs.reorderIndicatorUp.style.display="none",this.$refs.reorderIndicatorDown.style.display="none",this.draggedColumnElement.draggable=!1,this.draggedColumnElement=null,this.draggedColumn=null,this.dropPosition=null}},findParentHeader:function(e){if(e.nodeName==="TH")return e;for(var n=e.parentElement;n.nodeName!=="TH"&&(n=n.parentElement,!!n););return n},findColumnByKey:function(e,n){if(e&&e.length)for(var r=0;r<e.length;r++){var i=e[r];if(this.columnProp(i,"columnKey")===n||this.columnProp(i,"field")===n)return i}return null},onRowMouseDown:function(e){Wn.getAttribute(e.target,"data-pc-section")==="rowreordericon"||Wn.getAttribute(e.target.parentElement,"data-pc-section")==="rowreordericon"?e.currentTarget.draggable=!0:e.currentTarget.draggable=!1},onRowDragStart:function(e){var n=e.originalEvent,r=e.index;this.rowDragging=!0,this.draggedRowIndex=r,n.dataTransfer.setData("text","b")},onRowDragOver:function(e){var n=e.originalEvent,r=e.index;if(this.rowDragging&&this.draggedRowIndex!==r){var i=n.currentTarget,a=Wn.getOffset(i).top+Wn.getWindowScrollTop(),o=n.pageY,l=a+Wn.getOuterHeight(i)/2,s=i.previousElementSibling;o<l?(i.setAttribute("data-p-datatable-dragpoint-bottom","false"),!this.isUnstyled&&Wn.removeClass(i,"p-datatable-dragpoint-bottom"),this.droppedRowIndex=r,s?(s.setAttribute("data-p-datatable-dragpoint-bottom","true"),!this.isUnstyled&&Wn.addClass(s,"p-datatable-dragpoint-bottom")):(i.setAttribute("data-p-datatable-dragpoint-top","true"),!this.isUnstyled&&Wn.addClass(i,"p-datatable-dragpoint-top"))):(s?(s.setAttribute("data-p-datatable-dragpoint-bottom","false"),!this.isUnstyled&&Wn.removeClass(s,"p-datatable-dragpoint-bottom")):(i.setAttribute("data-p-datatable-dragpoint-top","true"),!this.isUnstyled&&Wn.addClass(i,"p-datatable-dragpoint-top")),this.droppedRowIndex=r+1,i.setAttribute("data-p-datatable-dragpoint-bottom","true"),!this.isUnstyled&&Wn.addClass(i,"p-datatable-dragpoint-bottom")),n.preventDefault()}},onRowDragLeave:function(e){var n=e.currentTarget,r=n.previousElementSibling;r&&(r.setAttribute("data-p-datatable-dragpoint-bottom","false"),!this.isUnstyled&&Wn.removeClass(r,"p-datatable-dragpoint-bottom")),n.setAttribute("data-p-datatable-dragpoint-bottom","false"),!this.isUnstyled&&Wn.removeClass(n,"p-datatable-dragpoint-bottom"),n.setAttribute("data-p-datatable-dragpoint-top","false"),!this.isUnstyled&&Wn.removeClass(n,"p-datatable-dragpoint-top")},onRowDragEnd:function(e){this.rowDragging=!1,this.draggedRowIndex=null,this.droppedRowIndex=null,e.currentTarget.draggable=!1},onRowDrop:function(e){if(this.droppedRowIndex!=null){var n=this.draggedRowIndex>this.droppedRowIndex?this.droppedRowIndex:this.droppedRowIndex===0?0:this.droppedRowIndex-1,r=Qd(this.processedData);jn.reorderArray(r,this.draggedRowIndex+this.d_first,n+this.d_first),this.$emit("row-reorder",{originalEvent:e,dragIndex:this.draggedRowIndex,dropIndex:n,value:r})}this.onRowDragLeave(e),this.onRowDragEnd(e),e.preventDefault()},toggleRow:function(e){var n=this,r=e.expanded,i=ane(e,ine),a=e.data,o;if(this.dataKey){var l=jn.resolveFieldData(a,this.dataKey);o=this.expandedRows?qg({},this.expandedRows):{},r?o[l]=!0:delete o[l]}else o=this.expandedRows?Qd(this.expandedRows):[],r?o.push(a):o=o.filter(function(s){return!n.equals(a,s)});this.$emit("update:expandedRows",o),r?this.$emit("row-expand",i):this.$emit("row-collapse",i)},toggleRowGroup:function(e){var n=e.originalEvent,r=e.data,i=jn.resolveFieldData(r,this.groupRowsBy),a=this.expandedRowGroups?Qd(this.expandedRowGroups):[];this.isRowGroupExpanded(r)?(a=a.filter(function(o){return o!==i}),this.$emit("update:expandedRowGroups",a),this.$emit("rowgroup-collapse",{originalEvent:n,data:i})):(a.push(i),this.$emit("update:expandedRowGroups",a),this.$emit("rowgroup-expand",{originalEvent:n,data:i}))},isRowGroupExpanded:function(e){if(this.expandableRowGroups&&this.expandedRowGroups){var n=jn.resolveFieldData(e,this.groupRowsBy);return this.expandedRowGroups.indexOf(n)>-1}return!1},isStateful:function(){return this.stateKey!=null},getStorage:function(){switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}},saveState:function(){var e=this.getStorage(),n={};this.paginator&&(n.first=this.d_first,n.rows=this.d_rows),this.d_sortField&&(n.sortField=this.d_sortField,n.sortOrder=this.d_sortOrder),this.d_multiSortMeta&&(n.multiSortMeta=this.d_multiSortMeta),this.hasFilters&&(n.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(n),this.reorderableColumns&&(n.columnOrder=this.d_columnOrder),this.expandedRows&&(n.expandedRows=this.expandedRows),this.expandedRowGroups&&(n.expandedRowGroups=this.expandedRowGroups),this.selection&&(n.selection=this.selection,n.selectionKeys=this.d_selectionKeys),Object.keys(n).length&&e.setItem(this.stateKey,JSON.stringify(n)),this.$emit("state-save",n)},restoreState:function(){var e=this.getStorage(),n=e.getItem(this.stateKey),r=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/,i=function(l,s){return typeof s=="string"&&r.test(s)?new Date(s):s};if(n){var a=JSON.parse(n,i);this.paginator&&(this.d_first=a.first,this.d_rows=a.rows),a.sortField&&(this.d_sortField=a.sortField,this.d_sortOrder=a.sortOrder),a.multiSortMeta&&(this.d_multiSortMeta=a.multiSortMeta),a.filters&&this.$emit("update:filters",a.filters),this.resizableColumns&&(this.columnWidthsState=a.columnWidths,this.tableWidthState=a.tableWidth),this.reorderableColumns&&(this.d_columnOrder=a.columnOrder),a.expandedRows&&this.$emit("update:expandedRows",a.expandedRows),a.expandedRowGroups&&this.$emit("update:expandedRowGroups",a.expandedRowGroups),a.selection&&(this.d_selectionKeys=a.d_selectionKeys,this.$emit("update:selection",a.selection)),this.$emit("state-restore",a)}},saveColumnWidths:function(e){var n=[],r=Wn.find(this.$el,'thead[data-pc-section="thead"] > tr > th');r.forEach(function(i){return n.push(Wn.getOuterWidth(i))}),e.columnWidths=n.join(","),this.columnResizeMode==="expand"&&(e.tableWidth=Wn.getOuterWidth(this.$refs.table)+"px")},addColumnWidthStyles:function(e){this.createStyleElement();var n="",r='[data-pc-name="datatable"]['.concat(this.attributeSelector,'] > [data-pc-section="wrapper"] ').concat(this.virtualScrollerDisabled?"":'> [data-pc-name="virtualscroller"]',' > table[data-pc-section="table"]');e.forEach(function(i,a){var o="width: ".concat(i,"px !important; max-width: ").concat(i,"px !important");n+=` `.concat(r,' > thead[data-pc-section="thead"] > tr > th:nth-child(').concat(a+1,`), `).concat(r,' > tbody[data-pc-section="tbody"] > tr > td:nth-child(').concat(a+1,`), `).concat(r,' > tfoot[data-pc-section="tfoot"] > tr > td:nth-child(').concat(a+1,`) { `).concat(o,` } `)}),this.styleElement.innerHTML=n},restoreColumnWidths:function(){if(this.columnWidthsState){var e=this.columnWidthsState.split(",");this.columnResizeMode==="expand"&&this.tableWidthState&&(this.$refs.table.style.width=this.tableWidthState,this.$refs.table.style.minWidth=this.tableWidthState),jn.isNotEmpty(e)&&this.addColumnWidthStyles(e)}},onCellEditInit:function(e){this.$emit("cell-edit-init",e)},onCellEditComplete:function(e){this.$emit("cell-edit-complete",e)},onCellEditCancel:function(e){this.$emit("cell-edit-cancel",e)},onRowEditInit:function(e){var n=this.editingRows?Qd(this.editingRows):[];n.push(e.data),this.$emit("update:editingRows",n),this.$emit("row-edit-init",e)},onRowEditSave:function(e){var n=Qd(this.editingRows);n.splice(this.findIndex(e.data,n),1),this.$emit("update:editingRows",n),this.$emit("row-edit-save",e)},onRowEditCancel:function(e){var n=Qd(this.editingRows);n.splice(this.findIndex(e.data,n),1),this.$emit("update:editingRows",n),this.$emit("row-edit-cancel",e)},onEditingMetaChange:function(e){var n=e.data,r=e.field,i=e.index,a=e.editing,o=qg({},this.d_editingMeta),l=o[i];if(a)!l&&(l=o[i]={data:qg({},n),fields:[]}),l.fields.push(r);else if(l){var s=l.fields.filter(function(d){return d!==r});s.length?l.fields=s:delete o[i]}this.d_editingMeta=o},clearEditingMetaData:function(){this.editMode&&(this.d_editingMeta={})},createLazyLoadEvent:function(e){return{originalEvent:e,first:this.d_first,rows:this.d_rows,sortField:this.d_sortField,sortOrder:this.d_sortOrder,multiSortMeta:this.d_multiSortMeta,filters:this.d_filters}},hasGlobalFilter:function(){return this.filters&&Object.prototype.hasOwnProperty.call(this.filters,"global")},onFilterChange:function(e){this.d_filters=e},onFilterApply:function(){this.d_first=0,this.$emit("update:first",this.d_first),this.$emit("update:filters",this.d_filters),this.lazy&&this.$emit("filter",this.createLazyLoadEvent())},cloneFilters:function(){var e={};return this.filters&&Object.entries(this.filters).forEach(function(n){var r=cI(n,2),i=r[0],a=r[1];e[i]=a.operator?{operator:a.operator,constraints:a.constraints.map(function(o){return qg({},o)})}:qg({},a)}),e},updateReorderableColumns:function(){var e=this,n=[];this.columns.forEach(function(r){return n.push(e.columnProp(r,"columnKey")||e.columnProp(r,"field"))}),this.d_columnOrder=n},createStyleElement:function(){var e;this.styleElement=document.createElement("style"),this.styleElement.type="text/css",Wn.setAttribute(this.styleElement,"nonce",(e=this.$primevue)===null||e===void 0||(e=e.config)===null||e===void 0||(e=e.csp)===null||e===void 0?void 0:e.nonce),document.head.appendChild(this.styleElement)},createResponsiveStyle:function(){if(!this.responsiveStyleElement){var e;this.responsiveStyleElement=document.createElement("style"),this.responsiveStyleElement.type="text/css",Wn.setAttribute(this.responsiveStyleElement,"nonce",(e=this.$primevue)===null||e===void 0||(e=e.config)===null||e===void 0||(e=e.csp)===null||e===void 0?void 0:e.nonce),document.head.appendChild(this.responsiveStyleElement);var n=".p-datatable-wrapper ".concat(this.virtualScrollerDisabled?"":"> .p-virtualscroller"," > .p-datatable-table"),r=".p-datatable[".concat(this.attributeSelector,"] > ").concat(n),i=".p-datatable[".concat(this.attributeSelector,"].p-datatable-gridlines > ").concat(n),a=` @media screen and (max-width: `.concat(this.breakpoint,`) { `).concat(r,` > .p-datatable-thead > tr > th, `).concat(r,` > .p-datatable-tfoot > tr > td { display: none; } `).concat(r,` > .p-datatable-tbody > tr > td { display: flex; width: 100%; align-items: center; justify-content: space-between; } `).concat(r,` > .p-datatable-tbody > tr > td:not(:last-child) { border: 0 none; } `).concat(i,` > .p-datatable-tbody > tr > td:last-child { border-top: 0; border-right: 0; border-left: 0; } `).concat(r,` > .p-datatable-tbody > tr > td > .p-column-title { display: block; } } `);this.responsiveStyleElement.innerHTML=a}},destroyResponsiveStyle:function(){this.responsiveStyleElement&&(document.head.removeChild(this.responsiveStyleElement),this.responsiveStyleElement=null)},destroyStyleElement:function(){this.styleElement&&(document.head.removeChild(this.styleElement),this.styleElement=null)},dataToRender:function(e){var n=e||this.processedData;if(n&&this.paginator){var r=this.lazy?0:this.d_first;return n.slice(r,r+this.d_rows)}return n},getVirtualScrollerRef:function(){return this.$refs.virtualScroller},hasSpacerStyle:function(e){return jn.isNotEmpty(e)}},computed:{columns:function(){var e=this.d_columns.get(this);if(this.reorderableColumns&&this.d_columnOrder){var n=[],r=Um(this.d_columnOrder),i;try{for(r.s();!(i=r.n()).done;){var a=i.value,o=this.findColumnByKey(e,a);o&&!this.columnProp(o,"hidden")&&n.push(o)}}catch(l){r.e(l)}finally{r.f()}return[].concat(n,Qd(e.filter(function(l){return n.indexOf(l)<0})))}return e},columnGroups:function(){return this.d_columnGroups.get(this)},headerColumnGroup:function(){var e,n=this;return(e=this.columnGroups)===null||e===void 0?void 0:e.find(function(r){return n.columnProp(r,"type")==="header"})},footerColumnGroup:function(){var e,n=this;return(e=this.columnGroups)===null||e===void 0?void 0:e.find(function(r){return n.columnProp(r,"type")==="footer"})},hasFilters:function(){return this.filters&&Object.keys(this.filters).length>0&&this.filters.constructor===Object},processedData:function(){var e,n=this.value||[];return!this.lazy&&!((e=this.virtualScrollerOptions)!==null&&e!==void 0&&e.lazy)&&n&&n.length&&(this.hasFilters&&(n=this.filter(n)),this.sorted&&(this.sortMode==="single"?n=this.sortSingle(n):this.sortMode==="multiple"&&(n=this.sortMultiple(n)))),n},totalRecordsLength:function(){if(this.lazy)return this.totalRecords;var e=this.processedData;return e?e.length:0},empty:function(){var e=this.processedData;return!e||e.length===0},paginatorTop:function(){return this.paginator&&(this.paginatorPosition!=="bottom"||this.paginatorPosition==="both")},paginatorBottom:function(){return this.paginator&&(this.paginatorPosition!=="top"||this.paginatorPosition==="both")},sorted:function(){return this.d_sortField||this.d_multiSortMeta&&this.d_multiSortMeta.length>0},allRowsSelected:function(){var e=this;if(this.selectAll!==null)return this.selectAll;var n=this.frozenValue?[].concat(Qd(this.frozenValue),Qd(this.processedData)):this.processedData;return jn.isNotEmpty(n)&&this.selection&&Array.isArray(this.selection)&&n.every(function(r){return e.selection.some(function(i){return e.equals(i,r)})})},attributeSelector:function(){return Nu()},groupRowSortField:function(){return this.sortMode==="single"?this.sortField:this.d_groupRowsSortMeta?this.d_groupRowsSortMeta.field:null},virtualScrollerDisabled:function(){return jn.isEmpty(this.virtualScrollerOptions)||!this.scrollable}},components:{DTPaginator:YQ,DTTableHeader:lW,DTTableBody:rW,DTTableFooter:aW,DTVirtualScroller:ky,ArrowDownIcon:HS,ArrowUpIcon:xS,SpinnerIcon:Gp}};function k0(t){"@babel/helpers - typeof";return k0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},k0(t)}function uI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function fI(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?uI(Object(n),!0).forEach(function(r){pne(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):uI(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function pne(t,e,n){return e=mne(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function mne(t){var e=bne(t,"string");return k0(e)=="symbol"?e:String(e)}function bne(t,e){if(k0(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(k0(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function yne(t,e,n,r,i,a){var o=Li("SpinnerIcon"),l=Li("DTPaginator"),s=Li("DTTableHeader"),d=Li("DTTableBody"),c=Li("DTTableFooter"),u=Li("DTVirtualScroller");return oe(),Ce("div",Jt({class:t.cx("root"),"data-scrollselectors":".p-datatable-wrapper"},t.ptmi("root")),[Vi(t.$slots,"default"),t.loading?(oe(),Ce("div",Jt({key:0,class:t.cx("loadingOverlay")},t.ptm("loadingOverlay")),[t.$slots.loading?Vi(t.$slots,"loading",{key:0}):(oe(),Ce(Er,{key:1},[t.$slots.loadingicon?(oe(),Vn(ea(t.$slots.loadingicon),{key:0,class:Hr(t.cx("loadingIcon"))},null,8,["class"])):t.loadingIcon?(oe(),Ce("i",Jt({key:1,class:[t.cx("loadingIcon"),"pi-spin",t.loadingIcon]},t.ptm("loadingIcon")),null,16)):(oe(),Vn(o,Jt({key:2,spin:"",class:t.cx("loadingIcon")},t.ptm("loadingIcon")),null,16,["class"]))],64))],16)):Pt("",!0),t.$slots.header?(oe(),Ce("div",Jt({key:1,class:t.cx("header")},t.ptm("header")),[Vi(t.$slots,"header")],16)):Pt("",!0),a.paginatorTop?(oe(),Vn(l,{key:2,rows:i.d_rows,first:i.d_first,totalRecords:a.totalRecordsLength,pageLinkSize:t.pageLinkSize,template:t.paginatorTemplate,rowsPerPageOptions:t.rowsPerPageOptions,currentPageReportTemplate:t.currentPageReportTemplate,class:Hr(t.cx("paginator")),onPage:e[0]||(e[0]=function(h){return a.onPage(h)}),alwaysShow:t.alwaysShowPaginator,unstyled:t.unstyled,pt:t.ptm("paginator")},gp({_:2},[t.$slots.paginatorstart?{name:"start",fn:Yr(function(){return[Vi(t.$slots,"paginatorstart")]}),key:"0"}:void 0,t.$slots.paginatorend?{name:"end",fn:Yr(function(){return[Vi(t.$slots,"paginatorend")]}),key:"1"}:void 0,t.$slots.paginatorfirstpagelinkicon?{name:"firstpagelinkicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorfirstpagelinkicon",{class:Hr(h.class)})]}),key:"2"}:void 0,t.$slots.paginatorprevpagelinkicon?{name:"prevpagelinkicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorprevpagelinkicon",{class:Hr(h.class)})]}),key:"3"}:void 0,t.$slots.paginatornextpagelinkicon?{name:"nextpagelinkicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatornextpagelinkicon",{class:Hr(h.class)})]}),key:"4"}:void 0,t.$slots.paginatorlastpagelinkicon?{name:"lastpagelinkicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorlastpagelinkicon",{class:Hr(h.class)})]}),key:"5"}:void 0,t.$slots.paginatorjumptopagedropdownicon?{name:"jumptopagedropdownicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorjumptopagedropdownicon",{class:Hr(h.class)})]}),key:"6"}:void 0,t.$slots.paginatorrowsperpagedropdownicon?{name:"rowsperpagedropdownicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorrowsperpagedropdownicon",{class:Hr(h.class)})]}),key:"7"}:void 0]),1032,["rows","first","totalRecords","pageLinkSize","template","rowsPerPageOptions","currentPageReportTemplate","class","alwaysShow","unstyled","pt"])):Pt("",!0),Q("div",Jt({class:t.cx("wrapper"),style:[t.sx("wrapper"),{maxHeight:a.virtualScrollerDisabled?t.scrollHeight:""}]},t.ptm("wrapper")),[Fn(u,Jt({ref:"virtualScroller"},t.virtualScrollerOptions,{items:a.processedData,columns:a.columns,style:t.scrollHeight!=="flex"?{height:t.scrollHeight}:void 0,scrollHeight:t.scrollHeight!=="flex"?void 0:"100%",disabled:a.virtualScrollerDisabled,loaderDisabled:"",inline:"",autoSize:"",showSpacer:!1,pt:t.ptm("virtualScroller")}),{content:Yr(function(h){return[Q("table",Jt({ref:"table",role:"table",class:[t.cx("table"),t.tableClass],style:[t.tableStyle,h.spacerStyle]},fI(fI({},t.tableProps),t.ptm("table"))),[Fn(s,{columnGroup:a.headerColumnGroup,columns:h.columns,rowGroupMode:t.rowGroupMode,groupRowsBy:t.groupRowsBy,groupRowSortField:a.groupRowSortField,reorderableColumns:t.reorderableColumns,resizableColumns:t.resizableColumns,allRowsSelected:a.allRowsSelected,empty:a.empty,sortMode:t.sortMode,sortField:i.d_sortField,sortOrder:i.d_sortOrder,multiSortMeta:i.d_multiSortMeta,filters:i.d_filters,filtersStore:t.filters,filterDisplay:t.filterDisplay,filterInputProps:t.filterInputProps,first:i.d_first,onColumnClick:e[1]||(e[1]=function(f){return a.onColumnHeaderClick(f)}),onColumnMousedown:e[2]||(e[2]=function(f){return a.onColumnHeaderMouseDown(f)}),onFilterChange:a.onFilterChange,onFilterApply:a.onFilterApply,onColumnDragstart:e[3]||(e[3]=function(f){return a.onColumnHeaderDragStart(f)}),onColumnDragover:e[4]||(e[4]=function(f){return a.onColumnHeaderDragOver(f)}),onColumnDragleave:e[5]||(e[5]=function(f){return a.onColumnHeaderDragLeave(f)}),onColumnDrop:e[6]||(e[6]=function(f){return a.onColumnHeaderDrop(f)}),onColumnResizestart:e[7]||(e[7]=function(f){return a.onColumnResizeStart(f)}),onCheckboxChange:e[8]||(e[8]=function(f){return a.toggleRowsWithCheckbox(f)}),unstyled:t.unstyled,pt:t.pt},null,8,["columnGroup","columns","rowGroupMode","groupRowsBy","groupRowSortField","reorderableColumns","resizableColumns","allRowsSelected","empty","sortMode","sortField","sortOrder","multiSortMeta","filters","filtersStore","filterDisplay","filterInputProps","first","onFilterChange","onFilterApply","unstyled","pt"]),t.frozenValue?(oe(),Vn(d,{key:0,ref:"frozenBodyRef",value:t.frozenValue,frozenRow:!0,columns:h.columns,first:i.d_first,dataKey:t.dataKey,selection:t.selection,selectionKeys:i.d_selectionKeys,selectionMode:t.selectionMode,contextMenu:t.contextMenu,contextMenuSelection:t.contextMenuSelection,rowGroupMode:t.rowGroupMode,groupRowsBy:t.groupRowsBy,expandableRowGroups:t.expandableRowGroups,rowClass:t.rowClass,rowStyle:t.rowStyle,editMode:t.editMode,compareSelectionBy:t.compareSelectionBy,scrollable:t.scrollable,expandedRowIcon:t.expandedRowIcon,collapsedRowIcon:t.collapsedRowIcon,expandedRows:t.expandedRows,expandedRowGroups:t.expandedRowGroups,editingRows:t.editingRows,editingRowKeys:i.d_editingRowKeys,templates:t.$slots,responsiveLayout:t.responsiveLayout,isVirtualScrollerDisabled:!0,onRowgroupToggle:a.toggleRowGroup,onRowClick:e[9]||(e[9]=function(f){return a.onRowClick(f)}),onRowDblclick:e[10]||(e[10]=function(f){return a.onRowDblClick(f)}),onRowRightclick:e[11]||(e[11]=function(f){return a.onRowRightClick(f)}),onRowTouchend:a.onRowTouchEnd,onRowKeydown:a.onRowKeyDown,onRowMousedown:a.onRowMouseDown,onRowDragstart:e[12]||(e[12]=function(f){return a.onRowDragStart(f)}),onRowDragover:e[13]||(e[13]=function(f){return a.onRowDragOver(f)}),onRowDragleave:e[14]||(e[14]=function(f){return a.onRowDragLeave(f)}),onRowDragend:e[15]||(e[15]=function(f){return a.onRowDragEnd(f)}),onRowDrop:e[16]||(e[16]=function(f){return a.onRowDrop(f)}),onRowToggle:e[17]||(e[17]=function(f){return a.toggleRow(f)}),onRadioChange:e[18]||(e[18]=function(f){return a.toggleRowWithRadio(f)}),onCheckboxChange:e[19]||(e[19]=function(f){return a.toggleRowWithCheckbox(f)}),onCellEditInit:e[20]||(e[20]=function(f){return a.onCellEditInit(f)}),onCellEditComplete:e[21]||(e[21]=function(f){return a.onCellEditComplete(f)}),onCellEditCancel:e[22]||(e[22]=function(f){return a.onCellEditCancel(f)}),onRowEditInit:e[23]||(e[23]=function(f){return a.onRowEditInit(f)}),onRowEditSave:e[24]||(e[24]=function(f){return a.onRowEditSave(f)}),onRowEditCancel:e[25]||(e[25]=function(f){return a.onRowEditCancel(f)}),editingMeta:i.d_editingMeta,onEditingMetaChange:a.onEditingMetaChange,unstyled:t.unstyled,pt:t.pt},null,8,["value","columns","first","dataKey","selection","selectionKeys","selectionMode","contextMenu","contextMenuSelection","rowGroupMode","groupRowsBy","expandableRowGroups","rowClass","rowStyle","editMode","compareSelectionBy","scrollable","expandedRowIcon","collapsedRowIcon","expandedRows","expandedRowGroups","editingRows","editingRowKeys","templates","responsiveLayout","onRowgroupToggle","onRowTouchend","onRowKeydown","onRowMousedown","editingMeta","onEditingMetaChange","unstyled","pt"])):Pt("",!0),Fn(d,{ref:"bodyRef",value:a.dataToRender(h.rows),class:Hr(h.styleClass),columns:h.columns,empty:a.empty,first:i.d_first,dataKey:t.dataKey,selection:t.selection,selectionKeys:i.d_selectionKeys,selectionMode:t.selectionMode,contextMenu:t.contextMenu,contextMenuSelection:t.contextMenuSelection,rowGroupMode:t.rowGroupMode,groupRowsBy:t.groupRowsBy,expandableRowGroups:t.expandableRowGroups,rowClass:t.rowClass,rowStyle:t.rowStyle,editMode:t.editMode,compareSelectionBy:t.compareSelectionBy,scrollable:t.scrollable,expandedRowIcon:t.expandedRowIcon,collapsedRowIcon:t.collapsedRowIcon,expandedRows:t.expandedRows,expandedRowGroups:t.expandedRowGroups,editingRows:t.editingRows,editingRowKeys:i.d_editingRowKeys,templates:t.$slots,responsiveLayout:t.responsiveLayout,virtualScrollerContentProps:h,isVirtualScrollerDisabled:a.virtualScrollerDisabled,onRowgroupToggle:a.toggleRowGroup,onRowClick:e[26]||(e[26]=function(f){return a.onRowClick(f)}),onRowDblclick:e[27]||(e[27]=function(f){return a.onRowDblClick(f)}),onRowRightclick:e[28]||(e[28]=function(f){return a.onRowRightClick(f)}),onRowTouchend:a.onRowTouchEnd,onRowKeydown:function(g){return a.onRowKeyDown(g,h)},onRowMousedown:a.onRowMouseDown,onRowDragstart:e[29]||(e[29]=function(f){return a.onRowDragStart(f)}),onRowDragover:e[30]||(e[30]=function(f){return a.onRowDragOver(f)}),onRowDragleave:e[31]||(e[31]=function(f){return a.onRowDragLeave(f)}),onRowDragend:e[32]||(e[32]=function(f){return a.onRowDragEnd(f)}),onRowDrop:e[33]||(e[33]=function(f){return a.onRowDrop(f)}),onRowToggle:e[34]||(e[34]=function(f){return a.toggleRow(f)}),onRadioChange:e[35]||(e[35]=function(f){return a.toggleRowWithRadio(f)}),onCheckboxChange:e[36]||(e[36]=function(f){return a.toggleRowWithCheckbox(f)}),onCellEditInit:e[37]||(e[37]=function(f){return a.onCellEditInit(f)}),onCellEditComplete:e[38]||(e[38]=function(f){return a.onCellEditComplete(f)}),onCellEditCancel:e[39]||(e[39]=function(f){return a.onCellEditCancel(f)}),onRowEditInit:e[40]||(e[40]=function(f){return a.onRowEditInit(f)}),onRowEditSave:e[41]||(e[41]=function(f){return a.onRowEditSave(f)}),onRowEditCancel:e[42]||(e[42]=function(f){return a.onRowEditCancel(f)}),editingMeta:i.d_editingMeta,onEditingMetaChange:a.onEditingMetaChange,unstyled:t.unstyled,pt:t.pt},null,8,["value","class","columns","empty","first","dataKey","selection","selectionKeys","selectionMode","contextMenu","contextMenuSelection","rowGroupMode","groupRowsBy","expandableRowGroups","rowClass","rowStyle","editMode","compareSelectionBy","scrollable","expandedRowIcon","collapsedRowIcon","expandedRows","expandedRowGroups","editingRows","editingRowKeys","templates","responsiveLayout","virtualScrollerContentProps","isVirtualScrollerDisabled","onRowgroupToggle","onRowTouchend","onRowKeydown","onRowMousedown","editingMeta","onEditingMetaChange","unstyled","pt"]),a.hasSpacerStyle(h.spacerStyle)?(oe(),Ce("tbody",Jt({key:1,class:t.cx("virtualScrollerSpacer"),style:{height:"calc(".concat(h.spacerStyle.height," - ").concat(h.rows.length*h.itemSize,"px)")}},t.ptm("virtualScrollerSpacer")),null,16)):Pt("",!0),Fn(c,{columnGroup:a.footerColumnGroup,columns:h.columns,pt:t.pt},null,8,["columnGroup","columns","pt"])],16)]}),_:1},16,["items","columns","style","scrollHeight","disabled","pt"])],16),t.$slots.footer?(oe(),Ce("div",Jt({key:3,class:t.cx("footer")},t.ptm("footer")),[Vi(t.$slots,"footer")],16)):Pt("",!0),a.paginatorBottom?(oe(),Vn(l,{key:4,rows:i.d_rows,first:i.d_first,totalRecords:a.totalRecordsLength,pageLinkSize:t.pageLinkSize,template:t.paginatorTemplate,rowsPerPageOptions:t.rowsPerPageOptions,currentPageReportTemplate:t.currentPageReportTemplate,class:Hr(t.cx("paginator")),onPage:e[43]||(e[43]=function(h){return a.onPage(h)}),alwaysShow:t.alwaysShowPaginator,unstyled:t.unstyled,pt:t.ptm("paginator")},gp({_:2},[t.$slots.paginatorstart?{name:"start",fn:Yr(function(){return[Vi(t.$slots,"paginatorstart")]}),key:"0"}:void 0,t.$slots.paginatorend?{name:"end",fn:Yr(function(){return[Vi(t.$slots,"paginatorend")]}),key:"1"}:void 0,t.$slots.paginatorfirstpagelinkicon?{name:"firstpagelinkicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorfirstpagelinkicon",{class:Hr(h.class)})]}),key:"2"}:void 0,t.$slots.paginatorprevpagelinkicon?{name:"prevpagelinkicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorprevpagelinkicon",{class:Hr(h.class)})]}),key:"3"}:void 0,t.$slots.paginatornextpagelinkicon?{name:"nextpagelinkicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatornextpagelinkicon",{class:Hr(h.class)})]}),key:"4"}:void 0,t.$slots.paginatorlastpagelinkicon?{name:"lastpagelinkicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorlastpagelinkicon",{class:Hr(h.class)})]}),key:"5"}:void 0,t.$slots.paginatorjumptopagedropdownicon?{name:"jumptopagedropdownicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorjumptopagedropdownicon",{class:Hr(h.class)})]}),key:"6"}:void 0,t.$slots.paginatorrowsperpagedropdownicon?{name:"rowsperpagedropdownicon",fn:Yr(function(h){return[Vi(t.$slots,"paginatorrowsperpagedropdownicon",{class:Hr(h.class)})]}),key:"7"}:void 0]),1032,["rows","first","totalRecords","pageLinkSize","template","rowsPerPageOptions","currentPageReportTemplate","class","alwaysShow","unstyled","pt"])):Pt("",!0),Q("div",Jt({ref:"resizeHelper",class:t.cx("resizeHelper"),style:{display:"none"}},t.ptm("resizeHelper")),null,16),t.reorderableColumns?(oe(),Ce("span",Jt({key:5,ref:"reorderIndicatorUp",class:t.cx("reorderIndicatorUp"),style:{position:"absolute",display:"none"}},t.ptm("reorderIndicatorUp")),[(oe(),Vn(ea(t.$slots.reorderindicatorupicon||"ArrowDownIcon")))],16)):Pt("",!0),t.reorderableColumns?(oe(),Ce("span",Jt({key:6,ref:"reorderIndicatorDown",class:t.cx("reorderIndicatorDown"),style:{position:"absolute",display:"none"}},t.ptm("reorderIndicatorDown")),[(oe(),Vn(ea(t.$slots.reorderindicatordownicon||"ArrowUpIcon")))],16)):Pt("",!0)],16)}Jp.render=yne;var Fne={},Qne={name:"BaseColumn",extends:nl,props:{columnKey:{type:null,default:null},field:{type:[String,Function],default:null},sortField:{type:[String,Function],default:null},filterField:{type:[String,Function],default:null},dataType:{type:String,default:"text"},sortable:{type:Boolean,default:!1},header:{type:null,default:null},footer:{type:null,default:null},style:{type:null,default:null},class:{type:String,default:null},headerStyle:{type:null,default:null},headerClass:{type:String,default:null},bodyStyle:{type:null,default:null},bodyClass:{type:String,default:null},footerStyle:{type:null,default:null},footerClass:{type:String,default:null},showFilterMenu:{type:Boolean,default:!0},showFilterOperator:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showApplyButton:{type:Boolean,default:!0},showFilterMatchModes:{type:Boolean,default:!0},showAddButton:{type:Boolean,default:!0},filterMatchModeOptions:{type:Array,default:null},maxConstraints:{type:Number,default:2},excludeGlobalFilter:{type:Boolean,default:!1},filterHeaderClass:{type:String,default:null},filterHeaderStyle:{type:null,default:null},filterMenuClass:{type:String,default:null},filterMenuStyle:{type:null,default:null},selectionMode:{type:String,default:null},expander:{type:Boolean,default:!1},colspan:{type:Number,default:null},rowspan:{type:Number,default:null},rowReorder:{type:Boolean,default:!1},rowReorderIcon:{type:String,default:void 0},reorderableColumn:{type:Boolean,default:!0},rowEditor:{type:Boolean,default:!1},frozen:{type:Boolean,default:!1},alignFrozen:{type:String,default:"left"},exportable:{type:Boolean,default:!0},exportHeader:{type:String,default:null},exportFooter:{type:String,default:null},filterMatchMode:{type:String,default:null},hidden:{type:Boolean,default:!1}},style:Fne,provide:function(){return{$parentInstance:this}}},ks={name:"Column",extends:Qne,inheritAttrs:!1,inject:["$columns"],mounted:function(){var e;(e=this.$columns)===null||e===void 0||e.add(this.$)},unmounted:function(){var e;(e=this.$columns)===null||e===void 0||e.delete(this.$)},render:function(){return null}},Une={root:{position:"relative"}},Rne={root:function(e){var n=e.props;return["p-skeleton p-component",{"p-skeleton-circle":n.shape==="circle","p-skeleton-none":n.animation==="none"}]}},Bne=Ld.extend({name:"skeleton",classes:Rne,inlineStyles:Une}),Zne={name:"BaseSkeleton",extends:nl,props:{shape:{type:String,default:"rectangle"},size:{type:String,default:null},width:{type:String,default:"100%"},height:{type:String,default:"1rem"},borderRadius:{type:String,default:null},animation:{type:String,default:"wave"}},style:Bne,provide:function(){return{$parentInstance:this}}},bA={name:"Skeleton",extends:Zne,inheritAttrs:!1,computed:{containerStyle:function(){return this.size?{width:this.size,height:this.size,borderRadius:this.borderRadius}:{width:this.width,height:this.height,borderRadius:this.borderRadius}}}};function Ine(t,e,n,r,i,a){return oe(),Ce("div",Jt({class:t.cx("root"),style:[t.sx("root"),a.containerStyle],"aria-hidden":"true"},t.ptmi("root")),null,16)}bA.render=Ine;const Cne={__name:"SkeletonTable",setup(t){return(e,n)=>(oe(),Ce(Er,null,ia(10,r=>Fn(ct(bA),{key:r,class:"table-skeleton",shape:"rectangle",height:"50px",style:{"margin-bottom":"20px"}})),64))}},UA=Pi(Cne,[["__scopeId","data-v-e4934cc4"]]),vne={class:"blue-column"},Vne={class:"blue-column"},Ene={__name:"Pending_OrdersTable",setup(t){const{toast:e,loading:n}=va(),{handlePagination:r,getResult:i}=Fg(),a=hn(1),o=l=>{a.value=l,r("provider/un-pricing-orders?page=",l)};return Ka(()=>{r("provider/un-pricing-orders?page=",a.value)}),(l,s)=>{var c,u,h,f,g,A,b,p;const d=Li("RouterLink");return oe(),Ce("div",null,[((u=(c=ct(i))==null?void 0:c.data)==null?void 0:u.orders.length)===0&&ct(n)?(oe(),Vn(UA,{key:0})):((f=(h=ct(i))==null?void 0:h.data)==null?void 0:f.orders.length)===0&&!ct(n)?(oe(),Vn(Fh,{key:1})):(oe(),Vn(ct(Jp),{key:2,value:(A=(g=ct(i))==null?void 0:g.data)==null?void 0:A.orders,tableStyle:"width:100%;overflow-x:scroll;",class:"table centered-table unpricing-table"},{default:Yr(()=>[Fn(ct(ks),{field:"id",header:l.$t("pending_orders.order_num"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"user_name",header:l.$t("pending_orders.name"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"order_date",header:l.$t("pending_orders.date"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"order_time",header:l.$t("pending_orders.time"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{header:l.$t("pending_orders.product_name"),style:{minWidth:"120px"}},{body:Yr(y=>[Q("span",vne,ce(y.data.product_name),1)]),_:1},8,["header"]),Fn(ct(ks),{header:l.$t("pending_orders.quantity"),style:{minWidth:"120px"}},{body:Yr(y=>[Q("span",Vne,ce(y.data.quantity),1)]),_:1},8,["header"]),Fn(ct(ks),null,{body:Yr(y=>[Fn(d,{to:"pending_order_details/"+y.data.id,class:"image blue-column"},{default:Yr(()=>s[0]||(s[0]=[Q("span",{class:"pi pi-angle-left"},null,-1)])),_:2},1032,["to"])]),_:1})]),_:1},8,["value"])),Fn(yg,{data:(p=(b=ct(i))==null?void 0:b.data)==null?void 0:p.pagination,onHandlePagination:o},null,8,["data"]),Fn(ct(ol),{ref_key:"toast",ref:e,position:"top-right"},null,512)])}}},Sne=Pi(Ene,[["__scopeId","data-v-5550163a"]]),Wne={class:"page_content"},Nne={__name:"Pending_Orders",setup(t){return(e,n)=>(oe(),Ce("div",Wne,[Fn(Sne)]))}},hI=Pi(Nne,[["__scopeId","data-v-abbd279d"]]),Gne={class:"order_items"},Jne={class:"order_item page_content"},Tne={class:"content"},Xne={class:"image"},kne=["src"],wne={class:"info"},Yne={class:"row"},Dne={class:"row"},Mne={key:0,class:"order_item page_content"},Lne={class:"content"},Hne={class:"image"},xne=["src"],One={class:"info"},Kne={class:"row"},Pne={class:"row"},zne={class:"order_item page_content product_info"},jne={class:"image"},_ne=["src"],$ne={class:"info"},qne={key:0,class:"row"},ere={key:1,class:"row"},tre={key:1,class:"order_item order_info page_content"},nre={class:"content"},rre={key:0,class:"tab"},ire={key:1,class:"tab"},are={key:2,class:"tab"},ore={key:3,class:"tab"},lre={key:4,class:"tab"},sre={key:5,class:"tab"},dre={key:6,class:"tab"},cre={key:7,class:"tab"},ure={key:8,class:"tab"},fre={key:9,class:"tab full_width"},hre={key:10,class:"tab full_width"},gre={key:2,class:"order_item page_content fatoorah_info"},Are={class:"content"},pre={key:0,class:"row"},mre={key:1,class:"row"},bre={key:2,class:"row"},yre={key:3,class:"row"},Fre={key:0,class:"fatorah_text"},Qre={class:"submit_buttons"},Ure={class:"main-btn"},Rre={__name:"UnPricingOrderDetails",setup(t){const e=dc();e.params.id;const{getMethod:n,postMethod:r,getResult:i,loading:a,toast:o}=va(),l=hn(),s=hn(),d=hn();return yi(()=>{var c;return(c=i==null?void 0:i.value)==null?void 0:c.data},c=>{var u,h;c&&(l.value=c==null?void 0:c.order_info,s.value=(u=c==null?void 0:c.order_info)==null?void 0:u.status,d.value=(h=c==null?void 0:c.receiving_method)==null?void 0:h.value)}),Ka(()=>{n(`provider/un-pricing-orders/details/${e.params.id}`,!0)}),(c,u)=>{var h,f,g,A,b,p,y,m,F,R,C,B,N,S,X,J,E,v,j,H,K,Fe,z,q,Ae,Ke,pe,We,xe,$e,Rt,Be,qe,at,Bt,jt,Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee,Ge,he,$,ie,Ve,_e,we,nt,Gt,An,Dn,tr,nr,zn,dr,Dr,ui,Pn,hr,xr,Hi,Di,Da,oi,Ra,Va,fi,_a,dn,St,mn,_n,vr,ha,Mi,Fi,In,Fa,Ml,hi,ml,$o,Qa,Gl,Gi,Lt,$t,At,bt,zt,Ot,Ct,Kt,cn,Jn,qt,Mn,mr,Ur,sr,Nn,Gr,$r,kr,Mr,Ba,Io,qo,Si,Go,ca,Za,ta,bo,Eo,jl,So,so,Ll,Ko,Co,ti,yo,ss;return oe(),Ce("div",null,[Q("div",Gne,[Q("div",Jne,[Q("h4",null,ce(c.$t("order_details.info_title")),1),u[1]||(u[1]=Q("hr",null,null,-1)),Q("div",Tne,[Q("div",Xne,[Q("img",{src:(g=(f=(h=ct(i))==null?void 0:h.data)==null?void 0:f.user)==null?void 0:g.image,alt:"image",loading:"lazy"},null,8,kne)]),Q("div",wne,[Q("div",Yne,[Q("h3",null,ce((p=(b=(A=ct(i))==null?void 0:A.data)==null?void 0:b.user)==null?void 0:p.name),1),Q("h5",null,ce((m=(y=ct(i))==null?void 0:y.data)==null?void 0:m.order_time),1)]),Q("div",Dne,[Q("h3",null,ce(c.$t("order_details.order_num"))+" : "+ce((R=(F=ct(i))==null?void 0:F.data)==null?void 0:R.order_num),1),Q("h5",null,[u[0]||(u[0]=Q("i",{class:"pi pi-star-fill"},null,-1)),Ni(" "+ce((N=(B=(C=ct(i))==null?void 0:C.data)==null?void 0:B.user)==null?void 0:N.avg_rates),1)])])])])]),(X=(S=ct(i))==null?void 0:S.data)!=null&&X.delegate?(oe(),Ce("div",Mne,[Q("h4",null,ce(c.$t("order_details.delivery_title")),1),u[3]||(u[3]=Q("hr",null,null,-1)),Q("div",Lne,[Q("div",Hne,[Q("img",{src:(v=(E=(J=ct(i))==null?void 0:J.data)==null?void 0:E.delegate)==null?void 0:v.image,alt:"image",loading:"lazy"},null,8,xne)]),Q("div",One,[Q("div",Kne,[Q("h3",null,ce((K=(H=(j=ct(i))==null?void 0:j.data)==null?void 0:H.delegate)==null?void 0:K.name),1)]),Q("div",Pne,[Q("h3",null,ce(c.$t("order_details.car_plat_number"))+" : "+ce((q=(z=(Fe=ct(i))==null?void 0:Fe.data)==null?void 0:z.delegate)==null?void 0:q.car_plat_number),1),Q("h5",null,[u[2]||(u[2]=Q("i",{class:"pi pi-mobile"},null,-1)),Ni(" "+ce((pe=(Ke=(Ae=ct(i))==null?void 0:Ae.data)==null?void 0:Ke.delegate)==null?void 0:pe.full_phone),1)])])])])])):Pt("",!0),Q("div",zne,[Q("div",jne,[Q("img",{src:($e=(xe=(We=ct(i))==null?void 0:We.data)==null?void 0:xe.product)==null?void 0:$e.image,alt:"image",loading:"lazy"},null,8,_ne)]),Q("div",$ne,[Q("h2",null,ce((qe=(Be=(Rt=ct(i))==null?void 0:Rt.data)==null?void 0:Be.product)==null?void 0:qe.name),1),Q("p",null,ce((jt=(Bt=(at=ct(i))==null?void 0:at.data)==null?void 0:Bt.product)==null?void 0:jt.description),1),Q("ul",null,[(ve=(Je=(Ne=ct(i))==null?void 0:Ne.data)==null?void 0:Je.product)!=null&&ve.price?(oe(),Ce("li",qne,[Q("h3",null,[Ni(ce(c.$t("order_details.price"))+" : ",1),Q("span",null,ce((Qt=(it=(Ye=ct(i))==null?void 0:Ye.data)==null?void 0:it.product)==null?void 0:Qt.price)+" ر.س",1)])])):Pt("",!0),(Ee=(Dt=(_t=ct(i))==null?void 0:_t.data)==null?void 0:Dt.product)!=null&&Ee.quantity?(oe(),Ce("li",ere,[Q("h3",null,ce(c.$t("order_details.quantity"))+" :",1),Q("span",null,ce(($=(he=(Ge=ct(i))==null?void 0:Ge.data)==null?void 0:he.product)==null?void 0:$.quantity),1)])):Pt("",!0)])])]),l.value?(oe(),Ce("div",tre,[Q("h4",null,ce(c.$t("order_details.order_title")),1),u[4]||(u[4]=Q("hr",null,null,-1)),Q("div",nre,[(ie=l.value)!=null&&ie.car_color?(oe(),Ce("div",rre,[Q("h5",null,ce(c.$t("order_details.car_color")),1),Q("h6",null,ce((Ve=l.value)==null?void 0:Ve.car_color),1)])):Pt("",!0),(_e=l.value)!=null&&_e.car_model?(oe(),Ce("div",ire,[Q("h5",null,ce(c.$t("order_details.car_model")),1),Q("h6",null,ce((we=l.value)==null?void 0:we.car_model),1)])):Pt("",!0),(nt=l.value)!=null&&nt.car_plat_number?(oe(),Ce("div",are,[Q("h5",null,ce(c.$t("order_details.car_plat_number")),1),Q("h6",null,ce((Gt=l.value)==null?void 0:Gt.car_plat_number),1)])):Pt("",!0),(Dn=(An=l.value)==null?void 0:An.receiving_method)!=null&&Dn.text?(oe(),Ce("div",ore,[Q("h5",null,ce(c.$t("order_details.order_delivery")),1),Q("h6",null,ce((nr=(tr=l.value)==null?void 0:tr.receiving_method)==null?void 0:nr.text),1)])):Pt("",!0),(dr=(zn=ct(i))==null?void 0:zn.data)!=null&&dr.map_desc?(oe(),Ce("div",lre,[Q("h5",null,ce(c.$t("order_details.order_delivery")),1),Q("h6",null,ce((ui=(Dr=ct(i))==null?void 0:Dr.data)==null?void 0:ui.map_desc),1)])):Pt("",!0),(Pn=l.value)!=null&&Pn.order_type?(oe(),Ce("div",sre,[Q("h5",null,ce(c.$t("order_details.order_type")),1),Q("h6",null,ce((xr=(hr=l.value)==null?void 0:hr.order_type)==null?void 0:xr.text),1)])):Pt("",!0),(Hi=s.value)!=null&&Hi.text?(oe(),Ce("div",dre,[Q("h5",null,ce(c.$t("order_details.order_status")),1),Q("h6",null,ce((Di=s.value)==null?void 0:Di.text),1)])):Pt("",!0),(oi=(Da=l.value)==null?void 0:Da.order_type)!=null&&oi.slug&&((Ra=l.value)!=null&&Ra.created_at||(Va=l.value)!=null&&Va.schedule_execution_date)?(oe(),Ce("div",cre,[Q("h5",null,ce(c.$t("order_details.order_date")),1),Q("h6",null,ce(((_a=(fi=l.value)==null?void 0:fi.order_type)==null?void 0:_a.slug)==="immediately"?(dn=l.value)==null?void 0:dn.created_at:(St=l.value)==null?void 0:St.schedule_execution_date),1)])):Pt("",!0),(_n=(mn=l.value)==null?void 0:mn.order_type)!=null&&_n.slug&&((vr=l.value)!=null&&vr.created_at_time||(ha=l.value)!=null&&ha.schedule_execution_time)?(oe(),Ce("div",ure,[Q("h5",null,ce(c.$t("order_details.order_time")),1),Q("h6",null,ce(((Fi=(Mi=l.value)==null?void 0:Mi.order_type)==null?void 0:Fi.slug)==="immediately"?(In=l.value)==null?void 0:In.created_at_time:(Fa=l.value)==null?void 0:Fa.schedule_execution_time),1)])):Pt("",!0),(Ml=l.value)!=null&&Ml.receiving_in_store_notes?(oe(),Ce("div",fre,[Q("h5",null,ce(c.$t("order_details.recieve_details")),1),Q("h6",null,ce((hi=l.value)==null?void 0:hi.receiving_in_store_notes),1)])):Pt("",!0),(ml=l.value)!=null&&ml.notes?(oe(),Ce("div",hre,[Q("h5",null,ce(c.$t("order_details.notes")),1),Q("h6",null,ce(($o=l.value)==null?void 0:$o.notes),1)])):Pt("",!0)])])):Pt("",!0),(Gl=(Qa=ct(i))==null?void 0:Qa.data)!=null&&Gl.invoice&&((At=($t=(Lt=(Gi=ct(i))==null?void 0:Gi.data)==null?void 0:Lt.invoice)==null?void 0:$t.status)==null?void 0:At.value)==0?(oe(),Ce("div",gre,[Q("h4",null,ce(c.$t("order_details.fatoorah_title")),1),u[5]||(u[5]=Q("hr",null,null,-1)),Q("div",Are,[(Ot=(zt=(bt=ct(i))==null?void 0:bt.data)==null?void 0:zt.invoice)!=null&&Ot.total?(oe(),Ce("div",pre,[Q("h3",null,ce(c.$t("order_details.order_value")),1),Q("h5",null,ce((cn=(Kt=(Ct=ct(i))==null?void 0:Ct.data)==null?void 0:Kt.invoice)==null?void 0:cn.total),1)])):Pt("",!0),((mr=(Mn=(qt=(Jn=ct(i))==null?void 0:Jn.data)==null?void 0:qt.order_info)==null?void 0:Mn.receiving_method)==null?void 0:mr.value)==2&&((Nn=(sr=(Ur=ct(i))==null?void 0:Ur.data)==null?void 0:sr.invoice)!=null&&Nn.delivery_price)?(oe(),Ce("div",mre,[Q("h3",null,ce(c.$t("order_details.delivery_fee")),1),Q("h5",null,ce((kr=($r=(Gr=ct(i))==null?void 0:Gr.data)==null?void 0:$r.invoice)==null?void 0:kr.delivery_price),1)])):Pt("",!0),(Io=(Ba=(Mr=ct(i))==null?void 0:Mr.data)==null?void 0:Ba.invoice)!=null&&Io.vat_amount?(oe(),Ce("div",bre,[Q("h3",null,ce(c.$t("order_details.vat_amount")),1),Q("h5",null,ce((Go=(Si=(qo=ct(i))==null?void 0:qo.data)==null?void 0:Si.invoice)==null?void 0:Go.vat_amount),1)])):Pt("",!0),(ta=(Za=(ca=ct(i))==null?void 0:ca.data)==null?void 0:Za.invoice)!=null&&ta.final_total?(oe(),Ce("div",yre,[Q("h3",null,ce(c.$t("order_details.total_amount")),1),Q("h5",null,ce((jl=(Eo=(bo=ct(i))==null?void 0:bo.data)==null?void 0:Eo.invoice)==null?void 0:jl.final_total),1)])):Pt("",!0)])])):Pt("",!0)]),((Ko=(Ll=(so=(So=ct(i))==null?void 0:So.data)==null?void 0:so.invoice)==null?void 0:Ll.status)==null?void 0:Ko.value)==0?(oe(),Ce("h6",Fre,ce(c.$t("order_details.receipt_text")),1)):Pt("",!0),Q("div",Qre,[Q("button",Ure,[Fn(ct(Ts),{to:"/chats?id="+((ti=(Co=ct(i))==null?void 0:Co.data)==null?void 0:ti.room_id)+"&order_num="+((ss=(yo=ct(i))==null?void 0:yo.data)==null?void 0:ss.id)},{default:Yr(()=>[Ni(ce(c.$t("order_details.chat")),1)]),_:1},8,["to"])])]),ct(a)?(oe(),Vn(Ru,{key:1})):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512)])}}},gI=Pi(Rre,[["__scopeId","data-v-35e80316"]]),xQ="/assets/warning-BnY2uYC3.gif",Bre={class:"popup"},Zre={class:"content"},Ire={class:"buttons"},Cre={__name:"DeleteProductPopup",emits:["handleShowDeleteProductPopup","handleDeleteProduct"],setup(t,{emit:e}){const n=e;return(r,i)=>(oe(),Ce("div",null,[Q("div",Bre,[Q("div",Zre,[Q("button",{class:"close_btn",onClick:i[0]||(i[0]=a=>n("handleShowDeleteProductPopup"))},i[3]||(i[3]=[Q("i",{class:"pi pi-times"},null,-1)])),i[4]||(i[4]=Q("div",{class:"image"},[Q("img",{src:xQ,alt:"image",loading:"lazy"})],-1)),Q("h5",null,ce(r.$t("delete_product_popup.title")),1),Q("p",null,ce(r.$t("delete_popup.text")),1),Q("div",Ire,[Q("button",{class:"main-btn",onClick:i[1]||(i[1]=a=>n("handleShowDeleteProductPopup"))},ce(r.$t("delete_popup.cancel")),1),Q("button",{class:"main-btn delete_btn",onClick:i[2]||(i[2]=a=>n("handleDeleteProduct"))},ce(r.$t("delete_popup.confirm")),1)])])])]))}},vre={class:"image"},Vre=["src"],Ere={class:"blue-column"},Sre={class:"buttons"},Wre=["onClick"],Nre={__name:"ProductsTable",props:{loading:{type:Boolean,default:!1}},emits:["handleShowDeleteProductPopup","handlePagination"],setup(t,{emit:e}){const n=po(),{handlePagination:r,getResult:i}=Fg(),a=e,o=s=>{n.handleStoreProductId(s),a("handleShowDeleteProductPopup",s)},l=s=>{n.storeProductsPageNum(s),r("provider/products?page=",s)};return Ka(()=>{r("provider/products?page=",1)}),yi(()=>n.lang,s=>{s&&r("provider/products?page=",1)}),(s,d)=>{var c,u,h,f,g,A,b,p;return oe(),Ce("div",null,[((u=(c=ct(i))==null?void 0:c.data)==null?void 0:u.products.length)===0&&t.loading?(oe(),Vn(UA,{key:0})):((f=(h=ct(i))==null?void 0:h.data)==null?void 0:f.products.length)===0&&!t.loading?(oe(),Vn(Fh,{key:1})):(oe(),Vn(ct(Jp),{key:2,value:(A=(g=ct(i))==null?void 0:g.data)==null?void 0:A.products,class:"table products_table centered-table statistics-table",tableStyle:"width:100%;overflow-x:scroll;"},{default:Yr(()=>[Fn(ct(ks),{field:"id",header:s.$t("products.order_num"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{header:s.$t("products.image"),style:{minWidth:"120px"}},{body:Yr(y=>{var m,F;return[Q("div",vre,[Q("img",{src:(F=(m=y.data)==null?void 0:m.images[0])==null?void 0:F.image,alt:"image",loading:"lazy"},null,8,Vre)])]}),_:1},8,["header"]),Fn(ct(ks),{field:"name",header:s.$t("products.order_name"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{header:s.$t("products.type"),style:{minWidth:"120px"}},{body:Yr(y=>{var m;return[Q("span",Ere,ce((m=y.data)==null?void 0:m.has_price_text),1)]}),_:1},8,["header"]),Fn(ct(ks),{style:{minWidth:"120px"}},{body:Yr(y=>[Q("div",Sre,[Fn(ct(Ts),{to:"/edit_product/"+y.data.id},{default:Yr(()=>d[0]||(d[0]=[Q("button",{class:"edit_btn"},[Q("i",{class:"pi pi-cog"})],-1)])),_:2},1032,["to"]),Q("button",{class:"delete_btn",onClick:m=>o(y.data.id)},d[1]||(d[1]=[Q("i",{class:"pi pi-trash"},null,-1)]),8,Wre)])]),_:1})]),_:1},8,["value"])),Fn(yg,{data:(p=(b=ct(i))==null?void 0:b.data)==null?void 0:p.pagination,onHandlePagination:l},null,8,["data"])])}}},Gre=Pi(Nre,[["__scopeId","data-v-f507ebc2"]]),Jre={class:"button"},Tre={class:"main-btn"},Xre={class:"page"},kre={class:"content"},wre={__name:"Products",setup(t){const e=po(),{deleteMethod:n,toast:r,loading:i}=va(),a=hn(!1),o=()=>{a.value=!a.value},l=()=>{o(),n(`provider/products/destroy/${e.product_id}`,!0,"","reload_page")};return(s,d)=>(oe(),Ce("div",null,[Q("div",Jre,[Fn(ct(Ts),{to:"/add_products",onClick:d[0]||(d[0]=c=>ct(e).handlePageName(s.$t("products.add_new")))},{default:Yr(()=>[Q("button",Tre,ce(s.$t("products.add_new")),1)]),_:1})]),Q("div",Xre,[Q("h4",null,ce(s.$t("products.addedProducts")),1),Q("div",kre,[Fn(Gre,{loading:ct(i),onHandleShowDeleteProductPopup:o},null,8,["loading"])])]),a.value?(oe(),Vn(Cre,{key:0,onHandleShowDeleteProductPopup:o,onHandleDeleteProduct:l})):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:r,position:"top-right"},null,512)]))}},AI=Pi(wre,[["__scopeId","data-v-6453da26"]]),Yre={class:"popup"},Dre={class:"content"},Mre={class:"edit_buttons"},Lre={class:"main-btn"},Hre={class:"main-btn variants_btn"},xre={__name:"AddProductsPopup",props:{product_id:{type:Number,default:""}},setup(t){const e=t;return(n,r)=>{const i=Li("RouterLink");return oe(),Ce("div",null,[Q("div",Yre,[Q("div",Dre,[r[0]||(r[0]=Q("div",{class:"image"},[Q("img",{src:xQ,alt:"image",loading:"lazy"})],-1)),Q("h5",null,ce(n.$t("add_product_popup.title")),1),Q("div",Mre,[Fn(i,{to:"/products"},{default:Yr(()=>[Q("button",Lre,ce(n.$t("add_product_popup.submit_btn")),1)]),_:1}),Fn(i,{to:"/add_variants/"+e.product_id},{default:Yr(()=>[Q("button",Hre,ce(n.$t("add_product_popup.add_variants")),1)]),_:1},8,["to"])])])])])}}},Ore=Pi(xre,[["__scopeId","data-v-cba48125"]]),Kre={value:"0",class:"category_placeholder"},Pre=["value"],zre={__name:"MainCategory",props:{category_id:{type:Number,default:0},parent_id:{type:Number,default:0}},emits:["clearError","handleCategory"],setup(t,{emit:e}){const{getMethod:n,getResult:r}=va(),i=t,a=po(),o=hn(0),l=hn(0),s=e;return yi(()=>i.category_id,d=>{d&&(l.value=d)}),yi(()=>i.parent_id,d=>{d&&(o.value=d,n("provider/lists/list-sub-categories",!0))}),yi(()=>a.lang,d=>{d&&n("provider/lists/list-sub-categories",!0)}),Ka(()=>{n("provider/lists/list-sub-categories",!0)}),(d,c)=>{var u,h;return br((oe(),Ce("select",{id:"category","onUpdate:modelValue":c[0]||(c[0]=f=>l.value=f),onInput:c[1]||(c[1]=f=>s("clearError","category")),onChange:c[2]||(c[2]=f=>s("handleCategory",l.value))},[Q("option",Kre,ce(d.$t("signup.category_placeholder")),1),(oe(!0),Ce(Er,null,ia((h=(u=ct(r))==null?void 0:u.data)==null?void 0:h.filter(f=>f.has_childs),f=>(oe(),Ce("option",{key:f.id,value:f.id},ce(f.name),9,Pre))),128))],544)),[[yh,l.value]])}}},sW=Pi(zre,[["__scopeId","data-v-6700d5e4"]]),jre={value:"0"},_re=["value"],dW={__name:"SecondCategory",props:{category_id:{type:Number,default:0},parent_id:{type:Number,default:0}},emits:["clearError","handleCategory"],setup(t,{emit:e}){const{getMethod:n,getResult:r}=va(),i=dc(),a=t,o=hn(0),l=hn(0),s=e,d=po();return yi(()=>a.category_id,c=>{c&&(l.value=c)}),yi(()=>a.parent_id,c=>{c&&(o.value=c,n(`general/categories/${c}`,!1),a.category_id===0&&(l.value=0))}),yi(()=>d.lang,c=>{c&&n(`provider/products/show/${i.params.id}`,!0)}),(c,u)=>{var h;return br((oe(),Ce("select",{id:"category","onUpdate:modelValue":u[0]||(u[0]=f=>l.value=f),onInput:u[1]||(u[1]=f=>s("clearError","category")),onChange:u[2]||(u[2]=f=>s("handleCategory",l.value))},[Q("option",jre,ce(c.$t("add_product.choose"))+" "+ce(c.$t("add_product.sec_section")),1),(oe(!0),Ce(Er,null,ia((h=ct(r))==null?void 0:h.data,f=>(oe(),Ce("option",{key:f.id,value:f.id},ce(f.name),9,_re))),128))],544)),[[yh,l.value]])}}},$re={value:-1},qre=["value"],cW={__name:"ProductTypes",props:{product_type:{type:Number,default:-1},has_price:{type:Boolean,default:!1}},emits:["clearError","handleProductType"],setup(t,{emit:e}){const{getMethod:n,getResult:r}=va(),i=t,a=hn(i.product_type),o=e;yi(()=>i.product_type,s=>{s!==void 0&&(a.value=s)});const l=()=>{o("clearError","type"),o("handleProductType",a.value)};return FA(()=>{i.has_price&&console.log("Price flag:",i.has_price)}),Ka(()=>{n("general/get-product-types",!0)}),(s,d)=>{var c;return br((oe(),Ce("select",{id:"type","onUpdate:modelValue":d[0]||(d[0]=u=>a.value=u),onChange:l},[Q("option",$re,ce(s.$t("add_product.choose"))+" "+ce(s.$t("add_product.type")),1),(oe(!0),Ce(Er,null,ia((c=ct(r))==null?void 0:c.data,u=>(oe(),Ce("option",{key:Number(u.value),value:Number(u.value)},ce(u.text),9,qre))),128))],544)),[[yh,a.value]])}}},eie={class:"page"},tie={class:"content"},nie={for:"main_section"},rie={class:"input"},iie={class:"input"},aie={for:"ar_name"},oie={class:"input"},lie=["placeholder"],sie={for:"en_name"},die={class:"input"},cie=["placeholder"],uie={for:"ur_name"},fie={class:"input"},hie=["placeholder"],gie={for:"type"},Aie={class:"input"},pie={key:0,for:"price"},mie={key:1,class:"input"},bie=["placeholder"],yie={key:2,for:"saled_price"},Fie={key:3,class:"input"},Qie=["placeholder"],Uie={for:"product_images"},Rie={class:"input"},Bie={key:0,class:"images"},Zie=["onClick"],Iie=["src"],Cie={key:1,class:"image_placeholder",for:"product_images"},vie={for:"ar_desc"},Vie={class:"input"},Eie=["placeholder"],Sie={for:"en_desc"},Wie={class:"input"},Nie=["placeholder"],Gie={for:"ur_desc"},Jie={class:"input"},Tie=["placeholder"],Xie={type:"submit",class:"main-btn"},kie={__name:"AddProducts",setup(t){const{postMethod:e,postResult:n,toast:r,loading:i,handleToast:a,handleNextRoute:o}=va(),l=po(),s=hn({ar_name:"",en_name:"",ur_name:"",ar_description:"",en_description:"",ur_description:"",main_category:"",category:"",has_price:"",price:"",price_after_discount:"",images:[]}),d=y=>{s.value.main_category=y},c=y=>{s.value.category=y},u=y=>{s.value.has_price=y},h=hn([]),f=y=>{const m=y.target.files;if(m.length>0)for(let F=0;F<m.length;F++){const R=m[F];if(R.type.startsWith("image/")){const C=URL.createObjectURL(R);h.value.push(C),s.value.images.push(R)}else a("error",`'The selected file is not an image => ${R.name}`)}},g=y=>{h.value.splice(y,1),a("success",l.lang==="ar"?"تم حذف الصورة بـنجاح":l.lang==="en"?"Image Deleted Successfully":"تصویر کامیابی کے ساتھ حذف کر دی گئی ہے۔")},A=hn(!1),b=()=>{A.value=!A.value},p=()=>{if(s.value.main_category==="")a("error",l.lang==="ar"?"يجب إضافة القسم الرئيسي":l.lang==="en"?"The main section must be added":"اہم سیکشن کو شامل کرنا ضروری ہے۔");else if(s.value.category==="")a("error",l.lang==="ar"?"يجب إضافة القسم الفرعي":l.lang==="en"?"The second section must be added":"ذیلی سیکشن شامل کرنا ضروری ہے۔");else if(s.value.ar_name==="")a("error",l.lang==="ar"?"يجب إضافة الإسم باللغة العربية":l.lang==="en"?"The Arabic Name must be added":"نام عربی میں شامل کرنا ضروری ہے۔");else if(s.value.ar_name.length<2)a("error",l.lang==="ar"?"يجب أن يكون الإسم باللغة العربية مكون من حرفين على الأقل":l.lang==="en"?"The Arabic Name must be at least 2 characters":"عربی نام کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else if(s.value.en_name==="")a("error",l.lang==="ar"?"يجب إضافة الإسم باللغة الإنجليزية":l.lang==="en"?"The English Name must be added":"نام انگریزی میں شامل کرنا ضروری ہے۔");else if(s.value.en_name.length<2)a("error",l.lang==="ar"?"يجب أن يكون الإسم باللغة الإنجليزية مكون من حرفين على الأقل":l.lang==="en"?"The English Name must be at least 2 characters":"انگریزی نام کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else if(s.value.ur_name==="")a("error",l.lang==="ar"?"يجب إضافة الإسم باللغة الأردية":l.lang==="en"?"The Urdo Name must be added":"نام انگریزی میں شامل کرنا ضروری ہے۔");else if(s.value.ur_name.length<2)a("error",l.lang==="ar"?"يجب أن يكون الإسم باللغة الأردية مكون من حرفين على الأقل":l.lang==="en"?"The Urdu Name must be at least 2 characters":"اردو نام کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else if(s.value.has_price==="")a("error",l.lang==="ar"?"يجب تحديد نوع المنتج":l.lang==="en"?"The product type must be specified.":"مصنوعات کی قسم کا تعین کرنا ضروری ہے۔");else if(s.value.has_price===1&&(s.value.price===""||s.value.price<=0))a("error",l.lang==="ar"?"يجب إضافة سعر المنتج ويجب أن يكون أكبر من 0":l.lang==="en"?"The product price must be added and it must be greater than 0":"مصنوعات کی قیمت شامل کرنا ضروری ہے اور یہ 0 سے زیادہ ہونی چاہیے۔");else if(s.value.has_price===1&&(s.value.price_after_discount===""||s.value.price_after_discount<=0))a("error",l.lang==="ar"?"يجب إضافة سعر المنتج بعد الخصم ويجب أن يكون أكبر من 0":l.lang==="en"?"The product price after discount must be added and it must be greater than 0":"خصم کے بعد مصنوعات کی قیمت شامل کرنا ضروری ہے اور یہ 0 سے زیادہ ہونی چاہیے۔");else if(Number(s.value.price_after_discount)>Number(s.value.price))a("error",l.lang==="ar"?" سعر المنتج بعد الخصم يجب أن يكون أقل من "+s.value.price:(l.lang==="en","The product price after discount must be less than "+s.value.price));else if(s.value.images.length===0)a("error",l.lang==="ar"?"يجب إضافة صور المنتج":l.lang==="en"?"The product images must be added.":"مصنوعات کی تصاویر شامل کرنا ضروری ہے۔");else if(s.value.ar_description==="")a("error",l.lang==="ar"?"يجب إضافة الوصف باللغة العربية":l.lang==="en"?"The Arabic Description must be added":"عربی میں تفصیل شامل کرنا ضروری ہے۔");else if(s.value.ar_description.length<2)a("error",l.lang==="ar"?"يجب أن يكون الوصف باللغة العربية مكون من حرفين على الأقل":l.lang==="en"?"The Arabic Description must be at least 2 characters":"عربی تفصیل کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else if(s.value.en_description==="")a("error",l.lang==="ar"?"يجب إضافة الوصف باللغة الإنجليزية":l.lang==="en"?"The English Description must be added":"انگریزی میں تفصیل شامل کرنا ضروری ہے۔");else if(s.value.en_description.length<2)a("error",l.lang==="ar"?"يجب أن يكون الوصف باللغة الإنجليزية مكون من حرفين على الأقل":l.lang==="en"?"The English Description must be at least 2 characters":"انگریزی تفصیل کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else if(s.value.ur_description==="")a("error",l.lang==="ar"?"يجب إضافة الوصف باللغة الأردية":l.lang==="en"?"The Urdu Description must be added":"اردو میں تفصیل شامل کرنا ضروری ہے۔");else if(s.value.ur_description.length<2)a("error",l.lang==="ar"?"يجب أن يكون الوصف باللغة الأردية مكون من حرفين على الأقل":l.lang==="en"?"The Urdu Description must be at least 2 characters":"اردو تفصیل کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else{const y=new FormData;y.append("name[ar]",s.value.ar_name),y.append("name[en]",s.value.en_name),y.append("name[ur]",s.value.ur_name),y.append("description[ar]",s.value.ar_description),y.append("description[en]",s.value.en_description),y.append("description[ur]",s.value.ur_description),y.append("category_id",s.value.category),y.append("has_price",s.value.has_price),s.value.has_price===1&&(y.append("price",s.value.price),y.append("price_after_discount",s.value.price_after_discount)),s.value.images.map((m,F)=>{y.append(`images[${F}]`,m)}),e("provider/products/store",y,!0,"","toast")}};return yi(()=>n==null?void 0:n.value,y=>{(y==null?void 0:y.key)==="success"&&s.value.has_price===1?b():o("/products")}),(y,m)=>{var F,R;return oe(),Ce("div",null,[Q("div",eie,[Q("h4",null,ce(y.$t("add_product.title")),1),m[9]||(m[9]=Q("hr",null,null,-1)),Q("div",tie,[Q("form",{action:"",onSubmit:ud(p,["prevent"])},[Q("label",nie,ce(y.$t("add_product.main_section")),1),Q("div",rie,[Fn(sW,{parent_id:ct(l).profile.main_category.id,onHandleCategory:d},null,8,["parent_id"])]),br(Q("label",{for:"sec_section"},ce(y.$t("add_product.sec_section")),513),[[Tm,s.value.main_category!==""]]),br(Q("div",iie,[Fn(dW,{parent_id:Number(s.value.main_category),onHandleCategory:c},null,8,["parent_id"])],512),[[Tm,s.value.main_category!==""]]),Q("label",aie,ce(y.$t("add_product.ar_name")),1),Q("div",oie,[br(Q("input",{type:"text",id:"ar_name",placeholder:y.$t("add_product.ar_name"),"onUpdate:modelValue":m[0]||(m[0]=C=>s.value.ar_name=C)},null,8,lie),[[gi,s.value.ar_name]])]),Q("label",sie,ce(y.$t("add_product.en_name")),1),Q("div",die,[br(Q("input",{type:"text",id:"en_name",placeholder:y.$t("add_product.en_name"),"onUpdate:modelValue":m[1]||(m[1]=C=>s.value.en_name=C)},null,8,cie),[[gi,s.value.en_name]])]),Q("label",uie,ce(y.$t("add_product.ur_name")),1),Q("div",fie,[br(Q("input",{type:"text",id:"ur_name",placeholder:y.$t("add_product.ur_name"),"onUpdate:modelValue":m[2]||(m[2]=C=>s.value.ur_name=C)},null,8,hie),[[gi,s.value.ur_name]])]),Q("label",gie,ce(y.$t("add_product.type")),1),Q("div",Aie,[Fn(cW,{onHandleProductType:u})]),s.value.has_price===1?(oe(),Ce("label",pie,ce(y.$t("add_product.price")),1)):Pt("",!0),s.value.has_price===1?(oe(),Ce("div",mie,[br(Q("input",{type:"text",id:"price",placeholder:y.$t("add_product.price"),"onUpdate:modelValue":m[3]||(m[3]=C=>s.value.price=C)},null,8,bie),[[gi,s.value.price]])])):Pt("",!0),s.value.has_price===1?(oe(),Ce("label",yie,ce(y.$t("add_product.price_after_sale")),1)):Pt("",!0),s.value.has_price===1?(oe(),Ce("div",Fie,[br(Q("input",{type:"text",id:"saled_price",placeholder:y.$t("add_product.price_after_sale"),"onUpdate:modelValue":m[4]||(m[4]=C=>s.value.price_after_discount=C)},null,8,Qie),[[gi,s.value.price_after_discount]])])):Pt("",!0),Q("label",Uie,ce(y.$t("add_product.images")),1),Q("div",Rie,[Q("input",{type:"file",id:"product_images",hidden:"",multiple:"",onChange:f,accept:"image/*"},null,32),m[8]||(m[8]=Q("label",{for:"product_images",class:"pi pi-camera"},null,-1)),s.value.images.length>0?(oe(),Ce("label",Bie,[(oe(!0),Ce(Er,null,ia(h.value,(C,B)=>(oe(),Ce("div",{class:"image",key:B},[Q("i",{onClick:N=>g(B),class:"pi pi-trash"},null,8,Zie),Q("img",{src:C,alt:"image",loading:"lazy"},null,8,Iie)]))),128))])):(oe(),Ce("label",Cie,ce(y.$t("add_product.add"))+" "+ce(y.$t("add_product.images")),1))]),Q("label",vie,ce(y.$t("add_product.ar_desc")),1),Q("div",Vie,[br(Q("input",{type:"text",id:"ar_desc",placeholder:y.$t("add_product.ar_desc"),"onUpdate:modelValue":m[5]||(m[5]=C=>s.value.ar_description=C)},null,8,Eie),[[gi,s.value.ar_description]])]),Q("label",Sie,ce(y.$t("add_product.en_desc")),1),Q("div",Wie,[br(Q("input",{type:"text",id:"en_desc",placeholder:y.$t("add_product.en_desc"),"onUpdate:modelValue":m[6]||(m[6]=C=>s.value.en_description=C)},null,8,Nie),[[gi,s.value.en_description]])]),Q("label",Gie,ce(y.$t("add_product.ur_desc")),1),Q("div",Jie,[br(Q("input",{type:"text",id:"ur_desc",placeholder:y.$t("add_product.ur_desc"),"onUpdate:modelValue":m[7]||(m[7]=C=>s.value.ur_description=C)},null,8,Tie),[[gi,s.value.ur_description]])]),Q("button",Xie,ce(y.$t("add_product.add_btn")),1)],32)])]),A.value?(oe(),Vn(Ore,{key:0,product_id:(R=(F=ct(n))==null?void 0:F.data)==null?void 0:R.product_id},null,8,["product_id"])):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:r,position:"top-right"},null,512),ct(i)?(oe(),Vn(Ru,{key:1})):Pt("",!0)])}}},pI=Pi(kie,[["__scopeId","data-v-d0dadece"]]),wie="/assets/success-CZ0xIUuz.gif",Yie={class:"popup"},Die={class:"content"},Mie={__name:"SuccessPopup",props:{successedMsg:{type:String,default:""}},emits:["handleShowSuccessedPopup"],setup(t,{emit:e}){const n=t;return(r,i)=>(oe(),Ce("div",null,[Q("div",Yie,[Q("div",Die,[i[0]||(i[0]=Q("div",{class:"image"},[Q("img",{src:wie,alt:"image",loading:"lazy"})],-1)),Q("h5",null,ce(n.successedMsg),1)])])]))}},OQ=Pi(Mie,[["__scopeId","data-v-26540254"]]),Lie={class:"page"},Hie={class:"content"},xie={for:"main_section"},Oie={class:"input"},Kie={for:"sec_section"},Pie={class:"input"},zie={for:"ar_name"},jie={class:"input"},_ie=["placeholder"],$ie={for:"en_name"},qie={class:"input"},eae=["placeholder"],tae={for:"ur_name"},nae={class:"input"},rae=["placeholder"],iae={for:"type"},aae={class:"input"},oae={key:0,for:"price"},lae={key:1,class:"input"},sae=["placeholder"],dae={key:2,for:"saled_price"},cae={key:3,class:"input"},uae=["placeholder"],fae={for:"image"},hae={class:"input"},gae={key:0,for:"image"},Aae={key:1,class:"images"},pae=["onClick"],mae=["src"],bae=["onClick"],yae=["src"],Fae={for:"ar_desc"},Qae={class:"input"},Uae=["placeholder"],Rae={for:"en_desc"},Bae={class:"input"},Zae=["placeholder"],Iae={for:"ur_desc"},Cae={class:"input"},vae=["placeholder"],Vae={class:"edit_buttons"},Eae={class:"main-btn"},Sae={class:"main-btn edit_variants"},Wae={__name:"EditProduct",setup(t){const{getMethod:e,postMethod:n,deleteMethod:r,getResult:i,loading:a,toast:o,handleToast:l,successText:s,showSuccessPopup:d,handleSuccessPopup:c}=va(),u=dc(),h=hn({ar_name:"",en_name:"",ur_name:"",ar_description:"",en_description:"",ur_description:"",main_category:[],category:[],has_price:"",price:"",price_after_discount:"",images:[]}),f=po(),g=hn(!1),A=hn([]),b=hn([]),p=X=>{g.value=!0;const J=X.target.files;if(J.length>0)for(let E=0;E<J.length;E++){const v=J[E];if(v.type.startsWith("image/")){const j=URL.createObjectURL(v);A.value.push(j),b.value.push(v)}else l("error",`'The selected file is not an image => ${v.name}`)}},y=X=>{A.value.splice(X,1),l("success",f.lang==="ar"?"تم حذف الصورة بـنجاح":f.lang==="en"?"Image Deleted Successfully":"تصویر کامیابی کے ساتھ حذف کر دی گئی ہے۔")},m=X=>{A.value.splice(X,1),r(`provider/products/delete-attachement/${X}`,!0,`provider/products/show/${u.params.id}`,"")},F=hn(),R=X=>{h.value.main_category=X,F.value.id=X,C.value.parent_id=X,C.value.id=0},C=hn(),B=X=>{h.value.category=X},N=X=>{h.value.has_price=Number(X)},S=()=>{const X=new FormData;X.append("name[ar]",h.value.ar_name),X.append("name[en]",h.value.en_name),X.append("name[ur]",h.value.ur_name),X.append("description[ar]",h.value.ar_description),X.append("description[en]",h.value.en_description),X.append("description[ur]",h.value.ur_description),X.append("category_id",h.value.category),X.append("has_price",Number(h.value.has_price)),g.value&&b.value.map((J,E)=>{X.append(`images[${E}]`,J)}),Number(h.value.has_price)!==0&&(X.append("price",h.value.price),X.append("price_after_discount",Number(h.value.price_after_discount))),h.value.images.length==0&&b.value.length==0?l("error",f.lang=="ar"?"يجب إضافة صورة أو أكثر للمنتج":f.lang=="en"?"You must add one or more images for the product":"آپ کو پروڈکٹ کے لیے ایک یا زیادہ تصاویر شامل کرنی ہوں گی"):n(`provider/products/update/${u.params.id}?_method=put`,X,!0,"/products","success")};return yi(()=>{var X;return(X=i.value)==null?void 0:X.data},X=>{X&&(h.value.ar_name=X.translated_names.ar,h.value.en_name=X.translated_names.en,h.value.ur_name=X.translated_names.ur,h.value.ar_description=X.translated_descriptions.ar,h.value.en_description=X.translated_descriptions.en,h.value.ur_description=X.translated_names.ur,h.value.main_category=X.main_category.id,F.value=X.main_category,h.value.category=X.category.id,C.value=X.category,h.value.has_price=X.has_price,h.value.price=parseFloat(X.price).toFixed(2),h.value.price_after_discount=parseFloat(X.price_after_discount).toFixed(2),h.value.images=X.images)}),Ka(()=>{e(`provider/products/show/${u.params.id}`,!0)}),yi(()=>f.lang,X=>{X&&e(`provider/products/show/${u.params.id}`,!0)}),(X,J)=>{var E,v,j,H;return oe(),Ce("div",null,[Q("div",Lie,[Q("h4",null,ce(X.$t("edit_product.title")),1),J[9]||(J[9]=Q("hr",null,null,-1)),Q("div",Hie,[Q("form",{action:"",onSubmit:ud(S,["prevent"])},[Q("label",xie,ce(X.$t("add_product.main_section")),1),Q("div",Oie,[Fn(sW,{parent_id:(E=F.value)==null?void 0:E.parent_id,category_id:(v=F.value)==null?void 0:v.id,onHandleCategory:R},null,8,["parent_id","category_id"])]),Q("label",Kie,ce(X.$t("add_product.sec_section")),1),Q("div",Pie,[Fn(dW,{parent_id:(j=C.value)==null?void 0:j.parent_id,category_id:(H=C.value)==null?void 0:H.id,onHandleCategory:B},null,8,["parent_id","category_id"])]),Q("label",zie,ce(X.$t("edit_product.ar_name")),1),Q("div",jie,[br(Q("input",{type:"text",id:"ar_name",placeholder:X.$t("edit_product.ar_name"),"onUpdate:modelValue":J[0]||(J[0]=K=>h.value.ar_name=K)},null,8,_ie),[[gi,h.value.ar_name]])]),Q("label",$ie,ce(X.$t("edit_product.en_name")),1),Q("div",qie,[br(Q("input",{type:"text",id:"en_name",placeholder:X.$t("edit_product.en_name"),"onUpdate:modelValue":J[1]||(J[1]=K=>h.value.en_name=K)},null,8,eae),[[gi,h.value.en_name]])]),Q("label",tae,ce(X.$t("edit_product.ur_name")),1),Q("div",nae,[br(Q("input",{type:"text",id:"ur_name",placeholder:X.$t("edit_product.ur_name"),"onUpdate:modelValue":J[2]||(J[2]=K=>h.value.ur_name=K)},null,8,rae),[[gi,h.value.ur_name]])]),Q("label",iae,ce(X.$t("add_product.type")),1),Q("div",aae,[Fn(cW,{product_type:Number(h.value.has_price),onHandleProductType:N},null,8,["product_type"])]),Number(h.value.has_price)!==0?(oe(),Ce("label",oae,ce(X.$t("edit_product.price")),1)):Pt("",!0),Number(h.value.has_price)!==0?(oe(),Ce("div",lae,[br(Q("input",{type:"text",id:"price",placeholder:X.$t("edit_product.price"),"onUpdate:modelValue":J[3]||(J[3]=K=>h.value.price=K)},null,8,sae),[[gi,h.value.price]])])):Pt("",!0),Number(h.value.has_price)!==0?(oe(),Ce("label",dae,ce(X.$t("add_product.price_after_sale")),1)):Pt("",!0),Number(h.value.has_price)!==0?(oe(),Ce("div",cae,[br(Q("input",{type:"text",id:"saled_price",placeholder:X.$t("add_product.price_after_sale"),"onUpdate:modelValue":J[4]||(J[4]=K=>h.value.price_after_discount=K)},null,8,uae),[[gi,h.value.price_after_discount]])])):Pt("",!0),Q("label",fae,ce(X.$t("edit_product.image")),1),Q("div",hae,[Q("input",{type:"file",id:"image",hidden:"",onChange:p,accept:"image/*",multiple:""},null,32),J[8]||(J[8]=Q("label",{for:"image",class:"pi pi-camera"},null,-1)),h.value.images.length===0&&A.value.length===0?(oe(),Ce("label",gae,ce(X.$t("edit_product.image_placeholder")),1)):(oe(),Ce("div",Aae,[(oe(!0),Ce(Er,null,ia(h.value.images,K=>(oe(),Ce("div",{class:"image",key:K.id},[Q("i",{onClick:Fe=>m(K.id),class:"pi pi-trash"},null,8,pae),Q("img",{src:K.image,alt:"image",loading:"lazy"},null,8,mae)]))),128)),(oe(!0),Ce(Er,null,ia(A.value,(K,Fe)=>(oe(),Ce("div",{class:"image",key:K.id},[Q("i",{onClick:z=>y(Fe),class:"pi pi-trash"},null,8,bae),Q("img",{src:K,alt:"image",loading:"lazy"},null,8,yae)]))),128))]))]),Q("label",Fae,ce(X.$t("add_product.ar_desc")),1),Q("div",Qae,[br(Q("input",{type:"text",id:"ar_desc",placeholder:X.$t("add_product.ar_desc"),"onUpdate:modelValue":J[5]||(J[5]=K=>h.value.ar_description=K)},null,8,Uae),[[gi,h.value.ar_description]])]),Q("label",Rae,ce(X.$t("add_product.en_desc")),1),Q("div",Bae,[br(Q("input",{type:"text",id:"en_desc",placeholder:X.$t("add_product.en_desc"),"onUpdate:modelValue":J[6]||(J[6]=K=>h.value.en_description=K)},null,8,Zae),[[gi,h.value.en_description]])]),Q("label",Iae,ce(X.$t("add_product.ur_desc")),1),Q("div",Cae,[br(Q("input",{type:"text",id:"ur_desc",placeholder:X.$t("add_product.ur_desc"),"onUpdate:modelValue":J[7]||(J[7]=K=>h.value.ur_description=K)},null,8,vae),[[gi,h.value.ur_description]])]),Q("div",Vae,[Q("button",Eae,ce(X.$t("edit_product.submit_btn")),1),Number(h.value.has_price)!==0?(oe(),Vn(ct(Ts),{key:0,to:"/edit_variants/"+ct(u).params.id},{default:Yr(()=>[Q("button",Sae,ce(X.$t("edit_product.edit_variants")),1)]),_:1},8,["to"])):Pt("",!0)])],32)])]),ct(d)?(oe(),Vn(OQ,{key:0,successedMsg:ct(s),onHandleSuccessPopup:ct(c)},null,8,["successedMsg","onHandleSuccessPopup"])):Pt("",!0),ct(a)?(oe(),Vn(Ru,{key:1})):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512)])}}},mI=Pi(Wae,[["__scopeId","data-v-5d654fa6"]]),Nae=["onClick"],Gae={class:"inputs"},Jae={class:"input-wrap"},Tae={for:"ar_name"},Xae={class:"input"},kae=["value","placeholder"],wae={class:"input-wrap"},Yae={for:"en_name"},Dae={class:"input"},Mae=["value","placeholder"],Lae={class:"input-wrap"},Hae={for:"ur_name"},xae={class:"input"},Oae=["value","placeholder"],Kae={class:"input-wrap"},Pae={for:"is_required"},zae={class:"input"},jae=["value","placeholder"],_ae={class:"input-wrap"},$ae={for:"quantity"},qae={class:"input"},eoe=["value","placeholder"],toe={class:"addons"},noe=["onClick"],roe={class:"addon"},ioe={class:"image"},aoe=["src"],ooe={class:"text"},loe={__name:"AddonItem",props:{addonItem:{type:Number,default:0}},setup(t){const e=po(),{getMethod:n,postMethod:r,deleteMethod:i,getResult:a,postResult:o,toast:l,loading:s,handleToast:d}=va(),c=t,u=hn([]),h=g=>{i(`provider/products-addons/destroy/${g}`,!0,"",""),u.value=u.value.filter(A=>A.id!==g)},f=(g,A,b)=>{const p=hn({classification_id:c.addonItem,addon_id:g});b>A?r("provider/products-classifications/detach-addon-from-classification",p.value,!0,"","toast"):d("error",e.lang==="ar"?"لايمكن مسح الإضافة":e.lang==="en"?"addition cannot be deleted":"اسٹاپ کی فہرست نہیں مٹ سکتی")};return yi(()=>c.addonItem,g=>{g&&n(`provider/products-classifications/show/${c.addonItem}`,!0)}),yi(()=>{var g;return(g=a==null?void 0:a.value)==null?void 0:g.data},g=>{if(g){const A=u.value.findIndex(b=>b.id===g.id);A!==-1?u.value.splice(A,1,g):u.value.push(g)}}),yi(()=>o==null?void 0:o.value,g=>{(g==null?void 0:g.key)==="success"&&n(`provider/products-classifications/show/${c.addonItem}`,!0)}),(g,A)=>(oe(),Ce(Er,null,[(oe(!0),Ce(Er,null,ia(u.value,b=>(oe(),Ce("div",{class:"addon_item",key:b.id},[Q("button",{class:"variant_btn delete_variant",onClick:p=>h(b.id)},A[0]||(A[0]=[Q("i",{class:"pi pi-trash"},null,-1)]),8,Nae),Q("div",Gae,[Q("div",Jae,[Q("label",Tae,ce(g.$t("product_variant.category_ar_name")),1),Q("div",Xae,[Q("input",{type:"text",id:"ar_name",disabled:"",value:b.translated_names.ar,placeholder:g.$t("product_variant.category_ar_name")},null,8,kae)])]),Q("div",wae,[Q("label",Yae,ce(g.$t("product_variant.category_en_name")),1),Q("div",Dae,[Q("input",{type:"text",id:"en_name",disabled:"",value:b.translated_names.en,placeholder:g.$t("product_variant.category_en_name")},null,8,Mae)])]),Q("div",Lae,[Q("label",Hae,ce(g.$t("product_variant.category_ur_name")),1),Q("div",xae,[Q("input",{type:"text",id:"ur_name",disabled:"",value:b.translated_names.ur,placeholder:g.$t("product_variant.category_ur_name")},null,8,Oae)])]),Q("div",Kae,[Q("label",Pae,ce(g.$t("product_variant.status_label")),1),Q("div",zae,[Q("input",{type:"text",id:"is_required",disabled:"",value:b.is_required===1?g.$t("product_variant.required"):g.$t("product_variant.optional"),placeholder:g.$t("product_variant.status_label")},null,8,jae)])]),Q("div",_ae,[Q("label",$ae,ce(g.$t("product_variant.quantity")),1),Q("div",qae,[Q("input",{type:"text",id:"quantity",disabled:"",value:b.number_of_choices,placeholder:g.$t("product_variant.quantity")},null,8,eoe)])])]),Q("div",toe,[!b.addons||ct(s)?(oe(),Ce(Er,{key:0},ia(20,p=>Q("div",{key:p,class:"addon_tab"},[Fn(ct(bA),{class:"addon_skeleton",shape:"rectangle",width:"100%",height:"70px"})])),64)):(oe(!0),Ce(Er,{key:1},ia(b.addons,p=>(oe(),Ce("div",{class:"addon_tab",key:p.id},[Q("button",{onClick:y=>f(p.id,b.number_of_choices,b.addons.length),class:"pi pi-trash"},null,8,noe),Q("div",roe,[Q("div",ioe,[Q("img",{src:p.image,alt:"image",loading:"lazy"},null,8,aoe)]),Q("div",ooe,[Q("h3",null,ce(p.name),1),Q("p",null,ce(p.price),1)])])]))),128))])]))),128)),Fn(ct(ol),{ref_key:"toast",ref:l,position:"top-right"},null,512)],64))}},soe=Pi(loe,[["__scopeId","data-v-e880185c"]]),doe={class:"inputs"},coe={class:"input-wrap"},uoe={for:"ar_name"},foe={class:"input"},hoe=["placeholder","value"],goe={class:"input-wrap"},Aoe={for:"en_name"},poe={class:"input"},moe=["placeholder","value"],boe={class:"input-wrap"},yoe={for:"ur_name"},Foe={class:"input"},Qoe=["placeholder","value"],Uoe={class:"input-wrap"},Roe={for:"status"},Boe={class:"input"},Zoe=["value"],Ioe={value:""},Coe={value:"0"},voe={value:"1"},Voe={class:"input-wrap"},Eoe={for:"number"},Soe={class:"input"},Woe=["placeholder","value"],Noe=["onClick"],Goe={class:"addons"},Joe=["onClick"],Toe={class:"addon"},Xoe={class:"image"},koe=["src"],woe={class:"text"},Yoe={key:1,class:"page"},Doe={__name:"Edit_Variants",props:{addonItem:{type:Number,default:0}},setup(t){const e=dc(),n=po(),{getMethod:r,deleteMethod:i,postMethod:a,getResult:o,postResult:l,toast:s,loading:d,handleToast:c}=va(),u=hn([]),h=g=>{var A;i(`provider/products-classifications/destroy/${g}`,!0,"",""),u.value[0]=(A=u.value[0])==null?void 0:A.filter(b=>b.id!==g)},f=(g,A,b,p)=>{const y=hn({classification_id:g,addon_id:A});p>b?a("provider/products-classifications/detach-addon-from-classification",y.value,!0,"","toast"):c("error",n.lang==="ar"?"يجب ألا يكون عدد الإضافات أقل من العدد المطلوب للتصنيف":n.lang==="en"?"The number of additions must not be less than the required number for classification":n.lang==="ur"?"اضافات کی تعداد مطلوبہ درجہ بندی سے کم نہیں ہونی چاہیے":"يجب ألا يكون عدد الإضافات أقل من العدد المطلوب للتصنيف")};return yi(()=>l==null?void 0:l.value,g=>{(g==null?void 0:g.key)==="success"&&r(`provider/products/show/${e.params.id}`,!0)}),yi(()=>{var g;return(g=o==null?void 0:o.value)==null?void 0:g.data},g=>{var A;g&&((A=u.value)==null||A.push(g==null?void 0:g.classifications))}),Ka(()=>{r(`provider/products/show/${e.params.id}`,!0)}),(g,A)=>{var b;return oe(),Ce("div",null,[((b=u.value[0])==null?void 0:b.length)>0?(oe(!0),Ce(Er,{key:0},ia(u.value[0],p=>(oe(),Ce("form",{action:"",onSubmit:A[0]||(A[0]=ud((...y)=>g.handleSubmit&&g.handleSubmit(...y),["prevent"])),key:p.id},[Q("div",doe,[Q("div",coe,[Q("label",uoe,ce(g.$t("product_variant.category_ar_name")),1),Q("div",foe,[Q("input",{type:"text",id:"ar_name",placeholder:g.$t("product_variant.category_ar_name"),value:p.translated_names.ar,disabled:""},null,8,hoe)])]),Q("div",goe,[Q("label",Aoe,ce(g.$t("product_variant.category_en_name")),1),Q("div",poe,[Q("input",{type:"text",id:"en_name",placeholder:g.$t("product_variant.category_en_name"),value:p.translated_names.en,disabled:""},null,8,moe)])]),Q("div",boe,[Q("label",yoe,ce(g.$t("product_variant.category_ur_name")),1),Q("div",Foe,[Q("input",{type:"text",id:"ur_name",placeholder:g.$t("product_variant.category_ur_name"),value:p.translated_names.ur,disabled:""},null,8,Qoe)])]),Q("div",Uoe,[Q("label",Roe,ce(g.$t("product_variant.status_label")),1),Q("div",Boe,[Q("select",{id:"status",value:p.is_required,disabled:""},[Q("option",Ioe,ce(g.$t("product_variant.select_status")),1),Q("option",Coe,ce(g.$t("product_variant.optional")),1),Q("option",voe,ce(g.$t("product_variant.required")),1)],8,Zoe)])]),Q("div",Voe,[Q("label",Eoe,ce(g.$t("product_variant.quantity")),1),Q("div",Soe,[Q("input",{type:"number",id:"number",placeholder:g.$t("product_variant.quantity_placeholder"),value:p.number_of_choices,disabled:""},null,8,Woe)])]),Q("button",{class:"variant_btn delete_variant",onClick:y=>h(p.id),title:"Delete Classification"},A[1]||(A[1]=[Q("i",{class:"pi pi-trash"},null,-1)]),8,Noe)]),Q("div",Goe,[!p.addons||ct(d)?(oe(),Ce(Er,{key:0},ia(20,y=>Q("div",{key:y,class:"addon_tab"},[Fn(ct(bA),{class:"addon_skeleton",shape:"rectangle",width:"100%",height:"70px"})])),64)):(oe(!0),Ce(Er,{key:1},ia(p.addons,y=>(oe(),Ce("div",{class:"addon_tab",key:y.id},[Q("button",{onClick:m=>f(p.id,y.id,p.number_of_choices,p.addons.length),title:"Delete Addon",class:"pi pi-trash"},null,8,Joe),Q("div",Toe,[Q("div",Xoe,[Q("img",{src:y.image,alt:"image",loading:"lazy"},null,8,koe)]),Q("div",woe,[Q("h3",null,ce(y.name),1),Q("p",null,ce(y.price),1)])])]))),128))])],32))),128)):(oe(),Ce("div",Yoe,[Fn(Fh)])),Fn(ct(ol),{ref_key:"toast",ref:s,position:"top-right"},null,512)])}}},bI=Pi(Doe,[["__scopeId","data-v-02c2cf9a"]]),Moe={class:"inputs"},Loe={class:"input-wrap"},Hoe={for:"ar_name"},xoe={class:"input"},Ooe=["placeholder"],Koe={class:"input-wrap"},Poe={for:"en_name"},zoe={class:"input"},joe=["placeholder"],_oe={class:"input-wrap"},$oe={for:"ur_name"},qoe={class:"input"},ele=["placeholder"],tle={class:"input-wrap"},nle={for:"status"},rle={class:"input"},ile={value:""},ale={value:"0"},ole={value:"1"},lle={class:"input-wrap"},sle={for:"number"},dle={class:"input"},cle=["placeholder"],ule={class:"addons"},fle=["id","checked","onChange"],hle=["for"],gle={class:"image"},Ale=["src"],ple={class:"text"},yI={__name:"Add_Variants",setup(t){const e=dc(),n=po(),{postMethod:r,postResult:i,loading:a,toast:o,handleToast:l}=va(),s=hn({ar_name:"",en_name:"",ur_name:"",is_required:"",number_of_choices:"",addons:[]}),d=p=>{if(!s.value.addons.includes(p))s.value.addons.push(p);else{const y=s.value.addons.indexOf(p);y>-1&&s.value.addons.splice(y,1)}},c=p=>s.value.addons.includes(p),{handlePagination:u,getResult:h}=Fg(),f=hn(1),g=p=>{f.value=p,u("provider/products-addons?page=",p)};Ka(()=>{u("provider/products-addons?page=",1)});const A=()=>{if(s.value.ar_name==="")l("error",n.lang==="ar"?"يجب إضافة الإسم باللغة العربية":n.lang==="en"?"The Arabic Name must be added":"نام عربی میں شامل کرنا ضروری ہے۔");else if(s.value.ar_name.length<2)l("error",n.lang==="ar"?"يجب أن يكون الإسم باللغة العربية مكون من حرفين على الأقل":n.lang==="en"?"The Arabic Name must be at least 2 characters":"عربی نام کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else if(s.value.en_name==="")l("error",n.lang==="ar"?"يجب إضافة الإسم باللغة الإنجليزية":n.lang==="en"?"The English Name must be added":"نام انگریزی میں شامل کرنا ضروری ہے۔");else if(s.value.en_name.length<2)l("error",n.lang==="ar"?"يجب أن يكون الإسم باللغة الإنجليزية مكون من حرفين على الأقل":n.lang==="en"?"The English Name must be at least 2 characters":"انگریزی نام کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else if(s.value.ur_name==="")l("error",n.lang==="ar"?"يجب إضافة الإسم باللغة الأردية":n.lang==="en"?"The Urdo Name must be added":"نام انگریزی میں شامل کرنا ضروری ہے۔");else if(s.value.ur_name.length<2)l("error",n.lang==="ar"?"يجب أن يكون الإسم باللغة الأردية مكون من حرفين على الأقل":n.lang==="en"?"The Urdu Name must be at least 2 characters":"اردو نام کم از کم دو حرفوں پر مشتمل ہونا چاہیے۔");else if(s.value.is_required==="")l("error",n.lang==="ar"?"يجب اختيار حالة التصنيف":n.lang==="en"?"The category status must be selected":"کٹیگری کی حالت منتخب کرنا ضروری ہے");else if(s.value.number_of_choices==="")l("error",n.lang==="ar"?"يجب اختيار عدد الخيارات":n.lang==="en"?"The number of choices must be selected":n.lang==="ur"?"انتخاب کے تعداد کا انتخاب ضروری ہے":"The number of choices must be selected");else if(Array.isArray(s.value.addons)&&s.value.addons.length===0)l("error",n.lang==="ar"?"يجب اختيار الإضافات":n.lang==="en"?"Add-ons must be selected":n.lang==="ur"?"اضافات کا انتخاب ضروری ہے":"Add-ons must be selected");else if(s.value.addons.length<s.value.number_of_choices)l("error",n.lang==="ar"?"يجب اختيار عدد كافٍ من الإضافات":n.lang==="en"?"You must select enough add-ons":n.lang==="ur"?"آپ کو کافی اضافات کا انتخاب کرنا ہوگا":"You must select enough add-ons");else{const p=new FormData;p.append("product_id",e.params.id),p.append("name[ar]",s.value.ar_name),p.append("name[en]",s.value.en_name),p.append("name[ur]",s.value.ur_name),p.append("is_required",s.value.is_required),p.append("number_of_choices",s.value.number_of_choices),s.value.addons.map((y,m)=>{p.append(`addons[${m}]`,y)}),r("provider/products-classifications/store",p,!0,"","success")}},b=hn();return FA(()=>{var p,y;i!=null&&i.value&&(b.value=(y=(p=i==null?void 0:i.value)==null?void 0:p.data)==null?void 0:y.product_classification_id,s.value.ar_name="",s.value.en_name="",s.value.ur_name="",s.value.is_required="",s.value.number_of_choices="",s.value.addons=[])}),yi(()=>n.lang,p=>{p&&u("provider/products-addons?page=",f.value)}),(p,y)=>{var m,F,R,C,B,N;return oe(),Ce("div",null,[Q("form",{action:"",onSubmit:ud(A,["prevent"])},[Q("div",Moe,[Q("div",Loe,[Q("label",Hoe,ce(p.$t("product_variant.category_ar_name")),1),Q("div",xoe,[br(Q("input",{type:"text",id:"ar_name",placeholder:p.$t("product_variant.category_ar_name"),"onUpdate:modelValue":y[0]||(y[0]=S=>s.value.ar_name=S)},null,8,Ooe),[[gi,s.value.ar_name]])])]),Q("div",Koe,[Q("label",Poe,ce(p.$t("product_variant.category_en_name")),1),Q("div",zoe,[br(Q("input",{type:"text",id:"en_name",placeholder:p.$t("product_variant.category_en_name"),"onUpdate:modelValue":y[1]||(y[1]=S=>s.value.en_name=S)},null,8,joe),[[gi,s.value.en_name]])])]),Q("div",_oe,[Q("label",$oe,ce(p.$t("product_variant.category_ur_name")),1),Q("div",qoe,[br(Q("input",{type:"text",id:"ur_name",placeholder:p.$t("product_variant.category_ur_name"),"onUpdate:modelValue":y[2]||(y[2]=S=>s.value.ur_name=S)},null,8,ele),[[gi,s.value.ur_name]])])]),Q("div",tle,[Q("label",nle,ce(p.$t("product_variant.status_label")),1),Q("div",rle,[br(Q("select",{id:"status","onUpdate:modelValue":y[3]||(y[3]=S=>s.value.is_required=S)},[Q("option",ile,ce(p.$t("product_variant.select_status")),1),Q("option",ale,ce(p.$t("product_variant.optional")),1),Q("option",ole,ce(p.$t("product_variant.required")),1)],512),[[yh,s.value.is_required]])])]),Q("div",lle,[Q("label",sle,ce(p.$t("product_variant.quantity")),1),Q("div",dle,[br(Q("input",{type:"number",id:"number",placeholder:p.$t("product_variant.quantity_placeholder"),"onUpdate:modelValue":y[4]||(y[4]=S=>s.value.number_of_choices=S)},null,8,cle),[[gi,s.value.number_of_choices]])])]),y[5]||(y[5]=Q("button",{class:"variant_btn submit_variant"},[Q("i",{class:"pi pi-plus"})],-1))]),Q("div",ule,[!((F=(m=ct(h))==null?void 0:m.data)!=null&&F.addons)||ct(a)?(oe(),Ce(Er,{key:0},ia(20,S=>Q("div",{key:S,class:"addon_tab"},[Fn(ct(bA),{class:"addon_skeleton",shape:"rectangle",width:"100%",height:"70px"})])),64)):(oe(!0),Ce(Er,{key:1},ia((C=(R=ct(h))==null?void 0:R.data)==null?void 0:C.addons,S=>(oe(),Ce("div",{class:"addon_tab",key:S.id},[Q("input",{type:"checkbox",id:S.id,checked:c(S.id),onChange:X=>d(S.id)},null,40,fle),Q("label",{for:S.id},[Q("div",gle,[Q("img",{src:S.image,alt:"image",loading:"lazy"},null,8,Ale)]),Q("div",ple,[Q("h3",null,ce(S.name),1),Q("p",null,ce(S.price),1)])],8,hle)]))),128))])],32),Fn(yg,{data:(N=(B=ct(h))==null?void 0:B.data)==null?void 0:N.pagination,onHandlePagination:g},null,8,["data"]),Fn(soe,{addonItem:b.value},null,8,["addonItem"]),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512)])}}},mle={key:2},ble={class:"image"},yle=["src"],Fle={class:"buttons"},Qle=["onClick"],Ule={__name:"Product_AdditionsTable",props:{additions:{type:Object,default:[]},loading:{type:Boolean,default:!1}},emits:["handleShowDeleteProductAdditionPopup"],setup(t,{emit:e}){const n=po(),r=e,i=t,a=o=>{n.handleStoreAdditionId(o),r("handleShowDeleteProductAdditionPopup")};return(o,l)=>(oe(),Ce("div",null,[i.additions.length===0&&i.loading?(oe(),Vn(UA,{key:0})):i.additions.length===0&&!i.loading?(oe(),Vn(Fh,{key:1})):(oe(),Ce("div",mle,[Fn(ct(Jp),{value:i.additions,class:"table products_table centered-table statistics-table"},{default:Yr(()=>[Fn(ct(ks),{field:"id",header:"#",style:{minWidth:"120px"}}),Fn(ct(ks),{header:o.$t("products_additions.image"),style:{minWidth:"120px"}},{body:Yr(s=>[Q("div",ble,[Q("img",{src:s.data.image,alt:"image",loading:"lazy"},null,8,yle)])]),_:1},8,["header"]),Fn(ct(ks),{field:"name",header:o.$t("products_additions.name"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"price",header:o.$t("products_additions.price"),style:{minWidth:"120px"}},{body:Yr(s=>[Ni(ce(s.data.price)+" "+ce(o.$t("currency")),1)]),_:1},8,["header"]),Fn(ct(ks),{style:{minWidth:"120px"}},{body:Yr(s=>[Q("div",Fle,[Fn(ct(Ts),{to:"/edit_addition/"+s.data.id},{default:Yr(()=>l[0]||(l[0]=[Q("button",{class:"edit_btn"},[Q("i",{class:"pi pi-cog"})],-1)])),_:2},1032,["to"]),Q("button",{class:"delete_btn",onClick:d=>a(s.data.id)},l[1]||(l[1]=[Q("i",{class:"pi pi-trash"},null,-1)]),8,Qle)])]),_:1})]),_:1},8,["value"])]))]))}},Rle=Pi(Ule,[["__scopeId","data-v-c7846080"]]),Ble={class:"popup"},Zle={class:"content"},Ile={class:"buttons"},Cle={__name:"DeleteProductAdditionPopup",emits:["handleShowDeleteProductAdditionPopup","handleDeleteProductAddition"],setup(t,{emit:e}){const n=e;return(r,i)=>(oe(),Ce("div",null,[Q("div",Ble,[Q("div",Zle,[Q("button",{class:"close_btn",onClick:i[0]||(i[0]=a=>n("handleShowDeleteProductAdditionPopup"))},i[3]||(i[3]=[Q("i",{class:"pi pi-times"},null,-1)])),i[4]||(i[4]=Q("div",{class:"image"},[Q("img",{src:xQ,alt:"image",loading:"lazy"})],-1)),Q("h5",null,ce(r.$t("delete_product_addition_popup.title")),1),Q("p",null,ce(r.$t("delete_popup.text")),1),Q("div",Ile,[Q("button",{class:"main-btn",onClick:i[1]||(i[1]=a=>n("handleShowDeleteProductAdditionPopup"))},ce(r.$t("delete_popup.cancel")),1),Q("button",{class:"main-btn delete_btn",onClick:i[2]||(i[2]=a=>n("handleDeleteProductAddition"))},ce(r.$t("delete_popup.confirm")),1)])])])]))}},vle={class:"button"},Vle={class:"main-btn"},Ele={class:"page"},Sle={class:"content"},FI={__name:"Product_Additions",setup(t){const e=po(),{getResult:n,handlePagination:r}=Fg(),{deleteMethod:i,toast:a,loading:o}=va(),l=hn(!1),s=()=>{l.value=!l.value},d=()=>{s(),i(`provider/products-addons/destroy/${e.addition_id}`,!0,"","reload_page")},c=u=>{r("provider/products-addons?page=",u),setTimeout(()=>{window.scrollTo({top:100,behavior:"smooth"})},300)};return Ka(()=>{r("provider/products-addons?page=",1)}),(u,h)=>{var g,A,b,p;const f=Li("RouterLink");return oe(),Ce("div",null,[Q("div",vle,[Fn(f,{to:"/add_addition"},{default:Yr(()=>[Q("button",Vle,ce(u.$t("products_additions.add_btn")),1)]),_:1})]),Q("div",Ele,[Q("h4",null,ce(u.$t("products_additions.title")),1),Q("div",Sle,[Fn(Rle,{loading:ct(o),additions:(A=(g=ct(n))==null?void 0:g.data)==null?void 0:A.addons,onHandleShowDeleteProductAdditionPopup:s},null,8,["loading","additions"])]),Fn(yg,{data:(p=(b=ct(n))==null?void 0:b.data)==null?void 0:p.pagination,onHandlePagination:c},null,8,["data"])]),l.value?(oe(),Vn(Cle,{key:0,onHandleDeleteProductAddition:d,onHandleShowDeleteProductAdditionPopup:s})):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:a,position:"top-right"},null,512)])}}},Wle={class:"page"},Nle={class:"content"},Gle={for:"ar_name"},Jle={class:"input"},Tle=["placeholder"],Xle={for:"en_name"},kle={class:"input"},wle=["placeholder"],Yle={for:"ur_name"},Dle={class:"input"},Mle=["placeholder"],Lle={for:"ar_description"},Hle={class:"input"},xle=["placeholder"],Ole={for:"en_description"},Kle={class:"input"},Ple=["placeholder"],zle={for:"ur_description"},jle={class:"input"},_le=["placeholder"],$le={for:"price"},qle={class:"input"},ese=["placeholder"],tse={for:"image"},nse={class:"input"},rse={key:0,for:"image"},ise={key:1,class:"images"},ase={class:"image"},ose=["src"],lse={class:"main-btn"},sse={__name:"Edit_Addition",setup(t){const e=po(),n=dc(),{getMethod:r,postMethod:i,getResult:a,toast:o,loading:l,showSuccessPopup:s,handleSuccessPopup:d,handleToast:c}=va(),u=hn({ar_name:"",en_name:"",ur_name:"",ar_description:"",en_description:"",ur_description:"",price:"",image:[]}),h=hn(!1),f=hn(),g=b=>{h.value=!0;const p=b.target.files[0],y=URL.createObjectURL(p);f.value=y,u.value.image=p},A=()=>{if(u.value.ar_name==="")c("error",e.lang==="ar"?"يجب إضافة إسم الإضافة باللغة العربية":e.lang==="en"?"You must add the Arabic Name":e.lang==="ur"?"آپ کو اردو میں ایڈیشن کا نام شامل کرنا ہوگا":""),u.value.ar_name.length<2&&c("error",e.lang==="ar"?"إسم الإضافة باللغة العربية يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The Arabic Name must be at least 2 characters long":e.lang==="ur"?"اردو میں ایڈیشن کا نام کم از کم 2 حروف پر مشتمل ہونا چاہیے":"");else if(u.value.en_name==="")c("error",e.lang==="ar"?"يجب إضافة إسم الإضافة باللغة الإنجليزية":e.lang==="en"?"You must add the English Name":e.lang==="ur"?"آپ کو انگریزی میں ایڈیشن کا نام شامل کرنا ہوگا":""),u.value.en_name.length<2&&c("error",e.lang==="ar"?"إسم الإضافة باللغة الإنجليزية يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The English Name must be at least 2 characters long":e.lang==="ur"?"انگریزی میں ایڈیشن کا نام کم از کم 2 حروف پر مشتمل ہونا چاہیے":"");else if(u.value.ur_name==="")c("error",e.lang==="ar"?"يجب إضافة إسم الإضافة باللغة الأوردو":e.lang==="en"?"You must add the Urdu Name":e.lang==="ur"?"آپ کو اردو میں ایڈیشن کا نام شامل کرنا ہوگا":""),u.value.ur_name.length<2&&c("error",e.lang==="ar"?"إسم الإضافة باللغة الأوردو يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The Urdu Name must be at least 2 characters long":e.lang==="ur"?"اردو میں ایڈیشن کا نام کم از کم 2 حروف پر مشتمل ہونا چاہیے":"");else if(u.value.ar_description==="")c("error",e.lang==="ar"?"يجب إضافة وصف الإضافة باللغة العربية":e.lang==="en"?"You must add the Arabic Description":e.lang==="ur"?"آپ کو اردو میں ایڈیشن کی تفصیل شامل کرنا ہوگی":""),u.value.ar_description.length<2&&c("error",e.lang==="ar"?"وصف الإضافة باللغة العربية يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The Arabic Description must be at least 2 characters long":e.lang==="ur"?"اردو میں ایڈیشن کی تفصیل کم از کم 2 حروف پر مشتمل ہونی چاہیے":"");else if(u.value.en_description==="")c("error",e.lang==="ar"?"يجب إضافة وصف الإضافة باللغة الإنجليزية":e.lang==="en"?"You must add the English Description":e.lang==="ur"?"آپ کو انگریزی میں ایڈیشن کی تفصیل شامل کرنا ہوگی":""),u.value.en_description.length<2&&c("error",e.lang==="ar"?"وصف الإضافة باللغة الإنجليزية يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The English Description must be at least 2 characters long":e.lang==="ur"?"انگریزی میں ایڈیشن کی تفصیل کم از کم 2 حروف پر مشتمل ہونی چاہیے":"");else if(u.value.ur_description==="")c("error",e.lang==="ar"?"يجب إضافة وصف الإضافة باللغة الأوردو":e.lang==="en"?"You must add the Urdu Description":e.lang==="ur"?"آپ کو اردو میں ایڈیشن کی تفصیل شامل کرنا ہوگی":""),u.value.ur_description.length<2&&c("error",e.lang==="ar"?"وصف الإضافة باللغة الأوردو يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The Urdu Description must be at least 2 characters long":e.lang==="ur"?"اردو میں ایڈیشن کی تفصیل کم از کم 2 حروف پر مشتمل ہونی چاہیے":"");else if(u.value.price==="")c("error",e.lang==="ar"?"يجب إضافة السعر":e.lang==="en"?"You must add the price":e.lang==="ur"?"آپ کو قیمت شامل کرنی ہوگی":"");else if(u.value.image===[])c("error",e.lang==="ar"?"يجب إضافة صورة الإضافة":e.lang==="en"?"You must add the image":e.lang==="ur"?"آپ کو تصویر شامل کرنی ہوگی":"");else{const b=new FormData;b.append("name[ar]",u.value.ar_name),b.append("name[en]",u.value.en_name),b.append("name[ur]",u.value.ur_name),b.append("description[ar]",u.value.ar_description),b.append("description[en]",u.value.en_description),b.append("description[ur]",u.value.ur_description),b.append("price",u.value.price),h.value&&b.append("image",u.value.image),i(`provider/products-addons/update/${n.params.id}?_method=put`,b,!0,"/product_additions","success")}};return yi(()=>{var b;return(b=a==null?void 0:a.value)==null?void 0:b.data},b=>{b&&(u.value.ar_name=b.translated_names.ar,u.value.en_name=b.translated_names.en,u.value.ur_name=b.translated_names.ur,u.value.ar_description=b.translated_description.ar,u.value.en_description=b.translated_description.en,u.value.ur_description=b.translated_description.ur,u.value.price=b.price,u.value.image=b.image,f.value=b.image)}),Ka(()=>{r(`provider/products-addons/show/${n.params.id}`,!0)}),(b,p)=>(oe(),Ce("div",null,[Q("div",Wle,[Q("h4",null,ce(b.$t("addition.edit_title")),1),p[8]||(p[8]=Q("hr",null,null,-1)),Q("div",Nle,[Q("form",{action:"",onSubmit:ud(A,["prevent"])},[Q("label",Gle,ce(b.$t("addition.ar_name")),1),Q("div",Jle,[br(Q("input",{type:"text",id:"ar_name",placeholder:b.$t("addition.ar_name"),"onUpdate:modelValue":p[0]||(p[0]=y=>u.value.ar_name=y)},null,8,Tle),[[gi,u.value.ar_name]])]),Q("label",Xle,ce(b.$t("addition.en_name")),1),Q("div",kle,[br(Q("input",{type:"text",id:"en_name",placeholder:b.$t("addition.en_name"),"onUpdate:modelValue":p[1]||(p[1]=y=>u.value.en_name=y)},null,8,wle),[[gi,u.value.en_name]])]),Q("label",Yle,ce(b.$t("addition.ur_name")),1),Q("div",Dle,[br(Q("input",{type:"text",id:"ur_name",placeholder:b.$t("addition.ur_name"),"onUpdate:modelValue":p[2]||(p[2]=y=>u.value.ur_name=y)},null,8,Mle),[[gi,u.value.ur_name]])]),Q("label",Lle,ce(b.$t("addition.ar_description")),1),Q("div",Hle,[br(Q("input",{type:"text",id:"ar_description",placeholder:b.$t("addition.ar_description"),"onUpdate:modelValue":p[3]||(p[3]=y=>u.value.ar_description=y)},null,8,xle),[[gi,u.value.ar_description]])]),Q("label",Ole,ce(b.$t("addition.en_description")),1),Q("div",Kle,[br(Q("input",{type:"text",id:"en_description",placeholder:b.$t("addition.en_description"),"onUpdate:modelValue":p[4]||(p[4]=y=>u.value.en_description=y)},null,8,Ple),[[gi,u.value.en_description]])]),Q("label",zle,ce(b.$t("addition.ur_description")),1),Q("div",jle,[br(Q("input",{type:"text",id:"ur_description",placeholder:b.$t("addition.ur_description"),"onUpdate:modelValue":p[5]||(p[5]=y=>u.value.ur_description=y)},null,8,_le),[[gi,u.value.ur_description]])]),Q("label",$le,ce(b.$t("addition.price")),1),Q("div",qle,[br(Q("input",{type:"number",id:"price",placeholder:b.$t("addition.price"),"onUpdate:modelValue":p[6]||(p[6]=y=>u.value.price=y)},null,8,ese),[[gi,u.value.price]])]),Q("label",tse,ce(b.$t("addition.image")),1),Q("div",nse,[Q("input",{type:"file",id:"image",hidden:"",onChange:g,accept:"image/*"},null,32),p[7]||(p[7]=Q("label",{for:"image",class:"pi pi-camera"},null,-1)),u.value.image===""?(oe(),Ce("label",rse,ce(b.$t("addition.image_placeholder")),1)):(oe(),Ce("div",ise,[Q("div",ase,[Q("img",{src:f.value,alt:"image",loading:"lazy"},null,8,ose)])]))]),Q("button",lse,ce(b.$t("addition.submit_btn")),1)],32)])]),ct(s)?(oe(),Vn(OQ,{key:0,onHandleSuccessPopup:ct(d),successedMsg:b.$t("addition.successedMsg")},null,8,["onHandleSuccessPopup","successedMsg"])):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512),ct(l)?(oe(),Vn(Ru,{key:1})):Pt("",!0)]))}},QI=Pi(sse,[["__scopeId","data-v-1cfdfa3c"]]),dse={class:"tab_items"},cse={class:"content"},use={__name:"Settings",setup(t){const{t:e}=QA(),n=po(),r=hn("update-data"),i=Ag(),a=l=>{i.push(`/settings/${l}`)},o=dc();return yi(()=>o.path,l=>{l==="/settings/update-data"?(r.value="update-data",n.handlePageName(e("settings.data.pageName"))):l==="/settings/update-phone"||l==="/settings/activation-code"&&n.pathFrom==="phone"||l==="/settings/verification-code"&&n.pathFrom==="phone"||l==="/settings/new-phone"?(r.value="update-phone",n.handlePageName(e("settings.phone.tab"))):(r.value="update-email",n.handlePageName(e("settings.email.tab")))}),(l,s)=>(oe(),Ce("div",null,[Q("div",dse,[Q("button",{class:Hr(["tab ",{active:r.value==="update-data"}]),onClick:s[0]||(s[0]=d=>a("update-data"))},ce(l.$t("settings.data.tab")),3),Q("button",{class:Hr(["tab ",{active:r.value==="update-phone"}]),onClick:s[1]||(s[1]=d=>a("update-phone"))},ce(l.$t("settings.phone.tab")),3),Q("button",{class:Hr(["tab ",{active:r.value==="update-email"}]),onClick:s[2]||(s[2]=d=>a("update-email"))},ce(l.$t("settings.email.tab")),3)]),Q("div",cse,[Fn(ct(vp),null,{default:Yr(({Component:d})=>[Fn(Cp,{name:"fade-blur",mode:"out-in"},{default:Yr(()=>[(oe(),Vn(ea(d)))]),_:2},1024)]),_:1})])]))}},UI=Pi(use,[["__scopeId","data-v-8ce0d71b"]]),fse="/assets/rating_img-De2iuN1L.png",hse={__name:"RatingStars",props:{rating:{type:Number,default:0}},setup(t){const e=t;return(n,r)=>{const i=Li("vue3-star-ratings");return oe(),Vn(i,{modelValue:e.rating,"onUpdate:modelValue":r[0]||(r[0]=a=>e.rating=a)},null,8,["modelValue"])}}},RI=Pi(hse,[["__scopeId","data-v-c35c6614"]]),gse={class:"rating_page"},Ase={class:"page_content"},pse={class:"image"},mse=["src"],bse={class:"text"},yse={class:"rating_score"},Fse={__name:"Ratings",setup(t){const{getMethod:e,getResult:n}=va();return Ka(()=>{e("provider/rates/my-given-rates",!0)}),(r,i)=>{var a,o,l,s,d,c,u,h;return oe(),Ce("div",gse,[Q("div",Ase,[Q("h4",null,ce(r.$t("ratings.title")),1),i[0]||(i[0]=Q("hr",null,null,-1)),(oe(!0),Ce(Er,null,ia((o=(a=ct(n))==null?void 0:a.data)==null?void 0:o.givenRates,f=>{var g,A;return oe(),Ce("div",{class:"rating_tab",key:f.id},[Q("div",pse,[Q("img",{src:(g=f==null?void 0:f.ratingable)==null?void 0:g.image,alt:"image",loading:"lazy"},null,8,mse)]),Q("div",bse,[Q("h3",null,ce((A=f==null?void 0:f.ratingable)==null?void 0:A.name),1),Q("p",null,ce(f==null?void 0:f.message),1),Fn(RI,{rating:f.rate},null,8,["rating"])])])}),128))]),Q("div",yse,[i[1]||(i[1]=Q("div",{class:"image"},[Q("img",{src:fse,alt:"image",loading:"lazy"})],-1)),Q("h5",null,ce((s=(l=ct(n))==null?void 0:l.data)==null?void 0:s.avg_rate),1),Fn(RI,{rating:(c=(d=ct(n))==null?void 0:d.data)==null?void 0:c.avg_rate},null,8,["rating"]),Q("p",null,"("+ce((h=(u=ct(n))==null?void 0:u.data)==null?void 0:h.givenRates.length)+") "+ce(r.$t("ratings.text")),1)])])}}},BI=Pi(Fse,[["__scopeId","data-v-c3aabe38"]]),Qse={class:"page_content"},Use={for:"name"},Rse=["placeholder"],Bse={key:0,class:"error-msg"},Zse={key:1,class:"error-msg"},Ise={for:"phone"},Cse=["placeholder"],vse={key:2,class:"error-msg"},Vse={key:3,class:"error-msg"},Ese={for:"complain"},Sse={class:"select_placeholder",value:""},Wse={value:1},Nse={value:2},Gse={key:4,class:"error-msg"},Jse={for:"title"},Tse=["placeholder"],Xse={key:5,class:"error-msg"},kse={key:6,class:"error-msg"},wse={for:"message"},Yse=["placeholder"],Dse={key:7,class:"error-msg"},Mse={key:8,class:"error-msg"},Lse=["disabled"],Hse={__name:"Contact",setup(t){const e=po(),n=hn({user_name:"",phone:"",type:"",complaint:"",subject:""}),r=hn({user_name:!1,phone:!1,type:!1,complaint:!1,subject:!1}),{getMethod:i,postMethod:a,getResult:o,toast:l,loading:s}=va(),d=()=>{r.value.user_name=!n.value.user_name.trim()||n.value.user_name.trim().length<2,r.value.phone=!n.value.phone.trim()||!/^(\+?\d{1,4}[\s\-]?)?(\(?\d{1,3}\)?[\s\-]?)?(\d{1,4}[\s\-]?)?\d{1,4}[\s\-]?\d{1,4}$/.test(n.value.phone)||n.value.phone.trim().length<9,r.value.type=!n.value.type,r.value.complaint=!n.value.complaint.trim()||n.value.complaint.trim().length<4,r.value.subject=!n.value.subject.trim()||n.value.subject.trim().length<4},c=()=>{d(),Object.values(r.value).every(f=>!f)&&a("general/new-complaint",n.value,!0,"/orders","toast")},u=qs(()=>Object.values(r.value).some(f=>f)),h=f=>{r.value[f]=!1};return yi(()=>e.lang,f=>{f&&i("general/cancel-reasons",!1)}),Ka(()=>{i("general/cancel-reasons",!1)}),(f,g)=>(oe(),Ce("div",Qse,[Q("form",{onSubmit:ud(c,["prevent"])},[Q("label",Use,ce(f.$t("contact.name")),1),Q("div",{class:"input",style:ja(r.value.user_name?"margin-bottom:0px":"")},[br(Q("input",{type:"text",id:"name","onUpdate:modelValue":g[0]||(g[0]=A=>n.value.user_name=A),placeholder:f.$t("contact.name_placeholder"),onInput:g[1]||(g[1]=A=>h("user_name")),onBlur:g[2]||(g[2]=A=>n.value.user_name=n.value.user_name.trim())},null,40,Rse),[[gi,n.value.user_name]])],4),r.value.user_name&&!n.value.user_name?(oe(),Ce("span",Bse,[g[14]||(g[14]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.name_error")),1)])):r.value.user_name&&n.value.user_name.length<2?(oe(),Ce("span",Zse,[g[15]||(g[15]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.name_length_error")),1)])):Pt("",!0),Q("label",Ise,ce(f.$t("contact.phone")),1),Q("div",{class:"input",style:ja(r.value.phone?"margin-bottom:0px":"")},[br(Q("input",{type:"tel",id:"phone","onUpdate:modelValue":g[3]||(g[3]=A=>n.value.phone=A),placeholder:f.$t("contact.phone_placeholder"),onInput:g[4]||(g[4]=A=>h("phone")),onBlur:g[5]||(g[5]=A=>n.value.phone=n.value.phone.trim())},null,40,Cse),[[gi,n.value.phone]])],4),r.value.phone&&n.value.phone.length==0?(oe(),Ce("span",vse,[g[16]||(g[16]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.phone_error")),1)])):r.value.phone&&n.value.phone.length<9?(oe(),Ce("span",Vse,[g[17]||(g[17]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.phone_length_error")),1)])):Pt("",!0),Q("label",Ese,ce(f.$t("contact.demand")),1),Q("div",{class:"input",style:ja(r.value.type?"margin-bottom:0px":"")},[br(Q("select",{name:"complain",id:"complain","onUpdate:modelValue":g[6]||(g[6]=A=>n.value.type=A),onChange:g[7]||(g[7]=A=>h("type"))},[Q("option",Sse,ce(f.$t("contact.demand_placeholder")),1),Q("option",Wse,ce(f.$t("contact.complaint")),1),Q("option",Nse,ce(f.$t("contact.suggestion")),1)],544),[[yh,n.value.type]])],4),r.value.type?(oe(),Ce("span",Gse,[g[18]||(g[18]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.demand_error")),1)])):Pt("",!0),Q("label",Jse,ce(f.$t("contact.title")),1),Q("div",{class:"input",style:ja(r.value.complaint?"margin-bottom:0px":"")},[br(Q("input",{type:"text",id:"title","onUpdate:modelValue":g[8]||(g[8]=A=>n.value.complaint=A),placeholder:f.$t("contact.title_placeholder"),onInput:g[9]||(g[9]=A=>h("complaint")),onBlur:g[10]||(g[10]=A=>n.value.complaint=n.value.complaint.trim())},null,40,Tse),[[gi,n.value.complaint]])],4),r.value.complaint&&!n.value.complaint.trim()?(oe(),Ce("span",Xse,[g[19]||(g[19]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.title_error")),1)])):r.value.complaint&&n.value.complaint.trim().length<4?(oe(),Ce("span",kse,[g[20]||(g[20]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.complaint_length_error")),1)])):Pt("",!0),Q("label",wse,ce(f.$t("contact.message")),1),Q("div",{class:"input",style:ja(r.value.subject?"margin-bottom:0px":"")},[br(Q("input",{type:"text",id:"message","onUpdate:modelValue":g[11]||(g[11]=A=>n.value.subject=A),placeholder:f.$t("contact.message_placeholder"),onInput:g[12]||(g[12]=A=>h("subject")),onBlur:g[13]||(g[13]=A=>n.value.subject=n.value.subject.trim())},null,40,Yse),[[gi,n.value.subject]])],4),r.value.subject&&!n.value.subject.trim()?(oe(),Ce("span",Dse,[g[21]||(g[21]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.message_error")),1)])):r.value.subject&&n.value.subject.trim().length<4?(oe(),Ce("span",Mse,[g[22]||(g[22]=Q("i",{class:"pi pi-times"},null,-1)),Ni(" "+ce(f.$t("contact.subject_length_error")),1)])):Pt("",!0),Q("button",{class:"main-btn",disabled:u.value,style:ja(u.value?"background:grey;":"")},ce(f.$t("contact.submitBtn")),13,Lse)],32),Fn(ct(ol),{ref_key:"toast",ref:l,position:"top-right"},null,512),ct(s)?(oe(),Vn(Ru,{key:0})):Pt("",!0)]))}},ZI=Pi(Hse,[["__scopeId","data-v-1382a90e"]]),xse={class:"accordion-container"},Ose=["onClick"],Kse={class:"title"},Pse={key:1},zse={class:"content"},jse={key:1},_se={__name:"FaqAccordion",setup(t){const e=po(),{getMethod:n,getResult:r,loading:i}=va();yi(()=>e.lang,l=>{l&&n("general/fqs",!1)});const a=hn(0),o=l=>{a.value=a.value===l?null:l};return Ka(()=>{n("general/fqs",!1)}),(l,s)=>{var d;return oe(),Ce("div",xse,[(oe(!0),Ce(Er,null,ia((d=ct(r))==null?void 0:d.data,(c,u)=>(oe(),Ce("div",{class:Hr(["accordion",{active:a.value===u}]),key:u,onClick:h=>o(u)},[Q("div",Kse,[ct(i)&&!ct(r)?(oe(),Vn(ct(bA),{key:0,width:"80%",height:"2rem"})):(oe(),Ce("span",Pse,ce(c==null?void 0:c.question),1)),s[0]||(s[0]=Q("i",{class:"pi pi-angle-down"},null,-1))]),Q("div",zse,[ct(i)&&!ct(r)?(oe(),Vn(ct(bA),{key:0,height:"6rem"})):(oe(),Ce("span",jse,ce(c==null?void 0:c.answer),1))])],10,Ose))),128))])}}},$se=Pi(_se,[["__scopeId","data-v-b73e3078"]]),qse={class:"page_content"},II={__name:"Faq",setup(t){return(e,n)=>(oe(),Ce("div",qse,[Fn($se)]))}},ede={class:"page"},tde={__name:"Terms",setup(t){const e=po(),{getMethod:n,getResult:r}=va();return yi(()=>e.lang,i=>{i&&n("general/terms",!1)}),Ka(()=>{n("general/terms",!1)}),(i,a)=>{var o;return oe(),Ce("div",ede,[a[0]||(a[0]=Q("div",{class:"image"},[Q("img",{src:kQ,alt:"image",loading:"lazy"})],-1)),Q("p",null,ce((o=ct(r))==null?void 0:o.data),1)])}}},CI=Pi(tde,[["__scopeId","data-v-04d03669"]]),nde={class:"page"},rde={__name:"About",setup(t){const e=po(),{getMethod:n,getResult:r}=va();return yi(()=>e.lang,i=>{i&&n("general/about",!1)}),Ka(()=>{n("general/about",!1)}),(i,a)=>{var o;return oe(),Ce("div",nde,[a[0]||(a[0]=Q("div",{class:"image"},[Q("img",{src:kQ,alt:"image",loading:"lazy"})],-1)),Q("p",null,ce((o=ct(r))==null?void 0:o.data),1)])}}},vI=Pi(rde,[["__scopeId","data-v-7c9dfb95"]]),ide="data:image/png;base64,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",ade="/assets/admin-C0ykuMyb.png",ode={class:"page_content"},lde={key:0,class:"skeleton-loader"},sde={key:2,class:"notifications"},dde={class:"image"},cde={key:0,src:ide,alt:"image",loading:"lazy"},ude={key:1,src:ade,alt:"image",loading:"lazy"},fde={key:1,class:"text"},hde=["onClick"],gde={__name:"Notifications",setup(t){const e=hn(),{getResult:n,handlePagination:r}=Fg(),i=po(),a=hn(1),o=f=>{a.value=f,r("general/notifications?page=",f)},{deleteMethod:l,toast:s,loading:d}=va(),c=hn(0),u=f=>{c.value++,l(`general/delete-notification/${f}`,!0,"","")},h=()=>{c.value++,l("general/delete-notifications",!0,"","")};return yi(()=>i.lang,f=>{f&&r("general/notifications?page=",a.value)}),yi(()=>{var f,g;return(g=(f=n==null?void 0:n.value)==null?void 0:f.data)==null?void 0:g.notifications},f=>{f&&(e.value=f)}),yi(()=>c.value,f=>{f&&r("general/notifications?page=",a.value)}),Ka(()=>{r("general/notifications?page=",1)}),(f,g)=>{var A,b,p,y,m,F;return oe(),Ce("div",ode,[ct(d)&&((b=(A=e.value)==null?void 0:A.data)==null?void 0:b.length)===0?(oe(),Ce("div",lde,[(oe(),Ce(Er,null,ia(5,R=>Q("div",{key:R,class:"skeleton-tab"},g[0]||(g[0]=[Q("div",{class:"skeleton-image"},null,-1),Q("div",{class:"skeleton-text"},null,-1),Q("div",{class:"skeleton-button"},null,-1)]))),64))])):!ct(d)&&((y=(p=e.value)==null?void 0:p.data)==null?void 0:y.length)===0?(oe(),Vn(Fh,{key:1})):(oe(),Ce("div",sde,[Q("button",{onClick:h},ce(f.$t("notifications.title")),1),(oe(!0),Ce(Er,null,ia((m=e.value)==null?void 0:m.data,R=>{var C,B,N,S,X,J;return oe(),Ce("div",{class:"tab",key:R.id},[Q("div",dde,[(R==null?void 0:R.type)!="admin_notify"&&(R==null?void 0:R.type)!="admin_accept_request_for_edit"&&(R==null?void 0:R.type)!="admin_decline_request_for_edit"?(oe(),Ce("img",cde)):(oe(),Ce("img",ude))]),["admin_notify","admin_accept_request_for_edit","admin_decline_request_for_edit"].includes(R==null?void 0:R.type)?(oe(),Ce("div",fde,[Q("p",null,ce(R==null?void 0:R.title),1),Q("p",null,ce(R==null?void 0:R.body),1)])):(oe(),Vn(ct(Ts),{key:0,to:((C=R==null?void 0:R.data)==null?void 0:C.type)=="invoice_paid_negotiation_order"||((B=R==null?void 0:R.data)==null?void 0:B.type)=="invoice_declined_negotiation_order"||((N=R==null?void 0:R.data)==null?void 0:N.type)=="pending_negotiation_order"||((S=R==null?void 0:R.data)==null?void 0:S.type)=="generated_invoice_negotiation_order"?"/pending_order_details/"+((X=R==null?void 0:R.data)==null?void 0:X.order_id):"/order_details/"+((J=R==null?void 0:R.data)==null?void 0:J.order_id),class:"text"},{default:Yr(()=>[Q("p",null,ce(R==null?void 0:R.title),1),Q("p",null,ce(R==null?void 0:R.body),1)]),_:2},1032,["to"])),Q("button",{onClick:E=>u(R==null?void 0:R.id)},g[1]||(g[1]=[Q("i",{class:"pi pi-times"},null,-1)]),8,hde)])}),128))])),Fn(yg,{data:(F=e.value)==null?void 0:F.pagination,onHandlePagination:o},null,8,["data"]),Fn(ct(ol),{ref_key:"toast",ref:s,position:"top-right"},null,512)])}}},VI=Pi(gde,[["__scopeId","data-v-f6faf9fa"]]),Ade={class:"popup"},pde={class:"content"},mde={class:"image"},bde=["src"],yde={__name:"ImagePopup",props:{image:{type:String,default:""}},emits:["handleShowImagePopup"],setup(t,{emit:e}){const n=e,r=t;return(i,a)=>(oe(),Ce("div",null,[Q("div",Ade,[Q("div",pde,[Q("button",{class:"close_btn",onClick:a[0]||(a[0]=o=>n("handleShowImagePopup"))},a[1]||(a[1]=[Q("i",{class:"pi pi-times"},null,-1)])),Q("div",mde,[Q("img",{src:r.image,alt:"image",loading:"lazy"},null,8,bde)])])])]))}},uW=Pi(yde,[["__scopeId","data-v-5e9d0f10"]]),Fde={class:"page_content"},Qde={class:"info"},Ude={class:"text"},Rde={class:"text_data"},Bde={class:"info"},Zde={class:"text"},Ide={class:"text_data"},Cde={class:"info"},vde={class:"text"},Vde={class:"text_data"},Ede={class:"info"},Sde={class:"text"},Wde={class:"text_data"},Nde={class:"info"},Gde={class:"text"},Jde={class:"text_data"},Tde={class:"info"},Xde={class:"text"},kde={class:"text_data"},wde={class:"page_content"},Yde={class:"info"},Dde={class:"text"},Mde={class:"text_data"},Lde={class:"info"},Hde={class:"text"},xde={class:"text_data"},Ode={class:"info"},Kde={class:"text"},Pde={class:"text_data"},zde={class:"info"},jde={class:"text"},_de={class:"text_data"},$de={class:"info"},qde={class:"text"},ece=["src"],tce={class:"info"},nce={class:"text"},rce=["src"],ice={class:"page_content"},ace={class:"info"},oce={class:"text"},lce={class:"text_data"},sce={class:"info"},dce={class:"text"},cce={class:"text_data"},uce={class:"info"},fce={class:"text"},hce={class:"text_data"},gce={class:"page_content"},Ace={class:"info"},pce={class:"text"},mce={class:"text_data"},bce={class:"info en-content"},yce={class:"text"},Fce={class:"text_data"},Qce={class:"info"},Uce={class:"text"},Rce={class:"text_data"},Bce={class:"page_content"},Zce={class:"text"},Ice={class:"text_data"},Cce={class:"page_content en-content"},vce={class:"text"},Vce={class:"text_data"},Ece={class:"page_content"},Sce={class:"text"},Wce={class:"text_data"},Nce={class:"page_content"},Gce={class:"info"},Jce={class:"text"},Tce={class:"store_categories"},Xce={class:"info"},kce={class:"text"},wce={class:"store_categories"},Yce={class:"page_content"},Dce={class:"info"},Mce={class:"text"},Lce={class:"text_data"},Hce={class:"info"},xce={class:"text"},Oce={class:"text_data"},Kce={class:"info"},Pce={class:"text"},zce={class:"text_data"},jce={class:"info"},_ce={class:"text"},$ce={class:"text_data"},qce={class:"info"},eue=["src"],tue={__name:"Profile",setup(t){const{getMethod:e,getResult:n,toast:r}=va(),i=hn(),a=hn(!1),o=()=>{a.value=!a.value},l=d=>{o(),i.value=d},s=po();return yi(()=>s.lang,d=>{d&&e("provider/profile",!0)}),yi(()=>{var d;return(d=n==null?void 0:n.value)==null?void 0:d.data},d=>{d&&s.handleStoredProfile(d)}),Ka(()=>{e("provider/profile",!0)}),(d,c)=>{var u,h,f,g,A,b,p,y,m,F,R,C,B,N,S,X,J,E,v,j,H,K,Fe,z,q,Ae,Ke,pe,We,xe,$e,Rt,Be,qe,at,Bt,jt,Ne,Je,ve,Ye,it,Qt,_t,Dt,Ee,Ge,he,$,ie,Ve,_e,we,nt,Gt,An,Dn,tr,nr,zn,dr,Dr,ui,Pn,hr,xr,Hi,Di,Da,oi,Ra,Va;return oe(),Ce("div",null,[Q("div",Fde,[Q("div",Qde,[Q("h4",null,ce(d.$t("profile.name")),1),Q("div",Ude,[c[3]||(c[3]=Q("span",{class:"pi pi-user"},null,-1)),Q("h4",Rde,ce((h=(u=ct(n))==null?void 0:u.data)==null?void 0:h.name),1)])]),Q("div",Bde,[Q("h4",null,ce(d.$t("profile.email")),1),Q("div",Zde,[c[4]||(c[4]=Q("span",{class:"pi pi-envelope"},null,-1)),Q("h4",Ide,ce((g=(f=ct(n))==null?void 0:f.data)==null?void 0:g.email),1)])]),Q("div",Cde,[Q("h4",null,ce(d.$t("profile.phone")),1),Q("div",vde,[c[5]||(c[5]=Q("span",{class:"pi pi-phone"},null,-1)),Q("h4",Vde,ce((b=(A=ct(n))==null?void 0:A.data)==null?void 0:b.full_phone),1)])]),Q("div",Ede,[Q("h4",null,ce(d.$t("profile.delivery_method")),1),Q("div",Sde,[c[6]||(c[6]=Q("span",{class:"pi pi-objects-column"},null,-1)),Q("h4",Wde,ce((m=(y=(p=ct(n))==null?void 0:p.data)==null?void 0:y.delivery_method)==null?void 0:m.text),1)])]),Q("div",Nde,[Q("h4",null,ce(d.$t("profile.preparing_time")),1),Q("div",Gde,[c[7]||(c[7]=Q("span",{class:"pi pi-objects-column"},null,-1)),Q("h4",Jde,ce((R=(F=ct(n))==null?void 0:F.data)==null?void 0:R.preparing_time),1)])]),Q("div",Tde,[Q("h4",null,ce(d.$t("profile.minimum_order")),1),Q("div",Xde,[c[8]||(c[8]=Q("span",{class:"pi pi-objects-column"},null,-1)),Q("h4",kde,ce((B=(C=ct(n))==null?void 0:C.data)==null?void 0:B.minimum_order),1)])])]),Q("div",wde,[Q("div",Yde,[Q("h4",null,ce(d.$t("profile.city")),1),Q("div",Dde,[c[9]||(c[9]=Q("span",{class:"pi pi-map-marker"},null,-1)),Q("h4",Mde,ce((X=(S=(N=ct(n))==null?void 0:N.data)==null?void 0:S.city)==null?void 0:X.name),1)])]),Q("div",Lde,[Q("h4",null,ce(d.$t("profile.store_location")),1),Q("div",Hde,[c[10]||(c[10]=Q("span",{class:"pi pi-map-marker redIcon"},null,-1)),Q("h4",xde,ce((v=(E=(J=ct(n))==null?void 0:J.data)==null?void 0:E.location)==null?void 0:v.map_desc),1)])]),Q("div",Ode,[Q("h4",null,ce(d.$t("profile.whatsapp")),1),Q("div",Kde,[c[11]||(c[11]=Q("span",{class:"pi pi-phone"},null,-1)),Q("h4",Pde,ce((H=(j=ct(n))==null?void 0:j.data)==null?void 0:H.whatsapp_phone),1)])]),Q("div",zde,[Q("h4",null,ce(d.$t("profile.neighborhood")),1),Q("div",jde,[c[12]||(c[12]=Q("span",{class:"pi pi-map-marker"},null,-1)),Q("h4",_de,ce((z=(Fe=(K=ct(n))==null?void 0:K.data)==null?void 0:Fe.neighborhood)==null?void 0:z.name),1)])]),Q("div",$de,[Q("h4",null,ce(d.$t("profile.image")),1),Q("div",qde,[Q("div",{class:"image",onClick:c[0]||(c[0]=fi=>{var _a,dn;return l((dn=(_a=ct(n))==null?void 0:_a.data)==null?void 0:dn.image)})},[Q("img",{src:(Ae=(q=ct(n))==null?void 0:q.data)==null?void 0:Ae.image,alt:"image",loading:"lazy"},null,8,ece)])])]),Q("div",tce,[Q("h4",null,ce(d.$t("profile.logo")),1),Q("div",nce,[Q("div",{class:"image",onClick:c[1]||(c[1]=fi=>{var _a,dn;return l((dn=(_a=ct(n))==null?void 0:_a.data)==null?void 0:dn.logo)})},[Q("img",{src:(pe=(Ke=ct(n))==null?void 0:Ke.data)==null?void 0:pe.logo,alt:"image",loading:"lazy"},null,8,rce)])])])]),Q("div",ice,[Q("div",ace,[Q("h4",null,ce(d.$t("profile.info_card")),1),Q("div",oce,[c[13]||(c[13]=Q("span",{class:"pi pi-id-card"},null,-1)),Q("h4",lce,ce((xe=(We=ct(n))==null?void 0:We.data)==null?void 0:xe.identity_number),1)])]),Q("div",sce,[Q("h4",null,ce(d.$t("profile.ecommerce")),1),Q("div",dce,[c[14]||(c[14]=Q("span",{class:"pi pi-receipt"},null,-1)),Q("h4",cce,ce((Rt=($e=ct(n))==null?void 0:$e.data)==null?void 0:Rt.civil_registration_number),1)])]),Q("div",uce,[Q("h4",null,ce(d.$t("profile.tax")),1),Q("div",fce,[c[15]||(c[15]=Q("span",{class:"pi pi-receipt"},null,-1)),Q("h4",hce,ce((qe=(Be=ct(n))==null?void 0:Be.data)==null?void 0:qe.tax_number),1)])])]),Q("div",gce,[Q("div",Ace,[Q("h4",null,ce(d.$t("profile.ar_store_name")),1),Q("div",pce,[c[16]||(c[16]=Q("span",{class:"pi pi-clipboard"},null,-1)),Q("h4",mce,ce((jt=(Bt=(at=ct(n))==null?void 0:at.data)==null?void 0:Bt.store_name)==null?void 0:jt.ar),1)])]),Q("div",bce,[Q("h4",null,ce(d.$t("profile.en_store_name")),1),Q("div",yce,[c[17]||(c[17]=Q("span",{class:"pi pi-clipboard"},null,-1)),Q("h4",Fce,ce((ve=(Je=(Ne=ct(n))==null?void 0:Ne.data)==null?void 0:Je.store_name)==null?void 0:ve.en),1)])]),Q("div",Qce,[Q("h4",null,ce(d.$t("profile.ur_store_name")),1),Q("div",Uce,[c[18]||(c[18]=Q("span",{class:"pi pi-clipboard"},null,-1)),Q("h4",Rce,ce((Qt=(it=(Ye=ct(n))==null?void 0:Ye.data)==null?void 0:it.store_name)==null?void 0:Qt.ur),1)])])]),Q("div",Bce,[Q("h4",null,ce(d.$t("profile.ar_store_description")),1),Q("div",Zce,[c[19]||(c[19]=Q("span",{class:"pi pi-clipboard"},null,-1)),Q("h4",Ice,ce((Ee=(Dt=(_t=ct(n))==null?void 0:_t.data)==null?void 0:Dt.store_description)==null?void 0:Ee.ar),1)])]),Q("div",Cce,[Q("h4",null,ce(d.$t("profile.en_store_description")),1),Q("div",vce,[c[20]||(c[20]=Q("span",{class:"pi pi-clipboard"},null,-1)),Q("h4",Vce,ce(($=(he=(Ge=ct(n))==null?void 0:Ge.data)==null?void 0:he.store_description)==null?void 0:$.en),1)])]),Q("div",Ece,[Q("h4",null,ce(d.$t("profile.ur_store_description")),1),Q("div",Sce,[c[21]||(c[21]=Q("span",{class:"pi pi-clipboard"},null,-1)),Q("h4",Wce,ce((_e=(Ve=(ie=ct(n))==null?void 0:ie.data)==null?void 0:Ve.store_description)==null?void 0:_e.ur),1)])]),Q("div",Nce,[Q("div",Gce,[Q("h4",null,ce(d.$t("profile.main_category")),1),Q("div",Jce,[c[22]||(c[22]=Q("span",{class:"pi pi-objects-column"},null,-1)),Q("div",Tce,ce((Gt=(nt=(we=ct(n))==null?void 0:we.data)==null?void 0:nt.main_category)==null?void 0:Gt.name),1)])]),Q("div",Xce,[Q("h4",null,ce(d.$t("profile.store_category")),1),Q("div",kce,[c[23]||(c[23]=Q("span",{class:"pi pi-objects-column"},null,-1)),Q("div",wce,[(oe(!0),Ce(Er,null,ia((Dn=(An=ct(n))==null?void 0:An.data)==null?void 0:Dn.categories,fi=>(oe(),Ce("span",{key:fi.id},ce(fi.name),1))),128))])])])]),Q("div",Yce,[Q("div",Dce,[Q("h4",null,ce(d.$t("profile.bank_name")),1),Q("div",Mce,[c[24]||(c[24]=Q("span",{class:"pi pi-building-columns"},null,-1)),Q("h4",Lce,ce((zn=(nr=(tr=ct(n))==null?void 0:tr.data)==null?void 0:nr.bank_info)==null?void 0:zn.bank_name),1)])]),Q("div",Hce,[Q("h4",null,ce(d.$t("profile.account_name")),1),Q("div",xce,[c[25]||(c[25]=Q("span",{class:"pi pi-id-card"},null,-1)),Q("h4",Oce,ce((ui=(Dr=(dr=ct(n))==null?void 0:dr.data)==null?void 0:Dr.bank_info)==null?void 0:ui.account_name),1)])]),Q("div",Kce,[Q("h4",null,ce(d.$t("profile.account_number")),1),Q("div",Pce,[c[26]||(c[26]=Q("span",{class:"pi pi-sort-numeric-up-alt"},null,-1)),Q("h4",zce,ce((xr=(hr=(Pn=ct(n))==null?void 0:Pn.data)==null?void 0:hr.bank_info)==null?void 0:xr.account_number),1)])]),Q("div",jce,[Q("h4",null,ce(d.$t("profile.iban_number")),1),Q("div",_ce,[c[27]||(c[27]=Q("span",{class:"pi pi-sort-numeric-up-alt"},null,-1)),Q("h4",$ce,ce((Da=(Di=(Hi=ct(n))==null?void 0:Hi.data)==null?void 0:Di.bank_info)==null?void 0:Da.iban),1)])]),Q("div",qce,[Q("h4",null,ce(d.$t("profile.account_image")),1),Q("div",{class:"image",onClick:c[2]||(c[2]=fi=>{var _a,dn,St;return l((St=(dn=(_a=ct(n))==null?void 0:_a.data)==null?void 0:dn.bank_info)==null?void 0:St.bank_account_image)})},[Q("img",{src:(Va=(Ra=(oi=ct(n))==null?void 0:oi.data)==null?void 0:Ra.bank_info)==null?void 0:Va.bank_account_image,alt:"image",loading:"lazy"},null,8,eue)])])]),Fn(ct(ol),{ref_key:"toast",ref:r,position:"top-right"},null,512),a.value?(oe(),Vn(uW,{key:0,onHandleShowImagePopup:o,image:i.value},null,8,["image"])):Pt("",!0)])}}},EI=Pi(tue,[["__scopeId","data-v-b0a3fdb4"]]);var nue={root:{position:"relative"}},rue={root:function(e){var n=e.instance,r=e.props;return["p-inputswitch p-component",{"p-highlight":n.checked,"p-disabled":r.disabled,"p-invalid":r.invalid}]},input:"p-inputswitch-input",slider:"p-inputswitch-slider"},iue=Ld.extend({name:"inputswitch",classes:rue,inlineStyles:nue}),aue={name:"BaseInputSwitch",extends:nl,props:{modelValue:{type:null,default:!1},trueValue:{type:null,default:!0},falseValue:{type:null,default:!1},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},tabindex:{type:Number,default:null},inputId:{type:String,default:null},inputClass:{type:[String,Object],default:null},inputStyle:{type:Object,default:null},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null}},style:iue,provide:function(){return{$parentInstance:this}}},fW={name:"InputSwitch",extends:aue,inheritAttrs:!1,emits:["update:modelValue","change","focus","blur"],methods:{getPTOptions:function(e){var n=e==="root"?this.ptmi:this.ptm;return n(e,{context:{checked:this.checked,disabled:this.disabled}})},onChange:function(e){if(!this.disabled&&!this.readonly){var n=this.checked?this.falseValue:this.trueValue;this.$emit("update:modelValue",n),this.$emit("change",e)}},onFocus:function(e){this.$emit("focus",e)},onBlur:function(e){this.$emit("blur",e)}},computed:{checked:function(){return this.modelValue===this.trueValue}}},oue=["data-p-highlight","data-p-disabled"],lue=["id","checked","tabindex","disabled","readonly","aria-checked","aria-labelledby","aria-label","aria-invalid"];function sue(t,e,n,r,i,a){return oe(),Ce("div",Jt({class:t.cx("root"),style:t.sx("root")},a.getPTOptions("root"),{"data-p-highlight":a.checked,"data-p-disabled":t.disabled}),[Q("input",Jt({id:t.inputId,type:"checkbox",role:"switch",class:[t.cx("input"),t.inputClass],style:t.inputStyle,checked:a.checked,tabindex:t.tabindex,disabled:t.disabled,readonly:t.readonly,"aria-checked":a.checked,"aria-labelledby":t.ariaLabelledby,"aria-label":t.ariaLabel,"aria-invalid":t.invalid||void 0,onFocus:e[0]||(e[0]=function(){return a.onFocus&&a.onFocus.apply(a,arguments)}),onBlur:e[1]||(e[1]=function(){return a.onBlur&&a.onBlur.apply(a,arguments)}),onChange:e[2]||(e[2]=function(){return a.onChange&&a.onChange.apply(a,arguments)})},a.getPTOptions("input")),null,16,lue),Q("span",Jt({class:t.cx("slider")},a.getPTOptions("slider")),null,16)],16,oue)}fW.render=sue;const due={class:"page_content"},cue={class:"form"},uue={class:"inputs"},fue={class:"input-tab"},hue={for:"day"},gue={class:"input"},Aue=["onUpdate:modelValue"],pue={class:"input-tab"},mue={for:"from"},bue={class:"input"},yue=["onUpdate:modelValue","placeholder"],Fue={class:"input-tab"},Que={for:"to"},Uue={class:"input"},Rue=["onUpdate:modelValue","placeholder"],Bue={class:"input-tab"},Zue={__name:"Work_Periods",setup(t){const e=po(),{getMethod:n,postMethod:r,getResult:i,toast:a,handleToast:o}=va(),l=hn([]),s=[{id:1,name:{en:"Sunday",ar:"الأحد",ur:"اتوار"},from:"09:00",to:"17:00"},{id:2,name:{en:"Monday",ar:"الإثنين",ur:"پیر"},from:"09:00",to:"17:00"},{id:3,name:{en:"Tuesday",ar:"الثلاثاء",ur:"منگل"},from:"09:00",to:"17:00"},{id:4,name:{en:"Wednesday",ar:"الأربعاء",ur:"بدھ"},from:"09:00",to:"17:00"},{id:5,name:{en:"Thursday",ar:"الخميس",ur:"جمعرات"},from:"09:00",to:"17:00"},{id:6,name:{en:"Friday",ar:"الجمعة",ur:"جمعہ"},from:"09:00",to:"17:00"},{id:7,name:{en:"Saturday",ar:"السبت",ur:"ہفتہ"},from:"09:00",to:"17:00"}];yi(()=>i.value,u=>{var h;((h=u==null?void 0:u.data)==null?void 0:h.length)>0?l.value=u.data.map(f=>({day:f.day,from:f.from,to:f.to,is_holiday:!f.is_holiday})):l.value=s.map(f=>({day:{id:f.id,name:f.name[e.lang]||f.name.en},from:"",to:"",is_holiday:!1}))});const d=u=>{const[h,f]=u.split(":");return`${String(h).padStart(2,"0")}:${String(f).padStart(2,"0")}`},c=()=>{if(!l.value.every(f=>f.from&&f.to)){o("error",e.lang==="ar"?"يرجى ملء جميع الحقول الزمنية قبل الإرسال.":e.lang==="en"?"Please fill in all time fields before submitting.":"براہ کرم فارم جمع کروانے سے پہلے تمام وقت کے فیلڈز کو بھریں۔");return}const h=new FormData;l.value.forEach((f,g)=>{const A=d(f.from),b=d(f.to);h.append(`worktimes[${g+1}][from]`,A),h.append(`worktimes[${g+1}][to]`,b),h.append(`worktimes[${g+1}][is_holiday]`,+!f.is_holiday)}),r("provider/work-times/store",h,!0,"/orders","toast")};return Ka(()=>{n("provider/work-times",!0)}),(u,h)=>(oe(),Ce("div",due,[Q("div",cue,[(oe(!0),Ce(Er,null,ia(l.value,(f,g)=>(oe(),Ce("div",{class:"input-wrap",key:g},[Q("div",uue,[Q("div",fue,[Q("label",hue,ce(f.day.name),1),Q("div",gue,[br(Q("input",{type:"text",id:"day","onUpdate:modelValue":A=>f.day.name=A,disabled:""},null,8,Aue),[[gi,f.day.name]])])]),Q("div",pue,[Q("label",mue,ce(u.$t("work_periods.from")),1),Q("div",bue,[br(Q("input",{type:"time",id:"from","onUpdate:modelValue":A=>f.from=A,placeholder:s[g].from},null,8,yue),[[gi,f.from]])])]),Q("div",Fue,[Q("label",Que,ce(u.$t("work_periods.to")),1),Q("div",Uue,[br(Q("input",{type:"time",id:"to","onUpdate:modelValue":A=>f.to=A,placeholder:s[g].to},null,8,Rue),[[gi,f.to]])])]),Q("div",Bue,[Fn(ct(fW),{modelValue:f.is_holiday,"onUpdate:modelValue":A=>f.is_holiday=A},null,8,["modelValue","onUpdate:modelValue"])])])]))),128)),Q("button",{class:"main-btn",type:"submit",onClick:c},ce(u.$t("work_periods.submitBtn")),1)]),Fn(ct(ol),{ref_key:"toast",ref:a,position:"top-right"},null,512)]))}},SI=Pi(Zue,[["__scopeId","data-v-1f58e746"]]),Iue={class:"image-uploader"},Cue={key:0,for:"img_upload",class:"circle"},vue=["src"],Vue={key:1,class:"circle",for:"img_upload"},Eue={for:"img_upload"},Sue={class:"page_content"},Wue={class:"input-wrap"},Nue={for:"manager"},Gue={class:"input"},Jue=["placeholder"],Tue={class:"input-wrap"},Xue={for:"nationalityID"},kue={class:"input"},wue=["placeholder"],Yue={class:"input-wrap"},Due={for:"ecommerce"},Mue={class:"input"},Lue=["placeholder"],Hue={class:"input-wrap"},xue={for:"tax"},Oue={class:"input"},Kue=["placeholder"],Pue={class:"page_content"},zue={class:"input-wrap"},jue={for:"ar_name"},_ue={class:"input"},$ue=["placeholder"],que={class:"input-wrap"},efe={for:"en_name"},tfe={class:"input"},nfe=["placeholder"],rfe={class:"input-wrap"},ife={for:"ur_name"},afe={class:"input"},ofe=["placeholder"],lfe={class:"input-wrap"},sfe={for:"account_img"},dfe={class:"input",style:{"justify-content":"flex-start"}},cfe={key:0,for:"logo",class:"fileInput_text"},ufe={key:1,class:"images"},ffe={for:"logo",class:"image"},hfe=["src"],gfe={class:"input-wrap"},Afe={for:"ar_desc"},pfe={class:"input"},mfe=["placeholder"],bfe={class:"input-wrap"},yfe={for:"en_desc"},Ffe={class:"input"},Qfe=["placeholder"],Ufe={class:"input-wrap"},Rfe={for:"ur_desc"},Bfe={class:"input"},Zfe=["placeholder"],Ife={class:"input-wrap"},Cfe={for:"prepare_order"},vfe={class:"input"},Vfe=["placeholder"],Efe={class:"page_content"},Sfe={class:"input-wrap whatsapp-inputs"},Wfe={for:"whatsapp"},Nfe={class:"inputs"},Gfe={class:"input"},Jfe={class:"input"},Tfe={class:"input-wrap"},Xfe={for:"city"},kfe={class:"input"},wfe={class:"input-wrap"},Yfe={for:"main_section"},Dfe={class:"input"},Mfe={class:"input-wrap multiselect_input"},Lfe={for:"activity_sections"},Hfe={class:"input-wrap"},xfe={for:"location"},Ofe={class:"input"},Kfe=["placeholder","value"],Pfe={class:"input-wrap"},zfe={for:"neighborhood"},jfe={class:"input"},_fe={class:"input-wrap"},$fe={for:"minimum"},qfe={class:"input"},ehe=["placeholder"],the={class:"page_content"},nhe={class:"input-wrap"},rhe={for:"bank"},ihe={class:"input"},ahe=["placeholder"],ohe={class:"input-wrap"},lhe={for:"owner"},she={class:"input"},dhe=["placeholder"],che={class:"input-wrap"},uhe={for:"account"},fhe={class:"input"},hhe=["placeholder"],ghe={class:"input-wrap"},Ahe={for:"iban"},phe={class:"input"},mhe=["placeholder"],bhe={class:"input-wrap"},yhe={for:"account_img"},Fhe={class:"input",style:{"justify-content":"flex-start"}},Qhe={key:0,for:"account_img",class:"fileInput_text"},Uhe={key:1,for:"account_img",class:"images"},Rhe={class:"image"},Bhe=["src"],Zhe={class:"radio_inputs"},Ihe={for:"delivery"},Che={class:"inputs"},vhe={class:"input-wrap"},Vhe={for:"delivery"},Ehe={class:"input-wrap"},She={for:"from_branch"},Whe={class:"input-wrap"},Nhe={for:"both_ways"},Ghe={__name:"UpdataData",setup(t){const e=po(),{getMethod:n,getResult:r,postMethod:i,postResult:a,toast:o,loading:l,handleToast:s}=va(),d=hn(!1),c=hn({image:"",name:"",identity_number:"",tax_number:"",civil_registration_number:"",ar_store_name:"",en_store_name:"",ur_store_name:"",logo:"",ar_store_description:"",en_store_description:"",ur_store_description:"",whatsapp_country_code:"",whatsapp_phone:"",category_id:"",departments:[],city_id:"",lat:"",lng:"",map_desc:"",neighborhood_id:"",minimum_order:"",bank_name:"",account_name:"",account_number:"",iban:"",bank_account_image:"",delivery_method:""}),u=hn(!1),h=hn(null),f=E=>{const v=E.target.files[0];if(!v){s("error",(e==null?void 0:e.lang)==="ar"?"لم يتم تحديد أي ملف للصورة.":(e==null?void 0:e.lang)==="en"?"No file selected for the image.":"تصویر کے لیے کوئی فائل منتخب نہیں کی گئی۔"),c.value.image="";return}if(!v.type.startsWith("image/")){s("error",(e==null?void 0:e.lang)==="ar"?"يجب أن يكون الملف صورة بصيغة مدعومة مثل JPEG, PNG، أو GIF.":(e==null?void 0:e.lang)==="en"?"The file must be an image in a supported format like JPEG, PNG, or GIF.":"فائل کو تصویر ہونا چاہیے، جیسے JPEG، PNG، یا GIF۔"),c.value.image="";return}h.value=URL.createObjectURL(v),c.value.image=v,d.value=!0,u.value=!0},g=hn(!1),A=hn(null),b=E=>{d.value=!0,g.value=!0;const v=E.target.files[0];if(!v||c.value.bank_account_image==null){s("error",(e==null?void 0:e.lang)==="ar"?"لم يتم تحديد أي ملف لصورة تفاصيل الحساب البنكي.":(e==null?void 0:e.lang)==="en"?"No file selected for the account details image.":"اکاؤنٹ کی تفصیلات کی تصویر کے لیے کوئی فائل منتخب نہیں کی گئی۔"),c.value.bank_account_image="";return}if(!v.type.startsWith("image/")){s("error",(e==null?void 0:e.lang)==="ar"?"يجب أن يكون الملف صورة بصيغة مدعومة مثل JPEG, PNG، أو GIF.":(e==null?void 0:e.lang)==="en"?"The file must be an image in a supported format like JPEG, PNG, or GIF.":"فائل کو تصویر ہونا چاہیے، جیسے JPEG، PNG، یا GIF۔"),c.value.bank_account_image="";return}A.value=URL.createObjectURL(v),c.value.bank_account_image=v,d.value=!0,g.value=!0},p=hn(!1),y=hn(null),m=E=>{d.value=!0,p.value=!0;const v=E.target.files[0];if(!v){s("error",(e==null?void 0:e.lang)==="ar"?"لم يتم تحديد أي ملف لشعار الشركة.":(e==null?void 0:e.lang)==="en"?"No file selected for the logo image.":"لوگو تصویر کے لیے کوئی فائل منتخب نہیں کی گئی۔"),c.value.logo="";return}if(!v.type.startsWith("image/")){s("error",(e==null?void 0:e.lang)==="ar"?"يجب أن يكون الملف صورة بصيغة مدعومة مثل JPEG, PNG، أو GIF.":(e==null?void 0:e.lang)==="en"?"The file must be an image in a supported format like JPEG, PNG, or GIF.":"فائل کو تصویر ہونا چاہیے، جیسے JPEG، PNG، یا GIF۔"),c.value.logo="";return}y.value=URL.createObjectURL(v),c.value.logo=v,d.value=!0,p.value=!0},F=E=>{d.value=!0,c.value.country_code=E},R=hn(),C=hn(!1),B=E=>{c.value.city_id=E,n(`general/get_city_neighborhoods/${E}`,!1),C.value=!0};yi(()=>r==null?void 0:r.value,E=>{C.value&&E&&(R.value=E.data)});const N=E=>{d.value=!0,c.value.neighborhood_id=E},S=E=>{d.value=!0,c.value.category_id=E},X=E=>{d.value=!0,c.value.departments=E};yi(()=>{var E;return(E=r.value)==null?void 0:E.data},E=>{var v,j,H,K,Fe,z,q;E&&!C.value&&(h.value=E.image,y.value=E.logo,c.value.name=E.name,c.value.identity_number=E.identity_number,c.value.civil_registration_number=E.civil_registration_number,c.value.tax_number=E.tax_number,c.value.ar_store_name=E.store_name.ar,c.value.en_store_name=E.store_name.en,c.value.ur_store_name=E.store_name.ur,c.value.logo=E==null?void 0:E.logo,c.value.ar_store_description=E.store_description.ar,c.value.en_store_description=E.store_description.en,c.value.ur_store_description=E.store_description.ur,c.value.preparing_time=E.preparing_time,c.value.whatsapp_country_code=E.whatsapp_country_code,c.value.whatsapp_phone=E.whatsapp_phone,c.value.city_id=E.city.id,c.value.lat=E.location.lat,c.value.lng=E.location.lng,c.value.map_desc=E.location.map_desc,c.value.category_id=E.main_category.id,E.categories.forEach(Ae=>{c.value.departments.push(Ae)}),c.value.neighborhood_id=E.neighborhood.id,c.value.minimum_order=E.minimum_order,c.value.bank_name=(v=E.bank_info)==null?void 0:v.bank_name,c.value.account_name=(j=E.bank_info)==null?void 0:j.account_name,c.value.account_number=(H=E.bank_info)==null?void 0:H.account_number,c.value.iban=(K=E.bank_info)==null?void 0:K.iban,c.value.bank_account_image=(Fe=E.bank_info)==null?void 0:Fe.bank_account_image,A.value=(z=E.bank_info)==null?void 0:z.bank_account_image,c.value.delivery_method=E.delivery_method.value,e.handleStoredProfile((q=r.value)==null?void 0:q.data),setTimeout(()=>{B(c.value.city_id)},300))}),yi(()=>a==null?void 0:a.value,E=>{E.key==="success"&&n("provider/profile",!0)});const J=()=>{const E=new FormData;u.value&&E.append("image",c.value.image),E.append("name",c.value.name),E.append("identity_number",c.value.identity_number),E.append("tax_number",c.value.tax_number),E.append("civil_registration_number",c.value.civil_registration_number),E.append("store_name[ar]",c.value.ar_store_name),E.append("store_name[en]",c.value.en_store_name),E.append("store_name[ur]",c.value.ur_store_name),E.append("store_description[ar]",c.value.ar_store_description),E.append("store_description[en]",c.value.en_store_description),E.append("store_description[ur]",c.value.ur_store_description),E.append("preparing_time",c.value.preparing_time),E.append("whatsapp_country_code",c.value.whatsapp_country_code),E.append("whatsapp_phone",c.value.whatsapp_phone),E.append("city_id",c.value.city_id),E.append("category_id",c.value.category_id),E.append("lat",c.value.lat),E.append("lng",c.value.lng),E.append("map_desc",c.value.map_desc),E.append("neighborhood_id",c.value.neighborhood_id),E.append("minimum_order",c.value.minimum_order),E.append("bank_name",c.value.bank_name),E.append("account_name",c.value.account_name),E.append("account_number",c.value.account_number),E.append("iban",c.value.iban),g.value&&E.append("bank_account_image",c.value.bank_account_image),p.value&&E.append("logo",c.value.logo),E.append("delivery_method",c.value.delivery_method),c.value.departments.forEach((v,j)=>{E.append(`sub_categories[${j}]`,v.id)}),c.value.preparing_time<=0?s("error",(e==null?void 0:e.lang)==="ar"?"مدة تجهيز الطلب يجب أن تكون أكبر من صفر":(e==null?void 0:e.lang)==="en"?"Order preparation time must be greater than zero.":"آرڈر تیاری کا وقت صفر سے زیادہ ہونا چاہیے"):i("provider/profile/update?_method=put",E,!0,"/orders","toast")};return Ka(()=>{n("provider/profile",!0)}),(E,v)=>(oe(),Ce("div",null,[Q("form",{action:"",onSubmit:ud(J,["prevent"])},[Q("div",Iue,[h.value?(oe(),Ce("label",Cue,[Q("img",{src:h.value,alt:"Uploaded Image",loading:"lazy"},null,8,vue)])):(oe(),Ce("label",Vue,v[40]||(v[40]=[Q("i",{class:"pi pi-upload"},null,-1)]))),Q("input",{type:"file",hidden:"",id:"img_upload",accept:"image/*",onChange:f},null,32),Q("label",Eue,ce(E.$t("settings.data.image")),1)]),Q("div",Sue,[Q("div",Wue,[Q("label",Nue,ce(E.$t("settings.data.manager")),1),Q("div",Gue,[br(Q("input",{id:"manager",type:"text",placeholder:E.$t("settings.data.manager"),"onUpdate:modelValue":v[0]||(v[0]=j=>c.value.name=j),onInput:v[1]||(v[1]=j=>d.value=!0)},null,40,Jue),[[gi,c.value.name]])])]),Q("div",Tue,[Q("label",Xue,ce(E.$t("settings.data.nationalityID")),1),Q("div",kue,[br(Q("input",{id:"nationalityID",type:"number",placeholder:E.$t("settings.data.nationalityID"),"onUpdate:modelValue":v[2]||(v[2]=j=>c.value.identity_number=j),onInput:v[3]||(v[3]=j=>d.value=!0)},null,40,wue),[[gi,c.value.identity_number]])])]),Q("div",Yue,[Q("label",Due,ce(E.$t("settings.data.ecommerce")),1),Q("div",Mue,[br(Q("input",{id:"ecommerce",type:"number",placeholder:E.$t("settings.data.ecommerce"),"onUpdate:modelValue":v[4]||(v[4]=j=>c.value.civil_registration_number=j),onInput:v[5]||(v[5]=j=>d.value=!0)},null,40,Lue),[[gi,c.value.civil_registration_number]])])]),Q("div",Hue,[Q("label",xue,ce(E.$t("settings.data.tax")),1),Q("div",Oue,[br(Q("input",{id:"tax",type:"number",placeholder:E.$t("settings.data.tax"),"onUpdate:modelValue":v[6]||(v[6]=j=>c.value.tax_number=j),onInput:v[7]||(v[7]=j=>d.value=!0)},null,40,Kue),[[gi,c.value.tax_number]])])])]),Q("div",Pue,[Q("div",zue,[Q("label",jue,ce(E.$t("settings.data.ar_name")),1),Q("div",_ue,[br(Q("input",{id:"ar_name",type:"text",placeholder:E.$t("settings.data.ar_name"),"onUpdate:modelValue":v[8]||(v[8]=j=>c.value.ar_store_name=j),onInput:v[9]||(v[9]=j=>d.value=!0)},null,40,$ue),[[gi,c.value.ar_store_name]])])]),Q("div",que,[Q("label",efe,ce(E.$t("settings.data.en_name")),1),Q("div",tfe,[br(Q("input",{id:"en_name",type:"text",placeholder:E.$t("settings.data.en_name"),"onUpdate:modelValue":v[10]||(v[10]=j=>c.value.en_store_name=j),onInput:v[11]||(v[11]=j=>d.value=!0)},null,40,nfe),[[gi,c.value.en_store_name]])])]),Q("div",rfe,[Q("label",ife,ce(E.$t("settings.data.ur_name")),1),Q("div",afe,[br(Q("input",{id:"ur_name",type:"text",placeholder:E.$t("settings.data.ur_name"),"onUpdate:modelValue":v[12]||(v[12]=j=>c.value.ur_store_name=j),onInput:v[13]||(v[13]=j=>d.value=!0)},null,40,ofe),[[gi,c.value.ur_store_name]])])]),Q("div",lfe,[Q("label",sfe,ce(E.$t("settings.data.logo_label")),1),Q("div",dfe,[Q("input",{id:"logo",type:"file",hidden:"",accept:"image/*",onChange:m},null,32),y.value===null?(oe(),Ce("label",cfe,ce(E.$t("settings.data.logo_label")),1)):Pt("",!0),v[42]||(v[42]=Q("label",{for:"logo",class:"pi pi-camera"},null,-1)),y.value?(oe(),Ce("div",ufe,[Q("label",ffe,[v[41]||(v[41]=Q("i",{class:"pi pi-trash"},null,-1)),Q("img",{src:y.value,alt:"image",loading:"lazy"},null,8,hfe)])])):Pt("",!0)])]),Q("div",gfe,[Q("label",Afe,ce(E.$t("settings.data.ar_desc")),1),Q("div",pfe,[br(Q("input",{id:"ar_desc",type:"text",placeholder:E.$t("settings.data.ar_desc"),onInput:v[14]||(v[14]=j=>d.value=!0),"onUpdate:modelValue":v[15]||(v[15]=j=>c.value.ar_store_description=j)},null,40,mfe),[[gi,c.value.ar_store_description]])])]),Q("div",bfe,[Q("label",yfe,ce(E.$t("settings.data.en_desc")),1),Q("div",Ffe,[br(Q("input",{id:"en_desc",type:"text",placeholder:E.$t("settings.data.en_desc"),onInput:v[16]||(v[16]=j=>d.value=!0),"onUpdate:modelValue":v[17]||(v[17]=j=>c.value.en_store_description=j)},null,40,Qfe),[[gi,c.value.en_store_description]])])]),Q("div",Ufe,[Q("label",Rfe,ce(E.$t("settings.data.ur_desc")),1),Q("div",Bfe,[br(Q("input",{id:"ur_desc",type:"text",placeholder:E.$t("settings.data.ur_desc"),onInput:v[18]||(v[18]=j=>d.value=!0),"onUpdate:modelValue":v[19]||(v[19]=j=>c.value.ur_store_description=j)},null,40,Zfe),[[gi,c.value.ur_store_description]])])]),Q("div",Ife,[Q("label",Cfe,ce(E.$t("settings.data.prepare_order")),1),Q("div",vfe,[br(Q("input",{id:"prepare_order",type:"text",placeholder:E.$t("settings.data.prepare_order"),onInput:v[20]||(v[20]=j=>d.value=!0),"onUpdate:modelValue":v[21]||(v[21]=j=>c.value.preparing_time=j)},null,40,Vfe),[[gi,c.value.preparing_time]])])])]),Q("div",Efe,[Q("div",Sfe,[Q("label",Wfe,ce(E.$t("settings.data.whatsapp")),1),Q("div",Nfe,[Q("div",Gfe,[br(Q("input",{id:"whatsapp",type:"text",placeholder:"0000000000000000000",onInput:v[22]||(v[22]=j=>d.value=!0),"onUpdate:modelValue":v[23]||(v[23]=j=>c.value.whatsapp_phone=j)},null,544),[[gi,c.value.whatsapp_phone]])]),Q("div",Jfe,[Fn(F0,{country_code:Number(c.value.whatsapp_country_code),onHandleCountryCode:F},null,8,["country_code"])])])]),Q("div",Tfe,[Q("label",Xfe,ce(E.$t("settings.data.city")),1),Q("div",kfe,[Fn(mS,{city_id:Number(c.value.city_id),onHandleCity:B},null,8,["city_id"])])]),Q("div",wfe,[Q("label",Yfe,ce(E.$t("settings.data.main_section")),1),Q("div",Dfe,[Fn(pS,{category_id:Number(c.value.category_id),onHandleCategory:S},null,8,["category_id"])])]),Q("div",Mfe,[Q("label",Lfe,ce(E.$t("settings.data.activity_sections")),1),Fn(AS,{category_id:Number(c.value.category_id),departments:c.value.departments,onHandleDepartments:X},null,8,["category_id","departments"])]),Q("div",Hfe,[Q("label",xfe,ce(E.$t("settings.data.location")),1),Q("div",Ofe,[Q("input",{type:"text",id:"location",placeholder:E.$t("settings.data.location"),disabled:"",value:c.value.map_desc},null,8,Kfe),v[43]||(v[43]=Q("span",{class:"pi pi-map-marker"},null,-1))])]),Q("div",Pfe,[Q("label",zfe,ce(E.$t("settings.data.neighborhood")),1),Q("div",jfe,[Fn(bS,{city_id:Number(c.value.city_id),neighborhoods:R.value,neighborhood_id:Number(c.value.neighborhood_id),onHandleNeighborhood:N,disabled:!C.value},null,8,["city_id","neighborhoods","neighborhood_id","disabled"])])]),Q("div",_fe,[Q("label",$fe,ce(E.$t("settings.data.minimum")),1),Q("div",qfe,[br(Q("input",{type:"text",id:"minimum",placeholder:E.$t("settings.data.minimum"),onInput:v[24]||(v[24]=j=>d.value=!0),"onUpdate:modelValue":v[25]||(v[25]=j=>c.value.minimum_order=j)},null,40,ehe),[[gi,c.value.minimum_order]])])])]),Q("div",the,[Q("div",nhe,[Q("label",rhe,ce(E.$t("settings.data.bank")),1),Q("div",ihe,[br(Q("input",{id:"bank",type:"text",placeholder:E.$t("settings.data.bank"),onInput:v[26]||(v[26]=j=>d.value=!0),"onUpdate:modelValue":v[27]||(v[27]=j=>c.value.bank_name=j)},null,40,ahe),[[gi,c.value.bank_name]])])]),Q("div",ohe,[Q("label",lhe,ce(E.$t("settings.data.owner")),1),Q("div",she,[br(Q("input",{id:"owner",type:"text",placeholder:E.$t("settings.data.owner"),onInput:v[28]||(v[28]=j=>d.value=!0),"onUpdate:modelValue":v[29]||(v[29]=j=>c.value.account_name=j)},null,40,dhe),[[gi,c.value.account_name]])])]),Q("div",che,[Q("label",uhe,ce(E.$t("settings.data.account")),1),Q("div",fhe,[br(Q("input",{id:"account",type:"number",placeholder:E.$t("settings.data.account"),onInput:v[30]||(v[30]=j=>d.value=!0),"onUpdate:modelValue":v[31]||(v[31]=j=>c.value.account_number=j)},null,40,hhe),[[gi,c.value.account_number]])])]),Q("div",ghe,[Q("label",Ahe,ce(E.$t("settings.data.iban")),1),Q("div",phe,[br(Q("input",{id:"iban",type:"text",placeholder:E.$t("settings.data.iban"),onInput:v[32]||(v[32]=j=>d.value=!0),"onUpdate:modelValue":v[33]||(v[33]=j=>c.value.iban=j)},null,40,mhe),[[gi,c.value.iban]])])]),Q("div",bhe,[Q("label",yhe,ce(E.$t("settings.data.account_img")),1),Q("div",Fhe,[Q("input",{id:"account_img",type:"file",hidden:"",accept:"image/*",onChange:b},null,32),A.value===null?(oe(),Ce("label",Qhe,ce(E.$t("settings.data.account_img")),1)):Pt("",!0),v[45]||(v[45]=Q("label",{for:"account_img",class:"pi pi-camera"},null,-1)),A.value?(oe(),Ce("label",Uhe,[Q("div",Rhe,[v[44]||(v[44]=Q("i",{class:"pi pi-trash"},null,-1)),Q("img",{src:A.value,alt:"image",loading:"lazy"},null,8,Bhe)])])):Pt("",!0)])])]),Q("div",Zhe,[Q("label",Ihe,ce(E.$t("settings.data.product_recieve")),1),Q("div",Che,[Q("div",vhe,[br(Q("input",{type:"radio",name:"product_recieved",id:"delivery",value:"2",onInput:v[34]||(v[34]=j=>d.value=!0),"onUpdate:modelValue":v[35]||(v[35]=j=>c.value.delivery_method=j)},null,544),[[up,c.value.delivery_method]]),Q("label",Vhe,ce(E.$t("settings.data.delivery")),1)]),Q("div",Ehe,[br(Q("input",{type:"radio",name:"product_recieved",id:"from_branch",value:"1",onInput:v[36]||(v[36]=j=>d.value=!0),"onUpdate:modelValue":v[37]||(v[37]=j=>c.value.delivery_method=j)},null,544),[[up,c.value.delivery_method]]),Q("label",She,ce(E.$t("settings.data.from_branch")),1)]),Q("div",Whe,[br(Q("input",{type:"radio",name:"product_recieved",id:"both_ways",value:"3",onInput:v[38]||(v[38]=j=>d.value=!0),"onUpdate:modelValue":v[39]||(v[39]=j=>c.value.delivery_method=j)},null,544),[[up,c.value.delivery_method]]),Q("label",Nhe,ce(E.$t("settings.data.both_ways")),1)])])]),Q("button",{class:"main-btn",style:ja(d.value?"":"pointer-events:none;background:grey;user-select:none;")},ce(E.$t("settings.data.save")),5)],32),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512),c.value.city_id===""||c.value.whatsapp_country_code===""||c.value.category_id===""||ct(l)?(oe(),Vn(Ru,{key:0})):Pt("",!0)]))}},WI=Pi(Ghe,[["__scopeId","data-v-9dfc0aa2"]]),Jhe={class:"page_content"},The={class:"input-wrap"},Xhe={for:"phone"},khe={class:"input"},whe=["placeholder","value"],Yhe={class:"main-btn"},Dhe={__name:"UpdatePhone",setup(t){const e=po(),{postMethod:n,getResult:r,toast:i}=va(),a=()=>{e.definePath("phone"),e.handleStorePhone(e.profile.country_code,e.profile.phone),n("provider/change-phone/send-code","",!0,"/settings/verification-code","toast")};return(o,l)=>(oe(),Ce("div",Jhe,[Q("form",{action:"",onSubmit:ud(a,["prevent"])},[Q("div",The,[Q("label",Xhe,ce(o.$t("settings.phone.current_phone")),1),Q("div",khe,[Q("input",{type:"text",id:"phone",placeholder:o.$t("settings.phone.current_phone_placeholder"),value:ct(e).profile.full_phone,disabled:""},null,8,whe)])]),Q("button",Yhe,ce(o.$t("settings.submit_btn")),1)],32),Fn(ct(ol),{ref_key:"toast",ref:i,position:"top-right"},null,512)]))}},NI=Pi(Dhe,[["__scopeId","data-v-19f53ff8"]]),Mhe={class:"page_content"},Lhe={class:"input-wrap"},Hhe={for:"email"},xhe={class:"input"},Ohe=["placeholder","value"],Khe={type:"submit",class:"main-btn"},Phe={__name:"UpdateEmail",setup(t){const{postMethod:e,toast:n}=va(),r=po(),i=()=>{r.definePath("email"),r.handleStoreEmail(r.profile.email),e("provider/change-email/send-code","",!0,"/settings/verification-code","toast")};return(a,o)=>(oe(),Ce("div",null,[Q("div",Mhe,[Q("form",{action:"",onSubmit:ud(i,["prevent"])},[Q("div",Lhe,[Q("label",Hhe,ce(a.$t("settings.email.current_email")),1),Q("div",xhe,[Q("input",{type:"text",placeholder:a.$t("settings.email.current_email_placeholder"),id:"email",disabled:"",value:ct(r).profile.email},null,8,Ohe)])]),Q("button",Khe,ce(a.$t("settings.submit_btn")),1)],32)]),Fn(ct(ol),{ref_key:"toast",ref:n,position:"top-right"},null,512)]))}},GI=Pi(Phe,[["__scopeId","data-v-6ff2e26d"]]),zhe={class:"page_content"},jhe={class:"inputs"},_he=["onInput","id","onKeydown"],$he={class:"main-btn",type:"submit"},qhe=["disabled"],ege={__name:"VerificationCode",setup(t){const{postMethod:e,toast:n}=va(),r=po(),i=hn({code:["","","","","",""]}),a=hn(!1),o=hn(60);let l=null;const s=(f,g)=>{const A=f.target.value;if(i.value.code[g-1]=A,A.length===1){const b=document.getElementById(`input-${g+1}`);b&&b.focus()}},d=f=>{const g=f.key;if(!/[0-9]/.test(g)&&g!=="Backspace"&&g!=="Tab"&&f.preventDefault(),g==="Backspace"){const A=f.target;if(A.value.length===0){const b=document.getElementById(`input-${parseInt(A.id.split("-")[1])-1}`);b&&b.focus()}}},c=()=>{const f=i.value.code.join("");if(r.pathFrom==="phone"){const g=new FormData;g.append("country_code",r.country_code),g.append("phone",r.phone),g.append("code",f),g.append("type","1"),e("provider/change-phone/check-code",g,!0,"/settings/new-phone","toast")}else if(r.pathFrom==="email"){const g=new FormData;g.append("email",r.email),g.append("code",f),g.append("type","3"),e("provider/change-email/check-code",g,!0,"/settings/new-email","toast")}},u=()=>{a.value=!0,o.value=60,l=setInterval(()=>{o.value-=1,o.value===0&&(clearInterval(l),a.value=!1)},1e3)},h=()=>{if(!a.value){if(r.pathFrom==="phone"){const f=new FormData;f.append("country_code",r.country_code),f.append("phone",r.phone),e("provider/change-phone/resend-code",f,!0,"","toast")}else if(r.pathFrom==="email"){const f=new FormData;f.append("email",r.email),e("provider/change-email/resend-code",f,!0,"","toast")}u()}};return Ka(()=>{u()}),(f,g)=>(oe(),Ce("div",zhe,[Q("form",{onSubmit:ud(c,["prevent"])},[Q("h5",null,ce(f.$t("settings.code.verification")),1),Q("p",null,ce(f.$t("settings.code.verification_text")),1),Q("div",jhe,[(oe(),Ce(Er,null,ia(6,A=>Q("div",{class:"input",key:A},[Q("input",{type:"text",maxlength:"1",onInput:b=>s(b,A),id:"input-"+A,onKeydown:[g[0]||(g[0]=b=>d(b)),dA(ud(c,["prevent"]),["enter"])]},null,40,_he)])),64))]),Q("button",$he,ce(f.$t("settings.submit_btn")),1),Q("p",null,[Ni(ce(f.$t("settings.code.question"))+" ",1),Q("button",{onClick:h,type:"button",disabled:a.value,style:ja(a.value?"color:grey":"")},ce(a.value?`${f.$t("activationCode.resendWait")} ${o.value} ${f.$t("activationCode.seconds")}`:f.$t("activationCode.resend")),13,qhe)])],32),Fn(ct(ol),{ref_key:"toast",ref:n,position:"top-right"},null,512)]))}},JI=Pi(ege,[["__scopeId","data-v-46438830"]]),tge={class:"page_content"},nge={for:"phone"},rge={class:"input-wrap"},ige={class:"input"},age=["placeholder"],oge={class:"input"},lge={key:0,class:"error-message"},sge=["disabled"],dge={__name:"NewPhone",setup(t){const{postMethod:e,toast:n}=va(),r=po(),i=hn({country_code:"966",phone:""}),a=hn(""),o=d=>{i.value.country_code=d},l=d=>d.length===9||d.length===10;yi(()=>i.value.phone,d=>{d?l(d)?a.value="":a.value=(r==null?void 0:r.lang)==="ar"?"رقم الهاتف يجب أن يتكون من 9 أو 10 أرقام.":(r==null?void 0:r.lang)==="en"?"The phone number must be 9 or 10 digits.":"فون نمبر 9 یا 10 اعداد پر مشتمل ہونا چاہیے۔":a.value=(r==null?void 0:r.lang)==="ar"?"يرجى إدخال رقم الهاتف.":(r==null?void 0:r.lang)==="en"?"Please enter a phone number.":"براہ کرم فون نمبر درج کریں۔"});const s=()=>{a.value||(r.definePath("phone"),r.handleStorePhone(i.value.country_code,i.value.phone),e("provider/change-phone/send-code-for-new",i.value,!0,"/settings/activation-code","toast"))};return(d,c)=>(oe(),Ce("div",null,[Q("div",tge,[Q("form",{action:"",onSubmit:ud(s,["prevent"])},[Q("label",nge,ce(d.$t("settings.phone.new_phone")),1),Q("div",rge,[Q("div",ige,[br(Q("input",{type:"text",id:"phone",placeholder:d.$t("settings.phone.new_phone_placeholder"),"onUpdate:modelValue":c[0]||(c[0]=u=>i.value.phone=u)},null,8,age),[[gi,i.value.phone]])]),Q("div",oge,[Fn(F0,{onHandleCountryCode:o})])]),a.value?(oe(),Ce("span",lge,ce(a.value),1)):Pt("",!0),Q("button",{class:"main-btn",disabled:a.value.length>0},ce(d.$t("settings.submit_btn")),9,sge)],32)]),Fn(ct(ol),{ref_key:"toast",ref:n,position:"top-right"},null,512)]))}},TI=Pi(dge,[["__scopeId","data-v-557607d1"]]),cge={class:"page_content"},uge={class:"input-wrap"},fge={for:"email"},hge={class:"input"},gge=["placeholder"],Age={key:0,class:"error-message"},pge=["disabled"],mge={__name:"NewEmail",setup(t){const{postMethod:e,toast:n}=va(),r=po(),i=hn({email:""}),a=hn(""),o=s=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(s);yi(()=>i.value.email,s=>{s?o(s)?a.value="":a.value=(r==null?void 0:r.lang)==="ar"?"يرجى إدخال بريد إلكتروني صالح.":(r==null?void 0:r.lang)==="en"?"Please enter a valid email address.":"براہ کرم درست ای میل پتہ درج کریں۔":a.value=(r==null?void 0:r.lang)==="ar"?"يرجى إدخال البريد الإلكتروني.":(r==null?void 0:r.lang)==="en"?"Please enter an email address.":"براہ کرم ای میل پتہ درج کریں۔"});const l=()=>{a.value||(r.definePath("email"),r.handleStoreEmail(i.value.email),e("provider/change-email/send-code-for-new",i.value,!0,"/settings/activation-code","toast"))};return(s,d)=>(oe(),Ce("div",null,[Q("div",cge,[Q("form",{action:"",onSubmit:ud(l,["prevent"])},[Q("div",uge,[Q("label",fge,ce(s.$t("settings.email.new_email")),1),Q("div",hge,[br(Q("input",{type:"text",placeholder:s.$t("settings.email.new_email_placeholder"),id:"email","onUpdate:modelValue":d[0]||(d[0]=c=>i.value.email=c)},null,8,gge),[[gi,i.value.email]])]),a.value?(oe(),Ce("span",Age,ce(a.value),1)):Pt("",!0)]),Q("button",{type:"submit",class:"main-btn",disabled:a.value.length>0},ce(s.$t("settings.submit_btn")),9,pge)],32)]),Fn(ct(ol),{ref_key:"toast",ref:n,position:"top-right"},null,512)]))}},XI=Pi(mge,[["__scopeId","data-v-fa2d3da2"]]),bge={class:"page_content"},yge={class:"inputs"},Fge=["onInput","id","onKeydown"],Qge={class:"main-btn",type:"submit"},Uge=["disabled"],Rge={__name:"ActivationCode",setup(t){const e=po(),{postMethod:n,toast:r}=va(),i=hn({code:["","","","","",""]}),a=(h,f)=>{const g=h.target.value;if(i.value.code[f-1]=g,g.length===1){const A=document.getElementById(`input-${f+1}`);A&&A.focus()}},o=h=>{const f=h.key;if(!/[0-9]/.test(f)&&f!=="Backspace"&&f!=="Tab"&&h.preventDefault(),f==="Backspace"){const g=h.target;if(g.value.length===0){const A=document.getElementById(`input-${parseInt(g.id.split("-")[1])-1}`);A&&A.focus()}}},l=()=>{const h=i.value.code.join("");if(e.pathFrom==="phone"){const f=new FormData;f.append("country_code",e.country_code),f.append("phone",e.phone),f.append("code",h),f.append("type","2"),n("provider/change-phone/check-code",f,!0,"/settings/update-phone","toast")}else if(e.pathFrom==="email"){const f=new FormData;f.append("code",h),f.append("email",e.email),f.append("type","4"),n("provider/change-email/check-code",f,!0,"/settings/update-email","toast")}},s=hn(!1),d=hn(0),c=()=>{s.value=!0,d.value=60;const h=setInterval(()=>{d.value-=1,d.value<=0&&(clearInterval(h),s.value=!1)},1e3)},u=()=>{if(c(),e.pathFrom==="phone"){const h=new FormData;h.append("country_code",e.country_code),h.append("phone",e.phone),n("provider/change-phone/send-code-for-new",h,!0,"","toast")}else if(e.pathFrom==="email"){const h=new FormData;h.append("email",e.email),n("provider/change-email/re-send-code-for-new",h,!0,"","toast")}};return Ka(()=>{c()}),(h,f)=>(oe(),Ce("div",bge,[Q("form",{onSubmit:ud(l,["prevent"])},[Q("h5",null,ce(h.$t("settings.code.activation")),1),Q("p",null,ce(h.$t("settings.code.activation_text")),1),Q("div",yge,[(oe(),Ce(Er,null,ia(6,g=>Q("div",{class:"input",key:g},[Q("input",{type:"text",maxlength:"1",onInput:A=>a(A,g),id:"input-"+g,onKeydown:[f[0]||(f[0]=A=>o(A)),dA(ud(l,["prevent"]),["enter"])]},null,40,Fge)])),64))]),Q("button",Qge,ce(h.$t("settings.submit_btn")),1),Q("p",null,[Ni(ce(h.$t("settings.code.question"))+" ",1),Q("button",{onClick:u,type:"button",disabled:s.value,style:ja(s.value?"color:grey":"")},ce(s.value?`${h.$t("activationCode.resendWait")} ${d.value} ${h.$t("activationCode.seconds")}`:h.$t("activationCode.resend")),13,Uge)])],32),Fn(ct(ol),{ref_key:"toast",ref:r,position:"top-right"},null,512)]))}},kI=Pi(Rge,[["__scopeId","data-v-2ade26e5"]]),Bge={class:"tab_items"},Zge={class:"content"},Ige={__name:"FinancialTransactions",setup(t){const e=hn(window.sessionStorage.getItem("activeTab")),n=Ag(),r=a=>{n.push(`/financial_transactions/${a}`)},i=dc();return yi(()=>i.path,a=>{a=="/financial_transactions/due-transactions"&&a!="/financial_transactions/"?(e.value="due-transactions",window.sessionStorage.setItem("activeTab","due-transactions")):a=="/financial_transactions/current-settlement"&&a!="/financial_transactions/"?(e.value="current-settlement",window.sessionStorage.setItem("activeTab","current-settlement")):(e.value="finished-settlement",window.sessionStorage.setItem("activeTab","finished-settlement"))}),Ka(()=>{}),(a,o)=>(oe(),Ce("div",null,[Q("div",Bge,[Q("button",{class:Hr(["tab",{active:e.value=="due-transactions"}]),onClick:o[0]||(o[0]=l=>r("due-transactions"))},ce(a.$t("financial_transaction.due.tab")),3),Q("button",{class:Hr(["tab",{active:e.value=="current-settlement"}]),onClick:o[1]||(o[1]=l=>r("current-settlement"))},ce(a.$t("financial_transaction.current.tab")),3),Q("button",{class:Hr(["tab",{active:e.value=="finished-settlement"}]),onClick:o[2]||(o[2]=l=>r("finished-settlement"))},ce(a.$t("financial_transaction.finished.tab")),3)]),Q("div",Zge,[Fn(ct(vp),null,{default:Yr(({Component:l})=>[Fn(Cp,{name:"fade-blur",mode:"out-in"},{default:Yr(()=>[(oe(),Vn(ea(l)))]),_:2},1024)]),_:1})])]))}},wI=Pi(Ige,[["__scopeId","data-v-6bc42ec1"]]),Cge={key:1,class:"due_transactions"},vge={class:"page"},Vge={class:"content"},Ege={key:0,class:"tab"},Sge={key:1,class:"tab"},Wge={key:2,class:"tab"},Nge={class:"orders"},Gge={class:"top"},Jge={class:"time"},Tge={class:"content"},Xge={key:0,class:"tab"},kge={key:1,class:"tab"},wge={key:2,class:"tab"},Yge={key:3,class:"tab"},Dge={key:4,class:"tab"},Mge={class:"button"},Lge={__name:"DueTransactions",setup(t){const e=hn(null),n=hn(null),{getMethod:r,postMethod:i,getResult:a,toast:o,loading:l}=va(),s=po();yi(()=>s.lang,c=>{c&&r("provider/financial-transactions",!0)}),yi(()=>{var c;return(c=a.value)==null?void 0:c.data},c=>{c&&(e.value=c==null?void 0:c.statistics,n.value=c==null?void 0:c.orders)});const d=()=>{i("provider/financial-transactions/settlments/store","",!0,"/financial_transactions/current-settlement","toast")};return Ka(()=>{r("provider/financial-transactions",!0)}),(c,u)=>{var h,f,g,A,b,p,y,m,F;return oe(),Ce("div",null,[((g=(f=(h=ct(a))==null?void 0:h.data)==null?void 0:f.orders)==null?void 0:g.length)===0?(oe(),Vn(Fh,{key:0})):(oe(),Ce("div",Cge,[Q("div",vge,[Q("h4",null,ce(c.$t("financial_transaction.due.total_values")),1),u[0]||(u[0]=Q("hr",null,null,-1)),Q("div",Vge,[(A=e.value)!=null&&A.total?(oe(),Ce("div",Ege,[Q("h5",null,ce(c.$t("financial_transaction.due.total_requests")),1),Q("p",null,ce((b=e.value)==null?void 0:b.total)+" "+ce(c.$t("currency")),1)])):Pt("",!0),(p=e.value)!=null&&p.admin_commission_value?(oe(),Ce("div",Sge,[Q("h5",null,ce(c.$t("financial_transaction.due.total_app_tax")),1),Q("p",null,ce((y=e.value)==null?void 0:y.admin_commission_value)+" "+ce(c.$t("currency")),1)])):Pt("",!0),(m=e.value)!=null&&m.total_due_amount?(oe(),Ce("div",Wge,[Q("h5",null,ce(c.$t("financial_transaction.due.dues")),1),Q("p",null,ce((F=e.value)==null?void 0:F.total_due_amount)+" "+ce(c.$t("currency")),1)])):Pt("",!0)])]),Q("div",Nge,[(oe(!0),Ce(Er,null,ia(n.value,R=>(oe(),Ce("div",{class:"page order_details",key:R.id},[Q("div",Gge,[Q("h4",null,ce(c.$t("financial_transaction.due.order_num"))+" : "+ce(R.order_num),1),Q("div",Jge,[u[1]||(u[1]=Q("i",{class:"pi pi-clock"},null,-1)),Q("p",null,ce(R.created_at),1)])]),u[2]||(u[2]=Q("hr",null,null,-1)),Q("div",Tge,[R.total?(oe(),Ce("div",Xge,[Q("h5",null,ce(c.$t("financial_transaction.due.order_value")),1),Q("p",null,ce(R.total)+" "+ce(R.currency),1)])):Pt("",!0),R.admin_commission_value?(oe(),Ce("div",kge,[Q("h5",null,ce(c.$t("financial_transaction.due.comission")),1),Q("p",null,ce(R.admin_commission_value)+" "+ce(R.currency),1)])):Pt("",!0),R.pay_type_text?(oe(),Ce("div",wge,[Q("h5",null,ce(c.$t("financial_transaction.due.pay_way")),1),Q("p",null,ce(R.pay_type_text),1)])):Pt("",!0),R.vat_amount?(oe(),Ce("div",Yge,[Q("h5",null,ce(c.$t("financial_transaction.due.total_value_added")),1),Q("p",null,ce(R.vat_amount)+" "+ce(R.currency),1)])):Pt("",!0),R.provider_due_amount?(oe(),Ce("div",Dge,[Q("h5",null,ce(c.$t("financial_transaction.due.dues")),1),Q("p",null,ce(R.provider_due_amount)+" "+ce(R.currency),1)])):Pt("",!0)])]))),128))]),Q("div",Mge,[Q("button",{class:"main-btn",onClick:d},ce(c.$t("financial_transaction.due.settlement_request")),1)])])),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512),ct(l)?(oe(),Vn(Ru,{key:2})):Pt("",!0)])}}},YI=Pi(Lge,[["__scopeId","data-v-9d182372"]]),Hge={__name:"CurrentSettlementTable",setup(t){const e=po(),{toast:n}=va(),{handlePagination:r,loading:i,getResult:a}=Fg(),o=hn(1),l=s=>{o.value=s,r("provider/financial-transactions/settlments/current?page=",o.value)};return yi(()=>e.lang,s=>{s&&r("provider/financial-transactions/settlments/current?page=",o.value)}),Ka(()=>{r("provider/financial-transactions/settlments/current?page=",o.value)}),(s,d)=>{var c,u,h,f,g,A,b,p;return oe(),Ce("div",null,[ct(i)&&!((u=(c=ct(a))==null?void 0:c.data)!=null&&u.settlements)?(oe(),Vn(UA,{key:0})):!ct(i)&&((f=(h=ct(a))==null?void 0:h.data)==null?void 0:f.settlements.length)!==0?(oe(),Vn(ct(Jp),{key:1,value:(A=(g=ct(a))==null?void 0:g.data)==null?void 0:A.settlements,class:"table centered-table statistics-table"},{default:Yr(()=>[Fn(ct(ks),{field:"order_num",header:s.$t("financial_transaction.current.order_num"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"user_name",header:s.$t("financial_transaction.current.name"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"created_at",header:s.$t("financial_transaction.current.order_date"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"status.text",header:s.$t("financial_transaction.current.order_status"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{style:{minWidth:"120px"}},{body:Yr(y=>[Fn(ct(Ts),{to:"/single-settlement/"+y.data.id},{default:Yr(()=>d[0]||(d[0]=[Q("button",{class:"edit_btn"},[Q("i",{class:"pi pi-angle-left"})],-1)])),_:2},1032,["to"])]),_:1})]),_:1},8,["value"])):(oe(),Vn(Fh,{key:2})),Fn(yg,{data:(p=(b=ct(a))==null?void 0:b.data)==null?void 0:p.pagination,onHandlePagination:l},null,8,["data"]),Fn(ct(ol),{ref_key:"toast",ref:n,position:"top-right"},null,512)])}}},xge=Pi(Hge,[["__scopeId","data-v-cf1ce914"]]),Oge={class:"page_content"},DI={__name:"CurrentSettlement",setup(t){return(e,n)=>(oe(),Ce("div",Oge,[Fn(xge)]))}},Kge={__name:"FinishedSettlementTable",setup(t){const e=po(),{toast:n}=va(),{handlePagination:r,loading:i,getResult:a}=Fg(),o=hn(1),l=s=>{o.value=s,r("provider/financial-transactions/settlments/completed?page=",o.value)};return yi(()=>e.lang,s=>{s&&r("provider/financial-transactions/settlments/completed?page=",o.value)}),Ka(()=>{r("provider/financial-transactions/settlments/completed?page=",o.value)}),(s,d)=>{var c,u,h,f,g,A,b,p;return oe(),Ce("div",null,[ct(i)&&!((u=(c=ct(a))==null?void 0:c.data)!=null&&u.settlements)?(oe(),Vn(UA,{key:0})):!ct(i)&&((f=(h=ct(a))==null?void 0:h.data)==null?void 0:f.settlements.length)!==0?(oe(),Vn(ct(Jp),{key:1,value:(A=(g=ct(a))==null?void 0:g.data)==null?void 0:A.settlements,class:"table centered-table statistics-table"},{default:Yr(()=>[Fn(ct(ks),{field:"order_num",header:s.$t("financial_transaction.finished.order_num"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"user_name",header:s.$t("financial_transaction.finished.name"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"created_at",header:s.$t("financial_transaction.finished.order_date"),style:{minWidth:"120px"}},null,8,["header"]),Fn(ct(ks),{field:"status",header:s.$t("financial_transaction.finished.order_status"),style:{minWidth:"120px"}},{body:Yr(y=>[Q("span",{style:ja({color:y.data.status.slug==="accepted"?"#4C637F":"#7E0606"})},ce(y.data.status.text),5)]),_:1},8,["header"]),Fn(ct(ks),{style:{minWidth:"120px"}},{body:Yr(y=>[Fn(ct(Ts),{to:"/single-settlement/"+y.data.id},{default:Yr(()=>d[0]||(d[0]=[Q("button",{class:"edit_btn"},[Q("i",{class:"pi pi-angle-left"})],-1)])),_:2},1032,["to"])]),_:1})]),_:1},8,["value"])):(oe(),Vn(Fh,{key:2})),Fn(yg,{data:(p=(b=ct(a))==null?void 0:b.data)==null?void 0:p.pagination,onHandlePagination:l},null,8,["data"]),Fn(ct(ol),{ref_key:"toast",ref:n,position:"top-right"},null,512)])}}},Pge=Pi(Kge,[["__scopeId","data-v-6f295c74"]]),zge={class:"page_content"},MI={__name:"FinishedSettlement",setup(t){return(e,n)=>(oe(),Ce("div",zge,[Fn(Pge)]))}},jge={class:"due_transactions"},_ge={class:"page"},$ge={class:"content"},qge={key:0,class:"tab"},eAe={key:1,class:"tab"},tAe={key:2,class:"tab"},nAe={class:"page order_details"},rAe={class:"top"},iAe={class:"time"},aAe={class:"content"},oAe={key:0,class:"tab"},lAe={key:1,class:"tab"},sAe={key:2,class:"tab"},dAe={key:3,class:"tab"},cAe={key:0,class:"page order_details reciept_image"},uAe={class:"content"},fAe={class:"image"},hAe=["src"],gAe={key:1,class:"page order_details refused"},AAe={class:"content"},pAe={key:2,class:"settlement_status"},mAe={__name:"SingleSettlementPage",setup(t){const n=dc().params.id,{getMethod:r,getResult:i,toast:a,loading:o}=va(),l=po();return yi(()=>l.lang,s=>{s&&r(`provider/financial-transactions/settlments/show/${n}`,!0)}),Ka(()=>{r(`provider/financial-transactions/settlments/show/${n}`,!0)}),(s,d)=>{var c,u,h,f,g,A,b,p,y,m,F,R,C,B,N,S,X,J,E,v,j,H,K,Fe,z,q,Ae,Ke,pe,We,xe;return oe(),Ce("div",null,[Q("div",jge,[Q("div",_ge,[Q("h4",null,ce(s.$t("settlement_single_page.total_values")),1),d[0]||(d[0]=Q("hr",null,null,-1)),Q("div",$ge,[(u=(c=ct(i))==null?void 0:c.data)!=null&&u.total?(oe(),Ce("div",qge,[Q("h5",null,ce(s.$t("settlement_single_page.total_requests")),1),Q("p",null,ce((f=(h=ct(i))==null?void 0:h.data)==null?void 0:f.total),1)])):Pt("",!0),(A=(g=ct(i))==null?void 0:g.data)!=null&&A.admin_commission_value?(oe(),Ce("div",eAe,[Q("h5",null,ce(s.$t("settlement_single_page.total_app_tax")),1),Q("p",null,ce((p=(b=ct(i))==null?void 0:b.data)==null?void 0:p.admin_commission_value),1)])):Pt("",!0),(m=(y=ct(i))==null?void 0:y.data)!=null&&m.total_due_amount?(oe(),Ce("div",tAe,[Q("h5",null,ce(s.$t("settlement_single_page.dues")),1),Q("p",null,ce((R=(F=ct(i))==null?void 0:F.data)==null?void 0:R.total_due_amount),1)])):Pt("",!0)])]),(oe(!0),Ce(Er,null,ia((B=(C=ct(i))==null?void 0:C.data)==null?void 0:B.items,$e=>(oe(),Ce("div",{class:"orders",key:$e.id},[Q("div",nAe,[Q("div",rAe,[Q("h4",null,ce(s.$t("settlement_single_page.order_num"))+" : "+ce($e==null?void 0:$e.order_num),1),Q("div",iAe,[d[1]||(d[1]=Q("i",{class:"pi pi-clock"},null,-1)),Q("p",null,ce($e==null?void 0:$e.created_at),1)])]),d[2]||(d[2]=Q("hr",null,null,-1)),Q("div",aAe,[$e!=null&&$e.final_total?(oe(),Ce("div",oAe,[Q("h5",null,ce(s.$t("settlement_single_page.order_value")),1),Q("p",null,ce($e==null?void 0:$e.total)+" "+ce(s.$t("currency")),1)])):Pt("",!0),$e!=null&&$e.admin_commission_value?(oe(),Ce("div",lAe,[Q("h5",null,ce(s.$t("settlement_single_page.comission")),1),Q("p",null,ce($e==null?void 0:$e.admin_commission_value)+" "+ce(s.$t("currency")),1)])):Pt("",!0),$e!=null&&$e.vat_amount?(oe(),Ce("div",sAe,[Q("h5",null,ce(s.$t("settlement_single_page.total_value_added")),1),Q("p",null,ce($e==null?void 0:$e.vat_amount)+" "+ce(s.$t("currency")),1)])):Pt("",!0),$e!=null&&$e.provider_due_amount?(oe(),Ce("div",dAe,[Q("h5",null,ce(s.$t("settlement_single_page.dues")),1),Q("p",null,ce($e==null?void 0:$e.provider_due_amount)+" "+ce(s.$t("currency")),1)])):Pt("",!0)])])]))),128)),(S=(N=ct(i))==null?void 0:N.data)!=null&&S.image&&((J=(X=ct(i))==null?void 0:X.data)==null?void 0:J.status.slug)!="rejected"&&((v=(E=ct(i))==null?void 0:E.data)==null?void 0:v.status.slug)!="pending"?(oe(),Ce("div",cAe,[Q("h4",null,ce(s.$t("settlement_single_page.receipt_image")),1),d[3]||(d[3]=Q("hr",null,null,-1)),Q("div",uAe,[Q("div",fAe,[Q("img",{src:(H=(j=ct(i))==null?void 0:j.data)==null?void 0:H.image,alt:"image",loading:"lazy"},null,8,hAe)])])])):Pt("",!0),((Fe=(K=ct(i))==null?void 0:K.data)==null?void 0:Fe.status.slug)==="rejected"?(oe(),Ce("div",gAe,[Q("h4",null,ce(s.$t("settlement_single_page.refused")),1),d[4]||(d[4]=Q("hr",null,null,-1)),Q("div",AAe,[Q("p",null,ce((q=(z=ct(i))==null?void 0:z.data)==null?void 0:q.cancel_reason),1)])])):Pt("",!0),(Ke=(Ae=ct(i))==null?void 0:Ae.data)!=null&&Ke.status?(oe(),Ce("div",pAe,ce((xe=(We=(pe=ct(i))==null?void 0:pe.data)==null?void 0:We.status)==null?void 0:xe.message),1)):Pt("",!0)])])}}},LI=Pi(mAe,[["__scopeId","data-v-860e383f"]]),HI="/assets/message-CjYiSJAF.mp3",bAe={key:2,class:"content"},yAe=["onClick"],FAe={class:"image"},QAe=["src"],UAe={class:"contact_text"},RAe={class:"time"},BAe={key:0},ZAe={key:1},IAe={key:2},CAe={__name:"ChatContacts",props:{showContacts:{type:Boolean,default:!1}},emits:["toggleShowContacts","handleEnterRoom"],setup(t,{emit:e}){const n=dc(),{getMethod:r,getResult:i,loading:a}=va(),o=e,l=t;return Ka(()=>{r("general/get-rooms",!0)}),(s,d)=>{var c,u;return oe(),Ce("div",null,[Q("div",{class:"page contacts",style:ja({insetInlineEnd:l.showContacts?"0":"-500px"})},[Q("h4",null,ce(s.$t("chat.title")),1),ct(n).query.id?(oe(),Ce("button",{key:0,class:"main-btn close-contacts",onClick:d[0]||(d[0]=h=>o("toggleShowContacts"))},d[1]||(d[1]=[Q("i",{class:"pi pi-angle-left"},null,-1)]))):Pt("",!0),d[4]||(d[4]=Q("hr",null,null,-1)),ct(a)?(oe(),Vn(UA,{key:1})):(oe(),Ce("div",bAe,[(oe(!0),Ce(Er,null,ia((u=(c=ct(i))==null?void 0:c.data)==null?void 0:u.rooms,h=>(oe(),Ce("div",{class:Hr(["chat_tab",h.id==ct(n).query.id?"active":""]),key:h.id,onClick:f=>o("handleEnterRoom",h.id)},[Q("div",FAe,[Q("img",{src:h.members[0].image,loading:"lazy",alt:"image"},null,8,QAe)]),Q("div",UAe,[Q("h3",null,ce(h.members[0].name),1),Q("div",RAe,ce(h.last_message_created_at),1),h.last_message_type=="image"?(oe(),Ce("p",BAe,[d[2]||(d[2]=Q("i",{class:"pi pi-camera"},null,-1)),Ni(" "+ce(s.$t("chat.image")),1)])):h.last_message_type=="sound"?(oe(),Ce("p",ZAe,[d[3]||(d[3]=Q("i",{class:"pi pi-microphone"},null,-1)),Ni(" "+ce(s.$t("chat.sound")),1)])):(oe(),Ce("p",IAe,ce(h.last_message_type=="invoice"?s.$t("chat.invoice_title"):h.last_message_body),1))])],10,yAe))),128))]))],4)])}}},vAe={class:"info"},VAe={class:"image"},EAe=["src"],SAe={class:"name"},WAe={__name:"ChatInfo",props:{chatId:{type:String,default:""}},emits:["handleShowInvoicePopup"],setup(t,{emit:e}){const n=po(),{getMethod:r,getResult:i}=va(),a=dc(),o=e;return Ka(()=>{r(`general/room-members/${a.query.id}`,!0)}),(l,s)=>{var d,c,u,h;return oe(),Ce("div",null,[Q("div",vAe,[Q("div",VAe,[Q("img",{src:(c=(d=ct(i))==null?void 0:d.data[0])==null?void 0:c.image,alt:"image",loading:"lazy"},null,8,EAe)]),Q("div",SAe,[Q("h4",null,ce((h=(u=ct(i))==null?void 0:u.data[0])==null?void 0:h.name),1),ct(n).orderInfo.type!="order"?(oe(),Ce("button",{key:0,class:"ask_invoice",onClick:s[0]||(s[0]=f=>o("handleShowInvoicePopup"))},ce(l.$t("chat.invoice_request")),1)):Pt("",!0)])])])}}},NAe={class:"popup invoice"},GAe={class:"content"},JAe={class:"input"},TAe={for:"invoice"},XAe=["placeholder"],kAe={__name:"InvoicePopup",emits:["handleShowInvoicePopup"],setup(t,{emit:e}){const n=dc(),r=po(),{postMethod:i,postResult:a,toast:o,handleToast:l}=va(),s=hn({order_total:""}),d=e,c=()=>{s.value.order_total.length===0?l("error",r.lang==="ar"?"يجب تحديد قيمة الطلب":r.lang==="en"?"You must specify the order value":"آپ کو آرڈر کی قیمت مشخص کرنی ہوگی"):(i(`provider/un-pricing-orders/${n.query.order_num}/create-invoice`,s.value,!0,`/chats?id=${n.query.id}&order_num=${n.query.order_num}`,"toast"),console.log(n.query.id),console.log(n.query.order_num))};return FA(()=>{var u;((u=a==null?void 0:a.value)==null?void 0:u.key)==="success"&&d("handleShowInvoicePopup")}),(u,h)=>(oe(),Ce("div",null,[Q("div",NAe,[Q("div",GAe,[Q("button",{class:"close_btn",onClick:h[0]||(h[0]=f=>d("handleShowInvoicePopup"))},h[2]||(h[2]=[Q("i",{class:"pi pi-times"},null,-1)])),Q("h4",null,ce(u.$t("invoice_popup.title")),1),Q("div",JAe,[Q("label",TAe,ce(u.$t("invoice_popup.label")),1),br(Q("input",{id:"invoice",type:"text",placeholder:u.$t("invoice_popup.placeholder"),"onUpdate:modelValue":h[1]||(h[1]=f=>s.value.order_total=f)},null,8,XAe),[[gi,s.value.order_total]])]),Q("button",{class:"main-btn",onClick:c},ce(u.$t("invoice_popup.button")),1)])]),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512)]))}},wAe=Pi(kAe,[["__scopeId","data-v-45dc197d"]]),YAe={class:"chats_page"},DAe={key:0,class:"page contact_chat"},MAe={class:"top"},LAe={class:"chat-buttons"},HAe={key:1,class:"danger_color"},xAe={key:1,class:"content",id:"chatContent"},OAe={key:0,class:"message_text"},KAe=["onClick"],PAe=["src"],zAe={key:2,class:"invoice"},jAe={key:3,class:"audio"},_Ae=["src","alt"],$Ae={class:"inputs"},qAe=["placeholder"],epe={key:1,class:"page empty-chat"},tpe={__name:"Chats",setup(t){const e=hn(),{getMethod:n,postMethod:r,getResult:i,postResult:a,toast:o,loading:l,handleToast:s}=va(),d=hn(!0),c=hn([]),u=hn(""),h=hn(null),f=hn(null),g=hn(!1),A=hn(null),b=hn([]),p=Ag(),y=po(),m=dc(),F=m.query.id,R=()=>{var pe,We,xe,$e,Rt,Be;Promise.all([navigator.permissions.query({name:"microphone"}),navigator.permissions.query({name:"camera"})]).then(([qe,at])=>{qe.state==="granted"&&at.state==="granted"?y.toggleShowConversation():navigator.mediaDevices.getUserMedia({audio:!0,video:!0}).then(Bt=>{console.log("Permissions granted, stream:",Bt)}).catch(Bt=>{s("error",y.lang==="en"?"Microphone or camera permission denied ❌":y.lang==="ar"?"يرجي تفعيل الميكروفون والكاميرا":"مائیکروفون یا کیمرہ کی اجازت نہیں ہے ❌"),navigator.mediaDevices.getUserMedia({audio:!0,video:!0}).then(jt=>{console.log(jt)}).catch(jt=>{console.error("Microphone permission denied",jt)})})}).catch(qe=>console.error("Error checking permissions:",qe)),y.storeRecieverData((We=(pe=i==null?void 0:i.value)==null?void 0:pe.data)==null?void 0:We.members[0].id,($e=(xe=i==null?void 0:i.value)==null?void 0:xe.data)==null?void 0:$e.members[0].name,(Be=(Rt=i==null?void 0:i.value)==null?void 0:Rt.data)==null?void 0:Be.members[0].image)},C=()=>{d.value=!d.value},B=pe=>{C(),p.push(`/chats?id=${pe}`),n(`general/get-room-messages/${pe}`,!0)},N=hn(!1),S=()=>{N.value=!N.value},X=()=>{S()},J=hn(),E=hn(!1),v=()=>{E.value=!E.value},j=pe=>{v(),J.value=pe};f.value=hp("https://thunder-way.com:4797",{reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,transports:["websocket"],query:{sender_id:y==null?void 0:y.profile.id,sender_type:"Provider",sender_name:y==null?void 0:y.profile.name,avatar:y==null?void 0:y.profile.avatar,lang:(y==null?void 0:y.lang)||"ar"}});const H=()=>{var pe,We,xe,$e;if(u.value.trim()||((We=(pe=h.value)==null?void 0:pe.files)==null?void 0:We.length)>0){const Rt={id:Date.now(),senderId:y.profile.id,file:null,fileType:null,time:new Date().toLocaleTimeString()};if((($e=(xe=h.value)==null?void 0:xe.files)==null?void 0:$e.length)>0){const Be=h.value.files[0],qe=new FileReader;qe.onload=Bt=>{Rt.file=Bt.target.result,Rt.fileType=Be.type,f.value.emit("send_message",Rt),c.value.push(Rt),h.value.value=""},qe.readAsDataURL(Be);const at=new FormData;at.append("file",Be),r(`general/upload-room-file/${F}`,at,!0,`/chats?id=${F}`,"toast"),n(`general/get-room-messages/${F}`,!0)}else Fe("text",u.value)}};yi(()=>{var pe;return(pe=a==null?void 0:a.value)==null?void 0:pe.data},pe=>{if(pe){const We=pe==null?void 0:pe.file_name,xe=K(We);Fe(xe,We),e.value&&e.value.play(),n(`general/get-room-messages/${m.query.id}`,!0)}});function K(pe){var $e;const We=($e=pe==null?void 0:pe.split(".").pop())==null?void 0:$e.toLowerCase();return{jpg:"image",jpeg:"image",png:"image",gif:"image",mp3:"sound",wav:"sound",m4a:"sound",ogg:"sound",webm:"sound",mp4:"video",avi:"video",mov:"video",pdf:"document",doc:"document",docx:"document",xls:"document",xlsx:"document",invoice:"invoice"}[We]||"file"}function Fe(pe,We){var xe,$e,Rt;f.value.emit("sendMessage",{receiver_id:(Rt=($e=(xe=i==null?void 0:i.value)==null?void 0:xe.data)==null?void 0:$e.members[0])==null?void 0:Rt.id,receiver_type:"User",room_id:m.query.id,type:pe,body:We}),u.value=""}const z=()=>{H()},q=async()=>{try{const pe=await navigator.mediaDevices.getUserMedia({audio:!0});A.value=new MediaRecorder(pe),b.value=[],A.value.ondataavailable=We=>{We.data.size>0&&b.value.push(We.data)},A.value.onstop=()=>{const We={id:Date.now(),senderId:y.profile.id,file:null,fileType:"audio",time:new Date().toLocaleTimeString()},xe=new Blob(b.value,{type:"audio/mp3"}),$e=new FormData;$e.append("file",xe,`audio-${Date.now()}.mp3`);const Rt=new FileReader;Rt.onload=Be=>{We.file=Be.target.result,f.value.emit("send_message",We),c.value.push(We),r(`general/upload-room-file/${F}`,$e,!0,`/chats?id=${F}`,"toast"),b.value=[]},Rt.readAsDataURL(xe)},n(`general/get-room-messages/${F}`,!0),A.value.start(),g.value=!0}catch(pe){console.error("Failed to start recording:",pe),g.value=!1}},Ae=()=>{A.value.stop(),g.value=!1,b.value=[]},Ke=()=>{g.value?Ae():q()};return yi(()=>{var pe;return(pe=i==null?void 0:i.value)==null?void 0:pe.data},pe=>{var We;pe&&(c.value=(We=pe==null?void 0:pe.messages)==null?void 0:We.data,y.handleOrderInfo(pe.room.order_type,pe.room.order_id))}),yi(()=>F,(pe,We)=>{We&&n(`general/get-room-messages/${F}`,!0)}),yi(()=>y.lang,pe=>{pe&&n(`general/get-room-messages/${F}`,!0)}),f.value.on("sendMessageRes",function(pe){c.value.push(pe)}),Ka(()=>{m.query.id&&n(`general/get-room-messages/${m.query.id}`,!0),f.value.emit("enterChat",{room_id:m.query.id}),navigator.permissions.query({name:"microphone"}).then(pe=>{pe.state==="granted"?console.log("Microphone permission is granted ✅"):console.log("Microphone permission is denied ❌")})}),Ip(()=>{var pe;(pe=f.value)==null||pe.disconnect()}),(pe,We)=>{var xe,$e,Rt;return oe(),Ce("div",YAe,[Fn(CAe,{showContacts:d.value,onToggleShowContacts:C,onHandleEnterRoom:B},null,8,["showContacts"]),ct(m).query.id!=null?(oe(),Ce("div",DAe,[Q("div",MAe,[Fn(WAe,{chatId:ct(F),onHandleShowInvoicePopup:S},null,8,["chatId"]),Q("div",LAe,[Q("button",{class:"main-btn show-contacts-btn",style:ja({opacity:d.value?0:1}),onClick:C},We[1]||(We[1]=[Q("i",{class:"pi pi-users"},null,-1)]),4),(Rt=($e=(xe=ct(i))==null?void 0:xe.data)==null?void 0:$e.members[0])!=null&&Rt.is_busy?(oe(),Ce("p",HAe,ce(ct(y).lang=="ar"?"في مكالمة جارية":ct(y).lang=="en"?"In a call":"مكالمة جاری ہے"),1)):(oe(),Ce("button",{key:0,onClick:R,class:"main-btn"},We[2]||(We[2]=[Q("i",{class:"pi pi-phone"},null,-1)])))])]),We[5]||(We[5]=Q("hr",null,null,-1)),ct(l)?(oe(),Vn(UA,{key:0})):(oe(),Ce("div",xAe,[(oe(!0),Ce(Er,null,ia(c.value,Be=>(oe(),Ce("div",{key:Be.id,class:Hr(["message",Be.type=="invoice"?"invoice-msg":"",{recieved_msg:Be.sender_id!=ct(y).profile.id,sent_msg:Be.sender_id==ct(y).profile.id}]),style:ja(Be.type=="invoice"?"invoice-msg":"")},[Be.type=="text"?(oe(),Ce("pre",OAe,ce(Be.body),1)):Be.type=="image"?(oe(),Ce("div",{key:1,class:"image",onClick:qe=>j(Be.body)},[Q("img",{src:Be.body,alt:"image",loading:"lazy"},null,8,PAe)],8,KAe)):Be.type=="invoice"?(oe(),Ce("div",zAe,[Q("h6",null,ce(pe.$t("chat.invoice_title")),1),Q("ul",null,[Q("li",null,[Q("p",null,ce(pe.$t("chat.order_value")),1),Q("p",null,ce(JSON.parse(Be.body).total)+" "+ce(pe.$t("currency")),1)]),Q("li",null,[Q("p",null,ce(pe.$t("chat.delivery_fee")),1),Q("p",null,ce(JSON.parse(Be.body).delivery_price)+" "+ce(pe.$t("currency")),1)]),Q("li",null,[Q("p",null,ce(pe.$t("chat.vat_amount")),1),Q("p",null,ce(JSON.parse(Be.body).vat_amount)+" "+ce(pe.$t("currency")),1)]),Q("li",null,[Q("p",null,ce(pe.$t("chat.total_amount")),1),Q("p",null,ce(JSON.parse(Be.body).final_total)+" "+ce(pe.$t("currency")),1)])])])):Be.type=="sound"?(oe(),Ce("div",jAe,[Q("audio",{src:Be.body,controls:"",preload:"none",alt:"Audio message from "+Be.senderName},null,8,_Ae)])):Pt("",!0),Q("div",{class:"message-time",style:ja(ct(y).lang==="en"?"direction:ltr":"direction:rtl")},ce(Be.created_at),5)],6))),128))])),Q("form",{onSubmit:ud(H,["prevent"])},[Q("div",$Ae,[Q("input",{type:"file",ref_key:"fileInput",ref:h,hidden:"",id:"fileInput",onChange:z,accept:"image/*"},null,544),We[3]||(We[3]=Q("label",{for:"fileInput",class:"pi pi-camera"},null,-1)),br(Q("input",{type:"text","onUpdate:modelValue":We[0]||(We[0]=Be=>u.value=Be),placeholder:pe.$t("chat.chat_text"),onKeydown:dA(H,["enter"])},null,40,qAe),[[gi,u.value]]),We[4]||(We[4]=Q("button",{type:"submit",class:"sender_btn"},[Q("i",{class:"pi pi-send"})],-1))]),Q("button",{class:Hr(["microphone",{recording:g.value}]),onClick:Ke},[Q("i",{class:Hr(["pi",g.value?"pi-stop":"pi-microphone"])},null,2)],2)],32)])):(oe(),Ce("div",epe,[We[6]||(We[6]=Q("i",{class:"pi pi-sync"},null,-1)),Q("h3",null,ce(pe.$t("chat.empty_text")),1)])),N.value?(oe(),Vn(wAe,{key:2,onHandleShowInvoicePopup:S,onHandleRequestInvoice:X})):Pt("",!0),E.value?(oe(),Vn(uW,{key:3,onHandleShowImagePopup:v,image:J.value},null,8,["image"])):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:o,position:"top-right"},null,512),Q("audio",{ref_key:"messageAudio",ref:e,preload:"auto",controls:"",class:"hidden"},We[7]||(We[7]=[Q("source",{src:HI,type:"audio/ogg"},null,-1),Q("source",{src:HI,type:"audio/mpeg"},null,-1)]),512)])}}},xI=Pi(tpe,[["__scopeId","data-v-e03a4442"]]);function npe(){return!!FE("token")}const rpe={class:"page"},ipe={class:"content"},ape={for:"ar_name"},ope={class:"input"},lpe=["placeholder"],spe={for:"en_name"},dpe={class:"input"},cpe=["placeholder"],upe={for:"ur_name"},fpe={class:"input"},hpe=["placeholder"],gpe={for:"ar_description"},Ape={class:"input"},ppe=["placeholder"],mpe={for:"en_description"},bpe={class:"input"},ype=["placeholder"],Fpe={for:"ur_description"},Qpe={class:"input"},Upe=["placeholder"],Rpe={for:"price"},Bpe={class:"input"},Zpe=["placeholder"],Ipe={for:"image"},Cpe={class:"input"},vpe={key:0,for:"image"},Vpe={key:1,class:"images"},Epe={class:"image"},Spe=["src"],Wpe={class:"main-btn"},Npe={__name:"Add_Addition",setup(t){const e=po();dc();const{postMethod:n,toast:r,loading:i,showSuccessPopup:a,handleSuccessPopup:o,handleToast:l}=va(),s=hn({ar_name:"",en_name:"",ur_name:"",ar_description:"",en_description:"",ur_description:"",price:"",image:[]}),d=hn(),c=h=>{const f=h.target.files[0],g=URL.createObjectURL(f);d.value=g,s.value.image=f},u=()=>{if(s.value.ar_name==="")l("error",e.lang==="ar"?"يجب إضافة إسم الإضافة باللغة العربية":e.lang==="en"?"You must add the Arabic Name":e.lang==="ur"?"آپ کو اردو میں ایڈیشن کا نام شامل کرنا ہوگا":""),s.value.ar_name!==""&&s.value.ar_name.length<2&&l("error",e.lang==="ar"?"إسم الإضافة باللغة العربية يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The Arabic Name must be at least 2 characters long":e.lang==="ur"?"اردو میں ایڈیشن کا نام کم از کم 2 حروف پر مشتمل ہونا چاہیے":"");else if(s.value.en_name==="")l("error",e.lang==="ar"?"يجب إضافة إسم الإضافة باللغة الإنجليزية":e.lang==="en"?"You must add the English Name":e.lang==="ur"?"آپ کو انگریزی میں ایڈیشن کا نام شامل کرنا ہوگا":""),s.value.en_name!==""&&s.value.en_name.length<2&&l("error",e.lang==="ar"?"إسم الإضافة باللغة الإنجليزية يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The English Name must be at least 2 characters long":e.lang==="ur"?"انگریزی میں ایڈیشن کا نام کم از کم 2 حروف پر مشتمل ہونا چاہیے":"");else if(s.value.ur_name==="")l("error",e.lang==="ar"?"يجب إضافة إسم الإضافة باللغة الأوردو":e.lang==="en"?"You must add the Urdu Name":e.lang==="ur"?"آپ کو اردو میں ایڈیشن کا نام شامل کرنا ہوگا":""),s.value.ur_name!==""&&s.value.ur_name.length<2&&l("error",e.lang==="ar"?"إسم الإضافة باللغة الأوردو يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The Urdu Name must be at least 2 characters long":e.lang==="ur"?"اردو میں ایڈیشن کا نام کم از کم 2 حروف پر مشتمل ہونا چاہیے":"");else if(s.value.ar_description==="")l("error",e.lang==="ar"?"يجب إضافة وصف الإضافة باللغة العربية":e.lang==="en"?"You must add the Arabic Description":e.lang==="ur"?"آپ کو اردو میں ایڈیشن کی تفصیل شامل کرنا ہوگی":""),s.value.ar_description!==""&&s.value.ar_description.length<2&&l("error",e.lang==="ar"?"وصف الإضافة باللغة العربية يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The Arabic Description must be at least 2 characters long":e.lang==="ur"?"اردو میں ایڈیشن کی تفصیل کم از کم 2 حروف پر مشتمل ہونی چاہیے":"");else if(s.value.en_description==="")l("error",e.lang==="ar"?"يجب إضافة وصف الإضافة باللغة الإنجليزية":e.lang==="en"?"You must add the English Description":e.lang==="ur"?"آپ کو انگریزی میں ایڈیشن کی تفصیل شامل کرنا ہوگی":""),s.value.en_description!==""&&s.value.en_description.length<2&&l("error",e.lang==="ar"?"وصف الإضافة باللغة الإنجليزية يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The English Description must be at least 2 characters long":e.lang==="ur"?"انگریزی میں ایڈیشن کی تفصیل کم از کم 2 حروف پر مشتمل ہونی چاہیے":"");else if(s.value.ur_description==="")l("error",e.lang==="ar"?"يجب إضافة وصف الإضافة باللغة الأوردو":e.lang==="en"?"You must add the Urdu Description":e.lang==="ur"?"آپ کو اردو میں ایڈیشن کی تفصیل شامل کرنا ہوگی":""),s.value.ur_description!==""&&s.value.ur_description.length<2&&l("error",e.lang==="ar"?"وصف الإضافة باللغة الأوردو يجب أن يكون مكون من حرفين على الأقل":e.lang==="en"?"The Urdu Description must be at least 2 characters long":e.lang==="ur"?"اردو میں ایڈیشن کی تفصیل کم از کم 2 حروف پر مشتمل ہونی چاہیے":"");else if(s.value.price==="")l("error",e.lang==="ar"?"يجب إضافة السعر":e.lang==="en"?"You must add the price":e.lang==="ur"?"آپ کو قیمت شامل کرنی ہوگی":"");else if(s.value.image===[])l("error",e.lang==="ar"?"يجب إضافة صورة الإضافة":e.lang==="en"?"You must add the image":e.lang==="ur"?"آپ کو تصویر شامل کرنی ہوگی":"");else{const h=new FormData;h.append("name[ar]",s.value.ar_name),h.append("name[en]",s.value.en_name),h.append("name[ur]",s.value.ur_name),h.append("description[ar]",s.value.ar_description),h.append("description[en]",s.value.en_description),h.append("description[ur]",s.value.ur_description),h.append("price",s.value.price),h.append("image",s.value.image),n("provider/products-addons/store",h,!0,"/product_additions","success")}};return(h,f)=>(oe(),Ce("div",null,[Q("div",rpe,[Q("h4",null,ce(h.$t("addition.add_title")),1),f[15]||(f[15]=Q("hr",null,null,-1)),Q("div",ipe,[Q("form",{action:"",onSubmit:ud(u,["prevent"])},[Q("label",ape,ce(h.$t("addition.ar_name")),1),Q("div",ope,[br(Q("input",{type:"text",id:"ar_name",placeholder:h.$t("addition.ar_name"),"onUpdate:modelValue":f[0]||(f[0]=g=>s.value.ar_name=g),onBlur:f[1]||(f[1]=g=>s.value.ar_name=s.value.ar_name.trim())},null,40,lpe),[[gi,s.value.ar_name]])]),Q("label",spe,ce(h.$t("addition.en_name")),1),Q("div",dpe,[br(Q("input",{type:"text",id:"en_name",placeholder:h.$t("addition.en_name"),"onUpdate:modelValue":f[2]||(f[2]=g=>s.value.en_name=g),onBlur:f[3]||(f[3]=g=>s.value.en_name=s.value.en_name.trim())},null,40,cpe),[[gi,s.value.en_name]])]),Q("label",upe,ce(h.$t("addition.ur_name")),1),Q("div",fpe,[br(Q("input",{type:"text",id:"ur_name",placeholder:h.$t("addition.ur_name"),"onUpdate:modelValue":f[4]||(f[4]=g=>s.value.ur_name=g),onBlur:f[5]||(f[5]=g=>s.value.ur_name=s.value.ur_name.trim())},null,40,hpe),[[gi,s.value.ur_name]])]),Q("label",gpe,ce(h.$t("addition.ar_description")),1),Q("div",Ape,[br(Q("input",{type:"text",id:"ar_description",placeholder:h.$t("addition.ar_description"),"onUpdate:modelValue":f[6]||(f[6]=g=>s.value.ar_description=g),onBlur:f[7]||(f[7]=g=>s.value.ar_description=s.value.ar_description.trim())},null,40,ppe),[[gi,s.value.ar_description]])]),Q("label",mpe,ce(h.$t("addition.en_description")),1),Q("div",bpe,[br(Q("input",{type:"text",id:"en_description",placeholder:h.$t("addition.en_description"),"onUpdate:modelValue":f[8]||(f[8]=g=>s.value.en_description=g),onBlur:f[9]||(f[9]=g=>s.value.en_description=s.value.en_description.trim())},null,40,ype),[[gi,s.value.en_description]])]),Q("label",Fpe,ce(h.$t("addition.ur_description")),1),Q("div",Qpe,[br(Q("input",{type:"text",id:"ur_description",placeholder:h.$t("addition.ur_description"),"onUpdate:modelValue":f[10]||(f[10]=g=>s.value.ur_description=g),onBlur:f[11]||(f[11]=g=>s.value.ur_description=s.value.ur_description.trim())},null,40,Upe),[[gi,s.value.ur_description]])]),Q("label",Rpe,ce(h.$t("addition.price")),1),Q("div",Bpe,[br(Q("input",{type:"number",id:"price",placeholder:h.$t("addition.price"),"onUpdate:modelValue":f[12]||(f[12]=g=>s.value.price=g),onBlur:f[13]||(f[13]=g=>s.value.price=parseFloat(s.value.price).toFixed(2))},null,40,Zpe),[[gi,s.value.price]])]),Q("label",Ipe,ce(h.$t("addition.image")),1),Q("div",Cpe,[Q("input",{type:"file",id:"image",hidden:"",onChange:c,accept:"image/*"},null,32),f[14]||(f[14]=Q("label",{for:"image",class:"pi pi-camera"},null,-1)),d.value?(oe(),Ce("div",Vpe,[Q("div",Epe,[Q("img",{src:d.value,alt:"image",loading:"lazy"},null,8,Spe)])])):(oe(),Ce("label",vpe,ce(h.$t("addition.image_placeholder")),1))]),Q("button",Wpe,ce(h.$t("addition.add_btn")),1)],32)])]),ct(a)?(oe(),Vn(OQ,{key:0,onHandleSuccessPopup:ct(o),successedMsg:h.$t("addition.successedMsg")},null,8,["onHandleSuccessPopup","successedMsg"])):Pt("",!0),Fn(ct(ol),{ref_key:"toast",ref:r,position:"top-right"},null,512),ct(i)?(oe(),Vn(Ru,{key:1})):Pt("",!0)]))}},OI=Pi(Npe,[["__scopeId","data-v-9cb6511e"]]),Gpe=[{path:"/select-language",name:"SelectLanguage",component:GK},{path:"/login",name:"Login",component:vK,children:[{path:"phone-entry",name:"PhoneEntry",component:_K},{path:"phone-activation",name:"PhoneActivation",component:h7}]},{path:"/signup",name:"Signup",component:Dj},{path:"/terms_and_conditions",name:"Conditions",component:Pj},{path:"/",name:XZ,component:XZ,beforeEnter:(t,e,n)=>{npe()?n():n({name:"SelectLanguage"})},children:[{path:"notifications",name:VI,component:VI},{path:"profile",name:EI,component:EI},{path:"work_periods",name:SI,component:SI},{path:"orders",name:HZ,component:HZ},{path:"order_details/:id",name:xZ,component:xZ},{path:"pending_orders",name:hI,component:hI},{path:"pending_order_details/:id",name:gI,component:gI},{path:"products",name:AI,component:AI},{path:"add_products",name:pI,component:pI},{path:"add_variants/:id",name:yI,component:yI},{path:"edit_product/:id",name:mI,component:mI},{path:"edit_variants/:id",name:bI,component:bI},{path:"product_additions",name:FI,component:FI},{path:"add_addition",name:OI,component:OI},{path:"edit_addition/:id",name:QI,component:QI},{path:"financial_transactions/",name:wI,component:wI,children:[{path:"due-transactions",name:YI,component:YI},{path:"current-settlement",name:DI,component:DI},{path:"finished-settlement",name:MI,component:MI}]},{path:"single-settlement/:id",name:LI,component:LI},{path:"chats",name:xI,component:xI},{path:"settings",name:UI,component:UI,children:[{path:"update-data",name:WI,component:WI},{path:"update-phone",name:NI,component:NI},{path:"verification-code",name:JI,component:JI},{path:"new-phone",name:TI,component:TI},{path:"new-email",name:XI,component:XI},{path:"activation-code",name:kI,component:kI},{path:"update-email",name:GI,component:GI}]},{path:"ratings",name:BI,component:BI},{path:"contact",name:ZI,component:ZI},{path:"faq",name:II,component:II},{path:"terms",name:CI,component:CI},{path:"about",name:vI,component:vI}]}],Jpe=m5({history:PJ(),routes:Gpe}),KI=t=>{let e=!1,n;return()=>(e||(e=!0,n=t()),n)};class v2{static isServer(){return typeof document>"u"}}function Tpe(t){const e=document.createElement("SCRIPT");if(typeof t!="object")throw new Error("options should be an object");Array.prototype.isPrototypeOf(t.libraries)&&(t.libraries=t.libraries.join(",")),t.v||(t.v=3.47),t.callback="vueGoogleMapsInit";let r="https://maps.googleapis.com/maps/api/js?"+Object.keys(t).map(i=>encodeURIComponent(i)+"="+encodeURIComponent(t[i])).join("&");return e.setAttribute("src",r),e.setAttribute("async",""),e.setAttribute("defer",""),e}let PI=!1;function Xpe(t){if(!v2.isServer()){if(PI)throw new Error("You already started the loading of google maps");{PI=!0;const e=Tpe(t);document.head.appendChild(e)}}}const hW=(t,e,n)=>{for(let r of n){const i=`on${r.charAt(0).toUpperCase()}${r.slice(1)}`.replace(/[-_]+(.)?/g,(a,o)=>o?o.toUpperCase():"");t.$props[i]||t.$attrs[i]?e.addListener(r,a=>{t.$emit(r,a)}):(t.$gmapOptions.autobindAllEvents||t.$attrs[r])&&e.addListener(r,a=>{t.$emit(r,a)})}};function gW(t,e,n,r=!1){let i=!1;function a(){i||(i=!0,t.$nextTick(()=>{i=!1,n()}))}for(let o of e)t.$watch(o,a,{immediate:r})}class zI{static capitalizeFirstLetter(e){return e.charAt(0).toUpperCase()+e.slice(1)}}function oy(t,e){return Object.keys(e).reduce((n,r)=>(t[r]!==void 0&&(n[r]=t[r]),n),{})}function KQ(t,e,n){for(let r in n){let{twoWay:i,type:a,trackProperties:o,noBind:l}=n[r];if(l)continue;const s="set"+zI.capitalizeFirstLetter(r),d="get"+zI.capitalizeFirstLetter(r),c=r.toLowerCase()+"_changed",u=t[r];if(typeof e[s]>"u")throw new Error(`${s} is not a method of (the Maps object corresponding to) ${t.$options._componentTag}`);a!==Object||!o?t.$watch(r,()=>{const h=t[r];e[s](h)},{immediate:typeof u<"u",deep:a===Object}):gW(t,o.map(h=>`${r}.${h}`),()=>{e[s](t[r])},t[r]!==void 0),i&&(t.$gmapOptions.autobindAllEvents||t.$attrs[c])&&e.addListener(c,()=>{t.$emit(c,e[d]())})}}const kpe={inject:{$mapPromise:{default:"abcdef"}},provide(){return this.$mapPromise.then(t=>{this.$map=t}),{}}};function Qg(t){const{mappedProps:e,name:n,ctr:r,ctrArgs:i,events:a,beforeCreate:o,afterCreate:l,props:s,...d}=t,c=`$${n}Promise`,u=`$${n}Object`;return wpe(!(d.props instanceof Array),"`props` should be an object, not Array"),{...typeof GENERATE_DOC<"u"?{$vgmOptions:t}:{},mixins:[kpe],props:{...s,...PQ(e)},render(){return""},provide(){const h=this.$mapPromise.then(f=>{this.$map=f;const g={...this.options,map:f,...oy(this,e)};if(delete g.options,o){const A=o.bind(this)(g);if(A instanceof Promise)return A.then(()=>({options:g}))}return{options:g}}).then(({options:f})=>{const g=r();return this[u]=i?new(Function.prototype.bind.call(g,null,...i(f,oy(this,s||{})))):new g(f),KQ(this,this[u],e),hW(this,this[u],a),l&&l.bind(this)(this[u]),this[u]});return this[c]=h,{[c]:h}},unmounted(){this[u]&&this[u].setMap&&this[u].setMap(null)},...d}}function wpe(t,e){if(!t)throw new Error(e)}function PQ(t){return Object.entries(t).map(([e,n])=>{const r={};return"type"in n&&(r.type=n.type),"default"in n&&(r.default=n.default),"required"in n&&(r.required=n.required),[e,r]}).reduce((e,[n,r])=>(e[n]=r,e),{})}const Ype={draggable:{type:Boolean},editable:{type:Boolean},options:{twoWay:!1,type:Object},path:{type:Array,twoWay:!0}},Dpe=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],Mpe=Qg({mappedProps:Ype,props:{deepWatch:{type:Boolean,default:!1}},events:Dpe,name:"polyline",ctr:()=>google.maps.Polyline,afterCreate(){let t=()=>{};this.$watch("path",e=>{if(e){t(),this.$polylineObject.setPath(e);const n=this.$polylineObject.getPath(),r=[],i=()=>{this.$emit("path_changed",this.$polylineObject.getPath())};r.push([n,n.addListener("insert_at",i)]),r.push([n,n.addListener("remove_at",i)]),r.push([n,n.addListener("set_at",i)]),t=()=>{r.map(([a,o])=>google.maps.event.removeListener(o))}}},{deep:this.deepWatch,immediate:!0})}}),Lpe={draggable:{type:Boolean},editable:{type:Boolean},options:{type:Object},path:{type:Array,twoWay:!0,noBind:!0},paths:{type:Array,twoWay:!0,noBind:!0}},Hpe=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],xpe=Qg({props:{deepWatch:{type:Boolean,default:!1}},events:Hpe,mappedProps:Lpe,name:"polygon",ctr:()=>google.maps.Polygon,beforeCreate(t){t.path||delete t.path,t.paths||delete t.paths},afterCreate(t){let e=()=>{};this.$watch("paths",n=>{if(n){e(),t.setPaths(n);const r=()=>{this.$emit("paths_changed",t.getPaths())},i=[],a=t.getPaths();for(let o=0;o<a.getLength();o++){let l=a.getAt(o);i.push([l,l.addListener("insert_at",r)]),i.push([l,l.addListener("remove_at",r)]),i.push([l,l.addListener("set_at",r)])}i.push([a,a.addListener("insert_at",r)]),i.push([a,a.addListener("remove_at",r)]),i.push([a,a.addListener("set_at",r)]),e=()=>{i.map(([o,l])=>google.maps.event.removeListener(l))}}},{deep:this.deepWatch,immediate:!0}),this.$watch("path",n=>{if(n){e(),t.setPaths(n);const r=t.getPath(),i=[],a=()=>{this.$emit("path_changed",t.getPath())};i.push([r,r.addListener("insert_at",a)]),i.push([r,r.addListener("remove_at",a)]),i.push([r,r.addListener("set_at",a)]),e=()=>{i.map(([o,l])=>google.maps.event.removeListener(l))}}},{deep:this.deepWatch,immediate:!0})}}),Ope={center:{type:Object,twoWay:!0,required:!0},radius:{type:Number,twoWay:!0},draggable:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},options:{type:Object,twoWay:!1}},Kpe=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],Ppe=Qg({mappedProps:Ope,name:"circle",ctr:()=>google.maps.Circle,events:Kpe}),zpe={bounds:{type:Object,twoWay:!0},draggable:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},options:{type:Object,twoWay:!1}},jpe=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],_pe=Qg({mappedProps:zpe,name:"rectangle",ctr:()=>google.maps.Rectangle,events:jpe}),$pe={animation:{twoWay:!0,type:Number},attribution:{type:Object},clickable:{type:Boolean,twoWay:!0,default:!0},cursor:{type:String,twoWay:!0},draggable:{type:Boolean,twoWay:!0,default:!1},icon:{twoWay:!0},label:{},opacity:{type:Number,default:1},options:{type:Object},place:{type:Object},position:{type:Object,twoWay:!0},shape:{type:Object,twoWay:!0},title:{type:String,twoWay:!0},zIndex:{type:Number,twoWay:!0},visible:{twoWay:!0,default:!0}},a1=["click","rightclick","dblclick","drag","dragstart","dragend","mouseup","mousedown","mouseover","mouseout"],qpe=Qg({mappedProps:$pe,events:a1,name:"marker",ctr:()=>google.maps.Marker,inject:{$clusterPromise:{default:null}},emits:a1,unmounted(){this.$markerObject&&(this.$clusterObject?this.$clusterObject.removeMarker(this.$markerObject,!0):this.$markerObject.setMap(null))},beforeCreate(t){return this.$clusterPromise&&(t.map=null),this.$clusterPromise},afterCreate(t){a1.forEach(e=>{t.addListener(e,n=>{this.$emit(e,n)})}),this.$clusterPromise&&this.$clusterPromise.then(e=>{this.$clusterObject=e,e.addMarker(t)})}});function eme(t,e,n,r,i,a){return oe(),Ce("div",{onClick:e[0]||(e[0]=()=>{console.log("sdfsd")})},[Vi(t.$slots,"default")])}const tme=Pi(qpe,[["render",eme]]);var nme=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e=="object"&&typeof n=="object"){if(e.constructor!==n.constructor)return!1;var r,i,a;if(Array.isArray(e)){if(r=e.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!t(e[i],n[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if(a=Object.keys(e),r=a.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[i]))return!1;for(i=r;i--!==0;){var o=a[i];if(!t(e[o],n[o]))return!1}return!0}return e!==e&&n!==n};const jI=DE(nme),_I=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o1=1,Rm=8;class zQ{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[n,r]=new Uint8Array(e,0,2);if(n!==219)throw new Error("Data does not appear to be in a KDBush format.");const i=r>>4;if(i!==o1)throw new Error(`Got v${i} data when expected v${o1}.`);const a=_I[r&15];if(!a)throw new Error("Unrecognized array type.");const[o]=new Uint16Array(e,2,1),[l]=new Uint32Array(e,4,1);return new zQ(l,o,a,e)}constructor(e,n=64,r=Float64Array,i){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=r,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const a=_I.indexOf(this.ArrayType),o=e*2*this.ArrayType.BYTES_PER_ELEMENT,l=e*this.IndexArrayType.BYTES_PER_ELEMENT,s=(8-l%8)%8;if(a<0)throw new Error(`Unexpected typed array class: ${r}.`);i&&i instanceof ArrayBuffer?(this.data=i,this.ids=new this.IndexArrayType(this.data,Rm,e),this.coords=new this.ArrayType(this.data,Rm+l+s,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(Rm+o+l+s),this.ids=new this.IndexArrayType(this.data,Rm,e),this.coords=new this.ArrayType(this.data,Rm+l+s,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(o1<<4)+a]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=e)}add(e,n){const r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=e,this.coords[this._pos++]=n,r}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return V2(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,n,r,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:a,coords:o,nodeSize:l}=this,s=[0,a.length-1,0],d=[];for(;s.length;){const c=s.pop()||0,u=s.pop()||0,h=s.pop()||0;if(u-h<=l){for(let b=h;b<=u;b++){const p=o[2*b],y=o[2*b+1];p>=e&&p<=r&&y>=n&&y<=i&&d.push(a[b])}continue}const f=h+u>>1,g=o[2*f],A=o[2*f+1];g>=e&&g<=r&&A>=n&&A<=i&&d.push(a[f]),(c===0?e<=g:n<=A)&&(s.push(h),s.push(f-1),s.push(1-c)),(c===0?r>=g:i>=A)&&(s.push(f+1),s.push(u),s.push(1-c))}return d}within(e,n,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:i,coords:a,nodeSize:o}=this,l=[0,i.length-1,0],s=[],d=r*r;for(;l.length;){const c=l.pop()||0,u=l.pop()||0,h=l.pop()||0;if(u-h<=o){for(let b=h;b<=u;b++)$I(a[2*b],a[2*b+1],e,n)<=d&&s.push(i[b]);continue}const f=h+u>>1,g=a[2*f],A=a[2*f+1];$I(g,A,e,n)<=d&&s.push(i[f]),(c===0?e-r<=g:n-r<=A)&&(l.push(h),l.push(f-1),l.push(1-c)),(c===0?e+r>=g:n+r>=A)&&(l.push(f+1),l.push(u),l.push(1-c))}return s}}function V2(t,e,n,r,i,a){if(i-r<=n)return;const o=r+i>>1;AW(t,e,o,r,i,a),V2(t,e,n,r,o-1,1-a),V2(t,e,n,o+1,i,1-a)}function AW(t,e,n,r,i,a){for(;i>r;){if(i-r>600){const d=i-r+1,c=n-r+1,u=Math.log(d),h=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*h*(d-h)/d)*(c-d/2<0?-1:1),g=Math.max(r,Math.floor(n-c*h/d+f)),A=Math.min(i,Math.floor(n+(d-c)*h/d+f));AW(t,e,n,g,A,a)}const o=e[2*n+a];let l=r,s=i;for(Bm(t,e,r,n),e[2*i+a]>o&&Bm(t,e,r,i);l<s;){for(Bm(t,e,l,s),l++,s--;e[2*l+a]<o;)l++;for(;e[2*s+a]>o;)s--}e[2*r+a]===o?Bm(t,e,r,s):(s++,Bm(t,e,s,i)),s<=n&&(r=s+1),n<=s&&(i=s-1)}}function Bm(t,e,n,r){l1(t,n,r),l1(e,2*n,2*r),l1(e,2*n+1,2*r+1)}function l1(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function $I(t,e,n,r){const i=t-n,a=e-r;return i*i+a*a}const rme={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:t=>t},qI=Math.fround||(t=>e=>(t[0]=+e,t[0]))(new Float32Array(1)),eA=2,tg=3,s1=4,jh=5,pW=6;class ime{constructor(e){this.options=Object.assign(Object.create(rme),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:n,minZoom:r,maxZoom:i}=this.options;n&&console.time("total time");const a=`prepare ${e.length} points`;n&&console.time(a),this.points=e;const o=[];for(let s=0;s<e.length;s++){const d=e[s];if(!d.geometry)continue;const[c,u]=d.geometry.coordinates,h=qI(Ub(c)),f=qI(Rb(u));o.push(h,f,1/0,s,-1,1),this.options.reduce&&o.push(0)}let l=this.trees[i+1]=this._createTree(o);n&&console.timeEnd(a);for(let s=i;s>=r;s--){const d=+Date.now();l=this.trees[s]=this._createTree(this._cluster(l,s)),n&&console.log("z%d: %d clusters in %dms",s,l.numItems,+Date.now()-d)}return n&&console.timeEnd("total time"),this}getClusters(e,n){let r=((e[0]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,e[1]));let a=e[2]===180?180:((e[2]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,a=180;else if(r>a){const u=this.getClusters([r,i,180,o],n),h=this.getClusters([-180,i,a,o],n);return u.concat(h)}const l=this.trees[this._limitZoom(n)],s=l.range(Ub(r),Rb(o),Ub(a),Rb(i)),d=l.data,c=[];for(const u of s){const h=this.stride*u;c.push(d[h+jh]>1?eC(d,h,this.clusterProps):this.points[d[h+tg]])}return c}getChildren(e){const n=this._getOriginId(e),r=this._getOriginZoom(e),i="No cluster with the specified id.",a=this.trees[r];if(!a)throw new Error(i);const o=a.data;if(n*this.stride>=o.length)throw new Error(i);const l=this.options.radius/(this.options.extent*Math.pow(2,r-1)),s=o[n*this.stride],d=o[n*this.stride+1],c=a.within(s,d,l),u=[];for(const h of c){const f=h*this.stride;o[f+s1]===e&&u.push(o[f+jh]>1?eC(o,f,this.clusterProps):this.points[o[f+tg]])}if(u.length===0)throw new Error(i);return u}getLeaves(e,n,r){n=n||10,r=r||0;const i=[];return this._appendLeaves(i,e,n,r,0),i}getTile(e,n,r){const i=this.trees[this._limitZoom(e)],a=Math.pow(2,e),{extent:o,radius:l}=this.options,s=l/o,d=(r-s)/a,c=(r+1+s)/a,u={features:[]};return this._addTileFeatures(i.range((n-s)/a,d,(n+1+s)/a,c),i.data,n,r,a,u),n===0&&this._addTileFeatures(i.range(1-s/a,d,1,c),i.data,a,r,a,u),n===a-1&&this._addTileFeatures(i.range(0,d,s/a,c),i.data,-1,r,a,u),u.features.length?u:null}getClusterExpansionZoom(e){let n=this._getOriginZoom(e)-1;for(;n<=this.options.maxZoom;){const r=this.getChildren(e);if(n++,r.length!==1)break;e=r[0].properties.cluster_id}return n}_appendLeaves(e,n,r,i,a){const o=this.getChildren(n);for(const l of o){const s=l.properties;if(s&&s.cluster?a+s.point_count<=i?a+=s.point_count:a=this._appendLeaves(e,s.cluster_id,r,i,a):a<i?a++:e.push(l),e.length===r)break}return a}_createTree(e){const n=new zQ(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let r=0;r<e.length;r+=this.stride)n.add(e[r],e[r+1]);return n.finish(),n.data=e,n}_addTileFeatures(e,n,r,i,a,o){for(const l of e){const s=l*this.stride,d=n[s+jh]>1;let c,u,h;if(d)c=mW(n,s,this.clusterProps),u=n[s],h=n[s+1];else{const A=this.points[n[s+tg]];c=A.properties;const[b,p]=A.geometry.coordinates;u=Ub(b),h=Rb(p)}const f={type:1,geometry:[[Math.round(this.options.extent*(u*a-r)),Math.round(this.options.extent*(h*a-i))]],tags:c};let g;d||this.options.generateId?g=n[s+tg]:g=this.points[n[s+tg]].id,g!==void 0&&(f.id=g),o.features.push(f)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,n){const{radius:r,extent:i,reduce:a,minPoints:o}=this.options,l=r/(i*Math.pow(2,n)),s=e.data,d=[],c=this.stride;for(let u=0;u<s.length;u+=c){if(s[u+eA]<=n)continue;s[u+eA]=n;const h=s[u],f=s[u+1],g=e.within(s[u],s[u+1],l),A=s[u+jh];let b=A;for(const p of g){const y=p*c;s[y+eA]>n&&(b+=s[y+jh])}if(b>A&&b>=o){let p=h*A,y=f*A,m,F=-1;const R=((u/c|0)<<5)+(n+1)+this.points.length;for(const C of g){const B=C*c;if(s[B+eA]<=n)continue;s[B+eA]=n;const N=s[B+jh];p+=s[B]*N,y+=s[B+1]*N,s[B+s1]=R,a&&(m||(m=this._map(s,u,!0),F=this.clusterProps.length,this.clusterProps.push(m)),a(m,this._map(s,B)))}s[u+s1]=R,d.push(p/b,y/b,1/0,R,-1,b),a&&d.push(F)}else{for(let p=0;p<c;p++)d.push(s[u+p]);if(b>1)for(const p of g){const y=p*c;if(!(s[y+eA]<=n)){s[y+eA]=n;for(let m=0;m<c;m++)d.push(s[y+m])}}}}return d}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,n,r){if(e[n+jh]>1){const o=this.clusterProps[e[n+pW]];return r?Object.assign({},o):o}const i=this.points[e[n+tg]].properties,a=this.options.map(i);return r&&a===i?Object.assign({},a):a}}function eC(t,e,n){return{type:"Feature",id:t[e+tg],properties:mW(t,e,n),geometry:{type:"Point",coordinates:[ame(t[e]),ome(t[e+1])]}}}function mW(t,e,n){const r=t[e+jh],i=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?`${Math.round(r/100)/10}k`:r,a=t[e+pW],o=a===-1?{}:Object.assign({},n[a]);return Object.assign(o,{cluster:!0,cluster_id:t[e+tg],point_count:r,point_count_abbreviated:i})}function Ub(t){return t/360+.5}function Rb(t){const e=Math.sin(t*Math.PI/180),n=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return n<0?0:n>1?1:n}function ame(t){return(t-.5)*360}function ome(t){const e=(180-t*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */function lme(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n}class Vu{static isAdvancedMarkerAvailable(e){return google.maps.marker&&e.getMapCapabilities().isAdvancedMarkersAvailable===!0}static isAdvancedMarker(e){return google.maps.marker&&e instanceof google.maps.marker.AdvancedMarkerElement}static setMap(e,n){this.isAdvancedMarker(e)?e.map=n:e.setMap(n)}static getPosition(e){if(this.isAdvancedMarker(e)){if(e.position){if(e.position instanceof google.maps.LatLng)return e.position;if(e.position.lat&&e.position.lng)return new google.maps.LatLng(e.position.lat,e.position.lng)}return new google.maps.LatLng(null)}return e.getPosition()}static getVisible(e){return this.isAdvancedMarker(e)?!0:e.getVisible()}}class E2{constructor({markers:e,position:n}){this.markers=e,n&&(n instanceof google.maps.LatLng?this._position=n:this._position=new google.maps.LatLng(n))}get bounds(){if(this.markers.length===0&&!this._position)return;const e=new google.maps.LatLngBounds(this._position,this._position);for(const n of this.markers)e.extend(Vu.getPosition(n));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>Vu.getVisible(e)).length}push(e){this.markers.push(e)}delete(){this.marker&&(Vu.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}class sme{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return dme(e)}}const dme=t=>t.map(n=>new E2({position:Vu.getPosition(n),markers:[n]}));class cme extends sme{constructor(e){var{maxZoom:n,radius:r=60}=e,i=lme(e,["maxZoom","radius"]);super({maxZoom:n}),this.state={zoom:-1},this.superCluster=new ime(Object.assign({maxZoom:this.maxZoom,radius:r},i))}calculate(e){let n=!1;const r={zoom:e.map.getZoom()};if(!jI(e.markers,this.markers)){n=!0,this.markers=[...e.markers];const i=this.markers.map(a=>{const o=Vu.getPosition(a);return{type:"Feature",geometry:{type:"Point",coordinates:[o.lng(),o.lat()]},properties:{marker:a}}});this.superCluster.load(i)}return n||(this.state.zoom<=this.maxZoom||r.zoom<=this.maxZoom)&&(n=!jI(this.state,r)),this.state=r,n&&(this.clusters=this.cluster(e)),{clusters:this.clusters,changed:n}}cluster({map:e}){return this.superCluster.getClusters([-180,-90,180,90],Math.round(e.getZoom())).map(n=>this.transformCluster(n))}transformCluster({geometry:{coordinates:[e,n]},properties:r}){if(r.cluster)return new E2({markers:this.superCluster.getLeaves(r.cluster_id,1/0).map(a=>a.properties.marker),position:{lat:n,lng:e}});const i=r.marker;return new E2({markers:[i],position:Vu.getPosition(i)})}}class ume{constructor(e,n){this.markers={sum:e.length};const r=n.map(a=>a.count),i=r.reduce((a,o)=>a+o,0);this.clusters={count:n.length,markers:{mean:i/n.length,sum:i,min:Math.min(...r),max:Math.max(...r)}}}}class fme{render({count:e,position:n},r,i){const o=`<svg fill="${e>Math.max(10,r.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50"> <circle cx="120" cy="120" opacity=".6" r="70" /> <circle cx="120" cy="120" opacity=".3" r="90" /> <circle cx="120" cy="120" opacity=".2" r="110" /> <text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${e}</text> </svg>`,l=`Cluster of ${e} markers`,s=Number(google.maps.Marker.MAX_ZINDEX)+e;if(Vu.isAdvancedMarkerAvailable(i)){const u=new DOMParser().parseFromString(o,"image/svg+xml").documentElement;u.setAttribute("transform","translate(0 25)");const h={map:i,position:n,zIndex:s,title:l,content:u};return new google.maps.marker.AdvancedMarkerElement(h)}const d={position:n,zIndex:s,title:l,icon:{url:`data:image/svg+xml;base64,${btoa(o)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(d)}}function hme(t,e){for(let n in e.prototype)t.prototype[n]=e.prototype[n]}class jQ{constructor(){hme(jQ,google.maps.OverlayView)}}var Mm;(function(t){t.CLUSTERING_BEGIN="clusteringbegin",t.CLUSTERING_END="clusteringend",t.CLUSTER_CLICK="click"})(Mm||(Mm={}));const gme=(t,e,n)=>{n.fitBounds(e.bounds)};class tC extends jQ{constructor({map:e,markers:n=[],algorithmOptions:r={},algorithm:i=new cme(r),renderer:a=new fme,onClusterClick:o=gme}){super(),this.markers=[...n],this.clusters=[],this.algorithm=i,this.renderer=a,this.onClusterClick=o,e&&this.setMap(e)}addMarker(e,n){this.markers.includes(e)||(this.markers.push(e),n||this.render())}addMarkers(e,n){e.forEach(r=>{this.addMarker(r,!0)}),n||this.render()}removeMarker(e,n){const r=this.markers.indexOf(e);return r===-1?!1:(Vu.setMap(e,null),this.markers.splice(r,1),n||this.render(),!0)}removeMarkers(e,n){let r=!1;return e.forEach(i=>{r=this.removeMarker(i,!0)||r}),r&&!n&&this.render(),r}clearMarkers(e){this.markers.length=0,e||this.render()}render(){const e=this.getMap();if(e instanceof google.maps.Map&&e.getProjection()){google.maps.event.trigger(this,Mm.CLUSTERING_BEGIN,this);const{clusters:n,changed:r}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(r||r==null){const i=new Set;for(const o of n)o.markers.length==1&&i.add(o.markers[0]);const a=[];for(const o of this.clusters)o.marker!=null&&(o.markers.length==1?i.has(o.marker)||Vu.setMap(o.marker,null):a.push(o.marker));this.clusters=n,this.renderClusters(),requestAnimationFrame(()=>a.forEach(o=>Vu.setMap(o,null)))}google.maps.event.trigger(this,Mm.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach(e=>Vu.setMap(e,null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){const e=new ume(this.markers,this.clusters),n=this.getMap();this.clusters.forEach(r=>{r.markers.length===1?r.marker=r.markers[0]:(r.marker=this.renderer.render(r,e,n),r.markers.forEach(i=>Vu.setMap(i,null)),this.onClusterClick&&r.marker.addListener("click",i=>{google.maps.event.trigger(this,Mm.CLUSTER_CLICK,r),this.onClusterClick(i,r,n)})),Vu.setMap(r.marker,n)})}}const d1={maxZoom:{type:Number,twoWay:!1},batchSizeIE:{type:Number,twoWay:!1},calculator:{type:Function,twoWay:!1},enableRetinaIcons:{type:Boolean,twoWay:!1},gridSize:{type:Number,twoWay:!1},ignoreHidden:{type:Boolean,twoWay:!1},imageExtension:{type:String,twoWay:!1},imagePath:{type:String,twoWay:!1},imageSizes:{type:Array,twoWay:!1},minimumClusterSize:{type:Number,twoWay:!1},styles:{type:Array,twoWay:!1},zoomOnClick:{type:Boolean,twoWay:!1}},Ame=["click","rightclick","dblclick","drag","dragstart","dragend","mouseup","mousedown","mouseover","mouseout"],pme=Qg({mappedProps:d1,events:Ame,name:"cluster",ctr:()=>{if(typeof tC>"u"){const t="MarkerClusterer is not installed!";throw console.error(t),new Error(t)}return tC},ctrArgs:({map:t,...e})=>[t,[],e],afterCreate(t){const e=()=>{const n=t.getMarkers();t.clearMarkers(),t.addMarkers(n)};for(let n in d1)d1[n].twoWay&&this.$on(n.toLowerCase()+"_changed",e)},updated(){this.$clusterObject&&this.$clusterObject.repaint()},beforeUnmount(){this.$children&&this.$children.length&&this.$children.forEach(t=>{t.$clusterObject===this.$clusterObject&&(t.$clusterObject=null)}),this.$clusterObject&&this.$clusterObject.clearMarkers()}});function mme(t,e,n,r,i,a){return oe(),Ce("div",null,[Vi(t.$slots,"default")])}const bme=Pi(pme,[["render",mme]]),yme={options:{type:Object,required:!1,default(){return{}}},position:{type:Object,twoWay:!0},zIndex:{type:Number,twoWay:!0}},Fme=["domready","click","closeclick","content_changed"],Qme=Qg({mappedProps:yme,events:Fme,name:"infoWindow",ctr:()=>google.maps.InfoWindow,props:{opened:{type:Boolean,default:!0}},inject:{$markerPromise:{default:null}},mounted(){const t=this.$refs.infoWindow;t.parentNode.removeChild(t)},beforeCreate(t){if(t.content=this.$refs.infoWindow,this.$markerPromise)return delete t.position,this.$markerPromise.then(e=>(this.$markerObject=e,e))},emits:["closeclick"],methods:{_openInfoWindow(){this.$infoWindowObject.close(),this.opened?this.$infoWindowObject.open(this.$map,this.$markerObject):this.$emit("closeclick")}},afterCreate(){this._openInfoWindow(),this.$watch("opened",()=>{this._openInfoWindow()})}}),Ume={ref:"infoWindow"};function Rme(t,e,n,r,i,a){return oe(),Ce("div",Ume,[Vi(t.$slots,"default")],512)}const Bme=Pi(Qme,[["render",Rme]]),Zme={props:["resizeBus"],data(){return{_actualResizeBus:null}},created(){typeof this.resizeBus>"u"?this.$data._actualResizeBus=this.$gmapDefaultResizeBus:this.$data._actualResizeBus=this.resizeBus},methods:{_resizeCallback(){this.resize()},isFunction(t){return t&&{}.toString.call(t)==="[object Function]"},_delayedResizeCallback(){this.$nextTick(()=>this._resizeCallback())}},watch:{resizeBus(t){this.$data._actualResizeBus=t},"$data._actualResizeBus"(t,e){e&&e.$off("resize",this._delayedResizeCallback)}},unmounted(){this.$data._actualResizeBus&&this.isFunction(this.$data._actualResizeBus.$off)&&this.$data._actualResizeBus.$off("resize",this._delayedResizeCallback)}};function Ime(t){let e=0;t(()=>{e+=1},()=>{e=Math.max(0,e-1)},()=>e===0)}const c1={center:{required:!0,twoWay:!0,type:Object,noBind:!0},zoom:{required:!1,twoWay:!0,type:Number,noBind:!0},heading:{type:Number,twoWay:!0},mapTypeId:{twoWay:!0,type:String},tilt:{twoWay:!0,type:Number},options:{type:Object,default(){return{}}}},nC=["bounds_changed","click","dblclick","drag","dragend","dragstart","idle","mousemove","mouseout","mouseover","resize","rightclick","tilesloaded"],Cme=["panBy","panTo","panToBounds","fitBounds"].reduce((t,e)=>(t[e]=function(){this.$mapObject&&this.$mapObject[e].apply(this.$mapObject,arguments)},t),{}),vme={resize(){this.$mapObject&&google.maps.event.trigger(this.$mapObject,"resize")},resizePreserveCenter(){if(!this.$mapObject)return;const t=this.$mapObject.getCenter();google.maps.event.trigger(this.$mapObject,"resize"),this.$mapObject.setCenter(t)},_resizeCallback(){this.resizePreserveCenter()}},Vme={mixins:[Zme],props:PQ({...c1,...nC.reduce((t,e)=>({...t,[`on${e.charAt(0).toUpperCase()}${e.slice(1)}`.replace(/[-_]+(.)?/g,(n,r)=>r?r.toUpperCase():"")]:Function}),{})}),inheritAttrs:!1,provide(){return this.$mapPromise=new Promise((t,e)=>{this.$mapPromiseDeferred={resolve:t,reject:e}}),{$mapPromise:this.$mapPromise}},emits:["center_changed","zoom_changed","bounds_changed"],computed:{finalLat(){return this.center&&typeof this.center.lat=="function"?this.center.lat():this.center.lat},finalLng(){return this.center&&typeof this.center.lng=="function"?this.center.lng():this.center.lng},finalLatLng(){return{lat:this.finalLat,lng:this.finalLng}}},watch:{zoom(t){this.$mapObject&&this.$mapObject.setZoom(t)}},mounted(){return this.$gmapApiPromiseLazy().then(()=>{const t=this.$refs["vue-map"],e={...this.options,...oy(this,c1)};return delete e.options,this.$mapObject=new google.maps.Map(t,e),KQ(this,this.$mapObject,c1),hW(this,this.$mapObject,nC),Ime((n,r,i)=>{this.$mapObject.addListener("center_changed",()=>{i()&&this.$emit("center_changed",this.$mapObject.getCenter()),r()}),gW(this,["finalLat","finalLng"],()=>{n(),this.$mapObject.setCenter(this.finalLatLng)})}),this.$mapObject.addListener("zoom_changed",()=>{this.$emit("zoom_changed",this.$mapObject.getZoom())}),this.$mapObject.addListener("bounds_changed",()=>{this.$emit("bounds_changed",this.$mapObject.getBounds())}),this.$mapPromiseDeferred.resolve(this.$mapObject),this.$mapObject}).catch(t=>{throw t})},methods:{...vme,...Cme}},Eme={class:"vue-map-hidden"};function Sme(t,e,n,r,i,a){return oe(),Ce("div",{class:Hr(["vue-map-container",t.$attrs.class])},[Q("div",{ref:"vue-map",class:"vue-map",style:ja(t.$attrs.style?t.$attrs.style:"")},null,4),Q("div",Eme,[Vi(t.$slots,"default")]),Vi(t.$slots,"visible")],2)}const Wme=Pi(Vme,[["render",Sme]]),Nme={options:{type:Object,twoWay:!1,default:()=>{}},data:{type:Array,twoWay:!0}},Gme=[],Jme=Qg({mappedProps:Nme,name:"heatmap",ctr:()=>google.maps.visualization.HeatmapLayer,events:Gme}),Tme=t=>{const e=t.addEventListener?t.addEventListener:t.attachEvent;function n(r,i){if(r==="keydown"){const a=i;i=function(o){const l=document.getElementsByClassName("pac-item-selected").length>0;if(o.which===13&&!l){const s=document.createEvent("Event");s.keyCode=40,s.which=40,a.apply(t,[s])}a.apply(t,[o])}}e.apply(t,[r,i])}t.addEventListener=n,t.attachEvent=n},u1={bounds:{type:Object},componentRestrictions:{type:Object,noBind:!0},types:{type:Array,default:function(){return[]}}},Xme={selectFirstOnEnter:{required:!1,type:Boolean,default:!1},options:{type:Object}},kme={mounted(){this.$gmapApiPromiseLazy().then(()=>{if(this.selectFirstOnEnter&&Tme(this.$refs.input),typeof google.maps.places.Autocomplete!="function")throw new Error("google.maps.places.Autocomplete is undefined. Did you add 'places' to libraries when loading Google Maps?");const t={...oy(this,u1),...this.options};this.$autocomplete=new google.maps.places.Autocomplete(this.$refs.input,t),KQ(this,this.$autocomplete,u1),this.$watch("componentRestrictions",e=>{e!==void 0&&this.$autocomplete.setComponentRestrictions(e)}),this.$autocomplete.addListener("place_changed",()=>{this.$emit("place_changed",this.$autocomplete.getPlace())})})},props:{...PQ(u1),...Xme}};function wme(t,e,n,r,i,a){return oe(),Ce("input",Jt({ref:"input"},t.$attrs,Zm(t.$attrs,!0)),null,16)}const Yme=Pi(kme,[["render",wme]]);let bW=null;function Dme(t,e){e={installComponents:!0,autobindAllEvents:!1,...e},bW=B1({data:function(){return{gmapApi:null}}});const n=B1();let r=Mme(e);t.mixin({created(){this.$gmapDefaultResizeBus=n,this.$gmapOptions=e,this.$gmapApiPromiseLazy=r}}),t.$gmapDefaultResizeBus=n,t.$gmapApiPromiseLazy=r,e.installComponents&&(t.component("GMapMap",Wme),t.component("GMapMarker",tme),t.component("GMapInfoWindow",Bme),t.component("GMapCluster",bme),t.component("GMapPolyline",Mpe),t.component("GMapPolygon",xpe),t.component("GMapCircle",Ppe),t.component("GMapRectangle",_pe),t.component("GMapAutocomplete",Yme),t.component("GMapHeatmap",Jme))}function Mme(t){function e(){return bW.gmapApi={},window.google}if(t.load)return KI(()=>v2.isServer()?new Promise(()=>{}).then(e):new Promise((n,r)=>{try{window.vueGoogleMapsInit=n,Xpe(t.load)}catch(i){r(i)}}).then(e));{const n=new Promise(r=>{v2.isServer()||(window.vueGoogleMapsInit=r)}).then(e);return KI(()=>n)}}const yW=pX();yW.use(lO);B1(Mx).use(zV).use(gO).use(yW).component("MultiSelect",zE).use(sK).component("vue3-star-ratings",_x).use(Jpe).use(Dme,{load:{key:"AIzaSyAxKbPRJYB8-OtRces1p6kqhvk2NtAdJMQ"}}).mount("#app");
Back to File Manager